[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\nlabels: \n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\n\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Please always include the output of the following commands in your report!**\n\n* ``brig bug -s``\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\nlabels: \n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n\n\n**Please keep in mind that new features should be orthogonal (i.e. complement) to the existing features.**\n"
  },
  {
    "path": ".gitignore",
    "content": "brig\n*.coverprofile\ncoverage.out\n_vendor*\nTODO\n.idea\nmage\nipfs\nrepo/setup/ipfs\n.task\ntags\ncov.out\n"
  },
  {
    "path": ".mailmap",
    "content": "Christopher Pahl <sahib@online.de>\nChristopher Pahl <sahib@online.de> <sahib@peeel.(none)>\nChristopher Pahl <sahib@online.de> <chris@peeel.(none)>\nChristopher Pahl <sahib@online.de> <chris@modi.localdomain>\nChristopher Pahl <sahib@online.de> <b@mmel.localdomain>\nChristopher Pahl <sahib@online.de> <sahib@localhost.localdomain>\nChristopher Pahl <sahib@online.de> <chris@vbox.(none)>\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: go\nsudo: required\ngo:\n    - \"1.15\"\nnotifications:\n    email:\n      - sahib@online.de\ninstall:\n    - sudo apt-get install fuse capnproto\n    - mkdir -p ${GOPATH}/bin\n    - export GOBIN=${GOPATH}/bin\n    - export PATH=\"${GOPATH}/bin:${PATH}\"\n    - export GO111MODULE=on\n    - go get -u github.com/rakyll/gotest\n    - go get -u github.com/phogolabs/parcello\n    - go get -u github.com/phogolabs/parcello/cmd/parcello\n    - go get -u zombiezen.com/go/capnproto2/...\n    - go get -u github.com/go-task/task/v3/cmd/task\n    - wget https://dist.ipfs.io/go-ipfs/v0.7.0/go-ipfs_v0.7.0_linux-amd64.tar.gz -O /tmp/ipfs.tgz\n    - tar -C /tmp -xvf /tmp/ipfs.tgz\n    - cp /tmp/go-ipfs/ipfs $GOBIN\n    - export PATH=\"${GOPATH}/bin:${PATH}\"\n    - task\n\nscript:\n    - export PATH=\"${GOPATH}/bin:${PATH}\"\n    - travis_wait 30 bash scripts/run-tests.sh\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\nThe format follows [keepachangelog.com]. Please stick to it.\n\n## [0.5.3] -- 2020-07-20\n\nDrastic speed up of listing and show operation.\n\nIn previous  version simple IsCached  operation on  500 MB file  was taking\nmore than 30 seconds.  The reason is splitting a file in  chunks of no more\nthan 256 kB in ipfs. It took time to establish connection to ipfs and check\nstatus of every chunk. The new caching scheme of intermediate results helps\nto avoid unnecessary connection.\n\nThere is an additional heuristic: if  a reference/hash stores less or equal\nto 262158 bytes, then this hash will not have children links (hashes). This\nseems to be  true for IPFS up to  v0.6.0 but there is no  guarantee that it\nwill be true in further version.\n\nThe initial check  is now very fast,  less than second for the  same 500 MB\nfile. Also, recursive check does not  rerun full check on probed files now,\nso this  is also done  much faster. The down  side: the caching  result are\nstale  and can  be misreported  for  up to  5 minutes  (with current  cache\nexpiration settings).\n\n### Changed\n\nAdded caching mechanism for ipfs interaction.\n\n## [0.5.2] -- 2020-07-16\n\nBug fix release.\n\n### Fixed\n\n- Report correct cache status for a hash with multiple children links.\n  The IsCached reported as yes for a large files (>256 kB with ipfs backend)\n  since such files are split into multiple blocks. Strangely, the parent\n  node is somehow precached without asking (maybe it happens when brig checks\n  for the backend size), but its children are not unless we pin or read file \n  content.\n\n### Changed\n\n- `brig ls /file.name` will return listing for a single file. Before it worked \n  only with directories. Now it behaves similar to the standard file system \n  listing (ls) command.\n\n## [0.5.1] -- 2020-07-15\n\nImprovements and bug fixes in the fuse layer. The fuse layer consequent read is\nfactor of 20 faster now.\n\n### Fixed\n\n- Fix reading larger than 64 kB files. The read was from limitedStream with\n  64 kB size. It was spitting EOF when end of the buffer was hit, which is\n  not the same as true end of file.\n\n### Changed\n\n- Fuse file handle keeps track of the seek position. So, in consequent\n  reads it does not have to reseek the stream which costs a lot of time.\n  On my machine the speed went up from about 200 kB/s to 5 MB/s. It is\n  still much slower than direct read from disk (30 MB/s) but probably\n  expected due to ipfs, compression, and encryption layers.\n\n## [0.5.0] -- 2020-07-13\n\nThis version is mostly bug fixes of unreleased version 0.4.2 by Chris Pahl,\nwho is the original author and maintainer of the »brig«. Output of the diff and \nsync command is now different from the behaviour outlined in the old manual.\nThere are also fixes to make fuse mounts to work properly. Compatibility wise,\nmetadata exchange expects to see the cachedSize field for proper handling,\nolder versions do not provide it.\nSo, I think it justifies the bump in the minor version.\n\nTODO: documentation does not reflect all the changes.\n\n### Fixed\n\n- Fix the behaviour of fast forward changes (i.e. when the file changed only at \n  one location).\n- Fix the merge over deleted (ghost) file\n- Fix handling of the resurrected at remote entries.\n- Fix gateway 'get' for authorized user\n- Fix gateway to block download/view files outside of permitted folders\n- Fix bug with pinning at sync. The program used source node info to pin \n  instead of destination. So a random node at destination was pinned.\n- Fix bug in repinner size calculator, which could end up with negative numbers\n  in unsigned integer and thus report a crazy high values.\n- Fix in capnp template to be compatible with more modern version of capnp\n- Fix handling the pin state border case, when our data report a pin but ipfs \n  is not. We ask to repin at ipfs backend.\n- Fix the destination pin status preservation during merge.\n- Multiple fixes in the file system frontend (fuse).\n  - Correct file sizes which propagate to the directory size\n  - Make sure attributes of a file are not stale\n  - Redone writing and staging handling. No if we open file for writing\n    we store the modified content in memory. When we flush to the backend\n    we compare content change with this memory stored content. Old way did not\n    catch such changes.\n  - Touch can do create new file over the ghost nodes.\n  - We can move/rename things within fuse mount via brig backend.\n    TODO: there is small time (several seconds), when file info is not picked \n    by fuse after rename. It might be a bug in fuse library itself. It is not\n    too critical right now.\n\n### Changed\n\n- Repinner can unpin explicitly pinned files, if they scheduled for deletion \n  (i.e. beyond min-max version requirement). Otherwise, we will have stale old\n  versions which will take storage space forever.\n- Diff and Sync show the direction of the merge. Diff takes precedence \n  according to the modification time. TODO: I need to add new conflict\n  resolution strategy: chronological/time and use it only if required.\n  I felt chronological strategy is more natural way for syncing different \n  repos, so I program time resolution as default.\n- Changes are specific to files not directories. If you create a directory\n  in one repo and do the same on the other, it is not a conflict unless, there\n  are files with different content. Otherwise, it can be easily merged.\n- Preserve source modification time when merging.\n- Better display of missing or removed entries.\n- When syncing create patches for every commit, before the patch was done \n  between old known commit and the current state. That was breaking possibly\n  non conflicting merges, since the common parent was lost during the commit \n  skip. Sync is a bit longer now, but I think it worse it.\n- Modules are compatible with go v1.14\n- Shorten time format for »brig ls«\n\n### Added\n\n- New option: fs.repin.pin_unpinned. When set to 'false' it saves traffic and \n  does not pin what is already pinned. When 'true' pins files within pinning \n  requirements (the old behavior); this essentially pre-caches files at the \n  backend but uses traffic and disk space.\n- New option: fs.sync.pin_added. If false the sync does not pin/cache at sync\n  new/added at remote files. This is handy if we want only sync the metadata \n  but not the content itself. I.e. bandwidth saving mode. Opposite (the old \n  behavior) is also possible if we want to sync the content and are not concerned\n  about bandwidth.\n- Help for »brig gateway add«.\n- Added cached size information to listings, show,  and internal file or \n  directory info. Technically, it is the same as size of backend, since the \n  cached size could be zero at a given time (TODO rename accordingly).\n- The cached size is transmitted via capnp.\n\n## [0.4.1 Capricious Clownfish] -- 2019-03-31\n\nA smaller release with some bug fixes and a few new features. Also one bigger\nstability and speed improvement. Thanks to everyone that gave feedback!\n\n### Fixed\n\n- Fix two badger db related crashes that lead to a crash in the daemon. One was\n  related to having nested transactions, the one was related to having an open\n  iterator while committing data to the database.\n- Fix some dependencies that led to errors for some users (thanks @vasket)\n- The gateway code now tries to reconnect the websocket whenever it was closed\n  due to bad connectivity or similar issues. This led to a state where files\n  were only updated after reloading the page.\n- Several smaller fixes in the remotes view, i.e. the owner name was displayed\n  wrong and most of the settings could not be set outside the test environment.\n  Also the diff output was different in the UI and brig diff.\n- We now error out early if e.g. »brig ls« was issued, but there is no repo.\n  Before it tried to start a daemon and waited a long time before timing out.\n- Made »brig mkdir« always prefix a »/« to a path which would lead to funny\n  issues otherwise.\n\n### Added\n\n- Add a --offline flag to the following subcommands: ``cat``, ``tar``,\n  ``mount`` and ``fstab add``. These flags will only output files that are\n  locally cached and will not cause timeouts therefore. Trying other files will\n  result in an error.\n- »brig show« now outputs if a file/directory is locally cached. This is not\n  the same as pinned, since you can pin a file but it might not be cached yet.\n- Make the gateway host all of its JavaScript, fonts and CSS code itself by\n  baking it into the binary. This will enable people running the gateway in\n  environments where no internet connection is available to reach the CDN used\n  before.\n- Add the possibility to copy the fingerprint in the UI via a button click.\n  Before the fingerprint was shown over two lines which made copying tricky.\n- A PKGBUILD for ArchLinux was added, which builds ``brig`` from the\n  ``develop`` branch. Thanks @vasket!\n\n### Changed\n\n- The ``brig remote ls`` command no longer does active I/O between nodes to check\n  if a node is authenticated. Instead it relies on info from the peer server\n  which can apply better caching. The peer server is also able to use information\n  from dials and requests to/from other peers to update the ping information.\n- Switch the internal checksum algorithm to ``blake2s-256`` from ``sha3-256``.\n  This change was made for speed reasons and leads to a slightly different looking\n  checksum format in the command line output. This change MIGHT lead to incompatibilities.\n- Also swap ``scrypt`` with ``argon2`` for key derivation and lower the hashing settings\n  until acceptable performance was achieved.\n- Replace the Makefile with a magefile, i.e. a build script written in Go only which has\n  no dependencies and can bootstrap itself.\n- Include IPFS config output in »brig bug«.\n\n### Removed\n\n* The old Makefile was removed and replaced with a Go only solution.\n\n## [0.4.0 Capricious Clownfish] -- 2019-03-19\n\nIt's only been a few months since the last release (December 2018), but there\nare a ton of new features / general changes that total in about 15k added lines\nof code. The biggest changes are definitely refactoring IPFS into its own\nprocess and providing a nice UI written in Elm. But those are just two of the\nbiggest ones, see the full list below.\n\nAs always, ``brig`` is **always looking for contributors.** Anything from\nfeedback to pull requests is greatly appreciated.\n\n### Fixed\n\n- Many documentation fixes and updates.\n- Gateway: Prefer server cipher suites over client's choice.\n- Gateway: Make sure to enable timeouts.\n- Bugfix in catfs that could lead to truncated file streams.\n* Lower the memory hunger of BadgerDB.\n* Fix a bug that stopped badger transactions when they got too big.\n\n### Added\n\n* The IPFS daemon does not live in the ``brig`` process itself anymore.\n  It can now use any existing / running IPFS daemon. If ``ipfs`` is not installed,\n  it will download a local copy and setup a repository in the default place.\n  Notice that this is a completely backwards-incompatible change.\n\n* New UI: The Gateway feature was greatly extended and an UI was developed that\n  exposes many features in an easily usable way to people that are used to a\n  Dropbox like interface. See\n  [here](https://brig.readthedocs.io/en/develop/tutorial/gateway.html) for some\n  screenshots of the UI and documentation on how to set it up. The gateway\n  supports users with different roles (``admin``, ``editor``, ``collaborator``,\n  ``viewer``, ``link-only``) and also supports logging as anonymous user (not by\n  default!). You can also limit what users can see which folders.\n\n* New event subsystems. This enables users to receive updates in \"realtime\"\n  from other remotes. This is built on top of the experimental pubsub feature\n  of IPFS and thus needs a daemon that was started with\n  ``--enable-pubsub-experiment``. Users can decide to receive updates from\n  a remote by issuing ``brig remote auto-update enable <remote name>``. [More\n  details in the documentation](https://brig.readthedocs.io/en/develop/tutorial/remotes.html#automatic-updating).\n\n* Change the way pinning works. ``brig`` will not unpin old versions anymore,\n  but leave that to the [repinning settings](https://brig.readthedocs.io/en/develop/tutorial/pinning.html#repinning).\n  This is an automatic process that will make sure to keep at least ``x``\n  versions, unpin all versions greater than ``y`` and make sure that only a\n  certain filesystem quota is used.\n\n* New ``trash`` subcommand that makes it easy to show deleted files (``brig\n  trash ls``) and undelete them again (``brig trash undelete <path>``).\n\n* New ``brig push`` command to ask a remote to sync with us. For this to work\n  the remote needs to allow this to us via ``brig remote auto-push enable <remote\n  name>``. See also the\n  [documentation](https://brig.readthedocs.io/en/develop/tutorial/remotes.html#pushing-changes).\n\n* New way to handle conflicts: ``embrace`` will always pick the version of the remote you are syncing with.\n  This is especially useful if you are building an archival node where you can push changes to.\n  See also the [documentation](https://brig.readthedocs.io/en/develop/tutorial/remotes.html#conflicts).\n  You can configure the conflict strategy now either globally, per remote or for a specific folder.\n\n* Read only folders. Those are folders that can be shared with others, but when\n  we synchronize with them, the folder is exempted from any modifications.\n\n* Implement automated invocation of the garbage collector of IPFS. By default\n  it is called once per hour and will clean up files that were unpinned. Note\n  that this will also unpin files that are not owned by ``brig``! If you don't want this,\n  you should use a separate IPFS instance for ``brig``.\n\n* It's now possible to create ``.tar`` files that are filtered by certain patterns.\n  This functionality is currently only exposed in the gateway, not in the command line.\n\n* Easier debugging by having a ``pprof`` server open by default (until we\n  consider the daemon to be stable enough to disable it by default). You can get\n  a performance graph of the last 30s by issuing ``go tool pprof -web\n  \"http://localhost:$(brig d p)/debug/pprof/profile?seconds=30\"``\n\n* One way install script to easily get a ``brig`` binary in seconds on your computer:\n  ``bash <(curl -s https://raw.githubusercontent.com/sahib/brig/master/scripts/install.sh)``\n\n### Changed\n\n* Starting with this release we will provide pre-compiled binaries for the most common platforms on the [release page](https://github.com/sahib/brig/releases).\n* Introduce proper linting process (``make lint``)\n* ``init`` will now set some IPFS config values that improve connectivity and performance\n  of ``brig``. You can disable this via ``--no-ipfs-optimization``.\n* Disable pre-caching by default due to extreme slow-ness.\n* Migrate to ``go mod`` since we do not need to deal with ``gx`` packages anymore.\n* There is no (broken) ``make install`` target anymore. Simply do ``make`` and\n  ``sudo cp brig /usr/local/bin`` or wherever you want to put it.\n\n### Removed\n\n* A lot of old code that was there to support running IPFS inside the daemon process.\n  As a side effect, ``brig`` is now much snappier.\n\n## [0.3.0 Galloping Galapagos] -- 2018-12-07\n\n### Fixed\n\n- Compression guessing is now using Go's http.DetectContentType()\n\n### Added\n\n* New gateway subcommand and feature. Now files and directories can be easily\n  shared to non-brig users via a normal webserver. Also includes easy https setup.\n\n### Changed\n\n### Removed\n\n### Deprecated\n\n## [0.2.0 Baffling Buck] -- 2018-11-21\n\n### Fixed\n\nAll features mentioned in the documentation should work now.\n\n### Added\n\nMany new features, including password management, partial diffs and partial syncing.\n\n### Changed\n\nMany internal things. Too many to list in this early stage.\n\n### Removed\n\nNothing substantial.\n\n### Deprecated\n\nNothing.\n\n## [0.1.0 Analphabetic Antelope] -- 2018-04-21\n\nInitial release on the Linux Info Day 2018 in Augsburg.\n\n[unreleased]: https://github.com/sahib/rmlint/compare/master...develop\n[0.1.0]: https://github.com/sahib/brig/releases/tag/v0.1.0\n[keepachangelog.com]: http://keepachangelog.com/\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM golang\nMAINTAINER sahib@online.de\n\n# Most test cases can use the pre-defined BRIG_PATH.\nENV BRIG_PATH /var/repo\nRUN mkdir -p $BRIG_PATH\nENV BRIG_USER=\"charlie@wald.de/container\"\n\n# Build the brig binary:\nENV BRIG_SOURCE /go/src/github.com/sahib/brig\nENV BRIG_BINARY_PATH /usr/bin/brig\nCOPY . $BRIG_SOURCE\nWORKDIR $BRIG_SOURCE\nRUN make\n\n# Download IPFS, so the container can startup faster.\n# (brig can also download the binary for you, but later)\nRUN wget https://dist.ipfs.io/go-ipfs/v0.4.19/go-ipfs_v0.4.19_linux-amd64.tar.gz -O /tmp/ipfs.tar.gz\nRUN tar xfv /tmp/ipfs.tar.gz -C /tmp\nRUN cp /tmp/go-ipfs/ipfs /usr/bin\n\nEXPOSE 6666\nEXPOSE 4001\n\nCOPY scripts/docker-normal-startup.sh /bin/run.sh\nCMD [\"/bin/bash\", \"/bin/run.sh\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\n  A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate.  Many developers of free software are heartened and\nencouraged by the resulting cooperation.  However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\n  The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community.  It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server.  Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\n  An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals.  This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU Affero General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Remote Network Interaction; Use with the GNU General Public License.\n\n  Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software.  This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time.  Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source.  For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code.  There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\n<http://www.gnu.org/licenses/>.\n"
  },
  {
    "path": "PULL_REQUEST_TEMPLATE.md",
    "content": "Here's a small checklist before publishing your pull request:\n\n* Did you ``go fmt`` all code?\n* Does your code style fit with the rest of the code base?\n* Did you run ``go run mage.go dev:lint``?\n* Did you write tests if necessary?\n* Did you consider if changes to the docs are necessary?\n* Did you check if you need something to CHANGELOG.md?\n\n\nThank you for your contribution.\n"
  },
  {
    "path": "README.md",
    "content": "# `brig`: Ship your data around the world\n\n<center>  <!-- I know, that's not how you usually do it :) -->\n<img src=\"https://raw.githubusercontent.com/sahib/brig/master/docs/logo.png\" alt=\"a brig\" width=\"50%\">\n</center>\n\n[![go reportcard](https://goreportcard.com/badge/github.com/sahib/brig)](https://goreportcard.com/report/github.com/sahib/brig)\n[![GoDoc](https://godoc.org/github.com/sahib/brig?status.svg)](https://godoc.org/github.com/sahib/brig)\n[![Build Status](https://travis-ci.org/sahib/brig.svg?branch=master)](https://travis-ci.org/sahib/brig)\n[![Documentation](https://readthedocs.org/projects/rmlint/badge/?version=latest)](http://brig.readthedocs.io/en/latest)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1558/badge)](https://bestpractices.coreinfrastructure.org/en/projects/1558)\n\n![brig gateway in the files tab](docs/_static/gateway-files.png)\n\n## Table of Contents\n\n- [`brig`: Ship your data around the world](#brig-ship-your-data-around-the-world)\n  - [Table of Contents](#table-of-contents)\n  - [About](#about)\n  - [Installation](#installation)\n  - [Getting started](#getting-started)\n  - [Status](#status)\n  - [Documentation](#documentation)\n  - [Donations](#donations)\n  - [Focus](#focus)\n\n## About\n\n`brig` is a distributed & secure file synchronization tool with version control.\nIt is based on `IPFS`, written in Go and will feel familiar to `git` users.\n\n**Key feature highlights:**\n\n* Encryption of data in rest and transport + compression on the fly.\n* Simplified `git` version control.\n* Sync algorithm that can handle moved files and empty directories and files.\n* Your data does not need to be stored on the device you are currently using.\n* FUSE filesystem that feels like a normal (sync) folder.\n* No central server at all. Still, central architectures can be build with `brig`.\n* Simple user identification and discovery with users that look like email addresses.\n\nAlso take a look [at the documentation](http://brig.readthedocs.io/en/latest/index.html) for more details.\n\n## Installation\n\nYou can download the latest script with the following oneliner:\n\n```bash\n# Before you execute this, ask yourself if you trust me.\n$ bash <(curl -s https://raw.githubusercontent.com/sahib/brig/master/scripts/install.sh)\n```\n\nAlternatively, you can simply grab the latest binary from the [release tab](https://github.com/sahib/brig/releases).\n\nDevelopment versions can be installed easily by compiling yourself. If you have\na recent version of `go` (`>= 1.10`) installed, it should be as easy as this:\n\n```bash\n$ go get -d -v -u github.com/sahib/brig  # Download the sources.\n$ cd $GOPATH/src/github.com/sahib/brig   # Go to the source directory.\n$ git checkout develop                   # Checkout the develop branch.\n$ go run mage.go                         # Build the software.\n$ $GOPATH/bin/brig help                  # Run the binary.\n```\n\nPlease refer to the [install docs](https://brig.readthedocs.io/en/latest/installation.html) for more details.\n\n## Getting started\n\n[![asciicast](https://asciinema.org/a/163713.png)](https://asciinema.org/a/163713)\n\n...If you want to know, what to do after you can read the\n[Quickstart](http://brig.readthedocs.io/en/latest/quickstart.html).\n\nThere is also a ``#brig`` room on ``matrix.org`` you can join with any [Matrix](https://matrix.org) client.\nClick [this link](https://riot.im/app/#/room/#brig:matrix.org) to join the room directly via [Riot.im](https://about.riot.im).\n\n## Status\n\nThis software is in a **beta phase** currently. All mentioned features should\nwork. Things might still change rapidly and there will be no guarantees given\nbefore version `1.0.0`. Do not use `brig` yet as only storage for your\nproduction data. There are still bugs, but it should be safe enough to toy\naround with it quite a bit.\n\nThis project has started end of 2015 and has seen many conceptual changes in\nthe meantime. It started out as research project. After writing my [master\ntheses](https://github.com/disorganizer/brig-thesis) on it, it was put down for\na few months until I picked at up again and currently am trying to push it to\nusable software.\n\nIf you want to open a bug report, just type `brig bug` to get a readily filled template for you.\n\n## Documentation\n\nAll documentation can be found on [ReadTheDocs.org](http://brig.readthedocs.io/en/latest/index.html).\n\n## Donations\n\nIf you're interested in the development and would think about supporting me\nfinancially, then please [contact me!](mailto:sahib@online.de) If you'd like to\ngive me a small & steady donation, you can always use *Liberapay*:\n\n<noscript><a href=\"https://liberapay.com/sahib/donate\"><img alt=\"Donate using Liberapay\" src=\"https://liberapay.com/assets/widgets/donate.svg\"></a></noscript>\n\n*Thank you!*\n"
  },
  {
    "path": "Taskfile.yml",
    "content": "# This file controls how brig is build.\n# It is a nicer to use alternative to Makefiles.\n# Please read the documentation over at:\n#\n# https://taskfile.dev\n#\n# The actual commands that do the work are written in bash.\n# See the scripts/ folder for them.\n#\n# When changing the structure of the repository, please remember\n# to update the \"sources\" list in this file if dependencies\n# of a build target were added, removed or changed.\nversion: '3'\n\ntasks:\n  default:\n    deps: [build]\n\n  elm:\n    desc: \"Compile elm sources to Javascript\"\n    cmds:\n      - cd gateway/elm && elm make src/Main.elm --output ../static/js/app.js\n    sources:\n      - ./gateway/elm/**/*.elm\n    generates:\n      - ./gateway/static/js/app.js\n    method: checksum\n    summary: |\n        Build the elm frontend.\n\n  generate:\n    desc: \"Generate build dependencies\"\n    cmds:\n      - scripts/generate.sh\n    sources:\n      - scripts/generate.sh\n      - ./**/*.capnp\n      - ./gateway/static/**/**/**/**\n\n  build:\n    deps: [generate]\n    desc: \"Build the brig binary\"\n    cmds:\n      - ./scripts/build.sh\n    sources:\n      - ./scripts/build.sh\n      - go.mod\n      - ./*.go\n      - ./**/*.go\n\n  test:\n    desc: \"Run integration & unit tests\"\n    cmds:\n      - bash scripts/run-tests.sh\n\n  lint:\n    desc: \"Run static linters on the code\"\n    cmds:\n      - bash scripts/run-linter.sh\n\n  sloc:\n    desc: \"Count the lines of code\"\n    cmds:\n      - bash scripts/count-lines-of-code.sh\n"
  },
  {
    "path": "autocomplete/bash_autocomplete",
    "content": "#!/bin/bash\n\n# This should be installed to /etc/bash_completion.d/brig and sourced.\n# If you want to try out the autocompletion, just source this file.\n_cli_bash_autocomplete() {\n    local cur opts base\n    COMPREPLY=()\n    cur=\"${COMP_WORDS[COMP_CWORD]}\"\n    opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )\n    COMPREPLY=( $(compgen -W \"${opts}\" -- ${cur}) )\n    return 0\n}\n\ncomplete -F _cli_bash_autocomplete brig\n"
  },
  {
    "path": "autocomplete/zsh_autocomplete",
    "content": "_cli_zsh_autocomplete() {\n  local -a opts\n  opts=(\"${(@f)$(_CLI_ZSH_AUTOCOMPLETE_HACK=1 ${words[@]:0:#words[@]-1} --generate-bash-completion)}\")\n  _describe 'values' opts\n  return\n}\n\ncompdef _cli_zsh_autocomplete brig\n"
  },
  {
    "path": "backend/backend.go",
    "content": "package backend\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/sahib/brig/backend/httpipfs\"\n\t\"github.com/sahib/brig/backend/mock\"\n\t\"github.com/sahib/brig/catfs\"\n\teventsBackend \"github.com/sahib/brig/events/backend\"\n\tnetBackend \"github.com/sahib/brig/net/backend\"\n\t\"github.com/sahib/brig/repo\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar (\n\t// ErrNoSuchBackend is returned when passing an invalid backend name\n\tErrNoSuchBackend = errors.New(\"No such backend\")\n)\n\n// VersionInfo is a small interface that will return version info about the\n// backend.\ntype VersionInfo interface {\n\tSemVer() string\n\tName() string\n\tRev() string\n}\n\n// Backend is a amalgamation of all backend interfaces required for brig to work.\ntype Backend interface {\n\trepo.Backend\n\tcatfs.FsBackend\n\tnetBackend.Backend\n\teventsBackend.Backend\n}\n\n// ForwardLogByName will forward the logs of the backend `name` to `w`.\nfunc ForwardLogByName(name string, w io.Writer) error {\n\tswitch name {\n\tcase \"httpipfs\":\n\t\treturn nil\n\tcase \"mock\":\n\t\treturn nil\n\t}\n\n\treturn ErrNoSuchBackend\n}\n\n// FromName returns a suitable backend for a human readable name.\n// If an invalid name is passed, nil is returned.\nfunc FromName(name, path, fingerprint string) (Backend, error) {\n\tswitch name {\n\tcase \"httpipfs\":\n\t\treturn httpipfs.NewNode(path, fingerprint)\n\tcase \"mock\":\n\t\tuser := \"alice\"\n\t\tif envUser := os.Getenv(\"BRIG_MOCK_USER\"); envUser != \"\" {\n\t\t\tuser = envUser\n\t\t}\n\n\t\tif envNetDbPath := os.Getenv(\"BRIG_MOCK_NET_DB_PATH\"); envNetDbPath != \"\" {\n\t\t\tpath = envNetDbPath\n\t\t}\n\n\t\treturn mock.NewMockBackend(path, user), nil\n\t}\n\n\treturn nil, ErrNoSuchBackend\n}\n\n// Version returns version info for the backend `name`.\nfunc Version(name, path string) VersionInfo {\n\tswitch name {\n\tcase \"mock\":\n\t\treturn mock.Version()\n\tcase \"httpipfs\":\n\t\tnd, err := httpipfs.NewNode(path, \"\")\n\t\tif err != nil {\n\t\t\tlog.Debugf(\"failed to get version\")\n\t\t\treturn nil\n\t\t}\n\n\t\tdefer nd.Close()\n\t\treturn nd.Version()\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "backend/httpipfs/gc.go",
    "content": "package httpipfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\n\te \"github.com/pkg/errors\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// GC will trigger the garbage collector of IPFS.\n// Cleaned up hashes will be returned as a list\n// (note that those hashes are not always ours)\nfunc (nd *Node) GC() ([]h.Hash, error) {\n\tctx := context.Background()\n\tresp, err := nd.sh.Request(\"repo/gc\").Send(ctx)\n\n\tif err != nil {\n\t\treturn nil, e.Wrapf(resp.Error, \"gc request\")\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\treturn nil, e.Wrapf(resp.Error, \"gc resp\")\n\t}\n\n\ths := []h.Hash{}\n\tbr := bufio.NewReader(resp.Output)\n\tfor {\n\t\tline, err := br.ReadBytes('\\n')\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\traw := struct {\n\t\t\tKey map[string]string\n\t\t}{}\n\n\t\tlr := bytes.NewReader(line)\n\t\tif err := json.NewDecoder(lr).Decode(&raw); err != nil {\n\t\t\treturn nil, e.Wrapf(err, \"json decode\")\n\t\t}\n\n\t\tfor _, cid := range raw.Key {\n\t\t\th, err := h.FromB58String(cid)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, e.Wrapf(err, \"gc: hash decode\")\n\t\t\t}\n\n\t\t\ths = append(hs, h)\n\t\t}\n\t}\n\n\tlog.Debugf(\"GC returned %d hashes\", len(hs))\n\treturn hs, nil\n}\n"
  },
  {
    "path": "backend/httpipfs/gc_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestGC(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tdata := testutil.CreateDummyBuf(4096 * 1024)\n\t\thash, err := nd.Add(bytes.NewReader(data))\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, nd.Unpin(hash))\n\t\thashes, err := nd.GC()\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, len(hashes) > 0)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/io.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"sync\"\n\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\nfunc cat(s *shell.Shell, path string, offset int64) (io.ReadCloser, error) {\n\trb := s.Request(\"cat\", path)\n\trb.Option(\"offset\", offset)\n\tresp, err := rb.Send(context.Background())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif resp.Error != nil {\n\t\treturn nil, resp.Error\n\t}\n\n\treturn resp.Output, nil\n}\n\ntype streamWrapper struct {\n\tmu sync.Mutex\n\n\tio.ReadCloser\n\tnd   *Node\n\thash h.Hash\n\toff  int64\n\tsize int64\n}\n\nfunc (sw *streamWrapper) Read(buf []byte) (int, error) {\n\tsw.mu.Lock()\n\tdefer sw.mu.Unlock()\n\n\tn, err := sw.ReadCloser.Read(buf)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\tsw.off += int64(n)\n\treturn n, err\n}\n\nfunc (sw *streamWrapper) WriteTo(w io.Writer) (int64, error) {\n\tsw.mu.Lock()\n\tdefer sw.mu.Unlock()\n\n\treturn io.Copy(w, sw)\n}\n\nfunc (sw *streamWrapper) cachedSize() (int64, error) {\n\tctx := context.Background()\n\tresp, err := sw.nd.sh.Request(\n\t\t\"files/stat\",\n\t\t\"/ipfs/\"+sw.hash.B58String(),\n\t).Send(ctx)\n\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\treturn -1, resp.Error\n\t}\n\n\traw := struct {\n\t\tSize int64\n\t}{}\n\n\tif err := json.NewDecoder(resp.Output).Decode(&raw); err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn raw.Size, nil\n}\n\nfunc (sw *streamWrapper) getAbsOffset(offset int64, whence int) (int64, error) {\n\tswitch whence {\n\tcase io.SeekStart:\n\t\tsw.off = offset\n\t\treturn offset, nil\n\tcase io.SeekCurrent:\n\t\tsw.off += offset\n\t\treturn sw.off, nil\n\tcase io.SeekEnd:\n\t\tsize, err := sw.cachedSize()\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tsw.off = size + offset\n\t\treturn sw.off, nil\n\tdefault:\n\t\treturn -1, fmt.Errorf(\"invalid whence: %v\", whence)\n\t}\n}\n\n// TODO: Seek is currently freaking expensive.\n// Does IPFS maybe offer a better way to do this?\nfunc (sw *streamWrapper) Seek(offset int64, whence int) (int64, error) {\n\tsw.mu.Lock()\n\tdefer sw.mu.Unlock()\n\n\tabsOffset, err := sw.getAbsOffset(offset, whence)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\trc, err := cat(sw.nd.sh, sw.hash.B58String(), absOffset)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\tif sw.ReadCloser != nil {\n\t\t// Not sure if that is even needed...\n\t\t// TODO: measure memory consumption and see if we can do\n\t\t//       without discarding left over bytes.\n\t\tgo func(rc io.ReadCloser) {\n\t\t\tio.Copy(ioutil.Discard, rc)\n\t\t\trc.Close()\n\t\t}(sw.ReadCloser)\n\t}\n\n\tsw.off = absOffset\n\tsw.ReadCloser = rc\n\treturn absOffset, nil\n}\n\n// Cat returns a stream associated with `hash`.\nfunc (nd *Node) Cat(hash h.Hash) (mio.Stream, error) {\n\trc, err := cat(nd.sh, hash.B58String(), 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &streamWrapper{\n\t\tnd:         nd,\n\t\thash:       hash,\n\t\tReadCloser: rc,\n\t\toff:        0,\n\t\tsize:       -1,\n\t}, nil\n}\n\n// Add puts the contents of `r` into IPFS and returns its hash.\nfunc (nd *Node) Add(r io.Reader) (h.Hash, error) {\n\ths, err := nd.sh.Add(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn h.FromB58String(hs)\n}\n"
  },
  {
    "path": "backend/httpipfs/io_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestAddCatBasic(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tdata := testutil.CreateDummyBuf(4096 * 1024)\n\t\thash, err := nd.Add(bytes.NewReader(data))\n\t\trequire.Nil(t, err)\n\n\t\tfmt.Println(hash)\n\n\t\tstream, err := nd.Cat(hash)\n\t\trequire.Nil(t, err)\n\n\t\techoData, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, data, echoData)\n\t})\n}\n\nfunc TestAddCatSize(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tdata := testutil.CreateDummyBuf(4096 * 1024)\n\t\thash, err := nd.Add(bytes.NewReader(data))\n\t\trequire.Nil(t, err)\n\n\t\tstream, err := nd.Cat(hash)\n\t\trequire.Nil(t, err)\n\n\t\tsize, err := stream.Seek(0, io.SeekEnd)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, int64(len(data)), size)\n\n\t\toff, err := stream.Seek(0, io.SeekStart)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, int64(0), off)\n\n\t\techoData, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, data, echoData)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/net.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"time\"\n\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\tnetBackend \"github.com/sahib/brig/net/backend\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\ntype connWrapper struct {\n\tnet.Conn\n\n\tpeer       string\n\tprotocol   string\n\ttargetAddr string\n\tsh         *shell.Shell\n}\n\nfunc (cw *connWrapper) LocalAddr() net.Addr {\n\treturn &addrWrapper{\n\t\tprotocol: cw.protocol,\n\t\tpeer:     \"\",\n\t}\n}\n\nfunc (cw *connWrapper) RemoteAddr() net.Addr {\n\treturn &addrWrapper{\n\t\tprotocol: cw.protocol,\n\t\tpeer:     cw.peer,\n\t}\n}\n\nfunc (cw *connWrapper) Close() error {\n\tdefer cw.Conn.Close()\n\treturn closeStream(cw.sh, cw.protocol, \"\", cw.targetAddr)\n}\n\n// Dial will open a connection to the peer identified by `peerHash`,\n// running `protocol` over it.\nfunc (nd *Node) Dial(peerHash, fingerprint, protocol string) (net.Conn, error) {\n\tif !nd.isOnline() {\n\t\treturn nil, ErrOffline\n\t}\n\n\tself, err := nd.Identity()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif self.Addr == peerHash {\n\t\t// Special case:\n\t\t// When we use the same IPFS daemon for different\n\t\t// brig repositiories, we want still to be able to dial\n\t\t// other brig instances. Since we cannot dial over ipfs\n\t\t// we simply have the port written to /tmp where\n\t\t// we can pick it up on Dial()\n\t\taddr, err := readLocalAddr(peerHash, fingerprint)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn net.Dial(\"tcp\", addr)\n\t}\n\n\tprotocol = path.Join(protocol, peerHash)\n\n\tport := util.FindFreePort()\n\taddr := fmt.Sprintf(\"/ip4/127.0.0.1/tcp/%d\", port)\n\tif err := forward(nd.sh, protocol, addr, peerHash); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttcpAddr := fmt.Sprintf(\"127.0.0.1:%d\", port)\n\tlog.Debugf(\"dial to »%s« over port %d\", peerHash, port)\n\tconn, err := net.Dial(\"tcp\", tcpAddr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &connWrapper{\n\t\tConn:       conn,\n\t\tpeer:       peerHash,\n\t\tprotocol:   protocol,\n\t\ttargetAddr: addr,\n\t\tsh:         nd.sh,\n\t}, nil\n}\n\n//////////////////////////\n\nfunc forward(sh *shell.Shell, protocol, targetAddr, peerID string) error {\n\tctx := context.Background()\n\tpeerID = \"/ipfs/\" + peerID\n\n\trb := sh.Request(\"p2p/forward\", protocol, targetAddr, peerID)\n\trb.Option(\"allow-custom-protocol\", true)\n\tresp, err := rb.Send(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer resp.Close()\n\tif resp.Error != nil {\n\t\treturn resp.Error\n\t}\n\n\treturn nil\n}\n\nfunc openListener(sh *shell.Shell, protocol, targetAddr string) error {\n\tctx := context.Background()\n\trb := sh.Request(\"p2p/listen\", protocol, targetAddr)\n\trb.Option(\"allow-custom-protocol\", true)\n\tresp, err := rb.Send(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer resp.Close()\n\tif err := resp.Error; err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc closeStream(sh *shell.Shell, protocol, targetAddr, listenAddr string) error {\n\tctx := context.Background()\n\trb := sh.Request(\"p2p/close\")\n\trb.Option(\"protocol\", protocol)\n\n\tif targetAddr != \"\" {\n\t\trb.Option(\"target-address\", targetAddr)\n\t}\n\n\tif listenAddr != \"\" {\n\t\trb.Option(\"listen-address\", listenAddr)\n\t}\n\n\tresp, err := rb.Send(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer resp.Close()\n\tif resp.Error != nil {\n\t\treturn resp.Error\n\t}\n\n\treturn nil\n}\n\ntype addrWrapper struct {\n\tprotocol string\n\tpeer     string\n}\n\nfunc (sa *addrWrapper) Network() string {\n\treturn sa.protocol\n}\n\nfunc (sa *addrWrapper) String() string {\n\treturn sa.peer\n}\n\ntype listenerWrapper struct {\n\tlst         net.Listener\n\tprotocol    string\n\tpeer        string\n\ttargetAddr  string\n\tfingerprint string\n\tsh          *shell.Shell\n}\n\nfunc (lw *listenerWrapper) Accept() (net.Conn, error) {\n\tconn, err := lw.lst.Accept()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &connWrapper{\n\t\tConn:       conn,\n\t\tpeer:       lw.peer,\n\t\tprotocol:   lw.protocol,\n\t\ttargetAddr: lw.targetAddr,\n\t\tsh:         lw.sh,\n\t}, nil\n}\n\nfunc (lw *listenerWrapper) Addr() net.Addr {\n\treturn &addrWrapper{\n\t\tprotocol: lw.protocol,\n\t\tpeer:     lw.peer,\n\t}\n}\n\nfunc (lw *listenerWrapper) Close() error {\n\tdefer lw.lst.Close()\n\tdefer deleteLocalAddr(lw.peer, lw.fingerprint)\n\treturn closeStream(lw.sh, lw.protocol, lw.targetAddr, \"\")\n}\n\nfunc buildLocalAddrPath(id, fingerprint string) string {\n\treturn filepath.Join(os.TempDir(), fmt.Sprintf(\"brig-%s:%s.addr\", id, fingerprint))\n}\n\nfunc readLocalAddr(id, fingerprint string) (string, error) {\n\tpath := buildLocalAddrPath(id, fingerprint)\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn string(data), nil\n}\n\nfunc deleteLocalAddr(id, fingerprint string) error {\n\tpath := buildLocalAddrPath(id, fingerprint)\n\treturn os.RemoveAll(path)\n}\n\nfunc writeLocalAddr(id, fingerprint, addr string) error {\n\tpath := buildLocalAddrPath(id, fingerprint)\n\treturn ioutil.WriteFile(path, []byte(addr), 0644)\n}\n\n// Listen will listen to the protocol\nfunc (nd *Node) Listen(protocol string) (net.Listener, error) {\n\tif !nd.isOnline() {\n\t\treturn nil, ErrOffline\n\t}\n\n\tself, err := nd.Identity()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// TODO: Is this even needed still?\n\t// Do we want support for having more than one brig per ipfs.\n\t// Append the id to the protocol:\n\tprotocol = path.Join(protocol, self.Addr)\n\n\tport := util.FindFreePort()\n\taddr := fmt.Sprintf(\"/ip4/127.0.0.1/tcp/%d\", port)\n\n\t// Prevent errors by closing any previously opened listeners:\n\tif err := closeStream(nd.sh, protocol, \"\", \"\"); err != nil {\n\t\treturn nil, err\n\t}\n\n\tlog.Debugf(\"backend: listening for %s over port %d\", protocol, port)\n\tif err := openListener(nd.sh, protocol, addr); err != nil {\n\t\treturn nil, err\n\t}\n\n\tlocalAddr := fmt.Sprintf(\"127.0.0.1:%d\", port)\n\tlst, err := net.Listen(\"tcp\", localAddr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := writeLocalAddr(self.Addr, nd.fingerprint, localAddr); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &listenerWrapper{\n\t\tlst:         lst,\n\t\tprotocol:    protocol,\n\t\tpeer:        self.Addr,\n\t\ttargetAddr:  addr,\n\t\tfingerprint: nd.fingerprint,\n\t\tsh:          nd.sh,\n\t}, nil\n}\n\n/////////////////////////////////\n\ntype pinger struct {\n\tlastSeen  time.Time\n\troundtrip time.Duration\n\terr       error\n\n\tmu     sync.Mutex\n\tcancel func()\n\tnd     *Node\n}\n\n// LastSeen returns the time we pinged the remote last time.\nfunc (p *pinger) LastSeen() time.Time {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\n\treturn p.lastSeen\n}\n\n// Roundtrip returns the time needed send a single package to\n// the remote and receive the answer.\nfunc (p *pinger) Roundtrip() time.Duration {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\n\treturn p.roundtrip\n}\n\n// Err will return a non-nil error when the current ping did not succeed.\nfunc (p *pinger) Err() error {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\n\treturn p.err\n}\n\n// Close will clean up the pinger.\nfunc (p *pinger) Close() error {\n\tif p.cancel != nil {\n\t\tp.cancel()\n\t\tp.cancel = nil\n\t}\n\n\treturn nil\n}\n\nfunc (p *pinger) update(ctx context.Context, addr, self string) {\n\t// Edge case: test setups where we ping ourselves.\n\tif self == addr {\n\t\tp.mu.Lock()\n\t\tp.err = nil\n\t\tp.lastSeen = time.Now()\n\t\tp.roundtrip = time.Duration(0)\n\t\tp.mu.Unlock()\n\t\treturn\n\t}\n\n\t// Do the network op without a lock:\n\troundtrip, err := ping(p.nd.sh, addr)\n\n\tp.mu.Lock()\n\tif err != nil {\n\t\tp.err = err\n\t} else {\n\t\tp.err = nil\n\t\tp.lastSeen = time.Now()\n\t\tp.roundtrip = roundtrip\n\t}\n\n\tp.mu.Unlock()\n}\n\nfunc (p *pinger) Run(ctx context.Context, addr string) error {\n\tself, err := p.nd.Identity()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp.update(ctx, addr, self.Addr)\n\ttckr := time.NewTicker(10 * time.Second)\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-tckr.C:\n\t\t\tp.update(ctx, addr, self.Addr)\n\t\t}\n\t}\n}\n\nfunc ping(sh *shell.Shell, peerID string) (time.Duration, error) {\n\tctx := context.Background()\n\tresp, err := sh.Request(\"ping\", peerID).Send(ctx)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\treturn 0, resp.Error\n\t}\n\n\traw := struct {\n\t\tSuccess bool\n\t\tTime    int64\n\t}{}\n\n\tif err := json.NewDecoder(resp.Output).Decode(&raw); err != nil {\n\t\treturn 0, err\n\t}\n\n\tif raw.Success {\n\t\treturn time.Duration(raw.Time), nil\n\t}\n\n\treturn 0, fmt.Errorf(\"no ping\")\n}\n\n// ErrWaiting is the initial error state of a pinger.\n// The error will be unset once a successful ping was made.\nvar ErrWaiting = errors.New(\"waiting for route\")\n\n// Ping will return a pinger for `addr`.\nfunc (nd *Node) Ping(addr string) (netBackend.Pinger, error) {\n\tif !nd.isOnline() {\n\t\treturn nil, ErrOffline\n\t}\n\n\tlog.Debugf(\"backend: start ping »%s«\", addr)\n\tp := &pinger{\n\t\tnd:  nd,\n\t\terr: ErrWaiting,\n\t}\n\n\tctx, cancel := context.WithCancel(context.Background())\n\tp.cancel = cancel\n\tgo p.Run(ctx, addr)\n\treturn p, nil\n}\n"
  },
  {
    "path": "backend/httpipfs/net_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nconst (\n\tTestProtocol = \"/brig/test/1.0\"\n)\n\nvar (\n\tTestMessage = []byte(\"Hello World!\")\n)\n\nfunc testClientSide(t *testing.T, ipfsPathB string, addr string) {\n\tnd, err := NewNode(ipfsPathB, \"\")\n\trequire.Nil(t, err)\n\n\tconn, err := nd.Dial(addr, \"\", TestProtocol)\n\trequire.Nil(t, err)\n\n\tdefer func() {\n\t\trequire.Nil(t, conn.Close())\n\t}()\n\n\t_, err = conn.Write(TestMessage)\n\trequire.Nil(t, err)\n}\n\nfunc TestDialAndListen(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithDoubleIpfs(t, 1, func(t *testing.T, ipfsPathA, ipfsPathB string) {\n\t\tnd, err := NewNode(ipfsPathA, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tlst, err := nd.Listen(TestProtocol)\n\t\trequire.Nil(t, err)\n\t\tdefer func() {\n\t\t\trequire.Nil(t, lst.Close())\n\t\t}()\n\n\t\tid, err := nd.Identity()\n\t\trequire.Nil(t, err)\n\n\t\tgo testClientSide(t, ipfsPathB, id.Addr)\n\n\t\tconn, err := lst.Accept()\n\t\trequire.Nil(t, err)\n\n\t\tbuf := &bytes.Buffer{}\n\t\t_, err = io.Copy(buf, conn)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, TestMessage, buf.Bytes())\n\t})\n}\n\nfunc TestPing(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithDoubleIpfs(t, 1, func(t *testing.T, ipfsPathA, ipfsPathB string) {\n\t\tndA, err := NewNode(ipfsPathA, \"\")\n\t\trequire.NoError(t, err)\n\n\t\tidA, err := ndA.Identity()\n\t\trequire.NoError(t, err)\n\n\t\tpinger, err := ndA.Ping(idA.Addr)\n\t\trequire.NoError(t, err)\n\n\t\tdefer func() {\n\t\t\trequire.NoError(t, pinger.Close())\n\t\t}()\n\n\t\tfor idx := 0; idx < 60; idx++ {\n\t\t\tif pinger.Err() != ErrWaiting {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\ttime.Sleep(1 * time.Second)\n\t\t}\n\n\t\trequire.Nil(t, pinger.Err())\n\t\trequire.True(t, pinger.Roundtrip() < time.Second)\n\t\trequire.True(t, time.Since(pinger.LastSeen()) < 2*time.Second)\n\t})\n}\n\nfunc TestDialAndListenOnSingleNode(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tlst, err := nd.Listen(TestProtocol)\n\t\trequire.Nil(t, err)\n\t\tdefer func() {\n\t\t\trequire.Nil(t, lst.Close())\n\t\t}()\n\n\t\tid, err := nd.Identity()\n\t\trequire.Nil(t, err)\n\n\t\tgo testClientSide(t, ipfsPath, id.Addr)\n\n\t\tconn, err := lst.Accept()\n\t\trequire.Nil(t, err)\n\n\t\tbuf := &bytes.Buffer{}\n\t\t_, err = io.Copy(buf, conn)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, TestMessage, buf.Bytes())\n\t})\n}\n\nfunc TestPingSelf(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tid, err := nd.Identity()\n\t\trequire.Nil(t, err)\n\n\t\tpinger, err := nd.Ping(id.Addr)\n\t\trequire.Nil(t, err)\n\n\t\tdefer func() {\n\t\t\trequire.Nil(t, pinger.Close())\n\t\t}()\n\n\t\tfor idx := 0; idx < 60; idx++ {\n\t\t\tif pinger.Err() != ErrWaiting {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\ttime.Sleep(250 * time.Millisecond)\n\t\t}\n\n\t\trequire.Nil(t, pinger.Err())\n\t\trequire.True(t, pinger.Roundtrip() < time.Second)\n\t\trequire.True(t, time.Since(pinger.LastSeen()) < 2*time.Second)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/pin.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/patrickmn/go-cache\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// IsPinned returns true when `hash` is pinned in some way.\nfunc (nd *Node) IsPinned(hash h.Hash) (bool, error) {\n\tctx := context.Background()\n\tresp, err := nd.sh.Request(\"pin/ls\", hash.B58String()).Send(ctx)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\tif strings.HasSuffix(resp.Error.Message, \"is not pinned\") {\n\t\t\treturn false, nil\n\t\t}\n\n\t\treturn false, resp.Error\n\t}\n\n\traw := struct {\n\t\tKeys map[string]struct {\n\t\t\tType string\n\t\t}\n\t}{}\n\n\tif err := json.NewDecoder(resp.Output).Decode(&raw); err != nil {\n\t\treturn false, err\n\t}\n\n\tif len(raw.Keys) == 0 {\n\t\treturn false, nil\n\t}\n\n\treturn true, nil\n}\n\n// Pin will pin `hash`.\nfunc (nd *Node) Pin(hash h.Hash) error {\n\treturn nd.sh.Pin(hash.B58String())\n}\n\n// Unpin will unpin `hash`.\nfunc (nd *Node) Unpin(hash h.Hash) error {\n\terr := nd.sh.Unpin(hash.B58String())\n\tif err == nil || err.Error() == \"pin/rm: not pinned or pinned indirectly\" {\n\t\treturn nil\n\t}\n\treturn err\n}\n\ntype objectRef struct {\n\tRef string // hash of the ref\n\tErr string\n}\n\n// Link is a child of a hash.\n// Used by IPFS when files get bigger.\ntype Link struct {\n\tName string\n\tHash string\n\tSize uint64\n}\n\n// IsCached checks if hash and all its children are cached\nfunc (nd *Node) IsCached(hash h.Hash) (bool, error) {\n\tlocallyCached := nd.cache.locallyCached\n\tstat, found := locallyCached.Get(hash.B58String())\n\tif found {\n\t\treturn stat.(bool), nil\n\t}\n\n\t// Nothing in the cache, we have to figure it out.\n\t// We will execute equivalent of\n\t//   ipfs refs --offline --recursive hash\n\t// note the `--recursive` switch, we need to check all children links\n\t// if command fails at least one child link/hash is missing\n\tctx := context.Background()\n\treq := nd.sh.Request(\"refs\", hash.B58String())\n\treq.Option(\"offline\", \"true\")\n\treq.Option(\"recursive\", \"true\")\n\tresp, err := req.Send(ctx)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tdefer resp.Close()\n\tif resp.Error != nil {\n\t\treturn false, resp.Error\n\t}\n\n\tref := objectRef{}\n\tjsonDecoder := json.NewDecoder(resp.Output)\n\tfor {\n\t\tif err := jsonDecoder.Decode(&ref); err == io.EOF {\n\t\t\tbreak\n\t\t} else if err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif ref.Err != \"\" {\n\t\t\t// Either main hash or one of its refs/links is not available locally\n\t\t\t// consequently the whole hash is not cached\n\t\t\tlocallyCached.Set(hash.B58String(), false, cache.DefaultExpiration)\n\t\t\treturn false, nil\n\t\t}\n\t}\n\t// if we are here, the parent hash and all its children links/hashes are cached\n\tlocallyCached.Set(hash.B58String(), true, cache.DefaultExpiration)\n\treturn true, nil\n}\n\n// CachedSize returns the cached size of the node.\n// Negative indicates unknow eithe due to error or hash not stored locally\nfunc (nd *Node) CachedSize(hash h.Hash) (int64, error) {\n\tctx := context.Background()\n\treq := nd.sh.Request(\"object/stat\", hash.B58String())\n\t// provides backend size only for cached objects\n\treq.Option(\"offline\", \"true\")\n\tresp, err := req.Send(ctx)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\treturn -1, resp.Error\n\t}\n\n\traw := struct {\n\t\tCumulativeSize int64\n\t\tKey            string\n\t}{}\n\n\tif err := json.NewDecoder(resp.Output).Decode(&raw); err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn raw.CumulativeSize, nil\n}\n"
  },
  {
    "path": "backend/httpipfs/pin_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPinUnpin(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tdata := testutil.CreateDummyBuf(4096 * 1024)\n\t\thash, err := nd.Add(bytes.NewReader(data))\n\t\trequire.Nil(t, err)\n\n\t\tisPinned, err := nd.IsPinned(hash)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\n\t\trequire.Nil(t, nd.Unpin(hash))\n\n\t\tisPinned, err = nd.IsPinned(hash)\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\n\t\trequire.Nil(t, nd.Pin(hash))\n\n\t\tisPinned, err = nd.IsPinned(hash)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t})\n}\n\nfunc TestIsCached(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\thash, err := nd.Add(bytes.NewReader([]byte{1, 2, 3}))\n\t\trequire.Nil(t, err)\n\n\t\tisCached, err := nd.IsCached(hash)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isCached)\n\n\t\t// Let's just hope this hash does not exist locally:\n\t\tdummyHash, err := h.FromB58String(\"QmanyEbg6appBzzGaGMZm9NKqPVCbrWaB8ayGDerWh6aMB\")\n\t\trequire.Nil(t, err)\n\n\t\tisCached, err = nd.IsCached(dummyHash)\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isCached)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/pubsub.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\teventsBackend \"github.com/sahib/brig/events/backend\"\n)\n\ntype subWrapper struct {\n\tsub *shell.PubSubSubscription\n}\n\ntype msgWrapper struct {\n\tmsg *shell.Message\n}\n\nfunc (msg *msgWrapper) Data() []byte {\n\treturn msg.msg.Data\n}\n\nfunc (msg *msgWrapper) Source() string {\n\treturn string(msg.msg.From)\n}\n\nfunc (s *subWrapper) Next(ctx context.Context) (eventsBackend.Message, error) {\n\tmsg, err := s.sub.Next()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &msgWrapper{msg: msg}, nil\n}\n\nfunc (s *subWrapper) Close() error {\n\treturn s.sub.Cancel()\n}\n\n// Subscribe will create a subscription for `topic`.\n// You can use the subscription to wait for the next incoming message.\n// This will only work if the daemon supports/has enabled pub sub.\nfunc (nd *Node) Subscribe(ctx context.Context, topic string) (eventsBackend.Subscription, error) {\n\tif !nd.isOnline() {\n\t\treturn nil, ErrOffline\n\t}\n\n\tsub, err := nd.sh.PubSubSubscribe(topic)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &subWrapper{sub: sub}, nil\n}\n\n// PublishEvent will publish `data` on `topic`.\nfunc (nd *Node) PublishEvent(topic string, data []byte) error {\n\tif !nd.isOnline() {\n\t\treturn ErrOffline\n\t}\n\n\treturn nd.sh.PubSubPublish(topic, string(data))\n}\n"
  },
  {
    "path": "backend/httpipfs/pubsub_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPubSub(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\t// Only use one ipfs instance, for test performance.\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tself, err := nd.Identity()\n\t\trequire.Nil(t, err)\n\n\t\tctx := context.Background()\n\t\tsub, err := nd.Subscribe(ctx, \"test-topic\")\n\t\trequire.Nil(t, err)\n\n\t\tdefer func() {\n\t\t\trequire.Nil(t, sub.Close())\n\t\t}()\n\n\t\ttime.Sleep(1 * time.Second)\n\t\tdata := []byte(\"hello world!\")\n\t\tgo nd.PublishEvent(\"test-topic\", data)\n\n\t\tmsg, err := sub.Next(ctx)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, data, msg.Data())\n\t\trequire.Equal(t, self.Addr, msg.Source())\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/resolve.go",
    "content": "package httpipfs\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\tipfsutil \"github.com/ipfs/go-ipfs-util\"\n\tmh \"github.com/multiformats/go-multihash\"\n\t\"github.com/sahib/brig/net/peer\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// PublishName will announce `name` to the network\n// and make us discoverable.\nfunc (nd *Node) PublishName(name string) error {\n\tif !nd.isOnline() {\n\t\treturn ErrOffline\n\t}\n\n\tfullName := \"brig:\" + string(name)\n\tkey, err := nd.sh.BlockPut([]byte(fullName), \"v0\", \"sha2-256\", -1)\n\tlog.Debugf(\"published name: »%s« (key %s)\", name, key)\n\treturn err\n}\n\n// Identity returns our own identity.\n// It will cache the identity after the first request.\nfunc (nd *Node) Identity() (peer.Info, error) {\n\tnd.mu.Lock()\n\tif nd.cachedIdentity != \"\" {\n\t\tdefer nd.mu.Unlock()\n\t\treturn peer.Info{\n\t\t\tName: \"httpipfs\",\n\t\t\tAddr: nd.cachedIdentity,\n\t\t}, nil\n\t}\n\n\t// Do not hold the lock during net ops:\n\tnd.mu.Unlock()\n\n\tid, err := nd.sh.ID()\n\tif err != nil {\n\t\treturn peer.Info{}, err\n\t}\n\n\tnd.mu.Lock()\n\tnd.cachedIdentity = id.ID\n\tnd.mu.Unlock()\n\n\treturn peer.Info{\n\t\tName: \"httpipfs\",\n\t\tAddr: id.ID,\n\t}, nil\n}\n\nfunc findProvider(ctx context.Context, sh *shell.Shell, hash h.Hash) ([]string, error) {\n\tresp, err := sh.Request(\"dht/findprovs\", hash.B58String()).Send(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer resp.Output.Close()\n\n\tif resp.Error != nil {\n\t\treturn nil, resp.Error\n\t}\n\n\tids := make(map[string]bool)\n\tbr := bufio.NewReader(resp.Output)\n\tinterrupted := false\n\n\tfor len(ids) < 20 && !interrupted {\n\t\tline, err := br.ReadBytes('\\n')\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\traw := struct {\n\t\t\tResponses []struct {\n\t\t\t\tID string\n\t\t\t}\n\t\t}{}\n\n\t\tlr := bytes.NewReader(line)\n\t\tif err := json.NewDecoder(lr).Decode(&raw); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfor _, resp := range raw.Responses {\n\t\t\tids[resp.ID] = true\n\t\t}\n\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tinterrupted = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tlinearIDs := []string{}\n\tfor id := range ids {\n\t\tlinearIDs = append(linearIDs, id)\n\t}\n\n\treturn linearIDs, nil\n}\n\n// ResolveName will return all peers that identify themselves as `name`.\n// If ctx is canceled it will return early, but return no error.\nfunc (nd *Node) ResolveName(ctx context.Context, name string) ([]peer.Info, error) {\n\tif !nd.isOnline() {\n\t\treturn nil, ErrOffline\n\t}\n\n\tname = \"brig:\" + name\n\tmhash, err := mh.Sum([]byte(name), ipfsutil.DefaultIpfsHash, -1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlog.Debugf(\"backend: resolve »%s« (%s)\", name, mhash.B58String())\n\n\tids, err := findProvider(ctx, nd.sh, h.Hash(mhash))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfos := []peer.Info{}\n\tfor _, id := range ids {\n\t\tinfos = append(infos, peer.Info{\n\t\t\tAddr: id,\n\t\t\tName: peer.Name(name),\n\t\t})\n\t}\n\n\treturn infos, nil\n}\n"
  },
  {
    "path": "backend/httpipfs/resolve_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPublishResolve(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\t// Only use one ipfs instance, for test performance.\n\tWithDoubleIpfs(t, 1, func(t *testing.T, ipfsPathA, ipfsPathB string) {\n\t\tndA, err := NewNode(ipfsPathA, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tndB, err := NewNode(ipfsPathB, \"\")\n\t\trequire.Nil(t, err)\n\n\t\t// self, err := ndA.Identity()\n\t\t// require.Nil(t, err)\n\n\t\trequire.Nil(t, ndA.PublishName(\"alice\"))\n\t\tctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)\n\t\tdefer cancel()\n\n\t\tinfos, err := ndB.ResolveName(ctx, \"alice\")\n\t\trequire.Nil(t, err)\n\n\t\t// TODO: This test doesn't produce results yet,\n\t\t// most likely because of time issues (would need to run longer?)\n\t\tfmt.Println(infos)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/shell.go",
    "content": "package httpipfs\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/blang/semver\"\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\tma \"github.com/multiformats/go-multiaddr\"\n\t\"github.com/patrickmn/go-cache\"\n\t\"github.com/sahib/brig/repo/setup\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar (\n\t// ErrOffline is returned by operations that need online support\n\t// to work when the backend is in offline mode.\n\tErrOffline = errors.New(\"backend is in offline mode\")\n)\n\n// IpfsStateCache contains various backend related caches\ntype IpfsStateCache struct {\n\tlocallyCached *cache.Cache // shows if the hash and its children is locally cached by ipfs\n}\n\n// Node is the struct that holds the httpipfs backend together.\n// It is a shallow type that has not much own state and is very light.\ntype Node struct {\n\tsh             *shell.Shell\n\tmu             sync.Mutex\n\tcachedIdentity string\n\tallowNetOps    bool\n\tfingerprint    string\n\tversion        *semver.Version\n\tcache          *IpfsStateCache\n\tquiet          bool\n}\n\nfunc getExperimentalFeatures(sh *shell.Shell) (map[string]bool, error) {\n\tctx := context.Background()\n\tresp, err := sh.Request(\"config/show\").Send(ctx)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer resp.Close()\n\n\tif resp.Error != nil {\n\t\treturn nil, resp.Error\n\t}\n\n\traw := struct {\n\t\tExperimental map[string]bool\n\t}{}\n\n\tif err := json.NewDecoder(resp.Output).Decode(&raw); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn raw.Experimental, nil\n}\n\n// Option is a option you can pass to NewNode()\n// It controls the behavior of the node.\ntype Option func(nd *Node)\n\n// WithNoLogging will make the node not print log messages.\n// Useful for commandline use cases.\nfunc WithNoLogging() Option {\n\treturn func(nd *Node) {\n\t\tnd.quiet = true\n\t}\n}\n\nfunc toMultiAddr(ipfsPathOrMultiaddr string) (ma.Multiaddr, error) {\n\tif !filepath.IsAbs(ipfsPathOrMultiaddr) {\n\t\t// multiaddr always start with a slash,\n\t\t// this branch affects only file paths.\n\t\tvar err error\n\t\tipfsPathOrMultiaddr, err = filepath.Abs(ipfsPathOrMultiaddr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif _, err := os.Stat(ipfsPathOrMultiaddr); err == nil {\n\t\treturn setup.GetAPIAddrForPath(ipfsPathOrMultiaddr)\n\t}\n\n\treturn ma.NewMultiaddr(ipfsPathOrMultiaddr)\n}\n\n// NewNode returns a new http based IPFS backend.\nfunc NewNode(ipfsPathOrMultiaddr string, fingerprint string, opts ...Option) (*Node, error) {\n\tnd := &Node{\n\t\tallowNetOps: true,\n\t\tfingerprint: fingerprint,\n\t\tcache: &IpfsStateCache{\n\t\t\tlocallyCached: cache.New(5*time.Minute, 10*time.Minute),\n\t\t},\n\t}\n\n\tfor _, opt := range opts {\n\t\topt(nd)\n\t}\n\n\tm, err := toMultiAddr(ipfsPathOrMultiaddr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !nd.quiet {\n\t\tlog.Infof(\"Connecting to IPFS HTTP API at %s\", m.String())\n\t}\n\n\tnd.sh = shell.NewShell(m.String())\n\n\tversionString, _, err := nd.sh.Version()\n\tif err != nil && !nd.quiet {\n\t\tlog.Warningf(\"failed to get version: %v\", err)\n\t}\n\n\tversion, err := semver.Parse(versionString)\n\tif err != nil && !nd.quiet {\n\t\tlog.Warningf(\"failed to parse version string of IPFS (»%s«): %v\", versionString, err)\n\t}\n\n\tif !nd.quiet {\n\t\tlog.Infof(\"The IPFS version is »%s«.\", version)\n\t\tif version.LT(semver.MustParse(\"0.4.18\")) {\n\t\t\tlog.Warningf(\"This version is quite old. Please update, if possible.\\n\")\n\t\t\tlog.Warningf(\"We only test on newer versions (>= 0.4.18).\\n\")\n\t\t}\n\t}\n\n\tnd.version = &version\n\n\tif !nd.quiet {\n\t\tfeatures, err := getExperimentalFeatures(nd.sh)\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"Failed to get experimental feature list: %v\", err)\n\t\t} else {\n\t\t\tif !features[\"Libp2pStreamMounting\"] {\n\t\t\t\tlog.Warningf(\"Stream mounting does not seem to be enabled.\")\n\t\t\t\tlog.Warningf(\"Please execute the following to change that:\")\n\t\t\t\tlog.Warningf(\"$ ipfs config --json Experimental.Libp2pStreamMounting true\")\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nd, nil\n}\n\n// IsOnline returns true if the node is in online mode and the daemon is reachable.\nfunc (nd *Node) IsOnline() bool {\n\tnd.mu.Lock()\n\tallowNetOps := nd.allowNetOps\n\tnd.mu.Unlock()\n\n\treturn nd.sh.IsUp() && allowNetOps\n}\n\n// Connect implements Backend.Connect\nfunc (nd *Node) Connect() error {\n\tnd.mu.Lock()\n\tdefer nd.mu.Unlock()\n\n\tnd.allowNetOps = true\n\treturn nil\n}\n\n// Disconnect implements Backend.Disconnect\nfunc (nd *Node) Disconnect() error {\n\tnd.mu.Lock()\n\tdefer nd.mu.Unlock()\n\n\tnd.allowNetOps = false\n\treturn nil\n}\n\nfunc (nd *Node) isOnline() bool {\n\tnd.mu.Lock()\n\tdefer nd.mu.Unlock()\n\n\treturn nd.allowNetOps\n}\n\n// Close implements Backend.Close\nfunc (nd *Node) Close() error {\n\treturn nil\n}\n\n// Name returns \"httpipfs\" as name of the backend.\nfunc (nd *Node) Name() string {\n\treturn \"httpipfs\"\n}\n"
  },
  {
    "path": "backend/httpipfs/testing.go",
    "content": "package httpipfs\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"testing\"\n\t\"time\"\n\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// WithIpfs starts a new IPFS instance and calls `fn` with the API port to it.\n// `portOff` is the offset to add on all standard ports.\nfunc WithIpfs(t *testing.T, portOff int, fn func(t *testing.T, ipfsPath string)) {\n\tipfsPath, err := ioutil.TempDir(\"\", \"brig-httpipfs-test-\")\n\trequire.Nil(t, err)\n\tdefer os.RemoveAll(ipfsPath)\n\n\tgwtPort := 8081 + portOff\n\tswmPort := 4001 + portOff\n\tapiPort := 5011 + portOff\n\n\tos.Setenv(\"IPFS_PATH\", ipfsPath)\n\tscript := [][]string{\n\t\t{\"ipfs\", \"init\"},\n\t\t{\"ipfs\", \"config\", \"--json\", \"Addresses.Swarm\", fmt.Sprintf(\"[\\\"/ip4/127.0.0.1/tcp/%d\\\"]\", swmPort)},\n\t\t{\"ipfs\", \"config\", \"--json\", \"Experimental.Libp2pStreamMounting\", \"true\"},\n\t\t{\"ipfs\", \"config\", \"Addresses.API\", fmt.Sprintf(\"/ip4/127.0.0.1/tcp/%d\", apiPort)},\n\t\t{\"ipfs\", \"config\", \"Addresses.Gateway\", fmt.Sprintf(\"/ip4/127.0.0.1/tcp/%d\", gwtPort)},\n\t}\n\n\tfor _, line := range script {\n\t\tcmd := exec.Command(line[0], line[1:]...)\n\t\tcmd.Env = append(cmd.Env, fmt.Sprintf(\"IPFS_PATH=%s\", ipfsPath))\n\t\terr := cmd.Run()\n\t\trequire.NoError(t, err)\n\t}\n\n\tdaemonCmd := exec.Command(\"ipfs\", \"daemon\", \"--enable-pubsub-experiment\")\n\t// daemonCmd.Stdout = os.Stdout\n\t// daemonCmd.Stderr = os.Stdout\n\tdaemonCmd.Env = append(daemonCmd.Env, fmt.Sprintf(\"IPFS_PATH=%s\", ipfsPath))\n\trequire.Nil(t, daemonCmd.Start())\n\n\tdefer func() {\n\t\trequire.Nil(t, daemonCmd.Process.Kill())\n\t}()\n\n\t// Wait until the daemon actually offers the API interface:\n\tlocalAddr := fmt.Sprintf(\"localhost:%d\", apiPort)\n\tfor tries := 0; tries < 200; tries++ {\n\t\tif shell.NewShell(localAddr).IsUp() {\n\t\t\tbreak\n\t\t}\n\n\t\ttime.Sleep(100 * time.Millisecond)\n\t}\n\n\t// Actually call the test:\n\tfn(t, ipfsPath)\n\n}\n\n// WithDoubleIpfs starts two IPFS instances in parallel.\nfunc WithDoubleIpfs(t *testing.T, portOff int, fn func(t *testing.T, ipfsPathA, ipfsPathB string)) {\n\tchPathA := make(chan string)\n\tchPathB := make(chan string)\n\tstop := make(chan bool, 2)\n\n\tgo WithIpfs(t, portOff, func(t *testing.T, ipfsPathA string) {\n\t\tchPathA <- ipfsPathA\n\t\t<-stop\n\t})\n\n\tgo WithIpfs(t, portOff+1, func(t *testing.T, ipfsPathB string) {\n\t\tchPathB <- ipfsPathB\n\t\t<-stop\n\t})\n\n\tfn(t, <-chPathA, <-chPathB)\n\tstop <- true\n\tstop <- true\n}\n"
  },
  {
    "path": "backend/httpipfs/testing_test.go",
    "content": "package httpipfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestIpfsStartup(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithIpfs(t, 1, func(t *testing.T, ipfsPath string) {\n\t\tnd, err := NewNode(ipfsPath, \"\")\n\t\trequire.Nil(t, err)\n\n\t\thash, err := nd.Add(bytes.NewReader([]byte(\"hello\")))\n\t\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\t\trequire.Equal(t, \"QmWfVY9y3xjsixTgbd9AorQxH7VtMpzfx2HaWtsoUYecaX\", hash.String())\n\t})\n}\n\nfunc TestDoubleIpfsStartup(t *testing.T) {\n\tt.Skipf(\"will be replaced by bash based e2e tests\")\n\n\tWithDoubleIpfs(t, 1, func(t *testing.T, ipfsPathA, ipfsPathB string) {\n\t\tndA, err := NewNode(ipfsPathA, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tndB, err := NewNode(ipfsPathB, \"\")\n\t\trequire.Nil(t, err)\n\n\t\tidA, err := ndA.Identity()\n\t\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\t\tidB, err := ndB.Identity()\n\t\trequire.Nil(t, err)\n\n\t\trequire.NotEqual(t, idA.Addr, idB.Addr)\n\t})\n}\n"
  },
  {
    "path": "backend/httpipfs/version.go",
    "content": "package httpipfs\n\n// VersionInfo holds version info (yeah, golint)\ntype VersionInfo struct {\n\tsemVer, name, rev string\n}\n\n// SemVer returns a VersionInfo string complying semantic versioning\nfunc (v *VersionInfo) SemVer() string { return v.semVer }\n\n// Name returns the name of the backend\nfunc (v *VersionInfo) Name() string { return v.name }\n\n// Rev returns the git revision of the backend\nfunc (v *VersionInfo) Rev() string { return v.rev }\n\n// Version returns detailed VersionInfo info as struct\nfunc (n *Node) Version() *VersionInfo {\n\tv, rev, err := n.sh.Version()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn &VersionInfo{\n\t\tsemVer: v,\n\t\tname:   \"go-ipfs\",\n\t\trev:    rev,\n\t}\n}\n"
  },
  {
    "path": "backend/mock/mock.go",
    "content": "package mock\n\nimport (\n\t\"github.com/sahib/brig/catfs\"\n\teventsMock \"github.com/sahib/brig/events/mock\"\n\tnetMock \"github.com/sahib/brig/net/mock\"\n\trepoMock \"github.com/sahib/brig/repo/mock\"\n)\n\n// Backend is used for local testing.\ntype Backend struct {\n\t*catfs.MemFsBackend\n\t*repoMock.RepoBackend\n\t*netMock.NetBackend\n\t*eventsMock.EventsBackend\n}\n\n// NewMockBackend returns a backend.Backend that operates only in memory\n// and does not use any resources outliving the own process, except the net\n// part which stores connection info on disk.\nfunc NewMockBackend(path, owner string) *Backend {\n\treturn &Backend{\n\t\tMemFsBackend:  catfs.NewMemFsBackend(),\n\t\tRepoBackend:   repoMock.NewMockRepoBackend(),\n\t\tNetBackend:    netMock.NewNetBackend(path, owner),\n\t\tEventsBackend: eventsMock.NewEventsBackend(owner),\n\t}\n}\n\n// VersionInfo holds version info (yeah, golint)\ntype VersionInfo struct {\n\tsemVer, name, rev string\n}\n\n// SemVer returns a version string complying semantic versioning\nfunc (v *VersionInfo) SemVer() string { return v.semVer }\n\n// Name returns the name of the backend\nfunc (v *VersionInfo) Name() string { return v.name }\n\n// Rev returns the git revision of the backend\nfunc (v *VersionInfo) Rev() string { return v.rev }\n\n// Version returns detailed version info as struct\nfunc Version() *VersionInfo {\n\treturn &VersionInfo{\n\t\tsemVer: \"0.0.1\",\n\t\tname:   \"mock\",\n\t\trev:    \"HEAD\",\n\t}\n}\n"
  },
  {
    "path": "bench/bench.go",
    "content": "package bench\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math/rand\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/pkg/xattr\"\n\t\"github.com/sahib/brig/backend/httpipfs\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/client/clienttest\"\n\t\"github.com/sahib/brig/fuse/fusetest\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/server\"\n\t\"github.com/sahib/brig/util/testutil\"\n)\n\n// Run is a single benchmark run\ntype Run struct {\n\tTook             time.Duration\n\tAllocs           int64\n\tCompressionRatio float32\n}\n\n// Runs is a list of individual runs\ntype Runs []Run\n\n// Average returns a fictional average run out of all runs\nfunc (runs Runs) Average() Run {\n\tsum := Run{}\n\tfor _, run := range runs {\n\t\tsum.Took += run.Took\n\t\tsum.Allocs += run.Allocs\n\t\tsum.CompressionRatio += run.CompressionRatio\n\t}\n\n\treturn Run{\n\t\tTook:             sum.Took / time.Duration(len(runs)),\n\t\tAllocs:           sum.Allocs / int64(len(runs)),\n\t\tCompressionRatio: sum.CompressionRatio / float32(len(runs)),\n\t}\n}\n\n// Bench is the interface every benchmark needs to implement.\ntype Bench interface {\n\t// SupportHints should return true for benchmarks where\n\t// passing hint influences the benchmark result.\n\tSupportHints() bool\n\n\t// CanBeVerified should return true when the test\n\t// can use the verifier (i.e. is a read test)\n\tCanBeVerified() bool\n\n\t// Bench should read the input from `r` and apply `hint` if applicable.\n\t// The time needed to process all of `r` should be returned.\n\tBench(hint hints.Hint, size int64, r io.Reader, w io.Writer) (*Run, error)\n\n\t// Close should clean up the benchmark.\n\tClose() error\n}\n\nvar (\n\tdummyKey = make([]byte, 32)\n)\n\nfunc withRunStats(size int64, fn func() (int64, error)) (*Run, error) {\n\tstart := time.Now()\n\n\tvar memBefore, memAfter runtime.MemStats\n\truntime.ReadMemStats(&memBefore)\n\twritten, err := fn()\n\truntime.ReadMemStats(&memAfter)\n\ttook := time.Since(start)\n\treturn &Run{\n\t\tTook:             took,\n\t\tCompressionRatio: float32(written) / float32(size),\n\t\tAllocs:           int64(memAfter.Mallocs) - int64(memBefore.Mallocs),\n\t}, err\n}\n\n//////////\n\ntype memcpyBench struct{}\n\nfunc newMemcpyBench(_ string, _ bool) (Bench, error) {\n\treturn memcpyBench{}, nil\n}\n\nfunc (n memcpyBench) SupportHints() bool { return false }\n\nfunc (n memcpyBench) CanBeVerified() bool { return true }\n\nfunc (n memcpyBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\t// NOTE: Use DumbCopy, since io.Copy would use the\n\t// ReadFrom of ioutil.Discard. This is lightning fast.\n\t// We want to measure actual time to copy in memory.\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\treturn testutil.DumbCopy(verifier, r, false, false)\n\t})\n}\n\nfunc (n memcpyBench) Close() error { return nil }\n\n//////////\n\ntype serverCommon struct {\n\tdaemon *server.Server\n\tclient *client.Client\n}\n\nfunc newServerCommon(ipfsPath string) (*serverCommon, error) {\n\tbackendName := \"mock\"\n\tif ipfsPath != \"\" {\n\t\tbackendName = \"httpipfs\"\n\t}\n\n\tsrv, err := clienttest.StartDaemon(\"ali\", backendName, ipfsPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tctl, err := client.Dial(context.Background(), srv.DaemonURL())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &serverCommon{\n\t\tdaemon: srv,\n\t\tclient: ctl,\n\t}, nil\n}\n\nfunc (sc *serverCommon) Close() error {\n\tsc.daemon.Close()\n\tsc.client.Close()\n\treturn nil\n}\n\ntype serverStageBench struct {\n\tcommon *serverCommon\n}\n\nfunc newServerStageBench(ipfsPath string, _ bool) (Bench, error) {\n\tcommon, err := newServerCommon(ipfsPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &serverStageBench{common: common}, nil\n}\n\nfunc (s *serverStageBench) SupportHints() bool { return true }\n\nfunc (s *serverStageBench) CanBeVerified() bool { return false }\n\nfunc (s *serverStageBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\tpath := fmt.Sprintf(\"/path_%d\", rand.Int31())\n\n\tc := string(hint.CompressionAlgo)\n\te := string(hint.EncryptionAlgo)\n\tif err := s.common.client.HintSet(path, &c, &e); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// That's just for cleaning up after each test.\n\tdefer s.common.client.Remove(path)\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\treturn size, s.common.client.StageFromReader(path, r)\n\t})\n}\n\nfunc (s *serverStageBench) Close() error {\n\treturn s.common.Close()\n}\n\ntype serverCatBench struct {\n\tcommon *serverCommon\n}\n\nfunc newServerCatBench(ipfsPath string, _ bool) (Bench, error) {\n\tcommon, err := newServerCommon(ipfsPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &serverCatBench{common: common}, nil\n}\n\nfunc (s *serverCatBench) SupportHints() bool { return true }\n\nfunc (s *serverCatBench) CanBeVerified() bool { return true }\n\nfunc (s *serverCatBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\tpath := fmt.Sprintf(\"/path_%d\", rand.Int31())\n\tc := string(hint.CompressionAlgo)\n\te := string(hint.EncryptionAlgo)\n\n\tif err := s.common.client.HintSet(path, &c, &e); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := s.common.client.StageFromReader(path, r); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// That's just for cleaning up after each test.\n\tdefer s.common.client.Remove(path)\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\tstream, err := s.common.client.Cat(path, true)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tdefer stream.Close()\n\t\treturn testutil.DumbCopy(verifier, stream, false, false)\n\t})\n}\n\nfunc (s *serverCatBench) Close() error {\n\treturn s.common.Close()\n}\n\n//////////\n\ntype mioWriterBench struct{}\n\nfunc newMioWriterBench(_ string, _ bool) (Bench, error) {\n\treturn &mioWriterBench{}, nil\n}\n\nfunc (m *mioWriterBench) SupportHints() bool { return true }\n\nfunc (m *mioWriterBench) CanBeVerified() bool { return false }\n\nfunc (m *mioWriterBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\tstream, _, err := mio.NewInStream(r, \"\", dummyKey, hint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\tdefer stream.Close()\n\t\treturn testutil.DumbCopy(ioutil.Discard, stream, false, false)\n\t})\n}\n\nfunc (m *mioWriterBench) Close() error {\n\treturn nil\n}\n\n//////////\n\ntype mioReaderBench struct{}\n\nfunc newMioReaderBench(_ string, _ bool) (Bench, error) {\n\treturn &mioReaderBench{}, nil\n}\n\nfunc (m *mioReaderBench) SupportHints() bool { return true }\n\nfunc (m *mioReaderBench) CanBeVerified() bool { return true }\n\nfunc (m *mioReaderBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\t// Produce a buffer with encoded data in the right size.\n\t// This is not benched, only the reading of it is.\n\tinStream, _, err := mio.NewInStream(r, \"\", dummyKey, hint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer inStream.Close()\n\n\t// Read it to memory before measuring.\n\t// We do not want to count the encoding in the bench time.\n\tstreamData, err := ioutil.ReadAll(inStream)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\toutStream, err := mio.NewOutStream(\n\t\t\tbytes.NewReader(streamData),\n\t\t\thint.IsRaw(),\n\t\t\tdummyKey,\n\t\t)\n\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tdefer outStream.Close()\n\n\t\treturn testutil.DumbCopy(verifier, outStream, false, false)\n\t})\n}\n\nfunc (m *mioReaderBench) Close() error {\n\treturn nil\n}\n\n//////////\n\ntype ipfsAddOrCatBench struct {\n\tipfsPath string\n\tisAdd    bool\n}\n\nfunc newIPFSAddBench(ipfsPath string, isAdd bool) (Bench, error) {\n\treturn &ipfsAddOrCatBench{ipfsPath: ipfsPath, isAdd: isAdd}, nil\n}\n\nfunc (ia *ipfsAddOrCatBench) SupportHints() bool { return false }\n\nfunc (ia *ipfsAddOrCatBench) CanBeVerified() bool { return !ia.isAdd }\n\nfunc (ia *ipfsAddOrCatBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\tnd, err := httpipfs.NewNode(ia.ipfsPath, \"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer nd.Close()\n\n\tif ia.isAdd {\n\t\treturn withRunStats(size, func() (int64, error) {\n\t\t\t_, err := nd.Add(r)\n\t\t\treturn size, err\n\t\t})\n\t}\n\n\thash, err := nd.Add(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn withRunStats(size, func() (int64, error) {\n\t\tstream, err := nd.Cat(hash)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\treturn testutil.DumbCopy(verifier, stream, false, false)\n\t})\n}\n\nfunc (ia *ipfsAddOrCatBench) Close() error {\n\treturn nil\n}\n\n//////////\n\ntype fuseWriteOrReadBench struct {\n\tipfsPath string\n\tisWrite  bool\n\n\ttmpDir string\n\tctl    *fusetest.Client\n\tproc   *os.Process\n}\n\nfunc newFuseWriteOrReadBench(ipfsPath string, isWrite bool) (Bench, error) {\n\ttmpDir, err := ioutil.TempDir(\"\", \"brig-fuse-bench-*\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tunixSocket := \"unix:\" + filepath.Join(tmpDir, \"socket\")\n\n\tproc, err := fusetest.LaunchAsProcess(fusetest.Options{\n\t\tMountPath:           filepath.Join(tmpDir, \"mount\"),\n\t\tCatfsPath:           filepath.Join(tmpDir, \"catfs\"),\n\t\tIpfsPathOrMultiaddr: ipfsPath,\n\t\tURL:                 unixSocket,\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// bit time to start things up:\n\ttime.Sleep(500 * time.Millisecond)\n\n\tctl, err := fusetest.Dial(unixSocket)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &fuseWriteOrReadBench{\n\t\tipfsPath: ipfsPath,\n\t\tisWrite:  isWrite,\n\t\ttmpDir:   tmpDir,\n\t\tproc:     proc,\n\t\tctl:      ctl,\n\t}, nil\n}\n\nfunc (fb *fuseWriteOrReadBench) SupportHints() bool { return true }\n\nfunc (fb *fuseWriteOrReadBench) CanBeVerified() bool { return !fb.isWrite }\n\nfunc (fb *fuseWriteOrReadBench) Bench(hint hints.Hint, size int64, r io.Reader, verifier io.Writer) (*Run, error) {\n\tmountDir := filepath.Join(fb.tmpDir, \"mount\")\n\ttestPath := filepath.Join(mountDir, fmt.Sprintf(\"/path_%d\", rand.Int31()))\n\n\tconst (\n\t\txattrEnc = \"user.brig.hints.encryption\"\n\t\txattrZip = \"user.brig.hints.compression\"\n\t)\n\n\t// Make sure hints are followed:\n\tif err := xattr.Set(mountDir, xattrEnc, []byte(hint.EncryptionAlgo)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := xattr.Set(mountDir, xattrZip, []byte(hint.CompressionAlgo)); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttook, err := withRunStats(size, func() (int64, error) {\n\t\tfd, err := os.OpenFile(testPath, os.O_CREATE|os.O_WRONLY, 0600)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tdefer fd.Close()\n\n\t\treturn testutil.DumbCopy(fd, r, false, false)\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif fb.isWrite {\n\t\t// test is done already, no need to read-back.\n\t\treturn took, nil\n\t}\n\n\ttook, err = withRunStats(size, func() (int64, error) {\n\t\t// NOTE: We have to use syscall.O_DIRECT here in order to\n\t\t//       bypass the kernel page cache. The write above fills it with\n\t\t//       data immediately, thus this read can yield 10x times higher\n\t\t//       results (which you still might get in practice, if lucky)\n\t\tfd, err := os.OpenFile(testPath, os.O_RDONLY|syscall.O_DIRECT, 0600)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tdefer fd.Close()\n\n\t\treturn testutil.DumbCopy(verifier, fd, false, false)\n\t})\n\n\treturn took, err\n}\n\nfunc (fb *fuseWriteOrReadBench) Close() error {\n\tfb.ctl.QuitServer()\n\ttime.Sleep(2 * time.Second)\n\tfb.proc.Signal(syscall.SIGTERM)\n\n\tvar lastError error\n\tfor retries := 0; retries < 10; retries++ {\n\t\tif err := os.RemoveAll(fb.tmpDir); err != nil {\n\t\t\ttime.Sleep(200 * time.Millisecond)\n\t\t\tlastError = err\n\t\t\tcontinue\n\t\t}\n\n\t\tlastError = nil\n\t\tbreak\n\t}\n\n\treturn lastError\n}\n\n//////////\n\nvar (\n\t// Convention:\n\t// - If it's using ipfs, put it in the name.\n\t// - If it's writing things, put that in the name too as \"write\".\n\tbenchMap = map[string]func(string, bool) (Bench, error){\n\t\t\"memcpy\":          newMemcpyBench,\n\t\t\"brig-write-mem\":  newServerStageBench,\n\t\t\"brig-read-mem\":   newServerCatBench,\n\t\t\"brig-write-ipfs\": newServerStageBench,\n\t\t\"brig-read-ipfs\":  newServerCatBench,\n\t\t\"mio-write\":       newMioWriterBench,\n\t\t\"mio-read\":        newMioReaderBench,\n\t\t\"ipfs-write\":      newIPFSAddBench,\n\t\t\"ipfs-read\":       newIPFSAddBench,\n\t\t\"fuse-write-mem\":  newFuseWriteOrReadBench,\n\t\t\"fuse-write-ipfs\": newFuseWriteOrReadBench,\n\t\t\"fuse-read-mem\":   newFuseWriteOrReadBench,\n\t\t\"fuse-read-ipfs\":  newFuseWriteOrReadBench,\n\t}\n)\n\n// ByName returns the benchmark with this name, or an error\n// if none. If IPFS is used, it should be given as `ipfsPath`.\nfunc ByName(name, ipfsPath string) (Bench, error) {\n\tnewBench, ok := benchMap[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"no such bench: %s\", name)\n\t}\n\n\treturn newBench(ipfsPath, strings.Contains(name, \"write\"))\n}\n\n// BenchmarkNames returns all possible benchmark names\n// in an defined & stable sorting.\nfunc BenchmarkNames() []string {\n\tnames := []string{}\n\tfor name := range benchMap {\n\t\tnames = append(names, name)\n\t}\n\n\tsort.Slice(names, func(i, j int) bool {\n\t\tif names[i] == names[j] {\n\t\t\treturn false\n\t\t}\n\n\t\tspecials := []string{\n\t\t\t\"memcpy\",\n\t\t\t\"mio\",\n\t\t}\n\n\t\tfor _, special := range specials {\n\t\t\tv := strings.HasSuffix(names[i], special)\n\t\t\tif v || strings.HasSuffix(names[j], special) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t}\n\n\t\treturn names[i] < names[j]\n\t})\n\n\treturn names\n}\n"
  },
  {
    "path": "bench/inputs.go",
    "content": "package bench\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n)\n\n// Verifier is a io.Writer that should be used for benchmarks\n// that read encoded data. It verifies that the data is actually\n// correct in the sense that it is equal to the original input.\ntype Verifier interface {\n\tio.Writer\n\n\t// MissingBytes returns the diff of bytes to the original input.\n\t// This number can be negative when too much data was written.\n\t// Only 0 is a valid value after the benchmark finished.\n\tMissingBytes() int64\n}\n\n// Input generates input for a benchmark. It defines how the data looks that\n// is fed to the streaming system.\ntype Input interface {\n\tReader(seed uint64) (io.Reader, error)\n\tSize() int64\n\tVerifier() (Verifier, error)\n\tClose() error\n}\n\nfunc benchData(size uint64, name string) []byte {\n\tswitch name {\n\tcase \"random\":\n\t\treturn testutil.CreateRandomDummyBuf(int64(size), 23)\n\tcase \"ten\":\n\t\treturn testutil.CreateDummyBuf(int64(size))\n\tcase \"mixed\":\n\t\treturn testutil.CreateMixedDummyBuf(int64(size), 42)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\n//////////\n\ntype memVerifier struct {\n\texpect  []byte\n\tcounter int64\n}\n\nfunc (m *memVerifier) Write(buf []byte) (int, error) {\n\tif int64(len(buf))+m.counter > int64(len(m.expect)) {\n\t\treturn -1, fmt.Errorf(\"verify: got too much data\")\n\t}\n\n\tslice := m.expect[m.counter : m.counter+int64(len(buf))]\n\tif !bytes.Equal(slice, buf) {\n\t\treturn -1, fmt.Errorf(\"verify: data differs in block at %d\", m.counter)\n\t}\n\n\tm.counter += int64(len(buf))\n\n\t// Just nod off the data and let GC do the rest.\n\treturn len(buf), nil\n}\n\nfunc (m *memVerifier) MissingBytes() int64 {\n\treturn int64(len(m.expect)) - m.counter\n}\n\ntype memInput struct {\n\tbuf []byte\n}\n\nfunc newMemInput(size uint64, name string) Input {\n\treturn &memInput{buf: benchData(size, name)}\n}\n\nfunc (ni *memInput) Reader(seed uint64) (io.Reader, error) {\n\t// Put a few bytes difference at the start to make the complete\n\t// stream different than the last seed. This is here to avoid\n\t// that consequent runs of a benchmark get speed ups because\n\t// they can cache inputs.\n\tbinary.LittleEndian.PutUint64(ni.buf, seed)\n\treturn bytes.NewReader(ni.buf), nil\n}\n\nfunc (ni *memInput) Verifier() (Verifier, error) {\n\treturn &memVerifier{\n\t\texpect:  ni.buf,\n\t\tcounter: 0,\n\t}, nil\n}\n\nfunc (ni *memInput) Size() int64 {\n\treturn int64(len(ni.buf))\n}\n\nfunc (ni *memInput) Close() error {\n\treturn nil\n}\n\n//////////\n\nvar (\n\tinputMap = map[string]func(size uint64) (Input, error){\n\t\t\"ten\": func(size uint64) (Input, error) {\n\t\t\treturn newMemInput(size, \"ten\"), nil\n\t\t},\n\t\t\"random\": func(size uint64) (Input, error) {\n\t\t\treturn newMemInput(size, \"random\"), nil\n\t\t},\n\t\t\"mixed\": func(size uint64) (Input, error) {\n\t\t\treturn newMemInput(size, \"mixed\"), nil\n\t\t},\n\t}\n)\n\n// InputByName fetches the input by it's name and returns an input\n// that will produce data with `size` bytes.\nfunc InputByName(name string, size uint64) (Input, error) {\n\tnewInput, ok := inputMap[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"no such input: %s\", name)\n\t}\n\n\treturn newInput(size)\n}\n\n// InputNames returns the sorted list of all possible inputs.\nfunc InputNames() []string {\n\tnames := []string{}\n\tfor name := range inputMap {\n\t\tnames = append(names, name)\n\t}\n\n\tsort.Strings(names)\n\treturn names\n}\n"
  },
  {
    "path": "bench/runner.go",
    "content": "package bench\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/signal\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/repo/setup\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Config define how the benchmarks are run.\ntype Config struct {\n\tInputName   string `json:\"input_name\"`\n\tBenchName   string `json:\"bench_name\"`\n\tSize        uint64 `json:\"size\"`\n\tEncryption  string `json:\"encryption\"`\n\tCompression string `json:\"compression\"`\n\tSamples     int    `json:\"samples\"`\n}\n\n// Result is the result of a single benchmark run.\ntype Result struct {\n\tName            string        `json:\"name\"`\n\tConfig          Config        `json:\"config\"`\n\tEncryption      string        `json:\"encryption\"`\n\tCompression     string        `json:\"compression\"`\n\tTook            time.Duration `json:\"took\"`\n\tThroughput      float64       `json:\"throughput\"`\n\tCompressionRate float32       `json:\"compression_rate\"`\n\tAllocs          int64         `json:\"allocs\"`\n}\n\n// buildHints handles wildcards for compression and/or encryption.\n// If no wildcards are specified, we just take what is set in `cfg`.\nfunc buildHints(cfg Config) []hints.Hint {\n\tencIsWildcard := cfg.Encryption == \"*\"\n\tzipIsWildcard := cfg.Compression == \"*\"\n\n\tif encIsWildcard && zipIsWildcard {\n\t\treturn hints.AllPossibleHints()\n\t}\n\n\tif encIsWildcard {\n\t\ths := []hints.Hint{}\n\t\tfor _, encAlgo := range hints.ValidEncryptionHints() {\n\t\t\ths = append(hs, hints.Hint{\n\t\t\t\tCompressionAlgo: hints.CompressionHint(cfg.Compression),\n\t\t\t\tEncryptionAlgo:  hints.EncryptionHint(encAlgo),\n\t\t\t})\n\t\t}\n\n\t\treturn hs\n\t}\n\n\tif zipIsWildcard {\n\t\ths := []hints.Hint{}\n\t\tfor _, zipAlgo := range hints.ValidCompressionHints() {\n\t\t\ths = append(hs, hints.Hint{\n\t\t\t\tCompressionAlgo: hints.CompressionHint(zipAlgo),\n\t\t\t\tEncryptionAlgo:  hints.EncryptionHint(cfg.Encryption),\n\t\t\t})\n\t\t}\n\n\t\treturn hs\n\t}\n\n\treturn []hints.Hint{{\n\t\tCompressionAlgo: hints.CompressionHint(cfg.Compression),\n\t\tEncryptionAlgo:  hints.EncryptionHint(cfg.Encryption),\n\t}}\n}\n\nfunc sortHints(hs []hints.Hint) []hints.Hint {\n\tsort.Slice(hs, func(i, j int) bool {\n\t\treturn hs[i].Less(hs[j])\n\t})\n\n\t// sorts in-place, but also return for ease of use.\n\treturn hs\n}\n\nfunc benchmarkSingle(cfg Config, fn func(result Result), ipfsPath string) error {\n\tin, err := InputByName(cfg.InputName, cfg.Size)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer in.Close()\n\n\tout, err := ByName(cfg.BenchName, ipfsPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer out.Close()\n\n\tsigCh := make(chan os.Signal, 1)\n\tsignal.Notify(sigCh, syscall.SIGINT)\n\tdefer signal.Stop(sigCh)\n\n\tfor _, hint := range sortHints(buildHints(cfg)) {\n\t\tselect {\n\t\tcase <-sigCh:\n\t\t\tfmt.Println(\"Interrupted\")\n\t\t\treturn nil\n\t\tdefault:\n\t\t\t// just continue\n\t\t}\n\n\t\tsupportsHints := out.SupportHints()\n\t\tif !supportsHints {\n\t\t\t// Indicate in output that nothing was encrypted or compressed.\n\t\t\thint.CompressionAlgo = hints.CompressionNone\n\t\t\thint.EncryptionAlgo = hints.EncryptionNone\n\t\t}\n\n\t\tif hint.CompressionAlgo == hints.CompressionGuess {\n\t\t\t// NOTE: We do not benchmark guessing here.\n\t\t\t// Simply reason is that we do not know from the output\n\t\t\t// which algorithm was actually used.\n\t\t\tcontinue\n\t\t}\n\n\t\tvar runs Runs\n\n\t\t// probably doesn't do much, just to clean any leftover memory.\n\t\truntime.GC()\n\n\t\tfor seed := uint64(0); seed < uint64(cfg.Samples); seed++ {\n\t\t\tr, err := in.Reader(seed)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tv, err := in.Verifier()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\trun, err := out.Bench(hint, in.Size(), r, v)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\truns = append(runs, *run)\n\n\t\t\t// Most write-only benchmarks cannot be verified, since\n\t\t\t// we modify the stream and the verifier checks that the stream\n\t\t\t// is equal to the input. Most read tests involve the same logic\n\t\t\t// as writing though, so the writer has to work for that.\n\t\t\tif out.CanBeVerified() {\n\t\t\t\tif missing := v.MissingBytes(); missing != 0 {\n\t\t\t\t\tlog.Warnf(\"not all or too much data received in verify: %d\", missing)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tavgRun := runs.Average()\n\t\tthroughput := (float64(cfg.Size) / 1000 / 1000) / (float64(avgRun.Took) / float64(time.Second))\n\t\tfn(Result{\n\t\t\tName:            fmt.Sprintf(\"%s:%s_%s\", cfg.BenchName, cfg.InputName, hint),\n\t\t\tEncryption:      string(hint.EncryptionAlgo),\n\t\t\tCompression:     string(hint.CompressionAlgo),\n\t\t\tConfig:          cfg,\n\t\t\tTook:            avgRun.Took,\n\t\t\tThroughput:      throughput,\n\t\t\tCompressionRate: avgRun.CompressionRatio,\n\t\t\tAllocs:          avgRun.Allocs,\n\t\t})\n\n\t\tif !supportsHints {\n\t\t\t// If there are no hints there is no point.\n\t\t\t// of repeating the benchmark several times.\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// IPFS is expensive to set-up, so let's do it only once.\nfunc ipfsIsNeeded(cfgs []Config) bool {\n\tfor _, cfg := range cfgs {\n\t\tif strings.Contains(strings.ToLower(cfg.BenchName), \"ipfs\") {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// Benchmark runs the benchmarks specified by `cfgs` and call `fn` on each result.\nfunc Benchmark(cfgs []Config, fn func(result Result)) error {\n\tneedsIPFS := ipfsIsNeeded(cfgs)\n\tvar result *setup.Result\n\n\tif needsIPFS {\n\t\tvar err error\n\t\tlog.Infof(\"Setting up IPFS for the benchmarks...\")\n\n\t\tipfsPath, err := ioutil.TempDir(\"\", \"brig-iobench-ipfs-repo-*\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tresult, err = setup.IPFS(setup.Options{\n\t\t\tLogWriter:        ioutil.Discard,\n\t\t\tSetup:            true,\n\t\t\tSetDefaultConfig: true,\n\t\t\tSetExtraConfig:   true,\n\t\t\tIpfsPath:         ipfsPath,\n\t\t\tInitProfile:      \"test\",\n\t\t})\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor _, cfg := range cfgs {\n\t\tvar ipfsPath string\n\t\tif result != nil {\n\t\t\tipfsPath = result.IpfsPath\n\t\t}\n\n\t\tif err := benchmarkSingle(cfg, fn, ipfsPath); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif needsIPFS {\n\t\tif result.IpfsPath != \"\" {\n\t\t\tos.RemoveAll(result.IpfsPath)\n\t\t}\n\n\t\tif result.PID > 0 {\n\t\t\tproc, err := os.FindProcess(result.PID)\n\t\t\tif err != nil {\n\t\t\t\tlog.WithError(err).Warnf(\"failed to get IPFS PID\")\n\t\t\t} else {\n\t\t\t\tif err := proc.Kill(); err != nil {\n\t\t\t\t\tlog.WithError(err).Warnf(\"failed to kill IPFS PID\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "bench/stats.go",
    "content": "package bench\n\nimport (\n\t\"time\"\n\n\t\"github.com/klauspost/cpuid/v2\"\n)\n\n// Stats are system statistics that might influence the benchmark result.\ntype Stats struct {\n\tTime         time.Time `json:\"time\"`\n\tCPUBrandName string    `json:\"cpu_brand_name\"`\n\tLogicalCores int       `json:\"logical_cores\"`\n\tHasAESNI     bool      `json:\"has_aesni\"`\n}\n\n// FetchStats returns the current statistics.\nfunc FetchStats() Stats {\n\treturn Stats{\n\t\tTime:         time.Now(),\n\t\tCPUBrandName: cpuid.CPU.BrandName,\n\t\tLogicalCores: cpuid.CPU.LogicalCores,\n\t\tHasAESNI:     cpuid.CPU.Supports(cpuid.AESNI),\n\t}\n}\n"
  },
  {
    "path": "brig.go",
    "content": "package main\n\nimport (\n\t\"os\"\n\n\t\"github.com/sahib/brig/cmd\"\n)\n\nfunc main() {\n\tos.Exit(cmd.RunCmdline(os.Args))\n}\n"
  },
  {
    "path": "catfs/backend.go",
    "content": "package catfs\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/catfs/mio/chunkbuf\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/sahib/brig/util/testutil\"\n)\n\n// ErrNoSuchHash should be returned whenever the backend is unable\n// to find an object referenced to by this hash.\ntype ErrNoSuchHash struct {\n\twhat h.Hash\n}\n\nfunc (eh ErrNoSuchHash) Error() string {\n\treturn fmt.Sprintf(\"No such hash: %s\", eh.what.B58String())\n}\n\n// FsBackend is the interface that needs to be implemented by the data\n// management layer.\ntype FsBackend interface {\n\t// Cat should find the object referenced to by `hash` and\n\t// make its data available as mio.Stream.\n\tCat(hash h.Hash) (mio.Stream, error)\n\n\t// Add should read all data in `r` and return the hash under\n\t// which it can be accessed on later.\n\tAdd(r io.Reader) (h.Hash, error)\n\n\t// Pin gives the object at `hash` a \"pin\".\n\t// (i.e. it marks the file to be stored indefinitely in local storage)\n\t// When pinning an explicit pin with an implicit pin, the explicit pin\n\t// will stay. Upgrading from implicit to explicit is possible though.\n\tPin(hash h.Hash) error\n\n\t// Unpin removes a previously added pin.\n\t// If an object is already unpinned this is a no op.\n\tUnpin(hash h.Hash) error\n\n\t// IsPinned checks if the file is pinned.\n\tIsPinned(hash h.Hash) (bool, error)\n\n\t// IsCached checks if the file contents are available locally.\n\tIsCached(hash h.Hash) (bool, error)\n\n\t// CachedSize returns the backend size for a given hash\n\t// Nehative indicates that cachedSize is unknown\n\tCachedSize(hash h.Hash) (int64, error)\n}\n\n// MemFsBackend is a mock structure that implements FsBackend.\ntype MemFsBackend struct {\n\tdata map[string][]byte\n\tpins map[string]bool\n}\n\n// NewMemFsBackend returns a MemFsBackend (useful for writing tests)\nfunc NewMemFsBackend() *MemFsBackend {\n\treturn &MemFsBackend{\n\t\tdata: make(map[string][]byte),\n\t\tpins: make(map[string]bool),\n\t}\n}\n\n// Cat implements FsBackend.Cat by querying memory.\nfunc (mb *MemFsBackend) Cat(hash h.Hash) (mio.Stream, error) {\n\tdata, ok := mb.data[hash.B58String()]\n\tif !ok {\n\t\treturn nil, ErrNoSuchHash{hash}\n\t}\n\n\tchunkBuf := chunkbuf.NewChunkBuffer(data)\n\trandRead := testutil.RandomizeReads(chunkBuf, 512, true)\n\n\treturn struct {\n\t\tio.Reader\n\t\tio.Seeker\n\t\tio.Closer\n\t\tio.WriterTo\n\t}{\n\t\tReader:   randRead,\n\t\tSeeker:   chunkBuf,\n\t\tWriterTo: chunkBuf,\n\t\tCloser:   ioutil.NopCloser(chunkBuf),\n\t}, nil\n}\n\n// Add implements FsBackend.Add by storing the data in memory.\nfunc (mb *MemFsBackend) Add(r io.Reader) (h.Hash, error) {\n\tdata, err := ioutil.ReadAll(r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thash := h.SumWithBackendHash(data)\n\tmb.data[hash.B58String()] = data\n\treturn hash, nil\n}\n\n// Pin implements FsBackend.Pin by storing a marker in memory.\nfunc (mb *MemFsBackend) Pin(hash h.Hash) error {\n\tmb.pins[hash.B58String()] = true\n\treturn nil\n}\n\n// Unpin implements FsBackend.Unpin by removing a marker in memory.\nfunc (mb *MemFsBackend) Unpin(hash h.Hash) error {\n\tmb.pins[hash.B58String()] = false\n\treturn nil\n}\n\n// IsPinned implements FsBackend.IsPinned by querying a marker in memory.\nfunc (mb *MemFsBackend) IsPinned(hash h.Hash) (bool, error) {\n\tisPinned, ok := mb.pins[hash.B58String()]\n\tif !ok {\n\t\treturn false, nil\n\t}\n\n\treturn isPinned, nil\n}\n\n// IsCached implements FsBackend.IsCached by checking if the file exists.\n// If hash found, the file is always cached.\nfunc (mb *MemFsBackend) IsCached(hash h.Hash) (bool, error) {\n\t_, ok := mb.data[hash.B58String()]\n\treturn ok, nil\n}\n\n// CachedSize implements FsBackend.CachedSize by returnig data size\n// If hash found, the file is always cached.\nfunc (mb *MemFsBackend) CachedSize(hash h.Hash) (int64, error) {\n\tdata, ok := mb.data[hash.B58String()]\n\tif !ok {\n\t\treturn -1, nil // negative indicates unknown size\n\t}\n\treturn int64(len(data)), nil\n}\n"
  },
  {
    "path": "catfs/capnp/pinner.capnp",
    "content": "using Go = import \"/go.capnp\";\n\n@0xba762188b0a6e4cf;\n\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/catfs/capnp\");\n\n\nstruct Pin {\n    inode    @0 :UInt64;\n    isPinned @1 :Bool;\n}\n\nstruct PinEntry $Go.doc(\"A single entry for a certain content node\") {\n    # Following attributes will be part of the hash:\n    pins   @0 :List(Pin);\n}\n"
  },
  {
    "path": "catfs/capnp/pinner.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n)\n\ntype Pin struct{ capnp.Struct }\n\n// Pin_TypeID is the unique identifier for the type Pin.\nconst Pin_TypeID = 0x985d53e01674ee95\n\nfunc NewPin(s *capnp.Segment) (Pin, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 0})\n\treturn Pin{st}, err\n}\n\nfunc NewRootPin(s *capnp.Segment) (Pin, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 0})\n\treturn Pin{st}, err\n}\n\nfunc ReadRootPin(msg *capnp.Message) (Pin, error) {\n\troot, err := msg.RootPtr()\n\treturn Pin{root.Struct()}, err\n}\n\nfunc (s Pin) String() string {\n\tstr, _ := text.Marshal(0x985d53e01674ee95, s.Struct)\n\treturn str\n}\n\nfunc (s Pin) Inode() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Pin) SetInode(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s Pin) IsPinned() bool {\n\treturn s.Struct.Bit(64)\n}\n\nfunc (s Pin) SetIsPinned(v bool) {\n\ts.Struct.SetBit(64, v)\n}\n\n// Pin_List is a list of Pin.\ntype Pin_List struct{ capnp.List }\n\n// NewPin creates a new list of Pin.\nfunc NewPin_List(s *capnp.Segment, sz int32) (Pin_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 0}, sz)\n\treturn Pin_List{l}, err\n}\n\nfunc (s Pin_List) At(i int) Pin { return Pin{s.List.Struct(i)} }\n\nfunc (s Pin_List) Set(i int, v Pin) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Pin_List) String() string {\n\tstr, _ := text.MarshalList(0x985d53e01674ee95, s.List)\n\treturn str\n}\n\n// Pin_Promise is a wrapper for a Pin promised by a client call.\ntype Pin_Promise struct{ *capnp.Pipeline }\n\nfunc (p Pin_Promise) Struct() (Pin, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Pin{s}, err\n}\n\n// A single entry for a certain content node\ntype PinEntry struct{ capnp.Struct }\n\n// PinEntry_TypeID is the unique identifier for the type PinEntry.\nconst PinEntry_TypeID = 0xdb74f7cf7bc815c6\n\nfunc NewPinEntry(s *capnp.Segment) (PinEntry, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn PinEntry{st}, err\n}\n\nfunc NewRootPinEntry(s *capnp.Segment) (PinEntry, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn PinEntry{st}, err\n}\n\nfunc ReadRootPinEntry(msg *capnp.Message) (PinEntry, error) {\n\troot, err := msg.RootPtr()\n\treturn PinEntry{root.Struct()}, err\n}\n\nfunc (s PinEntry) String() string {\n\tstr, _ := text.Marshal(0xdb74f7cf7bc815c6, s.Struct)\n\treturn str\n}\n\nfunc (s PinEntry) Pins() (Pin_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Pin_List{List: p.List()}, err\n}\n\nfunc (s PinEntry) HasPins() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s PinEntry) SetPins(v Pin_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewPins sets the pins field to a newly\n// allocated Pin_List, preferring placement in s's segment.\nfunc (s PinEntry) NewPins(n int32) (Pin_List, error) {\n\tl, err := NewPin_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Pin_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// PinEntry_List is a list of PinEntry.\ntype PinEntry_List struct{ capnp.List }\n\n// NewPinEntry creates a new list of PinEntry.\nfunc NewPinEntry_List(s *capnp.Segment, sz int32) (PinEntry_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn PinEntry_List{l}, err\n}\n\nfunc (s PinEntry_List) At(i int) PinEntry { return PinEntry{s.List.Struct(i)} }\n\nfunc (s PinEntry_List) Set(i int, v PinEntry) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s PinEntry_List) String() string {\n\tstr, _ := text.MarshalList(0xdb74f7cf7bc815c6, s.List)\n\treturn str\n}\n\n// PinEntry_Promise is a wrapper for a PinEntry promised by a client call.\ntype PinEntry_Promise struct{ *capnp.Pipeline }\n\nfunc (p PinEntry_Promise) Struct() (PinEntry, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn PinEntry{s}, err\n}\n\nconst schema_ba762188b0a6e4cf = \"x\\xda\\\\\\xd0\\xb1K\\xebP\\x14\\x06\\xf0\\xef\\xbbI_[\" +\n\t\"x\\xef\\xb5WT\\xe8\\xd4\\x08]\\x14\\xb5\\xd6I\\\\l\\x07\" +\n\t\"\\x07\\x05!Wg\\x85\\x90\\xa6% 7!\\xb9(\\xc5\\x7f\" +\n\t\"@\\\\Eps\\x13\\xdc\\xdc\\xa4\\x82\\xa3\\xe2\\xd6\\xcd\\xc5\\xc5\" +\n\t\"\\xc1I\\xd0\\xd51\\x92\\xc5\\x8a\\xd3\\x81\\x8f\\xc3\\xf9\\x1d\\xbej\" +\n\t\"\\xbf-d\\xe1\\x06P\\xa5\\xc2\\x9f\\xec\\xec\\xc3L\\xbf\\xec\\xec\" +\n\t\"\\x9eC\\xd5(\\xb2\\xd1\\xeb\\xe5\\xf5\\xf1\\xcc\\xc1-\\xec\\\" \" +\n\t\";or+\\x9f\\x1b\\x87`\\xf60\\xf5x4\\xfa4\\xcf\" +\n\t\"\\x905\\x8e\\xf7\\x0a,\\x02\\xad\\xab\\x09\\xcaaQ\\x0e\\xeb\\xf2\" +\n\t\"}\\x0d\\xcc|\\xcf\\xf4\\xd2\\xa6\\xef\\x89X\\xc7\\xcd8\\xd4:\" +\n\t\"H\\x16}/\\xd6qe\\xd5\\x0d\\xb5K\\xaa\\x92e\\x036\" +\n\t\"\\x019\\xbb\\x0c\\xa8\\x86E\\xb5$(\\xd9\\x9ed\\x1e.l\" +\n\t\"\\x02j\\xde\\xa2Z\\x11\\xac\\x87:\\xea\\x06,C\\xb0\\x0cf\" +\n\t\"a\\xea\\xe6\\x07\\xbb\\x00H\\x08\\xf2\\x87g\\xfd\\xf6rn]\" +\n\t\"\\x9b\\x84\\x83\\x1c\\xb5)\\xb2\\xbd\\xd3\\x0bu\\xf7tr\\x0fe\" +\n\t\"\\x0bv\\x1a\\xe4_\\xa0\\xc5mf\\x1d'\\x0du\\x7f?\\xb0\" +\n\t\"\\x9d@\\x9bd\\xe0\\xf4\\xa2\\xc4\\xf1\\x1c?H\\x8c\\x17j\\xc7\" +\n\t\"\\x8f\\xb4\\x09\\xb4qt\\xd4e\\x00(\\xfb\\xfb\\xff\\x7fsy\" +\n\t\"\\x91\\x16UC\\xb0\\x12\\x87:\\xe5\\x7f\\xd0\\xb5\\xc8\\xea\\xb8Z\" +\n\t\"0\\x0f\\xbf\\x02\\x00\\x00\\xff\\xff\\x05\\xdde\\x03\"\n\nfunc init() {\n\tschemas.Register(schema_ba762188b0a6e4cf,\n\t\t0x985d53e01674ee95,\n\t\t0xdb74f7cf7bc815c6)\n}\n"
  },
  {
    "path": "catfs/core/coreutils.go",
    "content": "package core\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"path\"\n\t\"strings\"\n\t\"time\"\n\n\te \"github.com/pkg/errors\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar (\n\t// ErrIsGhost is returned by Remove() when calling it on a ghost.\n\tErrIsGhost = errors.New(\"Is a ghost\")\n)\n\n// mkdirParents takes the dirname of repoPath and makes sure all intermediate\n// directories are created. The last directory will be returned.\n\n// If any directory exist already, it will not be touched.\n// You can also think of it as mkdir -p.\nfunc mkdirParents(lkr *Linker, repoPath string) (*n.Directory, error) {\n\trepoPath = path.Clean(repoPath)\n\n\telems := strings.Split(repoPath, \"/\")\n\tfor idx := 0; idx < len(elems)-1; idx++ {\n\t\tdirname := strings.Join(elems[:idx+1], \"/\")\n\t\tif dirname == \"\" {\n\t\t\tdirname = \"/\"\n\t\t}\n\n\t\tdir, err := Mkdir(lkr, dirname, false)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Return it, if it's the last path component:\n\t\tif idx+1 == len(elems)-1 {\n\t\t\treturn dir, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"Empty path given\")\n}\n\n// Mkdir creates the directory at repoPath and any intermediate directories if\n// createParents is true. It will fail if there is already a file at `repoPath`\n// and it is not a directory.\nfunc Mkdir(lkr *Linker, repoPath string, createParents bool) (dir *n.Directory, err error) {\n\tdirname, basename := path.Split(repoPath)\n\n\t// Take special care of the root node:\n\tif basename == \"\" {\n\t\treturn lkr.Root()\n\t}\n\n\t// Check if the parent exists:\n\tparent, lerr := lkr.LookupDirectory(dirname)\n\tif lerr != nil && !ie.IsNoSuchFileError(lerr) {\n\t\terr = e.Wrap(lerr, \"dirname lookup failed\")\n\t\treturn\n\t}\n\n\terr = lkr.Atomic(func() (bool, error) {\n\t\t// If it's nil, we might need to create it:\n\t\tif parent == nil {\n\t\t\tif !createParents {\n\t\t\t\treturn false, ie.NoSuchFile(dirname)\n\t\t\t}\n\n\t\t\tparent, err = mkdirParents(lkr, repoPath)\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\tchild, err := parent.Child(lkr, basename)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif child != nil {\n\t\t\tswitch child.Type() {\n\t\t\tcase n.NodeTypeDirectory:\n\t\t\t\t// Nothing to do really. Return the old child.\n\t\t\t\tdir = child.(*n.Directory)\n\t\t\t\treturn false, nil\n\t\t\tcase n.NodeTypeFile:\n\t\t\t\treturn true, fmt.Errorf(\"`%s` exists and is a file\", repoPath)\n\t\t\tcase n.NodeTypeGhost:\n\t\t\t\t// Remove the ghost and continue with adding:\n\t\t\t\tif err := parent.RemoveChild(lkr, child); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn true, ie.ErrBadNode\n\t\t\t}\n\t\t}\n\n\t\t// Create it then!\n\t\tdir, err = n.NewEmptyDirectory(lkr, parent, basename, lkr.owner, lkr.NextInode())\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif err := lkr.StageNode(dir); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"stage dir\")\n\t\t}\n\n\t\tlog.Debugf(\"mkdir: %s\", dirname)\n\t\treturn false, nil\n\t})\n\n\treturn\n}\n\n// Remove removes a single node from a directory.\n// `nd` is the node that shall be removed and may not be root.\n// The parent directory is returned.\nfunc Remove(lkr *Linker, nd n.ModNode, createGhost, force bool) (parentDir *n.Directory, ghost *n.Ghost, err error) {\n\tif !force && nd.Type() == n.NodeTypeGhost {\n\t\terr = ErrIsGhost\n\t\treturn\n\t}\n\n\tparentDir, err = n.ParentDirectory(lkr, nd)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t// We shouldn't delete the root directory\n\t// (only directory with a parent)\n\tif parentDir == nil {\n\t\terr = fmt.Errorf(\"refusing to delete root\")\n\t\treturn\n\t}\n\n\terr = lkr.Atomic(func() (bool, error) {\n\t\tif err := parentDir.RemoveChild(lkr, nd); err != nil {\n\t\t\treturn true, fmt.Errorf(\"failed to remove child: %v\", err)\n\t\t}\n\n\t\tlkr.MemIndexPurge(nd)\n\n\t\tif err := lkr.StageNode(parentDir); err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif createGhost {\n\t\t\tnewGhost, err := n.MakeGhost(nd, lkr.NextInode())\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tif err := parentDir.Add(lkr, newGhost); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tif err := lkr.StageNode(newGhost); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tghost = newGhost\n\t\t\treturn false, nil\n\t\t}\n\n\t\treturn false, nil\n\t})\n\n\treturn\n}\n\n// prepareParent tries to figure out the correct parent directory when attempting\n// to move `nd` to `dstPath`. It also removes any nodes that are \"in the way\" if possible.\nfunc prepareParent(lkr *Linker, nd n.ModNode, dstPath string) (*n.Directory, error) {\n\t// Check if the destination already exists:\n\tdestNode, err := lkr.LookupModNode(dstPath)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn nil, err\n\t}\n\n\tif destNode == nil {\n\t\t// No node at this place yet, attempt to look it up.\n\t\treturn lkr.LookupDirectory(path.Dir(dstPath))\n\t}\n\n\tswitch destNode.Type() {\n\tcase n.NodeTypeDirectory:\n\t\t// Move inside of this directory.\n\t\t// Check if there is already a file\n\t\tdestDir, ok := destNode.(*n.Directory)\n\t\tif !ok {\n\t\t\treturn nil, ie.ErrBadNode\n\t\t}\n\n\t\tchild, err := destDir.Child(lkr, nd.Name())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Oh, something is in there?\n\t\tif child != nil {\n\t\t\tif nd.Type() == n.NodeTypeFile {\n\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\"cannot overwrite a directory (%s) with a file (%s)\",\n\t\t\t\t\tdestNode.Path(),\n\t\t\t\t\tchild.Path(),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tchildDir, ok := child.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn nil, ie.ErrBadNode\n\t\t\t}\n\n\t\t\tif childDir.Size() > 0 {\n\t\t\t\treturn nil, fmt.Errorf(\n\t\t\t\t\t\"cannot move over: %s; directory is not empty\",\n\t\t\t\t\tchild.Path(),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Okay, there is an empty directory. Let's remove it to\n\t\t\t// replace it with our source node.\n\t\t\tlog.Warningf(\"Remove child dir: %v\", childDir)\n\t\t\tif _, _, err := Remove(lkr, childDir, false, false); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\treturn destDir, nil\n\tcase n.NodeTypeFile:\n\t\tlog.Infof(\"Remove file: %v\", destNode.Path())\n\t\tparentDir, _, err := Remove(lkr, destNode, false, false)\n\t\treturn parentDir, err\n\tcase n.NodeTypeGhost:\n\t\t// It is already a ghost. Overwrite it and do not create a new one.\n\t\tlog.Infof(\"Remove ghost: %v\", destNode.Path())\n\t\tparentDir, _, err := Remove(lkr, destNode, false, true)\n\t\treturn parentDir, err\n\tdefault:\n\t\treturn nil, ie.ErrBadNode\n\t}\n}\n\n// Copy copies the node `nd` to the path at `dstPath`.\nfunc Copy(lkr *Linker, nd n.ModNode, dstPath string) (newNode n.ModNode, err error) {\n\t// Forbid moving a node inside of one of it's subdirectories.\n\tif nd.Path() == dstPath {\n\t\terr = fmt.Errorf(\"source and dest are the same file: %v\", dstPath)\n\t\treturn\n\t}\n\n\tif strings.HasPrefix(path.Dir(dstPath), nd.Path()) {\n\t\terr = fmt.Errorf(\n\t\t\t\"cannot copy `%s` into it's own subdir `%s`\",\n\t\t\tnd.Path(),\n\t\t\tdstPath,\n\t\t)\n\t\treturn\n\t}\n\n\terr = lkr.Atomic(func() (bool, error) {\n\t\tparentDir, err := prepareParent(lkr, nd, dstPath)\n\t\tif err != nil {\n\t\t\treturn true, e.Wrapf(err, \"handle parent\")\n\t\t}\n\n\t\t// We might copy something into a directory.\n\t\t// In this case, dstPath specifies the directory we move into,\n\t\t// not the file we moved to (which we need here)\n\t\tif parentDir.Path() == dstPath {\n\t\t\tdstPath = path.Join(parentDir.Path(), path.Base(nd.Path()))\n\t\t}\n\n\t\t// And add it to the right destination dir:\n\t\tnewNode = nd.Copy(lkr.NextInode())\n\t\tnewNode.SetName(path.Base(dstPath))\n\t\tif err := newNode.SetParent(lkr, parentDir); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"set parent\")\n\t\t}\n\n\t\tif err := newNode.NotifyMove(lkr, parentDir, newNode.Path()); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"notify move\")\n\t\t}\n\n\t\treturn false, lkr.StageNode(newNode)\n\t})\n\n\treturn\n}\n\n// Move moves the node `nd` to the path at `dstPath` and leaves\n// a ghost at the old place.\nfunc Move(lkr *Linker, nd n.ModNode, dstPath string) error {\n\t// Forbid moving a node inside of one of it's subdirectories.\n\tif nd.Type() == n.NodeTypeGhost {\n\t\treturn errors.New(\"cannot move ghosts\")\n\t}\n\n\tif nd.Path() == dstPath {\n\t\treturn fmt.Errorf(\"Source and Dest are the same file: %v\", dstPath)\n\t}\n\n\tif strings.HasPrefix(path.Dir(dstPath), nd.Path()) {\n\t\treturn fmt.Errorf(\n\t\t\t\"Cannot move `%s` into it's own subdir `%s`\",\n\t\t\tnd.Path(),\n\t\t\tdstPath,\n\t\t)\n\t}\n\n\treturn lkr.Atomic(func() (bool, error) {\n\t\tparentDir, err := prepareParent(lkr, nd, dstPath)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\t// Remove the old node:\n\t\toldPath := nd.Path()\n\t\t_, ghost, err := Remove(lkr, nd, true, true)\n\t\tif err != nil {\n\t\t\treturn true, e.Wrapf(err, \"remove old\")\n\t\t}\n\n\t\tif parentDir.Path() == dstPath {\n\t\t\tdstPath = path.Join(parentDir.Path(), path.Base(oldPath))\n\t\t}\n\n\t\t// The node needs to be told that it's path changed,\n\t\t// since it might need to change it's hash value now.\n\t\tif err := nd.NotifyMove(lkr, parentDir, dstPath); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"notify move\")\n\t\t}\n\n\t\terr = n.Walk(lkr, nd, true, func(child n.Node) error {\n\t\t\treturn e.Wrapf(lkr.StageNode(child), \"stage node\")\n\t\t})\n\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif err := lkr.AddMoveMapping(nd.Inode(), ghost.Inode()); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"add move mapping\")\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n\n// StageFromFileNode is a convinience helper that will call Stage() with all necessary params from `f`.\nfunc StageFromFileNode(lkr *Linker, f *n.File) (*n.File, error) {\n\treturn Stage(\n\t\tlkr,\n\t\tf.Path(),\n\t\tf.ContentHash(),\n\t\tf.BackendHash(),\n\t\tf.Size(),\n\t\tf.CachedSize(),\n\t\tf.Key(),\n\t\tf.ModTime(),\n\t\tf.IsRaw(),\n\t)\n}\n\n// Stage adds a file to brigs DAG this is lesser version since it does not use cachedSize\n// Do not use it if you can, use StageWithFullInfo couple lines below!\n// TODO rename Stage calls everywhere (especially in tests) and then\n// rename Stage -> StageWithoutCacheSize, and StageWithFullInfo -> Stage\nfunc Stage(\n\tlkr *Linker,\n\trepoPath string,\n\tcontentHash,\n\tbackendHash h.Hash,\n\tsize uint64,\n\tcachedSize int64,\n\tkey []byte,\n\tmodTime time.Time,\n\tisRaw bool,\n) (file *n.File, err error) {\n\tnode, lerr := lkr.LookupNode(repoPath)\n\tif lerr != nil && !ie.IsNoSuchFileError(lerr) {\n\t\terr = lerr\n\t\treturn\n\t}\n\n\terr = lkr.Atomic(func() (bool, error) {\n\t\tif node != nil {\n\t\t\tif node.Type() == n.NodeTypeGhost {\n\t\t\t\tghostParent, err := n.ParentDirectory(lkr, node)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\n\t\t\t\tif ghostParent == nil {\n\t\t\t\t\treturn true, fmt.Errorf(\n\t\t\t\t\t\t\"bug: %s has no parent. Is root a ghost?\",\n\t\t\t\t\t\tnode.Path(),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif err := ghostParent.RemoveChild(lkr, node); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\n\t\t\t\t// Act like there was no previous node.\n\t\t\t\t// New node will have a different Inode.\n\t\t\t\tfile = nil\n\t\t\t} else {\n\t\t\t\tvar ok bool\n\t\t\t\tfile, ok = node.(*n.File)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn true, ie.ErrBadNode\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tneedRemove := false\n\t\tif file != nil {\n\t\t\t// We know this file already.\n\t\t\tlog.WithFields(log.Fields{\"file\": repoPath}).Info(\"File exists; modifying.\")\n\t\t\tneedRemove = true\n\n\t\t\tif file.BackendHash().Equal(backendHash) {\n\t\t\t\tlog.Debugf(\"Hash was not modified. Not doing any update.\")\n\t\t\t\treturn false, nil\n\t\t\t}\n\t\t} else {\n\t\t\tparent, err := mkdirParents(lkr, repoPath)\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\t// Create a new file at specified path:\n\t\t\tfile = n.NewEmptyFile(parent, path.Base(repoPath), lkr.owner, lkr.NextInode())\n\t\t}\n\n\t\tparentDir, err := n.ParentDirectory(lkr, file)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif parentDir == nil {\n\t\t\treturn true, fmt.Errorf(\"%s has no parent yet (BUG)\", repoPath)\n\t\t}\n\n\t\tif needRemove {\n\t\t\t// Remove the child before changing the hash:\n\t\t\tif err := parentDir.RemoveChild(lkr, file); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\tfile.SetSize(size)\n\t\tfile.SetCachedSize(cachedSize)\n\t\tfile.SetModTime(modTime)\n\t\tfile.SetContent(lkr, contentHash)\n\t\tfile.SetBackend(lkr, backendHash)\n\t\tfile.SetKey(key)\n\t\tfile.SetUser(lkr.owner)\n\t\tfile.SetIsRaw(isRaw)\n\n\t\t// Add it again when the hash was changed.\n\t\tlog.Debugf(\"adding %s (%v)\", file.Path(), file.BackendHash())\n\t\tif err := parentDir.Add(lkr, file); err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tif err := lkr.StageNode(file); err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\treturn false, nil\n\t})\n\n\treturn\n}\n\n// Log will call `fn` on every commit we currently have, starting\n// with the most current one (CURR, then HEAD, ...).\n// If `fn` will return an error, the iteration is being stopped.\nfunc Log(lkr *Linker, start *n.Commit, fn func(cmt *n.Commit) error) error {\n\tcurr := start\n\tfor curr != nil {\n\t\tif err := fn(curr); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tparent, err := curr.Parent(lkr)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif parent == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tparentCmt, ok := parent.(*n.Commit)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tcurr = parentCmt\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/core/coreutils_test.go",
    "content": "package core\n\nimport (\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestMkdir(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\t// Test nested creation without -p like flag:\n\t\tdir, err := Mkdir(lkr, \"/deep/nested\", false)\n\t\tif err == nil || dir != nil {\n\t\t\tt.Fatalf(\"Nested mkdir without -p should have failed: %v\", err)\n\t\t}\n\n\t\tAssertDir(t, lkr, \"/\", true)\n\t\tAssertDir(t, lkr, \"/deep\", false)\n\t\tAssertDir(t, lkr, \"/deep/nested\", false)\n\n\t\t// Test mkdir -p like creating of nested dirs:\n\t\tdir, err = Mkdir(lkr, \"/deep/nested\", true)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"mkdir -p failed: %v\", err)\n\t\t}\n\n\t\tAssertDir(t, lkr, \"/\", true)\n\t\tAssertDir(t, lkr, \"/deep\", true)\n\t\tAssertDir(t, lkr, \"/deep/nested\", true)\n\n\t\t// Attempt to mkdir the same directory once more:\n\t\tdir, err = Mkdir(lkr, \"/deep/nested\", true)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"second mkdir -p failed: %v\", err)\n\t\t}\n\n\t\t// Also without -p, it should just return the respective dir.\n\t\t// (i.e. work like LookupDirectory)\n\t\t// Note: This is a difference to the traditional mkdir.\n\t\tdir, err = Mkdir(lkr, \"/deep/nested\", false)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"second mkdir without -p failed: %v\", err)\n\t\t}\n\n\t\t// See if an attempt at creating the root failed,\n\t\t// should not and just work like lkr.LookupDirectory(\"/\")\n\t\tdir, err = Mkdir(lkr, \"/\", false)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"mkdir root failed (without -p): %v\", err)\n\t\t}\n\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to retrieve root: %v\", err)\n\t\t}\n\n\t\tif !dir.TreeHash().Equal(root.TreeHash()) {\n\t\t\tt.Fatal(\"Root and mkdir('/') differ!\")\n\t\t}\n\n\t\t// Try to mkdir over a regular file:\n\t\tMustTouch(t, lkr, \"/cat.png\", 1)\n\n\t\t// This should fail, since we cannot create it.\n\t\tdir, err = Mkdir(lkr, \"/cat.png\", false)\n\t\tif err == nil {\n\t\t\tt.Fatal(\"Creating directory on file should have failed!\")\n\t\t}\n\n\t\t// Same even for -p\n\t\tdir, err = Mkdir(lkr, \"/cat.png\", true)\n\t\tif err == nil {\n\t\t\tt.Fatal(\"Creating directory on file should have failed!\")\n\t\t}\n\t})\n}\n\nfunc TestRemove(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tdir, err := Mkdir(lkr, \"/some/nested/directory\", true)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to mkdir a nested directory: %v\", err)\n\t\t}\n\n\t\tAssertDir(t, lkr, \"/some/nested/directory\", true)\n\n\t\tpath := \"/some/nested/directory/cat.png\"\n\t\tMustTouch(t, lkr, path, 1)\n\n\t\t// Check file removal with ghost creation:\n\t\tfile, err := lkr.LookupFile(path)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to lookup nested file: %v\", err)\n\t\t}\n\n\t\t// Fill in a dummy file hash, so we get a ghost instance\n\t\tparentDir, _, err := Remove(lkr, file, true, false)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Remove failed: %v\", err)\n\t\t}\n\n\t\tif !parentDir.TreeHash().Equal(dir.TreeHash()) {\n\t\t\tt.Fatalf(\"Hash differs on %s and %s\", dir.Path(), parentDir.TreeHash())\n\t\t}\n\n\t\t// Check that a ghost was created for the removed file:\n\n\t\tghost, err := lkr.LookupGhost(path)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Looking up ghost failed: %v\", err)\n\t\t}\n\n\t\toldFile, err := ghost.OldFile()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to retrieve old file from ghost: %v\", err)\n\t\t}\n\n\t\tif !oldFile.TreeHash().Equal(file.TreeHash()) {\n\t\t\tt.Fatal(\"Old file and original file hashes differ!\")\n\t\t}\n\n\t\t// Check directory removal:\n\t\tnestedDir, err := lkr.LookupDirectory(\"/some/nested\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Lookup on /some/nested failed: %v\", err)\n\t\t}\n\n\t\tnestedParentDir, err := nestedDir.Parent(lkr)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Getting parent of /some/nested failed: %v\", err)\n\t\t}\n\n\t\t// Just fill in a dummy moved to ref, to get a ghost.\n\t\tparentDir, ghost, err = Remove(lkr, nestedDir, true, false)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Directory removal failed: %v\", err)\n\t\t}\n\n\t\tif ghost == nil || ghost.Type() != n.NodeTypeGhost {\n\t\t\tt.Fatalf(\"Ghost node does not look like a ghost: %v\", ghost)\n\t\t}\n\n\t\tif !parentDir.TreeHash().Equal(nestedParentDir.TreeHash()) {\n\t\t\tt.Fatalf(\"Hash differs on %s and %s\", nestedParentDir.Path(), parentDir.TreeHash())\n\t\t}\n\t})\n}\n\nfunc TestRemoveGhost(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tfile := MustTouch(t, lkr, \"/x\", 1)\n\t\tpar, err := n.ParentDirectory(lkr, file)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get get parent directory of /x: %v\", err)\n\t\t}\n\n\t\tif err := par.RemoveChild(lkr, file); err != nil {\n\t\t\tt.Fatalf(\"Removing child /x failed: %v\", err)\n\t\t}\n\n\t\tghost, err := n.MakeGhost(file, 42)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to summon ghost: %v\", err)\n\t\t}\n\n\t\tif err := par.Add(lkr, ghost); err != nil {\n\t\t\tt.Fatalf(\"Re-adding ghost failed: %v\", err)\n\t\t}\n\n\t\tif err := lkr.StageNode(ghost); err != nil {\n\t\t\tt.Fatalf(\"Staging ghost failed: %v\", err)\n\t\t}\n\n\t\t// Try to remove a ghost:\n\t\tif _, _, err := Remove(lkr, ghost, true, false); err != ErrIsGhost {\n\t\t\tt.Fatalf(\"Removing ghost failed other than expected: %v\", err)\n\t\t}\n\t})\n}\n\nfunc TestRemoveExistingGhost(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tnd := MustTouch(t, lkr, \"/x\", 1)\n\t\t_, ghost, err := Remove(lkr, nd, true, true)\n\t\trequire.Nil(t, err)\n\n\t\t_, _, err = Remove(lkr, ghost, false, true)\n\t\trequire.Nil(t, err)\n\n\t\t_, _, err = Remove(lkr, ghost, true, true)\n\t\trequire.NotNil(t, err)\n\t})\n}\n\nfunc moveValidCheck(t *testing.T, lkr *Linker, srcPath, dstPath string) {\n\tnd, err := lkr.LookupNode(srcPath)\n\n\tif err == nil {\n\t\tif nd.Type() != n.NodeTypeGhost {\n\t\t\tt.Fatalf(\"Source node still exists! (%v): %v\", srcPath, nd.Type())\n\t\t}\n\t} else if !ie.IsNoSuchFileError(err) {\n\t\tt.Fatalf(\"Looking up source node failed: %v\", err)\n\t}\n\n\tlkDestNode, err := lkr.LookupNode(dstPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Looking up dest path failed: %v\", err)\n\t}\n\n\tif lkDestNode.Path() != dstPath {\n\t\tt.Fatalf(\"Dest nod and dest path differ: %v <-> %v\", lkDestNode.Path(), dstPath)\n\t}\n}\n\nfunc moveInvalidCheck(t *testing.T, lkr *Linker, srcPath, dstPath string) {\n\tnode, err := lkr.LookupNode(srcPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Source node vanished during errorneous move: %v\", err)\n\t}\n\n\tif node.Type() == n.NodeTypeGhost {\n\t\tt.Fatalf(\"Source node was converted to a ghost: %v\", node.Path())\n\t}\n}\n\nvar moveAndCopyTestCases = []struct {\n\tname        string\n\tisErrorCase bool\n\tsetup       func(t *testing.T, lkr *Linker) (n.ModNode, string)\n}{\n\t{\n\t\tname:        \"basic\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/a/b/c\")\n\t\t\treturn MustTouch(t, lkr, \"/a/b/c/x\", 1), \"/a/b/y\"\n\t\t},\n\t}, {\n\t\tname:        \"basic-directory\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\treturn MustMkdir(t, lkr, \"/a/b/short\"), \"/a/b/looooong\"\n\t\t},\n\t}, {\n\t\tname:        \"basic-same-level\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\treturn MustTouch(t, lkr, \"/a\", 1), \"/b\"\n\t\t},\n\t}, {\n\t\tname:        \"basic-root-to-sub\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustTouch(t, lkr, \"/README.md\", 1)\n\t\t\tMustMkdir(t, lkr, \"/sub\")\n\t\t\treturn MustTouch(t, lkr, \"/x\", 1), \"/sub\"\n\t\t},\n\t}, {\n\t\tname:        \"into-directory\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/a/b/c\")\n\t\t\tMustMkdir(t, lkr, \"/a/b/d\")\n\t\t\treturn MustTouch(t, lkr, \"/a/b/c/x\", 1), \"/a/b/d\"\n\t\t},\n\t}, {\n\t\tname:        \"into-nonempty-directory\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/a/b/c\")\n\t\t\tMustMkdir(t, lkr, \"/a/b/d\")\n\t\t\tMustTouch(t, lkr, \"/a/b/d/y\", 1)\n\t\t\treturn MustTouch(t, lkr, \"/a/b/c/x\", 1), \"/a/b/d\"\n\t\t},\n\t}, {\n\t\tname:        \"error-to-directory-contains-file\",\n\t\tisErrorCase: true,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/src\")\n\t\t\tMustMkdir(t, lkr, \"/dst\")\n\t\t\tMustTouch(t, lkr, \"/dst/x\", 1)\n\t\t\treturn MustTouch(t, lkr, \"/src/x\", 1), \"/dst\"\n\t\t},\n\t}, {\n\t\tname:        \"error-file-over-existing\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/src\")\n\t\t\tMustMkdir(t, lkr, \"/dst\")\n\t\t\tMustTouch(t, lkr, \"/dst/x\", 1)\n\t\t\treturn MustTouch(t, lkr, \"/src/x\", 1), \"/dst/x\"\n\t\t},\n\t}, {\n\t\tname:        \"error-file-over-ghost\",\n\t\tisErrorCase: false,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\tMustMkdir(t, lkr, \"/src\")\n\t\t\tMustMkdir(t, lkr, \"/dst\")\n\t\t\tdestFile := MustTouch(t, lkr, \"/dst/x\", 1)\n\t\t\tMustRemove(t, lkr, destFile)\n\t\t\treturn MustTouch(t, lkr, \"/src/x\", 1), \"/dst/x\"\n\t\t},\n\t}, {\n\t\tname:        \"error-src-equal-dst\",\n\t\tisErrorCase: true,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\treturn MustTouch(t, lkr, \"/x\", 1), \"/x\"\n\t\t},\n\t}, {\n\t\tname:        \"error-into-own-subdir\",\n\t\tisErrorCase: true,\n\t\tsetup: func(t *testing.T, lkr *Linker) (n.ModNode, string) {\n\t\t\t// We should not be able to move \"/dir\" into itself.\n\t\t\tdir := MustMkdir(t, lkr, \"/dir\")\n\t\t\tMustTouch(t, lkr, \"/dir/x\", 1)\n\t\t\treturn dir, \"/dir/own\"\n\t\t},\n\t},\n}\n\nfunc TestMoveSingle(t *testing.T) {\n\t// Cases to cover for move():\n\t// 1.        Dest exists:\n\t// 1.1.      Is a directory.\n\t// 1.1.1  E  This directory contains basename(src) and it is a file.\n\t// 1.1.2  E  This directory contains basename(src) and it is a non-empty dir.\n\t// 1.1.3  V  This directory contains basename(src) and it is a empty dir.\n\t// 2.        Dest does not exist.\n\t// 2.1    V  dirname(dest) exists and is a directory.\n\t// 2.2    E  dirname(dest) does not exists.\n\t// 2.2    E  dirname(dest) exists and is not a directory.\n\t// 3.     E  Overlap of src and dest paths (src in dest)\n\n\t// Checks for valid cases (V):\n\t// 1) src is gone.\n\t// 2) dest is the same node as before.\n\t// 3) dest has the correct path.\n\n\t// Checks for invalid cases (E):\n\t// 1) src is not gone.\n\n\tfor _, tc := range moveAndCopyTestCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tWithDummyLinker(t, func(lkr *Linker) {\n\t\t\t\t// Setup src and dest dir with a file in it named like src.\n\t\t\t\tsrcNd, dstPath := tc.setup(t, lkr)\n\t\t\t\tsrcPath := srcNd.Path()\n\n\t\t\t\tif err := Move(lkr, srcNd, dstPath); err != nil {\n\t\t\t\t\tif tc.isErrorCase {\n\t\t\t\t\t\tmoveInvalidCheck(t, lkr, srcPath, dstPath)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt.Fatalf(\"Move failed unexpectly: %v\", err)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmoveValidCheck(t, lkr, srcPath, dstPath)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestMoveDirectoryWithChild(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tMustMkdir(t, lkr, \"/src\")\n\t\toldFile := MustTouch(t, lkr, \"/src/x\", 1)\n\t\toldFile = oldFile.Copy(oldFile.Inode()).(*n.File)\n\n\t\tMustCommit(t, lkr, \"before move\")\n\n\t\tdir, err := lkr.LookupDirectory(\"/src\")\n\t\trequire.Nil(t, err)\n\n\t\tMustMove(t, lkr, dir, \"/dst\")\n\t\tMustCommit(t, lkr, \"after move\")\n\n\t\tfile, err := lkr.LookupFile(\"/dst/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, h.TestDummy(t, 1), file.BackendHash())\n\n\t\t_, err = lkr.LookupGhost(\"/src\")\n\t\trequire.Nil(t, err)\n\n\t\t// This will resolve to the old file:\n\t\t_, err = lkr.LookupFile(\"/src/x\")\n\t\trequire.NotNil(t, err)\n\t})\n}\n\nfunc TestMoveDirectory(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tsrcDir := MustMkdir(t, lkr, \"/src\")\n\t\tMustMkdir(t, lkr, \"/src/sub\")\n\t\tMustTouch(t, lkr, \"/src/sub/x\", 23)\n\t\tMustTouch(t, lkr, \"/src/y\", 23)\n\n\t\tdstDir := MustMove(t, lkr, srcDir, \"/dst\")\n\n\t\texpect := []string{\n\t\t\t\"/dst/sub/x\",\n\t\t\t\"/dst/sub\",\n\t\t\t\"/dst/y\",\n\t\t\t\"/dst\",\n\t\t}\n\n\t\tgot := []string{}\n\t\trequire.Nil(t, n.Walk(lkr, dstDir, true, func(child n.Node) error {\n\t\t\tgot = append(got, child.Path())\n\t\t\treturn nil\n\t\t}))\n\n\t\tsort.Strings(expect)\n\t\tsort.Strings(got)\n\n\t\trequire.Equal(t, len(expect), len(got))\n\t\tfor idx := range expect {\n\t\t\tif got[idx] != expect[idx] {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Moved node child `%s` does not match `%s`\",\n\t\t\t\t\tgot[idx],\n\t\t\t\t\texpect[idx],\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc TestMoveDirectoryWithGhosts(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tsrcDir := MustMkdir(t, lkr, \"/src\")\n\t\tMustMkdir(t, lkr, \"/src/sub\")\n\t\txFile := MustTouch(t, lkr, \"/src/sub/x\", 23)\n\t\tMustTouch(t, lkr, \"/src/y\", 23)\n\t\tMustMove(t, lkr, xFile, \"/src/z\")\n\n\t\tdstDir := MustMove(t, lkr, srcDir, \"/dst\")\n\n\t\texpect := []string{\n\t\t\t\"/dst\",\n\t\t\t\"/dst/sub\",\n\t\t\t\"/dst/sub/x\",\n\t\t\t\"/dst/y\",\n\t\t\t\"/dst/z\",\n\t\t}\n\n\t\t// Be evil and clear the mem cache in order to check if all changes\n\t\t// were checked into the staging area.\n\t\tlkr.MemIndexClear()\n\n\t\tgot := []string{}\n\t\trequire.Nil(t, n.Walk(lkr, dstDir, true, func(child n.Node) error {\n\t\t\tgot = append(got, child.Path())\n\t\t\treturn nil\n\t\t}))\n\n\t\t// Check if the moved directory contains the right paths:\n\t\tsort.Strings(got)\n\t\tfor idx, expectPath := range expect {\n\t\t\tif expectPath != got[idx] {\n\t\t\t\tt.Fatalf(\"%d: %s != %s\", idx, expectPath, got[idx])\n\t\t\t}\n\t\t}\n\n\t\tghost, err := lkr.LookupNode(got[2])\n\t\trequire.Nil(t, err)\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/src/sub/x\", ghost.(*n.Ghost).OldNode().Path())\n\n\t\ttwin, _, err := lkr.MoveMapping(status, ghost)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/dst/z\", twin.Path())\n\t})\n}\n\nfunc TestStage(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\t// Initial stage of the file:\n\t\tkey := make([]byte, 32)\n\n\t\tcontentHash1 := h.TestDummy(t, 1)\n\t\tbackendHash1 := h.TestDummy(t, 1)\n\t\tfile, err := Stage(\n\t\t\tlkr,\n\t\t\t\"/photos/moose.png\",\n\t\t\tcontentHash1,\n\t\t\tbackendHash1,\n\t\t\t2,\n\t\t\t-1,\n\t\t\tkey,\n\t\t\ttime.Now(),\n\t\t\tfalse,\n\t\t)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Adding of /photos/moose.png failed: %v\", err)\n\t\t}\n\n\t\tcontentHash2 := h.TestDummy(t, 2)\n\t\tbackendHash2 := h.TestDummy(t, 2)\n\t\tfile, err = Stage(\n\t\t\tlkr,\n\t\t\t\"/photos/moose.png\",\n\t\t\tcontentHash2,\n\t\t\tbackendHash2,\n\t\t\t3,\n\t\t\t-1,\n\t\t\tkey,\n\t\t\ttime.Now(),\n\t\t\tfalse,\n\t\t)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Adding of /photos/moose.png failed: %v\", err)\n\t\t}\n\n\t\tif !file.BackendHash().Equal(h.TestDummy(t, 2)) {\n\t\t\tt.Fatalf(\n\t\t\t\t\"File content after update is not what's advertised: %v\",\n\t\t\t\tfile.TreeHash(),\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc TestStageDirOverGhost(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tempty := MustMkdir(t, lkr, \"/empty\")\n\t\tMustMove(t, lkr, empty, \"/moved_empty\")\n\t\tMustMkdir(t, lkr, \"/empty\")\n\t\tdir, err := lkr.LookupDirectory(\"/empty\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, dir.Path(), \"/empty\")\n\t\tif dir.Type() != n.NodeTypeDirectory {\n\t\t\tt.Fatalf(\"/empty is not a directory\")\n\t\t}\n\t})\n}\n\nfunc TestCopy(t *testing.T) {\n\tfor _, tc := range moveAndCopyTestCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\n\t\t\tWithDummyLinker(t, func(lkr *Linker) {\n\t\t\t\t// Setup src and dest dir with a file in it named like src.\n\t\t\t\tsrcNd, dstPath := tc.setup(t, lkr)\n\t\t\t\tsrcPath := srcNd.Path()\n\n\t\t\t\tnewNd, err := Copy(lkr, srcNd, dstPath)\n\t\t\t\tif newNd != nil {\n\t\t\t\t\tif !strings.HasPrefix(newNd.Path(), dstPath) {\n\t\t\t\t\t\tt.Fatalf(\n\t\t\t\t\t\t\t\"Node was copied to wrong path: %v (want %v)\",\n\t\t\t\t\t\t\tnewNd.Path(),\n\t\t\t\t\t\t\tdstPath,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Make sure the new copy is reachable from parent:\n\t\t\t\t\tpar, err := lkr.LookupDirectory(path.Dir(newNd.Path()))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tt.Fatalf(\"Failed to lookup parent: %v\", err)\n\t\t\t\t\t}\n\n\t\t\t\t\tnewChildNd, err := par.Child(lkr, newNd.Name())\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tt.Fatalf(\"Failed to get base path: %v\", err)\n\t\t\t\t\t}\n\n\t\t\t\t\tnewNd = newChildNd.(n.ModNode)\n\t\t\t\t}\n\n\t\t\t\tif oldNd, lookErr := lkr.LookupNode(srcPath); oldNd == nil || lookErr != nil {\n\t\t\t\t\tt.Fatalf(\"source node does not exist or is not accesible: %v %v\", err, tc.isErrorCase)\n\t\t\t\t}\n\n\t\t\t\tif err != nil {\n\t\t\t\t\tif tc.isErrorCase {\n\t\t\t\t\t\tnode, err := lkr.LookupNode(srcPath)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\tt.Fatalf(\"Source node vanished during errorneous copy: %v\", err)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif node.Type() == n.NodeTypeGhost {\n\t\t\t\t\t\t\tt.Fatalf(\"Source node was converted to a ghost: %v\", node.Path())\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt.Fatalf(\"Copy failed unexpectly: %v\", err)\n\t\t\t\t\t}\n\n\t\t\t\t\t// No need to test more.\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif tc.isErrorCase {\n\t\t\t\t\tt.Fatalf(\"test should have failed\")\n\t\t\t\t}\n\n\t\t\t\tif newNd == nil {\n\t\t\t\t\tt.Fatalf(\"Dest node does not exist after copy: %v\", err)\n\t\t\t\t}\n\n\t\t\t\tif !newNd.BackendHash().Equal(srcNd.BackendHash()) {\n\t\t\t\t\tt.Logf(\"Content of src and dst differ after copy\")\n\t\t\t\t\tt.Logf(\"WANT: %v\", srcNd.BackendHash())\n\t\t\t\t\tt.Logf(\"GOT : %v\", newNd.BackendHash())\n\t\t\t\t\tt.Fatalf(\"Check Copy()\")\n\t\t\t\t}\n\n\t\t\t\tif newNd.Inode() < srcNd.Inode() {\n\t\t\t\t\tt.Fatalf(\"New inode has <= inode of src\")\n\t\t\t\t}\n\n\t\t\t\t// Sanity check: do not rely on Copy() to return a valid, staged node.\n\t\t\t\t// Check if we can look it up after the Copy too.\n\t\t\t\tnd, err := lkr.LookupNode(newNd.Path())\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.NotNil(t, nd)\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/core/gc.go",
    "content": "package core\n\nimport (\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// GarbageCollector implements a small mark & sweep garbage collector.\n// It exists more for the sake of fault tolerance than it being an\n// essential part of brig. This is different from the ipfs garbage collector.\ntype GarbageCollector struct {\n\tlkr      *Linker\n\tkv       db.Database\n\tnotifier func(nd n.Node) bool\n\tmarkMap  map[string]struct{}\n}\n\n// NewGarbageCollector will return a new GC, operating on `lkr` and `kv`.\n// It will call `kc` on every collected node.\nfunc NewGarbageCollector(lkr *Linker, kv db.Database, kc func(nd n.Node) bool) *GarbageCollector {\n\treturn &GarbageCollector{\n\t\tlkr:      lkr,\n\t\tkv:       kv,\n\t\tnotifier: kc,\n\t}\n}\n\nfunc (gc *GarbageCollector) markMoveMap(key []string) error {\n\tkeys, err := gc.kv.Keys(key...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, key := range keys {\n\t\tdata, err := gc.kv.Get(key...)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tnode, _, err := gc.lkr.parseMoveMappingLine(string(data))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif node != nil {\n\t\t\tgc.markMap[node.TreeHash().B58String()] = struct{}{}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (gc *GarbageCollector) mark(cmt *n.Commit, recursive bool) error {\n\tif cmt == nil {\n\t\treturn nil\n\t}\n\n\troot, err := gc.lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgc.markMap[cmt.TreeHash().B58String()] = struct{}{}\n\terr = n.Walk(gc.lkr, root, true, func(child n.Node) error {\n\t\tgc.markMap[child.TreeHash().B58String()] = struct{}{}\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tparent, err := cmt.Parent(gc.lkr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif recursive && parent != nil {\n\t\tparentCmt, ok := parent.(*n.Commit)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\treturn gc.mark(parentCmt, recursive)\n\t}\n\n\treturn nil\n}\n\nfunc (gc *GarbageCollector) sweep(prefix []string) (int, error) {\n\tremoved := 0\n\n\treturn removed, gc.lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tkeys, err := gc.kv.Keys(prefix...)\n\t\tif err != nil {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\tfor _, key := range keys {\n\t\t\tb58Hash := key[len(key)-1]\n\t\t\tif _, ok := gc.markMap[b58Hash]; ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\thash, err := h.FromB58String(b58Hash)\n\t\t\tif err != nil {\n\t\t\t\treturn hintRollback(err)\n\t\t\t}\n\n\t\t\tnode, err := gc.lkr.NodeByHash(hash)\n\t\t\tif err != nil {\n\t\t\t\treturn hintRollback(err)\n\t\t\t}\n\n\t\t\tif node == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Allow the gc caller to check if he really\n\t\t\t// wants to delete this node.\n\t\t\tif gc.notifier != nil && !gc.notifier(node) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Actually get rid of the node:\n\t\t\tgc.lkr.MemIndexPurge(node)\n\n\t\t\tbatch.Erase(key...)\n\t\t\tremoved++\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n\nfunc (gc *GarbageCollector) findAllMoveLocations(head *n.Commit) ([][]string, error) {\n\tlocations := [][]string{\n\t\t{\"stage\", \"moves\"},\n\t}\n\n\tfor {\n\t\tparent, err := head.Parent(gc.lkr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif parent == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tparentCmt, ok := parent.(*n.Commit)\n\t\tif !ok {\n\t\t\treturn nil, ie.ErrBadNode\n\t\t}\n\n\t\thead = parentCmt\n\t\tlocation := []string{\"moves\", head.TreeHash().B58String()}\n\t\tlocations = append(locations, location)\n\t}\n\n\treturn locations, nil\n}\n\n// Run will trigger a GC run. If `allObjects` is false,\n// only the staging commit will be checked. Otherwise\n// all objects in the key value store.\nfunc (gc *GarbageCollector) Run(allObjects bool) error {\n\tgc.markMap = make(map[string]struct{})\n\thead, err := gc.lkr.Status()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := gc.mark(head, allObjects); err != nil {\n\t\treturn err\n\t}\n\n\t// Staging might contain moved files that are not reachable anymore,\n\t// but still are referenced by the move mapping.\n\t// Keep them for now, they will die most likely on MakeCommit()\n\tmoveMapLocations := [][]string{\n\t\t{\"stage\", \"moves\"},\n\t}\n\n\tif allObjects {\n\t\tmoveMapLocations, err = gc.findAllMoveLocations(head)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor _, location := range moveMapLocations {\n\t\tif err := gc.markMoveMap(location); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tremoved, err := gc.sweep([]string{\"stage\", \"objects\"})\n\tif err != nil {\n\t\tlog.Debugf(\"removed %d unreachable staging objects.\", removed)\n\t}\n\n\tif allObjects {\n\t\tremoved, err = gc.sweep([]string{\"objects\"})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif removed > 0 {\n\t\t\tlog.Warningf(\"removed %d unreachable permanent objects.\", removed)\n\t\t\tlog.Warningf(\"this might indiciate a bug in catfs somewhere.\")\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/core/gc_test.go",
    "content": "package core\n\nimport (\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/db\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc assertNodeExists(t *testing.T, kv db.Database, nd n.Node) {\n\tif _, err := kv.Get(\"stage\", \"objects\", nd.TreeHash().B58String()); err != nil {\n\t\tt.Fatalf(\"Stage object %v does not exist: %v\", nd, err)\n\t}\n}\n\nfunc TestGC(t *testing.T) {\n\tmdb := db.NewMemoryDatabase()\n\tlkr := NewLinker(mdb)\n\n\tkillExpected := make(map[string]bool)\n\tkillActual := make(map[string]bool)\n\n\tgc := NewGarbageCollector(lkr, mdb, func(nd n.Node) bool {\n\t\tkillActual[nd.TreeHash().B58String()] = true\n\t\treturn true\n\t})\n\n\troot, err := lkr.Root()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve the root: %v\", root)\n\t}\n\n\tkillExpected[root.TreeHash().B58String()] = true\n\n\tsub1, err := n.NewEmptyDirectory(lkr, root, \"a\", \"u\", 3)\n\tif err != nil {\n\t\tt.Fatalf(\"Creating sub2 failed: %v\", err)\n\t}\n\n\tif err := lkr.StageNode(sub1); err != nil {\n\t\tt.Fatalf(\"Staging root failed: %v\", err)\n\t}\n\n\tkillExpected[root.TreeHash().B58String()] = true\n\tkillExpected[sub1.TreeHash().B58String()] = true\n\n\tsub2, err := n.NewEmptyDirectory(lkr, sub1, \"b\", \"u\", 4)\n\tif err != nil {\n\t\tt.Fatalf(\"Creating sub2 failed: %v\", err)\n\t}\n\n\tif err := lkr.StageNode(sub2); err != nil {\n\t\tt.Fatalf(\"Staging root failed: %v\", err)\n\t}\n\n\troot, err = lkr.Root()\n\trequire.Nil(t, err)\n\n\tif err := gc.Run(true); err != nil {\n\t\tt.Fatalf(\"gc run failed: %v\", err)\n\t}\n\n\tif len(killExpected) != len(killActual) {\n\t\tt.Fatalf(\n\t\t\t\"GC killed %d nodes, but should have killed %d\",\n\t\t\tlen(killActual),\n\t\t\tlen(killExpected),\n\t\t)\n\t}\n\n\tfor killedHash := range killActual {\n\t\tif _, ok := killExpected[killedHash]; !ok {\n\t\t\tt.Fatalf(\"%s was killed, but should not!\", killedHash)\n\t\t}\n\n\t\tif _, err := mdb.Get(\"stage\", \"objects\", killedHash); err != db.ErrNoSuchKey {\n\t\t\tt.Fatalf(\"GC did not wipe key from db: %v\", killedHash)\n\t\t}\n\t}\n\n\t// Double check that the gc did not delete other stuff from the db:\n\tassertNodeExists(t, mdb, root)\n\tassertNodeExists(t, mdb, sub1)\n\tassertNodeExists(t, mdb, sub2)\n\n\tgc = NewGarbageCollector(lkr, mdb, func(nd n.Node) bool {\n\t\tt.Fatalf(\"Second gc run found something, first didn't\")\n\t\treturn true\n\t})\n\n\tif err := gc.Run(true); err != nil {\n\t\tt.Fatalf(\"Second gc run failed: %v\", err)\n\t}\n\n\tif err := lkr.MakeCommit(n.AuthorOfStage, \"some message\"); err != nil {\n\t\tt.Fatalf(\"MakeCommit() failed: %v\", err)\n\t}\n\n\tgc = NewGarbageCollector(lkr, mdb, func(nd n.Node) bool {\n\t\tt.Fatalf(\"Third gc run found something, first didn't\")\n\t\treturn true\n\t})\n\n\tif err := gc.Run(true); err != nil {\n\t\tt.Fatalf(\"Third gc run failed: %v\", err)\n\t}\n}\n"
  },
  {
    "path": "catfs/core/linker.go",
    "content": "package core\n\n// Layout of the key/value store:\n//\n// objects/<NODE_HASH>                   => NODE_METADATA\n// tree/<FULL_NODE_PATH>                 => NODE_HASH\n// index/<CMT_INDEX>                     => COMMIT_HASH\n// inode/<INODE>                         => NODE_HASH\n// moves/<INODE>                         => MOVE_INFO\n// moves/overlay/<INODE>                 => MOVE_INFO\n//\n// stage/objects/<NODE_HASH>             => NODE_METADATA\n// stage/tree/<FULL_NODE_PATH>           => NODE_HASH\n// stage/STATUS                          => COMMIT_METADATA\n// stage/moves/<INODE>                   => MOVE_INFO\n// stage/moves/overlay/<INODE>           => MOVE_INFO\n//\n// stats/max-inode                       => UINT64\n// refs/<REFNAME>                        => NODE_HASH\n//\n// Defined by caller:\n//\n// metadata/                             => BYTES (Caller defined data)\n//\n// NODE is either a Commit, a Directory or a File.\n// FULL_NODE_PATH may contain slashes and in case of directories,\n// it will contain a trailing slash.\n//\n// The following refs are defined by the system:\n// HEAD -> Points to the latest finished commit, or nil.\n// CURR -> Points to the staging commit.\n//\n// In git terminology, this file implements the following commands:\n//\n// - git add:    StageNode(): Create and Update Nodes.\n// - git status: Status()\n// - git commit: MakeCommit()\n//\n// All write operations are written in one batch or are rolled back\n// on errors.\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"path\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/sahib/brig/util/trie\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// Linker implements the basic logic of brig's data model\n// It uses an underlying key/value database to\n// storea a Merkle-DAG with versioned metadata,\n// similar to what git does internally.\ntype Linker struct {\n\tkv db.Database\n\n\t// root of the filesystem\n\troot *n.Directory\n\n\t// Path lookup trie\n\tptrie *trie.Node\n\n\t// B58Hash to node\n\tindex map[string]n.Node\n\n\t// UID to node\n\tinodeIndex map[uint64]n.Node\n\n\t// Cache for the linker owner.\n\towner string\n}\n\n// NewLinker returns a new lkr, ready to use. It assumes the key value store\n// is working and does no check on this.\nfunc NewLinker(kv db.Database) *Linker {\n\tlkr := &Linker{kv: kv}\n\tlkr.MemIndexClear()\n\treturn lkr\n}\n\n// MemIndexAdd adds `nd` to the in memory index.\nfunc (lkr *Linker) MemIndexAdd(nd n.Node, updatePathIndex bool) {\n\tlkr.index[nd.TreeHash().B58String()] = nd\n\tlkr.inodeIndex[nd.Inode()] = nd\n\n\tif updatePathIndex {\n\t\tpath := nd.Path()\n\t\tif nd.Type() == n.NodeTypeDirectory {\n\t\t\tpath = appendDot(path)\n\t\t}\n\t\tlkr.ptrie.InsertWithData(path, nd)\n\t}\n}\n\n// MemIndexSwap updates an entry of the in memory index, by deleting\n// the old entry referenced by oldHash (may be nil). This is necessary\n// to ensure that old hashes do not resolve to the new, updated instance.\n// If the old instance is needed, it will be loaded as new instance.\n// You should not need to call this function, except when implementing own Nodes.\nfunc (lkr *Linker) MemIndexSwap(nd n.Node, oldHash h.Hash, updatePathIndex bool) {\n\tif oldHash != nil {\n\t\tdelete(lkr.index, oldHash.B58String())\n\t}\n\n\tlkr.MemIndexAdd(nd, updatePathIndex)\n}\n\n// MemSetRoot sets the current root, but does not store it yet. It's supposed\n// to be called after in-memory modifications. Only implementors of new Nodes\n// might need to call this function.\nfunc (lkr *Linker) MemSetRoot(root *n.Directory) {\n\tif lkr.root != nil {\n\t\tlkr.MemIndexSwap(root, lkr.root.TreeHash(), true)\n\t} else {\n\t\tlkr.MemIndexAdd(root, true)\n\t}\n\n\tlkr.root = root\n}\n\n// MemIndexPurge removes `nd` from the memory index.\nfunc (lkr *Linker) MemIndexPurge(nd n.Node) {\n\tdelete(lkr.inodeIndex, nd.Inode())\n\tdelete(lkr.index, nd.TreeHash().B58String())\n\tlkr.ptrie.Lookup(nd.Path()).Remove()\n}\n\n// MemIndexClear resets the memory index to zero.\n// This should not be called mid-flight in operations,\n// but should be okay to call between atomic operations.\nfunc (lkr *Linker) MemIndexClear() {\n\tlkr.ptrie = trie.NewNode()\n\tlkr.index = make(map[string]n.Node)\n\tlkr.inodeIndex = make(map[uint64]n.Node)\n\tlkr.root = nil\n}\n\n//////////////////////////\n// COMMON NODE HANDLING //\n//////////////////////////\n\n// NextInode returns a unique identifier, used to identify a single node. You\n// should not need to call this function, except when implementing own nodes.\nfunc (lkr *Linker) NextInode() uint64 {\n\tnodeCount, err := lkr.kv.Get(\"stats\", \"max-inode\")\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn 0\n\t}\n\n\t// nodeCount might be nil on startup:\n\tcnt := uint64(1)\n\tif nodeCount != nil {\n\t\tcnt = binary.BigEndian.Uint64(nodeCount) + 1\n\t}\n\n\tcntBuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(cntBuf, cnt)\n\n\terr = lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tbatch.Put(cntBuf, \"stats\", \"max-inode\")\n\t\treturn false, nil\n\t})\n\n\tif err != nil {\n\t\treturn 0\n\t}\n\n\treturn cnt\n}\n\n// FilesByContents checks what files are associated with the content hashes in\n// `contents`. It returns a map of content hash b58 to file. This method is\n// quite heavy and should not be used in loops. There is room for optimizations.\nfunc (lkr *Linker) FilesByContents(contents []h.Hash) (map[string]*n.File, error) {\n\tkeys, err := lkr.kv.Keys()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult := make(map[string]*n.File)\n\tfor _, key := range keys {\n\t\t// Filter non-node storage:\n\t\tfullKey := strings.Join(key, \"/\")\n\t\tif !strings.HasPrefix(fullKey, \"objects\") &&\n\t\t\t!strings.HasPrefix(fullKey, \"stage/objects\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tdata, err := lkr.kv.Get(key...)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tnd, err := n.UnmarshalNode(data)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif nd.Type() != n.NodeTypeFile {\n\t\t\tcontinue\n\t\t}\n\n\t\tfile, ok := nd.(*n.File)\n\t\tif !ok {\n\t\t\treturn nil, ie.ErrBadNode\n\t\t}\n\n\t\tfor _, content := range contents {\n\t\t\tif content.Equal(file.BackendHash()) {\n\t\t\t\tresult[content.B58String()] = file\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// loadNode loads an individual object by its hash from the object store. It\n// will return nil if the hash is not there.\nfunc (lkr *Linker) loadNode(hash h.Hash) (n.Node, error) {\n\tvar data []byte\n\tvar err error\n\n\tb58hash := hash.B58String()\n\n\t// First look in the stage:\n\tloadableBuckets := [][]string{\n\t\t{\"stage\", \"objects\", b58hash},\n\t\t{\"objects\", b58hash},\n\t}\n\n\tfor _, bucketPath := range loadableBuckets {\n\t\tdata, err = lkr.kv.Get(bucketPath...)\n\t\tif err != nil && err != db.ErrNoSuchKey {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif data != nil {\n\t\t\treturn n.UnmarshalNode(data)\n\t\t}\n\t}\n\n\t// Damn, no hash found:\n\treturn nil, nil\n}\n\n// NodeByHash returns the node identified by hash.\n// If no such hash could be found, nil is returned.\nfunc (lkr *Linker) NodeByHash(hash h.Hash) (n.Node, error) {\n\t// Check if we have this this node in the memory cache already:\n\tb58Hash := hash.B58String()\n\tif cachedNode, ok := lkr.index[b58Hash]; ok {\n\t\treturn cachedNode, nil\n\t}\n\n\t// Node was not in the cache, load directly from kv.\n\tnd, err := lkr.loadNode(hash)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tlkr.MemIndexAdd(nd, false)\n\treturn nd, nil\n}\n\nfunc appendDot(path string) string {\n\t// path.Join() calls path.Clean() which in turn\n\t// removes the '.' at the end when trying to join that.\n\t// But since we use the dot to mark directories we shouldn't do that.\n\tif strings.HasSuffix(path, \"/\") {\n\t\treturn path + \".\"\n\t}\n\n\treturn path + \"/.\"\n}\n\n// ResolveNode resolves a path to a hash and resolves the corresponding node by\n// calling NodeByHash(). If no node could be resolved, nil is returned.\n// It does not matter if the node was deleted in the meantime. If so,\n// a Ghost node is returned which stores the last known state.\nfunc (lkr *Linker) ResolveNode(nodePath string) (n.Node, error) {\n\t// Check if it's cached already:\n\ttrieNode := lkr.ptrie.Lookup(nodePath)\n\tif trieNode != nil && trieNode.Data != nil {\n\t\treturn trieNode.Data.(n.Node), nil\n\t}\n\n\tfullPaths := [][]string{\n\t\t{\"stage\", \"tree\", nodePath},\n\t\t{\"tree\", nodePath},\n\t}\n\n\tfor _, fullPath := range fullPaths {\n\t\tb58Hash, err := lkr.kv.Get(fullPath...)\n\t\tif err != nil && err != db.ErrNoSuchKey {\n\t\t\treturn nil, e.Wrapf(err, \"db-lookup\")\n\t\t}\n\n\t\tif err == db.ErrNoSuchKey {\n\t\t\tcontinue\n\t\t}\n\n\t\tbhash, err := h.FromB58String(string(b58Hash))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif bhash != nil {\n\t\t\treturn lkr.NodeByHash(h.Hash(bhash))\n\t\t}\n\t}\n\n\t// Return nil if nothing found:\n\treturn nil, nil\n}\n\n// StageNode inserts a modified node to the staging area, making sure the\n// modification is persistent and part of the staging commit. All parent\n// directories of the node in question will be staged automatically. If there\n// was no modification it will be a (quite expensive) NOOP.\nfunc (lkr *Linker) StageNode(nd n.Node) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tif err := lkr.stageNodeRecursive(batch, nd); err != nil {\n\t\t\treturn true, e.Wrapf(err, \"recursive stage\")\n\t\t}\n\n\t\t// Update the staging commit's root hash:\n\t\tstatus, err := lkr.Status()\n\t\tif err != nil {\n\t\t\treturn true, fmt.Errorf(\"failed to retrieve status: %v\", err)\n\t\t}\n\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tstatus.SetModTime(time.Now())\n\t\tstatus.SetRoot(root.TreeHash())\n\t\tlkr.MemSetRoot(root)\n\t\treturn hintRollback(lkr.saveStatus(status))\n\t})\n}\n\n// CommitByIndex returns the commit referenced by `index`.\n// `0` will return the very first commit. Negative numbers will yield\n// a ErrNoSuchKey error.\nfunc (lkr *Linker) CommitByIndex(index int64) (*n.Commit, error) {\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif index < 0 {\n\t\t// Interpret an index of -n as curr-(n+1),\n\t\t// so that -1 means \"curr\".\n\t\tindex = status.Index() + index + 1\n\t}\n\n\tb58Hash, err := lkr.kv.Get(\"index\", strconv.FormatInt(index, 10))\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, err\n\t}\n\n\t// Special case: status is not in the index bucket.\n\t// Do a separate check for it.\n\tif err == db.ErrNoSuchKey {\n\t\tif status.Index() == index {\n\t\t\treturn status, nil\n\t\t}\n\n\t\towner, _ := lkr.Owner()\n\t\terrmsg := fmt.Sprintf(\"No commit with index %v for owner `%v`\", index, owner)\n\t\tlog.Error(errmsg)\n\t\treturn nil, ie.NoSuchCommitIndex(index)\n\t}\n\n\thash, err := h.FromB58String(string(b58Hash))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn lkr.CommitByHash(hash)\n}\n\n// NodeByInode resolves a node by it's unique ID.\n// It will return nil if no corresponding node was found.\nfunc (lkr *Linker) NodeByInode(uid uint64) (n.Node, error) {\n\tb58Hash, err := lkr.kv.Get(\"inode\", strconv.FormatUint(uid, 10))\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, err\n\t}\n\n\thash, err := h.FromB58String(string(b58Hash))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn lkr.NodeByHash(hash)\n}\n\nfunc (lkr *Linker) stageNodeRecursive(batch db.Batch, nd n.Node) error {\n\tif nd.Type() == n.NodeTypeCommit {\n\t\treturn fmt.Errorf(\"bug: commits cannot be staged; use MakeCommit()\")\n\t}\n\n\tdata, err := n.MarshalNode(nd)\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"marshal\")\n\t}\n\n\tb58Hash := nd.TreeHash().B58String()\n\tbatch.Put(data, \"stage\", \"objects\", b58Hash)\n\n\tuidKey := strconv.FormatUint(nd.Inode(), 10)\n\tbatch.Put([]byte(nd.TreeHash().B58String()), \"inode\", uidKey)\n\n\thashPath := []string{\"stage\", \"tree\", nd.Path()}\n\tif nd.Type() == n.NodeTypeDirectory {\n\t\thashPath = append(hashPath, \".\")\n\t}\n\n\tbatch.Put([]byte(b58Hash), hashPath...)\n\n\t// Remember/Update this node in the cache if it's not yet there:\n\tlkr.MemIndexAdd(nd, true)\n\n\t// We need to save parent directories too, in case the hash changed:\n\t// Note that this will create many pointless directories in staging.\n\t// That's okay since we garbage collect it every few seconds\n\t// on a higher layer.\n\tif nd.Path() == \"/\" {\n\t\t// Can' go any higher. Save this dir as new virtual root.\n\t\troot, ok := nd.(*n.Directory)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tlkr.MemSetRoot(root)\n\t\treturn nil\n\t}\n\n\tpar, err := lkr.ResolveDirectory(path.Dir(nd.Path()))\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"resolve\")\n\t}\n\n\tif par != nil {\n\t\tif err := lkr.stageNodeRecursive(batch, par); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n/////////////////////\n// COMMIT HANDLING //\n/////////////////////\n\n// SetMergeMarker sets the current status to be a merge commit.\n// Note that this function only will have a result when MakeCommit() is called afterwards.\n// Otherwise, the changes will not be written to disk.\nfunc (lkr *Linker) SetMergeMarker(with string, remoteHead h.Hash) error {\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tstatus.SetMergeMarker(with, remoteHead)\n\treturn lkr.saveStatus(status)\n}\n\n// MakeCommit creates a new full commit in the version history.\n// The current staging commit is finalized with `author` and `message`\n// and gets saved. A new, identical staging commit is created pointing\n// to the root of the now new HEAD.\n//\n// If nothing changed since the last call to MakeCommit, it will\n// return ErrNoChange, which can be reacted upon.\nfunc (lkr *Linker) MakeCommit(author string, message string) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tswitch err := lkr.makeCommit(batch, author, message); err {\n\t\tcase ie.ErrNoChange:\n\t\t\treturn false, err\n\t\tcase nil:\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn true, err\n\t\t}\n\t})\n}\n\nfunc (lkr *Linker) makeCommitPutCurrToPersistent(batch db.Batch, rootDir *n.Directory) (map[uint64]bool, error) {\n\texportedInodes := make(map[uint64]bool)\n\treturn exportedInodes, n.Walk(lkr, rootDir, true, func(child n.Node) error {\n\t\tdata, err := n.MarshalNode(child)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tb58Hash := child.TreeHash().B58String()\n\t\tbatch.Put(data, \"objects\", b58Hash)\n\t\texportedInodes[child.Inode()] = true\n\n\t\tchildPath := child.Path()\n\t\tif child.Type() == n.NodeTypeDirectory {\n\t\t\tchildPath = appendDot(childPath)\n\t\t}\n\n\t\tbatch.Put([]byte(b58Hash), \"tree\", childPath)\n\t\treturn nil\n\t})\n}\n\nfunc (lkr *Linker) makeCommit(batch db.Batch, author string, message string) error {\n\thead, err := lkr.Head()\n\tif err != nil && !ie.IsErrNoSuchRef(err) {\n\t\treturn err\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Only compare with previous if we have a HEAD yet.\n\tif head != nil {\n\t\tif status.Root().Equal(head.Root()) {\n\t\t\treturn ie.ErrNoChange\n\t\t}\n\t}\n\n\trootDir, err := lkr.Root()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Go over all files/directories and save them in tree & objects.\n\t// Note that this will only move nodes that are reachable from the current\n\t// commit root. Intermediate nodes will not be copied.\n\texportedInodes, err := lkr.makeCommitPutCurrToPersistent(batch, rootDir)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// NOTE: `head` may be nil, if it couldn't be resolved,\n\t//        or (maybe more likely) if this is the first commit.\n\tif head != nil {\n\t\tif err := status.SetParent(lkr, head); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := status.BoxCommit(author, message); err != nil {\n\t\treturn err\n\t}\n\n\tstatusData, err := n.MarshalNode(status)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tstatusB58Hash := status.TreeHash().B58String()\n\tbatch.Put(statusData, \"objects\", statusB58Hash)\n\n\t// Remember this commit under his index:\n\tbatch.Put([]byte(statusB58Hash), \"index\", strconv.FormatInt(status.Index(), 10))\n\n\tif err := lkr.SaveRef(\"HEAD\", status); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if we have already tagged the initial commit.\n\tif _, err := lkr.ResolveRef(\"init\"); err != nil {\n\t\tif !ie.IsErrNoSuchRef(err) {\n\t\t\t// Some other error happened.\n\t\t\treturn err\n\t\t}\n\n\t\t// This is probably the first commit. Tag it.\n\t\tif err := lkr.SaveRef(\"INIT\", status); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Fixate the moved paths in the stage:\n\tif err := lkr.commitMoveMapping(status, exportedInodes); err != nil {\n\t\treturn err\n\t}\n\n\tif err := lkr.clearStage(batch); err != nil {\n\t\treturn err\n\t}\n\n\tnewStatus, err := n.NewEmptyCommit(lkr.NextInode(), status.Index()+1)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnewStatus.SetRoot(status.Root())\n\tif err := newStatus.SetParent(lkr, status); err != nil {\n\t\treturn err\n\t}\n\n\treturn lkr.saveStatus(newStatus)\n}\n\nfunc (lkr *Linker) clearStage(batch db.Batch) error {\n\t// Clear the staging area.\n\ttoClear := [][]string{\n\t\t{\"stage\", \"objects\"},\n\t\t{\"stage\", \"tree\"},\n\t\t{\"stage\", \"moves\"},\n\t}\n\n\tfor _, key := range toClear {\n\t\tif err := batch.Clear(key...); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n///////////////////////\n// METADATA HANDLING //\n///////////////////////\n\n// MetadataPut remembers a value persisntenly identified by `key`.\n// It can be used as single-level key value store for user purposes.\nfunc (lkr *Linker) MetadataPut(key string, value []byte) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tbatch.Put([]byte(value), \"metadata\", key)\n\t\treturn false, nil\n\t})\n}\n\n// MetadataGet retriesves a previously put key value pair.\n// It will return nil if no such value could be retrieved.\nfunc (lkr *Linker) MetadataGet(key string) ([]byte, error) {\n\treturn lkr.kv.Get(\"metadata\", key)\n}\n\n////////////////////////\n// OWNERSHIP HANDLING //\n////////////////////////\n\n// Owner returns the owner of the linker.\nfunc (lkr *Linker) Owner() (string, error) {\n\tif lkr.owner != \"\" {\n\t\treturn lkr.owner, nil\n\t}\n\n\tdata, err := lkr.MetadataGet(\"owner\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Cache owner, we don't want to reload it again and again.\n\t// It will usually not change during runtime, except SetOwner\n\t// is called (which is invalidating the cache anyways)\n\tlkr.owner = string(data)\n\treturn lkr.owner, nil\n}\n\n// SetOwner will set the owner to `owner`.\nfunc (lkr *Linker) SetOwner(owner string) error {\n\tlkr.owner = owner\n\treturn lkr.MetadataPut(\"owner\", []byte(owner))\n}\n\n// SetABIVersion will set the ABI version to `version`.\nfunc (lkr *Linker) SetABIVersion(version int) error {\n\tsv := strconv.Itoa(version)\n\treturn lkr.MetadataPut(\"version\", []byte(sv))\n}\n\n////////////////////////\n// REFERENCE HANDLING //\n////////////////////////\n\n// ResolveRef resolves the hash associated with `refname`. If the ref could not\n// be resolved, ErrNoSuchRef is returned. Typically, Node will be a Commit.\n// But there are no technical restrictions on which node typ to use.\n// NOTE: ResolveRef(\"HEAD\") != ResolveRef(\"head\") due to case.\nfunc (lkr *Linker) ResolveRef(refname string) (n.Node, error) {\n\torigRefname := refname\n\n\tnUps := 0\n\tfor idx := len(refname) - 1; idx >= 0; idx-- {\n\t\tif refname[idx] == '^' {\n\t\t\tnUps++\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Strip the ^s:\n\trefname = refname[:len(refname)-nUps]\n\n\t// Special case: the status commit is not part of the normal object store.\n\t// Still make it able to resolve it by it's refname \"curr\".\n\tif refname == \"curr\" || refname == \"status\" {\n\t\treturn lkr.Status()\n\t}\n\n\tb58Hash, err := lkr.kv.Get(\"refs\", refname)\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, err\n\t}\n\n\tif len(b58Hash) == 0 {\n\t\t// Try to interpret the refname as b58hash directly.\n\t\t// This path will hit when passing a commit hash directly\n\t\t// as `refname` to this method.\n\t\tb58Hash = []byte(refname)\n\t}\n\n\thash, err := h.FromB58String(string(b58Hash))\n\tif err != nil {\n\t\t// Could not parse hash, so it's probably none.\n\t\treturn nil, ie.ErrNoSuchRef(refname)\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Special case: Allow the resolving of `curr`\n\t// by using its status hash and check it explicitly.\n\tvar nd n.Node\n\tif status.TreeHash().Equal(hash) {\n\t\tnd = status\n\t} else {\n\t\tnd, err = lkr.NodeByHash(h.Hash(hash))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif nd == nil {\n\t\treturn nil, ie.ErrNoSuchRef(refname)\n\t}\n\n\t// Possibly advance a few commits until we hit the one\n\t// the user required.\n\tcmt, ok := nd.(*n.Commit)\n\tif ok {\n\t\tfor i := 0; i < nUps; i++ {\n\t\t\tparentNd, err := cmt.Parent(lkr)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif parentNd == nil {\n\t\t\t\tlog.Warningf(\"ref `%s` is too far back; stopping at `init`\", origRefname)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tparentCmt, ok := parentNd.(*n.Commit)\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcmt = parentCmt\n\t\t}\n\n\t\tnd = cmt\n\t}\n\n\treturn nd, nil\n}\n\n// SaveRef stores a reference to `nd` persistently. The caller is responsbiel\n// to ensure that the node is already in the blockstore, otherwise it won't be\n// resolvable.\nfunc (lkr *Linker) SaveRef(refname string, nd n.Node) error {\n\trefname = strings.ToLower(refname)\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tbatch.Put([]byte(nd.TreeHash().B58String()), \"refs\", refname)\n\t\treturn false, nil\n\t})\n}\n\n// ListRefs lists all currently known refs.\nfunc (lkr *Linker) ListRefs() ([]string, error) {\n\trefs := []string{}\n\tkeys, err := lkr.kv.Keys(\"refs\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, key := range keys {\n\t\tif len(key) <= 1 {\n\t\t\tcontinue\n\t\t}\n\n\t\trefs = append(refs, key[1])\n\t}\n\n\treturn refs, nil\n}\n\n// RemoveRef removes the ref named `refname`.\nfunc (lkr *Linker) RemoveRef(refname string) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tbatch.Erase(\"refs\", refname)\n\t\treturn false, nil\n\t})\n}\n\n// Head is just a shortcut for ResolveRef(\"HEAD\").\nfunc (lkr *Linker) Head() (*n.Commit, error) {\n\tnd, err := lkr.ResolveRef(\"head\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcmt, ok := nd.(*n.Commit)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"oh-oh, HEAD is not a Commit... %v\", nd)\n\t}\n\n\treturn cmt, nil\n}\n\n// Root returns the current root directory of CURR.\n// It is never nil when err is nil.\nfunc (lkr *Linker) Root() (*n.Directory, error) {\n\tif lkr.root != nil {\n\t\treturn lkr.root, nil\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trootNd, err := lkr.DirectoryByHash(status.Root())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlkr.MemSetRoot(rootNd)\n\treturn rootNd, nil\n}\n\n// Status returns the current staging commit.\n// It is never nil, unless err is nil.\nfunc (lkr *Linker) Status() (*n.Commit, error) {\n\tvar cmt *n.Commit\n\tvar err error\n\n\treturn cmt, lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tcmt, err = lkr.status(batch)\n\t\treturn hintRollback(err)\n\t})\n}\nfunc (lkr *Linker) status(batch db.Batch) (cmt *n.Commit, err error) {\n\tcmt, err = lkr.loadStatus()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif cmt != nil {\n\t\treturn cmt, nil\n\t}\n\n\t// Shoot, no commit exists yet.\n\t// We need to create an initial one.\n\tcmt, err = n.NewEmptyCommit(lkr.NextInode(), 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Setup a new commit and set root from last HEAD or new one.\n\thead, err := lkr.Head()\n\tif err != nil && !ie.IsErrNoSuchRef(err) {\n\t\treturn nil, err\n\t}\n\n\tvar rootHash h.Hash\n\n\tif ie.IsErrNoSuchRef(err) {\n\t\t// There probably wasn't a HEAD yet.\n\t\tif root, err := lkr.ResolveDirectory(\"/\"); err == nil && root != nil {\n\t\t\trootHash = root.TreeHash()\n\t\t} else {\n\t\t\t// No root directory then. Create a shiny new one and stage it.\n\t\t\tinode := lkr.NextInode()\n\t\t\tnewRoot, err := n.NewEmptyDirectory(lkr, nil, \"/\", lkr.owner, inode)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Can't call StageNode(), since that would call Status(),\n\t\t\t// causing and endless loop of grief and doom.\n\t\t\tif err := lkr.stageNodeRecursive(batch, newRoot); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\trootHash = newRoot.TreeHash()\n\t\t}\n\t} else {\n\t\tif err := cmt.SetParent(lkr, head); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\trootHash = head.Root()\n\t}\n\n\tcmt.SetRoot(rootHash)\n\n\tif err := lkr.saveStatus(cmt); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn cmt, nil\n}\n\nfunc (lkr *Linker) loadStatus() (*n.Commit, error) {\n\tdata, err := lkr.kv.Get(\"stage\", \"STATUS\")\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, err\n\t}\n\n\tif data == nil {\n\t\treturn nil, nil\n\t}\n\n\tmsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// It's there already. Just unmarshal it.\n\tcmt := &n.Commit{}\n\tif err := cmt.FromCapnp(msg); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn cmt, nil\n}\n\n// saveStatus copies cmt to stage/STATUS.\nfunc (lkr *Linker) saveStatus(cmt *n.Commit) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\thead, err := lkr.Head()\n\t\tif err != nil && !ie.IsErrNoSuchRef(err) {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\tif head != nil {\n\t\t\tif err := cmt.SetParent(lkr, head); err != nil {\n\t\t\t\treturn hintRollback(err)\n\t\t\t}\n\t\t}\n\n\t\tif err := cmt.BoxCommit(n.AuthorOfStage, \"\"); err != nil {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\tdata, err := n.MarshalNode(cmt)\n\t\tif err != nil {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\tinode := strconv.FormatUint(cmt.Inode(), 10)\n\t\tbatch.Put(data, \"stage\", \"STATUS\")\n\t\tbatch.Put([]byte(cmt.TreeHash().B58String()), \"inode\", inode)\n\t\treturn hintRollback(lkr.SaveRef(\"CURR\", cmt))\n\t})\n}\n\n/////////////////////////////////\n// CONVINIENT ACCESS FUNCTIONS //\n/////////////////////////////////\n\n// LookupNode takes the root node and tries to resolve the path from there.\n// Deleted paths are recognized in contrast to ResolveNode.\n// If a path does not exist NoSuchFile is returned.\nfunc (lkr *Linker) LookupNode(repoPath string) (n.Node, error) {\n\troot, err := lkr.Root()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn root.Lookup(lkr, repoPath)\n}\n\n// LookupNodeAt works like LookupNode but returns the node at the state of `cmt`.\nfunc (lkr *Linker) LookupNodeAt(cmt *n.Commit, repoPath string) (n.Node, error) {\n\troot, err := lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif root == nil {\n\t\treturn nil, nil\n\t}\n\n\treturn root.Lookup(lkr, repoPath)\n}\n\n// LookupModNode is like LookupNode but returns a readily cast ModNode.\nfunc (lkr *Linker) LookupModNode(repoPath string) (n.ModNode, error) {\n\tnode, err := lkr.LookupNode(repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif node == nil {\n\t\treturn nil, nil\n\t}\n\n\tsnode, ok := node.(n.ModNode)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn snode, nil\n}\n\n// LookupModNodeAt is like LookupNodeAt but with readily cast type.\nfunc (lkr *Linker) LookupModNodeAt(cmt *n.Commit, repoPath string) (n.ModNode, error) {\n\tnode, err := lkr.LookupNodeAt(cmt, repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif node == nil {\n\t\treturn nil, nil\n\t}\n\n\tsnode, ok := node.(n.ModNode)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn snode, nil\n}\n\n// DirectoryByHash calls NodeByHash and attempts to convert\n// it to a Directory as convinience.\nfunc (lkr *Linker) DirectoryByHash(hash h.Hash) (*n.Directory, error) {\n\tnd, err := lkr.NodeByHash(hash)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tdir, ok := nd.(*n.Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn dir, nil\n}\n\n// ResolveDirectory calls ResolveNode and converts the result to a Directory.\n// This only accesses nodes from the filesystem and does not differentiate\n// between ghosts and living nodes.\nfunc (lkr *Linker) ResolveDirectory(dirpath string) (*n.Directory, error) {\n\tnd, err := lkr.ResolveNode(appendDot(path.Clean(dirpath)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tdir, ok := nd.(*n.Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn dir, nil\n}\n\n// LookupDirectory calls LookupNode and converts the result to a Directory.\nfunc (lkr *Linker) LookupDirectory(repoPath string) (*n.Directory, error) {\n\tnd, err := lkr.LookupNode(repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tdir, ok := nd.(*n.Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn dir, nil\n}\n\n// FileByHash calls NodeByHash and converts the result to a File.\nfunc (lkr *Linker) FileByHash(hash h.Hash) (*n.File, error) {\n\tnd, err := lkr.NodeByHash(hash)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfile, ok := nd.(*n.File)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn file, nil\n}\n\n// LookupFile calls LookupNode and converts the result to a file.\nfunc (lkr *Linker) LookupFile(repoPath string) (*n.File, error) {\n\tnd, err := lkr.LookupNode(repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tfile, ok := nd.(*n.File)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn file, nil\n}\n\n// LookupGhost calls LookupNode and converts the result to a ghost.\nfunc (lkr *Linker) LookupGhost(repoPath string) (*n.Ghost, error) {\n\tnd, err := lkr.LookupNode(repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tghost, ok := nd.(*n.Ghost)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn ghost, nil\n}\n\n// CommitByHash lookups a commit by it's hash.\n// If the commit could not be found, nil is returned.\nfunc (lkr *Linker) CommitByHash(hash h.Hash) (*n.Commit, error) {\n\tnd, err := lkr.NodeByHash(hash)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil {\n\t\treturn nil, nil\n\t}\n\n\tcmt, ok := nd.(*n.Commit)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn cmt, nil\n}\n\n// HaveStagedChanges returns true if there were changes in the staging area.\n// If an error occurs, the first return value is undefined.\nfunc (lkr *Linker) HaveStagedChanges() (bool, error) {\n\thead, err := lkr.Head()\n\tif err != nil && !ie.IsErrNoSuchRef(err) {\n\t\treturn false, err\n\t}\n\n\tif ie.IsErrNoSuchRef(err) {\n\t\t// There is no HEAD yet. Assume we have changes.\n\t\treturn true, nil\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\t// Check if the root hashes of CURR and HEAD differ.\n\treturn !status.Root().Equal(head.Root()), nil\n}\n\n// CheckoutCommit resets the current staging commit back to the commit\n// referenced by cmt. If force is false, it will check if there any staged errors in\n// the staging area and return ErrStageNotEmpty if there are any. If force is\n// true, all changes will be overwritten.\nfunc (lkr *Linker) CheckoutCommit(cmt *n.Commit, force bool) error {\n\t// Check if the staging area is empty if no force given:\n\tif !force {\n\t\thaveStaged, err := lkr.HaveStagedChanges()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif haveStaged {\n\t\t\treturn ie.ErrStageNotEmpty\n\t\t}\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\troot, err := lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn lkr.Atomic(func() (bool, error) {\n\t\t// Set the current virtual in-memory cached root\n\t\tlkr.MemSetRoot(root)\n\t\tstatus.SetRoot(cmt.Root())\n\n\t\t// Invalidate the cache, causing NodeByHash and ResolveNode to load the\n\t\t// file from the boltdb again:\n\t\tlkr.MemIndexClear()\n\t\treturn hintRollback(lkr.saveStatus(status))\n\t})\n}\n\n// AddMoveMapping takes note that the the node with `fromInode` has been moved\n// to `toInode` in the staging commit.\nfunc (lkr *Linker) AddMoveMapping(fromInode, toInode uint64) (err error) {\n\t// Make sure the actual checkout will land as one batch on disk:\n\tsrcInode := strconv.FormatUint(fromInode, 10)\n\tsrcToDstKey := []string{\"stage\", \"moves\", srcInode}\n\n\tdstInode := strconv.FormatUint(toInode, 10)\n\tdstToSrcKey := []string{\"stage\", \"moves\", dstInode}\n\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tif _, err = lkr.kv.Get(srcToDstKey...); err == db.ErrNoSuchKey {\n\t\t\tline := []byte(fmt.Sprintf(\"> inode %d\", toInode))\n\t\t\tbatch.Put(line, srcToDstKey...)\n\t\t\tbatch.Put(line, \"stage\", \"moves\", \"overlay\", srcInode)\n\t\t} else if err != nil {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\t// Also remember the move in the other direction.\n\t\tif _, err = lkr.kv.Get(dstToSrcKey...); err == db.ErrNoSuchKey {\n\t\t\tline := []byte(fmt.Sprintf(\"< inode %d\", fromInode))\n\t\t\tbatch.Put(line, dstToSrcKey...)\n\t\t\tbatch.Put(line, \"stage\", \"moves\", \"overlay\", dstInode)\n\t\t} else {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n\nfunc (lkr *Linker) parseMoveMappingLine(line string) (n.Node, MoveDir, error) {\n\tsplitLine := strings.SplitN(line, \" \", 3)\n\tif len(splitLine) < 3 {\n\t\treturn nil, 0, fmt.Errorf(\"Malformed stage move line: `%s`\", line)\n\t}\n\n\tdir := moveDirFromString(splitLine[0])\n\tif dir == MoveDirUnknown {\n\t\treturn nil, 0, fmt.Errorf(\"Unrecognized move direction `%s`\", splitLine[0])\n\t}\n\n\tswitch splitLine[1] {\n\tcase \"inode\":\n\t\tinode, err := strconv.ParseUint(splitLine[2], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, 0, err\n\t\t}\n\n\t\tnode, err := lkr.NodeByInode(inode)\n\t\tif err != nil {\n\t\t\treturn nil, 0, err\n\t\t}\n\n\t\treturn node, dir, nil\n\tcase \"hash\":\n\t\thash, err := h.FromB58String(splitLine[2])\n\t\tif err != nil {\n\t\t\treturn nil, 0, err\n\t\t}\n\n\t\tnode, err := lkr.NodeByHash(hash)\n\t\tif err != nil {\n\t\t\treturn nil, 0, err\n\t\t}\n\n\t\treturn node, dir, nil\n\tdefault:\n\t\treturn nil, 0, fmt.Errorf(\"Unsupported move map type: %s\", splitLine[1])\n\t}\n}\n\n// Process a sinlge key of the move mapping:\nfunc (lkr *Linker) commitMoveMappingKey(\n\tbatch db.Batch,\n\tstatus *n.Commit,\n\texported map[uint64]bool,\n\tkey []string,\n) error {\n\tinode, err := strconv.ParseUint(key[len(key)-1], 10, 64)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Only export move mapping that relate to nodes that were actually\n\t// exported from staging. We do not want to export intermediate moves.\n\tif _, ok := exported[inode]; !ok {\n\t\treturn nil\n\t}\n\n\tdata, err := lkr.kv.Get(key...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstNode, moveDirection, err := lkr.parseMoveMappingLine(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif moveDirection == MoveDirDstToSrc {\n\t\treturn nil\n\t}\n\n\tif dstNode == nil {\n\t\treturn fmt.Errorf(\"Failed to find dest node for commit map: %v\", string(data))\n\t}\n\n\tsrcNode, err := lkr.NodeByInode(inode)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif srcNode == nil {\n\t\treturn fmt.Errorf(\"Failed to find source node for commit map: %d\", inode)\n\t}\n\n\t// Write a bidirectional mapping for this node:\n\tdstB58 := dstNode.TreeHash().B58String()\n\tsrcB58 := srcNode.TreeHash().B58String()\n\n\tforwardLine := fmt.Sprintf(\"%v hash %s\", moveDirection, dstB58)\n\tbatch.Put(\n\t\t[]byte(forwardLine),\n\t\t\"moves\", status.TreeHash().B58String(), srcB58,\n\t)\n\n\tbatch.Put(\n\t\t[]byte(forwardLine),\n\t\t\"moves\", \"overlay\", srcB58,\n\t)\n\n\treverseLine := fmt.Sprintf(\n\t\t\"%v hash %s\",\n\t\tmoveDirection.Invert(),\n\t\tsrcB58,\n\t)\n\n\tbatch.Put(\n\t\t[]byte(reverseLine),\n\t\t\"moves\", status.TreeHash().B58String(), dstB58,\n\t)\n\n\tbatch.Put(\n\t\t[]byte(reverseLine),\n\t\t\"moves\", \"overlay\", dstB58,\n\t)\n\n\t// We need to verify that all ghosts will be copied out from staging.\n\t// In some special cases, not all used ghosts are reachable in\n\t// MakeCommit.\n\t//\n\t// Consider for example this case:\n\t//\n\t// $ touch x\n\t// $ commit\n\t// $ move x y\n\t// $ touch x\n\t// $ commit\n\t//\n\t// => In the last commit the ghost from the move (x) is overwritten by\n\t// a new file and thus will not be reachable anymore. In order to store\n\t// the full history of the file we need to also keep this ghost.\n\tfor _, checkHash := range []string{dstB58, srcB58} {\n\t\tsrcKey := []string{\"stage\", \"objects\", checkHash}\n\t\tdstKey := []string{\"objects\", checkHash}\n\n\t\t_, err = lkr.kv.Get(dstKey...)\n\t\tif err == db.ErrNoSuchKey {\n\t\t\terr = nil\n\n\t\t\t// This part of the move was not reachable, we need to copy it\n\t\t\t// to the object store additionally.\n\t\t\tif err := db.CopyKey(lkr.kv, srcKey, dstKey); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// We already have a bidir mapping for this node, no need to mention\n\t// them further.  (would not hurt, but would be duplicated work)\n\tdelete(exported, srcNode.Inode())\n\tdelete(exported, dstNode.Inode())\n\treturn nil\n}\n\nfunc (lkr *Linker) commitMoveMapping(status *n.Commit, exported map[uint64]bool) error {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\tkeys, err := lkr.kv.Keys(\"stage\", \"moves\")\n\t\tif err != nil {\n\t\t\treturn hintRollback(err)\n\t\t}\n\n\t\tfor _, key := range keys {\n\t\t\tif err := lkr.commitMoveMappingKey(batch, status, exported, key); err != nil {\n\t\t\t\treturn hintRollback(err)\n\t\t\t}\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n\nconst (\n\t// MoveDirUnknown should only be used for init purposes.\n\tMoveDirUnknown = iota\n\t// MoveDirSrcToDst means that this file was moved from source to dest.\n\t// (Therefore it is the new destination file and probably not a ghost)\n\tMoveDirSrcToDst\n\t// MoveDirDstToSrc means that this place was moved somewhere else.\n\t// (Therefore it is a likely a ghost and the new file lives somewhere else)\n\tMoveDirDstToSrc\n\t// MoveDirNone tells us that this file did not move.\n\tMoveDirNone\n)\n\n// MoveDir describes the direction of a move.\ntype MoveDir int\n\nfunc (md MoveDir) String() string {\n\tswitch md {\n\tcase MoveDirSrcToDst:\n\t\treturn \">\"\n\tcase MoveDirDstToSrc:\n\t\treturn \"<\"\n\tcase MoveDirNone:\n\t\treturn \"*\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\n// Invert changes the direction of a move, if it has one.\nfunc (md MoveDir) Invert() MoveDir {\n\tswitch md {\n\tcase MoveDirSrcToDst:\n\t\treturn MoveDirDstToSrc\n\tcase MoveDirDstToSrc:\n\t\treturn MoveDirSrcToDst\n\tdefault:\n\t\treturn md\n\t}\n}\n\nfunc moveDirFromString(spec string) MoveDir {\n\tswitch spec {\n\tcase \">\":\n\t\treturn MoveDirSrcToDst\n\tcase \"<\":\n\t\treturn MoveDirDstToSrc\n\tcase \"*\":\n\t\treturn MoveDirNone\n\tdefault:\n\t\treturn MoveDirUnknown\n\t}\n}\n\n// MoveEntryPoint tells us if a node participated in a move.\n// If so, the new node and the corresponding move direction is returned.\nfunc (lkr *Linker) MoveEntryPoint(nd n.Node) (n.Node, MoveDir, error) {\n\tmoveData, err := lkr.kv.Get(\n\t\t\"stage\", \"moves\", \"overlay\",\n\t\tstrconv.FormatUint(nd.Inode(), 10),\n\t)\n\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, MoveDirUnknown, err\n\t}\n\n\tif moveData == nil {\n\t\tmoveData, err = lkr.kv.Get(\"moves\", \"overlay\", nd.TreeHash().B58String())\n\t\tif err != nil && err != db.ErrNoSuchKey {\n\t\t\treturn nil, MoveDirUnknown, err\n\t\t}\n\n\t\tif moveData == nil {\n\t\t\treturn nil, MoveDirNone, nil\n\t\t}\n\t}\n\n\tnode, moveDir, err := lkr.parseMoveMappingLine(string(moveData))\n\tif err != nil {\n\t\treturn nil, MoveDirUnknown, err\n\t}\n\n\tif node == nil {\n\t\t// No move mapping found for this node.\n\t\t// Note that this not an error.\n\t\treturn nil, MoveDirNone, nil\n\t}\n\n\treturn node, moveDir, err\n}\n\n// MoveMapping will lookup if the node pointed to by `nd` was part of a moving\n// operation and if so, to what node it was moved and if it was the source or\n// the dest node.\nfunc (lkr *Linker) MoveMapping(cmt *n.Commit, nd n.Node) (n.Node, MoveDir, error) {\n\t// Stage and committed space use a different format to store move mappings.\n\t// This is because in staging nodes can still be modified, so the \"dest\"\n\t// part of the mapping is a moving target. Therefore we store the destination\n\t// not as hash or path (which also might be moved), but as inode reference.\n\t// Inodes always resolve to the latest version of a node.\n\t// When committing, the mappings will be \"fixed\" by converting the inode to\n\t// a hash value, to make sure we link to a specific version.\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, MoveDirUnknown, err\n\t}\n\n\t// Only look into staging if we are actually in the STATUS commit.\n\t// The lookups in the stage level are on an inode base. This would\n\t// cause jumping around in the history for older commits.\n\tif cmt == nil || cmt.TreeHash().Equal(status.TreeHash()) {\n\t\tinodeKey := strconv.FormatUint(nd.Inode(), 10)\n\t\tmoveData, err := lkr.kv.Get(\"stage\", \"moves\", inodeKey)\n\t\tif err != nil && err != db.ErrNoSuchKey {\n\t\t\treturn nil, MoveDirUnknown, err\n\t\t}\n\n\t\tif err != db.ErrNoSuchKey {\n\t\t\tnode, moveDir, err := lkr.parseMoveMappingLine(string(moveData))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, MoveDirUnknown, err\n\t\t\t}\n\n\t\t\tif node != nil {\n\t\t\t\treturn node, moveDir, err\n\t\t\t}\n\t\t}\n\t}\n\n\tif cmt == nil {\n\t\treturn nil, MoveDirNone, nil\n\t}\n\n\tmoveData, err := lkr.kv.Get(\"moves\", cmt.TreeHash().B58String(), nd.TreeHash().B58String())\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn nil, MoveDirUnknown, err\n\t}\n\n\tif moveData == nil {\n\t\treturn nil, MoveDirNone, nil\n\t}\n\n\tnode, moveDir, err := lkr.parseMoveMappingLine(string(moveData))\n\tif err != nil {\n\t\treturn nil, MoveDirUnknown, err\n\t}\n\n\tif node == nil {\n\t\t// No move mapping found for this node.\n\t\t// Note that this not an error.\n\t\treturn nil, MoveDirNone, nil\n\t}\n\n\treturn node, moveDir, err\n}\n\n// ExpandAbbrev tries to find an object reference that stats with `abbrev`.\n// If so, it will return the respective hash for it.\n// If none is found, it is considered as an error.\n// If more than one was found ie.ErrAmbigious is returned.\nfunc (lkr *Linker) ExpandAbbrev(abbrev string) (h.Hash, error) {\n\tprefixes := [][]string{\n\t\t{\"stage\", \"objects\"},\n\t\t{\"objects\"},\n\t}\n\n\t// Special case: Make it possible to abbrev the commit\n\t// of ``curr`` - it does live in stage/STATUS, not somewhere else.\n\tcurr, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif strings.HasPrefix(curr.TreeHash().B58String(), abbrev) {\n\t\treturn curr.TreeHash(), nil\n\t}\n\n\tfor _, prefix := range prefixes {\n\t\tmatches, err := lkr.kv.Glob(append(prefix, abbrev))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif len(matches) > 1 {\n\t\t\treturn nil, ie.ErrAmbigiousRev\n\t\t}\n\n\t\tif len(matches) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := matches[0]\n\t\treturn h.FromB58String(match[len(match)-1])\n\t}\n\n\treturn nil, fmt.Errorf(\"No such abbrev: %v\", abbrev)\n}\n\n// IterAll goes over all nodes in the commit range `from` until (including) `to`.\n// Already visited nodes will not be visited again if they did not change.\n// If `from` is nil, HEAD is assumed.\n// If `to` is nil, INIT is assumed.\nfunc (lkr *Linker) IterAll(from, to *n.Commit, fn func(n.ModNode, *n.Commit) error) error {\n\tvisited := make(map[string]struct{})\n\treturn lkr.iterAll(from, to, visited, fn)\n}\n\nfunc (lkr *Linker) iterAll(from, to *n.Commit, visited map[string]struct{}, fn func(n.ModNode, *n.Commit) error) error {\n\tif from == nil {\n\t\thead, err := lkr.Status()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfrom = head\n\t}\n\n\troot, err := lkr.DirectoryByHash(from.Root())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\twalker := func(child n.Node) error {\n\t\tif _, ok := visited[child.TreeHash().B58String()]; ok {\n\t\t\treturn n.ErrSkipChild\n\t\t}\n\n\t\tmodChild, ok := child.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tvisited[child.TreeHash().B58String()] = struct{}{}\n\t\treturn fn(modChild, from)\n\t}\n\n\tif err := n.Walk(lkr, root, false, walker); err != nil {\n\t\treturn e.Wrapf(err, \"iter-all: walk\")\n\t}\n\n\t// Check if we're already at the lowest commit:\n\tif to != nil && from.TreeHash().Equal(to.TreeHash()) {\n\t\treturn nil\n\t}\n\n\tprev, err := from.Parent(lkr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif prev == nil {\n\t\t// Definite end of line.\n\t\treturn nil\n\t}\n\n\tprevCmt, ok := prev.(*n.Commit)\n\tif !ok {\n\t\treturn ie.ErrBadNode\n\t}\n\n\treturn lkr.iterAll(prevCmt, to, visited, fn)\n}\n\n// Atomic is like AtomicWithBatch but does not require using a batch.\n// Use this for read-only operations. It's only syntactic sugar though.\nfunc (lkr *Linker) Atomic(fn func() (bool, error)) (err error) {\n\treturn lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\treturn fn()\n\t})\n}\n\n// AtomicWithBatch will execute `fn` in one transaction.\n// If anything goes wrong (i.e. `fn` returns an error)\nfunc (lkr *Linker) AtomicWithBatch(fn func(batch db.Batch) (bool, error)) (err error) {\n\tbatch := lkr.kv.Batch()\n\n\t// A panicking program should not leave the persistent linker state\n\t// inconsistent. This is really a last defence against all odds.\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tbatch.Rollback()\n\t\t\tlkr.MemIndexClear()\n\t\t\terr = fmt.Errorf(\"panic rollback: %v; stack: %s\", r, string(debug.Stack()))\n\t\t}\n\t}()\n\n\tneedRollback, err := fn(batch)\n\tif needRollback && err != nil {\n\t\thadWrites := batch.HaveWrites()\n\t\tbatch.Rollback()\n\n\t\t// Only clear the whole index if something was written.\n\t\t// Also, this prevents the slightly misleading log message below\n\t\t// in case of read-only operations.\n\t\tif hadWrites {\n\t\t\t// clearing the mem index will cause it to be read freshly from disk\n\t\t\t// with the old state. This costs a little performance but saves me\n\t\t\t// from writing special in-memory rollback logic for now.\n\t\t\tlkr.MemIndexClear()\n\t\t\tlog.Warningf(\"rolled back due to error: %v %s\", err, debug.Stack())\n\t\t}\n\n\t\treturn err\n\t}\n\n\t// Attempt to write it to disk.\n\t// If that fails we're better off deleting our internal cache.\n\t// so memory and disk is in sync.\n\tif flushErr := batch.Flush(); flushErr != nil {\n\t\tlkr.MemIndexClear()\n\t\tlog.Warningf(\"flush to db failed, resetting mem index: %v\", flushErr)\n\t}\n\n\treturn err\n}\n\n// helper to return errros that should trigger a rollback in AtomicWithBatch()\nfunc hintRollback(err error) (bool, error) {\n\tif err != nil {\n\t\treturn true, err\n\t}\n\n\treturn false, nil\n}\n\n// KV returns the key value store passed when constructing the linker.\nfunc (lkr *Linker) KV() db.Database {\n\treturn lkr.kv\n}\n"
  },
  {
    "path": "catfs/core/linker_test.go",
    "content": "package core\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\t\"unsafe\"\n\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// Basic test to see if the root node can be inserted and stored.\n// A new staging commit should be also created in the background.\n// On the second run, the root node should be already cached.\nfunc TestLinkerInsertRoot(t *testing.T) {\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr := NewLinker(kv)\n\t\troot, err := n.NewEmptyDirectory(lkr, nil, \"/\", \"u\", 2)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Creating empty root dir failed: %v\", err)\n\t\t}\n\n\t\tif err := lkr.StageNode(root); err != nil {\n\t\t\tt.Fatalf(\"Staging root failed: %v\", err)\n\t\t}\n\n\t\tsameRoot, err := lkr.ResolveDirectory(\"/\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Resolving root failed: %v\", err)\n\t\t}\n\n\t\tif sameRoot == nil {\n\t\t\tt.Fatal(\"Resolving root  failed (is nil)\")\n\t\t}\n\n\t\tif path := sameRoot.Path(); path != \"/\" {\n\t\t\tt.Fatalf(\"Path of root is not /: %s\", path)\n\t\t}\n\n\t\tptrRoot, err := lkr.ResolveDirectory(\"/\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Second lookup of root failed: %v\", err)\n\t\t}\n\n\t\tif unsafe.Pointer(ptrRoot) != unsafe.Pointer(sameRoot) {\n\t\t\tt.Fatal(\"Second root did not come from the cache\")\n\t\t}\n\n\t\tstatus, err := lkr.Status()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t\t}\n\n\t\tif !status.Root().Equal(root.TreeHash()) {\n\t\t\tt.Fatalf(\"status.root and root differ: %v <-> %v\", status.Root(), root.TreeHash())\n\t\t}\n\t})\n}\n\nfunc TestLinkerRefs(t *testing.T) {\n\tauthor := n.AuthorOfStage\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr := NewLinker(kv)\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to create root: %v\", err)\n\t\t}\n\n\t\tnewFile := n.NewEmptyFile(root, \"cat.png\", \"u\", 2)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to create empty file: %v\", err)\n\t\t}\n\n\t\tnewFile.SetSize(10)\n\t\tnewFile.SetContent(lkr, h.TestDummy(t, 1))\n\n\t\tif err := root.Add(lkr, newFile); err != nil {\n\t\t\tt.Fatalf(\"Adding empty file failed: %v\", err)\n\t\t}\n\n\t\tif err := lkr.StageNode(newFile); err != nil {\n\t\t\tt.Fatalf(\"Staging new file failed: %v\", err)\n\t\t}\n\n\t\tif _, err := lkr.Head(); !ie.IsErrNoSuchRef(err) {\n\t\t\tt.Fatalf(\"There is a HEAD from start?!\")\n\t\t}\n\n\t\tcmt, err := lkr.Status()\n\t\tif err != nil || cmt == nil {\n\t\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t\t}\n\n\t\tif err := lkr.MakeCommit(author, \"First commit\"); err != nil {\n\t\t\tt.Fatalf(\"Making commit failed: %v\", err)\n\t\t}\n\n\t\t// Assert that staging is empy (except the \"/stage/STATUS\" part)\n\t\tfoundKeys := []string{}\n\t\tkeys, err := kv.Keys(\"stage\")\n\t\trequire.Nil(t, err)\n\n\t\tfor _, key := range keys {\n\t\t\tfoundKeys = append(foundKeys, strings.Join(key, \"/\"))\n\t\t}\n\n\t\trequire.Equal(t, []string{\"stage/STATUS\"}, foundKeys)\n\n\t\thead, err := lkr.Head()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Obtaining HEAD failed: %v\", err)\n\t\t}\n\n\t\tstatus, err := lkr.Status()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to obtain the status: %v\", err)\n\t\t}\n\n\t\tif !head.Root().Equal(status.Root()) {\n\t\t\tt.Fatalf(\"HEAD and CURR are not equal after first commit.\")\n\t\t}\n\n\t\tif err := lkr.MakeCommit(author, \"No.\"); err != ie.ErrNoChange {\n\t\t\tt.Fatalf(\"Committing without change led to a new commit: %v\", err)\n\t\t}\n\t})\n}\n\nfunc TestLinkerNested(t *testing.T) {\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr := NewLinker(kv)\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Fetching initial root failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tsub, err := n.NewEmptyDirectory(lkr, root, \"sub\", \"u\", 3)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Creating empty sub dir failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tpar, err := sub.Parent(lkr)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get parent of /sub\")\n\t\t}\n\n\t\tif par.Path() != \"/\" {\n\t\t\tt.Fatalf(\"Parent path of /sub is not /\")\n\t\t}\n\n\t\tif topPar, err := par.Parent(lkr); topPar != nil || err != nil {\n\t\t\tt.Fatalf(\"Parent of / is not nil: %v (%v)\", topPar, err)\n\t\t}\n\n\t\tif err := lkr.StageNode(sub); err != nil {\n\t\t\tt.Fatalf(\"Staging /sub failed: %v\", err)\n\t\t}\n\n\t\tsameSubDir, err := lkr.ResolveDirectory(\"/sub\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Resolving /sub failed: %v\", err)\n\t\t}\n\n\t\t_, err = lkr.NodeByInode(sameSubDir.Inode())\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Resolving /sub by ID (%d) failed: %v\", sameSubDir.Inode(), err)\n\t\t}\n\n\t\tsubpub, err := n.NewEmptyDirectory(lkr, sameSubDir, \"pub\", \"u\", 4)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Creating of deep sub failed\")\n\t\t}\n\n\t\tif err := lkr.StageNode(subpub); err != nil {\n\t\t\tt.Fatalf(\"Staging /sub/pub failed: %v\", err)\n\t\t}\n\n\t\tnewRootDir, err := lkr.ResolveDirectory(\"/\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to resolve new root dir\")\n\t\t}\n\n\t\tif !newRootDir.TreeHash().Equal(root.TreeHash()) {\n\t\t\tt.Fatalf(\"New / and old / have different hashes, despite being same instance %p %p\", newRootDir, root)\n\t\t}\n\n\t\tcount := 0\n\t\tif err := n.Walk(lkr, root, true, func(c n.Node) error { count++; return nil }); err != nil {\n\t\t\tt.Fatalf(\"Failed to walk the tree: %v\", err)\n\t\t}\n\n\t\tif count != 3 {\n\t\t\tt.Fatalf(\"There are more or less than 3 elems in the tree: %d\", count)\n\t\t}\n\n\t\t// Index shall only contain the nodes with their most current hash values.\n\t\tif len(lkr.index) != 3 {\n\t\t\tt.Fatalf(\"Index does not contain the expected 3 elements.\")\n\t\t}\n\n\t\tgc := NewGarbageCollector(lkr, kv, nil)\n\t\tif err := gc.Run(true); err != nil {\n\t\t\tt.Fatalf(\"Garbage collector failed to run: %v\", err)\n\t\t}\n\n\t\tif err := lkr.MakeCommit(n.AuthorOfStage, \"first message\"); err != nil {\n\t\t\tt.Fatalf(\"Making first commit failed: %v\", err)\n\t\t}\n\t})\n}\n\n// Test if Linker can load objects after closing/re-opening the kv.\nfunc TestLinkerPersistence(t *testing.T) {\n\tdbPath, err := ioutil.TempDir(\"\", \"brig-test\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create temp dir: %v\", err)\n\t}\n\n\tdefer os.RemoveAll(dbPath)\n\n\tkv, err := db.NewDiskDatabase(dbPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Could not create dummy kv for tests: %v\", err)\n\t}\n\n\tlkr := NewLinker(kv)\n\tif err := lkr.MakeCommit(n.AuthorOfStage, \"initial commit\"); err != nil {\n\t\tt.Fatalf(\"Failed to create initial commit out of nothing: %v\", err)\n\t}\n\n\thead, err := lkr.Head()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve Head after initial commit: %v\", err)\n\t}\n\n\toldHeadHash := head.TreeHash().Clone()\n\n\tif err := kv.Close(); err != nil {\n\t\tt.Fatalf(\"Closing the dummy kv failed: %v\", err)\n\t}\n\n\tkv, err = db.NewDiskDatabase(dbPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Could not create second dummy kv: %v\", err)\n\t}\n\n\tlkr = NewLinker(kv)\n\thead, err = lkr.Head()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve head after kv reload: %v\", err)\n\t}\n\n\tif !oldHeadHash.Equal(head.TreeHash()) {\n\t\tt.Fatalf(\"HEAD hash differs before and after reload: %v <-> %v\", oldHeadHash, head.TreeHash())\n\t}\n\n\tif err := kv.Close(); err != nil {\n\t\tt.Fatalf(\"Closing the second kv failed: %v\", err)\n\t}\n}\n\nfunc TestCollideSameObjectHash(t *testing.T) {\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr := NewLinker(kv)\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to retrieve root: %v\", err)\n\t\t}\n\n\t\tsub, err := n.NewEmptyDirectory(lkr, root, \"sub\", \"u\", 3)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Creating empty sub dir failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tif err := lkr.StageNode(sub); err != nil {\n\t\t\tt.Fatalf(\"Staging /sub failed: %v\", err)\n\t\t}\n\n\t\tfile1 := n.NewEmptyFile(sub, \"a.png\", \"u\", 4)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to create empty file1: %v\", err)\n\t\t}\n\n\t\tfile2 := n.NewEmptyFile(root, \"a.png\", \"u\", 5)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to create empty file2: %v\", err)\n\t\t}\n\n\t\tfile3 := n.NewEmptyFile(root, \"b.png\", \"u\", 6)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to create empty file3: %v\", err)\n\t\t}\n\n\t\tfile1.SetContent(lkr, h.TestDummy(t, 1))\n\t\tfile2.SetContent(lkr, h.TestDummy(t, 1))\n\t\tfile3.SetContent(lkr, h.TestDummy(t, 1))\n\n\t\tif err := sub.Add(lkr, file1); err != nil {\n\t\t\tt.Fatalf(\"Failed to add file1: %v\", err)\n\t\t}\n\t\tif err := root.Add(lkr, file2); err != nil {\n\t\t\tt.Fatalf(\"Failed to add file2: %v\", err)\n\t\t}\n\t\tif err := root.Add(lkr, file3); err != nil {\n\t\t\tt.Fatalf(\"Failed to add file3: %v\", err)\n\t\t}\n\n\t\tif err := lkr.StageNode(file1); err != nil {\n\t\t\tt.Fatalf(\"Failed to stage file1: %v\", err)\n\t\t}\n\t\tif err := lkr.StageNode(file2); err != nil {\n\t\t\tt.Fatalf(\"Failed to stage file2: %v\", err)\n\t\t}\n\t\tif err := lkr.StageNode(file3); err != nil {\n\t\t\tt.Fatalf(\"Failed to stage file3: %v\", err)\n\t\t}\n\n\t\tif file1.TreeHash().Equal(file2.TreeHash()) {\n\t\t\tt.Fatalf(\"file1 and file2 hash is equal: %v\", file1.TreeHash())\n\t\t}\n\t\tif file2.TreeHash().Equal(file3.TreeHash()) {\n\t\t\tt.Fatalf(\"file2 and file3 hash is equal: %v\", file2.TreeHash())\n\t\t}\n\n\t\t// Make sure we load the actual hashes from disk:\n\t\tlkr.MemIndexClear()\n\t\tfile1Reset, err := lkr.LookupFile(\"/sub/a.png\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Re-Lookup of file1 failed: %v\", err)\n\t\t}\n\t\tfile2Reset, err := lkr.LookupFile(\"/a.png\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Re-Lookup of file2 failed: %v\", err)\n\t\t}\n\t\tfile3Reset, err := lkr.LookupFile(\"/b.png\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Re-Lookup of file3 failed: %v\", err)\n\t\t}\n\n\t\tif file1Reset.TreeHash().Equal(file2Reset.TreeHash()) {\n\t\t\tt.Fatalf(\"file1Reset and file2Reset hash is equal: %v\", file1.TreeHash())\n\t\t}\n\t\tif file2Reset.TreeHash().Equal(file3Reset.TreeHash()) {\n\t\t\tt.Fatalf(\"file2Reset and file3Reset hash is equal: %v\", file2.TreeHash())\n\t\t}\n\t})\n}\n\nfunc TestHaveStagedChanges(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\thasChanges, err := lkr.HaveStagedChanges()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"have staged changes failed before touch: %v\", err)\n\t\t}\n\t\tif hasChanges {\n\t\t\tt.Fatalf(\"HaveStagedChanges has changes before something happened\")\n\t\t}\n\n\t\tMustTouch(t, lkr, \"/x.png\", 1)\n\n\t\thasChanges, err = lkr.HaveStagedChanges()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"have staged changes failed after touch: %v\", err)\n\t\t}\n\t\tif !hasChanges {\n\t\t\tt.Fatalf(\"HaveStagedChanges has no changes after something happened\")\n\t\t}\n\n\t\tMustCommit(t, lkr, \"second\")\n\n\t\thasChanges, err = lkr.HaveStagedChanges()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"have staged changes failed after commit: %v\", err)\n\t\t}\n\t\tif hasChanges {\n\t\t\tt.Fatalf(\"HaveStagedChanges has changes after commit\")\n\t\t}\n\t})\n}\n\nfunc TestFilesByContent(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tfile := MustTouch(t, lkr, \"/x.png\", 1)\n\n\t\tcontents := []h.Hash{file.BackendHash()}\n\t\tresult, err := lkr.FilesByContents(contents)\n\n\t\trequire.Nil(t, err)\n\n\t\tresultFile, ok := result[file.BackendHash().B58String()]\n\t\trequire.True(t, ok)\n\t\trequire.Len(t, result, 1)\n\t\trequire.Equal(t, file, resultFile)\n\t})\n}\n\nfunc TestResolveRef(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tinitCmt, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\n\t\tcmts := []*n.Commit{initCmt}\n\t\tfor idx := 0; idx < 10; idx++ {\n\t\t\t_, cmt := MustTouchAndCommit(t, lkr, \"/x\", byte(idx))\n\t\t\tcmts = append([]*n.Commit{cmt}, cmts...)\n\t\t}\n\n\t\t// Insert the init cmt a few times as fodder:\n\t\tcmts = append(cmts, initCmt)\n\t\tcmts = append(cmts, initCmt)\n\t\tcmts = append(cmts, initCmt)\n\n\t\tfor nUp := 0; nUp < len(cmts)+3; nUp++ {\n\t\t\trefname := \"head\"\n\t\t\tfor idx := 0; idx < nUp; idx++ {\n\t\t\t\trefname += \"^\"\n\t\t\t}\n\n\t\t\texpect := initCmt\n\t\t\tif nUp < len(cmts) {\n\t\t\t\texpect = cmts[nUp]\n\t\t\t}\n\n\t\t\tref, err := lkr.ResolveRef(refname)\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, expect, ref)\n\t\t}\n\n\t\t_, err = lkr.ResolveRef(\"he^^ad\")\n\t\trequire.Equal(t, err, ie.ErrNoSuchRef(\"he^^ad\"))\n\t})\n}\n\ntype iterResult struct {\n\tpath, commit string\n}\n\nfunc TestIterAll(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tinit, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\t\tc0 := init.TreeHash().B58String()\n\n\t\tx := MustTouch(t, lkr, \"/x\", 1)\n\t\tMustTouch(t, lkr, \"/y\", 1)\n\t\tfirst := MustCommit(t, lkr, \"first\")\n\t\tc1 := first.TreeHash().B58String()\n\t\tMustModify(t, lkr, x, 2)\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\t\tc2 := status.TreeHash().B58String()\n\n\t\tresults := []iterResult{}\n\t\trequire.Nil(t, lkr.IterAll(nil, nil, func(nd n.ModNode, cmt *n.Commit) error {\n\t\t\tresults = append(results, iterResult{nd.Path(), cmt.TreeHash().B58String()})\n\t\t\treturn nil\n\t\t}))\n\n\t\tsort.Slice(results, func(i, j int) bool {\n\t\t\t// Do not change orderings between commits:\n\t\t\tif results[i].commit != results[j].commit {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn results[i].path < results[j].path\n\t\t})\n\n\t\texpected := []iterResult{\n\t\t\t{\"/\", c2},\n\t\t\t{\"/x\", c2},\n\t\t\t{\"/y\", c2},\n\t\t\t{\"/\", c1},\n\t\t\t{\"/x\", c1},\n\t\t\t{\"/\", c0},\n\t\t}\n\n\t\tfor idx, result := range results {\n\t\t\trequire.Equal(t, result.path, expected[idx].path)\n\t\t\trequire.Equal(t, result.commit, expected[idx].commit)\n\t\t}\n\t})\n}\n\nfunc TestAtomic(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\terr := lkr.Atomic(func() (bool, error) {\n\t\t\tMustTouch(t, lkr, \"/x\", 1)\n\t\t\treturn false, nil\n\t\t})\n\n\t\trequire.Nil(t, err)\n\n\t\terr = lkr.Atomic(func() (bool, error) {\n\t\t\tMustTouch(t, lkr, \"/y\", 1)\n\t\t\treturn true, errors.New(\"artificial error\")\n\t\t})\n\n\t\trequire.NotNil(t, err)\n\n\t\terr = lkr.Atomic(func() (bool, error) {\n\t\t\tMustTouch(t, lkr, \"/z\", 1)\n\t\t\tpanic(\"woah\")\n\t\t})\n\n\t\trequire.NotNil(t, err)\n\n\t\tx, err := lkr.LookupFile(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, x.Path(), \"/x\")\n\n\t\t_, err = lkr.LookupFile(\"/y\")\n\t\trequire.NotNil(t, err)\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\t_, err = lkr.LookupFile(\"/z\")\n\t\trequire.NotNil(t, err)\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\t})\n\n}\n\nfunc TestCommitByIndex(t *testing.T) {\n\t// Note: WithReloadingLinker creates an init commit.\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\thead, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, head.Index(), int64(0))\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, int64(1), status.Index())\n\n\t\t// Must modify something to commit:\n\t\tMustTouch(t, lkr, \"/x\", 1)\n\n\t\trequire.Nil(t, lkr.MakeCommit(\"me\", \"is mario\"))\n\t\tnewHead, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, int64(1), newHead.Index())\n\n\t\tstatus, err = lkr.Status()\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, int64(2), status.Index())\n\n\t\t// Lookup the just created commits:\n\n\t\t// Pre-existing init commit:\n\t\tc1, err := lkr.CommitByIndex(0)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"init\", c1.Message())\n\n\t\t// Our commit:\n\t\tc2, err := lkr.CommitByIndex(1)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"is mario\", c2.Message())\n\n\t\t// Same as the status commit:\n\t\tc3, err := lkr.CommitByIndex(2)\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, c3)\n\t\trequire.Equal(t, status.TreeHash(), c3.TreeHash())\n\n\t\t// Not existing:\n\t\tc4, err := lkr.CommitByIndex(3)\n\t\trequire.True(t, ie.IsErrNoSuchCommitIndex(err))\n\t\trequire.Nil(t, c4)\n\t})\n}\n\nfunc TestLookupNodeAt(t *testing.T) {\n\tWithDummyLinker(t, func(lkr *Linker) {\n\t\tfmt.Println(\"start\")\n\t\tfor idx := byte(0); idx < 10; idx++ {\n\t\t\tMustTouchAndCommit(t, lkr, \"/x\", idx)\n\t\t}\n\t\tfmt.Println(\"done\")\n\n\t\tfor idx := 0; idx < 10; idx++ {\n\t\t\t// commit index of 0 is init, so + 1\n\t\t\tcmt, err := lkr.CommitByIndex(int64(idx + 1))\n\t\t\trequire.Nil(t, err)\n\n\t\t\tnd, err := lkr.LookupNodeAt(cmt, \"/x\")\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, nd.ContentHash(), h.TestDummy(t, byte(idx)))\n\t\t}\n\n\t\t// Init should not exist:\n\t\tinit, err := lkr.CommitByIndex(0)\n\t\trequire.Nil(t, err)\n\n\t\tnd, err := lkr.LookupNodeAt(init, \"/x\")\n\t\trequire.Nil(t, nd)\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\t// Stage should have the last change:\n\t\tstage, err := lkr.CommitByIndex(11)\n\t\trequire.Nil(t, err)\n\n\t\tstageNd, err := lkr.LookupNodeAt(stage, \"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, stageNd.ContentHash(), h.TestDummy(t, 9))\n\n\t\t// quick check to see if the next commit is really empty\n\t\t// (tests only the test setup)\n\t\tlast, err := lkr.CommitByIndex(12)\n\t\trequire.True(t, ie.IsErrNoSuchCommitIndex(err))\n\t\trequire.Nil(t, last)\n\t})\n}\n"
  },
  {
    "path": "catfs/core/testing.go",
    "content": "package core\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// WithDummyKv creates a testing key value store and passes it to `fn`.\nfunc WithDummyKv(t *testing.T, fn func(kv db.Database)) {\n\tdbPath, err := ioutil.TempDir(\"\", \"brig-test\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create temp dir: %v\", err)\n\t}\n\n\tdefer os.RemoveAll(dbPath)\n\n\tkv, err := db.NewDiskDatabase(dbPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Could not create dummy kv for tests: %v\", err)\n\t}\n\n\tfn(kv)\n\n\tif err := kv.Close(); err != nil {\n\t\tt.Fatalf(\"Closing the dummy kv failed: %v\", err)\n\t}\n}\n\n// WithDummyLinker creates a testing linker and passes it to `fn`.\nfunc WithDummyLinker(t *testing.T, fn func(lkr *Linker)) {\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr := NewLinker(kv)\n\t\trequire.Nil(t, lkr.SetOwner(\"alice\"))\n\t\tMustCommit(t, lkr, \"init\")\n\n\t\tfn(lkr)\n\t})\n}\n\n// WithReloadingLinker creates a testing linker and passes it to `fn1`.\n// It then closes the linker and lets it load a second time and passes it to `fn2`.\n// This is useful to test persistency issues.\nfunc WithReloadingLinker(t *testing.T, fn1 func(lkr *Linker), fn2 func(lkr *Linker)) {\n\tWithDummyKv(t, func(kv db.Database) {\n\t\tlkr1 := NewLinker(kv)\n\t\trequire.Nil(t, lkr1.SetOwner(\"alice\"))\n\t\tMustCommit(t, lkr1, \"init\")\n\n\t\tfn1(lkr1)\n\n\t\tlkr2 := NewLinker(kv)\n\t\tfn2(lkr2)\n\t})\n}\n\n// WithLinkerPair creates two linkers, useful for testing syncing.\nfunc WithLinkerPair(t *testing.T, fn func(lkrSrc, lkrDst *Linker)) {\n\tWithDummyLinker(t, func(lkrSrc *Linker) {\n\t\tWithDummyLinker(t, func(lkrDst *Linker) {\n\t\t\trequire.Nil(t, lkrSrc.SetOwner(\"src\"))\n\t\t\trequire.Nil(t, lkrDst.SetOwner(\"dst\"))\n\t\t\tfn(lkrSrc, lkrDst)\n\t\t})\n\t})\n}\n\n// AssertDir asserts the existence of a directory.\nfunc AssertDir(t *testing.T, lkr *Linker, path string, shouldExist bool) {\n\tdir, err := lkr.LookupDirectory(path)\n\tif shouldExist {\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"exist-check: Directory lookup failed for %s: %v\", path, err)\n\t\t}\n\n\t\tif dir == nil || dir.Path() != path {\n\t\t\tt.Fatalf(\"exist-check: directory does not exist:  %s -> %v\", path, dir)\n\t\t}\n\t} else {\n\t\tif dir != nil {\n\t\t\tt.Fatalf(\"exist-check: Dir exists, but should not: %v\", path)\n\t\t}\n\t}\n}\n\n// MustMkdir creates a directory or fails on `t`.\nfunc MustMkdir(t *testing.T, lkr *Linker, repoPath string) *n.Directory {\n\tdir, err := Mkdir(lkr, repoPath, true)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create directories %s: %v\", repoPath, err)\n\t}\n\n\treturn dir\n}\n\n// MustTouch creates a new node at `touchPath` and sets its content hash\n// to a hash derived from `seed`.\nfunc MustTouch(t *testing.T, lkr *Linker, touchPath string, seed byte) *n.File {\n\tdirname := path.Dir(touchPath)\n\tparent, err := lkr.LookupDirectory(dirname)\n\tif err != nil {\n\t\tt.Fatalf(\"touch: Failed to lookup: %s\", dirname)\n\t}\n\n\tbasePath := path.Base(touchPath)\n\tfile := n.NewEmptyFile(parent, basePath, lkr.owner, lkr.NextInode())\n\n\tfile.SetBackend(lkr, h.TestDummy(t, seed))\n\tfile.SetContent(lkr, h.TestDummy(t, seed))\n\tfile.SetKey(make([]byte, 32))\n\n\tchild, err := parent.Child(lkr, basePath)\n\tif err != nil {\n\t\tt.Fatalf(\"touch: Failed to lookup child: %v %v\", touchPath, err)\n\t}\n\n\tif child != nil {\n\t\tif err := parent.RemoveChild(lkr, child); err != nil {\n\t\t\tt.Fatalf(\"touch: failed to remove previous node: %v\", err)\n\t\t}\n\t}\n\n\tif err := parent.Add(lkr, file); err != nil {\n\t\tt.Fatalf(\"touch: Adding %s to root failed: %v\", touchPath, err)\n\t}\n\n\tif err := lkr.StageNode(file); err != nil {\n\t\tt.Fatalf(\"touch: Staging %s failed: %v\", touchPath, err)\n\t}\n\n\treturn file\n}\n\n// MustMove moves the node `nd` to `destPath` or fails `t`.\nfunc MustMove(t *testing.T, lkr *Linker, nd n.ModNode, destPath string) n.ModNode {\n\tif err := Move(lkr, nd, destPath); err != nil {\n\t\tt.Fatalf(\"move of %s to %s failed: %v\", nd.Path(), destPath, err)\n\t}\n\n\tnewNd, err := lkr.LookupModNode(destPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to lookup dest path `%s` of new node: %v\", destPath, err)\n\t}\n\n\treturn newNd\n}\n\n// MustRemove removes the node `nd` or fails.\nfunc MustRemove(t *testing.T, lkr *Linker, nd n.ModNode) n.ModNode {\n\tif _, _, err := Remove(lkr, nd, true, false); err != nil {\n\t\tt.Fatalf(\"Failed to remove %s: %v\", nd.Path(), err)\n\t}\n\n\tnewNd, err := lkr.LookupModNode(nd.Path())\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to lookup dest path `%s` of deleted node: %v\", nd.Path(), err)\n\t}\n\n\treturn newNd\n}\n\n// MustCommit commits the current state with `msg`.\nfunc MustCommit(t *testing.T, lkr *Linker, msg string) *n.Commit {\n\tif err := lkr.MakeCommit(n.AuthorOfStage, msg); err != nil {\n\t\tt.Fatalf(\"Failed to make commit with msg %s: %v\", msg, err)\n\t}\n\n\thead, err := lkr.Head()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve head after commit: %v\", err)\n\t}\n\n\treturn head\n}\n\n// MustCommitIfPossible with is like MustCommit, but allows empty changesets.\nfunc MustCommitIfPossible(t *testing.T, lkr *Linker, msg string) *n.Commit {\n\thaveChanges, err := lkr.HaveStagedChanges()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to check for changes: %v\", err)\n\t}\n\n\tif haveChanges {\n\t\treturn MustCommit(t, lkr, msg)\n\t}\n\n\treturn nil\n}\n\n// MustTouchAndCommit is a combined MustTouch and MustCommit.\nfunc MustTouchAndCommit(t *testing.T, lkr *Linker, path string, seed byte) (*n.File, *n.Commit) {\n\tfile, err := Stage(\n\t\tlkr,\n\t\tpath,\n\t\th.TestDummy(t, seed),\n\t\th.TestDummy(t, seed),\n\t\tuint64(seed),\n\t\t-1,\n\t\tnil,\n\t\ttime.Now(),\n\t\tfalse,\n\t)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to stage %s at %d: %v\", path, seed, err)\n\t}\n\n\treturn file, MustCommit(t, lkr, fmt.Sprintf(\"cmt %d\", seed))\n}\n\n// MustModify changes the content of an existing node.\nfunc MustModify(t *testing.T, lkr *Linker, file *n.File, seed int) {\n\tparent, err := lkr.LookupDirectory(path.Dir(file.Path()))\n\t// root, err := lkr.Root()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get root: %v\", err)\n\t}\n\n\tif err := parent.RemoveChild(lkr, file); err != nil && !ie.IsNoSuchFileError(err) {\n\t\tt.Fatalf(\"Unable to remove %s from /: %v\", file.Path(), err)\n\t}\n\n\tfile.SetSize(uint64(seed))\n\tfile.SetBackend(lkr, h.TestDummy(t, byte(seed)))\n\tfile.SetContent(lkr, h.TestDummy(t, byte(seed)))\n\n\tif err := parent.Add(lkr, file); err != nil {\n\t\tt.Fatalf(\"Unable to add %s to /: %v\", file.Path(), err)\n\t}\n\n\tif err := lkr.StageNode(file); err != nil {\n\t\tt.Fatalf(\"Failed to stage %s for second: %v\", file.Path(), err)\n\t}\n}\n\n// MustLookupDirectory loads an existing dir or fails.\nfunc MustLookupDirectory(t *testing.T, lkr *Linker, path string) *n.Directory {\n\tdir, err := lkr.LookupDirectory(path)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to lookup directory %v: %v\", path, err)\n\t}\n\n\treturn dir\n}\n"
  },
  {
    "path": "catfs/db/database.go",
    "content": "package db\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\nvar (\n\t// ErrNoSuchKey is returned when Get() was passed a non-existent key\n\tErrNoSuchKey = errors.New(\"This key does not exist\")\n)\n\n// Batch is an API object used to model a transaction.\ntype Batch interface {\n\t// Put sets `val` at `key`.\n\tPut(val []byte, key ...string)\n\n\t// Clear all contents below and including `key`.\n\tClear(key ...string) error\n\n\t// Erase a key from the database.\n\tErase(key ...string)\n\n\t// Flush the batch to the database.\n\t// Only now, all changes will be written to disk.\n\tFlush() error\n\n\t// Rollback will forget all changes without executing them.\n\tRollback()\n\n\t// HaveWrites returns true when the batch contains something\n\t// we can write to the disk on Flush().\n\tHaveWrites() bool\n}\n\n// Database is a key/value store that offers different buckets\n// for storage. Keys are strings, values are arbitrary untyped data.\ntype Database interface {\n\t// Get retrievies the key `key` out of bucket.\n\t// If no such key exists, it will return (nil, ErrNoSuchKey)\n\t// If a badge is currently open, Get() shall still return the\n\t// most current value currently set by the last Put() call\n\t// to `key`.\n\tGet(key ...string) ([]byte, error)\n\n\t// Keys iterates over all keys in the database If the error is returned by\n\t// `fn` the iteration stops and the error value is returned.\n\t// The keys are returned in lexical ordering.\n\tKeys(prefix ...string) ([][]string, error)\n\n\t// Batch returns a new Batch object, that will allow modifications\n\t// of the state. Batch() can be called recursive: The changes will\n\t// only be flushed to disk if batch.Flush() was called equal times\n\t// to the number Batch() was called.\n\tBatch() Batch\n\n\t// Export backups all database content to `w` in\n\t// an implemenation specific format that can be read by Import.\n\tExport(w io.Writer) error\n\n\t// Import reads a previously exported db dump by Export from `r`.\n\t// Existing keys might be overwritten if the dump also contains them.\n\tImport(r io.Reader) error\n\n\t// Close closes the database. Since I/O may happen, an error is returned.\n\tClose() error\n\n\t// Glob finds all existing keys in the store, starting with prefix.\n\tGlob(prefix []string) ([][]string, error)\n}\n\n// CopyKey is a helper method to copy a bunch of keys in `src` to `dst`.\nfunc CopyKey(db Database, src, dst []string) error {\n\tdata, err := db.Get(src...)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbatch := db.Batch()\n\tbatch.Put(data, dst...)\n\treturn batch.Flush()\n}\n"
  },
  {
    "path": "catfs/db/database_badger.go",
    "content": "package db\n\nimport (\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tbadger \"github.com/dgraph-io/badger/v3\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// BadgerDatabase is a database implementation based on BadgerDB\ntype BadgerDatabase struct {\n\tmu         sync.Mutex\n\tisStopped  int64\n\tdb         *badger.DB\n\ttxn        *badger.Txn\n\trefCount   int\n\thaveWrites bool\n\twriteTimes []time.Time\n\tgcTicker   *time.Ticker\n}\n\n// NewBadgerDatabase creates a new badger database.\nfunc NewBadgerDatabase(path string) (*BadgerDatabase, error) {\n\topts := badger.DefaultOptions(path).\n\t\tWithValueLogFileSize(10 * 1024 * 1024). //default is 2GB we should not need 2GB\n\t\tWithMemTableSize(10 * 1024 * 1024).     //default is 64MB\n\t\tWithNumVersionsToKeep(1).               // it is default but it's better to force it\n\t\tWithCompactL0OnClose(true).\n\t\tWithSyncWrites(false).\n\t\tWithLogger(nil)\n\n\tdb, err := badger.Open(opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgcTicker := time.NewTicker(5 * time.Minute)\n\n\tbdb := &BadgerDatabase{\n\t\tdb:       db,\n\t\tgcTicker: gcTicker,\n\t}\n\n\tgo func() {\n\t\tfor range gcTicker.C {\n\t\t\tif atomic.LoadInt64(&bdb.isStopped) > 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\terr := bdb.runGC()\n\t\t\tif err != nil {\n\t\t\t\tlog.WithError(err).Error(\"badger GC failed\")\n\t\t\t}\n\t\t}\n\t}()\n\n\treturn bdb, nil\n}\n\nfunc (bdb *BadgerDatabase) runGC() error {\n\topts := bdb.db.Opts()\n\tbdb.mu.Lock()\n\tdefer bdb.mu.Unlock()\n\tlog.Debugf(\"Performing GC for badger DB in %s\", opts.Dir)\n\ttStart := time.Now()\n\tdefer func() {\n\t\tlog.Debugf(\"GC collection on %s took %v\", opts.Dir, time.Now().Sub(tStart))\n\t}()\n\t// we will go through array of write times to see if it is time to run GC\n\tvar gcStatsUpdateDelay = 5 * time.Minute\n\tvar deadlineMet = false\n\tn := 0\n\tfor _, t := range bdb.writeTimes {\n\t\tif time.Now().Before(t.Add(gcStatsUpdateDelay)) {\n\t\t\tbdb.writeTimes[n] = t\n\t\t\tn++\n\t\t} else {\n\t\t\tdeadlineMet = true\n\t\t}\n\t}\n\tbdb.writeTimes = bdb.writeTimes[:n]\n\tif !deadlineMet {\n\t\tlog.Debugf(\"DB in %s has no new stats for GC\", opts.Dir)\n\t\treturn nil\n\t}\n\t// In large DB, GC will happen automatically, because compaction will find garbage\n\t// but we are to small and compactors do not run (150 MB is small).\n\t// So we need to run Flatten\n\tbdb.db.Flatten(5)\n\t// Very likely Flatten will not do much because the hard coded priority is too small.\n\t// At this point, we hope that there is something for GC\n\tvar errGC error\n\tvar success = false\n\tfor errGC == nil {\n\t\t// cleans DB online and it is safe to rerun on success\n\t\terrGC = bdb.db.RunValueLogGC(0.5)\n\t\tif errGC == nil && !success {\n\t\t\tsuccess = true\n\t\t}\n\t}\n\tif success {\n\t\tlog.Debugf(\"Cleaned some garbage for DB in %s\", opts.Dir)\n\t\treturn nil\n\t}\n\t// Now we have a dilemma: we could trust badger GC mechanism and stop here.\n\t// But unfortunately for our typical size (even as high as 150 MB)\n\t// compaction, even with Flatten(), does not kick in.\n\t// The only way to truly force compaction (to update stats for GC) is to close DB\n\t// see Note in https://github.com/dgraph-io/badger/issues/767#issuecomment-485713746\n\t// After Close() the GC on a next run will have updated statistic\n\t// Actually even Close() does not guaranteed success, it requires more than a minute\n\t// to update stats after DB was modified. But eventually GC stats will be ready.\n\tif bdb.txn != nil {\n\t\t// someone still using DB, we will try to Close/Open next time\n\t\treturn nil\n\t}\n\tvar err error\n\tfor retries := 0; retries < 10; retries++ {\n\t\terr = bdb.db.Close()\n\t\tif err == nil {\n\t\t\tcontinue\n\t\t}\n\t\tlog.Errorf(\"Could not close DB in %s\", opts.Dir)\n\t\ttime.Sleep(1 * time.Second)\n\t}\n\tif err != nil {\n\t\tlog.Fatalf(\"Could not close DB in %s\", opts.Dir)\n\t\treturn err\n\t}\n\tfor retries := 0; retries < 10; retries++ {\n\t\tbdb.db, err = badger.Open(opts)\n\t\tif err == nil {\n\t\t\treturn nil\n\t\t}\n\t\tlog.Errorf(\"Could not reopen DB in %s\", opts.Dir)\n\t\ttime.Sleep(1 * time.Second)\n\t}\n\tlog.Fatalf(\"Could not reopen DB in %s\", opts.Dir)\n\treturn err\n}\n\nfunc (db *BadgerDatabase) view(fn func(txn *badger.Txn) error) error {\n\t// If we have an open transaction, retrieve the values from there.\n\t// Otherwise we would not be able to retrieve in-memory values.\n\tif db.txn != nil {\n\t\treturn fn(db.txn)\n\t}\n\n\t// If no transaction is running (no Batch()-call), use a fresh view txn.\n\treturn db.db.View(fn)\n}\n\n// Get is the badger implementation of Database.Get.\nfunc (db *BadgerDatabase) Get(key ...string) ([]byte, error) {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdata := []byte{}\n\terr := db.view(func(txn *badger.Txn) error {\n\t\tif db.txn != nil {\n\t\t\ttxn = db.txn\n\t\t}\n\n\t\tkeyPath := strings.Join(key, \".\")\n\t\titem, err := txn.Get([]byte(keyPath))\n\t\tif err == badger.ErrKeyNotFound {\n\t\t\treturn ErrNoSuchKey\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdata, err = item.ValueCopy(nil)\n\t\treturn err\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn data, nil\n}\n\n// Keys is the badger implementation of Database.Keys.\nfunc (db *BadgerDatabase) Keys(prefix ...string) ([][]string, error) {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tkeys := [][]string{}\n\treturn keys, db.view(func(txn *badger.Txn) error {\n\t\titer := txn.NewIterator(badger.IteratorOptions{})\n\t\tdefer iter.Close()\n\n\t\tfor iter.Rewind(); iter.Valid(); iter.Next() {\n\t\t\titem := iter.Item()\n\n\t\t\tfullKey := string(item.Key())\n\t\t\tsplitKey := strings.Split(fullKey, \".\")\n\n\t\t\thasPrefix := len(prefix) <= len(splitKey)\n\t\t\tfor i := 0; hasPrefix && i < len(prefix) && i < len(splitKey); i++ {\n\t\t\t\tif prefix[i] != splitKey[i] {\n\t\t\t\t\thasPrefix = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif hasPrefix {\n\t\t\t\tkeys = append(keys, strings.Split(fullKey, \".\"))\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n}\n\n// Export is the badger implementation of Database.Export.\nfunc (db *BadgerDatabase) Export(w io.Writer) error {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\t_, err := db.db.Backup(w, 0)\n\treturn err\n}\n\n// Import is the badger implementation of Database.Import.\nfunc (db *BadgerDatabase) Import(r io.Reader) error {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\treturn db.db.Load(r, 1)\n}\n\n// Glob is the badger implementation of Database.Glob\nfunc (db *BadgerDatabase) Glob(prefix []string) ([][]string, error) {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tfullPrefix := strings.Join(prefix, \".\")\n\n\tresults := [][]string{}\n\terr := db.view(func(txn *badger.Txn) error {\n\t\titer := txn.NewIterator(badger.IteratorOptions{})\n\t\tdefer iter.Close()\n\n\t\tfor iter.Seek([]byte(fullPrefix)); iter.Valid(); iter.Next() {\n\t\t\tfullKey := string(iter.Item().Key())\n\t\t\tif !strings.HasPrefix(fullKey, fullPrefix) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Don't do recursive globbing:\n\t\t\tleftOver := fullKey[len(fullPrefix):]\n\t\t\tif !strings.Contains(leftOver, \".\") {\n\t\t\t\tresults = append(results, strings.Split(fullKey, \".\"))\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n\n\treturn results, err\n}\n\n// Batch is the badger implementation of Database.Batch\nfunc (db *BadgerDatabase) Batch() Batch {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\treturn db.batch()\n}\n\nfunc (db *BadgerDatabase) batch() Batch {\n\tif db.txn == nil {\n\t\tdb.txn = db.db.NewTransaction(true)\n\t}\n\n\tdb.refCount++\n\treturn db\n}\n\n// Put is the badger implementation of Database.Put\nfunc (db *BadgerDatabase) Put(val []byte, key ...string) {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.haveWrites = true\n\n\tfullKey := []byte(strings.Join(key, \".\"))\n\n\terr := db.withRetry(func() error {\n\t\treturn db.txn.Set(fullKey, val)\n\t})\n\n\tif err != nil {\n\t\tlog.Warningf(\"badger: failed to set key %s: %v\", fullKey, err)\n\t}\n}\n\nfunc (db *BadgerDatabase) withRetry(fn func() error) error {\n\tif err := fn(); err != badger.ErrTxnTooBig {\n\t\t// This also returns nil.\n\t\treturn err\n\t}\n\n\t// Commit previous (almost too big) transaction:\n\tif err := db.txn.Commit(); err != nil {\n\t\t// Something seems pretty wrong.\n\t\treturn err\n\t}\n\n\tdb.txn = db.db.NewTransaction(true)\n\n\t// If this fails again, we're out of luck.\n\treturn fn()\n}\n\n// Clear is the badger implementation of Database.Clear\nfunc (db *BadgerDatabase) Clear(key ...string) error {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.haveWrites = true\n\n\titer := db.txn.NewIterator(badger.IteratorOptions{})\n\tprefix := strings.Join(key, \".\")\n\n\tkeys := [][]byte{}\n\tfor iter.Rewind(); iter.Valid(); iter.Next() {\n\t\titem := iter.Item()\n\n\t\tkey := make([]byte, len(item.Key()))\n\t\tcopy(key, item.Key())\n\t\tkeys = append(keys, key)\n\t}\n\n\t// This has to happen here, since withRetry might call\n\t// txn.Discard() which will complain about open iterators.\n\t// (I previously used a defer which executed too late)\n\titer.Close()\n\n\tfor _, key := range keys {\n\t\tif !strings.HasPrefix(string(key), prefix) {\n\t\t\tcontinue\n\t\t}\n\n\t\terr := db.withRetry(func() error {\n\t\t\treturn db.txn.Delete(key)\n\t\t})\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Erase is the badger implementation of Database.Erase\nfunc (db *BadgerDatabase) Erase(key ...string) {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.haveWrites = true\n\n\tfullKey := []byte(strings.Join(key, \".\"))\n\terr := db.withRetry(func() error {\n\t\treturn db.txn.Delete(fullKey)\n\t})\n\n\tif err != nil {\n\t\tlog.Warningf(\"badger: failed to del key %s: %v\", fullKey, err)\n\t}\n}\n\n// Flush is the badger implementation of Database.Flush\nfunc (db *BadgerDatabase) Flush() error {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.refCount--\n\tif db.refCount > 0 {\n\t\treturn nil\n\t}\n\n\tif db.refCount < 0 {\n\t\tlog.Errorf(\"negative batch ref count: %d\", db.refCount)\n\t\treturn nil\n\t}\n\n\tdefer db.txn.Discard()\n\tif err := db.txn.Commit(); err != nil {\n\t\treturn err\n\t}\n\n\tdb.txn = nil\n\tif db.haveWrites {\n\t\tdb.writeTimes = append(db.writeTimes, time.Now())\n\t}\n\tdb.haveWrites = false\n\treturn nil\n}\n\n// Rollback is the badger implementation of Database.Rollback\nfunc (db *BadgerDatabase) Rollback() {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.refCount--\n\tif db.refCount > 0 {\n\t\treturn\n\t}\n\n\tif db.refCount < 0 {\n\t\tlog.Errorf(\"negative batch ref count: %d\", db.refCount)\n\t\treturn\n\t}\n\n\tdb.txn.Discard()\n\tdb.txn = nil\n\tdb.haveWrites = false\n\tdb.refCount = 0\n}\n\n// HaveWrites is the badger implementation of Database.HaveWrites\nfunc (db *BadgerDatabase) HaveWrites() bool {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\treturn db.haveWrites\n}\n\n// Close is the badger implementation of Database.Close\nfunc (db *BadgerDatabase) Close() error {\n\tdb.mu.Lock()\n\tdefer db.mu.Unlock()\n\n\tdb.gcTicker.Stop()\n\tatomic.StoreInt64(&db.isStopped, 1)\n\n\t// With an open transaction it would deadlock:\n\tif db.txn != nil {\n\t\tdb.txn.Discard()\n\t\tdb.txn = nil\n\t\tdb.haveWrites = false\n\t}\n\n\tif db.db != nil {\n\t\toldDb := db.db\n\t\tdb.db = nil\n\t\tif err := oldDb.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/db/database_disk.go",
    "content": "package db\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/util\"\n)\n\nconst (\n\tdebug = false\n)\n\n// DiskDatabase is a database that simply uses the filesystem as storage.\n// Each bucket is one directory. Leaf keys are simple files.\n// The exported form of the database is simply a gzipped .tar of the directory.\n//\n// Note that this database backends was written for easy debugging.\n// It is currently by no means optimized for fast reads and writes and\n// could be probably made a lot faster if we ever need that.\ntype DiskDatabase struct {\n\tbasePath string\n\tcache    map[string][]byte\n\tops      []func() error\n\trefs     int64\n\tdeletes  map[string]struct{}\n}\n\n// NewDiskDatabase creates a new database at `basePath`.\nfunc NewDiskDatabase(basePath string) (*DiskDatabase, error) {\n\treturn &DiskDatabase{\n\t\tbasePath: basePath,\n\t\tcache:    make(map[string][]byte),\n\t\tdeletes:  make(map[string]struct{}),\n\t}, nil\n}\n\nfunc fixDirectoryKeys(key []string) string {\n\tif len(key) == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Filter potential \"..\" elements that could be used\n\t// to break out of the database store and read whatever files\n\t// outside of it due to bad intentions.\n\tkeyCopy := key[:0]\n\tfor _, val := range key {\n\t\tif val != \"..\" {\n\t\t\tkeyCopy = append(keyCopy, val)\n\t\t} else {\n\t\t\tkeyCopy = append(keyCopy, \"DOTDOT\")\n\t\t}\n\t}\n\n\tkey = keyCopy\n\n\tswitch lastPart := key[len(key)-1]; {\n\tcase lastPart == \"DOT\":\n\t\treturn filepath.Join(key[:len(key)-1]...) + \"/__NO_DOT__\"\n\tcase lastPart == \".\":\n\t\treturn filepath.Join(key[:len(key)-1]...) + \"/DOT\"\n\tcase strings.HasSuffix(lastPart, \"/.\"):\n\t\treturn filepath.Join(key[:len(key)-1]...) + strings.TrimRight(lastPart, \".\") + \"/DOT\"\n\tdefault:\n\t\treturn filepath.Join(key...)\n\t}\n}\n\nfunc reverseDirectoryKeys(key string) []string {\n\tparts := strings.Split(key, string(filepath.Separator))\n\tif len(parts) > 0 && parts[0] == \"\" {\n\t\tparts = parts[1:]\n\t}\n\n\tswitch parts[len(parts)-1] {\n\tcase \"DOT\":\n\t\tparts[len(parts)-1] = \".\"\n\tcase \"__NO_DOT__\":\n\t\tparts[len(parts)-1] = \"DOT\"\n\t}\n\n\treturn parts\n}\n\n// Flush is the disk implementation of Database.Flush\nfunc (db *DiskDatabase) Flush() error {\n\tdb.refs--\n\tif db.refs < 0 {\n\t\tdb.refs = 0\n\t}\n\n\tif db.refs > 0 {\n\t\treturn nil\n\t}\n\n\tif debug {\n\t\tfmt.Println(\"FLUSH\")\n\t}\n\n\t// Clear the cache first, if any of the next step fail,\n\t// we have at least the current state.\n\tdb.cache = make(map[string][]byte)\n\tdb.deletes = make(map[string]struct{})\n\n\t// Make sure that db.ops is nil, even if Flush failed.\n\tops := db.ops\n\tdb.ops = nil\n\n\t// Currently no revertible operations are implemented. If something goes\n\t// wrong on the filesystem, chances are high that we're not able to revert\n\t// previous ops anyways.\n\tfor _, op := range ops {\n\t\tif err := op(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Rollback is the disk implementation of Database.Rollback\nfunc (db *DiskDatabase) Rollback() {\n\tif debug {\n\t\tfmt.Println(\"ROLLBACK\")\n\t}\n\n\tdb.refs = 0\n\tdb.ops = nil\n\tdb.cache = make(map[string][]byte)\n\tdb.deletes = make(map[string]struct{})\n}\n\n// Get a single value from `bucket` by `key`.\nfunc (db *DiskDatabase) Get(key ...string) ([]byte, error) {\n\tif debug {\n\t\tfmt.Println(\"GET\", key)\n\t}\n\n\tfullKey := path.Join(key...)\n\n\t// if it's a key that was already deleted in a transaction,\n\t// we should acknowledge it as deleted.\n\tif _, ok := db.deletes[fullKey]; ok {\n\t\treturn nil, ErrNoSuchKey\n\t}\n\n\tdata, ok := db.cache[fullKey]\n\tif ok {\n\t\treturn data, nil\n\t}\n\n\t// We have to go to the disk to find the right key:\n\tfilePath := filepath.Join(db.basePath, fixDirectoryKeys(key))\n\tdata, err := ioutil.ReadFile(filePath) // #nosec\n\n\tif os.IsNotExist(err) {\n\t\treturn nil, ErrNoSuchKey\n\t}\n\n\treturn data, err\n}\n\n// Batch is the disk implementation of Database.Batch\nfunc (db *DiskDatabase) Batch() Batch {\n\tdb.refs++\n\treturn db\n}\n\nfunc removeNonDirs(path string) error {\n\tif path == \"/\" || path == \"\" {\n\t\treturn nil\n\t}\n\n\tinfo, err := os.Stat(path)\n\tif err != nil && !os.IsNotExist(err) {\n\t\treturn err\n\t}\n\n\tif info != nil && !info.IsDir() {\n\t\treturn os.Remove(path)\n\t}\n\n\treturn removeNonDirs(filepath.Dir(path))\n}\n\n// Put stores a new `val` under `key` at `bucket`.\n// Implementation detail: `key` may contain slashes (/). If used, those keys\n// will result in a nested directory structure.\nfunc (db *DiskDatabase) Put(val []byte, key ...string) {\n\tif debug {\n\t\tfmt.Println(\"SET\", key)\n\t}\n\n\tdb.ops = append(db.ops, func() error {\n\t\tfilePath := filepath.Join(db.basePath, fixDirectoryKeys(key))\n\n\t\t// If any of the parent are non-directories,\n\t\t// we need to remove them, since more nesting is requested.\n\t\t// (e.g. set /a/b/c/d over /a/b/c, where c is a file)\n\t\tparentDir := filepath.Dir(filePath)\n\t\tif err := removeNonDirs(parentDir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := os.MkdirAll(parentDir, 0700); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// It is allowed to set a key over an existing one.\n\t\t// i.e. set \"a/b\" over \"a/b/c\". This requires us to potentially\n\t\t// delete nested directories (c).\n\t\tinfo, err := os.Stat(filePath)\n\t\tif err != nil && !os.IsNotExist(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif info != nil && info.IsDir() {\n\t\t\tif err := os.RemoveAll(filePath); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn ioutil.WriteFile(filePath, val, 0600)\n\t})\n\n\tfullKey := path.Join(key...)\n\tdb.cache[fullKey] = val\n\tdelete(db.deletes, fullKey)\n}\n\n// Clear removes all keys below and including `key`.\nfunc (db *DiskDatabase) Clear(key ...string) error {\n\tif debug {\n\t\tfmt.Println(\"CLEAR\", key)\n\t}\n\n\t// Cache the real modification for later:\n\tdb.ops = append(db.ops, func() error {\n\t\tfilePrefix := filepath.Join(db.basePath, fixDirectoryKeys(key))\n\t\twalker := func(path string, info os.FileInfo, err error) error {\n\t\t\tif os.IsNotExist(err) {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif !info.IsDir() {\n\t\t\t\treturn os.Remove(path)\n\t\t\t}\n\n\t\t\treturn nil\n\t\t}\n\t\treturn filepath.Walk(filePrefix, walker)\n\t})\n\n\t// Make sure we also modify the currently cached objects:\n\tprefix := path.Join(key...)\n\tfor key := range db.cache {\n\t\tif strings.HasPrefix(key, prefix) {\n\t\t\tdelete(db.cache, key)\n\t\t\tdb.deletes[key] = struct{}{}\n\t\t}\n\t}\n\n\t// Also check what keys we actually need to delete.\n\tfilePrefix := filepath.Join(db.basePath, fixDirectoryKeys(key))\n\twalker := func(filePath string, info os.FileInfo, err error) error {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn nil\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !info.IsDir() {\n\t\t\tkey := reverseDirectoryKeys(filePath[len(db.basePath):])\n\t\t\tdb.deletes[path.Join(key...)] = struct{}{}\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn filepath.Walk(filePrefix, walker)\n}\n\n// Erase is the disk implementation of Database.Erase\nfunc (db *DiskDatabase) Erase(key ...string) {\n\tif debug {\n\t\tfmt.Println(\"ERASE\", key)\n\t}\n\n\tdb.ops = append(db.ops, func() error {\n\t\tfullPath := filepath.Join(db.basePath, fixDirectoryKeys(key))\n\t\terr := os.Remove(fullPath)\n\t\tif os.IsNotExist(err) {\n\t\t\treturn ErrNoSuchKey\n\t\t}\n\n\t\treturn err\n\t})\n\n\tfullKey := path.Join(key...)\n\tdb.deletes[fullKey] = struct{}{}\n\tdelete(db.cache, fullKey)\n}\n\n// HaveWrites is the disk implementation of Database.HaveWrites\nfunc (db *DiskDatabase) HaveWrites() bool {\n\treturn len(db.ops) > 0\n}\n\n// Keys is the disk implementation of Database.Keys\nfunc (db *DiskDatabase) Keys(prefix ...string) ([][]string, error) {\n\tfullPath := filepath.Join(db.basePath, fixDirectoryKeys(prefix))\n\tif _, err := os.Stat(fullPath); os.IsNotExist(err) {\n\t\treturn nil, nil\n\t}\n\n\tkeys := [][]string{}\n\treturn keys, filepath.Walk(fullPath, func(filePath string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !info.IsDir() {\n\t\t\tkey := reverseDirectoryKeys(filePath[len(db.basePath):])\n\t\t\tif _, ok := db.deletes[path.Join(key...)]; !ok {\n\t\t\t\tkeys = append(keys, key)\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n}\n\n// Glob is the disk implementation of Database.Glob\nfunc (db *DiskDatabase) Glob(prefix []string) ([][]string, error) {\n\tfullPrefix := filepath.Join(db.basePath, filepath.Join(prefix...))\n\tmatches, err := filepath.Glob(fullPrefix + \"*\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresults := [][]string{}\n\tfor _, match := range matches {\n\t\tinfo, err := os.Stat(match)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif !info.IsDir() {\n\t\t\tkey := match[len(db.basePath)+1:]\n\t\t\tif _, ok := db.deletes[key]; !ok {\n\t\t\t\tresults = append(results, strings.Split(key, string(filepath.Separator)))\n\t\t\t}\n\t\t}\n\t}\n\n\treturn results, nil\n}\n\n// Export writes all key/values into a gzipped .tar that is written to `w`.\nfunc (db *DiskDatabase) Export(w io.Writer) error {\n\tarchiveName := fmt.Sprintf(\"brigmeta-%s.gz\", time.Now().Format(time.RFC3339))\n\treturn util.Tar(db.basePath, archiveName, w)\n}\n\n// Import a gzipped tar from `r` into the current database.\nfunc (db *DiskDatabase) Import(r io.Reader) error {\n\treturn util.Untar(r, db.basePath)\n}\n\n// Close the database\nfunc (db *DiskDatabase) Close() error {\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/db/database_memory.go",
    "content": "package db\n\nimport (\n\t\"encoding/gob\"\n\t\"io\"\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// MemoryDatabase is a purely in memory database.\ntype MemoryDatabase struct {\n\tdata       map[string][]byte\n\toldData    map[string][]byte\n\thaveWrites bool\n\trefCount   int\n}\n\n// a shallow copy is enough here.\nfunc shallowCopyMap(src map[string][]byte) map[string][]byte {\n\tdst := make(map[string][]byte)\n\tfor k, v := range src {\n\t\tcopyV := make([]byte, len(v))\n\t\tcopy(copyV, v)\n\t\tdst[k] = copyV\n\t}\n\n\treturn dst\n}\n\n// NewMemoryDatabase allocates a new empty MemoryDatabase\nfunc NewMemoryDatabase() *MemoryDatabase {\n\treturn &MemoryDatabase{\n\t\tdata: make(map[string][]byte),\n\t}\n}\n\n// Batch is a no-op for a memory database.\nfunc (mdb *MemoryDatabase) Batch() Batch {\n\tif mdb.refCount == 0 {\n\t\tmdb.oldData = shallowCopyMap(mdb.data)\n\t}\n\n\tmdb.refCount++\n\treturn mdb\n}\n\n// Flush is a no-op for a memory database.\nfunc (mdb *MemoryDatabase) Flush() error {\n\tmdb.refCount--\n\n\tif mdb.refCount == 0 {\n\t\tmdb.haveWrites = false\n\t}\n\treturn nil\n}\n\n// Rollback is a no-op for a memory database\nfunc (mdb *MemoryDatabase) Rollback() {\n\tif mdb.oldData != nil {\n\t\tmdb.data = shallowCopyMap(mdb.oldData)\n\t\tmdb.oldData = nil\n\t}\n\n\tmdb.refCount = 0\n}\n\n// Get returns `key` of `bucket`.\nfunc (mdb *MemoryDatabase) Get(key ...string) ([]byte, error) {\n\tdata, ok := mdb.data[path.Join(key...)]\n\tif !ok {\n\t\treturn nil, ErrNoSuchKey\n\t}\n\n\treturn data, nil\n}\n\n// Put sets `key` in `bucket` to `data`.\nfunc (mdb *MemoryDatabase) Put(data []byte, key ...string) {\n\tmdb.haveWrites = true\n\tmdb.data[path.Join(key...)] = data\n}\n\n// Clear removes all keys includin and below `key`.\nfunc (mdb *MemoryDatabase) Clear(key ...string) error {\n\tmdb.haveWrites = true\n\tjoinedKey := path.Join(key...)\n\tfor mapKey := range mdb.data {\n\t\tif strings.HasPrefix(mapKey, joinedKey) {\n\t\t\tdelete(mdb.data, mapKey)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Erase removes `key`\nfunc (mdb *MemoryDatabase) Erase(key ...string) {\n\tfullKey := path.Join(key...)\n\tmdb.haveWrites = true\n\tdelete(mdb.data, fullKey)\n}\n\n// Keys will return all keys currently stored in the memory map\nfunc (mdb *MemoryDatabase) Keys(prefix ...string) ([][]string, error) {\n\tkeys := [][]string{}\n\tfor key := range mdb.data {\n\t\tsplitKey := strings.Split(key, \"/\")\n\n\t\thasPrefix := len(prefix) <= len(splitKey)\n\t\tfor i := 0; hasPrefix && i < len(prefix) && i < len(splitKey); i++ {\n\t\t\tif prefix[i] != splitKey[i] {\n\t\t\t\thasPrefix = false\n\t\t\t}\n\t\t}\n\n\t\tif hasPrefix {\n\t\t\tkeys = append(keys, splitKey)\n\t\t}\n\n\t}\n\n\tsort.Slice(keys, func(i, j int) bool {\n\t\ta := strings.Join(keys[i], \".\")\n\t\tb := strings.Join(keys[j], \".\")\n\t\treturn a < b\n\t})\n\n\treturn keys, nil\n}\n\n// HaveWrites returns true if there are any open writes.\nfunc (mdb *MemoryDatabase) HaveWrites() bool {\n\treturn mdb.haveWrites\n}\n\n// Glob returns all keys starting with `prefix`.\nfunc (mdb *MemoryDatabase) Glob(prefix []string) ([][]string, error) {\n\tprefixKey := path.Join(prefix...)\n\n\tvar result [][]string\n\n\tkeys, err := mdb.Keys()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, key := range keys {\n\t\tfullKey := path.Join(key...)\n\t\tif strings.HasPrefix(fullKey, prefixKey) {\n\t\t\t// Filter \"directories\":\n\t\t\tsuffix := fullKey[len(prefixKey):]\n\t\t\tif !strings.Contains(suffix, \"/\") {\n\t\t\t\tresult = append(result, strings.Split(fullKey, \"/\"))\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Slice(result, func(i, j int) bool {\n\t\treturn path.Join(result[i]...) < path.Join(result[j]...)\n\t})\n\n\treturn result, nil\n}\n\n// Export encodes the internal memory map to a gob structure,\n// and writes it to `w`.\nfunc (mdb *MemoryDatabase) Export(w io.Writer) error {\n\treturn gob.NewEncoder(w).Encode(mdb.data)\n}\n\n// Import imports a previously exported dump and decodes the gob structure.\nfunc (mdb *MemoryDatabase) Import(r io.Reader) error {\n\treturn gob.NewDecoder(r).Decode(&mdb.data)\n}\n\n// Close the memory - a no op.\nfunc (mdb *MemoryDatabase) Close() error {\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/db/database_test.go",
    "content": "package db\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withDiskDatabase(fn func(db *DiskDatabase)) error {\n\ttestDir, _ := ioutil.TempDir(\"\", \"brig-\")\n\tdefer os.RemoveAll(testDir)\n\n\tdb, err := NewDiskDatabase(testDir)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfn(db)\n\treturn db.Close()\n}\n\nfunc withBadgerDatabase(fn func(db *BadgerDatabase)) error {\n\ttestDir, _ := ioutil.TempDir(\"\", \"brig-\")\n\tdefer os.RemoveAll(testDir)\n\n\tdb, err := NewBadgerDatabase(testDir)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfn(db)\n\treturn db.Close()\n}\n\nfunc withMemDatabase(fn func(db *MemoryDatabase)) error {\n\tmdb := NewMemoryDatabase()\n\tfn(mdb)\n\treturn mdb.Close()\n}\n\nfunc withDbByName(name string, fn func(db Database)) error {\n\tswitch name {\n\tcase \"memory\":\n\t\treturn withMemDatabase(func(db *MemoryDatabase) {\n\t\t\tfn(db)\n\t\t})\n\tcase \"disk\":\n\t\treturn withDiskDatabase(func(db *DiskDatabase) {\n\t\t\tfn(db)\n\t\t})\n\tcase \"badger\":\n\t\treturn withBadgerDatabase(func(db *BadgerDatabase) {\n\t\t\tfn(db)\n\t\t})\n\tdefault:\n\t\tpanic(\"bad db name: \" + name)\n\t}\n}\n\nfunc withDbsByName(name string, fn func(db1, db2 Database)) error {\n\treturn withDbByName(name, func(db1 Database) {\n\t\twithDbByName(name, func(db2 Database) {\n\t\t\tfn(db1, db2)\n\t\t})\n\t})\n}\n\n//////////\n\nfunc TestDatabase(t *testing.T) {\n\tt.Run(\"memory\", func(t *testing.T) {\n\t\ttestDatabaseOneDb(t, \"memory\")\n\t\ttestDatabaseTwoDbs(t, \"memory\")\n\t})\n\tt.Run(\"disk\", func(t *testing.T) {\n\t\ttestDatabaseOneDb(t, \"disk\")\n\t\ttestDatabaseTwoDbs(t, \"disk\")\n\t})\n\tt.Run(\"badger\", func(t *testing.T) {\n\t\ttestDatabaseOneDb(t, \"badger\")\n\t\ttestDatabaseTwoDbs(t, \"badger\")\n\t})\n}\n\nfunc TestGCRace(t *testing.T) {\n\twithDbByName(\"badger\", func(db Database) {\n\t\tb := db.Batch()\n\t\tb.Put([]byte{0}, \"0\")\n\t\trequire.Nil(t, b.Flush())\n\n\t\tkeys, err := db.Keys()\n\t\trequire.Nil(t, err)\n\t\tfor _, key := range keys {\n\t\t\tb := db.Batch()\n\t\t\tb.Erase(key...)\n\t\t}\n\t})\n}\n\n//////////\n\nfunc testDatabaseTwoDbs(t *testing.T, name string) {\n\ttcs := []struct {\n\t\tname string\n\t\ttest func(t *testing.T, db1, db2 Database)\n\t}{\n\t\t{\n\t\t\tname: \"export-import\",\n\t\t\ttest: testExportImport,\n\t\t},\n\t}\n\n\tt.Run(\"double\", func(t *testing.T) {\n\t\tfor _, tc := range tcs {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\trequire.Nil(t, withDbsByName(name, func(db1, db2 Database) {\n\t\t\t\t\ttc.test(t, db1, db2)\n\t\t\t\t}))\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc testDatabaseOneDb(t *testing.T, name string) {\n\ttcs := []struct {\n\t\tname string\n\t\ttest func(t *testing.T, db Database)\n\t}{\n\t\t{\n\t\t\tname: \"put-and-get\",\n\t\t\ttest: testPutAndGet,\n\t\t}, {\n\t\t\tname: \"glob\",\n\t\t\ttest: testGlob,\n\t\t}, {\n\t\t\tname: \"clear\",\n\t\t\ttest: testClear,\n\t\t}, {\n\t\t\tname: \"clear-prefix\",\n\t\t\ttest: testClearPrefix,\n\t\t}, {\n\t\t\tname: \"invalid-access\",\n\t\t\ttest: testInvalidAccess,\n\t\t}, {\n\t\t\tname: \"recursive-batch\",\n\t\t\ttest: testRecursiveBatch,\n\t\t}, {\n\t\t\tname: \"rollback\",\n\t\t\ttest: testRollback,\n\t\t}, {\n\t\t\tname: \"erase\",\n\t\t\ttest: testErase,\n\t\t}, {\n\t\t\tname: \"keys\",\n\t\t\ttest: testKeys,\n\t\t},\n\t}\n\n\tt.Run(\"single\", func(t *testing.T) {\n\t\tfor _, tc := range tcs {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\trequire.Nil(t, withDbByName(name, func(db Database) {\n\t\t\t\t\ttc.test(t, db)\n\t\t\t\t}))\n\t\t\t})\n\t\t}\n\t})\n}\n\n///////////\n\nfunc testErase(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\tbatch.Put([]byte{1}, \"existing_key\")\n\tbatch.Flush()\n\n\tbatch = db.Batch()\n\tbatch.Erase(\"existing_key\")\n\n\t_, err := db.Get(\"existing_key\")\n\trequire.Equal(t, ErrNoSuchKey, err)\n\n\tbatch.Flush()\n\n\t_, err = db.Get(\"existing_key\")\n\trequire.Equal(t, ErrNoSuchKey, err)\n}\n\nfunc testKeys(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\texpect := [][]string{}\n\tfor i := 0; i < 15; i++ {\n\t\tkey := fmt.Sprintf(\"%d\", i)\n\t\tbatch.Put([]byte{byte(i)}, key)\n\t\texpect = append(expect, []string{key})\n\t}\n\tbatch.Flush()\n\n\tsort.Slice(expect, func(i, j int) bool {\n\t\ta := strings.Join(expect[i], \".\")\n\t\tb := strings.Join(expect[j], \".\")\n\t\treturn a < b\n\t})\n\n\textractKeys := func(prefixes []string) [][]string {\n\t\tkeys, err := db.Keys(prefixes...)\n\t\trequire.Nil(t, err)\n\t\treturn keys\n\t}\n\n\tkeys := extractKeys(nil)\n\trequire.Equal(t, expect, keys)\n\n\tkeys = extractKeys([]string{\"1\"})\n\trequire.Equal(t,\n\t\t[][]string{{\"1\"}},\n\t\tkeys,\n\t)\n}\n\nfunc testRollback(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\tbatch.Put([]byte{1}, \"existing_key\")\n\tbatch.Flush()\n\n\tbatch = db.Batch()\n\tbatch.Put([]byte{2}, \"existing_key\")\n\tbatch.Put([]byte{2}, \"some_key\")\n\n\tdata, err := db.Get(\"some_key\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, []byte{2}, data)\n\n\tbatch.Rollback()\n\n\tdata, err = db.Get(\"existing_key\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, []byte{1}, data)\n\n\tdata, err = db.Get(\"some_key\")\n\trequire.Equal(t, ErrNoSuchKey, err)\n\trequire.Nil(t, data)\n}\n\nfunc testRecursiveBatch(t *testing.T, db Database) {\n\tbatch1 := db.Batch()\n\tbatch2 := db.Batch()\n\n\tbatch2.Put([]byte{1}, \"batch2_key\")\n\tval, err := db.Get(\"batch2_key\")\n\n\trequire.Nil(t, err)\n\trequire.Equal(t, []byte{1}, val)\n\n\trequire.True(t, batch1.HaveWrites())\n\trequire.True(t, batch2.HaveWrites())\n\trequire.Nil(t, batch2.Flush())\n\n\trequire.True(t, batch1.HaveWrites())\n\trequire.True(t, batch2.HaveWrites())\n\n\trequire.Nil(t, batch1.Flush())\n\trequire.False(t, batch1.HaveWrites())\n\trequire.False(t, batch2.HaveWrites())\n}\n\nfunc testPutAndGet(t *testing.T, db Database) {\n\ttestKeys := [][]string{\n\t\t{\"some\", \"stuff\", \"x\"},\n\t\t{\"some\", \"stuff\", \".\"},\n\t\t{\".\", \".\", \".\"},\n\t\t{\"some\", \"stuff\", \"__NO_DOT__\"},\n\t\t{\"some\", \"stuff\", \"DOT\"},\n\t}\n\n\tfor _, key := range testKeys {\n\t\tt.Run(strings.Join(key, \".\"), func(t *testing.T) {\n\t\t\tbatch := db.Batch()\n\t\t\tbatch.Put([]byte(\"hello\"), key...)\n\t\t\trequire.Nil(t, batch.Flush())\n\n\t\t\tdata, err := db.Get(key...)\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, []byte(\"hello\"), data)\n\t\t})\n\t}\n}\n\nfunc testInvalidAccess(t *testing.T, db Database) {\n\tval, err := db.Get(\"hello\", \"world\")\n\trequire.Equal(t, ErrNoSuchKey, err)\n\trequire.Nil(t, val)\n}\n\nfunc testClear(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\tfor i := 0; i < 100; i++ {\n\t\tbatch.Put([]byte{1}, \"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t}\n\n\trequire.Nil(t, batch.Flush())\n\n\tbatch = db.Batch()\n\trequire.Nil(t, batch.Clear())\n\n\t// before flush:\n\tfor i := 0; i < 100; i++ {\n\t\t_, err := db.Get(\"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Equal(t, ErrNoSuchKey, err)\n\t}\n\n\trequire.Nil(t, batch.Flush())\n\n\t// after flush:\n\tfor i := 0; i < 100; i++ {\n\t\t_, err := db.Get(\"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Equal(t, ErrNoSuchKey, err)\n\t}\n}\n\nfunc testClearPrefix(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\tfor i := 0; i < 10; i++ {\n\t\tbatch.Put([]byte{1}, \"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t}\n\n\tfor i := 0; i < 10; i++ {\n\t\tbatch.Put([]byte{1}, \"x\", \"y\", \"z\", fmt.Sprintf(\"%d\", i))\n\t}\n\n\trequire.Nil(t, batch.Flush())\n\n\tbatch = db.Batch()\n\trequire.Nil(t, batch.Clear(\"a\"))\n\n\t// before flush:\n\tfor i := 0; i < 10; i++ {\n\t\t_, err := db.Get(\"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Equal(t, ErrNoSuchKey, err)\n\t}\n\n\tfor i := 0; i < 10; i++ {\n\t\tdata, err := db.Get(\"x\", \"y\", \"z\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte{1}, data)\n\t}\n\n\trequire.Nil(t, batch.Flush())\n\n\t// after flush:\n\tfor i := 0; i < 10; i++ {\n\t\t_, err := db.Get(\"a\", \"b\", \"c\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Equal(t, ErrNoSuchKey, err)\n\t}\n\n\tfor i := 0; i < 10; i++ {\n\t\tdata, err := db.Get(\"x\", \"y\", \"z\", fmt.Sprintf(\"%d\", i))\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte{1}, data)\n\t}\n}\n\nfunc testGlob(t *testing.T, db Database) {\n\tbatch := db.Batch()\n\tbatch.Put([]byte{1}, \"a\", \"b\", \"pref_1\")\n\tbatch.Put([]byte{2}, \"a\", \"b\", \"pref_2\")\n\tbatch.Put([]byte{3}, \"a\", \"b\", \"prev_3\")\n\tbatch.Put([]byte{4}, \"a\", \"b\", \"pref_dir\", \"x\")\n\n\terr := batch.Flush()\n\trequire.Nil(t, err)\n\n\tmatches, err := db.Glob([]string{\"a\", \"b\", \"pref_\"})\n\trequire.Nil(t, err)\n\n\trequire.Equal(t, [][]string{\n\t\t{\"a\", \"b\", \"pref_1\"},\n\t\t{\"a\", \"b\", \"pref_2\"},\n\t}, matches)\n}\n\nfunc testExportImport(t *testing.T, db1, db2 Database) {\n\ttestKeys := [][]string{\n\t\t{\"some\", \"stuff\", \"x\"},\n\t\t{\"some\", \"stuff\", \".\"},\n\t\t{\"some\", \"stuff\", \"__NO_DOT__\"},\n\t\t{\"some\", \"stuff\", \"DOT\"},\n\t}\n\n\tbatch := db1.Batch()\n\tfor _, key := range testKeys {\n\t\tbatch.Put([]byte{1, 2, 3}, key...)\n\t}\n\n\trequire.Nil(t, batch.Flush())\n\n\tfor _, key := range testKeys {\n\t\tdata, err := db1.Get(key...)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte{1, 2, 3}, data)\n\t}\n\n\tbuf := &bytes.Buffer{}\n\trequire.Nil(t, db1.Export(buf))\n\trequire.Nil(t, db2.Import(buf))\n\n\tfor _, key := range testKeys {\n\t\tdata, err := db2.Get(key...)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte{1, 2, 3}, data)\n\t}\n}\n\n// Regression bug fix: too many key/values in a transaction\n// will cause badger to return ErrTxnTooBig, which should\n// be handled as retry. This code triggers this.\nfunc TestLargeBatch(t *testing.T) {\n\tnKeys := 1000 * 10\n\n\tfor _, name := range []string{\"badger\", \"memory\", \"disk\"} {\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\twithDbByName(name, func(db Database) {\n\t\t\t\tbatch := db.Batch()\n\t\t\t\tfor idx := 0; idx < nKeys; idx++ {\n\t\t\t\t\tval := testutil.CreateRandomDummyBuf(int64(1024), int64(idx))\n\t\t\t\t\tkey := fmt.Sprintf(\"idx-%d\", idx)\n\t\t\t\t\tbatch.Put(val, key)\n\t\t\t\t}\n\n\t\t\t\trequire.Nil(t, batch.Flush())\n\t\t\t\tfor idx := 0; idx < nKeys; idx++ {\n\t\t\t\t\texpect := testutil.CreateRandomDummyBuf(int64(1024), int64(idx))\n\t\t\t\t\tkey := fmt.Sprintf(\"idx-%d\", idx)\n\t\t\t\t\tgot, err := db.Get(key)\n\t\t\t\t\trequire.Nil(t, err)\n\t\t\t\t\trequire.Equal(t, expect, got)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc BenchmarkDatabase(b *testing.B) {\n\tbenchmarks := map[string]func(*testing.B, Database){\n\t\t\"put\": benchmarkDatabasePut,\n\t\t\"get\": benchmarkDatabaseGet,\n\t}\n\n\tfor benchmarkName, benchmark := range benchmarks {\n\t\tb.Run(benchmarkName, func(b *testing.B) {\n\t\t\tfor _, name := range []string{\"badger\", \"memory\", \"disk\"} {\n\t\t\t\tb.Run(name, func(b *testing.B) {\n\t\t\t\t\twithDbByName(name, func(db Database) {\n\t\t\t\t\t\tb.ResetTimer()\n\t\t\t\t\t\tbenchmark(b, db)\n\t\t\t\t\t\tb.StopTimer()\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc benchmarkDatabasePut(b *testing.B, db Database) {\n\tbatch := db.Batch()\n\tfor i := 0; i < b.N; i++ {\n\t\tkeyName := fmt.Sprintf(\"key_%d\", i%(1024*1024))\n\t\tbatch.Put(testutil.CreateDummyBuf(128), keyName)\n\t}\n\tbatch.Flush()\n}\n\nfunc benchmarkDatabaseGet(b *testing.B, db Database) {\n\tbatch := db.Batch()\n\tfor i := 0; i < b.N; i++ {\n\t\tkeyName := fmt.Sprintf(\"key_%d\", i%(1024*1024))\n\t\tbatch.Put(testutil.CreateDummyBuf(128), \"prefix\", keyName)\n\t}\n\tbatch.Flush()\n\n\tb.ResetTimer()\n\tfor i := 0; i < b.N; i++ {\n\t\tkeyName := fmt.Sprintf(\"key_%d\", i%(1024*1024))\n\t\tdb.Get(\"prefix\", keyName)\n\t}\n}\n"
  },
  {
    "path": "catfs/errors/errors.go",
    "content": "package catfs\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\nvar (\n\t// ErrStageNotEmpty is returned by Reset() when it was called without force.\n\t// and there are still changes in the staging area.\n\tErrStageNotEmpty = errors.New(\"there are changes in the staging area; use the --force\")\n\n\t// ErrNoChange is returned when trying to commit, but there is no change.\n\tErrNoChange = errors.New(\"nothing changed between the given versions\")\n\n\t// ErrAmbigiousRev is returned when a ref string could mean several commits.\n\tErrAmbigiousRev = errors.New(\"there is more than one rev with this prefix\")\n\n\t// ErrExists is returned if a node already exists at a path, but should not.\n\tErrExists = errors.New(\"File exists\")\n\n\t// ErrBadNode is returned when a wrong node type was passed to a method.\n\tErrBadNode = errors.New(\"Cannot convert to concrete type. Broken input data?\")\n)\n\n//////////////\n\n// ErrNoSuchRef is returned when a bad ref was used\ntype ErrNoSuchRef string\n\nfunc (e ErrNoSuchRef) Error() string {\n\treturn fmt.Sprintf(\"No ref found named `%s`\", string(e))\n}\n\n// IsErrNoSuchRef checks if `err` is a no such ref error.\nfunc IsErrNoSuchRef(err error) bool {\n\t_, ok := err.(ErrNoSuchRef)\n\treturn ok\n}\n\n/////////////////\n\n// ErrNoSuchCommitIndex is returned when a bad commit was used\ntype ErrNoSuchCommitIndex struct {\n\tindex int64\n}\n\nfunc (e ErrNoSuchCommitIndex) Error() string {\n\treturn fmt.Sprintf(\"No commit with index `%d` found\", e.index)\n}\n\n// NoSuchCommitIndex returns an error for a missing index at `ind`\nfunc NoSuchCommitIndex(ind int64) error {\n\treturn &ErrNoSuchCommitIndex{ind}\n}\n\n// IsErrNoSuchCommitIndex checks if `err` is a no such ref error.\nfunc IsErrNoSuchCommitIndex(err error) bool {\n\t_, ok := err.(*ErrNoSuchCommitIndex)\n\treturn ok\n}\n\n/////////////////\n\ntype errNoSuchFile struct {\n\tpath string\n}\n\n// Error will return an error description detailin what path is missing.\nfunc (e *errNoSuchFile) Error() string {\n\treturn \"No such file or directory: \" + e.path\n}\n\n//////////////\n\n// NoSuchFile creates a new error that reports `path` as missing\nfunc NoSuchFile(path string) error {\n\treturn &errNoSuchFile{path}\n}\n\n// IsNoSuchFileError asserts that `err` means that the file could not be found\nfunc IsNoSuchFileError(err error) bool {\n\t_, ok := err.(*errNoSuchFile)\n\treturn ok\n}\n"
  },
  {
    "path": "catfs/fs.go",
    "content": "package catfs\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"path\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/sahib/brig/catfs/vcs\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/util\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\nconst (\n\tabiVersion                 = 1\n\tdefaultEncryptionKeyLength = 32\n)\n\nfunc emptyFileEncryptionKey() []byte {\n\treturn make([]byte, defaultEncryptionKeyLength)\n}\n\n// HintManager is the API for looking up hints.\ntype HintManager interface {\n\t// Lookup should return stream hints for the path.\n\t// Hints are recursive, so we iterate until the root path\n\t// to find the correct hint.\n\tLookup(path string) hints.Hint\n\n\t// Set should remember `hint` for `path` and below.\n\tSet(path string, hint hints.Hint) error\n}\n\n// dummy hint manager that will always yield the default.\ntype defaultHintManager struct{}\n\nfunc (dhm defaultHintManager) Lookup(path string) hints.Hint {\n\treturn hints.Default()\n}\n\nfunc (dhm defaultHintManager) Set(path string, hint hints.Hint) error {\n\treturn fmt.Errorf(\"no hint manager, cannot remember hints\")\n}\n\n// FS (short for Filesystem) is the central API entry for everything related to\n// paths.  It exposes a POSIX-like interface where path are mapped to the\n// actual underlying hashes and the associated metadata.\n//\n// Additionally it supports version control commands like MakeCommit(),\n// Checkout() etc.  The API is file-centric, i.e. directories are created on\n// the fly for some operations like Stage(). Empty directories can be created\n// via Mkdir() though.\ntype FS struct {\n\tmu sync.Mutex\n\n\t// underlying key/value store\n\tkv db.Database\n\n\t// linker (holds all nodes together)\n\tlkr *c.Linker\n\n\t// garbage collector for dead metadata links\n\tgc *c.GarbageCollector\n\n\t// channel to schedule gc runs and quit the gc loop\n\tgcControl chan bool\n\n\t// channel to schedule auto commits and quit the loop\n\tautoCommitControl chan bool\n\n\t// channel to schedule repins and quit the loop\n\trepinControl chan string\n\n\t// Actual storage backend (e.g. ipfs or memory)\n\tbk FsBackend\n\n\t// internal config\n\tcfg *config.Config\n\n\t// cache for the isPinned operation\n\tpinner *Pinner\n\n\t// wether this fs is read only and cannot be changed.\n\t// It can be change by applying patches though.\n\treadOnly bool\n\n\t// interface to load stream hints\n\thintManager HintManager\n\n\t// cache for storing pages written to catfs.Handle\n\t// (may be nil if not used, e.g. for tests)\n\tpageCache pagecache.Cache\n}\n\n// ErrReadOnly is returned when a file system was created in read only mode\n// and a modifying operation was called on it.\nvar ErrReadOnly = errors.New(\"fs is read only\")\n\n// StatInfo describes the metadata of a single node.\n// The concept is comparable to the POSIX stat() call.\ntype StatInfo struct {\n\t// Path is the full path to the file\n\tPath string\n\n\t// TreeHash is the hash of the node in the DAG\n\tTreeHash h.Hash\n\t// ContentHash is the actual hash of the content\n\t// (used to test for content equality)\n\tContentHash h.Hash\n\t// BackendHash is the hash under which the file is reachable\n\t// in the backend.\n\tBackendHash h.Hash\n\n\t// User is the name of the user that modified this node last.\n\tUser string\n\t// Size in bytes\n\tSize uint64\n\t// Cached Size in bytes, i.e. size at backend\n\tCachedSize int64\n\t// Inode is a unique number specific to this node\n\tInode uint64\n\t// Depth is the hierarchy level inside of this node (root has 0)\n\tDepth int\n\t// ModTime is the last modification timestamp\n\tModTime time.Time\n\n\t// IsDir tells you if this node is a dir\n\tIsDir bool\n\t// IsPinned tells you if this node is pinned (either implicit or explicit)\n\tIsPinned bool\n\t// IsExplicit is true when the user pinned this node on purpose\n\tIsExplicit bool\n\n\t// IsRaw indicates if the stream associated with the file (if any)\n\t// was encoded by brig or can be consumed from ipfs directly.\n\tIsRaw bool\n\n\t// Key is the encryption key for the file.\n\tKey []byte\n}\n\n// DiffPair is a pair of nodes.\n// It is returned by MakeDiff(), where the source\n// is a node on the remote side and the dst node is\n// a node on our side.\ntype DiffPair struct {\n\tSrc StatInfo `json:\"src\"`\n\tDst StatInfo `json:\"dst\"`\n}\n\n// Diff is a list of things that changed between to commits\ntype Diff struct {\n\t// Added is a list of nodes that were added newly\n\tAdded []StatInfo `json:\"added\"`\n\n\t// Removed is a list of nodes that were removed\n\tRemoved []StatInfo `json:\"removed\"`\n\n\t// Ignored is a list of nodes that were not considered\n\tIgnored []StatInfo `json:\"ignored\"`\n\n\t// Missing is a list of nodes that the remoe side is missing\n\tMissing []StatInfo `json:\"missing\"`\n\n\t// Moved is a list of nodes that changed path\n\tMoved []DiffPair `json:\"moved\"`\n\n\t// Merged is a list of nodes that can be merged automatically\n\tMerged []DiffPair `json:\"merged\"`\n\n\t// Conflict is a list of nodes that cannot be merged automatically\n\tConflict []DiffPair `json:\"conflict\"`\n}\n\n// Commit gives information about a single commit.\ntype Commit struct {\n\t// Hash is the id of this commit\n\tHash h.Hash\n\t// Msg describes the committed contents\n\tMsg string\n\t// Tags is a user defined list of tags\n\t// (tags like HEAD, CURR and INIT are assigned dynamically as exception)\n\tTags []string\n\t// Date is the time when the commit was made\n\tDate time.Time\n\t// Index is the index of the commit:\n\tIndex int64\n}\n\n// Change describes a single change to a node between two versions\ntype Change struct {\n\t// Path is the node that was changed\n\tPath string\n\n\t// IsPinned tells you if the content is pinned at this stage\n\tIsPinned bool\n\n\t// IsExplicty tells you if the content is pinned explicitly.\n\tIsExplicit bool\n\n\t// Change describes what was changed\n\tChange string\n\n\t// MovedTo indicates that the node at this Path was moved to\n\t// another location and that there is no node at this location now.\n\tMovedTo string\n\n\t// WasPreviouslyAt is filled when the node was moved\n\t// and was previously at another location.\n\tWasPreviouslyAt string\n\n\t// Head is the commit after the change\n\tHead *Commit\n\n\t// Next is the commit before the change\n\tNext *Commit\n}\n\n// ExplicitPin is a pair of path and commit id.\ntype ExplicitPin struct {\n\tPath   string\n\tCommit string\n}\n\n/////////////////////\n// UTILITY HELPERS //\n/////////////////////\n\nfunc (fs *FS) nodeToStat(nd n.Node) *StatInfo {\n\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(nd)\n\tif err != nil {\n\t\tlog.Warningf(\"stat: failed to acquire pin state: %v\", err)\n\t}\n\n\tvar isDir bool\n\tvar isRaw bool\n\tvar key []byte\n\n\tswitch nd.Type() {\n\tcase n.NodeTypeFile:\n\t\tfile, ok := nd.(*n.File)\n\t\tif ok {\n\t\t\tkey = make([]byte, len(file.Key()))\n\t\t\tcopy(key, file.Key())\n\t\t}\n\n\t\tisRaw = file.IsRaw()\n\tcase n.NodeTypeDirectory:\n\t\tisDir = true\n\tcase n.NodeTypeGhost:\n\t\tghost, ok := nd.(*n.Ghost)\n\t\tif ok {\n\t\t\tisDir = (ghost.OldNode().Type() == n.NodeTypeDirectory)\n\t\t}\n\t}\n\n\treturn &StatInfo{\n\t\tPath:        nd.Path(),\n\t\tUser:        nd.User(),\n\t\tModTime:     nd.ModTime(),\n\t\tIsDir:       isDir,\n\t\tInode:       nd.Inode(),\n\t\tSize:        nd.Size(),\n\t\tCachedSize:  nd.CachedSize(),\n\t\tDepth:       n.Depth(nd),\n\t\tIsPinned:    isPinned,\n\t\tIsExplicit:  isExplicit,\n\t\tIsRaw:       isRaw,\n\t\tContentHash: nd.ContentHash().Clone(),\n\t\tBackendHash: nd.BackendHash().Clone(),\n\t\tTreeHash:    nd.TreeHash().Clone(),\n\t\tKey:         key,\n\t}\n}\n\nfunc lookupFileOrDir(lkr *c.Linker, path string) (n.ModNode, error) {\n\tnd, err := lkr.LookupNode(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd == nil || nd.Type() == n.NodeTypeGhost {\n\t\treturn nil, ie.NoSuchFile(path)\n\t}\n\n\tmodNd, ok := nd.(n.ModNode)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn modNd, nil\n}\n\nfunc (fs *FS) handleGcEvent(nd n.Node) bool {\n\tif nd.Type() != n.NodeTypeFile {\n\t\treturn true\n\t}\n\n\tfile, ok := nd.(*n.File)\n\tif !ok {\n\t\treturn true\n\t}\n\n\tcontent := file.BackendHash()\n\tlog.Infof(\"unpinning gc'd node %v\", content.B58String())\n\n\t// This node will not be reachable anymore by brig.\n\t// Make sure it is also unpinned to save space.\n\tif err := fs.pinner.Unpin(file.Inode(), file.BackendHash(), true); err != nil {\n\t\tlog.Warningf(\"unpinning attempt failed: %v\", err)\n\t}\n\n\t// Still return true, no need to stop the GC\n\treturn true\n}\n\n///////////////////////////////\n// ACTUAL API IMPLEMENTATION //\n///////////////////////////////\n\nfunc (fs *FS) doGcRun() {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\towner, err := fs.lkr.Owner()\n\tif err != nil {\n\t\tlog.Warningf(\"gc: failed to get owner: %v\", err)\n\t\treturn\n\t}\n\n\tlog.Debugf(\"filesystem GC (for %s): running\", owner)\n\tif err := fs.gc.Run(true); err != nil {\n\t\tlog.Warnf(\"failed to run GC: %v\", err)\n\t}\n}\n\n// NewFilesystem creates a new CATFS filesystem.\n// This filesystem stores all its data in a Merkle DAG and is fully versioned.\nfunc NewFilesystem(\n\tbackend FsBackend,\n\tdbPath string,\n\towner string,\n\treadOnly bool,\n\tfsCfg *config.Config,\n\thintManager HintManager,\n\tpageCache pagecache.Cache,\n) (*FS, error) {\n\tkv, err := db.NewBadgerDatabase(dbPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlkr := c.NewLinker(kv)\n\tif err := lkr.SetOwner(owner); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// NOTE: This is the place to start migrations in the future.\n\tif err := lkr.SetABIVersion(abiVersion); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpinCache, err := NewPinner(lkr, backend)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif hintManager == nil {\n\t\thintManager = defaultHintManager{}\n\t}\n\n\t// NOTE: We do not need to validate fsCfg here.\n\t// This is already done on the side of our config module.\n\t// (we just need to convert a few keys to the vcs.SyncOptions enum later).\n\n\tfs := &FS{\n\t\tkv:                kv,\n\t\tlkr:               lkr,\n\t\tbk:                backend,\n\t\tcfg:               fsCfg,\n\t\treadOnly:          readOnly,\n\t\tgcControl:         make(chan bool, 1),\n\t\tautoCommitControl: make(chan bool, 1),\n\t\trepinControl:      make(chan string, 1),\n\t\tpinner:            pinCache,\n\t\thintManager:       hintManager,\n\t\tpageCache:         pageCache,\n\t}\n\n\t// Start the garbage collection background task.\n\t// It will run locked every few seconds and removes unreachable\n\t// objects from the staging area.\n\tfs.gc = c.NewGarbageCollector(lkr, kv, fs.handleGcEvent)\n\n\tgo fs.gcLoop()\n\tgo fs.autoCommitLoop()\n\tgo fs.repinLoop()\n\n\treturn fs, nil\n}\n\nfunc (fs *FS) gcLoop() {\n\tgcTicker := time.NewTicker(120 * time.Second)\n\tdefer gcTicker.Stop()\n\tfor {\n\t\tselect {\n\t\tcase state := <-fs.gcControl:\n\t\t\tif state {\n\t\t\t\tfs.doGcRun()\n\t\t\t} else {\n\t\t\t\t// Quit the gc loop:\n\t\t\t\tlog.Debugf(\"quitting the GC loop\")\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-gcTicker.C:\n\t\t\tfs.doGcRun()\n\t\t}\n\t}\n}\n\nfunc (fs *FS) autoCommitLoop() {\n\tlastCheck := time.Now()\n\tcheckTicker := time.NewTicker(1 * time.Second)\n\tdefer checkTicker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-fs.autoCommitControl:\n\t\t\tlog.Debugf(\"quitting the auto commit loop\")\n\t\t\treturn\n\t\tcase <-checkTicker.C:\n\t\t\tisEnabled := fs.cfg.Bool(\"autocommit.enabled\")\n\t\t\tif !isEnabled {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif time.Since(lastCheck) >= fs.cfg.Duration(\"autocommit.interval\") {\n\t\t\t\tlastCheck = time.Now()\n\t\t\t\tmsg := fmt.Sprintf(\"auto commit at »%s«\", time.Now().Format(time.RFC822))\n\t\t\t\tif err := fs.MakeCommit(msg); err != nil && err != ie.ErrNoChange {\n\t\t\t\t\tlog.Warningf(\"failed to create auto commit: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (fs *FS) repinLoop() {\n\tif fs.readOnly {\n\t\treturn\n\t}\n\n\tlastCheck := time.Now()\n\tcheckTicker := time.NewTicker(1 * time.Second)\n\tdefer checkTicker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase root := <-fs.repinControl:\n\t\t\tif root == \"\" {\n\t\t\t\tlog.Debugf(\"quitting the repin loop\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Execute a repin immediately otherwise.\n\t\t\t// (and reset the timer, so we don't get it twice)\n\t\t\tif err := fs.repin(root); err != nil {\n\t\t\t\tlog.Warningf(\"repin failed: %v\", err)\n\t\t\t}\n\n\t\t\tlastCheck = time.Now()\n\t\tcase <-checkTicker.C:\n\t\t\tisEnabled := fs.cfg.Bool(\"repin.enabled\")\n\t\t\tif !isEnabled {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif time.Since(lastCheck) >= fs.cfg.Duration(\"repin.interval\") {\n\t\t\t\tlastCheck = time.Now()\n\n\t\t\t\tif err := fs.repin(\"/\"); err != nil {\n\t\t\t\t\tlog.Warningf(\"repin failed: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Close will clean up internal storage.\nfunc (fs *FS) Close() error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tgo func() { fs.gcControl <- false }()\n\tgo func() { fs.autoCommitControl <- false }()\n\tgo func() { fs.repinControl <- \"\" }()\n\n\tif err := fs.pinner.Close(); err != nil {\n\t\tlog.Warnf(\"Failed to close pin cache: %v\", err)\n\t}\n\n\treturn fs.kv.Close()\n}\n\n// Export will export a serialized version of the filesystem to `w`.\nfunc (fs *FS) Export(w io.Writer) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\treturn fs.kv.Export(w)\n}\n\n// Import will read a previously FS dump from `r`.\nfunc (fs *FS) Import(r io.Reader) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif err := fs.kv.Import(r); err != nil {\n\t\treturn err\n\t}\n\n\t// disk (probably) changed, delete memcache:\n\tfs.lkr.MemIndexClear()\n\treturn nil\n}\n\n/////////////////////\n// CORE OPERATIONS //\n/////////////////////\n\n// Move will move the file or directory at `src` to `dst`.\n// If it does not exist, an error will be returned.\nfunc (fs *FS) Move(src, dst string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tsrcNd, err := lookupFileOrDir(fs.lkr, src)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn c.Move(fs.lkr, srcNd, dst)\n}\n\n// Copy will copy the file or directory at `src` to `dst`.\n// If it does not exist, an error will be returned.\nfunc (fs *FS) Copy(src, dst string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tsrcNd, err := lookupFileOrDir(fs.lkr, src)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = c.Copy(fs.lkr, srcNd, dst)\n\treturn err\n}\n\n// Mkdir creates a new empty directory at `dir`, possibly creating\n// all intermediate parents if `createParents` is set.\nfunc (fs *FS) Mkdir(dir string, createParents bool) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\t// \"brig mkdir .\" somehow is able to overwrite everything:\n\tdir = strings.TrimLeft(path.Clean(dir), \".\")\n\t_, err := c.Mkdir(fs.lkr, dir, createParents)\n\treturn err\n}\n\n// Remove removes the file or directory at `path`.\nfunc (fs *FS) Remove(path string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tnd, err := lookupFileOrDir(fs.lkr, path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// TODO: What should remove do with the pin state?\n\t_, _, err = c.Remove(fs.lkr, nd, true, true)\n\treturn err\n}\n\n// Stat delivers detailed information about the node at `path`.\nfunc (fs *FS) Stat(path string) (*StatInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tnd, err := fs.lkr.LookupNode(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif nd.Type() == n.NodeTypeGhost {\n\t\treturn nil, ie.NoSuchFile(path)\n\t}\n\n\treturn fs.nodeToStat(nd), nil\n}\n\n// Filter implements a quick and easy way to search over all files\n// by using a query that checks if it is part of the path.\nfunc (fs *FS) Filter(root, query string) ([]*StatInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\trootNd, err := fs.lkr.LookupNode(root)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif rootNd.Type() == n.NodeTypeGhost {\n\t\treturn nil, ie.NoSuchFile(root)\n\t}\n\n\tquery = strings.ToLower(query)\n\tresult := []*StatInfo{}\n\terr = n.Walk(fs.lkr, rootNd, false, func(child n.Node) error {\n\t\t// Ghost nodes should not be visible to the outside.\n\t\tif child.Type() == n.NodeTypeGhost {\n\t\t\treturn nil\n\t\t}\n\n\t\t// Special case: Forget about the root node.\n\t\t// It should not be part of the results.\n\t\tchildPath := child.Path()\n\t\tif childPath == root {\n\t\t\treturn nil\n\t\t}\n\n\t\tchildPath = strings.ToLower(childPath[len(root):])\n\t\tif !strings.Contains(childPath, query) {\n\t\t\treturn nil\n\t\t}\n\n\t\tresult = append(result, fs.nodeToStat(child))\n\t\treturn n.ErrSkipChild\n\t})\n\n\tsort.Slice(result, func(i, j int) bool {\n\t\tiDepth := result[i].Depth\n\t\tjDepth := result[j].Depth\n\n\t\tif iDepth == jDepth {\n\t\t\treturn result[i].Path < result[j].Path\n\t\t}\n\n\t\treturn iDepth < jDepth\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn result, nil\n}\n\n// List returns stat info for each node below (and including) root.\n// Nodes deeper than maxDepth will not be shown. If maxDepth is a\n// negative number, all nodes will be shown.\nfunc (fs *FS) List(root string, maxDepth int) ([]*StatInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\t// NOTE: This method is highly inefficient:\n\t//       - iterates over all nodes even if maxDepth is >= 0\n\t//\n\t// Fix whenever it proves to be a problem.\n\t// I don't want to engineer something now until I know what's needed.\n\trootNd, err := fs.lkr.LookupNode(root)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif rootNd.Type() == n.NodeTypeGhost {\n\t\treturn nil, ie.NoSuchFile(root)\n\t}\n\n\t// Start counting max depth relative to the root:\n\tif maxDepth >= 0 {\n\t\tmaxDepth += n.Depth(rootNd)\n\t}\n\n\tresult := []*StatInfo{}\n\tif rootNd.Type() == n.NodeTypeFile {\n\t\t// There is no point to Walk through file, it has no children\n\t\t// but we need to report on itself\n\t\tresult = append(result, fs.nodeToStat(rootNd))\n\t\treturn result, nil\n\t}\n\terr = n.Walk(fs.lkr, rootNd, false, func(child n.Node) error {\n\t\tif maxDepth < 0 || n.Depth(child) <= maxDepth {\n\t\t\tif maxDepth >= 0 && child.Path() == root {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\t// Ghost nodes should not be visible to the outside.\n\t\t\tif child.Type() == n.NodeTypeGhost {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tresult = append(result, fs.nodeToStat(child))\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tsort.Slice(result, func(i, j int) bool {\n\t\tiDepth := result[i].Depth\n\t\tjDepth := result[j].Depth\n\n\t\tif iDepth == jDepth {\n\t\t\treturn result[i].Path < result[j].Path\n\t\t}\n\n\t\treturn iDepth < jDepth\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn result, nil\n}\n\n////////////////////////\n// PINNING OPERATIONS //\n////////////////////////\n\n// preCache makes the backend fetch the data already from the network,\n// even though it might not be needed yet.\nfunc (fs *FS) preCache(hash h.Hash) error {\n\tstream, err := fs.bk.Cat(hash)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = io.Copy(ioutil.Discard, stream)\n\treturn err\n}\n\nfunc (fs *FS) preCacheInBackground(hash h.Hash) {\n\tif !fs.cfg.Bool(\"pre_cache.enabled\") {\n\t\treturn\n\t}\n\n\tgo func() {\n\t\tif err := fs.preCache(hash); err != nil {\n\t\t\tlog.Debugf(\"failed to pre-cache `%s`: %v\", hash, err)\n\t\t}\n\t}()\n}\n\n// Pin will pin the file or directory at `path` explicitly.\nfunc (fs *FS) Pin(path, rev string, explicit bool) error {\n\treturn fs.doPin(path, rev, fs.pinner.PinNode, explicit)\n}\n\n// Unpin will unpin the file or directory at `path` explicitly.\nfunc (fs *FS) Unpin(path, rev string, explicit bool) error {\n\treturn fs.doPin(path, rev, fs.pinner.UnpinNode, explicit)\n}\n\nfunc (fs *FS) doPin(path, rev string, op func(nd n.Node, explicit bool) error, explicit bool) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tcmt, err := parseRev(fs.lkr, rev)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\troot, err := fs.lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnd, err := root.Lookup(fs.lkr, path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif nd == nil || nd.Type() == n.NodeTypeGhost {\n\t\treturn ie.NoSuchFile(path)\n\t}\n\n\tif err := op(nd, explicit); err != nil {\n\t\treturn err\n\t}\n\n\t// Make sure the data is available (if requested):\n\tif nd.Type() == n.NodeTypeFile {\n\t\tfs.preCacheInBackground(nd.BackendHash())\n\t}\n\n\treturn nil\n}\n\n// IsPinned returns true for files and directories that are pinned.\n// A directory only counts as pinned if all files and directories\n// in it are also pinned.\nfunc (fs *FS) IsPinned(path string) (bool, bool, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tnd, err := lookupFileOrDir(fs.lkr, path)\n\tif err != nil {\n\t\treturn false, false, err\n\t}\n\n\treturn fs.pinner.IsNodePinned(nd)\n}\n\n////////////////////////\n// STAGING OPERATIONS //\n////////////////////////\n\nfunc prefixSlash(s string) string {\n\tif !strings.HasPrefix(s, \"/\") {\n\t\treturn \"/\" + s\n\t}\n\n\treturn s\n}\n\n// Touch creates an empty file at `path` if it does not exist yet.\n// If it exists, it's mod time is being updated to the current time.\nfunc (fs *FS) Touch(path string) error {\n\tfs.mu.Lock()\n\n\tif fs.readOnly {\n\t\tfs.mu.Unlock()\n\t\treturn ErrReadOnly\n\t}\n\n\tnd, err := fs.lkr.LookupNode(path)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\tfs.mu.Unlock()\n\t\treturn err\n\t}\n\n\tif nd != nil {\n\t\tmodNd, ok := nd.(n.ModNode)\n\t\tif !ok {\n\t\t\t// What could it be if lookup returns not a node?\n\t\t\tfs.mu.Unlock()\n\t\t\treturn nil\n\t\t}\n\t\tif modNd.Type() != n.NodeTypeGhost {\n\t\t\tmodNd.SetModTime(time.Now())\n\t\t\tfs.mu.Unlock()\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// We may not call Stage() with a lock.\n\tfs.mu.Unlock()\n\n\t// Nothing or a ghost there, stage an empty file\n\t// 0 sized (newly touched) files should have the same key\n\t// to point to the same backend file\n\tkey := emptyFileEncryptionKey()\n\treturn fs.stageWithKey(prefixSlash(path), bytes.NewReader([]byte{}), key)\n}\n\n// Truncate cuts of the output of the file at `path` to `size`.\n// `size` should be between 0 and the size of the file,\n// all other values will be ignored.\n//\n// Note that this is not implemented as an actual IO operation.\n// It is possible to go back to a bigger size until the actual\n// content was changed via Stage().\nfunc (fs *FS) Truncate(path string, size uint64) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tnd, err := fs.lkr.LookupModNode(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif nd.Type() != n.NodeTypeFile {\n\t\treturn fmt.Errorf(\"`%s` is not a file\", path)\n\t}\n\n\tnd.SetSize(size)\n\treturn fs.lkr.StageNode(nd)\n}\n\nfunc (fs *FS) renewPins(oldFile, newFile *n.File) error {\n\tpinExplicit := false\n\n\tif oldFile != nil {\n\t\toldBackendHash := oldFile.BackendHash()\n\t\tif oldBackendHash.Equal(newFile.BackendHash()) {\n\t\t\t// Nothing changed, nothing to do...\n\t\t\treturn nil\n\t\t}\n\n\t\t_, isExplicit, err := fs.pinner.IsNodePinned(oldFile)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// If the old file was pinned explicitly, we should also pin\n\t\t// the new file explicitly to carry over that info.\n\t\tpinExplicit = isExplicit\n\n\t\tif !isExplicit {\n\t\t\tif err := fs.pinner.UnpinNode(oldFile, pinExplicit); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fs.pinner.PinNode(newFile, pinExplicit)\n}\n\nfunc (fs *FS) preStageKeyGen(path string) ([]byte, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\t// See if we already have such a file.\n\t// If not we gonna need to generate new key for it\n\t// based on the content hash.\n\toldNode, err := fs.lkr.LookupNode(path)\n\n\t// Check that we're handling the right kind of node.\n\t// We should be able to add on-top of ghosts, but directories\n\t// are pointless as input.\n\tvar oldFile *n.File\n\tif err == nil {\n\t\tswitch oldNode.Type() {\n\t\tcase n.NodeTypeDirectory:\n\t\t\treturn nil, fmt.Errorf(\"Cannot stage over directory: %v\", path)\n\t\tcase n.NodeTypeGhost:\n\t\t\t// Act like there was no such node:\n\t\t\terr = ie.NoSuchFile(path)\n\t\tcase n.NodeTypeFile:\n\t\t\tvar ok bool\n\t\t\toldFile, ok = oldNode.(*n.File)\n\t\t\tif !ok {\n\t\t\t\treturn nil, ie.ErrBadNode\n\t\t\t}\n\t\t}\n\t}\n\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn nil, err\n\t}\n\n\tif oldFile != nil && oldFile.Size() != 0 {\n\t\treturn oldFile.Key(), nil\n\t}\n\n\t// only create a new key for new files.\n\t// The key depends on the content hash and the size.\n\tkey := make([]byte, defaultEncryptionKeyLength)\n\tif _, err := rand.Read(key); err != nil {\n\t\treturn nil, e.Wrapf(err, \"failed to generate random key\")\n\t}\n\n\treturn key, nil\n}\n\n// Stage reads all data from `r` and stores as content of the node at `path`.\n// If `path` already exists, it will be updated.\nfunc (fs *FS) Stage(path string, r io.Reader) error {\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\tpath = prefixSlash(path)\n\tkey, err := fs.preStageKeyGen(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fs.stageWithKey(path, r, key)\n}\n\n// stageWithKey reads all data from `r` and stores as content of the node at `path`.\n// It uses provided encryption key\n// If `path` already exists, it will be updated.\nfunc (fs *FS) stageWithKey(path string, r io.Reader, key []byte) error {\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\tpath = prefixSlash(path)\n\n\t// NOTE: fs.mu is not locked here since I/O can be done in parallel.\n\t//       If you need locking, you can do it at the bottom of this method.\n\n\t// Branch off a part of the stream and pipe it through\n\t// a hash writer to compute the hash while reading the stream:\n\thashWriter := h.NewHashWriter()\n\thashReader := io.TeeReader(r, hashWriter)\n\n\t// Do the same with the size.\n\t// This actually measures the size of the stream and is\n\t// therefore guaranteed to find out the actual stream size.\n\tsizeAcc := &util.SizeAccumulator{}\n\tsizeReader := io.TeeReader(hashReader, sizeAcc)\n\n\thint := fs.hintManager.Lookup(path)\n\tstream, isRaw, err := mio.NewInStream(sizeReader, path, key, hint)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbackendHash, err := fs.bk.Add(stream)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// The stream was consumed, we now know those attrs:\n\tsize := sizeAcc.Size()\n\tcontentHash := hashWriter.Finalize()\n\n\t// Lock it again for the metadata staging:\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tcachedSize, err := fs.bk.CachedSize(backendHash)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Remember the metadata:\n\tnewFile, err := c.Stage(\n\t\tfs.lkr,\n\t\tpath,\n\t\tcontentHash,\n\t\tbackendHash,\n\t\tsize,\n\t\tcachedSize,\n\t\tkey,\n\t\ttime.Now(),\n\t\tisRaw,\n\t)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.pinner.PinNode(newFile, false)\n}\n\n////////////////////\n// I/O OPERATIONS //\n////////////////////\n\ntype tarEntry struct {\n\tpath   string\n\tsize   int64\n\tstream mio.Stream\n}\n\nfunc (fs *FS) getTarableEntries(root string, filter func(node *StatInfo) bool) ([]tarEntry, string, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\trootNd, err := fs.lkr.LookupNode(root)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\tentries := []tarEntry{}\n\terr = n.Walk(fs.lkr, rootNd, false, func(child n.Node) error {\n\t\tif filter != nil && rootNd.Path() != child.Path() {\n\t\t\t// Ask the API user if he wants this node in his archive:\n\t\t\tif !filter(fs.nodeToStat(child)) {\n\t\t\t\treturn n.ErrSkipChild\n\t\t\t}\n\t\t}\n\n\t\tif child.Type() != n.NodeTypeFile {\n\t\t\treturn nil\n\t\t}\n\n\t\tfile, ok := child.(*n.File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tstream, err := fs.catHash(\n\t\t\tfile.BackendHash(),\n\t\t\tfile.Key(),\n\t\t\tfile.Size(),\n\t\t\tfile.IsRaw(),\n\t\t)\n\t\tif err != nil {\n\t\t\treturn e.Wrapf(err, \"failed to open stream for %s\", file.Path())\n\t\t}\n\n\t\tentries = append(entries, tarEntry{\n\t\t\tpath:   child.Path(),\n\t\t\tsize:   int64(child.Size()),\n\t\t\tstream: stream,\n\t\t})\n\t\treturn nil\n\t})\n\n\t// Make sure that the entries are served in lexicographical order.\n\tsort.Slice(entries, func(i, j int) bool {\n\t\treturn entries[i].path < entries[j].path\n\t})\n\n\tprefixPath := root\n\tif rootNd.Type() != n.NodeTypeDirectory {\n\t\tprefixPath = path.Dir(root)\n\t}\n\n\treturn entries, prefixPath, err\n}\n\n// Tar produces a tar archive from the file or directory at `root` and writes\n// the output to `w`. If you want compression, supply a gzip writer.\nfunc (fs *FS) Tar(root string, w io.Writer, filter func(node *StatInfo) bool) error {\n\t// getTarableEntries is locking fs.mu while it is running.\n\t// the rest of the code in this method should NOT use any nodes\n\t// or anything that is open to race conditions!\n\tentries, prefixPath, err := fs.getTarableEntries(root, filter)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttw := tar.NewWriter(w)\n\n\t// Make sure to close all remaining streams when any error happens.\n\t// Also clean up the tar writer. This might flush some data still.\n\t// The user of this API should not use `w` if an error happens.\n\tcleanup := func(idx int) {\n\t\tfor ; idx < len(entries); idx++ {\n\t\t\tentry := entries[idx]\n\t\t\tif err := entry.stream.Close(); err != nil {\n\t\t\t\tlog.Debugf(\"could not close stream: %v (file descriptor leak?)\", entry.path)\n\t\t\t}\n\t\t}\n\n\t\ttw.Close()\n\t}\n\n\tfor idx, entry := range entries {\n\t\thdr := &tar.Header{\n\t\t\tName: entry.path[len(prefixPath):],\n\t\t\tMode: 0600,\n\t\t\tSize: entry.size,\n\t\t}\n\n\t\tif err := tw.WriteHeader(hdr); err != nil {\n\t\t\tcleanup(idx)\n\t\t\treturn err\n\t\t}\n\n\t\tif _, err := io.Copy(tw, entry.stream); err != nil {\n\t\t\tcleanup(idx)\n\t\t\treturn err\n\t\t}\n\n\t\tif err := entry.stream.Close(); err != nil {\n\t\t\tcleanup(idx + 1)\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn tw.Close()\n}\n\n// Cat will open a file read-only and expose it's underlying data as stream.\n// If no such path is known or it was deleted, nil is returned as stream.\nfunc (fs *FS) Cat(path string) (mio.Stream, error) {\n\tfs.mu.Lock()\n\n\tfile, err := fs.lkr.LookupFile(path)\n\tif err == ie.ErrBadNode {\n\t\tfs.mu.Unlock()\n\t\treturn nil, ie.NoSuchFile(path)\n\t}\n\n\tif err != nil {\n\t\tfs.mu.Unlock()\n\t\treturn nil, err\n\t}\n\n\t// Copy all attributes, since accessing them beyond the lock might be racy.\n\tsize := file.Size()\n\tbackendHash := file.BackendHash().Clone()\n\tkey := make([]byte, len(file.Key()))\n\tisRaw := file.IsRaw()\n\tcopy(key, file.Key())\n\n\tfs.mu.Unlock()\n\n\treturn fs.catHash(backendHash, key, size, isRaw)\n}\n\n// NOTE: This method can be called without locking fs.mu!\nfunc (fs *FS) catHash(backendHash h.Hash, key []byte, size uint64, isRaw bool) (mio.Stream, error) {\n\trawStream, err := fs.bk.Cat(backendHash)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstream, err := mio.NewOutStream(rawStream, isRaw, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Truncate stream to file size. Data stream might be bigger\n\t// for example when fuse decided to truncate the file, but\n\t// did not flush it already.\n\treturn mio.LimitStream(stream, size), nil\n}\n\n// Open returns a file like object that can be used for modifying a file in memory.\n// If you want to have seekable read-only stream, use Cat(), it has less overhead.\nfunc (fs *FS) Open(path string) (*Handle, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tnd, err := fs.lkr.LookupNode(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfile, ok := nd.(*n.File)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"Can only open files: %v\", path)\n\t}\n\n\treturn newHandle(fs, file, fs.readOnly), nil\n}\n\n////////////////////\n// VCS OPERATIONS //\n////////////////////\n\n// MakeCommit bundles all staged changes into one commit described by `msg`.\n// If no changes were made since the last call to MakeCommit() ErrNoConflict\n// is returned.\nfunc (fs *FS) MakeCommit(msg string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\towner, err := fs.lkr.Owner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.lkr.MakeCommit(owner, msg)\n}\n\nfunc (fs *FS) isMove(nd n.ModNode) (bool, error) {\n\tcmt, err := fs.lkr.Status()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\twalker := vcs.NewHistoryWalker(fs.lkr, cmt, nd)\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\tif state.Mask == vcs.ChangeTypeNone {\n\t\t\tcontinue\n\t\t}\n\n\t\tif state.Mask&vcs.ChangeTypeMove != 0 {\n\t\t\treturn true, nil\n\t\t}\n\n\t\treturn false, nil\n\t}\n\n\treturn false, nil\n}\n\n// DeletedNodes returns all nodes under `root` that were deleted.\n// This does not include files that were moved. Note that you\n// cannot pass the paths of those files to methods like Cat(),\n// since they will refuse to work on deleted files.\nfunc (fs *FS) DeletedNodes(root string) ([]*StatInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\trootNd, err := fs.lkr.LookupNode(root)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnodes := []*StatInfo{}\n\terr = n.Walk(fs.lkr, rootNd, false, func(child n.Node) error {\n\t\tif child.Type() != n.NodeTypeGhost {\n\t\t\treturn nil\n\t\t}\n\n\t\tmodNd, ok := child.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tisMove, err := fs.isMove(modNd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !isMove {\n\t\t\tnodes = append(nodes, fs.nodeToStat(modNd))\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn nodes, nil\n}\n\n// Undelete tries to recover a file or directory that was previously deleted.\n// This will fail when being called on a regular file or directory.\n// You can obtain deleted paths by using DeletedNodes()\nfunc (fs *FS) Undelete(root string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tif err := vcs.Undelete(fs.lkr, root); err != nil {\n\t\treturn err\n\t}\n\n\tnd, err := fs.lkr.LookupModNode(root)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.pinner.PinNode(nd, false)\n}\n\n// Head translates the \"head\" symbol to a ref.\nfunc (fs *FS) Head() (string, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\thead, err := fs.lkr.Head()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn head.TreeHash().B58String(), nil\n}\n\n// Curr translates the \"curr\" symbol to a ref.\nfunc (fs *FS) Curr() (string, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tstatus, err := fs.lkr.Status()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn status.TreeHash().B58String(), nil\n}\n\nfunc commitToExternal(cmt *n.Commit, hashToRef map[string][]string) *Commit {\n\ttags := []string{}\n\tif hashToRef != nil {\n\t\ttags = hashToRef[cmt.TreeHash().B58String()]\n\t}\n\n\treturn &Commit{\n\t\tHash:  cmt.TreeHash().Clone(),\n\t\tMsg:   cmt.Message(),\n\t\tTags:  tags,\n\t\tDate:  cmt.ModTime(),\n\t\tIndex: cmt.Index(),\n\t}\n}\n\n// History returns all modifications of a node with one entry per commit.\nfunc (fs *FS) History(path string) ([]Change, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tnd, err := fs.lkr.LookupModNode(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstatus, err := fs.lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thist, err := vcs.History(fs.lkr, nd, status, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thashToRef, err := fs.buildCommitHashToRefTable()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentries := []Change{}\n\tfor _, change := range hist {\n\t\thead := commitToExternal(change.Head, hashToRef)\n\n\t\tvar next *Commit\n\t\tif change.Next != nil {\n\t\t\tnext = commitToExternal(change.Next, hashToRef)\n\t\t}\n\n\t\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(change.Curr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tentries = append(entries, Change{\n\t\t\tPath:            change.Curr.Path(),\n\t\t\tChange:          change.Mask.String(),\n\t\t\tIsPinned:        isPinned,\n\t\t\tIsExplicit:      isExplicit,\n\t\t\tHead:            head,\n\t\t\tNext:            next,\n\t\t\tMovedTo:         change.MovedTo,\n\t\t\tWasPreviouslyAt: change.WasPreviouslyAt,\n\t\t})\n\t}\n\n\treturn entries, nil\n}\n\nfunc (fs *FS) buildSyncCfg() (*vcs.SyncOptions, error) {\n\t// Helper method to easily pin depending on a condition variable\n\tdoPinOrUnpin := func(doPin, explicit bool, nd n.ModNode) {\n\t\tfile, ok := nd.(*n.File)\n\t\tif !ok {\n\t\t\t// Non-files are simply ignored.\n\t\t\treturn\n\t\t}\n\n\t\top := fs.pinner.UnpinNode\n\t\topName := \"unpin\"\n\t\tif doPin {\n\t\t\top = fs.pinner.PinNode\n\t\t\topName = \"pin\"\n\t\t}\n\n\t\tif err := op(file, explicit); err != nil {\n\t\t\tlog.Warningf(\"Failed to %s (hash: %v)\", opName, file.BackendHash())\n\t\t}\n\t}\n\n\tconflictStrategy := vcs.ConflictStrategyFromString(\n\t\tfs.cfg.String(\"sync.conflict_strategy\"),\n\t)\n\n\tif conflictStrategy == vcs.ConflictStragetyUnknown {\n\t\treturn nil, fmt.Errorf(\"unknown conflict strategy: %v\", conflictStrategy)\n\t}\n\n\treturn &vcs.SyncOptions{\n\t\tConflictStrategy: conflictStrategy,\n\t\tIgnoreDeletes:    fs.cfg.Bool(\"sync.ignore_removed\"),\n\t\tIgnoreMoves:      fs.cfg.Bool(\"sync.ignore_moved\"),\n\t\tOnAdd: func(newNd n.ModNode) bool {\n\t\t\tif fs.cfg.Bool(\"sync.pin_added\") {\n\t\t\t\t// do pinning and more importantly caching\n\t\t\t\tdoPinOrUnpin(true, false, newNd)\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\tOnRemove: func(oldNd n.ModNode) bool {\n\t\t\tdoPinOrUnpin(false, true, oldNd)\n\t\t\treturn true\n\t\t},\n\t\t// OnMerge: func(newNd, oldNd n.ModNode) bool {\n\t\tOnMerge: func(nd n.ModNode, isGet bool, ndPinStats *vcs.PinStats) bool {\n\t\t\t// During merge we are acting on the same node\n\t\t\t// but we are modifying its hashes thus we would not be\n\t\t\t// able to get node pins by reusing node itself.\n\t\t\t// Our main goal is either get pin info from nd node\n\t\t\t// or to set it according to the previously obtained info.\n\t\t\tif isGet {\n\t\t\t\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(nd)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Warnf(\n\t\t\t\t\t\t\"failed to check pin status of old node `%s` (%v)\",\n\t\t\t\t\t\tnd.Path(),\n\t\t\t\t\t\tnd.BackendHash(),\n\t\t\t\t\t)\n\n\t\t\t\t\t// better don't change something.\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tndPinStats.Pinned = isPinned\n\t\t\t\tndPinStats.Explicit = isExplicit\n\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// If are not getting then we are setting\n\t\t\t// Pin new node with old pin state:\n\t\t\tif ndPinStats.Pinned {\n\t\t\t\t// Preserving the state\n\t\t\t\tdoPinOrUnpin(ndPinStats.Pinned, ndPinStats.Explicit, nd)\n\t\t\t} else {\n\t\t\t\t// if it was unpinned we are forcing it to be unppinned\n\t\t\t\tdoPinOrUnpin(false, true, nd)\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\tOnConflict: func(src, dst n.ModNode) bool {\n\t\t\t// Don't need to do something,\n\t\t\t// conflict files will not get a pin by default.\n\t\t\treturn true\n\t\t},\n\t}, nil\n}\n\n// SyncOption is a option that can be passed to Sync.\ntype SyncOption func(cfg *vcs.SyncOptions)\n\n// SyncOptMessage sets the commit message that will be\n// given to MakeCommit() on a sync commit.\nfunc SyncOptMessage(msg string) SyncOption {\n\treturn func(cfg *vcs.SyncOptions) {\n\t\tcfg.Message = msg\n\t}\n}\n\n// SyncOptConflictStrategy overwrites the conflict strategy\n// (see also fs.sync.conflict_strategy which acts as default)\nfunc SyncOptConflictStrategy(strategy string) SyncOption {\n\treturn func(cfg *vcs.SyncOptions) {\n\t\tif strategy == \"\" {\n\t\t\treturn\n\t\t}\n\n\t\tcfg.ConflictStrategy = vcs.ConflictStrategyFromString(strategy)\n\t}\n}\n\n// SyncOptReadOnlyFolders allows you to set a set of folders\n// that will be protected from modifications by the sync.\nfunc SyncOptReadOnlyFolders(folders []string) SyncOption {\n\treturn func(cfg *vcs.SyncOptions) {\n\t\tif cfg.ReadOnlyFolders == nil {\n\t\t\tcfg.ReadOnlyFolders = make(map[string]bool)\n\t\t}\n\n\t\tfor _, folder := range folders {\n\t\t\tcfg.ReadOnlyFolders[folder] = true\n\t\t}\n\t}\n}\n\n// SyncOptConflictgStrategyPerFolder allows you to set a specific conflict\n// resolution strategy for specific folders. The key of the map is the folder,\n// the key is the conflict strategy name.\nfunc SyncOptConflictgStrategyPerFolder(strategies map[string]string) SyncOption {\n\treturn func(cfg *vcs.SyncOptions) {\n\t\tif cfg.ConflictStrategyPerFolder == nil {\n\t\t\tcfg.ConflictStrategyPerFolder = make(map[string]vcs.ConflictStrategy)\n\t\t}\n\n\t\tfor folder, strategy := range strategies {\n\t\t\tcs := vcs.ConflictStrategyFromString(strategy)\n\t\t\tif cs == vcs.ConflictStragetyUnknown {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcfg.ConflictStrategyPerFolder[folder] = cs\n\t\t}\n\t}\n}\n\n// Sync will synchronize the state of two filesystems.\n// If one of filesystems have unstaged changes, they will be committted first.\n// If our filesystem was changed by Sync(), a new merge commit will also be created.\nfunc (fs *FS) Sync(remote *FS, options ...SyncOption) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\t// build default config from the defaults/base config:\n\tsyncCfg, err := fs.buildSyncCfg()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, option := range options {\n\t\toption(syncCfg)\n\t}\n\n\treturn vcs.Sync(remote.lkr, fs.lkr, syncCfg)\n}\n\n// MakeDiff will return a diff between `headRevOwn` and `headRevRemote`.\n// `remote` is the filesystem `headRevRemote` belongs to and may be the same as `fs`.\nfunc (fs *FS) MakeDiff(remote *FS, headRevOwn, headRevRemote string) (*Diff, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tsrcHead, err := parseRev(remote.lkr, headRevRemote)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"parse remote ref\")\n\t}\n\n\tdstHead, err := parseRev(fs.lkr, headRevOwn)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"parse own ref\")\n\t}\n\n\tsyncCfg, err := fs.buildSyncCfg()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trealDiff, err := vcs.MakeDiff(remote.lkr, fs.lkr, srcHead, dstHead, syncCfg)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"make diff\")\n\t}\n\n\t// \"fake\" is the diff that we give to the outside.\n\t// Internally we have a bit more knowledge.\n\tfakeDiff := &Diff{}\n\n\t// Convert the simple slice parts:\n\tfor _, nd := range realDiff.Added {\n\t\tfakeDiff.Added = append(fakeDiff.Added, *fs.nodeToStat(nd))\n\t}\n\n\tfor _, nd := range realDiff.Ignored {\n\t\tfakeDiff.Ignored = append(fakeDiff.Ignored, *fs.nodeToStat(nd))\n\t}\n\n\tfor _, nd := range realDiff.Removed {\n\t\tfakeDiff.Removed = append(fakeDiff.Removed, *fs.nodeToStat(nd))\n\t}\n\n\tfor _, nd := range realDiff.Missing {\n\t\tfakeDiff.Missing = append(fakeDiff.Missing, *fs.nodeToStat(nd))\n\t}\n\n\t// And also convert the slightly more complex pairs:\n\tfor _, pair := range realDiff.Moved {\n\t\tfakeDiff.Moved = append(fakeDiff.Moved, DiffPair{\n\t\t\tSrc: *fs.nodeToStat(pair.Src),\n\t\t\tDst: *fs.nodeToStat(pair.Dst),\n\t\t})\n\t}\n\n\tfor _, pair := range realDiff.Merged {\n\t\tfakeDiff.Merged = append(fakeDiff.Merged, DiffPair{\n\t\t\tSrc: *fs.nodeToStat(pair.Src),\n\t\t\tDst: *fs.nodeToStat(pair.Dst),\n\t\t})\n\t}\n\n\tfor _, pair := range realDiff.Conflict {\n\t\tfakeDiff.Conflict = append(fakeDiff.Conflict, DiffPair{\n\t\t\tSrc: *fs.nodeToStat(pair.Src),\n\t\t\tDst: *fs.nodeToStat(pair.Dst),\n\t\t})\n\t}\n\n\treturn fakeDiff, nil\n}\n\nfunc (fs *FS) buildCommitHashToRefTable() (map[string][]string, error) {\n\tnames, err := fs.lkr.ListRefs()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thashToRef := make(map[string][]string)\n\tfor _, name := range names {\n\t\tcmt, err := fs.lkr.ResolveRef(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif cmt != nil {\n\t\t\tkey := cmt.TreeHash().B58String()\n\t\t\thashToRef[key] = append(hashToRef[key], name)\n\t\t}\n\t}\n\n\treturn hashToRef, nil\n}\n\n// Log returns a list of commits starting with the staging commit until the\n// initial commit. For each commit, metadata is collected and fn is called.\n// The log starts at the revision pointed to by `head`.\n// If `head` is an empty string, \"curr\" is assumed.\nfunc (fs *FS) Log(head string, fn func(c *Commit) error) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tvar (\n\t\theadCmt *n.Commit\n\t\terr     error\n\t)\n\n\tif head == \"\" {\n\t\theadCmt, err = fs.lkr.Status()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\theadCmt, err = parseRev(fs.lkr, head)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\thashToRef, err := fs.buildCommitHashToRefTable()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn c.Log(fs.lkr, headCmt, func(cmt *n.Commit) error {\n\t\treturn fn(commitToExternal(cmt, hashToRef))\n\t})\n}\n\n// Reset restores the state of `path` to the state in `rev`.\nfunc (fs *FS) Reset(path, rev string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif fs.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tif path == \"/\" || path == \"\" {\n\t\treturn fs.checkout(rev, false)\n\t}\n\n\tcmt, err := parseRev(fs.lkr, rev)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\toldNode, err := vcs.ResetNode(fs.lkr, cmt, path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// The old node does not necessarily exist:\n\tif oldNode != nil {\n\t\tif err := fs.pinner.UnpinNode(oldNode, false); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Cannot (un)pin non-existing file anymore.\n\tnewNode, err := fs.lkr.LookupNode(path)\n\tif ie.IsNoSuchFileError(err) {\n\t\treturn nil\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.pinner.PinNode(newNode, false)\n}\n\n// Checkout reverts all state to the commit referenced by `rev`.\n// If `force` is true a non-empty staging area will be overwritten.\nfunc (fs *FS) Checkout(rev string, force bool) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\treturn fs.checkout(rev, force)\n}\n\nfunc (fs *FS) checkout(rev string, force bool) error {\n\tcmt, err := parseRev(fs.lkr, rev)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.lkr.CheckoutCommit(cmt, force)\n}\n\n// Tag saves a human readable name for the revision pointed to by `rev`.\n// There are three pre-defined tags available:\n//\n// - HEAD: The last full commit.\n// - CURR: The current commit (== staging commit)\n// - INIT: the initial commit.\n//\n// The tagname is case-insensitive.\nfunc (fs *FS) Tag(rev, name string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tcmt, err := parseRev(fs.lkr, rev)\n\tif err != nil {\n\t\treturn e.Wrap(err, \"parse ref\")\n\t}\n\n\treturn fs.lkr.SaveRef(name, cmt)\n}\n\n// RemoveTag removes a previously created tag.\nfunc (fs *FS) RemoveTag(name string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\treturn fs.lkr.RemoveRef(name)\n}\n\n// FilesByContent returns all stat info for the content hashes referenced in\n// `contents`.  The return value is a map with the content hash as key and a\n// StatInfo describing the exact file content.\nfunc (fs *FS) FilesByContent(contents []h.Hash) (map[string]StatInfo, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tfiles, err := fs.lkr.FilesByContents(contents)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfos := make(map[string]StatInfo)\n\tfor content, file := range files {\n\t\tinfos[content] = *fs.nodeToStat(file)\n\t}\n\n\treturn infos, nil\n}\n\n// ScheduleGCRun runs GC run at the next possible time.\n// This method does not block until the run is finished.\nfunc (fs *FS) ScheduleGCRun() {\n\t// Putting a value into gcControl might block,\n\t// so better do it in the background.\n\tgo func() {\n\t\tfs.gcControl <- true\n\t}()\n}\n\nfunc (fs *FS) writeLastPatchIndex(index int64) error {\n\tfromIndexData := []byte(strconv.FormatInt(index, 10))\n\treturn fs.lkr.MetadataPut(\"fs.last-merge-index\", fromIndexData)\n}\n\nfunc (fs *FS) autoCommitStagedChanges(remoteName string) error {\n\thaveStagedChanges, err := fs.lkr.HaveStagedChanges()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Commit changes if there are any.\n\t// This is a little unfortunate implication on how the current\n\t// way of sending getting patches work. Creating a patch itself\n\t// works with a staging commit, but the versioning does not work\n\t// anymore then, since the same version might have a different\n\t// set of changes.\n\tif !haveStagedChanges {\n\t\treturn nil\n\t}\n\n\towner, err := fs.lkr.Owner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmsg := fmt.Sprintf(\"auto commit on metadata request from »%s«\", remoteName)\n\treturn fs.lkr.MakeCommit(owner, msg)\n\n}\n\n// MakePatch creates a binary patch with all file changes starting with\n// `fromRev`. Note that commit information is not exported, only individual\n// file and directory changes.\n//\n// The byte structured returned by this method may change at any point\n// and may not be relied upon.\n//\n// The `remoteName` is the name of the remote we're creating the patch for.\n// It's only used for display purpose in the commit message.\nfunc (fs *FS) MakePatch(fromRev string, folders []string, remoteName string) ([]byte, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif err := fs.autoCommitStagedChanges(remoteName); err != nil {\n\t\treturn nil, err\n\t}\n\n\tfrom, err := parseRev(fs.lkr, fromRev)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpatch, err := vcs.MakePatch(fs.lkr, from, folders)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmsg, err := patch.ToCapnp()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg.Marshal()\n}\n\n// MakePatches works like MakePatch but produces individual patches for commit.\n// This allows to persist the history to some extent.\nfunc (fs *FS) MakePatches(fromRev string, folders []string, remoteName string) ([]byte, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tif err := fs.autoCommitStagedChanges(remoteName); err != nil {\n\t\treturn nil, err\n\t}\n\n\tfrom, err := parseRev(fs.lkr, fromRev)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpatches, err := vcs.MakePatches(fs.lkr, from, folders)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmsg, err := patches.ToCapnp()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg.Marshal()\n}\n\n// ApplyPatch reads the binary patch coming from MakePatch and tries to apply it.\nfunc (fs *FS) ApplyPatch(data []byte) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tmsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpatch := &vcs.Patch{}\n\tif err := patch.FromCapnp(msg); err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.applyPatches(vcs.Patches{patch})\n}\n\n// ApplyPatches reads the binary patch coming from MakePatches and tries to apply them.\nfunc (fs *FS) ApplyPatches(data []byte) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tmsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpatches := &vcs.Patches{}\n\tif err := patches.FromCapnp(msg); err != nil {\n\t\treturn err\n\t}\n\n\treturn fs.applyPatches(*patches)\n}\n\nfunc (fs *FS) applyPatches(patches vcs.Patches) error {\n\towner, err := fs.lkr.Owner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thighestIndex := int64(-1)\n\tfor _, patch := range patches {\n\t\tif err := vcs.ApplyPatch(fs.lkr, patch); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif idx := patch.CurrIndex; highestIndex < idx {\n\t\t\thighestIndex = idx\n\t\t}\n\n\t\tcmtMsg := fmt.Sprintf(\"apply patch with %d changes\", len(patch.Changes))\n\t\tif err := fs.lkr.MakeCommit(owner, cmtMsg); err != nil {\n\t\t\tif err == ie.ErrNoChange {\n\t\t\t\t// Empty commits are totally possible.\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Remember what patch index we merged last.\n\t// This info can be read via LastPatchIndex() to determine\n\t// the next version to get from the remote.\n\tfromIndexData := []byte(strconv.FormatInt(highestIndex, 10))\n\treturn fs.lkr.MetadataPut(\"fs.last-merge-index\", fromIndexData)\n}\n\n// LastPatchIndex will return the current version of this filesystem\n// regarding patch state.\nfunc (fs *FS) LastPatchIndex() (int64, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tfromIndexData, err := fs.lkr.MetadataGet(\"fs.last-merge-index\")\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn -1, err\n\t}\n\n\t// If we did not merge yet with anyone we have to\n\t// ask for a full fetch.\n\tif err == db.ErrNoSuchKey {\n\t\treturn 0, nil\n\t}\n\n\treturn strconv.ParseInt(string(fromIndexData), 10, 64)\n}\n\n// CommitInfo returns detailed info about a certain commit.\nfunc (fs *FS) CommitInfo(rev string) (*Commit, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tcmt, err := parseRev(fs.lkr, rev)\n\tif cmt == nil || ie.IsErrNoSuchRef(err) {\n\t\treturn nil, nil\n\t}\n\n\thashToRef, err := fs.buildCommitHashToRefTable()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn commitToExternal(cmt, hashToRef), nil\n}\n\n// HaveStagedChanges returns true if there are changes that were not committed yet.\nfunc (fs *FS) HaveStagedChanges() (bool, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\treturn fs.lkr.HaveStagedChanges()\n}\n\n// IsCached will return true when the file is cached locally.\nfunc (fs *FS) IsCached(path string) (bool, error) {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\tnd, err := fs.lkr.LookupNode(path)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tif nd.Type() == n.NodeTypeDirectory && nd.NChildren() == 0 {\n\t\treturn true, nil\n\t}\n\n\ttotalCount := 0\n\tcachedCount := 0\n\terrNotCachedSentinel := errors.New(\"not cached found\")\n\n\terr = n.Walk(fs.lkr, nd, true, func(child n.Node) error {\n\t\tif child.Type() != n.NodeTypeFile {\n\t\t\treturn nil\n\t\t}\n\n\t\ttotalCount++\n\t\tisCached, err := fs.bk.IsCached(child.BackendHash())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif isCached {\n\t\t\t// Make sure that we do not count empty directories\n\t\t\t// as pinned nodes.\n\t\t\tcachedCount++\n\t\t} else {\n\t\t\t// Return a special error here to stop Walk() iterating.\n\t\t\t// One file is enough to stop IsCached() from being true.\n\t\t\treturn errNotCachedSentinel\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil && err != errNotCachedSentinel {\n\t\treturn false, err\n\t}\n\n\treturn cachedCount == totalCount, nil\n}\n\n// Hints returns the hint manager passed to NewFilesystem\nfunc (fs *FS) Hints() HintManager {\n\treturn fs.hintManager\n}\n"
  },
  {
    "path": "catfs/fs_test.go",
    "content": "package catfs\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"testing\"\n\t\"time\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/catfs/mio/chunkbuf\"\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/mdcache\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/repo/hints\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc init() {\n\tlog.SetLevel(log.WarnLevel)\n}\n\nfunc withDummyFSReadOnly(t *testing.T, readOnly bool, fn func(fs *FS)) {\n\tbackend := NewMemFsBackend()\n\towner := \"alice\"\n\n\tdbPath, err := ioutil.TempDir(\"\", \"brig-fs-test\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create temp dir: %v\", err)\n\t}\n\n\tdefer func() {\n\t\tif err := os.RemoveAll(dbPath); err != nil {\n\t\t\tt.Fatalf(\"Failed to clean up %s: %v\", dbPath, err)\n\t\t}\n\t}()\n\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\trequire.Nil(t, err)\n\n\tfsCfg := cfg.Section(\"fs\")\n\n\tmdc, err := mdcache.New(mdcache.Options{\n\t\tMaxMemoryUsage: 1024 * 1024,\n\t})\n\trequire.NoError(t, err)\n\n\tfs, err := NewFilesystem(\n\t\tbackend,\n\t\tdbPath,\n\t\towner,\n\t\treadOnly,\n\t\tfsCfg,\n\t\tnil,\n\t\tmdc,\n\t)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create filesystem: %v\", err)\n\t}\n\n\tfn(fs)\n\n\tif err := fs.Close(); err != nil {\n\t\tt.Fatalf(\"Failed to close filesystem: %v\", err)\n\t}\n}\n\nfunc withDummyFS(t *testing.T, fn func(fs *FS)) {\n\twithDummyFSReadOnly(t, false, fn)\n}\n\nfunc TestStat(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\t_, err := fs.Stat(\"/sub/x\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\tc.MustMkdir(t, fs.lkr, \"/sub\")\n\t\tfile := c.MustTouch(t, fs.lkr, \"/sub/x\", 1)\n\n\t\tinfo, err := fs.Stat(\"/sub/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, info.Path, \"/sub/x\")\n\t\trequire.Equal(t, info.IsDir, false)\n\t\trequire.Equal(t, info.Size, uint64(0))\n\t\trequire.Equal(t, info.Inode, file.Inode())\n\t\trequire.Equal(t, info.TreeHash, file.TreeHash())\n\n\t\tdata := make([]byte, 42)\n\t\trequire.Nil(t, fs.Stage(\"/sub/x\", bytes.NewReader(data)))\n\n\t\tinfo, err = fs.Stat(\"/sub/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, info.Size, uint64(len(data)))\n\t\trequire.Equal(t, info.TreeHash, file.TreeHash())\n\n\t\tinfo, err = fs.Stat(\"/sub\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, info.Path, \"/sub\")\n\t\trequire.Equal(t, info.IsDir, true)\n\t\trequire.Equal(t, uint64(len(data)), info.Size)\n\t})\n}\n\nfunc TestLogAndTag(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\tcmts := []*n.Commit{}\n\t\tfor idx := 0; idx < 10; idx++ {\n\t\t\t_, cmt := c.MustTouchAndCommit(t, fs.lkr, \"/x\", byte(idx))\n\n\t\t\thash := cmt.TreeHash().B58String()\n\t\t\tif err := fs.Tag(hash, fmt.Sprintf(\"tag%d\", idx)); err != nil {\n\t\t\t\tt.Fatalf(\"Failed to tag %v: %v\", hash, err)\n\t\t\t}\n\n\t\t\tcmts = append(cmts, cmt)\n\t\t}\n\n\t\tstatus, err := fs.lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\tcmts = append(cmts, status)\n\n\t\tlog := []*Commit{}\n\t\trequire.Nil(t, fs.Log(\"\", func(c *Commit) error {\n\t\t\tlog = append(log, c)\n\t\t\treturn nil\n\t\t}))\n\n\t\tfor idx, entry := range log {\n\t\t\tridx := len(cmts) - idx - 1\n\t\t\tcmt := cmts[ridx]\n\t\t\trequire.Equal(t, entry.Hash, cmt.TreeHash())\n\n\t\t\tmsg := fmt.Sprintf(\"cmt %d\", ridx)\n\t\t\ttags := []string{fmt.Sprintf(\"tag%d\", ridx)}\n\n\t\t\t// 0 is status, 1 is head, 10 is initial\n\t\t\tswitch idx {\n\t\t\tcase 0:\n\t\t\t\ttags = []string{\"curr\"}\n\t\t\t\tmsg = \"\"\n\t\t\tcase 1:\n\t\t\t\ttags = append(tags, \"head\")\n\t\t\tcase 10:\n\t\t\t\ttags = append(tags, \"init\")\n\t\t\t}\n\n\t\t\tsort.Sort(sort.Reverse(sort.StringSlice(entry.Tags)))\n\t\t\trequire.EqualValues(t, tags, entry.Tags)\n\t\t\trequire.Equal(t, entry.Msg, msg)\n\t\t}\n\t})\n}\n\nvar TestKey = []byte(\"01234567890ABCDE01234567890ABCDE\")\n\nfunc TestCat(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\traw := []byte{1, 2, 3}\n\t\trinRaw := bytes.NewBuffer(raw)\n\n\t\trin, isRaw, err := mio.NewInStream(\n\t\t\trinRaw,\n\t\t\t\"\",\n\t\t\tTestKey,\n\t\t\thints.Default(),\n\t\t)\n\t\trequire.Nil(t, err)\n\n\t\tbackendHash, err := fs.bk.Add(rin)\n\t\trequire.Nil(t, err)\n\n\t\tcontentHash := h.TestDummy(t, 23)\n\n\t\t// Stage the file manually (without fs.Stage)\n\t\t_, err = c.Stage(\n\t\t\tfs.lkr,\n\t\t\t\"/x\",\n\t\t\tcontentHash,\n\t\t\tbackendHash,\n\t\t\tuint64(len(raw)),\n\t\t\tint64(len(raw)),\n\t\t\tTestKey,\n\t\t\ttime.Now(),\n\t\t\tisRaw,\n\t\t)\n\t\trequire.Nil(t, err)\n\n\t\t// Cat the file again:\n\t\tstream, err := fs.Cat(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\t// Check if the returned stream really contains 1,2,3\n\t\tresult := bytes.NewBuffer(nil)\n\t\t_, err = stream.WriteTo(result)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, result.Bytes(), raw)\n\t})\n}\n\nfunc TestStageBasic(t *testing.T) {\n\tt.Parallel()\n\n\tlog.SetLevel(log.DebugLevel)\n\ttcs := []int64{\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t8 * 1024,\n\t\t64*1024 + 1,\n\t\t4 * 1024 * 1024,\n\t}\n\n\tfor _, size := range tcs {\n\t\tt.Run(fmt.Sprintf(\"size-%d\", size), func(t *testing.T) {\n\t\t\twithDummyFS(t, func(fs *FS) {\n\t\t\t\ttc := testutil.CreateDummyBuf(size)\n\t\t\t\tbuf := chunkbuf.NewChunkBuffer(tc)\n\t\t\t\trequire.NoError(t, fs.Stage(\"/x\", buf))\n\n\t\t\t\tstream, err := fs.Cat(\"/x\")\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\tdata, err := ioutil.ReadAll(stream)\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\trequire.Equal(t, len(tc), len(data))\n\t\t\t\trequire.Equal(t, tc, data)\n\t\t\t\trequire.NoError(t, stream.Close())\n\n\t\t\t\tfile, err := fs.lkr.LookupFile(\"/x\")\n\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\tkey := file.Key()\n\t\t\t\toldKey := make([]byte, len(key))\n\t\t\t\toldSize := file.Size()\n\t\t\t\tcopy(oldKey, key)\n\n\t\t\t\t// Also insert some more data to modify an existing file.\n\t\t\t\tnextData := []byte{6, 6, 6, 6, 6, 6}\n\t\t\t\trequire.NoError(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer((nextData))))\n\t\t\t\tstream, err = fs.Cat(\"/x\")\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tdata, err = ioutil.ReadAll(stream)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Equal(t, data, nextData)\n\t\t\t\trequire.NoError(t, stream.Close())\n\n\t\t\t\t// Check that the key did not change during modifying an existing file.\n\t\t\t\t// This is only true if both of the sizes are not equal to zero\n\t\t\t\t// Recall that 0 sized file has emptyFileEncryptionKey\n\t\t\t\tfile, err = fs.lkr.LookupFile(\"/x\")\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\tif (oldSize != 0 && file.Size() != 0) || (oldSize == file.Size()) {\n\t\t\t\t\trequire.Equal(t, file.Key(), oldKey)\n\t\t\t\t} else {\n\t\t\t\t\trequire.NotEqual(t, file.Key(), oldKey)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestHistory(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.MakeCommit(\"hello\"))\n\t\trequire.Nil(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer([]byte{1})))\n\t\trequire.Nil(t, fs.MakeCommit(\"1\"))\n\t\trequire.Nil(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer([]byte{2})))\n\t\trequire.Nil(t, fs.MakeCommit(\"2\"))\n\t\trequire.Nil(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer([]byte{3})))\n\t\trequire.Nil(t, fs.MakeCommit(\"3\"))\n\n\t\thist, err := fs.History(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tlog := []*Commit{}\n\t\trequire.Nil(t, fs.Log(\"\", func(c *Commit) error {\n\t\t\tlog = append(log, c)\n\t\t\treturn nil\n\t\t}))\n\n\t\tfor idx, entry := range hist {\n\t\t\trequire.Equal(t, entry.Path, \"/x\")\n\n\t\t\tchange := \"none\"\n\t\t\tswitch idx {\n\t\t\tcase 1, 2:\n\t\t\t\tchange = \"modified\"\n\t\t\tcase 3:\n\t\t\t\tchange = \"added\"\n\t\t\t}\n\n\t\t\trequire.Equal(t, entry.Change, change)\n\t\t\trequire.Equal(\n\t\t\t\tt,\n\t\t\t\tlog[idx].Hash.B58String(),\n\t\t\t\tentry.Head.Hash.B58String(),\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc mustReadPath(t *testing.T, fs *FS, path string) []byte {\n\tstream, err := fs.Cat(path)\n\trequire.Nil(t, err)\n\n\tdata, err := ioutil.ReadAll(stream)\n\trequire.Nil(t, err)\n\n\treturn data\n}\n\nfunc TestReset(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.MakeCommit(\"hello\"))\n\n\t\trequire.Nil(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer([]byte{1})))\n\t\trequire.Nil(t, fs.MakeCommit(\"1\"))\n\n\t\t// Modify on stage:\n\t\trequire.Nil(t, fs.Stage(\"/x\", chunkbuf.NewChunkBuffer([]byte{2})))\n\t\trequire.Nil(t, fs.Reset(\"/x\", \"HEAD\"))\n\n\t\tdata := mustReadPath(t, fs, \"/x\")\n\t\trequire.Equal(t, data[0], byte(1))\n\t\tif err := fs.MakeCommit(\"2\"); err != ie.ErrNoChange {\n\t\t\tt.Fatalf(\"Reset did clearly not reset stuff... (something changed)\")\n\t\t}\n\n\t\t// Remove the file and then reset it (like git checkout -- file)\n\t\trequire.Nil(t, fs.Remove(\"/x\"))\n\t\tif _, err := fs.Cat(\"/x\"); !ie.IsNoSuchFileError(err) {\n\t\t\tt.Fatalf(\"Something wrong with removed node\")\n\t\t}\n\n\t\t// Check if we can recover the delete:\n\t\trequire.Nil(t, fs.Reset(\"/x\", \"HEAD\"))\n\t\tdata = mustReadPath(t, fs, \"/x\")\n\t\trequire.Equal(t, data[0], byte(1))\n\n\t\t// Reset to something non-existing -> error.\n\t\trequire.NotNil(t, fs.Reset(\"/x\", \"DEADBEEF\"))\n\n\t\t// Reset to the very first commit - node did not exist back then.\n\t\trequire.Nil(t, fs.Reset(\"/x\", \"INIT\"))\n\n\t\t// Should not exist anymore currently.\n\t\t_, err := fs.Stat(\"/x\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\t})\n}\n\nfunc TestCheckout(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.MakeCommit(\"hello\"))\n\t\thello, err := fs.Head()\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, fs.Touch(\"/x\"))\n\t\trequire.Nil(t, fs.Touch(\"/y\"))\n\t\trequire.Nil(t, fs.Touch(\"/z\"))\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1, 2, 3})))\n\n\t\trequire.Nil(t, fs.Remove(\"/y\"))\n\t\trequire.Nil(t, fs.Move(\"/z\", \"/a\"))\n\n\t\trequire.Nil(t, fs.MakeCommit(\"world\"))\n\t\tworld, err := fs.Head()\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, fs.Touch(\"/new\"))\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{4, 5, 6})))\n\n\t\terr = fs.Checkout(world, false)\n\t\trequire.Equal(t, err, ie.ErrStageNotEmpty)\n\n\t\terr = fs.Checkout(world, true)\n\t\trequire.Nil(t, err)\n\n\t\t_, err = fs.Stat(\"/new\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\txStream, err := fs.Cat(\"/x\")\n\t\trequire.Nil(t, err)\n\t\tdata, err := ioutil.ReadAll(xStream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, data, []byte{1, 2, 3})\n\n\t\terr = fs.Checkout(hello, true)\n\t\trequire.Nil(t, err)\n\n\t\t_, err = fs.Stat(\"/x\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\t})\n}\n\nfunc TestExportImport(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.MakeCommit(\"hello world\"))\n\n\t\t// Add a single file:\n\t\tbuf := chunkbuf.NewChunkBuffer([]byte{1, 2, 3})\n\t\trequire.Nil(t, fs.Stage(\"/x\", buf))\n\t\trequire.Nil(t, fs.MakeCommit(\"touchy touchy\"))\n\n\t\t// Stage something to see if this will also be exported\n\t\t// (it most defintely should)\n\t\tbuf = chunkbuf.NewChunkBuffer([]byte{3, 2, 1})\n\t\trequire.Nil(t, fs.Stage(\"/x\", buf))\n\n\t\tmem := &bytes.Buffer{}\n\t\trequire.Nil(t, fs.Export(mem))\n\n\t\t// Check if we can import all this data:\n\t\twithDummyFS(t, func(newFs *FS) {\n\t\t\trequire.Nil(t, fs.Import(mem))\n\n\t\t\tstream, err := fs.Cat(\"/x\")\n\t\t\trequire.Nil(t, err)\n\n\t\t\tdata, err := ioutil.ReadAll(stream)\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, []byte{3, 2, 1}, data)\n\t\t})\n\t})\n}\n\nfunc TestSync(t *testing.T) {\n\tt.Parallel()\n\n\t// There are a lot more tests in vcs/*\n\t// This is only a test to see if the high-level api is working.\n\twithDummyFS(t, func(fsa *FS) {\n\t\trequire.Nil(t, fsa.MakeCommit(\"hello a\"))\n\t\twithDummyFS(t, func(fsb *FS) {\n\t\t\trequire.Nil(t, fsb.MakeCommit(\"hello b\"))\n\t\t\trequire.Nil(t, fsa.Sync(fsb))\n\n\t\t\trequire.Nil(t, fsb.Stage(\"/x\", bytes.NewReader([]byte{1})))\n\t\t\trequire.Nil(t, fsb.Stage(\"/y\", bytes.NewReader([]byte{2})))\n\t\t\trequire.Nil(t, fsb.Stage(\"/z\", bytes.NewReader([]byte{3})))\n\n\t\t\t// Actually sync the results:\n\t\t\trequire.Nil(t, fsa.Sync(fsb))\n\n\t\t\tinfo, err := fsa.Stat(\"/x\")\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, info.Path, \"/x\")\n\n\t\t\tinfo, err = fsa.Stat(\"/y\")\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, info.Path, \"/y\")\n\n\t\t\tinfo, err = fsa.Stat(\"/z\")\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, info.Path, \"/z\")\n\t\t})\n\t})\n}\n\nfunc TestMakeDiff(t *testing.T) {\n\tt.Parallel()\n\n\t// There are a lot more tests in vcs/*\n\t// This is only a test for the high-level api.\n\twithDummyFS(t, func(fsa *FS) {\n\t\tfsaX := c.MustTouch(t, fsa.lkr, \"/x\", 1)\n\t\tfsaY := c.MustTouch(t, fsa.lkr, \"/y\", 2)\n\t\tfsaZ := c.MustTouch(t, fsa.lkr, \"/z\", 3)\n\n\t\trequire.Nil(t, fsa.MakeCommit(\"hello a\"))\n\t\twithDummyFS(t, func(fsb *FS) {\n\t\t\trequire.Nil(t, fsb.MakeCommit(\"hello b\"))\n\t\t\trequire.Nil(t, fsa.Sync(fsb))\n\n\t\t\tfsbX := c.MustTouch(t, fsb.lkr, \"/x\", 4)\n\t\t\tc.MustTouch(t, fsb.lkr, \"/y\", 5)\n\t\t\tfsbZ := c.MustTouch(t, fsb.lkr, \"/z\", 6)\n\t\t\tfsbA := c.MustTouch(t, fsb.lkr, \"/a\", 7)\n\n\t\t\trequire.Nil(t, fsb.MakeCommit(\"stuff\"))\n\t\t\trequire.Nil(t, fsb.Remove(\"/y\"))\n\t\t\trequire.Nil(t, fsb.MakeCommit(\"before diff\"))\n\n\t\t\t// Use the upwards notation:\n\t\t\tdiff, err := fsa.MakeDiff(fsb, \"head^^^\", \"curr\")\n\t\t\trequire.Nil(t, err)\n\n\t\t\trequire.Equal(t, []StatInfo{*fsb.nodeToStat(fsbA)}, diff.Added)\n\t\t\trequire.Equal(t, []StatInfo{*fsa.nodeToStat(fsaY)}, diff.Removed)\n\t\t\trequire.Equal(t, []DiffPair{{\n\t\t\t\tSrc: *fsb.nodeToStat(fsbX),\n\t\t\t\tDst: *fsa.nodeToStat(fsaX),\n\t\t\t}, {\n\t\t\t\tSrc: *fsb.nodeToStat(fsbZ),\n\t\t\t\tDst: *fsa.nodeToStat(fsaZ),\n\t\t\t}}, diff.Conflict)\n\t\t})\n\t})\n}\n\nfunc TestPin(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\t// NOTE: Both files have the same content.\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1})))\n\t\trequire.Nil(t, fs.Stage(\"/y\", bytes.NewReader([]byte{1})))\n\n\t\trequire.Nil(t, fs.Unpin(\"/x\", \"curr\", true))\n\t\trequire.Nil(t, fs.Unpin(\"/y\", \"curr\", true))\n\n\t\tisPinned, isExplicit, err := fs.IsPinned(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, fs.Pin(\"/x\", \"curr\", true))\n\n\t\tisPinned, isExplicit, err = fs.IsPinned(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\tisPinned, isExplicit, err = fs.IsPinned(\"/\")\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, fs.Pin(\"/\", \"curr\", true))\n\n\t\tisPinned, isExplicit, err = fs.IsPinned(\"/\")\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\trequire.Nil(t, fs.Unpin(\"/\", \"curr\", true))\n\n\t\tisPinned, isExplicit, err = fs.IsPinned(\"/\")\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\tisPinned, isExplicit, err = fs.IsPinned(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\t})\n}\n\nfunc TestMkdir(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\terr := fs.Mkdir(\"/a/b/c/d\", false)\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\t_, err = fs.Stat(\"/a\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\terr = fs.Mkdir(\"/a/b/c/d\", true)\n\t\trequire.Nil(t, err)\n\n\t\tinfo, err := fs.Stat(\"/a\")\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, info.IsDir)\n\n\t\t// Check that it still works if the directory exists\n\t\terr = fs.Mkdir(\"/a/b/c/d\", false)\n\t\trequire.Nil(t, err)\n\n\t\terr = fs.Mkdir(\"/a/b/c/d\", true)\n\t\trequire.Nil(t, err)\n\n\t\terr = fs.Mkdir(\"/a/b/c\", false)\n\t\trequire.Nil(t, err)\n\t})\n}\n\nfunc TestMove(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Touch(\"/x\"))\n\t\trequire.Nil(t, fs.Move(\"/x\", \"/y\"))\n\n\t\t_, err := fs.Stat(\"/x\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\tinfo, err := fs.Stat(\"/y\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, info.Path, \"/y\")\n\t\trequire.False(t, info.IsDir)\n\t})\n}\n\nfunc TestTouch(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.NoError(t, fs.Touch(\"/y\"))\n\t\tyInfo, err := fs.Stat(\"/y\")\n\t\trequire.NoError(t, err)\n\n\t\t// Check that the empty file has emptyFileEncryptionKey\n\t\trequire.Equal(t, yInfo.Key, emptyFileEncryptionKey())\n\n\t\trequire.NoError(t, fs.Touch(\"/x\"))\n\t\toldInfo, err := fs.Stat(\"/x\")\n\t\trequire.NoError(t, err)\n\n\t\t// Double Check that the empty file has emptyFileEncryptionKey\n\t\trequire.Equal(t, oldInfo.Key, emptyFileEncryptionKey())\n\n\t\t// Check that two empty files have same backend hash\n\t\trequire.Equal(t, oldInfo.BackendHash, yInfo.BackendHash)\n\n\t\t// Check that two empty files have same conternt hash\n\t\trequire.Equal(t, oldInfo.ContentHash, yInfo.ContentHash)\n\n\t\trequire.NoError(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1, 2, 3})))\n\n\t\trequire.NoError(t, fs.Touch(\"/x\"))\n\t\tnewInfo, err := fs.Stat(\"/x\")\n\t\trequire.NoError(t, err)\n\n\t\t// Check that the non empty file encryption key is different from emptyFileEncryptionKey\n\t\trequire.NotEqual(t, newInfo.Key, emptyFileEncryptionKey())\n\n\t\t// Check that the timestamp advanced only.\n\t\trequire.True(t, oldInfo.ModTime.Before(newInfo.ModTime))\n\n\t\t// Also check that the content was not deleted:\n\t\tstream, err := fs.Cat(\"/x\")\n\t\trequire.NoError(t, err)\n\n\t\tdata, err := ioutil.ReadAll(stream)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, data, []byte{1, 2, 3})\n\n\t\trequire.NoError(t, stream.Close())\n\t})\n}\n\nfunc TestHead(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\t_, err := fs.Head()\n\n\t\trequire.True(t, ie.IsErrNoSuchRef(err))\n\t\trequire.Nil(t, fs.MakeCommit(\"init\"))\n\n\t\tref, err := fs.Head()\n\t\trequire.Nil(t, err)\n\n\t\theadCmt, err := fs.lkr.ResolveRef(\"head\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, headCmt.TreeHash().B58String(), ref)\n\t})\n}\n\nfunc TestList(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Touch(\"/x\"))\n\t\trequire.Nil(t, fs.Mkdir(\"/1/2/3/\", true))\n\t\trequire.Nil(t, fs.Touch(\"/1/2/3/y\"))\n\n\t\tentries, err := fs.List(\"/1/2\", -1)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, len(entries), 3)\n\t\trequire.Equal(t, entries[0].Path, \"/1/2\")\n\t\trequire.Equal(t, entries[1].Path, \"/1/2/3\")\n\t\trequire.Equal(t, entries[2].Path, \"/1/2/3/y\")\n\n\t\tentries, err = fs.List(\"/\", 1)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, 2, len(entries))\n\t\trequire.Equal(t, entries[0].Path, \"/1\")\n\t\trequire.Equal(t, entries[1].Path, \"/x\")\n\n\t\tdir, err := fs.lkr.LookupDirectory(\"/1\")\n\t\trequire.Nil(t, err)\n\n\t\t// Check if ghosts are being treated as not existent:\n\t\tc.MustMove(t, fs.lkr, dir, \"/666\")\n\t\t_, err = fs.List(\"/1\", -1)\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\t\t_, err = fs.List(\"/666\", -1)\n\t\trequire.Nil(t, err)\n\t})\n}\n\nfunc TestTag(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Touch(\"/x\"))\n\t\trequire.Nil(t, fs.MakeCommit(\"init\"))\n\n\t\thead, err := fs.Head()\n\t\trequire.Nil(t, err)\n\n\t\t// try with an abbreviated tag name.\n\t\trequire.Nil(t, fs.Tag(head[:10], \"xxx\"))\n\t\tcmt, err := fs.lkr.ResolveRef(\"xxx\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, cmt.(*n.Commit).Message(), \"init\")\n\n\t\trequire.Nil(t, fs.RemoveTag(\"xxx\"))\n\t\tcmt, err = fs.lkr.ResolveRef(\"xxx\")\n\t\trequire.Nil(t, cmt)\n\t\trequire.True(t, ie.IsErrNoSuchRef(err))\n\t})\n}\n\nfunc TestStageUnmodified(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1})))\n\t\tinfoOld, err := fs.Stat(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\t// Just to be sure:\n\t\ttime.Sleep(50 * time.Millisecond)\n\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1})))\n\t\tinfoNew, err := fs.Stat(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, infoOld.ModTime, infoNew.ModTime)\n\t})\n}\n\nfunc TestTruncate(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\tdata := testutil.CreateDummyBuf(1024)\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(data)))\n\n\t\tfor _, size := range []int{1025, 512, 1, 0, 1024} {\n\t\t\tt.Run(fmt.Sprintf(\"size-%d\", size), func(t *testing.T) {\n\t\t\t\trequire.Nil(t, fs.Truncate(\"/x\", uint64(size)))\n\t\t\t\t// clamp to 1024 for assertion:\n\t\t\t\treadSize := size\n\t\t\t\tif size > 1024 {\n\t\t\t\t\treadSize = 1024\n\t\t\t\t}\n\n\t\t\t\tstream, err := fs.Cat(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\treadData, err := ioutil.ReadAll(stream)\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, len(readData), readSize)\n\t\t\t\trequire.Equal(t, readData, data[:readSize])\n\t\t\t})\n\t\t}\n\n\t\trequire.NotNil(t, fs.Truncate(\"/\", 0))\n\t})\n}\n\nfunc TestChangingCompressAlgos(t *testing.T) {\n\tt.Parallel()\n\n\twithDummyFS(t, func(fs *FS) {\n\t\t// Create a file which will not be compressed.\n\t\toldData := testutil.CreateDummyBuf(compress.HeaderSizeThreshold - 1)\n\t\trequire.Nil(t, fs.Stage(\"/a-text-file.go\", bytes.NewReader(oldData)))\n\n\t\t// Second run will use another compress algorithm, since we're\n\t\t// over the header size limit in the compression guesser.\n\t\tnewData := testutil.CreateDummyBuf(compress.HeaderSizeThreshold + 1)\n\t\trequire.Nil(t, fs.Stage(\"/a-text-file.go\", bytes.NewReader(newData)))\n\n\t\tstream, err := fs.Cat(\"/a-text-file.go\")\n\t\trequire.Nil(t, err)\n\n\t\tgotData, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, newData, gotData)\n\t})\n}\n\nfunc TestPatch(t *testing.T) {\n\twithDummyFS(t, func(srcFs *FS) {\n\t\twithDummyFS(t, func(dstFs *FS) {\n\t\t\trequire.Nil(t, srcFs.MakeCommit(\"init\"))\n\t\t\trequire.Nil(t, srcFs.Touch(\"/x\"))\n\t\t\trequire.Nil(t, srcFs.MakeCommit(\"added x\"))\n\n\t\t\tsrcIndex, err := srcFs.LastPatchIndex()\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, int64(0), srcIndex)\n\n\t\t\tdstIndex, err := dstFs.LastPatchIndex()\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, int64(0), dstIndex)\n\n\t\t\tpatch, err := srcFs.MakePatch(\"commit[0]\", nil, \"\")\n\t\t\trequire.Nil(t, err)\n\n\t\t\trequire.Nil(t, dstFs.ApplyPatch(patch))\n\t\t\tsrcX, err := srcFs.Stat(\"/x\")\n\t\t\trequire.Nil(t, err)\n\n\t\t\tsrcIndex, err = srcFs.LastPatchIndex()\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, int64(0), srcIndex)\n\n\t\t\tdstX, err := dstFs.Stat(\"/x\")\n\t\t\trequire.Nil(t, err)\n\n\t\t\trequire.Equal(t, srcX.Path, dstX.Path)\n\t\t\trequire.Equal(t, srcX.Size, dstX.Size)\n\t\t\trequire.Equal(t, srcX.ContentHash, dstX.ContentHash)\n\t\t\trequire.Equal(t, srcX.BackendHash, dstX.BackendHash)\n\n\t\t\tdstIndex, err = dstFs.LastPatchIndex()\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, int64(2), dstIndex)\n\t\t})\n\t})\n}\n\nfunc TestTar(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Stage(\"/a/file.png\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, fs.Stage(\"/b/file.jpg\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, fs.Stage(\"/c/file.gif\", bytes.NewReader([]byte(\"!\"))))\n\n\t\tbuf := &bytes.Buffer{}\n\t\trequire.Nil(t, fs.Tar(\"/\", buf, func(info *StatInfo) bool {\n\t\t\t// Exclude the /c directory:\n\t\t\treturn info.Path != \"/c\"\n\t\t}))\n\n\t\tr := tar.NewReader(buf)\n\t\tfor idx := 0; ; idx++ {\n\t\t\thdr, err := r.Next()\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\trequire.Nil(t, err)\n\n\t\t\tdata, err := ioutil.ReadAll(r)\n\t\t\tswitch idx {\n\t\t\tcase 0:\n\t\t\t\trequire.Equal(t, []byte(\"hello\"), data)\n\t\t\t\trequire.Equal(t, \"a/file.png\", hdr.Name)\n\t\t\t\trequire.Equal(t, int64(5), hdr.Size)\n\t\t\tcase 1:\n\t\t\t\trequire.Equal(t, []byte(\"world\"), data)\n\t\t\t\trequire.Equal(t, \"b/file.jpg\", hdr.Name)\n\t\t\t\trequire.Equal(t, int64(5), hdr.Size)\n\t\t\tdefault:\n\t\t\t\trequire.True(t, false, \"should not be reached\")\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc TestReadOnly(t *testing.T) {\n\twithDummyFSReadOnly(t, true, func(fs *FS) {\n\t\terr := fs.Stage(\"/x\", bytes.NewReader([]byte{1, 2, 3}))\n\t\trequire.Equal(t, ErrReadOnly, err)\n\t})\n}\n\nfunc TestDeletedNodesDirectory(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Mkdir(\"/dir_a\", true))\n\t\trequire.Nil(t, fs.Mkdir(\"/dir_b\", true))\n\t\trequire.Nil(t, fs.MakeCommit(\"added\"))\n\n\t\trequire.Nil(t, fs.Remove(\"/dir_a\"))\n\t\trequire.Nil(t, fs.Move(\"/dir_b\", \"/dir_c\"))\n\t\trequire.Nil(t, fs.MakeCommit(\"{re,}move\"))\n\n\t\tdels, err := fs.DeletedNodes(\"/\")\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, dels, 1)\n\t\trequire.Equal(t, \"/dir_a\", dels[0].Path)\n\t\trequire.True(t, dels[0].IsDir)\n\t})\n}\n\nfunc TestDeletedNodesFile(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\n\t\trequire.Nil(t, fs.Stage(\"/a\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, fs.Stage(\"/b\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, fs.MakeCommit(\"added\"))\n\n\t\trequire.Nil(t, fs.Remove(\"/a\"))\n\t\trequire.Nil(t, fs.Move(\"/b\", \"/c\"))\n\t\trequire.Nil(t, fs.MakeCommit(\"{re,}move\"))\n\n\t\tdels, err := fs.DeletedNodes(\"/\")\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, dels, 1)\n\t\trequire.Equal(t, \"/a\", dels[0].Path)\n\t\trequire.False(t, dels[0].IsDir)\n\t})\n}\n\nfunc TestUndeleteFile(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Stage(\"/a\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, fs.Stage(\"/b\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, fs.MakeCommit(\"initial\"))\n\n\t\trequire.Nil(t, fs.Remove(\"/a\"))\n\t\trequire.Nil(t, fs.Move(\"/b\", \"/c\"))\n\t\trequire.Nil(t, fs.MakeCommit(\"{re,}move\"))\n\n\t\trequire.Nil(t, fs.Undelete(\"/a\"))\n\t\tinfo, err := fs.Stat(\"/a\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/a\", info.Path)\n\t\trequire.False(t, info.IsDir)\n\n\t\tstream, err := fs.Cat(\"/a\")\n\t\trequire.Nil(t, err)\n\t\tdata, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte(\"hello\"), data)\n\n\t\t// This file was moved -> Don't bring it back.\n\t\trequire.NotNil(t, fs.Undelete(\"/b\"))\n\t})\n}\n\nfunc TestUndeleteDirectory(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Stage(\"/dir/a\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, fs.Stage(\"/dir/sub/b\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, fs.Mkdir(\"/dir/empty\", true))\n\t\trequire.Nil(t, fs.MakeCommit(\"initial\"))\n\n\t\trequire.Nil(t, fs.Remove(\"/dir\"))\n\t\trequire.Nil(t, fs.MakeCommit(\"remove\"))\n\n\t\t_, err := fs.Stat(\"/dir/a\")\n\t\trequire.True(t, ie.IsNoSuchFileError(err))\n\n\t\trequire.Nil(t, fs.Undelete(\"/dir\"))\n\t\tinfo, err := fs.Stat(\"/dir\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/dir\", info.Path)\n\t\trequire.True(t, info.IsDir)\n\n\t\tentries, err := fs.List(\"/dir\", -1)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, 5, len(entries))\n\n\t\tpaths := []string{}\n\t\tfor _, entry := range entries {\n\t\t\tpaths = append(paths, entry.Path)\n\t\t}\n\n\t\trequire.Equal(t, []string{\n\t\t\t\"/dir\",\n\t\t\t\"/dir/a\",\n\t\t\t\"/dir/empty\",\n\t\t\t\"/dir/sub\",\n\t\t\t\"/dir/sub/b\",\n\t\t}, paths)\n\t})\n}\n"
  },
  {
    "path": "catfs/handle.go",
    "content": "package catfs\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n)\n\nvar (\n\t// ErrIsClosed is returned when an operation is performed on an already\n\t// closed file.\n\tErrIsClosed = errors.New(\"file handle is closed\")\n)\n\n// Handle is a emulation of a os.File handle, as returned by os.Open()\n// It supports the usual operations like open, read, write and seek.\n// Take note that the flushing operation currently is quite expensive.\ntype Handle struct {\n\tfs          *FS\n\tfile        *n.File\n\tlock        sync.Mutex\n\tlayer       *pagecache.Layer\n\tstream      mio.Stream\n\twasModified bool\n\tisClosed    bool\n\treadOnly    bool\n}\n\nfunc newHandle(fs *FS, file *n.File, readOnly bool) *Handle {\n\treturn &Handle{\n\t\tfs:       fs,\n\t\tfile:     file,\n\t\treadOnly: readOnly,\n\t}\n}\n\nfunc (hdl *Handle) initStreamIfNeeded() error {\n\tif hdl.fs.pageCache == nil {\n\t\treturn errors.New(\"no page cache was initialized\")\n\t}\n\n\tif hdl.stream != nil {\n\t\treturn nil\n\t}\n\n\t// Initialize the stream lazily to avoid I/O on open()\n\trawStream, err := hdl.fs.bk.Cat(hdl.file.BackendHash())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Stack the mio stack on top:\n\thdl.stream, err = mio.NewOutStream(\n\t\trawStream,\n\t\thdl.file.IsRaw(),\n\t\thdl.file.Key(),\n\t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thdl.layer, err = pagecache.NewLayer(\n\t\thdl.stream,\n\t\thdl.fs.pageCache,\n\t\tint64(hdl.file.Inode()),\n\t\tint64(hdl.file.Size()),\n\t)\n\n\treturn err\n}\n\n// Read will try to fill `buf` as much as possible.\n// The seek pointer will be advanced by the number of bytes written.\n// Take care, `buf` might still have contents, even if io.EOF was returned.\nfunc (hdl *Handle) Read(buf []byte) (int, error) {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.isClosed {\n\t\treturn 0, ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn hdl.layer.Read(buf)\n}\n\n// ReadAt reads from the overlay at `off` into `buf`.\nfunc (hdl *Handle) ReadAt(buf []byte, off int64) (int, error) {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.isClosed {\n\t\treturn 0, ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn hdl.layer.ReadAt(buf, off)\n}\n\n// Write will write the contents of `buf` to the current position.\n// It will return the number of currently written bytes.\nfunc (hdl *Handle) Write(buf []byte) (int, error) {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.readOnly {\n\t\treturn 0, ErrReadOnly\n\t}\n\n\tif hdl.isClosed {\n\t\treturn 0, ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\thdl.wasModified = true\n\treturn hdl.layer.Write(buf)\n}\n\n// WriteAt writes data from `buf` at offset `off` counted from the start (0 offset).\n// Mimics `WriteAt` from `io` package https://golang.org/pkg/io/#WriterAt\nfunc (hdl *Handle) WriteAt(buf []byte, off int64) (n int, err error) {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.readOnly {\n\t\treturn 0, ErrReadOnly\n\t}\n\n\tif hdl.isClosed {\n\t\treturn 0, ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\thdl.wasModified = true\n\treturn hdl.layer.WriteAt(buf, off)\n}\n\n// Seek will jump to the `offset` relative to `whence`.\n// There next read and write operation will start from this point.\nfunc (hdl *Handle) Seek(offset int64, whence int) (int64, error) {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.isClosed {\n\t\treturn 0, ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tn, err := hdl.layer.Seek(offset, whence)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn n, nil\n}\n\n// Truncate truncates the file to a specific length.\nfunc (hdl *Handle) Truncate(size uint64) error {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tif hdl.isClosed {\n\t\treturn ErrIsClosed\n\t}\n\n\tif err := hdl.initStreamIfNeeded(); err != nil {\n\t\treturn err\n\t}\n\n\thdl.fs.mu.Lock()\n\thdl.file.SetSize(size)\n\thdl.fs.mu.Unlock()\n\n\thdl.layer.Truncate(int64(size))\n\treturn nil\n}\n\n// unlocked version of Flush()\nfunc (hdl *Handle) flush() error {\n\t// flush unsets the layer, so we don't flush twice.\n\tif hdl.layer == nil {\n\t\treturn nil\n\t}\n\n\t// No need to flush anything if no write calls happened.\n\tif !hdl.wasModified {\n\t\treturn nil\n\t}\n\n\t// Make sure that hdl.layer is unset in any case.\n\t// but only do that in case of real writes.\n\tdefer func() {\n\t\thdl.layer = nil\n\t\thdl.stream = nil\n\t\thdl.wasModified = false\n\t}()\n\n\t// Jump back to the beginning of the file, since fs.Stage()\n\t// should read all content starting from there.\n\tn, err := hdl.layer.Seek(0, io.SeekStart)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif n != 0 {\n\t\treturn fmt.Errorf(\"seek offset is not 0\")\n\t}\n\n\tpath := hdl.file.Path()\n\tif err := hdl.fs.Stage(path, hdl.layer); err != nil {\n\t\treturn err\n\t}\n\n\treturn hdl.layer.Close()\n}\n\n// Flush makes sure to write the current state to the backend.\n// Please remember that this method is currently pretty expensive.\nfunc (hdl *Handle) Flush() error {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.readOnly {\n\t\treturn ErrReadOnly\n\t}\n\n\tif hdl.isClosed {\n\t\treturn ErrIsClosed\n\t}\n\n\treturn hdl.flush()\n}\n\n// Close will finalize the file. It should not be used after.\n// This will call flush if it did not happen yet.\nfunc (hdl *Handle) Close() error {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\tif hdl.isClosed {\n\t\treturn ErrIsClosed\n\t}\n\n\thdl.isClosed = true\n\treturn hdl.flush()\n}\n\n// Path returns the absolute path of the file.\nfunc (hdl *Handle) Path() string {\n\thdl.lock.Lock()\n\tdefer hdl.lock.Unlock()\n\n\treturn hdl.file.Path()\n}\n"
  },
  {
    "path": "catfs/handle_test.go",
    "content": "package catfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestOpenRead(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trawData := []byte{1, 2, 3}\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\tfd, err := fs.Open(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tdata, err := ioutil.ReadAll(fd)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, data, rawData)\n\t\trequire.Nil(t, fd.Close())\n\t})\n}\n\nfunc TestOpenWrite(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trawData := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\tfd, err := fs.Open(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tn, err := fd.Write([]byte{3, 2, 1})\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n, 3)\n\n\t\tdata, err := ioutil.ReadAll(fd)\n\t\trequire.Nil(t, err)\n\t\t// require.Equal(t, rawData[3:], data)\n\t\trequire.Equal(t, []byte{3, 2, 1, 4, 5, 6, 7, 8, 9, 10}, data)\n\n\t\t// Check that we can also seek back to start after reading to the end.\n\t\t// (and also check if the write overlay actually did work)\n\t\tpos, err := fd.Seek(0, io.SeekStart)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, pos, int64(0))\n\n\t\tdata, err = ioutil.ReadAll(fd)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte{3, 2, 1, 4, 5, 6, 7, 8, 9, 10}, data)\n\t\trequire.Nil(t, fd.Close())\n\t})\n}\n\nfunc TestOpenTruncate(t *testing.T) {\n\trawData := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\n\tfor idx := 0; idx < len(rawData)+5; idx++ {\n\t\tt.Run(fmt.Sprintf(\"truncate_%d\", idx), func(t *testing.T) {\n\t\t\twithDummyFS(t, func(fs *FS) {\n\t\t\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\t\t\tfd, err := fs.Open(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\trequire.Nil(t, fd.Truncate(uint64(idx)))\n\n\t\t\t\tdata, err := ioutil.ReadAll(fd)\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\t// cap rawData index:\n\t\t\t\trawIdx := idx\n\t\t\t\tif idx >= len(rawData) {\n\t\t\t\t\trawIdx = len(rawData)\n\t\t\t\t}\n\n\t\t\t\trequire.Equal(t, rawData[:rawIdx], data)\n\t\t\t\trequire.Nil(t, fd.Close())\n\n\t\t\t\t// Check if the result was really written:\n\t\t\t\tstream, err := fs.Cat(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tpersistentData, err := ioutil.ReadAll(stream)\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, rawData[:rawIdx], persistentData)\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestOpenOpAfterClose(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trawData := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\tfd, err := fs.Open(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, fd.Close())\n\n\t\t_, err = ioutil.ReadAll(fd)\n\t\trequire.Equal(t, err, ErrIsClosed)\n\t})\n}\n\n// TODO: More tests. This still feels buggy.\n//       Cases needed for:\n//       - 0, SEEK_END\n//       - 9, SEEK_SET\n//       - ...\nfunc TestOpenExtend(t *testing.T) {\n\tt.Run(\"start-10\", func(t *testing.T) {\n\t\ttestOpenExtend(t, 10, io.SeekStart)\n\t})\n\tt.Run(\"curr-10\", func(t *testing.T) {\n\t\ttestOpenExtend(t, 10, io.SeekCurrent)\n\t})\n\tt.Run(\"end-0\", func(t *testing.T) {\n\t\ttestOpenExtend(t, 0, io.SeekEnd)\n\t})\n}\n\nfunc testOpenExtend(t *testing.T, pos int64, whence int) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trawData := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\tfd, err := fs.Open(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tpos, err := fd.Seek(pos, whence)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, pos, int64(pos))\n\n\t\tn, err := fd.Write([]byte{11, 12, 13})\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n, 3)\n\n\t\trequire.Nil(t, fd.Close())\n\n\t\tstream, err := fs.Cat(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tpostData, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\n\t\texpected := make([]byte, 13)\n\t\tcopy(expected, rawData)\n\t\tcopy(expected[10:], []byte{11, 12, 13})\n\t\trequire.Equal(t, expected, postData)\n\t})\n}\n\n// Read data from the handle like fuse would:\n// Seek to an offset, read a chunk and then advance to next block.\n// block size and file size may var heavily here.\nfunc TestHandleFuseLikeRead(t *testing.T) {\n\ttcs := []struct {\n\t\tfileSize  int\n\t\tblockSize int\n\t}{\n\t\t{2048, 400},\n\t}\n\n\tfor _, tc := range tcs {\n\n\t\ttestHandleFuseLikeRead(t, tc.fileSize, tc.blockSize)\n\t}\n}\n\nfunc testHandleFuseLikeRead(t *testing.T, fileSize, blockSize int) {\n\t// fuse reads data always with a prior seek.\n\t// try to emulate this behaviour here.\n\twithDummyFS(t, func(fs *FS) {\n\t\trawData := testutil.CreateDummyBuf(int64(fileSize))\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader(rawData)))\n\n\t\tfd, err := fs.Open(\"/x\")\n\t\trequire.Nil(t, err)\n\n\t\tleft := len(rawData)\n\t\tfor left > 0 {\n\t\t\ttoRead := blockSize\n\t\t\tif left < blockSize {\n\t\t\t\ttoRead = left\n\t\t\t}\n\n\t\t\toffset := len(rawData) - left\n\t\t\tbuf := make([]byte, toRead)\n\t\t\tif _, err = fd.Seek(int64(offset), io.SeekStart); err != nil {\n\t\t\t\tt.Fatalf(\"Seek to %d failed\", offset)\n\t\t\t}\n\n\t\t\tn, err := fd.Read(buf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Read failed: %v\", err)\n\t\t\t}\n\n\t\t\tif n != toRead {\n\t\t\t\tt.Fatalf(\"Handle read less than expected (wanted %d, got %d)\", toRead, n)\n\t\t\t}\n\n\t\t\tif !bytes.Equal(buf, rawData[offset:offset+toRead]) {\n\t\t\t\tt.Fatalf(\"Block [%d:%d] differs from raw data\", offset, offset+toRead)\n\t\t\t}\n\n\t\t\tleft -= blockSize\n\t\t}\n\n\t\trequire.Nil(t, fd.Close())\n\t})\n}\n\nfunc TestHandleChangeCompression(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\t// Create a file which will not be compressed.\n\t\tsize := int64(compress.HeaderSizeThreshold - 1)\n\t\toldData := testutil.CreateDummyBuf(size)\n\t\trequire.Nil(t, fs.Mkdir(\"/sub\", false))\n\t\trequire.Nil(t, fs.Stage(\"/sub/a-text-file.go\", bytes.NewReader(oldData)))\n\n\t\t// Second run will use another compress algorithm, since we're\n\t\t// over the header size limit in the compression guesser.\n\t\tfd, err := fs.Open(\"/sub/a-text-file.go\")\n\t\trequire.Nil(t, err)\n\n\t\t// \"echo(1)\" does a flush after open (for whatever reason)\n\t\trequire.Nil(t, fd.Flush())\n\n\t\toffset, err := fd.Seek(size, io.SeekStart)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, offset, size)\n\n\t\texpectedData := []byte(\"xxxxx\")\n\t\tn, err := fd.Write(expectedData)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n, len(expectedData))\n\t\trequire.Nil(t, fd.Flush())\n\t\trequire.Nil(t, fd.Close())\n\n\t\tstream, err := fs.Cat(\"/sub/a-text-file.go\")\n\t\trequire.Nil(t, err)\n\n\t\tgotData, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\n\t\texpectData := append(oldData, expectedData...)\n\t\trequire.Equal(t, expectData, gotData)\n\t})\n}\n"
  },
  {
    "path": "catfs/mio/chunkbuf/chunkbuf.go",
    "content": "package chunkbuf\n\nimport (\n\t\"io\"\n\n\t\"github.com/sahib/brig/util\"\n)\n\n// ChunkBuffer represents a custom buffer struct with Read/Write and Seek support.\ntype ChunkBuffer struct {\n\tbuf      []byte\n\treadOff  int64\n\twriteOff int64\n\tsize     int64\n}\n\nconst (\n\tmaxChunkSize = 64 * 1024\n)\n\nfunc (c *ChunkBuffer) Write(p []byte) (int, error) {\n\tn := copy(c.buf[c.writeOff:c.size], p)\n\tc.writeOff += int64(n)\n\tc.size = util.Max64(c.size, c.writeOff)\n\treturn n, nil\n}\n\n// Reset resets the buffer like bytes.Buffer\nfunc (c *ChunkBuffer) Reset(data []byte) {\n\tc.readOff = 0\n\tc.writeOff = 0\n\tc.size = int64(len(data))\n\tc.buf = data\n}\n\n// Len tells you the current size of the buffer contents\nfunc (c *ChunkBuffer) Len() int {\n\treturn int(c.size - c.readOff)\n}\n\nfunc (c *ChunkBuffer) Read(p []byte) (int, error) {\n\tn := copy(p, c.buf[c.readOff:c.size])\n\tc.readOff += int64(n)\n\tif n < len(p) {\n\t\treturn n, io.EOF\n\t}\n\n\treturn n, nil\n}\n\n// Seek implements io.Seeker\nfunc (c *ChunkBuffer) Seek(offset int64, whence int) (int64, error) {\n\tswitch whence {\n\tcase io.SeekCurrent:\n\t\tc.readOff += offset\n\tcase io.SeekEnd:\n\t\tc.readOff = c.size + offset\n\tcase io.SeekStart:\n\t\tc.readOff = offset\n\t}\n\tc.readOff = util.Min64(c.readOff, c.size)\n\tc.writeOff = c.readOff\n\treturn c.readOff, nil\n}\n\n// Close is a no-op only existing to fulfill io.Closer\nfunc (c *ChunkBuffer) Close() error {\n\treturn nil\n}\n\n// WriteTo implements the io.WriterTo interface\nfunc (c *ChunkBuffer) WriteTo(w io.Writer) (int64, error) {\n\tn, err := w.Write(c.buf[c.readOff:])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tc.readOff += int64(n)\n\treturn int64(n), nil\n}\n\n// NewChunkBuffer returns a ChunkBuffer with the given data. if data is nil a\n// ChunkBuffer with 64k is returned.\n// Note that chunkbuf will take over ownership over the buf.\nfunc NewChunkBuffer(data []byte) *ChunkBuffer {\n\tif data == nil {\n\t\tdata = make([]byte, maxChunkSize)\n\t}\n\n\treturn &ChunkBuffer{buf: data, size: int64(len(data))}\n}\n"
  },
  {
    "path": "catfs/mio/chunkbuf/chunkbuf_test.go",
    "content": "package chunkbuf\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestChunkBufBasic(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(1024)\n\tbuf := NewChunkBuffer(data)\n\n\tcopiedData, err := ioutil.ReadAll(buf)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, copiedData)\n}\n\nfunc TestChunkBufEOF(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(1024)\n\tbuf := NewChunkBuffer(data)\n\n\tcache := make([]byte, 2048)\n\tn, err := buf.Read(cache)\n\trequire.True(t, err == io.EOF)\n\trequire.Equal(t, n, 1024)\n\trequire.Nil(t, buf.Close())\n}\n\nfunc TestChunkBufWriteTo(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(1024)\n\tbuf := NewChunkBuffer(data)\n\n\tstdBuf := &bytes.Buffer{}\n\tn, err := buf.WriteTo(stdBuf)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(n), int64(1024))\n\trequire.Equal(t, data, stdBuf.Bytes())\n}\n\nfunc TestChunkBufSeek(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(1024)\n\tbuf := NewChunkBuffer(data)\n\n\tvar err error\n\tvar n int\n\n\tcache := make([]byte, 128)\n\tn, err = buf.Read(cache)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 128)\n\trequire.Equal(t, cache[:n], data[:n])\n\n\tjumpedTo, err := buf.Seek(256, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(jumpedTo), int64(256))\n\n\tcache = make([]byte, 128)\n\tn, err = buf.Read(cache)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 128)\n\trequire.Equal(t, cache[:n], data[256:n+256])\n\n\t// read advanced by 128, add 128 to go to 512\n\tjumpedTo, err = buf.Seek(128, io.SeekCurrent)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(jumpedTo), int64(512))\n\n\tcache = make([]byte, 128)\n\tn, err = buf.Read(cache)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 128)\n\trequire.Equal(t, cache[:n], data[512:n+512])\n\n\t// read advanced by 128, add 128 to go to 512\n\tjumpedTo, err = buf.Seek(-128, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(jumpedTo), int64(896))\n\n\tcache = make([]byte, 128)\n\tn, err = buf.Read(cache)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 128)\n\trequire.Equal(t, cache[:n], data[896:n+896])\n}\n\nfunc TestChunkBufWrite(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(1024)\n\tref := testutil.CreateDummyBuf(1024)\n\tbuf := NewChunkBuffer(data)\n\n\tref[0] = 1\n\tref[1] = 2\n\tref[2] = 3\n\n\tn, err := buf.Write([]byte{1, 2, 3})\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 3)\n\n\tjumpedTo, err := buf.Seek(-1, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(jumpedTo), int64(1023))\n\n\tref[1023] = 255\n\n\tn, err = buf.Write([]byte{255, 255, 255})\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, 1)\n\n\tjumpedTo, err = buf.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(jumpedTo), int64(0))\n\n\tstdBuf := &bytes.Buffer{}\n\tnWriteTo, err := buf.WriteTo(stdBuf)\n\trequire.Nil(t, err)\n\trequire.Equal(t, nWriteTo, int64(1024))\n\n\trequire.Equal(t, stdBuf.Bytes(), ref)\n}\n"
  },
  {
    "path": "catfs/mio/compress/algorithm.go",
    "content": "package compress\n\nimport (\n\t\"errors\"\n\n\t\"github.com/golang/snappy\"\n\t\"github.com/klauspost/compress/zstd\"\n\t\"github.com/pierrec/lz4/v4\"\n)\n\nvar (\n\t// ErrBadAlgo is returned on a unsupported/unknown algorithm.\n\tErrBadAlgo = errors.New(\"invalid algorithm type\")\n)\n\nconst (\n\t// AlgoUnknown represents an unknown algorithm.\n\t// When trying to use it an error will occur.\n\tAlgoUnknown = AlgorithmType(iota)\n\n\t// AlgoSnappy represents the snappy compression algorithm:\n\t// https://en.wikipedia.org/wiki/Snappy_(software)\n\tAlgoSnappy\n\n\t//AlgoLZ4 represents the lz4 compression algorithm:\n\t// https://en.wikipedia.org/wiki/LZ4_(compression_algorithm)\n\tAlgoLZ4\n\n\t// AlgoZstd represents the zstd compression algorithm:\n\t// https://de.wikipedia.org/wiki/Zstandard\n\tAlgoZstd\n)\n\n// AlgorithmType user defined type to store the algorithm type.\ntype AlgorithmType byte\n\n// IsValid returns true if `at` is a valid algorithm type.\nfunc (at AlgorithmType) IsValid() bool {\n\tswitch at {\n\tcase AlgoSnappy, AlgoLZ4, AlgoZstd:\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (at AlgorithmType) String() string {\n\tname, ok := algoToString[at]\n\tif !ok {\n\t\treturn \"unknown\"\n\t}\n\n\treturn name\n}\n\n// Algorithm is the common interface for all supported algorithms.\ntype Algorithm interface {\n\t// Encode should encode `src` into the buffer provided by `dst`.\n\t// It should return a sub-slice of `dst`. `dst` should be big\n\t// enough to hold `src`. Use MaxEncodeBufferSize() to be sure.\n\tEncode(dst, src []byte) ([]byte, error)\n\n\t// Decode decodes the data in `src` to `dst`, returning a subslice\n\t// of `dst` to indicate the actual size.\n\tDecode(dst, src []byte) ([]byte, error)\n\n\t// MaxEncodeBufferSize should return the maximum size an encoded\n\t// (i.e. compressed) buffer of input size maxChunkSize may have.\n\t// This will be bigger than maxChunkSize since random data will\n\t// be inflated by almost all algorithms.\n\tMaxEncodeBufferSize() int\n}\n\ntype snappyAlgo struct{}\n\ntype lz4Algo struct {\n\tcompressor *lz4.Compressor\n}\n\ntype zstdAlgo struct{}\n\nvar (\n\tzstdWriter *zstd.Encoder\n\tzstdReader *zstd.Decoder\n)\n\nfunc init() {\n\tvar err error\n\n\t// NOTE: zstd package allows us to use the same writer and reader\n\t//       stateless if we just use block encoding/decoding.\n\t//       This saves us some extra allocations.\n\n\t// TODO: configure compression level?\n\tzstdWriter, err = zstd.NewWriter(\n\t\tnil,\n\t\tzstd.WithEncoderLevel(zstd.SpeedDefault),\n\t)\n\n\tif err != nil {\n\t\t// configuring the writer wrong is a programmer error.\n\t\tpanic(err)\n\t}\n\n\t// NOTE: reader should set max memory bound with WithDecoderMaxMemory.\n\t//       we can deduce it from maxChunkSize and protect against\n\t//       malicious inputs.\n\tzstdReader, err = zstd.NewReader(\n\t\tnil,\n\t\tzstd.WithDecoderMaxMemory(32*maxChunkSize),\n\t)\n\tif err != nil {\n\t\t// configuring the reader wrong is a programmer error.\n\t\tpanic(err)\n\t}\n}\n\nvar (\n\t// AlgoMap is a map of available algorithms.\n\talgoMap = map[AlgorithmType]func() Algorithm{\n\t\tAlgoSnappy: func() Algorithm {\n\t\t\treturn snappyAlgo{}\n\t\t},\n\t\tAlgoLZ4: func() Algorithm {\n\t\t\t// TODO: we could configure compression level here.\n\t\t\treturn &lz4Algo{\n\t\t\t\tcompressor: &lz4.Compressor{},\n\t\t\t}\n\t\t},\n\t\tAlgoZstd: func() Algorithm {\n\t\t\treturn zstdAlgo{}\n\t\t},\n\t}\n\n\talgoToString = map[AlgorithmType]string{\n\t\tAlgoSnappy: \"snappy\",\n\t\tAlgoLZ4:    \"lz4\",\n\t\tAlgoZstd:   \"zstd\",\n\t}\n)\n\nfunc (a snappyAlgo) Encode(dst, src []byte) ([]byte, error) {\n\treturn snappy.Encode(dst, src), nil\n}\n\nfunc (a snappyAlgo) Decode(dst, src []byte) ([]byte, error) {\n\treturn snappy.Decode(dst, src)\n}\n\nfunc (a snappyAlgo) MaxEncodeBufferSize() int {\n\treturn snappy.MaxEncodedLen(maxChunkSize)\n}\n\n/////////////////////////\n\nfunc (a *lz4Algo) Encode(dst, src []byte) ([]byte, error) {\n\tn, err := a.compressor.CompressBlock(src, dst)\n\tif err != nil {\n\t\treturn dst[:n], err\n\t}\n\n\t// NOTE: n == 0 is returned when the data is not easy to compress\n\t// and the `dst` buf is too small to hold it. Since we always\n\t// supply a large enough buf this should not happen.\n\treturn dst[:n], nil\n}\n\nfunc (a *lz4Algo) Decode(dst, src []byte) ([]byte, error) {\n\tn, err := lz4.UncompressBlock(src, dst)\n\treturn dst[:n], err\n}\n\nfunc (a *lz4Algo) MaxEncodeBufferSize() int {\n\treturn lz4.CompressBlockBound(maxChunkSize)\n}\n\n/////////////////////////\n\nfunc (a zstdAlgo) Encode(dst, src []byte) ([]byte, error) {\n\treturn zstdWriter.EncodeAll(src, dst[:0]), nil\n}\n\nfunc (a zstdAlgo) Decode(dst, src []byte) ([]byte, error) {\n\treturn zstdReader.DecodeAll(src, dst[:0])\n}\n\nfunc (a zstdAlgo) MaxEncodeBufferSize() int {\n\t// TODO: Is there a better way to estimate?\n\treturn maxChunkSize * 2\n}\n\nfunc algorithmFromType(a AlgorithmType) (Algorithm, error) {\n\tnewAlgoFn, ok := algoMap[a]\n\tif !ok {\n\t\treturn nil, ErrBadAlgo\n\t}\n\n\treturn newAlgoFn(), nil\n}\n"
  },
  {
    "path": "catfs/mio/compress/compress_test.go",
    "content": "package compress\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nvar (\n\tTestOffsets      = []int64{-1, -500, 0, 1, -C64K, -C32K, C64K - 1, C64K, C64K + 1, C32K - 1, C32K, C32K + 1, C64K - 5, C64K + 5, C32K - 5, C32K + 5}\n\tTestSizes        = []int64{0, 1, 4096, C64K - 1, C64K, C64K + 1, C32K - 1, C32K, C32K + 1, C64K - 5, C64K + 5, C32K - 5, C32K + 5}\n\tCompressionAlgos = []AlgorithmType{AlgoLZ4, AlgoSnappy, AlgoZstd}\n)\n\nfunc openDest(t *testing.T, dest string) *os.File {\n\tif _, err := os.Stat(dest); !os.IsNotExist(err) && err != nil {\n\t\tt.Fatalf(\"Opening destination %v failed: %v\\n\", dest, err)\n\t}\n\tfd, err := os.OpenFile(dest, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)\n\tif err != nil {\n\t\tt.Fatalf(\"Opening source %v failed: %v\\n\", dest, err)\n\t}\n\treturn fd\n}\n\nfunc openSrc(t *testing.T, src string) *os.File {\n\tfd, err := os.Open(src)\n\tif err != nil {\n\t\tt.Fatalf(\"Opening source %v failed: %v\\n\", src, err)\n\t}\n\treturn fd\n}\n\nfunc createTempFile(t *testing.T) string {\n\tfd, err := ioutil.TempFile(\"\", \"brig-mio-compress\")\n\tpath := fd.Name()\n\trequire.Nil(t, err)\n\trequire.Nil(t, fd.Close())\n\treturn path\n}\n\nconst (\n\tC64K = 64 * 1024\n\tC32K = 32 * 1024\n)\n\nfunc TestCompressDecompress(t *testing.T) {\n\tt.Parallel()\n\n\tsizes := TestSizes\n\talgos := CompressionAlgos\n\n\tfor _, algo := range algos {\n\t\tfor _, size := range sizes {\n\t\t\tname := fmt.Sprintf(\"%s-size%d\", algo, size)\n\t\t\tt.Run(name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\ttestCompressDecompress(t, size, algo, true, true)\n\t\t\t\ttestCompressDecompress(t, size, algo, false, false)\n\t\t\t\ttestCompressDecompress(t, size, algo, true, false)\n\t\t\t\ttestCompressDecompress(t, size, algo, false, true)\n\t\t\t})\n\t\t}\n\t}\n}\n\nfunc testCompressDecompress(t *testing.T, size int64, algo AlgorithmType, useReadFrom, useWriteTo bool) {\n\t// Fake data file is written to disk,\n\t// as compression reader has to be a ReadSeeker.\n\tzipPath := createTempFile(t)\n\tdefer testutil.Remover(t, zipPath)\n\n\tdata := testutil.CreateDummyBuf(size)\n\tzipFileDest := openDest(t, zipPath)\n\n\t// Compress.\n\tw, err := NewWriter(zipFileDest, algo)\n\tif err != nil {\n\t\tt.Errorf(\"Writer init failed %v\", err)\n\t\treturn\n\n\t}\n\n\tif _, err := testutil.DumbCopy(w, bytes.NewReader(data), useReadFrom, useWriteTo); err != nil {\n\t\tt.Errorf(\"Compress failed %v\", err)\n\t\treturn\n\t}\n\n\tif err := w.Close(); err != nil {\n\t\tt.Errorf(\"Compression writer close failed: %v\", err)\n\t\treturn\n\t}\n\n\tif err := zipFileDest.Close(); err != nil {\n\t\tt.Errorf(\"close(zipFileDest) failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Read compressed file into buffer.\n\tdataUncomp := bytes.NewBuffer(nil)\n\tdataFromZip := openSrc(t, zipPath)\n\n\t// Uncompress.\n\tr := NewReader(dataFromZip)\n\tif _, err := testutil.DumbCopy(dataUncomp, r, useReadFrom, useWriteTo); err != nil {\n\t\tt.Errorf(\"Decompression failed: %v\", err)\n\t\treturn\n\t}\n\tif err := dataFromZip.Close(); err != nil {\n\t\tt.Errorf(\"Zip close failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Compare.\n\tgot, want := dataUncomp.Bytes(), data\n\tif !bytes.Equal(got, want) {\n\t\tt.Error(\"Uncompressed data and input data does not match.\")\n\t\tt.Errorf(\"\\tGOT:   %v\", util.OmitBytes(got, 10))\n\t\tt.Errorf(\"\\tWANT:  %v\", util.OmitBytes(want, 10))\n\t\treturn\n\t}\n}\n\nfunc TestSeek(t *testing.T) {\n\tt.Parallel()\n\n\tsizes := TestSizes\n\toffsets := TestOffsets\n\talgos := CompressionAlgos\n\tfor _, algo := range algos {\n\t\tfor _, size := range sizes {\n\t\t\tfor _, off := range offsets {\n\t\t\t\tname := fmt.Sprintf(\"%s-size%d-off%d\", algo, size, off)\n\t\t\t\tt.Run(name, func(t *testing.T) {\n\t\t\t\t\tt.Parallel()\n\n\t\t\t\t\ttestSeek(t, size, off, algo, false, false)\n\t\t\t\t\ttestSeek(t, size, off, algo, true, true)\n\t\t\t\t\ttestSeek(t, size, off, algo, false, true)\n\t\t\t\t\ttestSeek(t, size, off, algo, true, false)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc testSeek(t *testing.T, size, offset int64, algo AlgorithmType, useReadFrom, useWriteTo bool) {\n\t// Fake data file is written to disk,\n\t// as compression reader has to be a ReadSeeker.\n\tzipPath := createTempFile(t)\n\tdefer testutil.Remover(t, zipPath)\n\n\tdata := testutil.CreateDummyBuf(size)\n\tzipFileDest := openDest(t, zipPath)\n\n\t// Compress.\n\tw, err := NewWriter(zipFileDest, algo)\n\tif err != nil {\n\t\tt.Errorf(\"Writer init failed %v\", err)\n\t\treturn\n\t}\n\tif _, err := testutil.DumbCopy(w, bytes.NewReader(data), useReadFrom, useWriteTo); err != nil {\n\t\tt.Errorf(\"Compress failed %v\", err)\n\t\treturn\n\t}\n\tdefer testutil.Remover(t, zipPath)\n\n\tif err := w.Close(); err != nil {\n\t\tt.Errorf(\"Compression writer close failed: %v\", err)\n\t\treturn\n\t}\n\n\tif err := zipFileDest.Close(); err != nil {\n\t\tt.Errorf(\"close(zipFileDest) failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Read compressed file into buffer.\n\tdataUncomp := bytes.NewBuffer(nil)\n\tdataFromZip := openSrc(t, zipPath)\n\tzr := NewReader(dataFromZip)\n\n\t// Set specific offset before read.\n\t_, err = zr.Seek(offset, io.SeekStart)\n\tif err == io.EOF && offset < size && offset > -1 {\n\t\tt.Errorf(\"Seek failed even with EOF: %d <= %d\", offset, size)\n\t\treturn\n\t}\n\tif err != io.EOF && err != nil {\n\t\tt.Errorf(\"Seek failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Read starting at a specific offset.\n\tif _, err := testutil.DumbCopy(dataUncomp, zr, useReadFrom, useWriteTo); err != nil {\n\t\tt.Errorf(\"Decompression failed: %v\", err)\n\t\treturn\n\t}\n\tif err := dataFromZip.Close(); err != nil {\n\t\tt.Errorf(\"Zip close failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Compare.\n\tmaxOffset := offset\n\tif offset > size {\n\t\tmaxOffset = size\n\t}\n\n\tif offset < 0 {\n\t\tmaxOffset = 0\n\t}\n\n\tgot, want := dataUncomp.Bytes(), data[maxOffset:]\n\tif !bytes.Equal(got, want) {\n\t\tt.Error(\"Uncompressed data and input data does not match.\")\n\t\tt.Errorf(\"\\tGOT:   %v\", util.OmitBytes(got, 10))\n\t\tt.Errorf(\"\\tWANT:  %v\", util.OmitBytes(want, 10))\n\t\treturn\n\t}\n}\n\nfunc TestReadItAllTwice(t *testing.T) {\n\tfor _, algo := range []AlgorithmType{AlgoLZ4, AlgoSnappy} {\n\t\tt.Run(fmt.Sprintf(\"%v\", algo), func(t *testing.T) {\n\t\t\tdata := testutil.CreateDummyBuf(2 * 4096)\n\t\t\tzipData, err := Pack(data, algo)\n\t\t\trequire.Nil(t, err)\n\n\t\t\tr := bytes.NewReader(zipData)\n\t\t\tzr := NewReader(r)\n\n\t\t\treadData1, err := ioutil.ReadAll(zr)\n\t\t\trequire.Nil(t, err)\n\n\t\t\tn, err := zr.Seek(0, io.SeekStart)\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, n, int64(0))\n\n\t\t\treadData2, err := ioutil.ReadAll(zr)\n\t\t\trequire.Nil(t, err)\n\n\t\t\trequire.Equal(t, readData1, readData2)\n\t\t})\n\t}\n}\n\n// fuse will use Seek() to jump to each position.\n// when reading a complete file it will call seek before each read.\nfunc TestReadFuseLike(t *testing.T) {\n\talgo := AlgorithmType(AlgoSnappy)\n\n\tfor _, size := range TestSizes {\n\t\tt.Run(fmt.Sprintf(\"%v\", size), func(t *testing.T) {\n\t\t\tdata := testutil.CreateDummyBuf(size)\n\t\t\tcompressedData, err := Pack(data, algo)\n\t\t\trequire.Nil(t, err)\n\n\t\t\tr := NewReader(bytes.NewReader(compressedData))\n\t\t\tbufSize := 4096\n\t\t\tbuf := make([]byte, bufSize)\n\n\t\t\toffset := int64(0)\n\n\t\t\tfor {\n\t\t\t\tseekOffset, err := r.Seek(offset, io.SeekStart)\n\t\t\t\tif err != io.EOF {\n\t\t\t\t\trequire.Nil(t, err)\n\t\t\t\t\trequire.Equal(t, offset, seekOffset)\n\t\t\t\t}\n\n\t\t\t\tn, err := r.Read(buf)\n\t\t\t\tif err != io.EOF {\n\t\t\t\t\trequire.Nil(t, err)\n\t\t\t\t}\n\n\t\t\t\t// check that n returns something that makes sense:\n\t\t\t\trequire.Equal(t, util.Min(bufSize, len(data)-int(offset)), n)\n\t\t\t\trequire.Equal(t, data[offset:offset+int64(n)], buf[:n])\n\n\t\t\t\toffset += int64(n)\n\n\t\t\t\t// If this test goes into an endless loop: that's why.\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCheckSize(t *testing.T) {\n\tdata := testutil.CreateDummyBuf(6041)\n\tpackData, err := Pack(data, AlgoSnappy)\n\trequire.Nil(t, err)\n\n\tr := NewReader(bytes.NewReader(packData))\n\n\tsize, err := r.Seek(0, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), size)\n\n\toff, err := r.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), off)\n\n\tbuf := &bytes.Buffer{}\n\tn, err := io.Copy(buf, r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), n)\n\trequire.Equal(t, data, buf.Bytes())\n}\n"
  },
  {
    "path": "catfs/mio/compress/header.go",
    "content": "package compress\n\n// TODO: rename to header.go\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n)\n\nvar (\n\t// ErrBadIndex is returned on invalid compression index.\n\tErrBadIndex = errors.New(\"broken compression index\")\n\n\t// ErrHeaderTooSmall is returned if the header is less than 10 bytes.\n\t// It usually indicates a broken file or a non-compressed file.\n\tErrHeaderTooSmall = errors.New(\"header is less than 10 bytes\")\n\n\t// ErrBadMagicNumber is returned if the first 8 bytes of the stream is not\n\t// the expected \"elchwald\".\n\tErrBadMagicNumber = errors.New(\"bad magic number in compressed stream\")\n\n\t// ErrBadAlgorithm is returned when the algorithm was either not present\n\t// or it had an invalid value\n\tErrBadAlgorithm = errors.New(\"invalid algorithm\")\n\n\t// ErrUnsupportedVersion is returned when we don't have a reader that\n\t// understands that format.\n\tErrUnsupportedVersion = errors.New(\"version of this format is not supported\")\n\n\t// MagicNumber is the magic number in front of a compressed stream\n\tMagicNumber = []byte(\"elchwald\")\n)\n\nconst (\n\tmaxChunkSize   = 64 * 1024\n\tindexChunkSize = 16\n\ttrailerSize    = 12\n\theaderSize     = 12\n\tcurrentVersion = 1\n)\n\n// record structure reprenents a offset mapping {uncompressed offset, compressedOffset}.\n// A chunk of maxChunkSize is defined by two records. The size of a specific\n// record can be determinated by a simple substitution of two record offsets.\ntype record struct {\n\trawOff int64\n\tzipOff int64\n}\n\n// trailer holds basic information about the compressed file.\ntype trailer struct {\n\tchunksize uint32\n\tindexSize uint64\n}\n\nfunc (t *trailer) marshal(buf []byte) {\n\tbinary.LittleEndian.PutUint32(buf[0:4], t.chunksize)\n\tbinary.LittleEndian.PutUint64(buf[4:12], t.indexSize)\n}\n\nfunc (t *trailer) unmarshal(buf []byte) {\n\tt.chunksize = binary.LittleEndian.Uint32(buf[0:4])\n\tt.indexSize = binary.LittleEndian.Uint64(buf[4:12])\n}\n\nfunc (rc *record) marshal(buf []byte) {\n\tbinary.LittleEndian.PutUint64(buf[0:8], uint64(rc.rawOff))\n\tbinary.LittleEndian.PutUint64(buf[8:16], uint64(rc.zipOff))\n}\n\nfunc (rc *record) unmarshal(buf []byte) {\n\trc.rawOff = int64(binary.LittleEndian.Uint64(buf[0:8]))\n\trc.zipOff = int64(binary.LittleEndian.Uint64(buf[8:16]))\n}\n\ntype header struct {\n\talgo    AlgorithmType\n\tversion uint16\n}\n\nfunc makeHeader(algo AlgorithmType, version byte) []byte {\n\talgoField := make([]byte, 2)\n\tbinary.LittleEndian.PutUint16(algoField, uint16(algo))\n\n\tversionField := make([]byte, 2)\n\tbinary.LittleEndian.PutUint16(versionField, uint16(version))\n\n\tsuffix := append(versionField, algoField...)\n\treturn append(MagicNumber, suffix...)\n}\n\nfunc readHeader(bheader []byte) (*header, error) {\n\tif len(bheader) < 10 {\n\t\treturn nil, ErrHeaderTooSmall\n\t}\n\n\tif !bytes.Equal(bheader[:len(MagicNumber)], MagicNumber) {\n\t\treturn nil, ErrBadMagicNumber\n\t}\n\n\t// This version only understands itself currently:\n\tversion := binary.LittleEndian.Uint16(bheader[8:10])\n\tif version != currentVersion {\n\t\treturn nil, ErrUnsupportedVersion\n\t}\n\n\tif len(bheader) < 12 {\n\t\treturn nil, ErrBadAlgorithm\n\t}\n\n\talgo := AlgorithmType(binary.LittleEndian.Uint16(bheader[10:12]))\n\tif !algo.IsValid() {\n\t\treturn nil, ErrBadAlgorithm\n\t}\n\n\treturn &header{\n\t\talgo:    algo,\n\t\tversion: version,\n\t}, nil\n}\n\n// Pack compresses `data` with `algo` and returns the resulting data.\n// This is a convenience method meant to be used for small data packages.\nfunc Pack(data []byte, algo AlgorithmType) ([]byte, error) {\n\tzipBuf := &bytes.Buffer{}\n\tzipW, err := NewWriter(zipBuf, algo)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif _, err := zipW.ReadFrom(bytes.NewReader(data)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := zipW.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn zipBuf.Bytes(), nil\n}\n\n// Unpack unpacks `data` and returns the decompressed data.\n// The algorithm is read from the data itself.\n// This is a convinience method meant to be used for small data packages.\nfunc Unpack(data []byte) ([]byte, error) {\n\tbuf := &bytes.Buffer{}\n\tif _, err := NewReader(bytes.NewReader(data)).WriteTo(buf); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "catfs/mio/compress/heuristic.go",
    "content": "package compress\n\nimport (\n\t\"mime\"\n\t\"net/http\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/sdemontfort/go-mimemagic\"\n)\n\nvar (\n\t// TextFileExtensions not covered by mime.TypeByExtension\n\tTextFileExtensions = map[string]bool{\n\t\t\".go\":   true,\n\t\t\".json\": true,\n\t\t\".yaml\": true,\n\t\t\".xml\":  true,\n\t\t\".txt\":  true,\n\t}\n)\n\nconst (\n\t// HeaderSizeThreshold is the number of bytes needed to enable compression at all.\n\tHeaderSizeThreshold = 2048\n)\n\nfunc guessMime(path string, buf []byte) string {\n\thttpMatch := http.DetectContentType(buf)\n\tif httpMatch != \"application/octet-stream\" {\n\t\treturn httpMatch\n\t}\n\n\t// try to guess it from the buffer we pass:\n\tmatch := mimemagic.Match(\"\", buf)\n\tif match == \"\" {\n\t\t// try to guess it from the file path:\n\t\tmatch = mime.TypeByExtension(filepath.Ext(path))\n\t}\n\n\t// handle a few edge cases:\n\tif TextFileExtensions[filepath.Ext(path)] {\n\t\treturn \"text/plain\"\n\t}\n\n\treturn match\n}\n\nfunc isCompressible(mimetype string) bool {\n\tif strings.HasPrefix(mimetype, \"text/\") {\n\t\treturn true\n\t}\n\n\treturn CompressibleMapping[mimetype]\n}\n\n// GuessAlgorithm takes the path name and the header data of it\n// and tries to guess a suitable compression algorithm.\nfunc GuessAlgorithm(path string, header []byte) (AlgorithmType, error) {\n\tif len(header) < HeaderSizeThreshold {\n\t\treturn AlgoUnknown, nil\n\t}\n\n\tmime := guessMime(path, header)\n\tif mime == \"\" {\n\t\t// the guesses below work only when mime is known\n\t\treturn AlgoSnappy, nil\n\t}\n\n\tcompressible := isCompressible(mime)\n\tif !compressible {\n\t\treturn AlgoUnknown, nil\n\t}\n\n\t// text like files probably deserve some thorough compression:\n\tif strings.HasPrefix(mime, \"text/\") {\n\t\treturn AlgoLZ4, nil\n\t}\n\n\t// fallback to snappy for generic files:\n\treturn AlgoSnappy, nil\n}\n"
  },
  {
    "path": "catfs/mio/compress/heuristic_test.go",
    "content": "package compress\n\nimport (\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n)\n\ntype testCase struct {\n\tpath         string\n\theader       []byte\n\texpectedAlgo AlgorithmType\n}\n\nvar (\n\ttestCases = []testCase{\n\t\t{\n\t\t\t\"1.txt\",\n\t\t\ttestutil.CreateDummyBuf(HeaderSizeThreshold - 1),\n\t\t\tAlgoUnknown,\n\t\t}, {\n\t\t\t\"2.txt\",\n\t\t\ttestutil.CreateDummyBuf(HeaderSizeThreshold),\n\t\t\tAlgoLZ4,\n\t\t}, {\n\t\t\t\"3.opus\",\n\t\t\tappend(\n\t\t\t\t[]byte{0x4f, 0x67, 0x67, 0x53},\n\t\t\t\ttestutil.CreateDummyBuf(HeaderSizeThreshold)...,\n\t\t\t),\n\t\t\tAlgoUnknown,\n\t\t}, {\n\t\t\t\"4.zip\",\n\t\t\tappend(\n\t\t\t\t[]byte{0x50, 0x4b, 0x3, 0x4},\n\t\t\t\ttestutil.CreateDummyBuf(HeaderSizeThreshold)...,\n\t\t\t),\n\t\t\tAlgoUnknown,\n\t\t},\n\t}\n)\n\nfunc TestChooseCompressAlgo(t *testing.T) {\n\tt.Parallel()\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tif algo, err := GuessAlgorithm(tc.path, tc.header); err != nil {\n\t\t\t\tt.Errorf(\"Error: %v\", err)\n\t\t\t} else if algo != tc.expectedAlgo {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"For path '%s' expected '%s', got '%s'\",\n\t\t\t\t\ttc.path,\n\t\t\t\t\talgoToString[tc.expectedAlgo],\n\t\t\t\t\talgoToString[algo],\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/mio/compress/mime_db.go",
    "content": "package compress\n\n// CompressibleMapping maps between mime types and a bool indicating\n// if they're compressible. Choice of Algorithm comes later.\n//\n// This was converted from this mime db:\n// https://cdn.rawgit.com/jshttp/mime-db/master/db.json\nvar CompressibleMapping = map[string]bool{\n\t\"application/3gpdash-qoe-report+xml\":                                        true,\n\t\"application/3gpp-ims+xml\":                                                  true,\n\t\"application/activity+json\":                                                 true,\n\t\"application/alto-costmap+json\":                                             true,\n\t\"application/alto-costmapfilter+json\":                                       true,\n\t\"application/alto-directory+json\":                                           true,\n\t\"application/alto-endpointcost+json\":                                        true,\n\t\"application/alto-endpointcostparams+json\":                                  true,\n\t\"application/alto-endpointprop+json\":                                        true,\n\t\"application/alto-endpointpropparams+json\":                                  true,\n\t\"application/alto-error+json\":                                               true,\n\t\"application/alto-networkmap+json\":                                          true,\n\t\"application/alto-networkmapfilter+json\":                                    true,\n\t\"application/atom+xml\":                                                      true,\n\t\"application/atomcat+xml\":                                                   true,\n\t\"application/atomdeleted+xml\":                                               true,\n\t\"application/atomsvc+xml\":                                                   true,\n\t\"application/auth-policy+xml\":                                               true,\n\t\"application/bdoc\":                                                          false,\n\t\"application/beep+xml\":                                                      true,\n\t\"application/calendar+json\":                                                 true,\n\t\"application/calendar+xml\":                                                  true,\n\t\"application/ccmp+xml\":                                                      true,\n\t\"application/ccxml+xml\":                                                     true,\n\t\"application/cdfx+xml\":                                                      true,\n\t\"application/cea-2018+xml\":                                                  true,\n\t\"application/cellml+xml\":                                                    true,\n\t\"application/clue_info+xml\":                                                 true,\n\t\"application/cnrp+xml\":                                                      true,\n\t\"application/coap-group+json\":                                               true,\n\t\"application/conference-info+xml\":                                           true,\n\t\"application/cpl+xml\":                                                       true,\n\t\"application/csta+xml\":                                                      true,\n\t\"application/cstadata+xml\":                                                  true,\n\t\"application/csvm+json\":                                                     true,\n\t\"application/dart\":                                                          true,\n\t\"application/dash+xml\":                                                      true,\n\t\"application/davmount+xml\":                                                  true,\n\t\"application/dialog-info+xml\":                                               true,\n\t\"application/dicom+json\":                                                    true,\n\t\"application/dicom+xml\":                                                     true,\n\t\"application/docbook+xml\":                                                   true,\n\t\"application/dskpp+xml\":                                                     true,\n\t\"application/dssc+xml\":                                                      true,\n\t\"application/ecmascript\":                                                    true,\n\t\"application/edi-x12\":                                                       false,\n\t\"application/edifact\":                                                       false,\n\t\"application/emergencycalldata.comment+xml\":                                 true,\n\t\"application/emergencycalldata.control+xml\":                                 true,\n\t\"application/emergencycalldata.deviceinfo+xml\":                              true,\n\t\"application/emergencycalldata.providerinfo+xml\":                            true,\n\t\"application/emergencycalldata.serviceinfo+xml\":                             true,\n\t\"application/emergencycalldata.subscriberinfo+xml\":                          true,\n\t\"application/emergencycalldata.veds+xml\":                                    true,\n\t\"application/emma+xml\":                                                      true,\n\t\"application/emotionml+xml\":                                                 true,\n\t\"application/epp+xml\":                                                       true,\n\t\"application/fdt+xml\":                                                       true,\n\t\"application/fhir+json\":                                                     true,\n\t\"application/fhir+xml\":                                                      true,\n\t\"application/fido.trusted-apps+json\":                                        true,\n\t\"application/font-woff\":                                                     false,\n\t\"application/framework-attributes+xml\":                                      true,\n\t\"application/geo+json\":                                                      true,\n\t\"application/geoxacml+xml\":                                                  true,\n\t\"application/gml+xml\":                                                       true,\n\t\"application/gpx+xml\":                                                       true,\n\t\"application/gzip\":                                                          false,\n\t\"application/held+xml\":                                                      true,\n\t\"application/ibe-key-request+xml\":                                           true,\n\t\"application/ibe-pkg-reply+xml\":                                             true,\n\t\"application/im-iscomposing+xml\":                                            true,\n\t\"application/inkml+xml\":                                                     true,\n\t\"application/its+xml\":                                                       true,\n\t\"application/java-archive\":                                                  false,\n\t\"application/java-serialized-object\":                                        false,\n\t\"application/java-vm\":                                                       false,\n\t\"application/javascript\":                                                    true,\n\t\"application/jf2feed+json\":                                                  true,\n\t\"application/jose+json\":                                                     true,\n\t\"application/jrd+json\":                                                      true,\n\t\"application/json\":                                                          true,\n\t\"application/json-patch+json\":                                               true,\n\t\"application/jsonml+json\":                                                   true,\n\t\"application/jwk+json\":                                                      true,\n\t\"application/jwk-set+json\":                                                  true,\n\t\"application/kpml-request+xml\":                                              true,\n\t\"application/kpml-response+xml\":                                             true,\n\t\"application/ld+json\":                                                       true,\n\t\"application/lgr+xml\":                                                       true,\n\t\"application/load-control+xml\":                                              true,\n\t\"application/lost+xml\":                                                      true,\n\t\"application/lostsync+xml\":                                                  true,\n\t\"application/mads+xml\":                                                      true,\n\t\"application/manifest+json\":                                                 true,\n\t\"application/marcxml+xml\":                                                   true,\n\t\"application/mathml+xml\":                                                    true,\n\t\"application/mathml-content+xml\":                                            true,\n\t\"application/mathml-presentation+xml\":                                       true,\n\t\"application/mbms-associated-procedure-description+xml\":                     true,\n\t\"application/mbms-deregister+xml\":                                           true,\n\t\"application/mbms-envelope+xml\":                                             true,\n\t\"application/mbms-msk+xml\":                                                  true,\n\t\"application/mbms-msk-response+xml\":                                         true,\n\t\"application/mbms-protection-description+xml\":                               true,\n\t\"application/mbms-reception-report+xml\":                                     true,\n\t\"application/mbms-register+xml\":                                             true,\n\t\"application/mbms-register-response+xml\":                                    true,\n\t\"application/mbms-schedule+xml\":                                             true,\n\t\"application/mbms-user-service-description+xml\":                             true,\n\t\"application/media-policy-dataset+xml\":                                      true,\n\t\"application/media_control+xml\":                                             true,\n\t\"application/mediaservercontrol+xml\":                                        true,\n\t\"application/merge-patch+json\":                                              true,\n\t\"application/metalink+xml\":                                                  true,\n\t\"application/metalink4+xml\":                                                 true,\n\t\"application/mets+xml\":                                                      true,\n\t\"application/mmt-usd+xml\":                                                   true,\n\t\"application/mods+xml\":                                                      true,\n\t\"application/mrb-consumer+xml\":                                              true,\n\t\"application/mrb-publish+xml\":                                               true,\n\t\"application/msc-ivr+xml\":                                                   true,\n\t\"application/msc-mixer+xml\":                                                 true,\n\t\"application/msword\":                                                        false,\n\t\"application/mud+json\":                                                      true,\n\t\"application/nlsml+xml\":                                                     true,\n\t\"application/octet-stream\":                                                  false,\n\t\"application/oebps-package+xml\":                                             true,\n\t\"application/ogg\":                                                           false,\n\t\"application/omdoc+xml\":                                                     true,\n\t\"application/p2p-overlay+xml\":                                               true,\n\t\"application/patch-ops-error+xml\":                                           true,\n\t\"application/pdf\":                                                           false,\n\t\"application/pgp-encrypted\":                                                 false,\n\t\"application/pidf+xml\":                                                      true,\n\t\"application/pidf-diff+xml\":                                                 true,\n\t\"application/pls+xml\":                                                       true,\n\t\"application/poc-settings+xml\":                                              true,\n\t\"application/postscript\":                                                    true,\n\t\"application/ppsp-tracker+json\":                                             true,\n\t\"application/problem+json\":                                                  true,\n\t\"application/problem+xml\":                                                   true,\n\t\"application/provenance+xml\":                                                true,\n\t\"application/prs.xsf+xml\":                                                   true,\n\t\"application/pskc+xml\":                                                      true,\n\t\"application/raml+yaml\":                                                     true,\n\t\"application/rdap+json\":                                                     true,\n\t\"application/rdf+xml\":                                                       true,\n\t\"application/reginfo+xml\":                                                   true,\n\t\"application/reputon+json\":                                                  true,\n\t\"application/resource-lists+xml\":                                            true,\n\t\"application/resource-lists-diff+xml\":                                       true,\n\t\"application/rfc+xml\":                                                       true,\n\t\"application/rlmi+xml\":                                                      true,\n\t\"application/rls-services+xml\":                                              true,\n\t\"application/route-apd+xml\":                                                 true,\n\t\"application/route-s-tsid+xml\":                                              true,\n\t\"application/route-usd+xml\":                                                 true,\n\t\"application/rsd+xml\":                                                       true,\n\t\"application/rss+xml\":                                                       true,\n\t\"application/rtf\":                                                           true,\n\t\"application/samlassertion+xml\":                                             true,\n\t\"application/samlmetadata+xml\":                                              true,\n\t\"application/sbml+xml\":                                                      true,\n\t\"application/scaip+xml\":                                                     true,\n\t\"application/scim+json\":                                                     true,\n\t\"application/sep+xml\":                                                       true,\n\t\"application/shf+xml\":                                                       true,\n\t\"application/simple-filter+xml\":                                             true,\n\t\"application/smil+xml\":                                                      true,\n\t\"application/soap+xml\":                                                      true,\n\t\"application/sparql-results+xml\":                                            true,\n\t\"application/spirits-event+xml\":                                             true,\n\t\"application/srgs+xml\":                                                      true,\n\t\"application/sru+xml\":                                                       true,\n\t\"application/ssdl+xml\":                                                      true,\n\t\"application/ssml+xml\":                                                      true,\n\t\"application/tar\":                                                           true,\n\t\"application/tei+xml\":                                                       true,\n\t\"application/thraud+xml\":                                                    true,\n\t\"application/ttml+xml\":                                                      true,\n\t\"application/urc-grpsheet+xml\":                                              true,\n\t\"application/urc-ressheet+xml\":                                              true,\n\t\"application/urc-targetdesc+xml\":                                            true,\n\t\"application/urc-uisocketdesc+xml\":                                          true,\n\t\"application/vcard+json\":                                                    true,\n\t\"application/vcard+xml\":                                                     true,\n\t\"application/vnd.1000minds.decision-model+xml\":                              true,\n\t\"application/vnd.3gpp-prose+xml\":                                            true,\n\t\"application/vnd.3gpp-prose-pc3ch+xml\":                                      true,\n\t\"application/vnd.3gpp.access-transfer-events+xml\":                           true,\n\t\"application/vnd.3gpp.bsf+xml\":                                              true,\n\t\"application/vnd.3gpp.gmop+xml\":                                             true,\n\t\"application/vnd.3gpp.mcptt-affiliation-command+xml\":                        true,\n\t\"application/vnd.3gpp.mcptt-floor-request+xml\":                              true,\n\t\"application/vnd.3gpp.mcptt-info+xml\":                                       true,\n\t\"application/vnd.3gpp.mcptt-location-info+xml\":                              true,\n\t\"application/vnd.3gpp.mcptt-mbms-usage-info+xml\":                            true,\n\t\"application/vnd.3gpp.mcptt-signed+xml\":                                     true,\n\t\"application/vnd.3gpp.mid-call+xml\":                                         true,\n\t\"application/vnd.3gpp.sms+xml\":                                              true,\n\t\"application/vnd.3gpp.srvcc-ext+xml\":                                        true,\n\t\"application/vnd.3gpp.srvcc-info+xml\":                                       true,\n\t\"application/vnd.3gpp.state-and-event-info+xml\":                             true,\n\t\"application/vnd.3gpp.ussd+xml\":                                             true,\n\t\"application/vnd.3gpp2.bcmcsinfo+xml\":                                       true,\n\t\"application/vnd.adobe.xdp+xml\":                                             true,\n\t\"application/vnd.amadeus+json\":                                              true,\n\t\"application/vnd.amundsen.maze+xml\":                                         true,\n\t\"application/vnd.android.package-archive\":                                   false,\n\t\"application/vnd.api+json\":                                                  true,\n\t\"application/vnd.apothekende.reservation+json\":                              true,\n\t\"application/vnd.apple.installer+xml\":                                       true,\n\t\"application/vnd.apple.pkpass\":                                              false,\n\t\"application/vnd.avalon+json\":                                               true,\n\t\"application/vnd.avistar+xml\":                                               true,\n\t\"application/vnd.balsamiq.bmml+xml\":                                         true,\n\t\"application/vnd.bbf.usp.msg+json\":                                          true,\n\t\"application/vnd.bekitzur-stech+json\":                                       true,\n\t\"application/vnd.biopax.rdf+xml\":                                            true,\n\t\"application/vnd.capasystems-pg+json\":                                       true,\n\t\"application/vnd.chemdraw+xml\":                                              true,\n\t\"application/vnd.citationstyles.style+xml\":                                  true,\n\t\"application/vnd.collection+json\":                                           true,\n\t\"application/vnd.collection.doc+json\":                                       true,\n\t\"application/vnd.collection.next+json\":                                      true,\n\t\"application/vnd.coreos.ignition+json\":                                      true,\n\t\"application/vnd.criticaltools.wbs+xml\":                                     true,\n\t\"application/vnd.ctct.ws+xml\":                                               true,\n\t\"application/vnd.cyan.dean.root+xml\":                                        true,\n\t\"application/vnd.dart\":                                                      true,\n\t\"application/vnd.datapackage+json\":                                          true,\n\t\"application/vnd.dataresource+json\":                                         true,\n\t\"application/vnd.dece.ttml+xml\":                                             true,\n\t\"application/vnd.dm.delegation+xml\":                                         true,\n\t\"application/vnd.document+json\":                                             true,\n\t\"application/vnd.drive+json\":                                                true,\n\t\"application/vnd.dvb.notif-aggregate-root+xml\":                              true,\n\t\"application/vnd.dvb.notif-container+xml\":                                   true,\n\t\"application/vnd.dvb.notif-generic+xml\":                                     true,\n\t\"application/vnd.dvb.notif-ia-msglist+xml\":                                  true,\n\t\"application/vnd.dvb.notif-ia-registration-request+xml\":                     true,\n\t\"application/vnd.dvb.notif-ia-registration-response+xml\":                    true,\n\t\"application/vnd.dvb.notif-init+xml\":                                        true,\n\t\"application/vnd.emclient.accessrequest+xml\":                                true,\n\t\"application/vnd.eprints.data+xml\":                                          true,\n\t\"application/vnd.eszigno3+xml\":                                              true,\n\t\"application/vnd.etsi.aoc+xml\":                                              true,\n\t\"application/vnd.etsi.cug+xml\":                                              true,\n\t\"application/vnd.etsi.iptvcommand+xml\":                                      true,\n\t\"application/vnd.etsi.iptvdiscovery+xml\":                                    true,\n\t\"application/vnd.etsi.iptvprofile+xml\":                                      true,\n\t\"application/vnd.etsi.iptvsad-bc+xml\":                                       true,\n\t\"application/vnd.etsi.iptvsad-cod+xml\":                                      true,\n\t\"application/vnd.etsi.iptvsad-npvr+xml\":                                     true,\n\t\"application/vnd.etsi.iptvservice+xml\":                                      true,\n\t\"application/vnd.etsi.iptvsync+xml\":                                         true,\n\t\"application/vnd.etsi.iptvueprofile+xml\":                                    true,\n\t\"application/vnd.etsi.mcid+xml\":                                             true,\n\t\"application/vnd.etsi.overload-control-policy-dataset+xml\":                  true,\n\t\"application/vnd.etsi.pstn+xml\":                                             true,\n\t\"application/vnd.etsi.sci+xml\":                                              true,\n\t\"application/vnd.etsi.simservs+xml\":                                         true,\n\t\"application/vnd.etsi.tsl+xml\":                                              true,\n\t\"application/vnd.geo+json\":                                                  true,\n\t\"application/vnd.geocube+xml\":                                               true,\n\t\"application/vnd.google-apps.document\":                                      false,\n\t\"application/vnd.google-apps.presentation\":                                  false,\n\t\"application/vnd.google-apps.spreadsheet\":                                   false,\n\t\"application/vnd.google-earth.kml+xml\":                                      true,\n\t\"application/vnd.google-earth.kmz\":                                          false,\n\t\"application/vnd.gov.sk.e-form+xml\":                                         true,\n\t\"application/vnd.gov.sk.xmldatacontainer+xml\":                               true,\n\t\"application/vnd.hal+json\":                                                  true,\n\t\"application/vnd.hal+xml\":                                                   true,\n\t\"application/vnd.handheld-entertainment+xml\":                                true,\n\t\"application/vnd.hc+json\":                                                   true,\n\t\"application/vnd.heroku+json\":                                               true,\n\t\"application/vnd.hyper+json\":                                                true,\n\t\"application/vnd.hyper-item+json\":                                           true,\n\t\"application/vnd.hyperdrive+json\":                                           true,\n\t\"application/vnd.ims.lis.v2.result+json\":                                    true,\n\t\"application/vnd.ims.lti.v2.toolconsumerprofile+json\":                       true,\n\t\"application/vnd.ims.lti.v2.toolproxy+json\":                                 true,\n\t\"application/vnd.ims.lti.v2.toolproxy.id+json\":                              true,\n\t\"application/vnd.ims.lti.v2.toolsettings+json\":                              true,\n\t\"application/vnd.ims.lti.v2.toolsettings.simple+json\":                       true,\n\t\"application/vnd.informedcontrol.rms+xml\":                                   true,\n\t\"application/vnd.infotech.project+xml\":                                      true,\n\t\"application/vnd.iptc.g2.catalogitem+xml\":                                   true,\n\t\"application/vnd.iptc.g2.conceptitem+xml\":                                   true,\n\t\"application/vnd.iptc.g2.knowledgeitem+xml\":                                 true,\n\t\"application/vnd.iptc.g2.newsitem+xml\":                                      true,\n\t\"application/vnd.iptc.g2.newsmessage+xml\":                                   true,\n\t\"application/vnd.iptc.g2.packageitem+xml\":                                   true,\n\t\"application/vnd.iptc.g2.planningitem+xml\":                                  true,\n\t\"application/vnd.irepository.package+xml\":                                   true,\n\t\"application/vnd.las.las+json\":                                              true,\n\t\"application/vnd.las.las+xml\":                                               true,\n\t\"application/vnd.liberty-request+xml\":                                       true,\n\t\"application/vnd.llamagraphics.life-balance.exchange+xml\":                   true,\n\t\"application/vnd.marlin.drm.actiontoken+xml\":                                true,\n\t\"application/vnd.marlin.drm.conftoken+xml\":                                  true,\n\t\"application/vnd.marlin.drm.license+xml\":                                    true,\n\t\"application/vnd.mason+json\":                                                true,\n\t\"application/vnd.micro+json\":                                                true,\n\t\"application/vnd.miele+json\":                                                true,\n\t\"application/vnd.mozilla.xul+xml\":                                           true,\n\t\"application/vnd.ms-excel\":                                                  false,\n\t\"application/vnd.ms-fontobject\":                                             true,\n\t\"application/vnd.ms-office.activex+xml\":                                     true,\n\t\"application/vnd.ms-opentype\":                                               true,\n\t\"application/vnd.ms-outlook\":                                                false,\n\t\"application/vnd.ms-playready.initiator+xml\":                                true,\n\t\"application/vnd.ms-powerpoint\":                                             false,\n\t\"application/vnd.ms-printdevicecapabilities+xml\":                            true,\n\t\"application/vnd.ms-printing.printticket+xml\":                               true,\n\t\"application/vnd.ms-printschematicket+xml\":                                  true,\n\t\"application/vnd.ms-xpsdocument\":                                            false,\n\t\"application/vnd.nearst.inv+json\":                                           true,\n\t\"application/vnd.nokia.conml+xml\":                                           true,\n\t\"application/vnd.nokia.iptv.config+xml\":                                     true,\n\t\"application/vnd.nokia.landmark+xml\":                                        true,\n\t\"application/vnd.nokia.landmarkcollection+xml\":                              true,\n\t\"application/vnd.nokia.n-gage.ac+xml\":                                       true,\n\t\"application/vnd.nokia.pcd+xml\":                                             true,\n\t\"application/vnd.oasis.opendocument.graphics\":                               false,\n\t\"application/vnd.oasis.opendocument.presentation\":                           false,\n\t\"application/vnd.oasis.opendocument.spreadsheet\":                            false,\n\t\"application/vnd.oasis.opendocument.text\":                                   false,\n\t\"application/vnd.oftn.l10n+json\":                                            true,\n\t\"application/vnd.oipf.contentaccessdownload+xml\":                            true,\n\t\"application/vnd.oipf.contentaccessstreaming+xml\":                           true,\n\t\"application/vnd.oipf.dae.svg+xml\":                                          true,\n\t\"application/vnd.oipf.dae.xhtml+xml\":                                        true,\n\t\"application/vnd.oipf.mippvcontrolmessage+xml\":                              true,\n\t\"application/vnd.oipf.spdiscovery+xml\":                                      true,\n\t\"application/vnd.oipf.spdlist+xml\":                                          true,\n\t\"application/vnd.oipf.ueprofile+xml\":                                        true,\n\t\"application/vnd.oipf.userprofile+xml\":                                      true,\n\t\"application/vnd.oma.bcast.associated-procedure-parameter+xml\":              true,\n\t\"application/vnd.oma.bcast.drm-trigger+xml\":                                 true,\n\t\"application/vnd.oma.bcast.imd+xml\":                                         true,\n\t\"application/vnd.oma.bcast.notification+xml\":                                true,\n\t\"application/vnd.oma.bcast.sgdd+xml\":                                        true,\n\t\"application/vnd.oma.bcast.smartcard-trigger+xml\":                           true,\n\t\"application/vnd.oma.bcast.sprov+xml\":                                       true,\n\t\"application/vnd.oma.cab-address-book+xml\":                                  true,\n\t\"application/vnd.oma.cab-feature-handler+xml\":                               true,\n\t\"application/vnd.oma.cab-pcc+xml\":                                           true,\n\t\"application/vnd.oma.cab-subs-invite+xml\":                                   true,\n\t\"application/vnd.oma.cab-user-prefs+xml\":                                    true,\n\t\"application/vnd.oma.dd2+xml\":                                               true,\n\t\"application/vnd.oma.drm.risd+xml\":                                          true,\n\t\"application/vnd.oma.group-usage-list+xml\":                                  true,\n\t\"application/vnd.oma.lwm2m+json\":                                            true,\n\t\"application/vnd.oma.pal+xml\":                                               true,\n\t\"application/vnd.oma.poc.detailed-progress-report+xml\":                      true,\n\t\"application/vnd.oma.poc.final-report+xml\":                                  true,\n\t\"application/vnd.oma.poc.groups+xml\":                                        true,\n\t\"application/vnd.oma.poc.invocation-descriptor+xml\":                         true,\n\t\"application/vnd.oma.poc.optimized-progress-report+xml\":                     true,\n\t\"application/vnd.oma.scidm.messages+xml\":                                    true,\n\t\"application/vnd.oma.xcap-directory+xml\":                                    true,\n\t\"application/vnd.omads-email+xml\":                                           true,\n\t\"application/vnd.omads-file+xml\":                                            true,\n\t\"application/vnd.omads-folder+xml\":                                          true,\n\t\"application/vnd.openblox.game+xml\":                                         true,\n\t\"application/vnd.openstreetmap.data+xml\":                                    true,\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":       true,\n\t\"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\":                 true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":   true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\":   true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": true,\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\":  true,\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\":      true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\":       true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":            false,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\":   true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\":               true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\":      true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\":                true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\":       true,\n\t\"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\":             true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\":    true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\":      true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\":        true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":                    false,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":           true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\":        true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\":               true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":                true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\":        true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": true,\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\":                              true,\n\t\"application/vnd.openxmlformats-officedocument.themeoverride+xml\":                      true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":              false,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\":         true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\":          true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\":            true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\":     true,\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\":       true,\n\t\"application/vnd.openxmlformats-package.core-properties+xml\":                           true,\n\t\"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\":            true,\n\t\"application/vnd.openxmlformats-package.relationships+xml\":                             true,\n\t\"application/vnd.oracle.resource+json\":                                                 true,\n\t\"application/vnd.otps.ct-kip+xml\":                                                      true,\n\t\"application/vnd.pagerduty+json\":                                                       true,\n\t\"application/vnd.paos+xml\":                                                             true,\n\t\"application/vnd.poc.group-advertisement+xml\":                                          true,\n\t\"application/vnd.pwg-xhtml-print+xml\":                                                  true,\n\t\"application/vnd.radisys.moml+xml\":                                                     true,\n\t\"application/vnd.radisys.msml+xml\":                                                     true,\n\t\"application/vnd.radisys.msml-audit+xml\":                                               true,\n\t\"application/vnd.radisys.msml-audit-conf+xml\":                                          true,\n\t\"application/vnd.radisys.msml-audit-conn+xml\":                                          true,\n\t\"application/vnd.radisys.msml-audit-dialog+xml\":                                        true,\n\t\"application/vnd.radisys.msml-audit-stream+xml\":                                        true,\n\t\"application/vnd.radisys.msml-conf+xml\":                                                true,\n\t\"application/vnd.radisys.msml-dialog+xml\":                                              true,\n\t\"application/vnd.radisys.msml-dialog-base+xml\":                                         true,\n\t\"application/vnd.radisys.msml-dialog-fax-detect+xml\":                                   true,\n\t\"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\":                                 true,\n\t\"application/vnd.radisys.msml-dialog-group+xml\":                                        true,\n\t\"application/vnd.radisys.msml-dialog-speech+xml\":                                       true,\n\t\"application/vnd.radisys.msml-dialog-transform+xml\":                                    true,\n\t\"application/vnd.recordare.musicxml+xml\":                                               true,\n\t\"application/vnd.restful+json\":                                                         true,\n\t\"application/vnd.route66.link66+xml\":                                                   true,\n\t\"application/vnd.shootproof+json\":                                                      true,\n\t\"application/vnd.siren+json\":                                                           true,\n\t\"application/vnd.software602.filler.form+xml\":                                          true,\n\t\"application/vnd.solent.sdkm+xml\":                                                      true,\n\t\"application/vnd.sun.wadl+xml\":                                                         true,\n\t\"application/vnd.syncml+xml\":                                                           true,\n\t\"application/vnd.syncml.dm+xml\":                                                        true,\n\t\"application/vnd.syncml.dmddf+xml\":                                                     true,\n\t\"application/vnd.syncml.dmtnds+xml\":                                                    true,\n\t\"application/vnd.tableschema+json\":                                                     true,\n\t\"application/vnd.think-cell.ppttc+json\":                                                true,\n\t\"application/vnd.tmd.mediaflex.api+xml\":                                                true,\n\t\"application/vnd.uoml+xml\":                                                             true,\n\t\"application/vnd.vel+json\":                                                             true,\n\t\"application/vnd.wv.csp+xml\":                                                           true,\n\t\"application/vnd.wv.ssp+xml\":                                                           true,\n\t\"application/vnd.xacml+json\":                                                           true,\n\t\"application/vnd.xmi+xml\":                                                              true,\n\t\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":                                    true,\n\t\"application/vnd.zzazz.deck+xml\":                                                       true,\n\t\"application/voicexml+xml\":                                                             true,\n\t\"application/voucher-cms+json\":                                                         true,\n\t\"application/wasm\":                                                                     true,\n\t\"application/watcherinfo+xml\":                                                          true,\n\t\"application/webpush-options+json\":                                                     true,\n\t\"application/wsdl+xml\":                                                                 true,\n\t\"application/wspolicy+xml\":                                                             true,\n\t\"application/x-7z-compressed\":                                                          false,\n\t\"application/x-arj\":                                                                    false,\n\t\"application/x-bdoc\":                                                                   false,\n\t\"application/x-bzip\":                                                                   false,\n\t\"application/x-bzip2\":                                                                  false,\n\t\"application/x-deb\":                                                                    false,\n\t\"application/x-dtbncx+xml\":                                                             true,\n\t\"application/x-dtbook+xml\":                                                             true,\n\t\"application/x-dtbresource+xml\":                                                        true,\n\t\"application/x-dvi\":                                                                    false,\n\t\"application/x-httpd-php\":                                                              true,\n\t\"application/x-java-jnlp-file\":                                                         false,\n\t\"application/x-javascript\":                                                             true,\n\t\"application/x-latex\":                                                                  false,\n\t\"application/x-mpegurl\":                                                                false,\n\t\"application/x-ns-proxy-autoconfig\":                                                    true,\n\t\"application/x-pkcs12\":                                                                 false,\n\t\"application/x-rar-compressed\":                                                         false,\n\t\"application/x-sh\":                                                                     true,\n\t\"application/x-shockwave-flash\":                                                        false,\n\t\"application/x-stuffit\":                                                                false,\n\t\"application/x-tar\":                                                                    true,\n\t\"application/x-virtualbox-hdd\":                                                         true,\n\t\"application/x-virtualbox-ova\":                                                         true,\n\t\"application/x-virtualbox-ovf\":                                                         true,\n\t\"application/x-virtualbox-vbox\":                                                        true,\n\t\"application/x-virtualbox-vbox-extpack\":                                                false,\n\t\"application/x-virtualbox-vdi\":                                                         true,\n\t\"application/x-virtualbox-vhd\":                                                         true,\n\t\"application/x-virtualbox-vmdk\":                                                        true,\n\t\"application/x-web-app-manifest+json\":                                                  true,\n\t\"application/x-www-form-urlencoded\":                                                    true,\n\t\"application/x-xliff+xml\":                                                              true,\n\t\"application/x-xpinstall\":                                                              false,\n\t\"application/xacml+xml\":                                                                true,\n\t\"application/xaml+xml\":                                                                 true,\n\t\"application/xcap-att+xml\":                                                             true,\n\t\"application/xcap-caps+xml\":                                                            true,\n\t\"application/xcap-diff+xml\":                                                            true,\n\t\"application/xcap-el+xml\":                                                              true,\n\t\"application/xcap-error+xml\":                                                           true,\n\t\"application/xcap-ns+xml\":                                                              true,\n\t\"application/xcon-conference-info+xml\":                                                 true,\n\t\"application/xcon-conference-info-diff+xml\":                                            true,\n\t\"application/xenc+xml\":                                                                 true,\n\t\"application/xhtml+xml\":                                                                true,\n\t\"application/xhtml-voice+xml\":                                                          true,\n\t\"application/xliff+xml\":                                                                true,\n\t\"application/xml\":                                                                      true,\n\t\"application/xml-dtd\":                                                                  true,\n\t\"application/xml-patch+xml\":                                                            true,\n\t\"application/xmpp+xml\":                                                                 true,\n\t\"application/xop+xml\":                                                                  true,\n\t\"application/xproc+xml\":                                                                true,\n\t\"application/xslt+xml\":                                                                 true,\n\t\"application/xspf+xml\":                                                                 true,\n\t\"application/xv+xml\":                                                                   true,\n\t\"application/yang-data+json\":                                                           true,\n\t\"application/yang-data+xml\":                                                            true,\n\t\"application/yang-patch+json\":                                                          true,\n\t\"application/yang-patch+xml\":                                                           true,\n\t\"application/yin+xml\":                                                                  true,\n\t\"application/zip\":                                                                      false,\n\t\"audio/3gpp\":                                                                           false,\n\t\"audio/basic\":                                                                          false,\n\t\"audio/l24\":                                                                            false,\n\t\"audio/mp3\":                                                                            false,\n\t\"audio/mp4\":                                                                            false,\n\t\"audio/mpeg\":                                                                           false,\n\t\"audio/ogg\":                                                                            false,\n\t\"audio/vnd.rn-realaudio\":                                                               false,\n\t\"audio/vnd.wave\":                                                                       false,\n\t\"audio/vorbis\":                                                                         false,\n\t\"audio/wav\":                                                                            false,\n\t\"audio/wave\":                                                                           false,\n\t\"audio/webm\":                                                                           false,\n\t\"audio/x-aac\":                                                                          false,\n\t\"audio/x-caf\":                                                                          false,\n\t\"font/otf\":                                                                             true,\n\t\"image/apng\":                                                                           false,\n\t\"image/bmp\":                                                                            true,\n\t\"image/gif\":                                                                            false,\n\t\"image/jp2\":                                                                            false,\n\t\"image/jpeg\":                                                                           false,\n\t\"image/jpm\":                                                                            false,\n\t\"image/jpx\":                                                                            false,\n\t\"image/pjpeg\":                                                                          false,\n\t\"image/png\":                                                                            false,\n\t\"image/svg+xml\":                                                                        true,\n\t\"image/tiff\":                                                                           false,\n\t\"image/vnd.adobe.photoshop\":                                                            true,\n\t\"image/x-icon\":                                                                         true,\n\t\"image/x-ms-bmp\":                                                                       true,\n\t\"image/x-xcf\":                                                                          false,\n\t\"message/http\":                                                                         false,\n\t\"message/imdn+xml\":                                                                     true,\n\t\"message/partial\":                                                                      false,\n\t\"message/rfc822\":                                                                       true,\n\t\"model/gltf+json\":                                                                      true,\n\t\"model/gltf-binary\":                                                                    true,\n\t\"model/iges\":                                                                           false,\n\t\"model/mesh\":                                                                           false,\n\t\"model/vnd.collada+xml\":                                                                true,\n\t\"model/vnd.moml+xml\":                                                                   true,\n\t\"model/vrml\":                                                                           false,\n\t\"model/x3d+binary\":                                                                     false,\n\t\"model/x3d+vrml\":                                                                       false,\n\t\"model/x3d+xml\":                                                                        true,\n\t\"multipart/alternative\":                                                                false,\n\t\"multipart/encrypted\":                                                                  false,\n\t\"multipart/form-data\":                                                                  false,\n\t\"multipart/mixed\":                                                                      false,\n\t\"multipart/related\":                                                                    false,\n\t\"multipart/signed\":                                                                     false,\n\t\"text/cache-manifest\":                                                                  true,\n\t\"text/calender\":                                                                        true,\n\t\"text/cmd\":                                                                             true,\n\t\"text/css\":                                                                             true,\n\t\"text/csv\":                                                                             true,\n\t\"text/html\":                                                                            true,\n\t\"text/javascript\":                                                                      true,\n\t\"text/jsx\":                                                                             true,\n\t\"text/markdown\":                                                                        true,\n\t\"text/n3\":                                                                              true,\n\t\"text/plain\":                                                                           true,\n\t\"text/richtext\":                                                                        true,\n\t\"text/rtf\":                                                                             true,\n\t\"text/tab-separated-values\":                                                            true,\n\t\"text/uri-list\":                                                                        true,\n\t\"text/vcard\":                                                                           true,\n\t\"text/vtt\":                                                                             true,\n\t\"text/x-gwt-rpc\":                                                                       true,\n\t\"text/x-jquery-tmpl\":                                                                   true,\n\t\"text/x-markdown\":                                                                      true,\n\t\"text/x-org\":                                                                           true,\n\t\"text/x-processing\":                                                                    true,\n\t\"text/x-suse-ymp\":                                                                      true,\n\t\"text/xml\":                                                                             true,\n\t\"video/mp4\":                                                                            false,\n\t\"video/mpeg\":                                                                           false,\n\t\"video/ogg\":                                                                            false,\n\t\"video/quicktime\":                                                                      false,\n\t\"video/webm\":                                                                           false,\n\t\"video/x-flv\":                                                                          false,\n\t\"video/x-matroska\":                                                                     false,\n\t\"video/x-ms-wmv\":                                                                       false,\n\t\"x-shader/x-fragment\":                                                                  true,\n\t\"x-shader/x-vertex\":                                                                    true,\n}\n"
  },
  {
    "path": "catfs/mio/compress/reader.go",
    "content": "package compress\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\n\t\"github.com/sahib/brig/catfs/mio/chunkbuf\"\n)\n\n// Reader implements an decompressing reader\ntype Reader struct {\n\t// Underlying raw, compressed datastream.\n\trawR io.ReadSeeker\n\n\t// Index with records which contain chunk offsets.\n\tindex []record\n\n\t// Buffer holds currently read data; maxChunkSize.\n\tchunkBuf *chunkbuf.ChunkBuffer\n\n\t// Structure with parsed trailer.\n\ttrailer *trailer\n\n\t// Current seek offset in the compressed stream.\n\trawSeekOffset int64\n\n\t// Current seek offset in the uncompressed stream.\n\tzipSeekOffset int64\n\n\t// Marker to identify initial read.\n\tisInitialRead bool\n\n\t// Holds algorithm interface.\n\talgo Algorithm\n\n\t// buffer for reading in the raw stream for decoding.\n\trawBuf []byte\n\n\t// buffer to hold one chunks so Read() can take chunks of it.\n\tdecBuf []byte\n}\n\n// Seek implements io.Seeker\nfunc (r *Reader) Seek(destOff int64, whence int) (int64, error) {\n\tswitch whence {\n\tcase io.SeekEnd:\n\t\tif destOff > 0 {\n\t\t\treturn 0, io.EOF\n\t\t}\n\n\t\tif err := r.parseTrailerIfNeeded(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\treturn r.Seek(r.index[len(r.index)-1].rawOff+destOff, io.SeekStart)\n\tcase io.SeekCurrent:\n\t\treturn r.Seek(r.zipSeekOffset+destOff, io.SeekStart)\n\t}\n\n\tif err := r.parseTrailerIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tif destOff < 0 {\n\t\treturn 0, io.EOF\n\t}\n\n\tdestRecord, _ := r.chunkLookup(destOff, true)\n\tcurrRecord, _ := r.chunkLookup(r.zipSeekOffset, true)\n\n\tr.rawSeekOffset = destRecord.zipOff\n\tr.zipSeekOffset = destOff\n\n\t// Don't re-read if offset is in current chunk.\n\tif currRecord.rawOff != destRecord.rawOff || !r.isInitialRead {\n\t\tif _, err := r.readZipChunk(); err != nil && err != io.EOF {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\ttoRead := destOff - destRecord.rawOff\n\tif _, err := r.chunkBuf.Seek(toRead, io.SeekStart); err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn destOff, nil\n}\n\n// Return start (prevRecord) and end (currRecord) of a chunk currOff is located\n// in. If currOff is 0, the first and second record is returned. If currOff is\n// at the end of file the end record (currRecord) is returned twice.  The offset\n// difference (chunksize) between prevRecord and currRecord is then equal to 0.\nfunc (r *Reader) chunkLookup(currOff int64, isRawOff bool) (*record, *record) {\n\t// Get smallest index that is before given currOff.\n\ti := sort.Search(len(r.index), func(i int) bool {\n\t\tif isRawOff {\n\t\t\treturn r.index[i].rawOff > currOff\n\t\t}\n\t\treturn r.index[i].zipOff > currOff\n\t})\n\n\t// Beginning of the file, first chunk: prev offset is 0, curr offset is 1.\n\tif i == 0 {\n\t\treturn &r.index[i], &r.index[i+1]\n\t}\n\n\t// End of the file, last chunk: prev and curr offset is the last index.\n\tif i == len(r.index) {\n\t\treturn &r.index[i-1], &r.index[i-1]\n\t}\n\treturn &r.index[i-1], &r.index[i]\n}\n\nfunc (r *Reader) parseTrailerIfNeeded() error {\n\tif r.trailer != nil {\n\t\treturn nil\n\t}\n\n\t// Attempt to read the front header:\n\theaderBuf := [headerSize]byte{}\n\tif _, err := io.ReadFull(r.rawR, headerBuf[:]); err != nil {\n\t\treturn err\n\t}\n\n\theader, err := readHeader(headerBuf[:])\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Goto end of file and read trailer buffer.\n\tif _, err := r.rawR.Seek(-trailerSize, io.SeekEnd); err != nil {\n\t\treturn err\n\t}\n\n\tbuf := [trailerSize]byte{}\n\tn, err := io.ReadFull(r.rawR, buf[:])\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif n != trailerSize {\n\t\treturn fmt.Errorf(\"read trailer was too small: %d bytes\", n)\n\t}\n\n\tr.trailer = &trailer{}\n\tr.trailer.unmarshal(buf[:])\n\n\talgo, err := algorithmFromType(header.algo)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Allocate the rawBuf depending on the algorithm that was used.\n\t// Every compression algorithm might produce data that is bigger\n\t// than the original data in edge cases. `rawBuf` has to be big\n\t// enough to account for this edge case. We double check this\n\t// during Read() to avoid overflows.\n\tr.algo = algo\n\tr.rawBuf = make([]byte, algo.MaxEncodeBufferSize())\n\n\t// Seek and read index into buffer.\n\tseekIdx := -(int64(r.trailer.indexSize) + trailerSize)\n\tif _, err := r.rawR.Seek(seekIdx, io.SeekEnd); err != nil {\n\t\treturn err\n\t}\n\n\tindexBuf := make([]byte, r.trailer.indexSize)\n\tif _, err := io.ReadFull(r.rawR, indexBuf); err != nil {\n\t\treturn err\n\t}\n\n\t// Build index with records. A record encapsulates a raw offset and the\n\t// compressed offset it is mapped to.\n\tprevRecord := record{-1, -1}\n\tfor i := uint64(0); i < (r.trailer.indexSize / indexChunkSize); i++ {\n\t\tcurrRecord := record{}\n\t\tcurrRecord.unmarshal(indexBuf)\n\n\t\tif prevRecord.rawOff >= currRecord.rawOff {\n\t\t\treturn ErrBadIndex\n\t\t}\n\n\t\tif prevRecord.zipOff >= currRecord.zipOff {\n\t\t\treturn ErrBadIndex\n\t\t}\n\n\t\tr.index = append(r.index, currRecord)\n\t\tindexBuf = indexBuf[indexChunkSize:]\n\t}\n\n\t// Set Reader to beginning of file\n\tif _, err := r.rawR.Seek(headerSize, io.SeekStart); err != nil {\n\n\t\treturn err\n\t}\n\n\tr.rawSeekOffset = headerSize\n\tr.zipSeekOffset = 0\n\treturn nil\n}\n\n// WriteTo implements io.WriterTo\nfunc (r *Reader) WriteTo(w io.Writer) (int64, error) {\n\tif err := r.parseTrailerIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\twritten := int64(0)\n\n\tn, cerr := io.Copy(w, r.chunkBuf)\n\tif cerr != nil {\n\t\treturn n, cerr\n\t}\n\twritten += n\n\tfor {\n\t\tdecData, rerr := r.readZipChunk()\n\t\tif rerr == io.EOF {\n\t\t\treturn written, nil\n\t\t}\n\n\t\tif rerr != nil {\n\t\t\treturn written, rerr\n\t\t}\n\n\t\tn, werr := w.Write(decData)\n\t\twritten += int64(n)\n\n\t\tif werr != nil {\n\t\t\treturn written, werr\n\t\t}\n\t}\n}\n\n// Read reads len(p) bytes from the compressed stream into p.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tif err := r.parseTrailerIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tread := 0\n\tfor {\n\t\tif r.chunkBuf.Len() != 0 {\n\t\t\tn, err := r.chunkBuf.Read(p)\n\n\t\t\t// NOTE: Read() might return io.EOF to indicate that the\n\t\t\t//       chunk is exhausted. We should look at the next chunk\n\t\t\t//       (readZipChunk will figure out if there are any)\n\t\t\tif err != nil && err != io.EOF {\n\t\t\t\treturn n, err\n\t\t\t}\n\n\t\t\tr.zipSeekOffset += int64(n)\n\t\t\tread += n\n\t\t\tp = p[n:]\n\t\t}\n\n\t\tif len(p) == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\tif _, err := r.readZipChunk(); err != nil {\n\t\t\treturn read, err\n\t\t}\n\t}\n\n\treturn read, nil\n}\n\nfunc (r *Reader) fixZipChunk() (int64, error) {\n\t// Get the start and end record of the chunk currOff is located in.\n\tprevRecord, currRecord := r.chunkLookup(r.rawSeekOffset, false)\n\tif currRecord == nil || prevRecord == nil {\n\t\treturn 0, ErrBadIndex\n\t}\n\n\t// Determinate uncompressed chunksize; should only be 0 on empty file or at the end of file.\n\tchunkSize := currRecord.zipOff - prevRecord.zipOff\n\tif chunkSize == 0 {\n\t\treturn 0, io.EOF\n\t}\n\n\t// Set Reader to compressed offset.\n\tif _, err := r.rawR.Seek(prevRecord.zipOff, io.SeekStart); err != nil {\n\t\treturn 0, err\n\t}\n\n\tr.rawSeekOffset = currRecord.zipOff\n\tr.zipSeekOffset = prevRecord.rawOff\n\tr.isInitialRead = false\n\treturn chunkSize, nil\n}\n\nfunc (r *Reader) readZipChunk() ([]byte, error) {\n\t// Get current position of the Reader; offset of the compressed file.\n\tr.chunkBuf.Reset(nil)\n\tchunkSize, err := r.fixZipChunk()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(r.rawBuf) < int(chunkSize) {\n\t\t// NOTE: When len(r.rawBuf) is < chunkSize ErrShortBuffer is returned.\n\t\t// This should only happen on malicious input with far too high chunkSize.\n\t\t// r.rawBuf should be able to hold any compressed stream derived from any\n\t\t// block with size maxChunkSize.\n\t\treturn nil, io.ErrShortBuffer\n\t}\n\n\tn, err := io.ReadFull(r.rawR, r.rawBuf[:int(chunkSize)])\n\tif err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {\n\t\treturn nil, err\n\t}\n\n\t// decData should be a slice of `r.decBuf` to avoid allocations.\n\tdecData, err := r.algo.Decode(r.decBuf, r.rawBuf[:n])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tr.chunkBuf.Reset(decData)\n\treturn decData, nil\n}\n\n// NewReader returns a new ReadSeeker with compression support. As random access\n// is the purpose of this layer, a ReadSeeker is required as parameter. The used\n// compression algorithm is chosen based on trailer information.\nfunc NewReader(r io.ReadSeeker) *Reader {\n\treturn &Reader{\n\t\trawR:     r,\n\t\tchunkBuf: chunkbuf.NewChunkBuffer([]byte{}),\n\t\tdecBuf:   make([]byte, maxChunkSize),\n\t}\n}\n"
  },
  {
    "path": "catfs/mio/compress/writer.go",
    "content": "package compress\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\n\t\"github.com/sahib/brig/util\"\n)\n\n// Writer implements a compression writer.\ntype Writer struct {\n\t// Underlying raw, uncompressed data stream.\n\trawW io.Writer\n\n\t// Buffers data into maxChunkSize chunks.\n\tchunkBuf *bytes.Buffer\n\n\t// Index with records which contain chunk offsets.\n\tindex []record\n\n\t// Accumulator representing uncompressed offset.\n\trawOff int64\n\n\t// Accumulator representing compressed offset.\n\tzipOff int64\n\n\t// Holds trailer data.\n\ttrailer *trailer\n\n\t// Holds algorithm interface.\n\talgo Algorithm\n\n\t// Type of the algorithm\n\talgoType AlgorithmType\n\n\t// Becomes true after the first write.\n\theaderWritten bool\n\n\tencBuf []byte\n}\n\nfunc (w *Writer) addRecordToIndex() {\n\tw.index = append(w.index, record{w.rawOff, w.zipOff})\n}\n\nfunc (w *Writer) flushBuffer(data []byte) error {\n\tif len(data) <= 0 {\n\t\treturn nil\n\t}\n\n\t// Add record with start offset of the current chunk.\n\tw.addRecordToIndex()\n\n\t// Compress and flush the current chunk.\n\t// encData should be a slice of `w.encBuf`\n\tencData, err := w.algo.Encode(w.encBuf, data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tn, err := w.rawW.Write(encData)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Update offset for the current chunk.\n\tw.rawOff += int64(len(data))\n\tw.zipOff += int64(n)\n\treturn nil\n}\n\nfunc (w *Writer) writeHeaderIfNeeded() error {\n\tif w.headerWritten {\n\t\treturn nil\n\t}\n\n\tif _, err := w.rawW.Write(makeHeader(w.algoType, currentVersion)); err != nil {\n\t\treturn err\n\t}\n\n\tw.headerWritten = true\n\tw.zipOff += headerSize\n\treturn nil\n}\n\n// ReadFrom implements io.ReaderFrom\nfunc (w *Writer) ReadFrom(r io.Reader) (n int64, err error) {\n\tread := 0\n\tbuf := make([]byte, maxChunkSize)\n\n\tif err := w.writeHeaderIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tfor {\n\t\t// Only last block may be < maxChunkSize.\n\t\t// So we need to make sure to fill the buffer as best we can.\n\t\tn, rerr := io.ReadFull(r, buf)\n\t\tread += n\n\t\tif rerr != nil && rerr != io.ErrUnexpectedEOF && rerr != io.EOF {\n\t\t\treturn int64(read), rerr\n\t\t}\n\n\t\twerr := w.flushBuffer(buf[:n])\n\t\tif werr != nil && werr != io.EOF {\n\t\t\treturn int64(read), werr\n\t\t}\n\n\t\tif werr == io.EOF || rerr == io.EOF || rerr == io.ErrUnexpectedEOF {\n\t\t\treturn int64(read), nil\n\t\t}\n\t}\n}\n\nfunc (w *Writer) Write(p []byte) (n int, err error) {\n\tif err := w.writeHeaderIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\twritten := len(p)\n\t// Compress only maxChunkSize equal chunks.\n\tfor {\n\t\tn, _ := w.chunkBuf.Write(p[:util.Min(len(p), maxChunkSize)])\n\n\t\tif w.chunkBuf.Len() < maxChunkSize {\n\t\t\tbreak\n\t\t}\n\n\t\tif err := w.flushBuffer(w.chunkBuf.Next(maxChunkSize)); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tp = p[n:]\n\t}\n\treturn written, nil\n}\n\n// NewWriter returns a WriteCloser with compression support.\nfunc NewWriter(w io.Writer, algoType AlgorithmType) (*Writer, error) {\n\talgo, err := algorithmFromType(algoType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Writer{\n\t\trawW:     w,\n\t\talgo:     algo,\n\t\talgoType: algoType,\n\t\tencBuf:   make([]byte, algo.MaxEncodeBufferSize()),\n\t\tchunkBuf: &bytes.Buffer{},\n\t\ttrailer:  &trailer{},\n\t}, nil\n}\n\n// Close cleans up internal resources.\n// Make sure to call close always since it might write data.\nfunc (w *Writer) Close() error {\n\tif err := w.writeHeaderIfNeeded(); err != nil {\n\t\treturn err\n\t}\n\n\t// Write remaining bytes left in buffer and update index.\n\tif err := w.flushBuffer(w.chunkBuf.Bytes()); err != nil {\n\t\treturn err\n\t}\n\tw.addRecordToIndex()\n\n\t// Handle trailer of uncompressed file.\n\t// Write compression index trailer and close stream.\n\tw.trailer.indexSize = uint64(indexChunkSize * len(w.index))\n\tindexBuf := make([]byte, w.trailer.indexSize)\n\tindexBufStartOff := indexBuf\n\tfor _, record := range w.index {\n\t\trecord.marshal(indexBuf)\n\t\tindexBuf = indexBuf[indexChunkSize:]\n\t}\n\n\tif n, err := w.rawW.Write(indexBufStartOff); err != nil || uint64(n) != w.trailer.indexSize {\n\t\treturn err\n\t}\n\n\t// Write trailer buffer (algo, chunksize, indexsize)\n\t// at the end of file and close the stream.\n\ttrailerSizeBuf := make([]byte, trailerSize)\n\tw.trailer.marshal(trailerSizeBuf)\n\n\tif _, err := w.rawW.Write(trailerSizeBuf); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/mio/doc.go",
    "content": "// Package mio (short for memory input/output) implements the layered io stack\n// of brig. This includes currently three major parts:\n//\n// - encrypt  - Encryption and Decryption layer with seeking support.\n// - compress - Seekable Compression and Decompression with exchangable algorithms.\n// - overlay  - In-Memory write overlay over a io.Reader with seek support.\n//\n// This package itself contains utils that stack those on top of each of other\n// in an already usable fashion.\npackage mio\n"
  },
  {
    "path": "catfs/mio/encrypt/format.go",
    "content": "// Package encrypt implements the encryption layer of brig.\n// The file format used looks something like this:\n//\n// [HEADER][[BLOCKHEADER][PAYLOAD]...]\n//\n// HEADER is 20+16 bytes big and contains the following fields:\n//    -   8 Byte: Magic number (to identify non-brig files quickly)\n//    -   4 Byte: Flags (describing the stream)\n//    -   2 Byte: Key length in bytes\n//    -   2 Byte: Reserved for future use.\n//\t  -   4 Byte: Maximum size of each block (last may be less)\n//    -  16 Byte: MAC protecting the header from forgery\n//\n// BLOCKHEADER contains the following fields:\n//    - 8 Byte: Nonce: Derived from the current block number.\n//                     The block number is checked to be correct on decryption.\n//\n// PAYLOAD contains the actual encrypted data, which includes a MAC at the end.\n// The size of the MAC depends on the algorithm, for poly1305 it's 16 bytes.\n//\n// All header metadata is encoded in little endian.\n//\n// Reader/Writer are capable or reading/writing this format.  Additionally,\n// Reader supports efficient seeking into the encrypted data, provided the\n// underlying datastream supports seeking.  SEEK_END is only supported when the\n// number of encrypted blocks is present in the header.\npackage encrypt\n\nimport (\n\t\"bytes\"\n\t\"crypto/aes\"\n\t\"crypto/cipher\"\n\t\"crypto/hmac\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\n\tchacha \"golang.org/x/crypto/chacha20poly1305\"\n\t\"golang.org/x/crypto/sha3\"\n)\n\n// Flags indicate with what options a stream was encoded.\n// Some flags are not compatible to each other, see below.\ntype Flags int32\n\n// Possible ciphers in Counter mode:\nconst (\n\t// FlagEmpty is invalid\n\tFlagEmpty = Flags(0)\n\n\t// FlagEncryptAES256GCM indicates the stream was encrypted with AES256 in GCM mode.\n\t// This should be fast on modern CPUs.\n\tFlagEncryptAES256GCM = Flags(1) << iota\n\n\t// FlagEncryptChaCha20 incidate that the stream was encrypted with ChaCha20.\n\t// This can be a good choice if your CPU does not support the AES-NI instruction set.\n\tFlagEncryptChaCha20\n\n\t// reserve some flags for more encryption types.\n\t// no particular reason, just want to have enc-type flags to be in line.\n\tflagReserved1\n\tflagReserved2\n\tflagReserved3\n\tflagReserved4\n\tflagReserved5\n\tflagReserved6\n\n\t// FlagCompressedInside indicates that the encrypted data was also compressed.\n\t// This can be used to decide at runtime what streaming is needed.\n\tFlagCompressedInside\n)\n\n// Other constants:\nconst (\n\t// Size of the header mac:\n\tmacSize = 16\n\n\t// current file format version, increment on incompatible changes.\n\tversion = 1\n\n\t// Size of the initial header:\n\theaderSize = 20 + macSize\n\n\t// Default maxBlockSize if not set\n\tdefaultMaxBlockSize = 64 * 1024\n\n\tdefaultDecBufferSize = defaultMaxBlockSize\n\tdefaultEncBufferSize = defaultMaxBlockSize + 40\n)\n\nvar (\n\t// MagicNumber contains the first 8 byte of every brig header.\n\t// For various reasons, it is the ascii string \"moosecat\".\n\tMagicNumber = []byte{\n\t\t0x6d, 0x6f, 0x6f, 0x73,\n\t\t0x65, 0x63, 0x61, 0x74,\n\t}\n)\n\n////////////////////\n// Header Parsing //\n////////////////////\n\n// GenerateHeader creates a valid header for the format file\nfunc GenerateHeader(key []byte, maxBlockSize int64, flags Flags) []byte {\n\t// This is in big endian:\n\theader := []byte{\n\t\t// magic number (8 Byte):\n\t\t0, 0, 0, 0, 0, 0, 0, 0,\n\t\t// Flags (4 byte):\n\t\t0, 0, 0, 0,\n\t\t// Key length (4 Byte):\n\t\t0, 0, 0, 0,\n\t\t// Block length (4 Byte):\n\t\t0, 0, 0, 0,\n\t\t// MAC Header (16 Byte):\n\t\t0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0,\n\t}\n\n\t// Magic number:\n\tcopy(header[:len(MagicNumber)], MagicNumber)\n\tbinary.LittleEndian.PutUint32(header[8:12], uint32(flags))\n\n\t// Encode key size (static at the moment):\n\tbinary.LittleEndian.PutUint32(header[12:16], uint32(32))\n\n\t// Encode max block size:\n\tbinary.LittleEndian.PutUint32(header[16:20], uint32(maxBlockSize))\n\n\t// Calculate a MAC of the header; this needs to be done last:\n\theaderMac := hmac.New(sha3.New224, key)\n\tif _, err := headerMac.Write(header[:headerSize-macSize]); err != nil {\n\t\treturn nil\n\t}\n\n\t// Copy the MAC to the output:\n\tshortHeaderMac := headerMac.Sum(nil)[:macSize]\n\tcopy(header[headerSize-macSize:headerSize], shortHeaderMac)\n\n\treturn header\n}\n\n// HeaderInfo represents a parsed header.\ntype HeaderInfo struct {\n\t// Version of the file format. Currently always 1.\n\tVersion uint16\n\n\t// Cipher type used in the file.\n\tCipherBit Flags\n\n\t// KeyLen is the number of bytes in the encryption key.\n\tKeyLen uint32\n\n\t// BlockLen is the max. number of bytes in a block.\n\t// The last block may be smaller.\n\tBlockLen uint32\n\n\t// Flags control the encryption algorithm and other things.\n\tFlags Flags\n}\n\nvar (\n\t// ErrSmallHeader is returned when the header is too small to parse.\n\t// Usually happens when trying to decrypt a raw stream.\n\tErrSmallHeader = errors.New(\"header is too small\")\n\n\t// ErrBadMagic is returned when the stream does not start with the magic number.\n\t// Usually happens when trying to decrypt a raw or compressed stream.\n\tErrBadMagic = errors.New(\"magic number missing\")\n\n\t// ErrBadFlags means that you passed an invalid flags combination\n\t// or the stream was modified to have wrong flags.\n\tErrBadFlags = errors.New(\"inconsistent header flags\")\n\n\t// ErrBadHeaderMAC means that the header is not what the writer originally\n\t// put into the stream. Usually means somebody or something changed it.\n\tErrBadHeaderMAC = errors.New(\"header mac differs from expected\")\n)\n\nfunc cipherTypeBitFromFlags(flags Flags) (Flags, error) {\n\tvar cipherBit Flags\n\tvar bits = []Flags{\n\t\tFlagEncryptAES256GCM,\n\t\tFlagEncryptChaCha20,\n\t}\n\n\tfor _, bit := range bits {\n\t\tif flags&bit == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif cipherBit != 0 {\n\t\t\t// only one bit at the same time allowed.\n\t\t\treturn 0, ErrBadFlags\n\t\t}\n\n\t\tcipherBit = bit\n\t}\n\n\tif cipherBit == 0 {\n\t\t// no algorithm set: also error out.\n\t\treturn 0, ErrBadFlags\n\t}\n\n\treturn cipherBit, nil\n}\n\n// ParseHeader parses the header of the format file. Returns the flags, key\n// and block length. If parsing fails, an error is returned.\nfunc ParseHeader(header, key []byte) (*HeaderInfo, error) {\n\tif len(header) < len(MagicNumber) {\n\t\treturn nil, ErrSmallHeader\n\t}\n\n\tif bytes.Compare(header[:len(MagicNumber)], MagicNumber) != 0 {\n\t\treturn nil, ErrBadMagic\n\t}\n\n\tif len(header) < headerSize {\n\t\treturn nil, ErrSmallHeader\n\t}\n\n\tflags := Flags(binary.LittleEndian.Uint32(header[8:12]))\n\tkeyLen := binary.LittleEndian.Uint32(header[12:16])\n\tblockLen := binary.LittleEndian.Uint32(header[16:20])\n\n\tcipherBit, err := cipherTypeBitFromFlags(flags)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Check the header mac:\n\theaderMac := hmac.New(sha3.New224, key)\n\tif _, err := headerMac.Write(header[:headerSize-macSize]); err != nil {\n\t\treturn nil, err\n\t}\n\n\tstoredMac := header[headerSize-macSize : headerSize]\n\tshortHeaderMac := headerMac.Sum(nil)[:macSize]\n\tif !hmac.Equal(shortHeaderMac, storedMac) {\n\t\treturn nil, ErrBadHeaderMAC\n\t}\n\n\treturn &HeaderInfo{\n\t\tVersion:   version,\n\t\tCipherBit: cipherBit,\n\t\tKeyLen:    keyLen,\n\t\tBlockLen:  blockLen,\n\t\tFlags:     flags,\n\t}, nil\n}\n\n//////////////////////\n// Common Utilities //\n//////////////////////\n\nfunc createAEADWorker(cipherType Flags, key []byte) (cipher.AEAD, error) {\n\tswitch cipherType {\n\tcase FlagEncryptAES256GCM:\n\t\tblock, err := aes.NewCipher(key)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn cipher.NewGCM(block)\n\tcase FlagEncryptChaCha20:\n\t\treturn chacha.New(key)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"no such cipher type: %d\", cipherType)\n\t}\n\n}\n\ntype aeadCommon struct {\n\t// Nonce that form the first aead.NonceSize() bytes\n\t// of the output\n\tnonce []byte\n\n\t// Key used for encryption/decryption\n\tkey []byte\n\n\t// For more information, see:\n\t// https://en.wikipedia.org/wiki/Authenticated_encryption\n\taead cipher.AEAD\n\n\t// Buffer for encrypted data (maxBlockSize + overhead)\n\tencBuf []byte\n}\n\nfunc (c *aeadCommon) initAeadCommon(key []byte, cipherBit Flags, maxBlockSize int64) error {\n\taead, err := createAEADWorker(cipherBit, key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.encBuf = make([]byte, 0, maxBlockSize+int64(aead.Overhead()))\n\tc.nonce = make([]byte, aead.NonceSize())\n\tc.aead = aead\n\tc.key = key\n\treturn nil\n}\n\n// Encrypt is a utility function which encrypts the data from source with key\n// and writes the resulting encrypted data to dest.\nfunc Encrypt(key []byte, source io.Reader, dest io.Writer, flags Flags) (int64, error) {\n\tlayer, err := NewWriter(dest, key, flags)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn, err := io.CopyBuffer(layer, source, make([]byte, defaultEncBufferSize))\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, layer.Close()\n}\n\n// Decrypt is a utility function which decrypts the data from source with key\n// and writes the resulting encrypted data to dest.\nfunc Decrypt(key []byte, source io.Reader, dest io.Writer) (int64, error) {\n\tlayer, err := NewReader(source, key)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn io.CopyBuffer(dest, layer, make([]byte, defaultDecBufferSize))\n}\n"
  },
  {
    "path": "catfs/mio/encrypt/format_test.go",
    "content": "package encrypt\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nvar TestKey = []byte(\"01234567890ABCDE01234567890ABCDE\")\n\nconst ExtraDebug = false\n\nfunc openFiles(from, to string) (*os.File, *os.File, error) {\n\tfdFrom, err := os.Open(from)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tfdTo, err := os.OpenFile(to, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0755)\n\tif err != nil {\n\t\tfdFrom.Close()\n\t\treturn nil, nil, err\n\t}\n\n\treturn fdFrom, fdTo, nil\n}\n\nfunc encryptFile(key []byte, from, to string) (n int64, outErr error) {\n\tfdFrom, fdTo, err := openFiles(from, to)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tdefer func() {\n\t\t// Only fdTo needs to be closed, Decrypt closes fdFrom.\n\t\tif err := fdFrom.Close(); err != nil {\n\t\t\toutErr = err\n\t\t}\n\t\tif err := fdTo.Close(); err != nil {\n\t\t\toutErr = err\n\t\t}\n\t}()\n\n\treturn Encrypt(key, fdFrom, fdTo, FlagEncryptAES256GCM)\n}\n\nfunc decryptFile(key []byte, from, to string) (n int64, outErr error) {\n\tfdFrom, fdTo, err := openFiles(from, to)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tdefer func() {\n\t\tif err := fdTo.Close(); err != nil {\n\t\t\toutErr = err\n\t\t\treturn\n\t\t}\n\n\t\tif err := fdFrom.Close(); err != nil {\n\t\t\toutErr = err\n\t\t\treturn\n\t\t}\n\t}()\n\n\treturn Decrypt(key, fdFrom, fdTo)\n}\n\nfunc remover(t *testing.T, path string) {\n\tif err := os.Remove(path); err != nil {\n\t\tt.Errorf(\"Could not remove temp file: %v\", err)\n\t}\n}\n\nfunc testSimpleEncDec(t *testing.T, size int64) {\n\tpath := testutil.CreateFile(int64(size))\n\tdefer remover(t, path)\n\n\tencPath := path + \"_enc\"\n\tdecPath := path + \"_dec\"\n\n\t_, err := encryptFile(TestKey, path, encPath)\n\tdefer remover(t, encPath)\n\n\tif err != nil {\n\t\tt.Errorf(\"Encrypt failed: %v\", err)\n\t}\n\n\t_, err = decryptFile(TestKey, encPath, decPath)\n\tdefer remover(t, decPath)\n\n\tif err != nil {\n\t\tt.Errorf(\"Decrypt failed: %v\", err)\n\t}\n\n\ta, _ := ioutil.ReadFile(path)\n\tb, _ := ioutil.ReadFile(decPath)\n\tc, _ := ioutil.ReadFile(encPath)\n\n\tif !bytes.Equal(a, b) {\n\t\tt.Errorf(\"Source and decrypted not equal\")\n\t}\n\n\tif bytes.Equal(a, c) && size != 0 {\n\t\tt.Errorf(\"Source was not encrypted (same as source)\")\n\t\tt.Errorf(\"%v|||%v|||%v\", a, b, c)\n\t}\n}\n\nfunc TestSimpleEncDec(t *testing.T) {\n\tt.Parallel()\n\n\tfor _, size := range SizeTests {\n\t\tif ExtraDebug {\n\t\t\tt.Logf(\"Testing SimpleEncDec for size %d\", size)\n\t\t}\n\n\t\tt.Run(fmt.Sprintf(\"size-%d\", size), func(t *testing.T) {\n\t\t\ttestSimpleEncDec(t, size)\n\t\t})\n\t}\n}\n\nvar SizeTests = []int64{\n\t0,\n\t1,\n\tdefaultMaxBlockSize - 1,\n\tdefaultMaxBlockSize,\n\tdefaultMaxBlockSize + 10,\n\tdefaultDecBufferSize - 1,\n\tdefaultDecBufferSize,\n\tdefaultDecBufferSize + 1,\n\tdefaultEncBufferSize - 1,\n\tdefaultEncBufferSize,\n\t7 * defaultEncBufferSize,\n\t7*defaultEncBufferSize - 1,\n\tdefaultEncBufferSize + 1,\n}\n\ntype seekTest struct {\n\tWhence int\n\tOffset float64\n\tError  error\n}\n\nvar SeekTests = []seekTest{\n\t// Jump to the mid:\n\t{io.SeekStart, 0.5, nil},\n\t// Should stay the same:\n\t{io.SeekCurrent, 0, nil},\n\t// Jump a quarter forth:\n\t{io.SeekCurrent, 0.25, nil},\n\t// Jump a half back:\n\t{io.SeekCurrent, -0.5, nil},\n\t// Jump back to the half:\n\t{io.SeekCurrent, 0.25, nil},\n\t// See if SEEK_END works:\n\t{io.SeekEnd, -0.5, nil},\n\t// This triggered a crash earlier:\n\t{io.SeekEnd, -2, io.EOF},\n\t// Im guessing now:\n\t{io.SeekEnd, -1.0 / 4096, nil},\n}\n\nfunc BenchmarkEncDec(b *testing.B) {\n\tfor n := 0; n < b.N; n++ {\n\t\ttestSimpleEncDec(nil, defaultMaxBlockSize*100)\n\t}\n}\n\nfunc TestSeek(t *testing.T) {\n\tfor _, size := range SizeTests {\n\t\ttestSeek(t, int64(size), false, false)\n\t\ttestSeek(t, int64(size), false, true)\n\t\ttestSeek(t, int64(size), true, false)\n\t\ttestSeek(t, int64(size), true, true)\n\n\t\tif t.Failed() {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\nfunc testSeek(t *testing.T, N int64, readFrom, writeTo bool) {\n\tsourceData := testutil.CreateDummyBuf(N)\n\tsource := bytes.NewBuffer(sourceData)\n\tshared := &bytes.Buffer{}\n\n\tif ExtraDebug {\n\t\tt.Logf(\"Testing seek for size %d\", N)\n\t}\n\n\tenc, err := NewWriter(shared, TestKey, FlagEncryptAES256GCM)\n\tif err != nil {\n\t\tt.Errorf(\"Creating an encrypted writer failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Encrypt:\n\tif _, err = testutil.DumbCopy(enc, source, readFrom, writeTo); err != nil {\n\t\tt.Errorf(\"copy(enc, source) failed %v\", err)\n\t\treturn\n\t}\n\n\t// This needs to be here, since close writes\n\t// left over data to the write stream\n\tif err = enc.Close(); err != nil {\n\t\tt.Errorf(\"close(enc): %v\", err)\n\t\treturn\n\t}\n\n\tsharedReader := bytes.NewReader(shared.Bytes())\n\tdecLayer, err := NewReader(sharedReader, TestKey)\n\tif err != nil {\n\t\tt.Errorf(\"creating new reader failed: %v\", err)\n\t\treturn\n\t}\n\n\tlastJump := int64(0)\n\n\tfor _, test := range SeekTests {\n\t\tlastJump = testSeekOneWhence(\n\t\t\tt, N, readFrom, writeTo, lastJump, test, decLayer, sourceData,\n\t\t)\n\t}\n}\n\nfunc testSeekOneWhence(\n\tt *testing.T, N int64, readFrom, writeTo bool,\n\tlastJump int64, test seekTest,\n\tdecLayer *Reader, sourceData []byte,\n) int64 {\n\trealOffset := int64(math.Floor(.5 + test.Offset*float64(N)))\n\n\twhence := map[int]string{\n\t\t0: \"SEEK_SET\",\n\t\t1: \"SEEK_CUR\",\n\t\t2: \"SEEK_END\",\n\t}[test.Whence]\n\n\texptOffset := int64(0)\n\tswitch test.Whence {\n\tcase io.SeekStart:\n\t\texptOffset = realOffset\n\tcase io.SeekCurrent:\n\t\texptOffset = lastJump + realOffset\n\tcase io.SeekEnd:\n\t\texptOffset = N + realOffset\n\tdefault:\n\t\tpanic(\"Bad whence\")\n\t}\n\n\tif ExtraDebug {\n\t\tt.Logf(\n\t\t\t\" => Seek(%v, %v) -> %v (size: %v)\",\n\t\t\trealOffset,\n\t\t\twhence,\n\t\t\texptOffset,\n\t\t\tN,\n\t\t)\n\t}\n\n\tjumpedTo, err := decLayer.Seek(realOffset, test.Whence)\n\tif err != test.Error {\n\t\tif err != io.EOF && N != 0 {\n\t\t\tt.Fatalf(\n\t\t\t\t\"Seek(%v, %v) produced an error: %v (should be %v)\",\n\t\t\t\trealOffset,\n\t\t\t\twhence,\n\t\t\t\terr,\n\t\t\t\ttest.Error,\n\t\t\t)\n\t\t}\n\t}\n\n\tif test.Error != nil {\n\t\treturn lastJump\n\t}\n\n\tif jumpedTo != exptOffset {\n\t\tt.Errorf(\n\t\t\t\"Seek(%v, %v) jumped badly. Should be %v, was %v\",\n\t\t\trealOffset,\n\t\t\twhence,\n\t\t\texptOffset,\n\t\t\tjumpedTo,\n\t\t)\n\t\treturn -1\n\t}\n\n\t// Decrypt and check if the contents are okay:\n\tdest := bytes.NewBuffer(nil)\n\n\tcopiedBytes, err := testutil.DumbCopy(dest, decLayer, readFrom, writeTo)\n\tif err != nil {\n\t\tt.Errorf(\"Decrypt failed: %v\", err)\n\t\treturn jumpedTo\n\t}\n\n\tif copiedBytes != N-jumpedTo {\n\t\tt.Errorf(\"Copied different amount of decrypted data than expected.\")\n\t\tt.Errorf(\"Should be %v, was %v bytes.\", N-jumpedTo, copiedBytes)\n\t}\n\n\t// Check the data actually matches the source data.\n\tif !bytes.Equal(sourceData[jumpedTo:], dest.Bytes()) {\n\t\tt.Errorf(\"Seeked data does not match expectations.\")\n\t\tt.Errorf(\"\\tEXPECTED: %v\", util.OmitBytes(sourceData[jumpedTo:], 10))\n\t\tt.Errorf(\"\\tGOT:      %v\", util.OmitBytes(dest.Bytes(), 10))\n\t\treturn jumpedTo\n\t}\n\n\t// Jump back, so the other tests continue to work:\n\tjumpedAgain, err := decLayer.Seek(jumpedTo, io.SeekStart)\n\tif err != nil {\n\t\tt.Errorf(\"Seeking not possible after reading: %v\", err)\n\t\treturn jumpedTo\n\t}\n\n\tif jumpedTo != jumpedAgain {\n\t\tt.Errorf(\"Jumping back to original pos failed.\")\n\t\tt.Errorf(\"Should be %v, was %v.\", jumpedTo, jumpedAgain)\n\t\treturn jumpedTo\n\t}\n\n\treturn jumpedTo\n}\n\nfunc TestEmptyFile(t *testing.T) {\n\tsrcBuf := []byte{}\n\tdstBuf := []byte{}\n\ttmpBuf := &bytes.Buffer{}\n\n\tsrc := bytes.NewReader(srcBuf)\n\tdst := bytes.NewBuffer(dstBuf)\n\n\tenc, err := NewWriter(tmpBuf, TestKey, FlagEncryptAES256GCM)\n\tif err != nil {\n\t\tt.Errorf(\"TestEmpyFile: creating writer failed: %v\", err)\n\t\treturn\n\t}\n\n\tif _, err = io.Copy(enc, src); err != nil {\n\t\tt.Errorf(\"TestEmpyFile: copy(enc, src) failed: %v\", err)\n\t\treturn\n\t}\n\n\tif err = enc.Close(); err != nil {\n\t\tt.Errorf(\"TestEmpyFile: close(enc) failed: %v\", err)\n\t\treturn\n\t}\n\n\tdec, err := NewReader(bytes.NewReader(tmpBuf.Bytes()), TestKey)\n\tif err != nil {\n\t\tt.Errorf(\"TestEmpyFile: creating reader failed: %v\", err)\n\t\treturn\n\t}\n\n\tif _, err = dec.Seek(10, io.SeekStart); err != io.EOF {\n\t\tt.Errorf(\"Seek failed: %v\", err)\n\t\treturn\n\t}\n\n\tif _, err = io.Copy(dst, dec); err != nil {\n\t\tt.Errorf(\"TestEmpyFile: copy(dst, dec) failed: %v\", err)\n\t\treturn\n\t}\n\n\tif !bytes.Equal(srcBuf, dstBuf) {\n\t\tt.Errorf(\"TestEmpyFile: Not empty: src=%v dst=%v\", srcBuf, dstBuf)\n\t\treturn\n\t}\n}\n\n// Test if encrypting the same plaintext twice yields\n// the same ciphertext. This is a crucial property for brig, although it\n// has some security implications (i.e. no real random etc.)\nfunc TestEncryptedTheSame(t *testing.T) {\n\tsourceData := testutil.CreateDummyBuf(3 * defaultMaxBlockSize)\n\tencOne := &bytes.Buffer{}\n\tencTwo := &bytes.Buffer{}\n\n\tn1, err := Encrypt(\n\t\tTestKey,\n\t\tbytes.NewReader(sourceData),\n\t\tencOne,\n\t\tFlagEncryptAES256GCM,\n\t)\n\tif err != nil {\n\t\tt.Errorf(\"TestEncryptedTheSame: Encrypting first failed: %v\", err)\n\t\treturn\n\t}\n\n\tn2, err := Encrypt(\n\t\tTestKey,\n\t\tbytes.NewReader(sourceData),\n\t\tencTwo,\n\t\tFlagEncryptAES256GCM,\n\t)\n\tif err != nil {\n\t\tt.Errorf(\"TestEncryptedTheSame: Encrypting second failed: %v\", err)\n\t\treturn\n\t}\n\n\tif n1 != n2 {\n\t\tt.Errorf(\"TestEncryptedTheSame: Ciphertexts differ in length.\")\n\t\treturn\n\t}\n\n\tif !bytes.Equal(encOne.Bytes(), encTwo.Bytes()) {\n\t\tt.Errorf(\"TestEncryptedTheSame: Ciphertext differ, you failed.\")\n\t\tt.Errorf(\"\\tOne: %v\", encOne.Bytes())\n\t\tt.Errorf(\"\\tTwo: %v\", encTwo.Bytes())\n\t\treturn\n\t}\n}\n\n// Test if swapping small parts of the output\nfunc TestEncryptedByteSwaps(t *testing.T) {\n\tdata1 := testutil.CreateDummyBuf(2 * defaultMaxBlockSize)\n\tdata2 := testutil.CreateDummyBuf(2 * defaultMaxBlockSize)\n\tdata3 := testutil.CreateDummyBuf(2 * defaultMaxBlockSize)\n\n\t// Do a small modification in the beginning.\n\tdata2[0]++\n\n\t// Do a small modification in the end.\n\tdata3[2*defaultMaxBlockSize-1]++\n\n\t// Encrypt all data samples:\n\tencBuf1 := &bytes.Buffer{}\n\tencBuf2 := &bytes.Buffer{}\n\tencBuf3 := &bytes.Buffer{}\n\n\tvar err error\n\t_, err = Encrypt(\n\t\tTestKey,\n\t\tbytes.NewReader(data1),\n\t\tencBuf1,\n\t\tFlagEncryptChaCha20,\n\t)\n\trequire.Nil(t, err)\n\n\t_, err = Encrypt(\n\t\tTestKey,\n\t\tbytes.NewReader(data2),\n\t\tencBuf2,\n\t\tFlagEncryptChaCha20,\n\t)\n\trequire.Nil(t, err)\n\n\t_, err = Encrypt(\n\t\tTestKey,\n\t\tbytes.NewReader(data3),\n\t\tencBuf3,\n\t\tFlagEncryptChaCha20,\n\t)\n\trequire.Nil(t, err)\n\n\tencData1 := encBuf1.Bytes()\n\tencData2 := encBuf2.Bytes()\n\tencData3 := encBuf3.Bytes()\n\n\t// It should be all the same with a one-byte change.\n\trequire.Equal(t, len(encData1), len(encData2))\n\trequire.Equal(t, len(encData2), len(encData3))\n\n\t// s = full size; m = start of second block\n\ts := len(encData1)\n\tm := len(encData1)/2 + headerSize\n\n\t// Require that only the first block was tainted, other block should be same.\n\trequire.False(t, bytes.Equal(encData1[0:m], encData2[0:m]))\n\trequire.True(t, bytes.Equal(encData1[m:s], encData2[m:s]))\n\n\t// Require that the last block was tainted, first block should be same\n\trequire.True(t, bytes.Equal(encData1[0:m], encData3[0:m]))\n\trequire.False(t, bytes.Equal(encData1[m:s], encData3[m:s]))\n}\n"
  },
  {
    "path": "catfs/mio/encrypt/reader.go",
    "content": "package encrypt\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n)\n\n// Reader decrypts and encrypted stream from Reader.\ntype Reader struct {\n\t// Underlying reader\n\tio.Reader\n\n\taeadCommon\n\n\t// Caches leftovers from unread blocks\n\tbacklog *bytes.Reader\n\n\t// Last index of the byte the user visited.\n\t// (Used to avoid re-reads in Seek())\n\t// This does *not* equal the seek offset of the underlying stream.\n\tlastDecSeekPos int64\n\n\t// lastEncSeekPos saves the current position of the underlying stream.\n\t// it is used mostly for ensuring SEEK_END works.\n\tlastEncSeekPos int64\n\n\t// Parsed header info\n\tinfo *HeaderInfo\n\n\t// true once readHeader() was called\n\tparsedHeader bool\n\n\t// Buffer for decrypted data (MaxBlockSize big)\n\tdecBuf []byte\n\n\t// true as long readBlock was not successful\n\tisInitialRead bool\n\n\t// Total size of the underlying stream in bytes.\n\t// This is only set when SEEK_END was used.\n\tendOffsetEnc int64\n}\n\nfunc (r *Reader) readHeaderIfNotDone() error {\n\tif r.parsedHeader {\n\t\treturn nil\n\t}\n\n\tr.parsedHeader = true\n\n\theader := make([]byte, headerSize)\n\tn, err := io.ReadFull(r.Reader, header)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif n != headerSize {\n\t\treturn fmt.Errorf(\"No valid header found, damaged file?\")\n\t}\n\n\tinfo, err := ParseHeader(header, r.key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif info.Version != 1 {\n\t\treturn fmt.Errorf(\"this implementation does not support versions != 1\")\n\t}\n\n\tif uint32(len(r.key)) != info.KeyLen {\n\t\treturn fmt.Errorf(\n\t\t\t\"key length differs: file=%d, user=%d\",\n\t\t\tinfo.KeyLen,\n\t\t\tlen(r.key),\n\t\t)\n\t}\n\n\tr.info = info\n\tif err := r.initAeadCommon(\n\t\tr.key,\n\t\tinfo.CipherBit,\n\t\tint64(r.info.BlockLen),\n\t); err != nil {\n\t\treturn err\n\t}\n\n\tr.lastEncSeekPos += headerSize\n\tr.decBuf = make([]byte, 0, r.info.BlockLen)\n\treturn nil\n}\n\n// Flags will return the flags stored in the header of the encrypted stream.\n// If the header was not read yet, it will attempt to read it.\nfunc (r *Reader) Flags() (Flags, error) {\n\t// Make sure we have the info needed to parse the header:\n\tif err := r.readHeaderIfNotDone(); err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn r.info.Flags, nil\n}\n\n// Read from source and decrypt.\n//\n// This method always decrypts one block to optimize for continuous reads. If\n// dest is too small to hold the block, the decrypted text is cached for the\n// next read.\nfunc (r *Reader) Read(dest []byte) (int, error) {\n\t// Make sure we have the info needed to parse the header:\n\tif err := r.readHeaderIfNotDone(); err != nil {\n\t\treturn 0, err\n\t}\n\n\treadBytes := 0\n\n\t// Try our best to fill len(dest)\n\tfor readBytes < len(dest) {\n\t\tif r.backlog.Len() == 0 {\n\t\t\tif _, rerr := r.readBlock(); rerr != nil && rerr != io.EOF {\n\t\t\t\treturn readBytes, rerr\n\t\t\t}\n\t\t}\n\n\t\tn, berr := r.backlog.Read(dest[readBytes:])\n\t\tr.lastDecSeekPos += int64(n)\n\t\treadBytes += n\n\n\t\tif berr == io.EOF {\n\t\t\treturn readBytes, io.EOF\n\t\t}\n\t}\n\n\treturn readBytes, nil\n}\n\n// Fill internal buffer with current block\nfunc (r *Reader) readBlock() (int, error) {\n\tif r.info == nil {\n\t\treturn 0, fmt.Errorf(\"Invalid header data\")\n\t}\n\n\t// Read nonce:\n\tif n, err := io.ReadFull(r.Reader, r.nonce); err != nil {\n\t\treturn 0, err\n\t} else if n != r.aead.NonceSize() {\n\t\treturn 0, fmt.Errorf(\n\t\t\t\"nonce size mismatch; should: %d - have: %d (err: %v)\",\n\t\t\tr.aead.NonceSize(),\n\t\t\tn,\n\t\t\terr,\n\t\t)\n\t}\n\n\t// Convert to block number:\n\treadBlockNum := binary.LittleEndian.Uint64(r.nonce)\n\n\t// Check the block number:\n\tcurrBlockNum := uint64(r.lastDecSeekPos / int64(r.info.BlockLen))\n\tif currBlockNum != readBlockNum {\n\t\treturn 0, fmt.Errorf(\n\t\t\t\"bad block number; as %d, should be %d\", readBlockNum, currBlockNum,\n\t\t)\n\t}\n\n\t// Read the *whole* block from the raw stream\n\tN := int(r.info.BlockLen) + r.aead.Overhead()\n\tn, err := io.ReadAtLeast(r.Reader, r.encBuf[:N], N)\n\tif err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {\n\t\treturn 0, err\n\t}\n\n\tr.lastEncSeekPos += int64(n) + int64(len(r.nonce))\n\n\tr.decBuf, err = r.aead.Open(r.decBuf[:0], r.nonce, r.encBuf[:n], nil)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tr.backlog.Reset(r.decBuf)\n\tr.isInitialRead = false\n\n\treturn len(r.decBuf), nil\n}\n\n// Seek into the encrypted stream.\n//\n// Note that the seek offset is relative to the decrypted data,\n// not to the underlying, encrypted stream.\nfunc (r *Reader) Seek(offset int64, whence int) (int64, error) {\n\t// Check if seeking is supported:\n\tseeker, ok := r.Reader.(io.Seeker)\n\tif !ok {\n\t\treturn 0, fmt.Errorf(\"seek is not supported by underlying stream\")\n\t}\n\n\tif err := r.readHeaderIfNotDone(); err != nil {\n\t\treturn 0, err\n\t}\n\n\t// set to true when an actual call to seeker.Seek() was made.\n\twasMoved := false\n\n\t// Constants and assumption on the stream below:\n\tblockHeaderSize := int64(r.aead.NonceSize())\n\tblockOverhead := blockHeaderSize + int64(r.aead.Overhead())\n\ttotalBlockSize := blockOverhead + int64(r.info.BlockLen)\n\n\t// absolute Offset in the decrypted stream\n\tabsOffsetDec := int64(0)\n\n\t// Convert possibly relative offset to absolute offset:\n\tswitch whence {\n\tcase io.SeekCurrent:\n\t\tabsOffsetDec = r.lastDecSeekPos + offset\n\tcase io.SeekStart:\n\t\tabsOffsetDec = offset\n\tcase io.SeekEnd:\n\t\t// Try to figure out the end of the stream.\n\t\t// This might be inefficient for some underlying readers,\n\t\t// but is probably okay for ipfs.\n\t\t//\n\t\t// NOTE: We cache this not only for performance, but also\n\t\t//       as a workaround for a bug in ipfs.\n\t\t//       See: https://github.com/ipfs/go-ipfs/issues/2567\n\t\tif r.endOffsetEnc < 0 {\n\t\t\tendOffsetEnc, err := seeker.Seek(0, io.SeekEnd)\n\t\t\tif err != nil && err != io.EOF {\n\t\t\t\treturn 0, err\n\t\t\t}\n\n\t\t\tr.endOffsetEnc = endOffsetEnc\n\t\t}\n\n\t\t// This computation is verbose on purporse,\n\t\t// since the details might be confusing.\n\t\tencLen := (r.endOffsetEnc - headerSize)\n\t\tencRest := encLen % totalBlockSize\n\t\tdecBlocks := encLen / totalBlockSize\n\n\t\tendOffsetDec := decBlocks * int64(r.info.BlockLen)\n\t\tif encRest > 0 {\n\t\t\tendOffsetDec += encRest - blockOverhead\n\t\t}\n\t\tabsOffsetDec = endOffsetDec + offset\n\n\t\tif absOffsetDec < 0 {\n\t\t\t// That's the wrong end of file...\n\t\t\treturn 0, io.EOF\n\t\t}\n\n\t\t// For SEEK_END we need to make sure that we move the seek pointer\n\t\t// back to a sensible position when we decide that no actual move\n\t\t// is necessary further down this function.\n\t\tdefer func() {\n\t\t\tif !wasMoved {\n\t\t\t\tseeker.Seek(r.lastEncSeekPos, io.SeekStart)\n\t\t\t}\n\t\t}()\n\t}\n\n\tif absOffsetDec < 0 {\n\t\treturn 0, fmt.Errorf(\"Negative seek index: %d\", absOffsetDec)\n\t}\n\n\t// Caller wanted to know only the current stream pos:\n\tif absOffsetDec == r.lastDecSeekPos {\n\t\treturn absOffsetDec, nil\n\t}\n\n\t// Convert decrypted offset to encrypted offset\n\tabsOffsetEnc := headerSize + ((absOffsetDec / int64(r.info.BlockLen)) * totalBlockSize)\n\n\t// Check if we're still in the same block as last time:\n\tblockNum := absOffsetEnc / totalBlockSize\n\tlastBlockNum := r.lastDecSeekPos / int64(r.info.BlockLen)\n\n\tr.lastDecSeekPos = absOffsetDec\n\n\tif lastBlockNum != blockNum || r.isInitialRead || whence == io.SeekEnd {\n\t\tr.lastEncSeekPos = absOffsetEnc\n\n\t\t// Seek to the beginning of the encrypted block:\n\t\twasMoved = true\n\t\tif _, err := seeker.Seek(absOffsetEnc, io.SeekStart); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\t// Make read consume the current block:\n\t\tif _, err := r.readBlock(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\t// reslice the backlog, so Read() does not return skipped data.\n\tif _, err := r.backlog.Seek(\n\t\tabsOffsetDec%int64(r.info.BlockLen),\n\t\tio.SeekStart,\n\t); err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn absOffsetDec, nil\n}\n\n// WriteTo copies all data from `r` to `w`.\n//\n// It is intended to avoid unneeded copying by choosing a suitable buffer size\n// and by directly reading block after block. io.Copy will use it automatically.\n//\n// It returns the number of written bytes and possible errors (but no io.EOF)\nfunc (r *Reader) WriteTo(w io.Writer) (int64, error) {\n\t// Make sure we have the info needed to parse the header:\n\tif err := r.readHeaderIfNotDone(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := int64(0)\n\n\t// Backlog might be still filled if Read() or Seek() was done before:\n\tif r.backlog.Len() > 0 {\n\t\tbn, err := r.backlog.WriteTo(w)\n\t\tif err != nil {\n\t\t\treturn bn, err\n\t\t}\n\n\t\tn += bn\n\t\tr.lastDecSeekPos += bn\n\t}\n\n\tfor {\n\t\tnread, rerr := r.readBlock()\n\t\tif rerr != nil && rerr != io.EOF {\n\t\t\treturn n, rerr\n\t\t}\n\n\t\tr.lastDecSeekPos += int64(nread)\n\n\t\tnwrite, werr := w.Write(r.decBuf[:nread])\n\t\tif werr != nil {\n\t\t\treturn n, werr\n\t\t}\n\n\t\tn += int64(nwrite)\n\n\t\tif nwrite != nread {\n\t\t\treturn n, io.ErrShortWrite\n\t\t}\n\n\t\tif rerr == io.EOF {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\n// NewReader creates a new encrypted reader and validates the file header.\n// The key is required to be KeySize bytes long.\nfunc NewReader(r io.Reader, key []byte) (*Reader, error) {\n\treader := &Reader{\n\t\tReader:        r,\n\t\tbacklog:       bytes.NewReader([]byte{}),\n\t\tparsedHeader:  false,\n\t\tisInitialRead: true,\n\t\tendOffsetEnc:  -1,\n\t\taeadCommon: aeadCommon{\n\t\t\tkey: key,\n\t\t},\n\t}\n\n\treturn reader, nil\n}\n"
  },
  {
    "path": "catfs/mio/encrypt/writer.go",
    "content": "package encrypt\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n)\n\nvar (\n\t// ErrBadBlockSize is returned when the data is damaged and has an invalid block size\n\tErrBadBlockSize = errors.New(\"underlying reader failed to read full w.maxBlockSize\")\n\n\t// ErrMixedMethods is returned when calling Write() with ReadFrom() together.\n\tErrMixedMethods = errors.New(\"mixing Write() and ReadFrom() is not allowed\")\n)\n\n// Writer encrypts the data stream before writing to Writer.\ntype Writer struct {\n\t// Internal Writer we would write to.\n\tio.Writer\n\n\t// Common fields with Reader\n\taeadCommon\n\n\t// A buffer that is max. w.maxBlockSize big.\n\t// Used for caching leftover data between writes.\n\trbuf *bytes.Buffer\n\n\t// Index of the currently written block.\n\tblockCount uint64\n\n\t// True after the first write.\n\theaderWritten bool\n\n\t// w.maxBlockSize is the maximum number of bytes a single payload may have\n\tmaxBlockSize int64\n\n\t// Used encryption algorithm\n\tflags Flags\n}\n\n// GoodDecBufferSize returns a buffer size that is suitable for decryption.\nfunc (w *Writer) GoodDecBufferSize() int64 {\n\treturn w.maxBlockSize\n}\n\n// GoodEncBufferSize returns a buffer size that is suitable for encryption.\nfunc (w *Writer) GoodEncBufferSize() int64 {\n\treturn w.maxBlockSize + 40\n}\n\nfunc (w *Writer) emitHeaderIfNeeded() error {\n\tif w.headerWritten {\n\t\treturn nil\n\t}\n\n\tw.headerWritten = true\n\theader := GenerateHeader(w.key, w.maxBlockSize, w.flags)\n\t_, err := w.Writer.Write(header)\n\treturn err\n}\n\nfunc (w *Writer) Write(p []byte) (int, error) {\n\tif err := w.emitHeaderIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tfor int64(w.rbuf.Len()) >= w.maxBlockSize {\n\t\tif _, err := w.flushPack(w.rbuf.Next(int(w.maxBlockSize))); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\t// Remember left-overs for next write:\n\tif _, err := w.rbuf.Write(p); err != nil {\n\t\treturn 0, nil\n\t}\n\n\t// Fake the amount of data we've written:\n\treturn len(p), nil\n}\n\nfunc (w *Writer) flushPack(pack []byte) (int, error) {\n\t// Create a new Nonce for this block:\n\tbinary.LittleEndian.PutUint64(w.nonce, w.blockCount)\n\n\t// Encrypt the text:\n\tw.encBuf = w.aead.Seal(w.encBuf[:0], w.nonce, pack, nil)\n\n\t// Pass it to the underlying writer:\n\tnNonce, err := w.Writer.Write(w.nonce)\n\tif err != nil {\n\t\treturn nNonce, err\n\t}\n\n\tw.blockCount++\n\tnBuf, err := w.Writer.Write(w.encBuf)\n\treturn nNonce + nBuf, err\n}\n\n// Close the Writer and write any left-over blocks\n// This does not close the underlying data stream.\nfunc (w *Writer) Close() error {\n\tif err := w.emitHeaderIfNeeded(); err != nil {\n\t\treturn err\n\t}\n\n\t// Flush last block of data if any:\n\tfor w.rbuf.Len() > 0 {\n\t\tn := int64(w.rbuf.Len())\n\t\tif n > w.maxBlockSize {\n\t\t\tn = w.maxBlockSize\n\t\t}\n\n\t\tif _, err := w.flushPack(w.rbuf.Next(int(n))); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ReadFrom writes all readable from `r` into `w`.\n//\n// It is intentend as optimized way to copy the whole stream without\n// unneeded copying in between. io.Copy() will use this function automatically.\n//\n// It returns the number of read bytes and any encountered error (no io.EOF)\nfunc (w *Writer) ReadFrom(r io.Reader) (int64, error) {\n\tif err := w.emitHeaderIfNeeded(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tn, nprev := int64(0), -1\n\tbuf := make([]byte, defaultDecBufferSize)\n\n\t// Check if a previous Write() wrote to rbuf.\n\tif w.rbuf.Len() > 0 {\n\t\treturn 0, ErrMixedMethods\n\t}\n\n\tfor {\n\t\tnread, rerr := io.ReadFull(r, buf)\n\t\tif rerr != nil && rerr != io.EOF && rerr != io.ErrUnexpectedEOF {\n\t\t\treturn n, rerr\n\t\t}\n\n\t\tn += int64(nread)\n\n\t\t// Sanity check: check if previous block was properly aligned:\n\t\tif nprev >= 0 && int64(nprev) != w.maxBlockSize && rerr != io.EOF && rerr != io.ErrUnexpectedEOF {\n\t\t\treturn n, ErrBadBlockSize\n\t\t}\n\n\t\tif nread > 0 {\n\t\t\t_, werr := w.flushPack(buf[:nread])\n\t\t\tw.rbuf.Reset()\n\n\t\t\tif werr != nil {\n\t\t\t\treturn n, werr\n\t\t\t}\n\t\t}\n\n\t\tnprev = nread\n\n\t\tif rerr == io.EOF || rerr == io.ErrUnexpectedEOF {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\n// NewWriter calls NewWriterWithFlagsAndBlockSize with a sane default cipher type\n// and a sane default max block size.\nfunc NewWriter(w io.Writer, key []byte, flags Flags) (*Writer, error) {\n\treturn NewWriterWithBlockSize(w, key, flags, defaultMaxBlockSize)\n}\n\n// NewWriterWithBlockSize returns a new Writer which encrypts data with a\n// certain key. If `compressionFlag` is true, the compression\n// flag in the file header will also be true. Otherwise no compression is done.\nfunc NewWriterWithBlockSize(w io.Writer, key []byte, flags Flags, maxBlockSize int64) (*Writer, error) {\n\tew := &Writer{\n\t\tWriter:       w,\n\t\trbuf:         &bytes.Buffer{},\n\t\tmaxBlockSize: maxBlockSize,\n\t\tflags:        flags,\n\t}\n\n\tcipherBit, err := cipherTypeBitFromFlags(flags)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := ew.initAeadCommon(key, cipherBit, ew.maxBlockSize); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ew, nil\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/cache.go",
    "content": "package pagecache\n\nimport (\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n)\n\n// Cache is the backing layer that stores pages in memory\n// or whatever medium it choses to use.\ntype Cache interface {\n\t// Lookup returns a cached page, identified by `inode` and `page`.\n\t// If there is no such page page.ErrCacheMiss is returned.\n\tLookup(inode int64, page uint32) (*page.Page, error)\n\n\t// Merge the existing cache contents with the new write\n\t// to `pageID`, starting at `pageOff` and with the contents of `buf`.\n\tMerge(inode int64, pageID, pageOff uint32, buf []byte) error\n\n\t// Evict clears cached pages for `inode`. `size` can be used\n\t// to clear only up to a certain size.\n\tEvict(inode, size int64) error\n\n\t// Close the cache and free up all resources.\n\tClose() error\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/doc.go",
    "content": "// Package pagecache implements a io.ReaderAt and io.WriterAt that is similar in\n// function to the OverlayFS of Linux. It overlays a read-only stream and\n// enables write support. The writes will take priority on the data in stream\n// and will therefore be visible when calling ReadAt() of the overlay.\n// Read() and Write() are currently not supported, since they would not be used\n// by brig.\n//\n// Note that the normal POSIX file operations are supported. This includes\n// truncating a file to a certain length and also extending it to a certain\n// length. If length of the overlay is greater than the size of the underlying\n// stream we pad it with zeros - just like the kernel would do. Files can be\n// also extended by writing new blocks to the end of the overlay.\n//\n// Seeking will be done when necessary. WriteAt() has to do no seeking at all,\n// while ReadAt() will only seek if it has to (i.e. not reading from cache\n// alone, or if we're not if the right offset already).\n//\n// Implementation detail: The stream is divided into same-sized pages. Each\n// page can be retrieved as whole from the cache. If a page for a certain read\n// offset is found, then ReadAt() will overlay it with the underlying stream or\n// even read from memory if the stream completely occludes the underlying\n// stream. In general, care was taken to optimize a bit more for Write() since\n// pages delivered by ReadAt() can be cached by the FUSE filesystem.\n//\n// You can choose the page cache when creating the overlay. Depending on the\n// page cache implementation it's also possible to edit large files and\n// make edits persistent.\n//\n// NOTE: Whenever uint32 is used in this code, it refers to per-page offsets or\n// size. When int64 is used the content is an offset of the underlying offset.\npackage pagecache\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/l1.go",
    "content": "package mdcache\n\nimport (\n\t\"container/list\"\n\t\"fmt\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n)\n\n// L1 is a pure in-memory LRU cache which does no copying.\n// I did go for LRU because it's insanely simple and easy to implement\n// while still being quite effective.\n//\n// NOTE: We do not use one of the popular caching library here, since\n// none of them seem to fit our use-case. We require the following properties:\n//\n// 1. We must notice when items get evicted (in order to write to l2)\n// 2. We must be able to set a max memory bound.\n// 3. We must avoid copying of pages due to performance reasons.\n//\n// The most popular libraries fail always one of the criteria:\n//\n// - fastcache: fails 1 and 3.\n// - ristretto: fails 1.\n// - bigcache: fails 3.\n//\n// Since we know what kind of data we cache, it is reasonable to implement\n// a very basic LRU cache for L1. Therefore we just use sync.Map here.\n// Oh, and the l1cache is not thread safe, but dircache.go does locking.\n\ntype l1item struct {\n\tPage *page.Page\n\tLink *list.Element\n}\n\ntype l1cache struct {\n\tm         map[pageKey]l1item\n\tk         *list.List\n\tl2        cacheLayer\n\tmaxMemory int64\n}\n\nfunc newL1Cache(l2 cacheLayer, maxMemory int64) (*l1cache, error) {\n\treturn &l1cache{\n\t\tmaxMemory: maxMemory,\n\t\tl2:        l2,\n\t\tk:         list.New(),\n\t\tm:         make(map[pageKey]l1item),\n\t}, nil\n}\n\nfunc (c *l1cache) Set(pk pageKey, p *page.Page) error {\n\texistingItem, ok := c.m[pk]\n\tif !ok {\n\t\t// new content:\n\t\tc.m[pk] = l1item{\n\t\t\tPage: p,\n\t\t\tLink: c.k.PushBack(pk),\n\t\t}\n\t} else {\n\t\t// do not push another page key,\n\t\t// c.k needs to have unique keys only.\n\t\tc.m[pk] = l1item{\n\t\t\tPage: p,\n\t\t\tLink: existingItem.Link,\n\t\t}\n\n\t\t// prioritize this one more.\n\t\tc.k.MoveToBack(existingItem.Link)\n\t}\n\n\tmaxPages := c.maxMemory / (page.Size + page.Meta)\n\tif int64(len(c.m)) > maxPages {\n\t\toldPkIface := c.k.Remove(c.k.Front())\n\t\toldPk, ok := oldPkIface.(pageKey)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"non-pagekey type stored in l1 keys: %T\", oldPkIface)\n\t\t}\n\n\t\toldItem, ok := c.m[oldPk]\n\t\tdelete(c.m, oldPk)\n\t\tif !ok {\n\t\t\t// c.m and c.k got out of sync.\n\t\t\t// this is very likely a bug.\n\t\t\treturn fmt.Errorf(\"l1: key in key list, but not in map: %v\", oldPk)\n\t\t}\n\n\t\tif c.l2 == nil {\n\t\t\t// nil-interface for l2: loose pages in that case.\n\t\t\t// that may be valid if no disk can be used.\n\t\t\treturn nil\n\t\t}\n\n\t\t// move old page to more persistent cache layer:\n\t\treturn c.l2.Set(oldPk, oldItem.Page)\n\t}\n\n\treturn nil\n}\n\nfunc (c *l1cache) Get(pk pageKey) (*page.Page, error) {\n\titem, ok := c.m[pk]\n\tif !ok {\n\t\treturn nil, page.ErrCacheMiss\n\t}\n\n\t// Sort recently fetched item to end of list:\n\tc.k.MoveToBack(item.Link)\n\treturn item.Page, nil\n}\n\nfunc (c *l1cache) Del(pks []pageKey) {\n\tfor _, pk := range pks {\n\t\tdelItem, ok := c.m[pk]\n\t\tif ok {\n\t\t\tc.k.Remove(delItem.Link)\n\t\t\tdelete(c.m, pk)\n\t\t}\n\t}\n}\n\nfunc (c *l1cache) Close() error {\n\t// help GC if caller somehow still retains a reference:\n\tc.m = nil\n\tc.k = nil\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/l1_test.go",
    "content": "package mdcache\n\nimport (\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withL1Cache(t *testing.T, fn func(l1, backing *l1cache)) {\n\t// some fake in-mem cache that stores everything that got removed\n\t// out of l1 due to size restrictions.\n\tbacking, err := newL1Cache(nil, int64(^uint64(0)>>1))\n\trequire.NoError(t, err)\n\n\tl1, err := newL1Cache(backing, 4*(page.Size+page.Meta))\n\trequire.NoError(t, err)\n\n\tfn(l1, backing)\n\n\trequire.NoError(t, l1.Close())\n}\n\nfunc TestL1GetSetDel(t *testing.T) {\n\t// NOTE: Only covers the very basic usage.\n\twithL1Cache(t, func(l1, _ *l1cache) {\n\t\tpk := pageKey{1, 0}\n\t\t_, err := l1.Get(pk)\n\t\trequire.Error(t, page.ErrCacheMiss)\n\n\t\tpset := dummyPage(0, 1024)\n\t\trequire.NoError(t, l1.Set(pk, pset))\n\n\t\tpgot, err := l1.Get(pk)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, pset.Data, pgot.Data)\n\t\trequire.Equal(t, pset.Extents, pgot.Extents)\n\n\t\tl1.Del([]pageKey{pk})\n\t\t_, err = l1.Get(pk)\n\t\trequire.Error(t, page.ErrCacheMiss)\n\t})\n}\n\nfunc TestL1SwapPriority(t *testing.T) {\n\twithL1Cache(t, func(l1, backing *l1cache) {\n\t\t// Insert 8 pages, only 4 can stay in l1.\n\t\tfor idx := 0; idx < 8; idx++ {\n\t\t\tpk := pageKey{1, uint32(idx)}\n\t\t\trequire.NoError(t, l1.Set(pk, dummyPage(0, uint32((idx+1)*100))))\n\t\t}\n\n\t\tfor idx := 0; idx < 4; idx++ {\n\t\t\tpk := pageKey{1, uint32(idx)}\n\t\t\t_, err := l1.Get(pk)\n\t\t\trequire.Error(t, err, page.ErrCacheMiss)\n\n\t\t\t// should be in backing store, check:\n\t\t\tp, err := backing.Get(pk)\n\t\t\trequire.NoError(t, err)\n\n\t\t\texpected := dummyPage(0, uint32((idx+1)*100))\n\t\t\trequire.Equal(t, expected, p)\n\t\t}\n\n\t\tfor idx := 4; idx < 8; idx++ {\n\t\t\tpk := pageKey{1, uint32(idx)}\n\t\t\tp, err := l1.Get(pk)\n\t\t\trequire.NoError(t, err)\n\n\t\t\texpected := dummyPage(0, uint32((idx+1)*100))\n\t\t\trequire.Equal(t, expected, p)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/l2.go",
    "content": "package mdcache\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\t\"github.com/golang/snappy\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n)\n\n// NOTE: Room for improvement:\n// Introduce heuristic for snappy compression:\n// When an inode does not yield any noticeable compression,\n// disable it for this specific inode. Protects against\n// wasting CPU on already compressed data.\n\ntype l2cache struct {\n\tmu       sync.Mutex\n\tdir      string\n\tcompress bool\n\tzipBuf   []byte\n}\n\n// NOTE: an empty (nil) l2cache is valid, but will not do anything. If an\n// empty string for `dir` is given, such an empty l2cache will be returned.\nfunc newL2Cache(dir string, compress bool) (*l2cache, error) {\n\tif dir == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tvar zipBuf []byte\n\tif compress {\n\t\tzipBuf = make([]byte, snappy.MaxEncodedLen(page.Size))\n\t}\n\n\treturn &l2cache{\n\t\tdir:      dir,\n\t\tcompress: compress,\n\t\tzipBuf:   zipBuf,\n\t}, nil\n}\n\nfunc (c *l2cache) Set(pk pageKey, p *page.Page) error {\n\tif c == nil {\n\t\treturn nil\n\t}\n\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tdata := p.AsBytes()\n\tif c.compress {\n\t\tdata = snappy.Encode(c.zipBuf, p.AsBytes())\n\t}\n\n\tpath := filepath.Join(c.dir, pk.String())\n\treturn ioutil.WriteFile(path, data, 0600)\n}\n\nfunc (c *l2cache) Get(pk pageKey) (*page.Page, error) {\n\tif c == nil {\n\t\treturn nil, page.ErrCacheMiss\n\t}\n\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tpath := filepath.Join(c.dir, pk.String())\n\tpdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\treturn nil, page.ErrCacheMiss\n\t}\n\n\tif c.compress {\n\t\tpdata, err = snappy.Decode(c.zipBuf, pdata)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn page.FromBytes(pdata)\n}\n\nfunc (c *l2cache) Del(pks []pageKey) {\n\tif c == nil {\n\t\treturn\n\t}\n\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tfor _, pk := range pks {\n\t\tpath := filepath.Join(c.dir, pk.String())\n\n\t\t// no error handling, just get rid of things.\n\t\t// we can't do anything if it could not be deleted.\n\t\tos.Remove(path)\n\t}\n}\n\nfunc (c *l2cache) Close() error {\n\tif c == nil {\n\t\treturn nil\n\t}\n\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\treturn os.RemoveAll(c.dir)\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/l2_test.go",
    "content": "package mdcache\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc dummyPage(off, length uint32) *page.Page {\n\tbuf := testutil.CreateDummyBuf(int64(length))\n\treturn page.New(off, buf)\n}\n\nfunc withL2Cache(t *testing.T, fn func(l2 *l2cache)) {\n\tfor _, compress := range []bool{false, true} {\n\n\t\ttmpDir, err := ioutil.TempDir(\"\", \"brig-page-l2\")\n\t\trequire.NoError(t, err)\n\t\tdefer os.RemoveAll(tmpDir)\n\n\t\tl2, err := newL2Cache(tmpDir, compress)\n\t\trequire.NoError(t, err)\n\n\t\ttname := \"no-compress\"\n\t\tif compress {\n\t\t\ttname = \"compress\"\n\t\t}\n\n\t\tt.Run(tname, func(t *testing.T) {\n\t\t\tfn(l2)\n\t\t})\n\n\t\t// double check we do not waste any storage:\n\t\trequire.NoError(t, l2.Close())\n\t\t_, err = os.Stat(tmpDir)\n\t\trequire.True(t, os.IsNotExist(err))\n\t}\n}\n\nfunc TestL2GetSetDel(t *testing.T) {\n\twithL2Cache(t, func(l2 *l2cache) {\n\t\tpk := pageKey{1, 0}\n\t\t_, err := l2.Get(pk)\n\t\trequire.Error(t, page.ErrCacheMiss)\n\n\t\tpset := dummyPage(0, 1024)\n\t\trequire.NoError(t, l2.Set(pk, pset))\n\n\t\tpgot, err := l2.Get(pk)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, pset.Data, pgot.Data)\n\t\trequire.Equal(t, pset.Extents, pgot.Extents)\n\n\t\tl2.Del([]pageKey{pk})\n\t\t_, err = l2.Get(pk)\n\t\trequire.Error(t, page.ErrCacheMiss)\n\t})\n}\n\nfunc TestL2Nil(t *testing.T) {\n\t// l2 is optional, so a nil l2 cache should \"work\":\n\tl2, err := newL2Cache(\"\", false)\n\trequire.NoError(t, err)\n\n\t_, err = l2.Get(pageKey{0, 1})\n\trequire.Error(t, page.ErrCacheMiss)\n\n\trequire.NoError(t, l2.Set(pageKey{0, 1}, dummyPage(0, 1024)))\n\tl2.Del([]pageKey{{0, 1}})\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/mdcache.go",
    "content": "// Package mdcache implements a leveled memory/disk cache combination.\npackage mdcache\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Options give room for finetuning the behavior of Memory/Disk cache.\ntype Options struct {\n\t// MaxMemoryUsage of L1 in bytes\n\tMaxMemoryUsage int64\n\n\t// SwapDirectory specifies where L2 pages are stored.\n\t// If empty, no l2 cache is used. Instead another l1 cache\n\t// is used in its place, rendering MaxMemoryUsage useless.\n\t// You have to set both for an effect.\n\tSwapDirectory string\n\n\t// L1CacheMissRefill will propagate\n\t// data from L2 to L1 if it could be found\n\t// successfully.\n\tL1CacheMissRefill bool\n\n\t// L2Compress will compress on-disk pages with snappy and decompress them\n\t// on load. Reduces storage, but increases CPU usage if you're swapping.\n\t// Since swapping is slow anyways this is recommended.\n\tL2Compress bool\n}\n\ntype cacheLayer interface {\n\tGet(pk pageKey) (*page.Page, error)\n\tSet(pk pageKey, p *page.Page) error\n\tDel(pks []pageKey)\n\tClose() error\n}\n\n// MDCache is a leveled Memory/Disk cache combination.\ntype MDCache struct {\n\tmu   sync.Mutex\n\tl1   cacheLayer\n\tl2   cacheLayer\n\topts Options\n}\n\ntype pageKey struct {\n\tinode   int64\n\tpageIdx uint32\n}\n\nfunc (pk pageKey) String() string {\n\treturn fmt.Sprintf(\"%08x-%08x\", pk.inode, pk.pageIdx)\n}\n\n// New returns a new Memory/Disk cache\nfunc New(opts Options) (*MDCache, error) {\n\tl2, err := newL2Cache(opts.SwapDirectory, opts.L2Compress)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar l2Iface cacheLayer = l2\n\tif l2 == nil {\n\t\t// special case: when we don't have a l2 cache\n\t\t// then use another memory cache as backing,\n\t\t// with infinite memory.\n\t\tmaxMemory := int64(^uint64(0) >> 1)\n\t\tl2Iface, _ = newL1Cache(nil, maxMemory)\n\t}\n\n\tl1, err := newL1Cache(l2Iface, opts.MaxMemoryUsage)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &MDCache{\n\t\tl1:   l1,\n\t\tl2:   l2Iface,\n\t\topts: opts,\n\t}, nil\n}\n\n// Lookup implements pagecache.Cache\nfunc (dc *MDCache) Lookup(inode int64, pageIdx uint32) (*page.Page, error) {\n\tdc.mu.Lock()\n\tdefer dc.mu.Unlock()\n\n\treturn dc.get(pageKey{inode: inode, pageIdx: pageIdx})\n}\n\nfunc (dc *MDCache) get(pk pageKey) (*page.Page, error) {\n\tp, err := dc.l1.Get(pk)\n\tswitch err {\n\tcase nil:\n\t\treturn p, nil\n\tcase page.ErrCacheMiss:\n\t\tp, err = dc.l2.Get(pk)\n\t\tif err != nil {\n\t\t\treturn p, err\n\t\t}\n\n\t\tif dc.opts.L1CacheMissRefill {\n\t\t\t// propagate back to l1 cache:\n\t\t\tif err := dc.l1.Set(pk, p); err != nil {\n\t\t\t\treturn p, err\n\t\t\t}\n\t\t}\n\n\t\treturn p, err\n\tdefault:\n\t\treturn nil, err\n\t}\n}\n\n// Merge implements pagecache.Cache\nfunc (dc *MDCache) Merge(inode int64, pageIdx, off uint32, write []byte) error {\n\tdc.mu.Lock()\n\tdefer dc.mu.Unlock()\n\n\tif len(write) == 0 {\n\t\t// empty write deserves no extra computation.\n\t\treturn nil\n\t}\n\n\tif off+uint32(len(write)) > page.Size {\n\t\treturn fmt.Errorf(\"merge: write overflows page bounds\")\n\t}\n\n\tpk := pageKey{inode: inode, pageIdx: pageIdx}\n\tp, err := dc.get(pk)\n\tif err != nil && err != page.ErrCacheMiss {\n\t\treturn err\n\t}\n\n\tif p == nil {\n\t\t// Page was not cached yet.\n\t\t// Create an almost empty page.\n\t\tp = page.New(off, write)\n\t}\n\n\tp.Overlay(off, write)\n\treturn dc.l1.Set(pk, p)\n}\n\n// Evict implements pagecache.Cache\nfunc (dc *MDCache) Evict(inode, size int64) error {\n\tdc.mu.Lock()\n\tdefer dc.mu.Unlock()\n\n\t// Figure out all possible indices from size:\n\tpks := []pageKey{}\n\tpageHi := uint32(size / page.Size)\n\tif size%page.Size > 0 {\n\t\tpageHi++\n\t}\n\n\tfor pageIdx := uint32(0); pageIdx < pageHi; pageIdx++ {\n\t\tpks = append(pks, pageKey{inode: inode, pageIdx: pageIdx})\n\t}\n\n\tdc.l1.Del(pks)\n\tdc.l2.Del(pks)\n\treturn nil\n}\n\n// Close closes the cache contents and cleans up resources.\nfunc (dc *MDCache) Close() error {\n\tdc.mu.Lock()\n\tdefer dc.mu.Unlock()\n\n\tif err := dc.l1.Close(); err != nil {\n\t\tlog.WithError(err).Warnf(\"failed to reset l1 cache\")\n\t}\n\n\treturn dc.l2.Close()\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/mdcache/mdcache_test.go",
    "content": "package mdcache\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withMDCache(t *testing.T, fn func(mdc *MDCache)) {\n\ttmpDir, err := ioutil.TempDir(\"\", \"brig-page-l2\")\n\trequire.NoError(t, err)\n\tdefer os.RemoveAll(tmpDir)\n\n\tmd, err := New(Options{\n\t\tMaxMemoryUsage:    4 * page.Size,\n\t\tSwapDirectory:     tmpDir,\n\t\tL1CacheMissRefill: true,\n\t})\n\n\trequire.NoError(t, err)\n\n\tfn(md)\n\n\trequire.NoError(t, md.Close())\n}\n\nfunc TestMDBasic(t *testing.T) {\n\twithMDCache(t, func(mdc *MDCache) {\n\t\tfor idx := 0; idx < 8; idx++ {\n\t\t\terr := mdc.Merge(1, uint32(idx), 0, testutil.CreateDummyBuf(page.Size))\n\t\t\trequire.NoError(t, err)\n\t\t}\n\n\t\tfor idx := 0; idx < 8; idx++ {\n\t\t\tp, err := mdc.Lookup(1, uint32(idx))\n\t\t\trequire.NoError(t, err)\n\n\t\t\trequire.Equal(t, testutil.CreateDummyBuf(page.Size), p.Data)\n\t\t\trequire.Equal(t, []page.Extent{{\n\t\t\t\tOffLo: 0,\n\t\t\t\tOffHi: page.Size,\n\t\t\t}}, p.Extents)\n\t\t}\n\n\t\trequire.NoError(t, mdc.Evict(1, 8*page.Size))\n\t})\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/overlay.go",
    "content": "package pagecache\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\t\"github.com/sahib/brig/util\"\n)\n\n// Layer is a layer above a read-only stream with write support.\ntype Layer struct {\n\t// underlying stream\n\trs io.ReadSeeker\n\n\t// inode is a unique identifier for the stream.\n\t// it is used as identifier in the page cache.\n\tinode int64\n\n\t// cache gives access to cached pages\n\tcache Cache\n\n\t// size is the number of bytes that can be read from\n\t// `rs` from start to end. It represents the \"old\" file size.\n\t// It's only use to decide when to stop reading from the\n\t// underlying stream. For deciding where EOF is, length is used.\n\tsize int64\n\n\t// length starts out same as size, but might change due to\n\t// calls to Truncate(). Truncate is terrible name since it\n\t// can be also used to extend a file's length. But that's\n\t// how the underlying syscall is named, so we follow that.\n\tlength int64\n\n\t// overlayOffset is the last known offset in the stream,\n\t// including reads from the cache. It is the position in the\n\t// overlayed stream.\n\toverlayOffset int64\n\n\t// streamOffset indicates the offset in the underlying stream `rs`.\n\t// It can be the same as `overlayOffset` but is not most of the time.\n\t// Not counted in in `streamOffset` are bytes that were read from\n\t// the cache exclusively, with no need to read from `rs`.\n\t// It's not updated when data is purely read from the cache.\n\tstreamOffset int64\n}\n\n// NewLayer returns a paged overlay for `rs`, reading and storing data from\n// `cache`. `inode` will be used as cache identifier for this file. The only\n// need is that it is unique to this file, otherwise it does not need any\n// inode-like semantics. `size` must be known in advance and reflects the size\n// of `rs`. This cannot be used for pure streaming. `rs` is assumed to be positioned\n// at the zero offset. If not, subtract the offset from `size`.\nfunc NewLayer(rs io.ReadSeeker, cache Cache, inode, size int64) (*Layer, error) {\n\tif err := cache.Evict(inode, size); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Layer{\n\t\trs:     rs,\n\t\tinode:  inode,\n\t\tsize:   size,\n\t\tlength: size,\n\t\tcache:  cache,\n\t}, nil\n}\n\nfunc (l *Layer) ensureOffset(zpr *zeroPadReader) error {\n\tif l.overlayOffset == l.streamOffset {\n\t\treturn nil\n\t}\n\n\tzpr.off = l.overlayOffset\n\tnewOffset, err := l.rs.Seek(l.overlayOffset, io.SeekStart)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tl.streamOffset = newOffset\n\tif newOffset != l.overlayOffset {\n\t\treturn fmt.Errorf(\"page: ensure offset failed (want: %d, got %d)\", l.overlayOffset, newOffset)\n\t}\n\n\treturn nil\n}\n\n// WriteAt writes `buf` to `off`. It will appear on the next\n// read operation.\nfunc (l *Layer) WriteAt(buf []byte, off int64) (n int, err error) {\n\t// If `buf` is large enough to span over several writes then we\n\t// have to calculate the offset of the first page, so that new\n\t// data is written to the correct place.\n\tpageOff := off % page.Size\n\tpageBuf := buf\n\n\t// Go over all pages this write affects.\n\tnewOff := off + int64(len(buf))\n\tpageLo := off / page.Size\n\tpageHi := newOff / page.Size\n\tif newOff%page.Size == 0 {\n\t\tpageHi--\n\t}\n\n\tfor pageIdx := pageLo; pageIdx <= pageHi; pageIdx++ {\n\t\t// Divide `buf` into small portions that will be copied\n\t\t// to the individual pages.\n\n\t\tmayWrite := page.Size - pageOff\n\t\tif mayWrite > int64(len(pageBuf)) {\n\t\t\tmayWrite = int64(len(pageBuf))\n\t\t}\n\n\t\tif mayWrite == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// Overlay the part of `buf` that affects this page\n\t\t// and merge with any pre-existing writes.\n\t\tif err := l.cache.Merge(\n\t\t\tl.inode,\n\t\t\tuint32(pageIdx),\n\t\t\tuint32(pageOff),\n\t\t\tpageBuf[:mayWrite],\n\t\t); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\t// starting from the second block the page offset will\n\t\t// be always zero. That's only relevant for len(buf) > page.Size.\n\t\tpageOff = 0\n\t\tpageBuf = pageBuf[mayWrite:]\n\t}\n\n\t// check if this write extended the full buffer.\n\t// If so we need to remember the new length.\n\tif newOff := off + int64(len(buf)); newOff > l.length {\n\t\tl.length = newOff\n\t}\n\n\t// We always write the full buffer or fail in prior.\n\treturn len(buf), nil\n}\n\nvar (\n\tcopyBufPool = &sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn make([]byte, page.Size)\n\t\t},\n\t}\n)\n\n// ReadAt reads into `buf` from the position `off`.\n//\n// NOTE: There are two things that are not implemented\n// according to the io.ReaderAt docs:\n//\n//  * ReadAt() should not modify the seek offset.\n//    This implementation however does this.\n//  * ReadAt() must be allowed to call in parallel.\n//    We cannot guarantee that at the moment since sometimes\n//    we have to seek the underlying stream - mutex?\nfunc (l *Layer) ReadAt(buf []byte, off int64) (int, error) {\n\t// when requesting reads beyond the size of the overlay,\n\t// we should immediately cancel the request.\n\tif off >= l.length {\n\t\treturn 0, io.EOF\n\t}\n\n\t// set the desired offset\n\tl.overlayOffset = off\n\n\t// small helper for copying data to buf.\n\t// we will never copy more than page.Size to buf.\n\tib := &iobuf{dst: buf}\n\n\t// l.rs might not be as long as l.length.\n\t// We need to pad the rest of the stream with zeros.\n\t// This reader does this.\n\tzpr := &zeroPadReader{\n\t\tr:      l.rs,\n\t\toff:    off,\n\t\tsize:   l.size,\n\t\tlength: l.length,\n\t}\n\n\tpageOff := uint32(off % page.Size)\n\n\t// keep the copy buf around between GC runs.\n\tcopyBuf := copyBufPool.Get().([]byte)\n\tdefer copyBufPool.Put(copyBuf)\n\n\t// Go over all pages this read may affect.\n\t// We might return early due to io.EOF though.\n\tnewOff := off + int64(len(buf))\n\tpageLo := off / page.Size\n\tpageHi := newOff / page.Size\n\tif newOff%page.Size == 0 {\n\t\tpageHi--\n\t}\n\n\tfor pageIdx := pageLo; pageIdx <= pageHi && ib.Left() > 0; pageIdx++ {\n\t\tpageMax := uint32(util.Min64(l.length, l.overlayOffset+page.Size) - l.overlayOffset)\n\t\tif pageMax+pageOff > page.Size {\n\t\t\tpageMax = page.Size - pageOff\n\t\t}\n\n\t\tp, err := l.cache.Lookup(l.inode, uint32(pageIdx))\n\t\tswitch err {\n\t\tcase page.ErrCacheMiss:\n\t\t\t// we don't have this page cached.\n\t\t\t// need to read it from zpr directly.\n\t\t\tif err := l.ensureOffset(zpr); err != nil {\n\t\t\t\treturn ib.Len(), err\n\t\t\t}\n\n\t\t\tn, err := copyNBuffer(ib, zpr, util.Min64(int64(ib.Left()), int64(pageMax)), copyBuf)\n\t\t\tl.overlayOffset += n\n\t\t\tl.streamOffset += n\n\n\t\t\tif err != nil {\n\t\t\t\treturn ib.Len(), err\n\t\t\t}\n\n\t\t\t// NOTE: we could be clever here and cache pages that have\n\t\t\t//       been read often. We could even hook in things like\n\t\t\t//       fadvise() into this layer.\n\t\tcase nil:\n\t\t\t// In this case we know that the page is cached.\n\t\t\t// We can fill `buf` with the page of the data,\n\t\t\t// (provided by page.Reader()).\n\t\t\toccludesStream := p.OccludesStream(pageOff, pageMax)\n\t\t\tif !occludesStream {\n\t\t\t\t// only seek if we have to.\n\t\t\t\tif err := l.ensureOffset(zpr); err != nil {\n\t\t\t\t\treturn ib.Len(), err\n\t\t\t\t}\n\n\t\t\t\tpageN, err := io.ReadFull(zpr, copyBuf[pageOff:])\n\n\t\t\t\t// Still handle the data even in case of errors.\n\t\t\t\tp.Underlay(pageOff, copyBuf[pageOff:pageOff+uint32(pageN)])\n\t\t\t\tl.streamOffset += int64(pageN)\n\n\t\t\t\tif err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {\n\t\t\t\t\treturn ib.Len(), err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tr := bytes.NewReader(p.Data[pageOff : pageOff+pageMax])\n\t\t\tn, err := copyNBuffer(ib, r, int64(ib.Left()), copyBuf)\n\t\t\tif err != nil && err != io.EOF {\n\t\t\t\treturn ib.Len(), err\n\t\t\t}\n\n\t\t\tl.overlayOffset += n\n\t\tdefault:\n\t\t\t// some other error during cache lookup.\n\t\t\treturn ib.Len(), err\n\t\t}\n\n\t\t// If read spans over several pages, the second\n\t\t// page has to start at zero.\n\t\tpageOff = 0\n\t}\n\n\treturn ib.Len(), nil\n}\n\n// Truncate sets the size of the stream.\n// There are three cases:\n//\n// - `size` is equal to Length(): Nothing happens.\n// - `size` is less than Length(): The stream will return io.EOF earlier.\n// - `size` is more than Length(): The stream will be padded with zeros.\n//\n// This matches the behavior of the equally confusingly named POSIX\n// ftruncate() function. Note that Truncate() is a very fast operation.\nfunc (l *Layer) Truncate(size int64) {\n\tl.length = size\n}\n\n// Length is the current truncated length of the overlay.\n// When you did not call Truncate() it will be the size you\n// passed to NewLayer(). Otherwise it is what you passed\n// to the last call of Truncate().\nfunc (l *Layer) Length() int64 {\n\treturn l.length\n}\n\n/////////////////////////////////////\n// FILE I/O COMPATIBILITY METHODS  //\n//                                 //\n// Do not use, unless you have to. //\n// Prefer WriteAt() & ReadAt()     //\n/////////////////////////////////////\n\n// Read implements io.Reader by calling ReadAt()\n// with the current offset.\nfunc (l *Layer) Read(buf []byte) (int, error) {\n\treturn l.ReadAt(buf, l.overlayOffset)\n}\n\n// Write writes `buf` at the current offset.\n// It does NOT modify the read position.\nfunc (l *Layer) Write(buf []byte) (int, error) {\n\tn, err := l.WriteAt(buf, l.overlayOffset)\n\treturn n, err\n}\n\n// Seek changes the current offset for Write and Read.\n// Note that in this implementation calling ReadAt.\n// *does* change the seek offset. Use Seek() to make\n// sure you're reading from the right spot.\nfunc (l *Layer) Seek(off int64, whence int) (int64, error) {\n\tswitch whence {\n\tcase io.SeekStart:\n\t\tl.overlayOffset = off\n\tcase io.SeekCurrent:\n\t\tl.overlayOffset += off\n\tcase io.SeekEnd:\n\t\tl.overlayOffset = l.length + off\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"invalid whence %d\", whence)\n\t}\n\n\treturn l.overlayOffset, nil\n}\n\n// Close will close the overlay and free up all resources,\n// including pages in the cache.\nfunc (l *Layer) Close() error {\n\treturn l.cache.Evict(l.inode, l.length)\n}\n\n// WriteTo implements io.WriterTo\nfunc (l *Layer) WriteTo(w io.Writer) (int64, error) {\n\t// NOTE: This method is mostly used in tests.\n\t// but can be also used by io.Copy() internally.\n\t// There is room for optimizations here:\n\t// Avoid one copy by directly writing to copyBuf.\n\tcopyBuf := copyBufPool.Get().([]byte)\n\tdefer copyBufPool.Put(copyBuf)\n\n\twsum := int64(0)\n\n\tfor {\n\t\trn, rerr := l.ReadAt(copyBuf, l.overlayOffset)\n\t\tif rerr != nil && rerr != io.EOF {\n\t\t\treturn wsum, rerr\n\t\t}\n\n\t\twn, werr := w.Write(copyBuf[:rn])\n\t\twsum += int64(wn)\n\t\tif werr != nil {\n\t\t\treturn wsum, werr\n\t\t}\n\n\t\tif wn < rn {\n\t\t\treturn wsum, io.ErrShortWrite\n\t\t}\n\n\t\tif rerr == io.EOF {\n\t\t\treturn wsum, nil\n\t\t}\n\n\t\tif rn == 0 {\n\t\t\treturn wsum, fmt.Errorf(\"nothing read, but no EOF\")\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/overlay_test.go",
    "content": "package pagecache\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/rand\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs/mio/pagecache/mdcache\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/page\"\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withLayer(t *testing.T, size int64, fn func(expected []byte, p *Layer)) {\n\tmd, err := mdcache.New(mdcache.Options{\n\t\tMaxMemoryUsage: 4 * page.Size,\n\t\tSwapDirectory:  \"\",\n\t})\n\n\trequire.NoError(t, err)\n\n\tdata := testutil.CreateDummyBuf(size)\n\tp, err := NewLayer(bytes.NewReader(data), md, 42, size)\n\trequire.NoError(t, err)\n\n\texpected := make([]byte, size)\n\tcopy(expected, data)\n\tfn(expected, p)\n\n\trequire.NoError(t, md.Close())\n}\n\nvar (\n\ttestSizes = []int64{\n\t\t16*page.Size + 0,\n\t\t16*page.Size - 1,\n\t\t16*page.Size + 1,\n\t\tpage.Size + 0,\n\t\tpage.Size - 1,\n\t\tpage.Size + 1,\n\t\t0,\n\t\t1,\n\t}\n)\n\nfunc TestReadOnly(t *testing.T) {\n\tfor _, testSize := range testSizes {\n\t\tt.Run(fmt.Sprintf(\"%d\", testSize), func(t *testing.T) {\n\t\t\twithLayer(t, testSize, func(expected []byte, p *Layer) {\n\t\t\t\tgot := bytes.NewBuffer([]byte{})\n\t\t\t\tn, err := p.WriteTo(got)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t\trequire.Equal(t, testSize, n)\n\t\t\t\trequire.Equal(t, expected, got.Bytes())\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc padOrCutToLength(buf []byte, length int64) []byte {\n\tif int64(len(buf)) >= length {\n\t\treturn buf[:length]\n\t}\n\n\tc := make([]byte, length)\n\tcopy(c, buf)\n\treturn c\n}\n\nfunc TestReadOnlyTruncate(t *testing.T) {\n\ttruncOffsets := []int64{\n\t\t-2*page.Size + 0,\n\t\t-2*page.Size - 1,\n\t\t-2*page.Size + 1,\n\t\t+2*page.Size + 0,\n\t\t+2*page.Size - 1,\n\t\t+2*page.Size + 1,\n\t\t+page.Size + 0,\n\t\t+page.Size - 1,\n\t\t+page.Size + 1,\n\t\t-page.Size + 0,\n\t\t-page.Size - 1,\n\t\t-page.Size + 1,\n\t\t+0,\n\t\t+1,\n\t\t-1,\n\t}\n\n\tfor _, testSize := range testSizes {\n\t\tt.Run(fmt.Sprintf(\"%d\", testSize), func(t *testing.T) {\n\t\t\tfor _, truncOff := range truncOffsets {\n\t\t\t\tlength := util.Max64(0, testSize+truncOff)\n\t\t\t\tif length == testSize {\n\t\t\t\t\t// no need to run test with no truncation.\n\t\t\t\t\t// already covered by TestReadOnly()\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tt.Run(fmt.Sprintf(\"trunc-to-%d\", length), func(t *testing.T) {\n\t\t\t\t\twithLayer(t, testSize, func(expected []byte, p *Layer) {\n\t\t\t\t\t\tgot := bytes.NewBuffer([]byte{})\n\t\t\t\t\t\tp.Truncate(length)\n\n\t\t\t\t\t\tn, err := p.WriteTo(got)\n\t\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\t\trequire.Equal(t, length, n)\n\n\t\t\t\t\t\tres := padOrCutToLength(got.Bytes(), length)\n\t\t\t\t\t\trequire.Equal(\n\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\tpadOrCutToLength(expected, length),\n\t\t\t\t\t\t\tres,\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestWriteSingle(t *testing.T) {\n\tfor _, testReadSize := range testSizes {\n\t\tt.Run(fmt.Sprintf(\"read-%d\", testReadSize), func(t *testing.T) {\n\t\t\tfor _, testWriteSize := range testSizes {\n\t\t\t\tt.Run(fmt.Sprintf(\"write-%d\", testWriteSize), func(t *testing.T) {\n\t\t\t\t\twithLayer(t, testReadSize, func(expected []byte, p *Layer) {\n\t\t\t\t\t\texpected = testutil.CreateRandomDummyBuf(testWriteSize, 23)\n\t\t\t\t\t\twn, err := p.WriteAt(expected, 0)\n\t\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\t\trequire.Equal(t, int64(wn), testWriteSize)\n\n\t\t\t\t\t\tgot := make([]byte, testWriteSize)\n\t\t\t\t\t\trn, err := p.Read(got)\n\t\t\t\t\t\tif testReadSize == 0 {\n\t\t\t\t\t\t\t// special case: that will immediately return EOF.\n\t\t\t\t\t\t\trequire.Error(t, io.EOF, err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\t\trequire.Equal(t, wn, rn)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestWriteRandomOffset(t *testing.T) {\n\t// Randomly generate writes and write them to the layer.\n\t// The randomness is controlled by seed to be reproducible.\n\t// The generated data is also copy()'d to a slice which\n\t// serves as way to check the overlay on the final read.\n\n\tfor seed := 0; seed < 40; seed++ {\n\t\tt.Run(fmt.Sprintf(\"seed-%d\", seed), func(t *testing.T) {\n\t\t\tfor _, testReadSize := range testSizes {\n\t\t\t\tif testReadSize == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tt.Run(fmt.Sprintf(\"size-%d\", testReadSize*2), func(t *testing.T) {\n\t\t\t\t\twithLayer(t, testReadSize, func(expected []byte, p *Layer) {\n\n\t\t\t\t\t\t// NOTE: We do not write beyond p.Length()\n\t\t\t\t\t\t// to make this test easier to check.\n\t\t\t\t\t\tp.Truncate(testReadSize * 2)\n\n\t\t\t\t\t\texpected = padOrCutToLength(expected, p.Length())\n\t\t\t\t\t\trequire.Equal(t, testReadSize*2, p.Length())\n\n\t\t\t\t\t\trand.Seed(int64(seed))\n\t\t\t\t\t\tfor nwrites := 0; nwrites < seed; nwrites++ {\n\t\t\t\t\t\t\twriteOff := rand.Int63n(p.Length())\n\t\t\t\t\t\t\twriteLen := rand.Int63n(p.Length() - writeOff + 1)\n\n\t\t\t\t\t\t\t// stream contains 0-254 data, overwrite with random:\n\t\t\t\t\t\t\tbuf := testutil.CreateRandomDummyBuf(writeLen, int64(seed))\n\t\t\t\t\t\t\tcopy(expected[writeOff:writeOff+writeLen], buf)\n\t\t\t\t\t\t\twn, err := p.WriteAt(buf, writeOff)\n\t\t\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\t\t\trequire.Equal(t, int(writeLen), wn)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgot := &bytes.Buffer{}\n\t\t\t\t\t\trn, err := io.Copy(got, p)\n\t\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\t\trequire.Equal(t, p.Length(), int64(rn))\n\t\t\t\t\t\trequire.Equal(t, p.Length(), int64(len(expected)))\n\t\t\t\t\t\trequire.Equal(t, p.Length(), int64(got.Len()))\n\n\t\t\t\t\t\t// This for loop here is just for easier digest\n\t\t\t\t\t\t// debug output. require.Equal() outputs huge\n\t\t\t\t\t\t// diffs that are seldom helpful.\n\t\t\t\t\t\tfor idx := 0; idx < got.Len(); idx++ {\n\t\t\t\t\t\t\tif expected[idx] != got.Bytes()[idx] {\n\t\t\t\t\t\t\t\trequire.Equal(\n\t\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t\texpected[idx:idx+256],\n\t\t\t\t\t\t\t\t\tgot.Bytes()[idx:idx+256],\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// This assert is just here in case the for loop\n\t\t\t\t\t\t// above has a bug or gets lost somehow.\n\t\t\t\t\t\trequire.Equal(t, expected, got.Bytes())\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestReadRandomOffset(t *testing.T) {\n\ttcs := []struct {\n\t\tsize   int64\n\t\tlength int64\n\t\tnops   int\n\t}{\n\t\t{page.Size, page.Size, 10},\n\t\t{2 * page.Size, page.Size, 20},\n\t\t{page.Size, 2 * page.Size, 30},\n\n\t\t{16 * page.Size, 16 * page.Size, 30},\n\t\t{16 * page.Size, 16*page.Size + 1, 20},\n\t\t{16*page.Size + 1, 16 * page.Size, 10},\n\t}\n\t//\t\t16*page.Size + 0,\n\t//\t\t16*page.Size - 1,\n\t//\t\t16*page.Size + 1,\n\t//\t\tpage.Size + 0,\n\t//\t\tpage.Size - 1,\n\t//\t\tpage.Size + 1,\n\t//\t\t0,\n\t//\t\t1,\n\n\tfor _, tc := range tcs {\n\t\tname := fmt.Sprintf(\"s%d-l%d-o%d\", tc.size, tc.length, tc.nops)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\t// always use the same writing distribution,\n\t\t\t// just increasingly more writes:\n\n\t\t\twithLayer(t, tc.size, func(expected []byte, p *Layer) {\n\t\t\t\tp.Truncate(tc.length)\n\t\t\t\texpected = padOrCutToLength(expected, p.Length())\n\t\t\t\trequire.Equal(t, tc.length, p.Length())\n\t\t\t\trand.Seed(42)\n\n\t\t\t\toverlayed := make([]byte, len(expected))\n\t\t\t\tcopy(overlayed, expected)\n\n\t\t\t\tfor idx := 0; idx < tc.nops; idx++ {\n\t\t\t\t\twriteOff := rand.Int63n(p.Length())\n\t\t\t\t\twriteLen := rand.Int63n(p.Length() - writeOff + 1)\n\n\t\t\t\t\t// stream contains 0-254 data, overwrite with random:\n\t\t\t\t\tbuf := testutil.CreateRandomDummyBuf(writeLen, int64(42))\n\t\t\t\t\tcopy(overlayed[writeOff:writeOff+writeLen], buf)\n\t\t\t\t\twn, err := p.WriteAt(buf, writeOff)\n\t\t\t\t\trequire.NoError(t, err)\n\t\t\t\t\trequire.Equal(t, int(writeLen), wn)\n\t\t\t\t}\n\n\t\t\t\tfor seed := 0; seed < 40; seed++ {\n\t\t\t\t\trand.Seed(int64(seed))\n\t\t\t\t\tt.Run(fmt.Sprintf(\"seed-%d\", seed), func(t *testing.T) {\n\t\t\t\t\t\tfor idx := 0; idx < tc.nops; idx++ {\n\t\t\t\t\t\t\treadOff := rand.Int63n(p.Length())\n\t\t\t\t\t\t\treadLen := rand.Int63n(p.Length() - readOff + 1)\n\t\t\t\t\t\t\treadBuf := make([]byte, readLen)\n\n\t\t\t\t\t\t\trn, err := p.ReadAt(readBuf, readOff)\n\t\t\t\t\t\t\trequire.NoError(t, err)\n\n\t\t\t\t\t\t\trequire.Equal(t, readLen, int64(rn))\n\t\t\t\t\t\t\tfor idx := int64(0); idx < readLen; idx++ {\n\t\t\t\t\t\t\t\tif overlayed[readOff+idx] != readBuf[idx] {\n\t\t\t\t\t\t\t\t\trequire.Failf(t, \"bad data read\", \"first wrong offset: %d\", readOff+idx)\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trequire.Equal(t, overlayed[readOff:readOff+readLen], readBuf)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/page/page.go",
    "content": "package page\n\n// NOTE: I had quite often brain freeze while figuring out the indexing.\n// If you do too, take a piece of paper and draw it.\n// If you don't, congratulations. You're smarter than me.\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sort\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\t// Size is the default size for a page.\n\t// Last page might be smaller.\n\tSize = 64 * 1024\n\n\t// Meta is the number of bytes we use\n\t// to store the extents of the page.\n\t// (4k is the typical page size on linux)\n\tMeta = 4 * 1024\n\n\t// ExtentSize needed to store a single extent.\n\tExtentSize = 8\n)\n\nvar (\n\t// ErrCacheMiss indicates that a page is missing from the cache.\n\t// Not a real error, but a sentinel to indicate this state.\n\tErrCacheMiss = errors.New(\"cache miss\")\n)\n\n// Extent marks a single write or\n// several writes that were joined to one.\n//\n// The written data is in the range [lo, hi)\n// where hi is not part of the write!\n//\n// In other words, when writing 16384 bytes\n// at OffLo=0, then OffHi=16384, but the last\n// valid bytes is at p.Data[OffHi-1]!\n//\n// This was chosen so you could say p.Data[OffLo:OffHi]\n// and it would do what you would guess it would do.\ntype Extent struct {\n\tOffLo, OffHi uint32\n}\n\nfunc (e Extent) String() string {\n\treturn fmt.Sprintf(\"[%d-%d)\", e.OffLo, e.OffHi)\n}\n\n// Page is a single cached page\ntype Page struct {\n\t// Extents is a list describing where\n\t// `Data` contains valid data.\n\tExtents []Extent\n\n\t// Data is the data hold by the page.\n\t// It is allocated to Size+Meta bytes,\n\t// even when no data was used.\n\tData []byte\n}\n\nfunc (p *Page) String() string {\n\tbuf := &bytes.Buffer{}\n\tfor idx, extent := range p.Extents {\n\t\tbuf.WriteString(extent.String())\n\t\tif idx+1 != len(p.Extents) {\n\t\t\tbuf.WriteString(\", \")\n\t\t}\n\t}\n\n\treturn fmt.Sprintf(\"<page %p %s>\", p.Data, buf.String())\n}\n\n// New allocates a new page with an initial extent at `off`\n// and with `write` as data. See also Overlay()\nfunc New(off uint32, write []byte) *Page {\n\t// NOTE: We allocate more than we actually need in order to implement\n\t// AsBytes and FromBytes efficiently without further allocations.\n\tbacking := make([]byte, Size+Meta)\n\tp := &Page{Data: backing[:Size]}\n\tp.Overlay(off, write)\n\treturn p\n}\n\n// FromBytes reconstructs a page from the give data.\n// Note that ownership over the data is taken, do not write\n// to it anymore while using it as a page.\nfunc FromBytes(data []byte) (*Page, error) {\n\tif len(data) < Size {\n\t\treturn nil, fmt.Errorf(\"page data smaller than mandatory size\")\n\t}\n\n\tp := Page{Data: data[:Size]}\n\textents := data[Size:cap(data)]\n\tfor idx := 0; idx < len(extents); idx += ExtentSize {\n\t\tif idx+ExtentSize > len(extents) {\n\t\t\t// sanity check: do not read after extents.\n\t\t\tcontinue\n\t\t}\n\n\t\toffLo := binary.LittleEndian.Uint32(extents[idx+0:])\n\t\toffHi := binary.LittleEndian.Uint32(extents[idx+4:])\n\t\tif offLo == 0 && offHi == 0 {\n\t\t\t// empty writes are invalid and serve as sentinel value\n\t\t\t// to tell us we read too far. No other extents to expect.\n\t\t\tbreak\n\t\t}\n\n\t\tif offLo == offHi {\n\t\t\tlog.Warnf(\"page cache: loaded empty extent\")\n\t\t\tcontinue\n\t\t}\n\n\t\tif offLo > offHi {\n\t\t\tlog.Warnf(\"page cache: loaded invalid extent\")\n\t\t\tcontinue\n\t\t}\n\n\t\tp.Extents = append(p.Extents, Extent{\n\t\t\tOffLo: offLo,\n\t\t\tOffHi: offHi,\n\t\t})\n\t}\n\n\treturn &p, nil\n}\n\n// AsBytes encodes the extents at the end of the page data\n// and returns the full sized page array.\nfunc (p *Page) AsBytes() []byte {\n\tif cap(p.Data) < Size+Meta {\n\t\t// this is a programming error:\n\t\tpanic(fmt.Sprintf(\"bug: page memory was allocated too small %d\", cap(p.Data)))\n\t}\n\n\tpdata := p.Data[:Size+Meta]\n\tpmeta := pdata[Size:]\n\n\tfor idx, extent := range p.Extents {\n\t\toff := idx * ExtentSize\n\t\tif off+ExtentSize >= cap(p.Data)-Size {\n\t\t\t// NOTE: This is an inefficient allocation/copy. It will occur only\n\t\t\t// when there are more than $(Meta/ExtentSize) distinct writes\n\t\t\t// without a single read of this page (a non-occluding read will\n\t\t\t// unify all extents). This is pretty unlikely to happen in normal\n\t\t\t// circumstances. If that happens it's a weird use case, so\n\t\t\t// allocate another 64 extents.\n\t\t\tpdata = append(pdata, make([]byte, ExtentSize*64)...)\n\t\t\tp.Data = pdata[:Size]\n\t\t\tpmeta = pdata[Size:cap(pdata)]\n\t\t}\n\n\t\tbinary.LittleEndian.PutUint32(pmeta[off+0:], extent.OffLo)\n\t\tbinary.LittleEndian.PutUint32(pmeta[off+4:], extent.OffHi)\n\t}\n\n\treturn pdata\n}\n\n// affectedExtentIdxs() returns the indices of extents\n// that would be affected when writing a new extent with\n// the offsets [lo, hi].\n//\n// Consider the following cases, where \"-\" are areas\n// with existing extents, \"_\" without and \"|\" denotes\n// the area where we want to write newly. First extent\n// is called E1, second E2 and so on.\n//\n// Case 1: => min=E2, max=E2 (does not hit any extent)\n//\n// ------__|--|___-------\n//\n// Case 2: => min=E2, max=E3 (partially hits an extent)\n//\n// ------__|-------|-----\n//\n// Case 3: => min=E2, max=E3 (fully inside one extent)\n//\n// ------________--|---|-\n//\n// Case 4: => min=len(extents), max=len(extents) (outside any extent)\n//\n// ------________--------  |-----|\nfunc (p *Page) affectedExtentIdxs(lo, hi uint32) (int, int) {\n\tminExIdx := sort.Search(len(p.Extents), func(i int) bool {\n\t\treturn lo < p.Extents[i].OffHi\n\t})\n\n\tmaxExIdx := sort.Search(len(p.Extents), func(i int) bool {\n\t\treturn hi <= p.Extents[i].OffLo\n\t})\n\n\tif minExIdx > maxExIdx {\n\t\t// this can happen if lo > hi.\n\t\t// (basically a programmer error)\n\t\tmaxExIdx = minExIdx\n\t}\n\n\treturn minExIdx, maxExIdx\n}\n\n// OccludesStream will tell you if the page's cached contents\n// fully occlude the underlying stream. Or in other words:\n// If true, we do not need to read from the underlying stream.\nfunc (p *Page) OccludesStream(pageOff, length uint32) bool {\n\tl := int64(length)\n\tminExIdx, maxExIdx := p.affectedExtentIdxs(pageOff, pageOff+length)\n\tfor idx := minExIdx; idx < maxExIdx && l > 0; idx++ {\n\t\tex := p.Extents[idx]\n\t\tif ex.OffHi < pageOff {\n\t\t\tcontinue\n\t\t}\n\n\t\tif ex.OffLo < pageOff {\n\t\t\tl -= int64(ex.OffHi - pageOff)\n\t\t\tcontinue\n\t\t}\n\n\t\tl -= int64(ex.OffHi - ex.OffLo)\n\t}\n\n\treturn l <= 0\n}\n\n// Overlay adds newly written data in `write` to the page\n// at `off` (relative to the page start!). off + len(write) may not\n// exceed the page size! This is a programmer error.\n//\n// Internally, the data is copied to the page buffer and we keep\n// note of the new data in an extent, possibly merging with existing\n// ones. This is a relatively fast operation.\nfunc (p *Page) Overlay(off uint32, write []byte) {\n\tif len(write) == 0 {\n\t\treturn\n\t}\n\n\toffPlusWrite := off + uint32(len(write))\n\tif offPlusWrite > uint32(len(p.Data)) {\n\t\t// this is a programmer error:\n\t\tpanic(fmt.Sprintf(\"extent with write over page bound: %d\", offPlusWrite))\n\t}\n\n\t// Copy the data to the requested part of the page.\n\t// Everything after is maintaining the extents.\n\tcopy(p.Data[off:offPlusWrite], write)\n\tp.updateExtents(off, offPlusWrite)\n}\n\nfunc (p *Page) updateExtents(off, offPlusWrite uint32) {\n\t// base case: no extents yet:\n\tif len(p.Extents) == 0 {\n\t\tp.Extents = append(p.Extents, Extent{\n\t\t\tOffLo: off,\n\t\t\tOffHi: offPlusWrite,\n\t\t})\n\t\treturn\n\t}\n\n\t// Find out where to insert the new extent.\n\t// Use binary search to find a range of extents\n\t// that are affected by this write.\n\tminExIdx, maxExIdx := p.affectedExtentIdxs(off, offPlusWrite)\n\n\tif minExIdx >= len(p.Extents) {\n\t\t// This means that no extent was affected because we wrote beyond any\n\t\t// existing extent. Append a new extent to the end of the list.\n\t\tp.Extents = append(p.Extents, Extent{\n\t\t\tOffLo: off,\n\t\t\tOffHi: offPlusWrite,\n\t\t})\n\t\treturn\n\t}\n\n\tif minExIdx == maxExIdx {\n\t\t// write happens in \"free space\". No extent hit.\n\t\tif minExIdx > 0 && p.Extents[minExIdx-1].OffHi == off {\n\t\t\t// If the write happens to be right after another existing extent\n\t\t\t// then merge with it. Otherwise insert below.\n\t\t\tp.Extents[minExIdx-1].OffHi = offPlusWrite\n\t\t\treturn\n\t\t}\n\n\t\tif maxExIdx < len(p.Extents) && p.Extents[maxExIdx].OffLo == offPlusWrite {\n\t\t\t// If the write happens to be right before another existing extent\n\t\t\t// then merge with it. Otherwise insert below.\n\t\t\tp.Extents[maxExIdx].OffLo = off\n\t\t\treturn\n\t\t}\n\n\t\t// insert new extent in the middle of the slice.\n\t\tp.Extents = append(p.Extents, Extent{})\n\t\tcopy(p.Extents[minExIdx+1:], p.Extents[minExIdx:])\n\t\tp.Extents[minExIdx] = Extent{\n\t\t\tOffLo: off,\n\t\t\tOffHi: offPlusWrite,\n\t\t}\n\n\t\treturn\n\t}\n\n\t// Join all affected in the range to one single extent,\n\t// and move rest of extents further and cut to new size:\n\tnewHi := p.Extents[maxExIdx-1].OffHi\n\tnewLo := p.Extents[minExIdx].OffLo\n\tif newHi < offPlusWrite {\n\t\tnewHi = offPlusWrite\n\t}\n\n\tif newLo > off {\n\t\tnewLo = off\n\t}\n\n\tp.Extents[minExIdx].OffLo = newLo\n\tp.Extents[minExIdx].OffHi = newHi\n\tcopy(p.Extents[minExIdx+1:], p.Extents[maxExIdx:])\n\tp.Extents = p.Extents[:len(p.Extents)-(maxExIdx-minExIdx)+1]\n}\n\nfunc minUint32(a, b uint32) uint32 {\n\tif a < b {\n\t\treturn a\n\t}\n\n\treturn b\n}\n\n// Underlay is like the \"negative\" of Overlay. It writes the data of `write`\n// (starting at pageOff) to the underlying buffer where *no* extent is.\n// It can be used to \"cache\" data from the underlying stream, but not\n// overwriting any overlay. If OccludesStream() returns true for the same\n// offsets, then Underlay() will be an (expensive) no-op.\nfunc (p *Page) Underlay(pageOff uint32, write []byte) {\n\tpageOffPlusWrite := pageOff + uint32(len(write))\n\tif pageOff == pageOffPlusWrite {\n\t\t// zero underlay.\n\t\treturn\n\t}\n\n\tcursor := write\n\tprevOff := pageOff\n\tfor _, ex := range p.Extents {\n\t\tif ex.OffHi < pageOff {\n\t\t\t// Extent was before the desired write.\n\t\t\t// No need to consider this one.\n\t\t\tcontinue\n\t\t}\n\n\t\tif ex.OffLo < pageOff {\n\t\t\t// Extent started before pageOff,\n\t\t\t// but goes over it. We should not copy.\n\t\t\t// Instead \"loose\" the data of that extent.\n\t\t\tcutoff := minUint32(ex.OffHi-pageOff, uint32(len(cursor)))\n\t\t\tcursor = cursor[cutoff:]\n\t\t\tprevOff = ex.OffHi\n\t\t\tcontinue\n\t\t}\n\n\t\ttoCopy := ex.OffLo - prevOff\n\t\tif toCopy > 0 {\n\t\t\t// Copy everything since last copy\n\t\t\t// to p.Data and jump over the data in cursor.\n\t\t\tcopy(p.Data[prevOff:prevOff+toCopy], cursor)\n\t\t}\n\n\t\tcursor = cursor[minUint32(toCopy+ex.OffHi-ex.OffLo, uint32(len(cursor))):]\n\t\tprevOff = ex.OffHi\n\t}\n\n\tif prevOff < pageOffPlusWrite && len(cursor) > 0 {\n\t\t// Handle the case when the underlying write\n\t\t// goes beyond all extents or when there are\n\t\t// no extents at all.\n\t\ttoCopy := pageOffPlusWrite - prevOff\n\t\tcopy(p.Data[prevOff:prevOff+toCopy], cursor)\n\t}\n\n\tp.updateExtents(pageOff, pageOffPlusWrite)\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/page/page_test.go",
    "content": "package page\n\nimport (\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPageAffectedIndices(t *testing.T) {\n\te1 := Extent{\n\t\tOffLo: 0,\n\t\tOffHi: Size / 4,\n\t}\n\n\te2 := Extent{\n\t\tOffLo: 2 * Size / 4,\n\t\tOffHi: 3 * Size / 4,\n\t}\n\n\te3 := Extent{\n\t\tOffLo: 3 * Size / 4,\n\t\tOffHi: 4 * Size / 4,\n\t}\n\n\tp := Page{\n\t\tData:    make([]byte, Size+Meta),\n\t\tExtents: []Extent{e1, e2, e3},\n\t}\n\n\tfor idx := uint32(1); idx < e1.OffHi; idx++ {\n\t\tl, h := p.affectedExtentIdxs(0, uint32(idx))\n\n\t\t// result means: affects extents[0] until\n\t\t// (excluding) extents[1]\n\t\trequire.Equal(t, 0, l, idx)\n\t\trequire.Equal(t, 1, h, idx)\n\t}\n\n\tfor idx := e1.OffHi; idx < e2.OffLo; idx++ {\n\t\tl, h := p.affectedExtentIdxs(e1.OffHi, uint32(idx))\n\n\t\t// result means: no extent was found, the array\n\t\t// of affected extents is empty.\n\t\trequire.Equal(t, 1, l, idx)\n\t\trequire.Equal(t, 1, h, idx)\n\t}\n\n\tfor idx := e2.OffLo + 1; idx < e3.OffLo; idx++ {\n\t\tl, h := p.affectedExtentIdxs(idx, idx+1)\n\n\t\t// result means: no extent was found, the array\n\t\t// of affected extents is empty.\n\t\trequire.Equal(t, 1, l, idx)\n\t\trequire.Equal(t, 2, h, idx)\n\t}\n\n\t// No for loop needed for last case:\n\tl, h := p.affectedExtentIdxs(Size, Size+1)\n\trequire.Equal(t, 3, l)\n\trequire.Equal(t, 3, h)\n}\n\nfunc TestPageSerializeDeserialize(t *testing.T) {\n\texpected := New(0, testutil.CreateDummyBuf(Size))\n\n\tdata := expected.AsBytes()\n\tgot, err := FromBytes(data)\n\trequire.NoError(t, err)\n\n\trequire.Equal(t, expected.Data, got.Data)\n\trequire.Equal(t, expected.Extents, got.Extents)\n}\n\nfunc TestPageSerializeWithManyWrites(t *testing.T) {\n\t// Simulate a really pathological case where we have tons of small writes.\n\t// They will cause AsBytes() to increase the backing buffer when\n\t// serializing. This will be a performance hit, but is at least correct.\n\texpected := New(0, testutil.CreateDummyBuf(10))\n\tfor idx := 0; idx < 1024; idx++ {\n\t\toff := uint32(11 + (idx * 11))\n\t\texpected.Overlay(off, testutil.CreateDummyBuf(10))\n\t}\n\n\t// 1025: initial extent existed:\n\trequire.Len(t, expected.Extents, 1025)\n\n\tdata := expected.AsBytes()\n\tgot, err := FromBytes(data)\n\trequire.NoError(t, err)\n\n\trequire.Equal(t, expected.Data, got.Data)\n\trequire.Equal(t, expected.Extents, got.Extents)\n}\n\nfunc TestPageOccludeStreamBasic(t *testing.T) {\n\t// page with one extent:\n\tp := New(0, testutil.CreateDummyBuf(Size/4))\n\n\trequire.False(t, p.OccludesStream(0, Size))\n\trequire.False(t, p.OccludesStream(0, Size/4+1))\n\trequire.True(t, p.OccludesStream(0, Size/4))\n\trequire.True(t, p.OccludesStream(0, Size/4-1))\n\n\tp.Overlay(2*Size/4, testutil.CreateDummyBuf(Size/4))\n\n\trequire.False(t, p.OccludesStream(2*Size/4, Size/4+1))\n\trequire.False(t, p.OccludesStream(0, 3*Size/4+1))\n\trequire.True(t, p.OccludesStream(2*Size/4, Size/4))\n\trequire.True(t, p.OccludesStream(2*Size/4, Size/4-1))\n}\n\nfunc TestPageOccludeStreamInExtent(t *testing.T) {\n\tp := New(0, testutil.CreateDummyBuf(Size/4))\n\tp.Overlay(2*Size/4, testutil.CreateDummyBuf(Size/4))\n\n\trequire.False(t, p.OccludesStream(Size/8, 5*Size/8))\n\trequire.False(t, p.OccludesStream(5*Size/8, Size/8+1))\n\trequire.True(t, p.OccludesStream(5*Size/8, Size/8))\n\trequire.True(t, p.OccludesStream(Size/8, Size/8))\n}\n\nfunc TestPageAddExtent(t *testing.T) {\n\t// page with one extent:\n\tp := New(0, testutil.CreateDummyBuf(Size/4))\n\n\t// This matches the extents in TestPageAffectedIndices:\n\t// (first extent touches existing one!)\n\tp.Overlay(100, testutil.CreateDummyBuf(Size/4))\n\tp.Overlay(2*Size/4, testutil.CreateDummyBuf(Size/4))\n\tp.Overlay(3*Size/4, testutil.CreateDummyBuf(Size/4))\n\n\trequire.Len(t, p.Extents, 3)\n\trequire.Equal(\n\t\tt,\n\t\t[]Extent{{0, Size/4 + 100}, {2 * Size / 4, 3 * Size / 4}, {3 * Size / 4, Size}},\n\t\tp.Extents,\n\t)\n\n\trequire.Panics(t, func() {\n\t\t// Write beyond the extents:\n\t\tp.Overlay(Size, testutil.CreateDummyBuf(1))\n\t})\n\n\t// Write an extent in free space, right after another one:\n\t// It should detect this and merge with it.\n\tp.Overlay(Size/4+100, testutil.CreateDummyBuf(20))\n\trequire.Len(t, p.Extents, 3)\n\trequire.Equal(t, Extent{0, Size/4 + 120}, p.Extents[0])\n\n\t// Write an extent in free space (not adjacent):\n\tp.Overlay(Size/4+200, testutil.CreateDummyBuf(30))\n\trequire.Len(t, p.Extents, 4)\n\trequire.Equal(t, Extent{Size/4 + 200, Size/4 + 230}, p.Extents[1])\n\n\t// Write an extent that covers everything,\n\t// should reduce to a single one:\n\tp.Overlay(0, testutil.CreateDummyBuf(Size))\n\trequire.Len(t, p.Extents, 1)\n\trequire.Equal(t, Extent{0, Size}, p.Extents[0])\n\trequire.Equal(t, testutil.CreateDummyBuf(Size), p.Data)\n\n\t// Try to add an empty extent, it should not do anything.\n\tp.Overlay(0, []byte{})\n\trequire.Len(t, p.Extents, 1)\n}\n\nfunc TestPageAddExtentRegression(t *testing.T) {\n\t// I forgot to adjust the lower extent bound:\n\tp := New(3*Size/4, testutil.CreateDummyBuf(Size/4))\n\tp.Overlay(0, testutil.CreateDummyBuf(Size))\n\trequire.Len(t, p.Extents, 1)\n\trequire.Equal(t, uint32(0), p.Extents[0].OffLo)\n\trequire.Equal(t, uint32(Size), p.Extents[0].OffHi)\n}\n\nfunc TestPageUnderlayFull(t *testing.T) {\n\tunderlay := testutil.CreateRandomDummyBuf(Size, 23)\n\toverlay := testutil.CreateDummyBuf(Size / 4)\n\n\tp := New(2*Size/4, overlay)\n\tp.Underlay(0, underlay)\n\n\tcopy(underlay[2*Size/4:], overlay)\n\trequire.Equal(t, len(underlay), len(p.Data))\n\trequire.Equal(t, underlay, p.Data)\n}\n\nfunc TestPageUnderlayPartial(t *testing.T) {\n\tunderlay := testutil.CreateRandomDummyBuf(2*Size/4, 23)\n\tp := New(2*Size/4, testutil.CreateDummyBuf(Size/4))\n\n\t// That overlay should be ignored:\n\tp.Overlay(Size/16, testutil.CreateDummyBuf(Size/32))\n\n\t// This overlay shadows the underlay:\n\tp.Overlay(Size/8, testutil.CreateDummyBuf(Size/4))\n\n\t// Now underlay it. Should only write things\n\t// between 3*Size/8 and Size/2, everything else is shadowed.\n\tp.Underlay(Size/4, underlay)\n\n\t// Construct our expectation:\n\texpected := make([]byte, Size)\n\tcopy(expected[Size/4:], underlay)\n\tcopy(expected[Size/16:], testutil.CreateDummyBuf(Size/32))\n\tcopy(expected[Size/8:], testutil.CreateDummyBuf(Size/4))\n\tcopy(expected[2*Size/4:], testutil.CreateDummyBuf(Size/4))\n\n\trequire.Equal(t, expected, p.Data)\n}\n\nfunc TestPageUnderlayLeftover(t *testing.T) {\n\tunderlay := testutil.CreateRandomDummyBuf(1*Size/4, 23)\n\toverlay := testutil.CreateDummyBuf(3 * Size / 4)\n\tp := New(0, overlay)\n\n\t// should do nothing!\n\tp.Underlay(0, underlay)\n\n\t// Construct our expectation:\n\texpected := make([]byte, Size)\n\tcopy(expected, overlay)\n\trequire.Equal(t, expected, p.Data)\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/util.go",
    "content": "package pagecache\n\nimport (\n\t\"io\"\n)\n\n// small util to wrap a buffer we want to write to. Tells you easily how much\n// data you can still write to it.\ntype iobuf struct {\n\tdst []byte\n\toff int\n}\n\nfunc (ib *iobuf) Write(src []byte) (int, error) {\n\tn := copy(ib.dst[ib.off:ib.off+ib.Left()], src)\n\tib.off += n\n\treturn n, nil\n}\n\nfunc (ib *iobuf) Len() int {\n\treturn ib.off\n}\n\nfunc (ib *iobuf) Left() int {\n\treturn len(ib.dst) - ib.off\n}\n\n// zeroPadReader wraps another reader which has data\n// until `size`. If `length` > `size` than it pads the\n// gap with zero reads.\ntype zeroPadReader struct {\n\tr                 io.Reader\n\toff, size, length int64\n}\n\nfunc memzero(buf []byte) {\n\t// NOTE: This for-loop is optimized by the compiler:\n\t// https://github.com/golang/go/issues/5373\n\t//\n\t// (copy with a pre-allocated zero page is 2x slower than this!)\n\tfor idx := range buf {\n\t\tbuf[idx] = 0\n\t}\n}\n\nfunc (zpr *zeroPadReader) Read(buf []byte) (int, error) {\n\tif zpr.size >= zpr.length {\n\t\t// sanity check. zpr.length might be also shorter.\n\t\t// then we don't do any padding but work like\n\t\t// io.LimitReader().\n\t\tzpr.size = zpr.length\n\t}\n\n\tdiff := zpr.length - zpr.off\n\tbufLen := int64(len(buf))\n\tif diff < bufLen {\n\t\t// clamp buf to zpr.length\n\t\tbufLen = diff\n\t}\n\n\tif zpr.off < zpr.size {\n\t\t// below underlying stream size:\n\t\tn, err := zpr.r.Read(buf[:bufLen])\n\t\tzpr.off += int64(n)\n\t\treturn n, err\n\t}\n\n\tif diff > 0 {\n\t\t// above underlying stream size,\n\t\t// but below padded length.\n\t\tmemzero(buf[:bufLen])\n\t\tzpr.off += bufLen\n\t\treturn int(bufLen), nil\n\t}\n\n\treturn 0, io.EOF\n}\n\n/////////\n\n// copyNBuffer is golang's io.CopyN with added param for the buffer,\n// like in io.CopyBuffer. Saves precious allocations.\nfunc copyNBuffer(dst io.Writer, src io.Reader, n int64, buf []byte) (written int64, err error) {\n\twritten, err = io.CopyBuffer(dst, io.LimitReader(src, n), buf)\n\tif written == n {\n\t\treturn n, nil\n\t}\n\n\tif written < n && err == nil {\n\t\t// src stopped early; must have been EOF.\n\t\terr = io.EOF\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "catfs/mio/pagecache/util_test.go",
    "content": "package pagecache\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestZeroPaddedReader(t *testing.T) {\n\ttcs := []struct {\n\t\tname              string\n\t\toff, length, size int64\n\t}{\n\t\t{\n\t\t\tname:   \"usual-case\",\n\t\t\toff:    0,\n\t\t\tlength: 1024,\n\t\t\tsize:   512,\n\t\t}, {\n\t\t\tname:   \"truncate-short\",\n\t\t\toff:    0,\n\t\t\tlength: 512,\n\t\t\tsize:   1024,\n\t\t}, {\n\t\t\tname:   \"equal\",\n\t\t\toff:    0,\n\t\t\tlength: 1024,\n\t\t\tsize:   1024,\n\t\t}, {\n\t\t\tname:   \"zero\",\n\t\t\toff:    0,\n\t\t\tlength: 0,\n\t\t\tsize:   0,\n\t\t},\n\t}\n\n\tconst maxSize = 4 * 1024\n\tdata := testutil.CreateDummyBuf(maxSize)\n\tzero := make([]byte, maxSize)\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tzpr := &zeroPadReader{\n\t\t\t\tr:      bytes.NewReader(data),\n\t\t\t\toff:    tc.off,\n\t\t\t\tsize:   tc.size,\n\t\t\t\tlength: tc.length,\n\t\t\t}\n\n\t\t\tout := &bytes.Buffer{}\n\t\t\tn, err := io.Copy(out, zpr)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, tc.length, n)\n\n\t\t\ta := util.Min64(tc.size, tc.length)\n\t\t\tb := util.Max64(tc.size, tc.length)\n\n\t\t\toutData := out.Bytes()\n\t\t\trequire.Equal(t, data[0:a], outData[0:a])\n\t\t\trequire.Equal(t, zero[a:b], outData[a:b])\n\t\t})\n\t}\n}\n\nfunc TestIOBuf(t *testing.T) {\n\ttcs := []struct {\n\t\tname    string\n\t\tsrcSize int\n\t\tdstSize int\n\t}{\n\t\t{\n\t\t\tname:    \"src=dst\",\n\t\t\tsrcSize: 1024,\n\t\t\tdstSize: 1024,\n\t\t}, {\n\t\t\tname:    \"src<dst\",\n\t\t\tsrcSize: 512,\n\t\t\tdstSize: 2048,\n\t\t}, {\n\t\t\tname:    \"src>dst\",\n\t\t\tsrcSize: 2048,\n\t\t\tdstSize: 512,\n\t\t}, {\n\t\t\tname:    \"zero\",\n\t\t\tsrcSize: 0,\n\t\t\tdstSize: 0,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsrc := testutil.CreateDummyBuf(int64(tc.srcSize))\n\t\t\tib := &iobuf{\n\t\t\t\tdst: make([]byte, tc.dstSize),\n\t\t\t}\n\n\t\t\tn, err := ib.Write(src)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equal(t, n, ib.Len())\n\n\t\t\tmin := tc.srcSize\n\t\t\tif min > tc.dstSize {\n\t\t\t\tmin = tc.dstSize\n\t\t\t}\n\n\t\t\trequire.Equal(t, n, min)\n\t\t})\n\t}\n}\n\nfunc BenchmarkZeroing(b *testing.B) {\n\tb.Run(\"memzero\", func(b *testing.B) {\n\t\tbuf := testutil.CreateDummyBuf(16 * 1024)\n\t\tfor idx := 0; idx < b.N; idx++ {\n\t\t\tmemzero(buf)\n\t\t}\n\t})\n\n\tb.Run(\"zerocopy\", func(b *testing.B) {\n\t\tzero := make([]byte, 16*1024)\n\t\tbuf := testutil.CreateDummyBuf(16 * 1024)\n\t\tfor idx := 0; idx < b.N; idx++ {\n\t\t\tcopy(buf, zero)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "catfs/mio/stream.go",
    "content": "package mio\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/catfs/mio/encrypt\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Stream is a stream coming from the backend.\ntype Stream interface {\n\tio.Reader\n\tio.Seeker\n\tio.Closer\n\tio.WriterTo\n}\n\ntype stream struct {\n\tio.Reader\n\tio.Seeker\n\tio.Closer\n\tio.WriterTo\n}\n\ntype dumbWriterTo struct {\n\tr io.Reader\n}\n\nfunc (d dumbWriterTo) WriteTo(w io.Writer) (n int64, err error) {\n\treturn io.Copy(w, d.r)\n}\n\n// NewOutStream creates an OutStream piping data from brig to the outside.\n// `key` is used to decrypt the data. The compression algorithm is read\n// from the stream header.\nfunc NewOutStream(r io.ReadSeeker, isRaw bool, key []byte) (Stream, error) {\n\ts := stream{\n\t\tReader:   r,\n\t\tSeeker:   r,\n\t\tWriterTo: dumbWriterTo{r: r},\n\t\tCloser:   ioutil.NopCloser(r),\n\t}\n\n\tif isRaw {\n\t\t// directly return stream.\n\t\treturn s, nil\n\t}\n\n\t// At this point we're sure that there must be a magic number.\n\t// We can use it to decide what readers we should build.\n\n\tmagicNumber, headerReader, err := util.PeekHeader(r, 8)\n\tif err != nil {\n\t\t// First read on the stream, errors will bubble up here.\n\t\treturn nil, err\n\t}\n\n\t// make sure that the header is prefixed to the stream again:\n\t// compress + encrypt reader expect the magic number there.\n\ts.Reader = headerReader\n\ts.Seeker = headerReader\n\ts.WriterTo = dumbWriterTo{r: headerReader}\n\n\t// NOTE: Assumption here is that our own magic numbers\n\t//       are always 8 bytes long. Since we control it,\n\t//       that's reasonable.\n\tif len(magicNumber) != 8 {\n\t\treturn nil, fmt.Errorf(\"bad magic number\")\n\t}\n\n\tvar isEncrypted bool\n\n\tswitch mn := string(magicNumber); mn {\n\tcase string(encrypt.MagicNumber):\n\t\tisEncrypted = true\n\tcase string(compress.MagicNumber):\n\t\t// Not encrypted, but decompress needed.\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown magic number '%s'\", mn)\n\t}\n\n\tif isEncrypted {\n\t\trEnc, err := encrypt.NewReader(s, key)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tflags, err := rEnc.Flags()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\ts.Reader = rEnc\n\t\ts.Seeker = rEnc\n\t\ts.WriterTo = rEnc\n\n\t\t// The encryption header stores if we encoded the stream\n\t\t// with another stream inside (matroska like). If not,\n\t\t// we can return early.\n\t\tif flags&encrypt.FlagCompressedInside == 0 {\n\t\t\treturn s, nil\n\t\t}\n\t}\n\n\t// if compression is used inside, than wrap in decompressor:\n\t// (s might contain decryptor or is raw stream)\n\trZip := compress.NewReader(s)\n\ts.Reader = rZip\n\ts.Seeker = rZip\n\ts.WriterTo = rZip\n\treturn s, nil\n}\n\nfunc guessCompression(path string, r io.Reader, hint *hints.Hint) (io.Reader, error) {\n\t// Keep the header of the file in memory, so we can do some guessing\n\t// of e.g. the compression algorithm we should use.\n\theaderReader := util.NewHeaderReader(r, 2048)\n\theaderBuf, err := headerReader.Peek()\n\tif err != nil {\n\t\tlog.WithError(err).Warnf(\"failed to peek stream header\")\n\t\treturn nil, err\n\t}\n\n\tcompressAlgo, err := compress.GuessAlgorithm(path, headerBuf)\n\tif err != nil {\n\t\t// NOTE: don't error out here. That just means we don't\n\t\t// guessed the perfect settings.\n\t\tlog.WithError(err).\n\t\t\tWithField(\"path\", path).\n\t\t\tWarnf(\"failed to guess suitable zip algorithm\")\n\t}\n\n\tlog.Debugf(\"guessed '%s' compression for file %s\", compressAlgo, path)\n\thint.CompressionAlgo = hints.CompressAlgorithmTypeToCompressionHint(compressAlgo)\n\treturn headerReader, nil\n}\n\n// NewInStream creates a new stream that pipes data into ipfs.\n// The data is read from `r`, encrypted with `key` and encoded based on the\n// settings given by `hint`. `path` is only used to better guess the compression\n// algorithm - if desired by `hint`. `path` can be empty.\n//\n// It returns a reader that will produce the encoded stream.\n// If no actual encoding will be done, the second return param will be true\nfunc NewInStream(r io.Reader, path string, key []byte, hint hints.Hint) (io.ReadCloser, bool, error) {\n\tvar err error\n\n\tif hint.CompressionAlgo == hints.CompressionGuess {\n\t\t// replace \"guess\" to an actual compression algorithm.\n\t\tr, err = guessCompression(path, r, &hint)\n\t\tif err != nil {\n\t\t\treturn nil, false, err\n\t\t}\n\t}\n\n\t// use a pipe to redirect `r` to encoding writers without copying:\n\tpr, pw := io.Pipe()\n\n\t// Writing to pw will be matched by a read on the other side.\n\t// If there is no read we will block.\n\tvar w io.Writer = pw\n\tvar closers = []io.Closer{pw}\n\n\t// Only add encryption if desired by hints:\n\tif hint.EncryptionAlgo != hints.EncryptionNone {\n\t\twEnc, err := encrypt.NewWriter(w, key, hint.EncryptFlags())\n\t\tif err != nil {\n\t\t\treturn nil, false, err\n\t\t}\n\n\t\tclosers = append(closers, wEnc)\n\t\tw = wEnc\n\t}\n\n\t// Only add compression if desired or mime type is suitable:\n\tif hint.CompressionAlgo != hints.CompressionNone {\n\t\twZip, err := compress.NewWriter(w, hint.CompressionAlgo.ToCompressAlgorithmType())\n\t\tif err != nil {\n\t\t\treturn nil, false, err\n\t\t}\n\n\t\tclosers = append(closers, wZip)\n\t\tw = wZip\n\t}\n\n\t// Suck the reader empty and move it to `w`.\n\tgo func() {\n\t\tif _, err := io.Copy(w, r); err != nil {\n\t\t\t// Continue closing the fds; no return.\n\t\t\tlog.WithError(err).Warnf(\"internal write error\")\n\t\t}\n\n\t\t// NOTE: closers must be closed in inverse order.\n\t\t//       pipe writer should come last. Each Close()\n\t\t//       might still write out data.\n\t\tfor idx := len(closers) - 1; idx >= 0; idx-- {\n\t\t\tif err := closers[idx].Close(); err != nil {\n\t\t\t\tlog.WithError(err).Warnf(\"internal close error\")\n\t\t\t}\n\t\t}\n\t}()\n\n\treturn pr, hint.IsRaw(), nil\n}\n\n// limitedStream is a small wrapper around Stream,\n// which allows truncating the stream at a certain size.\ntype limitedStream struct {\n\tstream Stream\n\tpos    uint64\n\tsize   uint64\n}\n\nfunc (ls *limitedStream) Read(buf []byte) (int, error) {\n\tisEOF := false\n\tif ls.pos+uint64(len(buf)) >= ls.size {\n\t\tbuf = buf[:ls.size-ls.pos]\n\t\tisEOF = true\n\t}\n\n\tn, err := ls.stream.Read(buf)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\tif isEOF {\n\t\terr = io.EOF\n\t}\n\n\treturn n, err\n}\n\nfunc (ls *limitedStream) Seek(offset int64, whence int) (int64, error) {\n\tswitch whence {\n\tcase io.SeekCurrent:\n\t\treturn ls.Seek(int64(ls.pos)+offset, io.SeekStart)\n\tcase io.SeekEnd:\n\t\tls.pos = 0\n\t\treturn ls.Seek(int64(ls.size)+offset, io.SeekStart)\n\tcase io.SeekStart:\n\t\tls.pos = 0\n\t}\n\n\tnewPos := int64(ls.pos) + offset\n\tif newPos < 0 {\n\t\treturn -1, io.EOF\n\t}\n\n\tif newPos > int64(ls.size) {\n\t\treturn int64(ls.size), io.EOF\n\t}\n\n\tls.pos = uint64(newPos)\n\treturn ls.stream.Seek(newPos, io.SeekStart)\n}\n\nfunc (ls *limitedStream) WriteTo(w io.Writer) (int64, error) {\n\t// We do not want to defeat the purpose of WriteTo here.\n\t// That's why we do the limit check in the writer part.\n\treturn ls.stream.WriteTo(util.LimitWriter(w, int64(ls.size-ls.pos)))\n}\n\nfunc (ls *limitedStream) Close() error {\n\treturn ls.stream.Close()\n}\n\n// LimitStream is like io.LimitReader, but works for mio.Stream.\n// It will not allow reading/seeking after the specified size.\nfunc LimitStream(stream Stream, size uint64) Stream {\n\treturn &limitedStream{\n\t\tstream: stream,\n\t\tpos:    0,\n\t\tsize:   size,\n\t}\n}\n"
  },
  {
    "path": "catfs/mio/stream_test.go",
    "content": "package mio\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"testing\"\n\n\t\"github.com/brianvoe/gofakeit/v6\"\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nvar testKey = []byte(\"01234567890ABCDE01234567890ABCDE\")\n\nfunc testWriteAndRead(\n\tt *testing.T,\n\traw []byte,\n\thint hints.Hint,\n) {\n\trawBuf := &bytes.Buffer{}\n\tif _, err := rawBuf.Write(raw); err != nil {\n\t\tt.Errorf(\"Huh, buf-write failed?\")\n\t\treturn\n\t}\n\n\tencStream, isRaw, err := NewInStream(\n\t\trawBuf,\n\t\tgofakeit.Name(),\n\t\ttestKey,\n\t\thint,\n\t)\n\tif err != nil {\n\t\tt.Errorf(\"creating encryption stream failed: %v\", err)\n\t\treturn\n\t}\n\n\tencrypted := &bytes.Buffer{}\n\tif _, err = io.Copy(encrypted, encStream); err != nil {\n\t\tt.Errorf(\"reading encrypted data failed: %v\", err)\n\t\treturn\n\t}\n\n\t// Fake a close method:\n\tbr := bytes.NewReader(encrypted.Bytes())\n\n\tr := stream{\n\t\tReader:   br,\n\t\tSeeker:   br,\n\t\tWriterTo: br,\n\t\tCloser:   ioutil.NopCloser(nil),\n\t}\n\n\tdecStream, err := NewOutStream(r, isRaw, testKey)\n\tif err != nil {\n\t\tt.Errorf(\"creating decryption stream failed: %v\", err)\n\t\treturn\n\t}\n\n\tdecrypted := &bytes.Buffer{}\n\tif _, err = io.Copy(decrypted, decStream); err != nil {\n\t\tt.Errorf(\"reading decrypted data failed: %v\", err)\n\t\treturn\n\t}\n\n\tif !bytes.Equal(decrypted.Bytes(), raw) {\n\t\tt.Errorf(\"Raw and decrypted is not equal => BUG.\")\n\t\tt.Errorf(\"RAW:\\n  %v\", raw)\n\t\tt.Errorf(\"DEC:\\n  %v\", decrypted.Bytes())\n\t\treturn\n\t}\n}\n\nfunc TestWriteAndRead(t *testing.T) {\n\tt.Parallel()\n\n\ts64k := int64(64 * 1024)\n\tsizes := []int64{\n\t\t0,\n\t\t1,\n\t\t10,\n\t\ts64k,\n\t\ts64k - 1,\n\t\ts64k + 1,\n\t\ts64k * 2,\n\t\ts64k * 1024,\n\t}\n\n\tfor _, size := range sizes {\n\t\tregularData := testutil.CreateDummyBuf(size)\n\t\trandomData := testutil.CreateRandomDummyBuf(size, 42)\n\n\t\tfor _, hint := range hints.AllPossibleHints() {\n\t\t\tprefix := fmt.Sprintf(\"%s-size-%d-\", hint, size)\n\t\t\tt.Run(prefix+\"regular\", func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\t\t\t\ttestWriteAndRead(t, regularData, hint)\n\t\t\t})\n\t\t\tt.Run(prefix+\"random\", func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\t\t\t\ttestWriteAndRead(t, randomData, hint)\n\t\t\t})\n\t\t}\n\t}\n}\n\nfunc TestLimitedStream(t *testing.T) {\n\tt.Parallel()\n\n\ttestData := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\n\tr := bytes.NewReader(testData)\n\n\t// Fake a stream without all the encryption/compression fuzz.\n\tstream := struct {\n\t\tio.Reader\n\t\tio.Seeker\n\t\tio.Closer\n\t\tio.WriterTo\n\t}{\n\t\tReader:   r,\n\t\tSeeker:   r,\n\t\tWriterTo: r,\n\t\tCloser:   ioutil.NopCloser(r),\n\t}\n\n\tfor idx := 0; idx <= 10; idx++ {\n\t\t// Seek back to beginning:\n\t\t_, err := stream.Seek(0, io.SeekStart)\n\t\trequire.Nil(t, err)\n\n\t\tsmallStream := LimitStream(stream, uint64(idx))\n\t\tdata, err := ioutil.ReadAll(smallStream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, testData[:idx], data)\n\t}\n\n\tvar err error\n\n\t// Reset and do some special torturing:\n\t_, err = stream.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\n\tlimitStream := LimitStream(stream, 5)\n\n\tn, err := limitStream.Seek(4, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(4), n)\n\n\tn, err = limitStream.Seek(6, io.SeekStart)\n\trequire.True(t, err == io.EOF)\n\n\tn, err = limitStream.Seek(-5, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), n)\n\n\t_, err = limitStream.Seek(-6, io.SeekEnd)\n\trequire.True(t, err == io.EOF)\n\n\t_, err = stream.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\n\tlimitStream = LimitStream(stream, 5)\n\n\tbuf := &bytes.Buffer{}\n\tn, err = limitStream.WriteTo(buf)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, int64(10))\n\trequire.Equal(t, buf.Bytes(), testData[:5])\n\n\tbuf.Reset()\n\t_, err = stream.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\tlimitStream = LimitStream(stream, 11)\n\n\tn, err = limitStream.WriteTo(buf)\n\trequire.Nil(t, err)\n\trequire.Equal(t, n, int64(10))\n\trequire.Equal(t, buf.Bytes(), testData)\n}\n\nfunc TestLimitStreamSize(t *testing.T) {\n\t// Size taken from a dummy file that showed this bug:\n\tdata := testutil.CreateDummyBuf(6041)\n\tpackData, err := compress.Pack(data, compress.AlgoSnappy)\n\trequire.Nil(t, err)\n\n\trZip := compress.NewReader(bytes.NewReader(packData))\n\tstream := struct {\n\t\tio.Reader\n\t\tio.Seeker\n\t\tio.Closer\n\t\tio.WriterTo\n\t}{\n\t\tReader:   rZip,\n\t\tSeeker:   rZip,\n\t\tWriterTo: rZip,\n\t\tCloser:   ioutil.NopCloser(rZip),\n\t}\n\n\tr := LimitStream(stream, uint64(len(data)))\n\n\tsize, err := r.Seek(0, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), size)\n\n\toff, err := r.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), off)\n\n\tbuf := &bytes.Buffer{}\n\tn, err := io.Copy(buf, r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), n)\n\trequire.Equal(t, data, buf.Bytes())\n}\n\nfunc TestStreamSizeBySeek(t *testing.T) {\n\tbuf := &bytes.Buffer{}\n\tdata := testutil.CreateDummyBuf(6041 * 1024)\n\tencStream, isRaw, err := NewInStream(\n\t\tbytes.NewReader(data),\n\t\t\"\",\n\t\ttestKey,\n\t\thints.Default(),\n\t)\n\trequire.Nil(t, err)\n\n\t_, err = io.Copy(buf, encStream)\n\trequire.Nil(t, err)\n\n\tstream, err := NewOutStream(\n\t\tbytes.NewReader(buf.Bytes()),\n\t\tisRaw,\n\t\ttestKey,\n\t)\n\trequire.Nil(t, err)\n\n\tn, err := stream.Seek(0, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), n)\n\n\tn, err = stream.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), n)\n\n\toutBuf := &bytes.Buffer{}\n\tn, err = io.Copy(outBuf, stream)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(len(data)), n)\n\trequire.Equal(t, outBuf.Bytes(), data)\n}\n"
  },
  {
    "path": "catfs/nodes/base.go",
    "content": "package nodes\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\te \"github.com/pkg/errors\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// Base is a place that holds all common attributes of all Nodes.\n// It also defines some utility function that will be mixed into real nodes.\ntype Base struct {\n\t// Basename of this node\n\tname string\n\n\t// name of the user that last modified this node\n\tuser string\n\n\t// Hash of this node (might be empty)\n\ttree h.Hash\n\n\t// Pointer hash to the content in the backend\n\tbackend h.Hash\n\n\t// Content hash of this node\n\tcontent h.Hash\n\n\t// Last modification time of this node.\n\tmodTime time.Time\n\n\t// Type of this node\n\tnodeType NodeType\n\n\t// Unique identifier for this node\n\tinode uint64\n}\n\n// copyBase will copy all attributes from the base.\nfunc (b *Base) copyBase(inode uint64) Base {\n\treturn Base{\n\t\tname:     b.name,\n\t\tuser:     b.user,\n\t\ttree:     b.tree.Clone(),\n\t\tcontent:  b.content.Clone(),\n\t\tbackend:  b.backend.Clone(),\n\t\tmodTime:  b.modTime,\n\t\tnodeType: b.nodeType,\n\t\tinode:    inode,\n\t}\n}\n\n// User returns the user that last modified this node.\nfunc (b *Base) User() string {\n\treturn b.user\n}\n\n// Name returns the name of this node (e.g. /a/b/c -> c)\n// The root directory will have the name empty string.\nfunc (b *Base) Name() string {\n\treturn b.name\n}\n\n// TreeHash returns the hash of this node.\nfunc (b *Base) TreeHash() h.Hash {\n\treturn b.tree\n}\n\n// ContentHash returns the content hash of this node.\nfunc (b *Base) ContentHash() h.Hash {\n\treturn b.content\n}\n\n// BackendHash returns the backend hash of this node.\nfunc (b *Base) BackendHash() h.Hash {\n\treturn b.backend\n}\n\n// Type returns the type of this node.\nfunc (b *Base) Type() NodeType {\n\treturn b.nodeType\n}\n\n// ModTime will return the last time this node's content\n// was modified. Metadata changes are not recorded.\nfunc (b *Base) ModTime() time.Time {\n\treturn b.modTime\n}\n\n// Inode will return a unique ID that is different for each node.\nfunc (b *Base) Inode() uint64 {\n\treturn b.inode\n}\n\n/////// UTILS /////////\n\nfunc (b *Base) setBaseAttrsToNode(capnode capnp_model.Node) error {\n\tmodTimeBin, err := b.modTime.MarshalBinary()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := capnode.SetModTime(string(modTimeBin)); err != nil {\n\t\treturn err\n\t}\n\tif err := capnode.SetTreeHash(b.tree); err != nil {\n\t\treturn err\n\t}\n\tif err := capnode.SetContentHash(b.content); err != nil {\n\t\treturn err\n\t}\n\tif err := capnode.SetBackendHash(b.backend); err != nil {\n\t\treturn err\n\t}\n\tif err := capnode.SetName(b.name); err != nil {\n\t\treturn err\n\t}\n\tif err := capnode.SetUser(b.user); err != nil {\n\t\treturn err\n\t}\n\n\tcapnode.SetInode(b.inode)\n\treturn nil\n}\n\nfunc (b *Base) parseBaseAttrsFromNode(capnode capnp_model.Node) error {\n\tvar err error\n\tb.name, err = capnode.Name()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tb.user, err = capnode.User()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tb.tree, err = capnode.TreeHash()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tb.content, err = capnode.ContentHash()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tb.backend, err = capnode.BackendHash()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tunparsedModTime, err := capnode.ModTime()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := b.modTime.UnmarshalBinary([]byte(unparsedModTime)); err != nil {\n\t\treturn err\n\t}\n\n\tswitch typ := capnode.Which(); typ {\n\tcase capnp_model.Node_Which_file:\n\t\tb.nodeType = NodeTypeFile\n\tcase capnp_model.Node_Which_directory:\n\t\tb.nodeType = NodeTypeDirectory\n\tcase capnp_model.Node_Which_commit:\n\t\tb.nodeType = NodeTypeCommit\n\tcase capnp_model.Node_Which_ghost:\n\t\t// Ghost set the nodeType themselves.\n\t\t// Ignore them here.\n\tdefault:\n\t\treturn fmt.Errorf(\"Bad capnp node type `%d`\", typ)\n\t}\n\n\tb.inode = capnode.Inode()\n\treturn nil\n}\n\nfunc prefixSlash(s string) string {\n\tif !strings.HasPrefix(s, \"/\") {\n\t\treturn \"/\" + s\n\t}\n\n\treturn s\n}\n\n/////////////////////////////////////////\n// MARSHAL HELPERS FOR ARBITRARY NODES //\n/////////////////////////////////////////\n\n// MarshalNode will convert any Node to a byte string\n// Use UnmarshalNode to load a Node from it again.\nfunc MarshalNode(nd Node) ([]byte, error) {\n\tmsg, err := nd.ToCapnp()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg.Marshal()\n}\n\n// UnmarshalNode will try to interpret data as a Node\nfunc UnmarshalNode(data []byte) (Node, error) {\n\tmsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNd, err := capnp_model.ReadRootNode(msg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn CapNodeToNode(capNd)\n}\n\n// CapNodeToNode converts a capnproto `capNd` to a normal `Node`.\nfunc CapNodeToNode(capNd capnp_model.Node) (Node, error) {\n\t// Find out the correct node struct to initialize.\n\tvar node Node\n\n\tswitch typ := capNd.Which(); typ {\n\tcase capnp_model.Node_Which_ghost:\n\t\tnode = &Ghost{}\n\tcase capnp_model.Node_Which_file:\n\t\tnode = &File{}\n\tcase capnp_model.Node_Which_directory:\n\t\tnode = &Directory{}\n\tcase capnp_model.Node_Which_commit:\n\t\tnode = &Commit{}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Bad capnp node type `%d`\", typ)\n\t}\n\n\tif err := node.FromCapnpNode(capNd); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn node, nil\n}\n\n//////////////////////////\n// GENERAL NODE HELPERS //\n//////////////////////////\n\n// Depth returns the depth of the node.\n// It does this by looking at the path separators.\n// The depth of \"/\" is defined as 0.\nfunc Depth(nd Node) int {\n\tpath := nd.Path()\n\tif path == \"/\" {\n\t\treturn 0\n\t}\n\n\tdepth := 0\n\tfor _, rn := range path {\n\t\tif rn == '/' {\n\t\t\tdepth++\n\t\t}\n\t}\n\n\treturn depth\n}\n\n// RemoveNode removes `nd` from it's parent directory using `lkr`.\n// Removing the root is a no-op.\nfunc RemoveNode(lkr Linker, nd Node) error {\n\tparDir, err := ParentDirectory(lkr, nd)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Cannot remove root:\n\tif parDir == nil {\n\t\treturn nil\n\t}\n\n\treturn parDir.RemoveChild(lkr, nd)\n}\n\n// ParentDirectory returns the parent directory of `nd`.\n// For the root it will return nil.\nfunc ParentDirectory(lkr Linker, nd Node) (*Directory, error) {\n\tpar, err := nd.Parent(lkr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif par == nil {\n\t\treturn nil, nil\n\t}\n\n\tparDir, ok := par.(*Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn parDir, nil\n}\n\n// ContentHash returns the correct content hash for `nd`.\n// This also works for ghosts where the content hash is taken from the\n// underlying node (ghosts themselve have no content).\nfunc ContentHash(nd Node) (h.Hash, error) {\n\tswitch nd.Type() {\n\tcase NodeTypeDirectory, NodeTypeCommit, NodeTypeFile:\n\t\treturn nd.ContentHash(), nil\n\tcase NodeTypeGhost:\n\t\tghost, ok := nd.(*Ghost)\n\t\tif !ok {\n\t\t\treturn nil, e.Wrapf(ie.ErrBadNode, \"cannot convert to ghost\")\n\t\t}\n\n\t\tswitch ghost.OldNode().Type() {\n\t\tcase NodeTypeFile:\n\t\t\toldFile, err := ghost.OldFile()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\treturn oldFile.ContentHash(), nil\n\t\tcase NodeTypeDirectory:\n\t\t\toldDirectory, err := ghost.OldDirectory()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\treturn oldDirectory.ContentHash(), nil\n\t\t}\n\t}\n\n\treturn nil, ie.ErrBadNode\n}\n"
  },
  {
    "path": "catfs/nodes/capnp/nodes.capnp",
    "content": "using Go = import \"/go.capnp\";\n\n@0x9195d073cb5c5953;\n\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/catfs/nodes/capnp\");\n\nstruct Commit $Go.doc(\"Commit is a set of changes to nodes\") {\n    # Following attributes will be part of the hash:\n    message @0 :Text;\n    author  @1 :Text;\n    parent  @2 :Data;     # Hash to parent.\n    root    @3 :Data;     # Hash to root directory.\n    index   @4 :Int64;    # Total number of commits.\n\n    # Attributes not being part of the hash:\n    merge :group {\n        with    @5 :Text;\n        head    @6 :Data;\n    }\n}\n\nstruct DirEntry $Go.doc(\"A single directory entry\") {\n    name @0 :Text;\n    hash @1 :Data;\n}\n\nstruct Directory $Go.doc(\"Directory contains one or more directories or files\") {\n    size       @0 :UInt64;\n    cachedSize @1 :Int64;\n    parent     @2 :Text;\n    children   @3 :List(DirEntry);\n    contents   @4 :List(DirEntry);\n}\n\nstruct File $Go.doc(\"A leaf node in the MDAG\") {\n    size       @0 :UInt64;\n    cachedSize @1 :Int64;\n    parent     @2 :Text;\n    key        @3 :Data;\n\n    # This indicates that the stream associated with this\n    # file is not encoded by brig, but raw. We should not\n    # attempt to decode it.\n    isRaw      @4 :Bool;\n}\n\nstruct Ghost $Go.doc(\"Ghost indicates that a certain node was at this path once\") {\n    ghostInode @0 :UInt64;\n    ghostPath  @1 :Text;\n\n    union {\n        commit    @2 :Commit;\n        directory @3 :Directory;\n        file      @4 :File;\n    }\n}\n\nstruct Node $Go.doc(\"Node is a node in the merkle dag of brig\") {\n    name        @0 :Text;\n    treeHash    @1 :Data;\n    modTime     @2 :Text;     # Time as ISO8601\n    inode       @3 :UInt64;\n    contentHash @4 :Data;\n    user        @5 :Text;\n\n    union {\n        commit    @6 :Commit;\n        directory @7 :Directory;\n        file      @8 :File;\n        ghost     @9 :Ghost;\n    }\n\n    backendHash @10 :Data;\n}\n"
  },
  {
    "path": "catfs/nodes/capnp/nodes.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tstrconv \"strconv\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n)\n\n// Commit is a set of changes to nodes\ntype Commit struct{ capnp.Struct }\ntype Commit_merge Commit\n\n// Commit_TypeID is the unique identifier for the type Commit.\nconst Commit_TypeID = 0x8da013c66e545daf\n\nfunc NewCommit(s *capnp.Segment) (Commit, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6})\n\treturn Commit{st}, err\n}\n\nfunc NewRootCommit(s *capnp.Segment) (Commit, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6})\n\treturn Commit{st}, err\n}\n\nfunc ReadRootCommit(msg *capnp.Message) (Commit, error) {\n\troot, err := msg.RootPtr()\n\treturn Commit{root.Struct()}, err\n}\n\nfunc (s Commit) String() string {\n\tstr, _ := text.Marshal(0x8da013c66e545daf, s.Struct)\n\treturn str\n}\n\nfunc (s Commit) Message() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Commit) HasMessage() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) MessageBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Commit) SetMessage(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Commit) Author() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Commit) HasAuthor() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) AuthorBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Commit) SetAuthor(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Commit) Parent() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Commit) HasParent() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) SetParent(v []byte) error {\n\treturn s.Struct.SetData(2, v)\n}\n\nfunc (s Commit) Root() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Commit) HasRoot() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) SetRoot(v []byte) error {\n\treturn s.Struct.SetData(3, v)\n}\n\nfunc (s Commit) Index() int64 {\n\treturn int64(s.Struct.Uint64(0))\n}\n\nfunc (s Commit) SetIndex(v int64) {\n\ts.Struct.SetUint64(0, uint64(v))\n}\n\nfunc (s Commit) Merge() Commit_merge { return Commit_merge(s) }\n\nfunc (s Commit_merge) With() (string, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.Text(), err\n}\n\nfunc (s Commit_merge) HasWith() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit_merge) WithBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Commit_merge) SetWith(v string) error {\n\treturn s.Struct.SetText(4, v)\n}\n\nfunc (s Commit_merge) Head() ([]byte, error) {\n\tp, err := s.Struct.Ptr(5)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Commit_merge) HasHead() bool {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit_merge) SetHead(v []byte) error {\n\treturn s.Struct.SetData(5, v)\n}\n\n// Commit_List is a list of Commit.\ntype Commit_List struct{ capnp.List }\n\n// NewCommit creates a new list of Commit.\nfunc NewCommit_List(s *capnp.Segment, sz int32) (Commit_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6}, sz)\n\treturn Commit_List{l}, err\n}\n\nfunc (s Commit_List) At(i int) Commit { return Commit{s.List.Struct(i)} }\n\nfunc (s Commit_List) Set(i int, v Commit) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Commit_List) String() string {\n\tstr, _ := text.MarshalList(0x8da013c66e545daf, s.List)\n\treturn str\n}\n\n// Commit_Promise is a wrapper for a Commit promised by a client call.\ntype Commit_Promise struct{ *capnp.Pipeline }\n\nfunc (p Commit_Promise) Struct() (Commit, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Commit{s}, err\n}\n\nfunc (p Commit_Promise) Merge() Commit_merge_Promise { return Commit_merge_Promise{p.Pipeline} }\n\n// Commit_merge_Promise is a wrapper for a Commit_merge promised by a client call.\ntype Commit_merge_Promise struct{ *capnp.Pipeline }\n\nfunc (p Commit_merge_Promise) Struct() (Commit_merge, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Commit_merge{s}, err\n}\n\n// A single directory entry\ntype DirEntry struct{ capnp.Struct }\n\n// DirEntry_TypeID is the unique identifier for the type DirEntry.\nconst DirEntry_TypeID = 0x8b15ee76774b1f9d\n\nfunc NewDirEntry(s *capnp.Segment) (DirEntry, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn DirEntry{st}, err\n}\n\nfunc NewRootDirEntry(s *capnp.Segment) (DirEntry, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn DirEntry{st}, err\n}\n\nfunc ReadRootDirEntry(msg *capnp.Message) (DirEntry, error) {\n\troot, err := msg.RootPtr()\n\treturn DirEntry{root.Struct()}, err\n}\n\nfunc (s DirEntry) String() string {\n\tstr, _ := text.Marshal(0x8b15ee76774b1f9d, s.Struct)\n\treturn str\n}\n\nfunc (s DirEntry) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s DirEntry) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s DirEntry) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s DirEntry) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s DirEntry) Hash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s DirEntry) HasHash() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s DirEntry) SetHash(v []byte) error {\n\treturn s.Struct.SetData(1, v)\n}\n\n// DirEntry_List is a list of DirEntry.\ntype DirEntry_List struct{ capnp.List }\n\n// NewDirEntry creates a new list of DirEntry.\nfunc NewDirEntry_List(s *capnp.Segment, sz int32) (DirEntry_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn DirEntry_List{l}, err\n}\n\nfunc (s DirEntry_List) At(i int) DirEntry { return DirEntry{s.List.Struct(i)} }\n\nfunc (s DirEntry_List) Set(i int, v DirEntry) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s DirEntry_List) String() string {\n\tstr, _ := text.MarshalList(0x8b15ee76774b1f9d, s.List)\n\treturn str\n}\n\n// DirEntry_Promise is a wrapper for a DirEntry promised by a client call.\ntype DirEntry_Promise struct{ *capnp.Pipeline }\n\nfunc (p DirEntry_Promise) Struct() (DirEntry, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn DirEntry{s}, err\n}\n\n// Directory contains one or more directories or files\ntype Directory struct{ capnp.Struct }\n\n// Directory_TypeID is the unique identifier for the type Directory.\nconst Directory_TypeID = 0xe24c59306c829c01\n\nfunc NewDirectory(s *capnp.Segment) (Directory, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 3})\n\treturn Directory{st}, err\n}\n\nfunc NewRootDirectory(s *capnp.Segment) (Directory, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 3})\n\treturn Directory{st}, err\n}\n\nfunc ReadRootDirectory(msg *capnp.Message) (Directory, error) {\n\troot, err := msg.RootPtr()\n\treturn Directory{root.Struct()}, err\n}\n\nfunc (s Directory) String() string {\n\tstr, _ := text.Marshal(0xe24c59306c829c01, s.Struct)\n\treturn str\n}\n\nfunc (s Directory) Size() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Directory) SetSize(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s Directory) CachedSize() int64 {\n\treturn int64(s.Struct.Uint64(8))\n}\n\nfunc (s Directory) SetCachedSize(v int64) {\n\ts.Struct.SetUint64(8, uint64(v))\n}\n\nfunc (s Directory) Parent() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Directory) HasParent() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Directory) ParentBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Directory) SetParent(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Directory) Children() (DirEntry_List, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn DirEntry_List{List: p.List()}, err\n}\n\nfunc (s Directory) HasChildren() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Directory) SetChildren(v DirEntry_List) error {\n\treturn s.Struct.SetPtr(1, v.List.ToPtr())\n}\n\n// NewChildren sets the children field to a newly\n// allocated DirEntry_List, preferring placement in s's segment.\nfunc (s Directory) NewChildren(n int32) (DirEntry_List, error) {\n\tl, err := NewDirEntry_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn DirEntry_List{}, err\n\t}\n\terr = s.Struct.SetPtr(1, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Directory) Contents() (DirEntry_List, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn DirEntry_List{List: p.List()}, err\n}\n\nfunc (s Directory) HasContents() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Directory) SetContents(v DirEntry_List) error {\n\treturn s.Struct.SetPtr(2, v.List.ToPtr())\n}\n\n// NewContents sets the contents field to a newly\n// allocated DirEntry_List, preferring placement in s's segment.\nfunc (s Directory) NewContents(n int32) (DirEntry_List, error) {\n\tl, err := NewDirEntry_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn DirEntry_List{}, err\n\t}\n\terr = s.Struct.SetPtr(2, l.List.ToPtr())\n\treturn l, err\n}\n\n// Directory_List is a list of Directory.\ntype Directory_List struct{ capnp.List }\n\n// NewDirectory creates a new list of Directory.\nfunc NewDirectory_List(s *capnp.Segment, sz int32) (Directory_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 3}, sz)\n\treturn Directory_List{l}, err\n}\n\nfunc (s Directory_List) At(i int) Directory { return Directory{s.List.Struct(i)} }\n\nfunc (s Directory_List) Set(i int, v Directory) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Directory_List) String() string {\n\tstr, _ := text.MarshalList(0xe24c59306c829c01, s.List)\n\treturn str\n}\n\n// Directory_Promise is a wrapper for a Directory promised by a client call.\ntype Directory_Promise struct{ *capnp.Pipeline }\n\nfunc (p Directory_Promise) Struct() (Directory, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Directory{s}, err\n}\n\n// A leaf node in the MDAG\ntype File struct{ capnp.Struct }\n\n// File_TypeID is the unique identifier for the type File.\nconst File_TypeID = 0x8ea7393d37893155\n\nfunc NewFile(s *capnp.Segment) (File, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 24, PointerCount: 2})\n\treturn File{st}, err\n}\n\nfunc NewRootFile(s *capnp.Segment) (File, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 24, PointerCount: 2})\n\treturn File{st}, err\n}\n\nfunc ReadRootFile(msg *capnp.Message) (File, error) {\n\troot, err := msg.RootPtr()\n\treturn File{root.Struct()}, err\n}\n\nfunc (s File) String() string {\n\tstr, _ := text.Marshal(0x8ea7393d37893155, s.Struct)\n\treturn str\n}\n\nfunc (s File) Size() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s File) SetSize(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s File) CachedSize() int64 {\n\treturn int64(s.Struct.Uint64(8))\n}\n\nfunc (s File) SetCachedSize(v int64) {\n\ts.Struct.SetUint64(8, uint64(v))\n}\n\nfunc (s File) Parent() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s File) HasParent() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s File) ParentBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s File) SetParent(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s File) Key() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s File) HasKey() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s File) SetKey(v []byte) error {\n\treturn s.Struct.SetData(1, v)\n}\n\nfunc (s File) IsRaw() bool {\n\treturn s.Struct.Bit(128)\n}\n\nfunc (s File) SetIsRaw(v bool) {\n\ts.Struct.SetBit(128, v)\n}\n\n// File_List is a list of File.\ntype File_List struct{ capnp.List }\n\n// NewFile creates a new list of File.\nfunc NewFile_List(s *capnp.Segment, sz int32) (File_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 24, PointerCount: 2}, sz)\n\treturn File_List{l}, err\n}\n\nfunc (s File_List) At(i int) File { return File{s.List.Struct(i)} }\n\nfunc (s File_List) Set(i int, v File) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s File_List) String() string {\n\tstr, _ := text.MarshalList(0x8ea7393d37893155, s.List)\n\treturn str\n}\n\n// File_Promise is a wrapper for a File promised by a client call.\ntype File_Promise struct{ *capnp.Pipeline }\n\nfunc (p File_Promise) Struct() (File, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn File{s}, err\n}\n\n// Ghost indicates that a certain node was at this path once\ntype Ghost struct{ capnp.Struct }\ntype Ghost_Which uint16\n\nconst (\n\tGhost_Which_commit    Ghost_Which = 0\n\tGhost_Which_directory Ghost_Which = 1\n\tGhost_Which_file      Ghost_Which = 2\n)\n\nfunc (w Ghost_Which) String() string {\n\tconst s = \"commitdirectoryfile\"\n\tswitch w {\n\tcase Ghost_Which_commit:\n\t\treturn s[0:6]\n\tcase Ghost_Which_directory:\n\t\treturn s[6:15]\n\tcase Ghost_Which_file:\n\t\treturn s[15:19]\n\n\t}\n\treturn \"Ghost_Which(\" + strconv.FormatUint(uint64(w), 10) + \")\"\n}\n\n// Ghost_TypeID is the unique identifier for the type Ghost.\nconst Ghost_TypeID = 0x80c828d7e89c12ea\n\nfunc NewGhost(s *capnp.Segment) (Ghost, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 2})\n\treturn Ghost{st}, err\n}\n\nfunc NewRootGhost(s *capnp.Segment) (Ghost, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 2})\n\treturn Ghost{st}, err\n}\n\nfunc ReadRootGhost(msg *capnp.Message) (Ghost, error) {\n\troot, err := msg.RootPtr()\n\treturn Ghost{root.Struct()}, err\n}\n\nfunc (s Ghost) String() string {\n\tstr, _ := text.Marshal(0x80c828d7e89c12ea, s.Struct)\n\treturn str\n}\n\nfunc (s Ghost) Which() Ghost_Which {\n\treturn Ghost_Which(s.Struct.Uint16(8))\n}\nfunc (s Ghost) GhostInode() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Ghost) SetGhostInode(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s Ghost) GhostPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Ghost) HasGhostPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Ghost) GhostPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Ghost) SetGhostPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Ghost) Commit() (Commit, error) {\n\tif s.Struct.Uint16(8) != 0 {\n\t\tpanic(\"Which() != commit\")\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn Commit{Struct: p.Struct()}, err\n}\n\nfunc (s Ghost) HasCommit() bool {\n\tif s.Struct.Uint16(8) != 0 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Ghost) SetCommit(v Commit) error {\n\ts.Struct.SetUint16(8, 0)\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewCommit sets the commit field to a newly\n// allocated Commit struct, preferring placement in s's segment.\nfunc (s Ghost) NewCommit() (Commit, error) {\n\ts.Struct.SetUint16(8, 0)\n\tss, err := NewCommit(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Commit{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Ghost) Directory() (Directory, error) {\n\tif s.Struct.Uint16(8) != 1 {\n\t\tpanic(\"Which() != directory\")\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn Directory{Struct: p.Struct()}, err\n}\n\nfunc (s Ghost) HasDirectory() bool {\n\tif s.Struct.Uint16(8) != 1 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Ghost) SetDirectory(v Directory) error {\n\ts.Struct.SetUint16(8, 1)\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewDirectory sets the directory field to a newly\n// allocated Directory struct, preferring placement in s's segment.\nfunc (s Ghost) NewDirectory() (Directory, error) {\n\ts.Struct.SetUint16(8, 1)\n\tss, err := NewDirectory(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Directory{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Ghost) File() (File, error) {\n\tif s.Struct.Uint16(8) != 2 {\n\t\tpanic(\"Which() != file\")\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn File{Struct: p.Struct()}, err\n}\n\nfunc (s Ghost) HasFile() bool {\n\tif s.Struct.Uint16(8) != 2 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Ghost) SetFile(v File) error {\n\ts.Struct.SetUint16(8, 2)\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewFile sets the file field to a newly\n// allocated File struct, preferring placement in s's segment.\nfunc (s Ghost) NewFile() (File, error) {\n\ts.Struct.SetUint16(8, 2)\n\tss, err := NewFile(s.Struct.Segment())\n\tif err != nil {\n\t\treturn File{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Ghost_List is a list of Ghost.\ntype Ghost_List struct{ capnp.List }\n\n// NewGhost creates a new list of Ghost.\nfunc NewGhost_List(s *capnp.Segment, sz int32) (Ghost_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 2}, sz)\n\treturn Ghost_List{l}, err\n}\n\nfunc (s Ghost_List) At(i int) Ghost { return Ghost{s.List.Struct(i)} }\n\nfunc (s Ghost_List) Set(i int, v Ghost) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Ghost_List) String() string {\n\tstr, _ := text.MarshalList(0x80c828d7e89c12ea, s.List)\n\treturn str\n}\n\n// Ghost_Promise is a wrapper for a Ghost promised by a client call.\ntype Ghost_Promise struct{ *capnp.Pipeline }\n\nfunc (p Ghost_Promise) Struct() (Ghost, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Ghost{s}, err\n}\n\nfunc (p Ghost_Promise) Commit() Commit_Promise {\n\treturn Commit_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\nfunc (p Ghost_Promise) Directory() Directory_Promise {\n\treturn Directory_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\nfunc (p Ghost_Promise) File() File_Promise {\n\treturn File_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\n// Node is a node in the merkle dag of brig\ntype Node struct{ capnp.Struct }\ntype Node_Which uint16\n\nconst (\n\tNode_Which_commit    Node_Which = 0\n\tNode_Which_directory Node_Which = 1\n\tNode_Which_file      Node_Which = 2\n\tNode_Which_ghost     Node_Which = 3\n)\n\nfunc (w Node_Which) String() string {\n\tconst s = \"commitdirectoryfileghost\"\n\tswitch w {\n\tcase Node_Which_commit:\n\t\treturn s[0:6]\n\tcase Node_Which_directory:\n\t\treturn s[6:15]\n\tcase Node_Which_file:\n\t\treturn s[15:19]\n\tcase Node_Which_ghost:\n\t\treturn s[19:24]\n\n\t}\n\treturn \"Node_Which(\" + strconv.FormatUint(uint64(w), 10) + \")\"\n}\n\n// Node_TypeID is the unique identifier for the type Node.\nconst Node_TypeID = 0xa629eb7f7066fae3\n\nfunc NewNode(s *capnp.Segment) (Node, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7})\n\treturn Node{st}, err\n}\n\nfunc NewRootNode(s *capnp.Segment) (Node, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7})\n\treturn Node{st}, err\n}\n\nfunc ReadRootNode(msg *capnp.Message) (Node, error) {\n\troot, err := msg.RootPtr()\n\treturn Node{root.Struct()}, err\n}\n\nfunc (s Node) String() string {\n\tstr, _ := text.Marshal(0xa629eb7f7066fae3, s.Struct)\n\treturn str\n}\n\nfunc (s Node) Which() Node_Which {\n\treturn Node_Which(s.Struct.Uint16(8))\n}\nfunc (s Node) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Node) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Node) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Node) TreeHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Node) HasTreeHash() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetTreeHash(v []byte) error {\n\treturn s.Struct.SetData(1, v)\n}\n\nfunc (s Node) ModTime() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s Node) HasModTime() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) ModTimeBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Node) SetModTime(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s Node) Inode() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Node) SetInode(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s Node) ContentHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Node) HasContentHash() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetContentHash(v []byte) error {\n\treturn s.Struct.SetData(3, v)\n}\n\nfunc (s Node) User() (string, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.Text(), err\n}\n\nfunc (s Node) HasUser() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) UserBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Node) SetUser(v string) error {\n\treturn s.Struct.SetText(4, v)\n}\n\nfunc (s Node) Commit() (Commit, error) {\n\tif s.Struct.Uint16(8) != 0 {\n\t\tpanic(\"Which() != commit\")\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn Commit{Struct: p.Struct()}, err\n}\n\nfunc (s Node) HasCommit() bool {\n\tif s.Struct.Uint16(8) != 0 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetCommit(v Commit) error {\n\ts.Struct.SetUint16(8, 0)\n\treturn s.Struct.SetPtr(5, v.Struct.ToPtr())\n}\n\n// NewCommit sets the commit field to a newly\n// allocated Commit struct, preferring placement in s's segment.\nfunc (s Node) NewCommit() (Commit, error) {\n\ts.Struct.SetUint16(8, 0)\n\tss, err := NewCommit(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Commit{}, err\n\t}\n\terr = s.Struct.SetPtr(5, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Node) Directory() (Directory, error) {\n\tif s.Struct.Uint16(8) != 1 {\n\t\tpanic(\"Which() != directory\")\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn Directory{Struct: p.Struct()}, err\n}\n\nfunc (s Node) HasDirectory() bool {\n\tif s.Struct.Uint16(8) != 1 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetDirectory(v Directory) error {\n\ts.Struct.SetUint16(8, 1)\n\treturn s.Struct.SetPtr(5, v.Struct.ToPtr())\n}\n\n// NewDirectory sets the directory field to a newly\n// allocated Directory struct, preferring placement in s's segment.\nfunc (s Node) NewDirectory() (Directory, error) {\n\ts.Struct.SetUint16(8, 1)\n\tss, err := NewDirectory(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Directory{}, err\n\t}\n\terr = s.Struct.SetPtr(5, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Node) File() (File, error) {\n\tif s.Struct.Uint16(8) != 2 {\n\t\tpanic(\"Which() != file\")\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn File{Struct: p.Struct()}, err\n}\n\nfunc (s Node) HasFile() bool {\n\tif s.Struct.Uint16(8) != 2 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetFile(v File) error {\n\ts.Struct.SetUint16(8, 2)\n\treturn s.Struct.SetPtr(5, v.Struct.ToPtr())\n}\n\n// NewFile sets the file field to a newly\n// allocated File struct, preferring placement in s's segment.\nfunc (s Node) NewFile() (File, error) {\n\ts.Struct.SetUint16(8, 2)\n\tss, err := NewFile(s.Struct.Segment())\n\tif err != nil {\n\t\treturn File{}, err\n\t}\n\terr = s.Struct.SetPtr(5, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Node) Ghost() (Ghost, error) {\n\tif s.Struct.Uint16(8) != 3 {\n\t\tpanic(\"Which() != ghost\")\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn Ghost{Struct: p.Struct()}, err\n}\n\nfunc (s Node) HasGhost() bool {\n\tif s.Struct.Uint16(8) != 3 {\n\t\treturn false\n\t}\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetGhost(v Ghost) error {\n\ts.Struct.SetUint16(8, 3)\n\treturn s.Struct.SetPtr(5, v.Struct.ToPtr())\n}\n\n// NewGhost sets the ghost field to a newly\n// allocated Ghost struct, preferring placement in s's segment.\nfunc (s Node) NewGhost() (Ghost, error) {\n\ts.Struct.SetUint16(8, 3)\n\tss, err := NewGhost(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Ghost{}, err\n\t}\n\terr = s.Struct.SetPtr(5, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Node) BackendHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(6)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Node) HasBackendHash() bool {\n\tp, err := s.Struct.Ptr(6)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Node) SetBackendHash(v []byte) error {\n\treturn s.Struct.SetData(6, v)\n}\n\n// Node_List is a list of Node.\ntype Node_List struct{ capnp.List }\n\n// NewNode creates a new list of Node.\nfunc NewNode_List(s *capnp.Segment, sz int32) (Node_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7}, sz)\n\treturn Node_List{l}, err\n}\n\nfunc (s Node_List) At(i int) Node { return Node{s.List.Struct(i)} }\n\nfunc (s Node_List) Set(i int, v Node) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Node_List) String() string {\n\tstr, _ := text.MarshalList(0xa629eb7f7066fae3, s.List)\n\treturn str\n}\n\n// Node_Promise is a wrapper for a Node promised by a client call.\ntype Node_Promise struct{ *capnp.Pipeline }\n\nfunc (p Node_Promise) Struct() (Node, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Node{s}, err\n}\n\nfunc (p Node_Promise) Commit() Commit_Promise {\n\treturn Commit_Promise{Pipeline: p.Pipeline.GetPipeline(5)}\n}\n\nfunc (p Node_Promise) Directory() Directory_Promise {\n\treturn Directory_Promise{Pipeline: p.Pipeline.GetPipeline(5)}\n}\n\nfunc (p Node_Promise) File() File_Promise {\n\treturn File_Promise{Pipeline: p.Pipeline.GetPipeline(5)}\n}\n\nfunc (p Node_Promise) Ghost() Ghost_Promise {\n\treturn Ghost_Promise{Pipeline: p.Pipeline.GetPipeline(5)}\n}\n\nconst schema_9195d073cb5c5953 = \"x\\xda\\xb4\\x96\\xefk\\x14\\xd7\\x1a\\xc7\\x9f\\xef9\\xb3;Y\" +\n\t\"\\xd1\\xbb\\xd9;\\x11D\\\\\\xf7 \\x0aQ\\x12M\\\\/W\" +\n\t\"\\x83\\x17\\x8d\\xc6k\\xcc\\xcd\\x95\\x1cW\\xb9*za\\xdc=\" +\n\t\"\\xd9\\x1d\\xdc\\x9d\\x093cc\\xa4E[\\x14\\xb45E\\xa9\" +\n\t\"\\x82BBm\\x89\\xfd\\x01-m\\xff\\x80\\xd2\\x1f`)\\xed\" +\n\t\"\\x9b\\xd2\\x17-\\xed\\xcb\\xb6/j\\x0b}]\\xda\\xea\\x94\\xb3\" +\n\t\"\\xbf&\\x86\\xb4Ji\\xdfe\\x9e\\xe7\\xfc\\xf8\\x9e\\xcf\\xf3<\" +\n\t\"\\xdfl\\xdf\\xcfl'\\xebOx\\x8cH\\xaeJ$\\xa3\\xef\" +\n\t\"\\xfe>\\xf3\\xed\\xe7\\xdd\\x1f\\x9e#\\xb9\\x1a,*\\x1c9\\xf6\" +\n\t\"q\\xf0\\xc9\\xf5\\xab\\xb4\\x87\\x99\\x1cF>\\x8b5\\xb0za\" +\n\t\"Z\\xbd\\xc8\\xe5\\x1d\\xe4@\\x88fs\\xff\\x99|\\xec\\x87\\xe5\" +\n\t\"\\xcfPf5\\xe2\\x0d\\x09f\\x12\\xe5/\\xb0\\x01X\\xd7\\x99\" +\n\t\"i]g9\\xeb=6I\\x88\\xde8~\\xd0\\xfd\\xc0\\xba\" +\n\t\"5\\xad/\\x98\\xbf>\\xa9\\xd7g\\xf9\\x06X\\xbd\\xdc\\xb4z\" +\n\t\"y.\\x7f\\x9c\\xffO\\x9f\\x7f\\xa8\\xff\\xd2?\\xff\\xb5\\xed\\xe5\" +\n\t\"g\\xf5\\x06\\xbe\\xf0\\x82ic%\\xacY\\xc3\\xb4f\\x8d\\\\\" +\n\t\"\\xfe\\x8eQ\\x17\\xf4\\xf5O\\xe3\\x13g\\xbf_\\xff\\xd2\\xc2'\" +\n\t\"\\x98\\xa6\\x01#\\xffEb%\\xac\\xbb\\x09\\xd3\\xba\\x9b\\xc8\\xe5\" +\n\t\"\\xb3I\\x8f\\x11\\xa2\\xb9oF\\xbfL\\xcf\\xfd\\xf8\\x0e\\xc9u\" +\n\t\"\\x98\\xa7py\\xd2\\x04Q\\xfev\\xc7Q\\x10\\xac\\xb7:\\xb4\" +\n\t\"|\\xcc<U\\xed;2\\xfa\\xd5\\x82\\xc3\\x13\\\\\\xabY\\x96\" +\n\t\"\\xda\\x05+\\x9b2\\xadl*\\x97?\\x94\\xaa\\xab)\\xda\\xe1\" +\n\t\"x\\xb0\\xc9\\xf5xI\\x05\\x9b\\x8a\\xf6\\x84;\\xb1\\xc9\\xf5J\" +\n\t\"*\\xd8X\\xff{`o\\xc5\\xf4\\x82p\\x0c\\x90\\x06X\\xf4\" +\n\t\"\\xff\\xe7\\x9e\\x97o\\x7f\\xf6\\xf4\\x1d\\x92\\x06\\xc3`\\x0f\\xb0\\x94\" +\n\t\"\\xa8\\x1f\\x9f\\\"\\xda[\\xf1\\x82P8n\\xb2\\xe4\\x14\\xedP\" +\n\t\"\\x05\\\"\\xac\\xd8\\xa1\\xb0EQ\\xf9\\xa1\\xed\\xb8B\\x1f)&\" +\n\t\"\\xed@\\xd8\\xa1\\x08+N &\\xec\\xb0\\\"<\\xb7\\x08E\" +\n\t\"$\\xbb\\xb8Ad\\x80(\\xf3\\xc4Q\\\"\\xf98\\x87\\xbc\\xc8\" +\n\t\"\\x00tA\\xc7.\\x1c \\x92\\xe79\\xe4\\x15\\x86,\\x8b\\\"\" +\n\t\"t\\x81\\x11e\\xa6\\x07\\x88\\xe4E\\x0ey\\x8d!\\xcb\\xef\\xeb\" +\n\t\"0'\\xca\\\\\\xd5\\xab\\xafp\\xc8\\x19\\x86\\xacqO\\x87\\x0d\" +\n\t\"\\xa2\\xcc\\xcd\\x0dD\\xf2\\x1a\\x87\\xbc\\xc5\\x10\\x95\\xb5\\xda}\\xae\" +\n\t\"G\\xbc\\xa4\\x90\\\"\\x86\\x145\\x83cvH\\xa8`)1\" +\n\t\",%\\xec(z\\xb5\\x9a\\x13\\xa23fN@'!*\" +\n\t\"9\\xbe*\\x86\\x9eO\\x98Bg\\x0c\\xbd\\x91M\\x8f;U\" +\n\t\"\\x85\\xce\\xb83\\x9a\\x9b\\x1e\\x82z\\xc8\\xd9\\xe1\\xefqC\\x7f\" +\n\t\"jq\\xda\\xab\\xea\\xb43\\xf8(\\x1a\\x14\\x81\\xe3\\x96\\xab\\x8a\" +\n\t\"\\x89\\x96\\x8c)\\xa1\\xf4F\\x82\\xech\\xa3\\\\\\xaf_\\xbc\\x96\" +\n\t\"C\\xf61dZ,{u\\xb0\\x9bCnaH\\xbbv\" +\n\t\"M\\xb5\\x9e\\x9a\\xae\\xd8A\\x05\\xcb\\x88a\\xd9\\xc3\\x95\\xee\\xf6\" +\n\t\"\\xd2\\x9a\\xcb\\xe2:E\\xb3+\\xd6 \\xda]\\xc7'\\x1c\\x1e\" +\n\t\"\\x08[\\x04*\\x14\\xde\\xb8(Vl\\xb7\\xac\\x1b\\xc4\\x13\\xae\" +\n\t\"g\\x96T@$W\\xb4E\\xdf\\xdc\\x15\\x97\\xa9-zV\" +\n\t\"W\\xfa\\x06\\x87\\x9cc\\xc80\\xd6(\\xff\\x0b:8\\xc3!\" +\n\t\"_a\\xc8p\\xde(\\xfem\\xfd\\xbc[\\x1c\\xf25\\x06\\x18\" +\n\t\"\\x8d\\xca\\xbf\\xba\\x99H\\xceq\\xc87\\x19\\x90\\xc0\\xbci\\xca\" +\n\t\"\\xbc\\xbe\\x99\\xd8\\xd9\\x9a\\x0a\\x02\\xbb\\xdc\\x06\\xb1\\xc3>\\x15V\" +\n\t\"<\\xbf\\xfd9a\\xfb\\xca\\x0d[d\\xd2\\xbe\\xe7\\xb5?r\" +\n\t\"\\x8e[R\\xa7\\x91 \\x86\\x04!WS~Y=\\x0c\\xdd\" +\n\t\"\\xbf\\x1d^U\\x8b\\x83[\\xd1,\\xf0\\xfb\\xd1\\xa0\\xa8*{\" +\n\t\"\\\\\\xb8LO\\x8d\\xe3\\x8a\\xb0\\xa2\\xc4\\x7f\\x87\\x06\\xf7\\xd2\\x83\" +\n\t\"\\xb3\\xa2\\x1f{\\x9aC\\x9e\\x9f\\xc7\\xeaI=@\\xe78\\xe4\" +\n\t\"e\\x064Q]\\x1a\\x88\\x07(\\xc3\\x9bs2\\xbd&\\x1e\" +\n\t\"\\x9f\\x8cq\\xae\\xc1\\xea\\xaafu\\x99C\\xde`H\\x07\\xce\" +\n\t\"\\x99x:\\x8av\\xb1\\xa2J\\x05\\x87\\xf8\\x19\\xd5zq\\x8b\" +\n\t\"M\\x13\\x95yRM\\xc5h\\x82\\x03\\xf6$@\\x0c\\x8f`\" +\n\t\"2\\xfbubq(k\\x9b\\xdd4\\x82h\\x7f\\x9dF \" +\n\t\"\\x0c\\xbba'M05\\xe5\\x9f\\xac*Q\\xb2\\xcb\\xba\\xbd\" +\n\t\"N\\xf8N\\x99 {Z\\x94\\xacu\\xd8@T\\x10\\xe0(\" +\n\t\"\\xf4 \\x06e\\xad\\xc7\\x08Q\\xa1[\\xc7\\xb7 \\xee+\\xab\" +\n\t\"\\x1f\\xbb\\x88\\x0a=:\\xbe\\x15\\x0cht\\x96\\xf5\\x0fl&\" +\n\t\"*\\xf4\\xe9\\xf0v\\xbd\\xdc\\xe0ub\\xd66\\x9c *l\" +\n\t\"\\xd5\\xf1!\\x1dO\\x18]H\\x10Y\\x83\\xf5k\\xb7\\xeb\\xf8\" +\n\t\"0\\x18\\xb2\\xc9(Jt!Id\\xed\\xc1\\x00Qa\\xa7\" +\n\t\"\\xce\\x8c\\xea\\x8cy_gL\\\"k\\x1f\\x0e\\x10\\x15\\x86u\" +\n\t\"\\xe6\\xa0\\xcet\\xdc\\xd3\\x99\\x0e\\\"K\\xd6O\\x1b\\xd5\\x99\\xc3\" +\n\t\":\\x93\\xfaEgRD\\xd6\\xa1\\xba\\xae1\\x9d9\\xa6\\xef\" +\n\t\"_\\x92\\xec\\xc2\\x12\\\"\\xebH]\\xd7a\\x1d/a\\xc1\\xac\" +\n\t\"G\\xa1\\xaf\\xd4\\xb0\\x1dT\\x88\\xa8U\\xb0\\xb35\\xaft\\xd0\" +\n\t\"\\x89\\xd7\\xe4\\x1c\\xcd8.\\xbf\\xe7\\x86\\xca\\x0d\\x87\\xc9\\x9cg\" +\n\t\"\\x13\\xe9S\\x81\\xf2\\xff\\x1a\\xaf\\xcc\\xd5\\xdd\\x18\\x9d\\xf1\\xff\\xfb\" +\n\t\"\\xe6a'\\xec\\xe2I\\xe5\\x96\\x1e\\x14\\xd2\\xee/\\xe3\\xb7\\xfc\" +\n\t\"JK\\xdbXS>/+m\\x91\\x9d\\x8d*-\\xf0\\xc8\" +\n\t\"F\\x81\\x1e\\xf4\\xc8I'\\xac\\xc4\\x1e\\xa9\\xec\\xd2\\xa3\\xde9\" +\n\t\"\\xd4\\xb2fZ\\xbc\\xb1\\xbb\\x9b\\x8d\\xfd\\\"\\xa2\\xd6\\xd2\\xc4\\x94\" +\n\t\"\\xd0\\x9cm\\xc7\\x0d\\x84\\xe7*\\xe1\\xf9\\xa2\\xe6\\xf9\\xaa\\xed\\xf2\" +\n\t\"\\x8e\\x0atl\\xdc1\\xabu\\xdb\\xfc\\xd3\\xac`\\xa49\\xf5\" +\n\t\"\\xdaJ\\x0d\\xd6\\xb0\\x82\\xdb#M\\xdb|\\xf7\\x0fXAT\" +\n\t\"\\xac8\\xd5\\x92\\xaf\\\\\\xdda\\x7f#\\x8cq\\xa03\\xfe%\" +\n\t\"F\\xd0\\xc1VS\\x05\\xbf\\xb7\\xe8\\xd7\\x00\\x00\\x00\\xff\\xff*\" +\n\t\"\\xb6Z]\"\n\nfunc init() {\n\tschemas.Register(schema_9195d073cb5c5953,\n\t\t0x80c828d7e89c12ea,\n\t\t0x8b15ee76774b1f9d,\n\t\t0x8da013c66e545daf,\n\t\t0x8ea7393d37893155,\n\t\t0xa629eb7f7066fae3,\n\t\t0xbff8a40fda4ce4a4,\n\t\t0xe24c59306c829c01)\n}\n"
  },
  {
    "path": "catfs/nodes/commit.go",
    "content": "package nodes\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"path\"\n\t\"time\"\n\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nconst (\n\t// AuthorOfStage is the Person that is displayed for the stage commit.\n\t// Currently this is just an empty hash Person that will be set later.\n\tAuthorOfStage = \"unknown\"\n)\n\n// Commit groups a set of changes\ntype Commit struct {\n\tBase\n\n\t// Commit message (might be auto-generated)\n\tmessage string\n\n\t// Author is the id of the committer.\n\tauthor string\n\n\t// root is the tree hash of the root directory\n\troot h.Hash\n\n\t// Parent hash (only nil for initial commit)\n\tparent h.Hash\n\n\t// Index of the commit (first is 0, second 1 and so on)\n\tindex int64\n\n\tmerge struct {\n\t\t// With indicates with which person we merged.\n\t\twith string\n\n\t\t// head is a reference to the commit we merged with on\n\t\t// the remote side.\n\t\thead h.Hash\n\t}\n}\n\n// NewEmptyCommit creates a new commit after the commit referenced by `parent`.\n// `parent` might be nil for the very first commit.\nfunc NewEmptyCommit(inode uint64, index int64) (*Commit, error) {\n\treturn &Commit{\n\t\tBase: Base{\n\t\t\tnodeType: NodeTypeCommit,\n\t\t\tinode:    inode,\n\t\t\tmodTime:  time.Now(),\n\t\t},\n\t\tindex:  index,\n\t\tauthor: AuthorOfStage,\n\t}, nil\n}\n\n// ToCapnp will convert all commit internals to a capnp message.\nfunc (c *Commit) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNd, err := capnp_model.NewRootNode(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, c.ToCapnpNode(seg, capNd)\n}\n\n// ToCapnpNode converts this node to a serializable capnp proto node.\nfunc (c *Commit) ToCapnpNode(seg *capnp.Segment, capNd capnp_model.Node) error {\n\tif err := c.setBaseAttrsToNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapCmt, err := c.setCommitAttrs(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn capNd.SetCommit(*capCmt)\n}\n\nfunc (c *Commit) setCommitAttrs(seg *capnp.Segment) (*capnp_model.Commit, error) {\n\tcapCmt, err := capnp_model.NewCommit(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capCmt.SetMessage(c.message); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := capCmt.SetRoot(c.root); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := capCmt.SetAuthor(c.author); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := capCmt.SetParent(c.parent); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapCmt.SetIndex(c.index)\n\n\t// Store merge infos:\n\tcapmerge := capCmt.Merge()\n\n\tif err := capmerge.SetWith(c.merge.with); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capmerge.SetHead(c.merge.head); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capCmt, nil\n}\n\n// FromCapnp will set the content of `msg` into the commit,\n// overwriting any previous state.\nfunc (c *Commit) FromCapnp(msg *capnp.Message) error {\n\tcapNd, err := capnp_model.ReadRootNode(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn c.FromCapnpNode(capNd)\n}\n\n// FromCapnpNode converts a serialized node to a normal node.\nfunc (c *Commit) FromCapnpNode(capNd capnp_model.Node) error {\n\tif err := c.parseBaseAttrsFromNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tc.nodeType = NodeTypeCommit\n\tcapCmt, err := capNd.Commit()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn c.readCommitAttrs(capCmt)\n}\n\nfunc (c *Commit) readCommitAttrs(capCmt capnp_model.Commit) error {\n\tvar err error\n\n\tc.author, err = capCmt.Author()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.message, err = capCmt.Message()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.root, err = capCmt.Root()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.parent, err = capCmt.Parent()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.index = capCmt.Index()\n\n\tcapMerge := capCmt.Merge()\n\tc.merge.head, err = capMerge.Head()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.merge.with, err = capMerge.With()\n\treturn err\n}\n\n// IsBoxed will return True if the ommit was already boxed\n// (i.e. is a finished commit and no staging commit)\nfunc (c *Commit) IsBoxed() bool {\n\treturn c.tree != nil\n}\n\n// padHash will take a Hash and pad it's representation to 2048 bytes.\n// This is done so we can support different hash sizes later on.\n// We need fixed lengths for the hash calculation of a commit.\nfunc padHash(hash h.Hash) []byte {\n\tpadded := make([]byte, 2048)\n\tcopy(padded, hash.Bytes())\n\treturn padded\n}\n\n// Root returns the current root hash\n// You shall not modify the returned hash.\nfunc (c *Commit) Root() h.Hash {\n\treturn c.root\n}\n\n// SetRoot sets the root directory of this commit.\nfunc (c *Commit) SetRoot(hash h.Hash) {\n\tc.root = hash.Clone()\n}\n\n// BoxCommit takes all currently filled data and calculates the final hash.\n// It also will update the modification time.\n// Only a boxed commit should be\nfunc (c *Commit) BoxCommit(author string, message string) error {\n\tif c.root == nil {\n\t\treturn fmt.Errorf(\"Cannot box commit: root directory is empty\")\n\t}\n\n\tc.author = author\n\n\tbuf := &bytes.Buffer{}\n\n\t// If parent == nil, this will be EmptyBackendHash.\n\tbuf.Write(padHash(c.parent))\n\n\t// Write the root hash.\n\tbuf.Write(padHash(c.root))\n\n\t// Write the author hash. Different author -> different content.\n\tbuf.Write(padHash(h.Sum([]byte(c.author))))\n\n\t// Write the message last, it may be arbitrary length.\n\tbuf.Write([]byte(message))\n\n\tmh := h.Sum(buf.Bytes())\n\tc.message = message\n\tc.tree = h.Hash(mh)\n\treturn nil\n}\n\n// String will return a nice representation of a commit.\nfunc (c *Commit) String() string {\n\treturn fmt.Sprintf(\n\t\t\"<commit %s (%s)>\",\n\t\tc.tree.B58String(),\n\t\tc.message,\n\t)\n}\n\n// SetMergeMarker remembers that we merged with the user `with`\n// at this commit at `remoteHead`.\nfunc (c *Commit) SetMergeMarker(with string, remoteHead h.Hash) {\n\tc.merge.with = with\n\tc.merge.head = remoteHead.Clone()\n}\n\n// MergeMarker returns the merge info for this commit, if any.\nfunc (c *Commit) MergeMarker() (string, h.Hash) {\n\treturn c.merge.with, c.merge.head\n}\n\n// /////////////////// METADATA INTERFACE ///////////////////\n\n// Name will return the hash of the commit.\nfunc (c *Commit) Name() string {\n\treturn c.tree.B58String()\n}\n\n// Message will return the commit message of this commit\nfunc (c *Commit) Message() string {\n\treturn c.message\n}\n\n// Path will return the path of the commit, which will\nfunc (c *Commit) Path() string {\n\treturn prefixSlash(path.Join(\".snapshots\", c.Name()))\n}\n\n// Size will always return 0 since a commit has no defined size.\n// If you're interested in the size of the snapshot, check the size\n// of the root directory.\nfunc (c *Commit) Size() uint64 {\n\treturn 0\n}\n\n// CachedSize returns zero.\n// Same reasons as for Size() above.\nfunc (c *Commit) CachedSize() int64 { return 0 }\n\n// Index of the commit. First commit has the index 0,\n// next commit has the index 1 and so on.\nfunc (c *Commit) Index() int64 {\n\treturn c.index\n}\n\n/////////////// HIERARCHY INTERFACE ///////////////\n\n// NChildren will always return 1, since a commit has always exactly one\n// root dir attached.\nfunc (c *Commit) NChildren() int {\n\treturn 1\n}\n\n// Child will return the root directory, no matter what name is given.\nfunc (c *Commit) Child(lkr Linker, _ string) (Node, error) {\n\t// Return the root directory, no matter what name was passed.\n\treturn lkr.NodeByHash(c.root)\n}\n\n// Parent will return the parent commit of this node or nil\n// if it is the first commit ever made.\nfunc (c *Commit) Parent(lkr Linker) (Node, error) {\n\tif c.parent == nil {\n\t\treturn nil, nil\n\t}\n\n\treturn lkr.NodeByHash(c.parent)\n}\n\n// SetParent sets the parent of the commit to `nd`.\nfunc (c *Commit) SetParent(lkr Linker, nd Node) error {\n\tc.parent = nd.TreeHash().Clone()\n\treturn nil\n}\n\n// SetModTime sets the commits modtime to `t`.\n// This should only be used for the most recent commit.\nfunc (c *Commit) SetModTime(t time.Time) {\n\tc.modTime = t\n}\n\n// Assert that Commit follows the Node interface:\nvar _ Node = &Commit{}\n"
  },
  {
    "path": "catfs/nodes/commit_test.go",
    "content": "package nodes\n\nimport (\n\t\"testing\"\n\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nfunc TestCommit(t *testing.T) {\n\tcmt, err := NewEmptyCommit(0, 42)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create commit: %v\", err)\n\t}\n\n\tcmt.root = h.EmptyBackendHash\n\tcmt.parent = h.EmptyBackendHash\n\tcmt.Base.name = \"some commit\"\n\n\tcmt.SetMergeMarker(AuthorOfStage, h.TestDummy(t, 42))\n\n\tif err := cmt.BoxCommit(AuthorOfStage, \"Hello\"); err != nil {\n\t\tt.Fatalf(\"Failed to box commit: %v\", err)\n\t}\n\n\tmsg, err := cmt.ToCapnp()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to convert commit to capnp: %v\", err)\n\t}\n\n\tdata, err := msg.Marshal()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to marshal message: %v\", err)\n\t}\n\n\tnewMsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t}\n\n\tempty := &Commit{}\n\tif err := empty.FromCapnp(newMsg); err != nil {\n\t\tt.Fatalf(\"From failed: %v\", err)\n\t}\n\n\tif empty.message != \"Hello\" {\n\t\tt.Fatalf(\"Bad message unmarshaled: %v\", empty.message)\n\t}\n\n\tif !empty.root.Equal(h.EmptyBackendHash) {\n\t\tt.Fatalf(\"Bad root unmarshaled: %v\", empty.root)\n\t}\n\n\tif !empty.parent.Equal(h.EmptyBackendHash) {\n\t\tt.Fatalf(\"Bad parent unmarshaled: %v\", empty.root)\n\t}\n\n\tif empty.author != AuthorOfStage {\n\t\tt.Fatalf(\"Bad author unmarshaled: %v\", empty.root)\n\t}\n\n\tif empty.index != 42 {\n\t\tt.Fatalf(\"Index did not match in umarshalled: %v\", empty.index)\n\t}\n\n\tperson, remoteHead := empty.MergeMarker()\n\tif !remoteHead.Equal(h.TestDummy(t, 42)) {\n\t\tt.Fatalf(\"Remote head was not loaded correctly: %v\", remoteHead.Bytes())\n\t}\n\n\tif person != AuthorOfStage {\n\t\tt.Fatalf(\"Person from unmarshaled commit does not equal staging author: %v\", person)\n\t}\n\n\tempty.modTime = cmt.modTime\n\trequire.Equal(t, empty, cmt)\n}\n"
  },
  {
    "path": "catfs/nodes/directory.go",
    "content": "package nodes\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// Directory is a typical directory that may contain\n// several other directories or files.\ntype Directory struct {\n\tBase\n\n\tsize       uint64\n\tcachedSize int64 // Negative indicates that it is unknown\n\tparentName string\n\tchildren   map[string]h.Hash\n\tcontents   map[string]h.Hash\n\torder      []string\n}\n\n// NewEmptyDirectory creates a new empty directory that does not exist yet.\nfunc NewEmptyDirectory(\n\tlkr Linker, parent *Directory, name string, user string, inode uint64,\n) (*Directory, error) {\n\tabsPath := \"\"\n\tif parent != nil {\n\t\tabsPath = path.Join(parent.Path(), name)\n\t}\n\n\tnewDir := &Directory{\n\t\tBase: Base{\n\t\t\tinode:    inode,\n\t\t\tuser:     user,\n\t\t\ttree:     h.Sum([]byte(absPath)),\n\t\t\tcontent:  h.EmptyInternalHash.Clone(),\n\t\t\tbackend:  h.EmptyBackendHash.Clone(),\n\t\t\tname:     name,\n\t\t\tnodeType: NodeTypeDirectory,\n\t\t\tmodTime:  time.Now().Truncate(time.Microsecond),\n\t\t},\n\t\tchildren: make(map[string]h.Hash),\n\t\tcontents: make(map[string]h.Hash),\n\t\torder:    []string{},\n\t}\n\n\tif parent != nil {\n\t\t// parentName is set by Add:\n\t\tif err := parent.Add(lkr, newDir); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn newDir, nil\n}\n\nfunc (d *Directory) String() string {\n\treturn fmt.Sprintf(\"<dir %s:%s:%d>\", d.Path(), d.TreeHash(), d.Inode())\n}\n\n// ToCapnp converts the directory to an easily serializable capnp message.\nfunc (d *Directory) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNd, err := capnp_model.NewRootNode(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, d.ToCapnpNode(seg, capNd)\n}\n\n// ToCapnpNode converts this node to a serializable capnp proto node.\nfunc (d *Directory) ToCapnpNode(seg *capnp.Segment, capNd capnp_model.Node) error {\n\tif err := d.setBaseAttrsToNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapDir, err := d.setDirectoryAttrs(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn capNd.SetDirectory(*capDir)\n}\n\nfunc (d *Directory) setDirectoryAttrs(seg *capnp.Segment) (*capnp_model.Directory, error) {\n\tcapDir, err := capnp_model.NewDirectory(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tchildren, err := capnp_model.NewDirEntry_List(seg, int32(len(d.children)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentryIdx := 0\n\tfor name, hash := range d.children {\n\t\tentry, err := capnp_model.NewDirEntry(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := entry.SetName(name); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := entry.SetHash(hash); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := children.Set(entryIdx, entry); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tentryIdx++\n\t}\n\n\tif err := capDir.SetChildren(children); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcontents, err := capnp_model.NewDirEntry_List(seg, int32(len(d.contents)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentryIdx = 0\n\tfor name, hash := range d.contents {\n\t\tentry, err := capnp_model.NewDirEntry(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := entry.SetName(name); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := entry.SetHash(hash); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := contents.Set(entryIdx, entry); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tentryIdx++\n\t}\n\n\tif err := capDir.SetContents(contents); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDir.SetParent(d.parentName); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapDir.SetSize(d.size)\n\tcapDir.SetCachedSize(int64(d.size))\n\treturn &capDir, nil\n}\n\n// FromCapnp will take the result of ToCapnp and set all of it's attributes.\nfunc (d *Directory) FromCapnp(msg *capnp.Message) error {\n\tcapNd, err := capnp_model.ReadRootNode(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn d.FromCapnpNode(capNd)\n}\n\n// FromCapnpNode converts a serialized node to a normal node.\nfunc (d *Directory) FromCapnpNode(capNd capnp_model.Node) error {\n\tif err := d.parseBaseAttrsFromNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapDir, err := capNd.Directory()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn d.readDirectoryAttr(capDir)\n}\n\nfunc (d *Directory) readDirectoryAttr(capDir capnp_model.Directory) error {\n\tvar err error\n\n\td.size = capDir.Size()\n\td.cachedSize = capDir.CachedSize()\n\td.parentName, err = capDir.Parent()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tchildList, err := capDir.Children()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\td.children = make(map[string]h.Hash)\n\tfor i := 0; i < childList.Len(); i++ {\n\t\tentry := childList.At(i)\n\t\tname, err := entry.Name()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\thash, err := entry.Hash()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\td.children[name] = hash\n\t\td.order = append(d.order, name)\n\t}\n\n\tcontentList, err := capDir.Contents()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\td.contents = make(map[string]h.Hash)\n\tfor i := 0; i < contentList.Len(); i++ {\n\t\tentry := contentList.At(i)\n\t\tname, err := entry.Name()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\thash, err := entry.Hash()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\td.contents[name] = hash\n\t}\n\n\tsort.Strings(d.order)\n\td.nodeType = NodeTypeDirectory\n\treturn nil\n}\n\n////////////// NODE INTERFACE /////////////////\n\n// Name returns the dirname of this directory.\nfunc (d *Directory) Name() string {\n\treturn d.name\n}\n\n// Size returns the accumulated size of the directory\n// (i.e. the sum of a files in it, excluding ghosts)\nfunc (d *Directory) Size() uint64 {\n\treturn d.size\n}\n\n// CachedSize is similar to Size() above but for accumulated backends storage\nfunc (d *Directory) CachedSize() int64 {\n\treturn d.cachedSize\n}\n\n// Path returns the full path of this node.\nfunc (d *Directory) Path() string {\n\treturn prefixSlash(path.Join(d.parentName, d.Base.name))\n}\n\n// NChildren returns the number of children the directory has.\nfunc (d *Directory) NChildren() int {\n\treturn len(d.children)\n}\n\n// Child returns a specific child with `name` or nil, if it was not found.\nfunc (d *Directory) Child(lkr Linker, name string) (Node, error) {\n\tchildHash, ok := d.children[name]\n\tif !ok {\n\t\treturn nil, nil\n\t}\n\n\treturn lkr.NodeByHash(childHash)\n}\n\n// Parent will return the parent of this directory or nil,\n// if this directory is already the root directory.\nfunc (d *Directory) Parent(lkr Linker) (Node, error) {\n\tif d.parentName == \"\" {\n\t\treturn nil, nil\n\t}\n\n\treturn lkr.LookupNode(d.parentName)\n}\n\n// SetParent will set the parent of this directory to `nd`.\nfunc (d *Directory) SetParent(lkr Linker, nd Node) error {\n\tif d.Path() == \"/\" {\n\t\treturn nil\n\t}\n\n\tif nd == nil {\n\t\td.parentName = \"\"\n\t} else {\n\t\td.parentName = nd.Path()\n\t}\n\n\treturn nil\n}\n\n// ////////////// TREE MOVEMENT /////////////////\n\n// VisitChildren will call `fn` for each of it's direct children.\n// The order of visits is lexicographical based on the child name.\nfunc (d *Directory) VisitChildren(lkr Linker, fn func(nd Node) error) error {\n\tfor _, name := range d.order {\n\t\thash := d.children[name]\n\t\tchild, err := lkr.NodeByHash(hash)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif child == nil {\n\t\t\treturn fmt.Errorf(\"BUG: dead link in tree: %s => %s\", name, hash.B58String())\n\t\t}\n\n\t\tif err := fn(child); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// ChildrenSorted returns a list of children node objects, sorted lexically by\n// their path. Use this whenever you want to have a defined order of nodes,\n// but do not really care what order.\nfunc (d *Directory) ChildrenSorted(lkr Linker) ([]Node, error) {\n\tchildren := []Node{}\n\terr := d.VisitChildren(lkr, func(nd Node) error {\n\t\tchildren = append(children, nd)\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn children, nil\n}\n\n// Up will call `visit` for each node onto the way top to the root node,\n// including this directory.\nfunc (d *Directory) Up(lkr Linker, visit func(par *Directory) error) error {\n\troot, err := lkr.Root()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\telems := strings.Split(d.Path(), \"/\")\n\tdirs := []*Directory{root}\n\tcurr := root\n\n\tfor _, elem := range elems {\n\t\tif elem == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tchildHash, ok := curr.children[elem]\n\t\tif !ok {\n\t\t\t// This usually means that some link is missing.\n\t\t\treturn fmt.Errorf(\"bug: cannot reach self from root in up()\")\n\t\t}\n\n\t\tchildNode, err := lkr.NodeByHash(childHash)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tchild, ok := childNode.(*Directory)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"bug: non-directory in up(): %v\", childHash)\n\t\t}\n\n\t\tdirs = append(dirs, child)\n\t\tcurr = child\n\t}\n\n\t// Visit the nodes in reverse order, self first, root last:\n\tfor idx := len(dirs) - 1; idx >= 0; idx-- {\n\t\tif err := visit(dirs[idx]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// IsRoot returns true if this directory is the root directory.\nfunc (d *Directory) IsRoot() bool {\n\treturn d.parentName == \"\"\n}\n\n// ErrSkipChild can be returned inside a Walk() closure to stop descending\n// recursively into a directory.\nvar ErrSkipChild = errors.New(\"skip sub directory\")\n\n// Walk calls `visit` for each node below `node`, including `node`.\n// If `dfs` is true, depth first search will be used.\n// If `dfs` is false, breadth first search will be used.\n// It is valid to pass a File to Walk(), then visit will be called exactly once.\n//\n// It is possible to return the special error value ErrSkipChild in the callback.\n// In this case, the children of this node are skipped.\n// For this to work, `dfs` has to be false.\nfunc Walk(lkr Linker, node Node, dfs bool, visit func(child Node) error) error {\n\tif node == nil {\n\t\treturn nil\n\t}\n\n\tif node.Type() != NodeTypeDirectory {\n\t\terr := visit(node)\n\t\tif err == ErrSkipChild {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn err\n\t}\n\n\td, ok := node.(*Directory)\n\tif !ok {\n\t\treturn ie.ErrBadNode\n\t}\n\n\tif !dfs {\n\t\tif err := visit(node); err != nil {\n\t\t\tif err == ErrSkipChild {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor _, name := range d.order {\n\t\thash := d.children[name]\n\t\tchild, err := lkr.NodeByHash(hash)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif child == nil {\n\t\t\treturn fmt.Errorf(\"walk: could not resolve %s (%s)\", name, hash.B58String())\n\t\t}\n\n\t\tif err := Walk(lkr, child, dfs, visit); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif dfs {\n\t\tif err := visit(node); err != nil {\n\t\t\tif err == ErrSkipChild {\n\t\t\t\tpanic(\"bug: you cannot use dfs=true and ErrSkipChild together\")\n\t\t\t}\n\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Lookup will lookup `repoPath` relative to this directory.\nfunc (d *Directory) Lookup(lkr Linker, repoPath string) (Node, error) {\n\trepoPath = prefixSlash(path.Clean(repoPath))\n\telems := strings.Split(repoPath, \"/\")\n\n\t// Strip off the first empty field:\n\telems = elems[1:]\n\n\tif len(elems) == 1 && elems[0] == \"\" {\n\t\treturn d, nil\n\t}\n\n\tvar curr Node = d\n\tvar err error\n\n\tfor idx, elem := range elems {\n\t\tcurr, err = curr.Child(lkr, elem)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif curr == nil {\n\t\t\treturn nil, ie.NoSuchFile(repoPath)\n\t\t}\n\n\t\t// If the child is a ghost and we did not fully resolve the path\n\t\t// yet we stop here. If it's the ghost of a directory we could\n\t\t// resolve its children, but that would be confusing.\n\t\tif curr.Type() == NodeTypeGhost && idx != len(elems)-1 {\n\t\t\treturn nil, ie.NoSuchFile(repoPath)\n\t\t}\n\t}\n\n\treturn curr, nil\n}\n\n//////////// STATE ALTERING METHODS //////////////\n\n// SetSize sets the size of this directory.\nfunc (d *Directory) SetSize(size uint64) { d.size = size }\n\n// SetCachedSize sets the cached size of the directory.\nfunc (d *Directory) SetCachedSize(cachedSize int64) { d.cachedSize = cachedSize }\n\n// SetName will set the name of this directory.\nfunc (d *Directory) SetName(name string) {\n\td.name = name\n}\n\n// SetModTime will set a new mod time to this directory (i.e. \"touch\" it)\nfunc (d *Directory) SetModTime(modTime time.Time) {\n\td.Base.modTime = modTime.Truncate(time.Microsecond)\n}\n\n// Copy returns a copy of the directory with `inode` changed.\nfunc (d *Directory) Copy(inode uint64) ModNode {\n\tchildren := make(map[string]h.Hash)\n\tcontents := make(map[string]h.Hash)\n\n\tfor name, hash := range d.children {\n\t\tchildren[name] = hash.Clone()\n\t}\n\n\tfor name, hash := range d.contents {\n\t\tcontents[name] = hash.Clone()\n\t}\n\n\torder := make([]string, len(d.order))\n\tcopy(order, d.order)\n\n\treturn &Directory{\n\t\tBase:       d.Base.copyBase(inode),\n\t\tsize:       d.size,\n\t\tparentName: d.parentName,\n\t\tchildren:   children,\n\t\tcontents:   contents,\n\t\torder:      order,\n\t}\n}\n\nfunc (d *Directory) rehash(lkr Linker, updateContentHash bool) error {\n\tnewTreeHash := h.Sum([]byte(path.Join(d.parentName, d.name)))\n\tnewContentHash := h.EmptyInternalHash.Clone()\n\tfor _, name := range d.order {\n\t\tnewTreeHash = newTreeHash.Mix(d.children[name])\n\n\t\tif childContent := d.contents[name]; updateContentHash && childContent != nil {\n\t\t\t// The child content might be nil in case of ghost.\n\t\t\t// Those should not add to the content calculation.\n\t\t\tnewContentHash = newContentHash.Mix(childContent)\n\t\t}\n\t}\n\n\toldHash := d.tree.Clone()\n\td.tree = newTreeHash\n\n\tif updateContentHash {\n\t\td.content = newContentHash\n\t}\n\n\tlkr.MemIndexSwap(d, oldHash, true)\n\treturn nil\n}\n\n// Add `nd` to this directory using `lkr`.\nfunc (d *Directory) Add(lkr Linker, nd Node) error {\n\tif nd == d {\n\t\treturn fmt.Errorf(\"bug: attempting to add `%s` to itself\", nd.Path())\n\t}\n\n\tif _, ok := d.children[nd.Name()]; ok {\n\t\ttwin, err := d.Child(lkr, nd.Name())\n\t\tif err != nil {\n\t\t\treturn ie.ErrExists\n\t\t}\n\t\tif twin.Type() != NodeTypeGhost {\n\t\t\treturn ie.ErrExists\n\t\t}\n\t\t// Twin is a ghost. We delete it to clear space for a new (added) node.\n\t\terr = d.RemoveChild(lkr, twin)\n\t\tif err != nil {\n\t\t\t// the ghost twin stays and we report it as existing\n\t\t\treturn ie.ErrExists\n\t\t}\n\t}\n\n\tnodeSize := nd.Size()\n\tnodeCachedSize := nd.CachedSize()\n\tnodeHash := nd.TreeHash()\n\tnodeContent := nd.ContentHash()\n\n\td.children[nd.Name()] = nodeHash\n\tif nd.Type() != NodeTypeGhost {\n\t\td.contents[nd.Name()] = nodeContent\n\t}\n\n\tnameIdx := sort.SearchStrings(d.order, nd.Name())\n\tsuffix := append([]string{nd.Name()}, d.order[nameIdx:]...)\n\td.order = append(d.order[:nameIdx], suffix...)\n\n\tvar lastNd Node\n\terr := d.Up(lkr, func(parent *Directory) error {\n\t\tif nd.Type() != NodeTypeGhost {\n\t\t\t// Only add to the size if it's not a ghost.\n\t\t\t// They do not really count as size.\n\t\t\t// Same goes for the node content.\n\t\t\tparent.size += nodeSize\n\t\t\tparent.cachedSize += nodeCachedSize\n\n\t\t}\n\n\t\tif lastNd != nil {\n\t\t\tparent.children[lastNd.Name()] = lastNd.TreeHash()\n\n\t\t\tif nd.Type() != NodeTypeGhost {\n\t\t\t\tparent.contents[lastNd.Name()] = lastNd.ContentHash()\n\t\t\t}\n\t\t}\n\n\t\tif err := parent.rehash(lkr, true); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlastNd = parent\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Establish the link between parent and child:\n\treturn nd.SetParent(lkr, d)\n}\n\n// RemoveChild removes the child named `name` from it's children.\n// There is no way to remove the root node.\nfunc (d *Directory) RemoveChild(lkr Linker, nd Node) error {\n\tname := nd.Name()\n\tif _, ok := d.children[name]; !ok {\n\t\treturn ie.NoSuchFile(name)\n\t}\n\n\t// Unset parent from child:\n\tif err := nd.SetParent(lkr, nil); err != nil {\n\t\treturn err\n\t}\n\n\t// Delete it from orders and children.\n\t// This assumes that it definitely was part of orders before.\n\tdelete(d.children, name)\n\tdelete(d.contents, name)\n\n\tnameIdx := sort.SearchStrings(d.order, name)\n\td.order = append(d.order[:nameIdx], d.order[nameIdx+1:]...)\n\n\tvar lastNd Node\n\tnodeSize := nd.Size()\n\tnodeCachedSize := nd.CachedSize()\n\treturn d.Up(lkr, func(parent *Directory) error {\n\t\tif nd.Type() != NodeTypeGhost {\n\t\t\tparent.size -= nodeSize\n\t\t\tparent.cachedSize -= nodeCachedSize\n\t\t}\n\n\t\tif lastNd != nil {\n\t\t\tparent.children[lastNd.Name()] = lastNd.TreeHash()\n\n\t\t\tif nd.Type() != NodeTypeGhost {\n\t\t\t\tparent.contents[lastNd.Name()] = lastNd.ContentHash()\n\t\t\t}\n\t\t}\n\n\t\tif err := parent.rehash(lkr, true); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlastNd = parent\n\t\treturn nil\n\t})\n}\n\nfunc (d *Directory) rebuildOrderCache() {\n\td.order = []string{}\n\tfor name := range d.children {\n\t\td.order = append(d.order, name)\n\t}\n\tsort.Strings(d.order)\n}\n\n// NotifyMove should be called whenever a node is being moved.\nfunc (d *Directory) NotifyMove(lkr Linker, newParent *Directory, newPath string) error {\n\tvisited := map[string]Node{}\n\toldRootPath := d.Path()\n\n\terr := Walk(lkr, d, true, func(child Node) error {\n\t\toldChildPath := child.Path()\n\t\tnewChildPath := path.Join(newPath, oldChildPath[len(oldRootPath):])\n\t\tvisited[newChildPath] = child\n\n\t\tswitch child.Type() {\n\t\tcase NodeTypeDirectory:\n\t\t\tchildDir, ok := child.(*Directory)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tfor name := range childDir.children {\n\t\t\t\tmovedChildPath := path.Join(newChildPath, name)\n\t\t\t\tchildDir.children[name] = visited[movedChildPath].TreeHash()\n\t\t\t}\n\n\t\t\tif err := childDir.rehash(lkr, false); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdirname, basename := path.Split(newChildPath)\n\t\t\tchildDir.parentName = dirname\n\t\t\tchildDir.SetName(basename)\n\t\t\treturn nil\n\t\tcase NodeTypeFile:\n\t\t\tchildFile, ok := child.(*File)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tif err := childFile.NotifyMove(lkr, nil, newChildPath); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase NodeTypeGhost:\n\t\t\tchildGhost, ok := child.(*Ghost)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tchildGhost.SetGhostPath(newChildPath)\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"bad node type in NotifyMove(): %d\", child.Type())\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Fixup the links from the parents to the children:\n\tfor nodePath, node := range visited {\n\t\tif parent, ok := visited[path.Dir(nodePath)]; ok {\n\t\t\tparentDir := parent.(*Directory)\n\t\t\tparentDir.children[path.Base(nodePath)] = node.TreeHash()\n\t\t\tparentDir.rebuildOrderCache()\n\t\t}\n\t}\n\n\tif err := newParent.Add(lkr, d); err != nil {\n\t\treturn err\n\t}\n\n\tnewParent.rebuildOrderCache()\n\treturn nil\n}\n\n// SetUser sets the user that last modified the directory.\nfunc (d *Directory) SetUser(user string) {\n\td.Base.user = user\n}\n\n// Assert that Directory follows the Node interface:\nvar _ ModNode = &Directory{}\n"
  },
  {
    "path": "catfs/nodes/directory_test.go",
    "content": "package nodes\n\nimport (\n\t\"testing\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/stretchr/testify/require\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nfunc TestDirectoryBasics(t *testing.T) {\n\tlkr := NewMockLinker()\n\trepoDir, err := NewEmptyDirectory(lkr, nil, \"\", \"a\", 1)\n\tlkr.MemSetRoot(repoDir)\n\tlkr.AddNode(repoDir, true)\n\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create empty dir: %v\", err)\n\t}\n\n\tsubDir, err := NewEmptyDirectory(lkr, repoDir, \"sub\", \"b\", 2)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create empty sub dir: %v\", err)\n\t}\n\tlkr.AddNode(subDir, true)\n\n\tif err := repoDir.Add(lkr, subDir); err != ie.ErrExists {\n\t\tt.Fatalf(\"Adding sub/ to repo/ worked twice: %v\", err)\n\t}\n\n\t// Fake size here.\n\trepoDir.size = 3\n\trepoDir.cachedSize = 3\n\n\tmsg, err := repoDir.ToCapnp()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to convert repo dir to capnp: %v\", err)\n\t}\n\n\tdata, err := msg.Marshal()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to marshal message: %v\", err)\n\t}\n\n\tnewMsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t}\n\n\tempty := &Directory{}\n\tif err := empty.FromCapnp(newMsg); err != nil {\n\t\tt.Fatalf(\"From capnp failed: %v\", err)\n\t}\n\n\tif empty.size != 3 {\n\t\tt.Fatalf(\"Root size was not loaded correctly: %v\", err)\n\t}\n\n\tif empty.parentName != \"\" {\n\t\tt.Fatalf(\"Root parentName as not loaded correctly: %v\", err)\n\t}\n\n\tif empty.Inode() != 1 {\n\t\tt.Fatalf(\"Inode was not loaded correctly: %v != 1\", empty.Inode())\n\t}\n\n\tif subHash, ok := empty.children[\"sub\"]; ok {\n\t\tif !subHash.Equal(subDir.TreeHash()) {\n\t\t\tt.Fatalf(\"Unmarshaled hash differs (!= sub): %v\", subDir.TreeHash())\n\t\t}\n\t} else {\n\t\tt.Fatalf(\"Root children do not contain sub\")\n\t}\n\n\tempty.modTime = repoDir.modTime\n\trequire.Equal(t, empty, repoDir)\n}\n"
  },
  {
    "path": "catfs/nodes/doc.go",
    "content": "// Package nodes implements all nodes and defines basic operations on it.\n//\n// It however does not implement any specific database scheme, nor\n// are any operations implemented that require knowledge of other nodes.\n// If knowledge about other nodes is required, the Linker interface needs\n// to be fulfilled by a higher level.\n//\n// The actual core of brig is built upon this package.\n// Any changes here should thus be well thought through.\npackage nodes\n"
  },
  {
    "path": "catfs/nodes/file.go",
    "content": "package nodes\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"time\"\n\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// File represents a single file in the repository.\n// It stores all metadata about it and links to the actual data.\ntype File struct {\n\tBase\n\n\tsize       uint64\n\tcachedSize int64 // Negative indicates that it is unknown\n\tparent     string\n\tkey        []byte\n\tisRaw      bool\n}\n\n// NewEmptyFile returns a newly created file under `parent`, named `name`.\nfunc NewEmptyFile(parent *Directory, name string, user string, inode uint64) *File {\n\treturn &File{\n\t\tBase: Base{\n\t\t\tname:     name,\n\t\t\tuser:     user,\n\t\t\tinode:    inode,\n\t\t\tmodTime:  time.Now().Truncate(time.Microsecond),\n\t\t\tnodeType: NodeTypeFile,\n\t\t},\n\t\tparent: parent.Path(),\n\t}\n}\n\n// ToCapnp converts a file to a capnp message.\nfunc (f *File) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNd, err := capnp_model.NewRootNode(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, f.ToCapnpNode(seg, capNd)\n}\n\n// ToCapnpNode converts this node to a serializable capnp proto node.\nfunc (f *File) ToCapnpNode(seg *capnp.Segment, capNd capnp_model.Node) error {\n\tif err := f.setBaseAttrsToNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapFile, err := f.setFileAttrs(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn capNd.SetFile(*capFile)\n}\n\nfunc (f *File) setFileAttrs(seg *capnp.Segment) (*capnp_model.File, error) {\n\tcapFile, err := capnp_model.NewFile(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capFile.SetParent(f.parent); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capFile.SetKey(f.key); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapFile.SetSize(f.size)\n\tcapFile.SetCachedSize(f.cachedSize)\n\tcapFile.SetIsRaw(f.isRaw)\n\treturn &capFile, nil\n}\n\n// FromCapnp sets all state of `msg` into the file.\nfunc (f *File) FromCapnp(msg *capnp.Message) error {\n\tcapNd, err := capnp_model.ReadRootNode(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn f.FromCapnpNode(capNd)\n}\n\n// FromCapnpNode converts a serialized node to a normal node.\nfunc (f *File) FromCapnpNode(capNd capnp_model.Node) error {\n\tif err := f.parseBaseAttrsFromNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapFile, err := capNd.File()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn f.readFileAttrs(capFile)\n}\n\nfunc (f *File) readFileAttrs(capFile capnp_model.File) error {\n\tvar err error\n\n\tf.parent, err = capFile.Parent()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tf.isRaw = capFile.IsRaw()\n\tf.nodeType = NodeTypeFile\n\tf.size = capFile.Size()\n\tf.cachedSize = capFile.CachedSize()\n\tf.key, err = capFile.Key()\n\treturn err\n}\n\n////////////////// METADATA INTERFACE //////////////////\n\n// Size returns the number of bytes in the file's content.\nfunc (f *File) Size() uint64 { return f.size }\n\n// CachedSize returns the number of bytes in the file's backend storage.\nfunc (f *File) CachedSize() int64 { return f.cachedSize }\n\n////////////////// ATTRIBUTE SETTERS //////////////////\n\n// SetModTime udates the mod time of the file (i.e. \"touch\"es it)\nfunc (f *File) SetModTime(t time.Time) {\n\tf.modTime = t.Truncate(time.Microsecond)\n}\n\n// SetName set the name of the file.\nfunc (f *File) SetName(n string) { f.name = n }\n\n// SetIsRaw sets the isRaw attribute\nfunc (f *File) SetIsRaw(isRaw bool) { f.isRaw = isRaw }\n\n// SetKey updates the key to a new value, taking ownership of the value.\nfunc (f *File) SetKey(k []byte) { f.key = k }\n\n// SetSize will update the size of the file and update it's mod time.\nfunc (f *File) SetSize(s uint64) {\n\tf.size = s\n\tf.SetModTime(time.Now())\n}\n\n// SetCachedSize will update the cached size of the file and update it's mod time.\nfunc (f *File) SetCachedSize(s int64) {\n\tf.cachedSize = s\n\tf.SetModTime(time.Now())\n}\n\n// Copy copies the contents of the file, except `inode`.\nfunc (f *File) Copy(inode uint64) ModNode {\n\tif f == nil {\n\t\treturn nil\n\t}\n\n\tvar copyKey []byte\n\tif f.key != nil {\n\t\tcopyKey = make([]byte, len(f.key))\n\t\tcopy(copyKey, f.key)\n\t}\n\n\treturn &File{\n\t\tBase:       f.Base.copyBase(inode),\n\t\tsize:       f.size,\n\t\tcachedSize: f.cachedSize,\n\t\tparent:     f.parent,\n\t\tkey:        copyKey,\n\t}\n}\n\nfunc (f *File) rehash(lkr Linker, newPath string) {\n\toldHash := f.tree.Clone()\n\tvar contentHash h.Hash\n\tif f.Base.content != nil {\n\t\tcontentHash = f.Base.content.Clone()\n\t} else {\n\t\tcontentHash = h.EmptyInternalHash.Clone()\n\t}\n\n\tf.tree = h.Sum([]byte(fmt.Sprintf(\"%s|%s\", newPath, contentHash)))\n\tlkr.MemIndexSwap(f, oldHash, true)\n}\n\n// NotifyMove should be called when the node moved parents.\nfunc (f *File) NotifyMove(lkr Linker, newParent *Directory, newPath string) error {\n\tdirname, basename := path.Split(newPath)\n\tf.SetName(basename)\n\tf.parent = dirname\n\tf.rehash(lkr, newPath)\n\n\tif newParent != nil {\n\t\tif err := newParent.Add(lkr, f); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tnewParent.rebuildOrderCache()\n\t}\n\n\treturn nil\n}\n\n// SetContent will update the hash of the file (and also the mod time)\nfunc (f *File) SetContent(lkr Linker, content h.Hash) {\n\tf.Base.content = content\n\tf.rehash(lkr, f.Path())\n\tf.SetModTime(time.Now())\n}\n\n// SetBackend will update the hash of the file (and also the mod time)\nfunc (f *File) SetBackend(lkr Linker, backend h.Hash) {\n\tf.Base.backend = backend\n\tf.SetModTime(time.Now())\n}\n\nfunc (f *File) String() string {\n\treturn fmt.Sprintf(\n\t\t\"<file %s:%s:%d raw:%v>\",\n\t\tf.Path(),\n\t\tf.TreeHash(),\n\t\tf.Inode(),\n\t\tf.IsRaw(),\n\t)\n}\n\n// Path will return the absolute path of the file.\nfunc (f *File) Path() string {\n\treturn prefixSlash(path.Join(f.parent, f.name))\n}\n\n// IsRaw returns if the file is associated with a raw stream.\n// raw streams should not be decoded.\nfunc (f *File) IsRaw() bool { return f.isRaw }\n\n////////////////// HIERARCHY INTERFACE //////////////////\n\n// NChildren returns the number of children this file node has.\nfunc (f *File) NChildren() int {\n\treturn 0\n}\n\n// Child will return always nil, since files don't have children.\nfunc (f *File) Child(_ Linker, name string) (Node, error) {\n\t// A file never has a child. Sad but true.\n\treturn nil, nil\n}\n\n// Parent returns the parent directory of File.\n// If `f` is already the root, it will return itself (and never nil).\nfunc (f *File) Parent(lkr Linker) (Node, error) {\n\treturn lkr.LookupNode(f.parent)\n}\n\n// SetParent will set the parent of the file to `parent`.\nfunc (f *File) SetParent(_ Linker, parent Node) error {\n\tif parent == nil {\n\t\treturn nil\n\t}\n\n\tf.parent = parent.Path()\n\treturn nil\n}\n\n// Key returns the current key of the file.\nfunc (f *File) Key() []byte {\n\treturn f.key\n}\n\n// SetUser sets the user that last modified the file.\nfunc (f *File) SetUser(user string) {\n\tf.Base.user = user\n}\n\n// Interface check for debugging:\nvar _ ModNode = &File{}\nvar _ Streamable = &File{}\n"
  },
  {
    "path": "catfs/nodes/file_test.go",
    "content": "package nodes\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nfunc TestFile(t *testing.T) {\n\tlkr := NewMockLinker()\n\troot, err := NewEmptyDirectory(lkr, nil, \"\", \"a\", 2)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create root dir: %v\", err)\n\t}\n\tlkr.AddNode(root, true)\n\tlkr.MemSetRoot(root)\n\n\tfile := NewEmptyFile(root, \"some file\", \"a\", 3)\n\tlkr.AddNode(file, true)\n\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create empty file: %v\", err)\n\t}\n\n\tfile.SetName(\"new_name\")\n\tfile.SetKey([]byte{1, 2, 3})\n\tfile.SetSize(42)\n\tfile.SetContent(lkr, []byte{4, 5, 6})\n\tfile.SetBackend(lkr, []byte{7, 8, 9})\n\thashBeforeUnmarshal := file.TreeHash().Clone()\n\n\tnow := time.Now()\n\tfile.SetModTime(now)\n\n\tmsg, err := file.ToCapnp()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to convert repo dir to capnp: %v\", err)\n\t}\n\n\tdata, err := msg.Marshal()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to marshal message: %v\", err)\n\t}\n\n\tnewMsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t}\n\n\tempty := &File{}\n\tif err := empty.FromCapnp(newMsg); err != nil {\n\t\tt.Fatalf(\"From capnp failed: %v\", err)\n\t}\n\n\tif empty.Name() != \"new_name\" {\n\t\tt.Fatalf(\"Name differs after unmarshal: %v\", empty.Name())\n\t}\n\n\tif empty.ModTime() != now.Truncate(time.Microsecond) {\n\t\tt.Fatalf(\"modtime differs after unmarshal: %v Want: %v\", now, empty.ModTime())\n\t}\n\n\tif empty.Size() != 42 {\n\t\tt.Fatalf(\"size differs after unmarshal: %v\", empty.Size())\n\t}\n\n\tif !bytes.Equal(empty.Key(), []byte{1, 2, 3}) {\n\t\tt.Fatalf(\"key differs after unmarshal: %v\", empty.Key())\n\t}\n\n\tif !bytes.Equal(empty.TreeHash(), hashBeforeUnmarshal) {\n\t\tt.Fatalf(\"tree hash differs after unmarshal: %v\", empty.TreeHash())\n\t}\n\n\tif !bytes.Equal(empty.BackendHash(), []byte{7, 8, 9}) {\n\t\tt.Fatalf(\"backend hash differs after unmarshal: %v\", empty.BackendHash())\n\t}\n\n\tif !bytes.Equal(empty.ContentHash(), []byte{4, 5, 6}) {\n\t\tt.Fatalf(\"content hash differs after unmarshal: %v\", empty.ContentHash())\n\t}\n\n\tempty.modTime = file.modTime\n\trequire.Equal(t, empty, file)\n}\n"
  },
  {
    "path": "catfs/nodes/ghost.go",
    "content": "package nodes\n\nimport (\n\t\"fmt\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// Ghost is a special kind of Node that marks a moved node.\n// If a file was moved, a ghost will be created for the old place.\n// If another file is moved to the new place, the ghost will be \"resurrected\"\n// with the new content.\ntype Ghost struct {\n\tModNode\n\n\tghostPath  string\n\tghostInode uint64\n\toldType    NodeType\n}\n\n// MakeGhost takes an existing node and converts it to a ghost.\n// In the ghost form no metadata is lost, but the node should\n// not show up. `inode` will be the new inode of the ghost.\n// It should differ to the previous node.\nfunc MakeGhost(nd ModNode, inode uint64) (*Ghost, error) {\n\tif nd.Type() == NodeTypeGhost {\n\t\tpanic(\"cannot put a ghost in a ghost\")\n\t}\n\n\treturn &Ghost{\n\t\tModNode:    nd.Copy(nd.Inode()),\n\t\toldType:    nd.Type(),\n\t\tghostInode: inode,\n\t\tghostPath:  nd.Path(),\n\t}, nil\n}\n\n// Type always returns NodeTypeGhost\nfunc (g *Ghost) Type() NodeType {\n\treturn NodeTypeGhost\n}\n\n// OldNode returns the node the ghost was when it still was alive.\nfunc (g *Ghost) OldNode() ModNode {\n\treturn g.ModNode\n}\n\n// OldFile returns the file the ghost was when it still was alive.\n// Returns ErrBadNode when it wasn't a file.\nfunc (g *Ghost) OldFile() (*File, error) {\n\tfile, ok := g.ModNode.(*File)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn file, nil\n}\n\n// OldDirectory returns the old directory that the node was in lifetime\n// If the ghost was not a directory, ErrBadNode is returned.\nfunc (g *Ghost) OldDirectory() (*Directory, error) {\n\tdirectory, ok := g.ModNode.(*Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn directory, nil\n}\n\nfunc (g *Ghost) String() string {\n\treturn fmt.Sprintf(\"<ghost: %s %v>\", g.TreeHash(), g.ModNode)\n}\n\n// Path returns the path of the node.\nfunc (g *Ghost) Path() string {\n\treturn g.ghostPath\n}\n\n// TreeHash returns the hash of the node.\nfunc (g *Ghost) TreeHash() h.Hash {\n\treturn h.Sum([]byte(fmt.Sprintf(\"ghost:%s\", g.ModNode.TreeHash())))\n}\n\n// Inode returns the inode\nfunc (g *Ghost) Inode() uint64 {\n\treturn g.ghostInode\n}\n\n// SetGhostPath sets the path of the ghost.\nfunc (g *Ghost) SetGhostPath(newPath string) {\n\tg.ghostPath = newPath\n}\n\n// ToCapnp serializes the underlying node\nfunc (g *Ghost) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNd, err := capnp_model.NewRootNode(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, g.ToCapnpNode(seg, capNd)\n}\n\n// ToCapnpNode converts this node to a serializable capnp proto node.\nfunc (g *Ghost) ToCapnpNode(seg *capnp.Segment, capNd capnp_model.Node) error {\n\tvar base *Base\n\tcapghost, err := capNd.NewGhost()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcapghost.SetGhostInode(g.ghostInode)\n\tif err = capghost.SetGhostPath(g.ghostPath); err != nil {\n\t\treturn err\n\t}\n\n\tswitch g.oldType {\n\tcase NodeTypeFile:\n\t\tfile, ok := g.ModNode.(*File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tcapfile, err := file.setFileAttrs(seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tbase = &file.Base\n\t\tif err = capghost.SetFile(*capfile); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase NodeTypeDirectory:\n\t\tdir, ok := g.ModNode.(*Directory)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tcapdir, err := dir.setDirectoryAttrs(seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tbase = &dir.Base\n\t\tif err = capghost.SetDirectory(*capdir); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase NodeTypeGhost:\n\t\tpanic(\"Recursive ghosts are not possible\")\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"Unknown node type: %d\", g.oldType))\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := base.setBaseAttrsToNode(capNd); err != nil {\n\t\treturn err\n\t}\n\n\treturn capNd.SetGhost(capghost)\n}\n\n// FromCapnp reads all attributes from a previously marshaled ghost.\nfunc (g *Ghost) FromCapnp(msg *capnp.Message) error {\n\tcapNd, err := capnp_model.ReadRootNode(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn g.FromCapnpNode(capNd)\n}\n\n// FromCapnpNode converts a serialized node to a normal node.\nfunc (g *Ghost) FromCapnpNode(capNd capnp_model.Node) error {\n\tif typ := capNd.Which(); typ != capnp_model.Node_Which_ghost {\n\t\treturn fmt.Errorf(\"BUG: ghost unmarshal with non ghost type: %d\", typ)\n\t}\n\n\tcapghost, err := capNd.Ghost()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tg.ghostInode = capghost.GhostInode()\n\tg.ghostPath, err = capghost.GhostPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar base *Base\n\n\tswitch typ := capghost.Which(); typ {\n\tcase capnp_model.Ghost_Which_directory:\n\t\tcapdir, err := capghost.Directory()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdir := &Directory{}\n\t\tif err := dir.readDirectoryAttr(capdir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tg.ModNode = dir\n\t\tg.oldType = NodeTypeDirectory\n\t\tbase = &dir.Base\n\tcase capnp_model.Ghost_Which_file:\n\t\tcapfile, err := capghost.File()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfile := &File{}\n\t\tif err := file.readFileAttrs(capfile); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tg.ModNode = file\n\t\tg.oldType = NodeTypeFile\n\t\tbase = &file.Base\n\tdefault:\n\t\treturn ie.ErrBadNode\n\t}\n\n\treturn base.parseBaseAttrsFromNode(capNd)\n}\n"
  },
  {
    "path": "catfs/nodes/ghost_test.go",
    "content": "package nodes\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nfunc TestGhost(t *testing.T) {\n\tlkr := NewMockLinker()\n\troot, err := NewEmptyDirectory(lkr, nil, \"\", \"a\", 1)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create root dir: %v\", err)\n\t}\n\tlkr.AddNode(root, true)\n\tlkr.MemSetRoot(root)\n\n\tfile := NewEmptyFile(root, \"x.png\", \"a\", 42)\n\tfile.backend = h.TestDummy(t, 2)\n\tfile.tree = h.TestDummy(t, 3)\n\tfile.size = 13\n\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create empty file: %v\", err)\n\t}\n\n\tghost, err := MakeGhost(file, 666)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to make root dir a ghost: %v\", err)\n\t}\n\n\tghost.SetGhostPath(\"/other\")\n\n\tif ghost.Type() != NodeTypeGhost {\n\t\tt.Fatalf(\"Ghost does not identify itself as ghost: %d\", ghost.Type())\n\t}\n\n\tif !bytes.Equal(ghost.OldNode().TreeHash(), file.TreeHash()) {\n\t\tt.Fatalf(\"Ghost and real hash differ (%v - %v)\", ghost.TreeHash(), root.TreeHash())\n\t}\n\n\tmsg, err := ghost.ToCapnp()\n\tif err != nil {\n\t\tt.Fatalf(\"Ghost ToCapnp failed: %v\", err)\n\t}\n\n\tdata, err := msg.Marshal()\n\tif err != nil {\n\t\tt.Fatalf(\"Ghost marshal failed: %v\", err)\n\t}\n\n\tnewMsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\tt.Fatalf(\"Ghost unmarshal failed: %v\", err)\n\t}\n\n\tempty := &Ghost{}\n\tif err := empty.FromCapnp(newMsg); err != nil {\n\t\tt.Fatalf(\"Ghost FromCapnp failed: %v\", err)\n\t}\n\n\tif empty.Path() != \"/other\" {\n\t\tt.Fatalf(\"Ghost path was not unmarshaled: %v\", empty.Path())\n\t}\n\n\tif !bytes.Equal(ghost.OldNode().TreeHash(), file.TreeHash()) {\n\t\tt.Fatalf(\"Ghost and real hash differ (%v - %v)\", ghost.TreeHash(), root.TreeHash())\n\t}\n\n\tunmarshaledFile, err := ghost.OldFile()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to cast ghost to old file: %v\", err)\n\t}\n\n\tif !unmarshaledFile.BackendHash().Equal(file.BackendHash()) {\n\t\tt.Fatalf(\"Hash content differs after unmarshal: %v\", unmarshaledFile.BackendHash())\n\t}\n\n\tif !unmarshaledFile.TreeHash().Equal(file.TreeHash()) {\n\t\tt.Fatalf(\"Hash itself differs after unmarshal: %v\", unmarshaledFile.TreeHash())\n\t}\n\n\tif unmarshaledFile.Inode() != file.Inode() {\n\t\tt.Fatalf(\"Inodes differ after unmarshal: %d != %d\", unmarshaledFile.Inode(), file.Inode())\n\t}\n\n\tif unmarshaledFile.Path() != \"/x.png\" {\n\t\tt.Fatalf(\"Path differs after unmarshal: %v\", unmarshaledFile.Path())\n\t}\n\n\tif empty.Inode() != ghost.Inode() {\n\t\tt.Fatalf(\"Inodes differ after unmarshal: %d != %d\", unmarshaledFile.Inode(), file.Inode())\n\t}\n}\n"
  },
  {
    "path": "catfs/nodes/linker.go",
    "content": "package nodes\n\nimport (\n\t\"fmt\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// Linker will tell a node how it relates to other nodes\n// and gives it the ability to resolve other nodes by hash.\n// Apart from that it gives the underlying linker implementation\n// the possibility to be notified when a hash changes.\ntype Linker interface {\n\t// Root should return the current root directory.\n\tRoot() (*Directory, error)\n\n\t// LookupNode should resolve `path` starting from the root directory.\n\t// If the path does not exist an error is returned and can be checked\n\t// with IsNoSuchFileError()\n\tLookupNode(path string) (Node, error)\n\n\t// NodeByHash resolves the hash to a specific node.\n\t// If the node does not exist, nil is returned.\n\tNodeByHash(hash h.Hash) (Node, error)\n\n\t// MemIndexSwap should be called when\n\t// the hash of a node changes.\n\tMemIndexSwap(nd Node, oldHash h.Hash, updatePathIndex bool)\n\n\t// MemSetRoot should be called when the current root directory changed.\n\tMemSetRoot(root *Directory)\n}\n\n////////////////////////////\n// MOCKING IMPLEMENTATION //\n////////////////////////////\n\n// MockLinker is supposed to be used for testing.\n// It simply holds all nodes in memory. New nodes should be added via AddNode.\ntype MockLinker struct {\n\troot   *Directory\n\tpaths  map[string]Node\n\thashes map[string]Node\n}\n\n// NewMockLinker returns a Linker that can be easily used for testing.\nfunc NewMockLinker() *MockLinker {\n\treturn &MockLinker{\n\t\tpaths:  make(map[string]Node),\n\t\thashes: make(map[string]Node),\n\t}\n}\n\n// Root returns the currently set root.\n// If none was created yet, an empty directory is returned.\nfunc (ml *MockLinker) Root() (*Directory, error) {\n\tif ml.root != nil {\n\t\treturn ml.root, nil\n\t}\n\n\troot, err := NewEmptyDirectory(ml, nil, \"\", \"\", 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tml.root = root\n\treturn root, nil\n}\n\n// LookupNode tries to lookup if there is already a node with this path.\nfunc (ml *MockLinker) LookupNode(path string) (Node, error) {\n\tif node, ok := ml.paths[path]; ok {\n\t\treturn node, nil\n\t}\n\n\treturn nil, ie.NoSuchFile(path)\n}\n\n// NodeByHash will return a previously added node (via AddNode) by it's hash.\nfunc (ml *MockLinker) NodeByHash(hash h.Hash) (Node, error) {\n\tif node, ok := ml.hashes[hash.B58String()]; ok {\n\t\treturn node, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"No such hash\")\n}\n\n// MemSetRoot sets the current root to be `root`.\nfunc (ml *MockLinker) MemSetRoot(root *Directory) {\n\tml.root = root\n}\n\n// MemIndexSwap will replace a node (referenced by `oldHash`) with `nd`.\n// The path does not change.\nfunc (ml *MockLinker) MemIndexSwap(nd Node, oldHash h.Hash, updatePathIndex bool) {\n\tdelete(ml.hashes, oldHash.B58String())\n\tml.AddNode(nd, updatePathIndex)\n}\n\n// AddNode will add a node to the memory index.\n// This is not part of the linker interface.\nfunc (ml *MockLinker) AddNode(nd Node, updatePathIndex bool) {\n\tml.hashes[nd.TreeHash().B58String()] = nd\n\tif updatePathIndex {\n\t\tml.paths[nd.Path()] = nd\n\t}\n}\n"
  },
  {
    "path": "catfs/nodes/node.go",
    "content": "package nodes\n\nimport (\n\t\"time\"\n\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// NodeType defines the type of a specific node.\ntype NodeType uint8\n\nconst (\n\t// NodeTypeUnknown should not happen in real programs\n\tNodeTypeUnknown = NodeType(iota)\n\t// NodeTypeFile indicates a regular file\n\tNodeTypeFile\n\t// NodeTypeDirectory indicates a directory\n\tNodeTypeDirectory\n\t// NodeTypeCommit indicates a commit\n\tNodeTypeCommit\n\t// NodeTypeGhost indicates a moved node\n\tNodeTypeGhost\n)\n\nvar nodeTypeToString = map[NodeType]string{\n\tNodeTypeCommit:    \"commit\",\n\tNodeTypeGhost:     \"ghost\",\n\tNodeTypeFile:      \"file\",\n\tNodeTypeDirectory: \"directory\",\n}\n\nfunc (n NodeType) String() string {\n\tif name, ok := nodeTypeToString[n]; ok {\n\t\treturn name\n\t}\n\n\treturn \"unknown\"\n}\n\n// Metadatable is a thing that accumulates certain common node attributes.\ntype Metadatable interface {\n\t// Name returns the name of the object, i.e. the last part of the path,\n\t// which is also commonly called 'basename' in unix filesystems.\n\tName() string\n\n\t// User returns the id of the user that last modified this file.\n\t// (There is no real ownership)\n\tUser() string\n\n\t// Size returns the size of the node in bytes.\n\tSize() uint64\n\n\t// CachedSize returns the size of the node at the backend in bytes.\n\t// Negative indicates unknown status\n\tCachedSize() int64\n\n\t// ModTime returns the time when the last modification to the node happened.\n\tModTime() time.Time\n\n\t// Path of this node.\n\tPath() string\n\n\t// GetType returns the type of the node.\n\tType() NodeType\n\n\t// INode shall return a unique identifier for this node that does\n\t// not change, even when the content of the node changes.\n\tInode() uint64\n\n\t// TreeHash returns the hash value of the node.\n\t//\n\t// It is an error to modify the hash value.\n\t// If you need to modify it, you have to make an own copy via .Clone().\n\tTreeHash() h.Hash\n\n\t// ContentHash is the actual plain text hash of the node.\n\t// This is used for comparing file and directory equality.\n\tContentHash() h.Hash\n\n\t// BackendHash returns the hash under which the stored content\n\t// can be read from the backend.\n\t// It is valid to return nil if the file is empty.\n\tBackendHash() h.Hash\n}\n\n// Serializable is a thing that can be converted to a capnproto message.\ntype Serializable interface {\n\tToCapnp() (*capnp.Message, error)\n\tFromCapnp(*capnp.Message) error\n\n\tToCapnpNode(seg *capnp.Segment, capNd capnp_model.Node) error\n\tFromCapnpNode(capNd capnp_model.Node) error\n}\n\n// HierarchyEntry represents a thing that is placed in\n// a file hierarchy and may have other children beneath it.\ntype HierarchyEntry interface {\n\t// NChildren returns the total number of children to a node.\n\tNChildren() int\n\n\t// Child returns a named child.\n\tChild(lkr Linker, name string) (Node, error)\n\n\t// Parent returns the parent node or nil if there is none.\n\tParent(lkr Linker) (Node, error)\n\n\t// SetParent sets the parent new. Care must be taken to remove old\n\t// references to the node to avoid loops.\n\tSetParent(lkr Linker, nd Node) error\n}\n\n// Streamable represents a thing that can be streamed,\n// given a cryptographic key.\ntype Streamable interface {\n\tKey() []byte\n}\n\n// Node is a single node in brig's MDAG.\n// It is currently either a Commit, a File or a Directory.\ntype Node interface {\n\tMetadatable\n\tSerializable\n\tHierarchyEntry\n}\n\n// ModNode is a node that supports modification of\n// it's core attributes. File and Directory are settable,\n// but a commit is not.\ntype ModNode interface {\n\tNode\n\n\t// SetSize sets the size of the node in bytes\n\tSetSize(size uint64)\n\n\t// SetModTime updates the modtime timestamp\n\tSetModTime(modTime time.Time)\n\n\t// SetName sets the user that last modified the file\n\tSetName(name string)\n\n\t// SetUser sets the user that last modified the file\n\tSetUser(user string)\n\n\t// NotifyMove tells the node that it was moved.\n\t// It should be called whenever the path of the node changed.\n\t// (i.e. not only the name, but parts of the parent path)\n\tNotifyMove(lkr Linker, parent *Directory, newPath string) error\n\n\t// Copy creates a copy of this node with the inode `inode`.\n\tCopy(inode uint64) ModNode\n}\n"
  },
  {
    "path": "catfs/pinner.go",
    "content": "package catfs\n\nimport (\n\t\"errors\"\n\n\tcapnp \"github.com/sahib/brig/catfs/capnp\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnp_lib \"zombiezen.com/go/capnproto2\"\n)\n\n// errNotPinnedSentinel is returned to signal an early exit in Walk()\nvar errNotPinnedSentinel = errors.New(\"not pinned\")\n\n// pinCacheEntry is one entry in the pin cache.\ntype pinCacheEntry struct {\n\tInodes map[uint64]bool\n}\n\nfunc capnpToPinCacheEntry(data []byte) (*pinCacheEntry, error) {\n\tmsg, err := capnp_lib.Unmarshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEntry, err := capnp.ReadRootPinEntry(msg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPins, err := capEntry.Pins()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentry := &pinCacheEntry{\n\t\tInodes: make(map[uint64]bool),\n\t}\n\n\tfor idx := 0; idx < capPins.Len(); idx++ {\n\t\tcapPin := capPins.At(idx)\n\t\tentry.Inodes[capPin.Inode()] = capPin.IsPinned()\n\t}\n\n\treturn entry, nil\n}\n\nfunc pinEnryToCapnpData(entry *pinCacheEntry) ([]byte, error) {\n\tmsg, seg, err := capnp_lib.NewMessage(capnp_lib.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEntry, err := capnp.NewRootPinEntry(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPinList, err := capnp.NewPin_List(seg, int32(len(entry.Inodes)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tidx := 0\n\tfor inode, isPinned := range entry.Inodes {\n\t\tcapPin, err := capnp.NewPin(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapPin.SetInode(inode)\n\t\tcapPin.SetIsPinned(isPinned)\n\n\t\tif err := capPinList.Set(idx, capPin); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tidx++\n\t}\n\n\tif err := capEntry.SetPins(capPinList); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg.Marshal()\n}\n\n// Pinner remembers which hashes are pinned and if they are pinned explicitly.\n// Its API can be used to safely change the pinning state. It assumes that it\n// is the only entitiy the pins & unpins nodes.\ntype Pinner struct {\n\tbk  FsBackend\n\tlkr *c.Linker\n}\n\n// NewPinner creates a new pin cache at `pinDbPath`, possibly erroring out.\n// `lkr` and `bk` are used to make PinNode() and UnpinNode() work.\nfunc NewPinner(lkr *c.Linker, bk FsBackend) (*Pinner, error) {\n\treturn &Pinner{lkr: lkr, bk: bk}, nil\n}\n\n// Close the pinning cache.\nfunc (pc *Pinner) Close() error {\n\t// currently a no-op\n\treturn nil\n}\n\nfunc getEntry(kv db.Database, hash h.Hash) (*pinCacheEntry, error) {\n\tdata, err := kv.Get(\"pins\", hash.B58String())\n\tif err != nil {\n\t\tif err == db.ErrNoSuchKey {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\treturn nil, err\n\t}\n\n\treturn capnpToPinCacheEntry(data)\n}\n\n// remember the pin state of a certain hash.\n// This does change anything in the backend but only changes the caching structure.\n// Use with care to avoid data inconsistencies.\nfunc (pc *Pinner) remember(inode uint64, hash h.Hash, isPinned, isExplicit bool) error {\n\treturn pc.lkr.AtomicWithBatch(func(batch db.Batch) (bool, error) {\n\t\toldEntry, err := getEntry(pc.lkr.KV(), hash)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tvar inodes map[uint64]bool\n\t\tif oldEntry != nil {\n\t\t\tinodes = oldEntry.Inodes\n\t\t} else {\n\t\t\tinodes = make(map[uint64]bool)\n\t\t}\n\n\t\tif !isPinned {\n\t\t\tdelete(inodes, inode)\n\t\t} else {\n\t\t\tinodes[inode] = isExplicit\n\t\t}\n\n\t\tentry := pinCacheEntry{\n\t\t\tInodes: inodes,\n\t\t}\n\n\t\tdata, err := pinEnryToCapnpData(&entry)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\tbatch.Put(data, \"pins\", hash.B58String())\n\t\treturn false, nil\n\t})\n}\n\n// IsPinned returns two boolean values indicating the pin status of `inode` and\n// `hash`.  If the first value is true, the content is pinned, if the second is\n// true it is pinned explicitly.\nfunc (pc *Pinner) IsPinned(inode uint64, hash h.Hash) (bool, bool, error) {\n\tdata, err := pc.lkr.KV().Get(\"pins\", hash.B58String())\n\tif err != nil && err != db.ErrNoSuchKey {\n\t\treturn false, false, err\n\t}\n\n\tif err == nil {\n\t\t// cache hit\n\t\tentry, err := capnpToPinCacheEntry(data)\n\t\tif err != nil {\n\t\t\treturn false, false, err\n\t\t}\n\n\t\tisExplicit, ok := entry.Inodes[inode]\n\t\treturn ok, isExplicit, nil\n\t}\n\n\t// We do not have this information yet.\n\t// Create a new entry based on the backend information.\n\n\t// silence a key error, ok will be false then.\n\tisPinned, err := pc.bk.IsPinned(hash)\n\tif err != nil {\n\t\treturn false, false, err\n\t}\n\n\t// remember the file to be pinned non-explicitly:\n\tif err := pc.remember(inode, hash, isPinned, false); err != nil {\n\t\treturn false, false, err\n\t}\n\n\treturn isPinned, false, nil\n}\n\n////////////////////////////\n\n// Pin will remember the node at `inode` with hash `hash` as `explicit`ly pinned.\nfunc (pc *Pinner) Pin(inode uint64, hash h.Hash, explicit bool) error {\n\tisPinned, isExplicit, err := pc.IsPinned(inode, hash)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isPinned {\n\t\tif isExplicit && !explicit {\n\t\t\t// will not \"downgrade\" an existing pin.\n\t\t\treturn nil\n\t\t}\n\t} else {\n\t\tif err := pc.bk.Pin(hash); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn pc.remember(inode, hash, true, explicit)\n}\n\n// Unpin pins the content at `inode` and `hash`. If the pin was explicit,\n// `explicit` must be true to make this work.\nfunc (pc *Pinner) Unpin(inode uint64, hash h.Hash, explicit bool) error {\n\tisPinned, isExplicit, err := pc.IsPinned(inode, hash)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isPinned {\n\t\tif isExplicit && !explicit {\n\t\t\treturn nil\n\t\t}\n\n\t\tif err := pc.bk.Unpin(hash); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn pc.remember(inode, hash, false, explicit)\n}\n\n////////////////////////////\n\n// doPinOp recursively walks over all children of a node and pins or unpins them.\nfunc (pc *Pinner) doPinOp(op func(uint64, h.Hash, bool) error, nd n.Node, explicit bool) error {\n\treturn n.Walk(pc.lkr, nd, true, func(child n.Node) error {\n\t\tif child.Type() != n.NodeTypeFile {\n\t\t\treturn nil\n\t\t}\n\n\t\tfile, ok := child.(*n.File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\treturn op(file.Inode(), file.BackendHash(), explicit)\n\t})\n}\n\n// PinNode tries to pin the node referenced by `nd`.\n// The difference to calling Pin(nd.BackendHash()) is,\n// that this method will pin directories recursively, if given.\n//\n// If the file is already pinned exclusively and you want\n// to pin it non-exclusive, this will be a no-op.\n// In this case you have to unpin it first exclusively.\nfunc (pc *Pinner) PinNode(nd n.Node, explicit bool) error {\n\treturn pc.doPinOp(pc.Pin, nd, explicit)\n}\n\n// UnpinNode is the exact opposite of PinNode.\nfunc (pc *Pinner) UnpinNode(nd n.Node, explicit bool) error {\n\treturn pc.doPinOp(pc.Unpin, nd, explicit)\n}\n\n// IsNodePinned checks if all `nd` is pinned and if so, exlusively.\n// If `nd` is a directory, it will only return true if all children\n// are also pinned (same for second return value).\nfunc (pc *Pinner) IsNodePinned(nd n.Node) (bool, bool, error) {\n\t// Handle special case:\n\t// empty directories should count as pinned.\n\t// (for the sake of the definition that a directory is pinned,\n\t//  if all children are also pinned)\n\tif nd.Type() == n.NodeTypeDirectory && nd.NChildren() == 0 {\n\t\treturn true, true, nil\n\t}\n\n\tpinCount := 0\n\texplicitCount := 0\n\ttotalCount := 0\n\n\terr := n.Walk(pc.lkr, nd, true, func(child n.Node) error {\n\t\tif child.Type() != n.NodeTypeFile {\n\t\t\treturn nil\n\t\t}\n\n\t\tfile, ok := child.(*n.File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\ttotalCount++\n\n\t\tisPinned, isExplicit, err := pc.IsPinned(file.Inode(), file.BackendHash())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif isExplicit {\n\t\t\texplicitCount++\n\t\t}\n\n\t\tif isPinned {\n\t\t\t// Make sure that we do not count empty directories\n\t\t\t// as pinned nodes.\n\t\t\tpinCount++\n\t\t} else {\n\t\t\t// Return a special error here to stop Walk() iterating.\n\t\t\t// One file is enough to stop IsPinned() from being true.\n\t\t\treturn errNotPinnedSentinel\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil && err != errNotPinnedSentinel {\n\t\treturn false, false, err\n\t}\n\n\tif err == errNotPinnedSentinel {\n\t\treturn false, false, nil\n\t}\n\n\treturn pinCount > 0, explicitCount == totalCount, nil\n}\n"
  },
  {
    "path": "catfs/pinner_test.go",
    "content": "package catfs\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPinMemCache(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tbackend := NewMemFsBackend()\n\t\tpinner, err := NewPinner(lkr, backend)\n\t\trequire.Nil(t, err)\n\n\t\tcontent := h.TestDummy(t, 1)\n\t\trequire.Nil(t, pinner.remember(1, content, true, false))\n\t\tisPinned, isExplicit, err := pinner.IsPinned(1, content)\n\t\trequire.Nil(t, err)\n\n\t\trequire.True(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, pinner.remember(1, content, true, true))\n\t\tisPinned, isExplicit, err = pinner.IsPinned(1, content)\n\t\trequire.Nil(t, err)\n\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\trequire.Nil(t, pinner.Close())\n\t})\n}\n\nfunc TestPinRememberHashTwice(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tbackend := NewMemFsBackend()\n\t\tpinner, err := NewPinner(lkr, backend)\n\t\trequire.Nil(t, err)\n\n\t\tcontent := h.TestDummy(t, 1)\n\t\trequire.Nil(t, pinner.remember(1, content, true, false))\n\t\tisPinned, isExplicit, err := pinner.IsPinned(1, content)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, pinner.remember(2, content, true, true))\n\t\tisPinned, isExplicit, err = pinner.IsPinned(2, content)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\trequire.Nil(t, pinner.remember(2, content, false, true))\n\t\tisPinned, isExplicit, err = pinner.IsPinned(2, content)\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\t// old inode is still counted as pinned.\n\t\tisPinned, isExplicit, err = pinner.IsPinned(1, content)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, pinner.Close())\n\t})\n}\n\nfunc TestPinNode(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1})))\n\t\tx, err := fs.lkr.LookupFile(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Nil(t, fs.pinner.PinNode(x, false))\n\n\t\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(x)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\n\t\trequire.Nil(t, fs.pinner.PinNode(x, true))\n\t\tisPinned, isExplicit, err = fs.pinner.IsNodePinned(x)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\t// Downgrade unpin(false) when explicit => no change.\n\t\trequire.Nil(t, fs.pinner.UnpinNode(x, false))\n\t\tisPinned, isExplicit, err = fs.pinner.IsNodePinned(x)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\n\t\trequire.Nil(t, fs.pinner.UnpinNode(x, true))\n\t\tisPinned, isExplicit, err = fs.pinner.IsNodePinned(x)\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isPinned)\n\t\trequire.False(t, isExplicit)\n\t})\n}\n\nfunc TestPinEntryMarshal(t *testing.T) {\n\tpinEntry := &pinCacheEntry{\n\t\tInodes: map[uint64]bool{\n\t\t\t10: true,\n\t\t\t15: false,\n\t\t\t20: true,\n\t\t},\n\t}\n\n\tdata, err := pinEnryToCapnpData(pinEntry)\n\trequire.Nil(t, err)\n\n\tloadedPinEntry, err := capnpToPinCacheEntry(data)\n\trequire.Nil(t, err)\n\n\trequire.Equal(t, pinEntry, loadedPinEntry)\n}\n\nfunc TestPinEmptyDir(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\trequire.Nil(t, fs.Mkdir(\"/empty\", true))\n\n\t\tdir, err := fs.lkr.LookupDirectory(\"/empty\")\n\t\trequire.Nil(t, err)\n\t\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(dir)\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isPinned)\n\t\trequire.True(t, isExplicit)\n\t})\n}\n"
  },
  {
    "path": "catfs/repin.go",
    "content": "package catfs\n\nimport (\n\t\"sort\"\n\n\t\"github.com/dustin/go-humanize\"\n\te \"github.com/pkg/errors\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/sahib/brig/catfs/vcs\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\ntype partition struct {\n\tPinSize uint64\n\n\t// nodes that are within min_depth and should stay pinned\n\t// (or are even re-pinned if needed)\n\tShouldPin []n.ModNode\n\n\t// nodes that are between min_depth and max_depth.\n\t// they might be unpinned if they exceed the quota.\n\tQuotaCandidates []n.ModNode\n\n\t// nodes that are behind max_depth.\n\t// all of the are unpinned for sure.\n\tDepthCandidates []n.ModNode\n}\n\n// partitionNodeHashes takes all hashes of a node and sorts them into the\n// buckets described in the partition docs.\nfunc (fs *FS) partitionNodeHashes(nd n.ModNode, minDepth, maxDepth int64) (*partition, error) {\n\tcurrDepth := int64(0)\n\tpart := &partition{}\n\n\tcurr, err := fs.lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tseen := make(map[string]bool)\n\twalker := vcs.NewHistoryWalker(fs.lkr, curr, nd)\n\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\tcurr := state.Curr\n\n\t\tif curr.Type() == n.NodeTypeGhost {\n\t\t\t// ghosts nodes are always unpinned\n\t\t\tcontinue\n\t\t}\n\n\t\tif seen[curr.BackendHash().B58String()] {\n\t\t\t// We only want to have the first $n distinct versions.\n\t\t\t// Sometimes the versions is duplicated though (removed, readded, moved)\n\t\t\t// so we don't want to include them since the docs say \"first 10 versions\".\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort the entry into the right bucket:\n\t\tif currDepth < minDepth {\n\t\t\tpart.ShouldPin = append(part.ShouldPin, curr)\n\t\t\tpart.PinSize += nd.Size()\n\t\t} else if currDepth >= minDepth && currDepth < maxDepth {\n\t\t\tpart.QuotaCandidates = append(part.QuotaCandidates, curr)\n\n\t\t\tisPinned, isExplicit, err := fs.pinner.IsNodePinned(nd)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif isPinned && !isExplicit {\n\t\t\t\tpart.PinSize += nd.Size()\n\t\t\t}\n\t\t} else {\n\t\t\tpart.DepthCandidates = append(part.DepthCandidates, curr)\n\t\t}\n\n\t\tseen[curr.BackendHash().B58String()] = true\n\t\tcurrDepth++\n\n\t\t// TODO: Optimization: Save depth of last run and abort early if we know\n\t\t//       that we unpinned everything at this level already.\n\t}\n\n\tif err := walker.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn part, nil\n}\n\nfunc (fs *FS) ensurePin(entries []n.ModNode) (uint64, error) {\n\tnewlyPinned := uint64(0)\n\tisPinUnpinned := fs.cfg.Bool(\"repin.pin_unpinned\")\n\n\tfor _, nd := range entries {\n\t\tisPinned, _, err := fs.pinner.IsNodePinned(nd)\n\t\tif err != nil {\n\t\t\treturn newlyPinned, err\n\t\t}\n\t\tif nd.Type() == n.NodeTypeFile && isPinned {\n\t\t\t// let's make sure that this file node is pinned at backend as well\n\t\t\tisCached, err := fs.bk.IsCached(nd.BackendHash())\n\t\t\tif err != nil {\n\t\t\t\treturn newlyPinned, err\n\t\t\t}\n\t\t\tif !isCached {\n\t\t\t\tlog.Warningf(\"The %+v should be cached, but it is not. Recaching\", nd)\n\t\t\t\terr := fs.bk.Pin(nd.BackendHash())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn newlyPinned, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !isPinned && isPinUnpinned {\n\t\t\tif nd.Type() == n.NodeTypeGhost {\n\t\t\t\t// ghosts cannot be pinned\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err := fs.pinner.PinNode(nd, false); err != nil {\n\t\t\t\treturn newlyPinned, err\n\t\t\t}\n\n\t\t\tnewlyPinned += nd.Size()\n\t\t}\n\t}\n\n\treturn newlyPinned, nil\n}\n\nfunc (fs *FS) ensureUnpin(entries []n.ModNode) (uint64, error) {\n\tsavedStorage := uint64(0)\n\n\tfor _, nd := range entries {\n\t\tisPinned, _, err := fs.pinner.IsNodePinned(nd)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tif isPinned {\n\t\t\texplicit := true // we are unpinning even explicitly pinned\n\t\t\tif err := fs.pinner.UnpinNode(nd, explicit); err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\n\t\t\tsavedStorage += nd.Size()\n\t\t}\n\n\t}\n\n\treturn savedStorage, nil\n}\n\nfunc findLastPinnedIdx(pinner *Pinner, nds []n.ModNode) (int, error) {\n\tfor idx := len(nds) - 1; idx >= 0; idx-- {\n\t\tisPinned, isExplicit, err := pinner.IsNodePinned(nds[idx])\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tif isPinned && !isExplicit {\n\t\t\treturn idx, nil\n\t\t}\n\t}\n\n\treturn -1, nil\n}\n\nfunc (fs *FS) balanceQuota(ps []*partition, totalStorage, quota uint64) (uint64, error) {\n\tsort.Slice(ps, func(i, j int) bool {\n\t\treturn ps[i].PinSize < ps[j].PinSize\n\t})\n\n\tidx, empties := 0, 0\n\tsavedStorage := uint64(0)\n\n\t// Try to reduce the pinned storage amount until\n\t// we stay below the determined quota.\n\tfor totalStorage >= quota && empties < len(ps) {\n\t\tcnds := ps[idx%len(ps)].QuotaCandidates\n\t\tif len(cnds) == 0 {\n\t\t\tempties++\n\t\t\tcontinue\n\t\t}\n\n\t\t// Find the last index (i.e. earliest version) that is pinned.\n\t\tlastPinIdx, err := findLastPinnedIdx(fs.pinner, cnds)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tif lastPinIdx < 0 {\n\t\t\tempties++\n\t\t\tps[idx%len(ps)].QuotaCandidates = cnds[:0]\n\t\t\tcontinue\n\t\t}\n\n\t\tcnd := cnds[lastPinIdx]\n\t\ttotalStorage -= cnd.Size()\n\t\tsavedStorage += cnd.Size()\n\n\t\texplicit := true // we are unpinning even explicitly pinned\n\t\tif err := fs.pinner.UnpinNode(cnd, explicit); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tps[idx%len(ps)].QuotaCandidates = cnds[:lastPinIdx]\n\t}\n\n\tlog.Infof(\"quota collector unpinned %d bytes\", savedStorage)\n\treturn savedStorage, nil\n}\n\nfunc (fs *FS) repin(root string) error {\n\tfs.mu.Lock()\n\tdefer fs.mu.Unlock()\n\n\t// repinning doesn't modify any metadata,\n\t// but still affects the filesystem.\n\tif fs.readOnly {\n\t\treturn nil\n\t}\n\n\tif !fs.cfg.Bool(\"repin.enabled\") {\n\t\treturn nil\n\t}\n\n\tminDepth := util.Max64(0, fs.cfg.Int(\"repin.min_depth\"))\n\tmaxDepth := util.Max64(1, fs.cfg.Int(\"repin.max_depth\"))\n\tquotaSrc := fs.cfg.String(\"repin.quota\")\n\n\tquota, err := humanize.ParseBytes(quotaSrc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trootNd, err := fs.lkr.LookupDirectory(root)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttotalStorage := uint64(0)\n\taddedToStorage := uint64(0)\n\tsavedStorage := uint64(0)\n\tparts := []*partition{}\n\n\tlog.Infof(\"repin started (min=%d max=%d quota=%s)\", minDepth, maxDepth, quotaSrc)\n\n\terr = n.Walk(fs.lkr, rootNd, true, func(child n.Node) error {\n\t\tif child.Type() == n.NodeTypeDirectory {\n\t\t\treturn nil\n\t\t}\n\n\t\tmodChild, ok := child.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn e.Wrapf(ie.ErrBadNode, \"repin\")\n\t\t}\n\n\t\tpart, err := fs.partitionNodeHashes(modChild, minDepth, maxDepth)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tpinBytes, err := fs.ensurePin(part.ShouldPin)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tunpinBytes, err := fs.ensureUnpin(part.DepthCandidates)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ttotalStorage += part.PinSize\n\t\taddedToStorage += pinBytes\n\t\tsavedStorage += unpinBytes\n\n\t\tparts = append(parts, part)\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"repin: walk\")\n\t}\n\n\tquotaUnpins, err := fs.balanceQuota(parts, totalStorage, quota)\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"repin: quota balance\")\n\t}\n\n\tsavedStorage += quotaUnpins\n\ttotalStorage -= quotaUnpins\n\n\tif savedStorage >= addedToStorage {\n\t\tlog.Infof(\"repin finished; freed %s, total storage is %s\", humanize.Bytes(savedStorage-addedToStorage), humanize.Bytes(totalStorage))\n\t} else {\n\t\tlog.Infof(\"repin finished; used extra %s, total storage is %s\", humanize.Bytes(addedToStorage-savedStorage), humanize.Bytes(totalStorage))\n\t}\n\treturn nil\n}\n\n// Repin goes over all files in the filesystem and identifies files that need to be unpinned.\n// Only files that are not explicitly pinned, are touched. If a file is explicitly pinned, it will\n// survive the repinning process in any case. The repinning is steered by two config variables:\n//\n// - fs.repin.quota: Maximum amount of pinned storage (excluding explicit pins)\n// - fs.repin.depth: How many versions of a file to keep at least. This trumps quota.\n//\nfunc (fs *FS) Repin(root string) error {\n\tfs.repinControl <- prefixSlash(root)\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/repin_test.go",
    "content": "package catfs\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRepinDepthOnly(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", true)\n\t\tfs.cfg.SetString(\"repin.quota\", \"10G\")\n\t\tfs.cfg.SetInt(\"repin.min_depth\", 1)\n\t\tfs.cfg.SetInt(\"repin.max_depth\", 10)\n\n\t\ttestRun(t, fs, 10, 20)\n\t})\n}\n\nfunc TestRepinNoMaxDepth(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", true)\n\t\tfs.cfg.SetString(\"repin.quota\", \"10G\")\n\t\tfs.cfg.SetInt(\"repin.min_depth\", 1)\n\t\tfs.cfg.SetInt(\"repin.max_depth\", 100)\n\n\t\ttestRun(t, fs, 20, 20)\n\t})\n}\n\nfunc TestRepinDisabled(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", false)\n\t\ttestRun(t, fs, 20, 20)\n\t})\n}\n\nfunc TestRepinQuota(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", true)\n\t\tfs.cfg.SetString(\"repin.quota\", \"11B\")\n\t\tfs.cfg.SetInt(\"repin.min_depth\", 1)\n\t\tfs.cfg.SetInt(\"repin.max_depth\", 100)\n\n\t\ttestRun(t, fs, 10, 20)\n\t})\n}\n\nfunc TestRepinKillAll(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", true)\n\t\tfs.cfg.SetString(\"repin.quota\", \"0B\")\n\t\tfs.cfg.SetInt(\"repin.min_depth\", 0)\n\t\tfs.cfg.SetInt(\"repin.max_depth\", 0)\n\n\t\ttestRun(t, fs, -1, 20)\n\t})\n}\n\nfunc TestRepinOldBehaviour(t *testing.T) {\n\twithDummyFS(t, func(fs *FS) {\n\t\tfs.cfg.SetBool(\"repin.enabled\", true)\n\t\tfs.cfg.SetString(\"repin.quota\", \"100G\")\n\t\tfs.cfg.SetInt(\"repin.min_depth\", 1)\n\t\tfs.cfg.SetInt(\"repin.max_depth\", 1)\n\n\t\ttestRun(t, fs, 1, 20)\n\t})\n}\n\nfunc testRun(t *testing.T, fs *FS, split, n int) {\n\tfor idx := 0; idx < n; idx++ {\n\t\trequire.Nil(t, fs.Stage(\"/dir/a\", bytes.NewReader([]byte{byte(idx)})))\n\t\trequire.Nil(t, fs.MakeCommit(fmt.Sprintf(\"state: %d\", idx)))\n\t}\n\n\tfor idx := 0; idx < n; idx++ {\n\t\trequire.Nil(t, fs.Pin(\"/dir/a\", \"HEAD\"+strings.Repeat(\"^\", idx), false))\n\t}\n\n\trequire.Nil(t, fs.repin(\"/\"))\n\n\thistA, err := fs.History(\"/dir/a\")\n\trequire.Nil(t, err)\n\n\tfor idx := 0; idx <= split; idx++ {\n\t\trequire.True(t, histA[idx].IsPinned, fmt.Sprintf(\"%d\", idx))\n\t\trequire.False(t, histA[idx].IsExplicit, fmt.Sprintf(\"%d\", idx))\n\t}\n\n\tfor idx := split + 1; idx < n; idx++ {\n\t\trequire.False(t, histA[idx].IsPinned, fmt.Sprintf(\"%d\", idx))\n\t\trequire.False(t, histA[idx].IsExplicit, fmt.Sprintf(\"%d\", idx))\n\t}\n}\n"
  },
  {
    "path": "catfs/rev.go",
    "content": "package catfs\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n)\n\nvar (\n\tindexCommitPattern = regexp.MustCompile(`^commit\\[([-\\+]{0,1}[0-9]+)\\]$`)\n)\n\n// validateRev check is a rev spec looks like it's valid\n// from a syntactic point of view.\n//\n// A valid ref may contain only letters or numbers, but might end with an\n// arbitrary number of '^' at the end. Unicode is allowed.\n// As special case it might also match indexCommitPattern.\n//\n// If any violation is dected, an error is returned.\nfunc validateRev(rev string) error {\n\tif indexCommitPattern.Match([]byte(rev)) {\n\t\treturn nil\n\t}\n\n\tfoundUp := false\n\tfor _, c := range rev {\n\t\tif unicode.IsLetter(c) || unicode.IsNumber(c) {\n\t\t\tif foundUp {\n\t\t\t\treturn fmt.Errorf(\"normal character after ^\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch c {\n\t\tcase '^':\n\t\t\tfoundUp = true\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid character in ref: `%v`\", c)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// parseRev resolves a base58 to a commit or if it looks like a refname\n// it tries to resolve that (HEAD, CURR, INIT e.g.).\nfunc parseRev(lkr *c.Linker, rev string) (*n.Commit, error) {\n\tif err := validateRev(rev); err != nil {\n\t\treturn nil, e.Wrapf(err, \"validate\")\n\t}\n\n\tlowerRev := strings.ToLower(rev)\n\tmatches := indexCommitPattern.FindSubmatch([]byte(lowerRev))\n\tif len(matches) >= 2 {\n\t\tindex, err := strconv.ParseInt(string(matches[1]), 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, e.Wrapf(err, \"failed to parse commit index spec\")\n\t\t}\n\n\t\treturn lkr.CommitByIndex(index)\n\t}\n\n\tpureRev := strings.TrimRight(rev, \"^\")\n\thash, err := lkr.ExpandAbbrev(pureRev)\n\tif err != nil {\n\t\t// Either it was an hash and it is valid,\n\t\t// Or it is a tag name like HEAD (or \"head\")\n\t\tnd, err := lkr.ResolveRef(lowerRev)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcmt, ok := nd.(*n.Commit)\n\t\tif !ok {\n\t\t\treturn nil, ie.ErrBadNode\n\t\t}\n\n\t\treturn cmt, nil\n\t}\n\n\tactualRev := hash.B58String() + strings.Repeat(\"^\", strings.Count(rev, \"^\"))\n\tnd, err := lkr.ResolveRef(actualRev)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcmt, ok := nd.(*n.Commit)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn cmt, nil\n}\n"
  },
  {
    "path": "catfs/rev_test.go",
    "content": "package catfs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRevParse(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tinit, err := parseRev(lkr, \"commit[0]\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"init\", init.Message())\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/capnp/patch.capnp",
    "content": "using Go = import \"/go.capnp\";\nusing Nodes = import \"../../nodes/capnp/nodes.capnp\";\n\n@0xb943b54bf1683782;\n\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/catfs/vcs/capnp\");\n\nstruct Change $Go.doc(\"Change describes a single change\") {\n    mask            @0 :UInt64;\n    head            @1 :Nodes.Node;\n    next            @2 :Nodes.Node;\n    curr            @3 :Nodes.Node;\n    movedTo         @4 :Text;\n    wasPreviouslyAt @5 :Text;\n}\n\nstruct Patch $Go.doc(\"Patch contains a single change\") {\n    fromIndex @0 :Int64;\n    currIndex @1 :Int64;\n    changes   @2 :List(Change);\n}\n\nstruct Patches $Go.doc(\"Patches contains several patches\") {\n    patches @0 :List(Patch);\n}\n"
  },
  {
    "path": "catfs/vcs/capnp/patch.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcapnp2 \"github.com/sahib/brig/catfs/nodes/capnp\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n)\n\n// Change describes a single change\ntype Change struct{ capnp.Struct }\n\n// Change_TypeID is the unique identifier for the type Change.\nconst Change_TypeID = 0x9592300df48789af\n\nfunc NewChange(s *capnp.Segment) (Change, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5})\n\treturn Change{st}, err\n}\n\nfunc NewRootChange(s *capnp.Segment) (Change, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5})\n\treturn Change{st}, err\n}\n\nfunc ReadRootChange(msg *capnp.Message) (Change, error) {\n\troot, err := msg.RootPtr()\n\treturn Change{root.Struct()}, err\n}\n\nfunc (s Change) String() string {\n\tstr, _ := text.Marshal(0x9592300df48789af, s.Struct)\n\treturn str\n}\n\nfunc (s Change) Mask() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Change) SetMask(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s Change) Head() (capnp2.Node, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn capnp2.Node{Struct: p.Struct()}, err\n}\n\nfunc (s Change) HasHead() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) SetHead(v capnp2.Node) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewHead sets the head field to a newly\n// allocated capnp2.Node struct, preferring placement in s's segment.\nfunc (s Change) NewHead() (capnp2.Node, error) {\n\tss, err := capnp2.NewNode(s.Struct.Segment())\n\tif err != nil {\n\t\treturn capnp2.Node{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Change) Next() (capnp2.Node, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn capnp2.Node{Struct: p.Struct()}, err\n}\n\nfunc (s Change) HasNext() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) SetNext(v capnp2.Node) error {\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewNext sets the next field to a newly\n// allocated capnp2.Node struct, preferring placement in s's segment.\nfunc (s Change) NewNext() (capnp2.Node, error) {\n\tss, err := capnp2.NewNode(s.Struct.Segment())\n\tif err != nil {\n\t\treturn capnp2.Node{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Change) Curr() (capnp2.Node, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn capnp2.Node{Struct: p.Struct()}, err\n}\n\nfunc (s Change) HasCurr() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) SetCurr(v capnp2.Node) error {\n\treturn s.Struct.SetPtr(2, v.Struct.ToPtr())\n}\n\n// NewCurr sets the curr field to a newly\n// allocated capnp2.Node struct, preferring placement in s's segment.\nfunc (s Change) NewCurr() (capnp2.Node, error) {\n\tss, err := capnp2.NewNode(s.Struct.Segment())\n\tif err != nil {\n\t\treturn capnp2.Node{}, err\n\t}\n\terr = s.Struct.SetPtr(2, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Change) MovedTo() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasMovedTo() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) MovedToBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetMovedTo(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\nfunc (s Change) WasPreviouslyAt() (string, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasWasPreviouslyAt() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) WasPreviouslyAtBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetWasPreviouslyAt(v string) error {\n\treturn s.Struct.SetText(4, v)\n}\n\n// Change_List is a list of Change.\ntype Change_List struct{ capnp.List }\n\n// NewChange creates a new list of Change.\nfunc NewChange_List(s *capnp.Segment, sz int32) (Change_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5}, sz)\n\treturn Change_List{l}, err\n}\n\nfunc (s Change_List) At(i int) Change { return Change{s.List.Struct(i)} }\n\nfunc (s Change_List) Set(i int, v Change) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Change_List) String() string {\n\tstr, _ := text.MarshalList(0x9592300df48789af, s.List)\n\treturn str\n}\n\n// Change_Promise is a wrapper for a Change promised by a client call.\ntype Change_Promise struct{ *capnp.Pipeline }\n\nfunc (p Change_Promise) Struct() (Change, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Change{s}, err\n}\n\nfunc (p Change_Promise) Head() capnp2.Node_Promise {\n\treturn capnp2.Node_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\nfunc (p Change_Promise) Next() capnp2.Node_Promise {\n\treturn capnp2.Node_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\nfunc (p Change_Promise) Curr() capnp2.Node_Promise {\n\treturn capnp2.Node_Promise{Pipeline: p.Pipeline.GetPipeline(2)}\n}\n\n// Patch contains a single change\ntype Patch struct{ capnp.Struct }\n\n// Patch_TypeID is the unique identifier for the type Patch.\nconst Patch_TypeID = 0x927c7336e3054805\n\nfunc NewPatch(s *capnp.Segment) (Patch, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1})\n\treturn Patch{st}, err\n}\n\nfunc NewRootPatch(s *capnp.Segment) (Patch, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1})\n\treturn Patch{st}, err\n}\n\nfunc ReadRootPatch(msg *capnp.Message) (Patch, error) {\n\troot, err := msg.RootPtr()\n\treturn Patch{root.Struct()}, err\n}\n\nfunc (s Patch) String() string {\n\tstr, _ := text.Marshal(0x927c7336e3054805, s.Struct)\n\treturn str\n}\n\nfunc (s Patch) FromIndex() int64 {\n\treturn int64(s.Struct.Uint64(0))\n}\n\nfunc (s Patch) SetFromIndex(v int64) {\n\ts.Struct.SetUint64(0, uint64(v))\n}\n\nfunc (s Patch) CurrIndex() int64 {\n\treturn int64(s.Struct.Uint64(8))\n}\n\nfunc (s Patch) SetCurrIndex(v int64) {\n\ts.Struct.SetUint64(8, uint64(v))\n}\n\nfunc (s Patch) Changes() (Change_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Change_List{List: p.List()}, err\n}\n\nfunc (s Patch) HasChanges() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Patch) SetChanges(v Change_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewChanges sets the changes field to a newly\n// allocated Change_List, preferring placement in s's segment.\nfunc (s Patch) NewChanges(n int32) (Change_List, error) {\n\tl, err := NewChange_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Change_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Patch_List is a list of Patch.\ntype Patch_List struct{ capnp.List }\n\n// NewPatch creates a new list of Patch.\nfunc NewPatch_List(s *capnp.Segment, sz int32) (Patch_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1}, sz)\n\treturn Patch_List{l}, err\n}\n\nfunc (s Patch_List) At(i int) Patch { return Patch{s.List.Struct(i)} }\n\nfunc (s Patch_List) Set(i int, v Patch) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Patch_List) String() string {\n\tstr, _ := text.MarshalList(0x927c7336e3054805, s.List)\n\treturn str\n}\n\n// Patch_Promise is a wrapper for a Patch promised by a client call.\ntype Patch_Promise struct{ *capnp.Pipeline }\n\nfunc (p Patch_Promise) Struct() (Patch, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Patch{s}, err\n}\n\n// Patches contains several patches\ntype Patches struct{ capnp.Struct }\n\n// Patches_TypeID is the unique identifier for the type Patches.\nconst Patches_TypeID = 0xc2984f083ea5351d\n\nfunc NewPatches(s *capnp.Segment) (Patches, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Patches{st}, err\n}\n\nfunc NewRootPatches(s *capnp.Segment) (Patches, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Patches{st}, err\n}\n\nfunc ReadRootPatches(msg *capnp.Message) (Patches, error) {\n\troot, err := msg.RootPtr()\n\treturn Patches{root.Struct()}, err\n}\n\nfunc (s Patches) String() string {\n\tstr, _ := text.Marshal(0xc2984f083ea5351d, s.Struct)\n\treturn str\n}\n\nfunc (s Patches) Patches() (Patch_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Patch_List{List: p.List()}, err\n}\n\nfunc (s Patches) HasPatches() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Patches) SetPatches(v Patch_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewPatches sets the patches field to a newly\n// allocated Patch_List, preferring placement in s's segment.\nfunc (s Patches) NewPatches(n int32) (Patch_List, error) {\n\tl, err := NewPatch_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Patch_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Patches_List is a list of Patches.\ntype Patches_List struct{ capnp.List }\n\n// NewPatches creates a new list of Patches.\nfunc NewPatches_List(s *capnp.Segment, sz int32) (Patches_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Patches_List{l}, err\n}\n\nfunc (s Patches_List) At(i int) Patches { return Patches{s.List.Struct(i)} }\n\nfunc (s Patches_List) Set(i int, v Patches) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Patches_List) String() string {\n\tstr, _ := text.MarshalList(0xc2984f083ea5351d, s.List)\n\treturn str\n}\n\n// Patches_Promise is a wrapper for a Patches promised by a client call.\ntype Patches_Promise struct{ *capnp.Pipeline }\n\nfunc (p Patches_Promise) Struct() (Patches, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Patches{s}, err\n}\n\nconst schema_b943b54bf1683782 = \"x\\xda\\x84\\x93\\xc1k\\x13O\\x1c\\xc5\\xbf\\xef;\\xbb\\xbf\\xb4\" +\n\t\"?R\\xd319\\x88T\\xba\\x88\\x97z\\xb0-E\\x05\\x0f\" +\n\t\"\\xd6Z\\x05E\\xc5\\x8c(\\xeaEX7\\xd3n0\\xd9\\x84\" +\n\t\"\\xcc6V\\xb0\\x04z\\x11=V\\x85\\x16\\x14+\\xb4b\\xa1\" +\n\t\"R/\\x82\\x1e\\xbc\\x08\\xfe\\x0b\\xfe\\x03=\\x89'\\xc1K{\" +\n\t\"Y\\x99$\\xa6\\xa5\\x16{[>\\xf3\\xd8\\xd9\\xcf\\xe3\\xed\\x10\" +\n\t\"p\\x86\\x87\\xdd\\x0c\\x88T\\xda\\xfd/q/\\xb8\\xeb'\\xcc\" +\n\t\"\\xc39R}\\xe0d\\xf6d\\xf8\\xf3\\xd2\\x87\\xf1O\\xe4\\\"\" +\n\t\"E4\\\\\\xde\\x0f9\\x93\\x923\\xfdre\\x8d\\x90\\xac=\" +\n\t\"~\\xf4\\xabgh\\xee\\xb9\\xcdb[\\xd6M\\x11\\x8d\\xdc\\xc6\" +\n\t\"Ad\\x8bHe\\x8b\\xe8\\x1fY\\xc0M\\x10\\x92C\\xc7\\x97\" +\n\t\"Ow]\\x9d\\xffB\\xb2\\x0f;\\xde=\\xf2\\x9d\\x0f#\\xbb\" +\n\t\"\\xc1\\xa9\\xec\\x06\\xf7g\\x07\\xc4(!\\x09\\xfcx\\xc2\\x0c\\xd6\" +\n\t\"\\x03a\\x06\\x03\\xbf\\x1aU\\x07\\xab~\\x1c\\x84\\xc7\\x9a\\xcf\\xa7\" +\n\t\"\\xf2~\\x1c \\xcc\\x03\\xca\\x01'w\\x9e\\xbeR\\x9f\\xbf=\" +\n\t\"\\xf9J\\xcaa\\x8c\\xf5\\x01i\\\"\\x89\\xcd\\xc4\\xa6B/\\xa8\" +\n\t\"p\\x14\\xfb\\xc5\\xc8x\\xbeg\\x8a\\xd1dI{\\xa3A\\xe8\" +\n\t\"G\\x93\\xdaZ\\x0b\\x87\\xc8\\x01\\x91<\\x7f\\x8dH\\x9d\\x13P\" +\n\t\"y\\x86\\x04r\\xb0\\xf0\\x8a\\x85\\x97\\x05\\xd4-\\x068\\x07&\" +\n\t\"\\x927\\xce\\x12\\xa9\\xbc\\x80*1\\x92\\x89Z\\xa5|1*\" +\n\t\"h\\xc24\\\\b\\xb8\\xf6\\xcb\\xa7j\\xb5\\x1d\\xac\\xd1\\xba\\xd0\" +\n\t\"`\\x1f!/\\x80\\xde\\xad\\xfa\\x08\\x16\\xfe[w<\\xf4#\" +\n\t\"1\\xa9w\\xf7\\xf5\\x9a\\xbe\\xc3\\xf8\\x1f\\xc9x\\xf3\\x16\\xaf \" +\n\t\"\\xb4\\x09j\\xc5\\xbbz\\x9br\\xdb\\x18\\xea@\\xc7x\\xe1(\" +\n\t\"\\x91z&\\xa0\\x16\\x19\\x7f\\x84_Z6/\\xa0\\x96\\x18\\x92\" +\n\t\"\\xd12~m\\xe1\\x0b\\x01\\xf5\\x96!\\x05\\xe7 \\x88\\xe4\\xb2\" +\n\t\"\\x85\\x8b\\x02j\\x95!\\x1d\\x91\\x83C$Wl7K\\x02\" +\n\t\"\\xea=C\\xbaN\\x0e.\\x91|7K\\xa4V\\x05\\xd4G\" +\n\t\"F\\xa6\\xec\\x9b{\\xe8&F7!\\x13j\\xbf\\x80\\xded\" +\n\t\"}s\\xa2\\xda\\xf81\\xf0\\xc6v\\xd1K\\xc8Dz:\\xde\" +\n\t\"\\x05\\xdb^\\xff\\xc6\\x8dr\\xa5\\xae\\x0b\\xd7+H\\x13#M\" +\n\t\"H\\xee\\xfb&_\\xd3\\xf5\\\"*S\\xa6\\xf4`,\\xa6\\xce\" +\n\t\"\\xc9\\x9e\\x93J\\x85\\xda\\xecYrsU\\xdax\\\"\\xa8\\xb4\" +\n\t\"wet]\\xd7\\xfc\\x92Wm\\x9d\\x10\\x94\\xd3)\\xb9\\xc7\" +\n\t\"6\\xd2%\\xa0\\x8e0\\x1a\\xed\\xc0\\xd6\\x0a:?\\\\k\\x05\" +\n\t\"\\xbf\\x03\\x00\\x00\\xff\\xff\\xe5\\xc7\\xe9\\x1d\"\n\nfunc init() {\n\tschemas.Register(schema_b943b54bf1683782,\n\t\t0x927c7336e3054805,\n\t\t0x9592300df48789af,\n\t\t0xc2984f083ea5351d)\n}\n"
  },
  {
    "path": "catfs/vcs/change.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"strings\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\tcapnp_model \"github.com/sahib/brig/catfs/nodes/capnp\"\n\tcapnp_patch \"github.com/sahib/brig/catfs/vcs/capnp\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nconst (\n\t// ChangeTypeNone means that a node did not change (compared to HEAD)\n\tChangeTypeNone = ChangeType(0)\n\t// ChangeTypeAdd says that the node was initially added after HEAD.\n\tChangeTypeAdd = ChangeType(1 << iota)\n\t// ChangeTypeModify says that the the node was modified after HEAD\n\tChangeTypeModify\n\t// ChangeTypeMove says that the node was moved after HEAD.\n\t// Note that Move and Modify may happen at the same time.\n\tChangeTypeMove\n\t// ChangeTypeRemove says that the node was removed after HEAD.\n\tChangeTypeRemove\n)\n\n// ChangeType is a mask of possible state change events.\ntype ChangeType uint8\n\n// String will convert a ChangeType to a human readable form\nfunc (ct ChangeType) String() string {\n\tv := []string{}\n\n\tif ct&ChangeTypeAdd != 0 {\n\t\tv = append(v, \"added\")\n\t}\n\tif ct&ChangeTypeModify != 0 {\n\t\tv = append(v, \"modified\")\n\t}\n\tif ct&ChangeTypeMove != 0 {\n\t\tv = append(v, \"moved\")\n\t}\n\tif ct&ChangeTypeRemove != 0 {\n\t\tv = append(v, \"removed\")\n\t}\n\n\tif len(v) == 0 {\n\t\treturn \"none\"\n\t}\n\n\treturn strings.Join(v, \"|\")\n}\n\n// IsCompatible checks if two change masks are compatible.\n// Changes are compatible when they can be both applied\n// without loosing any content. We may loose metadata though,\n// e.g. when one side was moved, but the other removed:\n// Here the remove would win and no move is counted.\nfunc (ct ChangeType) IsCompatible(ot ChangeType) bool {\n\tmodifyMask := ChangeTypeAdd | ChangeTypeModify\n\treturn ct&modifyMask == 0 || ot&modifyMask == 0\n}\n\n///////////////////////////\n\n// Change represents a single change of a node between two commits.\ntype Change struct {\n\t// Mask is a bitmask of changes that were made.\n\t// It describes the change that was made between `Next` to `Head`\n\t// and which is part of `Head`.\n\tMask ChangeType\n\n\t// Head is the commit that was the current HEAD when this change happened.\n\t// Note that this is NOT the commit that contains the change, but the commit before.\n\tHead *n.Commit\n\n\t// Next is the commit that comes before `Head`.\n\tNext *n.Commit\n\n\t// Curr is the node with the attributes at a specific state\n\tCurr n.ModNode\n\n\t// MovedTo is only filled for ghosts that were the source\n\t// of a move. It's the path of the node it was moved to.\n\tMovedTo string\n\n\t// WasPreviouslyAt points to the place `Curr` was at\n\t// before a move. On changes without a move this is empty.\n\tWasPreviouslyAt string\n}\n\nfunc (ch *Change) String() string {\n\tmovedTo := \"\"\n\tif len(ch.MovedTo) != 0 {\n\t\tmovedTo = fmt.Sprintf(\" (now %s)\", ch.MovedTo)\n\t}\n\n\tprevAt := \"\"\n\tif len(ch.WasPreviouslyAt) != 0 {\n\t\tprevAt = fmt.Sprintf(\" (was %s)\", ch.WasPreviouslyAt)\n\t}\n\n\treturn fmt.Sprintf(\"<%s:%s%s%s>\", ch.Curr.Path(), ch.Mask, prevAt, movedTo)\n}\n\nfunc replayAddWithUnpacking(lkr *c.Linker, ch *Change) error {\n\t// If it's an ghost, unpack it first: It will be added as if it was\n\t// never a ghost, but since the change mask has the\n\t// ChangeTypeRemove flag set, it will removed directly after.\n\tcurrNd := ch.Curr\n\tif ch.Curr.Type() == n.NodeTypeGhost {\n\t\tcurrGhost, ok := ch.Curr.(*n.Ghost)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tcurrNd = currGhost.OldNode()\n\t}\n\n\t// Check the type of the old node:\n\toldNd, err := lkr.LookupModNode(currNd.Path())\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn err\n\t}\n\n\t// If the types are conflicting we have to remove the existing node.\n\tif oldNd != nil && oldNd.Type() != currNd.Type() {\n\t\tif oldNd.Type() == n.NodeTypeGhost {\n\t\t\t// the oldNd node is already deleted, no need to do anything special\n\t\t\treturn replayAdd(lkr, currNd)\n\t\t}\n\t\t_, _, err := c.Remove(lkr, oldNd, true, true)\n\t\tif err != nil {\n\t\t\treturn e.Wrapf(err, \"replay: type-conflict-remove\")\n\t\t}\n\t}\n\n\treturn replayAdd(lkr, currNd)\n}\n\nfunc replayAdd(lkr *c.Linker, currNd n.ModNode) error {\n\tswitch currNd.(type) {\n\tcase *n.File:\n\t\tif _, err := c.Mkdir(lkr, path.Dir(currNd.Path()), true); err != nil {\n\t\t\treturn e.Wrapf(err, \"replay: mkdir\")\n\t\t}\n\n\t\tif _, err := c.StageFromFileNode(lkr, currNd.(*n.File)); err != nil {\n\t\t\treturn e.Wrapf(err, \"replay: stage\")\n\t\t}\n\tcase *n.Directory:\n\t\tif _, err := c.Mkdir(lkr, currNd.Path(), true); err != nil {\n\t\t\treturn e.Wrapf(err, \"replay: mkdir\")\n\t\t}\n\tdefault:\n\t\treturn e.Wrapf(ie.ErrBadNode, \"replay: modify\")\n\t}\n\n\treturn nil\n}\n\nfunc replayMove(lkr *c.Linker, ch *Change) error {\n\tif ch.MovedTo != \"\" {\n\t\toldNd, err := lkr.LookupModNode(ch.Curr.Path())\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif _, err := c.Mkdir(lkr, path.Dir(ch.MovedTo), true); err != nil {\n\t\t\treturn e.Wrapf(err, \"replay: mkdir\")\n\t\t}\n\n\t\tif oldNd != nil {\n\t\t\tif err := c.Move(lkr, oldNd, ch.MovedTo); err != nil {\n\t\t\t\treturn e.Wrapf(err, \"replay: move\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif ch.Curr.Type() != n.NodeTypeGhost {\n\t\tif _, err := lkr.LookupModNode(ch.Curr.Path()); ie.IsNoSuchFileError(err) {\n\t\t\tif err := replayAdd(lkr, ch.Curr); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\tif ch.WasPreviouslyAt != \"\" {\n\t\toldNd, err := lkr.LookupModNode(ch.WasPreviouslyAt)\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif oldNd != nil {\n\t\t\tif oldNd.Type() != n.NodeTypeGhost {\n\t\t\t\tif _, _, err := c.Remove(lkr, oldNd, true, true); err != nil {\n\t\t\t\t\treturn e.Wrap(err, \"replay: move: remove old\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := replayAddMoveMapping(lkr, ch.WasPreviouslyAt, ch.Curr.Path()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc replayAddMoveMapping(lkr *c.Linker, oldPath, newPath string) error {\n\tnewNd, err := lkr.LookupModNode(newPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\toldNd, err := lkr.LookupModNode(oldPath)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn nil\n\t}\n\n\tif oldNd == nil {\n\t\treturn nil\n\t}\n\n\tlog.Debugf(\"adding move mapping: %s %s\", oldPath, newPath)\n\treturn lkr.AddMoveMapping(oldNd.Inode(), newNd.Inode())\n}\n\nfunc replayRemove(lkr *c.Linker, ch *Change) error {\n\tcurrNd, err := lkr.LookupModNode(ch.Curr.Path())\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"replay: lookup: %v\", ch.Curr.Path())\n\t}\n\n\tif currNd.Type() != n.NodeTypeGhost {\n\t\tif _, _, err := c.Remove(lkr, currNd, true, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Replay applies the change `ch` onto `lkr` by redoing the same operations:\n// move, remove, modify, add. Commits are not replayed, everything happens in\n// lkr.Status() without creating a new commit.\nfunc (ch *Change) Replay(lkr *c.Linker) error {\n\treturn lkr.Atomic(func() (bool, error) {\n\t\tif ch.Mask&(ChangeTypeModify|ChangeTypeAdd) != 0 {\n\t\t\t// Something needs to be done based on the type.\n\t\t\t// Either create/update a new file or create a directory.\n\t\t\tif err := replayAddWithUnpacking(lkr, ch); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\tif ch.Mask&ChangeTypeMove != 0 {\n\t\t\tif err := replayMove(lkr, ch); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\t// We should only remove a node if we're getting a ghost in ch.Curr.\n\t\t// Otherwise the node might have been removed and added again.\n\t\tif ch.Mask&ChangeTypeRemove != 0 && ch.Curr.Type() == n.NodeTypeGhost {\n\t\t\tif err := replayRemove(lkr, ch); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n\nfunc (ch *Change) toCapnpChange(seg *capnp.Segment, capCh *capnp_patch.Change) error {\n\tcapCurrNd, err := capnp_model.NewNode(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := ch.Curr.ToCapnpNode(seg, capCurrNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapHeadNd, err := capnp_model.NewNode(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := ch.Head.ToCapnpNode(seg, capHeadNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapNextNd, err := capnp_model.NewNode(seg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := ch.Next.ToCapnpNode(seg, capNextNd); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capCh.SetCurr(capCurrNd); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capCh.SetHead(capHeadNd); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capCh.SetNext(capNextNd); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capCh.SetMovedTo(ch.MovedTo); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capCh.SetWasPreviouslyAt(ch.WasPreviouslyAt); err != nil {\n\t\treturn err\n\t}\n\n\tcapCh.SetMask(uint64(ch.Mask))\n\treturn nil\n\n}\n\n// ToCapnp converts a change to a capnproto message.\nfunc (ch *Change) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapCh, err := capnp_patch.NewRootChange(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := ch.toCapnpChange(seg, &capCh); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, nil\n}\n\nfunc (ch *Change) fromCapnpChange(capCh capnp_patch.Change) error {\n\tcapHeadNd, err := capCh.Head()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tch.Head = &n.Commit{}\n\tif err := ch.Head.FromCapnpNode(capHeadNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapNextNd, err := capCh.Next()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tch.Next = &n.Commit{}\n\tif err := ch.Next.FromCapnpNode(capNextNd); err != nil {\n\t\treturn err\n\t}\n\n\tcapCurrNd, err := capCh.Curr()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcurrNd, err := n.CapNodeToNode(capCurrNd)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcurrModNd, ok := currNd.(n.ModNode)\n\tif !ok {\n\t\treturn e.Wrapf(ie.ErrBadNode, \"unmarshalled node is no mod node\")\n\t}\n\n\tch.Curr = currModNd\n\n\tmovedTo, err := capCh.MovedTo()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\twasPreviouslyAt, err := capCh.WasPreviouslyAt()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tch.MovedTo = movedTo\n\tch.WasPreviouslyAt = wasPreviouslyAt\n\tch.Mask = ChangeType(capCh.Mask())\n\treturn nil\n}\n\n// FromCapnp deserializes `msg` and writes it to `ch`.\nfunc (ch *Change) FromCapnp(msg *capnp.Message) error {\n\tcapCh, err := capnp_patch.ReadRootChange(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn ch.fromCapnpChange(capCh)\n}\n\n// CombineChanges compresses a list of changes (in a lossy way) to one Change.\n// The one change should be enough to re-create the changes that were made.\nfunc CombineChanges(changes []*Change) *Change {\n\tif len(changes) == 0 {\n\t\treturn nil\n\t}\n\n\t// Only take the latest changes:\n\tch := &Change{\n\t\tMask: ChangeType(0),\n\t\tHead: changes[0].Head,\n\t\tNext: changes[0].Next,\n\t\tCurr: changes[0].Curr,\n\t}\n\n\t// If the node moved, save the original path in MovedTo:\n\tpathChanged := changes[0].Curr.Path() != changes[len(changes)-1].Curr.Path()\n\tisGhost := changes[0].Curr.Type() == n.NodeTypeGhost\n\n\t// Combine the mask:\n\tfor _, change := range changes {\n\t\tch.Mask |= change.Mask\n\t}\n\n\tif ch.Mask&ChangeTypeMove != 0 {\n\t\tfor idx := len(changes) - 1; idx >= 0; idx-- {\n\t\t\tif refPath := changes[idx].MovedTo; refPath != \"\" {\n\t\t\t\tch.MovedTo = refPath\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tfor idx := len(changes) - 1; idx >= 0; idx-- {\n\t\t\tif refPath := changes[idx].WasPreviouslyAt; refPath != \"\" {\n\t\t\t\tch.WasPreviouslyAt = refPath\n\t\t\t\tpathChanged = refPath != changes[0].Curr.Path()\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// If the path did not really change, we do not want to have ChangeTypeMove\n\t// in the mask. This is to protect against circular moves.  If it's a ghost\n\t// we should still include it though (for WasPreviouslyAt)\n\tif !pathChanged && !isGhost {\n\t\tch.Mask &= ^ChangeTypeMove\n\n\t}\n\n\t// If the last change was not a remove, we do not need to\n\tif changes[0].Mask&ChangeTypeRemove == 0 && !isGhost {\n\t\tch.Mask &= ^ChangeTypeRemove\n\t}\n\n\treturn ch\n}\n"
  },
  {
    "path": "catfs/vcs/change_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestChangeMarshalling(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\thead, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\n\t\tcurr := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tnext := c.MustCommit(t, lkr, \"hello\")\n\n\t\tchange := &Change{\n\t\t\tMask:    ChangeTypeMove | ChangeTypeRemove,\n\t\t\tHead:    head,\n\t\t\tNext:    next,\n\t\t\tCurr:    curr,\n\t\t\tMovedTo: \"/something\",\n\t\t}\n\n\t\tmsg, err := change.ToCapnp()\n\t\trequire.Nil(t, err)\n\n\t\tnewChange := &Change{}\n\t\trequire.Nil(t, newChange.FromCapnp(msg))\n\n\t\trequire.Equal(t, newChange.MovedTo, \"/something\")\n\t\trequire.Equal(t, newChange.Mask, ChangeTypeMove|ChangeTypeRemove)\n\t\trequire.Equal(t, newChange.Curr, curr)\n\t\trequire.Equal(t, newChange.Head, head)\n\t\trequire.Equal(t, newChange.Next, next)\n\n\t\t// This check helps failing when adding new fields:\n\t\trequire.Equal(t, change, newChange)\n\t})\n}\n\nfunc TestChangeCombine(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tc.MustCommit(t, lkr, \"1\")\n\t\tc.MustModify(t, lkr, x, 2)\n\t\tc.MustCommit(t, lkr, \"2\")\n\t\ty := c.MustMove(t, lkr, x, \"/y\")\n\t\tc.MustCommit(t, lkr, \"move\")\n\t\tc.MustRemove(t, lkr, y)\n\t\tghost, err := lkr.LookupGhost(\"/y\")\n\t\trequire.Nil(t, err)\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\tchanges, err := History(lkr, ghost, status, nil)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, changes, 4)\n\t\trequire.Equal(t, changes[0].Mask, ChangeTypeRemove)\n\t\trequire.Equal(t, changes[1].Mask, ChangeTypeMove)\n\t\trequire.Equal(t, changes[2].Mask, ChangeTypeModify)\n\t\trequire.Equal(t, changes[3].Mask, ChangeTypeAdd)\n\n\t\tchange := CombineChanges(changes)\n\t\trequire.Equal(t, change.MovedTo, \"\")\n\t\trequire.Equal(t, change.WasPreviouslyAt, \"/x\")\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\tchange.Mask,\n\t\t\tChangeTypeRemove|ChangeTypeMove|ChangeTypeModify|ChangeTypeAdd,\n\t\t)\n\t})\n}\n\nfunc TestChangeCombineMoveBackAndForth(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tc.MustCommit(t, lkr, \"1\")\n\t\ty := c.MustMove(t, lkr, x, \"/y\")\n\t\tc.MustCommit(t, lkr, \"2\")\n\t\txx := c.MustMove(t, lkr, y, \"/x\")\n\t\tc.MustCommit(t, lkr, \"3\")\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\tchanges, err := History(lkr, xx, status, nil)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, changes, 4)\n\t\trequire.Equal(t, changes[0].Mask, ChangeTypeNone)\n\t\trequire.Equal(t, changes[1].Mask, ChangeTypeMove)\n\t\trequire.Equal(t, changes[2].Mask, ChangeTypeMove)\n\t\trequire.Equal(t, changes[3].Mask, ChangeTypeAdd)\n\n\t\tchange := CombineChanges(changes)\n\t\trequire.Equal(t, \"/x\", change.WasPreviouslyAt)\n\t\trequire.Equal(t, \"\", change.MovedTo)\n\t\trequire.Equal(t, ChangeTypeAdd, change.Mask)\n\t})\n}\n\nfunc TestChangeRemoveAndReadd(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tc.MustCommit(t, lkr, \"1\")\n\t\tc.MustRemove(t, lkr, x)\n\t\tc.MustCommit(t, lkr, \"2\")\n\t\txx := c.MustTouch(t, lkr, \"/x\", 2)\n\t\tc.MustCommit(t, lkr, \"3\")\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\tchanges, err := History(lkr, xx, status, nil)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, changes, 4)\n\t\trequire.Equal(t, changes[0].Mask, ChangeTypeNone)\n\t\trequire.Equal(t, changes[1].Mask, ChangeTypeAdd|ChangeTypeModify)\n\t\trequire.Equal(t, changes[2].Mask, ChangeTypeRemove)\n\t\trequire.Equal(t, changes[3].Mask, ChangeTypeAdd)\n\n\t\tchange := CombineChanges(changes)\n\t\trequire.Equal(t, \"\", change.MovedTo)\n\t\trequire.Equal(t, ChangeTypeAdd|ChangeTypeModify, change.Mask)\n\t})\n}\n\nfunc TestChangeReplay(t *testing.T) {\n\ttcs := []struct {\n\t\tname  string\n\t\tsetup func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode\n\t\tcheck func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode)\n\t}{\n\t\t{\n\t\t\tname: \"basic-add\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\treturn c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\tdstX, err := lkrDst.LookupFile(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\trequire.Equal(t, dstX.Size(), srcNd.Size())\n\t\t\t\trequire.Equal(t, dstX.TreeHash(), srcNd.TreeHash())\n\t\t\t\trequire.Equal(t, dstX.BackendHash(), srcNd.BackendHash())\n\t\t\t\trequire.Equal(t, dstX.ContentHash(), srcNd.ContentHash())\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"basic-modify\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustTouch(t, lkrDst, \"/x\", 0)\n\t\t\t\treturn c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\tdstX, err := lkrDst.LookupFile(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\trequire.Equal(t, dstX.Size(), srcNd.Size())\n\t\t\t\trequire.Equal(t, dstX.TreeHash(), srcNd.TreeHash())\n\t\t\t\trequire.Equal(t, dstX.BackendHash(), srcNd.BackendHash())\n\t\t\t\trequire.Equal(t, dstX.ContentHash(), srcNd.ContentHash())\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"basic-remove\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustTouch(t, lkrDst, \"/x\", 1)\n\t\t\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t\treturn c.MustRemove(t, lkrSrc, srcX)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\t// it's enough to assert that it's a ghost now:\n\t\t\t\t_, err := lkrDst.LookupGhost(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"basic-move\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustTouch(t, lkrDst, \"/x\", 1)\n\t\t\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t\tc.MustCommit(t, lkrSrc, \"move\")\n\t\t\t\treturn c.MustMove(t, lkrSrc, srcX, \"/y\")\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\t// it's enough to assert that it's a ghost now:\n\t\t\t\t_, err := lkrDst.LookupGhost(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\t_, err = lkrDst.LookupFile(\"/y\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"basic-all\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustTouch(t, lkrDst, \"/x\", 1)\n\n\t\t\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t\tc.MustCommit(t, lkrSrc, \"touch\")\n\t\t\t\tsrcY := c.MustMove(t, lkrSrc, srcX, \"/y\").(*n.File)\n\t\t\t\tc.MustCommit(t, lkrSrc, \"move\")\n\t\t\t\treturn c.MustRemove(t, lkrSrc, srcY)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\t// it's enough to assert that it's a ghost now:\n\t\t\t\t_, err := lkrDst.LookupGhost(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\t_, err = lkrDst.LookupGhost(\"/y\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"basic-mkdir\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\treturn c.MustMkdir(t, lkrSrc, \"/sub\")\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\tdir, err := lkrDst.LookupDirectory(\"/sub\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, dir.Path(), \"/sub\")\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"edge-conflicting-types\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\t// Directory and file:\n\t\t\t\tc.MustMkdir(t, lkrDst, \"/sub\")\n\t\t\t\treturn c.MustTouch(t, lkrSrc, \"/sub\", 1)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\t// The directory was purged and the file should appear:\n\t\t\t\t// The policy here is \"trust the remote, it's his metadata\"\n\t\t\t\t_, err := lkrDst.LookupFile(\"/sub\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"edge-modified-ghost\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\t\t\tc.MustCommit(t, lkrSrc, \"1\")\n\t\t\t\tc.MustModify(t, lkrSrc, srcX, 2)\n\t\t\t\tc.MustCommit(t, lkrSrc, \"2\")\n\t\t\t\treturn c.MustRemove(t, lkrSrc, srcX)\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\t_, err := lkrDst.LookupGhost(\"/x\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"edge-mkdir-existing\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustMkdir(t, lkrDst, \"/sub\")\n\t\t\t\treturn c.MustMkdir(t, lkrSrc, \"/sub\")\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\tdir, err := lkrDst.LookupDirectory(\"/sub\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, dir.Path(), \"/sub\")\n\t\t\t},\n\t\t}, {\n\t\t\tname: \"edge-mkdir-existing-non-empty\",\n\t\t\tsetup: func(t *testing.T, lkrSrc, lkrDst *c.Linker) n.ModNode {\n\t\t\t\tc.MustMkdir(t, lkrDst, \"/sub\")\n\t\t\t\tc.MustTouch(t, lkrDst, \"/sub/x\", 1)\n\t\t\t\treturn c.MustMkdir(t, lkrSrc, \"/sub\")\n\t\t\t},\n\t\t\tcheck: func(t *testing.T, lkrSrc, lkrDst *c.Linker, srcNd n.ModNode) {\n\t\t\t\tdir, err := lkrDst.LookupDirectory(\"/sub\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, dir.Path(), \"/sub\")\n\n\t\t\t\tdstX, err := lkrDst.LookupFile(\"/sub/x\")\n\t\t\t\trequire.Nil(t, err)\n\t\t\t\trequire.Equal(t, dstX.Path(), \"/sub/x\")\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t\t\tsrcNd := tc.setup(t, lkrSrc, lkrDst)\n\t\t\t\tsrcHead := c.MustCommit(t, lkrSrc, \"post setup\")\n\n\t\t\t\tsrcChanges, err := History(lkrSrc, srcNd, srcHead, nil)\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tch := CombineChanges(srcChanges)\n\t\t\t\trequire.Nil(t, ch.Replay(lkrDst))\n\n\t\t\t\ttc.check(t, lkrSrc, lkrDst, srcNd)\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/vcs/debug.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n)\n\nconst (\n\tprintDebug = false\n)\n\nfunc debug(args ...interface{}) {\n\tif printDebug {\n\t\tfmt.Println(args...)\n\t}\n}\n\nfunc debugf(spec string, args ...interface{}) {\n\tif printDebug {\n\t\tfmt.Printf(spec, args...)\n\t}\n}\n"
  },
  {
    "path": "catfs/vcs/diff.go",
    "content": "package vcs\n\nimport (\n\tc \"github.com/sahib/brig/catfs/core\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n)\n\n// DiffPair is a pair of nodes that have a relation in regard of a change. The\n// change is described by the masks.\ntype DiffPair struct {\n\tSrc     n.ModNode\n\tDst     n.ModNode\n\tSrcMask ChangeType\n\tDstMask ChangeType\n}\n\n// Diff describes a difference between two commits.\ntype Diff struct {\n\tcfg *SyncOptions\n\n\t// Nodes that were added from remote.\n\tAdded []n.ModNode\n\n\t// Nodes that were removed on remote side.\n\tRemoved []n.ModNode\n\n\t// Nodes (of us) that are missing on the remote side.\n\tMissing []n.ModNode\n\n\t// Nodes from remote that were ignored.\n\tIgnored []n.ModNode\n\n\t// Nodes that were only moved (but nothing else)\n\tMoved []DiffPair\n\n\t// Merged contains nodes where sync is able to combine changes\n\t// on both sides (i.e. one side moved, another modified)\n\tMerged []DiffPair\n\n\t// Conflict contains nodes where sync was not able to combine\n\t// the changes made on both sides.\n\tConflict []DiffPair\n}\n\nfunc (df *Diff) handleAdd(src n.ModNode) error {\n\tdf.Added = append(df.Added, src)\n\treturn nil\n}\nfunc (df *Diff) handleRemove(dst n.ModNode) error {\n\tif df.cfg.IgnoreDeletes {\n\t\tdf.Ignored = append(df.Ignored, dst)\n\t\treturn nil\n\t}\n\n\tdf.Removed = append(df.Removed, dst)\n\treturn nil\n}\n\nfunc (df *Diff) handleMissing(dst n.ModNode) error {\n\t// Handle missing files like \"removed\" for diff.\n\tdf.Missing = append(df.Missing, dst)\n\treturn nil\n}\n\nfunc (df *Diff) handleTypeConflict(src, dst n.ModNode) error {\n\tdf.Ignored = append(df.Ignored, dst)\n\treturn nil\n}\n\nfunc (df *Diff) handleConflictNode(nd n.ModNode) error {\n\tdf.Ignored = append(df.Ignored, nd)\n\treturn nil\n}\n\nfunc (df *Diff) handleMove(src, dst n.ModNode) error {\n\tdf.Moved = append(df.Moved, DiffPair{\n\t\tSrc:     src,\n\t\tDst:     dst,\n\t\tSrcMask: ChangeType(0),\n\t\tDstMask: ChangeType(0),\n\t})\n\n\treturn nil\n}\n\nfunc (df *Diff) handleConflict(src, dst n.ModNode, srcMask, dstMask ChangeType) error {\n\tdf.Conflict = append(df.Conflict, DiffPair{\n\t\tSrc:     src,\n\t\tDst:     dst,\n\t\tSrcMask: srcMask,\n\t\tDstMask: dstMask,\n\t})\n\n\treturn nil\n}\n\nfunc (df *Diff) handleMerge(src, dst n.ModNode, srcMask, dstMask ChangeType) error {\n\tdf.Merged = append(df.Merged, DiffPair{\n\t\tSrc:     src,\n\t\tDst:     dst,\n\t\tSrcMask: srcMask,\n\t\tDstMask: dstMask,\n\t})\n\n\treturn nil\n}\n\n// MakeDiff show the differences between two linkers.\n//\n// Internally it works like Sync() but does not modify anything and just\n// merely records what the algorithm decided to do.\nfunc MakeDiff(lkrSrc, lkrDst *c.Linker, headSrc, headDst *n.Commit, cfg *SyncOptions) (*Diff, error) {\n\tif cfg == nil {\n\t\tcfg = defaultSyncConfig\n\t}\n\n\tdiff := &Diff{cfg: cfg}\n\trsv, err := newResolver(lkrSrc, lkrDst, headSrc, headDst, diff)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := rsv.resolve(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn diff, nil\n}\n"
  },
  {
    "path": "catfs/vcs/diff_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc setupDiffBasicSrcFile(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tc.MustTouch(t, lkrSrc, \"/x.png\", 1)\n\tc.MustTouch(t, lkrDst, \"/y.png\", 2)\n}\n\nfunc checkDiffBasicSrcFileForward(t *testing.T, lkrSrc, lkrDst *c.Linker, diff *Diff) {\n\trequire.Empty(t, diff.Removed)\n\trequire.Empty(t, diff.Conflict)\n\trequire.Empty(t, diff.Ignored)\n\trequire.Empty(t, diff.Merged)\n\n\trequire.Len(t, diff.Added, 1)\n\trequire.Equal(t, \"/x.png\", diff.Added[0].Path())\n\n\trequire.Len(t, diff.Missing, 1)\n\trequire.Equal(t, \"/y.png\", diff.Missing[0].Path())\n}\n\nfunc checkDiffBasicSrcFileBackward(t *testing.T, lkrSrc, lkrDst *c.Linker, diff *Diff) {\n\trequire.Empty(t, diff.Conflict)\n\trequire.Empty(t, diff.Ignored)\n\trequire.Empty(t, diff.Merged)\n\trequire.Empty(t, diff.Removed)\n\n\trequire.Len(t, diff.Added, 1)\n\trequire.Equal(t, \"/y.png\", diff.Added[0].Path())\n\n\trequire.Len(t, diff.Missing, 1)\n\trequire.Equal(t, \"/x.png\", diff.Missing[0].Path())\n}\n\n///////////////\n\nfunc assertDiffIsEmpty(t *testing.T, diff *Diff) {\n\trequire.Empty(t, diff.Added)\n\trequire.Empty(t, diff.Removed)\n\trequire.Empty(t, diff.Conflict)\n\trequire.Empty(t, diff.Ignored)\n\trequire.Empty(t, diff.Merged)\n\trequire.Empty(t, diff.Missing)\n\n}\n\nfunc TestDiff(t *testing.T) {\n\ttcs := []struct {\n\t\tname          string\n\t\tsetup         func(t *testing.T, lkrSrc, lkrDst *c.Linker)\n\t\tcheckForward  func(t *testing.T, lkrSrc, lkrDst *c.Linker, diff *Diff)\n\t\tcheckBackward func(t *testing.T, lkrSrc, lkrDst *c.Linker, diff *Diff)\n\t}{\n\t\t{\n\t\t\tname:          \"basic-file-on-both-sides\",\n\t\t\tsetup:         setupDiffBasicSrcFile,\n\t\t\tcheckForward:  checkDiffBasicSrcFileForward,\n\t\t\tcheckBackward: checkDiffBasicSrcFileBackward,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t\t\tc.MustTouch(t, lkrSrc, \"/README.md\", 42)\n\t\t\t\tc.MustTouch(t, lkrDst, \"/README.md\", 42)\n\n\t\t\t\tc.MustCommitIfPossible(t, lkrDst, \"setup dst\")\n\t\t\t\tc.MustCommitIfPossible(t, lkrSrc, \"setup src\")\n\n\t\t\t\ttc.setup(t, lkrSrc, lkrDst)\n\n\t\t\t\tsrcStatus, err := lkrSrc.Status()\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tdstStatus, err := lkrDst.Status()\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tdiff, err := MakeDiff(lkrSrc, lkrDst, srcStatus, dstStatus, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"diff forward failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\ttc.checkForward(t, lkrSrc, lkrDst, diff)\n\n\t\t\t\tdiff, err = MakeDiff(lkrDst, lkrSrc, dstStatus, srcStatus, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"diff backward failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\ttc.checkBackward(t, lkrSrc, lkrDst, diff)\n\n\t\t\t\t// Checking the same commit should always result into an empty diff:\n\t\t\t\t// We could of course cheat and check the hash to be equal,\n\t\t\t\t// but this is helpful to validate the implementation.\n\t\t\t\tdiff, err = MakeDiff(lkrSrc, lkrSrc, srcStatus, srcStatus, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"diff equal src failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\tassertDiffIsEmpty(t, diff)\n\n\t\t\t\tdiff, err = MakeDiff(lkrDst, lkrDst, dstStatus, dstStatus, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"diff equal dst failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\tassertDiffIsEmpty(t, diff)\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestDiffWithSameLinker(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tc.MustMkdir(t, lkr, \"/old/sub/\")\n\t\tc.MustTouchAndCommit(t, lkr, \"/old/sub/x\", 1)\n\n\t\tc.MustMove(t, lkr, c.MustLookupDirectory(t, lkr, \"/old\"), \"/new\")\n\n\t\t// Fetch current head and status:\n\t\thead, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\t// log.SetOutput(os.Stderr)\n\t\t// log.SetLevel(log.DebugLevel)\n\n\t\tdiff, err := MakeDiff(lkr, lkr, head, status, nil)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"diff forward failed: %v\", err)\n\t\t}\n\n\t\trequire.Empty(t, diff.Added)\n\t\trequire.Empty(t, diff.Removed)\n\t\trequire.Empty(t, diff.Ignored)\n\t\trequire.Empty(t, diff.Conflict)\n\t\trequire.Empty(t, diff.Merged)\n\t\trequire.Empty(t, diff.Missing)\n\n\t\trequire.Len(t, diff.Moved, 1)\n\t\trequire.Equal(t, diff.Moved[0].Src.Path(), \"/old\")\n\t\trequire.Equal(t, diff.Moved[0].Dst.Path(), \"/new\")\n\n\t\tdiff, err = MakeDiff(lkr, lkr, status, head, nil)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"diff backward  failed: %v\", err)\n\t\t}\n\n\t\trequire.Empty(t, diff.Added)\n\t\trequire.Empty(t, diff.Removed)\n\t\trequire.Empty(t, diff.Ignored)\n\t\trequire.Empty(t, diff.Conflict)\n\t\trequire.Empty(t, diff.Merged)\n\t\trequire.Empty(t, diff.Missing)\n\n\t\trequire.Len(t, diff.Moved, 1)\n\t\trequire.Equal(t, diff.Moved[0].Dst.Path(), \"/old\")\n\t\trequire.Equal(t, diff.Moved[0].Src.Path(), \"/new\")\n\n\t\tdiff, err = MakeDiff(lkr, lkr, status, status, nil)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"diff equal head: %v\", err)\n\t\t}\n\n\t\tassertDiffIsEmpty(t, diff)\n\n\t\tdiff, err = MakeDiff(lkr, lkr, status, status, nil)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"diff equal status: %v\", err)\n\t\t}\n\n\t\tassertDiffIsEmpty(t, diff)\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/history.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"strings\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// HistoryWalker provides a way to iterate over all changes a single Node had.\n// It is capable of tracking a file even over multiple moves.\n//\n// The API is loosely modeled after bufio.Scanner and can be used like this:\n//\n//  head, _ := lkr.Head()\n//  nd, _ := lkr.LookupFile(\"/x\")\n//  walker := NewHistoryWalker(lkr, head, nd)\n//  for walker.Next() {\n//      walker.Change()\n//  }\n//\n//  if err := walker.Error(); err != nil {\n//      // Handle errors.\n//  }\ntype HistoryWalker struct {\n\tlkr   *c.Linker\n\thead  *n.Commit\n\tcurr  n.ModNode\n\tnext  n.ModNode\n\terr   error\n\tstate *Change\n}\n\n// NewHistoryWalker will return a new HistoryWalker that will yield changes of\n// `node` starting from the state in `cmt` until the root commit if desired.\n// Note that it is not checked that `node` is actually part of `cmt`.\nfunc NewHistoryWalker(lkr *c.Linker, cmt *n.Commit, node n.ModNode) *HistoryWalker {\n\treturn &HistoryWalker{\n\t\tlkr:  lkr,\n\t\thead: cmt,\n\t\tcurr: node,\n\t}\n}\n\n// maskFromState figures out the change mask based on the current state\nfunc (hw *HistoryWalker) maskFromState(curr, next n.ModNode) ChangeType {\n\tmask := ChangeType(0)\n\n\t// Initial state; no succesor known yet to compare too.\n\tif next == nil {\n\t\treturn mask\n\t}\n\n\tisGhostCurr := curr.Type() == n.NodeTypeGhost\n\tisGhostNext := next.Type() == n.NodeTypeGhost\n\n\tcurrHash, err := n.ContentHash(curr)\n\tif err != nil {\n\t\tlog.Warningf(\"history: misisng content hash for %s (curr)\", curr.Path())\n\t\treturn ChangeTypeNone\n\t}\n\n\tnextHash, err := n.ContentHash(next)\n\tif err != nil {\n\t\tlog.Warningf(\"history: misisng content hash for %s (next)\", next.Path())\n\t\treturn ChangeTypeNone\n\t}\n\n\t// If the hash differs, there's likely a modification going on.\n\tif !currHash.Equal(nextHash) {\n\t\tmask |= ChangeTypeModify\n\t}\n\n\tif next.Path() != curr.Path() {\n\t\tmask |= ChangeTypeMove\n\t} else {\n\t\t// If paths did not move, but the current node is a ghost,\n\t\t// then it means that the node was removed in this commit.\n\t\tif isGhostCurr && !isGhostNext {\n\t\t\tmask |= ChangeTypeRemove\n\t\t}\n\n\t\t// ...otherwise the node was re-added in this commit,\n\t\t// but removed previously.\n\t\tif !isGhostCurr && isGhostNext {\n\t\t\tmask |= ChangeTypeAdd\n\t\t}\n\t}\n\n\treturn mask\n}\n\nfunc parentDirectoryForCommit(lkr *c.Linker, cmt *n.Commit, curr n.Node) (*n.Directory, error) {\n\tnextDirPath := path.Dir(curr.Path())\n\tif nextDirPath == \"/\" {\n\t\treturn nil, nil\n\t}\n\n\troot, err := lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnd, err := root.Lookup(lkr, nextDirPath)\n\tif err != nil {\n\t\tif ie.IsNoSuchFileError(err) {\n\t\t\treturn nil, nil\n\t\t}\n\n\t\treturn nil, err\n\t}\n\n\tdir, ok := nd.(*n.Directory)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn dir, nil\n}\n\n// Check if a node was moved and if so, return the coressponding other half.\n// If it was not moved, this method will return nil, MoveDirNone, nil.\n//\n// This is also supposed to work with moved directories (keep in mind that\n// moving directories will only create a ghost for the moved directory itself,\n// not the children of it):\n//\n// $ tree .\n// a/\n//  b/\n//   c  # a file.\n// $ mv a f\n//\n// For this case we need to go over the parent directories of c (b and f) to\n// find the ghost dir \"a\".  From there we can resolve back to \"c\".\nfunc findMovePartner(lkr *c.Linker, head *n.Commit, curr n.Node) (n.Node, c.MoveDir, error) {\n\tprev, direction, err := lkr.MoveMapping(head, curr)\n\tif err != nil {\n\t\treturn nil, c.MoveDirNone, err\n\t}\n\n\tif prev != nil {\n\t\treturn prev, direction, nil\n\t}\n\n\tchildPath := []string{curr.Name()}\n\n\tfor {\n\t\tparentDir, err := parentDirectoryForCommit(lkr, head, curr)\n\t\tif err != nil {\n\t\t\treturn nil, c.MoveDirNone, e.Wrap(err, \"bad parent dir\")\n\t\t}\n\n\t\tif parentDir == nil {\n\t\t\treturn nil, c.MoveDirNone, nil\n\t\t}\n\n\t\tprevDirNd, direction, err := lkr.MoveMapping(head, parentDir)\n\t\tif err != nil {\n\t\t\treturn nil, c.MoveDirNone, err\n\t\t}\n\n\t\t// Advance for next round:\n\t\tcurr = parentDir\n\n\t\tif prevDirNd == nil {\n\t\t\t// This was not moved; remember step for final lookup:\n\t\t\tchildPath = append([]string{parentDir.Name()}, childPath...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// At this point we know that the dir `parentDir` was moved.\n\t\t// Now we have to find the old version of the node and exit this for loop.\n\n\t\tvar prevDir *n.Directory\n\n\t\tswitch prevDirNd.Type() {\n\t\tcase n.NodeTypeDirectory:\n\t\t\t// This case will probably not happen not very often.\n\t\t\t// Most of the time the old node in a mapping is a ghost.\n\t\t\tvar ok bool\n\t\t\tprevDir, ok = prevDirNd.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn nil, c.MoveDirNone, ie.ErrBadNode\n\t\t\t}\n\t\tcase n.NodeTypeGhost:\n\t\t\t// If it's a ghost we need to unpack it.\n\t\t\tprevDirGhost, ok := prevDirNd.(*n.Ghost)\n\t\t\tif !ok {\n\t\t\t\treturn nil, c.MoveDirNone, e.Wrap(\n\t\t\t\t\tie.ErrBadNode,\n\t\t\t\t\t\"bad previous dir\",\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tprevDir, err = prevDirGhost.OldDirectory()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, c.MoveDirNone, e.Wrap(err, \"bad old directory\")\n\t\t\t}\n\t\tdefault:\n\t\t\treturn nil, c.MoveDirNone, fmt.Errorf(\"unexpected file node\")\n\t\t}\n\n\t\t// By the current logic, the path is still reachable in\n\t\t// the directory the same way before.\n\t\tchild, err := prevDir.Lookup(lkr, strings.Join(childPath, \"/\"))\n\t\tif err != nil {\n\t\t\treturn nil, c.MoveDirNone, err\n\t\t}\n\n\t\treturn child, direction, nil\n\t}\n}\n\nfunc getRealType(nd n.Node) n.NodeType {\n\tif nd.Type() == n.NodeTypeGhost {\n\t\treturn nd.(*n.Ghost).OldNode().Type()\n\t}\n\n\treturn nd.Type()\n}\n\nfunc (hw *HistoryWalker) findReferToPath(prevHeadCommit *n.Commit, prev n.Node) (string, n.Node, error) {\n\tif prev == nil {\n\t\treturn \"\", nil, nil\n\t}\n\n\treferToPath := prev.Path()\n\n\t// Unpack the old ghost before doing anything with it:\n\tif prev.Type() != n.NodeTypeGhost {\n\t\treturn referToPath, prev, nil\n\t}\n\n\tprevGhost, ok := prev.(*n.Ghost)\n\tif !ok {\n\t\treturn \"\", nil, ie.ErrBadNode\n\t}\n\n\tprev = prevGhost.OldNode()\n\n\t// Special case:\n\t// A file has a move partner in this commit,\n\t// but there is no previous node in the commit before.\n\t// We should count this node as added therefore, not moved.\n\tprevRoot, err := hw.lkr.DirectoryByHash(prevHeadCommit.Root())\n\tif err != nil {\n\t\treturn \"\", nil, e.Wrap(err, \"cannot find previous root directory\")\n\t}\n\n\t_, err = prevRoot.Lookup(hw.lkr, prev.Path())\n\tif ie.IsNoSuchFileError(err) {\n\t\tprev = nil\n\t\treferToPath = \"\"\n\t}\n\n\treturn referToPath, prev, nil\n}\n\nfunc (hw *HistoryWalker) findDirectPrev(prevHeadCommit *n.Commit) (n.Node, bool) {\n\tprevRoot, err := hw.lkr.DirectoryByHash(prevHeadCommit.Root())\n\tif err != nil {\n\t\thw.err = e.Wrap(err, \"cannot find previous root directory\")\n\t\treturn nil, false\n\t}\n\n\tprev, err := prevRoot.Lookup(hw.lkr, hw.curr.Path())\n\tif ie.IsNoSuchFileError(err) {\n\t\t// The file did not exist in the previous commit (no ghost!)\n\t\t// It must have been added in this commit.\n\t\thw.state = &Change{\n\t\t\tHead: hw.head,\n\t\t\tMask: ChangeTypeAdd,\n\t\t\tCurr: hw.curr,\n\t\t\tNext: prevHeadCommit,\n\t\t}\n\n\t\t// If curr is a ghost we have a rare case:\n\t\t// The node was added and removed in the same commit.\n\t\tif hw.curr.Type() == n.NodeTypeGhost {\n\t\t\thw.state.Mask |= ChangeTypeRemove\n\t\t}\n\n\t\thw.head = nil\n\t\treturn nil, true\n\t}\n\n\tif err != nil {\n\t\thw.err = e.Wrap(err, \"history: prev root lookup failed\")\n\t\treturn nil, false\n\t}\n\n\treturn prev, false\n}\n\n// Next advances the walker to the next commit.\n// Call State() to get the current state after.\n// If there are no commits left or an error happened,\n// false is returned. True otherwise. You should check\n// after a failing Next() if an error happened via Err()\nfunc (hw *HistoryWalker) Next() bool {\n\tif hw.err != nil {\n\t\treturn false\n\t}\n\n\tif hw.head == nil {\n\t\treturn false\n\t}\n\n\t// Check if this node participated in a move:\n\tprev, direction, err := findMovePartner(hw.lkr, hw.head, hw.curr)\n\tif err != nil {\n\t\thw.err = err\n\t\treturn false\n\t}\n\n\t// Advance to the previous commit:\n\tprevHead, err := hw.head.Parent(hw.lkr)\n\tif err != nil {\n\t\thw.err = err\n\t\treturn false\n\t}\n\n\t// We ran out of commits to check.\n\tif prevHead == nil {\n\t\thw.state = &Change{\n\t\t\tHead: hw.head,\n\t\t\tMask: ChangeTypeAdd,\n\t\t\tCurr: hw.curr,\n\t\t\tNext: nil,\n\t\t}\n\n\t\tif hw.curr.Type() == n.NodeTypeGhost {\n\t\t\thw.state.Mask |= ChangeTypeRemove\n\t\t}\n\n\t\thw.head = nil\n\t\treturn true\n\t}\n\n\tprevHeadCommit, ok := prevHead.(*n.Commit)\n\tif !ok {\n\t\thw.err = e.Wrap(ie.ErrBadNode, \"history: bad commit\")\n\t\treturn false\n\t}\n\n\t// Try to find the node \"prev\" is actually referring to in the old commit:\n\treferToPath, prev, err := hw.findReferToPath(prevHeadCommit, prev)\n\tif err != nil {\n\t\thw.err = e.Wrap(err, \"history: findReferToPath\")\n\t\treturn false\n\t}\n\n\t// Assumption here: The move mapping should only store one move per commit.\n\t// i.e: for move(a, b); a and b should always be in different commits.\n\t// This is enforced by the logic in MakeCommit()\n\tif prev == nil || direction != c.MoveDirSrcToDst {\n\t\t// No valid move mapping found, node was probably not moved.\n\t\t// Assume that we can reach it directly via it's path.\n\t\tvar hasNext bool\n\t\tprev, hasNext = hw.findDirectPrev(prevHeadCommit)\n\t\tif prev == nil {\n\t\t\treturn hasNext\n\t\t}\n\t}\n\n\tprevModNode, ok := prev.(n.ModNode)\n\tif !ok {\n\t\thw.err = e.Wrap(ie.ErrBadNode, \"history: bad mod node\")\n\t\treturn false\n\t}\n\n\t// Pack up the current state:\n\thw.state = &Change{\n\t\tHead: hw.head,\n\t\tMask: hw.maskFromState(hw.curr, prevModNode),\n\t\tCurr: hw.curr,\n\t\tNext: prevHeadCommit,\n\t}\n\n\tif getRealType(prev) != getRealType(hw.curr) {\n\t\t// Edge case: The node changed its types.  This can happen when we\n\t\t// remove a file and create a directory in its place.\n\t\thw.state.Mask = ChangeTypeAdd\n\t\thw.state.Next = nil\n\t\treturn false\n\t}\n\n\t// Special case #1: A ghost that still has a move partner.\n\t// This means the node here was moved to `prev` in this commit.\n\tif hw.curr.Type() == n.NodeTypeGhost && direction == c.MoveDirDstToSrc {\n\t\t// Indicate that this node was indeed removed,\n\t\t// but still lives somewhere else.\n\t\thw.state.Mask |= ChangeTypeMove\n\t\thw.state.MovedTo = referToPath\n\t}\n\n\t// Special case #2: A non-ghost that was moved from somewhere.\n\tif hw.curr.Type() != n.NodeTypeGhost && direction == c.MoveDirSrcToDst {\n\t\thw.state.Mask |= ChangeTypeMove\n\t\thw.state.WasPreviouslyAt = referToPath\n\t}\n\n\t// Swap for the next call to Next():\n\thw.curr, hw.next = prevModNode, hw.curr\n\thw.head = prevHeadCommit\n\treturn true\n}\n\n// State returns the current change state.\n// Note that the change may have ChangeTypeNone as Mask if nothing changed.\n// If you only want states where it actually changed, just filter those.\nfunc (hw *HistoryWalker) State() *Change {\n\treturn hw.state\n}\n\n// Err returns the last happened error or nil if none.\nfunc (hw *HistoryWalker) Err() error {\n\treturn hw.err\n}\n\n// History returns a list of `nd`'s states starting with the commit in `start`\n// and stopping at `stop`. `stop` can be nil; in this case all commits will be\n// iterated. The returned list has the most recent change upfront, and the\n// latest change as last element.\nfunc History(lkr *c.Linker, nd n.ModNode, start, stop *n.Commit) ([]*Change, error) {\n\tstates := make([]*Change, 0)\n\twalker := NewHistoryWalker(lkr, start, nd)\n\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\tstates = append(states, state)\n\n\t\t// Stop searching when he iterated deep enough:\n\t\tif stop != nil && state.Head.TreeHash().Equal(stop.TreeHash()) {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif err := walker.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn states, nil\n}\n"
  },
  {
    "path": "catfs/vcs/history_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/sahib/brig/catfs/db\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc init() {\n\tlog.SetLevel(log.WarnLevel)\n}\n\ntype historySetup struct {\n\tcommits []*n.Commit\n\tpaths   []string\n\tchanges []ChangeType\n\thead    *n.Commit\n\tnode    n.ModNode\n}\n\n/////////////// ACTUAL TESTCASES ///////////////\n\nfunc setupHistoryBasic(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\t_, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tfile, c3 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 3)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryBasicHole(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\t_, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\t// Needed to have a commit that has changes:\n\tc.MustTouch(t, lkr, \"/other\", 23)\n\tfile, c3 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryRemoveImmediately(t *testing.T, lkr *c.Linker) *historySetup {\n\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\tc.MustRemove(t, lkr, x)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\tghostX, err := lkr.LookupGhost(\"/x\")\n\trequire.Nil(t, err)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status},\n\t\tpaths: []string{\n\t\t\t\"/x\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeRemove | ChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: ghostX,\n\t}\n}\n\nfunc setupHistoryRemoved(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustRemove(t, lkr, file)\n\tc3 := c.MustCommit(t, lkr, \"after remove\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to acquire status: %v\", err)\n\t}\n\n\t// removing will copy file and make that a ghost.\n\t// i.e. we need to re-lookup it:\n\tghost, err := lkr.LookupGhost(file.Path())\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to lookup ghost at %s: %v\", file.Path(), err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: ghost,\n\t}\n}\n\nfunc setupHistoryMoved(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustMove(t, lkr, file, \"/y.png\")\n\tc3 := c.MustCommit(t, lkr, \"post-move\")\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c3,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryMoveStaging(t *testing.T, lkr *c.Linker) *historySetup {\n\tc.MustTouch(t, lkr, \"/x.png\", 1)\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustMove(t, lkr, file, \"/y.png\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupMoveInitial(t *testing.T, lkr *c.Linker) *historySetup {\n\tfile := c.MustTouch(t, lkr, \"/x.png\", 1)\n\tc.MustMove(t, lkr, file, \"/y.png\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\t// Should act like the node was added as \"y.png\",\n\t// even though it was moved.\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryMoveAndModify(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\tnewFile := c.MustMove(t, lkr, file, \"/y.png\")\n\tc.MustModify(t, lkr, newFile.(*n.File), 42)\n\tc3 := c.MustCommit(t, lkr, \"post-move-modify\")\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeModify | ChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c3,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryMoveAndModifyStage(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tnewFile := c.MustMove(t, lkr, file, \"/y.png\")\n\tc.MustModify(t, lkr, newFile.(*n.File), 42)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to retrieve status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeModify | ChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryRemoveReadd(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustRemove(t, lkr, file)\n\tc3 := c.MustCommit(t, lkr, \"after remove\")\n\tfile, c4 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c4, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeAdd,\n\t\t\tChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c4,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryRemoveReaddModify(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustRemove(t, lkr, file)\n\tc3 := c.MustCommit(t, lkr, \"after remove\")\n\tfile, c4 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 255)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c4, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeAdd | ChangeTypeModify,\n\t\t\tChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c4,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryRemoveReaddNoModify(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustRemove(t, lkr, file)\n\tc3 := c.MustCommit(t, lkr, \"after remove\")\n\tfile, c4 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c4, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeAdd,\n\t\t\tChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c4,\n\t\tnode: file,\n\t}\n}\n\nfunc setupHistoryMoveCircle(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tnewFile := c.MustMove(t, lkr, file, \"/y.png\")\n\tc3 := c.MustCommit(t, lkr, \"move to y.png\")\n\tnewOldFile := c.MustMove(t, lkr, newFile, \"/x.png\")\n\tc4 := c.MustCommit(t, lkr, \"move back to x.png\")\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c4, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c4,\n\t\tnode: newOldFile,\n\t}\n}\n\nfunc setupHistoryMoveSamePlaceLeft(t *testing.T, lkr *c.Linker) *historySetup {\n\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\ty := c.MustTouch(t, lkr, \"/y\", 1)\n\tc1 := c.MustCommit(t, lkr, \"pre-move\")\n\n\tc.MustMove(t, lkr, x, \"/z\")\n\tc.MustMove(t, lkr, y, \"/z\")\n\tc2 := c.MustCommit(t, lkr, \"post-move\")\n\n\txGhost, err := lkr.LookupGhost(\"/x\")\n\trequire.Nil(t, err)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x\",\n\t\t\t\"/x\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\t// This file was removed, since the destination \"z\"\n\t\t\t// was overwritten by \"y\" and thus we may not count it\n\t\t\t// as moved.\n\t\t\tChangeTypeRemove,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c2,\n\t\tnode: xGhost,\n\t}\n}\n\nfunc setupHistoryTypeChange(t *testing.T, lkr *c.Linker) *historySetup {\n\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\tc.MustCommit(t, lkr, \"added\")\n\tc.MustRemove(t, lkr, x)\n\tc.MustCommit(t, lkr, \"removed\")\n\tdir := c.MustMkdir(t, lkr, \"/x\")\n\tc3 := c.MustCommit(t, lkr, \"mkdir\")\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c3},\n\t\tpaths: []string{\n\t\t\t\"/x\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\t// This file was removed, since the destination \"z\"\n\t\t\t// was overwritten by \"y\" and thus we may not count it\n\t\t\t// as moved.\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c3,\n\t\tnode: dir,\n\t}\n}\n\nfunc setupHistoryMoveSamePlaceRight(t *testing.T, lkr *c.Linker) *historySetup {\n\tx := c.MustTouch(t, lkr, \"/x\", 1)\n\ty := c.MustTouch(t, lkr, \"/y\", 1)\n\tc1 := c.MustCommit(t, lkr, \"pre-move\")\n\n\tc.MustMove(t, lkr, x, \"/z\")\n\tc.MustMove(t, lkr, y, \"/z\")\n\tc2 := c.MustCommit(t, lkr, \"post-move\")\n\n\tyGhost, err := lkr.LookupGhost(\"/y\")\n\trequire.Nil(t, err)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y\",\n\t\t\t\"/y\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove | ChangeTypeRemove,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c2,\n\t\tnode: yGhost,\n\t}\n}\n\nfunc setupHistoryMoveAndReaddFromMoved(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\tnewFile := c.MustMove(t, lkr, file, \"/y.png\")\n\t_, c3 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 23)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/y.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c3,\n\t\tnode: newFile,\n\t}\n}\n\nfunc setupHistoryMultipleMovesPerCommit(t *testing.T, lkr *c.Linker) *historySetup {\n\t// Check if we can track multiple moves per commit:\n\tfileX, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfileY := c.MustMove(t, lkr, fileX, \"/y.png\")\n\tc.MustMove(t, lkr, fileY, \"/z.png\")\n\n\tfileZNew, err := c.Stage(\n\t\tlkr,\n\t\t\"/z.png\",\n\t\th.TestDummy(t, 2),\n\t\th.TestDummy(t, 2),\n\t\tuint64(2),\n\t\t-1,\n\t\tnil,\n\t\ttime.Now(),\n\t\tfalse,\n\t)\n\trequire.Nil(t, err)\n\n\tc2 := c.MustCommit(t, lkr, \"Moved around\")\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/z.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove | ChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c2,\n\t\tnode: fileZNew,\n\t}\n}\n\nfunc setupHistoryMultipleMovesInStage(t *testing.T, lkr *c.Linker) *historySetup {\n\t// Check if we can track multiple moves per commit:\n\tfileX, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfileY := c.MustMove(t, lkr, fileX, \"/y.png\")\n\tfileZ := c.MustMove(t, lkr, fileY, \"/z.png\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to acquire status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c1},\n\t\tpaths: []string{\n\t\t\t\"/z.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: fileZ,\n\t}\n}\n\nfunc setupHistoryMoveAndReaddFromAdded(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\n\tc.MustMove(t, lkr, file, \"/y.png\")\n\tc3 := c.MustCommit(t, lkr, \"move to y.png\")\n\treaddedFile, c4 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 23)\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{c4, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeAdd | ChangeTypeModify,\n\t\t\tChangeTypeMove | ChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: c4,\n\t\tnode: readdedFile,\n\t}\n}\n\nfunc setupMoveDirectoryWithChild(t *testing.T, lkr *c.Linker) *historySetup {\n\tdir := c.MustMkdir(t, lkr, \"/sub\")\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/sub/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/sub/x.png\", 2)\n\n\tc.MustMove(t, lkr, dir, \"/moved-sub\")\n\tc3 := c.MustCommit(t, lkr, \"moved\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/moved-sub/x.png\",\n\t\t\t\"/moved-sub/x.png\",\n\t\t\t\"/sub/x.png\",\n\t\t\t\"/sub/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: file,\n\t}\n}\n\nfunc setupDirectoryHistory(t *testing.T, lkr *c.Linker) *historySetup {\n\tdir := c.MustMkdir(t, lkr, \"/src\")\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/src/x.png\", 1)\n\t_, c2 := c.MustTouchAndCommit(t, lkr, \"/src/x.png\", 2)\n\n\tnewDir := c.MustMove(t, lkr, dir, \"/dst\")\n\tc3 := c.MustCommit(t, lkr, \"move\")\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/dst\",\n\t\t\t\"/dst\",\n\t\t\t\"/src\",\n\t\t\t\"/src\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeMove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: newDir,\n\t}\n}\n\nfunc setupGhostHistory(t *testing.T, lkr *c.Linker) *historySetup {\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\tfile, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\tc.MustMove(t, lkr, file, \"/y.png\")\n\tc3 := c.MustCommit(t, lkr, \"move\")\n\n\tghost, err := lkr.LookupGhost(\"/x.png\")\n\trequire.Nil(t, err)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get status: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1},\n\t\tpaths: []string{\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t\t\"/x.png\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\t// The \"ChangeTypeMove\" here is a hint that\n\t\t\t// this ghost was part of a move.\n\t\t\tChangeTypeMove | ChangeTypeRemove,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: ghost,\n\t}\n}\n\nfunc setupEdgeRoot(t *testing.T, lkr *c.Linker) *historySetup {\n\tinit, err := lkr.Head()\n\tif err != nil {\n\t\tt.Fatalf(\"could not get head: %v\", err)\n\t}\n\n\t_, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\t_, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\t_, c3 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 3)\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get status: %v\", err)\n\t}\n\n\troot, err := lkr.Root()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to retrieve root: %v\", err)\n\t}\n\n\treturn &historySetup{\n\t\tcommits: []*n.Commit{status, c3, c2, c1, init},\n\t\tpaths: []string{\n\t\t\t\"/\",\n\t\t\t\"/\",\n\t\t\t\"/\",\n\t\t\t\"/\",\n\t\t\t\"/\",\n\t\t},\n\t\tchanges: []ChangeType{\n\t\t\tChangeTypeNone,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeModify,\n\t\t\tChangeTypeAdd,\n\t\t},\n\t\thead: status,\n\t\tnode: root,\n\t}\n}\n\ntype setupFunc func(t *testing.T, lkr *c.Linker) *historySetup\n\n// Registry bank for all testcases:\nfunc TestHistoryWalker(t *testing.T) {\n\ttcs := []struct {\n\t\tname  string\n\t\tsetup setupFunc\n\t}{\n\t\t{\n\t\t\tname:  \"no-frills\",\n\t\t\tsetup: setupHistoryBasic,\n\t\t}, {\n\t\t\tname:  \"holes\",\n\t\t\tsetup: setupHistoryBasicHole,\n\t\t}, {\n\t\t\tname:  \"remove-it\",\n\t\t\tsetup: setupHistoryRemoved,\n\t\t}, {\n\t\t\tname:  \"remove-readd-simple\",\n\t\t\tsetup: setupHistoryRemoveReadd,\n\t\t}, {\n\t\t\tname:  \"remove-immedidately\",\n\t\t\tsetup: setupHistoryRemoveImmediately,\n\t\t}, {\n\t\t\tname:  \"remove-readd-modify\",\n\t\t\tsetup: setupHistoryRemoveReaddModify,\n\t\t}, {\n\t\t\tname:  \"remove-readd-no-modify\",\n\t\t\tsetup: setupHistoryRemoveReaddNoModify,\n\t\t}, {\n\t\t\tname:  \"move-once\",\n\t\t\tsetup: setupHistoryMoved,\n\t\t}, {\n\t\t\tname:  \"move-multiple-per-commit\",\n\t\t\tsetup: setupHistoryMultipleMovesPerCommit,\n\t\t}, {\n\t\t\tname:  \"move-multiple-per-stage\",\n\t\t\tsetup: setupHistoryMultipleMovesInStage,\n\t\t}, {\n\t\t\tname:  \"move-once-stage\",\n\t\t\tsetup: setupHistoryMoveStaging,\n\t\t}, {\n\t\t\tname:  \"move-initial\",\n\t\t\tsetup: setupMoveInitial,\n\t\t}, {\n\t\t\tname:  \"move-modify\",\n\t\t\tsetup: setupHistoryMoveAndModify,\n\t\t}, {\n\t\t\tname:  \"move-to-same-place-left\",\n\t\t\tsetup: setupHistoryMoveSamePlaceLeft,\n\t\t}, {\n\t\t\tname:  \"move-to-same-place-right\",\n\t\t\tsetup: setupHistoryMoveSamePlaceRight,\n\t\t}, {\n\t\t\tname:  \"move-modify-stage\",\n\t\t\tsetup: setupHistoryMoveAndModifyStage,\n\t\t}, {\n\t\t\tname:  \"move-circle\",\n\t\t\tsetup: setupHistoryMoveCircle,\n\t\t}, {\n\t\t\tname:  \"move-readd-from-moved-perspective\",\n\t\t\tsetup: setupHistoryMoveAndReaddFromMoved,\n\t\t}, {\n\t\t\tname:  \"move-readd-from-readded-perspective\",\n\t\t\tsetup: setupHistoryMoveAndReaddFromAdded,\n\t\t}, {\n\t\t\tname:  \"move-directory-with-child\",\n\t\t\tsetup: setupMoveDirectoryWithChild,\n\t\t}, {\n\t\t\tname:  \"directory-simple\",\n\t\t\tsetup: setupDirectoryHistory,\n\t\t}, {\n\t\t\tname:  \"ghost-simple\",\n\t\t\tsetup: setupGhostHistory,\n\t\t}, {\n\t\t\tname:  \"edge-root\",\n\t\t\tsetup: setupEdgeRoot,\n\t\t}, {\n\t\t\tname:  \"edge-type-change\",\n\t\t\tsetup: setupHistoryTypeChange,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\t\t\tsetup := tc.setup(t, lkr)\n\t\t\t\ttestHistoryRunner(t, lkr, setup)\n\t\t\t})\n\t\t})\n\t}\n}\n\n// Actual test runner:\nfunc testHistoryRunner(t *testing.T, lkr *c.Linker, setup *historySetup) {\n\tidx := 0\n\twalker := NewHistoryWalker(lkr, setup.head, setup.node)\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\t// fmt.Println(\"TYPE\", state.Mask)\n\t\t// fmt.Println(\"HEAD\", state.Head)\n\t\t// fmt.Println(\"NEXT\", state.Next)\n\t\t// fmt.Println(\"===\")\n\n\t\tif idx >= len(setup.paths) {\n\t\t\tt.Fatalf(\"more history entries than expected\")\n\t\t}\n\n\t\tif setup.paths[idx] != state.Curr.Path() {\n\t\t\tt.Fatalf(\n\t\t\t\t\"Wrong path at index `%d`: %s (want: %s)\",\n\t\t\t\tidx+1, state.Curr.Path(), setup.paths[idx],\n\t\t\t)\n\t\t}\n\n\t\tif state.Mask != setup.changes[idx] {\n\t\t\tt.Errorf(\n\t\t\t\t\"%d: Wrong type of state: %v (want: %s)\",\n\t\t\t\tidx,\n\t\t\t\tstate.Mask,\n\t\t\t\tsetup.changes[idx],\n\t\t\t)\n\t\t}\n\n\t\tif !setup.commits[idx].TreeHash().Equal(state.Head.TreeHash()) {\n\t\t\tt.Fatalf(\"Hash in commit differs\")\n\t\t}\n\n\t\tidx++\n\t}\n\n\tif err := walker.Err(); err != nil {\n\t\tt.Fatalf(\n\t\t\t\"walker failed at index (%d/%d): %v\",\n\t\t\tidx+1,\n\t\t\tlen(setup.commits),\n\t\t\terr,\n\t\t)\n\t}\n}\n\n// Test the History() utility based on HistoryWalker.\nfunc TestHistoryUtil(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tc1File, c1 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 1)\n\t\tc1File = c1File.Copy(c1File.Inode()).(*n.File)\n\n\t\tc2File, c2 := c.MustTouchAndCommit(t, lkr, \"/x.png\", 2)\n\t\tc2File = c2File.Copy(c2File.Inode()).(*n.File)\n\n\t\tc3File := c.MustMove(t, lkr, c2File.Copy(c2File.Inode()), \"/y.png\")\n\t\tc3File = c3File.Copy(c3File.Inode()).(*n.File)\n\t\tc3 := c.MustCommit(t, lkr, \"move to y.png\")\n\n\t\tc4File, c4 := c.MustTouchAndCommit(t, lkr, \"/y.png\", 23)\n\t\tc4File = c4File.Copy(c4File.Inode()).(*n.File)\n\n\t\tstates, err := History(lkr, c4File, c4, nil)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"History without stop commit failed: %v\", err)\n\t\t}\n\n\t\texpected := []*Change{\n\t\t\t{\n\t\t\t\tHead: c4,\n\t\t\t\tCurr: c4File,\n\t\t\t\tMask: ChangeTypeModify,\n\t\t\t}, {\n\t\t\t\tHead: c3,\n\t\t\t\tCurr: c3File,\n\t\t\t\tMask: ChangeTypeMove,\n\t\t\t}, {\n\t\t\t\tHead: c2,\n\t\t\t\tCurr: c2File,\n\t\t\t\tMask: ChangeTypeModify,\n\t\t\t}, {\n\t\t\t\tHead: c1,\n\t\t\t\tCurr: c1File,\n\t\t\t\tMask: ChangeTypeAdd,\n\t\t\t},\n\t\t}\n\n\t\tfor idx, state := range states {\n\t\t\texpect := expected[idx]\n\t\t\trequire.Equal(t, state.Mask, expect.Mask, \"Mask differs\")\n\t\t\trequire.Equal(t, state.Head, expect.Head, \"Head differs\")\n\t\t\trequire.Equal(t, state.Curr, expect.Curr, \"Curr differs\")\n\t\t}\n\t})\n}\n\nfunc TestHistoryWithNoParent(t *testing.T) {\n\tc.WithDummyKv(t, func(kv db.Database) {\n\t\tlkr := c.NewLinker(kv)\n\t\tlkr.SetOwner(\"alice\")\n\n\t\tfile, head := c.MustTouchAndCommit(t, lkr, \"/x\", 1)\n\n\t\thist, err := History(lkr, file, head, nil)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, hist, 1)\n\t\trequire.Equal(t, hist[0].Mask, ChangeTypeAdd)\n\t})\n}\n\n// Regression test:\n// Directories loose move history operation\n// when restarting the daemon in between.\nfunc TestHistoryMovedDirsWithReloadedLinker(t *testing.T) {\n\tvalidateHist := func(hist []*Change) {\n\t\trequire.Len(t, hist, 2)\n\t\trequire.Equal(t, hist[0].Mask, ChangeTypeMove)\n\t\trequire.Equal(t, hist[1].Mask, ChangeTypeAdd)\n\t}\n\n\tc.WithReloadingLinker(t, func(lkr *c.Linker) {\n\t\tchildDir := c.MustMkdir(t, lkr, \"/child\")\n\t\tc.MustCommit(t, lkr, \"created\")\n\t\tmovedDir := c.MustMove(t, lkr, childDir, \"/moved_child\")\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\thist, err := History(lkr, movedDir, status, nil)\n\t\trequire.Nil(t, err)\n\n\t\tvalidateHist(hist)\n\t}, func(lkr *c.Linker) {\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\tchildDir, err := lkr.LookupDirectory(\"/moved_child\")\n\t\trequire.Nil(t, err)\n\n\t\thist, err := History(lkr, childDir, status, nil)\n\t\trequire.Nil(t, err)\n\n\t\tvalidateHist(hist)\n\t})\n}\n\n// Regression test:\nfunc TestHistoryOfMovedNestedDir(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tc.MustMkdir(t, lkr, \"/src/core\")\n\t\tc.MustTouch(t, lkr, \"/src/core/linker.go\", 3)\n\t\tc.MustCommit(t, lkr, \"added\")\n\n\t\tc.MustMove(t, lkr, c.MustLookupDirectory(t, lkr, \"/src\"), \"/dst\")\n\t\tc.MustCommit(t, lkr, \"move\")\n\n\t\tstatus, err := lkr.Status()\n\t\trequire.Nil(t, err)\n\n\t\t// This raised an error before, since \"/dst\" was missing\n\t\t// in the \"added\" commit.\n\t\thist, err := History(lkr, c.MustLookupDirectory(t, lkr, \"/dst/core\"), status, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, \"/dst/core\", hist[0].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeNone, hist[0].Mask)\n\t\trequire.Equal(t, \"/dst/core\", hist[1].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeMove, hist[1].Mask)\n\t\trequire.Equal(t, \"/src/core\", hist[1].WasPreviouslyAt)\n\t\trequire.Equal(t, \"/src/core\", hist[2].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeAdd, hist[2].Mask)\n\n\t\tfile, err := lkr.LookupModNode(\"/dst/core/linker.go\")\n\t\trequire.Nil(t, err)\n\n\t\thist, err = History(lkr, file, status, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, \"/dst/core/linker.go\", hist[0].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeNone, hist[0].Mask)\n\t\trequire.Equal(t, \"/dst/core/linker.go\", hist[1].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeMove, hist[1].Mask)\n\t\trequire.Equal(t, \"/src/core/linker.go\", hist[1].WasPreviouslyAt)\n\t\trequire.Equal(t, \"/src/core/linker.go\", hist[2].Curr.Path())\n\t\trequire.Equal(t, ChangeTypeAdd, hist[2].Mask)\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/mapper.go",
    "content": "package vcs\n\n// NOTE ON CODING STYLE:\n// If you modify something in here, make sure to always\n// incude \"src\" or \"dst\" in the symbol name to indicate\n// to which side of the sync/diff this symbol belongs!\n// Too many hours have been spent on confused debugging.\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/sahib/brig/util/trie\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// MapPair is a pair of nodes (a file or a directory)\n// One of Src and Dst might be nil:\n// - If Src is nil, the node was removed on the remote side.\n// - If Dst is nil, the node was added on the remote side.\n//\n// Both shall never be nil at the same time.\n//\n// If TypeMismatch is true, nodes have a different type\n// and need conflict resolution.\n//\n// If SrcWasRemoved is true, the node was deleted on the\n// remote's side and we might need to propagate this remove.\n// Otherwise, if src is nil, dst can be considered as missing\n// file on src's side.\n//\n// If SrcWasMoved is true, the two nodes were purely moved,\n// but not modified otherwise.\ntype MapPair struct {\n\tSrc n.ModNode\n\tDst n.ModNode\n\n\tSrcWasRemoved bool\n\tSrcWasMoved   bool\n\tTypeMismatch  bool\n}\n\n// flags that are set during the mapper run.\n// The zero value of this struct should mean \"disabled\".\ntype flags struct {\n\t// The node was visited on the source side.\n\t// This should prohibit duplicate visits.\n\tsrcVisited bool\n\n\t// The file was already reported/tested equal on src side.\n\tsrcHandled bool\n\n\t// The file was already reported/tested equal on dst side.\n\tdstHandled bool\n\n\t// The directory consists completely of other src reports.\n\tsrcComplete bool\n\n\t// The directory consists completely of other dst reports.\n\tdstComplete bool\n}\n\n// Mapper holds the state for the mapping algorithm.\ntype Mapper struct {\n\tlkrSrc, lkrDst *c.Linker\n\tsrcRoot        n.Node\n\tsrcHead        *n.Commit\n\tdstHead        *n.Commit\n\tflagsRoot      *trie.Node\n\tfn             func(pair MapPair) error\n}\n\nfunc (ma *Mapper) getFlags(path string) *flags {\n\tchild := ma.flagsRoot.Lookup(path)\n\tif child == nil {\n\t\tchild = ma.flagsRoot.InsertWithData(path, &flags{})\n\t}\n\n\tif child.Data == nil {\n\t\tchild.Data = &flags{}\n\t}\n\n\treturn child.Data.(*flags)\n}\n\nfunc (ma *Mapper) setSrcVisited(nd n.Node) {\n\tma.getFlags(nd.Path()).srcVisited = true\n}\n\nfunc (ma *Mapper) setSrcHandled(nd n.Node) {\n\tma.getFlags(nd.Path()).srcHandled = true\n}\n\nfunc (ma *Mapper) setDstHandled(nd n.Node) {\n\tma.getFlags(nd.Path()).dstHandled = true\n}\n\nfunc (ma *Mapper) setSrcComplete(nd n.Node) {\n\tma.getFlags(nd.Path()).srcComplete = true\n}\n\nfunc (ma *Mapper) setDstComplete(nd n.Node) {\n\tma.getFlags(nd.Path()).dstComplete = true\n}\n\nfunc (ma *Mapper) isSrcVisited(nd n.Node) bool {\n\treturn ma.getFlags(nd.Path()).srcVisited\n}\n\nfunc (ma *Mapper) isSrcHandled(nd n.Node) bool {\n\treturn ma.getFlags(nd.Path()).srcHandled\n}\n\nfunc (ma *Mapper) isDstHandled(nd n.Node) bool {\n\treturn ma.getFlags(nd.Path()).dstHandled\n}\n\nfunc (ma *Mapper) isSrcComplete(nd n.Node) bool {\n\treturn ma.getFlags(nd.Path()).srcComplete\n}\n\nfunc (ma *Mapper) isDstComplete(nd n.Node) bool {\n\treturn ma.getFlags(nd.Path()).dstComplete\n}\n\n////////////////////\n\nfunc (ma *Mapper) report(src, dst n.ModNode, typeMismatch, isRemove, isMove bool) error {\n\tif src != nil {\n\t\tma.setSrcHandled(src)\n\t}\n\n\tif dst != nil {\n\t\tma.setDstHandled(dst)\n\t}\n\n\tdebug(\"=> report\", src, dst)\n\treturn ma.fn(MapPair{\n\t\tSrc:           src,\n\t\tDst:           dst,\n\t\tTypeMismatch:  typeMismatch,\n\t\tSrcWasRemoved: isRemove,\n\t\tSrcWasMoved:   isMove,\n\t})\n}\n\nfunc (ma *Mapper) reportByType(src, dst n.ModNode) error {\n\tif src == nil || dst == nil {\n\t\treturn ma.report(src, dst, false, false, false)\n\t}\n\n\tisTypeMismatch := src.Type() != dst.Type()\n\tif isTypeMismatch {\n\t\treturn ma.report(src, dst, isTypeMismatch, false, false)\n\t}\n\n\tif src.ContentHash().Equal(dst.ContentHash()) {\n\t\t// If the files are equal, but the location changed,\n\t\t// the file were moved.\n\t\tif src.Path() != dst.Path() {\n\t\t\treturn ma.report(src, dst, isTypeMismatch, false, true)\n\t\t}\n\n\t\t// The files appear to be equal.\n\t\t// We need to remember to not output them again.\n\t\tma.setSrcHandled(src)\n\t\tma.setDstHandled(dst)\n\t\treturn nil\n\t}\n\n\treturn ma.report(src, dst, isTypeMismatch, false, false)\n}\n\nfunc (ma *Mapper) mapFile(srcCurr *n.File, dstFilePath string) error {\n\t// Check if we already visited this file.\n\tif ma.isSrcVisited(srcCurr) {\n\t\treturn nil\n\t}\n\n\tdebug(\"map file\", srcCurr.Path(), dstFilePath)\n\n\t// Remember that we visited this node.\n\tma.setSrcVisited(srcCurr)\n\n\tdstCurr, err := ma.lkrDst.LookupNodeAt(ma.dstHead, dstFilePath)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn err\n\t}\n\n\tif dstCurr == nil {\n\t\t// We do not have this node yet, mark it for copying.\n\t\treturn ma.report(srcCurr, nil, false, false, false)\n\t}\n\n\tswitch typ := dstCurr.Type(); typ {\n\tcase n.NodeTypeDirectory:\n\t\t// Our node seems to be a directory and theirs a file.\n\t\t// That's not something we can fix.\n\t\tdstDir, ok := dstCurr.(*n.Directory)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\t// File and Directory don't go well together.\n\t\treturn ma.report(srcCurr, dstDir, true, false, false)\n\tcase n.NodeTypeFile:\n\t\t// We have two competing files.\n\t\tdstFile, ok := dstCurr.(*n.File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\treturn ma.reportByType(srcCurr, dstFile)\n\tcase n.NodeTypeGhost:\n\t\t// It's still possible that the file was moved or removed on our side.\n\t\taliveDstCurr, err := ma.ghostToAlive(ma.lkrDst, ma.dstHead, dstCurr)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif aliveDstCurr == nil {\n\t\t\tdstGhost, ok := dstCurr.(*n.Ghost)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\t// File was removed by us.\n\t\t\treturn ma.reportByType(srcCurr, dstGhost)\n\t\t}\n\n\t\treturn ma.reportByType(srcCurr, aliveDstCurr)\n\tdefault:\n\t\treturn e.Wrapf(ie.ErrBadNode, \"Unexpected node type in syncFile: %v\", typ)\n\t}\n}\n\nfunc (ma *Mapper) mapDirectoryContents(srcCurr *n.Directory, dstPath string) error {\n\tsrcChildren, err := srcCurr.ChildrenSorted(ma.lkrSrc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, srcChild := range srcChildren {\n\t\tchildDstPath := path.Join(dstPath, srcChild.Name())\n\t\tswitch srcChild.Type() {\n\t\tcase n.NodeTypeDirectory:\n\t\t\tsrcChildDir, ok := srcChild.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tif err := ma.mapDirectory(srcChildDir, childDstPath, false); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tma.setSrcHandled(srcChildDir)\n\t\t\tdstCurrNd, err := ma.lkrDst.LookupModNodeAt(ma.dstHead, childDstPath)\n\t\t\tif err == nil {\n\t\t\t\tma.setDstHandled(dstCurrNd)\n\t\t\t}\n\t\tcase n.NodeTypeFile:\n\t\t\tsrcChildFile, ok := srcChild.(*n.File)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tif err := ma.mapFile(srcChildFile, childDstPath); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tma.setSrcHandled(srcChildFile)\n\t\tcase n.NodeTypeGhost:\n\t\t\t// remote ghosts are ignored, since they were handled beforehand.\n\t\tdefault:\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (ma *Mapper) mapDirectory(srcCurr *n.Directory, dstPath string, force bool) error {\n\tif !force {\n\t\tif ma.isSrcVisited(srcCurr) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tlog.Debugf(\"mapping dir %s <-> %s\", srcCurr.Path(), dstPath)\n\n\tma.setSrcVisited(srcCurr)\n\tdstCurrNd, err := ma.lkrDst.LookupModNodeAt(ma.dstHead, dstPath)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn err\n\t}\n\n\tif dstCurrNd == nil {\n\t\t// We never heard of this directory apparently. Go sync it.\n\t\treturn ma.report(srcCurr, nil, false, false, false)\n\t}\n\n\t// Special case: The node might have been moved on dst's side.\n\t// We might notice this, if dst type is a ghost.\n\tif dstCurrNd.Type() == n.NodeTypeGhost {\n\t\taliveDstCurr, err := ma.ghostToAlive(ma.lkrDst, ma.dstHead, dstCurrNd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// No sibling found for this ghost.\n\t\tif aliveDstCurr == nil {\n\t\t\treturn ma.report(srcCurr, nil, false, false, false)\n\t\t}\n\n\t\tlocalBackCheck, err := ma.lkrSrc.LookupNodeAt(ma.srcHead, aliveDstCurr.Path())\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif localBackCheck == nil || localBackCheck.Type() == n.NodeTypeGhost {\n\t\t\t// Delete the guard again, due to the recursive call.\n\t\t\treturn ma.mapDirectory(srcCurr, aliveDstCurr.Path(), true)\n\t\t}\n\n\t\treturn ma.report(srcCurr, nil, false, false, false)\n\t}\n\n\tif dstCurrNd.Type() != n.NodeTypeDirectory {\n\t\treturn ma.report(srcCurr, dstCurrNd, true, false, false)\n\t}\n\n\tdstCurr, ok := dstCurrNd.(*n.Directory)\n\tif !ok {\n\t\treturn ie.ErrBadNode\n\t}\n\n\t// Check if we're lucky and the directory hash is equal:\n\tif srcCurr.ContentHash().Equal(dstCurr.ContentHash()) {\n\t\t// Remember that we visited this subtree.\n\t\tma.setSrcHandled(srcCurr)\n\t\tma.setDstHandled(dstCurr)\n\n\t\tlog.Debugf(\n\t\t\t\"%s and %s have the same content; skipping\",\n\t\t\tsrcCurr.Path(),\n\t\t\tdstCurr.Path(),\n\t\t)\n\n\t\tif srcCurr.Path() != dstCurr.Path() {\n\t\t\treturn ma.report(srcCurr, dstCurr, false, false, true)\n\t\t}\n\n\t\t// If they even have the same tree hash, we can be sure that both\n\t\t// use the same path layout even. No work to do in this case.\n\t\tif srcCurr.TreeHash().Equal(dstCurr.TreeHash()) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Both sides have this directory, but the content differs.\n\t// We need to figure out recursively what exactly is different.\n\treturn ma.mapDirectoryContents(srcCurr, dstPath)\n}\n\nfunc (ma *Mapper) ghostToAlive(lkr *c.Linker, head *n.Commit, nd n.Node) (n.ModNode, error) {\n\tpartnerNd, _, err := lkr.MoveEntryPoint(nd)\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"move entry point\")\n\t}\n\n\t// No move partner found.\n\tif partnerNd == nil {\n\t\treturn nil, nil\n\t}\n\n\t// We want to go forward in history.\n\t// In theory, the other direction should not happen,\n\t// since we're always operating on ghosts here.\n\t// if moveDir != c.MoveDirDstToSrc {\n\t// \tlog.Debugf(\"bad move direction\")\n\t// \treturn nil, nil\n\t// }\n\n\t// Go forward to the most recent version of this node.\n\t// This is no guarantee yet that this node is reachable\n\t// from the head commit (it might have been removed...)\n\tmostRecent, err := lkr.NodeByInode(partnerNd.Inode())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif mostRecent == nil {\n\t\terr = fmt.Errorf(\"mapper: No such node with inode %d\", partnerNd.Inode())\n\t\treturn nil, err\n\t}\n\n\t// This should usually not happen, but just to be sure.\n\tif mostRecent.Type() == n.NodeTypeGhost {\n\t\treturn nil, nil\n\t}\n\n\treacheable, err := lkr.LookupNodeAt(head, mostRecent.Path())\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn nil, e.Wrapf(err, \"ghost2alive: lookupAt\")\n\t}\n\n\tif reacheable == nil {\n\t\treturn nil, nil\n\t}\n\n\tif reacheable.Inode() != mostRecent.Inode() {\n\t\t// The node is still reachable, but it was changed\n\t\t// (i.e. by removing and re-adding it -> different inode)\n\t\treturn nil, nil\n\t}\n\n\treacheableModNd, ok := reacheable.(n.ModNode)\n\tif !ok {\n\t\treturn nil, ie.ErrBadNode\n\t}\n\n\treturn reacheableModNd, nil\n}\n\ntype ghostDir struct {\n\t// source directory.\n\tsrcDir *n.Directory\n\n\t// mapped path in lkrDst\n\tdstPath string\n}\n\nfunc (ma *Mapper) handleGhostsWithoutAliveNd(srcNd n.Node) error {\n\tdstNd, err := ma.lkrDst.LookupNodeAt(ma.dstHead, srcNd.Path())\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn err\n\t}\n\n\t// Check if we maybe already removed or moved the node:\n\tif dstNd != nil && dstNd.Type() != n.NodeTypeGhost {\n\t\tdstModNd, ok := dstNd.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\t// Report that the file is missing on src's side.\n\t\treturn ma.report(nil, dstModNd, false, true, false)\n\t}\n\n\t// does not exist on both sides, nothing to report.\n\treturn nil\n}\n\nfunc (ma *Mapper) extractGhostDirs() ([]ghostDir, error) {\n\tmovedSrcDirs := []ghostDir{}\n\treturn movedSrcDirs, n.Walk(ma.lkrSrc, ma.srcRoot, true, func(srcNd n.Node) error {\n\t\t// Ignore everything that is not a ghost.\n\t\tif srcNd.Type() != n.NodeTypeGhost {\n\t\t\treturn nil\n\t\t}\n\n\t\taliveSrcNd, err := ma.ghostToAlive(ma.lkrSrc, ma.srcHead, srcNd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif aliveSrcNd == nil {\n\t\t\t// It's a ghost, but it has no living counterpart.\n\t\t\t// This node *might* have been removed on the remote side.\n\t\t\t// Try to see if we have a node at this path, the next step\n\t\t\t// of sync then needs to decide if the node needs to be removed.\n\t\t\treturn ma.handleGhostsWithoutAliveNd(srcNd)\n\t\t}\n\n\t\t// At this point we know that the ghost related to a moved file.\n\t\t// Check if we have a file at the same place.\n\t\tdstNd, err := ma.lkrDst.LookupNodeAt(ma.dstHead, aliveSrcNd.Path())\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif dstNd != nil && dstNd.Type() != n.NodeTypeGhost {\n\t\t\t// The node already exists in our place. No way we can really merge\n\t\t\t// it cleanly, so just handle the ghost as normal file and potentially\n\t\t\t// apply the normal conflict resolution later on.\n\t\t\treturn nil\n\t\t}\n\n\t\tdstRefNd, err := ma.lkrDst.LookupNodeAt(ma.dstHead, srcNd.Path())\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif dstRefNd != nil {\n\t\t\t// Node maybe also moved. If so, try to resolve it to the full node:\n\t\t\tif dstRefNd.Type() == n.NodeTypeGhost {\n\t\t\t\taliveOrig, err := ma.ghostToAlive(ma.lkrDst, ma.dstHead, dstRefNd)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tdstRefNd = aliveOrig\n\t\t\t}\n\t\t}\n\n\t\t// The node was removed on dst:\n\t\t// We will detect the removal later.\n\t\tif dstRefNd == nil {\n\t\t\treturn nil\n\t\t}\n\n\t\tdstRefModNd, ok := dstRefNd.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn e.Wrapf(ie.ErrBadNode, \"dstRefModNd is not a file or directory: %v\", dstRefNd)\n\t\t}\n\n\t\tswitch aliveSrcNd.Type() {\n\t\tcase n.NodeTypeFile:\n\t\t\t// Mark those both ghosts and original node as visited.\n\t\t\terr = ma.mapFile(aliveSrcNd.(*n.File), dstRefModNd.Path())\n\t\t\tma.setSrcVisited(aliveSrcNd)\n\t\t\tma.setSrcVisited(srcNd)\n\t\t\treturn err\n\t\tcase n.NodeTypeDirectory:\n\t\t\t// ma.setSrcVisited(srcNd)\n\t\t\tif dstRefNd.Type() != n.NodeTypeDirectory {\n\t\t\t\treturn ma.report(aliveSrcNd, dstRefModNd, true, false, false)\n\t\t\t}\n\n\t\t\taliveSrcDir, ok := aliveSrcNd.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tmovedSrcDirs = append(movedSrcDirs, ghostDir{\n\t\t\t\tsrcDir:  aliveSrcDir,\n\t\t\t\tdstPath: dstRefNd.Path(),\n\t\t\t})\n\n\t\t\treturn nil\n\t\tdefault:\n\t\t\treturn e.Wrapf(ie.ErrBadNode, \"Unexpected type in handle ghosts: %v\", err)\n\t\t}\n\t})\n}\n\nfunc (ma *Mapper) handleGhosts() error {\n\tmovedSrcDirs, err := ma.extractGhostDirs()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Handle moved paths after handling single files.\n\t// (mapDirectory assumes that moved files in it were already handled).\n\tfor _, movedSrcDir := range movedSrcDirs {\n\t\tlog.Debugf(\"map: %v %v\", movedSrcDir.srcDir.Path(), movedSrcDir.dstPath)\n\t\tif err := ma.mapDirectory(movedSrcDir.srcDir, movedSrcDir.dstPath, false); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// NewMapper creates a new mapper object that is capable of finding pairs of\n// nodes between lkrDst and lkrSrc.\nfunc NewMapper(lkrSrc, lkrDst *c.Linker, srcHead, dstHead *n.Commit, srcRoot n.Node) (*Mapper, error) {\n\tvar err error\n\n\tif srcHead == nil {\n\t\tsrcHead, err = lkrSrc.Head()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif dstHead == nil {\n\t\tdstHead, err = lkrDst.Head()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &Mapper{\n\t\tlkrSrc:    lkrSrc,\n\t\tlkrDst:    lkrDst,\n\t\tsrcHead:   srcHead,\n\t\tdstHead:   dstHead,\n\t\tsrcRoot:   srcRoot,\n\t\tflagsRoot: trie.NewNodeWithData(&flags{}),\n\t}, nil\n}\n\nfunc (ma *Mapper) nodeIsHandled(nd n.Node, srcToDst bool) bool {\n\tif srcToDst {\n\t\treturn ma.isSrcHandled(nd)\n\t}\n\n\treturn ma.isDstHandled(nd)\n}\n\nfunc (ma *Mapper) isComplete(lkr *c.Linker, root n.Node, srcToDst bool) (bool, error) {\n\t// If the file was already handled: ignore it completely.\n\tif ma.nodeIsHandled(root, srcToDst) {\n\t\treturn false, nil\n\t}\n\n\tif root.Type() != n.NodeTypeDirectory {\n\t\treturn true, nil\n\t}\n\n\tdir, ok := root.(*n.Directory)\n\tif !ok {\n\t\treturn false, ie.ErrBadNode\n\t}\n\n\tchildren, err := dir.ChildrenSorted(lkr)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tnComplete := 0\n\tfor _, child := range children {\n\t\tif ma.nodeIsHandled(child, srcToDst) {\n\t\t\tcontinue\n\t\t}\n\n\t\tisComplete, err := ma.isComplete(lkr, child, srcToDst)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\tif isComplete {\n\t\t\tnComplete++\n\t\t}\n\t}\n\n\t// If all children were not handled & are complete we copy the flag.\n\tif nComplete == len(children) {\n\t\tif srcToDst {\n\t\t\tma.setSrcComplete(root)\n\t\t} else {\n\t\t\tma.setDstComplete(root)\n\t\t}\n\n\t\treturn true, nil\n\t}\n\n\treturn false, nil\n}\n\n// extractLeftovers goes over all nodes in src that were not covered\n// yet by previous measures. It will report any src node without a match then.\nfunc (ma *Mapper) extractLeftovers(lkr *c.Linker, root *n.Directory, srcToDst bool) error {\n\tif ma.nodeIsHandled(root, srcToDst) {\n\t\treturn nil\n\t}\n\n\tif _, err := ma.isComplete(lkr, root, srcToDst); err != nil {\n\t\treturn err\n\t}\n\n\t// Implement a basic walk/DFS with filtering:\n\tchildren, err := root.ChildrenSorted(lkr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, child := range children {\n\t\tdebug(fmt.Sprintf(\"extract: %v\", child.Path()))\n\t\tif ma.nodeIsHandled(child, srcToDst) {\n\t\t\tdebug(fmt.Sprintf(\"node is handled: %v\", child.Path()))\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch child.Type() {\n\t\tcase n.NodeTypeDirectory:\n\t\t\tdir, ok := child.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\tvar complete bool\n\t\t\tif srcToDst {\n\t\t\t\tcomplete = ma.isSrcComplete(dir)\n\t\t\t} else {\n\t\t\t\tcomplete = ma.isDstComplete(dir)\n\t\t\t}\n\n\t\t\tdebug(fmt.Sprintf(\"is complete: %v %v\", child.Path(), complete))\n\t\t\tif complete {\n\t\t\t\tif srcToDst {\n\t\t\t\t\terr = ma.report(dir, nil, false, false, false)\n\t\t\t\t} else {\n\t\t\t\t\terr = ma.report(nil, dir, false, false, false)\n\t\t\t\t}\n\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err := ma.extractLeftovers(lkr, dir, srcToDst); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\tcase n.NodeTypeFile:\n\t\t\tfile, ok := child.(*n.File)\n\t\t\tif !ok {\n\t\t\t\treturn ie.ErrBadNode\n\t\t\t}\n\n\t\t\t// Report the leftover:\n\t\t\tif srcToDst {\n\t\t\t\terr = ma.report(file, nil, false, false, false)\n\t\t\t} else {\n\t\t\t\terr = ma.report(nil, file, false, false, false)\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase n.NodeTypeGhost:\n\t\t\t// Those were already handled (or are not important)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Map calls `fn` for each pairing that was found. Equal files and\n// directories are not reported. Most directories are also not reported, but\n// if they are empty and not present on our side they will. No ghosts will be\n// reported.\n//\n// Some implementation background for the curious reader:\n//\n// In the simplest case a filesystem is a tree and the assumption can be made\n// that one node that lives at the same path on both sides is the same \"file\"\n// (i.e. in terms of \"this is the file that the user wants to synchronize with\").\n//\n// With ghosts though, we have nodes that can indicate a removed or a moved file.\n// Due to moved files the filesystem tree becomes a graph and the mapping\n// algorithm (that is the base of Mapper) needs to do a depth first search\n// and thus needs to remember already visited nodes.\n//\n// Since moved nodes also takes priority we need to iterate over all ghosts first,\n// and mark their respective counterparts or report that they were removed on\n// the remote side (i.e. no counterpart exists.). Only after that we cycle\n// through all other nodes and assume that files living at the same path\n// reference the same \"file\". At this point we can treat the file graph\n// as tree again by ignoring all ghosts.\n//\n// A special case is when a file was moved on one side but, a file exists\n// already on the other side. In this case the already existing files wins.\n//\n// Some examples of the described behaviours can be found in the tests of Mapper.\nfunc (ma *Mapper) Map(fn func(pair MapPair) error) error {\n\tma.fn = fn\n\tlog.Debugf(\"mapping ghosts\")\n\tif err := ma.handleGhosts(); err != nil {\n\t\treturn err\n\t}\n\n\tlog.Debugf(\"mapping non-ghosts\")\n\n\tswitch ma.srcRoot.Type() {\n\tcase n.NodeTypeDirectory:\n\t\tdir, ok := ma.srcRoot.(*n.Directory)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tif err := ma.mapDirectory(dir, dir.Path(), false); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Get root directories:\n\t\t// (only get them now since, in theory, mapFn could have changed things)\n\t\tsrcRoot, err := ma.lkrSrc.DirectoryByHash(ma.srcHead.Root())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdstRoot, err := ma.lkrDst.DirectoryByHash(ma.dstHead.Root())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebug(\"-- Extract leftover src\")\n\n\t\t// Extract things in \"src\" that were not mapped yet.\n\t\t// These are files that can be added to our inventory,\n\t\t// since we have notthing that mapped to them.\n\t\tif err := ma.extractLeftovers(ma.lkrSrc, srcRoot, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebug(\"-- Extract leftover dst\")\n\n\t\t// Check for files that we have, but dst does not.\n\t\t// We call those files \"missing\".\n\t\treturn ma.extractLeftovers(ma.lkrDst, dstRoot, false)\n\tcase n.NodeTypeFile:\n\t\tfile, ok := ma.srcRoot.(*n.File)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\treturn ma.mapFile(file, file.Path())\n\tcase n.NodeTypeGhost:\n\t\t// Not sure how this would happen.\n\t\treturn nil\n\tdefault:\n\t\treturn e.Wrapf(ie.ErrBadNode, \"Unexpected type in route(): %v\", ma.srcRoot)\n\t}\n}\n"
  },
  {
    "path": "catfs/vcs/mapper_test.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc mapperSetupBasicSame(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tc.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 23)\n\tc.MustTouchAndCommit(t, lkrDst, \"/x.png\", 23)\n\treturn []MapPair{}\n}\n\nfunc mapperSetupBasicDiff(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 23)\n\tdstFile, _ := c.MustTouchAndCommit(t, lkrDst, \"/x.png\", 42)\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicSrcTypeMismatch(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDir := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustCommit(t, lkrSrc, \"add dir\")\n\n\tdstFile, _ := c.MustTouchAndCommit(t, lkrDst, \"/x\", 42)\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcDir,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicDstTypeMismatch(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x\", 42)\n\tdstDir := c.MustMkdir(t, lkrDst, \"/x\")\n\tc.MustCommit(t, lkrDst, \"add dir\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstDir,\n\t\t\tTypeMismatch: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicSrcAddFile(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 42)\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          nil,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicDstAddFile(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tdstFile, _ := c.MustTouchAndCommit(t, lkrDst, \"/x.png\", 42)\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          nil,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicSrcAddDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDir := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustCommit(t, lkrSrc, \"add dir\")\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcDir,\n\t\t\tDst:          nil,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupBasicDstAddDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tc.MustMkdir(t, lkrDst, \"/x\")\n\treturn []MapPair{}\n}\n\nfunc mapperSetupSrcMoveFile(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tdstFile, _ := c.MustTouchAndCommit(t, lkrDst, \"/x.png\", 42)\n\tsrcFileOld, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 23)\n\tsrcFile := c.MustMove(t, lkrSrc, srcFileOld, \"/y.png\")\n\tc.MustCommit(t, lkrSrc, \"I like to move it\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupDstMoveFile(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 42)\n\tdstFileOld, _ := c.MustTouchAndCommit(t, lkrDst, \"/x.png\", 23)\n\tdstFile := c.MustMove(t, lkrDst, dstFileOld, \"/y.png\")\n\tc.MustCommit(t, lkrDst, \"I like to move it, move it\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperMoveNestedDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tc.MustMkdir(t, lkrSrc, \"/old/sub/\")\n\tc.MustMkdir(t, lkrDst, \"/old/sub/\")\n\tc.MustTouchAndCommit(t, lkrSrc, \"/old/sub/x\", 1)\n\tc.MustTouchAndCommit(t, lkrDst, \"/old/sub/x\", 1)\n\n\tsrcDir := c.MustLookupDirectory(t, lkrSrc, \"/old\")\n\tdstDir := c.MustLookupDirectory(t, lkrDst, \"/old\")\n\tnewDstDir := c.MustMove(t, lkrDst, dstDir, \"/new\")\n\tc.MustCommit(t, lkrDst, \"moved\")\n\n\t// Test for a special case here:\n\t// Directories that were moved, but still have identical files.\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:           srcDir,\n\t\t\tDst:           newDstDir,\n\t\t\tSrcWasMoved:   true,\n\t\t\tTypeMismatch:  false,\n\t\t\tSrcWasRemoved: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupDstMoveDirEmpty(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDir := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustCommit(t, lkrSrc, \"Create src dir\")\n\n\tdstDirOld := c.MustMkdir(t, lkrDst, \"/x\")\n\tdstDir := c.MustMove(t, lkrDst, dstDirOld, \"/y\")\n\tc.MustCommit(t, lkrDst, \"I like to move it, move it\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:         srcDir,\n\t\t\tDst:         dstDir,\n\t\t\tSrcWasMoved: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupDstMoveDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tc.MustMkdir(t, lkrSrc, \"/x\")\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/x/a.png\", 42)\n\tc.MustCommit(t, lkrSrc, \"Create src dir\")\n\n\tdstDirOld := c.MustMkdir(t, lkrDst, \"/x\")\n\tc.MustMove(t, lkrDst, dstDirOld, \"/y\")\n\tdstFile := c.MustTouch(t, lkrDst, \"/y/a.png\", 23)\n\tc.MustCommit(t, lkrDst, \"I like to move it, move it\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupSrcMoveDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDirOld := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustMove(t, lkrSrc, srcDirOld, \"/y\")\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/y/a.png\", 23)\n\tc.MustCommit(t, lkrSrc, \"I like to move it, move it\")\n\n\tc.MustMkdir(t, lkrDst, \"/x\")\n\tdstFile := c.MustTouch(t, lkrDst, \"/x/a.png\", 42)\n\tc.MustCommit(t, lkrDst, \"Create dst dir\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupMoveDirWithChild(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDirOld := c.MustMkdir(t, lkrSrc, \"/x\")\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/x/a.png\", 23)\n\tc.MustMove(t, lkrSrc, srcDirOld, \"/y\")\n\tc.MustCommit(t, lkrSrc, \"I like to move it, move it\")\n\n\tc.MustMkdir(t, lkrDst, \"/x\")\n\tdstFile := c.MustTouch(t, lkrDst, \"/x/a.png\", 42)\n\tc.MustCommit(t, lkrDst, \"Create dst dir\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupSrcMoveWithExisting(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDirOld := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustMove(t, lkrSrc, srcDirOld, \"/y\")\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/y/a.png\", 23)\n\tc.MustCommit(t, lkrSrc, \"I like to move it, move it\")\n\n\t// Additionally create an existing file that lives in the place\n\t// of the moved file. Mapper should favour existing files:\n\tdstDir := c.MustMkdir(t, lkrDst, \"/x\")\n\tc.MustMkdir(t, lkrDst, \"/y\")\n\tc.MustTouch(t, lkrDst, \"/x/a.png\", 42)\n\tdstFile := c.MustTouch(t, lkrDst, \"/y/a.png\", 42)\n\tc.MustCommit(t, lkrDst, \"Create src dir\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t}, {\n\t\t\tSrc:          nil,\n\t\t\tDst:          dstDir,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupSrcFileMoveToExistingEmptyDir(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tc.MustMkdir(t, lkrSrc, \"/d1\")\n\tc.MustMkdir(t, lkrSrc, \"/d2\")\n\tsrcFileOld, _ := c.MustTouchAndCommit(t, lkrSrc, \"/d1/t1\", 23)\n\tsrcFile := c.MustMove(t, lkrSrc, srcFileOld, \"/d2/t1\")\n\tc.MustCommit(t, lkrSrc, \"move is done\")\n\n\tc.MustMkdir(t, lkrDst, \"/d1\")\n\tc.MustMkdir(t, lkrDst, \"/d2\")\n\tdstFile, _ := c.MustTouchAndCommit(t, lkrDst, \"/d1/t1\", 23)\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:         srcFile,\n\t\t\tDst:         dstFile,\n\t\t\tSrcWasMoved: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupDstMoveWithExisting(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcDir := c.MustMkdir(t, lkrSrc, \"/x\")\n\tc.MustMkdir(t, lkrSrc, \"/y\")\n\tc.MustTouch(t, lkrSrc, \"/x/a.png\", 42)\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/y/a.png\", 42)\n\tc.MustCommit(t, lkrSrc, \"Create src dir\")\n\n\tdstDirOld := c.MustMkdir(t, lkrDst, \"/x\")\n\tc.MustMove(t, lkrDst, dstDirOld, \"/y\")\n\tdstFile := c.MustTouch(t, lkrDst, \"/y/a.png\", 23)\n\tc.MustCommit(t, lkrDst, \"I like to move it, move it\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcDir,\n\t\t\tDst:          nil,\n\t\t\tTypeMismatch: false,\n\t\t}, {\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstFile,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupNested(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcX, _ := c.MustTouchAndCommit(t, lkrSrc, \"/common/a/b/c/x\", 42)\n\tsrcY, _ := c.MustTouchAndCommit(t, lkrSrc, \"/common/a/b/c/y\", 23)\n\tsrcZ, _ := c.MustTouchAndCommit(t, lkrSrc, \"/src-only/z\", 23)\n\n\tdstX, _ := c.MustTouchAndCommit(t, lkrDst, \"/common/a/b/c/x\", 43)\n\tdstY, _ := c.MustTouchAndCommit(t, lkrDst, \"/common/a/b/c/y\", 24)\n\tdstZ, _ := c.MustTouchAndCommit(t, lkrDst, \"/dst-only/z\", 23)\n\n\tsrcZParent, err := n.ParentDirectory(lkrSrc, srcZ)\n\tif err != nil {\n\t\tt.Fatalf(\"setup failed to get parent dir: %v\", err)\n\t}\n\n\tdstZParent, err := n.ParentDirectory(lkrDst, dstZ)\n\tif err != nil {\n\t\tt.Fatalf(\"setup failed to get parent dir: %v\", err)\n\t}\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcX,\n\t\t\tDst:          dstX,\n\t\t\tTypeMismatch: false,\n\t\t}, {\n\t\t\tSrc:          srcY,\n\t\t\tDst:          dstY,\n\t\t\tTypeMismatch: false,\n\t\t}, {\n\t\t\tSrc:          srcZParent,\n\t\t\tDst:          nil,\n\t\t\tTypeMismatch: false,\n\t\t}, {\n\t\t\tSrc:          nil,\n\t\t\tDst:          dstZParent,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc mapperSetupSrcRemove(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/x.png\", 23)\n\tc.MustCommit(t, lkrSrc, \"src: Touched /x.png\")\n\tc.MustRemove(t, lkrSrc, srcFile)\n\tc.MustCommit(t, lkrSrc, \"src: Removed /x.png\")\n\n\tdstFile := c.MustTouch(t, lkrDst, \"/x.png\", 23)\n\tc.MustCommit(t, lkrDst, \"dst: Touched /x.png\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:           nil,\n\t\t\tDst:           dstFile,\n\t\t\tTypeMismatch:  false,\n\t\t\tSrcWasRemoved: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupDstRemove(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/x.png\", 23)\n\tc.MustCommit(t, lkrSrc, \"dst: Touched /x.png\")\n\n\tdstFile := c.MustTouch(t, lkrDst, \"/x.png\", 23)\n\tc.MustCommit(t, lkrDst, \"src: Touched /x.png\")\n\tc.MustRemove(t, lkrDst, dstFile)\n\tc.MustCommit(t, lkrDst, \"src: Removed /x.png\")\n\tdstGhost, err := lkrDst.LookupGhost(\"/x.png\")\n\trequire.NoError(t, err)\n\n\t// We should be notified remote removed the file\n\t// (and that we possibly should remove it as well)\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFile,\n\t\t\tDst:          dstGhost,\n\t\t\tTypeMismatch: true,\n\t\t},\n\t}\n}\n\nfunc mapperSetupMoveOnBothSides(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair {\n\tsrcFile := c.MustTouch(t, lkrSrc, \"/x\", 23)\n\tc.MustCommit(t, lkrSrc, \"src: touched /x\")\n\tsrcFileMoved := c.MustMove(t, lkrSrc, srcFile, \"/y\")\n\tc.MustCommit(t, lkrSrc, \"src: /x moved to /y\")\n\n\tdstFile := c.MustTouch(t, lkrDst, \"/x\", 42)\n\tc.MustCommit(t, lkrDst, \"dst: touched /x\")\n\tdstFileMoved := c.MustMove(t, lkrDst, dstFile, \"/z\")\n\tc.MustCommit(t, lkrDst, \"dst: /x moved to /z\")\n\n\treturn []MapPair{\n\t\t{\n\t\t\tSrc:          srcFileMoved,\n\t\t\tDst:          dstFileMoved,\n\t\t\tTypeMismatch: false,\n\t\t},\n\t}\n}\n\nfunc TestMapper(t *testing.T) {\n\ttcs := []struct {\n\t\tname  string\n\t\tsetup func(t *testing.T, lkrSrc, lkrDst *c.Linker) []MapPair\n\t}{\n\t\t{\n\t\t\tname:  \"basic-same\",\n\t\t\tsetup: mapperSetupBasicSame,\n\t\t}, {\n\t\t\tname:  \"basic-diff\",\n\t\t\tsetup: mapperSetupBasicDiff,\n\t\t}, {\n\t\t\tname:  \"basic-src-add-file\",\n\t\t\tsetup: mapperSetupBasicSrcAddFile,\n\t\t}, {\n\t\t\tname:  \"basic-dst-add-file\",\n\t\t\tsetup: mapperSetupBasicDstAddFile,\n\t\t}, {\n\t\t\tname:  \"basic-src-add-dir\",\n\t\t\tsetup: mapperSetupBasicSrcAddDir,\n\t\t}, {\n\t\t\tname:  \"basic-dst-add-dir\",\n\t\t\tsetup: mapperSetupBasicDstAddDir,\n\t\t}, {\n\t\t\tname:  \"basic-src-type-mismatch\",\n\t\t\tsetup: mapperSetupBasicSrcTypeMismatch,\n\t\t}, {\n\t\t\tname:  \"basic-dst-type-mismatch\",\n\t\t\tsetup: mapperSetupBasicDstTypeMismatch,\n\t\t}, {\n\t\t\tname:  \"basic-nested\",\n\t\t\tsetup: mapperSetupNested,\n\t\t}, {\n\t\t\tname:  \"remove-src\",\n\t\t\tsetup: mapperSetupSrcRemove,\n\t\t}, {\n\t\t\tname:  \"remove-dst\",\n\t\t\tsetup: mapperSetupDstRemove,\n\t\t}, {\n\t\t\tname:  \"move-simple-src-file\",\n\t\t\tsetup: mapperSetupSrcMoveFile,\n\t\t}, {\n\t\t\tname:  \"move-simple-dst-file\",\n\t\t\tsetup: mapperSetupDstMoveFile,\n\t\t}, {\n\t\t\tname:  \"move-simple-dst-empty-dir\",\n\t\t\tsetup: mapperSetupDstMoveDirEmpty,\n\t\t}, {\n\t\t\tname:  \"move-simple-src-dir\",\n\t\t\tsetup: mapperSetupSrcMoveDir,\n\t\t}, {\n\t\t\tname:  \"move-simple-dst-dir\",\n\t\t\tsetup: mapperSetupDstMoveDir,\n\t\t}, {\n\t\t\tname:  \"move-simple-src-dir-with-existing\",\n\t\t\tsetup: mapperSetupSrcMoveWithExisting,\n\t\t}, {\n\t\t\tname:  \"move-simple-dst-dir-with-existing\",\n\t\t\tsetup: mapperSetupDstMoveWithExisting,\n\t\t}, {\n\t\t\tname:  \"move-on-both-sides\",\n\t\t\tsetup: mapperSetupMoveOnBothSides,\n\t\t}, {\n\t\t\tname:  \"move-dir-with-child\",\n\t\t\tsetup: mapperSetupMoveDirWithChild,\n\t\t}, {\n\t\t\tname:  \"move-nested-dir\",\n\t\t\tsetup: mapperMoveNestedDir,\n\t\t}, {\n\t\t\tname:  \"move-src-file-to-existing-empty-dir\",\n\t\t\tsetup: mapperSetupSrcFileMoveToExistingEmptyDir,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t\t\texpect := tc.setup(t, lkrSrc, lkrDst)\n\n\t\t\t\tsrcRoot, err := lkrSrc.Root()\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"Failed to retrieve root: %v\", err)\n\t\t\t\t}\n\n\t\t\t\tgot := []MapPair{}\n\t\t\t\tdiffFn := func(pair MapPair) error {\n\t\t\t\t\tgot = append(got, pair)\n\t\t\t\t\t// if pair.Src != nil {\n\t\t\t\t\t// \tfmt.Println(\".. \", pair.Src.Path())\n\t\t\t\t\t// }\n\t\t\t\t\t// if pair.Dst != nil {\n\t\t\t\t\t// \tfmt.Println(\"-> \", pair.Dst.Path())\n\t\t\t\t\t// }\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\n\t\t\t\tmapper, err := NewMapper(lkrSrc, lkrDst, nil, nil, srcRoot)\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tif err := mapper.Map(diffFn); err != nil {\n\t\t\t\t\tt.Fatalf(\"mapping failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\t// DEBUG.\n\t\t\t\t// for _, pair := range got {\n\t\t\t\t// \tfmt.Println(\"-\", pair.Src, pair.Dst)\n\t\t\t\t// }\n\n\t\t\t\tif len(got) != len(expect) {\n\t\t\t\t\tt.Fatalf(\n\t\t\t\t\t\t\"Got and expect length differ: %d vs %d\",\n\t\t\t\t\t\tlen(got), len(expect),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tfor idx, gotPair := range got {\n\t\t\t\t\texpectPair := expect[idx]\n\t\t\t\t\tfailMsg := fmt.Sprintf(\"Failed pair %d\", idx+1)\n\t\t\t\t\trequire.Equal(t, expectPair, gotPair, failMsg)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/vcs/patch.go",
    "content": "package vcs\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"sort\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\tcapnp_patch \"github.com/sahib/brig/catfs/vcs/capnp\"\n\t\"github.com/sahib/brig/util/trie\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\n// Patch is a set of changes that changed since a certain\n// version of a graph.\ntype Patch struct {\n\tFromIndex int64\n\tCurrIndex int64\n\tChanges   []*Change\n}\n\n// Patches is just a list of patches\ntype Patches []*Patch\n\n// Len returns the number of changes in the patch.\nfunc (p *Patch) Len() int {\n\treturn len(p.Changes)\n}\n\nfunc (p *Patch) Swap(i, j int) {\n\tp.Changes[i], p.Changes[j] = p.Changes[j], p.Changes[i]\n}\n\nfunc (p *Patch) Less(i, j int) bool {\n\tna, nb := p.Changes[i].Curr, p.Changes[j].Curr\n\n\tnaIsGhost := na.Type() == n.NodeTypeGhost\n\tnbIsGhost := nb.Type() == n.NodeTypeGhost\n\tif naIsGhost != nbIsGhost {\n\t\t// Make sure ghosts are first added\n\t\treturn naIsGhost\n\t}\n\n\tnaIsDir := na.Type() == n.NodeTypeDirectory\n\tnbIsDir := nb.Type() == n.NodeTypeDirectory\n\tif naIsDir != nbIsDir {\n\t\t// Make sure that we first apply directory creation\n\t\t// and possible directory moves.\n\t\treturn naIsDir\n\t}\n\n\tnaIsRemove := p.Changes[i].Mask&ChangeTypeRemove != 0\n\tnbIsRemove := p.Changes[j].Mask&ChangeTypeRemove != 0\n\tif naIsRemove != nbIsRemove {\n\t\t// Make sure that everything is removed before\n\t\t// doing any other changes.\n\t\treturn naIsRemove\n\t}\n\n\tnaIsMove := p.Changes[i].Mask&ChangeTypeMove != 0\n\tnbIsMove := p.Changes[j].Mask&ChangeTypeMove != 0\n\tif naIsMove != nbIsMove {\n\t\t// Make sure that everything is moved before\n\t\t// doing any adds / modifcations.\n\t\treturn naIsMove\n\t}\n\n\treturn na.ModTime().Before(nb.ModTime())\n}\n\nfunc (p *Patch) toCapnpPatch(seg *capnp.Segment, capPatch capnp_patch.Patch) error {\n\tcapPatch.SetFromIndex(p.FromIndex)\n\tcapPatch.SetCurrIndex(p.CurrIndex)\n\n\tcapChangeLst, err := capnp_patch.NewChange_List(seg, int32(len(p.Changes)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := capPatch.SetChanges(capChangeLst); err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, change := range p.Changes {\n\t\tcapCh, err := capnp_patch.NewChange(seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := change.toCapnpChange(seg, &capCh); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capChangeLst.Set(idx, capCh); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// ToCapnp serializes a patch to capnproto message.\nfunc (p *Patch) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPatch, err := capnp_patch.NewRootPatch(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg, p.toCapnpPatch(seg, capPatch)\n}\n\n// ToCapnp seriales patches to a capnproto message.\nfunc (ps Patches) ToCapnp() (*capnp.Message, error) {\n\tmsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPatches, err := capnp_patch.NewRootPatches(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPatchLst, err := capnp_patch.NewPatch_List(seg, int32(len(ps)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capPatches.SetPatches(capPatchLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, p := range ps {\n\t\tcapPatch, err := capnp_patch.NewPatch(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := p.toCapnpPatch(seg, capPatch); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capPatchLst.Set(idx, capPatch); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn msg, nil\n}\n\nfunc (p *Patch) fromCapnpPatch(capPatch capnp_patch.Patch) error {\n\tp.FromIndex = capPatch.FromIndex()\n\tp.CurrIndex = capPatch.CurrIndex()\n\n\tcapChs, err := capPatch.Changes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx := 0; idx < capChs.Len(); idx++ {\n\t\tch := &Change{}\n\t\tif err := ch.fromCapnpChange(capChs.At(idx)); err != nil {\n\t\t\treturn e.Wrapf(err, \"patch: from-capnp: change\")\n\t\t}\n\n\t\tp.Changes = append(p.Changes, ch)\n\t}\n\n\treturn nil\n}\n\n// FromCapnp deserializes `msg` into `p`.\nfunc (p *Patch) FromCapnp(msg *capnp.Message) error {\n\tcapPatch, err := capnp_patch.ReadRootPatch(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn p.fromCapnpPatch(capPatch)\n}\n\n// FromCapnp deserializes `msg` into `ps`\nfunc (ps *Patches) FromCapnp(msg *capnp.Message) error {\n\tcapPatches, err := capnp_patch.ReadRootPatches(msg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcapPatchesLst, err := capPatches.Patches()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnewPatches := Patches{}\n\tfor idx := 0; idx < capPatchesLst.Len(); idx++ {\n\t\tp := &Patch{}\n\t\tif err := p.fromCapnpPatch(capPatchesLst.At(idx)); err != nil {\n\t\t\treturn e.Wrapf(err, \"patches: from-capnp: patch\")\n\t\t}\n\n\t\tnewPatches = append(newPatches, p)\n\t}\n\n\t*ps = newPatches\n\treturn nil\n}\n\n// buildPrefixTrie builds a trie of prefixes that can be passed\nfunc buildPrefixTrie(prefixes []string) *trie.Node {\n\troot := trie.NewNode()\n\tfor _, prefix := range prefixes {\n\t\tif prefix == \"/\" {\n\t\t\troot.Data = true\n\t\t} else {\n\t\t\troot.Insert(prefix).Data = true\n\t\t}\n\t}\n\n\treturn root\n}\n\nfunc hasValidPrefix(root *trie.Node, path string) bool {\n\tif root.Data != nil && root.Data.(bool) == true {\n\t\treturn true\n\t}\n\n\tcurr := root\n\tfor _, elem := range trie.SplitPath(path) {\n\t\tcurr = curr.Lookup(elem)\n\n\t\t// No such children, not an allowed prefix.\n\t\tif curr == nil {\n\t\t\treturn false\n\t\t}\n\n\t\t// If it's a prefix node it's over.\n\t\tif curr.Data != nil && curr.Data.(bool) == true {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc filterInvalidMoveGhost(lkr *c.Linker, child n.Node, combCh *Change, prefixTrie *trie.Node) (bool, error) {\n\tif child.Type() != n.NodeTypeGhost || combCh.Mask&ChangeTypeMove == 0 {\n\t\treturn true, nil\n\t}\n\n\tmoveNd, _, err := lkr.MoveEntryPoint(child)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tif moveNd == nil {\n\t\treturn false, nil\n\t}\n\n\tif !hasValidPrefix(prefixTrie, moveNd.Path()) {\n\t\t// The node was moved to the outside. Count it as removed.\n\t\tcombCh.Mask &= ^ChangeTypeMove\n\t\tcombCh.Mask |= ChangeTypeRemove\n\t\treturn true, nil\n\t}\n\n\treturn true, nil\n}\n\n// MakePatch creates a patch with all changes starting from `from`.\n// Patch will be created betweed `from` and `status` (current state)\n// It will only include nodes that are located under one of the prefixes in `prefixes`.\nfunc MakePatch(lkr *c.Linker, from *n.Commit, prefixes []string) (*Patch, error) {\n\tto, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn MakePatchFromTo(lkr, from, to, prefixes)\n}\n\n// MakePatches is like MakePatch but produces several patches, not a compressed one.\nfunc MakePatches(lkr *c.Linker, from *n.Commit, prefixes []string) (Patches, error) {\n\tto, err := lkr.Status()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpatches := []*Patch{}\n\n\tvar errSkip = errors.New(\"stop log\")\n\tvar prevCmt = to\n\n\t// TODO: Log API should offer something like errSkip itself.\n\terr = c.Log(lkr, to, func(cmt *n.Commit) error {\n\t\tif prevCmt.Index() == to.Index() {\n\t\t\t// First iteration.\n\t\t\tprevCmt = cmt\n\t\t\treturn nil\n\t\t}\n\n\t\tpatch, err := MakePatchFromTo(lkr, cmt, prevCmt, prefixes)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tpatches = append(patches, patch)\n\t\tprevCmt = cmt\n\n\t\tif cmt.Index() == from.Index() {\n\t\t\t// We've gone deep enough.\n\t\t\treturn errSkip\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil && err != errSkip {\n\t\treturn nil, err\n\t}\n\n\treturn patches, nil\n}\n\n// MakePatchFromTo makes a patch between two commits `from` (older one)  and `to` (newer one)\nfunc MakePatchFromTo(lkr *c.Linker, from, to *n.Commit, prefixes []string) (*Patch, error) {\n\troot, err := to.Child(lkr, \"does not matter\") // child actually means Root for commits\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif from == nil {\n\t\treturn nil, e.New(\"The `from` commit is nil\")\n\t}\n\n\tif to == nil {\n\t\treturn nil, e.New(\"The `to` commit is nil\")\n\t}\n\n\tpatch := &Patch{\n\t\tFromIndex: from.Index(),\n\t\tCurrIndex: to.Index(),\n\t}\n\n\t// Shortcut: The patch CURR..CURR would be empty.\n\t// No need for further computations.\n\tif from.TreeHash().Equal(to.TreeHash()) {\n\t\treturn patch, nil\n\t}\n\n\t// Build a prefix trie to quickly check invalid paths.\n\t// This is not necessarily much faster, but runs in constant time.\n\tif prefixes == nil {\n\t\tprefixes = []string{\"/\"}\n\t}\n\tprefixTrie := buildPrefixTrie(prefixes)\n\n\terr = n.Walk(lkr, root, false, func(child n.Node) error {\n\t\tchildParentPath := path.Dir(child.Path())\n\t\tif len(prefixes) != 0 && !hasValidPrefix(prefixTrie, childParentPath) {\n\t\t\tlog.Debugf(\"Ignoring invalid prefix: %s\", childParentPath)\n\t\t\treturn nil\n\t\t}\n\n\t\t// Get all changes between `to` and `from`.\n\t\tchildModNode, ok := child.(n.ModNode)\n\t\tif !ok {\n\t\t\treturn e.Wrapf(ie.ErrBadNode, \"make-patch: walk\")\n\t\t}\n\n\t\tchanges, err := History(lkr, childModNode, to, from)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// No need to export empty history, abort early.\n\t\tif len(changes) == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\tcombCh := CombineChanges(changes)\n\n\t\t// Directories are a bit of a special case. We're only interested in them\n\t\t// when creating new, empty directories (n_children == 0) or if whole trees\n\t\t// were moved. In the latter case we need to also send a notice about that,\n\t\t// but we can leave out any other change.\n\t\tif child.Type() == n.NodeTypeDirectory {\n\t\t\tdir, ok := child.(*n.Directory)\n\t\t\tif !ok {\n\t\t\t\treturn e.Wrapf(ie.ErrBadNode, \"make-patch: dir\")\n\t\t\t}\n\n\t\t\tif combCh.Mask&ChangeTypeMove == 0 {\n\t\t\t\tif dir.NChildren() > 0 {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcombCh.Mask = ChangeTypeMove\n\t\t\t}\n\t\t}\n\n\t\t// Some special filtering needs to be done here. If it'a \"move\" ghost\n\t\t// we don't want to export it if the move goes outside our prefixes\n\t\t// (which would count as \"remove\").  or if we already reported a top\n\t\t// level directory that contains this move.\n\t\tisValid, err := filterInvalidMoveGhost(lkr, child, combCh, prefixTrie)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlog.Debugf(\"combine: %v <= %v (valid %v)\", combCh, changes, isValid)\n\t\tif isValid && combCh.Mask != 0 {\n\t\t\tpatch.Changes = append(patch.Changes, combCh)\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Make sure the patch is applied in the right order.\n\t// The receiving site will sort it again, but it's better\n\t// to have it in the right order already.\n\tsort.Sort(patch)\n\n\tfor _, ch := range patch.Changes {\n\t\tlog.Debugf(\"  change: %s\", ch)\n\t}\n\n\treturn patch, nil\n}\n\n// ApplyPatch applies the patch `p` to the linker `lkr`.\nfunc ApplyPatch(lkr *c.Linker, p *Patch) error {\n\tsort.Sort(p)\n\n\tfor _, change := range p.Changes {\n\t\tlog.Debugf(\"apply %s %v\", change, change.Curr.Type())\n\t\tif err := change.Replay(lkr); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "catfs/vcs/patch_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPatchMarshalling(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\thead, err := lkr.Head()\n\t\trequire.Nil(t, err)\n\n\t\tcurr := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tnext := c.MustCommit(t, lkr, \"hello\")\n\n\t\tchange1 := &Change{\n\t\t\tMask:    ChangeTypeMove | ChangeTypeRemove,\n\t\t\tHead:    head,\n\t\t\tNext:    next,\n\t\t\tCurr:    curr,\n\t\t\tMovedTo: \"/something1\",\n\t\t}\n\n\t\tc.MustModify(t, lkr, curr, 2)\n\t\tnextNext := c.MustCommit(t, lkr, \"hello\")\n\n\t\tchange2 := &Change{\n\t\t\tMask:    ChangeTypeAdd | ChangeTypeModify,\n\t\t\tHead:    next,\n\t\t\tNext:    nextNext,\n\t\t\tCurr:    curr,\n\t\t\tMovedTo: \"/something2\",\n\t\t}\n\n\t\tpatch := &Patch{\n\t\t\tFromIndex: head.Index(),\n\t\t\tChanges:   []*Change{change2, change1},\n\t\t}\n\n\t\tmsg, err := patch.ToCapnp()\n\t\trequire.Nil(t, err)\n\n\t\tnewPatch := &Patch{}\n\t\trequire.Nil(t, newPatch.FromCapnp(msg))\n\n\t\trequire.Equal(t, patch, newPatch)\n\t})\n}\n\nfunc TestPrefixTrie(t *testing.T) {\n\tprefixes := []string{\n\t\t\"/a\",\n\t\t\"/b\",\n\t\t\"/c/d\",\n\t}\n\n\troot := buildPrefixTrie(prefixes)\n\trequire.True(t, hasValidPrefix(root, \"/a\"))\n\trequire.True(t, hasValidPrefix(root, \"/a/x/y/z\"))\n\trequire.True(t, hasValidPrefix(root, \"/b/c\"))\n\trequire.True(t, hasValidPrefix(root, \"/c/d/e\"))\n\n\trequire.False(t, hasValidPrefix(root, \"/c/e/d\"))\n\trequire.False(t, hasValidPrefix(root, \"/c/a/b\"))\n\trequire.False(t, hasValidPrefix(root, \"/\"))\n\trequire.False(t, hasValidPrefix(root, \"/d\"))\n}\n\nfunc TestMakePatch(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tinit, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\tsrcY := c.MustTouch(t, lkrSrc, \"/y\", 2)\n\t\tc.MustMkdir(t, lkrSrc, \"/sub\")\n\t\tc.MustMkdir(t, lkrSrc, \"/empty\")\n\t\tsrcZ := c.MustTouch(t, lkrSrc, \"/sub/z\", 3)\n\t\tc.MustCommit(t, lkrSrc, \"3 files\")\n\n\t\tpatch, err := MakePatch(lkrSrc, init, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch))\n\t\tdstX, err := lkrDst.LookupFile(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstX.ContentHash(), h.TestDummy(t, 1))\n\n\t\tdstY, err := lkrDst.LookupFile(\"/y\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstY.ContentHash(), h.TestDummy(t, 2))\n\n\t\tdstZ, err := lkrDst.LookupFile(\"/sub/z\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstZ.ContentHash(), h.TestDummy(t, 3))\n\n\t\t_, err = lkrDst.LookupDirectory(\"/empty\")\n\t\trequire.Nil(t, err)\n\n\t\t///////////////////\n\n\t\tc.MustModify(t, lkrSrc, srcX, 4)\n\t\tc.MustMove(t, lkrSrc, srcY, \"/y_moved\")\n\t\tc.MustRemove(t, lkrSrc, srcZ)\n\t\tc.MustTouch(t, lkrSrc, \"/empty/not_empty_anymore\", 42)\n\n\t\tpatch, err = MakePatch(lkrSrc, init, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch))\n\n\t\tdstYMoved, err := lkrDst.LookupFile(\"/y_moved\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstYMoved.Path(), \"/y_moved\")\n\n\t\tdstYGhost, err := lkrDst.LookupGhost(\"/y\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstYGhost.Path(), \"/y\")\n\n\t\tdstZGhost, err := lkrDst.LookupGhost(\"/sub/z\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstZGhost.Path(), \"/sub/z\")\n\n\t\tdstNotEmptyFile, err := lkrDst.LookupFile(\"/empty/not_empty_anymore\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstNotEmptyFile.Path(), \"/empty/not_empty_anymore\")\n\t})\n}\n\nfunc TestMakePatchWithOrderConflict(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tinit, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\tsrcX := c.MustTouch(t, lkrSrc, \"/x\", 1)\n\t\tsrcY := c.MustTouch(t, lkrSrc, \"/y\", 2)\n\t\tc.MustCommit(t, lkrSrc, \"pre-move\")\n\n\t\tc.MustMove(t, lkrSrc, srcX, \"/z\")\n\t\tc.MustMove(t, lkrSrc, srcY, \"/z\")\n\t\tc.MustCommit(t, lkrSrc, \"post-move\")\n\n\t\tpatch, err := MakePatch(lkrSrc, init, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\t// All files should be mentioned in the patch.\n\t\t// x and y are ghosts, z is the only real file.\n\t\t// Since y was moved last it has a move marker, x not.\n\t\trequire.Equal(t, \"/x\", patch.Changes[1].Curr.Path())\n\t\trequire.Equal(t, \"\", patch.Changes[1].MovedTo)\n\t\trequire.Equal(t, \"\", patch.Changes[1].WasPreviouslyAt)\n\t\trequire.Equal(t, n.NodeTypeGhost, patch.Changes[1].Curr.Type())\n\n\t\trequire.Equal(t, \"/y\", patch.Changes[0].Curr.Path())\n\t\trequire.Equal(t, \"/z\", patch.Changes[0].MovedTo)\n\t\trequire.Equal(t, n.NodeTypeGhost, patch.Changes[0].Curr.Type())\n\n\t\trequire.Equal(t, \"/z\", patch.Changes[2].Curr.Path())\n\t\trequire.Equal(t, \"\", patch.Changes[2].MovedTo)\n\t\trequire.Equal(t, \"/y\", patch.Changes[2].WasPreviouslyAt)\n\t\trequire.Equal(t, n.NodeTypeFile, patch.Changes[2].Curr.Type())\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch))\n\t\tdstZ, err := lkrDst.LookupFile(\"/z\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, dstZ.ContentHash(), h.TestDummy(t, 2))\n\n\t\tdstX, err := lkrDst.LookupGhost(\"/x\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n.NodeTypeGhost, dstX.Type())\n\n\t\tdstY, err := lkrDst.LookupGhost(\"/y\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n.NodeTypeGhost, dstY.Type())\n\t})\n}\n\n// Move all children of a directory to another location.\nfunc TestMakePatchDirMoveAllChildren(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tinit, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\tc.MustMkdir(t, lkrSrc, \"/src\")\n\t\tsubX := c.MustTouch(t, lkrSrc, \"/src/x\", 1)\n\t\tsubY := c.MustTouch(t, lkrSrc, \"/src/y\", 2)\n\t\tpreMove := c.MustCommit(t, lkrSrc, \"base\")\n\n\t\tpatch1, err := MakePatch(lkrSrc, init, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch1))\n\t\tsrcDir, err := lkrDst.LookupDirectory(\"/src\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, 2, srcDir.NChildren())\n\n\t\t///////////\n\n\t\tc.MustMkdir(t, lkrSrc, \"/dst\")\n\t\tc.MustMove(t, lkrSrc, subX, \"/dst/x\")\n\t\tc.MustMove(t, lkrSrc, subY, \"/dst/y\")\n\t\tc.MustCommit(t, lkrSrc, \"post-move\")\n\n\t\tpatch2, err := MakePatch(lkrSrc, preMove, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch2))\n\n\t\tsrcDir, err = lkrDst.LookupDirectory(\"/src\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, 2, srcDir.NChildren())\n\n\t\t_, err = lkrDst.LookupGhost(\"/src/x\")\n\t\trequire.Nil(t, err)\n\t\t_, err = lkrDst.LookupGhost(\"/src/x\")\n\t\trequire.Nil(t, err)\n\n\t\t_, err = lkrDst.LookupFile(\"/dst/x\")\n\t\trequire.Nil(t, err)\n\t\t_, err = lkrDst.LookupFile(\"/dst/x\")\n\t\trequire.Nil(t, err)\n\t})\n}\n\n// Move a directory completely, not just its contents.\nfunc TestMakePatchDirMoveCompletely(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tinit, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\trealSrcDir := c.MustMkdir(t, lkrSrc, \"/src\")\n\t\tc.MustTouch(t, lkrSrc, \"/src/x\", 1)\n\t\tc.MustTouch(t, lkrSrc, \"/src/y\", 2)\n\t\tpreMove := c.MustCommit(t, lkrSrc, \"base\")\n\n\t\tpatch1, err := MakePatch(lkrSrc, init, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch1))\n\t\tsrcDir, err := lkrDst.LookupDirectory(\"/src\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, 2, srcDir.NChildren())\n\n\t\t///////////\n\n\t\tc.MustMove(t, lkrSrc, realSrcDir, \"/dst\")\n\t\tc.MustCommit(t, lkrSrc, \"post-move\")\n\n\t\tpatch2, err := MakePatch(lkrSrc, preMove, []string{\"/\"})\n\t\trequire.Nil(t, err)\n\n\t\trequire.Nil(t, ApplyPatch(lkrDst, patch2))\n\n\t\tsrcDirGhost, err := lkrDst.LookupGhost(\"/src\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, 2, srcDirGhost.NChildren())\n\n\t\t_, err = lkrDst.LookupNode(\"/src/x\")\n\t\trequire.NotNil(t, err)\n\t\t_, err = lkrDst.LookupNode(\"/src/x\")\n\t\trequire.NotNil(t, err)\n\n\t\t_, err = lkrDst.LookupFile(\"/dst/x\")\n\t\trequire.Nil(t, err)\n\t\t_, err = lkrDst.LookupFile(\"/dst/x\")\n\t\trequire.Nil(t, err)\n\t})\n}\n\nfunc TestSyncPartialTwiceWithMovedFile(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrAli, lkrBob *c.Linker) {\n\t\taliNd, _ := c.MustTouchAndCommit(t, lkrAli, \"/ali-file\", 1)\n\t\tc.MustTouchAndCommit(t, lkrBob, \"/bob-file\", 2)\n\n\t\trequire.Nil(t, Sync(lkrAli, lkrBob, nil))\n\t\trequire.Nil(t, Sync(lkrBob, lkrAli, nil))\n\n\t\tbeforeMove, err := lkrAli.Head()\n\t\trequire.Nil(t, err)\n\t\tc.MustMove(t, lkrAli, aliNd, \"/bali-bile\")\n\t\tc.MustCommit(t, lkrAli, \"after move\")\n\n\t\t// do commit before.\n\t\tpatch, err := MakePatch(lkrAli, beforeMove, nil)\n\t\trequire.Nil(t, err)\n\n\t\t// Apply the patch on bob's side.\n\t\trequire.Nil(t, ApplyPatch(lkrBob, patch))\n\t\tc.MustCommit(t, lkrBob, \"after patch\")\n\n\t\tdiff, err := MakeDiff(lkrBob, lkrAli, nil, nil, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Len(t, diff.Added, 0)\n\t\trequire.Len(t, diff.Removed, 0)\n\t\trequire.Len(t, diff.Moved, 0)\n\t\trequire.Len(t, diff.Conflict, 0)\n\t\trequire.Len(t, diff.Merged, 0)\n\t\trequire.Len(t, diff.Ignored, 0)\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/reset.go",
    "content": "package vcs\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"path\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n)\n\nfunc findPathAt(lkr *c.Linker, cmt *n.Commit, path string) (string, error) {\n\tnd, err := lkr.LookupModNode(path)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn \"\", err\n\t}\n\n\tif ie.IsNoSuchFileError(err) {\n\t\t// The file does not exist in the current commit,\n\t\t// so user probably knows that it had this path before.\n\t\treturn path, nil\n\t}\n\n\tstatus, err := lkr.Status()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\twalker := NewHistoryWalker(lkr, status, nd)\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\tif state.Head.TreeHash().Equal(cmt.TreeHash()) {\n\t\t\treturn state.Curr.Path(), nil\n\t\t}\n\t}\n\n\tif err := walker.Err(); err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Take the current path as best guess.\n\treturn path, nil\n}\n\nfunc clearPath(lkr *c.Linker, ndPath string) (*n.Directory, error) {\n\tnd, err := lkr.LookupModNode(ndPath)\n\tisNoSuchFile := ie.IsNoSuchFileError(err)\n\n\tif err != nil && !isNoSuchFile {\n\t\treturn nil, err\n\t}\n\n\tvar par *n.Directory\n\tif ndPath != \"/\" {\n\t\tpar, err = lkr.LookupDirectory(path.Dir(ndPath))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif par == nil {\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"checkout by commit if you want to checkout previous roots\",\n\t\t)\n\t}\n\n\t// The node does currently not exist (and the user wants to bring it back)\n\tif isNoSuchFile {\n\t\treturn par, nil\n\t}\n\n\terr = n.Walk(lkr, nd, true, func(child n.Node) error {\n\t\tlkr.MemIndexPurge(child)\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := par.RemoveChild(lkr, nd); err != nil {\n\t\treturn nil, err\n\t}\n\n\tlkr.MemIndexPurge(nd)\n\treturn par, lkr.StageNode(par)\n}\n\n// ResetNode resets a certain file to the state it had in cmt. If the file\n// did not exist back then, it will be deleted. `nd` is usually retrieved by\n// calling ResolveNode() and sorts.\n//\n// A special case occurs when the file was moved we reset to.\n// In this case the state of the old node (at the old path)\n// is being written to the node at the new path.\n// This is the more obvious choice to the user when he types:\n//\n//    $ brig reset HEAD^ i-was-somewhere-else-before   # name does not change.\n//\n// This method returns the old node (or nil if none) and any possible error.\nfunc ResetNode(lkr *c.Linker, cmt *n.Commit, currPath string) (n.Node, error) {\n\troot, err := lkr.DirectoryByHash(cmt.Root())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif root == nil {\n\t\treturn nil, errors.New(\"no root to reset to\")\n\t}\n\n\t// Find out the old path of `currPath` at `cmt`.\n\t// It might have changed due to moves.\n\toldPath, err := findPathAt(lkr, cmt, currPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toldNode, err := root.Lookup(lkr, oldPath)\n\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\treturn nil, err\n\t}\n\n\t// Make sure that all write related action happen in one go:\n\treturn oldNode, lkr.Atomic(func() (bool, error) {\n\t\t// Remove the node that is present at the current path:\n\t\tpar, err := clearPath(lkr, currPath)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\t// old Node might not have yet existed back then.\n\t\t// If so, simply do not re-add it.\n\t\tif oldNode != nil {\n\t\t\toldModNode, ok := oldNode.(n.ModNode)\n\t\t\tif !ok {\n\t\t\t\treturn true, e.Wrapf(ie.ErrBadNode, \"reset file\")\n\t\t\t}\n\n\t\t\t// If the old node was at a different location,\n\t\t\t// we need to modify its path.\n\t\t\toldModNode.SetName(path.Base(currPath))\n\t\t\tif err := oldModNode.SetParent(lkr, par); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tif err := oldModNode.NotifyMove(lkr, par, oldModNode.Path()); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tif err := lkr.StageNode(oldNode); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/reset_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\t\"github.com/sahib/brig/catfs/db\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestResetFile(t *testing.T) {\n\tc.WithDummyKv(t, func(kv db.Database) {\n\t\tlkr := c.NewLinker(kv)\n\t\tif err := lkr.MakeCommit(n.AuthorOfStage, \"initial commit\"); err != nil {\n\t\t\tt.Fatalf(\"Initial commit failed: %v\", err)\n\t\t}\n\n\t\tinitCmt, err := lkr.Head()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get initial head\")\n\t\t}\n\n\t\troot, err := lkr.Root()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Getting root failed: %v\", err)\n\t\t}\n\n\t\tfile := n.NewEmptyFile(root, \"cat.png\", \"u\", 3)\n\n\t\tc.MustModify(t, lkr, file, 1)\n\t\toldFileHash := file.TreeHash().Clone()\n\n\t\tif err := lkr.MakeCommit(n.AuthorOfStage, \"second commit\"); err != nil {\n\t\t\tt.Fatalf(\"Failed to make second commit: %v\", err)\n\t\t}\n\n\t\tc.MustModify(t, lkr, file, 2)\n\t\theadFileHash := file.TreeHash().Clone()\n\n\t\tif err := lkr.MakeCommit(n.AuthorOfStage, \"third commit\"); err != nil {\n\t\t\tt.Fatalf(\"Failed to make third commit: %v\", err)\n\t\t}\n\n\t\thead, err := lkr.Head()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get HEAD: %v\", err)\n\t\t}\n\n\t\tlastCommitNd, err := head.Parent(lkr)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get second commit: %v\", err)\n\t\t}\n\n\t\tlastCommit := lastCommitNd.(*n.Commit)\n\n\t\tif _, err := ResetNode(lkr, lastCommit, \"/cat.png\"); err != nil {\n\t\t\tt.Fatalf(\"Failed to checkout file before commit: %v\", err)\n\t\t}\n\n\t\tlastVersion, err := lkr.LookupFile(\"/cat.png\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to lookup /cat.png post checkout\")\n\t\t}\n\n\t\tif !lastVersion.TreeHash().Equal(oldFileHash) {\n\t\t\tt.Fatalf(\"Hash of checkout'd file is not from second commit\")\n\t\t}\n\n\t\tif lastVersion.Size() != 1 {\n\t\t\tt.Fatalf(\"Size of checkout'd file is not from second commit\")\n\t\t}\n\n\t\tif _, err := ResetNode(lkr, initCmt, \"/cat.png\"); err != nil {\n\t\t\tt.Fatalf(\"Failed to checkout file at init: %v\", err)\n\t\t}\n\n\t\t_, err = lkr.LookupFile(\"/cat.png\")\n\t\tif !ie.IsNoSuchFileError(err) {\n\t\t\tt.Fatalf(\"Different error: %v\", err)\n\t\t}\n\n\t\tif _, err := ResetNode(lkr, head, \"/cat.png\"); err != nil {\n\t\t\tt.Fatalf(\"Failed to checkout file at head: %v\", err)\n\t\t}\n\n\t\theadVersion, err := lkr.LookupFile(\"/cat.png\")\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to lookup /cat.png post checkout\")\n\t\t}\n\n\t\tif !headVersion.TreeHash().Equal(headFileHash) {\n\t\t\tt.Fatalf(\n\t\t\t\t\"Hash differs between new and head reset: %v != %v\",\n\t\t\t\theadVersion.TreeHash(),\n\t\t\t\theadFileHash,\n\t\t\t)\n\t\t}\n\t})\n}\n\nfunc TestFindPathAt(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tnd := c.MustTouch(t, lkr, \"/x\", 1)\n\t\tc1 := c.MustCommit(t, lkr, \"1\")\n\t\tc.MustMove(t, lkr, nd, \"/y\")\n\t\tc.MustCommit(t, lkr, \"2\")\n\n\t\toldPath, err := findPathAt(lkr, c1, \"/y\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/x\", oldPath)\n\t})\n}\n\n// Reset a file that was moved in earlier incarnations.\nfunc TestResetMovedFile(t *testing.T) {\n\tc.WithDummyLinker(t, func(lkr *c.Linker) {\n\t\tsub := c.MustMkdir(t, lkr, \"/sub\")\n\t\tnd := c.MustTouch(t, lkr, \"/sub/x\", 1)\n\t\tc1 := c.MustCommit(t, lkr, \"1\")\n\t\tc.MustMove(t, lkr, nd, \"/y\")\n\t\tc.MustModify(t, lkr, nd, 2)\n\t\tc.MustCommit(t, lkr, \"2\")\n\n\t\t// This should reset /y to content=1.\n\t\t_, err := ResetNode(lkr, c1, \"/y\")\n\t\trequire.Nil(t, err)\n\n\t\troot, err := lkr.Root()\n\t\trequire.Nil(t, err)\n\n\t\tchildren, err := root.ChildrenSorted(lkr)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, children, 2)\n\t\trequire.Equal(t, children[0].Type(), n.NodeType(n.NodeTypeDirectory))\n\t\trequire.Equal(t, children[0].Path(), \"/sub\")\n\n\t\trequire.Equal(t, children[1].Type(), n.NodeType(n.NodeTypeFile))\n\t\trequire.Equal(t, children[1].Path(), \"/y\")\n\t\trequire.Equal(t, children[1].BackendHash(), h.TestDummy(t, 1))\n\n\t\tsubChildren, err := sub.ChildrenSorted(lkr)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, subChildren, 1)\n\t\trequire.Equal(t, subChildren[0].Type(), n.NodeType(n.NodeTypeGhost))\n\t\trequire.Equal(t, subChildren[0].Path(), \"/sub/x\")\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/resolve.go",
    "content": "package vcs\n\n// This package implements brig's sync algorithm which I called, in a burst of\n// modesty, \"bright\". (Not because it's or I'm very bright, but because it\n// starts with brig...)\n//\n// The sync algorithm tries to handle the following special cases:\n// - Propagate moves (most of them, at least)\n// - Propagate deletes (configurable?)\n// - Also sync empty directories.\n//\n// Terminology:\n// - Destination (short \"dst\") is used to reference our own storage.\n// - Source (short: \"src\") is used to reference the remote storage.\n//\n// The sync algorithm can be roughly divided in 4 stages:\n// - Stage 1: \"Move Marking\":\n//   Iterate over all ghosts in the tree and check if they were either moved\n//   (has sibling) or removed (has no sibling). In case of directories, the\n//   second mapping stage is already executed.\n//\n// - Stage 2: \"Mapping\":\n//   Finding pairs of files that possibly adding, merging or conflict handling.\n//   Equal files will already be sorted out at this point. Every already\n//   visited node in the remote linker will be marked. The mapping algorithm\n//   starts at the root node and uses the attributes of the merkle trees\n//   (same hash = same content) to skip over same parts.\n//\n// - Stage 3: \"Resolving\":\n//   For each file a decision needs to be made. This decision defines the next step\n//   and can be one of the following.\n//\n//   - The file was added on the remote, we should add it to -> Add them.\n//   - The file was removed on the remote, we might want to also delete it.\n//   - The file was only moved on the remote node, we might want to moev it also.\n//   - The file has compatible changes on the both sides. -> Merge them.\n//   - The file was incompatible changes on both sides -> Do conflict resolution.\n//   - The nodes have differing types (directory vs files). Report them.\n//\n// - Stage 4: \"Handling\"\n//   Only at this stage \"sync\" and \"diff\" differ.\n//   Sync will take the the files from Stage 3 and add/remove/merge files.\n//   Diff will create a report out of those files and also includes files that\n//   are simply missing on the source side (but do not need to be removed).\n//\n// Everything except Stage 4 is read-only. If a user wants to only show the diff\n// between two linkers, he just prints what would be done instead of actually doing it.\n// This makes the diff and sync implementation share most of it's code.\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"regexp\"\n\t\"strings\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar (\n\tconflictNodePattern = regexp.MustCompile(`/.*\\.conflict\\.\\d+`)\n)\n\n// executor is the interface that executes the actual action\n// needed to perform the sync (see \"phase 4\" in the package doc)\ntype executor interface {\n\thandleAdd(src n.ModNode) error\n\thandleRemove(dst n.ModNode) error\n\thandleMissing(dst n.ModNode) error\n\thandleMove(src, dst n.ModNode) error\n\thandleConflictNode(src n.ModNode) error\n\thandleTypeConflict(src, dst n.ModNode) error\n\thandleMerge(src, dst n.ModNode, srcMask, dstMask ChangeType) error\n\thandleConflict(src, dst n.ModNode, srcMask, dstMask ChangeType) error\n}\n\n//////////////////////////////////////////////\n// IMPLEMENTATION OF ACTUAL DECISION MAKING //\n//////////////////////////////////////////////\n\ntype resolver struct {\n\tlkrSrc *c.Linker\n\tlkrDst *c.Linker\n\n\t// What points should be resolved\n\tdstHead *n.Commit\n\tsrcHead *n.Commit\n\n\t// cached attributes:\n\tdstMergeCmt *n.Commit\n\tsrcMergeCmt *n.Commit\n\n\t// actual executor based on the decision\n\texec executor\n}\n\nfunc newResolver(lkrSrc, lkrDst *c.Linker, srcHead, dstHead *n.Commit, exec executor) (*resolver, error) {\n\tvar err error\n\tif srcHead == nil {\n\t\tsrcHead, err = lkrSrc.Status()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif dstHead == nil {\n\t\tdstHead, err = lkrDst.Status()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &resolver{\n\t\tlkrSrc:  lkrSrc,\n\t\tlkrDst:  lkrDst,\n\t\tsrcHead: srcHead,\n\t\tdstHead: dstHead,\n\t\texec:    exec,\n\t}, nil\n}\n\nfunc (rv *resolver) resolve() error {\n\tsrcRoot, err := rv.lkrSrc.DirectoryByHash(rv.srcHead.Root())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := rv.cacheLastCommonMerge(); err != nil {\n\t\treturn e.Wrapf(err, \"failed to find last common merge\")\n\t}\n\n\tmapper, err := NewMapper(rv.lkrSrc, rv.lkrDst, rv.srcHead, rv.dstHead, srcRoot)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmappings := []MapPair{}\n\terr = mapper.Map(func(pair MapPair) error {\n\t\tmappings = append(mappings, pair)\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, pair := range mappings {\n\t\tif err := rv.decide(pair); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (rv *resolver) cacheLastCommonMerge() error {\n\tsrcOwner, err := rv.lkrSrc.Owner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcurrHead := rv.dstHead\n\n\tfor currHead != nil {\n\t\twith, srcRef := currHead.MergeMarker()\n\t\tif with == srcOwner {\n\t\t\tsrcHead, err := rv.lkrSrc.CommitByHash(srcRef)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdebugf(\"last merge found: %v = %s\", with, srcRef)\n\t\t\trv.dstMergeCmt = currHead\n\t\t\trv.srcMergeCmt = srcHead\n\t\t}\n\n\t\tprevHeadNode, err := currHead.Parent(rv.lkrDst)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif prevHeadNode == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tnewDstHead, ok := prevHeadNode.(*n.Commit)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tcurrHead = newDstHead\n\t}\n\n\treturn nil\n}\n\n// isConflictPath will return true if the file or directory was created\n// as conflict file in case of a merge conflicts.\nfunc isConflictPath(path string) bool {\n\treturn conflictNodePattern.MatchString(path)\n}\n\n// hasConflictFile reports if we already created a conflict file for `dstNd`.\nfunc (rv *resolver) hasConflictFile(dstNd n.ModNode) (bool, error) {\n\tparent, err := rv.lkrDst.LookupDirectory(path.Dir(dstNd.Path()))\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\t// Assumption: The original node and its conflict fil\n\t// will be always on the same level. If this change,\n\t// the logic here has to change also.\n\tchildren, err := parent.ChildrenSorted(rv.lkrDst)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tfor _, child := range children {\n\t\tif child.Type() == n.NodeTypeGhost {\n\t\t\tcontinue\n\t\t}\n\t\tif isConflictPath(child.Path()) {\n\t\t\t// Also check if the conflict file belongs to our node:\n\t\t\treturn strings.HasPrefix(child.Path(), dstNd.Path()), nil\n\t\t}\n\t}\n\n\t// None found, assume we do not have a conflict file (yet)\n\treturn false, nil\n}\n\n// hasConflicts is always called when two nodes are on both sides and they do\n// not have the same hash. In the best case, both have compatible changes and\n// can be merged, otherwise a user defined conflict strategy has to be applied.\nfunc (rv *resolver) hasConflicts(src, dst n.ModNode) (bool, ChangeType, ChangeType, error) {\n\t// Nodes with same hashes are no conflicts...\n\t// (tree hash is also influenced by content)\n\tif src.TreeHash().Equal(dst.TreeHash()) {\n\t\treturn false, 0, 0, nil\n\t}\n\n\tsrcHist, err := History(rv.lkrSrc, src, rv.srcHead, rv.srcMergeCmt)\n\tif err != nil {\n\t\treturn false, 0, 0, e.Wrapf(err, \"history src\")\n\t}\n\n\tdstHist, err := History(rv.lkrDst, dst, rv.dstHead, rv.dstMergeCmt)\n\tif err != nil {\n\t\treturn false, 0, 0, e.Wrapf(err, \"history dst\")\n\t}\n\n\t// This loop can be optimized if the need arises:\n\tcommonRootFound := false\n\tsrcRoot, dstRoot := len(srcHist), len(dstHist)\n\n\tfor srcIdx := 0; srcIdx < len(srcHist) && !commonRootFound; srcIdx++ {\n\t\tfor dstIdx := 0; dstIdx < len(dstHist) && !commonRootFound; dstIdx++ {\n\t\t\tsrcChange, dstChange := srcHist[srcIdx], dstHist[dstIdx]\n\n\t\t\tif srcChange.Curr.ContentHash().Equal(dstChange.Curr.ContentHash()) {\n\t\t\t\tsrcRoot, dstRoot = srcIdx, dstIdx\n\t\t\t\tcommonRootFound = true\n\t\t\t}\n\t\t}\n\t}\n\n\tsrcHist = srcHist[:srcRoot]\n\tdstHist = dstHist[:dstRoot]\n\n\t// Compute the combination of all changes:\n\tvar srcMask, dstMask ChangeType\n\tfor _, change := range srcHist {\n\t\tsrcMask |= change.Mask\n\t}\n\tfor _, change := range dstHist {\n\t\tdstMask |= change.Mask\n\t}\n\n\tif len(srcHist) == 0 && len(dstHist) == 0 {\n\t\treturn false, 0, 0, nil\n\t}\n\n\t// Handle a few lucky cases:\n\tif len(srcHist) > 0 && len(dstHist) == 0 {\n\t\t// We can \"fast forward\" our node.\n\t\t// There are only remote changes for this file.\n\t\treturn false, srcMask, dstMask, nil\n\n\t}\n\tif len(srcHist) == 0 && len(dstHist) > 0 {\n\t\t// Only our side has changes. We can consider this node as merged.\n\t\treturn false, 0, 0, nil\n\t}\n\n\t// Both sides have changes. Now we need to figure out if they are compatible.\n\t// We do this simply by OR-ing all changes on both side to an individual mask\n\t// and check if those can be applied on top of dst's current state.\n\tif !dstMask.IsCompatible(srcMask) {\n\t\t// The changes are not compatible.\n\t\t// We need to apply a conflict resolution strategy.\n\t\treturn true, srcMask, dstMask, nil\n\t}\n\n\t// No conflict. We can merge src and dst.\n\treturn false, srcMask, dstMask, nil\n}\n\nfunc pathOrNil(nd n.Node) string {\n\tif nd == nil {\n\t\treturn \"nil\"\n\t}\n\n\treturn nd.Path()\n}\n\nfunc (rv *resolver) decide(pair MapPair) error {\n\tlog.Debugf(\n\t\t\"Deciding pair: src=%v dst=%v\",\n\t\tpathOrNil(pair.Src),\n\t\tpathOrNil(pair.Dst),\n\t)\n\n\tif pair.Src == nil && pair.Dst == nil {\n\t\treturn fmt.Errorf(\"Received completely empty mapping; ignoring\")\n\t}\n\n\tif pair.Src != nil && isConflictPath(pair.Src.Path()) {\n\t\treturn rv.exec.handleConflictNode(pair.Src)\n\t}\n\n\tif pair.Dst != nil && isConflictPath(pair.Dst.Path()) {\n\t\treturn rv.exec.handleConflictNode(pair.Dst)\n\t}\n\n\tif pair.SrcWasMoved {\n\t\treturn rv.exec.handleMove(pair.Src, pair.Dst)\n\t}\n\n\tif pair.Src == nil {\n\t\tif pair.SrcWasRemoved {\n\t\t\treturn rv.exec.handleRemove(pair.Dst)\n\t\t}\n\n\t\treturn rv.exec.handleMissing(pair.Dst)\n\t}\n\n\tif pair.Dst == nil {\n\t\treturn rv.exec.handleAdd(pair.Src)\n\t}\n\n\tif pair.TypeMismatch {\n\t\tdebugf(\n\t\t\t\"%s is a %s and %s a %s; ignoring\",\n\t\t\tpair.Src.Path(), pair.Src.Type(),\n\t\t\tpair.Dst.Path(), pair.Dst.Type(),\n\t\t)\n\t\treturn rv.exec.handleTypeConflict(pair.Src, pair.Dst)\n\t}\n\n\thasConflicts, srcMask, dstMask, err := rv.hasConflicts(pair.Src, pair.Dst)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif hasConflicts {\n\t\treturn rv.exec.handleConflict(pair.Src, pair.Dst, srcMask, dstMask)\n\t}\n\n\thasConflictFile, err := rv.hasConflictFile(pair.Dst)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif hasConflictFile {\n\t\treturn nil\n\t}\n\n\t// handleMerge needs the masks to decide what path / content to choose.\n\treturn rv.exec.handleMerge(pair.Src, pair.Dst, srcMask, dstMask)\n}\n"
  },
  {
    "path": "catfs/vcs/resolve_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype expect struct {\n\tdstMergeCmt *n.Commit\n\tsrcMergeCmt *n.Commit\n\n\tsrcFile *n.File\n\tdstFile *n.File\n\n\terr    error\n\tresult bool\n}\n\nfunc setupResolveBasicNoConflict(t *testing.T, lkrSrc, lkrDst *c.Linker) *expect {\n\tsrc, _ := c.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 1)\n\tdst, _ := c.MustTouchAndCommit(t, lkrDst, \"/x.png\", 2)\n\n\treturn &expect{\n\t\tdstMergeCmt: nil,\n\t\tsrcMergeCmt: nil,\n\t\tsrcFile:     src,\n\t\tdstFile:     dst,\n\t\terr:         nil,\n\t\tresult:      false,\n\t}\n}\n\nfunc TestHasConflicts(t *testing.T) {\n\tt.Parallel()\n\n\ttcs := []struct {\n\t\tname  string\n\t\tsetup func(t *testing.T, lkrSrc, lkrDst *c.Linker) *expect\n\t}{\n\t\t{\n\t\t\tname:  \"basic-no-conflict-file\",\n\t\t\tsetup: setupResolveBasicNoConflict,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\n\t\t\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t\t\texpect := tc.setup(t, lkrSrc, lkrDst)\n\n\t\t\t\tsyncer, err := newResolver(lkrSrc, lkrDst, nil, nil, nil)\n\t\t\t\trequire.Nil(t, err)\n\n\t\t\t\tif err := syncer.cacheLastCommonMerge(); err != nil {\n\t\t\t\t\tt.Fatalf(\"Failed to find last common merge.\")\n\t\t\t\t}\n\n\t\t\t\trequire.Equal(\n\t\t\t\t\tt,\n\t\t\t\t\texpect.dstMergeCmt,\n\t\t\t\t\tsyncer.dstMergeCmt,\n\t\t\t\t\t\"dst merge marker\",\n\t\t\t\t)\n\t\t\t\trequire.Equal(\n\t\t\t\t\tt,\n\t\t\t\t\texpect.srcMergeCmt,\n\t\t\t\t\tsyncer.srcMergeCmt,\n\t\t\t\t\t\"src merge marker\",\n\t\t\t\t)\n\n\t\t\t\tresult, _, _, err := syncer.hasConflicts(\n\t\t\t\t\texpect.srcFile,\n\t\t\t\t\texpect.dstFile,\n\t\t\t\t)\n\t\t\t\tif expect.err != err {\n\t\t\t\t\tt.Fatalf(\n\t\t\t\t\t\t\"Resolve failed with wrong error: %v (want %v)\",\n\t\t\t\t\t\terr, expect.err)\n\t\t\t\t}\n\n\t\t\t\tif expect.result == result {\n\t\t\t\t\tt.Fatalf(\n\t\t\t\t\t\t\"resolve did not deliver the expected. Want %v, but got %v\",\n\t\t\t\t\t\texpect.result,\n\t\t\t\t\t\tresult,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "catfs/vcs/sync.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\n\te \"github.com/pkg/errors\"\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\t// ConflictStragetyMarker creates marker files for each conflict.\n\tConflictStragetyMarker = iota\n\n\t// ConflictStragetyIgnore ignores conflicts totally.\n\tConflictStragetyIgnore\n\n\t// ConflictStragetyEmbrace takes the version of the remote.\n\tConflictStragetyEmbrace\n\n\t// ConflictStragetyUnknown should be used when the strategy is not clear.\n\tConflictStragetyUnknown\n)\n\n// ConflictStrategy defines what conflict strategy to apply in case of\n// nodes with different content hashes.\ntype ConflictStrategy int\n\nfunc (cs ConflictStrategy) String() string {\n\tswitch cs {\n\tcase ConflictStragetyMarker:\n\t\treturn \"marker\"\n\tcase ConflictStragetyIgnore:\n\t\treturn \"ignore\"\n\tcase ConflictStragetyEmbrace:\n\t\treturn \"embrace\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// ConflictStrategyFromString converts a string to a ConflictStrategy.\n// It it is not valid, ConflictStragetyUnknown is returned.\nfunc ConflictStrategyFromString(spec string) ConflictStrategy {\n\tswitch spec {\n\tcase \"marker\":\n\t\treturn ConflictStragetyMarker\n\tcase \"ignore\":\n\t\treturn ConflictStragetyIgnore\n\tcase \"embrace\":\n\t\treturn ConflictStragetyEmbrace\n\tdefault:\n\t\treturn ConflictStragetyUnknown\n\t}\n}\n\n// PinStats Handy structure to use during handleMerge to store the node info in which we merge\ntype PinStats struct {\n\tPinned, Explicit bool\n}\n\n// SyncOptions gives you the possibility to configure the sync algorithm.\ntype SyncOptions struct {\n\tConflictStrategy          ConflictStrategy\n\tIgnoreDeletes             bool\n\tIgnoreMoves               bool\n\tMessage                   string\n\tReadOnlyFolders           map[string]bool\n\tConflictStrategyPerFolder map[string]ConflictStrategy\n\n\tOnAdd      func(newNd n.ModNode) bool\n\tOnRemove   func(oldNd n.ModNode) bool\n\tOnMerge    func(nd n.ModNode, isGet bool, ndPinStats *PinStats) bool\n\tOnConflict func(src, dst n.ModNode) bool\n}\n\nvar (\n\tdefaultSyncConfig = &SyncOptions{}\n)\n\ntype syncer struct {\n\tcfg    *SyncOptions\n\tlkrSrc *c.Linker\n\tlkrDst *c.Linker\n}\n\nfunc (sy *syncer) add(src n.ModNode, srcParent, srcName string) error {\n\tvar newDstNode n.ModNode\n\tvar err error\n\n\tparentDir, err := sy.lkrDst.LookupDirectory(srcParent)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch src.Type() {\n\tcase n.NodeTypeDirectory:\n\t\tnewDstNode, err = n.NewEmptyDirectory(\n\t\t\tsy.lkrDst,\n\t\t\tparentDir,\n\t\t\tsrcName,\n\t\t\tsrc.User(),\n\t\t\tsy.lkrDst.NextInode(),\n\t\t)\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := sy.lkrDst.StageNode(newDstNode); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tsrcDir, ok := src.(*n.Directory)\n\t\tif !ok {\n\t\t\treturn ie.ErrBadNode\n\t\t}\n\n\t\tchildren, err := srcDir.ChildrenSorted(sy.lkrSrc)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor _, child := range children {\n\t\t\tchildModNode, ok := child.(n.ModNode)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif err := sy.add(childModNode, srcDir.Path(), child.Name()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\tcase n.NodeTypeFile:\n\t\tnewDstFile := n.NewEmptyFile(\n\t\t\tparentDir,\n\t\t\tsrcName,\n\t\t\tsrc.User(),\n\t\t\tsy.lkrDst.NextInode(),\n\t\t)\n\n\t\tnewDstNode = newDstFile\n\n\t\tsrcFile, ok := src.(*n.File)\n\t\tif ok {\n\t\t\tnewDstFile.SetContent(sy.lkrDst, srcFile.ContentHash())\n\t\t\tnewDstFile.SetBackend(sy.lkrDst, srcFile.BackendHash())\n\t\t\tnewDstFile.SetSize(srcFile.Size())\n\t\t\tnewDstFile.SetCachedSize(srcFile.CachedSize())\n\t\t\tnewDstFile.SetKey(srcFile.Key())\n\t\t}\n\n\t\tif sy.cfg.OnAdd != nil {\n\t\t\tif !sy.cfg.OnAdd(newDstFile) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tif err := parentDir.Add(sy.lkrDst, newDstFile); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn sy.lkrDst.StageNode(newDstNode)\n\tcase n.NodeTypeGhost:\n\t\t// skipping addition of a ghost\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"Unexpected node type in handleAdd\")\n\t}\n\n\treturn nil\n}\n\nfunc isReadOnly(folders map[string]bool, nodePaths ...string) bool {\n\tfor _, nodePath := range nodePaths {\n\t\tfor {\n\t\t\tif folders[nodePath] {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tnewNodePath := path.Dir(nodePath)\n\t\t\tif newNodePath == nodePath {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tnodePath = newNodePath\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (sy *syncer) handleAdd(src n.ModNode) error {\n\tif isReadOnly(sy.cfg.ReadOnlyFolders, src.Path()) {\n\t\treturn nil\n\t}\n\n\tlog.Debugf(\"handling add: %s\", src.Path())\n\treturn sy.add(src, path.Dir(src.Path()), src.Name())\n}\n\nfunc (sy *syncer) handleMove(src, dst n.ModNode) error {\n\tif sy.cfg.IgnoreMoves {\n\t\treturn nil\n\t}\n\n\tif isReadOnly(sy.cfg.ReadOnlyFolders, src.Path(), dst.Path()) {\n\t\treturn nil\n\t}\n\n\tlog.Debugf(\"handling move: %s -> %s\", dst.Path(), src.Path())\n\tif _, err := c.Mkdir(sy.lkrDst, path.Dir(src.Path()), true); err != nil {\n\t\treturn err\n\t}\n\n\t// Move our node (dst) to the path determined by src.\n\treturn e.Wrapf(c.Move(sy.lkrDst, dst, src.Path()), \"move\")\n}\n\nfunc (sy *syncer) handleMissing(dst n.ModNode) error {\n\t// This is only called when a file in dst is missing on src.\n\t// No sync action is required.\n\tlog.Debugf(\"handling missing: %s\", dst.Path())\n\treturn nil\n}\n\nfunc (sy *syncer) handleRemove(dst n.ModNode) error {\n\tif sy.cfg.IgnoreDeletes {\n\t\treturn nil\n\t}\n\n\tif isReadOnly(sy.cfg.ReadOnlyFolders, dst.Path()) {\n\t\treturn nil\n\t}\n\n\tlog.Debugf(\"handling remove: %s\", dst.Path())\n\n\tif sy.cfg.OnRemove != nil {\n\t\tif !sy.cfg.OnRemove(dst) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t_, _, err := c.Remove(sy.lkrDst, dst, true, true)\n\treturn err\n}\n\nfunc (sy *syncer) getConflictStrategy(nd n.ModNode) ConflictStrategy {\n\tcurr := nd.Path()\n\n\t// Shortcurt: If the per-folder feature is not used,\n\t// we can skip this whole loop below.\n\tif len(sy.cfg.ConflictStrategyPerFolder) == 0 {\n\t\treturn sy.cfg.ConflictStrategy\n\t}\n\n\tlog.Debugf(\"*** MAP %v\", sy.cfg.ConflictStrategyPerFolder)\n\n\tfor {\n\t\tcs, ok := sy.cfg.ConflictStrategyPerFolder[curr]\n\t\tif ok {\n\t\t\treturn cs\n\t\t}\n\n\t\tparent := path.Dir(curr)\n\t\tif parent == curr {\n\t\t\tbreak\n\t\t}\n\n\t\tcurr = parent\n\t}\n\n\t// No special strategy found for this folder\n\treturn sy.cfg.ConflictStrategy\n}\n\nfunc (sy *syncer) handleConflict(src, dst n.ModNode, srcMask, dstMask ChangeType) error {\n\tcs := sy.getConflictStrategy(dst)\n\n\tif cs == ConflictStragetyIgnore {\n\t\treturn nil\n\t}\n\n\tif cs == ConflictStragetyEmbrace {\n\t\treturn sy.handleMerge(src, dst, srcMask, dstMask)\n\t}\n\n\tif isReadOnly(sy.cfg.ReadOnlyFolders, src.Path(), dst.Path()) {\n\t\treturn nil\n\t}\n\n\tlog.Debugf(\"handling conflict: %s <-> %s\", src.Path(), dst.Path())\n\n\t// Find a path that we do not have yet.\n\t// stamp := time.Now().Format(time.RFC3339)\n\tconflictName := \"\"\n\tconflictNameTmpl := fmt.Sprintf(\"%s.conflict.%%d\", dst.Name())\n\n\t// Fix the unlikely case that there is already a node at the conflict path:\n\tfor tries := 0; tries < 100; tries++ {\n\t\tconflictName = fmt.Sprintf(conflictNameTmpl, tries)\n\t\tdstNd, err := sy.lkrDst.LookupNode(conflictName)\n\t\tif err != nil && !ie.IsNoSuchFileError(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif dstNd == nil {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tdstDirname := path.Dir(dst.Path())\n\n\tif sy.cfg.OnConflict != nil {\n\t\tif !sy.cfg.OnConflict(src, dst) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn sy.add(src, dstDirname, conflictName)\n}\n\nfunc (sy *syncer) handleMerge(src, dst n.ModNode, srcMask, dstMask ChangeType) error {\n\tif isReadOnly(sy.cfg.ReadOnlyFolders, src.Path(), dst.Path()) {\n\t\treturn nil\n\t}\n\n\tif src.Path() != dst.Path() {\n\t\t// Only move the file if it was only moved on the remote side.\n\t\tif srcMask&ChangeTypeMove != 0 && dstMask&ChangeTypeMove == 0 {\n\t\t\tif err := c.Move(sy.lkrDst, dst, src.Path()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\tif dst.Type() == n.NodeTypeGhost {\n\t\t// Nothing to do. We removed the file on our side,\n\t\t// but it's still on the remote side. Good for them,\n\t\t// but keep it deleted here.\n\t\treturn nil\n\t}\n\n\t// If src did not change, there's no need to sync the content.\n\t// If src has no changes, we know that dst must have changes,\n\t// otherwise it would have been reported as conflict.\n\tif srcMask&ChangeTypeModify == 0 && srcMask&ChangeTypeAdd == 0 {\n\t\treturn nil\n\t}\n\n\tdstParent, err := n.ParentDirectory(sy.lkrDst, dst)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := dstParent.RemoveChild(sy.lkrDst, dst); err != nil {\n\t\treturn err\n\t}\n\n\tdstFile, ok := dst.(*n.File)\n\tif !ok {\n\t\treturn ie.ErrBadNode\n\t}\n\n\tsrcFile, ok := src.(*n.File)\n\tif !ok {\n\t\treturn ie.ErrBadNode\n\t}\n\n\toldDstPinStats := PinStats{false, false}\n\tisGet := true\n\tif sy.cfg.OnMerge != nil {\n\t\tsy.cfg.OnMerge(dst, isGet, &oldDstPinStats)\n\t}\n\n\tdstFile.SetContent(sy.lkrDst, srcFile.ContentHash())\n\tdstFile.SetBackend(sy.lkrDst, srcFile.BackendHash())\n\tdstFile.SetSize(srcFile.Size())\n\tdstFile.SetCachedSize(srcFile.CachedSize())\n\tdstFile.SetKey(srcFile.Key())\n\n\tif err := dstParent.Add(sy.lkrDst, dstFile); err != nil {\n\t\treturn err\n\t}\n\n\tif sy.cfg.OnMerge != nil {\n\t\tif !sy.cfg.OnMerge(dst, !isGet, &oldDstPinStats) {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn sy.lkrDst.StageNode(dstFile)\n}\n\nfunc (sy *syncer) handleTypeConflict(src, dst n.ModNode) error {\n\tlog.Debugf(\"handling type conflict: %s <-> %s\", src.Path(), dst.Path())\n\n\t// Simply do nothing.\n\treturn nil\n}\n\nfunc (sy *syncer) handleConflictNode(src n.ModNode) error {\n\tlog.Debugf(\"handling node conflict: %s\", src.Path())\n\n\t// We don't care for files on the other side named \"README.conflict.0\" e.g.\n\treturn nil\n}\n\n// Sync will synchronize the changes from `lkrSrc` to `lkrDst`,\n// according to the options set in `cfg`. This is atomic.\n// A new commit might be created with `message`, defaulting to a default message\n// when an empty string was given.\nfunc Sync(lkrSrc, lkrDst *c.Linker, cfg *SyncOptions) error {\n\tif cfg == nil {\n\t\tcfg = defaultSyncConfig\n\t}\n\n\tsyncer := &syncer{\n\t\tcfg:    cfg,\n\t\tlkrSrc: lkrSrc,\n\t\tlkrDst: lkrDst,\n\t}\n\n\tresolver, err := newResolver(lkrSrc, lkrDst, nil, nil, syncer)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Make sure the complete sync goes through in one disk transaction.\n\treturn lkrDst.Atomic(func() (bool, error) {\n\t\t// This calls all the handleXXX() callbacks above.\n\t\tif err := resolver.resolve(); err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\twasModified, err := lkrDst.HaveStagedChanges()\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\t// If something was changed, we should set the merge marker\n\t\t// and also create a new commit.\n\t\tif wasModified {\n\t\t\tsrcOwner, err := lkrSrc.Owner()\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tsrcHead, err := lkrSrc.Head()\n\t\t\tif err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\t// If something was changed, remember that we merged with src.\n\t\t\t// This avoids merging conflicting files a second time in the next resolve().\n\t\t\tif err := lkrDst.SetMergeMarker(srcOwner, srcHead.TreeHash()); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\n\t\t\tmessage := cfg.Message\n\t\t\tif message == \"\" {\n\t\t\t\tmessage = fmt.Sprintf(\"merge with »%s«\", srcOwner)\n\t\t\t}\n\n\t\t\tif err := lkrDst.MakeCommit(srcOwner, message); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\n\t\treturn false, nil\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/sync_test.go",
    "content": "package vcs\n\nimport (\n\t\"testing\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// Create a file in src and check\n// that it's being synced to the dst side.\nfunc setupBasicSrcFile(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tc.MustTouch(t, lkrSrc, \"/x.png\", 1)\n}\n\nfunc checkBasicSrcFile(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txFile, err := lkrDst.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xFile.Path(), \"/x.png\")\n\trequire.Equal(t, xFile.BackendHash(), h.TestDummy(t, 1))\n}\n\n////////\n\n// Only have the file on dst.\n// Nothing should happen, since no pair can be found.\nfunc setupBasicDstFile(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tc.MustTouch(t, lkrDst, \"/x.png\", 1)\n}\n\nfunc checkBasicDstFile(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txFile, err := lkrDst.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xFile.Path(), \"/x.png\")\n\trequire.Equal(t, xFile.BackendHash(), h.TestDummy(t, 1))\n}\n\n////////\n\n// Create the same file on both sides with the same content.\nfunc setupBasicBothNoConflict(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tc.MustTouch(t, lkrSrc, \"/x.png\", 1)\n\tc.MustTouch(t, lkrDst, \"/x.png\", 1)\n}\n\nfunc checkBasicBothNoConflict(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txSrcFile, err := lkrSrc.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xSrcFile.Path(), \"/x.png\")\n\trequire.Equal(t, xSrcFile.BackendHash(), h.TestDummy(t, 1))\n\n\txDstFile, err := lkrDst.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xDstFile.Path(), \"/x.png\")\n\trequire.Equal(t, xDstFile.BackendHash(), h.TestDummy(t, 1))\n}\n\n////////\n\n// Create the same file on both sides with different content.\n// This should result in a conflict, resulting in conflict file.\nfunc setupBasicBothConflict(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tc.MustTouch(t, lkrSrc, \"/x.png\", 42)\n\tc.MustTouch(t, lkrDst, \"/x.png\", 23)\n}\n\nfunc checkBasicBothConflict(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txSrcFile, err := lkrSrc.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xSrcFile.Path(), \"/x.png\")\n\trequire.Equal(t, xSrcFile.BackendHash(), h.TestDummy(t, 42))\n\n\txDstFile, err := lkrDst.LookupFile(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xDstFile.Path(), \"/x.png\")\n\trequire.Equal(t, xDstFile.BackendHash(), h.TestDummy(t, 23))\n\n\txConflictFile, err := lkrDst.LookupFile(\"/x.png.conflict.0\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xConflictFile.Path(), \"/x.png.conflict.0\")\n\trequire.Equal(t, xConflictFile.BackendHash(), h.TestDummy(t, 42))\n}\n\n////////\n\nfunc setupBasicRemove(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\t// Create x.png on src and remove it after one commit:\n\txFile := c.MustTouch(t, lkrSrc, \"/x.png\", 42)\n\tc.MustCommit(t, lkrSrc, \"who let the x out\")\n\tc.MustRemove(t, lkrSrc, xFile)\n\n\t// Create the same file on dst:\n\tc.MustTouch(t, lkrDst, \"/x.png\", 42)\n}\n\nfunc checkBasicRemove(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txDstFile, err := lkrDst.LookupGhost(\"/x.png\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, xDstFile.Path(), \"/x.png\")\n}\n\n////////\n\nfunc setupBasicSrcMove(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\t// Create x.png on src and remove it after one commit:\n\txFile := c.MustTouch(t, lkrSrc, \"/x.png\", 42)\n\tc.MustCommit(t, lkrSrc, \"who let the x out\")\n\tc.MustMove(t, lkrSrc, xFile, \"/y.png\")\n\n\t// Create the same file on dst:\n\tc.MustTouch(t, lkrDst, \"/x.png\", 42)\n}\n\nfunc checkBasicSrcMove(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\txDstGhost, err := lkrDst.LookupGhost(\"/x.png\")\n\trequire.Nil(t, err)\n\n\trequire.Equal(t, xDstGhost.Path(), \"/x.png\")\n\trequire.Equal(t, xDstGhost.BackendHash(), h.TestDummy(t, 42))\n\n\tyDstFile, err := lkrDst.LookupFile(\"/y.png\")\n\trequire.Nil(t, err)\n\n\trequire.Equal(t, yDstFile.Path(), \"/y.png\")\n\trequire.Equal(t, yDstFile.BackendHash(), h.TestDummy(t, 42))\n}\n\n////////\n\nfunc setupEdgeMoveDirAndModifyChild(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\t// Syncing recursive empty dirs require detecting and adding them recursive.\n\t// This was buggy before, so prevent it from happening again.\n\tc.MustMkdir(t, lkrSrc, \"/a\")\n\tc.MustMkdir(t, lkrDst, \"/a\")\n\tc.MustCommit(t, lkrSrc, \"added dirs src\")\n\tc.MustCommit(t, lkrDst, \"added dirs dst\")\n}\n\n////////\n\nfunc setupEdgeEmptyDir(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\t// Syncing recursive empty dirs require detecting and adding them recursive.\n\t// This was buggy before, so prevent it from happening again.\n\tc.MustMkdir(t, lkrSrc, \"/empty/sub/blub\")\n}\n\nfunc checkEdgeEmptyDir(t *testing.T, lkrSrc, lkrDst *c.Linker) {\n\tdir, err := lkrDst.LookupDirectory(\"/empty/sub/blub\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, dir.Path(), \"/empty/sub/blub\")\n}\n\nfunc TestSync(t *testing.T) {\n\tt.Parallel()\n\n\ttcs := []struct {\n\t\tname  string\n\t\tsetup func(t *testing.T, lkrSrc, lkrDst *c.Linker)\n\t\tcheck func(t *testing.T, lkrSrc, lkrDst *c.Linker)\n\t}{\n\t\t{\n\t\t\tname:  \"basic-src-file\",\n\t\t\tsetup: setupBasicSrcFile,\n\t\t\tcheck: checkBasicSrcFile,\n\t\t}, {\n\t\t\tname:  \"basic-dst-file\",\n\t\t\tsetup: setupBasicDstFile,\n\t\t\tcheck: checkBasicDstFile,\n\t\t}, {\n\t\t\tname:  \"basic-both-file-no-conflict\",\n\t\t\tsetup: setupBasicBothNoConflict,\n\t\t\tcheck: checkBasicBothNoConflict,\n\t\t}, {\n\t\t\tname:  \"basic-both-file-conflict\",\n\t\t\tsetup: setupBasicBothConflict,\n\t\t\tcheck: checkBasicBothConflict,\n\t\t}, {\n\t\t\tname:  \"basic-src-remove\",\n\t\t\tsetup: setupBasicRemove,\n\t\t\tcheck: checkBasicRemove,\n\t\t}, {\n\t\t\tname:  \"basic-src-move\",\n\t\t\tsetup: setupBasicSrcMove,\n\t\t\tcheck: checkBasicSrcMove,\n\t\t}, {\n\t\t\tname:  \"edge-empty-dir\",\n\t\t\tsetup: setupEdgeEmptyDir,\n\t\t\tcheck: checkEdgeEmptyDir,\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\n\t\t\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t\t\ttc.setup(t, lkrSrc, lkrDst)\n\t\t\t\t// sync requires that all changes are committed.\n\t\t\t\tc.MustCommitIfPossible(t, lkrDst, \"setup dst\")\n\t\t\t\tc.MustCommitIfPossible(t, lkrSrc, \"setup src\")\n\n\t\t\t\tif err := Sync(lkrSrc, lkrDst, nil); err != nil {\n\t\t\t\t\tt.Fatalf(\"sync failed: %v\", err)\n\t\t\t\t}\n\n\t\t\t\ttc.check(t, lkrSrc, lkrDst)\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestSyncMergeMarker(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tc.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 1)\n\t\tc.MustTouchAndCommit(t, lkrDst, \"/y.png\", 2)\n\n\t\tif err := Sync(lkrSrc, lkrDst, nil); err != nil {\n\t\t\tt.Fatalf(\"sync failed: %v\", err)\n\t\t}\n\n\t\tdstHead, err := lkrDst.Head()\n\t\trequire.Nil(t, err)\n\n\t\tsrcHead, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\tmergeUser, mergeHash := dstHead.MergeMarker()\n\t\trequire.Equal(t, mergeUser, \"src\")\n\t\trequire.Equal(t, mergeHash, srcHead.TreeHash())\n\n\t\tc.MustTouch(t, lkrSrc, \"/a.png\", 3)\n\t\tc.MustTouch(t, lkrDst, \"/b.png\", 4)\n\n\t\tdiff, err := MakeDiff(lkrSrc, lkrDst, nil, nil, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Empty(t, diff.Conflict)\n\t\trequire.Empty(t, diff.Ignored)\n\t\trequire.Empty(t, diff.Merged)\n\t\trequire.Empty(t, diff.Removed)\n\n\t\trequire.Len(t, diff.Added, 1)\n\t\trequire.Len(t, diff.Missing, 2)\n\n\t\trequire.Equal(t, diff.Added[0].Path(), \"/a.png\")\n\t\trequire.Equal(t, diff.Missing[0].Path(), \"/b.png\")\n\t\trequire.Equal(t, diff.Missing[1].Path(), \"/y.png\")\n\t})\n}\n\nfunc TestSyncConflictMergeMarker(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tc.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 1)\n\t\tc.MustTouchAndCommit(t, lkrDst, \"/x.png\", 2)\n\n\t\tif err := Sync(lkrSrc, lkrDst, nil); err != nil {\n\t\t\tt.Fatalf(\"sync failed: %v\", err)\n\t\t}\n\n\t\tdstHead, err := lkrDst.Head()\n\t\trequire.Nil(t, err)\n\n\t\tsrcHead, err := lkrSrc.Head()\n\t\trequire.Nil(t, err)\n\n\t\tmergeUser, mergeHash := dstHead.MergeMarker()\n\t\trequire.Equal(t, mergeUser, \"src\")\n\t\trequire.Equal(t, mergeHash, srcHead.TreeHash())\n\n\t\tc.MustTouch(t, lkrSrc, \"/a.png\", 3)\n\t\tc.MustTouch(t, lkrDst, \"/a.png\", 4)\n\n\t\tdiff, err := MakeDiff(lkrSrc, lkrDst, nil, nil, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Len(t, diff.Merged, 0)\n\t\trequire.Len(t, diff.Ignored, 1)\n\t\trequire.Len(t, diff.Conflict, 1)\n\n\t\trequire.Empty(t, diff.Moved)\n\t\trequire.Empty(t, diff.Missing)\n\t\trequire.Empty(t, diff.Added)\n\t\trequire.Empty(t, diff.Removed)\n\n\t\t// a.png is new and will conflict therefore.\n\t\trequire.Equal(t, diff.Conflict[0].Dst.Path(), \"/a.png\")\n\t\trequire.Equal(t, diff.Conflict[0].Src.Path(), \"/a.png\")\n\n\t\t// The previously created conflict file should count as missing.\n\t\trequire.Equal(t, diff.Ignored[0].Path(), \"/x.png.conflict.0\")\n\t})\n}\n\nfunc TestSyncTwiceWithMovedFile(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrAli, lkrBob *c.Linker) {\n\t\taliNd, _ := c.MustTouchAndCommit(t, lkrAli, \"/ali-file\", 1)\n\t\tbobNd, _ := c.MustTouchAndCommit(t, lkrBob, \"/bob-file\", 2)\n\n\t\trequire.Nil(t, Sync(lkrAli, lkrBob, nil))\n\t\trequire.Nil(t, Sync(lkrBob, lkrAli, nil))\n\n\t\tc.MustMove(t, lkrAli, aliNd, \"/bali-bile\")\n\t\tc.MustMove(t, lkrBob, bobNd, \"/blob-lile\")\n\t\tc.MustCommit(t, lkrAli, \"moved file\")\n\n\t\tdiff, err := MakeDiff(lkrBob, lkrAli, nil, nil, nil)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Len(t, diff.Added, 0)\n\t\trequire.Len(t, diff.Removed, 0)\n\t\trequire.Len(t, diff.Moved, 2)\n\t})\n}\n\nfunc TestSyncConflictStrategyEmbrace(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\tc.MustTouchAndCommit(t, lkrSrc, \"/x.png\", 1)\n\t\tc.MustTouchAndCommit(t, lkrDst, \"/x.png\", 2)\n\n\t\tcfg := &SyncOptions{\n\t\t\tConflictStrategy: ConflictStragetyEmbrace,\n\t\t}\n\n\t\tdiff, err := MakeDiff(lkrSrc, lkrDst, nil, nil, cfg)\n\t\trequire.Nil(t, err)\n\n\t\trequire.Len(t, diff.Conflict, 1)\n\t\trequire.Empty(t, diff.Merged)\n\t\trequire.Empty(t, diff.Ignored)\n\t\trequire.Empty(t, diff.Moved)\n\t\trequire.Empty(t, diff.Missing)\n\t\trequire.Empty(t, diff.Added)\n\t\trequire.Empty(t, diff.Removed)\n\n\t\trequire.Nil(t, Sync(lkrSrc, lkrDst, cfg))\n\n\t\tsrcX, err := lkrSrc.LookupFile(\"/x.png\")\n\t\trequire.Nil(t, err)\n\t\tdstX, err := lkrDst.LookupFile(\"/x.png\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.Equal(t, srcX.ContentHash(), dstX.ContentHash())\n\t})\n}\n\nfunc TestSyncReadOnlyFolders(t *testing.T) {\n\tc.WithLinkerPair(t, func(lkrSrc, lkrDst *c.Linker) {\n\t\t// Create a file on alice' side:\n\t\tc.MustTouchAndCommit(t, lkrSrc, \"/public/x.png\", 1)\n\t\tcfg := &SyncOptions{\n\t\t\tReadOnlyFolders: map[string]bool{\n\t\t\t\t\"/public\": true,\n\t\t\t},\n\t\t}\n\n\t\t// Sync without a config - this is \"bob's\" side.\n\t\t// (he does not have any read-only folders)\n\t\trequire.Nil(t, Sync(lkrSrc, lkrDst, nil))\n\n\t\t// Both alice and bob should have the same file/content:\n\t\tsrcX, err := lkrSrc.LookupFile(\"/public/x.png\")\n\t\trequire.Nil(t, err)\n\t\tdstX, err := lkrDst.LookupFile(\"/public/x.png\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, srcX.ContentHash(), dstX.ContentHash())\n\n\t\t// bob modifies /public/x.png\n\t\tc.MustModify(t, lkrDst, dstX, 2)\n\t\tdstX, err = lkrDst.LookupFile(\"/public/x.png\")\n\t\trequire.Nil(t, err)\n\n\t\t// let alice sync back the change of bob:\n\t\trequire.Nil(t, Sync(lkrDst, lkrSrc, cfg))\n\n\t\tsrcX, err = lkrSrc.LookupFile(\"/public/x.png\")\n\t\trequire.Nil(t, err)\n\n\t\trequire.NotEqual(t, srcX.ContentHash(), dstX.ContentHash())\n\t\trequire.Equal(t, srcX.ContentHash(), h.TestDummy(t, byte(1)))\n\t})\n}\n"
  },
  {
    "path": "catfs/vcs/undelete.go",
    "content": "package vcs\n\nimport (\n\t\"fmt\"\n\n\tc \"github.com/sahib/brig/catfs/core\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\tn \"github.com/sahib/brig/catfs/nodes\"\n)\n\n// Undelete tries to recover the node pointed to by `root`.\n// The node must be a ghost, otherwise we will error out.\nfunc Undelete(lkr *c.Linker, root string) error {\n\tnd, err := lkr.LookupModNode(root)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif nd.Type() != n.NodeTypeGhost {\n\t\treturn fmt.Errorf(\"%s is not a deleted file: %v\", root, err)\n\t}\n\n\tcmt, err := lkr.Status()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar origNd n.ModNode\n\n\t// Walk to the last point in history where the ghost\n\t// was either removed or moved. In theory it could have been\n\t// modified or added in between, but that would mean that\n\t// someone played around with the graph.\n\twalker := NewHistoryWalker(lkr, cmt, nd)\n\tfor walker.Next() {\n\t\tstate := walker.State()\n\t\ttyp := state.Curr.Type()\n\t\tif typ != n.NodeTypeGhost {\n\t\t\tcontinue\n\t\t}\n\n\t\tif state.Mask&ChangeTypeRemove == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif state.Mask&ChangeTypeMove > 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// We know now that we're on the ghost was added after deleting\n\t\t// or removing the file. Now go one back to reach the actual node.\n\t\tif !walker.Next() {\n\t\t\tbreak\n\t\t}\n\n\t\torigNd = walker.State().Curr\n\t\tbreak\n\t}\n\n\tif origNd == nil {\n\t\treturn fmt.Errorf(\"could not find a state where this file was not deleted\")\n\t}\n\n\t// Do the actual recovery. Handle the case where we are undeleting a\n\t// whole directory tree with possibly empty directories inside.\n\treturn lkr.Atomic(func() (bool, error) {\n\t\treturn true, n.Walk(lkr, origNd, true, func(child n.Node) error {\n\t\t\tswitch child.Type() {\n\t\t\tcase n.NodeTypeDirectory:\n\t\t\t\tdir, ok := child.(*n.Directory)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn ie.ErrBadNode\n\t\t\t\t}\n\n\t\t\t\t// Create empty directories manually,\n\t\t\t\t// all other directories will be created implicitly:\n\t\t\t\tif dir.NChildren() == 0 {\n\t\t\t\t\t_, err := c.Mkdir(lkr, dir.Path(), true)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tcase n.NodeTypeFile:\n\t\t\t\tfile, ok := child.(*n.File)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn ie.ErrBadNode\n\t\t\t\t}\n\n\t\t\t\t// Stage that old state:\n\t\t\t\t_, err := c.StageFromFileNode(lkr, file)\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "client/.gitignore",
    "content": "discovery/\n"
  },
  {
    "path": "client/client.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net\"\n\n\t\"github.com/sahib/brig/server/capnp\"\n\t\"github.com/sahib/brig/util\"\n\t\"zombiezen.com/go/capnproto2/rpc\"\n)\n\n// Client is a helper API that implements the rpc interface to brig and makes\n// all data easily accessible from Go.  Note that this layer is needed, so we\n// could later support other languages.\ntype Client struct {\n\tctx     context.Context\n\tconn    *rpc.Conn\n\trawConn net.Conn\n\tapi     capnp.API\n}\n\nfunc connFromURL(s string) (net.Conn, error) {\n\tscheme, addr, err := util.URLToSchemeAndAddr(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn net.Dial(scheme, addr)\n}\n\n// Dial will attempt to connect to brigd under the specified port\nfunc Dial(ctx context.Context, daemonURL string) (*Client, error) {\n\trawConn, err := connFromURL(daemonURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttransport := rpc.StreamTransport(rawConn)\n\tconn := rpc.NewConn(\n\t\ttransport,\n\t\trpc.ConnLog(nil),\n\t\trpc.SendBufferSize(128),\n\t)\n\tapi := capnp.API{Client: conn.Bootstrap(ctx)}\n\n\treturn &Client{\n\t\tctx:     ctx,\n\t\trawConn: rawConn,\n\t\tconn:    conn,\n\t\tapi:     api,\n\t}, nil\n}\n\n// LocalAddr return info about the local addr\nfunc (cl *Client) LocalAddr() net.Addr {\n\treturn cl.rawConn.LocalAddr()\n}\n\n// RemoteAddr return info about the remote addr\nfunc (cl *Client) RemoteAddr() net.Addr {\n\treturn cl.rawConn.RemoteAddr()\n}\n\n// Close will close the connection from the client side\nfunc (cl *Client) Close() error {\n\treturn cl.conn.Close()\n}\n"
  },
  {
    "path": "client/clienttest/daemon.go",
    "content": "package clienttest\n\nimport (\n\t\"context\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/sahib/brig/server\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// StartDaemon starts a new daemon with user `name`, using backend defined by\n// `backendName` and, if the backend is IPFS, uses the IPFS repository at\n// `ipfsPath`.  The resulting server should be closed after use and the\n// temporary directory where all data resides should be removed.\nfunc StartDaemon(name, backendName, ipfsPath string) (*server.Server, error) {\n\trepoPath, err := ioutil.TempDir(\"\", \"brig-client-repo\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdaemonURL := \"unix:\" + filepath.Join(repoPath, \"brig.socket\")\n\tif err := repo.Init(repo.InitOptions{\n\t\tBaseFolder:  repoPath,\n\t\tOwner:       name,\n\t\tBackendName: backendName,\n\t\tDaemonURL:   daemonURL,\n\t}); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif backendName == \"httpipfs\" {\n\t\tif err := repo.OverwriteConfigKey(\n\t\t\trepoPath,\n\t\t\t\"daemon.ipfs_path_or_url\",\n\t\t\tipfsPath,\n\t\t); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tsrv, err := server.BootServer(repoPath, daemonURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgo func() {\n\t\tif err := srv.Serve(); err != nil {\n\t\t\tlog.WithError(err).Warnf(\"failed to serve\")\n\t\t}\n\t}()\n\n\t// give some time for startup:\n\ttime.Sleep(500 * time.Millisecond)\n\treturn srv, nil\n}\n\n// WithDaemon calls `fn` with a readily setup daemon client. `name` is the user.\nfunc WithDaemon(name string, fn func(ctl *client.Client) error) error {\n\tsrv, err := StartDaemon(name, \"mock\", \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer func() {\n\t\t// Somehow there is race condition between\n\t\t// srv.Close() from the defer at the very end\n\t\t// os.RemoveAll(repoPath).\n\t\t// Theoretically, `go` should have closed server\n\t\t// but in practice I see that repoPath is removed\n\t\t// before server had a chance to close the DB\n\t\t// and I see complains in log about DB.Close\n\t\t// I introduce this time delay as a crude hack\n\t\ttime.Sleep(100 * time.Millisecond)\n\t\tos.RemoveAll(srv.RepoPath())\n\t}()\n\tdefer srv.Close()\n\n\tctl, err := client.Dial(context.Background(), srv.DaemonURL())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer ctl.Close()\n\n\treturn fn(ctl)\n}\n\n// WithDaemonPair calls `fn` with two readily setup daemon clients.\n// `nameA` and `nameB` are the respective names.\nfunc WithDaemonPair(nameA, nameB string, fn func(ctlA, ctlB *client.Client) error) error {\n\treturn WithDaemon(nameA, func(ctlA *client.Client) error {\n\t\treturn WithDaemon(nameB, func(ctlB *client.Client) error {\n\t\t\taliWhoami, err := ctlA.Whoami()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tbobWhoami, err := ctlB.Whoami()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// add bob to ali as remote\n\t\t\tif err := ctlA.RemoteAddOrUpdate(client.Remote{\n\t\t\t\tName:        nameB,\n\t\t\t\tFingerprint: bobWhoami.Fingerprint,\n\t\t\t}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// add ali to bob as remote\n\t\t\tif err := ctlB.RemoteAddOrUpdate(client.Remote{\n\t\t\t\tName:        nameA,\n\t\t\t\tFingerprint: aliWhoami.Fingerprint,\n\t\t\t}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn fn(ctlA, ctlB)\n\t\t})\n\t})\n}\n"
  },
  {
    "path": "client/fs_cmds.go",
    "content": "package client\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/backend/httpipfs\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/server/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// StatInfo gives information about a file or directory\n// similar to the normal stat(2) call on POSIX.\ntype StatInfo struct {\n\tPath        string\n\tUser        string\n\tSize        uint64\n\tCachedSize  int64\n\tInode       uint64\n\tIsDir       bool\n\tIsRaw       bool\n\tDepth       int\n\tModTime     time.Time\n\tIsPinned    bool\n\tIsExplicit  bool\n\tTreeHash    h.Hash\n\tContentHash h.Hash\n\tBackendHash h.Hash\n\tKey         []byte\n\tHint        Hint\n}\n\nfunc convertHash(hashBytes []byte, err error) (h.Hash, error) {\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn h.Cast(hashBytes)\n}\n\nfunc convertCapStatInfo(capInfo *capnp.StatInfo) (*StatInfo, error) {\n\tinfo := &StatInfo{}\n\n\tpath, err := capInfo.Path()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuser, err := capInfo.User()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttreeHash, err := convertHash(capInfo.TreeHash())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcontentHash, err := convertHash(capInfo.ContentHash())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbackendHash, err := convertHash(capInfo.BackendHash())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tkey, err := capInfo.Key()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodTimeData, err := capInfo.ModTime()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := info.ModTime.UnmarshalText([]byte(modTimeData)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapHint, err := capInfo.Hint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thint, err := convertCapHint(capHint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tinfo.Path = path\n\tinfo.User = user\n\tinfo.Size = capInfo.Size()\n\tinfo.CachedSize = capInfo.CachedSize()\n\tinfo.Inode = capInfo.Inode()\n\tinfo.IsDir = capInfo.IsDir()\n\tinfo.IsRaw = capInfo.IsRaw()\n\tinfo.IsPinned = capInfo.IsPinned()\n\tinfo.IsExplicit = capInfo.IsExplicit()\n\tinfo.Depth = int(capInfo.Depth())\n\n\tinfo.TreeHash = treeHash\n\tinfo.ContentHash = contentHash\n\tinfo.BackendHash = backendHash\n\tinfo.Key = key\n\tinfo.Hint = *hint\n\treturn info, nil\n}\n\n// List will list all nodes beneath and including `root` up to `maxDepth`.\nfunc (cl *Client) List(root string, maxDepth int) ([]StatInfo, error) {\n\tcall := cl.api.List(cl.ctx, func(p capnp.FS_list_Params) error {\n\t\tp.SetMaxDepth(int32(maxDepth))\n\t\treturn p.SetRoot(root)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresults := []StatInfo{}\n\tstatList, err := result.Entries()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx := 0; idx < statList.Len(); idx++ {\n\t\tcapInfo := statList.At(idx)\n\t\tinfo, err := convertCapStatInfo(&capInfo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresults = append(results, *info)\n\t}\n\n\treturn results, err\n}\n\n// Stage will add a new node at `repoPath` with the contents of `localPath`.\nfunc (cl *Client) Stage(localPath, repoPath string) error {\n\tcall := cl.api.Stage(cl.ctx, func(p capnp.FS_stage_Params) error {\n\t\tif err := p.SetRepoPath(repoPath); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetLocalPath(localPath)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// StageFromReader will create a new node at `repoPath` from the contents of `r`.\nfunc (cl *Client) StageFromReader(repoPath string, r io.Reader) error {\n\tcall := cl.api.StageFromStream(cl.ctx, func(p capnp.FS_stageFromStream_Params) error {\n\t\treturn p.SetRepoPath(repoPath)\n\t})\n\n\t// NOTE: Promise pipelining happens here,\n\t// cb might not have been returned yet by the server.\n\t// We can still use it, since Cap'n Proto returns a promise here.\n\t// First network call happens only at the first Struct() call.\n\tstream := call.Stream()\n\n\t// relative large buffer to minimize Cap'n Proto overhead even further.\n\tbuf := make([]byte, 128*1024)\n\tchunkIdx, blockCheck := 0, 1\n\n\tfor {\n\t\tisEOF := false\n\t\tn, err := io.ReadFull(r, buf)\n\t\tif err != nil {\n\t\t\tif err == io.EOF || err == io.ErrUnexpectedEOF {\n\t\t\t\tisEOF = true\n\t\t\t} else {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif n > 0 {\n\t\t\tpromise := stream.SendChunk(cl.ctx, func(params capnp.FS_StageStream_sendChunk_Params) error {\n\t\t\t\treturn params.SetChunk(buf[:n])\n\t\t\t})\n\n\t\t\t// Assumption here: If transfer fails it will fail in the first few blocks.\n\t\t\t// For the rest of the block we can skip error checks on most blocks.\n\t\t\tif chunkIdx%blockCheck == 0 {\n\t\t\t\tif _, err := promise.Struct(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif blockCheck < 128 {\n\t\t\t\t\tblockCheck *= 2\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchunkIdx++\n\t\t}\n\n\t\tif isEOF {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Tell the server side that we're done sending chunks and that the data\n\t// should be already staged.\n\t_, err := stream.Done(cl.ctx, nil).Struct()\n\treturn err\n}\n\n// Cat outputs the contents of the node at `path`.\n// The node must be a file.\nfunc (cl *Client) Cat(path string, offline bool) (io.ReadCloser, error) {\n\tcall := cl.api.Cat(cl.ctx, func(p capnp.FS_cat_Params) error {\n\t\tp.SetOffline(offline)\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tport := result.Port()\n\tconn, err := net.Dial(\"tcp\", fmt.Sprintf(\"localhost:%d\", port))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn conn, nil\n}\n\n// CatOnClient is like Cat, but will fetch the stream directly from IPFS\n// and decode it on the client side. This is usually faster than other way round.\nfunc (cl *Client) CatOnClient(path string, offline bool, w io.Writer) error {\n\tinfo, err := cl.Stat(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tipfsPathOrMultiaddr, err := cl.ConfigGet(\"daemon.ipfs_path_or_url\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif ipfsPathOrMultiaddr == \"\" {\n\t\treturn fmt.Errorf(\"no IPFS path or URL found - is this repo using IPFS?\")\n\t}\n\n\tif offline {\n\t\tisCached, err := cl.IsCached(path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !isCached {\n\t\t\treturn fmt.Errorf(\"not cached\")\n\t\t}\n\t}\n\n\tnd, err := httpipfs.NewNode(\n\t\tipfsPathOrMultiaddr,\n\t\t\"\",\n\t\thttpipfs.WithNoLogging(),\n\t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer nd.Close()\n\n\tipfsStream, err := nd.Cat(info.BackendHash)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer ipfsStream.Close()\n\n\tstream, err := mio.NewOutStream(ipfsStream, info.IsRaw, info.Key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = io.Copy(os.Stdout, stream)\n\treturn err\n}\n\n// Tar outputs a tar archive with the contents of `path`.\n// `path` can be either a file or directory.\nfunc (cl *Client) Tar(path string, offline bool) (io.ReadCloser, error) {\n\tcall := cl.api.Tar(cl.ctx, func(p capnp.FS_tar_Params) error {\n\t\tp.SetOffline(offline)\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tport := result.Port()\n\tconn, err := net.Dial(\"tcp\", fmt.Sprintf(\"localhost:%d\", port))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn conn, nil\n}\n\n// Mkdir creates a new empty directory at `path`, possibly creating\n// intermediate directories if `createParents` is set.\nfunc (cl *Client) Mkdir(path string, createParents bool) error {\n\tcall := cl.api.Mkdir(cl.ctx, func(p capnp.FS_mkdir_Params) error {\n\t\tp.SetCreateParents(createParents)\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Remove removes the node at `path`.\n// Directories are removed recursively.\nfunc (cl *Client) Remove(path string) error {\n\tcall := cl.api.Remove(cl.ctx, func(p capnp.FS_remove_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Move moves the node at `srcPath` to `dstPath`.\nfunc (cl *Client) Move(srcPath, dstPath string) error {\n\tcall := cl.api.Move(cl.ctx, func(p capnp.FS_move_Params) error {\n\t\tif err := p.SetSrcPath(srcPath); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetDstPath(dstPath)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Copy copies the node at `srcPath` to `dstPath`.\nfunc (cl *Client) Copy(srcPath, dstPath string) error {\n\tcall := cl.api.Copy(cl.ctx, func(p capnp.FS_copy_Params) error {\n\t\tif err := p.SetSrcPath(srcPath); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetDstPath(dstPath)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Pin sets an explicit pin on the node at `path`.\nfunc (cl *Client) Pin(path string) error {\n\tcall := cl.api.Pin(cl.ctx, func(p capnp.FS_pin_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Unpin removes an explicit pin at the node at `path`.\nfunc (cl *Client) Unpin(path string) error {\n\tcall := cl.api.Unpin(cl.ctx, func(p capnp.FS_unpin_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Repin schedules a repinning operation\nfunc (cl *Client) Repin(root string) error {\n\tcall := cl.api.Repin(cl.ctx, func(p capnp.FS_repin_Params) error {\n\t\treturn p.SetPath(root)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Stat gives detailed information about the node at `path`.\nfunc (cl *Client) Stat(path string) (*StatInfo, error) {\n\tcall := cl.api.Stat(cl.ctx, func(p capnp.FS_stat_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapInfo, err := result.Info()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn convertCapStatInfo(&capInfo)\n}\n\n// Touch creates a new empty file at `path`.\nfunc (cl *Client) Touch(path string) error {\n\tcall := cl.api.Touch(cl.ctx, func(p capnp.FS_touch_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Exists tells us if a file at `path` exists.\nfunc (cl *Client) Exists(path string) (bool, error) {\n\tcall := cl.api.Exists(cl.ctx, func(p capnp.FS_exists_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\treturn result.Exists(), nil\n}\n\n// Undelete restores the deleted file at `path`.\nfunc (cl *Client) Undelete(path string) error {\n\tcall := cl.api.Undelete(cl.ctx, func(p capnp.FS_undelete_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// DeletedNodes returns a list of deleted nodes under `root`.\nfunc (cl *Client) DeletedNodes(root string) ([]StatInfo, error) {\n\tcall := cl.api.DeletedNodes(cl.ctx, func(p capnp.FS_deletedNodes_Params) error {\n\t\treturn p.SetRoot(root)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapNodes, err := result.Nodes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresults := []StatInfo{}\n\tfor idx := 0; idx < capNodes.Len(); idx++ {\n\t\tcapInfo := capNodes.At(idx)\n\t\tinfo, err := convertCapStatInfo(&capInfo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresults = append(results, *info)\n\t}\n\n\treturn results, err\n}\n\n// IsCached checks if file or directory at `path` is cached.\nfunc (cl *Client) IsCached(path string) (bool, error) {\n\tcall := cl.api.IsCached(cl.ctx, func(p capnp.FS_isCached_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\treturn result.IsCached(), nil\n}\n\n// RecodeStream takes the stream at `path` and, if it is a file, re-encodes\n// the stream with the current settings retrieved from the hint system.\nfunc (cl *Client) RecodeStream(path string) error {\n\tcall := cl.api.RecodeStream(cl.ctx, func(p capnp.FS_recodeStream_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n"
  },
  {
    "path": "client/fs_test.go",
    "content": "package client_test\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/client/clienttest\"\n\t\"github.com/sahib/brig/repo/hints\"\n\tcolorLog \"github.com/sahib/brig/util/log\"\n\t\"github.com/sahib/brig/util/testutil\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc init() {\n\tlog.SetLevel(log.WarnLevel)\n\tlog.SetFormatter(&colorLog.FancyLogFormatter{\n\t\tUseColors: true,\n\t})\n}\n\nfunc stringify(err error) string {\n\tif err == nil {\n\t\treturn \"\"\n\t}\n\n\treturn err.Error()\n}\n\nfunc withDaemon(t *testing.T, name string, fn func(ctl *client.Client)) {\n\trequire.NoError(\n\t\tt,\n\t\tclienttest.WithDaemon(name, func(ctl *client.Client) error {\n\t\t\tfn(ctl)\n\t\t\treturn nil\n\t\t}),\n\t)\n}\n\nfunc withDaemonPair(t *testing.T, nameA, nameB string, fn func(ctlA, ctlB *client.Client)) {\n\trequire.NoError(\n\t\tt,\n\t\tclienttest.WithDaemonPair(nameA, nameB, func(ctlA, ctlB *client.Client) error {\n\t\t\tfn(ctlA, ctlB)\n\t\t\treturn nil\n\t\t}),\n\t)\n}\n\nfunc TestStageAndCat(t *testing.T) {\n\twithDaemon(t, \"ali\", func(ctl *client.Client) {\n\t\tfd, err := ioutil.TempFile(\"\", \"brig-dummy-data\")\n\t\tpath := fd.Name()\n\t\tdefer os.RemoveAll(path)\n\n\t\texpected := testutil.CreateDummyBuf(2 * 1024 * 1024)\n\t\trequire.Nil(t, err, stringify(err))\n\t\t_, err = fd.Write(expected)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Nil(t, fd.Close())\n\n\t\trequire.Nil(t, ctl.Stage(path, \"/hello\"))\n\t\trw, err := ctl.Cat(\"hello\", false)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdata, err := ioutil.ReadAll(rw)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\trequire.Equal(t, expected, data)\n\t\trequire.Nil(t, rw.Close())\n\t})\n}\n\nfunc TestStageAndCatStream(t *testing.T) {\n\twithDaemon(t, \"ali\", func(ctl *client.Client) {\n\t\tconst fileSize = 4 * 1024 * 1024\n\t\tr := io.LimitReader(&testutil.TenReader{}, fileSize)\n\t\terr := ctl.StageFromReader(\"/hello\", r)\n\t\trequire.NoError(t, err)\n\n\t\t// time.Sleep(time.Second)\n\t\trw, err := ctl.Cat(\"/hello\", false)\n\t\trequire.NoError(t, err)\n\n\t\tn, err := io.Copy(&testutil.TenWriter{}, rw)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(fileSize), n)\n\t\trequire.NoError(t, rw.Close())\n\t})\n}\n\nfunc TestMkdir(t *testing.T) {\n\twithDaemon(t, \"ali\", func(ctl *client.Client) {\n\t\t// Create something nested with -p...\n\t\trequire.Nil(t, ctl.Mkdir(\"/a/b/c\", true))\n\n\t\t// Create it twice...\n\t\trequire.Nil(t, ctl.Mkdir(\"/a/b/c\", true))\n\n\t\t// Create something nested without -p\n\t\terr := ctl.Mkdir(\"/x/y/z\", false)\n\t\trequire.Contains(t, err.Error(), \"No such file\")\n\n\t\trequire.Nil(t, ctl.Mkdir(\"/x\", false))\n\t\trequire.Nil(t, ctl.Mkdir(\"/x/y\", false))\n\t\trequire.Nil(t, ctl.Mkdir(\"/x/y/z\", false))\n\n\t\tlst, err := ctl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tpaths := []string{}\n\t\tfor _, info := range lst {\n\t\t\tpaths = append(paths, info.Path)\n\t\t}\n\n\t\tsort.Strings(paths)\n\t\trequire.Equal(t, paths, []string{\n\t\t\t\"/\",\n\t\t\t\"/a\",\n\t\t\t\"/a/b\",\n\t\t\t\"/a/b/c\",\n\t\t\t\"/x\",\n\t\t\t\"/x/y\",\n\t\t\t\"/x/y/z\",\n\t\t})\n\t})\n}\n\nfunc TestSyncBasic(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\terr := aliCtl.StageFromReader(\"/ali_file\", bytes.NewReader([]byte{42}))\n\t\trequire.NoError(t, err)\n\n\t\terr = bobCtl.StageFromReader(\"/bob_file\", bytes.NewReader([]byte{23}))\n\t\trequire.NoError(t, err)\n\n\t\t_, err = aliCtl.Sync(\"bob\", true)\n\t\trequire.NoError(t, err)\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.NoError(t, err)\n\n\t\t// We cannot query the file contents, since the mock backend\n\t\t// does not yet store the file content anywhere.\n\t\tbobFileStat, err := aliCtl.Stat(\"/bob_file\")\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"/bob_file\", bobFileStat.Path)\n\n\t\taliFileStat, err := bobCtl.Stat(\"/ali_file\")\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"/ali_file\", aliFileStat.Path)\n\t})\n}\n\nfunc pathsFromListing(l []client.StatInfo) []string {\n\tresult := []string{}\n\tfor _, entry := range l {\n\t\tresult = append(result, entry.Path)\n\t}\n\n\treturn result\n}\n\nfunc TestSyncConflict(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\t// Create two files with the same content on both sides:\n\t\terr := aliCtl.StageFromReader(\"/README\", bytes.NewReader([]byte{42}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\terr = bobCtl.StageFromReader(\"/README\", bytes.NewReader([]byte{42}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t// Sync and check if the files are still equal:\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\taliFileStat, err := aliCtl.Stat(\"/README\")\n\t\trequire.Nil(t, err, stringify(err))\n\t\tbobFileStat, err := bobCtl.Stat(\"/README\")\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(t, aliFileStat.ContentHash, bobFileStat.ContentHash)\n\n\t\t// Modify bob's side only. A sync should have no effect.\n\t\terr = bobCtl.StageFromReader(\"/README\", bytes.NewReader([]byte{43}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tbobFileStat, err = bobCtl.Stat(\"/README\")\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\trequire.NotEqual(t, aliFileStat.ContentHash, bobFileStat.ContentHash)\n\n\t\t// Modify ali's side additionally. Now we should get a conflicting file.\n\t\terr = aliCtl.StageFromReader(\"/README\", bytes.NewReader([]byte{41}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdirs, err := bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(t, []string{\"/\", \"/README\"}, pathsFromListing(dirs))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdirs, err = bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\"/\", \"/README\", \"/README.conflict.0\"},\n\t\t\tpathsFromListing(dirs),\n\t\t)\n\t})\n}\n\nfunc TestSyncSeveralTimes(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\terr := aliCtl.StageFromReader(\"/ali_file_1\", bytes.NewReader([]byte{1}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdirs, err := bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\"/\", \"/ali_file_1\"},\n\t\t\tpathsFromListing(dirs),\n\t\t)\n\n\t\terr = aliCtl.StageFromReader(\"/ali_file_2\", bytes.NewReader([]byte{2}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdirs, err = bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\"/\", \"/ali_file_1\", \"/ali_file_2\"},\n\t\t\tpathsFromListing(dirs),\n\t\t)\n\n\t\terr = aliCtl.StageFromReader(\"/ali_file_3\", bytes.NewReader([]byte{3}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tdirs, err = bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\"/\", \"/ali_file_1\", \"/ali_file_2\", \"/ali_file_3\"},\n\t\t\tpathsFromListing(dirs),\n\t\t)\n\t})\n}\n\nfunc TestSyncPartial(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\taliWhoami, err := aliCtl.Whoami()\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tbobWhoami, err := bobCtl.Whoami()\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\trequire.Nil(t, aliCtl.RemoteSave([]client.Remote{\n\t\t\t{\n\t\t\t\tName:        \"bob\",\n\t\t\t\tFingerprint: bobWhoami.Fingerprint,\n\t\t\t\tFolders: []client.RemoteFolder{\n\t\t\t\t\t{\n\t\t\t\t\t\tFolder: \"/photos\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}))\n\n\t\trequire.Nil(t, bobCtl.RemoteSave([]client.Remote{\n\t\t\t{\n\t\t\t\tName:        \"ali\",\n\t\t\t\tFingerprint: aliWhoami.Fingerprint,\n\t\t\t\tFolders: []client.RemoteFolder{\n\t\t\t\t\t{\n\t\t\t\t\t\tFolder: \"/photos\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}))\n\n\t\terr = aliCtl.StageFromReader(\"/docs/ali_secret.txt\", bytes.NewReader([]byte{0}))\n\t\trequire.Nil(t, err, stringify(err))\n\t\terr = aliCtl.StageFromReader(\"/photos/ali.png\", bytes.NewReader([]byte{42}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\terr = bobCtl.StageFromReader(\"/docs/bob_secret.txt\", bytes.NewReader([]byte{0}))\n\t\trequire.Nil(t, err, stringify(err))\n\t\terr = bobCtl.StageFromReader(\"/photos/bob.png\", bytes.NewReader([]byte{23}))\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = aliCtl.Sync(\"bob\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t_, err = bobCtl.Sync(\"ali\", true)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\t// We cannot query the file contents, since the mock backend\n\t\t// does not yet store the file content anywhere.\n\t\taliLs, err := aliCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\taliPaths := []string{}\n\t\tfor _, entry := range aliLs {\n\t\t\taliPaths = append(aliPaths, entry.Path)\n\t\t}\n\n\t\tbobLs, err := bobCtl.List(\"/\", -1)\n\t\trequire.Nil(t, err, stringify(err))\n\n\t\tbobPaths := []string{}\n\t\tfor _, entry := range bobLs {\n\t\t\tbobPaths = append(bobPaths, entry.Path)\n\t\t}\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\n\t\t\t\t\"/\",\n\t\t\t\t\"/docs\",\n\t\t\t\t\"/photos\",\n\t\t\t\t\"/docs/ali_secret.txt\",\n\t\t\t\t\"/photos/ali.png\",\n\t\t\t\t\"/photos/bob.png\",\n\t\t\t},\n\t\t\taliPaths,\n\t\t)\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\n\t\t\t\t\"/\",\n\t\t\t\t\"/docs\",\n\t\t\t\t\"/photos\",\n\t\t\t\t\"/docs/bob_secret.txt\",\n\t\t\t\t\"/photos/ali.png\",\n\t\t\t\t\"/photos/bob.png\",\n\t\t\t},\n\t\t\tbobPaths,\n\t\t)\n\t})\n}\n\nfunc TestSyncMovedFile(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\trequire.NoError(t, aliCtl.StageFromReader(\"/ali-file\", bytes.NewReader([]byte{1, 2, 3})))\n\t\trequire.NoError(t, bobCtl.StageFromReader(\"/bob-file\", bytes.NewReader([]byte{4, 5, 6})))\n\n\t\taliDiff, err := aliCtl.Sync(\"bob\", true)\n\t\trequire.NoError(t, err)\n\n\t\tbobDiff, err := bobCtl.Sync(\"ali\", true)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, aliDiff.Added[0].Path, \"/bob-file\")\n\t\trequire.Equal(t, bobDiff.Added[0].Path, \"/ali-file\")\n\n\t\trequire.NoError(t, aliCtl.Move(\"/ali-file\", \"/bali-file\"))\n\n\t\tbobDiffAfter, err := bobCtl.Sync(\"ali\", true)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Len(t, bobDiffAfter.Added, 0)\n\t\trequire.Len(t, bobDiffAfter.Removed, 0)\n\t\trequire.Len(t, bobDiffAfter.Moved, 1)\n\t})\n}\n\n// Regression test for:\n// https://github.com/sahib/brig/issues/56\nfunc TestSyncRemovedFile(t *testing.T) {\n\tlog.SetLevel(log.DebugLevel)\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\trequire.NoError(t, aliCtl.StageFromReader(\"/testfile\", bytes.NewReader([]byte{1, 2, 3})))\n\n\t\t// Bob should get the /testfile now.\n\t\tbobDiff, err := bobCtl.Sync(\"ali\", true)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, 1, len(bobDiff.Added))\n\t\trequire.Equal(t, bobDiff.Added[0].Path, \"/testfile\")\n\n\t\trequire.NoError(t, bobCtl.StageFromReader(\"/testfile\", bytes.NewReader([]byte{3, 2, 1})))\n\t\trequire.NoError(t, bobCtl.MakeCommit(\"bob changed testfile\"))\n\n\t\t// Remove the file at ali:\n\t\trequire.NoError(t, aliCtl.Remove(\"/testfile\"))\n\t\trequire.NoError(t, aliCtl.MakeCommit(\"removed testfile\"))\n\n\t\t// Sync and hope that we don't get the file back from bob:\n\t\taliDiff, err := aliCtl.Sync(\"bob\", true)\n\t\trequire.NoError(t, err)\n\n\t\t// Check if something was added.\n\t\trequire.Equal(t, 0, len(aliDiff.Added))\n\n\t\t// ...but also checked it's not marked as removed:\n\t\trequire.Equal(t, 0, len(aliDiff.Removed))\n\n\t\t_, err = aliCtl.Stat(\"/testfile\")\n\t\trequire.Error(t, err)\n\t})\n}\n\nfunc TestHints(t *testing.T) {\n\twithDaemon(t, \"ali\", func(ctl *client.Client) {\n\t\t// Add hint for directory.\n\n\t\tpath := \"/public/cat-meme.png\"\n\t\texpected := testutil.CreateDummyBuf(1024 * 1024)\n\t\trequire.NoError(t, ctl.Mkdir(\"/public\", true))\n\t\trequire.NoError(t, ctl.StageFromReader(path, bytes.NewReader(expected)))\n\n\t\tinfo, err := ctl.Stat(path)\n\t\trequire.NoError(t, err)\n\n\t\tdefHints := hints.Default()\n\t\trequire.Equal(t, string(defHints.CompressionAlgo), info.Hint.CompressionAlgo)\n\t\trequire.Equal(t, string(defHints.EncryptionAlgo), info.Hint.EncryptionAlgo)\n\t\trequire.Equal(t, false, info.IsRaw)\n\n\t\tnone := \"none\"\n\t\trequire.NoError(t, ctl.HintSet(\"/public\", &none, &none))\n\n\t\tinfo, err = ctl.Stat(path)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"none\", info.Hint.CompressionAlgo)\n\t\trequire.Equal(t, \"none\", info.Hint.EncryptionAlgo)\n\t\trequire.Equal(t, false, info.IsRaw)\n\n\t\trequire.NoError(t, ctl.RecodeStream(\"/public\"))\n\n\t\tinfo, err = ctl.Stat(path)\n\t\trequire.NoError(t, err)\n\n\t\trequire.Equal(t, \"none\", info.Hint.CompressionAlgo)\n\t\trequire.Equal(t, \"none\", info.Hint.EncryptionAlgo)\n\t\trequire.Equal(t, true, info.IsRaw)\n\n\t\t// Make sure it did not scramble the data:\n\t\tstream, err := ctl.Cat(path, true)\n\t\trequire.NoError(t, err)\n\t\tgot, err := ioutil.ReadAll(stream)\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, expected, got)\n\t})\n}\n"
  },
  {
    "path": "client/net_cmds.go",
    "content": "package client\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/server/capnp\"\n\tcapnplib \"zombiezen.com/go/capnproto2\"\n)\n\n////////////////////////\n// REMOTE LIST ACCESS //\n////////////////////////\n\n// RemoteFolder is a single folder shared with a remote.\ntype RemoteFolder struct {\n\tFolder           string `yaml:\"Folder\"`\n\tReadOnly         bool   `yaml:\"ReadOnly\"`\n\tConflictStrategy string `yaml:\"ConflictStrategy\"`\n}\n\n// Remote describes a single remote in the remote list.\ntype Remote struct {\n\tName             string         `yaml:\"Name\"`\n\tFingerprint      string         `yaml:\"Fingerprint\"`\n\tFolders          []RemoteFolder `yaml:\"Folders,flow\"`\n\tAutoUpdate       bool           `yaml:\"AutoUpdate\"`\n\tConflictStrategy string         `yaml:\"ConflictStrategy\"`\n\tAcceptPush       bool           `yaml:\"AcceptPush\"`\n}\n\nfunc capRemoteToRemote(capRemote capnp.Remote) (*Remote, error) {\n\tremoteName, err := capRemote.Name()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tremoteFp, err := capRemote.Fingerprint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tremoteFolders, err := capRemote.Folders()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconflictStrategy, err := capRemote.ConflictStrategy()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfolders := []RemoteFolder{}\n\tfor idx := 0; idx < remoteFolders.Len(); idx++ {\n\t\tfolder := remoteFolders.At(idx)\n\t\tfolderName, err := folder.Folder()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcs, err := folder.ConflictStrategy()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfolders = append(folders, RemoteFolder{\n\t\t\tFolder:           folderName,\n\t\t\tReadOnly:         folder.ReadOnly(),\n\t\t\tConflictStrategy: cs,\n\t\t})\n\t}\n\n\treturn &Remote{\n\t\tName:             remoteName,\n\t\tFingerprint:      remoteFp,\n\t\tFolders:          folders,\n\t\tAutoUpdate:       capRemote.AcceptAutoUpdates(),\n\t\tAcceptPush:       capRemote.AcceptPush(),\n\t\tConflictStrategy: conflictStrategy,\n\t}, nil\n}\n\nfunc remoteToCapRemote(remote Remote, seg *capnplib.Segment) (*capnp.Remote, error) {\n\tcapRemote, err := capnp.NewRemote(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetName(remote.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetFingerprint(string(remote.Fingerprint)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetConflictStrategy(remote.ConflictStrategy); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapFolders, err := capnp.NewRemoteFolder_List(seg, int32(len(remote.Folders)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, folder := range remote.Folders {\n\t\tcapFolder, err := capnp.NewRemoteFolder(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapFolder.SetReadOnly(folder.ReadOnly)\n\t\tif err := capFolder.SetFolder(folder.Folder); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capFolder.SetConflictStrategy(folder.ConflictStrategy); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capFolders.Set(idx, capFolder); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := capRemote.SetFolders(capFolders); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapRemote.SetAcceptAutoUpdates(remote.AutoUpdate)\n\tcapRemote.SetAcceptPush(remote.AcceptPush)\n\treturn &capRemote, nil\n}\n\n// RemoteAddOrUpdate adds a new remote described in `remote`.\n// We thus authenticate this remote.\nfunc (cl *Client) RemoteAddOrUpdate(remote Remote) error {\n\tcall := cl.api.RemoteAddOrUpdate(cl.ctx, func(p capnp.Net_remoteAddOrUpdate_Params) error {\n\t\tcapRemote, err := remoteToCapRemote(remote, p.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetRemote(*capRemote)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// RemoteByName adds a new remote described in `remote`.\n// We thus authenticate this remote.\nfunc (cl *Client) RemoteByName(name string) (Remote, error) {\n\tcall := cl.api.RemoteByName(cl.ctx, func(p capnp.Net_remoteByName_Params) error {\n\t\treturn p.SetName(name)\n\t})\n\n\tres, err := call.Struct()\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\n\tcapRmt, err := res.Remote()\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\n\trmt, err := capRemoteToRemote(capRmt)\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\n\treturn *rmt, nil\n}\n\n// RemoteUpdate Updates the contents of `remote`.\nfunc (cl *Client) RemoteUpdate(remote Remote) error {\n\tcall := cl.api.RemoteUpdate(cl.ctx, func(p capnp.Net_remoteUpdate_Params) error {\n\t\tcapRemote, err := remoteToCapRemote(remote, p.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetRemote(*capRemote)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// RemoteRm removes a remote by `name` from the remote list.\nfunc (cl *Client) RemoteRm(name string) error {\n\tcall := cl.api.RemoteRm(cl.ctx, func(p capnp.Net_remoteRm_Params) error {\n\t\treturn p.SetName(name)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// RemoteClear clears all of the remote list.\nfunc (cl *Client) RemoteClear() error {\n\tcall := cl.api.RemoteClear(cl.ctx, func(p capnp.Net_remoteClear_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// RemoteLs lists all remotes in the remote list.\nfunc (cl *Client) RemoteLs() ([]Remote, error) {\n\tcall := cl.api.RemoteLs(cl.ctx, func(p capnp.Net_remoteLs_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapRemotes, err := result.Remotes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tremotes := []Remote{}\n\tfor idx := 0; idx < capRemotes.Len(); idx++ {\n\t\tcapRemote := capRemotes.At(idx)\n\t\tremote, err := capRemoteToRemote(capRemote)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tremotes = append(remotes, *remote)\n\t}\n\n\treturn remotes, nil\n}\n\n// RemoteSave swaps the contents of the remote lists with the contents of `remotes`.\nfunc (cl *Client) RemoteSave(remotes []Remote) error {\n\tcall := cl.api.RemoteSave(cl.ctx, func(p capnp.Net_remoteSave_Params) error {\n\t\tseg := p.Segment()\n\t\tcapRemotes, err := capnp.NewRemote_List(seg, int32(len(remotes)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, remote := range remotes {\n\t\t\tcapRemote, err := remoteToCapRemote(remote, seg)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := capRemotes.Set(idx, *capRemote); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn p.SetRemotes(capRemotes)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// LocateResult is a result returned by Locate()\ntype LocateResult struct {\n\tName        string\n\tAddr        string\n\tMask        []string\n\tFingerprint string\n}\n\nfunc capLrToLr(capLr capnp.LocateResult) (*LocateResult, error) {\n\tname, err := capLr.Name()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddr, err := capLr.Addr()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmask, err := capLr.Mask()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfingerprint, err := capLr.Fingerprint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &LocateResult{\n\t\tAddr:        addr,\n\t\tName:        name,\n\t\tMask:        strings.Split(mask, \",\"),\n\t\tFingerprint: fingerprint,\n\t}, nil\n}\n\n// NetLocate tries to find other remotes by searching of `who` described by `mask`.\n// It will at max. take `timeoutSec` to search. This operation might take some time.\n// The return channel will yield a LocateResult once a new result is available.\nfunc (cl *Client) NetLocate(who, mask string, timeoutSec float64) (chan *LocateResult, error) {\n\tcall := cl.api.NetLocate(cl.ctx, func(p capnp.Net_netLocate_Params) error {\n\t\tp.SetTimeoutSec(float64(timeoutSec))\n\n\t\tif err := p.SetLocateMask(mask); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetWho(who)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tticket := result.Ticket()\n\tresultCh := make(chan *LocateResult)\n\n\tgo func() {\n\t\tdefer close(resultCh)\n\n\t\tfor {\n\t\t\tnextCall := cl.api.NetLocateNext(cl.ctx, func(p capnp.Net_netLocateNext_Params) error {\n\t\t\t\tp.SetTicket(ticket)\n\t\t\t\treturn nil\n\t\t\t})\n\n\t\t\tresult, err := nextCall.Struct()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif !result.HasResult() {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcapLr, err := result.Result()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tlr, err := capLrToLr(capLr)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tresultCh <- lr\n\t\t}\n\t}()\n\n\treturn resultCh, nil\n}\n\n// RemotePing pings a remote by the name `who`.\nfunc (cl *Client) RemotePing(who string) (float64, error) {\n\tcall := cl.api.RemotePing(cl.ctx, func(p capnp.Net_remotePing_Params) error {\n\t\treturn p.SetWho(who)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn result.Roundtrip(), nil\n}\n\n// Whoami describes the current user state\ntype Whoami struct {\n\tCurrentUser string\n\tOwner       string\n\tFingerprint string\n\tIsOnline    bool\n}\n\n// Whoami describes our own identity.\nfunc (cl *Client) Whoami() (*Whoami, error) {\n\tcall := cl.api.Whoami(cl.ctx, func(p capnp.Net_whoami_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapWhoami, err := result.Whoami()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\twhoami := &Whoami{}\n\twhoami.CurrentUser, err = capWhoami.CurrentUser()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\twhoami.Fingerprint, err = capWhoami.Fingerprint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\twhoami.Owner, err = capWhoami.Owner()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\twhoami.IsOnline = capWhoami.IsOnline()\n\treturn whoami, nil\n}\n\n// NetConnect connects to the ipfs network.\nfunc (cl *Client) NetConnect() error {\n\t_, err := cl.api.Connect(cl.ctx, func(p capnp.Net_connect_Params) error {\n\t\treturn nil\n\t}).Struct()\n\treturn err\n}\n\n// NetDisconnect disconnects from the ipfs network.\nfunc (cl *Client) NetDisconnect() error {\n\t_, err := cl.api.Disconnect(cl.ctx, func(p capnp.Net_disconnect_Params) error {\n\t\treturn nil\n\t}).Struct()\n\treturn err\n}\n\n// RemoteStatus is a entry in the remote online list.\n// Fingerprint is not necessarily filled.\ntype RemoteStatus struct {\n\tRemote        Remote\n\tLastSeen      time.Time\n\tRoundtrip     time.Duration\n\tErr           error\n\tAuthenticated bool\n}\n\nfunc capRemoteStatusToRemoteStatus(capStatus capnp.RemoteStatus) (*RemoteStatus, error) {\n\tcapRemote, err := capStatus.Remote()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tremote, err := capRemoteToRemote(capRemote)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmsg, err := capStatus.Error()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlastSeenStamp, err := capStatus.LastSeen()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlastSeen := time.Now()\n\tif lastSeenStamp != \"\" {\n\t\tlastSeen, err = time.Parse(time.RFC3339, lastSeenStamp)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tpingErr := errors.New(msg)\n\tif len(msg) == 0 {\n\t\tpingErr = nil\n\t}\n\n\troundtripMs := time.Duration(capStatus.RoundtripMs()) * time.Millisecond\n\treturn &RemoteStatus{\n\t\tRemote:        *remote,\n\t\tLastSeen:      lastSeen,\n\t\tRoundtrip:     roundtripMs,\n\t\tErr:           pingErr,\n\t\tAuthenticated: capStatus.Authenticated(),\n\t}, nil\n}\n\n// RemoteOnlineList is like RemoteList but also includes IsOnline and Authenticated\n// status.\nfunc (cl *Client) RemoteOnlineList() ([]RemoteStatus, error) {\n\tcall := cl.api.RemoteOnlineList(cl.ctx, func(p capnp.Net_remoteOnlineList_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapStatuses, err := result.Infos()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstatuses := []RemoteStatus{}\n\tfor idx := 0; idx < capStatuses.Len(); idx++ {\n\t\tcapStatus := capStatuses.At(idx)\n\t\tstatus, err := capRemoteStatusToRemoteStatus(capStatus)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tstatuses = append(statuses, *status)\n\t}\n\n\treturn statuses, nil\n}\n\n// Push sets a push request to `remoteName`. If `dryRun` is true,\n// the push won't be send but we will still check if the push is allowed.\nfunc (cl *Client) Push(remoteName string, dryRun bool) error {\n\tcall := cl.api.Push(cl.ctx, func(p capnp.Net_push_Params) error {\n\t\tp.SetDryRun(dryRun)\n\t\treturn p.SetRemoteName(remoteName)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n"
  },
  {
    "path": "client/net_test.go",
    "content": "package client_test\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPush(t *testing.T) {\n\twithDaemonPair(t, \"ali\", \"bob\", func(aliCtl, bobCtl *client.Client) {\n\t\trequire.Nil(t, aliCtl.StageFromReader(\"/ali-file\", bytes.NewReader([]byte{1, 2, 3})))\n\n\t\terr := aliCtl.Push(\"bob\", true)\n\t\trequire.True(t, strings.HasSuffix(err.Error(), \"remote does not allow it\"))\n\n\t\taliRmt, err := bobCtl.RemoteByName(\"ali\")\n\t\trequire.Nil(t, err)\n\t\taliRmt.AcceptPush = true\n\t\trequire.Nil(t, bobCtl.RemoteAddOrUpdate(aliRmt))\n\n\t\terr = aliCtl.Push(\"bob\", true)\n\t\trequire.Nil(t, err)\n\n\t\terr = aliCtl.Push(\"bob\", false)\n\t\trequire.Nil(t, err)\n\n\t\t// There is a possible race condition here:\n\t\t// ``brig push`` only triggers the sync, but\n\t\t// waits only until the network message was sent.\n\t\t// It might take a small amount of time till the other\n\t\t// side managed to do the sync.\n\t\ttime.Sleep(250 * time.Millisecond)\n\n\t\t// bob should have ali file without him syncing explicitly.\n\t\t_, err = bobCtl.Stat(\"/ali-file\")\n\t\trequire.Nil(t, err)\n\n\t})\n}\n"
  },
  {
    "path": "client/repo_cmds.go",
    "content": "package client\n\nimport (\n\t\"sort\"\n\n\tgwdb \"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/server/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n\tcapnplib \"zombiezen.com/go/capnproto2\"\n)\n\n// Quit sends a quit signal to brigd.\nfunc (ctl *Client) Quit() error {\n\tcall := ctl.api.Quit(ctl.ctx, func(p capnp.Repo_quit_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Ping pings the daemon to see if it is responding.\nfunc (ctl *Client) Ping() error {\n\tcall := ctl.api.Ping(ctl.ctx, func(p capnp.Repo_ping_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = result.Reply()\n\treturn err\n}\n\n// MountOptions holds the possible option for a single mount.\ntype MountOptions struct {\n\tReadOnly bool\n\tRootPath string\n\tOffline  bool\n}\n\nfunc mountOptionsToCapnp(opts MountOptions, seg *capnplib.Segment) (*capnp.MountOptions, error) {\n\tcapOpts, err := capnp.NewMountOptions(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapOpts.SetReadOnly(opts.ReadOnly)\n\tcapOpts.SetOffline(opts.Offline)\n\tif err := capOpts.SetRootPath(opts.RootPath); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capOpts, nil\n}\n\n// Mount creates a new mount at `mountPath` with `opts`.\nfunc (ctl *Client) Mount(mountPath string, opts MountOptions) error {\n\tcall := ctl.api.Mount(ctl.ctx, func(p capnp.Repo_mount_Params) error {\n\t\tcapOpts, err := mountOptionsToCapnp(opts, p.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetOptions(*capOpts); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetMountPath(mountPath)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Unmount kills a previously created mount at `mountPath`.\nfunc (ctl *Client) Unmount(mountPath string) error {\n\tcall := ctl.api.Unmount(ctl.ctx, func(p capnp.Repo_unmount_Params) error {\n\t\treturn p.SetMountPath(mountPath)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// ConfigGet returns the value at `key`.\nfunc (ctl *Client) ConfigGet(key string) (string, error) {\n\tcall := ctl.api.ConfigGet(ctl.ctx, func(p capnp.Repo_configGet_Params) error {\n\t\treturn p.SetKey(key)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn result.Value()\n}\n\n// ConfigSet sets the key at `key` to `value`\nfunc (ctl *Client) ConfigSet(key, value string) error {\n\tcall := ctl.api.ConfigSet(ctl.ctx, func(p capnp.Repo_configSet_Params) error {\n\t\tif err := p.SetValue(value); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetKey(key)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// ConfigEntry is a single entry of the config.\ntype ConfigEntry struct {\n\tKey          string\n\tVal          string\n\tDoc          string\n\tDefault      string\n\tNeedsRestart bool\n}\n\nfunc configEntryFromCapnp(capEntry capnp.ConfigEntry) (*ConfigEntry, error) {\n\tkey, err := capEntry.Key()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tval, err := capEntry.Val()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdoc, err := capEntry.Doc()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdef, err := capEntry.Default()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &ConfigEntry{\n\t\tDefault:      def,\n\t\tKey:          key,\n\t\tVal:          val,\n\t\tDoc:          doc,\n\t\tNeedsRestart: capEntry.NeedsRestart(),\n\t}, nil\n}\n\n// ConfigAll returns all config entries with details.\nfunc (ctl *Client) ConfigAll() ([]ConfigEntry, error) {\n\tcall := ctl.api.ConfigAll(ctl.ctx, func(p capnp.Repo_configAll_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapPairs, err := result.All()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentries := []ConfigEntry{}\n\tfor idx := 0; idx < capPairs.Len(); idx++ {\n\t\tcapEntry := capPairs.At(idx)\n\t\tentry, err := configEntryFromCapnp(capEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tentries = append(entries, *entry)\n\t}\n\n\treturn entries, nil\n}\n\n// ConfigDoc gets the documentation for a single config entry at `key`.\nfunc (ctl *Client) ConfigDoc(key string) (ConfigEntry, error) {\n\tcall := ctl.api.ConfigDoc(ctl.ctx, func(p capnp.Repo_configDoc_Params) error {\n\t\treturn p.SetKey(key)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn ConfigEntry{}, err\n\t}\n\n\tcapEntry, err := result.Desc()\n\tif err != nil {\n\t\treturn ConfigEntry{}, err\n\t}\n\n\tentry, err := configEntryFromCapnp(capEntry)\n\tif err != nil {\n\t\treturn ConfigEntry{}, err\n\t}\n\n\treturn *entry, nil\n}\n\n// VersionInfo describes the version of the server.\ntype VersionInfo struct {\n\tServerSemVer  string\n\tServerRev     string\n\tBackendSemVer string\n\tBackendRev    string\n}\n\n// Version returns version information about the server.\nfunc (ctl *Client) Version() (*VersionInfo, error) {\n\tcall := ctl.api.Version(ctl.ctx, func(p capnp.Repo_version_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapVersion, err := result.Version()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tversion := &VersionInfo{}\n\tversion.ServerSemVer, err = capVersion.ServerVersion()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tversion.ServerRev, err = capVersion.ServerRev()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tversion.BackendSemVer, err = capVersion.BackendVersion()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tversion.BackendRev, err = capVersion.BackendRev()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn version, nil\n}\n\n// FstabAdd adds a new mount named `mountName` at `mountPath` with `opts`.\n// The mount will only be created after calling FstabApply.\nfunc (ctl *Client) FstabAdd(mountName, mountPath string, opts MountOptions) error {\n\tcall := ctl.api.FstabAdd(ctl.ctx, func(p capnp.Repo_fstabAdd_Params) error {\n\t\tif err := p.SetMountName(mountName); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetMountPath(mountPath); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcapOpts, err := mountOptionsToCapnp(opts, p.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetOptions(*capOpts)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// FstabRemove removes a named mount called `mountName`.\nfunc (ctl *Client) FstabRemove(mountName string) error {\n\tcall := ctl.api.FstabRemove(ctl.ctx, func(p capnp.Repo_fstabRemove_Params) error {\n\t\treturn p.SetMountName(mountName)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// FstabApply will apply any changes made the filesystem tab.\n// This won't do anything if nothing was changed in the mean time.\nfunc (ctl *Client) FstabApply() error {\n\tcall := ctl.api.FstabApply(ctl.ctx, func(p capnp.Repo_fstabApply_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// FstabUnmountAll will unmount all currently mounted fstab entries.\nfunc (ctl *Client) FstabUnmountAll() error {\n\tcall := ctl.api.FstabUnmountAll(ctl.ctx, func(p capnp.Repo_fstabUnmountAll_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// FsTabEntry describes a single entry in the filesystem tab\ntype FsTabEntry struct {\n\tName     string\n\tPath     string\n\tRoot     string\n\tActive   bool\n\tReadOnly bool\n\tOffline  bool\n}\n\nfunc capMountToMount(capEntry capnp.FsTabEntry) (*FsTabEntry, error) {\n\tname, err := capEntry.Name()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\troot, err := capEntry.Root()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpath, err := capEntry.Path()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &FsTabEntry{\n\t\tPath:     path,\n\t\tName:     name,\n\t\tRoot:     root,\n\t\tActive:   capEntry.Active(),\n\t\tReadOnly: capEntry.ReadOnly(),\n\t\tOffline:  capEntry.Offline(),\n\t}, nil\n}\n\n// FsTabList lists all fs tab entries.\nfunc (ctl *Client) FsTabList() ([]FsTabEntry, error) {\n\tcall := ctl.api.FstabList(ctl.ctx, func(p capnp.Repo_fstabList_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapMounts, err := result.Mounts()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmounts := []FsTabEntry{}\n\tfor idx := 0; idx < capMounts.Len(); idx++ {\n\t\tcapMount := capMounts.At(idx)\n\t\tmount, err := capMountToMount(capMount)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmounts = append(mounts, *mount)\n\t}\n\n\treturn mounts, nil\n}\n\n// GarbageItem is a single path that was reaped by the garbage collector.\ntype GarbageItem struct {\n\tPath    string\n\tOwner   string\n\tContent h.Hash\n}\n\n// GarbageCollect calls the backend (IPSF) garbage collector and returns the collected items.\nfunc (ctl *Client) GarbageCollect(aggressive bool) ([]*GarbageItem, error) {\n\tcall := ctl.api.GarbageCollect(ctl.ctx, func(p capnp.FS_garbageCollect_Params) error {\n\t\tp.SetAggressive(aggressive)\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfreed := []*GarbageItem{}\n\n\tcapFreed, err := result.Freed()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx := 0; idx < capFreed.Len(); idx++ {\n\t\tcapGcItem := capFreed.At(idx)\n\t\tgcItem := &GarbageItem{}\n\n\t\tgcItem.Owner, err = capGcItem.Owner()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tgcItem.Path, err = capGcItem.Path()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcontent, err := capGcItem.Content()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tgcItem.Content, err = h.Cast(content)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfreed = append(freed, gcItem)\n\t}\n\n\treturn freed, nil\n}\n\n// Become changes the current users to one of the users in the remote list.\nfunc (ctl *Client) Become(who string) error {\n\tcall := ctl.api.Become(ctl.ctx, func(p capnp.Repo_become_Params) error {\n\t\treturn p.SetWho(who)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// GatewayUser is a user that has access to the gateway.\ntype GatewayUser struct {\n\tName         string\n\tPasswordHash string\n\tSalt         string\n\tFolders      []string\n\tRights       []string\n}\n\n// GatewayUserAdd adds a new user to the user database.\n// `folders` is a list of directories he may access. It might be empty,\n// in which case he can access everything (same as []string{\"/\"})\nfunc (ctl *Client) GatewayUserAdd(name, password string, folders, rights []string) error {\n\tcall := ctl.api.GatewayUserAdd(ctl.ctx, func(p capnp.Repo_gatewayUserAdd_Params) error {\n\t\tif err := p.SetName(name); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetPassword(password); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetPassword(password); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tseg := p.Segment()\n\t\tcapFolders, err := capnplib.NewTextList(seg, int32(len(folders)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, folder := range folders {\n\t\t\tif err := capFolders.Set(idx, folder); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err := p.SetFolders(capFolders); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcapRights, err := capnplib.NewTextList(seg, int32(len(rights)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, right := range rights {\n\t\t\tif err := capRights.Set(idx, right); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn p.SetRights(capRights)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// GatewayUserRemove removes an existing user and will error out\n// if the said user does not exist.\nfunc (ctl *Client) GatewayUserRemove(name string) error {\n\tcall := ctl.api.GatewayUserRm(ctl.ctx, func(p capnp.Repo_gatewayUserRm_Params) error {\n\t\treturn p.SetName(name)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// GatewayUserList lists all currently existing users.\nfunc (ctl *Client) GatewayUserList() ([]GatewayUser, error) {\n\tcall := ctl.api.GatewayUserList(ctl.ctx, func(p capnp.Repo_gatewayUserList_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapUsers, err := result.Users()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tusers := []GatewayUser{}\n\tfor idx := 0; idx < capUsers.Len(); idx++ {\n\t\tcapUser := capUsers.At(idx)\n\t\tgwuser, err := gwdb.UserFromCapnp(capUser)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tusers = append(users, GatewayUser{\n\t\t\tName:         gwuser.Name,\n\t\t\tSalt:         gwuser.Salt,\n\t\t\tPasswordHash: gwuser.PasswordHash,\n\t\t\tFolders:      gwuser.Folders,\n\t\t\tRights:       gwuser.Rights,\n\t\t})\n\t}\n\n\treturn users, err\n}\n\n// DebugProfilePort will get the port of pprof server in the backend.\n// The port changes during daemon restarts.\nfunc (ctl *Client) DebugProfilePort() (int, error) {\n\tcall := ctl.api.DebugProfilePort(ctl.ctx, func(p capnp.Repo_debugProfilePort_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn int(result.Port()), nil\n}\n\n// Hint is a container for configuring streams.\ntype Hint struct {\n\t// Path is the path the hint applies to (recursively)\n\tPath string\n\n\t// CompressionAlgo can be an algorithm or \"guess\"\n\t// to let brig choose a suitable one.\n\tCompressionAlgo string\n\n\t// EncryptionAlgo must be a valid encryption algorithm.\n\tEncryptionAlgo string\n}\n\n// HintSet remembers the given settings at `path` (and below)\nfunc (ctl *Client) HintSet(path string, compressionAlgo, encryptionAlgo *string) error {\n\tcall := ctl.api.HintSet(ctl.ctx, func(p capnp.Repo_hintSet_Params) error {\n\t\tcapHint, err := capnp.NewHint(p.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capHint.SetPath(path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif compressionAlgo != nil {\n\t\t\tif err := capHint.SetCompressionAlgo(*compressionAlgo); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif encryptionAlgo != nil {\n\t\t\tif err := capHint.SetEncryptionAlgo(*encryptionAlgo); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn p.SetHint(capHint)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// HintRemove removes the hint at `path`.\nfunc (ctl *Client) HintRemove(path string) error {\n\tcall := ctl.api.HintRemove(ctl.ctx, func(p capnp.Repo_hintRemove_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\nfunc convertCapHint(capHint capnp.Hint) (*Hint, error) {\n\tpath, err := capHint.Path()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcompressionAlgo, err := capHint.CompressionAlgo()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tencryptionAlgo, err := capHint.EncryptionAlgo()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Hint{\n\t\tPath:            path,\n\t\tEncryptionAlgo:  encryptionAlgo,\n\t\tCompressionAlgo: compressionAlgo,\n\t}, nil\n}\n\n// HintList lists all hints that are currently set.\nfunc (ctl *Client) HintList() ([]Hint, error) {\n\tcall := ctl.api.HintList(ctl.ctx, func(p capnp.Repo_hintList_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapHints, err := result.Hints()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thints := []Hint{}\n\n\tfor idx := 0; idx < capHints.Len(); idx++ {\n\t\thint, err := convertCapHint(capHints.At(idx))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\thints = append(hints, *hint)\n\t}\n\n\t// Sort for display convenience:\n\tsort.Slice(hints, func(i, j int) bool {\n\t\treturn hints[i].Path < hints[j].Path\n\t})\n\n\treturn hints, nil\n}\n"
  },
  {
    "path": "client/vcs_cmds.go",
    "content": "package client\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/server/capnp\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// MakeCommit creates a new commit from the current staging area.\n// The commit will have the message `msg`.\nfunc (ctl *Client) MakeCommit(msg string) error {\n\tcall := ctl.api.Commit(ctl.ctx, func(p capnp.VCS_commit_Params) error {\n\t\treturn p.SetMsg(msg)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Commit describes a single commit in more detail.\ntype Commit struct {\n\tHash h.Hash\n\tMsg  string\n\tTags []string\n\tDate time.Time\n}\n\nfunc convertCapCommit(capEntry *capnp.Commit) (*Commit, error) {\n\tresult := Commit{}\n\tmodTimeStr, err := capEntry.Date()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := result.Date.UnmarshalText([]byte(modTimeStr)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult.Hash, err = capEntry.Hash()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult.Msg, err = capEntry.Msg()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttagList, err := capEntry.Tags()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttags := []string{}\n\tfor idx := 0; idx < tagList.Len(); idx++ {\n\t\ttag, err := tagList.At(idx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\ttags = append(tags, tag)\n\t}\n\n\tresult.Tags = tags\n\treturn &result, nil\n}\n\n// Log lists all commits, starting with the newest one.\nfunc (ctl *Client) Log() ([]Commit, error) {\n\tcall := ctl.api.Log(ctl.ctx, func(p capnp.VCS_log_Params) error {\n\t\treturn nil\n\t})\n\n\tresults := []Commit{}\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tentries, err := result.Entries()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx := 0; idx < entries.Len(); idx++ {\n\t\tcapEntry := entries.At(idx)\n\t\tresult, err := convertCapCommit(&capEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresults = append(results, *result)\n\t}\n\n\treturn results, nil\n}\n\n// Tag tags a commit (`rev`) with a certain `name`.\nfunc (ctl *Client) Tag(rev, name string) error {\n\tcall := ctl.api.Tag(ctl.ctx, func(p capnp.VCS_tag_Params) error {\n\t\tif err := p.SetTagName(name); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn p.SetRev(rev)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Untag removes the `name` tag.\nfunc (ctl *Client) Untag(name string) error {\n\tcall := ctl.api.Untag(ctl.ctx, func(p capnp.VCS_untag_Params) error {\n\t\treturn p.SetTagName(name)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Reset restores the content of `path` to the state at `rev`.\n// If `force` is true, it will overwrite the staging area if it needs to.\nfunc (ctl *Client) Reset(path, rev string, force bool) error {\n\tcall := ctl.api.Reset(ctl.ctx, func(p capnp.VCS_reset_Params) error {\n\t\tif err := p.SetPath(path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tp.SetForce(force)\n\t\treturn p.SetRev(rev)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Change describes a change of a node between two commits.\ntype Change struct {\n\tPath string\n\tMask []string\n\tHead *Commit\n\tNext *Commit\n\n\tMovedTo         string\n\tWasPreviouslyAt string\n\n\tIsPinned   bool\n\tIsExplicit bool\n}\n\n// History returns a detailed set of changes that happened to the node at `path`.\nfunc (ctl *Client) History(path string) ([]*Change, error) {\n\tcall := ctl.api.History(ctl.ctx, func(p capnp.VCS_history_Params) error {\n\t\treturn p.SetPath(path)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thistList, err := result.History()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresults := []*Change{}\n\tfor idx := 0; idx < histList.Len(); idx++ {\n\t\tentry := histList.At(idx)\n\t\tpath, err := entry.Path()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tchange, err := entry.Change()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapHeadCmt, err := entry.Head()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\thead, err := convertCapCommit(&capHeadCmt)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmovedTo, err := entry.MovedTo()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\twasPreviouslyAt, err := entry.WasPreviouslyAt()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar next *Commit\n\t\tif entry.HasNext() {\n\t\t\tcapNextCmt, err := entry.Next()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnext, err = convertCapCommit(&capNextCmt)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\tresults = append(results, &Change{\n\t\t\tPath:            path,\n\t\t\tMask:            strings.Split(change, \"|\"),\n\t\t\tHead:            head,\n\t\t\tNext:            next,\n\t\t\tMovedTo:         movedTo,\n\t\t\tWasPreviouslyAt: wasPreviouslyAt,\n\t\t\tIsPinned:        entry.IsPinned(),\n\t\t\tIsExplicit:      entry.IsExplicit(),\n\t\t})\n\t}\n\n\treturn results, nil\n}\n\n// DiffPair is a pair of nodes that were changed in some way.\ntype DiffPair struct {\n\tSrc StatInfo\n\tDst StatInfo\n}\n\n// Diff gives a detailed overview over the changes between two commits.\ntype Diff struct {\n\tAdded   []StatInfo\n\tRemoved []StatInfo\n\tIgnored []StatInfo\n\tMissing []StatInfo\n\n\tMoved    []DiffPair\n\tMerged   []DiffPair\n\tConflict []DiffPair\n}\n\n// IsEmpty reports if a diff is completely empty (i.e. nothing changed)\nfunc (df *Diff) IsEmpty() bool {\n\treturn 0 == 0+\n\t\tlen(df.Added)+\n\t\tlen(df.Removed)+\n\t\tlen(df.Ignored)+\n\t\tlen(df.Missing)+\n\t\tlen(df.Moved)+\n\t\tlen(df.Merged)+\n\t\tlen(df.Conflict)\n}\n\nfunc convertDiffList(lst capnp.StatInfo_List) ([]StatInfo, error) {\n\tinfos := []StatInfo{}\n\n\tfor idx := 0; idx < lst.Len(); idx++ {\n\t\tcapInfo := lst.At(idx)\n\t\tinfo, err := convertCapStatInfo(&capInfo)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tinfos = append(infos, *info)\n\t}\n\n\treturn infos, nil\n}\n\nfunc convertDiffPairList(lst capnp.DiffPair_List) ([]DiffPair, error) {\n\tpairs := []DiffPair{}\n\tfor idx := 0; idx < lst.Len(); idx++ {\n\t\tcapPair := lst.At(idx)\n\t\tcapSrc, err := capPair.Src()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapDst, err := capPair.Dst()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tsrcInfo, err := convertCapStatInfo(&capSrc)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdstInfo, err := convertCapStatInfo(&capDst)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpairs = append(pairs, DiffPair{\n\t\t\tSrc: *srcInfo,\n\t\t\tDst: *dstInfo,\n\t\t})\n\t}\n\n\treturn pairs, nil\n}\n\nfunc convertCapDiffToDiff(capDiff capnp.Diff) (*Diff, error) {\n\tdiff := &Diff{}\n\n\tlst, err := capDiff.Added()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Added, err = convertDiffList(lst)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlst, err = capDiff.Missing()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Missing, err = convertDiffList(lst)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlst, err = capDiff.Removed()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Removed, err = convertDiffList(lst)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlst, err = capDiff.Ignored()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Ignored, err = convertDiffList(lst)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpairs, err := capDiff.Moved()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Moved, err = convertDiffPairList(pairs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpairs, err = capDiff.Merged()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Merged, err = convertDiffPairList(pairs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpairs, err = capDiff.Conflict()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiff.Conflict, err = convertDiffPairList(pairs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn diff, nil\n}\n\n// MakeDiff creates a diff between the commits at `remoteRev` and `localRev`.\n// If `needFetch` is true, the data is first updated from the remote.\nfunc (ctl *Client) MakeDiff(local, remote, localRev, remoteRev string, needFetch bool) (*Diff, error) {\n\tcall := ctl.api.MakeDiff(ctl.ctx, func(p capnp.VCS_makeDiff_Params) error {\n\t\tif err := p.SetLocalOwner(local); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetRemoteOwner(remote); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := p.SetLocalRev(localRev); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tp.SetNeedFetch(needFetch)\n\t\treturn p.SetRemoteRev(remoteRev)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapDiff, err := result.Diff()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn convertCapDiffToDiff(capDiff)\n}\n\n// Fetch updates our internal copy of the data of `remote`.\nfunc (ctl *Client) Fetch(remote string) error {\n\tcall := ctl.api.Fetch(ctl.ctx, func(p capnp.VCS_fetch_Params) error {\n\t\treturn p.SetWho(remote)\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// Sync triggers a sync with the data from `remote`.\n// If `needFetch` is true, the data is first updated from the remote.\nfunc (ctl *Client) Sync(remote string, needFetch bool) (*Diff, error) {\n\tcall := ctl.api.Sync(ctl.ctx, func(p capnp.VCS_sync_Params) error {\n\t\tp.SetNeedFetch(needFetch)\n\t\treturn p.SetWithWhom(remote)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapDiff, err := result.Diff()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn convertCapDiffToDiff(capDiff)\n}\n\n// CommitInfo is like a stat(2) for commits.\nfunc (ctl *Client) CommitInfo(rev string) (bool, *Commit, error) {\n\tcall := ctl.api.CommitInfo(ctl.ctx, func(p capnp.VCS_commitInfo_Params) error {\n\t\treturn p.SetRev(rev)\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn false, nil, err\n\t}\n\n\tif !result.IsValidRef() {\n\t\treturn false, nil, nil\n\t}\n\n\tcapCmt, err := result.Commit()\n\tif err != nil {\n\t\treturn false, nil, err\n\t}\n\n\tcmt, err := convertCapCommit(&capCmt)\n\tif err != nil {\n\t\treturn false, nil, err\n\t}\n\n\treturn true, cmt, nil\n}\n"
  },
  {
    "path": "cmd/bug.go",
    "content": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/version\"\n\t\"github.com/toqueteos/webbrowser\"\n\t\"github.com/urfave/cli\"\n)\n\nconst (\n\treportURL = \"https://github.com/sahib/brig/issues/new?\"\n)\n\n// printError simply prints a nicely formatted error to stderr.\nfunc printError(msg string) {\n\tfmt.Fprintln(os.Stderr, color.RedString(\"*** \")+msg)\n}\n\n// cmdOutput runs a command at `path` with `args` and returns it's output.\n// No real error checking is done, on errors an empty string is returned.\nfunc cmdOutput(path string, args ...string) string {\n\tout, err := exec.Command(path, args...).Output() // #nosec\n\tif err != nil {\n\t\t// No other error checking here, `brig bug` is best effort.\n\t\tprintError(fmt.Sprintf(\"failed to run %s %s\", path, strings.Join(args, \" \")))\n\t\treturn \"\"\n\t}\n\n\treturn strings.TrimSpace(string(out))\n}\n\n// handleBugReport compiles a report of useful info when providing a bug report.\nfunc handleBugReport(ctx *cli.Context) error {\n\tbuf := &bytes.Buffer{}\n\tfmt.Fprintln(buf, `Please answer these questions before submitting your issue.\nPlease include anything else you think is helpful. Thanks!\n\n### What did you do?\n\n### What did you expect to see?\n\n### What did you see instead?\n\n### Do you still see this issue with a development binary?\n\n### Did you check if a similar bug report was already opened?\n\n### System details:`)\n\n\tfmt.Fprintf(buf, \"go version:     ``%s``\\n\", cmdOutput(\"go\", \"version\"))\n\tfmt.Fprintf(buf, \"uname -s -v -m: ``%s``\\n\", cmdOutput(\"uname\", \"-s\", \"-v\", \"-m\"))\n\tfmt.Fprintf(buf, \"IPFS config:    ``%s``\\n\", cmdOutput(\"ipfs\", \"config\", \"show\"))\n\tfmt.Fprintf(buf, \"\\n\")\n\n\tfmt.Fprintf(\n\t\tbuf,\n\t\t\"brig client version: ``%s [build: %s]``\\n\",\n\t\tversion.String(),\n\t\tversion.BuildTime,\n\t)\n\n\tdaemonURL, err := guessDaemonURL(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tctl, err := client.Dial(context.Background(), daemonURL)\n\tif err == nil {\n\t\t// Try to get the server side / ipfs version.\n\t\tversion, err := ctl.Version()\n\t\tif err == nil {\n\t\t\tfmt.Fprintf(\n\t\t\t\tbuf,\n\t\t\t\t\"brig server version: ``%s+%s``\\n\",\n\t\t\t\tversion.ServerSemVer,\n\t\t\t\tversion.ServerRev,\n\t\t\t)\n\t\t\tfmt.Fprintf(\n\t\t\t\tbuf,\n\t\t\t\t\"IPFS Version:        ``%s+%s``\\n\",\n\t\t\t\tversion.BackendSemVer,\n\t\t\t\tversion.BackendRev,\n\t\t\t)\n\t\t}\n\t} else {\n\t\tprintError(\"Cannot get server and IPFS version.\")\n\t\tprintError(\"If it is possible to start the daemon, do it now.\")\n\t\tprintError(\"This will make the bug report more helpful. Thanks.\")\n\t}\n\n\tprintToStdout := ctx.Bool(\"stdout\")\n\tif !printToStdout {\n\t\t// Try to open the issue tracker for convinience:\n\t\turlVal := url.Values{}\n\t\turlVal.Set(\"body\", buf.String())\n\t\tif err := webbrowser.Open(reportURL + urlVal.Encode()); err != nil {\n\t\t\tprintToStdout = true\n\t\t}\n\t}\n\n\tif printToStdout {\n\t\t// If not, ask the user to print it directly:\n\t\tif !ctx.Bool(\"stdout\") {\n\t\t\tprintError(\"I failed to open the issue tracker in your browser.\")\n\t\t\tprintError(\"Please paste the underlying text manually at this URL:\")\n\t\t\tprintError(\"https://github.com/sahib/brig/issues\")\n\t\t}\n\t\tfmt.Println(buf.String())\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/debug.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\n\t\"github.com/dustin/go-humanize\"\n\t\"github.com/mr-tron/base58\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/fuse/fusetest\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/urfave/cli\"\n)\n\nfunc handleDebugPprofPort(ctx *cli.Context, ctl *client.Client) error {\n\tport, err := ctl.DebugProfilePort()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif port > 0 {\n\t\tfmt.Println(port)\n\t} else {\n\t\tfmt.Println(\"Profiling is not enabled.\")\n\t\tfmt.Println(\"Enable daemon.enable_pprof and restart.\")\n\t}\n\n\treturn nil\n}\n\nfunc readDebugKey(ctx *cli.Context) ([]byte, error) {\n\tkeyB58 := ctx.String(\"key\")\n\tkey, err := base58.Decode(keyB58)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn key, nil\n}\n\nfunc handleDebugDecodeStream(ctx *cli.Context) error {\n\tkey, err := readDebugKey(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfd, err := ioutil.TempFile(\"\", \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer fd.Close()\n\tdefer os.Remove(fd.Name())\n\n\t_, err = io.Copy(fd, os.Stdin)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = fd.Seek(0, io.SeekStart)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tstream, err := mio.NewOutStream(fd, ctx.Bool(\"raw\"), key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = io.Copy(os.Stdout, stream)\n\treturn err\n}\n\nfunc handleDebugEncodeStream(ctx *cli.Context) error {\n\tkey, err := readDebugKey(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thint := hints.Hint{\n\t\tEncryptionAlgo:  hints.EncryptionHint(ctx.String(\"encryption\")),\n\t\tCompressionAlgo: hints.CompressionHint(ctx.String(\"compression\")),\n\t}\n\n\tif !hint.IsValid() {\n\t\treturn fmt.Errorf(\"invalid encryption or compression\")\n\t}\n\n\tr, _, err := mio.NewInStream(os.Stdin, \"\", key, hint)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = io.Copy(os.Stdout, r)\n\treturn err\n}\n\nfunc readStreamSized(ctx *cli.Context) (uint64, error) {\n\treturn humanize.ParseBytes(ctx.String(\"size\"))\n}\n\nfunc handleDebugTenSource(ctx *cli.Context) error {\n\ts, err := readStreamSized(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttr := &testutil.TenReader{}\n\t_, err = io.Copy(os.Stdout, io.LimitReader(tr, int64(s)))\n\treturn err\n}\n\nfunc handleDebugTenSink(ctx *cli.Context) error {\n\ts, err := readStreamSized(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttw := &testutil.TenWriter{}\n\tn, err := io.Copy(tw, os.Stdin)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif int64(s) != n {\n\t\treturn fmt.Errorf(\"expected %d, got %d bytes\", s, n)\n\t}\n\n\treturn nil\n}\n\nfunc handleDebugFuseMock(ctx *cli.Context) error {\n\topts := fusetest.Options{\n\t\tCatfsPath:           ctx.String(\"catfs-path\"),\n\t\tMountPath:           ctx.String(\"mount-path\"),\n\t\tIpfsPathOrMultiaddr: ctx.String(\"ipfs-path-or-multiaddr\"),\n\t\tURL:                 ctx.String(\"url\"),\n\t\tMountReadOnly:       ctx.Bool(\"mount-ro\"),\n\t\tMountOffline:        ctx.Bool(\"mount-offline\"),\n\t}\n\n\treturn fusetest.Launch(opts)\n}\n"
  },
  {
    "path": "cmd/exit_codes.go",
    "content": "package cmd\n\nconst (\n\t// Success is the same as EXIT_SUCCESS in C\n\tSuccess = iota\n\n\t// BadArgs passed to cli; not our fault.\n\tBadArgs\n\n\t// BadPassword passed to prompt or switch; not our fault.\n\tBadPassword\n\n\t// DaemonNotResponding means the daemon does not respond in timely fashion.\n\t// Probably our fault.\n\tDaemonNotResponding\n\n\t// UnknownError is an uncategorized error, probably our fault.\n\tUnknownError\n)\n"
  },
  {
    "path": "cmd/fs_handlers.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/cmd/tabwriter\"\n\t\"github.com/sahib/brig/util\"\n\n\t\"github.com/dustin/go-humanize\"\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/urfave/cli\"\n\n\t\"github.com/vbauerster/mpb\"\n\t\"github.com/vbauerster/mpb/decor\"\n\tterminal \"github.com/wayneashleyberry/terminal-dimensions\"\n)\n\nfunc handleStage(ctx *cli.Context, ctl *client.Client) error {\n\tlocalPath := ctx.Args().Get(0)\n\treadFromStdin := ctx.Bool(\"stdin\")\n\trepoPath := filepath.Base(localPath)\n\n\tif len(ctx.Args()) > 1 {\n\t\trepoPath = ctx.Args().Get(1)\n\t\tif localPath == \"-\" {\n\t\t\treadFromStdin = true\n\t\t}\n\t}\n\n\tif readFromStdin {\n\t\trepoPath = ctx.Args().Get(0)\n\t\treturn ctl.StageFromReader(repoPath, os.Stdin)\n\t}\n\n\tabsLocalPath, err := filepath.Abs(localPath)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Failed to retrieve absolute path: %v\", err)\n\t}\n\n\t_, err = os.Stat(absLocalPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn handleStageDirectory(ctx, ctl, absLocalPath, repoPath)\n}\n\n// holds brig repoPaths twins (by content) to a OS file system localPath\ntype twins struct {\n\tlocalPath string\n\trepoPaths []string\n}\n\ntype walkOptions struct {\n\tdereference     bool\n\tcontinueOnError bool\n}\n\nfunc walk(root, repoRoot string, depth int, opt walkOptions) (map[string]twins, error) {\n\t// toBeStaged map: key is local path, value is array of repoPaths using the local path\n\ttoBeStaged := make(map[string]twins)\n\tdepth++\n\tif depth > 255 {\n\t\treturn toBeStaged, fmt.Errorf(\"Exceeded allowed dereferencing depth for %v\", root)\n\t}\n\troot = filepath.Clean(root)\n\trepoRoot = filepath.Clean(repoRoot)\n\terr := filepath.Walk(root, func(childPath string, info os.FileInfo, err error) error {\n\t\trepoPath := filepath.Join(\"/\", repoRoot, childPath[len(root):])\n\n\t\tif opt.dereference && info.Mode()&os.ModeSymlink != 0 {\n\t\t\t// NOTE: `brig` does not have concept of symlink\n\t\t\t//       The lack of native symlinks in `brig` has the following potential issues\n\t\t\t//       * Ignoring cycles limits valid use cases.\n\t\t\t//       * Not ignoring cycles opens room for malicious input.\n\t\t\t//\n\t\t\t//       Here we implement a dereference of symlinks as a temporary measure\n\t\t\t//       which works in the most likely user scenarios (we assume that user\n\t\t\t//       is not malicious to herself and does not create infinite symlinked loops).\n\t\t\t//       If the level of recursion or cycles\n\t\t\t//       (where link points to itself directly or indirectly) is exceeded,\n\t\t\t//       we just fail on such link.\n\t\t\t//       Currently, we have a depth limit of 255 (see couple line above).\n\t\t\tresolvedPath, err := filepath.EvalSymlinks(childPath)\n\t\t\tif err != nil {\n\t\t\t\tmsg := fmt.Sprintf(\"Failed to resolve: %v: %v\", childPath, err)\n\t\t\t\tif opt.continueOnError {\n\t\t\t\t\tfmt.Fprintf(os.Stderr, \"WARNING: %s\\n\", msg)\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\treturn fmt.Errorf(msg)\n\t\t\t}\n\t\t\tinfo, err = os.Stat(resolvedPath)\n\t\t\tif err != nil {\n\t\t\t\tmsg := fmt.Sprintf(\"Failed to do os.Stat(%v): %v\", resolvedPath, err)\n\t\t\t\tif opt.continueOnError {\n\t\t\t\t\tfmt.Fprintf(os.Stderr, \"WARNING: %s\\n\", msg)\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\treturn fmt.Errorf(msg)\n\t\t\t}\n\t\t\tchildPath = resolvedPath\n\t\t\tif info.Mode().IsDir() {\n\t\t\t\textra, err := walk(childPath, repoPath, depth, opt)\n\t\t\t\tif err != nil {\n\t\t\t\t\tif opt.continueOnError {\n\t\t\t\t\t\tfmt.Fprintf(os.Stderr, \"WARNING: %s\\n\", err.Error())\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tfor k, v := range extra {\n\t\t\t\t\tt, ok := toBeStaged[k]\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tt = twins{\n\t\t\t\t\t\t\tv.localPath,\n\t\t\t\t\t\t\t[]string{},\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tt.repoPaths = append(t.repoPaths, v.repoPaths...)\n\t\t\t\t\ttoBeStaged[k] = t\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tif info.Mode().IsRegular() {\n\t\t\tk, _ := inodeString(childPath)\n\t\t\tt, ok := toBeStaged[k]\n\t\t\tif !ok {\n\t\t\t\tt = twins{\n\t\t\t\t\tchildPath,\n\t\t\t\t\t[]string{},\n\t\t\t\t}\n\t\t\t}\n\t\t\tt.repoPaths = append(t.repoPaths, repoPath)\n\t\t\ttoBeStaged[k] = t\n\t\t}\n\n\t\treturn nil\n\t})\n\treturn toBeStaged, err\n}\n\nfunc makeParentDirIfNeeded(ctx *cli.Context, ctl *client.Client, path string) error {\n\tparent := filepath.Dir(path)\n\tinfo, err := ctl.Stat(parent)\n\tif err != nil {\n\t\tif yes, _ := regexp.MatchString(\"No such file or directory:\", err.Error()); yes {\n\t\t\tcreateParents := true\n\t\t\terr = ctl.Mkdir(parent, createParents)\n\t\t}\n\t\treturn err\n\t}\n\tif info.IsDir {\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"Cannot make dir from existing non dir node %s\", parent)\n}\n\nfunc handleStageDirectory(ctx *cli.Context, ctl *client.Client, root, repoRoot string) error {\n\t// Links will be reflinked in the `man cp` sense,\n\t// i.e. resolved repoPaths will point to the same content and backend hash\n\n\troot = filepath.Clean(root)\n\trepoRoot = filepath.Clean(repoRoot)\n\n\topt := walkOptions{\n\t\tdereference:     !ctx.Bool(\"no-dereference\"),\n\t\tcontinueOnError: ctx.Bool(\"continue-on-error\"),\n\t}\n\n\ttoBeStaged, err := walk(root, repoRoot, 0, opt)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to walk dir: %v: %v\", root, err)\n\t}\n\n\tif len(toBeStaged) == 0 {\n\t\t// This might happen if ask to stage a symlink pointing to a dir\n\t\t// but Walk does not travel symlinks and we end up with empty list.\n\t\treturn nil\n\t}\n\n\twidth, err := terminal.Width()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"warning: failed to get terminal size: %s\\n\", err)\n\t\twidth = 80\n\t}\n\n\tpbars := mpb.New(\n\t\t// override default (80) width\n\t\tmpb.WithWidth(int(width)),\n\t\t// override default 120ms refresh rate\n\t\tmpb.WithRefreshRate(250*time.Millisecond),\n\t)\n\n\tname := \"ETA\"\n\tbar := pbars.AddBar(\n\t\tint64(len(toBeStaged)),\n\t\tmpb.PrependDecorators(\n\t\t\t// display our name with one space on the right\n\t\t\tdecor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),\n\t\t\t// replace ETA decorator with \"done\" message, OnComplete event\n\t\t\tdecor.OnComplete(\n\t\t\t\t// ETA decorator with ewma age of 60, and width reservation of 4\n\t\t\t\tdecor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), \"done\",\n\t\t\t),\n\t\t),\n\t\tmpb.AppendDecorators(decor.Percentage()),\n\t)\n\n\ttype stageList struct {\n\t\tlocal    string\n\t\trepoList []string\n\t}\n\n\tnWorkers := 20\n\tstart := time.Now()\n\tjobs := make(chan twins, nWorkers)\n\n\t// Start a bunch of workers that will do the actual adding:\n\tfor idx := 0; idx < nWorkers; idx++ {\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\ttwinsSet, ok := <-jobs\n\t\t\t\tif !ok {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tfirstToStage := \"\"\n\t\t\t\tfor i, repoPath := range twinsSet.repoPaths {\n\t\t\t\t\tif i == 0 {\n\t\t\t\t\t\tfirstToStage = repoPath\n\t\t\t\t\t\t// First occurrence is staged.\n\t\t\t\t\t\t// Stage creates all needed parent directories.\n\t\t\t\t\t\tif err := ctl.Stage(twinsSet.localPath, repoPath); err != nil {\n\t\t\t\t\t\t\tfmt.Fprintf(os.Stderr, \"failed to stage '%s' as '%s': %v\\n\", twinsSet.localPath, repoPath, err)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t// Copy does not create parent directories. We take care of it.\n\t\t\t\t\tif err := makeParentDirIfNeeded(ctx, ctl, repoPath); err != nil {\n\t\t\t\t\t\tfmt.Fprintf(os.Stderr, \"failed to make the parent dir for '%s': %v\\n\", repoPath, err)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif err := ctl.Copy(firstToStage, repoPath); err != nil {\n\t\t\t\t\t\tfmt.Fprintf(os.Stderr, \"failed copy of '%s' to '%s': %v\\n\", firstToStage, repoPath, err)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Notify the bar. The op time is used for the ETA.\n\t\t\t\t// The time is measured by \"start\" is NOT the time used to\n\t\t\t\t// stage a single file.  This would only work in a non-parallel\n\t\t\t\t// environment, because the ETA would assume that one file took\n\t\t\t\t// 2s, so 1000 files must take 2000s.  Instead it measures the\n\t\t\t\t// time between two time recordings, which are in the ideal\n\t\t\t\t// case around 1/n_workers * time_to_stage but it measures the\n\t\t\t\t// actual amount of parallelism that we achieve.\n\t\t\t\tbar.IncrBy(1, time.Since(start))\n\t\t\t\tstart = time.Now()\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Send the jobs onward:\n\tfor _, v := range toBeStaged {\n\t\tjobs <- v\n\t}\n\n\tclose(jobs)\n\tpbars.Wait()\n\treturn nil\n}\n\nfunc handleCat(ctx *cli.Context, ctl *client.Client) error {\n\tpath := \"/\"\n\tif len(ctx.Args()) >= 1 {\n\t\tpath = ctx.Args().First()\n\t}\n\n\tinfo, err := ctl.Stat(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdoOffline := ctx.Bool(\"offline\")\n\n\tvar stream io.ReadCloser\n\tif info.IsDir {\n\t\tstream, err = ctl.Tar(path, doOffline)\n\t} else if ctx.Bool(\"stream\") {\n\t\treturn ctl.CatOnClient(path, doOffline, os.Stdout)\n\t} else {\n\t\tstream, err = ctl.Cat(path, doOffline)\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer util.Closer(stream)\n\n\tif _, err := io.Copy(os.Stdout, stream); err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"cat: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleRm(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\n\tif err := ctl.Remove(path); err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"rm: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleMv(ctx *cli.Context, ctl *client.Client) error {\n\tsrcPath := ctx.Args().Get(0)\n\tdstPath := ctx.Args().Get(1)\n\treturn ctl.Move(srcPath, dstPath)\n}\n\nfunc handleCp(ctx *cli.Context, ctl *client.Client) error {\n\tsrcPath := ctx.Args().Get(0)\n\tdstPath := ctx.Args().Get(1)\n\treturn ctl.Copy(srcPath, dstPath)\n}\n\nfunc colorForSize(size uint64) func(f string, a ...interface{}) string {\n\tswitch {\n\tcase size >= 1024 && size < 1024<<10:\n\t\treturn color.CyanString\n\tcase size >= 1024<<10 && size < 1024<<20:\n\t\treturn color.YellowString\n\tcase size >= 1024<<20 && size < 1024<<30:\n\t\treturn color.RedString\n\tcase size >= 1024<<30:\n\t\treturn color.MagentaString\n\tdefault:\n\t\treturn func(f string, a ...interface{}) string {\n\t\t\treturn f\n\t\t}\n\t}\n}\n\nfunc userPrefixMap(users []string) map[string]string {\n\tm := make(map[string]string)\n\tfor _, user := range users {\n\t\tm[user] = user\n\t}\n\n\ttryAbbrev := func(abbrev string) bool {\n\t\tfor _, short := range m {\n\t\t\tif short == abbrev {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tfor name := range m {\n\t\tatIdx := strings.Index(name, \"@\")\n\t\tif atIdx != -1 && tryAbbrev(name[:atIdx]) {\n\t\t\tm[name] = name[:atIdx]\n\t\t\tcontinue\n\t\t}\n\n\t\tslashIdx := strings.Index(name, \"/\")\n\t\tif slashIdx != -1 && tryAbbrev(name[:slashIdx]) {\n\t\t\tm[name] = name[:slashIdx]\n\t\t\tcontinue\n\t\t}\n\t}\n\n\treturn m\n}\n\nfunc formatHint(hint client.Hint) string {\n\treturn fmt.Sprintf(\"enc:%s-zip:%s\", hint.EncryptionAlgo, hint.CompressionAlgo)\n}\n\nfunc handleList(ctx *cli.Context, ctl *client.Client) error {\n\tmaxDepth := ctx.Int(\"depth\")\n\tif ctx.Bool(\"recursive\") {\n\t\tmaxDepth = -1\n\t}\n\n\troot := \"/\"\n\tif ctx.Args().Present() {\n\t\troot = ctx.Args().First()\n\t}\n\n\tentries, err := ctl.List(root, maxDepth)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif tmpl != nil {\n\t\tfor _, entry := range entries {\n\t\t\tif err := tmpl.Execute(os.Stdout, entry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tusers := []string{}\n\tfor _, entry := range entries {\n\t\tusers = append(users, entry.User)\n\t}\n\n\tuserMap := userPrefixMap(users)\n\n\tif len(entries) != 0 {\n\t\tuserColumn := \"\"\n\t\tif len(userMap) > 1 {\n\t\t\tuserColumn = \"USER\\t\"\n\t\t}\n\n\t\tfmt.Fprintf(tabW, \"SIZE\\tBKEND\\tMODTIME\\t%sPATH\\tPIN\\tCACHED\\tHINT\\n\", userColumn)\n\t}\n\n\tfor _, entry := range entries {\n\t\tpinState := \" \" + pinStateToSymbol(entry.IsPinned, entry.IsExplicit)\n\n\t\tvar coloredPath string\n\t\tif entry.IsDir {\n\t\t\tcoloredPath = color.GreenString(entry.Path)\n\t\t} else {\n\t\t\tcoloredPath = color.WhiteString(entry.Path)\n\t\t}\n\n\t\tuserEntry := \"\"\n\t\tif len(userMap) > 1 {\n\t\t\tuserEntry = color.GreenString(userMap[entry.User]) + \"\\t\"\n\t\t}\n\n\t\tisCached, err := ctl.IsCached(entry.Path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcachedState := \"  \" + pinStateToSymbol(isCached, false)\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t%s%s\\t%s\\t%s\\t%s\\n\",\n\t\t\tcolorForSize(entry.Size)(humanize.Bytes(entry.Size)),\n\t\t\tcolorForSize(entry.Size)(humanize.Bytes(uint64(entry.CachedSize))),\n\t\t\tentry.ModTime.Format(\"2006-01-02 15:04:05 MST\"),\n\t\t\tuserEntry,\n\t\t\tcoloredPath,\n\t\t\tpinState,\n\t\t\tcachedState,\n\t\t\tformatHint(entry.Hint),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleTree(ctx *cli.Context, ctl *client.Client) error {\n\troot := \"/\"\n\tif ctx.NArg() > 0 {\n\t\troot = ctx.Args().First()\n\t}\n\n\tentries, err := ctl.List(root, -1)\n\tif err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"tree: %v\", err),\n\t\t}\n\t}\n\n\tshowTree(entries, &treeCfg{\n\t\tshowPin: true,\n\t})\n\treturn nil\n}\n\nfunc handleMkdir(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\tcreateParents := ctx.Bool(\"parents\")\n\n\tif err := ctl.Mkdir(path, createParents); err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"mkdir: %v\", err)}\n\t}\n\n\treturn nil\n}\n\nfunc handleShow(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\tisValidRef, cmt, err := ctl.CommitInfo(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isValidRef {\n\t\treturn handleShowCommit(ctx, ctl, cmt)\n\t}\n\n\treturn handleShowFileOrDir(ctx, ctl, path)\n}\n\nfunc handleShowCommit(ctx *cli.Context, ctl *client.Client, cmt *client.Commit) error {\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tprintPair := func(name string, val interface{}) {\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%v\\t\\n\",\n\t\t\tcolor.WhiteString(name),\n\t\t\tval,\n\t\t)\n\t}\n\n\tprintPair(\"Path\", cmt.Hash)\n\tprintPair(\"Tags\", strings.Join(cmt.Tags, \", \"))\n\tprintPair(\"ModTime\", cmt.Date.Format(time.RFC3339))\n\tprintPair(\"Message\", cmt.Msg)\n\ttabW.Flush()\n\n\tself, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdiff, err := ctl.MakeDiff(\n\t\tself.CurrentUser,\n\t\tself.CurrentUser,\n\t\tcmt.Hash.B58String()+\"^\",\n\t\tcmt.Hash.B58String(),\n\t\tfalse,\n\t)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !diff.IsEmpty() {\n\t\tfmt.Println()\n\t\tfmt.Println(\"Here's what changed in this commit:\")\n\t\tfmt.Println()\n\t\tprintDiffTree(diff, false)\n\t}\n\n\treturn nil\n}\n\nfunc handleShowFileOrDir(ctx *cli.Context, ctl *client.Client, path string) error {\n\tinfo, err := ctl.Stat(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif tmpl != nil {\n\t\treturn tmpl.Execute(os.Stdout, info)\n\t}\n\n\tisCached, err := ctl.IsCached(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpinState := yesify(info.IsPinned)\n\texplicitState := yesify(info.IsExplicit)\n\tcachedState := yesify(isCached)\n\n\tnodeType := \"file\"\n\tif info.IsDir {\n\t\tnodeType = \"directory\"\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tprintPair := func(name string, val interface{}) {\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%v\\t\\n\",\n\t\t\tcolor.WhiteString(name),\n\t\t\tval,\n\t\t)\n\t}\n\n\tprintPair(\"Path\", info.Path)\n\tprintPair(\"User\", info.User)\n\tprintPair(\"Type\", nodeType)\n\tprintPair(\"Size\", fmt.Sprintf(\"%s (%d bytes)\", humanize.Bytes(info.Size), info.Size))\n\tprintPair(\"Backend Size\", fmt.Sprintf(\"%s (%d bytes)\", humanize.Bytes(uint64(info.CachedSize)), info.CachedSize))\n\tprintPair(\"Inode\", strconv.FormatUint(info.Inode, 10))\n\tprintPair(\"Pinned\", pinState)\n\tprintPair(\"Explicit\", explicitState)\n\tprintPair(\"Cached\", cachedState)\n\tprintPair(\"IsRaw\", yesify(info.IsRaw))\n\tprintPair(\"ModTime\", info.ModTime.Format(time.RFC3339))\n\tprintPair(\"Tree Hash\", info.TreeHash.B58String())\n\tprintPair(\"Content Hash\", info.ContentHash.B58String())\n\tprintPair(\"Hint\", formatHint(info.Hint))\n\n\tif !info.IsDir {\n\t\tprintPair(\"Backend Hash\", info.BackendHash.B58String())\n\t} else {\n\t\tprintPair(\"Backend Hash\", \"-\")\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleEdit(ctx *cli.Context, ctl *client.Client) error {\n\trepoPath := ctx.Args().First()\n\n\texists, err := ctl.Exists(repoPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdata := []byte{}\n\tif exists {\n\t\tr, err := ctl.Cat(repoPath, false)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdefer util.Closer(r)\n\n\t\tdata, err = ioutil.ReadAll(r)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ttempPath, err := editToPath(data, path.Ext(repoPath))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer func() {\n\t\tif err := os.Remove(tempPath); err != nil {\n\t\t\tfmt.Printf(\"Failed to remove temp file: %v\\n\", err)\n\t\t}\n\t}()\n\n\treturn ctl.Stage(tempPath, repoPath)\n}\n\nfunc handleTouch(ctx *cli.Context, ctl *client.Client) error {\n\trepoPath := ctx.Args().First()\n\treturn ctl.Touch(repoPath)\n}\n\nfunc handleTrashList(ctx *cli.Context, ctl *client.Client) error {\n\troot := \"/\"\n\tif firstArg := ctx.Args().First(); firstArg != \"\" {\n\t\troot = firstArg\n\t}\n\n\tnodes, err := ctl.DeletedNodes(root)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, node := range nodes {\n\t\tfmt.Println(node.Path)\n\t}\n\n\treturn nil\n}\n\nfunc handleTrashRemove(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.Undelete(ctx.Args().First())\n}\n"
  },
  {
    "path": "cmd/help.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/toqueteos/webbrowser\"\n\t\"github.com/urfave/cli\"\n)\n\ntype helpEntry struct {\n\tUsage       string\n\tArgsUsage   string\n\tDescription string\n\tComplete    cli.BashCompleteFunc\n\tFlags       []cli.Flag\n}\n\nfunc die(msg string) {\n\t// be really pedantic when help is missing.\n\t// it is a developer mistake after all and should be catched early.\n\tpanic(msg)\n}\n\nfunc compressionHintsToBullets() string {\n\td := hints.Default()\n\ts := []string{}\n\n\tfor _, algo := range hints.CompressionHints() {\n\t\tsuffix := \"\"\n\t\tif d.CompressionAlgo == algo {\n\t\t\tsuffix = \" (default)\"\n\t\t}\n\n\t\ts = append(s, fmt.Sprintf(\"   * %s%s\", algo, suffix))\n\t}\n\n\treturn strings.Join(s, \"\\n\")\n}\n\nfunc encryptionHintsToBullets() string {\n\td := hints.Default()\n\ts := []string{}\n\n\tfor _, algo := range hints.EncryptionHints() {\n\t\tsuffix := \"\"\n\t\tif d.EncryptionAlgo == algo {\n\t\t\tsuffix = \" (default)\"\n\t\t}\n\t\ts = append(s, fmt.Sprintf(\"   * %s%s\", algo, suffix))\n\t}\n\n\treturn strings.Join(s, \"\\n\")\n}\n\nvar helpTexts = map[string]helpEntry{\n\t\"init\": {\n\t\tUsage:     \"Initialize a new repository.\",\n\t\tArgsUsage: \"<username>\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\t// duplicate of global repo, because it is convenient to\n\t\t\t// write »brig init --repo blah«.\n\t\t\tcli.StringFlag{\n\t\t\t\tName:   \"repo\",\n\t\t\t\tUsage:  \"Path to the repository. Only has effect for new daemons.\",\n\t\t\t\tValue:  \"\",\n\t\t\t\tEnvVar: \"BRIG_PATH\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"backend,b\",\n\t\t\t\tValue: \"httpipfs\",\n\t\t\t\tUsage: \"What data backend to use for the new repo. One of  `mock`, `httpipfs`. This cannot be changed later!\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"empty,e\",\n\t\t\t\tUsage: \"Do not create an initial README and no initial commit.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-logo,n\",\n\t\t\t\tUsage: \"Do not display the super pretty logo on init.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"ipfs-path-or-multiaddr\",\n\t\t\t\tUsage: \"Specify a path to an ipfs repo (/tmp/ipfs-repo) or a multiaddr to a running ipfs daemon (/ip4/127.0.0.1/tcp/5002)\",\n\t\t\t\tValue: \"\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-ipfs-setup\",\n\t\t\t\tUsage: \"Do not try to install and setup IPFS.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-ipfs-config\",\n\t\t\t\tUsage: \"Do no changes in the IPFS config that are necessary for brig. Use only when you know what you're doing.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-ipfs-optimization,o\",\n\t\t\t\tUsage: \"Do no changes in the IPFS config that will improve the performance of brig, but are not necessary to work.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Initialize a new repository with a certain backend.\n\n   If BRIG_PATH or --repo is set, the new repository will be created at this\n   place. If nothing is specified, the repo is created at \"~/.brig\".  If the\n   directory is not empty, brig will warn you about it and abort.\n\n   The user name can be specified as pretty much any string, but it is recommended\n   to use the special format »user@domain.something/resource«. This is similar to\n   XMPP IDs. Specifying a resource can help you use the same name for different\n   computers and specifying a domain makes it possible to indicate groups.  This\n   is especially important for commands like »brig net locate« but is not used\n   extensively by anything else yet.\n\nEXAMPLES:\n\n    # Easiest way to create a repository at /tmp/brig\n    $ brig init --repo /tmp/brig ali@wonderland.org/rabbithole\n\n`,\n\t},\n\t\"whoami\": {\n\t\tUsage:    \"Print the own remote identity including IPFS id, fingerprint and user name.\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"fingerprint,f\",\n\t\t\t\tUsage: \"Only print the own fingerprint\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"name,n\",\n\t\t\t\tUsage: \"Only print the own name\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"addr,a\",\n\t\t\t\tUsage: \"Only print the IPFS id portion of the fingerprint\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"key,k\",\n\t\t\t\tUsage: \"Only print the key portion of the fingerprint\",\n\t\t\t},\n\t\t},\n\t\tDescription: `This command prints your name, fingerprint and what store\n   you are looking at. When you initialized your repository, you chose\n   the name and a fingerprint (two longer hash values) was created for you.\n\nEXAMPLES:\n\n   # Show the fingerprint only:\n   $ brig whoami -f\n   QmUYz9dbqnYPyHCLUi7ghtiwFbdU93MQKFH4qg8iXHWcPV:W1q4vzbvLPUVwDUUXxjQfnuYJxq2CYqbeqXPSv7pUr5NcP\n`,\n\t},\n\t\"remote\": {\n\t\tUsage:    \"Add, list, remove and edit remotes.\",\n\t\tComplete: completeSubcommands,\n\t\tDescription: `\n   A remote is the data needed to contact other instances of brig in the web.\n   In order to add a remote, you need their fingerprint (as shown by »brig\n   whoami«). This fingerprint should be exchanged in prior over a secure side\n   channel (a secure instant messenger for example). Once both sides added each\n   other as remotes they are said to be »authenticated«.\n\n   Each remote can be configured further by specifying folders they may access\n   or special settings like auto-updating. See the individual commands for more\n   information.\n\n   Also see the »net locate« command for details about finding other remotes.\n\nEXAMPLES:\n\n   # Show a diff for each remote:\n   $ brig remote list --format '{{ .Name }}' | xargs -n 1 brig diff\n`,\n\t},\n\t\"remote.add\": {\n\t\tUsage:       \"Add/Update a remote under a handy name with their fingerprint.\",\n\t\tArgsUsage:   \"<name> <fingerprint>\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: \"\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"auto-update,a\",\n\t\t\t\tUsage: \"Take automatic updates from this node.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"accept-push,p\",\n\t\t\t\tUsage: \"Allow this remote to push to our state.\",\n\t\t\t},\n\t\t\tcli.StringSliceFlag{\n\t\t\t\tName:  \"folder,f\",\n\t\t\t\tUsage: \"Configure the folders this remote may see. Can be given more than once. If the first letter of the folder is »-« it is added as read-only.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"conflict-strategy,c\",\n\t\t\t\tUsage: \"Which conflict strategy to apply (either »marker«, »ignore« or »embrace«)\",\n\t\t\t\tValue: \"\",\n\t\t\t},\n\t\t},\n\t},\n\t\"remote.remove\": {\n\t\tUsage:       \"Remove a remote by name.\",\n\t\tArgsUsage:   \"<name>\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: \"Remove a remote by name.\",\n\t},\n\t\"remote.list\": {\n\t\tUsage:    \"List all remotes and their online status\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"offline,o\",\n\t\t\t\tUsage: \"Do not query the online status\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output according to a template\",\n\t\t\t},\n\t\t},\n\t\tDescription: `\n   This goes over every entry in your remote list and prints by default\n   the remote name, fingerprint, rountrip, last seen timestamp and settings.\n\n   You can format the output by using »--format« with one the following attributes:\n\n       * .Name\n       * .Fingerprint\n       * .Folders\n       * .AutoUpdate\n\n   The syntax of the template is borrowed from Go. You can read about the details here:\n   https://golang.org/pkg/text/template\n\n   Note that this command will try to peek the fingerprint of each node, even\n   if we did not authenticate him yet. If you do not want this, you should use\n   »--offline«.\n\nEXAMPLES:\n\n   $ brig rmt ls -f '{{ .Name }}'  # Show each remote name, line by line.\n`,\n\t},\n\t\"remote.clear\": {\n\t\tUsage:       \"Clear the complete remote list.\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: \"Note that you cannot undo this operation!\",\n\t},\n\t\"remote.ping\": {\n\t\tUsage:    \"Ping a remote.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `Ping a remote and check if we can reach them.\n\n   There is a small difference to the »remote list« command. »ping« will only\n   work if both sides authenticated each other and can thus be used as a test\n   for this.  Additionally, it shows the roundtrip time (i.e. the time the ping\n   request took to travel).\n\nEXAMPLES:\n\n   $ brig rmt ping\n`,\n\t},\n\t\"remote.edit\": {\n\t\tUsage:    \"Edit the current list.\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"yml,y\",\n\t\t\t\tValue: \"\",\n\t\t\t\tUsage: \"Directly overwrite remote list with yml file\",\n\t\t\t},\n\t\t},\n\t\tDescription: `\n   Edit the current list using $EDITOR as YAML file.\n   It will be updated once you exit your editor.`,\n\t},\n\t\"remote.auto-update\": {\n\t\tUsage:    \"Enable auto-updating for this remote\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `When enabled you will get updates shortly after this remote made it.\n\nEXAMPLES:\n\n    # Enable auto-updating both for bob and charlie.\n    $ brig remote auto-update enable bob charlie\n\n    # or shorter to prevent you from RSI:\n    brig rmt au e bob charlie\n`,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-initial-sync,n\",\n\t\t\t\tUsage: \"Do not sync initially when upon enabling.\",\n\t\t\t},\n\t\t},\n\t},\n\t\"remote.accept-push\": {\n\t\tUsage:    \"Allow receiving push requests from this remote.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `When enabled, other remotes can do »brig push <name>« to us.\n   When we receive a push request we will sync with this remote.\n\nEXAMPLES:\n\n   # Allow bob and charlie to push to us:\n   $ brig remote accept-push enable bob charlie\n\n   # or shorter to prevent you from RSI:\n   brig rmt ap e bob charlie\n`,\n\t},\n\t\"remote.conflict-strategy\": {\n\t\tUsage:    \"Change what conflict resolution strategy is used on conflicts.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `The conflict strategy defines how to act on sync conflicts.\n   There are three different types:\n\n   - marker: Create a conflict file with the remote's version. (default)\n   - ignore: Ignore the remote version completely and keep our version.\n   - embrace: Take the remote version and replace ours with it.\n\n   See also »brig config doc fs.sync.conflict_strategy«.\n   In case of an empty string, the config value above is used.\n\nEXAMPLES:\n\n   # Allow bob and charlie to push to us:\n   $ brig remote conflict-strategy embrace bob charlie\n\n   # or shorter to prevent you from RSI:\n   brig rmt cs embrace bob charlie\n`,\n\t},\n\t\"remote.folder\": {\n\t\tUsage:    \"Configure what folders a remote is allowed to see.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `\n   By default every remote is allowed to see all of your folders.\n   You might want to share only specific folders with certain remotes.\n   By adding folders to this list, you're limiting the nodes other remotes can see.\n\n   If you do not specify any subcommand, this is a shortcut for »brig rmt f ls«`,\n\t},\n\t\"remote.folder.add\": {\n\t\tUsage:    \"Add a remote folder for a specific remote.\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"read-only,r\",\n\t\t\t\tUsage: \"Add the folder as read-only.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"conflict-strategy,c\",\n\t\t\t\tUsage: \"What conflict strategy to use for this specific folder. Overwrites per-remote conflict strategy.\",\n\t\t\t\tValue: \"\",\n\t\t\t},\n\t\t},\n\t\tDescription: `If a folder is added as read-only, we do not accept changes when syncing from remotes.\n\nEXAMPLES:\n\n   $ brig remote folder add bob /public --read-only\n`,\n\t},\n\t\"remote.folder.set\": {\n\t\tUsage:    \"Update the settings of a remote folder.\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"read-only,r\",\n\t\t\t\tUsage: \"Add the folder as read-only.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"read-write,w\",\n\t\t\t\tUsage: \"Add the folder as read and writeable.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"conflict-strategy,c\",\n\t\t\t\tUsage: \"What conflict strategy to use for this specific folder. Overwrites per-remote conflict strategy.\",\n\t\t\t\tValue: \"\",\n\t\t\t},\n\t\t},\n\t\tDescription: `This works exactly like »add« but overwrites an existing folder.\n\nEXAMPLES:\n\n   $ brig remote folder set bob /public --read-only\n`,\n\t},\n\t\"remote.folder.remove\": {\n\t\tUsage:       \"Remove a folder from a specific remote. \",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: ``,\n\t},\n\t\"remote.folder.clear\": {\n\t\tUsage:       \"Clear all folders from a specific remote.\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: ``,\n\t},\n\t\"remote.folder.list\": {\n\t\tUsage:       \"List all allowed folders for a specific remote.\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: ``,\n\t},\n\t\"pin\": {\n\t\tUsage:     \"Commands to handle the pin state.\",\n\t\tArgsUsage: \"<file>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `Pinning a file to keep it in local storage.\n\n   When you retrieve a file from a remote machine, the file will be cached (or\n   maybe only blocks of it) for some time on your machine. If the file is not pinned,\n   it might be collected by the garbage collector on the next run. The garbage collector\n   is currently not invoked automatically, but can be activated via »brig gc«.\n\n   Note that you can also pin files that you do not have cached locally. The\n   pin does not download a file automatically currently. Until we have a\n   proper way to do this, you can use »brig cat <file> > /dev/null«.\n\n   This command contains the subcommand 'add', but for usability reasons, »brig\n   pin add <path>« is the same as »brig pin <path>«.\n\n   See also the »gc« command as counterpart of pinning.\n`,\n\t},\n\t\"pin.add\": {\n\t\tUsage:     \"Pin a file or directory to local storage\",\n\t\tArgsUsage: \"<file>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `A node that is pinned to local storage will not be\n   deleted by the garbage collector.`,\n\t},\n\t\"pin.remove\": {\n\t\tUsage:     \"Remove a pin\",\n\t\tArgsUsage: \"<file>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `A node that is pinned to local storage will not be\n   deleted by the garbage collector.`,\n\t},\n\t\"pin.repin\": {\n\t\tUsage:     \"Recaculate pinning based on fs.repin.{quota,min_depth,max_depth}\",\n\t\tArgsUsage: \"[<root>]\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `Trigger a repin calculation.\n\n   This uses the following configuration variables:\n\n   - fs.repin.quota: Max. amount of data to store in a repository.\n   - fs.repin.min_depth: Keep this many versions definitely pinned. Trumps quota.\n   - fs.repin.max_depth: Unpin versions beyond this depth definitely. Trumps quota.\n\n   If repin detects files that need to be unpinned, then it will first unpin all files\n   that are beyond the max depth setting. If this is not sufficient to stay under the quota,\n   it will delete old versions, layer by layer starting with the biggest version first.\n\n   If the optional root path was specified, the repin is only run in this part\n   of the filesystem. This can be used to give the repin algorithm a hint where\n   the space should be reclaimed.\n   `,\n\t},\n\t\"net\": {\n\t\tUsage:       \"Commands that change or query the network status.\",\n\t\tComplete:    completeSubcommands,\n\t\tDescription: `Most of these subcommands are somewhat low-level and are not often used.`,\n\t},\n\t\"net.offline\": {\n\t\tUsage:    \"Prevent any online usage.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `\n\n   The daemon will be running after going offline.\n   After going offline, other peers will not be able to\n   contact you any more and vice versa. The daemon keeps running in this\n   time and you can do all offline operations.\n\n   BUGS: This currently does not prevent other nodes to contact us.\n   Shutdown the IPFS daemon to be sure for now.`,\n\t},\n\t\"net.online\": {\n\t\tUsage:    \"Allow online usage.\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `\n\n   Opposite of »brig net offline«. This is the default state whenever the daemon starts.`,\n\t},\n\t\"net.status\": {\n\t\tUsage:       \"Check if you're connected to the global network.\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: `This will either print the string »online« or »offline«.`,\n\t},\n\t\"net.locate\": {\n\t\tUsage:     \"Try to locate a remote by their name or by a part of it.\",\n\t\tArgsUsage: \"<name-or-part-of-it>\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"t,timeout\",\n\t\t\t\tValue: \"10s\",\n\t\t\t\tUsage: \"Wait at most <n> seconds before bailing out\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"m,mask\",\n\t\t\t\tValue: \"exact,domain,user,email\",\n\t\t\t\tUsage: \"Indicate what part of the id you want to query for\",\n\t\t\t},\n\t\t},\n\t\tDescription: `brig is able to find the fingerprint of other users (that\n   are online) by a part of their name. See the help of »brig init« to see\n   out of what components the name is built of.\n\n   Each found item shows the name, the fingerprint and what part of their name\n   matched with your query.  Sometimes other peers are offline and cannot send\n   your their fingerprint. In this case the peer will still be shown, but as\n   »offline«.\n\n   IMPORTANT: Locating a remote DOES NOT replace proper authentication. It is\n   relatively easy to fake a fingerprint or even to have two peers with the same\n   name. Always authenticate your peer properly via a sidechannel (mail,\n   telephone, in person). »locate« is supposed to be only a help of discovering\n   other nodes.\n\n   Note that this operation might take quite a few seconds. Specifying »--timeout« can help,\n   but currently it still might take longer than the given timeout.`,\n\t},\n\t\"status\": {\n\t\tUsage: \"Show what has changed in the current commit.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"tree,t\",\n\t\t\t\tUsage: \"View the status as a tree listing.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `This a shortcut for »brig diff HEAD CURR«.\nSee the »diff« command for more information.`,\n\t},\n\t\"diff\": {\n\t\tUsage:     \"Show what changed between two commits.\",\n\t\tArgsUsage: \"[<REMOTE>] [<OTHER_REMOTE> [<REMOTE_REV> [<OTHER_REMOTE_REV>]]]]\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"list,l\",\n\t\t\t\tUsage: \"Output the diff as simple list (like status does by default)\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"offline,o\",\n\t\t\t\tUsage: \"Do no fetch operation before computing the diff.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"self,s\",\n\t\t\t\tUsage: \"Assume self as owner of both sides and compare only commits.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"missing,m\",\n\t\t\t\tUsage: \"Show missing files in diff output.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `View what sync would do when being called on the specified points in history.\n\n   Diff does not show what changed inside of the files, but shows how the files\n   themselves changed compared to the remote. To describe this, brig knows\n   seven different change types:\n\n   - Added (+): The file was added on the remote side.\n   - Removed (-): The file was removed on the remote side.\n   - Missing (_): The file is missing on the remote side (e.g. we added it)\n   - Moved (→): The file was moved to a new location.\n   - Ignored (*): This file was ignored because we chose to due to our settings.\n   - Mergeable (⇄): Both sides have changes, but they can be merged.\n   - Conflict (⚡): Both sides have changes but they conflict.\n\n   Before computing the diff, it will try to fetch the metadata from the peer,\n   if necessary. If you do not want this behaviour, use the »--offline« flag.\n\n   See »brig commit« for a general explanation of commits.\n\nEXAMPLES:\n\n   $ brig diff                       # Show diff from our CURR to our HEAD\n   $ brig diff alice                 # Show diff from our CURR to alice's last state\n   $ brig diff alice some_tag        # Show diff from our CURR to 'some_tag' of alice\n   $ brig diff alice bob HEAD HEAD   # Show diff between alice and bob's HEAD\n   $ brig diff -s HEAD CURR          # Show diff between HEAD and CURR of alice\n`,\n\t},\n\t\"tag\": {\n\t\tUsage:     \"Tag a commit with a specific name\",\n\t\tComplete:  completeArgsUsage,\n\t\tArgsUsage: \"<commit> <name>\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"delete,d\",\n\t\t\t\tUsage: \"Delete the tag instead of creating it\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Give a name to a commit, which is easier to remember than the hash.\n   You can use the name you gave in all places where brig requires you to specify a commit.\n\n   There are three special tags pre-defined for you:\n\n   - CURR: A reference to the staging commit.\n   - HEAD: The last fully completed commit.\n   - INIT: The very first commit in the chain.\n\n   Tags are case insensitive. That means that »HEAD« and »head« mean the same.\n   If you want to specify a commit by its index, you can use the special syntax\n   »commit[$idx]« where »$idx« can be a zero-indexed number. The first commit\n   has the index of zero.\n\n   If you want to access the previous commit, you can also use the special\n   syntax »$rev^« where »$rev« is any revision (either a commit hash, a tag\n   name or anything else).  The circumflex can be used more than once to go\n   back further.\n\nEXAMPLES:\n\n   $ brig tag SEfXUAH6AR my-tag-name   # Name the commit SEfXUAH6AR 'my-tag-name'.\n   $ brig tag -d my-tag-name           # Delete the tag name again.\n   $ brig tag HEAD^ previous-head      # Tag the commit before the current HEAD with \"previous-head\".\n   $ brig tag 'commit[1]' second       # Tag the commit directly after init with \"second\".\n`,\n\t},\n\t\"log\": {\n\t\tUsage:    \"Show all commits in a certain range\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output according to a template\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Show a list of commits from a start (--from) up to and end (--to).\n   If omitted »--from INIT --to CURR« will be assumed.\n\n   The output will show one commit per line, each including the (short) hash of the commit,\n   the date it was committed and the (optional) commit message.\n`,\n\t},\n\t\"fetch\": {\n\t\tUsage:     \"Fetch all metadata from another peer.\",\n\t\tArgsUsage: \"<remote>\",\n\t\tComplete:  completeArgsUsage,\n\t\tDescription: `This is a plumbing commands and most likely is only needed for debugging.\n\n   Get all the latest metadata of a certain peer.\n   This does not download any actual data, but only the metadata of it.\n   You have to be authenticated to the user to get his data.\n\n   Fetch will be done automatically by »sync« and »diff« and is usually\n   only helpful when doing it together with »become«.`,\n\t},\n\t\"sync\": {\n\t\tUsage:     \"Sync with another peer\",\n\t\tArgsUsage: \"<remote>\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-fetch,n\",\n\t\t\t\tUsage: \"Do not do a fetch before syncing.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"quiet,q\",\n\t\t\t\tUsage: \"Do not print what changed.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Sync and merge all metadata of another peer with our metadata.\n   After this operation you might see new files in your folder.\n   Those files were not downloaded yet and will be only on the first access.\n\n   It is recommended that your first check what will be synced with »brig diff«.\n\n   When passing no arguments, 'sync' will synchronize with all online remotes.\n   When passing a single argument, it will be used as the remote name to sync with.\n\n   The symbols in the output prefixing every path have the following meaning:\n\n    +   The file is only present on the remote side.\n    -   The file was removed on the remote side.\n    →   The file was moved to a new location.\n    *   This file was ignored because we chose to, due to our settings.\n    ⇄   Both sides have changes, but they are compatible and can be merged.\n    ⚡   Both sides have changes, but they are incompatible and result in conflicts.\n    _   The file is missing on the remote side.\n\n    See also »brig help diff« for some more details.\n    Files from other remotes are not pinned automatically.\n`,\n\t},\n\t\"push\": {\n\t\tUsage:    \"Ask a remote to sync with us.\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"dry-run,d\",\n\t\t\t\tUsage: \"Do not the actual push, but check if we may push.\",\n\t\t\t},\n\t\t},\n\t\tDescription: ``,\n\t},\n\t\"commit\": {\n\t\tUsage:    \"Create a new commit\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"message,m\",\n\t\t\t\tValue: \"\",\n\t\t\t\tUsage: \"Provide a meaningful commit message.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Create a new commit.\n\n   The message (»--message«) is optional. If you do not pass it, a message will\n   be generated which contains the current time. The commit history can be\n   viewed by »brig log«.\n\n   Think of commits as snapshots that can be created explicitly by you or even\n   automated in an interval. It is important to remember that »commit« will\n   only create a snapshot of the metadata. It is not guaranteed that you can\n   still access the actual data of very old versions (See »brig help )\n\n   You normally do not need to issue this command manually, since there is a\n   loop inside of brig that will auto-commit every 5 minute (default; see the\n   \"fs.autocommit.interval\" config key). Sync operations will also create\n   commits implicitly and every change from the gateway side will also result\n   in a commit.\n`,\n\t},\n\t\"reset\": {\n\t\tUsage:     \"Reset a file or the whole commit to an old state.\",\n\t\tArgsUsage: \"<commit> [<file>]\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"force,f\",\n\t\t\t\tUsage: \"Reset even when there are changes in the staging area\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Reset a file to an old state by specifying the commit it\n   should be reverted to. If you do not pass »<file>« the whole commit will be\n   filled with the contents of the old commit.\n\n   If you reset to an old commit and you have uncommitted changes, brig will warn you\n   about that and refuse the »reset« unless you pass »--force«.\n\n   Note for git users: It is not possible to go back in history and branch out\n   from there.  »reset« simply overwrites the staging commit (CURR) with an old\n   state, thus keeping all the previous history. You can always jump back to\n   the previous state. In other words: the reset operation of brig is not\n   destructive. If you notice that you do not like the state you've reseted to,\n   »brig reset head« will bring you back to the last known good state.\n`,\n\t},\n\t\"become\": {\n\t\tUsage:     \"View the data of another user\",\n\t\tArgsUsage: \"<remote>\",\n\t\tComplete:  completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"self,s\",\n\t\t\t\tUsage: \"Become self (i.e. the owner of the repository)\",\n\t\t\t},\n\t\t},\n\t\tDescription: `View the data of another user.\n\n   This is a plumbing command and meant for debugging.\n\n   You can temporarily explore the metadata of another user, by »becoming«\n   them. Once you became a certain user (which needs to be in your remote list\n   and on which you called »brig fetch« before), you can look around in the\n   data like in yours. You can also modify files, but keep in mind that they\n   will be reset on he next fetch.\n`,\n\t},\n\t\"history\": {\n\t\tUsage:     \"Show the history of a file or directory\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"empty,e\",\n\t\t\t\tUsage: \"Also show commits where nothing happens\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Show a list of all changes that were made to this path.\n\n   Not every change you ever made is recorded, but the change between each commit.\n   In other words: If you modify a file, delete it and re-add all in one commit, then\n   brig will see it only as one modification.\n\n   Every line shows the type of change and what commits were involved. If it's a\n   move, it will also show from and to where the path was moved.\n\n   Possible types of changes are:\n\n   - added: The file was added in this commit.\n   - moved: The file was modified in this commit.\n   - removed: The file was removed in this commit.\n   - modified: The file was modified in this commit.\n\n   Furthermore, the following combination are possible:\n\n   - moved & modified: The file was moved and modified.\n   - add & modified: The file was removed before and now re-added with different content.\n   - moved & removed: The file was moved to another location.\n`,\n\t},\n\t\"stage\": {\n\t\tUsage:     \"Add a local file to the storage.\",\n\t\tArgsUsage: \"(<local-path> [<path>]|--stdin <path>)\",\n\t\tComplete:  completeLocalPath,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"stdin,i\",\n\t\t\t\tUsage: \"Read data from stdin.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-dereference,P\",\n\t\t\t\tUsage: \"Never follow symbolic links.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"continue-on-error,c\",\n\t\t\t\tUsage: \"Continue staging even if some parts fail to stage.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Read a local file (given by »local-path«) and try to read\n   it. This is the conceptual equivalent of »git add«. The stream will be encrypted\n   and possibly compressed before saving it to IPFS.\n\n   If you omit »path«, the file will be added under the root\n   directory, with the basename of »local-path«. You can change this by\n   specifying where to save the local file by additionally passing »path«.\n\n   Additionally you can read the file from standard input if you pass »--stdin«.\n   In this case you pass only one path: The path where the stream is stored.\n\nEXAMPLES:\n\n   $ brig stage file.png                   # gets added as /file.png\n   $ brig stage file.png /photos/me.png    # gets added as /photos/me.png\n   $ cat file.png | brig --stdin /file.png # gets added as /file.png`,\n\t},\n\t\"touch\": {\n\t\tUsage:     \"Create an empty file under the specified path\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(true, false),\n\t\tDescription: `Convenience command for adding empty files.\n\n   If the file or directory already exists, the modification time is updated to\n   the current timestamp (like the original touch(1) does).\n`,\n\t},\n\t\"cat\": {\n\t\tUsage:     \"Output the content of a file to standard output\",\n\t\tArgsUsage: \"[<path>]\",\n\t\tComplete:  completeBrigPath(true, false),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"offline,o\",\n\t\t\t\tUsage: \"Only output the file if it is cached locally.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"stream,s\",\n\t\t\t\tUsage: \"Use experimental streaming implementation.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Decrypt and decompress the stream from IPFS and write it to standard output.\n\n   When specifying a directory instead of a file, the directory content will be\n   output as tar archive. This is useful when saving a whole directory tree to\n   disk (see also EXAMPLES).\n\n   When no path is specified, »/« is assumed and all contents are outputted as tar.\n\nEXAMPLES:\n\n   # Output a single file:\n   $ brig cat photo.png\n   # Create a tar from root and unpack it to the current directory.\n   $ brig cat | tar xfv -\n   # Create .tar.gz out of of the /photos directory.\n   $ brig cat photos | gzip -f > photos.tar.gz\n`,\n\t},\n\t\"show\": {\n\t\tUsage:     \"Show metadata of a file or directory or commit\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output according to a template\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Show all metadata attributes known for a file or directory.\n\n   Path: Absolute path of the file inside of the storage.\n   User: User which modified the file last.\n   Type: »file« or »directory«.\n   Size: Exact content size in bytes.\n   Hash: Hash of the node.\n   Inode: Internal inode. Also shown as inode in FUSE.\n   IsPinned: »yes« if the file is pinned, »no« else.\n   IsExplicit: »yes« if the file is pinned explicitly, »no« elsewise.\n   IsRaw: »no« if the file was encoded by brig (using encryption or compression).\n   ModTime: Timestamp of last modification.\n   ContentHash: Content hash of the file before encryption.\n   BackendHash: Hash of the node in ipfs (ipfs cat <this hash>)\n   TreeHash: Hash that is unique to this node.\n`,\n\t},\n\t\"rm\": {\n\t\tUsage:     \"Remove a file or directory\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `Remove a file or directory.\n\n   In contrast to the usual rm(1) there is no --recursive switch.\n   Directories are deleted recursively by default.\n\n   Even after deleting files, you will be able to access its history by using\n   the »brig history« command and bring them back via »brig reset«. If you want\n   to restore a deleted entry you are able to with the »brig reset« command.\n`,\n\t},\n\t\"ls\": {\n\t\tUsage:     \"List files and directories.\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(false, true),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.IntFlag{\n\t\t\t\tName:  \"depth,d\",\n\t\t\t\tUsage: \"Max depth to traverse\",\n\t\t\t\tValue: 1,\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"recursive,R\",\n\t\t\t\tUsage: \"Allow recursive traverse\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output according to a template\",\n\t\t\t},\n\t\t},\n\t\tDescription: `List files an directories starting with »path«.\n   If no »<path>« is given, the root directory is assumed. Every line of »ls«\n   shows a human readable size of each entry, the last modified time stamp, the\n   user that last modified the entry (if there's more than one) and if the\n   entry if pinned.\n`,\n\t},\n\t\"tree\": {\n\t\tUsage:     \"List files and directories in a tree\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(false, true),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.IntFlag{\n\t\t\t\tName:  \"depth, d\",\n\t\t\t\tUsage: \"Max depth to traverse\",\n\t\t\t\tValue: -1,\n\t\t\t},\n\t\t},\n\t\tDescription: `Show entries in a tree(1)-like fashion.\n`,\n\t},\n\t\"mkdir\": {\n\t\tUsage:     \"Create an empty directory\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(false, true),\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"parents, p\",\n\t\t\t\tUsage: \"Create parent directories as needed\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Create an empty directory at the specified »path«.\n   By default, parent directories are not created. You can use »--parents« to\n   enable this behaviour.\n`,\n\t},\n\t\"mv\": {\n\t\tUsage:     \"Move a file or directory from »src« to »dst«\",\n\t\tArgsUsage: \"<src> <dst>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `Move a file or directory from »src« to »dst.«\n\n   If »dst« already exists and is a file, it gets overwritten with »src«.\n   If »dst« already exists and is a directory, »basename(src)« is created inside,\n   (if the file inside does not exist yet)\n\n   It's not allowed to move a directory into itself.\n   This includes moving the root directory.\n`,\n\t},\n\t\"cp\": {\n\t\tUsage:     \"Copy a file or directory from »src« to »dst«\",\n\t\tArgsUsage: \"<src> <dst>\",\n\t\tComplete:  completeBrigPath(true, true),\n\t\tDescription: `Copy a file or directory from »src« to »dst«.\n\n   The semantics are the same as for »brig mv«, except that »cp« does not remove »src«.\n`,\n\t},\n\t\"edit\": {\n\t\tUsage:     \"Edit a file in place with $EDITOR\",\n\t\tArgsUsage: \"<path>\",\n\t\tComplete:  completeBrigPath(true, false),\n\t\tDescription: `Convenience command to read the file at »path« and display it in $EDITOR.\n\n   Once $EDITOR quits, the file is saved back.\n\n   If $EDITOR is not set, nano is assumed (I cried a little).\n   If nano is not installed this command will fail and you neet to set $EDITOR>\n\n`,\n\t},\n\t\"daemon\": {\n\t\tUsage:    \"Daemon management commands.\",\n\t\tComplete: completeSubcommands,\n\t\tDescription: `Commands to manually start or stop the daemon.\n\n   The daemon process is normally started whenever you issue the first command\n   (like »brig init« or later on a »brig ls«). This command will start it for\n   you in the background. Therefore it is seldom useful to use any of those\n   commands - unless you are debugging brig.\n`,\n\t},\n\t\"daemon.launch\": {\n\t\tUsage:    \"Start the daemon process in the foreground\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"trace,t\",\n\t\t\t\tUsage: \"Create tracing output suitable for `go tool trace`\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"s,log-to-stdout\",\n\t\t\t\tUsage: \"Log all messages to stdout instead of syslog\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Start the dameon process in the foreground.\n\n\nEXAMPLES:\n\n   $ brig daemon quit        # Shut down any previous daemon.\n   $ brig daemon launch -s   # Start in foreground and log to stdout.\n`,\n\t},\n\t\"daemon.quit\": {\n\t\tUsage:    \"Quit a running daemon process\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `Quit a running daemon process.\n\n   If no daemon process is running, it will tell you.\n`,\n\t},\n\t\"daemon.ping\": {\n\t\tUsage:    \"Check if the daemon is running and reachable\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `Send up to 100 ping packages to the daemon\n   and also print the roundtrip time for each.\n`,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.IntFlag{\n\t\t\t\tName:  \"c,count\",\n\t\t\t\tUsage: \"How many times to ping the daemon\",\n\t\t\t\tValue: 10,\n\t\t\t},\n\t\t},\n\t},\n\t\"config\": {\n\t\tUsage:    \"View and modify config options.\",\n\t\tComplete: completeSubcommands,\n\t\tDescription: `Commands for getting, setting and listing configuration values.\n\n   Each config key is a dotted path (»a.b.c«), associated with one key.  These\n   configuration values can help you to fine tune the behaviour of brig. In contrast\n   to many other programs the config is applied immediately after setting it (where possible).\n   Furthermore, each config key will describe itself and tell you if it needs a restart.\n\n   For more details on each config value, type 'brig config ls'.\n\n   Without further arguments »brig cfg« is a shortcut for »brig cfg ls«.\n`,\n\t},\n\t\"config.get\": {\n\t\tUsage:       \"Get a specific config key\",\n\t\tComplete:    completeArgsUsage,\n\t\tArgsUsage:   \"<key>\",\n\t\tDescription: `Show the current value of a key`,\n\t},\n\t\"config.doc\": {\n\t\tUsage:     \"Show the docs for this config key\",\n\t\tComplete:  completeArgsUsage,\n\t\tArgsUsage: \"<key>\",\n\t\tDescription: `For each config key a few metadata entries are assigned.\n\nThis includes a string describing the usage, the default value and an indicator\nif the service needs a restart when setting the value.\n\n`,\n\t},\n\t\"config.set\": {\n\t\tUsage:     \"Set a specific config key to a new value.\",\n\t\tComplete:  completeArgsUsage,\n\t\tArgsUsage: \"<key> <value>\",\n\t\tDescription: `Set the value at »key« to »value«.\n\n   Some config values have associated validators that will tell you if a value is not allowed.\n   Also you will be warned if the config key requires a restart.\n`,\n\t},\n\t\"config.list\": {\n\t\tUsage:       \"List all existing config keys\",\n\t\tComplete:    completeArgsUsage,\n\t\tDescription: `List all existing config keys.`,\n\t},\n\t\"fstab\": {\n\t\tUsage:       \"Manage mounts that will be mounted on startup of the daemon.\",\n\t\tDescription: \"This is the conceptual equivalent of the normal fstab(5).\",\n\t},\n\t\"fstab.add\": {\n\t\tUsage: \"Add a new mount entry to fstab\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"r,readonly\",\n\t\t\t\tUsage: \"Create the filesystem as readonly.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"offline,o\",\n\t\t\t\tUsage: \"Error out on files that are only remotely available.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"x,root\",\n\t\t\t\tUsage: \"Specify a root directory other than »/«.\",\n\t\t\t},\n\t\t},\n\t},\n\t\"fstab.remove\": {\n\t\tUsage: \"Remove a mount from fstab.\",\n\t},\n\t\"fstab.list\": {\n\t\tUsage: \"List all items in the filesystem table.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output according to a template.\",\n\t\t\t},\n\t\t},\n\t},\n\t\"fstab.apply\": {\n\t\tUsage:       \"Sync the reality with the mounts in fstab.\",\n\t\tDescription: \"Mounts and unmounts directories as necessary.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"u,unmount\",\n\t\t\t\tUsage: \"Unmount all mounts in the filesystem table.\",\n\t\t\t},\n\t\t},\n\t},\n\t\"mount\": {\n\t\tUsage:     \"Mount the contents of brig as FUSE filesystem to »mount_path«.\",\n\t\tArgsUsage: \"<mount_path>\",\n\t\tComplete:  completeArgsUsage,\n\t\tDescription: `Show the all files and directories inside a normal\n   directory. This directory is powered by a userspace filesystem which\n   allows you to read and edit data like you are use to from from normal\n   files. It is compatible to existing tools and allows brig to interact\n   with filebrowsers, video players and other desktop tools.\n\n   It is possible to have more than one mount. They will show the same content.\n\nCAVEATS\n\n   Editing large files will currently eat big amounts of memory, proportional\n   to the size of the file.  We advise you to use normal commands like »brig\n   cat« and »brig stage« until this is fixed.\n\n   At this time, the filesystem also not very robust to files that timeout or\n   error out otherwise. Consider this feature to be experimental while this has\n   not been worked upon.\n   `,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-mkdir\",\n\t\t\t\tUsage: \"Do not create the mount directory if it does not exist\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"r,readonly\",\n\t\t\t\tUsage: \"Create the filesystem as readonly\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"offline,o\",\n\t\t\t\tUsage: \"Error out on files that are only remotely available.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"x,root\",\n\t\t\t\tUsage: \"Create the filesystem as readonly\",\n\t\t\t},\n\t\t},\n\t},\n\t\"unmount\": {\n\t\tUsage:     \"Unmount a previously mounted directory\",\n\t\tArgsUsage: \"<mount_path>\",\n\t\tComplete:  completeArgsUsage,\n\t\tDescription: `Unmount a previously mounted directory.\n\n   All mounts get automatically unmounted once the daemon shuts down.\n   In case the daemon crashed or failed to unmount, you can manually\n   use this command to reclaim the mount point:\n\n   $ fusermount -u -z /path/to/mount\n`,\n\t},\n\t\"version\": {\n\t\tUsage:    \"Show the version of brig and IPFS\",\n\t\tComplete: completeArgsUsage,\n\t\tDescription: `Show the version of brig and IPFS.\n\n   This includes the client and server version of brig.\n   These two values should be ideally exactly the same to avoid problems.\n\n   Apart from that, the version of IPFS is shown here.\n\n   If available, also the git rev is included. This is useful to get the exact\n   state of the software in case of problems.\n\n   Additionally the build time of the binary is shown.\n   Please include this information when reporting a bug.\n`,\n\t},\n\t\"gc\": {\n\t\tUsage:    \"Trigger the garbage collector\",\n\t\tComplete: completeArgsUsage,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"aggressive,a\",\n\t\t\t\tUsage: \"Also run the garbage collector on all file systems immediately\",\n\t\t\t},\n\t\t},\n\t\tDescription: `Manually trigger the garbage collector.\n\n   Strictly speaking there are two garbage collectors in the system.  The\n   garbage collector of IPFS cleans up all unpinned files from local storage.\n   This still means that the objects referenced there can be retrieved from\n   other network nodes, but not locally anymore. This might save alot of space.\n\n   The other garbage collector is not very important to the user and cleans up\n   unused references inside of the metadata store. It is only run if you pass\n   »--aggressive«.\n`,\n\t},\n\t\"docs\": {\n\t\tUsage: \"Open the online documentation in your default web browser.\",\n\t},\n\t\"trash\": {\n\t\tUsage: \"Control the trash bin contents.\",\n\t\tDescription: `\n\n   The trash bin is a convenience interface to list and restore deleted files.\n   It will list all files that were deleted and were not overwritten by other files.\n        `,\n\t},\n\t\"trash.list\": {\n\t\tUsage: \"List all items in the trash bin.\",\n\t},\n\t\"trash.undelete\": {\n\t\tUsage: \"Restore a path from the trashbin.\",\n\t},\n\t\"gateway\": {\n\t\tUsage: \"Control the HTTP/S gateway service.\",\n\t\tDescription: `The gateway serves a UI and download endpoints over a browser.\n   This enables users that do not use brig directly to still browse, edit and download files\n   For having access to the gateway, users need to be created. By default no users are created.\n   Create an »admin« user (password is also »admin«) with this command:\n\n     $ brig gw user add admin admin --role-admin\n\n   Most of the gateway is configured exclusively via config variables.  Please\n   refer to the individual config keys for more information (they all start\n   with »gateway.«). The »brig gw status« command will also give you a nice, readable\n   overview of what the current state is and how you can improve it.\n`,\n\t},\n\t\"gateway.start\": {\n\t\tUsage: \"Start the gateway.\",\n\t\tDescription: `\n   It is recommended to check the state with a »brig gw status« afterwards.\n   This will give you important hints if something went wrong or needs attention.\n`,\n\t},\n\t\"gateway.stop\": {\n\t\tUsage: \"Stop the gateway.\",\n\t},\n\t\"gateway.status\": {\n\t\tUsage: \"Print a diagnostic report on the status of the gateway.\",\n\t},\n\t\"gateway.url\": {\n\t\tUsage: \"Helper to print the URL to a named file or directory.\",\n\t},\n\t\"gateway.user\": {\n\t\tUsage: \"Control the user account that can access the HTTP gateway.\",\n\t},\n\t\"gateway.user.add\": {\n\t\tUsage:     \"Add a new gateway user.\",\n\t\tArgsUsage: \"<user> [<password> <permitted folders list>]\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"role-admin,a\",\n\t\t\t\tUsage: \"Add this user as admin (short for »-r 'fs.view,fs.edit,fs.download,remotes.view,remotes.edit'«)\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"role-editor,b\",\n\t\t\t\tUsage: \"Add this user as collaborator (short for »-r 'fs.view,fs.edit,fs.download,remotes.view'«)\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"role-collaborator,c\",\n\t\t\t\tUsage: \"Add this user as collaborator (short for »-r 'fs.view,fs.edit,fs.download'«)\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"role-viewer,d\",\n\t\t\t\tUsage: \"Add this user as viewer (short for »-r 'fs.view,fs.download'«)\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"role-link-only,e\",\n\t\t\t\tUsage: \"Add this user as linker (short for »-r 'fs.download'«)\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"rights,r\",\n\t\t\t\tUsage: \"Comma separated list of rights of this user.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `\n   The rights are as follows:\n\n   fs.view: View and list all files.\n   fs.edit: Edit and create new files.\n   fs.download: Download file content.\n   remotes.view: View the remotes tab.\n   remotes.edit: Edit the remotes tab.\n\n   If the folder list is empty, this user can access all files.\n   If it is non-empty, the user can only access the files including and below all folders.\n`,\n\t},\n\t\"gateway.user.remove\": {\n\t\tUsage: \"Remove a gateway user by its name.\",\n\t},\n\t\"gateway.user.list\": {\n\t\tUsage: \"List all gateway users.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"format,f\",\n\t\t\t\tUsage: \"Format the output by a template.\",\n\t\t\t},\n\t\t},\n\t\tDescription: `\n   List all gateway users.\n\n   The keys accepted by »--format« are:\n\n   - Name: Name of the user.\n   - PasswordHash: Hashed password.\n   - Salt: Salt of the password.\n   - Folders: A list of folders this users may access (might be empty).\n   - Rights: A list of rights this users has (might be empty).\n`,\n\t},\n\t\"pack-repo\": {\n\t\tArgsUsage: \"<archive-path>\",\n\t\tDescription: `\n    Pack a repo into an encrypted tar archive.\n\n    This is mainly useful to lock the repository after using it.\n    The encryption key is derived from the password that you either...\n\n    * ...enter on stdin.\n    * ...specify with --password-command.\n    * ...specify with --password-file.\n\n    If you move a brig repository between computers or if you use brig\n    in an untrusted environment, then this command is for you.\n\n    By default, the archive is written next to the repository as\n    »$BRIG_PATH.repopack«. If --no-remove is specified the repository\n    is not removed upon successful completion.\n\nEXAMPLES:\n\n    # Pack a repository, read password from 'pass' and write to usb stick.\n    # Also removes the original repository!\n    brig --repo /tmp/repo pack-repo \\\n        /mnt/usb/brig.repopack \\\n        --password-command \"pass my/password/path\"\n`,\n\t\tUsage: \"Create an encrypted archive of the brig repo.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"password-command,p\",\n\t\t\t\tUsage: \"Execute this command to get the password from its stdout.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"password-file,P\",\n\t\t\t\tUsage: \"Read this file to get the password.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-remove,n\",\n\t\t\t\tUsage: \"Do not remove the repository after successfully packing\",\n\t\t\t},\n\t\t},\n\t},\n\t\"unpack-repo\": {\n\t\tArgsUsage: \"<archive-path>\",\n\t\tDescription: `\n    The unpack-repo is the inverse of the pack-repo command.\n\nEXAMPLES:\n\n    # Unpack a repository from an usb stick and write to a location\n    # of your choice. Password is read from 'pass'. The archive is\n    # removed upon successful completion.\n\t#\n\t# Specifying --repo is not necessary, but can be used to specify\n\t# where the repository should be unpacked to.\n    brig --repo /tmp/repo unpack-repo \\\n        /mnt/usb/brig.repopack \\\n        --password-command \"pass my/password/path\"\n`,\n\t\tUsage: \"Unpack an encrypted archive of a brig repo.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"password-command,p\",\n\t\t\t\tUsage: \"Execute this command to get the password from its stdout.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"password-file,P\",\n\t\t\t\tUsage: \"Read this file to get the password.\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"no-remove,n\",\n\t\t\t\tUsage: \"Do not remove the archive after successfully unpacking\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug\": {\n\t\tUsage: \"Various debbugging utilities. Use with care.\",\n\t},\n\t\"debug.decode-stream\": {\n\t\tUsage: \"Decode a brig stream\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"key\",\n\t\t\t\tUsage: \"What key to use for encryption (base58 encoded)\",\n\t\t\t\tValue: \"4F7BsTMVPKFshM1MwLf6y23cid6fL3xMpazVoF9krzUw\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"raw\",\n\t\t\t\tUsage: \"Specify if this is a raw stream\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.encode-stream\": {\n\t\tUsage: \"Encode a brig stream\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"key\",\n\t\t\t\tUsage: \"What key to use for encryption (base58 encoded)\",\n\t\t\t\tValue: \"4F7BsTMVPKFshM1MwLf6y23cid6fL3xMpazVoF9krzUw\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"encryption\",\n\t\t\t\tUsage: \"What encryption type to use\",\n\t\t\t\tValue: string(hints.EncryptionAES256GCM),\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"compression,c\",\n\t\t\t\tUsage: \"What compression algorithm to use\",\n\t\t\t\tValue: string(hints.CompressionGuess),\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.ten-source\": {\n\t\tUsage: \"Produce a repeating stream of 0 to 9 numbers of a given size\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"size,s\",\n\t\t\t\tUsage: \"Size of the stream in bytes (can be followed by a multipler K, M, or G)\",\n\t\t\t\tValue: \"256M\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.ten-sink\": {\n\t\tUsage: \"Check if the stream received over stdin is what ten-source produced\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"size,s\",\n\t\t\t\tUsage: \"Expected size of the stream in bytes (can be followed by a multipler K, M, or G)\",\n\t\t\t\tValue: \"256M\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.fusemock\": {\n\t\tUsage:       \"Start a fuse mock server (use only if you know what you do)\",\n\t\tDescription: \"Hint: You don't.\",\n\t\tFlags: []cli.Flag{\n\t\t\t// NOTE: Changing things need to be also changed in fuse/fusetest.\n\t\t\t//       We rely on the argument names there.\n\t\t\tcli.StringFlag{\n\t\t\t\tName:     \"mount-path,m\",\n\t\t\t\tUsage:    \"Path to fuse mount\",\n\t\t\t\tValue:    \"\",\n\t\t\t\tRequired: true,\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:     \"catfs-path,c\",\n\t\t\t\tUsage:    \"Where to store metadata\",\n\t\t\t\tValue:    \"\",\n\t\t\t\tRequired: true,\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"url\",\n\t\t\t\tUsage: \"What compression hint to specify ('*' for all)\",\n\t\t\t\tValue: \"unix:/tmp/fuse-mock.socket\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"ipfs-path-or-multiaddr,i\",\n\t\t\t\tUsage: \"Path to IPFS, if you want to use it. Empty for memory only.\",\n\t\t\t\tValue: \"\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"mount-offline,o\",\n\t\t\t\tUsage: \"Mount offline\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"mount-ro,r\",\n\t\t\t\tUsage: \"Mount read-only\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.iobench\": {\n\t\tUsage: \"Benchmark I/O on your system\",\n\t\tDescription: `\nThis is a benchmark utility for the streaming system at the heart of brig.  If\ninvoked with no argument, it will attempt to do all possible benchmarks.  All\nbenchmarks are run in /tmp under the assumption that a tmpfs is located there.\nIf so, you might want to double check that you have enough memory. How much\nis enough depends on many factors, just try it out. :)\n\nIndividual benchmarks can be selected using the '--bench' parameter. It can be\nspecified several times. Check 'brig debug iobench ls' for a full list of\npossible benchmarks.\n\nEach benchmark is run '--sample' times and uses an artificial input with\n'--size' bytes. The input type can be selected by appending one of the\nfollowing names to the benchmark names separated by a colon (':'):\n\n\t* ten: easy to compress data.\n\t* mixed: easy to compress data that is mixed with streaks of hard to\n\t  compress data. The ratio of easy to hard is roughly 50%.\n\t* random: Pseudo random data. Terrible to compress.\n\nBy default each benchmark is run several times for each possible hint combination.\nIf you do not want this, specify the desired algorithm using the '--compression'\nand '--encryption' parameters.\n\nIf you want to parse the output of the benchmark, you can use '--json'.\n`,\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"json,j\",\n\t\t\t\tUsage: \"Output the benchmark results as parsable JSON\",\n\t\t\t},\n\t\t\tcli.StringSliceFlag{\n\t\t\t\tName:  \"bench,b\",\n\t\t\t\tUsage: \"Which benchmarks to be run (can be given multiple times)\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"size,s\",\n\t\t\t\tUsage: \"How big the testdata should be\",\n\t\t\t\tValue: \"256M\",\n\t\t\t},\n\t\t\tcli.IntFlag{\n\t\t\t\tName:  \"samples,S\",\n\t\t\t\tUsage: \"How many time to run each benchmark\",\n\t\t\t\tValue: 3,\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"compression,c\",\n\t\t\t\tUsage: \"What compression hint to specify ('*' for all)\",\n\t\t\t\tValue: \"*\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"encryption,e\",\n\t\t\t\tUsage: \"What encryption hint to specify ('*' for all)\",\n\t\t\t\tValue: \"*\",\n\t\t\t},\n\t\t},\n\t},\n\t\"debug.iobench.list\": {\n\t\tUsage: \"Just list all benchmark names\",\n\t},\n\t\"debug.pprof-port\": {\n\t\tUsage: \"Print the pprof port of the daemon.\",\n\t\tDescription: `\n   This is useful if there is a performance issue (high cpu consumption in idle e.g.).\n   See here for some examples of what you can do: https://golang.org/pkg/net/http/pprof\n\nEXAMPLES:\n\n   # Show a graph with a cpu profile of the last 30s:\n   go tool pprof -web \"http://localhost:$(brig d p)/debug/pprof/profile?seconds=30\"\n`,\n\t},\n\t\"hints\": {\n\t\tUsage: \"Manage hints for file or directories\",\n\t\tDescription: fmt.Sprintf(`\n\n   Hints can be used to change the default behavior for brig.\n   You can for example use it to change the default encryption algorithm\n   for certain files. Hints are always associated to a path. If a hint is\n   set to a path where a directory is located, then all files in it inherit\n   this hint - except there is another hint somewhere lower in the hierarchy.\n\n   Note that hints are only applied on the next file change. Files that have\n   differing settings will not be affected by changing a hint. If you want\n   an immediate effect you should use »brig hints set --recode <path>«, or,\n   if you want to do it a later point, »brig hints recode <path>«.\n\n   The available compression algorithms are:\n\n%s\n\n   The available encryption algorithms are:\n\n%s\n\nEXAMPLES:\n\n   $ brig mkdir /public\n   $ echo \"meow\" | brig stage --stdin /public/cat-meme.png\n   $ brig hints set /public --compression none --encryption none\n   $ brig hints\n   PATH     ENCRYPTION  COMPRESSION\n   /        aes256gcm   guess\n   /public  none        none\n   # If a file could be streamed by »ipfs cat« alone,\n   # then the »IsRaw« attribute is true.\n   $ brig info --format '{{ .IsRaw }}' /public/cat-meme.png\n`, compressionHintsToBullets(), encryptionHintsToBullets()),\n\t},\n\t\"hints.set\": {\n\t\tUsage:       \"Set a hint for a file or directory\",\n\t\tDescription: \"See help of »brig hints«\",\n\t\tArgsUsage:   \"<path>\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"recode,r\",\n\t\t\t\tUsage: \"Recode the stream immediately.\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"compression,c\",\n\t\t\t\tUsage: \"What compression algorithm to use for this hint\",\n\t\t\t},\n\t\t\tcli.StringFlag{\n\t\t\t\tName:  \"encryption,e\",\n\t\t\t\tUsage: \"What encryption algorithm to use for this hint\",\n\t\t\t},\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"force,f\",\n\t\t\t\tUsage: \"Also create hint if there is no such file or directory\",\n\t\t\t},\n\t\t},\n\t},\n\t\"hints.list\": {\n\t\tUsage:       \"List all existing hints.\",\n\t\tDescription: \"See help of »brig hints«\",\n\t},\n\t\"hints.remove\": {\n\t\tArgsUsage: \"<path>\",\n\t\tUsage:     \"Remove an existing hint.\",\n\t},\n\t\"hints.recode\": {\n\t\tArgsUsage: \"[<path>]\",\n\t\tUsage:     \"Recode the streams in <path>. If no path given all files are recoded.\",\n\t},\n\t\"bug\": {\n\t\tUsage: \"Print a template for bug reports.\",\n\t\tFlags: []cli.Flag{\n\t\t\tcli.BoolFlag{\n\t\t\t\tName:  \"stdout,s\",\n\t\t\t\tUsage: \"Always print the report to stdout; do not open a browser\",\n\t\t\t},\n\t\t},\n\t},\n}\n\nfunc injectHelp(cmd *cli.Command, path string) {\n\thelp, ok := helpTexts[path]\n\tif !ok {\n\t\tdie(fmt.Sprintf(\"bug: no such help entry: %v\", path))\n\t}\n\n\tcmd.Usage = help.Usage\n\tcmd.ArgsUsage = help.ArgsUsage\n\tcmd.Description = help.Description\n\tcmd.BashComplete = help.Complete\n\tcmd.Flags = help.Flags\n}\n\nfunc translateHelp(cmds []cli.Command, prefix []string) {\n\tfor idx := range cmds {\n\t\tpath := append(append([]string{}, prefix...), cmds[idx].Name)\n\t\tinjectHelp(&cmds[idx], strings.Join(path, \".\"))\n\t\ttranslateHelp(cmds[idx].Subcommands, path)\n\t}\n}\n\n// TranslateHelp fills in the usage and description for each command.\n// This is separated from the command definition to make things more readable,\n// and separate logic from the (lengthy) documentation.\nfunc TranslateHelp(cmds []cli.Command) []cli.Command {\n\ttranslateHelp(cmds, nil)\n\treturn cmds\n}\n\n// handleOpenHelp opens the online documentation a webbrowser.\nfunc handleOpenHelp(ctx *cli.Context) error {\n\turl := \"https://brig.readthedocs.org\"\n\tif err := webbrowser.Open(url); err != nil {\n\t\tfmt.Printf(\"could not open browser for you: %v\\n\", err)\n\t\tfmt.Printf(\"Please open this link yourself:\\n\\n\\t%s\\n\", url)\n\t} else {\n\t\tfmt.Printf(\"A new tab was opened in your browser.\\n\")\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/init.go",
    "content": "package cmd\n\nimport (\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/urfave/cli\"\n)\n\n// Init creates a new brig repository at `basePath` with specified options.\nfunc Init(ctx *cli.Context, ipfsPathOrMultiaddr string, opts repo.InitOptions) error {\n\tif err := repo.Init(opts); err != nil {\n\t\treturn e.Wrapf(err, \"repo-init\")\n\t}\n\n\t// Remember the ipsf connection details,\n\t// so we can start it later.\n\treturn repo.OverwriteConfigKey(\n\t\topts.BaseFolder,\n\t\t\"daemon.ipfs_path_or_url\",\n\t\tipfsPathOrMultiaddr,\n\t)\n}\n"
  },
  {
    "path": "cmd/inode_other.go",
    "content": "// +build windows\n\npackage cmd\n\n// indodeString convert file path a hardware dependent string\n// unfortunately on non unix platforms DeviceID and Inode are unavailable\n// so we return back the file path\nfunc inodeString(path string) (string, error) {\n\treturn path, nil\n}\n"
  },
  {
    "path": "cmd/inode_unix.go",
    "content": "// +build !windows\n\npackage cmd\n\nimport (\n\t\"fmt\"\n\t\"golang.org/x/sys/unix\"\n)\n\n// indodeString convert file path a hardware dependent string in the form DeviceID/Inode\nfunc inodeString(path string) (string, error) {\n\tvar stat unix.Stat_t\n\tif err := unix.Lstat(path, &stat); err != nil {\n\t\treturn path, err\n\t}\n\ts := fmt.Sprintf(\"%d/%d\", stat.Dev, stat.Ino)\n\treturn s, nil\n}\n"
  },
  {
    "path": "cmd/iobench.go",
    "content": "package cmd\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/dustin/go-humanize\"\n\t\"github.com/sahib/brig/bench\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/urfave/cli\"\n)\n\nfunc allBenchmarks() []string {\n\tnames := []string{}\n\n\tfor _, benchName := range bench.BenchmarkNames() {\n\t\tfor _, inputName := range bench.InputNames() {\n\t\t\tnames = append(names, fmt.Sprintf(\"%s:%s\", benchName, inputName))\n\t\t}\n\t}\n\n\treturn names\n}\n\nfunc printStats(s bench.Stats) {\n\tfmt.Println()\n\tfmt.Println(\"Time:         \", s.Time.Format(time.RFC3339))\n\tfmt.Println(\"CPU Name:     \", s.CPUBrandName)\n\tfmt.Println(\"Logical Cores:\", s.LogicalCores)\n\tfmt.Println(\"Has AESNI:    \", yesify(s.HasAESNI))\n\tfmt.Println()\n}\n\ntype benchmarkRun struct {\n\tStats   bench.Stats    `json:\"stats\"`\n\tResults []bench.Result `json:\"results\"`\n}\n\nfunc handleIOBench(ctx *cli.Context) error {\n\trun := benchmarkRun{\n\t\tStats: bench.FetchStats(),\n\t}\n\n\tbenchmarks := ctx.StringSlice(\"bench\")\n\tif len(benchmarks) == 0 {\n\t\tlog.Infof(\"running all benchmarks...\")\n\t\tbenchmarks = allBenchmarks()\n\t}\n\n\tisJSON := ctx.Bool(\"json\")\n\tif !isJSON {\n\t\tprintStats(run.Stats)\n\t}\n\n\tinputSize, err := humanize.ParseBytes(ctx.String(\"size\"))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsamples := ctx.Int(\"samples\")\n\tif samples <= 0 {\n\t\treturn fmt.Errorf(\"samples must be at least 1\")\n\t}\n\n\tlog.SetLevel(log.WarnLevel)\n\n\tcfgs := []bench.Config{}\n\tfor _, benchmark := range benchmarks {\n\t\tbenchSplit := strings.SplitN(benchmark, \":\", 2)\n\n\t\tbenchInput := \"ten\"\n\t\tbenchName := benchSplit[0]\n\t\tif len(benchSplit) >= 2 {\n\t\t\tbenchInput = benchSplit[1]\n\t\t}\n\n\t\tcfgs = append(cfgs, bench.Config{\n\t\t\tBenchName:   benchName,\n\t\t\tInputName:   benchInput,\n\t\t\tSize:        inputSize,\n\t\t\tSamples:     samples,\n\t\t\tEncryption:  ctx.String(\"encryption\"),\n\t\t\tCompression: ctx.String(\"compression\"),\n\t\t})\n\t}\n\n\tvar baselineTiming time.Duration\n\tvar lastSection string\n\n\terr = bench.Benchmark(cfgs, func(result bench.Result) {\n\t\tsection := fmt.Sprintf(\n\t\t\t\"%s:%s\",\n\t\t\tresult.Config.InputName,\n\t\t\tresult.Config.BenchName,\n\t\t)\n\n\t\tif section != lastSection {\n\t\t\tif !isJSON {\n\t\t\t\tdrawHeading(section)\n\t\t\t}\n\n\t\t\t// First in list is always the none-none benchmark.\n\t\t\tbaselineTiming = result.Took\n\t\t\tlastSection = section\n\t\t}\n\n\t\tif !isJSON {\n\t\t\tdrawBench(result, baselineTiming, inputSize)\n\t\t}\n\n\t\trun.Results = append(run.Results, result)\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isJSON {\n\t\tenc := json.NewEncoder(os.Stdout)\n\t\tenc.SetIndent(\"\", \"    \")\n\t\tenc.Encode(run)\n\t}\n\n\treturn nil\n}\n\nfunc drawHeading(heading string) {\n\tfmt.Println()\n\tfmt.Println(heading)\n\tfmt.Println(strings.Repeat(\"=\", len(heading)))\n\tfmt.Println()\n}\n\nfunc drawBench(result bench.Result, ref time.Duration, inputSize uint64) {\n\tfmt.Printf(\n\t\t\"%-45s %9.2f MB/s %20s %8.2f%% %6d allocs %8.2f%% zipped\\n\",\n\t\tresult.Name,\n\t\tresult.Throughput,\n\t\tfmt.Sprintf(\n\t\t\t\"%.2fMB/%v\",\n\t\t\tfloat64(inputSize)/1000/1000,\n\t\t\tresult.Took.Round(time.Millisecond),\n\t\t),\n\t\t100*float64(ref)/float64(result.Took),\n\t\tresult.Allocs,\n\t\tresult.CompressionRate*100,\n\t)\n}\n\nfunc handleIOBenchList(ctx *cli.Context) error {\n\tfor _, name := range allBenchmarks() {\n\t\tfmt.Println(name)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/log.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/urfave/cli\"\n)\n\nfunc logVerbose(ctx *cli.Context, format string, args ...interface{}) {\n\tif !ctx.GlobalBool(\"verbose\") {\n\t\treturn\n\t}\n\n\tif !strings.HasSuffix(format, \"\\n\") {\n\t\tformat = format + \"\\n\"\n\t}\n\n\tfmt.Fprintf(os.Stderr, \"-- \"+format, args...)\n}\n"
  },
  {
    "path": "cmd/net_handlers.go",
    "content": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/cmd/tabwriter\"\n\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/urfave/cli\"\n\tyml \"gopkg.in/yaml.v2\"\n)\n\nfunc handleOffline(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.NetDisconnect()\n}\n\nfunc handleOnline(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.NetConnect()\n}\n\nfunc handleIsOnline(ctx *cli.Context, ctl *client.Client) error {\n\tself, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif self.IsOnline {\n\t\tfmt.Println(color.GreenString(\"online\"))\n\t} else {\n\t\tfmt.Println(color.RedString(\"offline\"))\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteList(ctx *cli.Context, ctl *client.Client) error {\n\tif ctx.Bool(\"offline\") {\n\t\treturn handleRemoteListOffline(ctx, ctl)\n\t}\n\n\treturn handleRemoteListOnline(ctx, ctl)\n}\n\nfunc nFoldersToIcon(nFolders int) string {\n\tif nFolders == 0 {\n\t\treturn color.GreenString(\"*\")\n\t}\n\n\treturn color.YellowString(fmt.Sprintf(\"%d\", nFolders))\n}\n\nfunc handleRemoteListOffline(ctx *cli.Context, ctl *client.Client) error {\n\tremotes, err := ctl.RemoteLs()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"remote ls: %v\", err)\n\t}\n\n\tif ctx.IsSet(\"format\") {\n\t\ttmpl, err := readFormatTemplate(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor _, remote := range remotes {\n\t\t\tif err := tmpl.Execute(os.Stdout, remote); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tif len(remotes) == 0 {\n\t\tfmt.Println(\"No remotes yet. Use `brig remote add »user« »fingerprint«` to add some.\")\n\t\treturn nil\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tfmt.Fprintln(tabW, \"NAME\\tFINGERPRINT\\tAUTO-UPDATE\\tACCEPT PUSH\\tCONFLICT STRATEGY\\tFOLDERS\\t\")\n\n\tfor _, remote := range remotes {\n\t\tcs := remote.ConflictStrategy\n\t\tif cs == \"\" {\n\t\t\tcs = \"marker\"\n\t\t}\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n\",\n\t\t\tremote.Name,\n\t\t\tremote.Fingerprint,\n\t\t\tyesOrNo(remote.AutoUpdate),\n\t\t\tyesOrNo(remote.AcceptPush),\n\t\t\tcs,\n\t\t\tnFoldersToIcon(len(remote.Folders)),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleRemoteListOnline(ctx *cli.Context, ctl *client.Client) error {\n\tpeers, err := ctl.RemoteOnlineList()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tif len(peers) == 0 {\n\t\tfmt.Println(\"Remote list is empty. Nobody there to ping.\")\n\t\treturn nil\n\t}\n\n\tif !ctx.IsSet(\"format\") {\n\t\tfmt.Fprintln(tabW, \"NAME\\tFINGERPRINT\\tROUNDTRIP\\tONLINE\\tAUTHENTICATED\\tLASTSEEN\\tAUTO-UPDATE\\tACCEPT PUSH\\tCONFLICT STRATEGY\\tFOLDERS\\t\")\n\t}\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, status := range peers {\n\t\tif tmpl != nil {\n\t\t\trmt := client.Remote{\n\t\t\t\tFingerprint: status.Remote.Fingerprint,\n\t\t\t\tName:        status.Remote.Name,\n\t\t\t}\n\n\t\t\tif err := tmpl.Execute(os.Stdout, rmt); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcontinue\n\t\t}\n\n\t\troundtrip := status.Roundtrip.String()\n\t\tisOnline := color.GreenString(\"✔ \")\n\n\t\tif status.Err != nil {\n\t\t\tisOnline = color.RedString(\"✘ \" + status.Err.Error())\n\t\t\troundtrip = \"∞\"\n\t\t}\n\n\t\tauthenticated := color.RedString(\"✘\")\n\t\tif status.Authenticated {\n\t\t\tauthenticated = color.GreenString(\"✔\")\n\t\t}\n\n\t\tshortFp := \"\"\n\n\t\tsplitFp := strings.SplitN(status.Remote.Fingerprint, \":\", 2)\n\t\tif len(splitFp) > 0 {\n\t\t\tshortAddr := splitFp[0]\n\t\t\tif len(shortAddr) > 12 {\n\t\t\t\tshortAddr = shortAddr[:12]\n\t\t\t}\n\n\t\t\tshortFp += shortAddr\n\t\t}\n\n\t\tif len(splitFp) > 1 {\n\t\t\tshortPubKeyID := splitFp[1]\n\t\t\tif len(shortPubKeyID) > 12 {\n\t\t\t\tshortPubKeyID = shortPubKeyID[:12]\n\t\t\t}\n\n\t\t\tshortFp += \":\"\n\t\t\tshortFp += shortPubKeyID\n\t\t}\n\n\t\tcs := status.Remote.ConflictStrategy\n\t\tif cs == \"\" {\n\t\t\tcs = \"marker\"\n\t\t}\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t\\n\",\n\t\t\tstatus.Remote.Name,\n\t\t\tshortFp,\n\t\t\troundtrip,\n\t\t\tisOnline,\n\t\t\tauthenticated,\n\t\t\tstatus.LastSeen.Format(time.UnixDate),\n\t\t\tyesOrNo(status.Remote.AutoUpdate),\n\t\t\tyesOrNo(status.Remote.AcceptPush),\n\t\t\tcs,\n\t\t\tnFoldersToIcon(len(status.Remote.Folders)),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nconst (\n\tremoteHelpText = `# No remotes yet. Uncomment the next lines for an example:\n# - Name: alice@wonderland.com\n#   Fingerprint: QmVA5j2JHPkDTHgZ[...]:SEfXUDeJA1toVnP[...]\n`\n)\n\nfunc remoteListToYml(remotes []client.Remote) ([]byte, error) {\n\tif len(remotes) == 0 {\n\t\t// Provide a helpful description, instead of an empty list.\n\t\treturn []byte(remoteHelpText), nil\n\t}\n\n\treturn yml.Marshal(remotes)\n}\n\nfunc ymlToRemoteList(data []byte) ([]client.Remote, error) {\n\tremotes := []client.Remote{}\n\n\tif err := yml.Unmarshal(data, &remotes); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn remotes, nil\n}\n\nfunc handleRemoteAdd(ctx *cli.Context, ctl *client.Client) error {\n\tremote := client.Remote{\n\t\tName:             ctx.Args().Get(0),\n\t\tFingerprint:      ctx.Args().Get(1),\n\t\tAutoUpdate:       ctx.Bool(\"auto-update\"),\n\t\tConflictStrategy: ctx.String(\"conflict-strategy\"),\n\t\tAcceptPush:       ctx.Bool(\"accept-push\"),\n\t}\n\n\tfor _, folder := range ctx.StringSlice(\"folder\") {\n\t\tisReadOnly := false\n\t\tif strings.HasPrefix(folder, \"-\") {\n\t\t\tisReadOnly = true\n\t\t\tfolder = folder[1:]\n\t\t}\n\n\t\tremote.Folders = append(remote.Folders, client.RemoteFolder{\n\t\t\tFolder:   folder,\n\t\t\tReadOnly: isReadOnly,\n\t\t})\n\t}\n\n\tif err := ctl.RemoteAddOrUpdate(remote); err != nil {\n\t\treturn fmt.Errorf(\"remote add: %v\", err)\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteAutoUpdate(ctx *cli.Context, ctl *client.Client) error {\n\tenable := true\n\n\tswitch ctx.Args().First() {\n\tcase \"enable\", \"e\":\n\t\tenable = true\n\tcase \"disable\", \"d\":\n\t\tenable = false\n\tdefault:\n\t\treturn fmt.Errorf(\"please specify 'enable' or 'disable' as first argument\")\n\t}\n\n\tfor _, remoteName := range ctx.Args()[1:] {\n\t\trmt, err := ctl.RemoteByName(remoteName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trmt.AutoUpdate = enable\n\t\tif err := ctl.RemoteAddOrUpdate(rmt); err != nil {\n\t\t\treturn fmt.Errorf(\"remote update: %v\", err)\n\t\t}\n\n\t\tif !ctx.Bool(\"no-initial-sync\") {\n\t\t\tif _, err := ctl.Sync(remoteName, true); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteAcceptPush(ctx *cli.Context, ctl *client.Client) error {\n\tenable := true\n\n\tswitch ctx.Args().First() {\n\tcase \"enable\", \"e\":\n\t\tenable = true\n\tcase \"disable\", \"d\":\n\t\tenable = false\n\tdefault:\n\t\treturn fmt.Errorf(\"please specify 'enable' or 'disable' as first argument\")\n\t}\n\n\tfor _, remoteName := range ctx.Args()[1:] {\n\t\trmt, err := ctl.RemoteByName(remoteName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trmt.AcceptPush = enable\n\t\tif err := ctl.RemoteAddOrUpdate(rmt); err != nil {\n\t\t\treturn fmt.Errorf(\"remote update: %v\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteConflictStrategy(ctx *cli.Context, ctl *client.Client) error {\n\tfor _, remoteName := range ctx.Args()[1:] {\n\t\trmt, err := ctl.RemoteByName(remoteName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trmt.ConflictStrategy = ctx.Args().First()\n\t\tif err := ctl.RemoteAddOrUpdate(rmt); err != nil {\n\t\t\treturn fmt.Errorf(\"remote update: %v\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteRemove(ctx *cli.Context, ctl *client.Client) error {\n\tname := ctx.Args().First()\n\tif err := ctl.RemoteRm(name); err != nil {\n\t\treturn fmt.Errorf(\"remote rm: %v\", err)\n\t}\n\n\treturn nil\n}\n\nfunc handleRemoteClear(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.RemoteClear()\n}\n\nfunc handleRemoteEdit(ctx *cli.Context, ctl *client.Client) error {\n\tremotes, err := ctl.RemoteLs()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"remote ls: %v\", err)\n\t}\n\n\tdata, err := remoteListToYml(remotes)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Failed to convert to yml: %v\", err)\n\t}\n\n\t// Launch an editor on the received data:\n\tnewData, err := edit(data, \"yml\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Failed to launch editor: %v\", err)\n\t}\n\n\t// Save a few network roundtrips if nothing was changed:\n\tif bytes.Equal(data, newData) {\n\t\tfmt.Println(\"Nothing changed.\")\n\t\treturn nil\n\t}\n\n\tnewRemotes, err := ymlToRemoteList(newData)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := ctl.RemoteSave(newRemotes); err != nil {\n\t\treturn fmt.Errorf(\"Saving back remotes failed: %v\", err)\n\t}\n\n\treturn nil\n}\n\nfunc findRemoteForName(ctl *client.Client, name string) (*client.Remote, error) {\n\tremotes, err := ctl.RemoteLs()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, remote := range remotes {\n\t\tif remote.Name == name {\n\t\t\treturn &remote, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"No such remote with this name: %s\", name)\n}\n\nfunc handleRemoteFolderAdd(ctx *cli.Context, ctl *client.Client) error {\n\treturn handleRemoteFolderAddOrReplace(ctx, ctl, false)\n}\n\nfunc handleRemoteFolderSet(ctx *cli.Context, ctl *client.Client) error {\n\treturn handleRemoteFolderAddOrReplace(ctx, ctl, true)\n}\n\nfunc handleRemoteFolderAddOrReplace(ctx *cli.Context, ctl *client.Client, replace bool) error {\n\tremote, err := findRemoteForName(ctl, ctx.Args().First())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tisReadOnly := ctx.Bool(\"read-only\")\n\tconflictStrategy := ctx.String(\"conflict-strategy\")\n\n\tfor _, folder := range ctx.Args().Tail() {\n\t\tif _, err := ctl.Stat(folder); err != nil {\n\t\t\tfmt.Printf(\"warning: »%s« does not seem to exist. That's fine though, just in case you made a typo.\\n\", folder)\n\t\t}\n\n\t\tfolderFound := false\n\n\t\tfor idx, remoteFolder := range remote.Folders {\n\t\t\tif remoteFolder.Folder == folder {\n\t\t\t\tif replace {\n\t\t\t\t\tif ctx.IsSet(\"read-only\") {\n\t\t\t\t\t\tremote.Folders[idx].ReadOnly = true\n\t\t\t\t\t}\n\n\t\t\t\t\tif ctx.IsSet(\"read-write\") {\n\t\t\t\t\t\tremote.Folders[idx].ReadOnly = false\n\t\t\t\t\t}\n\n\t\t\t\t\tif ctx.IsSet(\"conflict-strategy\") {\n\t\t\t\t\t\tremote.Folders[idx].ConflictStrategy = conflictStrategy\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfolderFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif !replace && folderFound {\n\t\t\treturn fmt.Errorf(\"»%s« exists already\", folder)\n\t\t}\n\n\t\tif replace && !folderFound {\n\t\t\treturn fmt.Errorf(\"»%s« does not exist\", folder)\n\t\t}\n\n\t\tif !replace {\n\t\t\tremote.Folders = append(remote.Folders, client.RemoteFolder{\n\t\t\t\tFolder:           folder,\n\t\t\t\tReadOnly:         isReadOnly,\n\t\t\t\tConflictStrategy: conflictStrategy,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn ctl.RemoteUpdate(*remote)\n}\n\nfunc handleRemoteFolderRemove(ctx *cli.Context, ctl *client.Client) error {\n\tremote, err := findRemoteForName(ctl, ctx.Args().First())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfolderName := ctx.Args().Get(1)\n\tnewFolders := []client.RemoteFolder{}\n\tfor _, folder := range remote.Folders {\n\t\tif string(folder.Folder) == folderName {\n\t\t\tcontinue\n\t\t}\n\n\t\tnewFolders = append(newFolders, folder)\n\t}\n\n\tremote.Folders = newFolders\n\treturn ctl.RemoteUpdate(*remote)\n}\n\nfunc handleRemoteFolderClear(ctx *cli.Context, ctl *client.Client) error {\n\tremote, err := findRemoteForName(ctl, ctx.Args().First())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tremote.Folders = []client.RemoteFolder{}\n\treturn ctl.RemoteUpdate(*remote)\n}\n\nfunc handleRemoteFolderList(ctx *cli.Context, ctl *client.Client) error {\n\tremote, err := findRemoteForName(ctl, ctx.Args().First())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(remote.Folders) == 0 {\n\t\tfmt.Println(\"No folders specified. All folders are accessible.\")\n\t\treturn nil\n\t}\n\n\ttabW := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', tabwriter.StripEscape)\n\tfmt.Fprintln(tabW, \"FOLDER\\tREAD ONLY\\tCONFLICT STRATEGY\\t\")\n\n\tfor _, folder := range remote.Folders {\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t\\n\",\n\t\t\tfolder.Folder,\n\t\t\tyesOrNo(folder.ReadOnly),\n\t\t\tfolder.ConflictStrategy,\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleRemoteFolderListAll(ctx *cli.Context, ctl *client.Client) error {\n\tremotes, err := ctl.RemoteLs()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttabW := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', tabwriter.StripEscape)\n\tfmt.Fprintln(tabW, \"REMOTE\\tFOLDER\\tREAD ONLY\\tCONFLICT STRATEGY\\t\")\n\n\tfor _, remote := range remotes {\n\t\tfor _, folder := range remote.Folders {\n\t\t\tfmt.Fprintf(\n\t\t\t\ttabW,\n\t\t\t\t\"%s\\t%s\\t%s\\t%s\\t\\n\",\n\t\t\t\tremote.Name,\n\t\t\t\tfolder.Folder,\n\t\t\t\tyesOrNo(folder.ReadOnly),\n\t\t\t\tfolder.ConflictStrategy,\n\t\t\t)\n\t\t}\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleNetLocate(ctx *cli.Context, ctl *client.Client) error {\n\twho := ctx.Args().First()\n\ttimeoutSec, err := parseDuration(ctx.String(\"timeout\"))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Show a progress ticker, since the query might take quite long:\n\tprogressTicker := time.NewTicker(500 * time.Millisecond)\n\tgo func() {\n\t\tnDots := 0\n\t\tfor range progressTicker.C {\n\t\t\tfmt.Printf(\"Scanning%-5s\\r\", strings.Repeat(\".\", nDots+1))\n\t\t\tnDots = (nDots + 1) % 5\n\t\t}\n\t}()\n\n\tcandidateCh, err := ctl.NetLocate(who, ctx.String(\"mask\"), timeoutSec)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"Failed to locate peers: %v\", err)\n\t}\n\n\tsomethingFound := false\n\n\tfor candidate := range candidateCh {\n\t\tif !somethingFound {\n\t\t\tprogressTicker.Stop()\n\t\t\tsomethingFound = true\n\n\t\t\t// We can't use tabwriter here, sine it needs to update in realtime.\n\t\t\t// So we just fake it (badly) with printf-like formatting.\n\t\t\tfmt.Printf(\"%-30s %-10s %s\\n\", \"NAME\", \"TYPE\", \"FINGERPRINT\")\n\t\t}\n\n\t\tfingerprint := candidate.Fingerprint\n\t\tif fingerprint == \"\" {\n\t\t\tfingerprint = candidate.Addr + color.RedString(\" (offline)\")\n\t\t} else {\n\t\t\tfingerprint = color.GreenString(fingerprint)\n\t\t}\n\n\t\tfmt.Printf(\n\t\t\t\"%-30s %-10s %s\\n\",\n\t\t\tcandidate.Name,\n\t\t\tstrings.Join(candidate.Mask, \"|\"),\n\t\t\tfingerprint,\n\t\t)\n\t}\n\n\tif !somethingFound {\n\t\tfmt.Println(\"No results. Maybe nobodoy is online?\")\n\t}\n\n\treturn nil\n}\n\nfunc handleRemotePing(ctx *cli.Context, ctl *client.Client) error {\n\twho := ctx.Args().First()\n\n\tmsg := fmt.Sprintf(\"ping to %s: \", color.MagentaString(who))\n\troundtrip, err := ctl.RemotePing(who)\n\tif err != nil {\n\t\tmsg += color.RedString(\"✘\")\n\t\tmsg += fmt.Sprintf(\" (%v)\", err)\n\t} else {\n\t\tmsg += color.GreenString(\"✔\")\n\t\tmsg += fmt.Sprintf(\" (%3.5fs)\", roundtrip)\n\t}\n\n\tfmt.Println(msg)\n\treturn nil\n}\n\nfunc handlePin(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\treturn ctl.Pin(path)\n}\n\nfunc handleUnpin(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\treturn ctl.Unpin(path)\n}\n\nfunc handleRepin(ctx *cli.Context, ctl *client.Client) error {\n\troot := \"/\"\n\tif len(ctx.Args()) > 0 {\n\t\troot = ctx.Args().First()\n\t}\n\n\treturn ctl.Repin(root)\n}\n\nfunc handleWhoami(ctx *cli.Context, ctl *client.Client) error {\n\tself, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsplitFingerprint := strings.SplitN(self.Fingerprint, \":\", 2)\n\n\tprintFingerprint := ctx.Bool(\"fingerprint\")\n\tprintName := ctx.Bool(\"name\")\n\tprintAddr := ctx.Bool(\"addr\")\n\tprintKey := ctx.Bool(\"key\")\n\n\tuserName := color.YellowString(self.CurrentUser)\n\townerName := color.GreenString(self.Owner)\n\n\tif !printFingerprint && !printName && !printAddr && !printKey {\n\t\tif self.CurrentUser != self.Owner {\n\t\t\tfmt.Printf(\n\t\t\t\t\"# Note: viewing %s's data currently\\n\",\n\t\t\t\tcolor.YellowString(userName),\n\t\t\t)\n\t\t}\n\n\t\tfmt.Printf(\"- Name: %s\\n\", color.YellowString(self.Owner))\n\t\tfmt.Printf(\"  Fingerprint: %s\\n\", self.Fingerprint)\n\n\t\treturn nil\n\t}\n\n\tif printName {\n\t\tfmt.Printf(\"%s\", ownerName)\n\t}\n\n\tif printFingerprint {\n\t\tif printName {\n\t\t\tfmt.Printf(\" \")\n\t\t}\n\t\tfmt.Printf(\"%s\", self.Fingerprint)\n\t}\n\n\tif printAddr {\n\t\tif printName || printFingerprint {\n\t\t\tfmt.Printf(\" \")\n\t\t}\n\n\t\tif len(splitFingerprint) > 0 {\n\t\t\tfmt.Printf(\"%s\", splitFingerprint[0])\n\t\t}\n\t}\n\n\tif printKey {\n\t\tif printName || printFingerprint || printAddr {\n\t\t\tfmt.Printf(\" \")\n\t\t}\n\n\t\tif len(splitFingerprint) > 1 {\n\t\t\tfmt.Printf(\"%s\", splitFingerprint[1])\n\t\t}\n\t}\n\n\tfmt.Printf(\"\\n\")\n\treturn nil\n}\n\nfunc handlePush(ctx *cli.Context, ctl *client.Client) error {\n\tremoteName := ctx.Args().First()\n\treturn ctl.Push(remoteName, ctx.Bool(\"dry-run\"))\n}\n"
  },
  {
    "path": "cmd/parser.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"runtime/pprof\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\tisatty \"github.com/mattn/go-isatty\"\n\t\"github.com/sahib/brig/defaults\"\n\tformatter \"github.com/sahib/brig/util/log\"\n\t\"github.com/sahib/brig/version\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/urfave/cli\"\n)\n\nfunc init() {\n\tlog.SetOutput(os.Stderr)\n\tlog.SetLevel(log.DebugLevel)\n\n\tvar useColor bool\n\tswitch envVar := os.Getenv(\"BRIG_COLOR\"); envVar {\n\tcase \"\", \"auto\":\n\t\tuseColor = isatty.IsTerminal(os.Stdout.Fd())\n\tcase \"never\":\n\t\tuseColor = false\n\tcase \"always\":\n\t\tuseColor = true\n\tdefault:\n\t\tlog.Warningf(\"Bad value for $BRIG_COLOR: %s, disabling color\", envVar)\n\t\tuseColor = false\n\t}\n\n\t// Only use fancy logging if we print to a terminal:\n\tlog.SetFormatter(&formatter.FancyLogFormatter{\n\t\tUseColors: useColor,\n\t})\n}\n\nfunc formatGroup(category string) string {\n\treturn \"\\n\" + strings.ToUpper(category) + \" COMMANDS\"\n}\n\nfunc memProfile() {\n\tmemPath := os.Getenv(\"BRIG_MEM_PROFILE\")\n\tif memPath == \"\" {\n\t\treturn\n\t}\n\n\tfd, err := os.Create(memPath)\n\tif err != nil {\n\t\tlog.Fatal(\"could not create memory profile: \", err)\n\t}\n\n\tdefer fd.Close()\n\n\truntime.GC()\n\tif err := pprof.WriteHeapProfile(fd); err != nil {\n\t\tlog.Fatal(\"could not write memory profile: \", err)\n\t}\n}\n\nfunc startCPUProfile() *os.File {\n\tcpuPath := os.Getenv(\"BRIG_CPU_PROFILE\")\n\tif cpuPath == \"\" {\n\t\treturn nil\n\t}\n\n\tfd, err := os.Create(cpuPath)\n\tif err != nil {\n\t\tlog.Fatal(\"could not create memory profile: \", err)\n\t}\n\n\truntime.GC()\n\tif err := pprof.StartCPUProfile(fd); err != nil {\n\t\tlog.Fatal(\"could not write memory profile: \", err)\n\t}\n\n\treturn fd\n}\n\nfunc stopCPUProfile(fd *os.File) {\n\tif os.Getenv(\"BRIG_CPU_PROFILE\") == \"\" {\n\t\treturn\n\t}\n\n\tdefer fd.Close()\n\tpprof.StopCPUProfile()\n}\n\n////////////////////////////\n// Commandline definition //\n////////////////////////////\n\n// RunCmdline starts a brig commandline tool.\nfunc RunCmdline(args []string) int {\n\tprofFd := startCPUProfile()\n\tdefer stopCPUProfile(profFd)\n\tdefer memProfile()\n\n\tdebug.SetTraceback(\"all\")\n\n\tapp := cli.NewApp()\n\tapp.Name = \"brig\"\n\tapp.Usage = \"Secure and decentralized file synchronization\"\n\tapp.EnableBashCompletion = true\n\tapp.Version = fmt.Sprintf(\n\t\t\"%s [buildtime: %s] (client version)\",\n\t\tversion.String(),\n\t\tversion.BuildTime,\n\t)\n\tapp.CommandNotFound = commandNotFound\n\tapp.Description = \"brig can be used to securely store, version and synchronize files between many peers.\"\n\n\t// Set global options here:\n\tapp.Before = func(ctx *cli.Context) error {\n\t\tif ctx.Bool(\"no-color\") {\n\t\t\tcolor.NoColor = true\n\t\t}\n\n\t\treturn nil\n\t}\n\n\t// Groups:\n\trepoGroup := formatGroup(\"repository\")\n\twdirGroup := formatGroup(\"working tree\")\n\tvcscGroup := formatGroup(\"version control\")\n\tnetwGroup := formatGroup(\"network\")\n\n\t// Autocomplete all commands, but not their aliases.\n\tapp.BashComplete = func(ctx *cli.Context) {\n\t\tfor _, cmd := range app.Commands {\n\t\t\tfmt.Println(cmd.Name)\n\t\t}\n\t}\n\n\tapp.Flags = []cli.Flag{\n\t\tcli.StringFlag{\n\t\t\tName:   \"url,u\",\n\t\t\tUsage:  \"URL on where to reach the brig daemon.\",\n\t\t\tEnvVar: \"BRIG_URL\",\n\t\t\tValue:  defaults.DaemonDefaultURL(),\n\t\t},\n\t\tcli.StringFlag{\n\t\t\tName:   \"repo\",\n\t\t\tUsage:  \"Path to the repository. Only has effect for new daemons.\",\n\t\t\tValue:  \".\",\n\t\t\tEnvVar: \"BRIG_PATH\",\n\t\t},\n\t\tcli.BoolFlag{\n\t\t\tName:  \"verbose,V\",\n\t\t\tUsage: \"Show certain messages during client startup (helpful for debugging)\",\n\t\t},\n\t\tcli.BoolFlag{\n\t\t\tName:  \"nodaemon,n\",\n\t\t\tUsage: \"Don't start the daemon automatically.\",\n\t\t},\n\t\tcli.BoolFlag{\n\t\t\tName:  \"no-color\",\n\t\t\tUsage: \"Forbid the usage of colors.\",\n\t\t},\n\t}\n\n\tapp.Commands = TranslateHelp([]cli.Command{\n\t\t{\n\t\t\tName:     \"init\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   handleInit,\n\t\t}, {\n\t\t\tName:     \"whoami\",\n\t\t\tAliases:  []string{\"id\"},\n\t\t\tCategory: netwGroup,\n\t\t\tAction:   withDaemon(handleWhoami, true),\n\t\t}, {\n\t\t\tName:     \"remote\",\n\t\t\tAliases:  []string{\"rmt\", \"r\"},\n\t\t\tCategory: netwGroup,\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:    \"add\",\n\t\t\t\t\tAliases: []string{\"a\", \"set\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteAdd, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleRemoteRemove, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"list\",\n\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\tAction:  withDaemon(handleRemoteList, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"clear\",\n\t\t\t\t\tAction: withDaemon(handleRemoteClear, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"edit\",\n\t\t\t\t\tAction: withDaemon(handleRemoteEdit, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"ping\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleRemotePing, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"auto-update\",\n\t\t\t\t\tAliases: []string{\"au\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteAutoUpdate, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"accept-push\",\n\t\t\t\t\tAliases: []string{\"ap\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteAcceptPush, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"conflict-strategy\",\n\t\t\t\t\tAliases: []string{\"cs\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteConflictStrategy, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"folder\",\n\t\t\t\t\tAliases: []string{\"fld\", \"f\"},\n\t\t\t\t\tAction:  withDaemon(handleRemoteFolderListAll, true),\n\t\t\t\t\tSubcommands: []cli.Command{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:    \"add\",\n\t\t\t\t\t\t\tAliases: []string{\"a\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteFolderAdd, true)),\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tName:    \"set\",\n\t\t\t\t\t\t\tAliases: []string{\"s\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteFolderSet, true)),\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(2), withDaemon(handleRemoteFolderRemove, true)),\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tName:   \"clear\",\n\t\t\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleRemoteFolderClear, true)),\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tName:    \"list\",\n\t\t\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleRemoteFolderList, true)),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"pin\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handlePin, true)),\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:   \"add\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handlePin, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"repin\",\n\t\t\t\t\tAction: withDaemon(handleRepin, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleUnpin, true)),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"net\",\n\t\t\tCategory: netwGroup,\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:   \"offline\",\n\t\t\t\t\tAction: withDaemon(handleOffline, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"online\",\n\t\t\t\t\tAction: withDaemon(handleOnline, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"status\",\n\t\t\t\t\tAction: withDaemon(handleIsOnline, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"locate\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleNetLocate, true)),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"status\",\n\t\t\tAliases:  []string{\"st\"},\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleStatus, true),\n\t\t}, {\n\t\t\tName:     \"diff\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleDiff, true),\n\t\t}, {\n\t\t\tName:     \"tag\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleTag, true)),\n\t\t}, {\n\t\t\tName:     \"log\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleLog, true),\n\t\t}, {\n\t\t\tName:     \"fetch\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleFetch, true)),\n\t\t}, {\n\t\t\tName:     \"sync\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleSync, true),\n\t\t}, {\n\t\t\tName:     \"push\",\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handlePush, true)),\n\t\t}, {\n\t\t\tName:     \"commit\",\n\t\t\tAliases:  []string{\"cmt\"},\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleCommit, true),\n\t\t}, {\n\t\t\tName:     \"reset\",\n\t\t\tAliases:  []string{\"re\"},\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleReset, true)),\n\t\t}, {\n\t\t\tName:     \"become\",\n\t\t\tAliases:  []string{\"be\"},\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withDaemon(handleBecome, true),\n\t\t}, {\n\t\t\tName:     \"history\",\n\t\t\tAliases:  []string{\"hst\", \"hist\"},\n\t\t\tCategory: vcscGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleHistory, true)),\n\t\t}, {\n\t\t\tName:     \"stage\",\n\t\t\tAliases:  []string{\"stg\", \"add\", \"a\"},\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleStage, true)),\n\t\t}, {\n\t\t\tName:     \"touch\",\n\t\t\tAliases:  []string{\"t\"},\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleTouch, true)),\n\t\t}, {\n\t\t\tName:     \"cat\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withDaemon(handleCat, true),\n\t\t}, {\n\t\t\tName:     \"show\",\n\t\t\tAliases:  []string{\"s\", \"info\"},\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleShow, true)),\n\t\t}, {\n\t\t\tName:     \"rm\",\n\t\t\tAliases:  []string{\"remove\"},\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleRm, true)),\n\t\t}, {\n\t\t\tName:     \"ls\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withDaemon(handleList, true),\n\t\t}, {\n\t\t\tName:     \"tree\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withDaemon(handleTree, true),\n\t\t}, {\n\t\t\tName:     \"mkdir\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleMkdir, true)),\n\t\t}, {\n\t\t\tName:     \"mv\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(2), withDaemon(handleMv, true)),\n\t\t}, {\n\t\t\tName:     \"cp\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(2), withDaemon(handleCp, true)),\n\t\t}, {\n\t\t\tName:     \"edit\",\n\t\t\tCategory: wdirGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), withDaemon(handleEdit, true)),\n\t\t}, {\n\t\t\tName:     \"daemon\",\n\t\t\tCategory: repoGroup,\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:   \"launch\",\n\t\t\t\t\tAction: handleDaemonLaunch,\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"quit\",\n\t\t\t\t\tAction: withDaemon(handleDaemonQuit, false),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"ping\",\n\t\t\t\t\tAction: withDaemon(handleDaemonPing, false),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"config\",\n\t\t\tAliases:  []string{\"cfg\"},\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleConfigList, true),\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:    \"list\",\n\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\tAction:  withDaemon(handleConfigList, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"get\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleConfigGet, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"doc\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleConfigDoc, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"set\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(2), withDaemon(handleConfigSet, true)),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"fstab\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(0), withDaemon(handleFstabList, true)),\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:   \"add\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(2), withDaemon(handleFstabAdd, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleFstabRemove, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"apply\",\n\t\t\t\t\tAction: withDaemon(handleFstabApply, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"list\",\n\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\tAction:  withDaemon(handleFstabList, true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"trash\",\n\t\t\tAliases:  []string{\"tr\"},\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleTrashList, true),\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:    \"list\",\n\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\tAction:  withDaemon(handleTrashList, true),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"undelete\",\n\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleTrashRemove, true)),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"hints\",\n\t\t\tAliases:  []string{\"hi\"},\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleRepoHintsList, true),\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:    \"list\",\n\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\tAction:  withDaemon(handleRepoHintsList, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"set\",\n\t\t\t\t\tAliases: []string{\"s\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleRepoHintsSet, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleRepoHintsRemove, true)),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"recode\",\n\t\t\t\t\tAliases: []string{\"r\"},\n\t\t\t\t\tAction:  withDaemon(handleRepoHintsRecode, true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"gateway\",\n\t\t\tAliases:  []string{\"gw\"},\n\t\t\tCategory: repoGroup,\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:   \"start\",\n\t\t\t\t\tAction: withDaemon(handleGatewayStart, true),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:   \"stop\",\n\t\t\t\t\tAction: withDaemon(handleGatewayStop, true),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:   \"status\",\n\t\t\t\t\tAction: withDaemon(handleGatewayStatus, true),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:   \"url\",\n\t\t\t\t\tAction: withArgCheck(needAtLeast(1), withDaemon(handleGatewayURL, true)),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"user\",\n\t\t\t\t\tAliases: []string{\"u\"},\n\t\t\t\t\tSubcommands: []cli.Command{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:    \"add\",\n\t\t\t\t\t\t\tAliases: []string{\"a\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleGatewayUserAdd, true)),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:    \"remove\",\n\t\t\t\t\t\t\tAliases: []string{\"rm\"},\n\t\t\t\t\t\t\tAction:  withArgCheck(needAtLeast(1), withDaemon(handleGatewayUserRemove, true)),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:    \"list\",\n\t\t\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\t\t\tAction:  withDaemon(handleGatewayUserList, true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"debug\",\n\t\t\tAliases:  []string{\"d\"},\n\t\t\tCategory: repoGroup,\n\t\t\tSubcommands: []cli.Command{\n\t\t\t\t{\n\t\t\t\t\tName:    \"pprof-port\",\n\t\t\t\t\tAliases: []string{\"p\"},\n\t\t\t\t\tAction:  withDaemon(handleDebugPprofPort, true),\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"decode-stream\",\n\t\t\t\t\tAliases: []string{\"ds\"},\n\t\t\t\t\tAction:  handleDebugDecodeStream,\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"encode-stream\",\n\t\t\t\t\tAliases: []string{\"es\"},\n\t\t\t\t\tAction:  handleDebugEncodeStream,\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"ten-source\",\n\t\t\t\t\tAliases: []string{\"tso\"},\n\t\t\t\t\tAction:  handleDebugTenSource,\n\t\t\t\t}, {\n\t\t\t\t\tName:    \"ten-sink\",\n\t\t\t\t\tAliases: []string{\"tsi\"},\n\t\t\t\t\tAction:  handleDebugTenSink,\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"iobench\",\n\t\t\t\t\tAction: handleIOBench,\n\t\t\t\t\tSubcommands: []cli.Command{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tName:    \"list\",\n\t\t\t\t\t\t\tAliases: []string{\"ls\"},\n\t\t\t\t\t\t\tAction:  handleIOBenchList,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tName:   \"fusemock\",\n\t\t\t\t\tAction: handleDebugFuseMock,\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:     \"mount\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleMount, true),\n\t\t}, {\n\t\t\tName:     \"unmount\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleUnmount, true),\n\t\t}, {\n\t\t\tName:     \"version\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleVersion, false),\n\t\t}, {\n\t\t\tName:     \"gc\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withDaemon(handleGc, true),\n\t\t}, {\n\t\t\tName:     \"pack-repo\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   handleRepoPack,\n\t\t\tAliases:  []string{\"pr\"},\n\t\t}, {\n\t\t\tName:     \"unpack-repo\",\n\t\t\tCategory: repoGroup,\n\t\t\tAction:   withArgCheck(needAtLeast(1), handleRepoUnpack),\n\t\t\tAliases:  []string{\"ur\"},\n\t\t}, {\n\t\t\tName:   \"docs\",\n\t\t\tAction: handleOpenHelp,\n\t\t\tHidden: true,\n\t\t}, {\n\t\t\tName:   \"bug\",\n\t\t\tAction: handleBugReport,\n\t\t},\n\t})\n\n\texitCode := Success\n\tif err := app.Run(args); err != nil {\n\t\tlog.Error(prettyPrintError(err))\n\t\tcerr, ok := err.(ExitCode)\n\t\tif !ok {\n\t\t\texitCode = UnknownError\n\t\t}\n\n\t\texitCode = cerr.Code\n\t}\n\n\treturn exitCode\n}\n"
  },
  {
    "path": "cmd/pwd/pwd-util/pwd-util.go",
    "content": "package main\n\nimport (\n\t\"crypto/rand\"\n\t\"fmt\"\n\n\t\"github.com/sahib/brig/cmd/pwd\"\n\t\"github.com/sahib/brig/util\"\n)\n\nfunc main() {\n\tpwd, err := pwd.PromptNewPassword(40.0)\n\tif err != nil {\n\t\tfmt.Println(\"Failed: \", err)\n\t\treturn\n\t}\n\n\tsalt := make([]byte, 32)\n\tif _, err := rand.Reader.Read(salt); err != nil {\n\t\tfmt.Println(\"Reading salt failed, you're likely doomed.\")\n\t\treturn\n\t}\n\n\tkey := util.DeriveKey([]byte(pwd), salt, 32)\n\tfmt.Printf(\"Key:  %x\\nSalt: %x\\n\", key, salt)\n}\n"
  },
  {
    "path": "cmd/pwd/pwd.go",
    "content": "package pwd\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"github.com/chzyer/readline\"\n\t\"github.com/fatih/color\"\n\n\tzxcvbn \"github.com/nbutton23/zxcvbn-go\"\n\t\"github.com/sahib/brig/util\"\n)\n\nconst (\n\tmsgLowEntropy  = \"Please enter a password with at least %g bits entropy.\"\n\tmsgReEnter     = \"Well done! Please re-type your password now for safety:\"\n\tmsgBadPassword = \"This did not seem to match. Please retype it again.\"\n\tmsgMaxTriesHit = \"Maximum number of password tries exceeded: %d\"\n)\n\nfunc doPromptLine(rl *readline.Instance, prompt string, hide bool) ([]byte, error) {\n\tvar line []byte\n\tvar sline string\n\tvar err error\n\n\tif hide {\n\t\tline, err = rl.ReadPassword(prompt)\n\t} else {\n\t\tsline, err = rl.Readline()\n\t\tline = []byte(sline)\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn line, nil\n}\n\nfunc createStrengthPrompt(password []rune, prefix string) string {\n\tvar symbol string\n\tvar colorFn func(format string, a ...interface{}) string\n\n\tstrength := zxcvbn.PasswordStrength(string(password), nil)\n\n\tswitch {\n\tcase strength.Entropy >= 25:\n\t\tsymbol = \"✔\"\n\t\tcolorFn = color.GreenString\n\tcase strength.Entropy >= 20:\n\t\tsymbol = \"⊞\"\n\t\tcolorFn = color.YellowString\n\tcase strength.Entropy >= 15:\n\t\tsymbol = \"⊟\"\n\t\tcolorFn = color.MagentaString\n\tdefault:\n\t\tsymbol = \"⊠\"\n\t\tcolorFn = color.RedString\n\t}\n\n\treturn colorFn(symbol + \"  \" + prefix + \"passphrase: \")\n}\n\n// PromptNewPassword asks the user to input a password.\n//\n// While typing, the user gets feedback by the prompt color,\n// which changes with the security of the password to green.\n// Additionally the entrtopy of the password is shown.\n// If minEntropy was not reached after hitting enter,\n// this function will log a message and ask the user again.\nfunc PromptNewPassword(minEntropy float64) ([]byte, error) {\n\trl, err := readline.New(\"\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer util.Closer(rl)\n\n\tpasswordCfg := rl.GenPasswordConfig()\n\tpasswordCfg.SetListener(func(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool) {\n\t\trl.SetPrompt(createStrengthPrompt(line, \"New \"))\n\t\trl.Refresh()\n\t\treturn nil, 0, false\n\t})\n\n\tpwd := []byte{}\n\n\tfor {\n\t\tpwd, err = rl.ReadPasswordWithConfig(passwordCfg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tstrength := zxcvbn.PasswordStrength(string(pwd), nil)\n\t\tif strength.Entropy >= minEntropy {\n\t\t\tbreak\n\t\t}\n\n\t\tfmt.Printf(color.YellowString(msgLowEntropy)+\"\\n\", minEntropy)\n\t}\n\n\tpasswordCfg.SetListener(func(line []rune, pos int, key rune) (newLine []rune, newPos int, ok bool) {\n\t\trl.SetPrompt(createStrengthPrompt(line, \"Retype \"))\n\t\trl.Refresh()\n\t\treturn nil, 0, false\n\t})\n\n\tfmt.Println(msgReEnter)\n\n\tfor {\n\t\tnewPwd, err := rl.ReadPasswordWithConfig(passwordCfg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif bytes.Equal(pwd, newPwd) {\n\t\t\tbreak\n\t\t}\n\n\t\tfmt.Println(color.YellowString(msgBadPassword))\n\t}\n\n\tstrength := zxcvbn.PasswordStrength(string(pwd), nil)\n\tfmt.Printf(\n\t\t\"estimated time needed to crack password (according to zxcvbn): %s\\n\",\n\t\tcolor.BlueString(strength.CrackTimeDisplay),\n\t)\n\n\treturn pwd, nil\n}\n\nfunc promptPassword(prompt string) ([]byte, error) {\n\trl, err := readline.New(prompt)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer util.Closer(rl)\n\treturn doPromptLine(rl, prompt, true)\n}\n\n// PromptPassword just opens an uncolored password prompt.\n//\n// The password is not echo'd to stdout for safety reasons.\nfunc PromptPassword() ([]byte, error) {\n\treturn promptPassword(\"Password: \")\n}\n"
  },
  {
    "path": "cmd/pwd/pwd_test.go",
    "content": "package pwd\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tzxcvbn \"github.com/nbutton23/zxcvbn-go\"\n)\n\nfunc TestLongPassword(t *testing.T) {\n\tstart := time.Now()\n\tzxcvbn.PasswordStrength(\"68b329da9893e34099c7d8ad5cb9c940\", nil)\n\tfmt.Println(\"Took\", time.Since(start))\n}\n\nfunc BenchmarkLongPassword(b *testing.B) {\n\tfmt.Println(\"N\", b.N)\n\tfor i := 0; i < b.N; i++ {\n\t\tzxcvbn.PasswordStrength(\"1234567890123456\", nil)\n\t}\n}\n"
  },
  {
    "path": "cmd/repo_handlers.go",
    "content": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"log/syslog\"\n\t\"net/url\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"runtime/trace\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/cmd/pwd\"\n\t\"github.com/sahib/brig/cmd/tabwriter\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/sahib/brig/repo/repopack\"\n\t\"github.com/sahib/brig/repo/setup\"\n\t\"github.com/sahib/brig/server\"\n\t\"github.com/sahib/brig/util\"\n\tformatter \"github.com/sahib/brig/util/log\"\n\t\"github.com/sahib/brig/version\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/urfave/cli\"\n)\n\nconst brigLogo = `\n       _____         /  /\\        ___          /  /\\ \n      /  /::\\       /  /::\\      /  /\\        /  /:/_\n     /  /:/\\:\\     /  /:/\\:\\    /  /:/       /  /:/ /\\ \n    /  /:/~/::\\   /  /:/~/:/   /__/::\\      /  /:/_/::\\ \n   /__/:/ /:/\\:| /__/:/ /:/___ \\__\\/\\:\\__  /__/:/__\\/\\:\\\n   \\  \\:\\/:/~/:/ \\  \\:\\/:::::/    \\  \\:\\/\\ \\  \\:\\ /~~/:/\n    \\  \\::/ /:/   \\  \\::/~~~~      \\__\\::/  \\  \\:\\  /:/\n     \\  \\:\\/:/     \\  \\:\\          /__/:/    \\  \\:\\/:/\n      \\  \\::/       \\  \\:\\         \\__\\/      \\  \\::/\n       \\__\\/         \\__\\/                     \\__\\/\n\n`\n\nconst initBanner = `\n\n     A new file README.md was automatically added.\n     Use 'brig cat README.md' to view it & get started.\n\n`\n\nfunc createInitialReadme(ctl *client.Client, folder string) error {\n\ttext := `Welcome to brig!\n\nHere's what you can do next:\n\n    • Read the official documentation (Just type »brig docs«)\n    • Add a few remotes to sync with (See »brig help remote«)\n    • Mount your data somewhere convinient (See »brig help fstab«)\n    • Sync with the remotes you've added (See »brig help sync«)\n    • Have a relaxing day while exploring brig.\n\nPlease remember that brig is software in its very early stages,\nand you should not rely on it yet for production purposes.\n\nIf you're done with this README, you can easily remove it:\n\n    $ brig rm README.md\n\nYour repository is here:\n\n    %s\n\nHave a nice day.\n`\n\tfd, err := ioutil.TempFile(\"\", \".brig-init-readme-\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttext = fmt.Sprintf(text, folder)\n\tif _, err := fd.WriteString(text); err != nil {\n\t\treturn err\n\t}\n\n\treadmePath := fd.Name()\n\n\tif err := fd.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := ctl.Stage(readmePath, \"/README.md\"); err != nil {\n\t\treturn err\n\t}\n\n\treturn ctl.MakeCommit(\"added initial README.md\")\n}\n\nfunc isMultiAddr(ipfsPathOrMultiaddr string) bool {\n\t_, err := os.Stat(ipfsPathOrMultiaddr)\n\treturn err != nil\n}\n\nfunc handleInit(ctx *cli.Context) error {\n\tif len(ctx.Args()) == 0 {\n\t\treturn fmt.Errorf(\"Please specify a name for the owner of this repository\")\n\t}\n\n\towner := ctx.Args().First()\n\tbackend := ctx.String(\"backend\")\n\n\tfolder := ctx.String(\"repo\")\n\tif folder == \"\" {\n\t\tfolder = ctx.GlobalString(\"repo\")\n\t}\n\n\tif ctx.NArg() == 2 {\n\t\tvar err error\n\t\tfolder, err = filepath.Abs(ctx.Args().Get(1))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to get absolute path for %s: %v\", folder, err)\n\t\t}\n\t}\n\n\tif ctx.NArg() > 2 {\n\t\treturn fmt.Errorf(\"too many arguments\")\n\t}\n\n\tif folder == \"\" {\n\t\tvar err error\n\t\tfolder, err = guessRepoFolder(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfmt.Printf(\"-- Guessed folder for init: %s\\n\", folder)\n\t}\n\n\t// doing init twice can easily break things.\n\tisInitialized, err := isNonEmptyDir(folder)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isInitialized {\n\t\treturn fmt.Errorf(\"`%s` already exists and is not empty; refusing to do init\", folder)\n\t}\n\n\tipfsPathOrMultiaddr := ctx.String(\"ipfs-path-or-multiaddr\")\n\tdoIpfsSetup := !ctx.Bool(\"no-ipfs-setup\")\n\tdoIpfsConfig := !ctx.Bool(\"no-ipfs-config\")\n\tdoExtraIpfsConfig := !ctx.Bool(\"no-ipfs-optimization\")\n\n\tipfsRepoPath := ipfsPathOrMultiaddr\n\tisMa := isMultiAddr(ipfsPathOrMultiaddr)\n\tif isMa {\n\t\t// NOTE: If we're connecting over a multiaddr,\n\t\t//       then we should not setup an ipfs repo.\n\t\t//       Assumption is that it exists already.\n\t\tdoIpfsSetup = false\n\t\tipfsRepoPath = \"\"\n\t}\n\n\tif backend == \"httpipfs\" {\n\t\tif _, err := setup.IPFS(setup.Options{\n\t\t\tLogWriter:        os.Stdout,\n\t\t\tSetup:            doIpfsSetup,\n\t\t\tSetDefaultConfig: doIpfsConfig,\n\t\t\tSetExtraConfig:   doExtraIpfsConfig,\n\t\t\tIpfsPath:         ipfsRepoPath,\n\t\t}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tdaemonURL, err := guessFreeDaemonURL(ctx, owner)\n\tif err != nil {\n\t\tlog.WithError(err).Warnf(\"failed to figure out a free daemon url\")\n\t}\n\n\tif err := Init(\n\t\tctx,\n\t\tipfsPathOrMultiaddr,\n\t\trepo.InitOptions{\n\t\t\tBaseFolder:  folder,\n\t\t\tOwner:       owner,\n\t\t\tBackendName: backend,\n\t\t\tDaemonURL:   daemonURL,\n\t\t},\n\t); err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"init failed: %v\", err)}\n\t}\n\n\t// Start the daemon on the freshly initialized repo:\n\tctl, err := startDaemon(ctx, folder, daemonURL)\n\tif err != nil {\n\t\treturn ExitCode{\n\t\t\tDaemonNotResponding,\n\t\t\tfmt.Sprintf(\"Unable to start daemon: %v\", err),\n\t\t}\n\t}\n\n\t// Run the actual handler:\n\tdefer ctl.Close()\n\n\treturn handleInitPost(ctx, ctl, folder)\n}\n\nfunc handleInitPost(ctx *cli.Context, ctl *client.Client, folder string) error {\n\tif !ctx.Bool(\"empty\") {\n\t\tif err := createInitialReadme(ctl, folder); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif !ctx.Bool(\"no-logo\") {\n\t\tfmt.Println(brigLogo)\n\n\t\tif !ctx.Bool(\"empty\") {\n\t\t\tfmt.Println(initBanner)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc printConfigDocEntry(entry client.ConfigEntry) {\n\tval := entry.Val\n\tif val == \"\" {\n\t\tval = color.YellowString(\"(empty)\")\n\t}\n\n\tdefaultMarker := \"\"\n\tif entry.Val == entry.Default {\n\t\tdefaultMarker = color.CyanString(\"(default)\")\n\t}\n\n\tfmt.Printf(\"%s: %v %s\\n\", color.GreenString(entry.Key), val, defaultMarker)\n\n\tneedsRestart := yesify(entry.NeedsRestart)\n\tdefaultVal := entry.Default\n\tif entry.Default == \"\" {\n\t\tdefaultVal = color.YellowString(\"(empty)\")\n\t}\n\n\tfmt.Printf(\"  Default:       %v\\n\", defaultVal)\n\tfmt.Printf(\"  Documentation: %v\\n\", entry.Doc)\n\tfmt.Printf(\"  Needs restart: %v\\n\", needsRestart)\n}\n\nfunc handleConfigList(cli *cli.Context, ctl *client.Client) error {\n\tall, err := ctl.ConfigAll()\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config list: %v\", err)}\n\t}\n\n\tfor _, entry := range all {\n\t\tprintConfigDocEntry(entry)\n\t}\n\n\treturn nil\n}\n\nfunc handleConfigGet(ctx *cli.Context, ctl *client.Client) error {\n\tkey := ctx.Args().Get(0)\n\tval, err := ctl.ConfigGet(key)\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config get: %v\", err)}\n\t}\n\n\tfor _, elem := range strings.Split(val, \" ;; \") {\n\t\tfmt.Println(elem)\n\t}\n\treturn nil\n}\n\nfunc handleConfigSet(ctx *cli.Context, ctl *client.Client) error {\n\tkey := ctx.Args().Get(0)\n\n\tval := ctx.Args().Get(1)\n\tif len(ctx.Args()) > 2 {\n\t\tval = strings.Join(ctx.Args()[1:], \" ;; \")\n\t}\n\n\tif err := ctl.ConfigSet(key, val); err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config set: %v\", err)}\n\t}\n\n\tentry, err := ctl.ConfigDoc(key)\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config doc: %v\", err)}\n\t}\n\n\tif entry.NeedsRestart {\n\t\tfmt.Println(\"NOTE: You need to restart brig for this option to take effect.\")\n\t}\n\n\treturn nil\n}\n\nfunc handleConfigDoc(ctx *cli.Context, ctl *client.Client) error {\n\tkey := ctx.Args().Get(0)\n\tentry, err := ctl.ConfigDoc(key)\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config get: %v\", err)}\n\t}\n\n\tprintConfigDocEntry(entry)\n\treturn nil\n}\n\nfunc handleDaemonPing(ctx *cli.Context, ctl *client.Client) error {\n\tcount := ctx.Int(\"count\")\n\tfor i := 0; i < count; i++ {\n\t\tbefore := time.Now()\n\t\tsymbol := color.GreenString(\"✔\")\n\n\t\tif err := ctl.Ping(); err != nil {\n\t\t\tsymbol = color.RedString(\"✘\")\n\t\t}\n\n\t\tdelay := time.Since(before)\n\t\tfmt.Printf(\"#%02d %s ➔ %s: %s (%v)\\n\",\n\t\t\ti+1,\n\t\t\tctl.LocalAddr().String(),\n\t\t\tctl.RemoteAddr().String(),\n\t\t\tsymbol,\n\t\t\tdelay,\n\t\t)\n\n\t\ttime.Sleep(1 * time.Second)\n\t}\n\n\treturn nil\n}\n\nfunc handleDaemonQuit(ctx *cli.Context, ctl *client.Client) error {\n\tif err := ctl.Quit(); err != nil {\n\t\treturn ExitCode{\n\t\t\tDaemonNotResponding,\n\t\t\tfmt.Sprintf(\"brigd not responding: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc switchToSyslog() {\n\twSyslog, err := syslog.New(syslog.LOG_NOTICE, \"brig\")\n\tif err != nil {\n\t\tlog.Warningf(\"failed to open connection to syslog for brig: %v\", err)\n\t\tlogFd, err := ioutil.TempFile(\"\", \"brig-*.log\")\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"\")\n\t\t} else {\n\t\t\tlog.Warningf(\"Will log to %s from now on.\", logFd.Name())\n\t\t\tlog.SetOutput(logFd)\n\t\t}\n\n\t\treturn\n\t}\n\n\tlog.SetLevel(log.DebugLevel)\n\tlog.SetFormatter(&formatter.FancyLogFormatter{\n\t\tUseColors: false,\n\t})\n\n\t// TODO: we should also forward panics (os.Stderr) to syslog.\n\t// They don't come from the log obviously though.\n\tlog.SetOutput(\n\t\tio.MultiWriter(\n\t\t\tformatter.NewSyslogWrapper(wSyslog),\n\t\t\tos.Stdout,\n\t\t),\n\t)\n}\n\nfunc handleDaemonLaunch(ctx *cli.Context) error {\n\t// Enable tracing (for profiling) if required.\n\tif ctx.Bool(\"trace\") {\n\t\ttracePath := fmt.Sprintf(\"/tmp/brig-%d.trace\", os.Getpid())\n\t\tlog.Debugf(\"Writing trace output to %s\", tracePath)\n\t\tfd, err := os.Create(tracePath)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdefer util.Closer(fd)\n\n\t\tif err := trace.Start(fd); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdefer trace.Stop()\n\t}\n\n\trepoPath, err := guessRepoFolder(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdaemonURL, err := guessDaemonURL(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Make sure IPFS is running. Also set required options,\n\t// but don't bother to set optimizations.\n\tvar ipfsPath string\n\tcfg, err := openConfig(repoPath)\n\tif err != nil {\n\t\tlog.Warningf(\"failed to read config at %v: %v\", repoPath, err)\n\t} else {\n\t\tipfsPath = cfg.String(\"daemon.ipfs_path_or_url\")\n\t}\n\n\tif _, err := setup.IPFS(setup.Options{\n\t\tLogWriter:        &logWriter{prefix: \"ipfs\"},\n\t\tSetup:            true,\n\t\tSetDefaultConfig: true,\n\t\tSetExtraConfig:   false,\n\t\tIpfsPath:         ipfsPath,\n\t}); err != nil {\n\t\treturn err\n\t}\n\n\tlogToStdout := ctx.Bool(\"log-to-stdout\")\n\tif !logToStdout {\n\t\tlog.Infof(\"all further logs will be also piped to the syslog daemon.\")\n\t\tlog.Infof(\"Use »journalctl -fet brig« to view logs.\")\n\t\tswitchToSyslog()\n\t} else {\n\t\tlog.SetOutput(os.Stdout)\n\t}\n\n\tserver, err := server.BootServer(repoPath, daemonURL)\n\tif err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"failed to boot brigd: %v\", err),\n\t\t}\n\t}\n\n\tdefer util.Closer(server)\n\n\tif err := server.Serve(); err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"failed to serve: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleMount(ctx *cli.Context, ctl *client.Client) error {\n\tmountPath := ctx.Args().First()\n\tabsMountPath, err := filepath.Abs(mountPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !ctx.Bool(\"no-mkdir\") {\n\t\tif _, err := os.Stat(absMountPath); os.IsNotExist(err) {\n\t\t\tfmt.Printf(\n\t\t\t\t\"Mount directory »%s« does not exist. Will create it.\\n\",\n\t\t\t\tabsMountPath,\n\t\t\t)\n\t\t\tif err := os.MkdirAll(absMountPath, 0700); err != nil {\n\t\t\t\treturn e.Wrapf(err, \"failed to mkdir mount point\")\n\t\t\t}\n\t\t}\n\t}\n\n\toptions := client.MountOptions{\n\t\tReadOnly: ctx.Bool(\"readonly\"),\n\t\tOffline:  ctx.Bool(\"offline\"),\n\t\tRootPath: ctx.String(\"root\"),\n\t}\n\n\tif err := ctl.Mount(absMountPath, options); err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"Failed to mount: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleUnmount(ctx *cli.Context, ctl *client.Client) error {\n\tmountPath := ctx.Args().First()\n\tabsMountPath, err := filepath.Abs(mountPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := ctl.Unmount(absMountPath); err != nil {\n\t\treturn ExitCode{\n\t\t\tUnknownError,\n\t\t\tfmt.Sprintf(\"Failed to unmount: %v\", err),\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleVersion(ctx *cli.Context, ctl *client.Client) error {\n\tvInfo, err := ctl.Version()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trow := func(name, value string) {\n\t\tfmt.Printf(\"%25s: %s\\n\", name, value)\n\t}\n\n\trow(\"Client Version\", version.String())\n\trow(\"Client Rev\", version.GitRev)\n\trow(\"Server Version\", vInfo.ServerSemVer)\n\trow(\"Server Rev\", vInfo.ServerRev)\n\trow(\"Backend (ipfs) Version\", vInfo.BackendSemVer)\n\trow(\"Backend (ipfs) Rev\", vInfo.BackendRev)\n\trow(\"Build time\", version.BuildTime)\n\n\treturn nil\n}\n\nfunc handleGc(ctx *cli.Context, ctl *client.Client) error {\n\taggressive := ctx.Bool(\"aggressive\")\n\tfreed, err := ctl.GarbageCollect(aggressive)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(freed) == 0 {\n\t\tfmt.Println(\"Nothing freed.\")\n\t\treturn nil\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tfmt.Fprintln(tabW, \"CONTENT\\tHASH\\tOWNER\\t\")\n\n\tfor _, gcItem := range freed {\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t\\n\",\n\t\t\tcolor.WhiteString(gcItem.Path),\n\t\t\tcolor.RedString(gcItem.Content.ShortB58()),\n\t\t\tcolor.CyanString(gcItem.Owner),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleFstabAdd(ctx *cli.Context, ctl *client.Client) error {\n\tmountName := ctx.Args().Get(0)\n\tmountPath := ctx.Args().Get(1)\n\n\toptions := client.MountOptions{\n\t\tReadOnly: ctx.Bool(\"readonly\"),\n\t\tRootPath: ctx.String(\"root\"),\n\t\tOffline:  ctx.Bool(\"offline\"),\n\t}\n\n\treturn ctl.FstabAdd(mountName, mountPath, options)\n}\n\nfunc handleFstabRemove(ctx *cli.Context, ctl *client.Client) error {\n\tmountName := ctx.Args().Get(0)\n\treturn ctl.FstabRemove(mountName)\n}\n\nfunc handleFstabApply(ctx *cli.Context, ctl *client.Client) error {\n\tif ctx.Bool(\"unmount\") {\n\t\treturn ctl.FstabUnmountAll()\n\t}\n\n\treturn ctl.FstabApply()\n}\n\nfunc handleFstabUnmounetAll(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.FstabUnmountAll()\n}\n\nfunc handleFstabList(ctx *cli.Context, ctl *client.Client) error {\n\tmounts, err := ctl.FsTabList()\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"config list: %v\", err)}\n\t}\n\n\tif len(mounts) == 0 {\n\t\treturn nil\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif tmpl == nil && len(mounts) != 0 {\n\t\tfmt.Fprintln(tabW, \"NAME\\tPATH\\tREAD_ONLY\\tOFFLINE\\tROOT\\tACTIVE\\t\")\n\t}\n\n\tfor _, entry := range mounts {\n\t\tif tmpl != nil {\n\t\t\tif err := tmpl.Execute(os.Stdout, entry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcontinue\n\t\t}\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n\",\n\t\t\tentry.Name,\n\t\t\tentry.Path,\n\t\t\tyesify(entry.ReadOnly),\n\t\t\tyesify(entry.Offline),\n\t\t\tentry.Root,\n\t\t\tcheckmarkify(entry.Active),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleGatewayStart(ctx *cli.Context, ctl *client.Client) error {\n\tisEnabled, err := ctl.ConfigGet(\"gateway.enabled\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isEnabled == \"false\" {\n\t\tif err := ctl.ConfigSet(\"gateway.enabled\", \"true\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tfmt.Println(\"Seems like we're running already.\")\n\t}\n\n\tport, err := ctl.ConfigGet(\"gateway.port\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdomain := \"localhost\"\n\tprotocol := \"http\"\n\turl := fmt.Sprintf(\"%s://%s:%s\", protocol, domain, port)\n\tfmt.Printf(\"The gateway is accessible via %s\\n\", url)\n\treturn nil\n}\n\nfunc handleGatewayStatus(ctx *cli.Context, ctl *client.Client) error {\n\tisEnabled, err := ctl.ConfigGet(\"gateway.enabled\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isEnabled == \"false\" {\n\t\tfmt.Println(\"• The gateway is not running. Use »brig gateway start« to start.\")\n\t\treturn nil\n\t}\n\n\tport, err := ctl.ConfigGet(\"gateway.port\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdomain := \"localhost\"\n\tprotocol := \"http\"\n\turl := fmt.Sprintf(\"%s://%s:%s\", protocol, domain, port)\n\n\tfmt.Printf(\"• Running on %s\\n\", color.GreenString(url))\n\tuiIsEnabled, err := ctl.ConfigGet(\"gateway.ui.enabled\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif uiIsEnabled == \"true\" {\n\t\tfmt.Println(\"• The Web UI is currently enabled and can be accessed via the URL above.\")\n\t\tfmt.Println(\"  If you want to disable the UI (»/get« will still work), then do:\")\n\t\tfmt.Println(\"\")\n\t\tfmt.Println(\"    $ brig cfg gateway.ui.enabled false\")\n\t\tfmt.Println(\"\")\n\t} else {\n\t\tfmt.Println(\"• There is no UI enabled. You can enable it via:\")\n\t\tfmt.Println(\"\")\n\t\tfmt.Println(\"    $ brig cfg gateway.ui.enabled true\")\n\t\tfmt.Println(\"\")\n\t}\n\n\tusers, err := ctl.GatewayUserList()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tauthIsEnabled := len(users) > 0\n\tif authIsEnabled {\n\t\tfmt.Printf(\n\t\t\t\"• There are %s users currently. Review them with »brig gw user ls«.\\n\",\n\t\t\tcolor.GreenString(fmt.Sprintf(\"%d\", len(users))),\n\t\t)\n\t} else {\n\t\tfmt.Printf(\"• There is %s user authentication enabled.\\n\", color.YellowString(\"no\"))\n\t\tfmt.Printf(\"  You can enable it by setting the following config keys:\\n\")\n\t\tfmt.Printf(\"\\n\")\n\t\tfmt.Printf(\"    $ brig gateway user add --role-admin <user> <pass>\\n\")\n\t\tfmt.Printf(\"\\n\")\n\t}\n\n\treturn nil\n}\n\nfunc handleGatewayStop(ctx *cli.Context, ctl *client.Client) error {\n\tisEnabled, err := ctl.ConfigGet(\"gateway.enabled\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isEnabled == \"true\" {\n\t\tif err := ctl.ConfigSet(\"gateway.enabled\", \"false\"); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfmt.Println(\"The gateway will stop serving after handling all open requests.\")\n\t} else {\n\t\tfmt.Println(\"It seems like the gateway is already stopped.\")\n\t}\n\n\treturn nil\n}\n\nfunc handleGatewayURL(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\tif _, err := ctl.Stat(path); err != nil {\n\t\treturn err\n\t}\n\n\tdomain := \"localhost\"\n\tport, err := ctl.ConfigGet(\"gateway.port\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif port == \"80\" || port == \"443\" {\n\t\tport = \"\"\n\t} else {\n\t\tport = \":\" + port\n\t}\n\n\tprotocol := \"http\"\n\tescapedPath := url.PathEscape(strings.TrimLeft(path, \"/\"))\n\tfmt.Printf(\"%s://%s%s/get/%s\\n\", protocol, domain, port, escapedPath)\n\treturn nil\n}\n\nfunc handleGatewayUserAdd(ctx *cli.Context, ctl *client.Client) error {\n\tnArgs := len(ctx.Args())\n\tname := ctx.Args().First()\n\n\tvar password string\n\tif nArgs > 1 {\n\t\tpassword = ctx.Args().Get(1)\n\t} else {\n\t\tbPassword, err := pwd.PromptNewPassword(14)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tpassword = string(bPassword)\n\t}\n\n\tfolders := []string{\"/\"}\n\tif nArgs > 2 {\n\t\tfolders = ctx.Args()[2:]\n\t}\n\n\tallRights := []string{\n\t\t\"fs.download\",\n\t\t\"fs.view\",\n\t\t\"fs.edit\",\n\t\t\"remotes.view\",\n\t\t\"remotes.edit\",\n\t}\n\n\trights := []string{}\n\tif ctx.Bool(\"role-admin\") {\n\t\trights = allRights\n\t}\n\n\tif ctx.Bool(\"role-editor\") {\n\t\trights = allRights[:len(allRights)-1]\n\t}\n\n\tif ctx.Bool(\"role-collaborator\") {\n\t\trights = allRights[:len(allRights)-2]\n\t}\n\n\tif ctx.Bool(\"role-viewer\") {\n\t\trights = allRights[:len(allRights)-3]\n\t}\n\n\tif ctx.Bool(\"role-link-only\") {\n\t\trights = allRights[:len(allRights)-4]\n\t}\n\n\tif r := ctx.String(\"rights\"); r != \"\" {\n\t\trights = strings.Split(r, \",\")\n\t}\n\n\treturn ctl.GatewayUserAdd(name, password, folders, rights)\n}\n\nfunc handleGatewayUserRemove(ctx *cli.Context, ctl *client.Client) error {\n\tfor _, name := range ctx.Args() {\n\t\tif err := ctl.GatewayUserRemove(name); err != nil {\n\t\t\tfmt.Printf(\"Failed to remove »%s«: %v\\n\", name, err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleGatewayUserList(ctx *cli.Context, ctl *client.Client) error {\n\tusers, err := ctl.GatewayUserList()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif tmpl == nil {\n\t\tif len(users) == 0 {\n\t\t\tfmt.Println(\"No users. Add some with »brig gw user add <name> <pass> <folders...>«\")\n\t\t} else {\n\t\t\tfmt.Fprintln(tabW, \"NAME\\tFOLDERS\\tRIGHTS\\t\")\n\t\t}\n\t}\n\n\tfor _, user := range users {\n\t\tif tmpl != nil {\n\t\t\tif err := tmpl.Execute(os.Stdout, user); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcontinue\n\t\t}\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t\\n\",\n\t\t\tuser.Name,\n\t\t\tstrings.Join(user.Folders, \",\"),\n\t\t\tstrings.Join(user.Rights, \",\"),\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc readPassword(ctx *cli.Context, isNew bool) ([]byte, error) {\n\tif ctx.IsSet(\"password-command\") {\n\t\tlog.Debugf(\"reading by password command.\")\n\t\tcmd := exec.Command(\"/bin/sh\", \"-c\", ctx.String(\"password-command\"))\n\n\t\t// Make sure sub command can access our streams.\n\t\t// Some password managers might ask for a master password.\n\t\tcmd.Stderr = os.Stderr\n\t\tcmd.Stdin = os.Stdin\n\n\t\tout, err := cmd.Output()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Strip any newline produced by the tool.\n\t\t// Just hope that nobody really tries to use newlines\n\t\t// as part of the password. Would still work though\n\t\t// as long only --password-command is used to enter the password.\n\t\treturn bytes.TrimRight(out, \"\\n\\r\"), nil\n\t}\n\n\tif ctx.IsSet(\"password-file\") {\n\t\tlog.Debugf(\"reading from password file.\")\n\t\treturn ioutil.ReadFile(ctx.String(\"password-file\"))\n\t}\n\n\tif isNew {\n\t\treturn pwd.PromptNewPassword(10)\n\t}\n\n\treturn pwd.PromptPassword()\n}\n\nfunc handleRepoPack(ctx *cli.Context) error {\n\tfolder, err := guessRepoFolder(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tisRunning, err := isDaemonRunning(ctx)\n\tif err != nil {\n\t\treturn e.Wrap(err, \"failed to check if daemon is running\")\n\t}\n\n\tif isRunning {\n\t\tlog.Error(\"daemon is still running for this repo, please quit it first!\")\n\t\tlog.Errorf(\"Use »brig --repo %s daemon quit« for this.\", folder)\n\t\treturn errors.New(\"refusing to pack data, there might be inconsistencies\")\n\t}\n\n\tpass, err := readPassword(ctx, true)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tarchivePath := ctx.Args().First()\n\tif archivePath == \"\" {\n\t\tarchivePath = folder + \".repopack\"\n\t}\n\n\tlog.Infof(\"writing archive to »%s«\", archivePath)\n\treturn repopack.PackRepo(\n\t\tfolder,\n\t\tarchivePath,\n\t\tstring(pass),\n\t\t!ctx.Bool(\"no-remove\"),\n\t)\n}\n\nfunc handleRepoUnpack(ctx *cli.Context) error {\n\tarchivePath := ctx.Args().First()\n\tfolder, err := guessRepoFolder(ctx)\n\tif err != nil {\n\t\t// Small convenience hack: if the archive ends in .repopack\n\t\t// assume that it was created from a repo with the same path\n\t\t// but without the suffix.\n\t\tfolder = strings.TrimSuffix(archivePath, \".repopack\")\n\t}\n\n\tisNonEmpty, err := isNonEmptyDir(folder)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isNonEmpty {\n\t\treturn fmt.Errorf(\"»%s« is non-empty, refusing to overwrite\", folder)\n\t}\n\n\tif archivePath == \"\" {\n\t\treturn fmt.Errorf(\"please specify the location of the packed archive\")\n\t}\n\n\tpass, err := readPassword(ctx, false)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlog.Infof(\"unpacking to »%s«\", folder)\n\treturn repopack.UnpackRepo(\n\t\tfolder,\n\t\tarchivePath,\n\t\tstring(pass),\n\t\t!ctx.Bool(\"no-remove\"),\n\t)\n}\n\nfunc optionalStringParamAsPtr(ctx *cli.Context, name string) *string {\n\tif v := ctx.String(name); v != \"\" {\n\t\treturn &v\n\t}\n\n\treturn nil\n}\n\nfunc handleRepoHintsSet(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\n\tif !ctx.Bool(\"force\") {\n\t\tif _, err := ctl.Stat(path); err != nil {\n\t\t\treturn fmt.Errorf(\"no file or directory at »%s« (use --force to create anyways)\", path)\n\t\t}\n\t}\n\n\tzipHint := optionalStringParamAsPtr(ctx, \"compression\")\n\tencHint := optionalStringParamAsPtr(ctx, \"encryption\")\n\n\t// TODO: There seems to be a bug in the cli library.\n\t// When --recode comes directly after 'set' then\n\t// all other arguments are part of 'ctx.Args()' and do not get\n\t// parsed. This check at least catches this behavior.\n\tif zipHint == nil && encHint == nil {\n\t\treturn fmt.Errorf(\"need at least one of --encryption or --compression\")\n\t}\n\n\tif err := ctl.HintSet(path, zipHint, encHint); err != nil {\n\t\treturn err\n\t}\n\n\tif ctx.Bool(\"recode\") {\n\t\treturn ctl.RecodeStream(path)\n\t}\n\n\treturn nil\n}\n\nfunc handleRepoHintsList(ctx *cli.Context, ctl *client.Client) error {\n\thints, err := ctl.HintList()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(ctx.Args()) != 0 {\n\t\treturn fmt.Errorf(\"extra arguments passed\")\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tfmt.Fprintln(tabW, \"PATH\\tENCRYPTION\\tCOMPRESSION\\t\")\n\n\tfor _, hint := range hints {\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t\\n\",\n\t\t\thint.Path,\n\t\t\thint.EncryptionAlgo,\n\t\t\thint.CompressionAlgo,\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\nfunc handleRepoHintsRemove(ctx *cli.Context, ctl *client.Client) error {\n\treturn ctl.HintRemove(ctx.Args().First())\n}\n\nfunc handleRepoHintsRecode(ctx *cli.Context, ctl *client.Client) error {\n\trepoPath := ctx.Args().Get(0)\n\tif repoPath == \"\" {\n\t\trepoPath = \"/\"\n\n\t}\n\n\treturn ctl.RecodeStream(repoPath)\n}\n"
  },
  {
    "path": "cmd/suggest.go",
    "content": "package cmd\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/urfave/cli\"\n\t\"github.com/xrash/smetrics\"\n)\n\ntype suggestion struct {\n\tname  string\n\tscore float64\n}\n\nfunc levenshteinRatio(s, t string) float64 {\n\tlensum := float64(len(s) + len(t))\n\tif lensum == 0 {\n\t\treturn 1.0\n\t}\n\n\tdist := float64(smetrics.WagnerFischer(s, t, 1, 1, 2))\n\treturn (lensum - dist) / lensum\n}\n\nfunc findLastGoodCommands(ctx *cli.Context) ([]string, []cli.Command) {\n\tfor ctx.Parent() != nil {\n\t\tctx = ctx.Parent()\n\t}\n\n\targs := ctx.Args()\n\tif len(args) == 0 || len(args) == 1 {\n\t\treturn nil, ctx.App.Commands\n\t}\n\n\tcmd := ctx.App.Command(args[0])\n\tif cmd == nil {\n\t\treturn nil, ctx.App.Commands\n\t}\n\n\tvalidArgs := []string{args[0]}\n\targs = args[1 : len(args)-1]\n\n\tfor len(args) != 0 && cmd != nil {\n\t\tfor _, subCmd := range cmd.Subcommands {\n\t\t\tif subCmd.Name == args[0] {\n\t\t\t\tcmd = &subCmd\n\t\t\t}\n\t\t}\n\n\t\tvalidArgs = append(validArgs, args[0])\n\t\targs = args[1:]\n\t}\n\n\treturn validArgs, cmd.Subcommands\n}\n\nfunc findSimilarCommands(cmdName string, cmds []cli.Command) []suggestion {\n\tsimilars := []suggestion{}\n\n\tfor _, cmd := range cmds {\n\t\tcandidates := []string{cmd.Name}\n\t\tcandidates = append(candidates, cmd.Aliases...)\n\n\t\tfor _, candidate := range candidates {\n\t\t\tif score := levenshteinRatio(cmdName, candidate); score >= 0.6 {\n\t\t\t\tsimilars = append(similars, suggestion{\n\t\t\t\t\tname:  cmd.Name,\n\t\t\t\t\tscore: score,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Special cases for the git inclined:\n\tstaticSuggestions := map[string]string{\n\t\t\"insert\": \"stage\",\n\t\t\"pull\":   \"sync\",\n\t\t\"merge\":  \"sync\",\n\t}\n\n\tfor gitName, brigName := range staticSuggestions {\n\t\tif cmdName == gitName {\n\t\t\tsimilars = append(similars, suggestion{\n\t\t\t\tname:  brigName,\n\t\t\t\tscore: 0.0,\n\t\t\t})\n\t\t}\n\t}\n\n\t// Let suggestions be sorted by their similarity:\n\tsort.Slice(similars, func(i, j int) bool {\n\t\treturn similars[i].score < similars[j].score\n\t})\n\n\treturn similars\n}\n\nfunc findCurrentCommand(ctx *cli.Context) *cli.Command {\n\tfor {\n\t\tpar := ctx.Parent()\n\t\tif par == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tctx = par\n\t}\n\n\tvar command *cli.Command\n\tfor args := ctx.Args(); len(args) > 0; {\n\t\tsubCommand := ctx.App.Command(args[0])\n\t\targs = args[1:]\n\t\tif subCommand != nil {\n\t\t\tcommand = subCommand\n\t\t}\n\t}\n\n\treturn command\n}\n\nfunc completeLocalPath(ctx *cli.Context) {\n\tfiles, err := ioutil.ReadDir(\"./\")\n\tif err != nil {\n\t\treturn\n\t}\n\n\tfor _, file := range files {\n\t\tfmt.Println(file.Name())\n\t}\n}\n\nfunc completeBrigPath(allowFiles, allowDirs bool) func(ctx *cli.Context) {\n\treturn func(ctx *cli.Context) {\n\t\t// Check if the daemon is running:\n\t\tdaemonURL, err := guessDaemonURL(ctx)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tctl, err := client.Dial(context.Background(), daemonURL)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tstats, err := ctl.List(\"/\", -1)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tfor _, stat := range stats {\n\t\t\tif stat.Path == \"/\" {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif stat.IsDir && allowDirs {\n\t\t\t\tfmt.Println(stat.Path)\n\t\t\t}\n\n\t\t\tif !stat.IsDir && allowFiles {\n\t\t\t\tfmt.Println(stat.Path)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc completeArgsUsage(ctx *cli.Context) {\n\tif command := findCurrentCommand(ctx); command != nil {\n\t\tif len(command.Flags) == 0 {\n\t\t\treturn\n\t\t}\n\n\t\tfor _, flag := range command.Flags {\n\t\t\tsplit := strings.SplitN(flag.GetName(), \",\", 2)\n\t\t\tlongName := split[0]\n\t\t\tfmt.Printf(\"--%s\\n\", longName)\n\t\t}\n\n\t\tfmt.Println(command.ArgsUsage)\n\t}\n}\n\nfunc completeLocalFile(ctx *cli.Context) {\n\tif len(os.Args) >= 2 {\n\t\tlastArg := os.Args[len(os.Args)-2]\n\t\tcmd := findCurrentCommand(ctx)\n\t\tif lastArg != cmd.FullName() {\n\t\t\treturn\n\t\t}\n\t}\n\n\t// CAVEAT: We currently do not get partial words from bash/zsh.\n\t// e.g. \"brig stage /us\" will pass the following os.Args:\n\t// [\"brig\", \"stage\", \"--generate-bash-completion\"]\n\t//\n\t// Because of that we do no prefix completion right now.\n\t// We can probably tweak autcomplete/{z,ba}sh_autcomplete to\n\t// somehow do this, but after 30mins of googling I give up for now.\n\t//\n\t// If you read this, I challenge you to do it better.\n\tdir, err := os.Getwd()\n\tif err != nil {\n\t\t// silent error.\n\t\treturn\n\t}\n\n\tchildren, err := ioutil.ReadDir(dir)\n\tif err != nil {\n\t\t// silent error.\n\t\treturn\n\t}\n\n\tfor _, child := range children {\n\t\tfmt.Println(child.Name())\n\t}\n}\n\nfunc completeSubcommands(ctx *cli.Context) {\n\tif command := findCurrentCommand(ctx); command != nil {\n\t\tfor _, subCmd := range command.Subcommands {\n\t\t\tfmt.Println(subCmd.Name)\n\t\t}\n\t}\n}\n\nfunc commandNotFound(ctx *cli.Context, cmdName string) {\n\t// Try to find the commands we need to look at for a suggestion.\n\t// We only want to show the user the relevant subcommands.\n\tcmdPath, lastGoodCmds := findLastGoodCommands(ctx)\n\n\t// Figure out if it was a toplevel command or if some subcommand\n\t// (like e.g. 'remote') was correct.\n\tbadCmd := color.RedString(cmdName)\n\tif cmdPath == nil {\n\t\t// A toplevel command was wrong:\n\t\tfmt.Printf(\"»%s« is not a valid command. \", badCmd)\n\t} else {\n\t\t// A command of a subcommand was wrong:\n\t\tlastGoodSubCmd := color.YellowString(strings.Join(cmdPath, \" \"))\n\t\tfmt.Printf(\"»%s« is not a valid subcommand of »%s«. \", badCmd, lastGoodSubCmd)\n\t}\n\n\t// Get a list of similar commands:\n\tsimilars := findSimilarCommands(cmdName, lastGoodCmds)\n\n\tswitch len(similars) {\n\tcase 0:\n\t\tfmt.Printf(\"\\n\")\n\tcase 1:\n\t\tsuggestion := color.GreenString(similars[0].name)\n\t\tfmt.Printf(\"Did you maybe mean »%s«?\\n\", suggestion)\n\tdefault:\n\t\tfmt.Println(\"\\n\\nDid you maybe mean one of those?\")\n\t\tfor _, similar := range similars {\n\t\t\tfmt.Printf(\"  * %s\\n\", color.GreenString(similar.name))\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "cmd/tabwriter/example_test.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage tabwriter_test\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"text/tabwriter\"\n)\n\nfunc ExampleWriter_Init() {\n\tw := new(tabwriter.Writer)\n\n\t// Format in tab-separated columns with a tab stop of 8.\n\tw.Init(os.Stdout, 0, 8, 0, '\\t', 0)\n\tfmt.Fprintln(w, \"a\\tb\\tc\\td\\t.\")\n\tfmt.Fprintln(w, \"123\\t12345\\t1234567\\t123456789\\t.\")\n\tfmt.Fprintln(w)\n\tw.Flush()\n\n\t// Format right-aligned in space-separated columns of minimal width 5\n\t// and at least one blank of padding (so wider column entries do not\n\t// touch each other).\n\tw.Init(os.Stdout, 5, 0, 1, ' ', tabwriter.AlignRight)\n\tfmt.Fprintln(w, \"a\\tb\\tc\\td\\t.\")\n\tfmt.Fprintln(w, \"123\\t12345\\t1234567\\t123456789\\t.\")\n\tfmt.Fprintln(w)\n\tw.Flush()\n\n\t// output:\n\t// a\tb\tc\td\t\t.\n\t// 123\t12345\t1234567\t123456789\t.\n\t//\n\t//     a     b       c         d.\n\t//   123 12345 1234567 123456789.\n}\n\nfunc Example_elastic() {\n\t// Observe how the b's and the d's, despite appearing in the\n\t// second cell of each line, belong to different columns.\n\tw := tabwriter.NewWriter(os.Stdout, 0, 0, 1, '.', tabwriter.AlignRight|tabwriter.Debug)\n\tfmt.Fprintln(w, \"a\\tb\\tc\")\n\tfmt.Fprintln(w, \"aa\\tbb\\tcc\")\n\tfmt.Fprintln(w, \"aaa\\t\") // trailing tab\n\tfmt.Fprintln(w, \"aaaa\\tdddd\\teeee\")\n\tw.Flush()\n\n\t// output:\n\t// ....a|..b|c\n\t// ...aa|.bb|cc\n\t// ..aaa|\n\t// .aaaa|.dddd|eeee\n}\n\nfunc Example_trailingTab() {\n\t// Observe that the third line has no trailing tab,\n\t// so its final cell is not part of an aligned column.\n\tconst padding = 3\n\tw := tabwriter.NewWriter(os.Stdout, 0, 0, padding, '-', tabwriter.AlignRight|tabwriter.Debug)\n\tfmt.Fprintln(w, \"a\\tb\\taligned\\t\")\n\tfmt.Fprintln(w, \"aa\\tbb\\taligned\\t\")\n\tfmt.Fprintln(w, \"aaa\\tbbb\\tunaligned\") // no trailing tab\n\tfmt.Fprintln(w, \"aaaa\\tbbbb\\taligned\\t\")\n\tw.Flush()\n\n\t// output:\n\t// ------a|------b|---aligned|\n\t// -----aa|-----bb|---aligned|\n\t// ----aaa|----bbb|unaligned\n\t// ---aaaa|---bbbb|---aligned|\n}\n"
  },
  {
    "path": "cmd/tabwriter/tabwriter.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package tabwriter implements a write filter (tabwriter.Writer) that\n// translates tabbed columns in input into properly aligned text.\n//\n// The package is using the Elastic Tabstops algorithm described at\n// http://nickgravgaard.com/elastictabstops/index.html.\n//\n// The text/tabwriter package is frozen and is not accepting new features.\npackage tabwriter\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"unicode/utf8\"\n)\n\n// ----------------------------------------------------------------------------\n// Filter implementation\n\n// A cell represents a segment of text terminated by tabs or line breaks.\n// The text itself is stored in a separate buffer; cell only describes the\n// segment's size in bytes, its width in runes, and whether it's an htab\n// ('\\t') terminated cell.\n//\ntype cell struct {\n\tsize  int  // cell size in bytes\n\twidth int  // cell width in runes\n\thtab  bool // true if the cell is terminated by an htab ('\\t')\n}\n\n// A Writer is a filter that inserts padding around tab-delimited\n// columns in its input to align them in the output.\n//\n// The Writer treats incoming bytes as UTF-8-encoded text consisting\n// of cells terminated by horizontal ('\\t') or vertical ('\\v') tabs,\n// and newline ('\\n') or formfeed ('\\f') characters; both newline and\n// formfeed act as line breaks.\n//\n// Tab-terminated cells in contiguous lines constitute a column. The\n// Writer inserts padding as needed to make all cells in a column have\n// the same width, effectively aligning the columns. It assumes that\n// all characters have the same width, except for tabs for which a\n// tabwidth must be specified. Column cells must be tab-terminated, not\n// tab-separated: non-tab terminated trailing text at the end of a line\n// forms a cell but that cell is not part of an aligned column.\n// For instance, in this example (where | stands for a horizontal tab):\n//\n//\taaaa|bbb|d\n//\taa  |b  |dd\n//\ta   |\n//\taa  |cccc|eee\n//\n// the b and c are in distinct columns (the b column is not contiguous\n// all the way). The d and e are not in a column at all (there's no\n// terminating tab, nor would the column be contiguous).\n//\n// The Writer assumes that all Unicode code points have the same width;\n// this may not be true in some fonts or if the string contains combining\n// characters.\n//\n// If DiscardEmptyColumns is set, empty columns that are terminated\n// entirely by vertical (or \"soft\") tabs are discarded. Columns\n// terminated by horizontal (or \"hard\") tabs are not affected by\n// this flag.\n//\n// If a Writer is configured to filter HTML, HTML tags and entities\n// are passed through. The widths of tags and entities are\n// assumed to be zero (tags) and one (entities) for formatting purposes.\n//\n// A segment of text may be escaped by bracketing it with Escape\n// characters. The tabwriter passes escaped text segments through\n// unchanged. In particular, it does not interpret any tabs or line\n// breaks within the segment. If the StripEscape flag is set, the\n// Escape characters are stripped from the output; otherwise they\n// are passed through as well. For the purpose of formatting, the\n// width of the escaped text is always computed excluding the Escape\n// characters.\n//\n// The formfeed character acts like a newline but it also terminates\n// all columns in the current line (effectively calling Flush). Tab-\n// terminated cells in the next line start new columns. Unless found\n// inside an HTML tag or inside an escaped text segment, formfeed\n// characters appear as newlines in the output.\n//\n// The Writer must buffer input internally, because proper spacing\n// of one line may depend on the cells in future lines. Clients must\n// call Flush when done calling Write.\n//\ntype Writer struct {\n\t// configuration\n\toutput   io.Writer\n\tminwidth int\n\ttabwidth int\n\tpadding  int\n\tpadbytes [8]byte\n\tflags    uint\n\n\t// current state\n\tbuf     bytes.Buffer // collected text excluding tabs or line breaks\n\tpos     int          // buffer position up to which cell.width of incomplete cell has been computed\n\tcell    cell         // current incomplete cell; cell.width is up to buf[pos] excluding ignored sections\n\tendChar byte         // terminating char of escaped sequence (Escape for escapes, '>', ';' for HTML tags/entities, or 0)\n\tlines   [][]cell     // list of lines; each line is a list of cells\n\twidths  []int        // list of column widths in runes - re-used during formatting\n}\n\nfunc (b *Writer) addLine() { b.lines = append(b.lines, []cell{}) }\n\n// Reset the current state.\nfunc (b *Writer) reset() {\n\tb.buf.Reset()\n\tb.pos = 0\n\tb.cell = cell{}\n\tb.endChar = 0\n\tb.lines = b.lines[0:0]\n\tb.widths = b.widths[0:0]\n\tb.addLine()\n}\n\n// Internal representation (current state):\n//\n// - all text written is appended to buf; tabs and line breaks are stripped away\n// - at any given time there is a (possibly empty) incomplete cell at the end\n//   (the cell starts after a tab or line break)\n// - cell.size is the number of bytes belonging to the cell so far\n// - cell.width is text width in runes of that cell from the start of the cell to\n//   position pos; html tags and entities are excluded from this width if html\n//   filtering is enabled\n// - the sizes and widths of processed text are kept in the lines list\n//   which contains a list of cells for each line\n// - the widths list is a temporary list with current widths used during\n//   formatting; it is kept in Writer because it's re-used\n//\n//                    |<---------- size ---------->|\n//                    |                            |\n//                    |<- width ->|<- ignored ->|  |\n//                    |           |             |  |\n// [---processed---tab------------<tag>...</tag>...]\n// ^                  ^                         ^\n// |                  |                         |\n// buf                start of incomplete cell  pos\n\n// Formatting can be controlled with these flags.\nconst (\n\t// Ignore html tags and treat entities (starting with '&'\n\t// and ending in ';') as single characters (width = 1).\n\tFilterHTML uint = 1 << iota\n\n\t// Strip Escape characters bracketing escaped text segments\n\t// instead of passing them through unchanged with the text.\n\tStripEscape\n\n\t// Force right-alignment of cell content.\n\t// Default is left-alignment.\n\tAlignRight\n\n\t// Handle empty columns as if they were not present in\n\t// the input in the first place.\n\tDiscardEmptyColumns\n\n\t// Always use tabs for indentation columns (i.e., padding of\n\t// leading empty cells on the left) independent of padchar.\n\tTabIndent\n\n\t// Print a vertical bar ('|') between columns (after formatting).\n\t// Discarded columns appear as zero-width columns (\"||\").\n\tDebug\n)\n\n// Init initiliazes a Writer. The first parameter (output)\n// specifies the filter output. The remaining parameters control the formatting:\n//\n//\tminwidth\tminimal cell width including any padding\n//\ttabwidth\twidth of tab characters (equivalent number of spaces)\n//\tpadding\t\tpadding added to a cell before computing its width\n//\tpadchar\t\tASCII char used for padding\n//\t\t\tif padchar == '\\t', the Writer will assume that the\n//\t\t\twidth of a '\\t' in the formatted output is tabwidth,\n//\t\t\tand cells are left-aligned independent of align_left\n//\t\t\t(for correct-looking results, tabwidth must correspond\n//\t\t\tto the tab width in the viewer displaying the result)\n//\tflags\t\tformatting control\n//\nfunc (b *Writer) Init(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer {\n\tif minwidth < 0 || tabwidth < 0 || padding < 0 {\n\t\tpanic(\"negative minwidth, tabwidth, or padding\")\n\t}\n\tb.output = output\n\tb.minwidth = minwidth\n\tb.tabwidth = tabwidth\n\tb.padding = padding\n\tfor i := range b.padbytes {\n\t\tb.padbytes[i] = padchar\n\t}\n\tif padchar == '\\t' {\n\t\t// tab padding enforces left-alignment\n\t\tflags &^= AlignRight\n\t}\n\tb.flags = flags\n\n\tb.reset()\n\n\treturn b\n}\n\n// debugging support (keep code around)\nfunc (b *Writer) dump() {\n\tpos := 0\n\tfor i, line := range b.lines {\n\t\tprint(\"(\", i, \") \")\n\t\tfor _, c := range line {\n\t\t\tprint(\"[\", string(b.buf.Bytes()[pos:pos+c.size]), \"]\")\n\t\t\tpos += c.size\n\t\t}\n\t\tprint(\"\\n\")\n\t}\n\tprint(\"\\n\")\n}\n\n// local error wrapper so we can distinguish errors we want to return\n// as errors from genuine panics (which we don't want to return as errors)\ntype osError struct {\n\terr error\n}\n\nfunc (b *Writer) write0(buf []byte) {\n\tn, err := b.output.Write(buf)\n\tif n != len(buf) && err == nil {\n\t\terr = io.ErrShortWrite\n\t}\n\tif err != nil {\n\t\tpanic(osError{err})\n\t}\n}\n\nfunc (b *Writer) writeN(src []byte, n int) {\n\tfor n > len(src) {\n\t\tb.write0(src)\n\t\tn -= len(src)\n\t}\n\tb.write0(src[0:n])\n}\n\nvar (\n\tnewline = []byte{'\\n'}\n\ttabs    = []byte(\"\\t\\t\\t\\t\\t\\t\\t\\t\")\n)\n\nfunc (b *Writer) writePadding(textw, cellw int, useTabs bool) {\n\tif b.padbytes[0] == '\\t' || useTabs {\n\t\t// padding is done with tabs\n\t\tif b.tabwidth == 0 {\n\t\t\treturn // tabs have no width - can't do any padding\n\t\t}\n\t\t// make cellw the smallest multiple of b.tabwidth\n\t\tcellw = (cellw + b.tabwidth - 1) / b.tabwidth * b.tabwidth\n\t\tn := cellw - textw // amount of padding\n\t\tif n < 0 {\n\t\t\tpanic(\"internal error\")\n\t\t}\n\t\tb.writeN(tabs, (n+b.tabwidth-1)/b.tabwidth)\n\t\treturn\n\t}\n\n\t// padding is done with non-tab characters\n\tb.writeN(b.padbytes[0:], cellw-textw)\n}\n\nvar vbar = []byte{'|'}\n\nfunc (b *Writer) writeLines(pos0 int, line0, line1 int) (pos int) {\n\tpos = pos0\n\tfor i := line0; i < line1; i++ {\n\t\tline := b.lines[i]\n\n\t\t// if TabIndent is set, use tabs to pad leading empty cells\n\t\tuseTabs := b.flags&TabIndent != 0\n\n\t\tfor j, c := range line {\n\t\t\tif j > 0 && b.flags&Debug != 0 {\n\t\t\t\t// indicate column break\n\t\t\t\tb.write0(vbar)\n\t\t\t}\n\n\t\t\tif c.size == 0 {\n\t\t\t\t// empty cell\n\t\t\t\tif j < len(b.widths) {\n\t\t\t\t\tb.writePadding(c.width, b.widths[j], useTabs)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// non-empty cell\n\t\t\t\tuseTabs = false\n\t\t\t\tif b.flags&AlignRight == 0 { // align left\n\t\t\t\t\tb.write0(b.buf.Bytes()[pos : pos+c.size])\n\t\t\t\t\tpos += c.size\n\t\t\t\t\tif j < len(b.widths) {\n\t\t\t\t\t\tb.writePadding(c.width, b.widths[j], false)\n\t\t\t\t\t}\n\t\t\t\t} else { // align right\n\t\t\t\t\tif j < len(b.widths) {\n\t\t\t\t\t\tb.writePadding(c.width, b.widths[j], false)\n\t\t\t\t\t}\n\t\t\t\t\tb.write0(b.buf.Bytes()[pos : pos+c.size])\n\t\t\t\t\tpos += c.size\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif i+1 == len(b.lines) {\n\t\t\t// last buffered line - we don't have a newline, so just write\n\t\t\t// any outstanding buffered data\n\t\t\tb.write0(b.buf.Bytes()[pos : pos+b.cell.size])\n\t\t\tpos += b.cell.size\n\t\t} else {\n\t\t\t// not the last line - write newline\n\t\t\tb.write0(newline)\n\t\t}\n\t}\n\treturn\n}\n\n// Format the text between line0 and line1 (excluding line1); pos\n// is the buffer position corresponding to the beginning of line0.\n// Returns the buffer position corresponding to the beginning of\n// line1 and an error, if any.\n//\nfunc (b *Writer) format(pos0 int, line0, line1 int) (pos int) {\n\tpos = pos0\n\tcolumn := len(b.widths)\n\tfor this := line0; this < line1; this++ {\n\t\tline := b.lines[this]\n\n\t\tif column < len(line)-1 {\n\t\t\t// cell exists in this column => this line\n\t\t\t// has more cells than the previous line\n\t\t\t// (the last cell per line is ignored because cells are\n\t\t\t// tab-terminated; the last cell per line describes the\n\t\t\t// text before the newline/formfeed and does not belong\n\t\t\t// to a column)\n\n\t\t\t// print unprinted lines until beginning of block\n\t\t\tpos = b.writeLines(pos, line0, this)\n\t\t\tline0 = this\n\n\t\t\t// column block begin\n\t\t\twidth := b.minwidth // minimal column width\n\t\t\tdiscardable := true // true if all cells in this column are empty and \"soft\"\n\t\t\tfor ; this < line1; this++ {\n\t\t\t\tline = b.lines[this]\n\t\t\t\tif column < len(line)-1 {\n\t\t\t\t\t// cell exists in this column\n\t\t\t\t\tc := line[column]\n\t\t\t\t\t// update width\n\t\t\t\t\tif w := c.width + b.padding; w > width {\n\t\t\t\t\t\twidth = w\n\t\t\t\t\t}\n\t\t\t\t\t// update discardable\n\t\t\t\t\tif c.width > 0 || c.htab {\n\t\t\t\t\t\tdiscardable = false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// column block end\n\n\t\t\t// discard empty columns if necessary\n\t\t\tif discardable && b.flags&DiscardEmptyColumns != 0 {\n\t\t\t\twidth = 0\n\t\t\t}\n\n\t\t\t// format and print all columns to the right of this column\n\t\t\t// (we know the widths of this column and all columns to the left)\n\t\t\tb.widths = append(b.widths, width) // push width\n\t\t\tpos = b.format(pos, line0, this)\n\t\t\tb.widths = b.widths[0 : len(b.widths)-1] // pop width\n\t\t\tline0 = this\n\t\t}\n\t}\n\n\t// print unprinted lines until end\n\treturn b.writeLines(pos, line0, line1)\n}\n\n// Append text to current cell.\nfunc (b *Writer) append(text []byte) {\n\tb.buf.Write(text)\n\tb.cell.size += len(text)\n}\n\n// Update the cell width.\nfunc (b *Writer) updateWidth() {\n\tb.cell.width += utf8.RuneCount(b.buf.Bytes()[b.pos:b.buf.Len()])\n\tb.pos = b.buf.Len()\n}\n\n// Escape escapes a text segment.\n// For instance, the tab in this string \"Ignore this tab: \\xff\\t\\xff\"\n// does not terminate a cell and constitutes a single character of\n// width one for formatting purposes.\n//\n// The value 0xff was chosen because it cannot appear in a valid UTF-8 sequence.\n//\nconst Escape = '\\xff'\n\n// ColorStart defines a byte sequence that indicates the start of terminal colors.\nconst ColorStart = '\\x1B'\n\n// Start escaped mode.\nfunc (b *Writer) startEscape(ch byte) {\n\tswitch ch {\n\tcase Escape:\n\t\tb.endChar = Escape\n\tcase '<':\n\t\tb.endChar = '>'\n\tcase '&':\n\t\tb.endChar = ';'\n\tcase ColorStart:\n\t\tb.endChar = 'm'\n\t}\n}\n\n// Terminate escaped mode. If the escaped text was an HTML tag, its width\n// is assumed to be zero for formatting purposes; if it was an HTML entity,\n// its width is assumed to be one. In all other cases, the width is the\n// unicode width of the text.\n//\nfunc (b *Writer) endEscape() {\n\tswitch b.endChar {\n\tcase Escape:\n\t\tb.updateWidth()\n\t\tif b.flags&StripEscape == 0 {\n\t\t\tb.cell.width -= 2 // don't count the Escape chars\n\t\t}\n\tcase 'm': // color escape do not count\n\tcase '>': // tag of zero width\n\tcase ';':\n\t\tb.cell.width++ // entity, count as one rune\n\t}\n\tb.pos = b.buf.Len()\n\tb.endChar = 0\n}\n\n// Terminate the current cell by adding it to the list of cells of the\n// current line. Returns the number of cells in that line.\n//\nfunc (b *Writer) terminateCell(htab bool) int {\n\tb.cell.htab = htab\n\tline := &b.lines[len(b.lines)-1]\n\t*line = append(*line, b.cell)\n\tb.cell = cell{}\n\treturn len(*line)\n}\n\nfunc handlePanic(err *error, op string) {\n\tif e := recover(); e != nil {\n\t\tif nerr, ok := e.(osError); ok {\n\t\t\t*err = nerr.err\n\t\t\treturn\n\t\t}\n\t\tpanic(\"tabwriter: panic during \" + op)\n\t}\n}\n\n// Flush should be called after the last call to Write to ensure\n// that any data buffered in the Writer is written to output. Any\n// incomplete escape sequence at the end is considered\n// complete for formatting purposes.\nfunc (b *Writer) Flush() error {\n\treturn b.flush()\n}\n\nfunc (b *Writer) flush() (err error) {\n\tdefer b.reset() // even in the presence of errors\n\tdefer handlePanic(&err, \"Flush\")\n\n\t// add current cell if not empty\n\tif b.cell.size > 0 {\n\t\tif b.endChar != 0 {\n\t\t\t// inside escape - terminate it even if incomplete\n\t\t\tb.endEscape()\n\t\t}\n\t\tb.terminateCell(false)\n\t}\n\n\t// format contents of buffer\n\tb.format(0, 0, len(b.lines))\n\treturn nil\n}\n\nvar hbar = []byte(\"---\\n\")\n\n// Write writes buf to the writer b.\n// The only errors returned are ones encountered\n// while writing to the underlying output stream.\n//\nfunc (b *Writer) Write(buf []byte) (n int, err error) {\n\tdefer handlePanic(&err, \"Write\")\n\n\t// split text into cells\n\tn = 0\n\tfor i, ch := range buf {\n\t\tif b.endChar == 0 {\n\t\t\t// outside escape\n\t\t\tswitch ch {\n\t\t\tcase '\\t', '\\v', '\\n', '\\f':\n\t\t\t\t// end of cell\n\t\t\t\tb.append(buf[n:i])\n\t\t\t\tb.updateWidth()\n\t\t\t\tn = i + 1 // ch consumed\n\t\t\t\tncells := b.terminateCell(ch == '\\t')\n\t\t\t\tif ch == '\\n' || ch == '\\f' {\n\t\t\t\t\t// terminate line\n\t\t\t\t\tb.addLine()\n\t\t\t\t\tif ch == '\\f' || ncells == 1 {\n\t\t\t\t\t\t// A '\\f' always forces a flush. Otherwise, if the previous\n\t\t\t\t\t\t// line has only one cell which does not have an impact on\n\t\t\t\t\t\t// the formatting of the following lines (the last cell per\n\t\t\t\t\t\t// line is ignored by format()), thus we can flush the\n\t\t\t\t\t\t// Writer contents.\n\t\t\t\t\t\tif err = b.Flush(); err != nil {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ch == '\\f' && b.flags&Debug != 0 {\n\t\t\t\t\t\t\t// indicate section break\n\t\t\t\t\t\t\tb.write0(hbar)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tcase Escape:\n\t\t\t\t// start of escaped sequence\n\t\t\t\tb.append(buf[n:i])\n\t\t\t\tb.updateWidth()\n\t\t\t\tn = i\n\t\t\t\tif b.flags&StripEscape != 0 {\n\t\t\t\t\tn++ // strip Escape\n\t\t\t\t}\n\t\t\t\tb.startEscape(Escape)\n\n\t\t\tcase ColorStart:\n\t\t\t\tb.append(buf[n:i])\n\t\t\t\tb.updateWidth()\n\t\t\t\tn = i\n\t\t\t\tb.startEscape(ch)\n\t\t\tcase '<', '&':\n\t\t\t\t// possibly an html tag/entity\n\t\t\t\tif b.flags&FilterHTML != 0 {\n\t\t\t\t\t// begin of tag/entity\n\t\t\t\t\tb.append(buf[n:i])\n\t\t\t\t\tb.updateWidth()\n\t\t\t\t\tn = i\n\t\t\t\t\tb.startEscape(ch)\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// inside escape\n\t\t\tif ch == b.endChar {\n\t\t\t\t// end of tag/entity\n\t\t\t\tj := i + 1\n\t\t\t\tif ch == Escape && b.flags&StripEscape != 0 {\n\t\t\t\t\tj = i // strip Escape\n\t\t\t\t}\n\t\t\t\tb.append(buf[n:j])\n\t\t\t\tn = i + 1 // ch consumed\n\t\t\t\tb.endEscape()\n\t\t\t}\n\t\t}\n\t}\n\n\t// append leftover text\n\tb.append(buf[n:])\n\tn = len(buf)\n\treturn\n}\n\n// NewWriter allocates and initializes a new tabwriter.Writer.\n// The parameters are the same as for the Init function.\n//\nfunc NewWriter(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer {\n\treturn new(Writer).Init(output, minwidth, tabwidth, padding, padchar, flags)\n}\n"
  },
  {
    "path": "cmd/tabwriter/tabwriter_test.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage tabwriter_test\n\nimport (\n\t\"io\"\n\t\"testing\"\n\t. \"text/tabwriter\"\n)\n\ntype buffer struct {\n\ta []byte\n}\n\nfunc (b *buffer) init(n int) { b.a = make([]byte, 0, n) }\n\nfunc (b *buffer) clear() { b.a = b.a[0:0] }\n\nfunc (b *buffer) Write(buf []byte) (written int, err error) {\n\tn := len(b.a)\n\tm := len(buf)\n\tif n+m <= cap(b.a) {\n\t\tb.a = b.a[0 : n+m]\n\t\tfor i := 0; i < m; i++ {\n\t\t\tb.a[n+i] = buf[i]\n\t\t}\n\t} else {\n\t\tpanic(\"buffer.Write: buffer too small\")\n\t}\n\treturn len(buf), nil\n}\n\nfunc (b *buffer) String() string { return string(b.a) }\n\nfunc write(t *testing.T, testname string, w *Writer, src string) {\n\twritten, err := io.WriteString(w, src)\n\tif err != nil {\n\t\tt.Errorf(\"--- test: %s\\n--- src:\\n%q\\n--- write error: %v\\n\", testname, src, err)\n\t}\n\tif written != len(src) {\n\t\tt.Errorf(\"--- test: %s\\n--- src:\\n%q\\n--- written = %d, len(src) = %d\\n\", testname, src, written, len(src))\n\t}\n}\n\nfunc verify(t *testing.T, testname string, w *Writer, b *buffer, src, expected string) {\n\terr := w.Flush()\n\tif err != nil {\n\t\tt.Errorf(\"--- test: %s\\n--- src:\\n%q\\n--- flush error: %v\\n\", testname, src, err)\n\t}\n\n\tres := b.String()\n\tif res != expected {\n\t\tt.Errorf(\"--- test: %s\\n--- src:\\n%q\\n--- found:\\n%q\\n--- expected:\\n%q\\n\", testname, src, res, expected)\n\t}\n}\n\nfunc check(t *testing.T, testname string, minwidth, tabwidth, padding int, padchar byte, flags uint, src, expected string) {\n\tvar b buffer\n\tb.init(1000)\n\n\tvar w Writer\n\tw.Init(&b, minwidth, tabwidth, padding, padchar, flags)\n\n\t// write all at once\n\ttitle := testname + \" (written all at once)\"\n\tb.clear()\n\twrite(t, title, &w, src)\n\tverify(t, title, &w, &b, src, expected)\n\n\t// write byte-by-byte\n\ttitle = testname + \" (written byte-by-byte)\"\n\tb.clear()\n\tfor i := 0; i < len(src); i++ {\n\t\twrite(t, title, &w, src[i:i+1])\n\t}\n\tverify(t, title, &w, &b, src, expected)\n\n\t// write using Fibonacci slice sizes\n\ttitle = testname + \" (written in fibonacci slices)\"\n\tb.clear()\n\tfor i, d := 0, 0; i < len(src); {\n\t\twrite(t, title, &w, src[i:i+d])\n\t\ti, d = i+d, d+1\n\t\tif i+d > len(src) {\n\t\t\td = len(src) - i\n\t\t}\n\t}\n\tverify(t, title, &w, &b, src, expected)\n}\n\nvar tests = []struct {\n\ttestname                    string\n\tminwidth, tabwidth, padding int\n\tpadchar                     byte\n\tflags                       uint\n\tsrc, expected               string\n}{\n\t{\n\t\t\"1a\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\",\n\t\t\"\",\n\t},\n\n\t{\n\t\t\"1a debug\",\n\t\t8, 0, 1, '.', Debug,\n\t\t\"\",\n\t\t\"\",\n\t},\n\n\t{\n\t\t\"1b esc stripped\",\n\t\t8, 0, 1, '.', StripEscape,\n\t\t\"\\xff\\xff\",\n\t\t\"\",\n\t},\n\n\t{\n\t\t\"1b esc\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\xff\\xff\",\n\t\t\"\\xff\\xff\",\n\t},\n\n\t{\n\t\t\"1c esc stripped\",\n\t\t8, 0, 1, '.', StripEscape,\n\t\t\"\\xff\\t\\xff\",\n\t\t\"\\t\",\n\t},\n\n\t{\n\t\t\"1c esc\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\xff\\t\\xff\",\n\t\t\"\\xff\\t\\xff\",\n\t},\n\n\t{\n\t\t\"1d esc stripped\",\n\t\t8, 0, 1, '.', StripEscape,\n\t\t\"\\xff\\\"foo\\t\\n\\tbar\\\"\\xff\",\n\t\t\"\\\"foo\\t\\n\\tbar\\\"\",\n\t},\n\n\t{\n\t\t\"1d esc\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\xff\\\"foo\\t\\n\\tbar\\\"\\xff\",\n\t\t\"\\xff\\\"foo\\t\\n\\tbar\\\"\\xff\",\n\t},\n\n\t{\n\t\t\"1e esc stripped\",\n\t\t8, 0, 1, '.', StripEscape,\n\t\t\"abc\\xff\\tdef\", // unterminated escape\n\t\t\"abc\\tdef\",\n\t},\n\n\t{\n\t\t\"1e esc\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"abc\\xff\\tdef\", // unterminated escape\n\t\t\"abc\\xff\\tdef\",\n\t},\n\n\t{\n\t\t\"2\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\n\\n\\n\",\n\t\t\"\\n\\n\\n\",\n\t},\n\n\t{\n\t\t\"3\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"a\\nb\\nc\",\n\t\t\"a\\nb\\nc\",\n\t},\n\n\t{\n\t\t\"4a\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\t\", // '\\t' terminates an empty cell on last line - nothing to print\n\t\t\"\",\n\t},\n\n\t{\n\t\t\"4b\",\n\t\t8, 0, 1, '.', AlignRight,\n\t\t\"\\t\", // '\\t' terminates an empty cell on last line - nothing to print\n\t\t\"\",\n\t},\n\n\t{\n\t\t\"5\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"*\\t*\",\n\t\t\"*.......*\",\n\t},\n\n\t{\n\t\t\"5b\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"*\\t*\\n\",\n\t\t\"*.......*\\n\",\n\t},\n\n\t{\n\t\t\"5c\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"*\\t*\\t\",\n\t\t\"*.......*\",\n\t},\n\n\t{\n\t\t\"5c debug\",\n\t\t8, 0, 1, '.', Debug,\n\t\t\"*\\t*\\t\",\n\t\t\"*.......|*\",\n\t},\n\n\t{\n\t\t\"5d\",\n\t\t8, 0, 1, '.', AlignRight,\n\t\t\"*\\t*\\t\",\n\t\t\".......**\",\n\t},\n\n\t{\n\t\t\"6\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"\\t\\n\",\n\t\t\"........\\n\",\n\t},\n\n\t{\n\t\t\"7a\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"a) foo\",\n\t\t\"a) foo\",\n\t},\n\n\t{\n\t\t\"7b\",\n\t\t8, 0, 1, ' ', 0,\n\t\t\"b) foo\\tbar\",\n\t\t\"b) foo  bar\",\n\t},\n\n\t{\n\t\t\"7c\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"c) foo\\tbar\\t\",\n\t\t\"c) foo..bar\",\n\t},\n\n\t{\n\t\t\"7d\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"d) foo\\tbar\\n\",\n\t\t\"d) foo..bar\\n\",\n\t},\n\n\t{\n\t\t\"7e\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"e) foo\\tbar\\t\\n\",\n\t\t\"e) foo..bar.....\\n\",\n\t},\n\n\t{\n\t\t\"7f\",\n\t\t8, 0, 1, '.', FilterHTML,\n\t\t\"f) f&lt;o\\t<b>bar</b>\\t\\n\",\n\t\t\"f) f&lt;o..<b>bar</b>.....\\n\",\n\t},\n\n\t{\n\t\t\"7g\",\n\t\t8, 0, 1, '.', FilterHTML,\n\t\t\"g) f&lt;o\\t<b>bar</b>\\t non-terminated entity &amp\",\n\t\t\"g) f&lt;o..<b>bar</b>..... non-terminated entity &amp\",\n\t},\n\n\t{\n\t\t\"7g debug\",\n\t\t8, 0, 1, '.', FilterHTML | Debug,\n\t\t\"g) f&lt;o\\t<b>bar</b>\\t non-terminated entity &amp\",\n\t\t\"g) f&lt;o..|<b>bar</b>.....| non-terminated entity &amp\",\n\t},\n\n\t{\n\t\t\"8\",\n\t\t8, 0, 1, '*', 0,\n\t\t\"Hello, world!\\n\",\n\t\t\"Hello, world!\\n\",\n\t},\n\n\t{\n\t\t\"9a\",\n\t\t1, 0, 0, '.', 0,\n\t\t\"1\\t2\\t3\\t4\\n\" +\n\t\t\t\"11\\t222\\t3333\\t44444\\n\",\n\n\t\t\"1.2..3...4\\n\" +\n\t\t\t\"11222333344444\\n\",\n\t},\n\n\t{\n\t\t\"9b\",\n\t\t1, 0, 0, '.', FilterHTML,\n\t\t\"1\\t2<!---\\f--->\\t3\\t4\\n\" + // \\f inside HTML is ignored\n\t\t\t\"11\\t222\\t3333\\t44444\\n\",\n\n\t\t\"1.2<!---\\f--->..3...4\\n\" +\n\t\t\t\"11222333344444\\n\",\n\t},\n\n\t{\n\t\t\"9c\",\n\t\t1, 0, 0, '.', 0,\n\t\t\"1\\t2\\t3\\t4\\f\" + // \\f causes a newline and flush\n\t\t\t\"11\\t222\\t3333\\t44444\\n\",\n\n\t\t\"1234\\n\" +\n\t\t\t\"11222333344444\\n\",\n\t},\n\n\t{\n\t\t\"9c debug\",\n\t\t1, 0, 0, '.', Debug,\n\t\t\"1\\t2\\t3\\t4\\f\" + // \\f causes a newline and flush\n\t\t\t\"11\\t222\\t3333\\t44444\\n\",\n\n\t\t\"1|2|3|4\\n\" +\n\t\t\t\"---\\n\" +\n\t\t\t\"11|222|3333|44444\\n\",\n\t},\n\n\t{\n\t\t\"10a\",\n\t\t5, 0, 0, '.', 0,\n\t\t\"1\\t2\\t3\\t4\\n\",\n\t\t\"1....2....3....4\\n\",\n\t},\n\n\t{\n\t\t\"10b\",\n\t\t5, 0, 0, '.', 0,\n\t\t\"1\\t2\\t3\\t4\\t\\n\",\n\t\t\"1....2....3....4....\\n\",\n\t},\n\n\t{\n\t\t\"11\",\n\t\t8, 0, 1, '.', 0,\n\t\t\"本\\tb\\tc\\n\" +\n\t\t\t\"aa\\t\\u672c\\u672c\\u672c\\tcccc\\tddddd\\n\" +\n\t\t\t\"aaa\\tbbbb\\n\",\n\n\t\t\"本.......b.......c\\n\" +\n\t\t\t\"aa......本本本.....cccc....ddddd\\n\" +\n\t\t\t\"aaa.....bbbb\\n\",\n\t},\n\n\t{\n\t\t\"12a\",\n\t\t8, 0, 1, ' ', AlignRight,\n\t\t\"a\\tè\\tc\\t\\n\" +\n\t\t\t\"aa\\tèèè\\tcccc\\tddddd\\t\\n\" +\n\t\t\t\"aaa\\tèèèè\\t\\n\",\n\n\t\t\"       a       è       c\\n\" +\n\t\t\t\"      aa     èèè    cccc   ddddd\\n\" +\n\t\t\t\"     aaa    èèèè\\n\",\n\t},\n\n\t{\n\t\t\"12b\",\n\t\t2, 0, 0, ' ', 0,\n\t\t\"a\\tb\\tc\\n\" +\n\t\t\t\"aa\\tbbb\\tcccc\\n\" +\n\t\t\t\"aaa\\tbbbb\\n\",\n\n\t\t\"a  b  c\\n\" +\n\t\t\t\"aa bbbcccc\\n\" +\n\t\t\t\"aaabbbb\\n\",\n\t},\n\n\t{\n\t\t\"12c\",\n\t\t8, 0, 1, '_', 0,\n\t\t\"a\\tb\\tc\\n\" +\n\t\t\t\"aa\\tbbb\\tcccc\\n\" +\n\t\t\t\"aaa\\tbbbb\\n\",\n\n\t\t\"a_______b_______c\\n\" +\n\t\t\t\"aa______bbb_____cccc\\n\" +\n\t\t\t\"aaa_____bbbb\\n\",\n\t},\n\n\t{\n\t\t\"13a\",\n\t\t4, 0, 1, '-', 0,\n\t\t\"4444\\t日本語\\t22\\t1\\t333\\n\" +\n\t\t\t\"999999999\\t22\\n\" +\n\t\t\t\"7\\t22\\n\" +\n\t\t\t\"\\t\\t\\t88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666\\t666666\\t666666\\t4444\\n\" +\n\t\t\t\"1\\t1\\t999999999\\t0000000000\\n\",\n\n\t\t\"4444------日本語-22--1---333\\n\" +\n\t\t\t\"999999999-22\\n\" +\n\t\t\t\"7---------22\\n\" +\n\t\t\t\"------------------88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666-666666-666666----4444\\n\" +\n\t\t\t\"1------1------999999999-0000000000\\n\",\n\t},\n\n\t{\n\t\t\"13b\",\n\t\t4, 0, 3, '.', 0,\n\t\t\"4444\\t333\\t22\\t1\\t333\\n\" +\n\t\t\t\"999999999\\t22\\n\" +\n\t\t\t\"7\\t22\\n\" +\n\t\t\t\"\\t\\t\\t88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666\\t666666\\t666666\\t4444\\n\" +\n\t\t\t\"1\\t1\\t999999999\\t0000000000\\n\",\n\n\t\t\"4444........333...22...1...333\\n\" +\n\t\t\t\"999999999...22\\n\" +\n\t\t\t\"7...........22\\n\" +\n\t\t\t\"....................88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666...666666...666666......4444\\n\" +\n\t\t\t\"1........1........999999999...0000000000\\n\",\n\t},\n\n\t{\n\t\t\"13c\",\n\t\t8, 8, 1, '\\t', FilterHTML,\n\t\t\"4444\\t333\\t22\\t1\\t333\\n\" +\n\t\t\t\"999999999\\t22\\n\" +\n\t\t\t\"7\\t22\\n\" +\n\t\t\t\"\\t\\t\\t88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666\\t666666\\t666666\\t4444\\n\" +\n\t\t\t\"1\\t1\\t<font color=red attr=日本語>999999999</font>\\t0000000000\\n\",\n\n\t\t\"4444\\t\\t333\\t22\\t1\\t333\\n\" +\n\t\t\t\"999999999\\t22\\n\" +\n\t\t\t\"7\\t\\t22\\n\" +\n\t\t\t\"\\t\\t\\t\\t88888888\\n\" +\n\t\t\t\"\\n\" +\n\t\t\t\"666666\\t666666\\t666666\\t\\t4444\\n\" +\n\t\t\t\"1\\t1\\t<font color=red attr=日本語>999999999</font>\\t0000000000\\n\",\n\t},\n\n\t{\n\t\t\"14\",\n\t\t1, 0, 2, ' ', AlignRight,\n\t\t\".0\\t.3\\t2.4\\t-5.1\\t\\n\" +\n\t\t\t\"23.0\\t12345678.9\\t2.4\\t-989.4\\t\\n\" +\n\t\t\t\"5.1\\t12.0\\t2.4\\t-7.0\\t\\n\" +\n\t\t\t\".0\\t0.0\\t332.0\\t8908.0\\t\\n\" +\n\t\t\t\".0\\t-.3\\t456.4\\t22.1\\t\\n\" +\n\t\t\t\".0\\t1.2\\t44.4\\t-13.3\\t\\t\",\n\n\t\t\"    .0          .3    2.4    -5.1\\n\" +\n\t\t\t\"  23.0  12345678.9    2.4  -989.4\\n\" +\n\t\t\t\"   5.1        12.0    2.4    -7.0\\n\" +\n\t\t\t\"    .0         0.0  332.0  8908.0\\n\" +\n\t\t\t\"    .0         -.3  456.4    22.1\\n\" +\n\t\t\t\"    .0         1.2   44.4   -13.3\",\n\t},\n\n\t{\n\t\t\"14 debug\",\n\t\t1, 0, 2, ' ', AlignRight | Debug,\n\t\t\".0\\t.3\\t2.4\\t-5.1\\t\\n\" +\n\t\t\t\"23.0\\t12345678.9\\t2.4\\t-989.4\\t\\n\" +\n\t\t\t\"5.1\\t12.0\\t2.4\\t-7.0\\t\\n\" +\n\t\t\t\".0\\t0.0\\t332.0\\t8908.0\\t\\n\" +\n\t\t\t\".0\\t-.3\\t456.4\\t22.1\\t\\n\" +\n\t\t\t\".0\\t1.2\\t44.4\\t-13.3\\t\\t\",\n\n\t\t\"    .0|          .3|    2.4|    -5.1|\\n\" +\n\t\t\t\"  23.0|  12345678.9|    2.4|  -989.4|\\n\" +\n\t\t\t\"   5.1|        12.0|    2.4|    -7.0|\\n\" +\n\t\t\t\"    .0|         0.0|  332.0|  8908.0|\\n\" +\n\t\t\t\"    .0|         -.3|  456.4|    22.1|\\n\" +\n\t\t\t\"    .0|         1.2|   44.4|   -13.3|\",\n\t},\n\n\t{\n\t\t\"15a\",\n\t\t4, 0, 0, '.', 0,\n\t\t\"a\\t\\tb\",\n\t\t\"a.......b\",\n\t},\n\n\t{\n\t\t\"15b\",\n\t\t4, 0, 0, '.', DiscardEmptyColumns,\n\t\t\"a\\t\\tb\", // htabs - do not discard column\n\t\t\"a.......b\",\n\t},\n\n\t{\n\t\t\"15c\",\n\t\t4, 0, 0, '.', DiscardEmptyColumns,\n\t\t\"a\\v\\vb\",\n\t\t\"a...b\",\n\t},\n\n\t{\n\t\t\"15d\",\n\t\t4, 0, 0, '.', AlignRight | DiscardEmptyColumns,\n\t\t\"a\\v\\vb\",\n\t\t\"...ab\",\n\t},\n\n\t{\n\t\t\"16a\",\n\t\t100, 100, 0, '\\t', 0,\n\t\t\"a\\tb\\t\\td\\n\" +\n\t\t\t\"a\\tb\\t\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\n\t\t\"a\\tb\\t\\td\\n\" +\n\t\t\t\"a\\tb\\t\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\t},\n\n\t{\n\t\t\"16b\",\n\t\t100, 100, 0, '\\t', DiscardEmptyColumns,\n\t\t\"a\\vb\\v\\vd\\n\" +\n\t\t\t\"a\\vb\\v\\vd\\ve\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\vb\\vc\\vd\\n\" +\n\t\t\t\"a\\vb\\vc\\vd\\ve\\n\",\n\n\t\t\"a\\tb\\td\\n\" +\n\t\t\t\"a\\tb\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\t},\n\n\t{\n\t\t\"16b debug\",\n\t\t100, 100, 0, '\\t', DiscardEmptyColumns | Debug,\n\t\t\"a\\vb\\v\\vd\\n\" +\n\t\t\t\"a\\vb\\v\\vd\\ve\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\vb\\vc\\vd\\n\" +\n\t\t\t\"a\\vb\\vc\\vd\\ve\\n\",\n\n\t\t\"a\\t|b\\t||d\\n\" +\n\t\t\t\"a\\t|b\\t||d\\t|e\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\t|b\\t|c\\t|d\\n\" +\n\t\t\t\"a\\t|b\\t|c\\t|d\\t|e\\n\",\n\t},\n\n\t{\n\t\t\"16c\",\n\t\t100, 100, 0, '\\t', DiscardEmptyColumns,\n\t\t\"a\\tb\\t\\td\\n\" + // hard tabs - do not discard column\n\t\t\t\"a\\tb\\t\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\n\t\t\"a\\tb\\t\\td\\n\" +\n\t\t\t\"a\\tb\\t\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\t},\n\n\t{\n\t\t\"16c debug\",\n\t\t100, 100, 0, '\\t', DiscardEmptyColumns | Debug,\n\t\t\"a\\tb\\t\\td\\n\" + // hard tabs - do not discard column\n\t\t\t\"a\\tb\\t\\td\\te\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\n\" +\n\t\t\t\"a\\tb\\tc\\td\\te\\n\",\n\n\t\t\"a\\t|b\\t|\\t|d\\n\" +\n\t\t\t\"a\\t|b\\t|\\t|d\\t|e\\n\" +\n\t\t\t\"a\\n\" +\n\t\t\t\"a\\t|b\\t|c\\t|d\\n\" +\n\t\t\t\"a\\t|b\\t|c\\t|d\\t|e\\n\",\n\t},\n}\n\nfunc Test(t *testing.T) {\n\tfor _, e := range tests {\n\t\tcheck(t, e.testname, e.minwidth, e.tabwidth, e.padding, e.padchar, e.flags, e.src, e.expected)\n\t}\n}\n\ntype panicWriter struct{}\n\nfunc (panicWriter) Write([]byte) (int, error) {\n\tpanic(\"cannot write\")\n}\n\nfunc wantPanicString(t *testing.T, want string) {\n\tif e := recover(); e != nil {\n\t\tgot, ok := e.(string)\n\t\tswitch {\n\t\tcase !ok:\n\t\t\tt.Errorf(\"got %v (%T), want panic string\", e, e)\n\t\tcase got != want:\n\t\t\tt.Errorf(\"wrong panic message: got %q, want %q\", got, want)\n\t\t}\n\t}\n}\n\nfunc TestPanicDuringFlush(t *testing.T) {\n\tdefer wantPanicString(t, \"tabwriter: panic during Flush\")\n\tvar p panicWriter\n\tw := new(Writer)\n\tw.Init(p, 0, 0, 5, ' ', 0)\n\tio.WriteString(w, \"a\")\n\tw.Flush()\n\tt.Errorf(\"failed to panic during Flush\")\n}\n\nfunc TestPanicDuringWrite(t *testing.T) {\n\tdefer wantPanicString(t, \"tabwriter: panic during Write\")\n\tvar p panicWriter\n\tw := new(Writer)\n\tw.Init(p, 0, 0, 5, ' ', 0)\n\tio.WriteString(w, \"a\\n\\n\") // the second \\n triggers a call to w.Write and thus a panic\n\tt.Errorf(\"failed to panic during Write\")\n}\n"
  },
  {
    "path": "cmd/tree.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\t\"unicode\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n)\n\nvar (\n\ttreeRunePipe   = \"│\"\n\ttreeRuneTri    = \"├\"\n\ttreeRuneBar    = \"──\"\n\ttreeRuneCorner = \"└\"\n)\n\ntype treeNode struct {\n\tname     string\n\torder    []*treeNode\n\tchildren map[string]*treeNode\n\tisLast   bool\n\tparent   *treeNode\n\tdepth    int\n\tentry    client.StatInfo\n}\n\ntype treeCfg struct {\n\tshowPin bool\n\tformat  func(n *treeNode) string\n}\n\n// This is a very stripped down version of util.Trie.Insert()\n// but with support for ordering the elements.\nfunc (n *treeNode) Insert(entry client.StatInfo) {\n\tparts := strings.Split(entry.Path, \"/\")\n\tif len(parts) > 0 && parts[0] == \"\" {\n\t\tparts = parts[1:]\n\t}\n\n\tcurr := n\n\tcurrParts := []string{\"\"}\n\n\tfor depth, name := range parts {\n\t\tif curr.children == nil {\n\t\t\tcurr.children = make(map[string]*treeNode)\n\t\t}\n\n\t\tcurrParts = append(currParts, name)\n\t\tcurrPath := strings.Join(currParts, \"/\")\n\n\t\tchild, ok := curr.children[name]\n\t\tif !ok {\n\t\t\tchildEntry := entry\n\t\t\tif currPath != entry.Path {\n\t\t\t\tchildEntry = client.StatInfo{\n\t\t\t\t\tIsPinned: false,\n\t\t\t\t\tPath:     currPath,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchild = &treeNode{\n\t\t\t\tname:  name,\n\t\t\t\tdepth: depth + 1,\n\t\t\t\tentry: childEntry,\n\t\t\t}\n\n\t\t\tchild.isLast = true\n\t\t\tif len(curr.order) > 0 {\n\t\t\t\tcurr.order[len(curr.order)-1].isLast = false\n\t\t\t}\n\n\t\t\tchild.parent = curr\n\t\t\tcurr.children[name] = child\n\t\t\tcurr.order = append(curr.order, child)\n\t\t}\n\n\t\tcurr = child\n\t}\n}\n\nfunc (n *treeNode) Len() int {\n\treturn len(n.order)\n}\n\nfunc (n *treeNode) Swap(i, j int) {\n\tn.order[i], n.order[j] = n.order[j], n.order[i]\n\n\t// This is not very clever, but works and is obvious:\n\tn.order[i].isLast = i == len(n.order)-1\n\tn.order[j].isLast = j == len(n.order)-1\n}\n\nfunc (n *treeNode) Less(i, j int) bool {\n\t// Sort case insensitive.\n\tiRunes := []rune(n.order[i].name)\n\tjRunes := []rune(n.order[j].name)\n\n\tfor idx := 0; idx < len(iRunes) && idx < len(jRunes); idx++ {\n\t\tir := iRunes[idx]\n\t\tjr := jRunes[idx]\n\n\t\tlir := unicode.ToLower(ir)\n\t\tljr := unicode.ToLower(jr)\n\n\t\tif lir != ljr {\n\t\t\treturn lir < ljr\n\t\t}\n\n\t\tif ir != jr {\n\t\t\treturn ir < jr\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (n *treeNode) Print(cfg *treeCfg) {\n\tparents := make([]*treeNode, n.depth)\n\tcurr := n\n\n\tsort.Sort(n)\n\n\t// You could do probably go upwards and print to\n\t// a string buffer for performance, but this is probably\n\t// not necessary/critical here.\n\tfor i := 0; i < n.depth; i++ {\n\t\tparents[n.depth-i-1] = curr\n\t\tcurr = curr.parent\n\t}\n\n\tfor i := 0; i < n.depth; i++ {\n\t\tif i == n.depth-1 {\n\t\t\tif n.isLast {\n\t\t\t\tfmt.Printf(\"%s\", treeRuneCorner)\n\t\t\t} else {\n\t\t\t\tfmt.Printf(\"%s\", treeRuneTri)\n\t\t\t}\n\t\t} else {\n\t\t\tif parents[i].isLast {\n\t\t\t\tfmt.Printf(\"%s  \", \" \")\n\t\t\t} else {\n\t\t\t\tfmt.Printf(\"%s  \", treeRunePipe)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Default to an auto-formatter:\n\tformat := cfg.format\n\tif format == nil {\n\t\tformat = func(n *treeNode) string {\n\t\t\tswitch {\n\t\t\tcase n.name == \"/\":\n\t\t\t\treturn color.MagentaString(\"•\")\n\t\t\tcase n.entry.IsDir:\n\t\t\t\treturn \" \" + color.GreenString(n.name+\"/\")\n\t\t\t}\n\n\t\t\treturn \" \" + n.name\n\t\t}\n\t}\n\n\tprefix := treeRuneBar\n\tif n.name == \"/\" {\n\t\tprefix = \"\"\n\t}\n\n\tformatted := format(n)\n\tpinState := \"\"\n\tif cfg.showPin && n.entry.IsPinned {\n\t\tpinState = \" \" + pinStateToSymbol(n.entry.IsPinned, n.entry.IsExplicit)\n\t}\n\n\tfmt.Printf(\"%s%s%s\\n\", prefix, formatted, pinState)\n\tfor _, child := range n.order {\n\t\tchild.Print(cfg)\n\t}\n}\n\nfunc showTree(entries []client.StatInfo, cfg *treeCfg) {\n\troot := &treeNode{name: \"/\"}\n\tnfiles, ndirs := 0, 0\n\n\thasRoot := false\n\tfor _, entry := range entries {\n\t\tif entry.Path == \"/\" {\n\t\t\troot.entry = entry\n\t\t\thasRoot = true\n\t\t} else {\n\t\t\troot.Insert(entry)\n\t\t}\n\n\t\tif entry.IsDir {\n\t\t\tndirs++\n\t\t} else {\n\t\t\tnfiles++\n\t\t}\n\t}\n\n\tif !hasRoot {\n\t\troot.entry = client.StatInfo{\n\t\t\tPath: \"/\",\n\t\t}\n\t}\n\n\troot.Print(cfg)\n\n\t// Speak understandable english:\n\tdirLabel := \"directories\"\n\tif ndirs == 1 {\n\t\tdirLabel = \"directory\"\n\t}\n\n\tfileLabel := \"files\"\n\tif nfiles == 1 {\n\t\tfileLabel = \"file\"\n\t}\n\n\tfmt.Printf(\"\\n%d %s, %d %s\\n\", ndirs, dirLabel, nfiles, fileLabel)\n}\n"
  },
  {
    "path": "cmd/util.go",
    "content": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math/rand\"\n\t\"net/url\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"text/template\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/urfave/cli\"\n)\n\nvar (\n\t// backend delivers overly descriptive error messages including\n\t// the string below. Simply filter this info:\n\trpcErrPattern = regexp.MustCompile(`\\s*server/capnp/local_api.capnp.*rpc exception:\\s*`)\n)\n\n// ExitCode is an error that maps the error interface to a specific error\n// message and a unix exit code\ntype ExitCode struct {\n\tCode    int\n\tMessage string\n}\n\nfunc (err ExitCode) Error() string {\n\treturn err.Message\n}\n\nfunc mustAbsPath(path string) string {\n\tabsPath, err := filepath.Abs(path)\n\tif err != nil {\n\t\tfmt.Printf(\"Failed to get absolute repo path: %v\", err)\n\t\tos.Exit(1)\n\t}\n\n\treturn absPath\n}\n\nfunc yesify(val bool) string {\n\tif val {\n\t\treturn color.GreenString(\"yes\")\n\t}\n\n\treturn color.RedString(\"no\")\n}\n\nfunc checkmarkify(val bool) string {\n\tif val {\n\t\treturn color.GreenString(\"✔\")\n\t}\n\n\treturn \"\"\n}\n\n// guessRepoFolder tries to find the repository path by using a number of\n// sources. This helper may call exit when it fails to get the path.\nfunc guessRepoFolder(ctx *cli.Context) (string, error) {\n\tif ctx.GlobalIsSet(\"repo\") {\n\t\t// No guessing needed, follow user wish.\n\t\treturn ctx.GlobalString(\"repo\"), nil\n\t}\n\n\tguessLocations := []string{\n\t\t// TODO: For now just one.\n\t\t\".\",\n\t}\n\n\tvar lastError error\n\tfor _, guessLocation := range guessLocations {\n\t\trepoFolder := mustAbsPath(guessLocation)\n\t\tif _, err := os.Stat(filepath.Join(repoFolder, \"config.yml\")); err != nil {\n\t\t\tlastError = err\n\t\t\tcontinue\n\t\t}\n\n\t\treturn repoFolder, nil\n\t}\n\n\treturn \"\", lastError\n}\n\nfunc openConfig(folder string) (*config.Config, error) {\n\tconfigPath := filepath.Join(folder, \"config.yml\")\n\tcfg, err := defaults.OpenMigratedConfig(configPath)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not find config: %v\", err)\n\t}\n\n\treturn cfg, nil\n}\n\nfunc guessDaemonURL(ctx *cli.Context) (string, error) {\n\tif ctx.GlobalIsSet(\"url\") {\n\t\t// No guessing needed, follow user wish.\n\t\treturn ctx.GlobalString(\"url\"), nil\n\t}\n\n\tfolder, err := guessRepoFolder(ctx)\n\tif err != nil {\n\t\tlog.Warnf(\"note: I don't know where the repository is or cannot read it.\")\n\t\tlog.Warnf(\"      I will continue with default values, cross fingers.\")\n\t\tlog.Warnf(\"      We recommend to set BRIG_PATH or pass --repo always.\")\n\t\tlog.Warnf(\"      Alternatively you can cd to your repository.\")\n\t\treturn ctx.GlobalString(\"url\"), err\n\t}\n\n\tcfg, err := openConfig(folder)\n\tif err != nil {\n\t\t// Assume default:\n\t\treturn ctx.GlobalString(\"url\"), nil\n\t}\n\n\treturn cfg.String(\"daemon.url\"), nil\n}\n\nfunc guessFreeDaemonURL(ctx *cli.Context, owner string) (string, error) {\n\tif ctx.GlobalIsSet(\"url\") {\n\t\t// No guessing needed, follow user wish.\n\t\treturn ctx.GlobalString(\"url\"), nil\n\t}\n\n\tdefaultURL := defaults.DaemonDefaultURL()\n\tu, err := url.Parse(defaultURL)\n\tif err != nil {\n\t\t// this is a programming error\n\t\tpanic(\"invalid hard-coded default daemon url\")\n\t}\n\n\tswitch u.Scheme {\n\tcase \"unix\":\n\t\t// Distinguish the path, so that we can have\n\t\t// several daemon on a single system.\n\t\tv := u.Query()\n\t\tv.Add(\"id\", strings.ReplaceAll(owner, \"/\", \"_\"))\n\t\tu.RawQuery = v.Encode()\n\t\treturn u.String(), nil\n\tcase \"tcp\":\n\t\t// Do a best effort by searching for a free port\n\t\t// and use that for the brig repository.\n\t\t// This might be racy, but at least try it.\n\t\tport := util.FindFreePort()\n\t\treturn fmt.Sprintf(\"tcp://127.0.0.1:%d\", port), nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"default url has unknown \")\n\t}\n}\n\nfunc prefixSlash(s string) string {\n\tif !strings.HasPrefix(s, \"/\") {\n\t\treturn \"/\" + s\n\t}\n\n\treturn s\n}\n\ntype cmdHandlerWithClient func(ctx *cli.Context, ctl *client.Client) error\n\nfunc getExecutablePath() (string, error) {\n\t// NOTE: This might not work on other platforms.\n\t//       In this case we fall back to LookPath().\n\texePath, err := os.Readlink(\"/proc/self/exe\")\n\tif err != nil {\n\t\treturn exec.LookPath(\"brig\")\n\t}\n\n\treturn filepath.Clean(exePath), nil\n}\n\nfunc startDaemon(ctx *cli.Context, repoPath, daemonURL string) (*client.Client, error) {\n\tstat, err := os.Stat(repoPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !stat.IsDir() {\n\t\treturn nil, fmt.Errorf(\"»%s« is not a directory\", repoPath)\n\t}\n\n\texePath, err := getExecutablePath()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlogVerbose(ctx, \"using executable path: %s\", exePath)\n\n\tlogVerbose(\n\t\tctx,\n\t\t\"No Daemon running at %s. Starting daemon from binary: %s\",\n\t\tdaemonURL,\n\t\texePath,\n\t)\n\n\tdaemonArgs := []string{\n\t\t\"--repo\", repoPath,\n\t\t\"--url\", daemonURL,\n\t\t\"daemon\", \"launch\",\n\t}\n\n\targString := fmt.Sprintf(\"'%s'\", strings.Join(daemonArgs, \"' '\"))\n\tlogVerbose(ctx, \"Starting daemon as: %s %s\", exePath, argString)\n\n\tproc := exec.Command(exePath, daemonArgs...) // #nosec\n\tproc.Env = append(proc.Env, fmt.Sprintf(\"PATH=%s\", os.Getenv(\"PATH\")))\n\tif err := proc.Start(); err != nil {\n\t\tlog.Infof(\"Failed to start the daemon: %v\", err)\n\t\treturn nil, err\n\t}\n\n\t// This will likely suffice for most cases:\n\ttime.Sleep(500 * time.Millisecond)\n\n\twarningPrinted := false\n\tfor i := 0; i < 500; i++ {\n\t\tctl, err := client.Dial(context.Background(), daemonURL)\n\t\tif err != nil {\n\t\t\t// Only print this warning once...\n\t\t\tif !warningPrinted && i >= 100 {\n\t\t\t\tlog.Warnf(\"waiting a bit long for daemon to bootup...\")\n\t\t\t\twarningPrinted = true\n\t\t\t}\n\t\t\ttime.Sleep(50 * time.Millisecond)\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ctl, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"Daemon could not be started or took to long\")\n}\n\nfunc isDaemonRunning(ctx *cli.Context) (bool, error) {\n\tdaemonURL, err := guessDaemonURL(ctx)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\ttctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\tdefer cancel()\n\n\tctl, err := client.Dial(tctx, daemonURL)\n\tif err != nil {\n\t\treturn false, nil\n\t}\n\n\tdefer ctl.Close()\n\treturn true, nil\n}\n\nfunc withDaemon(handler cmdHandlerWithClient, startNew bool) cli.ActionFunc {\n\treturn func(ctx *cli.Context) error {\n\t\tdaemonURL, _ := guessDaemonURL(ctx)\n\n\t\tif startNew {\n\t\t\tlogVerbose(ctx, \"Using url %s to check for running daemon.\", daemonURL)\n\t\t} else {\n\t\t\tlogVerbose(ctx, \"Using url %s to connect to existing daemon.\", daemonURL)\n\t\t}\n\n\t\t// Check if the daemon is running already:\n\t\tctl, err := client.Dial(context.Background(), daemonURL)\n\t\tif err == nil {\n\t\t\tdefer ctl.Close()\n\t\t\treturn handler(ctx, ctl)\n\t\t}\n\n\t\tif !startNew {\n\t\t\t// Daemon was not running and we may not start a new one.\n\t\t\treturn ExitCode{DaemonNotResponding, \"Daemon not running\"}\n\t\t}\n\n\t\t// Start the server & pass the password:\n\t\tfolder, err := guessRepoFolder(ctx)\n\t\tif err != nil {\n\t\t\treturn ExitCode{\n\t\t\t\tBadArgs,\n\t\t\t\tfmt.Sprintf(\"could not guess folder: %v\", err),\n\t\t\t}\n\t\t}\n\n\t\tlogVerbose(ctx, \"starting new daemon in background, on folder '%s'\", folder)\n\n\t\tctl, err = startDaemon(ctx, folder, daemonURL)\n\t\tif err != nil {\n\t\t\treturn ExitCode{\n\t\t\t\tDaemonNotResponding,\n\t\t\t\tfmt.Sprintf(\"Unable to start daemon: %v\", err),\n\t\t\t}\n\t\t}\n\n\t\t// Run the actual handler:\n\t\tdefer ctl.Close()\n\t\treturn handler(ctx, ctl)\n\t}\n}\n\ntype checkFunc func(ctx *cli.Context) int\n\nfunc withArgCheck(checker checkFunc, handler cli.ActionFunc) cli.ActionFunc {\n\treturn func(ctx *cli.Context) error {\n\t\tif checker(ctx) != Success {\n\t\t\tos.Exit(BadArgs)\n\t\t}\n\n\t\treturn handler(ctx)\n\t}\n}\n\nfunc prettyPrintError(err error) string {\n\treturn rpcErrPattern.ReplaceAllString(err.Error(), \" \")\n}\n\nfunc needAtLeast(min int) checkFunc {\n\treturn func(ctx *cli.Context) int {\n\t\tif ctx.NArg() < min {\n\t\t\tif min == 1 {\n\t\t\t\tlog.Warningf(\"Need at least %d argument.\", min)\n\t\t\t} else {\n\t\t\t\tlog.Warningf(\"Need at least %d arguments.\", min)\n\t\t\t}\n\n\t\t\tif err := cli.ShowCommandHelp(ctx, ctx.Command.Name); err != nil {\n\t\t\t\tlog.Warningf(\"Failed to display --help: %v\", err)\n\t\t\t}\n\n\t\t\treturn BadArgs\n\t\t}\n\n\t\treturn Success\n\t}\n}\n\nfunc isNonEmptyDir(dir string) (bool, error) {\n\tfd, err := os.Open(dir) // #nosec\n\tif err != nil && os.IsNotExist(err) {\n\t\treturn false, nil\n\t}\n\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tnames, err := fd.Readdirnames(-1)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\t// dumb heuristic: if there's stuff in there,\n\t// assume we shouldn't init over.\n\treturn len(names) >= 1, nil\n}\n\n// tempFileWithSuffix works the same as ioutil.TempFile(),\n// but allows for the addition of a suffix to the filepath.\n// This has the nice side effect that some editors can recognize\n// the filetype based on the ending and provide you syntax highlighting.\n// (this is used in edit() below)\nfunc tempFileWithSuffix(dir, prefix, suffix string) (f *os.File, err error) {\n\tif dir == \"\" {\n\t\tdir = os.TempDir()\n\t}\n\n\tfor i := 0; i < 10000; i++ {\n\t\tmid := strconv.Itoa(rand.Int()) // #nosec\n\t\tname := filepath.Join(dir, prefix+mid+suffix)\n\t\tf, err = os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)\n\t\tif os.IsExist(err) {\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\treturn\n}\n\n// editToPath opens up $EDITOR with `data` and saves the edited data\n// to a temporary path that is then returned.\nfunc editToPath(data []byte, suffix string) (string, error) {\n\teditor := os.Getenv(\"EDITOR\")\n\tif editor == \"\" {\n\t\t// It makes my heart bleed, but assume that vi is too hard\n\t\t// for the majority I've met & that might use brig.\n\t\teditor = \"nano\"\n\t}\n\n\tfd, err := tempFileWithSuffix(\"\", \"brig-cmd-buffer-\", suffix)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tdoDelete := false\n\n\t// Make sure it gets cleaned up.\n\tdefer func() {\n\t\tif doDelete {\n\t\t\tif err := os.Remove(fd.Name()); err != nil {\n\t\t\t\tfmt.Printf(\"Failed to remove temp file: %v\\n\", err)\n\t\t\t}\n\t\t}\n\n\t\tif err := fd.Close(); err != nil {\n\t\t\tfmt.Printf(\"Failed to close file: %v\\n\", err)\n\t\t}\n\t}()\n\n\tif _, err := fd.Write(data); err != nil {\n\t\treturn \"\", err\n\t}\n\n\t// Launch editor and hook it up with all necessary fds:\n\tcmd := exec.Command(editor, fd.Name()) // #nosec\n\tcmd.Stdin = os.Stdin\n\tcmd.Stdout = os.Stdout\n\tcmd.Stderr = os.Stderr\n\n\tif err := cmd.Run(); err != nil {\n\t\tdoDelete = true\n\t\treturn \"\", fmt.Errorf(\"Running $EDITOR (%s) failed: %v\", editor, err)\n\t}\n\n\tif _, err := fd.Seek(0, io.SeekStart); err != nil {\n\t\tdoDelete = true\n\t\treturn \"\", err\n\t}\n\n\treturn fd.Name(), nil\n}\n\n// edit opens up $EDITOR with `data` and returns the edited data.\nfunc edit(data []byte, suffix string) ([]byte, error) {\n\ttempPath, err := editToPath(data, suffix)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer func() {\n\t\tif err := os.Remove(tempPath); err != nil {\n\t\t\tfmt.Printf(\"Failed to remove temp file: %v\\n\", err)\n\t\t}\n\t}()\n\n\tnewData, err := ioutil.ReadFile(tempPath) // #nosec\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Some editors might add a trailing newline:\n\treturn bytes.TrimRight(newData, \"\\n\"), nil\n}\n\n// parseDuration tries to convert the string `s` to\n// a duration in seconds (+ fractions).\n// It uses time.ParseDuration() internally, but allows\n// whole numbers which are counted as seconds.\nfunc parseDuration(s string) (float64, error) {\n\tsec, err := strconv.ParseFloat(s, 64)\n\tif err == nil {\n\t\treturn sec, nil\n\t}\n\n\tdur, err := time.ParseDuration(s)\n\tif err != nil {\n\t\treturn 0.0, err\n\t}\n\n\treturn float64(dur) / float64(time.Second), nil\n}\n\nfunc readFormatTemplate(ctx *cli.Context) (*template.Template, error) {\n\tif ctx.IsSet(\"format\") {\n\t\tsource := ctx.String(\"format\") + \"\\n\"\n\t\ttmpl, err := template.New(\"format\").Parse(source)\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn tmpl, nil\n\t}\n\n\treturn nil, nil\n}\n\nfunc pinStateToSymbol(isPinned, isExplicit bool) string {\n\tif isPinned {\n\t\tcolorFn := color.CyanString\n\t\tif isExplicit {\n\t\t\tcolorFn = color.MagentaString\n\t\t}\n\n\t\treturn colorFn(\"✔\")\n\t}\n\n\treturn \"\"\n}\n\nfunc yesOrNo(v bool) string {\n\tif v {\n\t\treturn color.GreenString(\"yes\")\n\t}\n\n\treturn color.RedString(\"no\")\n}\n\ntype logWriter struct{ prefix string }\n\nfunc (lw *logWriter) Write(buf []byte) (int, error) {\n\tlog.Infof(\"%s: %s\", lw.prefix, string(bytes.TrimSpace(buf)))\n\treturn len(buf), nil\n}\n"
  },
  {
    "path": "cmd/vcs_handlers.go",
    "content": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/cmd/tabwriter\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/sahib/brig/client\"\n\t\"github.com/urfave/cli\"\n)\n\nfunc handleReset(ctx *cli.Context, ctl *client.Client) error {\n\tforce := ctx.Bool(\"force\")\n\trev := ctx.Args().First()\n\tpath := \"\"\n\n\tif len(ctx.Args()) > 1 {\n\t\tpath = ctx.Args().Get(1)\n\t}\n\n\tif err := ctl.Reset(path, rev, force); err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"reset: %v\", err)}\n\t}\n\n\treturn nil\n}\n\nfunc commitName(cmt *client.Commit) string {\n\tif cmt == nil {\n\t\treturn \"\"\n\t}\n\n\tif len(cmt.Tags) > 0 {\n\t\treturn strings.ToUpper(cmt.Tags[0])\n\t}\n\n\treturn cmt.Hash.ShortB58()\n}\n\nfunc handleHistory(ctx *cli.Context, ctl *client.Client) error {\n\tpath := ctx.Args().First()\n\n\thistory, err := ctl.History(path)\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"history: %v\", err)}\n\t}\n\n\tif _, err := ctl.Stat(path); err != nil {\n\t\tfmt.Printf(\"%s %s\",\n\t\t\tcolor.YellowString(\"WARNING:\"),\n\t\t\t`This file is not part of this commit, but there's still history for it.\n         Most likely this file was moved or removed in the past.\n\n`)\n\t}\n\n\ttabW := tabwriter.NewWriter(\n\t\tos.Stdout, 0, 0, 2, ' ',\n\t\ttabwriter.StripEscape,\n\t)\n\n\tcontainsMoves := false\n\tfor _, entry := range history {\n\t\tfor _, detail := range entry.Mask {\n\t\t\tif detail == \"moved\" {\n\t\t\t\tcontainsMoves = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif containsMoves {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif len(history) != 0 {\n\t\tif containsMoves {\n\t\t\tfmt.Fprintf(tabW, \"CHANGE\\tFROM\\tTO\\tHOW\\tWHEN\\tPIN\\t\\n\")\n\t\t} else {\n\t\t\tfmt.Fprintf(tabW, \"CHANGE\\tFROM\\tTO\\t\\tWHEN\\tPIN\\t\\n\")\n\t\t}\n\t}\n\n\tfor _, entry := range history {\n\t\twhat := \"\"\n\t\tprintLine := true\n\n\t\tfor _, detail := range entry.Mask {\n\t\t\t// If it was moved, let's display what moved.\n\t\t\tif detail == \"moved\" {\n\t\t\t\tsrc := entry.WasPreviouslyAt\n\t\t\t\tdst := entry.Path\n\n\t\t\t\tif entry.MovedTo != \"\" {\n\t\t\t\t\tdst = entry.MovedTo\n\t\t\t\t}\n\n\t\t\t\twhat = fmt.Sprintf(\n\t\t\t\t\t\"%s → %s\", color.RedString(src), color.RedString(dst),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Only display empty changes if nothing happened.\n\t\t\tif detail == \"none\" && !ctx.Bool(\"empty\") {\n\t\t\t\tprintLine = false\n\t\t\t}\n\t\t}\n\n\t\tif !printLine {\n\t\t\tcontinue\n\t\t}\n\n\t\tchangeDesc := color.YellowString(strings.Join(entry.Mask, \", \"))\n\t\twhen := color.MagentaString(entry.Head.Date.Format(time.UnixDate))\n\n\t\tfmt.Fprintf(\n\t\t\ttabW,\n\t\t\t\"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n\",\n\t\t\tchangeDesc,\n\t\t\tcolor.CyanString(commitName(entry.Next)),\n\t\t\tcolor.GreenString(commitName(entry.Head)),\n\t\t\twhat,\n\t\t\twhen,\n\t\t\tpinStateToSymbol(entry.IsPinned, entry.IsExplicit),\n\t\t\tentry.Head.Msg,\n\t\t)\n\t}\n\n\treturn tabW.Flush()\n}\n\n// makePathAbbrev tries to abbreviate the `dst` path if\n// both are in the same directory.\nfunc makePathAbbrev(srcNd, dstNd client.StatInfo) string {\n\tsrc, dst := srcNd.Path, dstNd.Path\n\tif path.Dir(src) == path.Dir(dst) {\n\t\tdstBase := path.Base(dst)\n\t\tif dstNd.IsDir {\n\t\t\treturn dstBase + \"/\"\n\n\t\t}\n\n\t\treturn dstBase\n\t}\n\n\trelPath, err := filepath.Rel(path.Dir(src), dst)\n\tif err != nil {\n\t\tfmt.Println(\"Failed to get relative path: \", err)\n\t\tif dstNd.IsDir {\n\t\t\treturn dst + \"/\"\n\t\t}\n\n\t\treturn dst\n\t}\n\n\t// We could also possibly check here if relPath is longer than dst\n\t// and only display the relative version then. But being consistent\n\t// is more valuable here I think.\n\tif dstNd.IsDir {\n\t\treturn relPath + \"/\"\n\t}\n\n\treturn relPath\n}\n\nfunc suffixIfDir(nd *treeNode) string {\n\tif nd.entry.IsDir {\n\t\treturn nd.name + \"/\"\n\t}\n\n\treturn nd.name\n}\n\nconst (\n\tdiffTypeNone = iota\n\tdiffTypeAdded\n\tdiffTypeRemoved\n\tdiffTypeMissing\n\tdiffTypeMoved\n\tdiffTypeIgnored\n\tdiffTypeConflict\n\tdiffTypeMerged\n)\n\ntype diffEntry struct {\n\ttyp  int\n\tpair client.DiffPair\n}\n\n// Called to format each name in the resulting tree:\nfunc printDiffTreeLineFormatter(types map[string]diffEntry, n *treeNode) string {\n\tif n.name == \"/\" {\n\t\treturn color.MagentaString(\"•\")\n\t}\n\n\tif diffEntry, ok := types[n.entry.Path]; ok {\n\t\tswitch diffEntry.typ {\n\t\tcase diffTypeAdded:\n\t\t\treturn color.GreenString(\" + \" + \"▩ ← \" + suffixIfDir(n))\n\t\tcase diffTypeRemoved:\n\t\t\treturn color.RedString(\" - \" + suffixIfDir(n) + \" ← ▩\")\n\t\tcase diffTypeMissing:\n\t\t\treturn color.MagentaString(\" _ \" + suffixIfDir(n) + \" → ▩\")\n\t\tcase diffTypeIgnored:\n\t\t\treturn color.YellowString(\" * \" + suffixIfDir(n))\n\t\tcase diffTypeMoved:\n\t\t\tsrcPath := makePathAbbrev(diffEntry.pair.Dst, diffEntry.pair.Src)\n\t\t\tdstBase := path.Base(diffEntry.pair.Dst.Path)\n\t\t\tif diffEntry.pair.Src.IsDir {\n\t\t\t\tdstBase += \"/\"\n\t\t\t}\n\n\t\t\treturn color.CyanString(fmt.Sprintf(\" %s ↔ %s\", dstBase, srcPath))\n\t\tcase diffTypeMerged:\n\t\t\tdstPath := makePathAbbrev(diffEntry.pair.Dst, diffEntry.pair.Src)\n\t\t\tsrcBase := path.Base(diffEntry.pair.Src.Path)\n\t\t\tif diffEntry.pair.Src.IsDir {\n\t\t\t\tsrcBase += \"/\"\n\t\t\t}\n\t\t\t// Attempt to figure out which way merge should go\n\t\t\t// based on modification times.\n\t\t\t// This information was available at resolver time in the PairDiff\n\t\t\t// but server returns simplified PairDiff without modification masks.\n\t\t\tsrcModTime := diffEntry.pair.Src.ModTime\n\t\t\tdstModTime := diffEntry.pair.Dst.ModTime\n\t\t\tvar mergeSymbol string = color.MagentaString(\"→\")\n\t\t\tif srcModTime.After(dstModTime) {\n\t\t\t\tmergeSymbol = color.GreenString(\"←\")\n\t\t\t}\n\n\t\t\treturn color.WhiteString(fmt.Sprintf(\" %s %s %s \", dstPath, mergeSymbol, srcBase))\n\t\tcase diffTypeConflict:\n\t\t\tdstPath := makePathAbbrev(diffEntry.pair.Dst, diffEntry.pair.Src)\n\t\t\tsrcBase := path.Base(diffEntry.pair.Src.Path)\n\t\t\tif diffEntry.pair.Src.IsDir {\n\t\t\t\tsrcBase += \"/\"\n\t\t\t}\n\n\t\t\treturn color.MagentaString(fmt.Sprintf(\" %s ⚡%s\", dstPath, srcBase))\n\t\t}\n\t}\n\n\treturn n.name\n}\n\nfunc printDiffTree(diff *client.Diff, printMissing bool) {\n\tentries := []client.StatInfo{}\n\ttypes := make(map[string]diffEntry)\n\n\t// Singular types:\n\tfor _, info := range diff.Added {\n\t\ttypes[info.Path] = diffEntry{typ: diffTypeAdded}\n\t\tentries = append(entries, info)\n\t}\n\tfor _, info := range diff.Removed {\n\t\ttypes[info.Path] = diffEntry{typ: diffTypeRemoved}\n\t\tentries = append(entries, info)\n\t}\n\n\tif printMissing {\n\t\tfor _, info := range diff.Missing {\n\t\t\ttypes[info.Path] = diffEntry{typ: diffTypeMissing}\n\t\t\tentries = append(entries, info)\n\t\t}\n\t}\n\n\tfor _, info := range diff.Ignored {\n\t\ttypes[info.Path] = diffEntry{typ: diffTypeIgnored}\n\t\tentries = append(entries, info)\n\t}\n\n\t// Pair types:\n\tfor _, pair := range diff.Moved {\n\t\ttypes[pair.Dst.Path] = diffEntry{\n\t\t\ttyp:  diffTypeMoved,\n\t\t\tpair: pair,\n\t\t}\n\t\tentries = append(entries, pair.Dst)\n\t}\n\tfor _, pair := range diff.Conflict {\n\t\ttypes[pair.Dst.Path] = diffEntry{\n\t\t\ttyp:  diffTypeConflict,\n\t\t\tpair: pair,\n\t\t}\n\t\tentries = append(entries, pair.Dst)\n\t}\n\tfor _, pair := range diff.Merged {\n\t\ttypes[pair.Dst.Path] = diffEntry{\n\t\t\ttyp:  diffTypeMerged,\n\t\t\tpair: pair,\n\t\t}\n\t\tentries = append(entries, pair.Dst)\n\t}\n\n\tif len(entries) == 0 {\n\t\t// Nothing to show:\n\t\treturn\n\t}\n\n\tsort.Slice(entries, func(i, j int) bool {\n\t\treturn entries[i].Path < entries[j].Path\n\t})\n\n\t// Render the tree:\n\tshowTree(entries, &treeCfg{\n\t\tformat: func(n *treeNode) string {\n\t\t\treturn printDiffTreeLineFormatter(types, n)\n\t\t},\n\t\tshowPin: false,\n\t})\n}\n\nfunc isEmptyDiff(diff *client.Diff) bool {\n\treturn 0 == 0+\n\t\tlen(diff.Added)+\n\t\tlen(diff.Conflict)+\n\t\tlen(diff.Ignored)+\n\t\tlen(diff.Merged)+\n\t\tlen(diff.Missing)+\n\t\tlen(diff.Moved)+\n\t\tlen(diff.Removed)\n}\n\nfunc printDiff(diff *client.Diff, printMissing bool) {\n\tsimpleSection := func(heading string, infos []client.StatInfo) {\n\t\tif len(infos) == 0 {\n\t\t\treturn\n\t\t}\n\n\t\tfmt.Println(heading)\n\t\tfor _, info := range infos {\n\t\t\tpath := info.Path\n\t\t\tif info.IsDir {\n\t\t\t\tpath += \"/\"\n\t\t\t}\n\n\t\t\tfmt.Printf(\"  %s\\n\", path)\n\t\t}\n\n\t\tfmt.Println()\n\t}\n\n\tpairSection := func(heading, symbol string, infos []client.DiffPair) {\n\t\tif len(infos) == 0 {\n\t\t\treturn\n\t\t}\n\n\t\tfmt.Println(heading)\n\t\tfor _, pair := range infos {\n\t\t\tsrcPath := pair.Src.Path\n\t\t\tif pair.Src.IsDir {\n\t\t\t\tsrcPath += \"/\"\n\t\t\t}\n\n\t\t\tdstPath := pair.Dst.Path\n\t\t\tif pair.Dst.IsDir {\n\t\t\t\tdstPath += \"/\"\n\t\t\t}\n\n\t\t\tif pair.Src.Path != pair.Dst.Path {\n\t\t\t\tfmt.Printf(\"  %s %s %s\\n\", dstPath, symbol, srcPath)\n\t\t\t} else {\n\t\t\t\tfmt.Printf(\"  %s %s\\n\", symbol, srcPath)\n\t\t\t}\n\t\t}\n\n\t\tfmt.Println()\n\t}\n\n\tvar addedAtRemote []client.DiffPair\n\tfor _, src := range diff.Added {\n\t\tvar pair client.DiffPair\n\t\tpair.Dst.Path = \"▩\"\n\t\tpair.Src = src\n\t\taddedAtRemote = append(addedAtRemote, pair)\n\t}\n\tpairSection(color.GreenString(\"Added:\"), \"←\", addedAtRemote)\n\n\tsimpleSection(color.YellowString(\"Ignored:\"), diff.Ignored)\n\n\tvar removedAtRemote []client.DiffPair\n\tfor _, dst := range diff.Removed {\n\t\tvar pair client.DiffPair\n\t\tpair.Dst = dst\n\t\tpair.Src.Path = \"▩\"\n\t\tremovedAtRemote = append(removedAtRemote, pair)\n\t}\n\tpairSection(color.RedString(\"Removed:\"), \"←\", removedAtRemote)\n\n\t// split diff.Merged to changedLocally and changedRemotely arrays\n\tvar changedLocally, changedRemotely []client.DiffPair\n\tfor _, pair := range diff.Merged {\n\t\tsrcModTime := pair.Src.ModTime\n\t\tdstModTime := pair.Dst.ModTime\n\t\tif srcModTime.After(dstModTime) {\n\t\t\tchangedRemotely = append(changedRemotely, pair)\n\t\t} else {\n\t\t\tchangedLocally = append(changedLocally, pair)\n\t\t}\n\t}\n\n\tif printMissing {\n\t\tvar missedAtRemote []client.DiffPair\n\t\tfor _, dst := range diff.Missing {\n\t\t\tvar pair client.DiffPair\n\t\t\tpair.Dst = dst\n\t\t\tpair.Src.Path = \"▩\"\n\t\t\tmissedAtRemote = append(missedAtRemote, pair)\n\t\t}\n\t\tpairSection(color.RedString(\"Missing:\"), \"→\", missedAtRemote)\n\t}\n\n\tpairSection(color.CyanString(\"Moved:\"), \"↔\", diff.Moved)\n\tpairSection(color.WhiteString(\"Changed Locally:\"), \"→\", changedLocally)\n\tpairSection(color.WhiteString(\"Changed Remotely:\"), \"←\", changedRemotely)\n\tpairSection(color.MagentaString(\"Conflicts:\"), \"⚡\", diff.Conflict)\n}\n\nfunc handleDiff(ctx *cli.Context, ctl *client.Client) error {\n\tif ctx.NArg() > 4 {\n\t\tfmt.Println(\"More than four arguments can't be handled.\")\n\t}\n\n\tself, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlocalName := self.CurrentUser\n\tremoteName := self.CurrentUser\n\n\tremoteRev := \"CURR\"\n\tlocalRev := \"CURR\"\n\n\tnArgs := ctx.NArg()\n\tif nArgs == 0 {\n\t\t// Special case: When typing brig diff we want to show\n\t\t// the diff from our CURR to HEAD only.\n\t\tlocalRev = \"HEAD\"\n\t}\n\n\tif ctx.Bool(\"self\") {\n\t\tswitch {\n\t\tcase nArgs >= 2:\n\t\t\tlocalRev = ctx.Args().Get(1)\n\t\t\tfallthrough\n\t\tcase nArgs >= 1:\n\t\t\tremoteRev = ctx.Args().Get(0)\n\t\t}\n\t} else {\n\t\tswitch {\n\t\tcase nArgs >= 4:\n\t\t\tlocalRev = ctx.Args().Get(3)\n\t\t\tfallthrough\n\t\tcase nArgs >= 3:\n\t\t\tremoteRev = ctx.Args().Get(2)\n\t\t\tfallthrough\n\t\tcase nArgs >= 2:\n\t\t\tlocalName = ctx.Args().Get(1)\n\t\t\tfallthrough\n\t\tcase nArgs >= 1:\n\t\t\tremoteName = ctx.Args().Get(0)\n\t\t}\n\t}\n\n\tneedFetch := !ctx.Bool(\"offline\")\n\tdiff, err := ctl.MakeDiff(localName, remoteName, localRev, remoteRev, needFetch)\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"diff: %v\", err)}\n\t}\n\n\tprintMissing := ctx.Bool(\"missing\")\n\tif ctx.Bool(\"list\") {\n\t\tprintDiff(diff, printMissing)\n\t} else {\n\t\tprintDiffTree(diff, printMissing)\n\t}\n\n\treturn nil\n}\n\nfunc handleFetch(ctx *cli.Context, ctl *client.Client) error {\n\twho := ctx.Args().First()\n\treturn ctl.Fetch(who)\n}\n\nfunc handleSync(ctx *cli.Context, ctl *client.Client) error {\n\tif len(ctx.Args()) > 0 {\n\t\treturn handleSyncSingle(ctx, ctl, ctx.Args().First())\n\t}\n\n\tremotes, err := ctl.RemoteLs()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, rmt := range remotes {\n\t\t_, err := ctl.RemotePing(rmt.Name)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"Cannot reach %s..\\n\", rmt.Name)\n\t\t\tcontinue\n\t\t}\n\n\t\tfmt.Printf(\"Syncing with `%s`...\\n\", rmt.Name)\n\t\tif err := handleSyncSingle(ctx, ctl, rmt.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleSyncSingle(ctx *cli.Context, ctl *client.Client, remoteName string) error {\n\tneedFetch := true\n\tif ctx.Bool(\"no-fetch\") {\n\t\tneedFetch = false\n\t}\n\n\tif ctx.Bool(\"quiet\") {\n\t\treturn nil\n\t}\n\n\tdiff, err := ctl.Sync(remoteName, needFetch)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif isEmptyDiff(diff) {\n\t\tfmt.Println(\"Nothing changed.\")\n\t\treturn nil\n\t}\n\n\tprintDiff(diff, false)\n\treturn nil\n}\n\nfunc handleStatus(ctx *cli.Context, ctl *client.Client) error {\n\tself, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcurr := self.CurrentUser\n\tdiff, err := ctl.MakeDiff(curr, curr, \"HEAD\", \"CURR\", false)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif ctx.Bool(\"tree\") {\n\t\tprintDiffTree(diff, false)\n\t} else {\n\t\tprintDiff(diff, false)\n\t}\n\n\treturn nil\n}\n\nfunc handleBecome(ctx *cli.Context, ctl *client.Client) error {\n\tbecomeSelf := ctx.Bool(\"self\")\n\tif !becomeSelf && ctx.NArg() < 1 {\n\t\treturn fmt.Errorf(\"become needs at least one argument without -s\")\n\t}\n\n\twhoami, err := ctl.Whoami()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\twho := ctx.Args().First()\n\tif becomeSelf {\n\t\twho = whoami.Owner\n\t}\n\n\tif whoami.CurrentUser == who {\n\t\tfmt.Printf(\"You are already %s.\\n\", color.GreenString(who))\n\t\treturn nil\n\t}\n\n\tif err := ctl.Become(who); err != nil {\n\t\treturn err\n\t}\n\n\tsuffix := \"Everything is read only.\"\n\tif who == whoami.Owner {\n\t\tsuffix = \"Welcome back!\"\n\t}\n\n\tfmt.Printf(\n\t\t\"You are viewing %s's data now. %s\\n\",\n\t\tcolor.GreenString(who), suffix,\n\t)\n\treturn nil\n}\n\nfunc handleCommit(ctx *cli.Context, ctl *client.Client) error {\n\tvar msg string\n\n\t// Build the message:\n\tif ctx.IsSet(\"message\") {\n\t\tmsg = ctx.String(\"message\")\n\t} else if len(ctx.Args()) >= 1 {\n\t\tmsg = strings.Join(ctx.Args(), \" \")\n\t} else {\n\t\tmsg = \"manual commit\"\n\t}\n\n\t// Send the commit:\n\tif err := ctl.MakeCommit(msg); err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"commit: %v\", err)}\n\t}\n\n\treturn nil\n}\n\nfunc handleTag(ctx *cli.Context, ctl *client.Client) error {\n\tif ctx.Bool(\"delete\") {\n\t\tname := ctx.Args().Get(0)\n\n\t\tif err := ctl.Untag(name); err != nil {\n\t\t\treturn ExitCode{\n\t\t\t\tUnknownError,\n\t\t\t\tfmt.Sprintf(\"untag: %v\", err),\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif len(ctx.Args()) < 2 {\n\t\t\treturn ExitCode{BadArgs, \"tag needs at least two arguments\"}\n\t\t}\n\n\t\trev := ctx.Args().Get(0)\n\t\tname := ctx.Args().Get(1)\n\n\t\tif err := ctl.Tag(rev, name); err != nil {\n\t\t\treturn ExitCode{\n\t\t\t\tUnknownError,\n\t\t\t\tfmt.Sprintf(\"tag: %v\", err),\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc handleLog(ctx *cli.Context, ctl *client.Client) error {\n\tentries, err := ctl.Log()\n\tif err != nil {\n\t\treturn ExitCode{UnknownError, fmt.Sprintf(\"commit: %v\", err)}\n\t}\n\n\ttmpl, err := readFormatTemplate(ctx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, entry := range entries {\n\t\tif tmpl != nil {\n\t\t\tif err := tmpl.Execute(os.Stdout, entry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcontinue\n\t\t}\n\n\t\ttags := \"\"\n\t\tisCurr := false\n\t\tif len(entry.Tags) > 0 {\n\t\t\ttags = fmt.Sprintf(\" (%s)\", strings.Join(entry.Tags, \", \"))\n\n\t\t\tfor _, tag := range entry.Tags {\n\t\t\t\tif tag == \"curr\" {\n\t\t\t\t\tisCurr = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tmsg := entry.Msg\n\t\tif msg == \"\" {\n\t\t\tmsg = color.RedString(\"•\")\n\t\t}\n\n\t\tentry.Hash.ShortB58()\n\n\t\tcommitHash := entry.Hash.ShortB58()\n\t\tif isCurr {\n\t\t\tcommitHash = \"      -     \"\n\t\t}\n\n\t\tfmt.Printf(\n\t\t\t\"%s %s %s%s\\n\",\n\t\t\tcolor.GreenString(commitHash),\n\t\t\tcolor.YellowString(entry.Date.Format(time.UnixDate)),\n\t\t\tmsg,\n\t\t\tcolor.CyanString(tags),\n\t\t)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "defaults/defaults.go",
    "content": "package defaults\n\nimport (\n\t\"os\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/config\"\n)\n\n// CurrentVersion is the current version of brig's config\nconst CurrentVersion = 0\n\n// Defaults is the default validation for brig\nvar Defaults = DefaultsV0\n\n// OpenMigratedConfig takes the config.yml at path and loads it.\n// If required, it also migrates the config structure to the newest\n// version - brig can always rely on the latest config keys to be present.\nfunc OpenMigratedConfig(path string) (*config.Config, error) {\n\tfd, err := os.Open(path) // #nosec\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"failed to open config path %s\", path)\n\t}\n\n\tdefer fd.Close()\n\n\t// NOTE: Add here any migrations with mgr.Add if needed.\n\tmgr := config.NewMigrater(CurrentVersion, config.StrictnessPanic)\n\tmgr.Add(0, nil, DefaultsV0)\n\n\tcfg, err := mgr.Migrate(config.NewYamlDecoder(fd))\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"failed to migrate or open\")\n\t}\n\n\treturn cfg, nil\n}\n"
  },
  {
    "path": "defaults/defaults_v0.go",
    "content": "package defaults\n\nimport (\n\t\"errors\"\n\t\"net/url\"\n\t\"runtime\"\n\n\t\"github.com/sahib/config\"\n)\n\n// DaemonDefaultURL returns the default URL for the current OS.\nfunc DaemonDefaultURL() string {\n\t// If the platform supports unix sockets,\n\t// we should make use of it.\n\tswitch runtime.GOOS {\n\tcase \"linux\", \"darwin\":\n\t\t// See \"man 7 unix\" - we use an abstract unix domain socket.\n\t\t// This means there is no socket file on the file system.\n\t\t// (other tools use unix:@/path, but Go does not support that notation)\n\t\t// This also means that there are no user rights on the socket file.\n\t\t// If you need this, specify the url in the config.\n\t\treturn \"unix:/tmp/brig.socket?abstract=true\"\n\tdefault:\n\t\treturn \"tcp://127.0.0.1:6666\"\n\t}\n}\n\nfunc urlValidator(val interface{}) error {\n\ts, ok := val.(string)\n\tif !ok {\n\t\treturn errors.New(\"url is not an string\")\n\t}\n\n\t_, err := url.Parse(s)\n\treturn err\n}\n\n// DefaultsV0 is the default config validation for brig\nvar DefaultsV0 = config.DefaultMapping{\n\t\"daemon\": config.DefaultMapping{\n\t\t\"url\": config.DefaultEntry{\n\t\t\tDefault:      DaemonDefaultURL(),\n\t\t\tNeedsRestart: true,\n\t\t\tDocs:         \"URL of the daemon process.\",\n\t\t\tValidator:    urlValidator,\n\t\t},\n\t\t\"ipfs_path_or_url\": config.DefaultEntry{\n\t\t\tDefault:      \"\",\n\t\t\tNeedsRestart: true,\n\t\t\tDocs:         \"URL or path to the IPFS repository you want to use.\",\n\t\t},\n\t\t\"enable_pprof\": config.DefaultEntry{\n\t\t\tDefault:      true,\n\t\t\tNeedsRestart: true,\n\t\t\tDocs:         \"Enable a ppropf profile server on startup (see »brig d p --help«)\",\n\t\t},\n\t},\n\t\"events\": config.DefaultMapping{\n\t\t\"enabled\": config.DefaultEntry{\n\t\t\tDefault:      true,\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"Wether we should handle incoming events and publish auto update events.\",\n\t\t},\n\t\t\"recv_interval\": config.DefaultEntry{\n\t\t\tDefault:      \"100ms\",\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"Time window in which events are buffered before handling them.\",\n\t\t},\n\t\t\"recv_max_events_per_second\": config.DefaultEntry{\n\t\t\tDefault:      0.5,\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"How many incoming events per second to process at max.\",\n\t\t},\n\t\t\"send_interval\": config.DefaultEntry{\n\t\t\tDefault:      \"200ms\",\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"Time window in which events are buffered before sending them.\",\n\t\t},\n\t\t\"send_max_events_per_second\": config.DefaultEntry{\n\t\t\tDefault:      5.0,\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"How many outgoing events per second to send out at max\",\n\t\t},\n\t},\n\t\"gateway\": config.DefaultMapping{\n\t\t\"enabled\": config.DefaultEntry{\n\t\t\tDefault:      false,\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"Wether the gateway should be running. Will start when enabled.\",\n\t\t},\n\t\t\"port\": config.DefaultEntry{\n\t\t\tDefault:      6001,\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"On what port the gateway runs on.\",\n\t\t},\n\t\t\"ui\": config.DefaultMapping{\n\t\t\t\"enabled\": config.DefaultEntry{\n\t\t\t\tDefault:      true,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Enable the UI. This does not affect the /get endpoint.\",\n\t\t\t},\n\t\t\t\"debug_mode\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Enable debug mode (load resources from filesystem).\",\n\t\t\t},\n\t\t},\n\t\t\"auth\": config.DefaultMapping{\n\t\t\t\"anon_allowed\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Wether a login is required.\",\n\t\t\t},\n\t\t\t\"anon_user\": config.DefaultEntry{\n\t\t\t\tDefault:      \"anon\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"What user to copy settings (folder, rights etc.) from.\",\n\t\t\t},\n\t\t\t\"session-encryption-key\": config.DefaultEntry{\n\t\t\t\tDefault:      \"\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Encryption key for session cookies. Generated when left empty.\",\n\t\t\t},\n\t\t\t\"session-authentication-key\": config.DefaultEntry{\n\t\t\t\tDefault:      \"\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Authentication key for session cookies. Generated when left empty.\",\n\t\t\t},\n\t\t\t\"session-csrf-key\": config.DefaultEntry{\n\t\t\t\tDefault:      \"\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Key used for CSRF protection. Generated if empty.\",\n\t\t\t},\n\t\t},\n\t},\n\t\"fs\": config.DefaultMapping{\n\t\t\"sync\": config.DefaultMapping{\n\t\t\t\"ignore_removed\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Do not remove what the remote removed.\",\n\t\t\t},\n\t\t\t\"ignore_moved\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Do not move what the remote moved\",\n\t\t\t},\n\t\t\t\"pin_added\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Do not pin files which were added at the remote\",\n\t\t\t},\n\t\t\t\"conflict_strategy\": config.DefaultEntry{\n\t\t\t\tDefault:      \"marker\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tValidator: config.EnumValidator(\n\t\t\t\t\t\"marker\", \"ignore\", \"embrace\",\n\t\t\t\t),\n\t\t\t\tDocs: `What strategy to apply in case of conflicts:\n\n  * marker: Create a conflict file with the remote's version.\n  * ignore: Ignore the remote version completely and keep our version.\n  * embrace: Take the remote version and replace ours with it.\n`,\n\t\t\t},\n\t\t},\n\t\t\"pre_cache\": config.DefaultMapping{\n\t\t\t\"enabled\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"pre-cache files up-on pinning.\",\n\t\t\t},\n\t\t},\n\t\t\"pagecache\": config.DefaultMapping{\n\t\t\t\"max_memory\": config.DefaultEntry{\n\t\t\t\tDefault:      \"1G\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Consume at max this amount of memory for the pagecache\",\n\t\t\t},\n\t\t\t\"l2compress\": config.DefaultEntry{\n\t\t\t\tDefault:      true,\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Compress swapped pages over max_memory before going to disk\",\n\t\t\t},\n\t\t},\n\t\t\"repin\": config.DefaultMapping{\n\t\t\t\"enabled\": config.DefaultEntry{\n\t\t\t\tDefault:      true,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Perform repinning to reclaim space (see »brig pin repin --help«)\",\n\t\t\t},\n\t\t\t\"interval\": config.DefaultEntry{\n\t\t\t\tDefault:      \"15m\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"In what time interval to trigger repinning automatically.\",\n\t\t\t\tValidator:    config.DurationValidator(),\n\t\t\t},\n\t\t\t\"quota\": config.DefaultEntry{\n\t\t\t\tDefault:      \"5GB\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs: `Maximum stored amount of pinned files to have.\n\n  If the quota limit is hit, old versions of a file are unpinned first on the\n  next repin. Biggest file first.\n`,\n\t\t\t},\n\t\t\t\"min_depth\": config.DefaultEntry{\n\t\t\t\tDefault:      1,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         `Keep at least »n« versions of a pinned file, even if this would exceed the quota.`,\n\t\t\t},\n\t\t\t\"max_depth\": config.DefaultEntry{\n\t\t\t\tDefault:      10,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         `Keep at max »n« versions of a pinned file and remove it even if it does not exceed quota.`,\n\t\t\t},\n\t\t\t\"pin_unpinned\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs: `Pin unpinned files:\n\n  * 'true'  if you want maximum permitted mirroring\n  * 'false' if you want to save traffic\n\n  If a file version »n« is such that (min_depth <= »n« < max_depth),\n  then the repinner will pin such version if pin_unpinned is set to true.\n  Otherwise, it will keep the file unpinned, i.e. not cached at the backend.\n`,\n\t\t\t},\n\t\t},\n\t\t\"autocommit\": config.DefaultMapping{\n\t\t\t\"enabled\": config.DefaultEntry{\n\t\t\t\tDefault:      true,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Wether to make automatic commits in a fixed interval.\",\n\t\t\t},\n\t\t\t\"interval\": config.DefaultEntry{\n\t\t\t\tDefault:      \"5m\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"In what interval to make automatic commits.\",\n\t\t\t\tValidator:    config.DurationValidator(),\n\t\t\t},\n\t\t},\n\t},\n\t\"repo\": config.DefaultMapping{\n\t\t\"current_user\": config.DefaultEntry{\n\t\t\tDefault:      \"\",\n\t\t\tNeedsRestart: false,\n\t\t\tDocs:         \"The repository owner that is published to the outside.\",\n\t\t},\n\t\t\"autogc\": config.DefaultMapping{\n\t\t\t\"enabled\": config.DefaultEntry{\n\t\t\t\tDefault:      true,\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"Wether to make automatic commits in a fixed interval.\",\n\t\t\t},\n\t\t\t\"interval\": config.DefaultEntry{\n\t\t\t\tDefault:      \"60m\",\n\t\t\t\tNeedsRestart: false,\n\t\t\t\tDocs:         \"In what interval to make automatic commits.\",\n\t\t\t\tValidator:    config.DurationValidator(),\n\t\t\t},\n\t\t},\n\t},\n\t\"mounts\": config.DefaultMapping{\n\t\t// This key stands for the fstab name entry:\n\t\t\"__many__\": config.DefaultMapping{\n\t\t\t\"path\": config.DefaultEntry{\n\t\t\t\tDefault:      \"\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"The place where the mount path can be found.\",\n\t\t\t},\n\t\t\t\"read_only\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Wether this mount should be done read-only.\",\n\t\t\t},\n\t\t\t\"offline\": config.DefaultEntry{\n\t\t\t\tDefault:      false,\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"Error out on remote files early if set true.\",\n\t\t\t},\n\t\t\t\"root\": config.DefaultEntry{\n\t\t\t\tDefault:      \"/\",\n\t\t\t\tNeedsRestart: true,\n\t\t\t\tDocs:         \"The virtual root of the mount.\",\n\t\t\t},\n\t\t},\n\t},\n}\n"
  },
  {
    "path": "docs/.gitignore",
    "content": "_build/\n"
  },
  {
    "path": "docs/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line.\nSPHINXOPTS    =\nSPHINXBUILD   = sphinx-build\nSPHINXPROJ    = brig\nSOURCEDIR     = .\nBUILDDIR      = _build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)"
  },
  {
    "path": "docs/_static/css/custom.css",
    "content": "span.strikethrough { text-decoration: line-through; }\n\na {\n    color: #1866bc !important;\n}\n\n#navbar a {\n    color: #18bc9c !important;\n}\n\n.alert-info {\n    background-color: #5cb7f5a1;\n    color: #333;\n}\n\n.alert-warning {\n    background-color: #f39c1281;\n    color: #333;\n}\n\npre {\n    color: #4e5858;\n}\n\n.form-control {\n    padding: 1px 2px;\n    height: 35px;\n    margin-top: 5px;\n}\n\n.navbar-brand {\n    font-weight: 900;\n}\n\n.caption-text {\n    font-weight: 900;\n}\n\n#sidebar > li {\n    display: block;\n}\n\n#sidebar {\n    padding-left: 10px;\n    position: relative;\n}\n\n/* Make the ``brig`` markup in page color */\n.pre {\n    color: #1866bc !important;\n    color: #18bc9c !important;\n}\n\n/* Maket the selected item in the sidebar a little darker */\na.current {\n    background-color: #00000011;\n}\n\ntbody {\n    text-align: left !important;\n}\n"
  },
  {
    "path": "docs/asciinema/1_init.json",
    "content": "{\n  \"version\": 1,\n  \"width\": 119,\n  \"height\": 29,\n  \"duration\": 27.933128,\n  \"command\": null,\n  \"title\": null,\n  \"env\": {\n    \"TERM\": \"xterm-256color\",\n    \"SHELL\": \"/bin/zsh\"\n  },\n  \"stdout\": [\n    [\n      0.244236,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      2.8e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      0.000153,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      6e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000183,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.163009,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.168255,\n      \"\\b\\u001b[24m\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.127064,\n      \"\\b\\b\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[1m\\u001b[31md\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.08503,\n      \"\\b\\u001b[1m\\u001b[31md\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.077231,\n      \"\\b\\b\\b\\b\\u001b[0m\\u001b[32mm\\u001b[0m\\u001b[32mk\\u001b[0m\\u001b[32md\\u001b[0m\\u001b[32mi\\u001b[32mr\\u001b[39m\"\n    ],\n    [\n      0.091295,\n      \" \"\n    ],\n    [\n      0.118571,\n      \"r\"\n    ],\n    [\n      0.054292,\n      \"e\"\n    ],\n    [\n      0.048684,\n      \"p\"\n    ],\n    [\n      0.142053,\n      \"o\"\n    ],\n    [\n      0.105353,\n      \" \"\n    ],\n    [\n      0.190366,\n      \"&\"\n    ],\n    [\n      0.148164,\n      \"&\"\n    ],\n    [\n      0.098179,\n      \" \"\n    ],\n    [\n      0.108353,\n      \"\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.082543,\n      \"\\b\\u001b[24m\\u001b[32mc\\u001b[32md\\u001b[39m\"\n    ],\n    [\n      0.066756,\n      \" \"\n    ],\n    [\n      0.402253,\n      \"r\"\n    ],\n    [\n      0.058028,\n      \"e\"\n    ],\n    [\n      0.070225,\n      \"p\"\n    ],\n    [\n      0.139698,\n      \"o\"\n    ],\n    [\n      0.175843,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.007316,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.002185,\n      \"\\u001b]2;mkdir repo && cd repo\\u0007\\u001b]1;mkdir\\u0007\"\n    ],\n    [\n      0.004325,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000382,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      0.000119,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      0.000282,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      0.000451,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.001252,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.533999,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.099738,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.094967,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.100018,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.060099,\n      \" \"\n    ],\n    [\n      0.380891,\n      \"i\"\n    ],\n    [\n      0.221134,\n      \"n\"\n    ],\n    [\n      0.147805,\n      \"i\"\n    ],\n    [\n      0.041873,\n      \"t\"\n    ],\n    [\n      0.076952,\n      \" \"\n    ],\n    [\n      0.085267,\n      \"s\"\n    ],\n    [\n      0.061555,\n      \"a\"\n    ],\n    [\n      0.042689,\n      \"h\"\n    ],\n    [\n      0.150819,\n      \"i\"\n    ],\n    [\n      0.071275,\n      \"b\"\n    ],\n    [\n      0.438737,\n      \"@\"\n    ],\n    [\n      0.118104,\n      \"o\"\n    ],\n    [\n      0.169356,\n      \"n\"\n    ],\n    [\n      0.388506,\n      \"\\b \\b\"\n    ],\n    [\n      0.226276,\n      \"w\"\n    ],\n    [\n      0.136792,\n      \"\\b \\b\"\n    ],\n    [\n      0.140039,\n      \"\\b \\b\"\n    ],\n    [\n      0.100199,\n      \"w\"\n    ],\n    [\n      0.074795,\n      \"a\"\n    ],\n    [\n      0.089204,\n      \"l\"\n    ],\n    [\n      0.130848,\n      \"d\"\n    ],\n    [\n      0.253754,\n      \".\"\n    ],\n    [\n      0.112072,\n      \"d\"\n    ],\n    [\n      0.047147,\n      \"e\"\n    ],\n    [\n      0.221917,\n      \"/\"\n    ],\n    [\n      0.861882,\n      \"l\"\n    ],\n    [\n      0.245981,\n      \"a\"\n    ],\n    [\n      0.150465,\n      \"p\"\n    ],\n    [\n      0.178583,\n      \"t\"\n    ],\n    [\n      0.064085,\n      \"o\"\n    ],\n    [\n      0.149899,\n      \"p\"\n    ],\n    [\n      0.167082,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.004906,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001659,\n      \"\\u001b]2;brig init sahib@wald.de/laptop\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.122907,\n      \"\\u001b[32m18.02.2018/16:03:09 ⚐\\u001b[0m No Daemon running. Starting daemon from binary: /home/sahib/go/bin/brig\\r\\n\"\n    ],\n    [\n      0.202807,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m \\b\"\n    ],\n    [\n      1.232412,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\"\n    ],\n    [\n      0.000696,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\"\n    ],\n    [\n      0.30993,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\\u0000\"\n    ],\n    [\n      0.000123,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\\u0000\"\n    ],\n    [\n      0.149752,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000538,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.116645,\n      \"\\u001b[J\\u001b[2K\\r\"\n    ],\n    [\n      8.2e-05,\n      \"\\u001b[31m⊠  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.002332,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[35m⊟  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.21385,\n      \"\\u001b[J\\u001b[2K\\r\"\n    ],\n    [\n      0.000168,\n      \"\\u001b[35m⊟  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000549,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.128442,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.00057,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.116187,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000762,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.192273,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.364106,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000363,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  New passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\r\\n\"\n    ],\n    [\n      0.00064,\n      \"Well done! Please re-type your password now for safety:\\r\\n\"\n    ],\n    [\n      0.000402,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m \\b\"\n    ],\n    [\n      0.380539,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\"\n    ],\n    [\n      0.000573,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\"\n    ],\n    [\n      0.29352,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\\u0000\"\n    ],\n    [\n      0.150925,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.114661,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[31m⊠  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.0005,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[35m⊟  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.213871,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[35m⊟  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000542,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.129238,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.000605,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.121982,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.001004,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.101944,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.001069,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"\n    ],\n    [\n      0.494948,\n      \"\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u001b[J\\u001b[2K\\r\\u001b[32m⚿  Retype passphrase: \\u001b[0m\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\r\\n\"\n    ],\n    [\n      0.00067,\n      \"Estimated time needed to crack password: \\u001b[34m12.0 months\\u001b[0m\\r\\n\\u001b[J\\u001b[2K\\r\"\n    ],\n    [\n      3.187785,\n      \"\\r\\n       _____         /  /\\\\        ___          /  /\\\\ \\r\\n      /  /::\\\\       /  /::\\\\      /  /\\\\        /  /:/_\\r\\n     /  /:/\\\\:\\\\     /  /:/\\\\:\\\\    /  /:/       /  /:/ /\\\\ \\r\\n    /  /:/~/::\\\\   /  /:/~/:/   /__/::\\\\      /  /:/_/::\\\\ \\r\\n   /__/:/ /:/\\\\:| /__/:/ /:/___ \\\\__\\\\/\\\\:\\\\__  /__/:/__\\\\/\\\\:\\\\\\r\\n   \\\\  \\\\:\\\\/:/~/:/ \\\\  \\\\:\\\\/:::::/    \\\\  \\\\:\\\\/\\\\ \\\\  \\\\:\\\\ /~~/:/\\r\\n    \\\\  \\\\::/ /:/   \\\\  \\\\::/~~~~      \\\\__\\\\::/  \\\\  \\\\:\\\\  /:/\\r\\n     \\\\  \\\\:\\\\/:/     \\\\  \\\\:\\\\          /__/:/    \\\\  \\\\:\\\\/:/\\r\\n      \\\\  \\\\::/       \\\\  \\\\:\\\\         \\\\__\\\\/      \\\\  \\\\::/\\r\\n       \\\\__\\\\/         \\\\__\\\\/                     \\\\__\\\\/\\r\\n\\r\\n\\r\\n     A new file README.md was automatically added.\\r\\n     Use 'brig cat README.md' to view it & get started.\\r\\n\\r\\n\\r\\n\"\n    ],\n    [\n      0.002162,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000148,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      5.1e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      0.000107,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000278,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.916781,\n      \"\\u001b[1m\\u001b[31mn\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.16261,\n      \"\\b\\u001b[1m\\u001b[31mn\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.078733,\n      \"\\b\\b\\u001b[1m\\u001b[31mn\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mo\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.112002,\n      \"\\b\\u001b[1m\\u001b[31mo\\u001b[1m\\u001b[31mg\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.06899,\n      \" \"\n    ],\n    [\n      0.171648,\n      \"\\b\"\n    ],\n    [\n      0.248889,\n      \"\\b\\b\\b\\b\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\b\\b\\b\\b\"\n    ],\n    [\n      0.270981,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.130296,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.110821,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.120156,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.064046,\n      \" \"\n    ],\n    [\n      0.535157,\n      \"\\u001b[4ml\\u001b[24m\"\n    ],\n    [\n      0.112487,\n      \"\\b\\u001b[24mls\"\n    ],\n    [\n      0.568157,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.00422,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.00208,\n      \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.160871,\n      \"SIZE   MODTIME          PATH        PIN  \\r\\n886 B  Feb 18 16:03:17  \\u001b[37m/README.md\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n\"\n    ],\n    [\n      0.001331,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      7.4e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      1.2e-05,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      6.9e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      7.4e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000196,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.016178,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.105196,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.10579,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.09966,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.129177,\n      \" \"\n    ],\n    [\n      0.179915,\n      \"\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.058107,\n      \"\\b\\u001b[24mca\"\n    ],\n    [\n      0.146678,\n      \"t\"\n    ],\n    [\n      0.126798,\n      \" \"\n    ],\n    [\n      0.176763,\n      \"R\"\n    ],\n    [\n      0.070224,\n      \"E\"\n    ],\n    [\n      0.134468,\n      \"A\"\n    ],\n    [\n      0.131393,\n      \"D\"\n    ],\n    [\n      0.13735,\n      \"M\"\n    ],\n    [\n      0.091651,\n      \"E\"\n    ],\n    [\n      0.188663,\n      \".\"\n    ],\n    [\n      0.214387,\n      \"m\"\n    ],\n    [\n      0.098478,\n      \"d\"\n    ],\n    [\n      0.198813,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.006238,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.002035,\n      \"\\u001b]2;brig cat README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.122483,\n      \"Welcome to brig!\\r\\n\\r\\nHere's what you can do next:\\r\\n\\r\\n    • Add a few remotes to sync with (See 'brig remote add -h')\\r\\n    • Mount your data somewhere convinient (See 'brig mount -h')\\r\\n    • Have a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\r\\n\\r\\n    $ brig rm README.md\\r\\n\\r\\n\"\n    ],\n    [\n      0.001463,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000111,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      3.6e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      6.9e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.00018,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.523065,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ]\n  ]\n}"
  },
  {
    "path": "docs/asciinema/1_init_with_pwm.json",
    "content": "{\"version\": 2, \"width\": 172, \"height\": 42, \"timestamp\": 1542382930, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}, \"title\": \"brig init (with password manager)\"}\n[0.26352, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                           \\r \\r\"]\n[0.26403, \"o\", \"\\u001b]2;sahib@werkbank: /tmp\\u0007\\u001b]1;/tmp\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[0.739097, \"o\", \"\\u001b[4mm\\u001b[24m\"]\n[0.92474, \"o\", \"\\b\\u001b[24m\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[0m\\u001b[39m\"]\n[1.031303, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[1m\\u001b[31md\\u001b[0m\\u001b[39m\"]\n[1.153579, \"o\", \"\\b\\u001b[1m\\u001b[31md\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[1.230782, \"o\", \"\\b\\b\\b\\b\\u001b[0m\\u001b[32mm\\u001b[0m\\u001b[32mk\\u001b[0m\\u001b[32md\\u001b[0m\\u001b[32mi\\u001b[32mr\\u001b[39m\"]\n[1.310904, \"o\", \" \"]\n[1.579276, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[1.642426, \"o\", \"\\b\\u001b[24mre\"]\n[1.712467, \"o\", \"p\"]\n[1.860411, \"o\", \"o\"]\n[1.993894, \"o\", \" \"]\n[3.034364, \"o\", \"&\"]\n[3.155707, \"o\", \"&\"]\n[3.263644, \"o\", \" \"]\n[3.395157, \"o\", \"\\u001b[1m\\u001b[31mc\\u001b[0m\\u001b[39m\"]\n[3.462327, \"o\", \"\\b\\u001b[0m\\u001b[32mc\\u001b[32md\\u001b[39m\"]\n[3.539217, \"o\", \" \"]\n[3.645307, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[3.707485, \"o\", \"\\b\\u001b[24mre\"]\n[3.772131, \"o\", \"p\"]\n[3.95697, \"o\", \"o\"]\n[4.725546, \"o\", \"\\u001b[?1l\\u001b>\"]\n[4.734682, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[4.737525, \"o\", \"\\u001b]2;mkdir repo && cd repo\\u0007\\u001b]1;mkdir\\u0007\"]\n[4.742294, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                           \\r \\r\"]\n[4.742882, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/repo\\u0007\"]\n[4.743388, \"o\", \"\\u001b]1;/tmp/repo\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[4.744018, \"o\", \"\\u001b[?1h\\u001b=\"]\n[4.745864, \"o\", \"\\u001b[?2004h\"]\n[5.92003, \"o\", \"\\u001b[1m\\u001b[31mp\\u001b[0m\\u001b[39m\"]\n[6.056376, \"o\", \"\\b\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31ma\\u001b[0m\\u001b[39m\"]\n[6.124477, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31ma\\u001b[1m\\u001b[31ms\\u001b[0m\\u001b[39m\"]\n[6.290954, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mp\\u001b[0m\\u001b[32ma\\u001b[0m\\u001b[32ms\\u001b[32ms\\u001b[39m\"]\n[6.399263, \"o\", \" \"]\n[7.291905, \"o\", \"g\"]\n[7.360923, \"o\", \"e\"]\n[7.422143, \"o\", \"n\"]\n[7.499221, \"o\", \"e\"]\n[7.544024, \"o\", \"r\"]\n[7.653468, \"o\", \"a\"]\n[7.775172, \"o\", \"t\"]\n[7.826824, \"o\", \"e\"]\n[7.905244, \"o\", \" \"]\n[8.187297, \"o\", \"b\"]\n[8.307228, \"o\", \"r\"]\n[8.406541, \"o\", \"i\"]\n[8.503768, \"o\", \"g\"]\n[8.74212, \"o\", \"/\"]\n[8.926867, \"o\", \"r\"]\n[9.007904, \"o\", \"e\"]\n[9.047081, \"o\", \"p\"]\n[9.200125, \"o\", \"o\"]\n[9.764218, \"o\", \"/\"]\n[9.933345, \"o\", \"s\"]\n[9.984954, \"o\", \"a\"]\n[10.128667, \"o\", \"h\"]\n[10.30151, \"o\", \"i\"]\n[10.396692, \"o\", \"b\"]\n[10.772247, \"o\", \"@\"]\n[11.629835, \"o\", \"w\"]\n[11.71424, \"o\", \"a\"]\n[11.820773, \"o\", \"l\"]\n[11.951813, \"o\", \"d\"]\n[12.115615, \"o\", \".\"]\n[12.210083, \"o\", \"d\"]\n[12.266417, \"o\", \"e\"]\n[12.876332, \"o\", \" \"]\n[13.199804, \"o\", \"\\b\"]\n[14.158845, \"o\", \"/\"]\n[14.369763, \"o\", \";\"]\n[14.48393, \"o\", \"\\u001b[1m\\u001b[31ma\\u001b[0m\\u001b[39m\"]\n[14.799511, \"o\", \"\\b\\u001b[0m\\u001b[39m \\b\"]\n[14.928714, \"o\", \"\\b \\b\"]\n[15.09851, \"o\", \"l\"]\n[15.216493, \"o\", \"a\"]\n[15.303913, \"o\", \"p\"]\n[15.434103, \"o\", \"t\"]\n[15.513938, \"o\", \"o\"]\n[15.672982, \"o\", \"p\"]\n[15.795216, \"o\", \" \"]\n[15.997295, \"o\", \"-\"]\n[16.210899, \"o\", \"n\"]\n[16.289418, \"o\", \" \"]\n[16.457636, \"o\", \"2\"]\n[16.59324, \"o\", \"0\"]\n[17.222134, \"o\", \"\\u001b[?1l\\u001b>\"]\n[17.227172, \"o\", \"\\u001b[?2004l\"]\n[17.227446, \"o\", \"\\r\\r\\n\"]\n[17.229032, \"o\", \"\\u001b]2;pass generate brig/repo/sahib@wald.de/laptop -n 20\\u0007\"]\n[17.22927, \"o\", \"\\u001b]1;pass\\u0007\"]\n[17.25874, \"o\", \"mkdir: Verzeichnis '/home/sahib/.password-store/brig/repo/sahib@wald.de' angelegt\\r\\n\"]\n[17.273215, \"o\", \"\\u001b[1mThe generated password for \\u001b[4mbrig/repo/sahib@wald.de/laptop\\u001b[24m is:\\u001b[0m\\r\\n\\u001b[1m\\u001b[93mwRQUbpoYCCwZIJxkn7VV\\u001b[0m\\r\\n\"]\n[17.273828, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                           \\r \\r\"]\n[17.273942, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/repo\\u0007\"]\n[17.273967, \"o\", \"\\u001b]1;/tmp/repo\\u0007\"]\n[17.274064, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[17.274153, \"o\", \"\\u001b[?1h\\u001b=\"]\n[17.274413, \"o\", \"\\u001b[?2004h\"]\n[18.856296, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[18.940748, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[19.061012, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[19.159053, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[19.233445, \"o\", \" \"]\n[21.190964, \"o\", \"i\"]\n[21.386602, \"o\", \"n\"]\n[21.538857, \"o\", \"i\"]\n[21.609502, \"o\", \"t\"]\n[21.683962, \"o\", \" \"]\n[22.683931, \"o\", \" \"]\n[22.997219, \"o\", \"\\b\"]\n[23.738281, \"o\", \"s\"]\n[23.799633, \"o\", \"a\"]\n[23.859625, \"o\", \"h\"]\n[24.023621, \"o\", \"i\"]\n[24.106901, \"o\", \"b\"]\n[24.445686, \"o\", \"@\"]\n[24.668167, \"o\", \"w\"]\n[24.747857, \"o\", \"a\"]\n[24.836444, \"o\", \"l\"]\n[24.964705, \"o\", \"d\"]\n[25.107596, \"o\", \".\"]\n[25.213753, \"o\", \"d\"]\n[25.304183, \"o\", \"e\"]\n[25.855981, \"o\", \"/\"]\n[26.067438, \"o\", \"l\"]\n[26.19953, \"o\", \"a\"]\n[26.324293, \"o\", \"p\"]\n[26.537115, \"o\", \"t\"]\n[26.626544, \"o\", \"o\"]\n[26.82602, \"o\", \"p\"]\n[26.984607, \"o\", \" \"]\n[27.63086, \"o\", \"-\"]\n[27.910446, \"o\", \"w\"]\n[28.066763, \"o\", \" \"]\n[28.24338, \"o\", \"\\u001b[33m'\\u001b[39m\"]\n[28.476716, \"o\", \"\\b\\u001b[33m'\\u001b[33mp\\u001b[39m\"]\n[28.548911, \"o\", \"\\b\\u001b[33mp\\u001b[33ma\\u001b[39m\"]\n[28.591751, \"o\", \"\\b\\u001b[33ma\\u001b[33ms\\u001b[39m\"]\n[28.74535, \"o\", \"\\b\\u001b[33ms\\u001b[33ms\\u001b[39m\"]\n[28.821941, \"o\", \"\\b\\u001b[33ms\\u001b[33m \\u001b[39m\"]\n[31.700107, \"o\", \"\\u001b[40D\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mg\\u001b[1m\\u001b[31m \\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mn\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mt\\u001b[1m\\u001b[31m \\u001b[1m\\u001b[31ms\\u001b[1m\\u001b[31ma\\u001b[1m\\u001b[31mh\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31m@\\u001b[1m\\u001b[31mw\\u001b[1m\\u001b[31ma\\u001b[1m\\u001b[31ml\\u001b[1m\\u001b[31md\\u001b[1m\\u001b[31m.\\u001b[1m\\u001b[31md\\u001b[1m\\u001b[31me\\u001b[1m\\u001b[31m/\\u001b[1m\\u001b[31ml\\u001b[1m\\u001b[31ma\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31mt\\u001b[1m\\u001b[31mo\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31m \\u001b[1m\\u001b[31m-\\u001b[1m\\u001b[31mw\\u001b[1m\\u001b[31m \\u001b[1m\\u001b[31m'\\u001b[1m\\u001b[31mp\\u001b[1m\\u001b[31ma\\u001b[1m\\u001b[31ms\\u001b[1m\\u001b[31ms\\u001b[1m\\u001b[31m \\u001b[1m\\u001b[31mbrig/repo/sahib@wald.de/laptop\\u001b[0m\\u001b[27m\\u001b[39m\"]\n[32.642035, \"o\", \"\\u001b[70D\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[0m\\u001b[32mg\\u001b[39m\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39mi\\u001b[0m\\u001b[39mn\\u001b[0m\\u001b[39mi\\u001b[0m\\u001b[39mt\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39ms\\u001b[0m\\u001b[39ma\\u001b[0m\\u001b[39mh\\u001b[0m\\u001b[39mi\\u001b[0m\\u001b[39mb\\u001b[0m\\u001b[39m@\\u001b[0m\\u001b[39mw\\u001b[0m\\u001b[39ma\\u001b[0m\\u001b[39ml\\u001b[0m\\u001b[39md\\u001b[0m\\u001b[39m.\\u001b[0m\\u001b[39md\\u001b[0m\\u001b[39me\\u001b[0m\\u001b[39m/\\u001b[0m\\u001b[39ml\\u001b[0m\\u001b[39ma\\u001b[0m\\u001b[39mp\\u001b[0m\\u001b[39mt\\u001b[0m\\u001b[39mo\\u001b[0m\\u001b[39mp\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m-\\u001b[0m\\u001b[39mw\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[33m'\\u001b[0m\\u001b[33mp\\u001b[0m\\u001b[33ma\\u001b[0m\\u001b[33ms\\u001b[0m\\u001b[33ms\\u001b[0m\\u001b[33m \\u001b[0m\\u001b[33mb\\u001b[0m\\u001b[33mr\\u001b[0m\\u001b[33mi\\u001b[0m\\u001b[33mg\\u001b[0m\\u001b[33m/\\u001b[0m\\u001b[33mr\\u001b[0m\\u001b[33me\\u001b[0m\\u001b[33mp\\u001b[0m\\u001b[33mo\\u001b[0m\\u001b[33m/\\u001b[0m\\u001b[33ms\\u001b[0m\\u001b[33ma\\u001b[0m\\u001b[33mh\\u001b[0m\\u001b[33mi\\u001b[0m\\u001b[33mb\\u001b[0m\\u001b[33m@\\u001b[0m\\u001b[33mw\\u001b[0m\\u001b[33ma\\u001b[0m\\u001b[33ml\\u001b[0m\\u001b[33md\\u001b[0m\\u001b[33m.\\u001b[0m\\u001b[33md\\u001b[0m\\u001b[33me\\u001b[0m\\u001b[33m/\\u001b[0m\\u001b[33ml\\u001b[0m\\u001b[33ma\\u001b[0m\\u001b[33mp\\u001b[0m\\u001b[33mt\\u001b[0m\\u001b[33mo\\u001b[0m\\u001b[33mp\\u001b[33m'\\u001b[39m\"]\n[33.456599, \"o\", \"\\u001b[?1l\\u001b>\"]\n[33.458004, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[33.458685, \"o\", \"\\u001b]2;brig init sahib@wald.de/laptop -w 'pass brig/repo/sahib@wald.de/laptop'\\u0007\\u001b]1;brig\\u0007\"]\n[33.843016, \"o\", \"Guessed folder for init: /tmp/repo\\r\\n\"]\n[36.537341, \"o\", \"\\r\\n       _____         /  /\\\\        ___          /  /\\\\ \\r\\n      /  /::\\\\       /  /::\\\\      /  /\\\\        /  /:/_\\r\\n     /  /:/\\\\:\\\\     /  /:/\\\\:\\\\    /  /:/       /  /:/ /\\\\ \\r\\n    /  /:/~/::\\\\   /  /:/~/:/   /__/::\\\\      /  /:/_/::\\\\ \\r\\n   /__/:/ /:/\\\\:| /__/:/ /:/___ \\\\__\\\\/\\\\:\\\\__  /__/:/__\\\\/\\\\:\\\\\\r\\n   \\\\  \\\\:\\\\/:/~/:/ \\\\  \\\\:\\\\/:::::/    \\\\  \\\\:\\\\/\\\\ \\\\  \\\\:\\\\ /~~/:/\\r\\n    \\\\  \\\\::/ /:/   \\\\  \\\\::/~~~~      \\\\__\\\\::/  \\\\  \\\\:\\\\  /:/\\r\\n     \\\\  \\\\:\\\\/:/     \\\\  \\\\:\\\\          /__/:/    \\\\  \\\\:\\\\/:/\\r\\n      \\\\  \\\\::/       \\\\  \\\\:\\\\         \\\\__\\\\/      \\\\  \\\\::/\\r\\n       \\\\__\\\\/         \\\\__\\\\/                     \\\\__\\\\/\\r\\n\\r\\n\\r\\n     A new file README.md was automatically added.\\r\\n     Use 'brig cat README.md' to view it & get started.\\r\\n\\r\\n\\r\\n\"]\n[36.543616, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                           \\r \\r\"]\n[36.543888, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/repo\\u0007\\u001b]1;/tmp/repo\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[36.544159, \"o\", \"\\u001b[?2004h\"]\n[39.488223, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/asciinema/2_adding.json",
    "content": "{\n  \"version\": 1,\n  \"width\": 119,\n  \"height\": 29,\n  \"duration\": 21.32594,\n  \"command\": null,\n  \"title\": null,\n  \"env\": {\n    \"TERM\": \"xterm-256color\",\n    \"SHELL\": \"/bin/zsh\"\n  },\n  \"stdout\": [\n    [\n      0.25386,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      2.7e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      0.000118,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      9.8e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000186,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.453974,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.105389,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.085149,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.092634,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.053191,\n      \" \"\n    ],\n    [\n      0.120726,\n      \"s\"\n    ],\n    [\n      0.138693,\n      \"t\"\n    ],\n    [\n      0.104973,\n      \"a\"\n    ],\n    [\n      0.113068,\n      \"g\"\n    ],\n    [\n      0.033543,\n      \"e\"\n    ],\n    [\n      0.086594,\n      \" \"\n    ],\n    [\n      0.108291,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.162977,\n      \"\\b\\u001b[4mm\\u001b[4mu\\u001b[24m\"\n    ],\n    [\n      0.112732,\n      \"\\b\\u001b[4mu\\u001b[4ms\\u001b[24m\"\n    ],\n    [\n      0.234469,\n      \"\\b\\u001b[4ms\\u001b[4mic.mp3\\u001b[24m \"\n    ],\n    [\n      0.725932,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.005389,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.002298,\n      \"\\u001b]2;brig stage music.mp3\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.462899,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      4.1e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      1.1e-05,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      6.7e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      0.0001,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000226,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.688362,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.115037,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.088531,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.101543,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.066626,\n      \" \"\n    ],\n    [\n      0.109212,\n      \"\\u001b[4ml\\u001b[24m\"\n    ],\n    [\n      0.125075,\n      \"\\b\\u001b[24mls\"\n    ],\n    [\n      0.105769,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.006356,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001889,\n      \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.181364,\n      \"SIZE   MODTIME          \"\n    ],\n    [\n      0.00013,\n      \"PATH        PIN  \\r\\n886 B  Feb 18 16:03:17  \\u001b[37m/README.md\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n\\u001b[33m13 MB\\u001b[0m  Feb 18 16:05:45  \\u001b[37m/music.mp3\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n\"\n    ],\n    [\n      0.001523,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000107,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      1.2e-05,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      8.5e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      0.000104,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000267,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.618057,\n      \"\\u001b[32mbrig\\u001b[39m ls\"\n    ],\n    [\n      0.228909,\n      \"\\b\\b  \\b\\b\"\n    ],\n    [\n      0.192473,\n      \"t\"\n    ],\n    [\n      0.144214,\n      \"r\"\n    ],\n    [\n      0.038708,\n      \"e\"\n    ],\n    [\n      0.165568,\n      \"e\"\n    ],\n    [\n      0.182023,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.004345,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001945,\n      \"\\u001b]2;brig tree\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.11428,\n      \"\\u001b[35m•\\u001b[0m \\u001b[36m🖈\\u001b[0m\\r\\n├── music.mp3 \\u001b[36m🖈\\u001b[0m\\r\\n└── README.md \\u001b[36m🖈\\u001b[0m\\r\\n\\r\\n1 directory, 2 files\\r\\n\"\n    ],\n    [\n      0.001242,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      8.5e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      1.3e-05,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      7.3e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      8.3e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000189,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.986702,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.139791,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.061285,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.1216,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.059354,\n      \" \"\n    ],\n    [\n      1.141574,\n      \"\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.049557,\n      \"\\b\\u001b[24mca\"\n    ],\n    [\n      0.159666,\n      \"t\"\n    ],\n    [\n      0.068815,\n      \" \"\n    ],\n    [\n      0.146648,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.155988,\n      \"\\b\\u001b[4mm\\u001b[4mu\\u001b[24m\"\n    ],\n    [\n      0.079945,\n      \"\\b\\u001b[4mu\\u001b[4ms\\u001b[24m\"\n    ],\n    [\n      0.091685,\n      \"\\b\\u001b[4ms\\u001b[4mi\\u001b[24m\"\n    ],\n    [\n      0.075616,\n      \"\\b\\u001b[4mi\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.139947,\n      \"\\b\\u001b[4mc\\u001b[4m.\\u001b[24m\"\n    ],\n    [\n      0.180603,\n      \"\\b\\u001b[4m.\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.163774,\n      \"\\b\\u001b[4mm\\u001b[4mp\\u001b[24m\"\n    ],\n    [\n      0.06169,\n      \"\\b\\u001b[4mp\\u001b[4m3\\u001b[24m\"\n    ],\n    [\n      0.646438,\n      \" \"\n    ],\n    [\n      0.192937,\n      \"|\"\n    ],\n    [\n      0.128012,\n      \" \"\n    ],\n    [\n      0.355076,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.185119,\n      \"\\b\\u001b[24m\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mp\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.079648,\n      \"\\b\\b\\u001b[0m\\u001b[32mm\\u001b[0m\\u001b[32mp\\u001b[32mv\\u001b[39m\"\n    ],\n    [\n      0.069737,\n      \" \"\n    ],\n    [\n      0.098894,\n      \"-\"\n    ],\n    [\n      0.442838,\n      \"\\u001b[?1l\\u001b>\\u001b[?2004l\\r\\r\\n\\u001b]2;brig cat music.mp3 | mpv -\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.119644,\n      \"\\u001b[0mPlaying: -\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.006226,\n      \"\\u001b[0m[file] Reading from stdin...\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.019648,\n      \"\\u001b[0;33m[ffmpeg/demuxer] mp3: invalid concatenated file detected - using bitrate for duration\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.00472,\n      \"\\u001b[0m (+) Audio --aid=1 (mp3 2ch 44100Hz)\\r\\n\"\n    ],\n    [\n      8.2e-05,\n      \"\\u001b[0m\\u001b[0mFile tags:\\r\\n\"\n    ],\n    [\n      2.1e-05,\n      \"\\u001b[0m\\u001b[0m Artist: Epica\\r\\n\\u001b[0m\"\n    ],\n    [\n      1.7e-05,\n      \"\\u001b[0m Album: The Classical Conspiracy: Live in Miskolc, Hungary\\r\\n\\u001b[0m\\u001b[0m Album_Artist: Epica\\r\\n\"\n    ],\n    [\n      1.8e-05,\n      \"\\u001b[0m\\u001b[0m Title: The Imperial March\\r\\n\\u001b[0m\\u001b[0m Track: 8/18\\r\\n\"\n    ],\n    [\n      1.3e-05,\n      \"\\u001b[0m\"\n    ],\n    [\n      0.004403,\n      \"\\u001b[0mAO: [pulse] 44100Hz stereo 2ch s16\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.015081,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:00:00 Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.675774,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:00:00 Cache:  9s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.203763,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:00:00 Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.203299,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:01 / 00:00:00 Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.385072,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:01 / 00:00:00 Cache:  9s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.126352,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:01 / 00:00:00 Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.404842,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:02 / 00:00:00 Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.202959,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:02 / 00:00:00 (1%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.813401,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:03 / 00:00:00 (1%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.407844,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:03 / 00:00:00 (1%) Cache:  9s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.079101,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:03 / 00:00:00 (1%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.126073,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:03 / 00:00:00 (2%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.40592,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:04 / 00:00:00 (2%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      1.015693,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:05 / 00:00:00 (2%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.609984,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:05 / 00:00:00 (3%) Cache:  9s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.079399,\n      \"\\r\\u001b[K\\u001b[0mA: 00:00:05 / 00:00:00 (3%) Cache: 10s+5MB\\r\\u001b[0m\"\n    ],\n    [\n      0.254169,\n      \"^C\"\n    ],\n    [\n      0.006464,\n      \"\\r\\n\\u001b[0m\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.000298,\n      \"\\u001b[0m\\r\\n\\u001b[0m\\u001b[0mExiting... (Quit)\\r\\n\\u001b[0m\"\n    ],\n    [\n      0.022616,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000604,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs/repo\\u0007\"\n    ],\n    [\n      0.000122,\n      \"\\u001b]1;..rig/docs/repo\\u0007\"\n    ],\n    [\n      0.001088,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.001661,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.256398,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ]\n  ]\n}"
  },
  {
    "path": "docs/asciinema/3_coreutils.json",
    "content": "{\n  \"version\": 1,\n  \"width\": 119,\n  \"height\": 29,\n  \"duration\": 44.439839,\n  \"command\": null,\n  \"title\": null,\n  \"env\": {\n    \"TERM\": \"xterm-256color\",\n    \"SHELL\": \"/bin/zsh\"\n  },\n  \"stdout\": [\n    [\n      0.207775,\n      \"b\"\n    ],\n    [\n      0.03976,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000112,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      0.000121,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      6.6e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      8.2e-05,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.001595,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.104775,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.103078,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.171794,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.084843,\n      \" \"\n    ],\n    [\n      0.111081,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.2013,\n      \"\\b\\u001b[24mmk\"\n    ],\n    [\n      0.213333,\n      \"d\"\n    ],\n    [\n      0.116987,\n      \"i\"\n    ],\n    [\n      0.096428,\n      \"r\"\n    ],\n    [\n      0.108839,\n      \" \"\n    ],\n    [\n      0.615141,\n      \"s\"\n    ],\n    [\n      0.112813,\n      \"u\"\n    ],\n    [\n      0.093527,\n      \"b\"\n    ],\n    [\n      0.458499,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.006789,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.0028,\n      \"\\u001b]2;brig mkdir sub\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.112551,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      6e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.4e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      5.9e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      7.3e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000193,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.144128,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.151721,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.099278,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.113866,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.071336,\n      \" \"\n    ],\n    [\n      0.12183,\n      \"\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.085112,\n      \"\\b\\u001b[24mcp\"\n    ],\n    [\n      0.076426,\n      \" \"\n    ],\n    [\n      0.118376,\n      \"\\u001b[4mm\\u001b[24m\"\n    ],\n    [\n      0.150092,\n      \"\\b\\u001b[24mmu\"\n    ],\n    [\n      0.061787,\n      \"s\"\n    ],\n    [\n      0.111346,\n      \"i\"\n    ],\n    [\n      0.102251,\n      \"c\"\n    ],\n    [\n      0.134833,\n      \".\"\n    ],\n    [\n      0.208191,\n      \"m\"\n    ],\n    [\n      0.234634,\n      \"p\"\n    ],\n    [\n      0.096577,\n      \"3\"\n    ],\n    [\n      0.163669,\n      \" \"\n    ],\n    [\n      0.315213,\n      \"s\"\n    ],\n    [\n      0.110484,\n      \"u\"\n    ],\n    [\n      0.097823,\n      \"b\"\n    ],\n    [\n      0.185982,\n      \" \"\n    ],\n    [\n      0.3964,\n      \"\\b\"\n    ],\n    [\n      0.377085,\n      \"/\"\n    ],\n    [\n      0.556364,\n      \"\\b \\b\"\n    ],\n    [\n      0.255609,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.007065,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.002288,\n      \"\\u001b]2;brig cp music.mp3 sub\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.116393,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      6.1e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.4e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      6e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      6.4e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000187,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.240271,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.1047,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.102508,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.088436,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.086373,\n      \" \"\n    ],\n    [\n      0.138829,\n      \"t\"\n    ],\n    [\n      0.166321,\n      \"r\"\n    ],\n    [\n      0.074024,\n      \"e\"\n    ],\n    [\n      0.177903,\n      \"e\"\n    ],\n    [\n      0.169713,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.003955,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001864,\n      \"\\u001b]2;brig tree\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.123081,\n      \"\\u001b[35m•\\u001b[0m \\u001b[36m🖈\\u001b[0m\\r\\n├── README.md \\u001b[36m🖈\\u001b[0m\\r\\n\"\n    ],\n    [\n      9e-05,\n      \"└──\\u001b[32msub\\u001b[0m \\u001b[36m🖈\\u001b[0m\\r\\n   └── music.mp3 \\u001b[36m🖈\\u001b[0m\\r\\n\\r\\n2 directories, 3 files\\r\\n\"\n    ],\n    [\n      0.001329,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      7.5e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.2e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      6.1e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \"\n    ],\n    [\n      1.1e-05,\n      \"\\u001b[K\"\n    ],\n    [\n      7.3e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.00019,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      2.752774,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.218615,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.15312,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.47546,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.091406,\n      \" \"\n    ],\n    [\n      0.851159,\n      \"\\u001b[4mi\\u001b[24m\"\n    ],\n    [\n      0.153946,\n      \"\\b\\u001b[4mi\\u001b[4mn\\u001b[24m\"\n    ],\n    [\n      0.113271,\n      \"\\b\\b\\u001b[24mi\\u001b[24mnf\"\n    ],\n    [\n      0.070447,\n      \"o\"\n    ],\n    [\n      0.064971,\n      \" \"\n    ],\n    [\n      0.216765,\n      \"R\"\n    ],\n    [\n      0.069948,\n      \"E\"\n    ],\n    [\n      0.089236,\n      \"A\"\n    ],\n    [\n      0.136061,\n      \"D\"\n    ],\n    [\n      0.12703,\n      \"M\"\n    ],\n    [\n      0.08556,\n      \"E\"\n    ],\n    [\n      0.179354,\n      \".\"\n    ],\n    [\n      0.223757,\n      \"m\"\n    ],\n    [\n      0.09138,\n      \"d\"\n    ],\n    [\n      0.121202,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.00509,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001736,\n      \"\\u001b]2;brig info README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.117613,\n      \"ATTR     VALUE\"\n    ],\n    [\n      3.4e-05,\n      \"                                                                                          \\r\\n\\u001b[37mPath\\u001b[0m     /README.md                                                                                     \\r\\n\\u001b[37mType\\u001b[0m     file                                                                                           \\r\\n\\u001b[37mSize\\u001b[0m     886 B                                                                                          \\r\\n\\u001b[37mHash\\u001b[0m     SEfXUBbsLgBV1KQtogr9N3WxLuNWYACVoyZbqqDvrCYWgRusPSMTBcfXgveekZh6qNBEYxaFPXZq6mncayPg5yc55z8rp  \\r\\n\\u001b[37mInode\\u001b[0m    \"\n    ],\n    [\n      6.5e-05,\n      \"4                        \"\n    ],\n    [\n      4.7e-05,\n      \"                                                                      \\r\\n\\u001b[37mPinned\\u001b[0m   \\u001b[32myes\\u001b[0m                                                                                            \\r\\n\\u001b[37mModTime\\u001b[0m  2018-02-18T16:03:17+01:00                                                                      \\r\\n\\u001b[37mContent\\u001b[0m  QmRD1CzUEBg8BMTArBJymVHs8MVZAYAHi2tzA1UxXqf2qp                        \"\n    ],\n    [\n      4.5e-05,\n      \"                         \\r\\n\"\n    ],\n    [\n      0.001377,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      7.7e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.2e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      5.9e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      8.6e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000226,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      2.408108,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.112957,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.110455,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.097714,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.243174,\n      \"\\b\\b\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mg\\u001b[1m\\u001b[31me\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.341565,\n      \"\\b\\b\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[0m\\u001b[32mg\\u001b[39m\\u001b[0m\\u001b[39m \\b\"\n    ],\n    [\n      0.084114,\n      \" \"\n    ],\n    [\n      0.060533,\n      \"\\u001b[4me\\u001b[24m\"\n    ],\n    [\n      0.103896,\n      \"\\b\\u001b[24med\"\n    ],\n    [\n      0.049514,\n      \"i\"\n    ],\n    [\n      0.172611,\n      \"t\"\n    ],\n    [\n      0.090499,\n      \" \"\n    ],\n    [\n      0.237876,\n      \"R\"\n    ],\n    [\n      0.073149,\n      \"E\"\n    ],\n    [\n      0.131375,\n      \"A\"\n    ],\n    [\n      0.111012,\n      \"D\"\n    ],\n    [\n      0.146386,\n      \"M\"\n    ],\n    [\n      0.088129,\n      \"E\"\n    ],\n    [\n      0.165009,\n      \".\"\n    ],\n    [\n      0.216731,\n      \"m\"\n    ],\n    [\n      0.083528,\n      \"d\"\n    ],\n    [\n      1.476078,\n      \"\\b\\b\"\n    ],\n    [\n      0.264974,\n      \"\\b\\b\\b\\b\\b\\b\\b\"\n    ],\n    [\n      0.575857,\n      \"\\b\"\n    ],\n    [\n      0.294863,\n      \"\\b\\u001b[P\\u001b[10C \\u001b[11D\"\n    ],\n    [\n      0.198429,\n      \"\\b\\u001b[P\\u001b[10C \\u001b[11D\"\n    ],\n    [\n      0.169154,\n      \"t README.md\\u001b[10D\"\n    ],\n    [\n      0.118885,\n      \"i README.md\\u001b[10D\"\n    ],\n    [\n      0.214733,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.005064,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001899,\n      \"\\u001b]2;brig edti README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.103904,\n      \"`\\u001b[31medti\\u001b[0m` is not a valid command. Did you maybe mean `\\u001b[32medit\\u001b[0m`?\\r\\n\"\n    ],\n    [\n      0.001328,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      7.2e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.3e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      5.9e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      7e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000196,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      0.869697,\n      \"\\u001b[32mbrig\\u001b[39m edti README.md\"\n    ],\n    [\n      0.269395,\n      \"\\u001b[19D\"\n    ],\n    [\n      0.134928,\n      \"\\u001b[5C\"\n    ],\n    [\n      0.176458,\n      \"\\u001b[5C\"\n    ],\n    [\n      0.380294,\n      \"\\b\"\n    ],\n    [\n      0.37218,\n      \"\\b\\u001b[P\\u001b[10C \\u001b[11D\"\n    ],\n    [\n      0.147017,\n      \"\\b\\u001b[P\\u001b[10C \\u001b[11D\"\n    ],\n    [\n      0.163162,\n      \"i README.md\\u001b[10D\"\n    ],\n    [\n      0.081396,\n      \"t README.md\\u001b[10D\"\n    ],\n    [\n      0.73976,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.005398,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001748,\n      \"\\u001b]2;brig edit README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.127872,\n      \"\\u001b[?1000h\\u001b[?2004h\\u001b[?1049h\\u001b[22;0;0t\\u001b[?1h\\u001b=\\u001b[?2004h\"\n    ],\n    [\n      0.000239,\n      \"\\u001b[1;29r\\u001b[?12h\\u001b[?12l\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[29;1H\\\"/tmp/brig-cmd-buffer-1263340949723681570.md\\\"\"\n    ],\n    [\n      5.3e-05,\n      \" 15L, 443C\"\n    ],\n    [\n      0.012203,\n      \"\\u001b[2;1H▽\\u001b[6n\\u001b[2;1H  \\u001b[1;1H\\u001b[>c\\u001b]10;?\\u0007\\u001b]11;?\\u0007\"\n    ],\n    [\n      0.002133,\n      \"\\u001b[1;1HWelcome to brig!\\r\\n\\r\\nHere's what you can do next:\\u001b[5;5H•\\u001b[5;7HAdd a few remotes to sync with (See 'brig remote add -h')\\r\\n    •\\u001b[6;7HMount your data somewhere convinient (See 'brig mount -h')\\r\\n    •\\u001b[7;7HHave a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\u001b[14;5H$ brig rm README.md\\r\\n\\r\\n\\u001b[94m~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                      \"\n    ],\n    [\n      3e-05,\n      \"                                                                                \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                      \"\n    ],\n    [\n      9e-06,\n      \"                                                                \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\u001b[1;1H\\u001b[?25h\"\n    ],\n    [\n      0.011277,\n      \"\\u001bP+q436f\\u001b\\\\\\u001bP+q6b75\\u001b\\\\\\u001bP+q6b64\\u001b\\\\\\u001bP+q6b72\\u001b\\\\\\u001bP+q6b6c\\u001b\\\\\\u001bP+q2332\\u001b\\\\\\u001bP+q2334\\u001b\\\\\\u001bP+q2569\\u001b\\\\\\u001bP+q2a37\\u001b\\\\\\u001bP+q6b31\\u001b\\\\\"\n    ],\n    [\n      0.002856,\n      \"\\u001b[?1000l\\u001b[?1006h\\u001b[?1002h\\u001b[?1006l\\u001b[?1002l\\u001b[?1006h\\u001b[?1002h\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[1;1HWelcome to brig!\\r\\n\\r\\nHere's what you can do next:\\u001b[5;5H•\\u001b[5;7HAdd a few remotes to sync with (See 'brig remote add -h')\\r\\n    •\\u001b[6;7HMount your data somewhere convinient (See 'brig mount -h')\\r\\n    •\\u001b[7;7HHave a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\u001b[14;5H$ brig rm README.md\\r\\n\\r\\n\\u001b[94m~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                             \"\n    ],\n    [\n      5.3e-05,\n      \"                                         \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                             \"\n    ],\n    [\n      2.9e-05,\n      \"                         \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\r\\\"/tmp/brig-cmd-buffer-1263340949723681570.md\\\" 15L, 443C\\u001b[1;1H\\u001b[?25h\"\n    ],\n    [\n      0.61525,\n      \"\\u001b[?25l\\u001b[29;92Hj\\u001b[1;1H\"\n    ],\n    [\n      0.000361,\n      \"\\u001b[29;92H \\u001b[2;1H\\u001b[29;102H2,0-1\\u001b[2;1H\\u001b[?25h\"\n    ],\n    [\n      0.307898,\n      \"\\u001b[?25l\\u001b[29;92HG\\u001b[2;1H\"\n    ],\n    [\n      0.000155,\n      \"\\u001b[29;92H \\u001b[15;1H\\u001b[29;102H15,0-1\\u001b[15;1H\\u001b[?25h\"\n    ],\n    [\n      0.548891,\n      \"\\u001b[?25l\\u001b[29;92Ho\\u001b[15;1H\"\n    ],\n    [\n      0.000101,\n      \"\\u001b[29;92H \\u001b[16;1H\"\n    ],\n    [\n      0.000179,\n      \"\\u001b[29;1H\\u001b[1m-- EINFÜGEN --\\u001b[m\\u001b[29;15H\\u001b[K\\u001b[29;102H16,1\\u001b[8CAlles\"\n    ],\n    [\n      0.001464,\n      \"\\u001b[16;1H\\u001b[K\\u001b[16;1H\\u001b[?25h\"\n    ],\n    [\n      0.195215,\n      \"\\u001b[?25l\\u001b[17;1H\\u001b[K\\u001b[29;103H7\\u001b[17;1H\\u001b[?25h\"\n    ],\n    [\n      0.411704,\n      \"\\u001b[?25lI\\u001b[29;105H2\\u001b[17;2H\\u001b[?25h\"\n    ],\n    [\n      0.234594,\n      \"\\u001b[?25l'\\u001b[29;105H3\\u001b[17;3H\\u001b[?25h\"\n    ],\n    [\n      0.122519,\n      \"\\u001b[?25lv\\u001b[29;105H4\\u001b[17;4H\\u001b[?25h\"\n    ],\n    [\n      0.066522,\n      \"\\u001b[?25le\\u001b[29;105H5\\u001b[17;5H\\u001b[?25h\"\n    ],\n    [\n      0.112979,\n      \"\\u001b[?25l\\u001b[29;105H6\\u001b[17;6H\\u001b[?25h\"\n    ],\n    [\n      0.312782,\n      \"\\u001b[?25le\\u001b[29;105H7\\u001b[17;7H\\u001b[?25h\"\n    ],\n    [\n      0.154464,\n      \"\\u001b[?25ld\\u001b[29;105H8\\u001b[17;8H\\u001b[?25h\"\n    ],\n    [\n      0.168844,\n      \"\\u001b[?25li\\u001b[29;105H9\\u001b[17;9H\\u001b[?25h\"\n    ],\n    [\n      0.090198,\n      \"\\u001b[?25lt\\u001b[29;105H10\\u001b[17;10H\\u001b[?25h\"\n    ],\n    [\n      0.089237,\n      \"\\u001b[?25le\\u001b[29;106H1\\u001b[17;11H\\u001b[?25h\"\n    ],\n    [\n      0.129701,\n      \"\\u001b[?25lr\\u001b[29;106H2\\u001b[17;12H\\u001b[?25h\"\n    ],\n    [\n      0.439249,\n      \"\\u001b[?25l\\u001b[17;11H\\u001b[K\\u001b[29;106H1\\u001b[17;11H\\u001b[?25h\"\n    ],\n    [\n      0.080156,\n      \"\\u001b[?25ld\\u001b[29;106H2\\u001b[17;12H\\u001b[?25h\"\n    ],\n    [\n      0.091909,\n      \"\\u001b[?25l\\u001b[29;106H3\\u001b[17;13H\\u001b[?25h\"\n    ],\n    [\n      0.168699,\n      \"\\u001b[?25ly\\u001b[29;106H4\\u001b[17;14H\\u001b[?25h\"\n    ],\n    [\n      0.104238,\n      \"\\u001b[?25le\\u001b[29;106H5\\u001b[17;15H\\u001b[?25h\"\n    ],\n    [\n      0.220856,\n      \"\\u001b[?25l\\u001b[17;14H\\u001b[K\\u001b[29;106H4\\u001b[17;14H\\u001b[?25h\"\n    ],\n    [\n      0.14326,\n      \"\\u001b[?25l\\u001b[17;13H\\u001b[K\\u001b[29;106H3\\u001b[17;13H\\u001b[?25h\"\n    ],\n    [\n      0.142547,\n      \"\\u001b[?25li\\u001b[29;106H4\\u001b[17;14H\\u001b[?25h\"\n    ],\n    [\n      0.089015,\n      \"\\u001b[?25lt\\u001b[29;106H5\\u001b[17;15H\\u001b[?25h\"\n    ],\n    [\n      0.101241,\n      \"\\u001b[?25l.\\u001b[29;106H6\\u001b[17;16H\\u001b[?25h\"\n    ],\n    [\n      0.148249,\n      \"\\u001b[29;1H\\u001b[K\\u001b[17;15H\\u001b[?25l\\u001b[29;92H^[\\u001b[17;15H\"\n    ],\n    [\n      0.100582,\n      \"\\u001b[29;92H  \\u001b[17;16H\"\n    ],\n    [\n      0.000733,\n      \"\\u001b[29;102H17,15\\u001b[7CAlles\\u001b[17;15H\\u001b[?25h\"\n    ],\n    [\n      0.18371,\n      \"\\u001b[?25l\\u001b[29;92H:\\u001b[17;15H\\u001b[29;92H\\u001b[K\\u001b[29;1H:\\u001b[?2004h\\u001b[?25h\"\n    ],\n    [\n      0.067401,\n      \"w\\u001b[?25l\\u001b[?25h\"\n    ],\n    [\n      0.068066,\n      \"q\"\n    ],\n    [\n      1.9e-05,\n      \"\\u001b[?25l\\u001b[?25h\"\n    ],\n    [\n      0.061677,\n      \"\\r\"\n    ],\n    [\n      4.3e-05,\n      \"\\u001b[?25l\\u001b[?1006l\\u001b[?1002l\\u001b[?2004l\"\n    ],\n    [\n      3.8e-05,\n      \"\\\"/tmp/brig-cmd-buffer-1263340949723681570.md\\\"\"\n    ],\n    [\n      8e-05,\n      \" 17L, 460C geschrieben\"\n    ],\n    [\n      0.000507,\n      \"\\r\\r\\r\\n\\u001b[?2004l\\u001b[?1l\\u001b>\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\"\n    ],\n    [\n      0.135995,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      0.000115,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.9e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      0.000112,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      0.000149,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000335,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.145903,\n      \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.128894,\n      \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.085092,\n      \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"\n    ],\n    [\n      0.104495,\n      \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"\n    ],\n    [\n      0.07748,\n      \" \"\n    ],\n    [\n      0.150049,\n      \"\\u001b[4mc\\u001b[24m\"\n    ],\n    [\n      0.065485,\n      \"\\b\\u001b[24mca\"\n    ],\n    [\n      0.151361,\n      \"t\"\n    ],\n    [\n      0.07143,\n      \" \"\n    ],\n    [\n      0.798179,\n      \"R\"\n    ],\n    [\n      0.049034,\n      \"E\"\n    ],\n    [\n      0.148152,\n      \"A\"\n    ],\n    [\n      0.101871,\n      \"D\"\n    ],\n    [\n      0.147676,\n      \"M\"\n    ],\n    [\n      0.08569,\n      \"E\"\n    ],\n    [\n      0.501451,\n      \".\"\n    ],\n    [\n      0.181451,\n      \"m\"\n    ],\n    [\n      0.090745,\n      \"d\"\n    ],\n    [\n      0.115721,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.005991,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001998,\n      \"\\u001b]2;brig cat README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.113793,\n      \"Welcome to brig!\\r\\n\\r\\nHere's what you can do next:\\r\\n\\r\\n    • Add a few remotes to sync with (See 'brig remote add -h')\\r\\n    • Mount your data somewhere convinient (See 'brig mount -h')\\r\\n    • Have a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\r\\n\\r\\n    $ brig rm README.md\\r\\n\\r\\n\\r\\nI've edited it.\\r\\n\"\n    ],\n    [\n      0.00158,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      8.5e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.4e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      7.7e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      7.7e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000193,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.198824,\n      \"\\u001b[32mbrig\\u001b[39m cat README.md\"\n    ],\n    [\n      0.183351,\n      \"\\u001b[13Dedit README.md\"\n    ],\n    [\n      0.414961,\n      \"\\u001b[12Dti\\u001b[10C\"\n    ],\n    [\n      0.409659,\n      \"\\u001b[14Dinfo\\u001b[10C\"\n    ],\n    [\n      0.534112,\n      \"\\u001b[?1l\\u001b>\"\n    ],\n    [\n      0.005484,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ],\n    [\n      0.001893,\n      \"\\u001b]2;brig info README.md\\u0007\\u001b]1;brig\\u0007\"\n    ],\n    [\n      0.117828,\n      \"ATTR     VALUE                                \"\n    ],\n    [\n      2.7e-05,\n      \"                                                          \\r\\n\\u001b[37mPath\\u001b[0m     /README.md                                                                                     \\r\\n\\u001b[37mType\\u001b[0m     file                                                                                           \\r\\n\\u001b[37mSize\\u001b[0m     460 B                                                                                          \\r\\n\\u001b[37mHash\\u001b[0m     SEfXUEBxWHqPU8J2cn4mg2bBoB48Wrpba2DUwsyuGaDc2nYfgBLZ6S3Bs4iY4kiCUJfa2KWSNx8gEBh2FMbh2D1yCNxst  \\r\\n\\u001b[37mInode\\u001b[0m    4                                                                                              \\r\\n\\u001b[37mPinned\\u001b[0m\"\n    ],\n    [\n      1.3e-05,\n      \"   \\u001b[32myes\\u001b[0m                                                                                \"\n    ],\n    [\n      1e-05,\n      \"            \\r\\n\\u001b[37mModTime\\u001b[0m  2018-02-18T21:51:40+01:00        \"\n    ],\n    [\n      9e-06,\n      \"                                                              \\r\\n\"\n    ],\n    [\n      1e-05,\n      \"\\u001b[37mContent\\u001b[0m  QmQMGt4QGSGhBXnNAHD3pYymmyxjV7dS7nax3F4wCf2Uut                                \"\n    ],\n    [\n      1e-05,\n      \"                 \\r\\n\"\n    ],\n    [\n      0.001378,\n      \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"\n    ],\n    [\n      6.7e-05,\n      \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"\n    ],\n    [\n      1.6e-05,\n      \"\\u001b]1;~/dev/brig/docs\\u0007\"\n    ],\n    [\n      6.4e-05,\n      \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"\n    ],\n    [\n      7.7e-05,\n      \"\\u001b[?1h\\u001b=\"\n    ],\n    [\n      0.000187,\n      \"\\u001b[?2004h\"\n    ],\n    [\n      1.715623,\n      \"\\u001b[?2004l\\r\\r\\n\"\n    ]\n  ]\n}"
  },
  {
    "path": "docs/asciinema/4_mount.json",
    "content": "{\"version\": 2, \"width\": 119, \"height\": 29, \"timestamp\": 1519811299, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}}\n[0.259676, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[0.259761, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[0.259893, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[0.260008, \"o\", \"\\u001b[?1h\\u001b=\"]\n[0.260247, \"o\", \"\\u001b[?2004h\"]\n[0.682887, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[0.801996, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[0.891365, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[0.986864, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[1.037332, \"o\", \" \"]\n[1.149093, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[1.267448, \"o\", \"\\b\\u001b[24mls\"]\n[1.513916, \"o\", \"\\u001b[?1l\\u001b>\"]\n[1.518176, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[1.520369, \"o\", \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"]\n[1.631909, \"o\", \"SIZE   MODTIME        \"]\n[1.632051, \"o\", \"  PATH        PIN  \\r\\n886 B  Feb 28 10:45:21  \\u001b[37m/README.md\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n\\u001b[33m13 MB\\u001b[0m  Feb 28 10:46:48  \\u001b[32m/sub\\u001b[0m         \\u001b[36m🖈\\u001b[0m   \\r\\n\"]\n[1.633428, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[1.63352, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[1.633546, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[1.633623, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[1.633823, \"o\", \"\\u001b[?1h\\u001b=\"]\n[1.633919, \"o\", \"\\u001b[?2004h\"]\n[2.603338, \"o\", \"\\u001b[4mm\\u001b[24m\"]\n[2.796509, \"o\", \"\\b\\u001b[24m\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[0m\\u001b[39m\"]\n[2.907083, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mk\\u001b[1m\\u001b[31md\\u001b[0m\\u001b[39m\"]\n[2.996988, \"o\", \"\\b\\u001b[1m\\u001b[31md\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[3.074828, \"o\", \"\\b\\b\\b\\b\\u001b[0m\\u001b[32mm\\u001b[0m\\u001b[32mk\\u001b[0m\\u001b[32md\\u001b[0m\\u001b[32mi\\u001b[32mr\\u001b[39m\"]\n[3.15677, \"o\", \" \"]\n[3.247834, \"o\", \"\\u001b[4m/\\u001b[24m\"]\n[3.646365, \"o\", \"\\b\\u001b[4m/\\u001b[4mt\\u001b[24m\"]\n[3.74645, \"o\", \"\\b\\u001b[4mt\\u001b[4mm\\u001b[24m\"]\n[3.948814, \"o\", \"\\b\\u001b[4mm\\u001b[4mp\\u001b[24m\"]\n[4.289082, \"o\", \"\\b\\u001b[4mp\\u001b[4m/\\u001b[24m\"]\n[4.576632, \"o\", \"\\b\\b\\b\\b\\b\\u001b[24m/\\u001b[24mt\\u001b[24mm\\u001b[24mp\\u001b[24m/m\"]\n[4.75591, \"o\", \"o\"]\n[4.931808, \"o\", \"u\"]\n[5.100663, \"o\", \"n\"]\n[5.192704, \"o\", \"t\"]\n[5.461691, \"o\", \"\\u001b[?1l\\u001b>\"]\n[5.466679, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[5.468092, \"o\", \"\\u001b]2;mkdir /tmp/mount\\u0007\"]\n[5.468757, \"o\", \"\\u001b]1;mkdir\\u0007\"]\n[5.474787, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[5.475931, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[5.476488, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[5.477887, \"o\", \"\\u001b[?2004h\"]\n[8.033329, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[8.134549, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[8.228743, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[8.321856, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[8.365702, \"o\", \" \"]\n[8.637156, \"o\", \"\\u001b[4mm\\u001b[24m\"]\n[8.942413, \"o\", \"\\b\\u001b[24mmo\"]\n[9.131874, \"o\", \"u\"]\n[9.297628, \"o\", \"n\"]\n[9.389473, \"o\", \"t\"]\n[9.460171, \"o\", \" \"]\n[9.532387, \"o\", \"\\u001b[4m/\\u001b[24m\"]\n[9.647129, \"o\", \"\\b\\u001b[4m/\\u001b[4mt\\u001b[24m\"]\n[9.742548, \"o\", \"\\b\\u001b[4mt\\u001b[4mm\\u001b[24m\"]\n[10.265361, \"o\", \"\\b\\u001b[4mm\\u001b[4mp\\u001b[24m\"]\n[10.523571, \"o\", \"\\b\\u001b[4mp\\u001b[4m/\\u001b[24m\"]\n[10.764126, \"o\", \"\\b\\u001b[4m/\\u001b[4mm\\u001b[24m\"]\n[10.940644, \"o\", \"\\b\\u001b[4mm\\u001b[4mo\\u001b[24m\"]\n[11.11384, \"o\", \"\\b\\u001b[4mo\\u001b[4mu\\u001b[24m\"]\n[11.274619, \"o\", \"\\b\\u001b[4mu\\u001b[4mn\\u001b[24m\"]\n[11.336741, \"o\", \"\\b\\u001b[4mn\\u001b[4mt\\u001b[24m\"]\n[11.501596, \"o\", \"\\u001b[?1l\\u001b>\"]\n[11.5099, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[11.511935, \"o\", \"\\u001b]2;brig mount /tmp/mount\\u0007\\u001b]1;brig\\u0007\"]\n[11.630285, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[11.63042, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[11.630489, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[11.630544, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[11.630595, \"o\", \"\\u001b[?1h\\u001b=\"]\n[11.630847, \"o\", \"\\u001b[?2004h\"]\n[11.783534, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[11.846931, \"o\", \"\\b\\u001b[24m\\u001b[32mc\\u001b[32md\\u001b[39m\"]\n[11.874495, \"o\", \" \"]\n[12.0069, \"o\", \"\\u001b[4m/\\u001b[24m\"]\n[12.139978, \"o\", \"\\b\\u001b[4m/\\u001b[4mt\\u001b[24m\"]\n[12.262404, \"o\", \"\\b\\u001b[4mt\\u001b[4mm\\u001b[24m\"]\n[12.368633, \"o\", \"\\b\\u001b[4mm\\u001b[4mp\\u001b[1m\\u001b[4m/\\u001b[0m\\u001b[24m\"]\n[12.526367, \"o\", \"\\b\\u001b[0m\\u001b[4m/\\u001b[4mm\\u001b[24m\"]\n[12.718498, \"o\", \"\\b\\u001b[4mm\\u001b[4mo\\u001b[24m\"]\n[12.890811, \"o\", \"\\b\\u001b[4mo\\u001b[4mu\\u001b[24m\"]\n[12.979988, \"o\", \"\\b\\u001b[4mu\\u001b[4mnt\\u001b[1m\\u001b[4m/\\u001b[0m\\u001b[24m\"]\n[13.185149, \"o\", \"\\b\\b\\u001b[4mt\\u001b[24m\\u001b[0m\\u001b[24m \\b\"]\n[13.186246, \"o\", \"\\u001b[?1l\\u001b>\"]\n[13.191054, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[13.192883, \"o\", \"\\u001b]2;cd /tmp/mount\\u0007\\u001b]1;cd\\u0007\"]\n[13.193619, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[13.193984, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\\u001b]1;/tmp/mount\\u0007\"]\n[13.194845, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[13.195642, \"o\", \"\\u001b[?2004h\"]\n[13.358323, \"o\", \"\\u001b[32ml\\u001b[39m\"]\n[13.500286, \"o\", \"\\b\\u001b[32ml\\u001b[32ms\\u001b[39m\"]\n[13.623484, \"o\", \"\\u001b[?1l\\u001b>\"]\n[13.626994, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[13.628768, \"o\", \"\\u001b]2;ls --color=tty\\u0007\\u001b]1;ls\\u0007\"]\n[13.640118, \"o\", \"\\u001b[0m\\u001b[35mREADME.md\\u001b[0m  \\u001b[1msub\\u001b[0m\\r\\n\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\\u001b]1;/tmp/mount\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \"]\n[13.640771, \"o\", \"\\u001b[K\"]\n[13.641637, \"o\", \"\\u001b[?1h\\u001b=\"]\n[13.642956, \"o\", \"\\u001b[?2004h\"]\n[15.590359, \"o\", \" \"]\n[15.871315, \"o\", \"\\b\"]\n[16.642904, \"o\", \"\\u001b[1m\\u001b[31mv\\u001b[0m\\u001b[39m\"]\n[16.831186, \"o\", \"\\b\\u001b[0m\\u001b[32mv\\u001b[32mi\\u001b[39m\"]\n[16.939098, \"o\", \" \"]\n[17.6128, \"o\", \"n\"]\n[17.666004, \"o\", \"e\"]\n[17.810336, \"o\", \"w\"]\n[17.917136, \"o\", \"-\"]\n[18.016204, \"o\", \"f\"]\n[18.101805, \"o\", \"i\"]\n[18.250022, \"o\", \"l\"]\n[18.312769, \"o\", \"e\"]\n[18.473484, \"o\", \"\\u001b[?1l\\u001b>\"]\n[18.482016, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[18.484593, \"o\", \"\\u001b]2;nvim new-file\\u0007\"]\n[18.485713, \"o\", \"\\u001b]1;vi\\u0007\"]\n[18.692978, \"o\", \"\\u001b[?1049h\\u001b[22;0;0t\\u001b[?1h\\u001b=\\u001b[H\\u001b[2J\\u001b[?2004h\\u001b[?1004h\\u001b[8;29;119t\\u001b[r\\u001b[1;1H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                     \"]\n[18.693131, \"o\", \"                                                  \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n    \"]\n[18.693209, \"o\", \"                                                                                                                   \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                            \"]\n[18.693313, \"o\", \"                                                           \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\u001b[H\\u001b[?25h\"]\n[18.693852, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[2 q                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                        \"]\n[18.69393, \"o\", \"                                                                               \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                \"]\n[18.693987, \"o\", \"                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                               \"]\n[18.694043, \"o\", \"                                                                                        \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\r\\n                                                                                                                       \\u001b[H\\u001b[28B\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m\\\"new-file\\\"\\u001b[C[Neue\\u001b[CDatei]\\u001b[?25h\"]\n[18.755878, \"o\", \"\\u001b[?25l\\u001b[H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;254;128;25m buffers \\u001b(B\\u001b[m\\u001b[38;2;254;128;25m\\u001b[48;2;168;153;132m \\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m new-file \\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;40;40;40m \\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;40;40;40m                                                                             ◀\\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;40;40;40m◀\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m [new-file] \\u001b(B\\u001b[m\\u001b[38;2;254;128;25m\\u001b[48;2;168;153;132m◀\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;254;128;25m tabs \\r\\n\\u001b(B\\u001b[m\\u001b[38;2;124;111;100m\\u001b[48;2;40;40;40m  1 \\r\\n\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;40;40;40m~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                       \"]\n[18.756006, \"o\", \"                                               \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~      \"]\n[18.756032, \"o\", \"                                                                                                                \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                              \"]\n[18.756049, \"o\", \"                                                        \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n~                                                                                                                      \\r\\n\\u001b[?25h\"]\n[18.760143, \"o\", \"\\u001b[?25l\"]\n[18.776267, \"o\", \"\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132mNORMAL\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m » SPELL [HUN-DE-DE-FRAMI] \\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;80;73;69m▶\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;60;56;54m▶\\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;60;56;54m new-file                             \\u001b(B\\u001b[m\\u001b[38;2;60;56;54m\\u001b[48;2;60;56;54m◀\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;60;56;54m◀\\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;80;73;69m utf-8[BOM][unix] ◀\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m 100% \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m␊   0/1 ㏑\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m :  1 \\u001b(B\\u001b[m\\u001b[38;2;254;128;25m\\u001b[48;2;168;153;132m◀\\u001b(B\\u001b[m\\u001b[38;2;251;73;52m\\u001b[48;2;254;128;25m◀\\r\\n\\u001b]0;/tmp/mount/new-file\\u0007\\u001b[?25h\"]\n[18.77748, \"o\", \"\\u001b[?25l\\u001b[2;5H\\u001b[?25h\"]\n[19.345027, \"o\", \"\\u001b[?25l\\u001b[29;109H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[2;5H\\u001b[?25h\"]\n[19.345442, \"o\", \"\\u001b[?25l\\u001b[6 q\\u001b[29;109H \\u001b[2;5H\\u001b[?25h\"]\n[19.346299, \"o\", \"\\u001b[?25l\\r\\u001b[27B\\u001b(B\\u001b[0;1m\\u001b[38;2;250;189;47m\\u001b[48;2;40;40;40m-- EINFÜGEN --\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                         \\u001b[29;15H\\u001b[?25h\"]\n[19.377501, \"o\", \"\\u001b[?25l\\r\\u001b[A\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152mINSERT\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m » SPELL [HUN-DE-DE-FRAMI] \\u001b(B\\u001b[m\\u001b[38;2;131;165;152m\\u001b[48;2;80;73;69m▶\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;80;73;69m▶\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;80;73;69m new-file                             \\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;80;73;69m◀◀\\u001b[18C\\u001b(B\\u001b[m\\u001b[38;2;131;165;152m\\u001b[48;2;80;73;69m◀\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m 100% \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m␊   0/1 ㏑\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m :  1 \\u001b(B\\u001b[m\\u001b[38;2;254;128;25m\\u001b[48;2;131;165;152m◀\\u001b[2;5H\\u001b[?25h\"]\n[19.901032, \"o\", \"\\u001b[?25l\\u001b[1;20H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m+ \\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;40;40;40m \\u001b[2;5H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mT\\u001b[28;37H\\u001b(B\\u001b[m\\u001b[38;2;131;165;152m\\u001b[48;2;80;73;69m new-file[+]                          \\u001b[31C\\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[9C\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;6H\\u001b[?25h\"]\n[19.905544, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mh\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;7H\\u001b[?25h\"]\n[20.080393, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;8H\\u001b[?25h\"]\n[20.164795, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ms\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;9H\\u001b[?25h\"]\n[20.258114, \"o\", \"\\u001b[?25l\\b\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mThis\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;10H\\u001b[?25h\"]\n[20.673937, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;11H\\u001b[?25h\"]\n[21.163759, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ms\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;12H\\u001b[?25h\"]\n[21.317033, \"o\", \"\\u001b[?25l\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mis\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;13H\\u001b[?25h\"]\n[21.403983, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ma\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m10\\u001b[2;14H\\u001b[?25h\"]\n[21.515109, \"o\", \"\\u001b[?25l\\u001b[28;116H1\\u001b[2;15H\\u001b[?25h\"]\n[21.579911, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mf\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;16H\\u001b[?25h\"]\n[21.919128, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;17H\\u001b[?25h\"]\n[21.959223, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;18H\\u001b[?25h\"]\n[22.191207, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[22.205546, \"o\", \"\\u001b[?25l\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                       \\u001b[2;17H\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;17H\\u001b[?25h\"]\n[22.349697, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[22.359876, \"o\", \"\\u001b[?25l\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                        \\u001b[2;16H\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;16H\\u001b[?25h\"]\n[22.486515, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[22.497949, \"o\", \"\\u001b[?25l\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                         \\u001b[2;15H\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;15H\\u001b[?25h\"]\n[22.683688, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;16H\\u001b[?25h\"]\n[22.738237, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;17H\\u001b[?25h\"]\n[22.890398, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mw\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;18H\\u001b[?25h\"]\n[23.014604, \"o\", \"\\u001b[?25l\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mnew\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;19H\\u001b[?25h\"]\n[23.051557, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mf\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;20H\\u001b[?25h\"]\n[23.166211, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;21H\\u001b[?25h\"]\n[23.304776, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ml\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;22H\\u001b[?25h\"]\n[23.324634, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;23H\\u001b[?25h\"]\n[23.404199, \"o\", \"\\u001b[?25l\\b\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mfile\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m20\\u001b[2;24H\\u001b[?25h\"]\n[23.523839, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ma\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;25H\\u001b[?25h\"]\n[23.647926, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mdn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;27H\\u001b[?25h\"]\n[23.865008, \"o\", \"\\u001b[?25l\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40madn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;28H\\u001b[?25h\"]\n[24.140954, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[24.158755, \"o\", \"\\u001b[?25l\\b\\b\\b\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40madn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;27H\\u001b[?25h\"]\n[24.294178, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[24.30896, \"o\", \"\\u001b[?25l\"]\n[24.309298, \"o\", \"\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                              \\u001b[2;26H\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;26H\"]\n[24.309498, \"o\", \"\\u001b[?25h\"]\n[24.429442, \"o\", \"\\u001b[?25l\\u001b[2 q\\u001b[6 q\\u001b[?25h\"]\n[24.448041, \"o\", \"\\u001b[?25l\\b\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                               \\u001b[2;25H\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;25H\\u001b[?25h\"]\n[24.621783, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;26H\\u001b[?25h\"]\n[24.69289, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40md\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;27H\\u001b[?25h\"]\n[24.75518, \"o\", \"\\u001b[?25l\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mand\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;28H\\u001b[?25h\"]\n[24.882117, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mI\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;29H\\u001b[?25h\"]\n[24.990957, \"o\", \"\\u001b[?25l\\u001b[28;116H6\\u001b[2;30H\\u001b[?25h\"]\n[25.147616, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mc\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;31H\\u001b[?25h\"]\n[25.259868, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ma\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;32H\\u001b[?25h\"]\n[25.338547, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;33H\\u001b[?25h\"]\n[25.563801, \"o\", \"\\u001b[?25l\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mcan\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m30\\u001b[2;34H\\u001b[?25h\"]\n[25.781546, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mu\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;35H\\u001b[?25h\"]\n[25.811621, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ms\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;36H\\u001b[?25h\"]\n[25.971726, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;37H\\u001b[?25h\"]\n[26.056187, \"o\", \"\\u001b[?25l\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40muse\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;38H\\u001b[?25h\"]\n[26.157084, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mt\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;39H\\u001b[?25h\"]\n[26.216725, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mh\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;40H\\u001b[?25h\"]\n[26.33611, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;41H\\u001b[?25h\"]\n[26.402646, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ms\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;42H\\u001b[?25h\"]\n[26.469983, \"o\", \"\\u001b[?25l\\b\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mthis\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;43H\\u001b[?25h\"]\n[26.604867, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mf\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m40\\u001b[2;44H\\u001b[?25h\"]\n[26.688028, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mo\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;45H\\u001b[?25h\"]\n[26.831965, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ml\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;46H\\u001b[?25h\"]\n[26.876067, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40md\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;47H\\u001b[?25h\"]\n[26.960031, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;48H\\u001b[?25h\"]\n[27.028809, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mr\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;49H\\u001b[?25h\"]\n[27.101686, \"o\", \"\\u001b[?25l\\u001b[6D\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mfolder\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;50H\\u001b[?25h\"]\n[27.345086, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mj\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;51H\\u001b[?25h\"]\n[27.524854, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mu\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;52H\\u001b[?25h\"]\n[27.608849, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ms\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;53H\\u001b[?25h\"]\n[27.732593, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mt\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m50\\u001b[2;54H\\u001b[?25h\"]\n[27.818347, \"o\", \"\\u001b[?25l\\u001b[28;116H1\\u001b[2;55H\\u001b[?25h\"]\n[27.896692, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ml\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;56H\\u001b[?25h\"]\n[28.032423, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mi\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;57H\\u001b[?25h\"]\n[28.1877, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mk\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;58H\\u001b[?25h\"]\n[28.263534, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m5\\u001b[2;59H\\u001b[?25h\"]\n[28.355656, \"o\", \"\\u001b[?25l\\b\\b\\b\\b\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mlike\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;60H\\u001b[?25h\"]\n[28.484556, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ma\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;61H\\u001b[?25h\"]\n[28.565738, \"o\", \"\\u001b[?25l\\u001b[28;116H8\\u001b[2;62H\\u001b[?25h\"]\n[28.672064, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mn\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;63H\\u001b[?25h\"]\n[28.866181, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mo\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m60\\u001b[2;64H\\u001b[?25h\"]\n[28.935765, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mr\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;65H\\u001b[?25h\"]\n[29.071917, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mm\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;66H\\u001b[?25h\"]\n[29.189156, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ma\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m3\\u001b[2;67H\\u001b[?25h\"]\n[29.254533, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ml\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m4\\u001b[2;68H\\u001b[?25h\"]\n[29.345343, \"o\", \"\\u001b[?25l\\u001b[28;116H5\\u001b[2;69H\\u001b[?25h\"]\n[30.022506, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mf\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m6\\u001b[2;70H\\u001b[?25h\"]\n[30.09986, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mo\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m7\\u001b[2;71H\\u001b[?25h\"]\n[30.266437, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40ml\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m8\\u001b[2;72H\\u001b[?25h\"]\n[30.290487, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40md\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m9\\u001b[2;73H\\u001b[?25h\"]\n[30.393706, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40me\\u001b[28;115H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m70\\u001b[2;74H\\u001b[?25h\"]\n[30.451108, \"o\", \"\\u001b[?25l\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mr\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m1\\u001b[2;75H\\u001b[?25h\"]\n[30.645571, \"o\", \"\\u001b[?25l\\u001b[6D\\u001b(B\\u001b[0;4m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40mfolder\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m.\\u001b[28;116H\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;131;165;152m2\\u001b[2;76H\\u001b[?25h\"]\n[30.860939, \"o\", \"\\u001b[?25l\\r\\u001b[27B\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m                                                                                                                       \\r\\u001b[29;1H\\u001b[2 q\\u001b[?25h\"]\n[30.915162, \"o\", \"\\u001b[?25l\\u001b[A\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132mNORMAL\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m » SPELL [HUN-DE-DE-FRAMI] \\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;80;73;69m▶\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;60;56;54m▶\\u001b(B\\u001b[m\\u001b[38;2;131;165;152m\\u001b[48;2;60;56;54m new-file[+]                          \\u001b(B\\u001b[m\\u001b[38;2;60;56;54m\\u001b[48;2;60;56;54m◀\\u001b(B\\u001b[m\\u001b[38;2;80;73;69m\\u001b[48;2;60;56;54m◀\\u001b[18C\\u001b(B\\u001b[m\\u001b[38;2;168;153;132m\\u001b[48;2;80;73;69m◀\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m 100% \\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m␊   1/1 ㏑\\u001b(B\\u001b[m\\u001b[38;2;40;40;40m\\u001b[48;2;168;153;132m : 71 \\u001b(B\\u001b[m\\u001b[38;2;254;128;25m\\u001b[48;2;168;153;132m◀\\u001b[2;75H\\u001b[?25h\"]\n[31.136268, \"o\", \"\\u001b[?25l\\u001b[29;109H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m:\\u001b[2;75H\\u001b[?25h\"]\n[31.136405, \"o\", \"\\u001b[?25l\\u001b[29;109H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m           \\u001b[29;109H\\r\\u001b[29;1H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m:\\u001b[2 q\\u001b[?25h\"]\n[31.224948, \"o\", \"\\u001b[?25lw\\u001b[?25h\"]\n[31.286773, \"o\", \"\\u001b[?25lq\\u001b[?25h\"]\n[31.42495, \"o\", \"\\u001b[?25l\\r\\u001b[29;1H\\u001b[?25h\"]\n[31.427199, \"o\", \"\\u001b[?25l\\u001b[2 q\\\"new-file\\\"\\u001b[?25h\"]\n[31.670283, \"o\", \"\\u001b[?25l\\u001b[C[Neu]\\u001b[C1L,\\u001b[C72C\\u001b[Cgeschrieben\\u001b[?25h\"]\n[31.677007, \"o\", \"\\u001b[?25l\"]\n[31.6881, \"o\", \"\\u001b[?25h\"]\n[31.717445, \"o\", \"\\u001b[?25l\\r\\u001b[29;1H\\u001b[H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m\\u001b[M\\u001b[28B\\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;251;73;52mFehler beim Ausführen von \\\"VimLeave Autokommandos für \\\"*\\\"\\\":\\u001b[?25h\\u001b[?25l\\u001b[H\\u001b(B\\u001b[m\\u001b[38;2;235;219;178m\\u001b[48;2;40;40;40m\\u001b[M\\u001b[29;60H\\r\\u001b[29;1H\\u001b(B\\u001b[0;1m\\u001b[38;2;40;40;40m\\u001b[48;2;251;73;52mE488: Überschüssige Zeichen\\u001b[?25h\"]\n[31.717957, \"o\", \"\\u001b[?25l\\r\\u001b[29;1H\\u001b[2 q\\u001b(B\\u001b[m\\u001b[?25h\\u001b[?1l\\u001b>\\u001b[?1049l\\u001b[23;0;0t\\u001b[?2004l\\u001b[?1004l\\u001b[?25h\"]\n[31.799109, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\\u001b]1;/tmp/mount\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[33.189103, \"o\", \"\\u001b[32ml\\u001b[39m\"]\n[33.316672, \"o\", \"\\b\\u001b[32ml\\u001b[32ms\\u001b[39m\"]\n[33.618794, \"o\", \"\\u001b[?1l\\u001b>\"]\n[33.622899, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[33.625006, \"o\", \"\\u001b]2;ls --color=tty\\u0007\\u001b]1;ls\\u0007\"]\n[33.634291, \"o\", \"\\u001b[0m\\u001b[35mnew-file\\u001b[0m  \\u001b[35mREADME.md\\u001b[0m  \\u001b[1msub\\u001b[0m\\r\\n\"]\n[33.635036, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[33.63557, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\"]\n[33.635961, \"o\", \"\\u001b]1;/tmp/mount\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[33.636845, \"o\", \"\\u001b[?1h\\u001b=\"]\n[33.637693, \"o\", \"\\u001b[?2004h\"]\n[34.15552, \"o\", \"\\u001b[1m\\u001b[31mc\\u001b[0m\\u001b[39m\"]\n[34.286797, \"o\", \"\\b\\u001b[1m\\u001b[31mc\\u001b[1m\\u001b[31ma\\u001b[0m\\u001b[39m\"]\n[34.455531, \"o\", \"\\b\\b\\u001b[0m\\u001b[32mc\\u001b[0m\\u001b[32ma\\u001b[32mt\\u001b[39m\"]\n[34.566448, \"o\", \" \"]\n[35.046696, \"o\", \"\\u001b[4mn\\u001b[24m\"]\n[35.112191, \"o\", \"\\b\\u001b[4mn\\u001b[4me\\u001b[24m\"]\n[35.273926, \"o\", \"\\b\\u001b[4me\\u001b[4mw\\u001b[24m\"]\n[35.414208, \"o\", \"\\b\\u001b[4mw\\u001b[4m-\\u001b[24m\"]\n[35.529747, \"o\", \"\\b\\u001b[4m-\\u001b[4mf\\u001b[24m\"]\n[35.627323, \"o\", \"\\b\\u001b[4mf\\u001b[4mi\\u001b[24m\"]\n[35.779769, \"o\", \"\\b\\u001b[4mi\\u001b[4ml\\u001b[24m\"]\n[35.883377, \"o\", \"\\b\\u001b[4ml\\u001b[4me\\u001b[24m\"]\n[36.375857, \"o\", \"\\u001b[?1l\\u001b>\"]\n[36.381644, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[36.383975, \"o\", \"\\u001b]2;cat new-file\\u0007\\u001b]1;cat\\u0007\"]\n[36.402338, \"o\", \"This is a new file and I can use this folder just like a normal folder.\\r\\n\"]\n[36.407302, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[36.408527, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\\u001b]1;/tmp/mount\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[36.40922, \"o\", \"\\u001b[?1h\\u001b=\"]\n[36.411242, \"o\", \"\\u001b[?2004h\"]\n[37.968678, \"o\", \"\\u001b[1m\\u001b[31mm\\u001b[0m\\u001b[39m\"]\n[38.166901, \"o\", \"\\b\\u001b[1m\\u001b[31mm\\u001b[1m\\u001b[31mp\\u001b[0m\\u001b[39m\"]\n[38.246176, \"o\", \"\\b\\b\\u001b[0m\\u001b[32mm\\u001b[0m\\u001b[32mp\\u001b[32mv\\u001b[39m\"]\n[38.350516, \"o\", \" \"]\n[38.465578, \"o\", \"\\u001b[4ms\\u001b[24m\"]\n[38.566672, \"o\", \"\\b\\u001b[4ms\\u001b[4mu\\u001b[24m\"]\n[38.690564, \"o\", \"\\b\\u001b[4mu\\u001b[4mb\\u001b[24m\"]\n[38.876413, \"o\", \"\\b\\u001b[4mb\\u001b[4m/\\u001b[24m\"]\n[39.302298, \"o\", \"\\b\\u001b[4m/\\u001b[4mmusic.mp3\\u001b[24m \"]\n[39.993006, \"o\", \"\\u001b[?1l\\u001b>\"]\n[39.998325, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[40.000757, \"o\", \"\\u001b]2;mpv sub/music.mp3\\u0007\\u001b]1;mpv\\u0007\"]\n[40.280961, \"o\", \"\\u001b=\"]\n[40.286502, \"o\", \"\\u001b[0mPlaying: sub/music.mp3\\r\\n\\u001b[0m\"]\n[40.30279, \"o\", \"\\u001b[0;33m[ffmpeg/demuxer] mp3: invalid concatenated file detected - using bitrate for duration\\r\\n\\u001b[0m\"]\n[40.303922, \"o\", \"\\u001b[0;33m[ffmpeg/demuxer] mp3: Estimating duration from bitrate, this may be inaccurate\\r\\n\\u001b[0m\"]\n[40.306491, \"o\", \"\\u001b[0m (+) Audio --aid=1 (mp3 2ch 44100Hz)\\r\\n\\u001b[0m\\u001b[0mFile tags:\\r\\n\\u001b[0m\"]\n[40.306638, \"o\", \"\\u001b[0m Artist: Epica\\r\\n\\u001b[0m\\u001b[0m Album: The Classical Conspiracy: Live in Miskolc, Hungary\\r\\n\\u001b[0m\\u001b[0m Album_Artist: Epica\\r\\n\\u001b[0m\\u001b[0m Title: The Imperial March\\r\\n\\u001b[0m\\u001b[0m Track: 8/18\\r\\n\\u001b[0m\"]\n[40.310502, \"o\", \"\\u001b[0mAO: [pulse] 44100Hz stereo 2ch s16\\r\\n\\u001b[0m\"]\n[40.336663, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:06:50 (0%) Cache: 10s+1MB\\r\\u001b[0m\"]\n[40.450885, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:06:50 (0%) Cache: 10s+6MB\\r\\u001b[0m\"]\n[40.525866, \"o\", \"\\r\\u001b[K\\u001b[0m\"]\n[40.525925, \"o\", \"A: 00:00:00 / 00:06:50 (0%) Cache: 10s+11MB\\r\\u001b[0m\"]\n[40.575935, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:00 / 00:06:50 (0%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[41.337249, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:01 / 00:06:50 (0%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[42.315624, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:02 / 00:06:50 (0%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[43.335133, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:03 / 00:06:50 (0%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[44.356615, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:04 / 00:06:50 (0%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[44.42698, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:04 / 00:06:50 (1%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[44.561352, \"o\", \"\\r\\u001b[K\\u001b[0m\"]\n[44.56157, \"o\", \"A: 00:00:04 / 00:06:50 (1%) Cache:  9s+12MB\\r\\u001b[0m\"]\n[44.631238, \"o\", \"\\r\\u001b[K\\u001b[0mA: 00:00:04 / 00:06:50 (1%) Cache: 10s+12MB\\r\\u001b[0m\"]\n[44.790759, \"o\", \"\\u001b>\"]\n[44.801467, \"o\", \"\\r\\n\\u001b[0m\\r\\n\\u001b[0m\\u001b[0m\\r\\n\\u001b[0m\\u001b[0mExiting... (Quit)\\r\\n\\u001b[0m\"]\n[44.82915, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[44.829887, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\\u001b]1;/tmp/mount\\u0007\"]\n[44.830358, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[44.830797, \"o\", \"\\u001b[?1h\\u001b=\"]\n[44.831683, \"o\", \"\\u001b[?2004h\"]\n[45.582474, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[45.738395, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[45.836404, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[45.920141, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[45.992154, \"o\", \" \"]\n[46.078312, \"o\", \"l\"]\n[46.169958, \"o\", \"s\"]\n[46.259206, \"o\", \"\\u001b[?1l\\u001b>\"]\n[46.267116, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[46.269603, \"o\", \"\\u001b]2;brig ls\\u0007\"]\n[46.270458, \"o\", \"\\u001b]1;brig\\u0007\"]\n[46.466591, \"o\", \"SIZE   MODTIME          PATH        PIN  \\r\\n886 B  Feb 28 10:45:21  \\u001b[37m/README.md\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n72 B   Feb 28 10:48:51  \\u001b[37m/new-file\\u001b[0m    \\u001b[36m🖈\\u001b[0m   \\r\\n\\u001b[33m13 MB\\u001b[0m  Feb 28 10:46:48\"]\n[46.466663, \"o\", \"  \\u001b[32m/sub\\u001b[0m         \\u001b[36m🖈\\u001b[0m   \\r\\n\"]\n[46.468235, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[46.468348, \"o\", \"\\u001b]2;sahib@werkbank: /tmp/mount\\u0007\"]\n[46.468429, \"o\", \"\\u001b]1;/tmp/mount\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[46.468519, \"o\", \"\\u001b[?1h\\u001b=\"]\n[46.468726, \"o\", \"\\u001b[?2004h\"]\n"
  },
  {
    "path": "docs/asciinema/5_commits.json",
    "content": "{\"version\": 2, \"width\": 119, \"height\": 29, \"timestamp\": 1519811965, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}}\n[0.252493, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[0.252647, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[0.252698, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[0.252849, \"o\", \"\\u001b[?1h\\u001b=\"]\n[0.253042, \"o\", \"\\u001b[?2004h\"]\n[1.089292, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[1.199596, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[1.295245, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[1.394617, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[1.475068, \"o\", \" \"]\n[1.532962, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[1.689091, \"o\", \"\\b\\u001b[4ml\\u001b[4mo\\u001b[24m\"]\n[1.764881, \"o\", \"\\b\\u001b[4mo\\u001b[4mg\\u001b[24m\"]\n[2.164452, \"o\", \"\\u001b[?1l\\u001b>\"]\n[2.168482, \"o\", \"\\u001b[?2004l\\b\\b\\b\\u001b[24ml\\u001b[24mo\\u001b[24mg\\r\\r\\n\"]\n[2.171031, \"o\", \"\\u001b]2;brig log\\u0007\"]\n[2.17135, \"o\", \"\\u001b]1;brig\\u0007\"]\n[2.32099, \"o\", \"\\u001b[32mSEfXUD64dE\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m \\u001b[31m•\\u001b[0m\\u001b[36m (curr)\\u001b[0m\\r\\n\"]\n[2.32113, \"o\", \"\\u001b[32mSEfXUCU47p\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added initial README.md\\u001b[36m (head)\\u001b[0m\\r\\n\\u001b[32mSEfXUCEaXL\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m initial commit\\u001b[36m (init)\\u001b[0m\\r\\n\"]\n[2.322517, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[2.322672, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[2.322731, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[2.322798, \"o\", \"\\u001b[?1h\\u001b=\"]\n[2.323008, \"o\", \"\\u001b[?2004h\"]\n[3.60464, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[3.701166, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[3.806198, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[3.908073, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[3.981747, \"o\", \" \"]\n[4.083177, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[4.180388, \"o\", \"\\b\\u001b[4mc\\u001b[4mo\\u001b[24m\"]\n[4.34891, \"o\", \"\\b\\u001b[4mo\\u001b[4mm\\u001b[24m\"]\n[4.471983, \"o\", \"\\b\\b\\b\\u001b[24mc\\u001b[24mo\\u001b[24mmm\"]\n[4.662754, \"o\", \"i\"]\n[4.794937, \"o\", \"t\"]\n[4.828483, \"o\", \" \"]\n[4.91971, \"o\", \"-\"]\n[5.12147, \"o\", \"m\"]\n[5.232306, \"o\", \" \"]\n[5.36732, \"o\", \"\\u001b[33m'\\u001b[39m\"]\n[6.367657, \"o\", \"\\b\\u001b[33m'\\u001b[33mA\\u001b[39m\"]\n[6.542322, \"o\", \"\\b\\u001b[33mA\\u001b[33md\\u001b[39m\"]\n[6.703172, \"o\", \"\\b\\u001b[33md\\u001b[33md\\u001b[39m\"]\n[6.98262, \"o\", \"\\b\\u001b[33md\\u001b[33me\\u001b[39m\"]\n[7.114576, \"o\", \"\\b\\u001b[33me\\u001b[33md\\u001b[39m\"]\n[7.226658, \"o\", \"\\b\\u001b[33md\\u001b[33m \\u001b[39m\"]\n[7.400424, \"o\", \"\\b\\u001b[33m \\u001b[33md\\u001b[39m\"]\n[7.48366, \"o\", \"\\b\\u001b[33md\\u001b[33ma\\u001b[39m\"]\n[7.601921, \"o\", \"\\b\\u001b[33ma\\u001b[33mr\\u001b[39m\"]\n[7.741708, \"o\", \"\\b\\u001b[33mr\\u001b[33mt\\u001b[39m\"]\n[7.830802, \"o\", \"\\b\\u001b[33mt\\u001b[33mh\\u001b[39m\"]\n[7.915606, \"o\", \"\\b\\u001b[33mh\\u001b[33m \\u001b[39m\"]\n[8.040754, \"o\", \"\\b\\u001b[33m \\u001b[33mv\\u001b[39m\"]\n[8.142824, \"o\", \"\\b\\u001b[33mv\\u001b[33ma\\u001b[39m\"]\n[8.275411, \"o\", \"\\b\\u001b[33ma\\u001b[33md\\u001b[39m\"]\n[8.392729, \"o\", \"\\b\\u001b[33md\\u001b[33me\\u001b[39m\"]\n[8.481706, \"o\", \"\\b\\u001b[33me\\u001b[33mr\\u001b[39m\"]\n[8.867549, \"o\", \"\\b\\u001b[33mr\\u001b[33m \\u001b[39m\"]\n[9.017732, \"o\", \"\\b\\u001b[33m \\u001b[33mm\\u001b[39m\"]\n[9.201591, \"o\", \"\\b\\u001b[33mm\\u001b[33mu\\u001b[39m\"]\n[9.306462, \"o\", \"\\b\\u001b[33mu\\u001b[33ms\\u001b[39m\"]\n[9.421788, \"o\", \"\\b\\u001b[33ms\\u001b[33mi\\u001b[39m\"]\n[9.482797, \"o\", \"\\b\\u001b[33mi\\u001b[33mc\\u001b[39m\"]\n[9.746346, \"o\", \"\\b\\u001b[33mc\\u001b[33m'\\u001b[39m\"]\n[10.36415, \"o\", \"\\u001b[?1l\\u001b>\"]\n[10.370844, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[10.374473, \"o\", \"\\u001b]2;brig commit -m 'Added darth vader music'\\u0007\\u001b]1;brig\\u0007\"]\n[10.562116, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[10.562253, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[10.562287, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[10.562385, \"o\", \"\\u001b[?1h\\u001b=\"]\n[10.562584, \"o\", \"\\u001b[?2004h\"]\n[11.482654, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[11.595748, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[11.713421, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[11.801969, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[11.871499, \"o\", \" \"]\n[11.986051, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[12.130566, \"o\", \"\\b\\u001b[4ml\\u001b[4mo\\u001b[24m\"]\n[12.208039, \"o\", \"\\b\\u001b[4mo\\u001b[4mg\\u001b[24m\"]\n[12.3702, \"o\", \"\\u001b[?1l\\u001b>\"]\n[12.375073, \"o\", \"\\u001b[?2004l\\b\\b\\b\\u001b[24ml\\u001b[24mo\\u001b[24mg\\r\\r\\n\"]\n[12.377147, \"o\", \"\\u001b]2;brig log\\u0007\\u001b]1;brig\\u0007\"]\n[12.483055, \"o\", \"\\u001b[32mSEfXUBgTGT\\u001b[0m \\u001b[33mFeb 28 10:59:36\\u001b[0m \\u001b[31m•\\u001b[0m\\u001b[36m (curr)\\u001b[0m\\r\\n\"]\n[12.483199, \"o\", \"\\u001b[32mSEfXUCjYxA\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added darth vader music\\u001b[36m (head)\\u001b[0m\\r\\n\\u001b[32mSEfXUCU47p\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added initial README.md\\u001b[36m\\u001b[0m\\r\\n\\u001b[32mSEfXUCEaXL\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m initial commit\\u001b[36m (init)\\u001b[0m\\r\\n\"]\n[12.484754, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[12.484868, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[12.484981, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[12.485059, \"o\", \"\\u001b[?1h\\u001b=\"]\n[12.48524, \"o\", \"\\u001b[?2004h\"]\n[15.116498, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[15.286419, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[15.394661, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[15.484396, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[15.570743, \"o\", \" \"]\n[15.667128, \"o\", \"\\u001b[4me\\u001b[24m\"]\n[15.794115, \"o\", \"\\b\\u001b[24med\"]\n[15.83337, \"o\", \"i\"]\n[16.711928, \"o\", \"t\"]\n[16.792473, \"o\", \" \"]\n[16.945941, \"o\", \"R\"]\n[17.022294, \"o\", \"E\"]\n[17.072731, \"o\", \"A\"]\n[17.247167, \"o\", \"D\"]\n[17.41645, \"o\", \"M\"]\n[17.546609, \"o\", \"E\"]\n[17.745329, \"o\", \".\"]\n[17.940659, \"o\", \"m\"]\n[18.027964, \"o\", \"d\"]\n[18.145754, \"o\", \"\\u001b[?1l\\u001b>\"]\n[18.151185, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[18.15313, \"o\", \"\\u001b]2;brig edit README.md\\u0007\\u001b]1;brig\\u0007\"]\n[18.311358, \"o\", \"\\u001b[?1000h\\u001b[?2004h\\u001b[?1049h\\u001b[22;0;0t\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[18.311704, \"o\", \"\\u001b[1;29r\\u001b[?12h\\u001b[?12l\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[29;1H\\\"/tmp/brig-cmd-buffer-7867430388356292876.md\\\"\"]\n[18.311802, \"o\", \" 15L, 443C\"]\n[18.327957, \"o\", \"\\u001b[2;1H▽\\u001b[6n\\u001b[2;1H  \\u001b[1;1H\\u001b[>c\\u001b]10;?\\u0007\\u001b]11;?\\u0007\"]\n[18.330073, \"o\", \"\\u001b[1;1HWelcome to brig!\\r\\n\\r\\nHere's what you can do next:\\u001b[5;5H•\\u001b[5;7HAdd a few remotes to sync with (See 'brig remote add -h')\\r\\n    •\\u001b[6;7HMount your data somewhere convinient (See 'brig mount -h')\\r\\n    •\\u001b[7;7HHave a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\u001b[14;5H$ brig rm README.md\\r\\n\\r\\n\\u001b[94m~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                      \"]\n[18.330257, \"o\", \"                                                                                \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                      \"]\n[18.330339, \"o\", \"                                                                \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\u001b[1;1H\\u001b[?25h\"]\n[18.358891, \"o\", \"\\u001bP+q436f\\u001b\\\\\\u001bP+q6b75\\u001b\\\\\\u001bP+q6b64\\u001b\\\\\\u001bP+q6b72\\u001b\\\\\\u001bP+q6b6c\\u001b\\\\\\u001bP+q2332\\u001b\\\\\\u001bP+q2334\\u001b\\\\\\u001bP+q2569\\u001b\\\\\\u001bP+q2a37\\u001b\\\\\\u001bP+q6b31\\u001b\\\\\"]\n[18.374291, \"o\", \"\\u001b[?1000l\\u001b[?1006h\\u001b[?1002h\\u001b[?1006l\\u001b[?1002l\\u001b[?1006h\\u001b[?1002h\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[1;1HWelcome to brig!\\r\\n\\r\\nHere's what you can do next:\\u001b[5;5H•\\u001b[5;7HAdd a few remotes to sync with (See 'brig remote add -h')\\r\\n    •\\u001b[6;7HMount your data somewhere convinient (See 'brig mount -h')\\r\\n    •\\u001b[7;7HHave a relaxing day exploring brig's features.\\r\\n\\r\\nPlease remember that brig is software in it's very early stages,\\r\\nand will currently eat your data with near-certainty.\\r\\n\\r\\nIf you're done with this README, you can easily remove it:\\u001b[14;5H$ brig rm README.md\\r\\n\\r\\n\\u001b[94m~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                             \"]\n[18.374432, \"o\", \"                                         \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                            \"]\n[18.374725, \"o\", \"                          \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\r\\\"/tmp/brig-cmd-buffer-7867430388356292876.md\\\" 15L, 443C\\u001b[1;1H\\u001b[?25h\"]\n[18.829942, \"o\", \"\\u001b[?25l\\u001b[29;92HG\\u001b[1;1H\"]\n[18.830099, \"o\", \"\\u001b[29;92H \\u001b[15;1H\\u001b[29;103H5,0-1\\u001b[15;1H\\u001b[?25h\"]\n[19.244409, \"o\", \"\\u001b[?25l\\u001b[29;92Ho\\u001b[15;1H\"]\n[19.244943, \"o\", \"\\u001b[29;92H \\u001b[16;1H\\u001b[29;1H\\u001b[1m-- EINFÜGEN --\\u001b[m\\u001b[29;15H\\u001b[K\\u001b[29;102H16,1\\u001b[8CAlles\"]\n[19.245973, \"o\", \"\\u001b[16;1H\\u001b[K\\u001b[16;1H\\u001b[?25h\"]\n[19.448015, \"o\", \"\\u001b[?25l\\u001b[17;1H\\u001b[K\\u001b[29;103H7\\u001b[17;1H\\u001b[?25h\"]\n[20.560184, \"o\", \"\\u001b[?25lA\\u001b[29;105H2\\u001b[17;2H\\u001b[?25h\"]\n[20.692311, \"o\", \"\\u001b[?25ln\\u001b[29;105H3\\u001b[17;3H\\u001b[?25h\"]\n[20.872813, \"o\", \"\\u001b[?25lo\\u001b[29;105H4\\u001b[17;4H\\u001b[?25h\"]\n[21.177969, \"o\", \"\\u001b[?25l\\u001b[17;3H\\u001b[K\\u001b[29;105H3\\u001b[17;3H\\u001b[?25h\"]\n[21.326674, \"o\", \"\\u001b[?25l\\u001b[17;2H\\u001b[K\\u001b[29;105H2\\u001b[17;2H\\u001b[?25h\"]\n[21.482987, \"o\", \"\\u001b[?25l\\u001b[17;1H\\u001b[K\\u001b[29;105H1\\u001b[17;1H\\u001b[?25h\"]\n[21.639899, \"o\", \"\\u001b[?25l\\u001b[94m~                                                                                                                      \\u001b[m\\u001b[29;103H6\\u001b[16;1H\\u001b[?25h\"]\n[21.84207, \"o\", \"\\u001b[?25lO\\u001b[29;105H2\\u001b[16;2H\\u001b[?25h\"]\n[22.336138, \"o\", \"\\u001b[?25l\\u001b[16;1H\\u001b[K\\u001b[29;105H1\\u001b[16;1H\\u001b[?25h\"]\n[22.556694, \"o\", \"\\u001b[?25lO\\u001b[29;105H2\\u001b[16;2H\\u001b[?25h\"]\n[22.716563, \"o\", \"\\u001b[?25ln\\u001b[29;105H3\\u001b[16;3H\\u001b[?25h\"]\n[22.807098, \"o\", \"\\u001b[?25le\\u001b[29;105H4\\u001b[16;4H\\u001b[?25h\"]\n[22.853901, \"o\", \"\\u001b[?25l\\u001b[29;105H5\\u001b[16;5H\\u001b[?25h\"]\n[22.927145, \"o\", \"\\u001b[?25lm\\u001b[29;105H6\\u001b[16;6H\\u001b[?25h\"]\n[23.078599, \"o\", \"\\u001b[?25lo\\u001b[29;105H7\\u001b[16;7H\\u001b[?25h\"]\n[23.147662, \"o\", \"\\u001b[?25lr\\u001b[29;105H8\\u001b[16;8H\\u001b[?25h\"]\n[23.213428, \"o\", \"\\u001b[?25le\\u001b[29;105H9\\u001b[16;9H\\u001b[?25h\"]\n[23.237209, \"o\", \"\\u001b[?25l\\u001b[29;105H10\\u001b[16;10H\\u001b[?25h\"]\n[23.367679, \"o\", \"\\u001b[?25le\\u001b[29;106H1\\u001b[16;11H\\u001b[?25h\"]\n[23.506297, \"o\", \"\\u001b[?25ld\\u001b[29;106H2\\u001b[16;12H\\u001b[?25h\"]\n[23.561789, \"o\", \"\\u001b[?25li\\u001b[29;106H3\\u001b[16;13H\\u001b[?25h\"]\n[23.732131, \"o\", \"\\u001b[?25lt\\u001b[29;106H4\\u001b[16;14H\\u001b[?25h\"]\n[23.89776, \"o\", \"\\u001b[?25l.\\u001b[29;106H5\\u001b[16;15H\\u001b[?25h\"]\n[24.121988, \"o\", \"\\u001b[29;1H\\u001b[K\\u001b[16;14H\\u001b[?25l\\u001b[29;92H^[\\u001b[16;14H\"]\n[24.222361, \"o\", \"\\u001b[29;92H  \\u001b[16;15H\"]\n[24.223161, \"o\", \"\\u001b[29;102H16,14\\u001b[7CAlles\\u001b[16;14H\\u001b[?25h\"]\n[24.480728, \"o\", \"\\u001b[?25l\\u001b[29;92H:\\u001b[16;14H\\u001b[29;92H\\u001b[K\\u001b[29;1H:\"]\n[24.480865, \"o\", \"\\u001b[?2004h\\u001b[?25h\"]\n[24.616449, \"o\", \"w\\u001b[?25l\\u001b[?25h\"]\n[24.680356, \"o\", \"q\\u001b[?25l\\u001b[?25h\"]\n[24.782547, \"o\", \"\\r\\u001b[?25l\"]\n[24.782777, \"o\", \"\\u001b[?1006l\\u001b[?1002l\\u001b[?2004l\\\"/tmp/brig-cmd-buffer-7867430388356292876.md\\\"\"]\n[24.783558, \"o\", \" 16L, 458C geschrieben\"]\n[24.785684, \"o\", \"\\r\\r\\r\\n\\u001b[?2004l\\u001b[?1l\\u001b>\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\"]\n[24.976962, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[24.977439, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[24.977573, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[24.977854, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[24.978174, \"o\", \"\\u001b[?1h\\u001b=\"]\n[24.97931, \"o\", \"\\u001b[?2004h\"]\n[26.39299, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[26.903388, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[27.043634, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[27.143328, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[27.220485, \"o\", \" \"]\n[27.432396, \"o\", \"\\u001b[4mm\\u001b[24m\"]\n[27.536401, \"o\", \"\\b\\u001b[24mmv\"]\n[27.604616, \"o\", \" \"]\n[28.387822, \"o\", \"s\"]\n[28.457765, \"o\", \"u\"]\n[28.599949, \"o\", \"b\"]\n[29.092484, \"o\", \"/\"]\n[29.516744, \"o\", \"m\"]\n[29.716171, \"o\", \"u\"]\n[29.805969, \"o\", \"s\"]\n[29.894391, \"o\", \"i\"]\n[29.986773, \"o\", \"c\"]\n[30.122947, \"o\", \".\"]\n[30.30213, \"o\", \"m\"]\n[30.46432, \"o\", \"p\"]\n[30.537035, \"o\", \"3\"]\n[30.6676, \"o\", \" \"]\n[31.453307, \"o\", \"s\"]\n[31.522437, \"o\", \"u\"]\n[31.647459, \"o\", \"b\"]\n[32.02632, \"o\", \"/\"]\n[32.528259, \"o\", \"e\"]\n[32.628939, \"o\", \"l\"]\n[32.781576, \"o\", \"s\"]\n[32.932367, \"o\", \"e\"]\n[33.02803, \"o\", \".\"]\n[33.198452, \"o\", \"m\"]\n[33.394547, \"o\", \"p\"]\n[33.498707, \"o\", \"3\"]\n[33.72191, \"o\", \"\\u001b[?1l\\u001b>\"]\n[33.728505, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[33.730485, \"o\", \"\\u001b]2;brig mv sub/music.mp3 sub/else.mp3\\u0007\\u001b]1;brig\\u0007\"]\n[33.852268, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[33.852394, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[33.852468, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[33.852541, \"o\", \"\\u001b[?1h\\u001b=\"]\n[33.852729, \"o\", \"\\u001b[?2004h\"]\n[34.937603, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[35.090575, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[35.180064, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[35.303067, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[35.386245, \"o\", \" \"]\n[35.509001, \"o\", \"d\"]\n[35.628174, \"o\", \"i\"]\n[35.711723, \"o\", \"f\"]\n[35.837246, \"o\", \"f\"]\n[36.037302, \"o\", \"\\u001b[?1l\\u001b>\"]\n[36.04126, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[36.043317, \"o\", \"\\u001b]2;brig diff\\u0007\\u001b]1;brig\\u0007\"]\n[36.175276, \"o\", \"\\u001b[35m•\\u001b[0m\\r\\n├──\\u001b[36m README.md ⇄ README.md\\u001b[0m\\r\\n└──sub\\r\\n   └──\\u001b[34m else.mp3 → music.mp3\\u001b[0m\\r\\n\\r\\n0 directories, 3 files\\r\\n\"]\n[36.176742, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[36.176848, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[36.176922, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[36.177004, \"o\", \"\\u001b[?1h\\u001b=\"]\n[36.177226, \"o\", \"\\u001b[?2004h\"]\n[39.463756, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/asciinema/6_history.json",
    "content": "{\"version\": 2, \"width\": 119, \"height\": 29, \"timestamp\": 1519815271, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}}\n[0.247164, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[0.247332, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[0.2474, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[0.247473, \"o\", \"\\u001b[?1h\\u001b=\"]\n[0.247687, \"o\", \"\\u001b[?2004h\"]\n[0.758319, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[0.903542, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[0.991215, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[1.097336, \"o\", \"\\b\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mh\\u001b[0m\\u001b[39m\"]\n[1.234071, \"o\", \" \"]\n[1.604765, \"o\", \"\\b\"]\n[1.742115, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[1.819036, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[1.874837, \"o\", \" \"]\n[2.066405, \"o\", \"h\"]\n[2.230528, \"o\", \"i\"]\n[2.308608, \"o\", \"s\"]\n[2.441739, \"o\", \"t\"]\n[2.556275, \"o\", \"o\"]\n[2.631017, \"o\", \"r\"]\n[2.782399, \"o\", \"y\"]\n[2.849719, \"o\", \" \"]\n[2.992586, \"o\", \"n\"]\n[3.076498, \"o\", \"e\"]\n[3.244405, \"o\", \"w\"]\n[3.343333, \"o\", \"-\"]\n[3.443824, \"o\", \"f\"]\n[3.517283, \"o\", \"i\"]\n[3.661094, \"o\", \"l\"]\n[3.760592, \"o\", \"e\"]\n[3.867321, \"o\", \"\\u001b[?1l\\u001b>\"]\n[3.873454, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[3.875831, \"o\", \"\\u001b]2;brig history new-file\\u0007\\u001b]1;brig\\u0007\"]\n[3.994567, \"o\", \"CHANGE  FROM        TO      WHEN             \\r\\n\\u001b[33madded\\u001b[0m\"]\n[3.994631, \"o\", \"   \\u001b[36mSEfXUCU47p\\u001b[0m  \\u001b[32mHEAD\\u001b[0m    \\u001b[35mFeb 28 10:45:21\\u001b[0m  \\r\\n\"]\n[3.996106, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[3.996207, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[3.996274, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[3.996336, \"o\", \"\\u001b[?1h\\u001b=\"]\n[3.996539, \"o\", \"\\u001b[?2004h\"]\n[4.612566, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[4.750317, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[4.85455, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[4.948061, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[5.035556, \"o\", \" \"]\n[5.136146, \"o\", \"\\u001b[4me\\u001b[24m\"]\n[5.266322, \"o\", \"\\b\\u001b[24med\"]\n[5.368632, \"o\", \"i\"]\n[5.518402, \"o\", \"t\"]\n[5.592434, \"o\", \" \"]\n[5.747638, \"o\", \"n\"]\n[5.811149, \"o\", \"e\"]\n[5.988417, \"o\", \"w\"]\n[6.102252, \"o\", \"-\"]\n[6.216878, \"o\", \"f\"]\n[6.308529, \"o\", \"i\"]\n[6.462365, \"o\", \"l\"]\n[6.568562, \"o\", \"e\"]\n[6.966448, \"o\", \"\\u001b[?1l\\u001b>\"]\n[6.972753, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[6.974692, \"o\", \"\\u001b]2;brig edit new-file\\u0007\\u001b]1;brig\\u0007\"]\n[7.098775, \"o\", \"\\u001b[?1000h\\u001b[?2004h\\u001b[?1049h\\u001b[22;0;0t\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[7.099102, \"o\", \"\\u001b[1;29r\\u001b[?12h\\u001b[?12l\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[29;1H\\\"/tmp/brig-cmd-buffer-1040861570544051988\\\"\"]\n[7.099183, \"o\", \" 1L, 72C\"]\n[7.102658, \"o\", \"\\u001b[2;1H▽\\u001b[6n\\u001b[2;1H  \\u001b[1;1H\\u001b[>c\\u001b]10;?\\u0007\\u001b]11;?\\u0007\"]\n[7.102931, \"o\", \"\\u001b[1;1HThis is a new file and I can use this folder just like a normal folder.\\r\\n\\u001b[94m~                                                                                                                      \\u001b[3;1H~                                                                                                                      \\u001b[4;1H~                                                                                                                      \\u001b[5;1H~                                                                                                                      \\u001b[6;1H~                                                                                                                      \\u001b[7;1H~                                                                                                                      \\u001b[8;1H~                                                                                                                      \\u001b[9;1H~                                                                \"]\n[7.103048, \"o\", \"                                                      \\u001b[10;1H~                                                                                                                      \\u001b[11;1H~                                                                                                                      \\u001b[12;1H~                                                                                                                      \\u001b[13;1H~                                                                                                                      \\u001b[14;1H~                                                                                                                      \\u001b[15;1H~                                                                                                                      \\u001b[16;1H~                                                                                                                      \\u001b[17;1H~                                                                                \"]\n[7.103117, \"o\", \"                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                \"]\n[7.103178, \"o\", \"                      \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\u001b[1;1H\\u001b[?25h\"]\n[7.115208, \"o\", \"\\u001bP+q436f\\u001b\\\\\\u001bP+q6b75\\u001b\\\\\\u001bP+q6b64\\u001b\\\\\\u001bP+q6b72\\u001b\\\\\\u001bP+q6b6c\\u001b\\\\\\u001bP+q2332\\u001b\\\\\\u001bP+q2334\\u001b\\\\\\u001bP+q2569\\u001b\\\\\\u001bP+q2a37\\u001b\\\\\\u001bP+q6b31\\u001b\\\\\"]\n[7.118422, \"o\", \"\\u001b[?1000l\\u001b[?1006h\\u001b[?1002h\\u001b[?1006l\\u001b[?1002l\\u001b[?1006h\\u001b[?1002h\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[1;1HThis is a new file and I can use this folder just like a normal folder.\\r\\n\\u001b[94m~                                                                                                                      \\u001b[3;1H~                                                                                                                      \\u001b[4;1H~                                                                                                                      \\u001b[5;1H~                                                                                                                      \\u001b[6;1H~                                                                                                                      \\u001b[7;1H~                                                                                                                      \\u001b[8;1H~                                                                                                      \"]\n[7.119068, \"o\", \"                \\u001b[9;1H~                                                                                                                      \\u001b[10;1H~                                                                                                                      \\u001b[11;1H~                                                                                                                      \\u001b[12;1H~                                                                                                                      \\u001b[13;1H~                                                                                                                      \\u001b[14;1H~                                                                                                                      \\u001b[15;1H~                                                                                                                      \\u001b[16;1H~                                                                                                                      \\u001b\"]\n[7.119231, \"o\", \"[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                                      \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~         \"]\n[7.11934, \"o\", \"                                                                                                             \\u001b[26;1H~                                                                                                                      \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\r\\\"/tmp/brig-cmd-buffer-1040861570544051988\\\" 1L, 72C\\u001b[1;1H\\u001b[?25h\"]\n[8.390161, \"o\", \"\\u001b[?25l\\u001b[29;92Ho\\u001b[1;1H\\u001b[29;92H \\u001b[2;1H\\u001b[29;1H\\u001b[1m-- EINFÜGEN --\\u001b[m\\u001b[29;15H\\u001b[K\\u001b[29;102H2,1\\u001b[9CAlles\"]\n[8.390573, \"o\", \"\\u001b[2;1H\\u001b[K\\u001b[2;1H\\u001b[?25h\"]\n[8.7854, \"o\", \"\\u001b[?25lI\\u001b[29;104H2\\u001b[2;2H\\u001b[?25h\"]\n[8.936335, \"o\", \"\\u001b[?25l\\u001b[29;104H3\\u001b[2;3H\\u001b[?25h\"]\n[9.210809, \"o\", \"\\u001b[?25la\\u001b[29;104H4\\u001b[2;4H\\u001b[?25h\"]\n[9.316575, \"o\", \"\\u001b[?25ld\\u001b[29;104H5\\u001b[2;5H\\u001b[?25h\"]\n[9.485026, \"o\", \"\\u001b[?25ld\\u001b[29;104H6\\u001b[2;6H\\u001b[?25h\"]\n[9.589198, \"o\", \"\\u001b[?25le\\u001b[29;104H7\\u001b[2;7H\\u001b[?25h\"]\n[9.68663, \"o\", \"\\u001b[?25ld\\u001b[29;104H8\\u001b[2;8H\\u001b[?25h\"]\n[9.762494, \"o\", \"\\u001b[?25l\\u001b[29;104H9\\u001b[2;9H\\u001b[?25h\"]\n[9.928953, \"o\", \"\\u001b[?25la\\u001b[29;104H10\\u001b[2;10H\\u001b[?25h\"]\n[10.009957, \"o\", \"\\u001b[?25ln\\u001b[29;105H1\\u001b[2;11H\\u001b[?25h\"]\n[10.181435, \"o\", \"\\u001b[?25lo\\u001b[29;105H2\\u001b[2;12H\\u001b[?25h\"]\n[10.277076, \"o\", \"\\u001b[?25lt\\u001b[29;105H3\\u001b[2;13H\\u001b[?25h\"]\n[10.380755, \"o\", \"\\u001b[?25lh\\u001b[29;105H4\\u001b[2;14H\\u001b[?25h\"]\n[10.467393, \"o\", \"\\u001b[?25le\\u001b[29;105H5\\u001b[2;15H\\u001b[?25h\"]\n[10.515522, \"o\", \"\\u001b[?25lr\\u001b[29;105H6\\u001b[2;16H\\u001b[?25h\"]\n[10.599308, \"o\", \"\\u001b[?25l\\u001b[29;105H7\\u001b[2;17H\\u001b[?25h\"]\n[10.678216, \"o\", \"\\u001b[?25ll\\u001b[29;105H8\\u001b[2;18H\\u001b[?25h\"]\n[10.812556, \"o\", \"\\u001b[?25li\\u001b[29;105H9\\u001b[2;19H\\u001b[?25h\"]\n[10.972619, \"o\", \"\\u001b[?25ln\\u001b[29;104H20\\u001b[2;20H\\u001b[?25h\"]\n[11.036455, \"o\", \"\\u001b[?25le\\u001b[29;105H1\\u001b[2;21H\\u001b[?25h\"]\n[11.140062, \"o\", \"\\u001b[?25l\\u001b[29;105H2\\u001b[2;22H\\u001b[?25h\"]\n[11.219498, \"o\", \"\\u001b[?25lt\\u001b[29;105H3\\u001b[2;23H\\u001b[?25h\"]\n[11.330255, \"o\", \"\\u001b[?25lo\\u001b[29;105H4\\u001b[2;24H\\u001b[?25h\"]\n[11.394367, \"o\", \"\\u001b[?25l\\u001b[29;105H5\\u001b[2;25H\\u001b[?25h\"]\n[11.487906, \"o\", \"\\u001b[?25ls\\u001b[29;105H6\\u001b[2;26H\\u001b[?25h\"]\n[11.550727, \"o\", \"\\u001b[?25lh\\u001b[29;105H7\\u001b[2;27H\\u001b[?25h\"]\n[11.714439, \"o\", \"\\u001b[?25lo\\u001b[29;105H8\\u001b[2;28H\\u001b[?25h\"]\n[11.82308, \"o\", \"\\u001b[?25lw\\u001b[29;105H9\\u001b[2;29H\\u001b[?25h\"]\n[11.911686, \"o\", \"\\u001b[?25l\\u001b[29;104H30\\u001b[2;30H\\u001b[?25h\"]\n[12.008968, \"o\", \"\\u001b[?25lt\\u001b[29;105H1\\u001b[2;31H\\u001b[?25h\"]\n[12.089608, \"o\", \"\\u001b[?25lh\\u001b[29;105H2\\u001b[2;32H\\u001b[?25h\"]\n[12.179902, \"o\", \"\\u001b[?25le\\u001b[29;105H3\\u001b[2;33H\\u001b[?25h\"]\n[12.216415, \"o\", \"\\u001b[?25l\\u001b[29;105H4\\u001b[2;34H\\u001b[?25h\"]\n[12.425471, \"o\", \"\\u001b[?25lh\\u001b[29;105H5\\u001b[2;35H\\u001b[?25h\"]\n[12.555247, \"o\", \"\\u001b[?25li\\u001b[29;105H6\\u001b[2;36H\\u001b[?25h\"]\n[12.661093, \"o\", \"\\u001b[?25ls\\u001b[29;105H7\\u001b[2;37H\\u001b[?25h\"]\n[12.798374, \"o\", \"\\u001b[?25ly\\u001b[29;105H8\\u001b[2;38H\\u001b[?25h\"]\n[12.891934, \"o\", \"\\u001b[?25lo\\u001b[29;105H9\\u001b[2;39H\\u001b[?25h\"]\n[12.999356, \"o\", \"\\u001b[?25lr\\u001b[29;104H40\\u001b[2;40H\\u001b[?25h\"]\n[13.307156, \"o\", \"\\u001b[?25l\\u001b[2;39H\\u001b[K\\u001b[29;104H39\\u001b[2;39H\\u001b[?25h\"]\n[13.446672, \"o\", \"\\u001b[?25l\\u001b[2;38H\\u001b[K\\u001b[29;105H8\\u001b[2;38H\\u001b[?25h\"]\n[13.583738, \"o\", \"\\u001b[?25l\\u001b[2;37H\\u001b[K\\u001b[29;105H7\\u001b[2;37H\\u001b[?25h\"]\n[13.680682, \"o\", \"\\u001b[?25lt\\u001b[29;105H8\\u001b[2;38H\\u001b[?25h\"]\n[13.774376, \"o\", \"\\u001b[?25lo\\u001b[29;105H9\\u001b[2;39H\\u001b[?25h\"]\n[13.861644, \"o\", \"\\u001b[?25lr\\u001b[29;104H40\\u001b[2;40H\\u001b[?25h\"]\n[14.015369, \"o\", \"\\u001b[?25ly\\u001b[29;105H1\\u001b[2;41H\\u001b[?25h\"]\n[14.086862, \"o\", \"\\u001b[?25l\\u001b[29;105H2\\u001b[2;42H\\u001b[?25h\"]\n[14.235689, \"o\", \"\\u001b[?25lf\\u001b[29;105H3\\u001b[2;43H\\u001b[?25h\"]\n[14.935863, \"o\", \"\\u001b[?25le\\u001b[29;105H4\\u001b[2;44H\\u001b[?25h\"]\n[15.011571, \"o\", \"\\u001b[?25la\\u001b[29;105H5\\u001b[2;45H\\u001b[?25h\"]\n[15.144528, \"o\", \"\\u001b[?25lt\\u001b[29;105H6\\u001b[2;46H\\u001b[?25h\"]\n[15.26693, \"o\", \"\\u001b[?25lu\\u001b[29;105H7\\u001b[2;47H\\u001b[?25h\"]\n[15.337705, \"o\", \"\\u001b[?25lr\\u001b[29;105H8\\u001b[2;48H\\u001b[?25h\"]\n[15.408419, \"o\", \"\\u001b[?25le\\u001b[29;105H9\\u001b[2;49H\\u001b[?25h\"]\n[15.520857, \"o\", \"\\u001b[?25l.\\u001b[29;104H50\\u001b[2;50H\\u001b[?25h\"]\n[15.684168, \"o\", \"\\u001b[29;1H\\u001b[K\\u001b[2;49H\\u001b[?25l\\u001b[29;92H^[\\u001b[2;49H\"]\n[15.784483, \"o\", \"\\u001b[29;92H  \\u001b[2;50H\"]\n[15.785392, \"o\", \"\\u001b[29;102H2,49\\u001b[8CAlles\\u001b[2;49H\\u001b[?25h\"]\n[15.965731, \"o\", \"\\u001b[?25l\\u001b[29;92H:\\u001b[2;49H\"]\n[15.965848, \"o\", \"\\u001b[29;92H\\u001b[K\\u001b[29;1H:\\u001b[?2004h\\u001b[?25h\"]\n[16.0631, \"o\", \"w\\u001b[?25l\\u001b[?25h\"]\n[16.130332, \"o\", \"q\\u001b[?25l\\u001b[?25h\"]\n[16.237935, \"o\", \"\\r\"]\n[16.238532, \"o\", \"\\u001b[?25l\\u001b[?1006l\\u001b[?1002l\\u001b[?2004l\\\"/tmp/brig-cmd-buffer-1040861570544051988\\\"\"]\n[16.239785, \"o\", \" 2L, 122C geschrieben\"]\n[16.242119, \"o\", \"\\r\\r\\r\\n\\u001b[?2004l\\u001b[?1l\\u001b>\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\"]\n[16.483625, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[16.483851, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \"]\n[16.484182, \"o\", \"\\u001b[K\\u001b[?1h\\u001b=\"]\n[16.484373, \"o\", \"\\u001b[?2004h\"]\n[16.649917, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[16.74022, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[16.863539, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[16.933108, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[17.02806, \"o\", \" \"]\n[17.139172, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[17.196635, \"o\", \"\\b\\u001b[4mc\\u001b[4mo\\u001b[24m\"]\n[17.369386, \"o\", \"\\b\\u001b[4mo\\u001b[4mm\\u001b[24m\"]\n[17.506413, \"o\", \"\\b\\b\\b\\u001b[24mc\\u001b[24mo\\u001b[24mmm\"]\n[17.70377, \"o\", \"i\"]\n[17.781604, \"o\", \"t\"]\n[17.844497, \"o\", \" \"]\n[17.932295, \"o\", \"-\"]\n[18.147048, \"o\", \"m\"]\n[19.411942, \"o\", \" \"]\n[19.579929, \"o\", \"\\u001b[33m'\\u001b[39m\"]\n[20.289417, \"o\", \"\\b\\u001b[33m'\\u001b[33me\\u001b[39m\"]\n[20.429284, \"o\", \"\\b\\u001b[33me\\u001b[33md\\u001b[39m\"]\n[20.564702, \"o\", \"\\b\\u001b[33md\\u001b[33mi\\u001b[39m\"]\n[20.64266, \"o\", \"\\b\\u001b[33mi\\u001b[33mt\\u001b[39m\"]\n[20.694368, \"o\", \"\\b\\u001b[33mt\\u001b[33me\\u001b[39m\"]\n[20.818051, \"o\", \"\\b\\u001b[33me\\u001b[33md\\u001b[39m\"]\n[20.908198, \"o\", \"\\b\\u001b[33md\\u001b[33m \\u001b[39m\"]\n[20.970043, \"o\", \"\\b\\u001b[33m \\u001b[33mn\\u001b[39m\"]\n[21.013369, \"o\", \"\\b\\u001b[33mn\\u001b[33me\\u001b[39m\"]\n[21.171105, \"o\", \"\\b\\u001b[33me\\u001b[33mw\\u001b[39m\"]\n[21.240077, \"o\", \"\\b\\u001b[33mw\\u001b[33m-\\u001b[39m\"]\n[21.33241, \"o\", \"\\b\\u001b[33m-\\u001b[33mf\\u001b[39m\"]\n[21.421937, \"o\", \"\\b\\u001b[33mf\\u001b[33mi\\u001b[39m\"]\n[21.581226, \"o\", \"\\b\\u001b[33mi\\u001b[33ml\\u001b[39m\"]\n[21.694969, \"o\", \"\\b\\u001b[33ml\\u001b[33me\\u001b[39m\"]\n[21.839741, \"o\", \"\\b\\u001b[33me\\u001b[33m'\\u001b[39m\"]\n[22.007146, \"o\", \"\\u001b[?1l\\u001b>\"]\n[22.013129, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[22.01528, \"o\", \"\\u001b]2;brig commit -m 'edited new-file'\\u0007\\u001b]1;brig\\u0007\"]\n[22.139023, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[22.139152, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[22.13918, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[22.139295, \"o\", \"\\u001b[?1h\\u001b=\"]\n[22.13949, \"o\", \"\\u001b[?2004h\"]\n[23.020604, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[23.13374, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[23.26246, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[23.335487, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[23.437349, \"o\", \" \"]\n[23.917417, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[24.065659, \"o\", \"\\b\\u001b[4ml\\u001b[4mo\\u001b[24m\"]\n[24.14673, \"o\", \"\\b\\u001b[4mo\\u001b[4mg\\u001b[24m\"]\n[24.248101, \"o\", \"\\u001b[?1l\\u001b>\"]\n[24.253336, \"o\", \"\\u001b[?2004l\\b\\b\\b\\u001b[24ml\\u001b[24mo\\u001b[24mg\\r\\r\\n\"]\n[24.255808, \"o\", \"\\u001b]2;brig log\\u0007\\u001b]1;brig\\u0007\"]\n[24.368164, \"o\", \"\\u001b[32mSEfXUERkEf\\u001b[0m \\u001b[33mFeb 28 11:54:53\\u001b[0m \\u001b[31m•\\u001b[0m\\u001b[36m (curr)\\u001b[0m\\r\\n\"]\n[24.368292, \"o\", \"\\u001b[32mSEfXUBmLmQ\\u001b[0m \\u001b[33mFeb 28 10:59:36\\u001b[0m edited new-file\\u001b[36m (head)\\u001b[0m\\r\\n\\u001b[32mSEfXUCjYxA\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added darth vader music\\u001b[36m\\u001b[0m\\r\\n\\u001b[32mSEfXUCU47p\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added initial README.md\\u001b[36m\\u001b[0m\\r\\n\"]\n[24.368379, \"o\", \"\\u001b[32mSEfXUCEaXL\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m initial commit\\u001b[36m (init)\\u001b[0m\\r\\n\"]\n[24.369869, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[24.370075, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[24.370148, \"o\", \"\\u001b[?1h\\u001b=\"]\n[24.370345, \"o\", \"\\u001b[?2004h\"]\n[26.14913, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[26.246472, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[26.346298, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[26.437241, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[30.638228, \"o\", \" \"]\n[30.201934, \"o\", \"h\"]\n[30.329335, \"o\", \"i\"]\n[30.411966, \"o\", \"s\"]\n[30.557041, \"o\", \"y\"]\n[30.647071, \"o\", \"o\"]\n[30.764317, \"o\", \"r\"]\n[31.0818, \"o\", \"\\b \\b\"]\n[31.228267, \"o\", \"\\b \\b\"]\n[31.376425, \"o\", \"\\b \\b\"]\n[31.504246, \"o\", \"t\"]\n[31.605135, \"o\", \"o\"]\n[31.697515, \"o\", \"r\"]\n[31.868937, \"o\", \"y\"]\n[31.949671, \"o\", \" \"]\n[32.481463, \"o\", \"n\"]\n[32.540945, \"o\", \"e\"]\n[32.706198, \"o\", \"w\"]\n[32.780756, \"o\", \"-\"]\n[32.893561, \"o\", \"f\"]\n[32.984879, \"o\", \"i\"]\n[33.131834, \"o\", \"l\"]\n[33.235133, \"o\", \"e\"]\n[33.29174, \"o\", \"\\u001b[?1l\\u001b>\"]\n[33.298203, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[33.30009, \"o\", \"\\u001b]2;brig history new-file\\u0007\\u001b]1;brig\\u0007\"]\n[33.411816, \"o\", \"CHANGE    FROM        TO            WHEN             \\r\\n\\u001b[33mmodified\\u001b[0m  \\u001b[36mSEfXUCjYxA\\u001b[0m  \\u001b[32mHEAD\\u001b[0m          \\u001b[35mFeb 28 10:59:36\\u001b[0m  \\r\\n\\u001b[33madded\\u001b[0m\"]\n[33.411883, \"o\", \"     \\u001b[36mSEfXUCU47p\\u001b[0m  \\u001b[32mSEfXUCjYxA\\u001b[0m    \\u001b[35mFeb 28 10:45:21\\u001b[0m  \\r\\n\"]\n[33.413372, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[33.413489, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[33.413564, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[33.413654, \"o\", \"\\u001b[?1h\\u001b=\"]\n[33.413868, \"o\", \"\\u001b[?2004h\"]\n[34.337473, \"o\", \"\\u001b[32mbrig\\u001b[39m history new-file\"]\n[34.823467, \"o\", \"\\b\\b\\b\\b    \\b\\b\\b\\b\"]\n[35.02909, \"o\", \"\\b\\b\\b\\b    \\b\\b\\b\\b\"]\n[35.651468, \"o\", \"\\u001b[8D       \\b\\b\\b\\b\\b\\b\\b\"]\n[35.930863, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[35.992925, \"o\", \"\\b\\u001b[4mr\\u001b[4me\\u001b[24m\"]\n[36.177469, \"o\", \"\\b\\b\\u001b[24mr\\u001b[24mes\"]\n[36.343523, \"o\", \"e\"]\n[36.425736, \"o\", \"t\"]\n[36.475568, \"o\", \" \"]\n[37.198725, \"o\", \"n\"]\n[37.297678, \"o\", \"e\"]\n[37.66047, \"o\", \"\\b \\b\"]\n[37.811151, \"o\", \"\\b \\b\"]\n[38.581713, \"o\", \"H\"]\n[38.674511, \"o\", \"E\"]\n[38.720165, \"o\", \"A\"]\n[38.849624, \"o\", \"D\"]\n[39.521639, \"o\", \"^\"]\n[39.629115, \"o\", \" \"]\n[39.97663, \"o\", \"n\"]\n[40.071728, \"o\", \"e\"]\n[40.241242, \"o\", \"w\"]\n[40.336104, \"o\", \"-\"]\n[40.44449, \"o\", \"f\"]\n[40.546932, \"o\", \"i\"]\n[40.701172, \"o\", \"l\"]\n[40.796942, \"o\", \"e\"]\n[40.88402, \"o\", \"\\u001b[?1l\\u001b>\"]\n[40.890725, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[40.892491, \"o\", \"\\u001b]2;brig reset HEAD^ new-file\\u0007\\u001b]1;brig\\u0007\"]\n[41.011663, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[41.011779, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[41.011852, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[41.011931, \"o\", \"\\u001b[?1h\\u001b=\"]\n[41.012152, \"o\", \"\\u001b[?2004h\"]\n[43.678464, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[43.771458, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[43.869942, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[43.974751, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[44.052256, \"o\", \" \"]\n[44.319182, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[44.389519, \"o\", \"\\b\\u001b[24mca\"]\n[44.537355, \"o\", \"t\"]\n[44.605275, \"o\", \" \"]\n[45.401779, \"o\", \"n\"]\n[45.476219, \"o\", \"e\"]\n[45.63769, \"o\", \"w\"]\n[45.742511, \"o\", \"-\"]\n[45.841412, \"o\", \"f\"]\n[45.935062, \"o\", \"i\"]\n[46.094286, \"o\", \"l\"]\n[46.199279, \"o\", \"e\"]\n[46.29546, \"o\", \"\\u001b[?1l\\u001b>\"]\n[46.301738, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[46.303773, \"o\", \"\\u001b]2;brig cat new-file\\u0007\\u001b]1;brig\\u0007\"]\n[46.462339, \"o\", \"This is a new file and I can use this folder just like a normal folder.\\r\\n\"]\n[46.465781, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[46.465999, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[46.466058, \"o\", \"\\u001b[?1h\\u001b=\"]\n[46.466267, \"o\", \"\\u001b[?2004h\"]\n[50.068751, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/asciinema/7_remotes.json",
    "content": "{\"version\": 2, \"width\": 119, \"height\": 29, \"timestamp\": 1519833254, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}, \"title\": \"brig remote\"}\n[0.256979, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[0.257127, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[0.257195, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[0.257294, \"o\", \"\\u001b[?1h\\u001b=\"]\n[0.257515, \"o\", \"\\u001b[?2004h\"]\n[0.452491, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[0.592882, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[0.657491, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[0.768666, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[0.836203, \"o\", \" \"]\n[0.935009, \"o\", \"w\"]\n[1.089043, \"o\", \"h\"]\n[1.16401, \"o\", \"o\"]\n[1.309524, \"o\", \"a\"]\n[1.374321, \"o\", \"m\"]\n[1.554943, \"o\", \"i\"]\n[1.864501, \"o\", \"\\u001b[?1l\\u001b>\"]\n[1.868891, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[1.871071, \"o\", \"\\u001b]2;brig whoami\\u0007\\u001b]1;brig\\u0007\"]\n[2.029988, \"o\", \"- Name: \\u001b[33msahib@wald.de/laptop\\u001b[0m\\r\\n  Fingerprint: QmXdjMyoLSYzE5r2v1LFZFkgDtNjtcLZZuoHesg3temwLH:SEfXUDYVaZuHryzkXmQvsD35qYz9iBZwnpnRVQvwJjB5yWu2Ygqzbu23CCWUyvk7GVtmwg5m5j93b4S9QNhNs7UXmkPid\\r\\n\"]\n[2.031508, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[2.031622, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[2.031701, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[2.031773, \"o\", \"\\u001b[?1h\\u001b=\"]\n[2.03198, \"o\", \"\\u001b[?2004h\"]\n[3.57628, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[3.690324, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[3.806995, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[3.880188, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[3.961119, \"o\", \" \"]\n[4.064671, \"o\", \"n\"]\n[4.144889, \"o\", \"e\"]\n[4.249377, \"o\", \"t\"]\n[4.299546, \"o\", \" \"]\n[4.433507, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[4.59375, \"o\", \"\\b\\u001b[4ml\\u001b[4mo\\u001b[24m\"]\n[4.750709, \"o\", \"\\b\\b\\u001b[24ml\\u001b[24moc\"]\n[4.794775, \"o\", \"a\"]\n[4.943057, \"o\", \"t\"]\n[5.005801, \"o\", \"e\"]\n[5.036716, \"o\", \" \"]\n[5.521982, \"o\", \"\\u001b[4ma\\u001b[24m\"]\n[5.66573, \"o\", \"\\b\\u001b[24mal\"]\n[5.849781, \"o\", \"i\"]\n[5.949514, \"o\", \"c\"]\n[5.993024, \"o\", \"e\"]\n[6.615229, \"o\", \"\\u001b[?1l\\u001b>\"]\n[6.624865, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[6.627092, \"o\", \"\\u001b]2;brig net locate alice\\u0007\\u001b]1;brig\\u0007\"]\n[7.24608, \"o\", \"Scanning.    \\r\"]\n[7.746166, \"o\", \"Scanning..   \\r\"]\n[8.246136, \"o\", \"Scanning...  \\r\"]\n[8.746117, \"o\", \"Scanning.... \\r\"]\n[9.246041, \"o\", \"Scanning.....\\r\"]\n[9.746112, \"o\", \"Scanning.    \\r\"]\n[10.246042, \"o\", \"Scanning..   \\r\"]\n[10.746183, \"o\", \"Scanning...  \\r\"]\n[11.246097, \"o\", \"Scanning.... \\r\"]\n[11.746129, \"o\", \"Scanning.....\\r\"]\n[12.246214, \"o\", \"Scanning.    \\r\"]\n[12.746018, \"o\", \"Scanning..   \\r\"]\n[13.246042, \"o\", \"Scanning...  \\r\"]\n[13.746093, \"o\", \"Scanning.... \\r\"]\n[14.246131, \"o\", \"Scanning.....\\r\"]\n[14.746065, \"o\", \"Scanning.    \\r\"]\n[15.246104, \"o\", \"Scanning..   \\r\"]\n[15.746047, \"o\", \"Scanning...  \\r\"]\n[16.246048, \"o\", \"Scanning.... \\r\"]\n[16.746052, \"o\", \"Scanning.....\\r\"]\n[16.776321, \"o\", \"NAME                           TYPE       FINGERPRINT\\r\\nalice@wonderland.lit/container email      \\u001b[32mQmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7WhCC476Gp6BHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\u001b[0m\\r\\n\"]\n[18.54981, \"o\", \"^C\"]\n[18.555759, \"o\", \"\\r\\n\"]\n[18.556274, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[18.556666, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[18.557775, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[18.558285, \"o\", \"\\u001b[?2004h\"]\n[19.449127, \"o\", \"\\u001b[1m\\u001b[31mn\\u001b[0m\\u001b[39m\"]\n[19.548774, \"o\", \"\\b\\u001b[1m\\u001b[31mn\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[19.644313, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mn\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[19.732335, \"o\", \"\\b\\u001b[1m\\u001b[31mi\\u001b[1m\\u001b[31mg\\u001b[0m\\u001b[39m\"]\n[19.796273, \"o\", \" \"]\n[20.355635, \"o\", \"\\b\\b\\b\\b\\b\\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\u001b[0m\\u001b[39m \\b\\b\\b\\b\"]\n[20.610364, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[20.713316, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[20.842937, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[20.943321, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[21.056141, \"o\", \" \"]\n[21.20604, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[21.269933, \"o\", \"\\b\\u001b[4mr\\u001b[4me\\u001b[24m\"]\n[21.303008, \"o\", \"\\b\\b\\u001b[24mr\\u001b[24mem\"]\n[21.466296, \"o\", \"o\"]\n[21.515036, \"o\", \"t\"]\n[21.558255, \"o\", \"e\"]\n[21.595261, \"o\", \" \"]\n[21.701607, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[21.790604, \"o\", \"\\b\\u001b[24mls\"]\n[21.875449, \"o\", \"\\u001b[?1l\\u001b>\"]\n[21.880974, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[21.883036, \"o\", \"\\u001b]2;brig remote ls\\u0007\\u001b]1;brig\\u0007\"]\n[22.033551, \"o\", \"None yet. Use `brig remote add <user> <id>` to add some.\\r\\n\"]\n[22.034945, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[22.035119, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[22.03519, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[22.035295, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[22.035476, \"o\", \"\\u001b[?1h\\u001b=\"]\n[22.035744, \"o\", \"\\u001b[?2004h\"]\n[23.350038, \"o\", \"\\u001b[32mbrig\\u001b[39m remote ls\"]\n[23.797034, \"o\", \"\\b\\b  \\b\\b\"]\n[24.100147, \"o\", \"\\u001b[4ma\\u001b[24m\"]\n[24.191926, \"o\", \"\\b\\u001b[24mad\"]\n[24.372643, \"o\", \"d\"]\n[24.466264, \"o\", \" \"]\n[25.414876, \"o\", \"\\u001b[4ma\\u001b[24m\"]\n[25.522413, \"o\", \"\\b\\u001b[24mal\"]\n[25.687799, \"o\", \"i\"]\n[25.748435, \"o\", \"c\"]\n[25.806366, \"o\", \"e\"]\n[25.863034, \"o\", \" \"]\n[29.196254, \"o\", \"\\u001b[22D\\u001b[39mb\\u001b[39mr\\u001b[39mi\\u001b[39mg\\u001b[18C\\u001b[7mQmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7W\\u001b[7mh\\u001b[7mCC476Gp6BHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\u001b[27m\\u001b[K\"]\n[30.112026, \"o\", \"\\u001b[A\\u001b[43D\\u001b[32mb\\u001b[32mr\\u001b[32mi\\u001b[32mg\\u001b[39m\\u001b[18C\\u001b[27mQ\\u001b[27mm\\u001b[27mU\\u001b[27mz\\u001b[27mL\\u001b[27mS\\u001b[27mH\\u001b[27mC\\u001b[27mK\\u001b[27mU\\u001b[27mN\\u001b[27mD\\u001b[27mo\\u001b[27mw\\u001b[27m8\\u001b[27mY\\u001b[27mS\\u001b[27m6\\u001b[27mt\\u001b[27mE\\u001b[27mZ\\u001b[27mA\\u001b[27mP\\u001b[27mz\\u001b[27mK\\u001b[27mY\\u001b[27mV\\u001b[27mq\\u001b[27mo\\u001b[27mG\\u001b[27m8\\u001b[27mo\\u001b[27mY\\u001b[27mj\\u001b[27m4\\u001b[27m1\\u001b[27mi\\u001b[27mo\\u001b[27mN\\u001b[27m1\\u001b[27mY\\u001b[27mg\\u001b[27mH\\u001b[27mW\\u001b[27mC\\u001b[27mb\\u001b[27m:\\u001b[27mS\\u001b[27mE\\u001b[27mf\\u001b[27mX\\u001b[27mU\\u001b[27mD\\u001b[27mA\\u001b[27m1\\u001b[27m5\\u001b[27m7\\u001b[27mk\\u001b[27mQ\\u001b[27mo\\u001b[27mq\\u001b[27mR\\u001b[27mc\\u001b[27m6\\u001b[27mE\\u001b[27mv\\u001b[27mw\\u001b[27mR\\u001b[27my\\u001b[27m3\\u001b[27mv\\u001b[27m3\\u001b[27mk\\u001b[27mF\\u001b[27md\\u001b[27mT\\u001b[27mJ\\u001b[27mh\\u001b[27m2\\u001b[27mH\\u001b[27mX\\u001b[27mc\\u001b[27mW\\u001b[27ms\\u001b[27mo\\u001b[27m7\\u001b[27mH\\u001b[27mB\\u001b[27mG\\u001b[27mJ\\u001b[27mV\\u001b[27mM\\u001b[27mi\\u001b[27m7\\u001b[27mWh\\u001b[27mC\\u001b[27mC\\u001b[27m4\\u001b[27m7\\u001b[27m6\\u001b[27mG\\u001b[27mp\\u001b[27m6\\u001b[27mB\\u001b[27mH\\u001b[27mM\\u001b[27mQ\\u001b[27mK\\u001b[27mt\\u001b[27mZ\\u001b[27mi\\u001b[27mV\\u001b[27mu\\u001b[27mJ\\u001b[27mq\\u001b[27mc\\u001b[27m4\\u001b[27mo\\u001b[27m4\\u001b[27m3\\u001b[27mR\\u001b[27mZ\\u001b[27m1\\u001b[27md\\u001b[27mz\\u001b[27m3\\u001b[27md\\u001b[27mP\\u001b[27me\\u001b[27mJ\\u001b[27mE\\u001b[27mg\\u001b[27mL\\u001b[27my\\u001b[27mM\\u001b[27mc\\u001b[27mR\\u001b[27mT\\u001b[27mB\"]\n[30.112723, \"o\", \"\\u001b[?1l\\u001b>\"]\n[30.121712, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[30.123729, \"o\", \"\\u001b]2;brig remote add alice \\u0007\\u001b]1;brig\\u0007\"]\n[30.245746, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[30.245919, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[30.24613, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[30.246223, \"o\", \"\\u001b[?1h\\u001b=\"]\n[30.246451, \"o\", \"\\u001b[?2004h\"]\n[31.932036, \"o\", \"\\u001b[32mbrig\\u001b[39m remote add alice QmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7WhCC476Gp6BHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\u001b[K\"]\n[32.081344, \"o\", \"\\u001b[A\\u001b[31Dls\\u001b[K\\u001b[1B\\r\\u001b[K\\u001b[A\\u001b[16C\"]\n[32.635824, \"o\", \"\\u001b[?1l\\u001b>\"]\n[32.641717, \"o\", \"\\u001b[?2004l\\u001b[1B\\r\"]\n[32.643823, \"o\", \"\\u001b]2;brig remote ls\\u0007\\u001b]1;brig\\u0007\"]\n[32.753559, \"o\", \"- Name: alice\\r\\n  Fingerprint: QmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7WhCC476Gp6BHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\r\\n\\r\\n\"]\n[32.755086, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[32.755201, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[32.755269, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[32.755388, \"o\", \"\\u001b[?1h\\u001b=\"]\n[32.755607, \"o\", \"\\u001b[?2004h\"]\n[34.857157, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[34.964859, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[35.066833, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[35.147421, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[35.21895, \"o\", \" \"]\n[35.530163, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[35.592531, \"o\", \"\\b\\u001b[4mr\\u001b[4me\\u001b[24m\"]\n[35.64326, \"o\", \"\\b\\b\\u001b[24mr\\u001b[24mem\"]\n[35.818233, \"o\", \"o\"]\n[35.86627, \"o\", \"t\"]\n[35.909441, \"o\", \"e\"]\n[35.960071, \"o\", \" \"]\n[36.225287, \"o\", \"\\u001b[4me\\u001b[24m\"]\n[36.330022, \"o\", \"\\b\\u001b[24med\"]\n[36.445383, \"o\", \"i\"]\n[36.537795, \"o\", \"t\"]\n[36.657444, \"o\", \"\\u001b[?1l\\u001b>\"]\n[36.663347, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[36.665361, \"o\", \"\\u001b]2;brig remote edit\\u0007\\u001b]1;brig\\u0007\"]\n[36.809897, \"o\", \"\\u001b[?1000h\\u001b[?2004h\\u001b[?1049h\\u001b[22;0;0t\\u001b[?1h\\u001b=\\u001b[?2004h\"]\n[36.810124, \"o\", \"\\u001b[1;29r\\u001b[?12h\\u001b[?12l\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[29;1H\\\"/tmp/brig-cmd-buffer-7541559781143048777yml\\\"\"]\n[36.810195, \"o\", \" 2L, 170C\"]\n[36.811364, \"o\", \"\\u001b[2;1H▽\\u001b[6n\\u001b[2;1H  \\u001b[1;1H\\u001b[>c\\u001b]10;?\\u0007\\u001b]11;?\\u0007\"]\n[36.811624, \"o\", \"\\u001b[1;1H- Name: alice\\r\\n  Fingerprint: QmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7WhCC476Gp66\\u001b[3;1HBHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\r\\n\\u001b[94m~                                                                                                                      \\u001b[5;1H~                                                                                                                      \\u001b[6;1H~                                                                                                                      \\u001b[7;1H~                                                                                                                      \\u001b[8;1H~                                                                                                                      \\u001b[9;1H~                                                                                                                      \\u001b[10;1H~                                                                                  \"]\n[36.811691, \"o\", \"                                    \\u001b[11;1H~                                                                                                                      \\u001b[12;1H~                                                                                                                      \\u001b[13;1H~                                                                                                                      \\u001b[14;1H~                                                                                                                      \\u001b[15;1H~                                                                                                                      \\u001b[16;1H~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~                                                                                                  \"]\n[36.811752, \"o\", \"                    \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                                                                                                                  \"]\n[36.811809, \"o\", \"    \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\u001b[1;1H\\u001b[?25h\"]\n[36.821729, \"o\", \"\\u001bP+q436f\\u001b\\\\\\u001bP+q6b75\\u001b\\\\\\u001bP+q6b64\\u001b\\\\\\u001bP+q6b72\\u001b\\\\\\u001bP+q6b6c\\u001b\\\\\\u001bP+q2332\\u001b\\\\\\u001bP+q2334\\u001b\\\\\\u001bP+q2569\\u001b\\\\\\u001bP+q2a37\\u001b\\\\\\u001bP+q6b31\\u001b\\\\\"]\n[36.824519, \"o\", \"\\u001b[?1000l\\u001b[?1006h\\u001b[?1002h\\u001b[?1006l\\u001b[?1002l\\u001b[?1006h\\u001b[?1002h\\u001b[27m\\u001b[23m\\u001b[29m\\u001b[m\\u001b[H\\u001b[2J\\u001b[?25l\\u001b[1;1H- Name: alice\\r\\n  Fingerprint: QmUzLSHCKUNDow8YS6tEZAPzKYVqoG8oYj41ioN1YgHWCb:SEfXUDA157kQoqRc6EvwRy3v3kFdTJh2HXcWso7HBGJVMi7WhCC476Gp66\\u001b[3;1HBHMQKtZiVuJqc4o43RZ1dz3dPeJEgLyMcRTB\\r\\n\\u001b[94m~                                                                                                                      \\u001b[5;1H~                                                                                                                      \\u001b[6;1H~                                                                                                                      \\u001b[7;1H~                                                                                                                      \\u001b[8;1H~                                                                                                                      \\u001b[9;1H~                                                                                                                      \\u001b[1\"]\n[36.824903, \"o\", \"0;1H~                                                                                                                      \\u001b[11;1H~                                                                                                                      \\u001b[12;1H~                                                                                                                      \\u001b[13;1H~                                                                                                                      \\u001b[14;1H~                                                                                                                      \\u001b[15;1H~                                                                                                                      \\u001b[16;1H~                                                                                                                      \\u001b[17;1H~                                                                                                                      \\u001b[18;1H~           \"]\n[36.825159, \"o\", \"                                                                                                           \\u001b[19;1H~                                                                                                                      \\u001b[20;1H~                                                                                                                      \\u001b[21;1H~                                                                                                                      \\u001b[22;1H~                                                                                                                      \\u001b[23;1H~                                                                                                                      \\u001b[24;1H~                                                                                                                      \\u001b[25;1H~                                                                                                                      \\u001b[26;1H~                           \"]\n[36.825392, \"o\", \"                                                                                           \\u001b[27;1H~                                                                                                                      \\u001b[28;1H~                                                                                                                      \\u001b[m\\u001b[29;102H1,1\\u001b[9CAlles\\r\\\"/tmp/brig-cmd-buffer-7541559781143048777yml\\\" 2L, 170C\\u001b[1;1H\\u001b[?25h\"]\n[37.72463, \"o\", \"\\u001b[?25l\\u001b[29;92HO\\u001b[1;1H\"]\n[37.724801, \"o\", \"\\u001b[29;92H \\u001b[1;1H\\u001b[29;1H\\u001b[1m-- EINFÜGEN --\\u001b[m\\u001b[29;15H\\u001b[K\\u001b[29;102H1,1\\u001b[9CAlles\"]\n[37.725003, \"o\", \"\\u001b[1;28r\\u001b[1;1H\\u001b[L\\u001b[1;29r\"]\n[37.725116, \"o\", \"\\u001b[29;102H\\u001b[K\\u001b[29;102H1,1\\u001b[9CAlles\\u001b[1;1H\\u001b[?25h\"]\n[38.227707, \"o\", \"\\u001b[?25l#\\u001b[29;104H2\\u001b[1;2H\\u001b[?25h\"]\n[38.338907, \"o\", \"\\u001b[?25l\\u001b[29;104H3\\u001b[1;3H\\u001b[?25h\"]\n[38.530171, \"o\", \"\\u001b[?25lY\\u001b[29;104H4\\u001b[1;4H\\u001b[?25h\"]\n[38.666247, \"o\", \"\\u001b[?25lo\\u001b[29;104H5\\u001b[1;5H\\u001b[?25h\"]\n[38.829278, \"o\", \"\\u001b[?25lu\\u001b[29;104H6\\u001b[1;6H\\u001b[?25h\"]\n[38.915063, \"o\", \"\\u001b[?25l\\u001b[29;104H7\\u001b[1;7H\\u001b[?25h\"]\n[39.028541, \"o\", \"\\u001b[?25lc\\u001b[29;104H8\\u001b[1;8H\\u001b[?25h\"]\n[39.105496, \"o\", \"\\u001b[?25lo\\u001b[29;104H9\\u001b[1;9H\\u001b[?25h\"]\n[39.261918, \"o\", \"\\u001b[?25lu\\u001b[29;104H10\\u001b[1;10H\\u001b[?25h\"]\n[39.427131, \"o\", \"\\u001b[?25ll\\u001b[29;105H1\\u001b[1;11H\\u001b[?25h\"]\n[39.509225, \"o\", \"\\u001b[?25ld\\u001b[29;105H2\\u001b[1;12H\\u001b[?25h\"]\n[39.598817, \"o\", \"\\u001b[?25l\\u001b[29;105H3\\u001b[1;13H\\u001b[?25h\"]\n[39.661772, \"o\", \"\\u001b[?25la\\u001b[29;105H4\\u001b[1;14H\\u001b[?25h\"]\n[40.286289, \"o\", \"\\u001b[?25ll\\u001b[29;105H5\\u001b[1;15H\\u001b[?25h\"]\n[40.445697, \"o\", \"\\u001b[?25ls\\u001b[29;105H6\\u001b[1;16H\\u001b[?25h\"]\n[40.581195, \"o\", \"\\u001b[?25lo\\u001b[29;105H7\\u001b[1;17H\\u001b[?25h\"]\n[40.693541, \"o\", \"\\u001b[?25l\\u001b[29;105H8\\u001b[1;18H\\u001b[?25h\"]\n[40.787179, \"o\", \"\\u001b[?25le\\u001b[29;105H9\\u001b[1;19H\\u001b[?25h\"]\n[40.916071, \"o\", \"\\u001b[?25ld\\u001b[29;104H20\\u001b[1;20H\\u001b[?25h\"]\n[41.055248, \"o\", \"\\u001b[?25li\\u001b[29;105H1\\u001b[1;21H\\u001b[?25h\"]\n[41.122993, \"o\", \"\\u001b[?25lt\\u001b[29;105H2\\u001b[1;22H\\u001b[?25h\"]\n[41.224271, \"o\", \"\\u001b[?25l\\u001b[29;105H3\\u001b[1;23H\\u001b[?25h\"]\n[41.297735, \"o\", \"\\u001b[?25lt\\u001b[29;105H4\\u001b[1;24H\\u001b[?25h\"]\n[41.374971, \"o\", \"\\u001b[?25lh\\u001b[29;105H5\\u001b[1;25H\\u001b[?25h\"]\n[41.499302, \"o\", \"\\u001b[?25le\\u001b[29;105H6\\u001b[1;26H\\u001b[?25h\"]\n[41.541186, \"o\", \"\\u001b[?25l\\u001b[29;105H7\\u001b[1;27H\\u001b[?25h\"]\n[41.660885, \"o\", \"\\u001b[?25ll\\u001b[29;105H8\\u001b[1;28H\\u001b[?25h\"]\n[41.801246, \"o\", \"\\u001b[?25li\\u001b[29;105H9\\u001b[1;29H\\u001b[?25h\"]\n[41.856822, \"o\", \"\\u001b[?25ls\\u001b[29;104H30\\u001b[1;30H\\u001b[?25h\"]\n[42.001292, \"o\", \"\\u001b[?25lt\\u001b[29;105H1\\u001b[1;31H\\u001b[?25h\"]\n[42.047968, \"o\", \"\\u001b[?25l\\u001b[29;105H2\\u001b[1;32H\\u001b[?25h\"]\n[42.143845, \"o\", \"\\u001b[?25li\\u001b[29;105H3\\u001b[1;33H\\u001b[?25h\"]\n[42.309877, \"o\", \"\\u001b[?25ln\\u001b[29;105H4\\u001b[1;34H\\u001b[?25h\"]\n[42.392342, \"o\", \"\\u001b[?25l\\u001b[29;105H5\\u001b[1;35H\\u001b[?25h\"]\n[42.592242, \"o\", \"\\u001b[?25lt\\u001b[29;105H6\\u001b[1;36H\\u001b[?25h\"]\n[42.668149, \"o\", \"\\u001b[?25lh\\u001b[29;105H7\\u001b[1;37H\\u001b[?25h\"]\n[42.746122, \"o\", \"\\u001b[?25le\\u001b[29;105H8\\u001b[1;38H\\u001b[?25h\"]\n[42.828254, \"o\", \"\\u001b[?25l\\u001b[29;105H9\\u001b[1;39H\\u001b[?25h\"]\n[43.003693, \"o\", \"\\u001b[?25le\\u001b[29;104H40\\u001b[1;40H\\u001b[?25h\"]\n[43.154363, \"o\", \"\\u001b[?25ld\\u001b[29;105H1\\u001b[1;41H\\u001b[?25h\"]\n[43.263772, \"o\", \"\\u001b[?25li\\u001b[29;105H2\\u001b[1;42H\\u001b[?25h\"]\n[43.367632, \"o\", \"\\u001b[?25lt\\u001b[29;105H3\\u001b[1;43H\\u001b[?25h\"]\n[43.507165, \"o\", \"\\u001b[?25lo\\u001b[29;105H4\\u001b[1;44H\\u001b[?25h\"]\n[43.57823, \"o\", \"\\u001b[?25lr\\u001b[29;105H5\\u001b[1;45H\\u001b[?25h\"]\n[43.693052, \"o\", \"\\u001b[?25l\\u001b[29;105H6\\u001b[1;46H\\u001b[?25h\"]\n[43.939149, \"o\", \"\\u001b[?25lo\\u001b[29;105H7\\u001b[1;47H\\u001b[?25h\"]\n[44.019491, \"o\", \"\\u001b[?25lf\\u001b[29;105H8\\u001b[1;48H\\u001b[?25h\"]\n[44.112539, \"o\", \"\\u001b[?25l\\u001b[29;105H9\\u001b[1;49H\\u001b[?25h\"]\n[44.20118, \"o\", \"\\u001b[?25lt\\u001b[29;104H50\\u001b[1;50H\\u001b[?25h\"]\n[44.2878, \"o\", \"\\u001b[?25lo\\u001b[29;105H1\\u001b[1;51H\\u001b[?25h\"]\n[44.42828, \"o\", \"\\u001b[?25lu\\u001b[29;105H2\\u001b[1;52H\\u001b[?25h\"]\n[44.684537, \"o\", \"\\u001b[?25l\\u001b[1;51H\\u001b[K\\u001b[29;105H1\\u001b[1;51H\\u001b[?25h\"]\n[44.830548, \"o\", \"\\u001b[?25l\\u001b[1;50H\\u001b[K\\u001b[29;105H0\\u001b[1;50H\\u001b[?25h\"]\n[44.970737, \"o\", \"\\u001b[?25l\\u001b[1;49H\\u001b[K\\u001b[29;104H49\\u001b[1;49H\\u001b[?25h\"]\n[45.046065, \"o\", \"\\u001b[?25ly\\u001b[29;104H50\\u001b[1;50H\\u001b[?25h\"]\n[45.133149, \"o\", \"\\u001b[?25lo\\u001b[29;105H1\\u001b[1;51H\\u001b[?25h\"]\n[45.287311, \"o\", \"\\u001b[?25lu\\u001b[29;105H2\\u001b[1;52H\\u001b[?25h\"]\n[45.328195, \"o\", \"\\u001b[?25lr\\u001b[29;105H3\\u001b[1;53H\\u001b[?25h\"]\n[45.402768, \"o\", \"\\u001b[?25l\\u001b[29;105H4\\u001b[1;54H\\u001b[?25h\"]\n[45.498703, \"o\", \"\\u001b[?25lc\\u001b[29;105H5\\u001b[1;55H\\u001b[?25h\"]\n[45.537462, \"o\", \"\\u001b[?25lh\\u001b[29;105H6\\u001b[1;56H\\u001b[?25h\"]\n[45.718158, \"o\", \"\\u001b[?25lo\\u001b[29;105H7\\u001b[1;57H\\u001b[?25h\"]\n[45.8428, \"o\", \"\\u001b[?25li\\u001b[29;105H8\\u001b[1;58H\\u001b[?25h\"]\n[45.905946, \"o\", \"\\u001b[?25lc\\u001b[29;105H9\\u001b[1;59H\\u001b[?25h\"]\n[45.953682, \"o\", \"\\u001b[?25le\\u001b[29;104H60\\u001b[1;60H\\u001b[?25h\"]\n[46.081636, \"o\", \"\\u001b[?25l.\\u001b[29;105H1\\u001b[1;61H\\u001b[?25h\"]\n[46.267888, \"o\", \"\\u001b[?25l.\\u001b[29;105H2\\u001b[1;62H\\u001b[?25h\"]\n[46.410391, \"o\", \"\\u001b[?25l.\\u001b[29;105H3\\u001b[1;63H\\u001b[?25h\"]\n[46.586319, \"o\", \"\\u001b[29;1H\\u001b[K\\u001b[1;62H\\u001b[?25l\\u001b[29;92H^[\\u001b[1;62H\"]\n[46.686908, \"o\", \"\\u001b[29;92H  \\u001b[1;63H\"]\n[46.688225, \"o\", \"\\u001b[29;102H1,62\\u001b[8CAlles\\u001b[1;62H\\u001b[?25h\"]\n[46.886607, \"o\", \"\\u001b[?25l\\u001b[29;92H:\\u001b[1;62H\\u001b[29;92H\\u001b[K\\u001b[29;1H:\"]\n[46.886749, \"o\", \"\\u001b[?2004h\\u001b[?25h\"]\n[46.978696, \"o\", \"w\\u001b[?25l\\u001b[?25h\"]\n[47.035528, \"o\", \"q\\u001b[?25l\\u001b[?25h\"]\n[47.105184, \"o\", \"\\r\"]\n[47.105636, \"o\", \"\\u001b[?25l\\u001b[?1006l\\u001b[?1002l\\u001b[?2004l\\\"/tmp/brig-cmd-buffer-7541559781143048777yml\\\"\"]\n[47.106097, \"o\", \" 3L, 233C geschrieben\"]\n[47.108146, \"o\", \"\\r\\r\\r\\n\\u001b[?2004l\\u001b[?1l\\u001b>\\u001b[?25h\\u001b[?1049l\\u001b[23;0;0t\"]\n[47.117848, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[47.118393, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[47.118661, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[47.118889, \"o\", \"\\u001b[?1h\\u001b=\"]\n[47.119552, \"o\", \"\\u001b[?2004h\"]\n[47.797722, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[47.92976, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[48.010327, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[48.120604, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[48.19344, \"o\", \" \"]\n[48.40232, \"o\", \"n\"]\n[48.485116, \"o\", \"e\"]\n[48.582485, \"o\", \"t\"]\n[48.636681, \"o\", \" \"]\n[48.710048, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[48.858827, \"o\", \"\\b\\u001b[24mli\"]\n[48.950673, \"o\", \"s\"]\n[49.079882, \"o\", \"t\"]\n[49.184659, \"o\", \"\\u001b[?1l\\u001b>\"]\n[49.189848, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[49.192088, \"o\", \"\\u001b]2;brig net list\\u0007\\u001b]1;brig\\u0007\"]\n[49.350062, \"o\", \"NAME   ADDR       ROUNDTRIP  LASTSEEN           \\r\\nalice  QmUzLSHCK  0s         \\u001b[32m✔ Feb 28 16:54:59\\u001b[0m  \"]\n[49.350218, \"o\", \"\\r\\n\"]\n[49.351703, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[49.351808, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[49.351835, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[49.351916, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[49.352019, \"o\", \"\\u001b[?1h\\u001b=\"]\n[49.352226, \"o\", \"\\u001b[?2004h\"]\n[52.42199, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/asciinema/8_sync.json",
    "content": "{\"version\": 2, \"width\": 119, \"height\": 29, \"timestamp\": 1519834569, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}, \"title\": \"brig sync\"}\n[0.265949, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[0.266115, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[0.266291, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[0.266474, \"o\", \"\\u001b[?2004h\"]\n[0.900166, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[1.020164, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[1.114403, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[1.205482, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[1.285285, \"o\", \" \"]\n[1.371649, \"o\", \"n\"]\n[1.450098, \"o\", \"e\"]\n[1.551298, \"o\", \"t\"]\n[1.621169, \"o\", \" \"]\n[1.730383, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[1.866582, \"o\", \"\\b\\u001b[24mli\"]\n[1.963829, \"o\", \"s\"]\n[2.085691, \"o\", \"t\"]\n[2.256785, \"o\", \"\\u001b[?1l\\u001b>\"]\n[2.263479, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[2.266598, \"o\", \"\\u001b]2;brig net list\\u0007\"]\n[2.273975, \"o\", \"\\u001b]1;brig\\u0007\"]\n[2.428703, \"o\", \"NAME   ADDR       ROUNDTRIP  LASTSEEN           \\r\\nalice  QmUzLSHCK  1ms        \\u001b[32m✔ Feb 28 17:16:09\\u001b[0m  \\r\\n\"]\n[2.430672, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[2.430901, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[2.431006, \"o\", \"\\u001b[?1h\\u001b=\"]\n[2.431162, \"o\", \"\\u001b[?2004h\"]\n[4.013274, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[4.158376, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[4.26778, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[4.387579, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[4.505512, \"o\", \" \"]\n[4.725358, \"o\", \"d\"]\n[4.846141, \"o\", \"i\"]\n[4.919277, \"o\", \"f\"]\n[5.060555, \"o\", \"f\"]\n[5.119819, \"o\", \" \"]\n[5.235577, \"o\", \"\\u001b[4ma\\u001b[24m\"]\n[5.362352, \"o\", \"\\b\\u001b[24mal\"]\n[5.514241, \"o\", \"i\"]\n[5.602878, \"o\", \"c\"]\n[5.668968, \"o\", \"e\"]\n[5.933904, \"o\", \"\\u001b[?1l\\u001b>\"]\n[5.938148, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[5.94028, \"o\", \"\\u001b]2;brig diff alice\\u0007\\u001b]1;brig\\u0007\"]\n[6.125933, \"o\", \"\\u001b[35m•\\u001b[0m\\r\\n├\"]\n[6.126184, \"o\", \"──\\u001b[32m + greetings_from_alice\\u001b[0m\\r\\n├──\\u001b[31m - new-file\\u001b[0m\\r\\n├──\\u001b[36m README.md ⇄ README.md\\u001b[0m\\r\\n└──\\u001b[31m - sub\\u001b[0m\\r\\n   └──\\u001b[31m - music.mp3\\u001b[0m\\r\\n\\r\\n1 directory, 4 files\\r\\n\"]\n[6.127905, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[6.127995, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\"]\n[6.128022, \"o\", \"\\u001b]1;~/dev/brig/docs\\u0007\"]\n[6.128098, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[6.128194, \"o\", \"\\u001b[?1h\\u001b=\"]\n[6.128434, \"o\", \"\\u001b[?2004h\"]\n[7.746912, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[7.859958, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[7.979952, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[8.088853, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[8.174836, \"o\", \" \"]\n[8.975584, \"o\", \"s\"]\n[9.18399, \"o\", \"y\"]\n[9.343424, \"o\", \"n\"]\n[9.460907, \"o\", \"c\"]\n[9.550074, \"o\", \" \"]\n[9.684063, \"o\", \"\\u001b[4ma\\u001b[24m\"]\n[9.816329, \"o\", \"\\b\\u001b[24mal\"]\n[9.971113, \"o\", \"i\"]\n[10.076632, \"o\", \"c\"]\n[10.141374, \"o\", \"e\"]\n[10.418895, \"o\", \"\\u001b[?1l\\u001b>\"]\n[10.426116, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[10.428601, \"o\", \"\\u001b]2;brig sync alice\\u0007\\u001b]1;brig\\u0007\"]\n[10.855741, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[10.85592, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[10.856032, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[10.856137, \"o\", \"\\u001b[?1h\\u001b=\"]\n[10.856417, \"o\", \"\\u001b[?2004h\"]\n[12.084895, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[12.233591, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[12.318774, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[12.447816, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[12.534781, \"o\", \" \"]\n[13.184579, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[13.382836, \"o\", \"\\b\\u001b[4ml\\u001b[4mo\\u001b[24m\"]\n[13.521385, \"o\", \"\\b\\u001b[4mo\\u001b[4mg\\u001b[24m\"]\n[13.689946, \"o\", \"\\u001b[?1l\\u001b>\"]\n[13.691892, \"o\", \"\\u001b[?2004l\\b\\b\\b\\u001b[24ml\\u001b[24mo\\u001b[24mg\\r\\r\\n\"]\n[13.696934, \"o\", \"\\u001b]2;brig log\\u0007\"]\n[13.700079, \"o\", \"\\u001b]1;brig\\u0007\"]\n[13.88577, \"o\", \"\\u001b[32mSEfXUB9STL\\u001b[0m \\u001b[33mFeb 28 17:16:20\\u001b[0m \\u001b[31m•\\u001b[0m\\u001b[36m (curr)\\u001b[0m\\r\\n\"]\n[13.885898, \"o\", \"\\u001b[32mSEfXUEP9pV\\u001b[0m \\u001b[33mFeb 28 11:54:53\\u001b[0m Merge with alice\\u001b[36m (head)\\u001b[0m\\r\\n\\u001b[32mSEfXUBmLmQ\\u001b[0m \\u001b[33mFeb 28 10:59:36\\u001b[0m edited new-file\\u001b[36m\\u001b[0m\\r\\n\\u001b[32mSEfXUCjYxA\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added darth vader music\\u001b[36m\\u001b[0m\\r\\n\"]\n[13.885923, \"o\", \"\\u001b[32mSEfXUCU47p\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m Added initial README.md\\u001b[36m\\u001b[0m\\r\\n\"]\n[13.885971, \"o\", \"\\u001b[32mSEfXUCEaXL\\u001b[0m \\u001b[33mFeb 28 10:45:21\\u001b[0m initial commit\\u001b[36m (init)\\u001b[0m\\r\\n\"]\n[13.887705, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[13.887892, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[13.887972, \"o\", \"\\u001b[?1h\\u001b=\"]\n[13.888183, \"o\", \"\\u001b[?2004h\"]\n[16.401928, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[16.515067, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[16.621212, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[16.721487, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[17.42544, \"o\", \" \"]\n[17.566868, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[17.683992, \"o\", \"\\b\\u001b[24mls\"]\n[17.875134, \"o\", \"\\u001b[?1l\\u001b>\"]\n[17.879444, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[17.881636, \"o\", \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"]\n[18.095557, \"o\", \"SIZE   MODTIME          PATH                   PIN  \\r\\n458 B  Feb 28 10:59:50  \\u001b[37m/README.md\\u001b[0m             \"]\n[18.095745, \"o\", \" \\u001b[36m🖈\\u001b[0m   \\r\\n78 B   Feb 28 17:16:20  \\u001b[37m/greetings_from_alice\\u001b[0m   \\u001b[36m🖈\\u001b[0m   \\r\\n122 B  Feb 28 11:54:47  \\u001b[37m/new-file\\u001b[0m               \\u001b[36m🖈\\u001b[0m   \\r\\n\\u001b[33m26 MB\\u001b[0m  Feb 28 10:46:48  \\u001b[32m/sub\\u001b[0m                    \\u001b[36m🖈\\u001b[0m   \\r\\n\"]\n[18.097525, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[18.097646, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[18.097753, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \"]\n[18.097859, \"o\", \"\\u001b[K\"]\n[18.097977, \"o\", \"\\u001b[?1h\\u001b=\"]\n[18.098284, \"o\", \"\\u001b[?2004h\"]\n[19.043151, \"o\", \"\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[19.178064, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[19.265344, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[19.37568, \"o\", \"\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[19.45086, \"o\", \" \"]\n[19.677479, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[19.758973, \"o\", \"\\b\\u001b[24mca\"]\n[19.899614, \"o\", \"t\"]\n[19.969866, \"o\", \" \"]\n[22.205985, \"o\", \"\\u001b[9D\\u001b[39mb\\u001b[39mr\\u001b[39mi\\u001b[39mg\\u001b[5C\\u001b[7m/greetings_from_alice\\u001b[27m\"]\n[23.043074, \"o\", \"\\u001b[30D\\u001b[32mb\\u001b[32mr\\u001b[32mi\\u001b[32mg\\u001b[39m\\u001b[5C\\u001b[27m/\\u001b[27mg\\u001b[27mr\\u001b[27me\\u001b[27me\\u001b[27mt\\u001b[27mi\\u001b[27mn\\u001b[27mg\\u001b[27ms\\u001b[27m_\\u001b[27mf\\u001b[27mr\\u001b[27mo\\u001b[27mm\\u001b[27m_\\u001b[27ma\\u001b[27ml\\u001b[27mi\\u001b[27mc\\u001b[27me\"]\n[23.043568, \"o\", \"\\u001b[?1l\\u001b>\"]\n[23.050362, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[23.052589, \"o\", \"\\u001b]2;brig cat /greetings_from_alice\\u0007\\u001b]1;brig\\u0007\"]\n[23.223224, \"o\", \"This files comes from alice! Hi there!\\r\\n\"]\n[23.224979, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                      \\r \\r\"]\n[23.225084, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig/docs\\u0007\\u001b]1;~/dev/brig/docs\\u0007\"]\n[23.225227, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[23.225277, \"o\", \"\\u001b[?1h\\u001b=\"]\n[23.225477, \"o\", \"\\u001b[?2004h\"]\n[25.956984, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/asciinema/9_pin.json",
    "content": "{\"version\": 2, \"width\": 211, \"height\": 54, \"timestamp\": 1523915438, \"env\": {\"SHELL\": \"/bin/zsh\", \"TERM\": \"xterm-256color\"}, \"title\": \"brig pin\"}\n[0.30112, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[0.301615, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[0.3017, \"o\", \"\\u001b[?1h\\u001b=\"]\n[0.301905, \"o\", \"\\u001b[?2004h\"]\n[0.838565, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[0.951131, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[1.039016, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[1.132231, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[1.210328, \"o\", \" \"]\n[1.313066, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[1.400234, \"o\", \"\\b\\u001b[24mls\"]\n[1.71358, \"o\", \"\\u001b[?1l\\u001b>\"]\n[1.718911, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[1.72261, \"o\", \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"]\n[1.946186, \"o\", \"SIZE   MODTIME          USER   PATH                   PIN  \\r\\n649 B  Apr 16 19:04:01  \\u001b[32malice\\u001b[0m  \"]\n[1.946235, \"o\", \"\\u001b[37m/README.md\\u001b[0m              \\u001b[36m🖈\\u001b[0m   \\r\\n649 B  Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/README.md.conflict.0\\u001b[0m       \\r\\n16 B   Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/greetings_from_bob\\u001b[0m     \\u001b[36m🖈\\u001b[0m   \\r\\n0 B    Apr 16 19:06:32  \\u001b[32malice\\u001b[0m  \\u001b[37m/new-file\\u001b[0m               \\u001b[36m🖈\\u001b[0m   \\r\\n\"]\n[1.946464, \"o\", \"0 B    Apr 16 19:06:51  \\u001b[32malice\\u001b[0m  \\u001b[32m/sub\\u001b[0m                        \\r\\n\"]\n[1.947875, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[1.947981, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\"]\n[1.948001, \"o\", \"\\u001b]1;~/dev/brig\\u0007\"]\n[1.948121, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[1.948181, \"o\", \"\\u001b[?1h\\u001b=\"]\n[1.948385, \"o\", \"\\u001b[?2004h\"]\n[3.11197, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[3.241792, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[3.342311, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[3.437441, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[3.506383, \"o\", \" \"]\n[3.695927, \"o\", \"p\"]\n[3.862273, \"o\", \"i\"]\n[4.035358, \"o\", \"n\"]\n[4.113841, \"o\", \" \"]\n[4.243842, \"o\", \"\\u001b[4mn\\u001b[24m\"]\n[4.292819, \"o\", \"\\b\\u001b[4mn\\u001b[4me\\u001b[24m\"]\n[4.46478, \"o\", \"\\b\\b\\u001b[24mn\\u001b[24mew\"]\n[4.563586, \"o\", \"-\"]\n[4.66959, \"o\", \"f\"]\n[4.756648, \"o\", \"i\"]\n[4.912451, \"o\", \"l\"]\n[4.997947, \"o\", \"e\"]\n[5.161257, \"o\", \"\\u001b[?1l\\u001b>\"]\n[5.176626, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[5.17932, \"o\", \"\\u001b]2;brig pin new-file\\u0007\\u001b]1;brig\\u0007\"]\n[5.353915, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[5.354034, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\"]\n[5.354255, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\\u001b[?1h\\u001b=\"]\n[5.354405, \"o\", \"\\u001b[?2004h\"]\n[5.908839, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[6.051314, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[6.104361, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[6.224113, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[6.25579, \"o\", \" \"]\n[6.353504, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[6.443741, \"o\", \"\\b\\u001b[24mls\"]\n[6.647207, \"o\", \"\\u001b[?1l\\u001b>\"]\n[6.653213, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[6.65678, \"o\", \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"]\n[6.841293, \"o\", \"SIZE   MODTIME          USER   PATH                   PIN  \\r\\n649 B  Apr 16 19:04:01  \\u001b[32malice\\u001b[0m  \\u001b[37m/README.md\\u001b[0m        \"]\n[6.841343, \"o\", \"      \\u001b[36m🖈\\u001b[0m   \\r\\n649 B  Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/README.md.conflict.0\\u001b[0m       \\r\\n16 B   Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/greetings_from_bob\\u001b[0m     \\u001b[36m🖈\\u001b[0m   \\r\\n0 B    Apr 16 19:06:32  \\u001b[32malice\\u001b[0m  \\u001b[37m/new-file\\u001b[0m               \\u001b[35m🖈\\u001b[0m   \\r\\n\"]\n[6.841357, \"o\", \"0 B    Apr 16 19:06:51  \\u001b[32malice\\u001b[0m  \\u001b[32m/sub\\u001b[0m                \"]\n[6.842937, \"o\", \"        \\r\\n\"]\n[6.843057, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[6.843133, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\"]\n[6.843185, \"o\", \"\\u001b]1;~/dev/brig\\u0007\"]\n[6.843235, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[6.843335, \"o\", \"\\u001b[?1h\\u001b=\"]\n[6.843541, \"o\", \"\\u001b[?2004h\"]\n[8.067965, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[8.257929, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[8.386808, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[8.490726, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[8.574755, \"o\", \" \"]\n[9.357392, \"o\", \"p\"]\n[9.579199, \"o\", \"i\"]\n[9.77668, \"o\", \"n\"]\n[10.012016, \"o\", \" \"]\n[10.622499, \"o\", \"\\u001b[4mr\\u001b[24m\"]\n[10.728788, \"o\", \"\\b\\u001b[24mrm\"]\n[10.801391, \"o\", \" \"]\n[11.527164, \"o\", \"g\"]\n[11.750003, \"o\", \"r\"]\n[11.845988, \"o\", \"e\"]\n[12.906214, \"o\", \"e\"]\n[13.082861, \"o\", \"t\"]\n[13.201274, \"o\", \"i\"]\n[13.364602, \"o\", \"n\"]\n[13.417331, \"o\", \"g\"]\n[13.61018, \"o\", \"s\"]\n[13.814561, \"o\", \"_\"]\n[13.915141, \"o\", \"f\"]\n[14.06849, \"o\", \"r\"]\n[14.138404, \"o\", \"o\"]\n[14.289591, \"o\", \"m\"]\n[14.508238, \"o\", \"_\"]\n[14.687799, \"o\", \"b\"]\n[14.758077, \"o\", \"o\"]\n[14.86678, \"o\", \"b\"]\n[15.159533, \"o\", \"\\u001b[?1l\\u001b>\"]\n[15.195429, \"o\", \"\\u001b[?2004l\"]\n[15.196049, \"o\", \"\\r\\r\\n\"]\n[15.200924, \"o\", \"\\u001b]2;brig pin rm greetings_from_bob\\u0007\"]\n[15.202633, \"o\", \"\\u001b]1;brig\\u0007\"]\n[15.417428, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[15.417661, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[15.417747, \"o\", \"\\u001b[?1h\\u001b=\"]\n[15.417951, \"o\", \"\\u001b[?2004h\"]\n[15.962116, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[16.083125, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[16.170519, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[16.260992, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[16.298779, \"o\", \" \"]\n[16.420998, \"o\", \"\\u001b[4ml\\u001b[24m\"]\n[16.508748, \"o\", \"\\b\\u001b[24mls\"]\n[16.636075, \"o\", \"\\u001b[?1l\\u001b>\"]\n[16.64118, \"o\", \"\\u001b[?2004l\"]\n[16.641957, \"o\", \"\\r\\r\\n\"]\n[16.646004, \"o\", \"\\u001b]2;brig ls\\u0007\\u001b]1;brig\\u0007\"]\n[16.831002, \"o\", \"SIZE   MODTIME          USER   PATH                   PIN  \\r\\n649 B  Apr 16 19:04:01  \\u001b[32malice\\u001b[0m\"]\n[16.831261, \"o\", \"  \\u001b[37m/README.md\\u001b[0m              \\u001b[36m🖈\\u001b[0m   \\r\\n649 B  Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/README.md.conflict.0\\u001b[0m       \\r\\n16 B   Apr 16 23:04:58  \\u001b[32mbob\\u001b[0m    \\u001b[37m/greetings_from_bob\\u001b[0m         \\r\\n0 B    Apr 16 19:06:32  \\u001b[32malice\\u001b[0m  \\u001b[37m/new-file\\u001b[0m               \\u001b[35m🖈\\u001b[0m   \\r\\n0 B    Apr 16 19:06:51  \\u001b[32malice\\u001b[0m  \\u001b[32m/sub\\u001b[0m                        \\r\\n\"]\n[16.832584, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[16.832682, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\"]\n[16.832708, \"o\", \"\\u001b]1;~/dev/brig\\u0007\"]\n[16.832772, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[16.832864, \"o\", \"\\u001b[?1h\\u001b=\"]\n[16.833068, \"o\", \"\\u001b[?2004h\"]\n[18.59478, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[18.715649, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[18.852998, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[18.967583, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[19.0639, \"o\", \" \"]\n[20.2069, \"o\", \"g\"]\n[20.395469, \"o\", \"c\"]\n[20.53824, \"o\", \" \"]\n[21.301441, \"o\", \"\\u001b[?1l\\u001b>\"]\n[21.307104, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[21.311895, \"o\", \"\\u001b]2;brig gc\\u0007\\u001b]1;brig\\u0007\"]\n[21.502859, \"o\", \"CONTENT                                         HASH        OWNER  \\r\\n\\u001b[37mQmUVb1XejZP6ENNzLgSmtobfMMALXc2GNGDTq3Q2ZXKyHN\\u001b[0m  \\u001b[31mQmUVb1XejZ\\u001b[0m  \\u001b[36malice\\u001b[0m  \\r\\n\\u001b[37mQmUVb1XejZP6ENNzLgSmtobfMMALXc2GNGDTq3Q2ZXKyHN\\u001b[0m  \"]\n[21.502908, \"o\", \"\\u001b[31mQmUVb1XejZ\\u001b[0m  \\u001b[36mbob\\u001b[0m    \\r\\n\"]\n[21.504292, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[21.504399, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\"]\n[21.504475, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[21.504573, \"o\", \"\\u001b[?1h\\u001b=\"]\n[21.50493, \"o\", \"\\u001b[?2004h\"]\n[23.327619, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[23.472565, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[23.606627, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[23.688013, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[23.772934, \"o\", \" \"]\n[23.901943, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[23.967451, \"o\", \"\\b\\u001b[4mc\\u001b[4ma\\u001b[24m\"]\n[24.107524, \"o\", \"\\b\\u001b[4ma\\u001b[4mt\\u001b[24m\"]\n[24.209351, \"o\", \"\\b\\b\\b\\u001b[24mc\\u001b[24ma\\u001b[24mt \"]\n[24.355964, \"o\", \"g\"]\n[24.518603, \"o\", \"r\"]\n[24.58132, \"o\", \"e\"]\n[24.758268, \"o\", \"e\"]\n[24.962315, \"o\", \"t\"]\n[25.059056, \"o\", \"i\"]\n[25.211339, \"o\", \"n\"]\n[25.25484, \"o\", \"g\"]\n[25.426998, \"o\", \"s\"]\n[25.750634, \"o\", \"_\"]\n[25.874119, \"o\", \"f\"]\n[26.013535, \"o\", \"r\"]\n[26.089798, \"o\", \"o\"]\n[26.251522, \"o\", \"m\"]\n[26.465614, \"o\", \"_\"]\n[26.608815, \"o\", \"b\"]\n[26.682756, \"o\", \"o\"]\n[26.768963, \"o\", \"b\"]\n[26.902155, \"o\", \"\\u001b[?1l\\u001b>\"]\n[26.908719, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[26.911227, \"o\", \"\\u001b]2;brig cat greetings_from_bob\\u0007\\u001b]1;brig\\u0007\"]\n[27.10136, \"o\", \"Hello from Bob!\"]\n[27.101676, \"o\", \"\\r\\n\"]\n[27.106601, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[27.106983, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[27.107104, \"o\", \"\\u001b[?1h\\u001b=\"]\n[27.107364, \"o\", \"\\u001b[?2004h\"]\n[28.818037, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[29.724845, \"o\", \"\\b\\u001b[24m\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mo\\u001b[0m\\u001b[39m\"]\n[29.89817, \"o\", \"\\b\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mo\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[30.07675, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31m-\\u001b[0m\\u001b[39m\"]\n[30.309077, \"o\", \"\\b\\u001b[1m\\u001b[31m-\\u001b[1m\\u001b[31mb\\u001b[0m\\u001b[39m\"]\n[30.402236, \"o\", \"\\b\\u001b[1m\\u001b[31mb\\u001b[1m\\u001b[31mr\\u001b[0m\\u001b[39m\"]\n[30.492736, \"o\", \"\\b\\u001b[1m\\u001b[31mr\\u001b[1m\\u001b[31mi\\u001b[0m\\u001b[39m\"]\n[30.582505, \"o\", \"\\b\\b\\b\\b\\b\\b\\b\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mo\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32m-\\u001b[0m\\u001b[32mb\\u001b[0m\\u001b[32mr\\u001b[0m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[30.652536, \"o\", \" \"]\n[31.687412, \"o\", \"\\u001b[4md\\u001b[24m\"]\n[31.740827, \"o\", \"\\b\\u001b[24mda\"]\n[31.855845, \"o\", \"e\"]\n[31.950756, \"o\", \"m\"]\n[32.118484, \"o\", \"o\"]\n[32.282845, \"o\", \"n\"]\n[32.383776, \"o\", \" \"]\n[32.448042, \"o\", \"q\"]\n[32.519802, \"o\", \"u\"]\n[32.703519, \"o\", \"i\"]\n[32.71348, \"o\", \"o\"]\n[32.794122, \"o\", \"t\"]\n[33.108008, \"o\", \"\\b \\b\"]\n[33.244054, \"o\", \"\\b \\b\"]\n[33.439531, \"o\", \"t\"]\n[33.591015, \"o\", \"\\u001b[?1l\\u001b>\"]\n[33.598721, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[33.601482, \"o\", \"\\u001b]2;brig -p 6667 daemon quit\\u0007\\u001b]1;bob-brig\\u0007\"]\n[33.791989, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[33.792127, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\"]\n[33.792189, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[33.79226, \"o\", \"\\u001b[?1h\\u001b=\"]\n[33.792466, \"o\", \"\\u001b[?2004h\"]\n[35.253852, \"o\", \"\\u001b[32mbob-brig\\u001b[39m daemon quit\"]\n[35.462572, \"o\", \"\\u001b[20D\\u001b[32mb\\u001b[32mr\\u001b[32mi\\u001b[32mg\\u001b[39m\\u001b[39m \\u001b[39mc\\u001b[39ma\\u001b[39mt greetings_from_bob\"]\n[35.946018, \"o\", \"\\u001b[22Dgc                    \\u001b[19D\"]\n[36.768454, \"o\", \"\\u001b[?1l\\u001b>\"]\n[36.776677, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[36.778738, \"o\", \"\\u001b]2;brig gc\\u0007\\u001b]1;brig\\u0007\"]\n[36.95629, \"o\", \"CONTENT                                         HASH        OWNER  \\r\\n\\u001b[37mQmUVb1XejZP6ENNzLgSmtobfMMALXc2GNGDTq3Q2ZXKyHN\\u001b[0m  \\u001b[31mQmUVb1XejZ\\u001b[0m  \\u001b[36malice\\u001b[0m  \\r\\n\\u001b[37mQmUVb1XejZP6ENNzLgSmtobfMMALXc2GNGDTq3Q2ZXKyHN\\u001b[0m\"]\n[36.956342, \"o\", \"  \\u001b[31mQmUVb1XejZ\\u001b[0m  \\u001b[36mbob\\u001b[0m    \\r\\n\"]\n[36.957825, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[36.957921, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\"]\n[36.957939, \"o\", \"\\u001b]1;~/dev/brig\\u0007\"]\n[36.95801, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[36.958121, \"o\", \"\\u001b[?1h\\u001b=\"]\n[36.958343, \"o\", \"\\u001b[?2004h\"]\n[37.86989, \"o\", \"\\u001b[4mb\\u001b[24m\"]\n[37.975293, \"o\", \"\\b\\u001b[4mb\\u001b[4mr\\u001b[24m\"]\n[38.06847, \"o\", \"\\b\\b\\u001b[4mb\\u001b[4mr\\u001b[4mi\\u001b[24m\"]\n[38.16544, \"o\", \"\\b\\b\\b\\u001b[24m\\u001b[32mb\\u001b[24m\\u001b[32mr\\u001b[24m\\u001b[32mi\\u001b[32mg\\u001b[39m\"]\n[38.581496, \"o\", \" \"]\n[38.986283, \"o\", \"gc \"]\n[39.402656, \"o\", \"\\b\\b\\b  \\b\\b\"]\n[39.492823, \"o\", \"\\u001b[4mc\\u001b[24m\"]\n[39.56276, \"o\", \"\\b\\u001b[4mc\\u001b[4ma\\u001b[24m\"]\n[39.735627, \"o\", \"\\b\\u001b[4ma\\u001b[4mt\\u001b[24m\"]\n[39.823745, \"o\", \"\\b\\b\\b\\u001b[24mc\\u001b[24ma\\u001b[24mt \"]\n[39.936504, \"o\", \"greetings_from_bob\"]\n[40.746588, \"o\", \"\\u001b[?1l\\u001b>\"]\n[40.755815, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[40.759163, \"o\", \"\\u001b]2;brig cat greetings_from_bob\\u0007\\u001b]1;brig\\u0007\"]\n[42.622192, \"o\", \"\\r\\n\"]\n[42.782638, \"o\", \"\\r\\n\"]\n[42.952416, \"o\", \"\\r\\n\"]\n[43.167917, \"o\", \"\\r\\n\"]\n[43.649776, \"o\", \"^C\"]\n[43.659072, \"o\", \"\\r\\n\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \"]\n[43.660243, \"o\", \"\\u001b[K\"]\n[43.661344, \"o\", \"\\u001b[?1h\\u001b=\"]\n[43.668262, \"o\", \"\\u001b[?2004h\"]\n[44.189165, \"o\", \"\\u001b[1m\\u001b[30m#\\u001b[0m\\u001b[39m\"]\n[44.301126, \"o\", \"\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[44.585404, \"o\", \"\\b\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mN\\u001b[0m\\u001b[39m\"]\n[45.196173, \"o\", \"\\b\\u001b[1m\\u001b[30mN\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[46.24694, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[46.33817, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30mh\\u001b[0m\\u001b[39m\"]\n[46.434192, \"o\", \"\\b\\u001b[1m\\u001b[30mh\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[46.447753, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[46.594595, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[46.707113, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30mg\\u001b[0m\\u001b[39m\"]\n[46.809953, \"o\", \"\\b\\u001b[1m\\u001b[30mg\\u001b[1m\\u001b[30m.\\u001b[0m\\u001b[39m\"]\n[46.927586, \"o\", \"\\b\\u001b[1m\\u001b[30m.\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[47.11099, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mT\\u001b[0m\\u001b[39m\"]\n[47.211523, \"o\", \"\\b\\u001b[1m\\u001b[30mT\\u001b[1m\\u001b[30mh\\u001b[0m\\u001b[39m\"]\n[47.279516, \"o\", \"\\b\\u001b[1m\\u001b[30mh\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[47.357467, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[47.428878, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mf\\u001b[0m\\u001b[39m\"]\n[47.533471, \"o\", \"\\b\\u001b[1m\\u001b[30mf\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[47.680787, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30ml\\u001b[0m\\u001b[39m\"]\n[47.727994, \"o\", \"\\b\\u001b[1m\\u001b[30ml\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[47.825724, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[47.910826, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mw\\u001b[0m\\u001b[39m\"]\n[47.969872, \"o\", \"\\b\\u001b[1m\\u001b[30mw\\u001b[1m\\u001b[30ma\\u001b[0m\\u001b[39m\"]\n[48.07492, \"o\", \"\\b\\u001b[1m\\u001b[30ma\\u001b[1m\\u001b[30ms\\u001b[0m\\u001b[39m\"]\n[48.119166, \"o\", \"\\b\\u001b[1m\\u001b[30ms\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[48.245168, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mc\\u001b[0m\\u001b[39m\"]\n[48.345909, \"o\", \"\\b\\u001b[1m\\u001b[30mc\\u001b[1m\\u001b[30ml\\u001b[0m\\u001b[39m\"]\n[48.45448, \"o\", \"\\b\\u001b[1m\\u001b[30ml\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[48.525043, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30ma\\u001b[0m\\u001b[39m\"]\n[48.598672, \"o\", \"\\b\\u001b[1m\\u001b[30ma\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[48.773518, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[48.854201, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30md\\u001b[0m\\u001b[39m\"]\n[48.916214, \"o\", \"\\b\\u001b[1m\\u001b[30md\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[49.069317, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mu\\u001b[0m\\u001b[39m\"]\n[49.479573, \"o\", \"\\b\\u001b[1m\\u001b[30mu\\u001b[1m\\u001b[30mp\\u001b[0m\\u001b[39m\"]\n[49.608735, \"o\", \"\\b\\u001b[1m\\u001b[30mp\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[49.895406, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[49.996553, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30mh\\u001b[0m\\u001b[39m\"]\n[50.392309, \"o\", \"\\b\\b\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[50.526275, \"o\", \"\\b\\b\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[50.712234, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mb\\u001b[0m\\u001b[39m\"]\n[50.808566, \"o\", \"\\b\\u001b[1m\\u001b[30mb\\u001b[1m\\u001b[30my\\u001b[0m\\u001b[39m\"]\n[50.884775, \"o\", \"\\b\\u001b[1m\\u001b[30my\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[51.053816, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mg\\u001b[0m\\u001b[39m\"]\n[51.263847, \"o\", \"\\b\\u001b[1m\\u001b[30mg\\u001b[1m\\u001b[30mc\\u001b[0m\\u001b[39m\"]\n[51.453123, \"o\", \"\\b\\u001b[1m\\u001b[30mc\\u001b[1m\\u001b[30m.\\u001b[0m\\u001b[39m\"]\n[51.773268, \"o\", \"\\u001b[?1l\\u001b>\"]\n[51.776168, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[51.779073, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[51.780013, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\"]\n[51.780404, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[51.780798, \"o\", \"\\u001b[?1h\\u001b=\"]\n[51.782864, \"o\", \"\\u001b[?2004h\"]\n[52.500575, \"o\", \"\\u001b[1m\\u001b[30m#\\u001b[0m\\u001b[39m\"]\n[52.615768, \"o\", \"\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[54.416078, \"o\", \"\\b\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mA\\u001b[0m\\u001b[39m\"]\n[54.61427, \"o\", \"\\b\\u001b[1m\\u001b[30mA\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[54.697741, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30md\\u001b[0m\\u001b[39m\"]\n[54.773046, \"o\", \"\\b\\u001b[1m\\u001b[30md\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[54.930814, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30ms\\u001b[0m\\u001b[39m\"]\n[55.041847, \"o\", \"\\b\\u001b[1m\\u001b[30ms\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[55.208351, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[55.244913, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30mc\\u001b[0m\\u001b[39m\"]\n[55.306743, \"o\", \"\\b\\u001b[1m\\u001b[30mc\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[55.347446, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[55.496123, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mw\\u001b[0m\\u001b[39m\"]\n[55.647841, \"o\", \"\\b\\u001b[1m\\u001b[30mw\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[55.718209, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[55.863195, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mq\\u001b[0m\\u001b[39m\"]\n[55.95291, \"o\", \"\\b\\u001b[1m\\u001b[30mq\\u001b[1m\\u001b[30mu\\u001b[0m\\u001b[39m\"]\n[56.111735, \"o\", \"\\b\\u001b[1m\\u001b[30mu\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[56.195887, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[56.265323, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[56.448391, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[56.56379, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30mh\\u001b[0m\\u001b[39m\"]\n[56.612261, \"o\", \"\\b\\u001b[1m\\u001b[30mh\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[56.699109, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[57.362277, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[57.522546, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[57.587003, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30ms\\u001b[0m\\u001b[39m\"]\n[57.715618, \"o\", \"\\b\\u001b[1m\\u001b[30ms\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[57.83796, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30ma\\u001b[0m\\u001b[39m\"]\n[57.915041, \"o\", \"\\b\\u001b[1m\\u001b[30ma\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[57.98336, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30mc\\u001b[0m\\u001b[39m\"]\n[58.052785, \"o\", \"\\b\\u001b[1m\\u001b[30mc\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[58.129937, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[58.237867, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[58.367743, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mf\\u001b[0m\\u001b[39m\"]\n[58.45754, \"o\", \"\\b\\u001b[1m\\u001b[30mf\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[58.589279, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mb\\u001b[0m\\u001b[39m\"]\n[58.673972, \"o\", \"\\b\\u001b[1m\\u001b[30mb\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[58.769003, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mb\\u001b[0m\\u001b[39m\"]\n[58.898781, \"o\", \"\\b\\u001b[1m\\u001b[30mb\\u001b[1m\\u001b[30m,\\u001b[0m\\u001b[39m\"]\n[58.994803, \"o\", \"\\b\\u001b[1m\\u001b[30m,\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[59.157135, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mw\\u001b[0m\\u001b[39m\"]\n[59.332243, \"o\", \"\\b\\u001b[1m\\u001b[30mw\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[59.415563, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[59.492388, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mc\\u001b[0m\\u001b[39m\"]\n[59.563192, \"o\", \"\\b\\u001b[1m\\u001b[30mc\\u001b[1m\\u001b[30ma\\u001b[0m\\u001b[39m\"]\n[59.669657, \"o\", \"\\b\\u001b[1m\\u001b[30ma\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[59.788831, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[60.30644, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30m'\\u001b[0m\\u001b[39m\"]\n[60.893462, \"o\", \"\\b\\b\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[61.020872, \"o\", \"\\b\\b\\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[61.203948, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30m'\\u001b[0m\\u001b[39m\"]\n[61.323915, \"o\", \"\\b\\u001b[1m\\u001b[30m'\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[61.506352, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[61.700781, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mr\\u001b[0m\\u001b[39m\"]\n[61.780133, \"o\", \"\\b\\u001b[1m\\u001b[30mr\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[61.925858, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[62.05761, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30mr\\u001b[0m\\u001b[39m\"]\n[62.198445, \"o\", \"\\b\\u001b[1m\\u001b[30mr\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[62.30557, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[62.443085, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30mv\\u001b[0m\\u001b[39m\"]\n[62.51056, \"o\", \"\\b\\u001b[1m\\u001b[30mv\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[62.596494, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[62.92443, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[63.095964, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[63.199589, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[63.296012, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mf\\u001b[0m\\u001b[39m\"]\n[63.435393, \"o\", \"\\b\\u001b[1m\\u001b[30mf\\u001b[1m\\u001b[30mr\\u001b[0m\\u001b[39m\"]\n[63.478495, \"o\", \"\\b\\u001b[1m\\u001b[30mr\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[63.635312, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mm\\u001b[0m\\u001b[39m\"]\n[63.73524, \"o\", \"\\b\\u001b[1m\\u001b[30mm\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[64.245442, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mn\\u001b[0m\\u001b[39m\"]\n[64.323737, \"o\", \"\\b\\u001b[1m\\u001b[30mn\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[64.42844, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30mt\\u001b[0m\\u001b[39m\"]\n[64.573704, \"o\", \"\\b\\u001b[1m\\u001b[30mt\\u001b[1m\\u001b[30mw\\u001b[0m\\u001b[39m\"]\n[64.641164, \"o\", \"\\b\\u001b[1m\\u001b[30mw\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[64.775938, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mr\\u001b[0m\\u001b[39m\"]\n[64.824792, \"o\", \"\\b\\u001b[1m\\u001b[30mr\\u001b[1m\\u001b[30mk\\u001b[0m\\u001b[39m\"]\n[65.100005, \"o\", \"\\b\\u001b[1m\\u001b[30mk\\u001b[1m\\u001b[30m.\\u001b[0m\\u001b[39m\"]\n[65.324098, \"o\", \"\\u001b[?1l\\u001b>\"]\n[65.328114, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[65.330857, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[65.331904, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[65.332884, \"o\", \"\\u001b[?1h\\u001b=\"]\n[65.33457, \"o\", \"\\u001b[?2004h\"]\n[66.221421, \"o\", \"\\u001b[1m\\u001b[30m#\\u001b[0m\\u001b[39m\"]\n[66.339489, \"o\", \"\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[66.443802, \"o\", \"\\b\\b\\u001b[1m\\u001b[30m#\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30ml\\u001b[0m\\u001b[39m\"]\n[66.602202, \"o\", \"\\b\\u001b[1m\\u001b[30ml\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[67.462451, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30mk\\u001b[0m\\u001b[39m\"]\n[67.57586, \"o\", \"\\b\\u001b[1m\\u001b[30mk\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[67.659472, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[67.920771, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mw\\u001b[0m\\u001b[39m\"]\n[68.070952, \"o\", \"\\b\\u001b[1m\\u001b[30mw\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[68.15706, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[68.239042, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30md\\u001b[0m\\u001b[39m\"]\n[68.330446, \"o\", \"\\b\\u001b[1m\\u001b[30md\\u001b[1m\\u001b[30mi\\u001b[0m\\u001b[39m\"]\n[68.423091, \"o\", \"\\b\\u001b[1m\\u001b[30mi\\u001b[1m\\u001b[30md\\u001b[0m\\u001b[39m\"]\n[68.538495, \"o\", \"\\b\\u001b[1m\\u001b[30md\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[68.656006, \"o\", \"\\b\\u001b[1m\\u001b[30m \\u001b[1m\\u001b[30mb\\u001b[0m\\u001b[39m\"]\n[68.740476, \"o\", \"\\b\\u001b[1m\\u001b[30mb\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[68.869553, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30mf\\u001b[0m\\u001b[39m\"]\n[69.035796, \"o\", \"\\b\\u001b[1m\\u001b[30mf\\u001b[1m\\u001b[30mo\\u001b[0m\\u001b[39m\"]\n[69.169299, \"o\", \"\\b\\u001b[1m\\u001b[30mo\\u001b[1m\\u001b[30mr\\u001b[0m\\u001b[39m\"]\n[69.244378, \"o\", \"\\b\\u001b[1m\\u001b[30mr\\u001b[1m\\u001b[30me\\u001b[0m\\u001b[39m\"]\n[69.311449, \"o\", \"\\b\\u001b[1m\\u001b[30me\\u001b[1m\\u001b[30m.\\u001b[0m\\u001b[39m\"]\n[69.504344, \"o\", \"\\b\\u001b[1m\\u001b[30m.\\u001b[1m\\u001b[30m \\u001b[0m\\u001b[39m\"]\n[69.947017, \"o\", \"\\b\\b\\u001b[1m\\u001b[30m.\\u001b[0m\\u001b[39m\\u001b[0m\\u001b[39m \\b\"]\n[70.356133, \"o\", \"\\u001b[?1l\\u001b>\"]\n[70.358766, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n[70.361407, \"o\", \"\\u001b[1m\\u001b[7m%\\u001b[27m\\u001b[1m\\u001b[0m                                                                                                                                                                                                                  \\r \\r\"]\n[70.361888, \"o\", \"\\u001b]2;sahib@werkbank: ~/dev/brig\\u0007\\u001b]1;~/dev/brig\\u0007\"]\n[70.362171, \"o\", \"\\r\\u001b[0m\\u001b[27m\\u001b[24m\\u001b[Jλ \\u001b[K\"]\n[70.362785, \"o\", \"\\u001b[?1h\\u001b=\"]\n[70.365401, \"o\", \"\\u001b[?2004h\"]\n[71.101157, \"o\", \"\\u001b[?2004l\\r\\r\\n\"]\n"
  },
  {
    "path": "docs/conf.py",
    "content": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# brig documentation build configuration file, created by\n# sphinx-quickstart on Sun Dec 24 00:44:21 2017.\n#\n# This file is execfile()d with the current directory set to its\n# containing dir.\n#\n# Note that not all possible configuration values are present in this\n# autogenerated file.\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\n#\nimport os\nimport subprocess\n# import sys\n# sys.path.insert(0, os.path.abspath('.'))\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n#\n# needs_sphinx = '1.0'\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\nextensions = [\n    'sphinx.ext.mathjax',\n    'sphinx.ext.todo',\n    'sphinx.ext.ifconfig',\n    'sphinx.ext.githubpages',\n    'sphinxcontrib.fulltoc',\n]\n\n\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\n\n# The suffix(es) of source filenames.\n# You can specify multiple suffix as a list of string:\n#\n# source_suffix = ['.rst', '.md']\nsource_suffix = '.rst'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'brig'\ncopyright = '2016-2020, Chris Pahl'\nauthor = 'Chris Pahl'\n\n# The version info for the project you're documenting, acts as replacement for\n# |version| and |release|, also used in various other places throughout the\n# built documents.\n\n# The short X.Y version.\ndef get_version_from_git():\n    try:\n        proc = subprocess.run(\n                [\"git\", \"tag\", \"--sort\", \"v:refname\"],\n                capture_output=True,\n                text=True,\n                check=True,\n        )\n\n        tag_list = [tag.strip() for tag in proc.stdout.split('\\n') if tag]\n        return tag_list[-1].strip()\n    except Exception as e:\n        print(\"-- note: could not read version from git: {}\".format(e))\n        return 'v0.0.0'\n\n\n# The full version, including alpha/beta/rc tags.\nrelease = get_version_from_git()\nversion = release\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\n#\n# This is also used if you do content translation via gettext catalogs.\n# Usually you set \"language\" from the command line for these cases.\nlanguage = None\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This patterns also effect to html_static_path and html_extra_path\nexclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'talk/*.rst']\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\n\n# If true, `todo` and `todoList` produce output, else they produce nothing.\ntodo_include_todos = True\n\n# -- Options for HTML output ----------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\n# html_theme = 'sphinx_rtd_theme'\n\ntry:\n    import sphinx_bootstrap_theme\n\n    html_theme = 'bootstrap'\n    html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()\nexcept ImportError:\n    print(\"-- no »sphinx_bootstrap_theme« is installed.\")\n    print(\"-- install it via requirements.txt, if you want it.\")\n    print(\"-- falling back to default theme.\")\n    html_theme = 'sphinx_rtd_theme'\n\n# Theme options are theme-specific and customize the look and feel of a theme\n# further.  For a list of options available for each theme, see the\n# documentation.\nhtml_theme_options = {\n    # Navigation bar title. (Default: ``project`` value)\n    'navbar_title': \"brig\",\n\n    # Tab name for entire site. (Default: \"Site\")\n    'navbar_site_name': \"Table of Contents\",\n\n    # A list of tuples containing pages or urls to link to.\n    # Valid tuples should be in the following forms:\n    #    (name, page)                 # a link to a page\n    #    (name, \"/aa/bb\", 1)          # a link to an arbitrary relative url\n    #    (name, \"http://example.com\", True) # arbitrary absolute url\n    # Note the \"1\" or \"True\" value above as the third argument to indicate\n    # an arbitrary url.\n    'navbar_links': [\n        (\"GitHub\", \"https://github.com/sahib/brig\", True),\n        (\"Build Status\", \"https://travis-ci.org/sahib/brig\", True),\n    ],\n\n    # Render the next and previous page links in navbar. (Default: true)\n    'navbar_sidebarrel': False,\n\n    # Render the current pages TOC in the navbar. (Default: true)\n    'navbar_pagenav': False,\n\n    # Tab name for the current pages TOC. (Default: \"Page\")\n    'navbar_pagenav_name': \"Page\",\n\n    # Global TOC depth for \"site\" navbar tab. (Default: 1)\n    # Switching to -1 shows all levels.\n    'globaltoc_depth': 2,\n\n    # Include hidden TOCs in Site navbar?\n    #\n    # Note: If this is \"false\", you cannot have mixed ``:hidden:`` and\n    # non-hidden ``toctree`` directives in the same page, or else the build\n    # will break.\n    #\n    # Values: \"true\" (default) or \"false\"\n    'globaltoc_includehidden': \"true\",\n\n    # HTML navbar class (Default: \"navbar\") to attach to <div> element.\n    # For black navbar, do \"navbar navbar-inverse\"\n    'navbar_class': \"navbar\",\n\n    # Fix navigation bar to top of page?\n    # Values: \"true\" (default) or \"false\"\n    'navbar_fixed_top': \"true\",\n\n    # Location of link to source.\n    # Options are \"nav\" (default), \"footer\" or anything else to exclude.\n    'source_link_position': \"footer\",\n\n    # Bootswatch (http://bootswatch.com/) theme.\n    #\n    # Options are nothing (default) or the name of a valid theme\n    # such as \"cosmo\" or \"sandstone\".\n    #\n    # The set of valid themes depend on the version of Bootstrap\n    # that's used (the next config option).\n    #\n    # Currently, the supported themes are:\n    # - Bootstrap 2: https://bootswatch.com/2\n    # - Bootstrap 3: https://bootswatch.com/3\n    'bootswatch_theme': \"flatly\",\n\n    # Choose Bootstrap version.\n    # Values: \"3\" (default) or \"2\" (in quotes)\n    'bootstrap_version': \"3\",\n}\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named \"default.css\" will overwrite the builtin \"default.css\".\nhtml_static_path = ['_static']\n\n# Custom sidebar templates, must be a dictionary that maps document names\n# to template names.\n#\n# This is required for the alabaster theme\n# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars\nhtml_sidebars = {\n    'tutorial/*': [\n        'localtoc.html',\n    ],\n    'quickstart*': [\n        'localtoc.html',\n    ],\n    'installation*': [\n        'localtoc.html',\n    ],\n    'faq*': [\n        'localtoc.html',\n    ],\n    'roadmap*': [\n        'localtoc.html',\n    ],\n    'feature*': [\n        'localtoc.html',\n    ],\n    'contributing*': [\n        'localtoc.html',\n    ]\n}\n\n\n# -- Options for HTMLHelp output ------------------------------------------\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = 'brigdoc'\n\n# # -- Options for LaTeX output ---------------------------------------------\n# \n# latex_elements = {\n#     # The paper size ('letterpaper' or 'a4paper').\n#     #\n#     # 'papersize': 'letterpaper',\n# \n#     # The font size ('10pt', '11pt' or '12pt').\n#     #\n#     # 'pointsize': '10pt',\n# \n#     # Additional stuff for the LaTeX preamble.\n#     #\n#     # 'preamble': '',\n# \n#     # Latex figure (float) alignment\n#     #\n#     # 'figure_align': 'htbp',\n# }\n# \n# # Grouping the document tree into LaTeX files. List of tuples\n# # (source start file, target name, title,\n# #  author, documentclass [howto, manual, or own class]).\n# latex_documents = [\n#     (master_doc, 'brig.tex', 'brig Documentation',\n#      'Chris Pahl', 'manual'),\n# ]\n# \n# \n# # -- Options for manual page output ---------------------------------------\n# \n# # One entry per manual page. List of tuples\n# # (source start file, name, description, authors, manual section).\n# man_pages = [\n#     (master_doc, 'brig', 'brig Documentation',\n#      [author], 1)\n# ]\n# \n# \n# # -- Options for Texinfo output -------------------------------------------\n# \n# # Grouping the document tree into Texinfo files. List of tuples\n# # (source start file, target name, title, author,\n# #  dir menu entry, description, category)\n# texinfo_documents = [\n#     (master_doc, 'brig', 'brig Documentation',\n#      author, 'brig', 'One line description of project.',\n#      'Miscellaneous'),\n# ]\n\n\ndef setup(app):\n    # app.add_stylesheet('css/custom.css')\n    app.add_css_file('css/custom.css')\n"
  },
  {
    "path": "docs/contributing.rst",
    "content": "How to contribute\n=================\n\nSomething we would be especially interested in are *experience reports:* We\nwant you to try out the current state of the software and write down the\nfollowing:\n\n- Was it easy to get »brig« running?\n- Was it easy to understand its concepts?\n- What is your intended usecase for it? Could you make it work?\n- If no, what's missing in your opinion to make the usecase possible?\n- Anything else that you feel free to share.\n\nThose reports should be posted as GitHub issue. They will help us to develop\nbrig further in the \"bigger picture\".\n\nAlso, the developer of this software is currently doing all of this is in his\nfree time. If you're willing to offer any financial support feel free to\ncontact me.\n\nWhat to improve\n---------------\n\nWe try to open a ticket for anything that can be worked right now\n\nThe following general improvements are of course also greatly appreciated:\n\n- Bug reports & fixes.\n- Documentation improvements.\n- Writing more and better tests.\n- Porting to other platforms.\n\nWorkflow\n--------\n\nPlease adhere to the general `GitHub workflow_`, i.e. fork the repository,\nmake your changes and open a pull request that can be discussed.\n\n.. _`Github workflow`: https://help.github.com/articles/about-pull-requests\n\nHere's a small checklist before publishing your pull request:\n\n* Did you ``go fmt`` all code?\n* Does your code style fit with the rest of the code base?\n* Did you run ``task lint``?\n* Did you write tests if necessary?\n* Did you consider if changes to the docs are necessary?\n* Did you check if you need something to CHANGELOG.md?\n\nThank you for your contribution.\n"
  },
  {
    "path": "docs/faq.rst",
    "content": "Frequently Asked Questions\n==========================\n\nGeneral questions\n-----------------\n\n1. Why is the software named ``brig``?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIt is named after the ship with the same name.\nWhen we named it, we thought it's a good name for the following reason:\n\n- A ``brig`` is a very lightweight and fast ship.\n- It was commonly used to transport small amount of goods.\n- A ship operates on streams (sorry 😛)\n- The name is short and somewhat similar to ``git``.\n- It gives you a few nautical metaphors and a logo for free.\n- Words like »bright«, »brigade« and many others start with it\n\nTruth be told, only half of the two name givers thought it's a good name, but\nI still kinda like it.\n\n2. Who develops it?\n~~~~~~~~~~~~~~~~~~~\n\nAlthough this documentation sometimes speaks of »we«, the only developer is\ncurrently `Chris Pahl <https://github.com/sahib>`_. He writes it entirely in\nhis free time, mostly during commuting with the train.\n\nTechnical questions\n-------------------\n\n1. How is the encryption working?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nA stream is chunked into equal sized blocks that are encrypted in GCM mode\nusing AES-256. Additionally ChaCha20 (with Poly1305) is currently supported but\nit might be removed soon. The overall file format is somewhat similar to NaCL\nsecretboxes, but it is more tailored to supporting efficient seeking.\n\nThe current default is ``ChaCha20``, although machines with the ``aes-ni``\ninstruction set might yield significant higher throughput. The source of the\n`encryption layer can be found here <https://github.com/sahib/brig/tree/master/catfs/mio/encrypt>`_.\nHere's a basic overview over the format:\n\n.. image:: _static/format-encryption.svg\n    :width: 66%\n    :align: center\n\nThe key of each file is currently being derived from the content hash of the\nfile (See also `Convergent Encryption\n<https://en.wikipedia.org/wiki/Convergent_encryption>`_). If the content\nchanges later, the key does not change since the key is only generated once\nduring the first staging of the file.\n\nPlease refer to the implementation for all implementation details for now. No\nsecurity audits of the implementation have been done yet, therefore I'd\nappreciate every pair of eyes. Especially while everything is still in flux and\nwon't harm any users.\n\n2. Is there compression implemented?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYes. The compression is being done before encryption and is only enabled if the\nfile looks compression-worthy. The »worthiness« is determined by looking at its\nheader to guess a mime-type. Depending on the mime-type either ``snappy`` or\n``lz4`` is selected or no compression is added at all.\n\nThe source of the `compression layer can be found here <https://github.com/sahib/brig/tree/master/catfs/mio/compress>`_. Here's\na basic overview over the format:\n\n.. image:: _static/format-compression.svg\n    :width: 66%\n    :align: center\n\n3. What hash algorithms are used?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTwo algorithms are used:\n\n* ``SHA256`` is used by ``IPFS`` for every backend hash.\n* ``SHA3-256`` is used as general purpose hash for everything ``brig`` internal\n  (Content and Tree hash).\n\nEach hash is encoded as `multihash\n<https://github.com/multiformats/multihash>`_. For output purposes this\nrepresentation is encoded additionally in ``base58``. Therefore, all hashes\nthat start with ``W1`` are ``sha3-256`` hashes while the ones starting with\n``Qm`` are ``sha256`` hashes. Keep in mind that ``base58`` is case-sensitive.\n\n4. What kind of deduplication is currently used?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIt is currently only possible to deduplicate between individual versions of a file.\nAnd there also only the portion before the modification.\n\n``IPFS`` implements deduplication, but it is circumvented by encrypting blocks\nbefore giving them over to the backend. Implementing a more proper and informed\ndeduplication is one of the long term goals, which require more thorough\ninteraction with ``IPFS``. It is also possible to do some basic deduplication\npurely on ``brig`` side since we have more info on the file than ``IPFS`` has.\n\n5. How fast is the I/O when using ``brig``?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nHere are some rather outdated graphs where you can get a rough feeling how fast\nit can be. There are a few rules of thumb with mostly obvious content:\n\n* It it goes over the network, it's the network speed plus a smaller constant overhead.\n* If it comes over FUSE, it is quite a bit slower than over ``brig cat``.\n* If you do not use compression, writing and reading will be faster.\n\nThe graphs below only measure in-memory performance compared to a ``dd`` like\nspeed (see the »baseline« line).\n\n.. image:: _static/movie_read.svg\n    :width: 66%\n\n.. image:: _static/movie_write.svg\n    :width: 66%\n\nYour mileage may vary and you better do your own benchmarks for now.\n\n.. todo::\n\n    Explain/Update those graphs.\n"
  },
  {
    "path": "docs/features.rst",
    "content": ".. _features-page:\n\nFeatures\n========\n\n.. note::\n\n    The featuers below are actually available, but before version 1.0.0 we\n    won't give any guarantees regarding stability or edge cases. Your mileage\n    may vary currently.\n\n\nEncrypted and compression built-in\n----------------------------------\n\n* All data is encrypted during storage and transport using AES-256 in GCM mode.\n* Optional compression algorithm is selected based on the file type.\n* Hints can be given to change the default algorithm for certain or all files.\n* Keys are stored as part of the metadata during synchronisation.\n\nEasy Version control\n--------------------\n\n* Simplified ``git``-like version control only limited by your storage space.\n* Synchronization algorithm that can handle `moved files\n  <https://git.wiki.kernel.org/index.php/Git_FAQ#Why_does_Git_not_.22track.22_renames.3F>`_\n  and `empty directories\n  <https://git.wiki.kernel.org/index.php/Git_FAQ#Can_I_add_empty_directories.3F>`_\n  and files.\n* Auto-updating facility that will sync on any change.\n* Configurable conflict handling.\n\nSeparation between data and metadata\n------------------------------------\n\n* Your data does not need to be stored on the device you are currently using.\n* Pin the data you want to use to your local storage. Every repository acts as\n  cache of all the files you have access to.\n* Keep a range of versions cached locally and delete older versions if they\n  exceed a quota.\n\nTruly Distributed\n-----------------\n\n* No central server at all. All infrastructure is based on IPFS.\n* Still, central architectures can be build with ``brig``.\n* Simple user identification and discovery.\n* You do not store data you don't want to store. Pin what you need,\n  fetch the rest from the network on request.\n\nFUSE filesystem\n---------------\n\n* FUSE filesystem mirrors your data to a local directory.\n* Allows your normal tools to work seamlessly with brig.\n* Mounts can be persisted to stay where they are.\n* Not high performance, but fast enough for daily usage.\n\nGateway and Web UI\n------------------\n\n* Gateway to share normal HTTP/S links with other users.\n* Simple UI provided to execute the typical tasks without the need of a command line.\n* User and right management included.\n\n.. image:: _static/gateway-files.png\n    :alt: Gateway files view\n    :width: 66%\n\n100% Open-Source\n----------------\n\n* Completely free software under the terms of the ``AGPL``.\n* Development driven by the community.\n* Written in Go and Elm.\n\n---------\n\nComparison with other tools\n===========================\n\nWhen showing ``brig`` (or any other software in general) to someone the first\nquestion is usually something like *»But isn't there already X?«* and sometimes\neven *»Why don't you just contribute to other projects?«*. This section tries\nto find an answer to both questions. The answer will obviously be biased, so\ntake it with a fair grain of salt.\n\nYes, there is other software in this world. But this is always a matter of\ntrade offs the author of each individual package has chosen. One application\nmight not run on your platform, the next might not be secure enough for your\nneeds, the other one is proprietary or has something else that does not fit\nyour liking. I won't go into an exhaustive list of competitors, but more\nhighlight the things that are special in ``brig`` and cannot be done easily in\nother systems.\n\nI said »competitors« earlier, which is a silly term, since I don't see this as\na competition. For me it's more about giving the user a choice and improving by\nadapting good ideas from other implementations. Let's list a few of those\n»competitors« to give you an impression about the place of ``brig`` in the\nworld:\n\n* `Syncthing <https://syncthing.net>`_: Probably conceptually the nearest\n  relative. Also a peer-to-peer based filesystem, but with its own protocol.\n  Focus seems to be on ease-of-use and general high quality usability. Does not\n  have strong versioning. Excellent tool and battle tested.\n* `Resilio <https://www.resilio.com>`_: Proprietary solution based on BitTorrent. Seems to focus on\n  performance and enterprise level resilience. Being proprietary is a show stopper for me.\n* `Perkeep <https://github.com/perkeep/perkeep>`_: Not focused on files, but on\n  storing personal »objects«. Would be probably more interesting as a backend\n  for ``brig``.\n* `Upspin <https://upspin.io>`_: A global name system that glues together\n  filesystems and other data storage. Could be also a backend for ``brig`` and\n  is not directly targeted to end users.\n* `Bazil <https://bazil.org>`_: Basically ``brig`` minus IPFS. While apparently\n  discontinued it seems to have a great deal of common features with ``brig``.\n  The same author also maintains the FUSE bindings of FUSE and his writeups\n  helped me writing the FUSE implementation of ``brig``. Thank you very much\n  for your work `@tv42 <https://github.com/tv42>`_!\n* `Git LFS <https://git-lfs.github.com>`_: The large file storage extension to ``git``.\n  Similar to ``brig``'s pinning in the sense that large files are replaced with links\n  that will be fetched from a LFS server.\n* `git annex <https://git-annex.branchable.com>`_: Extension to ``git`` that\n  tracks filenames and metadata instead of file content. Has a great deal of\n  powerful features but can be a bit intimidating to the end users since it does not\n  seem to focus much on usability. Features like the number of minimum copies a file\n  must have before you can delete it are still on ``brig``'s roadmap.\n\nThere are probably more. Some of these inspired quite a bit how ``brig`` looks\ntoday.  So what are the unique features of ``brig`` that you would not get\neasily with other tools?\n\n* **Pinning:** The fact that not all data needs to be on the same machine as the\n  ``brig`` daemon opens up interesting possibilities. Also the ability of repinning\n  is something I did not see in other tools.\n* **Strong versioning of big files:** High level versioning that is comparable\n  to ``git``, but simplified and meant for whole-file version control (and not\n  for individual diffs).\n\nOf course there are drawbacks. Choosing ``brig`` currently means using software\nthat is not in widespread use. It did not go through a security audit. It is by\nfar not as efficient as other tools in all use cases. But many of the current hurdles\nare solvable and it's just a matter of time.\n\nThe best advice I can give you: Try it out and see if it fits your use case. If\nit doesn't I'm happy to hear from you and wish you all the best with another\ntool.\n"
  },
  {
    "path": "docs/index.rst",
    "content": "``brig`` - decentralized & secure synchronization\n=================================================\n\n.. image:: _static/logo.png\n   :width: 50%\n   :align: center\n\nWhat is ``brig``?\n-----------------\n\n``brig`` is a distributed & secure file synchronization tool with version\ncontrol. It is based on IPFS, written in Go and will feel familiar to\n``git`` users. Think of it as a swiss army knife for file synchronization or as\na peer to peer alternative to *Dropbox.*\n\n**Key feature highlights:**\n\n* Encryption of data during storage and transport, plus optional compression on the fly.\n* Simplified ``git`` version control only limited by your storage space.\n* Synchronization algorithm that can handle moved files and empty directories and files.\n* Your data does not need to be stored on the device you are currently using.\n* FUSE filesystem that feels like a normal sync folder.\n* No central server at all. Still, central architectures can be build with ``brig``.\n* Gateway and Web based UI to share normal HTTP/S links with other users.\n* Auto-updating facility that will sync on any change.\n* Completely free software under the terms of the ``AGPL``.\n* ...\n\nPlease refer to the :ref:`features-page` for more details. If you want a visual\nhint how ``brig`` looks on the commandline, refer to the :ref:`quickstart`.\n\nWhat is ``brig`` not?\n---------------------\n\n``brig`` tries to focus on being up conceptually simple, by hiding a lot of\ncomplicated details regarding storage and security. Therefore the end result is\nhopefully easy and pleasant to use, while being secure by default. Since\n``brig`` is a »general purpose« tool for file synchronization it of course\ncannot excel in all areas. It won't replace high performance network file\nsystems and should not be used when you are in need of high throughput - at\nleast not at the moment.\n\nI have questions!\n-----------------\n\nPlease ask in one of those places:\n\n* `GitHub Issue Tracker <https://github.com/sahib/brig/issues>`_: All things like bug reports or feature requests.\n* The matrix chat room ``#brig`` on ``matrix.org``. Just `pick a client <https://matrix.org/docs/projects/try-matrix-now.html>`_ and join the room or click `this link <https://riot.im/app/#/room/#brig:matrix.org>`_ directly.\n\nCurrent Status\n--------------\n\n**This software is in active development and probably not suited for production\nuse yet!** But to get it in a stable state, it is **essential** that people\nplay around with it. Consider this is as an open beta phase. Also don't take\nanything granted for now, everything might change wildly before version ``1.0.0``.\n\nWith that being said, ``brig`` is near a somewhat usable state where you can play around\nwith it quite well. All aforementioned features do work, besides possibly being\na little harder to use than ideally possible. A lot of work is currently going into\nstabilizing the current feature set.\n\nAt this moment ``brig`` is **only tested on Linux**. Porting and testing\nefforts are welcome. Other platforms should be able to compile, but there are\ncurrently not guarantees that it will work.\n\nTable of Contents\n-----------------\n\n.. toctree::\n   :maxdepth: 2\n   :caption: Installation:\n\n   installation.rst\n\n.. toctree::\n   :maxdepth: 2\n   :caption: User manual\n\n   tutorial/intro.rst\n   tutorial/init.rst\n   tutorial/coreutils.rst\n   tutorial/mounts.rst\n   tutorial/remotes.rst\n   tutorial/vcs.rst\n   tutorial/pinning.rst\n   tutorial/gateway.rst\n   tutorial/config.rst\n\n.. toctree::\n   :maxdepth: 2\n   :caption: Additional resources\n\n   quickstart.rst\n   faq.rst\n   features.rst\n\n.. toctree::\n   :maxdepth: 2\n   :caption: Development\n\n   roadmap.rst\n   contributing.rst\n"
  },
  {
    "path": "docs/installation.rst",
    "content": "Installation\n------------\n\nWe provide pre-compiled binaries on every release. ``brig`` comes to your computer\nas a single binary that includes everything you need. See here for the release list:\n\n   https://github.com/sahib/brig/releases\n\nJust download the binary for you platform, unpack it and put in somewhere in your\n``$PATH`` (for example ``/usr/local/bin``).\n\nIf you trust us well enough, you can also use this online installer to download\nthe latest stable ``brig`` binary to your current working directory:\n\n.. code-block:: bash\n\n   $ bash <(curl -s https://raw.githubusercontent.com/sahib/brig/master/scripts/install.sh)\n\nSpecific distributions\n----------------------\n\nSome distributions can install ``brig`` directly via their package manager.\nThose are currently:\n\n* Arch Linux (`PKGBUILD <https://aur.archlinux.org/packages/brig-git>`_; builds ``develop`` branch)\n\nCompiling yourself\n------------------\n\nIf you use a platform we don't provide binaries for or if you want to use\na development version, you're going have to compile ``brig`` yourself. But\ndon't worry that's quite easy. We do not have many dependencies. You only need\ntwo things: The programming language *Go* and the version control system\n``git``.\n\nStep 0: Installing Go\n~~~~~~~~~~~~~~~~~~~~~\n\nThis is only required if you don't already have ``Go`` installed.\nPlease consult your package manager for that.\n\n.. warning::\n\n    ``brig`` only works with a newer version of Go (>= 1.10).\n    The version in your package manager might be too outdated,\n    if you're on e.g. Debian. Make sure it's rather up to date!\n    If it's too old you can always use tools like ``gvm`` to get a more recent version.\n\n\nIf you did not do that, you gonna need to install ``Go``. `Refere here\n<https://golang.org/doc/install>`_ for possible ways of doing so. Remember to\nset the ``GOPATH`` environment variable to a place where you'd like to have\nyour ``.go`` sources being placed. For example you can put this in your\n``.bashrc``:\n\n.. code:: bash\n\n    # Place the go sources in a \"go\" directory inside your home directory:\n    export GOPATH=~/go\n    # This is needed for the go toolchain:\n    export GOBIN=\"$GOPATH/bin\"\n    # Make sure that our shell finds the go binaries:\n    export PATH=\"$GOPATH/bin:$PATH\"\n\nBy choosing to have the ``GOPATH`` in your home directory you're not required\nto have ``sudo`` permissions later on. You also need to have ``git``\n`installed <https://git-scm.com/download/linux>`_ for the next step.\n\nStep 1: Compile & Install ``brig``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis step requires setting ``GOPATH``, as discussed in the previous section.\n\n.. code:: bash\n\n    $ go get -d -v -u github.com/sahib/brig  # Download the sources.\n    $ cd $GOPATH/src/github.com/sahib/brig   # Go to the source directory.\n    $ ./scripts/install-task.sh              # Install the build system.\n    $ task                                   # Build the binary.\n\nExecution might take a few minutes though because all of ``brig`` is being\ncompiled during the ``task`` step - this also includes the download of all\ndependencies.\n\nIf you cannot or want to install ``git`` for some reason, you can `manually\ndownload a zip <https://github.com/sahib/brig/archive/master.zip>`_ from GitHub\nand place its contents into ``$GOPATH/src/github.com/sahib/brig``. In this\ncase, you can skip the ``go get`` step.\n\nStep 2: Test if the installation is working\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf everything worked, there will be a ``brig`` binary in ``$GOBIN``.\n\n.. code:: bash\n\n    $ brig help\n\nIf above command prints out documentation on how to use the program's\ncommandline switches then the installation worked. Happy file shipping!\n\nSetting up IPFS\n---------------\n\n``brig`` requires a running *IPFS* daemon. While ``brig`` has ways to do install a IPFS daemon for you,\nit is preferable to install it via your package manager or via the official way:\n\n   https://docs.ipfs.io/introduction/install\n\n-----\n\nContinue with :ref:`getting_started` or directly go to :ref:`quickstart` if you\njust need a refresh on the details.\n"
  },
  {
    "path": "docs/make.bat",
    "content": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sphinx-build\r\n)\r\nset SOURCEDIR=.\r\nset BUILDDIR=_build\r\nset SPHINXPROJ=brig\r\n\r\nif \"%1\" == \"\" goto help\r\n\r\n%SPHINXBUILD% >NUL 2>NUL\r\nif errorlevel 9009 (\r\n\techo.\r\n\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx\r\n\techo.installed, then set the SPHINXBUILD environment variable to point\r\n\techo.to the full path of the 'sphinx-build' executable. Alternatively you\r\n\techo.may add the Sphinx directory to PATH.\r\n\techo.\r\n\techo.If you don't have Sphinx installed, grab it from\r\n\techo.http://sphinx-doc.org/\r\n\texit /b 1\r\n)\r\n\r\n%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%\r\ngoto end\r\n\r\n:help\r\n%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%\r\n\r\n:end\r\npopd\r\n"
  },
  {
    "path": "docs/quickstart.rst",
    "content": ".. warning::\n\n    The examples below are slightly outdated and will be revisited at some point.\n    All commands should still work, but the output might be a little different now.\n    Please refer to the :ref:`getting_started` guide for a more up-to-date version.\n\n.. _quickstart:\n\nQuickstart\n==========\n\nThis does not really explain the philosophy behind ``brig``, but gives a good\nidea what the tool is able to do and how it's supposed to be used. Users\nfamiliar to ``git`` should be able to grok most of the commands intuitively.\n\n1. Init\n-------\n\nBefore you can do anything with ``brig`` you need to create a repository.\nDuring this step, also your online identity will be created. So make sure to\nuse a sane username (``sahib@wald.de``) and resource (``laptop``).\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/163713.js\" id=\"asciicast-163713\" async></script>\n\n\nAs an alternative to entering your password manually, you can use an existing password manager:\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/212204 id=\"asciicast-212204\" async></script>\n\n2. Adding files\n---------------\n\nBefore synchronizing them, you need to *stage* them. The files will be stored\nencrypted (and possibly compressed) in blobs on your hard disks.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/j5yCj6H6fPUldbJDQz9nDhUc4.js\" id=\"asciicast-j5yCj6H6fPUldbJDQz9nDhUc4\" async></script>\n\n\n3. Coreutils\n------------\n\n``brig`` provides implementations of most file related core utils like ``mv``,\n``cp``, ``rm``, ``mkdir`` or ``cat``. Handling of files should thus feel\nfamiliar for users that know the command line.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/swIw29Qkml0A44H1MgKQvOQ8L.js\" id=\"asciicast-swIw29Qkml0A44H1MgKQvOQ8L\" async></script>\n\n4. Mounting\n-----------\n\nFor daily use and for use with other tools you might prefer a folder that\ncontains the file you gave to ``brig``. This can be done via the built-in FUSE\nlayer.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/166178.js\" id=\"asciicast-166178\" async></script>\n\n.. note::\n\n    Some built-in commands provided by brig are faster.\n    ``brig cp`` for example only copies metadata, while the real ``cp`` will copy the whole file.\n\nIf you wish to always have the mount when ``brig`` is running, you should look\ninto :ref:`permanent-mounts`.\n\n5. Commits\n----------\n\nIn it's heart, ``brig`` is very similar to ``git`` and also supports versioning\nvia commits. In contrast to ``git`` however, there are no branches and you\ncan't go back in history -- you can only bring the history back up front.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/166180.js\" id=\"asciicast-166180\" async></script>\n\n6. History\n----------\n\nEach file (and directory) maintains a history of the operations that were done\nto this file.\n\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/166181.js\" id=\"asciicast-166181\" async></script>\n\n7. Discovery & Remotes\n----------------------\n\nIn order to sync with your buddies, you need to add their *fingerprint* as remotes.\nHow do you get their fingerprint? In the best case by using a separate side channel\nlike telephone, encrypted email or elsewhise. But ``brig`` can assist finding remotes\nvia the ``brig net locate`` command.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/166182.js\" id=\"asciicast-166182\" async></script>\n\n.. note::\n\n    You should **always** verify the fingerprint is really the one of your buddy.\n    ``brig`` cannot do this for you.\n\n8. Sync & Diff\n--------------\n\nOnce both parties have setup each other as remotes, we can easily view and sync\nwith their data.\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/166183.js\" id=\"asciicast-166183\" async></script>\n\n9. Pinning\n----------\n\nBy default ``brig`` will only keep the most recent files. All other files will\nbe marked to deletions after a certain timeframe. This is done via *Pins*. If\na file is pinned, it won't get deleted. If you don't need a file in local\nstorage, you can also unpin it. On the next access ``brig`` will try to load it\nagain from a peer that provides it (if possible).\n\n.. raw:: html\n\n    <script src=\"https://asciinema.org/a/176590.js\" id=\"asciicast-176590\" async></script>\n"
  },
  {
    "path": "docs/requirements.txt",
    "content": "sphinx_bootstrap_theme==0.6.5\nsphinxcontrib-fulltoc==1.2.0\n"
  },
  {
    "path": "docs/roadmap.rst",
    "content": "Roadmap\n=======\n\nThis document lists the improvements that can be done to ``brig`` and (if\npossible) when. All features below are not guaranteed to be implemented and,\ncan be seen more as possible improvements that might change during\nimplementation. Also it should be noted that each future is only an idea and\nnot a fleshed ou implementation plan.\n\nBug fixes and minor changes in handling are not included since this document is\nonly for »big picture« ideas. Also excluded are stability/performance\nimprovements, documentation and testing work, since this is part of the\n»normal« development.\n\nCurrent state\n-------------\n\nThe first real release (0.3.0 »Galloping Galapagos«) was released on the 7th December 2018.\nIt includes all basic features and is working somewhat. The original goals were met:\n\n- Stable command line interface.\n- Git-like version control\n- User discovery\n- User authentication\n- Fuse filesystem\n\nFor day-to-day use there are quite some other features that make brig easier to use\nand capable of forming a Dropbox-like backend out of several nodes.\n\n**There will be no stability guarantees before version 1.0.0.**\n\nFuture\n------\n\nThose features should be considered after releasing the first prototype.\nA certain amount of first user input should be collected to see if the\ndirection we're going is valid.\n\n ..  role:: strikethrough\n\n* **Gateway:** :strikethrough:`Provide a built-in (and optional) http server, that can »bridge«\n  between the internal ipfs network and people that use a regular browser.\n  Instances that run on a public server can then provide hyperlinks of files to\n  non-brig users.` *Done as of version 0.3.0.*\n\n* **Config profiles:** Make it easy to configure brig in a way to serve either as thin client\n  or as archival node. Archival nodes can be used in cases where a brig network spans over computers\n  that lie in a different timezone. The archival node would accumulate all changes and repositories\n  would see it as some sort of \"blessed repository\" which holds the latest and greatest state.\n\n* **Automatic syncing:** :strikethrough:`Automatically publish changes after a short amount of time.\n  If an instance modified some file other nodes are notified and can decide to\n  pull the change.` *Done as of version 0.4.0.*\n\n* **Intelligent pinning strategies:** :strikethrough:`By default only the most recent layer of\n  files are being kept. This is very basic and can't be configured currently.\n  Some users might only want to have only the last few used files pinned, archive\n  instances might want to pin almost everything up to a certain depth.` *Done as of version 0.4.0 (see repinning)*\n\n* *Improve read/write performance:* Big files are currently hold in memory\n  completely by the fuse layer (when doing a flush). This is suboptimal and needs\n  more intelligent handling and out-of-memory caching of writes. Also, the\n  network performance is often very low and ridden by network errors and\n  timeouts. This can be tackled since IPFS v0.4.19 supports an --offline switch to\n  error out early if a file is not available locally.\n\n* *More automated authentication scheme:* E-Mail-like usernames could be used to\n  verify a user without exchanging fingerprints. This could be done by e.g.\n  sending an activation code to the email of an user (assuming the brig name is\n  the same as his email), which the brig daemon on his side could read and send back.\n\n* *Format and read fingerprint from QR-Code:* Fingerprints are hard to read and\n  not so easy to transfer and verify. QR-Code could be a solution here, since we\n  could easily snap a picture with a phone camera or print it on a business card.\n\nFar Future\n----------\n\nThose features are also important, but require some more in-depth research or\nmore work and are not the highest priority currently.\n\n* **Port to other platforms:** Especially Windows and eventually Android. This\n  relies on external help, since I'm neither capable of porting it, nor really\n  a fan of both operating systems.\n\n* **Implement alternative to FUSE:** FUSE currently only works on Linux and is\n  therefore not usable outside of that. Windows has something similar (called\n  Dokan_). Alternatively we could also go on by implementing a WebDAV server,\n  which can also be mounted.\n\n* **Implement the encryption in IPFS:** Having the encryption/compression layer\n  in brig effectively disables the usage of deduplication. This is unfortunate\n  and could be mitigated by either implementing deduplication ourselves or moving\n  to a block based encryption scheme.\n\n.. _dokan: https://github.com/keybase/kbfs/tree/master/dokan\n\n* **Ensure N-Copies:** It should be possible to define a minimum amount of copies\n  a file has to have on different peers. This could be maybe incorporated into\n  the pinning concept. If a user wants to remove a file, brig should warn him if\n  he would violate the min-copies rule. This idea is shamelessly stolen from\n  ``git-annex``.\n"
  },
  {
    "path": "docs/talk/Makefile",
    "content": "all:\n\thovercraft -N -s index.rst\n"
  },
  {
    "path": "docs/talk/demo.rst",
    "content": "0. Preparation\n==============\n\n- Windows: Chrome Incognito (slides, presenter console), Monitor Settings, Terminal (docker, ipfs, hovercraft), Terminal (empty)\n\n-----\n\n- setxkbmap us && xmodmap ~/.xmodmaprc\n- check sound.\n- Check that docker is running.\n- Check that no other brig instance is up.\n- Check: /tmp/{repo,mount} is empty.\n- Do a \"bob-brig ls and bob-brig rmt ls\" to do some pre-caching.\n- Source autocompletion.\n\n1. Init\n=======\n\nUsage is very close to ``git``.\n\n.. code-block:: bash\n\n    $ mkdir repo && cd repo\n    # Create a new repository in here:\n    # Command started einen daemon im Hintergrund!\n    $ brig init alice@wonderland.de/laptop\n    # Anschaut was brig so angestellt hat:\n    $ ls\n    # Dann schauen wir mal ob man die Datei ausgeben kann:\n    $ brig cat README.md\n\n2. Adding files\n===============\n\n.. code-block:: bash\n\n    $ brig stage ~/music.mp3\n    $ brig ls\n    # Pfadnamen, virtueller root.\n    $ brig tree\n    $ brig cat music.mp3 | mpv -\n\n\n3. Coreutils\n============\n\n.. code-block:: bash\n\n    $ brig mkdir sub\n    $ brig cp music.mp3 sub\n    $ brig tree\n\n    # ähnlich zu `stat` unter linux:\n    $ brig info README.md\n    $ brig edti README.md\n    $ brig edit README.md\n    # Hash hat sich nach Edit-Vorgang geändert:\n    $ brig info README.md\n\n    # Man kann sich ansehen was für daten ipfs dann speichert:\n    $ ipfs cat <hash>\n    -> garbled bullshit.\n\n4. Mounting\n===========\n\n.. code-block:: bash\n\n    $ mkdir /tmp/mount\n    $ ls /tmp/mount  # Empty.\n    $ brig mount /tmp/mount\n    # Ta-da, alle dateien die man sonst so hat sind auch hier vorhanden:\n    $ nautilus /tmp/mount\n    # Man kann ganz normal dateien editieren:\n    $ vi /tmp/mount/new-file\n    $ brig ls\n    # Noch nicht sehr performant, aber sowas geht schon:\n    $ cp ~/rrd.mkv /tmp/mount\n    $ mpv /tmp/mount/rrd.mkv\n\n5. Commits\n==========\n\n.. code-block:: bash\n\n    $ brig log\n    $ brig diff\n    $ brig commit -m 'Added darth vader'\n    $ brig log\n    $ brig edit README.md\n    $ brig mv sub/music.mp3 sub/else.mp3\n    $ brig diff   # Should print mergeable and moved file.\n\n6. History\n==========\n\n(optional)\n\n.. code-block:: bash\n\n    # Etwas anders als git: kein diff an sich:\n    $ brig history new-file\n    $ brig edit new-file\n    $ brig commit -m 'edited new-file'\n    $ brig reset HEAD^ new-file\n    $ brig cat new-file\n\n7. Discovery & Remotes\n======================\n\n.. code-block:: bash\n\n    # bob läuft in einem container auf dem gleichen computer:\n    $ bob-brig ls\n    $ brig whoami\n    # Erst ausführen, dauert etwas:\n    $ brig net locate bob\n    $ brig remote add $(bob-brig whoami -f)\n    $ bob-brig remote add $(brig whoami -f)\n    $ brig remote ls\n    $ brig remote edit\n\n8 Sync & Diff\n=============\n\n.. code-block:: bash\n\n    $ brig remote ls\n    $ brig diff bob\n    $ brig sync bob\n    $ brig log\n    $ brig ls\n\n9 Pinning\n=========\n\n.. code-block:: bash\n\n    $ brig pin rm <path-of-bob> # geht.\n    $ brig gc\n    $ brig cat <path>           # geht.\n    $ <close bob docker>\n    $ brig gc\n    $ brig cat <path>\n    ...blocks...\n\n10 Misc\n=======\n\n.. code-block:: bash\n\n    $ brig <tab>\n    $ brig help stage\n    $ brig docs\n    $ brig bug\n"
  },
  {
    "path": "docs/talk/index.rst",
    "content": ":title: brig\n:author: Chris Pahl\n:css: style.css\n:data-transition-duration: 350\n:data-perspective: 5000\n\n.. role:: white-bg\n.. role:: title-logo\n.. role:: strike\n.. role:: donald\n.. role:: github\n.. role:: www\n.. role:: rtd\n.. role:: underline\n.. role:: small\n\n\n----\n\n.. image:: images/logo.png\n\n:title-logo:`»brig«`\n\n:white-bg:`Ein Werkzeug zur sicheren und verteilten`\n:white-bg:`Dateisynchronisation`\n\n.. note::\n\n    - Meine schwer versehrten Damen und Herren\n    - Dies ist eine Projektvorstellung.\n    - Ihr werdet heute zu Versuchskaninchen ausgebildet.\n\n    - \"Unverständlichste Folie\"\n    - Begriffserklärung des Titels.\n        - Unterscheidung: Synchronisieren / Austauschen\n        - \"sicher\" ist schwammig\n        - \"dezentral\" heißt ohne zentralen Server (wie git)\n    - Name: Zweimaster, wendig, leichtgewichtig, verteilt Datenströme.\n\n----\n\nUm was geht's?\n==============\n\n|\n\n* Einführung\n* Das Problem\n* Demo\n* Was hab ich da grad gesehen?\n* Hilfe!\n* :strike:`Applaus!` Fragen?\n\n.. note::\n\n    - Demo nimmt ca. 50% Zeit ein, wird also nicht so trocken.\n    - Viel Terminal, wenig Bling-Bling. Also sehr technisch orientiert.\n    - Viel Stoff für 45 minuten, muss schnell reden, ihr werdet am Ende abgefragt.\n\n    Fragen bitte erst gegen Schluss stellen, bei der Demo könnt ihr aber gern\n    was fragen wenn ihr was nicht versteht oder seht.\n\n----\n\nWer ist'n das?\n==============\n\n.. note::\n\n    - Aus dieser Hochschule.\n    - Vollzeit München.\n    - Open Source Entwickler (rmlint)\n    - Wer mehr über mich wissen will, darf gern nachher fragen.\n    - Wer ich bin, ist ja eigentlich unwichtig…\n      Darum geht's in dem Vortrag auch nicht.\n\n|\n\n**Chris Pahl.**\n\n|\n|\n\n:small:`Wer mehr über mich wissen will:`\n\n:small:`https://sahib.github.io`\n\n----\n\nEs war einmal…\n==============\n\n|\n\n.. note::\n\n    - Dann mal rein ins Thema...\n    - Umfrage: Wer benutzt...\n\n        * Dropbox oder andere Cloud Storage Anbieter (OneDrive, Google Drive)\n        * ownCloud oder nextCloud\n        * Syncthing, git-annex, resilio\n        * Was selbst gebasteltetes?\n        * git\n\n    Ihr seht schon: Es gib so einige Tools die man benutzen kann\n    und alle haben unterschiedliche Stärken.\n\n    Dropbox ist wohl eins der am meisten genutzten Tools.\n\n.. image:: images/dropbox.png\n\n----\n\nDas Problem\n===========\n\n.. note::\n\n    - Ihr erwartet jetzt sicherlich, dass ich euch sage was schlecht an Dropbox ist.\n    - Erstmal nicht so viel, es ist sehr einfach benutzbar und meist verfügbar -> verbreitet.\n    - zentral, unsicher by default (Zusatzsoftware Boxcryptor), us unternehmen, proprietär.\n    - Zusammenarbeit über Dropbox (zB an Quelltext) funktioniert nicht wirklich.\n    - Dateiaustausch ist eine Art Babel: Jeder benutzt was anderes.\n    - Am längsten dauert der Handshake bis man sich auf's Tool geeinigt hat.\n    - Siehe comic.\n\n.. image:: images/xkcd-file-transfer.png\n    :width: 75%\n\n----\n\nWas ist das Ziel?\n=================\n\n|\n\n.. image:: images/donald.png\n   :align: center\n   :width: 50%\n\n|\n\n:donald:`MAKE FILE SYNCING GREAT AGAIN!`\n\n.. note::\n\n    Und das machen wir ganz offensichtlich indem wir eine Mauer um die Cloud bauen. :)\n    It will be tremendous. Great stuff.\n\n----\n\nGeht das auch detaillierter?\n============================\n\nDinge die Dateiaustausch sein :underline:`sollte`:\n\n|\n\n* Einfach.\n* Sicher.\n* Schnell.\n* Versioniert.\n* Dezentral.\n* Frei.\n\n.. note::\n\n    Viele Buzzwords. Und viele davon widersprechen sich auch noch.\n    Aber wir reden ja von einer idealen Lösung.\n    Spruch: \"Ein Tool das alles kann, kann nichts richtig gut\"\n\n    * Einfach: User Discovery, FUSE Filesystem, ist kompatibel, nervt nicht.\n    * Sicher: Daten sind by default stets verschlüsselt.\n    * Schnell: Eigentlich optional, aber Video Streaming ist nett.\n    * Versioniert: git junkie, Zusammenarbeit wird möglich, keine revisions filenames mehr.\n    * Dezentral: Datenhoheit. Dropbox hinterlässt ein schlechten Nachgeschmack.\n    * Frei: Im Sinne von GPL. Sichere Software muss frei sein - andere Gründe zählen natürlich auch.\n\n----\n\nAber, aber…\n===========\n\n**Ja**, es gibt schon einige dezentrale Tools.\n\n.. image:: images/other-tools.png\n   :width: 120%\n   :class: inline\n\n* Anderer Fokus.\n* Andere Basis.\n* Andere Features.\n* Gleiches Ziel.\n\n:small:`(Siehe: https://brig.readtheodocs.org/comparison.html)`\n\n.. note::\n\n    - So Vergleichdiskussion sind müßig und können den ganzen\n      Tag dauern, ohne dass am Ende was dabei rauskommt...\n    - Resilio ist proprietär, Syncthing fokusiert sich weniger auf Versionierung mehr auf Usability,\n      git-annex genau andersrum.\n    - Mein Tool macht aber auch einige Dinge anders, die nicht direkt vergleichbar sind.\n\n    Jetzt machen wir hier gedanklich mal einen Cut.\n\n-----\n\nIPFS\n====\n\n.. image:: images/ipfs.png\n\n»Inter-Planetary-File-System«\n\n.. note::\n\n    - Ist wie beim Trinken: Man braucht eine gute Basis.\n    - Interplanetary Filesystem. Das ist wörtlich zu verstehen.\n    - Das ganze soll eine Art dezentrale, sichere versionierte Alternative zum\n      heutigen Internet werden. Jeder Nutzer ist Server und Client zugleich\n      und hat eine eindeutige ID.\n\n----\n\nWas kann das so?\n================\n\n|\n\n.. code-block:: bash\n\n    $ echo 'Hallo Augsburg!' | ipfs add\n    added QmbLr7bEQkC85EEGEmQk42dLz25VBy2L6iHyZQu\n\n|\n\n.. code-block:: bash\n\n    $ ipfs cat QmbLr7bEQkC85EEGEmQk42dLz25VBy2L6iHyZQu\n    Hallo Augsburg!\n\n.. note::\n\n    Vorteil: Ganz ohne zentralen Server.\n\n    Nachteil: Kann bereits zum filesharing benutzt werden, aber nur sehr\n    rudiemntär.\n\n|\n\n.. code-block:: bash\n\n    $ ipfs id -f '<id>\\n'\n    QmeLNNcryy9Ky1dXnfnEPaDQ2KuJ6yafaSRZssjQ83ie84\n\n----\n\n»brig«\n======\n\n.. image:: images/tux.png\n    :class: img-tux\n    :width: 25%\n\n.. image:: images/gopher.png\n    :class: img-gopher\n    :width: 33%\n\n* Hash Nanny für ipfs.\n* In ``Go`` geschrieben.\n* **Zielgruppe:** Linux User. Erstmal.\n\n|\n\nEntwicklungsgeschichte:\n-----------------------\n\n* Ende 2015: *Masterprojekt.*\n* Ende 2016: *Pausiert.*\n* Ende 2017: *Hobbyprojekt.*\n* **Erster Beta Release heute!**\n\n.. note::\n\n    - Betonung auf Hash Nanny.\n    - Das ist das erste \"beta\" release (0.1.0-beta) - WELTPREMIERE!\n    - Mit sehr viel Vorsicht benutzen.\n    - Alles kann sich auserdem noch ändern.\n    - Release early, release often.\n\n----\n\n:class: small-list\n\nKurz gesagt: Fokus\n==================\n\n- Balance zwischen Sicherheit und Usability.\n- Effizienz ist nett, aber kein primärer Fokus.\n- Kompatibilität zu gewohnten Konzepten.\n- Komplexität hinter einfachen Interface.\n\n.. note::\n\n    Natürlich kann kein Tool gleichzeitig einfach zu benutzen, sicher und\n    effizient sein. Es soll eine Balance zwischen Benutzbarkeit und Sicherheit\n    geben - die Effizienz (hat zumindest momentan) eher drunter gelitten.\n\n    Siehe Demo.\n\n----\n\nDemo\n----\n\n.. code-block:: bash\n\n    $ brig mv raiders twix\n    # sonst ändert sich aber nix.\n\n----\n\n:class: small-list\n\nWorkflow\n========\n\n.. note::\n\n    - Synchronisieren kleines Ein mal Eins\n\n* Initialer Setup :small:`(nur einmal)`\n* Remotes finden & hinzufügen :small:`(nur einmal)`\n* Diff anzeigen :small:`(optional)`\n* Synchronisieren\n* Konflikte beheben :small:`(eventuell)`\n\n.. image:: images/workflow.png\n   :width: 50%\n   :class: workflow\n\n----\n\n:data-rotate: 0\n\nDisclaimer: Sicherheit?\n=======================\n\n.. note::\n\n    Ich hab ziemlich oft schon das Wort \"sicher\" benutzt.\n    Wenn ich sagen würde, dass »brig« sicher ist, dann heißt das eigentlich\n    nur dass ich beim Schreiben der Software die Absicht hatte, sichere Software zu schreiben.\n\n    Es kommt auf die Angriffsvektoren an.\n    Und selbst wenn ich das geschafft hätte, dann kann man das Tool sicher benutzen,\n    aber jemand könnte immer noch an deinen ungelockten PC gehen... (uvm)\n\n    Übertragung und Speicherung ist sicher gemacht, aber man könnte zb derzeit\n    trotzdem mit wenig Mühe herausfinden wer mit wem kommuniziert.\n\n    Philosophie ist allgemein: Ein Schloss, dass man nur unter Mühe öffnen\n    kann, benutzt kaum einer.\n\n|\n\n.. image:: images/xkcd-security.png\n    :width: 110%\n\n----\n\n:data-rotate: 90\n\nDezentralität\n=============\n\n.. note::\n\n    - Was heißt jetzt eigentlich dezentral?\n    - Problem: Beide müssen zur selben Zeit online sein.\n    - Braucht evtl. archiv instanz.\n    - funktioniert besser oder schlechter abhaengig vom Usecase:\n        - Austausch von Folien und Notizen zwischen Studenten und Professoren: gut.\n        - Einseitiges Herunterladen von Formularen bei einer Behoerde: schlecht.\n\n.. image:: images/map.png\n    :width: 120%\n\n----\n\n:class: small-list\n\n:data-rotate: 180\n\nNutzermanagement\n================\n\n…existiert nicht.\n\n|\n\n.. note::\n\n    - ...Ist nicht wirklich vorhanden.\n    - Es gibt keine registrierten Nutzer.\n    - Zwei Nutzer können den selben Displaynamen haben!\n    - Aber nicht den selben Fingerprint.\n    - Email bzw. Jabber ID ähnlich.\n\n|\n\n.. image:: images/id.png\n   :width: 100%\n\n----\n\n:data-rotate: 270\n\nVersionierung\n-------------\n\n.. image:: images/mona.png\n   :width: 100%\n\n.. note::\n\n   - brig = git - diff\n   - versionierung hilft im Alltag, aber git ist normal nicht tauglich dafür.\n\n----\n\n:data-rotate: 360\n\nPinning\n=======\n\n.. note::\n\n    - Pinning Beispiel: Musik ordner auf Handy und Server.\n    - Mechanismus um Sachen wie \"Speichere alle Dateiversionen der 30 letzten Tage\" zu implementieren.\n    - Komplette Separation von Daten und Metadaten.\n\n|\n|\n\n.. image:: images/pin.png\n    :width: 40%\n\n\n----\n\nRoadmap\n=======\n\n:class: small-list\n\n- Selektives Sharing.\n- Gateway für Hyperlinks.\n- Archive Instances.\n- Autosync und vieles mehr...\n- Performance, mehr Dokumentation...\n\n|\n\n.. image:: images/binocs.png\n   :class: future\n   :width: 40%\n\n|\n\n**Hauptproblem:** Nur ein Entwickler.\n\n.. note::\n\n    ... und der arbeitet nen Vollzeitjob.\n\n    Keine gute Basis für eine stabile Weiterentwicklung.\n\n    Features die noch kommen sollen:\n\n    - Knoten, die automatisch synchroniseren (als »blessed repo« wie bei git)\n    - Fingerprints als QR Code\n    - Mobile Version mit simplen Dateibrowser.\n    - Verbessertes User-Management.\n\n----\n\n:id: help-slide\n\nHilfe? Erwünscht.\n=================\n\n.. note::\n\n    Problem: Man macht ein Release und kriegt 20 Feature Requests,\n    mit teils total widersprüchlichen Anforderungen.\n    Das artet in Feature-itis aus (-> Wollmilchsau)\n\n    Am Ende steht man mit eine Software da, die Kaffee kochen kann,\n    dafür aber nur so mittel und dessen Name mit \"j\" beginnt.\n    (Müsst ihr mal drauf aufpassen... jDownloader, jQuery, java)\n\n    Experience Reports:\n\n    - Fokus auf Problemen, nicht auf Lösungen.\n    - Was ihr tun wolltet\n    - Was ihr eigentlich gemacht/erwartet habt\n    - Warum das nicht so ganz funktioniert hat\n    - Bitte dafür ein issue report auf github aufmachen.\n\nMithilfe via **Experience Reports.**\n\n1. Was wolltet ihr machen?\n2. Was habt ihr versucht?\n3. Warum ging es nicht?\n\n.. image:: images/wollmilchsau.png\n    :class: wollmilchsau\n    :width: 45%\n\n|\n\nUnd sonst?\n----------\n\n- Bug reports. :small:`(brig bug)`\n- Pull requests mit Fixes.\n- **Keine** Feature Requests!\n\n----\n\nProbem gelöst?\n==============\n\n.. note::\n\n    Sagt ihr es mir...\n\n    - Ja, die Lösung ist also ganz einfach... man schreibt einfach ein Tool\n      das alles richtig macht, jeder nutzt das und gut ist.\n    - Abe ja, sagt ihr es mir: Waere so ein Tool hilfreich fuer manche von euch?\n    - Zugegeben: Es ist noch nicht so einfach benutzbar dank Terminal, aber das kann\n      ja noch werden. Geht ja erstmal um die technische Basis.\n    - Die Zeit wird es zeigen.\n\n.. image:: images/xkcd-standards.png\n   :width: 110%\n\n----\n\nLetzte Worte\n=============\n\n.. note::\n\n    Wer Fragen oder Anmerkungen jetzt abgeben will, der möges dies nun tun oder für immer schweigen.\n    Ansonsten könnt ihr mich natürlich auch einfach auf dem Gang ansprechen.\n\n    Slides sind online auf der online schedule.\n\n|\n\n:rtd:`http://brig.rtfd.org`\n\n:github:`github.com/sahib/brig`\n\n:www:`http://sahib.github.io/brig/public`\n\n|\n\n*Fragen?*\n"
  },
  {
    "path": "docs/talk/requirements.txt",
    "content": "argh==0.26.2\ndocutils==0.14\nhovercraft==2.5\nlxml==4.6.2\npathtools==0.1.2\nPygments==2.2.0\nPyYAML>=4.2b1\nsvg.path==2.2\nwatchdog==0.8.3\n"
  },
  {
    "path": "docs/talk/style.css",
    "content": "@import url(http://fonts.googleapis.com/css?family=Vollkorn);\n\nbody {\n    background-image: url(images/noise.png);\n    background-color: #0094d0;\n    color: #eee;\n}\n\na {\n    color: #aaaaee;\n}\n\nul {\n\tfont-family: Vollkorn;\n\tfont-size: 45px;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-weight: 400;\n\n    display: block;\n    margin: auto;\n    margin-bottom: 10px;\n    width: fit-content;\n}\n\nol {\n\tfont-family: Vollkorn;\n\tfont-size: 30px;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-weight: 400;\n\n    display: block;\n    margin: auto;\n    margin-bottom: 10px;\n    width: fit-content;\n    min-width: 25vw;\n}\n\nh1, h2, h3 {\n    display: block;\n    margin: auto;\n    margin-bottom: 30px;\n    width: fit-content;\n\n    padding-left: 5px;\n    padding-right: 10px;\n    padding-top: 10px;\n\n    background-color: white;\n    color: #124255;\n\n\tfont-family: Vollkorn;\n\tfont-size: 60px;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-weight: 700;\n\n}\n\nh2 {\n\tfont-size: 40px;\n}\n\nimg {\n    display: block;\n    margin: auto;\n}\n\np {\n\tfont-family: Vollkorn;\n\tfont-size: 44px;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-weight: 400;\n\tline-height: 50px;\n\n    display: block;\n    margin: auto;\n    margin-top: 3vh;\n    margin-bottom: 3vh;\n    width: fit-content;\n}\n\nblockquote {\n\tfont-family: Vollkorn;\n\tfont-size: 40px;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-weight: 400;\n\tline-height: 30px;\n}\n\npre {\n\tfont-family: Fira Code;\n\tfont-size: 25px;\n\tfont-style:normal;\n\tfont-weight: 400;\n\tline-height: 40px;\n\n    padding: 20px;\n\n    /*\n    background-color: #000;\n    border-color: #000;\n    */\n\n    border-style: solid;\n    border-radius: 10px;\n\n    display: block;\n    margin-right: 30vw;\n    min-width: 40vw;\n\n    color: #0094d0;\n    background-color: #fff;\n    border-color: #fff;\n}\n\n/* Special roles */\n\n.slide-number {\n\t;font-family: Vollkorn;\n\tfont-style: italic;\n\tfont-size: 100px;\n\tfont-weight: 700;\n    opacity: 0.3;\n}\n\n.title-logo {\n\tfont-size: 100px;\n\tfont-weight: 700;\n    display: block;\n    text-align: center;\n}\n\n.donald {\n    font-variant: small-caps;\n\tfont-weight: 700;\n    font-size: 40px;\n\n    padding-left: 12px;\n    padding-right: 12px;\n    padding-top: 12px;\n    padding-bottom: 5px;\n\n    border-width: 12px;\n    border-style: solid;\n    border-color: white;\n}\n\n.white-bg {\n    background-color: white;\n    color: #124255;\n\tfont-size: 40px;\n\tfont-weight: 700;\n\n    padding-left: 5px;\n    padding-right: 5px;\n    padding-top: 5px;\n\n    display: block;\n    margin: auto;\n    margin-bottom: 10px;\n    width: fit-content;\n}\n\n.strike {\n  text-decoration: line-through;\n}\n\n.github:before {\n    background-image: url(images/github.png);\n    background-size: 1em 1em;\n    background-repeat: no-repeat;\n    display: inline-block;\n    width: 1em;\n    height: 1em;\n    position: relative;\n    top: 0.2em;\n    padding-right: 0.3em;\n    content: \" \";\n}\n\n.www:before {\n    background-image: url(images/www.png);\n    background-size: 1em 1em;\n    background-repeat: no-repeat;\n    display: inline-block;\n    width: 1em;\n    height: 1em;\n    position: relative;\n    top: 0.2em;\n    padding-right: 0.3em;\n    content: \" \";\n}\n\n.rtd:before {\n    background-image: url(images/rtd.png);\n    background-size: 1em 1em;\n    background-repeat: no-repeat;\n    display: inline-block;\n    width: 1em;\n    height: 1em;\n    position: relative;\n    top: 0.2em;\n    padding-right: 0.3em;\n    content: \" \";\n}\n\n.workflow {\n    position: fixed;\n    bottom: -15vh;\n    right: 0vw;\n}\n\n.wollmilchsau {\n    position: fixed;\n    bottom: 5vh;\n    right: -12vw;\n}\n\n.img-tux {\n    position: fixed;\n    bottom: 10vh;\n    right: -12vw;\n}\n\n.img-gopher {\n    position: fixed;\n    top: 10vh;\n    left: -12vw;\n}\n\n.small-list > ul {\n    font-size: 40px;\n}\n\n.help {\n    font-size: 12px;\n}\n\n.small {\n    font-size: 32px;\n    font-style: italic;\n}\n\n.underline {\n    text-decoration: underline;\n    font-style: italic;\n}\n"
  },
  {
    "path": "docs/tutorial/config.rst",
    "content": ".. _configurations:\n\nConfiguration\n-------------\n\nAs mentioned earlier, we can use the built-in configuration system to configure many aspects\nof ``brig`` functionality to our liking. Every config entry of ``brig`` consists of 4 values:\n\n* Key - always a dotted, hierarchical path like ``fs.sync.ignore_moved``.\n* Value - some value that is validated depending on the key.\n* Default - The default value.\n* Documentation - A short description of what this entry can do for you.\n* Needs restart - A boolean indicating whether you have to restart the service to take effect.\n\nWhen you type ``brig cfg`` you will see all keys with the aforementioned entries:\n\n.. code-block:: bash\n\n    $ brig config ls\n    [...]\n    fs.sync.ignore_moved: false (default)\n      Default:       false\n      Documentation: Do not move what the remote moved\n      Needs restart: no\n    [...]\n\nAdditionally, we support of course the usual operations:\n\n.. code-block:: bash\n\n    $ brig config get repo.password_command\n    pass brig/repo/password\n    $ brig config set repo.password_command \"pass brig/repo/my-password\"\n\nProfiles\n~~~~~~~~\n\n.. todo:: Implement configuration profiles.\n"
  },
  {
    "path": "docs/tutorial/coreutils.rst",
    "content": "Adding & Viewing files\n----------------------\n\nNow let's add some files to ``brig``. We do this by using ``brig stage``. It's\ncalled ``stage`` because all files first get added to a staging area. If you\nwant, and are able to remember that easier, you can also use ``brig add``.\n\n.. code-block:: bash\n\n    $ echo \"Hello World\" > /tmp/hello.world\n    $ brig stage /tmp/hello.world\n    $ brig cat hello.world\n    Hello World\n    $ brig ls\n    SIZE   MODTIME                       PATH          PIN\n    986 B  Mon Mar  4 23:04:07 CET 2019  /README.md     ✔\n    12 B   Mon Mar  4 23:04:23 CET 2019  /hello.world   ✔\n\nThis adds the content of ``/tmp/hello.world`` to a new file in ``brig`` called\n``/hello.world``. The name was automatically chosen from looking at the base\nname of the added file. All files in ``brig`` have their own name, possibly\ndiffering from the content of the file they originally came from. Of course,\nyou can also add whole directories.\n\n.. note::\n\n   ``brig`` always copy the data. If you happen to change the original file,\n   the change will not progpagate to the file in ``brig``. You have to re-stage it\n   to reflect the change.\n\nIf you want to use a different name, you can simply pass the new name as second\nargument to ``stage``:\n\n.. code-block:: bash\n\n    $ brig stage /tmp/hello.world /hallo.welt\n\nYou also previously saw ``brig cat`` which can be used to get the content of\na file again. ``brig ls`` in contrast shows you a list of currently existing\nfiles, including their size, last modification time, path and pin state [#]_.\n\nOne useful feature of ``brig cat`` is that you can output directories as well.\nWhen specifying a directory as path, a ``.tar`` archive is being outputted.\nYou can use that easily to store whole directories on your disk or archive\nin order to send it to some client for example:\n\n.. code-block:: bash\n\n   # Create a tar from root and unpack it to the current directory.\n   $ brig cat | tar xfv -\n   # Create .tar.gz out of of the /photos directory.\n   $ brig cat photos | gzip -f > photos.tar.gz\n\n.. [#] Pinning and pin states are explained :ref:`pinning-section` and are not important for now.\n\nCoreutils\n---------\n\nYou probably already noticed that a lot of commands you'd type in a terminal on\na normal day have a sibling as ``brig`` command. Here is a short overview of\nthe available commands:\n\n.. code-block:: bash\n\n    $ brig mkdir photos\n    $ brig touch photos/me.png\n    $ brig tree\n    • ✔\n    ├── hello.world ✔\n    ├── photos/ ✔\n    │  └── me.png ✔\n    └── README.md ✔\n\n    2 directories, 2 files\n    $ brig cp photos/me.png photos/moi.png\n    $ brig mv photos/me.png photos/ich.png\n    # NOTE: There is no \"-r\" switch. Directories are always deleted recursively.\n    $ brig rm photos\n\nPlease refer to ``brig help <command>`` for more information about those. They\nwork in most cases like their pendant. Also note that there is no ``brig cd``\ncurrently. All paths must be absolute.\n\nHints - Configuring encryption & compression\n--------------------------------------------\n\nOften times you might want not encrypt all files. A typical use case would be\nto have a ``/public`` folder where you put in files to share with your friends.\nProbably there are some freely available files in there, you got from some\ncorners of the internet (for example your excellent meme collection). Those\nfiles don't need encryption and probably not even compression. If you want to\nexclude the ``/public`` folder from both you can give ``brig`` a hint:\n\n.. code-block:: bash\n\n    # let's assume /public exists already:\n    $ brig hints set /public --compression none --encryption none\n    $ brig hints\n    PATH     ENCRYPTION  COMPRESSION\n    /        aes256gcm   guess\n    /public  none        none\n\n\nAs you might notice, there is already one hint set by default for the root directory.\nIf you want to change the global defaults, you can simply modify this one. Below you\nsee the hint you just created. This however does not change any existing files. It just\ntells ``brig`` »next time you modify those files, please use those algorithms«. If you\nwant to make sure the files are changed to use the algorithm you set, then you can\nuse the ``stage --recode`` command:\n\n.. code-block:: bash\n\n    $ brig stage --recode /public\n\n\nIf you do this, you can observe a small change when looking at the ``IsRaw``\nattribute of the file's info:\n\n.. code-block:: bash\n\n    # This was 'true' before the recode.\n    $ brig info --format '{{ .IsRaw }}' /public/cat-meme.png\n    false\n\nThe ``IsRaw`` attribute tells you if you could download this file by its hash\nfrom an IPFS gateway. If its true, ``brig`` does not touch it at all. This is\nan useful attribute you want to share a file with your non-tech friends who\nprefer to click on a regular HTTP URL: You can just point them a [IPFS\ngateway](https://docs.ipfs.io/concepts/ipfs-gateway).\n\nAvailable encryption algorithms\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. note::\n\n    The ``THROUGHPUT`` numbers shows the relative, average performance compared\n    to ``none``.  Your mileage may vary a lot. Those number should serve as\n    rough guideline and were obtained by the built-in ``briog debug iobench``\n    utility using the ``fuse-{read,write}-mem`` benchmark. If you want the\n    details you can run the benchmarks yourself. As you can see from the numbers,\n    the additional encoding by brig does not make things substantially slower.\n\n    If you wonder how some benchmark are faster than ``none``: Compression\n    compacts the stream heavily (if the data is well compressible). Therefore\n    less bytes need to be transferred and encrpyted or decrypted. Quite surprisingly,\n    in some cases compression can make things faster.\n\n    Also note that this was measured without caching. If no data is modified\n    your operating system will likely cache data for you and speed up things.\n\n+----------------+----------------------------------------------------------------------------+--------------------+-----------------+\n| NAME           |   DESCRIPTION                                                              |  READ THROUGHPUT   | WRITE THROGHPUT |\n+================+============================================================================+====================+=================+\n| ``aes256-gcm`` | The default. AES with 256 bit key in GCM cipher mode. Fast on modern CPUs. | 80-85%             |  85-95%         |\n+----------------+----------------------------------------------------------------------------+--------------------+-----------------+\n| ``chacha20``   | Streaming cipher with Poly1305 MAC. Good for old CPUs without AES-NI.      | 70-85%             |  80-90%         |\n+----------------+----------------------------------------------------------------------------+--------------------+-----------------+\n| ``none``       | Disables encryption. Fast, but only good for public files.                 | 100%               |  100%           |\n+----------------+----------------------------------------------------------------------------+--------------------+-----------------+\n\n\nAvailable compression algorithms\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n| NAME           |   DESCRIPTION                                                              |   READ THROUGHPUT |  WRITE THROUGHPUT   |\n+================+============================================================================+===================+=====================+\n| ``snappy``     | High throughput, relative low compression ratio.                           |   80-105%         | 95-130%             |\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n| ``lz4``        | Middle throughput, slightly higher compression ratio than snappy.          |   77-93%          |  85-105%            |\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n| ``zstd``       | Low throughput, highest compression ratio.                                 |   55-95%          |  35-100%            |\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n| ``guess``      | Chooses suitable algorithm based on file ending, size and mime type.       |   ``-``           |  ``-``              |\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n| ``none``       | Disables compression.                                                      |  100%             |  100%               |\n+----------------+----------------------------------------------------------------------------+-------------------+---------------------+\n"
  },
  {
    "path": "docs/tutorial/gateway.rst",
    "content": "Using the gateway / UI\n----------------------\n\nGateway Screenshots\n~~~~~~~~~~~~~~~~~~~\n\nThe gateway UI consists of several tabs, which are briefly shown below to give you a short impression of it.\n\nLogin screen\n^^^^^^^^^^^^\n\nAllows you to login. You can also come back here to change the user.\nIt is also possible to login anonymously, as you will see below.\n\n.. image:: ../_static/gateway-login.png\n    :alt: Gateway login screen\n    :width: 66%\n\nFile Browser\n^^^^^^^^^^^^\n\nThe main view. Lists the directory tree and file attributes.\nAllows for modification, uploading and everything what you'd expect.\n\n.. image:: ../_static/gateway-files.png\n    :alt: Gateway files view\n    :width: 66%\n\nChangelog View\n^^^^^^^^^^^^^^\n\nA list of commits. You are able to jump back to a specific commit.\n\n.. image:: ../_static/gateway-changelog.png\n    :alt: Gateway changelog view\n    :width: 66%\n\nTrashbin\n^^^^^^^^\n\nA list of deleted files. If you deleted something you will be able to get it back here.\n\n.. image:: ../_static/gateway-trashbin.png\n    :alt: Gateway trashbin view\n    :width: 66%\n\nRemote List\n^^^^^^^^^^^\n\nIf your user is privileged enough, you can see and edit the list of remotes and\nadjust settings in it.\n\n.. image:: ../_static/gateway-remotes.png\n    :alt: Gateway remotes view\n    :width: 66%\n\nRemote Add Dialog\n^^^^^^^^^^^^^^^^^\n\nA sample dialog. The UI uses many of them.\n\n.. image:: ../_static/gateway-add-remote.png\n    :alt: Gateway add remote view\n    :width: 66%\n\n---------\n\nIntroduction\n~~~~~~~~~~~~\n\nMany users will not run ``brig`` themselves, so you won't be able to ``brig\nsync`` with them. Chances are that you still want to send or present them your\nfiles without too much hassle. ``brig`` features a *Gateway* to HTTP(S), which\ncomes particularly handy if you happen to run a public server and/or want to\nprovide a GUI to your users. It also includes an easy to use UI that is enabled\nby default.\n\nBefore you do anything, you need to a »user« to your gateway. This user is different\nthan remotes and describes what credentials can be used to access the gateway.\nYou can add add a new user like this:\n\n.. code-block:: bash\n\n    $ brig gateway user add admin my-password\n    # or shorter:\n    # brig gw u a admin my-password\n    $ brig gateway user list\n    NAME  FOLDERS\n    admin /\n\nThe gateway is disabled by default. If you want to start it, use this command:\n\n.. code-block:: bash\n\n    $ brig gateway start\n\nWithout further configuration, this will create a HTTP (**not HTTPS!**) server\non port ``6001``, which can be used already. If you access it under\n``http://localhost:6001`` you will see a login mask where you can log yourself\nin with the credentials you entered earlier.\n\nIf you'd like to use another port than ``6001``, you can do so by setting the\nrespective config key:\n\n.. code-block:: bash\n\n    $ brig cfg set gateway.port 7777\n\n.. note::\n\n    You can always check the status of the gateway:\n\n    .. code-block:: bash\n\n        $ brig gateway status\n\n    This will also print helpful diagnostics if something might be wrong.\n\nThe gateway can be stopped anytime with the following command:\n\n.. code-block:: bash\n\n    $ brig gateway stop\n\nThere is also a small helper that will print you a nice hyperlink to a certain\nfile called ``brig gateway url``:\n\n.. code-block:: bash\n\n    $ brig gateway url README.md\n    http://localhost:6001/get/README.md\n\nFolder management\n~~~~~~~~~~~~~~~~~\n\nYou probably do not want to offer your files to everyone that have a link.\nTherefore you can restrict access to a few folders (``/public`` for example)\nfor individual users. By default a user is allowed to see everything. If you want\na user that can only access the ``/public`` folder simply add him as follows:\n\n.. code-block:: bash\n\n    $ brig gw user add my-new-user /public\n\nNow only the files in ``/public`` (and including ``/public`` itself) are\naccessible from the gateway.\n\nUser right management\n~~~~~~~~~~~~~~~~~~~~~\n\nWe already discussed the adding of a user above. There is a little more to that though.\nYou can add users with different rights. In total there are 5 different rights currently:\n\n* **fs.view**: View and list all files.\n* **fs.edit**: Edit and create new files.\n* **fs.download**: Download file content.\n* **remotes.view**: View the remotes tab.\n* **remotes.edit**: Edit the remotes tab.\n\nWhen you add users you can give a new user a comma separated list of rights via the ``-r`` switch:\n\n.. code-block:: bash\n\n   $ brig gw user add my-new-user -r 'remotes.view,remotes.edit'\n\nFor your convenience there are a bunch of presets which will do the work for you in 99% of the cases:\n\n* ``--role-admin, -a``: Add this user as admin (short for »-r 'fs.view,fs.edit,fs.download,remotes.view,remotes.edit'«)\n* ``--role-editor, -b``: Add this user as collaborator (short for »-r 'fs.view,fs.edit,fs.download,remotes.view'«)\n* ``--role-collaborator, -c``: Add this user as collaborator (short for »-r 'fs.view,fs.edit,fs.download'«)\n* ``--role-viewer, -d``: Add this user as viewer (short for »-r 'fs.view,fs.download'«)\n* ``--role-link-only, -e``: Add this user as linker (short for »-r 'fs.download'«)\n\nRunning the gateway with HTTPS\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBy default, we run with ``http`` only. If you want to expose the gateway under\na domain to the internet you should secure it with ``https``. Since brig's\ngateway might is likely not the only service you want to expose we recommend a\nwebserver like `Caddy`_ (which is great software in general!) that\nautomatically fetches certificates and reverse-proxies traffic to the gateway.\nA minimal ``Caddyfile`` can look like this:\n\n.. code-block::\n\n    # Assumption:\n    # brig gateway runs on the same server as Caddy\n    # and is reachable under localhost:6001.\n    your.domain.org {\n        route /gateway/* {\n            uri strip_prefix /gateway\n            reverse_proxy http://localhost:6001\n        }\n    }\n\nWith this setup, your gateway would be reachable under\n``https://your.domain.org/gateway``.  You can of course choose a different\nroute or even a sub-domain. Maybe you also want to setup compression or require\na client certificate. Refer to the Caddy documentation for more information.\n\n.. _Caddy: https://caddyserver.com/docs/getting-started\n\nAllowing anonymous access\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you want to run a public gateway (for example for a group of friends), then\nyou might want to enable anonymous access. In this mode you will be logged in\nright away to the gateway without facing the login screen. You still have the\noption to go to the login screen and become another user.\n\nYou can enable the anonymous mode like this:\n\n.. code-block:: bash\n\n    $ brig cfg set gateway.auth.anon_allowed true\n\nAdditionally you have to create an ``anon`` user. This allows you to define\nwhat rights the anonymous users have and what folders they may access:\n\n.. code-block:: bash\n\n   # Give the anonymous users only access to /public and don't let them modify anything:\n   $ brig gw u add anon anon --role-viewer /public\n\n\nIf you want to change the name of the ``anon`` user to something else (for whatever reason) you can do so by\nsetting the ``auth.anon_user`` variable. You also have to re-add the user above with the new name.\n\n.. code-block:: bash\n\n    $ brig cfg set gateway.auth.anon_user some_other_anon_name_that_is_not_used\n"
  },
  {
    "path": "docs/tutorial/init.rst",
    "content": "Creating a repository\n---------------------\n\nYou need a central place where ``brig`` stores its metadata. This place is\ncalled a »repository« or short »repo«. This is not the place, where your files\nare stored. Those are copied (if you did setup IPFS in a normal way) to\n``~/.ipfs``. Keep in mind that ``brig`` will copy files and thus will never\nmodify the original files on your hard drive.\n\nBy creating a new repository you also generate your identity, under which your\nbuddies can later **find** and **authenticate** you. But enough of the mere\ntheory, let's get started:\n\n.. code-block:: bash\n\n    # Create a place where we store our metadata.\n    # The repository is created by default in the current working directory.\n    # (This can be changed via `brig --repo`)\n\n    $ mkdir repo && cd repo\n    $ brig init ali@woods.org/desktop -w 'echo my-password'\n\n           _____         /  /\\        ___          /  /\\\n          /  /::\\       /  /::\\      /  /\\        /  /:/_\n         /  /:/\\:\\     /  /:/\\:\\    /  /:/       /  /:/ /\\\n        /  /:/~/::\\   /  /:/~/:/   /__/::\\      /  /:/_/::\\\n       /__/:/ /:/\\:| /__/:/ /:/___ \\__\\/\\:\\__  /__/:/__\\/\\:\\\n       \\  \\:\\/:/~/:/ \\  \\:\\/:::::/    \\  \\:\\/\\ \\  \\:\\ /~~/:/\n        \\  \\::/ /:/   \\  \\::/~~~~      \\__\\::/  \\  \\:\\  /:/\n         \\  \\:\\/:/     \\  \\:\\          /__/:/    \\  \\:\\/:/\n          \\  \\::/       \\  \\:\\         \\__\\/      \\  \\::/\n           \\__\\/         \\__\\/                     \\__\\/\n\n\n         A new file README.md was automatically added.\n         Use 'brig cat README.md' to view it & get started.\n\n    $ ls\n    config.yml  gateway    immutable.yml  keyring\n    metadata    README.md  remotes.yml\n\nThe name you specified after the ``init`` is the name that will be shown\nto other users and by which you are searchable in the network.\nSee :ref:`about_names` for more details on the subject.\n\nOnce the ``init`` ran successfully there will be a daemon process running in\nthe background. Every other ``brig`` commands will communicate with it via\na local network socket. If the daemon does not run yet, it will be started for\nyou in the background without you noticing.\n\n.. note::\n\n   If no IPFS daemon is running, ``brig`` will start one for you. If you don't\n   have ``ipfs`` installed, it will even install and set it up for you. By\n   default, ``brig init`` will also set some default options that help ``brig``\n   to run a bit smoother. If you do not want those, please add\n   ``--no-ipfs-optimization`` to the ``init`` command above.\n\n.. _about_names:\n\nChoosing and finding names\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou might wonder what the name you pass to ``init`` is actually for. As\npreviously noted, there is no real restriction for choosing a name, so all of\nthe following are indeed valid names:\n\n- ``ali``\n- ``ali@woods.org``\n- ``ali@woods.org/desktop``\n- ``ali/desktop``\n\nIt's however recommended to choose a name that is formatted like\na XMPP/Jabber-ID. Those IDs can look like plain emails, but can optionally have\na »resource« part as suffix (separated by a »/« like ``desktop``). Choosing\nsuch a name has two advantages:\n\n- Other peers can find you by only specifying parts of your name.\n  Imagine all of the *Smith* family members use ``brig``, then they'd possibly those names:\n\n  * ``dad@smith.org/desktop``\n  * ``mom@smith.org/tablet``\n  * ``son@smith.org/laptop``\n\n  When ``dad`` now sets up ``brig`` on his server, he can use ``brig net locate\n  -m domain 'smith.org'`` to get all fingerprints of all family members. Note\n  however that ``brig net locate`` **is not secure**. Its purpose is solely\n  discovery, but is not able to verify that the fingerprints really correspond\n  to the persons they claim to be. This due to the distributed nature of\n  ``brig`` where there is no central or federated authority that coordinate\n  user name registrations. So it is perfectly possible that one name can be\n  taken by several repositories - only the fingerprint is unique.\n\n- Later development of ``brig`` might interpret the user name and domain as\n  email and might use your email account for verification purposes.\n\nHaving a resource part is optional, but can help if you have several instances\nof ``brig`` on your machines. i.e. one user name could be\n``dad@smith.org/desktop`` and the other ``dad@smith.org/server``.\n\n\nRunning the daemon and viewing logs\n-----------------------------------\n\nThe following sections are not a required read. They are useful to keep in\nmind, but in the ideal case you're don't even need to think about the daemon.\n\nAs discussed before, the daemon is being started on demand in the background.\nSubsequent commands will then use the daemon. For debugging purposes it can be useful\nto run in the daemon in the foreground. You can do this with the ``brig daemon`` commands:\n\n.. code-block:: bash\n\n    # Make sure no prior daemon is running:\n    $ brig daemon quit\n    # Start the daemon in the foreground and log to stdout:\n    $ brig daemon launch -s\n\nIf you want to quit the instance, either just hit CTRL-C or type ``brig daemon\nquit`` into another terminal window.\n\nLogging\n~~~~~~~\n\nUnless you pass the ``-s`` (``--log-to-stdout`` flag) as above, all logs are\nbeing piped to the system log. You can follow the log like this:\n\n.. code-block:: bash\n\n    # Follow the actual daemon log:\n    $ journalctl -ft brig\n\nThis assumes you're using a ``systemd``-based distribution. If not, refer to\nthe documentation of your syslog daemon.\n\nUsing several repositories in parallel\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIt can be useful to run more than one instance of the ``brig`` daemon in\nparallel. Either for testing purposes or as actual production configuration. In\norder for the ``brig`` client to know what daemon to talk to, you have to be\nspecific about the repository (``--repo``) path. Here is an example:\n\n.. code-block:: bash\n\n   # Be explicit\n   $ brig --repo /tmp/ali init ali -x --ipfs-path ~/.ipfs\n   $ brig --repo /tmp/bob init bob -x --ipfs-path ~/.ipfs2\n\n   # Since you specified --repo we know what daemon to talk to.\n   # You can also set BRIG_PATH for the same effect:\n   $ BRIG_PATH=/tmp/ali brig ls\n   <file list of ali>\n\n   # Add some alias to your .bashrc to save you some typing:\n   $ alias brig-ali=\"brig --repo /tmp/ali\"\n   $ alias brig-bob=\"brig --repo /tmp/bob\"\n\n   # Now you can use them normally,\n   # e.g. by adding them as remotes each:\n   $ brig-ali remote add bob $(brig-bob whoami -f)\n   $ brig-bob remote add ali $(brig-ali whoami -f)\n\n\n.. note::\n\n   It is possible to have several repositories per IPFS instances. Since things\n   might get confusing though when it comes to pinning, it is recommended to\n   have several IPFS daemons running in this case. This is done via the\n   ``--ipfs-port`` flag in the example above.\n\nLocking the repository.\n-----------------------\n\nThe repository on disk is not encrypted. If you plan on moving the repository\nto somewhere else, e.g. by copying it onto an USB stick and physically moving\nit somewhere else you should always consider to first create an encrypted\narchive out of it and unpack it on the target machine. ``brig`` has a built-in\nhelper for this. Please refer to ``brig pack-repo --help`` and ``brig\nunpack-repo --help``.\n"
  },
  {
    "path": "docs/tutorial/intro.rst",
    "content": ".. _getting_started:\n\nGetting started\n================\n\nThis guide will walk you through the steps of synchronizing your first files\nover ``brig``. You will learn about the concepts behind it along the way. Most\nof the steps here will include working in a terminal, since this is the primary\nway to interact with ``brig``. Once setup you have to choice to use a browser\napplication though.\n\nPrecursor: The help system\n--------------------------\n\nBefore we dive in, we go over a few things that will make your life easier\nalong the way. ``brig`` has some built-in helpers to serve as support for your\nmemory. If you're not interested in that you can skip right to the next section.\nBut please check those help texts before asking questions.\n\nBuilt-in reference documentation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nEvery command offers detailed built-in help, which you can view using the\n``brig help`` command. This often usage examples too:\n\n.. code-block:: bash\n\n    $ brig help stage\n    NAME:\n       brig stage - Add a local file to the storage\n\n    USAGE:\n       brig stage [command options] (<local-path> [<path>]|--stdin <path>)\n\n    CATEGORY:\n       WORKING TREE COMMANDS\n\n    DESCRIPTION:\n       Read a local file (given by »local-path«) and try to read\n       it. This is the conceptual equivalent of »git add«. [...]\n\n    EXAMPLES:\n\n       $ brig stage file.png                         # gets added as /file.png\n       $ brig stage file.png /photos/me.png          # gets added as /photos/me.png\n       $ cat file.png | brig stage --stdin /file.png # gets added as /file.png\n\n    OPTIONS:\n       --stdin, -i  Read data from stdin\n\nShell autocompletion\n~~~~~~~~~~~~~~~~~~~~\n\n.. warning::\n\n   The shell autocompletion is still under development. It might still yield\n   weird results and the usability needs to be improved definitely. Any help\n   welcome!\n\nIf you don't like to remember the exact name of each command, you can use\nthe provided autocompletion. For this to work you have to insert this\nat the end of your ``.bashrc``:\n\n.. code-block:: bash\n\n  source $GOPATH/src/github.com/sahib/brig/autocomplete/bash_autocomplete\n\nOr if you happen to use ``zsh``, append this to your ``.zshrc``:\n\n.. code-block:: bash\n\n  source $GOPATH/src/github.com/sahib/brig/autocomplete/zsh_autocomplete\n\nAfter starting a new shell you should be able to autocomplete most commands.\nTry this for example by typing ``brig remote <tab>``. Other shells are not\nsupported right now sadly.\n\nOpen the online documentation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBy typing ``brig docs`` you'll get a tab opened in your default browser with this\ndomain loaded. Please stop typing ``brig docs`` into Google and save some energy.\n\nReporting bugs\n~~~~~~~~~~~~~~~\n\nIf you need to report a bug (thank you!) you can use a built-in utility to do\nthat. It will gather all relevant information, create a report and open a tab\nwith the *GitHub* issue tracker in a browser for you. Only thing left for you\nis to fill out some questions in the report and include anything you think is\nrelevant.\n\n.. code-block:: bash\n\n    $ brig bug\n\nTo actually create the issue you sadly need an *GitHub* `account\n<https://github.com/join>`_. If  you don't have internet or do not want to sign\nup, you can still generate a bug report template via ``brig bug -s``.\n"
  },
  {
    "path": "docs/tutorial/mounts.rst",
    "content": "Mounting repositories\n---------------------\n\nUsing commands like ``brig cp`` might not feel very seamless, especially when\nbeing used to tools like file browsers. And indeed, those commands are only\nsupposed to serve as a low-level way of interacting with ``brig`` and as way\nfor scripting own, more elaborate workflows.\n\nFor your daily workflow it is far easier to mount all files known to ``brig``\nto a directory of your choice and use it with the tools you are used to. To\naccomplish that ``brig`` supports a FUSE filesystem that can be controlled via\nthe ``mount`` and ``fstab`` commands. Let's look at ``brig mount``:\n\n.. code-block:: bash\n\n   $ mkdir ~/data\n   $ brig mount ~/data\n   $ cd ~/data\n   $ cat hello-world\n   Hello World\n   $ echo 'Salut le monde!' > salut-monde.txt\n   # There is no difference between brig's \"virtual view\"\n   # and the contents of the mount:\n   $ brig cat salut-monde.txt\n   Salut le monde!\n\nYou can use this directory like a normal one, but check for the CAVEATS below.\nYou can have any number of mounts. This proves especially useful when only\nmounting a subdirectory (let's say we have a directory called ``/Public``) with\nthe ``--root`` option of ``brig mount`` and mounting all other files as read\nonly (``--readonly``).\n\n.. code-block:: bash\n\n    $ brig mount ~/data --readonly\n    $ brig mkdir /writable\n    $ brig touch /writable/please-edit-me\n    $ mkdir ~/rw-data\n    $ brig mount ~/rw-data --root /writable\n    $ echo 'writable?' > ~/data/test\n    read-only file system: ~/data/test\n    $ echo 'writable!' > ~/rw-data/test\n    $ cat ~/rw-data/test\n    writable!\n\nAn existing mount can be removed again with ``brig unmount <path>``:\n\n.. code-block:: bash\n\n    $ brig unmount ~/data\n    $ brig unmount ~/rw-data\n    $ brig rm writable\n\n\nRemote access\n~~~~~~~~~~~~~\n\nWorking with remote data does often not work extremely well with the file\nabstraction that does not play well with timeouts. This often causes\napplications to hang for indefinite times, since they are not most of the time\nnot build for data that might not be delivered immediately. For this very\ncommon case we have the ``--offline`` flag. It will error out immediately on\nfiles that are not in our local cache:\n\n.. code-block:: bash\n\n   $ brig mount /tmp/mount --offline\n   # Or with fstab:\n   $ brig fstab add some-mount /tmp/mount --offline\n\nIf you have a remote file you want to read, you can do this to make it cached locally:\n\n.. code-block:: bash\n\n   $ brig cat /remote-file > /dev/null\n\nAfter ``brig cat`` run, you should be able to view the file normally in the mount.\n\n.. _permanent-mounts:\n\nMaking mounts permanent\n~~~~~~~~~~~~~~~~~~~~~~~\n\nAll mounts that are created via ``brig mount`` will be gone after a daemon restart.\nIf you a typical set of mounts, you can persist them with the ``brig fstab`` facility:\n\n.. code-block:: bash\n\n    $ brig fstab add tmp_rw_mount /tmp/rw-mount\n    $ brig fstab add tmp_ro_mount /tmp/ro-mount -r\n    $ brig fstab\n    NAME          PATH           READ_ONLY  ROOT  ACTIVE\n    tmp_ro_mount  /tmp/ro-mount  yes        /\n    tmp_rw_mount  /tmp/rw-mount  no         /\n    $ brig fstab apply\n    $ brig fstab\n    NAME          PATH           READ_ONLY  ROOT  ACTIVE\n    tmp_ro_mount  /tmp/ro-mount  yes        /     ✔\n    tmp_rw_mount  /tmp/rw-mount  no         /     ✔\n    $ brig fstab apply -u\n    NAME          PATH           READ_ONLY  ROOT  ACTIVE\n    tmp_ro_mount  /tmp/ro-mount  yes        /\n    tmp_rw_mount  /tmp/rw-mount  no         /\n\nEt Voilà, all mounts will be created and mounted once you enter ``brig fstab\napply`` or restart the daemon. The opposite can be achieved by executing ``brig\nfstab apply --unmount``.\n\n*CAVEATS:* The FUSE filesystem is not yet perfect and somewhat experimental. Keep those points in mind:\n\n- **Performance:** Writing to FUSE is currently somewhat *memory and CPU\n  intensive*. Generally, reading should be fast enough for most basic use\n  cases, but also is not enough for high performance needs. If you need to edit\n  a file many times, it is recommended to copy the file somewhere to your local\n  storage (e.g. ``brig cat the_file > /tmp/the_file``), edit it there and save\n  it back for syncing purpose. Future releases will work on optimizing the\n  performance.\n- **Timeouts:** Although it tries not to look like one, we're operating on\n  a networking filesystem. Every file you access might come from a different\n  computer. If no other machine can serve this file we might block for a long\n  time, causing application hangs and general slowness. This is a problem that\n  still needs a proper solution and leaves much to be desired in the current\n  implementation.\n"
  },
  {
    "path": "docs/tutorial/pinning.rst",
    "content": ".. _pinning-section:\n\nPinning\n-------\n\nHow can we control what files are stored locally and which should be retrieved\nfrom the network? You can do this by **pinning** each file or directory you\nwant to keep locally. Normally, files that are not pinned may be cleaned up\nfrom time to time, that means they are evaded from the local cache and need to\nbe fetched again from the network when being accessed again. Since you still\nhave the metadata for this file, you won't notice the difference beside some\npossible network lag. When you pin a file however, it will not be garbage\ncollected and stays in your local cache until unpinned.\n\n``brig`` knows of two types of pins: **Explicit** and **implicit**.\n\n- **Implicit pins:** This kind of pin is created automatically by ``brig`` and\n  cannot be created by the user. In the command line output it is always shows as\n  blue pin. Implicit pins are created by ``brig`` whenever you create a new\n  file, or update the contents of a file. Implicit pins are managed by ``brig`` and\n  as you will see later, it might decide to save you some space by unpinning old versions.\n- **Explicit pins:** This kind of pin is created by the user explicitly (hence\n  the name) and is never done by ``brig`` automatically. It has the same effect\n  as an implicit pin, but cannot be removed again by ``brig``, unless\n  explicitly unpinned by the user. This is a good way of telling ``brig`` to\n  never unpin this specific version. Use this with care, since it is easy to forget about\n  explicit pins.\n\nWhen syncing with somebody, all files retrieved by them are by default **not\npinned**. If you want to keep them for longer, make sure to pin them\nexplicitly.\n\nGarbage collection\n~~~~~~~~~~~~~~~~~~\n\nStrongly related to pinning is garbage collection. Whenever you need to clean up some\nspace, you can just type ``brig gc`` to remove all unpinned files from the cache.\n\nBy default, the garbage collector is also run once every hour. You can change this interval\nby setting ``brig config set repo.autogc.interval`` to ``30m`` for example. You can also disable\nthis automatic garbage collection by issuing ``brig config set repo.autogc.enabled false``.\n\nRepinning\n~~~~~~~~~\n\nRepinning allows you to control how many versions of each file you want to\nstore and/or how much space you want to store at most. The repinning feature is\ncontrolled by the following configuration variables:\n\n- **fs.repin.quota**: Maximum amount of data to store in a repository.\n- **fs.repin.min_depth**: Keep this many versions definitely pinned. Trumps quota.\n- **fs.repin.max_depth**: Unpin versions beyond this depth definitely. Trumps quota.\n- **fs.repin.enabled**: Wether we should allow the repinning to run at all.\n- **fs.repin.interval**: How much time to wait between calling repinning automatically.\n\nNormally repinning will run for you every 15 minutes. You can also trigger it manually:\n\n.. code-block:: bash\n\n   $ brig pin repin\n\nBy default, ``brig`` will keep 1 version definitely (**fs.repin.min_depth**)\nand delete all versions starting with the 10th (**fs.repin.max_depth**). The\ndefault quota (**fs.repin.quota**) is 5GB. If repin detects files that need to\nbe unpinned, then it will first unpin all files that are beyond the max depth\nsetting. If this is not sufficient to stay under the quota, it will delete old\nversions, layer by layer starting with the biggest version first.\n"
  },
  {
    "path": "docs/tutorial/remotes.rst",
    "content": "Remotes\n-------\n\nUntil now, all our operations were tied only to our local computer. But\n``brig`` is a synchronization tool and that would be hardly very useful without\nsupporting other peers. We call other peers »remotes« similar to the term used\nin the ``git`` world.\n\nA remote consists of three things:\n\n- **A human readable name:** This name can be choose by the user and can take\n  pretty much any form, but we recommend to sticking for a form that resembles\n  an extended email [#]_ like »ali@woods.org/desktop«. This name is **not**\n  guaranteed to be unique! In theory everyone could take it and it is therefore\n  only used for display purposes. There is no central place where users are registered.\n- **A unique fingerprint:** This serves both as address for a certain\n  repository and as certificate of identity. It is long and hard to remember,\n  which is the reason why ``brig`` offers to loosely link a human readable to\n  it.\n- **A bunch of settings and state:** ``brig`` knows about every remote if it is\n  online and/or authenticated. Additionally you can set a few remote-specific\n  configuration settings like automatic updating.\n\n.. [#] To be more exact, it resembles an `XMPP or Jabber-ID <https://en.wikipedia.org/wiki/Jabber_ID>`_.\n\nIf we want to find out what *our own* name and fingerprint is, we can use the\n``brig whoami`` command to ask a very existential questions:\n\n.. code-block:: bash\n\n    # NOTE: The hash will look different for you:\n    $ brig whoami\n    ali@woods.org/desktop QmTTJbkfG267gidFKfDTV4j1c843z4tkUG93Hw8r6kZ17a:W1nayTG5UMcVxy9mFFNjuZDUb7uVTnmwFYiJ4Ajr1TP3bg\n\n.. note::\n\n    The fingerprint consists of two hashes divided by a colon (:). The first\n    part is the identity of your ``IPFS`` node, the second part is the\n    fingerprint of a keypair that was generated by ``brig`` during init and\n    will be used to authenticate other peers.\n\nWhen we want to synchronize with another repository, we need to exchange fingerprints\nand each other as remote. There are three typical scenarios here:\n\n1. Both repositories are controlled by you. In this case you can simple execute\n   ``brig whoami`` on both repositories and add them with ``brig remote add``\n   as described in the following.\n2. You want to sync with somebody you know. In this case you should both\n   execute ``brig whoami`` and send its output over a trusted side channel.\n   Personally, I use a `secure messenger like Signal <https://signal.org>`_,\n   but you can also use any channel you like, including encrypted mail or\n   meeting up with the person in question.\n3. You don't know each other: Get to know each other and the proceed like in\n   the second point. There is no way to know if somebody is the person he is\n   pretending to be, so validate that over a separate channel - that's sadly\n   something where ``brig`` can't help you yet.\n\n   If you need to get a hint of what users use a certain domain,\n   you can use ``brig net locate`` to get a list of those:\n\n   .. code-block:: bash\n\n     # This command might take some time to yield results:\n     $ brig net locate -m domain woods.org\n     NAME           TYPE    FINGERPRINT\n     ali@woods.org  domain  QmTTJbk[...]:W1UDvKzjRPb4rbbk[...]\n\n   Please note again: Do not blindly add the fingerprint you see here. Always\n   make sure the person you're syncing with is the one you think they are.\n\n   .. todo::\n\n      This seems currently broken as it does not yield any results.\n\nOnce you have exchanged the fingerprints, you add each other as **remotes**.\nLet's call the other side *bob*: [#]_\n\n.. code-block:: bash\n\n\t$ brig remote add bob \\\n\t\tQmUDSXt27LbCCG7NfNXfnwUkqwCig8RzV1wzB9ekdXaag7:\n\t\tW1e3rNGGCuuQnzyoiBKLdoN41yQ4NfNy9nRD3MwXk6h8Vy\n\n\n.. [#] The name you choose as remote can be anything you like and does not need\n       to match the name the other person chose for themselves. It's not a bad\n       idea though.\n\n*Bob* has do the same on his side. Otherwise the connection won't be\nestablished, because the other side won't be authenticated. By adding somebody\nas remote we **authenticate** them:\n\n.. code-block:: bash\n\n\t$ brig remote add ali \\\n        QmTTJbkfG267gidFKfDTV4j1c843z4tkUG93Hw8r6kZ17a:\n        W1nayTG5UMcVxy9mFFNjuZDUb7uVTnmwFYiJ4Ajr1TP3bg\n\nThanks to the fingerprint, ``brig`` now knows how to reach the other repository\nover the network. This is done in the background via IPFS and might take a few\nmoments until a valid route to the host was found.\n\nThe remote list can tell us if a remote is online:\n\n.. code-block:: bash\n\n    $ brig remote list\n    NAME   FINGERPRINT  ROUNDTRIP  ONLINE AUTHENTICATED LASTSEEN         AUTO-UPDATE\n    bob    QmUDSXt27    0s         ✔      ✔             Apr 16 17:31:01  no\n    $ brig remote ping bob\n    ping to bob: ✔ (0.00250s)\n\nNice. Now we know that bob is online (✔) and also that he authenticated us (✔).\nOtherwise ``brig remote ping bob`` would have failed.\n\n.. note:: About open ports:\n\n   While ``ipfs`` tries to do it's best to avoid having the user to open ports\n   in his firewall/router. This mechanism might not be perfect though and maybe\n   never is. If any of the following network operations might not work it might\n   be necessary to open the port 4001 and/or enable UPnP. For security reasons\n   we recommend to only open the required ports explicitly and not to use UPnP\n   unless necessary.\n\nSyncing\n-------\n\nNow that we added a remote, a whole new set of features are available to us.\nBefore we move on to do our first synchronization, let's do a quick recap of\nwhat we have done so far:\n\n- Create a repository (``brig init <name>``) - This needs to be done only once.\n- Create optional mount points (``brig fstab add <name> <path>``) - This needs to be done only once.\n- Find & add remotes (``brig remote add``) - This needs to be done once for each peer.\n- Add some files (``brig stage <path>``) - Do as often as you like.\n\nAs you can see, there is a bit of initial setup work, but the actual syncing is\npretty effortless now. Before we attempt to sync with anybody, it's always\na good idea to see what changes they have. We can check this with ``brig diff\n<remote>``:\n\n.. code-block:: bash\n\n    # The \"--missing\" switch also tells us what files the remote does not possess:\n    $ brig diff bob --missing\n    •\n    ├── _ hello.world\n    ├── + videos/\n    └── README.md ⇄ README.md\n\nThis output resembles the one we saw from ``brig tree`` earlier. Each node in\nthis tree tells us about something that would happen when we merge. The prefix\nof each file and the color in the terminal indicate what would happen with this\nfile. Refer to the table below to see what prefix relates to what action:\n\n====== ====================================================================\nSymbol Description\n====== ====================================================================\n``+``  This file is only present on the remote side.\n``-``  This file was removed on the remote side.\n``→``  This file was moved to a new location.\n``*``  This file was ignored because we chose to, due to our settings.\n``⇄``  Both sides have changes, but they are compatible and can be merged.\n``⚡``  Both sides have changes, but they are incompatible and result in conflict files.\n``_``  This file is missing on the remote side (needs to be enabled with ``--missing``)\n====== ====================================================================\n\n.. note::\n\n    Remember that ``brig`` does not do any actual diffs between files, i.e. it\n    will not show you what line changed. It does not care a lot about the\n    content. It only records how the file metadata changes and what content\n    hash the file has at a certain point.\n\nIf you prefer a more traditional view, similar to ``git``, you can use\n``--list`` on ``brig diff``.\n\nSo in the above output we can tell that *Bob* added the directory\n``/videos``, but does not possess the ``/hello.world`` file. He also\napparently modified ``README.md``, but since we did not, it's safe for us to\ntake over his changes. If we sync now we will get this directory from him:\n\n.. code-block:: bash\n\n    $ brig sync bob\n    $ brig ls\n    SIZE   MODTIME          OWNER    PATH                      PIN\n    443 B  Dec 27 14:44:44  ali      /README.md                🖈\n    443 B  Dec 27 14:44:44  bob      /README.md.conflict.0\n    12 B   Dec 27 15:14:16  ali      /hello.world              🖈\n    32 GB  Dec 27 15:14:16  bob      /videos\n\nYou might notice that the ``sync`` step took only around one second, even\nthough ``/videos`` is 32 GB in size. This is because ``sync`` **does not\ntransfer actual data**. It only transferred the metadata, while the actual data\nwill only be loaded when required. This might sound a little inconvenient at\nfirst. When I want to watch the video, I'd prefer to have it cached locally\nbefore viewing it to avoid stuttering playback. If you plan to use the files\nimmediately, you should be using pinning (see :ref:`pinning-section`)\n\nData retrieval\n~~~~~~~~~~~~~~\n\nIf the data is not on your local machine, where is it then? Thanks to IPFS\nit can be transferred from any other peer that caches this particular content.\nContent is usually cached when the peer either really stores this file or if\nthis peer recently used this content. In the latter case it will still be\navailable in its cache. This property is particularly useful when having a\nsmall device for viewing data (e.g. a smartphone, granted ``brig`` would run\nthere) and a big machine that acts as storage server (e.g. a desktop).\n\nHow are the files secure then if they essentially could be everywhere? Every\nfile is encrypted by ``brig`` before giving it to IPFS. The encryption key\nis part of the metadata and is only available to the peers that you chose to\nsynchronize with. Think of each brig repository only as a cache for the whole\nnetwork it is in.\n\nPartial synchronisation\n~~~~~~~~~~~~~~~~~~~~~~~\n\nSometimes you only want to share certain things with certain people. You\nprobably want to share all your ``/photos`` directory with your significant\nother, but not with your fellow students. On the other hand you maybe want to\nshare the ``/lectures`` folder with them. In ``brig`` you can define what\nfolder you want to share with what remote. If you do not limit this, **all\nfolders will be open to a remote by default.** Also note, that if a remote\nalready got some content of a folder you did not want to share, he will still\nbe able to access it. If you're unsure, you should better be restrictive than\ntoo permissive.\n\nTo add a folder for a specific remote, you can use the ``folders`` subcommand\nof ``brig remote``:\n\n.. code-block:: bash\n\n    # Starting with next sync, bob will only see the /videos folder:\n    $ brig remote folder add bob /videos\n    $ brig remote folder ls bob\n    /videos\n\nIf you're tired of typing all of this, be reminded that there are very short\naliases for most subcommands:\n\n.. code-block:: bash\n\n    $ brig rmt f a bob /videos\n\nIn some cases you might not trust your peers with some folders or don't want to\nhave modifications in that specific folder. For this case, ``brig`` supports\nadding a folder as ``--read-only``. Other remotes still will have access to the\nfolder, but whenever we sync with them the changes they made are ignored.\nYou can add a read-only folder by adding the ``--read-only`` switch to the command above:\n\n.. code-block:: bash\n\n   $ brig rmt f a bob /videos --read-only\n\n.. note::\n\n   If you want to overwrite an existing folder with new settings, you can use the ``set`` subcommand:\n\n   .. code-block:: bash\n\n      $ brig remote folder set bob /videos -c embrace --read-only\n\n   See below for explanation on those additional options.\n\nConflicts\n~~~~~~~~~\n\nWhenever two repositories have a file at the same path, ``brig`` needs to do some conflict resolving.\nIf those files are equal or if they share common history and did not diverge there is nothing to fear.\nBut what if both sides have different versions of a file without common history? In this case ``brig`` offers you\nto handle conflict by one of the three strategies:\n\n* ``ignore``: Ignore the change from the remote side.\n* ``embrace``: Ignore our state and take over the remote's change.\n* ``marker``: Create a conflict file with the same name but a ``.conflict`` ending.\n  Leave it to the user to resolve the conflict. This is the **default.**\n\nYou can configure this behavior by using ``brig cfg``:\n\n.. code-block:: bash\n\n   $ brig cfg set fs.sync.conflict_strategy marker\n\nIn some cases this might not be enough though. Sometimes you might want to say\n»I trust this remote, always accept their changes«. You can do this by setting\nthe conflict strategy per remote. If no specific conflict strategy is set,\n``fs.sync.conflict_strategy`` is used. You can set the strategy by using a subcommand\nof the ``brig remote`` family:\n\n.. code-block:: bash\n\n   # Always take the versions of bob on conflicts:\n   $ brig remote conflict-strategy embrace bob\n\nStill not enough? You can also set the conflict strategy per folder.\nThis will trump the per-remote folder strategy:\n\n.. code-block:: bash\n\n   # Use the default in all folders but use \"embrace\" in this one:\n   $ brig remote folder add bob /collab -c embrace\n\nAutomatic Updating\n~~~~~~~~~~~~~~~~~~\n\n.. warning::\n\n    This feature is experimental and builds upon the also experimental\n    pubsub experiment of the IPFS project. Use with care.\n\n\nIf you do not want to hit ``brig sync`` every time somebody in the network changed something,\nyou can enable the automatic updating for any remote you like. Let's suppose we are ``ali``\nand want to receive updates on every change of ``bob``, we should simply add the following:\n\n.. code-block:: bash\n\n    $ brig remote auto-update enable bob\n\n    # (You can also abbreviate most of that:)\n    # brig rmt au e bob\n\n\nAlternatively, we could have used the ``-a`` switch when adding ``bob`` as remote:\n\n.. code-block:: bash\n\n    $ brig remote add bob -a\n\nIn any case, an initial sync is performed with this remote and a sync on every change\nthat ``bob`` published. Keep in mind that ``bob`` will not receive your updates by default,\nhe needs to decide to use auto updating for himself. You can watch the times when your repository\nwas updated automatically by looking at ``brig log``:\n\n\n.. code-block:: bash\n\n    $ brig log\n         -       Sun Dec 16 18:24:27 CET 2018 • (curr)\n    W1kGKKviWCBY Sun Dec 16 18:24:27 CET 2018 sync due to notification from »bob« (head)\n    ...\n\nPushing changes\n~~~~~~~~~~~~~~~\n\nAs you saw above, doing a ``brig sync`` won't do a bidirectional\nsynchronisation. It will only fetch metadata from the remote and modify our\nlocal state with it. In some cases you might want to push data to a remote\n- especially when it is on one of your machines and you use for example as\narchival repository. By default pushing to a remote is rejected. You can enable\nit on a per-remote basis with this command out of the ``brig remote`` family of\ncommands:\n\n.. code-block:: bash\n\n   # Allow bob and charlie to auto push to us.\n   $ brig remote auto-push enable bob charlie\n\n\nNow either ``bob`` or ``charlie`` can do this from their machines:\n\n\n.. code-block:: bash\n\n   # bob's machine:\n   $ brig push ali\n\n\nThis will simply ask ``ali`` to do a sync with ``bob``.\n"
  },
  {
    "path": "docs/tutorial/vcs.rst",
    "content": "Version control\n---------------\n\nOne key feature of ``brig`` over other synchronisation tools is the built-in\nand quite capable version control. If you already know ``git`` that's a plus\nfor this chapter since a lot of stuff will feel similar. This isn't a big\nsurprise, since ``brig`` implements something like ``git`` internally. Don't\nworry, knowing ``git`` is however not needed at all for this chapter.\n\nKey concepts\n~~~~~~~~~~~~\n\nI'd like you to keep the following mantra in your head when thinking\nabout versioning (repeating before you go to sleep may or may not help):\n\n**Metadata and actual data are separated.** This means that a repository may\ncontain metadata about many files, including older versions of them. However,\nit is not guaranteed that a repository caches all actual data for each file or\nversion. This is solely controlled by pinning described in the\n:ref:`pinning-section` section. If you check out earlier versions of a file,\nyou're always able to see the metadata of it, but being able to view the actual\ndata depends on having a peer that is being able to deliver the data in your\nnetwork (which might be yourself). So in short: ``brig`` **only versions\nmetadata and links to the respective data for each version**.\n\nThis is a somewhat novel approach to versioning, so feel free to re-read the\nlast paragraph, since we've found that it does not quite fit what most people\nare used to. Together with pinning this offers a high degree of freedom on how\nyou can decide what repositories store what data. The price is that this\nfine-tuned control can get a little annoying. Future versions of ``brig`` will\ntry to solve that.\n\nFor some more background, you can invoke ``brig info`` to see what metadata is\nbeing saved per file version:\n\n.. code-block:: bash\n\n    $ brig show README.md\n    Path          /README.md\n    User          ali\n    Type          file\n    Size          832 bytes\n    Inode         4\n    Pinned        yes\n    Explicit      no\n    ModTime       2018-10-14T22:46:00+02:00\n    Tree Hash     W1gX8NMQ9m8SBnjHRGtamRAjJewbnSgi6C1P7YEunfgTA3\n    Content Hash  W1pzHcGbVpXaePa1XpehW4HGPatDUJs8zZzSRbpNCGbN2u\n    Backend Hash  QmPvNjR1h56EFK1Sfb7vr7tFJ57A4JDJS9zwn7PeNbHCsK\n\n\nMost of it should be no big surprise. It might be a small surprise that three\nhashes are stored per file. The ``Backend Hash`` is really the link to the\nactual data. If you'd type ``ipfs cat\nQmPvNjR1h56EFK1Sfb7vr7tFJ57A4JDJS9zwn7PeNbHCsK`` you will get the encrypted\nversion of your file dumped to your terminal. The ``Content Hash`` is being\ncalculated before the encryption and is the same for two files with the same\ncontent. The ``Tree Hash`` is a hash that uniquely identifies this specific\nnode for internal purposes. The ``Inode`` is a number that stays unique over\nthe lifetime of a file (including moves and removes). It is used mostly in the\nFUSE filesystem.\n\nCommits\n~~~~~~~\n\nNow that we know that only metadata is versioned, we have to ask »what is the\nsmallest unit of modification that can be saved?«. This smallest unit is\na commit. A commit can be seen as a snapshot of the whole repository.\n\nThe command ``brig log`` shows you a list of commits that were made already:\n\n.. code-block:: bash\n\n          -      Sun Oct 14 22:46:00 CEST 2018 • (curr)\n    W1kAySD3aKLt Sun Oct 14 22:46:00 CEST 2018 user: Added ali-file (head)\n    W1ocyBsS28SD Sun Oct 14 22:46:00 CEST 2018 user: Added initial README.md\n    W1D9KsLNnAv4 Sun Oct 14 22:46:00 CEST 2018 initial commit (init)\n\n\nEach commit is identified by a hash (e.g. ``W1kAySD3aKLt``) and records the\ntime when it was created. Apart from that, there is a message that describes\nthe commit in some way. In contrast to ``git``, **commits are rarely done by\nthe user themselve**. More often they are done by ``brig`` when synchronizing.\n\nAll commits form a long chain (**no branches**, just a linear chain) with the\nvery first empty commit called ``init`` and the still unfinished commit called\n``curr``. Directly below ``curr`` there is the last finished commit called ``head``.\n\n.. note::\n\n    ``curr`` is what ``git`` users would call the staging area. While the staging area\n    in ``git`` is \"special\", the ``curr`` commit can be used like any other one, with\n    the sole difference that it does not have a proper hash yet.\n\nSometimes you might want to do a snapshot or »savepoint« yourself. In this case\nyou can do a commit yourself:\n\n.. code-block:: bash\n\n    $ brig touch A_NEW_FILE\n    $ brig commit -m 'better leave some breadcrumbs'\n    $ brig log | head -n 2\n          -      Mon Oct 15 00:27:37 CEST 2018 • (curr)\n    W1hZoY7TrxyK Sun Oct 14 22:46:00 CEST 2018 user: better leave some bread crumbs (head)\n\nThis snapshot can be useful later if you decide to revert to a certain version.\nThe hash of the commit is of course hard to remember, so if you need it very often, you can\ngive it a tag yourself. Tags are similar to the names, ``curr``, ``head`` and ``init`` but\nwon't be changed by ``brig`` and won't move therefore:\n\n.. code-block:: bash\n\n    # instead of \"W1hZoY7TrxyK\" you also could use \"head\" here:\n    $ brig tag W1hZoY7TrxyK breadcrumbs\n    $ brig log | grep breadcrumbs\n    $ W1hZoY7TrxyK Sun Oct 14 22:46:00 CEST 2018 user: better leave some bread crumbs (breadcrumbs, head)\n\n\nFile history\n~~~~~~~~~~~~\n\nEach file and directory in ``brig`` maintains its own history. Each entry of\nthis history relates to exactly one distinct commit. In the life of a file or\ndirectory there are four things that can happen to it:\n\n- *added:* The file was added in this commit.\n- *moved:* The file was moved in this commit.\n- *removed:* The file was removed in this commit.\n- *modified:* The file's content (i.e. hash changed) was altered in this commit.\n\nYou can check an individual file or directorie's history by using the ``brig history`` command:\n\n.. code-block:: bash\n\n    # or \"hst\" for short:\n    $ brig hst README.md\n    CHANGE  FROM  TO              WHEN\n    added   INIT  W1ocyBsS28SD    Oct 14 22:46:00\n    $ brig mv README.md README_LATER.md\n    $ brig hst README_LATER.md\n    CHANGE  FROM  TO            HOW                           WHEN\n    moved   HEAD  CURR          /README.md → /README_LATER.md Oct 15 00:27:37\n    added   INIT  W1ocyBsS28SD                                Oct 14 22:46:0\n\nAs you can see, you will be shown one line per history entry. Each entry\ndenotes which commit the change was in. Some commits were nothing was changed\nwill be jumped over except if you pass ``--empty``.\n\nViewing differences\n~~~~~~~~~~~~~~~~~~~\n\nIf you're interested what changed in a range of your own commits, you can use\nthe ``brig diff`` command as shown previously. The ``-s`` (``--self``) switch\nsays that we want to compare only two of our own commits (as opposed to\ncomparing with the commits of a remote).\n\n.. code-block:: bash\n\n    # Let's compare the commit hashes from above:\n    $ brig diff -s W1hZoY7TrxyK W1kAySD3aKLt\n    •\n    └── + A_NEW_FILE\n\nOften, those hashes are quite hard to remember and annoying to look up. That's\nwhy you can the special syntax ``<tag or hash>^`` to denote that you want to go\n»one commit up«:\n\n.. code-block:: bash\n\n    brig diff -s head head^\n    •\n    └── + A_NEW_FILE\n    # You can also use this several times:\n    brig diff -s head^^^ head^^^^^\n    •\n    └── + README.md\n\nIf you just want to see what you changed since ``head``, you can simply type ``brig diff``.\nThis is the same as ``brig diff -s curr head``:\n\n.. code-block:: bash\n\n    $ brig diff\n    •\n    └── README.md → README_LATER.md\n    $ brig diff -s curr head\n    •\n    └── README.md → README_LATER.md\n\n\nReverting to previous state\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nUntil now we were only looking at the version history and didn't modify it. The\nmost versatile command to do that is ``brig reset``. It is able to revert\nchanges previously made:\n\n.. code-block:: bash\n\n    # Reset to the \"init\" commit (the very first and empty commit)\n    $ brig reset init\n    $ brig ls  # nothing, it's empty.\n\n\nThe key here is that you did not loose any history:\n\n.. code-block:: bash\n\n    $ brig log | head -2\n           -     Mon Oct 15 00:51:12 CEST 2018 • (curr)\n    W1hZoY7TrxyK Sun Oct 14 22:46:00 CEST 2018 user: better leave some bread crumbs (breadcrumbs)\n\n\nAs you can see, we still have the previous commits. ``brig revert`` did one\nthing more than restoring the state of ``init`` and put that result in\n``curr``. This also means that you can't really *modify* history. But you can\nrevert it. Let's revert your complete wipe-out:\n\n.. code-block:: bash\n\n    # Reset to the state we had in »breadcrumbs«\n    $ brig reset breadcrumbs\n\n\n``brig reset`` cannot only restore old commits, but individual files and\ndirectories:\n\n.. code-block:: bash\n\n    $ brig reset head^^ README.md\n\n.. note::\n\n    It is a good idea to do a ``brig commit`` before a ``brig reset``. Since it\n    modifies ``curr`` you might loose uncommitted changes. It will warn you\n    about that, but you can overwrite that warning with ``--force``. If you did\n    a ``brig commit`` you can simply use ``brig reset head`` to go back to the\n    last good state.\n"
  },
  {
    "path": "events/backend/backend.go",
    "content": "package backend\n\nimport (\n\t\"context\"\n\t\"io\"\n)\n\n// Message is returned by Subscribe.\n// It encapsulates a single event message coming\n// from another remote.\ntype Message interface {\n\t// Data is the data that is sent alongside the message.\n\tData() []byte\n\t// Source is the addr of the remote.\n\tSource() string\n}\n\n// Subscription is an iterator like interface for accessing and listening\n// for messages from other remotes.\ntype Subscription interface {\n\tio.Closer\n\n\t// Next blocks until receiving a new message or fails with\n\t// context.Canceled if the cancel func was called.\n\tNext(ctx context.Context) (Message, error)\n}\n\n// Backend is the backend that backends of the event subsystem must fulfill.\ntype Backend interface {\n\t// Subscribe returns a new Subscription iterator for `topic`.\n\tSubscribe(ctx context.Context, topic string) (Subscription, error)\n\t// PublishEvent sends `data` to all listening remotes on `topic`.\n\tPublishEvent(topic string, data []byte) error\n}\n"
  },
  {
    "path": "events/capnp/events_api.capnp",
    "content": "using Go = import \"/go.capnp\";\n\n@0xfc8938b535319bfe;\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/events/capnp\");\n\nstruct Event $Go.doc(\"\") {\n    type @0 :Text;\n}\n"
  },
  {
    "path": "events/capnp/events_api.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n)\n\ntype Event struct{ capnp.Struct }\n\n// Event_TypeID is the unique identifier for the type Event.\nconst Event_TypeID = 0x9c032508b61d1d09\n\nfunc NewEvent(s *capnp.Segment) (Event, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Event{st}, err\n}\n\nfunc NewRootEvent(s *capnp.Segment) (Event, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Event{st}, err\n}\n\nfunc ReadRootEvent(msg *capnp.Message) (Event, error) {\n\troot, err := msg.RootPtr()\n\treturn Event{root.Struct()}, err\n}\n\nfunc (s Event) String() string {\n\tstr, _ := text.Marshal(0x9c032508b61d1d09, s.Struct)\n\treturn str\n}\n\nfunc (s Event) Type() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Event) HasType() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Event) TypeBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Event) SetType(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Event_List is a list of Event.\ntype Event_List struct{ capnp.List }\n\n// NewEvent creates a new list of Event.\nfunc NewEvent_List(s *capnp.Segment, sz int32) (Event_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Event_List{l}, err\n}\n\nfunc (s Event_List) At(i int) Event { return Event{s.List.Struct(i)} }\n\nfunc (s Event_List) Set(i int, v Event) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Event_List) String() string {\n\tstr, _ := text.MarshalList(0x9c032508b61d1d09, s.List)\n\treturn str\n}\n\n// Event_Promise is a wrapper for a Event promised by a client call.\ntype Event_Promise struct{ *capnp.Pipeline }\n\nfunc (p Event_Promise) Struct() (Event, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Event{s}, err\n}\n\nconst schema_fc8938b535319bfe = \"x\\xda\\x12\\xd0s`\\x12d\\x8dg`\\x08dae\\xfb\" +\n\t\"\\xcf)+\\xbb\\x8dC\\x95y\\x0e\\x83\\xa0\\x1c\\xe3\\xff\\x7f\\xb3\" +\n\t\"\\x0dM\\xb7Zt\\xfea`edg`0\\x14Ub\" +\n\t\"\\x14Te\\x17T\\x95\\x17t\\xb5g`\\xfc\\x9fZ\\x96\\x9a\" +\n\t\"WR\\xac\\x9f\\xcc\\x9cX\\x90W\\xa0\\x0f\\xe1\\xc5'\\x16d\" +\n\t\"\\xea%\\x83\\x04\\xac\\\\\\xcb\\xd8S\\xf3J\\x02\\x18\\x19\\x03Y\" +\n\t\"\\x18\\x99\\xfe\\xc7M\\x9e\\x1f\\xb8\\xf7Z\\xd7Q\\x86@\\x16&\" +\n\t\"FG\\x01FF\\x1e\\x06\\x06AF.\\x06\\xc6@\\x16f\" +\n\t\"\\x16\\x06\\x06\\x16F\\x06\\x06A^-\\x06\\x86@\\x0ef\\xc6\" +\n\t\"@\\x11&F\\xfe\\x92\\xca\\x82TF\\x1e\\x06&F\\x1e\\x06\" +\n\t\"F@\\x00\\x00\\x00\\xff\\xff\\x11'$\\xac\"\n\nfunc init() {\n\tschemas.Register(schema_fc8938b535319bfe,\n\t\t0x9c032508b61d1d09)\n}\n"
  },
  {
    "path": "events/docs.go",
    "content": "// Package events is the event notification subsystem of brig.\n// It uses the backend's capabilities (in case of IPFS we use pubsub)\n// to publish and subscribe to a topic of events. If an event was received\n// it is forwarded to the caller side in order to react on it.\npackage events\n"
  },
  {
    "path": "events/event.go",
    "content": "package events\n\nimport (\n\t\"fmt\"\n\n\tcapnp_model \"github.com/sahib/brig/events/capnp\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n)\n\nconst (\n\t// UnknownEvent should not happen in practice.\n\tUnknownEvent = EventType(1 << iota)\n\t// FsEvent tells other remotes that our filesystem changed.\n\tFsEvent\n\t// NetEvent indicates to other peers that our network status changed.\n\tNetEvent\n)\n\n// EventType is the type of a\ntype EventType int\n\n// String returns a human readable representation of the event type\nfunc (ev EventType) String() string {\n\tswitch ev {\n\tcase FsEvent:\n\t\treturn \"fs\"\n\tcase NetEvent:\n\t\treturn \"net\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// EventFromString tries to parse `ev` as event type.\n// If it fails, an error will be returned.\nfunc EventFromString(ev string) (EventType, error) {\n\tswitch ev {\n\tcase \"fs\":\n\t\treturn FsEvent, nil\n\tcase \"net\":\n\t\treturn NetEvent, nil\n\tdefault:\n\t\treturn UnknownEvent, fmt.Errorf(\"unknown EventType type: %s\", ev)\n\t}\n}\n\n// Event is a event that can be published or received by the event subsystem.\ntype Event struct {\n\tType   EventType\n\tSource string\n}\n\nfunc (msg *Event) encode() ([]byte, error) {\n\tcapMsg, seg, err := capnp.NewMessage(capnp.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEv, err := capnp_model.NewRootEvent(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capEv.SetType(msg.Type.String()); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn capMsg.Marshal()\n}\n\nfunc decodeMessage(data []byte) (*Event, error) {\n\tif data == nil {\n\t\treturn nil, fmt.Errorf(\"received empty event\")\n\t}\n\n\tcapMsg, err := capnp.Unmarshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEv, err := capnp_model.ReadRootEvent(capMsg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEvType, err := capEv.Type()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tev, err := EventFromString(capEvType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Event{Type: ev}, nil\n}\n\nfunc dedupeEvents(evs []Event) []Event {\n\tseen := make(map[EventType]map[string]bool)\n\tdedupEvs := []Event{}\n\n\tfor _, ev := range evs {\n\t\tseenSources, ok := seen[ev.Type]\n\t\tif ok {\n\t\t\tif seenSources[ev.Source] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\tseenSources = make(map[string]bool)\n\t\t\tseen[ev.Type] = seenSources\n\t\t}\n\n\t\tdedupEvs = append(dedupEvs, ev)\n\t\tseen[ev.Type][ev.Source] = true\n\t}\n\n\treturn dedupEvs\n}\n"
  },
  {
    "path": "events/listener.go",
    "content": "package events\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/events/backend\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"golang.org/x/time/rate\"\n)\n\nconst (\n\tbrigEventTopicPrefix = \"brig/events/\"\n\tmaxBurstSize         = 100\n)\n\n// Listener listens to incoming events from other remotes.\n// For every event, a registered callback can be executed.\n// It does not implement net.Listener and is only similar from a concept POV.\ntype Listener struct {\n\tmu sync.Mutex\n\n\tbk        backend.Backend\n\tcfg       *config.Config\n\tcallbacks map[EventType][]callback\n\tcancels   map[string]context.CancelFunc\n\tevSendCh  chan Event\n\tevRecvCh  chan Event\n\townAddr   string\n\tisClosed  bool\n}\n\ntype callback struct {\n\tfn          func(*Event)\n\tnotifyOnOwn bool\n}\n\n// NewListener constructs a new listener.\n// `cfg` is used to read the event subsystem config.\n// `bk` is a events.Backend.\n// `ownAddr` is the addr of our own node.\nfunc NewListener(cfg *config.Config, bk backend.Backend, ownAddr string) *Listener {\n\tlst := &Listener{\n\t\tbk:        bk,\n\t\tcfg:       cfg,\n\t\townAddr:   ownAddr,\n\t\tcallbacks: make(map[EventType][]callback),\n\t\tcancels:   make(map[string]context.CancelFunc),\n\t\tevSendCh:  make(chan Event, maxBurstSize),\n\t\tevRecvCh:  make(chan Event, maxBurstSize),\n\t}\n\n\tgo lst.eventSendLoop()\n\tgo lst.eventRecvLoop()\n\treturn lst\n}\n\n// Close will close all open listeners and clean up internal resources.\nfunc (lst *Listener) Close() error {\n\tlst.mu.Lock()\n\tdefer lst.mu.Unlock()\n\n\tif lst.isClosed {\n\t\treturn nil\n\t}\n\n\tclose(lst.evSendCh)\n\tclose(lst.evRecvCh)\n\n\tfor _, cancel := range lst.cancels {\n\t\tcancel()\n\t}\n\n\tlst.isClosed = true\n\treturn nil\n}\n\n// RegisterEventHandler remembers that `hdl` should be called whenever a event\n// of type `ev` is being received. If `notifyOnOwn` is true, the handler\n// will only be called for changes that came from our own node. If it is `false`\n// it will only be called for\nfunc (lst *Listener) RegisterEventHandler(ev EventType, notifyOnOwn bool, hdl func(ev *Event)) {\n\tlst.mu.Lock()\n\tdefer lst.mu.Unlock()\n\n\tif lst.isClosed {\n\t\treturn\n\t}\n\n\tlst.callbacks[ev] = append(lst.callbacks[ev], callback{\n\t\tfn:          hdl,\n\t\tnotifyOnOwn: notifyOnOwn,\n\t})\n}\n\nfunc eventLoop(evCh chan Event, interval time.Duration, rps float64, fn func(ev Event)) {\n\ttckr := time.NewTicker(interval)\n\tdefer tckr.Stop()\n\n\t// Use a time window approach to dedupe incoming events\n\t// and to process them in a batch (in order to avoid work)\n\t// We still rate limit while processing too many at the same time.\n\tevents := []Event{}\n\tlim := rate.NewLimiter(rate.Limit(rps), maxBurstSize)\n\n\tfor {\n\t\tselect {\n\t\tcase <-tckr.C:\n\t\t\t// Flush phase. Deduple all events and send them out to the handler\n\t\t\t// in a possibly time throttled manner.\n\t\t\tevents = dedupeEvents(events)\n\t\t\tif len(events) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Apply the rate limiting only after\n\t\t\tr := lim.ReserveN(time.Now(), len(events))\n\t\t\tif !r.OK() {\n\t\t\t\t// would only happen if the burst size is too big.\n\t\t\t\t// drop all events in this special case.\n\t\t\t\tevents = []Event{}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tdelay := r.Delay()\n\t\t\tfor _, ev := range events {\n\t\t\t\tfn(ev)\n\n\t\t\t\t// spread the work over the processing of all events:\n\t\t\t\ttime.Sleep(delay / time.Duration(len(events)))\n\t\t\t}\n\n\t\t\tevents = []Event{}\n\t\tcase ev, ok := <-evCh:\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif len(events) > maxBurstSize {\n\t\t\t\t// drop events if the list gets too big:\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tevents = append(events, ev)\n\t\t}\n\t}\n}\n\nfunc (lst *Listener) eventRecvLoop() {\n\trecvInterval := lst.cfg.Duration(\"recv_interval\")\n\trecvMaxEvRPS := lst.cfg.Float(\"recv_max_events_per_second\")\n\n\teventLoop(lst.evRecvCh, recvInterval, recvMaxEvRPS, func(ev Event) {\n\t\tlst.mu.Lock()\n\t\tif cbs, ok := lst.callbacks[ev.Type]; ok {\n\t\t\tfor _, cb := range cbs {\n\t\t\t\tif !cb.notifyOnOwn {\n\t\t\t\t\tgo cb.fn(&ev)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlst.mu.Unlock()\n\t})\n}\n\nfunc (lst *Listener) eventSendLoop() {\n\townTopic := brigEventTopicPrefix + lst.ownAddr\n\n\tsendInterval := lst.cfg.Duration(\"send_interval\")\n\tsendMaxEvRPS := lst.cfg.Float(\"send_max_events_per_second\")\n\n\teventLoop(lst.evSendCh, sendInterval, sendMaxEvRPS, func(ev Event) {\n\t\tdata, err := ev.encode()\n\t\tif err != nil {\n\t\t\tlog.Errorf(\"event: failed to encode: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tif err := lst.bk.PublishEvent(ownTopic, data); err != nil {\n\t\t\tlog.Errorf(\"event: failed to publish: %v\", err)\n\t\t\treturn\n\t\t}\n\t})\n}\n\nfunc (lst *Listener) publishToSelf(ev Event) {\n\tif cbs, ok := lst.callbacks[ev.Type]; ok {\n\t\tfor _, cb := range cbs {\n\t\t\tif cb.notifyOnOwn {\n\t\t\t\tgo cb.fn(&ev)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// PublishEvent notifies other peers that something on our\n// side changed. The \"something\" is defined by `ev`.\n// PublishEvent does not block.\nfunc (lst *Listener) PublishEvent(ev Event) error {\n\tlst.mu.Lock()\n\tdefer lst.mu.Unlock()\n\n\tif lst.isClosed {\n\t\treturn nil\n\t}\n\n\tif !lst.cfg.Bool(\"enabled\") {\n\t\treturn nil\n\t}\n\n\t// Some submodules (like the gateway) also want to be notified\n\t// when other parts of the same server (fuse, cmdline) changed something.\n\tlst.publishToSelf(ev)\n\n\t// Only send the event if we are not clogged up yet.\n\t// We prioritze the well-being of other systems more by\n\t// not allowing PublishEvent to block.\n\tselect {\n\tcase lst.evSendCh <- ev:\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"lost event: %v\", ev)\n\t}\n}\n\n// SetupListeners sets up the listener to receive events from any of `addrs`.\n// If `ctx` is being canceled, all listeners will stop.\n// SetupListeners can be called several times, each time overwriting and stopping\n// previous listeners.\nfunc (lst *Listener) SetupListeners(ctx context.Context, addrs []string) error {\n\tif lst.isClosed {\n\t\treturn nil\n\t}\n\n\tseen := make(map[string]bool)\n\n\tfor _, addr := range addrs {\n\t\tseen[addr] = true\n\t\tcancel, ok := lst.cancels[addr]\n\t\tif ok {\n\t\t\t// We already have a listener for this.\n\t\t\tcontinue\n\t\t}\n\n\t\tctx, cancel := context.WithCancel(ctx)\n\t\tlst.cancels[addr] = cancel\n\t\tgo lst.listenSingle(ctx, brigEventTopicPrefix+addr)\n\t}\n\n\t// cancel all listeners that are not needed anymore.\n\tfor addr, cancel := range lst.cancels {\n\t\tif !seen[addr] {\n\t\t\tcancel()\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (lst *Listener) listenSingle(ctx context.Context, topic string) error {\n\tsub, err := lst.bk.Subscribe(ctx, topic)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer sub.Close()\n\n\tlog.Debugf(\"listening for events on %s\", topic)\n\tdefer log.Debugf(\"event listener on %s closing\", topic)\n\n\tfor {\n\t\tif !lst.cfg.Bool(\"enabled\") {\n\t\t\t// Do not grind the cpu if it is not enabled.\n\t\t\ttime.Sleep(2 * time.Second)\n\t\t\tcontinue\n\t\t}\n\n\t\tmsg, err := sub.Next(ctx)\n\t\tif msg == nil {\n\t\t\t// Sometimes we might have a case where a ipfs daemon\n\t\t\t// returns an empty message very often - just sleep a bit\n\t\t\t// to save the cpu.\n\t\t\ttime.Sleep(500 * time.Millisecond)\n\t\t\tcontinue\n\t\t}\n\n\t\tif err == io.EOF || err == context.Canceled {\n\t\t\treturn nil\n\t\t} else if err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif msg.Source() == lst.ownAddr {\n\t\t\tcontinue\n\t\t}\n\n\t\tev, err := decodeMessage(msg.Data())\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"received bad message: %v\", err)\n\t\t\tcontinue\n\t\t}\n\n\t\tev.Source = msg.Source()\n\n\t\tif lst.isClosed {\n\t\t\tbreak\n\t\t}\n\n\t\tselect {\n\t\tcase lst.evRecvCh <- *ev:\n\t\tdefault:\n\t\t\tlog.Warningf(\"dropped incoming event: %v\", ev)\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "events/listener_test.go",
    "content": "package events\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/events/mock\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withEventListener(t *testing.T, ownAddr string, fn func(lst *Listener)) {\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\trequire.Nil(t, err)\n\n\tcfg.SetDuration(\"events.recv_interval\", time.Millisecond*1)\n\tcfg.SetDuration(\"events.send_interval\", time.Millisecond*1)\n\n\tcfg.SetFloat(\"events.recv_max_events_per_second\", 0.1)\n\tcfg.SetFloat(\"events.send_max_events_per_second\", 0.1)\n\n\tevb := mock.NewEventsBackend(ownAddr)\n\tlst := NewListener(cfg.Section(\"events\"), evb, ownAddr)\n\tfn(lst)\n\trequire.Nil(t, lst.Close())\n}\n\nfunc withEventListenerPair(t *testing.T, addrA, addrB string, fn func(lstA, lstB *Listener)) {\n\twithEventListener(t, addrA, func(lstA *Listener) {\n\t\twithEventListener(t, addrB, func(lstB *Listener) {\n\t\t\tfn(lstA, lstB)\n\t\t})\n\t})\n}\n\nfunc TestBasicRun(t *testing.T) {\n\tlog.SetLevel(log.DebugLevel)\n\n\twithEventListenerPair(t, \"a\", \"b\", func(lstA, lstB *Listener) {\n\t\teventReceived := false\n\n\t\tlstB.RegisterEventHandler(FsEvent, false, func(ev *Event) {\n\t\t\trequire.Equal(t, \"a\", ev.Source)\n\t\t\trequire.Equal(t, FsEvent, ev.Type)\n\t\t\teventReceived = true\n\t\t})\n\n\t\trequire.Nil(t, lstB.SetupListeners(context.Background(), []string{\"a\"}))\n\n\t\tfor i := 0; i < 100; i++ {\n\t\t\trequire.Nil(t, lstA.PublishEvent(Event{Type: FsEvent}))\n\t\t}\n\n\t\ttime.Sleep(500 * time.Millisecond)\n\t\trequire.True(t, eventReceived)\n\n\t\t// Do a double close:\n\t\trequire.Nil(t, lstA.Close())\n\t\trequire.Nil(t, lstA.PublishEvent(Event{Type: NetEvent}))\n\t\ttime.Sleep(200 * time.Millisecond)\n\t})\n}\n"
  },
  {
    "path": "events/mock/mock.go",
    "content": "package mock\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\teventsBackend \"github.com/sahib/brig/events/backend\"\n)\n\nvar subs map[string][]*mockSubscription\nvar subsLock sync.Mutex\n\nfunc init() {\n\tsubs = make(map[string][]*mockSubscription)\n}\n\n// EventsBackend fakes the event backend by setting up a very basic\n// message broker in memory and tunneling all messages over it.\ntype EventsBackend struct {\n\townAddr string\n}\n\n// NewEventsBackend returns a new EventsBackend\nfunc NewEventsBackend(ownAddr string) *EventsBackend {\n\treturn &EventsBackend{\n\t\townAddr: ownAddr,\n\t}\n}\n\ntype mockMessage struct {\n\tdata   []byte\n\tsource string\n}\n\nfunc (mm mockMessage) Data() []byte {\n\treturn mm.data\n}\n\nfunc (mm mockMessage) Source() string {\n\treturn mm.source\n}\n\ntype mockSubscription struct {\n\tmsgs chan mockMessage\n}\n\nfunc (ms *mockSubscription) Next(ctx context.Context) (eventsBackend.Message, error) {\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn nil, ctx.Err()\n\tcase msg := <-ms.msgs:\n\t\treturn msg, nil\n\t}\n}\n\nfunc (ms *mockSubscription) Close() error {\n\treturn nil\n}\n\n// Subscribe is a mock implementation meant for testing.\nfunc (mb *EventsBackend) Subscribe(ctx context.Context, topic string) (eventsBackend.Subscription, error) {\n\tsubsLock.Lock()\n\tdefer subsLock.Unlock()\n\n\tnewSub := &mockSubscription{\n\t\tmsgs: make(chan mockMessage, 100),\n\t}\n\n\tsubs[topic] = append(subs[topic], newSub)\n\treturn newSub, nil\n}\n\n// PublishEvent is a mock implementation meant for testing.\nfunc (mb *EventsBackend) PublishEvent(topic string, data []byte) error {\n\tsubsLock.Lock()\n\tdefer subsLock.Unlock()\n\n\tsubs, ok := subs[topic]\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tfor _, sub := range subs {\n\t\tdataCopy := make([]byte, len(data))\n\t\tcopy(dataCopy, data)\n\n\t\tsub.msgs <- mockMessage{\n\t\t\tdata:   dataCopy,\n\t\t\tsource: mb.ownAddr,\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "fuse/directory.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"os\"\n\t\"path\"\n\t\"time\"\n\n\t\"context\"\n\n\t\"bazil.org/fuse\"\n\t\"bazil.org/fuse/fs\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Directory represents a directory node.\ntype Directory struct {\n\tpath string\n\tm    *Mount\n}\n\n// Attr is called to retrieve stat-metadata about the directory.\nfunc (dir *Directory) Attr(ctx context.Context, attr *fuse.Attr) error {\n\tdefer logPanic(\"dir: attr\")\n\n\tdebugLog(\"Exec dir attr: %v\", dir.path)\n\tinfo, err := dir.m.fs.Stat(dir.path)\n\tif err != nil {\n\t\treturn errorize(\"dir-attr\", err)\n\t}\n\n\t// Act like the file is owned by the user of the brig process.\n\tattr.Uid = uint32(os.Getuid())\n\tattr.Gid = uint32(os.Getgid())\n\n\tattr.Mode = os.ModeDir | 0755\n\tattr.Size = info.Size\n\tattr.Mtime = info.ModTime\n\tattr.Inode = info.Inode\n\treturn nil\n}\n\n// Lookup is called to lookup a direct child of the directory.\nfunc (dir *Directory) Lookup(ctx context.Context, name string) (fs.Node, error) {\n\tdefer logPanic(\"dir: lookup\")\n\n\tdebugLog(\"Exec lookup: %v\", name)\n\tif name == \".\" {\n\t\treturn dir, nil\n\t}\n\n\tif name == \"..\" && dir.path != \"/\" {\n\t\treturn &Directory{path: path.Dir(dir.path), m: dir.m}, nil\n\t}\n\n\tvar result fs.Node\n\tchildPath := path.Join(dir.path, name)\n\n\tinfo, err := dir.m.fs.Stat(childPath)\n\tif err != nil {\n\t\treturn nil, errorize(\"dir-lookup\", err)\n\t}\n\n\tif info.IsDir {\n\t\tresult = &Directory{path: childPath, m: dir.m}\n\t} else {\n\t\tresult = &File{path: childPath, m: dir.m}\n\t}\n\n\treturn result, nil\n}\n\n// Mkdir is called to create a new directory node inside the receiver.\nfunc (dir *Directory) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) {\n\tdefer logPanic(\"dir: mkdir\")\n\n\tdebugLog(\"fuse-mkdir: %v\", req.Name)\n\n\tchildPath := path.Join(dir.path, req.Name)\n\tif err := dir.m.fs.Mkdir(childPath, false); err != nil {\n\t\tlog.WithFields(log.Fields{\n\t\t\t\"path\":  childPath,\n\t\t\t\"error\": err,\n\t\t}).Warning(\"fuse-mkdir failed\")\n\n\t\treturn nil, fuse.EIO\n\t}\n\n\tnotifyChange(dir.m, 100*time.Millisecond)\n\treturn &Directory{path: childPath, m: dir.m}, nil\n}\n\n// Create is called to create an opened file or directory  as child of the receiver.\nfunc (dir *Directory) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error) {\n\tdefer logPanic(\"dir: create\")\n\n\tvar err error\n\tdebugLog(\"fuse-create: %v\", req.Name)\n\n\tchildPath := path.Join(dir.path, req.Name)\n\tswitch {\n\tcase req.Mode&os.ModeDir != 0:\n\t\terr = dir.m.fs.Mkdir(childPath, false)\n\tdefault:\n\t\terr = dir.m.fs.Touch(childPath)\n\t}\n\n\tif err != nil {\n\t\tlog.WithFields(log.Fields{\n\t\t\t\"path\":  childPath,\n\t\t\t\"error\": err,\n\t\t}).Warning(\"fuse-create failed\")\n\t\treturn nil, nil, fuse.EIO\n\t}\n\n\tfd, err := dir.m.fs.Open(childPath)\n\tif err != nil {\n\t\treturn nil, nil, errorize(\"fuse-dir-create\", err)\n\t}\n\n\tnotifyChange(dir.m, 100*time.Millisecond)\n\tfile := &File{path: childPath, m: dir.m}\n\treturn file, &Handle{fd: fd, m: dir.m}, nil\n}\n\n// Remove is called when a direct child in the directory needs to be removed.\nfunc (dir *Directory) Remove(ctx context.Context, req *fuse.RemoveRequest) error {\n\tdefer logPanic(\"dir: remove\")\n\n\tpath := path.Join(dir.path, req.Name)\n\tif err := dir.m.fs.Remove(path); err != nil {\n\t\tlog.Errorf(\"fuse: dir-remove: `%s` failed: %v\", path, err)\n\t\treturn fuse.ENOENT\n\t}\n\n\tnotifyChange(dir.m, 100*time.Millisecond)\n\treturn nil\n}\n\n// ReadDirAll is called to get a directory listing of the receiver.\nfunc (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {\n\tdefer logPanic(\"dir: readdirall\")\n\n\tdebugLog(\"Exec read dir all\")\n\tselfInfo, err := dir.m.fs.Stat(dir.path)\n\tif err != nil {\n\t\tlog.Debugf(\"Failed to stat: %v\", dir.path)\n\t\treturn nil, errorize(\"fuse-dir-ls-stat\", err)\n\t}\n\n\tparentDir := path.Dir(dir.path)\n\tparInfo, err := dir.m.fs.Stat(parentDir)\n\tif err != nil {\n\t\tlog.Debugf(\"Failed to stat parent: %v\", parentDir)\n\t\treturn nil, errorize(\"fuse-dir-ls-stat-par\", err)\n\t}\n\n\tfuseEnts := []fuse.Dirent{\n\t\t{\n\t\t\tInode: selfInfo.Inode,\n\t\t\tType:  fuse.DT_Dir,\n\t\t\tName:  \".\",\n\t\t},\n\t\t{\n\t\t\tInode: parInfo.Inode,\n\t\t\tType:  fuse.DT_Dir,\n\t\t\tName:  \"..\",\n\t\t},\n\t}\n\n\tentries, err := dir.m.fs.List(dir.path, 1)\n\tif err != nil {\n\t\tlog.Warningf(\"Failed to list entries: %v\", dir.path)\n\t\treturn nil, errorize(\"fuse-dir-readall\", err)\n\t}\n\n\tfor _, entry := range entries {\n\t\tchildType := fuse.DT_File\n\t\tif entry.IsDir {\n\t\t\tchildType = fuse.DT_Dir\n\t\t}\n\n\t\t// If we return the same path (or just \"/\") to fuse\n\t\t// it will return a EIO to userland. Weird.\n\t\tif entry.Path == \"/\" || entry.Path == dir.path {\n\t\t\tcontinue\n\t\t}\n\n\t\tfuseEnts = append(fuseEnts, fuse.Dirent{\n\t\t\tInode: entry.Inode,\n\t\t\tType:  childType,\n\t\t\tName:  path.Base(entry.Path),\n\t\t})\n\t}\n\n\treturn fuseEnts, nil\n}\n\n// Rename or move files or directories\n// TODO: fix info availability,\n//       somehow the info about moved item is not visible for a little while after move\n//       It usually available after a second or two.\n//       How to reproduce\n//       mv file1 file2\n//       ls -l file2\n//       You will see that username, permission, size, date, and so on all in question marks\n//       For what I can see. ls cannot access this particular file, even though\n//       It will appear as an entry in the call to ReadDirAll done by `ls on_dir`\n//       Seems to be cache related issue\nfunc (dir *Directory) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error {\n\tdefer logPanic(\"dir: rename\")\n\n\tdebugLog(\"exec dir rename\")\n\tnewParent, ok := newDir.(*Directory)\n\tif !ok {\n\t\treturn fuse.EIO\n\t}\n\toldPath := path.Join(dir.path, req.OldName)\n\tnewPath := path.Join(newParent.path, req.NewName)\n\tif err := dir.m.fs.Move(oldPath, newPath); err != nil {\n\t\tlog.Warningf(\"fuse: dir: mv: %v\", err)\n\t\treturn err\n\t}\n\n\tnotifyChange(dir.m, 100*time.Millisecond)\n\treturn nil\n}\n\n// Getxattr is called to get a single xattr (extended attribute) of a directory.\nfunc (dir *Directory) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error {\n\tdefer logPanic(\"dir: getxattr\")\n\n\t// Do not worry about req.Size\n\t// fuse will cut it to allowed size and report to the caller that buffer need to be larger\n\txattrs, err := getXattr(dir.m.fs, req.Name, dir.path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp.Xattr = xattrs\n\treturn nil\n}\n\n// Setxattr is called by the setxattr syscall.\nfunc (dir *Directory) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error {\n\tdefer logPanic(\"dir: setxattr\")\n\n\treturn setXattr(dir.m.fs, req.Name, dir.path, req.Xattr)\n}\n\n// Listxattr is called to list all xattrs of this directory.\nfunc (dir *Directory) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error {\n\tdefer logPanic(\"dir: listxattr\")\n\n\t// Do not worry about req.Size\n\t// fuse will cut it to allowed size and report to the caller that buffer need to be larger\n\tresp.Xattr = listXattr()\n\treturn nil\n}\n\nvar _ = fs.NodeGetxattrer(&Directory{})\nvar _ = fs.NodeListxattrer(&Directory{})\n"
  },
  {
    "path": "fuse/doc.go",
    "content": "// Package fuse implements a FUSE layer for brig.\n// Using it, a repository may be represented as a \"normal\" directory.\n// There are three different structs in the FUSE API:\n//\n//     - fuse.Node  : A file or a directory (depending on it's type)\n//\t   - fuse.FS    : The filesystem. Used to find out the root node.\n//     - fuse.Handle: An open file.\n//\n// This implementation offers File (a fuse.Node and fuse.Handle),\n// Dir (fuse.Node) and FS (fuse.FS).\n//\n// Fuse will call the respective handlers if it needs information about your\n// nodes. Each request handlers will usually get a `ctx` used to cancel\n// operations, a request structure `req` with detailed query infos and\n// a response structure `resp` where results are written. Usually the request\n// handlers might return an error or a new node/handle/fs.\n//\n// Every request handle that may run for a long time should be\n// made interruptible. Especially read and write operations should\n// check the ctx.Done() channel passed to each request handler.\npackage fuse\n"
  },
  {
    "path": "fuse/file.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"sync\"\n\n\tlog \"github.com/sirupsen/logrus\"\n\n\t\"bazil.org/fuse\"\n\t\"bazil.org/fuse/fs\"\n)\n\nvar (\n\t// ErrNotCached is returned in offline mode when we don't have a file\n\tErrNotCached = errors.New(\"content is not cached and need to be downloaded\")\n\n\t// ErrTooManyWriters is returned when writers counter is about to be overfilled\n\tErrTooManyWriters = errors.New(\"too many writers for the file\")\n)\n\n// File is a file inside a directory.\ntype File struct {\n\tmu   sync.Mutex // used during handle creation\n\tpath string\n\tm    *Mount\n\thd   *Handle\n}\n\n// Attr is called to get the stat(2) attributes of a file.\nfunc (fi *File) Attr(ctx context.Context, attr *fuse.Attr) error {\n\tdefer logPanic(\"file: attr\")\n\tlog.Debugf(\"fuse-file-attr: %v\", fi.path)\n\n\tinfo, err := fi.m.fs.Stat(fi.path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdebugLog(\"exec file attr: %v\", fi.path)\n\n\tvar filePerm os.FileMode = 0640\n\tattr.Mode = filePerm\n\tif fi.m.options.Offline {\n\t\tisCached, err := fi.m.fs.IsCached(fi.path)\n\t\tif err != nil || !isCached {\n\t\t\tif err != nil {\n\t\t\t\tlog.Errorf(\"IsCached failed for %s with error : %v\", fi.path, err)\n\t\t\t}\n\t\t\t// Uncached file will be shown as symlink\n\t\t\t// We cannot read them in Offline mode,\n\t\t\t// but we can delete such link and overwrite its content\n\t\t\tattr.Mode = os.ModeSymlink | filePerm\n\t\t}\n\t}\n\tattr.Size = info.Size\n\tattr.Mtime = info.ModTime\n\tattr.Inode = info.Inode\n\n\t// Act like the file is owned by the user of the brig process.\n\tattr.Uid = uint32(os.Getuid())\n\tattr.Gid = uint32(os.Getgid())\n\n\t// tools like `du` rely on this for size calculation\n\t// (assuming every fs block takes actual storage, but we only emulate this\n\t// here for compatibility; see man 2 stat for the why for \"512\")\n\tattr.BlockSize = 4096\n\tattr.Blocks = info.Size / 512\n\tif info.Size%uint64(512) > 0 {\n\t\tattr.Blocks++\n\t}\n\n\treturn nil\n}\n\n// Open is called to get an opened handle of a file, suitable for reading and writing.\nfunc (fi *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error) {\n\tdefer logPanic(\"file: open\")\n\tdebugLog(\"fuse-open: %s\", fi.path)\n\tlog.Debugf(\"fuse-file-open: %v with request %v\", fi.path, req)\n\n\t// Check if the file is actually available locally.\n\tif fi.m.options.Offline {\n\t\tisCached, err := fi.m.fs.IsCached(fi.path)\n\t\tif err != nil {\n\t\t\treturn nil, errorize(\"file-is-cached\", err)\n\t\t}\n\n\t\tif !isCached {\n\t\t\treturn nil, errorize(\"file-not-cached\", ErrNotCached)\n\t\t}\n\t}\n\n\tfd, err := fi.m.fs.Open(fi.path)\n\tif err != nil {\n\t\treturn nil, errorize(\"file-open\", err)\n\t}\n\n\tfi.mu.Lock()\n\tif fi.hd == nil {\n\t\thd := Handle{fd: fd, m: fi.m, wasModified: false}\n\t\tfi.hd = &hd\n\t}\n\tfi.hd.fd = fd\n\tfi.mu.Unlock()\n\n\tresp.Flags |= fuse.OpenKeepCache\n\treturn fi.hd, nil\n}\n\n// Setattr is called once an attribute of a file changes.\n// Most importantly, size changes are reported here, e.g. after truncating a\n// file, the size change is noticed here before Open() is called.\nfunc (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error {\n\tdefer logPanic(\"file: setattr\")\n\tlog.Debugf(\"fuse-file-setattr: request %v\", req)\n\n\t// This is called when any attribute of the file changes,\n\t// most importantly the file size. For example it is called when truncating\n\t// the file to zero bytes with a size change of `0`.\n\tswitch {\n\tcase req.Valid&fuse.SetattrSize != 0:\n\t\tif err := fi.hd.truncate(req.Size); err != nil {\n\t\t\treturn errorize(\"file-setattr-size\", err)\n\t\t}\n\tcase req.Valid&fuse.SetattrMtime != 0:\n\t\tif err := fi.m.fs.Touch(fi.path); err != nil {\n\t\t\treturn errorize(\"file-setattr-mtime\", err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Fsync is called when any open buffers need to be written to disk.\n// Currently, fsync is completely ignored.\nfunc (fi *File) Fsync(ctx context.Context, req *fuse.FsyncRequest) error {\n\tdefer logPanic(\"file: fsync\")\n\tlog.Debugf(\"fuse-file-fsync: %v\", fi.path)\n\n\treturn nil\n}\n\n// Getxattr is called to get a single xattr (extended attribute) of a file.\nfunc (fi *File) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *fuse.GetxattrResponse) error {\n\tdefer logPanic(\"file: getxattr\")\n\n\t// Do not worry about req.Size\n\t// fuse will cut it to allowed size and report to the caller that buffer need to be larger\n\txattrs, err := getXattr(fi.m.fs, req.Name, fi.path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp.Xattr = xattrs\n\treturn nil\n}\n\n// Setxattr is called by the setxattr syscall.\nfunc (fi *File) Setxattr(ctx context.Context, req *fuse.SetxattrRequest) error {\n\tdefer logPanic(\"file: setxattr\")\n\n\treturn setXattr(fi.m.fs, req.Name, fi.path, req.Xattr)\n}\n\n// Listxattr is called to list all xattrs of this file.\nfunc (fi *File) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error {\n\tdefer logPanic(\"file: listxattr\")\n\n\t// Do not worry about req.Size\n\t// fuse will cut it to allowed size and report to the caller that buffer need to be larger\n\tresp.Xattr = listXattr()\n\treturn nil\n}\n\n// Readlink reads a symbolic link.\n// This call is triggered when OS tries to see where symlink points\nfunc (fi *File) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error) {\n\tlog.Debugf(\"fuse-file-readlink: %v\", fi.path)\n\tinfo, err := fi.m.fs.Stat(fi.path)\n\tif err != nil {\n\t\treturn \"/brig/backend/ipfs/\", err\n\t}\n\treturn fmt.Sprintf(\"/brig/backend/ipfs/%s\", info.BackendHash), nil\n}\n\n// Compile time checks to see which interfaces we implement:\n// Please update this list when modifying code here.\nvar _ = fs.Node(&File{})\nvar _ = fs.NodeFsyncer(&File{})\nvar _ = fs.NodeGetxattrer(&File{})\nvar _ = fs.NodeListxattrer(&File{})\nvar _ = fs.NodeOpener(&File{})\nvar _ = fs.NodeSetattrer(&File{})\nvar _ = fs.NodeReadlinker(&File{})\nvar _ = fs.NodeSetxattrer(&File{})\n\n// Other interfaces are available, but currently not needed or make sense:\n// var _ = fs.NodeRenamer(&File{})\n// var _ = fs.NodeReadlinker(&File{})\n// var _ = fs.NodeRemover(&File{})\n// var _ = fs.NodeRemovexattrer(&File{})\n// var _ = fs.NodeRequestLookuper(&File{})\n// var _ = fs.NodeAccesser(&File{})\n// var _ = fs.NodeForgetter(&File{})\n// var _ = fs.NodeGetattrer(&File{})\n// var _ = fs.NodeLinker(&File{})\n// var _ = fs.NodeMkdirer(&File{})\n// var _ = fs.NodeMknoder(&File{})\n// var _ = fs.NodeStringLookuper(&File{})\n// var _ = fs.NodeSymlinker(&File{})\n"
  },
  {
    "path": "fuse/fs.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"bazil.org/fuse/fs\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tenableDebugLogs = false\n)\n\nfunc debugLog(format string, args ...interface{}) {\n\tif enableDebugLogs {\n\t\tlog.Debugf(format, args...)\n\t}\n}\n\n// Filesystem is the entry point to the fuse filesystem\ntype Filesystem struct {\n\troot string\n\tm    *Mount\n}\n\n// Root returns the topmost directory node.\n// This depends on what the user choose to select,\n// but usually it's \"/\".\nfunc (fs *Filesystem) Root() (fs.Node, error) {\n\treturn &Directory{path: fs.root, m: fs.m}, nil\n}\n"
  },
  {
    "path": "fuse/fstab.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// FsTabAdd adds the mount at `path` with `name` and `opts` to `cfg`.\n// It does not yet do the mounting.\nfunc FsTabAdd(cfg *config.Config, name, path string, opts MountOptions) error {\n\tfor _, key := range cfg.Keys() {\n\t\tif strings.HasSuffix(key, \".path\") {\n\t\t\tif cfg.String(key) == path {\n\t\t\t\treturn fmt.Errorf(\"mount `%s` at path `%s` already exists\", name, path)\n\t\t\t}\n\t\t}\n\t}\n\n\tif cfg.String(name+\".path\") != \"\" {\n\t\treturn fmt.Errorf(\"mount `%s` already exists\", name)\n\t}\n\n\tif err := cfg.SetString(name+\".path\", path); err != nil {\n\t\treturn err\n\t}\n\n\tif err := cfg.SetBool(name+\".read_only\", opts.ReadOnly); err != nil {\n\t\treturn err\n\t}\n\n\tif err := cfg.SetBool(name+\".offline\", opts.Offline); err != nil {\n\t\treturn err\n\t}\n\n\tif opts.Root == \"\" {\n\t\topts.Root = \"/\"\n\t}\n\n\treturn cfg.SetString(name+\".root\", opts.Root)\n}\n\n// FsTabRemove removes a mount. It does not directly unmount it,\n// call FsTabApply for this.\nfunc FsTabRemove(cfg *config.Config, name string) error {\n\tif !cfg.IsValidKey(name) {\n\t\treturn fmt.Errorf(\"no such mount: %v\", name)\n\t}\n\n\treturn cfg.Reset(name)\n}\n\n// FsTabUnmountAll will unmount all currently mounted mounts.\nfunc FsTabUnmountAll(cfg *config.Config, mounts *MountTable) error {\n\tmounts.mu.Lock()\n\tdefer mounts.mu.Unlock()\n\n\terrors := util.Errors{}\n\tfor _, key := range cfg.Keys() {\n\t\tif strings.HasSuffix(key, \".path\") {\n\t\t\tmountPath := cfg.String(key)\n\t\t\tlog.Debugf(\"Unmount key %s %s\", key, mountPath)\n\t\t\tif mountPath == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif err := mounts.unmount(mountPath); err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn errors.ToErr()\n}\n\n// FsTabApply takes all configured mounts and makes sure that all of them are opened.\nfunc FsTabApply(cfg *config.Config, mounts *MountTable) error {\n\tmounts.mu.Lock()\n\tdefer mounts.mu.Unlock()\n\n\tmountPaths := make(map[string]*MountOptions)\n\tfor _, key := range cfg.Keys() {\n\t\tif strings.HasSuffix(key, \".path\") {\n\t\t\tmountPath := cfg.String(key)\n\n\t\t\tentry := &MountOptions{}\n\t\t\tmountPaths[mountPath] = entry\n\n\t\t\treadOnlyKey := key[:len(key)-len(\".path\")] + \".read_only\"\n\t\t\tentry.ReadOnly = cfg.Bool(readOnlyKey)\n\n\t\t\tofflineKey := key[:len(key)-len(\".path\")] + \".offline\"\n\t\t\tentry.Offline = cfg.Bool(offlineKey)\n\n\t\t\trootPathKey := key[:len(key)-len(\".path\")] + \".root\"\n\t\t\tentry.Root = cfg.String(rootPathKey)\n\t\t\tif entry.Root == \"\" {\n\t\t\t\tentry.Root = \"/\"\n\t\t\t}\n\t\t}\n\t}\n\n\terrors := util.Errors{}\n\tfor path, mount := range mounts.m {\n\t\t// Do not do anything when the path / options did not change.\n\t\topts, isConfigured := mountPaths[path]\n\t\tif isConfigured && mount.EqualOptions(*opts) {\n\t\t\tdelete(mountPaths, path)\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := mounts.unmount(path); err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\n\tfor mountPath, options := range mountPaths {\n\t\tif err := os.MkdirAll(mountPath, 0700); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif _, err := mounts.addMount(mountPath, *options); err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\n\treturn errors.ToErr()\n}\n\n// FsTabEntry is a representation of one entry in the filesystem tab.\ntype FsTabEntry struct {\n\tName     string\n\tPath     string\n\tRoot     string\n\tActive   bool\n\tReadOnly bool\n\tOffline  bool\n}\n\n// FsTabList lists all entries in the filesystem tab in a nice way.\nfunc FsTabList(cfg *config.Config, mounts *MountTable) ([]FsTabEntry, error) {\n\tmounts.mu.Lock()\n\tdefer mounts.mu.Unlock()\n\n\tmountMap := make(map[string]*FsTabEntry)\n\tfor _, key := range cfg.Keys() {\n\t\tsplit := strings.Split(key, \".\")\n\t\tif len(split) < 3 || split[0] != \"mounts\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tmountName := split[1]\n\t\tif _, ok := mountMap[mountName]; !ok {\n\t\t\tmountMap[mountName] = &FsTabEntry{}\n\t\t}\n\n\t\tswitch split[2] {\n\t\tcase \"path\":\n\t\t\tpath := cfg.String(key)\n\t\t\tmountMap[mountName].Path = path\n\n\t\t\t_, isActive := mounts.m[path]\n\t\t\tmountMap[mountName].Active = isActive\n\t\tcase \"read_only\":\n\t\t\tmountMap[mountName].ReadOnly = cfg.Bool(key)\n\t\tcase \"offline\":\n\t\t\tmountMap[mountName].Offline = cfg.Bool(key)\n\t\tcase \"root\":\n\t\t\tmountMap[mountName].Root = cfg.String(key)\n\t\t}\n\t}\n\n\tsortedMounts := []FsTabEntry{}\n\tfor name, entry := range mountMap {\n\t\tentry.Name = name\n\t\tsortedMounts = append(sortedMounts, *entry)\n\t}\n\n\tsort.Slice(sortedMounts, func(i, j int) bool {\n\t\treturn sortedMounts[i].Name < sortedMounts[j].Name\n\t})\n\n\treturn sortedMounts, nil\n}\n"
  },
  {
    "path": "fuse/fuse_test.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/binary\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/mdcache\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"bazil.org/fuse/fs/fstestutil/spawntest\"\n\t\"bazil.org/fuse/fs/fstestutil/spawntest/httpjson\"\n)\n\n// The routines which manage fuse layer\n// and OS dependent code (os.Open, and similar)  MUST BE SEPARATE OS PROCESSES.\n// Note: not different go routines but processes!\n// See https://github.com/bazil/fuse/issues/264#issuecomment-727269770\n// This separation happens automatically during normal brig operations, but\n// TESTING FUSE LAYER IN GO IS VERY TRICKY.\n// See brig relevant discussion at\n// https://github.com/sahib/brig/pull/77#issuecomment-754831080\n// However this issue is general for any go program from version 1.9,\n// as can be seen in references to the issue.\n//\n// bazil/fuse offers \"bazil.org/fuse/fs/fstestutil/spawntest\"\n// infrastructure which helps run tests in different communicating via socket processes.\n\nfunc init() {\n\tlog.SetLevel(log.ErrorLevel)\n}\n\nfunc TestMain(m *testing.M) {\n\thelpers.AddFlag(flag.CommandLine)\n\tflag.Parse()\n\thelpers.RunIfNeeded()\n\tos.Exit(m.Run())\n}\n\ntype fuseCatFSHelp struct{}\n\n// These helpers will be requested from test and executed on the server\n// which is managing catfs-fuse connection (started within test)\nfunc (fch *fuseCatFSHelp) ServeHTTP(w http.ResponseWriter, req *http.Request) {\n\tswitch req.URL.Path {\n\tcase \"/mount\":\n\t\thttpjson.ServePOST(fch.makeCatfsAndFuseMount).ServeHTTP(w, req)\n\tcase \"/unmount\":\n\t\thttpjson.ServePOST(fch.unmountFuseAndCloseDummyCatFS).ServeHTTP(w, req)\n\tcase \"/fuseReMount\":\n\t\thttpjson.ServePOST(fch.makeFuseReMount).ServeHTTP(w, req)\n\tcase \"/catfsStage\":\n\t\thttpjson.ServePOST(fch.catfsStage).ServeHTTP(w, req)\n\tcase \"/catfsGetData\":\n\t\thttpjson.ServePOST(fch.catfsGetData).ServeHTTP(w, req)\n\tdefault:\n\t\thttp.NotFound(w, req)\n\t}\n}\n\nfunc makeDummyCatFS(dbPath string) (catfsFuseInfo, error) {\n\tbackend := catfs.NewMemFsBackend()\n\towner := \"alice\"\n\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\tif err != nil {\n\t\tlog.Fatalf(\"Could not get default catFS config: %v\", err)\n\t\treturn catfsFuseInfo{}, err\n\t}\n\n\tmdc, err := mdcache.New(mdcache.Options{\n\t\tMaxMemoryUsage: 1024 * 1024 * 1024,\n\t})\n\n\tif err != nil {\n\t\tlog.Fatalf(\"unable to instance : %v\", err)\n\t\treturn catfsFuseInfo{}, err\n\t}\n\n\tcfs, err := catfs.NewFilesystem(\n\t\tbackend,\n\t\tdbPath,\n\t\towner,\n\t\tfalse,\n\t\tcfg.Section(\"fs\"),\n\t\tnil,\n\t\tmdc,\n\t)\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to create catfs filesystem: %v\", err)\n\t\treturn catfsFuseInfo{}, err\n\t}\n\tcfInfo := catfsFuseInfo{}\n\tcfInfo.cfs = cfs\n\tcfInfo.dbPath = dbPath\n\n\treturn cfInfo, err\n}\n\ntype nothing struct{} // use it to send empty request or responses to server\n\ntype catfsFuseInfo struct {\n\tcfs       *catfs.FS\n\tdbPath    string\n\tfuseMount *Mount\n}\n\n// cfInfo will be in the global space for the server\n// which manage fuse mount connection to the catFS\nvar cfInfo catfsFuseInfo\n\ntype mountingRequest struct {\n\tDbPath  string\n\tMntPath string\n\tOpts    MountOptions\n}\n\nfunc (fch *fuseCatFSHelp) makeCatfsAndFuseMount(ctx context.Context, req mountingRequest) (*nothing, error) {\n\tvar err error\n\tcfInfo, err = makeDummyCatFS(req.DbPath)\n\tif err != nil {\n\t\tlog.Errorf(\"cannot make catFS in %v\", cfInfo.dbPath)\n\t\treturn &nothing{}, err\n\t}\n\n\tfuseMount, err := makeFuseMount(cfInfo.cfs, req.MntPath, req.Opts)\n\tif err != nil {\n\t\tlog.Errorf(\"cannot mount catfs fuse file system to %v\", req.MntPath)\n\t\treturn &nothing{}, err\n\t}\n\tcfInfo.fuseMount = fuseMount\n\treturn &nothing{}, err\n}\n\nfunc (fch *fuseCatFSHelp) makeFuseReMount(ctx context.Context, req mountingRequest) (*nothing, error) {\n\tfuseMount, err := makeFuseMount(cfInfo.cfs, req.MntPath, req.Opts)\n\tif err != nil {\n\t\tlog.Errorf(\"cannot mount catfs fuse file system to %v\", req.MntPath)\n\t\treturn &nothing{}, err\n\t}\n\tcfInfo.fuseMount = fuseMount\n\treturn &nothing{}, err\n}\n\nfunc (fch *fuseCatFSHelp) unmountFuseAndCloseDummyCatFS(ctx context.Context, req nothing) (*nothing, error) {\n\tdefer os.RemoveAll(cfInfo.fuseMount.Dir)\n\tdefer os.RemoveAll(cfInfo.dbPath)\n\t// first unmount fuse directory\n\tif err := lazyUnmount(cfInfo.fuseMount.Dir); err != nil {\n\t\tskipableErr := \"exit status 1: fusermount: entry for \" + cfInfo.fuseMount.Dir + \" not found in /etc/mtab\"\n\t\tlog.Debug(skipableErr)\n\t\tif err.Error() != skipableErr {\n\t\t\treturn &nothing{}, err\n\t\t}\n\t}\n\n\t// now close catFS\n\terr := cfInfo.cfs.Close()\n\tif err != nil {\n\t\tlog.Fatalf(\"Could not close catfs filesystem: %v\", err)\n\t}\n\treturn &nothing{}, err\n}\n\nfunc makeFuseMount(cfs *catfs.FS, mntPath string, opts MountOptions) (*Mount, error) {\n\t// Make sure to unmount any mounts that are there.\n\t// Possibly there are some leftovers from previous failed runs.\n\tif err := lazyUnmount(mntPath); err != nil {\n\t\tskipableErr := \"exit status 1: fusermount: entry for \" + mntPath + \" not found in /etc/mtab\"\n\t\tlog.Debug(skipableErr)\n\t\tif err.Error() != skipableErr {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := os.MkdirAll(mntPath, 0777); err != nil {\n\t\tlog.Fatalf(\"Unable to create empty mount dir: %v\", err)\n\t\treturn nil, err\n\t}\n\n\tmount, err := NewMount(cfs, mntPath, nil, opts)\n\tif err != nil {\n\t\tlog.Fatalf(\"Cannot create mount: %v\", err)\n\t\treturn nil, err\n\t}\n\treturn mount, err\n}\n\ntype catfsPayload struct {\n\tPath string\n\tData []byte\n}\n\nfunc (fch *fuseCatFSHelp) catfsStage(ctx context.Context, req catfsPayload) (*nothing, error) {\n\terr := cfInfo.cfs.Stage(req.Path, bytes.NewReader(req.Data))\n\treturn &nothing{}, err\n}\n\n// Get data from a file stored by catFS\nfunc (fch *fuseCatFSHelp) catfsGetData(ctx context.Context, req catfsPayload) (*catfsPayload, error) {\n\tout := catfsPayload{}\n\tout.Path = req.Path\n\n\tstream, err := cfInfo.cfs.Cat(req.Path)\n\tif err != nil {\n\t\tlog.Fatalf(\"Could not get stream for a catfs file: %v\", err)\n\t\treturn &out, err\n\t}\n\tresult := bytes.NewBuffer(nil)\n\t_, err = stream.WriteTo(result)\n\tif err != nil {\n\t\tlog.Fatalf(\"Streaming to a buffer failed: %v\", err)\n\t\treturn &out, err\n\t}\n\tout.Data = result.Bytes()\n\n\treturn &out, err\n}\n\nvar helpers spawntest.Registry\nvar fuseCatFSHelper = helpers.Register(\"fuseCatFSHelp\", &fuseCatFSHelp{})\n\ntype mountInfo struct { // fuse related info available to OS layer\n\tDir  string\n\tOpts MountOptions\n}\n\n// Call helper for unmount and cleanup\nfunc callUnMount(ctx context.Context, t testing.TB, control *spawntest.Control) {\n\tif err := control.JSON(\"/unmount\").Call(ctx, nothing{}, &nothing{}); err != nil {\n\t\tt.Fatalf(\"calling helper: %v\", err)\n\t}\n}\n\n// Spawns helper, prepare catFS, connects it to fuse layer, and execute function f\nfunc withMount(t testing.TB, opts MountOptions, f func(ctx context.Context, control *spawntest.Control, mount *mountInfo)) {\n\t// set up mounts\n\tctx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\n\tcontrol := fuseCatFSHelper.Spawn(ctx, t)\n\tdefer control.Close()\n\n\tdbPath, err := ioutil.TempDir(\"\", \"catfs-db-test\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create temp dir for catFS: %v\", err)\n\t}\n\n\treq := mountingRequest{\n\t\tDbPath:  dbPath,\n\t\tMntPath: filepath.Join(os.TempDir(), \"catfs-fuse-mountdir\"),\n\t\tOpts:    opts,\n\t}\n\n\tif err := control.JSON(\"/mount\").Call(ctx, req, &nothing{}); err != nil {\n\t\tt.Fatalf(\"calling helper: %v\", err)\n\t}\n\tdefer callUnMount(ctx, t, control)\n\n\t// function which required mounts\n\tf(ctx, control, &mountInfo{\n\t\tDir:  req.MntPath,\n\t\tOpts: req.Opts,\n\t})\n}\n\nfunc checkFuseFileMatchToCatFS(ctx context.Context, t *testing.T, control *spawntest.Control, fusePath string, catfsPath string) {\n\t// checks if OS file content matches catFS file content\n\tfuseData, err := ioutil.ReadFile(fusePath)\n\trequire.NoError(t, err)\n\n\t// is catFS seeing the same data\n\tcheckCatfsFileContent(ctx, t, control, catfsPath, fuseData)\n}\n\nfunc checkCatfsFileContent(ctx context.Context, t *testing.T, control *spawntest.Control, catfsPath string, expected []byte) {\n\treq := catfsPayload{Path: catfsPath}\n\tout := catfsPayload{}\n\trequire.NoError(t, control.JSON(\"/catfsGetData\").Call(ctx, req, &out))\n\trequire.Equal(t, len(out.Data), len(expected))\n\tif out.Data == nil {\n\t\t// this is special for the 0 length data\n\t\tout.Data = []byte{}\n\t}\n\trequire.Equal(t, out.Data, expected)\n}\n\n// Finally we ready to do tests\n\n// Tests for spawntest infrastructure related tests\n\n// Just checks that our catfsStage interface to catFS does not error out\nfunc TestCatfsStage(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tdataIn := []byte{1, 2, 3, 4}\n\t\tfilePath := \"StagingTest.bin\"\n\t\treq := catfsPayload{Path: filePath, Data: dataIn}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t})\n}\n\nfunc TestCatfsGetData(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tdataIn := []byte{1, 2, 3, 4}\n\t\tfilePath := \"StageAndReadTest.bin\"\n\t\treq := catfsPayload{Path: filePath, Data: dataIn}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\n\t\treq.Data = []byte{}\n\t\tout := catfsPayload{}\n\t\trequire.NoError(t, control.JSON(\"/catfsGetData\").Call(ctx, req, &out))\n\t\trequire.Equal(t, out.Data, dataIn)\n\t})\n}\n\n// Main fuse layer tests\n\nvar (\n\tDataSizes = []int64{\n\t\t0, 1, 2, 4, 8, 16, 32, 64, 1024,\n\t\t2048, 4095, 4096, 4097, 147611,\n\t\t2*1024*1024 + 123, // in case if we have buffer size interference\n\t}\n)\n\nfunc TestRead(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tfor _, size := range DataSizes {\n\t\t\tt.Run(fmt.Sprintf(\"%d\", size), func(t *testing.T) {\n\t\t\t\thelloData := testutil.CreateDummyBuf(size)\n\n\t\t\t\t// Add a simple file:\n\t\t\t\tcatfsFilePath := fmt.Sprintf(\"/hello_from_catfs_%d\", size)\n\t\t\t\treq := catfsPayload{Path: catfsFilePath, Data: helloData}\n\t\t\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\t\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, helloData)\n\n\t\t\t\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\t\t\t\tcheckFuseFileMatchToCatFS(ctx, t, control, fuseFilePath, catfsFilePath)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc TestFileXattr(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tsize := int64(4)\n\t\thelloData := testutil.CreateDummyBuf(size)\n\n\t\t// Add a simple file:\n\t\tcatfsFilePath := fmt.Sprintf(\"/hello_from_catfs_%d\", size)\n\t\treq := catfsPayload{Path: catfsFilePath, Data: helloData}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, helloData)\n\n\t\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\n\t\t// no let's see all the extended attributes list\n\t\tresponse := make([]byte, 1024*4) // large buffer to fit everything\n\t\tsz, err := syscall.Listxattr(fuseFilePath, response)\n\t\trequire.NoError(t, err)\n\t\tresponse = response[:sz]\n\t\treceivedAttrs := bytes.Split(response, []byte{0})\n\t\t// every response should belong to valid attributes\n\t\tfor _, attr := range receivedAttrs {\n\t\t\tif len(attr) == 0 {\n\t\t\t\t// protecting against empty chunk after split delimiter\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t_, ok := xattrMap[string(attr)]\n\t\t\trequire.Truef(t, ok, \"Invalid extended attribute '%s'\", attr)\n\t\t}\n\t\t// every valid attribute should be in received Attrs list\n\t\tfor attr := range xattrMap {\n\t\t\trequire.Containsf(t, receivedAttrs, []uint8(attr), \"Received attributes are missing '%s'\", attr)\n\t\t}\n\t\t// now let's check some attributes values\n\t\t// Note hashes are hard without direct access to catfs\n\t\t// which is accessed in different process\n\t\tresponse = make([]byte, 64) // large buffer to fit everything\n\t\tsz, err = syscall.Getxattr(fuseFilePath, \"user.brig.pinned\", response)\n\t\trequire.NoError(t, err)\n\t\tresponse = response[:sz]\n\t\trequire.Equal(t, \"yes\", string(response))\n\n\t\tresponse = make([]byte, 64) // large buffer to fit everything\n\t\tsz, err = syscall.Getxattr(fuseFilePath, \"user.brig.explicitly_pinned\", response)\n\t\trequire.NoError(t, err)\n\t\tresponse = response[:sz]\n\t\trequire.Equal(t, \"no\", string(response))\n\t})\n}\n\nfunc TestWrite(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tfor _, size := range DataSizes {\n\t\t\tt.Run(fmt.Sprintf(\"%d\", size), func(t *testing.T) {\n\t\t\t\thelloData := testutil.CreateDummyBuf(size)\n\n\t\t\t\tcatfsFilePath := fmt.Sprintf(\"/hello_from_fuse%d\", size)\n\t\t\t\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\n\t\t\t\t// Write a simple file via the fuse layer:\n\t\t\t\terr := ioutil.WriteFile(fuseFilePath, helloData, 0644)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"Could not write simple file via fuse layer: %v\", err)\n\t\t\t\t}\n\t\t\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, helloData)\n\t\t\t})\n\t\t}\n\t})\n}\n\n// Regression test for copying larger file to the mount.\nfunc TestTouchWrite(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tfor _, size := range DataSizes {\n\t\t\tt.Run(fmt.Sprintf(\"%d\", size), func(t *testing.T) {\n\n\t\t\t\tcatfsFilePath := fmt.Sprintf(\"/empty_at_creation_by_catfs_%d\", size)\n\t\t\t\treq := catfsPayload{Path: catfsFilePath, Data: []byte{}}\n\n\t\t\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\t\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, req.Data)\n\n\t\t\t\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\n\t\t\t\t// Write a simple file via the fuse layer:\n\t\t\t\thelloData := testutil.CreateDummyBuf(size)\n\t\t\t\terr := ioutil.WriteFile(fuseFilePath, helloData, 0644)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"Could not write simple file via fuse layer: %v\", err)\n\t\t\t\t}\n\t\t\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, helloData)\n\t\t\t})\n\t\t}\n\t})\n}\n\n// Regression test for copying a file to a subdirectory.\nfunc TestTouchWriteSubdir(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tfile := \"donald.png\"\n\t\tsubDirPath := \"sub\"\n\t\tcatfsFilePath := filepath.Join(subDirPath, file)\n\n\t\tfuseSubDirPath := filepath.Join(mount.Dir, subDirPath)\n\t\tfuseFilePath := filepath.Join(fuseSubDirPath, file)\n\n\t\trequire.NoError(t, os.Mkdir(fuseSubDirPath, 0644))\n\n\t\texpected := []byte{1, 2, 3}\n\t\trequire.NoError(t, ioutil.WriteFile(fuseFilePath, expected, 0644))\n\n\t\tcheckCatfsFileContent(ctx, t, control, catfsFilePath, expected)\n\t})\n}\n\nfunc TestReadOnlyFs(t *testing.T) {\n\topts := MountOptions{\n\t\tReadOnly: true,\n\t}\n\twithMount(t, opts, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\txData := []byte{1, 2, 3}\n\t\treq := catfsPayload{Path: \"/x.png\", Data: xData}\n\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, \"x.png\", xData)\n\n\t\t// Do some allowed io to check if the fs is actually working.\n\t\t// The test does not check on the kind of errors otherwise.\n\t\txPath := filepath.Join(mount.Dir, \"x.png\")\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, xPath, \"x.png\")\n\n\t\t// Try creating a new file:\n\t\tyPath := filepath.Join(mount.Dir, \"y.png\")\n\t\trequire.NotNil(t, ioutil.WriteFile(yPath, []byte{4, 5, 6}, 0600))\n\n\t\t// Try modifying an existing file:\n\t\trequire.NotNil(t, ioutil.WriteFile(xPath, []byte{4, 5, 6}, 0600))\n\n\t\tdirPath := filepath.Join(mount.Dir, \"sub\")\n\t\trequire.NotNil(t, os.Mkdir(dirPath, 0644))\n\t})\n}\n\nfunc TestWithRoot(t *testing.T) {\n\twithMount(t, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tdata := []byte{1, 2, 3}\n\t\t// Populate catFS with some files in different directories\n\t\treq := catfsPayload{Path: \"/u.png\", Data: data}\n\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, req.Path, data)\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, filepath.Join(mount.Dir, req.Path), req.Path)\n\n\t\tdata = []byte{2, 3, 4}\n\t\treq = catfsPayload{Path: \"/a/x.png\", Data: data}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, req.Path, data)\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, filepath.Join(mount.Dir, req.Path), req.Path)\n\n\t\tdata = []byte{3, 4, 5}\n\t\treq = catfsPayload{Path: \"/a/b/y.png\", Data: data}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, req.Path, data)\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, filepath.Join(mount.Dir, req.Path), req.Path)\n\n\t\tdata = []byte{4, 5, 6}\n\t\treq = catfsPayload{Path: \"/a/b/c/z.png\", Data: data}\n\t\trequire.NoError(t, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\t\tcheckCatfsFileContent(ctx, t, control, req.Path, data)\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, filepath.Join(mount.Dir, req.Path), req.Path)\n\n\t\t// Now we need to remount fuse with different root directory\n\t\tremntReq := mountingRequest{\n\t\t\tMntPath: mount.Dir,\n\t\t\tOpts:    MountOptions{Root: \"/a/b\"},\n\t\t}\n\t\trequire.NoError(t, control.JSON(\"/fuseReMount\").Call(ctx, remntReq, &nothing{}))\n\t\tmount.Opts = remntReq.Opts // update with new mount options\n\n\t\t// See if fuse indeed provides different root\n\t\t// Read already existing file\n\t\tyPath := filepath.Join(mount.Dir, \"y.png\")\n\t\tcheckFuseFileMatchToCatFS(ctx, t, control, yPath, \"/a/b/y.png\")\n\n\t\t// Write to a new file\n\t\tdata = []byte{5, 6, 7}\n\t\tnewPath := filepath.Join(mount.Dir, \"new.png\")\n\n\t\trequire.NoError(t, ioutil.WriteFile(newPath, data, 0644))\n\t\tcheckCatfsFileContent(ctx, t, control, \"/a/b/new.png\", data)\n\n\t\t// Attempt to read file above mounted root\n\t\tinAccessiblePath := filepath.Join(mount.Dir, \"u.png\")\n\t\t_, err := ioutil.ReadFile(inAccessiblePath)\n\t\trequire.NotNil(t, err)\n\t})\n}\n\n// Benchmarks\n\nvar (\n\tBenchmarkDataSizes = []int64{\n\t\t0,\n\t\t1024, 2 * 1024, 16 * 1024, 64 * 1024, 128 * 1024,\n\t\t1 * 1024 * 1024, 16 * 1024 * 1024,\n\t}\n)\n\nfunc stageAndRead(ctx context.Context, b *testing.B, control *spawntest.Control, mount *mountInfo, label string, data []byte) {\n\tsize := len(data)\n\t// stage data to catFS\n\tcatfsFilePath := fmt.Sprintf(\"%s_file_%d\", label, size)\n\treq := catfsPayload{Path: catfsFilePath, Data: data}\n\trequire.NoError(b, control.JSON(\"/catfsStage\").Call(ctx, req, &nothing{}))\n\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\n\t// Read it back via fuse\n\tb.Run(fmt.Sprintf(\"%s_Size_%d\", label, size), func(b *testing.B) {\n\t\tfor n := 0; n < b.N; n++ {\n\t\t\tioutil.ReadFile(fuseFilePath)\n\t\t}\n\t})\n}\n\nfunc BenchmarkRead(b *testing.B) {\n\twithMount(b, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\tfor _, size := range BenchmarkDataSizes {\n\t\t\t// Check how fast is readout of a file with compressible content\n\t\t\tdata := testutil.CreateDummyBuf(size)\n\t\t\tstageAndRead(ctx, b, control, mount, \"CompressibleContent\", data)\n\n\t\t\t// Check how fast is readout of a file with random/uncompressible content\n\t\t\tdata = testutil.CreateRandomDummyBuf(size, 1)\n\t\t\tstageAndRead(ctx, b, control, mount, \"RandomContent\", data)\n\t\t}\n\t})\n}\n\nfunc writeDataNtimes(b *testing.B, data []byte, ntimes int) {\n\t// Writing could be very space demanding even for a small size,\n\t// Since benchmark runs many-many times, it will consume a lot of space.\n\t// We have to remount everything every time to start with clean catFS DB.\n\t// Consequently, this test takes long time, since mounting is long operation.\n\trequire.True(b, ntimes > 0, \"ntimes must be positive\")\n\t// note ntimes =0 is bad too,\n\t// since execution time between StartTimer/StopTimer is too short/jittery\n\t// and benchmarks run forever\n\tlabel := \"dummy\"\n\tsize := len(data)\n\tfor n := 0; n < b.N; n++ {\n\t\tb.StopTimer()\n\t\twithMount(b, MountOptions{}, func(ctx context.Context, control *spawntest.Control, mount *mountInfo) {\n\t\t\t// Check how fast is write to a file with compressible content\n\t\t\tcatfsFilePath := fmt.Sprintf(\"%s_file_%d\", label, size)\n\t\t\tfuseFilePath := filepath.Join(mount.Dir, catfsFilePath)\n\n\t\t\tb.StartTimer()\n\t\t\tfor i := 0; i < ntimes; i++ {\n\t\t\t\tif len(data) > 0 {\n\t\t\t\t\t// modification of one byte is enough\n\t\t\t\t\t// to generate new encrypted content for the backend\n\t\t\t\t\tbinary.LittleEndian.PutUint64(data[0:8], uint64(i))\n\t\t\t\t}\n\t\t\t\trequire.NoError(b, ioutil.WriteFile(fuseFilePath, data, 0644))\n\t\t\t}\n\t\t\tb.StopTimer()\n\t\t})\n\t}\n}\n\nvar (\n\t// keep this low or you might run out of space\n\tNumberOfOverWrites = []int{\n\t\t1, 2, 5,\n\t}\n)\n\nfunc BenchmarkWrite(b *testing.B) {\n\tsize := int64(10 * 1024 * 1024)\n\n\tfor _, Ntimes := range NumberOfOverWrites {\n\t\t// Check how fast is write to a file with compressible content\n\t\tdata := testutil.CreateDummyBuf(size)\n\t\tprefix := fmt.Sprintf(\"Owerwrite_%d\", Ntimes)\n\t\tlabel := fmt.Sprintf(\"%s/CompressibleContent_Size_%d\", prefix, size)\n\t\tb.Run(label, func(b *testing.B) {\n\t\t\twriteDataNtimes(b, data, Ntimes)\n\t\t})\n\n\t\t// Check how fast is write to a file with random/uncompressible content\n\t\tdata = testutil.CreateRandomDummyBuf(size, 1)\n\t\tlabel = fmt.Sprintf(\"%s/RandomContent_Size_%d\", prefix, size)\n\t\tb.Run(label, func(b *testing.B) {\n\t\t\twriteDataNtimes(b, data, Ntimes)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "fuse/fusetest/client.go",
    "content": "package fusetest\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/util\"\n)\n\n// Client allows controlling the\ntype Client struct {\n\thttpClient *http.Client\n}\n\n// Dial returns a client suitable for controlling a fusetest server.\nfunc Dial(url string) (*Client, error) {\n\tscheme, addr, err := util.URLToSchemeAndAddr(url)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient := &http.Client{\n\t\tTransport: &http.Transport{\n\t\t\tDialContext: func(_ context.Context, _, _ string) (net.Conn, error) {\n\t\t\t\treturn net.Dial(scheme, addr)\n\t\t\t},\n\t\t},\n\t}\n\treturn &Client{\n\t\thttpClient: httpClient,\n\t}, nil\n}\n\n// QuitServer sends a command that tells the server to quit.\n// The request will block until the quit was carried out.\nfunc (ctl *Client) QuitServer() error {\n\treq, err := http.NewRequest(\"GET\", \"/quit\", nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = ctl.httpClient.Do(req)\n\treturn err\n}\n"
  },
  {
    "path": "fuse/fusetest/doc.go",
    "content": "// Package fusetest offers an easy way to test our fuse code.\n//\n// What this does is start another process with an HTTP server in it.\n// Beside the HTTP server the fuse mount is mounted at a specified path,\n// with the specified options. A client can connect to the server and control\n// it and/or a client program can access files in the fuse mount.\n//\n// The reason why this is another process is an issue with Go:\n// When serving and accessing the FUSE mount in the same we might enter\n// an unrecoverable deadlock where file I/O related syscalls get stuck\n// because the go routine that serve this syscall live in the same process\n// but do not get called because only N parallel go routines can be run.\n//\n// Reference:\n//\n// * https://github.com/bazil/fuse/issues/264#issuecomment-727269770\n// * https://github.com/sahib/brig/pull/77#issuecomment-754831080\n//\n// bazil/fuse offers an spawntest utility that does something very similar,\n// but we also this package in benchmarks and spawntest expects to be called\n// from tests and thus requires the testing package.\npackage fusetest\n"
  },
  {
    "path": "fuse/fusetest/helper.go",
    "content": "package fusetest\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n)\n\n// LaunchAsProcess will start the fusemock server in another process.\n// This will serve a fuse mount on the specified directory and will listen\n// to commands on a http socket.\n//\n// NOTE: This will only work if you call this from a part of the main brig\n//       executable. This relies on the executable to do start the server\n//       when being called as »$0 debug fusemock«. Therefore this will not\n//       work in tests, but it should be easy to adapt.\n//\n// The returned process can be used to terminate the program.\n// You should use the provided Dial() / Quit method to cleanup though.\nfunc LaunchAsProcess(opts Options) (*os.Process, error) {\n\tmyself, err := os.Executable()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\targs := []string{\n\t\t\"debug\",\n\t\t\"fusemock\",\n\t\t\"--mount-path\", opts.MountPath,\n\t\t\"--catfs-path\", opts.CatfsPath,\n\t\t\"--ipfs-path-or-multiaddr\", opts.IpfsPathOrMultiaddr,\n\t\t\"--url\", opts.URL,\n\t}\n\n\tif opts.MountReadOnly {\n\t\targs = append(args, \"--mount-ro\")\n\t}\n\n\tif opts.MountOffline {\n\t\targs = append(args, \"--mount-offline\")\n\t}\n\n\tcmd := exec.Command(myself, args...)\n\tif err := cmd.Start(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn cmd.Process, nil\n}\n"
  },
  {
    "path": "fuse/fusetest/server.go",
    "content": "package fusetest\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"time\"\n\n\tlog \"github.com/sirupsen/logrus\"\n\n\t\"github.com/gorilla/mux\"\n\t\"github.com/sahib/brig/backend/httpipfs\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/mdcache\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/fuse\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/config\"\n)\n\nfunc makeFS(dbPath string, backend catfs.FsBackend) (*catfs.FS, error) {\n\t// open a dummy default config:\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thintMgr, err := hints.NewManager(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpageCache, err := mdcache.New(mdcache.Options{\n\t\tMaxMemoryUsage:    1024 * 1024 * 1024,\n\t\tL1CacheMissRefill: true,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcfs, err := catfs.NewFilesystem(\n\t\tbackend,\n\t\tdbPath,\n\t\t\"alice\",\n\t\tfalse,\n\t\tcfg.Section(\"fs\"),\n\t\thintMgr,\n\t\tpageCache,\n\t)\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to create catfs filesystem: %v\", err)\n\t\treturn nil, err\n\t}\n\n\treturn cfs, err\n}\n\nfunc mount(cfs *catfs.FS, mountPath string, opts Options) (*fuse.Mount, error) {\n\tif err := os.MkdirAll(mountPath, 0700); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn fuse.NewMount(cfs, mountPath, nil, fuse.MountOptions{\n\t\tReadOnly: opts.MountReadOnly,\n\t\tOffline:  opts.MountOffline,\n\t\tRoot:     \"/\",\n\t})\n}\n\nfunc serveHTTPServer(opts Options) error {\n\tscheme, addr, err := util.URLToSchemeAndAddr(opts.URL)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlst, err := net.Listen(scheme, addr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Needed for /quit.\n\tsrv := &http.Server{}\n\n\tsigCh := make(chan os.Signal, 1)\n\tsignal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)\n\n\t// Properly exit when Ctrl-C is pressed.\n\t// (including unmounting!)\n\tgo func() {\n\t\t<-sigCh\n\n\t\tctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)\n\t\tdefer cancel()\n\n\t\tsrv.Shutdown(ctx)\n\t}()\n\n\t// TODO: routes for stage / cat (although not really necessary...)\n\t// TODO: root for unmount.\n\trouter := mux.NewRouter()\n\trouter.HandleFunc(\"/quit\", func(w http.ResponseWriter, r *http.Request) {\n\t\tgo func() {\n\t\t\t// Close the server in a few ms, just not in th request itself.\n\t\t\t// Otherwise the client will block forever.\n\t\t\ttime.Sleep(100 * time.Millisecond)\n\t\t\tif err := srv.Shutdown(r.Context()); err != nil {\n\t\t\t\tlog.WithError(err).Warnf(\"failed to shutdown server\")\n\t\t\t}\n\t\t}()\n\t}).Methods(\"GET\")\n\n\tsrv.Handler = router\n\tfmt.Println(\"serving...\")\n\tdefer fmt.Println(\"serving done...\")\n\treturn srv.Serve(lst)\n}\n\n// Options can be specified to control the behavior of the fusetest server.\ntype Options struct {\n\t// MountPath is where the fuse mount will be available.\n\tMountPath string\n\n\t// CatfsPath is where the metdata is stored.\n\tCatfsPath string\n\n\t// IpfsPath tells us which IPFS repo to use.\n\t// If empty, use the mock backend.\n\tIpfsPathOrMultiaddr string\n\n\t// URL defines where the server can be reached.\n\tURL string\n\n\t// MountReadOnly = true means to not allow modifications.\n\tMountReadOnly bool\n\n\t// MountOffline= true means to not allow online queries.\n\tMountOffline bool\n}\n\n// Launch will launch a fuse test server.\nfunc Launch(opts Options) error {\n\ttmpDir, err := ioutil.TempDir(\"\", \"brig-debug-fuse-*\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer os.RemoveAll(tmpDir)\n\n\tfor _, path := range []string{opts.MountPath, opts.CatfsPath} {\n\t\tif err := os.MkdirAll(path, 0700); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tvar backend catfs.FsBackend\n\tif opts.IpfsPathOrMultiaddr != \"\" {\n\t\tbackend, err = httpipfs.NewNode(opts.IpfsPathOrMultiaddr, \"\")\n\t} else {\n\t\tbackend = catfs.NewMemFsBackend()\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcfs, err := makeFS(opts.CatfsPath, backend)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tm, err := mount(cfs, opts.MountPath, opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// make sure it gets closed, even when no unmount is happening.\n\tdefer func() {\n\t\tfmt.Println(\"Closing mount\")\n\t\tif err := m.Close(); err != nil {\n\t\t\tlog.WithError(err).Error(\"fuse mount close failed\")\n\t\t}\n\t}()\n\n\treturn serveHTTPServer(opts)\n}\n"
  },
  {
    "path": "fuse/handle.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"io\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"context\"\n\n\t\"bazil.org/fuse\"\n\t\"bazil.org/fuse/fs\"\n\t\"github.com/sahib/brig/catfs\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Handle is an open Entry.\ntype Handle struct {\n\tmu          sync.Mutex\n\tfd          *catfs.Handle\n\tm           *Mount\n\twasModified bool\n}\n\n// Read is called to read a block of data at a certain offset.\nfunc (hd *Handle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {\n\thd.mu.Lock()\n\tdefer hd.mu.Unlock()\n\tdefer logPanic(\"handle: read\")\n\n\tlog.Debugf(\n\t\t\"fuse-Read: %s (off: %d size: %d)\",\n\t\thd.fd.Path(),\n\t\treq.Offset,\n\t\treq.Size,\n\t)\n\n\tn, err := hd.fd.ReadAt(resp.Data[:req.Size], req.Offset)\n\tif err != nil && err != io.EOF {\n\t\treturn errorize(\"handle-read-io\", err)\n\t}\n\n\tresp.Data = resp.Data[:n]\n\treturn nil\n}\n\n// Write is called to write a block of data at a certain offset.\n// Note: do not assume that Write requests come in `fifo` order from the OS level!!!\n// I.e. during `cp largeFile /brig-fuse-mount/newFile`\n// the kernel might occasionally send write requests with blocks out of order!!!\n// In other words stream-like optimizations are not possible .\nfunc (hd *Handle) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error {\n\tstart := time.Now()\n\thd.mu.Lock()\n\tdefer hd.mu.Unlock()\n\tdefer logPanic(\"handle: write\")\n\n\tlog.Debugf(\n\t\t\"fuse-Write: %s (off: %d size: %d)\",\n\t\thd.fd.Path(),\n\t\treq.Offset,\n\t\tlen(req.Data),\n\t)\n\n\t// Offset seems to be always provided from the start (i.e. 0)\n\tn, err := hd.writeAt(req.Data, req.Offset)\n\tresp.Size = n\n\tif err != nil {\n\t\treturn errorize(\"handle-write-io\", err)\n\t}\n\tif n != len(req.Data) {\n\t\tlog.Panicf(\"written amount %d is not equal to requested %d\", n, len(req.Data))\n\t\treturn err\n\t}\n\tlog.Infof(\"fuse: Write time %v for %d bytes\", time.Since(start), n)\n\thd.wasModified = true\n\treturn nil\n}\n\n// Writes data from `buf` at offset `off` counted from the start (0 offset).\n// Mimics `WriteAt` from `io` package https://golang.org/pkg/io/#WriterAt\n// Main idea is not bother with Seek pointer, since underlying `overlay` works\n// with intervals in memory and we do not need to `Seek` the backend which is very time expensive.\nfunc (hd *Handle) writeAt(buf []byte, off int64) (n int, err error) {\n\tn, err = hd.fd.WriteAt(buf, off)\n\tif n != len(buf) || err != nil {\n\t\tlog.Errorf(\"fuse: were not able to save %d bytes at offset %d\", len(buf), off)\n\t}\n\treturn n, err\n}\n\n// Flush is called to make sure all written contents get synced to disk.\nfunc (hd *Handle) Flush(ctx context.Context, req *fuse.FlushRequest) error {\n\treturn hd.flush()\n}\n\n// flush does the actual adding to brig.\nfunc (hd *Handle) flush() error {\n\thd.mu.Lock()\n\tdefer hd.mu.Unlock()\n\n\tlog.Debugf(\"fuse-flush: %v\", hd.fd.Path())\n\tdefer logPanic(\"handle: flush\")\n\n\tif !hd.wasModified {\n\t\treturn nil\n\t}\n\tstart := time.Now()\n\tif err := hd.fd.Flush(); err != nil {\n\t\treturn errorize(\"handle-flush\", err)\n\t}\n\tlog.Infof(\"fuse: Flashed `%s` in %v\", hd.fd.Path(), time.Since(start))\n\thd.wasModified = false\n\n\tnotifyChange(hd.m, 500*time.Millisecond)\n\treturn nil\n}\n\n// Release is called to close this handle.\nfunc (hd *Handle) Release(ctx context.Context, req *fuse.ReleaseRequest) error {\n\tdefer logPanic(\"handle: release\")\n\tlog.Debugf(\"fuse-release: %v\", hd.fd.Path())\n\n\tif req.Flags.IsReadOnly() {\n\t\t// we don't need to track read-only handles\n\t\treturn nil\n\t}\n\n\terr := hd.flush()\n\tif err != nil {\n\t\treturn errorize(\"handle-release\", err)\n\t}\n\n\treturn nil\n}\n\n// Truncates (or extends) data to the desired size\nfunc (hd *Handle) truncate(size uint64) error {\n\tlog.Debugf(\"fuse-truncate: %v to size %d\", hd.fd.Path(), size)\n\tdefer logPanic(\"handle: truncate\")\n\terr := hd.fd.Truncate(size)\n\n\treturn err\n}\n\n// Poll checks that the handle is ready for I/O or not\nfunc (hd *Handle) Poll(ctx context.Context, req *fuse.PollRequest, resp *fuse.PollResponse) error {\n\t// Comment taken verbatim from fs/serve.go of bazil.org/fuse:\n\t// Poll checks whether the handle is currently ready for I/O, and\n\t// may request a wakeup when it is.\n\t//\n\t// Poll should always return quickly. Clients waiting for\n\t// readiness can be woken up by passing the return value of\n\t// PollRequest.Wakeup to fs.Server.NotifyPollWakeup or\n\t// fuse.Conn.NotifyPollWakeup.\n\t//\n\t// To allow supporting poll for only some of your Nodes/Handles,\n\t// the default behavior is to report immediate readiness. If your\n\t// FS does not support polling and you want to minimize needless\n\t// requests and log noise, implement NodePoller and return\n\t// syscall.ENOSYS.\n\t//\n\t// The Go runtime uses epoll-based I/O whenever possible, even for\n\t// regular files.\n\n\t// Here we implement a dummy response which reports \"I am ready\".\n\t// The access separation is handled by mutex, so go-rutines\n\t// will have to be blocked but its ok. We do not expect many\n\t// processes working with the same file\n\n\t// default always ready mask\n\tresp.REvents = fuse.DefaultPollMask\n\n\t// We also return ENOSYS error, which sort of invalidate our response,\n\t// the ENOSYS indicates that this call is not supported\n\treturn syscall.ENOSYS\n}\n\n// Compiler checks to see if we got all the interfaces right:\nvar _ = fs.HandleFlusher(&Handle{})\nvar _ = fs.HandleReader(&Handle{})\nvar _ = fs.HandleReleaser(&Handle{})\nvar _ = fs.HandleWriter(&Handle{})\nvar _ = fs.HandlePoller(&Handle{})\n"
  },
  {
    "path": "fuse/mount.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os/exec\"\n\t\"path\"\n\t\"sync\"\n\t\"time\"\n\n\t\"bazil.org/fuse\"\n\t\"bazil.org/fuse/fs\"\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Notifier implementors can take notifications\n// from any events happening in the fuse mount.\ntype Notifier interface {\n\t// PublishEvent is called whenever a modification happens.\n\tPublishEvent()\n}\n\n// MountOptions defines all possible knobs you can turn for a mount.\n// The zero value are the default options.\ntype MountOptions struct {\n\t// ReadOnly makes the mount not modifyable\n\tReadOnly bool\n\t// Root determines what the root directory is.\n\tRoot string\n\t// Offline tells the mount to error out on files that would need\n\t// to be fetched from far.\n\tOffline bool\n}\n\n// This is very similar (and indeed mostly copied) code from:\n// https://github.com/bazil/fuse/blob/master/fs/fstestutil/mounted.go\n// Since that's \"only\" test module, api might change, so better have this\n// code here (also we might do a few things differently).\n\n// Mount represents a fuse endpoint on the filesystem.\n// It is used as top-level API to control a brigfs fuse mount.\ntype Mount struct {\n\tDir string\n\n\tfilesys  *Filesystem\n\tclosed   bool\n\tdone     chan util.Empty\n\terrors   chan error\n\tconn     *fuse.Conn\n\tserver   *fs.Server\n\toptions  MountOptions\n\tnotifier Notifier\n\tfs       *catfs.FS\n}\n\n// NewMount mounts a fuse endpoint at `mountpoint` retrieving data from `store`.\nfunc NewMount(cfs *catfs.FS, mountpoint string, notifier Notifier, opts MountOptions) (*Mount, error) {\n\tmountOptions := []fuse.MountOption{\n\t\tfuse.FSName(\"brigfs\"),\n\t\tfuse.Subtype(\"brig\"),\n\t\tfuse.AllowNonEmptyMount(),\n\t\t// enabling MaxReadahead double or even triple Read throughput 12MB/s -> 25 or 33 MB/s\n\t\tfuse.MaxReadahead(128 * 1024), // kernel uses at max 128kB = 131072B\n\t\t// enabling WritebackCache doubles write speed to buffer 12MB/s -> 24MB/s\n\t\tfuse.WritebackCache(), // writes will happen in mach large blocks 128kB instead of 8kB\n\t}\n\n\tif opts.ReadOnly {\n\t\tmountOptions = append(mountOptions, fuse.ReadOnly())\n\t}\n\n\tconn, err := fuse.Mount(mountpoint, mountOptions...)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"fuse-mount\")\n\t}\n\n\tif opts.Root == \"\" {\n\t\topts.Root = \"/\"\n\t}\n\n\tinfo, err := cfs.Stat(opts.Root)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"failed to lookup root node of mount: %v\", mountpoint)\n\t}\n\n\tif !info.IsDir {\n\t\treturn nil, e.Wrapf(err, \"%s is not a directory\", opts.Root)\n\t}\n\n\tmnt := &Mount{\n\t\tconn:     conn,\n\t\tserver:   fs.New(conn, nil),\n\t\tDir:      mountpoint,\n\t\tdone:     make(chan util.Empty),\n\t\terrors:   make(chan error),\n\t\toptions:  opts,\n\t\tnotifier: notifier,\n\t\tfs:       cfs,\n\t}\n\tfilesys := &Filesystem{m: mnt, root: opts.Root}\n\tmnt.filesys = filesys\n\n\tgo func() {\n\t\tdefer close(mnt.done)\n\t\tlog.Debugf(\"serving fuse mount at %v\", mountpoint)\n\t\tmnt.errors <- mnt.server.Serve(filesys)\n\t\tmnt.done <- util.Empty{}\n\t\tlog.Debugf(\"stopped serving fuse at %v\", mountpoint)\n\t}()\n\n\tselect {\n\tcase <-mnt.conn.Ready:\n\t\tif err := mnt.conn.MountError; err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tcase err = <-mnt.errors:\n\t\t// Serve quit early\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, errors.New(\"Serve exited early\")\n\t}\n\n\treturn mnt, nil\n}\n\nfunc lazyUnmount(dir string) error {\n\tcmd := exec.Command(\"fusermount\", \"-u\", \"-z\", dir) // #nosec\n\toutput, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\tif len(output) > 0 {\n\t\t\toutput = bytes.TrimRight(output, \"\\n\")\n\t\t\tmsg := err.Error() + \": \" + string(output)\n\t\t\terr = errors.New(msg)\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// EqualOptions returns true when the options in `opts` have the same\n// option as currently set in the mount. If so, no re-mount is required.\nfunc (m *Mount) EqualOptions(opts MountOptions) bool {\n\tif m.options.ReadOnly != opts.ReadOnly {\n\t\treturn false\n\t}\n\n\treturn path.Clean(m.options.Root) == path.Clean(opts.Root)\n}\n\n// Close will wait until all I/O operations are done and unmount the fuse\n// mount again.\nfunc (m *Mount) Close() error {\n\tif m.closed {\n\t\treturn nil\n\t}\n\tm.closed = true\n\n\tlog.Infof(\"unmounting fuse mount at %v (this might take a bit)\", m.Dir)\n\n\tcouldUnmount := false\n\twaitTimeout := 1 * time.Second\n\n\t// Attempt unmounting several times:\n\tfor tries := 0; tries < 10; tries++ {\n\t\tif err := fuse.Unmount(m.Dir); err != nil {\n\t\t\tlog.Debugf(\"failed to graceful unmount: %v\", err)\n\t\t\ttime.Sleep(250 * time.Millisecond)\n\t\t\tcontinue\n\t\t}\n\n\t\tcouldUnmount = true\n\t\twaitTimeout = 5 * time.Second\n\t\tbreak\n\t}\n\n\tif !couldUnmount {\n\t\tlog.Warn(\"cant properly unmount; are there still processes using the mount?\")\n\t\tlog.Warn(\"attempting lazy umount (you might leak resources!)\")\n\t\tif err := lazyUnmount(m.Dir); err != nil {\n\t\t\tlog.Debugf(\"lazy unmount failed: %v\", err)\n\t\t}\n\t}\n\n\t// Be sure to drain the error channel:\n\tselect {\n\tcase err := <-m.errors:\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"fuse returned an error: %v\", err)\n\t\t}\n\tcase <-time.NewTimer(waitTimeout).C:\n\t\t// blocking due to fuse freeze.\n\t}\n\n\t// Be sure to pull the item from the channel:\n\tselect {\n\tcase <-m.done:\n\t\tlog.Debugf(\"gracefully shutting down\")\n\tcase <-time.NewTimer(waitTimeout).C:\n\t\t// success or blocking due to fuse freeze.\n\t}\n\n\t// If we could not unmount, schedule closing in the background.\n\t// This might be leaky, since Close might not ever return.\n\t// But usually we unmount on program exit anyways...\n\tif couldUnmount {\n\t\tif err := m.conn.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tgo m.conn.Close()\n\t}\n\n\treturn nil\n}\n\n// MountTable is a mapping from the mountpoint to the respective\n// `Mount` struct. It's given as convenient way to maintain several mounts.\n// All operations on the table are safe to call from several goroutines.\ntype MountTable struct {\n\tmu       sync.Mutex\n\tm        map[string]*Mount\n\tfs       *catfs.FS\n\tnotifier Notifier\n}\n\n// NewMountTable returns an empty mount table.\nfunc NewMountTable(fs *catfs.FS, notifier Notifier) *MountTable {\n\treturn &MountTable{\n\t\tm:        make(map[string]*Mount),\n\t\tfs:       fs,\n\t\tnotifier: notifier,\n\t}\n}\n\n// AddMount calls NewMount and adds it to the table at `path`.\nfunc (t *MountTable) AddMount(path string, opts MountOptions) (*Mount, error) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\treturn t.addMount(path, opts)\n}\n\nfunc checkMountPath(path string) error {\n\tfiles, err := ioutil.ReadDir(path)\n\tif err != nil {\n\t\t// This will also fail if `path` is not a directory:\n\t\treturn err\n\t}\n\n\tif len(files) > 0 {\n\t\treturn fmt.Errorf(\"Refusing to mount over non-empty dir `%s`\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (t *MountTable) addMount(path string, opts MountOptions) (*Mount, error) {\n\tif err := checkMountPath(path); err != nil {\n\t\treturn nil, e.Wrapf(err, \"dir check\")\n\t}\n\n\tm, ok := t.m[path]\n\tif ok {\n\t\treturn m, nil\n\t}\n\n\tm, err := NewMount(t.fs, path, t.notifier, opts)\n\tif err == nil {\n\t\tt.m[path] = m\n\t}\n\n\treturn m, e.Wrapf(err, \"new-mount\")\n}\n\n// Unmount closes the mount at `path` and deletes it from the table.\nfunc (t *MountTable) Unmount(path string) error {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\treturn t.unmount(path)\n}\n\nfunc (t *MountTable) unmount(path string) error {\n\tm, ok := t.m[path]\n\tif !ok {\n\t\treturn fmt.Errorf(\"no mount at `%v`\", path)\n\t}\n\n\tdelete(t.m, path)\n\treturn m.Close()\n}\n\n// Close unmounts all leftover mounts and clears the table.\nfunc (t *MountTable) Close() error {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\tvar err error\n\n\tfor _, mount := range t.m {\n\t\tif closeErr := mount.Close(); closeErr != nil {\n\t\t\terr = closeErr\n\t\t}\n\t}\n\n\tt.m = make(map[string]*Mount)\n\treturn err\n}\n"
  },
  {
    "path": "fuse/stub.go",
    "content": "// Package fuse implements a stub.\n// +build windows\n\n// The following comment is only here to make sure golint ignores this file:\n// Code generated by me DO NOT EDIT.\n\n// This package is intentend for platforms that do not offer fuse.\n// It rebuilds the same API as the rest of the package with stubs.\npackage fuse\n\nimport (\n\t\"errors\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/config\"\n)\n\ntype Notifier interface {\n\tPublishEvent()\n}\n\nvar ErrCompiledWithoutFuse = errors.New(\"brig was compiled without fuse support\")\n\ntype MountOptions struct {\n\tReadOnly bool\n\tRoot     string\n}\n\ntype Mount struct {\n\tDir string\n}\n\nfunc NewMount(cfs *catfs.FS, mountpoint string, opts MountOptions) (*Mount, error) {\n\treturn nil, ErrCompiledWithoutFuse\n}\n\nfunc (m *Mount) EqualOptions(opts MountOptions) bool {\n\treturn false\n}\n\nfunc (m *Mount) Close() error {\n\treturn ErrCompiledWithoutFuse\n}\n\ntype MountTable struct{}\n\nfunc NewMountTable(fs *catfs.FS, notifier Notifier) *MountTable {\n\treturn nil\n}\n\nfunc (t *MountTable) AddMount(path string, opts MountOptions) (*Mount, error) {\n\treturn nil, ErrCompiledWithoutFuse\n}\n\nfunc (t *MountTable) Unmount(path string) error {\n\treturn ErrCompiledWithoutFuse\n}\n\nfunc (t *MountTable) Close() error {\n\treturn ErrCompiledWithoutFuse\n}\n\ntype FsTabEntry struct {\n\tName     string\n\tPath     string\n\tRoot     string\n\tActive   bool\n\tReadOnly bool\n}\n\nfunc FsTabAdd(cfg *config.Config, name, path string, opts MountOptions) error {\n\treturn ErrCompiledWithoutFuse\n}\n\nfunc FsTabRemove(cfg *config.Config, name string) error {\n\treturn ErrCompiledWithoutFuse\n}\n\nfunc FsTabUnmountAll(cfg *config.Config, mounts *MountTable) error {\n\treturn ErrCompiledWithoutFuse\n}\n\nfunc FsTabApply(cfg *config.Config, mounts *MountTable) error {\n\treturn ErrCompiledWithoutFuse\n}\n\nfunc FsTabList(cfg *config.Config, mounts *MountTable) ([]FsTabEntry, error) {\n\treturn nil, ErrCompiledWithoutFuse\n}\n"
  },
  {
    "path": "fuse/util.go",
    "content": "// +build !windows\n\npackage fuse\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\t\"bazil.org/fuse\"\n\t\"github.com/sahib/brig/catfs\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/repo/hints\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nfunc errorize(name string, err error) error {\n\tif ie.IsNoSuchFileError(err) {\n\t\tlog.Infof(\"errorize: %s: No such file: %v\", name, err)\n\t\treturn fuse.ENOENT\n\t}\n\n\tif err != nil {\n\t\tlog.Warningf(\"fuse: %s: %v\", name, err)\n\t\treturn fuse.EIO\n\t}\n\n\treturn nil\n}\n\n// logPanic logs any panics by being called in a defer.\n// A rather inconvenient behaviour of fuse is to not report panics.\nfunc logPanic(name string) {\n\tif err := recover(); err != nil {\n\t\tlog.Errorf(\"bug: %s panicked: %v\", name, err)\n\t}\n}\n\ntype xattrHandler struct {\n\tget func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error)\n\tset func(cfs *catfs.FS, path string, value []byte) error\n}\n\nvar xattrMap = map[string]xattrHandler{\n\t\"user.brig.hash.content\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\treturn []byte(info.ContentHash.B58String()), nil\n\t\t},\n\t},\n\t\"user.brig.hash.tree\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\treturn []byte(info.TreeHash.B58String()), nil\n\t\t},\n\t},\n\t\"user.brig.hash.backend\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\treturn []byte(info.BackendHash.B58String()), nil\n\t\t},\n\t},\n\t\"user.brig.pinned\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\tif info.IsPinned {\n\t\t\t\treturn []byte(\"yes\"), nil\n\t\t\t}\n\t\t\treturn []byte(\"no\"), nil\n\t\t},\n\t},\n\t\"user.brig.explicitly_pinned\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\tif info.IsExplicit {\n\t\t\t\treturn []byte(\"yes\"), nil\n\t\t\t}\n\t\t\treturn []byte(\"no\"), nil\n\t\t},\n\t},\n\t\"user.brig.hints.encryption\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\treturn []byte(cfs.Hints().Lookup(info.Path).EncryptionAlgo), nil\n\t\t},\n\t\tset: func(cfs *catfs.FS, path string, val []byte) error {\n\t\t\thint := cfs.Hints().Lookup(path)\n\t\t\thint.EncryptionAlgo = hints.EncryptionHint(val)\n\t\t\tif !hint.IsValid() {\n\t\t\t\treturn fmt.Errorf(\"bad encryption algorithm: %s\", string(val))\n\t\t\t}\n\n\t\t\treturn cfs.Hints().Set(path, hint)\n\t\t},\n\t},\n\t\"user.brig.hints.compression\": {\n\t\tget: func(cfs *catfs.FS, info *catfs.StatInfo) ([]byte, error) {\n\t\t\treturn []byte(cfs.Hints().Lookup(info.Path).CompressionAlgo), nil\n\t\t},\n\t\tset: func(cfs *catfs.FS, path string, val []byte) error {\n\t\t\thint := cfs.Hints().Lookup(path)\n\t\t\thint.CompressionAlgo = hints.CompressionHint(val)\n\t\t\tif !hint.IsValid() {\n\t\t\t\treturn fmt.Errorf(\"bad compression algorithm: %s\", string(val))\n\t\t\t}\n\n\t\t\treturn cfs.Hints().Set(path, hint)\n\t\t},\n\t},\n}\n\nfunc listXattr() []byte {\n\tresp := []byte{}\n\tfor k := range xattrMap {\n\t\tresp = append(resp, k...)\n\t\tresp = append(resp, '\\x00')\n\t}\n\n\treturn resp\n}\n\nfunc getXattr(cfs *catfs.FS, name, path string) ([]byte, error) {\n\thandler, ok := xattrMap[name]\n\tif !ok || handler.get == nil {\n\t\treturn nil, fuse.ErrNoXattr\n\t}\n\n\tinfo, err := cfs.Stat(path)\n\tif err != nil {\n\t\treturn nil, errorize(\"getxattr\", err)\n\t}\n\n\treturn handler.get(cfs, info)\n}\n\nfunc setXattr(cfs *catfs.FS, name, path string, val []byte) error {\n\thandler, ok := xattrMap[name]\n\tif !ok || handler.set == nil {\n\t\treturn fuse.ErrNoXattr\n\t}\n\n\tif err := handler.set(cfs, path, val); err != nil {\n\t\treturn fuse.EIO\n\t}\n\n\treturn nil\n}\n\nfunc notifyChange(m *Mount, d time.Duration) {\n\tif m.notifier == nil {\n\t\t// this can happen in tests.\n\t\treturn\n\t}\n\n\ttime.AfterFunc(d, m.notifier.PublishEvent)\n}\n"
  },
  {
    "path": "gateway/db/capnp/user.capnp",
    "content": "using Go = import \"/go.capnp\";\n\n@0xa0b1c18bd0f965c4;\n\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/gateway/db/capnp\");\n\nstruct User {\n\tname         @0 :Text;\n\tpasswordHash @1 :Text;\n\tsalt         @2 :Text;\n\tfolders      @3 :List(Text);\n\trights       @4 :List(Text);\n}\n"
  },
  {
    "path": "gateway/db/capnp/user.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n)\n\ntype User struct{ capnp.Struct }\n\n// User_TypeID is the unique identifier for the type User.\nconst User_TypeID = 0x861de4463c5a4a22\n\nfunc NewUser(s *capnp.Segment) (User, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 5})\n\treturn User{st}, err\n}\n\nfunc NewRootUser(s *capnp.Segment) (User, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 5})\n\treturn User{st}, err\n}\n\nfunc ReadRootUser(msg *capnp.Message) (User, error) {\n\troot, err := msg.RootPtr()\n\treturn User{root.Struct()}, err\n}\n\nfunc (s User) String() string {\n\tstr, _ := text.Marshal(0x861de4463c5a4a22, s.Struct)\n\treturn str\n}\n\nfunc (s User) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s User) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s User) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s User) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s User) PasswordHash() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s User) HasPasswordHash() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s User) PasswordHashBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s User) SetPasswordHash(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s User) Salt() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s User) HasSalt() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s User) SaltBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s User) SetSalt(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s User) Folders() (capnp.TextList, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn capnp.TextList{List: p.List()}, err\n}\n\nfunc (s User) HasFolders() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s User) SetFolders(v capnp.TextList) error {\n\treturn s.Struct.SetPtr(3, v.List.ToPtr())\n}\n\n// NewFolders sets the folders field to a newly\n// allocated capnp.TextList, preferring placement in s's segment.\nfunc (s User) NewFolders(n int32) (capnp.TextList, error) {\n\tl, err := capnp.NewTextList(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp.TextList{}, err\n\t}\n\terr = s.Struct.SetPtr(3, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s User) Rights() (capnp.TextList, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn capnp.TextList{List: p.List()}, err\n}\n\nfunc (s User) HasRights() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s User) SetRights(v capnp.TextList) error {\n\treturn s.Struct.SetPtr(4, v.List.ToPtr())\n}\n\n// NewRights sets the rights field to a newly\n// allocated capnp.TextList, preferring placement in s's segment.\nfunc (s User) NewRights(n int32) (capnp.TextList, error) {\n\tl, err := capnp.NewTextList(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp.TextList{}, err\n\t}\n\terr = s.Struct.SetPtr(4, l.List.ToPtr())\n\treturn l, err\n}\n\n// User_List is a list of User.\ntype User_List struct{ capnp.List }\n\n// NewUser creates a new list of User.\nfunc NewUser_List(s *capnp.Segment, sz int32) (User_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 5}, sz)\n\treturn User_List{l}, err\n}\n\nfunc (s User_List) At(i int) User { return User{s.List.Struct(i)} }\n\nfunc (s User_List) Set(i int, v User) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s User_List) String() string {\n\tstr, _ := text.MarshalList(0x861de4463c5a4a22, s.List)\n\treturn str\n}\n\n// User_Promise is a wrapper for a User promised by a client call.\ntype User_Promise struct{ *capnp.Pipeline }\n\nfunc (p User_Promise) Struct() (User, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn User{s}, err\n}\n\nconst schema_a0b1c18bd0f965c4 = \"x\\xda\\\\\\xca1J\\x03A\\x18\\xc5\\xf1\\xf7ff\\x15$\" +\n\t\"$\\x0e\\xac\\x9d\\\"\\x0a6\\x16\\x06\\xdb (\\x16\\\"V\\xf9\" +\n\t\"\\x0a\\x1b\\x1b\\x19\\xdd11\\xc4d\\xd9Y\\x89\\x16\\xa2B\\x10\" +\n\t\"E\\x05\\x0f`\\xa1\\xe0\\x05\\xecl\\x05\\x0f\\xe0!\\xbc\\x84\\xd5\" +\n\t\"\\xca\\x06\\xd2\\xd8\\xfd\\xdf\\x8f7\\xdd\\xd9P6\\xda\\x07\\xc4D\" +\n\t\"\\x13\\xc5\\xe2\\xce\\xde\\xda\\xd6\\xcf\\xdc\\x0d\\xec,\\x8b/\\xff\\xfb\" +\n\t\"}\\xff\\xf9\\xfe\\x82(\\x9a\\x04Vg\\xa6h\\x97\\xcaX\\x98\" +\n\t\"'X\\xb4\\\\\\xee\\x07\\xee\\xbc\\xae\\x93\\x83\\xfa\\xa1K{i\" +\n\t\"\\xfd4\\xf8le\\x94\\x8d\\xdd\\xe03\\xa0IJ\\xac\\x0d`\" +\n\t\"\\x08\\xd8\\x8be@\\xce4e\\xa8h\\xc9\\x98%^w\\x00\" +\n\t\"\\xb9\\xd2\\x94\\x07E\\xabTL\\x05\\xd8\\xbb\\xf29\\xd4\\x94'\" +\n\t\"E\\xabuL\\x0d\\xd8\\xc7M@n5\\xe5M\\xd1\\x1a\\x13\" +\n\t\"\\xd3\\x00\\xf6\\xb5\\x01\\xc8\\xb3\\xa6|(\\xd6z\\xee\\xc4\\xb3\\x02\" +\n\t\"\\xc5\\x0aX\\xa4.\\x84A?KP\\xdbv\\xa1=\\xe6Z\" +\n\t\"p\\xdd|<.\\x8f\\xfa\\xdd\\xc4g\\x81U\\xb0\\xa99\\xe2\" +\n\t\"*\\xb8\\x9e\\x1d\\xb7\\xda\\xf9\\x7f\\xfd\\x0b\\x00\\x00\\xff\\xff\\x84\\x94\" +\n\t\":\\x18\"\n\nfunc init() {\n\tschemas.Register(schema_a0b1c18bd0f965c4,\n\t\t0x861de4463c5a4a22)\n}\n"
  },
  {
    "path": "gateway/db/db.go",
    "content": "package db\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tbadger \"github.com/dgraph-io/badger/v3\"\n\tcapnp \"github.com/sahib/brig/gateway/db/capnp\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnp_lib \"zombiezen.com/go/capnproto2\"\n)\n\nconst (\n\t// RightDownload refers to the right to download/view a file.\n\tRightDownload = \"fs.download\"\n\t// RightFsView refers to the right to view everything related to\n\t// the filesystem and history.\n\tRightFsView = \"fs.view\"\n\t// RightFsEdit refers to the right to edit the filesystem.\n\t// This includes pinning.\n\tRightFsEdit = \"fs.edit\"\n\t// RightRemotesView is the right to view the remote list.\n\tRightRemotesView = \"remotes.view\"\n\t// RightRemotesEdit is the right to edit the remote list.\n\tRightRemotesEdit = \"remotes.edit\"\n)\n\nvar (\n\t// DefaultRights is a list of rights that users will get\n\t// if no other explicit rights are given. They are identical\n\t// to the admin role currently.\n\tDefaultRights = []string{\n\t\tRightDownload,\n\t\tRightFsView,\n\t\tRightFsEdit,\n\t\tRightRemotesView,\n\t\tRightRemotesEdit,\n\t}\n\n\t// AllRights is a map that can be quickly used to check\n\t// if a right is valid or not.\n\tAllRights = map[string]bool{\n\t\tRightDownload:    true,\n\t\tRightFsView:      true,\n\t\tRightFsEdit:      true,\n\t\tRightRemotesView: true,\n\t\tRightRemotesEdit: true,\n\t}\n)\n\n// UserDatabase is a badger db that stores user information,\n// using the user name as unique key.\ntype UserDatabase struct {\n\tisStopped int64\n\tmu        sync.Mutex\n\tdb        *badger.DB\n\tgcTicker  *time.Ticker\n}\n\n// NewUserDatabase creates a new UserDatabase at `path` or loads\n// an existing one.\nfunc NewUserDatabase(path string) (*UserDatabase, error) {\n\topts := badger.DefaultOptions(path).\n\t\tWithValueLogFileSize(10 * 1024 * 1024). //default is 2GB we should not need 2GB\n\t\tWithMemTableSize(10 * 1024 * 1024).     //default is 64MB\n\t\tWithSyncWrites(false).\n\t\tWithLogger(nil)\n\n\tdb, err := badger.Open(opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgcTicker := time.NewTicker(5 * time.Minute)\n\n\tudb := &UserDatabase{db: db, gcTicker: gcTicker}\n\n\tgo func() {\n\t\tfor range gcTicker.C {\n\t\t\tif atomic.LoadInt64(&udb.isStopped) > 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif err := db.RunValueLogGC(0.5); err != nil {\n\t\t\t\tif err != badger.ErrNoRewrite {\n\t\t\t\t\tlog.WithError(err).Warnf(\"badger gc failed\")\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}()\n\n\treturn udb, nil\n}\n\n// Close cleans up all the resources used by a badger db.\nfunc (ub *UserDatabase) Close() error {\n\tub.mu.Lock()\n\tdefer ub.mu.Unlock()\n\n\tub.gcTicker.Stop()\n\tatomic.StoreInt64(&ub.isStopped, 1)\n\n\tif err := ub.db.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tub.db = nil\n\treturn nil\n}\n\nfunc unmarshalUser(data []byte) (*User, error) {\n\tmsg, err := capnp_lib.Unmarshal(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapUser, err := capnp.ReadRootUser(msg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn UserFromCapnp(capUser)\n}\n\n// UserFromCapnp takes a capnp.user and returns a regular User from it.\nfunc UserFromCapnp(capUser capnp.User) (*User, error) {\n\tcapFolders, err := capUser.Folders()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfolders := []string{}\n\tfor idx := 0; idx < capFolders.Len(); idx++ {\n\t\tfolder, err := capFolders.At(idx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfolders = append(folders, folder)\n\t}\n\n\tcapRights, err := capUser.Rights()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trights := []string{}\n\tfor idx := 0; idx < capRights.Len(); idx++ {\n\t\tright, err := capRights.At(idx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\trights = append(rights, right)\n\t}\n\n\tname, err := capUser.Name()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpasswordHash, err := capUser.PasswordHash()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsalt, err := capUser.Salt()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &User{\n\t\tName:         name,\n\t\tPasswordHash: passwordHash,\n\t\tSalt:         salt,\n\t\tFolders:      folders,\n\t\tRights:       rights,\n\t}, nil\n}\n\nfunc marshalUser(user *User) ([]byte, error) {\n\tmsg, seg, err := capnp_lib.NewMessage(capnp_lib.SingleSegment(nil))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif _, err := UserToCapnp(user, seg); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn msg.Marshal()\n}\n\n// UserToCapnp converts a User to a capnp.User.\nfunc UserToCapnp(user *User, seg *capnp_lib.Segment) (*capnp.User, error) {\n\tcapUser, err := capnp.NewRootUser(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapFolders, err := capnp_lib.NewTextList(seg, int32(len(user.Folders)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, folder := range user.Folders {\n\t\tif err := capFolders.Set(idx, folder); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := capUser.SetFolders(capFolders); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapRights, err := capnp_lib.NewTextList(seg, int32(len(user.Rights)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, right := range user.Rights {\n\t\tif err := capRights.Set(idx, right); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := capUser.SetRights(capRights); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capUser.SetName(user.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capUser.SetPasswordHash(user.PasswordHash); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capUser.SetSalt(user.Salt); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capUser, nil\n}\n\n// User is one user that is stored in the database.\n// The passwords are stored as scrypt hash with added salt.\ntype User struct {\n\tName         string\n\tPasswordHash string\n\tSalt         string\n\tFolders      []string\n\tRights       []string\n}\n\n// CheckPassword checks if `password` matches the stored one.\nfunc (u User) CheckPassword(password string) (bool, error) {\n\tsalt, err := base64.StdEncoding.DecodeString(u.Salt)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\toldHash, err := base64.StdEncoding.DecodeString(u.PasswordHash)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tnewHash := util.DeriveKey([]byte(password), salt, 32)\n\treturn subtle.ConstantTimeCompare(oldHash, newHash) == 1, nil\n}\n\n// HashPassword creates a new hash and salt from a password.\nfunc HashPassword(password string) (string, string, error) {\n\t// Read a new salt from a random source.\n\t// 8 bytes are considered enough by the scrypt documentation.\n\tsalt := make([]byte, 8)\n\tif n, err := rand.Read(salt); err != nil {\n\t\treturn \"\", \"\", err\n\t} else if n != 8 {\n\t\treturn \"\", \"\", fmt.Errorf(\"did not read enough random bytes\")\n\t}\n\n\t// Derive the actual hash and encode it to base64.\n\thash := util.DeriveKey([]byte(password), salt, 32)\n\tencode := base64.StdEncoding.EncodeToString\n\treturn encode(hash), encode(salt), nil\n}\n\n// Add adds a new user to the database.\n// If the user exists already, it is overwritten.\nfunc (ub *UserDatabase) Add(name, password string, folders []string, rights []string) error {\n\tub.mu.Lock()\n\tdefer ub.mu.Unlock()\n\n\tif len(folders) == 0 {\n\t\tfolders = []string{\"/\"}\n\t}\n\n\tif len(rights) == 0 {\n\t\trights = DefaultRights\n\t}\n\n\tfor _, right := range rights {\n\t\tif !AllRights[right] {\n\t\t\treturn fmt.Errorf(\"invalid right: %s\", right)\n\t\t}\n\t}\n\n\thashed, salt, err := HashPassword(password)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tuser := &User{\n\t\tName:         name,\n\t\tPasswordHash: hashed,\n\t\tSalt:         salt,\n\t\tFolders:      folders,\n\t\tRights:       rights,\n\t}\n\n\tdata, err := marshalUser(user)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn ub.db.Update(func(txn *badger.Txn) error {\n\t\treturn txn.Set([]byte(name), data)\n\t})\n}\n\n// Get returns a User, if it exists. If it does not exist,\n// an error will be returned.\nfunc (ub *UserDatabase) Get(name string) (User, error) {\n\tub.mu.Lock()\n\tdefer ub.mu.Unlock()\n\n\tuser := User{}\n\treturn user, ub.db.View(func(txn *badger.Txn) error {\n\t\titem, err := txn.Get([]byte(name))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn item.Value(func(data []byte) error {\n\t\t\tdecUser, err := unmarshalUser(data)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tuser = *decUser\n\t\t\treturn nil\n\t\t})\n\t})\n}\n\n// Remove removes an existing user.\nfunc (ub *UserDatabase) Remove(name string) error {\n\tub.mu.Lock()\n\tdefer ub.mu.Unlock()\n\n\treturn ub.db.Update(func(txn *badger.Txn) error {\n\t\t// Make sure to error out if the key did not exist:\n\t\tif _, err := txn.Get([]byte(name)); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn txn.Delete([]byte(name))\n\t})\n}\n\n// List returns all users currently in the database.\nfunc (ub *UserDatabase) List() ([]User, error) {\n\tub.mu.Lock()\n\tdefer ub.mu.Unlock()\n\n\tusers := []User{}\n\treturn users, ub.db.View(func(txn *badger.Txn) error {\n\t\titer := txn.NewIterator(badger.IteratorOptions{})\n\t\tdefer iter.Close()\n\n\t\tfor iter.Rewind(); iter.Valid(); iter.Next() {\n\t\t\terr := iter.Item().Value(func(data []byte) error {\n\t\t\t\tuser, err := unmarshalUser(data)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tusers = append(users, *user)\n\t\t\t\treturn nil\n\t\t\t})\n\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n}\n"
  },
  {
    "path": "gateway/db/db_test.go",
    "content": "package db\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withDummyDb(t *testing.T, fn func(db *UserDatabase)) {\n\ttmpPath, err := ioutil.TempDir(\"\", \"brig-gw-userdb\")\n\trequire.Nil(t, err)\n\tdefer os.RemoveAll(tmpPath)\n\n\tuserDb, err := NewUserDatabase(tmpPath)\n\trequire.Nil(t, err)\n\n\tfn(userDb)\n\n\trequire.Nil(t, userDb.Close())\n}\n\nfunc TestAddGet(t *testing.T) {\n\twithDummyDb(t, func(db *UserDatabase) {\n\t\trequire.Nil(t, db.Add(\"hello\", \"world\", []string{\"/\"}, []string{\"fs.view\"}))\n\t\tuser, err := db.Get(\"hello\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"hello\", user.Name)\n\t\trequire.NotEmpty(t, user.PasswordHash)\n\t\trequire.NotEmpty(t, user.Salt)\n\t\trequire.Equal(t, []string{\"/\"}, user.Folders)\n\t\trequire.Equal(t, []string{\"fs.view\"}, user.Rights)\n\t})\n}\n"
  },
  {
    "path": "gateway/elm/.gitignore",
    "content": "elm-stuff\n"
  },
  {
    "path": "gateway/elm/Makefile",
    "content": "SOURCES=$(shell find . -iname '*.elm')\n\nall: build minify\n\nrelease: release-build minify\n\nbuild:\n\t@elm make ${SOURCES} --output ../static/js/app.js\n\nrelease-build:\n\t@elm make ${SOURCES} --output ../static/js/app.js --optimize\n\nminify:\n\tuglifyjs ../static/js/app.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle --output=../static/js/app.min.js\n\tmv ../static/js/app.min.js ../static/js/app.js\n"
  },
  {
    "path": "gateway/elm/elm.json",
    "content": "{\n    \"type\": \"application\",\n    \"source-directories\": [\n        \"src\"\n    ],\n    \"elm-version\": \"0.19.0\",\n    \"dependencies\": {\n        \"direct\": {\n            \"NoRedInk/elm-json-decode-pipeline\": \"1.0.0\",\n            \"andrewMacmurray/elm-delay\": \"3.0.0\",\n            \"basti1302/elm-human-readable-filesize\": \"1.2.0\",\n            \"elm/browser\": \"1.0.0\",\n            \"elm/core\": \"1.0.2\",\n            \"elm/file\": \"1.0.1\",\n            \"elm/html\": \"1.0.0\",\n            \"elm/http\": \"2.0.0\",\n            \"elm/json\": \"1.1.0\",\n            \"elm/time\": \"1.0.0\",\n            \"elm/url\": \"1.0.0\",\n            \"elm-community/list-extra\": \"8.1.0\",\n            \"jweir/elm-iso8601\": \"5.0.2\",\n            \"rundis/elm-bootstrap\": \"5.0.0\"\n        },\n        \"indirect\": {\n            \"avh4/elm-color\": \"1.0.0\",\n            \"elm/bytes\": \"1.0.7\",\n            \"elm/regex\": \"1.0.0\",\n            \"elm/virtual-dom\": \"1.0.0\",\n            \"myrho/elm-round\": \"1.0.4\"\n        }\n    },\n    \"test-dependencies\": {\n        \"direct\": {},\n        \"indirect\": {}\n    }\n}"
  },
  {
    "path": "gateway/elm/src/Clipboard.elm",
    "content": "port module Clipboard exposing (copyToClipboard)\n\nimport Json.Encode as E\n\n\nport copyToClipboard : E.Value -> Cmd msg\n"
  },
  {
    "path": "gateway/elm/src/Commands.elm",
    "content": "module Commands exposing\n    ( Commit\n    , Diff\n    , DiffPair\n    , Entry\n    , Folder\n    , HistoryEntry\n    , ListResponse\n    , Log\n    , LoginResponse\n    , Remote\n    , SelfResponse\n    , WhoamiResponse\n    , diffChangeCount\n    , doCopy\n    , doDeletedFiles\n    , doHistory\n    , doListAllDirs\n    , doListQuery\n    , doLog\n    , doLogin\n    , doLogout\n    , doMkdir\n    , doMove\n    , doPin\n    , doRemoteAdd\n    , doRemoteDiff\n    , doRemoteList\n    , doRemoteModify\n    , doRemoteRemove\n    , doRemoteSync\n    , doRemove\n    , doReset\n    , doSelfQuery\n    , doUndelete\n    , doUnpin\n    , doUpload\n    , doWhoami\n    , emptyRemote\n    , emptySelf\n    )\n\nimport Bootstrap.Dropdown as Dropdown\nimport File\nimport Http\nimport ISO8601\nimport Json.Decode as D\nimport Json.Decode.Pipeline as DP\nimport Json.Encode as E\nimport Time\nimport Url\nimport Util\n\n\n\n-- REMOVE\n\n\ntype alias RemoveQuery =\n    { paths : List String\n    }\n\n\nencodeRemoveQuery : RemoveQuery -> E.Value\nencodeRemoveQuery q =\n    E.object\n        [ ( \"paths\", E.list E.string q.paths ) ]\n\n\ndecodeRemoveResponse : D.Decoder String\ndecodeRemoveResponse =\n    D.field \"message\" D.string\n\n\ndoRemove : (Result Http.Error String -> msg) -> List String -> Cmd msg\ndoRemove toMsg paths =\n    Http.post\n        { url = \"/api/v0/remove\"\n        , body = Http.jsonBody <| encodeRemoveQuery <| RemoveQuery paths\n        , expect = Http.expectJson toMsg decodeRemoveResponse\n        }\n\n\n\n-- HISTORY\n\n\ntimestampToPosix : D.Decoder Time.Posix\ntimestampToPosix =\n    D.int\n        |> D.andThen\n            (\\ms -> D.succeed <| Time.millisToPosix ms)\n\n\niso8601ToPosix : D.Decoder Time.Posix\niso8601ToPosix =\n    D.string\n        |> D.andThen\n            (\\stamp ->\n                case ISO8601.fromString stamp of\n                    Ok time ->\n                        D.succeed <| ISO8601.toPosix time\n\n                    Err msg ->\n                        D.fail msg\n            )\n\n\ntype alias HistoryQuery =\n    { path : String\n    }\n\n\ntype alias Commit =\n    { date : Time.Posix\n    , msg : String\n    , tags : List String\n    , hash : String\n    , index : Int\n    }\n\n\ntype alias HistoryEntry =\n    { head : Commit\n    , path : String\n    , change : String\n    , isPinned : Bool\n    , isExplicit : Bool\n    }\n\n\nencodeHistoryQuery : HistoryQuery -> E.Value\nencodeHistoryQuery q =\n    E.object\n        [ ( \"path\", E.string q.path ) ]\n\n\ndecodeCommit : D.Decoder Commit\ndecodeCommit =\n    D.succeed Commit\n        |> DP.required \"date\" timestampToPosix\n        |> DP.required \"msg\" D.string\n        |> DP.required \"tags\" (D.list D.string)\n        |> DP.required \"hash\" D.string\n        |> DP.required \"index\" D.int\n\n\ndecodeHistoryEntry : D.Decoder HistoryEntry\ndecodeHistoryEntry =\n    D.succeed HistoryEntry\n        |> DP.required \"head\" decodeCommit\n        |> DP.required \"path\" D.string\n        |> DP.required \"change\" D.string\n        |> DP.required \"is_pinned\" D.bool\n        |> DP.required \"is_explicit\" D.bool\n\n\ndecodeHistory : D.Decoder (List HistoryEntry)\ndecodeHistory =\n    D.field \"entries\" (D.list decodeHistoryEntry)\n\n\ndoHistory : (Result Http.Error (List HistoryEntry) -> msg) -> String -> Cmd msg\ndoHistory toMsg path =\n    Http.post\n        { url = \"/api/v0/history\"\n        , body = Http.jsonBody <| encodeHistoryQuery <| HistoryQuery path\n        , expect = Http.expectJson toMsg decodeHistory\n        }\n\n\n\n-- RESET\n\n\ntype alias ResetQuery =\n    { path : String\n    , revision : String\n    , force : Bool\n    }\n\n\nencodeResetQuery : ResetQuery -> E.Value\nencodeResetQuery q =\n    E.object\n        [ ( \"path\", E.string q.path )\n        , ( \"revision\", E.string q.revision )\n        ]\n\n\ndecodeResetQuery : D.Decoder String\ndecodeResetQuery =\n    D.field \"message\" D.string\n\n\ndoReset : (Result Http.Error String -> msg) -> String -> String -> Cmd msg\ndoReset toMsg path revision =\n    Http.post\n        { url = \"/api/v0/reset\"\n        , body = Http.jsonBody <| encodeResetQuery <| ResetQuery path revision True\n        , expect = Http.expectJson toMsg decodeResetQuery\n        }\n\n\n\n-- MOVE\n\n\ntype alias MoveQuery =\n    { sourcePath : String\n    , destinationPath : String\n    }\n\n\nencodeMoveQuery : MoveQuery -> E.Value\nencodeMoveQuery q =\n    E.object\n        [ ( \"source\", E.string <| Util.prefixSlash q.sourcePath )\n        , ( \"destination\", E.string <| Util.prefixSlash q.destinationPath )\n        ]\n\n\ndecodeMoveResponse : D.Decoder String\ndecodeMoveResponse =\n    D.field \"message\" D.string\n\n\ndoMove : (Result Http.Error String -> msg) -> String -> String -> Cmd msg\ndoMove toMsg src dst =\n    Http.post\n        { url = \"/api/v0/move\"\n        , body = Http.jsonBody <| encodeMoveQuery <| MoveQuery src dst\n        , expect = Http.expectJson toMsg decodeMoveResponse\n        }\n\n\n\n-- COPY\n\n\ntype alias CopyQuery =\n    { sourcePath : String\n    , destinationPath : String\n    }\n\n\nencodeCopyQuery : CopyQuery -> E.Value\nencodeCopyQuery q =\n    E.object\n        [ ( \"source\", E.string <| Util.prefixSlash q.sourcePath )\n        , ( \"destination\", E.string <| Util.prefixSlash q.destinationPath )\n        ]\n\n\ndecodeCopyResponse : D.Decoder String\ndecodeCopyResponse =\n    D.field \"message\" D.string\n\n\ndoCopy : (Result Http.Error String -> msg) -> String -> String -> Cmd msg\ndoCopy toMsg src dst =\n    Http.post\n        { url = \"/api/v0/copy\"\n        , body = Http.jsonBody <| encodeCopyQuery <| CopyQuery src dst\n        , expect = Http.expectJson toMsg decodeCopyResponse\n        }\n\n\n\n-- ALL DIRS\n\n\ndecodeAllDirsResponse : D.Decoder (List String)\ndecodeAllDirsResponse =\n    D.field \"paths\" (D.list D.string)\n\n\ndoListAllDirs : (Result Http.Error (List String) -> msg) -> Cmd msg\ndoListAllDirs toMsg =\n    Http.post\n        { url = \"/api/v0/all-dirs\"\n        , body = Http.emptyBody\n        , expect = Http.expectJson toMsg decodeAllDirsResponse\n        }\n\n\n\n-- LIST\n\n\ntype alias ListQuery =\n    { root : String\n    , filter : String\n    }\n\n\ntype alias Entry =\n    { dropdown : Dropdown.State\n    , path : String\n    , user : String\n    , size : Int\n    , inode : Int\n    , depth : Int\n    , lastModified : Time.Posix\n    , isDir : Bool\n    , isPinned : Bool\n    , isExplicit : Bool\n    }\n\n\ntype alias ListResponse =\n    { self : Entry\n    , isFiltered : Bool\n    , entries : List Entry\n    }\n\n\nencodeListResponse : ListQuery -> E.Value\nencodeListResponse q =\n    E.object\n        [ ( \"root\", E.string q.root )\n        , ( \"filter\", E.string q.filter )\n        ]\n\n\ndecodeListResponse : D.Decoder ListResponse\ndecodeListResponse =\n    D.map3 ListResponse\n        (D.field \"self\" decodeEntry)\n        (D.field \"is_filtered\" D.bool)\n        (D.field \"files\" (D.list decodeEntry))\n\n\ndecodeEntry : D.Decoder Entry\ndecodeEntry =\n    D.succeed (Entry Dropdown.initialState)\n        |> DP.required \"path\" D.string\n        |> DP.required \"user\" D.string\n        |> DP.required \"size\" D.int\n        |> DP.required \"inode\" D.int\n        |> DP.required \"depth\" D.int\n        |> DP.required \"last_modified_ms\" timestampToPosix\n        |> DP.required \"is_dir\" D.bool\n        |> DP.required \"is_pinned\" D.bool\n        |> DP.required \"is_explicit\" D.bool\n\n\ndoListQuery : (Result Http.Error ListResponse -> msg) -> String -> String -> Cmd msg\ndoListQuery toMsg path filter =\n    Http.post\n        { url = \"/api/v0/ls\"\n        , body = Http.jsonBody <| encodeListResponse <| ListQuery path filter\n        , expect = Http.expectJson toMsg decodeListResponse\n        }\n\n\n\n-- UPLOAD\n\n\ndoUpload : (String -> Result Http.Error () -> msg) -> String -> File.File -> Cmd msg\ndoUpload toMsg destPath file =\n    Http.request\n        { method = \"POST\"\n        , url = \"/api/v0/upload?root=\" ++ Url.percentEncode destPath\n        , headers = []\n        , body = Http.multipartBody [ Http.filePart \"files[]\" file ]\n        , expect = Http.expectWhatever (toMsg (File.name file))\n        , timeout = Nothing\n        , tracker = Just (\"upload-\" ++ File.name file)\n        }\n\n\n\n-- MKDIR\n\n\ntype alias MkdirQuery =\n    { path : String\n    }\n\n\nencodeMkdirQuery : MkdirQuery -> E.Value\nencodeMkdirQuery q =\n    E.object\n        [ ( \"path\", E.string q.path ) ]\n\n\ndecodeMkdirResponse : D.Decoder String\ndecodeMkdirResponse =\n    D.field \"message\" D.string\n\n\ndoMkdir : (Result Http.Error String -> msg) -> String -> Cmd msg\ndoMkdir toMsg path =\n    Http.post\n        { url = \"/api/v0/mkdir\"\n        , body = Http.jsonBody <| encodeMkdirQuery <| MkdirQuery path\n        , expect = Http.expectJson toMsg decodeMkdirResponse\n        }\n\n\n\n-- LOGIN\n\n\ntype alias LoginQuery =\n    { username : String\n    , password : String\n    }\n\n\ntype alias LoginResponse =\n    { username : String\n    , rights : List String\n    , isAnon : Bool\n    , anonIsAllowed : Bool\n    }\n\n\nencodeLoginQuery : LoginQuery -> E.Value\nencodeLoginQuery q =\n    E.object\n        [ ( \"username\", E.string q.username )\n        , ( \"password\", E.string q.password )\n        ]\n\n\ndecodeLoginResponse : D.Decoder LoginResponse\ndecodeLoginResponse =\n    D.map4 LoginResponse\n        (D.field \"username\" D.string)\n        (D.field \"rights\" (D.list D.string))\n        (D.field \"is_anon\" D.bool)\n        (D.field \"anon_is_allowed\" D.bool)\n\n\ndoLogin : (Result Http.Error LoginResponse -> msg) -> String -> String -> Cmd msg\ndoLogin toMsg user pass =\n    Http.post\n        { url = \"/api/v0/login\"\n        , body = Http.jsonBody <| encodeLoginQuery <| LoginQuery user pass\n        , expect = Http.expectJson toMsg decodeLoginResponse\n        }\n\n\n\n-- LOGOUT QUERY\n\n\ndoLogout : (Result Http.Error Bool -> msg) -> Cmd msg\ndoLogout msg =\n    Http.post\n        { url = \"/api/v0/logout\"\n        , body = Http.emptyBody\n        , expect = Http.expectJson msg (D.field \"success\" D.bool)\n        }\n\n\n\n-- WHOAMI QUERY\n\n\ntype alias WhoamiResponse =\n    { username : String\n    , isLoggedIn : Bool\n    , isAnon : Bool\n    , anonIsAllowed : Bool\n    , rights : List String\n    }\n\n\ndecodeWhoami : D.Decoder WhoamiResponse\ndecodeWhoami =\n    D.map5 WhoamiResponse\n        (D.field \"user\" D.string)\n        (D.field \"is_logged_in\" D.bool)\n        (D.field \"is_anon\" D.bool)\n        (D.field \"anon_is_allowed\" D.bool)\n        (D.field \"rights\" (D.list D.string))\n\n\ndoWhoami : (Result Http.Error WhoamiResponse -> msg) -> Cmd msg\ndoWhoami msg =\n    Http.post\n        { url = \"/api/v0/whoami\"\n        , body = Http.emptyBody\n        , expect = Http.expectJson msg decodeWhoami\n        }\n\n\n\n-- LOG\n\n\ntype alias LogQuery =\n    { offset : Int\n    , limit : Int\n    , filter : String\n    }\n\n\ntype alias Log =\n    { haveStagedChanges : Bool\n    , commits : List Commit\n    }\n\n\nencodeLog : LogQuery -> E.Value\nencodeLog q =\n    E.object\n        [ ( \"offset\", E.int q.offset )\n        , ( \"limit\", E.int q.limit )\n        , ( \"filter\", E.string q.filter )\n        ]\n\n\ndecodeLog : D.Decoder Log\ndecodeLog =\n    D.map2 Log\n        (D.field \"have_staged_changes\" D.bool)\n        (D.field \"commits\" (D.list decodeCommit))\n\n\ndoLog : (Result Http.Error Log -> msg) -> Int -> Int -> String -> Cmd msg\ndoLog msg offset limit filter =\n    Http.post\n        { url = \"/api/v0/log\"\n        , body = Http.jsonBody <| encodeLog <| LogQuery offset limit filter\n        , expect = Http.expectJson msg decodeLog\n        }\n\n\n\n-- DELETED FILES\n\n\ntype alias DeletedFilesQuery =\n    { offset : Int\n    , limit : Int\n    , filter : String\n    }\n\n\nencodeDeletedFiles : DeletedFilesQuery -> E.Value\nencodeDeletedFiles q =\n    E.object\n        [ ( \"offset\", E.int q.offset )\n        , ( \"limit\", E.int q.limit )\n        , ( \"filter\", E.string q.filter )\n        ]\n\n\ndecodeDeletedFiles : D.Decoder (List Entry)\ndecodeDeletedFiles =\n    D.field \"entries\" (D.list decodeEntry)\n\n\ndoDeletedFiles : (Result Http.Error (List Entry) -> msg) -> Int -> Int -> String -> Cmd msg\ndoDeletedFiles msg offset limit filter =\n    Http.post\n        { url = \"/api/v0/deleted\"\n        , body = Http.jsonBody <| encodeDeletedFiles <| DeletedFilesQuery offset limit filter\n        , expect = Http.expectJson msg decodeDeletedFiles\n        }\n\n\n\n-- UNDELETE\n\n\ntype alias UndeleteQuery =\n    { path : String\n    }\n\n\nencodeUndeleteQuery : UndeleteQuery -> E.Value\nencodeUndeleteQuery q =\n    E.object\n        [ ( \"path\", E.string q.path ) ]\n\n\ndecodeUndeleteResponse : D.Decoder String\ndecodeUndeleteResponse =\n    D.field \"message\" D.string\n\n\ndoUndelete : (Result Http.Error String -> msg) -> String -> Cmd msg\ndoUndelete toMsg path =\n    Http.post\n        { url = \"/api/v0/undelete\"\n        , body = Http.jsonBody <| encodeUndeleteQuery <| UndeleteQuery path\n        , expect = Http.expectJson toMsg decodeUndeleteResponse\n        }\n\n\n\n-- REMOTE LIST\n\n\ntype alias Folder =\n    { folder : String\n    , readOnly : Bool\n    , conflictStrategy : String\n    }\n\n\ntype alias Remote =\n    { name : String\n    , folders : List Folder\n    , fingerprint : String\n    , acceptAutoUpdates : Bool\n    , isOnline : Bool\n    , isAuthenticated : Bool\n    , lastSeen : Time.Posix\n    , acceptPush : Bool\n    , conflictStrategy : String\n    }\n\n\nemptyRemote : Remote\nemptyRemote =\n    { name = \"\"\n    , folders = []\n    , fingerprint = \"\"\n    , acceptAutoUpdates = False\n    , isOnline = False\n    , isAuthenticated = False\n    , lastSeen = Time.millisToPosix 0\n    , conflictStrategy = \"\"\n    , acceptPush = False\n    }\n\n\ndecodeRemoteListResponse : D.Decoder (List Remote)\ndecodeRemoteListResponse =\n    D.field \"remotes\" (D.list decodeRemote)\n\n\ndecodeRemote : D.Decoder Remote\ndecodeRemote =\n    D.succeed Remote\n        |> DP.required \"name\" D.string\n        |> DP.required \"folders\" (D.oneOf [ D.list decodeFolder, D.null [] ])\n        |> DP.required \"fingerprint\" D.string\n        |> DP.required \"accept_auto_updates\" D.bool\n        |> DP.required \"is_online\" D.bool\n        |> DP.required \"is_authenticated\" D.bool\n        |> DP.required \"last_seen\" iso8601ToPosix\n        |> DP.required \"accept_push\" D.bool\n        |> DP.required \"conflict_strategy\" D.string\n\n\ndecodeFolder : D.Decoder Folder\ndecodeFolder =\n    D.succeed Folder\n        |> DP.required \"folder\" D.string\n        |> DP.required \"read_only\" D.bool\n        |> DP.required \"conflict_strategy\" D.string\n\n\ndoRemoteList : (Result Http.Error (List Remote) -> msg) -> Cmd msg\ndoRemoteList toMsg =\n    Http.post\n        { url = \"/api/v0/remotes/list\"\n        , body = Http.emptyBody\n        , expect = Http.expectJson toMsg decodeRemoteListResponse\n        }\n\n\n\n-- REMOTE REMOVE\n\n\ntype alias RemoteRemoveQuery =\n    { name : String\n    }\n\n\nencodeRemoteRemoveQuery : RemoteRemoveQuery -> E.Value\nencodeRemoteRemoveQuery q =\n    E.object\n        [ ( \"name\", E.string q.name ) ]\n\n\ndecodeRemoteRemoveQuery : D.Decoder String\ndecodeRemoteRemoveQuery =\n    D.field \"message\" D.string\n\n\ndoRemoteRemove : (Result Http.Error String -> msg) -> String -> Cmd msg\ndoRemoteRemove toMsg name =\n    Http.post\n        { url = \"/api/v0/remotes/remove\"\n        , body = Http.jsonBody <| encodeRemoteRemoveQuery <| RemoteRemoveQuery name\n        , expect = Http.expectJson toMsg decodeRemoteRemoveQuery\n        }\n\n\n\n-- REMOTE SYNC\n\n\ntype alias RemoteSyncQuery =\n    { name : String\n    }\n\n\nencodeRemoteSyncQuery : RemoteSyncQuery -> E.Value\nencodeRemoteSyncQuery q =\n    E.object\n        [ ( \"name\", E.string q.name ) ]\n\n\ndecodeRemoteSyncQuery : D.Decoder String\ndecodeRemoteSyncQuery =\n    D.field \"message\" D.string\n\n\ndoRemoteSync : (Result Http.Error String -> msg) -> String -> Cmd msg\ndoRemoteSync toMsg name =\n    Http.post\n        { url = \"/api/v0/remotes/sync\"\n        , body = Http.jsonBody <| encodeRemoteSyncQuery <| RemoteSyncQuery name\n        , expect = Http.expectJson toMsg decodeRemoteSyncQuery\n        }\n\n\n\n-- REMOTE ADD\n\n\ntype alias RemoteAddQuery =\n    { name : String\n    , fingerprint : String\n    , folders : List Folder\n    , doAutoUpdate : Bool\n    , acceptPush : Bool\n    , conflictStrategy : String\n    }\n\n\nencodeFolder : Folder -> E.Value\nencodeFolder f =\n    E.object\n        [ ( \"folder\", E.string f.folder )\n        , ( \"read_only\", E.bool f.readOnly )\n        , ( \"conflict_strategy\", E.string f.conflictStrategy )\n        ]\n\n\nencodeRemoteAddQuery : RemoteAddQuery -> E.Value\nencodeRemoteAddQuery q =\n    E.object\n        [ ( \"name\", E.string q.name )\n        , ( \"fingerprint\", E.string q.fingerprint )\n        , ( \"accept_auto_updates\", E.bool q.doAutoUpdate )\n        , ( \"folders\", E.list encodeFolder q.folders )\n        , ( \"accept_push\", E.bool q.acceptPush )\n        , ( \"conflict_strategy\", E.string q.conflictStrategy )\n        ]\n\n\ndecodeRemoteAddQuery : D.Decoder String\ndecodeRemoteAddQuery =\n    D.field \"message\" D.string\n\n\ndoRemoteAdd : (Result Http.Error String -> msg) -> String -> String -> Bool -> Bool -> String -> List Folder -> Cmd msg\ndoRemoteAdd toMsg name fingerprint doAutoUpdate acceptPush conflictStrategy folders =\n    Http.post\n        { url = \"/api/v0/remotes/add\"\n        , body =\n            Http.jsonBody <|\n                encodeRemoteAddQuery <|\n                    { name = name\n                    , fingerprint = fingerprint\n                    , doAutoUpdate = doAutoUpdate\n                    , folders = folders\n                    , acceptPush = acceptPush\n                    , conflictStrategy = conflictStrategy\n                    }\n        , expect = Http.expectJson toMsg decodeRemoteAddQuery\n        }\n\n\ndoRemoteModify : (Result Http.Error String -> msg) -> Remote -> Cmd msg\ndoRemoteModify toMsg remote =\n    Http.post\n        { url = \"/api/v0/remotes/modify\"\n        , body =\n            Http.jsonBody <|\n                encodeRemoteAddQuery <|\n                    { name = remote.name\n                    , fingerprint = remote.fingerprint\n                    , doAutoUpdate = remote.acceptAutoUpdates\n                    , folders = remote.folders\n                    , acceptPush = remote.acceptPush\n                    , conflictStrategy = remote.conflictStrategy\n                    }\n        , expect = Http.expectJson toMsg decodeRemoteAddQuery\n        }\n\n\n\n-- REMOTE SELF\n\n\ntype alias SelfResponse =\n    { self : Identity\n    , defaultConflictStrategy : String\n    }\n\n\ntype alias Identity =\n    { name : String\n    , fingerprint : String\n    }\n\n\nemptySelf : SelfResponse\nemptySelf =\n    SelfResponse (Identity \"\" \"\") \"marker\"\n\n\ndecodeSelfResponse : D.Decoder SelfResponse\ndecodeSelfResponse =\n    D.succeed SelfResponse\n        |> DP.required \"self\" decodeIdentity\n        |> DP.required \"default_conflict_strategy\" D.string\n\n\ndecodeIdentity : D.Decoder Identity\ndecodeIdentity =\n    D.succeed Identity\n        |> DP.required \"name\" D.string\n        |> DP.required \"fingerprint\" D.string\n\n\ndoSelfQuery : (Result Http.Error SelfResponse -> msg) -> Cmd msg\ndoSelfQuery toMsg =\n    Http.post\n        { url = \"/api/v0/remotes/self\"\n        , body = Http.emptyBody\n        , expect = Http.expectJson toMsg decodeSelfResponse\n        }\n\n\n\n-- REMOTE DIFF\n\n\ntype alias DiffPair =\n    { src : Entry\n    , dst : Entry\n    }\n\n\ntype alias Diff =\n    { added : List Entry\n    , removed : List Entry\n    , ignored : List Entry\n    , missing : List Entry\n    , moved : List DiffPair\n    , merged : List DiffPair\n    , conflict : List DiffPair\n    }\n\n\ndiffChangeCount : Diff -> Int\ndiffChangeCount diff =\n    List.length diff.added\n        + List.length diff.removed\n        + List.length diff.ignored\n        + List.length diff.missing\n        + List.length diff.moved\n        + List.length diff.merged\n        + List.length diff.conflict\n\n\ntype alias RemoteDiffQuery =\n    { name : String\n    }\n\n\nencodeRemoteDiffQuery : RemoteDiffQuery -> E.Value\nencodeRemoteDiffQuery q =\n    E.object\n        [ ( \"name\", E.string q.name ) ]\n\n\ndecodeDiffPair : D.Decoder DiffPair\ndecodeDiffPair =\n    D.map2 DiffPair\n        (D.field \"src\" decodeEntry)\n        (D.field \"dst\" decodeEntry)\n\n\ndecodeDiffResponse : D.Decoder Diff\ndecodeDiffResponse =\n    D.field \"diff\" decodeDiff\n\n\ndecodeDiff : D.Decoder Diff\ndecodeDiff =\n    D.succeed Diff\n        |> DP.required \"added\" (D.list decodeEntry)\n        |> DP.required \"removed\" (D.list decodeEntry)\n        |> DP.required \"ignored\" (D.list decodeEntry)\n        |> DP.required \"missing\" (D.list decodeEntry)\n        |> DP.required \"moved\" (D.list decodeDiffPair)\n        |> DP.required \"merged\" (D.list decodeDiffPair)\n        |> DP.required \"conflict\" (D.list decodeDiffPair)\n\n\ndoRemoteDiff : (Result Http.Error Diff -> msg) -> String -> Cmd msg\ndoRemoteDiff toMsg name =\n    Http.post\n        { url = \"/api/v0/remotes/diff\"\n        , body = Http.jsonBody <| encodeRemoteDiffQuery <| RemoteDiffQuery name\n        , expect = Http.expectJson toMsg decodeDiffResponse\n        }\n\n\n\n-- PIN\n\n\ntype alias PinQuery =\n    { path : String\n    , revision : String\n    }\n\n\nencodePinQuery : PinQuery -> E.Value\nencodePinQuery q =\n    E.object\n        [ ( \"path\", E.string q.path )\n        , ( \"revision\", E.string q.revision )\n        ]\n\n\ndecodePinResponse : D.Decoder String\ndecodePinResponse =\n    D.field \"message\" D.string\n\n\ndoPin : (Result Http.Error String -> msg) -> String -> String -> Cmd msg\ndoPin toMsg path revision =\n    Http.post\n        { url = \"/api/v0/pin\"\n        , body = Http.jsonBody <| encodePinQuery <| PinQuery path revision\n        , expect = Http.expectJson toMsg decodePinResponse\n        }\n\n\ndoUnpin : (Result Http.Error String -> msg) -> String -> String -> Cmd msg\ndoUnpin toMsg path revision =\n    Http.post\n        { url = \"/api/v0/unpin\"\n        , body = Http.jsonBody <| encodePinQuery <| PinQuery path revision\n        , expect = Http.expectJson toMsg decodePinResponse\n        }\n"
  },
  {
    "path": "gateway/elm/src/Main.elm",
    "content": "module Main exposing (init, main, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form as Form\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Text as Text\nimport Browser\nimport Browser.Navigation as Nav\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Html.Lazy as Lazy\nimport Http\nimport Json.Decode as D\nimport List\nimport Pinger\nimport Routes.Commits as Commits\nimport Routes.DeletedFiles as DeletedFiles\nimport Routes.Diff as Diff\nimport Routes.Ls as Ls\nimport Routes.Remotes as Remotes\nimport Task\nimport Time\nimport Url\nimport Util exposing (..)\nimport Websocket\n\n\n\n-- MAIN\n\n\nmain : Program () Model Msg\nmain =\n    Browser.application\n        { init = init\n        , update = update\n        , subscriptions = subscriptions\n        , view = view\n        , onUrlChange = UrlChanged\n        , onUrlRequest = LinkClicked\n        }\n\n\n\n-- MESSAGES\n\n\ntype Msg\n    = GotLoginResp (Result Http.Error Commands.LoginResponse)\n    | GotWhoamiResp (Result Http.Error Commands.WhoamiResponse)\n    | GotLogoutResp Bool (Result Http.Error Bool)\n    | AdjustTimeZone Time.Zone\n    | LinkClicked Browser.UrlRequest\n    | UrlChanged Url.Url\n    | UsernameInput String\n    | PasswordInput String\n    | LoginSubmit\n    | LogoutSubmit Bool\n    | GotoLogin\n    | PingerIn String\n    | WebsocketIn String\n      -- View parent messages:\n    | ListMsg Ls.Msg\n    | CommitsMsg Commits.Msg\n    | DeletedFilesMsg DeletedFiles.Msg\n    | RemotesMsg Remotes.Msg\n    | DiffMsg Diff.Msg\n\n\n\n-- MODEL\n\n\ntype View\n    = ViewList\n    | ViewCommits\n    | ViewRemotes\n    | ViewDeletedFiles\n    | ViewDiff\n    | ViewNotFound\n\n\ntype alias ViewState =\n    { listState : Ls.Model\n    , commitsState : Commits.Model\n    , remoteState : Remotes.Model\n    , deletedFilesState : DeletedFiles.Model\n    , diffState : Diff.Model\n    , loginName : String\n    , currentView : View\n    , rights : List String\n    , isAnon : Bool\n    , anonIsAllowed : Bool\n    }\n\n\ntype LoginState\n    = LoginLimbo -- weird state where we do not know if we're logged in yet.\n    | LoginReady String String\n    | LoginLoading String String\n    | LoginFailure String String String\n    | LoginSuccess ViewState\n\n\ntype alias Model =\n    { zone : Time.Zone\n    , key : Nav.Key\n    , url : Url.Url\n    , loginState : LoginState\n    , serverIsOnline : Bool\n    }\n\n\ninit : () -> Url.Url -> Nav.Key -> ( Model, Cmd Msg )\ninit _ url key =\n    ( { zone = Time.utc\n      , key = key\n      , url = url\n      , loginState = LoginLimbo\n      , serverIsOnline = True\n      }\n    , Cmd.batch\n        [ Task.perform AdjustTimeZone Time.here\n        , Commands.doWhoami GotWhoamiResp\n        ]\n    )\n\n\n\n-- UPDATE\n\n\nwithSubUpdate : subMsg -> (ViewState -> subModel) -> Model -> (subMsg -> Msg) -> (subMsg -> subModel -> ( subModel, Cmd subMsg )) -> (ViewState -> subModel -> ViewState) -> ( Model, Cmd Msg )\nwithSubUpdate subMsg subModel model msg subUpdate viewStateUpdate =\n    case model.loginState of\n        LoginSuccess viewState ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    subUpdate subMsg (subModel viewState)\n            in\n            ( { model | loginState = LoginSuccess (viewStateUpdate viewState newSubModel) }, Cmd.map msg newSubCmd )\n\n        _ ->\n            ( model, Cmd.none )\n\n\ndoInitAfterLogin : Model -> String -> List String -> Bool -> Bool -> ( Model, Cmd Msg )\ndoInitAfterLogin model loginName rights isAnon anonIsAllowed =\n    let\n        newViewState =\n            { listState = Ls.newModel model.key model.url rights\n            , commitsState = Commits.newModel model.url model.key model.zone rights\n            , deletedFilesState = DeletedFiles.newModel model.url model.key model.zone rights\n            , remoteState = Remotes.newModel model.key model.zone rights\n            , diffState = Diff.newModel model.key model.url model.zone\n            , loginName = loginName\n            , currentView = viewFromUrl rights model.url\n            , rights = rights\n            , isAnon = isAnon\n            , anonIsAllowed = anonIsAllowed\n            }\n    in\n    ( { model | loginState = LoginSuccess newViewState }\n    , Cmd.batch\n        [ Cmd.map ListMsg <| Ls.doListQueryFromUrl model.url\n        , Websocket.open ()\n        , Cmd.map DeletedFilesMsg <| DeletedFiles.reload newViewState.deletedFilesState\n        , Cmd.map CommitsMsg <| Commits.reload newViewState.commitsState\n        , Cmd.map RemotesMsg <| Remotes.reload\n        , Cmd.map DiffMsg <| Diff.reload newViewState.diffState model.url\n        ]\n    )\n\n\nviewFromUrl : List String -> Url.Url -> View\nviewFromUrl rights url =\n    case List.head <| List.drop 1 <| String.split \"/\" url.path of\n        Nothing ->\n            ViewNotFound\n\n        Just first ->\n            case first of\n                \"view\" ->\n                    ViewList\n\n                \"log\" ->\n                    ViewCommits\n\n                \"remotes\" ->\n                    ViewRemotes\n\n                \"deleted\" ->\n                    ViewDeletedFiles\n\n                \"diff\" ->\n                    ViewDiff\n\n                \"\" ->\n                    if List.member \"fs.view\" rights then\n                        ViewList\n\n                    else\n                        ViewRemotes\n\n                _ ->\n                    ViewNotFound\n\n\nviewToString : View -> String\nviewToString v =\n    case v of\n        ViewList ->\n            \"/view\"\n\n        ViewCommits ->\n            \"/log\"\n\n        ViewRemotes ->\n            \"/remotes\"\n\n        ViewDeletedFiles ->\n            \"/deleted\"\n\n        ViewDiff ->\n            \"/Diff\"\n\n        ViewNotFound ->\n            \"/nothing\"\n\n\neventType : String -> String\neventType data =\n    let\n        result =\n            D.decodeString (D.field \"data\" D.string) data\n    in\n    case result of\n        Ok typ ->\n            typ\n\n        Err _ ->\n            \"failed\"\n\n\npingerMsgToBool : String -> Bool\npingerMsgToBool data =\n    let\n        result =\n            D.decodeString (D.field \"isOnline\" D.bool) data\n    in\n    case result of\n        Ok typ ->\n            typ\n\n        Err _ ->\n            False\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        AdjustTimeZone newZone ->\n            case model.loginState of\n                LoginSuccess viewState ->\n                    ( { model\n                        | zone = newZone\n                        , loginState = LoginSuccess { viewState | listState = Ls.changeTimeZone newZone viewState.listState }\n                      }\n                    , Cmd.none\n                    )\n\n                _ ->\n                    ( { model | zone = newZone }, Cmd.none )\n\n        GotWhoamiResp result ->\n            case result of\n                Ok whoami ->\n                    -- Immediately hit off a list query, which will in turn populate\n                    -- the list view. Take the path from the current URL.\n                    case whoami.isLoggedIn of\n                        True ->\n                            doInitAfterLogin model whoami.username whoami.rights whoami.isAnon whoami.anonIsAllowed\n\n                        False ->\n                            ( { model | loginState = LoginReady \"\" \"\" }, Cmd.none )\n\n                Err _ ->\n                    ( { model | loginState = LoginReady \"\" \"\" }, Cmd.none )\n\n        GotLoginResp result ->\n            case result of\n                Ok response ->\n                    -- Immediately hit off a list query, which will in turn populate\n                    -- the list view. Take the path from the current URL.\n                    doInitAfterLogin model response.username response.rights response.isAnon response.anonIsAllowed\n\n                Err err ->\n                    ( { model | loginState = LoginFailure \"\" \"\" (Util.httpErrorToString err) }, Cmd.none )\n\n        GotLogoutResp mayReloginAsAnon _ ->\n            case model.loginState of\n                LoginSuccess viewState ->\n                    if mayReloginAsAnon && viewState.anonIsAllowed then\n                        ( model, Commands.doWhoami GotWhoamiResp )\n\n                    else\n                        ( { model | loginState = LoginReady \"\" \"\" }, Cmd.none )\n\n                _ ->\n                    ( { model | loginState = LoginReady \"\" \"\" }, Cmd.none )\n\n        LinkClicked urlRequest ->\n            case urlRequest of\n                Browser.Internal url ->\n                    -- Special case: /get/ requests should be routed as if we clicked an\n                    -- external link.\n                    case String.startsWith \"/get\" url.path of\n                        True ->\n                            ( model, Nav.load (Url.toString url) )\n\n                        False ->\n                            ( model, Nav.pushUrl model.key (Url.toString { url | query = Nothing }) )\n\n                Browser.External href ->\n                    let\n                        currUrl =\n                            Url.toString model.url\n                    in\n                    case href of\n                        \"\" ->\n                            ( model, Cmd.none )\n\n                        \"#\" ->\n                            ( model, Cmd.none )\n\n                        _ ->\n                            ( model\n                            , if href == currUrl then\n                                Cmd.none\n\n                              else\n                                Nav.load href\n                            )\n\n        UrlChanged url ->\n            case model.loginState of\n                LoginSuccess viewState ->\n                    case viewFromUrl viewState.rights url of\n                        ViewList ->\n                            ( { model\n                                | url = url\n                                , loginState =\n                                    LoginSuccess\n                                        { viewState\n                                            | currentView = ViewList\n                                            , listState = Ls.changeUrl url viewState.listState\n                                            , commitsState = Commits.updateUrl viewState.commitsState url\n                                            , deletedFilesState = DeletedFiles.updateUrl viewState.deletedFilesState url\n                                            , diffState = Diff.updateUrl viewState.diffState url\n                                        }\n                              }\n                            , Cmd.map ListMsg <| Ls.doListQueryFromUrl url\n                            )\n\n                        ViewDiff ->\n                            ( { model\n                                | url = url\n                                , loginState =\n                                    LoginSuccess\n                                        { viewState\n                                            | currentView = ViewDiff\n                                            , commitsState = Commits.updateUrl viewState.commitsState url\n                                            , deletedFilesState = DeletedFiles.updateUrl viewState.deletedFilesState url\n                                            , diffState = Diff.updateUrl viewState.diffState url\n                                        }\n                              }\n                            , Cmd.map DiffMsg <| Diff.reload viewState.diffState url\n                            )\n\n                        ViewCommits ->\n                            ( { model\n                                | url = url\n                                , loginState =\n                                    LoginSuccess\n                                        { viewState\n                                            | currentView = ViewCommits\n                                            , commitsState = Commits.updateUrl viewState.commitsState url\n                                            , deletedFilesState = DeletedFiles.updateUrl viewState.deletedFilesState url\n                                            , diffState = Diff.updateUrl viewState.diffState url\n                                        }\n                              }\n                            , Cmd.map CommitsMsg <| Commits.reloadIfNeeded viewState.commitsState\n                            )\n\n                        ViewDeletedFiles ->\n                            ( { model\n                                | url = url\n                                , loginState =\n                                    LoginSuccess\n                                        { viewState\n                                            | currentView = ViewDeletedFiles\n                                            , deletedFilesState = DeletedFiles.updateUrl viewState.deletedFilesState url\n                                            , commitsState = Commits.updateUrl viewState.commitsState url\n                                            , diffState = Diff.updateUrl viewState.diffState url\n                                        }\n                              }\n                            , Cmd.map DeletedFilesMsg <| DeletedFiles.reloadIfNeeded viewState.deletedFilesState\n                            )\n\n                        other ->\n                            ( { model\n                                | url = url\n                                , loginState =\n                                    LoginSuccess\n                                        { viewState\n                                            | currentView = other\n                                            , commitsState = Commits.updateUrl viewState.commitsState url\n                                            , deletedFilesState = DeletedFiles.updateUrl viewState.deletedFilesState url\n                                            , diffState = Diff.updateUrl viewState.diffState url\n                                        }\n                              }\n                            , Cmd.none\n                            )\n\n                _ ->\n                    ( { model | url = url }, Cmd.none )\n\n        UsernameInput username ->\n            case model.loginState of\n                LoginReady _ password ->\n                    ( { model | loginState = LoginReady username password }, Cmd.none )\n\n                LoginFailure _ password _ ->\n                    ( { model | loginState = LoginFailure username password \"\" }, Cmd.none )\n\n                _ ->\n                    ( model, Cmd.none )\n\n        PasswordInput password ->\n            case model.loginState of\n                LoginReady username _ ->\n                    ( { model | loginState = LoginReady username password }, Cmd.none )\n\n                LoginFailure username _ _ ->\n                    ( { model | loginState = LoginFailure username password \"\" }, Cmd.none )\n\n                _ ->\n                    ( model, Cmd.none )\n\n        LoginSubmit ->\n            case model.loginState of\n                LoginReady username password ->\n                    ( { model | loginState = LoginLoading username password }\n                    , Commands.doLogin GotLoginResp username password\n                    )\n\n                LoginFailure username password _ ->\n                    ( { model | loginState = LoginLoading username password }\n                    , Commands.doLogin GotLoginResp username password\n                    )\n\n                _ ->\n                    ( model, Cmd.none )\n\n        LogoutSubmit mayReloginAsAnon ->\n            ( model, Commands.doLogout (GotLogoutResp mayReloginAsAnon) )\n\n        GotoLogin ->\n            ( { model | loginState = LoginReady \"\" \"\" }, Cmd.none )\n\n        PingerIn pingMsg ->\n            ( { model | serverIsOnline = pingerMsgToBool pingMsg }, Cmd.none )\n\n        WebsocketIn event ->\n            -- The backend lets us know that some of the data changed.\n            -- Depending on the event type these are currently either\n            -- filesystem entries or remotes.\n            case eventType event of\n                \"pin\" ->\n                    case model.loginState of\n                        LoginSuccess viewState ->\n                            ( model, Cmd.map ListMsg <| Ls.doListQueryFromUrl model.url )\n\n                        _ ->\n                            ( model, Cmd.none )\n\n                \"fs\" ->\n                    case model.loginState of\n                        LoginSuccess viewState ->\n                            ( model\n                            , Cmd.batch\n                                [ Cmd.map ListMsg <| Ls.doListQueryFromUrl model.url\n                                , Cmd.map DeletedFilesMsg <| DeletedFiles.reload viewState.deletedFilesState\n                                , Cmd.map CommitsMsg <| Commits.reload viewState.commitsState\n                                ]\n                            )\n\n                        _ ->\n                            ( model, Cmd.none )\n\n                \"remotes\" ->\n                    ( model, Cmd.map RemotesMsg Remotes.reload )\n\n                _ ->\n                    ( model, Cmd.none )\n\n        ListMsg subMsg ->\n            withSubUpdate\n                subMsg\n                .listState\n                model\n                ListMsg\n                Ls.update\n                (\\viewState newSubModel -> { viewState | listState = newSubModel })\n\n        CommitsMsg subMsg ->\n            withSubUpdate\n                subMsg\n                .commitsState\n                model\n                CommitsMsg\n                Commits.update\n                (\\viewState newSubModel -> { viewState | commitsState = newSubModel })\n\n        DeletedFilesMsg subMsg ->\n            withSubUpdate\n                subMsg\n                .deletedFilesState\n                model\n                DeletedFilesMsg\n                DeletedFiles.update\n                (\\viewState newSubModel -> { viewState | deletedFilesState = newSubModel })\n\n        RemotesMsg subMsg ->\n            withSubUpdate\n                subMsg\n                .remoteState\n                model\n                RemotesMsg\n                Remotes.update\n                (\\viewState newSubModel -> { viewState | remoteState = newSubModel })\n\n        DiffMsg subMsg ->\n            withSubUpdate\n                subMsg\n                .diffState\n                model\n                DiffMsg\n                Diff.update\n                (\\viewState newSubModel -> { viewState | diffState = newSubModel })\n\n\n\n-- VIEW\n\n\nview : Model -> Browser.Document Msg\nview model =\n    { title = \"Gateway\"\n    , body =\n        case model.loginState of\n            LoginLimbo ->\n                [ text \"Waiting for login data\" ]\n\n            LoginReady _ _ ->\n                [ Lazy.lazy viewLoginForm model ]\n\n            LoginFailure _ _ _ ->\n                [ Lazy.lazy viewLoginForm model ]\n\n            LoginLoading _ _ ->\n                [ Lazy.lazy viewLoginForm model ]\n\n            LoginSuccess viewState ->\n                viewMainContent model viewState\n    }\n\n\nviewAppIcon : Model -> Html Msg\nviewAppIcon model =\n    a [ class \"nav-link active\", href \"/view\" ]\n        (if model.serverIsOnline then\n            [ span [ class \"fas fa-2x fa-fw logo fa-torii-gate\" ] []\n            , span [ class \"badge badge-success text-center\" ] [ text \"beta\" ]\n            ]\n\n         else\n            [ span [ class \"fas fa-2x fa-fw logo logo-failure fa-torii-gate\" ] []\n            , span [ class \"badge badge-danger text-center\" ] [ text \"offline\" ]\n            ]\n        )\n\n\nviewOfflineMarker : Html Msg\nviewOfflineMarker =\n    div [ class \"row h-100\" ]\n        [ div\n            [ class \"col-12 my-auto text-center w-100 text-muted\" ]\n            [ span [ class \"fas fa-4x fa-fw logo-failure fa-plug\" ] []\n            , br [] []\n            , br [] []\n            , text \"It seems that we have lost connection to the server.\"\n            , br [] []\n            , text \"This application will go into a working state again when we have a connection again.\"\n            ]\n        ]\n\n\nviewMainContent : Model -> ViewState -> List (Html Msg)\nviewMainContent model viewState =\n    [ div [ class \"container-fluid\" ]\n        [ div [ class \"row wrapper\" ]\n            [ aside [ class \"col-12 col-md-2 p-0 bg-light tabbar\" ]\n                [ nav [ class \"navbar navbar-expand-md navbar-light bg-align-items-start flex-md-column flex-row\" ]\n                    [ viewAppIcon model\n                    , a [ class \"navbar-toggler\", attribute \"data-toggle\" \"collapse\", attribute \"data-target\" \".sidebar\" ]\n                        [ span [ class \"navbar-toggler-icon\" ] []\n                        ]\n                    , div [ class \"collapse navbar-collapse sidebar\" ]\n                        [ viewSidebarItems model viewState\n                        ]\n                    ]\n                , viewSidebarBottom model\n                ]\n            , main_ [ class \"col\" ]\n                (if model.serverIsOnline then\n                    [ viewCurrentRoute model viewState\n                    , Html.map ListMsg (Ls.buildModals viewState.listState)\n                    , Html.map RemotesMsg (Remotes.buildModals viewState.remoteState)\n                    ]\n\n                 else\n                    [ viewOfflineMarker ]\n                )\n            ]\n        ]\n    ]\n\n\nviewCurrentRoute : Model -> ViewState -> Html Msg\nviewCurrentRoute model viewState =\n    case viewState.currentView of\n        ViewList ->\n            Html.map ListMsg <| Ls.view viewState.listState\n\n        ViewCommits ->\n            Html.map CommitsMsg <| Commits.view viewState.commitsState\n\n        ViewDeletedFiles ->\n            Html.map DeletedFilesMsg <| DeletedFiles.view viewState.deletedFilesState\n\n        ViewRemotes ->\n            Html.map RemotesMsg <| Remotes.view viewState.remoteState\n\n        ViewDiff ->\n            Html.map DiffMsg <| Diff.view viewState.diffState\n\n        ViewNotFound ->\n            text \"You seem to have hit a route that does not exist...\"\n\n\nviewLoginInputs : String -> String -> List (Html Msg)\nviewLoginInputs username password =\n    [ h2 [ class \"login-header\" ] [ text \"Login\" ]\n    , Input.text\n        [ Input.id \"username-input\"\n        , Input.attrs [ class \"login-input\" ]\n        , Input.large\n        , Input.placeholder \"Username\"\n        , Input.value username\n        , Input.onInput UsernameInput\n        ]\n    , Input.password\n        [ Input.id \"password-input\"\n        , Input.attrs [ class \"login-input\" ]\n        , Input.large\n        , Input.placeholder \"Password\"\n        , Input.value password\n        , Input.onInput PasswordInput\n        ]\n    ]\n\n\nviewLoginButton : String -> String -> Bool -> Html Msg\nviewLoginButton username password isLoading =\n    let\n        loadingClass =\n            if isLoading then\n                \"fa fa-sync fa-sync-animate\"\n\n            else\n                \"\"\n    in\n    Button.button\n        [ Button.primary\n        , Button.attrs\n            [ onClick <| LoginSubmit\n            , class \"login-btn\"\n            , type_ \"submit\"\n            , disabled\n                (String.length (String.trim username)\n                    == 0\n                    || String.length (String.trim password)\n                    == 0\n                    || isLoading\n                )\n            ]\n        ]\n        [ span [ class loadingClass ] [], text \" Log in\" ]\n\n\nviewLoginForm : Model -> Html Msg\nviewLoginForm model =\n    Grid.containerFluid \n        [ class \"login-background\" ]\n        [ Grid.row []\n            [ Grid.col\n                [ Col.lg8\n                , Col.textAlign Text.alignXsCenter\n                , Col.attrs [ class \"login-form\" ]\n                ]\n                [ Form.form [ onSubmit LoginSubmit ]\n                    [ Form.group []\n                        (case model.loginState of\n                            LoginReady username password ->\n                                viewLoginInputs username password\n                                    ++ [ viewLoginButton username password False ]\n\n                            LoginLoading username password ->\n                                viewLoginInputs username password\n                                    ++ [ viewLoginButton username password True ]\n\n                            LoginFailure username password _ ->\n                                viewLoginInputs username password\n                                    ++ [ Alert.simpleDanger [] [ text \"Login failed, please try again.\" ]\n                                       , viewLoginButton username password False\n                                       ]\n\n                            _ ->\n                                -- This should not happen.\n                                []\n                        )\n                    ]\n                ]\n            ]\n        ]\n\n\nhasRight : ViewState -> String -> List (Html Msg) -> List (Html Msg)\nhasRight viewState right elements =\n    if List.member right viewState.rights then\n        elements\n\n    else\n        []\n\n\nviewSidebarItems : Model -> ViewState -> Html Msg\nviewSidebarItems model viewState =\n    let\n        isActiveClass =\n            \\v ->\n                if v == viewState.currentView then\n                    class \"nav-link active\"\n\n                else\n                    class \"nav-link\"\n    in\n    ul [ class \"flex-column navbar-nav w-100 text-left\" ]\n        (hasRight viewState\n            \"fs.view\"\n            [ li [ class \"nav-item\" ]\n                [ a [ isActiveClass ViewList, href (viewToString ViewList) ]\n                    [ span [] [ text \"Files\" ] ]\n                ]\n            ]\n            ++ hasRight viewState\n                \"fs.view\"\n                [ li [ class \"nav-item\" ]\n                    [ a [ isActiveClass ViewCommits, href (viewToString ViewCommits) ]\n                        [ span [] [ text \"Changelog\" ] ]\n                    ]\n                ]\n            ++ hasRight viewState\n                \"fs.view\"\n                [ li [ class \"nav-item\" ]\n                    [ a [ isActiveClass ViewDeletedFiles, href (viewToString ViewDeletedFiles) ]\n                        [ span [] [ text \"Trashbin\" ] ]\n                    ]\n                ]\n            ++ hasRight viewState\n                \"remotes.view\"\n                [ li [ class \"nav-item\" ]\n                    [ a [ isActiveClass ViewRemotes, href (viewToString ViewRemotes) ]\n                        [ span [] [ text \"Remotes\" ] ]\n                    ]\n                ]\n            ++ (if viewState.isAnon then\n                    [ li [ class \"nav-item\" ]\n                        [ a [ class \"nav-link pl-0\", href \"#\", onClick (LogoutSubmit False) ]\n                            [ span [] [ text \"Login page\" ] ]\n                        ]\n                    ]\n\n                else\n                    [ li [ class \"nav-item\" ]\n                        [ a [ class \"nav-link pl-0\", href \"#\", onClick (LogoutSubmit True) ]\n                            [ span [] [ text (\"Logout »\" ++ viewState.loginName ++ \"«\") ] ]\n                        ]\n                    ]\n               )\n        )\n\n\nviewSidebarBottom : Model -> Html Msg\nviewSidebarBottom model =\n    -- Make sure to not display that on small devices:\n    div [ id \"sidebar-bottom\", class \"d-none d-lg-block\" ]\n        [ hr [] []\n        , p [ id \"sidebar-bottom-text\", class \"text-muted\" ]\n            [ span []\n                [ text \"Powered by \"\n                , a [ href \"https://github.com/sahib/brig\" ] [ text \"brig\" ]\n                ]\n            ]\n        ]\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    case model.loginState of\n        LoginSuccess viewState ->\n            Sub.batch\n                [ Sub.map ListMsg (Ls.subscriptions viewState.listState)\n                , Sub.map CommitsMsg (Commits.subscriptions viewState.commitsState)\n                , Sub.map RemotesMsg (Remotes.subscriptions viewState.remoteState)\n                , Sub.map DeletedFilesMsg (DeletedFiles.subscriptions viewState.deletedFilesState)\n                , Websocket.incoming WebsocketIn\n                , Pinger.pinger PingerIn\n                ]\n\n        _ ->\n            Sub.none\n"
  },
  {
    "path": "gateway/elm/src/Modals/History.elm",
    "content": "module Modals.History exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.ButtonGroup as ButtonGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.ListGroup as ListGroup\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport List\nimport Time\nimport Util\n\n\ntype alias Model =\n    { modal : Modal.Visibility\n    , alert : Alert.Visibility\n    , history : Maybe (Result Http.Error (List Commands.HistoryEntry))\n    , rights : List String\n    , lastPath : String\n    }\n\n\ntype Msg\n    = ModalShow\n    | GotHistoryResponse String (Result Http.Error (List Commands.HistoryEntry))\n    | GotResetResponse (Result Http.Error String)\n    | GotPinResponse (Result Http.Error String)\n    | ResetClicked String String\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n    | PinClicked String String Bool\n\n\n\n-- INIT\n\n\nnewModel : List String -> Model\nnewModel rights =\n    { modal = Modal.hidden\n    , alert = Alert.shown\n    , history = Nothing\n    , rights = rights\n    , lastPath = \"\"\n    }\n\n\n\n-- UPDATE\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotHistoryResponse path result ->\n            ( { model\n                | modal = Modal.shown\n                , history = Just result\n                , lastPath = path\n              }\n            , Cmd.none\n            )\n\n        ResetClicked path revision ->\n            ( model, Commands.doReset GotResetResponse path revision )\n\n        GotResetResponse result ->\n            case result of\n                Ok _ ->\n                    ( { model | modal = Modal.hidden, history = Nothing }, Cmd.none )\n\n                Err err ->\n                    ( { model | history = Just (Err err) }, Cmd.none )\n\n        GotPinResponse result ->\n            case result of\n                Ok _ ->\n                    -- Update the whole history to get the latest pin state.\n                    -- This is kinda wasteful and might be optimized later if we need to.\n                    ( model, Commands.doHistory (GotHistoryResponse model.lastPath) model.lastPath )\n\n                Err err ->\n                    ( { model | history = Just (Err err) }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow ->\n            ( { model | modal = Modal.shown }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, history = Nothing }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        PinClicked path revision shouldBePinned ->\n            ( model\n            , if shouldBePinned then\n                Commands.doPin GotPinResponse path revision\n\n              else\n                Commands.doUnpin GotPinResponse path revision\n            )\n\n        KeyPress key ->\n            if model.modal == Modal.hidden then\n                ( model, Cmd.none )\n\n            else\n                case key of\n                    \"Enter\" ->\n                        ( { model | modal = Modal.hidden, history = Nothing }, Cmd.none )\n\n                    _ ->\n                        ( model, Cmd.none )\n\n\n\n-- VIEW\n\n\nviewChangeColor : String -> Html Msg\nviewChangeColor change =\n    case change of\n        \"added\" ->\n            span [ class \"text-success\" ] [ text change ]\n\n        \"modified\" ->\n            span [ class \"text-warning\" ] [ text change ]\n\n        \"removed\" ->\n            span [ class \"text-danger\" ] [ text change ]\n\n        \"moved\" ->\n            span [ class \"text-info\" ] [ text change ]\n\n        _ ->\n            span [ class \"text-muted\" ] [ text change ]\n\n\njoinChanges : List (Html Msg) -> List (Html Msg)\njoinChanges changes =\n    List.intersperse (text \", \") changes\n\n\nviewChangeSet : String -> Html Msg\nviewChangeSet change =\n    let\n        changes =\n            List.map viewChangeColor (String.split \"|\" change)\n    in\n    span [] (joinChanges changes)\n\n\nviewPinIcon : Bool -> Bool -> Html msg\nviewPinIcon isPinned isExplicit =\n    case ( isPinned, isExplicit ) of\n        ( True, True ) ->\n            span\n                [ class \"fa fa-map-marker\", class \"text-success\" ]\n                []\n\n        ( True, False ) ->\n            span\n                [ class \"fa fa-map-marker-alt\", class \"text-warning\" ]\n                []\n\n        _ ->\n            span\n                [ class \"fa fa-times\", class \"text-danger\" ]\n                []\n\n\nviewPinButton : Model -> Commands.HistoryEntry -> Html Msg\nviewPinButton model entry =\n    Button.button\n        [ Button.outlinePrimary\n        , Button.attrs\n            [ disabled (not (List.member \"fs.edit\" model.rights))\n            , onClick (PinClicked entry.path entry.head.hash (not entry.isPinned))\n            ]\n        ]\n        [ viewPinIcon entry.isPinned entry.isExplicit ]\n\n\nviewHistoryEntry : Model -> Bool -> Commands.HistoryEntry -> Html Msg\nviewHistoryEntry model isFirst entry =\n    Grid.row []\n        [ Grid.col [ Col.xs9 ]\n            [ p []\n                [ text entry.path\n                , br [] []\n                , viewChangeSet entry.change\n                , span [ class \"text-muted\" ] [ text \" at \" ]\n                , text <| Util.formatLastModified Time.utc entry.head.date\n                , text \": \"\n                , span [ class \"text-muted\" ] [ text entry.head.msg ]\n                ]\n            ]\n        , Grid.col [ Col.xs3 ]\n            [ ButtonGroup.buttonGroup\n                []\n                [ ButtonGroup.button\n                    [ Button.outlinePrimary\n                    , Button.attrs\n                        [ onClick <| ResetClicked entry.path entry.head.hash\n                        , disabled isFirst\n                        ]\n                    ]\n                    [ text \"Revert\" ]\n                , ButtonGroup.button\n                    [ Button.outlinePrimary\n                    , Button.attrs\n                        [ disabled (not (List.member \"fs.edit\" model.rights))\n                        , onClick (PinClicked entry.path entry.head.hash (not entry.isPinned))\n                        ]\n                    ]\n                    [ viewPinIcon entry.isPinned entry.isExplicit ]\n                ]\n            ]\n        ]\n\n\nviewHistoryEntries : Model -> List Commands.HistoryEntry -> Html Msg\nviewHistoryEntries model entries =\n    Grid.row []\n        [ Grid.col []\n            [ ListGroup.ul\n                (List.indexedMap (\\idx e -> ListGroup.li [] [ viewHistoryEntry model (idx == 0) e ]) entries)\n            ]\n        ]\n\n\nviewHistory : Model -> List (Grid.Column Msg)\nviewHistory model =\n    [ Grid.col [ Col.xs12 ]\n        [ case model.history of\n            Nothing ->\n                text \"\"\n\n            Just result ->\n                case result of\n                    Ok entries ->\n                        viewHistoryEntries model entries\n\n                    Err err ->\n                        Util.buildAlert\n                            model.alert\n                            AlertMsg\n                            Alert.danger\n                            \"Oh no!\"\n                            (\"Could not read history: \" ++ Util.httpErrorToString err)\n        ]\n    ]\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-success\" ]\n            [ h4 [] [ text \"History\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [ Row.attrs [ class \"scrollable-modal-row\" ] ] (viewHistory model) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Close\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : String -> Cmd Msg\nshow path =\n    Commands.doHistory (GotHistoryResponse path) path\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/Mkdir.elm",
    "content": "module Modals.Mkdir exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport Url\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , inputName : String\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    }\n\n\ntype Msg\n    = CreateDir String\n    | InputChanged String\n    | ModalShow\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String String\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    { state = Ready\n    , modal = Modal.hidden\n    , inputName = \"\"\n    , alert = Alert.shown\n    }\n\n\n\n-- UPDATE\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        CreateDir path ->\n            ( model, Commands.doMkdir GotResponse path )\n\n        InputChanged inputName ->\n            ( { model | inputName = inputName }, Cmd.none )\n\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    -- New list model means also new checked entries.\n                    ( { model | state = Ready, modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow ->\n            ( { model | modal = Modal.shown, inputName = \"\" }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, state = Ready }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        KeyPress path key ->\n            if model.modal == Modal.hidden then\n                ( model, Cmd.none )\n\n            else\n                case key of\n                    \"Enter\" ->\n                        ( model, Commands.doMkdir GotResponse path )\n\n                    _ ->\n                        ( model, Cmd.none )\n\n\n\n-- VIEW\n\n\nshowPathCollision : Model -> Bool -> Html Msg\nshowPathCollision model doesExist =\n    if doesExist then\n        span [ class \"text-left\" ]\n            [ span [ class \"fas fa-md fa-exclamation-triangle text-warning\" ] []\n            , span [ class \"text-muted\" ]\n                [ text (\" »\" ++ model.inputName ++ \"« exists already. Please choose another name.\\u{00A0}\\u{00A0}\\u{00A0}\")\n                ]\n            ]\n\n    else\n        span [] []\n\n\nviewMkdirContent : Model -> List (Grid.Column Msg)\nviewMkdirContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ Input.text\n            [ Input.id \"mkdir-input\"\n            , Input.large\n            , Input.placeholder \"Directory name\"\n            , Input.onInput InputChanged\n            , Input.attrs [ autofocus True ]\n            ]\n        , br [] []\n        , case model.state of\n            Ready ->\n                text \"\"\n\n            Fail message ->\n                Util.buildAlert model.alert AlertMsg Alert.danger \"Oh no!\" (\"Could not create directory: \" ++ message)\n        ]\n    ]\n\n\npathFromUrl : Url.Url -> Model -> String\npathFromUrl url model =\n    Util.joinPath [ Util.urlToPath url, model.inputName ]\n\n\nview : Model -> Url.Url -> (String -> Bool) -> Html Msg\nview model url existChecker =\n    let\n        path =\n            Util.urlToPath url\n\n        hasPathCollision =\n            existChecker model.inputName\n    in\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 []\n                [ text \"Create a new directory in \"\n                , span []\n                    [ text \"»\"\n                    , text\n                        (if path == \"/\" then\n                            \"Home\"\n\n                         else\n                            path\n                        )\n                    , text \"«\"\n                    ]\n                ]\n            ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [] (viewMkdirContent model) ]\n            ]\n        |> Modal.footer []\n            [ showPathCollision model hasPathCollision\n            , Button.button\n                [ Button.primary\n                , Button.attrs\n                    [ onClick (CreateDir (pathFromUrl url model))\n                    , type_ \"submit\"\n                    , disabled\n                        (String.length model.inputName\n                            == 0\n                            || (case model.state of\n                                    Fail _ ->\n                                        True\n\n                                    _ ->\n                                        False\n                               )\n                            || hasPathCollision\n                        )\n                    ]\n                ]\n                [ text \"Create\" ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : Msg\nshow =\n    ModalShow\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Url.Url -> Model -> Sub Msg\nsubscriptions url model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map (KeyPress <| pathFromUrl url model) <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/MoveCopy.elm",
    "content": "module Modals.MoveCopy exposing\n    ( Model\n    , Msg\n    , newCopyModel\n    , newMoveModel\n    , show\n    , subscriptions\n    , update\n    , view\n    , viewDirList\n    , viewSearchBox\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Form.InputGroup as InputGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.Modal as Modal\nimport Bootstrap.Table as Table\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport List\nimport Util\n\n\ntype State\n    = Ready (List String)\n    | Loading\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , action : Type\n    , destPath : String\n    , sourcePath : String\n    , filter : String\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    }\n\n\ntype Msg\n    = DoAction\n    | DirChosen String\n    | SearchInput String\n    | ModalShow String\n    | GotAllDirsResponse (Result Http.Error (List String))\n    | GotActionResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n\n\n\n-- INIT\n\n\ntype Type\n    = Move\n    | Copy\n\n\ntypeToString : Type -> String\ntypeToString typ =\n    case typ of\n        Move ->\n            \"Move\"\n\n        Copy ->\n            \"Copy\"\n\n\nnewMoveModel : Model\nnewMoveModel =\n    { state = Loading\n    , modal = Modal.hidden\n    , action = Move\n    , destPath = \"\"\n    , sourcePath = \"\"\n    , filter = \"\"\n    , alert = Alert.shown\n    }\n\n\nnewCopyModel : Model\nnewCopyModel =\n    { state = Loading\n    , modal = Modal.hidden\n    , action = Copy\n    , destPath = \"\"\n    , sourcePath = \"\"\n    , filter = \"\"\n    , alert = Alert.shown\n    }\n\n\n\n-- UPDATE\n\n\nfixPath : String -> String\nfixPath path =\n    if path == \"/\" then\n        \"Home\"\n\n    else\n        String.join \"/\" (Util.splitPath path)\n\n\nfilterInvalidTargets : String -> String -> Bool\nfilterInvalidTargets sourcePath path =\n    (path /= Util.dirname sourcePath)\n        && not (String.startsWith path sourcePath)\n\n\nfixAllDirResponse : Model -> List String -> List String\nfixAllDirResponse model paths =\n    List.filter (filterInvalidTargets model.sourcePath) paths\n        |> List.map fixPath\n\n\nfilterAllDirs : String -> List String -> List String\nfilterAllDirs filter dirs =\n    let\n        lowerFilter =\n            String.toLower filter\n    in\n    List.filter (String.contains lowerFilter) dirs\n\n\ndoAction : Model -> Cmd Msg\ndoAction model =\n    case model.action of\n        Move ->\n            Commands.doMove GotActionResponse model.sourcePath model.destPath\n\n        Copy ->\n            Commands.doCopy GotActionResponse model.sourcePath model.destPath\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        DoAction ->\n            ( model, doAction model )\n\n        DirChosen path ->\n            ( { model | destPath = path }, Cmd.none )\n\n        SearchInput filter ->\n            ( { model | filter = filter }, Cmd.none )\n\n        GotAllDirsResponse result ->\n            case result of\n                Ok dirs ->\n                    ( { model | state = Ready (fixAllDirResponse model dirs) }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        GotActionResponse result ->\n            case result of\n                Ok _ ->\n                    ( { model | modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow sourcePath ->\n            ( { model\n                | modal = Modal.shown\n                , sourcePath = sourcePath\n                , destPath = \"\"\n                , state = Loading\n              }\n            , Commands.doListAllDirs GotAllDirsResponse\n            )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        KeyPress key ->\n            ( model\n            , if model.modal == Modal.hidden || model.destPath == \"\" then\n                Cmd.none\n\n              else\n                case key of\n                    \"Enter\" ->\n                        doAction model\n\n                    _ ->\n                        Cmd.none\n            )\n\n\n\n-- VIEW\n\n\nviewDirEntry : (String -> msg) -> String -> Table.Row msg\nviewDirEntry clickMsg path =\n    Table.tr []\n        [ Table.td\n            [ Table.cellAttr <| onClick (clickMsg path) ]\n            [ span [ class \"fas fa-lg fa-folder text-xs-right file-list-icon\" ] [] ]\n        , Table.td\n            [ Table.cellAttr <| onClick (clickMsg path) ]\n            [ text path ]\n        ]\n\n\nviewDirList : (String -> msg) -> String -> List String -> Html msg\nviewDirList clickMsg filter dirs =\n    Table.table\n        { options = [ Table.hover ]\n        , thead =\n            Table.thead [ Table.headAttr (style \"display\" \"none\") ]\n                [ Table.tr []\n                    [ Table.th [ Table.cellAttr (style \"width\" \"10%\") ] []\n                    , Table.th [ Table.cellAttr (style \"width\" \"90%\") ] []\n                    ]\n                ]\n        , tbody =\n            Table.tbody [] (List.map (viewDirEntry clickMsg) (filterAllDirs filter dirs))\n        }\n\n\nviewSearchBox : (String -> msg) -> String -> Html msg\nviewSearchBox searchMsg filter =\n    InputGroup.config\n        (InputGroup.text\n            [ Input.placeholder \"Filter directory list\"\n            , Input.attrs\n                [ onInput searchMsg\n                , value filter\n                ]\n            ]\n        )\n        |> InputGroup.successors\n            [ InputGroup.span [ class \"input-group-addon\" ]\n                [ button [] [ span [ class \"fas fa-search fa-xs input-group-addon\" ] [] ]\n                ]\n            ]\n        |> InputGroup.attrs [ class \"stylish-input-group input-group\" ]\n        |> InputGroup.view\n\n\nviewContent : Model -> List (Grid.Column Msg)\nviewContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ case model.state of\n            Ready dirs ->\n                div []\n                    [ viewSearchBox SearchInput model.filter\n                    , viewDirList DirChosen model.filter dirs\n                    ]\n\n            Loading ->\n                text \"Loading.\"\n\n            Fail message ->\n                Util.buildAlert\n                    model.alert\n                    AlertMsg\n                    Alert.danger\n                    \"Oh no!\"\n                    (\"Could not move or copy path: \" ++ message)\n        ]\n    ]\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 []\n                [ text (typeToString model.action ++ \" \")\n                , span []\n                    [ text \"»\"\n                    , text (Util.basename model.sourcePath)\n                    , text \"«\"\n                    ]\n                , if String.length model.destPath > 0 then\n                    span []\n                        [ text \" into »\"\n                        , text model.destPath\n                        , text \"«\"\n                        ]\n\n                  else\n                    text \" into ...\"\n                ]\n            ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row\n                    [ Row.attrs [ class \"scrollable-modal-row\" ] ]\n                    (viewContent model)\n                ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.primary\n                , Button.attrs\n                    [ onClick DoAction\n                    , type_ \"submit\"\n                    , disabled\n                        (String.length model.destPath\n                            == 0\n                            || (case model.state of\n                                    Fail _ ->\n                                        True\n\n                                    _ ->\n                                        False\n                               )\n                        )\n                    ]\n                ]\n                [ text (typeToString model.action) ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : String -> Msg\nshow sourcePath =\n    ModalShow sourcePath\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/RemoteAdd.elm",
    "content": "module Modals.RemoteAdd exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Dropdown as Dropdown\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Dict\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , name : String\n    , fingerprint : String\n    , doAutoUdate : Bool\n    , acceptPush : Bool\n    , conflictStrategy : String\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    , conflictDropdown : Dropdown.State\n    }\n\n\ntype Msg\n    = RemoteAdd\n    | NameInputChanged String\n    | FingerprintInputChanged String\n    | AutoUpdateChanged Bool\n    | AcceptPushChanged Bool\n    | ConflictStrategyChanged String\n    | ConflictDropdownMsg Dropdown.State\n    | ModalShow\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    newModelWithState Modal.hidden\n\n\nnewModelWithState : Modal.Visibility -> Model\nnewModelWithState state =\n    { state = Ready\n    , modal = state\n    , name = \"\"\n    , fingerprint = \"\"\n    , doAutoUdate = False\n    , acceptPush = False\n    , alert = Alert.shown\n    , conflictDropdown = Dropdown.initialState\n    , conflictStrategy = \"\"\n    }\n\n\n\n-- UPDATE\n\n\nsubmit : Model -> Cmd Msg\nsubmit model =\n    Commands.doRemoteAdd GotResponse\n        model.name\n        model.fingerprint\n        model.doAutoUdate\n        model.acceptPush\n        model.conflictStrategy\n        []\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        RemoteAdd ->\n            ( model, submit model )\n\n        NameInputChanged name ->\n            ( { model | name = name }, Cmd.none )\n\n        FingerprintInputChanged fingerprint ->\n            ( { model | fingerprint = fingerprint }, Cmd.none )\n\n        AutoUpdateChanged doAutoUdate ->\n            ( { model | doAutoUdate = doAutoUdate }, Cmd.none )\n\n        AcceptPushChanged acceptPush ->\n            ( { model | acceptPush = acceptPush }, Cmd.none )\n\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    -- New list model means also new checked entries.\n                    ( { model | state = Ready, modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow ->\n            ( newModelWithState Modal.shown, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        ConflictDropdownMsg state ->\n            ( { model | conflictDropdown = state }, Cmd.none )\n\n        ConflictStrategyChanged state ->\n            ( { model | conflictStrategy = state }, Cmd.none )\n\n        KeyPress key ->\n            if model.modal == Modal.hidden then\n                ( model, Cmd.none )\n\n            else\n                case key of\n                    \"Enter\" ->\n                        ( model, submit model )\n\n                    _ ->\n                        ( model, Cmd.none )\n\n\n\n-- VIEW\n\n\nviewRemoteAddContent : Model -> List (Grid.Column Msg)\nviewRemoteAddContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ Input.text\n            [ Input.id \"remote-name-input\"\n            , Input.large\n            , Input.placeholder \"Remote name\"\n            , Input.onInput NameInputChanged\n            , Input.attrs [ autofocus True ]\n            ]\n        , br [] []\n        , Input.text\n            [ Input.id \"remote-fingerprint-input\"\n            , Input.large\n            , Input.placeholder \"Remote fingerprint\"\n            , Input.onInput FingerprintInputChanged\n            ]\n        , br [] []\n        , span []\n            [ Util.viewToggleSwitch\n                AutoUpdateChanged\n                \"Accept automatic updates?\"\n                model.doAutoUdate\n                False\n            ]\n        , br [] []\n        , span []\n            [ Util.viewToggleSwitch\n                AcceptPushChanged\n                \"Accept other remotes pushing data to us?\"\n                model.acceptPush\n                False\n            ]\n        , br [] []\n        , span []\n            [ span [ class \"text-muted\" ] [ text \"The current conflict strategy is\" ]\n            , viewConflictDropdown model\n            , span [ class \"text-muted\" ] [ text \".\" ]\n            ]\n        , case model.state of\n            Ready ->\n                text \"\"\n\n            Fail message ->\n                Util.buildAlert model.alert AlertMsg Alert.danger \"Oh no!\" (\"Could not add remote: \" ++ message)\n        ]\n    ]\n\n\nshowCurrentConflictStrategy : Model -> Html Msg\nshowCurrentConflictStrategy model =\n    case model.conflictStrategy of\n        \"\" ->\n            span [] [ text \"Marker \", span [ class \"fas fa-marker\" ] [] ]\n\n        \"ignore\" ->\n            span [] [ text \"Ignore \", span [ class \"fas fa-eject\" ] [] ]\n\n        \"marker\" ->\n            span [] [ text \"Marker \", span [ class \"fas fa-marker\" ] [] ]\n\n        \"embrace\" ->\n            span [] [ text \"Embrace \", span [ class \"fas fa-handshake\" ] [] ]\n\n        _ ->\n            span [] [ text \"Unknown \", span [ class \"fas fa-question\" ] [] ]\n\n\nviewConflictDropdown : Model -> Html Msg\nviewConflictDropdown model =\n    Dropdown.dropdown\n        model.conflictDropdown\n        { options =\n            [ Dropdown.alignMenuRight\n            , Dropdown.attrs [ id \"remote-add-conflict-dropdown\" ]\n            ]\n        , toggleMsg = ConflictDropdownMsg\n        , toggleButton =\n            Dropdown.toggle\n                [ Button.roleLink ]\n                [ showCurrentConflictStrategy model ]\n        , items =\n            [ Dropdown.buttonItem\n                [ onClick (ConflictStrategyChanged \"ignore\") ]\n                [ span [ class \"fas fa-md fa-eject\" ] [], text \" Ignore\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyChanged \"marker\") ]\n                [ span [ class \"fas fa-md fa-marker\" ] [], text \" Marker\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyChanged \"embrace\") ]\n                [ span [ class \"fas fa-md fa-handshake\" ] [], text \" Embrace\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyChanged \"\") ]\n                [ span [ class \"fas fa-md fa-eraser\" ] [], text \" Default\" ]\n            ]\n        }\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 [] [ text \"Add a new remote\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [] (viewRemoteAddContent model) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.primary\n                , Button.attrs\n                    [ onClick RemoteAdd\n                    , type_ \"submit\"\n                    , disabled\n                        (String.length model.name\n                            == 0\n                            || String.length model.fingerprint\n                            == 0\n                            || (case model.state of\n                                    Fail _ ->\n                                        True\n\n                                    _ ->\n                                        False\n                               )\n                        )\n                    ]\n                ]\n                [ text \"Create\" ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : Msg\nshow =\n    ModalShow\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        , Dropdown.subscriptions model.conflictDropdown ConflictDropdownMsg\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/RemoteFolders.elm",
    "content": "module Modals.RemoteFolders exposing\n    ( Model\n    , Msg\n    , newModel\n    , show\n    , subscriptions\n    , update\n    , view\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Dropdown as Dropdown\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Form.InputGroup as InputGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.ListGroup as ListGroup\nimport Bootstrap.Modal as Modal\nimport Bootstrap.Table as Table\nimport Bootstrap.Text as Text\nimport Browser.Events as Events\nimport Commands\nimport Dict\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport List.Extra as LE\nimport Modals.MoveCopy as MoveCopy\nimport Set\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , allDirs : List String\n    , filter : String\n    , remote : Commands.Remote\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    , conflictDropdowns : Dict.Dict String Dropdown.State\n    }\n\n\ntype Msg\n    = ModalShow Commands.Remote\n    | FolderRemove String\n    | ReadOnlyChanged String Bool\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | GotAllDirsResponse (Result Http.Error (List String))\n    | DirChosen String\n    | SearchInput String\n    | ConflictStrategyToggled String String\n    | ConflictDropdownMsg String Dropdown.State\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    newModelWithState Modal.hidden Commands.emptyRemote\n\n\nnewModelWithState : Modal.Visibility -> Commands.Remote -> Model\nnewModelWithState state remote =\n    { state = Ready\n    , modal = state\n    , allDirs = []\n    , filter = \"\"\n    , remote = remote\n    , alert = Alert.shown\n    , conflictDropdowns = Dict.empty\n    }\n\n\n\n-- UPDATE\n\n\nsubmit : Commands.Remote -> Cmd Msg\nsubmit remote =\n    Commands.doRemoteModify GotResponse remote\n\n\nfixFolder : String -> String\nfixFolder path =\n    Util.prefixSlash path\n\n\naddFolder : Model -> String -> ( Model, Cmd Msg )\naddFolder model folder =\n    let\n        oldRemote =\n            model.remote\n\n        cleanFolder =\n            Commands.Folder (fixFolder folder) False \"\"\n\n        newRemote =\n            { oldRemote | folders = List.sortBy .folder <| cleanFolder :: oldRemote.folders }\n\n        upModel =\n            { model | remote = newRemote }\n    in\n    ( upModel, submit upModel.remote )\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    -- New list model means also new checked entries.\n                    ( { model | state = Ready }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        FolderRemove folder ->\n            let\n                oldRemote =\n                    model.remote\n\n                newRemote =\n                    { oldRemote | folders = List.filter (\\f -> f.folder /= folder) oldRemote.folders }\n\n                upModel =\n                    { model | remote = newRemote }\n            in\n            ( upModel, submit upModel.remote )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow remote ->\n            ( newModelWithState Modal.shown remote\n            , Commands.doListAllDirs GotAllDirsResponse\n            )\n\n        GotAllDirsResponse result ->\n            case result of\n                Ok allDirs ->\n                    ( { model | allDirs = allDirs }, Cmd.none )\n\n                Err _ ->\n                    ( model, Cmd.none )\n\n        DirChosen choice ->\n            addFolder model choice\n\n        SearchInput filter ->\n            ( { model | filter = filter }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, filter = \"\" }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        ReadOnlyChanged path state ->\n            let\n                oldRemote =\n                    model.remote\n\n                newRemote =\n                    { oldRemote\n                        | folders =\n                            List.map\n                                (\\f ->\n                                    if f.folder == path then\n                                        { f | readOnly = state }\n\n                                    else\n                                        f\n                                )\n                                model.remote.folders\n                    }\n            in\n            ( { model | remote = newRemote }, submit newRemote )\n\n        ConflictDropdownMsg folder state ->\n            ( { model | conflictDropdowns = Dict.insert folder state model.conflictDropdowns }, Cmd.none )\n\n        ConflictStrategyToggled folder strategy ->\n            let\n                oldRemote =\n                    model.remote\n\n                newFolders =\n                    List.map\n                        (\\f ->\n                            if f.folder == folder then\n                                { f | conflictStrategy = strategy }\n\n                            else\n                                f\n                        )\n                        model.remote.folders\n\n                newRemote =\n                    { oldRemote | folders = newFolders }\n\n                upModel =\n                    { model | remote = newRemote }\n            in\n            ( upModel, submit upModel.remote )\n\n\n\n-- VIEW\n\n\nviewRow : Html Msg -> Html Msg -> Html Msg -> Html Msg\nviewRow a b c =\n    Grid.row []\n        [ Grid.col [ Col.xs1, Col.textAlign Text.alignXsRight ] [ a ]\n        , Grid.col [ Col.xs8, Col.textAlign Text.alignXsLeft ] [ b ]\n        , Grid.col [ Col.xs3, Col.textAlign Text.alignXsLeft ] [ c ]\n        ]\n\n\nconflictStrategyToIconName : String -> String\nconflictStrategyToIconName strategy =\n    case strategy of\n        \"\" ->\n            \"fa-marker text-muted\"\n\n        \"ignore\" ->\n            \"fa-eject\"\n\n        \"marker\" ->\n            \"fa-marker\"\n\n        \"embrace\" ->\n            \"fa-handshake\"\n\n        _ ->\n            \"fa-question\"\n\n\nviewConflictDropdown : Model -> Commands.Folder -> Html Msg\nviewConflictDropdown model folder =\n    Dropdown.dropdown\n        (Maybe.withDefault Dropdown.initialState (Dict.get folder.folder model.conflictDropdowns))\n        { options = [ Dropdown.alignMenuRight ]\n        , toggleMsg = ConflictDropdownMsg folder.folder\n        , toggleButton =\n            Dropdown.toggle\n                [ Button.roleLink ]\n                [ span [ class \"fas\", class <| conflictStrategyToIconName folder.conflictStrategy ] [] ]\n        , items =\n            [ Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled folder.folder \"ignore\") ]\n                [ span [ class \"fas fa-md fa-eject\" ] [], text \" Ignore\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled folder.folder \"marker\") ]\n                [ span [ class \"fas fa-md fa-marker\" ] [], text \" Marker\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled folder.folder \"embrace\") ]\n                [ span [ class \"fas fa-md fa-handshake\" ] [], text \" Embrace\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled folder.folder \"\") ]\n                [ span [ class \"fas fa-md fa-eraser\" ] [], text \" Default\" ]\n            ]\n        }\n\n\nviewFolder : Model -> Commands.Folder -> Table.Row Msg\nviewFolder model folder =\n    Table.tr []\n        [ Table.td\n            []\n            [ span [ class \"fas fa-md fa-folder text-muted\" ] [] ]\n        , Table.td\n            []\n            [ text folder.folder ]\n        , Table.td\n            []\n            [ viewConflictDropdown model folder ]\n        , Table.td\n            []\n            [ Util.viewToggleSwitch (ReadOnlyChanged folder.folder) \"\" folder.readOnly False ]\n        , Table.td\n            []\n            [ Button.button\n                [ Button.attrs [ class \"close\", onClick <| FolderRemove folder.folder ] ]\n                [ span [ class \"fas fa-xs fa-times text-muted\" ] []\n                ]\n            ]\n        ]\n\n\nviewFolders : Model -> Commands.Remote -> Html Msg\nviewFolders model remote =\n    Table.table\n        { options =\n            [ Table.hover\n            , Table.attr (class \"borderless-table\")\n            ]\n        , thead =\n            Table.thead []\n                [ Table.tr []\n                    [ Table.th\n                        [ Table.cellAttr (style \"width\" \"5%\") ]\n                        [ text \"\" ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"55%\") ]\n                        [ span [ class \"text-muted small\" ] [ text \"Name\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"20%\") ]\n                        [ span [ class \"text-muted small\" ] [ text \"Conflict Strategy\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"15%\") ]\n                        [ span [ class \"text-muted small\" ] [ text \"Read Only?\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"5%\") ]\n                        []\n                    ]\n                ]\n        , tbody =\n            Table.tbody []\n                (List.map\n                    (\\f -> viewFolder model f)\n                    remote.folders\n                )\n        }\n\n\nviewMaybeFolders : Model -> Commands.Remote -> Html Msg\nviewMaybeFolders model remote =\n    let\n        folders =\n            LE.uniqueBy .folder remote.folders\n    in\n    if List.length folders <= 0 then\n        span\n            [ class \"text-muted text-center\" ]\n            [ text \"No folders. This means this user can see everthing.\"\n            , br [] []\n            , text \"Add a new folder below to limit what this remote can see.\"\n            , br [] []\n            , br [] []\n            ]\n\n    else\n        div []\n            [ viewFolders model remote\n            , br [] []\n            , hr [] []\n            ]\n\n\nviewRemoteFoldersContent : Model -> List (Grid.Column Msg)\nviewRemoteFoldersContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ h4 [] [ span [ class \"text-muted text-center\" ] [ text \"Visible folders\" ] ]\n        , viewMaybeFolders model model.remote\n        , br [] []\n        , br [] []\n        , h4 [] [ span [ class \"text-muted text-center\" ] [ text \"All folders\" ] ]\n        , MoveCopy.viewSearchBox SearchInput model.filter\n        , MoveCopy.viewDirList DirChosen model.filter model.allDirs\n        , case model.state of\n            Ready ->\n                text \"\"\n\n            Fail message ->\n                Util.buildAlert model.alert AlertMsg Alert.danger \"Oh no!\" (\"Could not add remote: \" ++ message)\n        ]\n    ]\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 [] [ text \"Edit folders of »\", text model.remote.name, text \"«\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row\n                    [ Row.attrs [ style \"min-width\" \"60vh\", class \"scrollable-modal-row\" ]\n                    ]\n                    (viewRemoteFoldersContent model)\n                ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Close\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : Commands.Remote -> Msg\nshow remote =\n    ModalShow remote\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Sub.batch\n            (List.map\n                (\\( name, state ) -> Dropdown.subscriptions state (ConflictDropdownMsg name))\n                (Dict.toList model.conflictDropdowns)\n            )\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/RemoteRemove.elm",
    "content": "module Modals.RemoteRemove exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\n\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\n\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , name : String\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    }\n\n\ntype Msg\n    = DoRemove\n    | ModalShow String\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    newModelWithState \"\" Modal.hidden\n\n\nnewModelWithState : String -> Modal.Visibility -> Model\nnewModelWithState name state =\n    { state = Ready\n    , modal = state\n    , name = name\n    , alert = Alert.shown\n    }\n\n\n\n-- UPDATE\n\n\nsubmit : Model -> Cmd Msg\nsubmit model =\n    Commands.doRemoteRemove GotResponse model.name\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        DoRemove ->\n            ( model, submit model )\n\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    ( { model | modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow path ->\n            ( newModelWithState path Modal.shown, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        KeyPress key ->\n            if model.modal == Modal.hidden then\n                ( model, Cmd.none )\n\n            else\n                case key of\n                    \"Enter\" ->\n                        ( model, submit model )\n\n                    _ ->\n                        ( model, Cmd.none )\n\n\n\n-- VIEW\n\n\nviewRemoteAddContent : Model -> List (Grid.Column Msg)\nviewRemoteAddContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ text\n            (\"Removing »\"\n                ++ model.name\n                ++ \"« cannot be reverted. If you are the last one caching the data of this remote,\"\n                ++ \" the data might vanish forever and cannot be restored.\"\n            )\n        ]\n    ]\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-danger\" ]\n            [ h4 [] [ text \"Really remove?\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [] (viewRemoteAddContent model) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.danger\n                , Button.attrs\n                    [ onClick DoRemove\n                    , type_ \"submit\"\n                    ]\n                ]\n                [ text \"Remove\" ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : String -> Msg\nshow name =\n    ModalShow name\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/Remove.elm",
    "content": "module Modals.Remove exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    , selected : List String\n    }\n\n\ntype Msg\n    = RemoveAll (List String)\n    | ModalShow (List String)\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    { state = Ready\n    , modal = Modal.hidden\n    , alert = Alert.shown\n    , selected = []\n    }\n\n\n\n-- UPDATE\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        RemoveAll paths ->\n            ( model, Commands.doRemove GotResponse paths )\n\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    -- New list model means also new checked entries.\n                    ( { model | state = Ready, modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow paths ->\n            ( { model | modal = Modal.shown, selected = paths }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, state = Ready }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        KeyPress key ->\n            ( model\n            , if model.modal == Modal.hidden then\n                Cmd.none\n\n              else\n                case key of\n                    \"Enter\" ->\n                        Commands.doRemove GotResponse model.selected\n\n                    _ ->\n                        Cmd.none\n            )\n\n\n\n-- VIEW\n\n\npluralizeItems : Int -> String\npluralizeItems count =\n    if count == 1 then\n        \"item\"\n\n    else\n        \"items\"\n\n\nviewRemoveContent : Model -> Int -> List (Grid.Column Msg)\nviewRemoveContent model nSelected =\n    [ Grid.col [ Col.xs12 ]\n        [ case model.state of\n            Ready ->\n                text (\"This would remove the \" ++ String.fromInt nSelected ++ \" selected \" ++ pluralizeItems nSelected ++ \".\")\n\n            Fail message ->\n                Util.buildAlert model.alert AlertMsg Alert.danger \"Oh no!\" (\"Could not remove directory: \" ++ message)\n        ]\n    ]\n\n\nview : Model -> List String -> Html Msg\nview model selectedPaths =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-warning\" ]\n            [ h4 [] [ text \"Really remove?\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [] (viewRemoveContent model (List.length selectedPaths)) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.warning\n                , Button.attrs\n                    [ onClick <| RemoveAll selectedPaths\n                    , disabled\n                        (case model.state of\n                            Fail _ ->\n                                True\n\n                            _ ->\n                                False\n                        )\n                    ]\n                ]\n                [ text \"Remove\" ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : List String -> Msg\nshow paths =\n    ModalShow paths\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/Rename.elm",
    "content": "module Modals.Rename exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Modal as Modal\nimport Browser.Events as Events\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport Util\n\n\ntype State\n    = Ready\n    | Fail String\n\n\ntype alias Model =\n    { state : State\n    , currPath : String\n    , inputName : String\n    , modal : Modal.Visibility\n    , alert : Alert.Visibility\n    }\n\n\ntype Msg\n    = DoRename\n    | InputChanged String\n    | ModalShow String\n    | GotResponse (Result Http.Error String)\n    | AnimateModal Modal.Visibility\n    | AlertMsg Alert.Visibility\n    | ModalClose\n    | KeyPress String\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    { state = Ready\n    , modal = Modal.hidden\n    , inputName = \"\"\n    , currPath = \"\"\n    , alert = Alert.shown\n    }\n\n\n\n-- UPDATE\n\n\ntriggerRename : String -> String -> Cmd Msg\ntriggerRename sourcePath newName =\n    Commands.doMove\n        GotResponse\n        sourcePath\n        (Util.joinPath [ Util.dirname sourcePath, Util.basename newName ])\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        DoRename ->\n            ( model, triggerRename model.currPath model.inputName )\n\n        InputChanged inputName ->\n            ( { model | inputName = inputName }, Cmd.none )\n\n        GotResponse result ->\n            case result of\n                Ok _ ->\n                    -- New list model means also new checked entries.\n                    ( { model | state = Ready, modal = Modal.hidden }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Fail <| Util.httpErrorToString err }, Cmd.none )\n\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow currPath ->\n            ( { model | modal = Modal.shown, inputName = \"\", currPath = currPath }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, state = Ready }, Cmd.none )\n\n        AlertMsg vis ->\n            ( { model | alert = vis }, Cmd.none )\n\n        KeyPress key ->\n            if model.modal == Modal.hidden then\n                ( model, Cmd.none )\n\n            else\n                case key of\n                    \"Enter\" ->\n                        ( model, triggerRename model.currPath model.inputName )\n\n                    _ ->\n                        ( model, Cmd.none )\n\n\n\n-- VIEW\n\n\nviewRenameContent : Model -> List (Grid.Column Msg)\nviewRenameContent model =\n    [ Grid.col [ Col.xs12 ]\n        [ Input.text\n            [ Input.id \"rename-input\"\n            , Input.large\n            , Input.placeholder \"New name\"\n            , Input.onInput InputChanged\n            , Input.attrs [ autofocus True ]\n            ]\n        , br [] []\n        , case model.state of\n            Ready ->\n                text \"\"\n\n            Fail message ->\n                Util.buildAlert\n                    model.alert\n                    AlertMsg\n                    Alert.danger\n                    \"Oh no!\"\n                    (\"Could not rename path: \" ++ message)\n        ]\n    ]\n\n\nview : Model -> Html Msg\nview model =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 []\n                [ text \"Rename \"\n                , span []\n                    [ text \"»\"\n                    , text (Util.basename model.currPath)\n                    , text \"«\"\n                    ]\n                , if String.length model.inputName > 0 then\n                    span []\n                        [ text \" to \"\n                        , span []\n                            [ text \"»\"\n                            , text model.inputName\n                            , text \"«\"\n                            ]\n                        ]\n\n                  else\n                    text \"\"\n                ]\n            ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [] (viewRenameContent model) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.primary\n                , Button.attrs\n                    [ onClick DoRename\n                    , type_ \"submit\"\n                    , disabled\n                        (String.length model.inputName\n                            == 0\n                            || (case model.state of\n                                    Fail _ ->\n                                        True\n\n                                    _ ->\n                                        False\n                               )\n                        )\n                    ]\n                ]\n                [ text \"Rename\" ]\n            , Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Cancel\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : String -> Msg\nshow currPath =\n    ModalShow currPath\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        , Alert.subscriptions model.alert AlertMsg\n        , Events.onKeyPress (D.map KeyPress <| D.field \"key\" D.string)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/Share.elm",
    "content": "module Modals.Share exposing (Model, Msg, newModel, show, subscriptions, update, view)\n\nimport Bootstrap.Button as Button\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.Modal as Modal\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Url\nimport Util\n\n\ntype alias Model =\n    { paths : List String\n    , modal : Modal.Visibility\n    }\n\n\ntype Msg\n    = ModalShow (List String)\n    | AnimateModal Modal.Visibility\n    | ModalClose\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    { paths = []\n    , modal = Modal.hidden\n    }\n\n\n\n-- UPDATE\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        AnimateModal visibility ->\n            ( { model | modal = visibility }, Cmd.none )\n\n        ModalShow paths ->\n            ( { model | modal = Modal.shown, paths = paths }, Cmd.none )\n\n        ModalClose ->\n            ( { model | modal = Modal.hidden, paths = [] }, Cmd.none )\n\n\n\n-- VIEW\n\n\nformatEntry : Url.Url -> String -> Html msg\nformatEntry url path =\n    let\n        link =\n            Util.urlPrefixToString url ++ \"get\" ++ Util.urlEncodePath path\n    in\n    li [] [ a [ href link ] [ text link ] ]\n\n\nviewShare : Model -> Url.Url -> List (Grid.Column Msg)\nviewShare model url =\n    [ Grid.col [ Col.xs12 ]\n        [ p [] [ text \"Use those links to share the selected files with people that do not use brig.\" ]\n        , p [] [ b [] [ text \"Note:\" ], text \" Remember, they still need to authenticate themselves.\" ]\n        , ul [ id \"share-list\" ] (List.map (formatEntry url) model.paths)\n        ]\n    ]\n\n\nview : Model -> Url.Url -> Html Msg\nview model url =\n    Modal.config ModalClose\n        |> Modal.large\n        |> Modal.withAnimation AnimateModal\n        |> Modal.header [ class \"modal-title modal-header-primary\" ]\n            [ h4 [] [ text \"Share hyperlinks\" ] ]\n        |> Modal.body []\n            [ Grid.containerFluid []\n                [ Grid.row [ Row.attrs [ class \"scrollable-modal-row\" ] ] (viewShare model url) ]\n            ]\n        |> Modal.footer []\n            [ Button.button\n                [ Button.outlinePrimary\n                , Button.attrs [ onClick <| AnimateModal Modal.hiddenAnimated ]\n                ]\n                [ text \"Close\" ]\n            ]\n        |> Modal.view model.modal\n\n\nshow : List String -> Msg\nshow paths =\n    ModalShow paths\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Modal.subscriptions model.modal AnimateModal\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Modals/Upload.elm",
    "content": "module Modals.Upload exposing\n    ( Model\n    , Msg\n    , buildButton\n    , newModel\n    , subscriptions\n    , update\n    , viewUploadState\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Progress as Progress\nimport Bootstrap.Text as Text\nimport Commands\nimport Delay\nimport Dict\nimport File\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Decode as D\nimport List\nimport Tuple\n\n\ntype alias Alertable =\n    { alert : Alert.Visibility\n    , path : String\n    }\n\n\ntype alias Model =\n    { uploads : Dict.Dict String Float\n    , failed : List Alertable\n    , success : List Alertable\n    }\n\n\ntype Msg\n    = UploadSelectedFiles String (List File.File)\n    | UploadProgress String Http.Progress\n    | Uploaded String (Result Http.Error ())\n    | UploadCancel String\n    | AlertMsg String Alert.Visibility\n\n\n\n-- INIT\n\n\nnewModel : Model\nnewModel =\n    { uploads = Dict.empty\n    , failed = []\n    , success = []\n    }\n\n\nalertMapper : String -> Alert.Visibility -> Alertable -> Alertable\nalertMapper path vis a =\n    case a.path == path of\n        True ->\n            { a | alert = vis }\n\n        False ->\n            a\n\n\n\n-- UPDATE\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        UploadSelectedFiles root files ->\n            let\n                newUploads =\n                    Dict.union model.uploads <| Dict.fromList (List.map (\\f -> ( File.name f, 0 )) files)\n            in\n            ( { model | uploads = newUploads }\n            , Cmd.batch (List.map (Commands.doUpload Uploaded root) files)\n            )\n\n        UploadProgress path progress ->\n            case progress of\n                Http.Sending p ->\n                    ( { model | uploads = Dict.insert path (Http.fractionSent p) model.uploads }, Cmd.none )\n\n                Http.Receiving _ ->\n                    ( model, Cmd.none )\n\n        Uploaded path result ->\n            let\n                newUploads =\n                    Dict.remove path model.uploads\n            in\n            case result of\n                Ok _ ->\n                    ( { model\n                        | uploads = newUploads\n                        , success = Alertable Alert.shown path :: model.success\n                      }\n                    , Delay.after 5 Delay.Second (AlertMsg path Alert.closed)\n                    )\n\n                Err _ ->\n                    ( { model\n                        | uploads = newUploads\n                        , failed = Alertable Alert.shown path :: model.failed\n                      }\n                    , Delay.after 30 Delay.Second (AlertMsg path Alert.closed)\n                    )\n\n        UploadCancel path ->\n            ( { model | uploads = Dict.remove path model.uploads }\n            , Http.cancel (\"upload-\" ++ path)\n            )\n\n        AlertMsg path vis ->\n            ( { model\n                | success = List.map (alertMapper path vis) model.success\n                , failed = List.map (alertMapper path vis) model.failed\n              }\n            , Cmd.none\n            )\n\n\n\n-- VIEW\n\n\nfilesDecoder : D.Decoder (List File.File)\nfilesDecoder =\n    D.at [ \"target\", \"files\" ] (D.list File.decoder)\n\n\nbuildButton : Model -> Bool -> String -> (Msg -> msg) -> Html msg\nbuildButton model currIsFile currRoot toMsg =\n    label\n        [ class \"btn btn-file btn-link btn-default text-left\"\n        , id \"action-btn\"\n        , if currIsFile then\n            class \"disabled\"\n\n          else\n            class \"btn-default\"\n        ]\n        [ span [ class \"fas fa-plus\" ] []\n        , span [ class \"d-lg-inline d-none\" ] [ text \"\\u{00A0}\\u{00A0}Upload\" ]\n        , input\n            [ type_ \"file\"\n            , multiple True\n            , on \"change\"\n                (D.map toMsg\n                    (D.map\n                        (UploadSelectedFiles currRoot)\n                        filesDecoder\n                    )\n                )\n            , style \"display\" \"none\"\n            , disabled currIsFile\n            ]\n            []\n        ]\n\n\nclampText : String -> Int -> String\nclampText text length =\n    if String.length text <= length then\n        text\n\n    else\n        String.slice 0 length text ++ \"…\"\n\n\nviewAlert : Alert.Visibility -> String -> Bool -> Html Msg\nviewAlert alert path isSuccess =\n    Alert.config\n        |> Alert.dismissableWithAnimation (AlertMsg path)\n        |> (if isSuccess then\n                Alert.success\n\n            else\n                Alert.danger\n           )\n        |> Alert.children\n            [ Grid.row []\n                [ Grid.col [ Col.xs10 ]\n                    [ span\n                        [ if isSuccess then\n                            class \"fas fa-xs fa-check\"\n\n                          else\n                            class \"fas fa-xs fa-exclamation-circle\"\n                        ]\n                        []\n                    , text (\" \" ++ clampText path 15)\n                    ]\n                , Grid.col [ Col.xs2, Col.textAlign Text.alignXsRight ]\n                    [ Button.button\n                        [ Button.roleLink\n                        , Button.attrs\n                            [ class \"notification-close-btn\"\n                            , onClick (AlertMsg path Alert.closed)\n                            ]\n                        ]\n                        [ span [ class \"fas fa-xs fa-times\" ] [] ]\n                    ]\n                ]\n            ]\n        |> Alert.view alert\n\n\nviewProgressIndicator : String -> Float -> Html Msg\nviewProgressIndicator path fraction =\n    Grid.row []\n        [ Grid.col [ Col.md10 ]\n            [ Progress.progress\n                [ Progress.value (100 * fraction)\n                , Progress.customLabel [ text (clampText path 25) ]\n                , Progress.attrs [ style \"height\" \"25px\" ]\n                , Progress.wrapperAttrs [ style \"height\" \"25px\" ]\n                ]\n            ]\n        , Grid.col [ Col.md2 ]\n            [ Button.button\n                [ Button.roleLink\n                , Button.attrs [ class \"progress-cancel\", onClick (UploadCancel path) ]\n                ]\n                [ span [ class \"fas fa-xs fa-times\" ] [] ]\n            ]\n        ]\n\n\nviewUploadState : Model -> Html Msg\nviewUploadState model =\n    div []\n        [ br [] []\n        , br [] []\n        , ul [ class \"notification-list list-group\" ]\n            (List.map (\\a -> viewAlert a.alert a.path True) model.success\n                ++ List.map (\\a -> viewAlert a.alert a.path False) model.failed\n                ++ List.map (\\p -> viewProgressIndicator (Tuple.first p) (Tuple.second p)) (Dict.toList model.uploads)\n            )\n        ]\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Sub.batch\n            (List.map\n                (\\p -> Http.track (\"upload-\" ++ p) (UploadProgress p))\n                (Dict.keys model.uploads)\n            )\n        , Sub.batch (List.map (\\a -> Alert.subscriptions a.alert (AlertMsg a.path)) model.success)\n        , Sub.batch (List.map (\\a -> Alert.subscriptions a.alert (AlertMsg a.path)) model.failed)\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Pinger.elm",
    "content": "port module Pinger exposing (pinger)\n\n\nport pinger : (String -> msg) -> Sub msg\n"
  },
  {
    "path": "gateway/elm/src/Routes/Commits.elm",
    "content": "module Routes.Commits exposing\n    ( Model\n    , Msg\n    , newModel\n    , reload\n    , reloadIfNeeded\n    , subscriptions\n    , update\n    , updateUrl\n    , view\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Form.InputGroup as InputGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.ListGroup as ListGroup\nimport Bootstrap.Table as Table\nimport Bootstrap.Text as Text\nimport Browser.Navigation as Nav\nimport Commands\nimport Delay\nimport Dict\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Html.Lazy as Lazy\nimport Http\nimport Scroll\nimport Time\nimport Url\nimport Util\n\n\n\n-- MODEL:\n\n\nloadLimit : Int\nloadLimit =\n    20\n\n\ntype State\n    = Loading\n    | Failure String\n    | Success (List Commands.Commit)\n\n\ntype alias Model =\n    { key : Nav.Key\n    , state : State\n    , zone : Time.Zone\n    , filter : String\n    , offset : Int\n    , alert : Util.AlertState\n    , url : Url.Url\n    , haveStagedChanges : Bool\n    , rights : List String\n    }\n\n\nnewModel : Url.Url -> Nav.Key -> Time.Zone -> List String -> Model\nnewModel url key zone rights =\n    { key = key\n    , state = Loading\n    , zone = zone\n    , filter = \"\"\n    , offset = 0\n    , alert = Util.defaultAlertState\n    , url = url\n    , haveStagedChanges = False\n    , rights = rights\n    }\n\n\nupdateUrl : Model -> Url.Url -> Model\nupdateUrl model url =\n    { model | url = url }\n\n\n\n-- MESSAGES:\n\n\ntype Msg\n    = GotLogResponse Bool (Result Http.Error Commands.Log)\n    | GotResetResponse (Result Http.Error String)\n    | CheckoutClicked String\n    | SearchInput String\n    | OnScroll Scroll.ScreenData\n    | AlertMsg Alert.Visibility\n\n\n\n-- UPDATE:\n\n\nreload : Model -> Cmd Msg\nreload model =\n    Commands.doLog (GotLogResponse True) 0 (model.offset + loadLimit) model.filter\n\n\nreloadIfNeeded : Model -> Cmd Msg\nreloadIfNeeded model =\n    case model.state of\n        Success commits ->\n            if List.length commits == 0 then\n                reload model\n\n            else\n                Cmd.none\n\n        _ ->\n            Cmd.none\n\n\nreloadWithoutFlush : Model -> Int -> Cmd Msg\nreloadWithoutFlush model newOffset =\n    Commands.doLog (GotLogResponse False) newOffset loadLimit model.filter\n\n\ntoMap : List Commands.Commit -> Dict.Dict Int Commands.Commit\ntoMap commits =\n    Dict.fromList (List.map (\\c -> ( c.index, c )) commits)\n\n\nmergeCommits : List Commands.Commit -> List Commands.Commit -> List Commands.Commit\nmergeCommits old new =\n    Dict.union (toMap new) (toMap old)\n        |> Dict.toList\n        |> List.map (\\( _, v ) -> v)\n        |> List.reverse\n\n\nshowAlert : Model -> Float -> Util.AlertType -> String -> ( Model, Cmd Msg )\nshowAlert model duration modalTyp message =\n    let\n        newAlert =\n            Util.AlertState message modalTyp Alert.shown\n    in\n    ( { model | alert = newAlert }\n    , Cmd.batch\n        [ Delay.after duration Delay.Second (AlertMsg Alert.closed) ]\n    )\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotLogResponse doFlush result ->\n            case result of\n                Ok log ->\n                    -- Got a new load of data. Merge it with the previous dataset,\n                    -- unless we want to flush the current view.\n                    let\n                        ( prevCommits, newOffset ) =\n                            if doFlush then\n                                ( [], 0 )\n\n                            else\n                                case model.state of\n                                    Success oldCommits ->\n                                        ( oldCommits, model.offset + loadLimit )\n\n                                    _ ->\n                                        ( [], model.offset )\n                    in\n                    ( { model\n                        | state = Success (mergeCommits prevCommits log.commits)\n                        , offset = newOffset\n                        , haveStagedChanges = log.haveStagedChanges\n                      }\n                    , Cmd.none\n                    )\n\n                Err err ->\n                    ( { model | state = Failure (Util.httpErrorToString err) }, Cmd.none )\n\n        GotResetResponse result ->\n            case result of\n                Ok _ ->\n                    showAlert model 5 Util.Success \"Succesfully reset state.\"\n\n                Err err ->\n                    showAlert model 15 Util.Danger (\"Failed to reset: \" ++ Util.httpErrorToString err)\n\n        CheckoutClicked hash ->\n            ( model, Commands.doReset GotResetResponse \"/\" hash )\n\n        SearchInput filter ->\n            let\n                upModel =\n                    { model | filter = filter }\n            in\n            ( upModel, reload upModel )\n\n        OnScroll data ->\n            if String.startsWith \"/log\" model.url.path then\n                if Scroll.hasHitBottom data then\n                    ( model, reloadWithoutFlush model (model.offset + loadLimit) )\n\n                else\n                    -- We don't need to reload yet.\n                    ( model, Cmd.none )\n\n            else\n                -- We're currently not visible. Forget updating.\n                ( model, Cmd.none )\n\n        AlertMsg vis ->\n            let\n                newAlert =\n                    Util.AlertState model.alert.message model.alert.typ vis\n            in\n            ( { model | alert = newAlert }, Cmd.none )\n\n\n\n-- VIEW:\n\n\nviewSearchBox : Model -> Html Msg\nviewSearchBox model =\n    InputGroup.config\n        (InputGroup.text\n            [ Input.placeholder \"Search\"\n            , Input.attrs\n                [ onInput SearchInput\n                , value model.filter\n                ]\n            ]\n        )\n        |> InputGroup.successors\n            [ InputGroup.span [ class \"input-group-addon\" ]\n                [ button [] [ span [ class \"fas fa-search fa-xs input-group-addon\" ] [] ]\n                ]\n            ]\n        |> InputGroup.attrs [ class \"stylish-input-group input-group\" ]\n        |> InputGroup.view\n\n\nviewCommit : Model -> Commands.Commit -> ListGroup.Item Msg\nviewCommit model commit =\n    ListGroup.li []\n        [ Grid.row\n            []\n            [ Grid.col\n                [ Col.xs1\n                , Col.textAlign Text.alignXsLeft\n                ]\n                [ span [ class \"fas fa-lg fa-save text-xs-right\" ] []\n                ]\n            , Grid.col [ Col.xs8, Col.textAlign Text.alignXsLeft ]\n                [ text commit.msg\n                ]\n            , Grid.col\n                [ Col.xs3\n                , Col.textAlign Text.alignXsRight\n                ]\n                [ Button.button\n                    [ Button.outlineDanger\n                    , Button.attrs\n                        [ onClick <| CheckoutClicked commit.hash\n                        , disabled\n                            ((not model.haveStagedChanges && List.member \"head\" commit.tags)\n                                || not (List.member \"fs.edit\" model.rights)\n                            )\n                        ]\n                    ]\n                    [ text \"Checkout\" ]\n                ]\n            ]\n        ]\n\n\nviewCommitList : Model -> List Commands.Commit -> Html Msg\nviewCommitList model commits =\n    ListGroup.ul (List.map (viewCommit model) (List.filter (\\c -> String.length c.msg > 0) commits))\n\n\nviewCommitListContainer : Model -> List Commands.Commit -> Html Msg\nviewCommitListContainer model commits =\n    Grid.row []\n        [ Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        , Grid.col [ Col.lg8, Col.md12 ]\n            [ h4 [ class \"text-muted text-center\" ] [ text \"Commits\" ]\n            , Util.viewAlert AlertMsg model.alert\n            , br [] []\n            , viewCommitList model commits\n            , br [] []\n            ]\n        , Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        ]\n\n\nview : Model -> Html Msg\nview model =\n    case model.state of\n        Loading ->\n            text \"Still loading\"\n\n        Failure err ->\n            text (\"Failed to load log: \" ++ err)\n\n        Success commits ->\n            Grid.row []\n                [ Grid.col\n                    [ Col.lg12 ]\n                    [ Grid.row [ Row.attrs [ id \"main-header-row\" ] ]\n                        [ Grid.col [ Col.xl9 ] [ text \"\" ]\n                        , Grid.col [ Col.xl3 ] [ Lazy.lazy viewSearchBox model ]\n                        ]\n                    , Grid.row [ Row.attrs [ id \"main-content-row\" ] ]\n                        [ Grid.col\n                            [ Col.xl10 ]\n                            [ viewCommitListContainer model commits\n                            ]\n                        ]\n                    ]\n                ]\n\n\n\n-- SUBSCRIPTIONS:\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Scroll.scrollOrResize OnScroll\n"
  },
  {
    "path": "gateway/elm/src/Routes/DeletedFiles.elm",
    "content": "module Routes.DeletedFiles exposing\n    ( Model\n    , Msg\n    , newModel\n    , reload\n    , reloadIfNeeded\n    , subscriptions\n    , update\n    , updateUrl\n    , view\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Form.InputGroup as InputGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.Table as Table\nimport Bootstrap.Text as Text\nimport Browser.Navigation as Nav\nimport Commands\nimport Delay\nimport Dict\nimport Filesize\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Html.Lazy as Lazy\nimport Http\nimport Scroll\nimport Time\nimport Url\nimport Util\n\n\n\n-- MODEL:\n\n\nloadLimit : Int\nloadLimit =\n    25\n\n\ntype State\n    = Loading\n    | Failure String\n    | Success (List Commands.Entry)\n\n\ntype alias Model =\n    { key : Nav.Key\n    , state : State\n    , zone : Time.Zone\n    , filter : String\n    , offset : Int\n    , alert : Util.AlertState\n    , url : Url.Url\n    , rights : List String\n    }\n\n\nnewModel : Url.Url -> Nav.Key -> Time.Zone -> List String -> Model\nnewModel url key zone rights =\n    { key = key\n    , state = Loading\n    , zone = zone\n    , filter = \"\"\n    , offset = 0\n    , alert = Util.defaultAlertState\n    , url = url\n    , rights = rights\n    }\n\n\nupdateUrl : Model -> Url.Url -> Model\nupdateUrl model url =\n    { model | url = url }\n\n\n\n-- MESSAGES:\n\n\ntype Msg\n    = GotDeletedPathsResponse Bool (Result Http.Error (List Commands.Entry))\n    | GotUndeleteResponse (Result Http.Error String)\n    | UndeleteClicked String\n    | SearchInput String\n    | AlertMsg Alert.Visibility\n    | OnScroll Scroll.ScreenData\n\n\n\n-- UPDATE:\n\n\nreload : Model -> Cmd Msg\nreload model =\n    Commands.doDeletedFiles (GotDeletedPathsResponse True) 0 (model.offset + loadLimit) model.filter\n\n\nreloadIfNeeded : Model -> Cmd Msg\nreloadIfNeeded model =\n    case model.state of\n        Success commits ->\n            if List.length commits == 0 then\n                reload model\n\n            else\n                Cmd.none\n\n        _ ->\n            Cmd.none\n\n\nreloadWithoutFlush : Model -> Int -> Cmd Msg\nreloadWithoutFlush model newOffset =\n    Commands.doDeletedFiles (GotDeletedPathsResponse False) newOffset loadLimit model.filter\n\n\ntoMap : List Commands.Entry -> Dict.Dict String Commands.Entry\ntoMap entries =\n    Dict.fromList (List.map (\\e -> ( e.path, e )) entries)\n\n\nsortEntries : Commands.Entry -> Commands.Entry -> Order\nsortEntries a b =\n    let\n        inv =\n            \\v ->\n                if v then\n                    0\n\n                else\n                    1\n    in\n    case compare (inv a.isDir) (inv b.isDir) of\n        EQ ->\n            compare a.path b.path\n\n        other ->\n            other\n\n\nmergeEntries : List Commands.Entry -> List Commands.Entry -> List Commands.Entry\nmergeEntries old new =\n    Dict.union (toMap new) (toMap old)\n        |> Dict.toList\n        |> List.map (\\( _, v ) -> v)\n        |> List.sortWith sortEntries\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotDeletedPathsResponse doFlush result ->\n            case result of\n                Ok entries ->\n                    let\n                        ( prevEntries, newOffset ) =\n                            if doFlush then\n                                ( [], 0 )\n\n                            else\n                                case model.state of\n                                    Success oldEntries ->\n                                        ( oldEntries, model.offset + loadLimit )\n\n                                    _ ->\n                                        ( [], model.offset )\n                    in\n                    ( { model\n                        | state = Success (mergeEntries prevEntries entries)\n                        , offset = newOffset\n                      }\n                    , Cmd.none\n                    )\n\n                Err err ->\n                    ( { model | state = Failure (Util.httpErrorToString err) }, Cmd.none )\n\n        UndeleteClicked path ->\n            ( model, Commands.doUndelete GotUndeleteResponse path )\n\n        SearchInput filter ->\n            let\n                upModel =\n                    { model | filter = filter }\n            in\n            ( upModel, reload upModel )\n\n        GotUndeleteResponse result ->\n            case result of\n                Ok _ ->\n                    let\n                        newAlert =\n                            Util.AlertState\n                                \"Succcesfully undeleted one item.\"\n                                Util.Success\n                                Alert.shown\n                    in\n                    ( { model | alert = newAlert }\n                    , Cmd.batch\n                        [ reload model\n                        , Delay.after 5 Delay.Second (AlertMsg Alert.closed)\n                        ]\n                    )\n\n                Err err ->\n                    let\n                        newAlert =\n                            Util.AlertState\n                                (\"Failed to undelete: \" ++ Util.httpErrorToString err)\n                                Util.Danger\n                                Alert.shown\n                    in\n                    ( model\n                    , Cmd.batch\n                        [ reload model\n                        , Delay.after 15 Delay.Second (AlertMsg Alert.closed)\n                        ]\n                    )\n\n        AlertMsg vis ->\n            let\n                newAlert =\n                    Util.AlertState model.alert.message model.alert.typ vis\n            in\n            ( { model | alert = newAlert }, Cmd.none )\n\n        OnScroll data ->\n            if String.startsWith \"/deleted\" model.url.path then\n                if Scroll.hasHitBottom data then\n                    ( model, reloadWithoutFlush model (model.offset + loadLimit) )\n\n                else\n                    ( model, Cmd.none )\n\n            else\n                -- We're currently not visible. Forget updating.\n                ( model, Cmd.none )\n\n\n\n-- VIEW:\n\n\nviewSearchBox : Model -> Html Msg\nviewSearchBox model =\n    InputGroup.config\n        (InputGroup.text\n            [ Input.placeholder \"Search\"\n            , Input.attrs\n                [ onInput SearchInput\n                , value model.filter\n                ]\n            ]\n        )\n        |> InputGroup.successors\n            [ InputGroup.span [ class \"input-group-addon\" ]\n                [ button [] [ span [ class \"fas fa-search fa-xs input-group-addon\" ] [] ]\n                ]\n            ]\n        |> InputGroup.attrs [ class \"stylish-input-group input-group\" ]\n        |> InputGroup.view\n\n\nfilterEntries : String -> List Commands.Entry -> List Commands.Entry\nfilterEntries filter entries =\n    case filter of\n        \"\" ->\n            entries\n\n        _ ->\n            List.filter (\\e -> String.contains filter e.path) entries\n\n\nviewEntryIcon : Commands.Entry -> Html Msg\nviewEntryIcon entry =\n    case entry.isDir of\n        True ->\n            span [ class \"fas fa-lg fa-folder text-xs-right file-list-icon\" ] []\n\n        False ->\n            span [ class \"far fa-lg fa-file text-xs-right file-list-icon\" ] []\n\n\nviewDeletedEntry : Model -> Commands.Entry -> Table.Row Msg\nviewDeletedEntry model entry =\n    Table.tr []\n        [ Table.td\n            []\n            [ viewEntryIcon entry ]\n        , Table.td\n            []\n            [ text entry.path ]\n        , Table.td\n            []\n            [ text <| Util.formatLastModified model.zone entry.lastModified ]\n        , Table.td\n            []\n            [ text <| Filesize.format entry.size ]\n        , Table.td\n            []\n            [ Button.button\n                [ Button.outlineSuccess\n                , Button.attrs\n                    [ onClick <| UndeleteClicked entry.path\n                    , disabled (not (List.member \"fs.edit\" model.rights))\n                    ]\n                ]\n                [ text \"Undelete\" ]\n            ]\n        ]\n\n\nviewDeletedList : Model -> List Commands.Entry -> Html Msg\nviewDeletedList model entries =\n    let\n        filteredEntries =\n            filterEntries model.filter entries\n    in\n    Table.table\n        { options =\n            [ Table.hover\n            , Table.attr (class \"borderless-table\")\n            ]\n        , thead =\n            Table.thead []\n                [ Table.tr []\n                    [ Table.th [ Table.cellAttr (style \"width\" \"5%\") ] []\n                    , Table.th [ Table.cellAttr (style \"width\" \"55%\") ] [ text \"Name\" ]\n                    , Table.th [ Table.cellAttr (style \"width\" \"20%\") ] [ text \"Deleted at\" ]\n                    , Table.th [ Table.cellAttr (style \"width\" \"15%\") ] [ text \"Size\" ]\n                    , Table.th [ Table.cellAttr (style \"width\" \"5%\") ] []\n                    ]\n                ]\n        , tbody =\n            Table.tbody []\n                (List.map\n                    (viewDeletedEntry model)\n                    filteredEntries\n                )\n        }\n\n\nmaybeViewDeletedList : Model -> List Commands.Entry -> Html Msg\nmaybeViewDeletedList model entries =\n    if List.length entries > 0 then\n        viewDeletedList model entries\n\n    else\n        Grid.row []\n            [ Grid.col [ Col.xs12, Col.textAlign Text.alignXsCenter ]\n                [ span [ class \"text-muted\" ]\n                    (if String.length model.filter == 0 then\n                        [ text \" The \"\n                        , span [ class \"fas fa-md fa-trash-alt\" ] []\n                        , text \" is empty. If you delete something, it will appear here.\"\n                        ]\n\n                     else\n                        [ text \" Search did not find anything. Remove the query to go back. \"\n                        ]\n                    )\n                ]\n            ]\n\n\nviewDeletedContainer : Model -> List Commands.Entry -> Html Msg\nviewDeletedContainer model entries =\n    Grid.row []\n        [ Grid.col [ Col.lg1, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        , Grid.col [ Col.lg10, Col.md12 ]\n            [ h4 [ class \"text-muted text-center\" ] [ text \"Deleted files\" ]\n            , br [] []\n            , Util.viewAlert AlertMsg model.alert\n            , maybeViewDeletedList model entries\n            , br [] []\n            ]\n        , Grid.col [ Col.lg1, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        ]\n\n\nview : Model -> Html Msg\nview model =\n    case model.state of\n        Loading ->\n            text \"Still loading\"\n\n        Failure err ->\n            text (\"Failed to load log: \" ++ err)\n\n        Success entries ->\n            Grid.row []\n                [ Grid.col\n                    [ Col.lg12 ]\n                    [ Grid.row [ Row.attrs [ id \"main-header-row\" ] ]\n                        [ Grid.col [ Col.xl9 ] []\n                        , Grid.col [ Col.xl3 ] [ Lazy.lazy viewSearchBox model ]\n                        ]\n                    , Grid.row [ Row.attrs [ id \"main-content-row\" ] ]\n                        [ Grid.col\n                            [ Col.xl10 ]\n                            [ viewDeletedContainer model entries ]\n                        ]\n                    ]\n                ]\n\n\n\n-- SUBSCRIPTIONS:\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Scroll.scrollOrResize OnScroll\n        , Alert.subscriptions model.alert.vis AlertMsg\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Routes/Diff.elm",
    "content": "module Routes.Diff exposing\n    ( Model\n    , Msg\n    , newModel\n    , reload\n    , subscriptions\n    , update\n    , updateUrl\n    , view\n    )\n\nimport Bootstrap.Button as Button\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Browser.Navigation as Nav\nimport Commands\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Time\nimport Url\nimport Url.Parser exposing ((</>), parse, s, string)\nimport Util\n\n\n\n-- MODEL:\n\n\ntype State\n    = Loading\n    | Finished (Result String Commands.Diff)\n\n\ntype alias Model =\n    { key : Nav.Key\n    , url : Url.Url\n    , zone : Time.Zone\n    , state : State\n    }\n\n\nnewModel : Nav.Key -> Url.Url -> Time.Zone -> Model\nnewModel key url zone =\n    { key = key\n    , url = url\n    , zone = zone\n    , state = Loading\n    }\n\n\nupdateUrl : Model -> Url.Url -> Model\nupdateUrl model url =\n    { model | url = url }\n\n\nnameFromUrl : Url.Url -> String\nnameFromUrl url =\n    Maybe.withDefault \"\"\n        (parse (s \"diff\" </> string) url)\n\n\nreload : Model -> Url.Url -> Cmd Msg\nreload model url =\n    let\n        remoteName =\n            nameFromUrl url\n    in\n    if String.length remoteName > 0 then\n        Commands.doRemoteDiff GotResponse remoteName\n\n    else\n        Cmd.none\n\n\n\n-- MESSAGES:\n\n\ntype Msg\n    = GotResponse (Result Http.Error Commands.Diff)\n    | BackClicked\n\n\n\n-- UPDATE:\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotResponse result ->\n            case result of\n                Ok diff ->\n                    ( { model | state = Finished (Ok diff) }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Finished (Err (Util.httpErrorToString err)) }, Cmd.none )\n\n        BackClicked ->\n            ( model, Nav.back model.key 1 )\n\n\n\n-- VIEW:\n\n\nviewLine : String -> Html Msg\nviewLine line =\n    span [] [ text line, br [] [] ]\n\n\nviewSingle : List Commands.Entry -> Html Msg -> Html Msg\nviewSingle entries header =\n    if List.length entries > 0 then\n        span []\n            [ header\n            , span [] (List.map (\\e -> viewLine <| \" \" ++ e.path) entries)\n            , br [] []\n            ]\n\n    else\n        text \"\"\n\n\nviewPairs : List Commands.DiffPair -> Html Msg -> Html Msg\nviewPairs entries header =\n    if List.length entries > 0 then\n        span []\n            [ header\n            , span [] (List.map (\\p -> viewLine (\" \" ++ p.src.path ++ \" ↔ \" ++ p.dst.path)) entries)\n            , br [] []\n            ]\n\n    else\n        text \"\"\n\n\nviewHeading : String -> String -> Html Msg\nviewHeading className message =\n    h5 [ class className ] [ text message ]\n\n\nviewDiff : Model -> Commands.Diff -> Html Msg\nviewDiff model diff =\n    let\n        nChanges =\n            Commands.diffChangeCount diff\n    in\n    case nChanges of\n        0 ->\n            text \"There are no differences!\"\n\n        n ->\n            div []\n                [ viewSingle diff.added (viewHeading \"text-success\" \"Added\")\n                , viewSingle diff.removed (viewHeading \"text-warning\" \"Removed\")\n                , viewSingle diff.ignored (viewHeading \"text-muted\" \"Ignored\")\n                -- , viewSingle diff.missing (viewHeading \"text-secondary\" \"Missing\")\n                , viewPairs diff.moved (viewHeading \"text-primary\" \"Moved\")\n                , viewPairs diff.merged (viewHeading \"text-info\" \"Merged\")\n                , viewPairs diff.conflict (viewHeading \"text-danger\" \"Conflicts\")\n                , br [] []\n                , br [] []\n                , text (String.fromInt n ++ \" changes in total\")\n                ]\n\n\nviewDiffContainer : Model -> Result String Commands.Diff -> Html Msg\nviewDiffContainer model result =\n    Grid.row []\n        [ Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        , Grid.col [ Col.lg8, Col.md12 ]\n            [ h4 [ class \"text-center\" ]\n                [ span [ class \"text-muted\" ] [ text \"Difference to »\" ]\n                , text (nameFromUrl model.url)\n                , span [ class \"text-muted\" ] [ text \"«\" ]\n                , Button.button\n                    [ Button.roleLink\n                    , Button.attrs [ onClick BackClicked ]\n                    ]\n                    [ span [ class \"font-weight-light\" ] [ text \"(go back)\" ] ]\n                ]\n            , br [] []\n            , case result of\n                Ok diff ->\n                    viewDiff model diff\n\n                Err err ->\n                    text err\n            , br [] []\n            ]\n        , Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        ]\n\n\nview : Model -> Html Msg\nview model =\n    case model.state of\n        Loading ->\n            text \"Still loading\"\n\n        Finished result ->\n            Grid.row []\n                [ Grid.col\n                    [ Col.lg12 ]\n                    [ Grid.row [ Row.attrs [ id \"main-content-row\" ] ]\n                        [ Grid.col\n                            [ Col.xl10 ]\n                            [ viewDiffContainer model result ]\n                        ]\n                    ]\n                ]\n\n\n\n-- SUBSCRIPTIONS:\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.none\n"
  },
  {
    "path": "gateway/elm/src/Routes/Ls.elm",
    "content": "module Routes.Ls exposing\n    ( Model\n    , Msg\n    , buildModals\n    , changeTimeZone\n    , changeUrl\n    , doListQueryFromUrl\n    , newModel\n    , subscriptions\n    , update\n    , view\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Breadcrumb as Breadcrumb\nimport Bootstrap.Button as Button\nimport Bootstrap.ButtonGroup as ButtonGroup\nimport Bootstrap.Dropdown as Dropdown\nimport Bootstrap.Form.Input as Input\nimport Bootstrap.Form.InputGroup as InputGroup\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.ListGroup as ListGroup\nimport Bootstrap.Table as Table\nimport Bootstrap.Text as Text\nimport Browser.Navigation as Nav\nimport Commands\nimport Filesize\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Html.Lazy as Lazy\nimport Http\nimport Modals.History as History\nimport Modals.Mkdir as Mkdir\nimport Modals.MoveCopy as MoveCopy\nimport Modals.Remove as Remove\nimport Modals.Rename as Rename\nimport Modals.Share as Share\nimport Modals.Upload as Upload\nimport Set\nimport Time\nimport Url\nimport Url.Builder as UrlBuilder\nimport Url.Parser as UrlParser\nimport Url.Parser.Query as Query\nimport Util\n\n\n\n-- MODEL\n\n\ntype alias ActualModel =\n    { entries : List Commands.Entry\n    , checked : Set.Set String\n    , isFiltered : Bool\n    , self : Commands.Entry\n    , sortState : ( SortDirection, SortKey )\n    }\n\n\ntype State\n    = Failure\n    | Loading\n    | Success ActualModel\n\n\ntype alias Model =\n    { key : Nav.Key\n    , url : Url.Url\n    , zone : Time.Zone\n    , state : State\n    , alert : Alert.Visibility\n    , currError : String\n    , rights : List String\n\n    -- Sub models (for modals and dialogs):\n    , historyState : History.Model\n    , renameState : Rename.Model\n    , moveState : MoveCopy.Model\n    , copyState : MoveCopy.Model\n    , uploadState : Upload.Model\n    , mkdirState : Mkdir.Model\n    , removeState : Remove.Model\n    , shareState : Share.Model\n    }\n\n\nnewModel : Nav.Key -> Url.Url -> List String -> Model\nnewModel key url rights =\n    { key = key\n    , url = url\n    , zone = Time.utc\n    , state = Loading\n    , alert = Alert.closed\n    , rights = rights\n    , currError = \"\"\n    , historyState = History.newModel rights\n    , renameState = Rename.newModel\n    , moveState = MoveCopy.newMoveModel\n    , copyState = MoveCopy.newCopyModel\n    , uploadState = Upload.newModel\n    , mkdirState = Mkdir.newModel\n    , removeState = Remove.newModel\n    , shareState = Share.newModel\n    }\n\n\nchangeUrl : Url.Url -> Model -> Model\nchangeUrl url model =\n    { model | url = url }\n\n\nchangeTimeZone : Time.Zone -> Model -> Model\nchangeTimeZone zone model =\n    { model | zone = zone }\n\n\nnSelectedItems : Model -> Int\nnSelectedItems model =\n    case model.state of\n        Success actualModel ->\n            Set.filter (\\e -> String.isEmpty e |> not) actualModel.checked |> Set.size\n\n        _ ->\n            0\n\n\nselectedPaths : Model -> List String\nselectedPaths model =\n    case model.state of\n        Success actualModel ->\n            Set.filter (\\e -> String.isEmpty e |> not) actualModel.checked |> Set.toList\n\n        _ ->\n            []\n\n\ncurrIsFile : Model -> Bool\ncurrIsFile model =\n    case model.state of\n        Success actualModel ->\n            not actualModel.self.isDir\n\n        _ ->\n            False\n\n\ncurrRoot : Model -> Maybe String\ncurrRoot model =\n    case model.state of\n        Success actualModel ->\n            Just actualModel.self.path\n\n        _ ->\n            Nothing\n\n\ncurrTotalSize : Model -> Int\ncurrTotalSize model =\n    case model.state of\n        Success actualModel ->\n            actualModel.self.size\n\n        _ ->\n            0\n\n\ncurrSelectedSize : Model -> Int\ncurrSelectedSize model =\n    case model.state of\n        Success actualModel ->\n            let\n                entryToSizeIfSelected =\n                    \\e ->\n                        if Set.member e.path actualModel.checked then\n                            e.size\n\n                        else\n                            0\n            in\n            List.foldl (+) 0 (List.map entryToSizeIfSelected actualModel.entries)\n\n        _ ->\n            0\n\n\nexistsInCurr : Model -> String -> Bool\nexistsInCurr model name =\n    case model.state of\n        Success actualModel ->\n            case actualModel.isFiltered of\n                True ->\n                    False\n\n                False ->\n                    List.any (\\e -> name == Util.basename e.path) actualModel.entries\n\n        _ ->\n            False\n\n\n\n-- MESSAGES\n\n\ntype SortKey\n    = None\n    | Name\n    | ModTime\n    | Pin\n    | Size\n\n\ntype SortDirection\n    = Ascending\n    | Descending\n\n\ntype Msg\n    = GotResponse (Result Http.Error Commands.ListResponse)\n    | GotPinResponse (Result Http.Error String)\n    | CheckboxTick String Bool\n    | CheckboxTickAll Bool\n    | ActionDropdownMsg Commands.Entry Dropdown.State\n    | RowClicked Commands.Entry\n    | RemoveClicked Commands.Entry\n    | HistoryClicked Commands.Entry\n    | RemoveResponse (Result Http.Error String)\n    | SortBy SortDirection SortKey\n    | AlertMsg Alert.Visibility\n    | SearchInput String\n    | PinClicked String Bool\n      -- Sub messages:\n    | HistoryMsg History.Msg\n    | RenameMsg Rename.Msg\n    | MoveMsg MoveCopy.Msg\n    | CopyMsg MoveCopy.Msg\n      -- Modal sub messages:\n    | UploadMsg Upload.Msg\n    | MkdirMsg Mkdir.Msg\n    | RemoveMsg Remove.Msg\n    | ShareMsg Share.Msg\n\n\n\n-- UPDATE\n\n\nfixDropdownState : Commands.Entry -> Dropdown.State -> Commands.Entry -> Commands.Entry\nfixDropdownState refEntry state entry =\n    if entry.path == refEntry.path then\n        { entry | dropdown = state }\n\n    else\n        entry\n\n\nsortBy : ActualModel -> SortDirection -> SortKey -> ActualModel\nsortBy model direction key =\n    case direction of\n        Ascending ->\n            { model\n                | entries = sortByAscending model key\n                , sortState = ( Ascending, key )\n            }\n\n        Descending ->\n            { model\n                | entries = List.reverse (sortByAscending model key)\n                , sortState = ( Descending, key )\n            }\n\n\nentryPinToSortKey : Commands.Entry -> Int\nentryPinToSortKey entry =\n    case ( entry.isPinned, entry.isExplicit ) of\n        ( True, True ) ->\n            2\n\n        ( True, False ) ->\n            1\n\n        _ ->\n            0\n\n\nsortByAscending : ActualModel -> SortKey -> List Commands.Entry\nsortByAscending model key =\n    case key of\n        Name ->\n            List.sortBy (\\e -> String.toLower (Util.basename e.path)) model.entries\n\n        ModTime ->\n            List.sortBy (\\e -> Time.posixToMillis e.lastModified) model.entries\n\n        Pin ->\n            List.sortBy (\\e -> entryPinToSortKey e) model.entries\n\n        Size ->\n            List.sortBy .size model.entries\n\n        None ->\n            model.entries\n\n\nupdateCheckboxTickActual : String -> Bool -> ActualModel -> ActualModel\nupdateCheckboxTickActual path isChecked model =\n    case isChecked of\n        True ->\n            let\n                updatedSet =\n                    Set.insert path model.checked\n            in\n            { model\n                | checked =\n                    if Set.size updatedSet == List.length model.entries then\n                        Set.insert \"\" updatedSet\n\n                    else\n                        updatedSet\n            }\n\n        False ->\n            { model\n                | checked =\n                    Set.remove \"\" <| Set.remove path model.checked\n            }\n\n\nupdateCheckboxTick : String -> Bool -> Model -> Model\nupdateCheckboxTick path isChecked model =\n    case model.state of\n        Success actualModel ->\n            { model | state = Success (updateCheckboxTickActual path isChecked actualModel) }\n\n        _ ->\n            model\n\n\nupdateCheckboxTickAllActual : Bool -> ActualModel -> ActualModel\nupdateCheckboxTickAllActual isChecked model =\n    case isChecked of\n        True ->\n            { model | checked = Set.fromList (List.map (\\e -> e.path) model.entries ++ [ \"\" ]) }\n\n        False ->\n            { model | checked = Set.empty }\n\n\nupdateCheckboxTickAll : Bool -> Model -> Model\nupdateCheckboxTickAll isChecked model =\n    case model.state of\n        Success actualModel ->\n            { model | state = Success (updateCheckboxTickAllActual isChecked actualModel) }\n\n        _ ->\n            model\n\n\nsetDropdownState : Model -> Commands.Entry -> Dropdown.State -> Model\nsetDropdownState model entry state =\n    case model.state of\n        Success actualModel ->\n            { model\n                | state =\n                    Success\n                        { actualModel\n                            | entries = List.map (fixDropdownState entry state) actualModel.entries\n                        }\n            }\n\n        _ ->\n            model\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        ActionDropdownMsg entry state ->\n            ( setDropdownState model entry state, Cmd.none )\n\n        RowClicked entry ->\n            ( model, Nav.pushUrl model.key (\"/view\" ++ Util.urlEncodePath entry.path) )\n\n        RemoveClicked entry ->\n            ( setDropdownState model entry Dropdown.initialState\n            , Commands.doRemove RemoveResponse [ entry.path ]\n            )\n\n        SearchInput query ->\n            ( model\n              -- Save the filter query in the URL itself.\n              -- This way the query can be shared amongst users via link.\n            , Nav.pushUrl model.key <|\n                model.url.path\n                    ++ (if String.length query == 0 then\n                            \"\"\n\n                        else\n                            UrlBuilder.toQuery\n                                [ UrlBuilder.string \"filter\" query\n                                ]\n                       )\n            )\n\n        HistoryClicked entry ->\n            ( setDropdownState model entry Dropdown.initialState\n            , Cmd.map HistoryMsg (History.show entry.path)\n            )\n\n        SortBy direction key ->\n            case model.state of\n                Success actualModel ->\n                    ( { model | state = Success (sortBy actualModel direction key) }, Cmd.none )\n\n                _ ->\n                    ( model, Cmd.none )\n\n        RemoveResponse result ->\n            case result of\n                Ok _ ->\n                    ( model, Cmd.none )\n\n                Err err ->\n                    ( { model\n                        | currError = Util.httpErrorToString err\n                        , alert = Alert.shown\n                      }\n                    , Cmd.none\n                    )\n\n        GotResponse result ->\n            case result of\n                Ok response ->\n                    -- New list model means also new checked entries.\n                    ( { model\n                        | state =\n                            Success <|\n                                { entries = response.entries\n                                , isFiltered = response.isFiltered\n                                , checked =\n                                    if response.self.isDir then\n                                        Set.empty\n\n                                    else\n                                        Set.singleton response.self.path\n                                , self = response.self\n                                , sortState = ( Ascending, None )\n                                }\n                      }\n                    , Cmd.none\n                    )\n\n                Err _ ->\n                    ( { model | state = Failure }, Cmd.none )\n\n        GotPinResponse result ->\n            case result of\n                Ok _ ->\n                    ( model, Cmd.none )\n\n                -- TODO: Error handling?\n                Err _ ->\n                    ( model, Cmd.none )\n\n        CheckboxTick path isChecked ->\n            ( updateCheckboxTick path isChecked model, Cmd.none )\n\n        CheckboxTickAll isChecked ->\n            ( updateCheckboxTickAll isChecked model, Cmd.none )\n\n        PinClicked path shouldBePinned ->\n            if shouldBePinned then\n                ( model, Commands.doPin GotPinResponse path \"curr\" )\n\n            else\n                ( model, Commands.doUnpin GotPinResponse path \"curr\" )\n\n        AlertMsg state ->\n            ( { model | alert = state }, Cmd.none )\n\n        HistoryMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    History.update subMsg model.historyState\n            in\n            ( { model | historyState = newSubModel }, Cmd.map HistoryMsg newSubCmd )\n\n        RenameMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    Rename.update subMsg model.renameState\n            in\n            ( { model | renameState = newSubModel }, Cmd.map RenameMsg newSubCmd )\n\n        MoveMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    MoveCopy.update subMsg model.moveState\n            in\n            ( { model | moveState = newSubModel }, Cmd.map MoveMsg newSubCmd )\n\n        CopyMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    MoveCopy.update subMsg model.copyState\n            in\n            ( { model | copyState = newSubModel }, Cmd.map CopyMsg newSubCmd )\n\n        UploadMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    Upload.update subMsg model.uploadState\n            in\n            ( { model | uploadState = newSubModel }, Cmd.map UploadMsg newSubCmd )\n\n        MkdirMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    Mkdir.update subMsg model.mkdirState\n            in\n            ( { model | mkdirState = newSubModel }, Cmd.map MkdirMsg newSubCmd )\n\n        RemoveMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    Remove.update subMsg model.removeState\n            in\n            ( { model | removeState = newSubModel }, Cmd.map RemoveMsg newSubCmd )\n\n        ShareMsg subMsg ->\n            let\n                ( newSubModel, newSubCmd ) =\n                    Share.update subMsg model.shareState\n            in\n            ( { model | shareState = newSubModel }, Cmd.map ShareMsg newSubCmd )\n\n\n\n-- VIEW\n\n\nshowAlert : Model -> Html Msg\nshowAlert model =\n    Alert.config\n        |> Alert.dismissable AlertMsg\n        |> Alert.danger\n        |> Alert.children\n            [ Alert.h4 [] [ text \"Oh, something went wrong! :(\" ]\n            , text (\"The exact error was: \" ++ model.currError)\n            ]\n        |> Alert.view model.alert\n\n\nviewMetaRow : String -> Html msg -> Html msg\nviewMetaRow key value =\n    Grid.row []\n        [ Grid.col [ Col.xs4, Col.textAlign Text.alignXsLeft ] [ span [ class \"text-muted\" ] [ text key ] ]\n        , Grid.col [ Col.xs8, Col.textAlign Text.alignXsRight ] [ value ]\n        ]\n\n\nviewDownloadButton : Model -> ActualModel -> Url.Url -> Html msg\nviewDownloadButton model actModel url =\n    Button.linkButton\n        [ Button.outlinePrimary\n        , Button.attrs\n            (if mayDownload model then\n                [ href\n                    (Util.urlPrefixToString url\n                        ++ \"get\"\n                        ++ Util.urlEncodePath actModel.self.path\n                        ++ \"?direct=yes\"\n                    )\n                ]\n\n             else\n                [ class \"text-muted\", style \"opacity\" \"0.1\" ]\n            )\n        ]\n        [ span [ class \"fas fa-download\" ] [], text \" Download\" ]\n\n\nviewViewButton : Model -> ActualModel -> Url.Url -> Html msg\nviewViewButton model actModel url =\n    Button.linkButton\n        [ Button.outlinePrimary\n        , Button.attrs\n            (if mayDownload model then\n                [ href\n                    (Util.urlPrefixToString url\n                        ++ \"get\"\n                        ++ Util.urlEncodePath actModel.self.path\n                    )\n                ]\n\n             else\n                [ class \"text-muted\", style \"opacity\" \"0.1\" ]\n            )\n        ]\n        [ span [ class \"fas fa-eye\" ] [], text \" View\" ]\n\n\nviewPinIcon : Bool -> Bool -> Html msg\nviewPinIcon isPinned isExplicit =\n    case ( isPinned, isExplicit ) of\n        ( True, True ) ->\n            span\n                [ class \"fa fa-map-marker\", class \"text-success\" ]\n                []\n\n        ( True, False ) ->\n            span\n                [ class \"fa fa-map-marker-alt\", class \"text-warning\" ]\n                []\n\n        _ ->\n            span\n                [ class \"fa fa-times\", class \"text-danger\" ]\n                []\n\n\nviewPinButton : Model -> Commands.Entry -> Html Msg\nviewPinButton model entry =\n    Button.button\n        [ Button.roleLink\n        , Button.attrs\n            [ disabled (not (List.member \"fs.edit\" model.rights))\n            , onClick (PinClicked entry.path (not entry.isPinned))\n            ]\n        ]\n        [ viewPinIcon entry.isPinned entry.isExplicit ]\n\n\nviewSingleEntry : Model -> ActualModel -> Time.Zone -> Html Msg\nviewSingleEntry model actualModel zone =\n    Grid.row []\n        [ Grid.col [ Col.xs2 ] []\n        , Grid.col [ Col.xs8, Col.textAlign Text.alignXsCenter ]\n            [ ListGroup.ul\n                [ ListGroup.li []\n                    [ viewMetaRow \"Path\" (text <| actualModel.self.path)\n                    ]\n                , ListGroup.li []\n                    [ viewMetaRow \"Size\" (text <| Filesize.format actualModel.self.size)\n                    ]\n                , ListGroup.li []\n                    [ viewMetaRow \"Owner\" (text <| actualModel.self.user)\n                    ]\n                , ListGroup.li []\n                    [ viewMetaRow \"Last Modified\" (text <| Util.formatLastModified zone actualModel.self.lastModified)\n                    ]\n                , ListGroup.li []\n                    [ viewMetaRow \"Pinned\"\n                        (viewPinButton model actualModel.self)\n                    ]\n                , ListGroup.li [ ListGroup.light ]\n                    [ viewDownloadButton model actualModel model.url\n                    , text \" \"\n                    , viewViewButton model actualModel model.url\n                    ]\n                ]\n            ]\n        , Grid.col [ Col.xs2 ] []\n        ]\n\n\nviewList : Model -> Time.Zone -> Html Msg\nviewList model zone =\n    case model.state of\n        Failure ->\n            div [] [ text \"Sorry, something did not work out as expected.\" ]\n\n        Loading ->\n            text \"Loading...\"\n\n        Success actualModel ->\n            case actualModel.self.isDir of\n                True ->\n                    div []\n                        [ showAlert model\n                        , Lazy.lazy3 entriesToHtml model zone actualModel\n                        ]\n\n                False ->\n                    div []\n                        [ showAlert model\n                        , Lazy.lazy3 viewSingleEntry model actualModel zone\n                        ]\n\n\nbuildBreadcrumbs : List String -> List String -> List (Breadcrumb.Item msg)\nbuildBreadcrumbs names previous =\n    let\n        displayName =\n            \\n ->\n                if String.length n <= 0 then\n                    \"Home\"\n\n                else\n                    n\n    in\n    case names of\n        [] ->\n            -- Recursion stop.\n            []\n\n        [ name ] ->\n            -- Final element in the breadcrumbs.\n            -- Already selected therefore.\n            [ Breadcrumb.item []\n                [ text (displayName name)\n                ]\n            ]\n\n        name :: rest ->\n            -- Some intermediate element.\n            Breadcrumb.item []\n                [ a [ href (\"/view/\" ++ String.join \"/\" (name :: previous)) ]\n                    [ text (displayName name) ]\n                ]\n                :: buildBreadcrumbs rest (previous ++ [ name ])\n\n\nviewBreadcrumbs : Model -> Html msg\nviewBreadcrumbs model =\n    div [ id \"breadcrumbs-box\" ]\n        [ Breadcrumb.container\n            (buildBreadcrumbs\n                (\"\" :: (Util.urlToPath model.url |> Util.splitPath))\n                []\n            )\n        ]\n\n\nviewEntryIcon : Commands.Entry -> Html Msg\nviewEntryIcon entry =\n    case entry.isDir of\n        True ->\n            span [ class \"fas fa-lg fa-folder text-xs-right file-list-icon\" ] []\n\n        False ->\n            span [ class \"far fa-lg fa-file text-xs-right file-list-icon\" ] []\n\n\nmakeCheckbox : Bool -> (Bool -> Msg) -> Html Msg\nmakeCheckbox isChecked msg =\n    div [ class \"checkbox\" ]\n        [ label []\n            [ input [ type_ \"checkbox\", onCheck msg, checked isChecked ] []\n            , span [ class \"cr\" ] [ i [ class \"cr-icon fas fa-lg fa-check\" ] [] ]\n            ]\n        ]\n\n\nreadCheckedState : ActualModel -> String -> Bool\nreadCheckedState model path =\n    Set.member path model.checked\n\n\nformatPath : ActualModel -> Commands.Entry -> String\nformatPath model entry =\n    case model.isFiltered of\n        True ->\n            String.join \"/\" (Util.splitPath entry.path)\n\n        False ->\n            Util.basename entry.path\n\n\nmayDownload : Model -> Bool\nmayDownload model =\n    List.member \"fs.download\" model.rights\n\n\nmayEdit : Model -> Bool\nmayEdit model =\n    List.member \"fs.edit\" model.rights\n\n\nbuildActionDropdown : Model -> ActualModel -> Commands.Entry -> Html Msg\nbuildActionDropdown model actModel entry =\n    Dropdown.dropdown\n        entry.dropdown\n        { options = []\n        , toggleMsg = ActionDropdownMsg entry\n        , toggleButton =\n            Dropdown.toggle\n                [ Button.roleLink ]\n                [ span [ class \"fas fa-ellipsis-h\" ] [] ]\n        , items =\n            [ Dropdown.buttonItem\n                [ onClick (HistoryClicked entry) ]\n                [ span [ class \"fa fa-md fa-history\" ] []\n                , text \" History\"\n                ]\n            , Dropdown.divider\n            , Dropdown.anchorItem\n                [ href\n                    (\"/get\"\n                        ++ Util.urlEncodePath\n                            (Util.joinPath [ actModel.self.path, Util.basename entry.path ])\n                        ++ \"?direct=yes\"\n                    )\n                , onClick (ActionDropdownMsg entry Dropdown.initialState)\n                , disabled (not (mayDownload model))\n                ]\n                [ span [ class \"fa fa-md fa-file-download\" ] []\n                , text \" Download\"\n                ]\n            , Dropdown.anchorItem\n                [ href\n                    (\"/get\"\n                        ++ Util.urlEncodePath\n                            (Util.joinPath [ actModel.self.path, Util.basename entry.path ])\n                    )\n                , onClick (ActionDropdownMsg entry Dropdown.initialState)\n                , disabled (not (mayDownload model))\n                ]\n                [ span [ class \"fa fa-md fa-eye\" ] []\n                , text \" View\"\n                ]\n            , Dropdown.anchorItem\n                [ onClick (ShareMsg <| Share.show [ entry.path ])\n                ]\n                [ span [ class \"fa fa-md fa-share-alt\" ] []\n                , text \" Share\"\n                ]\n            , Dropdown.divider\n            , Dropdown.buttonItem\n                [ onClick (RemoveClicked entry)\n                , disabled (not (mayEdit model))\n                ]\n                [ span [ class \"fa fa-md fa-trash\" ] []\n                , text \" Delete\"\n                ]\n            , Dropdown.divider\n            , Dropdown.buttonItem\n                [ onClick (RenameMsg (Rename.show entry.path))\n                , disabled (not (mayEdit model))\n                ]\n                [ span [ class \"fa fa-md fa-file-signature\" ] []\n                , text \" Rename\"\n                ]\n            , Dropdown.buttonItem\n                [ onClick (MoveMsg (MoveCopy.show entry.path))\n                , disabled (not (mayEdit model))\n                ]\n                [ span [ class \"fa fa-md fa-arrow-right\" ] []\n                , text \" Move\"\n                ]\n            , Dropdown.buttonItem\n                [ onClick (CopyMsg (MoveCopy.show entry.path))\n                , disabled (not (mayEdit model))\n                ]\n                [ span [ class \"fa fa-md fa-copy\" ] []\n                , text \" Copy\"\n                ]\n            ]\n        }\n\n\nentryToHtml : Model -> ActualModel -> Time.Zone -> Commands.Entry -> Table.Row Msg\nentryToHtml model actModel zone e =\n    Table.tr\n        []\n        [ Table.td []\n            [ makeCheckbox (readCheckedState actModel e.path) (CheckboxTick e.path)\n            ]\n        , Table.td\n            [ Table.cellAttr (class \"icon-column\"), Table.cellAttr (onClick (RowClicked e)) ]\n            [ viewEntryIcon e ]\n        , Table.td\n            [ Table.cellAttr (onClick (RowClicked e)) ]\n            [ a [ \"/view\" ++ e.path |> href ] [ text (formatPath actModel e) ]\n            ]\n        , Table.td\n            [ Table.cellAttr (onClick (RowClicked e)) ]\n            [ Util.formatLastModifiedOwner zone e.lastModified e.user\n            ]\n        , Table.td\n            [ Table.cellAttr (onClick (RowClicked e)) ]\n            [ text (Filesize.format e.size)\n            ]\n        , Table.td\n            []\n            [ viewPinButton model e\n            ]\n        , Table.td\n            []\n            [ buildActionDropdown model actModel e\n            ]\n        ]\n\n\nbuildSortControl : String -> ActualModel -> SortKey -> Html Msg\nbuildSortControl name model key =\n    let\n        ascClass =\n            if ( Ascending, key ) == model.sortState then\n                \"sort-button-selected\"\n\n            else\n                \"\"\n\n        descClass =\n            if ( Descending, key ) == model.sortState then\n                \"sort-button-selected\"\n\n            else\n                \"\"\n    in\n    span [ class \"sort-button-container text-muted\" ]\n        [ span [] [ text (name ++ \" \") ]\n        , span [ class \"sort-button\" ]\n            [ Button.linkButton\n                [ Button.small\n                , Button.attrs [ onClick (SortBy Ascending key), class \"sort-button\" ]\n                ]\n                [ span\n                    [ class \"fas fa-xs fa-arrow-up\", class ascClass ]\n                    []\n                ]\n            , Button.linkButton\n                [ Button.small\n                , Button.attrs [ onClick (SortBy Descending key), class \"sort-button\" ]\n                ]\n                [ span [ class \"fas fa-xs fa-arrow-down\", class descClass ] [] ]\n            ]\n        ]\n\n\nentriesToHtml : Model -> Time.Zone -> ActualModel -> Html Msg\nentriesToHtml model zone actModel =\n    Table.table\n        { options = [ Table.hover ]\n        , thead =\n            Table.simpleThead\n                [ Table.th [ Table.cellAttr (style \"width\" \"5%\") ]\n                    [ makeCheckbox (readCheckedState actModel \"\") CheckboxTickAll\n                    ]\n                , Table.th [ Table.cellAttr (style \"width\" \"5%\") ]\n                    [ text \"\" ]\n                , Table.th [ Table.cellAttr (style \"width\" \"37.5%\") ]\n                    [ buildSortControl \"Name\" actModel Name ]\n                , Table.th [ Table.cellAttr (style \"width\" \"27.5%\") ]\n                    [ buildSortControl \"Modified\" actModel ModTime ]\n                , Table.th [ Table.cellAttr (style \"width\" \"7.5%\") ]\n                    [ buildSortControl \"Size\" actModel Size ]\n                , Table.th [ Table.cellAttr (style \"width\" \"10%\") ]\n                    [ buildSortControl \"Pin\" actModel Pin ]\n                , Table.th [ Table.cellAttr (style \"width\" \"5%\") ]\n                    [ text \"\" ]\n                ]\n        , tbody =\n            Table.tbody []\n                (List.map (entryToHtml model actModel zone) actModel.entries)\n        }\n\n\nbuildModals : Model -> Html Msg\nbuildModals model =\n    let\n        paths =\n            selectedPaths model\n    in\n    span []\n        [ Html.map HistoryMsg (History.view model.historyState)\n        , Html.map RenameMsg (Rename.view model.renameState)\n        , Html.map MoveMsg (MoveCopy.view model.moveState)\n        , Html.map CopyMsg (MoveCopy.view model.copyState)\n        , Html.map MkdirMsg (Mkdir.view model.mkdirState model.url (existsInCurr model))\n        , Html.map RemoveMsg (Remove.view model.removeState paths)\n        , Html.map ShareMsg (Share.view model.shareState model.url)\n        ]\n\n\nsearchQueryFromUrl : Url.Url -> String\nsearchQueryFromUrl url =\n    Maybe.withDefault \"\"\n        (UrlParser.parse\n            (UrlParser.query\n                (Query.map (Maybe.withDefault \"\") (Query.string \"filter\"))\n            )\n            { url | path = \"\" }\n        )\n\n\ndoListQueryFromUrl : Url.Url -> Cmd Msg\ndoListQueryFromUrl url =\n    let\n        path =\n            Util.urlToPath url\n\n        filter =\n            searchQueryFromUrl url\n    in\n    Commands.doListQuery GotResponse path filter\n\n\nviewSearchBox : Model -> Html Msg\nviewSearchBox model =\n    InputGroup.config\n        (InputGroup.text\n            [ Input.placeholder \"Search\"\n            , Input.attrs\n                [ onInput SearchInput\n                , value (searchQueryFromUrl model.url)\n                ]\n            ]\n        )\n        |> InputGroup.successors\n            [ InputGroup.span [ class \"input-group-addon\" ]\n                [ button [] [ span [ class \"fas fa-search fa-xs input-group-addon\" ] [] ]\n                ]\n            ]\n        |> InputGroup.attrs [ class \"stylish-input-group input-group\" ]\n        |> InputGroup.view\n\n\nbuildActionButton : Msg -> String -> String -> Bool -> Html Msg\nbuildActionButton msg iconName labelText isDisabled =\n    Button.button\n        [ Button.block\n        , Button.small\n        , Button.roleLink\n        , Button.attrs [ class \"text-left\", disabled isDisabled, onClick msg ]\n        ]\n        [ span [ class \"fas fa-lg\", class iconName ] []\n        , span [ class \"d-lg-inline d-none\" ] [ text (\" \" ++ labelText) ]\n        ]\n\n\nlabelSelectedItems : Model -> Int -> Html Msg\nlabelSelectedItems model num =\n    if currIsFile model then\n        text \"\"\n\n    else\n        case num of\n            0 ->\n                p []\n                    [ text \" Nothing selected\"\n                    , br [] []\n                    , text (Filesize.format (currTotalSize model) ++ \" in total\")\n                    ]\n\n            1 ->\n                p []\n                    [ text \" 1 item\"\n                    , br [] []\n                    , text (Filesize.format (currSelectedSize model))\n                    ]\n\n            n ->\n                p []\n                    [ text (\" \" ++ String.fromInt n ++ \" items\")\n                    , br [] []\n                    , text (Filesize.format (currSelectedSize model))\n                    ]\n\n\nbuildDownloadUrl : Model -> String\nbuildDownloadUrl model =\n    UrlBuilder.absolute\n        (\"get\" :: (Util.splitPath <| Util.urlToPath model.url))\n        (UrlBuilder.string \"direct\" \"yes\"\n            :: (if nSelectedItems model > 0 then\n                    List.map (UrlBuilder.string \"include\") (selectedPaths model)\n\n                else\n                    []\n               )\n        )\n\n\nviewSidebarDownloadButton : Model -> Html Msg\nviewSidebarDownloadButton model =\n    let\n        nSelected =\n            nSelectedItems model\n\n        disabledClass =\n            if currIsFile model || not (List.member \"fs.download\" model.rights) then\n                class \"disabled\"\n\n            else\n                class \"btn-default\"\n    in\n    Button.linkButton\n        [ Button.block\n        , Button.attrs\n            [ class \"text-left btn-link download-btn\"\n            , disabledClass\n            , href (buildDownloadUrl model)\n            ]\n        ]\n        [ span [ class \"fas fa-lg fa-file-download\" ] []\n        , span [ id \"action-btn\", class \"d-none d-lg-inline\" ]\n            [ if nSelected > 0 then\n                text \" Download selected \"\n\n              else\n                text \" Download all\"\n            ]\n        ]\n\n\nneedsRight : Model -> String -> something -> something -> something\nneedsRight model right entry default =\n    if List.member right model.rights then\n        entry\n\n    else\n        default\n\n\nviewActionList : Model -> Html Msg\nviewActionList model =\n    let\n        nSelected =\n            nSelectedItems model\n\n        root =\n            Maybe.withDefault \"/\" (currRoot model)\n    in\n    div []\n        [ div [ class \"d-flex flex-lg-column flex-row\" ]\n            [ p\n                [ class \"text-muted\", id \"select-label\" ]\n                [ labelSelectedItems model nSelected ]\n            , div [ class \"d-flex flex-column\" ]\n                [ Upload.buildButton\n                    model.uploadState\n                    (currIsFile model || not (List.member \"fs.download\" model.rights))\n                    root\n                    UploadMsg\n                , viewSidebarDownloadButton model\n                ]\n            , div [ class \"d-flex flex-column\" ]\n                [ buildActionButton\n                    (ShareMsg <| Share.show (selectedPaths model))\n                    \"fa-share-alt\"\n                    \"Share\"\n                    (nSelected == 0)\n                , buildActionButton\n                    (MkdirMsg <| Mkdir.show)\n                    \"fa-edit\"\n                    \"New Folder\"\n                    (currIsFile model || not (List.member \"fs.edit\" model.rights))\n                ]\n            , div [ class \"d-flex flex-column\" ]\n                [ buildActionButton\n                    (RemoveMsg <| Remove.show (selectedPaths model))\n                    \"fa-trash\"\n                    \"Delete\"\n                    (currIsFile model || nSelected == 0 || not (List.member \"fs.edit\" model.rights))\n                ]\n            ]\n        , div []\n            [ Html.map UploadMsg (Upload.viewUploadState model.uploadState)\n            ]\n        ]\n\n\nview : Model -> Html Msg\nview model =\n    Grid.row []\n        [ Grid.col\n            [ Col.lg12 ]\n            [ Grid.row [ Row.attrs [ id \"main-header-row\" ] ]\n                [ Grid.col [ Col.xl9 ]\n                    [ viewBreadcrumbs model ]\n                , Grid.col [ Col.xl3 ] [ Lazy.lazy viewSearchBox model ]\n                ]\n            , Grid.row [ Row.attrs [ id \"main-content-row\" ] ]\n                [ Grid.col\n                    [ Col.xl10 ]\n                    [ viewList model model.zone ]\n                , Grid.col [ Col.xl2 ] [ Lazy.lazy viewActionList model ]\n                ]\n            ]\n        ]\n\n\n\n-- SUBSCRIPTIONS\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    case model.state of\n        Success actualModel ->\n            Sub.batch\n                [ Alert.subscriptions model.alert AlertMsg\n                , Sub.map HistoryMsg (History.subscriptions model.historyState)\n                , Sub.map RenameMsg (Rename.subscriptions model.renameState)\n                , Sub.map MoveMsg (MoveCopy.subscriptions model.moveState)\n                , Sub.map CopyMsg (MoveCopy.subscriptions model.copyState)\n                , Sub.map UploadMsg (Upload.subscriptions model.uploadState)\n                , Sub.map MkdirMsg (Mkdir.subscriptions model.url model.mkdirState)\n                , Sub.map RemoveMsg (Remove.subscriptions model.removeState)\n                , Sub.map ShareMsg (Share.subscriptions model.shareState)\n                , Sub.batch\n                    (List.map (\\e -> Dropdown.subscriptions e.dropdown (ActionDropdownMsg e))\n                        actualModel.entries\n                    )\n                ]\n\n        _ ->\n            Sub.none\n"
  },
  {
    "path": "gateway/elm/src/Routes/Remotes.elm",
    "content": "module Routes.Remotes exposing\n    ( Model\n    , Msg\n    , buildModals\n    , newModel\n    , reload\n    , subscriptions\n    , update\n    , view\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Dropdown as Dropdown\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Grid.Row as Row\nimport Bootstrap.ListGroup as ListGroup\nimport Bootstrap.Table as Table\nimport Bootstrap.Text as Text\nimport Browser.Navigation as Nav\nimport Clipboard\nimport Commands\nimport Delay\nimport Dict\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Json.Encode as E\nimport Modals.RemoteAdd as RemoteAdd\nimport Modals.RemoteFolders as RemoteFolders\nimport Modals.RemoteRemove as RemoteRemove\nimport Time\nimport Tuple\nimport Url\nimport Util\n\n\n\n-- MODEL:\n\n\ntype State\n    = Loading\n    | Failure String\n    | Success (List Commands.Remote)\n\n\ntype alias Model =\n    { key : Nav.Key\n    , zone : Time.Zone\n    , state : State\n    , self : Commands.SelfResponse\n    , alert : Util.AlertState\n    , remoteAddState : RemoteAdd.Model\n    , remoteRemoveState : RemoteRemove.Model\n    , remoteFoldersState : RemoteFolders.Model\n    , actionDropdowns : Dict.Dict String Dropdown.State\n    , conflictDropdowns : Dict.Dict String Dropdown.State\n    , rights : List String\n    }\n\n\nnewModel : Nav.Key -> Time.Zone -> List String -> Model\nnewModel key zone rights =\n    { key = key\n    , zone = zone\n    , state = Loading\n    , rights = rights\n    , self = Commands.emptySelf\n    , remoteAddState = RemoteAdd.newModel\n    , remoteRemoveState = RemoteRemove.newModel\n    , remoteFoldersState = RemoteFolders.newModel\n    , actionDropdowns = Dict.empty\n    , conflictDropdowns = Dict.empty\n    , alert = Util.defaultAlertState\n    }\n\n\n\n-- MESSAGES:\n\n\ntype Msg\n    = GotRemoteListResponse (Result Http.Error (List Commands.Remote))\n    | GotSyncResponse (Result Http.Error String)\n    | GotSelfResponse (Result Http.Error Commands.SelfResponse)\n    | GotRemoteModifyResponse (Result Http.Error String)\n    | SyncClicked String\n    | AutoUpdateToggled Commands.Remote Bool\n    | AcceptPushToggled Commands.Remote Bool\n    | ConflictStrategyToggled Commands.Remote String\n    | ClipboardCopyClicked String\n      -- Sub messages:\n    | RemoteAddMsg RemoteAdd.Msg\n    | RemoteRemoveMsg RemoteRemove.Msg\n    | RemoteFolderMsg RemoteFolders.Msg\n    | ActionDropdownMsg String Dropdown.State\n    | ConflictDropdownMsg String Dropdown.State\n    | AlertMsg Alert.Visibility\n\n\n\n-- UPDATE:\n\n\nreload : Cmd Msg\nreload =\n    Cmd.batch\n        [ Commands.doRemoteList GotRemoteListResponse\n        , Commands.doSelfQuery GotSelfResponse\n        ]\n\n\nshowAlert : Model -> Float -> Util.AlertType -> String -> ( Model, Cmd Msg )\nshowAlert model duration modalTyp message =\n    let\n        newAlert =\n            Util.AlertState message modalTyp Alert.shown\n    in\n    ( { model | alert = newAlert }\n    , Cmd.batch\n        [ Delay.after duration Delay.Second (AlertMsg Alert.closed) ]\n    )\n\n\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nupdate msg model =\n    case msg of\n        GotRemoteListResponse result ->\n            case result of\n                Ok remotes ->\n                    ( { model | state = Success remotes }, Cmd.none )\n\n                Err err ->\n                    ( { model | state = Failure (Util.httpErrorToString err) }, Cmd.none )\n\n        GotSyncResponse result ->\n            case result of\n                Ok _ ->\n                    showAlert model 5 Util.Success \"Succesfully synchronized!\"\n\n                Err err ->\n                    showAlert model 20 Util.Danger (\"Failed to sync: \" ++ Util.httpErrorToString err)\n\n        GotRemoteModifyResponse result ->\n            case result of\n                Ok _ ->\n                    ( model, Cmd.none )\n\n                Err err ->\n                    showAlert model 20 Util.Danger (\"Failed to set auto update: \" ++ Util.httpErrorToString err)\n\n        GotSelfResponse result ->\n            case result of\n                Ok self ->\n                    ( { model | self = self }, Cmd.none )\n\n                Err err ->\n                    showAlert model 20 Util.Danger (\"Failed to get information about ourselves: \" ++ Util.httpErrorToString err)\n\n        ActionDropdownMsg name state ->\n            ( { model | actionDropdowns = Dict.insert name state model.actionDropdowns }, Cmd.none )\n\n        ConflictDropdownMsg name state ->\n            ( { model | conflictDropdowns = Dict.insert name state model.conflictDropdowns }, Cmd.none )\n\n        SyncClicked name ->\n            ( model, Commands.doRemoteSync GotSyncResponse name )\n\n        AutoUpdateToggled remote state ->\n            ( model, Commands.doRemoteModify GotRemoteModifyResponse { remote | acceptAutoUpdates = state } )\n\n        AcceptPushToggled remote state ->\n            ( model, Commands.doRemoteModify GotRemoteModifyResponse { remote | acceptPush = state } )\n\n        ConflictStrategyToggled remote state ->\n            ( model, Commands.doRemoteModify GotRemoteModifyResponse { remote | conflictStrategy = state } )\n\n        RemoteAddMsg subMsg ->\n            let\n                ( upModel, upCmd ) =\n                    RemoteAdd.update subMsg model.remoteAddState\n            in\n            ( { model | remoteAddState = upModel }, Cmd.map RemoteAddMsg upCmd )\n\n        RemoteRemoveMsg subMsg ->\n            let\n                ( upModel, upCmd ) =\n                    RemoteRemove.update subMsg model.remoteRemoveState\n            in\n            ( { model | remoteRemoveState = upModel }, Cmd.map RemoteRemoveMsg upCmd )\n\n        RemoteFolderMsg subMsg ->\n            let\n                ( upModel, upCmd ) =\n                    RemoteFolders.update subMsg model.remoteFoldersState\n            in\n            ( { model | remoteFoldersState = upModel }, Cmd.map RemoteFolderMsg upCmd )\n\n        AlertMsg vis ->\n            let\n                newAlert =\n                    Util.AlertState model.alert.message model.alert.typ vis\n            in\n            ( { model | alert = newAlert }, Cmd.none )\n\n        ClipboardCopyClicked fingerprint ->\n            let\n                newModelCmd =\n                    showAlert model 2 Util.Info \"Copied full fingerprint to clipboard.\"\n            in\n            ( Tuple.first newModelCmd\n            , Cmd.batch\n                [ Clipboard.copyToClipboard <| E.string fingerprint\n                , Tuple.second newModelCmd\n                ]\n            )\n\n\n\n-- VIEW:\n\n\nviewAutoUpdatesIcon : Bool -> Commands.Remote -> Bool -> Html Msg\nviewAutoUpdatesIcon state remote isDisabled =\n    Util.viewToggleSwitch (AutoUpdateToggled remote) \"\" state isDisabled\n\n\nviewAcceptPushToggle : Bool -> Commands.Remote -> Bool -> Html Msg\nviewAcceptPushToggle state remote isDisabled =\n    Util.viewToggleSwitch (AcceptPushToggled remote) \"\" state isDisabled\n\n\nviewRemoteState : Model -> Commands.Remote -> Html Msg\nviewRemoteState model remote =\n    if remote.isAuthenticated then\n        if remote.isOnline then\n            span [ class \"fas fa-md fa-circle text-success\" ] []\n\n        else\n            span [ class \"text-warning\" ]\n                [ text <| Util.formatLastModified model.zone remote.lastSeen ]\n\n    else\n        span [ class \"text-danger\" ] [ text \"not authenticated\" ]\n\n\nviewFingerprintButton : String -> Html Msg\nviewFingerprintButton fingerprint =\n    Button.button\n        [ Button.roleLink\n        , Button.attrs\n            [ onClick <| ClipboardCopyClicked fingerprint ]\n        ]\n        [ viewFingerprint fingerprint ]\n\n\nviewFingerprint : String -> Html Msg\nviewFingerprint fingerprint =\n    String.split \":\" fingerprint\n        |> List.map (\\t -> span [ class \"text-muted\" ] [ text (String.slice 0 10 t) ])\n        |> List.intersperse (span [] [ text \":\" ])\n        |> span [ class \"fingerprint\" ]\n\n\nviewActionDropdown : Model -> Commands.Remote -> Html Msg\nviewActionDropdown model remote =\n    Dropdown.dropdown\n        (Maybe.withDefault Dropdown.initialState (Dict.get remote.name model.actionDropdowns))\n        { options = [ Dropdown.alignMenuRight ]\n        , toggleMsg = ActionDropdownMsg remote.name\n        , toggleButton =\n            Dropdown.toggle\n                [ Button.roleLink ]\n                [ span [ class \"fas fa-ellipsis-h\" ] [] ]\n        , items =\n            [ Dropdown.buttonItem\n                [ onClick (SyncClicked remote.name)\n                , disabled\n                    (not remote.isAuthenticated\n                        || not (List.member \"fs.edit\" model.rights)\n                    )\n                ]\n                [ span [ class \"fas fa-md fa-sync-alt\" ] [], text \" Sync\" ]\n            , Dropdown.anchorItem\n                [ disabled\n                    (not remote.isAuthenticated\n                        || not (List.member \"fs.view\" model.rights)\n                    )\n                , if remote.isAuthenticated then\n                    href (\"/diff/\" ++ Url.percentEncode remote.name)\n\n                  else\n                    class \"text-muted\"\n                ]\n                [ span [ class \"fas fa-md fa-search-minus\" ] [], text \" Diff\" ]\n            , Dropdown.divider\n            , Dropdown.buttonItem\n                [ onClick (RemoteRemoveMsg <| RemoteRemove.show remote.name)\n                , disabled (not (List.member \"remotes.edit\" model.rights))\n                ]\n                [ span [ class \"text-danger\" ]\n                    [ span [ class \"fas fa-md fa-times\" ] []\n                    , text \" Remove\"\n                    ]\n                ]\n            ]\n        }\n\n\nconflictStrategyToIconName : Model -> String -> String\nconflictStrategyToIconName model strategy =\n    case strategy of\n        \"\" ->\n            if model.self.defaultConflictStrategy == \"\" then\n                \"fa-question text-muted\"\n\n            else\n                conflictStrategyToIconName model model.self.defaultConflictStrategy\n\n        \"ignore\" ->\n            \"fa-eject\"\n\n        \"marker\" ->\n            \"fa-marker\"\n\n        \"embrace\" ->\n            \"fa-handshake\"\n\n        _ ->\n            \"fa-question\"\n\n\nviewConflictDropdown : Model -> Commands.Remote -> Bool -> Html Msg\nviewConflictDropdown model remote isDisabled =\n    Dropdown.dropdown\n        (Maybe.withDefault Dropdown.initialState (Dict.get remote.name model.conflictDropdowns))\n        { options =\n            [ Dropdown.alignMenuRight\n            , Dropdown.attrs [ disabled isDisabled ]\n            ]\n        , toggleMsg = ConflictDropdownMsg remote.name\n        , toggleButton =\n            Dropdown.toggle\n                [ Button.roleLink, Button.attrs [ disabled isDisabled ] ]\n                [ span [ class \"fas\", class <| conflictStrategyToIconName model remote.conflictStrategy ] [] ]\n        , items =\n            [ Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled remote \"ignore\")\n                , disabled isDisabled\n                ]\n                [ span [ class \"fas fa-md fa-eject\" ] [], text \" Ignore\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled remote \"marker\")\n                , disabled isDisabled\n                ]\n                [ span [ class \"fas fa-md fa-marker\" ] [], text \" Marker\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled remote \"embrace\")\n                , disabled isDisabled\n                ]\n                [ span [ class \"fas fa-md fa-handshake\" ] [], text \" Embrace\" ]\n            , Dropdown.buttonItem\n                [ onClick (ConflictStrategyToggled remote \"\")\n                , disabled isDisabled\n                ]\n                [ span [ class \"fas fa-md fa-eraser\" ] [], text \" Default\" ]\n            ]\n        }\n\n\nviewRemote : Model -> Commands.Remote -> Table.Row Msg\nviewRemote model remote =\n    let\n        isDisabled =\n            not (List.member \"remotes.edit\" model.rights)\n    in\n    Table.tr []\n        [ Table.td\n            []\n            [ span [ class \"fas fa-lg fa-user-circle text-xs-right\" ] [] ]\n        , Table.td\n            []\n            [ text <| \" \" ++ remote.name ]\n        , Table.td\n            []\n            [ viewRemoteState model remote ]\n        , Table.td\n            []\n            [ span [ class \"text-muted\" ] [ viewFingerprintButton remote.fingerprint ] ]\n        , Table.td\n            []\n            [ viewAutoUpdatesIcon remote.acceptAutoUpdates remote isDisabled ]\n        , Table.td\n            []\n            [ viewAcceptPushToggle remote.acceptPush remote isDisabled ]\n        , Table.td\n            []\n            [ viewConflictDropdown model remote isDisabled ]\n        , Table.td\n            []\n            [ Button.button\n                [ Button.roleLink\n                , Button.attrs\n                    [ onClick <| RemoteFolderMsg (RemoteFolders.show remote)\n                    , disabled isDisabled\n                    ]\n                ]\n                [ span\n                    []\n                    [ case List.length remote.folders of\n                        0 ->\n                            span [ class \"fas fa-xs fa-asterisk\" ] []\n\n                        n ->\n                            text <| String.fromInt n\n                    ]\n                ]\n            ]\n        , Table.td\n            [ Table.cellAttr (class \"text-right\") ]\n            [ viewActionDropdown model remote ]\n        ]\n\n\nviewRemoteList : Model -> List Commands.Remote -> Html Msg\nviewRemoteList model remotes =\n    Table.table\n        { options =\n            [ Table.hover\n            , Table.attr (class \"borderless-table\")\n            ]\n        , thead =\n            Table.thead []\n                [ Table.tr []\n                    [ Table.th\n                        [ Table.cellAttr (style \"width\" \"5%\") ]\n                        [ text \"\" ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"20%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Name\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"20%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Online\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"30%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Fingerprint\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"10%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Auto Update\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"10%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"May Push\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"10%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Conflicts\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"10%\") ]\n                        [ span [ class \"text-muted remote-heading\" ] [ text \"Folders\" ] ]\n                    , Table.th\n                        [ Table.cellAttr (style \"width\" \"5%\") ]\n                        []\n                    ]\n                ]\n        , tbody =\n            Table.tbody []\n                (List.map\n                    (viewRemote model)\n                    remotes\n                )\n        }\n\n\nviewMetaRow : String -> Html msg -> Html msg\nviewMetaRow key value =\n    Grid.row []\n        [ Grid.col [ Col.xs4, Col.textAlign Text.alignXsLeft ] [ span [ class \"text-muted\" ] [ text key ] ]\n        , Grid.col [ Col.xs8, Col.textAlign Text.alignXsRight ] [ value ]\n        ]\n\n\nviewSelf : Model -> Html Msg\nviewSelf model =\n    Grid.row []\n        [ Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        , Grid.col [ Col.xs12, Col.lg8, Col.textAlign Text.alignXsCenter ]\n            [ ListGroup.ul\n                [ ListGroup.li []\n                    [ viewMetaRow \"Name\" (text model.self.self.name)\n                    ]\n                , ListGroup.li []\n                    [ viewMetaRow \"Fingerprint\" (viewFingerprintButton model.self.self.fingerprint)\n                    ]\n                ]\n            ]\n        , Grid.col [ Col.lg2, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        ]\n\n\nviewRemoteListContainer : Model -> List Commands.Remote -> Html Msg\nviewRemoteListContainer model remotes =\n    Grid.row []\n        [ Grid.col [ Col.lg1, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        , Grid.col [ Col.xs12, Col.lg10 ]\n            [ Util.viewAlert AlertMsg model.alert\n            , viewRemoteList model remotes\n            , div [ class \"text-left\" ]\n                [ Button.button\n                    [ Button.roleLink\n                    , Button.attrs\n                        [ onClick <| RemoteAddMsg RemoteAdd.show\n                        , disabled (not (List.member \"remotes.edit\" model.rights))\n                        ]\n                    ]\n                    [ span [ class \"fas fa-lg fa-plus\" ] []\n                    , text \" Add new\"\n                    ]\n                ]\n            ]\n        , Grid.col [ Col.lg1, Col.attrs [ class \"d-none d-lg-block\" ] ] []\n        ]\n\n\nview : Model -> Html Msg\nview model =\n    case model.state of\n        Loading ->\n            text \"Still loading\"\n\n        Failure err ->\n            text (\"Failed to load remote list: \" ++ err)\n\n        Success remotes ->\n            Grid.row []\n                [ Grid.col\n                    [ Col.lg12 ]\n                    [ Grid.row [ Row.attrs [ id \"main-header-row\" ] ]\n                        []\n                    , Grid.row [ Row.attrs [ id \"main-content-row\" ] ]\n                        [ Grid.col\n                            [ Col.xl10 ]\n                            [ h4 [ class \"text-center text-muted\" ] [ text \"Own data\" ]\n                            , br [] []\n                            , viewSelf model\n                            , br [] []\n                            , br [] []\n                            , br [] []\n                            , br [] []\n                            , h4 [ class \"text-center text-muted\" ] [ text \"Other remotes\" ]\n                            , br [] []\n                            , viewRemoteListContainer model remotes\n                            ]\n                        ]\n                    ]\n                ]\n\n\nbuildModals : Model -> Html Msg\nbuildModals model =\n    span []\n        [ Html.map RemoteAddMsg (RemoteAdd.view model.remoteAddState)\n        , Html.map RemoteRemoveMsg (RemoteRemove.view model.remoteRemoveState)\n        , Html.map RemoteFolderMsg (RemoteFolders.view model.remoteFoldersState)\n        ]\n\n\n\n-- SUBSCRIPTIONS:\n\n\nsubscriptions : Model -> Sub Msg\nsubscriptions model =\n    Sub.batch\n        [ Alert.subscriptions model.alert.vis AlertMsg\n        , Sub.map RemoteAddMsg <| RemoteAdd.subscriptions model.remoteAddState\n        , Sub.map RemoteRemoveMsg <| RemoteRemove.subscriptions model.remoteRemoveState\n        , Sub.map RemoteFolderMsg <| RemoteFolders.subscriptions model.remoteFoldersState\n        , Sub.batch\n            (List.map\n                (\\( name, state ) -> Dropdown.subscriptions state (ActionDropdownMsg name))\n                (Dict.toList model.actionDropdowns)\n            )\n        , Sub.batch\n            (List.map\n                (\\( name, state ) -> Dropdown.subscriptions state (ConflictDropdownMsg name))\n                (Dict.toList model.conflictDropdowns)\n            )\n        ]\n"
  },
  {
    "path": "gateway/elm/src/Scroll.elm",
    "content": "port module Scroll exposing (ScreenData, hasHitBottom, scrollOrResize)\n\n\ntype alias ScreenData =\n    { scrollTop : Int\n    , pageHeight : Int\n    , viewportHeight : Int\n    , viewportWidth : Int\n    }\n\n\nport scrollOrResize : (ScreenData -> msg) -> Sub msg\n\n\npercFloat : ScreenData -> Float\npercFloat data =\n    toFloat (data.scrollTop * 100) / toFloat (data.pageHeight - data.viewportHeight)\n\n\nhasHitBottom : ScreenData -> Bool\nhasHitBottom data =\n    percFloat data >= 95\n"
  },
  {
    "path": "gateway/elm/src/Util.elm",
    "content": "module Util exposing\n    ( AlertState\n    , AlertType(..)\n    , basename\n    , buildAlert\n    , defaultAlertState\n    , dirname\n    , formatLastModified\n    , formatLastModifiedOwner\n    , httpErrorToString\n    , joinPath\n    , monthToInt\n    , prefixSlash\n    , splitPath\n    , urlEncodePath\n    , urlPrefixToString\n    , urlToPath\n    , viewAlert\n    , viewToggleSwitch\n    )\n\nimport Bootstrap.Alert as Alert\nimport Bootstrap.Button as Button\nimport Bootstrap.Grid as Grid\nimport Bootstrap.Grid.Col as Col\nimport Bootstrap.Text as Text\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (..)\nimport Http\nimport Time\nimport Url\n\n\nmonthToInt : Time.Month -> Int\nmonthToInt month =\n    -- This feels stupid.\n    case month of\n        Time.Jan ->\n            1\n\n        Time.Feb ->\n            2\n\n        Time.Mar ->\n            3\n\n        Time.Apr ->\n            4\n\n        Time.May ->\n            5\n\n        Time.Jun ->\n            6\n\n        Time.Jul ->\n            7\n\n        Time.Aug ->\n            8\n\n        Time.Sep ->\n            9\n\n        Time.Oct ->\n            10\n\n        Time.Nov ->\n            11\n\n        Time.Dec ->\n            12\n\n\nformatLastModifiedOwner : Time.Zone -> Time.Posix -> String -> Html.Html msg\nformatLastModifiedOwner z t owner =\n    p [] [ text (formatLastModified z t), span [ class \"text-muted\" ] [ text \" by \" ], text owner ]\n\n\nformatLastModified : Time.Zone -> Time.Posix -> String\nformatLastModified z t =\n    String.join \" \"\n        -- Day portion:\n        [ String.join\n            \"/\"\n            [ Time.toDay z t |> String.fromInt\n            , Time.toMonth z t |> monthToInt |> String.fromInt\n            , Time.toYear z t |> String.fromInt\n            ]\n\n        -- Time portion:\n        , String.join \":\"\n            [ Time.toHour z t |> String.fromInt |> String.padLeft 2 '0'\n            , Time.toMinute z t |> String.fromInt |> String.padLeft 2 '0'\n            , Time.toSecond z t |> String.fromInt |> String.padLeft 2 '0'\n            ]\n        ]\n\n\nsplitPath : String -> List String\nsplitPath path =\n    List.filter (\\s -> String.length s > 0) (String.split \"/\" path)\n\n\njoinPath : List String -> String\njoinPath paths =\n    \"/\" ++ String.join \"/\" (List.foldr (++) [] (List.map splitPath paths))\n\n\nurlToPath : Url.Url -> String\nurlToPath url =\n    let\n        decodeUrlPart =\n            \\e ->\n                case Url.percentDecode e of\n                    Just val ->\n                        val\n\n                    Nothing ->\n                        \"\"\n    in\n    case splitPath url.path of\n        [] ->\n            \"/\"\n\n        _ :: xs ->\n            \"/\" ++ String.join \"/\" (List.map decodeUrlPart xs)\n\n\nbasename : String -> String\nbasename path =\n    let\n        split =\n            List.reverse (splitPath path)\n    in\n    case split of\n        [] ->\n            \"/\"\n\n        x :: _ ->\n            x\n\n\nprefixSlash : String -> String\nprefixSlash path =\n    if String.startsWith \"/\" path then\n        path\n\n    else\n        \"/\" ++ path\n\n\ndirname : String -> String\ndirname path =\n    let\n        split =\n            splitPath path\n    in\n    case split of\n        [] ->\n            \"/\"\n\n        _ ->\n            joinPath <| List.take (List.length split - 1) split\n\n\nbuildAlert : Alert.Visibility -> (Alert.Visibility -> msg) -> (Alert.Config msg -> Alert.Config msg) -> String -> String -> Html msg\nbuildAlert visibility msg severity title message =\n    Alert.config\n        |> Alert.dismissableWithAnimation msg\n        |> severity\n        |> Alert.children\n            [ if String.length title > 0 then\n                Alert.h4 [] [ text title ]\n\n              else\n                text \"\"\n            , text message\n            ]\n        |> Alert.view visibility\n\n\nhttpErrorToString : Http.Error -> String\nhttpErrorToString err =\n    case err of\n        Http.BadUrl msg ->\n            \"Bad url: \" ++ msg\n\n        Http.Timeout ->\n            \"Timeout\"\n\n        Http.NetworkError ->\n            \"Network error\"\n\n        Http.BadStatus status ->\n            \"Bad status: \" ++ String.fromInt status\n\n        Http.BadBody msg ->\n            \"Could not decode body: \" ++ msg\n\n\nurlPrefixToString : Url.Url -> String\nurlPrefixToString url =\n    (case url.protocol of\n        Url.Https ->\n            \"https://\"\n\n        Url.Http ->\n            \"http://\"\n    )\n        ++ url.host\n        ++ (case url.port_ of\n                Just port_ ->\n                    \":\" ++ String.fromInt port_\n\n                Nothing ->\n                    \"\"\n           )\n        ++ \"/\"\n\n\nurlEncodePath : String -> String\nurlEncodePath path =\n    joinPath (List.map Url.percentEncode (splitPath path))\n\n\nviewToggleSwitch : (Bool -> msg) -> String -> Bool -> Bool -> Html msg\nviewToggleSwitch toMsg message isChecked isDisabled =\n    span []\n        [ span []\n            [ label\n                [ class \"toggle-switch\"\n                , disabled isDisabled\n                , if isDisabled then\n                    class \"toggle-switch-disabled\"\n\n                  else\n                    class \"\"\n                ]\n                [ input [ type_ \"checkbox\", onCheck toMsg, checked isChecked, disabled isDisabled ] []\n                , span [ class \"toggle-slider toggle-round\" ] []\n                ]\n            ]\n        , span\n            [ class \"text-muted\" ]\n            [ text (\" \" ++ message) ]\n        ]\n\n\n\n-- ALERT UTILS\n\n\ntype AlertType\n    = Danger\n    | Success\n    | Info\n\n\ntype alias AlertState =\n    { message : String\n    , typ : AlertType\n    , vis : Alert.Visibility\n    }\n\n\ndefaultAlertState : AlertState\ndefaultAlertState =\n    { message = \"\"\n    , typ = Info\n    , vis = Alert.closed\n    }\n\n\niconFromAlertType : AlertType -> Html msg\niconFromAlertType typ =\n    case typ of\n        Danger ->\n            span [ class \"fas fa-xs fa-exclamation-circle\" ] []\n\n        Success ->\n            span [ class \"fas fa-xs fa-check\" ] []\n\n        _ ->\n            text \"\"\n\n\nvisualFromAlertType : AlertType -> (Alert.Config msg -> Alert.Config msg)\nvisualFromAlertType typ =\n    case typ of\n        Danger ->\n            Alert.danger\n\n        Success ->\n            Alert.success\n\n        _ ->\n            Alert.info\n\n\nviewAlert : (Alert.Visibility -> msg) -> AlertState -> Html msg\nviewAlert toMsg alert =\n    Alert.config\n        |> Alert.dismissableWithAnimation toMsg\n        |> visualFromAlertType alert.typ\n        |> Alert.children\n            [ Grid.row []\n                [ Grid.col [ Col.xs10 ]\n                    [ iconFromAlertType alert.typ\n                    , text (\" \" ++ alert.message)\n                    ]\n                , Grid.col [ Col.xs2, Col.textAlign Text.alignXsRight ]\n                    [ Button.button\n                        [ Button.roleLink\n                        , Button.attrs\n                            [ class \"notification-close-btn\"\n                            , onClick (toMsg Alert.closed)\n                            ]\n                        ]\n                        [ span [ class \"fas fa-xs fa-times\" ] [] ]\n                    ]\n                ]\n            ]\n        |> Alert.view alert.vis\n"
  },
  {
    "path": "gateway/elm/src/Websocket.elm",
    "content": "port module Websocket exposing (incoming, open)\n\n\nport incoming : (String -> msg) -> Sub msg\n\n\nport open : () -> Cmd msg\n"
  },
  {
    "path": "gateway/endpoints/all_dirs.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// AllDirsHandler implements http.Handler.\n// This endpoint returns all directories that the client may see.\n// It is used in the client to offer the user a list of directories\n// to move or copy files to.\ntype AllDirsHandler struct {\n\t*State\n}\n\n// NewAllDirsHandler returns a new AllDirsHandler.\nfunc NewAllDirsHandler(s *State) *AllDirsHandler {\n\treturn &AllDirsHandler{State: s}\n}\n\n// AllDirsResponse is the response sent to the client.\ntype AllDirsResponse struct {\n\tSuccess bool     `json:\"success\"`\n\tPaths   []string `json:\"paths\"`\n}\n\nfunc (ah *AllDirsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif user := getUserName(ah.store, w, r); user == \"\" {\n\t\tjsonifyErrf(w, http.StatusForbidden, \"bad user\")\n\t\treturn\n\t}\n\n\tif !checkRights(w, r, db.RightFsView) {\n\t\treturn\n\t}\n\n\tnodes, err := ah.fs.List(\"/\", -1)\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to list\")\n\t\treturn\n\t}\n\n\tpaths := []string{}\n\tfor _, node := range nodes {\n\t\tif !node.IsDir || !ah.validatePath(node.Path, w, r) {\n\t\t\tcontinue\n\t\t}\n\n\t\tpaths = append(paths, node.Path)\n\t}\n\n\t// Sort dirs before files and sort each part alphabetically\n\tsort.Slice(paths, func(i, j int) bool {\n\t\treturn strings.ToLower(paths[i]) < strings.ToLower(paths[j])\n\t})\n\n\tjsonify(w, http.StatusOK, &AllDirsResponse{\n\t\tSuccess: true,\n\t\tPaths:   paths,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/all_dirs_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestAllDirsSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/a\")\n\n\t\trequire.Nil(t, s.fs.Mkdir(\"/a/b/c\", true))\n\t\trequire.Nil(t, s.fs.Mkdir(\"/d/e/f\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewAllDirsHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/all_dirs\",\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tallDirsResp := &AllDirsResponse{}\n\t\tmustDecodeBody(t, resp.Body, allDirsResp)\n\t\trequire.Equal(t, true, allDirsResp.Success)\n\t\trequire.Equal(t, []string{\"/a\", \"/a/b\", \"/a/b/c\"}, allDirsResp.Paths)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/copy.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// CopyHandler implements http.Handler.\ntype CopyHandler struct {\n\t*State\n}\n\n// NewCopyHandler creates a new copy handler.\nfunc NewCopyHandler(s *State) *CopyHandler {\n\treturn &CopyHandler{State: s}\n}\n\n// CopyRequest is the request that can be send to this endpoint.\ntype CopyRequest struct {\n\t// Source is the path to the old node.\n\tSource string `json:\"source\"`\n\t// Destination is the path of the new node.\n\tDestination string `json:\"destination\"`\n}\n\nfunc (ch *CopyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tcopyReq := CopyRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&copyReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tsrc := prefixRoot(copyReq.Source)\n\tdst := prefixRoot(copyReq.Destination)\n\n\tif !ch.validatePath(src, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"source path forbidden\")\n\t\treturn\n\t}\n\n\tif !ch.validatePath(dst, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"destination path forbidden\")\n\t\treturn\n\t}\n\n\tif err := ch.fs.Copy(src, dst); err != nil {\n\t\tlog.Debugf(\"failed to copy %s -> %s: %v\", src, dst, err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to copy\")\n\t\treturn\n\t}\n\n\tmsg := fmt.Sprintf(\"copied »%s« to »%s«\", src, dst)\n\tif !ch.commitChange(msg, w, r) {\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/copy_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype copyResponse struct {\n\tSuccess bool `json:\"success\"`\n}\n\nfunc TestCopySuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewCopyHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/copy\",\n\t\t\t&CopyRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tcopyResp := &copyResponse{}\n\t\tmustDecodeBody(t, resp.Body, copyResp)\n\t\trequire.Equal(t, true, copyResp.Success)\n\n\t\thinzInfo, err := s.fs.Stat(\"/hinz\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/hinz\", hinzInfo.Path)\n\n\t\tkunzInfo, err := s.fs.Stat(\"/kunz\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/kunz\", kunzInfo.Path)\n\t})\n}\n\nfunc TestCopyDisallowedSource(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/kunz\")\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewCopyHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/copy\",\n\t\t\t&CopyRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n\nfunc TestCopyDisallowedDest(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/hinz\")\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewCopyHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/copy\",\n\t\t\t&CopyRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/deleted.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/util\"\n)\n\n// DeletedPathsHandler implements http.Handler.\n// This endpoint returns all directories that the client may see.\n// It is used in the client to offer the user a list of directories\n// to move or copy files to.\ntype DeletedPathsHandler struct {\n\t*State\n}\n\n// NewDeletedPathsHandler returns a new DeletedPathsHandler.\nfunc NewDeletedPathsHandler(s *State) *DeletedPathsHandler {\n\treturn &DeletedPathsHandler{State: s}\n}\n\n// DeletedPathsResponse is the response sent to the client.\ntype DeletedPathsResponse struct {\n\tSuccess bool        `json:\"success\"`\n\tEntries []*StatInfo `json:\"entries\"`\n}\n\n// DeletedRequest is the data sent to this endpoint.\ntype DeletedRequest struct {\n\tOffset int64  `json:\"offset\"`\n\tLimit  int64  `json:\"limit\"`\n\tFilter string `json:\"filter\"`\n}\n\nfunc matchEntry(info *catfs.StatInfo, filter string) bool {\n\tif filter == \"\" {\n\t\treturn true\n\t}\n\n\treturn strings.Contains(strings.ToLower(info.Path), filter)\n}\n\nfunc (dh *DeletedPathsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsView) {\n\t\treturn\n\t}\n\n\tdelReq := DeletedRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&delReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tif delReq.Offset < 0 {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"negative offset\")\n\t\treturn\n\t}\n\n\tnodes, err := dh.fs.DeletedNodes(\"/\")\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to list\")\n\t\treturn\n\t}\n\n\tfilter := strings.ToLower(delReq.Filter)\n\tfilteredNodes := []*catfs.StatInfo{}\n\tfor _, node := range nodes {\n\t\tif !matchEntry(node, filter) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfilteredNodes = append(filteredNodes, node)\n\t}\n\n\tentries := []*StatInfo{}\n\tif delReq.Offset >= int64(len(filteredNodes)) {\n\t\tjsonify(w, http.StatusOK, &DeletedPathsResponse{\n\t\t\tSuccess: true,\n\t\t\tEntries: entries,\n\t\t})\n\t\treturn\n\t}\n\n\tfilteredNodes = filteredNodes[delReq.Offset:]\n\tif delReq.Limit >= 0 {\n\t\tfilteredNodes = filteredNodes[:util.Min64(int64(len(filteredNodes)), delReq.Limit)]\n\t}\n\n\tfor _, node := range filteredNodes {\n\t\tif !dh.validatePath(node.Path, w, r) {\n\t\t\tcontinue\n\t\t}\n\n\t\tentries = append(entries, toExternalStatInfo(node))\n\t}\n\n\t// Sort dirs before files and sort each part alphabetically\n\tsort.Slice(entries, func(i, j int) bool {\n\t\tif entries[i].IsDir != entries[j].IsDir {\n\t\t\treturn entries[i].IsDir\n\t\t}\n\n\t\treturn strings.ToLower(entries[i].Path) < strings.ToLower(entries[j].Path)\n\t})\n\n\tjsonify(w, http.StatusOK, &DeletedPathsResponse{\n\t\tSuccess: true,\n\t\tEntries: entries,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/deleted_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestDeletedPathSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/a\")\n\t\trequire.Nil(t, s.fs.Touch(\"/a/b/c1\"))\n\t\trequire.Nil(t, s.fs.Touch(\"/a/b/c2\"))\n\t\trequire.Nil(t, s.fs.Touch(\"/d/e/f1\"))\n\t\trequire.Nil(t, s.fs.Touch(\"/d/e/f2\"))\n\n\t\trequire.Nil(t, s.fs.MakeCommit(\"add\"))\n\n\t\trequire.Nil(t, s.fs.Remove(\"/a/b/c1\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/a/b/c2\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/d/e/f1\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/d/e/f2\"))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"rm\"))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewDeletedPathsHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/deleted\",\n\t\t\t&DeletedRequest{\n\t\t\t\tOffset: 0,\n\t\t\t\tLimit:  -1,\n\t\t\t\tFilter: \"\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdeletedResp := &DeletedPathsResponse{}\n\t\tmustDecodeBody(t, resp.Body, deletedResp)\n\t\trequire.Equal(t, true, deletedResp.Success)\n\t\trequire.Equal(t, 2, len(deletedResp.Entries))\n\n\t\tpaths := []string{}\n\t\tfor _, entry := range deletedResp.Entries {\n\t\t\tpaths = append(paths, entry.Path)\n\t\t}\n\n\t\trequire.Equal(\n\t\t\tt,\n\t\t\t[]string{\"/a/b/c1\", \"/a/b/c2\"},\n\t\t\tpaths,\n\t\t)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/events.go",
    "content": "package endpoints\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/sahib/brig/events\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar upgrader = websocket.Upgrader{\n\tReadBufferSize:  1024,\n\tWriteBufferSize: 1024,\n}\n\n// EventsHandler implements http.Handler\ntype EventsHandler struct {\n\tmu         sync.Mutex\n\tid         int\n\tchs        map[int]chan string\n\trapi       remotesapi.RemotesAPI\n\tevListener *events.Listener\n\tchangeOnce sync.Once\n\n\t// only true while unit tests.\n\t// circumvents the right check,\n\t// that can't be mocked away easily.\n\ttesting bool\n}\n\n// NewEventsHandler returns a new EventsHandler\nfunc NewEventsHandler(rapi remotesapi.RemotesAPI, ev *events.Listener) *EventsHandler {\n\thdl := &EventsHandler{\n\t\tchs:  make(map[int]chan string),\n\t\trapi: rapi,\n\t}\n\n\tif ev != nil {\n\t\t// Incoming events from our own node:\n\t\tev.RegisterEventHandler(events.FsEvent, true, func(ev *events.Event) {\n\t\t\tctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)\n\t\t\tdefer cancel()\n\n\t\t\thdl.notify(ctx, \"fs\", true, false)\n\t\t})\n\n\t\t// Incoming events from other nodes:\n\t\tev.RegisterEventHandler(events.FsEvent, false, func(ev *events.Event) {\n\t\t\tctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)\n\t\t\tdefer cancel()\n\n\t\t\thdl.notify(ctx, \"fs\", false, false)\n\t\t})\n\n\t\thdl.evListener = ev\n\t}\n\treturn hdl\n}\n\n// Notify sends `msg` to all connected clients, but stops in case `ctx`\n// was canceled before sending it all.\nfunc (eh *EventsHandler) Notify(ctx context.Context, msg string) error {\n\treturn eh.notify(ctx, msg, true, true)\n}\n\nfunc (eh *EventsHandler) notify(ctx context.Context, msg string, isOwnEvent, triggerPublish bool) error {\n\teh.mu.Lock()\n\tchs := []chan string{}\n\tfor _, ch := range eh.chs {\n\t\tchs = append(chs, ch)\n\t}\n\teh.mu.Unlock()\n\n\tfor _, ch := range chs {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase ch <- msg:\n\t\t\tcontinue\n\t\t}\n\t}\n\n\t// We can only trigger fs events in the gateway:\n\tevent := events.Event{\n\t\tType: events.FsEvent,\n\t}\n\n\tif !isOwnEvent && triggerPublish && eh.evListener != nil {\n\t\treturn eh.evListener.PublishEvent(event)\n\t}\n\n\treturn nil\n}\n\n// Shutdown closes all open websockets.\nfunc (eh *EventsHandler) Shutdown() {\n\teh.mu.Lock()\n\tdefer eh.mu.Unlock()\n\n\tfor _, ch := range eh.chs {\n\t\tclose(ch)\n\t}\n}\n\nfunc (eh *EventsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !eh.testing {\n\t\tif !checkRights(w, r, db.RightFsView) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tconn, err := upgrader.Upgrade(w, r, nil)\n\tif err != nil {\n\t\tlog.Warningf(\"failed to upgrade to websocket: %v\", err)\n\t\treturn\n\t}\n\n\t// We setup the on change handler only here,\n\t// since calling OnChange in init might deadlock\n\t// since the real implementation might call Repo()\n\teh.changeOnce.Do(func() {\n\t\teh.rapi.OnChange(func() {\n\t\t\tctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)\n\t\t\tdefer cancel()\n\n\t\t\teh.Notify(ctx, \"remotes\")\n\t\t})\n\t})\n\n\teh.mu.Lock()\n\tid := eh.id\n\teh.id++\n\tch := make(chan string, 20)\n\teh.chs[id] = ch\n\teh.mu.Unlock()\n\n\tdefer func() {\n\t\teh.mu.Lock()\n\t\tdelete(eh.chs, id)\n\t\teh.mu.Unlock()\n\t}()\n\n\tdefer conn.Close()\n\n\tfor {\n\t\tselect {\n\t\tcase msg, ok := <-ch:\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif err := conn.WriteMessage(websocket.TextMessage, []byte(msg)); err != nil {\n\t\t\t\tlog.Debugf(\"failed to write to websocket, closing: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "gateway/endpoints/events_test.go",
    "content": "package endpoints\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"runtime\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/gorilla/websocket\"\n\t\"github.com/posener/wstest\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestEvents(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\t// This is stupid. I couldn't get DialContext()\n\t\t// to pass the user value to the actual handler.\n\t\t// Pretty sure it was a problem on my side though...\n\t\ts.evHdl.testing = true\n\n\t\t// This call evHdl.ServeHTTP when sending something on conn.\n\t\tdialer := wstest.NewDialer(s.evHdl)\n\n\t\tctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\tdefer cancel()\n\n\t\tconn, resp, err := dialer.DialContext(ctx, \"ws://whatever/ws\", nil)\n\t\trequire.Nil(t, err)\n\n\t\tif got, want := resp.StatusCode, http.StatusSwitchingProtocols; got != want {\n\t\t\tt.Fatalf(\"resp.StatusCode = %q, want %q\", got, want)\n\t\t}\n\n\t\tgo func() {\n\t\t\t// give it a little time so ServeHTTP() of the events handler\n\t\t\t// can reach the \"please notify me now\" stage.\n\t\t\ttime.Sleep(100 * time.Millisecond)\n\n\t\t\t// trigger an event:\n\t\t\tresp := s.mustRun(\n\t\t\t\tt,\n\t\t\t\tNewMkdirHandler(s.State),\n\t\t\t\t\"POST\",\n\t\t\t\t\"http://localhost:5000/api/v0/events\",\n\t\t\t\t&MkdirRequest{\n\t\t\t\t\tPath: \"/test\",\n\t\t\t\t},\n\t\t\t)\n\t\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\t}()\n\n\t\tdone := make(chan bool)\n\n\t\tgo func() {\n\t\t\ttyp, data, err := conn.ReadMessage()\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, websocket.TextMessage, typ)\n\t\t\trequire.Equal(t, []byte(\"fs\"), data)\n\t\t\tdone <- true\n\t\t}()\n\n\t\tselect {\n\t\tcase <-done:\n\t\tcase <-time.After(10 * time.Second):\n\t\t\tbuf := make([]byte, 1<<20)\n\t\t\tstacklen := runtime.Stack(buf, true)\n\t\t\tt.Logf(string(buf[:stacklen]))\n\t\t\tt.Fatalf(\"test took too long\")\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/get.go",
    "content": "package endpoints\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/catfs\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/catfs/mio\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// GetHandler implements http.Handler\ntype GetHandler struct {\n\t*State\n}\n\n// NewGetHandler returns a new GetHandler\nfunc NewGetHandler(s *State) *GetHandler {\n\treturn &GetHandler{State: s}\n}\n\nfunc mimeTypeFromStream(stream mio.Stream) (io.ReadSeeker, string) {\n\thdr, newStream, err := util.PeekHeader(stream, 512)\n\tif err != nil {\n\t\treturn stream, \"application/octet-stream\"\n\t}\n\n\treturn newStream, http.DetectContentType(hdr)\n}\n\n// setContentDisposition sets the Content-Disposition header, based on\n// the content we are serving. It tells a browser if it should open\n// a save dialog or display it inline (and how)\nfunc setContentDisposition(info *catfs.StatInfo, hdr http.Header, dispoType string) {\n\tbasename := path.Base(info.Path)\n\tif info.IsDir {\n\t\tif basename == \"/\" {\n\t\t\tbasename = \"root\"\n\t\t}\n\n\t\tbasename += \".tar\"\n\t}\n\n\thdr.Set(\n\t\t\"Content-Disposition\",\n\t\tfmt.Sprintf(\n\t\t\t\"%s; filename*=UTF-8''%s\",\n\t\t\tdispoType,\n\t\t\turl.QueryEscape(basename),\n\t\t),\n\t)\n}\n\nfunc (gh *GetHandler) checkBasicAuth(nodePath string, w http.ResponseWriter, r *http.Request) bool {\n\tname, pass, ok := r.BasicAuth()\n\n\t// No basic auth sent. If a browser send the request: ask him to\n\t// show a user/password form that gives a chance to change that.\n\tif !ok {\n\t\tw.Header().Set(\"WWW-Authenticate\", \"Basic realm=\\\"brig gateway\\\"\")\n\t\treturn false\n\t}\n\n\t// Check is the basic auth credentials are valid.\n\tuser, err := gh.userDb.Get(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\thasRight := false\n\tfor _, right := range user.Rights {\n\t\tif right == db.RightDownload {\n\t\t\thasRight = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !hasRight {\n\t\treturn false\n\t}\n\n\tisValid, err := user.CheckPassword(pass)\n\tif !isValid {\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"get: failed to check password: %v\", err)\n\t\t}\n\n\t\treturn false\n\t}\n\n\t// Check again if this user has access to the path:\n\tif !gh.validatePathForUser(nodePath, user, w, r) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc (gh *GetHandler) checkDownloadRight(w http.ResponseWriter, r *http.Request) bool {\n\tname := getUserName(gh.store, w, r)\n\tif name == \"\" {\n\t\treturn false\n\t}\n\n\treturn gh.checkDownloadRightByName(name, w, r)\n}\n\nfunc (gh *GetHandler) checkDownloadRightByName(name string, w http.ResponseWriter, r *http.Request) bool {\n\tuser, err := gh.userDb.Get(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tfor _, right := range user.Rights {\n\t\tif right == db.RightDownload {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (gh *GetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\t// get the file nodePath including the leading slash:\n\tfullURL := r.URL.EscapedPath()\n\tnodePath, err := url.PathUnescape(fullURL[4:])\n\tif nodePath == \"\" {\n\t\tnodePath = \"/\"\n\t}\n\n\tif err != nil {\n\t\tlog.Debugf(\"received malformed url: %s\", fullURL)\n\t\thttp.Error(w, \"malformed url\", http.StatusBadRequest)\n\t\treturn\n\t}\n\n\tif gh.cfg.Bool(\"auth.anon_allowed\") {\n\t\t// validatePath will check if the user is actually logged in\n\t\t// and may access the path in question. The login could come\n\t\t// from a previous login to the UI (the /get endpoint could be used separately)\n\t\tif !gh.validatePath(nodePath, w, r) {\n\t\t\t// If the user was not previously logged into the UI,\n\t\t\t// we also accept basic auth for this endpoint.\n\t\t\t// This way hyperlinks can be shared without having to login.\n\t\t\t// Using HTTPS here is strongly recommended.\n\t\t\tif !gh.checkBasicAuth(nodePath, w, r) {\n\t\t\t\thttp.Error(w, \"not authorized\", http.StatusUnauthorized)\n\t\t\t\treturn\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the user allowed the anon user to download files.\n\t\t\tanonName := gh.cfg.String(\"auth.anon_user\")\n\t\t\tif !gh.checkDownloadRightByName(anonName, w, r) {\n\t\t\t\thttp.Error(w, \"insufficient rights\", http.StatusUnauthorized)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\t// All good. Proceed with the content.\n\t} else {\n\t\tif !gh.validatePath(nodePath, w, r) {\n\t\t\thttp.Error(w, \"insufficient rights\", http.StatusUnauthorized)\n\t\t\treturn\n\t\t}\n\t\tif !gh.checkDownloadRight(w, r) {\n\t\t\thttp.Error(w, \"insufficient rights for anon\", http.StatusUnauthorized)\n\t\t\treturn\n\t\t}\n\t}\n\n\tinfo, err := gh.fs.Stat(nodePath)\n\tif err != nil {\n\t\t// Handle a bad nodePath more explicit:\n\t\tif ie.IsNoSuchFileError(err) {\n\t\t\thttp.Error(w, \"not found\", http.StatusNotFound)\n\t\t\treturn\n\t\t}\n\n\t\tlog.Errorf(\"gateway: failed to stat %s: %v\", nodePath, err)\n\t\thttp.Error(w, \"failed to stat file\", http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\thdr := w.Header()\n\thdr.Set(\"ETag\", info.ContentHash.B58String())\n\thdr.Set(\"Last-Modified\", info.ModTime.Format(http.TimeFormat))\n\n\tif info.IsDir {\n\t\tparams := r.URL.Query()\n\t\tincludes := params[\"include\"]\n\n\t\tfilter := func(info *catfs.StatInfo) bool {\n\t\t\tif len(includes) == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tfor _, include := range includes {\n\t\t\t\tif strings.HasPrefix(info.Path, include) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\n\t\tsetContentDisposition(info, hdr, \"attachment\")\n\t\tif err := gh.fs.Tar(nodePath, w, filter); err != nil {\n\t\t\tlog.Errorf(\"gateway: failed to stream %s: %v\", nodePath, err)\n\t\t\thttp.Error(w, \"failed to stream\", http.StatusInternalServerError)\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tstream, err := gh.fs.Cat(nodePath)\n\t\tif err != nil {\n\t\t\tlog.Errorf(\"gateway: failed to stream %s: %v\", nodePath, err)\n\t\t\thttp.Error(w, \"failed to stream\", http.StatusInternalServerError)\n\t\t\treturn\n\t\t}\n\n\t\tprefixStream, mimeType := mimeTypeFromStream(stream)\n\t\thdr.Set(\"Content-Type\", mimeType)\n\t\thdr.Set(\"Content-Length\", strconv.FormatUint(info.Size, 10))\n\n\t\tisDirectDownload := r.URL.Query().Get(\"direct\") == \"yes\"\n\n\t\t// Set the content disposition to inline if it looks like something viewable.\n\t\tif mimeType == \"application/octet-stream\" || isDirectDownload {\n\t\t\tsetContentDisposition(info, hdr, \"attachment\")\n\t\t} else {\n\t\t\tsetContentDisposition(info, hdr, \"inline\")\n\t\t}\n\n\t\thttp.ServeContent(w, r, path.Base(info.Path), info.ModTime, prefixStream)\n\t}\n}\n"
  },
  {
    "path": "gateway/endpoints/get_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestGetEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tfileData := []byte(\"HelloWorld\")\n\t\trequire.Nil(t, s.fs.Stage(\"/file\", bytes.NewReader(fileData)))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewGetHandler(s.State),\n\t\t\t\"GET\",\n\t\t\t\"http://localhost:5000/get/file\",\n\t\t\tnil,\n\t\t)\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tdata, err := ioutil.ReadAll(resp.Body)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, fileData, data)\n\t})\n}\n\nfunc TestGetEndpointDisallowed(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tfileData := []byte(\"HelloWorld\")\n\t\trequire.Nil(t, s.fs.Stage(\"/file\", bytes.NewReader(fileData)))\n\t\ts.mustChangeFolders(t, \"/public\")\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewGetHandler(s.State),\n\t\t\t\"GET\",\n\t\t\t\"http://localhost:5000/get/file\",\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/history.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// HistoryHandler implements http.Handler\ntype HistoryHandler struct {\n\t*State\n}\n\n// NewHistoryHandler returns a new HistoryHandler\nfunc NewHistoryHandler(s *State) *HistoryHandler {\n\treturn &HistoryHandler{State: s}\n}\n\n// HistoryRequest is the request sent to this endpoint.\ntype HistoryRequest struct {\n\tPath string `json:\"path\"`\n}\n\n// Commit is the same as catfs.Commit, but JSON friendly\n// and with some omitted fields that are not used by the client.\ntype Commit struct {\n\tDate  int64    `json:\"date\"`\n\tMsg   string   `json:\"msg\"`\n\tTags  []string `json:\"tags\"`\n\tHash  string   `json:\"hash\"`\n\tIndex int64    `json:\"index\"`\n}\n\n// HistoryEntry is one entry in the response.\ntype HistoryEntry struct {\n\tHead       Commit `json:\"head\"`\n\tPath       string `json:\"path\"`\n\tChange     string `json:\"change\"`\n\tIsPinned   bool   `json:\"is_pinned\"`\n\tIsExplicit bool   `json:\"is_explicit\"`\n}\n\n// HistoryResponse is the data that is sent back to the client.\ntype HistoryResponse struct {\n\tSuccess bool           `json:\"success\"`\n\tEntries []HistoryEntry `json:\"entries\"`\n}\n\nfunc toExternalCommit(cmt *catfs.Commit) Commit {\n\text := Commit{}\n\text.Date = cmt.Date.Unix() * 1000\n\text.Hash = cmt.Hash.B58String()\n\text.Msg = cmt.Msg\n\text.Tags = cmt.Tags\n\text.Index = cmt.Index\n\n\t// Make sure we set an empty list,\n\t// otherwise .Tags gets serialized as null\n\t// which breaks frontend.\n\tif ext.Tags == nil {\n\t\text.Tags = []string{}\n\t}\n\treturn ext\n}\n\nfunc toExternalChange(c catfs.Change) HistoryEntry {\n\te := HistoryEntry{}\n\te.Change = c.Change\n\te.Head = toExternalCommit(c.Head)\n\te.Path = c.Path\n\te.IsPinned = c.IsPinned\n\te.IsExplicit = c.IsExplicit\n\treturn e\n}\n\nfunc (hh *HistoryHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsView) {\n\t\treturn\n\t}\n\n\thistReq := HistoryRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&histReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tpath := prefixRoot(histReq.Path)\n\tif !hh.validatePath(path, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\treturn\n\t}\n\n\thist, err := hh.fs.History(path)\n\tif err != nil {\n\t\tlog.Debugf(\"failed to check history for %s: %v\", path, err)\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to check history\")\n\t\treturn\n\t}\n\n\tentries := []HistoryEntry{}\n\tfor _, change := range hist {\n\t\t// Filter none changes, since they are only neat for debugging.\n\t\tif change.Change == \"none\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tentries = append(entries, toExternalChange(change))\n\t}\n\n\tjsonify(w, http.StatusOK, &HistoryResponse{\n\t\tSuccess: true,\n\t\tEntries: entries,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/history_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestHistoryEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Stage(\"/x\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"hello\"))\n\t\trequire.Nil(t, s.fs.Stage(\"/x\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"world\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/x\"))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"remove\"))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewHistoryHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/history\",\n\t\t\t&HistoryRequest{\n\t\t\t\tPath: \"/x\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := &HistoryResponse{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\n\t\tents := data.Entries\n\t\trequire.Len(t, ents, 3)\n\n\t\trequire.Equal(t, \"removed\", ents[0].Change)\n\t\trequire.Equal(t, \"/x\", ents[0].Path)\n\t\trequire.Equal(t, \"remove\", ents[0].Head.Msg)\n\t\trequire.Equal(t, []string{\"head\"}, ents[0].Head.Tags)\n\n\t\trequire.Equal(t, \"modified\", ents[1].Change)\n\t\trequire.Equal(t, \"/x\", ents[1].Path)\n\t\trequire.Equal(t, \"world\", ents[1].Head.Msg)\n\t\trequire.Equal(t, []string{}, ents[1].Head.Tags)\n\n\t\trequire.Equal(t, \"added\", ents[2].Change)\n\t\trequire.Equal(t, \"/x\", ents[2].Path)\n\t\trequire.Equal(t, \"hello\", ents[2].Head.Msg)\n\t\trequire.Equal(t, []string{\"init\"}, ents[2].Head.Tags)\n\t})\n}\n\nfunc TestHistoryEndpointForbidden(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/public\")\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewHistoryHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/history\",\n\t\t\t&HistoryRequest{\n\t\t\t\tPath: \"/x\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/index.go",
    "content": "package endpoints\n\nimport (\n\t\"html/template\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"github.com/gorilla/csrf\"\n\t\"github.com/phogolabs/parcello\"\n\tlog \"github.com/sirupsen/logrus\"\n\n\t// Include static resources:\n\t_ \"github.com/sahib/brig/gateway/templates\"\n)\n\n// IndexHandler implements http.Handler.\n// It serves index.html from either file or memory.\ntype IndexHandler struct {\n\t*State\n}\n\n// NewIndexHandler returns a new IndexHandler.\nfunc NewIndexHandler(s *State) *IndexHandler {\n\treturn &IndexHandler{State: s}\n}\n\nfunc (ih *IndexHandler) loadTemplateData() (io.ReadCloser, error) {\n\tif ih.cfg.Bool(\"ui.debug_mode\") {\n\t\treturn os.Open(\"./gateway/templates/index.html\")\n\t}\n\n\tmgr := parcello.ManagerAt(\"/\")\n\treturn mgr.Open(\"index.html\")\n}\n\nfunc (ih *IndexHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tfd, err := ih.loadTemplateData()\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"no index.html\")\n\t\treturn\n\t}\n\n\tdefer fd.Close()\n\n\tdata, err := ioutil.ReadAll(fd)\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"could not load template: %v\", err)\n\t\treturn\n\t}\n\n\tt, err := template.New(\"index\").Parse(string(data))\n\tif err != nil {\n\t\tlog.Errorf(\"could not parse template: %v\", err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"template contains errors\")\n\t\treturn\n\t}\n\n\twsScheme := \"ws://\"\n\tif r.TLS != nil {\n\t\twsScheme = \"wss://\"\n\t}\n\n\thttpScheme := \"http://\"\n\tif r.TLS != nil {\n\t\thttpScheme = \"https://\"\n\t}\n\n\terr = t.Execute(w, map[string]interface{}{\n\t\t\"csrfToken\": csrf.Token(r),\n\t\t\"wsAddr\":    wsScheme + r.Host + \"/events\",\n\t\t\"httpAddr\":  httpScheme + r.Host,\n\t})\n\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"could not execute template\")\n\t\treturn\n\t}\n}\n"
  },
  {
    "path": "gateway/endpoints/log.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// LogHandler implements http.Handler.\ntype LogHandler struct {\n\t*State\n}\n\n// NewLogHandler returns a new LogHandler\nfunc NewLogHandler(s *State) *LogHandler {\n\treturn &LogHandler{State: s}\n}\n\n// LogRequest is the data sent to this endpoint.\ntype LogRequest struct {\n\tOffset int64  `json:\"offset\"`\n\tLimit  int64  `json:\"limit\"`\n\tFilter string `json:\"filter\"`\n}\n\n// LogResponse is the response sent back to the client.\ntype LogResponse struct {\n\tSuccess           bool     `json:\"success\"`\n\tHaveStagedChanges bool     `json:\"have_staged_changes\"`\n\tCommits           []Commit `json:\"commits\"`\n}\n\nfunc matchCommit(cmt *catfs.Commit, filter string) bool {\n\treturn strings.Contains(strings.ToLower(cmt.Msg), filter)\n}\n\nfunc (lh *LogHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsView) {\n\t\treturn\n\t}\n\n\tlogReq := LogRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&logReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tstatus, err := lh.fs.CommitInfo(\"curr\")\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"could not get status\")\n\t\treturn\n\t}\n\n\tif logReq.Offset < 0 {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"negative offsets are not supported\")\n\t\treturn\n\t}\n\n\tif status.Index < logReq.Offset {\n\t\tjsonify(w, http.StatusOK, &LogResponse{\n\t\t\tSuccess: true,\n\t\t\tCommits: []Commit{},\n\t\t})\n\t\treturn\n\t}\n\n\tcommits := []Commit{}\n\terrSkip := errors.New(\"skip\")\n\tfilter := strings.ToLower(logReq.Filter)\n\thead := fmt.Sprintf(\"commit[%d]\", -(logReq.Offset + 1))\n\n\terr = lh.fs.Log(head, func(cmt *catfs.Commit) error {\n\t\tif filter != \"\" && !matchCommit(cmt, filter) {\n\t\t\treturn nil\n\t\t}\n\n\t\tif logReq.Limit >= 0 && int64(len(commits)) >= logReq.Limit {\n\t\t\treturn errSkip\n\t\t}\n\n\t\tcommits = append(commits, toExternalCommit(cmt))\n\t\treturn nil\n\t})\n\n\tif err != nil && err != errSkip {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to query log: %v\", err)\n\t\treturn\n\t}\n\n\thaveStagedChanges, err := lh.fs.HaveStagedChanges()\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to check staged state: %v\", err)\n\t\treturn\n\t}\n\n\tjsonify(w, http.StatusOK, &LogResponse{\n\t\tSuccess:           true,\n\t\tHaveStagedChanges: haveStagedChanges,\n\t\tCommits:           commits,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/log_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestLogEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Stage(\"/x\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"hello\"))\n\t\trequire.Nil(t, s.fs.Stage(\"/x\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"world\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/x\"))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"remove\"))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewLogHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/log\",\n\t\t\t&LogRequest{\n\t\t\t\tOffset: 0,\n\t\t\t\tLimit:  -1,\n\t\t\t\tFilter: \"\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := &LogResponse{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\t\trequire.Equal(t, 4, len(data.Commits))\n\n\t\trequire.Equal(t, \"\", data.Commits[0].Msg)\n\t\trequire.Equal(t, []string{\"curr\"}, data.Commits[0].Tags)\n\n\t\trequire.Equal(t, \"remove\", data.Commits[1].Msg)\n\t\trequire.Equal(t, []string{\"head\"}, data.Commits[1].Tags)\n\n\t\trequire.Equal(t, \"world\", data.Commits[2].Msg)\n\t\trequire.Equal(t, []string{}, data.Commits[2].Tags)\n\n\t\trequire.Equal(t, \"hello\", data.Commits[3].Msg)\n\t\trequire.Equal(t, []string{\"init\"}, data.Commits[3].Tags)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/login.go",
    "content": "package endpoints\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/gorilla/sessions\"\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nfunc getUserName(store *sessions.CookieStore, w http.ResponseWriter, r *http.Request) string {\n\tsess, err := store.Get(r, \"sess\")\n\tif err != nil {\n\t\tlog.Warningf(\"failed to get session: %v\", err)\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn \"\"\n\t}\n\n\tuserNameIf, ok := sess.Values[\"name\"]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\tuserName, ok := userNameIf.(string)\n\tif !ok {\n\t\tlog.Warningf(\"failed to convert user name to string: %v\", userNameIf)\n\t\thttp.Error(w, \"internal error\", http.StatusInternalServerError)\n\t\treturn \"\"\n\t}\n\n\treturn userName\n}\n\nfunc setSession(store *sessions.CookieStore, userName string, w http.ResponseWriter, r *http.Request) {\n\t// Ignore the error here, since it will usually trigger when there was a previously\n\t// outdated session that fails to decode. Since we overwrite the session anyways, it\n\t// doesn't really matter in this case.\n\tsess, _ := store.Get(r, \"sess\")\n\n\tisHTTPS := r.TLS != nil\n\tsess.Options = &sessions.Options{\n\t\tPath:     \"/\",\n\t\tMaxAge:   31 * 24 * 60 * 60,\n\t\tHttpOnly: true,\n\t\tSecure:   isHTTPS,\n\t}\n\n\tsess.Values[\"name\"] = userName\n\tif err := sess.Save(r, w); err != nil {\n\t\tlog.Warningf(\"set: failed to save session: %v\", err)\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn\n\t}\n}\n\nfunc clearSession(store *sessions.CookieStore, w http.ResponseWriter, r *http.Request) {\n\tsess, err := store.Get(r, \"sess\")\n\tif err != nil {\n\t\tlog.Warningf(\"failed to get session: %v\", err)\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\tsess.Options.MaxAge = -1\n\tif err := sess.Save(r, w); err != nil {\n\t\tlog.Warningf(\"clear: failed to save session: %v\", err)\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn\n\t}\n}\n\n///////\n\n// LoginHandler implements http.Handler\ntype LoginHandler struct {\n\t*State\n}\n\n// NewLoginHandler creates a new LoginHandler\nfunc NewLoginHandler(s *State) *LoginHandler {\n\treturn &LoginHandler{State: s}\n}\n\n// LoginRequest is the request sent as JSON to this endpoint.\ntype LoginRequest struct {\n\tUsername string `json:\"username\"`\n\tPassword string `json:\"password\"`\n}\n\n// LoginResponse is what the endpoint will return.\ntype LoginResponse struct {\n\tSuccess       bool     `json:\"success\"`\n\tUsername      string   `json:\"username\"`\n\tRights        []string `json:\"rights\"`\n\tIsAnon        bool     `json:\"is_anon\"`\n\tAnonIsAllowed bool     `json:\"anon_is_allowed\"`\n}\n\nfunc (lih *LoginHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tloginReq := LoginRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&loginReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tif loginReq.Username == \"\" || loginReq.Password == \"\" {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"empty password or username\")\n\t\treturn\n\t}\n\n\tdbUser, err := lih.userDb.Get(loginReq.Username)\n\tif err != nil {\n\t\t// No such user.\n\t\tjsonifyErrf(w, http.StatusForbidden, \"bad credentials\")\n\t\treturn\n\t}\n\n\tif dbUser.Name != loginReq.Username {\n\t\t// Bad username. Might be a problem on our side.\n\t\tjsonifyErrf(w, http.StatusForbidden, \"bad credentials\")\n\t\treturn\n\t}\n\n\tisValid, err := dbUser.CheckPassword(loginReq.Password)\n\tif err != nil || !isValid {\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"check password failed: %v\", err)\n\t\t}\n\n\t\tjsonifyErrf(w, http.StatusForbidden, \"bad credentials\")\n\t\treturn\n\t}\n\n\tanonIsAllowed := lih.cfg.Bool(\"auth.anon_allowed\")\n\tanonUserName := lih.cfg.String(\"auth.anon_user\")\n\n\tsetSession(lih.store, dbUser.Name, w, r)\n\tjsonify(w, http.StatusOK, &LoginResponse{\n\t\tSuccess:       true,\n\t\tUsername:      loginReq.Username,\n\t\tRights:        dbUser.Rights,\n\t\tIsAnon:        anonUserName == loginReq.Username,\n\t\tAnonIsAllowed: anonIsAllowed,\n\t})\n}\n\n///////\n\n// LogoutHandler implements http.Handler\ntype LogoutHandler struct {\n\t*State\n}\n\n// NewLogoutHandler returns a new LogoutHandler\nfunc NewLogoutHandler(s *State) *LogoutHandler {\n\treturn &LogoutHandler{State: s}\n}\n\nfunc (loh *LogoutHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tuser := getUserName(loh.store, w, r)\n\tif user == \"\" {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"not logged in\")\n\t\treturn\n\t}\n\n\tclearSession(loh.store, w, r)\n\tjsonifySuccess(w)\n}\n\n///////\n\n// WhoamiHandler implements http.Handler.\n// This handler checks if a user is already logged in.\ntype WhoamiHandler struct {\n\t*State\n}\n\n// NewWhoamiHandler returns a new WhoamiHandler.\nfunc NewWhoamiHandler(s *State) *WhoamiHandler {\n\treturn &WhoamiHandler{State: s}\n}\n\n// WhoamiResponse is the response sent back by this endpoint.\ntype WhoamiResponse struct {\n\tIsLoggedIn    bool     `json:\"is_logged_in\"`\n\tIsAnon        bool     `json:\"is_anon\"`\n\tAnonIsAllowed bool     `json:\"anon_is_allowed\"`\n\tUser          string   `json:\"user\"`\n\tRights        []string `json:\"rights\"`\n}\n\nfunc (wh *WhoamiHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\trights := []string{}\n\tisAnon := false\n\n\tanonIsAllowed := wh.cfg.Bool(\"auth.anon_allowed\")\n\tname := getUserName(wh.store, w, r)\n\n\tif name == \"\" && anonIsAllowed {\n\t\tisAnon = true\n\t\tname = wh.cfg.String(\"auth.anon_user\")\n\t}\n\n\tif name != \"\" {\n\t\tpossiblyAnonUser, err := wh.userDb.Get(name)\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"could not get user »%s« : %v\", name, err)\n\t\t} else {\n\t\t\trights = possiblyAnonUser.Rights\n\t\t\tsetSession(wh.store, name, w, r)\n\t\t}\n\t}\n\n\tjsonify(w, http.StatusOK, WhoamiResponse{\n\t\tIsLoggedIn:    len(name) > 0,\n\t\tIsAnon:        isAnon,\n\t\tAnonIsAllowed: anonIsAllowed,\n\t\tUser:          name,\n\t\tRights:        rights,\n\t})\n}\n\n///////\n\ntype authMiddleware struct {\n\t*State\n\tSubHandler http.Handler\n}\n\ntype dbUserKey string\n\nfunc (am *authMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tanonIsAllowed := am.cfg.Bool(\"auth.anon_allowed\")\n\tname := getUserName(am.store, w, r)\n\n\tif name == \"\" {\n\t\tif !anonIsAllowed {\n\t\t\t// invalid token.\n\t\t\tjsonifyErrf(w, http.StatusUnauthorized, \"not authorized\")\n\t\t\treturn\n\t\t}\n\n\t\tname = am.cfg.String(\"auth.anon_user\")\n\t}\n\n\tuser, err := am.userDb.Get(name)\n\tif err != nil {\n\t\t// valid token, but invalid user.\n\t\t// (user might have been deleted on our side)\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"not authorized\")\n\t\treturn\n\t}\n\n\tr = r.WithContext(\n\t\tcontext.WithValue(r.Context(), dbUserKey(\"brig.db_user\"),\n\t\t\tuser,\n\t\t),\n\t)\n\n\tam.SubHandler.ServeHTTP(w, r)\n}\n\nfunc checkRights(w http.ResponseWriter, r *http.Request, rights ...string) bool {\n\tuser, ok := r.Context().Value(dbUserKey(\"brig.db_user\")).(db.User)\n\n\tif !ok {\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"could not cast user\")\n\t\treturn false\n\t}\n\n\trmap := make(map[string]bool)\n\tfor _, right := range user.Rights {\n\t\trmap[right] = true\n\t}\n\n\tfor _, right := range rights {\n\t\tif !rmap[right] {\n\t\t\tjsonifyErrf(w, http.StatusUnauthorized, \"insufficient rights\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// AuthMiddleware returns a new handler wrapper, that will require\n// all calls to the respective handler to have a \"sess\" cookie with\n// a valid user name.\nfunc AuthMiddleware(s *State) func(http.Handler) http.Handler {\n\treturn func(h http.Handler) http.Handler {\n\t\treturn &authMiddleware{State: s, SubHandler: h}\n\t}\n}\n"
  },
  {
    "path": "gateway/endpoints/login_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype loginResponse struct {\n\tSuccess bool `json:\"success\"`\n}\n\nfunc TestLoginEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewLoginHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/login\",\n\t\t\t&LoginRequest{\n\t\t\t\tUsername: \"ali\",\n\t\t\t\tPassword: \"ila\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tloginResp := &loginResponse{}\n\t\tmustDecodeBody(t, resp.Body, &loginResp)\n\n\t\trequire.Equal(t, true, loginResp.Success)\n\t\tcookies := resp.Cookies()\n\t\trequire.Equal(t, \"sess\", cookies[0].Name)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/ls.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// LsHandler implements http.Handler.\ntype LsHandler struct {\n\t*State\n}\n\n// NewLsHandler returns a new LsHandler\nfunc NewLsHandler(s *State) *LsHandler {\n\treturn &LsHandler{State: s}\n}\n\n// LsRequest is the data that needs to be sent to this endpoint.\ntype LsRequest struct {\n\tRoot   string `json:\"root\"`\n\tFilter string `json:\"filter,omitempty\"`\n}\n\n// StatInfo is a single node in the list response.\n// It is the same as catfs.StatInfo, but is more JSON friendly\n// and omits some fields like hashes that are not useful to the client.\ntype StatInfo struct {\n\tPath       string `json:\"path\"`\n\tUser       string `json:\"user\"`\n\tSize       uint64 `json:\"size\"`\n\tInode      uint64 `json:\"inode\"`\n\tDepth      int    `json:\"depth\"`\n\tModTime    int64  `json:\"last_modified_ms\"`\n\tIsDir      bool   `json:\"is_dir\"`\n\tIsPinned   bool   `json:\"is_pinned\"`\n\tIsExplicit bool   `json:\"is_explicit\"`\n}\n\nfunc toExternalStatInfo(i *catfs.StatInfo) *StatInfo {\n\treturn &StatInfo{\n\t\tPath:       i.Path,\n\t\tUser:       i.User,\n\t\tSize:       i.Size,\n\t\tInode:      i.Inode,\n\t\tDepth:      i.Depth,\n\t\tModTime:    i.ModTime.Unix() * 1000,\n\t\tIsDir:      i.IsDir,\n\t\tIsPinned:   i.IsPinned,\n\t\tIsExplicit: i.IsExplicit,\n\t}\n}\n\n// LsResponse is the response sent back to the client.\ntype LsResponse struct {\n\tSuccess    bool        `json:\"success\"`\n\tSelf       *StatInfo   `json:\"self\"`\n\tFiles      []*StatInfo `json:\"files\"`\n\tIsFiltered bool        `json:\"is_filtered\"`\n}\n\nfunc doQuery(fs *catfs.FS, root, filter string) ([]*catfs.StatInfo, error) {\n\tif filter == \"\" {\n\t\treturn fs.List(root, 1)\n\t}\n\n\treturn fs.Filter(root, filter)\n}\n\nfunc (lh *LsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsView) {\n\t\treturn\n\t}\n\n\tlsReq := LsRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&lsReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\troot := prefixRoot(lsReq.Root)\n\tinfo, err := lh.fs.Stat(root)\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to stat root %s: %v\", root, err)\n\t\treturn\n\t}\n\n\titems, err := doQuery(lh.fs, root, lsReq.Filter)\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to query: %v\", err)\n\t\treturn\n\t}\n\n\tfiles := []*StatInfo{}\n\tfor _, item := range items {\n\t\tif !lh.pathIsVisible(item.Path, w, r) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfiles = append(files, toExternalStatInfo(item))\n\t}\n\n\t// Sort dirs before files and sort each part alphabetically\n\tsort.Slice(files, func(i, j int) bool {\n\t\tif files[i].IsDir != files[j].IsDir {\n\t\t\treturn files[i].IsDir\n\t\t}\n\n\t\treturn strings.ToLower(files[i].Path) < strings.ToLower(files[j].Path)\n\t})\n\n\tjsonify(w, http.StatusOK, &LsResponse{\n\t\tSuccess:    true,\n\t\tFiles:      files,\n\t\tIsFiltered: len(lsReq.Filter) > 0,\n\t\tSelf:       toExternalStatInfo(info),\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/ls_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestLsEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\texampleData := bytes.NewReader([]byte(\"Hello world\"))\n\t\trequire.Nil(t, s.fs.Stage(\"/hello/world.png\", exampleData))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewLsHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/ls\",\n\t\t\t&LsRequest{\n\t\t\t\tRoot: \"/\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tlsResp := &LsResponse{}\n\t\tmustDecodeBody(t, resp.Body, &lsResp)\n\n\t\trequire.Len(t, lsResp.Files, 1)\n\t\trequire.Equal(t, lsResp.Files[0].Path, \"/hello\")\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/mkdir.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// MkdirHandler implements http.Handler.\ntype MkdirHandler struct {\n\t*State\n}\n\n// NewMkdirHandler creates a new mkdir handler.\nfunc NewMkdirHandler(s *State) *MkdirHandler {\n\treturn &MkdirHandler{State: s}\n}\n\n// MkdirRequest is the request that can be sent to this endpoint as JSON.\ntype MkdirRequest struct {\n\t// Path to create.\n\tPath string `json:\"path\"`\n}\n\nfunc (mh *MkdirHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tmkdirReq := MkdirRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&mkdirReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tpath := prefixRoot(mkdirReq.Path)\n\tif !mh.validatePath(path, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\treturn\n\t}\n\n\tif err := mh.fs.Mkdir(path, true); err != nil {\n\t\tlog.Debugf(\"failed to mkdir %s: %v\", path, err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to mkdir\")\n\t\treturn\n\t}\n\n\tmsg := fmt.Sprintf(\"mkdir'd »%s«\", path)\n\tif !mh.commitChange(msg, w, r) {\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/mkdir_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype mkdirResponse struct {\n\tSuccess bool   `json:\"success\"`\n\tMessage string `json:\"message\"`\n}\n\nfunc TestMkdirEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewMkdirHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/mkdir\",\n\t\t\t&MkdirRequest{\n\t\t\t\tPath: \"/test\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tmkdirResp := &mkdirResponse{}\n\t\tmustDecodeBody(t, resp.Body, &mkdirResp)\n\t\trequire.Equal(t, true, mkdirResp.Success)\n\n\t\tinfo, err := s.fs.Stat(\"/test\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/test\", info.Path)\n\t})\n}\n\nfunc TestMkdirEndpointInvalidPath(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/something/else\")\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewMkdirHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/mkdir\",\n\t\t\t&MkdirRequest{\n\t\t\t\tPath: \"/test\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/move.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// MoveHandler implements http.Handler.\ntype MoveHandler struct {\n\t*State\n}\n\n// NewMoveHandler creates a new move handler.\nfunc NewMoveHandler(s *State) *MoveHandler {\n\treturn &MoveHandler{State: s}\n}\n\n// MoveRequest is the request that can be send to this endpoint.\ntype MoveRequest struct {\n\t// Source is the path to the old node.\n\tSource string `json:\"source\"`\n\t// Destination is the path of the new node.\n\tDestination string `json:\"destination\"`\n}\n\nfunc (mh *MoveHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tmoveReq := MoveRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&moveReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tsrc := prefixRoot(moveReq.Source)\n\tdst := prefixRoot(moveReq.Destination)\n\n\tif !mh.validatePath(src, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"source path forbidden\")\n\t\treturn\n\t}\n\n\tif !mh.validatePath(dst, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"destination path forbidden\")\n\t\treturn\n\t}\n\n\t// Move does some extended checking before actually moving the file:\n\tif err := mh.fs.Move(src, dst); err != nil {\n\t\tlog.Debugf(\"failed to move %s -> %s: %v\", src, dst, err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to move\")\n\t\treturn\n\t}\n\n\tmsg := fmt.Sprintf(\"moved »%s« to »%s« via gateway\", src, dst)\n\tif !mh.commitChange(msg, w, r) {\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/move_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype moveResponse struct {\n\tSuccess bool `json:\"success\"`\n}\n\nfunc TestMoveSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewMoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/move\",\n\t\t\t&MoveRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tmoveResp := &moveResponse{}\n\t\tmustDecodeBody(t, resp.Body, moveResp)\n\t\trequire.Equal(t, true, moveResp.Success)\n\n\t\t_, err := s.fs.Stat(\"/hinz\")\n\t\trequire.NotNil(t, err)\n\n\t\tkunzInfo, err := s.fs.Stat(\"/kunz\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/kunz\", kunzInfo.Path)\n\t})\n}\n\nfunc TestMoveDisallowedSource(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/kunz\")\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewMoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/move\",\n\t\t\t&MoveRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n\nfunc TestMoveDisallowedDest(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/hinz\")\n\t\trequire.Nil(t, s.fs.Mkdir(\"/hinz\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewMoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/move\",\n\t\t\t&MoveRequest{\n\t\t\t\tSource:      \"/hinz\",\n\t\t\t\tDestination: \"/kunz\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/pin.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// PinHandler implements http.Handler.\ntype PinHandler struct {\n\t*State\n\tdoPin bool\n}\n\n// NewPinHandler returns a new PinHandler\nfunc NewPinHandler(s *State) *PinHandler {\n\treturn &PinHandler{State: s, doPin: true}\n}\n\n// NewUnpinHandler returns a new PinHandler\nfunc NewUnpinHandler(s *State) *PinHandler {\n\treturn &PinHandler{State: s, doPin: false}\n}\n\n// PinRequest is the request that is being sent to the endpoint.\ntype PinRequest struct {\n\tPath     string `json:\"path\"`\n\tRevision string `json:\"revision\"`\n\tDoPin    bool   `json:\"do_pin\"`\n}\n\nfunc (ph *PinHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tpinReq := PinRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&pinReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tpath := prefixRoot(pinReq.Path)\n\tif !ph.validatePath(path, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\treturn\n\t}\n\n\t// Select the right operation:\n\top, name := ph.fs.Pin, \"pin\"\n\tif ph.doPin == false {\n\t\top, name = ph.fs.Unpin, \"unpin\"\n\t}\n\n\tif err := op(path, pinReq.Revision, true); err != nil {\n\t\tif !ie.IsNoSuchFileError(err) {\n\t\t\tlog.Debugf(\"failed to %s %s: %v\", name, path, err)\n\t\t\tjsonifyErrf(w, http.StatusBadRequest, fmt.Sprintf(\"failed to %s\", name))\n\t\t\treturn\n\t\t}\n\t}\n\n\tph.evHdl.Notify(r.Context(), \"pin\")\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/pin_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype pinResponse struct {\n\tSuccess bool   `json:\"success\"`\n\tMessage string `json:\"message\"`\n}\n\nfunc TestPinEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Touch(\"/file\"))\n\t\trequire.Nil(t, s.fs.Mkdir(\"/dir\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewPinHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/pin\",\n\t\t\t&PinRequest{\n\t\t\t\tPath:     \"/file\",\n\t\t\t\tRevision: \"curr\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tpinResp := &pinResponse{}\n\t\tmustDecodeBody(t, resp.Body, &pinResp)\n\t\trequire.Equal(t, true, pinResp.Success)\n\n\t\tstat, err := s.fs.Stat(\"/file\")\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, stat.IsPinned)\n\t\trequire.True(t, stat.IsExplicit)\n\n\t\tstat, err = s.fs.Stat(\"/dir\")\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, stat.IsPinned)\n\t\trequire.True(t, stat.IsExplicit)\n\t})\n}\n\nfunc TestPinEndpointForbidden(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/public\")\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewPinHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/pin\",\n\t\t\t&PinRequest{\n\t\t\t\tPath:     \"/file\",\n\t\t\t\tRevision: \"curr\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t\tpinResp := &pinResponse{}\n\t\tmustDecodeBody(t, resp.Body, &pinResp)\n\t\trequire.Equal(t, false, pinResp.Success)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/ping.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n)\n\n// PingHandler implements http.Handler.\n// This handler checks if a user is already logged in.\ntype PingHandler struct {\n\t*State\n}\n\n// NewPingHandler returns a new PingHandler.\nfunc NewPingHandler(s *State) *PingHandler {\n\treturn &PingHandler{State: s}\n}\n\n// PingResponse is the response sent back by this endpoint.\ntype PingResponse struct {\n\tIsOnline bool `json:\"is_online\"`\n}\n\nfunc (wh *PingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tjsonify(w, http.StatusOK, PingResponse{\n\t\tIsOnline: true,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/ping_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPingEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewPingHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/ping\",\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tpingResp := &PingResponse{}\n\t\tmustDecodeBody(t, resp.Body, &pingResp)\n\t\trequire.Equal(t, true, pingResp.IsOnline)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/redirect.go",
    "content": "package endpoints\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// RedirHandler implements http.Handler.\n// It redirects all of its requests to the respective https:// route.\ntype RedirHandler struct {\n\tredirPort int64\n}\n\n// NewHTTPRedirectHandler returns a new RedirHandler\nfunc NewHTTPRedirectHandler(redirPort int64) *RedirHandler {\n\treturn &RedirHandler{\n\t\tredirPort: redirPort,\n\t}\n}\n\nfunc (rh *RedirHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {\n\t// remove/add not default ports from req.Host\n\thost, _, err := net.SplitHostPort(req.Host)\n\tif err != nil {\n\t\thttp.Error(w, \"invalid request\", http.StatusBadRequest)\n\t\treturn\n\t}\n\n\ttarget := fmt.Sprintf(\"https://%s:%d%s\", host, rh.redirPort, req.URL.Path)\n\tif len(req.URL.RawQuery) > 0 {\n\t\ttarget += \"?\" + req.URL.RawQuery\n\t}\n\n\tlog.Debugf(\"redirect to: %s\", target)\n\thttp.Redirect(w, req, target, http.StatusTemporaryRedirect)\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_add.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/brig/net/peer\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// RemotesAddHandler implements http.Handler\ntype RemotesAddHandler struct {\n\t*State\n}\n\n// NewRemotesAddHandler returns a new RemotesAddHandler\nfunc NewRemotesAddHandler(s *State) *RemotesAddHandler {\n\treturn &RemotesAddHandler{State: s}\n}\n\n// RemoteAddRequest is the data being sent to this endpoint.\ntype RemoteAddRequest struct {\n\tName              string              `json:\"name\"`\n\tFolders           []remotesapi.Folder `json:\"folders\"`\n\tFingerprint       string              `json:\"fingerprint\"`\n\tAcceptAutoUpdates bool                `json:\"accept_auto_updates\"`\n\tAcceptPush        bool                `json:\"accept_push\"`\n\tConflictStrategy  string              `json:\"conflict_strategy\"`\n}\n\nfunc dedupeFolders(folders []remotesapi.Folder) []remotesapi.Folder {\n\tseen := make(map[string]bool)\n\tdeduped := []remotesapi.Folder{}\n\n\tfor _, folder := range folders {\n\t\tpath := folder.Folder\n\t\tif !strings.HasPrefix(path, \"/\") {\n\t\t\tpath = \"/\" + path\n\t\t}\n\n\t\tif seen[path] {\n\t\t\tcontinue\n\t\t}\n\n\t\tdeduped = append(deduped, folder)\n\t\tseen[path] = true\n\t}\n\n\treturn deduped\n}\n\nfunc validateFingerprint(fingerprint string, w http.ResponseWriter, r *http.Request) bool {\n\tif _, err := peer.CastFingerprint(fingerprint); err != nil {\n\t\tlog.Debugf(\"invalid fingerprint: %v\", err)\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad fingerprint format\")\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc readRemoteRequest(w http.ResponseWriter, r *http.Request) (*remotesapi.Remote, error) {\n\tif !checkRights(w, r, db.RightRemotesEdit) {\n\t\treturn nil, fmt.Errorf(\"bad rights\")\n\t}\n\n\tremoteAddReq := RemoteAddRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&remoteAddReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn nil, fmt.Errorf(\"bad json\")\n\t}\n\n\tif !validateFingerprint(remoteAddReq.Fingerprint, w, r) {\n\t\treturn nil, fmt.Errorf(\"bad fingerprint\")\n\t}\n\n\treturn &remotesapi.Remote{\n\t\tName:              remoteAddReq.Name,\n\t\tFolders:           dedupeFolders(remoteAddReq.Folders),\n\t\tFingerprint:       remoteAddReq.Fingerprint,\n\t\tAcceptAutoUpdates: remoteAddReq.AcceptAutoUpdates,\n\t\tAcceptPush:        remoteAddReq.AcceptPush,\n\t\tConflictStrategy:  remoteAddReq.ConflictStrategy,\n\t}, nil\n}\n\nfunc (rh *RemotesAddHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\trmt, err := readRemoteRequest(w, r)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif _, err := rh.rapi.Get(rmt.Name); err == nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"remote does exist already\")\n\t\treturn\n\t}\n\n\tif err := rh.rapi.Set(*rmt); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to add\")\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n\n//////////////\n\n// RemotesModifyHandler implements http.Handler\ntype RemotesModifyHandler struct {\n\t*State\n}\n\n// NewRemotesModifyHandler returns a new RemotesModifyHandler\nfunc NewRemotesModifyHandler(s *State) *RemotesModifyHandler {\n\treturn &RemotesModifyHandler{State: s}\n}\n\nfunc (rh *RemotesModifyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\trmt, err := readRemoteRequest(w, r)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif _, err := rh.rapi.Get(rmt.Name); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"remote does not exist yet\")\n\t\treturn\n\t}\n\n\tif err := rh.rapi.Set(*rmt); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to add\")\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_add_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nconst (\n\tTestFingerprint = \"QmgtEcRda8Nm4RMHQCBzGGXBE2zjQqvDXHfEye1zay3f1w:W1fKKbqVAUhEXkC3yoJ92fKK1aWAuVYMmneUUvUQdDRbMq\"\n)\n\nfunc TestRemoteAddEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesAddHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/add\",\n\t\t\t&RemoteAddRequest{\n\t\t\t\tName:              \"bob\",\n\t\t\t\tFolders:           nil,\n\t\t\t\tFingerprint:       TestFingerprint,\n\t\t\t\tAcceptAutoUpdates: true,\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := struct {\n\t\t\tSuccess bool `json:\"success\"`\n\t\t}{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\n\t\trmt, err := s.State.rapi.Get(\"bob\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"bob\", rmt.Name)\n\t\trequire.Equal(t, TestFingerprint, rmt.Fingerprint)\n\t\trequire.Equal(t, true, rmt.AcceptAutoUpdates)\n\t})\n}\n\nfunc TestRemoteModifyEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:        \"bob\",\n\t\t\tFingerprint: TestFingerprint + \"xxx\",\n\t\t\tFolders: []remotesapi.Folder{\n\t\t\t\t{\n\t\t\t\t\tFolder:           \"/public\",\n\t\t\t\t\tReadOnly:         false,\n\t\t\t\t\tConflictStrategy: \"\",\n\t\t\t\t},\n\t\t\t},\n\t\t}))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesModifyHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/modify\",\n\t\t\t&RemoteAddRequest{\n\t\t\t\tName:              \"bob\",\n\t\t\t\tFolders:           nil,\n\t\t\t\tFingerprint:       TestFingerprint,\n\t\t\t\tAcceptAutoUpdates: true,\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := struct {\n\t\t\tSuccess bool `json:\"success\"`\n\t\t}{}\n\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\n\t\trmt, err := s.State.rapi.Get(\"bob\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"bob\", rmt.Name)\n\t\trequire.Equal(t, TestFingerprint, rmt.Fingerprint)\n\t\trequire.Equal(t, true, rmt.AcceptAutoUpdates)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_diff.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// RemotesDiffHandler implements http.Handler\ntype RemotesDiffHandler struct {\n\t*State\n}\n\n// NewRemotesDiffHandler returns a new RemotesDiffHandler\nfunc NewRemotesDiffHandler(s *State) *RemotesDiffHandler {\n\treturn &RemotesDiffHandler{State: s}\n}\n\n// RemoteDiffRequest is the data being sent to this endpoint.\ntype RemoteDiffRequest struct {\n\tName string `json:\"name\"`\n}\n\n// DiffPair is like catfs.DiffPair, but with some\n// fields removed and with json instructions.\ntype DiffPair struct {\n\tSrc *StatInfo `json:\"src\"`\n\tDst *StatInfo `json:\"dst\"`\n}\n\n// Diff is like catfs.Diff, but json-ized.\ntype Diff struct {\n\tAdded    []*StatInfo `json:\"added\"`\n\tRemoved  []*StatInfo `json:\"removed\"`\n\tIgnored  []*StatInfo `json:\"ignored\"`\n\tMissing  []*StatInfo `json:\"missing\"`\n\tConflict []DiffPair  `json:\"conflict\"`\n\tMoved    []DiffPair  `json:\"moved\"`\n\tMerged   []DiffPair  `json:\"merged\"`\n}\n\n// RemoteDiffResponse is the data being sent to this endpoint.\ntype RemoteDiffResponse struct {\n\tSuccess bool  `json:\"success\"`\n\tDiff    *Diff `json:\"diff\"`\n}\n\nfunc convertSingles(infos []catfs.StatInfo) []*StatInfo {\n\tresult := []*StatInfo{}\n\tfor _, info := range infos {\n\t\tresult = append(result, toExternalStatInfo(&info))\n\t}\n\n\treturn result\n}\n\nfunc convertPairs(pairs []catfs.DiffPair) []DiffPair {\n\tresult := []DiffPair{}\n\tfor _, pair := range pairs {\n\t\tresult = append(result, DiffPair{\n\t\t\tSrc: toExternalStatInfo(&pair.Src),\n\t\t\tDst: toExternalStatInfo(&pair.Dst),\n\t\t})\n\t}\n\n\treturn result\n\n}\n\nfunc (rh *RemotesDiffHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightRemotesView) {\n\t\treturn\n\t}\n\n\trmtDiffReq := RemoteDiffRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&rmtDiffReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tif rmtDiffReq.Name == \"\" {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"empty remote name\")\n\t\treturn\n\t}\n\n\trawDiff, err := rh.rapi.MakeDiff(rmtDiffReq.Name)\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to diff\")\n\t\treturn\n\t}\n\n\tdiff := &Diff{\n\t\tAdded:    convertSingles(rawDiff.Added),\n\t\tRemoved:  convertSingles(rawDiff.Removed),\n\t\tIgnored:  convertSingles(rawDiff.Ignored),\n\t\tMissing:  convertSingles(rawDiff.Missing),\n\t\tConflict: convertPairs(rawDiff.Conflict),\n\t\tMoved:    convertPairs(rawDiff.Moved),\n\t\tMerged:   convertPairs(rawDiff.Merged),\n\t}\n\n\tjsonify(w, http.StatusOK, RemoteDiffResponse{\n\t\tSuccess: true,\n\t\tDiff:    diff,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_diff_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRemoteDiffEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:        \"bob\",\n\t\t\tFingerprint: \"xxx\",\n\t\t}))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesDiffHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/diff\",\n\t\t\tRemoteDiffRequest{\n\t\t\t\tName: \"bob\",\n\t\t\t},\n\t\t)\n\n\t\tdata := &RemoteDiffResponse{}\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\n\t\trequire.Equal(t, 2, len(data.Diff.Added))\n\t\trequire.Equal(t, \"/new_dir\", data.Diff.Added[0].Path)\n\t\trequire.Equal(t, \"/new_file\", data.Diff.Added[1].Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Removed))\n\t\trequire.Equal(t, \"/removed_file\", data.Diff.Removed[0].Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Ignored))\n\t\trequire.Equal(t, \"/ignored\", data.Diff.Ignored[0].Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Missing))\n\t\trequire.Equal(t, \"/missing\", data.Diff.Missing[0].Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Conflict))\n\t\trequire.Equal(t, \"/conflict_src\", data.Diff.Conflict[0].Src.Path)\n\t\trequire.Equal(t, \"/conflict_dst\", data.Diff.Conflict[0].Dst.Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Moved))\n\t\trequire.Equal(t, \"/moved_src\", data.Diff.Moved[0].Src.Path)\n\t\trequire.Equal(t, \"/moved_dst\", data.Diff.Moved[0].Dst.Path)\n\n\t\trequire.Equal(t, 1, len(data.Diff.Merged))\n\t\trequire.Equal(t, \"/merged_src\", data.Diff.Merged[0].Src.Path)\n\t\trequire.Equal(t, \"/merged_dst\", data.Diff.Merged[0].Dst.Path)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_list.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"sort\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n)\n\n// RemoteListHandler implements http.Handler\ntype RemoteListHandler struct {\n\t*State\n}\n\n// NewRemotesListHandler returns a new RemoteListHandler\nfunc NewRemotesListHandler(s *State) *RemoteListHandler {\n\treturn &RemoteListHandler{State: s}\n}\n\n// RemoteListResponse is the response given by this endpoint.\ntype RemoteListResponse struct {\n\tSuccess bool                 `json:\"success\"`\n\tRemotes []*remotesapi.Remote `json:\"remotes\"`\n}\n\nfunc (rh *RemoteListHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightRemotesView) {\n\t\treturn\n\t}\n\n\trmts, err := rh.rapi.List()\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tsort.Slice(rmts, func(i, j int) bool {\n\t\treturn rmts[i].Name < rmts[j].Name\n\t})\n\n\tjsonify(w, http.StatusOK, &RemoteListResponse{\n\t\tSuccess: true,\n\t\tRemotes: rmts,\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_list_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRemoteListEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:        \"bob\",\n\t\t\tFingerprint: \"xxx\",\n\t\t}))\n\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:              \"charlie\",\n\t\t\tFingerprint:       \"yyy\",\n\t\t\tAcceptAutoUpdates: true,\n\t\t\tFolders: []remotesapi.Folder{\n\t\t\t\t{\n\t\t\t\t\tFolder:           \"/public\",\n\t\t\t\t\tReadOnly:         false,\n\t\t\t\t\tConflictStrategy: \"\",\n\t\t\t\t},\n\t\t\t},\n\t\t}))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesListHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/list\",\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := &RemoteListResponse{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\n\t\trequire.Equal(t, true, data.Success)\n\t\trequire.Equal(t, 2, len(data.Remotes))\n\t\trequire.Equal(t, \"bob\", data.Remotes[0].Name)\n\t\trequire.Equal(t, \"xxx\", data.Remotes[0].Fingerprint)\n\t\trequire.Equal(t, false, data.Remotes[0].AcceptAutoUpdates)\n\n\t\trequire.Equal(t, \"charlie\", data.Remotes[1].Name)\n\t\trequire.Equal(t, \"yyy\", data.Remotes[1].Fingerprint)\n\t\trequire.Equal(t, true, data.Remotes[1].AcceptAutoUpdates)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_remove.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// RemotesRemoveHandler implements http.Handler\ntype RemotesRemoveHandler struct {\n\t*State\n}\n\n// NewRemotesRemoveHandler returns a new RemotesRemoveHandler\nfunc NewRemotesRemoveHandler(s *State) *RemotesRemoveHandler {\n\treturn &RemotesRemoveHandler{State: s}\n}\n\n// RemoteRemoveRequest is the data being sent to this endpoint.\ntype RemoteRemoveRequest struct {\n\tName string `json:\"name\"`\n}\n\nfunc (rh *RemotesRemoveHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightRemotesEdit) {\n\t\treturn\n\t}\n\n\trmtRmReq := RemoteRemoveRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&rmtRmReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tif rmtRmReq.Name == \"\" {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"empty remote name\")\n\t\treturn\n\t}\n\n\tif err := rh.rapi.Remove(rmtRmReq.Name); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to remove remote\")\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_remove_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRemoteRemoveEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:        \"bob\",\n\t\t\tFingerprint: \"xxx\",\n\t\t}))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesRemoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/remove\",\n\t\t\tRemoteRemoveRequest{\n\t\t\t\tName: \"bob\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tdata := struct {\n\t\t\tSuccess bool `json:\"success\"`\n\t\t}{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\n\t\tresp = s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesRemoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/remove\",\n\t\t\tRemoteRemoveRequest{\n\t\t\t\tName: \"bob\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusBadRequest, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_self.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n)\n\n// RemoteSelfHandler implements http.Handler\ntype RemoteSelfHandler struct {\n\t*State\n}\n\n// NewRemotesSelfHandler returns a new RemoteSelfHandler\nfunc NewRemotesSelfHandler(s *State) *RemoteSelfHandler {\n\treturn &RemoteSelfHandler{State: s}\n}\n\n// RemoteSelfResponse is the data being sent to this endpoint.\ntype RemoteSelfResponse struct {\n\tSuccess                 bool                `json:\"success\"`\n\tSelf                    remotesapi.Identity `json:\"self\"`\n\tDefaultConflictStrategy string              `json:\"default_conflict_strategy\"`\n}\n\nfunc (rh *RemoteSelfHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightRemotesView) {\n\t\treturn\n\t}\n\n\tself, err := rh.rapi.Self()\n\tif err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to get self\")\n\t\treturn\n\t}\n\n\tjsonify(w, http.StatusOK, RemoteSelfResponse{\n\t\tSuccess:                 true,\n\t\tSelf:                    self,\n\t\tDefaultConflictStrategy: \"marker\",\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_self_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRemoteSelfEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesSelfHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/self\",\n\t\t\tnil,\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tdata := &RemoteSelfResponse{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\t\trequire.Equal(t, \"ali\", data.Self.Name)\n\t\trequire.Equal(t, \"alisfingerprint\", data.Self.Fingerprint)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_sync.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n)\n\n// RemotesSyncHandler implements http.Handler\ntype RemotesSyncHandler struct {\n\t*State\n}\n\n// NewRemotesSyncHandler returns a new RemotesSyncHandler\nfunc NewRemotesSyncHandler(s *State) *RemotesSyncHandler {\n\treturn &RemotesSyncHandler{State: s}\n}\n\n// RemoteSyncRequest is the data being sent to this endpoint.\ntype RemoteSyncRequest struct {\n\tName string `json:\"name\"`\n}\n\nfunc (rh *RemotesSyncHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightRemotesEdit, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\trmtSyncReq := RemoteSyncRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&rmtSyncReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tif rmtSyncReq.Name == \"\" {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"empty remote name\")\n\t\treturn\n\t}\n\n\tif err := rh.rapi.Sync(rmtSyncReq.Name); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to sync\")\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/remotes_sync_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestRemoteSyncEndpoint(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.State.rapi.Set(remotesapi.Remote{\n\t\t\tName:        \"bob\",\n\t\t\tFingerprint: \"xxx\",\n\t\t}))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemotesSyncHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remotes/sync\",\n\t\t\tRemoteSyncRequest{\n\t\t\t\tName: \"bob\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tdata := struct {\n\t\t\tSuccess bool `json:\"success\"`\n\t\t}{}\n\t\tmustDecodeBody(t, resp.Body, &data)\n\t\trequire.Equal(t, true, data.Success)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/remove.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// RemoveHandler implements http.Handler.\ntype RemoveHandler struct {\n\t*State\n}\n\n// NewRemoveHandler returns a new RemoveHandler\nfunc NewRemoveHandler(s *State) *RemoveHandler {\n\treturn &RemoveHandler{State: s}\n}\n\n// RemoveRequest is the request that is being sent to the endpoint.\ntype RemoveRequest struct {\n\tPaths []string `json:\"paths\"`\n}\n\nfunc (rh *RemoveHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\trmReq := RemoveRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&rmReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tfor _, path := range rmReq.Paths {\n\t\tpath = prefixRoot(path)\n\t\tif !rh.validatePath(path, w, r) {\n\t\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tpaths := []string{}\n\tfor _, path := range rmReq.Paths {\n\t\tpath = prefixRoot(path)\n\t\tif err := rh.fs.Remove(path); err != nil {\n\t\t\tlog.Debugf(\"failed to remove %s: %v\", path, err)\n\t\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to remove\")\n\t\t\treturn\n\t\t}\n\n\t\tpaths = append(paths, path)\n\t}\n\n\tif len(paths) > 0 {\n\t\tmsg := fmt.Sprintf(\"removed »%s«\", paths[0])\n\t\tif len(paths) > 1 {\n\t\t\tmsg += fmt.Sprintf(\" and %d others\", len(paths)-1)\n\t\t}\n\n\t\tif !rh.commitChange(msg, w, r) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/remove_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype removeResponse struct {\n\tSuccess bool   `json:\"success\"`\n\tMessage string `json:\"message\"`\n}\n\nfunc TestRemoveEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Touch(\"/file\"))\n\t\trequire.Nil(t, s.fs.Mkdir(\"/dir\", true))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remove\",\n\t\t\t&RemoveRequest{\n\t\t\t\tPaths: []string{\"/file\", \"/dir\"},\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tremoveResp := &removeResponse{}\n\t\tmustDecodeBody(t, resp.Body, &removeResp)\n\t\trequire.Equal(t, true, removeResp.Success)\n\n\t\t_, err := s.fs.Stat(\"/file\")\n\t\trequire.NotNil(t, err)\n\n\t\t_, err = s.fs.Stat(\"/dir\")\n\t\trequire.NotNil(t, err)\n\t})\n}\n\nfunc TestRemoveEndpointForbidden(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/public\")\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewRemoveHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/remove\",\n\t\t\t&RemoveRequest{\n\t\t\t\tPaths: []string{\"/file\", \"/dir\"},\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t\tremoveResp := &removeResponse{}\n\t\tmustDecodeBody(t, resp.Body, &removeResp)\n\t\trequire.Equal(t, false, removeResp.Success)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/reset.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// ResetHandler implements http.Handler.\ntype ResetHandler struct {\n\t*State\n}\n\n// NewResetHandler returns a new ResetHandler.\nfunc NewResetHandler(s *State) *ResetHandler {\n\treturn &ResetHandler{State: s}\n}\n\n// ResetRequest is a request sent to this endpoint.\ntype ResetRequest struct {\n\tPath     string `json:\"path\"`\n\tRevision string `json:\"revision\"`\n\tForce    bool   `json:\"force\"`\n}\n\nfunc (rh *ResetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tresetReq := ResetRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&resetReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tpath := prefixRoot(resetReq.Path)\n\tif !rh.validatePath(path, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\treturn\n\t}\n\n\tvar err error\n\tif resetReq.Path == \"/\" {\n\t\terr = rh.fs.Checkout(resetReq.Revision, true)\n\t} else {\n\t\terr = rh.fs.Reset(path, resetReq.Revision)\n\t}\n\n\tlog.Debugf(\"reset %s to %s\", path, resetReq.Revision)\n\tif err != nil {\n\t\tlog.Debugf(\"failed to reset %s to %s: %v\", path, resetReq.Revision, err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to reset\")\n\t\treturn\n\t}\n\n\tmsg := fmt.Sprintf(\"reverted »%s« to »%s«\", path, resetReq.Revision)\n\tif !rh.commitChange(msg, w, r) {\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/reset_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype resetResponse struct {\n\tSuccess bool   `json:\"success\"`\n\tMessage string `json:\"message\"`\n}\n\nfunc TestResetSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Stage(\"/file\", bytes.NewReader([]byte(\"hello\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"add\"))\n\t\trequire.Nil(t, s.fs.Stage(\"/file\", bytes.NewReader([]byte(\"world\"))))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"modify\"))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewResetHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/reset\",\n\t\t\t&ResetRequest{\n\t\t\t\tPath:     \"/file\",\n\t\t\t\tRevision: \"init\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tresetResp := &resetResponse{}\n\t\tmustDecodeBody(t, resp.Body, &resetResp)\n\t\trequire.Equal(t, true, resetResp.Success)\n\n\t\tstream, err := s.fs.Cat(\"/file\")\n\t\trequire.Nil(t, err)\n\n\t\tdata, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte(\"hello\"), data)\n\t})\n}\n\nfunc TestResetForbidden(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/public\")\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewResetHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/reset\",\n\t\t\t&ResetRequest{\n\t\t\t\tPath:     \"/file\",\n\t\t\t\tRevision: \"init\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\n\t\tresetResp := &resetResponse{}\n\t\tmustDecodeBody(t, resp.Body, &resetResp)\n\t\trequire.Equal(t, false, resetResp.Success)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/testing.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/config\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nconst (\n\ttestGwUser = \"ali\"\n)\n\ntype testState struct {\n\t*State\n}\n\nfunc withState(t *testing.T, fn func(state *testState)) {\n\ttmpDir, err := ioutil.TempDir(\"\", \"brig-endpoints-test-userdb\")\n\trequire.Nil(t, err)\n\n\tdefer func() {\n\t\tos.RemoveAll(tmpDir)\n\t}()\n\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\trequire.Nil(t, err)\n\n\tfs, err := catfs.NewFilesystem(\n\t\tcatfs.NewMemFsBackend(),\n\t\tfilepath.Join(tmpDir, \"fs\"),\n\t\ttestGwUser,\n\t\tfalse,\n\t\tcfg.Section(\"fs\"),\n\t\tnil,\n\t\tnil,\n\t)\n\trequire.Nil(t, err)\n\n\tdbPath := filepath.Join(tmpDir, \"user\")\n\n\trapi := remotesapi.NewMock(\"ali\", \"alisfingerprint\")\n\tuserDb, err := db.NewUserDatabase(dbPath)\n\trequire.Nil(t, err)\n\n\tstate, err := NewState(\n\t\tfs,\n\t\trapi,\n\t\tcfg.Section(\"gateway\"),\n\t\tNewEventsHandler(rapi, nil),\n\t\tnil,\n\t\tuserDb,\n\t)\n\n\trequire.Nil(t, err)\n\n\tstate.UserDatabase().Add(\"ali\", \"ila\", nil, nil)\n\tfn(&testState{state})\n\n\trequire.NoError(t, state.Close())\n\trequire.NoError(t, state.fs.Close())\n\trequire.NoError(t, userDb.Close())\n}\n\nfunc mustEncodeBody(t *testing.T, v interface{}) io.Reader {\n\tbuf := &bytes.Buffer{}\n\trequire.Nil(t, json.NewEncoder(buf).Encode(v))\n\treturn buf\n}\n\nfunc mustDecodeBody(t *testing.T, body io.Reader, v interface{}) {\n\tdata, err := ioutil.ReadAll(body)\n\trequire.Nil(t, err)\n\trequire.Nil(t, json.NewDecoder(bytes.NewReader(data)).Decode(v))\n}\n\nfunc (s *testState) mustRun(t *testing.T, hdl http.Handler, verb, url string, jsonBody interface{}) *http.Response {\n\treq := httptest.NewRequest(verb, url, mustEncodeBody(t, jsonBody))\n\trsw := httptest.NewRecorder()\n\n\tuser, err := s.userDb.Get(\"ali\")\n\trequire.Nil(t, err)\n\n\treq = req.WithContext(context.WithValue(req.Context(), dbUserKey(\"brig.db_user\"), user))\n\tsetSession(s.store, \"ali\", rsw, req)\n\thdl.ServeHTTP(rsw, req)\n\treturn rsw.Result()\n}\n\nfunc (s *testState) mustChangeFolders(t *testing.T, folders ...string) {\n\trequire.Nil(t, s.userDb.Remove(\"ali\"))\n\trequire.Nil(t, s.userDb.Add(\"ali\", \"ila\", folders, nil))\n}\n"
  },
  {
    "path": "gateway/endpoints/undelete.go",
    "content": "package endpoints\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// UndeleteHandler implements http.Handler.\ntype UndeleteHandler struct {\n\t*State\n}\n\n// NewUndeleteHandler creates a new undelete handler.\nfunc NewUndeleteHandler(s *State) *UndeleteHandler {\n\treturn &UndeleteHandler{State: s}\n}\n\n// UndeleteRequest is the request that can be sent to this endpoint as JSON.\ntype UndeleteRequest struct {\n\t// Path to create.\n\tPath string `json:\"path\"`\n}\n\nfunc (uh *UndeleteHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\treturn\n\t}\n\n\tundelReq := UndeleteRequest{}\n\tif err := json.NewDecoder(r.Body).Decode(&undelReq); err != nil {\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"bad json\")\n\t\treturn\n\t}\n\n\tpath := prefixRoot(undelReq.Path)\n\tif !uh.validatePath(path, w, r) {\n\t\tjsonifyErrf(w, http.StatusUnauthorized, \"path forbidden\")\n\t\treturn\n\t}\n\n\tif err := uh.fs.Undelete(path); err != nil {\n\t\tlog.Debugf(\"failed to undelete %s: %v\", path, err)\n\t\tfmt.Println(err)\n\t\tjsonifyErrf(w, http.StatusInternalServerError, \"failed to undelete\")\n\t\treturn\n\t}\n\n\tmsg := fmt.Sprintf(\"undeleted »%s«\", path)\n\tif !uh.commitChange(msg, w, r) {\n\t\treturn\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/undelete_test.go",
    "content": "package endpoints\n\nimport (\n\t\"net/http\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype undeleteResponse struct {\n\tSuccess bool   `json:\"success\"`\n\tMessage string `json:\"message\"`\n}\n\nfunc TestUndeleteEndpointSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Touch(\"/test\"))\n\t\trequire.Nil(t, s.fs.Touch(\"/dir\"))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"create\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/test\"))\n\t\trequire.Nil(t, s.fs.Remove(\"/dir\"))\n\t\trequire.Nil(t, s.fs.MakeCommit(\"remove\"))\n\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewUndeleteHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/undelete\",\n\t\t\t&UndeleteRequest{\n\t\t\t\tPath: \"/test\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\n\t\tundeleteResp := &undeleteResponse{}\n\t\tmustDecodeBody(t, resp.Body, &undeleteResp)\n\t\trequire.Equal(t, true, undeleteResp.Success)\n\n\t\tinfo, err := s.fs.Stat(\"/test\")\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, \"/test\", info.Path)\n\t\trequire.Equal(t, false, info.IsDir)\n\t})\n}\n\nfunc TestUndeleteEndpointInvalidPath(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/something/else\")\n\t\tresp := s.mustRun(\n\t\t\tt,\n\t\t\tNewUndeleteHandler(s.State),\n\t\t\t\"POST\",\n\t\t\t\"http://localhost:5000/api/v0/undelete\",\n\t\t\t&UndeleteRequest{\n\t\t\t\tPath: \"/test\",\n\t\t\t},\n\t\t)\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/upload.go",
    "content": "package endpoints\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"path\"\n\n\t\"github.com/sahib/brig/gateway/db\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// UploadHandler implements http.Handler.\ntype UploadHandler struct {\n\t*State\n}\n\n// NewUploadHandler returns a new UploadHandler.\nfunc NewUploadHandler(s *State) *UploadHandler {\n\treturn &UploadHandler{State: s}\n}\n\nfunc (uh *UploadHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tif !checkRights(w, r, db.RightFsEdit) {\n\t\tfmt.Println(\"BAD RIGHTS\")\n\t\treturn\n\t}\n\n\troot := r.URL.Query().Get(\"root\")\n\tif root == \"\" {\n\t\troot = \"/\"\n\t} else {\n\t\troot = prefixRoot(root)\n\t}\n\n\tif err := r.ParseMultipartForm(1 * 1024 * 1024); err != nil {\n\t\tlog.Debugf(\"upload: bad multipartform: %v\", err)\n\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to parse mutlipart form: %v\", err)\n\t\treturn\n\t}\n\n\t// Remove the cached files in /tmp\n\tdefer r.MultipartForm.RemoveAll()\n\n\tpaths := []string{}\n\n\tfor _, headers := range r.MultipartForm.File {\n\t\tfor _, header := range headers {\n\t\t\tpath := path.Join(root, header.Filename)\n\t\t\tfd, err := header.Open()\n\t\t\tif err != nil {\n\t\t\t\tlog.Debugf(\"upload: bad header: %v\", err)\n\t\t\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to open file: %v\", header.Filename)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !uh.validatePath(path, w, r) {\n\t\t\t\tjsonifyErrf(w, http.StatusUnauthorized, \"unauthorized\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif err := uh.fs.Stage(path, fd); err != nil {\n\t\t\t\tlog.Debugf(\"upload: could not stage: %v\", err)\n\t\t\t\tjsonifyErrf(w, http.StatusBadRequest, \"failed to insert file: %v\", path)\n\t\t\t\tfd.Close()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tpaths = append(paths, path)\n\t\t\tfd.Close()\n\t\t}\n\t}\n\n\tif len(paths) > 0 {\n\t\tmsg := fmt.Sprintf(\"uploaded »%s«\", paths[0])\n\t\tif len(paths) > 1 {\n\t\t\tmsg += fmt.Sprintf(\" and %d more\", len(paths)-1)\n\t\t}\n\n\t\tif !uh.commitChange(msg, w, r) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tjsonifySuccess(w)\n}\n"
  },
  {
    "path": "gateway/endpoints/upload_test.go",
    "content": "package endpoints\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"io/ioutil\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/url\"\n\t\"path\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc mustDoUpload(t *testing.T, s *testState, name string, data []byte) *http.Response {\n\tbody := &bytes.Buffer{}\n\twriter := multipart.NewWriter(body)\n\tpart, err := writer.CreateFormFile(\"file\", path.Base(name))\n\trequire.Nil(t, err)\n\n\t_, err = part.Write(data)\n\trequire.Nil(t, err)\n\trequire.Nil(t, writer.Close())\n\n\treq := httptest.NewRequest(\n\t\t\"POST\",\n\t\t\"/api/v0/upload?root=\"+url.QueryEscape(path.Dir(name)),\n\t\tbody,\n\t)\n\tuser, err := s.userDb.Get(\"ali\")\n\trequire.Nil(t, err)\n\treq = req.WithContext(context.WithValue(req.Context(), dbUserKey(\"brig.db_user\"), user))\n\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\trsw := httptest.NewRecorder()\n\tsetSession(s.store, \"ali\", rsw, req)\n\tNewUploadHandler(s.State).ServeHTTP(rsw, req)\n\treturn rsw.Result()\n}\n\nfunc TestUploadSuccess(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\trequire.Nil(t, s.fs.Mkdir(\"/sub\", true))\n\t\tresp := mustDoUpload(t, s, \"/sub/new_file.png\", []byte(\"hello\"))\n\n\t\trequire.Equal(t, http.StatusOK, resp.StatusCode)\n\t\tentries, err := s.fs.List(\"/sub\", 1)\n\t\trequire.Nil(t, err)\n\t\trequire.Len(t, entries, 1)\n\n\t\tstream, err := s.fs.Cat(\"/sub/new_file.png\")\n\t\trequire.Nil(t, err)\n\n\t\tdata, err := ioutil.ReadAll(stream)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, []byte(\"hello\"), data)\n\t})\n}\n\nfunc TestUploadForbidden(t *testing.T) {\n\twithState(t, func(s *testState) {\n\t\ts.mustChangeFolders(t, \"/public\")\n\t\tresp := mustDoUpload(t, s, \"/sub/new_file.png\", []byte(\"hello\"))\n\n\t\trequire.Equal(t, http.StatusUnauthorized, resp.StatusCode)\n\t})\n}\n"
  },
  {
    "path": "gateway/endpoints/util.go",
    "content": "package endpoints\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"path\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gorilla/securecookie\"\n\t\"github.com/gorilla/sessions\"\n\t\"github.com/sahib/brig/catfs\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/events\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// State is a helper struct that contains all API objects that might be useful\n// to the endpoint implementation. It does not serve other purposes.\ntype State struct {\n\tfs     *catfs.FS\n\trapi   remotesapi.RemotesAPI\n\tcfg    *config.Config\n\tev     *events.Listener\n\tevHdl  *EventsHandler\n\tstore  *sessions.CookieStore\n\tuserDb *db.UserDatabase\n}\n\nfunc readOrInitKeyFromConfig(cfg *config.Config, keyName string, keyLen int) ([]byte, error) {\n\tkeyStr := cfg.String(keyName)\n\tif keyStr == \"\" {\n\t\tkeyData := securecookie.GenerateRandomKey(keyLen)\n\t\tcfg.SetString(keyName, base64.StdEncoding.EncodeToString(keyData))\n\t\treturn keyData, nil\n\t}\n\n\treturn base64.StdEncoding.DecodeString(keyStr)\n}\n\n// NewState creates a new state object.\n// events.Listener can be set later with SetEventListener.\nfunc NewState(\n\tfs *catfs.FS,\n\trapi remotesapi.RemotesAPI,\n\tcfg *config.Config,\n\tevHdl *EventsHandler,\n\tev *events.Listener,\n\tuserDb *db.UserDatabase,\n) (*State, error) {\n\tauthKey, err := readOrInitKeyFromConfig(cfg, \"auth.session-authentication-key\", 64)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tencKey, err := readOrInitKeyFromConfig(cfg, \"auth.session-encryption-key\", 32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Generated here, but used by the server:\n\t_, err = readOrInitKeyFromConfig(cfg, \"auth.session-csrf-key\", 32)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &State{\n\t\tfs:     fs,\n\t\trapi:   rapi,\n\t\tcfg:    cfg,\n\t\tevHdl:  evHdl,\n\t\tstore:  sessions.NewCookieStore(authKey, encKey),\n\t\tuserDb: userDb,\n\t}, nil\n}\n\n// Close cleans up any potentially open resource.\nfunc (s *State) Close() error {\n\ts.evHdl.Shutdown()\n\treturn nil\n}\n\n// UserDatabase returns the currently opened user database.\nfunc (s *State) UserDatabase() *db.UserDatabase {\n\treturn s.userDb\n}\n\nfunc (s *State) publishFsEvent(req *http.Request) {\n\tif s.evHdl != nil {\n\t\tctx, cancel := context.WithTimeout(req.Context(), 5*time.Second)\n\t\tdefer cancel()\n\n\t\ts.evHdl.Notify(ctx, \"fs\")\n\t}\n\n\tif s.ev == nil {\n\t\treturn\n\t}\n\n\tlog.Debugf(\"publishing fs event from gateway\")\n\tev := events.Event{\n\t\tType: events.FsEvent,\n\t}\n\n\tif err := s.ev.PublishEvent(ev); err != nil {\n\t\tlog.Warningf(\"failed to publish filesystem change event: %v\", err)\n\t}\n}\n\nfunc prefixRoot(nodePath string) string {\n\tif strings.HasPrefix(nodePath, \"/\") {\n\t\treturn nodePath\n\t}\n\n\treturn \"/\" + nodePath\n}\n\nfunc buildFolderCache(folders []string) map[string]bool {\n\tfolderCache := make(map[string]bool)\n\tfor _, folder := range folders {\n\t\tfolderCache[prefixRoot(path.Clean(folder))] = true\n\t}\n\n\treturn folderCache\n}\n\nfunc (s *State) pathIsVisible(nodePath string, w http.ResponseWriter, r *http.Request) bool {\n\tnodePath = prefixRoot(path.Clean(nodePath))\n\tif s.validatePath(nodePath, w, r) {\n\t\treturn true\n\t}\n\n\tname := getUserName(s.store, w, r)\n\tif name == \"\" {\n\t\treturn false\n\t}\n\n\tuser, err := s.userDb.Get(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tfolderCache := buildFolderCache(user.Folders)\n\tif err != nil {\n\t\tlog.Debugf(\"failed to build folder cache: %v\", err)\n\t\treturn false\n\t}\n\n\t// Go over all folders, and see if we have some allowed folder\n\t// that we need to display \"on the way\". This could be probably\n\t// made faster if we ever need to.\n\tfor folder, isValid := range folderCache {\n\t\tif !isValid {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Example case:\n\t\t// folder   = /nested/something\n\t\t// nodePath = /nested\n\t\t// (also handles if folder == nodePath)\n\t\t//\n\t\t// Other case (folder = /nested, nodePath = /nested/something)\n\t\t// is already handled by calling validatePath() above.\n\t\tif strings.HasPrefix(folder, nodePath) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// There is no valid prefix at all.\n\treturn false\n}\n\nfunc (s *State) validatePath(nodePath string, w http.ResponseWriter, r *http.Request) bool {\n\tif !strings.HasPrefix(nodePath, \"/\") {\n\t\treturn false\n\t}\n\n\tname := getUserName(s.store, w, r)\n\tif name == \"\" {\n\t\treturn false\n\t}\n\n\tuser, err := s.userDb.Get(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\t// At this point we know that the user is logged in.\n\treturn s.validatePathForUser(nodePath, user, w, r)\n}\n\nfunc (s *State) validatePathForUser(nodePath string, user db.User, w http.ResponseWriter, r *http.Request) bool {\n\tcurr := prefixRoot(nodePath)\n\tfolderCache := buildFolderCache(user.Folders)\n\n\tfor curr != \"\" {\n\t\tif folderCache[curr] {\n\t\t\treturn true\n\t\t}\n\n\t\tnext := path.Dir(curr)\n\t\tif curr == \"/\" && next == curr {\n\t\t\t// We've gone up too much:\n\t\t\tbreak\n\t\t}\n\n\t\tcurr = next\n\t}\n\n\t// No fitting path found:\n\treturn false\n}\n\n//////////////////////\n\nfunc jsonify(w http.ResponseWriter, statusCode int, data interface{}) {\n\tw.WriteHeader(statusCode)\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\n\tif err := json.NewEncoder(w).Encode(data); err != nil {\n\t\tlog.Warningf(\"failed to encode json: %v\", err)\n\t\tw.Write([]byte(\n\t\t\t\"{\\\"success\\\": false, \\\"message\\\": \\\"failed to encode json response\\\"}\",\n\t\t))\n\t\tw.WriteHeader(500)\n\t\treturn\n\t}\n}\n\nfunc jsonifyErrf(w http.ResponseWriter, statusCode int, format string, data ...interface{}) {\n\tmsg := fmt.Sprintf(format, data...)\n\tsuccess := false\n\tif statusCode >= 200 && statusCode < 400 {\n\t\tsuccess = true\n\t} else {\n\t\t// TODO: also pass request and output the url in this log message.\n\t\tlog.Debugf(\"failed to respond: %v\", msg)\n\t}\n\n\tjsonify(w, statusCode, struct {\n\t\tSuccess bool   `json:\"success\"`\n\t\tMessage string `json:\"message\"`\n\t}{\n\t\tSuccess: success,\n\t\tMessage: msg,\n\t})\n}\n\nfunc jsonifySuccess(w http.ResponseWriter) {\n\tjsonifyErrf(w, http.StatusOK, \"success\")\n}\n\nfunc (s *State) commitChange(msg string, w http.ResponseWriter, r *http.Request) bool {\n\tname := getUserName(s.store, w, r)\n\tfullMsg := fmt.Sprintf(\"gateway: »%s« %s\", name, msg)\n\n\tif err := s.fs.MakeCommit(fullMsg); err != nil {\n\t\tif err != ie.ErrNoChange {\n\t\t\tlog.Warningf(\"could not commit: %v\", err)\n\t\t\tjsonifyErrf(w, http.StatusInternalServerError, \"could not commit\")\n\t\t\treturn false\n\t\t}\n\n\t\t// There was no change. No need to notify.\n\t\treturn true\n\t}\n\n\ts.evHdl.Notify(r.Context(), \"fs\")\n\treturn true\n}\n\n///////\n\ntype secureMiddleware struct {\n\t*State\n\tSubHandler http.Handler\n}\n\nfunc (sm *secureMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\thdr := w.Header()\n\n\t// Do not let browsers guess the content type:\n\t// https://en.wikipedia.org/wiki/Content_sniffing\n\thdr.Set(\"X-Content-Type-Options\", \"nosniff\")\n\n\t// https://security.stackexchange.com/questions/121796/what-security-implications-does-dns-prefetching-have\n\thdr.Set(\"X-DNS-Prefetch-Control\", \"off\")\n\n\t// Do not allow <iframe> of our website embedded in other sites.\n\t// This could be changed if we see a valid use case for this.\n\thdr.Set(\"X-Frame-Options\", \"DENY\")\n\n\t// Prevents Internet Explorer from executing downloads in site's context\n\thdr.Set(\"X-Download-Options\", \"noopen\")\n\n\t// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection\n\thdr.Set(\"X-XSS-Protection\", \"1; mode=block\")\n\n\tif r.TLS != nil {\n\t\t// https://en.wikipedia.org/wiki/Content_sniffing\n\t\thdr.Set(\"Strict-Transport-Security\", \"max-age=5184000; includeSubDomains\")\n\t}\n\n\tsm.SubHandler.ServeHTTP(w, r)\n}\n\n// SecureMiddleware sets some security related headers suitable for all\n// endpoints that are supposed to protect users from some browser quirks.\nfunc SecureMiddleware(s *State) func(http.Handler) http.Handler {\n\treturn func(h http.Handler) http.Handler {\n\t\treturn &secureMiddleware{State: s, SubHandler: h}\n\t}\n}\n"
  },
  {
    "path": "gateway/remotesapi/api.go",
    "content": "// Package remotesapi implements a simple API for accessing all remotes\n// and their online state as well as triggering syncs and diffs.\n// Normally this involves at least three different APIs.\npackage remotesapi\n\nimport (\n\t\"time\"\n\n\t\"github.com/sahib/brig/catfs\"\n)\n\n// Folder is a single folder limit for a remote.\ntype Folder struct {\n\tFolder           string `json:\"folder\"`\n\tReadOnly         bool   `json:\"read_only\"`\n\tConflictStrategy string `json:\"conflict_strategy\"`\n}\n\n// Remote is a the result of List and Get.\ntype Remote struct {\n\tName              string    `json:\"name\"`\n\tFolders           []Folder  `json:\"folders\"`\n\tFingerprint       string    `json:\"fingerprint\"`\n\tAcceptAutoUpdates bool      `json:\"accept_auto_updates\"`\n\tIsOnline          bool      `json:\"is_online\"`\n\tIsAuthenticated   bool      `json:\"is_authenticated\"`\n\tAcceptPush        bool      `json:\"accept_push\"`\n\tConflictStrategy  string    `json:\"conflict_strategy\"`\n\tLastSeen          time.Time `json:\"last_seen\"`\n}\n\n// Identity describes our own repository identity.\ntype Identity struct {\n\tName        string `json:\"name\"`\n\tFingerprint string `json:\"fingerprint\"`\n}\n\n// RemotesAPI provides a simpler interface to accessing remote information\n// from repo.Repository, net.PeerServer and events.EventListener.\ntype RemotesAPI interface {\n\tList() ([]*Remote, error)\n\tGet(name string) (*Remote, error)\n\tSet(rm Remote) error\n\tRemove(name string) error\n\tSelf() (Identity, error)\n\tOnChange(fn func())\n\n\tSync(name string) error\n\tMakeDiff(name string) (*catfs.Diff, error)\n}\n"
  },
  {
    "path": "gateway/remotesapi/mock.go",
    "content": "package remotesapi\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/catfs\"\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// Mock is for testing purposes whenever a normal RemotesAPI is needed.\n// It stores remotes in memory and does not implement really syncing or diffing.\ntype Mock struct {\n\tname        string\n\tfingerprint string\n\tremotes     map[string]*Remote\n\tcallbacks   []func()\n}\n\n// NewMock creates a new Mock.\n// `name` and `fingerprint` will be returned\nfunc NewMock(name, fingerprint string) *Mock {\n\treturn &Mock{\n\t\tname:        name,\n\t\tfingerprint: fingerprint,\n\t\tremotes:     make(map[string]*Remote),\n\t}\n}\n\n// List all existing remotes.\nfunc (m *Mock) List() ([]*Remote, error) {\n\trmts := []*Remote{}\n\tfor _, rmt := range m.remotes {\n\t\trmts = append(rmts, rmt)\n\t}\n\n\treturn rmts, nil\n}\n\n// Get a remote by `name`.\nfunc (m *Mock) Get(name string) (*Remote, error) {\n\trm, ok := m.remotes[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"no such remote: %s\", name)\n\t}\n\n\treturn rm, nil\n}\n\n// Set (i.e. add or modify) a remote.\n// The mock implementation takes the isOnline, isAuthenticated\n// and LastSeen info from the remote, in contrast to the real implementation.\nfunc (m *Mock) Set(rm Remote) error {\n\tif rm.Name == \"\" {\n\t\treturn fmt.Errorf(\"empty name\")\n\t}\n\n\tif rm.Fingerprint == \"\" {\n\t\treturn fmt.Errorf(\"empty fingerprint\")\n\t}\n\n\tif rm.Name == m.name {\n\t\treturn fmt.Errorf(\"cannot add remote with own name\")\n\t}\n\n\tprevRm, ok := m.remotes[rm.Name]\n\tif ok {\n\t\trm.IsAuthenticated = prevRm.IsAuthenticated\n\t\trm.LastSeen = prevRm.LastSeen\n\t\trm.IsOnline = prevRm.IsOnline\n\t}\n\n\tm.remotes[rm.Name] = &rm\n\tm.notify()\n\treturn nil\n}\n\n// Remove removes a remote by `name`.\nfunc (m *Mock) Remove(name string) error {\n\tif _, ok := m.remotes[name]; !ok {\n\t\treturn fmt.Errorf(\"no such remote: %s\", name)\n\t}\n\n\tdelete(m.remotes, name)\n\tm.notify()\n\treturn nil\n}\n\n// Self returns the identity of this repository.\nfunc (m *Mock) Self() (Identity, error) {\n\treturn Identity{\n\t\tName:        m.name,\n\t\tFingerprint: m.fingerprint,\n\t}, nil\n}\n\n// Sync synchronizes the latest state of `name` with our latest state.\n// The mock implementation does nothing currently.\nfunc (m *Mock) Sync(name string) error {\n\tif _, ok := m.remotes[name]; !ok {\n\t\treturn fmt.Errorf(\"no such remote: %s\", name)\n\t}\n\n\treturn nil\n}\n\nfunc dummyNode(path, user string, isDir bool) catfs.StatInfo {\n\treturn catfs.StatInfo{\n\t\tBackendHash: h.EmptyBackendHash.Clone(),\n\t\tTreeHash:    h.EmptyInternalHash.Clone(),\n\t\tContentHash: h.EmptyInternalHash.Clone(),\n\t\tDepth:       strings.Count(path, \"/\") - 1,\n\t\tInode:       7,\n\t\tIsDir:       isDir,\n\t\tIsExplicit:  false,\n\t\tModTime:     time.Now(),\n\t\tPath:        path,\n\t\tUser:        user,\n\t\tSize:        789,\n\t}\n}\n\n// MakeDiff produces a diff to the remote with `name`.\nfunc (m *Mock) MakeDiff(name string) (*catfs.Diff, error) {\n\tif _, ok := m.remotes[name]; !ok {\n\t\treturn nil, fmt.Errorf(\"no such remote: %s\", name)\n\t}\n\n\t// always send an empty diff.\n\treturn &catfs.Diff{\n\t\tAdded: []catfs.StatInfo{\n\t\t\tdummyNode(\"/new_dir\", name, true),\n\t\t\tdummyNode(\"/new_file\", name, false),\n\t\t},\n\t\tRemoved: []catfs.StatInfo{\n\t\t\tdummyNode(\"/removed_file\", name, false),\n\t\t},\n\t\tIgnored: []catfs.StatInfo{\n\t\t\tdummyNode(\"/ignored\", name, false),\n\t\t},\n\t\tMissing: []catfs.StatInfo{\n\t\t\tdummyNode(\"/missing\", name, false),\n\t\t},\n\t\tConflict: []catfs.DiffPair{\n\t\t\t{\n\t\t\t\tSrc: dummyNode(\"/conflict_src\", name, false),\n\t\t\t\tDst: dummyNode(\"/conflict_dst\", name, false),\n\t\t\t},\n\t\t},\n\t\tMoved: []catfs.DiffPair{\n\t\t\t{\n\t\t\t\tSrc: dummyNode(\"/moved_src\", name, false),\n\t\t\t\tDst: dummyNode(\"/moved_dst\", name, false),\n\t\t\t},\n\t\t},\n\t\tMerged: []catfs.DiffPair{\n\t\t\t{\n\t\t\t\tSrc: dummyNode(\"/merged_src\", name, false),\n\t\t\t\tDst: dummyNode(\"/merged_dst\", name, false),\n\t\t\t},\n\t\t},\n\t}, nil\n}\n\nfunc (m *Mock) notify() {\n\tfor _, fn := range m.callbacks {\n\t\tfn()\n\t}\n}\n\n// OnChange register a callback to be called once the remote list changes.\nfunc (m *Mock) OnChange(fn func()) {\n\tm.callbacks = append(m.callbacks, fn)\n}\n"
  },
  {
    "path": "gateway/server.go",
    "content": "package gateway\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/NYTimes/gziphandler\"\n\t\"github.com/gorilla/csrf\"\n\t\"github.com/gorilla/mux\"\n\t\"github.com/phogolabs/parcello\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/events\"\n\t\"github.com/sahib/brig/gateway/db\"\n\t\"github.com/sahib/brig/gateway/endpoints\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/ulule/limiter\"\n\t\"github.com/ulule/limiter/drivers/middleware/stdlib\"\n\t\"github.com/ulule/limiter/drivers/store/memory\"\n\n\t// Include static resources:\n\t_ \"github.com/sahib/brig/gateway/static\"\n)\n\n// set a max. amount of requests per hour:\nvar rate = limiter.Rate{\n\tPeriod: 1 * time.Hour,\n\tLimit:  50000,\n}\n\n// Gateway is a small HTTP server that is able to serve\n// files from brig over HTTP. This can be used to share files\n// inside of brig with users that do not use brig.\ntype Gateway struct {\n\tcfg         *config.Config\n\tisClosed    bool\n\tisReloading bool\n\tstate       *endpoints.State\n\tevHdl       *endpoints.EventsHandler\n\n\tsrv *http.Server\n}\n\n// NewGateway returns a newly built gateway.\n// This function does not yet start a server.\nfunc NewGateway(fs *catfs.FS, rapi remotesapi.RemotesAPI, cfg *config.Config, ev *events.Listener, dbPath string) (*Gateway, error) {\n\tuserDb, err := db.NewUserDatabase(dbPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tevHdl := endpoints.NewEventsHandler(rapi, ev)\n\tstate, err := endpoints.NewState(fs, rapi, cfg, evHdl, ev, userDb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgw := &Gateway{\n\t\tstate:    state,\n\t\tisClosed: true,\n\t\tcfg:      cfg,\n\t\tevHdl:    evHdl,\n\t}\n\n\t// Restarts the gateway on the next possible idle phase:\n\treloader := func(key string) {\n\t\t// Forbid recursive reloading.\n\t\tif gw.isReloading {\n\t\t\treturn\n\t\t}\n\n\t\tgw.isReloading = true\n\t\tdefer func() { gw.isReloading = false }()\n\n\t\tlog.Debugf(\"reloading gateway because config key changed: %s\", key)\n\t\tif err := gw.Stop(); err != nil {\n\t\t\tlog.Errorf(\"failed to stop gateway: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tgw.Start()\n\t}\n\n\t// If any of those vars change, we should reload.\n\t// All other config values are read on-demand anyways.\n\tcfg.AddEvent(\"enabled\", reloader)\n\tcfg.AddEvent(\"port\", reloader)\n\tcfg.AddEvent(\"auth.session-encryption-key\", reloader)\n\tcfg.AddEvent(\"auth.session-authentication-key\", reloader)\n\tcfg.AddEvent(\"auth.session-csrf-key\", reloader)\n\treturn gw, nil\n}\n\n// Stop stops the gateway gracefully.\nfunc (gw *Gateway) Stop() error {\n\tif gw.isClosed {\n\t\treturn nil\n\t}\n\n\tgw.isClosed = true\n\tif err := gw.state.Close(); err != nil {\n\t\tlog.Warningf(\"failed to shutdown state object: %v\", err)\n\t}\n\n\tctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)\n\tdefer cancel()\n\n\tif gw.srv != nil {\n\t\treturn gw.srv.Shutdown(ctx)\n\t}\n\n\treturn nil\n}\n\ntype csrfErrorHandler struct{}\n\nfunc (ch *csrfErrorHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {\n\tlog.Warningf(\"csrf failed: %v\", r.Context().Value(\"gorilla.csrf.Error\"))\n\tw.WriteHeader(http.StatusForbidden)\n}\n\n// Start will start the gateway.\n// If the gateway is not enabled in the config, this does nothing.\n// The gateway is started in the background, this method does not block.\nfunc (gw *Gateway) Start() {\n\tif !gw.cfg.Bool(\"enabled\") {\n\t\tlog.Debugf(\"gateway is disabled in the config; doing nothing until enabled.\")\n\t\treturn\n\t}\n\n\tgw.isClosed = false\n\n\tport := gw.cfg.Int(\"port\")\n\taddr := fmt.Sprintf(\":%d\", port)\n\tlog.Debugf(\"starting gateway on %s\", addr)\n\n\tgw.isReloading = true\n\tdefer func() {\n\t\tgw.isReloading = false\n\t}()\n\n\tuiEnabled := gw.cfg.Bool(\"ui.enabled\")\n\n\t// Use csrf protection for all routes by default.\n\t// This does not influence GET routes, only POST ones:\n\trouter := mux.NewRouter()\n\trouter.Use(endpoints.SecureMiddleware(gw.state))\n\tneedsAuth := endpoints.AuthMiddleware(gw.state)\n\n\tcsrfOpts := []csrf.Option{\n\t\tcsrf.ErrorHandler(&csrfErrorHandler{}),\n\t}\n\n\t// TODO: We don't use HTTPS but recommend to use something like caddy.\n\tcsrfOpts = append(csrfOpts, csrf.Secure(false))\n\n\tif uiEnabled {\n\t\tcsrfKey := []byte(gw.cfg.String(\"auth.session-csrf-key\"))\n\t\trouter.Use(csrf.Protect(csrfKey, csrfOpts...))\n\n\t\t// API route definition:\n\t\tapiRouter := router.PathPrefix(\"/api/v0\").Methods(\"POST\").Subrouter()\n\t\tapiRouter.Handle(\"/login\", endpoints.NewLoginHandler(gw.state))\n\t\tapiRouter.Handle(\"/whoami\", endpoints.NewWhoamiHandler(gw.state))\n\t\tapiRouter.Handle(\"/ping\", endpoints.NewPingHandler(gw.state))\n\t\tapiRouter.Handle(\"/logout\", needsAuth(endpoints.NewLogoutHandler(gw.state)))\n\t\tapiRouter.Handle(\"/ls\", needsAuth(endpoints.NewLsHandler(gw.state)))\n\t\tapiRouter.Handle(\"/upload\", needsAuth(endpoints.NewUploadHandler(gw.state)))\n\t\tapiRouter.Handle(\"/move\", needsAuth(endpoints.NewMoveHandler(gw.state)))\n\t\tapiRouter.Handle(\"/mkdir\", needsAuth(endpoints.NewMkdirHandler(gw.state)))\n\t\tapiRouter.Handle(\"/copy\", needsAuth(endpoints.NewCopyHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remove\", needsAuth(endpoints.NewRemoveHandler(gw.state)))\n\t\tapiRouter.Handle(\"/history\", needsAuth(endpoints.NewHistoryHandler(gw.state)))\n\t\tapiRouter.Handle(\"/reset\", needsAuth(endpoints.NewResetHandler(gw.state)))\n\t\tapiRouter.Handle(\"/all-dirs\", needsAuth(endpoints.NewAllDirsHandler(gw.state)))\n\t\tapiRouter.Handle(\"/log\", needsAuth(endpoints.NewLogHandler(gw.state)))\n\t\tapiRouter.Handle(\"/deleted\", needsAuth(endpoints.NewDeletedPathsHandler(gw.state)))\n\t\tapiRouter.Handle(\"/undelete\", needsAuth(endpoints.NewUndeleteHandler(gw.state)))\n\t\tapiRouter.Handle(\"/pin\", needsAuth(endpoints.NewPinHandler(gw.state)))\n\t\tapiRouter.Handle(\"/unpin\", needsAuth(endpoints.NewUnpinHandler(gw.state)))\n\n\t\t// Remote API:\n\t\tapiRouter.Handle(\"/remotes/list\", needsAuth(endpoints.NewRemotesListHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/add\", needsAuth(endpoints.NewRemotesAddHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/modify\", needsAuth(endpoints.NewRemotesModifyHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/remove\", needsAuth(endpoints.NewRemotesRemoveHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/self\", needsAuth(endpoints.NewRemotesSelfHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/sync\", needsAuth(endpoints.NewRemotesSyncHandler(gw.state)))\n\t\tapiRouter.Handle(\"/remotes/diff\", needsAuth(endpoints.NewRemotesDiffHandler(gw.state)))\n\t}\n\n\t// Add the /get endpoint. Since it might contain any path, we have to\n\t// Use a path prefix so the right handler is called.\n\t// NOTE: /get does its own auth handling currently,\n\t// since it needs to be available if somebody is not using the UI.\n\trouter.PathPrefix(\"/get\").Handler(endpoints.NewGetHandler(gw.state)).Methods(\"GET\")\n\n\tif uiEnabled {\n\t\t// /events is a websocket that pushes events to the client.\n\t\t// The client will probably call /ls then.\n\t\trouter.PathPrefix(\"/events\").Handler(needsAuth(gw.evHdl)).Methods(\"GET\")\n\n\t\t// Special case: index.html gets a csrf token:\n\t\tidxHdl := endpoints.NewIndexHandler(gw.state)\n\t\trouter.Handle(\"/\", idxHdl).Methods(\"GET\")\n\t\trouter.Handle(\"/index.html\", idxHdl).Methods(\"GET\")\n\n\t\tspaRoutes := []string{\n\t\t\t\"/view\",\n\t\t\t\"/log\",\n\t\t\t\"/remotes\",\n\t\t\t\"/deleted\",\n\t\t\t\"/diff\",\n\t\t\t\"/nothing\",\n\t\t}\n\n\t\tfor _, route := range spaRoutes {\n\t\t\trouter.PathPrefix(route).Handler(idxHdl).Methods(\"GET\")\n\t\t}\n\n\t\t// Serve all files in the static directory as-is.\n\t\t// This has to come last, since it's a wildcard for everything else.\n\t\t// The static files are packed inside the binary (for now)\n\n\t\tif gw.cfg.Bool(\"ui.debug_mode\") {\n\t\t\trouter.PathPrefix(\"/\").Handler(http.FileServer(http.Dir(\"./gateway/static\")))\n\t\t} else {\n\t\t\trouter.PathPrefix(\"/\").Handler(http.FileServer(parcello.ManagerAt(\"/\")))\n\t\t}\n\t}\n\n\t// Implement rate limiting:\n\trouter.Use(\n\t\tstdlib.NewMiddleware(\n\t\t\tlimiter.New(memory.NewStore(), rate),\n\t\t\tstdlib.WithForwardHeader(true),\n\t\t).Handler,\n\t)\n\n\tgw.srv = &http.Server{\n\t\tAddr:              addr,\n\t\tHandler:           gziphandler.GzipHandler(router),\n\t\tReadHeaderTimeout: 10 * time.Second,\n\t\tIdleTimeout:       360 * time.Second,\n\t\t// We cant' really enable write timeout, since upload will break then.\n\t\t// See also: https://github.com/golang/go/issues/16100\n\t\t// WriteTimeout:      10 * time.Second,\n\t}\n\n\tgo func() {\n\t\terr := gw.srv.ListenAndServe()\n\t\tif err != nil && err != http.ErrServerClosed {\n\t\t\tlog.Errorf(\"serve failed: %v\", err)\n\t\t}\n\t}()\n}\n\n// UserDatabase returns the user database API.\nfunc (gw *Gateway) UserDatabase() *db.UserDatabase {\n\treturn gw.state.UserDatabase()\n}\n\n// Close the gateway and clean up all open resouces.\nfunc (gw *Gateway) Close() error {\n\treturn gw.state.UserDatabase().Close()\n}\n"
  },
  {
    "path": "gateway/server_test.go",
    "content": "package gateway\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc withBasicGateway(t *testing.T, fn func(gw *Gateway, fs *catfs.FS)) {\n\ttmpDir, err := ioutil.TempDir(\"\", \"brig-gateway-tests\")\n\trequire.Nil(t, err)\n\n\tdefer func() {\n\t\tos.RemoveAll(tmpDir)\n\t}()\n\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\trequire.Nil(t, err)\n\n\tfs, err := catfs.NewFilesystem(\n\t\tcatfs.NewMemFsBackend(),\n\t\tfilepath.Join(tmpDir, \"fs\"),\n\t\t\"ali\",\n\t\tfalse,\n\t\tcfg.Section(\"fs\"),\n\t\tnil,\n\t\tnil,\n\t)\n\n\trequire.Nil(t, err)\n\n\tcfg.SetBool(\"gateway.enabled\", true)\n\tcfg.SetInt(\"gateway.port\", 9999)\n\tcfg.SetBool(\"gateway.auth.anon_allowed\", true)\n\n\trapi := remotesapi.NewMock(\"ali\", \"alisfingerprint\")\n\tgw, err := NewGateway(\n\t\tfs,\n\t\trapi,\n\t\tcfg.Section(\"gateway\"),\n\t\tnil,\n\t\tfilepath.Join(tmpDir, \"users\"),\n\t)\n\trequire.Nil(t, err)\n\n\trequire.Nil(\n\t\tt,\n\t\tgw.UserDatabase().Add(\"ali\", \"ila\", []string{\"/\"}, nil),\n\t)\n\n\tgw.Start()\n\n\tdefer func() {\n\t\trequire.Nil(t, gw.Stop())\n\t}()\n\n\ttime.Sleep(100 * time.Millisecond)\n\tfn(gw, fs)\n}\n\nfunc buildURL(gw *Gateway, suffix string) string {\n\tsuffix = strings.TrimLeft(suffix, \"/\")\n\treturn fmt.Sprintf(\"http://localhost:%d/%s\", gw.cfg.Int(\"port\"), suffix)\n}\n\nfunc ping(t *testing.T, gw *Gateway) bool {\n\t_, err := http.Get(buildURL(gw, \"\"))\n\treturn err == nil\n}\n\nfunc queryWithAuth(t *testing.T, gw *Gateway, suffix, user, pass string) (int, []byte) {\n\treq, err := http.NewRequest(\"GET\", buildURL(gw, suffix), nil)\n\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\treq.SetBasicAuth(user, pass)\n\tclient := &http.Client{}\n\tresp, err := client.Do(req)\n\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\tdefer resp.Body.Close()\n\n\tdata, err := ioutil.ReadAll(resp.Body)\n\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\treturn resp.StatusCode, data\n}\n\nfunc TestGatewayOK(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 200, status)\n\t\trequire.Equal(t, exampleData, data)\n\t})\n}\n\nfunc TestGatewayNoSuchFile(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 404, status)\n\t\trequire.Equal(t, \"not found\", string(bytes.TrimSpace(data)))\n\t})\n}\n\nfunc TestGatewayUnauthorizedBadFolder(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\trequire.Nil(t, gw.UserDatabase().Add(\"ali\", \"ila\", []string{\"/public\"}, nil))\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 401, status)\n\t\trequire.Equal(t, \"not authorized\", string(bytes.TrimSpace(data)))\n\t})\n}\n\nfunc TestGatewayUnauthorizedBadUser(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err, fmt.Sprintf(\"%v\", err))\n\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"resu\", \"pass\")\n\t\trequire.Equal(t, 401, status)\n\t\trequire.Equal(t, \"not authorized\", string(bytes.TrimSpace(data)))\n\t})\n}\n\nfunc TestGatewayUnauthorizedBadPass(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err)\n\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"user\", \"ssap\")\n\t\trequire.Equal(t, 401, status)\n\t\trequire.Equal(t, \"not authorized\", string(bytes.TrimSpace(data)))\n\t})\n}\n\nfunc TestGatewayConfigChangeEnabled(t *testing.T) {\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err)\n\n\t\trequire.True(t, ping(t, gw))\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 200, status)\n\t\trequire.Equal(t, exampleData, data)\n\n\t\tgw.cfg.SetBool(\"enabled\", false)\n\t\ttime.Sleep(10 * time.Millisecond)\n\n\t\trequire.False(t, ping(t, gw))\n\t})\n}\n\nfunc TestGatewayConfigChangePort(t *testing.T) {\n\tlog.SetOutput(os.Stderr)\n\tlog.SetLevel(log.DebugLevel)\n\twithBasicGateway(t, func(gw *Gateway, fs *catfs.FS) {\n\t\texampleData := []byte(\"Hello world\")\n\t\terr := fs.Stage(\"/hello/world.png\", bytes.NewReader(exampleData))\n\t\trequire.Nil(t, err)\n\n\t\trequire.True(t, ping(t, gw))\n\t\tstatus, data := queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 200, status)\n\t\trequire.Equal(t, exampleData, data)\n\n\t\tgw.cfg.SetInt(\"port\", 8888)\n\t\ttime.Sleep(1 * time.Second)\n\n\t\t// should still work, the port changed.\n\t\tstatus, data = queryWithAuth(t, gw, \"/get/hello/world.png\", \"ali\", \"ila\")\n\t\trequire.Equal(t, 200, status)\n\t\trequire.Equal(t, exampleData, data)\n\t})\n}\n"
  },
  {
    "path": "gateway/static/css/default.css",
    "content": "#sidebar-bottom {\n\twidth: 100%;\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tpadding-bottom: 10px;\n}\n\n#sidebar-bottom-text {\n\tmargin-left: 25px;\n    font-size: 75%;\n}\n\n\n.nav-link {\n  margin-left: 50px;\n  font-weight: 500;\n  font-size: 110%;\n  font-weight: 600;\n  color: #333;\n  padding-right: 66px !important;\n  padding-left: 0px !important;\n}\n\n.nav-link.active {\n  color: #007bff !important;\n}\n\n@media all and (max-width: 768px) {\n    .logo {\n        font-size: 2em;\n    }\n\n\t.ls-action-toolbar {\n\t\tcolor: red !important;\n\t\tflex-direction: column;\n\t}\n}\n\n@media all and (min-width: 768px) {\n    .logo {\n\t\tpadding-top: 20px;\n\t\tpadding-bottom: 20px;\n        font-size: 4em;\n    }\n\n\t.ls-action-toolbar {\n\t\tcolor: blue !important;\n\t\tflex-direction: row;\n\t}\n}\n\n.logo-failure {\n    color: red;\n}\n\n#remote-add-conflict-dropdown{\n    padding-left: 2px !important;\n    padding-bottom: 4px !important;\n}\n\n/* ---------------- */\n\n\n.input-group-addon {\n    background:transparent;\n}\n\n.input-group-addon button {\n    border: 0px;\n    background:transparent;\n    padding: 0px;\n}\n\n.stylish-input-group .form-control{\n\tborder-right: 0;\n\tbox-shadow:0 0 0;\n\tborder-color: #ccc;\n}\n.stylish-input-group .input-group-append {\n    border:0;\n    background:transparent;\n}\n\n/* ---------------- */\n\n.checkbox label:after, \n.radio label:after {\n    content: '';\n    display: table;\n    clear: both;\n}\n\n.checkbox .cr,\n.radio .cr {\n    position: relative;\n    display: inline-block;\n    border: 1px solid #a9a9a9;\n    border-radius: .25em;\n    width: 1.3em;\n    height: 1.3em;\n    float: left;\n    margin-right: .5em;\n}\n\n.radio .cr {\n    border-radius: 50%;\n}\n\n.checkbox .cr .cr-icon,\n.radio .cr .cr-icon {\n    position: absolute;\n    font-size: .8em;\n    line-height: 0;\n    top: 50%;\n    left: 20%;\n}\n\n.radio .cr .cr-icon {\n    margin-left: 0.04em;\n}\n\n.checkbox label input[type=\"checkbox\"],\n.radio label input[type=\"radio\"] {\n    display: none;\n}\n\n.checkbox label input[type=\"checkbox\"] + .cr > .cr-icon,\n.radio label input[type=\"radio\"] + .cr > .cr-icon {\n    transform: scale(3) rotateZ(-20deg);\n    opacity: 0;\n    transition: all .1s ease-in;\n}\n\n.checkbox label input[type=\"checkbox\"]:checked + .cr > .cr-icon,\n.radio label input[type=\"radio\"]:checked + .cr > .cr-icon {\n    transform: scale(1) rotateZ(0deg);\n    opacity: 1;\n}\n\n.checkbox label input[type=\"checkbox\"]:disabled + .cr,\n.radio label input[type=\"radio\"]:disabled + .cr {\n    opacity: .5;\n}\n\n/* ---------------- */\n\n/* Add a bit of space before the main content */\n#main-header-row {\n    margin-top: 25px;\n}\n\n#main-content-row {\n    margin-top: 25px;\n}\n\n#the-main {\n\theight: 100%;\n}\n\n/* Remove the grey background from the breadcrumbs */\n.breadcrumb {\n    border:0;\n    background:transparent;\n}\n\n.file-list-icon {\n  color: #007bff;\n}\n\n#share-list {\n\tlist-style-type: none;\n}\n\n.glyphicon-refresh-animate {\n    -animation: spin .7s infinite linear;\n    -webkit-animation: spin2 .7s infinite linear;\n}\n\n@-webkit-keyframes spin2 {\n    from { -webkit-transform: rotate(0deg);}\n    to { -webkit-transform: rotate(360deg);}\n}\n\n@keyframes spin {\n    from { transform: scale(1) rotate(0deg);}\n    to { transform: scale(1) rotate(360deg);}\n}\n\n\n.login-form {\n\tmax-width: 38vw;\n\tmargin: 50px auto;\n}\n\n.login-background {\n    /* background by SVGBackgrounds.com */\n    /* background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 800 400'%3E%3Cdefs%3E%3CradialGradient id='a' cx='396' cy='281' r='514' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23D18'/%3E%3Cstop offset='1' stop-color='%23330000'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='400' y1='148' x2='400' y2='333'%3E%3Cstop offset='0' stop-color='%23FA3' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23FA3' stop-opacity='0.5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect fill='url(%23a)' width='800' height='400'/%3E%3Cg fill-opacity='0.5'%3E%3Ccircle fill='url(%23b)' cx='267.5' cy='61' r='300'/%3E%3Ccircle fill='url(%23b)' cx='532.5' cy='61' r='300'/%3E%3Ccircle fill='url(%23b)' cx='400' cy='30' r='300'/%3E%3C/g%3E%3C/svg%3E\"); */\n    background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='290' height='290' viewBox='0 0 200 200'%3E%3Cg %3E%3Cpolygon fill='%23608f57' points='100 57.1 64 93.1 71.5 100.6 100 72.1'/%3E%3Cpolygon fill='%2374ad69' points='100 57.1 100 72.1 128.6 100.6 136.1 93.1'/%3E%3Cpolygon fill='%23608f57' points='100 163.2 100 178.2 170.7 107.5 170.8 92.4'/%3E%3Cpolygon fill='%2374ad69' points='100 163.2 29.2 92.5 29.2 107.5 100 178.2'/%3E%3Cpath fill='%2389CC7C' d='M100 21.8L29.2 92.5l70.7 70.7l70.7-70.7L100 21.8z M100 127.9L64.6 92.5L100 57.1l35.4 35.4L100 127.9z'/%3E%3Cpolygon fill='%237f8f53' points='0 157.1 0 172.1 28.6 200.6 36.1 193.1'/%3E%3Cpolygon fill='%239bad64' points='70.7 200 70.8 192.4 63.2 200'/%3E%3Cpolygon fill='%23B6CC76' points='27.8 200 63.2 200 70.7 192.5 0 121.8 0 157.2 35.3 192.5'/%3E%3Cpolygon fill='%239bad64' points='200 157.1 164 193.1 171.5 200.6 200 172.1'/%3E%3Cpolygon fill='%237f8f53' points='136.7 200 129.2 192.5 129.2 200'/%3E%3Cpolygon fill='%23B6CC76' points='172.1 200 164.6 192.5 200 157.1 200 157.2 200 121.8 200 121.8 129.2 192.5 136.7 200'/%3E%3Cpolygon fill='%237f8f53' points='129.2 0 129.2 7.5 200 78.2 200 63.2 136.7 0'/%3E%3Cpolygon fill='%23B6CC76' points='200 27.8 200 27.9 172.1 0 136.7 0 200 63.2 200 63.2'/%3E%3Cpolygon fill='%239bad64' points='63.2 0 0 63.2 0 78.2 70.7 7.5 70.7 0'/%3E%3Cpolygon fill='%23B6CC76' points='0 63.2 63.2 0 27.8 0 0 27.8'/%3E%3C/g%3E%3C/svg%3E\");\n}\n\n.login-form > form {\n\tmargin-bottom: 15px;\n\tbackground: #fff;\n\tbox-shadow: 0px 1px 4px 1px rgba(0, 0, 0, 0.3); \n\tpadding: 30px;\n}\n\n.login-form h2 {\n\tmargin: 0 0 15px;\n}\n.login-input, .login-btn {\n\tmin-height: 38px;\n\tmargin-top: 15px;\n\tmargin-bottom: 15px;\n\tborder-radius: 2px;\n}\n\n.login-btn {\n\tfont-weight: bold;\n\tmargin-top: 15px;\n}\n\n.login-header {\n\tpadding-bottom: 15px;\n}\n\n.progress-cancel {\n\tpadding: 0px;\n\tmargin: 0px;\n}\n\n.notification-list > .alert {\n\tmargin-bottom: 5px;\n    height: 40px;\n    line-height: 40px;\n    padding: 0px 15px;\n\tfont-size: 80%;\n}\n\n.notification-close-btn {\n\tcolor: rgba(0, 0, 0, 0.5);\n\n\tpadding-top: 0px;\n    padding-right: 0px;\n    padding-bottom: 0px;\n    padding-left: 0px;\n\n\tmargin-top: 0px;\n    margin-right: 0px;\n    margin-bottom: 5px;\n    margin-left: 0px;\n}\n\n#action-btn {\n\tpadding-top: 0px;\n    padding-right: 0px;\n    padding-bottom: 0px;\n\n\tmargin-top: 0px;\n    margin-right: 0px;\n    margin-bottom: 2px;\n\n    width: 100%;\n    font-size: 92%;\n}\n\n.scrollable-modal-row {\n    max-height: 42vh;\n    overflow-y: scroll;\n}\n\n.table-hover tbody tr:hover td, .table-hover tbody tr:hover th {\n\tbackground-color: rgba(235, 245, 255);\n}\n\n.sort-button-container {\n    overflow: hidden;\n    white-space: nowrap;\n}\n\n.sort-button-container * {\n    display: inline-block;\n    vertical-align: top;\n    white-space: normal;\n}\n\n.sort-button {\n\tpadding-top: 4px;\n    padding-right: 0px;\n    padding-left: 0px;\n    padding-bottom: 0px;\n\n\tmargin-top: 0px;\n    margin-right: 0px;\n    margin-left: 3px;\n    margin-bottom: 5px;\n\tbackground: white;\n}\n\n.sort-button-selected {\n\tcolor: #007bff;\n}\n\nbody, html, .container-fluid {\n    height: 100%;\n}\n\n.wrapper {\n    min-height: 100vh;\n    max-height: 100%;\n}\n\nmain {\n    max-height: 100%;\n    overflow-y: auto;\n}\n\n@media all and (max-width: 1200px) {\n    .toolbar {\n        padding-left: 25vw;\n        padding: 10px;\n        margin: auto;\n        width: 50%;\n    }\n}\n\n#select-label {\n    text-align: left;\n    font-size: 90%;\n    width: 100%;\n}\n\n/* remove link border after click */\na:active, a:focus {\n  outline: 0;\n  border: none;\n  -moz-outline-style: none;\n}\n\n.borderless-table {\n    border: 1px;\n    border-style: solid;\n    border-color: rgba(0, 0, 0, 0.125);\n    border-radius: 3px 3px !important;\n}\n\n.borderless-table > thead > tr > td,\n.borderless-table > thead > tr > th {\n    border: none;\n}\n\n/* --------------------- */\n\n.modal-header-success {\n    color:#fff;\n    padding:9px 15px;\n    border-bottom:1px solid #eee;\n    background-color: #5cb85c;\n    -webkit-border-top-left-radius: 5px;\n    -webkit-border-top-right-radius: 5px;\n    -moz-border-radius-topleft: 5px;\n    -moz-border-radius-topright: 5px;\n     border-top-left-radius: 5px;\n     border-top-right-radius: 5px;\n}\n.modal-header-warning {\n\tcolor:#fff;\n    padding:9px 15px;\n    border-bottom:1px solid #eee;\n    background-color: #f0ad4e;\n    -webkit-border-top-left-radius: 5px;\n    -webkit-border-top-right-radius: 5px;\n    -moz-border-radius-topleft: 5px;\n    -moz-border-radius-topright: 5px;\n     border-top-left-radius: 5px;\n     border-top-right-radius: 5px;\n}\n.modal-header-danger {\n\tcolor:#fff;\n    padding:9px 15px;\n    border-bottom:1px solid #eee;\n    background-color: #d9534f;\n    -webkit-border-top-left-radius: 5px;\n    -webkit-border-top-right-radius: 5px;\n    -moz-border-radius-topleft: 5px;\n    -moz-border-radius-topright: 5px;\n     border-top-left-radius: 5px;\n     border-top-right-radius: 5px;\n}\n.modal-header-info {\n    color:#fff;\n    padding:9px 15px;\n    border-bottom:1px solid #eee;\n    background-color: #5bc0de;\n    -webkit-border-top-left-radius: 5px;\n    -webkit-border-top-right-radius: 5px;\n    -moz-border-radius-topleft: 5px;\n    -moz-border-radius-topright: 5px;\n     border-top-left-radius: 5px;\n     border-top-right-radius: 5px;\n}\n.modal-header-primary {\n\tcolor:#fff;\n    padding:9px 15px;\n    border-bottom:1px solid #eee;\n    background-color: #428bca;\n    -webkit-border-top-left-radius: 5px;\n    -webkit-border-top-right-radius: 5px;\n    -moz-border-radius-topleft: 5px;\n    -moz-border-radius-topright: 5px;\n     border-top-left-radius: 5px;\n     border-top-right-radius: 5px;\n }\n\n/* -------------- */\n\n/* The switch - the box around the slider */\n.toggle-switch {\n  position: relative;\n  display: inline-block;\n  width: 50px;\n  height: 27px;\n}\n\n.toggle-switch-disabled {\n    color: red;\n}\n\n/* Hide default HTML checkbox */\n.toggle-switch input {\n  opacity: 0;\n  width: 0;\n  height: 0;\n}\n\n/* The slider */\n.toggle-slider {\n  position: absolute;\n  cursor: pointer;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: #ccc;\n  -webkit-transition: .2s;\n  transition: .2s;\n}\n\n.toggle-slider:before {\n  position: absolute;\n  content: \"\";\n  height: 20px;\n  width: 20px;\n  left: 4px;\n  bottom: 4px;\n  background-color: white;\n  -webkit-transition: .2s;\n  transition: .2s;\n}\n\ninput:checked + .toggle-slider {\n  background-color: #2196F3;\n}\n\ninput:focus + .toggle-slider {\n  box-shadow: 0 0 1px #2196F3;\n}\n\n\ninput:checked + .toggle-slider:before {\n  -webkit-transform: translateX(20px);\n  -ms-transform: translateX(20px);\n  transform: translateX(20px);\n}\n\n/* Rounded sliders */\n.toggle-slider.toggle-round {\n  border-radius: 27px;\n}\n\n.toggle-slider.toggle-round:before {\n  border-radius: 50%;\n}\n\n.fingerprint {\n    font-size: 85%;\n}\n\n.remote-heading {\n    font-size: 80%;\n}\n\n.download-btn {\n\tpadding-top: 15px;\n}\n"
  },
  {
    "path": "gateway/static/css/fontawesome.css",
    "content": ".fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\"\\f26e\"}.fa-accessible-icon:before{content:\"\\f368\"}.fa-accusoft:before{content:\"\\f369\"}.fa-acquisitions-incorporated:before{content:\"\\f6af\"}.fa-ad:before{content:\"\\f641\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-card:before{content:\"\\f2bb\"}.fa-adjust:before{content:\"\\f042\"}.fa-adn:before{content:\"\\f170\"}.fa-adobe:before{content:\"\\f778\"}.fa-adversal:before{content:\"\\f36a\"}.fa-affiliatetheme:before{content:\"\\f36b\"}.fa-air-freshener:before{content:\"\\f5d0\"}.fa-algolia:before{content:\"\\f36c\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-justify:before{content:\"\\f039\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-right:before{content:\"\\f038\"}.fa-alipay:before{content:\"\\f642\"}.fa-allergies:before{content:\"\\f461\"}.fa-amazon:before{content:\"\\f270\"}.fa-amazon-pay:before{content:\"\\f42c\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-amilia:before{content:\"\\f36d\"}.fa-anchor:before{content:\"\\f13d\"}.fa-android:before{content:\"\\f17b\"}.fa-angellist:before{content:\"\\f209\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-down:before{content:\"\\f107\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angry:before{content:\"\\f556\"}.fa-angrycreative:before{content:\"\\f36e\"}.fa-angular:before{content:\"\\f420\"}.fa-ankh:before{content:\"\\f644\"}.fa-app-store:before{content:\"\\f36f\"}.fa-app-store-ios:before{content:\"\\f370\"}.fa-apper:before{content:\"\\f371\"}.fa-apple:before{content:\"\\f179\"}.fa-apple-alt:before{content:\"\\f5d1\"}.fa-apple-pay:before{content:\"\\f415\"}.fa-archive:before{content:\"\\f187\"}.fa-archway:before{content:\"\\f557\"}.fa-arrow-alt-circle-down:before{content:\"\\f358\"}.fa-arrow-alt-circle-left:before{content:\"\\f359\"}.fa-arrow-alt-circle-right:before{content:\"\\f35a\"}.fa-arrow-alt-circle-up:before{content:\"\\f35b\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-arrows-alt-h:before{content:\"\\f337\"}.fa-arrows-alt-v:before{content:\"\\f338\"}.fa-artstation:before{content:\"\\f77a\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asterisk:before{content:\"\\f069\"}.fa-asymmetrik:before{content:\"\\f372\"}.fa-at:before{content:\"\\f1fa\"}.fa-atlas:before{content:\"\\f558\"}.fa-atlassian:before{content:\"\\f77b\"}.fa-atom:before{content:\"\\f5d2\"}.fa-audible:before{content:\"\\f373\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-autoprefixer:before{content:\"\\f41c\"}.fa-avianex:before{content:\"\\f374\"}.fa-aviato:before{content:\"\\f421\"}.fa-award:before{content:\"\\f559\"}.fa-aws:before{content:\"\\f375\"}.fa-baby:before{content:\"\\f77c\"}.fa-baby-carriage:before{content:\"\\f77d\"}.fa-backspace:before{content:\"\\f55a\"}.fa-backward:before{content:\"\\f04a\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-ban:before{content:\"\\f05e\"}.fa-band-aid:before{content:\"\\f462\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-barcode:before{content:\"\\f02a\"}.fa-bars:before{content:\"\\f0c9\"}.fa-baseball-ball:before{content:\"\\f433\"}.fa-basketball-ball:before{content:\"\\f434\"}.fa-bath:before{content:\"\\f2cd\"}.fa-battery-empty:before{content:\"\\f244\"}.fa-battery-full:before{content:\"\\f240\"}.fa-battery-half:before{content:\"\\f242\"}.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-bed:before{content:\"\\f236\"}.fa-beer:before{content:\"\\f0fc\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-bell:before{content:\"\\f0f3\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bezier-curve:before{content:\"\\f55b\"}.fa-bible:before{content:\"\\f647\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bimobject:before{content:\"\\f378\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-biohazard:before{content:\"\\f780\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitcoin:before{content:\"\\f379\"}.fa-bity:before{content:\"\\f37a\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-blackberry:before{content:\"\\f37b\"}.fa-blender:before{content:\"\\f517\"}.fa-blender-phone:before{content:\"\\f6b6\"}.fa-blind:before{content:\"\\f29d\"}.fa-blog:before{content:\"\\f781\"}.fa-blogger:before{content:\"\\f37c\"}.fa-blogger-b:before{content:\"\\f37d\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-bold:before{content:\"\\f032\"}.fa-bolt:before{content:\"\\f0e7\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-bone:before{content:\"\\f5d7\"}.fa-bong:before{content:\"\\f55c\"}.fa-book:before{content:\"\\f02d\"}.fa-book-dead:before{content:\"\\f6b7\"}.fa-book-open:before{content:\"\\f518\"}.fa-book-reader:before{content:\"\\f5da\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-bowling-ball:before{content:\"\\f436\"}.fa-box:before{content:\"\\f466\"}.fa-box-open:before{content:\"\\f49e\"}.fa-boxes:before{content:\"\\f468\"}.fa-braille:before{content:\"\\f2a1\"}.fa-brain:before{content:\"\\f5dc\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-briefcase-medical:before{content:\"\\f469\"}.fa-broadcast-tower:before{content:\"\\f519\"}.fa-broom:before{content:\"\\f51a\"}.fa-brush:before{content:\"\\f55d\"}.fa-btc:before{content:\"\\f15a\"}.fa-bug:before{content:\"\\f188\"}.fa-building:before{content:\"\\f1ad\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bullseye:before{content:\"\\f140\"}.fa-burn:before{content:\"\\f46a\"}.fa-buromobelexperte:before{content:\"\\f37f\"}.fa-bus:before{content:\"\\f207\"}.fa-bus-alt:before{content:\"\\f55e\"}.fa-business-time:before{content:\"\\f64a\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-calendar:before{content:\"\\f133\"}.fa-calendar-alt:before{content:\"\\f073\"}.fa-calendar-check:before{content:\"\\f274\"}.fa-calendar-day:before{content:\"\\f783\"}.fa-calendar-minus:before{content:\"\\f272\"}.fa-calendar-plus:before{content:\"\\f271\"}.fa-calendar-times:before{content:\"\\f273\"}.fa-calendar-week:before{content:\"\\f784\"}.fa-camera:before{content:\"\\f030\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-campground:before{content:\"\\f6bb\"}.fa-canadian-maple-leaf:before{content:\"\\f785\"}.fa-candy-cane:before{content:\"\\f786\"}.fa-cannabis:before{content:\"\\f55f\"}.fa-capsules:before{content:\"\\f46b\"}.fa-car:before{content:\"\\f1b9\"}.fa-car-alt:before{content:\"\\f5de\"}.fa-car-battery:before{content:\"\\f5df\"}.fa-car-crash:before{content:\"\\f5e1\"}.fa-car-side:before{content:\"\\f5e4\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-caret-square-down:before{content:\"\\f150\"}.fa-caret-square-left:before{content:\"\\f191\"}.fa-caret-square-right:before{content:\"\\f152\"}.fa-caret-square-up:before{content:\"\\f151\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-carrot:before{content:\"\\f787\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cash-register:before{content:\"\\f788\"}.fa-cat:before{content:\"\\f6be\"}.fa-cc-amazon-pay:before{content:\"\\f42d\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-apple-pay:before{content:\"\\f416\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-centercode:before{content:\"\\f380\"}.fa-centos:before{content:\"\\f789\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-chair:before{content:\"\\f6c0\"}.fa-chalkboard:before{content:\"\\f51b\"}.fa-chalkboard-teacher:before{content:\"\\f51c\"}.fa-charging-station:before{content:\"\\f5e7\"}.fa-chart-area:before{content:\"\\f1fe\"}.fa-chart-bar:before{content:\"\\f080\"}.fa-chart-line:before{content:\"\\f201\"}.fa-chart-pie:before{content:\"\\f200\"}.fa-check:before{content:\"\\f00c\"}.fa-check-circle:before{content:\"\\f058\"}.fa-check-double:before{content:\"\\f560\"}.fa-check-square:before{content:\"\\f14a\"}.fa-chess:before{content:\"\\f439\"}.fa-chess-bishop:before{content:\"\\f43a\"}.fa-chess-board:before{content:\"\\f43c\"}.fa-chess-king:before{content:\"\\f43f\"}.fa-chess-knight:before{content:\"\\f441\"}.fa-chess-pawn:before{content:\"\\f443\"}.fa-chess-queen:before{content:\"\\f445\"}.fa-chess-rook:before{content:\"\\f447\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-child:before{content:\"\\f1ae\"}.fa-chrome:before{content:\"\\f268\"}.fa-church:before{content:\"\\f51d\"}.fa-circle:before{content:\"\\f111\"}.fa-circle-notch:before{content:\"\\f1ce\"}.fa-city:before{content:\"\\f64f\"}.fa-clipboard:before{content:\"\\f328\"}.fa-clipboard-check:before{content:\"\\f46c\"}.fa-clipboard-list:before{content:\"\\f46d\"}.fa-clock:before{content:\"\\f017\"}.fa-clone:before{content:\"\\f24d\"}.fa-closed-captioning:before{content:\"\\f20a\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-cloud-download-alt:before{content:\"\\f381\"}.fa-cloud-meatball:before{content:\"\\f73b\"}.fa-cloud-moon:before{content:\"\\f6c3\"}.fa-cloud-moon-rain:before{content:\"\\f73c\"}.fa-cloud-rain:before{content:\"\\f73d\"}.fa-cloud-showers-heavy:before{content:\"\\f740\"}.fa-cloud-sun:before{content:\"\\f6c4\"}.fa-cloud-sun-rain:before{content:\"\\f743\"}.fa-cloud-upload-alt:before{content:\"\\f382\"}.fa-cloudscale:before{content:\"\\f383\"}.fa-cloudsmith:before{content:\"\\f384\"}.fa-cloudversify:before{content:\"\\f385\"}.fa-cocktail:before{content:\"\\f561\"}.fa-code:before{content:\"\\f121\"}.fa-code-branch:before{content:\"\\f126\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-codiepie:before{content:\"\\f284\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cog:before{content:\"\\f013\"}.fa-cogs:before{content:\"\\f085\"}.fa-coins:before{content:\"\\f51e\"}.fa-columns:before{content:\"\\f0db\"}.fa-comment:before{content:\"\\f075\"}.fa-comment-alt:before{content:\"\\f27a\"}.fa-comment-dollar:before{content:\"\\f651\"}.fa-comment-dots:before{content:\"\\f4ad\"}.fa-comment-slash:before{content:\"\\f4b3\"}.fa-comments:before{content:\"\\f086\"}.fa-comments-dollar:before{content:\"\\f653\"}.fa-compact-disc:before{content:\"\\f51f\"}.fa-compass:before{content:\"\\f14e\"}.fa-compress:before{content:\"\\f066\"}.fa-compress-arrows-alt:before{content:\"\\f78c\"}.fa-concierge-bell:before{content:\"\\f562\"}.fa-confluence:before{content:\"\\f78d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-contao:before{content:\"\\f26d\"}.fa-cookie:before{content:\"\\f563\"}.fa-cookie-bite:before{content:\"\\f564\"}.fa-copy:before{content:\"\\f0c5\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-couch:before{content:\"\\f4b8\"}.fa-cpanel:before{content:\"\\f388\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-creative-commons-by:before{content:\"\\f4e7\"}.fa-creative-commons-nc:before{content:\"\\f4e8\"}.fa-creative-commons-nc-eu:before{content:\"\\f4e9\"}.fa-creative-commons-nc-jp:before{content:\"\\f4ea\"}.fa-creative-commons-nd:before{content:\"\\f4eb\"}.fa-creative-commons-pd:before{content:\"\\f4ec\"}.fa-creative-commons-pd-alt:before{content:\"\\f4ed\"}.fa-creative-commons-remix:before{content:\"\\f4ee\"}.fa-creative-commons-sa:before{content:\"\\f4ef\"}.fa-creative-commons-sampling:before{content:\"\\f4f0\"}.fa-creative-commons-sampling-plus:before{content:\"\\f4f1\"}.fa-creative-commons-share:before{content:\"\\f4f2\"}.fa-creative-commons-zero:before{content:\"\\f4f3\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-critical-role:before{content:\"\\f6c9\"}.fa-crop:before{content:\"\\f125\"}.fa-crop-alt:before{content:\"\\f565\"}.fa-cross:before{content:\"\\f654\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-crow:before{content:\"\\f520\"}.fa-crown:before{content:\"\\f521\"}.fa-css3:before{content:\"\\f13c\"}.fa-css3-alt:before{content:\"\\f38b\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-cut:before{content:\"\\f0c4\"}.fa-cuttlefish:before{content:\"\\f38c\"}.fa-d-and-d:before{content:\"\\f38d\"}.fa-d-and-d-beyond:before{content:\"\\f6ca\"}.fa-dashcube:before{content:\"\\f210\"}.fa-database:before{content:\"\\f1c0\"}.fa-deaf:before{content:\"\\f2a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-democrat:before{content:\"\\f747\"}.fa-deploydog:before{content:\"\\f38e\"}.fa-deskpro:before{content:\"\\f38f\"}.fa-desktop:before{content:\"\\f108\"}.fa-dev:before{content:\"\\f6cc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-dharmachakra:before{content:\"\\f655\"}.fa-dhl:before{content:\"\\f790\"}.fa-diagnoses:before{content:\"\\f470\"}.fa-diaspora:before{content:\"\\f791\"}.fa-dice:before{content:\"\\f522\"}.fa-dice-d20:before{content:\"\\f6cf\"}.fa-dice-d6:before{content:\"\\f6d1\"}.fa-dice-five:before{content:\"\\f523\"}.fa-dice-four:before{content:\"\\f524\"}.fa-dice-one:before{content:\"\\f525\"}.fa-dice-six:before{content:\"\\f526\"}.fa-dice-three:before{content:\"\\f527\"}.fa-dice-two:before{content:\"\\f528\"}.fa-digg:before{content:\"\\f1a6\"}.fa-digital-ocean:before{content:\"\\f391\"}.fa-digital-tachograph:before{content:\"\\f566\"}.fa-directions:before{content:\"\\f5eb\"}.fa-discord:before{content:\"\\f392\"}.fa-discourse:before{content:\"\\f393\"}.fa-divide:before{content:\"\\f529\"}.fa-dizzy:before{content:\"\\f567\"}.fa-dna:before{content:\"\\f471\"}.fa-dochub:before{content:\"\\f394\"}.fa-docker:before{content:\"\\f395\"}.fa-dog:before{content:\"\\f6d3\"}.fa-dollar-sign:before{content:\"\\f155\"}.fa-dolly:before{content:\"\\f472\"}.fa-dolly-flatbed:before{content:\"\\f474\"}.fa-donate:before{content:\"\\f4b9\"}.fa-door-closed:before{content:\"\\f52a\"}.fa-door-open:before{content:\"\\f52b\"}.fa-dot-circle:before{content:\"\\f192\"}.fa-dove:before{content:\"\\f4ba\"}.fa-download:before{content:\"\\f019\"}.fa-draft2digital:before{content:\"\\f396\"}.fa-drafting-compass:before{content:\"\\f568\"}.fa-dragon:before{content:\"\\f6d5\"}.fa-draw-polygon:before{content:\"\\f5ee\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-dribbble-square:before{content:\"\\f397\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-drum:before{content:\"\\f569\"}.fa-drum-steelpan:before{content:\"\\f56a\"}.fa-drumstick-bite:before{content:\"\\f6d7\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-dumbbell:before{content:\"\\f44b\"}.fa-dumpster:before{content:\"\\f793\"}.fa-dumpster-fire:before{content:\"\\f794\"}.fa-dungeon:before{content:\"\\f6d9\"}.fa-dyalog:before{content:\"\\f399\"}.fa-earlybirds:before{content:\"\\f39a\"}.fa-ebay:before{content:\"\\f4f4\"}.fa-edge:before{content:\"\\f282\"}.fa-edit:before{content:\"\\f044\"}.fa-eject:before{content:\"\\f052\"}.fa-elementor:before{content:\"\\f430\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-ello:before{content:\"\\f5f1\"}.fa-ember:before{content:\"\\f423\"}.fa-empire:before{content:\"\\f1d1\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-text:before{content:\"\\f658\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-envira:before{content:\"\\f299\"}.fa-equals:before{content:\"\\f52c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-erlang:before{content:\"\\f39d\"}.fa-ethereum:before{content:\"\\f42e\"}.fa-ethernet:before{content:\"\\f796\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-euro-sign:before{content:\"\\f153\"}.fa-exchange-alt:before{content:\"\\f362\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-expand:before{content:\"\\f065\"}.fa-expand-arrows-alt:before{content:\"\\f31e\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-external-link-alt:before{content:\"\\f35d\"}.fa-external-link-square-alt:before{content:\"\\f360\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-dropper:before{content:\"\\f1fb\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-facebook:before{content:\"\\f09a\"}.fa-facebook-f:before{content:\"\\f39e\"}.fa-facebook-messenger:before{content:\"\\f39f\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-fantasy-flight-games:before{content:\"\\f6dc\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-fax:before{content:\"\\f1ac\"}.fa-feather:before{content:\"\\f52d\"}.fa-feather-alt:before{content:\"\\f56b\"}.fa-fedex:before{content:\"\\f797\"}.fa-fedora:before{content:\"\\f798\"}.fa-female:before{content:\"\\f182\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-figma:before{content:\"\\f799\"}.fa-file:before{content:\"\\f15b\"}.fa-file-alt:before{content:\"\\f15c\"}.fa-file-archive:before{content:\"\\f1c6\"}.fa-file-audio:before{content:\"\\f1c7\"}.fa-file-code:before{content:\"\\f1c9\"}.fa-file-contract:before{content:\"\\f56c\"}.fa-file-csv:before{content:\"\\f6dd\"}.fa-file-download:before{content:\"\\f56d\"}.fa-file-excel:before{content:\"\\f1c3\"}.fa-file-export:before{content:\"\\f56e\"}.fa-file-image:before{content:\"\\f1c5\"}.fa-file-import:before{content:\"\\f56f\"}.fa-file-invoice:before{content:\"\\f570\"}.fa-file-invoice-dollar:before{content:\"\\f571\"}.fa-file-medical:before{content:\"\\f477\"}.fa-file-medical-alt:before{content:\"\\f478\"}.fa-file-pdf:before{content:\"\\f1c1\"}.fa-file-powerpoint:before{content:\"\\f1c4\"}.fa-file-prescription:before{content:\"\\f572\"}.fa-file-signature:before{content:\"\\f573\"}.fa-file-upload:before{content:\"\\f574\"}.fa-file-video:before{content:\"\\f1c8\"}.fa-file-word:before{content:\"\\f1c2\"}.fa-fill:before{content:\"\\f575\"}.fa-fill-drip:before{content:\"\\f576\"}.fa-film:before{content:\"\\f008\"}.fa-filter:before{content:\"\\f0b0\"}.fa-fingerprint:before{content:\"\\f577\"}.fa-fire:before{content:\"\\f06d\"}.fa-fire-alt:before{content:\"\\f7e4\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-firefox:before{content:\"\\f269\"}.fa-first-aid:before{content:\"\\f479\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-first-order-alt:before{content:\"\\f50a\"}.fa-firstdraft:before{content:\"\\f3a1\"}.fa-fish:before{content:\"\\f578\"}.fa-fist-raised:before{content:\"\\f6de\"}.fa-flag:before{content:\"\\f024\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-flag-usa:before{content:\"\\f74d\"}.fa-flask:before{content:\"\\f0c3\"}.fa-flickr:before{content:\"\\f16e\"}.fa-flipboard:before{content:\"\\f44d\"}.fa-flushed:before{content:\"\\f579\"}.fa-fly:before{content:\"\\f417\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-minus:before{content:\"\\f65d\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-folder-plus:before{content:\"\\f65e\"}.fa-font:before{content:\"\\f031\"}.fa-font-awesome:before{content:\"\\f2b4\"}.fa-font-awesome-alt:before{content:\"\\f35c\"}.fa-font-awesome-flag:before{content:\"\\f425\"}.fa-font-awesome-logo-full:before{content:\"\\f4e6\"}.fa-fonticons:before{content:\"\\f280\"}.fa-fonticons-fi:before{content:\"\\f3a2\"}.fa-football-ball:before{content:\"\\f44e\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-fort-awesome-alt:before{content:\"\\f3a3\"}.fa-forumbee:before{content:\"\\f211\"}.fa-forward:before{content:\"\\f04e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-freebsd:before{content:\"\\f3a4\"}.fa-frog:before{content:\"\\f52e\"}.fa-frown:before{content:\"\\f119\"}.fa-frown-open:before{content:\"\\f57a\"}.fa-fulcrum:before{content:\"\\f50b\"}.fa-funnel-dollar:before{content:\"\\f662\"}.fa-futbol:before{content:\"\\f1e3\"}.fa-galactic-republic:before{content:\"\\f50c\"}.fa-galactic-senate:before{content:\"\\f50d\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-gas-pump:before{content:\"\\f52f\"}.fa-gavel:before{content:\"\\f0e3\"}.fa-gem:before{content:\"\\f3a5\"}.fa-genderless:before{content:\"\\f22d\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-ghost:before{content:\"\\f6e2\"}.fa-gift:before{content:\"\\f06b\"}.fa-gifts:before{content:\"\\f79c\"}.fa-git:before{content:\"\\f1d3\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-github:before{content:\"\\f09b\"}.fa-github-alt:before{content:\"\\f113\"}.fa-github-square:before{content:\"\\f092\"}.fa-gitkraken:before{content:\"\\f3a6\"}.fa-gitlab:before{content:\"\\f296\"}.fa-gitter:before{content:\"\\f426\"}.fa-glass-cheers:before{content:\"\\f79f\"}.fa-glass-martini:before{content:\"\\f000\"}.fa-glass-martini-alt:before{content:\"\\f57b\"}.fa-glass-whiskey:before{content:\"\\f7a0\"}.fa-glasses:before{content:\"\\f530\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-globe:before{content:\"\\f0ac\"}.fa-globe-africa:before{content:\"\\f57c\"}.fa-globe-americas:before{content:\"\\f57d\"}.fa-globe-asia:before{content:\"\\f57e\"}.fa-globe-europe:before{content:\"\\f7a2\"}.fa-gofore:before{content:\"\\f3a7\"}.fa-golf-ball:before{content:\"\\f450\"}.fa-goodreads:before{content:\"\\f3a8\"}.fa-goodreads-g:before{content:\"\\f3a9\"}.fa-google:before{content:\"\\f1a0\"}.fa-google-drive:before{content:\"\\f3aa\"}.fa-google-play:before{content:\"\\f3ab\"}.fa-google-plus:before{content:\"\\f2b3\"}.fa-google-plus-g:before{content:\"\\f0d5\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-gopuram:before{content:\"\\f664\"}.fa-graduation-cap:before{content:\"\\f19d\"}.fa-gratipay:before{content:\"\\f184\"}.fa-grav:before{content:\"\\f2d6\"}.fa-greater-than:before{content:\"\\f531\"}.fa-greater-than-equal:before{content:\"\\f532\"}.fa-grimace:before{content:\"\\f57f\"}.fa-grin:before{content:\"\\f580\"}.fa-grin-alt:before{content:\"\\f581\"}.fa-grin-beam:before{content:\"\\f582\"}.fa-grin-beam-sweat:before{content:\"\\f583\"}.fa-grin-hearts:before{content:\"\\f584\"}.fa-grin-squint:before{content:\"\\f585\"}.fa-grin-squint-tears:before{content:\"\\f586\"}.fa-grin-stars:before{content:\"\\f587\"}.fa-grin-tears:before{content:\"\\f588\"}.fa-grin-tongue:before{content:\"\\f589\"}.fa-grin-tongue-squint:before{content:\"\\f58a\"}.fa-grin-tongue-wink:before{content:\"\\f58b\"}.fa-grin-wink:before{content:\"\\f58c\"}.fa-grip-horizontal:before{content:\"\\f58d\"}.fa-grip-lines:before{content:\"\\f7a4\"}.fa-grip-lines-vertical:before{content:\"\\f7a5\"}.fa-grip-vertical:before{content:\"\\f58e\"}.fa-gripfire:before{content:\"\\f3ac\"}.fa-grunt:before{content:\"\\f3ad\"}.fa-guitar:before{content:\"\\f7a6\"}.fa-gulp:before{content:\"\\f3ae\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-hacker-news:before{content:\"\\f1d4\"}.fa-hacker-news-square:before{content:\"\\f3af\"}.fa-hackerrank:before{content:\"\\f5f7\"}.fa-hammer:before{content:\"\\f6e3\"}.fa-hamsa:before{content:\"\\f665\"}.fa-hand-holding:before{content:\"\\f4bd\"}.fa-hand-holding-heart:before{content:\"\\f4be\"}.fa-hand-holding-usd:before{content:\"\\f4c0\"}.fa-hand-lizard:before{content:\"\\f258\"}.fa-hand-paper:before{content:\"\\f256\"}.fa-hand-peace:before{content:\"\\f25b\"}.fa-hand-point-down:before{content:\"\\f0a7\"}.fa-hand-point-left:before{content:\"\\f0a5\"}.fa-hand-point-right:before{content:\"\\f0a4\"}.fa-hand-point-up:before{content:\"\\f0a6\"}.fa-hand-pointer:before{content:\"\\f25a\"}.fa-hand-rock:before{content:\"\\f255\"}.fa-hand-scissors:before{content:\"\\f257\"}.fa-hand-spock:before{content:\"\\f259\"}.fa-hands:before{content:\"\\f4c2\"}.fa-hands-helping:before{content:\"\\f4c4\"}.fa-handshake:before{content:\"\\f2b5\"}.fa-hanukiah:before{content:\"\\f6e6\"}.fa-hashtag:before{content:\"\\f292\"}.fa-hat-wizard:before{content:\"\\f6e8\"}.fa-haykal:before{content:\"\\f666\"}.fa-hdd:before{content:\"\\f0a0\"}.fa-heading:before{content:\"\\f1dc\"}.fa-headphones:before{content:\"\\f025\"}.fa-headphones-alt:before{content:\"\\f58f\"}.fa-headset:before{content:\"\\f590\"}.fa-heart:before{content:\"\\f004\"}.fa-heart-broken:before{content:\"\\f7a9\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-helicopter:before{content:\"\\f533\"}.fa-highlighter:before{content:\"\\f591\"}.fa-hiking:before{content:\"\\f6ec\"}.fa-hippo:before{content:\"\\f6ed\"}.fa-hips:before{content:\"\\f452\"}.fa-hire-a-helper:before{content:\"\\f3b0\"}.fa-history:before{content:\"\\f1da\"}.fa-hockey-puck:before{content:\"\\f453\"}.fa-holly-berry:before{content:\"\\f7aa\"}.fa-home:before{content:\"\\f015\"}.fa-hooli:before{content:\"\\f427\"}.fa-hornbill:before{content:\"\\f592\"}.fa-horse:before{content:\"\\f6f0\"}.fa-horse-head:before{content:\"\\f7ab\"}.fa-hospital:before{content:\"\\f0f8\"}.fa-hospital-alt:before{content:\"\\f47d\"}.fa-hospital-symbol:before{content:\"\\f47e\"}.fa-hot-tub:before{content:\"\\f593\"}.fa-hotel:before{content:\"\\f594\"}.fa-hotjar:before{content:\"\\f3b1\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-start:before{content:\"\\f251\"}.fa-house-damage:before{content:\"\\f6f1\"}.fa-houzz:before{content:\"\\f27c\"}.fa-hryvnia:before{content:\"\\f6f2\"}.fa-html5:before{content:\"\\f13b\"}.fa-hubspot:before{content:\"\\f3b2\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-icicles:before{content:\"\\f7ad\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-id-card:before{content:\"\\f2c2\"}.fa-id-card-alt:before{content:\"\\f47f\"}.fa-igloo:before{content:\"\\f7ae\"}.fa-image:before{content:\"\\f03e\"}.fa-images:before{content:\"\\f302\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-inbox:before{content:\"\\f01c\"}.fa-indent:before{content:\"\\f03c\"}.fa-industry:before{content:\"\\f275\"}.fa-infinity:before{content:\"\\f534\"}.fa-info:before{content:\"\\f129\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-instagram:before{content:\"\\f16d\"}.fa-intercom:before{content:\"\\f7af\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-invision:before{content:\"\\f7b0\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-italic:before{content:\"\\f033\"}.fa-itunes:before{content:\"\\f3b4\"}.fa-itunes-note:before{content:\"\\f3b5\"}.fa-java:before{content:\"\\f4e4\"}.fa-jedi:before{content:\"\\f669\"}.fa-jedi-order:before{content:\"\\f50e\"}.fa-jenkins:before{content:\"\\f3b6\"}.fa-jira:before{content:\"\\f7b1\"}.fa-joget:before{content:\"\\f3b7\"}.fa-joint:before{content:\"\\f595\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-journal-whills:before{content:\"\\f66a\"}.fa-js:before{content:\"\\f3b8\"}.fa-js-square:before{content:\"\\f3b9\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-kaaba:before{content:\"\\f66b\"}.fa-kaggle:before{content:\"\\f5fa\"}.fa-key:before{content:\"\\f084\"}.fa-keybase:before{content:\"\\f4f5\"}.fa-keyboard:before{content:\"\\f11c\"}.fa-keycdn:before{content:\"\\f3ba\"}.fa-khanda:before{content:\"\\f66d\"}.fa-kickstarter:before{content:\"\\f3bb\"}.fa-kickstarter-k:before{content:\"\\f3bc\"}.fa-kiss:before{content:\"\\f596\"}.fa-kiss-beam:before{content:\"\\f597\"}.fa-kiss-wink-heart:before{content:\"\\f598\"}.fa-kiwi-bird:before{content:\"\\f535\"}.fa-korvue:before{content:\"\\f42f\"}.fa-landmark:before{content:\"\\f66f\"}.fa-language:before{content:\"\\f1ab\"}.fa-laptop:before{content:\"\\f109\"}.fa-laptop-code:before{content:\"\\f5fc\"}.fa-laravel:before{content:\"\\f3bd\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-laugh:before{content:\"\\f599\"}.fa-laugh-beam:before{content:\"\\f59a\"}.fa-laugh-squint:before{content:\"\\f59b\"}.fa-laugh-wink:before{content:\"\\f59c\"}.fa-layer-group:before{content:\"\\f5fd\"}.fa-leaf:before{content:\"\\f06c\"}.fa-leanpub:before{content:\"\\f212\"}.fa-lemon:before{content:\"\\f094\"}.fa-less:before{content:\"\\f41d\"}.fa-less-than:before{content:\"\\f536\"}.fa-less-than-equal:before{content:\"\\f537\"}.fa-level-down-alt:before{content:\"\\f3be\"}.fa-level-up-alt:before{content:\"\\f3bf\"}.fa-life-ring:before{content:\"\\f1cd\"}.fa-lightbulb:before{content:\"\\f0eb\"}.fa-line:before{content:\"\\f3c0\"}.fa-link:before{content:\"\\f0c1\"}.fa-linkedin:before{content:\"\\f08c\"}.fa-linkedin-in:before{content:\"\\f0e1\"}.fa-linode:before{content:\"\\f2b8\"}.fa-linux:before{content:\"\\f17c\"}.fa-lira-sign:before{content:\"\\f195\"}.fa-list:before{content:\"\\f03a\"}.fa-list-alt:before{content:\"\\f022\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-lock:before{content:\"\\f023\"}.fa-lock-open:before{content:\"\\f3c1\"}.fa-long-arrow-alt-down:before{content:\"\\f309\"}.fa-long-arrow-alt-left:before{content:\"\\f30a\"}.fa-long-arrow-alt-right:before{content:\"\\f30b\"}.fa-long-arrow-alt-up:before{content:\"\\f30c\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-luggage-cart:before{content:\"\\f59d\"}.fa-lyft:before{content:\"\\f3c3\"}.fa-magento:before{content:\"\\f3c4\"}.fa-magic:before{content:\"\\f0d0\"}.fa-magnet:before{content:\"\\f076\"}.fa-mail-bulk:before{content:\"\\f674\"}.fa-mailchimp:before{content:\"\\f59e\"}.fa-male:before{content:\"\\f183\"}.fa-mandalorian:before{content:\"\\f50f\"}.fa-map:before{content:\"\\f279\"}.fa-map-marked:before{content:\"\\f59f\"}.fa-map-marked-alt:before{content:\"\\f5a0\"}.fa-map-marker:before{content:\"\\f041\"}.fa-map-marker-alt:before{content:\"\\f3c5\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-markdown:before{content:\"\\f60f\"}.fa-marker:before{content:\"\\f5a1\"}.fa-mars:before{content:\"\\f222\"}.fa-mars-double:before{content:\"\\f227\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mask:before{content:\"\\f6fa\"}.fa-mastodon:before{content:\"\\f4f6\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-medal:before{content:\"\\f5a2\"}.fa-medapps:before{content:\"\\f3c6\"}.fa-medium:before{content:\"\\f23a\"}.fa-medium-m:before{content:\"\\f3c7\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-medrt:before{content:\"\\f3c8\"}.fa-meetup:before{content:\"\\f2e0\"}.fa-megaport:before{content:\"\\f5a3\"}.fa-meh:before{content:\"\\f11a\"}.fa-meh-blank:before{content:\"\\f5a4\"}.fa-meh-rolling-eyes:before{content:\"\\f5a5\"}.fa-memory:before{content:\"\\f538\"}.fa-mendeley:before{content:\"\\f7b3\"}.fa-menorah:before{content:\"\\f676\"}.fa-mercury:before{content:\"\\f223\"}.fa-meteor:before{content:\"\\f753\"}.fa-microchip:before{content:\"\\f2db\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-alt:before{content:\"\\f3c9\"}.fa-microphone-alt-slash:before{content:\"\\f539\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-microscope:before{content:\"\\f610\"}.fa-microsoft:before{content:\"\\f3ca\"}.fa-minus:before{content:\"\\f068\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-minus-square:before{content:\"\\f146\"}.fa-mitten:before{content:\"\\f7b5\"}.fa-mix:before{content:\"\\f3cb\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-mizuni:before{content:\"\\f3cc\"}.fa-mobile:before{content:\"\\f10b\"}.fa-mobile-alt:before{content:\"\\f3cd\"}.fa-modx:before{content:\"\\f285\"}.fa-monero:before{content:\"\\f3d0\"}.fa-money-bill:before{content:\"\\f0d6\"}.fa-money-bill-alt:before{content:\"\\f3d1\"}.fa-money-bill-wave:before{content:\"\\f53a\"}.fa-money-bill-wave-alt:before{content:\"\\f53b\"}.fa-money-check:before{content:\"\\f53c\"}.fa-money-check-alt:before{content:\"\\f53d\"}.fa-monument:before{content:\"\\f5a6\"}.fa-moon:before{content:\"\\f186\"}.fa-mortar-pestle:before{content:\"\\f5a7\"}.fa-mosque:before{content:\"\\f678\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-mountain:before{content:\"\\f6fc\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-mug-hot:before{content:\"\\f7b6\"}.fa-music:before{content:\"\\f001\"}.fa-napster:before{content:\"\\f3d2\"}.fa-neos:before{content:\"\\f612\"}.fa-network-wired:before{content:\"\\f6ff\"}.fa-neuter:before{content:\"\\f22c\"}.fa-newspaper:before{content:\"\\f1ea\"}.fa-nimblr:before{content:\"\\f5a8\"}.fa-nintendo-switch:before{content:\"\\f418\"}.fa-node:before{content:\"\\f419\"}.fa-node-js:before{content:\"\\f3d3\"}.fa-not-equal:before{content:\"\\f53e\"}.fa-notes-medical:before{content:\"\\f481\"}.fa-npm:before{content:\"\\f3d4\"}.fa-ns8:before{content:\"\\f3d5\"}.fa-nutritionix:before{content:\"\\f3d6\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-oil-can:before{content:\"\\f613\"}.fa-old-republic:before{content:\"\\f510\"}.fa-om:before{content:\"\\f679\"}.fa-opencart:before{content:\"\\f23d\"}.fa-openid:before{content:\"\\f19b\"}.fa-opera:before{content:\"\\f26a\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-osi:before{content:\"\\f41a\"}.fa-otter:before{content:\"\\f700\"}.fa-outdent:before{content:\"\\f03b\"}.fa-page4:before{content:\"\\f3d7\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-paint-roller:before{content:\"\\f5aa\"}.fa-palette:before{content:\"\\f53f\"}.fa-palfed:before{content:\"\\f3d8\"}.fa-pallet:before{content:\"\\f482\"}.fa-paper-plane:before{content:\"\\f1d8\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-parachute-box:before{content:\"\\f4cd\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-parking:before{content:\"\\f540\"}.fa-passport:before{content:\"\\f5ab\"}.fa-pastafarianism:before{content:\"\\f67b\"}.fa-paste:before{content:\"\\f0ea\"}.fa-patreon:before{content:\"\\f3d9\"}.fa-pause:before{content:\"\\f04c\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-paw:before{content:\"\\f1b0\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-peace:before{content:\"\\f67c\"}.fa-pen:before{content:\"\\f304\"}.fa-pen-alt:before{content:\"\\f305\"}.fa-pen-fancy:before{content:\"\\f5ac\"}.fa-pen-nib:before{content:\"\\f5ad\"}.fa-pen-square:before{content:\"\\f14b\"}.fa-pencil-alt:before{content:\"\\f303\"}.fa-pencil-ruler:before{content:\"\\f5ae\"}.fa-penny-arcade:before{content:\"\\f704\"}.fa-people-carry:before{content:\"\\f4ce\"}.fa-percent:before{content:\"\\f295\"}.fa-percentage:before{content:\"\\f541\"}.fa-periscope:before{content:\"\\f3da\"}.fa-person-booth:before{content:\"\\f756\"}.fa-phabricator:before{content:\"\\f3db\"}.fa-phoenix-framework:before{content:\"\\f3dc\"}.fa-phoenix-squadron:before{content:\"\\f511\"}.fa-phone:before{content:\"\\f095\"}.fa-phone-slash:before{content:\"\\f3dd\"}.fa-phone-square:before{content:\"\\f098\"}.fa-phone-volume:before{content:\"\\f2a0\"}.fa-php:before{content:\"\\f457\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-pied-piper-hat:before{content:\"\\f4e5\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-piggy-bank:before{content:\"\\f4d3\"}.fa-pills:before{content:\"\\f484\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-place-of-worship:before{content:\"\\f67f\"}.fa-plane:before{content:\"\\f072\"}.fa-plane-arrival:before{content:\"\\f5af\"}.fa-plane-departure:before{content:\"\\f5b0\"}.fa-play:before{content:\"\\f04b\"}.fa-play-circle:before{content:\"\\f144\"}.fa-playstation:before{content:\"\\f3df\"}.fa-plug:before{content:\"\\f1e6\"}.fa-plus:before{content:\"\\f067\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-poll:before{content:\"\\f681\"}.fa-poll-h:before{content:\"\\f682\"}.fa-poo:before{content:\"\\f2fe\"}.fa-poo-storm:before{content:\"\\f75a\"}.fa-poop:before{content:\"\\f619\"}.fa-portrait:before{content:\"\\f3e0\"}.fa-pound-sign:before{content:\"\\f154\"}.fa-power-off:before{content:\"\\f011\"}.fa-pray:before{content:\"\\f683\"}.fa-praying-hands:before{content:\"\\f684\"}.fa-prescription:before{content:\"\\f5b1\"}.fa-prescription-bottle:before{content:\"\\f485\"}.fa-prescription-bottle-alt:before{content:\"\\f486\"}.fa-print:before{content:\"\\f02f\"}.fa-procedures:before{content:\"\\f487\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-project-diagram:before{content:\"\\f542\"}.fa-pushed:before{content:\"\\f3e1\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-python:before{content:\"\\f3e2\"}.fa-qq:before{content:\"\\f1d6\"}.fa-qrcode:before{content:\"\\f029\"}.fa-question:before{content:\"\\f128\"}.fa-question-circle:before{content:\"\\f059\"}.fa-quidditch:before{content:\"\\f458\"}.fa-quinscape:before{content:\"\\f459\"}.fa-quora:before{content:\"\\f2c4\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-quran:before{content:\"\\f687\"}.fa-r-project:before{content:\"\\f4f7\"}.fa-radiation:before{content:\"\\f7b9\"}.fa-radiation-alt:before{content:\"\\f7ba\"}.fa-rainbow:before{content:\"\\f75b\"}.fa-random:before{content:\"\\f074\"}.fa-raspberry-pi:before{content:\"\\f7bb\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-react:before{content:\"\\f41b\"}.fa-reacteurope:before{content:\"\\f75d\"}.fa-readme:before{content:\"\\f4d5\"}.fa-rebel:before{content:\"\\f1d0\"}.fa-receipt:before{content:\"\\f543\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-red-river:before{content:\"\\f3e3\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-redhat:before{content:\"\\f7bc\"}.fa-redo:before{content:\"\\f01e\"}.fa-redo-alt:before{content:\"\\f2f9\"}.fa-registered:before{content:\"\\f25d\"}.fa-renren:before{content:\"\\f18b\"}.fa-reply:before{content:\"\\f3e5\"}.fa-reply-all:before{content:\"\\f122\"}.fa-replyd:before{content:\"\\f3e6\"}.fa-republican:before{content:\"\\f75e\"}.fa-researchgate:before{content:\"\\f4f8\"}.fa-resolving:before{content:\"\\f3e7\"}.fa-restroom:before{content:\"\\f7bd\"}.fa-retweet:before{content:\"\\f079\"}.fa-rev:before{content:\"\\f5b2\"}.fa-ribbon:before{content:\"\\f4d6\"}.fa-ring:before{content:\"\\f70b\"}.fa-road:before{content:\"\\f018\"}.fa-robot:before{content:\"\\f544\"}.fa-rocket:before{content:\"\\f135\"}.fa-rocketchat:before{content:\"\\f3e8\"}.fa-rockrms:before{content:\"\\f3e9\"}.fa-route:before{content:\"\\f4d7\"}.fa-rss:before{content:\"\\f09e\"}.fa-rss-square:before{content:\"\\f143\"}.fa-ruble-sign:before{content:\"\\f158\"}.fa-ruler:before{content:\"\\f545\"}.fa-ruler-combined:before{content:\"\\f546\"}.fa-ruler-horizontal:before{content:\"\\f547\"}.fa-ruler-vertical:before{content:\"\\f548\"}.fa-running:before{content:\"\\f70c\"}.fa-rupee-sign:before{content:\"\\f156\"}.fa-sad-cry:before{content:\"\\f5b3\"}.fa-sad-tear:before{content:\"\\f5b4\"}.fa-safari:before{content:\"\\f267\"}.fa-sass:before{content:\"\\f41e\"}.fa-satellite:before{content:\"\\f7bf\"}.fa-satellite-dish:before{content:\"\\f7c0\"}.fa-save:before{content:\"\\f0c7\"}.fa-schlix:before{content:\"\\f3ea\"}.fa-school:before{content:\"\\f549\"}.fa-screwdriver:before{content:\"\\f54a\"}.fa-scribd:before{content:\"\\f28a\"}.fa-scroll:before{content:\"\\f70e\"}.fa-sd-card:before{content:\"\\f7c2\"}.fa-search:before{content:\"\\f002\"}.fa-search-dollar:before{content:\"\\f688\"}.fa-search-location:before{content:\"\\f689\"}.fa-search-minus:before{content:\"\\f010\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-searchengin:before{content:\"\\f3eb\"}.fa-seedling:before{content:\"\\f4d8\"}.fa-sellcast:before{content:\"\\f2da\"}.fa-sellsy:before{content:\"\\f213\"}.fa-server:before{content:\"\\f233\"}.fa-servicestack:before{content:\"\\f3ec\"}.fa-shapes:before{content:\"\\f61f\"}.fa-share:before{content:\"\\f064\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-share-square:before{content:\"\\f14d\"}.fa-shekel-sign:before{content:\"\\f20b\"}.fa-shield-alt:before{content:\"\\f3ed\"}.fa-ship:before{content:\"\\f21a\"}.fa-shipping-fast:before{content:\"\\f48b\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-shoe-prints:before{content:\"\\f54b\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-shopware:before{content:\"\\f5b5\"}.fa-shower:before{content:\"\\f2cc\"}.fa-shuttle-van:before{content:\"\\f5b6\"}.fa-sign:before{content:\"\\f4d9\"}.fa-sign-in-alt:before{content:\"\\f2f6\"}.fa-sign-language:before{content:\"\\f2a7\"}.fa-sign-out-alt:before{content:\"\\f2f5\"}.fa-signal:before{content:\"\\f012\"}.fa-signature:before{content:\"\\f5b7\"}.fa-sim-card:before{content:\"\\f7c4\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-sistrix:before{content:\"\\f3ee\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-sith:before{content:\"\\f512\"}.fa-skating:before{content:\"\\f7c5\"}.fa-sketch:before{content:\"\\f7c6\"}.fa-skiing:before{content:\"\\f7c9\"}.fa-skiing-nordic:before{content:\"\\f7ca\"}.fa-skull:before{content:\"\\f54c\"}.fa-skull-crossbones:before{content:\"\\f714\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-skype:before{content:\"\\f17e\"}.fa-slack:before{content:\"\\f198\"}.fa-slack-hash:before{content:\"\\f3ef\"}.fa-slash:before{content:\"\\f715\"}.fa-sleigh:before{content:\"\\f7cc\"}.fa-sliders-h:before{content:\"\\f1de\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-smile:before{content:\"\\f118\"}.fa-smile-beam:before{content:\"\\f5b8\"}.fa-smile-wink:before{content:\"\\f4da\"}.fa-smog:before{content:\"\\f75f\"}.fa-smoking:before{content:\"\\f48d\"}.fa-smoking-ban:before{content:\"\\f54d\"}.fa-sms:before{content:\"\\f7cd\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-snowboarding:before{content:\"\\f7ce\"}.fa-snowflake:before{content:\"\\f2dc\"}.fa-snowman:before{content:\"\\f7d0\"}.fa-snowplow:before{content:\"\\f7d2\"}.fa-socks:before{content:\"\\f696\"}.fa-solar-panel:before{content:\"\\f5ba\"}.fa-sort:before{content:\"\\f0dc\"}.fa-sort-alpha-down:before{content:\"\\f15d\"}.fa-sort-alpha-up:before{content:\"\\f15e\"}.fa-sort-amount-down:before{content:\"\\f160\"}.fa-sort-amount-up:before{content:\"\\f161\"}.fa-sort-down:before{content:\"\\f0dd\"}.fa-sort-numeric-down:before{content:\"\\f162\"}.fa-sort-numeric-up:before{content:\"\\f163\"}.fa-sort-up:before{content:\"\\f0de\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-sourcetree:before{content:\"\\f7d3\"}.fa-spa:before{content:\"\\f5bb\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-speakap:before{content:\"\\f3f3\"}.fa-spider:before{content:\"\\f717\"}.fa-spinner:before{content:\"\\f110\"}.fa-splotch:before{content:\"\\f5bc\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-spray-can:before{content:\"\\f5bd\"}.fa-square:before{content:\"\\f0c8\"}.fa-square-full:before{content:\"\\f45c\"}.fa-square-root-alt:before{content:\"\\f698\"}.fa-squarespace:before{content:\"\\f5be\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-stamp:before{content:\"\\f5bf\"}.fa-star:before{content:\"\\f005\"}.fa-star-and-crescent:before{content:\"\\f699\"}.fa-star-half:before{content:\"\\f089\"}.fa-star-half-alt:before{content:\"\\f5c0\"}.fa-star-of-david:before{content:\"\\f69a\"}.fa-star-of-life:before{content:\"\\f621\"}.fa-staylinked:before{content:\"\\f3f5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-steam-symbol:before{content:\"\\f3f6\"}.fa-step-backward:before{content:\"\\f048\"}.fa-step-forward:before{content:\"\\f051\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-sticker-mule:before{content:\"\\f3f7\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-stop:before{content:\"\\f04d\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stopwatch:before{content:\"\\f2f2\"}.fa-store:before{content:\"\\f54e\"}.fa-store-alt:before{content:\"\\f54f\"}.fa-strava:before{content:\"\\f428\"}.fa-stream:before{content:\"\\f550\"}.fa-street-view:before{content:\"\\f21d\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-stripe:before{content:\"\\f429\"}.fa-stripe-s:before{content:\"\\f42a\"}.fa-stroopwafel:before{content:\"\\f551\"}.fa-studiovinari:before{content:\"\\f3f8\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-subscript:before{content:\"\\f12c\"}.fa-subway:before{content:\"\\f239\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-suitcase-rolling:before{content:\"\\f5c1\"}.fa-sun:before{content:\"\\f185\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-superscript:before{content:\"\\f12b\"}.fa-supple:before{content:\"\\f3f9\"}.fa-surprise:before{content:\"\\f5c2\"}.fa-suse:before{content:\"\\f7d6\"}.fa-swatchbook:before{content:\"\\f5c3\"}.fa-swimmer:before{content:\"\\f5c4\"}.fa-swimming-pool:before{content:\"\\f5c5\"}.fa-synagogue:before{content:\"\\f69b\"}.fa-sync:before{content:\"\\f021\"}.fa-sync-alt:before{content:\"\\f2f1\"}.fa-syringe:before{content:\"\\f48e\"}.fa-table:before{content:\"\\f0ce\"}.fa-table-tennis:before{content:\"\\f45d\"}.fa-tablet:before{content:\"\\f10a\"}.fa-tablet-alt:before{content:\"\\f3fa\"}.fa-tablets:before{content:\"\\f490\"}.fa-tachometer-alt:before{content:\"\\f3fd\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-tape:before{content:\"\\f4db\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-taxi:before{content:\"\\f1ba\"}.fa-teamspeak:before{content:\"\\f4f9\"}.fa-teeth:before{content:\"\\f62e\"}.fa-teeth-open:before{content:\"\\f62f\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-telegram-plane:before{content:\"\\f3fe\"}.fa-temperature-high:before{content:\"\\f769\"}.fa-temperature-low:before{content:\"\\f76b\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-tenge:before{content:\"\\f7d7\"}.fa-terminal:before{content:\"\\f120\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-th:before{content:\"\\f00a\"}.fa-th-large:before{content:\"\\f009\"}.fa-th-list:before{content:\"\\f00b\"}.fa-the-red-yeti:before{content:\"\\f69d\"}.fa-theater-masks:before{content:\"\\f630\"}.fa-themeco:before{content:\"\\f5c6\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-thermometer:before{content:\"\\f491\"}.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-think-peaks:before{content:\"\\f731\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbtack:before{content:\"\\f08d\"}.fa-ticket-alt:before{content:\"\\f3ff\"}.fa-times:before{content:\"\\f00d\"}.fa-times-circle:before{content:\"\\f057\"}.fa-tint:before{content:\"\\f043\"}.fa-tint-slash:before{content:\"\\f5c7\"}.fa-tired:before{content:\"\\f5c8\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-toilet:before{content:\"\\f7d8\"}.fa-toilet-paper:before{content:\"\\f71e\"}.fa-toolbox:before{content:\"\\f552\"}.fa-tools:before{content:\"\\f7d9\"}.fa-tooth:before{content:\"\\f5c9\"}.fa-torah:before{content:\"\\f6a0\"}.fa-torii-gate:before{content:\"\\f6a1\"}.fa-tractor:before{content:\"\\f722\"}.fa-trade-federation:before{content:\"\\f513\"}.fa-trademark:before{content:\"\\f25c\"}.fa-traffic-light:before{content:\"\\f637\"}.fa-train:before{content:\"\\f238\"}.fa-tram:before{content:\"\\f7da\"}.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-trash:before{content:\"\\f1f8\"}.fa-trash-alt:before{content:\"\\f2ed\"}.fa-tree:before{content:\"\\f1bb\"}.fa-trello:before{content:\"\\f181\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-trophy:before{content:\"\\f091\"}.fa-truck:before{content:\"\\f0d1\"}.fa-truck-loading:before{content:\"\\f4de\"}.fa-truck-monster:before{content:\"\\f63b\"}.fa-truck-moving:before{content:\"\\f4df\"}.fa-truck-pickup:before{content:\"\\f63c\"}.fa-tshirt:before{content:\"\\f553\"}.fa-tty:before{content:\"\\f1e4\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-tv:before{content:\"\\f26c\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-twitter:before{content:\"\\f099\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-typo3:before{content:\"\\f42b\"}.fa-uber:before{content:\"\\f402\"}.fa-ubuntu:before{content:\"\\f7df\"}.fa-uikit:before{content:\"\\f403\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-umbrella-beach:before{content:\"\\f5ca\"}.fa-underline:before{content:\"\\f0cd\"}.fa-undo:before{content:\"\\f0e2\"}.fa-undo-alt:before{content:\"\\f2ea\"}.fa-uniregistry:before{content:\"\\f404\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-university:before{content:\"\\f19c\"}.fa-unlink:before{content:\"\\f127\"}.fa-unlock:before{content:\"\\f09c\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-untappd:before{content:\"\\f405\"}.fa-upload:before{content:\"\\f093\"}.fa-ups:before{content:\"\\f7e0\"}.fa-usb:before{content:\"\\f287\"}.fa-user:before{content:\"\\f007\"}.fa-user-alt:before{content:\"\\f406\"}.fa-user-alt-slash:before{content:\"\\f4fa\"}.fa-user-astronaut:before{content:\"\\f4fb\"}.fa-user-check:before{content:\"\\f4fc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-clock:before{content:\"\\f4fd\"}.fa-user-cog:before{content:\"\\f4fe\"}.fa-user-edit:before{content:\"\\f4ff\"}.fa-user-friends:before{content:\"\\f500\"}.fa-user-graduate:before{content:\"\\f501\"}.fa-user-injured:before{content:\"\\f728\"}.fa-user-lock:before{content:\"\\f502\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-user-minus:before{content:\"\\f503\"}.fa-user-ninja:before{content:\"\\f504\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-user-shield:before{content:\"\\f505\"}.fa-user-slash:before{content:\"\\f506\"}.fa-user-tag:before{content:\"\\f507\"}.fa-user-tie:before{content:\"\\f508\"}.fa-user-times:before{content:\"\\f235\"}.fa-users:before{content:\"\\f0c0\"}.fa-users-cog:before{content:\"\\f509\"}.fa-usps:before{content:\"\\f7e1\"}.fa-ussunnah:before{content:\"\\f407\"}.fa-utensil-spoon:before{content:\"\\f2e5\"}.fa-utensils:before{content:\"\\f2e7\"}.fa-vaadin:before{content:\"\\f408\"}.fa-vector-square:before{content:\"\\f5cb\"}.fa-venus:before{content:\"\\f221\"}.fa-venus-double:before{content:\"\\f226\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-viacoin:before{content:\"\\f237\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-vial:before{content:\"\\f492\"}.fa-vials:before{content:\"\\f493\"}.fa-viber:before{content:\"\\f409\"}.fa-video:before{content:\"\\f03d\"}.fa-video-slash:before{content:\"\\f4e2\"}.fa-vihara:before{content:\"\\f6a7\"}.fa-vimeo:before{content:\"\\f40a\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-vimeo-v:before{content:\"\\f27d\"}.fa-vine:before{content:\"\\f1ca\"}.fa-vk:before{content:\"\\f189\"}.fa-vnv:before{content:\"\\f40b\"}.fa-volleyball-ball:before{content:\"\\f45f\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-mute:before{content:\"\\f6a9\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-up:before{content:\"\\f028\"}.fa-vote-yea:before{content:\"\\f772\"}.fa-vr-cardboard:before{content:\"\\f729\"}.fa-vuejs:before{content:\"\\f41f\"}.fa-walking:before{content:\"\\f554\"}.fa-wallet:before{content:\"\\f555\"}.fa-warehouse:before{content:\"\\f494\"}.fa-water:before{content:\"\\f773\"}.fa-weebly:before{content:\"\\f5cc\"}.fa-weibo:before{content:\"\\f18a\"}.fa-weight:before{content:\"\\f496\"}.fa-weight-hanging:before{content:\"\\f5cd\"}.fa-weixin:before{content:\"\\f1d7\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-whatsapp-square:before{content:\"\\f40c\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-whmcs:before{content:\"\\f40d\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-wind:before{content:\"\\f72e\"}.fa-window-close:before{content:\"\\f410\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-windows:before{content:\"\\f17a\"}.fa-wine-bottle:before{content:\"\\f72f\"}.fa-wine-glass:before{content:\"\\f4e3\"}.fa-wine-glass-alt:before{content:\"\\f5ce\"}.fa-wix:before{content:\"\\f5cf\"}.fa-wizards-of-the-coast:before{content:\"\\f730\"}.fa-wolf-pack-battalion:before{content:\"\\f514\"}.fa-won-sign:before{content:\"\\f159\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-wordpress-simple:before{content:\"\\f411\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-wpforms:before{content:\"\\f298\"}.fa-wpressr:before{content:\"\\f3e4\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-x-ray:before{content:\"\\f497\"}.fa-xbox:before{content:\"\\f412\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-y-combinator:before{content:\"\\f23b\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-yandex:before{content:\"\\f413\"}.fa-yandex-international:before{content:\"\\f414\"}.fa-yarn:before{content:\"\\f7e3\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-yen-sign:before{content:\"\\f157\"}.fa-yin-yang:before{content:\"\\f6ad\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-youtube:before{content:\"\\f167\"}.fa-youtube-square:before{content:\"\\f431\"}.fa-zhihu:before{content:\"\\f63f\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:\"Font Awesome 5 Brands\";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.woff) format(\"woff\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\"),url(../webfonts/fa-brands-400.svg#fontawesome) format(\"svg\")}.fab{font-family:\"Font Awesome 5 Brands\"}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.woff) format(\"woff\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\"),url(../webfonts/fa-regular-400.svg#fontawesome) format(\"svg\")}.far{font-weight:400}@font-face{font-family:\"Font Awesome 5 Free\";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format(\"embedded-opentype\"),url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.woff) format(\"woff\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\"),url(../webfonts/fa-solid-900.svg#fontawesome) format(\"svg\")}.fa,.far,.fas{font-family:\"Font Awesome 5 Free\"}.fa,.fas{font-weight:900}"
  },
  {
    "path": "gateway/static/js/app.js",
    "content": "!function(t){\"use strict\";function e(t,e,n){return n.a=t,n.f=e,n}function R(n){return e(2,n,function(e){return function(t){return n(e,t)}})}function d(r){return e(3,r,function(n){return function(e){return function(t){return r(n,e,t)}}})}function f(a){return e(4,a,function(r){return function(n){return function(e){return function(t){return a(r,n,e,t)}}}})}function n(u){return e(5,u,function(a){return function(r){return function(n){return function(e){return function(t){return u(a,r,n,e,t)}}}}})}function r(i){return e(6,i,function(u){return function(a){return function(r){return function(n){return function(e){return function(t){return i(u,a,r,n,e,t)}}}}}})}function a(o){return e(7,o,function(i){return function(u){return function(a){return function(r){return function(n){return function(e){return function(t){return o(i,u,a,r,n,e,t)}}}}}}})}function u(s){return e(9,s,function(c){return function(o){return function(i){return function(u){return function(a){return function(r){return function(n){return function(e){return function(t){return s(c,o,i,u,a,r,n,e,t)}}}}}}}}})}function M(t,e,n){return 2===t.a?t.f(e,n):t(e)(n)}function C(t,e,n,r){return 3===t.a?t.f(e,n,r):t(e)(n)(r)}function $(t,e,n,r,a){return 4===t.a?t.f(e,n,r,a):t(e)(n)(r)(a)}function x(t,e,n,r,a,u){return 5===t.a?t.f(e,n,r,a,u):t(e)(n)(r)(a)(u)}function A(t,e,n,r,a,u,i){return 6===t.a?t.f(e,n,r,a,u,i):t(e)(n)(r)(a)(u)(i)}function l(t,e,n,r,a,u,i,o){return 7===t.a?t.f(e,n,r,a,u,i,o):t(e)(n)(r)(a)(u)(i)(o)}console.warn(\"Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.\");var m={$:\"[]\"};function h(t,e){return{$:\"::\",a:t,b:e}}var i=R(h);function L(t){for(var e=m,n=t.length;n--;)e=h(t[n],e);return e}function o(t){for(var e=[];t.b;t=t.b)e.push(t.a);return e}var c=d(function(t,e,n){for(var r=[];e.b&&n.b;e=e.b,n=n.b)r.push(M(t,e.a,n.a));return L(r)}),s=R(function(n,t){return L(o(t).sort(function(t,e){return g(n(t),n(e))}))}),b=R(function(r,t){return L(o(t).sort(function(t,e){var n=M(r,t,e);return n===Cn?0:n===An?-1:1}))});function _(t,e){for(var n,r=[],a=v(t,e,0,r);a&&(n=r.pop());a=v(n.a,n.b,0,r));return a}function v(t,e,n,r){if(100<n)return r.push(D(t,e)),!0;if(t===e)return!0;if(\"object\"!=typeof t||null===t||null===e)return\"function\"==typeof t&&H(5),!1;for(var a in\"Set_elm_builtin\"===t.$&&(t=Pn(t),e=Pn(e)),\"RBNode_elm_builtin\"!==t.$&&\"RBEmpty_elm_builtin\"!==t.$||(t=Dn(t),e=Dn(e)),t)if(!v(t[a],e[a],n+1,r))return!1;return!0}var p=R(function(t,e){return!_(t,e)});function g(t,e,n){if(\"object\"!=typeof t)return t===e?0:t<e?-1:1;if(t instanceof String){var r=t.valueOf(),a=e.valueOf();return r===a?0:r<a?-1:1}if(\"#\"===t.$[0])return(n=g(t.a,e.a))?n:(n=g(t.b,e.b))?n:g(t.c,e.c);for(;t.b&&e.b&&!(n=g(t.a,e.a));t=t.b,e=e.b);return n||(t.b?1:e.b?-1:0)}var w=R(function(t,e){var n=g(t,e);return n<0?An:n?xn:Cn}),S={$:\"#0\"};function D(t,e){return{$:\"#2\",a:t,b:e}}function y(t,e,n){return{$:\"#3\",a:t,b:e,c:n}}function k(t){return new String(t)}function O(t,e){var n={};for(var r in t)n[r]=t[r];for(var r in e)n[r]=e[r];return n}var P=R(N);function N(t,e){if(\"string\"==typeof t)return t+e;if(!t.b)return e;var n=h(t.a,e);t=t.b;for(var r=n;t.b;t=t.b)r=r.b=h(t.a,e);return n}var F=d(function(t,e,n){for(var r=Array(t),a=0;a<t;a++)r[a]=n(e+a);return r}),B=R(function(t,e){for(var n=Array(t),r=0;r<t&&e.b;r++)n[r]=e.a,e=e.b;return n.length=r,D(n,e)}),z=R(function(t,e){return e[t]}),T=d(function(t,e,n){for(var r=n.length-1;0<=r;r--)e=M(t,n[r],e);return e});function I(t){return function t(e,n){if(\"function\"==typeof n)return V(e,\"<function>\");if(\"boolean\"==typeof n)return G(e,n?\"True\":\"False\");if(\"number\"==typeof n)return X(e,n+\"\");if(n instanceof String)return J(e,\"'\"+E(n,!0)+\"'\");if(\"string\"==typeof n)return U(e,'\"'+E(n,!1)+'\"');if(\"object\"==typeof n&&\"$\"in n){var r=n.$;if(\"number\"==typeof r)return V(e,\"<internals>\");if(\"#\"===r[0]){var a=[];for(var u in n)\"$\"!==u&&a.push(t(e,n[u]));return\"(\"+a.join(\",\")+\")\"}if(\"Set_elm_builtin\"===r)return G(e,\"Set\")+j(e,\".fromList\")+\" \"+t(e,Pn(n));if(\"RBNode_elm_builtin\"===r||\"RBEmpty_elm_builtin\"===r)return G(e,\"Dict\")+j(e,\".fromList\")+\" \"+t(e,Dn(n));if(\"Array_elm_builtin\"===r)return G(e,\"Array\")+j(e,\".fromList\")+\" \"+t(e,Bn(n));if(\"::\"===r||\"[]\"===r){var a=\"[\";for(n.b&&(a+=t(e,n.a),n=n.b);n.b;n=n.b)a+=\",\"+t(e,n.a);return a+\"]\"}var a=\"\";for(var i in n)if(\"$\"!==i){var o=t(e,n[i]),c=o[0],s=\"{\"===c||\"(\"===c||\"[\"===c||\"<\"===c||'\"'===c||o.indexOf(\" \")<0;a+=\" \"+(s?o:\"(\"+o+\")\")}return G(e,r)+a}if(\"function\"==typeof DataView&&n instanceof DataView)return U(e,\"<\"+n.byteLength+\" bytes>\");if(\"function\"==typeof File&&n instanceof File)return V(e,\"<\"+n.name+\">\");if(\"object\"==typeof n){var a=[];for(var f in n){var l=\"_\"===f[0]?f.slice(1):f;a.push(j(e,l)+\" = \"+t(e,n[f]))}return 0===a.length?\"{}\":\"{ \"+a.join(\", \")+\" }\"}return V(e,\"<internals>\")}(!1,t)}function E(t,e){var n=t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\n/g,\"\\\\n\").replace(/\\t/g,\"\\\\t\").replace(/\\r/g,\"\\\\r\").replace(/\\v/g,\"\\\\v\").replace(/\\0/g,\"\\\\0\");return e?n.replace(/\\'/g,\"\\\\'\"):n.replace(/\\\"/g,'\\\\\"')}function G(t,e){return t?\"\u001b[96m\"+e+\"\u001b[0m\":e}function X(t,e){return t?\"\u001b[95m\"+e+\"\u001b[0m\":e}function U(t,e){return t?\"\u001b[93m\"+e+\"\u001b[0m\":e}function J(t,e){return t?\"\u001b[92m\"+e+\"\u001b[0m\":e}function j(t,e){return t?\"\u001b[37m\"+e+\"\u001b[0m\":e}function V(t,e){return t?\"\u001b[94m\"+e+\"\u001b[0m\":e}function H(t,e,n,r,a){switch(t){case 0:throw Error('What node should I take over? In JavaScript I need something like:\\n\\n    Elm.Main.init({\\n        node: document.getElementById(\"elm-node\")\\n    })\\n\\nYou need to do this with any Browser.sandbox or Browser.element program.');case 1:throw Error(\"Browser.application programs cannot handle URLs like this:\\n\\n    \"+document.location.href+\"\\n\\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.\");case 2:throw Error(\"Problem with the flags given to your Elm program on initialization.\\n\\n\"+e);case 3:throw Error(\"There can only be one port named `\"+e+\"`, but your program has multiple.\");case 4:throw Error(\"Trying to send an unexpected type of value through port `\"+e+\"`:\\n\"+n);case 5:throw Error('Trying to use `(==)` on functions.\\nThere is no way to know if functions are \"the same\" in the Elm sense.\\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');case 6:throw Error(\"Your page is loading multiple Elm scripts with a module named \"+e+\". Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!\");case 8:var u=r;throw Error(\"TODO in module `\"+e+\"` \"+q(n)+\"\\n\\n\"+u);case 9:var i=r;u=a;throw Error(\"TODO in module `\"+e+\"` from the `case` expression \"+q(n)+\"\\n\\nIt received the following value:\\n\\n    \"+I(i).replace(\"\\n\",\"\\n    \")+\"\\n\\nBut the branch that handles it says:\\n\\n    \"+u.replace(\"\\n\",\"\\n    \"));case 10:throw Error(\"Bug in https://github.com/elm/virtual-dom/issues\");case 11:throw Error(\"Cannot perform mod 0. Division by zero error.\")}}function q(t){return t.start.line===t.end.line?\"on line \"+t.start.line:\"on lines \"+t.start.line+\" through \"+t.end.line}var W=R(function(t,e){return t+e}),K=R(function(t,e){var n=e%t;return 0===t?H(11):0<n&&t<0||n<0&&0<t?n+t:n});var Q=Math.ceil,Y=Math.floor,Z=Math.round,tt=Math.log,et=isNaN;var nt=R(function(t,e){return t+e});var rt=d(function(t,e,n){for(var r=n.length;r--;){var a=n[r],u=n.charCodeAt(r);u<56320||57343<u||(a=n[--r]+a),e=M(t,k(a),e)}return e}),at=R(function(t,e){return e.split(t)}),ut=R(function(t,e){return e.join(t)}),it=d(function(t,e,n){return n.slice(t,e)});var ot=R(function(t,e){for(var n=e.length;n--;){var r=e[n],a=e.charCodeAt(n);if(a<56320||57343<a||(r=e[--n]+r),!t(k(r)))return!1}return!0}),ct=R(function(t,e){return-1<e.indexOf(t)}),st=R(function(t,e){return 0==e.indexOf(t)}),ft=R(function(t,e){return t.length<=e.length&&e.lastIndexOf(t)==e.length-t.length}),lt=R(function(t,e){var n=t.length;if(n<1)return m;for(var r=0,a=[];-1<(r=e.indexOf(t,r));)a.push(r),r+=n;return L(a)});function dt(t){return t+\"\"}function mt(t){return{$:2,b:t}}var ht=mt(function(t){return\"number\"!=typeof t?Ot(\"an INT\",t):-2147483647<t&&t<2147483647&&(0|t)===t?or(t):!isFinite(t)||t%1?Ot(\"an INT\",t):or(t)}),bt=mt(function(t){return\"boolean\"==typeof t?or(t):Ot(\"a BOOL\",t)}),vt=mt(function(t){return\"number\"==typeof t?or(t):Ot(\"a FLOAT\",t)}),pt=(mt(function(t){return or(Bt(t))}),mt(function(t){return\"string\"==typeof t?or(t):t instanceof String?or(t+\"\"):Ot(\"a STRING\",t)}));var gt=R(function(t,e){return{$:6,d:t,b:e}});function $t(t,e){return{$:9,f:t,g:e}}var wt=R(function(t,e){return{$:10,b:e,h:t}});var St=R(function(t,e){return $t(t,[e])}),yt=d(function(t,e,n){return $t(t,[e,n])}),kt=f(function(t,e,n,r){return $t(t,[e,n,r])}),Rt=n(function(t,e,n,r,a){return $t(t,[e,n,r,a])}),Mt=r(function(t,e,n,r,a,u){return $t(t,[e,n,r,a,u])}),Ct=R(function(t,e){try{return At(t,JSON.parse(e))}catch(t){return ir(M(sr,\"This is not valid JSON! \"+t.message,Bt(e)))}}),xt=R(function(t,e){return At(t,zt(e))});function At(t,e){switch(t.$){case 2:return t.b(e);case 5:return null===e?or(t.c):Ot(\"null\",e);case 3:return _t(e)?Lt(t.b,e,L):Ot(\"a LIST\",e);case 4:return _t(e)?Lt(t.b,e,Dt):Ot(\"an ARRAY\",e);case 6:var n=t.d;if(\"object\"!=typeof e||null===e||!(n in e))return Ot(\"an OBJECT with a field named `\"+n+\"`\",e);var r=At(t.b,e[n]);return cr(r)?r:ir(M(fr,n,r.a));case 7:var a=t.e;if(!_t(e))return Ot(\"an ARRAY\",e);if(e.length<=a)return Ot(\"a LONGER array. Need index \"+a+\" but only see \"+e.length+\" entries\",e);r=At(t.b,e[a]);return cr(r)?r:ir(M(lr,a,r.a));case 8:if(\"object\"!=typeof e||null===e||!_t(e))return Ot(\"an OBJECT\",e);var u=m;for(var i in e)if(e.hasOwnProperty(i)){r=At(t.b,e[i]);if(!cr(r))return ir(M(fr,i,r.a));u=h(D(i,r.a),u)}return or(jn(u));case 9:for(var o=t.f,c=t.g,s=0;s<c.length;s++){r=At(c[s],e);if(!cr(r))return r;o=o(r.a)}return or(o);case 10:r=At(t.b,e);return cr(r)?At(t.h(r.a),e):r;case 11:for(var f=m,l=t.g;l.b;l=l.b){r=At(l.a,e);if(cr(r))return r;f=h(r.a,f)}return ir(dr(jn(f)));case 1:return ir(M(sr,t.a,Bt(e)));case 0:return or(t.a)}}function Lt(t,e,n){for(var r=e.length,a=Array(r),u=0;u<r;u++){var i=At(t,e[u]);if(!cr(i))return ir(M(lr,u,i.a));a[u]=i.a}return or(n(a))}function _t(t){return Array.isArray(t)||t instanceof FileList}function Dt(e){return M(rr,e.length,function(t){return e[t]})}function Ot(t,e){return ir(M(sr,\"Expecting \"+t,Bt(e)))}function Pt(t,e){if(t===e)return!0;if(t.$!==e.$)return!1;switch(t.$){case 0:case 1:return t.a===e.a;case 2:return t.b===e.b;case 5:return t.c===e.c;case 3:case 4:case 8:return Pt(t.b,e.b);case 6:return t.d===e.d&&Pt(t.b,e.b);case 7:return t.e===e.e&&Pt(t.b,e.b);case 9:return t.f===e.f&&Nt(t.g,e.g);case 10:return t.h===e.h&&Pt(t.b,e.b);case 11:return Nt(t.g,e.g)}}function Nt(t,e){var n=t.length;if(n!==e.length)return!1;for(var r=0;r<n;r++)if(!Pt(t[r],e[r]))return!1;return!0}var Ft=R(function(t,e){return JSON.stringify(zt(e),null,t)+\"\"});function Bt(t){return{$:0,a:t}}function zt(t){return t.a}var Tt=d(function(t,e,n){return n[t]=zt(e),n});var It=Bt(null);function Et(t){return{$:0,a:t}}function Gt(t){return{$:2,b:t,c:null}}var Xt=R(function(t,e){return{$:3,b:t,d:e}});var Ut=0;function Jt(t){var e={$:0,e:Ut++,f:t,g:null,h:[]};return Kt(e),e}function jt(e){return Gt(function(t){t(Et(Jt(e)))})}function Vt(t,e){t.h.push(e),Kt(t)}var Ht=R(function(e,n){return Gt(function(t){Vt(e,n),t(Et(S))})});var qt=!1,Wt=[];function Kt(t){if(Wt.push(t),!qt){for(qt=!0;t=Wt.shift();)Qt(t);qt=!1}}function Qt(e){for(;e.f;){var t=e.f.$;if(0===t||1===t){for(;e.g&&e.g.$!==t;)e.g=e.g.i;if(!e.g)return;e.f=e.g.b(e.f.a),e.g=e.g.i}else{if(2===t)return void(e.f.c=e.f.b(function(t){e.f=t,Kt(e)}));if(5===t){if(0===e.h.length)return;e.f=e.f.b(e.h.shift())}else e.g={$:3===t?0:1,b:e.f.b,i:e.g},e.f=e.f.d}}}function Yt(n){return Gt(function(t){var e=setTimeout(function(){t(Et(S))},n);return function(){clearTimeout(e)}})}function Zt(t,e,n,r,a,u){var i=M(xt,t,Bt(e?e.flags:void 0));cr(i)||H(2,Or(i.a));var o={},c=(i=n(i.a)).a,s=u(l,c),f=function(t,e){var n;for(var r in te){var a=te[r];a.a&&((n=n||{})[r]=a.a(r,e)),t[r]=ne(a,e)}return n}(o,l);function l(t,e){s(c=(i=M(r,t,c)).a,e),ce(o,i.b,a(c))}return ce(o,i.b,a(c)),f?{ports:f}:{}}var te={};function ee(t,e,n,r,a){return{b:t,c:e,d:n,e:r,f:a}}function ne(t,e){var r={g:e,h:void 0},a=t.c,u=t.d,i=t.e,o=t.f;function c(n){return M(Xt,c,{$:5,b:function(t){var e=t.a;return 0===t.$?C(u,r,e,n):i&&o?$(a,r,e.i,e.j,n):C(a,r,i?e.i:e.j,n)}})}return r.h=Jt(M(Xt,c,t.b))}var re=R(function(e,n){return Gt(function(t){e.g(n),t(Et(S))})}),ae=R(function(t,e){return M(Ht,t.h,{$:0,a:e})});function ue(e){return function(t){return{$:1,k:e,l:t}}}function ie(t){return{$:2,m:t}}var oe=R(function(t,e){return{$:3,n:t,o:e}});function ce(t,e,n){var r={};for(var a in se(!0,e,r,null),se(!1,n,r,null),t)Vt(t[a],{$:\"fx\",a:r[a]||{i:m,j:m}})}function se(t,e,n,r){switch(e.$){case 1:var a=e.k,u=function(t,e,n,r){function a(t){for(var e=n;e;e=e.q)t=e.p(t);return t}return M(t?te[e].e:te[e].f,a,r)}(t,a,r,e.l);return void(n[a]=function(t,e,n){return n=n||{i:m,j:m},t?n.i=h(e,n.i):n.j=h(e,n.j),n}(t,u,n[a]));case 2:for(var i=e.m;i.b;i=i.b)se(t,i.a,n,r);return;case 3:return void se(t,e.o,n,{p:e.n,q:r})}}function fe(t){te[t]&&H(3,t)}function le(t,e){return fe(t),te[t]={e:de,r:e,a:me},ue(t)}var de=R(function(t,e){return e});function me(t){var u=[],i=te[t].r,o=Yt(0);return te[t].b=o,te[t].c=d(function(t,e){for(;e.b;e=e.b)for(var n=u,r=zt(i(e.a)),a=0;a<n.length;a++)n[a](r);return o}),{subscribe:function(t){u.push(t)},unsubscribe:function(t){var e=(u=u.slice()).indexOf(t);e<0||u.splice(e,1)}}}function he(t,e){return fe(t),te[t]={f:be,r:e,a:ve},ue(t)}var be=R(function(e,n){return function(t){return e(n(t))}});function ve(a,u){var i=m,o=te[a].r,n=Et(null);return te[a].b=n,te[a].c=d(function(t,e){return i=e,n}),{send:function(t){var e=M(xt,o,Bt(t));cr(e)||H(4,a,e.a);for(var n=e.a,r=i;r.b;r=r.b)u(r.a(n))}}}var pe=d(function(r,a,u){return Gt(function(e){function n(t){e(a(u.expect.a(t)))}var t=new XMLHttpRequest;t.addEventListener(\"error\",function(){n(sa)}),t.addEventListener(\"timeout\",function(){n(da)}),t.addEventListener(\"load\",function(){n(function(t,e){return M(200<=e.status&&e.status<300?ca:ia,function(t){return{url:t.responseURL,statusCode:t.status,statusText:t.statusText,headers:function(t){if(!t)return Er;for(var e=Er,n=t.split(\"\\r\\n\"),r=n.length;r--;){var a=n[r],u=a.indexOf(\": \");if(0<u){var i=a.substring(0,u),o=a.substring(u+2);e=C(na,i,function(t){return ar(ra(t)?o+\", \"+t.a:o)},e)}}return e}(t.getAllResponseHeaders())}}(e),t(e.response))}(u.expect.b,t))}),ra(u.tracker)&&function(e,n,r){n.upload.addEventListener(\"progress\",function(t){n.c||Jt(M(ua,e,D(r,la({sent:t.loaded,size:t.total}))))}),n.addEventListener(\"progress\",function(t){n.c||Jt(M(ua,e,D(r,fa({received:t.loaded,size:t.lengthComputable?ar(t.total):ur}))))})}(r,t,u.tracker.a);try{t.open(u.method,u.url,!0)}catch(t){return n(oa(u.url))}return function(t,e){for(var n=e.headers;n.b;n=n.b)t.setRequestHeader(n.a.a,n.a.b);t.timeout=e.timeout.a||0,t.responseType=e.expect.d,t.withCredentials=e.allowCookiesFromOtherDomains}(t,u),u.body.a&&t.setRequestHeader(\"Content-Type\",u.body.a),t.send(u.body.b),function(){t.c=!0,t.abort()}})});var ge=d(function(t,e,n){return{$:0,d:t,b:e,a:n}}),$e=R(function(e,n){return{$:0,d:n.d,b:n.b,a:function(t){return e(n.a(t))}}});function we(t){return new DataView(t)}var Se=R(function(t,e){return{$:0,a:t,b:e}});var ye;var ke=\"undefined\"!=typeof document?document:{};function Re(t,e){t.appendChild(e)}function Me(t){return{$:0,a:t}}var Ce=R(function(u,i){return R(function(t,e){for(var n=[],r=0;e.b;e=e.b){var a=e.a;r+=a.b||0,n.push(a)}return r+=n.length,{$:1,c:i,d:ze(t),e:n,f:u,b:r}})})(void 0),xe=R(function(u,i){return R(function(t,e){for(var n=[],r=0;e.b;e=e.b){var a=e.a;r+=a.b.b||0,n.push(a)}return r+=n.length,{$:2,c:i,d:ze(t),e:n,f:u,b:r}})})(void 0);var Ae=R(function(t,e){return{$:4,j:t,k:e,b:1+(e.b||0)}});function Le(t,e){return{$:5,l:t,m:e,k:void 0}}var _e=R(function(t,e){return Le([t,e],function(){return t(e)})}),De=f(function(t,e,n,r){return Le([t,e,n,r],function(){return C(t,e,n,r)})}),Oe=R(function(t,e){return{$:\"a0\",n:t,o:e}}),Pe=R(function(t,e){return{$:\"a1\",n:t,o:e}}),Ne=R(function(t,e){return{$:\"a2\",n:t,o:e}}),Fe=R(function(t,e){return{$:\"a3\",n:t,o:e}});var Be;function ze(t){for(var e={};t.b;t=t.b){var n=t.a,r=n.$,a=n.n,u=n.o;if(\"a2\"!==r){var i=e[r]||(e[r]={});\"a3\"===r&&\"class\"===a?Te(i,a,u):i[a]=u}else\"className\"===a?Te(e,a,zt(u)):e[a]=zt(u)}return e}function Te(t,e,n){var r=t[e];t[e]=r?r+\" \"+n:n}function Ie(t,e){var n=t.$;if(5===n)return Ie(t.k||(t.k=t.m()),e);if(0===n)return ke.createTextNode(t.a);if(4===n){for(var r=t.k,a=t.j;4===r.$;)\"object\"!=typeof a?a=[a,r.j]:a.push(r.j),r=r.k;var u={j:a,p:e};return(i=Ie(r,u)).elm_event_node_ref=u,i}if(3===n)return Ee(i=t.h(t.g),e,t.d),i;var i=t.f?ke.createElementNS(t.f,t.c):ke.createElement(t.c);ye&&\"a\"==t.c&&i.addEventListener(\"click\",ye(i)),Ee(i,e,t.d);for(var o=t.e,c=0;c<o.length;c++)Re(i,Ie(1===n?o[c]:o[c].b,e));return i}function Ee(t,e,n){for(var r in n){var a=n[r];\"a1\"===r?Ge(t,a):\"a0\"===r?Je(t,e,a):\"a3\"===r?Xe(t,a):\"a4\"===r?Ue(t,a):(\"value\"!==r||\"checked\"!==r||t[r]!==a)&&(t[r]=a)}}function Ge(t,e){var n=t.style;for(var r in e)n[r]=e[r]}function Xe(t,e){for(var n in e){var r=e[n];r?t.setAttribute(n,r):t.removeAttribute(n)}}function Ue(t,e){for(var n in e){var r=e[n],a=r.f,u=r.o;u?t.setAttributeNS(a,n,u):t.removeAttributeNS(a,n)}}function Je(t,e,n){var r=t.elmFs||(t.elmFs={});for(var a in n){var u=n[a],i=r[a];if(u){if(i){if(i.q.$===u.$){i.q=u;continue}t.removeEventListener(a,i)}i=je(e,u),t.addEventListener(a,i,Be&&{passive:Ou(u)<2}),r[a]=i}else t.removeEventListener(a,i),r[a]=void 0}}try{window.addEventListener(\"t\",null,Object.defineProperty({},\"passive\",{get:function(){Be=!0}}))}catch(t){}function je(f,t){function l(t){var e=l.q,n=At(e.a,t);if(cr(n)){for(var r,a=Ou(e),u=n.a,i=a?a<3?u.a:u.message:u,o=1==a?u.b:3==a&&u.stopPropagation,c=(o&&t.stopPropagation(),(2==a?u.b:3==a&&u.preventDefault)&&t.preventDefault(),f);r=c.j;){if(\"function\"==typeof r)i=r(i);else for(var s=r.length;s--;)i=r[s](i);c=c.p}c(i,o)}}return l.q=t,l}function Ve(t,e){return t.$==e.$&&Pt(t.a,e.a)}function He(t,e){var n=[];return We(t,e,n,0),n}function qe(t,e,n,r){var a={$:e,r:n,s:r,t:void 0,u:void 0};return t.push(a),a}function We(t,e,n,r){if(t!==e){var a=t.$,u=e.$;if(a!==u){if(1!==a||2!==u)return void qe(n,0,r,e);e=function(t){for(var e=t.e,n=e.length,r=Array(n),a=0;a<n;a++)r[a]=e[a].b;return{$:1,c:t.c,d:t.d,e:r,f:t.f,b:t.b}}(e),u=1}switch(u){case 5:for(var i=t.l,o=e.l,c=i.length,s=c===o.length;s&&c--;)s=i[c]===o[c];if(s)return void(e.k=t.k);e.k=e.m();var f=[];return We(t.k,e.k,f,0),void(0<f.length&&qe(n,1,r,f));case 4:for(var l=t.j,d=e.j,m=!1,h=t.k;4===h.$;)m=!0,\"object\"!=typeof l?l=[l,h.j]:l.push(h.j),h=h.k;for(var b=e.k;4===b.$;)m=!0,\"object\"!=typeof d?d=[d,b.j]:d.push(b.j),b=b.k;return m&&l.length!==d.length?void qe(n,0,r,e):((m?function(t,e){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}(l,d):l===d)||qe(n,2,r,d),void We(h,b,n,r+1));case 0:return void(t.a!==e.a&&qe(n,3,r,e.a));case 1:return void Ke(t,e,n,r,Ye);case 2:return void Ke(t,e,n,r,Ze);case 3:if(t.h!==e.h)return void qe(n,0,r,e);var v=Qe(t.d,e.d);v&&qe(n,4,r,v);var p=e.i(t.g,e.g);return void(p&&qe(n,5,r,p))}}}function Ke(t,e,n,r,a){if(t.c===e.c&&t.f===e.f){var u=Qe(t.d,e.d);u&&qe(n,4,r,u),a(t,e,n,r)}else qe(n,0,r,e)}function Qe(t,e,n){var r;for(var a in t)if(\"a1\"!==a&&\"a0\"!==a&&\"a3\"!==a&&\"a4\"!==a)if(a in e){var u=t[a],i=e[a];u===i&&\"value\"!==a&&\"checked\"!==a||\"a0\"===n&&Ve(u,i)||((r=r||{})[a]=i)}else(r=r||{})[a]=n?\"a1\"===n?\"\":\"a0\"===n||\"a3\"===n?void 0:{f:t[a].f,o:void 0}:\"string\"==typeof t[a]?\"\":null;else{var o=Qe(t[a],e[a]||{},a);o&&((r=r||{})[a]=o)}for(var c in e)c in t||((r=r||{})[c]=e[c]);return r}function Ye(t,e,n,r){var a=t.e,u=e.e,i=a.length,o=u.length;o<i?qe(n,6,r,{v:o,i:i-o}):i<o&&qe(n,7,r,{v:i,e:u});for(var c=i<o?i:o,s=0;s<c;s++){var f=a[s];We(f,u[s],n,++r),r+=f.b||0}}function Ze(t,e,n,r){for(var a=[],u={},i=[],o=t.e,c=e.e,s=o.length,f=c.length,l=0,d=0,m=r;l<s&&d<f;){var h=(C=o[l]).a,b=(x=c[d]).a,v=C.b,p=x.b;if(h!==b){var g=o[l+1],$=c[d+1];if(g)var w=g.a,S=g.b,y=b===w;if($)var k=$.a,R=$.b,M=h===k;if(M&&y)We(v,R,a,++m),en(u,a,h,p,d,i),m+=v.b||0,nn(u,a,h,S,++m),m+=S.b||0,l+=2,d+=2;else if(M)m++,en(u,a,b,p,d,i),We(v,R,a,m),m+=v.b||0,l+=1,d+=2;else if(y)nn(u,a,h,v,++m),m+=v.b||0,We(S,p,a,++m),m+=S.b||0,l+=2,d+=1;else{if(!g||w!==k)break;nn(u,a,h,v,++m),en(u,a,b,p,d,i),m+=v.b||0,We(S,R,a,++m),m+=S.b||0,l+=2,d+=2}}else We(v,p,a,++m),m+=v.b||0,l++,d++}for(;l<s;){var C;nn(u,a,(C=o[l]).a,v=C.b,++m),m+=v.b||0,l++}for(;d<f;){var x,A=A||[];en(u,a,(x=c[d]).a,x.b,void 0,A),d++}(0<a.length||0<i.length||A)&&qe(n,8,r,{w:a,x:i,y:A})}var tn=\"_elmW6BL\";function en(t,e,n,r,a,u){var i=t[n];if(!i)return u.push({r:a,A:i={c:0,z:r,r:a,s:void 0}}),void(t[n]=i);if(1===i.c){u.push({r:a,A:i}),i.c=2;var o=[];return We(i.z,r,o,i.r),i.r=a,void(i.s.s={w:o,A:i})}en(t,e,n+tn,r,a,u)}function nn(t,e,n,r,a){var u=t[n];if(u){if(0===u.c){u.c=2;var i=[];return We(r,u.z,i,a),void qe(e,9,a,{w:i,A:u})}nn(t,e,n+tn,r,a)}else{var o=qe(e,9,a,void 0);t[n]={c:1,z:r,r:a,s:o}}}function rn(t,e,n,r){!function t(e,n,r,a,u,i,o){var c=r[a];var s=c.r;for(;s===u;){var f=c.$;if(1===f)rn(e,n.k,c.s,o);else if(8===f){c.t=e,c.u=o;var l=c.s.w;0<l.length&&t(e,n,l,0,u,i,o)}else if(9===f){c.t=e,c.u=o;var d=c.s;if(d){d.A.s=e;var l=d.w;0<l.length&&t(e,n,l,0,u,i,o)}}else c.t=e,c.u=o;if(!(c=r[++a])||(s=c.r)>i)return a}var m=n.$;if(4===m){for(var h=n.k;4===h.$;)h=h.k;return t(e,h,r,a,u+1,i,e.elm_event_node_ref)}var b=n.e;var v=e.childNodes;for(var p=0;p<b.length;p++){var g=1===m?b[p]:b[p].b,$=++u+(g.b||0);if(u<=s&&s<=$&&(a=t(v[p],g,r,a,u,$,o),!(c=r[a])||(s=c.r)>i))return a;u=$}return a}(t,e,n,0,0,e.b,r)}function an(t,e,n,r){return 0===n.length?t:(rn(t,e,n,r),un(t,n))}function un(t,e){for(var n=0;n<e.length;n++){var r=e[n],a=r.t,u=on(a,r);a===t&&(t=u)}return t}function on(t,e){switch(e.$){case 0:return function(t,e,n){var r=t.parentNode,a=Ie(e,n);a.elm_event_node_ref||(a.elm_event_node_ref=t.elm_event_node_ref);r&&a!==t&&r.replaceChild(a,t);return a}(t,e.s,e.u);case 4:return Ee(t,e.u,e.s),t;case 3:return t.replaceData(0,t.length,e.s),t;case 1:return un(t,e.s);case 2:return t.elm_event_node_ref?t.elm_event_node_ref.j=e.s:t.elm_event_node_ref={j:e.s,p:e.u},t;case 6:for(var n=e.s,r=0;r<n.i;r++)t.removeChild(t.childNodes[n.v]);return t;case 7:for(var a=(n=e.s).e,u=t.childNodes[r=n.v];r<a.length;r++)t.insertBefore(Ie(a[r],e.u),u);return t;case 9:if(!(n=e.s))return t.parentNode.removeChild(t),t;var i=n.A;return void 0!==i.r&&t.parentNode.removeChild(t),i.s=un(t,n.w),t;case 8:return function(t,e){var n=e.s,r=function(t,e){if(!t)return;for(var n=ke.createDocumentFragment(),r=0;r<t.length;r++){var a=t[r],u=a.A;Re(n,2===u.c?u.s:Ie(u.z,e.u))}return n}(n.y,e);t=un(t,n.w);for(var a=n.x,u=0;u<a.length;u++){var i=a[u],o=i.A,c=2===o.c?o.s:Ie(o.z,e.u);t.insertBefore(c,t.childNodes[i.r])}r&&Re(t,r);return t}(t,e);case 5:return e.s(t);default:H(10)}}function cn(t){if(3===t.nodeType)return Me(t.textContent);if(1!==t.nodeType)return Me(\"\");for(var e=m,n=t.attributes,r=n.length;r--;){var a=n[r];e=h(M(Fe,a.name,a.value),e)}var u=t.tagName.toLowerCase(),i=m,o=t.childNodes;for(r=o.length;r--;)i=h(cn(o[r]),i);return C(Ce,u,e,i)}var sn=f(function(e,t,n,r){return Zt(t,r,e.init,e.update,e.subscriptions,function(a,t){var u=e.setup&&e.setup(a),i=e.view,o=ke.title,c=ke.body,s=cn(c);return ln(t,function(t){ye=u;var e=i(t),n=Ce(\"body\")(m)(e.body),r=He(s,n);c=an(c,s,r,a),s=n,ye=0,o!==e.title&&(ke.title=o=e.title)})})}),fn=\"undefined\"!=typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,1e3/60)};function ln(n,r){r(n);var a=0;function u(){a=1===a?0:(fn(u),r(n),1)}return function(t,e){n=t,e?(r(n),2===a&&(a=1)):(0===a&&fn(u),a=2)}}function dn(){return Wu(ke.location.href).a||H(1)}var mn=R(function(t,e){return M(uu,Lu,Gt(function(){e&&history.go(e),t()}))}),hn=R(function(t,e){return M(uu,Lu,Gt(function(){history.pushState({},\"\",e),t()}))}),bn={addEventListener:function(){},removeEventListener:function(){}},vn=\"undefined\"!=typeof document?document:bn,pn=\"undefined\"!=typeof window?window:bn,gn=d(function(e,n,r){return jt(Gt(function(){function t(t){Jt(r(t))}return e.addEventListener(n,t,Be&&{passive:!0}),function(){e.removeEventListener(n,t)}}))}),$n=R(function(t,e){var n=At(t,e);return cr(n)?ar(n.a):ur});var wn=R(function(t,e){var n=\"g\";t.multiline&&(n+=\"m\"),t.caseInsensitive&&(n+=\"i\");try{return ar(RegExp(e,n))}catch(t){return ur}}),Sn=d(function(t,e,n){for(var r,a=[],u=0,i=n,o=e.lastIndex,c=-1;u++<t&&(r=e.exec(i))&&c!=e.lastIndex;){for(var s=r.length-1,f=Array(s);0<s;){var l=r[s];f[--s]=l?ar(l):ur}a.push($(Ks,r[0],r.index,u,L(f))),c=e.lastIndex}return e.lastIndex=o,L(a)}),yn=f(function(a,t,u,e){var i=0;return e.replace(t,function(t){if(i++>=a)return t;for(var e=arguments.length-3,n=Array(e);0<e;){var r=arguments[e];n[--e]=r?ar(r):ur}return u($(Ks,t,arguments[arguments.length-2],i,L(n)))})});var kn=mt(function(t){return\"function\"==typeof File&&t instanceof File?or(t):Ot(\"a FILE\",t)});var Rn=n(function(t,e,n,r,a){return{anonIsAllowed:r,isAnon:n,isLoggedIn:e,rights:a,username:t}}),Mn=f(function(t,e,n,r){return{$:\"Array_elm_builtin\",a:t,b:e,c:n,d:r}}),Cn={$:\"EQ\"},xn={$:\"GT\"},An={$:\"LT\"},Ln=d(function(t,e,n){for(;;){if(\"RBEmpty_elm_builtin\"===n.$)return e;var r=n.d,a=t,u=C(t,n.b,n.c,C(Ln,t,e,n.e));t=a,e=u,n=r}}),_n=i,Dn=function(t){return C(Ln,d(function(t,e,n){return M(_n,D(t,e),n)}),m,t)},On=function(t){return C(Ln,d(function(t,e,n){return M(_n,t,n)}),m,t)},Pn=function(t){return On(t.a)},Nn=T,Fn=d(function(n,t,e){var r=e.c,a=e.d,u=R(function(t,e){return C(Nn,\"SubTree\"!==t.$?n:u,e,t.a)});return C(Nn,u,C(Nn,n,t,a),r)}),Bn=function(t){return C(Fn,_n,m,t)},zn=Q,Tn=R(function(t,e){return tt(e)/tt(t)}),In=zn(M(Tn,2,32)),En=[],Gn=$(Mn,0,In,En,En),Xn=function(t){return{$:\"Leaf\",a:t}},Un=B,Jn=d(function(t,e,n){for(;;){if(!n.b)return e;var r=n.b,a=t,u=M(t,n.a,e);t=a,e=u,n=r}}),jn=function(t){return C(Jn,_n,m,t)},Vn=R(function(t,e){for(;;){var n=M(Un,32,t),r=n.b,a=M(_n,{$:\"SubTree\",a:n.a},e);if(!r.b)return jn(a);t=r,e=a}}),Hn=R(function(t,e){return e(t)}),qn=function(t){return t.a},Wn=R(function(t,e){for(;;){var n=zn(e/32);if(1===n)return M(Un,32,t).a;t=M(Vn,t,m),e=n}}),Kn=W,Qn=Y,Yn=R(function(t,e){return 0<g(t,e)?t:e}),Zn=function(t){return t.length},tr=R(function(t,e){if(e.nodeListSize){var n=32*e.nodeListSize,r=Qn(M(Tn,32,n-1)),a=t?jn(e.nodeList):e.nodeList,u=M(Wn,a,e.nodeListSize);return $(Mn,Zn(e.tail)+n,M(Yn,5,r*In),u,e.tail)}return $(Mn,Zn(e.tail),In,En,e.tail)}),er=F,nr=n(function(t,e,n,r,a){for(;;){if(e<0)return M(tr,!1,{nodeList:r,nodeListSize:n/32|0,tail:a});var u=Xn(C(er,32,e,t));t=t,e=e-32,n=n,r=M(_n,u,r),a=a}}),rr=R(function(t,e){if(0<t){var n=t%32;return x(nr,e,t-n-32,t,m,C(er,n,t-n,e))}return Gn}),ar=function(t){return{$:\"Just\",a:t}},ur={$:\"Nothing\"},ir=function(t){return{$:\"Err\",a:t}},or=function(t){return{$:\"Ok\",a:t}},cr=function(t){return\"Ok\"===t.$},sr=R(function(t,e){return{$:\"Failure\",a:t,b:e}}),fr=R(function(t,e){return{$:\"Field\",a:t,b:e}}),lr=R(function(t,e){return{$:\"Index\",a:t,b:e}}),dr=function(t){return{$:\"OneOf\",a:t}},mr=P,hr=function(t){var e=t.charCodeAt(0);return e<55296||56319<e?e:1024*(e-55296)+t.charCodeAt(1)-56320+65536},br=function(t){var e=hr(t);return 97<=e&&e<=122},vr=function(t){var e=hr(t);return e<=90&&65<=e},pr=function(t){return br(t)||vr(t)},gr=function(t){return br(t)||vr(t)||function(t){var e=hr(t);return e<=57&&48<=e}(t)},$r=function(t){return C(Jn,R(function(t,e){return e+1}),0,t)},wr=c,Sr=d(function(t,e,n){for(;;){if(1<=g(t,e))return n;var r=t,a=e-1,u=M(_n,e,n);t=r,e=a,n=u}}),yr=R(function(t,e){return C(Sr,t,e,m)}),kr=R(function(t,e){return C(wr,t,M(yr,0,$r(e)-1),e)}),Rr=ot,Mr=dt,Cr=R(function(t,e){return M(ut,t,o(e))}),xr=function(t){var e=t.charCodeAt(0);return e?ar(e<55296||56319<e?D(k(t[0]),t.slice(1)):D(k(t[0]+t[1]),t.slice(2))):ur},Ar=R(function(t,e){return L(M(at,t,e))}),Lr=function(t){return M(Cr,\"\\n    \",M(Ar,\"\\n\",t))},_r=Ft,Dr=R(function(t,e){return\"\\n\\n(\"+Mr(t+1)+\") \"+Lr(Or(e))}),Or=function(t){return M(Pr,t,m)},Pr=R(function(t,e){t:for(;;)switch(t.$){case\"Field\":var r=t.a,n=t.b,a=function(){var t=xr(r);if(\"Nothing\"===t.$)return!1;var e=t.a,n=e.b;return pr(e.a)&&M(Rr,gr,n)}();t=n,e=M(_n,a?\".\"+r:\"['\"+r+\"']\",e);continue t;case\"Index\":n=t.b;var u=\"[\"+Mr(t.a)+\"]\";t=n,e=M(_n,u,e);continue t;case\"OneOf\":var i=t.a;if(i.b){if(i.b.b){var o=(e.b?\"The Json.Decode.oneOf at json\"+M(Cr,\"\",jn(e)):\"Json.Decode.oneOf\")+\" failed in the following \"+Mr($r(i))+\" ways:\";return M(Cr,\"\\n\\n\",M(_n,o,M(kr,Dr,i)))}t=n=i.a,e=e;continue t}return\"Ran into a Json.Decode.oneOf with no possibilities\"+(e.b?\" at json\"+M(Cr,\"\",jn(e)):\"!\");default:var c=t.a,s=t.b;return(o=e.b?\"Problem with the value at json\"+M(Cr,\"\",jn(e))+\":\\n\\n    \":\"Problem with the given value:\\n\\n\")+(Lr(M(_r,4,s))+\"\\n\\n\")+c}}),Nr=bt,Fr=gt,Br=function(t){return{$:3,b:t}},zr=pt,Tr=A(Mt,Rn,M(Fr,\"user\",zr),M(Fr,\"is_logged_in\",Nr),M(Fr,\"is_anon\",Nr),M(Fr,\"anon_is_allowed\",Nr),M(Fr,\"rights\",Br(zr))),Ir={$:\"RBEmpty_elm_builtin\"},Er=Ir,Gr=w,Xr=R(function(t,e){t:for(;;){if(\"RBEmpty_elm_builtin\"===e.$)return ur;var n=e.c,r=e.d,a=e.e;switch(M(Gr,t,e.b).$){case\"LT\":t=t,e=r;continue t;case\"EQ\":return ar(n);default:t=t,e=a;continue t}}}),Ur={$:\"Black\"},Jr=n(function(t,e,n,r,a){return{$:\"RBNode_elm_builtin\",a:t,b:e,c:n,d:r,e:a}}),jr={$:\"Red\"},Vr=n(function(t,e,n,r,a){if(\"RBNode_elm_builtin\"===a.$&&\"Red\"===a.a.$){var u=a.b,i=a.c,o=a.d,c=a.e;if(\"RBNode_elm_builtin\"!==r.$||\"Red\"!==r.a.$)return x(Jr,t,u,i,x(Jr,jr,e,n,r,o),c);return x(Jr,jr,e,n,x(Jr,Ur,r.b,r.c,r.d,f=r.e),x(Jr,Ur,u,i,o,c))}if(\"RBNode_elm_builtin\"!==r.$||\"Red\"!==r.a.$||\"RBNode_elm_builtin\"!==r.d.$||\"Red\"!==r.d.a.$)return x(Jr,t,e,n,r,a);var s=r.d,f=r.e;return x(Jr,jr,r.b,r.c,x(Jr,Ur,s.b,s.c,s.d,s.e),x(Jr,Ur,e,n,f,a))}),Hr=d(function(t,e,n){if(\"RBEmpty_elm_builtin\"===n.$)return x(Jr,jr,t,e,Ir,Ir);var r=n.a,a=n.b,u=n.c,i=n.d,o=n.e;switch(M(Gr,t,a).$){case\"LT\":return x(Vr,r,a,u,C(Hr,t,e,i),o);case\"EQ\":return x(Jr,r,a,e,i,o);default:return x(Vr,r,a,u,i,C(Hr,t,e,o))}}),qr=d(function(t,e,n){var r=C(Hr,t,e,n);if(\"RBNode_elm_builtin\"!==r.$||\"Red\"!==r.a.$)return r;return x(Jr,Ur,r.b,r.c,r.d,r.e)}),Wr=function(t){if(\"RBNode_elm_builtin\"!==t.$||\"RBNode_elm_builtin\"!==t.d.$||\"RBNode_elm_builtin\"!==t.e.$)return t;if(\"RBNode_elm_builtin\"===t.e.d.$&&\"Red\"===t.e.d.a.$){var e=t.d,n=t.e,r=n.b,a=n.c,u=(f=n.d,f.d),i=f.e,o=n.e;return x(Jr,jr,f.b,f.c,x(Jr,Ur,t.b,t.c,x(Jr,jr,e.b,e.c,e.d,e.e),u),x(Jr,Ur,r,a,i,o))}var c=t.d,s=t.e,f=(r=s.b,a=s.c,s.d);o=s.e;return x(Jr,Ur,t.b,t.c,x(Jr,jr,c.b,c.c,c.d,c.e),x(Jr,jr,r,a,f,o))},Kr=function(t){if(\"RBNode_elm_builtin\"!==t.$||\"RBNode_elm_builtin\"!==t.d.$||\"RBNode_elm_builtin\"!==t.e.$)return t;if(\"RBNode_elm_builtin\"===t.d.d.$&&\"Red\"===t.d.d.a.$){var e=t.b,n=t.c,r=t.d,a=r.d,u=r.e,i=t.e,o=i.b,c=i.c,s=i.d,f=i.e;return x(Jr,jr,r.b,r.c,x(Jr,Ur,a.b,a.c,a.d,a.e),x(Jr,Ur,e,n,u,x(Jr,jr,o,c,s,f)))}var l=t.d,d=l.d,m=t.e;o=m.b,c=m.c,s=m.d,f=m.e;return x(Jr,Ur,e=t.b,n=t.c,x(Jr,jr,l.b,l.c,d,u=l.e),x(Jr,jr,o,c,s,f))},Qr=a(function(t,e,n,r,a,u,i){if(\"RBNode_elm_builtin\"===u.$&&\"Red\"===u.a.$){return x(Jr,n,u.b,u.c,u.d,x(Jr,jr,r,a,u.e,i))}t:for(;\"RBNode_elm_builtin\"===i.$&&\"Black\"===i.a.$;){if(\"RBNode_elm_builtin\"===i.d.$){if(\"Black\"!==i.d.a.$)break t;return Kr(e)}return Kr(e)}return e}),Yr=function(t){if(\"RBNode_elm_builtin\"!==t.$||\"RBNode_elm_builtin\"!==t.d.$)return Ir;var e=t.a,n=t.b,r=t.c,a=t.d,u=a.d,i=t.e;if(\"Black\"!==a.a.$)return x(Jr,e,n,r,Yr(a),i);if(\"RBNode_elm_builtin\"===u.$&&\"Red\"===u.a.$){return x(Jr,e,n,r,Yr(a),i)}var o=Wr(t);if(\"RBNode_elm_builtin\"!==o.$)return Ir;var c=o.e;return x(Vr,o.a,o.b,o.c,Yr(o.d),c)},Zr=R(function(t,e){if(\"RBEmpty_elm_builtin\"===e.$)return Ir;var n=e.a,r=e.b,a=e.c,u=e.d,i=e.e;if(g(t,r)<0){if(\"RBNode_elm_builtin\"!==u.$||\"Black\"!==u.a.$)return x(Jr,n,r,a,M(Zr,t,u),i);var o=u.d;if(\"RBNode_elm_builtin\"===o.$&&\"Red\"===o.a.$){return x(Jr,n,r,a,M(Zr,t,u),i)}var c=Wr(e);if(\"RBNode_elm_builtin\"!==c.$)return Ir;var s=c.e;return x(Vr,c.a,c.b,c.c,M(Zr,t,c.d),s)}return M(ta,t,l(Qr,t,e,n,r,a,u,i))}),ta=R(function(t,e){if(\"RBNode_elm_builtin\"!==e.$)return Ir;var n=e.a,r=e.b,a=e.c,u=e.d,i=e.e;if(_(t,r)){var o=function(t){for(;;){if(\"RBNode_elm_builtin\"!==t.$||\"RBNode_elm_builtin\"!==t.d.$)return t;t=t.d}}(i);return\"RBNode_elm_builtin\"!==o.$?Ir:x(Vr,n,o.b,o.c,u,Yr(i))}return x(Vr,n,r,a,u,M(Zr,t,i))}),ea=R(function(t,e){var n=M(Zr,t,e);if(\"RBNode_elm_builtin\"!==n.$||\"Red\"!==n.a.$)return n;return x(Jr,Ur,n.b,n.c,n.d,n.e)}),na=d(function(t,e,n){var r=e(M(Xr,t,n));return\"Just\"!==r.$?M(ea,t,n):C(qr,t,r.a,n)}),ra=function(t){return\"Just\"===t.$},aa=re,ua=ae,ia=R(function(t,e){return{$:\"BadStatus_\",a:t,b:e}}),oa=function(t){return{$:\"BadUrl_\",a:t}},ca=R(function(t,e){return{$:\"GoodStatus_\",a:t,b:e}}),sa={$:\"NetworkError_\"},fa=function(t){return{$:\"Receiving\",a:t}},la=function(t){return{$:\"Sending\",a:t}},da={$:\"Timeout_\"},ma={$:0},ha=R(function(t,e){return\"Ok\"!==e.$?ir(t(e.a)):or(e.a)}),ba=d(function(t,e,n){return e(t(n))}),va=function(t){return t},pa=R(function(t,e){return C(ge,\"\",va,M(ba,e,t))}),ga=function(t){return{$:\"BadBody\",a:t}},$a={$:\"NetworkError\"},wa={$:\"Timeout\"},Sa=R(function(t,e){switch(e.$){case\"BadUrl_\":return ir({$:\"BadUrl\",a:e.a});case\"Timeout_\":return ir(wa);case\"NetworkError_\":return ir($a);case\"BadStatus_\":return ir(function(t){return{$:\"BadStatus\",a:t}}(e.a.statusCode));default:return M(ha,ga,t(e.b))}}),ya=Ct,ka=R(function(t,e){return M(pa,t,Sa(function(t){return M(ha,Or,M(ya,e,t))}))}),Ra=function(t){return{$:\"Request\",a:t}},Ma=Et,Ca=R(function(t,e){return{reqs:t,subs:e}}),xa=Ma(M(Ca,Er,m)),Aa=Xt,La=function(n){return Gt(function(t){var e=n.f;2===e.$&&e.c&&e.c(),n.f=null,t(Et(S))})},_a=jt,Da=d(function(n,t,r){t:for(;;){if(t.b){var e=t.a,a=t.b;if(\"Cancel\"===e.$){var u=e.a,i=M(Xr,u,r);if(\"Nothing\"!==i.$)return M(Aa,function(){return C(Da,n,a,M(ea,u,r))},La(i.a));n=n,t=a,r=r;continue t}var o=e.a;return M(Aa,function(t){var e=o.tracker;return C(Da,n,a,\"Nothing\"===e.$?r:C(qr,e.a,t,r))},_a(C(pe,n,aa(n),o)))}return Ma(r)}}),Oa=f(function(t,e,n,r){return M(Aa,function(t){return Ma(M(Ca,t,n))},C(Da,t,e,r.reqs))}),Pa=f(function(t,e,n,r){if(r.b){var a=r.a,u=r.b;if(u.b){var i=u.a,o=u.b;if(o.b){var c=o.a,s=o.b;if(s.b){var f=s.b;return M(t,a,M(t,i,M(t,c,M(t,s.a,500<n?C(Jn,t,e,jn(f)):$(Pa,t,e,n+1,f)))))}return M(t,a,M(t,i,M(t,c,e)))}return M(t,a,M(t,i,e))}return M(t,a,e)}return e}),Na=d(function(t,e,n){return $(Pa,t,e,0,n)}),Fa=d(function(t,e,n){var r=t(e);return\"Just\"!==r.$?n:M(_n,r.a,n)}),Ba=R(function(t,e){return C(Na,Fa(t),m,e)}),za=d(function(n,t,r){return M(Aa,function(e){return M(Aa,function(t){return Ma(M(n,e,t))},r)},t)}),Ta=function(t){return C(Na,za(_n),Ma(m),t)},Ia=f(function(t,e,n,r){var a=r.b;return _(e,r.a)?ar(M(aa,t,a(n))):ur}),Ea=d(function(t,e,n){return M(Aa,function(){return Ma(n)},Ta(M(Ba,C(Ia,t,e.a,e.b),n.subs)))}),Ga=function(t){return{$:\"Cancel\",a:t}},Xa=R(function(t,e){if(\"Cancel\"===e.$)return Ga(e.a);var n=e.a;return Ra({allowCookiesFromOtherDomains:n.allowCookiesFromOtherDomains,body:n.body,expect:M($e,t,n.expect),headers:n.headers,method:n.method,timeout:n.timeout,tracker:n.tracker,url:n.url})}),Ua=R(function(t,e){return{$:\"MySub\",a:t,b:e}});te.Http=ee(xa,Oa,Ea,Xa,R(function(t,e){return M(Ua,e.a,M(ba,e.b,t))}));var Ja=ue(\"Http\"),ja=ue(\"Http\"),Va=function(t){return Ja(Ra({allowCookiesFromOtherDomains:!1,body:t.body,expect:t.expect,headers:t.headers,method:t.method,timeout:t.timeout,tracker:t.tracker,url:t.url}))},Ha=function(t){return Va({body:t.body,expect:t.expect,headers:m,method:\"POST\",timeout:ur,tracker:ur,url:t.url})},qa=function(t){return Ha({body:ma,expect:M(ka,t,Tr),url:\"/api/v0/whoami\"})},Wa=function(t){return{$:\"AdjustTimeZone\",a:t}},Ka=function(t){return{$:\"GotWhoamiResp\",a:t}},Qa={$:\"LoginLimbo\"},Ya=ie,Za=function(t){return{$:\"Perform\",a:t}},tu=Ma(S),eu=R(function(n,t){return C(Na,R(function(t,e){return M(_n,n(t),e)}),m,t)}),nu=R(function(e,t){return M(Aa,function(t){return Ma(e(t))},t)}),ru=R(function(t,e){var n=e.a;return jt(M(Aa,aa(t),n))});te.Task=ee(tu,d(function(t,e){return M(nu,function(){return S},Ta(M(eu,ru(t),e)))}),d(function(){return Ma(S)}),R(function(t,e){return Za(M(nu,t,e.a))}));var au=ue(\"Task\"),uu=R(function(t,e){return au(Za(M(nu,t,e)))}),iu=R(function(t,e){return{$:\"Zone\",a:t,b:e}}),ou=iu,cu=Gt(function(t){t(Et(M(ou,-(new Date).getTimezoneOffset(),m)))}),su=M(iu,0,m),fu=d(function(t,e,n){return D({key:n,loginState:Qa,serverIsOnline:!0,url:e,zone:su},Ya(L([M(uu,Wa,cu),qa(Ka)])))}),lu=function(t){return{$:\"CommitsMsg\",a:t}},du=function(t){return{$:\"DeletedFilesMsg\",a:t}},mu=function(t){return{$:\"ListMsg\",a:t}},hu=function(t){return{$:\"PingerIn\",a:t}},bu=function(t){return{$:\"RemotesMsg\",a:t}},vu=function(t){return{$:\"WebsocketIn\",a:t}},pu=he(\"pinger\",zr),gu=function(t){return{$:\"OnScroll\",a:t}},$u=wt,wu=ht,Su=function(t){return{$:0,a:t}},yu=he(\"scrollOrResize\",M($u,function(r){return M($u,function(n){return M($u,function(e){return M($u,function(t){return Su({pageHeight:t,scrollTop:e,viewportHeight:n,viewportWidth:r})},M(Fr,\"pageHeight\",wu))},M(Fr,\"scrollTop\",wu))},M(Fr,\"viewportHeight\",wu))},M(Fr,\"viewportWidth\",wu))),ku=function(t){return{$:\"AlertMsg\",a:t}},Ru=function(t){return{$:\"OnScroll\",a:t}},Mu=ie,Cu=function(t){return{$:\"Time\",a:t}},xu=d(function(t,e,n){return{oldTime:n,request:e,subs:t}}),Au=Ma(C(xu,m,ur,0)),Lu=function(t){for(;;){t=t.a}},_u=St,Du=yt,Ou=function(t){switch(t.$){case\"Normal\":return 0;case\"MayStopPropagation\":return 1;case\"MayPreventDefault\":return 2;default:return 3}},Pu=function(t){return t.length},Nu=it,Fu=R(function(t,e){return t<1?e:C(Nu,t,Pu(e),e)}),Bu=st,zu={$:\"Http\"},Tu={$:\"Https\"},Iu=lt,Eu=function(t){return\"\"===t},Gu=R(function(t,e){return t<1?\"\":C(Nu,0,t,e)}),Xu=ct,Uu=function(t){for(var e=0,n=t.charCodeAt(0),r=43==n||45==n?1:0,a=r;a<t.length;++a){var u=t.charCodeAt(a);if(u<48||57<u)return ur;e=10*e+u-48}return a==r?ur:ar(45==n?-e:e)},Ju=r(function(t,e,n,r,a,u){return{fragment:u,host:e,path:r,port_:n,protocol:t,query:a}}),ju=n(function(t,e,n,r,a){if(Eu(a)||M(Xu,\"@\",a))return ur;var u=M(Iu,\":\",a);if(u.b){if(u.b.b)return ur;var i=u.a,o=Uu(M(Fu,i+1,a));if(\"Nothing\"===o.$)return ur;var c=o;return ar(A(Ju,t,M(Gu,i,a),c,e,n,r))}return ar(A(Ju,t,a,ur,e,n,r))}),Vu=f(function(t,e,n,r){if(Eu(r))return ur;var a=M(Iu,\"/\",r);if(a.b){var u=a.a;return x(ju,t,M(Fu,u,r),e,n,M(Gu,u,r))}return x(ju,t,\"/\",e,n,r)}),Hu=d(function(t,e,n){if(Eu(n))return ur;var r=M(Iu,\"?\",n);if(r.b){var a=r.a;return $(Vu,t,ar(M(Fu,a+1,n)),e,M(Gu,a,n))}return $(Vu,t,ur,e,n)}),qu=R(function(t,e){if(Eu(e))return ur;var n=M(Iu,\"#\",e);if(n.b){var r=n.a;return C(Hu,t,ar(M(Fu,r+1,e)),M(Gu,r,e))}return C(Hu,t,ur,e)}),Wu=function(t){return M(Bu,\"http://\",t)?M(qu,zu,M(Fu,7,t)):M(Bu,\"https://\",t)?M(qu,Tu,M(Fu,8,t)):ur},Ku=Gt(function(t){t(Et(Date.now()))}),Qu=Gt(function(t){var e=requestAnimationFrame(function(){t(Et(Date.now()))});return function(){cancelAnimationFrame(e)}}),Yu=d(function(t,n,e){var r=e.request,a=e.oldTime,u=D(r,n);if(\"Nothing\"!==u.a.$)return u.b.b?Ma(C(xu,n,r,a)):M(Aa,function(){return Au},La(u.a.a));if(u.b.b){return M(Aa,function(e){return M(Aa,function(t){return Ma(C(xu,n,ar(e),t))},Ku)},_a(M(Aa,ua(t),Qu)))}return Au}),Zu=function(t){return{$:\"Posix\",a:t}},ti=d(function(e,n,t){var r=t.subs,a=t.oldTime,u=function(t){return M(aa,e,\"Time\"!==t.$?(0,t.a)(n-a):(0,t.a)(Zu(n)))};return M(Aa,function(t){return M(Aa,function(){return Ma(C(xu,r,ar(t),n))},Ta(M(eu,u,r)))},_a(M(Aa,ua(e),Qu)))}),ei=d(function(t,e,n){return t(e(n))});te[\"Browser.AnimationManager\"]=ee(Au,Yu,ti,0,R(function(t,e){return\"Time\"!==e.$?{$:\"Delta\",a:M(ei,t,e.a)}:Cu(M(ei,t,e.a))}));var ni=ue(\"Browser.AnimationManager\"),ri=function(t){return ni(Cu(t))},ai=Mu(m),ui={$:\"FadeClose\"},ii=R(function(t,e){return\"StartClose\"===t.$?ri(function(){return e(ui)}):ai}),oi=function(t){return{$:\"AlertMsg\",a:t}},ci=function(t){return{$:\"AnimateModal\",a:t}},si=function(t){return{$:\"KeyPress\",a:t}},fi={$:\"Document\"},li=d(function(t,e,n){return{$:\"MySub\",a:t,b:e,c:n}}),di=R(function(t,e){return{pids:e,subs:t}}),mi=Ma(M(di,m,Er)),hi=function(t){var e=t.b;return D(N(function(t){return\"Document\"===t.$?\"d_\":\"w_\"}(t.a),e),t)},bi=R(function(t,e){return{event:e,key:t}}),vi=d(function(e,n,t){return M(nu,function(t){return D(n,t)},C(gn,\"Document\"===t.a.$?vn:pn,t.b,function(t){return M(ua,e,M(bi,n,t))}))}),pi=function(t){return C(Jn,R(function(t,e){return C(qr,t.a,t.b,e)}),Er,t)},gi=d(function(t,e,n){for(;;){if(\"RBEmpty_elm_builtin\"===n.$)return e;var r=n.e,a=t,u=C(t,n.b,n.c,C(gi,t,e,n.d));t=a,e=u,n=r}}),$i=r(function(s,f,l,t,e,n){var r=C(gi,d(function(t,e,n){t:for(;;){var r=n.a,a=n.b;if(r.b){var u=r.a,i=u.a,o=u.b,c=r.b;if(g(i,t)<0){t=t,e=e,n=D(c,C(s,i,o,a));continue t}return 0<g(i,t)?D(r,C(l,t,e,a)):D(c,$(f,i,o,e,a))}return D(r,C(l,t,e,a))}}),D(Dn(t),n),e),a=r.a,u=r.b;return C(Jn,R(function(t,e){return C(s,t.a,t.b,e)}),u,a)}),wi=R(function(t,e){return C(gi,qr,e,t)});te[\"Browser.Events\"]=ee(mi,d(function(a,t,e){var n=d(function(t,e,n){var r=n.c;return y(n.a,n.b,M(_n,C(vi,a,t,e),r))}),r=d(function(t,e,n){var r=n.b,a=n.c;return y(M(_n,e,n.a),r,a)}),u=f(function(t,e,n,r){var a=r.c;return y(r.a,C(qr,t,e,r.b),a)}),i=M(eu,hi,t),o=A($i,r,u,n,e.pids,pi(i),y(m,Er,m)),c=o.b,s=o.c;return M(Aa,function(t){return Ma(M(di,i,M(wi,c,pi(t))))},M(Aa,function(){return Ta(s)},Ta(M(eu,La,o.a))))}),d(function(t,e,n){var r=e.key,a=e.event,u=M(Ba,function(t){var e=t.b,n=e.c;return _(t.a,r)?M($n,n,a):ur},n.subs);return M(Aa,function(){return Ma(n)},Ta(M(eu,aa(t),u)))}),0,R(function(t,e){return C(li,e.a,e.b,M(_u,t,e.c))}));var Si,yi,ki,Ri,Mi=ue(\"Browser.Events\"),Ci=d(function(t,e,n){return Mi(C(li,t,e,n))}),xi=M(Ci,fi,\"keypress\"),Ai={$:\"FadeClose\"},Li=R(function(t,e){return\"StartClose\"===t.$?ri(function(){return e(Ai)}):ai}),_i=function(t){return{$:\"AlertMsg\",a:t}},Di=function(t){return{$:\"AnimateModal\",a:t}},Oi=R(function(t,e){return{$:\"KeyPress\",a:t,b:e}}),Pi=R(function(n,t){return C(Na,R(function(t,e){return n(t)?M(_n,t,e):e}),m,t)}),Ni=function(t){return M(Pi,function(t){return 0<Pu(t)},M(Ar,\"/\",t))},Fi=function(t){return\"/\"+M(Cr,\"/\",C(Na,mr,m,M(eu,Ni,t)))},Bi=function(t){try{return ar(decodeURIComponent(t))}catch(t){return ur}},zi=function(t){var e=function(t){var e=Bi(t);return\"Just\"!==e.$?\"\":e.a},n=Ni(t.path);return n.b?\"/\"+M(Cr,\"/\",M(eu,e,n.b)):\"/\"},Ti=R(function(t,e){return Fi(L([zi(t),e.inputName]))}),Ii=R(function(t,e){return Mu(L([M(Li,e.modal,Di),M(ii,e.alert,_i),xi(M(_u,Oi(M(Ti,t,e)),M(Fr,\"key\",zr)))]))}),Ei=function(t){return{$:\"AlertMsg\",a:t}},Gi=function(t){return{$:\"AnimateModal\",a:t}},Xi=function(t){return{$:\"KeyPress\",a:t}},Ui=function(t){return Mu(L([M(Li,t.modal,Gi),M(ii,t.alert,Ei),xi(M(_u,Xi,M(Fr,\"key\",zr)))]))},Ji=function(t){return{$:\"AlertMsg\",a:t}},ji=function(t){return{$:\"AnimateModal\",a:t}},Vi=function(t){return{$:\"KeyPress\",a:t}},Hi=function(t){return{$:\"AlertMsg\",a:t}},qi=function(t){return{$:\"AnimateModal\",a:t}},Wi=function(t){return{$:\"KeyPress\",a:t}},Ki=function(t){return{$:\"AnimateModal\",a:t}},Qi=R(function(t,e){return{$:\"AlertMsg\",a:t,b:e}}),Yi=R(function(t,e){return{$:\"UploadProgress\",a:t,b:e}}),Zi=R(function(t,e){return ja(M(Ua,t,e))}),to=R(function(t,e){return{$:\"ActionDropdownMsg\",a:t,b:e}}),eo=function(t){return{$:\"AlertMsg\",a:t}},no=function(t){return{$:\"CopyMsg\",a:t}},ro=function(t){return{$:\"HistoryMsg\",a:t}},ao=function(t){return{$:\"MkdirMsg\",a:t}},uo=function(t){return{$:\"MoveMsg\",a:t}},io=function(t){return{$:\"RemoveMsg\",a:t}},oo=function(t){return{$:\"RenameMsg\",a:t}},co=function(t){return{$:\"ShareMsg\",a:t}},so=function(t){return{$:\"UploadMsg\",a:t}},fo=oe,lo=M(Ci,fi,\"click\"),mo={$:\"Closed\"},ho={$:\"ListenClicks\"},bo=function(t){return{$:\"State\",a:t}},vo=R(function(t,e){return bo(O(e.a,{status:t}))}),po=R(function(t,e){switch(t.a.status.$){case\"Open\":return ri(function(){return e(M(vo,ho,t))});case\"ListenClicks\":return lo(Su(e(M(vo,mo,t))));default:return ai}}),go=function(t){var e=t.state;if(\"Success\"!==e.$)return ai;var n=e.a;return Mu(L([M(ii,t.alert,eo),M(fo,ro,function(t){return Mu(L([M(Li,t.modal,ci),M(ii,t.alert,oi),xi(M(_u,si,M(Fr,\"key\",zr)))]))}(t.historyState)),M(fo,oo,function(t){return Mu(L([M(Li,t.modal,qi),M(ii,t.alert,Hi),xi(M(_u,Wi,M(Fr,\"key\",zr)))]))}(t.renameState)),M(fo,uo,Ui(t.moveState)),M(fo,no,Ui(t.copyState)),M(fo,so,function(t){return Mu(L([Mu(M(eu,function(t){return M(Zi,\"upload-\"+t,Yi(t))},On(t.uploads))),Mu(M(eu,function(t){return M(ii,t.alert,Qi(t.path))},t.success)),Mu(M(eu,function(t){return M(ii,t.alert,Qi(t.path))},t.failed))]))}(t.uploadState)),M(fo,ao,M(Ii,t.url,t.mkdirState)),M(fo,io,function(t){return Mu(L([M(Li,t.modal,ji),M(ii,t.alert,Ji),xi(M(_u,Vi,M(Fr,\"key\",zr)))]))}(t.removeState)),M(fo,co,function(t){return Mu(L([M(Li,t.modal,Ki)]))}(t.shareState)),Mu(M(eu,function(t){return M(po,t.dropdown,to(t))},n.entries))]))},$o=function(t){return{$:\"AlertMsg\",a:t}},wo=function(t){return{$:\"AnimateModal\",a:t}},So=function(t){return{$:\"ConflictDropdownMsg\",a:t}},yo=function(t){return{$:\"KeyPress\",a:t}},ko=function(t){return{$:\"AlertMsg\",a:t}},Ro=function(t){return{$:\"AnimateModal\",a:t}},Mo=R(function(t,e){return{$:\"ConflictDropdownMsg\",a:t,b:e}}),Co=function(t){return{$:\"AlertMsg\",a:t}},xo=function(t){return{$:\"AnimateModal\",a:t}},Ao=function(t){return{$:\"KeyPress\",a:t}},Lo=R(function(t,e){return{$:\"ActionDropdownMsg\",a:t,b:e}}),_o=function(t){return{$:\"AlertMsg\",a:t}},Do=R(function(t,e){return{$:\"ConflictDropdownMsg\",a:t,b:e}}),Oo=function(t){return{$:\"RemoteAddMsg\",a:t}},Po=function(t){return{$:\"RemoteFolderMsg\",a:t}},No=function(t){return{$:\"RemoteRemoveMsg\",a:t}},Fo=function(t){return Mu(L([M(ii,t.alert.vis,_o),M(fo,Oo,function(t){return Mu(L([M(Li,t.modal,wo),M(ii,t.alert,$o),xi(M(_u,yo,M(Fr,\"key\",zr))),M(po,t.conflictDropdown,So)]))}(t.remoteAddState)),M(fo,No,function(t){return Mu(L([M(Li,t.modal,xo),M(ii,t.alert,Co),xi(M(_u,Ao,M(Fr,\"key\",zr)))]))}(t.remoteRemoveState)),M(fo,Po,function(t){return Mu(L([M(Li,t.modal,Ro),M(ii,t.alert,ko),Mu(M(eu,function(t){return M(po,t.b,Mo(t.a))},Dn(t.conflictDropdowns)))]))}(t.remoteFoldersState)),Mu(M(eu,function(t){return M(po,t.b,Lo(t.a))},Dn(t.actionDropdowns))),Mu(M(eu,function(t){return M(po,t.b,Do(t.a))},Dn(t.conflictDropdowns)))]))},Bo=he(\"incoming\",zr),zo=R(function(t,e){return{password:e,username:t}}),To=Rt,Io=x(To,f(function(t,e,n,r){return{anonIsAllowed:r,isAnon:n,rights:e,username:t}}),M(Fr,\"username\",zr),M(Fr,\"rights\",Br(zr)),M(Fr,\"is_anon\",Nr),M(Fr,\"anon_is_allowed\",Nr)),Eo=function(t){return Bt(C(Jn,R(function(t,e){return C(Tt,t.a,t.b,e)}),{},t))},Go=Bt,Xo=function(t){return M(Se,\"application/json\",M(_r,0,t))},Uo=d(function(t,e,n){return Ha({body:Xo((r=M(zo,e,n),Eo(L([D(\"username\",Go(r.username)),D(\"password\",Go(r.password))])))),expect:M(ka,t,Io),url:\"/api/v0/login\"});var r}),Jo=function(t){return{$:\"DiffMsg\",a:t}},jo=function(t){return{$:\"GotLoginResp\",a:t}},Vo=R(function(t,e){return{$:\"GotLogoutResp\",a:t,b:e}}),Ho=d(function(t,e,n){return{$:\"LoginFailure\",a:t,b:e,c:n}}),qo=R(function(t,e){return{$:\"LoginLoading\",a:t,b:e}}),Wo=R(function(t,e){return{$:\"LoginReady\",a:t,b:e}}),Ko=function(t){return{$:\"LoginSuccess\",a:t}},Qo={$:\"ViewCommits\"},Yo={$:\"ViewDeletedFiles\"},Zo={$:\"ViewDiff\"},tc={$:\"ViewList\"},ec={$:\"ViewNotFound\"},nc={$:\"ViewRemotes\"},rc=R(function(t,e){t:for(;;){if(0<t){if(e.b){t=t-1,e=e.b;continue t}return e}return e}}),ac=function(t){if(t.b){return ar(t.a)}return ur},uc=R(function(t,e){for(;;){if(!e.b)return!1;var n=e.b;if(t(e.a))return!0;t=t,e=n}}),ic=R(function(e,t){return M(uc,function(t){return _(t,e)},t)}),oc=R(function(t,e){var n=ac(M(rc,1,M(Ar,\"/\",e.path)));if(\"Nothing\"===n.$)return ec;switch(n.a){case\"view\":return tc;case\"log\":return Qo;case\"remotes\":return nc;case\"deleted\":return Yo;case\"diff\":return Zo;case\"\":return M(ic,\"fs.view\",t)?tc:nc;default:return ec}}),cc={$:\"Loading\"},sc={$:\"Info\"},fc={$:\"Closed\"},lc=fc,dc={message:\"\",typ:sc,vis:lc},mc=f(function(t,e,n,r){return{alert:dc,filter:\"\",haveStagedChanges:!1,key:e,offset:0,rights:r,state:cc,url:t,zone:n}}),hc=d(function(t,e,n){return{filter:n,limit:e,offset:t}}),bc=R(function(t,e){return{commits:e,haveStagedChanges:t}}),vc=Du(Hn),pc=d(function(t,e,n){return M(vc,M(Fr,t,e),n)}),gc=n(function(t,e,n,r,a){return{date:t,hash:r,index:a,msg:e,tags:n}}),$c=M($u,function(t){return Su(Zu(t))},wu),wc=C(pc,\"index\",wu,C(pc,\"hash\",zr,C(pc,\"tags\",Br(zr),C(pc,\"msg\",zr,C(pc,\"date\",$c,Su(gc)))))),Sc=C(Du,bc,M(Fr,\"have_staged_changes\",Nr),M(Fr,\"commits\",Br(wc))),yc=Bt,kc=f(function(t,e,n,r){return Ha({body:Xo((a=C(hc,e,n,r),Eo(L([D(\"offset\",yc(a.offset)),D(\"limit\",yc(a.limit)),D(\"filter\",Go(a.filter))])))),expect:M(ka,t,Sc),url:\"/api/v0/log\"});var a}),Rc=R(function(t,e){return{$:\"GotLogResponse\",a:t,b:e}}),Mc=function(t){return $(kc,Rc(!0),0,t.offset+20,t.filter)},Cc={$:\"Loading\"},xc=f(function(t,e,n,r){return{alert:dc,filter:\"\",key:e,offset:0,rights:r,state:Cc,url:t,zone:n}}),Ac=d(function(t,e,n){return{filter:n,limit:e,offset:t}}),Lc=f(function(t,e,n,r){return{height:r,left:e,top:t,width:n}}),_c=bo({menuSize:$(Lc,0,0,0,0),status:mo,toggleSize:$(Lc,0,0,0,0)}),Dc=C(pc,\"is_explicit\",Nr,C(pc,\"is_pinned\",Nr,C(pc,\"is_dir\",Nr,C(pc,\"last_modified_ms\",$c,C(pc,\"depth\",wu,C(pc,\"inode\",wu,C(pc,\"size\",wu,C(pc,\"user\",zr,C(pc,\"path\",zr,Su((Si=_c,function(c){return function(o){return function(i){return function(u){return function(a){return function(r){return function(n){return function(e){return function(t){return{depth:a,dropdown:Si,inode:u,isDir:n,isExplicit:t,isPinned:e,lastModified:r,path:c,size:i,user:o}}}}}}}}}}))))))))))),Oc=M(Fr,\"entries\",Br(Dc)),Pc=f(function(t,e,n,r){return Ha({body:Xo((a=C(Ac,e,n,r),Eo(L([D(\"offset\",yc(a.offset)),D(\"limit\",yc(a.limit)),D(\"filter\",Go(a.filter))])))),expect:M(ka,t,Oc),url:\"/api/v0/deleted\"});var a}),Nc=R(function(t,e){return{$:\"GotDeletedPathsResponse\",a:t,b:e}}),Fc=function(t){return $(Pc,Nc(!0),0,t.offset+25,t.filter)},Bc={$:\"Loading\"},zc=d(function(t,e,n){return{key:t,state:Bc,url:e,zone:n}}),Tc=a(function(t,e,n,r,a,u,i){return{added:t,conflict:i,ignored:n,merged:u,missing:r,moved:a,removed:e}}),Ic=C(Du,R(function(t,e){return{dst:e,src:t}}),M(Fr,\"src\",Dc),M(Fr,\"dst\",Dc)),Ec=C(pc,\"conflict\",Br(Ic),C(pc,\"merged\",Br(Ic),C(pc,\"moved\",Br(Ic),C(pc,\"missing\",Br(Dc),C(pc,\"ignored\",Br(Dc),C(pc,\"removed\",Br(Dc),C(pc,\"added\",Br(Dc),Su(Tc)))))))),Gc=M(Fr,\"diff\",Ec),Xc=R(function(t,e){return Ha({body:Xo((n=function(t){return{name:t}}(e),Eo(L([D(\"name\",Go(n.name))])))),expect:M(ka,t,Gc),url:\"/api/v0/remotes/diff\"});var n}),Uc=function(t){return{$:\"GotResponse\",a:t}},Jc=R(function(t,e){return\"Just\"!==e.$?t:e.a}),jc=n(function(t,e,n,r,a){return{frag:r,params:n,unvisited:e,value:a,visited:t}}),Vc=function(t){return t.b&&(\"\"!==t.a||t.b.b)?M(_n,t.a,Vc(t.b)):m},Hc=R(function(t,e){return ar(\"Nothing\"===e.$?L([t]):M(_n,t,e.a))}),qc=R(function(t,e){var n=M(Ar,\"=\",t);if(n.b&&n.b.b&&!n.b.b.b){var r=n.b.a,a=Bi(n.a);if(\"Nothing\"===a.$)return e;var u=a.a,i=Bi(r);return\"Nothing\"===i.$?e:C(na,u,Hc(i.a),e)}return e}),Wc=R(function(t,e){var n;return function(t){t:for(;;){if(t.b){var e=t.a,n=e.unvisited;if(n.b){if(\"\"!==n.a||n.b.b){t=t.b;continue t}return ar(e.value)}return ar(e.value)}return ur}}((0,t.a)(x(jc,m,function(t){var e=M(Ar,\"/\",t);return Vc(e.b&&\"\"===e.a?e.b:e)}(e.path),\"Nothing\"===(n=e.query).$?Er:C(Na,qc,Er,M(Ar,\"&\",n.a)),e.fragment,va)))}),Kc=function(t){return{$:\"Parser\",a:t}},Qc=R(function(t,e){return e.b?C(Na,_n,e,t):t}),Yc=function(t){return C(Na,Qc,m,t)},Zc=R(function(t,e){return Yc(M(eu,t,e))}),ts=R(function(t,e){var n=t.a,r=e.a;return Kc(function(t){return M(Zc,r,n(t))})}),es=M(R(function(t,f){return Kc(function(t){var e=t.visited,n=t.unvisited,r=t.params,a=t.frag,u=t.value;if(n.b){var i=n.a,o=n.b,c=f(i);if(\"Just\"!==c.$)return m;var s=c.a;return L([x(jc,M(_n,i,e),o,r,a,u(s))])}return m})}),\"STRING\",ar),ns=function(t){return M(Jc,\"\",M(Wc,M(ts,(c=\"diff\",Kc(function(t){var e=t.visited,n=t.unvisited,r=t.params,a=t.frag,u=t.value;if(n.b){var i=n.a,o=n.b;return _(i,c)?L([x(jc,M(_n,i,e),o,r,a,u)]):m}return m})),es),t));var c},rs=Ya(m),as=R(function(t,e){var n=ns(e);return 0<Pu(n)?M(Xc,Uc,n):rs}),us=R(function(t,e){return{filter:e,root:t}}),is=kt,os=$(is,d(function(t,e,n){return{entries:n,isFiltered:e,self:t}}),M(Fr,\"self\",Dc),M(Fr,\"is_filtered\",Nr),M(Fr,\"files\",Br(Dc))),cs=d(function(t,e,n){return Ha({body:Xo((r=M(us,e,n),Eo(L([D(\"root\",Go(r.root)),D(\"filter\",Go(r.filter))])))),expect:M(ka,t,os),url:\"/api/v0/ls\"});var r}),ss=function(t){return{$:\"GotResponse\",a:t}},fs=function(t){return{$:\"Parser\",a:t}},ls=R(function(e,t){var n=t.a;return fs(function(t){return e(n(t))})}),ds=R(function(e,n){return fs(function(t){return n(M(Jc,m,M(Xr,e,t)))})}),ms=function(t){return M(Jc,\"\",M(Wc,(e=M(ls,Jc(\"\"),M(ds,\"filter\",function(t){return!t.b||t.b.b?ur:ar(t.a)})),n=e.a,Kc(function(t){var e=t.params;return L([x(jc,t.visited,t.unvisited,e,t.frag,(0,t.value)(n(e)))])})),O(t,{path:\"\"})));var e,n},hs=function(t){var e=zi(t),n=ms(t);return C(cs,ss,e,n)},bs={$:\"Shown\"},vs=bs,ps={$:\"Hide\"},gs={$:\"Ready\"},$s={alert:vs,inputName:\"\",modal:ps,state:gs},ws={$:\"Loading\"},Ss={action:{$:\"Copy\"},alert:vs,destPath:\"\",filter:\"\",modal:ps,sourcePath:\"\",state:ws},ys={action:{$:\"Move\"},alert:vs,destPath:\"\",filter:\"\",modal:ps,sourcePath:\"\",state:ws},ks={$:\"Ready\"},Rs={alert:vs,modal:ps,selected:m,state:ks},Ms={$:\"Ready\"},Cs={alert:vs,currPath:\"\",inputName:\"\",modal:ps,state:Ms},xs={modal:ps,paths:m},As={failed:m,success:m,uploads:Er},Ls={$:\"Loading\"},_s=d(function(t,e,n){return{alert:lc,copyState:Ss,currError:\"\",historyState:function(t){return{alert:vs,history:ur,lastPath:\"\",modal:ps,rights:t}}(n),key:t,mkdirState:$s,moveState:ys,removeState:Rs,renameState:Cs,rights:n,shareState:xs,state:Ls,uploadState:As,url:e,zone:su}}),Ds=R(function(t,e){return{fingerprint:e,name:t}}),Os=R(function(t,e){return{defaultConflictStrategy:e,self:t}}),Ps=M(Os,M(Ds,\"\",\"\"),\"marker\"),Ns={$:\"Ready\"},Fs=function(t){return{acceptPush:!1,alert:vs,conflictDropdown:_c,conflictStrategy:\"\",doAutoUdate:!1,fingerprint:\"\",modal:t,name:\"\",state:Ns}},Bs=Fs(ps),zs={acceptAutoUpdates:!1,acceptPush:!1,conflictStrategy:\"\",fingerprint:\"\",folders:m,isAuthenticated:!1,isOnline:!1,lastSeen:Zu(0),name:\"\"},Ts={$:\"Ready\"},Is=R(function(t,e){return{alert:vs,allDirs:m,conflictDropdowns:Er,filter:\"\",modal:t,remote:e,state:Ts}}),Es=M(Is,ps,zs),Gs={$:\"Ready\"},Xs=R(function(t,e){return{alert:vs,modal:e,name:t,state:Gs}}),Us=M(Xs,\"\",ps),Js={$:\"Loading\"},js=d(function(t,e,n){return{actionDropdowns:Er,alert:dc,conflictDropdowns:Er,key:t,remoteAddState:Bs,remoteFoldersState:Es,remoteRemoveState:Us,rights:n,self:Ps,state:Js,zone:e}}),Vs=u(function(t,e,n,r,a,u,i,o,c){return{acceptAutoUpdates:r,acceptPush:o,conflictStrategy:c,fingerprint:n,folders:e,isAuthenticated:u,isOnline:a,lastSeen:i,name:t}}),Hs=d(function(t,e,n){return{conflictStrategy:n,folder:t,readOnly:e}}),qs=C(pc,\"conflict_strategy\",zr,C(pc,\"read_only\",Nr,C(pc,\"folder\",zr,Su(Hs)))),Ws=function(t){return{$:1,a:t}},Ks=f(function(t,e,n,r){return{index:e,match:t,number:n,submatches:r}}),Qs=Sn,Ys=wn,Zs=function(t){return M(Ys,{caseInsensitive:!1,multiline:!1},t)},tf=/.^/,ef=M(Qs,1,M(Jc,tf,Zs(\"(\\\\d{4})-?(\\\\d{2})?-?(\\\\d{2})?T?(\\\\d{2})?:?(\\\\d{2})?:?(\\\\d{2})?([.,]\\\\d{1,})?(Z|[+-]\\\\d{2}:?\\\\d{2})?(.*)?\"))),nf=Z,rf=function(t){if(0===t.length||/[\\sxbo]/.test(t))return ur;var e=+t;return e==e?ar(e):ur},af=yn,uf=function(t){return M(Jc,0,Uu(t))},of=4294967295>>>32-In,cf=z,sf=d(function(t,e,n){for(;;){var r=M(cf,of&e>>>t,n);if(\"SubTree\"!==r.$)return M(cf,of&e,r.a);t=t-In,e=e,n=r.a}}),ff=R(function(t,e){var n=e.a,r=e.b,a=e.c,u=e.d;return t<0||-1<g(t,n)?ur:-1<g(t,function(t){return t>>>5<<5}(n))?ar(M(cf,of&t,u)):ar(C(sf,r,t,a))}),lf=d(function(t,e,n){for(;;){var r=M(Un,32,t),a=r.a,u=r.b;if(g(Zn(a),32)<0)return M(tr,!0,{nodeList:e,nodeListSize:n,tail:a});t=u,e=M(_n,Xn(a),e),n=n+1}}),df=(yi=L([y(\"January\",31,31),y(\"February\",28,29),y(\"March\",31,31),y(\"April\",30,30),y(\"May\",31,31),y(\"June\",30,30),y(\"July\",31,31),y(\"August\",31,31),y(\"September\",30,30),y(\"October\",31,31),y(\"November\",30,30),y(\"December\",31,31)])).b?C(lf,yi,m,0):Gn,mf=K,hf=function(t){var e=!M(mf,400,t),n=!M(mf,100,t),r=L([!M(mf,4,t),n,e]);t:for(;;){if(r.b&&r.a&&r.b.b){if(r.b.a){if(r.b.b.b){if(r.b.b.a){if(r.b.b.b.b)break t;return!0}if(r.b.b.b.b)break t;return!1}break t}if(!r.b.b.b||r.b.b.b.b)break t;return!0}break t}return!1},bf=R(function(t,e){var n=M(ff,e-1,df);if(\"Just\"!==n.$)return 0;var r=n.a,a=r.b,u=r.c;return hf(t)?u:a}),vf=function(t){return t.month<1||12<t.month?ir(\"month is out of range\"):t.day<1||0<g(t.day,M(bf,t.year,t.month))?ir(\"day is out of range\"):function(t){var e=t.second,n=t.minute,r=t.hour;return 24===r&&0<n+e?ir(\"hour is out of range\"):r<0||24<r?ir(\"hour is out of range\"):n<0||59<n?ir(\"minute is out of range\"):e<0||59<e?ir(\"second is out of range\"):or(t)}(t)},pf=function(t){var e=R(function(t,e){return uf(M(Jc,e,t))}),n=M(eu,function(t){return t.submatches},ef(t));if(n.b&&n.a.b&&n.a.b.b&&n.a.b.b.b&&n.a.b.b.b.b&&n.a.b.b.b.b.b&&n.a.b.b.b.b.b.b&&n.a.b.b.b.b.b.b.b&&n.a.b.b.b.b.b.b.b.b&&n.a.b.b.b.b.b.b.b.b.b&&!n.a.b.b.b.b.b.b.b.b.b.b&&!n.b.b){var r=n.a,a=r.a,u=r.b,i=u.a,o=u.b,c=o.a,s=o.b,f=s.a,l=s.b,d=l.a,m=l.b,h=m.a,b=m.b,v=b.a,p=b.b,g=p.a;return\"Just\"===p.b.a.$?ir(\"unexpected text\"):vf({day:M(e,c,\"1\"),hour:M(e,f,\"0\"),millisecond:function(t){if(\"Nothing\"===t.$)return 0;var e=t.a,n=$(af,1,M(Jc,tf,Zs(\"[,.]\")),function(){return\"0.\"},e),r=M(Jc,0,rf(n));return nf(1e3*r)}(v),minute:M(e,d,\"0\"),month:M(e,i,\"1\"),offset:function(t){var e=R(function(t,e){switch(t){case\"+\":return e;case\"-\":return N(t,e);default:return e}}),n=(Zs(\"(Z|([+-]\\\\d{2}:?\\\\d{2}))?\"),C(Qs,1,M(Jc,tf,Zs(\"([-+])(\\\\d\\\\d):?(\\\\d\\\\d)\")),M(Jc,\"\",t))),r=M(eu,function(t){return t.submatches},n);t:for(;;){if(r.b&&r.a.b&&\"Just\"===r.a.a.$&&r.a.b.b&&\"Just\"===r.a.b.a.$){if(r.a.b.b.b){if(\"Just\"!==r.a.b.b.a.$||r.a.b.b.b.b||r.b.b)break t;var a=r.a,u=a.b,i=u.b.a.a;return D(uf(M(e,a.a.a,u.a.a)),uf(i))}if(r.b.b)break t;var o=r.a;return D(uf(M(e,o.a.a,o.b.a.a)),0)}break t}return D(0,0)}(g),second:M(e,h,\"0\"),year:M(e,a,\"0\")})}return ir(\"Unable to parse time\")},gf=function(t){return C(Jn,Kn,0,t)},$f=function(t){var e=t.offset;return 36e5*e.a+6e4*e.b},wf=function(t){return hf(t)?366:365},Sf=function(t){return Zu(function(t){if(1970<=t.year){n=M(eu,wf,M(yr,1970,t.year-1));var e=M(eu,bf(t.year),M(yr,1,t.month-1));return a=L([864e5*gf(n),864e5*gf(e),864e5*(t.day-1),36e5*t.hour,6e4*t.minute,1e3*t.second,-1*$f(t)]),gf(a)+t.millisecond}var n=M(eu,wf,M(yr,t.year+1,1969)),r=gf(M(eu,bf(t.year),M(yr,1,t.month))),a=L([864e5*gf(n),864e5*(wf(t.year)-r),864e5*(M(bf,t.year,t.month)-t.day),828e5-36e5*t.hour,354e4-6e4*t.minute,6e4-1e3*t.second,$f(t)]);return 0-(gf(a)-t.millisecond)}(t))},yf=function(t){return{$:5,c:t}},kf=function(t){return{$:11,g:t}},Rf=C(pc,\"conflict_strategy\",zr,C(pc,\"accept_push\",Nr,C(pc,\"last_seen\",M($u,function(t){var e=pf(t);return\"Ok\"!==e.$?Ws(e.a):Su(Sf(e.a))},zr),C(pc,\"is_authenticated\",Nr,C(pc,\"is_online\",Nr,C(pc,\"accept_auto_updates\",Nr,C(pc,\"fingerprint\",zr,C(pc,\"folders\",kf(L([Br(qs),yf(m)])),C(pc,\"name\",zr,Su(Vs)))))))))),Mf=M(Fr,\"remotes\",Br(Rf)),Cf=C(pc,\"fingerprint\",zr,C(pc,\"name\",zr,Su(Ds))),xf=C(pc,\"default_conflict_strategy\",zr,C(pc,\"self\",Cf,Su(Os))),Af=Ya(L([(ki=function(t){return{$:\"GotRemoteListResponse\",a:t}},Ha({body:ma,expect:M(ka,ki,Mf),url:\"/api/v0/remotes/list\"})),function(t){return Ha({body:ma,expect:M(ka,t,xf),url:\"/api/v0/remotes/self\"})}(function(t){return{$:\"GotSelfResponse\",a:t}})])),Lf=It,_f=le(\"open\",function(){return Lf}),Df=oe,Of=n(function(t,e,n,r,a){var u={anonIsAllowed:a,commitsState:$(mc,t.url,t.key,t.zone,n),currentView:M(oc,n,t.url),deletedFilesState:$(xc,t.url,t.key,t.zone,n),diffState:C(zc,t.key,t.url,t.zone),isAnon:r,listState:C(_s,t.key,t.url,n),loginName:e,remoteState:C(js,t.key,t.zone,n),rights:n};return D(O(t,{loginState:Ko(u)}),Ya(L([M(Df,mu,hs(t.url)),_f(S),M(Df,du,Fc(u.deletedFilesState)),M(Df,lu,Mc(u.commitsState)),M(Df,bu,Af),M(Df,Jo,M(as,u.diffState,t.url))])))}),Pf=r(function(t,e,n,r,a,u){var i=n.loginState;if(\"LoginSuccess\"!==i.$)return D(n,rs);var o=i.a,c=M(a,t,e(o)),s=c.b;return D(O(n,{loginState:Ko(M(u,o,c.a))}),M(Df,r,s))}),Nf=d(function(t,e,n){return{force:n,path:t,revision:e}}),Ff=M(Fr,\"message\",zr),Bf=d(function(t,e,n){return Ha({body:Xo((r=C(Nf,e,n,!0),Eo(L([D(\"path\",Go(r.path)),D(\"revision\",Go(r.revision))])))),expect:M(ka,t,Ff),url:\"/api/v0/reset\"});var r}),zf=function(t){return{$:\"GotResetResponse\",a:t}},Tf=function(t){return pi(M(eu,function(t){return D(t.index,t)},t))},If=R(function(t,e){return jn(M(eu,function(t){return t.b},Dn(M(wi,Tf(e),Tf(t)))))}),Ef=R(function(t,e){return $(kc,Rc(!1),e,20,t.filter)}),Gf={$:\"Second\"},Xf=R(function(t,e){return{$:\"Duration\",a:t,b:e}}),Uf=R(function(t){return t}),Jf=Yt,jf=R(function(t,e){return M(uu,Uf(e),Jf(t))}),Vf={$:\"Minute\"},Hf=function(t){var e=t.a;switch(t.b.$){case\"Millisecond\":return e;case\"Second\":return 1e3*e;case\"Minute\":return Hf(M(Xf,60*e,Gf));default:return Hf(M(Xf,60*e,Vf))}},qf=d(function(t,e,n){return M(jf,Hf(M(Xf,t,e)),n)}),Wf=function(t){return{$:\"AlertMsg\",a:t}},Kf=d(function(t,e,n){return{message:t,typ:e,vis:n}}),Qf=f(function(t,e,n,r){return D(O(t,{alert:C(Kf,r,n,vs)}),Ya(L([C(qf,e,Gf,Wf(lc))])))}),Yf=function(t){return 95<=function(t){return 100*t.scrollTop/(t.pageHeight-t.viewportHeight)}(t)},Zf={$:\"Danger\"},tl={$:\"Success\"},el=function(t){switch(t.$){case\"BadUrl\":return\"Bad url: \"+t.a;case\"Timeout\":return\"Timeout\";case\"NetworkError\":return\"Network error\";case\"BadStatus\":return\"Bad status: \"+Mr(t.a);default:return\"Could not decode body: \"+t.a}},nl=R(function(t,e){switch(t.$){case\"GotLogResponse\":var n=t.a;if(\"Ok\"!==(u=t.b).$)return D(O(e,{state:function(t){return{$:\"Failure\",a:t}}(el(u.a))}),rs);var r=u.a,a=function(){if(n)return D(m,0);var t=e.state;return\"Success\"!==t.$?D(m,e.offset):D(t.a,e.offset+20)}();return D(O(e,{haveStagedChanges:r.haveStagedChanges,offset:a.b,state:(c=M(If,a.a,r.commits),{$:\"Success\",a:c})}),rs);case\"GotResetResponse\":var u;return\"Ok\"===(u=t.a).$?$(Qf,e,5,tl,\"Succesfully reset state.\"):$(Qf,e,15,Zf,\"Failed to reset: \"+el(u.a));case\"CheckoutClicked\":return D(e,C(Bf,zf,\"/\",t.a));case\"SearchInput\":var i=O(e,{filter:t.a});return D(i,Mc(i));case\"OnScroll\":var o=t.a;return M(Bu,\"/log\",e.url.path)&&Yf(o)?D(e,M(Ef,e,e.offset+20)):D(e,rs);default:return D(O(e,{alert:C(Kf,e.alert.message,e.alert.typ,t.a)}),rs)}var c}),rl=R(function(t,e){return O(t,{url:e})}),al=M(Fr,\"message\",zr),ul=R(function(t,e){return Ha({body:Xo((n=function(t){return{path:t}}(e),Eo(L([D(\"path\",Go(n.path))])))),expect:M(ka,t,al),url:\"/api/v0/undelete\"});var n}),il=function(t){return{$:\"GotUndeleteResponse\",a:t}},ol=R(function(t,e){var n=function(t){return t?0:1},r=M(Gr,n(t.isDir),n(e.isDir));return\"EQ\"===r.$?M(Gr,t.path,e.path):r}),cl=function(t){return pi(M(eu,function(t){return D(t.path,t)},t))},sl=b,fl=R(function(t,e){return M(sl,ol,M(eu,function(t){return t.b},Dn(M(wi,cl(e),cl(t)))))}),ll=R(function(t,e){return $(Pc,Nc(!1),e,25,t.filter)}),dl=R(function(t,e){switch(t.$){case\"GotDeletedPathsResponse\":var n=t.a;if(\"Ok\"!==(i=t.b).$)return D(O(e,{state:function(t){return{$:\"Failure\",a:t}}(el(i.a))}),rs);var r=i.a,a=function(){if(n)return D(m,0);var t=e.state;return\"Success\"!==t.$?D(m,e.offset):D(t.a,e.offset+25)}();return D(O(e,{offset:a.b,state:(c=M(fl,a.a,r),{$:\"Success\",a:c})}),rs);case\"UndeleteClicked\":return D(e,M(ul,il,t.a));case\"SearchInput\":var u=O(e,{filter:t.a});return D(u,Fc(u));case\"GotUndeleteResponse\":var i;if(\"Ok\"===(i=t.a).$)return D(O(e,{alert:C(Kf,\"Succcesfully undeleted one item.\",tl,vs)}),Ya(L([Fc(e),C(qf,5,Gf,ku(lc))])));el(i.a);return D(e,Ya(L([Fc(e),C(qf,15,Gf,ku(lc))])));case\"AlertMsg\":return D(O(e,{alert:C(Kf,e.alert.message,e.alert.typ,t.a)}),rs);default:var o=t.a;return M(Bu,\"/deleted\",e.url.path)&&Yf(o)?D(e,M(ll,e,e.offset+25)):D(e,rs)}var c}),ml=R(function(t,e){return O(t,{url:e})}),hl=function(t){return{$:\"Finished\",a:t}},bl=R(function(t,e){return M(mn,t,-e)}),vl=R(function(t,e){if(\"GotResponse\"!==t.$)return D(e,M(bl,e.key,1));var n=t.a;return D(O(e,\"Ok\"!==n.$?{state:hl(ir(el(n.a)))}:{state:hl(or(n.a))}),rs)}),pl=R(function(t,e){return O(t,{url:e})}),gl=R(function(t,e){return O(e,{zone:t})}),$l=R(function(t,e){return O(e,{url:t})}),wl=R(function(t,e){return{path:t,revision:e}}),Sl=M(Fr,\"message\",zr),yl=function(t){return Eo(L([D(\"path\",Go(t.path)),D(\"revision\",Go(t.revision))]))},kl=d(function(t,e,n){return Ha({body:Xo(yl(M(wl,e,n))),expect:M(ka,t,Sl),url:\"/api/v0/pin\"})}),Rl=M(Fr,\"message\",zr),Ml=R(function(t,e){return Bt(C(Jn,function(n){return R(function(t,e){return e.push(zt(n(t))),e})}(t),[],e))}),Cl=R(function(t,e){return Ha({body:Xo((n=function(t){return{paths:t}}(e),Eo(L([D(\"paths\",M(Ml,Go,n.paths))])))),expect:M(ka,t,Rl),url:\"/api/v0/remove\"});var n}),xl=d(function(t,e,n){return Ha({body:Xo(yl(M(wl,e,n))),expect:M(ka,t,Sl),url:\"/api/v0/unpin\"})}),Al=C(pc,\"is_explicit\",Nr,C(pc,\"is_pinned\",Nr,C(pc,\"change\",zr,C(pc,\"path\",zr,C(pc,\"head\",wc,Su(n(function(t,e,n,r,a){return{change:n,head:t,isExplicit:a,isPinned:r,path:e}}))))))),Ll=M(Fr,\"entries\",Br(Al)),_l=R(function(t,e){return Ha({body:Xo((n=function(t){return{path:t}}(e),Eo(L([D(\"path\",Go(n.path))])))),expect:M(ka,t,Ll),url:\"/api/v0/history\"});var n}),Dl=R(function(t,e){return{$:\"GotHistoryResponse\",a:t,b:e}}),Ol=function(t){return{$:\"GotPinResponse\",a:t}},Pl=function(t){return{$:\"GotResetResponse\",a:t}},Nl={$:\"Show\"},Fl=R(function(t,e){switch(t.$){case\"GotHistoryResponse\":var n=t.a;return D(O(e,{history:ar(r=t.b),lastPath:n,modal:Nl}),rs);case\"ResetClicked\":return D(e,C(Bf,Pl,n=t.a,t.b));case\"GotResetResponse\":return D(O(e,\"Ok\"===(r=t.a).$?{history:ur,modal:ps}:{history:ar(ir(r.a))}),rs);case\"GotPinResponse\":var r;return\"Ok\"===(r=t.a).$?D(e,M(_l,Dl(e.lastPath),e.lastPath)):D(O(e,{history:ar(ir(r.a))}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{modal:Nl}),rs);case\"ModalClose\":return D(O(e,{history:ur,modal:ps}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);case\"PinClicked\":return D(e,C(t.c?kl:xl,Ol,n=t.a,t.b));default:var a=t.a;return _(e.modal,ps)?D(e,rs):D(\"Enter\"===a?O(e,{history:ur,modal:ps}):e,rs)}}),Bl=M(Fr,\"message\",zr),zl=R(function(t,e){return Ha({body:Xo((n=function(t){return{path:t}}(e),Eo(L([D(\"path\",Go(n.path))])))),expect:M(ka,t,Bl),url:\"/api/v0/mkdir\"});var n}),Tl=function(t){return{$:\"GotResponse\",a:t}},Il=R(function(t,e){switch(t.$){case\"CreateDir\":return D(e,M(zl,Tl,r=t.a));case\"InputChanged\":return D(O(e,{inputName:t.a}),rs);case\"GotResponse\":var n=t.a;return D(O(e,\"Ok\"===n.$?{modal:ps,state:gs}:{state:(u=el(n.a),{$:\"Fail\",a:u})}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{inputName:\"\",modal:Nl}),rs);case\"ModalClose\":return D(O(e,{modal:ps,state:gs}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);default:var r=t.a,a=t.b;return _(e.modal,ps)?D(e,rs):D(e,\"Enter\"===a?M(zl,Tl,r):rs)}var u}),El=M(Fr,\"paths\",Br(zr)),Gl=function(t){return Ha({body:ma,expect:M(ka,t,El),url:\"/api/v0/all-dirs\"})},Xl=function(t){return{$:\"Fail\",a:t}},Ul=function(t){return{$:\"GotAllDirsResponse\",a:t}},Jl=R(function(t,e){return{destinationPath:e,sourcePath:t}}),jl=M(Fr,\"message\",zr),Vl=function(t){return M(Bu,\"/\",t)?t:\"/\"+t},Hl=d(function(t,e,n){return Ha({body:Xo((r=M(Jl,e,n),Eo(L([D(\"source\",Go(Vl(r.sourcePath))),D(\"destination\",Go(Vl(r.destinationPath)))])))),expect:M(ka,t,jl),url:\"/api/v0/copy\"});var r}),ql=R(function(t,e){return{destinationPath:e,sourcePath:t}}),Wl=M(Fr,\"message\",zr),Kl=d(function(t,e,n){return Ha({body:Xo((r=M(ql,e,n),Eo(L([D(\"source\",Go(Vl(r.sourcePath))),D(\"destination\",Go(Vl(r.destinationPath)))])))),expect:M(ka,t,Wl),url:\"/api/v0/move\"});var r}),Ql=function(t){return{$:\"GotActionResponse\",a:t}},Yl=function(t){return C(\"Move\"===t.action.$?Kl:Hl,Ql,t.sourcePath,t.destPath)},Zl=d(function(t,e,n){t:for(;;){if(0<t){if(e.b){var r=e.a;t=t-1,e=e.b,n=M(_n,r,n);continue t}return n}return n}}),td=R(function(t,e){return jn(C(Zl,t,e,m))}),ed=d(function(t,e,n){if(0<e){var r=D(e,n);t:for(;;){e:for(;;){if(!r.b.b)return n;if(!r.b.b.b){if(1===r.a)break t;break e}switch(r.a){case 1:break t;case 2:var a=r.b;return L([a.a,a.b.a]);case 3:if(r.b.b.b.b){var u=r.b,i=u.b;return L([u.a,i.a,i.b.a])}break e;default:if(r.b.b.b.b&&r.b.b.b.b.b){var o=r.b,c=o.b,s=c.b,f=s.b,l=f.a,d=f.b;return M(_n,o.a,M(_n,c.a,M(_n,s.a,M(_n,l,1e3<t?M(td,e-4,d):C(ed,t+1,e-4,d)))))}break e}}return n}return L([r.b.a])}return m}),nd=R(function(t,e){return C(ed,0,t,e)}),rd=function(t){var e=Ni(t);return e.b?Fi(M(nd,$r(e)-1,e)):\"/\"},ad=p,ud=R(function(t,e){return!_(e,rd(t))&&!M(Bu,e,t)}),id=function(t){return\"/\"===t?\"Home\":M(Cr,\"/\",Ni(t))},od=R(function(t,e){return M(eu,id,M(Pi,ud(t.sourcePath),e))}),cd=R(function(t,e){switch(t.$){case\"DoAction\":return D(e,Yl(e));case\"DirChosen\":return D(O(e,{destPath:t.a}),rs);case\"SearchInput\":return D(O(e,{filter:t.a}),rs);case\"GotAllDirsResponse\":return D(O(e,\"Ok\"!==(n=t.a).$?{state:Xl(el(n.a))}:{state:(a=M(od,e,n.a),{$:\"Ready\",a:a})}),rs);case\"GotActionResponse\":var n;return D(O(e,\"Ok\"===(n=t.a).$?{modal:ps}:{state:Xl(el(n.a))}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{destPath:\"\",modal:Nl,sourcePath:t.a,state:ws}),Gl(Ul));case\"ModalClose\":return D(O(e,{modal:ps}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);default:var r=t.a;return D(e,_(e.modal,ps)||\"\"===e.destPath?rs:\"Enter\"===r?Yl(e):rs)}var a}),sd=function(t){return{$:\"GotResponse\",a:t}},fd=R(function(t,e){switch(t.$){case\"RemoveAll\":return D(e,M(Cl,sd,t.a));case\"GotResponse\":var n=t.a;return D(O(e,\"Ok\"===n.$?{modal:ps,state:ks}:{state:(a=el(n.a),{$:\"Fail\",a:a})}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{modal:Nl,selected:t.a}),rs);case\"ModalClose\":return D(O(e,{modal:ps,state:ks}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);default:var r=t.a;return D(e,_(e.modal,ps)?rs:\"Enter\"===r?M(Cl,sd,e.selected):rs)}var a}),ld=function(t){return{$:\"GotResponse\",a:t}},dd=function(t){var e=jn(Ni(t));return e.b?e.a:\"/\"},md=R(function(t,e){return C(Kl,ld,t,Fi(L([rd(t),dd(e)])))}),hd=R(function(t,e){switch(t.$){case\"DoRename\":return D(e,M(md,e.currPath,e.inputName));case\"InputChanged\":return D(O(e,{inputName:t.a}),rs);case\"GotResponse\":var n=t.a;return D(O(e,\"Ok\"===n.$?{modal:ps,state:Ms}:{state:(a=el(n.a),{$:\"Fail\",a:a})}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{currPath:t.a,inputName:\"\",modal:Nl}),rs);case\"ModalClose\":return D(O(e,{modal:ps,state:Ms}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);default:var r=t.a;return _(e.modal,ps)?D(e,rs):D(e,\"Enter\"===r?M(md,e.currPath,e.inputName):rs)}var a}),bd=R(function(t,e){switch(t.$){case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(O(e,{modal:Nl,paths:t.a}),rs);default:return D(O(e,{modal:ps,paths:m}),rs)}}),vd=function(t){return t.name},pd=R(function(t,e){return C(ge,\"arraybuffer\",we,M(ba,e,t))}),gd=Se,$d=function(t){return M(Se,\"\",function(t){for(var e=new FormData;t.b;t=t.b){var n=t.a;e.append(n.a,n.b)}return e}(t))},wd=function(t){return encodeURIComponent(t)},Sd=d(function(t,e,n){return Va({body:$d(L([M(gd,\"files[]\",n)])),expect:function(t){return M(pd,t,Sa(function(){return or(S)}))}(t(vd(n))),headers:m,method:\"POST\",timeout:ur,tracker:ar(\"upload-\"+vd(n)),url:\"/api/v0/upload?root=\"+wd(e)})}),yd=R(function(t,e){return{alert:t,path:e}}),kd=R(function(t,e){return{$:\"Uploaded\",a:t,b:e}}),Rd=d(function(t,e,n){return _(n.path,t)?O(n,{alert:e}):n}),Md=d(function(t,e,n){return g(n,t)<0?t:0<g(n,e)?e:n}),Cd=R(function(t,e){switch(t.$){case\"UploadSelectedFiles\":var n=t.a,r=t.b;return D(O(e,{uploads:o=M(wi,e.uploads,pi(M(eu,function(t){return D(vd(t),0)},r)))}),Ya(M(eu,M(Sd,kd,n),r)));case\"UploadProgress\":var a=t.a,u=t.b;return D(\"Sending\"!==u.$?e:O(e,{uploads:C(qr,a,function(t){return t.size?C(Md,0,1,t.sent/t.size):1}(u.a),e.uploads)}),rs);case\"Uploaded\":var i=t.b,o=M(ea,a=t.a,e.uploads);return\"Ok\"===i.$?D(O(e,{success:M(_n,M(yd,vs,a),e.success),uploads:o}),C(qf,5,Gf,M(Qi,a,lc))):D(O(e,{failed:M(_n,M(yd,vs,a),e.failed),uploads:o}),C(qf,30,Gf,M(Qi,a,lc)));case\"UploadCancel\":return D(O(e,{uploads:M(ea,a=t.a,e.uploads)}),Ja(Ga(\"upload-\"+a)));default:var c=t.b;return D(O(e,{failed:M(eu,M(Rd,a=t.a,c),e.failed),success:M(eu,M(Rd,a,c),e.success)}),rs)}}),xd={$:\"Ascending\"},Ad={$:\"Failure\"},Ld=function(t){return{$:\"GotPinResponse\",a:t}},_d={$:\"None\"},Dd=function(t){return{$:\"RemoveResponse\",a:t}},Od=function(t){return{$:\"Success\",a:t}},Pd=d(function(t,e,n){return _(n.path,t.path)?O(n,{dropdown:e}):n}),Nd=d(function(t,e,n){var r=t.state;if(\"Success\"!==r.$)return t;var a=r.a;return O(t,{state:Od(O(a,{entries:M(eu,M(Pd,e,n),a.entries)}))})}),Fd={$:\"Descending\"},Bd=s,zd=function(t){return t.toLowerCase()},Td=function(t){return t.a},Id=R(function(t,e){switch(e.$){case\"Name\":return M(Bd,function(t){return zd(dd(t.path))},t.entries);case\"ModTime\":return M(Bd,function(t){return Td(t.lastModified)},t.entries);case\"Pin\":return M(Bd,function(t){return(n=D((e=t).isPinned,e.isExplicit)).a?n.b?2:1:0;var e,n},t.entries);case\"Size\":return M(Bd,function(t){return t.size},t.entries);default:return t.entries}}),Ed=d(function(t,e,n){return O(t,\"Ascending\"===e.$?{entries:M(Id,t,n),sortState:D(xd,n)}:{entries:jn(M(Id,t,n)),sortState:D(Fd,n)})}),Gd=function(t){return{$:\"Set_elm_builtin\",a:t}},Xd=R(function(t,e){return Gd(C(qr,t,S,e.a))}),Ud=R(function(t,e){return Gd(M(ea,t,e.a))}),Jd=R(function(t,e){for(;;){if(\"RBEmpty_elm_builtin\"===e.$)return t;var n=e.d;t=M(Jd,t+1,e.e),e=n}}),jd=function(t){return function(t){return M(Jd,0,t)}(t.a)},Vd=d(function(t,e,n){if(e){var r=M(Xd,t,n.checked);return O(n,{checked:_(jd(r),$r(n.entries))?M(Xd,\"\",r):r})}return O(n,{checked:M(Ud,\"\",M(Ud,t,n.checked))})}),Hd=d(function(t,e,n){var r=n.state;return\"Success\"!==r.$?n:O(n,{state:Od(C(Vd,t,e,r.a))})}),qd=Gd(Er),Wd=R(function(t,e){return O(e,t?{checked:(n=N(M(eu,function(t){return t.path},e.entries),L([\"\"])),C(Jn,Xd,qd,n))}:{checked:qd});var n}),Kd=R(function(t,e){var n=e.state;return\"Success\"!==n.$?e:O(e,{state:Od(M(Wd,t,n.a))})}),Qd=function(t){return Fi(M(eu,wd,Ni(t)))},Yd=hn,Zd=R(function(t,e){return x(Jr,Ur,t,e,Ir,Ir)}),tm=R(function(t,e){return{$:\"QueryParameter\",a:t,b:e}}),em=R(function(t,e){return M(tm,wd(t),wd(e))}),nm=function(t){return t.a+\"=\"+t.b},rm=function(t){return t.b?\"?\"+M(Cr,\"&\",M(eu,nm,t)):\"\"},am=R(function(t,e){switch(t.$){case\"ActionDropdownMsg\":return D(C(Nd,e,r=t.a,t.b),rs);case\"RowClicked\":return D(e,M(Yd,e.key,\"/view\"+Qd((r=t.a).path)));case\"RemoveClicked\":return D(C(Nd,e,r=t.a,_c),M(Cl,Dd,L([r.path])));case\"SearchInput\":var n=t.a;return D(e,M(Yd,e.key,N(e.url.path,Pu(n)?rm(L([M(em,\"filter\",n)])):\"\")));case\"HistoryClicked\":var r;return D(C(Nd,e,r=t.a,_c),M(Df,ro,function(t){return M(_l,Dl(t),t)}(r.path)));case\"SortBy\":var a=e.state;return D(\"Success\"!==a.$?e:O(e,{state:Od(C(Ed,a.a,t.a,t.b))}),rs);case\"RemoveResponse\":return D(\"Ok\"===(i=t.a).$?e:O(e,{alert:vs,currError:el(i.a)}),rs);case\"GotResponse\":if(\"Ok\"!==(i=t.a).$)return D(O(e,{state:Ad}),rs);var u=i.a;return D(O(e,{state:Od({checked:u.self.isDir?qd:function(t){return Gd(M(Zd,t,S))}(u.self.path),entries:u.entries,isFiltered:u.isFiltered,self:u.self,sortState:D(xd,_d)})}),rs);case\"GotPinResponse\":var i=t.a;return D(e,rs);case\"CheckboxTick\":return D(C(Hd,t.a,t.b,e),rs);case\"CheckboxTickAll\":return D(M(Kd,t.a,e),rs);case\"PinClicked\":return D(e,C(t.b?kl:xl,Ld,t.a,\"curr\"));case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);case\"HistoryMsg\":var o=M(Fl,t.a,e.historyState),c=o.b;return D(O(e,{historyState:o.a}),M(Df,ro,c));case\"RenameMsg\":var s=M(hd,t.a,e.renameState);c=s.b;return D(O(e,{renameState:s.a}),M(Df,oo,c));case\"MoveMsg\":var f=M(cd,t.a,e.moveState);c=f.b;return D(O(e,{moveState:f.a}),M(Df,uo,c));case\"CopyMsg\":var l=M(cd,t.a,e.copyState);c=l.b;return D(O(e,{copyState:l.a}),M(Df,no,c));case\"UploadMsg\":var d=M(Cd,t.a,e.uploadState);c=d.b;return D(O(e,{uploadState:d.a}),M(Df,so,c));case\"MkdirMsg\":var m=M(Il,t.a,e.mkdirState);c=m.b;return D(O(e,{mkdirState:m.a}),M(Df,ao,c));case\"RemoveMsg\":var h=M(fd,t.a,e.removeState);c=h.b;return D(O(e,{removeState:h.a}),M(Df,io,c));default:var b=M(bd,t.a,e.shareState);c=b.b;return D(O(e,{shareState:b.a}),M(Df,co,c))}}),um=le(\"copyToClipboard\",va),im=M(Fr,\"message\",zr),om=Bt,cm=function(t){return Eo(L([D(\"folder\",Go(t.folder)),D(\"read_only\",om(t.readOnly)),D(\"conflict_strategy\",Go(t.conflictStrategy))]))},sm=function(t){return Eo(L([D(\"name\",Go(t.name)),D(\"fingerprint\",Go(t.fingerprint)),D(\"accept_auto_updates\",om(t.doAutoUpdate)),D(\"folders\",M(Ml,cm,t.folders)),D(\"accept_push\",om(t.acceptPush)),D(\"conflict_strategy\",Go(t.conflictStrategy))]))},fm=R(function(t,e){return Ha({body:Xo(sm({acceptPush:e.acceptPush,conflictStrategy:e.conflictStrategy,doAutoUpdate:e.acceptAutoUpdates,fingerprint:e.fingerprint,folders:e.folders,name:e.name})),expect:M(ka,t,im),url:\"/api/v0/remotes/modify\"})}),lm=M(Fr,\"message\",zr),dm=R(function(t,e){return Ha({body:Xo((n=function(t){return{name:t}}(e),Eo(L([D(\"name\",Go(n.name))])))),expect:M(ka,t,lm),url:\"/api/v0/remotes/sync\"});var n}),mm=a(function(t,e,n,r,a,u,i){return Ha({body:Xo(sm({acceptPush:a,conflictStrategy:u,doAutoUpdate:r,fingerprint:n,folders:i,name:e})),expect:M(ka,t,im),url:\"/api/v0/remotes/add\"})}),hm=function(t){return{$:\"GotResponse\",a:t}},bm=function(t){return l(mm,hm,t.name,t.fingerprint,t.doAutoUdate,t.acceptPush,t.conflictStrategy,m)},vm=R(function(t,e){switch(t.$){case\"RemoteAdd\":return D(e,bm(e));case\"NameInputChanged\":return D(O(e,{name:t.a}),rs);case\"FingerprintInputChanged\":return D(O(e,{fingerprint:t.a}),rs);case\"AutoUpdateChanged\":return D(O(e,{doAutoUdate:t.a}),rs);case\"AcceptPushChanged\":return D(O(e,{acceptPush:t.a}),rs);case\"GotResponse\":var n=t.a;return D(O(e,\"Ok\"===n.$?{modal:ps,state:Ns}:{state:(a=el(n.a),{$:\"Fail\",a:a})}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(Fs(Nl),rs);case\"ModalClose\":return D(O(e,{modal:ps}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);case\"ConflictDropdownMsg\":return D(O(e,{conflictDropdown:t.a}),rs);case\"ConflictStrategyChanged\":return D(O(e,{conflictStrategy:t.a}),rs);default:var r=t.a;return _(e.modal,ps)?D(e,rs):D(e,\"Enter\"===r?bm(e):rs)}var a}),pm=function(t){return{$:\"GotAllDirsResponse\",a:t}},gm=function(t){return{$:\"GotResponse\",a:t}},$m=function(t){return M(fm,gm,t)},wm=R(function(t,e){var n=t.remote,r=C(Hs,Vl(e),!1,\"\"),a=O(t,{remote:O(n,{folders:M(Bd,function(t){return t.folder},M(_n,r,n.folders))})});return D(a,$m(a.remote))}),Sm=R(function(t,e){switch(t.$){case\"GotResponse\":return D(O(e,\"Ok\"===(r=t.a).$?{state:Ts}:{state:(f=el(r.a),{$:\"Fail\",a:f})}),rs);case\"FolderRemove\":var n=t.a;return D(c=O(e,{remote:o=O(i=e.remote,{folders:M(Pi,function(t){return!_(t.folder,n)},i.folders)})}),$m(c.remote));case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(M(Is,Nl,t.a),Gl(pm));case\"GotAllDirsResponse\":var r;return D(\"Ok\"!==(r=t.a).$?e:O(e,{allDirs:r.a}),rs);case\"DirChosen\":return M(wm,e,t.a);case\"SearchInput\":return D(O(e,{filter:t.a}),rs);case\"ModalClose\":return D(O(e,{filter:\"\",modal:ps}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);case\"ReadOnlyChanged\":var a=t.a,u=t.b;return D(O(e,{remote:o=O(i=e.remote,{folders:M(eu,function(t){return _(t.folder,a)?O(t,{readOnly:u}):t},e.remote.folders)})}),$m(o));case\"ConflictDropdownMsg\":return D(O(e,{conflictDropdowns:C(qr,n=t.a,u=t.b,e.conflictDropdowns)}),rs);default:n=t.a;var i,o,c,s=t.b;return D(c=O(e,{remote:o=O(i=e.remote,{folders:M(eu,function(t){return _(t.folder,n)?O(t,{conflictStrategy:s}):t},e.remote.folders)})}),$m(c.remote))}var f}),ym=M(Fr,\"message\",zr),km=R(function(t,e){return Ha({body:Xo((n=function(t){return{name:t}}(e),Eo(L([D(\"name\",Go(n.name))])))),expect:M(ka,t,ym),url:\"/api/v0/remotes/remove\"});var n}),Rm=function(t){return{$:\"GotResponse\",a:t}},Mm=function(t){return M(km,Rm,t.name)},Cm=R(function(t,e){switch(t.$){case\"DoRemove\":return D(e,Mm(e));case\"GotResponse\":var n=t.a;return D(O(e,\"Ok\"===n.$?{modal:ps}:{state:(a=el(n.a),{$:\"Fail\",a:a})}),rs);case\"AnimateModal\":return D(O(e,{modal:t.a}),rs);case\"ModalShow\":return D(M(Xs,t.a,Nl),rs);case\"ModalClose\":return D(O(e,{modal:ps}),rs);case\"AlertMsg\":return D(O(e,{alert:t.a}),rs);default:var r=t.a;return _(e.modal,ps)?D(e,rs):D(e,\"Enter\"===r?Mm(e):rs)}var a}),xm=function(t){return{$:\"GotRemoteModifyResponse\",a:t}},Am=function(t){return{$:\"GotSyncResponse\",a:t}},Lm=f(function(t,e,n,r){return D(O(t,{alert:C(Kf,r,n,vs)}),Ya(L([C(qf,e,Gf,_o(lc))])))}),_m=function(t){return t.b},Dm=R(function(t,e){switch(t.$){case\"GotRemoteListResponse\":return D(O(e,\"Ok\"!==(n=t.a).$?{state:function(t){return{$:\"Failure\",a:t}}(el(n.a))}:{state:(s=n.a,{$:\"Success\",a:s})}),rs);case\"GotSyncResponse\":return\"Ok\"===(n=t.a).$?$(Lm,e,5,tl,\"Succesfully synchronized!\"):$(Lm,e,20,Zf,\"Failed to sync: \"+el(n.a));case\"GotRemoteModifyResponse\":return\"Ok\"===(n=t.a).$?D(e,rs):$(Lm,e,20,Zf,\"Failed to set auto update: \"+el(n.a));case\"GotSelfResponse\":var n;return\"Ok\"!==(n=t.a).$?$(Lm,e,20,Zf,\"Failed to get information about ourselves: \"+el(n.a)):D(O(e,{self:n.a}),rs);case\"ActionDropdownMsg\":return D(O(e,{actionDropdowns:C(qr,t.a,t.b,e.actionDropdowns)}),rs);case\"ConflictDropdownMsg\":return D(O(e,{conflictDropdowns:C(qr,t.a,t.b,e.conflictDropdowns)}),rs);case\"SyncClicked\":return D(e,M(dm,Am,t.a));case\"AutoUpdateToggled\":return D(e,M(fm,xm,O(t.a,{acceptAutoUpdates:t.b})));case\"AcceptPushToggled\":return D(e,M(fm,xm,O(t.a,{acceptPush:t.b})));case\"ConflictStrategyToggled\":return D(e,M(fm,xm,O(t.a,{conflictStrategy:t.b})));case\"RemoteAddMsg\":var r=M(vm,t.a,e.remoteAddState),a=r.b;return D(O(e,{remoteAddState:r.a}),M(Df,Oo,a));case\"RemoteRemoveMsg\":var u=M(Cm,t.a,e.remoteRemoveState);a=u.b;return D(O(e,{remoteRemoveState:u.a}),M(Df,No,a));case\"RemoteFolderMsg\":var i=M(Sm,t.a,e.remoteFoldersState);a=i.b;return D(O(e,{remoteFoldersState:i.a}),M(Df,Po,a));case\"AlertMsg\":return D(O(e,{alert:C(Kf,e.alert.message,e.alert.typ,t.a)}),rs);default:var o=t.a,c=$(Lm,e,2,sc,\"Copied full fingerprint to clipboard.\");return D(c.a,Ya(L([um(Go(o)),c.b])))}var s}),Om=function(t){return M(uu,Lu,Gt(function(){try{pn.location=t}catch(t){ke.location.reload(!1)}}))},Pm=R(function(t,e){return\"Nothing\"===t.$?e:e+\":\"+Mr(t.a)}),Nm=d(function(t,e,n){return\"Nothing\"===e.$?n:N(n,N(t,e.a))}),Fm=function(t){return C(Nm,\"#\",t.fragment,C(Nm,\"?\",t.query,N(M(Pm,t.port_,N(\"Http\"===t.protocol.$?\"http://\":\"https://\",t.host)),t.path)))},Bm=R(function(t,e){switch(t.$){case\"AdjustTimeZone\":var n=t.a,r=e.loginState;return D(O(e,\"LoginSuccess\"!==r.$?{zone:n}:{loginState:Ko(O(s=r.a,{listState:M(gl,n,s.listState)})),zone:n}),rs);case\"GotWhoamiResp\":if(\"Ok\"!==(u=t.a).$)return D(O(e,{loginState:M(Wo,\"\",\"\")}),rs);var a=u.a;return a.isLoggedIn?x(Of,e,a.username,a.rights,a.isAnon,a.anonIsAllowed):D(O(e,{loginState:M(Wo,\"\",\"\")}),rs);case\"GotLoginResp\":var u;if(\"Ok\"!==(u=t.a).$)return D(O(e,{loginState:C(Ho,\"\",\"\",el(u.a))}),rs);var i=u.a;return x(Of,e,i.username,i.rights,i.isAnon,i.anonIsAllowed);case\"GotLogoutResp\":var o=t.a,c=e.loginState;if(\"LoginSuccess\"!==c.$)return D(O(e,{loginState:M(Wo,\"\",\"\")}),rs);var s=c.a;return o&&s.anonIsAllowed?D(e,qa(Ka)):D(O(e,{loginState:M(Wo,\"\",\"\")}),rs);case\"LinkClicked\":var f=t.a;if(\"Internal\"===f.$)return D(e,M(Bu,\"/get\",(m=f.a).path)?Om(Fm(m)):M(Yd,e.key,Fm(O(m,{query:ur}))));var l=f.a,d=Fm(e.url);switch(l){case\"\":case\"#\":return D(e,rs);default:return D(e,_(l,d)?rs:Om(l))}case\"UrlChanged\":var m=t.a,h=e.loginState;if(\"LoginSuccess\"!==h.$)return D(O(e,{url:m}),rs);var b=M(oc,(s=h.a).rights,m);switch(b.$){case\"ViewList\":return D(O(e,{loginState:Ko(O(s,{commitsState:M(rl,s.commitsState,m),currentView:tc,deletedFilesState:M(ml,s.deletedFilesState,m),diffState:M(pl,s.diffState,m),listState:M($l,m,s.listState)})),url:m}),M(Df,mu,hs(m)));case\"ViewDiff\":return D(O(e,{loginState:Ko(O(s,{commitsState:M(rl,s.commitsState,m),currentView:Zo,deletedFilesState:M(ml,s.deletedFilesState,m),diffState:M(pl,s.diffState,m)})),url:m}),M(Df,Jo,M(as,s.diffState,m)));case\"ViewCommits\":return D(O(e,{loginState:Ko(O(s,{commitsState:M(rl,s.commitsState,m),currentView:Qo,deletedFilesState:M(ml,s.deletedFilesState,m),diffState:M(pl,s.diffState,m)})),url:m}),M(Df,lu,function(t){var e=t.state;return\"Success\"!==e.$?rs:$r(e.a)?rs:Mc(t)}(s.commitsState)));case\"ViewDeletedFiles\":return D(O(e,{loginState:Ko(O(s,{commitsState:M(rl,s.commitsState,m),currentView:Yo,deletedFilesState:M(ml,s.deletedFilesState,m),diffState:M(pl,s.diffState,m)})),url:m}),M(Df,du,function(t){var e=t.state;return\"Success\"!==e.$?rs:$r(e.a)?rs:Fc(t)}(s.deletedFilesState)));default:var v=b;return D(O(e,{loginState:Ko(O(s,{commitsState:M(rl,s.commitsState,m),currentView:v,deletedFilesState:M(ml,s.deletedFilesState,m),diffState:M(pl,s.diffState,m)})),url:m}),rs)}case\"UsernameInput\":var p=t.a,g=e.loginState;switch(g.$){case\"LoginReady\":return D(O(e,{loginState:M(Wo,p,$=g.b)}),rs);case\"LoginFailure\":return D(O(e,{loginState:C(Ho,p,$=g.b,\"\")}),rs);default:return D(e,rs)}case\"PasswordInput\":var $=t.a,w=e.loginState;switch(w.$){case\"LoginReady\":return D(O(e,{loginState:M(Wo,p=w.a,$)}),rs);case\"LoginFailure\":return D(O(e,{loginState:C(Ho,p=w.a,$,\"\")}),rs);default:return D(e,rs)}case\"LoginSubmit\":var S=e.loginState;switch(S.$){case\"LoginReady\":case\"LoginFailure\":return D(O(e,{loginState:M(qo,p=S.a,$=S.b)}),C(Uo,jo,p,$));default:return D(e,rs)}case\"LogoutSubmit\":return D(e,function(t){return Ha({body:ma,expect:M(ka,t,M(Fr,\"success\",Nr)),url:\"/api/v0/logout\"})}(Vo(o=t.a)));case\"GotoLogin\":return D(O(e,{loginState:M(Wo,\"\",\"\")}),rs);case\"PingerIn\":return D(O(e,{serverIsOnline:function(t){var e=M(ya,M(Fr,\"isOnline\",Nr),t);return\"Ok\"===e.$&&e.a}(t.a)}),rs);case\"WebsocketIn\":switch(function(t){var e=M(ya,M(Fr,\"data\",zr),t);return\"Ok\"!==e.$?\"failed\":e.a}(t.a)){case\"pin\":var y=e.loginState;if(\"LoginSuccess\"!==y.$)return D(e,rs);s=y.a;return D(e,M(Df,mu,hs(e.url)));case\"fs\":var k=e.loginState;if(\"LoginSuccess\"!==k.$)return D(e,rs);s=k.a;return D(e,Ya(L([M(Df,mu,hs(e.url)),M(Df,du,Fc(s.deletedFilesState)),M(Df,lu,Mc(s.commitsState))])));case\"remotes\":return D(e,M(Df,bu,Af));default:return D(e,rs)}case\"ListMsg\":return A(Pf,t.a,function(t){return t.listState},e,mu,am,R(function(t,e){return O(t,{listState:e})}));case\"CommitsMsg\":return A(Pf,t.a,function(t){return t.commitsState},e,lu,nl,R(function(t,e){return O(t,{commitsState:e})}));case\"DeletedFilesMsg\":return A(Pf,t.a,function(t){return t.deletedFilesState},e,du,dl,R(function(t,e){return O(t,{deletedFilesState:e})}));case\"RemotesMsg\":return A(Pf,t.a,function(t){return t.remoteState},e,bu,Dm,R(function(t,e){return O(t,{remoteState:e})}));default:return A(Pf,t.a,function(t){return t.diffState},e,Jo,vl,R(function(t,e){return O(t,{diffState:e})}))}}),zm={$:\"LoginSubmit\"},Tm=function(t){return t.trim()},Im=Ce(\"span\"),Em=Me,Gm=R(function(t,e){return M(Ne,t,Go(e))}),Xm=Gm(\"className\"),Um=R(function(t,e){return M(Ne,t,om(e))}),Jm=Um(\"disabled\"),jm=Gm(\"type\"),Vm=Oe,Hm=R(function(t,e){return M(Vm,t,{$:\"Normal\",a:e})}),qm=function(t){return M(Hm,\"click\",Su(t))},Wm=function(t){return{$:\"Attrs\",a:t}},Km=Ce(\"button\"),Qm=R(function(t,e){return\"Just\"!==e.$?ur:t(e.a)}),Ym=function(t){return Xm(M(Cr,\" \",M(eu,qn,M(Pi,_m,t))))},Zm=function(t){switch(t.$){case\"XS\":return ur;case\"SM\":return ar(\"sm\");case\"MD\":return ar(\"md\");case\"LG\":return ar(\"lg\");default:return ar(\"xl\")}},th=R(function(t,e){switch(t.$){case\"Size\":return O(e,{size:ar(t.a)});case\"Coloring\":return O(e,{coloring:ar(t.a)});case\"Block\":return O(e,{block:!0});case\"Disabled\":return O(e,{disabled:t.a});default:return O(e,{attributes:N(e.attributes,t.a)})}}),eh={attributes:m,block:!1,coloring:ur,disabled:!1,size:ur},nh=function(t){switch(t.$){case\"Primary\":return\"primary\";case\"Secondary\":return\"secondary\";case\"Success\":return\"success\";case\"Info\":return\"info\";case\"Warning\":return\"warning\";case\"Danger\":return\"danger\";case\"Dark\":return\"dark\";case\"Light\":return\"light\";default:return\"link\"}},rh=function(t){var e,n,r=C(Jn,th,eh,t);return N(L([Ym(L([D(\"btn\",!0),D(\"btn-block\",r.block),D(\"disabled\",r.disabled)])),Jm(r.disabled)]),N(\"Just\"!==(n=M(Qm,Zm,r.size)).$?m:L([Xm(\"btn-\"+n.a)]),N(\"Just\"!==(e=r.coloring).$?m:L(\"Roled\"!==e.a.$?[Xm(\"btn-outline-\"+nh(e.a.a))]:[Xm(\"btn-\"+nh(e.a.a))]),r.attributes)))},ah=R(function(t,e){return M(Km,rh(t),e)}),uh=function(t){return{$:\"Coloring\",a:t}},ih={$:\"Primary\"},oh=function(t){return{$:\"Roled\",a:t}},ch=uh(oh(ih)),sh=d(function(t,e,n){var r=n?\"fa fa-sync fa-sync-animate\":\"\";return M(ah,L([ch,Wm(L([qm(zm),Xm(\"login-btn\"),jm(\"submit\"),Jm(!Pu(Tm(t))||!Pu(Tm(e))||n)]))]),L([M(Im,L([Xm(r)]),m),Em(\" Log in\")]))}),fh=function(t){return{$:\"PasswordInput\",a:t}},lh=function(t){return{$:\"UsernameInput\",a:t}},dh=Ce(\"h2\"),mh=function(t){return{$:\"Attrs\",a:t}},hh=function(t){return{$:\"Id\",a:t}},bh={$:\"LG\"},vh={$:\"Size\",a:bh},ph=function(t){return{$:\"OnInput\",a:t}},gh=R(function(t,e){return function(t){return{$:\"Input\",a:t}}({options:M(_n,(n=t,{$:\"Type\",a:n}),e)});var n}),$h=Ce(\"input\"),wh=R(function(t,e){return\"Just\"!==e.$?ur:ar(t(e.a))}),Sh=Gm(\"id\"),yh=Gm(\"placeholder\"),kh=Um(\"readOnly\"),Rh=Gm(\"value\"),Mh=function(t){return D(t,!0)},Ch=R(function(t,e){return M(Vm,t,{$:\"MayStopPropagation\",a:e})}),xh=R(function(t,e){return C(Na,Fr,e,t)}),Ah=M(xh,L([\"target\",\"value\"]),zr),Lh=function(t){return M(Ch,\"input\",M(_u,Mh,M(_u,t,Ah)))},_h=R(function(t,e){switch(t.$){case\"Size\":return O(e,{size:ar(t.a)});case\"Id\":return O(e,{id:ar(t.a)});case\"Type\":return O(e,{tipe:t.a});case\"Disabled\":return O(e,{disabled:t.a});case\"Value\":return O(e,{value:ar(t.a)});case\"Placeholder\":return O(e,{placeholder:ar(t.a)});case\"OnInput\":return O(e,{onInput:ar(t.a)});case\"Validation\":return O(e,{validation:ar(t.a)});case\"Readonly\":return O(e,{readonly:t.a});default:return O(e,{attributes:N(e.attributes,t.a)})}}),Dh={$:\"Text\"},Oh={attributes:m,disabled:!1,id:ur,onInput:ur,placeholder:ur,readonly:!1,size:ur,tipe:Dh,validation:ur,value:ur},Ph=function(t){return M(wh,function(t){return Xm(\"form-control-\"+t)},Zm(t))},Nh=function(t){return Xm(function(t){return\"Success\"===t.$?\"is-valid\":\"is-invalid\"}(t))},Fh=function(t){var e,n=C(Jn,_h,Oh,t);return N(L([Xm(\"form-control\"),Jm(n.disabled),kh(n.readonly),(e=n.tipe,jm(function(){switch(e.$){case\"Text\":return\"text\";case\"Password\":return\"password\";case\"DatetimeLocal\":return\"datetime-local\";case\"Date\":return\"date\";case\"Month\":return\"month\";case\"Time\":return\"time\";case\"Week\":return\"week\";case\"Number\":return\"number\";case\"Email\":return\"email\";case\"Url\":return\"url\";case\"Search\":return\"search\";case\"Tel\":return\"tel\";default:return\"color\"}}()))]),N(M(Ba,va,L([M(wh,Sh,n.id),M(Qm,Ph,n.size),M(wh,Rh,n.value),M(wh,yh,n.placeholder),M(wh,Lh,n.onInput),M(wh,Nh,n.validation)])),n.attributes))},Bh=R(function(t,e){return M($h,Fh(M(gh,t,e).a.options),m)}),zh=Bh({$:\"Password\"}),Th=function(t){return{$:\"Placeholder\",a:t}},Ih=Bh(Dh),Eh=function(t){return{$:\"Value\",a:t}},Gh=R(function(t,e){return L([M(dh,L([Xm(\"login-header\")]),L([Em(\"Login\")])),Ih(L([hh(\"username-input\"),mh(L([Xm(\"login-input\")])),vh,Th(\"Username\"),Eh(t),ph(lh)])),zh(L([hh(\"password-input\"),mh(L([Xm(\"login-input\")])),vh,Th(\"Password\"),Eh(e),ph(fh)]))])}),Xh=function(t){return D(t,!0)},Uh=R(function(t,e){return M(Vm,t,{$:\"MayPreventDefault\",a:e})}),Jh=function(t){return{$:\"Config\",a:t}},jh=R(function(t,e){return Jh(O(e.a,{attributes:t}))}),Vh=R(function(t,e){return Jh(O(e.a,{children:t}))}),Hh=Jh({attributes:m,children:m,dismissable:ur,role:{$:\"Secondary\"},visibility:bs,withAnimation:!1}),qh=R(function(t,e){return Jh(O(e.a,{role:t}))}),Wh=Ce(\"div\"),Kh=R(function(t,e){return M(Fe,function(t){return/^(on|formAction$)/i.test(t)?\"data-\"+t:t}(t),function(t){return/^\\s*(javascript:|data:text\\/html)/i.test(t)?'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")':t}(e))}),Qh={$:\"StartClose\"},Yh=R(function(t,e){var n=R(function(t,e){return qm(e(t))}),r=e.dismissable;if(\"Just\"!==r.$)return m;var a=r.a;return L([M(n,e.withAnimation?Qh:fc,a)])}),Zh=R(function(t,e){return e.b?M(_n,e.a,M(_n,t,e.b)):L([t])}),tb=function(t){return\"Just\"===t.dismissable.$},eb=d(function(t,e,n){return tb(e)?M(Zh,M(Km,N(L([jm(\"button\"),Xm(\"close\"),M(Kh,\"aria-label\",\"close\")]),M(Yh,t,e)),L([M(Im,L([M(Kh,\"aria-hidden\",\"true\")]),L([Em(\"×\")]))])),n):n}),nb=Pe,rb=R(function(t,e){return Xm(t+\"-\"+function(){switch(e.$){case\"Primary\":return\"primary\";case\"Secondary\":return\"secondary\";case\"Success\":return\"success\";case\"Info\":return\"info\";case\"Warning\":return\"warning\";case\"Danger\":return\"danger\";case\"Light\":return\"light\";default:return\"dark\"}}())}),ab=R(function(t,e){var n=_(t,fc)?L([M(nb,\"display\",\"none\")]):m,r=function(){if(e.withAnimation){var t=e.dismissable;return\"Just\"!==t.$?m:L([M(Hm,\"transitionend\",Su((0,t.a)(fc)))])}return m}(),a=L([M(Kh,\"role\",\"alert\"),Ym(L([D(\"alert\",!0),D(\"alert-dismissible\",tb(e)),D(\"fade\",e.withAnimation),D(\"show\",_(t,bs))])),M(rb,\"alert\",e.role)]);return Yc(L([e.attributes,a,n,r]))}),ub=R(function(t,e){var n=e.a;return M(Wh,M(ab,t,n),C(eb,t,n,n.children))}),ib={$:\"Danger\"},ob=d(function(t,e,n){return M(ub,bs,M(Vh,n,M(jh,e,M(qh,t,Hh))))})(ib),cb=Ce(\"form\"),sb=R(function(t,e){return M(cb,t,e)}),fb=R(function(t,e){return O(e,{attributes:N(e.attributes,t.a)})}),lb={attributes:m},db=R(function(t,e){return M(Wh,function(t){var e=C(Jn,fb,lb,t);return N(L([Xm(\"form-group\")]),e.attributes)}(t),e)}),mb=R(function(t,e){return{$:\"Column\",a:{children:e,options:t}}}),hb=R(function(t,e){return M(Wh,N(L([Xm(\"container-fluid\")]),t),e)}),bb=function(t){return xe(function(t){return\"script\"==t?\"p\":t}(t))},vb={$:\"XS\"},pb={$:\"Col\"},gb=R(function(t,e){return{columnCount:e,screenSize:t}}),$b=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{alignXs:ar(t)});case\"SM\":return O(e,{alignSm:ar(t)});case\"MD\":return O(e,{alignMd:ar(t)});case\"LG\":return O(e,{alignLg:ar(t)});default:return O(e,{alignXl:ar(t)})}}),wb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{offsetXs:ar(t)});case\"SM\":return O(e,{offsetSm:ar(t)});case\"MD\":return O(e,{offsetMd:ar(t)});case\"LG\":return O(e,{offsetLg:ar(t)});default:return O(e,{offsetXl:ar(t)})}}),Sb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{orderXs:ar(t)});case\"SM\":return O(e,{orderSm:ar(t)});case\"MD\":return O(e,{orderMd:ar(t)});case\"LG\":return O(e,{orderLg:ar(t)});default:return O(e,{orderXl:ar(t)})}}),yb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{pullXs:ar(t)});case\"SM\":return O(e,{pullSm:ar(t)});case\"MD\":return O(e,{pullMd:ar(t)});case\"LG\":return O(e,{pullLg:ar(t)});default:return O(e,{pullXl:ar(t)})}}),kb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{pushXs:ar(t)});case\"SM\":return O(e,{pushSm:ar(t)});case\"MD\":return O(e,{pushMd:ar(t)});case\"LG\":return O(e,{pushLg:ar(t)});default:return O(e,{pushXl:ar(t)})}}),Rb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{widthXs:ar(t)});case\"SM\":return O(e,{widthSm:ar(t)});case\"MD\":return O(e,{widthMd:ar(t)});case\"LG\":return O(e,{widthLg:ar(t)});default:return O(e,{widthXl:ar(t)})}}),Mb=R(function(t,e){switch(t.$){case\"ColAttrs\":return O(e,{attributes:N(e.attributes,t.a)});case\"ColWidth\":return M(Rb,t.a,e);case\"ColOffset\":return M(wb,t.a,e);case\"ColPull\":return M(yb,t.a,e);case\"ColPush\":return M(kb,t.a,e);case\"ColOrder\":return M(Sb,t.a,e);case\"ColAlign\":return M($b,t.a,e);default:return O(e,{textAlign:ar(t.a)})}}),Cb=function(t){var e=t.columnCount;return Xm(\"col\"+(M(Jc,\"\",M(wh,function(t){return\"-\"+t},Zm(t.screenSize)))+M(Jc,\"\",M(wh,function(t){return\"-\"+t},function(t){switch(t.$){case\"Col\":return ur;case\"Col1\":return ar(\"1\");case\"Col2\":return ar(\"2\");case\"Col3\":return ar(\"3\");case\"Col4\":return ar(\"4\");case\"Col5\":return ar(\"5\");case\"Col6\":return ar(\"6\");case\"Col7\":return ar(\"7\");case\"Col8\":return ar(\"8\");case\"Col9\":return ar(\"9\");case\"Col10\":return ar(\"10\");case\"Col11\":return ar(\"11\");case\"Col12\":return ar(\"12\");default:return ar(\"auto\")}}(e)))))},xb={alignLg:ur,alignMd:ur,alignSm:ur,alignXl:ur,alignXs:ur,attributes:m,offsetLg:ur,offsetMd:ur,offsetSm:ur,offsetXl:ur,offsetXs:ur,orderLg:ur,orderMd:ur,orderSm:ur,orderXl:ur,orderXs:ur,pullLg:ur,pullMd:ur,pullSm:ur,pullXl:ur,pullXs:ur,pushLg:ur,pushMd:ur,pushSm:ur,pushXl:ur,pushXs:ur,textAlign:ur,widthLg:ur,widthMd:ur,widthSm:ur,widthXl:ur,widthXs:ur},Ab=function(t){var e=Zm(t);return\"Just\"!==e.$?\"-\":\"-\"+e.a+\"-\"},Lb=function(t){var e=t.offsetCount;return Xm(\"offset\"+(Ab(t.screenSize)+function(t){switch(t.$){case\"Offset0\":return\"0\";case\"Offset1\":return\"1\";case\"Offset2\":return\"2\";case\"Offset3\":return\"3\";case\"Offset4\":return\"4\";case\"Offset5\":return\"5\";case\"Offset6\":return\"6\";case\"Offset7\":return\"7\";case\"Offset8\":return\"8\";case\"Offset9\":return\"9\";case\"Offset10\":return\"10\";default:return\"11\"}}(e)))},_b=function(t){switch(t.$){case\"Move0\":return\"0\";case\"Move1\":return\"1\";case\"Move2\":return\"2\";case\"Move3\":return\"3\";case\"Move4\":return\"4\";case\"Move5\":return\"5\";case\"Move6\":return\"6\";case\"Move7\":return\"7\";case\"Move8\":return\"8\";case\"Move9\":return\"9\";case\"Move10\":return\"10\";case\"Move11\":return\"11\";default:return\"12\"}},Db=R(function(t,e){var n=e.align;return Xm(N(t,N(M(Jc,\"\",M(wh,function(t){return t+\"-\"},Zm(e.screenSize))),function(t){switch(t.$){case\"Top\":return\"start\";case\"Middle\":return\"center\";default:return\"end\"}}(n))))}),Ob=R(function(e,t){return M(Ba,va,M(eu,function(t){return M(wh,Db(e),t)},t))}),Pb=function(t){var e,n,r,a,u,i,o=C(Jn,Mb,xb,t),c=!$r(M(Ba,va,L([o.widthXs,o.widthSm,o.widthMd,o.widthLg,o.widthXl])));return N((i=L([c?ar(M(gb,vb,pb)):o.widthXs,o.widthSm,o.widthMd,o.widthLg,o.widthXl]),M(Ba,va,M(eu,function(t){return M(wh,Cb,t)},i))),N((u=L([o.offsetXs,o.offsetSm,o.offsetMd,o.offsetLg,o.offsetXl]),M(Ba,va,M(eu,function(t){return M(wh,Lb,t)},u))),N((a=L([o.pullXs,o.pullSm,o.pullMd,o.pullLg,o.pullXl]),M(Ba,va,M(eu,function(t){if(\"Just\"!==t.$)return ur;var e=t.a.moveCount;return ar(Xm(\"pull\"+(Ab(t.a.screenSize)+_b(e))))},a))),N((r=L([o.pushXs,o.pushSm,o.pushMd,o.pushLg,o.pushXl]),M(Ba,va,M(eu,function(t){if(\"Just\"!==t.$)return ur;var e=t.a.moveCount;return ar(Xm(\"push\"+(Ab(t.a.screenSize)+_b(e))))},r))),N((n=L([o.orderXs,o.orderSm,o.orderMd,o.orderLg,o.orderXl]),M(Ba,va,M(eu,function(t){if(\"Just\"!==t.$)return ur;var e=t.a.moveCount;return ar(Xm(\"order\"+(Ab(t.a.screenSize)+function(t){switch(t.$){case\"OrderFirst\":return\"first\";case\"Order1\":return\"1\";case\"Order2\":return\"2\";case\"Order3\":return\"3\";case\"Order4\":return\"4\";case\"Order5\":return\"5\";case\"Order6\":return\"6\";case\"Order7\":return\"7\";case\"Order8\":return\"8\";case\"Order9\":return\"9\";case\"Order10\":return\"10\";case\"Order11\":return\"11\";case\"Order12\":return\"12\";default:return\"last\"}}(e))))},n))),N(M(Ob,\"align-self-\",L([o.alignXs,o.alignSm,o.alignMd,o.alignLg,o.alignXl])),N(\"Just\"!==(e=o.textAlign).$?m:L([function(t){var e=t.dir;return Xm(\"text\"+(M(Jc,\"-\",M(wh,function(t){return\"-\"+t+\"-\"},Zm(t.size)))+function(t){switch(t.$){case\"Center\":return\"center\";case\"Left\":return\"left\";default:return\"right\"}}(e)))}(e.a)]),o.attributes)))))))},Nb=function(t){switch(t.$){case\"Column\":var e=t.a.children;return M(Wh,Pb(t.a.options),e);case\"ColBreak\":return t.a;default:e=t.a.children;return C(bb,\"div\",Pb(t.a.options),e)}},Fb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{hAlignXs:ar(t)});case\"SM\":return O(e,{hAlignSm:ar(t)});case\"MD\":return O(e,{hAlignMd:ar(t)});case\"LG\":return O(e,{hAlignLg:ar(t)});default:return O(e,{hAlignXl:ar(t)})}}),Bb=R(function(t,e){switch(t.screenSize.$){case\"XS\":return O(e,{vAlignXs:ar(t)});case\"SM\":return O(e,{vAlignSm:ar(t)});case\"MD\":return O(e,{vAlignMd:ar(t)});case\"LG\":return O(e,{vAlignLg:ar(t)});default:return O(e,{vAlignXl:ar(t)})}}),zb=R(function(t,e){switch(t.$){case\"RowAttrs\":return O(e,{attributes:N(e.attributes,t.a)});case\"RowVAlign\":return M(Bb,t.a,e);default:return M(Fb,t.a,e)}}),Tb={attributes:m,hAlignLg:ur,hAlignMd:ur,hAlignSm:ur,hAlignXl:ur,hAlignXs:ur,vAlignLg:ur,vAlignMd:ur,vAlignSm:ur,vAlignXl:ur,vAlignXs:ur},Ib=function(t){var e=t.align;return Xm(\"justify-content-\"+(M(Jc,\"\",M(wh,function(t){return t+\"-\"},Zm(t.screenSize)))+function(t){switch(t.$){case\"Left\":return\"start\";case\"Center\":return\"center\";case\"Right\":return\"end\";case\"Around\":return\"around\";default:return\"between\"}}(e)))},Eb=function(t){var e,n=C(Jn,zb,Tb,t);return N(L([Xm(\"row\")]),N(M(Ob,\"align-items-\",L([n.vAlignXs,n.vAlignSm,n.vAlignMd,n.vAlignLg,n.vAlignXl])),N((e=L([n.hAlignXs,n.hAlignSm,n.hAlignMd,n.hAlignLg,n.hAlignXl]),M(Ba,va,M(eu,function(t){return M(wh,Ib,t)},e))),n.attributes)))},Gb=R(function(t,e){return M(Wh,Eb(t),M(eu,Nb,e))}),Xb=function(t){return{$:\"ColAttrs\",a:t}},Ub={$:\"Col8\"},Jb=R(function(t,e){return{$:\"ColWidth\",a:M(gb,t,e)}}),jb=M(Jb,bh,Ub),Vb=function(t){return{$:\"TextAlign\",a:t}},Hb=function(t){return{dir:t,size:vb}},qb=Hb({$:\"Center\"}),Wb=function(r){return M(hb,L([Xm(\"login-background\")]),L([M(Gb,m,L([M(mb,L([jb,Vb(qb),Xb(L([Xm(\"login-form\")]))]),L([M(sb,L([(t=zm,M(Uh,\"submit\",M(_u,Xh,Su(t))))]),L([M(db,m,function(){var t=r.loginState;switch(t.$){case\"LoginReady\":return N(M(Gh,e=t.a,n=t.b),L([C(sh,e,n,!1)]));case\"LoginLoading\":return N(M(Gh,e=t.a,n=t.b),L([C(sh,e,n,!0)]));case\"LoginFailure\":var e,n;return N(M(Gh,e=t.a,n=t.b),L([M(ob,m,L([Em(\"Login failed, please try again.\")])),C(sh,e,n,!1)]));default:return m}}())]))]))]))]));var t},Kb=Ce(\"a\"),Qb=function(t){return M(Gm,\"href\",/^javascript:/i.test((e=t).replace(/\\s/g,\"\"))?'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")':e);var e},Yb={$:\"Danger\"},Zb=function(t){return{$:\"Outlined\",a:t}},tv=uh(Zb(Yb)),ev={$:\"Col1\"},nv=M(Jb,vb,ev),rv={$:\"Col3\"},av=M(Jb,vb,rv),uv=M(Jb,vb,Ub),iv=Ce(\"li\"),ov=R(function(t,e){return{$:\"Item\",a:{children:e,itemFn:iv,options:t}}}),cv=Hb({$:\"Left\"}),sv=Hb({$:\"Right\"}),fv=R(function(t,e){return M(ov,m,L([M(Gb,m,L([M(mb,L([nv,Vb(cv)]),L([M(Im,L([Xm(\"fas fa-lg fa-save text-xs-right\")]),m)])),M(mb,L([uv,Vb(cv)]),L([Em(e.msg)])),M(mb,L([av,Vb(sv)]),L([M(ah,L([tv,Wm(L([qm((n=e.hash,{$:\"CheckoutClicked\",a:n})),Jm(!t.haveStagedChanges&&M(ic,\"head\",e.tags)||!M(ic,\"fs.edit\",t.rights))]))]),L([Em(\"Checkout\")]))]))]))]));var n}),lv=Ce(\"ul\"),dv=R(function(t,e){switch(t.$){case\"Roled\":return O(e,{role:ar(t.a)});case\"Action\":return O(e,{action:!0});case\"Disabled\":return O(e,{disabled:!0});case\"Active\":return O(e,{active:!0});default:return O(e,{attributes:N(e.attributes,t.a)})}}),mv={action:!1,active:!1,attributes:m,disabled:!1,role:ur},hv=function(t){var e=t.a.children;return M(t.a.itemFn,function(t){return N(L([Ym(L([D(\"list-group-item\",!0),D(\"disabled\",t.disabled),D(\"active\",t.active),D(\"list-group-item-action\",t.action)]))]),N(L([Jm(t.disabled)]),N(M(Jc,m,M(wh,function(t){return L([M(rb,\"list-group-item\",t)])},t.role)),t.attributes)))}(C(Jn,dv,mv,t.a.options)),e)},bv=function(t){return M(lv,L([Xm(\"list-group\")]),M(eu,hv,t))},vv=R(function(t,e){return bv(M(eu,fv(t),M(Pi,function(t){return 0<Pu(t.msg)},e)))}),pv=function(){return M(qh,ib,Hh)},gv={$:\"Info\"},$v=function(){return M(qh,gv,Hh)},wv={$:\"Success\"},Sv=function(){return M(qh,wv,Hh)},yv=function(t){switch(t.$){case\"Danger\":return pv;case\"Success\":return Sv;default:return $v}},kv=R(function(t,e){return Jh(O(e.a,{dismissable:ar(t),withAnimation:!0}))}),Rv=uh(oh({$:\"Link\"})),Mv={$:\"Col10\"},Cv=M(Jb,vb,Mv),xv={$:\"Col2\"},Av=M(Jb,vb,xv),Lv=R(function(t,e){return M(ub,e.vis,M(Vh,L([M(Gb,m,L([M(mb,L([Cv]),L([function(t){switch(t.$){case\"Danger\":return M(Im,L([Xm(\"fas fa-xs fa-exclamation-circle\")]),m);case\"Success\":return M(Im,L([Xm(\"fas fa-xs fa-check\")]),m);default:return Em(\"\")}}(e.typ),Em(\" \"+e.message)])),M(mb,L([Av,Vb(sv)]),L([M(ah,L([Rv,Wm(L([Xm(\"notification-close-btn\"),qm(t(lc))]))]),L([M(Im,L([Xm(\"fas fa-xs fa-times\")]),m)]))]))]))]),M(yv,e.typ,M(kv,t,Hh))))}),_v=Ce(\"br\"),Dv=Ce(\"h4\"),Ov=M(Jb,bh,xv),Pv={$:\"MD\"},Nv={$:\"Col12\"},Fv=M(Jb,Pv,Nv),Bv=R(function(t,e){return M(Gb,m,L([M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m),M(mb,L([jb,Fv]),L([M(Dv,L([Xm(\"text-muted text-center\")]),L([Em(\"Commits\")])),M(Lv,Wf,t.alert),M(_v,m,m),M(vv,t,e),M(_v,m,m)])),M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m)]))}),zv=function(t){return{$:\"SearchInput\",a:t}},Tv=function(t){return{$:\"Config\",a:t}},Iv=R(function(t,e){return Tv(O(e.a,{attributes:t}))}),Ev=function(t){return Tv({attributes:m,input:t,predecessors:m,size:ur,successors:m})},Gv=R(function(t,e){return{$:\"Addon\",a:M(Im,M(_n,Xm(\"input-group-text\"),t),e)}}),Xv=R(function(t,e){return Tv(O(e.a,{successors:t}))}),Uv=R(function(t,e){return{$:\"Input\",a:t(e)}})(Ih),Jv=function(t){return M(wh,function(t){return Xm(\"input-group-\"+t)},Zm(t))},jv=function(t){var e=t.a,n=e.input.a;return M(Wh,N(L([Xm(\"input-group\")]),N(M(Ba,va,L([M(Qm,Jv,e.size)])),e.attributes)),N(M(eu,function(t){var e=t.a;return M(Wh,L([Xm(\"input-group-prepend\")]),L([e]))},e.predecessors),N(L([n]),M(eu,function(t){var e=t.a;return M(Wh,L([Xm(\"input-group-append\")]),L([e]))},e.successors))))},Vv=function(t){return jv(M(Iv,L([Xm(\"stylish-input-group input-group\")]),M(Xv,L([M(Gv,L([Xm(\"input-group-addon\")]),L([M(Km,m,L([M(Im,L([Xm(\"fas fa-search fa-xs input-group-addon\")]),m)]))]))]),Ev(Uv(L([Th(\"Search\"),mh(L([Lh(zv),Rh(t.filter)]))]))))))},Hv=_e,qv=M(Jb,bh,Nv),Wv={$:\"XL\"},Kv=M(Jb,Wv,Mv),Qv=M(Jb,Wv,rv),Yv={$:\"Col9\"},Zv=M(Jb,Wv,Yv),tp=function(t){return{$:\"RowAttrs\",a:t}},ep=R(function(e,t){return\"\"===e?t:M(Pi,function(t){return M(Xu,e,t.path)},t)}),np=nt,rp=function(t){return M(np,t,\"\")},ap=d(function(t,e,n){return 0<t?C(ap,t>>1,N(e,e),1&t?N(n,e):n):n}),up=R(function(t,e){return C(ap,t,e,\"\")}),ip=d(function(t,e,n){return N(M(up,t-Pu(n),rp(e)),n)}),op=R(function(t,e){return Qn(t/e)}),cp=d(function(t,e,n){for(;;){if(!n.b)return e+t;var r=n.a,a=n.b;if(g(r.start,e)<0)return e+r.offset;t=t,e=e,n=a}}),sp=R(function(t,e){var n=t.b;return C(cp,t.a,M(op,Td(e),6e4),n)}),fp=function(t){var e=M(op,t,1440)+719468,n=(e<0?e-146096:e)/146097|0,r=e-146097*n,a=(r-(r/1460|0)+(r/36524|0)-(r/146096|0))/365|0,u=r-(365*a+(a/4|0)-(a/100|0)),i=(5*u+2)/153|0,o=i+(i<10?3:-9);return{day:u-((153*i+2)/5|0)+1,month:o,year:a+400*n+(2<o?0:1)}},lp=R(function(t,e){return fp(M(sp,t,e)).day}),dp=R(function(t,e){return M(mf,24,M(op,M(sp,t,e),60))}),mp=R(function(t,e){return M(mf,60,M(sp,t,e))}),hp={$:\"Apr\"},bp={$:\"Aug\"},vp={$:\"Dec\"},pp={$:\"Feb\"},gp={$:\"Jan\"},$p={$:\"Jul\"},wp={$:\"Jun\"},Sp={$:\"Mar\"},yp={$:\"May\"},kp={$:\"Nov\"},Rp={$:\"Oct\"},Mp={$:\"Sep\"},Cp=R(function(t,e){switch(fp(M(sp,t,e)).month){case 1:return gp;case 2:return pp;case 3:return Sp;case 4:return hp;case 5:return yp;case 6:return wp;case 7:return $p;case 8:return bp;case 9:return Mp;case 10:return Rp;case 11:return kp;default:return vp}}),xp=R(function(t,e){return M(mf,60,M(op,Td(e),1e3))}),Ap=R(function(t,e){return fp(M(sp,t,e)).year}),Lp=R(function(t,e){return M(Cr,\" \",L([M(Cr,\"/\",L([Mr(M(lp,t,e)),Mr(function(t){switch(t.$){case\"Jan\":return 1;case\"Feb\":return 2;case\"Mar\":return 3;case\"Apr\":return 4;case\"May\":return 5;case\"Jun\":return 6;case\"Jul\":return 7;case\"Aug\":return 8;case\"Sep\":return 9;case\"Oct\":return 10;case\"Nov\":return 11;default:return 12}}(M(Cp,t,e))),Mr(M(Ap,t,e))])),M(Cr,\":\",L([C(ip,2,k(\"0\"),Mr(M(dp,t,e))),C(ip,2,k(\"0\"),Mr(M(mp,t,e))),C(ip,2,k(\"0\"),Mr(M(xp,t,e)))]))]))}),_p={decimalPlaces:2,decimalSeparator:\".\",units:{$:\"Base10\"}},Dp=L([{abbreviation:\"B\",minimumSize:1},{abbreviation:\"kB\",minimumSize:1e3},{abbreviation:\"MB\",minimumSize:1e6},{abbreviation:\"GB\",minimumSize:1e9},{abbreviation:\"TB\",minimumSize:1e12},{abbreviation:\"PB\",minimumSize:1e15},{abbreviation:\"EB\",minimumSize:1e18}]),Op=L([{abbreviation:\"B\",minimumSize:1},{abbreviation:\"KiB\",minimumSize:1024},{abbreviation:\"MiB\",minimumSize:1048576},{abbreviation:\"GiB\",minimumSize:1073741824},{abbreviation:\"TiB\",minimumSize:1099511627776},{abbreviation:\"PiB\",minimumSize:0x4000000000000}]),Pp=M(Jc,tf,Zs(\"\\\\.\")),Np=M(Jc,tf,Zs(\"^(\\\\d+\\\\.[^0]*)(0+)$\")),Fp=R(function(t,e){return t<1?e:C(Nu,0,-t,e)}),Bp=ft,zp=rt,Tp=function(t){return C(zp,_n,m,t)},Ip=function(t){return t<0?-t:t},Ep=function(t){return t===1/0||t===-1/0},Gp=et,Xp=dt,Up=d(function(t,e,n){return N(n,M(up,t-Pu(n),rp(e)))}),Jp=function(t){for(var e=t.length,n=Array(e),r=0;r<e;){var a=t.charCodeAt(r);a<55296||56319<a?n[e-r]=t[r]:(n[e-r]=t[r+1],n[e-++r]=t[r-1]),r++}return n.join(\"\")},jp=R(function(t,e){var n=M(uc,function(t){return!_(t,k(\"0\"))&&!_(t,k(\".\"))},Tp(e));return N(t&&n?\"-\":\"\",e)}),Vp=function(t){return k(t<0||1114111<t?\"�\":65535<t?String.fromCharCode(55296+Math.floor((t-=65536)/1024),t%1024+56320):String.fromCharCode(t))},Hp=function(t){var e=t.a,n=t.b;if(_(e,k(\"9\"))){var r=xr(n);if(\"Nothing\"===r.$)return\"01\";var a=r.a;return M(np,k(\"0\"),Hp(a))}var u=hr(e);return 48<=u&&u<57?M(np,Vp(u+1),n):\"0\"},qp=function(t){var e=M(Ar,\".\",t);return e.b?D(e.a,e.b.b?e.b.a:\"0\"):D(\"0\",\"0\")},Wp=R(function(t,e){var n=e.b;return D(t(e.a),n)}),Kp=d(function(t,e,n){if(Ep(n)||Gp(n))return Xp(n);var r=n<0,a=qp(function(t){var e=M(Ar,\"e\",Xp(Ip(t)));if(e.b){if(e.b.b){var n=e.a,r=e.b.a,a=M(Jc,0,Uu(M(Bu,\"+\",r)?M(Fu,1,r):r)),u=qp(n),i=N(u.a,u.b);return N(t<0?\"-\":\"\",a<0?M(Jc,\"0\",M(wh,function(t){return t.a+\".\"+t.b},M(wh,Wp(rp),xr(N(M(up,Ip(a),\"0\"),i))))):C(Up,a+1,k(\"0\"),i))}return N(t<0?\"-\":\"\",n=e.a)}return\"\"}(Ip(n))),u=a.a,i=a.b,o=Pu(u)+e,c=N(M(up,1-o,\"0\"),C(Up,o,k(\"0\"),N(u,i))),s=Pu(c),f=M(Yn,1,o),l=M(t,r,C(Nu,f,s,c)),d=C(Nu,0,f,c),m=l?Jp(M(Jc,\"1\",M(wh,Hp,xr(Jp(d))))):d,h=Pu(m),b=\"0\"===m?m:0<e?g(e,Pu(i))<0?C(Nu,0,h-e,m)+\".\"+C(Nu,h-e,h,m):N(u+\".\",C(Up,e,k(\"0\"),i)):N(m,M(up,Ip(e),\"0\"));return M(jp,r,b)})(R(function(t,e){var n=xr(e);if(\"Nothing\"===n.$)return!1;if(\"0\"!==n.a.a.valueOf())return t;var r=n.a.b;return t&&M(uc,ad(k(\"0\")),Tp(r))})),Qp=R(function(t,e){var n=$(af,1,Np,function(t){var e=t.submatches;return M(Cr,\"\",M(eu,Jc(\"\"),M(nd,1,e)))},M(Kp,t.decimalPlaces,e)),r=M(Bp,\".\",n)?M(Fp,1,n):n;return\".\"===t.decimalSeparator?r:$(af,1,Pp,function(){return t.decimalSeparator},r)}),Yp={abbreviation:\"?\",minimumSize:1},Zp=R(function(t,e){if(e){var n=\"Base10\"===t.units.$?Dp:Op,r=e<0?D(-e,\"-\"):D(e,\"\"),a=r.a,u=r.b,i=M(Jc,Yp,ac(jn(M(Pi,function(t){return-1<g(a,t.minimumSize)},n))));return D(N(u,M(Qp,t,a/i.minimumSize)),i.abbreviation)}return D(\"0\",\"B\")}),tg=function(t){var e=M(Zp,_p,t);return e.a+\" \"+e.b},eg=uh(Zb({$:\"Success\"})),ng=function(t){return{$:\"Td\",a:t}},rg=R(function(t,e){return ng({children:e,options:t})}),ag=function(t){return{$:\"Row\",a:t}},ug=R(function(t,e){return ag({cells:e,options:t})}),ig=R(function(t,e){return M(ug,m,L([M(rg,m,L([function(t){return M(Im,L(t.isDir?[Xm(\"fas fa-lg fa-folder text-xs-right file-list-icon\")]:[Xm(\"far fa-lg fa-file text-xs-right file-list-icon\")]),m)}(e)])),M(rg,m,L([Em(e.path)])),M(rg,m,L([Em(M(Lp,t.zone,e.lastModified))])),M(rg,m,L([Em(tg(e.size))])),M(rg,m,L([M(ah,L([eg,Wm(L([qm((n=e.path,{$:\"UndeleteClicked\",a:n})),Jm(!M(ic,\"fs.edit\",t.rights))]))]),L([Em(\"Undelete\")]))]))]));var n}),og=function(t){return{$:\"TableAttr\",a:t}},cg=function(t){return{$:\"CellAttr\",a:t}},sg={$:\"Hover\"},fg=Ce(\"table\"),lg={$:\"Inversed\"},dg=function(t){return\"Responsive\"===t.$},mg=function(t){return{$:\"TBody\",a:t}},hg=function(t){return{$:\"KeyedRow\",a:t}},bg=function(t){return{$:\"Th\",a:t}},vg=function(t){var e,n=function(t){return M(eu,function(t){return\"RoledCell\"!==t.$?t:{$:\"InversedCell\",a:t.a}},t)};return\"Th\"!==t.$?ng(O(e=t.a,{options:n(e.options)})):bg(O(e=t.a,{options:n(e.options)}))},pg=function(t){var e=function(t){return M(eu,function(t){return\"RoledRow\"!==t.$?t:{$:\"InversedRow\",a:t.a}},t)};if(\"Row\"===t.$){var n=t.a.options;return ag({cells:M(eu,vg,t.a.cells),options:e(n)})}n=t.a.options;return hg({cells:M(eu,function(t){return D(t.a,vg(t.b))},t.a.cells),options:e(n)})},gg=R(function(t,e){var n=D(t,e);if(n.a){if(\"TBody\"===n.b.$){var r=n.b.a;return mg(O(r,{rows:M(eu,pg,r.rows)}))}var a=n.b.a;return{$:\"KeyedTBody\",a:O(a,{rows:M(eu,function(t){return D(t.a,pg(t.b))},a.rows)})}}return e}),$g={$:\"InversedHead\"},wg=function(t){return{$:\"THead\",a:t}},Sg=R(function(t,e){var n=e.a;return wg(t||M(uc,function(t){return _(t,$g)},n.options)?O(n,{rows:M(eu,pg,n.rows)}):n)}),yg=R(function(t,e){var n=Xm(\"table-responsive\"+M(Jc,\"\",M(wh,function(t){return\"-\"+t},M(Qm,Zm,M(Qm,function(t){return\"Responsive\"!==t.$?ur:t.a},ac(M(Pi,dg,t)))))));return M(uc,dg,t)?M(Wh,L([n]),L([e])):e}),kg=Ce(\"tbody\"),Rg=Gm(\"scope\"),Mg=function(t){if(\"Th\"!==t.$)return t;var e=t.a;return bg(O(e,{options:M(_n,cg(Rg(\"row\")),e.options)}))},Cg=function(t){if(\"Row\"===t.$){var e=t.a.options;if((r=t.a.cells).b){var n=r.b;return ag({cells:M(_n,Mg(r.a),n),options:e})}return t}var r;e=t.a.options;if((r=t.a.cells).b){var a=r.a;n=r.b;return hg({cells:M(_n,D(a.a,Mg(a.b)),n),options:e})}return t},xg=Ce(\"tr\"),Ag=Ce(\"td\"),Lg=Ce(\"th\"),_g=function(t){switch(t.$){case\"RoledCell\":if(\"Roled\"===t.a.$)return M(rb,\"table\",t.a.a);return Xm(\"table-active\");case\"InversedCell\":if(\"Roled\"===t.a.$)return M(rb,\"bg-\",t.a.a);return Xm(\"bg-active\");default:return t.a}},Dg=function(t){return M(eu,_g,t)},Og=function(t){if(\"Td\"===t.$){var e=t.a.children;return M(Ag,Dg(t.a.options),e)}e=t.a.children;return M(Lg,Dg(t.a.options),e)},Pg=function(t){switch(t.$){case\"RoledRow\":if(\"Roled\"===t.a.$)return M(rb,\"table\",t.a.a);return Xm(\"table-active\");case\"InversedRow\":if(\"Roled\"===t.a.$)return M(rb,\"bg\",t.a.a);return Xm(\"bg-active\");default:return t.a}},Ng=function(t){return M(eu,Pg,t)},Fg=function(t){if(\"Row\"===t.$){var e=t.a.cells;return M(xg,Ng(t.a.options),M(eu,Og,e))}e=t.a.cells;return C(bb,\"tr\",Ng(t.a.options),M(eu,function(t){return D(t.a,Og(t.b))},e))},Bg=Ce(\"thead\"),zg=function(t){switch(t.$){case\"InversedHead\":return Xm(\"thead-dark\");case\"DefaultHead\":return Xm(\"thead-default\");default:return t.a}},Tg=function(t){var e=t.a.rows;return M(Bg,function(t){return M(eu,zg,t)}(t.a.options),M(eu,Fg,e))},Ig=function(t){switch(t.$){case\"Inversed\":return ar(Xm(\"table-dark\"));case\"Striped\":return ar(Xm(\"table-striped\"));case\"Bordered\":return ar(Xm(\"table-bordered\"));case\"Hover\":return ar(Xm(\"table-hover\"));case\"Small\":return ar(Xm(\"table-sm\"));case\"Responsive\":return ur;case\"Reflow\":return ar(Xm(\"table-reflow\"));default:return ar(t.a)}},Eg=function(t){var e,n,r=M(uc,function(t){return _(t,lg)},t.options);return M(yg,t.options,M(fg,(n=M(Pi,function(t){return!dg(t)},t.options),M(_n,Xm(\"table\"),M(Ba,va,M(eu,Ig,n)))),L([Tg(M(Sg,r,t.thead)),(e=M(gg,r,t.tbody),\"TBody\"!==e.$?C(bb,\"tbody\",e.a.attributes,M(eu,function(t){return D(t.a,Fg(Cg(t.b)))},e.a.rows)):M(kg,e.a.attributes,M(eu,function(t){return Fg(Cg(t))},e.a.rows)))])))},Gg=R(function(t,e){return mg({attributes:t,rows:e})}),Xg=R(function(t,e){return bg({children:e,options:t})}),Ug=R(function(t,e){return wg({options:t,rows:e})}),Jg=R(function(t,e){var n=M(ep,t.filter,e);return Eg({options:L([sg,og(Xm(\"borderless-table\"))]),tbody:M(Gg,m,M(eu,ig(t),n)),thead:M(Ug,m,L([M(ug,m,L([M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),m),M(Xg,L([cg(M(nb,\"width\",\"55%\"))]),L([Em(\"Name\")])),M(Xg,L([cg(M(nb,\"width\",\"20%\"))]),L([Em(\"Deleted at\")])),M(Xg,L([cg(M(nb,\"width\",\"15%\"))]),L([Em(\"Size\")])),M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),m)]))]))})}),jg=M(Jb,vb,Nv),Vg=R(function(t,e){return 0<$r(e)?M(Jg,t,e):M(Gb,m,L([M(mb,L([jg,Vb(qb)]),L([M(Im,L([Xm(\"text-muted\")]),Pu(t.filter)?L([Em(\" Search did not find anything. Remove the query to go back. \")]):L([Em(\" The \"),M(Im,L([Xm(\"fas fa-md fa-trash-alt\")]),m),Em(\" is empty. If you delete something, it will appear here.\")]))]))]))}),Hg=M(Jb,bh,ev),qg=M(Jb,bh,Mv),Wg=R(function(t,e){return M(Gb,m,L([M(mb,L([Hg,Xb(L([Xm(\"d-none d-lg-block\")]))]),m),M(mb,L([qg,Fv]),L([M(Dv,L([Xm(\"text-muted text-center\")]),L([Em(\"Deleted files\")])),M(_v,m,m),M(Lv,ku,t.alert),M(Vg,t,e),M(_v,m,m)])),M(mb,L([Hg,Xb(L([Xm(\"d-none d-lg-block\")]))]),m)]))}),Kg=function(t){return{$:\"SearchInput\",a:t}},Qg=function(t){return jv(M(Iv,L([Xm(\"stylish-input-group input-group\")]),M(Xv,L([M(Gv,L([Xm(\"input-group-addon\")]),L([M(Km,m,L([M(Im,L([Xm(\"fas fa-search fa-xs input-group-addon\")]),m)]))]))]),Ev(Uv(L([Th(\"Search\"),mh(L([Lh(Kg),Rh(t.filter)]))]))))))},Yg={$:\"BackClicked\"},Zg=Ce(\"h5\"),t$=R(function(t,e){return M(Zg,L([Xm(t)]),L([Em(e)]))}),e$=function(t){return M(Im,m,L([Em(t),M(_v,m,m)]))},n$=R(function(t,e){return 0<$r(t)?M(Im,m,L([e,M(Im,m,M(eu,function(t){return e$(\" \"+t.src.path+\" ↔ \"+t.dst.path)},t)),M(_v,m,m)])):Em(\"\")}),r$=R(function(t,e){return 0<$r(t)?M(Im,m,L([e,M(Im,m,M(eu,function(t){return e$(\" \"+t.path)},t)),M(_v,m,m)])):Em(\"\")}),a$=R(function(t,e){var n=function(t){return $r(t.added)+$r(t.removed)+$r(t.ignored)+$r(t.missing)+$r(t.moved)+$r(t.merged)+$r(t.conflict)}(e);if(n){var r=n;return M(Wh,m,L([M(r$,e.added,M(t$,\"text-success\",\"Added\")),M(r$,e.removed,M(t$,\"text-warning\",\"Removed\")),M(r$,e.ignored,M(t$,\"text-muted\",\"Ignored\")),M(n$,e.moved,M(t$,\"text-primary\",\"Moved\")),M(n$,e.merged,M(t$,\"text-info\",\"Merged\")),M(n$,e.conflict,M(t$,\"text-danger\",\"Conflicts\")),M(_v,m,m),M(_v,m,m),Em(Mr(r)+\" changes in total\")]))}return Em(\"There are no differences!\")}),u$=R(function(t,e){return M(Gb,m,L([M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m),M(mb,L([jb,Fv]),L([M(Dv,L([Xm(\"text-center\")]),L([M(Im,L([Xm(\"text-muted\")]),L([Em(\"Difference to »\")])),Em(ns(t.url)),M(Im,L([Xm(\"text-muted\")]),L([Em(\"«\")])),M(ah,L([Rv,Wm(L([qm(Yg)]))]),L([M(Im,L([Xm(\"font-weight-light\")]),L([Em(\"(go back)\")]))]))])),M(_v,m,m),\"Ok\"!==e.$?Em(e.a):M(a$,t,e.a),M(_v,m,m)])),M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m)]))}),i$={$:\"ModalShow\"},o$=function(t){return{$:\"ModalShow\",a:t}},c$=R(function(t,e){return{$:\"UploadSelectedFiles\",a:t,b:e}}),s$=kn,f$=M(xh,L([\"target\",\"files\"]),Br(s$)),l$=Ce(\"label\"),d$=Um(\"multiple\"),m$=f(function(t,e,n,r){return M(l$,L([Xm(\"btn btn-file btn-link btn-default text-left\"),Sh(\"action-btn\"),Xm(e?\"disabled\":\"btn-default\")]),L([M(Im,L([Xm(\"fas fa-plus\")]),m),M(Im,L([Xm(\"d-lg-inline d-none\")]),L([Em(\"  Upload\")])),M($h,L([jm(\"file\"),d$(!0),M(Hm,\"change\",M(_u,r,M(_u,c$(n),f$))),M(nb,\"display\",\"none\"),Jm(e)]),m)]))}),h$=R(function(t,e){return g(Pu(t),e)<1?t:C(Nu,0,e,t)+\"…\"}),b$=d(function(t,e,n){return M(ub,t,M(Vh,L([M(Gb,m,L([M(mb,L([Cv]),L([M(Im,L([Xm(n?\"fas fa-xs fa-check\":\"fas fa-xs fa-exclamation-circle\")]),m),Em(\" \"+M(h$,e,15))])),M(mb,L([Av,Vb(sv)]),L([M(ah,L([Rv,Wm(L([Xm(\"notification-close-btn\"),qm(M(Qi,e,lc))]))]),L([M(Im,L([Xm(\"fas fa-xs fa-times\")]),m)]))]))]))]),(n?Sv:pv)(M(kv,Qi(e),Hh))))}),v$=M(Jb,Pv,Mv),p$=M(Jb,Pv,xv),g$=function(t){return{$:\"Options\",a:t}},$$=R(function(t,e){var n=e.a;return g$(function(){switch(t.$){case\"Value\":return O(n,{value:t.a});case\"Height\":return O(n,{height:t.a});case\"Label\":return O(n,{label:t.a});case\"Roled\":return O(n,{role:t.a});case\"Striped\":return O(n,{striped:t.a});case\"Animated\":return O(n,{animated:t.a});case\"Attrs\":return O(n,{attributes:t.a});default:return O(n,{wrapperAttributes:t.a})}}())}),w$=g$({animated:!1,attributes:m,height:ur,label:m,role:ur,striped:!1,value:0,wrapperAttributes:m}),S$=function(t){var e,n,r,a=t.a;return Yc(L([L([M(Kh,\"role\",\"progressbar\"),M(Kh,\"aria-value-now\",Xp(a.value)),M(Kh,\"aria-valuemin\",\"0\"),M(Kh,\"aria-valuemax\",\"100\"),M(nb,\"width\",Xp(a.value)+\"%\"),Ym(L([D(\"progress-bar\",!0),D(\"progress-bar-striped\",a.striped||a.animated),D(\"progress-bar-animated\",a.animated)]))]),(r=a.height,\"Just\"!==r.$?m:L([M(nb,\"height\",Mr(r.a)+\"px\")])),(n=a.role,\"Just\"!==n.$?m:L([(e=n.a,Xm(function(){switch(e.$){case\"Success\":return\"bg-success\";case\"Info\":return\"bg-info\";case\"Warning\":return\"bg-warning\";default:return\"bg-danger\"}}()))])),a.attributes]))},y$=function(t){var e=C(Jn,$$,w$,t).a;return M(Wh,M(_n,Xm(\"progress\"),e.wrapperAttributes),L([function(t){var e=C(Jn,$$,w$,t),n=e.a;return M(Wh,S$(e),n.label)}(t)]))},k$=R(function(t,e){return M(Gb,m,L([M(mb,L([v$]),L([y$(L([(u=100*e,{$:\"Value\",a:u}),(a=L([Em(M(h$,t,25))]),{$:\"Label\",a:a}),(r=L([M(nb,\"height\",\"25px\")]),{$:\"Attrs\",a:r}),function(t){return{$:\"WrapperAttrs\",a:t}}(L([M(nb,\"height\",\"25px\")]))]))])),M(mb,L([p$]),L([M(ah,L([Rv,Wm(L([Xm(\"progress-cancel\"),qm((n=t,{$:\"UploadCancel\",a:n}))]))]),L([M(Im,L([Xm(\"fas fa-xs fa-times\")]),m)]))]))]));var n,r,a,u}),R$={$:\"Block\"},M$=function(t){return{$:\"Size\",a:t}}({$:\"SM\"}),C$=f(function(t,e,n,r){return M(ah,L([R$,M$,Rv,Wm(L([Xm(\"text-left\"),Jm(r),qm(t)]))]),L([M(Im,L([Xm(\"fas fa-lg\"),Xm(e)]),m),M(Im,L([Xm(\"d-lg-inline d-none\")]),L([Em(\" \"+n)]))]))}),x$=function(t){var e=t.state;return\"Success\"===e.$&&!e.a.self.isDir},A$=R(function(t,e){return\"Just\"===M(Xr,t,e).$}),L$=R(function(t,e){return M(A$,t,e.a)}),_$=function(t){var e=t.state;if(\"Success\"!==e.$)return 0;var n=e.a;return C(Jn,Kn,0,M(eu,function(t){return M(L$,t.path,n.checked)?t.size:0},n.entries))},D$=Ce(\"p\"),O$=R(function(t,e){if(x$(t))return Em(\"\");switch(e){case 0:return M(D$,m,L([Em(\" Nothing selected\"),M(_v,m,m),Em(tg(function(t){var e=t.state;return\"Success\"!==e.$?0:e.a.self.size}(t))+\" in total\")]));case 1:return M(D$,m,L([Em(\" 1 item\"),M(_v,m,m),Em(tg(_$(t)))]));default:return M(D$,m,L([Em(\" \"+Mr(e)+\" items\"),M(_v,m,m),Em(tg(_$(t)))]))}}),P$=R(function(r,t){return C(gi,d(function(t,e,n){return M(r,t,e)?C(qr,t,e,n):n}),Er,t)}),N$=R(function(e,t){var n=t.a;return Gd(M(P$,R(function(t){return e(t)}),n))}),F$=function(t){var e=t.state;return\"Success\"!==e.$?0:jd(M(N$,function(t){return!Eu(t)},e.a.checked))},B$=function(t){var e=t.state;return\"Success\"!==e.$?m:Pn(M(N$,function(t){return!Eu(t)},e.a.checked))},z$=R(function(t,e){return\"/\"+(M(Cr,\"/\",t)+rm(e))}),T$=R(function(t,e){return M(Kb,M(_n,M(Kh,\"role\",\"button\"),rh(t)),e)}),I$=function(t){var e=F$(t),n=x$(t)||!M(ic,\"fs.download\",t.rights)?Xm(\"disabled\"):Xm(\"btn-default\");return M(T$,L([R$,Wm(L([Xm(\"text-left btn-link download-btn\"),n,Qb(function(t){return M(z$,M(_n,\"get\",Ni(zi(t.url))),M(_n,M(em,\"direct\",\"yes\"),0<F$(t)?M(eu,em(\"include\"),B$(t)):m))}(t))]))]),L([M(Im,L([Xm(\"fas fa-lg fa-file-download\")]),m),M(Im,L([Sh(\"action-btn\"),Xm(\"d-none d-lg-inline\")]),L([Em(0<e?\" Download selected \":\" Download all\")]))]))},E$=Ae,G$=function(t){var e,n=M(Jc,\"/\",function(t){var e=t.state;return\"Success\"!==e.$?ur:ar(e.a.self.path)}(t)),r=F$(t);return M(Wh,m,L([M(Wh,L([Xm(\"d-flex flex-lg-column flex-row\")]),L([M(D$,L([Xm(\"text-muted\"),Sh(\"select-label\")]),L([M(O$,t,r)])),M(Wh,L([Xm(\"d-flex flex-column\")]),L([$(m$,t.uploadState,x$(t)||!M(ic,\"fs.download\",t.rights),n,so),I$(t)])),M(Wh,L([Xm(\"d-flex flex-column\")]),L([$(C$,co(o$(B$(t))),\"fa-share-alt\",\"Share\",!r),$(C$,ao(i$),\"fa-edit\",\"New Folder\",x$(t)||!M(ic,\"fs.edit\",t.rights))])),M(Wh,L([Xm(\"d-flex flex-column\")]),L([$(C$,io((e=B$(t),{$:\"ModalShow\",a:e})),\"fa-trash\",\"Delete\",x$(t)||!r||!M(ic,\"fs.edit\",t.rights))]))])),M(Wh,m,L([M(E$,so,function(t){return M(Wh,m,L([M(_v,m,m),M(_v,m,m),M(lv,L([Xm(\"notification-list list-group\")]),N(M(eu,function(t){return C(b$,t.alert,t.path,!0)},t.success),N(M(eu,function(t){return C(b$,t.alert,t.path,!1)},t.failed),M(eu,function(t){return M(k$,t.a,t.b)},Dn(t.uploads)))))]))}(t.uploadState))]))]))},X$=R(function(t,e){return{$:\"Item\",a:t,b:e}}),U$=R(function(t,e){return M(X$,t,e)}),J$=R(function(t,e){var n=function(t){return 0<Pu(t)?t:\"Home\"};if(t.b){if(t.b.b){var r=t.b;return M(_n,M(U$,m,L([M(Kb,L([Qb(\"/view/\"+M(Cr,\"/\",M(_n,a=t.a,e)))]),L([Em(n(a))]))])),M(J$,r,N(e,L([a]))))}var a;return L([M(U$,m,L([Em(n(a=t.a))]))])}return m}),j$=Ce(\"nav\"),V$=Ce(\"ol\"),H$=function(t){if(t.b){if(t.b.b){var e=t.a,n=(a=e.b,t.b);return N(L([M(iv,N(e.a,L([Xm(\"breadcrumb-item\")])),a)]),H$(n))}var r=t.a,a=r.b;return L([M(iv,N(r.a,L([M(Kh,\"aria-current\",\"page\"),Xm(\"breadcrumb-item active\")])),a)])}return m},q$=function(t){return M(Wh,L([Sh(\"breadcrumbs-box\")]),L([(e=M(J$,M(_n,\"\",Ni(zi(t.url))),m),e.b?M(j$,L([M(Kh,\"aria-label\",\"breadcrumb\"),M(Kh,\"role\",\"navigation\")]),L([M(V$,L([Xm(\"breadcrumb\")]),H$(e))])):Em(\"\"))]));var e},W$=function(t){return{$:\"CheckboxTickAll\",a:t}},K$={$:\"ModTime\"},Q$={$:\"Name\"},Y$={$:\"Pin\"},Z$={$:\"Size\"},tw=R(function(t,e){return{$:\"SortBy\",a:t,b:e}}),ew=d(function(t,e,n){var r=_(D(Fd,n),e.sortState)?\"sort-button-selected\":\"\",a=_(D(xd,n),e.sortState)?\"sort-button-selected\":\"\";return M(Im,L([Xm(\"sort-button-container text-muted\")]),L([M(Im,m,L([Em(t+\" \")])),M(Im,L([Xm(\"sort-button\")]),L([M(T$,L([M$,Wm(L([qm(M(tw,xd,n)),Xm(\"sort-button\")]))]),L([M(Im,L([Xm(\"fas fa-xs fa-arrow-up\"),Xm(a)]),m)])),M(T$,L([M$,Wm(L([qm(M(tw,Fd,n)),Xm(\"sort-button\")]))]),L([M(Im,L([Xm(\"fas fa-xs fa-arrow-down\"),Xm(r)]),m)]))]))]))}),nw=R(function(t,e){return{$:\"CheckboxTick\",a:t,b:e}}),rw=function(t){return{$:\"RowClicked\",a:t}},aw=function(t){return{$:\"ModalShow\",a:t}},uw=function(t){return M(ic,\"fs.download\",t.rights)},iw=function(t){return M(ic,\"fs.edit\",t.rights)},ow=function(t){return{$:\"DropdownItem\",a:t}},cw=R(function(t,e){return ow(M(Kb,N(L([Xm(\"dropdown-item\")]),t),e))}),sw=R(function(t,e){return ow(M(Km,N(L([jm(\"button\"),Xm(\"dropdown-item\")]),t),e))}),fw=ow(M(Wh,L([Xm(\"dropdown-divider\")]),m)),lw=R(function(t,e){return N(L([Ym(L([D(\"btn-group\",!0),D(\"show\",!_(t,mo)),D(\"dropup\",e.isDropUp)]))]),N(M(Jc,m,M(wh,function(t){return L([Xm(\"drop\"+(\"Dropleft\"===t.$?\"left\":\"right\"))])},e.dropDirection)),e.attributes))}),dw=R(function(t,e){var n=t.a.toggleSize,r=t.a.menuSize,a=function(t){return Xp(t)+\"px\"},u=d(function(t,e,n){return\"translate3d(\"+a(t)+\",\"+a(e)+\",\"+a(n)+\")\"}),i=L([M(nb,\"top\",\"0\"),M(nb,\"left\",\"0\")]),o=D(e.isDropUp,e.dropDirection);t:for(;;){if(\"Just\"===o.b.$){if(\"Dropright\"===o.b.a.$){if(o.a)break t;return i}if(o.a)break t;return N(i,L([M(nb,\"transform\",C(u,-n.width-r.width,0,0))]))}if(o.a)break t;return N(i,L([M(nb,\"transform\",C(u,-n.width,n.height,0))]))}return N(i,L([M(nb,\"transform\",C(u,-n.width,-r.height,0))]))}),mw=d(function(t,e,n){var r=_(t.a.status,mo)?L([M(nb,\"height\",\"0\"),M(nb,\"overflow\",\"hidden\"),M(nb,\"position\",\"relative\")]):L([M(nb,\"position\",\"relative\")]);return M(Wh,r,L([M(Wh,N(L([Ym(L([D(\"dropdown-menu\",!0),D(\"dropdown-menu-right\",e.hasMenuRight),D(\"show\",!0)]))]),N(M(dw,t,e),e.menuAttrs)),M(eu,function(t){return t.a},n))]))}),hw=R(function(t,e){switch(t.$){case\"AlignMenuRight\":return O(e,{hasMenuRight:!0});case\"Dropup\":return O(e,{isDropUp:!0});case\"Attrs\":return O(e,{attributes:t.a});case\"DropToDir\":return O(e,{dropDirection:ar(t.a)});default:return O(e,{menuAttrs:t.a})}}),bw={attributes:m,dropDirection:ur,hasMenuRight:!1,isDropUp:!1,menuAttrs:m},vw=R(function(t,e){var n=t.a.status,r=e.toggleMsg,a=e.toggleButton,u=e.items,i=function(t){return C(Jn,hw,bw,t)}(e.options),o=a.a;return M(Wh,M(lw,n,i),L([M(o,r,t),C(mw,t,i,u)]))}),pw={$:\"Open\"},gw=R(function(t,e){return D(t,e)}),$w=M(xh,L([\"className\"]),zr),ww=M($u,function(t){return Su(!!M(Xu,\"dropdown-toggle\",t))},$w),Sw=R(function(e,n){return kf(L([M($u,function(t){return t?M(xh,e,n):Ws(\"\")},M(xh,e,ww)),M($u,function(){return M(Sw,N(e,L([\"parentElement\"])),n)},M(xh,N(e,L([\"parentElement\"])),$w)),Ws(\"No toggler found\")]))}),yw=vt,kw=M(Fr,\"offsetHeight\",yw),Rw=M(Fr,\"offsetWidth\",yw),Mw=M(Fr,\"offsetLeft\",yw),Cw=R(function(t,e){return kf(L([M(Fr,\"offsetParent\",yf(t)),M(Fr,\"offsetParent\",e)]))}),xw=M(Fr,\"offsetTop\",yw),Aw=M(Fr,\"scrollLeft\",yw),Lw=M(Fr,\"scrollTop\",yw),_w=R(function(a,u){return M($u,function(t){var e=t.a,n=t.b;return M(Cw,D(e,n),M(_w,e,n))},x(To,f(function(t,e,n,r){return D(a+n-t,u+r-e)}),Aw,Lw,Mw,xw))}),Dw=$(is,d(function(t,e,n){return{height:n,left:t.a,top:t.b,width:e}}),M(_w,0,0),Rw,kw),Ow=function(t){return xh(L([\"childNodes\",Mr(t)]))},Pw=C(Du,gw,M(Sw,L([\"target\"]),Dw),M(Sw,L([\"target\"]),M(Fr,\"nextSibling\",M(Ow,0,Dw)))),Nw=R(function(n,t){var r=t.a.status;return M($u,function(t){var e=t.a;return Su(n(bo({menuSize:t.b,status:function(t){switch(t.$){case\"Open\":case\"ListenClicks\":return mo;default:return pw}}(r),toggleSize:e})))},Pw)}),Fw=f(function(t,e,n,r){return M(Km,N(rh(t),L([Xm(\"dropdown-toggle\"),jm(\"button\"),M(Hm,\"click\",M(Nw,n,r))])),e)}),Bw=R(function(t,e){return{$:\"DropdownToggle\",a:M(Fw,t,e)}}),zw=d(function(t,e,n){return M(vw,n.dropdown,{items:L([M(sw,L([qm((a=n,{$:\"HistoryClicked\",a:a}))]),L([M(Im,L([Xm(\"fa fa-md fa-history\")]),m),Em(\" History\")])),fw,M(cw,L([Qb(\"/get\"+Qd(Fi(L([e.self.path,dd(n.path)])))+\"?direct=yes\"),qm(M(to,n,_c)),Jm(!uw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-file-download\")]),m),Em(\" Download\")])),M(cw,L([Qb(\"/get\"+Qd(Fi(L([e.self.path,dd(n.path)])))),qm(M(to,n,_c)),Jm(!uw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-eye\")]),m),Em(\" View\")])),M(cw,L([qm(co(o$(L([n.path]))))]),L([M(Im,L([Xm(\"fa fa-md fa-share-alt\")]),m),Em(\" Share\")])),fw,M(sw,L([qm(function(t){return{$:\"RemoveClicked\",a:t}}(n)),Jm(!iw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-trash\")]),m),Em(\" Delete\")])),fw,M(sw,L([qm(oo((r=n.path,{$:\"ModalShow\",a:r}))),Jm(!iw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-file-signature\")]),m),Em(\" Rename\")])),M(sw,L([qm(uo(aw(n.path))),Jm(!iw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-arrow-right\")]),m),Em(\" Move\")])),M(sw,L([qm(no(aw(n.path))),Jm(!iw(t))]),L([M(Im,L([Xm(\"fa fa-md fa-copy\")]),m),Em(\" Copy\")]))]),options:m,toggleButton:M(Bw,L([Rv]),L([M(Im,L([Xm(\"fas fa-ellipsis-h\")]),m)])),toggleMsg:to(n)});var r,a}),Tw=R(function(t,e){return t.isFiltered?M(Cr,\"/\",Ni(e.path)):dd(e.path)}),Iw=Ce(\"i\"),Ew=Um(\"checked\"),Gw=M(xh,L([\"target\",\"checked\"]),Nr),Xw=function(t){return M(Hm,\"change\",M(_u,t,Gw))},Uw=R(function(t,e){return M(Wh,L([Xm(\"checkbox\")]),L([M(l$,m,L([M($h,L([jm(\"checkbox\"),Xw(e),Ew(t)]),m),M(Im,L([Xm(\"cr\")]),L([M(Iw,L([Xm(\"cr-icon fas fa-lg fa-check\")]),m)]))]))]))}),Jw=R(function(t,e){return M(L$,e,t.checked)}),jw=R(function(t,e){return{$:\"PinClicked\",a:t,b:e}}),Vw=R(function(t,e){var n=D(t,e);return M(Im,L(n.a?n.b?[Xm(\"fa fa-map-marker\"),Xm(\"text-success\")]:[Xm(\"fa fa-map-marker-alt\"),Xm(\"text-warning\")]:[Xm(\"fa fa-times\"),Xm(\"text-danger\")]),m)}),Hw=R(function(t,e){return M(ah,L([Rv,Wm(L([Jm(!M(ic,\"fs.edit\",t.rights)),qm(M(jw,e.path,!e.isPinned))]))]),L([M(Vw,e.isPinned,e.isExplicit)]))}),qw=d(function(t,e,n){return M(D$,m,L([Em(M(Lp,t,e)),M(Im,L([Xm(\"text-muted\")]),L([Em(\" by \")])),Em(n)]))}),Ww=f(function(t,e,n,r){return M(ug,m,L([M(rg,m,L([M(Uw,M(Jw,e,r.path),nw(r.path))])),M(rg,L([cg(Xm(\"icon-column\")),cg(qm(rw(r)))]),L([(a=r,M(Im,L(a.isDir?[Xm(\"fas fa-lg fa-folder text-xs-right file-list-icon\")]:[Xm(\"far fa-lg fa-file text-xs-right file-list-icon\")]),m))])),M(rg,L([cg(qm(rw(r)))]),L([M(Kb,L([Qb(\"/view\"+r.path)]),L([Em(M(Tw,e,r))]))])),M(rg,L([cg(qm(rw(r)))]),L([C(qw,n,r.lastModified,r.user)])),M(rg,L([cg(qm(rw(r)))]),L([Em(tg(r.size))])),M(rg,m,L([M(Hw,t,r)])),M(rg,m,L([C(zw,t,e,r)]))]));var a}),Kw=d(function(t,e,n){return Eg({options:L([sg]),tbody:M(Gg,m,M(eu,C(Ww,t,n,e),n.entries)),thead:(r=L([M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),L([M(Uw,M(Jw,n,\"\"),W$)])),M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),L([Em(\"\")])),M(Xg,L([cg(M(nb,\"width\",\"37.5%\"))]),L([C(ew,\"Name\",n,Q$)])),M(Xg,L([cg(M(nb,\"width\",\"27.5%\"))]),L([C(ew,\"Modified\",n,K$)])),M(Xg,L([cg(M(nb,\"width\",\"7.5%\"))]),L([C(ew,\"Size\",n,Z$)])),M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),L([C(ew,\"Pin\",n,Y$)])),M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),L([Em(\"\")]))]),M(Ug,m,L([M(ug,m,r)])))});var r}),Qw=d(function(t,e,n){return M(t,M(_n,Xm(\"alert-header\"),e),n)}),Yw=R(function(t,e){return C(Qw,Dv,t,e)}),Zw=function(t){return M(ub,t.alert,M(Vh,L([M(Yw,m,L([Em(\"Oh, something went wrong! :(\")])),Em(\"The exact error was: \"+t.currError)]),pv()))},tS=function(t){return(\"Https\"===t.protocol.$?\"https://\":\"http://\")+t.host+((\"Just\"!==(e=t.port_).$?\"\":\":\"+Mr(e.a))+\"/\");var e},eS=uh(Zb(ih)),nS=d(function(t,e,n){return M(T$,L([eS,Wm(uw(t)?L([Qb(tS(n)+\"get\"+Qd(e.self.path)+\"?direct=yes\")]):L([Xm(\"text-muted\"),M(nb,\"opacity\",\"0.1\")]))]),L([M(Im,L([Xm(\"fas fa-download\")]),m),Em(\" Download\")]))}),rS=M(Jb,vb,{$:\"Col4\"}),aS=R(function(t,e){return M(Gb,m,L([M(mb,L([rS,Vb(cv)]),L([M(Im,L([Xm(\"text-muted\")]),L([Em(t)]))])),M(mb,L([uv,Vb(sv)]),L([e]))]))}),uS=d(function(t,e,n){return M(T$,L([eS,Wm(uw(t)?L([Qb(tS(n)+\"get\"+Qd(e.self.path))]):L([Xm(\"text-muted\"),M(nb,\"opacity\",\"0.1\")]))]),L([M(Im,L([Xm(\"fas fa-eye\")]),m),Em(\" View\")]))}),iS=function(t){return{$:\"Roled\",a:t}}({$:\"Light\"}),oS=d(function(t,e,n){return M(Gb,m,L([M(mb,L([Av]),m),M(mb,L([uv,Vb(qb)]),L([bv(L([M(ov,m,L([M(aS,\"Path\",Em(e.self.path))])),M(ov,m,L([M(aS,\"Size\",Em(tg(e.self.size)))])),M(ov,m,L([M(aS,\"Owner\",Em(e.self.user))])),M(ov,m,L([M(aS,\"Last Modified\",Em(M(Lp,n,e.self.lastModified)))])),M(ov,m,L([M(aS,\"Pinned\",M(Hw,t,e.self))])),M(ov,L([iS]),L([C(nS,t,e,t.url),Em(\" \"),C(uS,t,e,t.url)]))]))])),M(mb,L([Av]),m)]))}),cS=De,sS=R(function(t,e){var n=t.state;switch(n.$){case\"Failure\":return M(Wh,m,L([Em(\"Sorry, something did not work out as expected.\")]));case\"Loading\":return Em(\"Loading...\");default:var r=n.a;return M(Wh,m,L(r.self.isDir?[Zw(t),$(cS,Kw,t,e,r)]:[Zw(t),$(cS,oS,t,r,e)]))}}),fS=function(t){return{$:\"SearchInput\",a:t}},lS=function(t){return jv(M(Iv,L([Xm(\"stylish-input-group input-group\")]),M(Xv,L([M(Gv,L([Xm(\"input-group-addon\")]),L([M(Km,m,L([M(Im,L([Xm(\"fas fa-search fa-xs input-group-addon\")]),m)]))]))]),Ev(Uv(L([Th(\"Search\"),mh(L([Lh(fS),Rh(ms(t.url))]))]))))))},dS=M(Jb,Wv,xv),mS={$:\"ModalShow\"},hS=R(function(t,e){return{$:\"AcceptPushToggled\",a:t,b:e}}),bS=f(function(t,e,n,r){return M(Im,m,L([M(Im,m,L([M(l$,L([Xm(\"toggle-switch\"),Jm(r),Xm(r?\"toggle-switch-disabled\":\"\")]),L([M($h,L([jm(\"checkbox\"),Xw(t),Ew(n),Jm(r)]),m),M(Im,L([Xm(\"toggle-slider toggle-round\")]),m)]))])),M(Im,L([Xm(\"text-muted\")]),L([Em(\" \"+e)]))]))}),vS=d(function(t,e,n){return $(bS,hS(e),\"\",t,n)}),pS={$:\"AlignMenuRight\"},gS=R(function(t,e){return M(vw,M(Jc,_c,M(Xr,e.name,t.actionDropdowns)),{items:L([M(sw,L([qm((r=e.name,{$:\"SyncClicked\",a:r})),Jm(!e.isAuthenticated||!M(ic,\"fs.edit\",t.rights))]),L([M(Im,L([Xm(\"fas fa-md fa-sync-alt\")]),m),Em(\" Sync\")])),M(cw,L([Jm(!e.isAuthenticated||!M(ic,\"fs.view\",t.rights)),e.isAuthenticated?Qb(\"/diff/\"+wd(e.name)):Xm(\"text-muted\")]),L([M(Im,L([Xm(\"fas fa-md fa-search-minus\")]),m),Em(\" Diff\")])),fw,M(sw,L([qm(No((n=e.name,{$:\"ModalShow\",a:n}))),Jm(!M(ic,\"remotes.edit\",t.rights))]),L([M(Im,L([Xm(\"text-danger\")]),L([M(Im,L([Xm(\"fas fa-md fa-times\")]),m),Em(\" Remove\")]))]))]),options:L([pS]),toggleButton:M(Bw,L([Rv]),L([M(Im,L([Xm(\"fas fa-ellipsis-h\")]),m)])),toggleMsg:Lo(e.name)});var n,r}),$S=R(function(t,e){return{$:\"AutoUpdateToggled\",a:t,b:e}}),wS=d(function(t,e,n){return $(bS,$S(e),\"\",t,n)}),SS=R(function(t,e){return{$:\"ConflictStrategyToggled\",a:t,b:e}}),yS=R(function(t,e){t:for(;;)switch(e){case\"\":if(\"\"===t.self.defaultConflictStrategy)return\"fa-question text-muted\";var n=t.self.defaultConflictStrategy;t=t,e=n;continue t;case\"ignore\":return\"fa-eject\";case\"marker\":return\"fa-marker\";case\"embrace\":return\"fa-handshake\";default:return\"fa-question\"}}),kS=function(t){return{$:\"Attrs\",a:t}},RS=d(function(t,e,n){return M(vw,M(Jc,_c,M(Xr,e.name,t.conflictDropdowns)),{items:L([M(sw,L([qm(M(SS,e,\"ignore\")),Jm(n)]),L([M(Im,L([Xm(\"fas fa-md fa-eject\")]),m),Em(\" Ignore\")])),M(sw,L([qm(M(SS,e,\"marker\")),Jm(n)]),L([M(Im,L([Xm(\"fas fa-md fa-marker\")]),m),Em(\" Marker\")])),M(sw,L([qm(M(SS,e,\"embrace\")),Jm(n)]),L([M(Im,L([Xm(\"fas fa-md fa-handshake\")]),m),Em(\" Embrace\")])),M(sw,L([qm(M(SS,e,\"\")),Jm(n)]),L([M(Im,L([Xm(\"fas fa-md fa-eraser\")]),m),Em(\" Default\")]))]),options:L([pS,kS(L([Jm(n)]))]),toggleButton:M(Bw,L([Rv,Wm(L([Jm(n)]))]),L([M(Im,L([Xm(\"fas\"),Xm(M(yS,t,e.conflictStrategy))]),m)])),toggleMsg:Do(e.name)})}),MS=R(function(n,t){if(t.b){var e=t.b;return M(_n,t.a,C(Na,R(function(t,e){return M(_n,n,M(_n,t,e))}),m,e))}return m}),CS=function(t){return M(ah,L([Rv,Wm(L([qm((e=t,{$:\"ClipboardCopyClicked\",a:e}))]))]),L([function(t){return M(Im,L([Xm(\"fingerprint\")]),M(MS,M(Im,m,L([Em(\":\")])),M(eu,function(t){return M(Im,L([Xm(\"text-muted\")]),L([Em(C(Nu,0,10,t))]))},M(Ar,\":\",t))))}(t)]));var e},xS=R(function(t,e){return e.isAuthenticated?e.isOnline?M(Im,L([Xm(\"fas fa-md fa-circle text-success\")]),m):M(Im,L([Xm(\"text-warning\")]),L([Em(M(Lp,t.zone,e.lastSeen))])):M(Im,L([Xm(\"text-danger\")]),L([Em(\"not authenticated\")]))}),AS=R(function(t,e){var n,r=!M(ic,\"remotes.edit\",t.rights);return M(ug,m,L([M(rg,m,L([M(Im,L([Xm(\"fas fa-lg fa-user-circle text-xs-right\")]),m)])),M(rg,m,L([Em(\" \"+e.name)])),M(rg,m,L([M(xS,t,e)])),M(rg,m,L([M(Im,L([Xm(\"text-muted\")]),L([CS(e.fingerprint)]))])),M(rg,m,L([C(wS,e.acceptAutoUpdates,e,r)])),M(rg,m,L([C(vS,e.acceptPush,e,r)])),M(rg,m,L([C(RS,t,e,r)])),M(rg,m,L([M(ah,L([Rv,Wm(L([qm(Po(function(t){return{$:\"ModalShow\",a:t}}(e))),Jm(r)]))]),L([M(Im,m,L([(n=$r(e.folders),n?Em(Mr(n)):M(Im,L([Xm(\"fas fa-xs fa-asterisk\")]),m))]))]))])),M(rg,L([cg(Xm(\"text-right\"))]),L([M(gS,t,e)]))]))}),LS=R(function(t,e){return Eg({options:L([sg,og(Xm(\"borderless-table\"))]),tbody:M(Gg,m,M(eu,AS(t),e)),thead:M(Ug,m,L([M(ug,m,L([M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),L([Em(\"\")])),M(Xg,L([cg(M(nb,\"width\",\"20%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Name\")]))])),M(Xg,L([cg(M(nb,\"width\",\"20%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Online\")]))])),M(Xg,L([cg(M(nb,\"width\",\"30%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Fingerprint\")]))])),M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Auto Update\")]))])),M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"May Push\")]))])),M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Conflicts\")]))])),M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),L([M(Im,L([Xm(\"text-muted remote-heading\")]),L([Em(\"Folders\")]))])),M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),m)]))]))})}),_S=R(function(t,e){return M(Gb,m,L([M(mb,L([Hg,Xb(L([Xm(\"d-none d-lg-block\")]))]),m),M(mb,L([jg,qg]),L([M(Lv,_o,t.alert),M(LS,t,e),M(Wh,L([Xm(\"text-left\")]),L([M(ah,L([Rv,Wm(L([qm(Oo(mS)),Jm(!M(ic,\"remotes.edit\",t.rights))]))]),L([M(Im,L([Xm(\"fas fa-lg fa-plus\")]),m),Em(\" Add new\")]))]))])),M(mb,L([Hg,Xb(L([Xm(\"d-none d-lg-block\")]))]),m)]))}),DS=R(function(t,e){return M(Gb,m,L([M(mb,L([rS,Vb(cv)]),L([M(Im,L([Xm(\"text-muted\")]),L([Em(t)]))])),M(mb,L([uv,Vb(sv)]),L([e]))]))}),OS=function(t){var e=t.state;switch(e.$){case\"Loading\":return Em(\"Still loading\");case\"Failure\":return Em(\"Failed to load remote list: \"+e.a);default:var n=e.a;return M(Gb,m,L([M(mb,L([qv]),L([M(Gb,L([tp(L([Sh(\"main-header-row\")]))]),m),M(Gb,L([tp(L([Sh(\"main-content-row\")]))]),L([M(mb,L([Kv]),L([M(Dv,L([Xm(\"text-center text-muted\")]),L([Em(\"Own data\")])),M(_v,m,m),function(t){return M(Gb,m,L([M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m),M(mb,L([jg,jb,Vb(qb)]),L([bv(L([M(ov,m,L([M(DS,\"Name\",Em(t.self.self.name))])),M(ov,m,L([M(DS,\"Fingerprint\",CS(t.self.self.fingerprint))]))]))])),M(mb,L([Ov,Xb(L([Xm(\"d-none d-lg-block\")]))]),m)]))}(t),M(_v,m,m),M(_v,m,m),M(_v,m,m),M(_v,m,m),M(Dv,L([Xm(\"text-center text-muted\")]),L([Em(\"Other remotes\")])),M(_v,m,m),M(_S,t,n)]))]))]))]))}},PS=R(function(t,e){switch(e.currentView.$){case\"ViewList\":return M(E$,mu,function(t){return M(Gb,m,L([M(mb,L([qv]),L([M(Gb,L([tp(L([Sh(\"main-header-row\")]))]),L([M(mb,L([Zv]),L([q$(t)])),M(mb,L([Qv]),L([M(Hv,lS,t)]))])),M(Gb,L([tp(L([Sh(\"main-content-row\")]))]),L([M(mb,L([Kv]),L([M(sS,t,t.zone)])),M(mb,L([dS]),L([M(Hv,G$,t)]))]))]))]))}(e.listState));case\"ViewCommits\":return M(E$,lu,function(t){var e=t.state;switch(e.$){case\"Loading\":return Em(\"Still loading\");case\"Failure\":return Em(\"Failed to load log: \"+e.a);default:var n=e.a;return M(Gb,m,L([M(mb,L([qv]),L([M(Gb,L([tp(L([Sh(\"main-header-row\")]))]),L([M(mb,L([Zv]),L([Em(\"\")])),M(mb,L([Qv]),L([M(Hv,Vv,t)]))])),M(Gb,L([tp(L([Sh(\"main-content-row\")]))]),L([M(mb,L([Kv]),L([M(Bv,t,n)]))]))]))]))}}(e.commitsState));case\"ViewDeletedFiles\":return M(E$,du,function(t){var e=t.state;switch(e.$){case\"Loading\":return Em(\"Still loading\");case\"Failure\":return Em(\"Failed to load log: \"+e.a);default:var n=e.a;return M(Gb,m,L([M(mb,L([qv]),L([M(Gb,L([tp(L([Sh(\"main-header-row\")]))]),L([M(mb,L([Zv]),m),M(mb,L([Qv]),L([M(Hv,Qg,t)]))])),M(Gb,L([tp(L([Sh(\"main-content-row\")]))]),L([M(mb,L([Kv]),L([M(Wg,t,n)]))]))]))]))}}(e.deletedFilesState));case\"ViewRemotes\":return M(E$,bu,OS(e.remoteState));case\"ViewDiff\":return M(E$,Jo,function(t){var e=t.state;if(\"Loading\"===e.$)return Em(\"Still loading\");var n=e.a;return M(Gb,m,L([M(mb,L([qv]),L([M(Gb,L([tp(L([Sh(\"main-content-row\")]))]),L([M(mb,L([Kv]),L([M(u$,t,n)]))]))]))]))}(e.diffState));default:return Em(\"You seem to have hit a route that does not exist...\")}}),NS=M(Wh,L([Xm(\"row h-100\")]),L([M(Wh,L([Xm(\"col-12 my-auto text-center w-100 text-muted\")]),L([M(Im,L([Xm(\"fas fa-4x fa-fw logo-failure fa-plug\")]),m),M(_v,m,m),M(_v,m,m),Em(\"It seems that we have lost connection to the server.\"),M(_v,m,m),Em(\"This application will go into a working state again when we have a connection again.\")]))])),FS=Ce(\"hr\"),BS=function(t){return{$:\"LogoutSubmit\",a:t}},zS=d(function(t,e,n){return M(ic,e,t.rights)?n:m}),TS=function(t){switch(t.$){case\"ViewList\":return\"/view\";case\"ViewCommits\":return\"/log\";case\"ViewRemotes\":return\"/remotes\";case\"ViewDeletedFiles\":return\"/deleted\";case\"ViewDiff\":return\"/Diff\";default:return\"/nothing\"}},IS=R(function(t,e){var n=function(t){return _(t,e.currentView)?Xm(\"nav-link active\"):Xm(\"nav-link\")};return M(lv,L([Xm(\"flex-column navbar-nav w-100 text-left\")]),N(C(zS,e,\"fs.view\",L([M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([n(tc),Qb(TS(tc))]),L([M(Im,m,L([Em(\"Files\")]))]))]))])),N(C(zS,e,\"fs.view\",L([M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([n(Qo),Qb(TS(Qo))]),L([M(Im,m,L([Em(\"Changelog\")]))]))]))])),N(C(zS,e,\"fs.view\",L([M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([n(Yo),Qb(TS(Yo))]),L([M(Im,m,L([Em(\"Trashbin\")]))]))]))])),N(C(zS,e,\"remotes.view\",L([M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([n(nc),Qb(TS(nc))]),L([M(Im,m,L([Em(\"Remotes\")]))]))]))])),L(e.isAnon?[M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([Xm(\"nav-link pl-0\"),Qb(\"#\"),qm(BS(!1))]),L([M(Im,m,L([Em(\"Login page\")]))]))]))]:[M(iv,L([Xm(\"nav-item\")]),L([M(Kb,L([Xm(\"nav-link pl-0\"),Qb(\"#\"),qm(BS(!0))]),L([M(Im,m,L([Em(\"Logout »\"+e.loginName+\"«\")]))]))]))]))))))}),ES={$:\"ModalClose\"},GS=d(function(t,e,n){return{$:\"PinClicked\",a:t,b:e,c:n}}),XS=R(function(t,e){return{$:\"ResetClicked\",a:t,b:e}}),US=function(t){switch(t){case\"added\":return M(Im,L([Xm(\"text-success\")]),L([Em(t)]));case\"modified\":return M(Im,L([Xm(\"text-warning\")]),L([Em(t)]));case\"removed\":return M(Im,L([Xm(\"text-danger\")]),L([Em(t)]));case\"moved\":return M(Im,L([Xm(\"text-info\")]),L([Em(t)]));default:return M(Im,L([Xm(\"text-muted\")]),L([Em(t)]))}},JS=function(t){return M(Im,m,function(t){return M(MS,Em(\", \"),t)}(M(eu,US,M(Ar,\"|\",t))))},jS=R(function(t,e){var n=D(t,e);return M(Im,L(n.a?n.b?[Xm(\"fa fa-map-marker\"),Xm(\"text-success\")]:[Xm(\"fa fa-map-marker-alt\"),Xm(\"text-warning\")]:[Xm(\"fa fa-times\"),Xm(\"text-danger\")]),m)}),VS=R(function(t,e){return{$:\"ButtonItem\",a:M(ah,t,e)}}),HS=R(function(t,e){switch(t.$){case\"Size\":return O(e,{size:ar(t.a)});case\"Vertical\":return O(e,{vertical:!0});default:return O(e,{attributes:N(e.attributes,t.a)})}}),qS={attributes:m,size:ur,vertical:!1},WS=R(function(t,e){var n,r=C(Jn,HS,qS,e);return N(L([M(Kh,\"role\",\"group\"),Ym(L([D(\"btn-group\",!0),D(\"btn-group-toggle\",t),D(\"btn-group-vertical\",r.vertical)])),M(Kh,\"data-toggle\",\"buttons\")]),N(\"Just\"!==(n=M(Qm,Zm,r.size)).$?m:L([Xm(\"btn-group-\"+n.a)]),r.attributes))}),KS=R(function(t,e){return{$:\"GroupItem\",a:M(Wh,M(WS,!1,t),M(eu,function(t){return t.a},e))}}),QS=R(function(t,e){return M(KS,t,e).a}),YS=M(Jb,vb,Yv),ZS=d(function(t,e,n){return M(Gb,m,L([M(mb,L([YS]),L([M(D$,m,L([Em(n.path),M(_v,m,m),JS(n.change),M(Im,L([Xm(\"text-muted\")]),L([Em(\" at \")])),Em(M(Lp,su,n.head.date)),Em(\": \"),M(Im,L([Xm(\"text-muted\")]),L([Em(n.head.msg)]))]))])),M(mb,L([av]),L([M(QS,m,L([M(VS,L([eS,Wm(L([qm(M(XS,n.path,n.head.hash)),Jm(e)]))]),L([Em(\"Revert\")])),M(VS,L([eS,Wm(L([Jm(!M(ic,\"fs.edit\",t.rights)),qm(C(GS,n.path,n.head.hash,!n.isPinned))]))]),L([M(jS,n.isPinned,n.isExplicit)]))]))]))]))}),ty=R(function(n,t){return M(Gb,m,L([M(mb,m,L([bv(M(kr,R(function(t,e){return M(ov,m,L([C(ZS,n,!t,e)]))}),t))]))]))}),ey=n(function(t,e,n,r,a){return M(ub,t,M(Vh,L([0<Pu(r)?M(Yw,m,L([Em(r)])):Em(\"\"),Em(a)]),n(M(kv,e,Hh))))}),ny=function(t){return{$:\"Config\",a:t}},ry=d(function(t,e,n){var r;return ny(O(n.a,{body:ar((r={attributes:t,children:e},{$:\"Body\",a:r}))}))}),ay=function(t){return ny({body:ur,closeMsg:t,footer:ur,header:ur,options:{centered:!0,hideOnBackdropClick:!0,modalSize:ur},withAnimation:ur})},uy=d(function(t,e,n){var r;return ny(O(n.a,{footer:ar((r={attributes:t,children:e},{$:\"Footer\",a:r}))}))}),iy=d(function(t,e,n){var r;return ny(O(n.a,{header:ar((r={attributes:t,children:e},{$:\"Header\",a:r}))}))}),oy={$:\"StartClose\"},cy=oy,sy=function(t){var e=t.a;return ny(O(e,{options:O(e.options,{modalSize:ar(bh)})}))},fy=function(t){var e=t.withAnimation;return\"Just\"!==e.$?t.closeMsg:(0,e.a)(oy)},ly=function(t){return M(Jc,!1,M(wh,function(){return!0},t.withAnimation))},dy=R(function(t,e){var n=function(){switch(t.$){case\"Show\":return N(L([Ym(L([D(\"modal-backdrop\",!0),D(\"fade\",ly(e)),D(\"show\",!0)]))]),e.options.hideOnBackdropClick?L([qm(fy(e))]):m);case\"StartClose\":return L([Ym(L([D(\"modal-backdrop\",!0),D(\"fade\",!0),D(\"show\",!0)]))]);case\"FadeClose\":return L([Ym(L([D(\"modal-backdrop\",!0),D(\"fade\",!0),D(\"show\",!1)]))]);default:return L([Ym(L([D(\"modal-backdrop\",!1),D(\"fade\",ly(e)),D(\"show\",!1)]))])}}();return L([M(Wh,n,m)])}),my=function(e){return M($u,function(t){return M(Xu,\"elm-bootstrap-modal\",t)?Su(e):Ws(\"ignoring\")},M(Fr,\"target\",$w))},hy=R(function(t,e){switch(t.$){case\"Show\":return L([M(nb,\"pointer-events\",\"none\"),M(nb,\"display\",\"block\"),Ym(L([D(\"modal\",!0),D(\"fade\",ly(e)),D(\"show\",!0)]))]);case\"StartClose\":return L([M(nb,\"pointer-events\",\"none\"),M(nb,\"display\",\"block\"),Ym(L([D(\"modal\",!0),D(\"fade\",!0),D(\"show\",!0)]))]);case\"FadeClose\":return L([M(nb,\"pointer-events\",\"none\"),M(nb,\"display\",\"block\"),Ym(L([D(\"modal\",!0),D(\"fade\",!0),D(\"show\",!1)])),M(Hm,\"transitionend\",Su(e.closeMsg))]);default:return L([M(nb,\"height\",\"0px\"),M(nb,\"display\",\"block\"),Ym(L([D(\"modal\",!0),D(\"fade\",ly(e)),D(\"show\",!1)]))])}}),by=function(t){var e=Zm(t);return\"Just\"!==e.$?m:L([Xm(\"modal-\"+e.a)])},vy=function(t){var e=t.header;if(\"Just\"!==e.$)return ur;var n,r=e.a.a;return ar(M(Wh,M(_n,Xm(\"modal-header\"),r.attributes),N(r.children,L([(n=fy(t),M(Km,L([Xm(\"close\"),qm(n)]),L([Em(\"×\")])))]))))},py=R(function(t,e){var n,r,a=e.a;return M(Wh,m,N(L([M(Wh,N(L([(r=-1,M(Fe,\"tabIndex\",Mr(r)))]),M(hy,t,a)),L([M(Wh,N(L([M(Kh,\"role\",\"document\"),Xm(\"elm-bootstrap-modal\")]),N((n=a.options,N(L([Ym(L([D(\"modal-dialog\",!0),D(\"modal-dialog-centered\",n.centered)])),M(nb,\"pointer-events\",\"auto\")]),M(Jc,m,M(wh,by,n.modalSize)))),a.options.hideOnBackdropClick?L([M(Hm,\"click\",my(a.closeMsg))]):m)),L([M(Wh,L([Xm(\"modal-content\")]),M(Ba,va,L([vy(a),function(t){if(\"Just\"!==t.$)return ur;var e=t.a.a;return ar(M(Wh,M(_n,Xm(\"modal-body\"),e.attributes),e.children))}(a.body),function(t){if(\"Just\"!==t.$)return ur;var e=t.a.a;return ar(M(Wh,M(_n,Xm(\"modal-footer\"),e.attributes),e.children))}(a.footer)])))]))]))]),M(dy,t,a)))}),gy=R(function(t,e){return ny(O(e.a,{withAnimation:ar(t)}))}),$y=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([eS,Wm(L([qm(ci(cy))]))]),L([Em(\"Close\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,L([tp(L([Xm(\"scrollable-modal-row\")]))]),function(n){return L([M(mb,L([jg]),L([function(){var t=n.history;if(\"Nothing\"===t.$)return Em(\"\");var e=t.a;return\"Ok\"!==e.$?x(ey,n.alert,oi,pv,\"Oh no!\",\"Could not read history: \"+el(e.a)):M(ty,n,e.a)}()]))])}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-success\")]),L([M(Dv,m,L([Em(\"History\")]))]),M(gy,ci,sy(ay(ES)))))))},wy={$:\"ModalClose\"},Sy=R(function(t,e){return e?M(Im,L([Xm(\"text-left\")]),L([M(Im,L([Xm(\"fas fa-md fa-exclamation-triangle text-warning\")]),m),M(Im,L([Xm(\"text-muted\")]),L([Em(\" »\"+t.inputName+\"« exists already. Please choose another name.   \")]))])):M(Im,m,m)}),yy=function(t){return{$:\"InputChanged\",a:t}},ky=Um(\"autofocus\"),Ry=d(function(t,e,n){var r,a=zi(e),u=n(t.inputName);return M(py,t.modal,C(uy,m,L([M(Sy,t,u),M(ah,L([ch,Wm(L([qm((r=M(Ti,e,t),{$:\"CreateDir\",a:r})),jm(\"submit\"),Jm(!Pu(t.inputName)||\"Fail\"===t.state.$||u)]))]),L([Em(\"Create\")])),M(ah,L([eS,Wm(L([qm(Di(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,m,function(t){return L([M(mb,L([jg]),L([Ih(L([hh(\"mkdir-input\"),vh,Th(\"Directory name\"),ph(yy),mh(L([ky(!0)]))])),M(_v,m,m),(e=t.state,\"Ready\"===e.$?Em(\"\"):x(ey,t.alert,_i,pv,\"Oh no!\",\"Could not create directory: \"+e.a))]))]);var e}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(\"Create a new directory in \"),M(Im,m,L([Em(\"»\"),Em(\"/\"===a?\"Home\":a),Em(\"«\")]))]))]),M(gy,Di,sy(ay(wy)))))))}),My={$:\"DoAction\"},Cy={$:\"ModalClose\"},xy=function(t){return\"Move\"===t.$?\"Move\":\"Copy\"},Ay=function(t){return{$:\"DirChosen\",a:t}},Ly=function(t){return{$:\"SearchInput\",a:t}},_y=R(function(t,e){var n=zd(t);return M(Pi,Xu(n),e)}),Dy=R(function(t,e){return M(ug,m,L([M(rg,L([cg(qm(t(e)))]),L([M(Im,L([Xm(\"fas fa-lg fa-folder text-xs-right file-list-icon\")]),m)])),M(rg,L([cg(qm(t(e)))]),L([Em(e)]))]))}),Oy=d(function(t,e,n){return Eg({options:L([sg]),tbody:M(Gg,m,M(eu,Dy(t),M(_y,e,n))),thead:M(Ug,L([(r=M(nb,\"display\",\"none\"),{$:\"HeadAttr\",a:r})]),L([M(ug,m,L([M(Xg,L([cg(M(nb,\"width\",\"10%\"))]),m),M(Xg,L([cg(M(nb,\"width\",\"90%\"))]),m)]))]))});var r}),Py=R(function(t,e){return jv(M(Iv,L([Xm(\"stylish-input-group input-group\")]),M(Xv,L([M(Gv,L([Xm(\"input-group-addon\")]),L([M(Km,m,L([M(Im,L([Xm(\"fas fa-search fa-xs input-group-addon\")]),m)]))]))]),Ev(Uv(L([Th(\"Filter directory list\"),mh(L([Lh(t),Rh(e)]))]))))))}),Ny=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([ch,Wm(L([qm(My),jm(\"submit\"),Jm(!Pu(t.destPath)||\"Fail\"===t.state.$)]))]),L([Em(xy(t.action))])),M(ah,L([eS,Wm(L([qm(Gi(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,L([tp(L([Xm(\"scrollable-modal-row\")]))]),function(n){return L([M(mb,L([jg]),L([function(){var t=n.state;switch(t.$){case\"Ready\":var e=t.a;return M(Wh,m,L([M(Py,Ly,n.filter),C(Oy,Ay,n.filter,e)]));case\"Loading\":return Em(\"Loading.\");default:return x(ey,n.alert,Ei,pv,\"Oh no!\",\"Could not move or copy path: \"+t.a)}}()]))])}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(xy(t.action)+\" \"),M(Im,m,L([Em(\"»\"),Em(dd(t.sourcePath)),Em(\"«\")])),0<Pu(t.destPath)?M(Im,m,L([Em(\" into »\"),Em(t.destPath),Em(\"«\")])):Em(\" into ...\")]))]),M(gy,Gi,sy(ay(Cy)))))))},Fy={$:\"ModalClose\"},By=R(function(t,e){return L([M(mb,L([jg]),L([(n=t.state,\"Ready\"===n.$?Em(\"This would remove the \"+Mr(e)+\" selected \"+(1===e?\"item\":\"items\")+\".\"):x(ey,t.alert,Ji,pv,\"Oh no!\",\"Could not remove directory: \"+n.a))]))]);var n}),zy=uh(oh({$:\"Warning\"})),Ty=R(function(t,e){return M(py,t.modal,C(uy,m,L([M(ah,L([zy,Wm(L([qm((n=e,{$:\"RemoveAll\",a:n})),Jm(\"Fail\"===t.state.$)]))]),L([Em(\"Remove\")])),M(ah,L([eS,Wm(L([qm(ji(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,m,M(By,t,$r(e)))]))]),C(iy,L([Xm(\"modal-title modal-header-warning\")]),L([M(Dv,m,L([Em(\"Really remove?\")]))]),M(gy,ji,sy(ay(Fy)))))));var n}),Iy={$:\"DoRename\"},Ey={$:\"ModalClose\"},Gy=function(t){return{$:\"InputChanged\",a:t}},Xy=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([ch,Wm(L([qm(Iy),jm(\"submit\"),Jm(!Pu(t.inputName)||\"Fail\"===t.state.$)]))]),L([Em(\"Rename\")])),M(ah,L([eS,Wm(L([qm(qi(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,m,function(t){return L([M(mb,L([jg]),L([Ih(L([hh(\"rename-input\"),vh,Th(\"New name\"),ph(Gy),mh(L([ky(!0)]))])),M(_v,m,m),(e=t.state,\"Ready\"===e.$?Em(\"\"):x(ey,t.alert,Hi,pv,\"Oh no!\",\"Could not rename path: \"+e.a))]))]);var e}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(\"Rename \"),M(Im,m,L([Em(\"»\"),Em(dd(t.currPath)),Em(\"«\")])),0<Pu(t.inputName)?M(Im,m,L([Em(\" to \"),M(Im,m,L([Em(\"»\"),Em(t.inputName),Em(\"«\")]))])):Em(\"\")]))]),M(gy,qi,sy(ay(Ey)))))))},Uy={$:\"ModalClose\"},Jy=R(function(t,e){var n=tS(t)+\"get\"+Qd(e);return M(iv,m,L([M(Kb,L([Qb(n)]),L([Em(n)]))]))}),jy=Ce(\"b\"),Vy=R(function(t,e){return L([M(mb,L([jg]),L([M(D$,m,L([Em(\"Use those links to share the selected files with people that do not use brig.\")])),M(D$,m,L([M(jy,m,L([Em(\"Note:\")])),Em(\" Remember, they still need to authenticate themselves.\")])),M(lv,L([Sh(\"share-list\")]),M(eu,Jy(e),t.paths))]))])}),Hy=R(function(t,e){return M(py,t.modal,C(uy,m,L([M(ah,L([eS,Wm(L([qm(Ki(cy))]))]),L([Em(\"Close\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,L([tp(L([Xm(\"scrollable-modal-row\")]))]),M(Vy,t,e))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(\"Share hyperlinks\")]))]),M(gy,Ki,sy(ay(Uy)))))))}),qy=R(function(t,e){var n=t.state;if(\"Success\"!==n.$)return!1;var r=n.a;return!r.isFiltered&&M(uc,function(t){return _(e,dd(t.path))},r.entries)}),Wy={$:\"ModalClose\"},Ky={$:\"RemoteAdd\"},Qy=function(t){return{$:\"AcceptPushChanged\",a:t}},Yy=function(t){return{$:\"AutoUpdateChanged\",a:t}},Zy=function(t){return{$:\"FingerprintInputChanged\",a:t}},tk=function(t){return{$:\"NameInputChanged\",a:t}},ek=function(t){return{$:\"ConflictStrategyChanged\",a:t}},nk=function(t){return M(vw,t.conflictDropdown,{items:L([M(sw,L([qm(ek(\"ignore\"))]),L([M(Im,L([Xm(\"fas fa-md fa-eject\")]),m),Em(\" Ignore\")])),M(sw,L([qm(ek(\"marker\"))]),L([M(Im,L([Xm(\"fas fa-md fa-marker\")]),m),Em(\" Marker\")])),M(sw,L([qm(ek(\"embrace\"))]),L([M(Im,L([Xm(\"fas fa-md fa-handshake\")]),m),Em(\" Embrace\")])),M(sw,L([qm(ek(\"\"))]),L([M(Im,L([Xm(\"fas fa-md fa-eraser\")]),m),Em(\" Default\")]))]),options:L([pS,kS(L([Sh(\"remote-add-conflict-dropdown\")]))]),toggleButton:M(Bw,L([Rv]),L([function(t){switch(t.conflictStrategy){case\"\":return M(Im,m,L([Em(\"Marker \"),M(Im,L([Xm(\"fas fa-marker\")]),m)]));case\"ignore\":return M(Im,m,L([Em(\"Ignore \"),M(Im,L([Xm(\"fas fa-eject\")]),m)]));case\"marker\":return M(Im,m,L([Em(\"Marker \"),M(Im,L([Xm(\"fas fa-marker\")]),m)]));case\"embrace\":return M(Im,m,L([Em(\"Embrace \"),M(Im,L([Xm(\"fas fa-handshake\")]),m)]));default:return M(Im,m,L([Em(\"Unknown \"),M(Im,L([Xm(\"fas fa-question\")]),m)]))}}(t)])),toggleMsg:So})},rk=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([ch,Wm(L([qm(Ky),jm(\"submit\"),Jm(!Pu(t.name)||!Pu(t.fingerprint)||\"Fail\"===t.state.$)]))]),L([Em(\"Create\")])),M(ah,L([eS,Wm(L([qm(wo(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,m,function(t){return L([M(mb,L([jg]),L([Ih(L([hh(\"remote-name-input\"),vh,Th(\"Remote name\"),ph(tk),mh(L([ky(!0)]))])),M(_v,m,m),Ih(L([hh(\"remote-fingerprint-input\"),vh,Th(\"Remote fingerprint\"),ph(Zy)])),M(_v,m,m),M(Im,m,L([$(bS,Yy,\"Accept automatic updates?\",t.doAutoUdate,!1)])),M(_v,m,m),M(Im,m,L([$(bS,Qy,\"Accept other remotes pushing data to us?\",t.acceptPush,!1)])),M(_v,m,m),M(Im,m,L([M(Im,L([Xm(\"text-muted\")]),L([Em(\"The current conflict strategy is\")])),nk(t),M(Im,L([Xm(\"text-muted\")]),L([Em(\".\")]))])),(e=t.state,\"Ready\"===e.$?Em(\"\"):x(ey,t.alert,$o,pv,\"Oh no!\",\"Could not add remote: \"+e.a))]))]);var e}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(\"Add a new remote\")]))]),M(gy,wo,sy(ay(Wy)))))))},ak={$:\"ModalClose\"},uk=function(t){return{$:\"DirChosen\",a:t}},ik=function(t){return{$:\"SearchInput\",a:t}},ok=R(function(t,e){return{$:\"ReadOnlyChanged\",a:t,b:e}}),ck=R(function(t,e){return{$:\"ConflictStrategyToggled\",a:t,b:e}}),sk=R(function(t,e){return M(vw,M(Jc,_c,M(Xr,e.folder,t.conflictDropdowns)),{items:L([M(sw,L([qm(M(ck,e.folder,\"ignore\"))]),L([M(Im,L([Xm(\"fas fa-md fa-eject\")]),m),Em(\" Ignore\")])),M(sw,L([qm(M(ck,e.folder,\"marker\"))]),L([M(Im,L([Xm(\"fas fa-md fa-marker\")]),m),Em(\" Marker\")])),M(sw,L([qm(M(ck,e.folder,\"embrace\"))]),L([M(Im,L([Xm(\"fas fa-md fa-handshake\")]),m),Em(\" Embrace\")])),M(sw,L([qm(M(ck,e.folder,\"\"))]),L([M(Im,L([Xm(\"fas fa-md fa-eraser\")]),m),Em(\" Default\")]))]),options:L([pS]),toggleButton:M(Bw,L([Rv]),L([M(Im,L([Xm(\"fas\"),Xm(function(t){switch(t){case\"\":return\"fa-marker text-muted\";case\"ignore\":return\"fa-eject\";case\"marker\":return\"fa-marker\";case\"embrace\":return\"fa-handshake\";default:return\"fa-question\"}}(e.conflictStrategy))]),m)])),toggleMsg:Mo(e.folder)})}),fk=R(function(t,e){return M(ug,m,L([M(rg,m,L([M(Im,L([Xm(\"fas fa-md fa-folder text-muted\")]),m)])),M(rg,m,L([Em(e.folder)])),M(rg,m,L([M(sk,t,e)])),M(rg,m,L([$(bS,ok(e.folder),\"\",e.readOnly,!1)])),M(rg,m,L([M(ah,L([Wm(L([Xm(\"close\"),qm((n=e.folder,{$:\"FolderRemove\",a:n}))]))]),L([M(Im,L([Xm(\"fas fa-xs fa-times text-muted\")]),m)]))]))]));var n}),lk=R(function(e,t){return Eg({options:L([sg,og(Xm(\"borderless-table\"))]),tbody:M(Gg,m,M(eu,function(t){return M(fk,e,t)},t.folders)),thead:M(Ug,m,L([M(ug,m,L([M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),L([Em(\"\")])),M(Xg,L([cg(M(nb,\"width\",\"55%\"))]),L([M(Im,L([Xm(\"text-muted small\")]),L([Em(\"Name\")]))])),M(Xg,L([cg(M(nb,\"width\",\"20%\"))]),L([M(Im,L([Xm(\"text-muted small\")]),L([Em(\"Conflict Strategy\")]))])),M(Xg,L([cg(M(nb,\"width\",\"15%\"))]),L([M(Im,L([Xm(\"text-muted small\")]),L([Em(\"Read Only?\")]))])),M(Xg,L([cg(M(nb,\"width\",\"5%\"))]),m)]))]))})}),dk=f(function(t,e,n,r){for(;;){if(!n.b)return jn(r);var a=n.a,u=n.b,i=t(a);if(M(L$,i,e))t=t,e=e,n=u,r=r;else t=t,e=M(Xd,i,e),n=u,r=M(_n,a,r)}}),mk=R(function(t,e){return $(dk,t,qd,e,m)}),hk=R(function(t,e){return 0<$r(M(mk,function(t){return t.folder},e.folders))?M(Wh,m,L([M(lk,t,e),M(_v,m,m),M(FS,m,m)])):M(Im,L([Xm(\"text-muted text-center\")]),L([Em(\"No folders. This means this user can see everthing.\"),M(_v,m,m),Em(\"Add a new folder below to limit what this remote can see.\"),M(_v,m,m),M(_v,m,m)]))}),bk=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([eS,Wm(L([qm(Ro(cy))]))]),L([Em(\"Close\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,L([tp(L([M(nb,\"min-width\",\"60vh\"),Xm(\"scrollable-modal-row\")]))]),function(t){return L([M(mb,L([jg]),L([M(Dv,m,L([M(Im,L([Xm(\"text-muted text-center\")]),L([Em(\"Visible folders\")]))])),M(hk,t,t.remote),M(_v,m,m),M(_v,m,m),M(Dv,m,L([M(Im,L([Xm(\"text-muted text-center\")]),L([Em(\"All folders\")]))])),M(Py,ik,t.filter),C(Oy,uk,t.filter,t.allDirs),(e=t.state,\"Ready\"===e.$?Em(\"\"):x(ey,t.alert,ko,pv,\"Oh no!\",\"Could not add remote: \"+e.a))]))]);var e}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-primary\")]),L([M(Dv,m,L([Em(\"Edit folders of »\"),Em(t.remote.name),Em(\"«\")]))]),M(gy,Ro,sy(ay(ak)))))))},vk={$:\"DoRemove\"},pk={$:\"ModalClose\"},gk=uh(oh(Yb)),$k=function(t){return M(py,t.modal,C(uy,m,L([M(ah,L([gk,Wm(L([qm(vk),jm(\"submit\")]))]),L([Em(\"Remove\")])),M(ah,L([eS,Wm(L([qm(xo(cy))]))]),L([Em(\"Cancel\")]))]),C(ry,m,L([M(hb,m,L([M(Gb,m,function(t){return L([M(mb,L([jg]),L([Em(\"Removing »\"+t.name+\"« cannot be reverted. If you are the last one caching the data of this remote, the data might vanish forever and cannot be restored.\")]))])}(t))]))]),C(iy,L([Xm(\"modal-title modal-header-danger\")]),L([M(Dv,m,L([Em(\"Really remove?\")]))]),M(gy,xo,sy(ay(pk)))))))},wk=Ce(\"aside\"),Sk=Ce(\"main\"),yk=R(function(t,e){return L([M(Wh,L([Xm(\"container-fluid\")]),L([M(Wh,L([Xm(\"row wrapper\")]),L([M(wk,L([Xm(\"col-12 col-md-2 p-0 bg-light tabbar\")]),L([M(j$,L([Xm(\"navbar navbar-expand-md navbar-light bg-align-items-start flex-md-column flex-row\")]),L([function(t){return M(Kb,L([Xm(\"nav-link active\"),Qb(\"/view\")]),L(t.serverIsOnline?[M(Im,L([Xm(\"fas fa-2x fa-fw logo fa-torii-gate\")]),m),M(Im,L([Xm(\"badge badge-success text-center\")]),L([Em(\"beta\")]))]:[M(Im,L([Xm(\"fas fa-2x fa-fw logo logo-failure fa-torii-gate\")]),m),M(Im,L([Xm(\"badge badge-danger text-center\")]),L([Em(\"offline\")]))]))}(t),M(Kb,L([Xm(\"navbar-toggler\"),M(Kh,\"data-toggle\",\"collapse\"),M(Kh,\"data-target\",\".sidebar\")]),L([M(Im,L([Xm(\"navbar-toggler-icon\")]),m)])),M(Wh,L([Xm(\"collapse navbar-collapse sidebar\")]),L([M(IS,t,e)]))])),M(Wh,L([Sh(\"sidebar-bottom\"),Xm(\"d-none d-lg-block\")]),L([M(FS,m,m),M(D$,L([Sh(\"sidebar-bottom-text\"),Xm(\"text-muted\")]),L([M(Im,m,L([Em(\"Powered by \"),M(Kb,L([Qb(\"https://github.com/sahib/brig\")]),L([Em(\"brig\")]))]))]))]))])),M(Sk,L([Xm(\"col\")]),L(t.serverIsOnline?[M(PS,t,e),M(E$,mu,function(t){var e=B$(t);return M(Im,m,L([M(E$,ro,$y(t.historyState)),M(E$,oo,Xy(t.renameState)),M(E$,uo,Ny(t.moveState)),M(E$,no,Ny(t.copyState)),M(E$,ao,C(Ry,t.mkdirState,t.url,qy(t))),M(E$,io,M(Ty,t.removeState,e)),M(E$,co,M(Hy,t.shareState,t.url))]))}(e.listState)),M(E$,bu,function(t){return M(Im,m,L([M(E$,Oo,rk(t.remoteAddState)),M(E$,No,$k(t.remoteRemoveState)),M(E$,Po,bk(t.remoteFoldersState))]))}(e.remoteState))]:[NS]))]))]))])}),kk=function(e){var t=e.onUrlChange,i=e.onUrlRequest,n=function(){n.a(t(dn()))};return sn({setup:function(u){return n.a=u,pn.addEventListener(\"popstate\",n),pn.navigator.userAgent.indexOf(\"Trident\")<0||pn.addEventListener(\"hashchange\",n),R(function(t,e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||1<=e.button||t.target||t.download)){e.preventDefault();var n=t.href,r=dn(),a=Wu(n).a;u(i(a&&r.protocol===a.protocol&&r.host===a.host&&r.port_.a===a.port_.a?{$:\"Internal\",a:a}:function(t){return{$:\"External\",a:t}}(n)))}})},init:function(t){return C(e.init,t,dn(),n)},view:e.view,update:e.update,subscriptions:e.subscriptions})}({init:fu,onUrlChange:function(t){return{$:\"UrlChanged\",a:t}},onUrlRequest:function(t){return{$:\"LinkClicked\",a:t}},subscriptions:function(t){var e=t.loginState;if(\"LoginSuccess\"!==e.$)return ai;var n=e.a;return Mu(L([M(fo,mu,go(n.listState)),M(fo,lu,yu(gu)),M(fo,bu,Fo(n.remoteState)),M(fo,du,function(t){return Mu(L([yu(Ru),M(ii,t.alert.vis,ku)]))}(n.deletedFilesState)),Bo(vu),pu(hu)]))},update:Bm,view:function(e){return{body:function(){var t=e.loginState;switch(t.$){case\"LoginLimbo\":return L([Em(\"Waiting for login data\")]);case\"LoginReady\":case\"LoginFailure\":case\"LoginLoading\":return L([M(Hv,Wb,e)]);default:return M(yk,e,t.a)}}(),title:\"Gateway\"}}});Ri={Main:{init:kk(Su(S))(0)}},t.Elm?function t(e,n,r){for(var a in r)a in n?\"init\"==a?H(6,e):t(e+\".\"+a,n[a],r[a]):n[a]=r[a]}(\"Elm\",t.Elm,Ri):t.Elm=Ri}(this);"
  },
  {
    "path": "gateway/static/js/init.js",
    "content": "// This is needed for CSRF protection used by the backend.\n// The token is the one rendered in the <meta> tag above.\n(function() {\n    var token = document.getElementsByTagName('meta')['gorilla.csrf.Token'].getAttribute('content');\n    var oldSend = XMLHttpRequest.prototype.send;\n    XMLHttpRequest.prototype.send = function(data) {\n        this.setRequestHeader('X-CSRF-Token', token);\n        return oldSend.apply(this, arguments);\n    };\n}());\n\nfunction openWebsocket(app) {\n    // Forward all websocket messages received from our websocket module\n    // to the elm runtime where we receive them as subscription.\n    // Elm 0.19.0 sadly has no up2date websocket package yet.\n    var addr = document.getElementsByTagName('meta')['brig.websocket.addr'].getAttribute('content');\n    var ws = new WebSocket(addr);\n    ws.onopen = function() {\n        console.log(\"event websocket is open\");\n    };\n\n    ws.onmessage = function(message) {\n        /* console.log(message); */\n        app.ports.incoming.send(\n            JSON.stringify({\n                data: message.data,\n                timeStamp: message.timeStamp\n            })\n        );\n    };\n\n    ws.onclose = function(evt) {\n        console.log(\"event websocket was closed\");\n\n        // Attempt to reconnect on error.\n        // Note that \"onclose\" is also called when a new connection\n        // was attempted but errored (basically always).\n        scrollTimer = setTimeout(function() {\n            openWebsocket(app)\n        }, 2500)\n    };\n\n    ws.onerror = function(evt) {\n        console.log(\"event websocket errored: \" + evt.data);\n        console.log(\"you might not see updates of your actions.\");\n    };\n}\n\nfunction pingServer(app) {\n    var addr = document.getElementsByTagName('meta')['brig.http.addr'].getAttribute('content');\n    var currentState = undefined;\n\n    // Check if the server is still running.\n    // If state changes, notify elm app.\n    window.setInterval(function() {\n        const Http = new XMLHttpRequest();\n        Http.open(\"POST\", addr + \"/api/v0/ping\");\n        Http.send();\n\n        Http.onreadystatechange = function() {\n            if(this.readyState == 4) {\n                if(this.status == 200) {\n                    // Only trigger on level change.\n                    if(currentState != true) {\n                        app.ports.pinger.send(\n                            JSON.stringify({\n                                isOnline: true,\n                            })\n                        );\n                        currentState = true;\n                    }\n                } else {\n                    // Only trigger on level change.\n                    if(currentState != false) {\n                        app.ports.pinger.send(\n                            JSON.stringify({\n                                isOnline: false,\n                            })\n                        );\n                        currentState = false;\n                    }\n                }\n            }\n        }\n    }, 5000);\n}\n\nvar processScrollOrResize = function() {\n    var _document = window.document;\n    var _body = _document.body;\n    var _html = _document.documentElement;\n\n    var screenData = {\n        scrollTop: parseInt(window.pageYOffset || _html.scrollTop || _body.scrollTop || 0),\n        pageHeight: parseInt(\n            Math.max(\n                _body.scrollHeight,\n                _body.offsetHeight,\n                _html.clientHeight,\n                _html.scrollHeight,\n                _html.offsetHeight\n            )\n        ),\n        viewportHeight: parseInt(_html.clientHeight),\n        viewportWidth: parseInt(_html.clientWidth),\n    };\n    app.ports.scrollOrResize.send(screenData);\n}\n\nvar scrollTimer = null;\nvar lastScrollFireTime = 0;\nvar minScrollTime = 150;\nvar scrolledOrResized = function() {\n    if (scrollTimer) {} else {\n        var now = new Date().getTime();\n        if (now - lastScrollFireTime > minScrollTime) {\n            processScrollOrResize();\n            lastScrollFireTime = now;\n        }\n        scrollTimer = setTimeout(function() {\n            scrollTimer = null;\n            lastScrollFireTime = new Date().getTime();\n            processScrollOrResize();\n        }, minScrollTime);\n    }\n};\n\n// Let Elm's runtime take over the \"elm\" node.\nvar app = Elm.Main.init({\n  node: document.getElementById('elm')\n});\n\napp.ports.open.subscribe(function(_) {\n    openWebsocket(app);\n});\n\n\napp.ports.copyToClipboard.subscribe(function(text) {\n    var textArea = document.createElement(\"textarea\")\n    textArea.value = text;\n    document.body.appendChild(textArea);\n    textArea.focus();\n    textArea.select();\n\n    try {\n        if(!document.execCommand(\"copy\")) {\n            console.log(\"failed to copy\");\n        }\n    } catch(err) {\n        console.log(\"Unable to copy: \" + err)\n    }\n\n    document.body.removeChild(textArea);\n});\n\npingServer(app);\n\nwindow.addEventListener('scroll', scrolledOrResized);\nwindow.addEventListener('resize', scrolledOrResized);\n"
  },
  {
    "path": "gateway/static/js/smoothscroll.js",
    "content": "/*\n * smoothscroll polyfill - v0.3.5\n * https://iamdustan.github.io/smoothscroll\n * 2016 (c) Dustan Kasten, Jeremias Menichelli - MIT License\n */\n\n(function(w, d, undefined) {\n  'use strict';\n\n  /*\n   * aliases\n   * w: window global object\n   * d: document\n   * undefined: undefined\n   */\n\n  // polyfill\n  function polyfill() {\n    // return when scrollBehavior interface is supported\n    if ('scrollBehavior' in d.documentElement.style) {\n      return;\n    }\n\n    /*\n     * globals\n     */\n    var Element = w.HTMLElement || w.Element;\n    var SCROLL_TIME = 468;\n\n    /*\n     * object gathering original scroll methods\n     */\n    var original = {\n      scroll: w.scroll || w.scrollTo,\n      scrollBy: w.scrollBy,\n      elScroll: Element.prototype.scroll || scrollElement,\n      scrollIntoView: Element.prototype.scrollIntoView\n    };\n\n    /*\n     * define timing method\n     */\n    var now = w.performance && w.performance.now\n      ? w.performance.now.bind(w.performance) : Date.now;\n\n    /**\n     * changes scroll position inside an element\n     * @method scrollElement\n     * @param {Number} x\n     * @param {Number} y\n     */\n    function scrollElement(x, y) {\n      this.scrollLeft = x;\n      this.scrollTop = y;\n    }\n\n    /**\n     * returns result of applying ease math function to a number\n     * @method ease\n     * @param {Number} k\n     * @returns {Number}\n     */\n    function ease(k) {\n      return 0.5 * (1 - Math.cos(Math.PI * k));\n    }\n\n    /**\n     * indicates if a smooth behavior should be applied\n     * @method shouldBailOut\n     * @param {Number|Object} x\n     * @returns {Boolean}\n     */\n    function shouldBailOut(x) {\n      if (typeof x !== 'object'\n            || x === null\n            || x.behavior === undefined\n            || x.behavior === 'auto'\n            || x.behavior === 'instant') {\n        // first arg not an object/null\n        // or behavior is auto, instant or undefined\n        return true;\n      }\n\n      if (typeof x === 'object'\n            && x.behavior === 'smooth') {\n        // first argument is an object and behavior is smooth\n        return false;\n      }\n\n      // throw error when behavior is not supported\n      throw new TypeError('behavior not valid');\n    }\n\n    /**\n     * finds scrollable parent of an element\n     * @method findScrollableParent\n     * @param {Node} el\n     * @returns {Node} el\n     */\n    function findScrollableParent(el) {\n      var isBody;\n      var hasScrollableSpace;\n      var hasVisibleOverflow;\n\n      do {\n        el = el.parentNode;\n\n        // set condition variables\n        isBody = el === d.body;\n        hasScrollableSpace =\n          el.clientHeight < el.scrollHeight ||\n          el.clientWidth < el.scrollWidth;\n        hasVisibleOverflow =\n          w.getComputedStyle(el, null).overflow === 'visible';\n      } while (!isBody && !(hasScrollableSpace && !hasVisibleOverflow));\n\n      isBody = hasScrollableSpace = hasVisibleOverflow = null;\n\n      return el;\n    }\n\n    /**\n     * self invoked function that, given a context, steps through scrolling\n     * @method step\n     * @param {Object} context\n     */\n    function step(context) {\n      var time = now();\n      var value;\n      var currentX;\n      var currentY;\n      var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n      // avoid elapsed times higher than one\n      elapsed = elapsed > 1 ? 1 : elapsed;\n\n      // apply easing to elapsed time\n      value = ease(elapsed);\n\n      currentX = context.startX + (context.x - context.startX) * value;\n      currentY = context.startY + (context.y - context.startY) * value;\n\n      context.method.call(context.scrollable, currentX, currentY);\n\n      // scroll more if we have not reached our destination\n      if (currentX !== context.x || currentY !== context.y) {\n        w.requestAnimationFrame(step.bind(w, context));\n      }\n    }\n\n    /**\n     * scrolls window with a smooth behavior\n     * @method smoothScroll\n     * @param {Object|Node} el\n     * @param {Number} x\n     * @param {Number} y\n     */\n    function smoothScroll(el, x, y) {\n      var scrollable;\n      var startX;\n      var startY;\n      var method;\n      var startTime = now();\n\n      // define scroll context\n      if (el === d.body) {\n        scrollable = w;\n        startX = w.scrollX || w.pageXOffset;\n        startY = w.scrollY || w.pageYOffset;\n        method = original.scroll;\n      } else {\n        scrollable = el;\n        startX = el.scrollLeft;\n        startY = el.scrollTop;\n        method = scrollElement;\n      }\n\n      // scroll looping over a frame\n      step({\n        scrollable: scrollable,\n        method: method,\n        startTime: startTime,\n        startX: startX,\n        startY: startY,\n        x: x,\n        y: y\n      });\n    }\n\n    /*\n     * ORIGINAL METHODS OVERRIDES\n     */\n\n    // w.scroll and w.scrollTo\n    w.scroll = w.scrollTo = function() {\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0])) {\n        original.scroll.call(\n          w,\n          arguments[0].left || arguments[0],\n          arguments[0].top || arguments[1]\n        );\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n        w,\n        d.body,\n        ~~arguments[0].left,\n        ~~arguments[0].top\n      );\n    };\n\n    // w.scrollBy\n    w.scrollBy = function() {\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0])) {\n        original.scrollBy.call(\n          w,\n          arguments[0].left || arguments[0],\n          arguments[0].top || arguments[1]\n        );\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n        w,\n        d.body,\n        ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n        ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n      );\n    };\n\n    // Element.prototype.scroll and Element.prototype.scrollTo\n    Element.prototype.scroll = Element.prototype.scrollTo = function() {\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0])) {\n        original.elScroll.call(\n            this,\n            arguments[0].left || arguments[0],\n            arguments[0].top || arguments[1]\n        );\n        return;\n      }\n\n      var left = arguments[0].left;\n      var top = arguments[0].top;\n\n      // LET THE SMOOTHNESS BEGIN!\n      smoothScroll.call(\n          this,\n          this,\n          typeof left === 'number' ? left : this.scrollLeft,\n          typeof top === 'number' ? top : this.scrollTop\n      );\n    };\n\n    // Element.prototype.scrollBy\n    Element.prototype.scrollBy = function() {\n      var arg0 = arguments[0];\n\n      if (typeof arg0 === 'object') {\n        this.scroll({\n          left: arg0.left + this.scrollLeft,\n          top: arg0.top + this.scrollTop,\n          behavior: arg0.behavior\n        });\n      } else {\n        this.scroll(\n          this.scrollLeft + arg0,\n          this.scrollTop + arguments[1]\n        );\n      }\n    };\n\n    // Element.prototype.scrollIntoView\n    Element.prototype.scrollIntoView = function() {\n      // avoid smooth behavior if not required\n      if (shouldBailOut(arguments[0])) {\n        original.scrollIntoView.call(this, arguments[0] || true);\n        return;\n      }\n\n      // LET THE SMOOTHNESS BEGIN!\n      var scrollableParent = findScrollableParent(this);\n      var parentRects = scrollableParent.getBoundingClientRect();\n      var clientRects = this.getBoundingClientRect();\n\n      if (scrollableParent !== d.body) {\n        // reveal element inside parent\n        smoothScroll.call(\n          this,\n          scrollableParent,\n          scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n          scrollableParent.scrollTop + clientRects.top - parentRects.top\n        );\n        // reveal parent in viewport\n        w.scrollBy({\n          left: parentRects.left,\n          top: parentRects.top,\n          behavior: 'smooth'\n        });\n      } else {\n        // reveal element in viewport\n        w.scrollBy({\n          left: clientRects.left,\n          top: clientRects.top,\n          behavior: 'smooth'\n        });\n      }\n    };\n  }\n\n  if (typeof exports === 'object') {\n    // commonjs\n    module.exports = { polyfill: polyfill };\n  } else {\n    // global\n    polyfill();\n  }\n})(window, document);\n"
  },
  {
    "path": "gateway/static/package.go",
    "content": "package static\n\n//go:generate parcello -r\n"
  },
  {
    "path": "gateway/static/resource.go",
    "content": "// Code generated by parcello; DO NOT EDIT.\n\n// Package static contains embedded resources\npackage static\n\nimport \"github.com/phogolabs/parcello\"\n\nfunc init() {\n\tparcello.AddResource([]byte{\n\t\t80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 9, 0, 99, 115, 115, 47,\n\t\t98, 111, 111, 116, 115, 116, 114, 97, 112, 46, 109, 105, 110,\n\t\t46, 99, 115, 115, 85, 84, 5, 0, 1, 127, 106, 41, 96, 236,\n\t\t189, 123, 143, 227, 200, 177, 39, 250, 255, 126, 10, 109,\n\t\t53, 26, 211, 229, 17, 53, 36, 37, 74, 42, 21, 122, 96, 123,\n\t\t224, 131, 53, 224, 241, 31, 246, 30, 224, 2, 179, 189, 0,\n\t\t31, 41, 137, 110, 190, 150, 164, 186, 88, 22, 116, 62, 251,\n\t\t5, 243, 65, 230, 35, 50, 153, 82, 169, 102, 102, 47, 174,\n\t\t199, 51, 69, 37, 35, 35, 35, 35, 34, 35, 127, 249, 228, 15,\n\t\t127, 248, 239, 255, 109, 246, 135, 217, 159, 203, 178, 109,\n\t\t218, 58, 172, 102, 223, 86, 11, 111, 177, 156, 125, 58, 182,\n\t\t109, 213, 236, 126, 248, 225, 128, 218, 136, 189, 92, 196,\n\t\t101, 254, 195, 99, 79, 255, 83, 89, 189, 214, 233, 225, 216,\n\t\t206, 124, 215, 243, 28, 223, 245, 182, 179, 255, 121, 68,\n\t\t28, 159, 63, 157, 218, 99, 89, 55, 90, 226, 151, 180, 109,\n\t\t81, 61, 159, 253, 181, 136, 23, 61, 209, 223, 210, 24, 21,\n\t\t13, 74, 102, 167, 34, 65, 245, 236, 231, 191, 254, 79, 78,\n\t\t134, 180, 61, 158, 34, 92, 122, 251, 18, 53, 63, 12, 2, 253,\n\t\t16, 101, 101, 244, 67, 30, 54, 45, 170, 127, 248, 219, 95,\n\t\t127, 250, 203, 223, 255, 249, 151, 94, 190, 31, 118, 117,\n\t\t89, 182, 103, 199, 137, 178, 19, 218, 125, 112, 221, 77, 180,\n\t\t223, 63, 59, 78, 90, 36, 233, 161, 220, 125, 88, 175, 61,\n\t\t119, 239, 63, 59, 78, 117, 170, 171, 12, 237, 62, 172, 247,\n\t\t43, 63, 246, 250, 132, 180, 248, 186, 251, 128, 182, 75, 180,\n\t\t141, 159, 29, 167, 70, 201, 238, 67, 18, 47, 131, 85, 240,\n\t\t236, 56, 101, 29, 22, 7, 180, 251, 176, 79, 54, 200, 91, 61,\n\t\t59, 206, 43, 202, 178, 242, 101, 247, 97, 191, 143, 61, 119,\n\t\t243, 236, 56, 135, 26, 161, 98, 247, 193, 223, 134, 27, 156,\n\t\t163, 69, 97, 182, 251, 224, 187, 241, 211, 83, 255, 58, 126,\n\t\t13, 139, 221, 7, 111, 19, 250, 209, 246, 217, 113, 94, 142,\n\t\t105, 219, 179, 195, 178, 29, 234, 240, 117, 247, 97, 29, 111,\n\t\t130, 77, 66, 127, 58, 73, 88, 127, 221, 125, 88, 174, 150,\n\t\t225, 202, 237, 133, 171, 211, 60, 172, 95, 185, 10, 53, 40,\n\t\t46, 139, 4, 167, 13, 57, 155, 83, 28, 163, 166, 225, 164,\n\t\t72, 139, 125, 201, 23, 27, 214, 69, 90, 28, 56, 177, 147,\n\t\t190, 94, 53, 87, 211, 172, 55, 215, 238, 195, 126, 187, 127,\n\t\t218, 135, 152, 64, 16, 36, 170, 81, 248, 181, 42, 211, 162,\n\t\t117, 186, 102, 39, 165, 52, 249, 46, 216, 172, 171, 78, 76,\n\t\t205, 147, 221, 102, 189, 149, 83, 179, 195, 238, 233, 201,\n\t\t151, 83, 187, 108, 231, 249, 174, 139, 147, 247, 101, 209,\n\t\t58, 251, 48, 79, 179, 87, 167, 9, 139, 198, 105, 80, 157,\n\t\t238, 119, 78, 88, 85, 25, 114, 154, 215, 166, 69, 249, 252,\n\t\t207, 89, 90, 124, 253, 57, 140, 255, 137, 127, 254, 71, 89,\n\t\t180, 243, 135, 127, 162, 67, 137, 102, 255, 249, 215, 135,\n\t\t249, 63, 202, 168, 108, 203, 249, 195, 255, 64, 217, 55, 212,\n\t\t166, 113, 56, 251, 59, 58, 161, 135, 249, 159, 234, 52, 204,\n\t\t230, 35, 211, 249, 195, 159, 122, 166, 179, 159, 202, 172,\n\t\t172, 103, 127, 201, 203, 127, 165, 15, 35, 31, 53, 225, 159,\n\t\t175, 121, 84, 102, 15, 243, 135, 191, 151, 109, 41, 228, 146,\n\t\t228, 206, 203, 162, 108, 170, 48, 70, 187, 127, 254, 199,\n\t\t207, 101, 81, 58, 255, 64, 135, 83, 22, 214, 243, 159, 81,\n\t\t145, 149, 243, 159, 203, 34, 140, 203, 249, 79, 101, 209,\n\t\t148, 89, 216, 204, 31, 254, 150, 70, 168, 14, 219, 180, 44,\n\t\t102, 61, 249, 195, 252, 225, 167, 242, 84, 167, 168, 158,\n\t\t253, 29, 189, 60, 204, 7, 118, 151, 63, 204, 119, 187, 112,\n\t\t223, 183, 163, 221, 46, 66, 251, 178, 70, 231, 168, 236, 156,\n\t\t38, 253, 119, 111, 223, 168, 172, 19, 84, 59, 81, 217, 93,\n\t\t142, 109, 158, 157, 57, 145, 118, 99, 173, 159, 179, 180,\n\t\t64, 206, 17, 97, 139, 123, 11, 47, 120, 118, 94, 80, 244,\n\t\t53, 109, 157, 22, 117, 109, 207, 11, 57, 97, 242, 175, 83,\n\t\t211, 238, 60, 215, 253, 248, 236, 228, 141, 225, 77, 249,\n\t\t13, 213, 251, 172, 124, 113, 154, 246, 53, 67, 187, 38, 174,\n\t\t203, 44, 139, 194, 122, 100, 26, 86, 206, 49, 61, 28, 177,\n\t\t135, 57, 113, 175, 180, 93, 91, 135, 69, 83, 133, 53, 42,\n\t\t218, 203, 31, 123, 46, 223, 82, 244, 82, 149, 117, 123, 126,\n\t\t73, 147, 246, 184, 75, 208, 183, 52, 70, 14, 254, 113, 9,\n\t\t235, 54, 141, 51, 52, 15, 155, 52, 65, 243, 125, 122, 136,\n\t\t195, 170, 87, 85, 255, 120, 170, 209, 124, 95, 150, 189, 66,\n\t\t142, 40, 76, 250, 63, 135, 186, 60, 85, 243, 60, 76, 139,\n\t\t121, 17, 126, 155, 55, 40, 238, 137, 207, 73, 218, 84, 89,\n\t\t248, 186, 139, 178, 50, 254, 122, 137, 202, 228, 245, 156,\n\t\t135, 245, 33, 45, 118, 238, 51, 175, 167, 223, 185, 159, 97,\n\t\t81, 123, 67, 236, 188, 26, 229, 228, 231, 11, 49, 229, 202,\n\t\t117, 37, 211, 6, 207, 68, 221, 31, 124, 207, 15, 252, 167,\n\t\t103, 108, 197, 48, 75, 15, 197, 46, 67, 251, 246, 57, 10,\n\t\t227, 175, 189, 186, 138, 132, 218, 165, 143, 76, 151, 95,\n\t\t218, 48, 74, 139, 4, 117, 159, 31, 28, 239, 225, 203, 110,\n\t\t95, 198, 167, 230, 92, 158, 218, 158, 249, 206, 253, 239,\n\t\t105, 222, 91, 42, 44, 218, 203, 177, 230, 189, 47, 46, 139,\n\t\t22, 21, 109, 239, 126, 207, 84, 4, 247, 153, 185, 199, 238,\n\t\t91, 218, 164, 81, 134, 46, 71, 111, 126, 244, 231, 199, 229,\n\t\t252, 184, 154, 31, 131, 249, 113, 77, 205, 224, 180, 101,\n\t\t181, 115, 159, 233, 143, 168, 108, 219, 50, 223, 45, 130,\n\t\t26, 229, 151, 202, 68, 210, 171, 225, 18, 70, 81, 253, 75,\n\t\t18, 182, 161, 83, 214, 233, 33, 45, 194, 204, 105, 211, 54,\n\t\t67, 95, 230, 248, 13, 121, 62, 227, 234, 39, 40, 46, 73, 83,\n\t\t219, 225, 142, 167, 175, 148, 216, 0, 32, 138, 89, 82, 182,\n\t\t45, 74, 158, 39, 9, 226, 83, 221, 148, 245, 238, 136, 178,\n\t\t234, 121, 104, 142, 88, 80, 247, 18, 38, 73, 141, 154, 230,\n\t\t172, 86, 128, 154, 21, 183, 160, 162, 172, 243, 48, 19, 44,\n\t\t153, 22, 71, 84, 167, 237, 37, 201, 230, 101, 54, 63, 101,\n\t\t147, 250, 40, 179, 89, 217, 211, 206, 78, 61, 249, 12, 103,\n\t\t154, 141, 249, 6, 137, 146, 246, 204, 123, 208, 198, 117,\n\t\t47, 73, 114, 6, 108, 192, 10, 233, 221, 102, 231, 94, 112,\n\t\t35, 250, 63, 167, 178, 69, 67, 35, 154, 185, 51, 92, 116,\n\t\t178, 47, 206, 92, 109, 210, 54, 204, 210, 248, 18, 205, 155,\n\t\t182, 46, 139, 131, 80, 92, 84, 102, 9, 170, 47, 77, 30, 102,\n\t\t52, 86, 97, 199, 222, 186, 31, 47, 205, 41, 154, 55, 167,\n\t\t234, 92, 149, 77, 138, 21, 93, 163, 44, 108, 211, 111, 136,\n\t\t107, 0, 155, 224, 163, 160, 37, 247, 249, 27, 234, 67, 69,\n\t\t152, 81, 31, 143, 194, 6, 245, 4, 61, 183, 51, 173, 141, 179,\n\t\t240, 3, 148, 95, 122, 222, 189, 246, 156, 69, 255, 43, 60,\n\t\t83, 247, 167, 221, 172, 108, 229, 162, 44, 144, 218, 88, 184,\n\t\t32, 166, 115, 32, 167, 249, 154, 86, 187, 50, 250, 23, 138,\n\t\t219, 230, 18, 238, 142, 125, 115, 24, 11, 11, 214, 209, 82,\n\t\t239, 82, 151, 112, 87, 148, 237, 167, 95, 142, 53, 218, 127,\n\t\t121, 36, 207, 172, 105, 126, 121, 164, 92, 168, 107, 128,\n\t\t34, 155, 25, 144, 118, 61, 55, 211, 240, 2, 191, 181, 168,\n\t\t49, 132, 92, 226, 50, 65, 243, 175, 81, 50, 175, 106, 52,\n\t\t111, 194, 188, 18, 186, 170, 251, 246, 153, 124, 200, 236,\n\t\t131, 73, 141, 166, 154, 207, 24, 180, 194, 83, 91, 26, 123,\n\t\t185, 11, 233, 131, 148, 86, 144, 230, 135, 179, 228, 141,\n\t\t121, 154, 36, 25, 98, 65, 129, 181, 245, 222, 59, 191, 29,\n\t\t206, 67, 137, 199, 52, 73, 80, 33, 123, 50, 201, 123, 105,\n\t\t195, 40, 235, 59, 124, 204, 33, 46, 179, 44, 172, 26, 180,\n\t\t99, 15, 23, 218, 47, 158, 171, 48, 73, 210, 226, 128, 235,\n\t\t183, 216, 224, 230, 203, 146, 88, 155, 38, 169, 212, 17, 41,\n\t\t144, 148, 123, 7, 202, 206, 233, 187, 221, 29, 201, 120, 105,\n\t\t143, 103, 142, 140, 197, 165, 44, 140, 80, 54, 244, 176, 105,\n\t\t129, 91, 37, 142, 17, 96, 60, 143, 78, 109, 91, 22, 172, 30,\n\t\t117, 152, 164, 167, 166, 15, 42, 56, 89, 242, 21, 175, 234,\n\t\t88, 104, 101, 73, 65, 213, 205, 122, 195, 204, 88, 163, 195,\n\t\t57, 156, 186, 175, 31, 174, 17, 229, 52, 79, 139, 234, 212,\n\t\t206, 203, 170, 37, 144, 160, 65, 25, 138, 219, 121, 47, 127,\n\t\t88, 163, 16, 238, 254, 153, 147, 143, 78, 195, 82, 160, 128,\n\t\t204, 23, 116, 86, 186, 58, 250, 150, 148, 75, 244, 134, 99,\n\t\t198, 190, 172, 115, 98, 250, 95, 218, 215, 10, 125, 174, 81,\n\t\t131, 218, 47, 115, 242, 163, 57, 69, 121, 218, 126, 153, 211,\n\t\t204, 61, 142, 155, 145, 55, 36, 229, 203, 153, 85, 59, 172,\n\t\t42, 20, 214, 97, 17, 163, 29, 121, 117, 17, 232, 118, 59,\n\t\t39, 47, 255, 77, 149, 147, 22, 5, 170, 231, 124, 113, 218,\n\t\t215, 84, 0, 224, 61, 53, 144, 242, 130, 57, 220, 206, 5, 188,\n\t\t27, 235, 134, 112, 142, 143, 40, 254, 26, 149, 221, 151, 57,\n\t\t151, 216, 155, 191, 252, 2, 163, 216, 231, 129, 49, 207, 38,\n\t\t9, 91, 36, 176, 232, 19, 218, 52, 71, 78, 86, 198, 97, 38,\n\t\t188, 202, 203, 162, 61, 10, 41, 61, 33, 168, 195, 44, 109,\n\t\t218, 30, 57, 15, 254, 33, 70, 129, 26, 97, 111, 96, 13, 243,\n\t\t178, 79, 81, 150, 52, 168, 61, 231, 105, 65, 128, 234, 206,\n\t\t29, 229, 125, 30, 156, 139, 212, 102, 231, 94, 50, 116, 64,\n\t\t69, 34, 226, 208, 103, 146, 17, 131, 233, 60, 236, 28, 238,\n\t\t167, 204, 74, 236, 142, 185, 152, 70, 18, 0, 239, 124, 22,\n\t\t195, 54, 30, 123, 58, 100, 84, 66, 48, 198, 165, 170, 203,\n\t\t3, 70, 36, 186, 142, 147, 168, 172, 56, 229, 17, 170, 123,\n\t\t143, 160, 90, 195, 86, 119, 154, 170, 151, 138, 184, 169,\n\t\t134, 176, 60, 181, 34, 225, 153, 138, 216, 171, 148, 114,\n\t\t111, 80, 88, 199, 199, 47, 172, 197, 59, 229, 126, 223, 160,\n\t\t118, 231, 224, 65, 162, 106, 38, 174, 221, 208, 156, 99, 113,\n\t\t36, 193, 137, 123, 194, 76, 20, 77, 71, 59, 246, 99, 144,\n\t\t79, 224, 194, 198, 60, 251, 52, 67, 206, 169, 202, 202, 48,\n\t\t97, 245, 233, 13, 49, 168, 88, 223, 50, 203, 83, 219, 135,\n\t\t8, 40, 68, 94, 154, 83, 222, 15, 242, 135, 151, 189, 35, 58,\n\t\t105, 219, 199, 103, 2, 38, 241, 24, 25, 213, 151, 22, 229,\n\t\t85, 22, 182, 104, 160, 36, 186, 32, 93, 198, 23, 33, 149,\n\t\t3, 233, 139, 163, 55, 95, 28, 253, 249, 226, 184, 156, 47,\n\t\t142, 171, 249, 226, 24, 204, 23, 199, 245, 92, 11, 196, 85,\n\t\t71, 131, 98, 35, 197, 112, 129, 50, 232, 240, 69, 191, 195,\n\t\t229, 31, 61, 14, 223, 249, 164, 23, 232, 101, 58, 250, 124,\n\t\t58, 73, 93, 206, 143, 203, 51, 239, 223, 27, 74, 190, 154,\n\t\t31, 87, 103, 217, 241, 47, 125, 117, 142, 129, 144, 238, 211,\n\t\t23, 235, 190, 82, 226, 128, 233, 178, 200, 80, 152, 168, 212,\n\t\t66, 157, 150, 174, 123, 89, 80, 109, 58, 188, 228, 107, 128,\n\t\t82, 174, 253, 152, 147, 175, 91, 176, 128, 74, 209, 231, 229,\n\t\t53, 176, 186, 50, 47, 175, 164, 165, 93, 222, 99, 205, 99,\n\t\t34, 143, 3, 252, 60, 44, 98, 161, 140, 69, 121, 76, 91, 117,\n\t\t179, 166, 204, 210, 100, 86, 31, 162, 240, 147, 59, 239, 255,\n\t\t89, 120, 143, 151, 5, 134, 245, 115, 0, 220, 203, 131, 214,\n\t\t203, 34, 15, 235, 175, 243, 254, 63, 67, 79, 178, 240, 251,\n\t\t242, 212, 225, 105, 188, 223, 162, 229, 101, 129, 155, 200,\n\t\t169, 192, 221, 76, 50, 224, 29, 50, 56, 121, 198, 47, 185,\n\t\t30, 136, 80, 147, 38, 119, 13, 45, 110, 131, 112, 147, 85,\n\t\t200, 48, 226, 221, 101, 97, 211, 58, 241, 49, 205, 146, 71,\n\t\t166, 79, 60, 13, 74, 113, 207, 34, 45, 210, 54, 13, 179, 180,\n\t\t201, 57, 141, 60, 185, 31, 159, 37, 108, 112, 170, 42, 84,\n\t\t199, 97, 131, 46, 11, 101, 164, 5, 12, 27, 5, 175, 31, 51,\n\t\t56, 100, 98, 68, 234, 113, 68, 83, 8, 8, 16, 200, 60, 204,\n\t\t50, 209, 193, 253, 238, 225, 127, 249, 174, 183, 154, 253,\n\t\t47, 215, 253, 147, 251, 112, 89, 164, 249, 193, 217, 103,\n\t\t167, 180, 31, 52, 10, 221, 23, 31, 231, 49, 85, 123, 60, 229,\n\t\t81, 17, 166, 25, 103, 99, 236, 155, 224, 36, 4, 243, 181,\n\t\t209, 189, 62, 36, 8, 249, 104, 253, 44, 162, 70, 202, 195,\n\t\t84, 56, 69, 232, 176, 29, 201, 75, 167, 135, 235, 80, 244,\n\t\t19, 218, 201, 64, 205, 112, 182, 104, 67, 81, 149, 253, 8,\n\t\t135, 119, 251, 205, 34, 24, 72, 232, 100, 243, 75, 89, 39,\n\t\t100, 18, 116, 135, 255, 235, 244, 9, 151, 240, 71, 156, 85,\n\t\t140, 161, 95, 163, 132, 83, 91, 141, 242, 217, 98, 37, 218,\n\t\t95, 40, 0, 43, 80, 81, 43, 157, 4, 146, 21, 216, 123, 205,\n\t\t215, 40, 153, 241, 101, 184, 188, 103, 185, 82, 147, 221,\n\t\t184, 46, 30, 69, 105, 253, 138, 23, 133, 20, 218, 211, 207,\n\t\t36, 149, 104, 80, 202, 168, 20, 10, 82, 22, 85, 141, 28, 50,\n\t\t224, 194, 195, 159, 222, 214, 212, 36, 203, 149, 91, 117,\n\t\t195, 104, 205, 121, 165, 227, 178, 203, 162, 247, 214, 48,\n\t\t237, 161, 169, 138, 168, 104, 147, 244, 130, 106, 192, 151,\n\t\t36, 26, 224, 20, 161, 217, 98, 224, 199, 207, 124, 96, 143,\n\t\t250, 99, 142, 146, 52, 156, 125, 26, 129, 31, 158, 253, 126,\n\t\t60, 115, 197, 142, 14, 25, 244, 50, 94, 128, 76, 120, 114,\n\t\t92, 147, 105, 227, 107, 50, 225, 185, 115, 77, 166, 167, 181,\n\t\t38, 19, 153, 90, 215, 228, 242, 60, 34, 224, 248, 146, 54,\n\t\t232, 119, 208, 220, 162, 46, 95, 6, 183, 233, 135, 213, 251,\n\t\t12, 117, 61, 206, 103, 105, 253, 239, 103, 246, 194, 121,\n\t\t169, 195, 106, 215, 255, 231, 89, 250, 41, 20, 229, 240, 165,\n\t\t227, 178, 112, 202, 101, 81, 148, 206, 225, 212, 182, 168,\n\t\t110, 196, 96, 236, 74, 147, 89, 28, 225, 143, 139, 184, 204,\n\t\t230, 124, 194, 47, 113, 22, 54, 205, 31, 62, 199, 101, 230,\n\t\t124, 57, 139, 138, 112, 69, 45, 184, 23, 146, 187, 39, 245,\n\t\t232, 31, 151, 254, 101, 191, 125, 242, 151, 254, 89, 146,\n\t\t63, 43, 242, 39, 32, 127, 214, 228, 207, 134, 252, 217, 146,\n\t\t63, 79, 228, 79, 175, 69, 242, 148, 29, 216, 95, 86, 86, 255,\n\t\t228, 142, 143, 92, 170, 63, 60, 142, 79, 203, 225, 105, 53,\n\t\t60, 5, 195, 211, 122, 120, 218, 12, 79, 219, 225, 233, 105,\n\t\t120, 26, 229, 201, 19, 246, 151, 201, 211, 63, 185, 227, 35,\n\t\t151, 234, 15, 143, 227, 211, 114, 120, 90, 13, 79, 193, 240,\n\t\t180, 30, 158, 54, 195, 211, 118, 120, 122, 26, 158, 70, 121,\n\t\t154, 156, 253, 101, 242, 244, 79, 238, 248, 200, 165, 250,\n\t\t195, 227, 248, 180, 28, 158, 86, 195, 83, 48, 60, 173, 135,\n\t\t167, 205, 240, 180, 29, 158, 158, 134, 167, 81, 158, 46, 99,\n\t\t127, 153, 60, 221, 232, 30, 221, 232, 33, 221, 232, 36, 221,\n\t\t224, 39, 221, 224, 42, 221, 224, 45, 221, 224, 48, 221, 224,\n\t\t51, 221, 224, 54, 221, 224, 57, 221, 224, 60, 29, 241, 31,\n\t\t96, 78, 149, 31, 133, 166, 197, 208, 225, 113, 205, 220, 212,\n\t\t242, 177, 219, 159, 135, 86, 91, 213, 104, 143, 234, 26, 37,\n\t\t36, 204, 187, 164, 241, 70, 97, 147, 226, 133, 195, 129, 12,\n\t\t75, 241, 13, 237, 60, 66, 112, 168, 203, 151, 157, 39, 245,\n\t\t228, 152, 53, 145, 154, 101, 196, 115, 108, 56, 188, 136,\n\t\t191, 72, 38, 26, 119, 24, 15, 130, 233, 122, 30, 158, 200,\n\t\t96, 187, 88, 226, 255, 125, 124, 6, 146, 198, 252, 67, 26,\n\t\t97, 226, 139, 76, 188, 245, 98, 221, 255, 111, 195, 113, 225,\n\t\t210, 184, 170, 12, 137, 132, 207, 82, 228, 227, 7, 28, 131,\n\t\t254, 199, 152, 211, 15, 104, 150, 149, 152, 101, 185, 84,\n\t\t43, 192, 165, 141, 12, 198, 68, 194, 39, 16, 249, 172, 60,\n\t\t181, 10, 92, 218, 200, 103, 76, 36, 124, 214, 34, 159, 192,\n\t\t229, 24, 4, 194, 108, 70, 192, 204, 184, 145, 178, 0, 54,\n\t\t8, 32, 35, 4, 146, 21, 182, 34, 159, 53, 96, 133, 53, 100,\n\t\t133, 181, 100, 133, 39, 145, 207, 134, 183, 194, 70, 176,\n\t\t194, 134, 89, 193, 115, 37, 55, 2, 204, 176, 133, 204, 176,\n\t\t149, 204, 224, 73, 254, 248, 4, 216, 225, 9, 178, 195, 147,\n\t\t100, 7, 79, 246, 73, 151, 183, 4, 48, 177, 116, 89, 16, 252,\n\t\t183, 79, 235, 166, 29, 91, 45, 129, 219, 142, 247, 204, 30,\n\t\t24, 93, 63, 166, 145, 201, 188, 229, 51, 123, 96, 100, 174,\n\t\t76, 227, 62, 179, 137, 47, 74, 225, 41, 92, 24, 19, 70, 225,\n\t\t203, 20, 62, 165, 240, 25, 197, 82, 166, 96, 130, 12, 114,\n\t\t172, 100, 138, 21, 165, 88, 49, 138, 64, 166, 8, 40, 69, 192,\n\t\t40, 214, 50, 197, 154, 82, 172, 25, 197, 70, 166, 216, 80,\n\t\t138, 13, 163, 216, 202, 20, 91, 74, 177, 101, 20, 79, 50,\n\t\t197, 19, 165, 120, 26, 52, 166, 40, 213, 99, 90, 245, 70,\n\t\t181, 170, 122, 29, 20, 59, 104, 214, 83, 84, 235, 49, 221,\n\t\t122, 189, 114, 241, 148, 155, 227, 157, 121, 96, 196, 181,\n\t\t58, 250, 222, 23, 222, 243, 65, 141, 18, 44, 5, 2, 28, 187,\n\t\t232, 155, 149, 240, 134, 15, 74, 148, 32, 16, 8, 248, 104,\n\t\t67, 9, 214, 2, 1, 14, 42, 244, 205, 70, 124, 163, 202, 189,\n\t\t21, 8, 214, 170, 220, 79, 2, 193, 134, 147, 219, 115, 69,\n\t\t157, 168, 130, 123, 162, 214, 184, 246, 105, 26, 39, 244,\n\t\t232, 224, 61, 187, 76, 138, 61, 222, 218, 107, 246, 232, 232,\n\t\t30, 29, 103, 15, 173, 238, 212, 119, 246, 216, 236, 250, 238,\n\t\t179, 199, 113, 119, 234, 65, 123, 32, 120, 167, 78, 180, 71,\n\t\t146, 215, 247, 163, 61, 234, 188, 83, 87, 218, 195, 214, 59,\n\t\t245, 166, 61, 238, 189, 190, 67, 197, 160, 252, 78, 125, 42,\n\t\t70, 245, 119, 234, 86, 241, 176, 224, 198, 158, 181, 201,\n\t\t173, 59, 215, 38, 183, 237, 95, 155, 220, 162, 139, 21, 154,\n\t\t171, 174, 151, 21, 218, 162, 174, 163, 21, 90, 153, 174, 175,\n\t\t21, 26, 149, 174, 187, 21, 154, 139, 174, 199, 21, 26, 130,\n\t\t174, 211, 21, 252, 94, 215, 239, 10, 30, 173, 235, 122, 5,\n\t\t95, 213, 245, 190, 162, 107, 234, 59, 96, 209, 237, 244, 125,\n\t\t176, 232, 82, 134, 110, 24, 155, 90, 154, 162, 24, 95, 77,\n\t\t117, 210, 216, 188, 19, 253, 52, 182, 174, 174, 171, 198,\n\t\t86, 157, 232, 173, 177, 81, 39, 58, 108, 108, 83, 93, 159,\n\t\t141, 109, 57, 209, 109, 99, 83, 78, 244, 220, 216, 146, 186,\n\t\t206, 155, 88, 112, 162, 255, 38, 230, 211, 116, 225, 198,\n\t\t105, 187, 204, 201, 147, 247, 236, 195, 233, 124, 198, 91,\n\t\t251, 240, 60, 185, 79, 31, 158, 39, 119, 235, 195, 243, 228,\n\t\t150, 62, 60, 79, 238, 214, 135, 231, 201, 221, 250, 240, 60,\n\t\t185, 165, 15, 207, 147, 187, 245, 225, 121, 114, 183, 62,\n\t\t60, 79, 110, 233, 195, 241, 68, 223, 157, 250, 112, 60, 83,\n\t\t120, 167, 62, 28, 79, 53, 222, 216, 135, 231, 137, 117, 31,\n\t\t158, 39, 182, 125, 120, 158, 88, 244, 225, 66, 115, 213, 245,\n\t\t225, 66, 91, 212, 245, 225, 66, 43, 211, 245, 225, 66, 163,\n\t\t210, 245, 225, 66, 115, 209, 245, 225, 66, 67, 208, 245, 225,\n\t\t130, 223, 235, 250, 112, 193, 163, 117, 125, 184, 224, 171,\n\t\t186, 62, 92, 116, 77, 125, 31, 46, 186, 157, 190, 15, 23,\n\t\t93, 202, 208, 135, 99, 83, 195, 125, 56, 54, 176, 185, 15,\n\t\t199, 230, 157, 232, 195, 177, 117, 117, 125, 56, 182, 234,\n\t\t68, 31, 142, 141, 58, 209, 135, 99, 155, 234, 250, 112, 108,\n\t\t203, 137, 62, 28, 155, 114, 162, 15, 199, 150, 212, 245, 225,\n\t\t196, 130, 19, 125, 56, 49, 159, 125, 31, 62, 174, 162, 101,\n\t\t78, 118, 120, 207, 62, 156, 174, 145, 188, 181, 15, 207, 14,\n\t\t247, 233, 195, 179, 195, 221, 250, 240, 236, 112, 75, 31,\n\t\t158, 29, 238, 214, 135, 103, 135, 187, 245, 225, 217, 225,\n\t\t150, 62, 60, 59, 220, 173, 15, 207, 14, 119, 235, 195, 179,\n\t\t195, 45, 125, 56, 94, 60, 188, 83, 31, 142, 87, 31, 239, 212,\n\t\t135, 227, 229, 203, 27, 251, 240, 236, 96, 221, 135, 103,\n\t\t7, 219, 62, 60, 59, 88, 244, 225, 66, 115, 213, 245, 225,\n\t\t66, 91, 212, 245, 225, 66, 43, 211, 245, 225, 66, 163, 210,\n\t\t245, 225, 66, 115, 209, 245, 225, 66, 67, 208, 245, 225, 130,\n\t\t223, 235, 250, 112, 193, 163, 117, 125, 184, 224, 171, 186,\n\t\t62, 92, 116, 77, 125, 31, 46, 186, 157, 190, 15, 23, 93, 202,\n\t\t208, 135, 99, 83, 195, 125, 56, 54, 176, 185, 15, 199, 230,\n\t\t157, 232, 195, 177, 117, 117, 125, 56, 182, 234, 68, 31, 142,\n\t\t141, 58, 209, 135, 99, 155, 234, 250, 112, 108, 203, 137,\n\t\t62, 28, 155, 114, 162, 15, 199, 150, 212, 245, 225, 196, 130,\n\t\t19, 125, 56, 49, 159, 125, 31, 206, 109, 106, 201, 156, 238,\n\t\t93, 215, 159, 187, 251, 44, 65, 119, 119, 90, 133, 238, 238,\n\t\t183, 16, 221, 221, 180, 22, 221, 221, 111, 57, 186, 187, 223,\n\t\t138, 116, 119, 211, 162, 116, 119, 191, 117, 233, 238, 126,\n\t\t75, 211, 221, 77, 171, 211, 221, 29, 23, 168, 187, 59, 174,\n\t\t81, 119, 111, 88, 166, 238, 50, 235, 78, 188, 203, 108, 59,\n\t\t241, 46, 179, 232, 196, 133, 230, 170, 235, 196, 133, 182,\n\t\t168, 235, 196, 133, 86, 166, 235, 196, 133, 70, 165, 235,\n\t\t196, 133, 230, 162, 235, 196, 133, 134, 160, 235, 196, 5,\n\t\t191, 215, 117, 226, 130, 71, 235, 58, 113, 193, 87, 117, 157,\n\t\t184, 232, 154, 250, 78, 92, 116, 59, 125, 39, 46, 186, 148,\n\t\t161, 19, 199, 166, 134, 59, 113, 108, 96, 115, 39, 142, 205,\n\t\t59, 209, 137, 99, 235, 234, 58, 113, 108, 213, 137, 78, 28,\n\t\t27, 117, 162, 19, 199, 54, 213, 117, 226, 216, 150, 19, 157,\n\t\t56, 54, 229, 68, 39, 142, 45, 169, 235, 196, 137, 5, 39, 58,\n\t\t113, 98, 62, 93, 39, 190, 32, 231, 23, 199, 70, 14, 30, 50,\n\t\t48, 28, 179, 165, 28, 102, 109, 50, 103, 79, 199, 113, 95,\n\t\t52, 57, 211, 40, 29, 101, 106, 203, 10, 62, 174, 64, 247,\n\t\t147, 15, 44, 143, 40, 76, 122, 118, 242, 81, 40, 44, 154,\n\t\t116, 148, 219, 215, 114, 137, 202, 228, 245, 123, 252, 223,\n\t\t51, 87, 170, 150, 158, 106, 4, 62, 135, 79, 94, 58, 77, 62,\n\t\t214, 23, 255, 224, 170, 188, 196, 91, 254, 201, 43, 82, 30,\n\t\t74, 206, 186, 173, 243, 50, 33, 199, 118, 76, 58, 94, 145,\n\t\t157, 168, 12, 98, 66, 117, 41, 104, 141, 161, 136, 170, 19,\n\t\t57, 101, 168, 105, 120, 197, 205, 129, 183, 9, 148, 120, 4,\n\t\t19, 133, 162, 251, 214, 78, 21, 215, 214, 105, 213, 203, 214,\n\t\t23, 49, 107, 235, 93, 209, 30, 157, 114, 239, 180, 175, 21,\n\t\t250, 84, 38, 201, 163, 106, 4, 254, 64, 139, 27, 60, 50, 78,\n\t\t248, 72, 244, 200, 135, 156, 144, 54, 103, 222, 140, 185,\n\t\t233, 141, 46, 115, 241, 231, 143, 99, 13, 135, 148, 35, 224,\n\t\t22, 209, 54, 9, 71, 207, 32, 146, 136, 249, 116, 242, 124,\n\t\t120, 218, 199, 137, 77, 86, 78, 20, 19, 17, 36, 157, 88, 196,\n\t\t112, 83, 205, 92, 78, 224, 138, 224, 210, 32, 142, 201, 58,\n\t\t217, 38, 17, 40, 244, 120, 17, 142, 174, 198, 241, 54, 142,\n\t\t98, 184, 198, 82, 102, 93, 157, 21, 50, 72, 70, 177, 24, 122,\n\t\t23, 207, 92, 252, 201, 215, 152, 165, 128, 188, 150, 104,\n\t\t29, 107, 234, 75, 47, 249, 209, 213, 54, 242, 146, 125, 100,\n\t\t145, 85, 91, 87, 145, 8, 244, 62, 161, 136, 180, 216, 151,\n\t\t115, 238, 153, 99, 76, 126, 130, 44, 16, 10, 16, 44, 37, 190,\n\t\t179, 72, 87, 187, 48, 74, 18, 20, 76, 228, 211, 85, 141, 167,\n\t\t128, 132, 18, 153, 211, 203, 146, 230, 226, 79, 142, 247,\n\t\t144, 2, 241, 218, 239, 17, 138, 66, 80, 80, 118, 11, 147,\n\t\t174, 142, 251, 61, 218, 134, 222, 116, 86, 93, 53, 37, 34,\n\t\t141, 116, 92, 17, 228, 18, 168, 185, 240, 139, 99, 206, 18,\n\t\t64, 70, 65, 172, 115, 84, 122, 181, 148, 182, 150, 94, 228,\n\t\t70, 155, 201, 156, 186, 74, 138, 52, 160, 104, 66, 1, 248,\n\t\t214, 161, 57, 255, 131, 227, 76, 127, 131, 92, 146, 125, 178,\n\t\t71, 160, 152, 228, 170, 44, 93, 253, 80, 140, 226, 253, 122,\n\t\t42, 163, 174, 122, 2, 9, 36, 151, 200, 62, 9, 235, 175, 115,\n\t\t238, 89, 176, 94, 255, 19, 12, 50, 235, 120, 27, 195, 46,\n\t\t138, 111, 253, 210, 70, 152, 167, 40, 138, 96, 149, 140, 249,\n\t\t244, 118, 27, 41, 192, 192, 32, 48, 15, 227, 54, 253, 134,\n\t\t230, 194, 47, 142, 51, 75, 0, 24, 233, 250, 93, 65, 24, 146,\n\t\t255, 218, 174, 91, 203, 66, 87, 103, 145, 198, 94, 216, 217,\n\t\t2, 195, 24, 172, 179, 30, 203, 140, 152, 112, 242, 84, 31,\n\t\t77, 92, 250, 203, 237, 18, 73, 236, 176, 111, 113, 252, 86,\n\t\t79, 129, 27, 108, 0, 150, 232, 9, 197, 104, 47, 177, 20, 65,\n\t\t96, 47, 154, 141, 92, 60, 253, 76, 116, 78, 14, 192, 209,\n\t\t159, 34, 106, 132, 170, 130, 41, 233, 163, 140, 119, 93, 128,\n\t\t230, 86, 212, 231, 7, 193, 156, 253, 203, 99, 63, 142, 53,\n\t\t177, 180, 21, 12, 20, 185, 245, 118, 30, 166, 51, 199, 201,\n\t\t164, 77, 176, 120, 34, 59, 139, 8, 255, 26, 53, 85, 89, 52,\n\t\t233, 183, 30, 244, 235, 111, 141, 40, 217, 225, 199, 142,\n\t\t94, 86, 195, 110, 94, 24, 46, 172, 193, 71, 34, 251, 126,\n\t\t161, 45, 79, 241, 17, 186, 205, 166, 79, 234, 51, 31, 83,\n\t\t124, 176, 103, 188, 220, 6, 18, 229, 71, 173, 250, 129, 90,\n\t\t109, 214, 27, 109, 173, 114, 195, 93, 24, 191, 114, 173, 242,\n\t\t228, 170, 90, 61, 61, 121, 218, 90, 101, 135, 223, 77, 173,\n\t\t178, 195, 85, 181, 242, 188, 167, 39, 109, 181, 186, 236,\n\t\t119, 83, 173, 46, 51, 84, 75, 33, 255, 189, 136, 173, 151,\n\t\t121, 177, 47, 235, 220, 137, 203, 162, 173, 75, 131, 150,\n\t\t233, 161, 188, 56, 204, 226, 79, 62, 57, 246, 62, 251, 126,\n\t\t230, 87, 221, 227, 243, 56, 29, 128, 167, 64, 102, 116, 38,\n\t\t68, 188, 249, 66, 119, 53, 160, 182, 23, 144, 195, 122, 150,\n\t\t86, 187, 241, 26, 169, 14, 56, 161, 31, 163, 100, 149, 132,\n\t\t240, 9, 125, 60, 139, 67, 142, 29, 242, 241, 125, 182, 240,\n\t\t130, 102, 134, 194, 166, 71, 233, 78, 121, 106, 231, 248,\n\t\t34, 160, 99, 152, 148, 47, 202, 59, 230, 180, 77, 92, 35,\n\t\t84, 204, 194, 34, 153, 125, 34, 171, 61, 141, 83, 163, 228,\n\t\t20, 163, 196, 201, 75, 122, 180, 177, 255, 249, 120, 22, 149,\n\t\t203, 9, 129, 151, 101, 68, 221, 239, 176, 57, 81, 87, 133,\n\t\t69, 162, 70, 114, 254, 182, 55, 216, 118, 244, 230, 42, 43,\n\t\t189, 10, 93, 220, 214, 141, 146, 253, 126, 184, 223, 202,\n\t\t125, 30, 117, 128, 167, 199, 221, 25, 57, 243, 79, 225, 130,\n\t\t231, 47, 73, 87, 226, 247, 29, 147, 84, 131, 225, 134, 158,\n\t\t234, 212, 58, 85, 22, 198, 232, 136, 111, 217, 99, 98, 209,\n\t\t187, 190, 202, 42, 140, 211, 246, 21, 95, 106, 32, 169, 160,\n\t\t252, 247, 13, 249, 122, 205, 189, 161, 204, 55, 100, 190,\n\t\t62, 75, 146, 54, 125, 83, 76, 230, 66, 242, 47, 53, 10, 147,\n\t\t178, 200, 94, 191, 64, 168, 155, 32, 162, 145, 35, 185, 211,\n\t\t11, 48, 63, 169, 205, 183, 48, 59, 33, 27, 79, 16, 69, 195,\n\t\t23, 12, 137, 98, 57, 248, 6, 98, 109, 88, 32, 11, 44, 56,\n\t\t3, 185, 132, 141, 191, 251, 13, 199, 10, 22, 20, 190, 159,\n\t\t121, 92, 172, 96, 51, 153, 16, 137, 56, 41, 235, 78, 92, 133,\n\t\t230, 45, 2, 89, 136, 190, 19, 84, 229, 152, 148, 130, 39,\n\t\t80, 47, 232, 153, 42, 179, 201, 129, 50, 253, 201, 66, 125,\n\t\t184, 212, 197, 118, 3, 151, 42, 216, 166, 202, 194, 180, 104,\n\t\t81, 215, 234, 195, 182, 112, 23, 223, 18, 190, 140, 143, 38,\n\t\t203, 122, 215, 4, 108, 6, 248, 45, 2, 20, 137, 203, 234, 11,\n\t\t214, 227, 87, 221, 204, 213, 85, 73, 76, 206, 14, 115, 43,\n\t\t58, 206, 10, 186, 59, 18, 100, 122, 190, 99, 243, 22, 91,\n\t\t15, 238, 218, 72, 170, 124, 249, 153, 198, 76, 224, 29, 39,\n\t\t114, 133, 206, 98, 143, 186, 221, 128, 229, 226, 68, 248,\n\t\t174, 157, 169, 82, 241, 228, 60, 16, 40, 126, 201, 79, 89,\n\t\t155, 86, 25, 250, 50, 135, 222, 246, 69, 124, 17, 238, 73,\n\t\t99, 55, 210, 137, 157, 153, 120, 201, 77, 255, 166, 119, 135,\n\t\t225, 174, 92, 254, 58, 88, 242, 26, 112, 84, 74, 139, 157,\n\t\t147, 222, 31, 132, 73, 223, 229, 158, 14, 229, 154, 14, 124,\n\t\t119, 0, 43, 143, 94, 189, 49, 252, 52, 93, 188, 161, 92, 67,\n\t\t48, 114, 194, 119, 12, 2, 87, 28, 136, 245, 22, 239, 48, 16,\n\t\t170, 142, 25, 144, 238, 104, 100, 19, 70, 77, 153, 157, 90,\n\t\t36, 40, 108, 41, 223, 139, 235, 104, 57, 13, 125, 206, 127,\n\t\t241, 175, 72, 196, 22, 58, 173, 139, 250, 94, 10, 11, 18,\n\t\t115, 124, 169, 21, 111, 42, 122, 191, 145, 108, 49, 46, 121,\n\t\t52, 28, 89, 226, 138, 81, 209, 162, 250, 25, 255, 192, 151,\n\t\t89, 53, 44, 73, 186, 44, 75, 48, 39, 187, 150, 77, 145, 102,\n\t\t102, 208, 99, 211, 134, 109, 26, 243, 90, 148, 185, 46, 61,\n\t\t63, 144, 245, 234, 94, 22, 223, 194, 44, 77, 156, 61, 66,\n\t\t73, 31, 247, 132, 171, 238, 158, 213, 245, 196, 209, 159,\n\t\t225, 235, 174, 200, 61, 249, 140, 107, 91, 150, 125, 123,\n\t\t4, 172, 141, 87, 12, 123, 190, 255, 118, 240, 77, 182, 187,\n\t\t224, 89, 40, 89, 220, 178, 0, 7, 43, 94, 36, 207, 46, 122,\n\t\t153, 230, 85, 48, 6, 92, 185, 115, 111, 189, 153, 175, 159,\n\t\t230, 139, 167, 71, 16, 111, 95, 22, 241, 169, 105, 203, 220,\n\t\t161, 17, 38, 197, 152, 36, 149, 48, 15, 151, 252, 18, 210,\n\t\t199, 176, 69, 201, 76, 204, 189, 131, 105, 4, 240, 131, 211,\n\t\t165, 169, 27, 166, 102, 88, 20, 122, 255, 48, 44, 16, 123,\n\t\t57, 45, 150, 134, 82, 21, 142, 194, 115, 72, 68, 35, 224,\n\t\t230, 148, 141, 1, 55, 92, 155, 255, 146, 92, 116, 62, 65,\n\t\t71, 157, 78, 83, 125, 149, 155, 145, 108, 96, 54, 173, 46,\n\t\t149, 179, 125, 30, 93, 49, 170, 174, 39, 75, 209, 103, 97,\n\t\t173, 81, 8, 216, 0, 76, 182, 212, 21, 76, 107, 83, 19, 156,\n\t\t243, 134, 234, 0, 249, 140, 117, 26, 227, 36, 39, 166, 220,\n\t\t11, 104, 74, 228, 122, 24, 77, 198, 179, 212, 22, 13, 101,\n\t\t194, 106, 52, 144, 154, 181, 168, 202, 102, 165, 68, 93, 54,\n\t\t141, 14, 169, 187, 50, 221, 203, 130, 74, 175, 97, 93, 66,\n\t\t60, 118, 6, 6, 178, 78, 111, 144, 129, 221, 171, 248, 102,\n\t\t89, 198, 207, 128, 40, 195, 203, 141, 151, 36, 219, 112, 82,\n\t\t60, 217, 42, 86, 228, 19, 17, 7, 20, 127, 194, 252, 211, 89,\n\t\t111, 113, 129, 29, 118, 40, 116, 63, 51, 216, 49, 4, 204,\n\t\t177, 92, 197, 40, 216, 76, 137, 139, 59, 169, 251, 9, 107,\n\t\t193, 238, 172, 116, 126, 253, 184, 176, 71, 31, 115, 219,\n\t\t190, 16, 223, 139, 172, 113, 123, 252, 206, 216, 238, 198,\n\t\t220, 59, 93, 86, 51, 176, 176, 43, 158, 125, 56, 231, 118,\n\t\t41, 40, 7, 81, 152, 225, 154, 99, 147, 48, 154, 54, 102, 160,\n\t\t157, 104, 96, 170, 180, 118, 173, 75, 151, 207, 220, 180,\n\t\t0, 57, 37, 207, 186, 222, 202, 90, 6, 170, 63, 26, 28, 48,\n\t\t45, 196, 122, 191, 117, 100, 64, 190, 135, 53, 242, 253, 191,\n\t\t111, 108, 224, 251, 238, 60, 88, 94, 57, 54, 160, 213, 85,\n\t\t97, 230, 240, 194, 136, 18, 117, 84, 2, 202, 163, 68, 82,\n\t\t83, 102, 10, 215, 137, 164, 27, 37, 72, 175, 109, 196, 179,\n\t\t25, 41, 8, 164, 160, 168, 198, 177, 2, 167, 124, 120, 172,\n\t\t64, 249, 255, 151, 226, 184, 192, 120, 65, 161, 213, 142,\n\t\t25, 12, 92, 39, 73, 237, 198, 14, 134, 18, 174, 203, 103,\n\t\t131, 188, 175, 40, 205, 156, 237, 154, 177, 132, 165, 14,\n\t\t245, 244, 54, 53, 35, 99, 131, 219, 170, 167, 201, 123, 197,\n\t\t216, 98, 200, 123, 253, 232, 66, 155, 245, 44, 181, 99, 99,\n\t\t185, 58, 213, 78, 144, 91, 143, 51, 174, 85, 172, 41, 235,\n\t\t149, 96, 115, 200, 15, 65, 45, 59, 196, 102, 100, 33, 235,\n\t\t249, 38, 57, 174, 67, 144, 86, 172, 160, 197, 178, 125, 232,\n\t\t135, 79, 22, 34, 170, 86, 178, 206, 114, 213, 248, 195, 222,\n\t\t45, 236, 178, 223, 230, 26, 118, 3, 135, 171, 68, 178, 99,\n\t\t9, 153, 104, 181, 118, 215, 201, 180, 200, 22, 195, 135, 235,\n\t\t4, 182, 96, 120, 205, 120, 68, 211, 223, 138, 120, 85, 246,\n\t\t227, 171, 176, 170, 62, 179, 25, 200, 216, 138, 96, 63, 42,\n\t\t153, 228, 113, 205, 184, 100, 186, 13, 78, 208, 219, 143,\n\t\t79, 174, 110, 125, 166, 188, 215, 140, 83, 96, 159, 187, 197,\n\t\t250, 183, 141, 85, 100, 231, 196, 125, 14, 176, 98, 99, 94,\n\t\t92, 195, 95, 160, 170, 203, 151, 217, 184, 192, 38, 38, 217,\n\t\t174, 230, 8, 2, 240, 61, 32, 119, 32, 203, 112, 103, 41, 159,\n\t\t153, 212, 221, 190, 14, 83, 235, 76, 3, 97, 21, 198, 95, 89,\n\t\t226, 191, 78, 77, 155, 238, 95, 113, 144, 64, 69, 203, 146,\n\t\t225, 229, 48, 161, 86, 100, 29, 212, 90, 188, 241, 0, 183,\n\t\t248, 235, 254, 38, 176, 17, 158, 198, 68, 240, 123, 37, 252,\n\t\t9, 115, 248, 11, 129, 122, 134, 192, 102, 5, 233, 83, 40,\n\t\t124, 78, 234, 233, 244, 147, 121, 226, 59, 220, 52, 168, 146,\n\t\t71, 129, 244, 238, 101, 109, 136, 73, 245, 93, 227, 39, 156,\n\t\t170, 192, 29, 8, 211, 139, 149, 195, 218, 177, 97, 185, 18,\n\t\t92, 172, 132, 52, 201, 204, 250, 30, 117, 53, 150, 72, 3,\n\t\t149, 236, 121, 151, 69, 212, 22, 176, 147, 73, 159, 103, 226,\n\t\t191, 11, 201, 116, 43, 124, 74, 14, 55, 1, 248, 99, 151, 108,\n\t\t59, 218, 169, 65, 53, 27, 18, 226, 217, 17, 188, 205, 12,\n\t\t72, 109, 212, 68, 37, 65, 217, 120, 200, 111, 112, 185, 109,\n\t\t47, 228, 212, 150, 69, 220, 165, 2, 123, 21, 37, 96, 5, 237,\n\t\t102, 252, 21, 247, 58, 246, 22, 85, 183, 56, 70, 109, 193,\n\t\t102, 62, 250, 71, 178, 81, 29, 252, 134, 107, 255, 126, 193,\n\t\t145, 74, 95, 109, 189, 106, 91, 98, 207, 106, 220, 104, 215,\n\t\t115, 99, 191, 206, 108, 23, 221, 98, 29, 16, 233, 240, 183,\n\t\t179, 216, 107, 242, 241, 216, 33, 239, 227, 89, 250, 8, 94,\n\t\t40, 178, 102, 159, 97, 28, 242, 207, 48, 193, 153, 146, 59,\n\t\t232, 27, 42, 218, 102, 172, 31, 59, 199, 104, 62, 188, 64,\n\t\t191, 3, 44, 34, 60, 146, 40, 112, 17, 63, 232, 171, 227, 181,\n\t\t126, 74, 228, 3, 26, 174, 187, 246, 227, 88, 224, 197, 105,\n\t\t126, 96, 207, 166, 161, 172, 244, 78, 213, 62, 240, 19, 212,\n\t\t63, 176, 28, 204, 112, 31, 5, 24, 109, 183, 96, 231, 120,\n\t\t172, 115, 236, 88, 142, 230, 88, 190, 252, 40, 86, 167, 46,\n\t\t171, 164, 124, 233, 227, 240, 225, 144, 161, 41, 249, 123,\n\t\t253, 42, 242, 7, 113, 116, 131, 252, 59, 192, 50, 54, 181,\n\t\t96, 249, 38, 235, 114, 155, 157, 135, 211, 169, 102, 85, 208,\n\t\t221, 176, 162, 42, 134, 15, 190, 241, 124, 108, 188, 57, 8,\n\t\t215, 254, 122, 43, 113, 11, 86, 65, 180, 246, 37, 110, 188,\n\t\t63, 143, 69, 76, 215, 212, 115, 183, 115, 207, 219, 204, 61,\n\t\t31, 170, 171, 228, 213, 35, 99, 59, 191, 190, 66, 25, 54,\n\t\t158, 33, 11, 97, 227, 21, 188, 63, 112, 213, 186, 198, 187,\n\t\t137, 190, 165, 90, 172, 80, 16, 4, 209, 45, 181, 216, 129,\n\t\t150, 178, 169, 139, 234, 225, 218, 26, 221, 108, 121, 114,\n\t\t46, 121, 226, 176, 25, 219, 198, 3, 173, 18, 114, 92, 108,\n\t\t60, 220, 247, 182, 219, 165, 236, 225, 30, 218, 160, 229,\n\t\t74, 224, 37, 248, 55, 101, 63, 93, 71, 110, 1, 75, 170, 161,\n\t\t236, 217, 148, 165, 157, 95, 91, 43, 192, 198, 31, 230, 246,\n\t\t57, 32, 159, 102, 213, 185, 198, 163, 137, 126, 101, 165,\n\t\t199, 155, 213, 210, 189, 94, 254, 29, 96, 25, 155, 90, 0,\n\t\t222, 12, 215, 229, 54, 59, 167, 197, 190, 156, 208, 194, 38,\n\t\t244, 35, 197, 245, 112, 226, 200, 194, 198, 135, 189, 229,\n\t\t118, 245, 180, 150, 25, 121, 155, 112, 27, 141, 140, 120,\n\t\t7, 198, 140, 167, 107, 229, 47, 231, 222, 218, 159, 123, 219,\n\t\t149, 88, 45, 201, 119, 49, 55, 59, 199, 181, 171, 178, 141,\n\t\t213, 231, 150, 228, 128, 203, 146, 42, 92, 229, 175, 88, 151,\n\t\t178, 216, 238, 198, 221, 236, 175, 20, 123, 39, 91, 193, 70,\n\t\t120, 213, 83, 161, 42, 220, 104, 80, 122, 143, 192, 176, 203,\n\t\t73, 115, 222, 224, 195, 126, 31, 123, 238, 70, 210, 1, 73,\n\t\t20, 24, 137, 14, 171, 101, 135, 220, 112, 235, 186, 242, 169,\n\t\t227, 229, 19, 114, 93, 129, 29, 239, 182, 172, 4, 139, 138,\n\t\t6, 193, 220, 123, 90, 206, 55, 74, 61, 37, 223, 101, 44, 101,\n\t\t247, 125, 187, 26, 108, 188, 97, 110, 159, 3, 240, 227, 161,\n\t\t70, 176, 43, 107, 171, 64, 180, 44, 85, 33, 94, 63, 5, 146,\n\t\t234, 173, 170, 176, 3, 236, 99, 83, 17, 213, 167, 53, 213,\n\t\t185, 205, 218, 228, 226, 8, 115, 171, 30, 86, 248, 161, 137,\n\t\t253, 145, 137, 77, 4, 142, 183, 254, 114, 185, 148, 88, 69,\n\t\t137, 239, 177, 14, 141, 176, 226, 157, 153, 50, 183, 168,\n\t\t221, 56, 177, 44, 214, 78, 114, 101, 202, 208, 46, 16, 219,\n\t\t214, 221, 198, 5, 230, 214, 25, 0, 39, 102, 85, 185, 38, 28,\n\t\t19, 197, 202, 218, 246, 189, 189, 159, 92, 45, 252, 78, 53,\n\t\t137, 77, 21, 84, 247, 133, 43, 114, 155, 125, 241, 221, 13,\n\t\t147, 237, 120, 191, 221, 63, 237, 67, 57, 20, 225, 68, 142,\n\t\t141, 109, 60, 246, 209, 26, 201, 204, 146, 16, 185, 40, 224,\n\t\t152, 241, 14, 76, 184, 91, 212, 111, 181, 157, 251, 171, 167,\n\t\t185, 31, 184, 82, 13, 37, 7, 38, 12, 237, 35, 177, 93, 245,\n\t\t109, 156, 96, 110, 75, 15, 56, 48, 173, 201, 181, 49, 24,\n\t\t107, 86, 233, 254, 146, 167, 100, 127, 173, 240, 59, 197,\n\t\t38, 54, 85, 80, 29, 24, 172, 200, 173, 246, 157, 190, 49,\n\t\t100, 185, 90, 134, 43, 185, 17, 147, 196, 145, 133, 77, 236,\n\t\t245, 151, 254, 198, 87, 192, 89, 226, 123, 254, 106, 100,\n\t\t36, 70, 222, 250, 171, 69, 189, 2, 127, 30, 108, 231, 235,\n\t\t149, 88, 41, 37, 232, 214, 95, 45, 67, 174, 93, 133, 109,\n\t\t44, 62, 183, 36, 7, 195, 109, 95, 133, 107, 130, 45, 209,\n\t\t164, 2, 217, 189, 208, 75, 174, 20, 123, 39, 219, 192, 70,\n\t\t120, 40, 208, 170, 85, 184, 201, 156, 116, 170, 91, 158, 35,\n\t\t102, 147, 161, 178, 38, 132, 131, 181, 227, 203, 52, 15, 15,\n\t\t136, 95, 170, 112, 4, 62, 96, 81, 54, 110, 61, 57, 39, 43,\n\t\t241, 228, 61, 92, 46, 110, 90, 59, 192, 132, 163, 204, 95,\n\t\t116, 124, 185, 8, 185, 13, 88, 104, 17, 86, 141, 141, 39,\n\t\t193, 34, 216, 184, 19, 239, 72, 74, 5, 175, 105, 22, 215,\n\t\t154, 199, 170, 94, 59, 131, 13, 109, 106, 167, 54, 150, 137,\n\t\t58, 190, 205, 51, 148, 41, 105, 54, 223, 250, 214, 166, 195,\n\t\t79, 209, 42, 133, 217, 52, 158, 201, 137, 95, 133, 43, 212,\n\t\t124, 222, 60, 143, 173, 150, 2, 55, 34, 253, 188, 182, 133,\n\t\t70, 117, 106, 178, 113, 56, 157, 24, 54, 206, 6, 185, 217,\n\t\t141, 51, 220, 215, 155, 203, 170, 118, 80, 115, 178, 228,\n\t\t48, 217, 160, 238, 62, 243, 61, 48, 22, 103, 192, 217, 84,\n\t\t239, 91, 155, 20, 63, 59, 44, 21, 101, 211, 160, 38, 103,\n\t\t156, 37, 158, 96, 115, 122, 203, 180, 185, 204, 95, 211, 144,\n\t\t52, 211, 232, 22, 90, 132, 85, 99, 227, 102, 176, 8, 54, 238,\n\t\t5, 58, 214, 45, 19, 234, 215, 154, 199, 170, 94, 96, 243,\n\t\t177, 201, 63, 221, 120, 238, 57, 209, 206, 152, 242, 19, 238,\n\t\t108, 158, 249, 173, 173, 134, 159, 154, 230, 203, 177, 105,\n\t\t50, 147, 115, 221, 60, 67, 168, 189, 188, 97, 150, 94, 96,\n\t\t13, 55, 21, 112, 214, 222, 66, 111, 128, 50, 108, 156, 9,\n\t\t40, 220, 198, 135, 32, 239, 185, 97, 254, 254, 26, 83, 88,\n\t\t85, 7, 106, 27, 211, 153, 39, 27, 198, 29, 231, 245, 25, 75,\n\t\t105, 126, 159, 205, 95, 191, 181, 101, 240, 83, 222, 82, 81,\n\t\t150, 51, 78, 147, 51, 233, 18, 91, 168, 137, 188, 105, 69,\n\t\t64, 230, 15, 183, 19, 221, 10, 129, 133, 34, 97, 237, 216,\n\t\t184, 23, 44, 130, 141, 111, 65, 94, 117, 235, 66, 193, 181,\n\t\t22, 178, 170, 26, 212, 114, 172, 242, 79, 54, 158, 187, 46,\n\t\t32, 48, 166, 226, 66, 2, 155, 54, 127, 107, 235, 225, 103,\n\t\t218, 197, 146, 108, 122, 150, 201, 201, 123, 145, 37, 212,\n\t\t112, 222, 178, 250, 32, 113, 135, 155, 141, 102, 53, 194,\n\t\t66, 129, 160, 86, 108, 60, 11, 20, 192, 198, 165, 32, 103,\n\t\t186, 101, 93, 226, 74, 187, 88, 85, 10, 106, 46, 54, 217,\n\t\t39, 91, 203, 61, 215, 43, 24, 79, 97, 221, 130, 205, 207,\n\t\t191, 181, 173, 240, 83, 250, 66, 65, 182, 253, 204, 212, 58,\n\t\t129, 192, 20, 106, 44, 111, 90, 233, 16, 185, 195, 141, 5,\n\t\t94, 249, 176, 80, 32, 164, 21, 27, 175, 130, 138, 183, 113,\n\t\t39, 200, 145, 110, 91, 0, 185, 206, 42, 86, 149, 130, 154,\n\t\t138, 69, 238, 201, 150, 114, 215, 133, 145, 177, 249, 141,\n\t\t11, 36, 108, 101, 224, 173, 45, 133, 95, 76, 224, 203, 177,\n\t\t233, 83, 38, 87, 39, 120, 134, 112, 143, 114, 227, 170, 138,\n\t\t192, 88, 215, 153, 0, 171, 44, 22, 90, 3, 84, 97, 227, 72,\n\t\t64, 225, 54, 30, 4, 71, 217, 107, 215, 91, 174, 50, 132, 85,\n\t\t117, 224, 46, 100, 42, 243, 100, 179, 184, 219, 58, 76, 150,\n\t\t22, 95, 207, 242, 49, 20, 90, 113, 235, 101, 132, 158, 137,\n\t\t232, 231, 174, 27, 172, 163, 229, 179, 124, 246, 225, 84,\n\t\t36, 168, 238, 43, 48, 209, 222, 120, 253, 131, 165, 137, 107,\n\t\t225, 5, 115, 126, 67, 121, 26, 150, 252, 73, 139, 241, 228,\n\t\t2, 46, 66, 108, 14, 184, 20, 185, 25, 208, 185, 83, 237, 9,\n\t\t136, 190, 134, 21, 190, 29, 62, 106, 11, 202, 231, 112, 190,\n\t\t219, 141, 167, 92, 25, 77, 206, 149, 49, 94, 13, 123, 151,\n\t\t219, 92, 123, 150, 248, 188, 146, 225, 110, 228, 129, 230,\n\t\t123, 142, 156, 191, 116, 5, 95, 135, 130, 143, 125, 253, 210,\n\t\t190, 86, 232, 115, 116, 106, 219, 178, 248, 50, 82, 207, 185,\n\t\t151, 53, 106, 80, 171, 121, 215, 156, 162, 60, 229, 95, 242,\n\t\t135, 42, 23, 251, 48, 65, 252, 201, 28, 122, 2, 134, 28, 250,\n\t\t233, 107, 27, 214, 183, 156, 247, 145, 217, 178, 59, 205,\n\t\t195, 4, 145, 166, 219, 55, 209, 199, 225, 188, 141, 139, 239,\n\t\t76, 206, 194, 170, 17, 94, 243, 183, 214, 12, 20, 105, 113,\n\t\t0, 14, 194, 81, 155, 184, 195, 221, 249, 187, 99, 154, 36,\n\t\t168, 224, 143, 74, 17, 154, 217, 98, 73, 207, 51, 221, 82,\n\t\t49, 78, 8, 181, 122, 44, 192, 204, 241, 83, 134, 246, 45,\n\t\t121, 194, 39, 242, 200, 227, 169, 82, 133, 191, 40, 145, 137,\n\t\t158, 154, 54, 28, 180, 116, 199, 26, 243, 71, 252, 22, 126,\n\t\t16, 168, 95, 26, 164, 169, 236, 104, 222, 195, 3, 243, 91,\n\t\t114, 89, 44, 202, 201, 105, 181, 193, 155, 83, 114, 223, 41,\n\t\t75, 135, 174, 105, 30, 174, 130, 166, 191, 73, 233, 96, 22,\n\t\t181, 122, 40, 175, 218, 87, 86, 73, 233, 132, 226, 64, 155,\n\t\t163, 226, 100, 186, 220, 136, 222, 252, 202, 238, 56, 242,\n\t\t92, 215, 21, 175, 57, 218, 103, 101, 216, 238, 122, 178, 103,\n\t\t238, 219, 204, 46, 119, 205, 53, 141, 40, 76, 133, 187, 5,\n\t\t189, 225, 217, 157, 185, 242, 177, 60, 17, 34, 114, 231, 14,\n\t\t49, 255, 44, 109, 90, 250, 221, 5, 2, 117, 128, 233, 9, 177,\n\t\t99, 152, 252, 100, 1, 93, 207, 196, 31, 224, 241, 2, 221,\n\t\t117, 73, 130, 182, 136, 225, 206, 236, 118, 107, 172, 32,\n\t\t114, 254, 149, 120, 222, 76, 82, 110, 175, 74, 124, 10, 149,\n\t\t93, 200, 44, 221, 70, 229, 74, 135, 130, 169, 122, 0, 118,\n\t\t191, 129, 219, 186, 55, 120, 171, 234, 234, 147, 110, 11,\n\t\t85, 115, 202, 125, 107, 18, 102, 84, 101, 187, 207, 68, 88,\n\t\t172, 116, 114, 193, 179, 78, 229, 68, 48, 94, 225, 50, 215,\n\t\t223, 64, 231, 102, 37, 51, 191, 211, 233, 28, 202, 35, 233,\n\t\t223, 88, 211, 107, 213, 46, 42, 72, 170, 39, 205, 211, 231,\n\t\t55, 89, 106, 140, 52, 244, 219, 233, 218, 227, 214, 188, 169,\n\t\t36, 174, 191, 146, 165, 174, 40, 155, 116, 168, 6, 114, 122,\n\t\t223, 201, 85, 178, 14, 231, 206, 109, 132, 189, 214, 173,\n\t\t212, 166, 107, 244, 47, 83, 229, 166, 252, 200, 172, 18, 216,\n\t\t143, 6, 239, 249, 165, 35, 95, 10, 201, 81, 209, 254, 239,\n\t\t207, 68, 198, 47, 115, 19, 77, 95, 156, 153, 2, 107, 192,\n\t\t76, 210, 150, 213, 151, 51, 23, 92, 168, 114, 198, 232, 143,\n\t\t243, 37, 233, 183, 52, 65, 245, 89, 178, 220, 208, 13, 202,\n\t\t216, 137, 179, 17, 247, 45, 29, 242, 197, 17, 142, 109, 218,\n\t\t34, 195, 103, 192, 36, 100, 237, 17, 104, 29, 103, 40, 172,\n\t\t119, 81, 217, 30, 149, 67, 253, 218, 174, 150, 125, 227, 3,\n\t\t56, 227, 111, 49, 60, 18, 76, 213, 139, 204, 70, 139, 98,\n\t\t162, 48, 44, 243, 214, 222, 214, 139, 148, 97, 153, 174, 143,\n\t\t167, 51, 66, 2, 195, 97, 152, 46, 22, 67, 82, 249, 209, 181,\n\t\t101, 33, 108, 219, 150, 88, 200, 56, 246, 18, 139, 209, 12,\n\t\t192, 204, 67, 84, 193, 207, 48, 20, 151, 47, 181, 25, 40,\n\t\t142, 40, 76, 184, 184, 34, 124, 194, 128, 141, 215, 132, 11,\n\t\t37, 129, 79, 183, 176, 177, 149, 40, 162, 106, 100, 169, 206,\n\t\t208, 71, 35, 52, 190, 198, 59, 20, 55, 8, 156, 115, 227, 65,\n\t\t214, 172, 13, 223, 103, 176, 252, 132, 129, 230, 246, 19,\n\t\t181, 40, 110, 0, 138, 95, 224, 223, 64, 249, 220, 101, 48,\n\t\t158, 112, 25, 12, 249, 165, 101, 77, 92, 89, 46, 128, 58,\n\t\t248, 0, 155, 181, 217, 133, 249, 37, 136, 253, 212, 123, 110,\n\t\t202, 97, 44, 94, 229, 170, 97, 198, 241, 0, 133, 157, 245,\n\t\t143, 223, 75, 42, 28, 19, 21, 11, 207, 198, 71, 48, 23, 247,\n\t\t74, 239, 29, 96, 161, 192, 219, 9, 14, 176, 24, 90, 26, 241,\n\t\t235, 41, 244, 123, 30, 85, 71, 148, 209, 150, 101, 22, 133,\n\t\t245, 21, 87, 217, 104, 191, 137, 34, 222, 235, 210, 180, 97,\n\t\t221, 42, 215, 186, 224, 247, 248, 149, 80, 188, 254, 234,\n\t\t29, 217, 160, 105, 221, 180, 78, 124, 76, 179, 68, 238, 123,\n\t\t69, 74, 242, 72, 166, 253, 178, 144, 229, 121, 4, 27, 141,\n\t\t66, 69, 167, 7, 197, 46, 252, 145, 251, 238, 61, 65, 21, 108,\n\t\t52, 37, 97, 86, 233, 165, 73, 50, 174, 58, 38, 209, 120, 50,\n\t\t94, 138, 190, 234, 58, 33, 132, 119, 202, 24, 218, 105, 170,\n\t\t44, 109, 165, 143, 207, 44, 130, 53, 153, 12, 19, 174, 21,\n\t\t98, 169, 26, 30, 195, 53, 111, 122, 12, 13, 16, 2, 227, 34,\n\t\t129, 202, 26, 88, 177, 92, 20, 94, 9, 88, 210, 5, 102, 236,\n\t\t190, 135, 25, 176, 137, 60, 205, 107, 89, 81, 210, 231, 174,\n\t\t232, 48, 132, 126, 55, 102, 44, 147, 206, 68, 26, 203, 204,\n\t\t14, 150, 101, 66, 69, 42, 37, 14, 253, 208, 208, 24, 147,\n\t\t180, 70, 49, 187, 234, 231, 148, 23, 207, 112, 170, 116, 123,\n\t\t19, 105, 189, 252, 229, 77, 99, 203, 189, 238, 2, 39, 77,\n\t\t124, 154, 8, 92, 103, 121, 178, 83, 164, 164, 106, 213, 240,\n\t\t25, 223, 234, 3, 41, 215, 20, 205, 124, 180, 129, 180, 135,\n\t\t181, 125, 28, 149, 239, 200, 50, 242, 153, 12, 72, 82, 39,\n\t\t120, 93, 100, 2, 227, 143, 57, 46, 88, 72, 107, 10, 82, 144,\n\t\t184, 87, 69, 43, 53, 152, 242, 50, 145, 250, 41, 133, 114,\n\t\t201, 92, 172, 84, 191, 39, 5, 230, 152, 113, 147, 219, 248,\n\t\t118, 180, 168, 236, 190, 104, 184, 243, 180, 189, 124, 165,\n\t\t142, 144, 19, 227, 26, 254, 154, 108, 164, 40, 96, 246, 18,\n\t\t207, 251, 245, 45, 151, 78, 237, 185, 143, 240, 98, 8, 223,\n\t\t155, 154, 17, 233, 91, 251, 122, 22, 46, 106, 212, 198, 71,\n\t\t33, 96, 176, 52, 190, 37, 115, 114, 253, 200, 223, 57, 57,\n\t\t7, 223, 176, 59, 250, 132, 119, 194, 85, 130, 6, 180, 235,\n\t\t9, 104, 119, 248, 69, 165, 249, 168, 94, 88, 168, 147, 237,\n\t\t251, 105, 65, 5, 50, 80, 106, 129, 144, 175, 130, 169, 230,\n\t\t22, 37, 75, 132, 166, 178, 25, 169, 161, 116, 254, 149, 169,\n\t\t112, 144, 110, 210, 90, 98, 209, 0, 30, 213, 105, 12, 186,\n\t\t191, 20, 35, 123, 240, 234, 83, 125, 221, 217, 144, 66, 43,\n\t\t161, 52, 94, 88, 222, 32, 210, 144, 121, 5, 103, 30, 174,\n\t\t251, 19, 227, 186, 73, 40, 153, 246, 102, 28, 58, 37, 15,\n\t\t31, 184, 39, 5, 186, 42, 202, 195, 125, 143, 78, 185, 87,\n\t\t12, 70, 38, 111, 134, 213, 149, 161, 104, 117, 102, 235, 75,\n\t\t182, 185, 165, 187, 139, 239, 98, 173, 177, 108, 94, 253,\n\t\t64, 225, 111, 183, 136, 19, 86, 21, 42, 18, 65, 7, 78, 85,\n\t\t163, 62, 113, 210, 64, 16, 39, 10, 251, 0, 118, 248, 13, 16,\n\t\t203, 89, 83, 242, 181, 236, 190, 87, 121, 10, 111, 249, 23,\n\t\t45, 234, 90, 152, 84, 166, 50, 112, 85, 73, 205, 69, 240,\n\t\t53, 4, 216, 138, 175, 45, 89, 89, 136, 107, 160, 149, 83,\n\t\t204, 113, 120, 176, 184, 48, 176, 82, 201, 136, 126, 38, 120,\n\t\t9, 51, 110, 111, 110, 219, 186, 11, 81, 245, 51, 133, 227,\n\t\t214, 15, 110, 186, 88, 222, 146, 65, 103, 251, 232, 167, 173,\n\t\t173, 110, 136, 85, 103, 89, 233, 87, 181, 149, 85, 89, 211,\n\t\t135, 228, 85, 93, 105, 144, 164, 137, 140, 34, 71, 126, 161,\n\t\t73, 228, 219, 15, 73, 181, 8, 0, 191, 85, 205, 250, 163, 234,\n\t\t96, 58, 66, 179, 11, 203, 185, 168, 115, 89, 240, 31, 40,\n\t\t21, 127, 250, 85, 190, 117, 44, 20, 219, 228, 38, 21, 246,\n\t\t111, 173, 84, 168, 35, 52, 171, 80, 206, 165, 87, 161, 150,\n\t\t210, 168, 194, 119, 253, 78, 53, 87, 50, 84, 119, 174, 67,\n\t\t189, 102, 244, 59, 191, 138, 175, 92, 251, 41, 40, 6, 176,\n\t\t211, 140, 225, 175, 207, 102, 52, 181, 165, 157, 109, 141,\n\t\t124, 23, 24, 98, 227, 216, 55, 120, 53, 88, 7, 30, 226, 104,\n\t\t102, 23, 174, 101, 2, 219, 254, 74, 142, 186, 57, 145, 91,\n\t\t50, 154, 172, 116, 5, 108, 147, 110, 98, 159, 250, 70, 120,\n\t\t158, 22, 92, 83, 85, 102, 21, 73, 26, 240, 9, 149, 236, 134,\n\t\t47, 114, 11, 184, 193, 131, 249, 194, 31, 36, 103, 232, 207,\n\t\t241, 158, 249, 125, 126, 64, 102, 203, 143, 197, 24, 183,\n\t\t34, 179, 117, 81, 144, 191, 56, 216, 132, 185, 43, 251, 128,\n\t\t245, 223, 118, 145, 111, 20, 7, 203, 36, 43, 90, 111, 169,\n\t\t82, 180, 76, 54, 218, 42, 177, 149, 93, 243, 55, 153, 216,\n\t\t189, 4, 55, 176, 48, 125, 163, 135, 238, 0, 0, 75, 214, 126,\n\t\t164, 96, 156, 169, 49, 22, 7, 111, 249, 99, 125, 61, 253,\n\t\t152, 61, 254, 1, 110, 57, 232, 95, 176, 182, 129, 91, 134,\n\t\t58, 189, 198, 111, 67, 121, 159, 207, 0, 168, 167, 173, 16,\n\t\t242, 209, 90, 87, 115, 50, 206, 188, 115, 197, 249, 189, 54,\n\t\t163, 60, 125, 40, 11, 123, 49, 233, 19, 255, 110, 16, 128,\n\t\t32, 229, 25, 5, 204, 28, 5, 70, 12, 129, 251, 113, 22, 184,\n\t\t31, 199, 202, 80, 100, 11, 127, 222, 129, 107, 95, 16, 100,\n\t\t158, 226, 113, 77, 124, 152, 14, 10, 111, 42, 133, 206, 6,\n\t\t200, 103, 91, 78, 117, 246, 233, 33, 9, 219, 112, 135, 127,\n\t\t255, 208, 124, 59, 124, 223, 229, 217, 115, 124, 12, 235,\n\t\t6, 181, 159, 79, 237, 126, 59, 255, 184, 252, 169, 249, 118,\n\t\t152, 117, 121, 86, 52, 159, 191, 59, 182, 109, 181, 251, 225,\n\t\t135, 151, 151, 151, 197, 203, 114, 81, 214, 135, 31, 124,\n\t\t215, 117, 251, 156, 223, 205, 190, 165, 232, 229, 207, 101,\n\t\t247, 249, 187, 62, 230, 108, 103, 219, 239, 62, 46, 255, 242,\n\t\t113, 249, 83, 21, 182, 199, 217, 62, 205, 178, 207, 223, 125,\n\t\t244, 151, 251, 253, 254, 187, 89, 242, 249, 187, 159, 215,\n\t\t139, 96, 189, 90, 108, 130, 204, 89, 46, 130, 167, 217, 114,\n\t\t177, 246, 252, 222, 75, 150, 219, 254, 191, 193, 223, 220,\n\t\t217, 106, 225, 175, 103, 254, 226, 105, 179, 154, 109, 22,\n\t\t126, 48, 219, 206, 252, 133, 247, 180, 252, 247, 119, 63,\n\t\t16, 198, 125, 169, 31, 151, 127, 121, 120, 180, 213, 82, 31,\n\t\t212, 91, 84, 231, 105, 17, 182, 83, 225, 237, 173, 22, 177,\n\t\t42, 235, 55, 176, 203, 106, 182, 226, 237, 210, 180, 117,\n\t\t249, 21, 137, 150, 113, 103, 254, 113, 117, 179, 146, 89,\n\t\t104, 158, 242, 73, 157, 158, 161, 219, 144, 174, 44, 217,\n\t\t74, 247, 55, 148, 143, 71, 184, 87, 197, 10, 62, 216, 192,\n\t\t185, 173, 218, 175, 173, 79, 190, 161, 136, 95, 217, 21, 157,\n\t\t213, 204, 89, 113, 65, 34, 78, 235, 56, 67, 179, 250, 243,\n\t\t119, 203, 239, 196, 96, 161, 245, 67, 83, 101, 223, 209, 9,\n\t\t73, 111, 105, 218, 95, 138, 247, 14, 138, 115, 3, 240, 176,\n\t\t150, 78, 30, 121, 11, 58, 137, 36, 78, 38, 153, 103, 135,\n\t\t224, 79, 3, 141, 21, 193, 200, 108, 246, 94, 230, 35, 145,\n\t\t36, 0, 35, 60, 57, 68, 71, 66, 137, 63, 115, 255, 134, 195,\n\t\t201, 191, 115, 119, 214, 199, 244, 229, 113, 165, 198, 239,\n\t\t217, 208, 167, 207, 232, 46, 14, 162, 8, 77, 47, 190, 173,\n\t\t186, 153, 231, 86, 192, 201, 3, 211, 28, 215, 128, 151, 250,\n\t\t97, 97, 88, 135, 69, 140, 56, 184, 36, 39, 74, 191, 37, 235,\n\t\t15, 231, 239, 112, 49, 212, 48, 91, 55, 74, 246, 251, 103,\n\t\t122, 110, 111, 226, 203, 62, 158, 191, 157, 123, 219, 39,\n\t\t141, 119, 17, 254, 59, 60, 208, 249, 22, 102, 167, 1, 109,\n\t\t83, 227, 131, 135, 52, 36, 30, 191, 228, 167, 172, 77, 171,\n\t\t12, 125, 145, 190, 130, 252, 75, 175, 196, 47, 120, 72, 136,\n\t\t31, 63, 63, 120, 15, 95, 30, 217, 76, 140, 240, 109, 47, 97,\n\t\t251, 7, 120, 52, 86, 22, 220, 118, 215, 166, 12, 196, 105,\n\t\t118, 92, 99, 212, 85, 97, 145, 156, 213, 145, 23, 33, 114,\n\t\t154, 220, 106, 218, 136, 110, 208, 22, 247, 174, 12, 91, 175,\n\t\t229, 47, 88, 109, 130, 143, 114, 57, 217, 193, 102, 134, 239,\n\t\t186, 98, 60, 159, 43, 7, 47, 56, 233, 71, 204, 55, 132, 22,\n\t\t221, 120, 101, 92, 42, 52, 173, 117, 92, 85, 200, 206, 5,\n\t\t198, 198, 22, 171, 164, 112, 171, 177, 188, 26, 17, 254, 30,\n\t\t169, 182, 44, 240, 27, 158, 180, 72, 136, 143, 50, 172, 228,\n\t\t197, 158, 114, 97, 142, 79, 22, 22, 135, 79, 168, 120, 52,\n\t\t136, 52, 140, 113, 254, 92, 151, 47, 13, 122, 184, 0, 69,\n\t\t194, 195, 42, 118, 192, 195, 85, 206, 145, 93, 211, 233, 88,\n\t\t117, 50, 154, 195, 96, 215, 132, 93, 160, 94, 230, 81, 227,\n\t\t88, 189, 97, 25, 101, 88, 20, 151, 134, 143, 84, 110, 90,\n\t\t211, 219, 170, 40, 219, 97, 106, 69, 133, 206, 83, 77, 212,\n\t\t189, 247, 95, 34, 3, 61, 150, 199, 161, 150, 226, 128, 206,\n\t\t234, 33, 3, 186, 135, 203, 124, 28, 224, 46, 93, 24, 150,\n\t\t128, 246, 96, 67, 103, 5, 189, 221, 237, 88, 121, 77, 150,\n\t\t226, 169, 193, 227, 41, 143, 238, 48, 219, 36, 150, 209, 203,\n\t\t142, 83, 222, 139, 127, 115, 103, 198, 68, 100, 204, 222,\n\t\t41, 79, 99, 124, 81, 180, 8, 235, 79, 51, 233, 193, 111, 237,\n\t\t163, 14, 173, 195, 251, 195, 177, 16, 201, 235, 48, 31, 238,\n\t\t108, 175, 156, 255, 142, 95, 82, 212, 186, 162, 236, 117,\n\t\t183, 28, 84, 158, 214, 161, 122, 128, 121, 58, 19, 59, 184,\n\t\t50, 57, 91, 9, 243, 168, 79, 69, 209, 119, 14, 78, 91, 135,\n\t\t194, 73, 116, 102, 69, 254, 196, 6, 223, 104, 197, 79, 45,\n\t\t106, 103, 216, 158, 133, 78, 10, 58, 77, 54, 26, 25, 116,\n\t\t72, 190, 13, 105, 124, 236, 119, 237, 80, 54, 49, 236, 237,\n\t\t222, 36, 107, 106, 210, 147, 164, 12, 87, 123, 17, 151, 255,\n\t\t247, 232, 56, 141, 117, 84, 82, 78, 75, 214, 210, 71, 122,\n\t\t73, 202, 239, 217, 199, 222, 193, 157, 26, 107, 63, 106, 110,\n\t\t117, 160, 230, 238, 158, 99, 115, 3, 11, 123, 65, 74, 21,\n\t\t215, 229, 56, 209, 250, 97, 191, 147, 149, 47, 226, 228, 17,\n\t\t232, 160, 19, 126, 136, 57, 157, 170, 106, 60, 129, 65, 87,\n\t\t238, 130, 126, 168, 127, 3, 111, 112, 174, 103, 174, 226,\n\t\t81, 105, 124, 124, 254, 117, 156, 241, 13, 206, 119, 135,\n\t\t138, 81, 31, 45, 194, 111, 87, 236, 138, 210, 110, 201, 150,\n\t\t48, 172, 188, 13, 74, 186, 99, 2, 23, 75, 174, 35, 50, 158,\n\t\t190, 196, 182, 100, 164, 108, 3, 237, 240, 219, 244, 201,\n\t\t101, 70, 180, 128, 167, 35, 8, 65, 27, 70, 141, 120, 122,\n\t\t129, 135, 245, 108, 217, 139, 81, 206, 240, 19, 62, 47, 44,\n\t\t86, 143, 236, 53, 19, 201, 112, 221, 148, 97, 18, 208, 184,\n\t\t228, 197, 118, 6, 252, 198, 183, 194, 158, 8, 54, 164, 82,\n\t\t75, 227, 213, 35, 189, 33, 138, 18, 135, 192, 100, 72, 51,\n\t\t27, 254, 194, 181, 53, 168, 240, 182, 152, 2, 169, 19, 159,\n\t\t210, 29, 203, 131, 170, 176, 16, 143, 28, 91, 12, 78, 197,\n\t\t32, 49, 27, 254, 226, 105, 178, 177, 0, 225, 184, 176, 114,\n\t\t184, 70, 99, 35, 227, 249, 145, 158, 119, 149, 102, 153, 234,\n\t\t8, 144, 13, 37, 202, 225, 132, 41, 247, 142, 92, 8, 54, 240,\n\t\t226, 107, 170, 93, 13, 232, 169, 251, 104, 202, 249, 236,\n\t\t212, 217, 4, 101, 179, 33, 225, 66, 78, 86, 165, 40, 1, 88,\n\t\t57, 36, 90, 213, 136, 78, 203, 186, 36, 42, 68, 97, 147, 246,\n\t\t74, 26, 201, 240, 48, 255, 27, 218, 121, 132, 224, 80, 151,\n\t\t47, 59, 15, 42, 177, 13, 35, 135, 142, 199, 127, 196, 63,\n\t\t170, 144, 219, 245, 65, 154, 182, 64, 67, 253, 66, 58, 226,\n\t\t93, 132, 223, 162, 176, 254, 85, 14, 159, 232, 119, 136, 138,\n\t\t7, 213, 232, 9, 53, 229, 164, 26, 222, 203, 233, 68, 168,\n\t\t125, 65, 168, 208, 197, 191, 40, 172, 127, 92, 244, 57, 194,\n\t\t180, 64, 245, 92, 77, 114, 246, 217, 41, 157, 222, 25, 253,\n\t\t27, 87, 143, 213, 197, 137, 234, 144, 219, 199, 45, 204, 114,\n\t\t138, 115, 170, 158, 15, 79, 170, 210, 116, 101, 127, 207,\n\t\t196, 14, 75, 253, 37, 12, 162, 104, 92, 44, 29, 211, 38, 186,\n\t\t155, 158, 240, 186, 206, 212, 242, 112, 228, 13, 93, 43, 149,\n\t\t133, 139, 64, 226, 124, 190, 43, 49, 21, 51, 137, 49, 113,\n\t\t104, 68, 77, 27, 182, 105, 76, 111, 166, 18, 138, 18, 182,\n\t\t86, 235, 173, 9, 154, 50, 224, 124, 220, 97, 247, 168, 105,\n\t\t35, 12, 134, 190, 92, 144, 193, 191, 167, 226, 140, 173, 75,\n\t\t143, 245, 193, 91, 59, 107, 229, 94, 61, 101, 42, 31, 218,\n\t\t196, 107, 211, 47, 154, 33, 129, 218, 77, 112, 66, 73, 174,\n\t\t201, 82, 45, 156, 147, 145, 26, 47, 163, 60, 139, 3, 7, 57,\n\t\t179, 147, 198, 101, 97, 92, 249, 92, 4, 220, 248, 113, 1,\n\t\t220, 166, 67, 215, 41, 193, 29, 62, 227, 214, 158, 153, 121,\n\t\t27, 79, 111, 247, 25, 62, 213, 71, 49, 244, 167, 60, 236,\n\t\t232, 64, 37, 216, 4, 139, 167, 109, 213, 61, 158, 153, 240,\n\t\t100, 57, 9, 239, 73, 86, 130, 40, 248, 146, 134, 211, 137,\n\t\t70, 51, 150, 61, 220, 208, 22, 108, 214, 96, 193, 163, 67,\n\t\t227, 43, 106, 234, 242, 101, 70, 183, 239, 131, 137, 98, 108,\n\t\t157, 190, 204, 64, 46, 110, 198, 7, 36, 32, 222, 212, 229,\n\t\t139, 28, 108, 234, 242, 197, 204, 71, 27, 23, 216, 220, 253,\n\t\t84, 118, 77, 44, 2, 246, 128, 138, 65, 225, 86, 235, 137,\n\t\t125, 29, 175, 110, 46, 193, 32, 244, 16, 140, 128, 136, 254,\n\t\t223, 211, 188, 42, 235, 54, 44, 90, 33, 182, 115, 201, 186,\n\t\t8, 54, 32, 47, 26, 193, 200, 69, 19, 90, 33, 88, 40, 18, 32,\n\t\t16, 224, 244, 155, 245, 6, 118, 250, 60, 49, 168, 77, 120,\n\t\t121, 179, 211, 111, 214, 112, 193, 191, 170, 211, 231, 201,\n\t\t125, 156, 94, 228, 115, 181, 211, 203, 217, 223, 232, 244,\n\t\t87, 91, 239, 38, 167, 231, 132, 254, 237, 156, 158, 19, 194,\n\t\t214, 233, 159, 158, 60, 216, 233, 179, 131, 65, 109, 194,\n\t\t203, 155, 157, 254, 233, 201, 7, 11, 254, 85, 157, 62, 59,\n\t\t220, 199, 233, 69, 62, 87, 59, 189, 156, 253, 141, 78, 127,\n\t\t181, 245, 110, 114, 122, 78, 232, 223, 206, 233, 57, 33, 108,\n\t\t157, 222, 243, 158, 158, 96, 175, 239, 50, 131, 222, 132,\n\t\t151, 55, 123, 189, 231, 187, 46, 88, 242, 175, 234, 246, 93,\n\t\t118, 31, 183, 23, 249, 92, 237, 246, 114, 246, 55, 186, 253,\n\t\t213, 230, 187, 201, 237, 57, 161, 127, 59, 183, 231, 132,\n\t\t128, 221, 94, 164, 255, 53, 157, 75, 111, 131, 171, 219, 143,\n\t\t152, 253, 46, 46, 251, 22, 127, 189, 167, 179, 94, 163, 165,\n\t\t91, 220, 244, 183, 247, 81, 179, 131, 178, 151, 248, 139,\n\t\t37, 3, 41, 153, 214, 34, 131, 126, 254, 10, 236, 167, 71,\n\t\t83, 6, 105, 68, 15, 81, 240, 247, 122, 90, 49, 22, 77, 172,\n\t\t102, 12, 172, 50, 26, 37, 19, 41, 117, 18, 110, 172, 10, 146,\n\t\t151, 24, 120, 14, 75, 35, 7, 50, 255, 59, 78, 143, 219, 8,\n\t\t203, 79, 178, 79, 145, 54, 199, 242, 197, 68, 8, 78, 206,\n\t\t91, 153, 136, 249, 21, 100, 28, 113, 13, 67, 184, 77, 125,\n\t\t130, 29, 153, 160, 121, 211, 38, 126, 97, 139, 247, 178, 255,\n\t\t255, 119, 22, 59, 195, 129, 19, 37, 84, 238, 25, 253, 255,\n\t\t34, 120, 252, 142, 190, 35, 104, 226, 243, 119, 254, 144,\n\t\t144, 165, 5, 138, 195, 234, 243, 119, 88, 234, 33, 57, 79,\n\t\t91, 84, 103, 105, 158, 182, 159, 191, 243, 232, 142, 242,\n\t\t213, 108, 115, 244, 253, 159, 87, 51, 47, 32, 127, 253, 229,\n\t\t209, 247, 129, 83, 2, 176, 158, 80, 215, 94, 211, 32, 240,\n\t\t29, 7, 225, 85, 134, 197, 57, 140, 109, 135, 146, 88, 52,\n\t\t235, 36, 172, 191, 130, 241, 101, 88, 200, 130, 169, 164,\n\t\t226, 1, 2, 249, 83, 69, 48, 51, 109, 32, 241, 131, 96, 206,\n\t\t254, 229, 181, 167, 207, 109, 18, 105, 34, 152, 8, 133, 109,\n\t\t172, 74, 3, 67, 138, 192, 199, 55, 242, 209, 6, 22, 67, 145,\n\t\t82, 92, 49, 80, 10, 97, 69, 165, 211, 46, 249, 193, 2, 3,\n\t\t161, 68, 50, 15, 16, 80, 4, 10, 79, 163, 138, 223, 107, 84,\n\t\t233, 133, 158, 141, 255, 249, 205, 98, 139, 168, 44, 41, 180,\n\t\t88, 53, 17, 33, 190, 24, 76, 12, 5, 21, 136, 66, 109, 214,\n\t\t113, 88, 39, 111, 90, 10, 181, 92, 167, 26, 71, 137, 238,\n\t\t243, 75, 89, 39, 4, 222, 69, 53, 10, 191, 58, 253, 111, 221,\n\t\t114, 61, 151, 154, 165, 213, 110, 216, 143, 49, 245, 93, 17,\n\t\t95, 251, 97, 145, 190, 198, 63, 30, 165, 77, 68, 174, 124,\n\t\t85, 38, 166, 90, 224, 229, 179, 190, 252, 138, 191, 29, 97,\n\t\t198, 165, 211, 251, 214, 185, 187, 127, 223, 182, 117, 67,\n\t\t41, 119, 188, 149, 67, 45, 118, 124, 103, 186, 102, 83, 44,\n\t\t25, 184, 166, 129, 47, 219, 137, 202, 228, 117, 114, 59, 0,\n\t\t91, 251, 242, 132, 172, 109, 218, 102, 72, 218, 254, 194,\n\t\t238, 129, 197, 4, 205, 41, 18, 104, 200, 102, 230, 37, 120,\n\t\t57, 18, 227, 137, 186, 150, 175, 39, 76, 149, 77, 237, 248,\n\t\t25, 168, 190, 31, 31, 133, 43, 161, 196, 154, 208, 203, 223,\n\t\t135, 37, 62, 118, 16, 207, 135, 36, 85, 93, 151, 247, 68,\n\t\t119, 249, 248, 172, 219, 69, 36, 123, 172, 80, 58, 228, 84,\n\t\t212, 96, 248, 0, 7, 93, 119, 116, 102, 94, 213, 61, 206, 128,\n\t\t36, 119, 230, 10, 12, 191, 231, 252, 199, 214, 133, 7, 13,\n\t\t239, 203, 178, 213, 107, 196, 86, 3, 226, 247, 22, 52, 213,\n\t\t39, 69, 1, 206, 61, 28, 158, 112, 161, 234, 170, 73, 66, 237,\n\t\t201, 126, 46, 241, 174, 176, 197, 26, 50, 168, 35, 222, 214,\n\t\t69, 238, 39, 96, 164, 162, 41, 69, 5, 147, 61, 57, 230, 50,\n\t\t4, 110, 52, 119, 154, 31, 156, 222, 119, 179, 240, 213, 254,\n\t\t208, 11, 93, 240, 135, 91, 98, 154, 31, 248, 237, 160, 83,\n\t\t222, 195, 201, 209, 150, 21, 144, 83, 14, 102, 42, 11, 109,\n\t\t96, 51, 150, 70, 106, 3, 20, 8, 197, 49, 125, 161, 64, 76,\n\t\t211, 22, 155, 32, 238, 235, 117, 247, 234, 222, 56, 222, 51,\n\t\t210, 165, 138, 46, 229, 5, 85, 103, 88, 16, 30, 5, 83, 231,\n\t\t178, 128, 153, 44, 156, 36, 221, 122, 23, 72, 183, 61, 227,\n\t\t20, 85, 44, 235, 138, 239, 188, 62, 126, 124, 124, 230, 159,\n\t\t175, 84, 202, 179, 186, 77, 87, 142, 156, 66, 4, 238, 5, 166,\n\t\t18, 227, 184, 100, 47, 172, 165, 64, 60, 243, 31, 111, 53,\n\t\t19, 17, 205, 218, 78, 64, 153, 38, 21, 195, 221, 27, 151,\n\t\t251, 123, 65, 110, 118, 40, 140, 52, 3, 30, 187, 240, 121,\n\t\t116, 240, 68, 220, 156, 104, 106, 122, 19, 76, 103, 124, 20,\n\t\t156, 219, 144, 178, 80, 99, 216, 42, 105, 193, 133, 244, 20,\n\t\t214, 5, 210, 104, 115, 101, 61, 213, 126, 232, 218, 43, 176,\n\t\t244, 28, 167, 20, 167, 80, 2, 122, 187, 186, 52, 173, 214,\n\t\t192, 210, 64, 165, 77, 149, 89, 22, 217, 43, 216, 119, 11,\n\t\t189, 20, 156, 99, 74, 39, 10, 229, 132, 78, 174, 0, 222, 230,\n\t\t114, 180, 122, 3, 37, 154, 118, 182, 235, 112, 57, 95, 160,\n\t\t114, 93, 27, 124, 29, 33, 39, 216, 163, 140, 161, 238, 195,\n\t\t117, 74, 51, 183, 179, 212, 154, 255, 118, 150, 163, 85, 238,\n\t\t206, 150, 115, 191, 65, 193, 84, 195, 164, 235, 105, 64, 88,\n\t\t64, 7, 71, 19, 61, 14, 229, 112, 102, 7, 14, 201, 111, 39,\n\t\t46, 79, 69, 187, 91, 146, 131, 113, 82, 154, 76, 34, 230,\n\t\t60, 132, 213, 176, 59, 145, 207, 205, 167, 3, 73, 101, 93,\n\t\t29, 195, 162, 217, 121, 207, 47, 105, 82, 190, 52, 59, 15,\n\t\t172, 162, 105, 255, 159, 235, 126, 188, 92, 22, 97, 28, 151,\n\t\t117, 146, 150, 197, 76, 209, 125, 185, 119, 218, 215, 10,\n\t\t241, 218, 103, 73, 210, 89, 12, 249, 156, 152, 107, 197, 87,\n\t\t240, 46, 195, 8, 11, 224, 38, 48, 210, 9, 3, 118, 42, 230,\n\t\t238, 65, 46, 135, 175, 244, 100, 143, 3, 126, 163, 162, 70,\n\t\t97, 18, 215, 167, 60, 186, 2, 65, 189, 76, 156, 221, 25, 70,\n\t\t124, 234, 120, 201, 35, 187, 92, 167, 190, 19, 43, 30, 147,\n\t\t151, 66, 220, 40, 51, 30, 141, 126, 47, 39, 156, 161, 69,\n\t\t199, 169, 76, 230, 143, 61, 66, 75, 155, 84, 84, 122, 134,\n\t\t101, 216, 133, 250, 195, 131, 69, 97, 120, 250, 97, 40, 82,\n\t\t158, 134, 24, 190, 63, 254, 102, 78, 100, 66, 67, 202, 35,\n\t\t29, 129, 97, 231, 152, 170, 240, 144, 22, 56, 219, 180, 43,\n\t\t136, 235, 211, 170, 65, 65, 187, 85, 225, 1, 209, 149, 226,\n\t\t137, 155, 61, 7, 63, 10, 106, 229, 66, 236, 140, 93, 202,\n\t\t45, 93, 198, 224, 7, 83, 31, 160, 215, 92, 56, 193, 206, 43,\n\t\t13, 226, 73, 223, 134, 243, 71, 190, 224, 215, 233, 173, 92,\n\t\t152, 38, 170, 101, 137, 95, 91, 240, 45, 175, 252, 145, 239,\n\t\t20, 24, 249, 93, 183, 39, 27, 231, 147, 167, 116, 102, 156,\n\t\t165, 192, 177, 131, 25, 53, 25, 192, 201, 88, 28, 15, 31,\n\t\t199, 210, 204, 184, 203, 20, 55, 149, 18, 168, 147, 243, 220,\n\t\t199, 187, 77, 52, 147, 198, 162, 251, 8, 134, 99, 199, 161,\n\t\t70, 254, 76, 169, 124, 9, 98, 72, 0, 239, 220, 36, 6, 32,\n\t\t95, 39, 181, 62, 116, 198, 55, 78, 188, 211, 139, 107, 74,\n\t\t242, 36, 91, 96, 113, 178, 96, 17, 192, 28, 77, 158, 160,\n\t\t179, 253, 114, 194, 244, 75, 102, 23, 184, 180, 43, 29, 1,\n\t\t40, 77, 37, 16, 138, 107, 114, 80, 93, 100, 182, 199, 242,\n\t\t26, 112, 152, 225, 45, 218, 242, 167, 26, 138, 86, 252, 91,\n\t\t180, 5, 148, 166, 18, 92, 22, 81, 152, 28, 204, 29, 95, 175,\n\t\t175, 94, 93, 43, 249, 158, 43, 225, 59, 4, 27, 249, 59, 4,\n\t\t118, 223, 29, 144, 142, 117, 68, 97, 131, 122, 46, 186, 222,\n\t\t191, 23, 150, 124, 189, 88, 218, 73, 19, 181, 197, 140, 214,\n\t\t69, 237, 96, 216, 73, 76, 202, 0, 79, 191, 202, 59, 150, 214,\n\t\t202, 134, 165, 245, 168, 63, 42, 6, 254, 114, 254, 192, 164,\n\t\t78, 243, 176, 126, 181, 59, 73, 41, 100, 249, 229, 88, 163,\n\t\t253, 151, 225, 227, 160, 192, 43, 121, 249, 205, 182, 223,\n\t\t113, 221, 181, 31, 199, 172, 184, 6, 197, 101, 145, 76, 202,\n\t\t200, 48, 128, 148, 9, 146, 82, 126, 121, 171, 156, 193, 42,\n\t\t136, 214, 254, 80, 228, 41, 142, 81, 211, 152, 165, 244, 183,\n\t\t225, 102, 21, 72, 89, 64, 25, 133, 87, 183, 74, 232, 161,\n\t\t13, 90, 174, 88, 113, 105, 177, 47, 205, 226, 121, 155, 208,\n\t\t143, 182, 60, 61, 36, 27, 151, 126, 179, 96, 222, 38, 220,\n\t\t70, 172, 160, 151, 176, 46, 210, 226, 192, 248, 208, 15, 70,\n\t\t67, 157, 75, 236, 185, 27, 41, 23, 36, 161, 248, 74, 16, 146,\n\t\t255, 26, 245, 180, 156, 201, 242, 9, 185, 46, 43, 49, 9, 139,\n\t\t131, 88, 93, 32, 71, 188, 12, 70, 11, 147, 28, 144, 136, 194,\n\t\t155, 91, 213, 24, 37, 190, 183, 28, 196, 195, 251, 106, 166,\n\t\t149, 72, 63, 110, 205, 229, 129, 228, 227, 95, 188, 69, 129,\n\t\t33, 114, 17, 167, 142, 122, 226, 208, 54, 185, 46, 147, 167,\n\t\t135, 149, 55, 164, 223, 170, 58, 47, 241, 61, 127, 117, 89,\n\t\t252, 235, 148, 71, 101, 91, 151, 197, 208, 177, 250, 154,\n\t\t129, 159, 230, 62, 23, 120, 160, 183, 52, 207, 116, 168, 165,\n\t\t174, 250, 82, 113, 103, 198, 201, 100, 181, 183, 22, 152,\n\t\t25, 200, 80, 13, 93, 109, 104, 181, 192, 235, 141, 61, 238,\n\t\t85, 71, 51, 113, 161, 120, 170, 97, 108, 202, 244, 140, 49,\n\t\t123, 137, 187, 122, 169, 187, 101, 239, 146, 180, 201, 211,\n\t\t166, 73, 163, 12, 73, 245, 93, 113, 236, 57, 170, 217, 34,\n\t\t206, 202, 70, 119, 205, 252, 184, 132, 168, 169, 52, 40, 160,\n\t\t212, 27, 186, 238, 202, 221, 6, 128, 205, 227, 24, 5, 10,\n\t\t208, 141, 182, 73, 216, 247, 146, 2, 171, 217, 81, 248, 238,\n\t\t24, 37, 125, 218, 199, 137, 74, 202, 107, 105, 144, 192, 223,\n\t\t4, 62, 35, 84, 186, 194, 229, 118, 153, 172, 128, 83, 182,\n\t\t31, 144, 143, 150, 40, 144, 145, 248, 58, 217, 38, 145, 194,\n\t\t12, 22, 49, 222, 198, 81, 188, 87, 137, 1, 33, 125, 215, 95,\n\t\t250, 235, 129, 84, 236, 7, 189, 32, 216, 248, 43, 40, 50,\n\t\t172, 80, 50, 222, 20, 200, 74, 93, 162, 117, 28, 73, 172,\n\t\t96, 1, 35, 47, 217, 71, 10, 41, 164, 195, 200, 71, 222, 146,\n\t\t17, 242, 157, 160, 27, 7, 171, 53, 176, 161, 225, 67, 226,\n\t\t161, 120, 239, 201, 246, 69, 40, 64, 17, 207, 7, 22, 44, 140,\n\t\t146, 164, 15, 121, 28, 29, 36, 213, 218, 143, 151, 131, 84,\n\t\t82, 15, 184, 13, 214, 43, 23, 82, 218, 126, 191, 95, 198,\n\t\t137, 36, 216, 126, 143, 80, 20, 74, 172, 96, 217, 246, 123,\n\t\t180, 13, 61, 153, 20, 16, 47, 88, 46, 247, 238, 32, 158, 216,\n\t\t241, 109, 124, 47, 6, 77, 186, 223, 38, 27, 197, 164, 251,\n\t\t32, 230, 76, 74, 56, 105, 132, 243, 34, 55, 218, 72, 148,\n\t\t128, 108, 171, 39, 207, 247, 54, 99, 80, 225, 122, 189, 173,\n\t\t183, 245, 182, 62, 36, 26, 234, 255, 145, 69, 75, 246, 201,\n\t\t30, 9, 140, 96, 201, 80, 140, 226, 253, 90, 36, 4, 4, 91,\n\t\t111, 251, 127, 198, 10, 140, 157, 157, 23, 121, 200, 135,\n\t\t26, 42, 110, 147, 79, 114, 43, 88, 199, 219, 56, 228, 249,\n\t\t104, 154, 192, 83, 20, 69, 72, 160, 131, 60, 109, 229, 6,\n\t\t110, 112, 249, 35, 155, 22, 255, 138, 94, 247, 117, 152, 163,\n\t\t102, 86, 213, 229, 161, 70, 77, 227, 68, 97, 237, 52, 109,\n\t\t157, 86, 168, 57, 239, 235, 50, 231, 183, 55, 14, 241, 213,\n\t\t35, 87, 119, 182, 37, 248, 214, 157, 185, 151, 203, 31, 223,\n\t\t145, 247, 130, 113, 156, 158, 219, 227, 175, 108, 235, 225,\n\t\t1, 94, 162, 62, 166, 73, 130, 10, 126, 164, 172, 92, 228,\n\t\t204, 172, 109, 154, 186, 229, 235, 53, 45, 201, 149, 75, 246,\n\t\t210, 113, 29, 227, 7, 189, 249, 41, 32, 171, 65, 170, 118,\n\t\t158, 136, 187, 8, 11, 163, 148, 217, 98, 77, 238, 230, 186,\n\t\t229, 82, 46, 65, 63, 234, 21, 91, 128, 91, 36, 234, 102, 218,\n\t\t126, 240, 28, 214, 206, 161, 215, 61, 42, 218, 79, 171, 32,\n\t\t65, 135, 57, 176, 85, 55, 120, 156, 249, 193, 199, 57, 135,\n\t\t78, 148, 223, 129, 251, 81, 147, 83, 255, 102, 35, 241, 144,\n\t\t126, 63, 242, 186, 28, 62, 104, 72, 175, 168, 17, 106, 24,\n\t\t22, 105, 30, 182, 40, 25, 86, 179, 72, 66, 175, 16, 168, 129,\n\t\t204, 188, 102, 70, 234, 62, 75, 139, 125, 90, 164, 45, 122,\n\t\t190, 58, 199, 101, 129, 173, 118, 133, 115, 78, 127, 105,\n\t\t158, 242, 148, 183, 75, 210, 205, 28, 23, 110, 123, 221, 21,\n\t\t197, 90, 182, 9, 9, 237, 42, 123, 70, 164, 173, 125, 78, 136,\n\t\t115, 243, 187, 172, 134, 126, 67, 254, 146, 228, 0, 255, 96,\n\t\t30, 108, 208, 161, 121, 43, 12, 61, 120, 230, 211, 163, 15,\n\t\t54, 8, 211, 112, 22, 151, 55, 180, 67, 57, 118, 229, 182,\n\t\t196, 197, 126, 113, 194, 52, 14, 32, 151, 126, 65, 8, 68,\n\t\t29, 29, 168, 91, 27, 237, 246, 91, 222, 178, 115, 193, 176,\n\t\t43, 88, 217, 169, 106, 154, 55, 180, 156, 240, 87, 42, 2,\n\t\t186, 132, 180, 224, 226, 129, 126, 160, 48, 27, 102, 224,\n\t\t85, 126, 182, 247, 204, 145, 109, 237, 50, 95, 234, 63, 202,\n\t\t250, 207, 13, 203, 5, 28, 235, 125, 118, 106, 142, 202, 86,\n\t\t218, 97, 41, 57, 101, 91, 54, 241, 79, 221, 216, 84, 230,\n\t\t119, 203, 78, 115, 144, 207, 45, 59, 199, 161, 240, 97, 59,\n\t\t6, 100, 195, 61, 77, 254, 43, 67, 202, 68, 46, 33, 212, 104,\n\t\t69, 98, 195, 202, 235, 152, 75, 139, 169, 58, 31, 33, 101,\n\t\t74, 62, 210, 39, 170, 229, 217, 143, 83, 217, 144, 84, 203,\n\t\t225, 74, 53, 78, 230, 19, 20, 169, 21, 139, 13, 126, 175,\n\t\t101, 111, 165, 74, 86, 170, 160, 74, 146, 8, 148, 104, 57,\n\t\t154, 102, 3, 103, 77, 254, 107, 213, 104, 206, 37, 40, 81,\n\t\t43, 18, 27, 160, 95, 199, 220, 74, 133, 172, 76, 65, 133,\n\t\t36, 81, 45, 207, 106, 196, 207, 6, 247, 80, 230, 43, 149,\n\t\t103, 202, 34, 182, 99, 157, 48, 108, 6, 225, 10, 206, 86,\n\t\t106, 99, 5, 138, 141, 24, 39, 170, 133, 217, 79, 73, 144,\n\t\t217, 7, 77, 254, 43, 149, 55, 145, 75, 208, 159, 73, 36, 60,\n\t\t203, 113, 29, 115, 43, 21, 178, 50, 5, 21, 146, 68, 181, 60,\n\t\t219, 105, 19, 58, 67, 2, 103, 191, 82, 129, 230, 76, 130,\n\t\t254, 244, 2, 209, 137, 152, 171, 120, 91, 169, 143, 21, 41,\n\t\t168, 143, 36, 170, 197, 89, 206, 236, 208, 73, 28, 48, 247,\n\t\t149, 202, 51, 230, 17, 125, 79, 39, 14, 155, 42, 186, 134,\n\t\t181, 149, 234, 88, 137, 162, 231, 225, 68, 200, 82, 22, 115,\n\t\t79, 108, 154, 9, 202, 124, 165, 226, 76, 89, 196, 222, 66,\n\t\t39, 12, 155, 203, 186, 130, 179, 149, 218, 88, 129, 98, 87,\n\t\t129, 19, 47, 116, 5, 129, 220, 226, 137, 241, 171, 176, 237,\n\t\t100, 220, 89, 161, 221, 29, 192, 98, 168, 235, 18, 196, 63,\n\t\t236, 118, 234, 199, 70, 46, 190, 97, 121, 248, 46, 212, 34,\n\t\t160, 5, 94, 185, 195, 201, 34, 15, 51, 139, 13, 169, 4, 37,\n\t\t93, 120, 200, 58, 8, 189, 9, 46, 209, 169, 109, 203, 130,\n\t\t45, 183, 208, 177, 227, 196, 183, 121, 232, 16, 209, 213,\n\t\t125, 25, 229, 178, 200, 203, 36, 204, 156, 178, 66, 197, 89,\n\t\t154, 163, 227, 223, 205, 200, 243, 64, 226, 116, 108, 34,\n\t\t111, 72, 121, 165, 87, 150, 16, 194, 97, 236, 187, 79, 59,\n\t\t148, 76, 28, 39, 27, 198, 107, 110, 224, 62, 243, 91, 49,\n\t\t148, 105, 67, 238, 211, 64, 68, 184, 36, 13, 179, 242, 0,\n\t\t12, 181, 201, 188, 3, 222, 30, 69, 198, 163, 236, 30, 25,\n\t\t117, 47, 21, 229, 181, 216, 135, 9, 154, 137, 124, 185, 153,\n\t\t51, 166, 65, 156, 180, 47, 235, 124, 182, 88, 210, 187, 243,\n\t\t203, 83, 203, 207, 222, 221, 74, 49, 159, 40, 66, 121, 77,\n\t\t248, 100, 97, 139, 62, 185, 115, 199, 15, 62, 62, 62, 27,\n\t\t222, 221, 50, 141, 104, 163, 24, 58, 165, 72, 72, 201, 189,\n\t\t233, 2, 169, 89, 108, 87, 39, 179, 251, 40, 218, 216, 33,\n\t\t83, 170, 232, 138, 227, 100, 83, 183, 235, 242, 31, 126, 39,\n\t\t95, 237, 115, 221, 143, 51, 103, 246, 137, 108, 23, 253, 195,\n\t\t204, 127, 212, 9, 161, 236, 242, 21, 62, 254, 197, 152, 125,\n\t\t59, 74, 220, 184, 59, 102, 25, 99, 154, 242, 107, 28, 135,\n\t\t231, 63, 240, 37, 54, 3, 211, 54, 66, 46, 53, 75, 171, 29,\n\t\t155, 7, 156, 60, 13, 239, 43, 103, 225, 241, 158, 59, 165,\n\t\t9, 247, 5, 36, 117, 89, 221, 26, 51, 86, 16, 118, 119, 93,\n\t\t133, 63, 118, 99, 254, 3, 142, 210, 235, 222, 117, 207, 124,\n\t\t47, 65, 222, 211, 83, 217, 246, 198, 152, 158, 198, 189, 229,\n\t\t162, 242, 241, 204, 173, 50, 97, 198, 239, 65, 22, 23, 77,\n\t\t140, 123, 44, 225, 61, 145, 98, 181, 103, 82, 119, 195, 237,\n\t\t199, 216, 57, 120, 182, 157, 255, 47, 215, 1, 128, 199, 242,\n\t\t93, 117, 59, 36, 181, 65, 153, 188, 2, 13, 192, 250, 66, 0,\n\t\t78, 110, 122, 100, 252, 90, 115, 217, 94, 42, 143, 138, 4,\n\t\t190, 184, 173, 127, 1, 153, 72, 60, 124, 62, 204, 21, 243,\n\t\t194, 254, 168, 158, 3, 18, 182, 75, 179, 57, 80, 32, 15, 119,\n\t\t82, 72, 60, 1, 46, 230, 105, 226, 186, 204, 178, 40, 172,\n\t\t157, 28, 133, 205, 169, 214, 109, 215, 112, 158, 158, 158,\n\t\t158, 170, 142, 6, 138, 192, 173, 134, 69, 60, 252, 60, 244,\n\t\t198, 132, 159, 97, 99, 141, 208, 1, 112, 247, 96, 187, 238,\n\t\t112, 30, 119, 199, 190, 48, 204, 123, 141, 28, 234, 117, 1,\n\t\t154, 229, 181, 10, 209, 96, 80, 6, 57, 52, 57, 39, 236, 178,\n\t\t23, 214, 116, 207, 42, 201, 147, 241, 21, 220, 146, 60, 139,\n\t\t182, 44, 179, 54, 173, 0, 53, 143, 113, 107, 227, 74, 235,\n\t\t1, 84, 47, 46, 1, 187, 251, 48, 79, 179, 215, 93, 143, 216,\n\t\t50, 228, 52, 175, 77, 139, 242, 249, 159, 179, 180, 248, 250,\n\t\t115, 24, 255, 19, 255, 252, 143, 178, 104, 231, 15, 255, 68,\n\t\t135, 18, 205, 254, 243, 175, 15, 243, 127, 148, 81, 217, 150,\n\t\t243, 135, 255, 129, 178, 111, 168, 77, 227, 112, 246, 119,\n\t\t116, 66, 15, 243, 63, 213, 105, 152, 205, 155, 176, 104, 156,\n\t\t6, 213, 233, 126, 254, 240, 167, 158, 233, 236, 167, 62, 86,\n\t\t206, 254, 146, 151, 255, 74, 31, 70, 62, 106, 194, 63, 95,\n\t\t243, 168, 204, 30, 230, 15, 127, 47, 219, 82, 200, 69, 129,\n\t\t58, 61, 176, 81, 231, 97, 38, 32, 245, 149, 140, 212, 23,\n\t\t1, 191, 238, 211, 123, 55, 255, 155, 4, 71, 16, 8, 243, 176,\n\t\t126, 76, 24, 145, 3, 78, 203, 80, 219, 247, 105, 125, 220,\n\t\t236, 155, 33, 21, 8, 95, 252, 130, 239, 124, 17, 82, 100,\n\t\t42, 97, 165, 22, 39, 145, 221, 203, 56, 35, 9, 62, 202, 238,\n\t\t110, 240, 78, 25, 174, 135, 161, 110, 32, 117, 45, 79, 195,\n\t\t139, 217, 34, 172, 235, 242, 5, 112, 19, 209, 51, 232, 231,\n\t\t174, 182, 245, 120, 145, 253, 130, 236, 199, 18, 25, 13, 46,\n\t\t175, 50, 228, 47, 183, 231, 7, 97, 192, 142, 50, 98, 78, 28,\n\t\t176, 46, 139, 168, 113, 104, 25, 78, 175, 132, 95, 58, 167,\n\t\t202, 194, 24, 229, 168, 104, 255, 247, 231, 182, 172, 190,\n\t\t204, 121, 146, 182, 239, 198, 217, 178, 214, 138, 236, 38,\n\t\t152, 102, 65, 165, 151, 57, 49, 237, 140, 139, 4, 182, 156,\n\t\t198, 207, 79, 129, 28, 199, 83, 78, 24, 98, 208, 106, 83,\n\t\t37, 99, 169, 169, 236, 207, 234, 102, 15, 12, 44, 140, 114,\n\t\t224, 0, 44, 170, 5, 39, 141, 99, 182, 25, 53, 158, 5, 27,\n\t\t72, 53, 53, 221, 248, 130, 149, 67, 225, 16, 39, 252, 224,\n\t\t33, 219, 43, 11, 1, 181, 198, 23, 54, 232, 77, 90, 100, 82,\n\t\t53, 39, 233, 143, 192, 12, 107, 13, 18, 131, 139, 42, 164,\n\t\t39, 155, 175, 115, 46, 202, 8, 82, 34, 121, 197, 180, 72,\n\t\t87, 179, 174, 96, 6, 42, 75, 96, 58, 126, 200, 95, 90, 8,\n\t\t165, 55, 82, 241, 170, 146, 86, 64, 173, 53, 213, 91, 95,\n\t\t212, 83, 159, 114, 165, 167, 97, 38, 144, 142, 250, 23, 76,\n\t\t67, 204, 228, 55, 58, 26, 95, 6, 168, 58, 174, 172, 65, 113,\n\t\t226, 226, 37, 239, 101, 160, 242, 48, 210, 229, 85, 199, 120,\n\t\t167, 69, 129, 191, 223, 199, 122, 105, 124, 99, 244, 51, 120,\n\t\t130, 135, 27, 248, 168, 187, 121, 192, 97, 134, 60, 200, 97,\n\t\t27, 148, 202, 10, 207, 240, 232, 246, 197, 42, 195, 152, 181,\n\t\t10, 7, 6, 121, 123, 84, 245, 255, 163, 130, 255, 171, 81,\n\t\t193, 175, 50, 184, 30, 220, 238, 58, 96, 193, 127, 96, 117,\n\t\t193, 237, 65, 233, 227, 7, 196, 150, 126, 43, 125, 174, 36,\n\t\t107, 209, 135, 88, 234, 27, 176, 8, 45, 209, 132, 69, 24,\n\t\t73, 143, 69, 164, 155, 15, 2, 22, 168, 204, 108, 248, 88,\n\t\t200, 113, 147, 240, 8, 30, 79, 208, 201, 157, 239, 201, 109,\n\t\t96, 127, 152, 57, 222, 163, 125, 1, 131, 30, 237, 51, 112,\n\t\t145, 83, 149, 12, 226, 7, 160, 30, 49, 158, 142, 193, 143,\n\t\t118, 167, 247, 145, 68, 211, 247, 141, 72, 74, 240, 230, 224,\n\t\t141, 90, 83, 116, 112, 30, 167, 70, 0, 16, 135, 119, 235,\n\t\t24, 203, 227, 64, 28, 35, 34, 32, 78, 24, 152, 91, 248, 147,\n\t\t10, 227, 4, 126, 2, 140, 211, 121, 212, 51, 103, 42, 224,\n\t\t67, 200, 164, 237, 79, 90, 79, 194, 122, 54, 174, 167, 135,\n\t\t135, 80, 37, 32, 158, 32, 124, 212, 58, 160, 157, 27, 94,\n\t\t43, 21, 136, 38, 120, 72, 122, 157, 43, 78, 234, 17, 208,\n\t\t9, 41, 156, 115, 70, 1, 17, 79, 187, 35, 143, 136, 25, 21,\n\t\t69, 196, 212, 33, 135, 207, 217, 217, 113, 130, 28, 82, 133,\n\t\t196, 55, 134, 56, 25, 41, 219, 184, 154, 1, 93, 131, 242,\n\t\t65, 92, 117, 240, 91, 68, 221, 178, 191, 93, 89, 153, 105,\n\t\t193, 160, 193, 165, 0, 236, 175, 243, 183, 105, 109, 66, 138,\n\t\t57, 211, 137, 71, 120, 100, 97, 237, 113, 51, 214, 199, 179,\n\t\t219, 107, 76, 245, 135, 73, 205, 16, 56, 112, 63, 234, 49,\n\t\t137, 120, 125, 37, 5, 232, 50, 118, 80, 39, 193, 247, 155,\n\t\t254, 159, 137, 10, 142, 67, 39, 70, 131, 135, 78, 226, 44,\n\t\t170, 133, 127, 40, 163, 39, 158, 29, 107, 76, 132, 221, 251,\n\t\t198, 119, 113, 136, 101, 211, 230, 180, 131, 50, 160, 10,\n\t\t16, 71, 104, 204, 6, 196, 118, 247, 138, 214, 118, 157, 72,\n\t\t240, 116, 4, 55, 14, 188, 174, 165, 77, 105, 80, 85, 7, 45,\n\t\t154, 107, 103, 252, 32, 20, 183, 50, 177, 81, 156, 77, 55,\n\t\t210, 12, 96, 137, 219, 254, 160, 28, 146, 132, 70, 18, 216,\n\t\t223, 13, 139, 66, 81, 255, 143, 110, 81, 136, 92, 90, 138,\n\t\t93, 204, 234, 86, 85, 142, 82, 174, 29, 120, 155, 194, 24,\n\t\t37, 146, 87, 184, 250, 180, 26, 100, 131, 61, 190, 222, 171,\n\t\t60, 53, 40, 83, 87, 132, 198, 119, 116, 76, 175, 91, 247,\n\t\t199, 107, 156, 165, 188, 159, 97, 204, 108, 222, 158, 143,\n\t\t135, 141, 214, 11, 68, 92, 137, 108, 169, 187, 55, 209, 62,\n\t\t140, 145, 243, 45, 109, 210, 40, 205, 210, 246, 149, 237,\n\t\t96, 48, 188, 98, 185, 43, 84, 55, 21, 138, 201, 103, 99, 93,\n\t\t50, 87, 161, 36, 73, 181, 113, 10, 212, 181, 115, 41, 173,\n\t\t170, 209, 55, 41, 13, 252, 58, 245, 179, 121, 155, 3, 61,\n\t\t134, 164, 217, 192, 96, 245, 22, 218, 218, 240, 134, 211,\n\t\t77, 111, 170, 186, 186, 117, 193, 142, 157, 174, 31, 131,\n\t\t242, 75, 73, 125, 115, 131, 88, 74, 73, 100, 132, 97, 216,\n\t\t47, 241, 255, 124, 130, 183, 75, 244, 233, 151, 63, 54, 167,\n\t\t170, 42, 235, 182, 153, 125, 250, 164, 240, 160, 3, 233, 170,\n\t\t70, 13, 170, 191, 33, 103, 153, 60, 206, 202, 122, 246, 201,\n\t\t68, 0, 42, 250, 157, 106, 182, 76, 72, 152, 6, 171, 55, 188,\n\t\t196, 215, 248, 245, 70, 132, 216, 203, 98, 244, 210, 154,\n\t\t149, 217, 183, 89, 141, 62, 241, 171, 119, 81, 233, 253, 42,\n\t\t176, 76, 176, 152, 38, 181, 13, 239, 117, 154, 211, 217, 207,\n\t\t172, 56, 199, 160, 57, 231, 87, 86, 221, 45, 53, 88, 38, 68,\n\t\t76, 147, 234, 28, 94, 119, 3, 123, 178, 21, 74, 236, 72, 134,\n\t\t5, 63, 46, 6, 58, 201, 137, 78, 84, 46, 214, 13, 159, 94,\n\t\t213, 101, 133, 234, 246, 117, 71, 115, 153, 121, 91, 52, 57,\n\t\t40, 151, 174, 5, 154, 179, 177, 0, 201, 234, 227, 41, 178,\n\t\t217, 24, 192, 64, 73, 162, 0, 183, 62, 106, 147, 201, 158,\n\t\t189, 20, 243, 117, 234, 180, 208, 157, 157, 158, 126, 151,\n\t\t129, 250, 255, 107, 154, 180, 238, 24, 6, 198, 253, 8, 177,\n\t\t46, 51, 89, 66, 150, 108, 234, 202, 199, 93, 102, 239, 181,\n\t\t127, 200, 124, 150, 156, 66, 201, 224, 163, 121, 29, 74, 216,\n\t\t202, 12, 85, 123, 216, 136, 12, 190, 196, 91, 143, 53, 154,\n\t\t209, 230, 196, 47, 237, 110, 249, 25, 111, 158, 228, 183,\n\t\t60, 192, 134, 200, 198, 219, 227, 85, 73, 217, 192, 78, 243,\n\t\t26, 127, 2, 74, 35, 42, 249, 60, 20, 120, 19, 29, 91, 3, 28,\n\t\t55, 55, 225, 231, 113, 88, 197, 175, 67, 204, 174, 255, 252,\n\t\t191, 73, 32, 46, 215, 245, 223, 171, 154, 254, 54, 213, 108,\n\t\t159, 102, 217, 231, 239, 62, 250, 203, 253, 126, 255, 157,\n\t\t248, 129, 171, 237, 108, 203, 127, 187, 42, 249, 252, 221,\n\t\t207, 193, 194, 15, 102, 110, 230, 172, 102, 228, 31, 111,\n\t\t17, 56, 253, 191, 62, 249, 119, 70, 255, 58, 52, 253, 223,\n\t\t192, 71, 167, 244, 134, 249, 157, 213, 213, 95, 108, 112,\n\t\t93, 189, 69, 208, 215, 115, 198, 213, 15, 63, 179, 244, 149,\n\t\t131, 255, 49, 214, 53, 45, 146, 52, 14, 219, 178, 110, 128,\n\t\t64, 50, 78, 70, 144, 97, 120, 239, 91, 242, 98, 111, 112,\n\t\t69, 124, 177, 8, 27, 240, 209, 124, 58, 53, 17, 124, 148,\n\t\t62, 120, 241, 81, 190, 101, 23, 172, 217, 44, 75, 77, 59,\n\t\t50, 93, 97, 71, 230, 240, 139, 237, 156, 27, 219, 214, 114,\n\t\t252, 0, 71, 45, 39, 96, 129, 250, 223, 56, 140, 244, 186,\n\t\t41, 90, 188, 7, 177, 234, 158, 197, 227, 23, 234, 164, 7,\n\t\t252, 57, 51, 184, 34, 19, 51, 145, 14, 111, 35, 67, 200, 192,\n\t\t67, 124, 54, 61, 215, 103, 225, 55, 115, 235, 74, 38, 211,\n\t\t68, 106, 193, 212, 61, 222, 173, 108, 214, 181, 130, 235,\n\t\t206, 124, 187, 13, 171, 94, 48, 173, 35, 247, 254, 66, 101,\n\t\t245, 7, 81, 251, 196, 113, 231, 194, 224, 127, 189, 50, 125,\n\t\t110, 107, 133, 195, 103, 52, 245, 104, 151, 5, 233, 56, 217,\n\t\t141, 157, 103, 205, 77, 158, 227, 119, 116, 89, 142, 182,\n\t\t172, 100, 226, 182, 172, 84, 186, 60, 77, 146, 76, 225, 75,\n\t\t82, 85, 106, 186, 180, 34, 75, 129, 83, 1, 25, 250, 234, 192,\n\t\t89, 184, 87, 154, 124, 80, 5, 104, 58, 159, 35, 58, 12, 39,\n\t\t226, 161, 93, 40, 155, 104, 191, 231, 200, 67, 142, 158, 246,\n\t\t232, 66, 18, 65, 0, 244, 64, 145, 66, 170, 166, 147, 126,\n\t\t31, 42, 120, 237, 199, 177, 36, 231, 120, 236, 92, 205, 64,\n\t\t238, 79, 144, 37, 29, 114, 240, 178, 142, 137, 178, 180, 50,\n\t\t57, 244, 70, 39, 49, 185, 44, 84, 150, 152, 158, 238, 86,\n\t\t201, 201, 69, 161, 138, 188, 132, 94, 144, 150, 38, 41, 178,\n\t\t10, 164, 106, 186, 78, 78, 114, 101, 168, 36, 39, 62, 66,\n\t\t13, 208, 226, 235, 66, 101, 33, 123, 98, 94, 66, 252, 91,\n\t\t22, 143, 35, 146, 18, 181, 130, 225, 43, 67, 37, 193, 216,\n\t\t33, 101, 40, 216, 196, 158, 187, 145, 101, 163, 244, 188,\n\t\t120, 44, 73, 150, 80, 36, 85, 211, 117, 114, 146, 43, 67,\n\t\t37, 57, 233, 73, 96, 128, 26, 95, 23, 42, 139, 73, 200, 121,\n\t\t41, 105, 138, 44, 164, 64, 168, 36, 235, 68, 36, 215, 134,\n\t\t74, 34, 146, 211, 182, 128, 34, 241, 85, 53, 178, 132, 152,\n\t\t154, 23, 144, 36, 200, 242, 241, 100, 114, 170, 86, 129, 248,\n\t\t202, 80, 69, 129, 245, 87, 128, 150, 92, 23, 170, 170, 175,\n\t\t254, 42, 42, 175, 254, 10, 168, 110, 32, 146, 18, 181, 30,\n\t\t136, 175, 12, 149, 61, 240, 152, 182, 154, 206, 78, 162, 228,\n\t\t192, 189, 74, 207, 189, 20, 178, 225, 5, 145, 179, 178, 35,\n\t\t139, 222, 170, 174, 146, 58, 226, 167, 129, 172, 178, 144,\n\t\t217, 17, 254, 135, 85, 54, 218, 241, 104, 23, 127, 180, 25,\n\t\t241, 114, 39, 247, 108, 149, 201, 101, 74, 112, 225, 74, 15,\n\t\t4, 228, 130, 24, 93, 53, 71, 50, 10, 151, 181, 21, 27, 41,\n\t\t217, 216, 92, 83, 149, 145, 144, 160, 41, 128, 108, 232, 65,\n\t\t201, 79, 93, 239, 201, 200, 185, 142, 76, 200, 160, 116, 98,\n\t\t67, 6, 214, 143, 8, 228, 74, 31, 194, 200, 73, 56, 23, 104,\n\t\t149, 80, 206, 104, 135, 8, 43, 144, 43, 209, 149, 145, 179,\n\t\t64, 39, 80, 43, 65, 110, 80, 31, 239, 121, 186, 120, 51, 178,\n\t\t174, 191, 74, 180, 74, 243, 31, 164, 38, 173, 82, 146, 89,\n\t\t208, 53, 110, 125, 8, 254, 98, 23, 64, 231, 76, 126, 115,\n\t\t107, 204, 164, 63, 232, 166, 229, 46, 180, 193, 201, 124,\n\t\t210, 222, 10, 203, 50, 160, 6, 123, 85, 57, 166, 58, 143,\n\t\t197, 240, 205, 219, 86, 83, 87, 21, 16, 167, 117, 156, 33,\n\t\t201, 112, 129, 251, 17, 162, 117, 37, 50, 193, 89, 226, 12,\n\t\t133, 245, 62, 237, 216, 96, 73, 218, 44, 218, 191, 237, 177,\n\t\t247, 81, 24, 243, 36, 78, 63, 116, 21, 150, 154, 121, 158,\n\t\t137, 67, 6, 81, 210, 20, 16, 68, 66, 198, 89, 224, 92, 145,\n\t\t72, 46, 210, 1, 4, 109, 24, 101, 99, 137, 248, 23, 64, 224,\n\t\t212, 229, 139, 72, 212, 167, 64, 132, 49, 202, 50, 137, 178,\n\t\t79, 18, 73, 251, 1, 56, 116, 220, 145, 179, 46, 63, 177, 0,\n\t\t106, 64, 225, 193, 165, 195, 172, 56, 2, 142, 163, 254, 64,\n\t\t96, 226, 52, 249, 148, 197, 154, 220, 198, 104, 3, 149, 181,\n\t\t221, 154, 124, 218, 116, 77, 62, 109, 61, 70, 99, 99, 192,\n\t\t129, 214, 202, 134, 77, 254, 54, 51, 142, 58, 185, 151, 37,\n\t\t1, 83, 110, 214, 91, 106, 202, 124, 178, 241, 229, 86, 237,\n\t\t47, 191, 186, 9, 230, 22, 173, 48, 183, 104, 136, 249, 21,\n\t\t109, 49, 191, 170, 57, 230, 111, 108, 145, 249, 221, 27, 165,\n\t\t225, 4, 107, 226, 100, 135, 41, 83, 102, 7, 27, 83, 14, 84,\n\t\t214, 166, 204, 14, 211, 166, 204, 14, 211, 166, 100, 52, 54,\n\t\t166, 28, 104, 173, 76, 153, 29, 222, 102, 202, 81, 39, 239,\n\t\t104, 74, 15, 31, 102, 194, 182, 236, 178, 41, 91, 118, 153,\n\t\t141, 45, 7, 42, 107, 91, 118, 217, 180, 45, 187, 108, 218,\n\t\t150, 140, 198, 198, 150, 3, 173, 149, 45, 187, 236, 109, 182,\n\t\t28, 117, 114, 111, 91, 86, 117, 90, 180, 189, 249, 240, 195,\n\t\t148, 5, 9, 145, 133, 17, 121, 66, 107, 59, 146, 76, 147, 166,\n\t\t36, 100, 147, 214, 228, 200, 108, 12, 202, 147, 91, 217, 148,\n\t\t100, 120, 147, 89, 5, 45, 221, 205, 178, 11, 148, 71, 253,\n\t\t96, 2, 53, 85, 89, 52, 233, 55, 232, 51, 82, 130, 122, 133,\n\t\t155, 89, 134, 155, 157, 148, 253, 139, 50, 91, 205, 37, 52,\n\t\t60, 76, 150, 179, 204, 148, 20, 188, 90, 61, 87, 9, 113, 2,\n\t\t144, 158, 226, 155, 229, 129, 23, 101, 244, 47, 20, 183, 192,\n\t\t139, 111, 105, 130, 202, 233, 37, 247, 140, 63, 201, 44, 174,\n\t\t119, 12, 159, 232, 223, 185, 106, 149, 28, 223, 139, 94, 159,\n\t\t198, 53, 30, 110, 49, 98, 229, 47, 182, 193, 198, 91, 45,\n\t\t63, 2, 217, 188, 181, 46, 91, 176, 94, 248, 1, 148, 101, 21,\n\t\t189, 46, 193, 28, 27, 144, 220, 139, 94, 61, 144, 156, 172,\n\t\t19, 247, 110, 131, 27, 6, 112, 143, 143, 208, 58, 228, 235,\n\t\t124, 164, 166, 131, 223, 146, 43, 126, 32, 86, 228, 141, 158,\n\t\t155, 252, 126, 20, 204, 169, 209, 55, 84, 55, 72, 35, 32,\n\t\t123, 109, 20, 84, 37, 18, 4, 54, 21, 33, 82, 76, 85, 64, 91,\n\t\t208, 75, 29, 114, 159, 206, 31, 190, 49, 43, 243, 3, 94, 80,\n\t\t6, 228, 226, 126, 137, 5, 73, 4, 153, 200, 175, 56, 57, 212,\n\t\t234, 14, 197, 234, 234, 105, 32, 160, 140, 247, 105, 150,\n\t\t157, 149, 187, 114, 36, 62, 64, 58, 205, 126, 232, 173, 228,\n\t\t142, 18, 145, 134, 250, 13, 241, 131, 244, 231, 129, 82, 28,\n\t\t186, 143, 12, 60, 128, 129, 7, 50, 240, 20, 6, 205, 177, 78,\n\t\t139, 175, 188, 12, 5, 58, 132, 176, 12, 132, 22, 144, 130,\n\t\t50, 241, 0, 38, 138, 28, 148, 137, 32, 137, 180, 182, 78,\n\t\t110, 106, 58, 139, 203, 240, 56, 141, 99, 6, 222, 4, 36, 17,\n\t\t169, 156, 81, 145, 72, 124, 81, 145, 76, 113, 21, 72, 84,\n\t\t158, 100, 29, 245, 12, 237, 26, 48, 112, 150, 9, 84, 190,\n\t\t244, 246, 41, 137, 49, 165, 50, 112, 22, 238, 174, 50, 21,\n\t\t16, 226, 41, 34, 137, 127, 146, 54, 109, 157, 70, 167, 22,\n\t\t77, 22, 65, 242, 243, 37, 112, 123, 176, 100, 35, 114, 7,\n\t\t202, 57, 198, 240, 37, 93, 58, 150, 130, 245, 8, 67, 209,\n\t\t124, 10, 59, 164, 151, 79, 54, 27, 191, 40, 174, 97, 169,\n\t\t218, 140, 103, 56, 172, 160, 75, 44, 213, 21, 116, 129, 169,\n\t\t126, 129, 157, 233, 177, 70, 109, 124, 84, 53, 137, 147, 53,\n\t\t76, 149, 183, 140, 167, 166, 137, 97, 44, 5, 182, 51, 33,\n\t\t155, 209, 70, 96, 27, 27, 25, 67, 150, 50, 53, 51, 145, 169,\n\t\t108, 173, 145, 175, 198, 98, 250, 118, 38, 50, 86, 90, 217,\n\t\t200, 89, 109, 106, 34, 107, 109, 67, 19, 75, 144, 155, 217,\n\t\t88, 0, 216, 214, 160, 50, 116, 45, 109, 180, 166, 228, 35,\n\t\t188, 61, 97, 63, 25, 10, 208, 121, 74, 131, 178, 61, 62, 168,\n\t\t53, 114, 197, 91, 75, 137, 251, 73, 221, 220, 152, 101, 39,\n\t\t119, 116, 28, 55, 201, 233, 56, 118, 176, 215, 97, 126, 38,\n\t\t151, 195, 92, 5, 127, 227, 120, 66, 14, 55, 114, 4, 189, 13,\n\t\t243, 147, 93, 141, 99, 169, 241, 53, 204, 85, 231, 104, 152,\n\t\t167, 26, 27, 56, 174, 218, 0, 129, 249, 234, 227, 3, 213,\n\t\t169, 100, 122, 65, 171, 176, 237, 49, 95, 213, 240, 250, 41,\n\t\t100, 98, 131, 252, 110, 136, 185, 201, 239, 15, 154, 137,\n\t\t120, 239, 138, 155, 7, 177, 127, 5, 232, 220, 228, 111, 71,\n\t\t207, 120, 222, 255, 46, 0, 154, 74, 243, 46, 24, 186, 201,\n\t\t223, 10, 163, 155, 252, 237, 72, 154, 241, 120, 19, 152, 206,\n\t\t239, 132, 167, 243, 251, 67, 234, 252, 29, 81, 117, 147, 191,\n\t\t11, 176, 238, 155, 219, 59, 97, 235, 38, 127, 127, 120, 221,\n\t\t228, 239, 141, 176, 21, 155, 154, 58, 83, 91, 144, 45, 27,\n\t\t83, 223, 153, 218, 225, 108, 192, 138, 198, 206, 212, 6, 106,\n\t\t247, 230, 123, 39, 180, 157, 191, 23, 224, 86, 140, 117, 79,\n\t\t204, 45, 27, 237, 94, 176, 27, 48, 222, 221, 144, 55, 212,\n\t\t6, 239, 14, 190, 129, 70, 248, 30, 248, 27, 240, 154, 123,\n\t\t65, 240, 190, 6, 247, 69, 225, 138, 39, 222, 9, 136, 203,\n\t\t78, 120, 7, 44, 14, 248, 223, 61, 224, 56, 24, 63, 238, 134,\n\t\t200, 1, 103, 184, 29, 148, 27, 118, 3, 96, 206, 121, 114,\n\t\t55, 84, 158, 39, 247, 71, 229, 68, 188, 119, 69, 229, 131,\n\t\t216, 191, 2, 42, 207, 147, 183, 163, 114, 188, 133, 227, 46,\n\t\t168, 156, 74, 243, 46, 168, 60, 79, 222, 138, 202, 243, 228,\n\t\t237, 168, 156, 241, 120, 11, 42, 207, 147, 251, 160, 242,\n\t\t145, 207, 221, 80, 121, 207, 242, 221, 80, 121, 158, 188,\n\t\t11, 42, 239, 155, 219, 59, 161, 242, 60, 121, 127, 84, 158,\n\t\t39, 239, 140, 202, 85, 155, 154, 122, 86, 91, 84, 46, 27,\n\t\t83, 223, 173, 218, 161, 114, 192, 138, 198, 62, 213, 6, 149,\n\t\t247, 230, 123, 31, 84, 142, 117, 250, 30, 168, 92, 53, 214,\n\t\t61, 81, 185, 108, 180, 123, 161, 114, 192, 120, 119, 67, 229,\n\t\t80, 27, 188, 59, 42, 7, 26, 225, 59, 160, 114, 200, 107, 238,\n\t\t133, 202, 251, 26, 220, 21, 149, 171, 158, 120, 39, 84, 46,\n\t\t59, 225, 29, 80, 57, 224, 127, 247, 64, 229, 96, 252, 184,\n\t\t23, 42, 135, 156, 225, 174, 168, 156, 109, 236, 36, 110, 118,\n\t\t184, 27, 42, 207, 14, 247, 71, 229, 68, 188, 119, 69, 229,\n\t\t131, 216, 191, 2, 42, 207, 14, 111, 71, 229, 120, 55, 238,\n\t\t93, 80, 57, 149, 230, 93, 80, 121, 118, 120, 43, 42, 207,\n\t\t14, 111, 71, 229, 140, 199, 91, 80, 121, 118, 184, 15, 42,\n\t\t31, 249, 220, 13, 149, 247, 44, 223, 13, 149, 103, 135, 119,\n\t\t65, 229, 217, 225, 221, 80, 121, 118, 120, 127, 84, 158, 29,\n\t\t222, 25, 149, 171, 54, 53, 245, 172, 182, 168, 92, 54, 166,\n\t\t190, 91, 181, 67, 229, 128, 21, 141, 125, 170, 13, 42, 239,\n\t\t205, 247, 62, 168, 28, 235, 244, 61, 80, 185, 106, 172, 123,\n\t\t162, 114, 217, 104, 247, 66, 229, 128, 241, 238, 134, 202,\n\t\t161, 54, 120, 119, 84, 14, 52, 194, 119, 64, 229, 144, 215,\n\t\t220, 11, 149, 247, 53, 184, 43, 42, 87, 61, 241, 78, 168,\n\t\t92, 118, 194, 59, 160, 114, 192, 255, 238, 129, 202, 193,\n\t\t248, 113, 47, 84, 14, 57, 195, 93, 81, 249, 112, 70, 7, 179,\n\t\t238, 178, 187, 193, 242, 46, 187, 63, 44, 39, 226, 189, 43,\n\t\t44, 31, 196, 254, 21, 96, 121, 151, 189, 29, 150, 227, 131,\n\t\t85, 119, 129, 229, 84, 154, 119, 129, 229, 93, 246, 86, 88,\n\t\t222, 101, 111, 135, 229, 140, 199, 91, 96, 121, 151, 221,\n\t\t7, 150, 143, 124, 238, 6, 203, 123, 150, 239, 6, 203, 187,\n\t\t236, 93, 96, 121, 223, 220, 222, 9, 150, 119, 217, 251, 195,\n\t\t242, 46, 123, 103, 88, 174, 218, 212, 212, 181, 218, 194,\n\t\t114, 217, 152, 250, 126, 213, 14, 150, 3, 86, 52, 118, 170,\n\t\t54, 176, 188, 55, 223, 251, 192, 114, 172, 211, 247, 128,\n\t\t229, 170, 177, 238, 9, 203, 101, 163, 221, 11, 150, 3, 198,\n\t\t187, 27, 44, 135, 218, 224, 221, 97, 57, 208, 8, 223, 1, 150,\n\t\t67, 94, 115, 47, 88, 222, 215, 224, 174, 176, 92, 245, 196,\n\t\t59, 193, 114, 217, 9, 239, 0, 203, 1, 255, 187, 7, 44, 7,\n\t\t227, 199, 189, 96, 57, 228, 12, 111, 128, 229, 139, 125, 86,\n\t\t134, 45, 185, 22, 7, 63, 226, 15, 77, 242, 101, 19, 2, 114,\n\t\t5, 16, 161, 192, 207, 42, 9, 62, 163, 77, 40, 164, 19, 218,\n\t\t166, 221, 235, 125, 206, 38, 159, 22, 160, 201, 109, 100,\n\t\t96, 215, 169, 128, 98, 24, 247, 235, 244, 185, 243, 100, 90,\n\t\t142, 60, 177, 145, 131, 221, 5, 98, 43, 199, 184, 66, 129,\n\t\t173, 113, 152, 150, 35, 59, 216, 200, 193, 46, 178, 176, 149,\n\t\t131, 27, 147, 245, 217, 187, 108, 90, 144, 126, 100, 52, 45,\n\t\t8, 187, 133, 1, 22, 100, 193, 142, 65, 247, 17, 160, 77, 227,\n\t\t241, 88, 52, 249, 205, 243, 27, 72, 217, 161, 113, 245, 24,\n\t\t57, 72, 206, 14, 88, 171, 71, 174, 65, 242, 125, 218, 161,\n\t\t100, 164, 197, 63, 65, 194, 166, 77, 227, 175, 175, 35, 37,\n\t\t187, 181, 157, 164, 115, 13, 145, 171, 147, 248, 230, 178,\n\t\t192, 220, 201, 103, 194, 133, 2, 233, 97, 112, 118, 121, 178,\n\t\t124, 97, 178, 187, 116, 89, 94, 122, 125, 150, 148, 93, 186,\n\t\t117, 25, 230, 192, 95, 188, 175, 169, 5, 185, 108, 95, 170,\n\t\t192, 227, 227, 121, 65, 158, 68, 201, 197, 172, 114, 181,\n\t\t105, 149, 70, 9, 124, 247, 114, 89, 52, 181, 83, 22, 217,\n\t\t43, 112, 28, 158, 250, 229, 120, 117, 178, 199, 125, 164,\n\t\t88, 185, 13, 224, 25, 127, 47, 182, 31, 4, 211, 239, 91, 185,\n\t\t143, 210, 215, 106, 251, 193, 34, 119, 108, 158, 22, 236,\n\t\t224, 187, 22, 195, 40, 67, 59, 114, 67, 240, 28, 120, 131,\n\t\t159, 100, 215, 164, 2, 226, 123, 158, 169, 132, 248, 121,\n\t\t16, 12, 127, 209, 40, 67, 68, 50, 114, 29, 180, 242, 249,\n\t\t220, 203, 130, 124, 174, 215, 105, 242, 115, 84, 118, 236,\n\t\t227, 189, 238, 108, 225, 209, 207, 48, 147, 63, 252, 135,\n\t\t187, 220, 77, 240, 200, 251, 16, 201, 35, 101, 199, 185, 60,\n\t\t57, 171, 7, 229, 116, 178, 131, 152, 25, 103, 91, 42, 121,\n\t\t193, 98, 73, 227, 230, 178, 203, 119, 116, 188, 56, 126, 112,\n\t\t166, 119, 204, 7, 31, 197, 55, 129, 75, 223, 72, 215, 164,\n\t\t189, 56, 27, 150, 103, 35, 231, 241, 92, 150, 201, 115, 229,\n\t\t92, 24, 208, 140, 102, 225, 95, 30, 123, 49, 216, 253, 246,\n\t\t34, 207, 99, 47, 7, 125, 37, 9, 114, 236, 5, 161, 175, 54,\n\t\t114, 174, 94, 18, 238, 74, 6, 241, 37, 22, 133, 115, 11, 254,\n\t\t109, 78, 106, 49, 126, 208, 90, 206, 158, 31, 7, 2, 77, 1,\n\t\t185, 227, 158, 217, 71, 137, 133, 244, 214, 113, 231, 139,\n\t\t252, 117, 120, 173, 222, 59, 153, 215, 152, 164, 27, 73, 128,\n\t\t59, 39, 243, 72, 230, 3, 93, 55, 153, 103, 50, 43, 245, 174,\n\t\t201, 220, 241, 152, 164, 234, 221, 121, 121, 235, 120, 184,\n\t\t24, 79, 248, 110, 167, 74, 87, 99, 186, 110, 164, 35, 50,\n\t\t3, 148, 145, 204, 145, 10, 14, 144, 102, 50, 83, 44, 61, 64,\n\t\t232, 248, 67, 21, 128, 26, 248, 184, 60, 95, 249, 242, 168,\n\t\t84, 1, 31, 151, 229, 3, 95, 84, 148, 228, 151, 248, 49, 249,\n\t\t1, 241, 37, 150, 217, 240, 17, 94, 81, 250, 37, 147, 222,\n\t\t83, 133, 95, 226, 194, 150, 188, 240, 10, 85, 141, 169, 186,\n\t\t145, 138, 222, 198, 170, 138, 46, 113, 99, 183, 175, 170,\n\t\t146, 75, 12, 201, 125, 171, 138, 224, 171, 65, 112, 72, 239,\n\t\t43, 92, 216, 74, 16, 29, 82, 252, 10, 151, 181, 146, 132,\n\t\t135, 52, 47, 113, 100, 226, 67, 170, 151, 152, 146, 10, 0,\n\t\t186, 15, 88, 21, 150, 106, 5, 2, 92, 92, 192, 87, 64, 161,\n\t\t170, 49, 85, 55, 82, 209, 175, 6, 168, 194, 75, 220, 168,\n\t\t240, 10, 97, 38, 51, 36, 95, 29, 144, 200, 42, 199, 29, 190,\n\t\t77, 40, 52, 231, 10, 7, 152, 234, 117, 124, 175, 70, 152,\n\t\t10, 71, 152, 170, 227, 104, 128, 16, 83, 69, 10, 39, 40, 198,\n\t\t84, 153, 194, 76, 13, 50, 149, 227, 141, 159, 82, 84, 218,\n\t\t111, 133, 163, 76, 245, 58, 18, 105, 194, 76, 133, 195, 76,\n\t\t213, 113, 132, 186, 56, 83, 69, 10, 79, 109, 160, 169, 50,\n\t\t133, 173, 38, 210, 84, 142, 47, 126, 18, 82, 170, 134, 143,\n\t\t139, 244, 197, 106, 0, 181, 240, 113, 113, 190, 92, 11, 160,\n\t\t18, 50, 71, 93, 180, 169, 50, 133, 41, 28, 110, 42, 103, 57,\n\t\t84, 65, 110, 209, 21, 142, 55, 213, 235, 72, 2, 6, 156, 10,\n\t\t7, 156, 170, 227, 200, 224, 136, 83, 69, 10, 63, 77, 200,\n\t\t169, 50, 133, 37, 24, 115, 42, 103, 53, 74, 15, 89, 96, 133,\n\t\t203, 91, 137, 242, 67, 38, 88, 225, 226, 86, 114, 13, 32,\n\t\t27, 200, 60, 181, 113, 167, 202, 20, 182, 154, 192, 83, 57,\n\t\t193, 80, 15, 165, 109, 227, 200, 83, 189, 142, 36, 96, 232,\n\t\t169, 112, 232, 169, 58, 142, 12, 142, 61, 85, 164, 240, 211,\n\t\t4, 159, 42, 83, 88, 130, 209, 135, 158, 174, 162, 145, 83,\n\t\t129, 79, 45, 126, 141, 195, 29, 71, 135, 43, 161, 208, 214,\n\t\t140, 182, 19, 104, 107, 24, 152, 69, 48, 103, 90, 29, 133,\n\t\t60, 131, 153, 227, 58, 73, 196, 250, 153, 144, 220, 105, 12,\n\t\t104, 174, 127, 135, 229, 225, 136, 64, 76, 71, 9, 59, 129,\n\t\t16, 70, 118, 32, 79, 13, 190, 3, 217, 66, 40, 175, 153, 2,\n\t\t122, 61, 1, 43, 117, 26, 238, 81, 234, 78, 160, 54, 128, 62,\n\t\t144, 187, 9, 250, 129, 5, 104, 1, 96, 51, 129, 1, 251, 247,\n\t\t172, 248, 73, 36, 72, 137, 59, 129, 88, 143, 7, 65, 222, 6,\n\t\t84, 8, 178, 215, 97, 195, 198, 12, 15, 251, 215, 172, 236,\n\t\t41, 144, 72, 105, 59, 129, 86, 11, 21, 65, 206, 122, 192,\n\t\t8, 50, 215, 192, 198, 102, 10, 57, 246, 4, 172, 236, 105,\n\t\t252, 72, 169, 59, 129, 218, 128, 34, 65, 238, 38, 44, 9, 22,\n\t\t160, 69, 148, 141, 25, 84, 246, 175, 89, 233, 83, 208, 146,\n\t\t210, 118, 2, 173, 22, 96, 130, 156, 245, 48, 19, 100, 174,\n\t\t1, 155, 56, 184, 232, 240, 38, 9, 65, 213, 171, 64, 5, 162,\n\t\t78, 74, 217, 137, 148, 48, 246, 132, 185, 106, 16, 40, 204,\n\t\t24, 194, 161, 56, 154, 24, 161, 40, 9, 60, 213, 171, 64, 170,\n\t\t7, 164, 148, 188, 19, 201, 13, 176, 20, 230, 111, 2, 167,\n\t\t112, 17, 90, 136, 138, 195, 138, 9, 165, 146, 0, 84, 189,\n\t\t10, 148, 90, 172, 74, 169, 59, 145, 90, 143, 88, 97, 238,\n\t\t6, 220, 10, 23, 160, 67, 175, 56, 190, 24, 0, 44, 9, 68, 213,\n\t\t171, 64, 168, 131, 177, 148, 184, 19, 137, 181, 96, 22, 230,\n\t\t173, 135, 180, 48, 123, 13, 176, 197, 193, 197, 136, 109,\n\t\t73, 28, 170, 94, 5, 82, 61, 194, 165, 228, 157, 72, 110, 192,\n\t\t185, 48, 127, 19, 218, 133, 139, 208, 98, 94, 28, 105, 12,\n\t\t176, 151, 132, 164, 234, 85, 32, 212, 129, 95, 74, 220, 137,\n\t\t196, 90, 8, 12, 243, 214, 3, 97, 152, 189, 6, 14, 55, 147,\n\t\t136, 152, 82, 176, 248, 108, 129, 139, 199, 28, 157, 156,\n\t\t67, 139, 142, 13, 165, 232, 49, 178, 161, 32, 8, 41, 27, 22,\n\t\t235, 114, 39, 79, 244, 80, 185, 127, 135, 37, 227, 136, 64,\n\t\t168, 76, 9, 59, 129, 16, 134, 202, 32, 79, 13, 84, 6, 217,\n\t\t66, 80, 57, 79, 38, 160, 114, 79, 192, 74, 157, 134, 202,\n\t\t148, 186, 19, 168, 13, 80, 25, 228, 110, 130, 202, 96, 1,\n\t\t90, 168, 156, 39, 102, 168, 220, 191, 103, 197, 79, 66, 101,\n\t\t74, 220, 9, 196, 122, 168, 12, 242, 54, 64, 101, 144, 189,\n\t\t14, 42, 231, 137, 17, 42, 247, 175, 89, 217, 83, 80, 153,\n\t\t210, 118, 2, 173, 22, 42, 131, 156, 245, 80, 25, 100, 174,\n\t\t129, 202, 121, 50, 1, 149, 123, 2, 86, 246, 52, 84, 166, 212,\n\t\t157, 64, 109, 128, 202, 32, 119, 19, 84, 6, 11, 208, 66, 229,\n\t\t60, 49, 66, 229, 254, 53, 43, 125, 10, 42, 83, 218, 78, 160,\n\t\t213, 66, 101, 144, 179, 30, 42, 131, 204, 53, 80, 25, 7, 23,\n\t\t29, 84, 38, 33, 168, 122, 21, 168, 64, 168, 76, 41, 59, 145,\n\t\t18, 134, 202, 48, 87, 13, 84, 134, 25, 67, 80, 25, 71, 19,\n\t\t35, 84, 38, 129, 167, 122, 21, 72, 245, 80, 153, 146, 119,\n\t\t34, 185, 1, 42, 195, 252, 77, 80, 25, 46, 66, 11, 149, 113,\n\t\t88, 49, 65, 101, 18, 128, 170, 87, 129, 82, 11, 149, 41, 117,\n\t\t39, 82, 235, 161, 50, 204, 221, 0, 149, 225, 2, 116, 80, 25,\n\t\t199, 23, 3, 84, 38, 129, 168, 122, 21, 8, 117, 80, 153, 18,\n\t\t119, 34, 177, 22, 42, 195, 188, 245, 80, 25, 102, 175, 129,\n\t\t202, 56, 184, 24, 161, 50, 137, 67, 213, 171, 64, 170, 135,\n\t\t202, 148, 188, 19, 201, 13, 80, 25, 230, 111, 130, 202, 112,\n\t\t17, 90, 168, 140, 35, 141, 1, 42, 147, 144, 84, 189, 10, 132,\n\t\t58, 168, 76, 137, 59, 145, 88, 11, 149, 97, 222, 122, 168,\n\t\t12, 179, 215, 64, 101, 118, 9, 0, 13, 251, 0, 84, 166, 20,\n\t\t44, 62, 91, 64, 229, 49, 71, 39, 231, 208, 66, 101, 67, 41,\n\t\t122, 168, 108, 40, 200, 18, 42, 179, 253, 100, 185, 147, 29,\n\t\t244, 80, 185, 127, 135, 37, 227, 136, 64, 168, 76, 9, 59,\n\t\t129, 16, 134, 202, 32, 79, 13, 84, 6, 217, 66, 80, 57, 59,\n\t\t76, 64, 229, 158, 128, 149, 58, 13, 149, 41, 117, 39, 80,\n\t\t27, 160, 50, 200, 221, 4, 149, 193, 2, 180, 80, 57, 59, 152,\n\t\t161, 114, 255, 158, 21, 63, 9, 149, 41, 113, 39, 16, 235,\n\t\t161, 50, 200, 219, 0, 149, 65, 246, 58, 168, 156, 29, 140,\n\t\t80, 185, 127, 205, 202, 158, 130, 202, 148, 182, 19, 104,\n\t\t181, 80, 25, 228, 172, 135, 202, 32, 115, 13, 84, 206, 14,\n\t\t19, 80, 185, 39, 96, 101, 79, 67, 101, 74, 221, 9, 212, 6,\n\t\t168, 12, 114, 55, 65, 101, 176, 0, 45, 84, 206, 14, 70, 168,\n\t\t220, 191, 102, 165, 79, 65, 101, 74, 219, 9, 180, 90, 168,\n\t\t12, 114, 214, 67, 101, 144, 185, 6, 42, 227, 224, 162, 131,\n\t\t202, 36, 4, 85, 175, 2, 21, 8, 149, 41, 101, 39, 82, 194,\n\t\t80, 25, 230, 170, 129, 202, 48, 99, 8, 42, 227, 104, 98, 132,\n\t\t202, 36, 240, 84, 175, 2, 169, 30, 42, 83, 242, 78, 36, 55,\n\t\t64, 101, 152, 191, 9, 42, 195, 69, 104, 161, 50, 14, 43, 38,\n\t\t168, 76, 2, 80, 245, 42, 80, 106, 161, 50, 165, 238, 68, 106,\n\t\t61, 84, 134, 185, 27, 160, 50, 92, 128, 14, 42, 227, 248,\n\t\t98, 128, 202, 36, 16, 85, 175, 2, 161, 14, 42, 83, 226, 78,\n\t\t36, 214, 66, 101, 152, 183, 30, 42, 195, 236, 53, 80, 25,\n\t\t7, 23, 35, 84, 38, 113, 168, 122, 21, 72, 245, 80, 153, 146,\n\t\t119, 34, 185, 1, 42, 195, 252, 77, 80, 25, 46, 66, 11, 149,\n\t\t113, 164, 49, 64, 101, 18, 146, 170, 87, 129, 80, 7, 149,\n\t\t41, 113, 39, 18, 107, 161, 50, 204, 91, 15, 149, 97, 246,\n\t\t26, 168, 204, 78, 230, 211, 176, 15, 64, 101, 74, 193, 226,\n\t\t179, 5, 84, 30, 115, 116, 114, 14, 45, 84, 54, 148, 162, 135,\n\t\t202, 134, 130, 44, 161, 242, 112, 228, 33, 119, 186, 76, 143,\n\t\t149, 187, 140, 226, 90, 142, 8, 196, 202, 29, 219, 13, 203,\n\t\t19, 194, 88, 25, 228, 169, 193, 202, 32, 91, 8, 43, 119, 217,\n\t\t4, 86, 238, 50, 138, 102, 57, 74, 61, 86, 238, 216, 246, 88,\n\t\t158, 218, 128, 149, 65, 238, 38, 172, 12, 22, 160, 197, 202,\n\t\t93, 102, 198, 202, 93, 70, 241, 44, 71, 168, 197, 202, 29,\n\t\t219, 59, 203, 19, 235, 177, 50, 200, 219, 128, 149, 65, 246,\n\t\t58, 172, 220, 101, 70, 172, 220, 101, 20, 209, 114, 116, 58,\n\t\t172, 220, 177, 141, 181, 60, 173, 22, 43, 131, 156, 245, 88,\n\t\t25, 100, 174, 193, 202, 93, 54, 129, 149, 187, 140, 162, 89,\n\t\t142, 82, 143, 149, 59, 182, 223, 150, 167, 54, 96, 101, 144,\n\t\t187, 9, 43, 131, 5, 104, 177, 114, 151, 25, 177, 114, 151,\n\t\t81, 68, 203, 209, 233, 176, 114, 199, 182, 227, 242, 180,\n\t\t90, 172, 12, 114, 214, 99, 101, 144, 185, 6, 43, 227, 224,\n\t\t162, 195, 202, 36, 4, 85, 175, 2, 21, 136, 149, 59, 182, 91,\n\t\t87, 160, 132, 177, 50, 204, 85, 131, 149, 97, 198, 16, 86,\n\t\t198, 209, 196, 136, 149, 73, 224, 169, 94, 5, 82, 61, 86,\n\t\t238, 216, 246, 93, 129, 220, 128, 149, 97, 254, 38, 172, 12,\n\t\t23, 161, 197, 202, 56, 172, 152, 176, 50, 9, 64, 213, 171,\n\t\t64, 169, 197, 202, 29, 219, 219, 43, 80, 235, 177, 50, 204,\n\t\t221, 128, 149, 225, 2, 116, 88, 25, 199, 23, 3, 86, 38, 129,\n\t\t168, 122, 21, 8, 117, 88, 185, 99, 27, 127, 5, 98, 45, 86,\n\t\t134, 121, 235, 177, 50, 204, 94, 131, 149, 113, 112, 49, 98,\n\t\t101, 18, 135, 170, 87, 129, 84, 143, 149, 59, 182, 31, 88,\n\t\t32, 55, 96, 101, 152, 191, 9, 43, 195, 69, 104, 177, 50, 142,\n\t\t52, 6, 172, 76, 66, 82, 245, 42, 16, 234, 176, 114, 199, 182,\n\t\t11, 11, 196, 90, 172, 12, 243, 214, 99, 101, 152, 189, 6,\n\t\t43, 179, 227, 242, 52, 236, 3, 88, 185, 203, 70, 20, 43, 82,\n\t\t235, 176, 114, 199, 237, 31, 150, 114, 104, 177, 178, 161,\n\t\t20, 61, 86, 54, 20, 4, 98, 229, 69, 139, 186, 214, 201, 203,\n\t\t162, 196, 103, 21, 207, 251, 178, 104, 157, 125, 152, 167,\n\t\t217, 235, 238, 159, 255, 241, 115, 89, 148, 206, 63, 208,\n\t\t225, 148, 133, 245, 252, 103, 84, 100, 229, 252, 231, 178,\n\t\t8, 227, 114, 254, 83, 89, 52, 101, 22, 54, 243, 135, 191,\n\t\t165, 17, 170, 195, 54, 45, 139, 89, 79, 254, 48, 127, 248,\n\t\t169, 60, 213, 41, 170, 103, 127, 71, 47, 15, 243, 129, 53,\n\t\t45, 138, 222, 202, 112, 198, 63, 200, 121, 118, 229, 162,\n\t\t6, 74, 74, 111, 30, 82, 207, 118, 42, 148, 109, 125, 42, 226,\n\t\t176, 69, 103, 249, 168, 40, 126, 59, 36, 162, 44, 75, 171,\n\t\t38, 109, 128, 227, 162, 148, 81, 175, 35, 94, 180, 76, 58,\n\t\t14, 141, 95, 97, 139, 241, 84, 56, 65, 33, 163, 215, 14, 112,\n\t\t116, 202, 141, 2, 250, 173, 226, 56, 23, 59, 51, 63, 37, 208,\n\t\t112, 110, 126, 82, 166, 241, 131, 30, 38, 177, 12, 251, 114,\n\t\t136, 187, 36, 118, 114, 13, 231, 232, 39, 229, 26, 175, 52,\n\t\t190, 82, 46, 182, 8, 66, 172, 119, 176, 147, 107, 56, 87,\n\t\t63, 41, 215, 120, 169, 219, 149, 114, 13, 35, 78, 156, 143,\n\t\t157, 177, 159, 18, 108, 56, 103, 63, 41, 216, 120, 173, 133,\n\t\t81, 48, 90, 139, 242, 5, 213, 113, 216, 32, 66, 220, 214,\n\t\t97, 209, 236, 203, 58, 223, 13, 47, 20, 254, 167, 170, 130,\n\t\t179, 12, 47, 84, 127, 15, 171, 180, 13, 179, 244, 223, 74,\n\t\t158, 241, 13, 159, 9, 135, 154, 23, 124, 232, 213, 201, 112,\n\t\t173, 185, 148, 221, 210, 117, 117, 196, 228, 60, 181, 64,\n\t\t189, 210, 83, 71, 101, 150, 8, 180, 27, 128, 22, 139, 23,\n\t\t19, 178, 166, 125, 205, 208, 142, 164, 40, 149, 196, 145,\n\t\t227, 28, 151, 89, 89, 239, 62, 236, 247, 123, 133, 160, 170,\n\t\t211, 60, 172, 95, 25, 137, 235, 110, 34, 129, 42, 20, 200,\n\t\t200, 121, 243, 185, 148, 120, 236, 35, 214, 200, 97, 237,\n\t\t199, 170, 32, 13, 138, 203, 34, 225, 74, 90, 199, 155, 96,\n\t\t147, 168, 37, 13, 132, 98, 89, 99, 178, 80, 90, 176, 10, 162,\n\t\t181, 175, 150, 118, 138, 99, 212, 52, 140, 202, 223, 134,\n\t\t155, 85, 0, 148, 69, 200, 164, 146, 104, 162, 80, 142, 135,\n\t\t54, 104, 185, 82, 202, 73, 139, 125, 57, 144, 108, 66, 63,\n\t\t218, 170, 133, 244, 52, 98, 9, 56, 69, 100, 239, 109, 194,\n\t\t109, 164, 90, 47, 172, 139, 180, 56, 140, 246, 139, 61, 119,\n\t\t163, 150, 64, 201, 196, 66, 88, 162, 80, 78, 178, 124, 66,\n\t\t162, 59, 97, 218, 36, 44, 14, 28, 81, 188, 12, 32, 109, 17,\n\t\t42, 177, 20, 154, 38, 20, 18, 37, 190, 183, 84, 11, 33, 109,\n\t\t134, 85, 101, 187, 127, 218, 135, 106, 25, 152, 72, 44, 130,\n\t\t36, 137, 213, 8, 145, 139, 2, 160, 26, 245, 87, 70, 178, 92,\n\t\t45, 195, 149, 11, 85, 162, 254, 42, 87, 161, 254, 42, 89,\n\t\t35, 241, 61, 95, 53, 118, 84, 38, 131, 247, 250, 158, 31,\n\t\t248, 79, 106, 191, 112, 106, 81, 162, 245, 112, 202, 38, 11,\n\t\t227, 175, 78, 224, 82, 50, 254, 34, 3, 241, 26, 131, 177,\n\t\t1, 75, 212, 126, 16, 204, 217, 191, 80, 158, 99, 154, 16,\n\t\t100, 180, 115, 127, 112, 103, 225, 51, 201, 138, 227, 91,\n\t\t21, 214, 168, 104, 9, 206, 224, 174, 69, 120, 142, 194, 248,\n\t\t235, 1, 223, 249, 228, 168, 212, 227, 213, 20, 244, 226, 136,\n\t\t51, 254, 155, 102, 105, 251, 202, 238, 146, 224, 133, 72,\n\t\t11, 128, 142, 32, 28, 142, 140, 118, 66, 85, 157, 22, 237,\n\t\t249, 15, 243, 221, 46, 220, 183, 168, 158, 239, 118, 17, 218,\n\t\t151, 53, 13, 202, 224, 213, 13, 207, 250, 75, 29, 194, 93,\n\t\t81, 182, 159, 22, 81, 91, 60, 18, 6, 9, 138, 75, 2, 247, 118,\n\t\t167, 34, 65, 117, 150, 22, 232, 18, 70, 81, 253, 75, 155,\n\t\t182, 25, 250, 66, 139, 61, 179, 171, 169, 30, 102, 159, 30,\n\t\t102, 97, 219, 214, 159, 240, 251, 199, 217, 195, 227, 195,\n\t\t165, 170, 145, 0, 235, 170, 26, 57, 18, 176, 139, 178, 50,\n\t\t254, 250, 127, 78, 101, 139, 230, 61, 53, 85, 153, 87, 117,\n\t\t179, 166, 204, 210, 100, 246, 33, 76, 162, 32, 74, 158, 171,\n\t\t240, 128, 156, 168, 70, 225, 87, 39, 45, 154, 52, 65, 187,\n\t\t240, 91, 153, 38, 151, 246, 136, 194, 228, 156, 164, 77, 149,\n\t\t133, 175, 187, 54, 140, 50, 228, 244, 73, 168, 118, 122, 187,\n\t\t84, 151, 52, 63, 204, 219, 250, 172, 203, 127, 244, 231, 199,\n\t\t229, 188, 58, 151, 117, 117, 12, 139, 102, 183, 124, 126,\n\t\t73, 147, 242, 165, 217, 45, 201, 43, 62, 35, 174, 49, 205,\n\t\t247, 199, 62, 253, 220, 164, 255, 70, 187, 112, 121, 193,\n\t\t46, 46, 161, 21, 222, 178, 189, 150, 194, 180, 64, 181, 137,\n\t\t168, 8, 191, 69, 97, 61, 212, 165, 183, 208, 101, 17, 133,\n\t\t201, 1, 82, 139, 235, 186, 151, 5, 174, 46, 125, 217, 251,\n\t\t95, 22, 86, 13, 218, 177, 7, 193, 191, 123, 202, 89, 155,\n\t\t204, 217, 211, 241, 172, 184, 174, 210, 207, 97, 101, 18,\n\t\t238, 40, 25, 51, 115, 73, 71, 64, 178, 4, 33, 31, 173, 85,\n\t\t70, 92, 148, 73, 139, 35, 170, 83, 225, 205, 172, 237, 117,\n\t\t248, 61, 254, 239, 92, 72, 79, 196, 159, 71, 233, 39, 10,\n\t\t57, 57, 88, 77, 136, 12, 172, 218, 11, 76, 197, 50, 136, 50,\n\t\t60, 131, 25, 47, 255, 237, 135, 63, 124, 152, 53, 229, 169,\n\t\t142, 209, 207, 97, 85, 165, 197, 225, 63, 255, 241, 183, 207,\n\t\t81, 89, 182, 77, 91, 135, 213, 34, 79, 139, 69, 220, 52, 139,\n\t\t60, 172, 102, 127, 248, 225, 255, 13, 0, 0, 255, 255, 80,\n\t\t75, 7, 8, 13, 38, 75, 149, 58, 83, 0, 0, 136, 38, 2, 0, 80,\n\t\t75, 3, 4, 20, 0, 8, 0, 8, 0, 171, 145, 110, 82, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 9, 0, 99, 115, 115, 47, 100,\n\t\t101, 102, 97, 117, 108, 116, 46, 99, 115, 115, 85, 84, 5,\n\t\t0, 1, 66, 82, 78, 96, 228, 58, 107, 111, 227, 54, 182, 159,\n\t\t237, 95, 113, 110, 6, 129, 38, 105, 36, 235, 97, 249, 21,\n\t\t120, 112, 219, 220, 219, 246, 195, 20, 23, 184, 109, 23, 139,\n\t\t93, 244, 3, 37, 81, 54, 17, 74, 20, 40, 58, 182, 103, 144,\n\t\t255, 190, 224, 75, 47, 59, 158, 164, 219, 217, 47, 51, 109,\n\t\t108, 154, 60, 239, 115, 120, 68, 158, 163, 119, 53, 201, 112,\n\t\t130, 184, 155, 48, 33, 88, 1, 159, 199, 163, 61, 201, 196,\n\t\t118, 5, 129, 239, 95, 223, 143, 71, 21, 171, 137, 32, 172,\n\t\t92, 1, 74, 106, 70, 119, 2, 223, 143, 71, 26, 120, 5, 254,\n\t\t253, 120, 68, 113, 46, 244, 168, 66, 89, 70, 202, 141, 107,\n\t\t87, 3, 191, 58, 220, 143, 159, 199, 227, 1, 19, 87, 224, 131,\n\t\t144, 156, 10, 196, 55, 164, 116, 53, 133, 48, 150, 208, 0,\n\t\t0, 57, 43, 133, 91, 147, 79, 120, 5, 243, 248, 90, 81, 24,\n\t\t123, 37, 122, 114, 41, 41, 31, 225, 243, 24, 160, 135, 24,\n\t\t251, 26, 81, 161, 237, 49, 217, 108, 213, 164, 223, 204, 105,\n\t\t82, 65, 32, 245, 25, 128, 205, 52, 88, 202, 40, 227, 43, 120,\n\t\t23, 69, 145, 252, 105, 21, 225, 6, 104, 86, 29, 224, 191,\n\t\t72, 81, 49, 46, 80, 41, 186, 16, 70, 249, 193, 250, 115, 71,\n\t\t94, 15, 165, 130, 60, 97, 37, 182, 101, 227, 251, 243, 36,\n\t\t207, 135, 40, 255, 93, 224, 140, 32, 64, 148, 2, 42, 51, 120,\n\t\t95, 160, 131, 107, 124, 49, 159, 45, 170, 195, 141, 162, 1,\n\t\t224, 81, 182, 97, 102, 60, 48, 87, 136, 11, 109, 194, 231,\n\t\t241, 120, 228, 209, 218, 149, 204, 89, 233, 10, 198, 104,\n\t\t130, 184, 180, 249, 200, 8, 193, 113, 214, 19, 96, 52, 202,\n\t\t41, 62, 184, 25, 225, 56, 213, 254, 78, 25, 221, 21, 229,\n\t\t253, 120, 244, 124, 86, 58, 82, 94, 148, 110, 212, 132, 131,\n\t\t96, 213, 10, 66, 229, 164, 209, 73, 140, 132, 190, 245, 250,\n\t\t64, 149, 233, 235, 85, 73, 232, 14, 127, 65, 23, 206, 246,\n\t\t86, 17, 37, 160, 155, 35, 66, 119, 28, 27, 161, 91, 155, 232,\n\t\t120, 229, 184, 96, 2, 187, 40, 203, 220, 148, 149, 57, 37,\n\t\t169, 112, 51, 206, 170, 140, 237, 75, 141, 209, 15, 128, 240,\n\t\t36, 64, 90, 8, 171, 233, 244, 52, 72, 38, 183, 224, 14, 254,\n\t\t193, 237, 68, 70, 59, 41, 171, 157, 112, 55, 156, 237, 42,\n\t\t41, 5, 43, 141, 160, 9, 74, 31, 229, 108, 153, 173, 4, 71,\n\t\t101, 93, 33, 142, 109, 196, 157, 226, 36, 59, 33, 90, 84,\n\t\t198, 51, 204, 85, 176, 222, 95, 164, 213, 17, 222, 64, 75,\n\t\t234, 181, 56, 82, 82, 111, 221, 14, 23, 240, 114, 198, 11,\n\t\t105, 33, 193, 25, 253, 44, 211, 130, 100, 97, 183, 141, 175,\n\t\t18, 197, 193, 173, 183, 40, 99, 251, 149, 15, 190, 153, 82,\n\t\t64, 118, 47, 164, 105, 42, 25, 156, 167, 223, 83, 169, 170,\n\t\t112, 153, 245, 149, 241, 47, 107, 114, 193, 196, 94, 186,\n\t\t197, 233, 99, 194, 14, 64, 81, 130, 233, 10, 229, 2, 243,\n\t\t59, 24, 123, 28, 101, 132, 117, 39, 155, 16, 41, 5, 46, 197,\n\t\t10, 28, 71, 51, 205, 72, 93, 81, 116, 92, 129, 64, 9, 197,\n\t\t122, 46, 165, 24, 201, 128, 100, 98, 171, 173, 214, 112, 241,\n\t\t82, 126, 103, 137, 123, 169, 37, 218, 38, 87, 142, 41, 146,\n\t\t121, 98, 64, 155, 148, 148, 148, 216, 77, 40, 75, 31, 239,\n\t\t123, 110, 12, 170, 3, 212, 140, 146, 12, 222, 161, 165, 252,\n\t\t175, 187, 236, 74, 70, 187, 122, 5, 94, 24, 219, 125, 100,\n\t\t211, 186, 23, 217, 153, 173, 73, 130, 157, 169, 156, 50, 36,\n\t\t86, 32, 163, 90, 79, 152, 76, 107, 92, 234, 41, 106, 82, 177,\n\t\t161, 38, 3, 190, 177, 127, 125, 106, 0, 249, 231, 146, 148,\n\t\t149, 61, 75, 216, 201, 19, 147, 180, 207, 155, 65, 106, 240,\n\t\t22, 86, 92, 101, 28, 171, 134, 9, 6, 149, 110, 98, 157, 235,\n\t\t1, 204, 254, 180, 226, 188, 200, 182, 247, 68, 241, 61, 127,\n\t\t106, 21, 237, 199, 9, 168, 136, 252, 167, 56, 86, 120, 125,\n\t\t101, 151, 174, 254, 184, 235, 197, 77, 15, 72, 205, 95, 253,\n\t\t97, 216, 52, 142, 45, 89, 137, 223, 192, 0, 190, 83, 66, 127,\n\t\t56, 53, 225, 203, 28, 135, 40, 70, 4, 181, 67, 228, 198, 93,\n\t\t65, 157, 34, 138, 223, 71, 55, 192, 153, 64, 2, 255, 227,\n\t\t189, 27, 250, 25, 222, 220, 104, 211, 177, 10, 165, 68, 28,\n\t\t91, 195, 74, 68, 235, 27, 74, 193, 11, 106, 192, 168, 198,\n\t\t46, 41, 223, 160, 201, 74, 13, 113, 246, 39, 52, 122, 17,\n\t\t245, 37, 205, 130, 86, 179, 115, 122, 5, 111, 17, 59, 35,\n\t\t181, 220, 231, 134, 249, 43, 132, 237, 35, 24, 17, 27, 222,\n\t\t94, 124, 49, 61, 77, 110, 225, 251, 44, 3, 4, 9, 17, 192,\n\t\t114, 168, 43, 148, 98, 72, 112, 206, 56, 6, 177, 197, 80,\n\t\t32, 82, 218, 156, 36, 49, 222, 201, 9, 119, 139, 145, 218,\n\t\t133, 108, 223, 15, 107, 253, 8, 142, 237, 113, 76, 193, 26,\n\t\t228, 47, 2, 139, 45, 118, 21, 183, 207, 227, 81, 147, 49,\n\t\t124, 179, 161, 38, 183, 240, 255, 184, 96, 79, 90, 168, 13,\n\t\t199, 199, 78, 50, 134, 156, 179, 66, 45, 36, 28, 163, 44,\n\t\t229, 187, 34, 169, 165, 176, 94, 251, 251, 173, 249, 220,\n\t\t203, 9, 197, 46, 37, 181, 104, 61, 223, 63, 86, 153, 19, 231,\n\t\t22, 113, 13, 39, 229, 86, 240, 242, 9, 131, 93, 233, 164,\n\t\t238, 246, 219, 208, 99, 181, 149, 164, 92, 142, 115, 142,\n\t\t235, 173, 139, 74, 82, 32, 97, 143, 6, 230, 167, 138, 250,\n\t\t186, 34, 37, 120, 243, 26, 72, 153, 147, 146, 8, 172, 18,\n\t\t16, 226, 90, 106, 119, 143, 147, 71, 34, 134, 8, 225, 121,\n\t\t12, 121, 164, 178, 24, 143, 248, 152, 115, 84, 224, 218, 32,\n\t\t104, 206, 202, 122, 159, 27, 178, 157, 232, 214, 65, 109,\n\t\t98, 250, 217, 100, 189, 139, 160, 209, 204, 2, 75, 190, 125,\n\t\t126, 125, 118, 47, 111, 162, 83, 126, 23, 96, 123, 12, 213,\n\t\t153, 139, 148, 174, 4, 213, 231, 254, 230, 100, 27, 45, 158,\n\t\t228, 201, 76, 135, 158, 62, 203, 3, 218, 9, 118, 111, 143,\n\t\t106, 164, 116, 59, 17, 165, 69, 157, 220, 118, 163, 44, 57,\n\t\t194, 175, 127, 251, 233, 135, 102, 162, 246, 82, 86, 200,\n\t\t48, 59, 1, 117, 73, 129, 54, 120, 5, 59, 78, 223, 95, 101,\n\t\t72, 160, 149, 154, 152, 212, 79, 155, 239, 14, 5, 189, 187,\n\t\t142, 30, 234, 167, 13, 28, 10, 90, 214, 107, 103, 43, 68,\n\t\t181, 154, 76, 246, 251, 189, 183, 143, 60, 198, 55, 147, 208,\n\t\t247, 125, 9, 236, 232, 135, 233, 218, 145, 251, 32, 140, 29,\n\t\t243, 36, 109, 127, 63, 17, 188, 255, 129, 29, 214, 142, 60,\n\t\t244, 44, 124, 31, 166, 190, 239, 92, 71, 255, 123, 29, 61,\n\t\t100, 56, 175, 245, 72, 38, 10, 68, 127, 146, 95, 114, 19,\n\t\t147, 108, 237, 32, 7, 210, 195, 218, 137, 150, 51, 7, 210,\n\t\t227, 218, 9, 23, 129, 3, 124, 237, 196, 193, 212, 129, 141,\n\t\t129, 252, 189, 36, 162, 94, 59, 187, 26, 243, 95, 101, 90,\n\t\t248, 191, 242, 247, 26, 27, 234, 181, 96, 21, 176, 60, 175,\n\t\t177, 88, 59, 190, 3, 242, 183, 62, 106, 173, 157, 235, 48,\n\t\t250, 159, 96, 225, 76, 206, 64, 6, 39, 144, 81, 228, 251,\n\t\t190, 111, 129, 39, 125, 89, 245, 164, 142, 228, 158, 252,\n\t\t201, 151, 164, 132, 67, 176, 118, 164, 49, 224, 24, 172, 157,\n\t\t96, 186, 112, 224, 16, 218, 153, 112, 237, 68, 81, 244, 58,\n\t\t77, 126, 252, 62, 50, 115, 38, 165, 74, 160, 215, 169, 118,\n\t\t14, 213, 139, 27, 85, 251, 106, 153, 201, 142, 215, 112, 42,\n\t\t32, 39, 148, 174, 29, 25, 70, 215, 97, 132, 110, 154, 120,\n\t\t88, 72, 61, 108, 48, 76, 91, 251, 109, 20, 70, 159, 159, 94,\n\t\t73, 9, 79, 41, 238, 19, 76, 110, 116, 24, 132, 179, 185, 23,\n\t\t235, 64, 152, 233, 56, 136, 90, 146, 151, 16, 227, 40, 252,\n\t\t115, 136, 202, 15, 18, 45, 242, 135, 104, 147, 141, 249, 174,\n\t\t159, 228, 232, 234, 230, 222, 110, 177, 175, 184, 191, 194,\n\t\t101, 199, 158, 234, 71, 111, 103, 133, 190, 250, 115, 172,\n\t\t145, 245, 119, 197, 232, 113, 195, 74, 163, 225, 117, 24,\n\t\t205, 252, 69, 30, 207, 29, 168, 24, 41, 101, 76, 6, 190, 15,\n\t\t241, 220, 11, 96, 54, 133, 101, 228, 5, 48, 15, 188, 88, 62,\n\t\t211, 188, 153, 252, 132, 121, 232, 5, 86, 237, 19, 98, 243,\n\t\t41, 202, 102, 203, 51, 196, 44, 38, 4, 225, 66, 19, 146, 159,\n\t\t209, 204, 11, 20, 147, 23, 9, 158, 147, 46, 152, 69, 94, 168,\n\t\t40, 6, 243, 133, 28, 205, 125, 111, 14, 129, 63, 151, 114,\n\t\t206, 125, 111, 1, 203, 208, 155, 190, 73, 70, 77, 50, 92,\n\t\t122, 161, 196, 141, 245, 200, 80, 180, 124, 26, 130, 72, 108,\n\t\t91, 106, 139, 229, 195, 195, 252, 193, 129, 108, 237, 252,\n\t\t34, 65, 195, 192, 91, 124, 108, 8, 81, 37, 154, 252, 80, 35,\n\t\t87, 126, 124, 180, 96, 159, 64, 97, 4, 225, 220, 91, 126,\n\t\t156, 77, 189, 153, 66, 249, 104, 109, 70, 163, 216, 155, 130,\n\t\t252, 248, 216, 128, 125, 122, 89, 171, 124, 145, 199, 81,\n\t\t171, 149, 15, 129, 50, 188, 20, 94, 218, 93, 153, 61, 84,\n\t\t102, 87, 86, 15, 46, 154, 125, 153, 160, 108, 54, 109, 169,\n\t\t41, 53, 100, 64, 41, 243, 6, 210, 190, 160, 77, 214, 238,\n\t\t129, 19, 34, 63, 204, 30, 30, 230, 179, 150, 72, 56, 247,\n\t\t22, 138, 136, 197, 4, 237, 56, 101, 113, 169, 96, 224, 45,\n\t\t64, 203, 29, 74, 189, 35, 189, 244, 106, 33, 37, 69, 173,\n\t\t116, 48, 155, 106, 5, 33, 80, 209, 171, 245, 86, 235, 151,\n\t\t195, 119, 96, 68, 25, 160, 90, 239, 64, 71, 132, 18, 85, 143,\n\t\t223, 162, 185, 113, 129, 10, 52, 233, 103, 77, 167, 149, 215,\n\t\t142, 66, 195, 43, 48, 134, 210, 163, 30, 111, 43, 209, 235,\n\t\t117, 80, 216, 86, 131, 185, 225, 171, 54, 78, 227, 11, 77,\n\t\t245, 245, 250, 168, 212, 98, 189, 41, 227, 210, 4, 153, 111,\n\t\t41, 245, 221, 44, 7, 175, 246, 162, 194, 146, 249, 203, 12,\n\t\t148, 164, 122, 27, 121, 177, 30, 188, 94, 80, 67, 197, 144,\n\t\t82, 34, 251, 102, 240, 114, 234, 238, 28, 174, 212, 153, 236,\n\t\t3, 180, 71, 51, 117, 7, 104, 74, 184, 234, 26, 48, 234, 28,\n\t\t200, 225, 93, 46, 207, 216, 221, 202, 142, 170, 127, 6, 213,\n\t\t65, 149, 184, 228, 55, 223, 36, 232, 189, 127, 7, 230, 127,\n\t\t47, 186, 185, 135, 166, 60, 188, 130, 168, 41, 42, 117, 68,\n\t\t216, 134, 45, 251, 149, 82, 33, 48, 87, 16, 3, 165, 238, 88,\n\t\t119, 96, 207, 132, 66, 93, 72, 10, 117, 233, 209, 151, 146,\n\t\t104, 161, 100, 237, 222, 98, 140, 248, 47, 40, 213, 47, 89,\n\t\t132, 125, 161, 12, 131, 94, 181, 56, 97, 52, 59, 203, 161,\n\t\t69, 211, 55, 48, 137, 121, 82, 13, 111, 32, 43, 206, 54, 28,\n\t\t215, 181, 155, 162, 50, 197, 180, 3, 108, 234, 109, 173, 25,\n\t\t44, 74, 201, 4, 201, 73, 170, 174, 21, 250, 86, 243, 1, 60,\n\t\t68, 49, 23, 103, 156, 214, 20, 210, 173, 101, 166, 77, 205,\n\t\t175, 87, 48, 105, 167, 187, 236, 173, 121, 58, 5, 151, 133,\n\t\t45, 159, 244, 196, 72, 41, 171, 177, 181, 147, 173, 160, 14,\n\t\t60, 31, 223, 220, 143, 199, 253, 74, 240, 144, 105, 83, 46,\n\t\t28, 206, 55, 77, 134, 225, 66, 83, 116, 151, 180, 187, 206,\n\t\t104, 32, 251, 85, 171, 225, 244, 137, 157, 250, 197, 31, 123,\n\t\t241, 53, 5, 103, 163, 224, 95, 160, 195, 191, 37, 172, 10,\n\t\t79, 181, 208, 235, 207, 64, 191, 52, 182, 12, 141, 167, 234,\n\t\t148, 51, 74, 81, 66, 177, 91, 176, 12, 209, 222, 53, 255,\n\t\t208, 134, 64, 248, 180, 53, 85, 145, 39, 204, 115, 202, 246,\n\t\t238, 81, 94, 230, 36, 178, 38, 164, 170, 155, 238, 86, 46,\n\t\t131, 72, 88, 118, 4, 193, 87, 230, 103, 118, 7, 23, 215, 183,\n\t\t210, 112, 157, 227, 97, 55, 72, 194, 40, 190, 131, 112, 42,\n\t\t63, 226, 216, 100, 164, 154, 113, 225, 234, 162, 181, 42,\n\t\t79, 32, 82, 54, 245, 87, 43, 223, 10, 182, 36, 203, 112, 105,\n\t\t138, 154, 91, 34, 176, 171, 170, 35, 242, 82, 191, 231, 168,\n\t\t186, 68, 234, 118, 88, 134, 59, 173, 175, 62, 97, 46, 72,\n\t\t138, 168, 139, 40, 217, 148, 43, 16, 172, 58, 203, 138, 23,\n\t\t136, 158, 176, 58, 9, 148, 233, 107, 3, 165, 19, 123, 127,\n\t\t109, 252, 104, 194, 209, 165, 45, 208, 75, 239, 74, 205, 83,\n\t\t27, 214, 152, 226, 84, 224, 172, 179, 215, 187, 245, 22, 233,\n\t\t248, 59, 216, 138, 130, 222, 129, 215, 216, 219, 205, 233,\n\t\t142, 216, 75, 251, 73, 237, 200, 147, 222, 170, 26, 7, 119,\n\t\t83, 121, 224, 251, 54, 46, 187, 209, 218, 160, 154, 122, 212,\n\t\t249, 245, 97, 52, 55, 229, 132, 11, 13, 182, 32, 244, 253,\n\t\t78, 15, 171, 109, 50, 129, 249, 55, 232, 247, 196, 79, 251,\n\t\t251, 225, 154, 109, 120, 218, 105, 155, 196, 53, 127, 59,\n\t\t107, 24, 54, 5, 234, 103, 93, 174, 82, 230, 117, 117, 53,\n\t\t209, 84, 51, 241, 65, 216, 32, 108, 235, 241, 221, 189, 110,\n\t\t73, 244, 18, 130, 46, 202, 113, 93, 148, 83, 13, 83, 253,\n\t\t156, 3, 221, 204, 72, 41, 73, 31, 229, 205, 13, 173, 116,\n\t\t99, 242, 14, 208, 42, 103, 233, 174, 86, 108, 217, 78, 200,\n\t\t13, 97, 106, 190, 182, 215, 160, 171, 101, 0, 110, 193, 62,\n\t\t185, 6, 68, 151, 211, 186, 149, 52, 13, 77, 229, 131, 77,\n\t\t37, 133, 65, 223, 41, 176, 182, 49, 207, 93, 131, 175, 122,\n\t\t24, 189, 133, 23, 30, 37, 65, 24, 223, 244, 224, 236, 131,\n\t\t59, 170, 14, 234, 111, 216, 129, 61, 145, 231, 3, 8, 249,\n\t\t120, 150, 223, 92, 126, 100, 119, 175, 0, 218, 14, 212, 104,\n\t\t244, 61, 83, 186, 237, 180, 151, 116, 210, 53, 245, 216, 122,\n\t\t151, 166, 184, 174, 155, 78, 146, 212, 79, 31, 163, 186, 225,\n\t\t179, 108, 158, 189, 29, 37, 205, 70, 237, 116, 123, 48, 54,\n\t\t29, 145, 211, 196, 250, 46, 78, 147, 69, 156, 234, 101, 91,\n\t\t12, 52, 132, 4, 171, 84, 240, 182, 45, 26, 203, 233, 12, 160,\n\t\t202, 37, 103, 32, 165, 255, 123, 214, 151, 208, 166, 11, 127,\n\t\t25, 200, 100, 167, 6, 10, 190, 40, 22, 92, 150, 231, 121,\n\t\t96, 227, 61, 226, 37, 41, 55, 109, 126, 250, 42, 6, 206, 125,\n\t\t148, 77, 241, 55, 105, 224, 12, 149, 27, 125, 178, 253, 138,\n\t\t246, 205, 150, 113, 52, 205, 191, 73, 251, 146, 50, 103, 255,\n\t\t129, 12, 145, 164, 126, 246, 109, 6, 112, 197, 73, 129, 248,\n\t\t241, 43, 71, 240, 52, 92, 36, 41, 250, 38, 12, 12, 231, 158,\n\t\t130, 182, 125, 249, 219, 22, 67, 189, 39, 34, 221, 130, 171,\n\t\t123, 128, 236, 0, 72, 119, 108, 228, 207, 154, 18, 121, 42,\n\t\t185, 157, 140, 61, 193, 54, 27, 138, 93, 3, 45, 183, 192,\n\t\t249, 247, 34, 94, 60, 181, 55, 103, 42, 45, 184, 61, 14, 134,\n\t\t243, 202, 92, 159, 123, 28, 220, 166, 51, 219, 221, 109, 205,\n\t\t203, 63, 147, 91, 248, 153, 100, 24, 50, 156, 163, 29, 21,\n\t\t240, 243, 111, 191, 124, 132, 166, 71, 124, 42, 175, 170,\n\t\t75, 232, 195, 83, 175, 97, 110, 132, 242, 187, 18, 249, 150,\n\t\t195, 111, 231, 45, 160, 103, 250, 22, 232, 190, 6, 145, 238,\n\t\t120, 45, 101, 85, 197, 31, 172, 250, 142, 250, 46, 32, 71,\n\t\t205, 139, 120, 0, 237, 27, 56, 210, 135, 205, 187, 122, 103,\n\t\t3, 86, 189, 128, 3, 253, 222, 161, 97, 237, 133, 181, 98,\n\t\t49, 156, 234, 154, 84, 137, 188, 50, 157, 233, 11, 146, 219,\n\t\t215, 103, 174, 174, 122, 46, 50, 46, 51, 198, 178, 63, 181,\n\t\t42, 230, 242, 212, 121, 129, 234, 188, 10, 230, 202, 242,\n\t\t102, 29, 148, 231, 186, 47, 21, 156, 186, 225, 140, 189, 194,\n\t\t96, 57, 251, 49, 234, 16, 208, 167, 231, 243, 232, 221, 34,\n\t\t25, 248, 170, 56, 214, 37, 240, 5, 17, 186, 102, 61, 211,\n\t\t219, 85, 67, 138, 4, 254, 251, 123, 105, 56, 117, 58, 118,\n\t\t139, 250, 75, 32, 23, 151, 77, 79, 95, 106, 140, 51, 19, 162,\n\t\t245, 105, 140, 218, 95, 109, 87, 182, 151, 110, 206, 237,\n\t\t189, 83, 188, 174, 122, 3, 244, 230, 253, 161, 156, 200, 83,\n\t\t71, 197, 73, 41, 108, 159, 186, 83, 151, 138, 237, 107, 61,\n\t\t250, 125, 61, 153, 232, 245, 25, 112, 8, 104, 201, 101, 108,\n\t\t95, 82, 134, 178, 179, 85, 29, 91, 161, 251, 87, 0, 0, 0,\n\t\t255, 255, 80, 75, 7, 8, 93, 143, 230, 168, 166, 11, 0, 0,\n\t\t20, 43, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 9, 0, 99, 115,\n\t\t115, 47, 102, 111, 110, 116, 97, 119, 101, 115, 111, 109,\n\t\t101, 46, 99, 115, 115, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t172, 125, 91, 143, 228, 184, 146, 222, 95, 105, 204, 193,\n\t\t2, 51, 192, 168, 87, 119, 101, 86, 195, 246, 122, 97, 44,\n\t\t224, 7, 191, 249, 97, 13, 248, 133, 146, 168, 20, 187, 40,\n\t\t81, 67, 82, 149, 149, 221, 56, 255, 221, 144, 148, 65, 41,\n\t\t171, 190, 200, 153, 93, 159, 93, 160, 79, 141, 244, 37, 73,\n\t\t241, 26, 151, 47, 130, 95, 59, 241, 251, 215, 78, 212, 203,\n\t\t63, 122, 249, 199, 46, 255, 184, 159, 209, 96, 126, 68, 198,\n\t\t189, 71, 157, 25, 125, 228, 6, 99, 124, 175, 198, 203, 203,\n\t\t197, 138, 155, 107, 132, 150, 223, 162, 171, 172, 95, 149,\n\t\t255, 8, 16, 163, 87, 66, 43, 225, 100, 251, 173, 85, 110,\n\t\t210, 226, 246, 162, 70, 173, 70, 25, 213, 218, 52, 175, 223,\n\t\t54, 188, 191, 105, 249, 50, 26, 59, 8, 189, 61, 121, 19, 86,\n\t\t137, 209, 211, 51, 47, 223, 125, 100, 229, 216, 74, 187, 150,\n\t\t58, 123, 243, 109, 45, 164, 151, 234, 210, 251, 151, 228,\n\t\t239, 95, 59, 17, 233, 203, 207, 173, 56, 245, 67, 190, 36,\n\t\t95, 179, 229, 255, 228, 240, 0, 252, 90, 21, 114, 248, 246,\n\t\t38, 173, 87, 141, 208, 145, 208, 234, 50, 190, 68, 95, 227,\n\t\t178, 172, 228, 176, 22, 242, 238, 14, 133, 172, 240, 245,\n\t\t177, 27, 142, 143, 79, 225, 121, 242, 126, 172, 243, 254,\n\t\t48, 61, 62, 76, 239, 15, 179, 227, 195, 236, 254, 48, 63,\n\t\t62, 204, 239, 15, 139, 227, 67, 170, 168, 60, 62, 44, 239,\n\t\t15, 171, 227, 67, 250, 130, 211, 241, 225, 233, 254, 240,\n\t\t124, 124, 120, 166, 198, 199, 15, 173, 143, 239, 143, 187,\n\t\t235, 207, 181, 195, 183, 222, 105, 228, 232, 165, 253, 118,\n\t\t85, 173, 239, 95, 146, 175, 41, 53, 104, 214, 63, 181, 114,\n\t\t247, 193, 139, 252, 109, 90, 70, 112, 148, 223, 6, 97, 47,\n\t\t106, 140, 180, 236, 252, 75, 250, 117, 233, 238, 73, 180,\n\t\t173, 26, 47, 219, 163, 248, 254, 227, 255, 170, 213, 207,\n\t\t201, 56, 229, 149, 25, 95, 172, 212, 194, 171, 55, 185, 13,\n\t\t163, 250, 185, 34, 163, 116, 249, 45, 65, 68, 237, 140, 158,\n\t\t189, 252, 198, 53, 45, 253, 48, 212, 106, 236, 165, 85, 126,\n\t\t45, 178, 54, 182, 149, 246, 231, 246, 63, 47, 95, 227, 147,\n\t\t28, 190, 56, 163, 85, 251, 229, 111, 82, 202, 111, 219, 243,\n\t\t200, 138, 86, 205, 238, 229, 107, 178, 183, 249, 229, 107,\n\t\t42, 135, 47, 235, 71, 127, 249, 154, 208, 167, 79, 179, 214,\n\t\t235, 215, 252, 236, 180, 17, 254, 101, 249, 115, 127, 97,\n\t\t151, 234, 239, 111, 214, 191, 151, 87, 15, 63, 91, 215, 216,\n\t\t167, 39, 250, 211, 19, 251, 233, 137, 123, 172, 254, 222,\n\t\t215, 118, 155, 219, 247, 73, 245, 216, 144, 199, 186, 194,\n\t\t35, 253, 249, 145, 253, 252, 200, 125, 248, 168, 227, 216,\n\t\t82, 117, 145, 155, 212, 248, 83, 140, 106, 16, 235, 64, 221,\n\t\t159, 124, 73, 221, 23, 53, 118, 106, 84, 94, 126, 89, 198,\n\t\t69, 88, 234, 34, 39, 1, 60, 57, 192, 157, 151, 147, 251, 245,\n\t\t244, 219, 223, 255, 229, 85, 222, 58, 43, 6, 233, 190, 80,\n\t\t69, 241, 63, 253, 244, 86, 140, 174, 51, 118, 120, 177, 198,\n\t\t11, 47, 127, 141, 91, 121, 249, 237, 239, 222, 124, 126, 147,\n\t\t248, 217, 142, 191, 253, 125, 173, 121, 123, 20, 157, 227,\n\t\t159, 209, 224, 162, 78, 105, 47, 237, 203, 47, 147, 53, 23,\n\t\t213, 190, 252, 143, 127, 255, 159, 131, 184, 200, 255, 77,\n\t\t5, 124, 253, 95, 170, 177, 198, 153, 206, 127, 253, 87, 225,\n\t\t84, 179, 190, 253, 117, 45, 66, 153, 241, 191, 36, 191, 253,\n\t\t242, 237, 83, 101, 231, 173, 29, 135, 186, 146, 211, 63, 162,\n\t\t178, 20, 85, 150, 156, 62, 213, 150, 86, 255, 136, 218, 50,\n\t\t84, 91, 90, 237, 181, 117, 90, 77, 81, 111, 172, 250, 97,\n\t\t70, 47, 244, 63, 160, 202, 248, 247, 47, 131, 178, 214, 216,\n\t\t15, 253, 186, 30, 45, 255, 254, 107, 148, 28, 42, 166, 189,\n\t\t251, 231, 7, 216, 255, 121, 132, 237, 237, 251, 244, 203,\n\t\t223, 63, 151, 245, 255, 255, 9, 233, 241, 19, 254, 82, 51,\n\t\t62, 126, 192, 218, 254, 23, 107, 140, 255, 2, 126, 254, 251,\n\t\t135, 55, 225, 99, 246, 231, 97, 126, 127, 126, 150, 156, 192,\n\t\t195, 101, 186, 220, 63, 122, 217, 184, 183, 181, 236, 69,\n\t\t243, 250, 19, 158, 212, 247, 109, 245, 227, 54, 251, 176,\n\t\t73, 211, 62, 254, 241, 132, 29, 84, 219, 106, 73, 27, 245,\n\t\t215, 112, 168, 46, 181, 69, 201, 251, 239, 251, 127, 164,\n\t\t239, 219, 230, 31, 255, 7, 118, 254, 36, 142, 255, 233, 161,\n\t\t188, 159, 220, 57, 16, 234, 248, 124, 60, 171, 241, 77, 90,\n\t\t39, 127, 54, 70, 27, 251, 242, 183, 174, 235, 182, 179, 56,\n\t\t142, 167, 247, 151, 90, 118, 198, 46, 239, 70, 47, 71, 255,\n\t\t242, 203, 255, 237, 210, 82, 110, 195, 44, 154, 70, 58, 167,\n\t\t106, 45, 35, 213, 152, 17, 64, 179, 242, 20, 160, 243, 50,\n\t\t129, 32, 230, 76, 152, 63, 102, 181, 125, 184, 139, 212, 216,\n\t\t24, 59, 25, 43, 188, 108, 193, 143, 74, 209, 221, 127, 4,\n\t\t223, 230, 9, 189, 109, 173, 116, 46, 170, 141, 121, 69, 95,\n\t\t82, 159, 31, 113, 141, 176, 168, 188, 180, 174, 9, 247, 125,\n\t\t118, 232, 35, 226, 60, 37, 4, 234, 135, 164, 138, 233, 181,\n\t\t169, 37, 0, 84, 21, 117, 84, 187, 140, 133, 208, 176, 163,\n\t\t196, 29, 211, 117, 74, 43, 225, 165, 239, 229, 128, 74, 203,\n\t\t74, 106, 175, 178, 81, 103, 165, 235, 229, 40, 45, 0, 22,\n\t\t45, 181, 75, 95, 140, 86, 2, 150, 213, 16, 68, 93, 198, 104,\n\t\t155, 125, 168, 7, 178, 234, 136, 91, 250, 73, 117, 55, 8,\n\t\t60, 31, 129, 235, 148, 71, 168, 242, 136, 218, 142, 121, 4,\n\t\t59, 5, 216, 36, 80, 117, 101, 24, 25, 173, 165, 189, 40, 233,\n\t\t0, 40, 47, 105, 194, 12, 226, 7, 156, 201, 105, 24, 193, 21,\n\t\t17, 225, 202, 242, 148, 58, 107, 168, 103, 45, 198, 6, 141,\n\t\t78, 220, 81, 7, 12, 210, 170, 70, 140, 145, 91, 59, 66, 140,\n\t\t151, 89, 92, 100, 164, 150, 30, 158, 172, 244, 139, 16, 6,\n\t\t90, 34, 50, 250, 185, 226, 134, 172, 189, 35, 198, 166, 55,\n\t\t104, 176, 146, 44, 32, 90, 107, 20, 154, 243, 73, 69, 115,\n\t\t104, 188, 72, 189, 136, 187, 168, 45, 241, 57, 128, 180, 140,\n\t\t90, 51, 215, 235, 255, 92, 225, 34, 136, 51, 0, 102, 198,\n\t\t63, 137, 99, 0, 230, 166, 65, 18, 39, 0, 61, 79, 16, 154,\n\t\t62, 66, 153, 182, 86, 71, 20, 219, 200, 252, 136, 226, 91,\n\t\t87, 28, 97, 76, 179, 202, 128, 177, 104, 106, 21, 197, 17,\n\t\t208, 88, 185, 158, 54, 112, 244, 101, 0, 206, 90, 160, 225,\n\t\t207, 211, 208, 185, 175, 61, 92, 51, 244, 93, 211, 20, 57,\n\t\t111, 44, 174, 167, 251, 0, 138, 148, 65, 139, 43, 11, 75,\n\t\t103, 154, 224, 214, 145, 85, 73, 0, 104, 84, 85, 82, 157,\n\t\t15, 128, 72, 104, 212, 203, 69, 123, 44, 133, 91, 160, 9,\n\t\t13, 133, 109, 122, 220, 127, 201, 169, 218, 33, 87, 88, 74,\n\t\t81, 4, 136, 53, 215, 165, 61, 81, 163, 108, 195, 79, 167,\n\t\t172, 56, 49, 63, 96, 102, 86, 86, 156, 153, 31, 112, 147,\n\t\t44, 43, 4, 243, 11, 56, 223, 178, 162, 62, 194, 159, 55, 63,\n\t\t22, 8, 204, 237, 220, 226, 4, 192, 236, 6, 46, 206, 0, 13,\n\t\t155, 28, 139, 135, 47, 228, 218, 90, 102, 71, 20, 215, 200,\n\t\t50, 62, 162, 216, 214, 133, 115, 97, 133, 225, 102, 149, 233,\n\t\t1, 227, 152, 217, 25, 215, 159, 80, 17, 90, 122, 89, 86, 125,\n\t\t194, 189, 65, 92, 232, 101, 239, 54, 65, 28, 160, 170, 138,\n\t\t186, 204, 57, 229, 150, 13, 35, 90, 118, 114, 57, 170, 241,\n\t\t18, 185, 155, 243, 114, 64, 43, 54, 21, 212, 88, 231, 165,\n\t\t85, 14, 201, 78, 113, 16, 219, 220, 109, 24, 164, 183, 10,\n\t\t161, 178, 138, 74, 130, 27, 99, 71, 205, 243, 90, 160, 134,\n\t\t20, 97, 221, 44, 0, 167, 4, 254, 72, 154, 157, 222, 12, 112,\n\t\t99, 160, 54, 204, 237, 34, 172, 194, 102, 102, 59, 196, 68,\n\t\t173, 116, 141, 85, 19, 211, 169, 233, 153, 54, 216, 217, 155,\n\t\t201, 202, 78, 189, 195, 109, 45, 79, 72, 24, 120, 83, 98,\n\t\t148, 72, 148, 206, 170, 124, 135, 120, 131, 10, 73, 105, 6,\n\t\t94, 177, 108, 90, 132, 157, 226, 138, 55, 223, 251, 134, 87,\n\t\t139, 26, 109, 101, 85, 213, 236, 239, 23, 249, 215, 42, 113,\n\t\t193, 18, 106, 75, 192, 230, 213, 77, 2, 138, 54, 5, 109, 66,\n\t\t11, 136, 105, 112, 156, 7, 204, 42, 33, 69, 171, 10, 136,\n\t\t250, 57, 151, 4, 132, 11, 189, 216, 95, 183, 145, 128, 66,\n\t\t76, 78, 107, 115, 193, 52, 98, 64, 235, 55, 109, 67, 15, 217,\n\t\t198, 180, 80, 98, 75, 67, 147, 45, 234, 228, 184, 57, 211,\n\t\t123, 39, 107, 161, 245, 242, 109, 72, 132, 207, 179, 44, 0,\n\t\t95, 165, 127, 14, 205, 9, 234, 209, 70, 145, 54, 97, 60, 188,\n\t\t151, 246, 22, 201, 97, 242, 104, 132, 211, 60, 127, 4, 118,\n\t\t51, 172, 48, 205, 227, 71, 92, 47, 116, 7, 113, 233, 35, 238,\n\t\t143, 89, 88, 172, 19, 164, 121, 246, 8, 245, 189, 149, 146,\n\t\t126, 0, 119, 30, 210, 220, 106, 168, 246, 165, 164, 21, 212,\n\t\t18, 43, 33, 29, 205, 102, 217, 51, 210, 119, 82, 231, 15,\n\t\t144, 200, 45, 205, 193, 72, 154, 24, 18, 118, 88, 220, 101,\n\t\t251, 251, 200, 105, 225, 208, 56, 37, 93, 104, 242, 15, 37,\n\t\t109, 212, 204, 22, 138, 29, 5, 29, 200, 53, 179, 71, 149,\n\t\t121, 69, 128, 230, 214, 224, 21, 67, 66, 100, 173, 6, 83,\n\t\t127, 151, 13, 20, 20, 72, 213, 172, 213, 104, 154, 69, 66,\n\t\t68, 3, 145, 72, 250, 120, 101, 122, 241, 3, 47, 229, 234,\n\t\t68, 83, 70, 89, 223, 183, 98, 217, 64, 94, 97, 87, 118, 52,\n\t\t89, 149, 175, 231, 230, 85, 194, 211, 128, 196, 192, 90, 249,\n\t\t198, 40, 40, 71, 145, 32, 88, 43, 56, 215, 51, 58, 239, 106,\n\t\t45, 154, 215, 200, 43, 216, 75, 149, 60, 128, 106, 105, 161,\n\t\t188, 157, 209, 169, 82, 235, 213, 249, 130, 134, 44, 169,\n\t\t30, 32, 209, 212, 155, 17, 14, 93, 77, 227, 162, 213, 8, 231,\n\t\t245, 153, 250, 71, 27, 164, 243, 85, 167, 100, 127, 127, 97,\n\t\t132, 232, 230, 1, 18, 213, 16, 20, 234, 153, 165, 55, 6, 239,\n\t\t44, 231, 236, 3, 8, 150, 149, 158, 105, 33, 25, 13, 247, 249,\n\t\t44, 13, 239, 161, 68, 36, 169, 247, 204, 128, 202, 79, 100,\n\t\t248, 61, 236, 212, 162, 13, 191, 135, 122, 114, 81, 80, 135,\n\t\t96, 227, 79, 156, 182, 251, 251, 168, 149, 216, 146, 84, 87,\n\t\t7, 144, 153, 36, 154, 149, 69, 114, 58, 128, 172, 20, 204,\n\t\t116, 105, 197, 14, 27, 132, 197, 141, 162, 185, 105, 174,\n\t\t122, 17, 210, 216, 211, 129, 102, 148, 65, 114, 69, 94, 238,\n\t\t175, 185, 86, 231, 231, 80, 213, 59, 99, 20, 161, 207, 178,\n\t\t66, 105, 188, 225, 136, 100, 135, 192, 174, 105, 105, 16,\n\t\t172, 146, 93, 35, 28, 60, 94, 235, 228, 3, 40, 26, 100, 171,\n\t\t26, 104, 5, 203, 73, 238, 172, 173, 17, 109, 35, 156, 143,\n\t\t188, 185, 50, 235, 115, 135, 98, 201, 48, 161, 17, 177, 51,\n\t\t220, 188, 139, 130, 230, 136, 111, 208, 20, 13, 226, 206,\n\t\t140, 102, 96, 114, 162, 14, 156, 149, 110, 177, 53, 39, 17,\n\t\t84, 195, 172, 117, 111, 44, 86, 191, 146, 29, 227, 228, 13,\n\t\t238, 176, 225, 244, 158, 97, 25, 121, 25, 154, 106, 205, 96,\n\t\t106, 169, 229, 251, 36, 173, 199, 210, 112, 71, 88, 120, 70,\n\t\t147, 109, 164, 158, 57, 109, 167, 8, 178, 217, 236, 212, 40,\n\t\t157, 139, 188, 130, 150, 202, 50, 8, 131, 243, 205, 73, 173,\n\t\t69, 139, 107, 188, 119, 82, 35, 244, 114, 98, 121, 108, 212,\n\t\t146, 77, 64, 201, 177, 133, 150, 143, 132, 4, 48, 194, 112,\n\t\t234, 90, 245, 17, 215, 244, 178, 129, 54, 100, 18, 225, 3,\n\t\t178, 133, 54, 131, 234, 244, 177, 196, 65, 141, 184, 127,\n\t\t73, 103, 10, 200, 73, 51, 192, 228, 3, 112, 233, 101, 140,\n\t\t252, 88, 249, 85, 74, 244, 53, 213, 41, 124, 205, 32, 45,\n\t\t50, 46, 198, 89, 124, 68, 68, 86, 122, 139, 20, 151, 120,\n\t\t255, 222, 97, 186, 88, 51, 195, 131, 175, 36, 203, 122, 35,\n\t\t70, 209, 42, 49, 70, 131, 152, 86, 219, 130, 64, 178, 103,\n\t\t117, 42, 2, 188, 93, 164, 13, 120, 50, 84, 167, 50, 160, 70,\n\t\t81, 43, 172, 89, 118, 132, 153, 220, 172, 153, 13, 48, 52,\n\t\t14, 206, 37, 242, 30, 52, 236, 52, 42, 90, 185, 67, 238, 66,\n\t\t48, 132, 117, 59, 172, 177, 88, 144, 44, 100, 178, 131, 156,\n\t\t130, 138, 74, 33, 195, 240, 89, 233, 89, 19, 9, 157, 156,\n\t\t27, 138, 51, 145, 180, 231, 35, 138, 53, 145, 208, 169, 182,\n\t\t193, 54, 105, 154, 53, 171, 22, 49, 0, 115, 214, 213, 115,\n\t\t2, 192, 172, 145, 181, 72, 1, 26, 219, 90, 139, 135, 130,\n\t\t177, 85, 167, 61, 5, 140, 53, 168, 194, 234, 180, 247, 162,\n\t\t127, 110, 147, 74, 147, 211, 1, 202, 173, 230, 36, 148, 231,\n\t\t250, 200, 202, 139, 114, 88, 171, 170, 78, 161, 52, 212, 174,\n\t\t178, 166, 57, 215, 252, 153, 179, 162, 61, 0, 161, 125, 34,\n\t\t33, 21, 103, 129, 60, 53, 171, 150, 1, 215, 170, 81, 90, 23,\n\t\t53, 122, 134, 82, 99, 222, 28, 144, 174, 49, 111, 240, 27,\n\t\t147, 46, 13, 176, 239, 13, 46, 168, 14, 136, 97, 181, 83,\n\t\t49, 206, 187, 164, 75, 2, 112, 18, 183, 9, 74, 21, 73, 151,\n\t\t7, 144, 243, 86, 77, 88, 139, 41, 2, 232, 77, 57, 180, 59,\n\t\t38, 29, 77, 240, 213, 79, 198, 216, 19, 178, 211, 1, 5, 109,\n\t\t230, 213, 137, 22, 159, 180, 94, 117, 170, 17, 240, 164, 142,\n\t\t201, 23, 212, 244, 66, 161, 126, 44, 155, 56, 0, 244, 107,\n\t\t109, 24, 27, 82, 82, 127, 68, 69, 94, 138, 166, 103, 196,\n\t\t170, 38, 160, 237, 101, 181, 36, 178, 6, 200, 130, 132, 252,\n\t\t5, 187, 172, 18, 137, 123, 77, 30, 81, 53, 220, 110, 227,\n\t\t83, 124, 4, 105, 5, 247, 254, 148, 60, 65, 27, 106, 194, 26,\n\t\t96, 28, 138, 194, 135, 122, 28, 55, 7, 192, 221, 42, 141,\n\t\t112, 100, 159, 220, 112, 155, 223, 9, 117, 67, 121, 172, 240,\n\t\t137, 201, 129, 196, 161, 166, 151, 14, 30, 73, 228, 60, 93,\n\t\t1, 81, 173, 92, 111, 208, 246, 149, 103, 226, 1, 199, 12,\n\t\t124, 158, 53, 71, 216, 43, 150, 81, 243, 172, 123, 64, 141,\n\t\t204, 22, 156, 231, 201, 17, 55, 9, 184, 25, 230, 121, 118,\n\t\t68, 253, 49, 75, 172, 158, 228, 197, 17, 102, 177, 18, 151,\n\t\t231, 97, 126, 201, 55, 107, 198, 63, 113, 100, 36, 135, 110,\n\t\t57, 194, 185, 19, 40, 195, 165, 179, 103, 80, 118, 130, 120,\n\t\t124, 10, 29, 134, 114, 5, 115, 167, 117, 245, 161, 80, 238,\n\t\t188, 46, 178, 71, 28, 123, 98, 23, 249, 35, 16, 31, 128, 85,\n\t\t248, 118, 5, 245, 251, 68, 132, 69, 107, 13, 20, 238, 211,\n\t\t50, 180, 124, 182, 13, 148, 105, 18, 58, 130, 184, 21, 150,\n\t\t36, 201, 17, 17, 141, 198, 195, 146, 146, 134, 90, 131, 45,\n\t\t67, 101, 78, 115, 88, 171, 137, 91, 14, 89, 122, 250, 0, 98,\n\t\t119, 136, 156, 104, 17, 59, 148, 241, 145, 231, 228, 141,\n\t\t111, 180, 193, 155, 77, 56, 248, 53, 182, 116, 164, 249, 94,\n\t\t130, 147, 237, 34, 178, 46, 219, 45, 67, 15, 136, 69, 0, 207,\n\t\t208, 46, 211, 164, 7, 192, 58, 235, 180, 17, 45, 35, 193,\n\t\t102, 100, 121, 218, 208, 131, 20, 158, 49, 73, 84, 89, 253,\n\t\t128, 52, 240, 64, 40, 155, 236, 35, 42, 98, 108, 7, 85, 216,\n\t\t156, 86, 40, 139, 106, 143, 40, 215, 155, 235, 34, 126, 244,\n\t\t82, 188, 65, 53, 140, 244, 228, 59, 124, 198, 141, 204, 63,\n\t\t128, 216, 218, 243, 135, 207, 153, 167, 167, 93, 121, 236,\n\t\t120, 206, 235, 145, 157, 142, 37, 186, 65, 65, 27, 93, 118,\n\t\t58, 182, 240, 77, 90, 135, 201, 54, 89, 80, 152, 76, 243,\n\t\t234, 133, 66, 3, 87, 144, 147, 147, 145, 86, 146, 244, 240,\n\t\t62, 170, 173, 24, 241, 10, 76, 203, 29, 134, 77, 78, 73, 83,\n\t\t7, 136, 146, 204, 217, 28, 190, 204, 116, 157, 132, 135, 110,\n\t\t144, 213, 160, 173, 52, 78, 178, 240, 26, 58, 107, 246, 46,\n\t\t81, 35, 84, 13, 19, 218, 74, 140, 158, 7, 8, 137, 219, 240,\n\t\t33, 195, 176, 60, 3, 144, 170, 120, 128, 48, 147, 34, 37,\n\t\t139, 53, 193, 90, 163, 49, 105, 163, 12, 90, 75, 64, 122,\n\t\t40, 34, 144, 69, 137, 112, 156, 103, 34, 175, 179, 7, 32,\n\t\t238, 172, 242, 17, 243, 172, 125, 123, 113, 147, 104, 252,\n\t\t42, 222, 195, 238, 237, 14, 56, 40, 229, 36, 185, 220, 33,\n\t\t22, 75, 66, 113, 89, 62, 98, 158, 251, 223, 171, 19, 109,\n\t\t38, 102, 108, 148, 180, 23, 201, 185, 117, 10, 242, 25, 54,\n\t\t102, 236, 244, 44, 177, 27, 169, 58, 133, 94, 30, 71, 217,\n\t\t248, 86, 190, 73, 13, 69, 177, 52, 14, 31, 51, 122, 129, 76,\n\t\t37, 105, 56, 33, 140, 121, 133, 139, 162, 40, 179, 35, 34,\n\t\t170, 21, 84, 7, 138, 50, 172, 140, 9, 82, 239, 154, 98, 127,\n\t\t207, 10, 49, 68, 79, 107, 204, 12, 23, 122, 94, 211, 41, 57,\n\t\t137, 81, 66, 166, 98, 208, 80, 239, 52, 165, 117, 250, 24,\n\t\t184, 148, 82, 50, 21, 126, 196, 70, 208, 95, 157, 7, 133,\n\t\t226, 35, 124, 68, 147, 45, 151, 76, 75, 162, 177, 137, 228,\n\t\t12, 127, 113, 230, 127, 241, 29, 202, 218, 82, 112, 191, 128,\n\t\t50, 183, 172, 25, 248, 132, 225, 13, 11, 103, 230, 122, 46,\n\t\t91, 230, 39, 86, 14, 10, 250, 11, 36, 55, 8, 80, 203, 205,\n\t\t101, 199, 194, 135, 73, 51, 90, 68, 80, 141, 185, 31, 113,\n\t\t150, 145, 60, 104, 240, 159, 126, 217, 99, 61, 42, 15, 230,\n\t\t131, 143, 191, 248, 33, 161, 181, 50, 15, 134, 14, 43, 91,\n\t\t229, 57, 34, 112, 124, 14, 61, 171, 54, 146, 183, 53, 216,\n\t\t89, 219, 132, 89, 4, 55, 133, 36, 45, 246, 247, 156, 241,\n\t\t176, 220, 49, 112, 11, 44, 131, 32, 191, 0, 122, 161, 48,\n\t\t57, 161, 8, 243, 205, 92, 81, 53, 105, 188, 191, 135, 58,\n\t\t124, 56, 255, 157, 203, 208, 183, 4, 57, 205, 185, 140, 149,\n\t\t125, 168, 17, 51, 228, 63, 39, 68, 143, 90, 222, 195, 35,\n\t\t33, 28, 86, 51, 60, 109, 131, 196, 54, 123, 175, 101, 167,\n\t\t224, 137, 151, 209, 33, 208, 70, 98, 108, 35, 168, 2, 208,\n\t\t190, 126, 135, 68, 181, 188, 25, 108, 186, 110, 238, 203,\n\t\t190, 21, 174, 103, 62, 43, 77, 98, 194, 120, 81, 99, 239,\n\t\t87, 66, 38, 154, 22, 219, 188, 83, 145, 211, 123, 173, 26,\n\t\t101, 224, 18, 73, 68, 65, 160, 193, 52, 22, 26, 6, 43, 210,\n\t\t149, 91, 57, 105, 115, 107, 161, 244, 148, 157, 36, 129, 220,\n\t\t235, 4, 215, 74, 118, 234, 118, 136, 199, 211, 59, 62, 17,\n\t\t4, 145, 215, 202, 166, 9, 175, 149, 24, 189, 176, 240, 32,\n\t\t170, 105, 40, 122, 97, 7, 209, 244, 226, 21, 122, 36, 202,\n\t\t130, 190, 189, 135, 122, 201, 153, 250, 87, 137, 203, 104,\n\t\t28, 54, 245, 87, 59, 200, 77, 6, 214, 83, 145, 61, 186, 85,\n\t\t152, 252, 148, 166, 251, 251, 168, 77, 99, 248, 229, 221,\n\t\t17, 83, 34, 72, 123, 168, 38, 234, 48, 73, 181, 72, 179, 35,\n\t\t200, 204, 208, 80, 151, 230, 7, 16, 227, 69, 167, 141, 104,\n\t\t197, 56, 120, 58, 20, 36, 217, 175, 152, 149, 195, 3, 81,\n\t\t213, 17, 117, 69, 83, 167, 32, 5, 187, 85, 23, 236, 13, 13,\n\t\t53, 93, 148, 23, 58, 50, 141, 132, 228, 175, 108, 31, 139,\n\t\t13, 232, 69, 211, 155, 139, 21, 19, 52, 51, 148, 161, 88,\n\t\t43, 155, 53, 192, 4, 161, 232, 96, 94, 237, 210, 216, 64,\n\t\t112, 78, 15, 144, 217, 194, 5, 157, 157, 195, 216, 188, 49,\n\t\t110, 154, 244, 76, 136, 31, 63, 160, 67, 168, 164, 190, 28,\n\t\t225, 249, 75, 142, 191, 214, 52, 61, 52, 179, 103, 68, 206,\n\t\t104, 77, 243, 138, 249, 34, 103, 26, 120, 184, 15, 148, 45,\n\t\t125, 196, 42, 239, 175, 33, 10, 104, 192, 194, 218, 51, 90,\n\t\t67, 121, 141, 156, 153, 43, 32, 234, 180, 240, 152, 218, 149,\n\t\t87, 161, 197, 35, 54, 118, 231, 228, 111, 107, 141, 177, 119,\n\t\t91, 8, 236, 92, 113, 128, 113, 148, 141, 148, 198, 218, 248,\n\t\t39, 198, 167, 48, 220, 6, 174, 194, 188, 14, 85, 109, 70,\n\t\t20, 128, 137, 137, 132, 208, 90, 209, 249, 244, 62, 95, 225,\n\t\t128, 148, 7, 224, 34, 14, 241, 10, 82, 65, 150, 181, 214,\n\t\t138, 11, 182, 179, 16, 171, 177, 181, 226, 26, 77, 70, 223,\n\t\t48, 174, 32, 201, 175, 181, 170, 174, 177, 245, 58, 33, 214,\n\t\t16, 97, 120, 3, 118, 118, 166, 137, 107, 205, 132, 185, 41,\n\t\t9, 121, 85, 91, 59, 67, 82, 70, 121, 222, 223, 71, 206, 75,\n\t\t169, 39, 184, 7, 20, 68, 105, 88, 128, 206, 171, 230, 149,\n\t\t211, 139, 202, 54, 180, 106, 102, 252, 63, 68, 67, 111, 231,\n\t\t161, 102, 20, 195, 156, 60, 78, 237, 60, 76, 156, 111, 46,\n\t\t172, 253, 59, 38, 234, 20, 236, 168, 42, 44, 208, 121, 188,\n\t\t72, 102, 8, 169, 77, 55, 129, 105, 97, 217, 249, 142, 144,\n\t\t194, 234, 91, 173, 44, 100, 79, 100, 231, 123, 63, 201, 26,\n\t\t59, 239, 200, 158, 34, 91, 200, 252, 77, 201, 110, 181, 72,\n\t\t198, 104, 134, 19, 193, 84, 50, 140, 195, 152, 92, 179, 82,\n\t\t203, 65, 142, 152, 189, 145, 19, 175, 64, 106, 173, 38, 167,\n\t\t28, 164, 199, 39, 228, 98, 8, 40, 36, 95, 36, 121, 168, 80,\n\t\t195, 99, 136, 20, 10, 57, 212, 152, 186, 77, 199, 171, 28,\n\t\t38, 60, 126, 9, 157, 210, 114, 92, 21, 127, 104, 168, 146,\n\t\t241, 35, 134, 219, 141, 82, 226, 7, 62, 0, 35, 47, 223, 161,\n\t\t131, 151, 156, 78, 1, 205, 251, 147, 194, 4, 25, 223, 20,\n\t\t20, 106, 210, 128, 248, 99, 22, 26, 238, 53, 20, 211, 38,\n\t\t173, 112, 216, 89, 75, 142, 100, 105, 181, 128, 186, 95, 70,\n\t\t122, 147, 244, 189, 180, 18, 174, 251, 156, 168, 111, 43,\n\t\t102, 132, 20, 209, 138, 246, 72, 233, 29, 228, 58, 211, 66,\n\t\t151, 179, 53, 252, 153, 69, 131, 251, 222, 244, 98, 188, 112,\n\t\t1, 69, 25, 25, 130, 228, 123, 163, 197, 192, 185, 56, 19,\n\t\t58, 111, 14, 176, 39, 30, 195, 18, 160, 189, 85, 107, 104,\n\t\t24, 194, 211, 81, 47, 223, 39, 1, 245, 144, 152, 212, 196,\n\t\t13, 241, 220, 12, 150, 145, 109, 83, 190, 79, 203, 114, 150,\n\t\t173, 115, 144, 12, 158, 5, 156, 151, 118, 20, 58, 210, 106,\n\t\t124, 229, 10, 37, 150, 220, 35, 248, 78, 193, 224, 58, 151,\n\t\t214, 6, 164, 179, 197, 20, 196, 38, 111, 114, 61, 75, 112,\n\t\t228, 88, 210, 213, 59, 140, 179, 115, 198, 36, 219, 119, 162,\n\t\t145, 28, 25, 148, 246, 72, 194, 68, 72, 21, 203, 136, 50,\n\t\t25, 80, 131, 116, 78, 142, 12, 35, 247, 220, 125, 64, 179,\n\t\t235, 52, 166, 45, 182, 91, 180, 33, 183, 200, 73, 234, 210,\n\t\t251, 232, 34, 48, 159, 171, 36, 90, 101, 39, 156, 127, 30,\n\t\t108, 113, 62, 0, 59, 99, 57, 92, 17, 250, 8, 158, 217, 130,\n\t\t234, 147, 194, 51, 172, 0, 218, 4, 238, 16, 214, 168, 81,\n\t\t19, 172, 133, 148, 147, 138, 36, 136, 78, 182, 156, 30, 118,\n\t\t34, 196, 128, 125, 40, 73, 232, 206, 165, 23, 165, 141, 190,\n\t\t195, 221, 36, 166, 217, 211, 169, 203, 128, 107, 162, 222,\n\t\t83, 184, 158, 162, 222, 223, 51, 31, 156, 16, 13, 121, 195,\n\t\t240, 97, 135, 77, 121, 196, 205, 173, 66, 39, 87, 210, 84,\n\t\t7, 20, 231, 176, 105, 206, 15, 160, 209, 91, 1, 15, 230, 162,\n\t\t60, 182, 173, 113, 80, 87, 111, 219, 3, 230, 137, 160, 91,\n\t\t148, 71, 160, 124, 111, 160, 105, 56, 33, 255, 223, 29, 53,\n\t\t25, 168, 251, 23, 180, 254, 87, 152, 26, 112, 76, 82, 66,\n\t\t246, 236, 59, 138, 45, 172, 59, 194, 198, 55, 195, 40, 240,\n\t\t97, 163, 56, 224, 120, 135, 71, 65, 91, 243, 10, 127, 194,\n\t\t88, 174, 170, 207, 56, 206, 116, 75, 206, 254, 21, 59, 181,\n\t\t104, 23, 74, 154, 99, 189, 147, 185, 74, 59, 25, 5, 157, 80,\n\t\t9, 153, 197, 54, 168, 125, 26, 215, 86, 84, 233, 1, 188, 28,\n\t\t158, 194, 207, 112, 187, 42, 170, 227, 32, 110, 78, 79, 8,\n\t\t59, 214, 190, 232, 194, 120, 74, 31, 63, 249, 138, 21, 239,\n\t\t164, 217, 219, 6, 157, 54, 213, 62, 19, 244, 162, 167, 32,\n\t\t171, 84, 81, 237, 75, 12, 73, 32, 113, 188, 183, 132, 73,\n\t\t114, 80, 135, 25, 178, 108, 250, 147, 197, 221, 94, 236, 35,\n\t\t142, 183, 251, 125, 169, 176, 7, 100, 37, 243, 3, 70, 190,\n\t\t47, 26, 225, 172, 28, 222, 124, 147, 236, 0, 238, 160, 218,\n\t\t149, 150, 97, 83, 176, 206, 115, 241, 114, 213, 3, 104, 203,\n\t\t25, 5, 202, 218, 187, 33, 192, 184, 253, 158, 232, 8, 43,\n\t\t116, 85, 109, 1, 42, 19, 97, 74, 99, 238, 235, 190, 44, 156,\n\t\t143, 172, 80, 88, 245, 47, 137, 110, 219, 105, 1, 93, 195,\n\t\t100, 16, 91, 222, 111, 212, 14, 105, 97, 73, 73, 114, 40,\n\t\t41, 154, 161, 23, 164, 34, 90, 70, 167, 5, 14, 145, 13, 123,\n\t\t157, 86, 205, 43, 28, 183, 176, 205, 61, 97, 165, 228, 123,\n\t\t61, 179, 235, 177, 205, 35, 140, 27, 54, 194, 16, 195, 164,\n\t\t51, 26, 143, 104, 76, 209, 78, 27, 130, 229, 166, 151, 36,\n\t\t234, 221, 113, 140, 66, 19, 83, 48, 210, 29, 198, 56, 118,\n\t\t74, 242, 253, 117, 6, 251, 208, 179, 100, 127, 31, 137, 171,\n\t\t116, 12, 209, 136, 98, 250, 142, 56, 86, 88, 109, 0, 150,\n\t\t153, 48, 57, 89, 71, 31, 192, 218, 92, 12, 23, 69, 153, 203,\n\t\t114, 255, 133, 106, 24, 159, 39, 81, 25, 3, 40, 234, 20, 92,\n\t\t22, 180, 235, 25, 243, 60, 88, 52, 15, 29, 105, 159, 118,\n\t\t212, 169, 252, 140, 227, 58, 138, 184, 165, 157, 177, 243,\n\t\t80, 67, 155, 111, 154, 132, 1, 98, 37, 203, 189, 105, 179,\n\t\t229, 21, 213, 208, 35, 86, 110, 114, 77, 196, 133, 235, 134,\n\t\t51, 223, 74, 89, 59, 104, 165, 37, 143, 73, 103, 161, 217,\n\t\t164, 32, 77, 179, 99, 60, 94, 9, 217, 236, 86, 0, 107, 67,\n\t\t36, 234, 70, 55, 235, 134, 177, 101, 197, 180, 172, 230, 113,\n\t\t148, 250, 9, 121, 130, 116, 205, 110, 246, 181, 129, 130,\n\t\t147, 188, 15, 199, 69, 104, 209, 120, 213, 68, 86, 78, 115,\n\t\t173, 21, 228, 88, 16, 127, 53, 128, 157, 100, 172, 170, 5,\n\t\t197, 214, 44, 186, 198, 4, 207, 241, 132, 232, 193, 23, 225,\n\t\t162, 105, 134, 195, 82, 164, 29, 97, 222, 160, 224, 23, 135,\n\t\t246, 75, 212, 83, 25, 57, 176, 46, 107, 40, 165, 198, 164,\n\t\t143, 148, 148, 140, 139, 244, 209, 100, 152, 64, 210, 148,\n\t\t52, 98, 232, 99, 72, 73, 243, 188, 92, 120, 53, 61, 37, 78,\n\t\t212, 165, 55, 144, 213, 87, 82, 116, 226, 69, 49, 9, 38, 234,\n\t\t253, 61, 100, 120, 159, 105, 136, 160, 81, 45, 33, 251, 251,\n\t\t69, 249, 39, 246, 157, 54, 180, 194, 99, 71, 64, 124, 174,\n\t\t143, 8, 78, 73, 73, 178, 7, 20, 175, 168, 158, 247, 10, 95,\n\t\t173, 120, 133, 11, 35, 35, 47, 206, 69, 121, 45, 112, 236,\n\t\t232, 142, 192, 146, 86, 78, 62, 167, 139, 22, 206, 45, 103,\n\t\t53, 14, 24, 175, 72, 201, 222, 112, 131, 176, 94, 141, 104,\n\t\t47, 141, 137, 243, 253, 0, 228, 164, 22, 58, 14, 55, 240,\n\t\t181, 87, 238, 85, 66, 58, 161, 56, 150, 10, 117, 245, 34,\n\t\t11, 16, 236, 13, 74, 195, 212, 95, 0, 17, 206, 249, 20, 122,\n\t\t3, 231, 15, 139, 73, 65, 95, 1, 145, 232, 172, 106, 144, 204,\n\t\t82, 84, 143, 184, 45, 3, 21, 108, 54, 25, 253, 239, 72, 7,\n\t\t83, 77, 21, 20, 75, 189, 161, 228, 108, 177, 41, 180, 162,\n\t\t147, 236, 98, 58, 38, 157, 144, 168, 8, 161, 59, 246, 156,\n\t\t35, 51, 197, 197, 152, 214, 74, 28, 45, 152, 81, 2, 154, 0,\n\t\t130, 125, 154, 145, 201, 255, 98, 12, 182, 189, 37, 34, 62,\n\t\t34, 22, 181, 2, 103, 92, 162, 196, 52, 119, 220, 154, 64,\n\t\t16, 193, 234, 15, 48, 28, 7, 68, 76, 135, 3, 12, 126, 64,\n\t\t76, 46, 158, 35, 144, 95, 185, 109, 254, 128, 190, 10, 173,\n\t\t113, 24, 62, 121, 132, 46, 102, 154, 173, 64, 155, 117, 73,\n\t\t60, 179, 139, 21, 237, 124, 183, 120, 10, 72, 4, 32, 195,\n\t\t239, 197, 10, 207, 100, 104, 75, 78, 123, 105, 200, 2, 145,\n\t\t182, 52, 249, 173, 20, 94, 218, 200, 247, 216, 31, 68, 210,\n\t\t226, 17, 183, 217, 181, 33, 154, 102, 164, 85, 3, 147, 205,\n\t\t132, 226, 96, 47, 22, 7, 55, 147, 208, 178, 188, 231, 118,\n\t\t146, 83, 114, 192, 212, 18, 246, 103, 113, 74, 63, 128, 34,\n\t\t119, 149, 144, 196, 81, 16, 61, 120, 133, 246, 82, 88, 120,\n\t\t186, 20, 123, 159, 170, 113, 153, 20, 140, 162, 74, 92, 216,\n\t\t3, 44, 242, 18, 167, 132, 40, 78, 229, 17, 236, 57, 84, 117,\n\t\t64, 241, 101, 157, 142, 40, 51, 94, 102, 56, 2, 20, 6, 117,\n\t\t128, 61, 251, 26, 241, 25, 125, 85, 35, 210, 205, 10, 34,\n\t\t36, 173, 88, 22, 212, 4, 208, 49, 35, 41, 132, 182, 7, 168,\n\t\t86, 35, 60, 11, 42, 145, 127, 68, 133, 116, 166, 16, 94, 28,\n\t\t224, 79, 128, 5, 177, 118, 22, 32, 99, 116, 200, 194, 17,\n\t\t97, 103, 216, 125, 25, 17, 135, 47, 179, 242, 80, 74, 173,\n\t\t194, 49, 52, 107, 152, 84, 140, 66, 66, 250, 39, 251, 16,\n\t\t165, 2, 233, 197, 162, 125, 71, 163, 132, 121, 139, 18, 218,\n\t\t174, 14, 176, 39, 110, 103, 74, 7, 186, 161, 173, 192, 195,\n\t\t217, 85, 132, 26, 6, 40, 117, 148, 36, 164, 246, 98, 128,\n\t\t58, 127, 73, 162, 101, 47, 198, 54, 234, 13, 23, 214, 159,\n\t\t215, 237, 103, 220, 182, 92, 33, 90, 2, 244, 12, 149, 155,\n\t\t156, 232, 98, 43, 86, 43, 38, 53, 75, 74, 78, 194, 21, 54,\n\t\t9, 236, 63, 73, 41, 169, 224, 134, 146, 120, 31, 76, 201,\n\t\t204, 189, 161, 140, 26, 249, 208, 98, 81, 125, 130, 178, 121,\n\t\t226, 138, 79, 80, 62, 75, 92, 254, 9, 203, 228, 136, 43, 63,\n\t\t2, 153, 15, 23, 7, 156, 197, 129, 57, 105, 113, 108, 161,\n\t\t107, 148, 115, 6, 103, 45, 42, 142, 95, 237, 38, 174, 184,\n\t\t243, 142, 130, 36, 52, 50, 114, 174, 128, 168, 151, 122, 98,\n\t\t102, 87, 115, 232, 14, 215, 227, 156, 59, 105, 189, 183, 126,\n\t\t126, 85, 2, 38, 122, 148, 161, 187, 92, 239, 161, 9, 36, 61,\n\t\t135, 70, 249, 232, 202, 77, 183, 82, 134, 233, 118, 123, 133,\n\t\t91, 84, 73, 28, 172, 190, 133, 102, 2, 146, 181, 122, 41,\n\t\t184, 84, 25, 228, 244, 90, 32, 107, 170, 29, 72, 119, 37,\n\t\t147, 205, 142, 98, 143, 230, 110, 71, 58, 40, 11, 21, 231,\n\t\t189, 85, 112, 229, 198, 148, 1, 116, 5, 68, 181, 53, 88, 37,\n\t\t170, 72, 216, 92, 113, 53, 62, 219, 83, 50, 58, 246, 82, 171,\n\t\t198, 76, 120, 234, 22, 148, 194, 162, 87, 151, 94, 111, 14,\n\t\t46, 216, 244, 132, 96, 76, 88, 103, 73, 204, 242, 94, 77,\n\t\t19, 178, 204, 151, 196, 35, 239, 213, 4, 231, 43, 241, 58,\n\t\t250, 213, 140, 189, 78, 88, 236, 9, 37, 123, 113, 175, 156,\n\t\t55, 48, 5, 66, 66, 105, 4, 250, 69, 171, 191, 69, 211, 140,\n\t\t195, 238, 200, 119, 223, 175, 116, 50, 46, 121, 83, 37, 66,\n\t\t105, 208, 14, 22, 83, 26, 208, 222, 24, 141, 180, 197, 156,\n\t\t200, 140, 189, 177, 99, 205, 248, 28, 194, 202, 48, 152, 8,\n\t\t88, 18, 227, 125, 5, 172, 211, 12, 182, 149, 118, 87, 227,\n\t\t38, 134, 27, 22, 119, 167, 71, 12, 235, 62, 106, 63, 224,\n\t\t220, 109, 192, 246, 164, 156, 52, 183, 222, 248, 200, 67,\n\t\t219, 65, 113, 14, 157, 237, 161, 77, 167, 32, 18, 83, 111,\n\t\t252, 119, 40, 49, 100, 148, 218, 167, 55, 179, 93, 117, 100,\n\t\t52, 239, 139, 252, 3, 40, 146, 56, 77, 214, 62, 250, 4, 228,\n\t\t146, 212, 133, 169, 25, 144, 142, 161, 25, 167, 197, 222,\n\t\t68, 39, 163, 86, 48, 206, 198, 178, 219, 113, 63, 126, 160,\n\t\t130, 72, 183, 238, 237, 237, 109, 132, 234, 114, 73, 113,\n\t\t9, 189, 31, 116, 129, 150, 1, 5, 81, 246, 115, 237, 38, 152,\n\t\t119, 34, 35, 170, 188, 138, 154, 217, 58, 72, 166, 74, 243,\n\t\t251, 102, 171, 26, 213, 224, 228, 38, 21, 73, 123, 170, 141,\n\t\t106, 193, 48, 191, 200, 211, 168, 90, 54, 53, 58, 157, 89,\n\t\t119, 8, 59, 49, 239, 123, 173, 186, 104, 131, 246, 154, 138,\n\t\t68, 71, 206, 215, 27, 103, 71, 0, 212, 251, 41, 179, 179,\n\t\t26, 90, 104, 116, 162, 148, 30, 106, 196, 204, 196, 152, 18,\n\t\t27, 168, 177, 149, 140, 67, 98, 71, 204, 206, 195, 189, 39,\n\t\t37, 87, 228, 253, 78, 15, 200, 239, 37, 127, 157, 26, 59,\n\t\t232, 19, 37, 130, 240, 242, 254, 89, 250, 1, 65, 48, 231,\n\t\t197, 5, 43, 235, 9, 57, 27, 213, 150, 145, 2, 97, 42, 146,\n\t\t159, 87, 204, 40, 125, 36, 223, 39, 109, 44, 150, 157, 200,\n\t\t180, 169, 198, 55, 229, 152, 196, 179, 180, 227, 43, 243,\n\t\t206, 88, 80, 83, 242, 182, 46, 251, 20, 180, 98, 199, 116,\n\t\t210, 41, 63, 227, 195, 62, 35, 199, 207, 134, 136, 70, 131,\n\t\t19, 90, 145, 40, 244, 93, 188, 225, 120, 166, 123, 49, 223,\n\t\t101, 139, 78, 131, 146, 124, 167, 203, 123, 214, 43, 90, 80,\n\t\t160, 223, 119, 57, 190, 226, 208, 210, 140, 136, 126, 223,\n\t\t49, 27, 175, 162, 237, 242, 187, 185, 64, 129, 36, 163, 124,\n\t\t116, 223, 25, 143, 127, 65, 180, 238, 239, 198, 12, 26, 38,\n\t\t219, 160, 179, 241, 187, 153, 87, 178, 214, 181, 87, 26, 50,\n\t\t255, 74, 226, 170, 125, 199, 223, 114, 162, 183, 79, 20, 51,\n\t\t226, 108, 127, 119, 221, 122, 17, 6, 106, 16, 69, 131, 188,\n\t\t10, 81, 99, 165, 171, 38, 192, 5, 91, 234, 10, 74, 36, 140,\n\t\t173, 180, 49, 89, 67, 94, 229, 141, 137, 194, 201, 41, 183,\n\t\t203, 2, 97, 28, 177, 9, 237, 15, 175, 242, 214, 192, 123,\n\t\t30, 50, 34, 132, 191, 46, 146, 57, 254, 150, 251, 106, 124,\n\t\t85, 205, 235, 122, 36, 49, 18, 83, 253, 9, 22, 193, 4, 203,\n\t\t53, 181, 73, 97, 166, 56, 89, 218, 151, 247, 172, 253, 137,\n\t\t56, 87, 43, 232, 170, 198, 87, 86, 224, 45, 136, 124, 245,\n\t\t170, 174, 42, 170, 21, 206, 39, 147, 81, 103, 26, 251, 6,\n\t\t13, 59, 57, 185, 139, 180, 24, 91, 38, 23, 98, 89, 238, 152,\n\t\t245, 102, 4, 56, 153, 107, 194, 76, 92, 40, 210, 249, 136,\n\t\t224, 56, 83, 5, 101, 142, 213, 194, 50, 30, 172, 140, 116,\n\t\t122, 45, 156, 239, 80, 63, 166, 116, 2, 109, 8, 126, 89, 164,\n\t\t116, 21, 130, 22, 243, 5, 18, 30, 206, 231, 3, 128, 31, 55,\n\t\t113, 68, 241, 134, 177, 115, 125, 196, 113, 214, 174, 115,\n\t\t232, 130, 155, 180, 209, 197, 26, 168, 98, 23, 100, 192, 97,\n\t\t114, 180, 197, 68, 42, 211, 82, 140, 19, 78, 2, 149, 80, 63,\n\t\t201, 1, 30, 31, 49, 9, 150, 140, 31, 48, 79, 218, 253, 61,\n\t\t111, 15, 46, 63, 128, 158, 24, 131, 43, 130, 190, 173, 110,\n\t\t218, 43, 103, 207, 205, 200, 84, 179, 33, 103, 46, 120, 51,\n\t\t171, 105, 242, 170, 78, 70, 150, 209, 104, 41, 135, 243, 170,\n\t\t198, 213, 179, 134, 30, 60, 10, 75, 98, 50, 30, 101, 100,\n\t\t16, 210, 120, 88, 99, 18, 226, 150, 247, 178, 133, 150, 236,\n\t\t152, 12, 157, 132, 137, 48, 76, 238, 69, 225, 101, 148, 210,\n\t\t161, 160, 213, 56, 67, 38, 105, 21, 106, 178, 130, 101, 104,\n\t\t211, 33, 198, 164, 84, 137, 41, 141, 207, 122, 11, 31, 147,\n\t\t193, 145, 162, 241, 86, 12, 84, 129, 226, 166, 62, 64, 102,\n\t\t12, 161, 154, 76, 179, 249, 57, 86, 122, 53, 106, 51, 113,\n\t\t139, 184, 44, 47, 20, 82, 176, 188, 231, 40, 5, 89, 24, 43,\n\t\t51, 94, 14, 55, 57, 112, 215, 74, 132, 189, 237, 17, 206,\n\t\t93, 42, 17, 11, 8, 103, 175, 148, 32, 246, 194, 7, 60, 190,\n\t\t80, 130, 40, 7, 218, 92, 35, 86, 46, 76, 201, 55, 167, 231,\n\t\t203, 69, 92, 228, 154, 17, 15, 238, 69, 180, 50, 110, 248,\n\t\t83, 136, 90, 181, 40, 3, 35, 204, 156, 159, 145, 145, 108,\n\t\t16, 23, 44, 94, 210, 229, 71, 131, 184, 224, 112, 131, 152,\n\t\t8, 131, 131, 80, 58, 170, 103, 13, 143, 169, 42, 223, 65,\n\t\t77, 175, 48, 61, 130, 152, 227, 44, 99, 57, 124, 207, 216,\n\t\t10, 109, 44, 190, 234, 160, 136, 59, 130, 65, 110, 12, 209,\n\t\t192, 6, 49, 69, 203, 169, 138, 201, 98, 231, 238, 35, 138,\n\t\t179, 144, 137, 248, 3, 18, 114, 199, 40, 38, 103, 71, 113,\n\t\t155, 34, 113, 119, 22, 228, 4, 183, 152, 116, 239, 242, 105,\n\t\t221, 30, 160, 193, 128, 248, 149, 75, 109, 204, 218, 40, 247,\n\t\t174, 98, 218, 93, 136, 208, 110, 108, 213, 165, 29, 100, 121,\n\t\t207, 231, 118, 75, 211, 234, 0, 115, 222, 26, 108, 142, 77,\n\t\t207, 159, 96, 48, 196, 41, 165, 208, 196, 35, 16, 250, 69,\n\t\t41, 240, 100, 192, 244, 195, 178, 219, 223, 123, 211, 194,\n\t\t245, 152, 119, 161, 187, 223, 177, 72, 155, 208, 41, 58, 200,\n\t\t22, 159, 157, 228, 218, 95, 0, 19, 52, 20, 102, 205, 94, 134,\n\t\t130, 68, 169, 148, 118, 244, 13, 17, 65, 138, 16, 113, 223,\n\t\t7, 217, 190, 226, 72, 180, 110, 47, 5, 110, 43, 25, 113, 141,\n\t\t7, 41, 61, 220, 198, 82, 138, 217, 26, 228, 69, 112, 124,\n\t\t114, 98, 198, 13, 18, 198, 168, 37, 161, 21, 125, 84, 107,\n\t\t198, 23, 69, 30, 141, 5, 100, 141, 94, 243, 95, 200, 27, 102,\n\t\t144, 144, 167, 100, 144, 3, 182, 158, 22, 89, 248, 174, 177,\n\t\t149, 26, 83, 85, 234, 208, 234, 209, 88, 236, 14, 8, 139,\n\t\t79, 218, 102, 198, 214, 141, 52, 148, 226, 37, 180, 61, 85,\n\t\t100, 164, 27, 84, 99, 77, 211, 67, 42, 118, 74, 9, 148, 86,\n\t\t16, 151, 55, 63, 33, 234, 204, 142, 98, 119, 150, 51, 66,\n\t\t178, 49, 65, 69, 246, 25, 207, 222, 224, 64, 188, 130, 21,\n\t\t235, 26, 204, 112, 41, 147, 99, 91, 185, 187, 14, 73, 156,\n\t\t224, 248, 181, 49, 5, 246, 174, 128, 103, 150, 159, 242, 136,\n\t\t123, 146, 80, 50, 224, 188, 199, 158, 9, 178, 141, 224, 204,\n\t\t48, 89, 19, 6, 234, 157, 203, 40, 151, 158, 66, 103, 254,\n\t\t152, 33, 249, 42, 35, 21, 127, 48, 53, 19, 74, 67, 178, 198,\n\t\t134, 96, 135, 185, 37, 84, 11, 73, 238, 196, 103, 24, 204,\n\t\t136, 19, 189, 100, 225, 208, 55, 163, 188, 69, 140, 105, 63,\n\t\t38, 202, 201, 142, 226, 90, 68, 113, 160, 7, 228, 85, 224,\n\t\t156, 13, 97, 143, 123, 132, 114, 135, 111, 86, 31, 225, 92,\n\t\t34, 194, 34, 107, 62, 193, 216, 18, 67, 239, 141, 51, 147,\n\t\t182, 172, 16, 225, 203, 113, 180, 227, 41, 188, 183, 94, 216,\n\t\t104, 146, 206, 99, 147, 12, 121, 130, 7, 227, 254, 128, 54,\n\t\t128, 146, 72, 253, 131, 241, 198, 178, 119, 154, 36, 225,\n\t\t251, 230, 209, 227, 44, 124, 101, 183, 99, 156, 124, 230,\n\t\t246, 165, 164, 162, 195, 124, 137, 122, 156, 214, 153, 76,\n\t\t116, 195, 236, 176, 216, 72, 25, 102, 71, 193, 69, 129, 103,\n\t\t68, 203, 28, 37, 204, 238, 91, 38, 225, 189, 191, 26, 251,\n\t\t26, 93, 21, 14, 67, 40, 187, 142, 128, 51, 243, 69, 20, 157,\n\t\t59, 202, 171, 227, 220, 252, 9, 101, 168, 26, 213, 80, 107,\n\t\t44, 11, 157, 8, 177, 60, 107, 77, 228, 174, 10, 103, 218,\n\t\t204, 41, 153, 53, 163, 2, 230, 68, 158, 94, 222, 51, 166,\n\t\t67, 34, 183, 142, 198, 63, 209, 201, 101, 0, 73, 247, 44,\n\t\t190, 138, 40, 86, 227, 4, 197, 6, 98, 146, 140, 238, 4, 95,\n\t\t223, 167, 196, 56, 123, 187, 94, 62, 139, 247, 65, 218, 17,\n\t\t182, 123, 117, 88, 235, 72, 74, 73, 118, 238, 184, 121, 228,\n\t\t145, 247, 126, 52, 237, 104, 94, 181, 112, 110, 84, 175, 104,\n\t\t243, 76, 41, 249, 219, 3, 240, 137, 113, 137, 216, 121, 70,\n\t\t233, 168, 129, 122, 68, 73, 124, 95, 163, 219, 167, 60, 114,\n\t\t58, 212, 160, 215, 160, 36, 117, 99, 209, 102, 25, 69, 46,\n\t\t165, 61, 103, 193, 224, 139, 70, 201, 56, 101, 38, 124, 227,\n\t\t64, 74, 102, 104, 51, 121, 53, 46, 155, 23, 179, 236, 82,\n\t\t218, 10, 141, 131, 62, 93, 146, 203, 12, 195, 57, 174, 136,\n\t\t34, 108, 102, 207, 58, 128, 238, 141, 157, 196, 69, 230, 112,\n\t\t158, 84, 59, 128, 163, 129, 37, 100, 110, 153, 132, 26, 61,\n\t\t123, 251, 72, 210, 61, 192, 22, 41, 145, 81, 100, 4, 225,\n\t\t180, 244, 152, 229, 79, 41, 156, 39, 161, 59, 184, 213, 100,\n\t\t228, 29, 155, 56, 98, 104, 78, 44, 197, 117, 155, 137, 38,\n\t\t141, 111, 95, 72, 246, 130, 38, 105, 27, 13, 229, 191, 152,\n\t\t52, 130, 73, 88, 209, 244, 179, 151, 220, 77, 54, 116, 226,\n\t\t47, 64, 46, 191, 79, 210, 238, 32, 134, 236, 80, 80, 222,\n\t\t215, 73, 56, 199, 202, 245, 97, 112, 157, 23, 157, 88, 148,\n\t\t112, 229, 240, 204, 63, 32, 161, 124, 38, 195, 144, 120, 139,\n\t\t211, 123, 100, 148, 222, 99, 18, 51, 190, 22, 39, 111, 14,\n\t\t128, 39, 177, 10, 167, 208, 24, 104, 152, 170, 195, 151, 115,\n\t\t201, 239, 137, 231, 193, 17, 192, 74, 50, 218, 49, 86, 43,\n\t\t34, 193, 76, 146, 53, 155, 210, 21, 184, 11, 164, 19, 99,\n\t\t3, 181, 24, 177, 87, 19, 141, 10, 82, 18, 68, 187, 67, 158,\n\t\t72, 189, 117, 64, 53, 138, 21, 221, 200, 8, 127, 71, 217,\n\t\t153, 91, 94, 50, 224, 198, 91, 36, 108, 35, 224, 193, 87,\n\t\t237, 221, 96, 38, 189, 154, 182, 160, 10, 149, 55, 161, 60,\n\t\t219, 224, 109, 38, 61, 23, 15, 16, 236, 252, 40, 200, 240,\n\t\t50, 73, 171, 56, 189, 36, 35, 98, 205, 36, 173, 51, 99, 84,\n\t\t51, 183, 126, 85, 164, 81, 76, 189, 168, 173, 106, 152, 75,\n\t\t118, 50, 82, 220, 166, 222, 200, 81, 189, 71, 157, 21, 131,\n\t\t92, 132, 24, 8, 110, 30, 193, 203, 136, 181, 22, 71, 31, 83,\n\t\t40, 25, 167, 12, 198, 161, 79, 158, 106, 107, 89, 216, 11,\n\t\t54, 24, 31, 201, 114, 58, 226, 222, 140, 158, 113, 200, 28,\n\t\t217, 192, 166, 30, 38, 255, 36, 234, 223, 164, 100, 27, 77,\n\t\t138, 225, 89, 134, 41, 20, 80, 92, 36, 14, 9, 98, 7, 100,\n\t\t15, 217, 98, 57, 221, 208, 119, 64, 78, 208, 3, 38, 66, 19,\n\t\t47, 151, 91, 84, 99, 131, 68, 78, 50, 217, 196, 120, 131,\n\t\t115, 114, 162, 78, 171, 116, 45, 177, 101, 158, 36, 223, 0,\n\t\t138, 160, 236, 67, 42, 245, 14, 123, 18, 184, 64, 13, 211,\n\t\t162, 145, 145, 233, 162, 171, 177, 14, 155, 21, 74, 162, 153,\n\t\t112, 135, 83, 76, 49, 238, 43, 32, 18, 214, 170, 55, 198,\n\t\t170, 117, 44, 41, 106, 229, 36, 44, 23, 13, 31, 54, 88, 28,\n\t\t247, 17, 135, 221, 72, 139, 219, 147, 100, 99, 148, 70, 105,\n\t\t129, 241, 55, 106, 100, 109, 104, 24, 190, 116, 140, 40, 157,\n\t\t76, 120, 73, 76, 169, 229, 214, 112, 145, 39, 6, 134, 226,\n\t\t0, 123, 194, 230, 166, 137, 109, 214, 187, 216, 208, 88, 135,\n\t\t237, 206, 64, 93, 187, 36, 241, 125, 121, 15, 45, 162, 101,\n\t\t16, 60, 32, 117, 40, 221, 219, 96, 214, 139, 200, 33, 195,\n\t\t133, 168, 50, 147, 129, 110, 226, 146, 180, 150, 69, 54, 176,\n\t\t2, 154, 23, 51, 178, 13, 78, 102, 30, 91, 62, 189, 16, 141,\n\t\t163, 185, 74, 27, 153, 14, 58, 73, 195, 110, 103, 225, 156,\n\t\t41, 201, 31, 176, 188, 95, 169, 227, 12, 103, 184, 12, 171,\n\t\t242, 79, 146, 59, 212, 201, 103, 92, 84, 27, 143, 181, 247,\n\t\t156, 12, 41, 0, 206, 81, 188, 200, 50, 192, 101, 69, 136,\n\t\t201, 231, 63, 89, 211, 200, 118, 182, 56, 19, 39, 197, 143,\n\t\t76, 214, 180, 115, 227, 163, 30, 71, 43, 164, 20, 65, 50,\n\t\t89, 179, 106, 90, 173, 226, 24, 80, 5, 165, 3, 155, 184, 248,\n\t\t249, 140, 28, 155, 211, 252, 227, 135, 150, 203, 150, 138,\n\t\t47, 143, 165, 200, 225, 233, 230, 123, 188, 60, 41, 46, 244,\n\t\t143, 63, 208, 239, 73, 139, 252, 131, 191, 106, 248, 62, 15,\n\t\t255, 152, 165, 99, 51, 78, 157, 30, 49, 207, 150, 113, 40,\n\t\t78, 181, 45, 167, 209, 23, 161, 60, 53, 186, 70, 64, 57, 34,\n\t\t223, 75, 194, 105, 121, 82, 242, 183, 253, 49, 27, 207, 95,\n\t\t169, 66, 225, 198, 27, 138, 77, 66, 78, 92, 170, 63, 102,\n\t\t139, 53, 88, 154, 38, 150, 38, 0, 106, 51, 5, 124, 88, 209,\n\t\t42, 246, 142, 116, 162, 40, 5, 16, 151, 145, 131, 200, 61,\n\t\t86, 168, 177, 134, 78, 224, 138, 34, 37, 172, 24, 91, 168,\n\t\t51, 199, 228, 45, 180, 194, 77, 43, 125, 57, 154, 144, 178,\n\t\t90, 213, 161, 164, 55, 169, 177, 41, 158, 20, 8, 43, 113,\n\t\t122, 159, 156, 226, 182, 87, 0, 31, 155, 73, 57, 29, 172,\n\t\t20, 45, 148, 129, 114, 178, 145, 88, 89, 227, 172, 62, 100,\n\t\t85, 181, 178, 145, 106, 130, 202, 21, 221, 148, 97, 37, 103,\n\t\t234, 75, 136, 60, 96, 101, 27, 89, 133, 111, 6, 203, 100,\n\t\t40, 167, 197, 249, 8, 19, 242, 235, 109, 136, 72, 104, 133,\n\t\t179, 238, 157, 30, 113, 188, 58, 65, 30, 46, 43, 91, 44, 139,\n\t\t85, 196, 194, 178, 178, 133, 151, 33, 18, 179, 127, 121, 207,\n\t\t76, 175, 180, 11, 195, 185, 93, 253, 134, 111, 192, 222, 7,\n\t\t107, 180, 248, 146, 141, 83, 24, 245, 9, 102, 3, 201, 100,\n\t\t113, 0, 68, 56, 210, 54, 73, 211, 3, 8, 239, 153, 101, 64,\n\t\t172, 246, 35, 124, 57, 127, 17, 190, 220, 73, 97, 155, 254,\n\t\t194, 36, 119, 237, 194, 216, 59, 163, 223, 176, 18, 159, 81,\n\t\t242, 255, 69, 98, 100, 238, 116, 173, 234, 208, 65, 254, 42,\n\t\t25, 183, 126, 232, 105, 228, 87, 45, 136, 96, 109, 85, 93,\n\t\t99, 175, 41, 109, 227, 12, 175, 167, 34, 103, 134, 229, 114,\n\t\t194, 210, 199, 154, 26, 26, 161, 11, 146, 5, 45, 151, 227,\n\t\t32, 33, 138, 221, 134, 104, 240, 188, 204, 228, 105, 71, 217,\n\t\t1, 218, 98, 233, 190, 3, 107, 102, 60, 50, 100, 209, 178,\n\t\t248, 30, 14, 98, 54, 88, 247, 212, 15, 69, 171, 118, 174,\n\t\t239, 201, 165, 16, 138, 14, 34, 86, 21, 39, 251, 253, 10,\n\t\t136, 26, 51, 212, 106, 196, 36, 7, 114, 124, 109, 200, 231,\n\t\t177, 155, 100, 179, 221, 176, 207, 226, 44, 243, 208, 192,\n\t\t145, 185, 127, 169, 34, 30, 140, 157, 39, 249, 228, 75, 239,\n\t\t205, 115, 162, 141, 26, 236, 211, 37, 127, 237, 2, 241, 18,\n\t\t167, 32, 35, 254, 179, 91, 205, 85, 104, 191, 32, 113, 223,\n\t\t225, 216, 139, 156, 118, 38, 39, 188, 212, 26, 231, 207, 173,\n\t\t136, 204, 22, 64, 81, 139, 19, 53, 85, 68, 70, 115, 216, 7,\n\t\t22, 147, 15, 223, 53, 189, 198, 134, 118, 178, 156, 185, 166,\n\t\t55, 144, 182, 85, 80, 78, 67, 215, 88, 121, 109, 185, 131,\n\t\t162, 200, 67, 65, 86, 213, 216, 111, 185, 35, 176, 110, 82,\n\t\t145, 24, 226, 216, 0, 136, 138, 2, 32, 182, 237, 13, 125,\n\t\t115, 252, 128, 120, 146, 4, 134, 68, 218, 59, 144, 56, 103,\n\t\t16, 122, 126, 128, 178, 254, 100, 50, 224, 223, 113, 156,\n\t\t82, 24, 190, 115, 133, 201, 241, 130, 175, 223, 39, 42, 162,\n\t\t147, 178, 229, 174, 249, 104, 195, 71, 104, 205, 169, 132,\n\t\t100, 147, 90, 48, 56, 145, 43, 57, 40, 156, 180, 120, 120,\n\t\t211, 236, 128, 80, 141, 116, 94, 64, 255, 104, 70, 81, 110,\n\t\t174, 23, 19, 78, 166, 73, 23, 18, 113, 183, 137, 196, 228,\n\t\t80, 89, 1, 156, 225, 134, 148, 195, 0, 122, 178, 27, 146,\n\t\t186, 177, 97, 159, 236, 154, 45, 225, 228, 171, 212, 220,\n\t\t102, 146, 210, 113, 227, 122, 37, 53, 123, 253, 152, 12, 133,\n\t\t97, 74, 6, 185, 71, 150, 247, 211, 162, 115, 118, 120, 244,\n\t\t242, 211, 94, 157, 245, 78, 141, 12, 49, 46, 77, 66, 183,\n\t\t25, 185, 105, 133, 144, 221, 146, 135, 226, 204, 86, 111,\n\t\t205, 4, 162, 198, 159, 112, 142, 73, 0, 116, 78, 62, 64, 25,\n\t\t239, 84, 92, 137, 29, 120, 197, 131, 80, 16, 65, 98, 187,\n\t\t90, 14, 85, 215, 132, 41, 182, 222, 62, 18, 189, 97, 242,\n\t\t30, 121, 150, 153, 97, 204, 73, 158, 95, 222, 71, 108, 70,\n\t\t137, 180, 59, 20, 243, 140, 27, 159, 146, 221, 111, 5, 154,\n\t\t153, 189, 130, 140, 66, 31, 214, 148, 143, 144, 14, 65, 254,\n\t\t234, 167, 73, 33, 235, 80, 221, 192, 111, 150, 121, 192, 76,\n\t\t250, 86, 207, 10, 183, 40, 9, 45, 114, 222, 50, 199, 4, 237,\n\t\t88, 202, 75, 204, 134, 140, 73, 248, 113, 248, 14, 189, 34,\n\t\t124, 213, 171, 240, 204, 97, 78, 132, 69, 183, 202, 88, 16,\n\t\t65, 163, 241, 170, 184, 50, 206, 71, 68, 52, 26, 219, 66,\n\t\t103, 107, 69, 228, 32, 247, 138, 115, 203, 21, 228, 16, 90,\n\t\t1, 219, 173, 63, 53, 19, 6, 93, 133, 197, 247, 122, 19, 94,\n\t\t195, 20, 63, 105, 18, 218, 126, 195, 23, 30, 83, 140, 168,\n\t\t211, 120, 115, 77, 200, 136, 190, 2, 214, 40, 114, 56, 86,\n\t\t93, 64, 97, 169, 33, 140, 183, 150, 10, 198, 67, 84, 97, 137,\n\t\t105, 213, 174, 247, 59, 162, 214, 180, 242, 0, 226, 118, 243,\n\t\t132, 148, 8, 55, 48, 84, 36, 146, 206, 87, 0, 27, 123, 81,\n\t\t63, 160, 152, 152, 138, 60, 156, 116, 3, 76, 69, 87, 209,\n\t\t53, 244, 110, 48, 220, 237, 187, 148, 89, 228, 14, 137, 106,\n\t\t188, 187, 132, 179, 2, 138, 249, 21, 249, 81, 221, 40, 38,\n\t\t70, 91, 72, 201, 255, 73, 24, 54, 251, 89, 74, 158, 186, 128,\n\t\t228, 217, 8, 34, 84, 108, 174, 107, 100, 21, 183, 76, 228,\n\t\t142, 235, 52, 147, 211, 160, 109, 118, 208, 128, 21, 78, 50,\n\t\t69, 44, 144, 73, 99, 51, 13, 121, 41, 156, 105, 94, 161, 72,\n\t\t64, 81, 83, 206, 104, 97, 35, 238, 158, 187, 130, 44, 66,\n\t\t14, 59, 148, 227, 208, 220, 53, 221, 162, 158, 122, 193, 223,\n\t\t140, 223, 126, 130, 50, 151, 215, 203, 35, 112, 101, 69, 177,\n\t\t133, 82, 170, 187, 35, 22, 151, 74, 249, 238, 86, 36, 151,\n\t\t220, 163, 61, 182, 113, 156, 215, 228, 97, 124, 221, 41, 0,\n\t\t51, 149, 103, 7, 40, 115, 29, 127, 248, 234, 121, 108, 57,\n\t\t34, 98, 82, 239, 40, 219, 72, 143, 47, 42, 170, 200, 161,\n\t\t228, 38, 152, 210, 140, 44, 111, 110, 18, 141, 164, 51, 29,\n\t\t213, 70, 81, 115, 110, 146, 226, 21, 30, 65, 89, 23, 170,\n\t\t82, 56, 104, 180, 74, 66, 33, 106, 28, 49, 123, 43, 200, 240,\n\t\t147, 102, 110, 63, 46, 200, 254, 228, 38, 227, 241, 77, 176,\n\t\t201, 14, 177, 226, 198, 240, 130, 10, 50, 158, 240, 14, 31,\n\t\t98, 80, 223, 179, 251, 115, 105, 80, 41, 203, 234, 29, 102,\n\t\t141, 225, 196, 143, 242, 252, 80, 226, 218, 235, 176, 105,\n\t\t52, 182, 139, 160, 31, 238, 110, 64, 95, 26, 54, 204, 21,\n\t\t105, 222, 164, 237, 240, 62, 144, 80, 168, 154, 243, 56, 217,\n\t\t104, 17, 20, 95, 156, 16, 41, 38, 90, 195, 242, 126, 189,\n\t\t48, 174, 177, 210, 49, 78, 253, 146, 98, 250, 86, 48, 147,\n\t\t184, 32, 62, 125, 4, 113, 100, 206, 160, 105, 47, 64, 211,\n\t\t69, 173, 120, 131, 252, 170, 146, 130, 4, 9, 168, 85, 135,\n\t\t186, 173, 76, 147, 128, 187, 109, 113, 96, 112, 70, 135, 47,\n\t\t198, 231, 98, 18, 164, 92, 191, 230, 49, 99, 117, 155, 32,\n\t\t46, 110, 56, 46, 79, 69, 214, 237, 229, 77, 207, 175, 58,\n\t\t56, 29, 128, 207, 174, 58, 8, 223, 41, 125, 207, 242, 185,\n\t\t227, 46, 192, 212, 154, 129, 106, 152, 241, 125, 205, 93,\n\t\t117, 192, 221, 184, 16, 244, 52, 24, 45, 112, 152, 106, 28,\n\t\t142, 239, 53, 72, 149, 231, 250, 28, 96, 87, 129, 119, 131,\n\t\t148, 178, 76, 56, 143, 115, 45, 22, 185, 60, 0, 184, 9, 150,\n\t\t135, 185, 111, 153, 176, 249, 52, 244, 184, 101, 132, 164,\n\t\t34, 222, 17, 210, 71, 111, 74, 162, 117, 152, 38, 225, 171,\n\t\t172, 122, 149, 190, 183, 6, 135, 197, 198, 65, 12, 244, 86,\n\t\t97, 55, 85, 122, 62, 34, 34, 104, 243, 74, 195, 138, 176,\n\t\t102, 233, 198, 14, 159, 238, 251, 68, 153, 91, 101, 222, 212,\n\t\t136, 77, 108, 89, 23, 186, 97, 30, 106, 45, 231, 9, 123, 237,\n\t\t40, 226, 227, 0, 123, 194, 6, 160, 24, 19, 55, 215, 155, 3,\n\t\t22, 129, 136, 252, 235, 230, 250, 10, 253, 200, 41, 197, 57,\n\t\t184, 89, 249, 6, 135, 190, 199, 97, 186, 220, 49, 20, 143,\n\t\t2, 119, 29, 234, 19, 120, 113, 122, 66, 110, 99, 55, 79, 210,\n\t\t174, 14, 112, 168, 120, 4, 65, 98, 129, 61, 249, 188, 58,\n\t\t192, 38, 102, 241, 133, 207, 179, 147, 85, 240, 243, 138,\n\t\t96, 160, 195, 52, 187, 138, 140, 249, 110, 93, 79, 204, 5,\n\t\t49, 5, 5, 28, 186, 171, 98, 146, 199, 21, 65, 185, 93, 32,\n\t\t235, 125, 182, 140, 1, 51, 104, 149, 183, 81, 92, 12, 78,\n\t\t125, 88, 18, 45, 214, 221, 224, 205, 198, 113, 216, 174, 111,\n\t\t99, 195, 106, 246, 1, 99, 21, 62, 44, 115, 202, 28, 232, 5,\n\t\t14, 111, 139, 155, 35, 32, 242, 114, 28, 21, 92, 84, 36, 192,\n\t\t174, 56, 236, 211, 21, 71, 4, 103, 166, 234, 30, 80, 176,\n\t\t42, 178, 4, 173, 151, 62, 14, 210, 243, 1, 135, 93, 104, 20,\n\t\t190, 15, 160, 14, 175, 161, 89, 148, 214, 151, 103, 124, 226,\n\t\t109, 248, 189, 131, 122, 68, 44, 66, 231, 189, 163, 173, 35,\n\t\t33, 5, 98, 57, 3, 87, 49, 18, 213, 66, 147, 220, 75, 9, 13,\n\t\t25, 37, 177, 18, 86, 0, 23, 91, 92, 18, 253, 194, 75, 45,\n\t\t25, 166, 68, 74, 214, 12, 194, 176, 68, 170, 172, 11, 117,\n\t\t14, 147, 180, 171, 81, 104, 205, 72, 134, 86, 88, 121, 254,\n\t\t140, 101, 52, 51, 74, 245, 225, 229, 184, 136, 81, 209, 85,\n\t\t170, 26, 102, 200, 33, 151, 180, 151, 120, 98, 87, 228, 182,\n\t\t242, 210, 14, 10, 219, 181, 18, 186, 250, 216, 203, 119, 31,\n\t\t245, 146, 203, 62, 72, 217, 122, 86, 216, 85, 181, 112, 20,\n\t\t98, 242, 200, 225, 183, 97, 242, 247, 145, 22, 22, 167, 56,\n\t\t162, 112, 238, 5, 195, 68, 190, 147, 169, 215, 247, 114, 117,\n\t\t147, 223, 164, 135, 25, 107, 40, 126, 218, 247, 91, 46, 220,\n\t\t129, 153, 161, 37, 133, 216, 249, 94, 14, 178, 129, 183, 229,\n\t\t133, 73, 177, 64, 148, 195, 130, 9, 57, 77, 125, 47, 237,\n\t\t176, 45, 74, 184, 116, 147, 79, 176, 72, 14, 19, 204, 146,\n\t\t148, 54, 245, 103, 48, 163, 112, 164, 228, 88, 58, 98, 185,\n\t\t228, 96, 205, 249, 51, 118, 145, 83, 153, 176, 130, 70, 124,\n\t\t134, 175, 183, 224, 210, 143, 224, 25, 71, 138, 146, 239,\n\t\t213, 248, 26, 45, 107, 27, 218, 101, 178, 208, 33, 243, 80,\n\t\t59, 94, 155, 46, 30, 96, 140, 30, 157, 31, 64, 140, 63, 36,\n\t\t38, 9, 114, 21, 107, 249, 93, 152, 54, 11, 133, 111, 32, 139,\n\t\t227, 246, 0, 120, 70, 64, 162, 113, 97, 72, 97, 228, 24, 94,\n\t\t222, 243, 225, 154, 97, 116, 153, 64, 169, 34, 244, 182, 185,\n\t\t92, 180, 100, 88, 119, 41, 49, 180, 9, 133, 189, 41, 212,\n\t\t213, 70, 225, 131, 172, 106, 79, 71, 4, 155, 93, 181, 34,\n\t\t223, 170, 55, 70, 227, 240, 134, 130, 242, 212, 45, 16, 56,\n\t\t63, 200, 41, 224, 25, 222, 118, 17, 38, 51, 23, 212, 75, 4,\n\t\t102, 111, 172, 82, 17, 195, 191, 40, 137, 52, 179, 222, 21,\n\t\t134, 3, 123, 137, 18, 226, 173, 104, 229, 122, 129, 155, 229,\n\t\t252, 147, 5, 249, 239, 86, 44, 147, 224, 39, 37, 35, 129,\n\t\t183, 162, 235, 84, 179, 165, 65, 129, 155, 84, 21, 128, 56,\n\t\t107, 0, 197, 63, 123, 124, 174, 85, 100, 134, 245, 86, 140,\n\t\t110, 187, 98, 2, 21, 67, 57, 60, 14, 48, 78, 180, 162, 52,\n\t\t163, 222, 50, 81, 195, 221, 233, 0, 224, 74, 33, 159, 28,\n\t\t99, 170, 74, 200, 22, 229, 45, 115, 149, 105, 114, 10, 227,\n\t\t166, 38, 209, 190, 41, 38, 33, 96, 25, 198, 206, 76, 61, 100,\n\t\t41, 135, 157, 217, 226, 212, 155, 113, 123, 4, 68, 218, 112,\n\t\t121, 90, 115, 178, 213, 109, 64, 62, 94, 171, 204, 234, 71,\n\t\t32, 67, 251, 201, 137, 242, 188, 225, 38, 213, 188, 194, 253,\n\t\t175, 164, 248, 47, 191, 122, 38, 225, 114, 163, 105, 9, 15,\n\t\t156, 132, 242, 192, 173, 26, 26, 180, 197, 209, 205, 103,\n\t\t27, 226, 137, 121, 131, 120, 126, 30, 166, 110, 32, 195, 147,\n\t\t231, 162, 44, 19, 114, 94, 45, 8, 230, 50, 50, 178, 39, 221,\n\t\t33, 207, 174, 151, 164, 161, 187, 77, 38, 67, 61, 76, 130,\n\t\t240, 204, 220, 135, 75, 20, 134, 185, 158, 71, 63, 195, 21,\n\t\t118, 31, 163, 89, 225, 220, 12, 57, 69, 219, 204, 67, 189,\n\t\t76, 102, 100, 80, 136, 137, 139, 68, 152, 168, 150, 2, 27,\n\t\t60, 233, 76, 158, 215, 219, 98, 112, 102, 164, 152, 124, 30,\n\t\t243, 136, 89, 121, 196, 213, 93, 222, 179, 43, 52, 84, 164,\n\t\t54, 98, 30, 142, 233, 161, 147, 101, 30, 213, 155, 180, 78,\n\t\t232, 72, 52, 13, 115, 137, 205, 89, 60, 96, 113, 138, 200,\n\t\t132, 178, 113, 205, 35, 147, 216, 41, 161, 196, 35, 243, 200,\n\t\t229, 28, 58, 148, 97, 216, 176, 240, 132, 2, 109, 231, 209,\n\t\t139, 105, 130, 73, 199, 233, 76, 100, 239, 250, 139, 41, 87,\n\t\t236, 12, 51, 128, 84, 196, 142, 152, 29, 76, 8, 70, 108, 222,\n\t\t25, 223, 48, 28, 199, 135, 247, 28, 255, 60, 46, 31, 49, 172,\n\t\t52, 145, 147, 138, 185, 33, 157, 183, 102, 20, 51, 44, 147,\n\t\t110, 8, 93, 145, 92, 8, 126, 78, 113, 154, 27, 138, 181, 221,\n\t\t145, 113, 125, 131, 49, 99, 150, 119, 15, 40, 232, 53, 204,\n\t\t73, 249, 90, 49, 204, 181, 220, 57, 137, 112, 43, 168, 179,\n\t\t74, 226, 8, 130, 34, 142, 15, 184, 251, 141, 30, 208, 144,\n\t\t66, 129, 239, 43, 80, 141, 223, 103, 44, 139, 85, 100, 22,\n\t\t92, 113, 204, 103, 22, 97, 71, 89, 64, 3, 156, 82, 221, 177,\n\t\t97, 28, 195, 169, 8, 251, 202, 130, 26, 213, 248, 29, 58,\n\t\t117, 194, 250, 116, 252, 117, 116, 105, 118, 4, 57, 217, 88,\n\t\t204, 46, 73, 142, 147, 98, 227, 220, 192, 42, 139, 35, 140,\n\t\t147, 108, 31, 102, 45, 54, 83, 20, 15, 179, 223, 43, 60, 56,\n\t\t167, 7, 12, 150, 218, 211, 236, 208, 38, 40, 214, 55, 135,\n\t\t62, 119, 204, 244, 43, 72, 79, 157, 29, 179, 216, 195, 68,\n\t\t113, 243, 56, 66, 169, 52, 15, 223, 228, 229, 232, 148, 142,\n\t\t220, 132, 19, 78, 164, 196, 86, 190, 3, 225, 103, 145, 75,\n\t\t255, 77, 8, 156, 224, 46, 167, 238, 121, 147, 139, 116, 203,\n\t\t31, 149, 5, 233, 156, 111, 18, 207, 183, 148, 236, 110, 43,\n\t\t224, 89, 90, 168, 242, 136, 99, 115, 76, 81, 187, 148, 104,\n\t\t12, 35, 219, 86, 1, 130, 111, 80, 77, 41, 185, 252, 134, 120,\n\t\t230, 139, 23, 1, 8, 189, 118, 148, 209, 124, 121, 143, 45,\n\t\t111, 25, 1, 56, 65, 33, 52, 5, 183, 53, 166, 124, 0, 43, 128,\n\t\t223, 162, 101, 104, 73, 47, 96, 184, 73, 41, 66, 183, 12,\n\t\t176, 166, 60, 22, 7, 192, 19, 73, 141, 114, 77, 110, 56, 40,\n\t\t174, 85, 161, 209, 56, 228, 157, 164, 145, 55, 120, 78, 147,\n\t\t75, 239, 109, 68, 133, 231, 100, 210, 121, 51, 90, 203, 219,\n\t\t211, 107, 30, 137, 45, 178, 69, 171, 178, 126, 122, 18, 12,\n\t\t238, 176, 1, 19, 187, 203, 48, 109, 54, 24, 19, 169, 22, 230,\n\t\t241, 134, 194, 238, 249, 48, 141, 141, 151, 209, 77, 194,\n\t\t220, 198, 20, 122, 249, 102, 87, 122, 24, 151, 101, 183, 34,\n\t\t15, 206, 219, 44, 97, 246, 144, 156, 248, 154, 87, 161, 185,\n\t\t104, 127, 138, 193, 99, 111, 185, 42, 40, 190, 241, 42, 172,\n\t\t92, 51, 191, 195, 233, 30, 138, 97, 50, 70, 144, 58, 112,\n\t\t149, 178, 134, 193, 22, 5, 121, 172, 88, 67, 38, 145, 144,\n\t\t175, 156, 249, 49, 39, 50, 202, 134, 136, 122, 49, 94, 56,\n\t\t239, 76, 27, 144, 239, 112, 51, 73, 200, 42, 122, 237, 133,\n\t\t119, 2, 198, 11, 167, 116, 51, 22, 97, 248, 181, 147, 19,\n\t\t217, 253, 218, 75, 169, 155, 94, 40, 168, 52, 209, 174, 113,\n\t\t237, 135, 6, 142, 40, 25, 147, 174, 10, 222, 131, 154, 16,\n\t\t239, 248, 170, 94, 213, 36, 91, 37, 34, 232, 70, 164, 43,\n\t\t70, 174, 10, 94, 31, 80, 145, 157, 124, 121, 111, 174, 139,\n\t\t8, 134, 135, 157, 8, 23, 119, 220, 32, 222, 213, 160, 126,\n\t\t192, 29, 181, 253, 0, 85, 35, 15, 77, 30, 160, 86, 114, 238,\n\t\t217, 148, 232, 73, 27, 18, 245, 88, 66, 196, 213, 171, 26,\n\t\t37, 31, 198, 89, 145, 205, 127, 133, 113, 247, 47, 228, 20,\n\t\t82, 181, 163, 88, 210, 65, 232, 65, 104, 205, 106, 66, 117,\n\t\t63, 132, 109, 93, 100, 186, 213, 80, 221, 24, 204, 36, 174,\n\t\t200, 248, 124, 53, 186, 139, 38, 209, 188, 70, 181, 240, 94,\n\t\t104, 206, 168, 68, 203, 209, 140, 124, 96, 197, 153, 48, 182,\n\t\t157, 44, 214, 192, 18, 210, 192, 2, 104, 35, 164, 226, 201,\n\t\t64, 195, 54, 213, 242, 194, 113, 116, 82, 226, 2, 93, 167,\n\t\t103, 153, 243, 201, 50, 114, 157, 58, 131, 195, 113, 82, 98,\n\t\t195, 92, 215, 118, 225, 8, 56, 234, 6, 43, 71, 28, 113, 64,\n\t\t156, 187, 247, 8, 135, 23, 231, 212, 220, 119, 38, 235, 10,\n\t\t81, 99, 223, 153, 196, 197, 148, 166, 110, 121, 255, 228,\n\t\t104, 37, 199, 207, 237, 30, 170, 195, 36, 149, 72, 201, 16,\n\t\t116, 19, 61, 12, 241, 78, 40, 200, 232, 38, 198, 86, 226,\n\t\t22, 103, 71, 196, 253, 34, 131, 213, 60, 137, 69, 29, 154,\n\t\t75, 55, 97, 33, 141, 144, 214, 196, 77, 194, 171, 206, 18,\n\t\t50, 85, 220, 228, 147, 185, 120, 239, 229, 155, 26, 151, 118,\n\t\t193, 75, 120, 104, 168, 110, 204, 26, 73, 41, 112, 251, 102,\n\t\t102, 63, 195, 203, 63, 19, 138, 241, 185, 67, 158, 236, 215,\n\t\t228, 109, 248, 209, 171, 30, 153, 113, 202, 53, 79, 144, 179,\n\t\t145, 25, 245, 237, 103, 189, 93, 117, 16, 127, 91, 179, 248,\n\t\t88, 217, 248, 95, 227, 223, 215, 255, 255, 237, 219, 221,\n\t\t91, 150, 76, 239, 223, 6, 97, 47, 106, 124, 137, 150, 191,\n\t\t3, 219, 170, 87, 109, 43, 199, 111, 147, 104, 87, 51, 97,\n\t\t252, 109, 50, 110, 77, 175, 245, 34, 106, 103, 244, 236, 229,\n\t\t183, 205, 147, 150, 76, 239, 161, 198, 168, 51, 205, 236,\n\t\t86, 79, 180, 104, 188, 122, 147, 191, 131, 55, 235, 95, 63,\n\t\t215, 38, 137, 217, 27, 106, 201, 250, 247, 189, 41, 241, 222,\n\t\t142, 55, 229, 84, 173, 229, 94, 253, 154, 90, 161, 185, 87,\n\t\t190, 252, 232, 239, 255, 178, 222, 238, 221, 137, 70, 254,\n\t\t188, 255, 53, 40, 125, 123, 249, 229, 223, 204, 232, 191,\n\t\t252, 247, 237, 146, 236, 47, 197, 151, 127, 181, 98, 108,\n\t\t221, 47, 223, 86, 140, 243, 55, 45, 95, 70, 99, 7, 161, 183,\n\t\t39, 247, 243, 251, 254, 200, 217, 230, 101, 182, 250, 215,\n\t\t175, 95, 255, 249, 42, 235, 5, 224, 254, 185, 19, 81, 189,\n\t\t150, 17, 229, 113, 252, 85, 26, 255, 219, 95, 131, 253, 183,\n\t\t191, 41, 217, 169, 247, 223, 190, 44, 155, 134, 240, 191,\n\t\t254, 34, 135, 90, 182, 173, 108, 87, 87, 175, 191, 77, 242,\n\t\t151, 223, 126, 127, 94, 202, 213, 116, 93, 186, 23, 176, 254,\n\t\t231, 95, 250, 209, 227, 111, 254, 244, 39, 222, 31, 126, 225,\n\t\t237, 44, 255, 82, 235, 220, 219, 229, 111, 203, 243, 251,\n\t\t133, 228, 123, 9, 238, 237, 242, 203, 111, 203, 132, 173,\n\t\t255, 202, 200, 252, 213, 129, 252, 55, 43, 229, 159, 13, 99,\n\t\t30, 199, 220, 224, 88, 121, 153, 181, 176, 127, 58, 136, 31,\n\t\t112, 255, 217, 81, 60, 22, 243, 215, 135, 241, 227, 175, 254,\n\t\t202, 56, 30, 127, 243, 31, 24, 200, 227, 207, 254, 124, 36,\n\t\t237, 207, 15, 221, 252, 143, 28, 181, 51, 63, 106, 206, 104,\n\t\t213, 70, 231, 63, 25, 179, 7, 212, 127, 118, 196, 246, 66,\n\t\t254, 250, 120, 61, 254, 230, 175, 140, 214, 254, 139, 255,\n\t\t192, 88, 237, 63, 250, 243, 145, 250, 125, 25, 173, 229, 31,\n\t\t247, 231, 227, 66, 120, 247, 243, 195, 112, 252, 253, 255,\n\t\t5, 0, 0, 255, 255, 80, 75, 7, 8, 17, 161, 193, 106, 75, 45,\n\t\t0, 0, 88, 209, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219,\n\t\t146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 9,\n\t\t0, 102, 97, 118, 105, 99, 111, 110, 46, 105, 99, 111, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 188, 154, 9, 120, 20, 199,\n\t\t149, 199, 107, 102, 16, 88, 198, 142, 145, 228, 24, 113, 216,\n\t\t186, 103, 94, 247, 232, 66, 17, 88, 92, 81, 32, 220, 18, 167,\n\t\t196, 33, 78, 129, 184, 13, 9, 16, 33, 27, 28, 144, 18, 48,\n\t\t54, 44, 38, 32, 214, 24, 8, 130, 16, 219, 2, 97, 179, 156,\n\t\t65, 2, 131, 144, 87, 134, 196, 176, 16, 111, 0, 135, 128,\n\t\t5, 2, 4, 66, 232, 154, 233, 195, 81, 118, 249, 120, 251, 213,\n\t\t76, 79, 119, 87, 107, 134, 17, 155, 245, 242, 125, 255, 175,\n\t\t248, 164, 238, 122, 191, 247, 234, 213, 171, 170, 46, 17,\n\t\t98, 34, 38, 146, 152, 72, 219, 112, 178, 63, 134, 144, 87,\n\t\t8, 33, 64, 8, 73, 36, 132, 100, 19, 247, 207, 125, 253, 67,\n\t\t196, 127, 74, 149, 149, 149, 36, 42, 42, 138, 116, 232, 208,\n\t\t193, 100, 54, 155, 45, 38, 147, 169, 29, 33, 164, 61, 33,\n\t\t228, 57, 66, 72, 160, 34, 250, 255, 246, 244, 119, 102, 179,\n\t\t217, 28, 24, 24, 104, 178, 217, 108, 126, 251, 254, 62, 101,\n\t\t181, 90, 137, 197, 98, 49, 43, 172, 29, 9, 33, 157, 8, 233,\n\t\t250, 178, 217, 252, 126, 164, 205, 118, 62, 181, 91, 215,\n\t\t43, 163, 187, 132, 222, 204, 10, 13, 173, 154, 210, 181, 203,\n\t\t55, 25, 209, 81, 151, 134, 116, 233, 114, 48, 214, 66, 134,\n\t\t116, 118, 63, 235, 122, 39, 32, 32, 32, 192, 156, 156, 156,\n\t\t236, 215, 222, 255, 149, 34, 34, 34, 136, 201, 100, 178, 16,\n\t\t66, 158, 39, 36, 36, 56, 180, 115, 137, 61, 42, 242, 246,\n\t\t98, 176, 61, 58, 8, 182, 230, 91, 28, 8, 255, 197, 129, 248,\n\t\t132, 3, 17, 189, 232, 49, 216, 28, 13, 96, 107, 252, 194,\n\t\t102, 189, 255, 110, 68, 248, 87, 3, 2, 2, 198, 190, 76, 199,\n\t\t136, 142, 221, 247, 57, 38, 195, 135, 15, 39, 212, 6, 141,\n\t\t219, 243, 129, 11, 67, 163, 163, 110, 76, 231, 160, 225, 12,\n\t\t7, 194, 63, 124, 176, 182, 81, 205, 55, 192, 118, 127, 109,\n\t\t183, 110, 135, 109, 52, 38, 116, 76, 169, 45, 127, 60, 207,\n\t\t162, 78, 157, 58, 153, 8, 33, 29, 8, 225, 67, 34, 35, 110,\n\t\t230, 112, 92, 243, 117, 175, 44, 177, 34, 66, 170, 136, 92,\n\t\t154, 132, 144, 33, 33, 76, 146, 16, 178, 36, 132, 76, 9, 97,\n\t\t164, 136, 220, 0, 17, 185, 120, 95, 126, 56, 157, 54, 107,\n\t\t109, 97, 151, 206, 37, 17, 52, 39, 59, 119, 238, 236, 151,\n\t\t171, 45, 162, 249, 73, 99, 30, 29, 117, 46, 133, 231, 26,\n\t\t43, 91, 217, 77, 17, 17, 198, 75, 8, 243, 36, 132, 95, 200,\n\t\t8, 121, 126, 148, 43, 35, 44, 84, 252, 234, 39, 34, 199, 177,\n\t\t253, 241, 156, 163, 158, 131, 219, 243, 76, 36, 227, 5, 90,\n\t\t19, 252, 241, 61, 77, 238, 249, 153, 240, 146, 157, 175, 94,\n\t\t194, 115, 130, 200, 112, 15, 18, 17, 230, 72, 8, 203, 219,\n\t\t192, 236, 75, 244, 221, 5, 18, 194, 8, 17, 57, 158, 241, 227,\n\t\t73, 172, 189, 254, 144, 53, 250, 72, 247, 118, 237, 218, 153,\n\t\t253, 113, 26, 117, 249, 242, 101, 23, 251, 139, 47, 78, 9,\n\t\t137, 143, 175, 219, 165, 159, 143, 208, 187, 13, 220, 111,\n\t\t202, 8, 171, 100, 132, 95, 203, 8, 107, 100, 132, 213, 50,\n\t\t194, 91, 126, 124, 89, 40, 185, 243, 139, 157, 27, 223, 36,\n\t\t245, 184, 20, 79, 89, 40, 147, 63, 110, 143, 168, 207, 221,\n\t\t187, 23, 252, 48, 46, 174, 254, 136, 218, 23, 39, 34, 140,\n\t\t243, 145, 35, 148, 109, 187, 140, 80, 33, 35, 92, 151, 17,\n\t\t234, 100, 4, 167, 140, 32, 41, 18, 100, 132, 122, 25, 225,\n\t\t166, 140, 240, 165, 140, 176, 71, 70, 88, 233, 99, 60, 178,\n\t\t36, 215, 60, 242, 216, 141, 181, 59, 107, 99, 99, 175, 245,\n\t\t108, 223, 190, 125, 155, 114, 169, 99, 199, 142, 38, 66, 198,\n\t\t191, 20, 31, 95, 95, 194, 204, 203, 153, 82, 107, 123, 111,\n\t\t203, 8, 127, 144, 17, 238, 41, 156, 242, 51, 232, 161, 140,\n\t\t80, 46, 35, 252, 202, 139, 31, 243, 36, 228, 146, 24, 31,\n\t\t238, 191, 218, 253, 107, 8, 14, 14, 126, 42, 123, 34, 93,\n\t\t196, 73, 216, 115, 118, 254, 193, 123, 42, 123, 188, 232,\n\t\t158, 155, 198, 252, 216, 47, 35, 212, 182, 129, 211, 159,\n\t\t26, 101, 132, 99, 50, 194, 10, 131, 15, 139, 36, 228, 122,\n\t\t234, 231, 117, 243, 149, 87, 126, 120, 54, 100, 208, 160,\n\t\t65, 62, 249, 233, 186, 100, 181, 222, 24, 199, 115, 194, 99,\n\t\t215, 123, 118, 37, 215, 245, 253, 210, 92, 190, 228, 35, 222,\n\t\t66, 51, 66, 245, 85, 228, 46, 253, 1, 249, 138, 34, 228, 203,\n\t\t182, 32, 95, 182, 25, 249, 242, 157, 200, 93, 60, 130, 92,\n\t\t213, 101, 4, 71, 131, 119, 63, 104, 222, 173, 51, 248, 240,\n\t\t134, 132, 92, 15, 189, 15, 141, 197, 102, 243, 8, 139, 55,\n\t\t246, 224, 224, 96, 83, 88, 216, 161, 110, 28, 56, 106, 212,\n\t\t185, 58, 205, 192, 78, 251, 191, 229, 197, 246, 163, 123,\n\t\t200, 253, 251, 239, 145, 223, 149, 134, 246, 66, 120, 170,\n\t\t248, 237, 169, 200, 159, 222, 134, 112, 255, 38, 130, 44,\n\t\t177, 253, 208, 241, 220, 98, 240, 97, 174, 164, 175, 77, 79,\n\t\t162, 163, 30, 76, 124, 237, 181, 215, 188, 196, 222, 18, 96,\n\t\t141, 169, 251, 64, 205, 155, 52, 67, 141, 161, 117, 228, 174,\n\t\t129, 219, 217, 140, 220, 31, 75, 208, 190, 45, 197, 47, 119,\n\t\t43, 253, 107, 60, 114, 103, 182, 35, 52, 213, 25, 98, 33,\n\t\t35, 252, 198, 224, 195, 4, 73, 29, 3, 176, 57, 239, 4, 117,\n\t\t250, 75, 39, 61, 123, 72, 72, 8, 233, 218, 245, 178, 157,\n\t\t231, 132, 191, 187, 158, 75, 18, 17, 150, 232, 98, 79, 107,\n\t\t197, 223, 90, 199, 156, 47, 89, 226, 149, 173, 199, 102, 192,\n\t\t185, 239, 0, 174, 90, 13, 184, 122, 53, 224, 162, 53, 128,\n\t\t41, 191, 241, 49, 30, 123, 167, 34, 220, 187, 206, 246, 93,\n\t\t163, 212, 94, 143, 125, 90, 243, 250, 105, 121, 20, 21, 217,\n\t\t184, 50, 44, 44, 76, 229, 55, 155, 219, 91, 172, 49, 245,\n\t\t59, 84, 31, 167, 24, 242, 230, 172, 129, 253, 225, 29, 180,\n\t\t255, 110, 50, 195, 17, 183, 5, 240, 151, 249, 128, 149, 147,\n\t\t1, 107, 127, 4, 232, 4, 86, 143, 18, 0, 47, 102, 2, 110, 88,\n\t\t9, 248, 163, 45, 6, 63, 118, 12, 114, 205, 27, 198, 198, 215,\n\t\t74, 157, 240, 48, 204, 209, 143, 129, 80, 251, 210, 15, 174,\n\t\t255, 128, 178, 103, 103, 103, 147, 110, 221, 206, 133, 114,\n\t\t224, 116, 184, 126, 151, 44, 178, 53, 190, 80, 169, 229, 158,\n\t\t126, 155, 234, 144, 255, 120, 54, 99, 63, 107, 61, 224, 87,\n\t\t19, 0, 29, 92, 107, 110, 111, 186, 154, 14, 184, 120, 173,\n\t\t97, 28, 126, 155, 134, 80, 123, 91, 179, 67, 235, 195, 199,\n\t\t58, 142, 229, 50, 179, 190, 69, 69, 53, 206, 44, 46, 46, 38,\n\t\t65, 65, 65, 166, 152, 232, 218, 217, 170, 111, 19, 13, 177,\n\t\t191, 162, 143, 189, 132, 124, 217, 38, 198, 238, 178, 53,\n\t\t128, 247, 250, 248, 103, 110, 53, 30, 73, 128, 235, 87, 26,\n\t\t124, 56, 176, 4, 65, 116, 106, 246, 238, 24, 214, 237, 153,\n\t\t204, 60, 40, 15, 238, 120, 208, 100, 177, 36, 153, 99, 162,\n\t\t155, 14, 115, 158, 53, 118, 177, 142, 159, 206, 35, 81, 227,\n\t\t231, 190, 189, 196, 216, 203, 89, 7, 248, 224, 117, 150, 171,\n\t\t25, 56, 188, 9, 253, 241, 44, 140, 198, 67, 48, 17, 255, 13,\n\t\t38, 226, 105, 24, 139, 223, 192, 0, 108, 2, 158, 121, 182,\n\t\t33, 14, 112, 85, 62, 235, 3, 247, 231, 82, 54, 143, 62, 97,\n\t\t231, 1, 151, 168, 230, 80, 203, 203, 65, 53, 175, 188, 248,\n\t\t194, 201, 231, 193, 230, 172, 119, 241, 247, 23, 217, 216,\n\t\t87, 234, 250, 145, 36, 228, 63, 203, 83, 237, 36, 111, 6,\n\t\t188, 150, 198, 178, 223, 135, 100, 252, 12, 38, 97, 33, 228,\n\t\t120, 213, 39, 48, 5, 111, 65, 31, 230, 157, 187, 253, 1, 71,\n\t\t108, 212, 141, 193, 238, 12, 87, 93, 83, 237, 94, 53, 212,\n\t\t162, 52, 45, 135, 34, 35, 154, 198, 133, 134, 222, 141, 83,\n\t\t199, 36, 195, 144, 59, 53, 250, 154, 112, 3, 237, 91, 237,\n\t\t170, 157, 237, 185, 44, 123, 13, 244, 196, 34, 152, 225, 147,\n\t\t221, 163, 109, 48, 19, 191, 133, 126, 204, 187, 71, 231, 25,\n\t\t198, 224, 250, 121, 205, 110, 179, 178, 23, 244, 48, 77, 211,\n\t\t114, 104, 240, 79, 133, 157, 145, 17, 245, 19, 85, 126, 253,\n\t\t30, 103, 157, 178, 239, 242, 228, 206, 133, 67, 106, 255,\n\t\t241, 91, 0, 255, 58, 76, 179, 79, 243, 98, 63, 76, 102, 56,\n\t\t119, 199, 253, 28, 79, 167, 108, 196, 242, 222, 155, 240,\n\t\t163, 132, 92, 246, 119, 48, 29, 31, 65, 130, 54, 110, 189,\n\t\t0, 7, 108, 210, 141, 193, 169, 173, 108, 14, 237, 210, 241,\n\t\t47, 212, 248, 71, 143, 18, 47, 77, 153, 226, 220, 164, 242,\n\t\t47, 212, 241, 255, 142, 173, 153, 252, 209, 53, 106, 255,\n\t\t211, 223, 5, 108, 226, 53, 254, 107, 48, 144, 225, 43, 237,\n\t\t245, 46, 54, 165, 159, 68, 113, 84, 185, 75, 142, 145, 167,\n\t\t177, 178, 111, 33, 243, 204, 31, 33, 141, 25, 131, 53, 171,\n\t\t116, 252, 191, 159, 138, 32, 137, 154, 253, 19, 58, 254, 165,\n\t\t218, 122, 156, 153, 33, 137, 195, 134, 58, 119, 171, 252,\n\t\t63, 215, 61, 119, 84, 159, 251, 34, 242, 31, 205, 80, 251,\n\t\t223, 178, 130, 205, 157, 82, 200, 80, 185, 138, 98, 127, 198,\n\t\t176, 123, 36, 140, 60, 131, 7, 146, 222, 86, 159, 219, 7,\n\t\t147, 209, 161, 235, 227, 192, 34, 93, 14, 125, 216, 155, 221,\n\t\t39, 125, 169, 227, 202, 213, 230, 240, 128, 1, 34, 38, 196,\n\t\t11, 110, 126, 94, 68, 88, 166, 123, 174, 76, 199, 47, 58,\n\t\t209, 94, 52, 74, 237, 127, 247, 82, 150, 127, 159, 46, 119,\n\t\t62, 79, 217, 208, 138, 221, 163, 175, 126, 188, 93, 125, 110,\n\t\t7, 100, 51, 245, 168, 52, 71, 199, 191, 213, 142, 208, 88,\n\t\t171, 217, 191, 96, 88, 7, 94, 119, 243, 199, 197, 138, 152,\n\t\t156, 44, 20, 169, 181, 243, 41, 252, 124, 209, 104, 181, 255,\n\t\t162, 101, 44, 191, 62, 247, 79, 190, 190, 222, 39, 255, 159,\n\t\t250, 127, 168, 227, 159, 193, 240, 159, 152, 173, 231, 143,\n\t\t69, 104, 124, 232, 155, 191, 151, 155, 191, 71, 15, 17, 39,\n\t\t76, 16, 139, 212, 252, 249, 153, 238, 185, 35, 134, 218, 249,\n\t\t241, 44, 181, 255, 77, 43, 89, 254, 147, 48, 78, 229, 250,\n\t\t173, 125, 17, 54, 164, 149, 181, 98, 119, 142, 60, 141, 251,\n\t\t18, 223, 84, 159, 43, 129, 44, 54, 6, 139, 245, 249, 211,\n\t\t151, 205, 159, 74, 67, 254, 36, 184, 121, 71, 166, 75, 56,\n\t\t100, 136, 243, 23, 42, 255, 2, 221, 252, 221, 109, 152, 191,\n\t\t199, 215, 169, 253, 79, 122, 15, 176, 201, 174, 217, 190,\n\t\t14, 169, 204, 220, 60, 156, 92, 128, 245, 105, 165, 42, 123,\n\t\t83, 250, 41, 252, 60, 229, 95, 152, 103, 46, 194, 112, 245,\n\t\t125, 58, 15, 244, 235, 24, 255, 81, 54, 59, 127, 143, 235,\n\t\t248, 151, 104, 243, 55, 109, 132, 84, 29, 17, 238, 24, 162,\n\t\t242, 103, 235, 248, 215, 24, 234, 231, 127, 28, 83, 251, 167,\n\t\t123, 53, 186, 135, 113, 234, 214, 220, 131, 134, 117, 107,\n\t\t59, 191, 0, 143, 247, 92, 139, 39, 122, 173, 195, 93, 177,\n\t\t139, 153, 223, 237, 133, 105, 216, 0, 113, 234, 251, 116,\n\t\t255, 209, 79, 95, 63, 233, 190, 90, 95, 63, 119, 232, 248,\n\t\t23, 104, 245, 115, 220, 88, 169, 252, 229, 144, 198, 110,\n\t\t96, 19, 93, 231, 45, 215, 249, 60, 79, 247, 236, 29, 93, 31,\n\t\t15, 170, 208, 190, 53, 78, 181, 177, 249, 77, 96, 234, 71,\n\t\t45, 36, 185, 184, 10, 253, 172, 95, 59, 97, 6, 86, 67, 111,\n\t\t38, 119, 62, 125, 195, 176, 126, 221, 184, 160, 217, 165,\n\t\t231, 203, 95, 234, 152, 166, 106, 252, 25, 25, 210, 251, 1,\n\t\t1, 143, 44, 54, 171, 240, 87, 215, 207, 250, 24, 246, 15,\n\t\t204, 190, 89, 66, 254, 240, 106, 213, 70, 194, 22, 192, 63,\n\t\t143, 97, 231, 65, 29, 36, 226, 113, 24, 143, 91, 97, 150,\n\t\t87, 246, 79, 33, 11, 239, 65, 79, 230, 157, 91, 3, 13, 107,\n\t\t215, 222, 41, 8, 130, 67, 179, 251, 159, 50, 203, 52, 92,\n\t\t219, 63, 44, 93, 34, 103, 210, 61, 180, 53, 70, 40, 84, 115,\n\t\t104, 145, 110, 12, 54, 176, 57, 4, 213, 87, 208, 94, 200,\n\t\t171, 182, 232, 190, 249, 78, 127, 214, 7, 58, 38, 119, 32,\n\t\t197, 181, 62, 149, 65, 6, 150, 66, 38, 126, 9, 35, 177, 10,\n\t\t250, 161, 3, 56, 214, 223, 36, 192, 101, 191, 54, 196, 254,\n\t\t202, 89, 93, 221, 80, 214, 81, 15, 207, 50, 89, 253, 254,\n\t\t216, 191, 159, 216, 242, 193, 7, 127, 15, 162, 252, 175, 189,\n\t\t234, 236, 239, 249, 70, 229, 250, 86, 169, 247, 247, 50, 59,\n\t\t143, 185, 242, 157, 140, 189, 57, 235, 0, 111, 13, 96, 125,\n\t\t104, 139, 232, 190, 245, 109, 195, 222, 147, 63, 180, 10,\n\t\t65, 20, 52, 123, 85, 134, 51, 204, 12, 45, 119, 134, 13, 149,\n\t\t14, 103, 102, 58, 92, 231, 47, 139, 165, 169, 157, 53, 70,\n\t\t184, 202, 121, 206, 142, 250, 117, 96, 163, 178, 135, 242,\n\t\t244, 233, 104, 108, 117, 110, 76, 219, 8, 88, 62, 157, 173,\n\t\t73, 190, 68, 207, 56, 23, 50, 1, 167, 189, 103, 96, 223, 51,\n\t\t1, 161, 190, 70, 179, 35, 42, 53, 48, 79, 87, 247, 127, 236,\n\t\t102, 231, 57, 17, 231, 204, 150, 71, 235, 207, 192, 49, 49,\n\t\t194, 2, 53, 135, 38, 25, 198, 160, 140, 29, 3, 104, 120, 128,\n\t\t124, 241, 124, 198, 62, 213, 27, 107, 1, 203, 114, 0, 171,\n\t\t126, 194, 206, 109, 170, 59, 125, 0, 43, 166, 3, 174, 44,\n\t\t112, 215, 47, 134, 189, 104, 172, 242, 61, 66, 103, 227, 130,\n\t\t33, 239, 103, 105, 177, 79, 79, 151, 110, 237, 223, 223, 210,\n\t\t65, 207, 31, 248, 92, 115, 160, 205, 42, 222, 114, 61, 147,\n\t\t64, 247, 66, 58, 31, 222, 50, 158, 195, 104, 93, 168, 67,\n\t\t254, 112, 126, 43, 31, 236, 202, 254, 116, 232, 70, 192, 153,\n\t\t239, 0, 230, 188, 3, 152, 190, 1, 48, 209, 120, 230, 245,\n\t\t176, 23, 47, 64, 120, 88, 205, 246, 93, 109, 216, 51, 211,\n\t\t243, 108, 138, 22, 251, 217, 179, 229, 108, 111, 223, 128,\n\t\t162, 163, 5, 109, 47, 61, 84, 100, 191, 159, 228, 43, 249,\n\t\t168, 183, 35, 10, 200, 93, 62, 129, 246, 157, 195, 189, 178,\n\t\t61, 85, 31, 246, 69, 238, 220, 62, 4, 103, 19, 219, 231, 3,\n\t\t25, 97, 189, 33, 246, 227, 180, 154, 147, 54, 66, 186, 120,\n\t\t234, 84, 75, 128, 55, 254, 192, 192, 70, 83, 76, 180, 112,\n\t\t72, 245, 33, 203, 144, 71, 191, 82, 190, 147, 201, 6, 53,\n\t\t213, 33, 119, 241, 168, 107, 221, 244, 199, 205, 239, 30,\n\t\t135, 220, 185, 253, 174, 239, 47, 173, 250, 185, 171, 212,\n\t\t60, 99, 222, 40, 119, 4, 9, 241, 226, 119, 11, 23, 202, 137,\n\t\t222, 216, 61, 10, 15, 115, 118, 1, 155, 120, 143, 243, 236,\n\t\t233, 102, 25, 124, 88, 33, 35, 156, 99, 207, 197, 170, 232,\n\t\t154, 95, 91, 133, 220, 213, 47, 144, 251, 211, 103, 200, 125,\n\t\t177, 7, 249, 138, 61, 200, 157, 47, 65, 238, 47, 103, 16,\n\t\t238, 253, 141, 173, 47, 234, 123, 74, 157, 47, 48, 176, 207,\n\t\t151, 212, 122, 105, 231, 93, 121, 243, 214, 211, 216, 61,\n\t\t178, 89, 133, 190, 28, 136, 178, 203, 135, 88, 47, 62, 228,\n\t\t41, 181, 161, 218, 139, 15, 207, 170, 90, 25, 225, 128, 161,\n\t\t78, 230, 41, 251, 4, 221, 55, 232, 172, 73, 210, 167, 115,\n\t\t231, 74, 109, 186, 203, 200, 207, 191, 77, 34, 194, 133, 49,\n\t\t28, 136, 238, 187, 57, 94, 249, 166, 101, 188, 179, 160, 243,\n\t\t186, 68, 70, 248, 214, 199, 120, 248, 146, 164, 228, 202,\n\t\t49, 229, 27, 188, 49, 54, 57, 18, 115, 79, 246, 147, 84, 177,\n\t\t116, 193, 124, 169, 131, 63, 110, 163, 120, 78, 24, 15, 54,\n\t\t101, 28, 168, 210, 37, 132, 165, 94, 236, 81, 189, 175, 156,\n\t\t243, 190, 86, 216, 26, 148, 117, 163, 89, 249, 127, 141, 82,\n\t\t195, 62, 151, 17, 182, 122, 137, 119, 158, 114, 55, 150, 41,\n\t\t49, 119, 98, 35, 70, 72, 165, 7, 14, 252, 35, 200, 31, 171,\n\t\t47, 69, 69, 10, 116, 109, 174, 85, 125, 72, 86, 246, 169,\n\t\t254, 238, 189, 86, 40, 53, 112, 149, 143, 187, 22, 189, 150,\n\t\t43, 223, 7, 251, 106, 220, 52, 223, 167, 78, 149, 246, 102,\n\t\t102, 202, 94, 107, 205, 179, 40, 42, 210, 249, 170, 53, 70,\n\t\t56, 169, 250, 64, 213, 79, 241, 163, 45, 119, 142, 190, 68,\n\t\t227, 61, 91, 66, 238, 167, 186, 126, 65, 196, 222, 41, 162,\n\t\t144, 147, 35, 207, 9, 15, 111, 242, 203, 214, 86, 89, 44,\n\t\t142, 118, 209, 81, 66, 14, 216, 132, 135, 140, 31, 116, 191,\n\t\t49, 90, 116, 229, 44, 44, 145, 253, 143, 203, 82, 201, 125,\n\t\t39, 146, 33, 33, 244, 98, 185, 227, 227, 68, 28, 53, 74, 58,\n\t\t54, 127, 222, 119, 225, 254, 120, 254, 183, 10, 13, 21, 58,\n\t\t197, 68, 11, 171, 193, 38, 214, 49, 126, 40, 243, 220, 117,\n\t\t231, 51, 72, 68, 72, 23, 17, 198, 74, 110, 141, 20, 17, 6,\n\t\t187, 239, 138, 13, 247, 164, 158, 186, 254, 100, 204, 24,\n\t\t233, 124, 110, 238, 119, 131, 79, 158, 252, 239, 54, 221,\n\t\t211, 253, 179, 50, 153, 154, 94, 136, 140, 16, 166, 90, 99,\n\t\t132, 82, 102, 142, 183, 81, 118, 78, 196, 33, 131, 197, 218,\n\t\t177, 99, 165, 109, 75, 151, 202, 201, 28, 247, 200, 175, 205,\n\t\t239, 67, 221, 187, 63, 34, 33, 33, 206, 160, 136, 112, 231,\n\t\t208, 222, 41, 98, 222, 144, 193, 226, 254, 9, 227, 165, 170,\n\t\t193, 131, 37, 71, 98, 130, 216, 20, 107, 23, 235, 83, 94,\n\t\t23, 107, 6, 14, 20, 175, 13, 27, 42, 157, 79, 79, 151, 62,\n\t\t153, 49, 67, 94, 158, 155, 43, 247, 44, 46, 110, 121, 230,\n\t\t154, 216, 90, 21, 22, 68, 66, 240, 9, 33, 249, 180, 109, 33,\n\t\t36, 140, 182, 213, 132, 116, 160, 109, 1, 33, 22, 218, 186,\n\t\t254, 88, 136, 144, 39, 180, 205, 39, 228, 49, 109, 83, 9,\n\t\t105, 161, 109, 24, 33, 14, 125, 251, 18, 33, 213, 196, 253,\n\t\t23, 19, 21, 250, 214, 162, 181, 5, 196, 245, 135, 73, 106,\n\t\t251, 255, 253, 175, 64, 223, 234, 56, 42, 244, 173, 69, 241,\n\t\t195, 162, 249, 227, 241, 175, 69, 105, 93, 113, 8, 83, 226,\n\t\t146, 170, 196, 41, 223, 29, 55, 19, 141, 91, 133, 18, 63,\n\t\t135, 18, 207, 199, 132, 164, 210, 22, 11, 8, 141, 251, 255,\n\t\t4, 0, 0, 255, 255, 80, 75, 7, 8, 193, 162, 75, 117, 20, 13,\n\t\t0, 0, 190, 37, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 104,\n\t\t144, 110, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9,\n\t\t0, 106, 115, 47, 97, 112, 112, 46, 106, 115, 85, 84, 5, 0,\n\t\t1, 229, 79, 78, 96, 204, 253, 123, 127, 219, 182, 210, 40,\n\t\t10, 127, 144, 253, 143, 204, 199, 91, 5, 150, 198, 140, 228,\n\t\t92, 218, 82, 70, 253, 58, 182, 147, 56, 181, 147, 52, 78,\n\t\t154, 139, 235, 215, 11, 162, 32, 137, 177, 4, 42, 32, 104,\n\t\t199, 177, 249, 221, 207, 15, 3, 240, 38, 145, 110, 186, 158,\n\t\t253, 236, 115, 186, 214, 47, 22, 193, 193, 96, 48, 24, 12,\n\t\t6, 131, 193, 112, 99, 146, 202, 80, 71, 177, 36, 154, 222,\n\t\t122, 105, 34, 58, 137, 86, 81, 168, 189, 97, 254, 162, 35,\n\t\t136, 6, 1, 146, 222, 42, 161, 83, 37, 59, 210, 231, 76, 131,\n\t\t244, 39, 76, 128, 204, 10, 176, 183, 164, 4, 17, 100, 27,\n\t\t36, 20, 168, 69, 241, 162, 218, 90, 142, 142, 8, 208, 52,\n\t\t203, 104, 137, 106, 76, 84, 5, 213, 67, 80, 37, 42, 185, 142,\n\t\t234, 94, 236, 138, 72, 176, 248, 171, 13, 76, 8, 175, 52,\n\t\t240, 8, 120, 217, 128, 90, 199, 246, 79, 219, 228, 68, 65,\n\t\t209, 106, 181, 89, 73, 210, 74, 179, 143, 33, 45, 155, 229,\n\t\t235, 8, 255, 15, 80, 146, 18, 14, 85, 90, 170, 196, 40, 18,\n\t\t85, 136, 121, 2, 81, 73, 76, 186, 142, 243, 127, 134, 190,\n\t\t136, 164, 176, 66, 97, 149, 68, 78, 226, 10, 137, 63, 67,\n\t\t92, 146, 24, 173, 163, 253, 191, 70, 117, 76, 34, 88, 167,\n\t\t187, 74, 120, 74, 146, 10, 225, 191, 66, 82, 18, 30, 174,\n\t\t99, 142, 215, 139, 254, 223, 236, 94, 66, 66, 136, 161, 177,\n\t\t139, 181, 78, 158, 172, 232, 133, 109, 198, 152, 246, 249,\n\t\t174, 246, 39, 196, 148, 7, 154, 8, 74, 100, 165, 198, 190,\n\t\t173, 1, 37, 145, 15, 235, 117, 64, 21, 181, 136, 170, 84,\n\t\t220, 204, 43, 66, 217, 229, 71, 171, 85, 129, 87, 43, 19,\n\t\t94, 169, 255, 173, 172, 15, 37, 31, 31, 175, 99, 128, 116,\n\t\t5, 7, 73, 43, 104, 246, 170, 104, 160, 28, 163, 39, 77, 136,\n\t\t32, 90, 71, 69, 162, 10, 182, 121, 29, 27, 148, 98, 240, 115,\n\t\t51, 62, 136, 27, 49, 146, 152, 102, 97, 44, 147, 120, 46,\n\t\t252, 107, 174, 36, 241, 246, 227, 197, 50, 154, 139, 113,\n\t\t39, 146, 157, 131, 195, 63, 59, 139, 120, 44, 252, 206, 179,\n\t\t120, 62, 143, 175, 59, 122, 38, 58, 124, 124, 21, 133, 162,\n\t\t195, 117, 103, 166, 245, 50, 9, 30, 60, 16, 243, 197, 214,\n\t\t156, 203, 169, 31, 171, 233, 131, 190, 63, 248, 213, 239,\n\t\t63, 136, 151, 58, 90, 68, 223, 69, 103, 18, 171, 206, 72,\n\t\t104, 45, 84, 103, 41, 212, 36, 86, 11, 46, 77, 117, 57, 238,\n\t\t36, 11, 62, 159, 11, 213, 225, 73, 34, 116, 226, 123, 116,\n\t\t120, 197, 85, 103, 193, 110, 55, 3, 239, 236, 220, 203, 202,\n\t\t101, 100, 102, 186, 155, 119, 209, 188, 14, 2, 15, 120, 160,\n\t\t97, 20, 136, 44, 51, 181, 34, 246, 150, 204, 104, 89, 227,\n\t\t216, 8, 229, 36, 86, 196, 188, 20, 108, 1, 146, 105, 127,\n\t\t46, 228, 84, 207, 134, 114, 107, 107, 72, 5, 155, 17, 125,\n\t\t38, 207, 65, 208, 97, 62, 219, 74, 254, 198, 245, 234, 103,\n\t\t231, 67, 237, 143, 134, 154, 105, 127, 68, 133, 191, 76, 147,\n\t\t25, 209, 62, 175, 212, 52, 112, 33, 27, 147, 114, 78, 88,\n\t\t249, 206, 113, 40, 131, 67, 248, 163, 110, 87, 250, 163, 161,\n\t\t96, 194, 31, 129, 100, 210, 31, 81, 101, 209, 225, 140, 240,\n\t\t57, 72, 159, 211, 2, 239, 177, 145, 100, 10, 9, 123, 91, 34,\n\t\t150, 80, 78, 183, 99, 98, 8, 245, 147, 88, 233, 90, 203, 5,\n\t\t192, 148, 152, 217, 9, 102, 214, 210, 204, 252, 31, 70, 85,\n\t\t92, 234, 135, 112, 25, 250, 37, 59, 49, 208, 21, 110, 73,\n\t\t198, 216, 190, 220, 237, 7, 230, 199, 158, 220, 221, 26, 4,\n\t\t3, 108, 162, 28, 132, 11, 91, 63, 231, 129, 4, 195, 5, 224,\n\t\t236, 10, 185, 211, 7, 69, 135, 188, 219, 37, 146, 41, 127,\n\t\t25, 47, 9, 165, 67, 243, 78, 34, 23, 70, 248, 190, 104, 141,\n\t\t151, 99, 115, 85, 106, 130, 104, 66, 6, 253, 254, 142, 164,\n\t\t14, 202, 241, 242, 0, 219, 165, 176, 209, 31, 70, 19, 162,\n\t\t25, 99, 194, 65, 216, 18, 47, 30, 125, 17, 161, 246, 54, 152,\n\t\t190, 89, 138, 120, 210, 209, 119, 119, 50, 157, 207, 205,\n\t\t212, 41, 126, 229, 85, 188, 188, 97, 143, 21, 224, 221, 238,\n\t\t11, 242, 152, 194, 198, 96, 152, 247, 141, 119, 34, 233, 157,\n\t\t10, 125, 33, 230, 139, 139, 81, 26, 205, 117, 100, 42, 48,\n\t\t237, 111, 118, 187, 68, 179, 55, 56, 14, 194, 252, 53, 148,\n\t\t121, 111, 159, 190, 138, 199, 162, 6, 189, 225, 160, 189,\n\t\t183, 79, 15, 23, 75, 125, 211, 240, 242, 238, 142, 104, 118,\n\t\t224, 80, 29, 88, 84, 154, 70, 19, 178, 113, 69, 244, 25, 63,\n\t\t7, 97, 254, 145, 189, 129, 97, 157, 235, 241, 96, 152, 119,\n\t\t29, 133, 116, 89, 29, 255, 138, 168, 108, 216, 193, 170, 14,\n\t\t223, 52, 23, 226, 70, 150, 229, 60, 71, 246, 238, 246, 3,\n\t\t189, 35, 80, 6, 144, 229, 157, 72, 38, 218, 76, 244, 120,\n\t\t210, 57, 213, 42, 146, 83, 43, 70, 138, 105, 255, 138, 207,\n\t\t83, 241, 122, 66, 40, 112, 38, 202, 167, 124, 164, 21, 99,\n\t\t140, 239, 246, 3, 181, 195, 173, 76, 153, 214, 255, 203, 241,\n\t\t242, 172, 127, 238, 218, 37, 146, 77, 205, 28, 52, 147, 134,\n\t\t210, 93, 25, 184, 130, 17, 8, 127, 132, 5, 230, 41, 4, 225,\n\t\t135, 20, 71, 201, 204, 224, 110, 23, 167, 224, 70, 189, 178,\n\t\t157, 215, 128, 147, 178, 20, 111, 195, 107, 127, 180, 59,\n\t\t8, 132, 63, 50, 132, 244, 41, 242, 239, 122, 141, 127, 118,\n\t\t122, 32, 179, 202, 218, 59, 253, 221, 61, 25, 200, 221, 111,\n\t\t50, 216, 151, 25, 133, 83, 212, 106, 255, 213, 175, 106, 181,\n\t\t131, 85, 173, 246, 95, 219, 21, 173, 86, 128, 221, 212, 215,\n\t\t74, 4, 124, 88, 0, 66, 24, 200, 10, 240, 101, 213, 58, 22,\n\t\t215, 142, 249, 68, 87, 214, 142, 215, 85, 178, 111, 179, 66,\n\t\t132, 149, 81, 249, 154, 202, 51, 117, 206, 244, 153, 58, 175,\n\t\t191, 16, 246, 133, 48, 47, 114, 252, 200, 144, 55, 236, 45,\n\t\t121, 85, 145, 154, 87, 22, 189, 25, 181, 4, 27, 175, 204,\n\t\t155, 66, 102, 122, 194, 136, 201, 134, 81, 167, 185, 10, 29,\n\t\t90, 130, 102, 118, 92, 220, 160, 148, 52, 48, 89, 81, 193,\n\t\t138, 41, 127, 84, 130, 214, 232, 121, 118, 175, 22, 222, 83,\n\t\t138, 223, 152, 249, 195, 89, 127, 200, 119, 244, 144, 247,\n\t\t122, 84, 157, 241, 115, 38, 137, 232, 149, 26, 93, 101, 20,\n\t\t158, 174, 13, 117, 161, 201, 74, 60, 138, 245, 135, 106, 71,\n\t\t163, 100, 13, 85, 175, 231, 216, 100, 8, 99, 88, 228, 104,\n\t\t115, 139, 15, 83, 112, 96, 182, 21, 70, 21, 127, 111, 153,\n\t\t138, 29, 113, 166, 207, 51, 10, 239, 238, 237, 73, 142, 113,\n\t\t107, 48, 236, 239, 48, 53, 84, 91, 91, 84, 48, 179, 140, 24,\n\t\t10, 106, 203, 90, 101, 116, 142, 42, 242, 81, 20, 106, 82,\n\t\t76, 243, 117, 101, 87, 40, 215, 63, 137, 0, 111, 39, 7, 248,\n\t\t205, 163, 168, 74, 71, 113, 60, 23, 188, 9, 254, 185, 193,\n\t\t186, 235, 189, 83, 169, 240, 2, 239, 25, 159, 39, 194, 213,\n\t\t145, 233, 98, 36, 84, 67, 149, 143, 166, 74, 207, 179, 96,\n\t\t178, 65, 137, 56, 184, 151, 134, 148, 159, 188, 222, 33, 145,\n\t\t176, 209, 167, 61, 239, 39, 135, 121, 85, 226, 10, 204, 239,\n\t\t137, 128, 159, 188, 159, 108, 141, 1, 237, 253, 228, 253,\n\t\t68, 171, 75, 65, 89, 163, 219, 245, 54, 189, 72, 118, 100,\n\t\t174, 177, 164, 191, 217, 72, 181, 170, 51, 38, 146, 90, 40,\n\t\t201, 231, 73, 206, 25, 212, 89, 202, 104, 44, 68, 196, 141,\n\t\t5, 144, 15, 95, 218, 193, 22, 188, 77, 163, 216, 211, 110,\n\t\t151, 59, 155, 194, 244, 255, 44, 61, 47, 214, 61, 143, 120,\n\t\t61, 238, 127, 137, 35, 73, 60, 240, 104, 207, 163, 30, 234,\n\t\t195, 134, 149, 70, 85, 249, 110, 0, 60, 218, 251, 98, 126,\n\t\t250, 19, 21, 47, 142, 163, 196, 20, 120, 29, 175, 103, 26,\n\t\t121, 99, 76, 123, 75, 102, 195, 74, 100, 176, 221, 221, 53,\n\t\t174, 67, 107, 13, 29, 152, 13, 255, 61, 45, 29, 148, 45, 225,\n\t\t156, 185, 31, 27, 130, 220, 135, 238, 105, 137, 46, 8, 114,\n\t\t66, 207, 206, 45, 38, 199, 103, 239, 204, 67, 70, 75, 163,\n\t\t235, 9, 239, 49, 100, 171, 207, 169, 179, 184, 134, 198, 4,\n\t\t179, 63, 121, 143, 121, 96, 49, 203, 138, 61, 199, 123, 222,\n\t\t185, 151, 57, 108, 94, 49, 106, 145, 29, 53, 211, 56, 14,\n\t\t92, 100, 91, 140, 109, 3, 103, 209, 57, 133, 144, 197, 103,\n\t\t253, 115, 72, 152, 119, 107, 104, 10, 239, 238, 60, 146, 255,\n\t\t56, 203, 127, 236, 184, 31, 63, 121, 63, 217, 31, 177, 31,\n\t\t201, 177, 248, 246, 122, 66, 188, 142, 71, 119, 250, 67, 67,\n\t\t87, 199, 235, 145, 100, 55, 14, 140, 12, 196, 102, 228, 105,\n\t\t86, 97, 149, 162, 61, 158, 53, 207, 216, 3, 174, 249, 159,\n\t\t145, 184, 238, 118, 107, 83, 40, 47, 174, 78, 9, 111, 199,\n\t\t235, 73, 127, 116, 163, 197, 49, 42, 147, 158, 215, 49, 15,\n\t\t133, 12, 175, 35, 127, 22, 205, 197, 10, 98, 83, 84, 159,\n\t\t11, 6, 169, 228, 11, 209, 243, 114, 68, 107, 211, 172, 97,\n\t\t82, 76, 58, 229, 180, 155, 51, 239, 194, 112, 105, 114, 214,\n\t\t63, 223, 157, 248, 201, 60, 10, 5, 25, 208, 96, 50, 116, 83,\n\t\t197, 72, 200, 220, 200, 5, 115, 146, 33, 207, 38, 231, 180,\n\t\t96, 81, 223, 88, 17, 78, 67, 238, 122, 183, 153, 23, 120,\n\t\t183, 157, 202, 92, 234, 160, 76, 101, 94, 214, 58, 135, 51,\n\t\t178, 49, 128, 234, 186, 121, 88, 93, 55, 181, 175, 196, 114,\n\t\t206, 67, 65, 30, 252, 245, 215, 131, 41, 120, 127, 253, 245,\n\t\t215, 95, 30, 173, 148, 74, 91, 42, 107, 133, 218, 22, 234,\n\t\t90, 161, 178, 133, 170, 86, 120, 101, 11, 175, 106, 133, 125,\n\t\t91, 216, 247, 74, 229, 190, 43, 43, 239, 127, 178, 239, 127,\n\t\t242, 104, 80, 45, 246, 30, 76, 225, 167, 191, 254, 242, 126,\n\t\t170, 244, 230, 121, 109, 197, 209, 187, 222, 255, 58, 251,\n\t\t245, 201, 194, 235, 137, 158, 247, 191, 206, 250, 11, 47,\n\t\t168, 236, 134, 62, 54, 192, 62, 110, 129, 125, 223, 0, 251,\n\t\t176, 5, 246, 101, 3, 236, 118, 11, 236, 151, 117, 216, 135,\n\t\t63, 183, 192, 254, 217, 128, 247, 81, 11, 236, 11, 82, 113,\n\t\t15, 36, 215, 145, 14, 103, 102, 137, 12, 121, 34, 58, 253,\n\t\t64, 207, 84, 124, 221, 57, 84, 42, 86, 228, 167, 15, 51, 174,\n\t\t59, 50, 30, 139, 78, 50, 139, 211, 249, 184, 115, 212, 209,\n\t\t252, 82, 116, 226, 43, 161, 118, 59, 71, 178, 243, 146, 95,\n\t\t241, 211, 80, 69, 75, 221, 57, 234, 72, 33, 198, 157, 36,\n\t\t94, 8, 61, 139, 228, 180, 51, 143, 46, 69, 240, 151, 252,\n\t\t75, 118, 58, 157, 206, 225, 124, 225, 159, 240, 72, 250, 145,\n\t\t140, 52, 185, 181, 133, 230, 63, 131, 61, 232, 140, 227, 48,\n\t\t93, 8, 169, 253, 169, 208, 135, 115, 97, 126, 62, 189, 57,\n\t\t26, 19, 207, 236, 180, 13, 136, 71, 109, 149, 140, 26, 140,\n\t\t159, 226, 212, 182, 166, 227, 206, 56, 238, 232, 89, 148,\n\t\t116, 174, 35, 61, 235, 112, 121, 211, 121, 170, 226, 235,\n\t\t68, 40, 63, 225, 114, 60, 138, 191, 117, 98, 85, 20, 9, 139,\n\t\t186, 179, 84, 241, 84, 241, 133, 255, 19, 29, 98, 183, 7,\n\t\t181, 110, 123, 57, 56, 95, 46, 231, 81, 200, 145, 107, 174,\n\t\t74, 210, 9, 185, 148, 177, 238, 204, 184, 28, 207, 69, 231,\n\t\t253, 219, 227, 4, 123, 138, 68, 20, 221, 245, 122, 69, 143,\n\t\t230, 177, 197, 224, 207, 148, 152, 244, 60, 3, 129, 108, 141,\n\t\t18, 116, 46, 168, 56, 214, 187, 157, 119, 238, 87, 39, 158,\n\t\t116, 110, 226, 84, 117, 38, 209, 92, 116, 146, 155, 68, 139,\n\t\t197, 110, 231, 157, 186, 233, 204, 227, 248, 210, 112, 149,\n\t\t107, 219, 93, 71, 143, 237, 246, 191, 197, 124, 209, 81, 130,\n\t\t135, 58, 86, 255, 54, 29, 54, 163, 208, 137, 245, 76, 168,\n\t\t78, 34, 212, 149, 80, 190, 231, 186, 186, 93, 239, 234, 27,\n\t\t21, 143, 230, 194, 161, 49, 244, 76, 230, 124, 154, 116, 166,\n\t\t209, 149, 144, 134, 187, 72, 204, 225, 124, 81, 180, 23, 27,\n\t\t69, 24, 233, 136, 207, 163, 239, 182, 95, 166, 71, 94, 79,\n\t\t56, 252, 15, 235, 248, 223, 205, 132, 18, 134, 103, 157, 88,\n\t\t206, 111, 58, 35, 209, 137, 165, 232, 44, 99, 165, 59, 70,\n\t\t93, 142, 59, 255, 70, 33, 253, 55, 116, 70, 169, 182, 173,\n\t\t229, 45, 205, 120, 210, 89, 164, 115, 29, 45, 231, 162, 32,\n\t\t255, 209, 10, 122, 117, 99, 152, 162, 227, 78, 34, 228, 184,\n\t\t195, 101, 39, 149, 226, 219, 82, 132, 218, 8, 199, 205, 82,\n\t\t24, 134, 226, 134, 171, 99, 234, 165, 211, 153, 109, 219,\n\t\t181, 26, 24, 202, 165, 67, 253, 184, 46, 251, 37, 234, 52,\n\t\t17, 157, 127, 19, 198, 232, 191, 77, 239, 243, 121, 148, 248,\n\t\t127, 73, 219, 187, 40, 233, 200, 184, 115, 205, 111, 12, 240,\n\t\t165, 140, 175, 59, 209, 164, 4, 235, 112, 37, 58, 158, 97,\n\t\t109, 194, 23, 194, 195, 45, 199, 76, 32, 79, 19, 33, 19, 225,\n\t\t255, 37, 223, 10, 62, 238, 44, 98, 37, 58, 124, 20, 167, 110,\n\t\t128, 43, 238, 166, 37, 15, 47, 249, 84, 248, 53, 183, 147,\n\t\t43, 76, 30, 136, 249, 226, 65, 24, 43, 241, 96, 206, 181,\n\t\t72, 244, 131, 167, 60, 137, 194, 228, 191, 24, 235, 92, 207,\n\t\t162, 112, 214, 25, 139, 36, 84, 209, 72, 36, 157, 235, 217,\n\t\t77, 39, 114, 146, 103, 102, 12, 191, 65, 175, 212, 245, 12,\n\t\t133, 74, 228, 94, 171, 43, 161, 18, 35, 242, 215, 209, 124,\n\t\t142, 114, 135, 2, 94, 76, 150, 39, 245, 33, 248, 132, 99,\n\t\t198, 167, 200, 135, 121, 204, 199, 134, 107, 249, 184, 217,\n\t\t110, 162, 130, 200, 103, 104, 103, 17, 143, 211, 185, 112,\n\t\t195, 143, 227, 224, 119, 78, 248, 205, 72, 116, 120, 103,\n\t\t156, 218, 25, 39, 92, 37, 131, 115, 42, 180, 70, 125, 18,\n\t\t243, 177, 24, 119, 120, 24, 70, 99, 33, 53, 159, 207, 111,\n\t\t118, 59, 71, 147, 142, 140, 53, 116, 148, 48, 248, 80, 184,\n\t\t204, 182, 107, 38, 22, 157, 36, 238, 28, 217, 225, 176, 124,\n\t\t48, 61, 54, 63, 54, 114, 89, 250, 37, 64, 195, 148, 169, 97,\n\t\t93, 166, 94, 31, 188, 54, 163, 228, 232, 116, 162, 210, 241,\n\t\t122, 95, 137, 164, 118, 2, 123, 189, 212, 225, 248, 21, 113,\n\t\t68, 76, 13, 83, 198, 127, 8, 143, 49, 241, 144, 219, 255,\n\t\t54, 8, 254, 221, 17, 223, 150, 74, 36, 200, 240, 106, 19,\n\t\t71, 186, 163, 68, 40, 162, 43, 35, 200, 102, 94, 162, 63,\n\t\t210, 240, 1, 197, 185, 162, 105, 142, 72, 84, 174, 152, 222,\n\t\t95, 210, 3, 207, 189, 114, 168, 158, 166, 110, 120, 21, 151,\n\t\t161, 153, 229, 60, 87, 95, 137, 17, 135, 132, 223, 84, 21,\n\t\t87, 218, 130, 43, 87, 149, 253, 21, 93, 153, 78, 77, 39, 115,\n\t\t81, 157, 70, 122, 150, 142, 252, 48, 94, 160, 92, 94, 69,\n\t\t74, 167, 124, 190, 53, 142, 23, 15, 162, 36, 73, 69, 146,\n\t\t51, 127, 176, 162, 115, 247, 173, 90, 117, 30, 83, 195, 180,\n\t\t78, 223, 239, 28, 68, 87, 17, 178, 102, 116, 211, 249, 46,\n\t\t84, 220, 17, 6, 218, 247, 104, 197, 1, 240, 181, 178, 193,\n\t\t211, 126, 162, 185, 210, 254, 60, 146, 2, 253, 39, 66, 142,\n\t\t241, 97, 215, 139, 101, 199, 252, 48, 182, 83, 5, 40, 200,\n\t\t203, 147, 149, 23, 61, 175, 208, 24, 230, 69, 142, 7, 77,\n\t\t228, 15, 109, 219, 88, 221, 19, 25, 133, 223, 91, 28, 38,\n\t\t226, 127, 235, 97, 197, 88, 211, 187, 47, 200, 96, 64, 131,\n\t\t254, 142, 236, 118, 245, 78, 255, 238, 78, 238, 244, 187,\n\t\t221, 254, 142, 222, 149, 61, 29, 200, 204, 122, 135, 255,\n\t\t96, 39, 92, 207, 252, 80, 68, 115, 248, 100, 127, 79, 230,\n\t\t113, 172, 224, 179, 125, 80, 113, 42, 199, 160, 181, 125,\n\t\t154, 199, 83, 16, 154, 69, 201, 43, 254, 202, 250, 23, 244,\n\t\t189, 196, 34, 140, 210, 63, 180, 239, 54, 27, 238, 97, 110,\n\t\t197, 226, 150, 59, 101, 210, 15, 103, 92, 237, 199, 99, 177,\n\t\t167, 137, 162, 195, 116, 231, 241, 147, 135, 219, 253, 187,\n\t\t187, 199, 63, 63, 124, 244, 112, 39, 189, 187, 35, 6, 118,\n\t\t107, 75, 157, 247, 56, 5, 187, 93, 191, 36, 230, 103, 97,\n\t\t185, 26, 158, 241, 86, 50, 133, 159, 44, 231, 145, 38, 154,\n\t\t102, 20, 210, 123, 192, 208, 206, 69, 168, 168, 169, 63, 14,\n\t\t78, 58, 203, 218, 185, 254, 112, 55, 179, 142, 180, 116, 123,\n\t\t136, 154, 15, 221, 109, 144, 197, 153, 60, 71, 95, 94, 165,\n\t\t243, 18, 205, 126, 94, 239, 63, 191, 187, 35, 6, 124, 107,\n\t\t75, 158, 247, 20, 133, 13, 77, 46, 137, 162, 165, 171, 210,\n\t\t241, 96, 163, 159, 81, 8, 219, 58, 183, 53, 216, 17, 197,\n\t\t126, 9, 123, 152, 180, 242, 161, 207, 216, 10, 236, 164, 93,\n\t\t2, 92, 223, 118, 138, 94, 118, 187, 194, 159, 243, 68, 31,\n\t\t21, 8, 88, 241, 110, 43, 7, 207, 40, 204, 215, 113, 230, 187,\n\t\t4, 199, 174, 104, 66, 228, 206, 32, 223, 36, 45, 42, 110,\n\t\t173, 62, 224, 30, 104, 107, 176, 99, 88, 83, 210, 138, 206,\n\t\t111, 234, 54, 59, 138, 130, 234, 49, 89, 30, 11, 240, 154,\n\t\t163, 118, 172, 171, 147, 190, 231, 121, 165, 58, 88, 84, 94,\n\t\t221, 110, 6, 219, 48, 10, 180, 61, 49, 153, 105, 182, 168,\n\t\t122, 250, 115, 168, 220, 207, 81, 122, 122, 119, 95, 107,\n\t\t226, 113, 217, 57, 122, 245, 206, 3, 77, 131, 173, 237, 193,\n\t\t163, 159, 31, 253, 242, 240, 201, 163, 159, 119, 180, 153,\n\t\t172, 229, 115, 183, 75, 250, 119, 134, 77, 76, 239, 198, 138,\n\t\t104, 26, 108, 68, 201, 51, 99, 34, 9, 162, 233, 221, 157,\n\t\t254, 223, 131, 85, 108, 8, 150, 81, 24, 181, 209, 179, 230,\n\t\t97, 202, 81, 35, 162, 206, 211, 215, 175, 143, 13, 162, 140,\n\t\t194, 213, 223, 116, 169, 5, 195, 179, 227, 215, 123, 239,\n\t\t28, 138, 165, 102, 164, 17, 71, 39, 86, 228, 169, 97, 166,\n\t\t129, 106, 110, 101, 205, 221, 233, 90, 105, 240, 134, 227,\n\t\t155, 158, 231, 229, 36, 156, 190, 123, 123, 244, 234, 185,\n\t\t165, 193, 78, 195, 105, 155, 156, 222, 110, 6, 79, 96, 156,\n\t\t123, 137, 43, 82, 176, 169, 87, 192, 126, 133, 73, 160, 97,\n\t\t154, 31, 145, 93, 223, 131, 113, 208, 71, 95, 242, 204, 8,\n\t\t135, 109, 255, 180, 117, 158, 96, 59, 103, 226, 220, 48, 226,\n\t\t230, 30, 221, 226, 224, 64, 34, 228, 165, 102, 147, 21, 200,\n\t\t202, 89, 110, 1, 11, 10, 161, 223, 106, 38, 215, 160, 43,\n\t\t7, 184, 21, 120, 224, 88, 227, 68, 51, 213, 80, 163, 114,\n\t\t100, 91, 171, 3, 41, 214, 218, 95, 239, 165, 86, 55, 121,\n\t\t141, 61, 83, 227, 229, 233, 235, 87, 254, 146, 171, 68, 224,\n\t\t33, 90, 200, 221, 14, 209, 193, 68, 138, 156, 144, 68, 129,\n\t\t247, 206, 24, 145, 104, 252, 106, 99, 148, 68, 227, 142, 169,\n\t\t185, 129, 235, 229, 66, 36, 9, 159, 10, 120, 170, 13, 14,\n\t\t154, 101, 20, 190, 181, 242, 23, 91, 253, 174, 237, 145, 93,\n\t\t57, 188, 123, 110, 120, 243, 61, 170, 191, 233, 118, 169,\n\t\t219, 65, 161, 192, 70, 68, 20, 230, 123, 174, 225, 221, 105,\n\t\t22, 74, 156, 31, 90, 129, 51, 133, 30, 148, 155, 20, 7, 123,\n\t\t97, 26, 221, 61, 214, 246, 24, 5, 142, 115, 233, 60, 62, 58,\n\t\t125, 87, 130, 63, 106, 1, 63, 200, 39, 148, 236, 236, 189,\n\t\t125, 187, 247, 169, 172, 241, 36, 200, 213, 225, 184, 241,\n\t\t248, 77, 148, 135, 110, 119, 119, 27, 232, 248, 237, 136,\n\t\t124, 85, 232, 56, 156, 175, 159, 190, 60, 220, 127, 151, 155,\n\t\t205, 147, 72, 204, 199, 229, 166, 73, 246, 188, 127, 99, 123,\n\t\t86, 169, 238, 57, 154, 206, 228, 121, 225, 41, 9, 21, 81,\n\t\t116, 87, 5, 56, 96, 19, 101, 196, 0, 15, 127, 144, 194, 159,\n\t\t3, 187, 142, 107, 223, 30, 76, 96, 215, 86, 8, 40, 59, 21,\n\t\t77, 136, 40, 22, 11, 94, 3, 235, 28, 191, 126, 245, 252, 240,\n\t\t109, 135, 43, 197, 111, 252, 206, 43, 129, 39, 233, 99, 241,\n\t\t173, 227, 245, 120, 207, 195, 125, 29, 238, 253, 18, 97, 140,\n\t\t175, 28, 77, 207, 235, 8, 169, 85, 36, 18, 108, 160, 210,\n\t\t3, 222, 210, 131, 185, 17, 226, 74, 15, 126, 9, 254, 158,\n\t\t179, 77, 189, 178, 108, 45, 120, 151, 178, 69, 221, 221, 41,\n\t\t40, 246, 118, 198, 147, 215, 215, 242, 141, 138, 151, 66,\n\t\t233, 27, 18, 81, 122, 91, 33, 50, 58, 71, 166, 108, 32, 133,\n\t\t180, 58, 51, 38, 10, 34, 71, 102, 202, 102, 228, 128, 216,\n\t\t39, 72, 11, 123, 39, 86, 228, 139, 36, 41, 45, 182, 16, 121,\n\t\t243, 49, 211, 254, 4, 66, 166, 253, 41, 36, 172, 63, 76, 118,\n\t\t194, 124, 57, 77, 122, 61, 215, 126, 120, 150, 156, 187, 33,\n\t\t169, 183, 174, 134, 49, 139, 137, 105, 171, 210, 80, 92, 154,\n\t\t237, 37, 245, 43, 252, 197, 226, 25, 214, 4, 65, 3, 85, 24,\n\t\t232, 133, 155, 146, 45, 96, 110, 168, 26, 206, 253, 209, 112,\n\t\t206, 230, 254, 200, 17, 51, 183, 199, 81, 209, 132, 172, 144,\n\t\t50, 97, 136, 16, 38, 5, 49, 145, 34, 99, 236, 248, 132, 22,\n\t\t123, 137, 96, 69, 165, 104, 159, 231, 26, 99, 232, 252, 81,\n\t\t101, 87, 180, 233, 89, 185, 206, 31, 235, 117, 75, 53, 23,\n\t\t46, 224, 238, 184, 74, 81, 72, 89, 127, 152, 238, 168, 97,\n\t\t106, 56, 104, 55, 107, 86, 177, 156, 165, 229, 24, 70, 245,\n\t\t49, 156, 43, 72, 33, 194, 49, 228, 103, 233, 57, 139, 124,\n\t\t94, 225, 169, 36, 156, 86, 252, 138, 23, 85, 91, 4, 155, 245,\n\t\t163, 36, 63, 45, 187, 187, 211, 171, 142, 227, 227, 40, 209,\n\t\t101, 237, 3, 93, 137, 47, 58, 33, 74, 65, 209, 137, 134, 37,\n\t\t217, 158, 147, 85, 78, 54, 107, 43, 96, 169, 154, 15, 209,\n\t\t7, 98, 118, 139, 94, 79, 23, 74, 184, 168, 246, 198, 85, 107,\n\t\t140, 21, 208, 254, 230, 134, 177, 250, 54, 203, 243, 244,\n\t\t53, 13, 220, 15, 234, 3, 168, 125, 110, 240, 248, 124, 184,\n\t\t166, 160, 177, 124, 180, 162, 163, 181, 31, 98, 121, 152,\n\t\t235, 99, 167, 103, 221, 196, 118, 80, 111, 116, 113, 188,\n\t\t157, 171, 213, 162, 254, 24, 235, 143, 187, 221, 53, 160,\n\t\t159, 75, 32, 129, 64, 162, 1, 232, 215, 18, 104, 130, 64,\n\t\t147, 110, 247, 149, 1, 154, 130, 240, 167, 149, 73, 147, 67,\n\t\t205, 16, 106, 214, 128, 106, 80, 112, 161, 130, 160, 34, 168,\n\t\t175, 116, 171, 129, 188, 81, 90, 215, 37, 179, 43, 150, 242,\n\t\t80, 237, 72, 60, 98, 53, 98, 106, 26, 198, 115, 206, 51, 117,\n\t\t222, 22, 235, 240, 172, 117, 141, 197, 69, 221, 218, 107,\n\t\t209, 228, 134, 224, 106, 11, 70, 83, 130, 166, 198, 126, 174,\n\t\t172, 187, 79, 235, 22, 116, 31, 184, 49, 146, 138, 215, 223,\n\t\t107, 182, 183, 207, 177, 225, 119, 247, 109, 185, 206, 244,\n\t\t57, 115, 13, 58, 91, 235, 72, 179, 167, 154, 152, 230, 43,\n\t\t237, 30, 222, 223, 238, 243, 6, 195, 30, 194, 192, 32, 177,\n\t\t230, 222, 199, 123, 204, 189, 135, 8, 61, 182, 6, 164, 1,\n\t\t126, 175, 89, 191, 108, 250, 37, 226, 190, 194, 208, 39, 108,\n\t\t90, 4, 239, 117, 175, 231, 204, 73, 100, 211, 44, 56, 59,\n\t\t207, 114, 197, 249, 59, 246, 166, 234, 172, 175, 78, 227,\n\t\t231, 117, 99, 89, 147, 67, 77, 94, 186, 57, 88, 153, 133,\n\t\t127, 58, 193, 208, 254, 204, 110, 122, 4, 133, 223, 113, 163,\n\t\t107, 8, 121, 81, 235, 77, 149, 159, 43, 232, 255, 180, 135,\n\t\t217, 128, 205, 156, 98, 19, 182, 139, 95, 53, 219, 24, 192,\n\t\t7, 141, 39, 78, 121, 163, 216, 128, 153, 248, 31, 180, 59,\n\t\t129, 165, 176, 241, 213, 197, 126, 153, 26, 253, 161, 102,\n\t\t31, 180, 159, 204, 162, 137, 38, 116, 72, 255, 48, 21, 134,\n\t\t136, 171, 50, 24, 127, 96, 127, 49, 202, 68, 248, 19, 183,\n\t\t49, 214, 102, 30, 217, 179, 227, 190, 141, 44, 26, 152, 63,\n\t\t5, 220, 212, 108, 47, 167, 168, 94, 244, 144, 10, 127, 202,\n\t\t204, 99, 132, 74, 216, 76, 26, 219, 63, 131, 16, 95, 140,\n\t\t136, 65, 103, 22, 165, 28, 50, 19, 243, 68, 24, 226, 49, 122,\n\t\t50, 87, 217, 87, 113, 52, 70, 208, 16, 219, 31, 213, 184,\n\t\t99, 144, 105, 192, 241, 202, 236, 49, 234, 99, 75, 147, 35,\n\t\t82, 248, 179, 250, 12, 116, 205, 79, 176, 249, 89, 206, 7,\n\t\t138, 77, 119, 12, 37, 70, 154, 112, 187, 215, 15, 6, 102,\n\t\t15, 97, 64, 33, 10, 132, 63, 205, 32, 175, 59, 206, 42, 188,\n\t\t250, 164, 73, 235, 224, 89, 145, 75, 132, 126, 23, 45, 68,\n\t\t156, 86, 94, 58, 185, 49, 3, 10, 178, 88, 177, 43, 175, 195,\n\t\t185, 224, 42, 175, 38, 234, 49, 225, 159, 117, 125, 67, 96,\n\t\t215, 189, 19, 242, 77, 131, 93, 14, 118, 133, 143, 158, 254,\n\t\t192, 48, 175, 211, 55, 235, 173, 89, 5, 239, 238, 94, 144,\n\t\t109, 120, 173, 136, 93, 252, 172, 81, 114, 155, 65, 200, 72,\n\t\t196, 164, 45, 245, 57, 36, 44, 37, 115, 8, 41, 76, 88, 125,\n\t\t190, 161, 142, 91, 137, 175, 17, 185, 203, 72, 99, 40, 13,\n\t\t247, 121, 183, 75, 136, 100, 242, 238, 238, 54, 163, 103,\n\t\t234, 156, 113, 159, 19, 133, 241, 107, 70, 193, 49, 41, 8,\n\t\t175, 184, 135, 100, 70, 98, 168, 234, 137, 185, 219, 22, 16,\n\t\t164, 202, 70, 233, 133, 72, 151, 160, 16, 10, 18, 67, 228,\n\t\t143, 128, 147, 176, 60, 28, 173, 151, 194, 100, 247, 118,\n\t\t25, 43, 157, 4, 147, 44, 184, 181, 202, 67, 11, 140, 12, 202,\n\t\t219, 16, 98, 125, 15, 118, 107, 21, 142, 128, 113, 32, 65,\n\t\t4, 10, 38, 1, 175, 12, 179, 20, 37, 15, 20, 187, 157, 226,\n\t\t238, 210, 178, 55, 3, 99, 104, 135, 144, 154, 13, 1, 68, 198,\n\t\t232, 6, 52, 246, 202, 6, 195, 138, 140, 156, 144, 143, 26,\n\t\t66, 184, 221, 12, 30, 195, 40, 88, 23, 23, 237, 243, 154,\n\t\t35, 209, 223, 220, 221, 39, 41, 40, 212, 186, 65, 212, 237,\n\t\t198, 187, 155, 24, 203, 46, 252, 8, 132, 255, 197, 148, 238,\n\t\t99, 65, 180, 43, 124, 35, 170, 166, 200, 8, 140, 195, 162,\n\t\t252, 25, 123, 169, 137, 107, 87, 251, 35, 106, 117, 144, 18,\n\t\t63, 168, 131, 132, 63, 37, 43, 42, 8, 184, 104, 91, 139, 78,\n\t\t200, 11, 13, 218, 159, 129, 211, 242, 34, 171, 237, 251, 82,\n\t\t113, 111, 200, 181, 217, 188, 195, 101, 32, 96, 110, 150,\n\t\t135, 146, 255, 145, 88, 89, 31, 22, 185, 227, 39, 110, 163,\n\t\t4, 23, 6, 25, 104, 136, 87, 60, 11, 97, 113, 141, 195, 141,\n\t\t102, 86, 139, 123, 236, 36, 130, 108, 244, 65, 128, 194, 37,\n\t\t148, 130, 121, 30, 160, 180, 216, 103, 77, 141, 114, 63, 227,\n\t\t231, 166, 139, 222, 228, 155, 7, 60, 80, 103, 252, 252, 238,\n\t\t238, 54, 10, 22, 240, 37, 88, 212, 166, 107, 34, 74, 255,\n\t\t128, 179, 181, 68, 97, 107, 13, 220, 78, 77, 248, 151, 144,\n\t\t214, 230, 155, 173, 80, 96, 225, 245, 16, 94, 57, 20, 24,\n\t\t118, 251, 149, 26, 189, 188, 52, 90, 60, 95, 180, 179, 98,\n\t\t32, 244, 174, 22, 103, 226, 220, 23, 129, 253, 59, 49, 123,\n\t\t44, 154, 17, 13, 86, 126, 230, 69, 37, 212, 178, 242, 140,\n\t\t159, 175, 144, 80, 46, 243, 56, 163, 243, 238, 129, 222, 149,\n\t\t126, 196, 102, 24, 103, 18, 209, 64, 250, 95, 220, 195, 23,\n\t\t99, 6, 16, 13, 41, 24, 108, 180, 56, 151, 44, 54, 97, 76,\n\t\t248, 139, 97, 228, 143, 134, 17, 139, 252, 17, 69, 230, 68,\n\t\t62, 199, 222, 58, 106, 86, 182, 241, 56, 203, 44, 19, 253,\n\t\t24, 36, 220, 46, 3, 225, 75, 248, 26, 168, 172, 106, 137,\n\t\t77, 80, 66, 180, 49, 162, 187, 221, 23, 228, 97, 45, 216,\n\t\t97, 46, 106, 50, 138, 176, 128, 176, 236, 86, 4, 99, 1, 42,\n\t\t16, 192, 131, 133, 200, 32, 21, 249, 34, 61, 110, 149, 241,\n\t\t90, 12, 218, 66, 228, 147, 55, 101, 103, 231, 70, 1, 24, 188,\n\t\t190, 130, 152, 125, 210, 164, 95, 14, 12, 22, 143, 88, 108,\n\t\t27, 246, 87, 227, 171, 139, 149, 212, 5, 84, 211, 210, 79,\n\t\t157, 130, 50, 54, 86, 68, 48, 192, 211, 5, 251, 21, 158, 123,\n\t\t142, 97, 122, 252, 156, 20, 28, 236, 196, 25, 133, 219, 36,\n\t\t29, 217, 195, 193, 154, 150, 73, 115, 203, 32, 131, 84, 54,\n\t\t131, 88, 17, 35, 41, 75, 157, 63, 157, 210, 138, 215, 121,\n\t\t40, 118, 250, 119, 119, 41, 122, 238, 67, 65, 4, 12, 104,\n\t\t117, 166, 206, 238, 97, 245, 36, 24, 229, 172, 190, 170, 177,\n\t\t122, 212, 170, 139, 214, 85, 68, 71, 96, 20, 56, 173, 205,\n\t\t233, 43, 179, 172, 20, 107, 225, 194, 40, 96, 113, 198, 205,\n\t\t40, 72, 118, 152, 27, 163, 229, 64, 112, 51, 16, 18, 236,\n\t\t175, 245, 129, 112, 128, 17, 94, 235, 50, 156, 20, 114, 220,\n\t\t192, 33, 92, 114, 99, 176, 126, 84, 179, 198, 10, 92, 99,\n\t\t31, 129, 141, 196, 29, 86, 15, 26, 56, 40, 22, 13, 149, 63,\n\t\t26, 98, 180, 39, 77, 205, 14, 154, 72, 211, 13, 27, 200, 44,\n\t\t170, 84, 212, 93, 125, 85, 125, 44, 42, 58, 193, 106, 103,\n\t\t194, 73, 234, 219, 115, 113, 223, 104, 9, 167, 222, 53, 147,\n\t\t226, 186, 243, 241, 228, 248, 133, 214, 203, 183, 226, 107,\n\t\t42, 18, 61, 212, 62, 31, 143, 15, 175, 132, 212, 102, 163,\n\t\t42, 164, 80, 196, 195, 83, 55, 175, 220, 144, 210, 91, 73,\n\t\t18, 110, 148, 124, 19, 180, 182, 54, 201, 10, 252, 184, 21,\n\t\t126, 30, 243, 241, 10, 112, 203, 178, 177, 221, 239, 239,\n\t\t48, 225, 39, 154, 235, 52, 49, 198, 164, 253, 181, 243, 176,\n\t\t223, 223, 13, 121, 16, 241, 134, 61, 243, 109, 170, 230, 129,\n\t\t246, 149, 72, 150, 177, 76, 196, 251, 183, 199, 96, 107, 237,\n\t\t199, 99, 17, 104, 135, 194, 149, 189, 19, 223, 116, 81, 102,\n\t\t30, 96, 38, 248, 88, 168, 164, 54, 180, 24, 200, 155, 91,\n\t\t159, 135, 106, 88, 234, 220, 67, 133, 215, 46, 236, 137, 149,\n\t\t247, 151, 250, 75, 122, 20, 238, 63, 65, 227, 101, 36, 92,\n\t\t208, 177, 177, 99, 253, 157, 66, 76, 185, 111, 230, 159, 13,\n\t\t105, 238, 67, 74, 33, 174, 21, 165, 189, 109, 58, 20, 108,\n\t\t159, 72, 94, 189, 146, 86, 185, 93, 167, 136, 50, 35, 190,\n\t\t27, 247, 60, 64, 207, 44, 15, 98, 154, 25, 243, 170, 60, 126,\n\t\t35, 24, 119, 179, 55, 159, 191, 117, 76, 122, 97, 59, 109,\n\t\t204, 222, 204, 236, 74, 52, 17, 5, 3, 41, 205, 74, 97, 26,\n\t\t129, 61, 30, 80, 70, 192, 180, 226, 225, 165, 80, 180, 219,\n\t\t173, 78, 83, 179, 68, 73, 63, 93, 154, 81, 110, 24, 124, 140,\n\t\t246, 16, 73, 226, 213, 168, 151, 126, 120, 119, 135, 22, 73,\n\t\t202, 65, 192, 1, 81, 48, 231, 196, 76, 50, 51, 60, 54, 18,\n\t\t0, 146, 232, 187, 25, 64, 29, 107, 62, 207, 40, 110, 174,\n\t\t64, 254, 119, 154, 152, 112, 114, 155, 31, 186, 175, 53, 99,\n\t\t71, 112, 63, 94, 44, 83, 205, 71, 115, 177, 203, 21, 113,\n\t\t141, 211, 32, 85, 142, 128, 12, 173, 209, 130, 23, 102, 138,\n\t\t107, 117, 115, 171, 253, 120, 41, 36, 73, 253, 133, 208, 179,\n\t\t120, 12, 169, 159, 170, 57, 108, 244, 215, 189, 235, 146,\n\t\t196, 134, 151, 169, 154, 151, 214, 235, 250, 18, 144, 171,\n\t\t12, 39, 157, 149, 248, 78, 237, 39, 66, 187, 185, 108, 135,\n\t\t145, 72, 159, 219, 107, 54, 254, 136, 14, 181, 239, 166, 39,\n\t\t19, 249, 47, 159, 223, 221, 245, 161, 156, 34, 239, 110, 150,\n\t\t102, 117, 113, 67, 60, 6, 237, 95, 71, 122, 182, 175, 196,\n\t\t88, 72, 29, 241, 121, 98, 116, 213, 124, 30, 95, 239, 199,\n\t\t241, 101, 36, 146, 103, 42, 94, 188, 214, 51, 161, 14, 226,\n\t\t5, 143, 100, 130, 139, 59, 133, 212, 31, 197, 227, 27, 99,\n\t\t237, 55, 208, 228, 237, 199, 82, 11, 169, 183, 76, 99, 94,\n\t\t1, 107, 20, 132, 209, 164, 196, 21, 140, 104, 85, 47, 104,\n\t\t63, 100, 27, 134, 82, 62, 138, 149, 38, 104, 193, 186, 179,\n\t\t35, 209, 234, 126, 64, 27, 211, 157, 30, 1, 15, 100, 150,\n\t\t81, 216, 108, 91, 75, 28, 176, 244, 199, 48, 10, 164, 217,\n\t\t47, 4, 205, 171, 139, 85, 163, 89, 109, 129, 185, 22, 164,\n\t\t126, 21, 33, 143, 63, 205, 151, 176, 211, 123, 236, 208, 126,\n\t\t121, 15, 194, 118, 233, 198, 222, 15, 184, 20, 204, 75, 229,\n\t\t88, 76, 34, 41, 198, 165, 155, 59, 15, 47, 219, 205, 127,\n\t\t4, 213, 221, 203, 91, 145, 123, 22, 248, 114, 41, 228, 120,\n\t\t127, 22, 205, 199, 102, 143, 88, 64, 156, 136, 38, 95, 139,\n\t\t105, 112, 191, 70, 100, 245, 226, 94, 251, 33, 249, 217, 57,\n\t\t222, 10, 40, 237, 146, 219, 220, 100, 229, 67, 213, 99, 220,\n\t\t31, 25, 9, 147, 214, 172, 40, 253, 211, 170, 87, 104, 70,\n\t\t64, 171, 62, 12, 34, 24, 7, 223, 209, 30, 16, 129, 132, 73,\n\t\t144, 194, 40, 80, 56, 206, 196, 237, 84, 225, 219, 255, 8,\n\t\t129, 63, 70, 226, 246, 15, 145, 136, 3, 183, 119, 207, 96,\n\t\t63, 130, 47, 129, 198, 61, 204, 40, 24, 244, 136, 192, 198,\n\t\t235, 214, 202, 177, 88, 169, 243, 216, 236, 119, 96, 17, 8,\n\t\t184, 204, 119, 149, 56, 94, 23, 173, 38, 232, 177, 32, 103,\n\t\t26, 196, 121, 117, 10, 229, 246, 13, 186, 67, 50, 10, 7, 226,\n\t\t190, 67, 74, 135, 1, 15, 41, 27, 176, 148, 55, 84, 17, 215,\n\t\t235, 123, 122, 236, 241, 190, 87, 217, 105, 193, 155, 123,\n\t\t97, 7, 53, 216, 87, 247, 194, 110, 215, 96, 159, 221, 11,\n\t\t251, 176, 10, 139, 163, 244, 84, 148, 44, 199, 65, 173, 108,\n\t\t160, 110, 179, 202, 5, 156, 194, 125, 203, 113, 61, 223, 4,\n\t\t206, 164, 47, 49, 2, 38, 198, 35, 62, 190, 237, 109, 20, 33,\n\t\t249, 17, 94, 27, 186, 187, 35, 230, 15, 187, 205, 232, 208,\n\t\t52, 206, 24, 83, 221, 174, 23, 206, 121, 146, 120, 120, 233,\n\t\t235, 157, 32, 145, 189, 71, 27, 153, 157, 85, 138, 94, 38,\n\t\t11, 240, 138, 47, 68, 1, 36, 128, 195, 119, 77, 82, 74, 3,\n\t\t99, 143, 50, 252, 93, 46, 224, 69, 23, 222, 173, 236, 91,\n\t\t245, 153, 56, 31, 154, 127, 152, 218, 85, 120, 165, 64, 6,\n\t\t149, 44, 4, 71, 21, 151, 133, 233, 219, 102, 238, 31, 43,\n\t\t110, 145, 24, 8, 255, 18, 111, 134, 93, 50, 237, 47, 8, 165,\n\t\t238, 192, 167, 95, 5, 187, 20, 126, 168, 4, 215, 194, 216,\n\t\t76, 175, 226, 177, 176, 151, 69, 163, 9, 121, 132, 96, 149,\n\t\t51, 26, 237, 95, 162, 55, 228, 203, 208, 188, 82, 254, 230,\n\t\t144, 174, 29, 226, 241, 93, 206, 206, 56, 40, 255, 203, 121,\n\t\t144, 7, 132, 152, 125, 163, 177, 139, 47, 221, 169, 221, 237,\n\t\t151, 128, 195, 50, 16, 185, 79, 150, 68, 236, 72, 16, 5, 41,\n\t\t165, 190, 152, 47, 46, 132, 49, 2, 46, 100, 60, 22, 23, 74,\n\t\t76, 88, 10, 81, 22, 77, 200, 195, 42, 213, 135, 130, 68, 76,\n\t\t251, 51, 99, 255, 80, 16, 160, 253, 49, 133, 104, 104, 7,\n\t\t80, 251, 147, 221, 162, 91, 46, 38, 249, 213, 41, 209, 254,\n\t\t4, 240, 84, 121, 245, 29, 158, 53, 15, 111, 68, 183, 235,\n\t\t113, 143, 49, 237, 135, 221, 110, 212, 96, 141, 132, 243,\n\t\t40, 188, 244, 224, 70, 144, 136, 82, 48, 36, 184, 150, 135,\n\t\t213, 99, 64, 1, 33, 235, 15, 195, 157, 56, 183, 28, 195, 94,\n\t\t143, 190, 53, 192, 71, 130, 12, 76, 39, 118, 227, 179, 240,\n\t\t60, 48, 255, 224, 145, 94, 177, 117, 137, 42, 241, 251, 133,\n\t\t52, 212, 60, 114, 178, 106, 129, 14, 205, 108, 51, 3, 177,\n\t\t251, 220, 64, 115, 138, 83, 21, 11, 94, 218, 234, 88, 100,\n\t\t133, 119, 247, 99, 1, 243, 200, 22, 188, 119, 5, 196, 195,\n\t\t176, 68, 156, 2, 119, 119, 94, 56, 19, 225, 37, 174, 87, 230,\n\t\t81, 159, 169, 243, 13, 198, 56, 237, 118, 241, 8, 131, 213,\n\t\t14, 242, 158, 175, 8, 97, 162, 111, 230, 162, 245, 42, 94,\n\t\t37, 70, 95, 172, 104, 121, 11, 89, 9, 209, 26, 170, 93, 52,\n\t\t61, 246, 180, 86, 209, 40, 213, 130, 216, 59, 243, 190, 18,\n\t\t139, 248, 74, 84, 138, 171, 244, 188, 255, 91, 188, 192, 153,\n\t\t242, 39, 144, 50, 229, 199, 195, 116, 165, 141, 87, 167, 132,\n\t\t131, 196, 171, 241, 171, 237, 216, 87, 213, 182, 94, 174,\n\t\t206, 87, 35, 186, 207, 18, 156, 111, 248, 11, 117, 71, 205,\n\t\t245, 36, 115, 71, 130, 217, 207, 67, 196, 212, 25, 63, 55,\n\t\t19, 45, 197, 125, 73, 100, 255, 245, 191, 250, 155, 140, 177,\n\t\t212, 223, 164, 183, 145, 255, 149, 165, 195, 48, 150, 58,\n\t\t146, 169, 200, 114, 170, 234, 98, 201, 33, 162, 89, 196, 190,\n\t\t24, 85, 147, 54, 110, 211, 204, 6, 227, 169, 232, 118, 111,\n\t\t151, 60, 73, 162, 43, 17, 188, 78, 73, 74, 119, 182, 141,\n\t\t245, 111, 84, 146, 117, 206, 119, 218, 209, 91, 176, 124,\n\t\t233, 50, 86, 241, 117, 36, 199, 241, 117, 211, 14, 210, 179,\n\t\t71, 83, 175, 81, 47, 248, 214, 250, 41, 142, 226, 111, 51,\n\t\t240, 28, 17, 30, 220, 78, 133, 14, 42, 75, 211, 83, 193, 54,\n\t\t250, 89, 86, 141, 91, 169, 156, 210, 8, 50, 1, 93, 217, 30,\n\t\t207, 203, 157, 250, 220, 255, 10, 146, 237, 153, 173, 14,\n\t\t7, 157, 159, 105, 75, 90, 153, 60, 192, 217, 235, 212, 236,\n\t\t135, 140, 214, 231, 16, 49, 190, 203, 119, 30, 238, 166, 62,\n\t\t15, 210, 60, 226, 37, 72, 33, 102, 3, 163, 182, 83, 127, 20,\n\t\t60, 100, 140, 119, 187, 169, 159, 232, 120, 105, 232, 231,\n\t\t83, 140, 153, 135, 144, 145, 24, 237, 226, 122, 57, 161, 64,\n\t\t182, 87, 235, 46, 21, 170, 178, 3, 49, 225, 233, 92, 83, 83,\n\t\t173, 94, 68, 40, 76, 232, 80, 177, 208, 255, 50, 108, 187,\n\t\t211, 168, 104, 196, 20, 137, 232, 16, 7, 41, 239, 81, 194,\n\t\t84, 17, 96, 96, 118, 166, 70, 154, 146, 115, 3, 22, 178, 208,\n\t\t95, 102, 33, 137, 32, 46, 119, 138, 115, 255, 43, 211, 48,\n\t\t175, 156, 96, 213, 29, 57, 218, 8, 157, 240, 55, 221, 33,\n\t\t169, 117, 113, 84, 46, 158, 212, 38, 250, 89, 113, 171, 246,\n\t\t67, 238, 253, 236, 211, 106, 138, 156, 175, 21, 167, 168,\n\t\t213, 87, 183, 155, 129, 0, 21, 72, 72, 2, 5, 218, 89, 65,\n\t\t144, 230, 230, 80, 225, 188, 201, 141, 56, 168, 220, 161,\n\t\t255, 80, 193, 22, 77, 136, 222, 96, 172, 60, 152, 240, 55,\n\t\t33, 53, 132, 99, 4, 231, 6, 99, 118, 46, 13, 140, 206, 186,\n\t\t187, 219, 198, 2, 135, 27, 155, 250, 106, 20, 73, 31, 148,\n\t\t89, 9, 69, 197, 29, 90, 53, 30, 140, 10, 47, 163, 71, 33,\n\t\t191, 135, 43, 11, 215, 92, 121, 15, 215, 250, 154, 134, 133,\n\t\t157, 98, 236, 96, 237, 135, 102, 211, 226, 143, 221, 65, 131,\n\t\t89, 118, 70, 129, 246, 71, 118, 67, 158, 178, 65, 230, 28,\n\t\t197, 169, 115, 19, 63, 174, 56, 80, 181, 63, 135, 216, 52,\n\t\t14, 33, 139, 114, 18, 18, 22, 50, 198, 138, 5, 37, 233, 118,\n\t\t67, 51, 230, 9, 139, 206, 194, 115, 243, 230, 44, 68, 69,\n\t\t146, 172, 156, 171, 153, 117, 255, 146, 14, 205, 15, 97, 12,\n\t\t0, 92, 31, 39, 43, 227, 231, 95, 130, 240, 47, 97, 98, 198,\n\t\t16, 235, 245, 119, 38, 69, 76, 41, 242, 107, 0, 10, 38, 180,\n\t\t136, 168, 202, 137, 157, 27, 83, 0, 198, 76, 248, 95, 96,\n\t\t193, 54, 6, 48, 51, 205, 161, 109, 48, 51, 182, 193, 194,\n\t\t236, 248, 214, 12, 132, 249, 238, 156, 157, 205, 97, 102,\n\t\t12, 132, 185, 29, 238, 153, 49, 16, 102, 108, 230, 95, 22,\n\t\t250, 114, 196, 132, 67, 53, 106, 71, 53, 222, 29, 179, 179,\n\t\t49, 140, 12, 170, 177, 69, 53, 50, 168, 70, 108, 228, 95,\n\t\t230, 93, 92, 116, 187, 115, 215, 157, 13, 198, 198, 249, 53,\n\t\t187, 85, 105, 8, 8, 89, 236, 182, 237, 65, 250, 67, 185, 83,\n\t\t102, 228, 176, 135, 250, 250, 76, 154, 149, 17, 195, 182,\n\t\t108, 83, 213, 19, 125, 50, 135, 49, 13, 230, 140, 177, 49,\n\t\t189, 187, 195, 118, 182, 65, 193, 216, 178, 216, 240, 125,\n\t\t6, 35, 35, 210, 189, 193, 90, 192, 12, 14, 130, 246, 57, 134,\n\t\t24, 112, 55, 6, 15, 209, 167, 207, 215, 226, 111, 16, 221,\n\t\t239, 229, 145, 215, 39, 65, 87, 2, 57, 86, 33, 62, 151, 161,\n\t\t116, 24, 50, 50, 195, 118, 102, 173, 211, 196, 176, 224, 138,\n\t\t253, 97, 36, 101, 12, 194, 88, 59, 87, 142, 166, 71, 160,\n\t\t224, 202, 2, 44, 153, 240, 163, 50, 6, 163, 218, 147, 165,\n\t\t131, 126, 12, 10, 150, 180, 230, 77, 254, 189, 118, 84, 135,\n\t\t212, 184, 224, 18, 163, 42, 93, 116, 71, 190, 104, 86, 41,\n\t\t72, 43, 20, 164, 20, 120, 185, 155, 65, 37, 89, 33, 191, 114,\n\t\t238, 93, 95, 176, 235, 75, 51, 38, 166, 48, 246, 212, 6, 170,\n\t\t110, 99, 72, 229, 191, 30, 22, 191, 30, 225, 47, 3, 201, 43,\n\t\t134, 69, 202, 180, 93, 206, 141, 50, 24, 166, 140, 177, 168,\n\t\t219, 45, 109, 42, 83, 179, 98, 83, 241, 187, 59, 103, 165,\n\t\t201, 110, 247, 79, 129, 155, 224, 187, 59, 66, 148, 177, 182,\n\t\t110, 51, 138, 235, 177, 237, 70, 173, 76, 238, 58, 107, 79,\n\t\t238, 122, 94, 110, 232, 73, 131, 236, 161, 45, 181, 154, 52,\n\t\t184, 157, 4, 134, 28, 127, 2, 113, 174, 92, 131, 245, 96,\n\t\t223, 51, 126, 110, 208, 152, 149, 26, 151, 149, 91, 107, 188,\n\t\t26, 22, 229, 153, 57, 76, 203, 192, 233, 48, 238, 118, 235,\n\t\t212, 197, 52, 203, 89, 23, 90, 54, 224, 31, 93, 235, 69, 104,\n\t\t116, 99, 120, 94, 73, 81, 80, 140, 195, 167, 181, 197, 193,\n\t\t40, 92, 163, 196, 133, 89, 151, 115, 157, 23, 179, 52, 159,\n\t\t113, 241, 78, 180, 139, 67, 250, 4, 20, 220, 94, 5, 49, 68,\n\t\t65, 180, 21, 103, 52, 136, 118, 98, 39, 9, 63, 219, 87, 17,\n\t\t136, 32, 173, 216, 93, 33, 139, 118, 226, 221, 40, 136, 243,\n\t\t168, 60, 27, 142, 103, 245, 32, 63, 75, 206, 135, 31, 140,\n\t\t97, 145, 158, 37, 231, 32, 161, 215, 179, 193, 235, 19, 220,\n\t\t213, 87, 4, 245, 115, 133, 230, 66, 110, 216, 217, 57, 164,\n\t\t236, 54, 131, 200, 252, 202, 77, 127, 211, 141, 164, 208,\n\t\t213, 48, 97, 121, 32, 32, 204, 89, 31, 198, 172, 15, 11, 166,\n\t\t134, 243, 157, 164, 219, 29, 239, 228, 225, 23, 51, 70, 246,\n\t\t89, 124, 54, 63, 167, 62, 135, 17, 35, 223, 88, 120, 54, 198,\n\t\t135, 43, 182, 239, 143, 96, 201, 190, 249, 35, 163, 225, 205,\n\t\t100, 117, 59, 218, 169, 169, 208, 27, 156, 195, 166, 1, 238,\n\t\t13, 112, 5, 152, 210, 43, 204, 251, 49, 245, 57, 156, 178,\n\t\t169, 63, 130, 27, 54, 98, 140, 93, 155, 151, 155, 248, 242,\n\t\t146, 109, 250, 28, 222, 178, 77, 127, 4, 39, 108, 198, 24,\n\t\t187, 52, 47, 79, 186, 221, 27, 250, 65, 144, 43, 120, 11,\n\t\t28, 122, 189, 5, 5, 33, 49, 109, 217, 12, 150, 48, 54, 86,\n\t\t224, 162, 199, 174, 156, 179, 37, 127, 115, 106, 33, 23, 61,\n\t\t118, 106, 223, 204, 123, 108, 27, 198, 61, 182, 109, 205,\n\t\t21, 131, 152, 46, 122, 189, 28, 215, 40, 199, 85, 180, 180,\n\t\t168, 226, 157, 247, 216, 160, 94, 251, 134, 22, 109, 93, 21,\n\t\t109, 57, 232, 15, 130, 156, 194, 50, 167, 118, 157, 134, 193,\n\t\t48, 15, 58, 217, 152, 222, 221, 93, 111, 48, 118, 73, 71,\n\t\t74, 240, 203, 225, 42, 206, 85, 234, 86, 218, 120, 219, 222,\n\t\t198, 118, 102, 85, 14, 246, 167, 74, 75, 209, 163, 30, 140,\n\t\t123, 61, 156, 50, 102, 212, 221, 128, 239, 231, 36, 84, 198,\n\t\t221, 14, 245, 122, 125, 91, 183, 20, 150, 111, 176, 199, 246,\n\t\t238, 238, 206, 206, 135, 142, 236, 138, 184, 124, 243, 71,\n\t\t224, 140, 171, 61, 138, 13, 147, 254, 78, 62, 167, 238, 238,\n\t\t250, 59, 81, 241, 123, 143, 186, 169, 243, 139, 153, 58, 215,\n\t\t1, 135, 111, 65, 4, 55, 193, 94, 230, 142, 152, 36, 243, 46,\n\t\t196, 124, 241, 225, 201, 211, 227, 106, 150, 196, 149, 128,\n\t\t117, 103, 182, 152, 61, 155, 97, 116, 148, 175, 35, 238, 36,\n\t\t242, 86, 5, 28, 246, 130, 136, 221, 134, 65, 31, 190, 7, 10,\n\t\t76, 65, 82, 248, 193, 156, 205, 97, 234, 179, 8, 77, 119,\n\t\t179, 69, 142, 252, 176, 56, 203, 204, 49, 100, 20, 34, 63,\n\t\t100, 219, 46, 180, 165, 102, 196, 68, 254, 119, 80, 16, 67,\n\t\t228, 43, 3, 165, 24, 183, 104, 35, 63, 241, 19, 118, 123,\n\t\t29, 196, 22, 67, 150, 83, 223, 211, 121, 7, 42, 81, 32, 181,\n\t\t224, 253, 92, 181, 203, 202, 22, 173, 143, 27, 51, 36, 45,\n\t\t39, 36, 170, 19, 162, 32, 245, 191, 67, 4, 220, 45, 244, 95,\n\t\t205, 174, 236, 87, 224, 134, 193, 17, 236, 25, 221, 148, 201,\n\t\t58, 13, 86, 217, 59, 13, 92, 192, 231, 254, 72, 100, 204,\n\t\t109, 24, 12, 42, 188, 139, 171, 107, 168, 170, 248, 254, 138,\n\t\t36, 151, 54, 75, 74, 53, 227, 154, 85, 134, 184, 227, 188,\n\t\t194, 237, 67, 232, 219, 37, 112, 152, 152, 78, 13, 115, 157,\n\t\t24, 90, 83, 218, 12, 194, 132, 42, 244, 176, 251, 151, 16,\n\t\t250, 9, 196, 180, 152, 148, 191, 224, 219, 219, 208, 215,\n\t\t76, 64, 232, 167, 44, 30, 90, 131, 48, 244, 19, 255, 122,\n\t\t216, 223, 153, 23, 6, 164, 37, 100, 14, 125, 71, 72, 150,\n\t\t227, 248, 181, 25, 199, 216, 224, 48, 20, 140, 233, 237, 216,\n\t\t223, 243, 19, 38, 28, 238, 241, 223, 97, 182, 168, 171, 8,\n\t\t141, 64, 18, 211, 235, 94, 143, 159, 155, 101, 22, 187, 77,\n\t\t127, 43, 132, 212, 70, 64, 46, 242, 180, 41, 198, 222, 92,\n\t\t148, 26, 126, 198, 100, 213, 158, 181, 22, 106, 190, 83, 33,\n\t\t2, 102, 150, 193, 189, 1, 68, 32, 26, 60, 87, 238, 244, 155,\n\t\t73, 95, 56, 43, 74, 248, 225, 44, 154, 143, 95, 197, 99, 145,\n\t\t20, 107, 212, 146, 245, 135, 203, 157, 81, 190, 218, 45, 243,\n\t\t5, 106, 106, 54, 163, 108, 177, 59, 58, 91, 158, 7, 230, 31,\n\t\t127, 4, 155, 172, 215, 75, 123, 100, 106, 221, 206, 40, 153,\n\t\t59, 44, 233, 118, 147, 29, 182, 217, 237, 18, 206, 52, 185,\n\t\t58, 91, 158, 195, 212, 141, 253, 38, 196, 20, 44, 15, 86,\n\t\t56, 80, 176, 96, 152, 178, 205, 172, 224, 71, 190, 159, 131,\n\t\t62, 8, 127, 4, 213, 228, 132, 124, 221, 203, 140, 158, 196,\n\t\t220, 164, 214, 1, 169, 8, 35, 164, 230, 183, 172, 198, 46,\n\t\t167, 141, 134, 181, 168, 26, 214, 171, 174, 26, 13, 41, 139,\n\t\t37, 225, 152, 126, 141, 49, 166, 49, 65, 89, 233, 64, 173,\n\t\t132, 99, 231, 102, 251, 90, 20, 78, 97, 88, 87, 205, 251,\n\t\t170, 227, 102, 201, 149, 144, 232, 251, 4, 206, 142, 4, 158,\n\t\t42, 13, 121, 195, 128, 222, 221, 145, 166, 98, 235, 251, 89,\n\t\t29, 252, 161, 234, 118, 141, 13, 175, 187, 93, 149, 95, 204,\n\t\t181, 167, 57, 232, 164, 168, 113, 220, 79, 64, 248, 233, 234,\n\t\t157, 21, 235, 4, 244, 83, 243, 158, 130, 94, 137, 156, 41,\n\t\t178, 122, 28, 112, 205, 73, 31, 242, 13, 74, 13, 186, 216,\n\t\t39, 88, 222, 251, 201, 234, 238, 160, 137, 244, 221, 166,\n\t\t66, 255, 11, 19, 126, 18, 52, 189, 98, 183, 95, 2, 211, 133,\n\t\t101, 32, 252, 52, 203, 155, 126, 18, 84, 143, 59, 19, 151,\n\t\t124, 74, 250, 17, 134, 69, 231, 206, 38, 203, 17, 93, 153,\n\t\t23, 103, 210, 191, 42, 13, 71, 157, 71, 134, 151, 102, 23,\n\t\t65, 124, 20, 141, 198, 90, 69, 197, 76, 213, 161, 42, 22,\n\t\t60, 215, 82, 36, 19, 161, 244, 83, 49, 137, 149, 32, 71, 130,\n\t\t112, 140, 197, 246, 83, 10, 233, 106, 59, 191, 6, 168, 51,\n\t\t108, 11, 180, 244, 74, 20, 18, 82, 39, 219, 240, 217, 174,\n\t\t2, 210, 223, 171, 238, 122, 58, 253, 13, 179, 138, 41, 116,\n\t\t249, 180, 86, 142, 252, 132, 217, 105, 226, 95, 23, 67, 246,\n\t\t75, 147, 184, 230, 174, 23, 203, 200, 250, 155, 106, 76, 67,\n\t\t37, 42, 165, 240, 114, 31, 184, 115, 198, 103, 138, 79, 209,\n\t\t221, 93, 36, 2, 171, 178, 41, 183, 197, 243, 208, 134, 189,\n\t\t225, 91, 220, 181, 218, 37, 111, 55, 245, 147, 224, 72, 16,\n\t\t179, 186, 25, 206, 85, 67, 60, 165, 127, 99, 115, 160, 21,\n\t\t93, 41, 247, 86, 76, 250, 223, 220, 61, 142, 98, 80, 42, 215,\n\t\t57, 248, 89, 106, 44, 231, 200, 223, 131, 144, 109, 163, 143,\n\t\t35, 220, 141, 109, 83, 177, 107, 106, 184, 50, 128, 33, 212,\n\t\t6, 61, 242, 213, 57, 205, 84, 183, 139, 39, 167, 170, 18,\n\t\t41, 135, 220, 89, 185, 189, 32, 252, 132, 104, 58, 28, 91,\n\t\t247, 91, 240, 130, 12, 250, 85, 167, 110, 152, 7, 137, 216,\n\t\t124, 173, 70, 192, 223, 221, 44, 139, 132, 65, 39, 102, 11,\n\t\t170, 197, 55, 237, 142, 192, 173, 189, 178, 209, 2, 234, 121,\n\t\t180, 18, 95, 98, 179, 122, 242, 220, 161, 156, 220, 23, 91,\n\t\t50, 20, 108, 70, 78, 200, 51, 1, 28, 83, 19, 1, 183, 169,\n\t\t7, 241, 234, 181, 51, 76, 124, 205, 167, 175, 248, 66, 248,\n\t\t58, 62, 142, 175, 133, 218, 231, 137, 32, 20, 92, 120, 212,\n\t\t234, 58, 163, 74, 239, 145, 178, 238, 194, 25, 9, 37, 137,\n\t\t207, 212, 57, 133, 168, 96, 218, 62, 217, 23, 144, 130, 128,\n\t\t200, 182, 147, 200, 234, 25, 163, 0, 93, 211, 254, 24, 170,\n\t\t140, 161, 170, 50, 66, 69, 181, 28, 115, 45, 140, 150, 177,\n\t\t129, 103, 75, 83, 171, 146, 18, 216, 232, 61, 103, 87, 9,\n\t\t63, 17, 58, 93, 98, 32, 144, 249, 65, 184, 33, 93, 248, 87,\n\t\t145, 184, 134, 216, 200, 174, 142, 244, 220, 236, 167, 46,\n\t\t5, 198, 19, 64, 194, 66, 73, 194, 130, 210, 185, 145, 181,\n\t\t170, 255, 238, 70, 176, 116, 104, 89, 29, 97, 26, 81, 182,\n\t\t47, 136, 103, 170, 122, 148, 44, 40, 177, 104, 140, 232, 191,\n\t\t16, 36, 49, 26, 62, 100, 92, 146, 16, 18, 52, 194, 32, 97,\n\t\t18, 110, 4, 235, 67, 140, 254, 16, 108, 190, 219, 37, 57,\n\t\t37, 44, 206, 11, 241, 196, 52, 163, 48, 145, 141, 199, 251,\n\t\t202, 6, 75, 236, 201, 104, 129, 142, 225, 103, 138, 47, 196,\n\t\t110, 99, 105, 45, 64, 161, 18, 72, 174, 97, 32, 30, 62, 120,\n\t\t210, 167, 149, 184, 128, 185, 36, 150, 245, 68, 90, 143, 11,\n\t\t175, 94, 130, 72, 9, 189, 229, 104, 46, 240, 221, 126, 64,\n\t\t38, 146, 164, 20, 12, 40, 12, 90, 66, 81, 36, 211, 32, 118,\n\t\t9, 194, 152, 137, 199, 209, 122, 24, 80, 26, 160, 149, 203,\n\t\t187, 93, 139, 132, 179, 237, 234, 4, 25, 87, 206, 144, 63,\n\t\t164, 134, 59, 181, 36, 57, 212, 231, 119, 119, 47, 200, 192,\n\t\t74, 207, 66, 182, 135, 17, 167, 41, 28, 167, 240, 188, 22,\n\t\t53, 47, 186, 221, 89, 148, 232, 88, 221, 248, 211, 216, 6,\n\t\t47, 185, 68, 176, 179, 127, 136, 41, 71, 99, 54, 16, 167,\n\t\t154, 107, 129, 39, 15, 30, 84, 113, 142, 36, 187, 93, 61,\n\t\t191, 168, 30, 71, 100, 208, 112, 28, 82, 3, 200, 224, 170,\n\t\t89, 6, 214, 67, 60, 70, 18, 150, 205, 176, 246, 36, 101, 215,\n\t\t254, 49, 112, 83, 89, 13, 136, 169, 219, 91, 95, 52, 169,\n\t\t119, 180, 98, 240, 107, 122, 251, 82, 19, 133, 193, 45, 133,\n\t\t182, 91, 59, 160, 145, 160, 235, 103, 65, 152, 191, 160, 58,\n\t\t8, 141, 167, 64, 210, 166, 174, 55, 124, 219, 92, 31, 11,\n\t\t187, 224, 184, 75, 191, 149, 27, 138, 146, 238, 114, 12, 98,\n\t\t178, 97, 86, 40, 183, 215, 109, 213, 189, 169, 55, 212, 62,\n\t\t166, 159, 153, 71, 210, 204, 61, 217, 99, 222, 194, 163, 70,\n\t\t223, 243, 68, 28, 201, 68, 200, 36, 210, 209, 85, 254, 46,\n\t\t242, 108, 136, 86, 110, 74, 41, 242, 86, 76, 15, 191, 45,\n\t\t209, 128, 91, 143, 207, 74, 149, 217, 110, 158, 202, 251,\n\t\t50, 102, 128, 243, 234, 244, 33, 98, 210, 58, 226, 243, 156,\n\t\t10, 16, 178, 173, 129, 89, 188, 118, 140, 17, 170, 48, 204,\n\t\t74, 132, 36, 162, 180, 219, 13, 55, 170, 144, 195, 18, 97,\n\t\t121, 76, 179, 53, 128, 137, 59, 73, 72, 232, 176, 95, 120,\n\t\t2, 230, 120, 112, 51, 156, 156, 109, 109, 37, 231, 108, 110,\n\t\t24, 102, 163, 210, 220, 233, 249, 38, 249, 61, 1, 117, 214,\n\t\t63, 7, 101, 195, 13, 33, 133, 99, 188, 137, 137, 206, 166,\n\t\t162, 209, 114, 204, 139, 34, 22, 131, 205, 190, 0, 55, 53,\n\t\t61, 206, 65, 27, 37, 159, 47, 194, 253, 97, 81, 53, 207, 31,\n\t\t83, 87, 173, 209, 132, 68, 189, 222, 111, 229, 237, 97, 93,\n\t\t89, 215, 184, 154, 162, 136, 39, 121, 63, 31, 66, 158, 113,\n\t\t84, 152, 126, 138, 34, 245, 70, 1, 121, 38, 206, 135, 242,\n\t\t108, 107, 11, 99, 27, 184, 34, 10, 251, 155, 143, 146, 237,\n\t\t177, 134, 18, 124, 173, 137, 237, 115, 136, 224, 152, 72,\n\t\t90, 185, 50, 117, 41, 91, 242, 41, 228, 69, 171, 105, 1, 215,\n\t\t110, 119, 214, 243, 44, 28, 29, 31, 218, 20, 7, 136, 253,\n\t\t173, 188, 247, 142, 255, 45, 151, 177, 60, 74, 246, 230, 243,\n\t\t248, 90, 140, 3, 5, 81, 178, 39, 99, 25, 72, 136, 146, 227,\n\t\t120, 58, 21, 227, 35, 25, 8, 80, 209, 116, 166, 147, 128,\n\t\t67, 154, 8, 101, 22, 118, 76, 97, 0, 39, 242, 158, 72, 158,\n\t\t219, 205, 160, 33, 25, 101, 53, 163, 46, 140, 49, 136, 9,\n\t\t246, 37, 230, 237, 61, 252, 195, 203, 224, 155, 253, 253,\n\t\t252, 157, 151, 193, 158, 253, 125, 108, 126, 31, 183, 73,\n\t\t255, 208, 157, 63, 182, 228, 209, 148, 197, 157, 82, 151,\n\t\t252, 214, 88, 47, 99, 224, 204, 108, 208, 246, 209, 236, 27,\n\t\t129, 244, 67, 216, 39, 199, 70, 197, 8, 144, 190, 192, 108,\n\t\t197, 28, 4, 75, 65, 50, 36, 241, 66, 178, 8, 14, 36, 91, 31,\n\t\t166, 14, 86, 108, 189, 136, 120, 66, 46, 36, 216, 28, 196,\n\t\t32, 49, 171, 133, 25, 27, 120, 253, 159, 162, 210, 85, 44,\n\t\t111, 26, 177, 188, 150, 246, 222, 50, 188, 146, 236, 29, 60,\n\t\t171, 49, 14, 187, 88, 108, 86, 253, 16, 51, 202, 140, 33,\n\t\t109, 91, 165, 246, 201, 43, 9, 222, 105, 58, 122, 167, 132,\n\t\t112, 249, 177, 119, 101, 144, 98, 252, 8, 230, 71, 169, 2,\n\t\t166, 128, 127, 76, 35, 156, 98, 136, 22, 60, 109, 233, 232,\n\t\t51, 9, 23, 210, 117, 227, 187, 100, 127, 192, 187, 214, 149,\n\t\t82, 107, 34, 232, 3, 237, 210, 241, 28, 73, 246, 93, 146,\n\t\t19, 242, 78, 194, 54, 60, 220, 166, 20, 14, 49, 214, 238,\n\t\t185, 100, 155, 228, 68, 66, 31, 142, 36, 28, 154, 255, 83,\n\t\t248, 216, 212, 56, 138, 148, 224, 19, 207, 198, 31, 194, 123,\n\t\t201, 158, 194, 203, 191, 17, 175, 13, 185, 154, 68, 217, 200,\n\t\t209, 200, 201, 17, 230, 3, 206, 19, 42, 215, 228, 230, 75,\n\t\t75, 247, 95, 86, 186, 255, 231, 122, 207, 243, 150, 175, 92,\n\t\t82, 248, 247, 18, 30, 110, 131, 182, 113, 221, 166, 85, 148,\n\t\t5, 211, 147, 124, 104, 128, 7, 210, 231, 89, 126, 75, 95,\n\t\t149, 228, 126, 145, 132, 27, 186, 20, 8, 198, 13, 77, 47,\n\t\t90, 57, 45, 44, 139, 191, 54, 18, 173, 13, 250, 15, 127, 71,\n\t\t235, 119, 73, 196, 131, 135, 219, 133, 67, 180, 8, 124, 42,\n\t\t59, 225, 243, 161, 102, 39, 228, 79, 35, 38, 11, 10, 130,\n\t\t97, 124, 236, 239, 146, 125, 128, 63, 36, 251, 4, 159, 90,\n\t\t233, 235, 239, 216, 4, 224, 187, 58, 16, 25, 133, 207, 45,\n\t\t116, 90, 101, 155, 129, 86, 107, 136, 48, 205, 130, 217, 242,\n\t\t24, 3, 225, 52, 250, 94, 44, 226, 15, 183, 255, 85, 127, 1,\n\t\t138, 253, 225, 228, 236, 225, 54, 200, 173, 1, 222, 112, 209,\n\t\t187, 95, 100, 5, 3, 13, 202, 223, 40, 7, 31, 36, 222, 178,\n\t\t168, 181, 144, 79, 17, 20, 207, 207, 166, 186, 230, 209, 156,\n\t\t246, 36, 156, 144, 79, 120, 188, 248, 175, 35, 73, 205, 194,\n\t\t102, 95, 100, 205, 240, 78, 174, 115, 32, 10, 66, 177, 103,\n\t\t32, 85, 139, 126, 175, 8, 175, 216, 233, 151, 163, 160, 21,\n\t\t108, 12, 224, 54, 167, 48, 80, 80, 37, 54, 144, 15, 30, 110,\n\t\t223, 245, 193, 180, 17, 240, 44, 79, 87, 241, 81, 146, 125,\n\t\t34, 148, 225, 132, 0, 109, 147, 185, 131, 96, 98, 203, 176,\n\t\t134, 73, 80, 86, 32, 83, 80, 134, 73, 40, 101, 170, 145, 249,\n\t\t253, 29, 157, 115, 92, 255, 239, 135, 219, 57, 107, 190, 17,\n\t\t169, 12, 230, 45, 105, 48, 106, 88, 0, 54, 39, 77, 9, 136,\n\t\t210, 46, 124, 46, 51, 10, 92, 181, 204, 234, 151, 105, 162,\n\t\t243, 89, 157, 42, 92, 59, 94, 197, 152, 24, 212, 203, 32,\n\t\t106, 171, 117, 168, 84, 94, 41, 110, 131, 121, 125, 153, 131,\n\t\t132, 77, 32, 230, 189, 189, 20, 153, 65, 178, 222, 239, 18,\n\t\t207, 51, 30, 205, 83, 37, 42, 9, 232, 41, 76, 238, 173, 16,\n\t\t137, 249, 184, 6, 62, 191, 15, 28, 173, 167, 26, 248, 184,\n\t\t181, 75, 82, 188, 46, 116, 224, 66, 177, 55, 48, 171, 131,\n\t\t94, 185, 152, 146, 74, 190, 177, 242, 214, 152, 216, 121,\n\t\t252, 120, 251, 215, 39, 119, 119, 143, 159, 60, 28, 252, 186,\n\t\t35, 118, 69, 48, 232, 111, 63, 250, 23, 17, 91, 248, 130,\n\t\t246, 106, 21, 7, 116, 11, 115, 148, 245, 158, 60, 126, 252,\n\t\t240, 73, 6, 163, 166, 166, 102, 170, 114, 95, 240, 215, 159,\n\t\t119, 152, 232, 118, 197, 14, 27, 108, 111, 103, 112, 245,\n\t\t183, 21, 196, 14, 251, 181, 223, 237, 62, 121, 188, 195, 68,\n\t\t6, 203, 166, 110, 119, 70, 10, 211, 99, 92, 97, 50, 44, 152,\n\t\t254, 45, 204, 221, 221, 223, 55, 250, 248, 231, 110, 247,\n\t\t209, 47, 166, 81, 68, 186, 217, 136, 20, 21, 126, 155, 210,\n\t\t237, 13, 50, 10, 125, 92, 10, 174, 21, 11, 225, 84, 221, 191,\n\t\t22, 13, 118, 220, 119, 16, 242, 73, 45, 221, 130, 164, 205,\n\t\t106, 190, 53, 64, 69, 116, 33, 177, 94, 174, 247, 65, 178,\n\t\t212, 136, 195, 77, 155, 244, 116, 246, 201, 41, 126, 122,\n\t\t4, 22, 152, 72, 234, 30, 184, 107, 3, 119, 66, 110, 20, 244,\n\t\t97, 83, 17, 65, 183, 6, 212, 230, 218, 127, 171, 88, 172,\n\t\t225, 68, 177, 177, 134, 253, 86, 12, 39, 36, 213, 160, 33,\n\t\t182, 185, 151, 224, 219, 63, 17, 59, 99, 117, 175, 201, 222,\n\t\t1, 185, 36, 250, 172, 127, 142, 55, 57, 92, 14, 107, 26, 228,\n\t\t165, 61, 125, 54, 168, 188, 218, 166, 20, 173, 118, 216, 107,\n\t\t37, 240, 152, 156, 16, 174, 209, 82, 50, 4, 30, 55, 14, 233,\n\t\t9, 217, 87, 69, 166, 74, 56, 33, 123, 248, 228, 225, 229,\n\t\t36, 184, 80, 236, 153, 134, 131, 182, 22, 48, 69, 38, 241,\n\t\t122, 39, 138, 232, 222, 128, 246, 60, 218, 241, 122, 199,\n\t\t138, 188, 86, 142, 39, 175, 91, 154, 124, 163, 112, 205, 204,\n\t\t224, 205, 58, 106, 29, 56, 25, 89, 205, 156, 226, 148, 72,\n\t\t224, 132, 196, 231, 232, 208, 51, 86, 68, 129, 192, 178, 93,\n\t\t179, 111, 102, 79, 131, 161, 229, 185, 226, 180, 106, 173,\n\t\t12, 20, 202, 135, 135, 99, 164, 89, 241, 229, 133, 165, 194,\n\t\t75, 160, 221, 238, 9, 121, 171, 96, 170, 140, 149, 74, 140,\n\t\t244, 73, 204, 191, 120, 33, 129, 239, 122, 190, 215, 83, 129,\n\t\t119, 246, 147, 215, 83, 61, 239, 167, 115, 155, 186, 202,\n\t\t197, 136, 58, 63, 182, 211, 96, 1, 82, 232, 22, 31, 239, 204,\n\t\t114, 202, 231, 180, 231, 157, 123, 85, 164, 105, 19, 10, 171,\n\t\t217, 92, 146, 84, 237, 243, 33, 70, 167, 142, 92, 148, 234,\n\t\t40, 15, 172, 143, 25, 17, 254, 104, 215, 123, 55, 19, 157,\n\t\t151, 73, 44, 253, 3, 17, 198, 99, 225, 199, 166, 122, 135,\n\t\t235, 206, 151, 36, 150, 94, 207, 142, 179, 7, 95, 240, 67,\n\t\t48, 129, 183, 6, 138, 57, 206, 39, 60, 255, 156, 83, 61, 113,\n\t\t42, 82, 190, 137, 201, 126, 122, 94, 231, 154, 223, 36, 129,\n\t\t55, 92, 145, 32, 35, 53, 216, 155, 24, 78, 200, 165, 130,\n\t\t3, 5, 145, 217, 32, 106, 38, 89, 100, 63, 113, 81, 233, 163,\n\t\t91, 10, 189, 183, 92, 118, 34, 169, 227, 14, 111, 160, 30,\n\t\t243, 119, 201, 184, 179, 140, 147, 36, 26, 69, 243, 72, 71,\n\t\t34, 241, 122, 182, 195, 237, 125, 219, 240, 74, 15, 243, 21,\n\t\t158, 187, 106, 204, 188, 160, 139, 129, 38, 49, 67, 28, 107,\n\t\t57, 156, 109, 194, 227, 22, 204, 61, 175, 76, 246, 26, 172,\n\t\t215, 181, 153, 159, 203, 28, 179, 30, 237, 145, 99, 69, 78,\n\t\t200, 133, 130, 71, 144, 208, 60, 3, 46, 237, 133, 120, 55,\n\t\t67, 177, 145, 134, 103, 138, 77, 53, 60, 109, 89, 222, 30,\n\t\t218, 20, 140, 240, 93, 177, 165, 134, 119, 138, 237, 145,\n\t\t19, 13, 111, 141, 201, 245, 76, 129, 103, 182, 177, 30, 124,\n\t\t87, 212, 61, 71, 201, 197, 28, 119, 187, 23, 102, 139, 250,\n\t\t170, 90, 110, 54, 200, 213, 34, 243, 124, 97, 202, 237, 150,\n\t\t185, 250, 202, 238, 146, 61, 120, 170, 200, 119, 69, 41, 133,\n\t\t35, 107, 132, 52, 109, 77, 51, 56, 84, 236, 72, 193, 115,\n\t\t197, 174, 225, 227, 61, 179, 249, 190, 205, 109, 153, 48,\n\t\t169, 147, 170, 225, 149, 59, 104, 9, 65, 225, 166, 206, 108,\n\t\t237, 68, 158, 71, 233, 132, 60, 71, 245, 238, 143, 104, 161,\n\t\t23, 142, 223, 121, 129, 53, 228, 212, 218, 36, 58, 252, 195,\n\t\t203, 143, 30, 56, 186, 110, 115, 185, 176, 21, 120, 85, 34,\n\t\t205, 160, 188, 183, 93, 125, 58, 231, 225, 165, 151, 193,\n\t\t203, 54, 179, 180, 52, 64, 26, 62, 137, 177, 234, 28, 0, 17,\n\t\t160, 45, 249, 197, 241, 81, 140, 189, 12, 254, 108, 67, 221,\n\t\t254, 157, 13, 110, 191, 248, 36, 198, 246, 129, 27, 14, 88,\n\t\t221, 194, 253, 17, 198, 110, 133, 120, 201, 117, 12, 33, 227,\n\t\t54, 57, 93, 203, 183, 163, 148, 191, 121, 119, 135, 152, 240,\n\t\t129, 151, 3, 240, 141, 188, 196, 107, 152, 16, 1, 254, 252,\n\t\t162, 28, 101, 49, 133, 210, 251, 95, 125, 133, 191, 223, 43,\n\t\t80, 254, 8, 148, 25, 53, 127, 12, 19, 166, 124, 65, 139, 87,\n\t\t24, 32, 0, 33, 165, 217, 63, 33, 9, 191, 42, 210, 12, 58,\n\t\t174, 3, 143, 27, 122, 144, 243, 115, 152, 187, 1, 29, 85,\n\t\t171, 93, 200, 201, 206, 105, 77, 252, 17, 36, 126, 8, 137,\n\t\t63, 134, 164, 218, 9, 131, 112, 2, 28, 23, 182, 23, 77, 182,\n\t\t205, 143, 185, 111, 242, 118, 77, 165, 35, 5, 71, 138, 22,\n\t\t251, 112, 142, 55, 163, 70, 54, 55, 48, 68, 232, 225, 137,\n\t\t49, 122, 161, 46, 253, 188, 46, 251, 5, 226, 63, 149, 139,\n\t\t58, 216, 39, 47, 108, 3, 17, 5, 151, 198, 174, 58, 19, 144,\n\t\t4, 3, 41, 48, 112, 163, 152, 19, 235, 136, 162, 18, 85, 108,\n\t\t83, 81, 126, 109, 234, 185, 237, 64, 1, 42, 91, 63, 22, 115,\n\t\t175, 232, 169, 218, 208, 172, 72, 148, 145, 167, 140, 194,\n\t\t135, 186, 162, 108, 111, 70, 223, 35, 63, 58, 151, 159, 150,\n\t\t183, 21, 125, 164, 219, 122, 98, 83, 100, 27, 68, 229, 148,\n\t\t180, 5, 197, 180, 20, 152, 178, 70, 98, 92, 98, 238, 240,\n\t\t144, 152, 202, 134, 76, 112, 108, 39, 120, 105, 138, 77, 48,\n\t\t165, 141, 92, 23, 205, 137, 63, 130, 73, 69, 52, 241, 210,\n\t\t120, 254, 108, 102, 31, 38, 83, 11, 65, 96, 88, 174, 160,\n\t\t144, 150, 210, 106, 198, 47, 194, 65, 203, 87, 192, 49, 174,\n\t\t128, 2, 38, 140, 40, 150, 32, 53, 78, 206, 233, 48, 102, 201,\n\t\t74, 243, 13, 205, 133, 254, 8, 66, 63, 132, 208, 40, 152,\n\t\t98, 102, 124, 177, 109, 77, 176, 45, 248, 253, 255, 83, 227,\n\t\t51, 94, 29, 159, 241, 234, 248, 140, 112, 124, 204, 82, 163,\n\t\t113, 169, 81, 232, 69, 84, 24, 10, 107, 83, 13, 69, 166, 215,\n\t\t44, 50, 156, 98, 17, 42, 145, 232, 239, 149, 136, 209, 199,\n\t\t70, 27, 27, 93, 204, 87, 149, 72, 90, 48, 46, 134, 16, 18,\n\t\t152, 228, 73, 37, 230, 72, 196, 152, 205, 253, 49, 44, 48,\n\t\t189, 104, 204, 22, 216, 252, 2, 155, 95, 96, 243, 139, 245,\n\t\t145, 170, 246, 36, 199, 61, 247, 71, 48, 247, 67, 48, 253,\n\t\t153, 87, 71, 171, 104, 52, 131, 63, 20, 227, 13, 107, 144,\n\t\t253, 230, 104, 59, 99, 211, 42, 83, 83, 203, 208, 42, 69,\n\t\t18, 82, 163, 197, 140, 168, 251, 227, 154, 148, 164, 134,\n\t\t177, 198, 38, 180, 102, 65, 11, 254, 8, 241, 219, 53, 24,\n\t\t31, 185, 191, 57, 188, 143, 160, 200, 140, 179, 5, 176, 181,\n\t\t54, 108, 153, 161, 12, 3, 78, 59, 69, 250, 248, 223, 205,\n\t\t222, 36, 107, 122, 16, 25, 133, 79, 255, 199, 196, 183, 184,\n\t\t5, 170, 106, 123, 13, 51, 78, 10, 199, 137, 227, 96, 167,\n\t\t184, 92, 71, 121, 46, 217, 146, 124, 190, 182, 164, 185, 251,\n\t\t5, 10, 143, 234, 239, 251, 28, 215, 223, 13, 79, 29, 145,\n\t\t77, 243, 196, 62, 160, 63, 160, 189, 195, 241, 90, 151, 66,\n\t\t22, 87, 37, 241, 79, 5, 177, 207, 33, 246, 71, 16, 251, 161,\n\t\t65, 31, 27, 245, 22, 210, 12, 62, 55, 250, 208, 126, 192,\n\t\t26, 60, 42, 173, 65, 142, 214, 224, 200, 166, 142, 199, 104,\n\t\t245, 49, 6, 44, 32, 219, 166, 24, 121, 178, 211, 191, 111,\n\t\t196, 82, 28, 177, 130, 191, 233, 26, 127, 173, 232, 159, 144,\n\t\t207, 104, 255, 32, 143, 45, 107, 82, 151, 137, 184, 153, 219,\n\t\t113, 149, 219, 113, 211, 100, 88, 69, 235, 52, 242, 7, 35,\n\t\t124, 247, 112, 60, 92, 227, 67, 194, 194, 21, 142, 135, 62,\n\t\t47, 212, 178, 107, 34, 52, 92, 79, 104, 37, 79, 21, 7, 13,\n\t\t115, 242, 71, 197, 40, 194, 9, 142, 57, 101, 120, 203, 200,\n\t\t52, 17, 244, 31, 12, 204, 133, 205, 77, 239, 54, 170, 213,\n\t\t169, 85, 223, 22, 252, 183, 166, 152, 198, 123, 230, 227,\n\t\t44, 35, 69, 32, 77, 187, 16, 239, 30, 169, 0, 89, 39, 11,\n\t\t81, 77, 141, 176, 70, 165, 119, 214, 189, 182, 124, 114, 92,\n\t\t181, 236, 18, 235, 236, 186, 114, 71, 27, 159, 221, 7, 111,\n\t\t219, 251, 35, 171, 134, 143, 172, 138, 159, 92, 213, 231,\n\t\t249, 97, 158, 49, 18, 164, 53, 124, 36, 111, 181, 187, 4,\n\t\t57, 33, 31, 21, 30, 169, 21, 253, 71, 31, 178, 181, 182, 118,\n\t\t79, 136, 224, 248, 54, 216, 39, 95, 13, 156, 242, 185, 61,\n\t\t126, 83, 188, 201, 11, 140, 117, 115, 63, 48, 231, 76, 9,\n\t\t72, 57, 227, 2, 162, 245, 238, 219, 42, 184, 101, 226, 227,\n\t\t83, 204, 253, 115, 81, 115, 220, 198, 77, 77, 56, 248, 247,\n\t\t106, 126, 81, 56, 164, 239, 195, 253, 60, 142, 27, 145, 39,\n\t\t220, 122, 199, 133, 190, 142, 213, 37, 126, 14, 229, 194,\n\t\t203, 96, 210, 214, 230, 91, 204, 80, 19, 201, 105, 222, 234,\n\t\t188, 13, 242, 84, 200, 113, 5, 110, 108, 27, 114, 1, 66, 166,\n\t\t141, 5, 150, 244, 51, 152, 181, 17, 238, 189, 190, 116, 179,\n\t\t102, 55, 82, 68, 219, 236, 98, 65, 108, 61, 76, 25, 133, 81,\n\t\t211, 136, 230, 107, 17, 209, 152, 189, 138, 194, 85, 19, 133,\n\t\t29, 157, 193, 178, 173, 221, 206, 62, 153, 10, 240, 60, 184,\n\t\t50, 106, 103, 196, 237, 81, 71, 70, 97, 122, 207, 80, 60,\n\t\t141, 199, 55, 121, 103, 55, 215, 185, 234, 101, 112, 93, 99,\n\t\t129, 151, 193, 233, 58, 1, 171, 161, 191, 197, 32, 87, 178,\n\t\t85, 151, 99, 111, 218, 19, 62, 207, 220, 6, 165, 96, 110,\n\t\t5, 248, 154, 187, 151, 245, 33, 174, 64, 108, 230, 16, 21,\n\t\t249, 171, 188, 110, 237, 176, 133, 117, 93, 54, 67, 226, 151,\n\t\t169, 173, 232, 218, 150, 232, 132, 204, 56, 76, 57, 102, 115,\n\t\t26, 217, 141, 208, 13, 103, 251, 26, 46, 91, 71, 225, 132,\n\t\t44, 205, 172, 59, 229, 13, 52, 88, 124, 175, 21, 156, 144,\n\t\t155, 98, 124, 208, 243, 220, 46, 185, 24, 191, 150, 15, 209,\n\t\t9, 103, 135, 26, 246, 91, 231, 140, 18, 95, 147, 64, 67, 146,\n\t\t142, 18, 59, 83, 190, 113, 118, 194, 201, 9, 217, 231, 112,\n\t\t168, 96, 65, 41, 236, 113, 246, 81, 195, 113, 165, 193, 191,\n\t\t201, 180, 42, 253, 201, 112, 155, 185, 91, 202, 120, 69, 80,\n\t\t248, 33, 161, 32, 253, 9, 179, 217, 144, 203, 20, 150, 112,\n\t\t193, 217, 23, 13, 7, 124, 245, 208, 94, 173, 184, 132, 138,\n\t\t252, 32, 214, 64, 226, 232, 163, 51, 58, 116, 159, 203, 80,\n\t\t204, 115, 123, 160, 136, 90, 228, 16, 49, 212, 118, 41, 172,\n\t\t120, 120, 209, 228, 219, 44, 15, 8, 247, 120, 99, 218, 149,\n\t\t3, 14, 18, 215, 99, 193, 17, 7, 205, 224, 152, 187, 156, 173,\n\t\t146, 73, 208, 204, 44, 104, 85, 71, 146, 51, 144, 68, 153,\n\t\t57, 180, 142, 188, 96, 80, 156, 167, 174, 26, 174, 182, 86,\n\t\t117, 67, 27, 125, 160, 172, 38, 198, 235, 242, 150, 134, 11,\n\t\t78, 246, 201, 210, 44, 207, 156, 19, 105, 118, 237, 229, 122,\n\t\t116, 194, 137, 66, 145, 123, 205, 239, 203, 56, 179, 70, 85,\n\t\t89, 29, 199, 221, 94, 6, 0, 36, 202, 212, 85, 190, 145, 18,\n\t\t20, 187, 55, 205, 136, 163, 9, 81, 101, 194, 31, 179, 106,\n\t\t152, 173, 17, 142, 79, 154, 151, 71, 198, 146, 194, 203, 130,\n\t\t88, 30, 231, 229, 198, 58, 228, 120, 17, 15, 203, 147, 188,\n\t\t124, 98, 182, 158, 37, 35, 53, 142, 133, 134, 8, 255, 13,\n\t\t241, 223, 196, 231, 240, 184, 223, 223, 145, 187, 120, 222,\n\t\t100, 200, 177, 185, 239, 131, 77, 242, 198, 210, 46, 123,\n\t\t3, 220, 54, 209, 170, 157, 179, 130, 74, 180, 188, 21, 171,\n\t\t197, 245, 45, 192, 171, 123, 212, 114, 209, 126, 223, 174,\n\t\t159, 207, 218, 23, 101, 77, 68, 227, 98, 44, 3, 244, 145,\n\t\t23, 75, 240, 211, 123, 212, 248, 43, 14, 207, 56, 209, 20,\n\t\t22, 238, 27, 208, 77, 211, 169, 113, 244, 197, 143, 73, 133,\n\t\t116, 186, 7, 20, 205, 236, 39, 109, 222, 53, 46, 55, 72, 202,\n\t\t119, 78, 46, 36, 133, 19, 78, 22, 20, 79, 249, 142, 154, 165,\n\t\t38, 151, 150, 98, 148, 47, 136, 192, 239, 56, 236, 114, 69,\n\t\t78, 8, 55, 28, 196, 220, 140, 54, 40, 17, 14, 239, 97, 120,\n\t\t203, 52, 62, 49, 245, 51, 120, 103, 250, 240, 148, 195, 62,\n\t\t57, 194, 97, 193, 180, 9, 35, 163, 145, 140, 226, 179, 89,\n\t\t237, 158, 183, 105, 84, 167, 96, 156, 66, 253, 216, 108, 8,\n\t\t215, 181, 80, 174, 29, 57, 46, 225, 165, 5, 156, 119, 244,\n\t\t45, 39, 183, 247, 101, 119, 11, 228, 189, 201, 223, 96, 20,\n\t\t143, 111, 2, 105, 195, 173, 109, 10, 185, 224, 132, 108, 98,\n\t\t212, 183, 75, 41, 71, 139, 164, 138, 50, 79, 96, 7, 54, 47,\n\t\t94, 32, 243, 4, 121, 46, 53, 93, 32, 243, 36, 117, 224, 212,\n\t\t146, 41, 177, 191, 32, 85, 243, 64, 250, 169, 154, 99, 36,\n\t\t245, 251, 251, 108, 175, 147, 155, 211, 116, 84, 181, 186,\n\t\t134, 90, 248, 47, 180, 94, 50, 33, 200, 55, 14, 175, 57, 28,\n\t\t114, 248, 200, 219, 206, 133, 79, 200, 123, 204, 102, 225,\n\t\t108, 145, 60, 239, 161, 101, 223, 75, 206, 82, 65, 60, 131,\n\t\t206, 163, 240, 165, 246, 244, 103, 163, 40, 190, 228, 228,\n\t\t111, 217, 188, 49, 176, 172, 212, 53, 86, 106, 199, 195, 130,\n\t\t133, 122, 149, 133, 122, 149, 133, 122, 141, 133, 186, 198,\n\t\t66, 109, 89, 72, 51, 120, 209, 72, 236, 159, 156, 220, 254,\n\t\t8, 37, 139, 156, 2, 239, 205, 235, 211, 119, 94, 209, 126,\n\t\t170, 138, 134, 211, 90, 139, 25, 124, 109, 108, 240, 69, 222,\n\t\t224, 130, 151, 18, 116, 105, 38, 199, 59, 69, 17, 129, 247,\n\t\t128, 47, 163, 7, 87, 253, 7, 215, 179, 152, 47, 34, 207, 224,\n\t\t250, 208, 54, 71, 246, 198, 95, 210, 4, 195, 226, 63, 199,\n\t\t82, 228, 115, 229, 247, 54, 240, 231, 177, 254, 128, 88, 223,\n\t\t138, 100, 153, 67, 255, 97, 237, 198, 227, 120, 26, 201, 227,\n\t\t104, 49, 138, 189, 12, 62, 113, 22, 9, 248, 220, 134, 231,\n\t\t141, 253, 146, 97, 142, 65, 167, 198, 118, 57, 165, 32, 106,\n\t\t241, 125, 18, 86, 20, 84, 171, 0, 94, 72, 144, 152, 116, 174,\n\t\t8, 57, 164, 32, 107, 184, 4, 232, 31, 209, 152, 2, 131, 187,\n\t\t45, 2, 181, 30, 108, 184, 166, 16, 190, 104, 130, 216, 56,\n\t\t106, 113, 52, 232, 205, 236, 121, 199, 147, 75, 51, 123, 116,\n\t\t10, 45, 185, 113, 79, 136, 76, 27, 244, 222, 169, 211, 121,\n\t\t34, 5, 149, 218, 30, 161, 146, 171, 96, 169, 146, 123, 138,\n\t\t38, 101, 115, 11, 159, 81, 255, 167, 86, 109, 150, 19, 146,\n\t\t167, 56, 5, 13, 133, 30, 133, 180, 53, 160, 146, 167, 164,\n\t\t130, 193, 82, 17, 181, 65, 155, 49, 45, 4, 168, 216, 24, 166,\n\t\t44, 74, 33, 76, 89, 211, 39, 31, 78, 72, 156, 194, 22, 113,\n\t\t153, 32, 5, 245, 167, 246, 118, 198, 119, 60, 23, 158, 36,\n\t\t66, 19, 106, 172, 88, 211, 108, 146, 178, 19, 18, 165, 208,\n\t\t135, 5, 133, 73, 218, 190, 152, 28, 144, 219, 75, 113, 19,\n\t\t72, 152, 27, 89, 196, 107, 9, 193, 31, 28, 236, 87, 126, 143,\n\t\t146, 215, 18, 191, 106, 185, 209, 199, 121, 34, 192, 180,\n\t\t21, 36, 169, 145, 86, 114, 76, 206, 240, 162, 195, 7, 14,\n\t\t97, 74, 225, 43, 39, 191, 115, 122, 110, 219, 159, 167, 109,\n\t\t43, 76, 188, 88, 68, 58, 57, 73, 202, 109, 100, 27, 232, 129,\n\t\t152, 11, 45, 198, 207, 162, 185, 168, 194, 47, 218, 224, 143,\n\t\t163, 68, 87, 224, 102, 109, 112, 111, 34, 57, 21, 234, 72,\n\t\t230, 128, 163, 54, 192, 183, 98, 17, 235, 90, 219, 87, 109,\n\t\t160, 31, 196, 40, 137, 195, 75, 161, 75, 180, 203, 148, 205,\n\t\t4, 241, 150, 216, 154, 61, 144, 158, 182, 85, 127, 45, 79,\n\t\t67, 21, 207, 139, 149, 119, 51, 101, 215, 26, 174, 83, 54,\n\t\t211, 112, 218, 82, 201, 229, 216, 132, 27, 219, 78, 130, 8,\n\t\t94, 171, 183, 34, 137, 190, 11, 15, 78, 200, 102, 101, 182,\n\t\t84, 109, 162, 106, 185, 108, 41, 23, 45, 229, 229, 204, 63,\n\t\t77, 201, 237, 146, 79, 197, 11, 17, 77, 103, 218, 236, 171,\n\t\t144, 128, 119, 241, 50, 16, 112, 21, 137, 235, 101, 172, 180,\n\t\t123, 41, 139, 130, 15, 209, 88, 207, 48, 141, 186, 59, 87,\n\t\t47, 81, 120, 112, 157, 210, 162, 188, 192, 86, 47, 174, 35,\n\t\t110, 126, 135, 109, 216, 87, 20, 46, 219, 88, 190, 55, 23,\n\t\t170, 42, 46, 111, 127, 116, 108, 78, 82, 163, 167, 247, 219,\n\t\t192, 205, 140, 204, 65, 191, 181, 79, 188, 219, 120, 62, 54,\n\t\t160, 129, 4, 119, 13, 43, 16, 118, 107, 138, 209, 247, 123,\n\t\t168, 222, 247, 201, 183, 20, 22, 144, 42, 232, 83, 10, 199,\n\t\t105, 163, 179, 80, 155, 77, 98, 150, 193, 69, 202, 78, 53,\n\t\t28, 164, 236, 70, 195, 235, 58, 232, 90, 212, 208, 171, 88,\n\t\t45, 248, 188, 240, 9, 244, 173, 183, 224, 132, 223, 156, 214,\n\t\t19, 136, 21, 16, 131, 2, 226, 77, 45, 87, 88, 1, 176, 189,\n\t\t234, 29, 120, 152, 101, 240, 166, 137, 73, 149, 32, 222, 87,\n\t\t41, 139, 52, 60, 107, 85, 168, 122, 103, 176, 43, 130, 125,\n\t\t242, 202, 40, 212, 55, 152, 42, 13, 151, 171, 167, 41, 75,\n\t\t52, 124, 79, 113, 17, 69, 203, 40, 131, 119, 229, 83, 226,\n\t\t101, 112, 148, 178, 185, 134, 195, 38, 2, 60, 244, 227, 101,\n\t\t240, 252, 222, 118, 61, 207, 54, 220, 71, 93, 158, 81, 248,\n\t\t152, 178, 80, 195, 251, 245, 65, 176, 27, 221, 190, 61, 106,\n\t\t170, 70, 182, 129, 98, 143, 30, 98, 66, 156, 71, 143, 25,\n\t\t147, 187, 3, 51, 103, 153, 26, 242, 242, 146, 107, 175, 87,\n\t\t102, 117, 168, 86, 230, 238, 26, 253, 163, 95, 238, 238, 30,\n\t\t255, 188, 147, 86, 66, 65, 4, 27, 244, 255, 37, 122, 233,\n\t\t214, 163, 95, 138, 27, 242, 140, 169, 221, 84, 5, 92, 17,\n\t\t219, 210, 150, 8, 4, 205, 224, 101, 250, 55, 159, 116, 188,\n\t\t157, 184, 235, 183, 65, 10, 179, 24, 101, 112, 201, 205, 4,\n\t\t5, 51, 145, 46, 2, 9, 75, 21, 235, 56, 140, 231, 129, 134,\n\t\t175, 169, 80, 55, 46, 104, 35, 109, 143, 211, 56, 76, 9, 167,\n\t\t119, 119, 39, 228, 99, 10, 222, 255, 207, 3, 78, 87, 226,\n\t\t88, 204, 210, 116, 148, 130, 23, 152, 119, 197, 190, 217,\n\t\t254, 45, 67, 219, 29, 112, 190, 149, 126, 159, 146, 19, 242,\n\t\t44, 133, 168, 55, 48, 24, 87, 227, 216, 226, 181, 104, 153,\n\t\t144, 197, 185, 197, 193, 21, 217, 35, 47, 83, 140, 108, 124,\n\t\t158, 218, 68, 24, 161, 219, 153, 21, 219, 220, 18, 136, 155,\n\t\t9, 151, 191, 165, 240, 103, 218, 230, 7, 56, 76, 43, 223,\n\t\t168, 115, 205, 114, 215, 185, 7, 158, 243, 197, 240, 124,\n\t\t147, 159, 50, 94, 26, 65, 223, 200, 23, 75, 207, 179, 212,\n\t\t70, 86, 27, 172, 72, 93, 90, 37, 202, 129, 25, 108, 182, 217,\n\t\t140, 194, 139, 38, 165, 98, 169, 145, 171, 212, 40, 71, 205,\n\t\t174, 231, 226, 15, 234, 174, 139, 50, 122, 253, 79, 236, 184,\n\t\t178, 60, 230, 189, 129, 177, 203, 64, 88, 138, 56, 26, 105,\n\t\t117, 80, 203, 33, 67, 206, 215, 245, 89, 100, 137, 17, 171,\n\t\t196, 72, 71, 204, 127, 229, 159, 128, 148, 57, 49, 24, 231,\n\t\t81, 58, 136, 94, 84, 137, 81, 189, 1, 126, 202, 7, 73, 81,\n\t\t85, 71, 133, 3, 76, 149, 157, 159, 31, 26, 149, 205, 9, 121,\n\t\t154, 130, 55, 211, 122, 25, 60, 120, 224, 129, 166, 187, 39,\n\t\t228, 107, 10, 223, 83, 203, 251, 159, 205, 198, 43, 40, 129,\n\t\t146, 26, 212, 59, 7, 245, 11, 66, 165, 42, 131, 223, 155,\n\t\t77, 51, 99, 143, 249, 50, 190, 38, 214, 250, 249, 99, 13,\n\t\t202, 234, 136, 198, 11, 183, 85, 51, 181, 1, 89, 206, 150,\n\t\t10, 84, 136, 27, 240, 21, 44, 248, 197, 38, 248, 180, 34,\n\t\t28, 18, 42, 55, 130, 92, 243, 120, 42, 229, 150, 31, 72, 217,\n\t\t1, 81, 121, 112, 74, 197, 109, 88, 59, 10, 196, 137, 185,\n\t\t155, 47, 72, 118, 170, 27, 174, 53, 250, 33, 246, 82, 244,\n\t\t30, 26, 4, 110, 162, 218, 121, 221, 188, 149, 248, 33, 167,\n\t\t140, 107, 150, 43, 188, 127, 139, 33, 21, 169, 245, 15, 98,\n\t\t165, 20, 119, 18, 127, 164, 21, 223, 214, 94, 154, 81, 248,\n\t\t220, 106, 1, 198, 73, 244, 173, 216, 73, 69, 171, 87, 91,\n\t\t117, 225, 175, 66, 159, 9, 58, 96, 75, 126, 53, 10, 25, 231,\n\t\t32, 192, 174, 253, 238, 34, 21, 38, 191, 224, 148, 200, 45,\n\t\t78, 131, 252, 225, 115, 106, 239, 7, 182, 58, 77, 27, 203,\n\t\t215, 88, 161, 12, 43, 220, 230, 169, 216, 252, 160, 226, 168,\n\t\t115, 69, 228, 92, 161, 32, 162, 246, 61, 128, 38, 130, 228,\n\t\t251, 176, 51, 239, 169, 138, 175, 19, 161, 252, 66, 190, 78,\n\t\t184, 228, 198, 132, 61, 55, 219, 179, 189, 20, 62, 165, 160,\n\t\t35, 232, 183, 108, 162, 10, 38, 8, 127, 115, 215, 153, 241,\n\t\t154, 27, 102, 159, 16, 17, 185, 173, 85, 22, 236, 27, 125,\n\t\t94, 60, 23, 91, 45, 25, 225, 86, 171, 149, 6, 10, 42, 106,\n\t\t26, 1, 25, 145, 253, 212, 110, 68, 121, 196, 78, 82, 178,\n\t\t160, 144, 70, 104, 17, 60, 227, 99, 177, 63, 143, 19, 225,\n\t\t101, 16, 69, 109, 231, 82, 167, 154, 43, 109, 193, 220, 39,\n\t\t176, 84, 212, 176, 129, 20, 36, 141, 104, 70, 3, 30, 153,\n\t\t221, 90, 19, 41, 77, 182, 101, 216, 10, 136, 253, 19, 39,\n\t\t241, 152, 23, 246, 101, 210, 6, 252, 187, 48, 198, 87, 146,\n\t\t159, 207, 192, 196, 246, 47, 207, 164, 225, 101, 48, 111,\n\t\t31, 228, 117, 175, 21, 132, 246, 227, 5, 227, 54, 158, 220,\n\t\t46, 163, 113, 82, 179, 74, 23, 145, 61, 48, 25, 71, 176, 128,\n\t\t67, 69, 41, 204, 234, 196, 230, 135, 22, 133, 155, 243, 128,\n\t\t188, 34, 235, 189, 41, 105, 118, 188, 246, 198, 23, 94, 224,\n\t\t93, 95, 120, 25, 134, 130, 227, 149, 120, 154, 193, 168, 149,\n\t\t52, 180, 65, 3, 1, 102, 239, 138, 164, 93, 53, 205, 226, 98,\n\t\t54, 201, 198, 45, 204, 129, 189, 65, 14, 251, 100, 42, 97,\n\t\t133, 38, 238, 111, 238, 94, 201, 96, 41, 49, 226, 171, 113,\n\t\t138, 226, 119, 62, 78, 200, 40, 194, 198, 220, 97, 213, 178,\n\t\t81, 60, 239, 187, 35, 98, 207, 159, 125, 14, 246, 91, 186,\n\t\t25, 133, 67, 133, 100, 77, 155, 70, 243, 7, 34, 135, 27, 175,\n\t\t197, 138, 198, 107, 177, 211, 200, 93, 139, 29, 175, 95, 139,\n\t\t221, 140, 170, 198, 99, 2, 19, 152, 195, 74, 104, 227, 52,\n\t\t106, 184, 209, 90, 30, 101, 93, 213, 67, 56, 107, 246, 71,\n\t\t138, 71, 39, 149, 131, 18, 8, 243, 99, 148, 41, 137, 64, 99,\n\t\t224, 138, 187, 137, 6, 146, 29, 16, 67, 110, 130, 33, 179,\n\t\t152, 111, 116, 53, 102, 30, 239, 15, 154, 122, 187, 102, 61,\n\t\t219, 39, 150, 86, 142, 119, 69, 66, 216, 36, 19, 172, 138,\n\t\t37, 89, 49, 252, 53, 64, 211, 231, 3, 114, 32, 173, 98, 53,\n\t\t34, 88, 61, 222, 249, 161, 129, 76, 234, 227, 152, 2, 158,\n\t\t105, 95, 183, 73, 113, 7, 57, 248, 21, 111, 199, 173, 106,\n\t\t95, 204, 116, 144, 88, 157, 187, 168, 177, 153, 67, 197, 175,\n\t\t214, 118, 210, 34, 253, 48, 39, 249, 134, 72, 252, 92, 203,\n\t\t200, 94, 68, 216, 39, 87, 17, 88, 28, 206, 192, 109, 15, 94,\n\t\t45, 194, 51, 75, 92, 249, 237, 35, 51, 75, 149, 237, 95, 179,\n\t\t125, 156, 27, 153, 149, 186, 134, 155, 46, 218, 66, 128, 145,\n\t\t4, 91, 63, 98, 184, 126, 205, 204, 232, 65, 204, 246, 200,\n\t\t102, 4, 10, 204, 130, 47, 124, 163, 130, 96, 25, 145, 136,\n\t\t194, 13, 89, 228, 199, 180, 33, 139, 253, 17, 158, 163, 133,\n\t\t127, 187, 146, 58, 125, 21, 193, 9, 185, 142, 32, 52, 200,\n\t\t52, 158, 145, 65, 203, 34, 251, 142, 147, 164, 178, 172, 30,\n\t\t115, 136, 205, 10, 181, 234, 83, 172, 71, 155, 248, 151, 226,\n\t\t198, 6, 229, 155, 113, 195, 91, 90, 79, 155, 142, 67, 109,\n\t\t72, 162, 40, 233, 190, 192, 196, 214, 202, 24, 156, 155, 210,\n\t\t216, 56, 214, 206, 116, 167, 53, 205, 189, 171, 118, 78, 86,\n\t\t72, 181, 30, 85, 183, 224, 183, 173, 207, 157, 125, 50, 143,\n\t\t242, 99, 33, 35, 18, 214, 221, 25, 150, 107, 240, 105, 4,\n\t\t55, 17, 92, 70, 240, 54, 130, 147, 250, 122, 236, 164, 146,\n\t\t194, 254, 61, 230, 196, 73, 68, 176, 13, 91, 106, 104, 249,\n\t\t102, 134, 120, 63, 130, 73, 4, 222, 165, 184, 89, 226, 42,\n\t\t70, 97, 111, 125, 129, 62, 254, 239, 47, 208, 123, 229, 2,\n\t\t125, 241, 163, 11, 244, 193, 63, 89, 160, 95, 183, 174, 74,\n\t\t171, 139, 116, 238, 214, 125, 19, 253, 39, 62, 122, 67, 202,\n\t\t174, 75, 12, 32, 40, 222, 138, 118, 126, 250, 87, 141, 139,\n\t\t204, 9, 121, 211, 248, 205, 174, 254, 206, 155, 20, 239, 47,\n\t\t218, 139, 108, 15, 220, 61, 182, 103, 77, 72, 188, 7, 249,\n\t\t253, 158, 7, 30, 32, 113, 11, 5, 11, 64, 241, 122, 101, 38,\n\t\t168, 169, 249, 180, 94, 179, 158, 237, 100, 140, 119, 149,\n\t\t222, 191, 61, 218, 143, 23, 203, 88, 226, 151, 44, 90, 242,\n\t\t158, 192, 247, 38, 235, 97, 189, 228, 105, 84, 94, 203, 44,\n\t\t206, 141, 141, 121, 233, 121, 24, 43, 3, 146, 189, 138, 136,\n\t\t246, 151, 92, 207, 138, 41, 35, 253, 209, 110, 173, 55, 216,\n\t\t7, 163, 185, 70, 148, 6, 222, 3, 47, 131, 119, 173, 138, 249,\n\t\t89, 68, 142, 201, 217, 119, 204, 217, 36, 252, 72, 46, 83,\n\t\t253, 138, 47, 196, 57, 74, 243, 81, 107, 181, 147, 212, 58,\n\t\t197, 143, 205, 4, 91, 24, 153, 129, 131, 200, 108, 93, 35,\n\t\t156, 113, 70, 232, 224, 34, 50, 243, 129, 224, 196, 123, 109,\n\t\t254, 190, 139, 236, 105, 129, 243, 98, 94, 138, 27, 116, 22,\n\t\t83, 106, 91, 59, 252, 81, 25, 126, 254, 79, 100, 248, 227,\n\t\t143, 26, 153, 239, 155, 69, 173, 236, 168, 118, 29, 125, 158,\n\t\t119, 84, 187, 142, 30, 86, 58, 250, 49, 106, 236, 29, 188,\n\t\t252, 209, 206, 125, 249, 39, 157, 251, 243, 71, 59, 247, 226,\n\t\t71, 155, 255, 250, 79, 154, 255, 240, 163, 205, 255, 254,\n\t\t79, 176, 254, 113, 159, 214, 169, 209, 155, 107, 157, 79,\n\t\t247, 213, 120, 143, 31, 208, 123, 83, 124, 202, 174, 82, 239,\n\t\t115, 171, 124, 127, 49, 11, 205, 123, 94, 220, 158, 213, 241,\n\t\t125, 52, 97, 233, 129, 138, 151, 227, 248, 90, 174, 18, 39,\n\t\t226, 31, 100, 189, 108, 3, 220, 143, 151, 55, 21, 56, 213,\n\t\t6, 247, 194, 166, 221, 170, 128, 242, 54, 208, 147, 203, 113,\n\t\t164, 42, 128, 105, 43, 96, 124, 37, 42, 112, 81, 27, 220,\n\t\t91, 204, 90, 85, 129, 140, 219, 33, 37, 95, 84, 33, 195, 54,\n\t\t200, 211, 25, 87, 85, 192, 164, 13, 208, 14, 113, 5, 114,\n\t\t18, 179, 88, 192, 60, 46, 23, 99, 251, 241, 32, 10, 139, 24,\n\t\t87, 98, 92, 94, 199, 94, 6, 51, 251, 108, 51, 109, 237, 27,\n\t\t160, 196, 203, 96, 212, 74, 146, 230, 186, 56, 244, 184, 106,\n\t\t19, 138, 206, 40, 38, 175, 241, 115, 40, 183, 54, 172, 48,\n\t\t208, 110, 207, 180, 94, 163, 56, 177, 200, 67, 16, 139, 163,\n\t\t139, 215, 75, 81, 30, 75, 180, 152, 0, 39, 228, 42, 134, 89,\n\t\t108, 119, 101, 246, 228, 162, 214, 149, 188, 250, 60, 38,\n\t\t167, 41, 113, 240, 11, 132, 95, 15, 115, 228, 145, 145, 215,\n\t\t105, 220, 184, 209, 53, 196, 217, 75, 10, 167, 105, 24, 154,\n\t\t153, 84, 143, 9, 231, 209, 122, 68, 76, 174, 60, 43, 186,\n\t\t82, 196, 70, 121, 78, 98, 80, 113, 163, 17, 187, 174, 110,\n\t\t195, 85, 117, 27, 87, 212, 109, 210, 172, 110, 137, 246, 93,\n\t\t14, 58, 28, 48, 234, 218, 140, 127, 180, 205, 175, 171, 109,\n\t\t190, 168, 180, 249, 161, 181, 77, 133, 162, 93, 107, 50, 141,\n\t\t225, 189, 89, 177, 205, 236, 168, 189, 144, 238, 69, 24, 47,\n\t\t235, 68, 38, 247, 17, 153, 90, 251, 183, 9, 128, 124, 142,\n\t\t192, 179, 95, 11, 221, 242, 122, 26, 62, 69, 214, 75, 132,\n\t\t137, 148, 108, 121, 66, 77, 35, 247, 225, 168, 116, 249, 143,\n\t\t194, 208, 160, 25, 104, 63, 177, 163, 254, 159, 35, 176, 151,\n\t\t203, 11, 94, 89, 138, 106, 61, 231, 49, 156, 144, 35, 131,\n\t\t32, 85, 115, 51, 22, 70, 73, 213, 32, 162, 31, 29, 192, 47,\n\t\t171, 3, 248, 178, 50, 128, 127, 222, 51, 128, 107, 227, 20,\n\t\t254, 104, 147, 191, 71, 57, 150, 196, 232, 173, 2, 201, 125,\n\t\t220, 90, 198, 160, 253, 177, 91, 56, 64, 199, 118, 196, 164,\n\t\t47, 164, 86, 145, 72, 156, 237, 176, 249, 163, 43, 200, 117,\n\t\t43, 96, 195, 50, 123, 218, 190, 220, 200, 201, 60, 10, 245,\n\t\t234, 130, 150, 101, 112, 211, 86, 103, 117, 193, 191, 252,\n\t\t81, 146, 223, 254, 19, 146, 79, 238, 91, 133, 219, 200, 206,\n\t\t215, 225, 253, 31, 37, 233, 219, 63, 33, 105, 239, 71, 57,\n\t\t114, 252, 159, 91, 16, 23, 63, 74, 249, 193, 127, 135, 63,\n\t\t175, 239, 91, 218, 181, 216, 27, 87, 23, 216, 55, 247, 3,\n\t\t63, 139, 231, 99, 81, 181, 47, 94, 221, 15, 191, 102, 61,\n\t\t60, 107, 130, 111, 88, 79, 252, 171, 40, 129, 139, 124, 77,\n\t\t121, 253, 163, 115, 245, 58, 94, 81, 15, 155, 113, 169, 30,\n\t\t110, 226, 53, 245, 0, 110, 170, 134, 43, 60, 132, 211, 184,\n\t\t170, 58, 144, 75, 53, 237, 241, 234, 71, 41, 250, 182, 74,\n\t\t209, 126, 133, 162, 189, 117, 138, 106, 173, 190, 93, 87,\n\t\t91, 111, 126, 180, 225, 183, 171, 13, 95, 198, 63, 162, 180,\n\t\t70, 112, 18, 163, 7, 155, 102, 112, 32, 201, 58, 107, 146,\n\t\t85, 34, 173, 76, 36, 63, 174, 23, 71, 112, 92, 111, 130, 215,\n\t\t102, 201, 223, 47, 102, 14, 203, 193, 143, 17, 10, 79, 99,\n\t\t12, 47, 138, 100, 24, 47, 240, 242, 207, 119, 69, 225, 123,\n\t\t235, 148, 90, 242, 36, 185, 142, 213, 56, 16, 43, 249, 36,\n\t\t223, 197, 236, 173, 134, 163, 152, 125, 35, 239, 98, 184,\n\t\t39, 181, 100, 107, 214, 74, 151, 168, 114, 21, 113, 153, 245,\n\t\t195, 148, 85, 51, 127, 172, 228, 236, 248, 103, 121, 63, 40,\n\t\t28, 54, 206, 182, 167, 154, 220, 239, 4, 126, 167, 235, 94,\n\t\t224, 219, 204, 250, 91, 158, 199, 236, 169, 134, 143, 205,\n\t\t83, 152, 156, 10, 240, 248, 114, 57, 143, 108, 226, 226, 7,\n\t\t152, 106, 5, 48, 77, 74, 223, 214, 127, 31, 183, 187, 220,\n\t\t138, 16, 215, 143, 49, 33, 138, 157, 144, 239, 49, 190, 135,\n\t\t195, 216, 136, 246, 1, 169, 240, 231, 121, 76, 148, 159, 63,\n\t\t82, 10, 7, 196, 203, 7, 205, 189, 204, 31, 81, 2, 40, 93,\n\t\t9, 154, 61, 138, 87, 130, 102, 49, 114, 208, 115, 249, 228,\n\t\t84, 70, 225, 101, 155, 90, 59, 136, 38, 147, 234, 166, 190,\n\t\t13, 238, 121, 172, 49, 52, 182, 26, 50, 251, 231, 125, 90,\n\t\t220, 86, 136, 83, 93, 212, 200, 245, 247, 139, 118, 174, 221,\n\t\t230, 17, 184, 171, 153, 219, 242, 147, 177, 175, 247, 53,\n\t\t105, 99, 119, 99, 94, 220, 136, 203, 91, 252, 240, 183, 181,\n\t\t222, 10, 238, 46, 150, 229, 117, 126, 111, 227, 4, 194, 231,\n\t\t91, 11, 199, 137, 63, 236, 230, 236, 207, 72, 92, 187, 104,\n\t\t74, 47, 131, 79, 101, 97, 53, 110, 210, 203, 224, 115, 229,\n\t\t77, 52, 153, 120, 25, 232, 176, 40, 49, 219, 34, 47, 3, 81,\n\t\t150, 188, 138, 245, 179, 56, 149, 102, 23, 40, 203, 82, 23,\n\t\t10, 233, 101, 160, 194, 181, 238, 213, 46, 47, 97, 22, 64,\n\t\t76, 197, 56, 194, 3, 156, 173, 1, 224, 39, 178, 27, 142, 108,\n\t\t68, 249, 35, 163, 192, 195, 26, 15, 242, 123, 80, 14, 132,\n\t\t219, 36, 81, 69, 66, 94, 149, 65, 186, 78, 73, 53, 171, 167,\n\t\t40, 98, 137, 92, 106, 43, 155, 212, 202, 224, 181, 215, 14,\n\t\t221, 203, 190, 75, 120, 136, 67, 30, 133, 237, 17, 208, 105,\n\t\t216, 164, 80, 47, 176, 101, 23, 255, 28, 175, 147, 100, 91,\n\t\t230, 33, 57, 33, 42, 132, 65, 233, 132, 21, 110, 23, 176,\n\t\t22, 203, 84, 61, 191, 11, 243, 44, 39, 210, 231, 110, 3, 124,\n\t\t21, 137, 235, 98, 7, 171, 67, 187, 189, 157, 199, 211, 162,\n\t\t236, 143, 216, 150, 41, 55, 102, 121, 185, 116, 176, 99, 43,\n\t\t31, 69, 249, 39, 7, 63, 54, 210, 145, 23, 126, 118, 133, 94,\n\t\t121, 219, 47, 10, 193, 155, 36, 152, 13, 31, 67, 100, 116,\n\t\t24, 200, 112, 117, 183, 44, 48, 141, 83, 24, 186, 248, 118,\n\t\t59, 61, 50, 72, 108, 193, 145, 156, 196, 94, 6, 147, 176,\n\t\t238, 110, 152, 135, 108, 18, 194, 56, 100, 183, 249, 87, 79,\n\t\t61, 15, 244, 205, 50, 72, 66, 184, 138, 146, 96, 30, 102,\n\t\t176, 8, 239, 203, 71, 140, 139, 116, 48, 14, 97, 18, 205,\n\t\t181, 80, 166, 254, 140, 227, 226, 63, 21, 227, 253, 25, 151,\n\t\t83, 129, 87, 32, 46, 197, 77, 32, 32, 198, 104, 233, 160,\n\t\t159, 47, 41, 10, 112, 31, 31, 132, 161, 189, 79, 96, 195,\n\t\t156, 81, 32, 102, 97, 187, 254, 112, 109, 73, 152, 71, 139,\n\t\t72, 151, 120, 113, 89, 26, 173, 139, 130, 171, 22, 218, 73,\n\t\t27, 136, 6, 18, 237, 89, 118, 200, 14, 82, 242, 66, 82, 88,\n\t\t182, 183, 222, 57, 33, 87, 161, 93, 191, 116, 145, 128, 120,\n\t\t26, 222, 159, 154, 105, 108, 122, 169, 97, 198, 147, 153,\n\t\t89, 89, 229, 88, 124, 11, 56, 44, 146, 105, 32, 64, 243, 105,\n\t\t98, 251, 188, 25, 178, 123, 162, 126, 63, 187, 56, 139, 235,\n\t\t148, 194, 117, 200, 246, 201, 50, 4, 47, 178, 201, 41, 175,\n\t\t83, 176, 207, 166, 5, 179, 20, 187, 71, 131, 59, 95, 135,\n\t\t93, 209, 34, 153, 86, 0, 198, 232, 64, 218, 12, 225, 52, 37,\n\t\t211, 16, 47, 177, 81, 56, 53, 216, 15, 82, 24, 185, 126, 122,\n\t\t134, 95, 23, 9, 50, 236, 34, 180, 28, 171, 46, 227, 142, 177,\n\t\t216, 208, 181, 65, 2, 55, 161, 89, 115, 47, 239, 19, 157,\n\t\t250, 218, 201, 217, 62, 153, 229, 177, 129, 229, 234, 105,\n\t\t7, 214, 131, 155, 144, 112, 223, 62, 216, 149, 19, 71, 222,\n\t\t149, 227, 111, 91, 108, 37, 3, 151, 83, 238, 219, 135, 230,\n\t\t197, 244, 52, 92, 95, 76, 243, 165, 148, 103, 20, 222, 182,\n\t\t74, 81, 177, 234, 153, 37, 47, 150, 73, 253, 34, 193, 73,\n\t\t216, 100, 102, 108, 146, 203, 16, 222, 134, 100, 163, 143,\n\t\t73, 41, 93, 79, 122, 219, 230, 183, 163, 50, 131, 253, 213,\n\t\t185, 251, 237, 159, 206, 188, 251, 39, 217, 254, 250, 36,\n\t\t219, 251, 79, 39, 217, 241, 189, 164, 205, 108, 244, 185,\n\t\t130, 185, 152, 152, 154, 58, 94, 6, 26, 174, 49, 4, 29, 219,\n\t\t189, 8, 217, 40, 38, 183, 11, 33, 83, 76, 144, 187, 73, 142,\n\t\t67, 252, 202, 84, 31, 250, 20, 156, 147, 114, 17, 131, 142,\n\t\t167, 211, 185, 88, 7, 201, 40, 28, 20, 51, 32, 185, 16, 223,\n\t\t140, 253, 102, 228, 225, 85, 46, 215, 81, 114, 177, 140, 164,\n\t\t180, 54, 101, 89, 54, 142, 84, 165, 96, 206, 19, 125, 177,\n\t\t136, 199, 209, 36, 18, 227, 139, 69, 130, 19, 193, 205, 11,\n\t\t177, 180, 177, 236, 121, 93, 25, 143, 69, 229, 217, 198, 250,\n\t\t23, 143, 121, 238, 59, 247, 104, 22, 24, 124, 60, 77, 9, 57,\n\t\t141, 216, 69, 101, 5, 11, 11, 169, 40, 138, 226, 245, 162,\n\t\t104, 189, 40, 93, 47, 226, 235, 69, 106, 189, 72, 174, 23,\n\t\t137, 245, 162, 210, 252, 193, 190, 7, 28, 114, 79, 80, 112,\n\t\t26, 1, 246, 63, 72, 33, 74, 14, 34, 133, 153, 236, 15, 29,\n\t\t211, 3, 13, 81, 242, 6, 121, 29, 8, 48, 44, 61, 113, 28, 13,\n\t\t148, 13, 106, 14, 193, 112, 43, 136, 112, 255, 128, 223, 171,\n\t\t115, 255, 209, 242, 63, 120, 109, 116, 159, 81, 38, 206, 217,\n\t\t132, 202, 228, 32, 164, 20, 222, 252, 51, 45, 178, 247, 127,\n\t\t81, 139, 188, 94, 213, 34, 249, 18, 95, 209, 36, 175, 254,\n\t\t70, 147, 56, 171, 241, 13, 215, 179, 164, 81, 165, 60, 107,\n\t\t81, 41, 111, 66, 120, 181, 174, 82, 30, 87, 85, 202, 211,\n\t\t85, 149, 242, 253, 158, 9, 143, 33, 93, 78, 87, 60, 13, 171,\n\t\t247, 142, 112, 206, 190, 11, 239, 73, 207, 148, 235, 164,\n\t\t241, 88, 140, 3, 13, 249, 166, 54, 136, 32, 154, 202, 88,\n\t\t137, 113, 32, 97, 33, 212, 84, 140, 131, 20, 22, 81, 146,\n\t\t68, 114, 26, 40, 88, 196, 87, 98, 28, 112, 247, 109, 149,\n\t\t177, 237, 239, 145, 91, 125, 90, 184, 54, 182, 55, 54, 84,\n\t\t88, 221, 133, 38, 42, 244, 224, 32, 204, 31, 199, 137, 198,\n\t\t71, 10, 135, 185, 154, 200, 73, 66, 185, 58, 10, 139, 213,\n\t\t16, 137, 90, 45, 52, 196, 172, 150, 89, 162, 115, 177, 204,\n\t\t213, 130, 237, 221, 74, 169, 235, 206, 74, 41, 50, 167, 40,\n\t\t59, 77, 201, 187, 176, 144, 254, 231, 185, 244, 163, 45, 8,\n\t\t135, 33, 133, 143, 109, 114, 83, 23, 249, 198, 108, 252, 249,\n\t\t38, 157, 136, 202, 44, 40, 118, 161, 210, 183, 59, 208, 38,\n\t\t137, 126, 190, 42, 209, 206, 152, 125, 128, 132, 57, 177,\n\t\t150, 25, 133, 247, 77, 82, 233, 68, 186, 38, 198, 89, 6, 47,\n\t\t219, 186, 82, 11, 42, 208, 54, 255, 6, 124, 249, 27, 91, 106,\n\t\t162, 248, 20, 85, 139, 226, 139, 36, 144, 144, 202, 171, 40,\n\t\t137, 52, 170, 31, 155, 239, 148, 67, 94, 130, 34, 242, 103,\n\t\t227, 4, 210, 254, 168, 219, 37, 158, 13, 27, 230, 119, 119,\n\t\t26, 131, 165, 93, 220, 135, 207, 225, 207, 16, 247, 65, 52,\n\t\t88, 100, 240, 162, 117, 44, 184, 34, 171, 249, 20, 142, 201,\n\t\t153, 62, 167, 65, 30, 64, 98, 163, 108, 225, 107, 219, 14,\n\t\t197, 238, 75, 152, 177, 236, 93, 108, 126, 183, 43, 13, 45,\n\t\t221, 238, 6, 254, 173, 6, 235, 143, 48, 166, 239, 105, 132,\n\t\t219, 146, 213, 253, 11, 95, 141, 63, 196, 155, 15, 16, 25,\n\t\t248, 226, 83, 104, 213, 10, 145, 191, 137, 215, 124, 164,\n\t\t153, 197, 47, 66, 76, 60, 177, 146, 128, 224, 67, 11, 217,\n\t\t107, 209, 241, 250, 254, 92, 26, 102, 15, 88, 12, 84, 113,\n\t\t7, 193, 116, 192, 37, 32, 186, 187, 147, 182, 171, 26, 195,\n\t\t88, 215, 55, 173, 92, 17, 225, 62, 124, 118, 79, 81, 170,\n\t\t178, 140, 228, 81, 223, 223, 200, 151, 16, 22, 13, 209, 96,\n\t\t149, 128, 156, 188, 35, 127, 134, 102, 231, 220, 237, 122,\n\t\t118, 24, 249, 174, 240, 71, 129, 160, 25, 113, 219, 197, 90,\n\t\t218, 12, 252, 36, 32, 94, 203, 161, 254, 230, 238, 161, 10,\n\t\t48, 98, 231, 107, 8, 135, 202, 237, 51, 187, 30, 134, 234,\n\t\t81, 16, 126, 126, 213, 7, 174, 184, 141, 16, 251, 189, 109,\n\t\t234, 188, 225, 10, 237, 8, 231, 110, 104, 21, 58, 225, 143,\n\t\t118, 177, 197, 11, 155, 51, 33, 208, 25, 133, 79, 141, 82,\n\t\t142, 96, 127, 132, 238, 171, 24, 159, 91, 81, 126, 10, 173,\n\t\t231, 178, 136, 48, 72, 90, 196, 85, 187, 28, 91, 197, 169,\n\t\t234, 239, 33, 105, 104, 247, 132, 124, 14, 65, 225, 77, 103,\n\t\t251, 129, 52, 145, 176, 19, 82, 67, 57, 41, 128, 87, 80, 228,\n\t\t82, 227, 164, 5, 239, 119, 21, 178, 3, 238, 27, 157, 124,\n\t\t97, 239, 7, 24, 238, 226, 167, 31, 81, 14, 106, 183, 91, 34,\n\t\t12, 129, 141, 49, 154, 210, 216, 16, 46, 79, 93, 174, 115,\n\t\t42, 41, 205, 22, 69, 70, 179, 162, 91, 199, 228, 12, 197,\n\t\t7, 167, 113, 100, 54, 122, 177, 93, 238, 8, 158, 131, 229,\n\t\t242, 182, 192, 206, 121, 167, 239, 222, 30, 189, 122, 238,\n\t\t1, 87, 20, 100, 210, 236, 105, 124, 25, 130, 231, 193, 9,\n\t\t249, 128, 137, 69, 18, 32, 33, 115, 234, 254, 127, 190, 255,\n\t\t101, 212, 99, 4, 33, 221, 109, 237, 28, 61, 55, 250, 174,\n\t\t236, 155, 25, 55, 188, 249, 97, 175, 118, 101, 160, 18, 246,\n\t\t9, 115, 110, 240, 54, 1, 145, 73, 153, 108, 196, 134, 192,\n\t\t73, 163, 85, 63, 134, 240, 62, 4, 73, 3, 149, 100, 20, 210,\n\t\t245, 218, 185, 118, 183, 219, 14, 1, 42, 142, 221, 102, 35,\n\t\t74, 216, 165, 134, 56, 97, 155, 36, 74, 90, 63, 229, 115,\n\t\t235, 12, 71, 52, 78, 159, 33, 22, 92, 18, 18, 49, 159, 212,\n\t\t76, 5, 49, 159, 84, 109, 133, 40, 185, 152, 56, 232, 234,\n\t\t158, 118, 130, 94, 188, 220, 8, 165, 16, 38, 255, 192, 11,\n\t\t156, 38, 43, 94, 96, 211, 25, 231, 228, 53, 63, 215, 204,\n\t\t76, 117, 175, 153, 25, 39, 171, 155, 213, 164, 234, 246, 77,\n\t\t154, 4, 174, 101, 41, 158, 180, 193, 214, 117, 207, 60, 89,\n\t\t115, 199, 21, 211, 191, 80, 253, 73, 211, 196, 23, 164, 156,\n\t\t243, 227, 21, 44, 149, 141, 72, 99, 93, 73, 112, 150, 44,\n\t\t0, 147, 42, 9, 27, 245, 104, 16, 45, 254, 126, 74, 17, 163,\n\t\t213, 231, 9, 188, 12, 137, 231, 153, 65, 28, 39, 80, 112,\n\t\t120, 189, 242, 134, 246, 71, 110, 205, 119, 23, 56, 237, 167,\n\t\t151, 40, 216, 52, 130, 45, 83, 210, 78, 188, 85, 29, 81, 78,\n\t\t213, 234, 68, 21, 224, 102, 39, 46, 71, 118, 153, 34, 152,\n\t\t186, 221, 232, 15, 179, 229, 33, 26, 110, 113, 135, 228, 121,\n\t\t102, 47, 100, 115, 115, 130, 204, 96, 150, 52, 4, 189, 124,\n\t\t119, 95, 178, 92, 36, 149, 143, 101, 236, 147, 48, 129, 196,\n\t\t138, 91, 6, 163, 4, 237, 253, 211, 89, 124, 45, 189, 12, 174,\n\t\t18, 54, 74, 96, 105, 11, 95, 68, 99, 225, 101, 48, 77, 92,\n\t\t218, 111, 62, 190, 241, 50, 216, 76, 152, 243, 36, 92, 37,\n\t\t80, 196, 91, 6, 158, 7, 120, 30, 23, 44, 19, 183, 35, 152,\n\t\t38, 25, 92, 39, 43, 219, 137, 83, 83, 27, 201, 12, 110, 93,\n\t\t100, 152, 151, 65, 129, 111, 44, 18, 253, 198, 246, 175, 226,\n\t\t165, 40, 17, 199, 169, 10, 69, 14, 96, 155, 185, 78, 50, 184,\n\t\t169, 99, 61, 137, 175, 196, 255, 1, 172, 151, 245, 142, 191,\n\t\t173, 118, 188, 172, 44, 230, 34, 52, 134, 227, 194, 213, 188,\n\t\t76, 50, 56, 169, 215, 220, 175, 214, 12, 83, 165, 242, 182,\n\t\t238, 99, 223, 73, 146, 193, 183, 132, 221, 22, 197, 102, 220,\n\t\t19, 99, 91, 238, 37, 236, 214, 6, 163, 152, 70, 237, 137,\n\t\t67, 176, 0, 23, 34, 19, 28, 170, 12, 142, 87, 249, 126, 209,\n\t\t174, 140, 28, 105, 243, 16, 138, 80, 158, 224, 212, 210, 137,\n\t\t249, 234, 208, 67, 91, 9, 70, 10, 26, 212, 65, 209, 59, 7,\n\t\t24, 164, 10, 55, 246, 121, 71, 139, 78, 56, 15, 147, 217,\n\t\t105, 72, 106, 239, 4, 65, 25, 38, 19, 108, 38, 80, 156, 4,\n\t\t7, 55, 9, 84, 226, 89, 130, 183, 230, 177, 136, 79, 10, 246,\n\t\t11, 100, 18, 202, 128, 149, 224, 91, 206, 191, 227, 4, 42,\n\t\t33, 58, 193, 94, 178, 146, 23, 35, 163, 112, 112, 207, 154,\n\t\t34, 167, 66, 45, 85, 132, 87, 151, 202, 19, 204, 215, 173,\n\t\t53, 156, 115, 61, 15, 82, 56, 213, 138, 107, 49, 189, 169,\n\t\t45, 39, 111, 140, 69, 243, 58, 129, 19, 114, 144, 24, 53,\n\t\t100, 212, 142, 183, 224, 234, 18, 175, 203, 189, 170, 11,\n\t\t205, 179, 70, 189, 203, 195, 80, 44, 245, 155, 52, 153, 5,\n\t\t27, 131, 82, 194, 87, 207, 132, 131, 139, 176, 40, 43, 72,\n\t\t241, 60, 24, 199, 123, 169, 142, 223, 163, 115, 121, 99, 0,\n\t\t213, 110, 22, 163, 164, 109, 127, 139, 169, 240, 42, 201,\n\t\t50, 120, 154, 176, 103, 9, 89, 38, 20, 190, 227, 92, 51, 84,\n\t\t32, 42, 252, 102, 47, 58, 236, 235, 164, 53, 181, 190, 210,\n\t\t220, 196, 30, 168, 7, 11, 136, 146, 189, 84, 207, 132, 212,\n\t\t81, 200, 205, 92, 218, 24, 64, 84, 36, 52, 25, 160, 36, 157,\n\t\t10, 33, 131, 207, 41, 233, 211, 156, 188, 12, 222, 213, 57,\n\t\t118, 212, 58, 56, 5, 159, 248, 124, 126, 16, 97, 147, 107,\n\t\t167, 232, 193, 161, 90, 83, 14, 26, 236, 102, 214, 140, 34,\n\t\t242, 226, 93, 98, 198, 241, 208, 140, 227, 145, 209, 147,\n\t\t240, 61, 161, 240, 188, 78, 198, 199, 191, 39, 195, 98, 207,\n\t\t5, 203, 225, 126, 142, 184, 223, 27, 220, 31, 81, 60, 12,\n\t\t183, 95, 174, 78, 228, 47, 247, 77, 100, 44, 172, 245, 168,\n\t\t240, 249, 54, 246, 215, 206, 191, 122, 228, 71, 240, 52, 129,\n\t\t245, 128, 135, 224, 48, 47, 173, 196, 106, 4, 239, 171, 115,\n\t\t208, 136, 249, 155, 124, 246, 189, 76, 236, 68, 67, 255, 204,\n\t\t159, 9, 75, 91, 28, 65, 248, 93, 133, 186, 112, 87, 197, 74,\n\t\t85, 165, 42, 94, 23, 170, 176, 38, 83, 178, 16, 41, 177, 38,\n\t\t82, 105, 41, 81, 188, 20, 168, 168, 50, 183, 95, 220, 195,\n\t\t217, 181, 134, 243, 166, 144, 125, 124, 252, 90, 206, 111,\n\t\t108, 95, 191, 38, 43, 238, 163, 139, 196, 213, 169, 120, 123,\n\t\t77, 149, 139, 88, 206, 111, 42, 174, 101, 139, 47, 247, 1,\n\t\t191, 72, 208, 170, 251, 208, 98, 124, 13, 156, 213, 245, 123,\n\t\t114, 159, 87, 221, 158, 26, 9, 88, 112, 29, 206, 204, 188,\n\t\t78, 23, 35, 116, 208, 39, 233, 8, 203, 12, 135, 13, 209, 127,\n\t\t36, 236, 84, 194, 167, 132, 93, 75, 248, 220, 98, 57, 125,\n\t\t74, 224, 118, 229, 59, 186, 102, 110, 22, 31, 220, 13, 54,\n\t\t6, 120, 180, 10, 122, 194, 30, 248, 255, 255, 7, 32, 38, 236,\n\t\t132, 252, 145, 224, 65, 234, 203, 16, 244, 4, 62, 39, 196,\n\t\t35, 127, 253, 53, 190, 125, 148, 209, 173, 93, 252, 181, 157,\n\t\t209, 221, 202, 207, 119, 229, 207, 160, 241, 39, 57, 243,\n\t\t225, 220, 60, 12, 192, 60, 125, 190, 59, 235, 109, 157, 219,\n\t\t151, 193, 110, 1, 228, 255, 139, 238, 122, 134, 127, 114,\n\t\t194, 62, 131, 154, 172, 30, 87, 247, 241, 94, 146, 77, 236,\n\t\t113, 119, 247, 224, 236, 175, 228, 219, 40, 62, 127, 224,\n\t\t107, 145, 224, 29, 24, 215, 233, 52, 79, 126, 222, 43, 242,\n\t\t175, 11, 198, 236, 215, 175, 236, 229, 47, 62, 97, 55, 18,\n\t\t210, 73, 171, 177, 217, 135, 247, 238, 16, 46, 158, 176, 71,\n\t\t219, 191, 62, 250, 245, 201, 207, 219, 191, 62, 254, 237,\n\t\t183, 223, 30, 110, 111, 29, 73, 8, 39, 236, 59, 36, 147, 123,\n\t\t174, 143, 94, 185, 228, 16, 225, 4, 226, 73, 87, 252, 246,\n\t\t219, 111, 58, 79, 2, 80, 249, 32, 168, 170, 230, 14, 117,\n\t\t160, 152, 181, 112, 168, 153, 54, 13, 217, 203, 153, 202,\n\t\t199, 164, 32, 147, 73, 203, 86, 172, 49, 31, 118, 222, 119,\n\t\t189, 211, 191, 187, 219, 26, 224, 215, 31, 37, 53, 70, 176,\n\t\t123, 104, 232, 188, 254, 237, 183, 223, 30, 239, 236, 60,\n\t\t54, 203, 188, 203, 156, 104, 169, 210, 144, 82, 106, 172,\n\t\t231, 125, 146, 76, 192, 126, 14, 196, 24, 236, 243, 31, 225,\n\t\t65, 241, 1, 206, 149, 116, 158, 83, 242, 89, 18, 78, 225,\n\t\t225, 54, 93, 253, 200, 98, 191, 242, 145, 69, 177, 242, 145,\n\t\t197, 242, 251, 138, 154, 165, 249, 199, 172, 62, 34, 38, 97,\n\t\t236, 102, 217, 27, 24, 110, 141, 39, 140, 220, 68, 236, 152,\n\t\t156, 221, 16, 239, 37, 151, 41, 87, 55, 30, 60, 28, 192, 195,\n\t\t1, 133, 27, 226, 61, 19, 35, 101, 203, 182, 127, 129, 237,\n\t\t95, 177, 236, 132, 171, 112, 86, 5, 218, 91, 170, 104, 238,\n\t\t193, 195, 62, 60, 236, 59, 136, 26, 146, 151, 169, 20, 213,\n\t\t215, 47, 211, 121, 237, 253, 94, 58, 197, 239, 42, 150, 37,\n\t\t167, 98, 169, 133, 153, 208, 213, 106, 175, 67, 29, 219, 162,\n\t\t2, 238, 85, 124, 181, 6, 118, 32, 194, 188, 12, 225, 206,\n\t\t41, 69, 15, 209, 124, 2, 55, 17, 44, 160, 79, 131, 231, 18,\n\t\t22, 19, 246, 59, 204, 38, 13, 59, 139, 141, 19, 178, 152,\n\t\t192, 163, 126, 31, 112, 131, 97, 31, 7, 246, 81, 25, 78, 57,\n\t\t0, 124, 13, 226, 156, 14, 107, 174, 62, 229, 143, 186, 93,\n\t\t229, 115, 243, 207, 200, 185, 245, 204, 47, 94, 252, 170,\n\t\t150, 174, 148, 251, 163, 149, 143, 34, 108, 244, 179, 251,\n\t\t222, 14, 50, 87, 144, 185, 79, 178, 154, 255, 221, 221, 221,\n\t\t131, 45, 135, 47, 16, 192, 168, 109, 194, 156, 144, 201, 4,\n\t\t196, 214, 0, 198, 147, 186, 175, 168, 18, 26, 210, 175, 125,\n\t\t33, 71, 249, 35, 20, 220, 226, 94, 233, 108, 66, 52, 221,\n\t\t77, 141, 28, 194, 85, 163, 38, 209, 254, 34, 150, 122, 182,\n\t\t51, 184, 187, 27, 108, 239, 184, 167, 221, 72, 17, 15, 127,\n\t\t117, 162, 164, 19, 167, 186, 19, 79, 58, 138, 203, 169, 240,\n\t\t104, 160, 253, 49, 191, 49, 240, 248, 173, 86, 243, 0, 39,\n\t\t100, 52, 1, 237, 223, 8, 174, 192, 161, 160, 20, 145, 140,\n\t\t249, 77, 3, 138, 166, 205, 108, 34, 194, 88, 90, 247, 210,\n\t\t34, 146, 169, 22, 232, 91, 154, 197, 105, 145, 51, 120, 251,\n\t\t17, 99, 76, 117, 187, 253, 29, 217, 19, 136, 221, 188, 109,\n\t\t64, 175, 140, 50, 217, 126, 180, 163, 238, 3, 146, 6, 232,\n\t\t241, 175, 59, 210, 118, 22, 155, 108, 0, 19, 14, 204, 54,\n\t\t104, 137, 108, 0, 195, 239, 115, 219, 239, 67, 46, 155, 132,\n\t\t186, 197, 209, 153, 78, 172, 147, 33, 207, 67, 46, 89, 91,\n\t\t196, 38, 38, 33, 113, 11, 107, 6, 194, 140, 107, 213, 67,\n\t\t207, 139, 63, 149, 31, 181, 159, 43, 15, 107, 143, 13, 5,\n\t\t141, 69, 45, 133, 238, 132, 160, 161, 188, 60, 59, 40, 79,\n\t\t14, 120, 85, 203, 174, 220, 255, 47, 146, 35, 195, 132, 37,\n\t\t62, 135, 57, 126, 145, 103, 204, 230, 62, 135, 5, 155, 251,\n\t\t35, 152, 177, 133, 207, 97, 132, 31, 128, 185, 98, 35, 159,\n\t\t195, 146, 141, 252, 17, 76, 217, 178, 112, 8, 21, 169, 250,\n\t\t151, 102, 142, 219, 68, 243, 94, 42, 173, 43, 75, 140, 59,\n\t\t90, 124, 211, 30, 13, 174, 38, 228, 118, 204, 111, 130, 19,\n\t\t34, 32, 4, 111, 224, 81, 48, 242, 130, 207, 19, 240, 250,\n\t\t30, 133, 69, 52, 159, 71, 118, 224, 131, 149, 181, 190, 249,\n\t\t27, 138, 110, 82, 230, 71, 13, 155, 132, 79, 86, 12, 149,\n\t\t51, 240, 207, 61, 74, 215, 239, 114, 123, 125, 223, 203, 240,\n\t\t78, 62, 115, 75, 188, 154, 144, 242, 219, 5, 29, 57, 33, 3,\n\t\t241, 240, 95, 138, 102, 228, 202, 80, 102, 132, 22, 105, 29,\n\t\t59, 90, 205, 212, 195, 130, 200, 118, 198, 133, 73, 252, 189,\n\t\t64, 230, 87, 173, 92, 120, 89, 175, 136, 248, 18, 54, 2, 108,\n\t\t171, 40, 120, 133, 21, 214, 34, 190, 50, 20, 95, 130, 118,\n\t\t216, 231, 59, 210, 96, 59, 25, 187, 9, 246, 27, 204, 182,\n\t\t179, 173, 222, 57, 53, 102, 216, 95, 127, 141, 169, 53, 200,\n\t\t204, 47, 15, 131, 117, 173, 87, 77, 27, 139, 75, 253, 224,\n\t\t236, 144, 45, 75, 2, 158, 168, 228, 114, 97, 158, 241, 171,\n\t\t113, 42, 159, 53, 181, 87, 35, 251, 185, 18, 172, 237, 132,\n\t\t218, 14, 121, 153, 177, 218, 22, 227, 215, 216, 84, 41, 248,\n\t\t78, 251, 23, 154, 255, 170, 146, 33, 156, 59, 97, 55, 181,\n\t\t120, 153, 28, 5, 181, 128, 0, 67, 15, 7, 151, 49, 9, 210,\n\t\t9, 126, 120, 35, 95, 125, 106, 248, 226, 106, 218, 174, 162,\n\t\t126, 140, 245, 99, 139, 157, 82, 232, 211, 149, 213, 166,\n\t\t115, 64, 48, 94, 133, 76, 41, 56, 129, 54, 245, 102, 86, 118,\n\t\t140, 246, 198, 103, 142, 207, 89, 113, 170, 96, 102, 206,\n\t\t123, 201, 71, 115, 209, 209, 113, 103, 201, 85, 34, 58, 58,\n\t\t90, 8, 143, 102, 48, 109, 92, 84, 48, 52, 250, 119, 233, 62,\n\t\t121, 187, 217, 164, 16, 243, 24, 129, 188, 23, 15, 159, 136,\n\t\t199, 255, 18, 62, 239, 61, 17, 143, 254, 37, 252, 81, 6, 215,\n\t\t141, 168, 237, 138, 246, 240, 201, 147, 224, 225, 147, 199,\n\t\t25, 156, 54, 2, 125, 78, 201, 202, 76, 29, 252, 250, 115,\n\t\t127, 135, 217, 37, 138, 222, 58, 53, 123, 61, 177, 31, 185,\n\t\t53, 47, 221, 242, 181, 53, 200, 61, 159, 22, 100, 52, 33,\n\t\t174, 146, 3, 205, 215, 55, 4, 116, 205, 113, 99, 149, 252,\n\t\t242, 228, 145, 120, 252, 175, 169, 153, 174, 80, 252, 22,\n\t\t249, 111, 187, 80, 110, 13, 40, 96, 71, 237, 194, 6, 166,\n\t\t175, 197, 114, 103, 38, 118, 177, 12, 110, 13, 254, 181, 105,\n\t\t122, 122, 78, 97, 58, 33, 156, 246, 12, 88, 161, 135, 178,\n\t\t220, 64, 168, 116, 194, 146, 217, 27, 192, 224, 215, 39, 191,\n\t\t226, 100, 153, 78, 200, 253, 125, 160, 248, 193, 243, 70,\n\t\t218, 201, 117, 81, 105, 75, 21, 133, 77, 235, 252, 22, 246,\n\t\t140, 194, 47, 219, 191, 136, 199, 91, 213, 222, 61, 124, 252,\n\t\t72, 60, 218, 170, 245, 241, 137, 120, 180, 85, 235, 167, 235,\n\t\t100, 113, 66, 179, 69, 176, 187, 91, 181, 238, 226, 194, 74,\n\t\t51, 184, 249, 127, 200, 123, 211, 229, 182, 145, 173, 65,\n\t\t240, 85, 104, 52, 191, 234, 196, 213, 17, 77, 122, 171, 91,\n\t\t180, 217, 12, 89, 178, 188, 137, 146, 108, 202, 107, 93, 127,\n\t\t10, 144, 72, 18, 176, 176, 208, 64, 130, 148, 92, 70, 196,\n\t\t252, 154, 39, 152, 136, 249, 219, 191, 230, 207, 60, 66, 199,\n\t\t196, 68, 124, 243, 38, 253, 2, 243, 10, 19, 121, 114, 65,\n\t\t98, 163, 100, 187, 234, 222, 232, 158, 27, 117, 45, 16, 200,\n\t\t245, 100, 230, 217, 242, 44, 77, 139, 253, 71, 119, 120, 31,\n\t\t230, 194, 177, 170, 229, 251, 96, 0, 75, 225, 80, 181, 184,\n\t\t129, 0, 45, 180, 2, 231, 171, 44, 245, 170, 214, 89, 41, 165,\n\t\t81, 53, 166, 170, 222, 209, 171, 133, 17, 159, 160, 72, 112,\n\t\t242, 46, 69, 59, 227, 225, 52, 35, 211, 133, 48, 57, 206,\n\t\t161, 48, 128, 244, 211, 115, 199, 84, 38, 148, 45, 196, 98,\n\t\t212, 42, 24, 239, 228, 224, 156, 140, 197, 231, 153, 80, 100,\n\t\t152, 114, 126, 161, 176, 48, 38, 36, 21, 23, 22, 92, 44, 200,\n\t\t17, 249, 253, 113, 66, 190, 164, 54, 92, 45, 72, 200, 121,\n\t\t115, 89, 72, 121, 77, 192, 52, 35, 111, 83, 195, 20, 106,\n\t\t178, 144, 198, 32, 202, 144, 24, 30, 39, 228, 245, 130, 87,\n\t\t84, 208, 108, 238, 214, 108, 241, 0, 29, 82, 46, 85, 5, 73,\n\t\t59, 206, 183, 45, 131, 184, 25, 219, 95, 240, 234, 39, 88,\n\t\t125, 111, 49, 18, 241, 134, 201, 69, 155, 203, 60, 222, 49,\n\t\t241, 97, 114, 65, 172, 122, 219, 212, 22, 1, 252, 194, 135,\n\t\t201, 162, 197, 208, 36, 64, 203, 120, 147, 84, 23, 88, 166,\n\t\t61, 162, 248, 101, 91, 115, 56, 169, 220, 206, 27, 238, 155,\n\t\t228, 240, 167, 52, 88, 84, 6, 142, 171, 116, 180, 24, 61,\n\t\t103, 112, 190, 24, 5, 148, 88, 241, 138, 239, 195, 26, 247,\n\t\t208, 57, 90, 228, 54, 28, 44, 70, 49, 133, 147, 69, 139, 221,\n\t\t202, 26, 77, 49, 42, 254, 53, 14, 72, 171, 89, 169, 42, 39,\n\t\t225, 92, 123, 154, 94, 208, 43, 96, 189, 175, 113, 132, 151,\n\t\t136, 243, 44, 73, 104, 196, 222, 250, 116, 51, 156, 144, 120,\n\t\t14, 145, 40, 104, 131, 107, 56, 28, 168, 102, 46, 219, 154,\n\t\t113, 253, 197, 66, 234, 218, 201, 215, 185, 254, 44, 138,\n\t\t242, 66, 182, 242, 248, 73, 128, 175, 129, 42, 123, 158, 150,\n\t\t202, 70, 182, 136, 88, 141, 247, 28, 84, 106, 17, 85, 217,\n\t\t207, 105, 173, 91, 165, 81, 204, 11, 226, 137, 247, 94, 70,\n\t\t216, 235, 151, 49, 201, 56, 43, 174, 66, 91, 31, 44, 32, 204,\n\t\t192, 75, 137, 152, 166, 13, 231, 11, 50, 229, 152, 244, 96,\n\t\t1, 110, 6, 135, 115, 146, 245, 106, 83, 183, 101, 129, 32,\n\t\t131, 9, 47, 96, 66, 87, 125, 155, 101, 176, 183, 144, 207,\n\t\t47, 98, 152, 16, 39, 133, 172, 167, 1, 35, 193, 170, 66, 105,\n\t\t159, 46, 90, 131, 184, 170, 219, 245, 98, 18, 40, 45, 150,\n\t\t156, 70, 202, 41, 96, 14, 72, 4, 73, 170, 146, 184, 249, 61,\n\t\t7, 230, 163, 137, 8, 41, 69, 98, 219, 134, 116, 52, 55, 131,\n\t\t183, 157, 144, 168, 10, 162, 9, 201, 32, 134, 185, 52, 39,\n\t\t194, 57, 36, 32, 50, 166, 28, 55, 105, 91, 228, 30, 95, 196,\n\t\t201, 156, 14, 35, 97, 137, 201, 32, 161, 107, 63, 245, 227,\n\t\t72, 154, 22, 42, 76, 35, 205, 255, 133, 19, 215, 227, 246,\n\t\t230, 170, 87, 221, 251, 228, 120, 129, 128, 185, 213, 55,\n\t\t110, 187, 133, 249, 171, 116, 105, 226, 68, 15, 14, 136, 165,\n\t\t122, 86, 215, 224, 242, 103, 243, 141, 247, 97, 253, 56, 167,\n\t\t148, 153, 151, 222, 95, 91, 40, 143, 188, 244, 166, 53, 92,\n\t\t116, 214, 200, 183, 172, 252, 86, 143, 189, 3, 194, 122, 168,\n\t\t115, 21, 122, 80, 78, 68, 158, 215, 21, 7, 178, 240, 231,\n\t\t168, 181, 29, 198, 89, 171, 3, 254, 125, 227, 195, 25, 114,\n\t\t40, 103, 11, 17, 11, 11, 227, 204, 180, 182, 169, 173, 198,\n\t\t7, 54, 80, 40, 25, 139, 219, 240, 116, 33, 174, 122, 145,\n\t\t92, 91, 57, 188, 111, 107, 134, 151, 58, 200, 18, 17, 86,\n\t\t218, 180, 43, 125, 83, 174, 81, 140, 55, 183, 225, 197, 98,\n\t\t244, 129, 193, 231, 214, 161, 97, 252, 249, 55, 56, 151, 23,\n\t\t11, 113, 223, 15, 111, 197, 136, 38, 200, 119, 88, 57, 60,\n\t\t107, 102, 66, 157, 135, 58, 198, 196, 76, 7, 151, 152, 20,\n\t\t172, 71, 85, 12, 154, 150, 223, 114, 94, 70, 126, 145, 61,\n\t\t169, 47, 207, 56, 243, 245, 126, 1, 15, 250, 127, 163, 240,\n\t\t116, 81, 15, 40, 81, 42, 240, 118, 97, 219, 121, 14, 95, 182,\n\t\t236, 245, 9, 249, 188, 0, 85, 9, 13, 163, 132, 179, 199, 187,\n\t\t182, 173, 87, 117, 128, 126, 185, 229, 92, 42, 135, 27, 134,\n\t\t254, 54, 20, 221, 109, 208, 206, 246, 213, 98, 155, 185, 179,\n\t\t196, 158, 226, 34, 104, 159, 188, 228, 72, 32, 130, 117, 90,\n\t\t224, 207, 125, 242, 133, 31, 201, 167, 11, 120, 183, 32, 193,\n\t\t92, 163, 179, 15, 141, 251, 255, 183, 251, 143, 154, 94, 15,\n\t\t250, 125, 206, 49, 170, 88, 240, 183, 49, 116, 130, 10, 24,\n\t\t191, 203, 122, 229, 112, 240, 82, 13, 243, 81, 108, 128, 3,\n\t\t7, 3, 239, 231, 192, 2, 177, 69, 37, 66, 204, 129, 6, 165,\n\t\t190, 106, 209, 209, 101, 38, 54, 185, 94, 252, 103, 135, 35,\n\t\t129, 142, 181, 195, 183, 141, 153, 151, 77, 151, 81, 191,\n\t\t235, 137, 217, 116, 17, 249, 178, 67, 241, 109, 37, 63, 91,\n\t\t169, 51, 233, 120, 208, 177, 118, 38, 194, 30, 164, 178, 131,\n\t\t172, 253, 56, 11, 220, 78, 20, 179, 142, 136, 182, 213, 65,\n\t\t84, 40, 198, 151, 231, 16, 5, 173, 66, 190, 158, 99, 197,\n\t\t119, 100, 88, 152, 213, 112, 10, 34, 152, 88, 146, 141, 152,\n\t\t200, 41, 111, 172, 58, 21, 209, 91, 26, 47, 236, 49, 152,\n\t\t91, 225, 75, 153, 231, 132, 6, 36, 147, 164, 66, 145, 157,\n\t\t4, 117, 62, 70, 154, 19, 20, 211, 162, 162, 143, 16, 250,\n\t\t162, 36, 27, 81, 25, 96, 69, 206, 219, 160, 105, 172, 215,\n\t\t29, 243, 162, 84, 25, 210, 15, 15, 48, 146, 30, 45, 156, 90,\n\t\t236, 156, 216, 15, 203, 35, 175, 59, 92, 37, 189, 218, 59,\n\t\t165, 58, 225, 50, 187, 152, 42, 225, 68, 242, 249, 130, 203,\n\t\t233, 144, 40, 146, 110, 131, 185, 171, 192, 25, 206, 115,\n\t\t53, 77, 5, 225, 50, 1, 64, 24, 103, 134, 156, 48, 146, 32,\n\t\t118, 236, 94, 119, 220, 37, 175, 248, 121, 185, 15, 44, 0,\n\t\t217, 234, 34, 11, 130, 171, 14, 146, 28, 220, 19, 180, 103,\n\t\t217, 67, 89, 110, 112, 31, 62, 46, 0, 193, 77, 93, 46, 157,\n\t\t99, 49, 190, 7, 20, 200, 197, 40, 246, 61, 58, 191, 136, 51,\n\t\t134, 145, 111, 12, 167, 191, 3, 66, 97, 159, 60, 94, 192,\n\t\t215, 133, 176, 64, 45, 170, 76, 169, 147, 204, 189, 231, 209,\n\t\t138, 239, 111, 193, 98, 32, 240, 228, 61, 54, 195, 236, 132,\n\t\t186, 25, 159, 243, 57, 190, 170, 171, 147, 37, 12, 5, 135,\n\t\t193, 204, 4, 113, 143, 51, 176, 208, 193, 9, 40, 231, 112,\n\t\t4, 81, 254, 229, 151, 15, 11, 18, 219, 99, 62, 160, 9, 121,\n\t\t194, 231, 102, 174, 33, 95, 87, 138, 64, 173, 96, 81, 185,\n\t\t162, 6, 6, 146, 17, 214, 122, 18, 165, 233, 223, 236, 106,\n\t\t5, 194, 170, 138, 183, 35, 18, 205, 242, 231, 250, 41, 145,\n\t\t77, 35, 106, 67, 187, 14, 92, 81, 39, 104, 226, 78, 178, 214,\n\t\t234, 215, 219, 197, 11, 38, 168, 98, 23, 175, 185, 149, 72,\n\t\t114, 43, 77, 12, 137, 19, 84, 24, 146, 44, 18, 44, 168, 105,\n\t\t19, 239, 7, 237, 60, 201, 27, 89, 190, 202, 150, 196, 245,\n\t\t233, 8, 148, 208, 68, 153, 199, 253, 225, 32, 71, 165, 220,\n\t\t83, 180, 173, 237, 161, 59, 142, 13, 17, 161, 242, 81, 139,\n\t\t195, 79, 94, 9, 189, 90, 119, 44, 242, 244, 227, 220, 148,\n\t\t239, 235, 144, 115, 80, 243, 166, 209, 94, 199, 16, 97, 43,\n\t\t154, 31, 74, 131, 209, 12, 22, 173, 11, 50, 33, 105, 0, 113,\n\t\t0, 55, 226, 140, 230, 1, 95, 149, 121, 80, 112, 70, 65, 107,\n\t\t195, 218, 249, 69, 112, 70, 247, 75, 156, 145, 123, 51, 44,\n\t\t220, 232, 119, 211, 140, 142, 253, 63, 3, 29, 251, 53, 116,\n\t\t236, 255, 83, 208, 241, 253, 6, 116, 220, 140, 104, 23, 129,\n\t\t64, 180, 215, 33, 88, 181, 149, 155, 80, 219, 132, 100, 1,\n\t\t248, 193, 86, 180, 150, 109, 67, 107, 66, 190, 179, 11, 92,\n\t\t94, 59, 56, 2, 53, 170, 245, 25, 201, 245, 113, 234, 235,\n\t\t99, 160, 40, 156, 141, 198, 236, 234, 236, 186, 157, 56, 162,\n\t\t29, 159, 209, 176, 103, 113, 244, 111, 178, 81, 135, 115,\n\t\t190, 29, 145, 153, 186, 207, 153, 169, 139, 76, 51, 83, 15,\n\t\t229, 106, 62, 52, 230, 93, 171, 52, 168, 213, 194, 9, 105,\n\t\t22, 241, 103, 209, 169, 70, 203, 109, 248, 94, 185, 162, 181,\n\t\t227, 252, 32, 40, 225, 252, 251, 5, 206, 215, 184, 58, 188,\n\t\t41, 174, 246, 218, 80, 223, 161, 31, 249, 169, 199, 199, 33,\n\t\t240, 221, 108, 11, 182, 8, 35, 96, 176, 139, 193, 59, 214,\n\t\t245, 98, 124, 193, 77, 139, 230, 91, 165, 27, 32, 49, 165,\n\t\t89, 0, 34, 36, 176, 82, 42, 151, 44, 150, 5, 172, 229, 169,\n\t\t142, 122, 221, 177, 60, 194, 94, 64, 252, 132, 159, 81, 116,\n\t\t217, 176, 243, 97, 241, 62, 78, 196, 75, 73, 195, 108, 88,\n\t\t221, 20, 34, 203, 45, 5, 41, 252, 129, 246, 84, 12, 75, 118,\n\t\t183, 151, 68, 167, 93, 44, 184, 105, 43, 248, 71, 163, 116,\n\t\t63, 109, 164, 159, 87, 141, 104, 191, 78, 13, 89, 155, 236,\n\t\t206, 202, 178, 123, 14, 23, 193, 205, 244, 5, 87, 1, 199,\n\t\t244, 1, 126, 175, 59, 100, 87, 9, 236, 10, 99, 155, 228, 54,\n\t\t188, 110, 156, 198, 164, 21, 104, 42, 80, 140, 254, 88, 140,\n\t\t166, 165, 6, 237, 173, 178, 212, 35, 95, 153, 176, 93, 183,\n\t\t129, 175, 32, 97, 54, 252, 254, 73, 186, 195, 236, 255, 36,\n\t\t211, 145, 54, 114, 29, 169, 5, 19, 50, 9, 224, 105, 12, 130,\n\t\t247, 72, 155, 153, 143, 215, 85, 216, 8, 67, 90, 147, 245,\n\t\t184, 252, 75, 214, 32, 139, 244, 42, 236, 5, 223, 237, 111,\n\t\t45, 34, 5, 52, 185, 69, 139, 159, 30, 117, 92, 11, 54, 24,\n\t\t123, 96, 171, 199, 159, 104, 104, 24, 97, 138, 74, 244, 55,\n\t\t214, 206, 199, 78, 225, 124, 44, 189, 141, 169, 246, 43, 134,\n\t\t163, 160, 193, 167, 120, 15, 53, 138, 63, 185, 158, 63, 198,\n\t\t68, 30, 85, 225, 43, 237, 171, 205, 133, 60, 104, 61, 227,\n\t\t130, 143, 148, 81, 85, 27, 61, 133, 79, 182, 240, 159, 167,\n\t\t34, 170, 143, 201, 122, 158, 110, 41, 222, 168, 66, 59, 14,\n\t\t180, 123, 129, 149, 195, 225, 205, 248, 172, 234, 128, 135,\n\t\t45, 104, 249, 15, 101, 108, 238, 36, 36, 65, 134, 171, 176,\n\t\t57, 143, 164, 141, 237, 113, 96, 242, 33, 56, 198, 86, 249,\n\t\t234, 52, 0, 225, 173, 134, 94, 156, 109, 162, 97, 141, 50,\n\t\t112, 126, 34, 81, 178, 225, 31, 134, 1, 188, 50, 122, 207,\n\t\t135, 230, 72, 253, 132, 36, 6, 99, 167, 122, 49, 161, 141,\n\t\t19, 78, 42, 226, 167, 238, 66, 208, 173, 243, 0, 14, 2, 66,\n\t\t123, 106, 198, 54, 24, 207, 156, 44, 87, 33, 212, 212, 111,\n\t\t41, 32, 96, 133, 191, 144, 22, 208, 232, 96, 171, 43, 96,\n\t\t73, 92, 205, 198, 210, 101, 104, 99, 97, 17, 7, 126, 216,\n\t\t188, 112, 38, 144, 204, 97, 109, 101, 121, 42, 67, 58, 245,\n\t\t163, 230, 21, 101, 189, 249, 248, 34, 24, 94, 6, 112, 82,\n\t\t94, 88, 147, 15, 114, 204, 109, 117, 78, 84, 44, 240, 85,\n\t\t42, 88, 158, 36, 229, 160, 180, 158, 68, 140, 38, 232, 48,\n\t\t59, 110, 31, 255, 80, 48, 66, 185, 13, 143, 27, 233, 207,\n\t\t215, 127, 9, 6, 121, 92, 197, 32, 232, 109, 97, 226, 143,\n\t\t179, 237, 135, 186, 116, 158, 159, 223, 224, 4, 239, 39, 212,\n\t\t97, 244, 192, 79, 42, 108, 254, 215, 0, 206, 2, 16, 219, 88,\n\t\t174, 29, 178, 248, 66, 151, 227, 86, 23, 187, 240, 141, 169,\n\t\t44, 184, 57, 172, 54, 212, 32, 15, 13, 114, 108, 117, 183,\n\t\t36, 197, 173, 145, 108, 36, 89, 56, 80, 18, 24, 159, 104,\n\t\t150, 255, 69, 135, 164, 193, 221, 231, 166, 39, 166, 62, 137,\n\t\t31, 56, 47, 230, 198, 199, 117, 64, 127, 208, 217, 117, 219,\n\t\t159, 130, 121, 0, 244, 66, 218, 67, 197, 247, 103, 185, 13,\n\t\t79, 212, 158, 151, 108, 138, 138, 228, 247, 180, 145, 121,\n\t\t108, 191, 150, 125, 82, 221, 175, 78, 16, 236, 186, 126, 146,\n\t\t98, 170, 231, 247, 173, 66, 131, 92, 59, 190, 73, 223, 108,\n\t\t217, 208, 123, 194, 1, 164, 22, 111, 160, 149, 134, 186, 52,\n\t\t101, 126, 132, 119, 33, 72, 88, 168, 233, 46, 134, 126, 3,\n\t\t159, 27, 79, 251, 219, 198, 121, 75, 73, 75, 4, 229, 26, 90,\n\t\t183, 173, 29, 150, 195, 179, 27, 114, 98, 232, 40, 250, 34,\n\t\t168, 56, 138, 138, 225, 32, 30, 120, 27, 144, 164, 87, 12,\n\t\t207, 22, 172, 184, 49, 131, 162, 84, 101, 90, 118, 51, 242,\n\t\t248, 92, 93, 140, 57, 250, 235, 21, 119, 106, 95, 126, 2,\n\t\t110, 239, 26, 225, 246, 242, 123, 128, 241, 229, 159, 9, 140,\n\t\t119, 53, 76, 106, 112, 212, 28, 24, 175, 182, 237, 59, 124,\n\t\t93, 221, 118, 31, 26, 55, 201, 62, 17, 30, 140, 34, 187, 21,\n\t\t126, 237, 117, 199, 47, 131, 225, 179, 0, 94, 5, 192, 140,\n\t\t89, 1, 235, 41, 231, 70, 59, 135, 143, 77, 176, 107, 15, 249,\n\t\t183, 150, 9, 113, 156, 135, 70, 240, 63, 52, 111, 61, 231,\n\t\t220, 116, 212, 148, 187, 41, 42, 30, 114, 27, 152, 187, 229,\n\t\t118, 115, 159, 124, 20, 25, 155, 66, 100, 58, 168, 219, 156,\n\t\t12, 179, 255, 72, 231, 61, 60, 64, 143, 95, 195, 46, 144,\n\t\t154, 99, 23, 166, 219, 74, 122, 143, 30, 26, 214, 220, 194,\n\t\t124, 76, 88, 5, 106, 35, 60, 241, 151, 230, 146, 64, 37, 42,\n\t\t44, 95, 103, 48, 84, 69, 240, 231, 29, 201, 8, 24, 185, 163,\n\t\t142, 200, 239, 14, 199, 142, 189, 89, 207, 249, 36, 144, 108,\n\t\t231, 238, 176, 100, 100, 46, 109, 52, 148, 105, 172, 89, 53,\n\t\t235, 57, 224, 227, 255, 177, 186, 52, 240, 163, 26, 253, 154,\n\t\t237, 72, 11, 120, 179, 209, 24, 27, 85, 137, 147, 230, 210,\n\t\t198, 118, 6, 193, 104, 209, 115, 192, 29, 45, 138, 206, 112,\n\t\t165, 226, 158, 35, 220, 242, 231, 234, 33, 85, 15, 1, 12,\n\t\t232, 221, 71, 108, 60, 33, 204, 5, 186, 123, 15, 92, 123,\n\t\t184, 79, 168, 11, 108, 103, 32, 127, 163, 230, 84, 129, 170,\n\t\t182, 202, 71, 228, 247, 68, 206, 66, 190, 9, 115, 27, 162,\n\t\t214, 101, 199, 198, 117, 30, 222, 196, 109, 184, 207, 61,\n\t\t54, 82, 196, 96, 92, 138, 67, 159, 76, 72, 228, 66, 55, 33,\n\t\t212, 222, 197, 20, 162, 34, 233, 139, 227, 142, 86, 144, 181,\n\t\t245, 117, 235, 156, 19, 40, 151, 139, 223, 191, 252, 114,\n\t\t11, 17, 171, 72, 206, 5, 190, 219, 112, 170, 172, 219, 120,\n\t\t158, 198, 214, 179, 56, 164, 214, 80, 231, 154, 57, 150, 81,\n\t\t230, 227, 214, 57, 161, 46, 218, 119, 1, 147, 246, 100, 46,\n\t\t49, 207, 159, 45, 165, 253, 121, 189, 118, 141, 47, 58, 136,\n\t\t5, 18, 40, 177, 69, 31, 2, 66, 21, 55, 116, 224, 39, 251,\n\t\t94, 156, 210, 168, 74, 199, 181, 255, 114, 133, 209, 40, 233,\n\t\t73, 203, 85, 76, 85, 105, 137, 117, 170, 18, 192, 186, 60,\n\t\t115, 11, 163, 149, 40, 121, 70, 240, 27, 239, 3, 173, 236,\n\t\t42, 184, 39, 103, 52, 33, 177, 11, 50, 197, 88, 225, 2, 9,\n\t\t206, 208, 169, 93, 176, 85, 16, 160, 96, 220, 26, 153, 54,\n\t\t163, 115, 67, 130, 170, 143, 227, 47, 97, 209, 76, 87, 113,\n\t\t197, 161, 149, 40, 87, 207, 41, 60, 196, 57, 119, 67, 222,\n\t\t4, 246, 141, 185, 183, 63, 133, 105, 51, 149, 200, 37, 150,\n\t\t237, 219, 55, 25, 138, 70, 77, 98, 156, 164, 195, 130, 117,\n\t\t75, 198, 184, 217, 52, 215, 198, 59, 72, 155, 142, 74, 11,\n\t\t239, 191, 184, 193, 30, 23, 206, 161, 123, 65, 80, 225, 253,\n\t\t247, 3, 72, 93, 83, 197, 255, 147, 76, 252, 69, 106, 110,\n\t\t195, 38, 38, 222, 249, 171, 152, 248, 98, 87, 40, 207, 255,\n\t\t166, 154, 55, 97, 226, 47, 254, 226, 253, 80, 93, 126, 181,\n\t\t12, 180, 167, 134, 94, 222, 12, 193, 119, 108, 6, 183, 9,\n\t\t181, 127, 142, 136, 64, 167, 38, 122, 167, 61, 71, 160, 243,\n\t\t112, 11, 213, 120, 25, 64, 224, 2, 3, 145, 205, 11, 177, 58,\n\t\t184, 46, 161, 202, 20, 197, 187, 193, 222, 59, 136, 69, 102,\n\t\t158, 202, 214, 11, 249, 132, 85, 208, 5, 51, 69, 216, 191,\n\t\t82, 8, 157, 252, 235, 246, 175, 142, 63, 193, 81, 217, 159,\n\t\t39, 145, 78, 254, 220, 205, 124, 19, 89, 148, 239, 232, 246,\n\t\t213, 45, 109, 237, 217, 13, 246, 207, 159, 7, 98, 141, 34,\n\t\t164, 34, 191, 54, 221, 22, 72, 170, 8, 31, 182, 82, 36, 173,\n\t\t155, 78, 100, 135, 97, 52, 190, 28, 86, 91, 14, 212, 146,\n\t\t130, 229, 36, 137, 115, 53, 203, 22, 11, 154, 88, 176, 193,\n\t\t203, 46, 71, 123, 177, 45, 221, 209, 148, 66, 183, 177, 3,\n\t\t17, 227, 190, 28, 4, 135, 51, 226, 226, 148, 71, 116, 211,\n\t\t57, 140, 147, 240, 192, 97, 206, 67, 214, 155, 61, 196, 248,\n\t\t107, 102, 184, 31, 218, 115, 86, 43, 26, 185, 42, 157, 169,\n\t\t17, 31, 78, 6, 36, 110, 236, 150, 70, 13, 249, 8, 115, 152,\n\t\t54, 9, 14, 178, 202, 91, 37, 17, 118, 93, 97, 9, 188, 116,\n\t\t101, 32, 166, 223, 63, 89, 16, 161, 85, 182, 148, 226, 26,\n\t\t231, 185, 226, 72, 103, 106, 68, 169, 212, 223, 226, 132,\n\t\t76, 49, 81, 48, 97, 100, 237, 98, 46, 112, 188, 76, 16, 1,\n\t\t43, 66, 202, 188, 216, 29, 90, 167, 39, 211, 51, 11, 152,\n\t\t48, 41, 27, 102, 9, 176, 196, 153, 95, 80, 12, 15, 84, 228,\n\t\t50, 18, 245, 43, 23, 37, 248, 113, 156, 196, 49, 27, 89, 59,\n\t\t27, 142, 235, 240, 196, 95, 181, 45, 170, 58, 59, 197, 157,\n\t\t5, 92, 180, 150, 213, 57, 197, 228, 53, 170, 210, 247, 191,\n\t\t222, 2, 203, 115, 169, 71, 4, 102, 143, 209, 154, 88, 116,\n\t\t72, 115, 123, 24, 229, 54, 76, 182, 84, 93, 98, 166, 204,\n\t\t71, 253, 49, 27, 246, 31, 241, 31, 212, 30, 83, 172, 181,\n\t\t127, 131, 131, 39, 70, 58, 149, 52, 73, 4, 195, 47, 112, 42,\n\t\t106, 12, 103, 21, 205, 191, 138, 117, 19, 143, 208, 18, 132,\n\t\t170, 252, 80, 176, 213, 24, 101, 141, 116, 165, 111, 231,\n\t\t34, 255, 58, 94, 220, 99, 233, 9, 153, 186, 112, 225, 162,\n\t\t245, 185, 190, 120, 175, 228, 221, 43, 212, 197, 24, 60, 205,\n\t\t24, 145, 53, 165, 145, 171, 147, 241, 119, 199, 116, 88, 26,\n\t\t35, 230, 209, 109, 204, 120, 203, 122, 169, 255, 149, 142,\n\t\t247, 201, 132, 11, 77, 3, 46, 217, 211, 136, 221, 22, 175,\n\t\t237, 225, 32, 71, 243, 176, 98, 118, 101, 155, 10, 181, 190,\n\t\t210, 240, 139, 245, 102, 192, 193, 65, 133, 86, 207, 49, 170,\n\t\t149, 111, 18, 124, 188, 67, 192, 33, 170, 224, 65, 40, 44,\n\t\t78, 200, 149, 11, 235, 20, 176, 71, 149, 45, 75, 71, 21, 138,\n\t\t115, 211, 182, 97, 66, 94, 249, 224, 64, 48, 183, 139, 187,\n\t\t6, 25, 146, 168, 222, 150, 76, 156, 85, 111, 234, 110, 191,\n\t\t218, 150, 57, 181, 125, 39, 154, 211, 26, 38, 86, 141, 52,\n\t\t78, 52, 183, 225, 133, 67, 158, 58, 198, 217, 115, 236, 138,\n\t\t198, 127, 222, 176, 157, 244, 208, 113, 47, 188, 118, 101,\n\t\t195, 115, 115, 244, 5, 172, 116, 33, 81, 64, 129, 170, 64,\n\t\t219, 151, 46, 222, 122, 237, 165, 115, 185, 49, 114, 216,\n\t\t115, 71, 166, 145, 79, 14, 71, 91, 152, 173, 134, 155, 183,\n\t\t115, 81, 255, 56, 142, 120, 229, 131, 182, 202, 130, 255,\n\t\t174, 86, 62, 105, 43, 94, 73, 87, 113, 122, 35, 236, 32, 46,\n\t\t27, 4, 138, 208, 1, 159, 21, 150, 56, 110, 106, 66, 81, 247,\n\t\t148, 53, 164, 224, 51, 34, 87, 24, 142, 152, 106, 129, 208,\n\t\t68, 66, 112, 24, 39, 46, 57, 33, 14, 232, 168, 125, 114, 33,\n\t\t78, 93, 161, 3, 116, 116, 210, 177, 92, 198, 128, 59, 20,\n\t\t48, 59, 160, 198, 58, 60, 118, 71, 41, 124, 109, 33, 171,\n\t\t44, 62, 138, 55, 52, 217, 119, 82, 74, 236, 28, 206, 90, 138,\n\t\t57, 57, 60, 111, 69, 107, 84, 163, 181, 99, 147, 23, 157,\n\t\t144, 199, 110, 19, 10, 248, 234, 18, 215, 45, 165, 153, 83,\n\t\t179, 208, 60, 198, 153, 127, 131, 118, 206, 120, 35, 102,\n\t\t40, 237, 134, 182, 78, 253, 232, 186, 118, 72, 52, 58, 32,\n\t\t132, 142, 152, 221, 83, 183, 228, 156, 169, 210, 183, 231,\n\t\t182, 221, 115, 198, 81, 111, 54, 190, 51, 28, 12, 251, 69,\n\t\t248, 185, 106, 87, 83, 255, 235, 245, 99, 22, 120, 174, 84,\n\t\t185, 194, 32, 233, 47, 24, 117, 105, 203, 238, 228, 219, 196,\n\t\t56, 111, 50, 174, 174, 177, 85, 158, 115, 66, 31, 217, 144,\n\t\t198, 137, 244, 83, 58, 32, 151, 28, 225, 231, 67, 93, 10,\n\t\t61, 50, 100, 193, 114, 201, 67, 44, 201, 247, 212, 211, 214,\n\t\t163, 68, 89, 41, 187, 191, 60, 82, 239, 91, 121, 180, 167,\n\t\t46, 145, 25, 214, 167, 58, 228, 239, 155, 109, 165, 17, 227,\n\t\t21, 225, 129, 95, 212, 203, 26, 202, 82, 235, 245, 227, 39,\n\t\t225, 138, 93, 149, 198, 52, 42, 37, 188, 100, 58, 213, 138,\n\t\t251, 144, 141, 38, 228, 133, 84, 11, 246, 168, 173, 114, 172,\n\t\t124, 110, 60, 1, 141, 156, 212, 11, 87, 120, 18, 139, 168,\n\t\t136, 240, 182, 69, 219, 75, 139, 96, 46, 239, 17, 210, 189,\n\t\t185, 71, 231, 23, 212, 181, 139, 19, 31, 193, 31, 242, 229,\n\t\t240, 156, 124, 118, 73, 98, 67, 55, 33, 70, 82, 193, 49, 86,\n\t\t182, 44, 188, 131, 42, 124, 160, 75, 53, 39, 228, 141, 43,\n\t\t66, 61, 190, 41, 247, 35, 214, 241, 89, 59, 158, 138, 90,\n\t\t77, 39, 147, 94, 119, 28, 13, 177, 27, 141, 146, 246, 201,\n\t\t91, 87, 102, 201, 119, 100, 219, 95, 220, 209, 83, 151, 60,\n\t\t73, 108, 120, 215, 186, 158, 156, 236, 176, 177, 30, 45, 137,\n\t\t70, 199, 91, 220, 129, 56, 118, 200, 249, 202, 72, 8, 192,\n\t\t17, 249, 221, 178, 132, 99, 232, 139, 8, 222, 187, 240, 197,\n\t\t197, 4, 238, 67, 221, 226, 23, 215, 184, 226, 125, 89, 31,\n\t\t135, 90, 251, 182, 185, 70, 5, 35, 163, 231, 58, 33, 239,\n\t\t4, 44, 213, 76, 95, 53, 238, 143, 67, 201, 131, 109, 92, 169,\n\t\t93, 181, 115, 248, 224, 142, 188, 8, 62, 182, 194, 227, 146,\n\t\t188, 72, 224, 13, 38, 72, 129, 231, 9, 60, 71, 187, 92, 22,\n\t\t110, 225, 111, 95, 101, 52, 185, 58, 117, 18, 39, 164, 76,\n\t\t134, 33, 213, 25, 139, 219, 234, 117, 38, 132, 133, 176, 65,\n\t\t54, 16, 89, 110, 222, 75, 20, 182, 160, 249, 29, 107, 100,\n\t\t237, 160, 197, 113, 210, 82, 100, 54, 182, 198, 42, 111, 249,\n\t\t47, 50, 111, 121, 20, 114, 9, 11, 227, 211, 57, 245, 113,\n\t\t212, 165, 78, 252, 104, 230, 52, 44, 24, 158, 125, 114, 204,\n\t\t137, 91, 162, 109, 23, 10, 238, 239, 117, 188, 105, 54, 166,\n\t\t253, 224, 74, 123, 70, 235, 54, 166, 255, 217, 121, 229, 18,\n\t\t101, 59, 178, 146, 89, 140, 12, 85, 93, 189, 145, 82, 167,\n\t\t231, 24, 244, 118, 63, 128, 3, 23, 240, 46, 128, 55, 81, 216,\n\t\t166, 214, 12, 117, 163, 170, 66, 202, 24, 208, 49, 41, 236,\n\t\t74, 65, 4, 249, 77, 66, 33, 181, 209, 176, 136, 188, 138,\n\t\t66, 219, 208, 178, 116, 39, 210, 28, 72, 143, 116, 109, 24,\n\t\t199, 52, 143, 247, 96, 209, 150, 157, 87, 154, 205, 48, 27,\n\t\t81, 85, 82, 134, 200, 52, 78, 216, 227, 43, 197, 232, 151,\n\t\t143, 6, 178, 249, 197, 233, 112, 26, 78, 199, 62, 121, 226,\n\t\t162, 57, 180, 182, 52, 49, 217, 245, 10, 103, 86, 192, 187,\n\t\t106, 146, 172, 218, 45, 5, 12, 21, 129, 56, 165, 21, 113,\n\t\t171, 30, 170, 98, 128, 222, 96, 224, 44, 6, 187, 231, 202,\n\t\t38, 196, 29, 150, 95, 51, 172, 210, 115, 210, 232, 36, 235,\n\t\t165, 52, 88, 8, 151, 129, 241, 23, 183, 73, 154, 70, 18, 245,\n\t\t17, 5, 106, 46, 54, 203, 26, 43, 113, 75, 34, 73, 108, 166,\n\t\t80, 152, 25, 113, 57, 235, 21, 63, 68, 24, 65, 81, 183, 74,\n\t\t172, 207, 93, 187, 118, 173, 80, 51, 155, 242, 171, 59, 80,\n\t\t151, 70, 255, 154, 89, 124, 121, 230, 207, 47, 74, 251, 253,\n\t\t153, 107, 164, 1, 108, 46, 95, 214, 104, 79, 200, 75, 81,\n\t\t197, 44, 190, 197, 14, 105, 38, 237, 144, 142, 68, 45, 139,\n\t\t175, 168, 117, 51, 251, 238, 138, 202, 201, 200, 144, 46,\n\t\t205, 184, 39, 228, 48, 16, 99, 41, 103, 140, 22, 23, 136,\n\t\t205, 6, 115, 2, 166, 49, 54, 173, 78, 203, 188, 192, 11, 42,\n\t\t189, 57, 246, 144, 142, 38, 196, 147, 179, 45, 229, 135, 126,\n\t\t56, 31, 165, 181, 14, 204, 0, 173, 105, 209, 126, 108, 180,\n\t\t175, 18, 178, 99, 235, 139, 209, 132, 204, 85, 235, 69, 14,\n\t\t208, 135, 115, 243, 150, 83, 171, 201, 84, 216, 201, 69, 209,\n\t\t114, 102, 180, 172, 210, 204, 99, 203, 129, 217, 114, 145,\n\t\t163, 250, 225, 124, 20, 212, 90, 46, 226, 222, 6, 69, 203,\n\t\t145, 209, 114, 145, 159, 29, 219, 118, 71, 19, 178, 175, 218,\n\t\t54, 243, 64, 63, 156, 143, 220, 22, 93, 133, 104, 223, 45,\n\t\t218, 79, 77, 152, 168, 108, 246, 216, 124, 56, 154, 144, 231,\n\t\t106, 81, 141, 28, 210, 15, 231, 163, 176, 14, 149, 34, 120,\n\t\t110, 88, 52, 238, 148, 22, 52, 52, 65, 238, 141, 38, 100,\n\t\t81, 44, 104, 9, 232, 94, 195, 130, 22, 96, 247, 138, 246,\n\t\t125, 209, 190, 41, 87, 207, 70, 19, 50, 83, 237, 26, 25, 164,\n\t\t31, 206, 71, 179, 90, 179, 70, 192, 222, 89, 209, 234, 28,\n\t\t91, 229, 20, 60, 11, 49, 134, 2, 95, 152, 179, 120, 63, 240,\n\t\t87, 179, 216, 73, 92, 11, 214, 142, 13, 126, 216, 100, 55,\n\t\t18, 135, 163, 199, 12, 230, 141, 132, 90, 155, 135, 168, 24,\n\t\t155, 104, 147, 46, 126, 40, 115, 117, 29, 144, 51, 14, 209,\n\t\t94, 93, 196, 244, 20, 95, 27, 66, 96, 96, 11, 213, 168, 160,\n\t\t210, 186, 61, 221, 62, 8, 157, 85, 133, 245, 138, 188, 158,\n\t\t165, 240, 28, 98, 120, 197, 27, 81, 164, 49, 172, 8, 142,\n\t\t86, 70, 245, 197, 119, 178, 57, 21, 78, 4, 173, 197, 231,\n\t\t33, 168, 233, 166, 165, 182, 68, 252, 20, 108, 163, 136, 179,\n\t\t250, 67, 115, 94, 180, 178, 92, 166, 209, 78, 26, 18, 51,\n\t\t130, 49, 53, 122, 173, 199, 118, 165, 181, 190, 192, 156,\n\t\t168, 174, 109, 196, 139, 45, 69, 131, 165, 38, 8, 139, 200,\n\t\t176, 10, 16, 34, 242, 43, 21, 186, 244, 154, 177, 143, 31,\n\t\t182, 68, 7, 193, 228, 95, 87, 194, 194, 61, 104, 220, 137,\n\t\t238, 141, 64, 241, 103, 167, 225, 9, 218, 6, 156, 94, 69,\n\t\t115, 211, 220, 51, 12, 175, 205, 202, 180, 109, 205, 156,\n\t\t250, 66, 101, 229, 117, 73, 90, 98, 242, 202, 88, 187, 223,\n\t\t3, 108, 199, 117, 5, 164, 189, 166, 35, 213, 114, 53, 57,\n\t\t107, 60, 126, 1, 9, 67, 240, 248, 65, 224, 163, 128, 210,\n\t\t249, 2, 125, 132, 92, 17, 212, 195, 216, 150, 245, 29, 15,\n\t\t161, 157, 195, 250, 6, 172, 189, 206, 59, 94, 98, 8, 102,\n\t\t97, 97, 241, 113, 236, 132, 116, 219, 245, 99, 212, 112, 243,\n\t\t120, 88, 140, 123, 91, 85, 115, 13, 42, 45, 20, 107, 213,\n\t\t82, 215, 140, 18, 94, 173, 171, 33, 211, 82, 215, 216, 42,\n\t\t127, 238, 149, 233, 241, 191, 228, 202, 244, 48, 37, 199,\n\t\t193, 119, 221, 135, 254, 200, 53, 168, 100, 95, 234, 249,\n\t\t237, 171, 119, 183, 213, 48, 239, 45, 77, 168, 173, 218, 178,\n\t\t70, 181, 19, 252, 167, 93, 200, 226, 230, 46, 221, 188, 174,\n\t\t182, 156, 220, 22, 99, 220, 229, 119, 28, 246, 110, 227, 97,\n\t\t159, 144, 69, 8, 75, 145, 193, 104, 83, 63, 169, 106, 243,\n\t\t9, 52, 3, 201, 104, 159, 60, 75, 225, 45, 186, 19, 223, 26,\n\t\t96, 88, 126, 103, 132, 154, 103, 25, 254, 29, 85, 62, 10,\n\t\t143, 181, 171, 51, 69, 137, 28, 148, 1, 101, 65, 115, 249,\n\t\t206, 44, 118, 186, 3, 221, 144, 56, 178, 123, 20, 19, 167,\n\t\t55, 64, 39, 165, 243, 211, 116, 106, 12, 47, 20, 113, 78,\n\t\t206, 140, 35, 179, 224, 71, 38, 169, 30, 153, 69, 249, 200,\n\t\t136, 136, 239, 130, 97, 108, 60, 163, 243, 145, 230, 10, 185,\n\t\t4, 49, 58, 33, 254, 136, 42, 56, 26, 16, 58, 245, 155, 50,\n\t\t168, 156, 107, 174, 11, 115, 143, 248, 26, 62, 194, 169, 49,\n\t\t36, 115, 13, 147, 63, 241, 8, 99, 168, 254, 99, 225, 96, 12,\n\t\t79, 3, 178, 10, 13, 35, 164, 154, 57, 92, 69, 187, 160, 228,\n\t\t233, 164, 38, 157, 139, 68, 2, 73, 185, 255, 186, 9, 223,\n\t\t132, 108, 66, 76, 236, 226, 40, 45, 195, 247, 26, 237, 181,\n\t\t163, 156, 122, 46, 147, 31, 70, 62, 175, 37, 195, 171, 49,\n\t\t70, 235, 109, 231, 205, 54, 64, 179, 38, 211, 216, 0, 142,\n\t\t61, 150, 39, 76, 70, 207, 207, 114, 123, 200, 114, 80, 141,\n\t\t213, 246, 70, 108, 255, 56, 158, 148, 151, 176, 81, 49, 31,\n\t\t40, 184, 75, 93, 200, 174, 224, 64, 177, 247, 81, 169, 0,\n\t\t49, 204, 33, 45, 3, 226, 166, 103, 225, 90, 80, 68, 18, 20,\n\t\t53, 180, 156, 94, 3, 146, 226, 184, 32, 186, 93, 228, 54,\n\t\t92, 53, 178, 164, 23, 255, 18, 150, 244, 170, 141, 173, 171,\n\t\t59, 163, 190, 254, 14, 148, 63, 105, 65, 249, 23, 33, 188,\n\t\t86, 252, 157, 157, 195, 254, 13, 80, 234, 65, 172, 112, 157,\n\t\t94, 85, 10, 19, 131, 65, 251, 81, 158, 229, 95, 193, 170,\n\t\t96, 218, 16, 190, 193, 255, 9, 12, 203, 79, 178, 9, 147, 26,\n\t\t155, 112, 185, 117, 3, 240, 109, 131, 23, 155, 87, 213, 205,\n\t\t176, 183, 165, 222, 244, 42, 154, 87, 203, 31, 133, 127, 86,\n\t\t172, 172, 243, 216, 140, 149, 117, 222, 118, 67, 144, 195,\n\t\t193, 13, 54, 98, 115, 76, 204, 58, 149, 111, 178, 205, 110,\n\t\t158, 127, 61, 156, 72, 197, 122, 59, 197, 16, 223, 21, 43,\n\t\t128, 180, 166, 96, 45, 1, 81, 14, 168, 102, 168, 221, 37,\n\t\t71, 97, 99, 68, 36, 46, 124, 122, 73, 28, 249, 95, 169, 123,\n\t\t11, 67, 34, 97, 193, 59, 253, 74, 72, 36, 94, 78, 70, 68,\n\t\t138, 42, 70, 194, 13, 107, 223, 54, 12, 181, 221, 90, 123,\n\t\t161, 172, 227, 100, 44, 238, 8, 245, 73, 99, 135, 165, 216,\n\t\t158, 37, 43, 245, 26, 252, 219, 186, 89, 82, 214, 241, 163,\n\t\t69, 156, 132, 232, 82, 212, 113, 102, 24, 136, 62, 75, 82,\n\t\t26, 172, 105, 106, 118, 171, 108, 103, 80, 235, 29, 85, 69,\n\t\t45, 214, 122, 51, 36, 69, 45, 86, 74, 247, 35, 174, 147, 149,\n\t\t38, 187, 87, 249, 108, 255, 164, 172, 81, 107, 191, 149, 126,\n\t\t10, 54, 231, 42, 154, 55, 223, 80, 185, 33, 236, 133, 166,\n\t\t45, 120, 33, 143, 158, 97, 246, 246, 106, 133, 69, 8, 151,\n\t\t33, 156, 96, 148, 154, 134, 28, 65, 252, 144, 21, 209, 82,\n\t\t180, 248, 121, 227, 182, 164, 172, 106, 52, 82, 21, 163, 110,\n\t\t208, 84, 131, 72, 101, 52, 168, 53, 1, 90, 11, 155, 140, 38,\n\t\t100, 29, 26, 90, 216, 34, 1, 147, 200, 110, 210, 204, 113,\n\t\t233, 36, 77, 73, 161, 53, 61, 137, 193, 41, 119, 84, 209,\n\t\t248, 102, 163, 9, 217, 47, 247, 245, 218, 212, 251, 58, 166,\n\t\t255, 82, 169, 59, 51, 215, 83, 86, 244, 120, 92, 235, 81,\n\t\t8, 14, 186, 71, 127, 52, 33, 211, 114, 143, 102, 50, 41, 222,\n\t\t165, 223, 210, 101, 41, 233, 148, 95, 244, 121, 106, 244,\n\t\t249, 23, 134, 196, 129, 249, 72, 29, 107, 72, 231, 96, 237,\n\t\t199, 43, 159, 186, 29, 142, 205, 58, 134, 74, 133, 31, 243,\n\t\t185, 82, 75, 247, 44, 67, 182, 155, 247, 28, 73, 42, 178,\n\t\t144, 60, 141, 49, 84, 235, 188, 55, 67, 50, 129, 247, 41,\n\t\t185, 13, 39, 45, 28, 76, 150, 193, 81, 6, 79, 153, 105, 142,\n\t\t202, 146, 171, 63, 86, 81, 47, 136, 231, 136, 76, 70, 44,\n\t\t159, 59, 50, 9, 192, 5, 213, 175, 123, 9, 13, 98, 199, 37,\n\t\t183, 6, 118, 158, 219, 118, 14, 167, 109, 28, 95, 37, 29,\n\t\t194, 152, 14, 233, 142, 53, 212, 241, 11, 115, 27, 142, 195,\n\t\t86, 59, 155, 106, 226, 234, 104, 120, 76, 34, 192, 100, 3,\n\t\t210, 42, 229, 176, 113, 106, 251, 228, 56, 4, 235, 63, 89,\n\t\t50, 191, 37, 230, 54, 22, 239, 198, 252, 29, 230, 69, 134,\n\t\t99, 50, 33, 167, 124, 211, 172, 226, 132, 157, 195, 49, 177,\n\t\t158, 49, 182, 18, 227, 92, 37, 49, 139, 231, 113, 208, 235,\n\t\t142, 45, 143, 177, 213, 240, 246, 109, 107, 136, 79, 41, 127,\n\t\t4, 214, 243, 226, 148, 217, 182, 178, 78, 227, 32, 120, 124,\n\t\t3, 186, 187, 231, 126, 206, 82, 118, 230, 135, 244, 99, 28,\n\t\t209, 178, 213, 41, 53, 131, 245, 150, 41, 113, 53, 108, 111,\n\t\t194, 169, 177, 76, 124, 63, 172, 68, 225, 61, 33, 41, 102,\n\t\t22, 248, 163, 8, 145, 60, 33, 203, 0, 34, 72, 123, 250, 21,\n\t\t102, 247, 148, 13, 148, 233, 239, 59, 47, 118, 66, 159, 83,\n\t\t164, 210, 253, 110, 214, 124, 191, 107, 116, 61, 33, 239,\n\t\t98, 153, 100, 208, 184, 237, 229, 103, 93, 51, 107, 78, 207,\n\t\t79, 143, 226, 229, 146, 186, 207, 163, 241, 37, 57, 225, 156,\n\t\t141, 211, 203, 82, 154, 160, 142, 212, 233, 137, 80, 204,\n\t\t192, 203, 237, 69, 113, 4, 78, 175, 20, 146, 90, 147, 175,\n\t\t173, 221, 170, 153, 32, 208, 196, 68, 16, 43, 85, 195, 87,\n\t\t110, 159, 206, 62, 121, 38, 219, 133, 134, 72, 149, 190, 57,\n\t\t45, 57, 19, 191, 152, 137, 175, 102, 226, 171, 153, 248, 149,\n\t\t153, 152, 163, 140, 51, 86, 12, 83, 97, 5, 122, 93, 232, 230,\n\t\t249, 247, 47, 70, 41, 125, 116, 252, 203, 47, 105, 121, 80,\n\t\t200, 207, 124, 113, 200, 75, 131, 81, 184, 30, 210, 71, 126,\n\t\t116, 81, 178, 149, 88, 140, 84, 112, 186, 231, 156, 3, 143,\n\t\t156, 128, 159, 169, 69, 53, 16, 22, 58, 166, 47, 41, 179,\n\t\t128, 132, 163, 133, 54, 23, 25, 159, 132, 228, 48, 36, 161,\n\t\t109, 15, 13, 91, 142, 195, 144, 156, 144, 16, 254, 192, 147,\n\t\t59, 204, 18, 12, 160, 243, 80, 220, 187, 10, 47, 213, 195,\n\t\t80, 152, 123, 216, 42, 120, 111, 32, 143, 156, 53, 196, 63,\n\t\t255, 169, 68, 77, 147, 38, 231, 8, 10, 231, 36, 0, 23, 253,\n\t\t152, 78, 66, 18, 216, 118, 142, 85, 223, 36, 65, 73, 77, 17,\n\t\t226, 18, 121, 215, 47, 145, 87, 91, 34, 46, 158, 134, 198,\n\t\t138, 204, 70, 24, 47, 157, 164, 35, 143, 67, 64, 238, 154,\n\t\t80, 79, 162, 136, 63, 252, 214, 167, 27, 206, 172, 87, 105,\n\t\t80, 237, 240, 115, 222, 192, 8, 219, 62, 33, 73, 0, 105, 41,\n\t\t216, 56, 132, 229, 144, 237, 108, 222, 16, 167, 125, 66, 66,\n\t\t94, 175, 246, 129, 87, 46, 2, 181, 79, 200, 10, 75, 233, 0,\n\t\t229, 161, 13, 38, 222, 233, 6, 16, 214, 240, 142, 2, 130,\n\t\t17, 71, 61, 212, 172, 11, 31, 209, 129, 191, 88, 252, 5, 243,\n\t\t252, 24, 255, 153, 243, 172, 205, 68, 197, 107, 47, 23, 51,\n\t\t231, 181, 47, 6, 247, 23, 76, 237, 213, 95, 59, 181, 160,\n\t\t41, 183, 5, 107, 181, 229, 227, 164, 58, 73, 135, 221, 4,\n\t\t83, 91, 240, 199, 201, 28, 83, 97, 165, 149, 160, 247, 230,\n\t\t154, 27, 163, 252, 11, 0, 244, 225, 175, 5, 144, 251, 179,\n\t\t0, 58, 84, 0, 106, 72, 27, 80, 102, 27, 215, 163, 42, 35,\n\t\t251, 39, 128, 103, 253, 87, 65, 39, 73, 21, 18, 149, 180,\n\t\t209, 48, 222, 91, 33, 30, 93, 150, 241, 168, 68, 124, 75,\n\t\t141, 248, 36, 25, 119, 220, 171, 45, 219, 2, 105, 211, 10,\n\t\t186, 163, 101, 111, 86, 166, 78, 188, 140, 210, 77, 180, 215,\n\t\t71, 106, 47, 235, 27, 4, 174, 129, 68, 232, 9, 157, 58, 105,\n\t\t186, 137, 19, 215, 152, 80, 23, 39, 180, 105, 156, 208, 230,\n\t\t71, 38, 52, 218, 244, 28, 232, 254, 248, 132, 68, 253, 27,\n\t\t78, 72, 82, 175, 89, 232, 203, 233, 76, 27, 39, 50, 109, 156,\n\t\t200, 247, 140, 109, 66, 190, 240, 177, 77, 249, 216, 70, 83,\n\t\t177, 96, 251, 228, 77, 12, 159, 113, 13, 234, 97, 241, 171,\n\t\t195, 140, 51, 166, 198, 105, 148, 104, 144, 3, 218, 195, 254,\n\t\t8, 165, 117, 170, 52, 81, 199, 73, 213, 95, 46, 192, 110,\n\t\t48, 47, 203, 219, 152, 32, 87, 102, 27, 106, 155, 24, 231,\n\t\t122, 221, 2, 214, 185, 165, 83, 148, 233, 158, 215, 106, 166,\n\t\t52, 89, 211, 228, 185, 74, 25, 92, 71, 38, 19, 114, 229, 200,\n\t\t81, 171, 196, 194, 56, 108, 96, 21, 119, 43, 218, 235, 254,\n\t\t242, 11, 237, 57, 57, 97, 21, 219, 205, 119, 116, 150, 198,\n\t\t243, 11, 202, 120, 247, 114, 53, 183, 118, 228, 58, 204, 17,\n\t\t10, 253, 166, 36, 70, 150, 240, 84, 178, 134, 186, 51, 185,\n\t\t47, 86, 28, 48, 188, 177, 171, 235, 89, 164, 171, 50, 91,\n\t\t200, 199, 154, 142, 174, 170, 54, 189, 154, 79, 16, 44, 158,\n\t\t90, 135, 133, 244, 146, 187, 184, 190, 159, 139, 166, 126,\n\t\t46, 202, 253, 212, 178, 187, 200, 222, 204, 188, 46, 141,\n\t\t8, 218, 204, 235, 82, 37, 113, 133, 241, 178, 202, 149, 52,\n\t\t172, 78, 77, 36, 125, 185, 102, 215, 251, 105, 73, 3, 177,\n\t\t71, 78, 23, 168, 239, 104, 212, 2, 107, 126, 43, 7, 202, 231,\n\t\t226, 132, 208, 234, 23, 192, 76, 73, 17, 3, 195, 106, 173,\n\t\t20, 206, 227, 230, 189, 154, 19, 231, 29, 7, 25, 68, 193,\n\t\t214, 142, 75, 100, 202, 236, 219, 228, 6, 110, 62, 128, 218,\n\t\t210, 240, 81, 184, 25, 184, 219, 71, 81, 39, 125, 230, 80,\n\t\t132, 194, 233, 59, 70, 97, 36, 28, 226, 253, 207, 50, 56,\n\t\t216, 14, 126, 51, 67, 145, 236, 185, 178, 21, 174, 153, 182,\n\t\t162, 189, 188, 187, 23, 49, 172, 175, 153, 174, 166, 221,\n\t\t162, 179, 60, 183, 225, 107, 40, 211, 190, 23, 36, 32, 135,\n\t\t179, 150, 59, 6, 150, 248, 33, 177, 115, 120, 30, 142, 246,\n\t\t41, 177, 210, 149, 19, 89, 54, 60, 9, 71, 19, 10, 79, 183,\n\t\t184, 66, 28, 83, 96, 240, 52, 150, 110, 16, 239, 195, 209,\n\t\t211, 144, 88, 243, 192, 73, 83, 116, 93, 179, 225, 205, 117,\n\t\t149, 227, 80, 86, 126, 17, 142, 222, 132, 196, 114, 253, 212,\n\t\t153, 113, 28, 100, 195, 103, 209, 28, 187, 90, 241, 150, 222,\n\t\t134, 163, 19, 10, 207, 182, 180, 247, 54, 4, 6, 194, 197,\n\t\t49, 9, 29, 188, 36, 19, 81, 145, 191, 180, 40, 203, 158, 133,\n\t\t96, 205, 185, 156, 107, 193, 84, 166, 216, 126, 215, 118,\n\t\t25, 180, 199, 88, 162, 189, 28, 95, 10, 48, 205, 50, 198,\n\t\t98, 14, 168, 87, 173, 170, 50, 149, 70, 146, 99, 215, 44,\n\t\t25, 50, 228, 14, 115, 27, 62, 52, 14, 233, 125, 72, 132, 39,\n\t\t72, 71, 122, 130, 124, 137, 68, 204, 160, 115, 244, 8, 225,\n\t\t3, 252, 88, 174, 88, 83, 71, 189, 159, 234, 61, 157, 37, 82,\n\t\t143, 62, 209, 175, 156, 132, 88, 105, 104, 169, 139, 189,\n\t\t131, 210, 135, 208, 85, 31, 142, 158, 150, 62, 4, 75, 171,\n\t\t182, 127, 249, 251, 203, 192, 178, 243, 28, 152, 119, 189,\n\t\t150, 172, 228, 205, 39, 200, 163, 255, 149, 14, 29, 165, 50,\n\t\t84, 248, 41, 136, 19, 63, 90, 150, 75, 206, 229, 219, 106,\n\t\t233, 199, 65, 108, 152, 225, 99, 209, 25, 127, 53, 188, 213,\n\t\t87, 69, 14, 212, 110, 42, 149, 82, 123, 76, 220, 70, 86, 103,\n\t\t38, 244, 192, 140, 37, 254, 44, 99, 52, 29, 30, 243, 53, 211,\n\t\t63, 165, 234, 23, 125, 132, 188, 145, 89, 46, 4, 217, 251,\n\t\t0, 244, 136, 179, 4, 116, 103, 183, 6, 128, 115, 206, 146,\n\t\t28, 34, 111, 251, 42, 158, 38, 126, 232, 36, 154, 155, 180,\n\t\t86, 242, 183, 92, 80, 204, 78, 100, 126, 79, 245, 27, 89,\n\t\t66, 146, 73, 253, 93, 254, 22, 95, 159, 71, 139, 88, 127,\n\t\t242, 249, 15, 201, 77, 56, 73, 100, 64, 223, 218, 200, 223,\n\t\t18, 150, 34, 197, 142, 250, 232, 138, 159, 234, 91, 114, 97,\n\t\t124, 73, 46, 44, 165, 73, 90, 122, 69, 222, 156, 0, 127, 85,\n\t\t243, 219, 4, 126, 116, 97, 229, 57, 36, 101, 152, 172, 133,\n\t\t99, 40, 154, 86, 189, 136, 128, 121, 64, 189, 130, 105, 233,\n\t\t28, 115, 194, 254, 33, 148, 198, 4, 51, 22, 89, 152, 14, 76,\n\t\t60, 239, 226, 74, 88, 144, 244, 240, 65, 132, 237, 83, 91,\n\t\t1, 146, 158, 122, 198, 224, 14, 47, 66, 82, 122, 3, 199, 69,\n\t\t246, 87, 18, 141, 38, 228, 85, 8, 31, 67, 72, 132, 75, 189,\n\t\t221, 235, 142, 195, 225, 17, 249, 253, 125, 40, 186, 178,\n\t\t118, 162, 158, 83, 173, 70, 71, 73, 79, 109, 2, 85, 195, 122,\n\t\t29, 243, 238, 17, 25, 56, 189, 238, 88, 183, 16, 103, 140,\n\t\t243, 126, 188, 37, 143, 239, 53, 206, 118, 125, 26, 154, 29,\n\t\t20, 175, 109, 72, 140, 205, 136, 24, 193, 169, 31, 63, 141,\n\t\t225, 94, 134, 144, 120, 132, 217, 34, 152, 90, 230, 181, 32,\n\t\t55, 125, 238, 36, 126, 243, 61, 164, 29, 106, 23, 230, 16,\n\t\t183, 213, 20, 115, 146, 213, 230, 222, 40, 243, 72, 236, 17,\n\t\t223, 179, 109, 72, 189, 118, 255, 72, 206, 105, 118, 22, 206,\n\t\t110, 122, 21, 205, 213, 223, 93, 71, 152, 48, 88, 67, 203,\n\t\t122, 168, 103, 224, 120, 112, 68, 126, 159, 123, 240, 14,\n\t\t215, 250, 75, 72, 190, 134, 156, 210, 16, 11, 217, 195, 93,\n\t\t190, 242, 156, 84, 16, 43, 21, 68, 14, 23, 244, 214, 105,\n\t\t70, 206, 66, 142, 210, 191, 125, 147, 207, 148, 63, 163, 103,\n\t\t216, 39, 116, 126, 156, 144, 231, 33, 136, 117, 76, 248, 171,\n\t\t144, 211, 59, 98, 117, 142, 226, 101, 199, 143, 44, 180, 73,\n\t\t183, 97, 209, 54, 241, 178, 172, 40, 1, 16, 180, 149, 46,\n\t\t139, 202, 42, 0, 146, 135, 84, 196, 187, 99, 217, 16, 182,\n\t\t213, 44, 209, 29, 175, 173, 212, 243, 34, 213, 129, 88, 186,\n\t\t163, 167, 86, 14, 107, 241, 140, 184, 23, 156, 225, 204, 203,\n\t\t97, 213, 214, 194, 73, 84, 26, 219, 178, 117, 83, 181, 12,\n\t\t192, 168, 76, 254, 136, 87, 188, 132, 12, 10, 65, 162, 145,\n\t\t32, 203, 103, 156, 144, 131, 131, 247, 19, 124, 63, 106, 211,\n\t\t157, 174, 0, 4, 6, 222, 177, 108, 216, 180, 245, 93, 165,\n\t\t166, 156, 30, 16, 117, 109, 52, 245, 144, 91, 240, 57, 231,\n\t\t112, 37, 158, 87, 129, 51, 167, 158, 112, 216, 176, 225, 194,\n\t\t67, 6, 67, 89, 139, 89, 54, 188, 22, 197, 214, 78, 144, 113,\n\t\t14, 99, 210, 4, 155, 206, 1, 97, 28, 179, 228, 176, 191, 229,\n\t\t156, 105, 214, 99, 226, 92, 77, 89, 188, 58, 77, 226, 149,\n\t\t179, 212, 233, 239, 4, 27, 114, 217, 218, 192, 62, 57, 118,\n\t\t224, 48, 81, 209, 7, 247, 188, 209, 132, 92, 226, 198, 183,\n\t\t152, 147, 160, 70, 93, 142, 242, 147, 141, 194, 219, 81, 227,\n\t\t80, 39, 100, 223, 3, 9, 70, 152, 144, 243, 12, 38, 158, 248,\n\t\t203, 96, 79, 220, 104, 157, 255, 105, 180, 250, 121, 133,\n\t\t168, 250, 110, 181, 4, 174, 119, 169, 12, 243, 87, 210, 28,\n\t\t252, 59, 200, 51, 150, 124, 139, 179, 47, 21, 67, 128, 84,\n\t\t251, 60, 53, 150, 188, 84, 218, 216, 11, 213, 58, 106, 235,\n\t\t151, 202, 199, 226, 101, 181, 236, 91, 39, 240, 93, 177, 174,\n\t\t213, 193, 200, 247, 213, 26, 175, 169, 227, 162, 91, 80, 169,\n\t\t124, 34, 223, 254, 36, 11, 114, 32, 78, 248, 25, 189, 228,\n\t\t220, 253, 73, 149, 33, 49, 121, 15, 223, 229, 220, 136, 154,\n\t\t86, 150, 128, 9, 145, 44, 1, 61, 162, 130, 79, 1, 92, 175,\n\t\t3, 15, 140, 217, 101, 9, 8, 192, 115, 54, 230, 180, 101, 27,\n\t\t110, 188, 38, 177, 134, 35, 237, 69, 156, 132, 187, 243, 56,\n\t\t98, 73, 28, 236, 90, 59, 152, 193, 47, 20, 172, 247, 113,\n\t\t99, 99, 239, 67, 82, 127, 171, 249, 27, 121, 3, 109, 249,\n\t\t233, 46, 142, 209, 26, 242, 71, 63, 18, 63, 100, 168, 168,\n\t\t195, 70, 198, 66, 176, 21, 231, 30, 156, 212, 216, 138, 234,\n\t\t64, 5, 77, 137, 10, 38, 1, 46, 60, 18, 245, 20, 196, 108,\n\t\t32, 116, 20, 245, 56, 176, 56, 33, 210, 125, 53, 4, 244, 192,\n\t\t133, 82, 140, 15, 227, 63, 228, 182, 149, 212, 164, 96, 248,\n\t\t212, 11, 197, 95, 49, 202, 252, 144, 30, 197, 243, 194, 188,\n\t\t207, 114, 229, 219, 221, 0, 95, 23, 69, 75, 37, 228, 251,\n\t\t73, 28, 49, 79, 127, 192, 164, 222, 242, 139, 25, 29, 196,\n\t\t194, 140, 239, 74, 185, 68, 11, 166, 110, 195, 127, 136, 247,\n\t\t199, 89, 56, 51, 24, 193, 72, 252, 20, 223, 158, 132, 142,\n\t\t95, 12, 144, 226, 47, 241, 197, 76, 178, 152, 37, 129, 102,\n\t\t101, 157, 100, 238, 25, 124, 44, 254, 148, 227, 42, 66, 247,\n\t\t88, 140, 6, 53, 198, 17, 25, 44, 43, 207, 9, 70, 91, 198,\n\t\t203, 255, 199, 14, 172, 29, 65, 221, 55, 30, 76, 61, 136,\n\t\t122, 190, 107, 3, 242, 112, 167, 252, 23, 242, 112, 128, 95,\n\t\t95, 243, 223, 184, 151, 229, 139, 43, 254, 194, 56, 21, 242,\n\t\t245, 17, 127, 45, 207, 141, 124, 117, 44, 171, 202, 67, 129,\n\t\t108, 100, 84, 226, 203, 114, 120, 188, 133, 92, 116, 61, 56,\n\t\t244, 200, 132, 44, 61, 140, 115, 219, 115, 122, 146, 98, 218,\n\t\t168, 107, 135, 175, 222, 232, 177, 71, 76, 54, 195, 202, 109,\n\t\t56, 107, 229, 69, 12, 164, 167, 162, 236, 99, 11, 7, 158,\n\t\t13, 79, 218, 106, 9, 148, 42, 203, 63, 109, 29, 45, 2, 211,\n\t\t245, 36, 171, 36, 185, 46, 17, 198, 204, 146, 172, 20, 231,\n\t\t155, 132, 242, 20, 33, 241, 220, 227, 135, 200, 243, 136,\n\t\t165, 110, 207, 119, 21, 105, 15, 61, 82, 106, 71, 190, 231,\n\t\t181, 214, 30, 156, 121, 68, 115, 74, 22, 31, 57, 231, 92,\n\t\t87, 30, 9, 60, 44, 241, 85, 183, 171, 78, 199, 119, 180, 171,\n\t\t1, 137, 237, 82, 108, 119, 225, 9, 118, 48, 183, 225, 253,\n\t\t118, 218, 255, 230, 134, 180, 255, 52, 161, 107, 26, 177,\n\t\t3, 177, 81, 11, 210, 255, 162, 157, 243, 142, 22, 190, 230,\n\t\t187, 63, 183, 118, 243, 194, 35, 39, 156, 8, 148, 200, 2,\n\t\t203, 69, 14, 220, 27, 212, 154, 123, 126, 224, 38, 52, 82,\n\t\t117, 158, 121, 163, 23, 30, 41, 83, 11, 93, 6, 9, 71, 232,\n\t\t167, 136, 237, 144, 54, 196, 1, 29, 254, 161, 51, 255, 10,\n\t\t153, 96, 237, 167, 254, 204, 15, 124, 118, 53, 156, 165, 176,\n\t\t241, 153, 39, 108, 144, 57, 149, 184, 53, 200, 109, 248, 114,\n\t\t131, 113, 97, 203, 114, 76, 239, 4, 27, 232, 250, 107, 203,\n\t\t134, 151, 91, 32, 126, 216, 116, 51, 112, 251, 223, 73, 28,\n\t\t125, 227, 104, 91, 88, 61, 118, 237, 219, 126, 143, 209, 148,\n\t\t17, 102, 143, 81, 239, 205, 233, 205, 144, 97, 142, 165, 166,\n\t\t234, 255, 72, 255, 70, 62, 59, 107, 39, 157, 39, 254, 138,\n\t\t13, 191, 241, 42, 67, 142, 163, 255, 113, 219, 99, 97, 96,\n\t\t54, 247, 159, 141, 114, 104, 20, 70, 172, 51, 207, 79, 59,\n\t\t126, 218, 113, 162, 206, 251, 233, 180, 179, 166, 115, 22,\n\t\t39, 189, 206, 105, 64, 157, 148, 118, 178, 148, 118, 86, 113,\n\t\t194, 210, 78, 156, 116, 54, 116, 214, 153, 171, 248, 132,\n\t\t105, 199, 143, 82, 70, 29, 183, 103, 217, 255, 153, 143, 78,\n\t\t104, 195, 94, 73, 214, 157, 57, 9, 19, 166, 215, 57, 124,\n\t\t168, 131, 68, 24, 27, 181, 0, 234, 75, 72, 168, 76, 147, 156,\n\t\t140, 104, 207, 88, 83, 212, 167, 43, 102, 218, 136, 158, 21,\n\t\t214, 163, 103, 225, 241, 143, 128, 246, 74, 11, 60, 126, 229,\n\t\t13, 23, 115, 112, 196, 225, 249, 216, 186, 86, 180, 55, 27,\n\t\t163, 16, 64, 85, 60, 113, 6, 180, 55, 179, 109, 46, 65, 51,\n\t\t172, 204, 102, 13, 71, 67, 12, 14, 169, 187, 49, 236, 94,\n\t\t55, 7, 58, 107, 15, 225, 196, 102, 132, 218, 227, 9, 249,\n\t\t200, 185, 222, 151, 33, 32, 49, 231, 162, 161, 86, 212, 189,\n\t\t71, 245, 36, 7, 39, 199, 228, 47, 61, 176, 156, 196, 119,\n\t\t118, 3, 103, 70, 3, 11, 212, 167, 79, 252, 227, 7, 79, 166,\n\t\t95, 54, 100, 69, 163, 138, 231, 187, 46, 141, 44, 176, 88,\n\t\t146, 81, 19, 17, 254, 63, 255, 187, 37, 176, 138, 13, 145,\n\t\t8, 104, 22, 205, 70, 167, 20, 146, 89, 27, 144, 222, 135,\n\t\t132, 237, 88, 187, 214, 206, 54, 206, 225, 127, 52, 141, 208,\n\t\t77, 52, 63, 168, 40, 66, 250, 157, 219, 224, 212, 225, 35,\n\t\t118, 247, 57, 97, 176, 152, 219, 99, 177, 19, 103, 96, 185,\n\t\t126, 186, 10, 156, 43, 11, 172, 40, 142, 16, 246, 195, 16,\n\t\t146, 145, 1, 61, 76, 79, 80, 218, 176, 162, 49, 86, 57, 6,\n\t\t230, 102, 147, 121, 45, 81, 183, 35, 84, 195, 44, 113, 162,\n\t\t212, 231, 181, 105, 228, 162, 138, 152, 244, 145, 247, 38,\n\t\t139, 57, 178, 28, 69, 64, 123, 98, 131, 51, 210, 27, 132,\n\t\t35, 53, 11, 44, 196, 12, 150, 13, 90, 75, 37, 94, 40, 61,\n\t\t21, 254, 218, 149, 195, 241, 103, 188, 10, 110, 96, 225, 125,\n\t\t239, 184, 212, 170, 158, 58, 252, 146, 122, 241, 198, 2, 14,\n\t\t148, 153, 200, 220, 6, 19, 146, 204, 84, 111, 64, 123, 188,\n\t\t119, 251, 147, 230, 104, 63, 204, 121, 239, 37, 249, 193,\n\t\t129, 8, 18, 161, 223, 200, 218, 160, 78, 205, 220, 142, 239,\n\t\t248, 129, 114, 102, 34, 254, 217, 62, 161, 248, 132, 1, 177,\n\t\t4, 197, 192, 166, 252, 89, 57, 19, 119, 188, 229, 164, 78,\n\t\t72, 54, 131, 89, 10, 19, 242, 214, 131, 8, 38, 228, 179, 7,\n\t\t20, 38, 228, 11, 63, 116, 207, 60, 145, 139, 149, 248, 51,\n\t\t27, 230, 51, 36, 10, 28, 175, 91, 54, 164, 173, 135, 104,\n\t\t66, 230, 51, 149, 52, 96, 209, 90, 234, 102, 130, 149, 13,\n\t\t193, 172, 44, 73, 229, 224, 110, 233, 249, 157, 215, 96, 42,\n\t\t34, 210, 1, 206, 32, 152, 181, 138, 23, 203, 36, 206, 86,\n\t\t136, 59, 204, 81, 136, 44, 128, 56, 145, 176, 173, 83, 169,\n\t\t180, 203, 66, 84, 47, 20, 212, 157, 130, 82, 189, 176, 156,\n\t\t203, 135, 222, 246, 81, 235, 225, 112, 65, 199, 241, 35, 154,\n\t\t236, 46, 130, 204, 119, 113, 76, 106, 16, 179, 38, 4, 221,\n\t\t185, 164, 77, 114, 153, 160, 137, 22, 102, 73, 88, 89, 130,\n\t\t216, 218, 57, 172, 197, 214, 120, 63, 181, 114, 88, 137, 231,\n\t\t253, 56, 176, 114, 88, 182, 78, 112, 142, 179, 219, 143, 179,\n\t\t136, 13, 41, 164, 243, 132, 210, 104, 202, 197, 82, 76, 252,\n\t\t210, 173, 215, 211, 106, 140, 162, 108, 211, 165, 136, 216,\n\t\t1, 129, 191, 140, 222, 167, 40, 170, 107, 65, 221, 184, 38,\n\t\t41, 10, 77, 195, 114, 33, 227, 202, 164, 40, 52, 113, 203,\n\t\t133, 140, 235, 147, 162, 208, 209, 82, 23, 106, 148, 246,\n\t\t113, 72, 129, 42, 195, 39, 185, 249, 185, 73, 138, 20, 171,\n\t\t215, 205, 82, 148, 186, 110, 154, 162, 212, 117, 243, 20,\n\t\t165, 174, 153, 168, 28, 86, 105, 166, 211, 159, 156, 105,\n\t\t226, 210, 228, 218, 137, 242, 66, 215, 206, 147, 23, 186,\n\t\t118, 154, 188, 208, 117, 179, 196, 33, 149, 38, 121, 245,\n\t\t115, 147, 92, 101, 65, 112, 221, 28, 121, 153, 235, 166, 200,\n\t\t203, 92, 55, 67, 94, 230, 154, 9, 226, 112, 74, 243, 187,\n\t\t248, 217, 249, 165, 222, 245, 243, 75, 189, 235, 231, 151,\n\t\t122, 215, 207, 47, 245, 174, 157, 95, 234, 149, 231, 247,\n\t\t250, 231, 230, 183, 241, 93, 118, 237, 4, 177, 208, 117, 51,\n\t\t196, 66, 215, 77, 17, 11, 93, 51, 71, 49, 164, 210, 36, 39,\n\t\t91, 38, 169, 179, 243, 197, 129, 184, 149, 40, 35, 176, 107,\n\t\t168, 234, 67, 85, 247, 29, 239, 85, 215, 157, 144, 215, 51,\n\t\t25, 8, 77, 151, 56, 65, 20, 97, 20, 217, 212, 138, 156, 102,\n\t\t70, 56, 181, 9, 185, 106, 40, 144, 154, 157, 92, 212, 59,\n\t\t73, 76, 29, 241, 132, 76, 107, 37, 246, 56, 74, 54, 74, 116,\n\t\t117, 137, 38, 96, 114, 73, 17, 107, 20, 10, 96, 14, 208, 253,\n\t\t89, 93, 249, 56, 98, 61, 131, 188, 41, 222, 64, 208, 225,\n\t\t192, 218, 33, 19, 242, 98, 46, 2, 143, 54, 42, 82, 185, 168,\n\t\t192, 132, 222, 212, 216, 120, 182, 109, 239, 220, 172, 162,\n\t\t249, 161, 105, 113, 245, 148, 149, 1, 193, 126, 28, 12, 244,\n\t\t75, 39, 33, 214, 192, 42, 160, 116, 167, 244, 229, 142, 241,\n\t\t229, 110, 233, 203, 93, 227, 203, 189, 210, 151, 123, 198,\n\t\t151, 251, 165, 47, 247, 141, 47, 15, 74, 95, 30, 24, 95, 126,\n\t\t45, 125, 249, 213, 248, 242, 247, 210, 151, 191, 27, 95, 126,\n\t\t43, 125, 249, 205, 248, 50, 232, 151, 167, 218, 55, 191, 85,\n\t\t192, 96, 194, 97, 80, 6, 196, 224, 78, 179, 205, 132, 147,\n\t\t177, 216, 178, 209, 23, 94, 24, 116, 92, 114, 86, 83, 50,\n\t\t8, 89, 2, 138, 161, 80, 143, 211, 80, 63, 190, 15, 138, 199,\n\t\t20, 31, 77, 237, 141, 38, 190, 89, 2, 154, 92, 235, 103, 209,\n\t\t140, 166, 189, 197, 51, 54, 164, 40, 154, 122, 148, 53, 37,\n\t\t197, 84, 143, 178, 158, 36, 182, 89, 2, 146, 76, 200, 39,\n\t\t81, 73, 146, 32, 249, 36, 170, 72, 210, 133, 79, 136, 120,\n\t\t229, 147, 170, 129, 72, 93, 62, 169, 26, 72, 12, 178, 4, 138,\n\t\t99, 149, 37, 160, 144, 154, 122, 20, 13, 40, 164, 169, 30,\n\t\t69, 19, 10, 223, 102, 73, 14, 123, 77, 135, 16, 239, 29, 170,\n\t\t34, 32, 90, 65, 238, 90, 67, 126, 84, 104, 207, 225, 98, 121,\n\t\t14, 71, 205, 103, 88, 64, 176, 118, 134, 197, 107, 107, 135,\n\t\t236, 205, 202, 7, 116, 103, 235, 193, 19, 72, 79, 111, 62,\n\t\t171, 47, 5, 105, 241, 94, 111, 60, 107, 80, 122, 175, 55,\n\t\t157, 117, 167, 244, 94, 159, 61, 235, 110, 233, 189, 62, 121,\n\t\t214, 189, 210, 123, 125, 238, 172, 251, 165, 247, 250, 212,\n\t\t89, 15, 74, 239, 245, 153, 179, 126, 45, 189, 215, 39, 206,\n\t\t250, 123, 233, 189, 62, 111, 214, 111, 229, 121, 21, 19, 30,\n\t\t244, 107, 10, 130, 193, 192, 146, 39, 37, 135, 243, 217, 118,\n\t\t147, 153, 73, 188, 166, 117, 232, 241, 183, 117, 216, 241,\n\t\t183, 117, 200, 241, 183, 117, 184, 241, 183, 117, 168, 241,\n\t\t183, 117, 152, 241, 183, 117, 136, 241, 183, 117, 120, 241,\n\t\t183, 117, 104, 241, 183, 117, 88, 225, 44, 202, 144, 42, 222,\n\t\t27, 211, 27, 212, 33, 120, 199, 202, 115, 56, 216, 34, 229,\n\t\t243, 179, 101, 108, 223, 99, 194, 240, 38, 101, 43, 33, 233,\n\t\t48, 113, 48, 62, 134, 132, 150, 73, 208, 118, 226, 114, 22,\n\t\t175, 244, 96, 83, 230, 36, 234, 250, 107, 226, 187, 110, 80,\n\t\t220, 65, 205, 41, 198, 121, 168, 206, 133, 70, 46, 223, 14,\n\t\t145, 208, 14, 192, 73, 105, 82, 20, 204, 11, 72, 113, 15,\n\t\t212, 22, 56, 5, 103, 117, 48, 35, 20, 99, 248, 202, 108, 54,\n\t\t167, 13, 135, 188, 136, 107, 7, 177, 16, 232, 39, 51, 184,\n\t\t228, 2, 61, 204, 71, 183, 186, 137, 121, 227, 20, 247, 36,\n\t\t198, 1, 249, 52, 13, 213, 211, 196, 85, 79, 71, 75, 245, 244,\n\t\t62, 64, 51, 98, 57, 162, 99, 66, 252, 209, 17, 249, 125, 62,\n\t\t118, 120, 163, 203, 25, 172, 103, 176, 154, 217, 246, 240,\n\t\t7, 154, 133, 27, 205, 127, 127, 134, 147, 247, 249, 162, 29,\n\t\t19, 146, 141, 112, 14, 138, 42, 128, 122, 196, 238, 20, 61,\n\t\t209, 143, 216, 161, 162, 38, 55, 237, 241, 72, 244, 152, 201,\n\t\t30, 29, 209, 163, 32, 14, 32, 30, 176, 55, 65, 76, 228, 3,\n\t\t246, 36, 72, 201, 182, 126, 76, 133, 54, 43, 20, 218, 89,\n\t\t242, 80, 97, 107, 7, 131, 195, 150, 176, 181, 147, 16, 142,\n\t\t176, 121, 235, 10, 93, 59, 37, 132, 125, 62, 19, 100, 58,\n\t\t7, 71, 14, 58, 81, 131, 78, 61, 57, 232, 212, 147, 131, 78,\n\t\t61, 57, 232, 212, 147, 131, 78, 175, 89, 142, 159, 27, 116,\n\t\t234, 93, 55, 232, 68, 14, 58, 146, 107, 43, 40, 55, 200, 39,\n\t\t177, 178, 130, 220, 171, 39, 177, 174, 130, 216, 255, 85,\n\t\t35, 199, 230, 155, 135, 190, 157, 64, 242, 122, 135, 126,\n\t\t82, 56, 76, 90, 11, 252, 245, 176, 248, 220, 64, 38, 249,\n\t\t235, 6, 42, 201, 95, 55, 16, 73, 254, 186, 129, 70, 242, 215,\n\t\t13, 36, 146, 191, 110, 160, 144, 252, 117, 3, 129, 228, 175,\n\t\t27, 232, 35, 127, 221, 64, 30, 113, 58, 13, 56, 95, 124, 40,\n\t\t35, 125, 227, 67, 49, 213, 193, 157, 186, 169, 165, 147, 50,\n\t\t69, 81, 237, 28, 34, 177, 63, 38, 228, 4, 245, 199, 254, 50,\n\t\t218, 77, 105, 176, 216, 181, 4, 62, 147, 156, 38, 200, 39,\n\t\t220, 47, 146, 61, 85, 79, 184, 95, 36, 115, 250, 201, 174,\n\t\t218, 64, 198, 61, 205, 189, 105, 179, 201, 38, 70, 202, 245,\n\t\t19, 147, 129, 66, 187, 8, 37, 5, 237, 110, 151, 102, 52, 29,\n\t\t146, 25, 143, 236, 107, 54, 209, 190, 32, 45, 85, 74, 131,\n\t\t223, 142, 232, 194, 184, 177, 224, 63, 170, 240, 67, 103,\n\t\t94, 205, 146, 160, 233, 217, 39, 155, 67, 192, 180, 200, 20,\n\t\t176, 61, 190, 134, 93, 145, 218, 219, 97, 113, 94, 148, 18,\n\t\t183, 164, 118, 63, 21, 135, 68, 155, 7, 24, 226, 233, 227,\n\t\t132, 58, 133, 249, 51, 235, 57, 122, 180, 205, 237, 237, 147,\n\t\t25, 94, 158, 172, 173, 134, 86, 243, 28, 14, 127, 78, 191,\n\t\t225, 237, 221, 68, 169, 42, 74, 93, 167, 225, 16, 165, 174,\n\t\t83, 113, 136, 82, 215, 232, 56, 228, 176, 74, 74, 142, 199,\n\t\t63, 55, 211, 245, 141, 102, 186, 190, 209, 76, 215, 55, 154,\n\t\t233, 250, 38, 51, 93, 55, 204, 244, 235, 13, 212, 57, 175,\n\t\t227, 205, 15, 171, 115, 94, 199, 155, 183, 85, 53, 201, 227,\n\t\t54, 53, 201, 132, 28, 170, 79, 124, 108, 103, 149, 59, 22,\n\t\t208, 235, 153, 37, 160, 119, 128, 126, 22, 2, 158, 94, 206,\n\t\t226, 25, 197, 196, 181, 81, 119, 109, 212, 93, 27, 117, 215,\n\t\t70, 221, 117, 81, 55, 135, 231, 205, 242, 93, 149, 53, 182,\n\t\t62, 103, 41, 243, 23, 87, 104, 22, 70, 35, 182, 123, 189,\n\t\t170, 166, 83, 66, 80, 37, 93, 205, 86, 236, 80, 66, 69, 38,\n\t\t167, 188, 13, 127, 189, 46, 93, 185, 114, 110, 89, 188, 223,\n\t\t75, 226, 44, 42, 76, 203, 28, 241, 179, 138, 219, 102, 148,\n\t\t109, 40, 141, 10, 129, 235, 73, 35, 67, 44, 216, 224, 175,\n\t\t51, 56, 107, 188, 215, 74, 226, 141, 165, 140, 177, 10, 170,\n\t\t226, 51, 26, 166, 130, 172, 68, 61, 5, 122, 80, 143, 211,\n\t\t80, 63, 78, 92, 253, 120, 180, 212, 143, 138, 182, 16, 58,\n\t\t194, 22, 188, 162, 5, 175, 104, 193, 43, 90, 240, 138, 22,\n\t\t60, 221, 194, 205, 152, 212, 231, 130, 73, 69, 89, 38, 170,\n\t\t154, 218, 63, 221, 126, 157, 246, 100, 70, 208, 66, 140, 102,\n\t\t112, 60, 147, 105, 189, 223, 55, 221, 158, 201, 11, 176, 146,\n\t\t109, 247, 27, 125, 47, 246, 119, 43, 135, 23, 215, 220, 252,\n\t\t9, 37, 42, 56, 67, 20, 22, 152, 60, 82, 159, 103, 163, 9,\n\t\t121, 49, 131, 153, 7, 111, 102, 54, 188, 109, 235, 251, 76,\n\t\t145, 101, 213, 249, 179, 198, 146, 174, 159, 12, 153, 48,\n\t\t6, 93, 207, 242, 28, 190, 204, 70, 207, 102, 104, 150, 38,\n\t\t183, 97, 110, 195, 59, 163, 102, 98, 128, 195, 155, 149, 45,\n\t\t198, 102, 206, 252, 98, 41, 118, 158, 54, 192, 127, 58, 3,\n\t\t105, 86, 17, 98, 233, 207, 51, 120, 59, 35, 95, 102, 28, 106,\n\t\t101, 123, 46, 113, 253, 107, 216, 238, 167, 88, 129, 176,\n\t\t209, 215, 16, 38, 228, 141, 7, 202, 252, 95, 216, 59, 191,\n\t\t247, 164, 71, 87, 81, 195, 229, 157, 233, 161, 42, 123, 128,\n\t\t164, 193, 29, 154, 109, 243, 235, 230, 27, 251, 169, 7, 136,\n\t\t31, 48, 26, 232, 12, 219, 223, 39, 169, 135, 145, 0, 111,\n\t\t13, 248, 48, 31, 22, 213, 143, 98, 199, 53, 93, 154, 174,\n\t\t109, 160, 95, 105, 64, 123, 95, 203, 19, 248, 112, 123, 67,\n\t\t19, 18, 75, 176, 106, 179, 188, 142, 112, 235, 133, 206, 74,\n\t\t88, 35, 177, 228, 170, 227, 44, 29, 63, 234, 9, 19, 185, 234,\n\t\t224, 43, 120, 59, 68, 19, 141, 79, 198, 127, 200, 229, 179,\n\t\t28, 94, 138, 203, 121, 199, 178, 225, 85, 227, 45, 241, 132,\n\t\t60, 13, 193, 242, 18, 186, 176, 224, 246, 191, 27, 86, 83,\n\t\t202, 152, 74, 36, 138, 75, 40, 154, 93, 146, 219, 255, 72,\n\t\t111, 47, 193, 178, 236, 191, 208, 196, 138, 138, 209, 211,\n\t\t28, 62, 84, 12, 22, 62, 182, 29, 151, 19, 225, 160, 163, 125,\n\t\t44, 216, 122, 148, 121, 228, 227, 140, 124, 152, 217, 54,\n\t\t208, 181, 58, 184, 3, 43, 135, 104, 45, 142, 224, 122, 6,\n\t\t116, 109, 67, 162, 63, 222, 181, 114, 112, 138, 143, 201,\n\t\t218, 134, 172, 248, 201, 143, 171, 191, 70, 104, 6, 190, 101,\n\t\t67, 188, 222, 114, 254, 159, 51, 26, 86, 239, 253, 57, 138,\n\t\t61, 140, 134, 254, 186, 98, 1, 48, 95, 171, 51, 139, 52, 37,\n\t\t183, 33, 213, 111, 4, 193, 200, 109, 88, 180, 245, 214, 153,\n\t\t144, 120, 173, 14, 105, 245, 184, 70, 107, 126, 92, 231, 235,\n\t\t186, 67, 141, 181, 112, 210, 206, 194, 217, 13, 150, 232,\n\t\t220, 227, 172, 105, 135, 51, 245, 187, 151, 233, 174, 96,\n\t\t161, 133, 195, 141, 48, 94, 17, 141, 101, 229, 198, 158, 132,\n\t\t132, 246, 194, 116, 89, 42, 227, 96, 153, 180, 232, 80, 56,\n\t\t7, 177, 117, 225, 28, 68, 162, 17, 237, 121, 78, 234, 161,\n\t\t69, 38, 230, 223, 137, 51, 166, 130, 25, 9, 231, 19, 225,\n\t\t33, 196, 122, 158, 131, 129, 233, 150, 212, 21, 177, 128,\n\t\t210, 95, 126, 153, 16, 127, 14, 150, 71, 29, 215, 2, 218,\n\t\t99, 206, 50, 181, 191, 125, 187, 37, 222, 46, 210, 30, 117,\n\t\t57, 134, 97, 50, 168, 143, 93, 32, 36, 126, 212, 84, 103,\n\t\t86, 253, 168, 68, 185, 13, 129, 88, 221, 44, 176, 108, 112,\n\t\t235, 240, 110, 96, 203, 106, 142, 17, 104, 44, 233, 148, 221,\n\t\t11, 132, 177, 99, 133, 119, 195, 119, 55, 119, 131, 44, 10,\n\t\t242, 214, 214, 180, 222, 218, 154, 138, 66, 63, 234, 167,\n\t\t16, 174, 71, 122, 84, 3, 80, 45, 14, 160, 213, 91, 1, 167,\n\t\t202, 121, 51, 111, 221, 204, 155, 53, 136, 75, 252, 173, 56,\n\t\t6, 77, 212, 189, 236, 48, 24, 248, 41, 19, 246, 55, 200, 156,\n\t\t104, 163, 172, 194, 75, 144, 25, 230, 254, 152, 238, 4, 33,\n\t\t131, 153, 29, 248, 19, 190, 172, 180, 178, 43, 166, 168, 10,\n\t\t197, 202, 219, 12, 187, 126, 129, 105, 86, 74, 110, 134, 200,\n\t\t60, 134, 173, 188, 35, 110, 241, 100, 6, 245, 193, 50, 251,\n\t\t19, 38, 231, 68, 83, 47, 155, 119, 87, 226, 83, 8, 242, 104,\n\t\t238, 26, 194, 53, 152, 114, 30, 10, 122, 48, 91, 55, 99, 234,\n\t\t96, 173, 41, 182, 238, 79, 218, 66, 210, 12, 188, 53, 8, 83,\n\t\t158, 86, 84, 49, 91, 203, 244, 131, 107, 193, 5, 53, 6, 112,\n\t\t239, 244, 31, 157, 102, 132, 225, 209, 22, 92, 86, 110, 195,\n\t\t106, 109, 26, 239, 233, 1, 125, 241, 192, 159, 193, 51, 207,\n\t\t206, 97, 41, 208, 40, 154, 41, 230, 208, 109, 45, 191, 92,\n\t\t139, 242, 27, 81, 94, 25, 61, 230, 48, 109, 173, 178, 145,\n\t\t85, 174, 214, 219, 5, 246, 178, 177, 99, 103, 181, 150, 98,\n\t\t95, 217, 174, 178, 51, 93, 87, 15, 73, 119, 157, 231, 112,\n\t\t209, 10, 182, 194, 22, 218, 52, 186, 70, 25, 174, 106, 84,\n\t\t221, 23, 118, 210, 175, 215, 210, 205, 18, 177, 58, 122, 207,\n\t\t114, 36, 89, 144, 161, 190, 149, 195, 126, 65, 91, 38, 107,\n\t\t27, 46, 245, 215, 59, 86, 14, 123, 197, 199, 203, 181, 13,\n\t\t71, 91, 208, 127, 54, 3, 218, 91, 251, 210, 84, 175, 145,\n\t\t14, 236, 175, 5, 18, 252, 30, 240, 53, 16, 139, 75, 252, 151,\n\t\t94, 206, 3, 71, 76, 120, 119, 238, 39, 243, 128, 74, 98, 209,\n\t\t12, 238, 214, 118, 48, 235, 156, 170, 90, 89, 17, 142, 173,\n\t\t197, 29, 108, 143, 93, 173, 164, 223, 167, 181, 67, 85, 168,\n\t\t207, 18, 209, 217, 107, 38, 58, 175, 21, 209, 225, 61, 71,\n\t\t49, 243, 23, 254, 92, 142, 58, 136, 83, 42, 253, 82, 191,\n\t\t132, 132, 169, 24, 207, 173, 84, 82, 12, 152, 249, 33, 77,\n\t\t11, 194, 168, 254, 131, 9, 185, 90, 3, 14, 20, 38, 228, 98,\n\t\t109, 216, 71, 194, 185, 32, 41, 179, 196, 178, 225, 64, 60,\n\t\t123, 247, 44, 27, 78, 214, 90, 12, 224, 203, 123, 42, 214,\n\t\t126, 114, 96, 229, 112, 92, 236, 18, 190, 17, 14, 101, 201,\n\t\t211, 53, 28, 175, 109, 120, 188, 101, 35, 84, 87, 253, 100,\n\t\t109, 112, 233, 238, 110, 20, 71, 180, 227, 238, 6, 75, 233,\n\t\t123, 45, 71, 31, 22, 128, 252, 60, 131, 195, 181, 2, 194,\n\t\t129, 70, 54, 200, 24, 132, 25, 163, 174, 224, 17, 164, 72,\n\t\t107, 18, 86, 25, 99, 77, 46, 203, 209, 26, 222, 97, 232, 12,\n\t\t206, 21, 242, 23, 231, 156, 67, 193, 142, 214, 107, 20, 133,\n\t\t138, 119, 230, 66, 222, 116, 192, 194, 48, 246, 107, 19, 150,\n\t\t20, 46, 16, 69, 242, 5, 201, 15, 158, 181, 149, 45, 123, 119,\n\t\t60, 111, 133, 238, 217, 186, 221, 187, 227, 73, 35, 186, 62,\n\t\t91, 87, 156, 55, 208, 227, 101, 200, 96, 149, 80, 151, 242,\n\t\t35, 18, 39, 252, 181, 242, 228, 147, 230, 222, 248, 50, 231,\n\t\t146, 236, 54, 254, 114, 207, 117, 133, 223, 42, 110, 86, 52,\n\t\t219, 231, 48, 195, 46, 36, 29, 66, 29, 173, 178, 17, 229,\n\t\t98, 238, 13, 230, 102, 140, 65, 206, 237, 205, 86, 46, 87,\n\t\t131, 152, 96, 31, 228, 185, 103, 195, 139, 22, 226, 213, 238,\n\t\t113, 104, 142, 186, 236, 112, 248, 185, 133, 181, 0, 206,\n\t\t67, 98, 181, 138, 13, 180, 214, 114, 24, 109, 90, 13, 174,\n\t\t103, 175, 66, 120, 193, 207, 44, 106, 164, 249, 22, 44, 153,\n\t\t247, 138, 226, 180, 57, 188, 92, 185, 195, 122, 119, 187,\n\t\t171, 132, 174, 104, 33, 68, 83, 76, 157, 70, 123, 230, 178,\n\t\t75, 134, 35, 82, 164, 251, 135, 250, 113, 86, 77, 221, 20,\n\t\t75, 40, 180, 220, 111, 27, 151, 227, 51, 231, 4, 158, 235,\n\t\t19, 158, 178, 171, 192, 79, 189, 93, 163, 249, 78, 21, 130,\n\t\t19, 242, 126, 45, 169, 203, 186, 113, 56, 184, 37, 53, 14,\n\t\t125, 25, 42, 100, 84, 195, 166, 194, 133, 80, 226, 213, 230,\n\t\t38, 10, 4, 11, 79, 214, 228, 205, 154, 67, 235, 204, 35, 202,\n\t\t25, 81, 185, 147, 29, 121, 228, 235, 218, 134, 215, 30, 166,\n\t\t210, 11, 24, 77, 100, 61, 49, 247, 103, 235, 209, 57, 133,\n\t\t47, 5, 174, 229, 24, 244, 157, 192, 175, 239, 143, 172, 28,\n\t\t94, 202, 79, 239, 214, 72, 130, 95, 21, 63, 185, 240, 247,\n\t\t65, 99, 226, 223, 184, 236, 89, 124, 252, 176, 182, 129, 173,\n\t\t90, 48, 138, 86, 214, 74, 156, 66, 87, 45, 151, 224, 22, 6,\n\t\t14, 27, 179, 182, 76, 58, 157, 9, 121, 159, 97, 86, 25, 140,\n\t\t209, 154, 11, 207, 243, 104, 53, 138, 24, 36, 77, 189, 119,\n\t\t38, 36, 90, 1, 195, 232, 103, 224, 172, 218, 109, 251, 251,\n\t\t143, 216, 120, 159, 56, 43, 96, 255, 229, 191, 12, 224, 152,\n\t\t80, 142, 145, 7, 191, 176, 241, 49, 137, 128, 218, 67, 233,\n\t\t21, 147, 173, 218, 48, 134, 168, 12, 84, 6, 90, 243, 183,\n\t\t244, 197, 79, 82, 182, 2, 182, 139, 201, 128, 33, 89, 161,\n\t\t255, 68, 196, 171, 197, 173, 237, 191, 138, 8, 187, 141, 166,\n\t\t237, 243, 166, 166, 141, 20, 232, 183, 162, 222, 76, 221,\n\t\t109, 210, 29, 145, 237, 60, 193, 164, 7, 206, 40, 234, 205,\n\t\t30, 250, 11, 178, 36, 73, 15, 21, 180, 64, 237, 71, 253, 162,\n\t\t112, 34, 175, 199, 31, 178, 17, 3, 58, 162, 16, 141, 28, 142,\n\t\t40, 211, 250, 176, 214, 50, 98, 244, 172, 184, 169, 153, 99,\n\t\t136, 113, 152, 144, 120, 5, 103, 46, 161, 54, 60, 160, 247,\n\t\t228, 196, 22, 171, 6, 180, 133, 37, 25, 12, 238, 221, 235,\n\t\t219, 59, 191, 14, 126, 187, 247, 224, 239, 16, 141, 8, 125,\n\t\t212, 31, 211, 221, 193, 189, 7, 253, 223, 30, 12, 169, 125,\n\t\t27, 159, 126, 253, 214, 135, 100, 36, 95, 255, 250, 183, 8,\n\t\t156, 17, 73, 118, 73, 130, 95, 191, 245, 237, 29, 146, 220,\n\t\t190, 251, 224, 254, 157, 123, 223, 250, 182, 122, 253, 219,\n\t\t131, 111, 125, 219, 230, 175, 191, 245, 33, 27, 37, 187, 228,\n\t\t238, 131, 251, 127, 115, 118, 136, 115, 91, 20, 115, 110,\n\t\t15, 250, 188, 178, 13, 254, 136, 220, 255, 91, 182, 115, 199,\n\t\t190, 61, 184, 127, 247, 91, 31, 226, 145, 191, 67, 252, 71,\n\t\t131, 254, 248, 238, 112, 247, 55, 165, 50, 254, 195, 117,\n\t\t174, 134, 217, 46, 33, 131, 251, 119, 255, 230, 243, 210,\n\t\t247, 121, 215, 3, 64, 207, 228, 97, 12, 87, 212, 73, 134,\n\t\t206, 206, 189, 126, 255, 111, 209, 14, 185, 243, 40, 30, 247,\n\t\t135, 3, 59, 207, 33, 104, 93, 216, 197, 138, 76, 72, 186,\n\t\t18, 126, 91, 61, 215, 185, 202, 109, 112, 91, 75, 79, 72,\n\t\t184, 128, 59, 247, 4, 144, 117, 61, 120, 208, 71, 210, 20,\n\t\t110, 175, 247, 160, 95, 84, 225, 197, 189, 21, 158, 230, 189,\n\t\t85, 98, 229, 48, 147, 63, 178, 165, 149, 195, 90, 252, 56,\n\t\t160, 115, 43, 135, 149, 248, 113, 72, 103, 86, 14, 75, 241,\n\t\t227, 133, 19, 113, 153, 70, 254, 200, 2, 43, 135, 141, 250,\n\t\t193, 191, 76, 197, 143, 137, 195, 155, 190, 82, 63, 174, 172,\n\t\t28, 46, 196, 143, 227, 120, 109, 229, 240, 90, 252, 56, 153,\n\t\t51, 43, 135, 137, 248, 49, 165, 43, 46, 10, 212, 167, 162,\n\t\t66, 5, 150, 0, 134, 144, 23, 236, 122, 103, 160, 120, 229,\n\t\t229, 10, 25, 239, 206, 29, 45, 248, 200, 23, 119, 181, 196,\n\t\t35, 95, 220, 83, 47, 60, 249, 226, 190, 122, 113, 37, 95,\n\t\t60, 80, 47, 54, 242, 197, 175, 90, 70, 146, 47, 254, 174,\n\t\t94, 204, 228, 139, 223, 52, 163, 47, 95, 12, 250, 234, 205,\n\t\t107, 245, 70, 143, 245, 98, 85, 229, 244, 215, 43, 126, 230,\n\t\t46, 111, 176, 150, 250, 160, 13, 232, 93, 92, 209, 189, 27,\n\t\t110, 51, 190, 79, 115, 27, 142, 182, 244, 33, 35, 122, 33,\n\t\t189, 226, 207, 183, 197, 115, 66, 38, 36, 144, 205, 192, 36,\n\t\t33, 230, 169, 174, 201, 79, 124, 151, 168, 89, 13, 132, 44,\n\t\t196, 119, 145, 122, 117, 71, 94, 47, 58, 133, 136, 117, 87,\n\t\t170, 116, 86, 197, 171, 123, 170, 84, 161, 207, 190, 47, 94,\n\t\t241, 173, 166, 94, 61, 80, 175, 10, 75, 224, 95, 101, 91,\n\t\t89, 161, 199, 254, 187, 20, 200, 168, 54, 233, 234, 252, 38,\n\t\t94, 241, 45, 168, 135, 218, 23, 239, 248, 30, 213, 239, 6,\n\t\t213, 101, 26, 220, 201, 115, 50, 33, 251, 18, 24, 8, 141,\n\t\t9, 217, 147, 63, 5, 19, 207, 1, 55, 68, 192, 237, 19, 127,\n\t\t5, 119, 224, 130, 88, 125, 75, 22, 117, 117, 205, 134, 143,\n\t\t225, 182, 143, 151, 234, 163, 32, 237, 92, 170, 90, 141, 254,\n\t\t112, 233, 220, 15, 157, 0, 29, 235, 211, 225, 29, 144, 191,\n\t\t167, 116, 229, 36, 14, 139, 147, 161, 213, 179, 32, 139, 124,\n\t\t150, 162, 91, 244, 99, 39, 165, 92, 234, 206, 225, 96, 53,\n\t\t58, 34, 191, 255, 225, 204, 102, 9, 93, 251, 66, 110, 183,\n\t\t30, 91, 16, 250, 145, 31, 102, 33, 122, 48, 13, 114, 168,\n\t\t20, 184, 168, 150, 160, 119, 107, 101, 38, 181, 50, 15, 106,\n\t\t101, 158, 214, 202, 252, 86, 43, 115, 86, 43, 51, 184, 83,\n\t\t43, 116, 90, 47, 116, 191, 86, 232, 73, 189, 208, 223, 243,\n\t\t79, 54, 156, 252, 16, 12, 94, 250, 213, 34, 253, 59, 247,\n\t\t234, 80, 168, 151, 186, 247, 247, 251, 191, 54, 128, 162,\n\t\t94, 240, 215, 187, 191, 222, 27, 252, 189, 161, 209, 179,\n\t\t122, 217, 223, 126, 187, 63, 24, 60, 184, 243, 235, 175, 13,\n\t\t77, 159, 86, 139, 247, 47, 239, 245, 141, 255, 113, 24, 156,\n\t\t174, 70, 168, 221, 99, 11, 248, 152, 18, 235, 31, 255, 232,\n\t\t89, 156, 241, 47, 191, 253, 119, 242, 143, 127, 184, 59, 255,\n\t\t248, 71, 239, 247, 127, 239, 127, 250, 155, 77, 250, 59, 118,\n\t\t151, 23, 59, 108, 197, 37, 236, 209, 96, 76, 135, 251, 228,\n\t\t56, 131, 62, 236, 50, 225, 160, 247, 120, 53, 90, 48, 248,\n\t\t186, 26, 37, 12, 206, 26, 89, 183, 125, 242, 117, 5, 231,\n\t\t17, 136, 116, 150, 207, 27, 203, 176, 71, 253, 241, 46, 27,\n\t\t178, 28, 158, 52, 127, 31, 141, 70, 131, 219, 253, 111, 223,\n\t\t248, 195, 238, 224, 118, 63, 135, 167, 171, 17, 101, 240,\n\t\t126, 53, 114, 25, 188, 217, 202, 165, 69, 208, 192, 167, 241,\n\t\t177, 191, 40, 247, 197, 121, 47, 37, 162, 4, 52, 90, 50, 15,\n\t\t162, 209, 94, 146, 56, 87, 28, 53, 39, 163, 254, 195, 228,\n\t\t17, 125, 40, 152, 30, 103, 196, 122, 115, 207, 73, 246, 99,\n\t\t151, 238, 49, 146, 216, 15, 157, 71, 247, 239, 223, 249, 237,\n\t\t193, 183, 111, 247, 31, 220, 29, 252, 246, 200, 25, 71, 191,\n\t\t211, 221, 228, 211, 136, 253, 158, 124, 26, 146, 226, 199,\n\t\t206, 224, 19, 240, 95, 59, 59, 226, 247, 238, 224, 147, 13,\n\t\t201, 206, 142, 242, 231, 141, 122, 159, 99, 63, 66, 29, 17,\n\t\t124, 110, 227, 215, 38, 36, 155, 55, 240, 213, 183, 206, 9,\n\t\t147, 8, 198, 254, 229, 23, 245, 139, 175, 126, 14, 103, 56,\n\t\t237, 226, 254, 142, 253, 242, 75, 36, 172, 205, 45, 177, 146,\n\t\t111, 27, 33, 127, 65, 216, 163, 254, 183, 111, 131, 193, 224,\n\t\t222, 96, 48, 120, 196, 198, 214, 255, 251, 127, 255, 95, 214,\n\t\t240, 193, 253, 251, 119, 239, 63, 98, 227, 41, 75, 252, 104,\n\t\t217, 91, 36, 113, 184, 47, 193, 65, 16, 14, 59, 19, 135, 121,\n\t\t189, 69, 16, 199, 9, 33, 108, 119, 196, 43, 60, 176, 111,\n\t\t243, 115, 101, 3, 251, 55, 254, 119, 231, 254, 131, 187, 119,\n\t\t250, 246, 176, 169, 13, 148, 145, 159, 53, 49, 155, 250, 194,\n\t\t145, 51, 192, 231, 132, 242, 25, 254, 102, 217, 182, 10, 239,\n\t\t118, 153, 144, 200, 198, 24, 3, 70, 178, 151, 34, 204, 128,\n\t\t213, 31, 88, 245, 64, 3, 40, 94, 72, 204, 252, 108, 69, 28,\n\t\t153, 236, 38, 27, 121, 9, 161, 26, 104, 247, 254, 254, 104,\n\t\t148, 253, 242, 75, 246, 232, 254, 175, 99, 172, 241, 118,\n\t\t69, 178, 157, 1, 250, 218, 91, 125, 43, 135, 47, 205, 220,\n\t\t241, 94, 2, 28, 101, 23, 22, 11, 180, 55, 27, 31, 160, 94,\n\t\t130, 246, 102, 189, 217, 152, 255, 235, 240, 38, 236, 225,\n\t\t1, 31, 4, 240, 199, 28, 222, 181, 45, 63, 53, 147, 15, 137,\n\t\t40, 100, 130, 61, 127, 217, 116, 16, 252, 5, 121, 178, 34,\n\t\t145, 253, 237, 219, 83, 254, 71, 137, 9, 239, 249, 15, 37,\n\t\t85, 60, 234, 131, 51, 250, 178, 34, 109, 195, 167, 22, 188,\n\t\t95, 145, 231, 43, 188, 214, 126, 136, 46, 238, 51, 233, 234,\n\t\t62, 227, 79, 218, 162, 27, 163, 61, 204, 80, 72, 65, 108,\n\t\t211, 135, 55, 25, 17, 217, 57, 118, 44, 72, 236, 241, 132,\n\t\t28, 102, 48, 128, 196, 30, 98, 140, 108, 222, 105, 196, 249,\n\t\t246, 99, 146, 245, 28, 200, 122, 51, 115, 143, 62, 234, 171,\n\t\t45, 234, 60, 234, 143, 133, 189, 75, 127, 139, 193, 75, 207,\n\t\t217, 177, 122, 214, 14, 230, 173, 195, 66, 239, 86, 36, 89,\n\t\t217, 112, 153, 16, 41, 173, 61, 231, 171, 139, 240, 69, 235,\n\t\t99, 219, 30, 238, 147, 55, 43, 112, 118, 6, 106, 253, 125,\n\t\t91, 251, 214, 151, 70, 128, 211, 83, 159, 44, 43, 231, 208,\n\t\t64, 35, 198, 108, 228, 244, 28, 240, 71, 78, 111, 6, 241,\n\t\t232, 52, 35, 153, 189, 67, 97, 62, 146, 61, 14, 118, 99, 209,\n\t\t31, 118, 20, 171, 110, 142, 73, 38, 236, 159, 83, 94, 101,\n\t\t110, 195, 98, 52, 33, 31, 34, 24, 64, 108, 67, 48, 154, 16,\n\t\t6, 9, 32, 178, 93, 64, 10, 115, 219, 6, 119, 36, 113, 239,\n\t\t2, 230, 54, 132, 163, 96, 252, 98, 37, 109, 128, 6, 18, 38,\n\t\t207, 86, 124, 170, 47, 86, 196, 21, 115, 115, 193, 227, 173,\n\t\t135, 54, 204, 70, 86, 159, 159, 132, 112, 28, 14, 251, 143,\n\t\t232, 120, 73, 40, 156, 102, 196, 183, 237, 71, 253, 177, 108,\n\t\t215, 219, 165, 16, 218, 8, 65, 124, 195, 127, 123, 16, 218,\n\t\t195, 99, 146, 241, 183, 98, 6, 212, 0, 212, 240, 152, 132,\n\t\t160, 224, 74, 5, 92, 237, 226, 80, 125, 94, 65, 2, 51, 59,\n\t\t183, 73, 243, 62, 190, 196, 211, 85, 57, 171, 145, 62, 171,\n\t\t183, 6, 248, 173, 111, 221, 226, 111, 157, 158, 35, 34, 38,\n\t\t157, 44, 136, 222, 196, 134, 88, 92, 156, 9, 246, 203, 47,\n\t\t136, 32, 29, 151, 72, 100, 200, 177, 95, 98, 99, 38, 129,\n\t\t87, 109, 135, 170, 75, 156, 5, 12, 224, 120, 213, 168, 179,\n\t\t74, 179, 89, 232, 176, 185, 71, 211, 98, 122, 156, 43, 148,\n\t\t177, 114, 95, 204, 57, 198, 134, 9, 137, 92, 24, 136, 171,\n\t\t37, 152, 144, 151, 92, 146, 46, 177, 115, 200, 110, 39, 163,\n\t\t9, 121, 188, 66, 156, 16, 225, 129, 88, 193, 0, 227, 117,\n\t\t40, 135, 160, 158, 140, 62, 82, 97, 252, 198, 201, 80, 14,\n\t\t242, 116, 101, 90, 147, 232, 221, 95, 173, 144, 67, 194, 177,\n\t\t194, 135, 213, 168, 194, 69, 140, 107, 12, 209, 199, 58, 88,\n\t\t248, 233, 86, 192, 81, 92, 38, 142, 11, 121, 207, 94, 119,\n\t\t124, 176, 26, 158, 172, 248, 129, 127, 212, 31, 31, 144, 93,\n\t\t10, 214, 174, 37, 147, 101, 90, 34, 11, 156, 195, 197, 245,\n\t\t222, 12, 124, 129, 12, 62, 172, 192, 153, 147, 207, 17, 105,\n\t\t209, 11, 237, 14, 30, 45, 137, 3, 172, 103, 12, 78, 154, 10,\n\t\t27, 41, 202, 248, 201, 153, 144, 87, 156, 119, 118, 110, 251,\n\t\t165, 178, 54, 248, 61, 115, 166, 250, 36, 75, 180, 250, 24,\n\t\t149, 58, 108, 217, 136, 166, 63, 174, 224, 124, 85, 194, 210,\n\t\t206, 142, 184, 154, 153, 229, 64, 151, 210, 236, 162, 116,\n\t\t181, 103, 219, 16, 45, 219, 236, 156, 180, 201, 70, 178, 108,\n\t\t99, 169, 162, 37, 105, 142, 159, 128, 65, 73, 218, 90, 126,\n\t\t29, 111, 84, 211, 89, 107, 211, 14, 111, 154, 6, 65, 90, 107,\n\t\t215, 111, 173, 51, 33, 217, 82, 233, 54, 19, 249, 212, 128,\n\t\t102, 165, 226, 147, 245, 252, 244, 192, 79, 198, 117, 163,\n\t\t11, 145, 232, 183, 108, 118, 209, 89, 248, 1, 221, 197, 219,\n\t\t93, 127, 142, 186, 208, 161, 172, 152, 24, 21, 253, 128, 94,\n\t\t87, 13, 195, 148, 17, 117, 79, 166, 134, 137, 54, 27, 168,\n\t\t77, 172, 189, 159, 144, 35, 126, 14, 191, 198, 17, 5, 218,\n\t\t11, 156, 148, 97, 62, 78, 159, 186, 118, 189, 48, 91, 18,\n\t\t169, 59, 175, 124, 83, 119, 111, 116, 89, 49, 248, 224, 157,\n\t\t162, 193, 199, 155, 72, 68, 126, 111, 50, 248, 184, 153, 21,\n\t\t135, 106, 193, 106, 48, 225, 136, 91, 247, 153, 51, 11, 232,\n\t\t30, 99, 58, 252, 218, 188, 173, 228, 62, 13, 2, 179, 96, 186,\n\t\t68, 69, 205, 179, 120, 141, 38, 72, 139, 37, 222, 226, 49,\n\t\t222, 158, 101, 67, 176, 148, 215, 222, 107, 154, 164, 212,\n\t\t181, 114, 112, 155, 26, 182, 100, 182, 81, 127, 77, 101, 68,\n\t\t196, 28, 194, 214, 177, 62, 142, 221, 43, 29, 80, 182, 173,\n\t\t212, 75, 122, 69, 93, 99, 147, 207, 90, 155, 243, 84, 145,\n\t\t117, 195, 145, 134, 166, 124, 208, 157, 22, 3, 76, 97, 242,\n\t\t194, 33, 164, 130, 241, 176, 161, 57, 125, 252, 194, 59, 235,\n\t\t57, 57, 234, 171, 21, 174, 62, 243, 84, 133, 104, 73, 78,\n\t\t136, 96, 80, 117, 16, 218, 136, 80, 109, 1, 145, 219, 246,\n\t\t112, 118, 125, 153, 28, 86, 77, 248, 233, 123, 167, 194, 225,\n\t\t215, 56, 19, 5, 88, 61, 17, 78, 99, 249, 75, 177, 122, 133,\n\t\t74, 88, 219, 110, 60, 172, 161, 20, 236, 121, 189, 68, 3,\n\t\t15, 124, 99, 107, 28, 67, 9, 231, 68, 243, 198, 6, 188, 114,\n\t\t3, 13, 83, 58, 192, 116, 164, 235, 37, 97, 189, 153, 141,\n\t\t102, 38, 109, 29, 192, 178, 142, 198, 196, 200, 15, 240, 7,\n\t\t159, 86, 212, 115, 132, 187, 144, 216, 119, 200, 92, 204,\n\t\t212, 20, 19, 252, 161, 69, 128, 144, 175, 76, 2, 127, 36,\n\t\t241, 70, 14, 111, 181, 132, 164, 199, 127, 226, 170, 8, 153,\n\t\t193, 172, 162, 183, 170, 222, 213, 39, 196, 49, 27, 104, 157,\n\t\t223, 74, 207, 207, 81, 29, 228, 138, 82, 209, 220, 134, 110,\n\t\t249, 232, 61, 163, 14, 63, 126, 155, 214, 99, 128, 5, 228,\n\t\t73, 152, 182, 129, 197, 8, 170, 180, 89, 18, 246, 237, 91,\n\t\t139, 16, 217, 225, 98, 99, 119, 201, 233, 174, 222, 150, 227,\n\t\t19, 18, 85, 64, 19, 169, 145, 15, 81, 242, 184, 106, 235,\n\t\t22, 175, 217, 57, 74, 217, 77, 10, 68, 113, 195, 96, 1, 42,\n\t\t252, 57, 254, 221, 142, 122, 228, 86, 207, 18, 220, 216, 156,\n\t\t205, 64, 30, 195, 93, 138, 220, 5, 182, 201, 150, 102, 115,\n\t\t241, 126, 172, 238, 31, 163, 226, 162, 113, 200, 225, 127,\n\t\t33, 49, 225, 140, 175, 171, 13, 175, 151, 24, 170, 57, 157,\n\t\t199, 152, 12, 98, 82, 94, 7, 220, 95, 94, 197, 25, 141, 61,\n\t\t172, 93, 118, 138, 163, 15, 229, 248, 212, 243, 37, 121, 189,\n\t\t148, 150, 235, 54, 84, 240, 192, 126, 189, 163, 234, 57, 165,\n\t\t165, 99, 230, 47, 8, 73, 70, 197, 153, 41, 36, 51, 35, 33,\n\t\t175, 121, 138, 207, 35, 152, 44, 73, 34, 228, 199, 226, 132,\n\t\t229, 154, 111, 98, 184, 239, 147, 135, 55, 235, 71, 200, 212,\n\t\t165, 222, 188, 114, 111, 7, 132, 203, 74, 147, 37, 113, 248,\n\t\t254, 111, 237, 20, 46, 229, 10, 36, 150, 13, 123, 242, 217,\n\t\t181, 108, 56, 146, 207, 158, 101, 195, 121, 25, 60, 205, 70,\n\t\t140, 136, 183, 135, 2, 116, 1, 117, 5, 240, 156, 98, 161,\n\t\t132, 145, 155, 160, 121, 136, 109, 28, 219, 244, 186, 16,\n\t\t59, 87, 218, 223, 73, 51, 160, 18, 73, 184, 182, 233, 217,\n\t\t114, 183, 169, 225, 217, 178, 104, 181, 162, 144, 22, 152,\n\t\t249, 160, 233, 180, 11, 148, 127, 190, 68, 85, 218, 73, 195,\n\t\t62, 116, 27, 118, 71, 221, 88, 113, 111, 9, 7, 203, 154, 23,\n\t\t86, 91, 233, 163, 198, 210, 112, 122, 19, 240, 243, 253, 122,\n\t\t45, 136, 126, 8, 250, 55, 106, 121, 182, 252, 33, 216, 31,\n\t\t183, 195, 254, 84, 192, 254, 240, 166, 71, 19, 247, 126, 1,\n\t\t203, 203, 37, 28, 87, 96, 137, 205, 158, 44, 241, 46, 175,\n\t\t161, 142, 240, 156, 227, 76, 91, 99, 197, 86, 26, 115, 162,\n\t\t105, 12, 197, 136, 192, 234, 224, 112, 82, 97, 195, 215, 107,\n\t\t22, 175, 68, 122, 134, 230, 146, 240, 6, 118, 49, 120, 162,\n\t\t178, 239, 21, 16, 108, 43, 41, 163, 209, 182, 64, 250, 172,\n\t\t137, 213, 225, 179, 228, 196, 165, 0, 219, 227, 101, 179,\n\t\t21, 1, 205, 224, 43, 46, 72, 3, 100, 14, 5, 72, 225, 249,\n\t\t13, 167, 170, 7, 47, 93, 133, 197, 230, 19, 51, 85, 6, 128,\n\t\t44, 241, 87, 109, 37, 83, 249, 81, 21, 126, 140, 190, 198,\n\t\t109, 165, 103, 234, 171, 42, 46, 184, 240, 198, 178, 30, 126,\n\t\t210, 131, 8, 29, 35, 252, 80, 121, 8, 161, 85, 164, 153, 210,\n\t\t164, 81, 21, 85, 17, 117, 94, 211, 69, 192, 15, 79, 83, 11,\n\t\t137, 248, 86, 247, 195, 80, 150, 223, 57, 60, 105, 100, 181,\n\t\t81, 169, 209, 206, 79, 4, 75, 100, 230, 212, 10, 21, 43, 123,\n\t\t181, 44, 94, 195, 132, 44, 150, 128, 105, 79, 26, 213, 3,\n\t\t183, 220, 37, 97, 165, 118, 10, 251, 48, 37, 181, 148, 252,\n\t\t172, 158, 47, 133, 238, 128, 19, 247, 179, 37, 153, 144, 233,\n\t\t18, 18, 96, 61, 220, 154, 54, 134, 78, 159, 144, 165, 124,\n\t\t199, 137, 189, 13, 146, 85, 148, 209, 88, 228, 225, 67, 62,\n\t\t0, 48, 13, 74, 97, 96, 190, 253, 248, 29, 46, 201, 190, 60,\n\t\t129, 104, 188, 36, 25, 61, 123, 56, 33, 23, 203, 155, 54,\n\t\t37, 27, 41, 183, 128, 70, 64, 57, 60, 109, 149, 226, 195,\n\t\t101, 201, 60, 143, 1, 242, 109, 34, 22, 244, 251, 214, 90,\n\t\t179, 109, 170, 136, 55, 173, 213, 54, 203, 34, 227, 70, 169,\n\t\t167, 23, 109, 12, 225, 132, 80, 46, 142, 11, 163, 38, 40,\n\t\t180, 235, 79, 140, 150, 142, 200, 239, 233, 18, 226, 37, 238,\n\t\t76, 113, 84, 2, 154, 166, 187, 114, 149, 49, 66, 36, 38, 98,\n\t\t156, 144, 167, 75, 180, 98, 167, 25, 248, 28, 84, 124, 193,\n\t\t1, 215, 119, 56, 33, 111, 180, 236, 94, 232, 53, 222, 47,\n\t\t249, 223, 57, 223, 13, 209, 12, 172, 141, 240, 101, 179, 238,\n\t\t255, 155, 85, 216, 140, 182, 149, 81, 133, 164, 184, 46, 210,\n\t\t140, 9, 53, 65, 75, 149, 59, 253, 114, 21, 153, 136, 174,\n\t\t227, 176, 107, 42, 14, 42, 125, 77, 253, 175, 215, 245, 85,\n\t\t76, 65, 93, 39, 231, 54, 124, 94, 106, 107, 235, 227, 181,\n\t\t13, 111, 91, 23, 178, 255, 168, 155, 136, 8, 198, 47, 150,\n\t\t120, 43, 61, 108, 240, 145, 91, 74, 31, 185, 186, 57, 113,\n\t\t97, 73, 139, 42, 26, 180, 179, 151, 118, 107, 99, 57, 133,\n\t\t142, 48, 113, 235, 184, 190, 219, 137, 98, 214, 89, 248, 145,\n\t\t219, 113, 162, 43, 212, 252, 246, 58, 175, 105, 24, 175, 105,\n\t\t135, 121, 180, 131, 105, 185, 59, 44, 238, 44, 227, 206, 204,\n\t\t153, 95, 244, 58, 24, 104, 87, 181, 115, 230, 209, 14, 30,\n\t\t245, 154, 253, 93, 232, 162, 53, 115, 226, 164, 222, 174,\n\t\t19, 40, 87, 31, 97, 99, 237, 167, 29, 26, 174, 216, 85, 175,\n\t\t243, 124, 209, 185, 138, 179, 142, 208, 181, 116, 210, 56,\n\t\t164, 56, 4, 232, 248, 172, 179, 241, 131, 160, 227, 172, 86,\n\t\t212, 73, 58, 30, 77, 104, 207, 208, 197, 228, 54, 60, 91,\n\t\t106, 139, 59, 186, 182, 225, 75, 241, 115, 178, 182, 225,\n\t\t221, 22, 205, 90, 21, 150, 207, 150, 55, 179, 8, 214, 38,\n\t\t196, 95, 150, 63, 104, 194, 172, 246, 220, 2, 115, 33, 203,\n\t\t61, 84, 216, 45, 31, 173, 225, 34, 51, 77, 154, 223, 46, 183,\n\t\t24, 50, 223, 116, 216, 2, 92, 47, 219, 68, 214, 6, 67, 230,\n\t\t87, 141, 76, 215, 255, 60, 230, 156, 47, 151, 237, 230, 156,\n\t\t31, 132, 192, 255, 216, 153, 235, 220, 247, 57, 124, 20, 44,\n\t\t155, 119, 223, 178, 129, 117, 219, 119, 214, 199, 165, 28,\n\t\t54, 43, 22, 157, 202, 5, 160, 221, 102, 78, 246, 121, 88,\n\t\t104, 60, 203, 43, 157, 67, 212, 218, 23, 226, 8, 148, 155,\n\t\t85, 125, 10, 242, 185, 141, 132, 209, 46, 186, 55, 176, 94,\n\t\t154, 204, 81, 85, 186, 99, 117, 254, 251, 255, 250, 191, 225,\n\t\t43, 55, 53, 12, 64, 203, 163, 24, 74, 55, 9, 27, 146, 191,\n\t\t100, 52, 215, 118, 235, 212, 187, 21, 228, 171, 161, 213,\n\t\t46, 242, 70, 174, 75, 93, 123, 7, 159, 19, 68, 101, 234, 151,\n\t\t191, 140, 226, 68, 255, 194, 128, 219, 209, 82, 253, 50, 202,\n\t\t133, 52, 89, 234, 31, 243, 56, 90, 4, 254, 156, 161, 170,\n\t\t27, 117, 89, 90, 107, 85, 48, 79, 239, 60, 173, 173, 239,\n\t\t114, 14, 129, 15, 1, 38, 132, 117, 65, 160, 5, 157, 143, 216,\n\t\t218, 227, 159, 44, 161, 208, 230, 69, 229, 8, 205, 194, 42,\n\t\t188, 58, 88, 2, 19, 155, 197, 229, 20, 204, 226, 2, 215, 131,\n\t\t245, 92, 124, 18, 133, 35, 94, 184, 214, 178, 10, 23, 15,\n\t\t24, 51, 172, 84, 20, 167, 108, 150, 197, 248, 239, 96, 77,\n\t\t240, 131, 81, 82, 193, 195, 44, 43, 99, 190, 3, 186, 58, 240,\n\t\t143, 169, 85, 193, 109, 234, 233, 73, 72, 38, 9, 73, 236,\n\t\t29, 171, 51, 23, 238, 150, 29, 63, 234, 176, 152, 57, 1, 162,\n\t\t44, 165, 121, 224, 203, 127, 198, 209, 126, 199, 73, 104,\n\t\t39, 138, 59, 174, 191, 88, 208, 132, 70, 115, 154, 222, 194,\n\t\t125, 145, 109, 57, 136, 127, 169, 151, 74, 25, 175, 111, 33,\n\t\t189, 10, 235, 235, 145, 115, 66, 250, 31, 255, 77, 32, 254,\n\t\t39, 33, 137, 82, 194, 116, 34, 226, 235, 90, 249, 143, 255,\n\t\t83, 17, 140, 138, 231, 209, 151, 144, 124, 88, 218, 205, 158,\n\t\t69, 113, 196, 118, 55, 212, 95, 122, 108, 55, 208, 30, 183,\n\t\t178, 65, 34, 73, 186, 109, 208, 85, 99, 161, 140, 124, 208,\n\t\t120, 163, 227, 112, 54, 196, 233, 98, 230, 6, 167, 133, 36,\n\t\t221, 20, 204, 2, 35, 250, 93, 97, 196, 26, 187, 78, 48, 245,\n\t\t226, 141, 149, 67, 220, 132, 36, 203, 133, 212, 213, 74, 219,\n\t\t234, 227, 253, 207, 42, 136, 29, 119, 74, 3, 58, 87, 233,\n\t\t127, 177, 30, 204, 134, 20, 173, 175, 187, 163, 139, 8, 22,\n\t\t221, 134, 252, 106, 130, 52, 127, 178, 225, 113, 66, 210,\n\t\t174, 109, 67, 208, 21, 238, 216, 152, 27, 194, 6, 183, 139,\n\t\t233, 227, 194, 44, 96, 254, 10, 229, 156, 176, 59, 90, 84,\n\t\t44, 61, 192, 12, 129, 16, 116, 213, 114, 204, 88, 212, 153,\n\t\t177, 72, 220, 173, 241, 135, 192, 143, 46, 240, 65, 138, 120,\n\t\t130, 111, 192, 152, 67, 54, 76, 61, 225, 110, 26, 171, 236,\n\t\t134, 239, 67, 66, 199, 133, 107, 234, 208, 50, 106, 54, 237,\n\t\t70, 73, 58, 87, 65, 166, 28, 202, 74, 219, 12, 23, 198, 199,\n\t\t124, 227, 29, 177, 86, 165, 237, 246, 95, 255, 227, 191, 10,\n\t\t48, 170, 109, 215, 69, 72, 125, 230, 13, 251, 56, 113, 183,\n\t\t75, 110, 245, 249, 23, 76, 160, 139, 135, 89, 198, 93, 72,\n\t\t196, 159, 121, 151, 68, 54, 44, 186, 182, 64, 30, 13, 57,\n\t\t27, 224, 133, 32, 144, 122, 79, 120, 173, 135, 122, 73, 56,\n\t\t39, 107, 3, 181, 31, 13, 198, 76, 25, 191, 81, 96, 246, 142,\n\t\t245, 223, 255, 151, 255, 195, 202, 109, 152, 117, 175, 73,\n\t\t53, 192, 110, 224, 190, 104, 128, 8, 243, 83, 214, 156, 9,\n\t\t135, 55, 244, 84, 84, 254, 132, 19, 226, 117, 129, 194, 224,\n\t\t190, 109, 255, 153, 14, 133, 19, 242, 202, 7, 10, 63, 231,\n\t\t85, 72, 162, 241, 116, 61, 92, 173, 109, 130, 78, 133, 175,\n\t\t124, 66, 237, 194, 177, 112, 221, 213, 110, 129, 156, 167,\n\t\t94, 21, 63, 47, 215, 54, 44, 219, 206, 234, 137, 16, 29, 213,\n\t\t73, 237, 182, 209, 111, 227, 26, 100, 217, 45, 74, 52, 40,\n\t\t134, 170, 105, 255, 34, 149, 246, 207, 72, 13, 248, 140, 154,\n\t\t113, 111, 68, 33, 15, 223, 153, 165, 142, 240, 24, 151, 10,\n\t\t225, 201, 54, 203, 84, 93, 238, 35, 149, 159, 168, 40, 82,\n\t\t85, 63, 97, 33, 169, 118, 50, 203, 9, 175, 221, 106, 65, 153,\n\t\t225, 180, 92, 178, 18, 123, 41, 42, 59, 1, 54, 167, 7, 140,\n\t\t224, 143, 77, 194, 69, 164, 100, 175, 82, 86, 165, 83, 217,\n\t\t116, 71, 203, 46, 41, 122, 172, 58, 219, 75, 8, 101, 9, 8,\n\t\t48, 132, 202, 229, 30, 212, 108, 110, 13, 100, 166, 191, 62,\n\t\t212, 251, 10, 115, 27, 166, 221, 102, 45, 20, 56, 230, 157,\n\t\t139, 200, 63, 34, 216, 252, 34, 55, 202, 42, 137, 151, 9,\n\t\t77, 211, 153, 147, 148, 83, 241, 96, 151, 187, 17, 199, 247,\n\t\t239, 87, 68, 154, 27, 217, 245, 34, 161, 31, 9, 27, 189, 250,\n\t\t23, 231, 146, 11, 239, 125, 241, 205, 144, 206, 141, 246,\n\t\t118, 172, 127, 51, 19, 179, 168, 209, 236, 242, 225, 168,\n\t\t80, 0, 230, 75, 173, 89, 4, 167, 39, 31, 191, 125, 115, 122,\n\t\t10, 186, 245, 242, 234, 11, 175, 160, 75, 201, 163, 151, 140,\n\t\t156, 158, 0, 63, 152, 73, 152, 84, 234, 25, 62, 98, 241, 217,\n\t\t2, 206, 49, 245, 28, 123, 199, 90, 93, 10, 108, 76, 162, 145,\n\t\t131, 110, 255, 69, 213, 72, 85, 197, 44, 132, 14, 188, 223,\n\t\t158, 130, 176, 154, 8, 104, 182, 220, 221, 146, 11, 104, 182,\n\t\t220, 221, 146, 14, 104, 182, 212, 44, 107, 45, 156, 212, 82,\n\t\t241, 134, 42, 65, 159, 13, 166, 194, 13, 197, 156, 171, 134,\n\t\t29, 36, 2, 76, 117, 187, 176, 233, 2, 179, 107, 89, 104, 164,\n\t\t174, 81, 1, 219, 178, 129, 246, 106, 219, 179, 230, 142, 222,\n\t\t208, 50, 212, 115, 220, 76, 187, 28, 11, 70, 61, 60, 17, 152,\n\t\t134, 5, 71, 121, 241, 29, 252, 230, 186, 43, 16, 242, 85,\n\t\t151, 111, 45, 146, 141, 6, 253, 254, 223, 40, 218, 166, 232,\n\t\t124, 123, 89, 110, 131, 136, 126, 138, 150, 49, 30, 103, 173,\n\t\t238, 32, 145, 192, 114, 2, 83, 129, 51, 116, 114, 220, 44,\n\t\t181, 77, 97, 221, 185, 47, 182, 3, 22, 215, 238, 128, 73,\n\t\t222, 148, 215, 140, 23, 121, 87, 192, 71, 33, 103, 210, 222,\n\t\t106, 193, 17, 138, 41, 173, 186, 91, 8, 149, 222, 244, 115,\n\t\t39, 154, 35, 159, 36, 108, 114, 68, 70, 60, 193, 71, 236,\n\t\t139, 79, 210, 22, 231, 7, 105, 150, 48, 194, 17, 225, 120,\n\t\t115, 27, 94, 11, 22, 82, 164, 128, 207, 97, 210, 70, 146,\n\t\t166, 50, 247, 49, 166, 37, 230, 191, 39, 156, 95, 216, 191,\n\t\t134, 115, 147, 19, 237, 194, 164, 11, 165, 233, 154, 108,\n\t\t218, 139, 144, 36, 194, 195, 127, 235, 156, 130, 165, 228,\n\t\t224, 190, 155, 19, 235, 88, 59, 50, 130, 8, 71, 232, 151,\n\t\t77, 103, 133, 245, 82, 140, 92, 37, 15, 157, 145, 22, 149,\n\t\t246, 186, 191, 252, 114, 139, 246, 156, 94, 74, 131, 133,\n\t\t48, 19, 203, 97, 175, 109, 43, 235, 132, 107, 19, 242, 62,\n\t\t17, 73, 41, 187, 185, 13, 71, 91, 182, 254, 158, 18, 9, 114,\n\t\t27, 206, 183, 13, 206, 95, 16, 61, 50, 33, 88, 168, 27, 194,\n\t\t254, 195, 26, 67, 128, 103, 244, 101, 4, 253, 45, 97, 218,\n\t\t142, 186, 210, 109, 21, 83, 80, 209, 249, 5, 117, 237, 177,\n\t\t8, 0, 58, 236, 231, 16, 245, 104, 196, 18, 95, 164, 225, 60,\n\t\t16, 92, 252, 202, 178, 225, 164, 62, 25, 127, 65, 46, 187,\n\t\t132, 105, 91, 86, 161, 123, 80, 129, 192, 168, 116, 134, 211,\n\t\t46, 103, 19, 114, 208, 45, 98, 107, 117, 164, 197, 108, 39,\n\t\t149, 242, 134, 85, 145, 119, 217, 146, 220, 120, 201, 164,\n\t\t196, 213, 31, 234, 37, 227, 211, 193, 252, 73, 59, 86, 89,\n\t\t82, 150, 110, 111, 45, 131, 26, 116, 48, 70, 76, 125, 40,\n\t\t231, 56, 81, 187, 33, 192, 87, 165, 5, 107, 103, 146, 16,\n\t\t138, 221, 50, 26, 166, 91, 155, 226, 66, 213, 105, 9, 174,\n\t\t137, 17, 136, 123, 159, 44, 125, 216, 194, 153, 139, 157,\n\t\t54, 222, 39, 95, 240, 73, 37, 204, 123, 146, 8, 111, 228,\n\t\t227, 82, 195, 232, 220, 172, 13, 163, 212, 126, 121, 234,\n\t\t146, 9, 57, 237, 194, 107, 210, 164, 107, 34, 194, 171, 25,\n\t\t15, 208, 225, 119, 28, 32, 189, 26, 159, 121, 243, 199, 221,\n\t\t166, 155, 176, 39, 25, 222, 132, 81, 188, 176, 23, 155, 208,\n\t\t206, 225, 241, 247, 247, 18, 14, 79, 163, 239, 236, 229, 107,\n\t\t235, 57, 190, 141, 65, 41, 165, 151, 33, 179, 119, 146, 80,\n\t\t102, 148, 60, 219, 114, 148, 95, 206, 4, 101, 45, 177, 104,\n\t\t58, 105, 98, 226, 241, 213, 22, 30, 42, 207, 155, 166, 119,\n\t\t216, 197, 91, 159, 17, 30, 37, 51, 94, 150, 27, 111, 34, 148,\n\t\t36, 11, 107, 203, 49, 226, 61, 37, 202, 218, 67, 41, 30, 27,\n\t\t151, 212, 122, 84, 103, 93, 137, 133, 27, 240, 111, 33, 69,\n\t\t171, 62, 164, 128, 20, 193, 171, 89, 211, 86, 152, 144, 175,\n\t\t93, 49, 73, 11, 229, 253, 99, 159, 124, 245, 149, 22, 198,\n\t\t86, 211, 167, 33, 23, 85, 19, 58, 231, 4, 241, 138, 83, 33,\n\t\t232, 63, 194, 233, 141, 17, 29, 81, 212, 99, 207, 131, 204,\n\t\t229, 50, 236, 99, 60, 6, 195, 208, 70, 94, 225, 26, 42, 160,\n\t\t108, 107, 119, 53, 80, 42, 4, 161, 73, 236, 47, 233, 82, 4,\n\t\t161, 48, 40, 68, 255, 17, 29, 91, 157, 3, 217, 158, 70, 67,\n\t\t29, 107, 104, 188, 117, 130, 64, 81, 245, 28, 158, 116, 71,\n\t\t123, 20, 158, 54, 50, 238, 194, 62, 156, 111, 155, 239, 221,\n\t\t192, 34, 21, 191, 70, 92, 66, 177, 139, 123, 38, 17, 123,\n\t\t163, 73, 93, 90, 132, 157, 112, 119, 23, 1, 189, 236, 240,\n\t\t127, 248, 52, 69, 106, 28, 241, 83, 133, 19, 21, 218, 56,\n\t\t173, 79, 49, 21, 101, 168, 46, 17, 83, 151, 121, 60, 117,\n\t\t133, 19, 78, 161, 18, 201, 204, 52, 247, 39, 58, 83, 85, 186,\n\t\t36, 228, 164, 37, 19, 90, 36, 62, 99, 184, 201, 158, 134,\n\t\t8, 210, 152, 159, 13, 193, 10, 220, 184, 179, 253, 46, 204,\n\t\t99, 18, 119, 137, 216, 72, 54, 88, 11, 103, 55, 245, 156,\n\t\t132, 226, 205, 25, 88, 83, 254, 108, 193, 173, 196, 6, 44,\n\t\t237, 196, 196, 239, 138, 98, 194, 136, 217, 58, 166, 155,\n\t\t206, 161, 204, 252, 92, 27, 106, 131, 161, 243, 247, 140,\n\t\t205, 143, 9, 161, 35, 28, 27, 212, 84, 113, 52, 151, 227,\n\t\t197, 155, 62, 11, 228, 21, 87, 49, 138, 228, 218, 192, 121,\n\t\t114, 48, 114, 63, 60, 233, 66, 26, 55, 211, 251, 162, 80,\n\t\t93, 173, 108, 198, 45, 43, 105, 77, 2, 63, 101, 157, 74, 36,\n\t\t179, 134, 192, 43, 154, 82, 205, 186, 234, 2, 78, 49, 23,\n\t\t152, 249, 153, 169, 152, 39, 223, 93, 123, 128, 181, 69, 232,\n\t\t77, 123, 11, 55, 115, 129, 85, 129, 245, 102, 156, 93, 137,\n\t\t136, 218, 127, 34, 150, 248, 39, 68, 46, 230, 150, 180, 245,\n\t\t105, 126, 191, 77, 21, 170, 130, 68, 106, 221, 231, 155, 45,\n\t\t4, 224, 125, 87, 229, 206, 124, 241, 29, 151, 46, 34, 150,\n\t\t155, 61, 102, 67, 235, 89, 28, 82, 11, 237, 152, 153, 244,\n\t\t74, 99, 133, 87, 90, 98, 6, 183, 144, 152, 246, 77, 87, 173,\n\t\t233, 75, 148, 50, 94, 205, 136, 117, 123, 237, 211, 205, 109,\n\t\t107, 71, 211, 47, 44, 139, 218, 4, 233, 162, 45, 17, 95, 68,\n\t\t28, 99, 15, 189, 232, 66, 130, 113, 70, 142, 200, 239, 14,\n\t\t222, 231, 9, 75, 97, 213, 35, 246, 242, 166, 224, 112, 34,\n\t\t130, 77, 202, 22, 138, 36, 174, 54, 124, 22, 204, 98, 228,\n\t\t172, 45, 27, 222, 138, 31, 152, 254, 255, 89, 183, 106, 107,\n\t\t214, 48, 77, 229, 24, 73, 156, 17, 237, 205, 112, 65, 213,\n\t\t16, 142, 133, 188, 229, 175, 1, 67, 36, 170, 13, 59, 75, 168,\n\t\t227, 206, 147, 44, 156, 137, 192, 126, 56, 33, 140, 41, 255,\n\t\t172, 75, 34, 57, 15, 180, 242, 68, 87, 158, 89, 105, 70, 216,\n\t\t88, 210, 147, 49, 135, 180, 14, 100, 158, 37, 9, 141, 56,\n\t\t110, 88, 57, 75, 42, 201, 72, 165, 163, 142, 178, 189, 83,\n\t\t253, 21, 64, 128, 47, 45, 215, 149, 2, 109, 112, 100, 91,\n\t\t52, 150, 238, 206, 226, 75, 133, 51, 208, 146, 231, 133, 34,\n\t\t178, 53, 10, 27, 114, 73, 125, 54, 158, 144, 207, 221, 202,\n\t\t136, 85, 246, 229, 162, 93, 173, 213, 145, 172, 72, 228, 172,\n\t\t253, 37, 30, 235, 2, 185, 191, 237, 214, 161, 104, 73, 208,\n\t\t137, 51, 34, 111, 18, 181, 244, 72, 115, 120, 215, 38, 39,\n\t\t98, 240, 206, 89, 124, 121, 230, 207, 47, 246, 164, 155, 65,\n\t\t158, 195, 75, 125, 83, 113, 230, 243, 13, 14, 175, 196, 11,\n\t\t52, 59, 201, 225, 131, 248, 117, 234, 71, 86, 14, 31, 197,\n\t\t15, 148, 56, 115, 96, 155, 45, 103, 115, 26, 39, 236, 241,\n\t\t85, 233, 116, 210, 77, 131, 10, 91, 44, 255, 57, 57, 32, 135,\n\t\t46, 68, 28, 128, 105, 156, 48, 129, 5, 198, 22, 127, 222,\n\t\t21, 92, 218, 174, 22, 65, 208, 81, 19, 171, 92, 126, 71, 149,\n\t\t226, 112, 22, 156, 139, 89, 86, 231, 135, 237, 212, 239, 168,\n\t\t202, 55, 217, 59, 86, 71, 221, 27, 52, 54, 85, 212, 18, 236,\n\t\t221, 164, 91, 220, 102, 77, 8, 219, 0, 14, 91, 236, 218, 74,\n\t\t181, 235, 244, 6, 78, 146, 196, 155, 93, 142, 234, 121, 109,\n\t\t199, 54, 98, 204, 182, 244, 117, 248, 147, 125, 113, 94, 64,\n\t\t244, 150, 84, 212, 21, 92, 234, 216, 182, 3, 204, 253, 86,\n\t\t218, 7, 201, 166, 101, 135, 190, 142, 55, 134, 87, 19, 223,\n\t\t156, 78, 91, 209, 218, 157, 89, 214, 84, 178, 179, 141, 165,\n\t\t201, 193, 223, 94, 167, 66, 209, 115, 136, 219, 70, 115, 144,\n\t\t196, 43, 222, 131, 38, 72, 121, 14, 243, 54, 216, 116, 226,\n\t\t13, 65, 146, 160, 99, 173, 185, 178, 186, 198, 144, 34, 232,\n\t\t28, 135, 112, 122, 77, 43, 109, 25, 224, 183, 52, 185, 216,\n\t\t140, 176, 174, 193, 36, 169, 194, 174, 191, 246, 93, 121,\n\t\t253, 27, 218, 54, 4, 173, 189, 151, 67, 205, 114, 73, 69,\n\t\t176, 32, 74, 179, 44, 82, 120, 99, 108, 128, 48, 22, 249,\n\t\t190, 121, 47, 188, 4, 237, 249, 41, 7, 216, 155, 149, 220,\n\t\t132, 55, 137, 18, 171, 134, 105, 237, 16, 132, 54, 42, 168,\n\t\t132, 29, 244, 88, 36, 50, 25, 202, 212, 37, 72, 240, 128,\n\t\t246, 120, 233, 3, 148, 115, 252, 56, 170, 5, 168, 203, 109,\n\t\t112, 235, 147, 211, 162, 119, 143, 197, 203, 101, 64, 57,\n\t\t162, 3, 225, 130, 16, 210, 40, 195, 159, 78, 211, 158, 121,\n\t\t191, 34, 76, 168, 176, 115, 200, 90, 47, 234, 68, 186, 245,\n\t\t192, 97, 244, 174, 75, 172, 29, 7, 235, 0, 127, 160, 234,\n\t\t33, 178, 119, 44, 219, 202, 109, 240, 11, 165, 40, 139, 87,\n\t\t250, 30, 128, 255, 198, 233, 226, 139, 79, 54, 196, 163, 3,\n\t\t82, 64, 180, 54, 239, 135, 108, 104, 4, 251, 210, 42, 176,\n\t\t88, 56, 40, 241, 87, 188, 162, 128, 156, 124, 239, 200, 47,\n\t\t113, 207, 177, 57, 221, 185, 232, 232, 244, 70, 126, 222,\n\t\t252, 254, 152, 248, 80, 12, 151, 79, 18, 163, 217, 195, 62,\n\t\t201, 96, 55, 18, 105, 187, 118, 19, 241, 23, 250, 208, 23,\n\t\t248, 227, 199, 219, 130, 72, 221, 46, 200, 166, 190, 167,\n\t\t238, 110, 82, 169, 108, 67, 184, 141, 50, 241, 213, 231, 162,\n\t\t97, 150, 242, 173, 60, 174, 107, 149, 139, 149, 137, 215,\n\t\t52, 65, 203, 102, 176, 60, 223, 117, 105, 164, 191, 172, 98,\n\t\t145, 102, 223, 2, 43, 161, 129, 163, 88, 147, 226, 58, 164,\n\t\t165, 64, 73, 172, 76, 64, 137, 149, 229, 227, 167, 207, 47,\n\t\t223, 164, 69, 156, 103, 243, 173, 12, 74, 14, 24, 57, 124,\n\t\t66, 163, 12, 3, 163, 155, 71, 181, 111, 156, 70, 119, 35,\n\t\t108, 243, 40, 110, 123, 84, 170, 219, 237, 252, 61, 186, 66,\n\t\t69, 10, 150, 94, 253, 88, 213, 238, 60, 69, 26, 11, 53, 10,\n\t\t227, 102, 144, 194, 31, 230, 248, 204, 248, 222, 2, 123, 148,\n\t\t138, 170, 93, 111, 70, 247, 222, 154, 230, 197, 184, 147,\n\t\t228, 53, 207, 226, 3, 63, 41, 23, 46, 157, 30, 35, 16, 121,\n\t\t83, 84, 112, 13, 27, 117, 45, 105, 195, 108, 83, 73, 248,\n\t\t82, 110, 47, 75, 160, 60, 189, 1, 20, 115, 24, 64, 209, 96,\n\t\t152, 195, 122, 27, 122, 146, 251, 49, 25, 81, 137, 169, 38,\n\t\t233, 18, 28, 253, 235, 49, 146, 2, 200, 70, 20, 163, 133,\n\t\t167, 224, 55, 33, 45, 212, 67, 123, 27, 152, 109, 208, 183,\n\t\t161, 112, 11, 131, 120, 228, 212, 110, 165, 130, 13, 68, 224,\n\t\t75, 150, 33, 134, 132, 19, 148, 125, 18, 242, 157, 226, 67,\n\t\t38, 23, 127, 181, 17, 17, 218, 86, 148, 179, 139, 203, 86,\n\t\t242, 33, 156, 39, 115, 27, 186, 155, 194, 78, 101, 30, 56,\n\t\t105, 138, 108, 231, 39, 27, 190, 38, 54, 108, 248, 199, 110,\n\t\t227, 158, 155, 102, 228, 214, 45, 140, 239, 88, 236, 115,\n\t\t49, 119, 75, 4, 241, 238, 110, 108, 152, 110, 202, 202, 213,\n\t\t66, 47, 123, 177, 16, 210, 74, 115, 227, 108, 140, 99, 66,\n\t\t101, 237, 187, 84, 4, 201, 145, 111, 54, 27, 97, 47, 146,\n\t\t53, 68, 70, 152, 144, 233, 70, 9, 105, 214, 202, 225, 34,\n\t\t202, 147, 128, 134, 92, 82, 249, 36, 66, 54, 138, 86, 218,\n\t\t139, 116, 121, 235, 188, 199, 227, 184, 35, 102, 147, 116,\n\t\t22, 42, 161, 8, 250, 63, 110, 70, 107, 6, 23, 28, 46, 135,\n\t\t9, 200, 60, 172, 210, 58, 0, 174, 54, 54, 188, 46, 127, 146,\n\t\t57, 84, 248, 151, 73, 249, 11, 166, 74, 192, 15, 251, 173,\n\t\t171, 164, 160, 84, 212, 58, 117, 132, 224, 117, 181, 32, 194,\n\t\t168, 177, 254, 73, 217, 132, 94, 150, 251, 59, 227, 68, 140,\n\t\t119, 183, 167, 222, 167, 243, 36, 14, 130, 98, 28, 71, 229,\n\t\t15, 186, 194, 121, 105, 124, 14, 100, 6, 192, 187, 45, 161,\n\t\t95, 33, 42, 203, 227, 251, 27, 56, 192, 13, 192, 69, 183,\n\t\t13, 174, 172, 157, 195, 37, 57, 139, 97, 203, 45, 217, 1,\n\t\t113, 118, 162, 93, 6, 217, 78, 178, 139, 187, 117, 111, 3,\n\t\t71, 27, 152, 108, 224, 114, 131, 115, 60, 216, 140, 186, 196,\n\t\t79, 91, 245, 255, 202, 72, 35, 2, 78, 179, 135, 168, 3, 137,\n\t\t87, 67, 214, 155, 137, 220, 189, 130, 31, 198, 33, 113, 170,\n\t\t8, 175, 55, 112, 177, 177, 225, 164, 145, 47, 189, 68, 19,\n\t\t95, 11, 189, 39, 142, 99, 151, 166, 120, 119, 46, 47, 112,\n\t\t79, 55, 163, 125, 114, 144, 193, 114, 3, 184, 13, 13, 187,\n\t\t175, 79, 124, 156, 118, 211, 107, 1, 238, 136, 94, 178, 169,\n\t\t63, 11, 208, 42, 115, 66, 78, 248, 88, 14, 54, 232, 208, 114,\n\t\t92, 2, 125, 164, 110, 39, 18, 3, 7, 61, 188, 118, 45, 30,\n\t\t22, 71, 54, 34, 179, 152, 252, 161, 88, 41, 132, 131, 104,\n\t\t101, 104, 214, 172, 167, 69, 228, 232, 100, 40, 108, 92, 252,\n\t\t148, 209, 8, 165, 132, 2, 205, 135, 113, 21, 63, 175, 54,\n\t\t121, 78, 18, 27, 10, 54, 14, 181, 121, 8, 40, 188, 40, 217,\n\t\t108, 191, 29, 69, 190, 26, 47, 5, 106, 60, 178, 196, 50, 54,\n\t\t148, 120, 110, 105, 40, 22, 160, 172, 51, 33, 199, 27, 108,\n\t\t16, 69, 51, 17, 192, 108, 155, 164, 164, 196, 135, 51, 137,\n\t\t192, 156, 225, 132, 28, 110, 116, 202, 163, 175, 77, 220,\n\t\t137, 30, 234, 122, 3, 81, 79, 141, 14, 254, 64, 124, 47, 216,\n\t\t138, 20, 215, 251, 75, 72, 136, 51, 138, 80, 189, 249, 204,\n\t\t79, 89, 156, 92, 25, 66, 150, 147, 55, 203, 129, 133, 155,\n\t\t131, 39, 234, 40, 85, 62, 94, 159, 61, 43, 222, 113, 121,\n\t\t2, 38, 100, 142, 125, 161, 134, 139, 111, 174, 157, 87, 46,\n\t\t57, 244, 249, 126, 165, 133, 194, 28, 92, 151, 68, 58, 122,\n\t\t134, 189, 99, 141, 197, 61, 196, 72, 220, 66, 8, 137, 53,\n\t\t134, 8, 206, 231, 50, 158, 69, 182, 17, 151, 14, 219, 198,\n\t\t215, 120, 225, 128, 163, 60, 48, 94, 218, 63, 54, 198, 31,\n\t\t30, 21, 189, 42, 155, 202, 189, 245, 233, 166, 60, 142, 47,\n\t\t33, 17, 154, 113, 204, 247, 197, 123, 252, 100, 230, 114,\n\t\t106, 110, 182, 208, 156, 155, 141, 11, 29, 122, 177, 24, 122,\n\t\t225, 155, 165, 85, 97, 120, 93, 150, 180, 73, 36, 39, 231,\n\t\t223, 96, 114, 66, 31, 94, 2, 117, 17, 80, 164, 50, 132, 56,\n\t\t38, 36, 25, 69, 69, 252, 146, 146, 228, 158, 240, 67, 121,\n\t\t227, 126, 113, 169, 83, 127, 25, 57, 44, 75, 202, 240, 125,\n\t\t77, 35, 195, 77, 74, 247, 158, 197, 196, 217, 168, 5, 253,\n\t\t142, 158, 132, 238, 195, 76, 228, 35, 186, 153, 196, 235,\n\t\t122, 39, 209, 15, 118, 50, 143, 87, 229, 99, 181, 47, 95,\n\t\t160, 92, 39, 125, 212, 66, 48, 89, 186, 225, 132, 60, 198,\n\t\t110, 95, 215, 45, 58, 149, 246, 134, 6, 129, 191, 74, 253,\n\t\t116, 87, 45, 17, 31, 174, 230, 18, 135, 44, 198, 200, 22,\n\t\t34, 162, 21, 56, 185, 13, 103, 173, 12, 0, 235, 249, 233,\n\t\t33, 250, 145, 80, 119, 172, 85, 214, 199, 190, 10, 130, 99,\n\t\t15, 93, 87, 61, 231, 54, 60, 223, 160, 58, 217, 183, 108,\n\t\t120, 178, 65, 83, 98, 121, 159, 107, 217, 240, 116, 211, 96,\n\t\t144, 172, 62, 115, 177, 35, 177, 225, 125, 139, 62, 166, 102,\n\t\t131, 203, 224, 41, 39, 192, 240, 166, 117, 228, 166, 122,\n\t\t99, 46, 21, 81, 133, 94, 46, 208, 154, 249, 194, 240, 183,\n\t\t40, 5, 239, 55, 132, 242, 41, 8, 87, 151, 138, 65, 203, 220,\n\t\t180, 142, 223, 20, 111, 49, 112, 80, 167, 116, 23, 106, 38,\n\t\t232, 48, 213, 102, 47, 182, 12, 251, 168, 139, 17, 203, 213,\n\t\t69, 120, 110, 195, 231, 109, 164, 227, 212, 143, 204, 131,\n\t\t172, 84, 108, 111, 219, 132, 7, 25, 181, 68, 119, 135, 243,\n\t\t138, 122, 206, 56, 234, 205, 198, 230, 14, 117, 86, 187, 161,\n\t\t147, 92, 208, 68, 42, 148, 74, 158, 30, 69, 84, 165, 114,\n\t\t89, 129, 153, 138, 242, 202, 114, 174, 92, 94, 26, 63, 21,\n\t\t197, 164, 21, 157, 0, 84, 110, 195, 179, 45, 240, 169, 24,\n\t\t104, 109, 141, 122, 36, 144, 247, 231, 13, 200, 240, 73, 183,\n\t\t104, 207, 79, 79, 253, 40, 146, 49, 153, 180, 158, 125, 3,\n\t\t197, 23, 124, 124, 114, 185, 10, 252, 185, 207, 228, 130,\n\t\t125, 217, 74, 129, 13, 203, 18, 17, 4, 74, 68, 59, 190, 214,\n\t\t235, 161, 51, 187, 146, 138, 228, 39, 33, 137, 100, 87, 239,\n\t\t174, 225, 76, 234, 161, 179, 38, 228, 13, 199, 184, 47, 56,\n\t\t91, 155, 136, 179, 8, 209, 134, 200, 71, 137, 172, 18, 229,\n\t\t204, 201, 135, 195, 119, 170, 190, 13, 181, 97, 190, 36, 95,\n\t\t66, 146, 108, 72, 162, 233, 15, 113, 70, 137, 154, 129, 243,\n\t\t175, 11, 192, 85, 29, 124, 117, 152, 181, 155, 53, 107, 39,\n\t\t81, 196, 91, 175, 200, 25, 2, 70, 29, 191, 109, 205, 237,\n\t\t147, 47, 200, 183, 149, 162, 119, 65, 210, 203, 82, 154, 92,\n\t\t87, 87, 88, 13, 37, 45, 65, 189, 158, 109, 140, 107, 122,\n\t\t245, 122, 159, 124, 69, 38, 15, 148, 151, 158, 136, 24, 154,\n\t\t219, 240, 114, 203, 126, 171, 57, 48, 55, 122, 41, 239, 147,\n\t\t119, 188, 237, 8, 208, 218, 83, 27, 139, 73, 159, 101, 101,\n\t\t114, 121, 141, 139, 111, 105, 115, 69, 24, 110, 239, 93, 87,\n\t\t78, 226, 250, 170, 226, 106, 106, 107, 233, 187, 191, 246,\n\t\t140, 10, 251, 132, 110, 64, 220, 59, 65, 4, 175, 174, 233,\n\t\t233, 78, 67, 93, 181, 102, 188, 254, 203, 107, 234, 55, 84,\n\t\t23, 150, 148, 17, 124, 188, 166, 234, 160, 95, 173, 121, 234,\n\t\t71, 188, 226, 135, 31, 128, 14, 202, 97, 21, 23, 114, 220,\n\t\t16, 154, 72, 231, 54, 188, 218, 138, 128, 88, 97, 52, 140,\n\t\t247, 243, 187, 124, 145, 17, 115, 83, 25, 177, 245, 67, 43,\n\t\t70, 221, 39, 175, 54, 112, 176, 86, 119, 227, 31, 91, 72,\n\t\t112, 54, 211, 151, 255, 133, 155, 201, 135, 77, 97, 82, 119,\n\t\t226, 65, 225, 227, 220, 217, 208, 136, 117, 54, 73, 28, 45,\n\t\t111, 117, 134, 68, 35, 57, 235, 204, 163, 29, 122, 233, 204,\n\t\t89, 135, 38, 73, 156, 116, 54, 78, 58, 68, 79, 201, 121, 150,\n\t\t36, 79, 248, 43, 14, 143, 213, 154, 160, 172, 198, 166, 13,\n\t\t131, 33, 214, 51, 198, 86, 169, 80, 254, 175, 146, 152, 197,\n\t\t243, 56, 232, 117, 199, 150, 199, 95, 15, 111, 223, 182, 134,\n\t\t248, 200, 159, 236, 29, 214, 243, 226, 148, 237, 144, 82,\n\t\t210, 118, 214, 91, 197, 9, 59, 183, 121, 45, 107, 104, 13,\n\t\t133, 53, 96, 207, 225, 50, 201, 109, 75, 223, 164, 210, 169,\n\t\t12, 198, 232, 123, 182, 13, 209, 116, 219, 18, 136, 219, 55,\n\t\t58, 229, 100, 9, 229, 131, 177, 64, 75, 108, 138, 42, 125,\n\t\t37, 111, 24, 146, 70, 85, 254, 17, 202, 224, 42, 181, 80,\n\t\t138, 229, 149, 51, 247, 217, 149, 5, 86, 191, 55, 176, 236,\n\t\t109, 151, 119, 215, 139, 66, 185, 13, 201, 84, 251, 235, 255,\n\t\t33, 50, 180, 220, 179, 114, 27, 156, 233, 205, 205, 192, 147,\n\t\t105, 107, 106, 204, 70, 114, 199, 236, 138, 209, 117, 86,\n\t\t118, 18, 162, 154, 61, 202, 254, 108, 72, 255, 105, 176, 109,\n\t\t149, 234, 114, 27, 252, 166, 205, 42, 110, 53, 131, 66, 204,\n\t\t66, 235, 119, 95, 230, 36, 141, 183, 78, 180, 10, 240, 189,\n\t\t117, 217, 141, 83, 192, 79, 135, 73, 152, 173, 133, 178, 174,\n\t\t72, 102, 234, 76, 193, 58, 117, 56, 226, 65, 39, 199, 18,\n\t\t60, 120, 51, 229, 146, 2, 249, 233, 216, 148, 202, 60, 215,\n\t\t110, 46, 125, 178, 137, 104, 98, 54, 140, 52, 178, 177, 232,\n\t\t145, 147, 178, 78, 129, 153, 21, 151, 20, 129, 172, 89, 14,\n\t\t149, 217, 216, 132, 224, 204, 56, 243, 143, 132, 84, 84, 52,\n\t\t138, 30, 145, 223, 253, 169, 194, 199, 209, 20, 137, 170,\n\t\t176, 202, 144, 142, 106, 54, 236, 147, 204, 124, 95, 247,\n\t\t1, 144, 224, 21, 139, 57, 159, 142, 14, 40, 164, 245, 227,\n\t\t160, 84, 240, 169, 153, 77, 57, 210, 154, 42, 157, 200, 216,\n\t\t20, 67, 52, 142, 156, 198, 73, 114, 101, 162, 73, 21, 163,\n\t\t98, 19, 39, 23, 157, 56, 99, 29, 39, 237, 208, 203, 21, 218,\n\t\t44, 136, 144, 16, 210, 179, 171, 146, 96, 249, 9, 166, 61,\n\t\t198, 119, 189, 94, 207, 136, 122, 180, 86, 97, 138, 107, 230,\n\t\t136, 137, 97, 36, 63, 254, 253, 35, 63, 56, 208, 37, 243,\n\t\t41, 188, 212, 60, 200, 208, 124, 29, 115, 104, 37, 82, 155,\n\t\t155, 219, 176, 104, 219, 222, 13, 49, 22, 130, 166, 178, 255,\n\t\t19, 197, 88, 88, 76, 49, 198, 66, 168, 93, 156, 69, 69, 17,\n\t\t100, 193, 157, 234, 52, 87, 151, 107, 27, 194, 105, 205, 17,\n\t\t216, 107, 195, 178, 232, 235, 50, 159, 211, 21, 59, 205, 82,\n\t\t79, 104, 3, 203, 114, 221, 108, 186, 93, 58, 120, 110, 66,\n\t\t64, 62, 21, 62, 186, 66, 9, 176, 43, 118, 173, 118, 239, 120,\n\t\t31, 146, 100, 92, 254, 182, 107, 56, 226, 22, 224, 109, 147,\n\t\t149, 25, 202, 202, 145, 108, 175, 46, 49, 171, 166, 3, 31,\n\t\t165, 5, 241, 171, 200, 147, 30, 22, 39, 241, 90, 137, 201,\n\t\t218, 161, 182, 166, 19, 235, 45, 232, 179, 75, 102, 83, 240,\n\t\t166, 24, 45, 220, 226, 140, 48, 222, 78, 137, 181, 168, 220,\n\t\t62, 230, 176, 220, 66, 246, 214, 200, 254, 206, 225, 124,\n\t\t14, 232, 55, 66, 123, 145, 19, 82, 157, 254, 86, 169, 110,\n\t\t57, 111, 221, 172, 123, 77, 70, 178, 10, 30, 150, 171, 104,\n\t\t110, 200, 235, 137, 10, 220, 203, 101, 206, 189, 140, 121,\n\t\t52, 98, 254, 220, 97, 212, 221, 110, 89, 218, 178, 201, 165,\n\t\t142, 240, 42, 154, 215, 85, 132, 87, 209, 92, 49, 227, 66,\n\t\t255, 120, 109, 183, 40, 79, 153, 210, 116, 173, 244, 24, 229,\n\t\t46, 215, 95, 44, 110, 91, 59, 27, 78, 115, 249, 68, 109, 97,\n\t\t241, 222, 98, 69, 213, 56, 98, 60, 97, 187, 161, 31, 21, 222,\n\t\t220, 130, 109, 241, 23, 11, 49, 234, 178, 82, 241, 56, 22,\n\t\t65, 145, 53, 92, 75, 74, 197, 72, 43, 21, 197, 92, 18, 26,\n\t\t198, 140, 222, 4, 142, 85, 109, 196, 182, 65, 155, 46, 92,\n\t\t74, 7, 25, 42, 245, 96, 89, 135, 119, 68, 126, 95, 113, 242,\n\t\t244, 39, 107, 242, 142, 98, 5, 241, 92, 251, 142, 229, 54,\n\t\t116, 183, 162, 151, 140, 197, 111, 86, 174, 195, 104, 19,\n\t\t122, 217, 92, 119, 162, 186, 149, 19, 53, 221, 214, 151, 138,\n\t\t151, 49, 101, 137, 195, 232, 242, 170, 169, 199, 171, 122,\n\t\t3, 218, 98, 165, 236, 162, 100, 137, 56, 140, 130, 239, 71,\n\t\t90, 38, 137, 94, 181, 27, 149, 130, 99, 225, 236, 126, 201,\n\t\t104, 202, 27, 54, 77, 250, 30, 106, 18, 190, 165, 13, 153,\n\t\t210, 46, 122, 56, 143, 35, 230, 71, 25, 237, 48, 65, 137,\n\t\t69, 136, 18, 237, 29, 202, 23, 233, 51, 157, 51, 233, 60,\n\t\t42, 53, 102, 198, 87, 249, 70, 124, 166, 225, 44, 113, 230,\n\t\t165, 218, 158, 19, 185, 169, 231, 92, 208, 154, 119, 169,\n\t\t49, 124, 139, 67, 234, 162, 141, 0, 151, 146, 37, 190, 222,\n\t\t202, 82, 182, 34, 51, 21, 247, 228, 90, 116, 54, 33, 211,\n\t\t41, 80, 80, 112, 16, 231, 44, 186, 238, 172, 8, 24, 153, 103,\n\t\t229, 185, 172, 95, 81, 165, 171, 230, 149, 234, 241, 102,\n\t\t205, 171, 210, 166, 162, 94, 191, 106, 108, 95, 173, 196,\n\t\t13, 59, 40, 86, 201, 236, 227, 137, 106, 164, 165, 147, 155,\n\t\t182, 78, 19, 39, 173, 12, 255, 160, 136, 124, 81, 67, 36,\n\t\t112, 49, 149, 154, 79, 149, 124, 189, 5, 175, 20, 42, 210,\n\t\t168, 85, 170, 17, 106, 216, 9, 185, 66, 230, 88, 239, 3, 125,\n\t\t150, 154, 240, 206, 129, 129, 119, 114, 27, 38, 211, 218,\n\t\t37, 177, 50, 30, 87, 119, 192, 101, 203, 120, 214, 115, 96,\n\t\t159, 28, 59, 208, 74, 116, 207, 35, 136, 132, 78, 131, 73,\n\t\t163, 197, 16, 255, 202, 2, 97, 110, 195, 126, 35, 143, 217,\n\t\t20, 64, 134, 11, 252, 66, 202, 13, 252, 213, 44, 118, 18,\n\t\t119, 63, 94, 153, 119, 160, 212, 116, 217, 109, 108, 212,\n\t\t0, 153, 207, 137, 195, 42, 241, 35, 38, 57, 212, 201, 20,\n\t\t10, 110, 139, 47, 222, 80, 109, 136, 54, 111, 136, 107, 184,\n\t\t28, 25, 253, 99, 208, 7, 225, 112, 149, 131, 72, 142, 51,\n\t\t180, 68, 144, 105, 233, 180, 173, 180, 20, 151, 173, 204,\n\t\t75, 157, 94, 243, 55, 39, 232, 98, 53, 110, 221, 141, 34,\n\t\t206, 71, 167, 162, 239, 231, 187, 96, 88, 27, 122, 161, 223,\n\t\t47, 212, 173, 213, 44, 8, 83, 74, 133, 109, 88, 189, 122,\n\t\t153, 210, 62, 17, 238, 45, 29, 199, 28, 178, 146, 174, 247,\n\t\t90, 68, 49, 72, 70, 219, 169, 124, 177, 243, 154, 52, 231,\n\t\t53, 24, 8, 253, 52, 23, 102, 75, 128, 80, 106, 106, 131, 14,\n\t\t151, 242, 57, 136, 4, 30, 120, 38, 170, 170, 223, 75, 60,\n\t\t89, 181, 215, 219, 54, 193, 254, 148, 208, 158, 177, 211,\n\t\t108, 83, 117, 141, 245, 246, 201, 102, 10, 180, 231, 160,\n\t\t176, 80, 208, 244, 84, 41, 147, 75, 69, 215, 69, 81, 46, 87,\n\t\t52, 150, 121, 61, 45, 52, 209, 13, 233, 40, 204, 243, 116,\n\t\t26, 183, 220, 43, 87, 109, 178, 49, 1, 154, 18, 10, 76, 244,\n\t\t131, 77, 147, 104, 212, 77, 248, 60, 241, 18, 33, 181, 33,\n\t\t26, 139, 248, 89, 81, 101, 171, 148, 141, 210, 83, 70, 19,\n\t\t63, 85, 183, 106, 182, 41, 199, 151, 238, 56, 16, 170, 133,\n\t\t69, 176, 232, 123, 169, 215, 66, 236, 170, 163, 214, 179,\n\t\t243, 211, 97, 66, 247, 166, 34, 160, 207, 79, 133, 9, 189,\n\t\t153, 22, 221, 140, 254, 217, 188, 177, 58, 226, 112, 160,\n\t\t94, 184, 124, 94, 139, 232, 162, 127, 93, 23, 39, 218, 169,\n\t\t115, 123, 39, 119, 127, 166, 147, 195, 50, 98, 222, 222, 211,\n\t\t224, 103, 122, 226, 199, 173, 35, 206, 219, 95, 220, 211,\n\t\t196, 185, 234, 240, 19, 251, 23, 119, 99, 196, 181, 251, 75,\n\t\t251, 17, 78, 156, 55, 232, 165, 49, 196, 236, 249, 119, 232,\n\t\t166, 111, 26, 62, 20, 140, 144, 179, 95, 150, 106, 90, 71,\n\t\t107, 56, 143, 205, 80, 165, 71, 83, 21, 170, 180, 48, 42,\n\t\t48, 194, 100, 168, 122, 117, 84, 121, 18, 147, 112, 122, 67,\n\t\t89, 180, 153, 63, 43, 104, 146, 25, 234, 12, 41, 206, 158,\n\t\t235, 118, 34, 169, 127, 174, 232, 50, 111, 58, 127, 129, 5,\n\t\t15, 190, 3, 178, 127, 157, 214, 255, 100, 186, 37, 170, 64,\n\t\t45, 196, 79, 147, 70, 116, 202, 252, 32, 232, 4, 242, 139,\n\t\t84, 157, 86, 53, 178, 184, 17, 209, 97, 181, 195, 98, 44,\n\t\t44, 119, 44, 58, 210, 14, 145, 142, 59, 101, 133, 106, 37,\n\t\t138, 78, 21, 36, 95, 180, 0, 255, 20, 127, 179, 21, 145, 94,\n\t\t132, 161, 227, 71, 242, 46, 78, 185, 121, 235, 125, 215, 88,\n\t\t150, 75, 155, 52, 98, 102, 97, 163, 163, 151, 219, 131, 54,\n\t\t54, 248, 173, 33, 246, 221, 68, 29, 215, 97, 142, 34, 34,\n\t\t202, 171, 184, 145, 53, 253, 249, 216, 146, 75, 248, 60, 187,\n\t\t230, 94, 226, 96, 170, 110, 121, 249, 6, 145, 87, 13, 252,\n\t\t31, 161, 61, 170, 94, 0, 240, 226, 38, 118, 135, 253, 105,\n\t\t169, 150, 201, 40, 53, 156, 133, 155, 78, 65, 120, 33, 219,\n\t\t141, 129, 61, 155, 159, 190, 107, 21, 152, 71, 19, 185, 211,\n\t\t26, 162, 35, 159, 79, 81, 163, 242, 201, 152, 64, 158, 195,\n\t\t105, 253, 96, 234, 131, 32, 125, 96, 223, 250, 116, 83, 132,\n\t\t146, 243, 233, 230, 200, 79, 153, 113, 253, 240, 164, 11,\n\t\t97, 139, 24, 242, 211, 251, 216, 168, 251, 81, 214, 253, 82,\n\t\t196, 7, 16, 31, 94, 233, 70, 159, 173, 33, 152, 130, 129,\n\t\t15, 126, 234, 4, 164, 28, 96, 66, 206, 40, 245, 231, 78, 141,\n\t\t254, 158, 118, 117, 127, 18, 166, 132, 246, 248, 49, 151,\n\t\t78, 230, 15, 53, 212, 246, 227, 48, 244, 89, 90, 6, 92, 208,\n\t\t108, 208, 252, 79, 192, 72, 65, 188, 252, 167, 96, 162, 134,\n\t\t21, 52, 249, 205, 134, 37, 124, 187, 254, 211, 150, 240, 241,\n\t\t186, 97, 207, 243, 157, 45, 214, 162, 182, 70, 50, 192, 184,\n\t\t136, 120, 90, 90, 40, 247, 255, 119, 11, 21, 182, 44, 207,\n\t\t171, 229, 159, 182, 60, 239, 150, 205, 203, 227, 26, 203,\n\t\t80, 91, 163, 215, 18, 193, 149, 150, 103, 150, 193, 9, 151,\n\t\t104, 5, 246, 171, 175, 171, 191, 88, 148, 43, 188, 136, 183,\n\t\t172, 167, 191, 208, 119, 159, 50, 8, 152, 189, 101, 33, 127,\n\t\t126, 49, 110, 10, 175, 172, 91, 135, 23, 7, 151, 191, 88,\n\t\t168, 41, 87, 156, 20, 248, 120, 63, 196, 89, 39, 165, 52,\n\t\t228, 59, 202, 115, 214, 180, 227, 249, 172, 227, 116, 146,\n\t\t56, 99, 180, 195, 60, 135, 117, 220, 152, 166, 120, 73, 76,\n\t\t47, 253, 148, 225, 117, 111, 158, 219, 112, 60, 29, 153, 236,\n\t\t104, 18, 111, 58, 222, 46, 70, 132, 212, 11, 88, 24, 192,\n\t\t198, 193, 238, 224, 78, 39, 188, 218, 117, 184, 236, 98, 82,\n\t\t171, 13, 175, 211, 230, 241, 94, 102, 67, 239, 93, 162, 233,\n\t\t222, 134, 111, 250, 120, 119, 33, 14, 135, 228, 76, 151, 150,\n\t\t230, 3, 26, 195, 98, 91, 207, 25, 78, 51, 21, 115, 218, 80,\n\t\t49, 217, 32, 78, 89, 103, 30, 71, 145, 240, 143, 227, 64,\n\t\t96, 30, 237, 164, 52, 89, 211, 164, 87, 141, 202, 101, 157,\n\t\t121, 126, 218, 113, 86, 171, 64, 6, 64, 17, 105, 20, 150,\n\t\t113, 199, 143, 88, 220, 113, 240, 26, 29, 131, 149, 113, 120,\n\t\t119, 156, 165, 227, 71, 157, 141, 71, 35, 221, 159, 99, 118,\n\t\t134, 223, 117, 226, 5, 56, 156, 138, 56, 248, 137, 101, 195,\n\t\t227, 54, 93, 251, 81, 188, 140, 51, 54, 205, 102, 161, 175,\n\t\t111, 187, 191, 110, 85, 185, 251, 115, 180, 57, 80, 161, 161,\n\t\t34, 12, 43, 122, 86, 110, 191, 30, 19, 182, 66, 200, 165,\n\t\t113, 99, 43, 189, 178, 110, 7, 241, 210, 106, 61, 134, 214,\n\t\t109, 197, 120, 108, 199, 166, 214, 109, 121, 184, 173, 230,\n\t\t211, 105, 221, 198, 95, 213, 155, 138, 219, 145, 76, 171,\n\t\t156, 231, 240, 188, 205, 100, 162, 129, 5, 57, 39, 168, 114,\n\t\t46, 24, 25, 17, 57, 43, 114, 214, 34, 236, 149, 138, 224,\n\t\t49, 52, 223, 90, 58, 39, 102, 199, 140, 139, 99, 4, 248, 233,\n\t\t68, 206, 122, 230, 36, 187, 145, 179, 54, 183, 183, 150, 213,\n\t\t142, 201, 62, 249, 138, 10, 122, 125, 201, 137, 27, 222, 47,\n\t\t130, 236, 56, 235, 194, 111, 30, 191, 9, 51, 211, 136, 176,\n\t\t185, 13, 175, 102, 228, 108, 202, 159, 204, 163, 162, 21,\n\t\t129, 135, 58, 253, 69, 193, 138, 254, 76, 143, 175, 98, 213,\n\t\t227, 171, 184, 185, 199, 125, 180, 140, 231, 27, 224, 207,\n\t\t235, 245, 131, 238, 245, 67, 75, 175, 103, 137, 147, 122,\n\t\t51, 63, 106, 237, 84, 73, 186, 223, 217, 115, 164, 33, 28,\n\t\t181, 64, 248, 181, 193, 68, 23, 29, 31, 161, 23, 252, 94,\n\t\t20, 71, 227, 27, 245, 84, 218, 105, 171, 96, 183, 111, 97,\n\t\t191, 214, 127, 18, 158, 72, 143, 167, 228, 214, 160, 185,\n\t\t255, 163, 120, 233, 71, 29, 17, 121, 166, 24, 194, 240, 207,\n\t\t234, 181, 223, 218, 107, 156, 177, 206, 127, 252, 55, 206,\n\t\t109, 4, 124, 8, 92, 132, 218, 81, 161, 243, 245, 127, 50,\n\t\t188, 245, 19, 195, 236, 100, 63, 136, 83, 106, 229, 240, 180,\n\t\t29, 81, 181, 184, 18, 192, 124, 24, 113, 98, 243, 126, 219,\n\t\t53, 239, 107, 154, 82, 214, 228, 132, 240, 166, 25, 203, 73,\n\t\t28, 135, 105, 36, 12, 186, 95, 81, 36, 152, 87, 15, 134, 42,\n\t\t65, 222, 179, 42, 107, 178, 214, 234, 245, 155, 9, 163, 186,\n\t\t76, 75, 209, 94, 187, 118, 49, 81, 234, 123, 107, 85, 12,\n\t\t37, 92, 173, 88, 11, 70, 121, 19, 173, 73, 158, 195, 139,\n\t\t150, 75, 46, 220, 24, 141, 95, 38, 83, 164, 148, 208, 177,\n\t\t108, 116, 234, 70, 93, 244, 155, 169, 188, 66, 250, 166, 174,\n\t\t144, 224, 115, 27, 158, 254, 31, 194, 65, 228, 237, 182, 253,\n\t\t40, 238, 65, 85, 40, 22, 84, 203, 49, 233, 73, 249, 172, 85,\n\t\t160, 46, 104, 47, 218, 65, 150, 252, 252, 49, 232, 106, 17,\n\t\t10, 64, 144, 70, 154, 48, 127, 238, 4, 229, 146, 107, 249,\n\t\t86, 4, 36, 104, 138, 25, 96, 4, 7, 192, 48, 89, 69, 118, 54,\n\t\t209, 58, 31, 229, 151, 105, 37, 136, 0, 14, 32, 75, 160, 104,\n\t\t126, 144, 195, 187, 246, 27, 49, 116, 236, 127, 54, 133, 47,\n\t\t83, 99, 41, 101, 124, 46, 35, 228, 148, 180, 179, 131, 45,\n\t\t97, 92, 244, 27, 195, 185, 190, 252, 94, 141, 201, 130, 164,\n\t\t167, 158, 109, 33, 126, 240, 174, 92, 135, 57, 186, 174, 116,\n\t\t151, 77, 37, 25, 46, 76, 178, 163, 145, 202, 193, 171, 28,\n\t\t40, 84, 192, 239, 247, 161, 217, 153, 181, 19, 245, 48, 232,\n\t\t81, 82, 13, 230, 242, 114, 219, 142, 120, 202, 43, 23, 27,\n\t\t2, 195, 25, 188, 155, 194, 173, 1, 160, 190, 103, 75, 84,\n\t\t11, 42, 140, 31, 95, 109, 209, 144, 190, 20, 202, 225, 158,\n\t\t147, 219, 240, 161, 48, 171, 254, 176, 182, 225, 227, 119,\n\t\t217, 247, 126, 208, 170, 11, 195, 161, 72, 122, 21, 26, 140,\n\t\t240, 139, 41, 137, 122, 194, 27, 206, 190, 137, 201, 156,\n\t\t195, 10, 39, 35, 188, 157, 77, 51, 12, 159, 226, 184, 61,\n\t\t23, 197, 18, 68, 24, 195, 106, 170, 179, 198, 214, 100, 189,\n\t\t48, 93, 26, 148, 87, 141, 223, 209, 162, 208, 171, 169, 154,\n\t\t217, 219, 41, 104, 99, 109, 101, 28, 241, 126, 10, 145, 10,\n\t\t109, 140, 205, 121, 78, 234, 217, 58, 93, 134, 49, 246, 215,\n\t\t148, 239, 40, 165, 141, 168, 180, 117, 173, 231, 215, 62,\n\t\t121, 218, 212, 19, 220, 138, 154, 189, 192, 62, 243, 210,\n\t\t218, 11, 44, 170, 120, 129, 21, 66, 157, 13, 236, 170, 102,\n\t\t241, 208, 188, 170, 248, 52, 91, 147, 9, 185, 72, 218, 173,\n\t\t29, 148, 170, 115, 159, 124, 156, 66, 4, 183, 152, 142, 161,\n\t\t192, 140, 78, 233, 213, 40, 170, 153, 126, 130, 99, 180, 83,\n\t\t74, 2, 130, 129, 11, 19, 123, 92, 242, 210, 192, 139, 88,\n\t\t25, 51, 142, 47, 59, 158, 165, 72, 228, 199, 160, 69, 110,\n\t\t140, 232, 170, 45, 132, 92, 28, 45, 252, 165, 18, 124, 146,\n\t\t171, 182, 168, 57, 10, 231, 68, 87, 228, 132, 19, 15, 248,\n\t\t3, 239, 71, 157, 132, 144, 100, 84, 206, 26, 89, 36, 131,\n\t\t204, 209, 72, 227, 255, 163, 238, 234, 123, 219, 182, 185,\n\t\t253, 87, 81, 141, 96, 160, 80, 70, 107, 31, 224, 121, 128,\n\t\t235, 206, 8, 210, 38, 125, 89, 155, 54, 79, 210, 173, 221,\n\t\t134, 162, 160, 45, 58, 98, 101, 147, 174, 68, 197, 209, 26,\n\t\t125, 142, 251, 239, 253, 30, 251, 111, 247, 139, 93, 240,\n\t\t240, 69, 164, 44, 217, 73, 214, 14, 247, 193, 138, 69, 182,\n\t\t164, 67, 154, 60, 60, 47, 228, 57, 191, 99, 139, 156, 23,\n\t\t77, 12, 229, 169, 99, 76, 250, 122, 163, 72, 107, 162, 85,\n\t\t129, 161, 122, 8, 228, 182, 226, 185, 16, 146, 22, 0, 180,\n\t\t2, 155, 40, 234, 202, 158, 227, 126, 209, 62, 47, 77, 199,\n\t\t247, 30, 224, 140, 165, 244, 13, 127, 76, 102, 121, 90, 136,\n\t\t21, 152, 47, 234, 235, 37, 156, 97, 107, 121, 219, 224, 53,\n\t\t147, 153, 46, 115, 161, 209, 91, 154, 184, 193, 213, 45, 126,\n\t\t181, 233, 205, 77, 126, 247, 83, 120, 52, 252, 229, 236, 22,\n\t\t77, 153, 159, 123, 147, 166, 158, 235, 236, 160, 160, 41,\n\t\t81, 107, 100, 63, 73, 10, 105, 237, 197, 89, 61, 17, 53, 46,\n\t\t235, 222, 115, 25, 18, 116, 193, 43, 56, 254, 166, 5, 146,\n\t\t193, 95, 218, 225, 36, 5, 154, 102, 112, 146, 23, 55, 120,\n\t\t222, 79, 51, 24, 110, 11, 196, 107, 149, 4, 77, 246, 14, 100,\n\t\t226, 166, 26, 61, 0, 96, 118, 36, 234, 184, 193, 139, 94,\n\t\t22, 129, 80, 183, 123, 15, 59, 176, 98, 246, 246, 189, 7,\n\t\t13, 238, 52, 9, 225, 219, 245, 46, 7, 182, 207, 102, 200,\n\t\t188, 74, 183, 33, 54, 19, 140, 192, 254, 212, 240, 153, 83,\n\t\t172, 115, 146, 210, 17, 94, 212, 136, 198, 125, 32, 76, 110,\n\t\t8, 147, 30, 62, 61, 48, 201, 253, 181, 6, 129, 28, 47, 93,\n\t\t225, 22, 55, 121, 182, 47, 55, 238, 73, 8, 219, 102, 186,\n\t\t97, 183, 65, 83, 250, 85, 168, 62, 52, 84, 59, 118, 209, 86,\n\t\t106, 15, 183, 141, 150, 33, 216, 52, 40, 14, 96, 67, 223,\n\t\t101, 152, 195, 137, 78, 19, 227, 165, 199, 26, 190, 208, 237,\n\t\t71, 254, 209, 136, 66, 116, 177, 220, 159, 10, 33, 75, 89,\n\t\t40, 203, 85, 245, 73, 25, 62, 7, 231, 21, 162, 26, 17, 8,\n\t\t194, 31, 193, 112, 109, 12, 138, 138, 205, 105, 223, 131,\n\t\t196, 244, 108, 147, 139, 182, 51, 13, 244, 91, 227, 128, 49,\n\t\t37, 164, 246, 233, 37, 229, 178, 108, 139, 73, 233, 187, 109,\n\t\t141, 41, 115, 122, 133, 195, 161, 187, 33, 127, 109, 227,\n\t\t151, 111, 208, 141, 219, 50, 215, 55, 239, 194, 67, 99, 82,\n\t\t60, 95, 26, 152, 56, 128, 94, 163, 60, 29, 97, 53, 199, 78,\n\t\t202, 12, 176, 107, 23, 255, 109, 117, 117, 215, 110, 13, 179,\n\t\t116, 140, 167, 125, 66, 242, 215, 101, 139, 53, 30, 136, 70,\n\t\t103, 45, 235, 37, 164, 207, 36, 62, 196, 13, 190, 236, 151,\n\t\t181, 90, 95, 60, 114, 160, 128, 97, 213, 138, 170, 176, 1,\n\t\t229, 19, 40, 34, 109, 151, 23, 41, 80, 88, 164, 70, 183, 230,\n\t\t242, 77, 3, 187, 28, 176, 123, 173, 242, 193, 58, 228, 107,\n\t\t94, 235, 51, 214, 151, 206, 208, 132, 177, 214, 219, 31, 220,\n\t\t179, 253, 254, 247, 191, 193, 238, 211, 91, 26, 13, 94, 13,\n\t\t136, 101, 40, 197, 212, 45, 114, 99, 64, 49, 91, 164, 60,\n\t\t84, 76, 246, 149, 30, 120, 74, 213, 66, 157, 190, 224, 41,\n\t\t189, 210, 149, 135, 116, 254, 246, 9, 202, 106, 44, 49, 137,\n\t\t219, 173, 243, 77, 119, 41, 21, 179, 10, 144, 186, 180, 99,\n\t\t218, 39, 36, 180, 95, 3, 5, 140, 172, 10, 236, 211, 6, 41,\n\t\t35, 11, 113, 225, 88, 193, 255, 114, 223, 218, 40, 35, 204,\n\t\t19, 123, 109, 184, 181, 119, 81, 144, 74, 234, 253, 6, 31,\n\t\t67, 115, 90, 99, 158, 56, 221, 11, 56, 54, 100, 151, 70, 9,\n\t\t16, 140, 150, 53, 34, 193, 42, 24, 47, 227, 141, 99, 5, 221,\n\t\t111, 115, 62, 98, 250, 160, 203, 162, 191, 66, 191, 93, 214,\n\t\t136, 132, 65, 6, 62, 171, 201, 13, 86, 211, 245, 248, 119,\n\t\t49, 26, 148, 72, 239, 96, 121, 98, 234, 152, 44, 142, 27,\n\t\t68, 18, 93, 98, 253, 107, 55, 173, 109, 185, 157, 141, 235,\n\t\t199, 44, 235, 126, 48, 236, 149, 26, 246, 82, 26, 233, 98,\n\t\t147, 149, 3, 83, 74, 89, 115, 161, 225, 73, 10, 40, 242, 161,\n\t\t94, 222, 27, 176, 116, 86, 53, 150, 122, 198, 241, 19, 84,\n\t\t213, 97, 244, 166, 239, 127, 205, 24, 154, 213, 113, 232,\n\t\t103, 105, 1, 108, 190, 123, 130, 10, 247, 122, 230, 156, 25,\n\t\t255, 104, 76, 141, 137, 198, 104, 131, 98, 254, 122, 120,\n\t\t188, 227, 177, 214, 51, 114, 29, 244, 220, 220, 79, 38, 206,\n\t\t202, 179, 167, 212, 36, 200, 9, 79, 12, 212, 20, 8, 37, 83,\n\t\t120, 198, 96, 188, 118, 138, 215, 116, 141, 80, 175, 158,\n\t\t231, 21, 162, 138, 249, 117, 170, 186, 96, 120, 117, 137,\n\t\t71, 111, 178, 136, 139, 123, 80, 193, 181, 90, 232, 140, 203,\n\t\t130, 146, 52, 50, 237, 193, 9, 238, 66, 39, 128, 143, 79,\n\t\t144, 172, 33, 55, 149, 196, 13, 50, 194, 184, 173, 124, 241,\n\t\t4, 177, 58, 100, 127, 201, 228, 130, 70, 190, 24, 236, 110,\n\t\t93, 66, 160, 136, 219, 199, 245, 161, 179, 128, 53, 46, 106,\n\t\t60, 99, 184, 172, 17, 169, 209, 241, 121, 108, 211, 8, 215,\n\t\t245, 230, 6, 238, 249, 32, 231, 132, 241, 220, 61, 177, 105,\n\t\t67, 169, 7, 94, 129, 71, 89, 48, 194, 47, 108, 196, 179, 191,\n\t\t129, 218, 205, 231, 235, 223, 104, 248, 243, 143, 209, 125,\n\t\t153, 64, 110, 165, 221, 154, 214, 103, 150, 101, 68, 22, 106,\n\t\t188, 235, 36, 58, 93, 80, 82, 210, 104, 150, 9, 81, 210, 136,\n\t\t112, 1, 97, 49, 156, 44, 105, 242, 231, 255, 168, 255, 236,\n\t\t102, 246, 216, 108, 114, 194, 118, 95, 61, 228, 143, 66, 214,\n\t\t169, 62, 255, 112, 144, 209, 121, 13, 200, 67, 74, 46, 206,\n\t\t197, 172, 42, 71, 49, 62, 27, 244, 163, 48, 153, 252, 14,\n\t\t117, 33, 171, 9, 71, 94, 231, 189, 13, 208, 129, 149, 117,\n\t\t174, 86, 116, 21, 187, 146, 181, 179, 204, 203, 56, 40, 38,\n\t\t39, 232, 45, 131, 2, 158, 58, 243, 160, 160, 68, 210, 35,\n\t\t230, 156, 46, 0, 143, 43, 245, 49, 162, 14, 15, 132, 82, 246,\n\t\t109, 251, 215, 215, 16, 106, 96, 178, 157, 36, 145, 52, 217,\n\t\t187, 190, 174, 58, 235, 22, 200, 218, 253, 145, 205, 181,\n\t\t126, 212, 183, 214, 77, 17, 179, 29, 139, 189, 119, 123, 185,\n\t\t103, 21, 191, 128, 156, 216, 44, 67, 163, 101, 158, 178, 66,\n\t\t103, 243, 142, 98, 124, 153, 225, 183, 25, 26, 105, 232, 83,\n\t\t81, 212, 145, 134, 231, 194, 171, 12, 213, 181, 77, 165, 205,\n\t\t107, 100, 173, 65, 127, 135, 11, 185, 195, 126, 60, 58, 83,\n\t\t124, 99, 206, 249, 15, 244, 234, 31, 195, 18, 183, 104, 20,\n\t\t31, 7, 151, 248, 12, 70, 39, 74, 109, 23, 108, 160, 134, 49,\n\t\t63, 117, 250, 196, 45, 151, 182, 173, 49, 221, 187, 180, 245,\n\t\t116, 68, 36, 226, 116, 221, 54, 27, 49, 238, 246, 214, 220,\n\t\t163, 127, 254, 161, 55, 96, 70, 223, 171, 223, 70, 14, 116,\n\t\t113, 137, 49, 209, 95, 250, 103, 58, 90, 66, 28, 89, 9, 177,\n\t\t174, 99, 119, 198, 115, 162, 69, 196, 145, 56, 132, 137, 26,\n\t\t53, 248, 73, 143, 208, 184, 234, 91, 60, 80, 34, 219, 225,\n\t\t103, 195, 135, 241, 8, 224, 199, 26, 124, 56, 180, 218, 142,\n\t\t88, 241, 36, 19, 37, 229, 118, 169, 189, 26, 122, 178, 39,\n\t\t39, 252, 227, 144, 95, 253, 123, 26, 84, 207, 57, 101, 248,\n\t\t125, 133, 184, 129, 77, 60, 26, 148, 120, 157, 124, 14, 7,\n\t\t202, 35, 17, 29, 64, 209, 187, 53, 112, 81, 144, 233, 209,\n\t\t219, 192, 177, 219, 178, 132, 8, 214, 62, 49, 99, 21, 215,\n\t\t141, 80, 123, 142, 140, 117, 252, 177, 214, 16, 165, 65, 242,\n\t\t128, 182, 99, 187, 110, 134, 113, 138, 236, 190, 206, 161,\n\t\t148, 86, 200, 216, 49, 216, 153, 109, 224, 130, 186, 65, 206,\n\t\t15, 60, 244, 95, 15, 54, 130, 178, 29, 58, 205, 233, 224,\n\t\t44, 253, 167, 230, 252, 107, 208, 59, 111, 17, 43, 190, 240,\n\t\t33, 0, 36, 32, 0, 216, 201, 55, 11, 242, 245, 93, 140, 51,\n\t\t95, 113, 156, 212, 67, 154, 33, 165, 165, 60, 37, 50, 235,\n\t\t85, 12, 129, 132, 191, 170, 145, 77, 78, 143, 7, 53, 195,\n\t\t179, 187, 107, 134, 111, 111, 6, 6, 113, 123, 237, 126, 137,\n\t\t86, 5, 227, 141, 13, 72, 191, 120, 210, 105, 141, 95, 41,\n\t\t243, 111, 14, 243, 167, 126, 197, 155, 26, 31, 182, 223, 232,\n\t\t157, 245, 221, 160, 26, 163, 13, 183, 63, 176, 43, 143, 7,\n\t\t149, 206, 82, 92, 210, 72, 20, 209, 76, 172, 234, 104, 69,\n\t\t100, 166, 225, 141, 8, 108, 82, 221, 201, 154, 220, 166, 114,\n\t\t252, 185, 134, 170, 36, 3, 106, 38, 77, 145, 76, 74, 81, 21,\n\t\t51, 10, 76, 20, 168, 25, 172, 107, 28, 181, 44, 118, 16, 18,\n\t\t209, 209, 85, 150, 148, 247, 156, 79, 100, 220, 62, 9, 33,\n\t\t106, 158, 238, 122, 102, 117, 215, 19, 167, 187, 240, 211,\n\t\t30, 69, 245, 120, 80, 138, 244, 176, 13, 226, 61, 54, 2, 55,\n\t\t54, 2, 196, 137, 173, 97, 78, 244, 81, 63, 68, 149, 181, 53,\n\t\t31, 219, 42, 114, 247, 209, 67, 101, 91, 28, 140, 32, 88,\n\t\t99, 60, 50, 213, 32, 239, 143, 146, 174, 157, 241, 227, 22,\n\t\t87, 2, 154, 8, 236, 12, 30, 218, 25, 188, 137, 241, 239, 245,\n\t\t164, 202, 144, 200, 0, 2, 200, 86, 25, 86, 166, 224, 219,\n\t\t45, 58, 110, 171, 228, 248, 189, 246, 76, 78, 62, 209, 72,\n\t\t8, 26, 132, 192, 212, 247, 225, 6, 95, 98, 135, 200, 24, 121,\n\t\t200, 5, 189, 226, 226, 211, 221, 197, 133, 210, 108, 143,\n\t\t149, 173, 188, 87, 24, 197, 121, 99, 206, 239, 196, 112, 132,\n\t\t198, 214, 25, 37, 139, 69, 109, 6, 255, 32, 96, 184, 79, 150,\n\t\t225, 158, 90, 134, 115, 147, 240, 194, 154, 76, 6, 47, 182,\n\t\t193, 199, 61, 156, 248, 236, 54, 254, 198, 251, 191, 42, 244,\n\t\t95, 12, 10, 253, 237, 238, 64, 119, 10, 125, 0, 220, 205,\n\t\t41, 252, 252, 87, 166, 240, 182, 190, 64, 1, 157, 233, 58,\n\t\t3, 175, 233, 218, 115, 3, 158, 125, 85, 55, 224, 249, 150,\n\t\t229, 169, 218, 116, 178, 248, 155, 122, 0, 122, 18, 118, 200,\n\t\t225, 89, 85, 20, 195, 82, 184, 157, 243, 174, 24, 150, 98,\n\t\t152, 176, 255, 94, 199, 133, 48, 199, 189, 222, 250, 248,\n\t\t236, 182, 27, 90, 129, 252, 83, 207, 50, 248, 113, 200, 100,\n\t\t151, 231, 80, 185, 198, 65, 173, 121, 230, 59, 115, 105, 59,\n\t\t14, 153, 211, 219, 213, 245, 106, 61, 127, 170, 33, 220, 118,\n\t\t58, 138, 241, 207, 183, 17, 252, 97, 33, 223, 159, 74, 37,\n\t\t219, 69, 73, 163, 5, 227, 121, 169, 198, 8, 32, 178, 77, 24,\n\t\t177, 17, 243, 202, 178, 47, 163, 53, 147, 89, 180, 162, 98,\n\t\t181, 112, 145, 213, 192, 32, 85, 73, 163, 105, 193, 46, 18,\n\t\t187, 120, 142, 28, 58, 240, 167, 186, 109, 234, 181, 144,\n\t\t212, 164, 246, 31, 27, 180, 23, 186, 156, 210, 2, 171, 182,\n\t\t234, 168, 132, 192, 115, 78, 117, 114, 128, 159, 195, 174,\n\t\t238, 47, 75, 186, 184, 164, 165, 107, 66, 7, 174, 66, 89,\n\t\t79, 64, 244, 214, 230, 37, 76, 16, 173, 240, 143, 53, 162,\n\t\t177, 41, 178, 104, 115, 3, 155, 24, 63, 191, 171, 162, 240,\n\t\t229, 192, 203, 111, 191, 255, 119, 130, 126, 174, 53, 112,\n\t\t195, 215, 90, 87, 0, 112, 30, 101, 245, 138, 22, 48, 207,\n\t\t1, 59, 191, 180, 236, 252, 147, 231, 27, 127, 30, 228, 221,\n\t\t254, 138, 221, 220, 237, 49, 222, 123, 168, 253, 26, 15, 69,\n\t\t237, 94, 225, 225, 96, 127, 247, 221, 9, 170, 102, 125, 34,\n\t\t241, 35, 162, 24, 86, 184, 6, 217, 107, 112, 225, 128, 87,\n\t\t155, 24, 191, 235, 89, 97, 47, 245, 119, 58, 162, 245, 48,\n\t\t77, 71, 13, 254, 247, 144, 238, 105, 129, 193, 58, 10, 232,\n\t\t151, 193, 55, 28, 46, 64, 231, 141, 95, 135, 222, 240, 210,\n\t\t236, 250, 84, 157, 204, 7, 222, 83, 114, 167, 239, 5, 58,\n\t\t244, 66, 23, 111, 167, 243, 30, 239, 123, 79, 227, 215, 108,\n\t\t98, 213, 244, 3, 213, 208, 28, 181, 32, 53, 187, 118, 65,\n\t\t111, 10, 79, 163, 136, 58, 104, 154, 29, 68, 111, 14, 74,\n\t\t163, 168, 182, 128, 52, 59, 200, 222, 14, 138, 70, 145, 222,\n\t\t77, 243, 110, 0, 52, 231, 160, 232, 33, 217, 155, 164, 233,\n\t\t190, 157, 150, 125, 91, 139, 194, 190, 187, 21, 245, 202,\n\t\t159, 102, 231, 241, 109, 160, 208, 88, 0, 40, 199, 8, 190,\n\t\t14, 212, 163, 218, 141, 95, 179, 63, 208, 159, 5, 231, 250,\n\t\t133, 40, 78, 29, 122, 122, 238, 7, 232, 249, 172, 210, 134,\n\t\t4, 7, 176, 79, 127, 189, 123, 29, 156, 168, 14, 65, 51, 215,\n\t\t3, 20, 187, 252, 49, 20, 126, 220, 170, 80, 158, 115, 177,\n\t\t230, 3, 228, 28, 4, 149, 163, 214, 24, 252, 25, 15, 16, 232,\n\t\t92, 52, 74, 218, 13, 44, 218, 27, 27, 194, 47, 7, 13, 97,\n\t\t174, 109, 96, 253, 193, 207, 247, 221, 109, 23, 239, 218,\n\t\t35, 95, 139, 191, 213, 46, 134, 229, 210, 103, 28, 107, 29,\n\t\t224, 217, 199, 50, 223, 97, 31, 111, 144, 245, 6, 102, 128,\n\t\t122, 128, 94, 164, 26, 249, 181, 238, 16, 109, 121, 3, 240,\n\t\t222, 126, 169, 177, 81, 60, 202, 164, 17, 75, 34, 217, 44,\n\t\t170, 52, 214, 204, 193, 8, 203, 36, 21, 160, 101, 212, 23,\n\t\t109, 88, 197, 0, 177, 127, 183, 196, 132, 159, 14, 29, 173,\n\t\t170, 82, 195, 161, 18, 73, 148, 245, 84, 105, 218, 30, 100,\n\t\t205, 22, 210, 187, 79, 166, 222, 102, 52, 50, 89, 70, 145,\n\t\t21, 45, 81, 105, 100, 75, 196, 76, 58, 54, 207, 245, 222,\n\t\t235, 46, 106, 109, 198, 216, 173, 28, 148, 61, 49, 228, 160,\n\t\t144, 212, 66, 16, 124, 115, 255, 228, 48, 77, 205, 241, 132,\n\t\t110, 48, 176, 163, 214, 194, 216, 81, 239, 90, 183, 128, 228,\n\t\t155, 70, 75, 53, 164, 212, 55, 206, 7, 216, 208, 147, 61,\n\t\t231, 3, 34, 223, 154, 98, 66, 210, 55, 124, 17, 152, 9, 54,\n\t\t203, 100, 182, 237, 197, 155, 64, 16, 150, 67, 4, 122, 1,\n\t\t243, 244, 209, 193, 237, 32, 243, 102, 121, 251, 226, 215,\n\t\t55, 74, 58, 244, 191, 190, 125, 210, 105, 224, 27, 153, 42,\n\t\t157, 86, 118, 147, 191, 165, 213, 178, 203, 18, 233, 180,\n\t\t163, 163, 124, 250, 204, 147, 142, 53, 210, 162, 60, 6, 40,\n\t\t147, 61, 118, 198, 223, 135, 22, 137, 110, 136, 228, 119,\n\t\t34, 28, 0, 151, 6, 217, 153, 111, 89, 11, 55, 194, 79, 51,\n\t\t133, 154, 188, 243, 181, 86, 128, 246, 224, 166, 185, 214,\n\t\t195, 59, 39, 168, 204, 123, 80, 211, 64, 139, 136, 188, 125,\n\t\t11, 143, 70, 152, 38, 133, 145, 14, 173, 150, 232, 194, 151,\n\t\t105, 109, 255, 62, 140, 54, 3, 4, 89, 195, 110, 58, 2, 91,\n\t\t93, 154, 173, 80, 179, 121, 250, 97, 11, 23, 106, 64, 50,\n\t\t200, 85, 234, 253, 165, 250, 159, 219, 122, 92, 4, 67, 75,\n\t\t189, 164, 129, 191, 140, 53, 214, 107, 118, 205, 115, 136,\n\t\t63, 104, 176, 116, 16, 107, 127, 3, 22, 217, 63, 255, 185,\n\t\t19, 32, 170, 92, 146, 197, 194, 215, 168, 95, 13, 130, 108,\n\t\t131, 178, 21, 255, 145, 93, 5, 187, 155, 121, 120, 135, 31,\n\t\t160, 212, 83, 164, 56, 240, 96, 55, 253, 94, 108, 171, 52,\n\t\t239, 133, 245, 246, 42, 55, 223, 227, 201, 212, 6, 65, 125,\n\t\t226, 168, 48, 181, 98, 38, 60, 33, 184, 154, 240, 100, 138,\n\t\t217, 68, 34, 18, 63, 98, 115, 4, 69, 164, 24, 166, 113, 172,\n\t\t81, 108, 41, 230, 147, 10, 23, 147, 226, 17, 93, 148, 52,\n\t\t210, 95, 158, 160, 247, 41, 60, 100, 110, 66, 180, 27, 193,\n\t\t5, 132, 158, 46, 7, 197, 192, 30, 74, 213, 202, 252, 156,\n\t\t98, 170, 99, 115, 178, 193, 71, 31, 252, 176, 87, 160, 19,\n\t\t180, 204, 251, 179, 171, 52, 83, 54, 184, 69, 0, 140, 15,\n\t\t252, 163, 188, 69, 110, 65, 183, 90, 155, 239, 233, 57, 92,\n\t\t245, 130, 73, 234, 185, 241, 176, 13, 2, 22, 19, 145, 105,\n\t\t37, 137, 224, 116, 104, 73, 9, 47, 35, 169, 46, 171, 146,\n\t\t22, 209, 140, 240, 168, 164, 52, 130, 140, 163, 76, 31, 1,\n\t\t118, 208, 7, 90, 227, 201, 136, 183, 41, 93, 136, 53, 64,\n\t\t129, 176, 37, 147, 209, 58, 35, 82, 83, 52, 128, 82, 134,\n\t\t102, 72, 201, 93, 233, 109, 208, 233, 93, 156, 38, 223, 127,\n\t\t57, 235, 243, 95, 110, 183, 159, 167, 25, 116, 201, 248, 190,\n\t\t101, 210, 127, 61, 184, 204, 76, 152, 235, 141, 78, 120, 183,\n\t\t186, 63, 173, 9, 122, 187, 57, 251, 153, 149, 108, 186, 160,\n\t\t118, 226, 188, 165, 149, 229, 0, 254, 163, 135, 185, 119,\n\t\t112, 241, 93, 27, 61, 92, 44, 122, 26, 60, 173, 49, 203, 149,\n\t\t32, 245, 143, 149, 171, 246, 27, 176, 242, 23, 71, 172, 40,\n\t\t111, 233, 21, 228, 255, 31, 188, 130, 227, 148, 73, 251, 163,\n\t\t35, 49, 247, 142, 122, 117, 7, 180, 251, 29, 30, 43, 104,\n\t\t151, 225, 204, 186, 12, 36, 119, 46, 195, 101, 238, 142, 216,\n\t\t64, 147, 54, 120, 213, 227, 68, 92, 228, 230, 52, 244, 151,\n\t\t105, 28, 227, 189, 187, 172, 130, 139, 188, 93, 5, 151, 121,\n\t\t184, 117, 16, 44, 135, 93, 167, 155, 87, 223, 126, 11, 192,\n\t\t117, 67, 185, 185, 58, 80, 146, 219, 24, 201, 25, 225, 106,\n\t\t194, 167, 52, 42, 64, 250, 208, 52, 137, 94, 204, 163, 90,\n\t\t84, 145, 61, 201, 88, 144, 82, 70, 130, 43, 145, 50, 3, 79,\n\t\t89, 125, 9, 222, 178, 152, 251, 34, 7, 183, 55, 150, 16, 211,\n\t\t116, 73, 56, 43, 179, 104, 46, 128, 116, 68, 120, 26, 52,\n\t\t87, 74, 81, 216, 74, 35, 183, 143, 76, 232, 2, 229, 223, 240,\n\t\t120, 246, 202, 50, 205, 170, 101, 154, 117, 14, 167, 65, 164,\n\t\t100, 169, 178, 206, 206, 245, 199, 37, 97, 124, 20, 227, 122,\n\t\t80, 197, 64, 179, 62, 206, 13, 151, 132, 113, 90, 236, 207,\n\t\t23, 21, 243, 176, 108, 66, 156, 156, 117, 65, 86, 43, 191,\n\t\t227, 235, 188, 165, 0, 72, 57, 234, 207, 50, 221, 255, 71,\n\t\t180, 218, 127, 16, 77, 47, 246, 23, 48, 152, 146, 76, 167,\n\t\t196, 123, 237, 147, 43, 172, 161, 17, 71, 44, 240, 8, 189,\n\t\t90, 17, 158, 42, 83, 216, 124, 161, 95, 159, 94, 236, 147,\n\t\t5, 187, 224, 0, 12, 81, 238, 151, 146, 20, 50, 2, 220, 146,\n\t\t101, 106, 161, 75, 224, 163, 145, 176, 120, 8, 141, 186, 7,\n\t\t74, 194, 66, 165, 224, 182, 18, 158, 166, 32, 19, 13, 166,\n\t\t243, 194, 226, 62, 247, 89, 178, 255, 240, 145, 125, 192,\n\t\t168, 21, 5, 99, 251, 23, 102, 227, 172, 27, 255, 59, 37, 233,\n\t\t5, 141, 224, 255, 54, 214, 121, 72, 156, 78, 169, 1, 30, 4,\n\t\t124, 140, 29, 13, 119, 113, 133, 110, 222, 11, 205, 137, 67,\n\t\t157, 16, 243, 185, 15, 64, 107, 80, 254, 130, 81, 84, 179,\n\t\t100, 10, 174, 131, 182, 222, 76, 93, 159, 41, 45, 184, 42,\n\t\t105, 231, 182, 173, 100, 154, 40, 206, 13, 184, 163, 237,\n\t\t105, 72, 127, 51, 186, 48, 0, 106, 130, 70, 44, 227, 184,\n\t\t207, 155, 212, 125, 36, 99, 71, 3, 14, 20, 245, 163, 251,\n\t\t83, 33, 165, 88, 26, 45, 222, 139, 123, 168, 41, 25, 155,\n\t\t74, 159, 123, 246, 210, 216, 87, 227, 234, 195, 49, 108, 34,\n\t\t69, 185, 117, 127, 42, 214, 180, 160, 169, 46, 109, 137, 253,\n\t\t250, 140, 182, 60, 219, 5, 147, 89, 53, 77, 102, 98, 249,\n\t\t125, 73, 50, 54, 253, 126, 90, 176, 0, 38, 214, 126, 14, 254,\n\t\t225, 19, 116, 238, 175, 210, 45, 236, 125, 234, 208, 90, 55,\n\t\t193, 15, 117, 240, 216, 227, 189, 32, 228, 180, 221, 73, 60,\n\t\t222, 195, 133, 192, 123, 53, 146, 54, 23, 193, 64, 119, 105,\n\t\t98, 66, 224, 247, 53, 168, 69, 37, 188, 131, 91, 149, 192,\n\t\t175, 213, 45, 37, 238, 130, 27, 220, 220, 152, 137, 85, 72,\n\t\t140, 8, 252, 4, 157, 129, 130, 203, 83, 86, 192, 61, 93, 156,\n\t\t10, 127, 174, 149, 36, 54, 207, 49, 129, 79, 208, 219, 218,\n\t\t216, 59, 134, 58, 118, 100, 102, 234, 246, 115, 117, 27, 78,\n\t\t146, 61, 50, 134, 217, 3, 196, 67, 108, 1, 217, 122, 5, 75,\n\t\t48, 16, 111, 4, 46, 114, 103, 3, 28, 166, 105, 64, 226, 181,\n\t\t192, 123, 237, 221, 51, 186, 241, 187, 79, 5, 158, 182, 15,\n\t\t24, 232, 95, 243, 132, 233, 87, 128, 7, 247, 97, 252, 219,\n\t\t235, 115, 111, 198, 155, 24, 231, 121, 144, 186, 169, 195,\n\t\t3, 105, 34, 248, 79, 197, 66, 239, 4, 98, 102, 63, 159, 81,\n\t\t216, 254, 192, 65, 158, 46, 79, 8, 146, 40, 229, 80, 77, 208,\n\t\t206, 119, 201, 209, 151, 146, 202, 106, 213, 214, 156, 175,\n\t\t220, 24, 240, 132, 76, 42, 188, 226, 9, 73, 211, 227, 75,\n\t\t202, 165, 174, 55, 79, 11, 52, 90, 137, 21, 88, 117, 35, 204,\n\t\t99, 245, 4, 39, 151, 236, 130, 72, 161, 203, 131, 30, 94,\n\t\t80, 46, 19, 198, 83, 122, 245, 102, 142, 70, 111, 11, 150,\n\t\t66, 82, 212, 15, 15, 174, 175, 123, 201, 101, 164, 204, 108,\n\t\t77, 99, 30, 111, 128, 3, 40, 151, 15, 209, 100, 38, 139, 197,\n\t\t75, 90, 95, 95, 211, 100, 73, 37, 49, 151, 101, 198, 230,\n\t\t18, 174, 31, 254, 48, 161, 137, 70, 213, 184, 190, 150, 137,\n\t\t22, 71, 234, 202, 86, 1, 140, 227, 47, 52, 89, 21, 144, 46,\n\t\t102, 118, 199, 80, 236, 74, 160, 100, 5, 157, 227, 98, 162,\n\t\t70, 8, 147, 201, 187, 10, 241, 56, 33, 143, 42, 196, 16, 249,\n\t\t238, 187, 194, 85, 87, 156, 76, 38, 196, 125, 80, 55, 50,\n\t\t81, 74, 248, 82, 93, 192, 147, 162, 144, 31, 19, 162, 31,\n\t\t212, 215, 7, 58, 96, 74, 210, 130, 19, 8, 70, 35, 205, 184,\n\t\t127, 55, 248, 248, 170, 125, 200, 148, 34, 87, 94, 104, 131,\n\t\t25, 103, 178, 231, 157, 232, 9, 162, 137, 186, 135, 37, 134,\n\t\t174, 115, 101, 118, 50, 186, 30, 83, 64, 155, 194, 250, 128,\n\t\t98, 76, 19, 125, 129, 203, 106, 90, 206, 10, 102, 182, 88,\n\t\t104, 18, 124, 110, 226, 6, 125, 49, 45, 97, 143, 183, 6, 58,\n\t\t235, 238, 187, 195, 106, 159, 255, 6, 94, 122, 197, 120, 30,\n\t\t214, 91, 239, 244, 105, 83, 70, 73, 13, 242, 116, 238, 97,\n\t\t30, 170, 143, 109, 196, 130, 151, 173, 73, 88, 15, 206, 97,\n\t\t165, 93, 187, 185, 80, 50, 240, 66, 32, 222, 145, 3, 115,\n\t\t129, 23, 21, 174, 43, 116, 81, 217, 207, 211, 10, 63, 85,\n\t\t15, 6, 11, 83, 223, 74, 251, 69, 6, 52, 82, 87, 232, 12, 50,\n\t\t97, 24, 179, 142, 77, 114, 201, 74, 156, 87, 122, 165, 243,\n\t\t62, 204, 72, 252, 88, 160, 203, 42, 198, 171, 10, 101, 250,\n\t\t57, 59, 109, 143, 151, 122, 50, 253, 181, 111, 134, 18, 118,\n\t\t190, 188, 5, 110, 69, 130, 55, 84, 27, 97, 195, 48, 110, 175,\n\t\t216, 114, 42, 252, 20, 99, 165, 104, 222, 17, 38, 149, 49,\n\t\t61, 23, 69, 4, 20, 28, 78, 242, 163, 246, 77, 19, 117, 220,\n\t\t126, 225, 80, 65, 61, 234, 157, 72, 98, 24, 248, 231, 151,\n\t\t248, 221, 20, 84, 244, 230, 249, 107, 13, 123, 115, 38, 42,\n\t\t24, 131, 105, 61, 30, 61, 35, 146, 174, 73, 61, 106, 154,\n\t\t38, 126, 116, 198, 38, 95, 78, 8, 227, 99, 205, 154, 121,\n\t\t142, 206, 43, 116, 30, 199, 232, 65, 220, 52, 88, 38, 199,\n\t\t139, 229, 129, 29, 136, 72, 34, 111, 195, 8, 246, 133, 34,\n\t\t198, 163, 34, 134, 63, 252, 96, 164, 72, 140, 38, 19, 114,\n\t\t240, 28, 253, 11, 211, 120, 44, 17, 189, 63, 74, 70, 247,\n\t\t9, 230, 191, 145, 15, 184, 248, 141, 124, 136, 199, 234, 114,\n\t\t162, 46, 27, 52, 58, 94, 44, 71, 186, 17, 124, 198, 226, 49,\n\t\t92, 77, 206, 88, 131, 148, 175, 17, 63, 250, 191, 0, 0, 0,\n\t\t255, 255, 80, 75, 7, 8, 226, 236, 48, 116, 8, 184, 0, 0, 231,\n\t\t115, 2, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 9, 0, 106,\n\t\t115, 47, 98, 111, 111, 116, 115, 116, 114, 97, 112, 46, 109,\n\t\t105, 110, 46, 106, 115, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t220, 189, 237, 91, 219, 184, 182, 40, 254, 253, 252, 21, 193,\n\t\t167, 191, 212, 58, 44, 220, 48, 179, 239, 239, 236, 157, 84,\n\t\t195, 67, 129, 78, 153, 82, 96, 10, 109, 103, 134, 157, 195,\n\t\t227, 36, 10, 81, 113, 228, 212, 86, 160, 148, 248, 254, 237,\n\t\t247, 209, 171, 101, 91, 14, 233, 204, 222, 247, 195, 253,\n\t\t2, 177, 222, 181, 180, 180, 222, 180, 180, 244, 226, 191,\n\t\t182, 254, 163, 211, 249, 175, 206, 171, 52, 229, 57, 207,\n\t\t226, 69, 231, 238, 111, 209, 110, 244, 99, 39, 156, 113, 190,\n\t\t200, 251, 47, 94, 220, 16, 62, 50, 153, 209, 56, 157, 191,\n\t\t64, 178, 194, 65, 186, 120, 200, 232, 205, 140, 119, 126,\n\t\t232, 237, 238, 238, 252, 208, 219, 253, 123, 231, 114, 70,\n\t\t156, 134, 246, 151, 124, 150, 102, 185, 211, 18, 229, 179,\n\t\t229, 72, 182, 193, 239, 71, 249, 11, 219, 236, 139, 155, 44,\n\t\t94, 204, 242, 23, 227, 148, 241, 140, 142, 150, 60, 205, 114,\n\t\t213, 203, 9, 29, 19, 150, 147, 73, 103, 201, 38, 36, 235,\n\t\t188, 59, 190, 220, 164, 185, 81, 146, 142, 94, 204, 227, 156,\n\t\t147, 236, 197, 201, 241, 193, 209, 233, 197, 145, 108, 238,\n\t\t197, 127, 108, 77, 151, 108, 204, 105, 202, 66, 14, 4, 61,\n\t\t6, 233, 232, 51, 25, 243, 0, 99, 254, 176, 32, 233, 180, 67,\n\t\t190, 46, 210, 140, 231, 221, 110, 32, 58, 156, 82, 70, 38,\n\t\t193, 150, 201, 156, 167, 147, 101, 66, 246, 72, 168, 75, 65,\n\t\t70, 190, 44, 105, 70, 194, 224, 243, 151, 37, 201, 30, 2,\n\t\t84, 166, 44, 210, 197, 130, 100, 209, 231, 60, 64, 168, 31,\n\t\t152, 94, 203, 142, 84, 227, 221, 174, 250, 31, 197, 243, 201,\n\t\t158, 250, 25, 94, 5, 186, 249, 0, 76, 187, 224, 52, 55, 4,\n\t\t130, 250, 36, 228, 145, 157, 46, 126, 44, 128, 71, 159, 127,\n\t\t21, 69, 129, 71, 231, 178, 40, 42, 66, 62, 163, 57, 184, 243,\n\t\t133, 25, 122, 12, 150, 57, 233, 228, 60, 163, 99, 30, 12,\n\t\t76, 102, 135, 42, 112, 76, 211, 44, 188, 139, 179, 14, 195,\n\t\t189, 1, 123, 73, 162, 132, 176, 27, 62, 27, 176, 237, 109,\n\t\t244, 40, 210, 41, 38, 87, 108, 56, 160, 17, 97, 203, 57, 201,\n\t\t226, 81, 66, 176, 251, 177, 90, 109, 237, 2, 141, 198, 41,\n\t\t155, 210, 155, 165, 202, 223, 234, 65, 112, 23, 39, 75, 18,\n\t\t80, 214, 161, 221, 110, 72, 163, 251, 140, 114, 157, 135,\n\t\t224, 76, 174, 64, 164, 38, 127, 158, 165, 11, 146, 241, 135,\n\t\t144, 3, 141, 110, 201, 3, 80, 84, 20, 118, 148, 185, 156,\n\t\t4, 67, 143, 25, 225, 203, 140, 117, 72, 183, 75, 67, 30, 45,\n\t\t178, 148, 167, 2, 172, 64, 16, 48, 153, 6, 12, 1, 47, 43,\n\t\t38, 97, 86, 78, 142, 227, 221, 1, 127, 25, 103, 55, 203, 57,\n\t\t97, 60, 55, 147, 228, 102, 146, 41, 102, 203, 36, 217, 194,\n\t\t182, 196, 21, 31, 238, 185, 31, 253, 199, 2, 8, 214, 227,\n\t\t190, 37, 15, 121, 152, 162, 129, 103, 137, 117, 137, 27, 194,\n\t\t207, 238, 153, 153, 217, 197, 195, 124, 148, 38, 121, 183,\n\t\t27, 18, 76, 4, 164, 198, 49, 15, 215, 149, 12, 83, 20, 77,\n\t\t105, 194, 73, 22, 150, 107, 105, 65, 224, 173, 121, 72, 242,\n\t\t113, 70, 23, 60, 205, 194, 20, 56, 114, 22, 168, 64, 8, 1,\n\t\t137, 166, 105, 118, 20, 143, 103, 149, 6, 197, 212, 9, 48,\n\t\t160, 3, 130, 51, 160, 56, 189, 98, 152, 15, 129, 117, 40,\n\t\t235, 144, 61, 255, 42, 137, 242, 143, 114, 113, 251, 20, 202,\n\t\t94, 250, 91, 61, 112, 113, 64, 124, 155, 53, 239, 111, 245,\n\t\t10, 212, 23, 104, 132, 105, 129, 10, 61, 141, 172, 32, 152,\n\t\t116, 187, 36, 154, 197, 185, 51, 145, 48, 152, 144, 105, 188,\n\t\t76, 120, 128, 246, 72, 164, 127, 247, 9, 204, 240, 172, 219,\n\t\t157, 173, 41, 60, 179, 133, 103, 3, 49, 177, 12, 24, 164,\n\t\t16, 195, 24, 150, 48, 133, 9, 220, 192, 53, 204, 97, 1, 119,\n\t\t240, 0, 71, 112, 0, 151, 48, 130, 11, 56, 134, 125, 56, 132,\n\t\t123, 56, 133, 51, 184, 133, 115, 248, 12, 111, 224, 4, 222,\n\t\t195, 87, 248, 4, 31, 224, 11, 188, 134, 183, 240, 14, 126,\n\t\t133, 87, 240, 17, 126, 135, 111, 240, 11, 252, 1, 63, 195,\n\t\t51, 248, 13, 56, 7, 194, 129, 113, 160, 28, 50, 14, 41, 135,\n\t\t156, 67, 204, 33, 225, 48, 230, 48, 227, 176, 228, 48, 229,\n\t\t48, 225, 112, 195, 225, 154, 195, 156, 195, 130, 195, 29,\n\t\t135, 7, 14, 71, 28, 14, 56, 92, 114, 24, 113, 184, 224, 112,\n\t\t204, 97, 159, 195, 33, 135, 123, 14, 167, 28, 206, 56, 220,\n\t\t114, 56, 231, 240, 153, 195, 27, 14, 39, 28, 222, 115, 248,\n\t\t202, 225, 19, 135, 15, 28, 190, 112, 120, 205, 225, 45, 135,\n\t\t119, 28, 126, 229, 240, 138, 195, 71, 14, 191, 115, 248, 198,\n\t\t225, 23, 14, 127, 112, 248, 153, 195, 51, 14, 191, 113, 224,\n\t\t4, 8, 1, 70, 128, 18, 200, 8, 164, 4, 114, 2, 49, 129, 132,\n\t\t192, 152, 192, 140, 192, 146, 192, 148, 192, 132, 192, 13,\n\t\t129, 107, 2, 115, 2, 11, 2, 119, 4, 30, 8, 28, 17, 56, 32,\n\t\t112, 73, 96, 68, 224, 130, 192, 49, 129, 125, 2, 135, 4, 238,\n\t\t9, 156, 18, 56, 35, 112, 75, 224, 156, 192, 103, 2, 111, 8,\n\t\t156, 16, 120, 79, 224, 43, 129, 79, 4, 62, 16, 248, 66, 224,\n\t\t53, 129, 183, 4, 222, 17, 248, 149, 192, 43, 2, 31, 9, 252,\n\t\t78, 224, 27, 129, 95, 8, 252, 65, 224, 103, 2, 207, 8, 252,\n\t\t70, 128, 51, 32, 12, 24, 131, 140, 65, 202, 32, 103, 16, 51,\n\t\t72, 24, 140, 25, 204, 24, 44, 25, 76, 25, 76, 24, 220, 48,\n\t\t184, 102, 48, 103, 176, 96, 112, 199, 224, 129, 193, 17, 131,\n\t\t3, 6, 151, 12, 70, 12, 46, 24, 28, 51, 216, 103, 112, 200,\n\t\t224, 158, 193, 41, 131, 51, 6, 183, 12, 206, 25, 124, 102,\n\t\t240, 134, 193, 9, 131, 247, 12, 190, 50, 248, 196, 224, 3,\n\t\t131, 47, 12, 94, 51, 108, 247, 1, 213, 251, 0, 7, 60, 139,\n\t\t89, 78, 69, 34, 97, 19, 135, 82, 114, 187, 87, 176, 164, 175,\n\t\t12, 111, 237, 14, 52, 22, 83, 73, 114, 81, 148, 50, 18, 38,\n\t\t209, 229, 251, 253, 211, 139, 227, 203, 227, 179, 211, 235,\n\t\t163, 211, 195, 146, 16, 163, 71, 134, 197, 38, 128, 156, 240,\n\t\t75, 58, 39, 233, 146, 135, 110, 230, 106, 149, 68, 60, 163,\n\t\t55, 55, 36, 187, 180, 131, 56, 98, 147, 144, 160, 2, 56, 2,\n\t\t209, 71, 33, 70, 144, 224, 199, 106, 31, 253, 96, 148, 87,\n\t\t170, 4, 112, 67, 248, 135, 227, 195, 190, 187, 209, 5, 29,\n\t\t28, 240, 109, 252, 191, 255, 119, 184, 75, 254, 255, 255,\n\t\t122, 23, 243, 89, 148, 197, 108, 146, 206, 67, 132, 96, 146,\n\t\t142, 37, 161, 19, 36, 229, 40, 33, 226, 231, 171, 135, 227,\n\t\t73, 200, 209, 0, 153, 121, 242, 66, 180, 123, 65, 18, 50,\n\t\t230, 105, 246, 58, 75, 231, 186, 100, 191, 65, 80, 176, 108,\n\t\t104, 159, 43, 182, 78, 194, 96, 18, 243, 120, 135, 199, 217,\n\t\t13, 225, 1, 26, 144, 110, 55, 248, 207, 96, 11, 99, 178, 90,\n\t\t133, 205, 194, 179, 140, 76, 3, 180, 90, 5, 1, 26, 240, 236,\n\t\t193, 16, 61, 59, 70, 201, 29, 205, 56, 66, 130, 246, 72, 95,\n\t\t208, 238, 98, 28, 243, 241, 204, 161, 146, 50, 81, 14, 186,\n\t\t4, 207, 225, 50, 139, 197, 255, 182, 225, 211, 105, 184, 197,\n\t\t145, 110, 160, 55, 80, 179, 161, 33, 71, 209, 56, 207, 67,\n\t\t7, 63, 118, 38, 186, 165, 192, 2, 104, 17, 103, 57, 121, 157,\n\t\t164, 49, 23, 131, 146, 148, 62, 95, 36, 148, 135, 1, 4, 232,\n\t\t170, 55, 132, 93, 242, 227, 127, 85, 10, 161, 126, 175, 128,\n\t\t140, 76, 147, 244, 190, 239, 33, 243, 60, 74, 167, 211, 156,\n\t\t240, 55, 68, 72, 92, 5, 248, 240, 163, 58, 122, 49, 80, 93,\n\t\t74, 34, 78, 190, 92, 72, 161, 162, 165, 138, 237, 233, 85,\n\t\t154, 38, 36, 102, 178, 14, 205, 125, 128, 81, 5, 67, 126,\n\t\t213, 27, 174, 86, 28, 69, 44, 157, 144, 203, 135, 5, 41, 64,\n\t\t240, 189, 131, 25, 25, 223, 30, 72, 226, 223, 175, 200, 30,\n\t\t172, 228, 192, 84, 240, 20, 134, 232, 212, 48, 62, 203, 193,\n\t\t107, 36, 61, 26, 199, 73, 18, 50, 160, 72, 161, 83, 134, 217,\n\t\t21, 29, 66, 138, 137, 248, 151, 227, 180, 219, 77, 34, 59,\n\t\t202, 48, 69, 123, 1, 81, 191, 131, 126, 24, 227, 20, 30, 139,\n\t\t136, 167, 23, 60, 163, 236, 70, 181, 21, 163, 104, 46, 145,\n\t\t227, 197, 63, 243, 240, 42, 222, 249, 54, 220, 70, 47, 40,\n\t\t186, 218, 29, 70, 60, 61, 73, 239, 73, 118, 16, 231, 36, 68,\n\t\t104, 32, 214, 159, 145, 251, 206, 123, 114, 115, 244, 117,\n\t\t17, 102, 40, 226, 36, 231, 97, 142, 16, 159, 101, 233, 125,\n\t\t71, 228, 29, 101, 89, 154, 133, 60, 226, 233, 7, 33, 115,\n\t\t169, 170, 219, 207, 251, 157, 179, 133, 36, 22, 193, 243,\n\t\t109, 186, 253, 60, 232, 44, 178, 244, 142, 78, 200, 164, 35,\n\t\t230, 40, 82, 115, 145, 58, 90, 114, 33, 111, 146, 49, 119,\n\t\t114, 178, 237, 231, 65, 244, 28, 201, 13, 30, 23, 133, 37,\n\t\t45, 209, 148, 69, 100, 190, 76, 98, 78, 42, 75, 136, 133,\n\t\t164, 68, 238, 196, 110, 200, 23, 100, 76, 227, 228, 170, 78,\n\t\t122, 134, 248, 113, 68, 217, 68, 172, 81, 95, 80, 248, 132,\n\t\t220, 136, 86, 212, 231, 44, 102, 147, 132, 212, 49, 95, 136,\n\t\t85, 106, 147, 162, 136, 230, 138, 172, 33, 139, 139, 170,\n\t\t206, 217, 232, 179, 254, 149, 69, 241, 98, 145, 60, 40, 129,\n\t\t211, 74, 74, 168, 40, 32, 41, 66, 130, 224, 45, 195, 33, 195,\n\t\t65, 156, 144, 140, 7, 16, 227, 32, 10, 182, 195, 20, 7, 163,\n\t\t60, 82, 105, 8, 198, 56, 204, 48, 65, 209, 148, 93, 177, 33,\n\t\t44, 241, 227, 193, 201, 217, 197, 81, 63, 24, 39, 105, 78,\n\t\t130, 237, 24, 228, 247, 161, 78, 152, 168, 148, 227, 131,\n\t\t183, 215, 135, 251, 151, 251, 215, 251, 231, 199, 34, 135,\n\t\t142, 111, 131, 237, 120, 59, 136, 36, 145, 137, 23, 52, 40,\n\t\t96, 106, 251, 157, 224, 96, 26, 79, 72, 0, 55, 56, 200, 103,\n\t\t233, 125, 0, 215, 216, 193, 127, 87, 22, 70, 143, 98, 42,\n\t\t209, 181, 70, 38, 204, 11, 37, 56, 210, 18, 83, 45, 45, 140,\n\t\t228, 136, 176, 135, 242, 185, 77, 12, 184, 148, 248, 84, 218,\n\t\t13, 225, 239, 211, 212, 144, 215, 144, 35, 69, 212, 163, 107,\n\t\t189, 97, 15, 68, 139, 71, 98, 77, 67, 34, 224, 127, 168, 100,\n\t\t153, 243, 76, 174, 51, 153, 132, 104, 181, 82, 21, 50, 50,\n\t\t79, 239, 136, 105, 72, 50, 136, 104, 66, 243, 69, 101, 68,\n\t\t232, 49, 139, 84, 193, 195, 152, 199, 97, 101, 92, 144, 154,\n\t\t190, 205, 92, 37, 173, 4, 94, 31, 165, 103, 130, 175, 89,\n\t\t228, 103, 3, 33, 71, 21, 190, 72, 186, 221, 144, 225, 86,\n\t\t170, 141, 128, 173, 86, 33, 195, 153, 36, 174, 98, 238, 57,\n\t\t15, 5, 142, 76, 5, 173, 68, 192, 228, 112, 26, 176, 241, 140,\n\t\t40, 139, 20, 212, 150, 145, 68, 23, 75, 143, 179, 42, 53,\n\t\t4, 34, 91, 172, 0, 175, 108, 141, 168, 214, 152, 92, 44, 65,\n\t\t6, 68, 21, 13, 192, 131, 36, 206, 243, 240, 6, 129, 76, 155,\n\t\t197, 185, 74, 152, 104, 250, 196, 53, 76, 214, 114, 153, 144,\n\t\t160, 129, 172, 46, 196, 132, 215, 172, 85, 78, 112, 216, 87,\n\t\t116, 61, 33, 57, 207, 210, 7, 219, 4, 112, 84, 32, 47, 65,\n\t\t8, 57, 42, 72, 146, 147, 142, 90, 214, 122, 69, 137, 34, 181,\n\t\t212, 10, 36, 37, 172, 38, 132, 11, 253, 160, 4, 154, 134,\n\t\t232, 161, 1, 68, 40, 216, 67, 116, 173, 148, 206, 99, 198,\n\t\t73, 54, 141, 199, 14, 206, 149, 74, 154, 28, 6, 169, 104,\n\t\t27, 6, 88, 153, 34, 44, 32, 24, 191, 216, 178, 66, 143, 82,\n\t\t130, 128, 32, 174, 90, 154, 2, 147, 7, 2, 83, 52, 65, 192,\n\t\t24, 179, 110, 87, 104, 17, 170, 80, 161, 134, 163, 200, 209,\n\t\t33, 205, 231, 52, 207, 43, 43, 170, 7, 227, 78, 148, 119,\n\t\t187, 130, 243, 200, 61, 165, 119, 88, 40, 148, 35, 217, 131,\n\t\t110, 182, 128, 60, 164, 32, 182, 4, 92, 61, 222, 146, 135,\n\t\t126, 240, 241, 232, 253, 197, 241, 217, 169, 148, 172, 154,\n\t\t236, 51, 144, 182, 147, 160, 40, 134, 8, 104, 17, 10, 60,\n\t\t49, 104, 47, 214, 91, 130, 209, 165, 90, 240, 252, 74, 210,\n\t\t170, 137, 30, 178, 166, 85, 195, 231, 112, 93, 155, 77, 40,\n\t\t64, 114, 141, 16, 100, 138, 70, 226, 235, 6, 244, 77, 86,\n\t\t116, 144, 178, 156, 103, 75, 177, 189, 240, 181, 77, 101,\n\t\t169, 96, 203, 9, 29, 115, 220, 100, 251, 166, 213, 49, 52,\n\t\t219, 45, 224, 26, 193, 59, 134, 195, 5, 14, 70, 75, 206, 83,\n\t\t22, 192, 131, 34, 226, 119, 146, 136, 235, 68, 4, 71, 216,\n\t\t161, 189, 112, 128, 195, 185, 166, 233, 139, 33, 92, 226,\n\t\t32, 30, 115, 122, 71, 2, 24, 225, 96, 196, 89, 0, 199, 88,\n\t\t79, 159, 167, 55, 55, 9, 249, 31, 219, 252, 240, 57, 236,\n\t\t87, 243, 76, 86, 46, 242, 14, 113, 64, 217, 98, 201, 3, 184,\n\t\t199, 65, 100, 90, 61, 197, 65, 36, 155, 61, 19, 220, 195,\n\t\t203, 27, 30, 182, 143, 224, 245, 217, 193, 135, 139, 235,\n\t\t87, 39, 31, 222, 151, 249, 225, 5, 14, 166, 233, 120, 153,\n\t\t7, 72, 148, 217, 14, 58, 163, 100, 153, 201, 242, 5, 220,\n\t\t122, 185, 4, 107, 231, 18, 204, 199, 37, 244, 52, 26, 123,\n\t\t96, 171, 7, 210, 70, 194, 240, 188, 74, 153, 75, 82, 184,\n\t\t47, 200, 160, 32, 68, 204, 88, 97, 42, 5, 107, 244, 244, 80,\n\t\t138, 46, 84, 178, 241, 32, 139, 39, 52, 21, 187, 133, 70,\n\t\t98, 56, 66, 228, 162, 209, 88, 136, 104, 100, 210, 237, 86,\n\t\t155, 25, 11, 82, 118, 66, 115, 30, 141, 83, 198, 99, 202,\n\t\t242, 240, 18, 33, 46, 232, 184, 160, 39, 70, 0, 171, 117,\n\t\t119, 143, 6, 89, 183, 59, 23, 242, 145, 75, 34, 47, 81, 65,\n\t\t167, 70, 152, 16, 132, 210, 85, 1, 104, 30, 143, 18, 50, 17,\n\t\t146, 61, 91, 147, 71, 125, 67, 170, 213, 94, 95, 66, 139,\n\t\t44, 3, 59, 103, 188, 181, 193, 156, 97, 30, 210, 146, 242,\n\t\t5, 227, 89, 204, 110, 72, 128, 10, 26, 73, 28, 17, 68, 2,\n\t\t111, 237, 22, 5, 169, 67, 48, 175, 40, 47, 113, 70, 227, 157,\n\t\t69, 70, 114, 33, 175, 192, 38, 29, 35, 224, 2, 148, 53, 52,\n\t\t80, 152, 99, 193, 234, 231, 240, 243, 118, 14, 127, 231, 231,\n\t\t240, 108, 13, 245, 38, 155, 80, 239, 185, 214, 118, 37, 117,\n\t\t190, 67, 3, 190, 90, 133, 92, 82, 110, 166, 41, 119, 181,\n\t\t4, 8, 57, 39, 80, 179, 17, 40, 41, 192, 119, 69, 134, 161,\n\t\t36, 222, 121, 200, 254, 36, 153, 101, 130, 204, 206, 171,\n\t\t100, 246, 172, 78, 102, 143, 43, 108, 181, 73, 246, 7, 70,\n\t\t89, 85, 66, 239, 96, 94, 97, 239, 35, 36, 153, 146, 76, 52,\n\t\t155, 242, 20, 33, 184, 109, 128, 80, 41, 25, 162, 160, 157,\n\t\t169, 224, 211, 114, 72, 30, 194, 83, 27, 151, 26, 196, 220,\n\t\t145, 189, 203, 222, 4, 9, 144, 3, 112, 209, 225, 2, 94, 252,\n\t\t143, 194, 73, 202, 208, 222, 179, 23, 74, 69, 225, 106, 175,\n\t\t163, 2, 193, 92, 17, 95, 220, 28, 169, 201, 170, 48, 139,\n\t\t91, 155, 186, 150, 89, 152, 86, 15, 60, 16, 40, 224, 22, 193,\n\t\t175, 12, 135, 159, 113, 48, 142, 179, 116, 153, 147, 36, 128,\n\t\t19, 197, 46, 222, 72, 118, 97, 147, 17, 188, 175, 48, 140,\n\t\t175, 56, 60, 215, 12, 227, 243, 16, 62, 225, 71, 42, 90, 189,\n\t\t139, 147, 254, 255, 34, 63, 194, 45, 121, 24, 165, 113, 54,\n\t\t233, 111, 245, 32, 79, 232, 132, 244, 183, 118, 97, 17, 47,\n\t\t115, 210, 15, 102, 233, 29, 201, 2, 184, 207, 226, 69, 127,\n\t\t171, 87, 192, 7, 167, 110, 16, 178, 229, 124, 68, 178, 213,\n\t\t72, 169, 182, 40, 40, 155, 10, 116, 90, 160, 91, 12, 66, 157,\n\t\t176, 202, 165, 210, 136, 2, 211, 67, 168, 18, 156, 70, 100,\n\t\t103, 182, 129, 2, 190, 224, 128, 145, 175, 60, 128, 215, 56,\n\t\t16, 248, 21, 192, 91, 28, 36, 100, 202, 3, 120, 135, 3, 121,\n\t\t84, 18, 192, 175, 248, 241, 226, 228, 248, 240, 168, 31, 200,\n\t\t14, 131, 237, 19, 16, 223, 234, 83, 124, 189, 61, 250, 253,\n\t\t240, 236, 211, 105, 63, 184, 37, 15, 147, 244, 158, 137, 180,\n\t\t119, 103, 31, 46, 142, 142, 78, 47, 143, 222, 247, 131, 185,\n\t\t0, 157, 208, 2, 50, 155, 115, 114, 180, 255, 241, 72, 231,\n\t\t36, 36, 190, 147, 173, 94, 158, 125, 56, 120, 35, 109, 66,\n\t\t60, 93, 142, 103, 132, 201, 214, 79, 206, 246, 15, 29, 182,\n\t\t152, 164, 177, 72, 222, 126, 223, 166, 76, 157, 108, 191,\n\t\t47, 224, 149, 187, 146, 31, 75, 54, 254, 59, 214, 147, 128,\n\t\t111, 101, 137, 29, 202, 201, 124, 71, 207, 246, 151, 122,\n\t\t186, 2, 199, 31, 245, 100, 5, 183, 159, 235, 201, 10, 138,\n\t\t207, 28, 30, 255, 155, 253, 29, 85, 138, 6, 192, 57, 14, 234,\n\t\t105, 164, 145, 38, 123, 130, 78, 228, 235, 135, 85, 75, 179,\n\t\t9, 29, 199, 60, 205, 242, 0, 40, 199, 129, 18, 70, 228, 124,\n\t\t135, 208, 113, 190, 118, 120, 58, 12, 32, 227, 70, 94, 201,\n\t\t232, 132, 56, 0, 27, 62, 135, 148, 123, 37, 136, 84, 157,\n\t\t185, 40, 218, 44, 198, 145, 75, 202, 172, 137, 181, 65, 95,\n\t\t55, 77, 205, 252, 200, 33, 227, 166, 112, 126, 46, 176, 116,\n\t\t130, 183, 118, 109, 202, 69, 66, 39, 148, 221, 216, 36, 137,\n\t\t6, 218, 222, 232, 214, 85, 134, 250, 82, 51, 85, 182, 27,\n\t\t65, 193, 170, 92, 227, 60, 228, 210, 116, 101, 134, 103, 192,\n\t\t99, 134, 179, 78, 38, 97, 220, 180, 22, 79, 38, 82, 69, 19,\n\t\t172, 143, 48, 146, 229, 33, 210, 82, 83, 234, 147, 154, 196,\n\t\t114, 185, 192, 171, 77, 206, 168, 193, 114, 33, 194, 47, 146,\n\t\t57, 138, 42, 159, 102, 132, 125, 164, 57, 29, 85, 37, 174,\n\t\t45, 171, 130, 206, 232, 100, 66, 88, 183, 123, 94, 103, 182,\n\t\t52, 15, 131, 254, 157, 170, 26, 160, 110, 55, 80, 37, 131,\n\t\t45, 140, 27, 101, 165, 29, 80, 150, 165, 9, 229, 15, 162,\n\t\t184, 44, 33, 70, 16, 202, 177, 8, 196, 218, 120, 248, 175,\n\t\t85, 21, 177, 144, 21, 133, 76, 242, 213, 218, 50, 247, 106,\n\t\t171, 83, 215, 169, 57, 234, 118, 133, 110, 233, 181, 35, 87,\n\t\t167, 161, 26, 26, 63, 140, 19, 18, 110, 245, 16, 130, 113,\n\t\t66, 226, 236, 88, 163, 95, 88, 197, 70, 228, 195, 78, 49,\n\t\t108, 89, 255, 201, 97, 239, 214, 235, 119, 187, 225, 119,\n\t\t119, 135, 42, 136, 27, 149, 77, 109, 85, 187, 235, 118, 107,\n\t\t173, 225, 156, 112, 219, 145, 21, 24, 162, 114, 5, 47, 120,\n\t\t204, 201, 158, 93, 67, 7, 139, 250, 54, 17, 69, 35, 170, 97,\n\t\t216, 50, 16, 36, 215, 145, 167, 45, 38, 161, 129, 222, 8,\n\t\t149, 189, 188, 110, 49, 127, 83, 210, 9, 43, 183, 232, 49,\n\t\t39, 243, 99, 54, 33, 95, 67, 79, 91, 202, 114, 25, 242, 159,\n\t\t244, 228, 5, 97, 209, 103, 156, 59, 187, 171, 21, 127, 217,\n\t\t67, 66, 13, 168, 161, 34, 106, 96, 119, 202, 72, 248, 107,\n\t\t36, 152, 19, 52, 37, 0, 18, 241, 52, 228, 168, 64, 74, 53,\n\t\t16, 186, 9, 198, 216, 154, 203, 101, 83, 18, 147, 67, 4, 119,\n\t\t41, 157, 116, 28, 36, 83, 211, 161, 152, 189, 228, 123, 95,\n\t\t250, 175, 7, 238, 30, 160, 224, 140, 250, 138, 15, 133, 6,\n\t\t238, 149, 119, 155, 195, 157, 78, 195, 19, 4, 231, 237, 114,\n\t\t240, 27, 228, 54, 238, 33, 129, 78, 10, 241, 208, 88, 15,\n\t\t65, 182, 152, 93, 73, 51, 148, 119, 35, 202, 221, 160, 163,\n\t\t174, 253, 77, 209, 98, 236, 49, 9, 113, 156, 132, 143, 5,\n\t\t124, 2, 142, 64, 236, 243, 170, 229, 61, 252, 12, 28, 62,\n\t\t32, 224, 178, 161, 6, 205, 173, 107, 161, 21, 196, 212, 216,\n\t\t108, 68, 36, 15, 141, 76, 89, 248, 107, 164, 229, 20, 159,\n\t\t185, 138, 68, 215, 90, 120, 145, 40, 2, 90, 58, 19, 8, 226,\n\t\t246, 32, 241, 163, 219, 13, 253, 237, 151, 50, 143, 191, 11,\n\t\t133, 93, 92, 75, 215, 186, 188, 148, 132, 252, 229, 21, 238,\n\t\t169, 241, 164, 76, 50, 195, 156, 199, 25, 15, 168, 115, 158,\n\t\t100, 126, 232, 181, 104, 155, 187, 145, 173, 220, 141, 65,\n\t\t44, 190, 147, 10, 171, 237, 118, 37, 129, 51, 7, 125, 213,\n\t\t204, 122, 97, 236, 59, 18, 244, 206, 2, 254, 87, 175, 183,\n\t\t77, 154, 180, 167, 80, 212, 199, 44, 64, 5, 117, 4, 93, 120,\n\t\t33, 13, 39, 43, 78, 190, 242, 56, 35, 241, 11, 106, 85, 6,\n\t\t169, 113, 68, 60, 190, 57, 141, 231, 4, 161, 252, 158, 202,\n\t\t51, 180, 232, 126, 70, 199, 51, 244, 56, 142, 115, 210, 249,\n\t\t241, 191, 251, 30, 147, 153, 218, 237, 25, 185, 11, 209, 96,\n\t\t148, 145, 248, 118, 160, 10, 255, 163, 181, 176, 230, 144,\n\t\t6, 205, 45, 61, 243, 98, 186, 179, 103, 149, 201, 46, 206,\n\t\t8, 227, 167, 233, 132, 236, 93, 13, 163, 60, 161, 70, 237,\n\t\t114, 179, 170, 52, 116, 95, 228, 114, 132, 250, 87, 67, 151,\n\t\t6, 68, 84, 116, 122, 54, 149, 0, 45, 135, 242, 234, 225, 144,\n\t\t102, 68, 142, 195, 25, 16, 148, 118, 97, 140, 241, 23, 160,\n\t\t242, 255, 107, 200, 124, 116, 153, 32, 72, 177, 143, 0, 11,\n\t\t226, 28, 210, 110, 183, 135, 49, 206, 86, 43, 214, 237, 102,\n\t\t24, 227, 20, 89, 238, 165, 23, 84, 40, 23, 134, 154, 18, 73,\n\t\t48, 115, 28, 102, 219, 161, 236, 115, 111, 103, 183, 191,\n\t\t139, 208, 255, 215, 236, 64, 75, 78, 59, 187, 24, 227, 124,\n\t\t175, 66, 75, 61, 131, 25, 246, 221, 18, 249, 208, 181, 179,\n\t\t11, 34, 214, 176, 179, 67, 197, 54, 94, 231, 69, 8, 104, 59,\n\t\t143, 106, 227, 109, 8, 50, 124, 174, 205, 246, 138, 221, 28,\n\t\t193, 99, 70, 146, 152, 147, 201, 165, 196, 201, 62, 135, 137,\n\t\t89, 143, 62, 129, 105, 150, 206, 251, 20, 120, 218, 103, 133,\n\t\t53, 240, 55, 246, 169, 177, 222, 100, 8, 50, 57, 173, 156,\n\t\t240, 125, 73, 132, 143, 13, 197, 245, 25, 191, 75, 198, 88,\n\t\t167, 203, 134, 82, 214, 80, 206, 95, 184, 137, 125, 207, 16,\n\t\t26, 156, 215, 207, 17, 62, 86, 57, 123, 179, 153, 241, 140,\n\t\t38, 147, 140, 176, 43, 47, 184, 135, 3, 41, 193, 50, 20, 197,\n\t\t147, 137, 105, 81, 109, 42, 201, 77, 125, 11, 7, 20, 50, 141,\n\t\t154, 144, 63, 33, 118, 64, 236, 91, 206, 28, 65, 130, 201,\n\t\t106, 149, 27, 235, 87, 115, 215, 132, 28, 114, 4, 99, 95,\n\t\t237, 4, 193, 12, 155, 51, 102, 51, 109, 77, 187, 196, 222,\n\t\t144, 123, 107, 47, 100, 248, 23, 160, 248, 15, 200, 240, 91,\n\t\t212, 15, 25, 254, 6, 20, 255, 12, 25, 126, 135, 32, 17, 115,\n\t\t78, 28, 235, 204, 71, 132, 120, 141, 243, 106, 147, 101, 71,\n\t\t158, 225, 203, 188, 6, 86, 135, 9, 100, 254, 179, 181, 110,\n\t\t55, 239, 118, 147, 134, 176, 142, 183, 122, 48, 211, 115,\n\t\t54, 164, 94, 21, 105, 69, 173, 48, 81, 11, 188, 172, 97, 120,\n\t\t29, 193, 19, 7, 193, 51, 133, 224, 177, 64, 240, 113, 33,\n\t\t97, 210, 64, 110, 59, 245, 223, 145, 144, 132, 18, 7, 1, 168,\n\t\t20, 7, 148, 35, 129, 0, 246, 121, 152, 59, 185, 76, 36, 36,\n\t\t149, 4, 57, 192, 233, 70, 231, 86, 185, 64, 225, 252, 201,\n\t\t115, 43, 61, 36, 23, 209, 217, 118, 208, 9, 182, 105, 5, 81,\n\t\t213, 208, 42, 219, 65, 149, 146, 127, 25, 130, 180, 166, 197,\n\t\t250, 221, 101, 44, 1, 72, 61, 187, 127, 137, 10, 232, 181,\n\t\t30, 148, 77, 245, 65, 89, 115, 32, 117, 48, 125, 68, 62, 181,\n\t\t186, 149, 232, 44, 209, 192, 96, 138, 22, 121, 139, 66, 76,\n\t\t167, 213, 222, 74, 55, 177, 183, 158, 187, 214, 212, 55, 8,\n\t\t136, 17, 1, 43, 25, 8, 13, 26, 78, 173, 84, 158, 61, 203,\n\t\t210, 4, 40, 50, 84, 39, 80, 38, 45, 167, 220, 30, 237, 147,\n\t\t72, 210, 14, 185, 23, 173, 65, 55, 149, 61, 0, 65, 213, 190,\n\t\t222, 40, 147, 174, 50, 175, 57, 205, 32, 161, 254, 132, 20,\n\t\t217, 77, 216, 232, 137, 169, 227, 137, 210, 199, 214, 230,\n\t\t240, 43, 54, 116, 60, 44, 46, 31, 22, 68, 121, 89, 60, 63,\n\t\t77, 59, 115, 194, 103, 233, 164, 195, 226, 57, 153, 116, 130,\n\t\t231, 219, 108, 251, 121, 240, 28, 13, 68, 157, 80, 47, 38,\n\t\t113, 20, 194, 144, 151, 59, 213, 172, 132, 180, 54, 167, 209,\n\t\t181, 152, 192, 254, 130, 30, 36, 116, 124, 251, 70, 121, 49,\n\t\t124, 223, 17, 183, 0, 131, 128, 146, 101, 137, 130, 188, 155,\n\t\t131, 26, 77, 151, 237, 70, 125, 133, 204, 209, 141, 92, 5,\n\t\t153, 169, 150, 171, 190, 122, 70, 158, 240, 120, 77, 25, 115,\n\t\t83, 32, 143, 92, 66, 106, 103, 42, 21, 235, 38, 126, 41, 22,\n\t\t37, 250, 2, 138, 32, 211, 99, 210, 232, 35, 86, 40, 67, 208,\n\t\t148, 208, 10, 121, 232, 153, 254, 25, 107, 60, 168, 210, 186,\n\t\t169, 150, 210, 157, 79, 210, 108, 159, 22, 114, 238, 21, 179,\n\t\t253, 175, 117, 179, 61, 229, 144, 114, 239, 90, 137, 186,\n\t\t247, 148, 77, 210, 123, 93, 179, 98, 217, 116, 137, 81, 233,\n\t\t246, 91, 101, 221, 126, 119, 4, 193, 171, 51, 129, 213, 4,\n\t\t247, 128, 97, 110, 228, 42, 242, 146, 13, 72, 233, 6, 125,\n\t\t30, 242, 43, 50, 68, 3, 49, 58, 47, 212, 41, 80, 179, 162,\n\t\t69, 33, 212, 82, 105, 211, 198, 158, 242, 38, 175, 98, 136,\n\t\t79, 185, 77, 94, 107, 137, 55, 237, 126, 5, 79, 203, 5, 164,\n\t\t28, 193, 43, 134, 195, 152, 227, 96, 156, 38, 73, 188, 200,\n\t\t73, 0, 99, 174, 172, 241, 9, 87, 230, 120, 147, 129, 96, 198,\n\t\t113, 152, 115, 109, 130, 143, 249, 16, 150, 28, 63, 170, 3,\n\t\t135, 254, 86, 15, 148, 120, 221, 15, 130, 2, 166, 101, 70,\n\t\t105, 67, 55, 249, 198, 86, 110, 8, 99, 80, 192, 132, 227,\n\t\t199, 139, 55, 103, 159, 250, 202, 245, 102, 123, 204, 65,\n\t\t124, 158, 170, 111, 38, 19, 222, 72, 187, 248, 76, 154, 197,\n\t\t213, 231, 225, 209, 105, 223, 88, 224, 68, 82, 139, 149, 122,\n\t\t204, 171, 62, 63, 55, 220, 122, 248, 84, 38, 62, 47, 191,\n\t\t4, 53, 130, 133, 147, 59, 9, 224, 142, 227, 224, 158, 78,\n\t\t248, 44, 128, 7, 142, 131, 25, 81, 70, 236, 35, 1, 46, 209,\n\t\t28, 116, 34, 183, 246, 1, 175, 31, 81, 219, 158, 134, 207,\n\t\t225, 210, 111, 244, 141, 165, 235, 134, 149, 45, 74, 134,\n\t\t228, 154, 106, 173, 249, 129, 172, 183, 209, 242, 154, 223,\n\t\t208, 126, 150, 197, 15, 56, 231, 209, 60, 190, 37, 242, 99,\n\t\t13, 150, 183, 142, 253, 106, 150, 145, 41, 14, 254, 243, 249,\n\t\t54, 137, 232, 100, 251, 121, 48, 132, 214, 162, 142, 55, 103,\n\t\t165, 198, 115, 132, 6, 229, 101, 130, 77, 55, 222, 129, 216,\n\t\t120, 20, 247, 32, 195, 204, 108, 60, 250, 50, 27, 80, 199,\n\t\t53, 95, 57, 254, 181, 211, 229, 84, 136, 173, 155, 118, 152,\n\t\t163, 117, 190, 245, 66, 22, 37, 5, 26, 168, 235, 0, 56, 239,\n\t\t118, 123, 47, 99, 61, 46, 107, 92, 204, 117, 115, 56, 247,\n\t\t172, 69, 180, 88, 230, 179, 48, 69, 168, 80, 121, 106, 131,\n\t\t212, 205, 32, 34, 109, 207, 174, 237, 185, 252, 14, 81, 191,\n\t\t97, 160, 210, 69, 141, 213, 56, 158, 76, 246, 51, 26, 239,\n\t\t179, 201, 129, 193, 97, 197, 108, 42, 56, 228, 25, 85, 205,\n\t\t110, 169, 150, 85, 203, 43, 234, 195, 26, 229, 227, 205, 92,\n\t\t25, 114, 222, 42, 162, 222, 112, 164, 230, 38, 246, 117, 136,\n\t\t148, 198, 41, 118, 147, 178, 144, 139, 95, 13, 167, 8, 32,\n\t\t80, 122, 95, 109, 121, 247, 74, 183, 187, 181, 190, 83, 187,\n\t\t64, 10, 104, 74, 227, 14, 235, 76, 192, 45, 210, 68, 143,\n\t\t35, 190, 30, 63, 124, 76, 90, 181, 21, 32, 140, 49, 171, 45,\n\t\t92, 129, 144, 131, 61, 218, 150, 189, 21, 42, 207, 64, 49,\n\t\t27, 20, 177, 148, 215, 240, 74, 51, 236, 132, 35, 212, 237,\n\t\t146, 6, 28, 144, 21, 44, 114, 174, 117, 140, 9, 143, 4, 105,\n\t\t149, 194, 73, 19, 70, 70, 70, 165, 8, 182, 168, 87, 255, 145,\n\t\t158, 81, 97, 220, 194, 216, 90, 199, 9, 138, 114, 35, 16,\n\t\t186, 161, 44, 164, 7, 46, 37, 9, 45, 116, 58, 198, 146, 67,\n\t\t58, 39, 44, 151, 171, 62, 104, 14, 211, 21, 199, 175, 185,\n\t\t35, 138, 207, 121, 253, 232, 35, 231, 15, 9, 185, 202, 134,\n\t\t184, 231, 219, 129, 6, 224, 182, 139, 202, 78, 168, 244, 179,\n\t\t16, 253, 112, 158, 105, 215, 13, 242, 117, 17, 179, 137, 244,\n\t\t221, 48, 199, 45, 185, 171, 34, 81, 118, 19, 110, 245, 212,\n\t\t188, 82, 28, 228, 227, 44, 77, 146, 96, 59, 204, 174, 122,\n\t\t195, 154, 71, 112, 166, 112, 46, 220, 69, 200, 18, 175, 245,\n\t\t186, 86, 21, 28, 30, 0, 61, 169, 132, 229, 60, 100, 45, 0,\n\t\t157, 187, 0, 173, 64, 247, 134, 35, 96, 30, 208, 6, 1, 48,\n\t\t207, 236, 119, 17, 212, 186, 49, 232, 165, 145, 240, 180,\n\t\t85, 249, 202, 91, 151, 177, 146, 124, 149, 14, 183, 131, 197,\n\t\t215, 160, 144, 118, 141, 89, 197, 170, 97, 20, 163, 167, 40,\n\t\t197, 122, 66, 97, 68, 125, 119, 255, 8, 73, 228, 137, 253,\n\t\t67, 16, 108, 145, 150, 253, 83, 51, 145, 185, 152, 238, 155,\n\t\t51, 171, 205, 89, 96, 199, 171, 116, 201, 132, 158, 121, 144,\n\t\t80, 194, 248, 123, 50, 230, 33, 186, 98, 10, 22, 142, 134,\n\t\t95, 29, 28, 52, 135, 235, 238, 155, 198, 166, 170, 248, 180,\n\t\t114, 115, 46, 211, 186, 137, 4, 64, 122, 47, 41, 50, 140,\n\t\t61, 195, 189, 65, 246, 146, 14, 178, 146, 61, 55, 235, 94,\n\t\t101, 79, 241, 107, 169, 48, 105, 22, 139, 114, 30, 126, 7,\n\t\t243, 174, 174, 164, 164, 59, 169, 51, 231, 246, 13, 189, 171,\n\t\t57, 178, 119, 67, 183, 172, 81, 16, 72, 0, 197, 255, 151,\n\t\t246, 47, 111, 221, 111, 124, 211, 109, 237, 108, 70, 37, 76,\n\t\t183, 238, 198, 24, 169, 13, 86, 239, 178, 122, 162, 235, 219,\n\t\t94, 152, 183, 156, 208, 229, 188, 253, 40, 46, 225, 168, 245,\n\t\t232, 77, 203, 72, 235, 15, 227, 42, 2, 111, 229, 240, 173,\n\t\t58, 184, 141, 14, 211, 66, 125, 152, 182, 228, 32, 24, 190,\n\t\t22, 111, 172, 145, 82, 39, 120, 207, 217, 98, 14, 28, 166,\n\t\t220, 156, 180, 185, 155, 221, 163, 173, 173, 33, 68, 119,\n\t\t28, 237, 221, 241, 254, 131, 109, 71, 137, 129, 117, 98, 167,\n\t\t168, 10, 40, 88, 12, 94, 51, 231, 242, 139, 11, 79, 45, 112,\n\t\t160, 189, 208, 43, 108, 130, 239, 114, 179, 167, 92, 164,\n\t\t174, 31, 75, 105, 197, 147, 125, 213, 27, 34, 212, 231, 109,\n\t\t142, 253, 190, 1, 105, 63, 187, 118, 221, 195, 145, 161, 112,\n\t\t240, 124, 219, 211, 134, 84, 47, 128, 214, 5, 185, 38, 125,\n\t\t32, 200, 30, 15, 228, 60, 164, 168, 102, 86, 147, 54, 113,\n\t\t182, 70, 140, 142, 229, 58, 40, 19, 109, 213, 125, 31, 132,\n\t\t238, 95, 56, 199, 171, 222, 6, 106, 230, 119, 229, 14, 171,\n\t\t22, 81, 201, 71, 46, 237, 26, 16, 87, 82, 169, 185, 249, 45,\n\t\t56, 108, 177, 22, 82, 198, 80, 81, 64, 203, 80, 191, 207,\n\t\t160, 101, 161, 69, 246, 90, 175, 106, 168, 235, 117, 208,\n\t\t20, 14, 191, 211, 150, 169, 119, 130, 227, 250, 159, 200,\n\t\t59, 35, 118, 31, 26, 235, 152, 207, 150, 73, 247, 104, 255,\n\t\t81, 153, 198, 183, 72, 183, 203, 172, 6, 243, 66, 104, 19,\n\t\t43, 33, 36, 104, 79, 72, 42, 212, 0, 147, 47, 173, 100, 229,\n\t\t245, 2, 69, 147, 228, 69, 113, 43, 169, 202, 27, 6, 13, 171,\n\t\t104, 171, 173, 146, 92, 209, 205, 109, 149, 84, 217, 42, 69,\n\t\t157, 16, 21, 202, 231, 53, 254, 247, 89, 217, 150, 92, 154,\n\t\t217, 226, 34, 148, 60, 163, 98, 103, 155, 240, 186, 161, 237,\n\t\t128, 87, 78, 205, 131, 125, 121, 90, 31, 141, 151, 153, 216,\n\t\t114, 151, 149, 179, 97, 223, 181, 137, 65, 137, 215, 122,\n\t\t89, 159, 176, 156, 54, 54, 112, 59, 159, 23, 251, 216, 183,\n\t\t129, 215, 226, 210, 158, 113, 191, 237, 51, 141, 74, 131,\n\t\t203, 54, 91, 157, 88, 247, 66, 236, 231, 156, 107, 187, 23,\n\t\t246, 148, 45, 115, 43, 150, 186, 75, 238, 100, 172, 181, 213,\n\t\t149, 173, 207, 56, 120, 58, 40, 224, 146, 35, 248, 200, 112,\n\t\t120, 193, 113, 48, 201, 210, 133, 244, 255, 132, 125, 109,\n\t\t174, 59, 86, 230, 58, 155, 129, 224, 144, 87, 220, 103, 239,\n\t\t57, 14, 71, 198, 122, 119, 193, 135, 112, 170, 172, 247, 250,\n\t\t6, 99, 240, 227, 223, 87, 127, 235, 173, 126, 248, 239, 0,\n\t\t193, 25, 199, 143, 174, 185, 109, 191, 105, 110, 219, 87,\n\t\t22, 58, 99, 176, 219, 175, 27, 236, 246, 181, 57, 206, 90,\n\t\t225, 246, 91, 237, 115, 251, 124, 251, 144, 27, 207, 86, 39,\n\t\t219, 186, 184, 218, 2, 31, 206, 171, 217, 203, 133, 206, 44,\n\t\t224, 86, 0, 197, 120, 246, 195, 185, 53, 241, 125, 214, 192,\n\t\t90, 46, 2, 120, 163, 127, 107, 247, 211, 19, 253, 169, 188,\n\t\t78, 223, 59, 80, 221, 153, 19, 182, 52, 94, 170, 95, 57, 14,\n\t\t22, 169, 190, 204, 155, 243, 152, 211, 113, 0, 159, 26, 214,\n\t\t61, 11, 248, 225, 115, 248, 32, 33, 175, 19, 58, 211, 52,\n\t\t155, 7, 240, 197, 77, 147, 29, 4, 240, 90, 164, 177, 248,\n\t\t110, 20, 103, 59, 44, 190, 11, 224, 109, 163, 80, 167, 252,\n\t\t164, 156, 204, 251, 66, 181, 142, 204, 68, 145, 252, 236,\n\t\t219, 207, 0, 222, 113, 28, 240, 116, 177, 163, 156, 87, 224,\n\t\t87, 253, 73, 216, 36, 128, 87, 2, 67, 82, 206, 211, 185, 201,\n\t\t254, 88, 166, 200, 18, 191, 115, 237, 137, 108, 10, 124, 227,\n\t\t202, 71, 217, 124, 255, 194, 241, 163, 186, 106, 220, 239,\n\t\t193, 52, 161, 139, 254, 86, 15, 70, 66, 25, 137, 179, 135,\n\t\t190, 86, 114, 149, 108, 18, 64, 70, 166, 36, 35, 108, 76,\n\t\t250, 102, 183, 129, 16, 4, 147, 248, 161, 31, 76, 30, 88,\n\t\t60, 167, 227, 160, 128, 63, 202, 38, 173, 43, 182, 54, 16,\n\t\t155, 77, 130, 2, 213, 87, 105, 74, 46, 187, 108, 24, 147,\n\t\t221, 110, 155, 153, 118, 0, 154, 140, 23, 240, 179, 223, 18,\n\t\t59, 118, 221, 111, 141, 136, 105, 204, 101, 42, 220, 202,\n\t\t247, 184, 201, 138, 165, 44, 115, 223, 17, 182, 52, 244, 174,\n\t\t116, 98, 60, 149, 136, 160, 75, 77, 8, 39, 99, 174, 146, 194,\n\t\t167, 221, 99, 199, 155, 89, 226, 74, 53, 216, 232, 47, 6,\n\t\t119, 186, 221, 173, 81, 187, 252, 121, 203, 237, 21, 198,\n\t\t177, 35, 127, 182, 171, 52, 64, 176, 109, 78, 204, 221, 105,\n\t\t235, 92, 249, 32, 142, 163, 107, 233, 250, 36, 96, 145, 135,\n\t\t66, 93, 54, 226, 79, 221, 191, 195, 109, 184, 0, 138, 71,\n\t\t70, 21, 63, 83, 86, 4, 96, 178, 193, 17, 15, 55, 52, 96, 57,\n\t\t198, 0, 13, 244, 86, 30, 62, 243, 50, 240, 160, 140, 98, 100,\n\t\t119, 185, 14, 237, 211, 57, 55, 161, 120, 202, 72, 68, 54,\n\t\t58, 79, 148, 102, 55, 40, 168, 218, 186, 244, 196, 6, 129,\n\t\t54, 13, 214, 253, 224, 44, 58, 239, 101, 152, 247, 219, 101,\n\t\t122, 91, 78, 8, 53, 89, 75, 27, 79, 139, 246, 182, 104, 41,\n\t\t221, 183, 53, 38, 5, 124, 168, 110, 250, 173, 218, 232, 205,\n\t\t70, 237, 118, 213, 242, 88, 5, 244, 171, 213, 241, 204, 102,\n\t\t34, 247, 157, 89, 152, 57, 251, 5, 236, 126, 81, 48, 213,\n\t\t123, 10, 161, 226, 59, 92, 244, 122, 24, 99, 213, 181, 185,\n\t\t44, 243, 154, 151, 118, 214, 81, 41, 250, 68, 163, 116, 242,\n\t\t128, 172, 79, 77, 40, 69, 33, 117, 107, 66, 221, 30, 145,\n\t\t187, 125, 196, 35, 150, 166, 139, 186, 117, 202, 220, 252,\n\t\t170, 166, 122, 46, 124, 85, 173, 134, 181, 45, 226, 10, 245,\n\t\t231, 92, 101, 55, 82, 45, 134, 215, 183, 193, 41, 48, 36,\n\t\t244, 244, 22, 133, 123, 180, 70, 225, 62, 230, 206, 88, 74,\n\t\t27, 196, 116, 26, 238, 215, 237, 169, 138, 232, 57, 195, 86,\n\t\t134, 106, 187, 238, 106, 53, 75, 243, 186, 66, 125, 125, 161,\n\t\t56, 172, 175, 185, 168, 42, 198, 187, 92, 76, 98, 78, 60,\n\t\t190, 240, 107, 137, 162, 54, 11, 85, 59, 174, 244, 155, 143,\n\t\t103, 100, 178, 76, 200, 7, 217, 190, 58, 83, 216, 216, 225,\n\t\t213, 3, 17, 38, 128, 45, 197, 152, 39, 110, 140, 1, 143, 114,\n\t\t158, 46, 206, 179, 116, 17, 223, 196, 170, 109, 233, 205,\n\t\t169, 207, 79, 208, 147, 102, 7, 227, 195, 43, 135, 48, 46,\n\t\t69, 202, 72, 247, 225, 89, 48, 173, 20, 249, 125, 126, 47,\n\t\t56, 240, 214, 198, 4, 105, 115, 172, 20, 14, 127, 242, 115,\n\t\t15, 137, 175, 223, 197, 16, 100, 132, 3, 7, 107, 234, 202,\n\t\t227, 23, 142, 108, 184, 167, 178, 152, 53, 119, 36, 241, 184,\n\t\t49, 28, 213, 125, 29, 12, 142, 151, 167, 224, 66, 175, 120,\n\t\t201, 15, 45, 11, 250, 204, 101, 216, 149, 119, 188, 190, 3,\n\t\t109, 137, 247, 242, 136, 136, 224, 95, 57, 66, 125, 167, 230,\n\t\t27, 142, 246, 8, 254, 157, 187, 105, 39, 50, 237, 27, 239,\n\t\t63, 213, 216, 71, 110, 98, 11, 184, 136, 236, 209, 5, 122,\n\t\t47, 155, 139, 91, 70, 62, 80, 2, 99, 96, 168, 152, 133, 145,\n\t\t67, 36, 253, 24, 13, 28, 63, 22, 190, 80, 100, 21, 146, 173,\n\t\t132, 177, 61, 161, 142, 120, 209, 82, 23, 200, 53, 122, 154,\n\t\t79, 32, 181, 22, 66, 155, 133, 86, 171, 71, 105, 15, 233,\n\t\t155, 36, 236, 233, 81, 43, 137, 143, 11, 179, 214, 253, 146,\n\t\t254, 155, 164, 16, 193, 60, 157, 208, 41, 37, 89, 222, 55,\n\t\t98, 35, 87, 210, 225, 35, 97, 82, 146, 233, 87, 218, 22, 89,\n\t\t5, 232, 237, 121, 118, 71, 50, 25, 67, 231, 81, 243, 37, 74,\n\t\t108, 12, 155, 74, 45, 195, 182, 10, 27, 98, 37, 208, 146,\n\t\t127, 157, 61, 107, 129, 82, 26, 18, 236, 208, 84, 192, 147,\n\t\t11, 254, 144, 16, 108, 135, 181, 181, 91, 200, 96, 21, 227,\n\t\t191, 122, 179, 86, 227, 134, 222, 239, 199, 74, 156, 42, 189,\n\t\t177, 198, 202, 114, 209, 140, 93, 168, 195, 31, 89, 82, 111,\n\t\t27, 80, 126, 90, 117, 195, 6, 89, 227, 132, 69, 54, 55, 108,\n\t\t16, 227, 132, 69, 140, 97, 163, 34, 249, 213, 253, 107, 183,\n\t\t248, 106, 245, 163, 32, 234, 202, 179, 188, 219, 13, 181,\n\t\t162, 39, 211, 196, 0, 86, 171, 127, 96, 155, 143, 236, 113,\n\t\t67, 221, 247, 182, 221, 98, 240, 73, 76, 151, 225, 30, 80,\n\t\t92, 198, 48, 124, 73, 203, 56, 134, 89, 43, 77, 35, 87, 108,\n\t\t136, 32, 21, 75, 32, 127, 218, 37, 128, 188, 46, 182, 138,\n\t\t252, 66, 174, 76, 183, 171, 53, 93, 108, 166, 208, 237, 134,\n\t\t121, 36, 211, 148, 11, 53, 71, 144, 170, 174, 99, 156, 42,\n\t\t242, 161, 37, 218, 172, 42, 56, 119, 187, 234, 64, 184, 217,\n\t\t224, 166, 158, 251, 171, 149, 134, 167, 83, 215, 133, 167,\n\t\t144, 137, 202, 75, 231, 25, 216, 203, 198, 90, 1, 72, 42,\n\t\t226, 247, 155, 227, 195, 35, 200, 209, 64, 141, 212, 72, 38,\n\t\t9, 130, 164, 37, 46, 77, 248, 29, 162, 219, 122, 225, 108,\n\t\t58, 93, 35, 157, 9, 224, 175, 23, 191, 130, 105, 156, 72,\n\t\t167, 166, 17, 15, 227, 234, 65, 137, 22, 189, 178, 70, 170,\n\t\t87, 244, 82, 134, 17, 200, 145, 22, 190, 90, 80, 167, 105,\n\t\t108, 5, 182, 145, 185, 149, 73, 214, 209, 98, 114, 101, 72,\n\t\t218, 44, 93, 166, 39, 71, 160, 93, 226, 222, 42, 11, 138,\n\t\t207, 129, 145, 78, 195, 112, 83, 156, 217, 219, 10, 127, 252,\n\t\t161, 196, 145, 213, 234, 135, 255, 174, 236, 208, 191, 245,\n\t\t220, 207, 31, 255, 190, 229, 20, 29, 113, 207, 125, 245, 47,\n\t\t86, 4, 71, 168, 127, 202, 77, 183, 122, 71, 43, 207, 204,\n\t\t77, 4, 42, 37, 141, 52, 85, 216, 154, 230, 106, 120, 224,\n\t\t58, 73, 69, 80, 132, 17, 175, 220, 235, 215, 138, 106, 200,\n\t\t196, 132, 177, 59, 195, 31, 42, 27, 38, 220, 98, 117, 144,\n\t\t252, 248, 195, 150, 67, 162, 180, 11, 70, 149, 62, 121, 238,\n\t\t160, 188, 229, 42, 176, 152, 0, 39, 53, 0, 210, 20, 137, 150,\n\t\t183, 81, 12, 56, 7, 63, 254, 221, 29, 85, 239, 101, 214, 237,\n\t\t102, 59, 59, 240, 183, 158, 155, 156, 189, 164, 246, 70, 71,\n\t\t183, 155, 109, 111, 67, 246, 178, 39, 181, 186, 30, 2, 122,\n\t\t149, 13, 141, 242, 82, 20, 230, 178, 158, 59, 91, 115, 116,\n\t\t91, 27, 174, 32, 162, 98, 215, 167, 78, 36, 12, 29, 34, 165,\n\t\t176, 139, 80, 198, 200, 144, 212, 74, 251, 142, 142, 255,\n\t\t125, 86, 237, 95, 120, 189, 164, 224, 77, 109, 165, 255, 80,\n\t\t54, 240, 113, 17, 202, 253, 94, 13, 17, 193, 163, 186, 65,\n\t\t18, 62, 113, 248, 153, 183, 236, 173, 214, 74, 95, 54, 168,\n\t\t84, 181, 139, 74, 7, 119, 213, 148, 99, 239, 148, 173, 148,\n\t\t108, 211, 95, 85, 12, 241, 79, 232, 37, 63, 183, 153, 190,\n\t\t205, 74, 54, 162, 85, 52, 58, 254, 80, 239, 184, 209, 75,\n\t\t33, 128, 172, 77, 207, 216, 211, 99, 153, 91, 49, 160, 255,\n\t\t204, 157, 140, 181, 6, 244, 178, 245, 123, 238, 155, 82, 1,\n\t\t63, 115, 4, 191, 51, 28, 254, 198, 113, 48, 79, 39, 113, 18,\n\t\t0, 33, 202, 122, 206, 137, 180, 158, 171, 84, 4, 140, 224,\n\t\t240, 153, 177, 149, 255, 198, 135, 64, 9, 126, 28, 197, 227,\n\t\t219, 73, 150, 74, 155, 167, 27, 109, 66, 226, 189, 12, 59,\n\t\t49, 75, 239, 101, 124, 137, 204, 45, 237, 9, 26, 225, 9, 48,\n\t\t161, 26, 113, 2, 78, 136, 182, 156, 240, 17, 41, 169, 154,\n\t\t228, 9, 105, 152, 228, 9, 169, 152, 228, 245, 103, 105, 146,\n\t\t39, 68, 69, 55, 58, 62, 237, 171, 189, 74, 85, 226, 251, 163,\n\t\t139, 227, 63, 142, 250, 65, 70, 114, 250, 77, 53, 173, 87,\n\t\t247, 248, 226, 221, 241, 197, 133, 54, 212, 71, 58, 10, 149,\n\t\t44, 96, 241, 220, 20, 209, 198, 250, 74, 33, 121, 233, 82,\n\t\t224, 176, 41, 36, 249, 245, 114, 209, 44, 84, 109, 75, 22,\n\t\t107, 180, 214, 114, 122, 64, 72, 213, 187, 55, 39, 122, 113,\n\t\t119, 148, 97, 106, 20, 103, 59, 115, 18, 231, 203, 140, 4,\n\t\t16, 219, 76, 179, 60, 1, 36, 54, 45, 93, 16, 22, 192, 152,\n\t\t152, 72, 128, 51, 98, 78, 17, 150, 2, 77, 84, 161, 9, 141,\n\t\t147, 244, 38, 128, 105, 227, 156, 90, 33, 207, 240, 57, 76,\n\t\t108, 150, 13, 220, 101, 243, 110, 68, 75, 83, 250, 149, 76,\n\t\t118, 120, 186, 128, 142, 254, 173, 172, 240, 208, 137, 104,\n\t\t190, 35, 83, 160, 19, 229, 156, 142, 111, 31, 68, 177, 0,\n\t\t174, 69, 53, 55, 97, 78, 188, 102, 235, 204, 53, 91, 63, 101,\n\t\t148, 174, 155, 181, 213, 212, 26, 170, 249, 210, 86, 48, 64,\n\t\t171, 93, 104, 22, 232, 229, 198, 150, 120, 149, 78, 30, 140,\n\t\t170, 85, 113, 92, 166, 55, 44, 205, 200, 43, 221, 138, 116,\n\t\t216, 47, 51, 237, 114, 125, 162, 19, 62, 195, 61, 109, 217,\n\t\t206, 54, 177, 108, 243, 250, 125, 80, 53, 168, 22, 215, 82,\n\t\t238, 241, 45, 173, 94, 194, 95, 231, 88, 90, 233, 1, 61, 62,\n\t\t107, 183, 154, 43, 91, 172, 183, 29, 108, 92, 3, 25, 126,\n\t\t102, 132, 201, 148, 40, 115, 118, 221, 254, 93, 160, 65, 179,\n\t\t19, 195, 91, 25, 170, 174, 195, 106, 197, 218, 68, 239, 218,\n\t\t122, 25, 127, 72, 25, 251, 234, 194, 0, 223, 189, 182, 214,\n\t\t76, 140, 39, 159, 151, 57, 63, 148, 120, 18, 34, 120, 214,\n\t\t144, 208, 173, 125, 55, 33, 78, 67, 71, 249, 56, 94, 232,\n\t\t139, 117, 78, 242, 123, 73, 112, 76, 114, 115, 142, 41, 19,\n\t\t48, 169, 208, 34, 152, 16, 255, 5, 110, 185, 200, 242, 254,\n\t\t182, 109, 71, 161, 179, 105, 166, 65, 103, 92, 111, 170, 103,\n\t\t60, 36, 53, 239, 43, 83, 165, 164, 95, 149, 142, 159, 241,\n\t\t106, 12, 84, 167, 186, 16, 216, 91, 112, 189, 167, 78, 146,\n\t\t53, 4, 102, 233, 189, 201, 247, 220, 89, 35, 170, 68, 169,\n\t\t17, 20, 8, 121, 220, 28, 27, 136, 235, 15, 92, 216, 134, 206,\n\t\t53, 108, 110, 162, 164, 117, 118, 220, 28, 7, 187, 221, 45,\n\t\t63, 18, 58, 183, 38, 53, 205, 208, 78, 133, 235, 55, 145,\n\t\t140, 88, 183, 110, 39, 125, 63, 166, 57, 194, 222, 116, 42,\n\t\t166, 169, 57, 163, 15, 13, 93, 45, 112, 70, 188, 136, 170,\n\t\t218, 168, 96, 170, 15, 17, 85, 177, 6, 38, 34, 160, 70, 204,\n\t\t255, 19, 206, 131, 190, 125, 179, 97, 228, 80, 18, 93, 11,\n\t\t100, 122, 39, 152, 83, 216, 30, 50, 52, 171, 132, 12, 45,\n\t\t107, 160, 214, 195, 134, 103, 107, 14, 27, 184, 2, 161, 186,\n\t\t158, 101, 3, 138, 67, 173, 144, 252, 50, 252, 70, 129, 142,\n\t\t144, 118, 183, 192, 202, 233, 132, 11, 117, 55, 101, 29, 251,\n\t\t170, 36, 213, 25, 152, 155, 233, 217, 214, 78, 118, 141, 137,\n\t\t25, 7, 67, 21, 171, 243, 67, 203, 41, 71, 149, 170, 110, 124,\n\t\t50, 64, 73, 139, 169, 255, 55, 14, 28, 50, 107, 208, 119,\n\t\t168, 72, 11, 217, 0, 246, 212, 14, 172, 228, 57, 214, 134,\n\t\t122, 140, 67, 39, 196, 130, 9, 252, 141, 49, 150, 223, 71,\n\t\t39, 71, 239, 142, 78, 47, 175, 79, 207, 14, 143, 86, 171,\n\t\t10, 223, 136, 226, 197, 130, 176, 201, 193, 140, 38, 254,\n\t\t248, 67, 229, 145, 26, 127, 72, 136, 49, 186, 226, 96, 148,\n\t\t164, 227, 219, 160, 86, 70, 97, 94, 221, 244, 163, 165, 228,\n\t\t70, 131, 114, 193, 46, 211, 5, 238, 1, 235, 118, 91, 125,\n\t\t167, 155, 240, 177, 172, 110, 86, 195, 75, 165, 80, 91, 200,\n\t\t176, 105, 154, 141, 201, 107, 165, 100, 91, 122, 87, 229,\n\t\t249, 167, 30, 166, 15, 149, 147, 1, 82, 111, 189, 100, 56,\n\t\t101, 220, 73, 239, 157, 177, 26, 111, 43, 15, 200, 11, 39,\n\t\t104, 104, 250, 151, 40, 79, 201, 105, 125, 132, 39, 107, 33,\n\t\t43, 169, 38, 43, 153, 198, 121, 23, 82, 45, 71, 114, 235,\n\t\t40, 183, 230, 243, 250, 179, 66, 238, 76, 29, 101, 67, 150,\n\t\t16, 118, 1, 88, 73, 238, 97, 140, 107, 32, 155, 197, 185,\n\t\t195, 236, 205, 217, 113, 115, 1, 244, 169, 94, 149, 13, 181,\n\t\t204, 164, 66, 125, 12, 174, 232, 21, 54, 234, 225, 94, 155,\n\t\t72, 84, 211, 190, 42, 115, 173, 154, 170, 124, 150, 52, 45,\n\t\t44, 33, 84, 160, 126, 101, 24, 171, 85, 43, 107, 171, 245,\n\t\t104, 39, 234, 48, 214, 77, 38, 186, 103, 9, 191, 153, 138,\n\t\t82, 62, 91, 100, 58, 135, 106, 74, 246, 212, 119, 171, 171,\n\t\t129, 169, 250, 106, 60, 150, 51, 53, 79, 9, 157, 161, 180,\n\t\t144, 18, 150, 50, 82, 167, 36, 30, 11, 178, 38, 35, 229, 165,\n\t\t159, 246, 107, 154, 109, 242, 93, 83, 106, 118, 37, 12, 41,\n\t\t56, 71, 215, 25, 17, 157, 75, 198, 32, 10, 74, 231, 2, 157,\n\t\t234, 138, 229, 207, 170, 254, 254, 102, 115, 43, 185, 77,\n\t\t185, 244, 23, 101, 48, 115, 51, 154, 38, 11, 50, 172, 177,\n\t\t219, 45, 229, 188, 146, 251, 154, 160, 222, 62, 62, 138, 44,\n\t\t143, 105, 182, 254, 125, 76, 102, 111, 76, 250, 65, 48, 112,\n\t\t163, 143, 121, 54, 135, 29, 85, 25, 141, 197, 142, 199, 130,\n\t\t117, 156, 145, 152, 219, 192, 247, 193, 132, 222, 5, 245,\n\t\t193, 171, 24, 187, 167, 241, 156, 224, 152, 128, 237, 165,\n\t\t154, 45, 67, 240, 198, 147, 137, 16, 113, 61, 112, 81, 108,\n\t\t235, 50, 173, 173, 231, 134, 170, 140, 11, 38, 191, 194, 176,\n\t\t215, 166, 71, 236, 246, 13, 61, 106, 58, 226, 118, 187, 161,\n\t\t115, 88, 73, 26, 128, 219, 107, 18, 174, 190, 67, 18, 124,\n\t\t92, 208, 206, 216, 11, 4, 151, 15, 218, 55, 81, 212, 3, 25,\n\t\t38, 70, 145, 10, 242, 102, 217, 223, 230, 188, 198, 118, 51,\n\t\t240, 244, 236, 103, 55, 188, 133, 221, 80, 205, 110, 92, 221,\n\t\t190, 130, 96, 37, 102, 181, 110, 1, 59, 81, 237, 194, 85,\n\t\t101, 208, 213, 77, 22, 202, 120, 205, 60, 84, 124, 118, 61,\n\t\t234, 127, 63, 19, 254, 19, 128, 217, 132, 15, 43, 57, 95,\n\t\t13, 91, 249, 202, 148, 162, 169, 159, 170, 214, 69, 41, 245,\n\t\t6, 205, 79, 109, 199, 122, 209, 88, 94, 89, 83, 165, 6, 118,\n\t\t33, 106, 18, 119, 183, 91, 186, 139, 84, 233, 245, 34, 158,\n\t\t76, 40, 187, 57, 33, 83, 211, 125, 85, 228, 150, 87, 224,\n\t\t80, 155, 36, 223, 237, 110, 61, 209, 240, 123, 49, 174, 53,\n\t\t45, 23, 62, 226, 220, 164, 167, 237, 131, 14, 26, 76, 166,\n\t\t217, 125, 16, 200, 110, 170, 150, 153, 38, 248, 171, 50, 116,\n\t\t203, 181, 192, 65, 11, 40, 100, 240, 138, 41, 223, 230, 145,\n\t\t244, 248, 125, 169, 248, 106, 68, 25, 35, 106, 190, 126, 141,\n\t\t70, 37, 222, 56, 92, 72, 166, 135, 86, 34, 104, 29, 111, 86,\n\t\t90, 40, 252, 35, 50, 211, 218, 244, 28, 255, 134, 200, 64,\n\t\t28, 155, 22, 191, 38, 72, 109, 22, 239, 85, 31, 101, 248,\n\t\t32, 158, 213, 0, 105, 158, 32, 58, 160, 171, 206, 209, 206,\n\t\t225, 178, 65, 162, 221, 0, 106, 121, 192, 188, 85, 192, 121,\n\t\t216, 137, 162, 237, 172, 5, 205, 36, 169, 37, 27, 12, 117,\n\t\t30, 103, 55, 148, 121, 70, 170, 50, 188, 3, 173, 100, 217,\n\t\t113, 86, 83, 43, 195, 220, 105, 29, 166, 54, 98, 86, 81, 177,\n\t\t13, 136, 245, 227, 252, 22, 128, 214, 138, 253, 121, 224,\n\t\t174, 217, 198, 69, 83, 156, 106, 110, 176, 77, 81, 235, 102,\n\t\t3, 212, 106, 71, 20, 179, 54, 142, 197, 164, 94, 2, 124, 136,\n\t\t137, 217, 106, 21, 4, 133, 185, 53, 183, 233, 96, 131, 96,\n\t\t219, 108, 133, 117, 248, 213, 138, 47, 104, 224, 115, 34,\n\t\t102, 221, 110, 27, 238, 137, 181, 114, 231, 86, 109, 173,\n\t\t40, 237, 224, 155, 44, 188, 15, 65, 214, 1, 238, 41, 196,\n\t\t212, 64, 212, 54, 151, 42, 81, 91, 67, 113, 125, 2, 230, 128,\n\t\t59, 50, 101, 78, 96, 141, 137, 163, 124, 81, 160, 133, 106,\n\t\t71, 50, 210, 204, 142, 97, 151, 114, 56, 230, 248, 163, 218,\n\t\t174, 22, 76, 116, 187, 64, 10, 200, 214, 61, 188, 3, 27, 93,\n\t\t192, 123, 102, 142, 240, 229, 18, 112, 98, 195, 137, 81, 2,\n\t\t213, 60, 207, 29, 60, 214, 237, 178, 61, 102, 238, 224, 149,\n\t\t142, 105, 234, 206, 39, 148, 22, 84, 219, 188, 223, 1, 237,\n\t\t223, 16, 5, 140, 218, 48, 96, 66, 97, 233, 118, 213, 41, 144,\n\t\t72, 150, 23, 238, 178, 127, 159, 107, 2, 37, 210, 217, 32,\n\t\t43, 26, 246, 103, 87, 51, 176, 1, 170, 72, 243, 229, 7, 29,\n\t\t244, 4, 232, 83, 151, 231, 6, 116, 157, 203, 16, 181, 177,\n\t\t54, 156, 29, 206, 137, 115, 37, 78, 46, 180, 147, 89, 95,\n\t\t47, 132, 6, 193, 190, 245, 244, 183, 215, 254, 130, 253, 247,\n\t\t71, 141, 100, 233, 155, 228, 187, 13, 152, 234, 238, 245,\n\t\t81, 139, 60, 248, 114, 167, 204, 91, 78, 177, 82, 83, 67,\n\t\t251, 93, 85, 245, 106, 214, 12, 209, 206, 28, 235, 12, 26,\n\t\t204, 73, 139, 171, 131, 28, 13, 168, 235, 7, 138, 251, 234,\n\t\t163, 127, 236, 169, 82, 230, 86, 124, 21, 230, 110, 198, 90,\n\t\t95, 133, 178, 117, 70, 192, 211, 65, 1, 115, 130, 224, 27,\n\t\t195, 225, 29, 193, 1, 79, 211, 132, 211, 69, 0, 71, 218, 91,\n\t\t225, 65, 121, 43, 152, 116, 4, 7, 4, 135, 11, 162, 253, 21,\n\t\t238, 200, 16, 46, 101, 137, 29, 91, 115, 68, 42, 119, 253,\n\t\t194, 255, 89, 253, 243, 159, 57, 10, 182, 47, 201, 118, 240,\n\t\t207, 127, 94, 108, 7, 16, 220, 4, 8, 246, 9, 126, 140, 25,\n\t\t157, 75, 165, 163, 191, 213, 3, 78, 230, 11, 161, 49, 244,\n\t\t159, 191, 156, 208, 187, 142, 164, 111, 229, 128, 58, 89,\n\t\t154, 56, 227, 251, 201, 45, 19, 103, 89, 122, 31, 252, 244,\n\t\t242, 197, 132, 222, 253, 228, 169, 188, 35, 37, 77, 91, 64,\n\t\t254, 125, 110, 94, 174, 212, 79, 118, 116, 148, 75, 17, 112,\n\t\t202, 19, 210, 15, 2, 152, 144, 36, 126, 232, 247, 96, 198,\n\t\t231, 73, 127, 43, 60, 38, 248, 113, 255, 195, 229, 89, 63,\n\t\t136, 151, 60, 13, 224, 242, 236, 188, 31, 200, 227, 241, 247,\n\t\t199, 63, 191, 185, 236, 155, 103, 53, 94, 157, 93, 94, 158,\n\t\t189, 235, 235, 187, 110, 1, 156, 28, 189, 190, 236, 171, 199,\n\t\t55, 228, 67, 171, 106, 107, 244, 183, 194, 139, 202, 252,\n\t\t75, 111, 12, 11, 6, 67, 164, 204, 144, 106, 55, 204, 220,\n\t\t43, 107, 118, 42, 166, 138, 26, 188, 189, 228, 166, 200, 38,\n\t\t10, 212, 100, 28, 207, 15, 51, 28, 207, 163, 34, 165, 111,\n\t\t180, 205, 116, 122, 244, 95, 163, 67, 1, 104, 127, 78, 146,\n\t\t53, 7, 92, 182, 61, 141, 5, 231, 27, 223, 158, 55, 251, 136,\n\t\t101, 52, 156, 181, 215, 238, 10, 228, 14, 78, 174, 129, 189,\n\t\t40, 88, 118, 191, 181, 235, 235, 102, 154, 72, 20, 245, 95,\n\t\t35, 44, 224, 158, 224, 32, 93, 242, 0, 78, 107, 62, 48, 71,\n\t\t77, 31, 152, 35, 237, 3, 19, 30, 26, 223, 13, 100, 210, 74,\n\t\t71, 152, 35, 2, 199, 167, 23, 71, 239, 47, 143, 14, 251, 1,\n\t\t101, 57, 201, 56, 153, 200, 228, 234, 149, 213, 35, 159, 195,\n\t\t140, 73, 60, 251, 112, 169, 83, 197, 216, 68, 114, 219, 59,\n\t\t44, 38, 203, 243, 16, 203, 17, 41, 224, 204, 250, 155, 220,\n\t\t90, 127, 147, 115, 177, 209, 171, 27, 5, 62, 139, 52, 181,\n\t\t171, 224, 13, 193, 230, 81, 155, 19, 98, 30, 39, 131, 247,\n\t\t4, 235, 161, 195, 87, 130, 131, 121, 204, 150, 113, 18, 192,\n\t\t39, 191, 171, 8, 181, 129, 7, 254, 212, 197, 55, 61, 186,\n\t\t252, 187, 46, 190, 25, 205, 239, 72, 249, 196, 151, 78, 8,\n\t\t92, 71, 56, 55, 223, 114, 114, 242, 193, 133, 82, 97, 86,\n\t\t81, 242, 47, 213, 182, 194, 230, 106, 76, 243, 50, 166, 198,\n\t\t73, 92, 94, 119, 89, 231, 5, 195, 105, 229, 60, 48, 39, 158,\n\t\t219, 149, 222, 135, 61, 149, 95, 127, 83, 245, 119, 103, 167,\n\t\t143, 71, 159, 44, 184, 91, 128, 113, 106, 49, 105, 235, 138,\n\t\t215, 18, 202, 202, 117, 23, 223, 90, 65, 84, 70, 153, 208,\n\t\t143, 141, 86, 238, 2, 9, 233, 227, 237, 209, 239, 192, 240,\n\t\t130, 132, 53, 171, 162, 230, 253, 4, 13, 212, 107, 156, 2,\n\t\t47, 234, 45, 212, 235, 128, 133, 249, 161, 126, 85, 214, 94,\n\t\t225, 131, 246, 30, 128, 33, 25, 101, 170, 178, 220, 202, 91,\n\t\t30, 111, 249, 211, 69, 113, 154, 127, 162, 124, 182, 239,\n\t\t102, 134, 104, 143, 69, 215, 114, 23, 202, 16, 66, 192, 80,\n\t\t159, 69, 215, 114, 239, 153, 4, 235, 244, 186, 80, 143, 58,\n\t\t74, 251, 27, 93, 216, 219, 185, 174, 43, 49, 65, 85, 123,\n\t\t166, 156, 157, 211, 154, 146, 190, 84, 178, 211, 43, 215,\n\t\t111, 69, 122, 79, 202, 43, 225, 255, 43, 123, 65, 192, 168,\n\t\t113, 138, 174, 113, 27, 90, 23, 79, 65, 214, 41, 170, 78,\n\t\t74, 26, 229, 143, 62, 30, 157, 94, 182, 84, 40, 175, 26, 105,\n\t\t127, 72, 229, 109, 47, 136, 110, 228, 56, 73, 154, 237, 211,\n\t\t237, 154, 22, 56, 109, 30, 22, 148, 104, 235, 6, 232, 105,\n\t\t62, 52, 228, 236, 120, 247, 138, 97, 117, 211, 251, 239, 26,\n\t\t186, 95, 235, 174, 26, 86, 201, 67, 153, 210, 112, 39, 48,\n\t\t52, 161, 233, 38, 86, 119, 182, 81, 199, 70, 24, 227, 38,\n\t\t16, 115, 245, 214, 224, 34, 137, 31, 130, 230, 171, 208, 193,\n\t\t121, 66, 226, 156, 116, 150, 57, 233, 136, 46, 58, 41, 235,\n\t\t104, 169, 181, 163, 219, 200, 245, 77, 97, 142, 23, 68, 31,\n\t\t23, 55, 151, 81, 36, 151, 1, 253, 100, 190, 218, 9, 7, 41,\n\t\t227, 18, 131, 75, 31, 31, 67, 5, 30, 27, 131, 53, 231, 70,\n\t\t220, 40, 227, 11, 82, 94, 2, 113, 139, 70, 233, 61, 35, 217,\n\t\t97, 139, 113, 183, 2, 96, 53, 160, 22, 49, 222, 30, 13, 184,\n\t\t81, 197, 106, 91, 15, 140, 59, 204, 135, 227, 195, 230, 204,\n\t\t79, 247, 223, 29, 161, 1, 173, 157, 209, 209, 73, 0, 25, 170,\n\t\t140, 195, 119, 138, 55, 33, 249, 56, 163, 35, 50, 25, 61,\n\t\t148, 229, 115, 201, 27, 184, 227, 58, 164, 79, 78, 172, 68,\n\t\t40, 49, 221, 141, 83, 126, 70, 108, 128, 63, 131, 34, 181,\n\t\t91, 117, 38, 56, 145, 145, 118, 246, 188, 169, 101, 184, 73,\n\t\t160, 85, 32, 246, 189, 229, 109, 112, 126, 21, 98, 50, 30,\n\t\t207, 36, 200, 82, 77, 125, 226, 201, 164, 76, 85, 35, 205,\n\t\t145, 14, 79, 182, 181, 107, 174, 176, 233, 70, 173, 116, 182,\n\t\t87, 49, 44, 244, 23, 196, 209, 82, 167, 230, 85, 163, 70,\n\t\t45, 52, 80, 48, 153, 88, 26, 229, 229, 41, 92, 250, 145, 255,\n\t\t21, 180, 18, 196, 101, 181, 210, 11, 96, 14, 222, 98, 15,\n\t\t249, 178, 200, 236, 223, 44, 70, 244, 243, 222, 63, 119, 91,\n\t\t2, 10, 206, 101, 196, 220, 115, 243, 208, 222, 64, 116, 0,\n\t\t163, 146, 10, 125, 39, 113, 68, 102, 241, 29, 77, 179, 74,\n\t\t145, 134, 8, 92, 128, 148, 235, 250, 143, 186, 231, 254, 103,\n\t\t178, 249, 157, 197, 198, 149, 69, 72, 217, 129, 52, 79, 245,\n\t\t171, 10, 117, 154, 209, 27, 202, 226, 196, 118, 43, 253, 30,\n\t\t236, 12, 165, 71, 131, 58, 114, 87, 162, 156, 45, 119, 32,\n\t\t159, 56, 149, 110, 179, 41, 83, 199, 241, 253, 218, 225, 229,\n\t\t19, 245, 10, 185, 76, 238, 206, 185, 37, 223, 245, 210, 142,\n\t\t131, 140, 155, 93, 212, 95, 16, 117, 21, 76, 98, 125, 82,\n\t\t61, 168, 107, 110, 107, 18, 93, 79, 233, 215, 242, 88, 44,\n\t\t52, 148, 151, 184, 140, 105, 64, 154, 108, 106, 65, 66, 210,\n\t\t68, 61, 210, 66, 164, 79, 17, 112, 140, 241, 61, 145, 93,\n\t\t58, 162, 3, 81, 167, 132, 21, 70, 106, 5, 143, 51, 115, 64,\n\t\t56, 222, 252, 128, 80, 180, 48, 168, 52, 231, 63, 20, 76,\n\t\t90, 14, 5, 199, 218, 82, 150, 132, 79, 58, 157, 106, 195,\n\t\t84, 131, 124, 211, 39, 249, 150, 244, 45, 109, 248, 57, 149,\n\t\t32, 222, 194, 248, 80, 134, 240, 114, 29, 206, 220, 175, 138,\n\t\t245, 147, 73, 15, 40, 33, 80, 177, 75, 186, 80, 160, 19, 73,\n\t\t134, 198, 248, 253, 194, 92, 86, 128, 190, 99, 57, 181, 127,\n\t\t133, 9, 66, 64, 74, 113, 132, 248, 100, 145, 242, 36, 184,\n\t\t149, 94, 61, 17, 178, 100, 65, 66, 86, 61, 135, 254, 151,\n\t\t238, 33, 223, 125, 74, 179, 137, 124, 10, 216, 213, 123, 50,\n\t\t44, 125, 93, 170, 89, 39, 237, 89, 111, 84, 214, 19, 136,\n\t\t190, 217, 73, 56, 147, 24, 206, 254, 194, 121, 183, 22, 214,\n\t\t43, 218, 102, 225, 15, 72, 193, 254, 84, 176, 137, 138, 44,\n\t\t230, 49, 4, 86, 222, 186, 145, 27, 136, 171, 103, 40, 128,\n\t\t123, 184, 120, 101, 3, 182, 42, 44, 150, 198, 94, 146, 237,\n\t\t96, 39, 216, 86, 215, 29, 42, 197, 60, 35, 49, 203, 129, 205,\n\t\t15, 201, 107, 93, 14, 99, 140, 96, 229, 59, 159, 156, 46,\n\t\t10, 21, 22, 212, 51, 67, 199, 69, 160, 54, 68, 5, 245, 156,\n\t\t24, 212, 52, 82, 151, 212, 9, 27, 231, 85, 231, 4, 105, 4,\n\t\t116, 224, 35, 17, 168, 186, 27, 206, 136, 188, 57, 119, 75,\n\t\t144, 30, 83, 181, 117, 236, 59, 228, 114, 167, 55, 227, 243,\n\t\t164, 249, 56, 10, 145, 222, 252, 198, 151, 117, 181, 50, 113,\n\t\t113, 208, 30, 219, 19, 196, 2, 105, 106, 20, 74, 203, 51,\n\t\t71, 171, 21, 143, 200, 124, 193, 31, 66, 35, 165, 132, 4,\n\t\t245, 121, 196, 201, 87, 57, 65, 130, 212, 79, 132, 250, 252,\n\t\t138, 237, 5, 162, 215, 160, 31, 136, 180, 96, 24, 146, 114,\n\t\t169, 184, 239, 57, 120, 151, 112, 248, 194, 139, 27, 22, 191,\n\t\t35, 205, 147, 129, 189, 68, 172, 14, 97, 158, 144, 81, 101,\n\t\t157, 189, 70, 138, 19, 10, 221, 43, 148, 202, 66, 78, 240,\n\t\t144, 18, 103, 43, 232, 170, 71, 114, 76, 174, 120, 53, 252,\n\t\t245, 208, 120, 14, 180, 198, 99, 161, 142, 251, 158, 233,\n\t\t84, 171, 255, 249, 34, 161, 60, 12, 58, 1, 138, 166, 105,\n\t\t118, 84, 61, 204, 84, 198, 173, 242, 170, 60, 18, 50, 136,\n\t\t163, 23, 179, 144, 122, 8, 187, 10, 239, 66, 77, 79, 198,\n\t\t28, 235, 115, 81, 164, 38, 160, 139, 125, 235, 178, 35, 116,\n\t\t158, 45, 140, 191, 18, 203, 33, 49, 198, 111, 200, 158, 175,\n\t\t39, 199, 96, 232, 203, 54, 158, 172, 236, 201, 54, 148, 101,\n\t\t177, 181, 141, 179, 15, 151, 131, 198, 212, 201, 166, 83,\n\t\t212, 166, 12, 243, 150, 34, 219, 184, 158, 18, 111, 68, 189,\n\t\t162, 218, 187, 199, 190, 192, 234, 230, 5, 207, 171, 162,\n\t\t84, 59, 169, 149, 87, 104, 106, 227, 112, 113, 183, 26, 60,\n\t\t103, 74, 111, 224, 209, 26, 228, 141, 97, 180, 180, 180, 7,\n\t\t214, 21, 86, 136, 129, 138, 198, 72, 180, 52, 159, 158, 173,\n\t\t232, 108, 160, 239, 217, 145, 225, 154, 26, 186, 204, 106,\n\t\t101, 206, 12, 4, 195, 177, 119, 200, 252, 250, 172, 175, 23,\n\t\t216, 168, 143, 96, 173, 158, 172, 91, 10, 2, 100, 188, 179,\n\t\t121, 37, 132, 64, 147, 136, 54, 148, 190, 65, 72, 48, 81,\n\t\t108, 196, 107, 234, 99, 8, 217, 120, 171, 245, 70, 254, 37,\n\t\t182, 68, 38, 67, 182, 114, 117, 33, 171, 42, 135, 88, 131,\n\t\t190, 141, 131, 177, 119, 66, 250, 82, 58, 233, 105, 49, 112,\n\t\t173, 37, 80, 112, 2, 87, 110, 16, 146, 234, 94, 53, 233, 144,\n\t\t244, 195, 218, 235, 158, 165, 109, 175, 94, 20, 172, 90, 34,\n\t\t143, 137, 132, 20, 233, 126, 75, 51, 212, 94, 217, 128, 247,\n\t\t41, 208, 154, 244, 140, 149, 244, 76, 236, 123, 26, 158, 38,\n\t\t81, 223, 100, 171, 85, 150, 123, 246, 255, 181, 85, 78, 151,\n\t\t220, 179, 204, 187, 250, 194, 132, 199, 108, 188, 90, 109,\n\t\t186, 112, 247, 79, 46, 156, 160, 89, 223, 191, 112, 74, 67,\n\t\t212, 244, 174, 190, 112, 34, 217, 245, 217, 21, 11, 231, 153,\n\t\t71, 229, 212, 199, 60, 115, 213, 161, 230, 142, 108, 5, 82,\n\t\t229, 155, 207, 85, 0, 242, 161, 182, 211, 109, 245, 180, 44,\n\t\t161, 206, 42, 214, 94, 80, 170, 63, 249, 22, 62, 21, 202,\n\t\t172, 161, 18, 181, 185, 150, 8, 53, 106, 143, 247, 31, 11,\n\t\t132, 12, 184, 67, 174, 126, 225, 71, 121, 101, 94, 127, 129,\n\t\t128, 141, 249, 40, 60, 175, 208, 113, 37, 183, 200, 250, 242,\n\t\t23, 214, 255, 35, 158, 94, 72, 226, 27, 250, 30, 175, 83,\n\t\t177, 113, 164, 58, 21, 218, 223, 216, 254, 170, 84, 246, 220,\n\t\t204, 186, 35, 155, 7, 97, 171, 238, 128, 38, 3, 122, 44, 172,\n\t\t197, 87, 97, 71, 25, 10, 201, 46, 178, 206, 104, 235, 241,\n\t\t138, 12, 183, 42, 198, 192, 43, 50, 20, 19, 187, 34, 195,\n\t\t90, 106, 41, 73, 42, 207, 84, 87, 201, 110, 14, 173, 77, 53,\n\t\t145, 49, 152, 85, 156, 114, 233, 12, 16, 160, 104, 30, 243,\n\t\t241, 44, 28, 17, 251, 142, 146, 68, 124, 115, 199, 134, 87,\n\t\t36, 124, 18, 125, 78, 41, 11, 45, 75, 90, 99, 116, 242, 153,\n\t\t42, 34, 202, 114, 30, 179, 49, 81, 146, 164, 208, 117, 72,\n\t\t164, 116, 55, 77, 119, 234, 182, 3, 153, 234, 49, 166, 90,\n\t\t42, 229, 216, 94, 29, 75, 26, 42, 101, 7, 171, 120, 110, 166,\n\t\t25, 1, 169, 168, 36, 214, 66, 37, 129, 35, 73, 88, 149, 153,\n\t\t127, 221, 177, 157, 6, 66, 78, 240, 105, 69, 45, 182, 108,\n\t\t171, 160, 43, 42, 162, 77, 224, 146, 21, 180, 84, 16, 202,\n\t\t9, 93, 231, 91, 182, 137, 103, 153, 70, 13, 189, 197, 31,\n\t\t164, 103, 153, 215, 131, 76, 134, 222, 225, 171, 213, 214,\n\t\t11, 125, 106, 230, 70, 110, 103, 42, 74, 144, 117, 45, 163,\n\t\t202, 118, 78, 172, 53, 216, 182, 223, 230, 90, 246, 175, 247,\n\t\t45, 51, 81, 219, 233, 191, 207, 137, 108, 159, 216, 146, 167,\n\t\t251, 239, 142, 218, 138, 221, 149, 197, 12, 147, 110, 43,\n\t\t250, 80, 22, 149, 10, 67, 91, 185, 83, 167, 156, 57, 57, 108,\n\t\t43, 123, 68, 190, 39, 10, 207, 133, 114, 140, 163, 69, 40,\n\t\t143, 7, 148, 255, 18, 254, 228, 113, 186, 178, 185, 21, 167,\n\t\t171, 79, 110, 198, 90, 167, 171, 178, 245, 3, 2, 158, 14,\n\t\t10, 248, 68, 16, 252, 194, 112, 248, 133, 224, 96, 145, 46,\n\t\t148, 37, 236, 173, 118, 186, 122, 173, 156, 174, 76, 58, 130,\n\t\t119, 4, 135, 31, 140, 211, 213, 23, 50, 132, 95, 149, 211,\n\t\t149, 173, 249, 170, 197, 233, 234, 215, 170, 211, 213, 71,\n\t\t237, 91, 249, 141, 89, 134, 232, 156, 59, 24, 31, 38, 171,\n\t\t189, 104, 15, 15, 205, 113, 250, 65, 208, 226, 164, 101, 134,\n\t\t177, 185, 147, 214, 236, 199, 90, 221, 157, 25, 137, 39, 202,\n\t\t73, 107, 246, 227, 79, 158, 198, 119, 70, 233, 228, 161, 230,\n\t\t195, 85, 32, 248, 189, 49, 35, 129, 1, 240, 104, 199, 220,\n\t\t238, 54, 85, 32, 248, 102, 29, 98, 254, 16, 160, 175, 141,\n\t\t5, 126, 118, 19, 101, 255, 240, 172, 230, 24, 244, 182, 233,\n\t\t24, 244, 214, 56, 6, 253, 82, 58, 6, 189, 173, 59, 6, 189,\n\t\t245, 59, 6, 189, 173, 59, 6, 189, 245, 57, 6, 189, 245, 59,\n\t\t6, 189, 109, 119, 12, 122, 219, 238, 24, 244, 150, 20, 240,\n\t\t155, 135, 139, 1, 27, 152, 180, 14, 117, 140, 119, 42, 226,\n\t\t164, 162, 130, 113, 118, 35, 141, 188, 57, 82, 111, 1, 22,\n\t\t12, 115, 8, 9, 166, 168, 116, 99, 193, 103, 146, 228, 106,\n\t\t63, 230, 144, 149, 57, 8, 66, 82, 126, 185, 82, 131, 192,\n\t\t244, 235, 107, 153, 117, 125, 141, 153, 246, 34, 245, 248,\n\t\t198, 100, 79, 154, 61, 75, 222, 39, 85, 109, 243, 102, 225,\n\t\t141, 115, 2, 91, 64, 246, 148, 5, 244, 195, 147, 22, 208,\n\t\t95, 75, 11, 104, 246, 103, 44, 160, 31, 54, 178, 128, 102,\n\t\t107, 45, 160, 109, 163, 108, 179, 130, 114, 117, 216, 250,\n\t\t7, 105, 90, 61, 7, 142, 231, 78, 5, 88, 190, 160, 174, 210,\n\t\t114, 137, 125, 230, 187, 242, 188, 219, 223, 245, 207, 130,\n\t\t43, 35, 168, 10, 95, 223, 148, 121, 245, 23, 34, 97, 233,\n\t\t244, 222, 6, 201, 53, 70, 17, 77, 7, 2, 179, 240, 206, 153,\n\t\t178, 60, 13, 205, 158, 148, 48, 219, 128, 218, 42, 97, 190,\n\t\t170, 72, 152, 189, 151, 27, 201, 152, 127, 89, 218, 249, 80,\n\t\t145, 70, 94, 183, 72, 59, 123, 76, 6, 102, 117, 36, 30, 117,\n\t\t110, 180, 153, 196, 83, 239, 227, 255, 41, 137, 231, 227,\n\t\t102, 18, 207, 151, 205, 37, 158, 215, 27, 74, 60, 207, 190,\n\t\t67, 226, 121, 251, 93, 18, 207, 239, 86, 226, 249, 198, 196,\n\t\t242, 105, 241, 1, 255, 230, 145, 121, 108, 110, 69, 230, 249,\n\t\t205, 205, 88, 43, 243, 148, 173, 191, 35, 224, 233, 64, 112,\n\t\t25, 4, 127, 48, 28, 18, 102, 30, 169, 204, 23, 15, 1, 100,\n\t\t76, 73, 61, 140, 73, 169, 167, 204, 65, 144, 50, 28, 114,\n\t\t166, 229, 30, 194, 134, 144, 51, 251, 132, 199, 110, 15, 20,\n\t\t198, 24, 151, 108, 117, 75, 89, 62, 10, 29, 151, 197, 140,\n\t\t94, 109, 11, 91, 183, 106, 93, 220, 243, 70, 116, 194, 240,\n\t\t227, 254, 193, 229, 241, 199, 253, 203, 163, 126, 32, 205,\n\t\t20, 49, 39, 193, 118, 198, 224, 226, 224, 253, 217, 201, 73,\n\t\t223, 62, 178, 153, 49, 168, 60, 248, 221, 15, 146, 52, 158,\n\t\t136, 244, 106, 172, 184, 49, 115, 222, 124, 161, 156, 204,\n\t\t3, 152, 49, 172, 218, 38, 1, 44, 153, 137, 227, 150, 47, 30,\n\t\t236, 19, 158, 195, 231, 48, 21, 192, 49, 165, 38, 76, 61,\n\t\t226, 2, 157, 40, 161, 57, 223, 185, 201, 210, 229, 34, 128,\n\t\t27, 157, 188, 147, 80, 118, 27, 192, 181, 249, 84, 221, 204,\n\t\t197, 103, 89, 92, 167, 46, 152, 243, 252, 75, 0, 119, 238,\n\t\t167, 46, 242, 80, 73, 51, 239, 170, 28, 49, 28, 40, 208, 6,\n\t\t112, 192, 202, 247, 106, 2, 184, 172, 104, 158, 86, 118, 104,\n\t\t152, 246, 170, 193, 17, 108, 72, 56, 53, 103, 195, 51, 131,\n\t\t87, 103, 135, 191, 107, 83, 154, 186, 223, 177, 167, 174,\n\t\t141, 246, 77, 121, 109, 124, 119, 57, 84, 37, 228, 156, 125,\n\t\t15, 217, 45, 174, 175, 178, 75, 254, 114, 195, 132, 88, 188,\n\t\t221, 150, 61, 95, 159, 125, 199, 116, 63, 38, 70, 249, 149,\n\t\t230, 211, 215, 170, 144, 147, 160, 237, 92, 234, 18, 125,\n\t\t35, 130, 143, 186, 159, 140, 123, 192, 245, 217, 108, 21,\n\t\t18, 242, 196, 34, 97, 145, 66, 60, 223, 249, 7, 139, 132,\n\t\t164, 52, 38, 121, 174, 162, 146, 201, 70, 50, 50, 205, 72,\n\t\t62, 43, 125, 19, 117, 9, 227, 103, 204, 124, 126, 198, 186,\n\t\t82, 157, 7, 218, 144, 238, 190, 133, 194, 190, 212, 72, 173,\n\t\t213, 222, 17, 235, 31, 48, 200, 176, 218, 161, 245, 128, 230,\n\t\t106, 71, 238, 213, 2, 162, 171, 84, 72, 113, 134, 49, 62,\n\t\t96, 229, 123, 212, 23, 38, 126, 78, 136, 250, 189, 193, 166,\n\t\t192, 175, 0, 185, 214, 150, 74, 13, 17, 108, 122, 161, 177,\n\t\t138, 89, 72, 112, 252, 69, 232, 145, 156, 215, 135, 91, 166,\n\t\t211, 240, 233, 80, 203, 230, 60, 146, 180, 222, 182, 166,\n\t\t211, 144, 170, 203, 123, 171, 21, 141, 212, 35, 241, 218,\n\t\t132, 122, 197, 89, 72, 208, 85, 54, 12, 81, 196, 211, 197,\n\t\t118, 10, 108, 104, 158, 60, 144, 222, 166, 107, 95, 147, 46,\n\t\t80, 148, 167, 25, 175, 221, 213, 52, 185, 87, 189, 225, 14,\n\t\t185, 234, 13, 11, 255, 57, 40, 177, 139, 162, 222, 28, 151,\n\t\t143, 51, 2, 177, 43, 99, 82, 119, 135, 58, 96, 136, 199, 83,\n\t\t153, 179, 246, 152, 94, 140, 161, 246, 157, 50, 157, 134,\n\t\t25, 171, 197, 93, 106, 238, 184, 163, 102, 134, 38, 38, 21,\n\t\t239, 124, 77, 62, 156, 52, 131, 109, 174, 123, 177, 198, 55,\n\t\t39, 105, 163, 237, 206, 214, 191, 7, 42, 228, 39, 123, 48,\n\t\t87, 53, 109, 231, 108, 189, 177, 90, 7, 15, 50, 59, 151, 57,\n\t\t241, 132, 148, 180, 74, 39, 1, 26, 168, 231, 7, 75, 167, 87,\n\t\t162, 193, 218, 44, 171, 142, 60, 34, 251, 182, 126, 176, 77,\n\t\t12, 42, 121, 204, 206, 132, 1, 135, 152, 57, 198, 101, 187,\n\t\t109, 219, 164, 247, 6, 65, 209, 196, 195, 71, 87, 22, 241,\n\t\t13, 249, 253, 204, 113, 133, 172, 229, 219, 24, 91, 213, 222,\n\t\t53, 208, 55, 26, 64, 37, 184, 196, 106, 245, 46, 230, 179,\n\t\t104, 30, 127, 13, 107, 215, 123, 157, 66, 208, 26, 129, 194,\n\t\t45, 101, 163, 173, 169, 225, 127, 207, 144, 74, 152, 184,\n\t\t161, 19, 84, 11, 94, 48, 180, 93, 245, 85, 68, 66, 14, 68,\n\t\t51, 132, 22, 99, 113, 141, 222, 86, 185, 160, 218, 6, 64,\n\t\t90, 201, 41, 195, 158, 242, 219, 100, 199, 150, 119, 65, 16,\n\t\t150, 238, 228, 149, 45, 162, 212, 39, 153, 94, 50, 51, 246,\n\t\t18, 115, 215, 83, 195, 110, 192, 171, 202, 151, 13, 67, 62,\n\t\t28, 52, 247, 228, 22, 198, 212, 248, 83, 25, 217, 206, 92,\n\t\t215, 125, 172, 31, 78, 233, 56, 55, 252, 101, 133, 2, 92,\n\t\t245, 134, 66, 179, 171, 167, 161, 202, 18, 54, 233, 128, 115,\n\t\t151, 67, 30, 250, 133, 104, 80, 62, 97, 93, 105, 204, 60,\n\t\t22, 145, 237, 236, 12, 108, 236, 190, 234, 28, 170, 211, 207,\n\t\t134, 221, 46, 255, 169, 218, 136, 76, 244, 235, 97, 213, 98,\n\t\t219, 187, 195, 213, 170, 62, 69, 145, 138, 26, 112, 170, 247,\n\t\t170, 3, 51, 218, 2, 37, 62, 17, 223, 184, 49, 129, 234, 252,\n\t\t93, 156, 51, 36, 215, 184, 218, 64, 128, 6, 28, 243, 6, 147,\n\t\t53, 80, 222, 54, 81, 145, 53, 105, 82, 47, 128, 12, 225, 249,\n\t\t182, 200, 154, 101, 100, 106, 211, 158, 219, 187, 255, 156,\n\t\t109, 252, 174, 55, 215, 10, 58, 4, 8, 33, 52, 96, 78, 28,\n\t\t29, 134, 246, 66, 102, 189, 75, 22, 76, 187, 173, 63, 48,\n\t\t55, 72, 17, 67, 192, 42, 159, 168, 31, 178, 122, 190, 242,\n\t\t233, 202, 195, 9, 67, 242, 250, 114, 40, 197, 82, 41, 127,\n\t\t54, 218, 106, 148, 189, 102, 142, 103, 229, 77, 173, 66, 59,\n\t\t159, 180, 175, 103, 176, 200, 168, 57, 245, 168, 128, 68,\n\t\t71, 243, 146, 235, 212, 36, 18, 27, 131, 176, 178, 176, 8,\n\t\t13, 196, 144, 74, 225, 163, 230, 101, 58, 99, 168, 0, 246,\n\t\t87, 31, 173, 209, 179, 54, 71, 246, 172, 22, 27, 64, 229,\n\t\t122, 30, 173, 233, 118, 137, 5, 153, 173, 252, 127, 249, 193,\n\t\t154, 60, 100, 255, 62, 11, 71, 206, 164, 53, 128, 21, 161,\n\t\t156, 167, 19, 29, 47, 97, 81, 69, 139, 117, 93, 162, 236,\n\t\t121, 254, 198, 139, 190, 100, 218, 58, 166, 137, 24, 145,\n\t\t68, 204, 110, 63, 9, 162, 193, 101, 115, 157, 85, 187, 12,\n\t\t204, 67, 185, 210, 153, 159, 51, 173, 251, 99, 79, 141, 50,\n\t\t183, 250, 20, 46, 115, 50, 214, 26, 45, 202, 214, 83, 6, 158,\n\t\t14, 10, 184, 100, 8, 126, 102, 56, 60, 214, 86, 138, 11, 101,\n\t\t165, 224, 241, 40, 64, 176, 207, 112, 56, 210, 246, 9, 145,\n\t\t4, 135, 172, 122, 60, 112, 204, 26, 199, 3, 199, 172, 18,\n\t\t59, 95, 127, 150, 39, 3, 199, 172, 45, 254, 252, 113, 205,\n\t\t166, 112, 207, 106, 239, 200, 6, 112, 234, 216, 20, 206, 152,\n\t\t251, 78, 237, 45, 51, 71, 29, 231, 204, 190, 88, 91, 53, 2,\n\t\t188, 241, 155, 23, 78, 92, 19, 196, 123, 134, 131, 159, 58,\n\t\t9, 237, 252, 212, 177, 105, 95, 89, 61, 62, 189, 128, 206,\n\t\t16, 58, 213, 196, 5, 77, 146, 102, 170, 232, 41, 24, 62, 135,\n\t\t79, 94, 107, 195, 7, 217, 93, 253, 157, 90, 211, 241, 23,\n\t\t191, 197, 129, 202, 75, 40, 146, 242, 88, 35, 195, 186, 235,\n\t\t181, 190, 123, 119, 218, 84, 65, 167, 225, 86, 85, 1, 249,\n\t\t235, 17, 105, 187, 221, 17, 171, 182, 233, 248, 123, 157,\n\t\t50, 180, 90, 173, 201, 63, 99, 230, 145, 25, 14, 20, 8, 110,\n\t\t22, 53, 76, 233, 13, 147, 103, 7, 217, 19, 49, 60, 156, 32,\n\t\t171, 116, 26, 18, 227, 20, 31, 124, 56, 81, 49, 253, 196,\n\t\t76, 164, 249, 229, 61, 235, 159, 176, 1, 197, 33, 197, 35,\n\t\t22, 205, 227, 91, 178, 159, 101, 241, 67, 56, 18, 100, 89,\n\t\t177, 191, 20, 33, 116, 85, 190, 1, 51, 148, 64, 207, 69, 113,\n\t\t117, 55, 227, 144, 169, 103, 156, 214, 62, 187, 138, 32, 174,\n\t\t212, 240, 5, 170, 167, 133, 137, 212, 61, 98, 33, 45, 25,\n\t\t90, 142, 160, 9, 16, 147, 25, 35, 216, 138, 189, 151, 30,\n\t\t186, 221, 173, 188, 229, 54, 132, 124, 95, 178, 77, 81, 207,\n\t\t80, 229, 190, 66, 41, 31, 25, 101, 149, 120, 46, 5, 41, 68,\n\t\t172, 193, 228, 240, 168, 17, 151, 151, 185, 32, 33, 13, 144,\n\t\t52, 202, 11, 152, 84, 161, 193, 37, 52, 152, 7, 20, 4, 21,\n\t\t3, 125, 63, 208, 25, 58, 184, 40, 12, 9, 234, 175, 139, 187,\n\t\t61, 90, 163, 163, 95, 120, 117, 240, 22, 57, 145, 3, 1, 230,\n\t\t202, 244, 144, 225, 176, 137, 126, 14, 154, 189, 103, 168,\n\t\t175, 62, 173, 236, 115, 194, 144, 196, 246, 20, 179, 110,\n\t\t55, 147, 104, 225, 190, 103, 118, 203, 16, 228, 30, 242, 79,\n\t\t163, 107, 110, 253, 102, 14, 210, 249, 34, 33, 18, 16, 25,\n\t\t48, 117, 131, 38, 235, 118, 237, 115, 105, 155, 220, 19, 201,\n\t\t228, 26, 100, 109, 247, 68, 242, 150, 123, 34, 177, 190, 39,\n\t\t146, 107, 95, 224, 230, 160, 26, 240, 82, 155, 85, 129, 161,\n\t\t242, 120, 24, 147, 230, 201, 83, 102, 34, 96, 138, 34, 238,\n\t\t75, 149, 10, 134, 31, 36, 117, 24, 216, 29, 228, 54, 113,\n\t\t202, 16, 72, 18, 46, 87, 160, 122, 168, 150, 165, 42, 214,\n\t\t13, 241, 221, 117, 85, 114, 158, 124, 114, 118, 23, 21, 116,\n\t\t42, 104, 131, 27, 190, 218, 109, 184, 126, 90, 103, 26, 246,\n\t\t94, 162, 117, 26, 238, 73, 111, 55, 19, 51, 84, 237, 119,\n\t\t167, 139, 115, 129, 122, 21, 26, 45, 10, 84, 230, 111, 177,\n\t\t226, 158, 105, 82, 154, 97, 213, 138, 33, 157, 159, 53, 112,\n\t\t166, 97, 102, 232, 97, 85, 246, 201, 60, 79, 253, 49, 36,\n\t\t215, 62, 173, 206, 183, 120, 250, 109, 222, 130, 117, 187,\n\t\t44, 252, 87, 156, 1, 106, 218, 167, 132, 47, 41, 67, 93, 40,\n\t\t233, 151, 88, 183, 88, 170, 75, 216, 124, 105, 222, 249, 142,\n\t\t128, 88, 228, 79, 28, 225, 145, 191, 124, 132, 103, 220, 118,\n\t\t70, 172, 26, 207, 234, 144, 213, 227, 89, 125, 101, 79, 189,\n\t\t75, 245, 165, 77, 242, 180, 224, 211, 94, 27, 133, 232, 79,\n\t\t75, 118, 216, 83, 171, 204, 173, 72, 159, 95, 152, 147, 177,\n\t\t254, 29, 41, 219, 250, 62, 243, 13, 171, 128, 47, 12, 13,\n\t\t182, 234, 134, 65, 159, 218, 241, 68, 12, 149, 231, 121, 231,\n\t\t151, 248, 46, 190, 24, 103, 116, 193, 77, 28, 149, 188, 163,\n\t\t250, 139, 244, 255, 206, 124, 153, 243, 206, 136, 116, 40,\n\t\t27, 39, 203, 9, 153, 116, 70, 100, 154, 102, 164, 227, 111,\n\t\t38, 10, 202, 216, 114, 83, 166, 47, 43, 57, 215, 100, 174,\n\t\t122, 67, 243, 37, 138, 10, 52, 188, 234, 13, 95, 254, 208,\n\t\t237, 146, 171, 221, 225, 203, 127, 172, 86, 187, 130, 192,\n\t\t72, 91, 202, 63, 228, 175, 221, 161, 200, 251, 97, 248, 114,\n\t\t119, 181, 250, 219, 75, 153, 213, 140, 102, 240, 212, 156,\n\t\t98, 222, 73, 72, 156, 115, 51, 169, 187, 221, 232, 31, 209,\n\t\t110, 103, 180, 20, 233, 121, 222, 225, 179, 152, 117, 238,\n\t\t254, 22, 245, 162, 94, 128, 10, 121, 94, 20, 125, 224, 52,\n\t\t193, 175, 25, 240, 104, 63, 33, 25, 199, 111, 197, 207, 87,\n\t\t75, 206, 83, 134, 223, 137, 223, 7, 113, 38, 93, 102, 240,\n\t\t175, 242, 43, 77, 146, 120, 145, 19, 252, 74, 124, 29, 106,\n\t\t225, 20, 127, 20, 95, 42, 42, 248, 239, 226, 231, 185, 242,\n\t\t28, 194, 191, 136, 143, 11, 115, 172, 137, 255, 16, 159, 151,\n\t\t241, 8, 255, 44, 127, 40, 103, 41, 252, 141, 129, 118, 148,\n\t\t81, 139, 123, 158, 165, 11, 146, 241, 135, 144, 67, 112, 125,\n\t\t77, 242, 119, 233, 100, 41, 36, 226, 199, 187, 56, 89, 146,\n\t\t254, 86, 79, 6, 25, 251, 143, 23, 47, 254, 179, 147, 167,\n\t\t203, 108, 76, 222, 197, 139, 5, 101, 55, 31, 222, 159, 224,\n\t\t145, 1, 81, 52, 167, 44, 250, 156, 71, 243, 120, 241, 127,\n\t\t2, 0, 0, 255, 255, 80, 75, 7, 8, 207, 6, 66, 46, 55, 55, 0,\n\t\t0, 95, 199, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146,\n\t\t78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 9, 0, 106,\n\t\t115, 47, 105, 110, 105, 116, 46, 106, 115, 85, 84, 5, 0, 1,\n\t\t127, 106, 41, 96, 204, 88, 95, 143, 219, 184, 17, 127, 247,\n\t\t167, 152, 243, 139, 229, 187, 13, 237, 11, 154, 135, 174,\n\t\t235, 3, 114, 123, 9, 146, 34, 201, 22, 241, 22, 185, 162,\n\t\t40, 2, 90, 28, 217, 196, 82, 164, 74, 142, 236, 85, 115, 254,\n\t\t238, 197, 80, 146, 45, 217, 218, 203, 34, 64, 139, 227, 147,\n\t\t76, 254, 230, 15, 231, 207, 143, 164, 103, 51, 184, 219, 234,\n\t\t0, 58, 128, 69, 84, 168, 32, 115, 30, 110, 86, 31, 95, 67,\n\t\t225, 29, 97, 74, 218, 89, 40, 3, 42, 88, 87, 64, 91, 132,\n\t\t181, 76, 239, 209, 42, 49, 138, 162, 8, 228, 238, 209, 178,\n\t\t60, 47, 58, 139, 224, 209, 42, 244, 168, 64, 219, 56, 247,\n\t\t151, 28, 73, 254, 4, 36, 55, 32, 215, 110, 135, 98, 148, 100,\n\t\t165, 141, 138, 147, 41, 124, 25, 1, 0, 236, 164, 111, 20,\n\t\t45, 65, 185, 180, 204, 209, 146, 216, 32, 189, 50, 200, 159,\n\t\t225, 231, 234, 78, 110, 62, 200, 28, 147, 9, 107, 155, 76,\n\t\t255, 57, 217, 56, 175, 141, 145, 34, 13, 62, 19, 119, 44,\n\t\t59, 249, 23, 139, 188, 36, 242, 122, 93, 18, 38, 147, 212,\n\t\t89, 66, 75, 147, 233, 226, 104, 196, 25, 181, 66, 171, 96,\n\t\t9, 191, 190, 127, 247, 134, 168, 248, 136, 255, 46, 49, 144,\n\t\t224, 221, 58, 170, 10, 20, 1, 173, 170, 5, 126, 23, 2, 75,\n\t\t56, 110, 67, 73, 146, 237, 86, 120, 208, 86, 7, 17, 144, 26,\n\t\t201, 55, 40, 21, 250, 100, 242, 235, 51, 14, 236, 179, 218,\n\t\t217, 171, 122, 195, 141, 111, 60, 60, 82, 233, 109, 235, 162,\n\t\t144, 69, 97, 170, 132, 85, 93, 129, 244, 155, 24, 147, 208,\n\t\t192, 15, 139, 209, 33, 153, 78, 23, 163, 81, 235, 3, 184,\n\t\t2, 237, 39, 92, 7, 151, 222, 35, 37, 178, 40, 90, 135, 102,\n\t\t51, 120, 237, 252, 94, 122, 5, 210, 24, 216, 183, 24, 200,\n\t\t49, 4, 185, 193, 0, 30, 83, 212, 59, 206, 189, 119, 57, 184,\n\t\t210, 119, 65, 78, 149, 6, 91, 69, 228, 98, 74, 209, 228, 224,\n\t\t75, 75, 58, 71, 216, 111, 209, 35, 236, 177, 213, 194, 128,\n\t\t28, 100, 128, 80, 174, 67, 234, 117, 193, 222, 137, 86, 193,\n\t\t43, 147, 195, 92, 252, 248, 103, 49, 135, 32, 149, 169, 96,\n\t\t43, 3, 88, 7, 101, 241, 92, 73, 194, 142, 225, 66, 166, 247,\n\t\t114, 131, 80, 33, 137, 99, 250, 164, 82, 254, 233, 37, 178,\n\t\t246, 122, 35, 142, 26, 5, 11, 63, 165, 70, 246, 1, 150, 96,\n\t\t113, 15, 159, 112, 189, 106, 194, 169, 148, 111, 16, 251,\n\t\t32, 156, 229, 96, 119, 11, 160, 155, 252, 212, 217, 224, 12,\n\t\t10, 227, 54, 201, 24, 119, 104, 169, 179, 43, 29, 98, 162,\n\t\t198, 167, 60, 158, 148, 54, 249, 232, 234, 109, 166, 186,\n\t\t234, 103, 223, 247, 44, 180, 136, 5, 124, 63, 59, 98, 100,\n\t\t81, 136, 194, 121, 10, 66, 219, 212, 229, 218, 110, 98, 201,\n\t\t38, 71, 0, 143, 191, 174, 110, 63, 136, 64, 94, 219, 141,\n\t\t206, 170, 228, 75, 111, 145, 7, 87, 245, 117, 91, 37, 130,\n\t\t127, 93, 93, 96, 184, 4, 86, 36, 243, 226, 4, 60, 78, 245,\n\t\t192, 135, 233, 241, 231, 208, 222, 83, 227, 66, 111, 231,\n\t\t184, 163, 39, 7, 117, 47, 3, 68, 5, 138, 227, 122, 138, 212,\n\t\t12, 94, 18, 97, 94, 16, 215, 173, 199, 212, 89, 139, 41, 129,\n\t\t179, 128, 222, 59, 47, 186, 200, 15, 142, 184, 116, 37, 193,\n\t\t184, 241, 102, 204, 201, 146, 38, 56, 72, 165, 49, 168, 184,\n\t\t210, 45, 200, 88, 25, 141, 42, 237, 108, 87, 7, 251, 33, 107,\n\t\t139, 204, 151, 37, 213, 118, 80, 65, 178, 150, 65, 179, 154,\n\t\t10, 164, 217, 203, 42, 76, 79, 198, 67, 234, 157, 49, 119,\n\t\t58, 71, 46, 237, 128, 196, 159, 174, 164, 75, 150, 108, 199,\n\t\t101, 171, 31, 151, 15, 87, 240, 252, 197, 124, 62, 189, 140,\n\t\t112, 116, 229, 91, 35, 220, 236, 227, 26, 198, 240, 3, 224,\n\t\t142, 98, 53, 116, 168, 171, 39, 92, 185, 18, 114, 189, 217,\n\t\t18, 88, 71, 16, 16, 161, 44, 184, 185, 3, 184, 12, 42, 166,\n\t\t23, 25, 61, 8, 162, 211, 6, 135, 14, 149, 21, 218, 110, 86,\n\t\t232, 119, 232, 187, 60, 246, 141, 253, 191, 37, 42, 158, 220,\n\t\t250, 105, 233, 61, 90, 90, 17, 115, 209, 18, 74, 171, 48,\n\t\t211, 22, 85, 19, 200, 217, 12, 110, 182, 152, 222, 131, 206,\n\t\t34, 15, 134, 232, 36, 215, 73, 32, 109, 12, 115, 162, 229,\n\t\t102, 107, 193, 111, 51, 8, 81, 85, 186, 149, 118, 131, 225,\n\t\t138, 35, 162, 179, 42, 18, 40, 55, 105, 157, 30, 109, 149,\n\t\t219, 243, 121, 241, 214, 18, 250, 157, 52, 195, 169, 231,\n\t\t32, 19, 240, 137, 212, 240, 83, 255, 124, 74, 58, 249, 224,\n\t\t105, 193, 101, 146, 140, 255, 118, 187, 186, 27, 95, 213,\n\t\t145, 251, 1, 198, 51, 89, 232, 217, 110, 62, 227, 24, 143,\n\t\t207, 37, 34, 73, 116, 91, 168, 214, 99, 61, 74, 85, 197, 157,\n\t\t212, 27, 121, 140, 250, 120, 232, 44, 158, 89, 34, 202, 52,\n\t\t129, 92, 194, 159, 206, 97, 93, 40, 107, 46, 3, 195, 158,\n\t\t207, 231, 67, 64, 168, 195, 121, 107, 77, 5, 228, 245, 102,\n\t\t131, 158, 187, 216, 224, 14, 77, 19, 91, 49, 40, 164, 179,\n\t\t164, 151, 210, 239, 150, 64, 190, 196, 199, 108, 64, 143,\n\t\t59, 57, 68, 232, 7, 152, 243, 124, 124, 149, 73, 207, 135,\n\t\t14, 183, 214, 104, 139, 215, 209, 155, 75, 86, 237, 142, 14,\n\t\t113, 158, 143, 78, 250, 206, 199, 89, 33, 179, 153, 97, 240,\n\t\t225, 98, 246, 0, 104, 2, 254, 143, 179, 144, 73, 19, 254,\n\t\t64, 105, 136, 238, 252, 31, 242, 16, 237, 60, 57, 17, 163,\n\t\t225, 95, 245, 215, 225, 10, 94, 204, 231, 243, 105, 164, 78,\n\t\t230, 174, 194, 187, 20, 67, 88, 197, 227, 228, 214, 127, 196,\n\t\t160, 255, 51, 216, 169, 12, 254, 220, 82, 40, 44, 91, 254,\n\t\t105, 103, 78, 108, 248, 121, 237, 84, 5, 203, 19, 88, 240,\n\t\t68, 103, 125, 75, 185, 233, 173, 183, 31, 13, 41, 55, 76,\n\t\t194, 216, 144, 122, 68, 251, 139, 36, 9, 203, 78, 218, 155,\n\t\t195, 207, 21, 215, 80, 72, 31, 240, 173, 165, 164, 241, 167,\n\t\t144, 27, 252, 199, 109, 150, 5, 36, 248, 237, 183, 218, 152,\n\t\t56, 226, 227, 20, 187, 211, 159, 154, 79, 79, 89, 100, 5,\n\t\t111, 144, 15, 162, 142, 242, 94, 76, 223, 75, 218, 138, 92,\n\t\t62, 92, 214, 85, 87, 117, 173, 227, 178, 58, 106, 140, 139,\n\t\t30, 62, 138, 137, 94, 167, 70, 163, 253, 10, 230, 43, 182,\n\t\t34, 166, 107, 171, 7, 233, 92, 174, 78, 178, 59, 141, 123,\n\t\t110, 161, 139, 24, 92, 58, 53, 32, 245, 73, 43, 218, 62, 34,\n\t\t20, 215, 26, 153, 67, 93, 15, 167, 126, 13, 189, 2, 172, 251,\n\t\t246, 148, 253, 83, 189, 246, 239, 61, 182, 52, 102, 17, 231,\n\t\t141, 12, 84, 23, 241, 107, 237, 145, 215, 97, 9, 243, 122,\n\t\t45, 215, 118, 117, 20, 131, 37, 252, 248, 162, 89, 168, 149,\n\t\t161, 106, 205, 170, 161, 194, 215, 25, 36, 29, 171, 83, 248,\n\t\t114, 193, 117, 172, 203, 186, 125, 115, 192, 254, 34, 9, 147,\n\t\t41, 95, 27, 88, 160, 123, 192, 178, 42, 198, 61, 27, 114,\n\t\t247, 167, 190, 159, 231, 52, 55, 216, 168, 201, 25, 137, 12,\n\t\t70, 193, 186, 253, 226, 140, 6, 224, 155, 110, 144, 67, 177,\n\t\t255, 186, 245, 223, 141, 8, 60, 101, 103, 135, 171, 179, 208,\n\t\t52, 247, 191, 17, 95, 85, 103, 51, 120, 135, 196, 79, 196,\n\t\t73, 56, 62, 47, 73, 222, 35, 56, 190, 101, 241, 133, 107,\n\t\t140, 38, 31, 131, 117, 10, 69, 76, 187, 44, 248, 46, 244,\n\t\t202, 228, 226, 189, 212, 86, 104, 171, 41, 242, 62, 35, 174,\n\t\t135, 174, 137, 63, 87, 111, 85, 50, 65, 147, 79, 166, 163,\n\t\t3, 223, 116, 78, 117, 203, 215, 37, 209, 60, 90, 215, 120,\n\t\t138, 221, 231, 54, 120, 151, 215, 238, 69, 173, 163, 163,\n\t\t36, 117, 69, 117, 231, 110, 140, 46, 214, 78, 122, 53, 164,\n\t\t143, 240, 129, 122, 255, 123, 224, 3, 189, 244, 40, 187, 247,\n\t\t218, 212, 163, 36, 108, 124, 78, 198, 12, 145, 30, 229, 184,\n\t\t238, 243, 86, 66, 236, 164, 41, 227, 241, 142, 15, 13, 109,\n\t\t247, 152, 90, 200, 162, 64, 171, 110, 182, 218, 168, 164,\n\t\t21, 106, 66, 126, 212, 145, 185, 180, 12, 201, 249, 108, 64,\n\t\t131, 41, 29, 239, 130, 228, 171, 78, 5, 233, 44, 249, 238,\n\t\t104, 8, 31, 48, 189, 113, 121, 46, 173, 74, 198, 188, 253,\n\t\t241, 244, 188, 218, 122, 175, 131, 76, 106, 126, 76, 145,\n\t\t131, 26, 124, 94, 208, 7, 72, 37, 165, 219, 4, 189, 127, 244,\n\t\t121, 242, 119, 43, 215, 6, 91, 29, 205, 171, 196, 251, 230,\n\t\t213, 51, 26, 136, 132, 199, 220, 237, 240, 34, 18, 49, 125,\n\t\t103, 207, 141, 197, 104, 212, 156, 64, 82, 169, 87, 252, 16,\n\t\t122, 167, 3, 161, 69, 159, 76, 234, 190, 153, 92, 93, 242,\n\t\t205, 116, 241, 184, 148, 143, 144, 71, 164, 254, 27, 0, 0,\n\t\t255, 255, 80, 75, 7, 8, 243, 137, 25, 201, 85, 6, 0, 0, 130,\n\t\t19, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 9, 0, 106, 115,\n\t\t47, 106, 113, 117, 101, 114, 121, 45, 51, 46, 51, 46, 49,\n\t\t46, 115, 108, 105, 109, 46, 109, 105, 110, 46, 106, 115, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 220, 189, 121, 151, 219, 54,\n\t\t242, 40, 250, 255, 251, 20, 45, 140, 127, 12, 96, 65, 106,\n\t\t201, 153, 228, 222, 161, 26, 214, 113, 188, 76, 246, 205,\n\t\t206, 36, 51, 20, 157, 195, 22, 33, 137, 49, 5, 42, 36, 216,\n\t\t234, 142, 200, 249, 236, 239, 160, 0, 144, 32, 69, 217, 153,\n\t\t185, 247, 253, 243, 146, 227, 22, 9, 98, 71, 161, 54, 84,\n\t\t21, 174, 31, 143, 174, 126, 251, 161, 228, 249, 195, 213,\n\t\t221, 199, 211, 143, 167, 243, 171, 73, 244, 91, 116, 79, 225,\n\t\t239, 245, 111, 69, 38, 14, 230, 57, 205, 162, 216, 60, 30,\n\t\t162, 188, 224, 191, 124, 243, 181, 121, 45, 214, 121, 114,\n\t\t144, 230, 229, 46, 202, 175, 211, 108, 29, 201, 36, 19, 78,\n\t\t146, 200, 196, 154, 59, 239, 249, 239, 170, 77, 147, 112,\n\t\t191, 203, 233, 100, 31, 137, 228, 80, 166, 80, 240, 250, 87,\n\t\t126, 23, 165, 63, 229, 41, 157, 240, 59, 46, 228, 181, 238,\n\t\t19, 223, 108, 248, 90, 22, 205, 195, 245, 155, 35, 231, 162,\n\t\t125, 141, 68, 178, 143, 36, 143, 95, 243, 148, 175, 101, 150,\n\t\t95, 85, 87, 120, 77, 174, 190, 124, 125, 245, 42, 43, 69,\n\t\t12, 85, 95, 69, 34, 190, 202, 228, 142, 231, 87, 235, 76,\n\t\t200, 60, 185, 45, 101, 150, 23, 87, 213, 213, 111, 208, 165,\n\t\t105, 150, 111, 175, 211, 100, 205, 69, 193, 175, 30, 95, 255,\n\t\t63, 163, 77, 41, 214, 170, 32, 230, 84, 146, 19, 42, 11, 126,\n\t\t85, 200, 60, 89, 75, 180, 64, 217, 237, 111, 124, 45, 17,\n\t\t99, 242, 225, 192, 179, 205, 213, 62, 139, 203, 148, 123,\n\t\t222, 133, 15, 83, 126, 127, 200, 114, 89, 44, 187, 175, 140,\n\t\t79, 227, 108, 93, 238, 185, 144, 75, 137, 57, 29, 205, 136,\n\t\t223, 182, 74, 78, 201, 6, 143, 218, 44, 68, 238, 242, 236,\n\t\t120, 37, 248, 241, 234, 101, 158, 103, 57, 70, 102, 253, 114,\n\t\t254, 123, 153, 228, 188, 184, 138, 174, 142, 137, 136, 179,\n\t\t227, 213, 49, 145, 187, 171, 232, 202, 150, 68, 100, 145,\n\t\t115, 89, 230, 226, 74, 98, 78, 106, 31, 254, 98, 84, 138,\n\t\t152, 111, 18, 193, 99, 52, 178, 221, 213, 229, 151, 250, 199,\n\t\t151, 187, 164, 160, 239, 153, 134, 187, 40, 191, 18, 44, 8,\n\t\t105, 238, 140, 132, 38, 236, 59, 152, 132, 233, 150, 203,\n\t\t239, 243, 76, 102, 170, 238, 239, 54, 52, 99, 98, 90, 168,\n\t\t9, 166, 17, 19, 211, 117, 38, 214, 145, 164, 37, 19, 211,\n\t\t67, 89, 236, 104, 193, 196, 52, 17, 49, 191, 255, 110, 67,\n\t\t83, 118, 170, 233, 154, 165, 83, 153, 189, 150, 121, 34, 182,\n\t\t116, 195, 210, 233, 46, 42, 190, 59, 138, 239, 243, 236, 192,\n\t\t115, 249, 64, 99, 182, 105, 191, 31, 88, 60, 93, 71, 105,\n\t\t138, 117, 211, 132, 238, 84, 21, 91, 102, 59, 127, 197, 177,\n\t\t36, 39, 61, 9, 200, 38, 182, 171, 36, 61, 15, 137, 114, 127,\n\t\t203, 243, 118, 42, 228, 84, 100, 49, 127, 243, 112, 224, 53,\n\t\t189, 27, 172, 232, 74, 148, 105, 58, 98, 210, 243, 36, 99,\n\t\t76, 78, 245, 172, 213, 244, 129, 157, 84, 29, 254, 104, 70,\n\t\t139, 124, 173, 126, 68, 246, 13, 44, 188, 63, 154, 213, 139,\n\t\t166, 170, 189, 154, 82, 42, 200, 73, 205, 99, 66, 51, 134,\n\t\t37, 147, 85, 149, 147, 233, 58, 231, 145, 228, 47, 83, 174,\n\t\t38, 20, 35, 189, 207, 16, 89, 36, 27, 156, 77, 37, 191, 151,\n\t\t140, 83, 65, 54, 89, 142, 147, 171, 68, 92, 61, 16, 17, 36,\n\t\t161, 231, 225, 44, 72, 66, 166, 158, 201, 66, 78, 119, 60,\n\t\t138, 167, 209, 225, 192, 69, 252, 124, 151, 164, 49, 206,\n\t\t200, 244, 16, 229, 92, 200, 111, 179, 152, 79, 115, 190, 207,\n\t\t238, 184, 253, 82, 55, 189, 186, 85, 144, 231, 12, 144, 49,\n\t\t190, 228, 99, 132, 252, 51, 216, 230, 85, 53, 48, 151, 124,\n\t\t153, 6, 107, 189, 24, 156, 132, 85, 101, 139, 249, 246, 123,\n\t\t173, 134, 123, 207, 208, 255, 239, 176, 14, 162, 71, 214,\n\t\t221, 45, 118, 26, 249, 241, 234, 56, 221, 40, 0, 79, 36, 124,\n\t\t169, 233, 115, 118, 253, 54, 88, 21, 171, 242, 213, 203, 87,\n\t\t175, 86, 247, 207, 102, 225, 184, 234, 189, 63, 186, 222,\n\t\t46, 84, 49, 118, 156, 30, 236, 62, 98, 39, 141, 173, 252,\n\t\t123, 186, 206, 68, 33, 243, 82, 181, 236, 31, 105, 202, 197,\n\t\t86, 238, 252, 25, 149, 217, 179, 60, 143, 30, 90, 68, 210,\n\t\t116, 35, 211, 171, 162, 118, 53, 169, 233, 150, 203, 14, 178,\n\t\t233, 45, 185, 155, 217, 231, 55, 179, 165, 122, 10, 248, 88,\n\t\t253, 76, 117, 99, 161, 175, 211, 194, 154, 170, 45, 252, 90,\n\t\t70, 235, 119, 157, 42, 213, 66, 75, 118, 156, 238, 121, 190,\n\t\t229, 80, 213, 212, 233, 52, 38, 148, 183, 136, 105, 122, 200,\n\t\t249, 157, 222, 189, 12, 240, 142, 172, 41, 143, 214, 187,\n\t\t161, 62, 30, 167, 234, 11, 84, 72, 57, 169, 233, 62, 58, 12,\n\t\t101, 131, 6, 155, 158, 225, 227, 116, 31, 29, 112, 23, 167,\n\t\t193, 246, 51, 217, 185, 25, 49, 21, 106, 129, 8, 169, 41,\n\t\t96, 171, 129, 137, 236, 85, 156, 169, 93, 150, 62, 232, 170,\n\t\t163, 124, 11, 104, 176, 80, 21, 108, 146, 188, 144, 151, 42,\n\t\t224, 191, 227, 25, 169, 105, 26, 189, 55, 203, 100, 78, 106,\n\t\t202, 127, 31, 152, 87, 103, 37, 168, 96, 99, 62, 198, 176,\n\t\t76, 254, 172, 157, 212, 110, 63, 197, 83, 54, 243, 60, 113,\n\t\t35, 151, 1, 44, 156, 8, 67, 63, 8, 85, 245, 34, 190, 56, 202,\n\t\t102, 85, 170, 234, 124, 1, 245, 194, 251, 37, 45, 178, 92,\n\t\t250, 98, 170, 126, 104, 113, 128, 105, 19, 83, 253, 80, 211,\n\t\t227, 148, 223, 75, 46, 98, 6, 123, 192, 60, 59, 237, 169,\n\t\t225, 0, 38, 164, 57, 77, 104, 70, 35, 214, 76, 98, 48, 11,\n\t\t171, 234, 84, 211, 146, 205, 105, 209, 38, 219, 97, 167, 108,\n\t\t52, 95, 40, 52, 136, 110, 179, 44, 229, 145, 131, 134, 34,\n\t\t207, 195, 41, 139, 58, 149, 149, 166, 178, 241, 152, 208,\n\t\t51, 108, 22, 85, 213, 22, 71, 164, 170, 112, 196, 78, 53,\n\t\t161, 37, 99, 172, 240, 60, 28, 105, 112, 44, 39, 19, 178,\n\t\t40, 111, 138, 133, 42, 157, 108, 176, 198, 253, 152, 119,\n\t\t170, 39, 128, 147, 165, 194, 201, 156, 8, 22, 5, 50, 164,\n\t\t209, 136, 49, 156, 51, 30, 200, 144, 168, 62, 121, 94, 238,\n\t\t121, 248, 56, 77, 138, 239, 211, 40, 17, 122, 114, 113, 174,\n\t\t26, 78, 24, 108, 221, 105, 82, 192, 47, 206, 9, 33, 75, 156,\n\t\t44, 113, 194, 70, 115, 69, 63, 61, 175, 155, 65, 144, 165,\n\t\t80, 75, 232, 195, 183, 126, 157, 240, 245, 84, 83, 213, 13,\n\t\t102, 23, 1, 167, 52, 163, 57, 33, 254, 93, 150, 196, 87, 179,\n\t\t17, 99, 170, 59, 144, 37, 39, 13, 228, 68, 237, 170, 225,\n\t\t19, 191, 63, 68, 34, 206, 124, 195, 111, 160, 49, 190, 31,\n\t\t127, 19, 201, 221, 52, 87, 201, 123, 76, 200, 52, 231, 135,\n\t\t52, 90, 115, 124, 189, 122, 113, 189, 165, 8, 17, 154, 20,\n\t\t63, 242, 40, 126, 80, 212, 143, 43, 110, 165, 3, 192, 125,\n\t\t78, 70, 109, 98, 145, 101, 7, 23, 10, 107, 218, 25, 205, 249,\n\t\t6, 160, 194, 244, 118, 132, 71, 138, 20, 5, 122, 69, 175,\n\t\t116, 254, 16, 141, 24, 107, 232, 144, 154, 249, 17, 150, 44,\n\t\t81, 207, 67, 100, 11, 11, 182, 177, 251, 31, 57, 48, 142,\n\t\t136, 231, 73, 23, 232, 137, 231, 25, 86, 67, 16, 198, 216,\n\t\t129, 168, 126, 190, 220, 31, 228, 195, 165, 126, 46, 28, 152,\n\t\t48, 29, 158, 219, 158, 207, 106, 186, 77, 179, 219, 40, 125,\n\t\t121, 23, 165, 157, 162, 123, 152, 148, 30, 6, 84, 52, 5, 152,\n\t\t46, 154, 179, 153, 226, 6, 222, 168, 241, 156, 84, 3, 130,\n\t\t113, 179, 43, 22, 249, 141, 88, 228, 26, 74, 71, 115, 224,\n\t\t76, 244, 44, 4, 121, 72, 115, 170, 126, 8, 185, 205, 121,\n\t\t244, 174, 230, 105, 193, 175, 84, 233, 92, 119, 239, 131,\n\t\t37, 44, 124, 240, 154, 202, 60, 217, 191, 143, 128, 32, 228,\n\t\t99, 197, 55, 180, 192, 241, 92, 1, 134, 194, 214, 239, 120,\n\t\t143, 68, 181, 3, 83, 12, 80, 16, 46, 58, 12, 22, 247, 60,\n\t\t252, 198, 112, 118, 106, 188, 75, 75, 81, 4, 69, 5, 240, 127,\n\t\t46, 247, 17, 240, 208, 231, 196, 47, 205, 34, 81, 78, 8, 21,\n\t\t53, 77, 196, 121, 155, 14, 242, 215, 189, 150, 203, 201, 220,\n\t\t47, 44, 28, 40, 30, 171, 166, 208, 84, 175, 171, 106, 202,\n\t\t116, 119, 199, 210, 226, 162, 156, 205, 104, 114, 190, 8,\n\t\t60, 72, 198, 227, 144, 201, 32, 111, 70, 101, 243, 176, 132,\n\t\t242, 154, 110, 115, 126, 56, 235, 149, 109, 32, 167, 137,\n\t\t226, 175, 51, 54, 163, 81, 83, 55, 45, 217, 72, 44, 178, 155,\n\t\t104, 145, 141, 199, 4, 231, 108, 36, 49, 15, 178, 144, 102,\n\t\t132, 140, 24, 43, 61, 47, 1, 172, 15, 137, 205, 150, 78, 250,\n\t\t116, 178, 229, 61, 1, 237, 178, 25, 45, 89, 16, 54, 80, 5,\n\t\t96, 209, 142, 39, 187, 201, 161, 57, 131, 247, 18, 102, 219,\n\t\t164, 66, 237, 174, 82, 183, 152, 144, 69, 3, 83, 153, 65,\n\t\t131, 31, 42, 96, 81, 142, 161, 162, 65, 72, 75, 197, 158,\n\t\t148, 73, 236, 207, 105, 81, 30, 148, 168, 228, 239, 106, 66,\n\t\t7, 152, 205, 215, 15, 251, 219, 44, 5, 124, 186, 17, 129,\n\t\t126, 155, 38, 146, 231, 145, 204, 114, 197, 10, 247, 147,\n\t\t8, 53, 204, 3, 250, 76, 83, 140, 171, 111, 129, 239, 191,\n\t\t210, 130, 196, 213, 43, 203, 6, 3, 180, 92, 189, 136, 36,\n\t\t191, 250, 145, 111, 95, 222, 31, 12, 94, 209, 24, 203, 52,\n\t\t140, 128, 198, 73, 140, 174, 16, 233, 9, 74, 105, 208, 32,\n\t\t36, 52, 150, 99, 20, 162, 144, 201, 169, 204, 190, 206, 142,\n\t\t60, 127, 30, 21, 28, 147, 154, 180, 178, 192, 155, 150, 174,\n\t\t143, 70, 74, 144, 212, 211, 142, 212, 20, 122, 30, 111, 233,\n\t\t188, 98, 207, 45, 246, 216, 98, 78, 60, 111, 116, 7, 63, 24,\n\t\t69, 170, 203, 136, 49, 38, 170, 106, 166, 118, 113, 85, 89,\n\t\t169, 198, 149, 116, 228, 211, 153, 231, 201, 201, 92, 47,\n\t\t15, 112, 227, 47, 217, 0, 118, 181, 212, 152, 150, 180, 160,\n\t\t41, 93, 211, 13, 141, 233, 129, 238, 232, 150, 222, 209, 7,\n\t\t186, 167, 183, 244, 158, 161, 34, 249, 227, 143, 148, 163,\n\t\t241, 252, 177, 66, 231, 106, 190, 232, 209, 149, 6, 159, 179,\n\t\t25, 125, 195, 102, 244, 37, 139, 56, 38, 244, 91, 253, 243,\n\t\t78, 255, 60, 27, 230, 151, 185, 234, 188, 231, 225, 13, 27,\n\t\t205, 8, 157, 213, 244, 5, 59, 213, 125, 249, 239, 181, 218,\n\t\t24, 95, 179, 215, 211, 67, 118, 160, 191, 169, 95, 37, 70,\n\t\t254, 110, 31, 190, 99, 175, 141, 180, 249, 61, 187, 180, 121,\n\t\t103, 212, 1, 112, 113, 147, 47, 132, 198, 154, 60, 16, 161,\n\t\t234, 2, 177, 200, 193, 76, 248, 100, 94, 211, 207, 25, 90,\n\t\t239, 248, 250, 29, 143, 171, 2, 248, 126, 30, 87, 81, 241,\n\t\t32, 214, 85, 84, 202, 108, 147, 173, 203, 2, 158, 14, 105,\n\t\t244, 80, 129, 162, 33, 75, 139, 42, 230, 27, 158, 87, 113,\n\t\t82, 68, 183, 41, 143, 171, 93, 18, 199, 92, 84, 73, 177, 143,\n\t\t14, 85, 154, 101, 135, 106, 95, 166, 50, 57, 164, 188, 202,\n\t\t14, 92, 84, 57, 143, 226, 76, 164, 15, 149, 17, 237, 227,\n\t\t170, 88, 103, 7, 30, 35, 250, 5, 67, 193, 106, 117, 255, 100,\n\t\t182, 90, 201, 213, 42, 95, 173, 196, 106, 181, 9, 17, 253,\n\t\t145, 33, 188, 244, 87, 171, 213, 106, 90, 5, 171, 213, 113,\n\t\t18, 86, 193, 219, 213, 108, 178, 90, 221, 71, 179, 144, 140,\n\t\t17, 253, 140, 161, 213, 42, 64, 227, 47, 198, 232, 49, 70,\n\t\t227, 31, 199, 136, 224, 165, 111, 222, 131, 199, 111, 31,\n\t\t85, 163, 127, 135, 75, 70, 76, 202, 210, 255, 8, 183, 53,\n\t\t190, 85, 191, 31, 133, 228, 49, 249, 168, 90, 161, 254, 135,\n\t\t21, 82, 95, 86, 168, 50, 245, 146, 202, 212, 178, 90, 133,\n\t\t136, 126, 195, 144, 223, 54, 184, 90, 97, 140, 255, 243, 170,\n\t\t73, 213, 255, 130, 73, 176, 90, 133, 97, 133, 198, 159, 141,\n\t\t17, 121, 76, 170, 233, 99, 178, 90, 169, 166, 233, 207, 76,\n\t\t193, 162, 222, 182, 248, 139, 49, 26, 35, 138, 182, 136, 208,\n\t\t71, 110, 58, 122, 11, 125, 28, 67, 197, 111, 77, 165, 33,\n\t\t177, 173, 144, 199, 122, 12, 227, 71, 166, 240, 171, 129,\n\t\t194, 143, 169, 254, 65, 132, 254, 49, 244, 25, 7, 79, 199,\n\t\t255, 86, 93, 252, 98, 140, 72, 147, 245, 215, 78, 86, 102,\n\t\t179, 190, 93, 173, 194, 143, 86, 40, 124, 188, 116, 103, 15,\n\t\t218, 254, 201, 45, 241, 13, 161, 255, 232, 55, 246, 227, 24,\n\t\t61, 66, 132, 254, 194, 78, 95, 188, 240, 59, 223, 254, 98,\n\t\t166, 30, 17, 250, 252, 235, 103, 175, 95, 119, 191, 174, 86,\n\t\t211, 246, 251, 155, 103, 127, 239, 126, 213, 159, 170, 224,\n\t\t113, 168, 62, 63, 123, 243, 230, 71, 191, 215, 238, 103, 132,\n\t\t126, 255, 250, 229, 79, 47, 190, 235, 127, 248, 134, 208,\n\t\t231, 159, 127, 241, 117, 175, 51, 62, 6, 168, 6, 177, 168,\n\t\t82, 130, 79, 37, 228, 78, 253, 155, 168, 23, 50, 193, 235,\n\t\t93, 146, 198, 85, 182, 153, 40, 116, 101, 192, 197, 204, 143,\n\t\t146, 204, 171, 44, 142, 43, 140, 131, 241, 36, 172, 8, 94,\n\t\t173, 226, 199, 68, 84, 45, 196, 154, 15, 230, 125, 181, 138,\n\t\t199, 164, 34, 205, 100, 2, 104, 160, 4, 17, 170, 132, 133,\n\t\t222, 72, 213, 78, 248, 124, 140, 200, 35, 147, 69, 112, 30,\n\t\t23, 207, 51, 33, 249, 189, 236, 143, 77, 85, 167, 23, 214,\n\t\t111, 123, 197, 127, 175, 182, 178, 74, 245, 136, 218, 1, 118,\n\t\t199, 128, 151, 254, 100, 181, 138, 201, 18, 186, 238, 116,\n\t\t12, 47, 89, 240, 118, 18, 86, 143, 76, 23, 107, 250, 3, 187,\n\t\t86, 189, 74, 196, 161, 148, 6, 211, 84, 170, 51, 81, 206,\n\t\t163, 234, 182, 148, 50, 19, 228, 209, 117, 66, 255, 201, 174,\n\t\t223, 238, 86, 177, 122, 252, 59, 187, 126, 27, 188, 61, 133,\n\t\t227, 213, 105, 85, 60, 94, 5, 34, 146, 201, 29, 191, 90, 29,\n\t\t175, 233, 87, 186, 182, 191, 224, 64, 161, 134, 49, 169, 240,\n\t\t234, 56, 38, 213, 106, 106, 19, 200, 163, 107, 250, 37, 187,\n\t\t14, 198, 255, 14, 175, 233, 191, 58, 224, 5, 155, 45, 88,\n\t\t173, 226, 104, 178, 9, 79, 115, 250, 105, 13, 29, 95, 86,\n\t\t122, 84, 164, 154, 66, 167, 21, 156, 114, 206, 6, 249, 11,\n\t\t134, 102, 247, 104, 44, 39, 159, 126, 242, 201, 199, 159,\n\t\t90, 130, 159, 43, 217, 163, 170, 196, 82, 250, 249, 205, 108,\n\t\t169, 9, 240, 116, 147, 103, 251, 231, 187, 40, 127, 158, 197,\n\t\t28, 231, 99, 40, 65, 252, 193, 143, 79, 159, 206, 103, 213,\n\t\t39, 159, 60, 249, 219, 167, 116, 62, 123, 242, 177, 151, 87,\n\t\t159, 124, 250, 241, 19, 37, 83, 75, 206, 174, 113, 160, 208,\n\t\t223, 253, 124, 179, 186, 255, 95, 155, 176, 122, 59, 89, 174,\n\t\t98, 82, 189, 157, 60, 50, 136, 209, 124, 153, 172, 202, 87,\n\t\t175, 94, 189, 82, 179, 112, 189, 165, 130, 15, 83, 36, 185,\n\t\t68, 171, 153, 34, 173, 124, 137, 86, 229, 102, 179, 137, 145,\n\t\t207, 53, 125, 193, 51, 58, 153, 147, 49, 90, 173, 208, 152,\n\t\t79, 215, 166, 119, 207, 36, 182, 148, 101, 50, 39, 141, 162,\n\t\t18, 207, 63, 37, 99, 116, 133, 124, 157, 189, 166, 57, 119,\n\t\t37, 225, 88, 137, 212, 9, 103, 123, 142, 207, 57, 235, 145,\n\t\t162, 233, 124, 106, 137, 136, 162, 248, 155, 44, 223, 3, 139,\n\t\t80, 85, 40, 141, 110, 121, 138, 52, 77, 167, 167, 56, 201,\n\t\t125, 212, 106, 251, 16, 21, 10, 144, 81, 202, 183, 92, 196,\n\t\t168, 38, 11, 153, 63, 156, 126, 55, 44, 215, 107, 246, 157,\n\t\t230, 121, 143, 83, 216, 128, 170, 68, 161, 56, 37, 247, 237,\n\t\t117, 224, 190, 91, 21, 80, 171, 36, 93, 71, 114, 189, 83,\n\t\t189, 253, 157, 157, 160, 90, 255, 181, 201, 180, 236, 78,\n\t\t233, 111, 166, 85, 78, 77, 171, 146, 144, 122, 80, 22, 224,\n\t\t14, 111, 189, 56, 238, 146, 148, 43, 210, 108, 216, 233, 241,\n\t\t56, 36, 139, 134, 149, 86, 180, 185, 110, 149, 152, 25, 7,\n\t\t248, 203, 105, 162, 235, 202, 104, 105, 88, 152, 157, 98,\n\t\t93, 64, 103, 59, 205, 142, 130, 231, 47, 90, 70, 69, 46, 91,\n\t\t157, 175, 255, 55, 197, 8, 231, 10, 64, 131, 176, 17, 51,\n\t\t70, 142, 234, 83, 201, 156, 243, 17, 99, 207, 61, 239, 111,\n\t\t250, 103, 14, 175, 150, 105, 200, 85, 5, 163, 196, 243, 48,\n\t\t86, 21, 119, 26, 171, 42, 233, 31, 21, 175, 126, 240, 188,\n\t\t24, 75, 66, 65, 241, 123, 160, 91, 2, 74, 255, 185, 169, 23,\n\t\t111, 216, 87, 83, 126, 207, 215, 138, 31, 87, 140, 73, 198,\n\t\t54, 193, 60, 132, 60, 127, 99, 170, 45, 56, 34, 192, 41, 3,\n\t\t101, 187, 209, 23, 127, 246, 240, 69, 140, 51, 66, 58, 29,\n\t\t73, 167, 73, 204, 24, 203, 154, 68, 205, 126, 167, 132, 230,\n\t\t90, 10, 76, 54, 120, 15, 42, 147, 253, 64, 85, 158, 119, 139,\n\t\t37, 77, 137, 231, 125, 168, 30, 213, 161, 77, 240, 36, 180,\n\t\t223, 45, 136, 229, 212, 237, 98, 241, 217, 195, 155, 104,\n\t\t251, 109, 180, 231, 106, 100, 20, 122, 8, 131, 251, 56, 36,\n\t\t158, 39, 186, 57, 159, 167, 81, 81, 168, 188, 106, 205, 134,\n\t\t191, 124, 176, 181, 38, 167, 26, 13, 205, 235, 100, 131, 197,\n\t\t244, 247, 34, 242, 188, 209, 187, 128, 171, 29, 25, 122, 30,\n\t\t30, 221, 85, 213, 232, 110, 42, 121, 1, 114, 166, 94, 11,\n\t\t88, 211, 61, 147, 244, 129, 241, 133, 157, 42, 171, 61, 26,\n\t\t41, 89, 89, 193, 140, 170, 187, 203, 221, 147, 19, 94, 235,\n\t\t117, 121, 38, 245, 105, 19, 199, 40, 137, 17, 33, 203, 53,\n\t\t91, 55, 66, 177, 228, 84, 112, 226, 203, 105, 209, 207, 72,\n\t\t215, 236, 158, 208, 146, 225, 29, 139, 84, 119, 44, 163, 170,\n\t\t55, 66, 57, 153, 144, 93, 80, 134, 12, 253, 5, 141, 215, 106,\n\t\t4, 227, 7, 142, 85, 10, 89, 60, 176, 221, 244, 183, 44, 17,\n\t\t24, 81, 68, 232, 158, 125, 105, 135, 228, 121, 91, 142, 165,\n\t\t115, 10, 64, 170, 74, 170, 201, 120, 32, 10, 31, 156, 205,\n\t\t226, 126, 10, 202, 102, 171, 224, 126, 150, 166, 248, 1, 230,\n\t\t175, 217, 236, 245, 38, 17, 81, 154, 62, 156, 214, 140, 177,\n\t\t123, 181, 66, 250, 92, 161, 55, 230, 186, 174, 77, 229, 5,\n\t\t230, 205, 216, 31, 81, 244, 104, 142, 136, 217, 168, 237,\n\t\t238, 85, 178, 129, 214, 10, 42, 129, 180, 73, 150, 88, 168,\n\t\t253, 220, 72, 209, 0, 121, 66, 13, 157, 60, 205, 167, 235,\n\t\t104, 189, 227, 95, 195, 20, 121, 94, 204, 83, 46, 249, 149,\n\t\t12, 248, 180, 216, 37, 27, 137, 73, 72, 101, 0, 121, 67, 150,\n\t\t216, 190, 200, 182, 201, 146, 59, 42, 12, 30, 220, 135, 108,\n\t\t52, 163, 188, 253, 94, 240, 86, 64, 59, 244, 207, 103, 54,\n\t\t9, 79, 227, 130, 75, 164, 209, 170, 65, 215, 35, 142, 37,\n\t\t105, 103, 202, 170, 126, 154, 25, 115, 215, 65, 77, 220, 133,\n\t\t179, 25, 192, 14, 74, 136, 118, 208, 91, 202, 187, 104, 210,\n\t\t72, 161, 21, 34, 52, 97, 162, 11, 40, 201, 100, 66, 242, 105,\n\t\t36, 101, 254, 121, 36, 226, 148, 7, 34, 72, 194, 144, 57,\n\t\t99, 95, 119, 106, 147, 158, 199, 105, 206, 132, 231, 205,\n\t\t129, 222, 88, 140, 168, 223, 165, 243, 206, 167, 69, 86, 230,\n\t\t107, 254, 133, 136, 249, 253, 68, 186, 111, 128, 60, 59, 8,\n\t\t72, 16, 221, 29, 193, 196, 84, 209, 162, 215, 201, 109, 154,\n\t\t136, 45, 168, 82, 29, 89, 107, 50, 111, 180, 36, 203, 185,\n\t\t63, 153, 183, 189, 220, 184, 43, 212, 80, 139, 246, 84, 15,\n\t\t56, 37, 196, 46, 111, 72, 53, 199, 112, 132, 194, 24, 119,\n\t\t230, 50, 190, 84, 175, 153, 142, 11, 181, 153, 110, 226, 182,\n\t\t93, 81, 85, 72, 51, 102, 240, 118, 169, 189, 195, 7, 198,\n\t\t97, 105, 186, 34, 26, 46, 128, 24, 197, 156, 37, 255, 203,\n\t\t150, 224, 75, 247, 217, 41, 211, 169, 160, 41, 168, 186, 227,\n\t\t203, 254, 107, 82, 188, 112, 18, 170, 202, 77, 25, 49, 54,\n\t\t226, 158, 151, 40, 120, 30, 42, 237, 180, 174, 198, 236, 126,\n\t\t115, 198, 189, 115, 199, 93, 58, 12, 142, 195, 101, 177, 177,\n\t\t164, 238, 39, 65, 243, 246, 116, 148, 227, 32, 164, 22, 184,\n\t\t169, 36, 52, 98, 89, 23, 212, 163, 201, 132, 136, 32, 97,\n\t\t89, 16, 133, 10, 159, 43, 72, 103, 35, 156, 55, 167, 162,\n\t\t164, 86, 255, 55, 93, 218, 118, 54, 189, 231, 13, 157, 136,\n\t\t243, 65, 178, 229, 121, 188, 22, 44, 227, 83, 163, 159, 98,\n\t\t167, 154, 102, 234, 61, 41, 126, 249, 230, 235, 115, 109,\n\t\t10, 232, 48, 121, 159, 9, 224, 164, 209, 147, 152, 22, 172,\n\t\t102, 103, 36, 61, 15, 125, 254, 230, 155, 175, 187, 20, 166,\n\t\t166, 49, 52, 202, 165, 173, 100, 64, 113, 147, 208, 136, 241,\n\t\t229, 121, 99, 254, 177, 81, 181, 105, 206, 67, 177, 16, 145,\n\t\t179, 159, 163, 126, 111, 150, 248, 192, 34, 186, 99, 135,\n\t\t254, 7, 186, 101, 163, 12, 31, 8, 61, 234, 154, 112, 162,\n\t\t242, 240, 77, 84, 166, 242, 31, 9, 63, 18, 207, 75, 166, 50,\n\t\t59, 140, 24, 83, 12, 80, 50, 141, 226, 248, 229, 29, 23, 242,\n\t\t235, 164, 144, 92, 240, 124, 121, 158, 132, 81, 41, 210, 44,\n\t\t138, 17, 205, 57, 29, 205, 137, 159, 40, 164, 21, 173, 119,\n\t\t144, 75, 85, 232, 188, 98, 148, 137, 54, 59, 33, 84, 0, 134,\n\t\t3, 138, 83, 176, 98, 136, 125, 190, 226, 211, 181, 229, 2,\n\t\t24, 74, 16, 29, 241, 30, 113, 110, 62, 35, 82, 171, 26, 135,\n\t\t22, 254, 98, 221, 238, 65, 187, 37, 16, 207, 179, 189, 38,\n\t\t16, 136, 16, 211, 220, 57, 3, 132, 30, 35, 75, 218, 207, 91,\n\t\t109, 248, 22, 246, 119, 77, 195, 15, 151, 56, 32, 93, 82,\n\t\t49, 108, 23, 186, 184, 235, 116, 145, 19, 197, 200, 221, 211,\n\t\t81, 175, 66, 85, 87, 85, 13, 165, 226, 251, 126, 55, 85, 99,\n\t\t75, 156, 79, 55, 73, 42, 121, 62, 253, 226, 197, 16, 220,\n\t\t55, 196, 254, 95, 148, 183, 199, 189, 131, 83, 120, 206, 42,\n\t\t41, 140, 87, 215, 84, 53, 33, 226, 110, 3, 138, 96, 41, 70,\n\t\t108, 96, 203, 246, 153, 97, 207, 219, 182, 216, 188, 199,\n\t\t220, 182, 93, 18, 203, 64, 132, 126, 16, 214, 53, 241, 255,\n\t\t207, 7, 165, 155, 187, 136, 80, 154, 113, 106, 220, 126, 158,\n\t\t166, 199, 223, 244, 77, 49, 197, 119, 81, 90, 242, 255, 219,\n\t\t51, 162, 149, 188, 131, 243, 162, 228, 13, 168, 17, 11, 150,\n\t\t93, 232, 32, 113, 59, 102, 217, 240, 32, 11, 23, 9, 147, 3,\n\t\t32, 196, 137, 35, 202, 101, 44, 209, 82, 220, 127, 215, 132,\n\t\t97, 226, 96, 193, 236, 124, 188, 121, 246, 119, 54, 188, 111,\n\t\t123, 50, 168, 161, 181, 31, 152, 42, 167, 248, 69, 233, 197,\n\t\t7, 57, 98, 41, 207, 57, 101, 110, 207, 88, 7, 133, 91, 154,\n\t\t179, 32, 164, 9, 155, 245, 102, 191, 83, 185, 90, 3, 244,\n\t\t24, 244, 14, 228, 100, 249, 167, 12, 78, 148, 136, 98, 7,\n\t\t132, 131, 189, 141, 36, 38, 26, 160, 201, 45, 155, 155, 53,\n\t\t240, 2, 26, 192, 254, 12, 57, 242, 213, 127, 12, 76, 221,\n\t\t226, 91, 203, 241, 93, 148, 190, 56, 169, 233, 131, 26, 248,\n\t\t157, 250, 163, 101, 176, 22, 181, 245, 167, 16, 142, 109,\n\t\t123, 216, 236, 28, 141, 9, 193, 115, 69, 42, 25, 186, 137,\n\t\t174, 146, 152, 125, 132, 198, 247, 99, 244, 209, 211, 155,\n\t\t235, 232, 233, 141, 214, 156, 181, 201, 147, 85, 190, 90,\n\t\t125, 116, 181, 47, 162, 52, 205, 142, 235, 232, 32, 203, 156,\n\t\t179, 143, 62, 122, 122, 147, 29, 12, 163, 175, 149, 250, 144,\n\t\t118, 173, 19, 159, 222, 92, 235, 228, 167, 136, 242, 243,\n\t\t133, 70, 65, 183, 186, 183, 236, 163, 143, 194, 6, 169, 123,\n\t\t222, 157, 94, 25, 20, 60, 126, 251, 40, 100, 173, 126, 253,\n\t\t163, 106, 133, 86, 160, 121, 29, 172, 212, 246, 164, 173,\n\t\t170, 170, 108, 85, 173, 38, 127, 233, 195, 222, 168, 180,\n\t\t250, 242, 82, 93, 73, 252, 111, 166, 199, 63, 84, 219, 191,\n\t\t217, 133, 114, 190, 57, 234, 24, 40, 211, 126, 26, 44, 25,\n\t\t253, 5, 154, 27, 63, 30, 40, 58, 253, 203, 116, 28, 140, 255,\n\t\t29, 2, 153, 237, 45, 47, 239, 173, 231, 46, 231, 27, 246,\n\t\t209, 71, 87, 13, 83, 249, 145, 125, 234, 46, 240, 224, 119,\n\t\t189, 122, 215, 206, 242, 45, 46, 72, 112, 154, 137, 39, 139,\n\t\t190, 24, 174, 64, 30, 81, 164, 207, 107, 96, 168, 46, 244,\n\t\t73, 210, 203, 46, 20, 243, 64, 209, 139, 75, 203, 160, 190,\n\t\t179, 120, 8, 54, 160, 164, 214, 44, 55, 71, 49, 136, 208,\n\t\t39, 35, 37, 130, 13, 44, 12, 23, 48, 200, 129, 154, 154, 79,\n\t\t20, 249, 118, 46, 16, 161, 103, 251, 166, 153, 177, 209, 236,\n\t\t114, 51, 109, 5, 127, 182, 157, 161, 106, 30, 83, 255, 30,\n\t\t17, 106, 75, 210, 233, 99, 95, 173, 61, 81, 8, 96, 175, 228,\n\t\t99, 94, 216, 252, 22, 25, 236, 217, 206, 126, 170, 170, 221,\n\t\t244, 200, 111, 223, 37, 242, 155, 110, 94, 245, 97, 159, 253,\n\t\t49, 144, 154, 13, 229, 44, 122, 137, 10, 187, 244, 160, 79,\n\t\t168, 89, 89, 103, 66, 192, 198, 131, 252, 108, 111, 108, 33,\n\t\t40, 156, 221, 180, 111, 65, 49, 82, 251, 28, 70, 246, 96,\n\t\t70, 54, 98, 136, 126, 163, 160, 250, 142, 221, 53, 19, 230,\n\t\t232, 210, 239, 140, 90, 166, 82, 12, 225, 3, 123, 24, 202,\n\t\t243, 224, 230, 145, 118, 62, 118, 211, 117, 182, 87, 210,\n\t\t156, 101, 232, 191, 207, 138, 68, 117, 155, 208, 91, 38, 171,\n\t\t202, 201, 38, 100, 148, 136, 130, 44, 7, 136, 14, 251, 91,\n\t\t71, 164, 95, 242, 62, 99, 239, 43, 209, 95, 118, 181, 17,\n\t\t141, 64, 206, 64, 95, 63, 194, 163, 92, 107, 62, 243, 166,\n\t\t34, 149, 42, 154, 166, 151, 237, 35, 206, 137, 207, 47, 117,\n\t\t221, 243, 230, 159, 122, 23, 191, 130, 245, 83, 159, 116,\n\t\t38, 27, 44, 141, 34, 65, 178, 142, 34, 75, 125, 113, 24, 132,\n\t\t209, 108, 209, 40, 92, 232, 51, 38, 151, 103, 245, 112, 247,\n\t\t132, 119, 163, 118, 193, 108, 161, 15, 43, 70, 23, 251, 52,\n\t\t25, 201, 75, 159, 26, 170, 91, 85, 120, 238, 225, 156, 13,\n\t\t137, 123, 140, 49, 124, 174, 10, 38, 203, 203, 147, 32, 137,\n\t\t63, 39, 85, 53, 210, 182, 117, 47, 184, 146, 128, 120, 172,\n\t\t109, 146, 134, 75, 64, 43, 249, 82, 13, 239, 80, 85, 189,\n\t\t78, 48, 198, 142, 158, 119, 139, 143, 148, 147, 229, 100,\n\t\t238, 75, 157, 75, 94, 202, 37, 201, 114, 238, 175, 151, 223,\n\t\t227, 53, 229, 100, 162, 126, 36, 241, 103, 254, 95, 189, 92,\n\t\t149, 158, 15, 173, 207, 165, 121, 21, 141, 133, 76, 187, 106,\n\t\t192, 251, 56, 175, 17, 11, 120, 72, 75, 22, 200, 80, 107,\n\t\t207, 171, 106, 212, 168, 154, 97, 68, 77, 167, 151, 115, 63,\n\t\t81, 47, 217, 80, 7, 85, 225, 196, 85, 83, 27, 21, 215, 66,\n\t\t48, 190, 104, 245, 80, 14, 248, 68, 211, 82, 104, 77, 161,\n\t\t80, 185, 228, 112, 174, 210, 205, 101, 116, 14, 65, 30, 50,\n\t\t198, 202, 32, 15, 73, 62, 30, 55, 96, 176, 92, 235, 111, 20,\n\t\t190, 248, 38, 219, 81, 117, 185, 180, 207, 115, 127, 86, 211,\n\t\t3, 241, 15, 53, 205, 184, 69, 119, 195, 7, 80, 112, 160, 33,\n\t\t202, 52, 213, 127, 36, 113, 139, 52, 200, 243, 108, 49, 134,\n\t\t128, 208, 30, 59, 112, 56, 118, 104, 68, 153, 95, 41, 98,\n\t\t31, 61, 154, 43, 206, 133, 158, 161, 101, 207, 219, 130, 170,\n\t\t92, 54, 170, 242, 135, 170, 26, 61, 104, 164, 35, 181, 121,\n\t\t157, 163, 60, 151, 132, 128, 66, 89, 239, 167, 6, 103, 74,\n\t\t96, 104, 243, 170, 26, 192, 179, 10, 84, 45, 50, 50, 71, 41,\n\t\t109, 66, 131, 104, 26, 149, 162, 163, 129, 110, 103, 72, 210,\n\t\t131, 158, 158, 128, 135, 150, 96, 61, 157, 193, 76, 89, 132,\n\t\t52, 56, 187, 31, 152, 165, 91, 99, 178, 157, 113, 80, 50,\n\t\t244, 170, 120, 127, 97, 0, 253, 132, 117, 20, 176, 61, 51,\n\t\t160, 144, 102, 44, 241, 188, 23, 122, 150, 220, 156, 180,\n\t\t151, 147, 44, 19, 56, 214, 26, 109, 173, 104, 97, 193, 173,\n\t\t49, 230, 204, 150, 153, 239, 234, 66, 170, 106, 180, 93, 246,\n\t\t68, 107, 73, 124, 156, 177, 1, 153, 19, 22, 50, 155, 22, 7,\n\t\t190, 78, 54, 9, 143, 151, 153, 22, 188, 124, 80, 63, 171,\n\t\t241, 243, 98, 29, 29, 56, 59, 23, 223, 123, 166, 126, 250,\n\t\t84, 67, 23, 201, 243, 14, 100, 158, 91, 127, 162, 215, 15,\n\t\t66, 70, 247, 87, 144, 147, 94, 149, 34, 231, 235, 108, 43,\n\t\t146, 63, 120, 124, 197, 239, 15, 57, 47, 138, 36, 19, 254,\n\t\t21, 26, 155, 42, 75, 145, 252, 94, 242, 215, 89, 62, 164,\n\t\t254, 114, 228, 42, 192, 3, 27, 54, 18, 211, 152, 75, 190,\n\t\t150, 47, 202, 67, 154, 172, 35, 201, 11, 186, 102, 6, 165,\n\t\t190, 150, 138, 115, 1, 101, 182, 62, 205, 85, 44, 140, 250,\n\t\t128, 159, 17, 186, 177, 82, 151, 100, 60, 200, 148, 212, 5,\n\t\t52, 38, 200, 66, 208, 121, 25, 145, 43, 35, 196, 209, 181,\n\t\t115, 99, 247, 12, 106, 71, 58, 39, 22, 62, 215, 160, 196,\n\t\t167, 188, 166, 9, 203, 96, 242, 223, 240, 251, 161, 1, 8,\n\t\t134, 16, 224, 202, 204, 33, 213, 173, 52, 174, 228, 190, 172,\n\t\t170, 254, 166, 127, 230, 240, 170, 101, 181, 51, 91, 72, 112,\n\t\t21, 1, 35, 6, 209, 96, 228, 78, 34, 152, 166, 114, 198, 167,\n\t\t96, 176, 0, 172, 225, 130, 47, 84, 130, 171, 162, 23, 99,\n\t\t176, 155, 109, 206, 9, 63, 214, 77, 255, 213, 69, 176, 186,\n\t\t167, 255, 80, 208, 162, 243, 181, 243, 6, 50, 62, 212, 33,\n\t\t91, 133, 70, 77, 113, 174, 85, 153, 26, 193, 20, 236, 228,\n\t\t28, 224, 248, 159, 204, 168, 230, 208, 191, 47, 120, 25, 103,\n\t\t126, 201, 41, 96, 36, 255, 23, 218, 110, 15, 255, 84, 83,\n\t\t37, 214, 170, 223, 156, 167, 96, 237, 224, 159, 208, 83, 228,\n\t\t159, 31, 127, 107, 75, 252, 209, 172, 166, 232, 106, 224,\n\t\t123, 77, 209, 184, 73, 206, 249, 93, 146, 149, 133, 25, 126,\n\t\t167, 236, 191, 47, 101, 170, 107, 122, 200, 249, 43, 80, 26,\n\t\t249, 39, 48, 149, 25, 210, 113, 5, 243, 144, 169, 63, 93,\n\t\t5, 18, 229, 193, 199, 33, 195, 234, 111, 85, 241, 224, 175,\n\t\t240, 247, 147, 176, 170, 220, 45, 165, 115, 42, 89, 13, 64,\n\t\t240, 137, 2, 65, 40, 135, 212, 198, 8, 62, 14, 225, 32, 140,\n\t\t182, 86, 9, 127, 37, 181, 177, 193, 121, 111, 79, 58, 24,\n\t\t134, 34, 33, 119, 186, 129, 121, 216, 212, 244, 49, 89, 154,\n\t\t206, 217, 253, 140, 121, 48, 11, 85, 191, 255, 26, 178, 49,\n\t\t86, 63, 75, 213, 99, 245, 248, 105, 88, 85, 115, 226, 63,\n\t\t121, 140, 17, 191, 227, 66, 87, 246, 49, 56, 2, 197, 177,\n\t\t125, 35, 170, 236, 39, 186, 236, 255, 10, 199, 60, 248, 223,\n\t\t103, 25, 124, 245, 227, 121, 253, 22, 107, 107, 112, 52, 180,\n\t\t113, 70, 170, 121, 207, 83, 179, 99, 33, 237, 151, 41, 204,\n\t\t129, 57, 1, 85, 117, 44, 213, 62, 244, 97, 64, 75, 149, 147,\n\t\t117, 103, 220, 23, 158, 247, 147, 206, 46, 20, 93, 147, 44,\n\t\t194, 130, 142, 102, 68, 191, 52, 94, 106, 24, 17, 212, 28,\n\t\t71, 76, 36, 153, 216, 103, 2, 11, 51, 83, 245, 206, 218, 57,\n\t\t148, 106, 196, 79, 66, 235, 3, 7, 41, 238, 106, 125, 76, 72,\n\t\t173, 192, 89, 3, 208, 155, 103, 127, 31, 240, 248, 232, 233,\n\t\t29, 7, 15, 164, 140, 186, 168, 229, 119, 91, 243, 145, 122,\n\t\t16, 16, 154, 195, 5, 133, 3, 135, 207, 186, 140, 210, 81,\n\t\t219, 143, 157, 119, 235, 165, 57, 65, 111, 220, 78, 170, 74,\n\t\t77, 148, 99, 66, 132, 223, 54, 54, 112, 124, 140, 180, 221,\n\t\t80, 245, 136, 128, 114, 239, 37, 230, 116, 160, 95, 82, 47,\n\t\t193, 0, 82, 91, 183, 10, 39, 231, 165, 170, 62, 172, 108,\n\t\t237, 43, 90, 141, 202, 31, 17, 216, 105, 53, 169, 105, 111,\n\t\t227, 118, 76, 196, 155, 100, 123, 38, 197, 12, 67, 128, 115,\n\t\t199, 145, 73, 27, 146, 39, 75, 37, 11, 170, 121, 243, 71,\n\t\t106, 58, 146, 177, 66, 234, 72, 39, 45, 21, 107, 42, 124,\n\t\t155, 99, 153, 140, 224, 245, 173, 121, 21, 158, 55, 99, 140,\n\t\t37, 13, 160, 9, 226, 163, 199, 237, 71, 247, 195, 211, 201,\n\t\t220, 71, 143, 220, 111, 26, 158, 90, 96, 212, 77, 253, 219,\n\t\t100, 193, 10, 89, 36, 13, 24, 253, 172, 176, 33, 24, 36, 145,\n\t\t126, 165, 149, 46, 1, 116, 14, 206, 54, 147, 6, 84, 109, 221,\n\t\t227, 57, 212, 62, 70, 19, 4, 192, 219, 71, 54, 214, 165, 199,\n\t\t152, 224, 48, 192, 45, 192, 215, 181, 64, 79, 35, 134, 210,\n\t\t168, 144, 110, 250, 228, 175, 132, 150, 12, 25, 43, 64, 232,\n\t\t134, 157, 93, 69, 237, 114, 51, 63, 203, 115, 168, 25, 141,\n\t\t92, 233, 194, 129, 119, 213, 147, 66, 247, 163, 99, 201, 204,\n\t\t178, 17, 99, 209, 18, 57, 228, 14, 13, 80, 128, 187, 174,\n\t\t152, 242, 192, 74, 37, 129, 13, 111, 22, 186, 103, 163, 194,\n\t\t243, 70, 37, 189, 101, 163, 185, 162, 219, 119, 64, 158, 51,\n\t\t203, 75, 108, 201, 41, 110, 4, 140, 152, 197, 193, 22, 84,\n\t\t224, 229, 50, 190, 188, 253, 30, 124, 53, 242, 184, 207, 7,\n\t\t143, 230, 139, 29, 219, 50, 148, 137, 20, 12, 191, 185, 231,\n\t\t141, 118, 158, 215, 25, 78, 221, 108, 255, 100, 131, 119,\n\t\t44, 136, 150, 119, 14, 185, 247, 239, 166, 106, 250, 225,\n\t\t57, 164, 145, 231, 237, 201, 233, 150, 225, 3, 195, 41, 195,\n\t\t107, 134, 55, 12, 199, 236, 142, 4, 247, 97, 85, 225, 56,\n\t\t184, 15, 217, 169, 38, 36, 136, 13, 15, 246, 197, 11, 149,\n\t\t190, 113, 223, 117, 6, 30, 86, 85, 16, 18, 133, 6, 193, 148,\n\t\t41, 13, 230, 33, 81, 63, 79, 66, 26, 43, 230, 248, 206, 49,\n\t\t38, 11, 14, 97, 51, 29, 227, 177, 226, 156, 61, 79, 77, 75,\n\t\t85, 225, 91, 118, 96, 51, 82, 85, 187, 233, 33, 59, 96, 48,\n\t\t130, 234, 206, 132, 231, 141, 199, 183, 158, 23, 131, 212,\n\t\t121, 90, 7, 60, 100, 193, 115, 122, 160, 183, 225, 66, 251,\n\t\t184, 116, 204, 155, 84, 117, 238, 200, 228, 255, 165, 145,\n\t\t81, 56, 157, 191, 37, 127, 126, 20, 255, 225, 122, 155, 97,\n\t\t194, 32, 116, 239, 227, 255, 162, 231, 106, 106, 110, 67,\n\t\t66, 245, 108, 117, 92, 122, 240, 237, 132, 37, 68, 171, 120,\n\t\t110, 255, 39, 103, 108, 230, 121, 183, 215, 249, 83, 54, 171,\n\t\t235, 1, 154, 219, 158, 99, 0, 27, 12, 92, 90, 1, 115, 147,\n\t\t79, 11, 46, 53, 35, 84, 4, 189, 145, 185, 28, 4, 42, 133,\n\t\t57, 60, 231, 241, 149, 174, 64, 179, 248, 141, 195, 74, 112,\n\t\t31, 46, 21, 211, 232, 39, 86, 150, 155, 47, 177, 96, 1, 167,\n\t\t156, 34, 68, 101, 72, 221, 182, 122, 254, 1, 184, 111, 142,\n\t\t181, 116, 13, 11, 120, 235, 250, 146, 49, 16, 170, 46, 152,\n\t\t19, 240, 32, 103, 223, 99, 78, 179, 32, 10, 73, 200, 70, 88,\n\t\t40, 225, 29, 222, 106, 50, 68, 79, 85, 101, 51, 42, 212, 215,\n\t\t68, 49, 133, 122, 102, 252, 147, 200, 164, 95, 118, 181, 141,\n\t\t154, 122, 6, 33, 53, 62, 244, 229, 185, 105, 84, 123, 152,\n\t\t163, 38, 163, 59, 2, 133, 211, 26, 243, 198, 136, 229, 86,\n\t\t65, 144, 208, 32, 84, 8, 148, 159, 27, 140, 225, 140, 69,\n\t\t65, 25, 106, 14, 165, 84, 195, 145, 234, 39, 35, 221, 193,\n\t\t208, 132, 102, 45, 33, 6, 86, 134, 230, 10, 135, 170, 234,\n\t\t51, 42, 8, 133, 68, 120, 29, 9, 13, 211, 117, 77, 232, 46,\n\t\t42, 250, 99, 236, 211, 206, 158, 70, 67, 58, 98, 122, 77,\n\t\t168, 149, 210, 47, 212, 194, 251, 28, 16, 61, 175, 23, 75,\n\t\t87, 192, 1, 67, 22, 33, 120, 174, 100, 173, 170, 82, 208,\n\t\t212, 82, 58, 174, 40, 157, 106, 54, 141, 196, 246, 66, 147,\n\t\t255, 48, 140, 35, 112, 8, 151, 160, 23, 202, 3, 236, 210,\n\t\t179, 46, 246, 136, 131, 219, 97, 216, 63, 139, 56, 59, 129,\n\t\t13, 212, 118, 41, 167, 80, 81, 223, 102, 240, 126, 159, 250,\n\t\t234, 131, 106, 191, 255, 77, 167, 27, 106, 0, 218, 170, 46,\n\t\t208, 107, 99, 158, 25, 28, 21, 54, 195, 6, 130, 93, 107, 168,\n\t\t232, 171, 81, 251, 86, 94, 164, 85, 163, 214, 132, 202, 40,\n\t\t239, 184, 141, 187, 150, 186, 198, 9, 31, 156, 149, 204, 179,\n\t\t218, 146, 187, 206, 25, 182, 38, 240, 192, 55, 200, 105, 18,\n\t\t215, 52, 207, 178, 65, 55, 116, 206, 24, 219, 213, 20, 252,\n\t\t105, 46, 125, 63, 76, 163, 181, 146, 249, 140, 238, 218, 243,\n\t\t240, 232, 160, 154, 124, 5, 78, 56, 85, 251, 140, 21, 159,\n\t\t57, 26, 41, 148, 0, 202, 106, 62, 221, 229, 124, 83, 85, 255,\n\t\t230, 83, 25, 221, 130, 193, 26, 120, 65, 195, 25, 134, 127,\n\t\t224, 120, 52, 39, 212, 158, 105, 192, 251, 140, 80, 115, 222,\n\t\t53, 200, 150, 191, 215, 68, 204, 177, 76, 83, 189, 224, 83,\n\t\t235, 63, 84, 33, 125, 64, 229, 124, 178, 103, 126, 53, 181,\n\t\t79, 195, 60, 187, 107, 24, 230, 190, 53, 21, 192, 160, 168,\n\t\t49, 25, 111, 107, 229, 251, 131, 124, 232, 84, 249, 167, 52,\n\t\t0, 201, 6, 183, 170, 136, 155, 79, 135, 220, 88, 117, 31,\n\t\t6, 122, 59, 106, 200, 195, 20, 90, 135, 51, 224, 29, 143,\n\t\t98, 158, 15, 141, 237, 159, 102, 195, 53, 115, 74, 106, 10,\n\t\t19, 56, 148, 249, 135, 129, 204, 218, 4, 239, 255, 112, 153,\n\t\t28, 67, 62, 11, 52, 78, 146, 172, 41, 248, 133, 156, 181,\n\t\t113, 86, 213, 165, 54, 61, 15, 169, 26, 218, 250, 61, 15,\n\t\t107, 201, 1, 75, 214, 23, 82, 128, 11, 6, 183, 101, 91, 166,\n\t\t175, 23, 180, 145, 6, 118, 14, 14, 179, 147, 20, 204, 66,\n\t\t64, 113, 189, 207, 142, 250, 51, 144, 147, 185, 202, 195,\n\t\t127, 239, 231, 104, 165, 159, 64, 220, 204, 150, 98, 44, 125,\n\t\t1, 57, 239, 184, 56, 175, 205, 113, 172, 91, 136, 27, 185,\n\t\t16, 99, 246, 132, 240, 190, 89, 2, 175, 9, 205, 226, 248,\n\t\t125, 197, 231, 31, 40, 158, 158, 13, 165, 227, 51, 203, 154,\n\t\t190, 46, 38, 19, 197, 193, 44, 108, 53, 121, 167, 154, 237,\n\t\t159, 174, 102, 60, 206, 111, 228, 112, 45, 117, 77, 26, 248,\n\t\t22, 114, 199, 28, 104, 255, 189, 241, 252, 62, 229, 81, 156,\n\t\t100, 254, 104, 166, 177, 200, 109, 118, 175, 158, 55, 9, 68,\n\t\t132, 161, 135, 168, 40, 142, 89, 30, 171, 231, 100, 31, 109,\n\t\t33, 76, 12, 105, 185, 42, 25, 178, 13, 199, 146, 180, 213,\n\t\t21, 229, 237, 62, 145, 42, 127, 206, 11, 46, 207, 243, 199,\n\t\t58, 191, 25, 218, 213, 29, 199, 228, 84, 223, 113, 39, 142,\n\t\t136, 181, 112, 42, 218, 30, 119, 216, 41, 144, 223, 239, 184,\n\t\t226, 138, 20, 236, 190, 227, 34, 249, 163, 239, 28, 99, 24,\n\t\t64, 215, 73, 148, 125, 107, 149, 1, 201, 6, 175, 27, 123,\n\t\t144, 229, 204, 95, 55, 10, 214, 69, 201, 56, 45, 20, 207,\n\t\t147, 170, 198, 173, 218, 204, 242, 41, 228, 36, 60, 111, 132,\n\t\t19, 246, 74, 251, 62, 148, 4, 98, 35, 120, 30, 46, 89, 105,\n\t\t42, 73, 130, 89, 104, 37, 220, 170, 42, 9, 45, 140, 42, 150,\n\t\t5, 33, 33, 84, 176, 209, 156, 226, 132, 253, 209, 212, 160,\n\t\t246, 23, 75, 172, 49, 56, 205, 116, 246, 147, 81, 111, 83,\n\t\t136, 215, 3, 149, 58, 12, 216, 21, 24, 40, 180, 141, 54, 50,\n\t\t181, 94, 137, 232, 42, 17, 87, 118, 26, 137, 234, 240, 47,\n\t\t65, 20, 58, 125, 78, 131, 40, 212, 35, 81, 79, 56, 129, 113,\n\t\t124, 176, 23, 17, 53, 103, 47, 126, 114, 169, 245, 100, 131,\n\t\t71, 194, 184, 240, 55, 51, 92, 154, 239, 126, 185, 108, 117,\n\t\t102, 196, 255, 22, 115, 90, 144, 102, 238, 157, 240, 67, 15,\n\t\t220, 226, 127, 141, 31, 103, 180, 227, 113, 131, 208, 66,\n\t\t222, 136, 133, 28, 143, 73, 62, 134, 240, 21, 250, 48, 160,\n\t\t53, 47, 106, 106, 218, 115, 220, 241, 246, 146, 211, 56, 201,\n\t\t105, 162, 216, 8, 126, 47, 21, 135, 93, 85, 57, 141, 152,\n\t\t240, 60, 87, 233, 202, 24, 203, 104, 201, 222, 180, 167, 102,\n\t\t82, 147, 161, 86, 178, 55, 60, 110, 115, 226, 27, 228, 161,\n\t\t21, 1, 165, 115, 250, 28, 53, 106, 104, 83, 162, 229, 90,\n\t\t222, 167, 3, 80, 226, 80, 9, 144, 90, 156, 183, 49, 208, 136,\n\t\t231, 113, 83, 75, 115, 202, 220, 85, 118, 95, 238, 31, 28,\n\t\t68, 72, 45, 178, 73, 35, 178, 209, 53, 219, 4, 178, 39, 181,\n\t\t201, 174, 212, 70, 19, 207, 75, 222, 99, 212, 78, 116, 163,\n\t\t85, 37, 23, 214, 253, 6, 167, 108, 29, 100, 90, 218, 118,\n\t\t133, 84, 198, 88, 105, 231, 41, 14, 158, 132, 76, 9, 227,\n\t\t176, 77, 131, 44, 100, 49, 133, 180, 243, 1, 182, 252, 95,\n\t\t179, 222, 183, 29, 187, 233, 86, 56, 235, 76, 117, 163, 37,\n\t\t227, 231, 254, 8, 16, 216, 44, 72, 66, 147, 113, 128, 159,\n\t\t240, 185, 162, 91, 77, 139, 247, 252, 28, 61, 207, 0, 194,\n\t\t76, 221, 249, 77, 2, 225, 22, 180, 84, 17, 228, 33, 21, 206,\n\t\t97, 67, 83, 207, 145, 187, 106, 41, 91, 151, 18, 159, 130,\n\t\t144, 150, 108, 70, 139, 118, 11, 164, 204, 196, 247, 106,\n\t\t194, 190, 224, 140, 113, 35, 62, 41, 20, 37, 112, 6, 245,\n\t\t84, 21, 142, 236, 73, 16, 77, 193, 120, 66, 189, 148, 196,\n\t\t141, 167, 210, 116, 225, 185, 211, 5, 71, 204, 202, 61, 111,\n\t\t164, 132, 60, 207, 195, 57, 123, 206, 113, 78, 96, 237, 71,\n\t\t137, 78, 75, 84, 154, 202, 79, 58, 6, 242, 6, 243, 246, 160,\n\t\t58, 164, 7, 245, 103, 199, 34, 59, 150, 45, 203, 170, 234,\n\t\t158, 99, 89, 85, 232, 49, 162, 101, 107, 2, 18, 148, 161,\n\t\t95, 130, 196, 120, 199, 70, 188, 170, 70, 153, 231, 201, 229,\n\t\t214, 63, 114, 188, 165, 49, 229, 80, 61, 125, 96, 98, 153,\n\t\t84, 21, 206, 150, 220, 223, 85, 85, 78, 150, 65, 232, 71,\n\t\t254, 29, 120, 118, 120, 158, 192, 119, 244, 65, 231, 204,\n\t\t201, 41, 101, 71, 142, 31, 232, 129, 208, 28, 167, 84, 77,\n\t\t172, 250, 176, 102, 105, 23, 16, 214, 74, 32, 221, 176, 52,\n\t\t88, 195, 140, 62, 4, 135, 96, 29, 42, 153, 244, 206, 60, 109,\n\t\t8, 169, 155, 99, 175, 164, 170, 116, 68, 188, 68, 53, 16,\n\t\t132, 116, 221, 152, 207, 116, 235, 123, 208, 245, 165, 122,\n\t\t17, 238, 130, 181, 170, 104, 145, 0, 123, 165, 109, 15, 83,\n\t\t90, 144, 250, 3, 197, 113, 202, 146, 229, 247, 56, 163, 27,\n\t\t226, 199, 42, 233, 233, 100, 14, 1, 214, 82, 213, 195, 72,\n\t\t253, 168, 238, 233, 237, 255, 0, 3, 102, 140, 69, 203, 7,\n\t\t123, 250, 183, 163, 182, 126, 226, 63, 16, 154, 44, 77, 15,\n\t\t34, 250, 64, 11, 226, 91, 31, 171, 136, 62, 116, 92, 18, 222,\n\t\t116, 145, 50, 5, 242, 218, 194, 100, 196, 242, 169, 61, 234,\n\t\t10, 224, 124, 65, 209, 12, 5, 186, 81, 85, 57, 159, 20, 5,\n\t\t166, 5, 139, 150, 115, 127, 70, 215, 195, 254, 164, 58, 204,\n\t\t66, 77, 75, 170, 196, 155, 205, 133, 76, 223, 99, 73, 181,\n\t\t160, 108, 50, 198, 44, 112, 184, 0, 103, 159, 143, 34, 5,\n\t\t187, 85, 37, 70, 140, 165, 106, 83, 96, 201, 4, 105, 33, 109,\n\t\t109, 178, 251, 27, 243, 208, 198, 169, 210, 170, 132, 164,\n\t\t14, 23, 197, 77, 182, 40, 76, 132, 165, 238, 88, 11, 51, 86,\n\t\t18, 179, 96, 207, 241, 45, 199, 49, 161, 130, 132, 45, 222,\n\t\t19, 13, 83, 227, 100, 55, 243, 172, 207, 94, 85, 170, 161,\n\t\t174, 132, 4, 247, 161, 158, 233, 132, 141, 199, 197, 34, 185,\n\t\t201, 22, 137, 110, 185, 211, 110, 98, 219, 237, 4, 192, 121,\n\t\t206, 113, 241, 116, 238, 121, 186, 27, 240, 168, 232, 105,\n\t\t163, 217, 46, 38, 115, 98, 98, 28, 90, 250, 142, 174, 244,\n\t\t225, 86, 49, 121, 162, 171, 92, 162, 199, 200, 71, 168, 118,\n\t\t226, 39, 89, 143, 56, 65, 139, 155, 196, 243, 222, 180, 85,\n\t\t22, 52, 81, 24, 225, 38, 211, 169, 141, 178, 188, 73, 5, 114,\n\t\t78, 234, 216, 50, 204, 150, 51, 128, 30, 182, 0, 246, 178,\n\t\t235, 236, 213, 168, 95, 156, 216, 53, 79, 103, 52, 99, 125,\n\t\t20, 67, 215, 186, 204, 134, 238, 232, 29, 125, 96, 51, 186,\n\t\t103, 104, 134, 232, 45, 203, 60, 47, 8, 233, 189, 218, 89,\n\t\t71, 150, 210, 55, 10, 213, 36, 158, 215, 154, 100, 99, 133,\n\t\t114, 214, 132, 190, 100, 207, 199, 76, 75, 57, 199, 229, 220,\n\t\t239, 132, 144, 170, 170, 233, 156, 126, 203, 222, 216, 61,\n\t\t169, 214, 101, 173, 67, 120, 105, 19, 165, 168, 170, 214,\n\t\t100, 177, 31, 49, 246, 173, 231, 153, 152, 50, 27, 246, 38,\n\t\t216, 135, 100, 177, 31, 143, 53, 106, 240, 188, 13, 57, 237,\n\t\t216, 140, 70, 85, 181, 57, 179, 105, 58, 84, 21, 142, 241,\n\t\t70, 49, 85, 163, 173, 61, 178, 191, 99, 60, 216, 25, 43, 244,\n\t\t59, 188, 81, 37, 15, 180, 36, 228, 100, 56, 202, 13, 49, 122,\n\t\t100, 213, 155, 231, 236, 37, 169, 133, 231, 97, 188, 97, 163,\n\t\t59, 213, 154, 231, 61, 76, 38, 52, 243, 188, 91, 155, 29,\n\t\t112, 214, 195, 152, 237, 169, 240, 60, 213, 223, 7, 232, 82,\n\t\t211, 156, 212, 205, 221, 225, 91, 122, 175, 166, 214, 49,\n\t\t180, 127, 120, 58, 51, 26, 228, 253, 100, 66, 110, 131, 125,\n\t\t88, 85, 247, 240, 23, 171, 31, 246, 181, 54, 17, 41, 8, 89,\n\t\t220, 43, 148, 115, 79, 106, 139, 71, 10, 122, 79, 232, 218,\n\t\t243, 20, 250, 190, 111, 214, 209, 243, 30, 154, 0, 69, 10,\n\t\t68, 59, 182, 19, 184, 104, 109, 19, 244, 216, 104, 202, 142,\n\t\t132, 222, 214, 13, 225, 92, 150, 28, 103, 196, 207, 108, 190,\n\t\t146, 101, 218, 84, 45, 73, 135, 101, 1, 99, 124, 1, 33, 139,\n\t\t222, 57, 146, 192, 40, 35, 39, 125, 44, 8, 174, 172, 180,\n\t\t133, 60, 107, 104, 165, 181, 147, 111, 56, 150, 129, 8, 97,\n\t\t115, 46, 27, 243, 10, 63, 177, 79, 11, 156, 177, 119, 152,\n\t\t211, 151, 138, 24, 230, 132, 144, 198, 128, 128, 113, 199,\n\t\t220, 189, 104, 77, 11, 122, 1, 9, 90, 141, 105, 19, 211, 134,\n\t\t13, 5, 177, 244, 60, 78, 15, 108, 148, 120, 94, 132, 57, 139,\n\t\t155, 102, 20, 21, 2, 162, 199, 4, 120, 134, 207, 65, 15, 101,\n\t\t16, 61, 96, 161, 130, 29, 20, 219, 117, 112, 14, 127, 27,\n\t\t223, 221, 167, 79, 60, 15, 125, 241, 66, 225, 1, 156, 178,\n\t\t34, 152, 133, 196, 72, 255, 127, 235, 249, 86, 110, 213, 6,\n\t\t106, 176, 80, 1, 7, 245, 128, 133, 180, 199, 183, 100, 184,\n\t\t113, 1, 193, 169, 197, 105, 174, 252, 162, 245, 163, 146,\n\t\t216, 195, 10, 210, 6, 179, 137, 225, 32, 187, 163, 246, 163,\n\t\t45, 66, 41, 172, 120, 162, 217, 125, 59, 182, 58, 99, 191,\n\t\t76, 221, 168, 24, 214, 167, 120, 57, 243, 139, 238, 90, 102,\n\t\t147, 9, 116, 83, 141, 48, 11, 169, 51, 14, 136, 233, 234,\n\t\t32, 83, 53, 95, 27, 166, 71, 98, 232, 110, 194, 54, 239, 27,\n\t\t144, 113, 101, 46, 44, 233, 27, 118, 105, 54, 190, 219, 133,\n\t\t37, 198, 25, 157, 19, 58, 194, 156, 217, 147, 4, 64, 151,\n\t\t69, 235, 35, 111, 183, 145, 130, 15, 42, 236, 201, 145, 129,\n\t\t40, 28, 87, 85, 137, 57, 61, 16, 130, 19, 48, 191, 162, 130,\n\t\t142, 100, 85, 189, 223, 175, 26, 194, 142, 185, 70, 70, 236,\n\t\t222, 58, 234, 34, 98, 77, 140, 140, 177, 47, 184, 58, 221,\n\t\t211, 115, 67, 37, 54, 26, 109, 104, 140, 9, 237, 26, 128,\n\t\t94, 240, 241, 154, 191, 199, 156, 246, 61, 94, 203, 3, 118,\n\t\t248, 13, 115, 63, 100, 142, 255, 23, 109, 123, 143, 40, 250,\n\t\t139, 214, 96, 181, 202, 195, 158, 234, 74, 229, 87, 82, 116,\n\t\t85, 165, 70, 145, 85, 129, 234, 117, 199, 147, 237, 78, 86,\n\t\t199, 36, 150, 59, 68, 251, 42, 24, 45, 223, 54, 93, 232, 26,\n\t\t175, 81, 212, 156, 10, 119, 69, 161, 229, 220, 127, 162, 29,\n\t\t247, 90, 243, 183, 51, 11, 239, 193, 113, 129, 186, 238, 26,\n\t\t156, 59, 156, 145, 116, 77, 251, 97, 51, 32, 8, 109, 136,\n\t\t62, 48, 104, 157, 181, 25, 181, 41, 57, 56, 72, 207, 251,\n\t\t176, 174, 176, 157, 8, 235, 97, 9, 86, 86, 151, 150, 204,\n\t\t196, 223, 235, 245, 169, 181, 208, 55, 221, 250, 252, 172,\n\t\t67, 32, 85, 45, 220, 185, 215, 234, 227, 64, 134, 203, 222,\n\t\t84, 251, 16, 25, 110, 216, 126, 48, 119, 236, 7, 115, 215,\n\t\t126, 144, 208, 140, 215, 152, 147, 197, 17, 246, 59, 123,\n\t\t9, 33, 38, 15, 57, 123, 217, 90, 129, 153, 164, 0, 249, 72,\n\t\t135, 172, 60, 180, 218, 169, 163, 107, 247, 103, 95, 216,\n\t\t75, 39, 149, 30, 117, 112, 228, 151, 214, 186, 142, 30, 181,\n\t\t67, 238, 139, 108, 205, 94, 234, 71, 122, 108, 109, 65, 95,\n\t\t54, 143, 170, 93, 48, 109, 108, 76, 105, 95, 154, 4, 48, 224,\n\t\t252, 246, 66, 88, 27, 32, 118, 141, 237, 165, 48, 248, 79,\n\t\t113, 103, 58, 218, 231, 223, 70, 174, 185, 189, 213, 12, 56,\n\t\t41, 134, 107, 57, 130, 35, 83, 129, 69, 115, 38, 171, 9, 30,\n\t\t111, 40, 116, 94, 211, 119, 23, 227, 152, 5, 225, 128, 206,\n\t\t190, 239, 189, 207, 71, 160, 217, 22, 182, 102, 199, 20, 239,\n\t\t153, 157, 106, 64, 187, 29, 44, 223, 170, 139, 94, 184, 42,\n\t\t227, 63, 109, 54, 212, 139, 120, 167, 250, 251, 154, 93, 191,\n\t\t189, 193, 65, 52, 249, 35, 12, 222, 174, 174, 87, 179, 167,\n\t\t62, 4, 52, 147, 171, 124, 37, 86, 155, 240, 49, 9, 186, 239,\n\t\t171, 235, 229, 83, 188, 244, 111, 86, 215, 171, 249, 211,\n\t\t138, 60, 186, 78, 218, 94, 125, 221, 51, 210, 217, 98, 73,\n\t\t150, 199, 233, 54, 231, 135, 142, 93, 145, 18, 83, 12, 80,\n\t\t143, 108, 116, 75, 154, 83, 48, 213, 21, 53, 241, 91, 218,\n\t\t59, 84, 186, 43, 50, 153, 34, 103, 65, 97, 228, 123, 139,\n\t\t182, 97, 37, 149, 52, 101, 234, 56, 26, 129, 197, 70, 155,\n\t\t180, 239, 23, 224, 77, 6, 179, 208, 57, 79, 195, 156, 33,\n\t\t95, 100, 18, 131, 89, 21, 65, 132, 106, 197, 147, 165, 113,\n\t\t96, 45, 227, 14, 12, 56, 134, 158, 105, 55, 88, 47, 45, 131,\n\t\t60, 244, 131, 208, 239, 102, 193, 156, 154, 17, 201, 161,\n\t\t17, 117, 33, 12, 34, 38, 59, 17, 126, 241, 9, 108, 51, 221,\n\t\t114, 86, 164, 205, 59, 177, 139, 19, 120, 91, 56, 22, 172,\n\t\t173, 249, 86, 163, 64, 238, 133, 114, 86, 251, 197, 204, 92,\n\t\t211, 128, 222, 17, 146, 205, 22, 242, 38, 7, 189, 101, 178,\n\t\t193, 237, 110, 199, 73, 32, 67, 10, 241, 172, 91, 229, 150,\n\t\t81, 229, 10, 214, 107, 32, 8, 9, 117, 107, 210, 243, 130,\n\t\t57, 133, 74, 28, 31, 203, 167, 243, 165, 139, 151, 176, 32,\n\t\t190, 104, 204, 248, 6, 230, 172, 215, 206, 215, 38, 136, 53,\n\t\t240, 146, 163, 57, 129, 56, 184, 131, 71, 93, 239, 45, 56,\n\t\t35, 16, 134, 118, 232, 244, 109, 100, 114, 158, 27, 210, 121,\n\t\t222, 179, 134, 135, 83, 19, 234, 55, 189, 48, 43, 83, 215,\n\t\t218, 124, 253, 55, 250, 187, 14, 31, 182, 42, 30, 227, 155,\n\t\t96, 117, 92, 253, 28, 142, 159, 146, 224, 237, 211, 240, 113,\n\t\t245, 23, 39, 130, 216, 2, 55, 81, 206, 7, 1, 56, 161, 25,\n\t\t208, 151, 206, 178, 54, 220, 244, 111, 3, 125, 52, 236, 110,\n\t\t194, 208, 141, 22, 158, 103, 161, 231, 161, 167, 250, 185,\n\t\t13, 176, 21, 182, 33, 50, 159, 178, 143, 151, 129, 150, 246,\n\t\t193, 94, 33, 244, 127, 111, 66, 40, 85, 213, 40, 9, 84, 102,\n\t\t107, 13, 61, 2, 3, 1, 29, 81, 125, 137, 101, 85, 9, 98, 22,\n\t\t154, 248, 103, 209, 174, 101, 243, 13, 220, 75, 108, 32, 38,\n\t\t201, 228, 85, 34, 10, 25, 137, 53, 220, 160, 176, 84, 155,\n\t\t212, 87, 164, 167, 13, 123, 78, 143, 83, 8, 98, 175, 248,\n\t\t13, 40, 73, 165, 53, 32, 131, 157, 57, 16, 30, 42, 135, 85,\n\t\t165, 175, 245, 18, 37, 218, 124, 170, 31, 225, 89, 146, 246,\n\t\t18, 0, 73, 182, 208, 86, 144, 132, 100, 105, 30, 176, 84,\n\t\t111, 122, 40, 96, 169, 152, 80, 72, 89, 56, 243, 111, 153,\n\t\t220, 140, 229, 125, 39, 240, 36, 120, 18, 106, 179, 87, 85,\n\t\t221, 44, 100, 25, 117, 54, 46, 155, 19, 234, 84, 112, 229,\n\t\t248, 149, 53, 5, 120, 183, 128, 222, 126, 254, 86, 129, 92,\n\t\t75, 54, 167, 57, 143, 226, 135, 165, 249, 5, 72, 196, 71,\n\t\t133, 27, 155, 72, 193, 88, 215, 67, 106, 226, 156, 96, 41,\n\t\t88, 163, 191, 177, 35, 206, 53, 152, 126, 167, 129, 84, 51,\n\t\t225, 69, 117, 200, 249, 29, 94, 250, 63, 9, 153, 164, 21,\n\t\t56, 19, 95, 211, 239, 217, 9, 172, 206, 114, 46, 224, 48,\n\t\t78, 27, 137, 20, 112, 69, 3, 191, 135, 3, 53, 85, 12, 174,\n\t\t105, 232, 160, 178, 93, 84, 12, 156, 40, 31, 109, 191, 92,\n\t\t121, 214, 221, 175, 195, 40, 234, 14, 34, 27, 205, 22, 252,\n\t\t70, 44, 248, 25, 154, 2, 120, 145, 1, 15, 93, 52, 85, 211,\n\t\t117, 154, 21, 220, 141, 20, 223, 145, 186, 103, 6, 139, 90,\n\t\t156, 154, 41, 214, 36, 98, 231, 8, 85, 243, 26, 176, 11, 155,\n\t\t221, 15, 48, 212, 104, 208, 91, 124, 24, 228, 225, 66, 120,\n\t\t158, 80, 140, 195, 162, 231, 9, 5, 1, 180, 26, 139, 128, 249,\n\t\t220, 243, 112, 180, 140, 180, 141, 137, 49, 33, 237, 59, 168,\n\t\t95, 32, 63, 16, 161, 153, 156, 178, 230, 160, 183, 123, 174,\n\t\t213, 15, 181, 223, 28, 54, 116, 208, 110, 70, 252, 12, 12,\n\t\t5, 98, 126, 63, 104, 49, 177, 28, 136, 20, 109, 40, 242, 17,\n\t\t60, 161, 52, 192, 146, 38, 250, 51, 96, 87, 139, 26, 20, 222,\n\t\t241, 13, 78, 0, 20, 100, 30, 58, 193, 118, 244, 130, 231,\n\t\t133, 18, 157, 21, 20, 61, 75, 83, 108, 81, 169, 63, 153, 215,\n\t\t52, 138, 227, 222, 242, 93, 160, 110, 238, 200, 58, 183, 39,\n\t\t108, 185, 196, 132, 2, 216, 17, 162, 112, 126, 20, 199, 159,\n\t\t245, 111, 93, 112, 43, 141, 226, 24, 219, 128, 220, 178, 27,\n\t\t207, 223, 239, 189, 91, 96, 229, 132, 212, 110, 100, 226,\n\t\t207, 117, 87, 251, 172, 237, 188, 203, 218, 182, 39, 226,\n\t\t38, 190, 242, 105, 192, 32, 228, 206, 216, 97, 156, 251, 150,\n\t\t90, 151, 47, 23, 39, 26, 175, 35, 179, 159, 135, 134, 248,\n\t\t45, 230, 212, 61, 80, 36, 77, 110, 216, 245, 151, 12, 185,\n\t\t251, 197, 32, 204, 183, 232, 27, 116, 152, 204, 106, 248,\n\t\t29, 123, 90, 82, 107, 28, 113, 41, 111, 223, 120, 216, 212,\n\t\t253, 44, 77, 47, 14, 97, 160, 250, 247, 101, 191, 208, 194,\n\t\t135, 199, 236, 182, 3, 131, 86, 53, 125, 184, 216, 153, 57,\n\t\t180, 42, 90, 232, 151, 193, 117, 121, 135, 177, 187, 200,\n\t\t85, 117, 170, 137, 35, 46, 195, 157, 29, 13, 30, 30, 44, 239,\n\t\t74, 215, 42, 179, 69, 212, 3, 153, 149, 92, 130, 146, 77,\n\t\t14, 113, 123, 150, 218, 211, 143, 139, 38, 64, 146, 143, 33,\n\t\t131, 228, 251, 67, 26, 73, 142, 192, 246, 145, 53, 217, 170,\n\t\t138, 147, 134, 84, 7, 33, 229, 110, 204, 75, 240, 200, 232,\n\t\t108, 88, 8, 51, 206, 195, 150, 187, 113, 206, 63, 156, 251,\n\t\t69, 100, 203, 34, 34, 152, 223, 142, 121, 251, 39, 4, 14,\n\t\t249, 4, 161, 185, 231, 157, 225, 165, 28, 148, 96, 141, 96,\n\t\t144, 131, 222, 223, 193, 237, 79, 21, 174, 253, 30, 76, 109,\n\t\t59, 136, 34, 33, 244, 187, 86, 31, 149, 76, 115, 126, 199,\n\t\t115, 208, 31, 208, 30, 126, 73, 136, 229, 236, 190, 96, 215,\n\t\t193, 219, 142, 176, 53, 190, 222, 182, 91, 255, 199, 118,\n\t\t211, 158, 26, 165, 176, 217, 223, 198, 249, 20, 127, 1, 26,\n\t\t70, 119, 154, 4, 57, 201, 64, 132, 76, 209, 45, 42, 235, 227,\n\t\t244, 121, 148, 166, 183, 209, 250, 93, 209, 113, 118, 227,\n\t\t108, 0, 37, 171, 22, 253, 246, 230, 137, 154, 26, 15, 202,\n\t\t230, 188, 84, 211, 53, 56, 172, 157, 204, 105, 193, 122, 164,\n\t\t53, 97, 9, 248, 60, 139, 53, 56, 178, 179, 209, 108, 97, 207,\n\t\t64, 23, 170, 4, 57, 9, 22, 89, 5, 167, 17, 215, 199, 227,\n\t\t242, 198, 210, 21, 2, 118, 220, 89, 80, 54, 231, 70, 193,\n\t\t44, 164, 66, 115, 95, 124, 90, 200, 236, 240, 157, 120, 21,\n\t\t165, 5, 7, 115, 20, 91, 12, 12, 78, 72, 205, 167, 123, 190,\n\t\t207, 242, 7, 48, 243, 24, 41, 246, 136, 141, 230, 52, 241,\n\t\t60, 156, 49, 177, 12, 66, 31, 238, 63, 72, 217, 169, 67, 9,\n\t\t26, 72, 206, 204, 185, 178, 236, 212, 61, 153, 211, 200, 210,\n\t\t198, 214, 126, 244, 74, 137, 26, 39, 179, 22, 130, 118, 225,\n\t\t113, 139, 115, 181, 19, 52, 112, 120, 30, 92, 157, 5, 55,\n\t\t140, 100, 214, 128, 201, 207, 61, 47, 111, 228, 196, 150,\n\t\t77, 96, 183, 56, 39, 158, 39, 113, 78, 106, 82, 227, 246,\n\t\t50, 27, 106, 58, 86, 88, 120, 170, 169, 14, 82, 56, 48, 14,\n\t\t211, 171, 166, 48, 29, 224, 89, 172, 170, 68, 176, 227, 212,\n\t\t92, 205, 128, 165, 190, 27, 224, 233, 100, 78, 50, 171, 185,\n\t\t21, 116, 78, 168, 184, 97, 165, 231, 149, 147, 73, 109, 219,\n\t\t238, 243, 99, 13, 153, 111, 107, 227, 52, 3, 54, 164, 97,\n\t\t25, 102, 103, 230, 143, 157, 153, 7, 211, 33, 83, 189, 209,\n\t\t150, 13, 228, 76, 88, 164, 79, 55, 192, 75, 179, 147, 123,\n\t\t96, 73, 71, 89, 77, 211, 204, 165, 207, 253, 138, 68, 85,\n\t\t201, 170, 194, 186, 62, 219, 188, 42, 50, 88, 221, 40, 1,\n\t\t75, 63, 254, 115, 34, 59, 215, 130, 180, 8, 59, 1, 216, 11,\n\t\t56, 181, 39, 20, 198, 244, 103, 105, 109, 111, 137, 47, 194,\n\t\t22, 160, 168, 172, 42, 103, 73, 85, 221, 3, 125, 77, 167,\n\t\t182, 209, 254, 29, 71, 78, 185, 193, 254, 230, 117, 131, 55,\n\t\t82, 199, 244, 232, 51, 119, 205, 218, 179, 201, 111, 112,\n\t\t227, 29, 236, 164, 254, 108, 237, 37, 12, 162, 133, 24, 155,\n\t\t220, 243, 182, 24, 130, 9, 228, 217, 62, 41, 56, 89, 38, 246,\n\t\t174, 151, 105, 156, 9, 14, 210, 90, 148, 164, 74, 32, 111,\n\t\t242, 202, 29, 23, 109, 70, 192, 210, 190, 52, 27, 93, 139,\n\t\t35, 52, 224, 246, 212, 38, 39, 78, 240, 78, 113, 150, 139,\n\t\t212, 117, 139, 167, 94, 240, 13, 207, 59, 83, 208, 156, 176,\n\t\t6, 1, 18, 153, 76, 54, 15, 72, 17, 210, 108, 155, 243, 162,\n\t\t64, 212, 65, 138, 24, 105, 164, 129, 200, 133, 212, 39, 33,\n\t\t13, 80, 206, 139, 44, 189, 227, 136, 34, 53, 186, 94, 5, 10,\n\t\t221, 93, 13, 215, 210, 253, 52, 163, 182, 162, 24, 233, 90,\n\t\t33, 138, 45, 69, 106, 170, 254, 219, 74, 231, 212, 212, 163,\n\t\t42, 13, 105, 206, 208, 129, 139, 24, 24, 133, 132, 157, 10,\n\t\t25, 201, 33, 152, 202, 107, 26, 165, 199, 232, 161, 24, 218,\n\t\t142, 122, 9, 91, 48, 211, 75, 121, 6, 118, 8, 214, 7, 13,\n\t\t97, 130, 4, 22, 219, 28, 251, 43, 78, 39, 57, 116, 122, 161,\n\t\t101, 176, 166, 198, 150, 184, 217, 165, 236, 196, 167, 188,\n\t\t128, 103, 53, 221, 223, 98, 30, 228, 193, 95, 67, 32, 17,\n\t\t250, 105, 145, 5, 121, 48, 15, 67, 124, 214, 98, 2, 129, 12,\n\t\t135, 174, 11, 91, 0, 152, 58, 0, 221, 60, 130, 60, 161, 33,\n\t\t7, 43, 6, 89, 65, 147, 133, 242, 169, 89, 79, 51, 69, 234,\n\t\t29, 46, 64, 244, 101, 144, 7, 179, 112, 140, 212, 174, 69,\n\t\t161, 110, 44, 129, 203, 113, 218, 38, 107, 82, 19, 202, 117,\n\t\t112, 89, 210, 182, 86, 83, 53, 119, 14, 44, 187, 78, 124,\n\t\t179, 118, 23, 71, 184, 177, 164, 50, 211, 215, 27, 110, 169,\n\t\t175, 206, 114, 46, 238, 162, 233, 249, 197, 95, 233, 66, 31,\n\t\t105, 222, 100, 196, 196, 172, 96, 185, 153, 162, 146, 22,\n\t\t224, 195, 32, 218, 206, 57, 183, 96, 42, 49, 193, 68, 16,\n\t\t120, 179, 211, 214, 251, 87, 5, 79, 55, 19, 152, 147, 82,\n\t\t53, 130, 200, 34, 133, 216, 155, 127, 246, 242, 66, 32, 243,\n\t\t106, 248, 116, 139, 83, 178, 76, 150, 169, 197, 22, 17, 206,\n\t\t168, 160, 159, 209, 132, 152, 199, 111, 20, 103, 230, 227,\n\t\t108, 60, 166, 239, 207, 212, 164, 10, 179, 120, 106, 77, 136,\n\t\t42, 155, 143, 24, 251, 12, 168, 189, 65, 44, 5, 83, 168, 133,\n\t\t226, 164, 170, 132, 93, 90, 200, 173, 167, 162, 174, 233,\n\t\t154, 37, 203, 212, 133, 100, 133, 13, 83, 236, 224, 170, 22,\n\t\t134, 167, 252, 126, 205, 193, 197, 224, 243, 44, 123, 167,\n\t\t36, 240, 225, 47, 152, 211, 245, 180, 80, 188, 225, 155, 60,\n\t\t90, 43, 105, 120, 60, 127, 202, 20, 81, 84, 29, 252, 102,\n\t\t160, 131, 194, 192, 25, 208, 4, 211, 181, 133, 92, 174, 49,\n\t\t241, 177, 211, 202, 150, 75, 96, 57, 117, 243, 216, 109, 132,\n\t\t93, 200, 134, 181, 87, 52, 151, 111, 146, 61, 207, 74, 137,\n\t\t215, 170, 238, 247, 108, 79, 133, 157, 131, 89, 24, 124, 28,\n\t\t130, 180, 27, 225, 25, 229, 116, 139, 19, 178, 76, 252, 207,\n\t\t40, 239, 76, 57, 112, 114, 253, 156, 146, 44, 165, 255, 25,\n\t\t124, 124, 114, 246, 49, 39, 203, 220, 255, 134, 144, 238,\n\t\t254, 48, 143, 67, 136, 199, 92, 89, 181, 108, 136, 3, 167,\n\t\t137, 118, 5, 203, 206, 153, 104, 49, 192, 26, 69, 76, 6, 79,\n\t\t20, 127, 43, 131, 79, 194, 69, 18, 72, 133, 72, 88, 164, 122,\n\t\t69, 75, 207, 131, 135, 142, 149, 63, 43, 107, 42, 130, 143,\n\t\t39, 60, 12, 158, 132, 54, 172, 151, 77, 249, 216, 77, 153,\n\t\t65, 14, 197, 93, 80, 59, 101, 234, 133, 80, 93, 169, 84, 9,\n\t\t138, 148, 19, 154, 5, 50, 152, 133, 33, 27, 192, 205, 240,\n\t\t165, 131, 87, 20, 199, 108, 212, 121, 254, 48, 127, 208, 45,\n\t\t196, 162, 134, 159, 168, 9, 77, 154, 137, 205, 136, 86, 139,\n\t\t194, 94, 202, 104, 70, 104, 86, 211, 227, 142, 15, 57, 115,\n\t\t156, 93, 5, 40, 152, 164, 57, 179, 215, 226, 209, 132, 153,\n\t\t11, 44, 157, 190, 68, 14, 204, 97, 66, 203, 129, 48, 38, 45,\n\t\t6, 83, 44, 149, 146, 244, 52, 226, 84, 79, 253, 38, 159, 206,\n\t\t151, 103, 109, 248, 130, 78, 38, 178, 170, 34, 119, 243, 130,\n\t\t12, 87, 215, 10, 205, 201, 27, 166, 196, 55, 197, 210, 68,\n\t\t26, 131, 151, 138, 173, 183, 185, 105, 100, 246, 21, 29, 73,\n\t\t66, 27, 58, 10, 113, 122, 129, 144, 98, 82, 85, 91, 156, 4,\n\t\t34, 244, 60, 245, 87, 179, 52, 205, 17, 113, 164, 169, 30,\n\t\t113, 140, 106, 126, 134, 220, 84, 53, 211, 212, 238, 220,\n\t\t185, 213, 2, 181, 17, 9, 31, 177, 235, 183, 248, 229, 93,\n\t\t148, 86, 95, 8, 201, 115, 17, 165, 213, 143, 145, 216, 242,\n\t\t234, 71, 53, 115, 92, 172, 121, 165, 195, 181, 84, 96, 218,\n\t\t252, 211, 143, 95, 16, 192, 193, 143, 174, 23, 151, 208, 11,\n\t\t115, 40, 137, 32, 39, 144, 189, 139, 76, 7, 93, 49, 143, 211,\n\t\t99, 148, 11, 207, 147, 158, 247, 200, 68, 16, 154, 138, 104,\n\t\t175, 177, 177, 155, 197, 222, 121, 220, 180, 116, 213, 180,\n\t\t228, 95, 161, 177, 156, 238, 121, 81, 68, 91, 78, 165, 70,\n\t\t53, 160, 170, 56, 106, 197, 242, 75, 155, 147, 185, 164, 189,\n\t\t131, 107, 92, 180, 10, 100, 70, 214, 164, 134, 105, 121, 213,\n\t\t129, 29, 173, 28, 134, 90, 135, 128, 232, 149, 94, 6, 78,\n\t\t2, 195, 161, 132, 29, 116, 213, 239, 15, 230, 164, 17, 108,\n\t\t90, 158, 178, 185, 64, 113, 78, 33, 251, 207, 81, 34, 125,\n\t\t243, 220, 217, 16, 88, 31, 211, 47, 39, 19, 83, 49, 228, 60,\n\t\t78, 77, 5, 164, 170, 112, 243, 194, 70, 51, 58, 154, 141,\n\t\t192, 83, 188, 147, 255, 233, 172, 170, 94, 245, 128, 54, 56,\n\t\t134, 160, 11, 180, 19, 8, 163, 98, 122, 112, 45, 23, 240,\n\t\t135, 194, 13, 38, 98, 125, 47, 160, 243, 139, 239, 190, 49,\n\t\t126, 152, 95, 103, 81, 204, 99, 68, 255, 80, 200, 125, 48,\n\t\t175, 142, 229, 252, 71, 211, 24, 38, 53, 90, 103, 251, 67,\n\t\t202, 37, 24, 123, 228, 58, 249, 181, 218, 5, 85, 5, 217, 141,\n\t\t200, 234, 126, 241, 188, 81, 222, 143, 105, 55, 141, 179,\n\t\t215, 235, 60, 75, 211, 101, 103, 173, 77, 59, 16, 236, 247,\n\t\t60, 22, 245, 133, 174, 159, 103, 180, 253, 214, 187, 231,\n\t\t215, 190, 185, 153, 185, 67, 205, 242, 67, 3, 6, 230, 140,\n\t\t137, 133, 115, 163, 4, 83, 50, 184, 80, 156, 16, 27, 205,\n\t\t224, 112, 178, 188, 74, 196, 149, 32, 191, 66, 141, 37, 21,\n\t\t65, 25, 210, 209, 12, 106, 109, 124, 219, 59, 151, 121, 170,\n\t\t146, 64, 186, 224, 46, 211, 209, 12, 140, 210, 113, 180, 196,\n\t\t237, 193, 183, 189, 83, 128, 248, 56, 101, 146, 158, 31, 215,\n\t\t53, 146, 95, 171, 34, 23, 16, 178, 209, 28, 57, 53, 54, 241,\n\t\t18, 60, 137, 169, 160, 209, 50, 247, 115, 123, 111, 100, 25,\n\t\t210, 146, 218, 79, 142, 29, 124, 178, 228, 126, 186, 180,\n\t\t253, 32, 126, 177, 212, 65, 89, 148, 36, 150, 213, 244, 39,\n\t\t118, 253, 118, 178, 47, 38, 215, 244, 31, 236, 122, 162, 109,\n\t\t4, 136, 171, 145, 250, 165, 171, 55, 159, 202, 236, 167, 195,\n\t\t161, 177, 46, 104, 178, 253, 224, 202, 151, 141, 5, 217, 79,\n\t\t20, 237, 139, 137, 19, 82, 231, 31, 244, 23, 109, 146, 240,\n\t\t207, 161, 93, 220, 61, 222, 214, 17, 151, 220, 247, 209, 216,\n\t\t57, 252, 110, 187, 248, 119, 64, 30, 73, 49, 53, 215, 166,\n\t\t106, 219, 10, 245, 52, 254, 251, 180, 76, 226, 241, 184, 134,\n\t\t95, 54, 167, 127, 119, 239, 117, 134, 240, 71, 3, 148, 142,\n\t\t7, 110, 109, 189, 32, 43, 167, 154, 254, 83, 223, 254, 231,\n\t\t70, 117, 236, 150, 96, 210, 55, 26, 126, 29, 30, 165, 245,\n\t\t144, 167, 110, 62, 106, 204, 148, 37, 93, 103, 98, 147, 108,\n\t\t203, 28, 84, 32, 112, 72, 78, 168, 172, 105, 193, 229, 153,\n\t\t154, 248, 206, 220, 81, 9, 21, 193, 8, 108, 212, 226, 190,\n\t\t110, 79, 146, 36, 248, 1, 75, 18, 50, 177, 232, 94, 59, 170,\n\t\t191, 228, 164, 123, 73, 102, 210, 191, 161, 218, 89, 119,\n\t\t13, 237, 16, 208, 164, 211, 176, 223, 27, 185, 146, 199, 58,\n\t\t9, 186, 7, 53, 141, 214, 107, 94, 20, 151, 148, 222, 109,\n\t\t245, 85, 37, 7, 52, 180, 210, 243, 154, 44, 98, 217, 28, 204,\n\t\t168, 30, 250, 250, 156, 166, 208, 175, 84, 16, 218, 30, 115,\n\t\t46, 133, 47, 201, 185, 218, 172, 115, 142, 215, 95, 236, 206,\n\t\t214, 6, 233, 168, 121, 149, 228, 36, 24, 150, 189, 43, 131,\n\t\t21, 51, 11, 122, 232, 31, 84, 95, 152, 26, 47, 73, 196, 85,\n\t\t190, 12, 100, 232, 203, 142, 206, 150, 156, 91, 224, 154,\n\t\t107, 83, 242, 64, 6, 34, 12, 107, 236, 206, 132, 162, 33,\n\t\t206, 61, 183, 24, 226, 167, 190, 15, 236, 12, 71, 104, 234,\n\t\t236, 125, 85, 162, 204, 46, 42, 94, 68, 50, 250, 243, 48,\n\t\t223, 142, 221, 243, 70, 253, 254, 72, 197, 98, 169, 226, 95,\n\t\t129, 235, 226, 223, 233, 151, 230, 247, 95, 198, 120, 225,\n\t\t164, 45, 23, 30, 175, 234, 106, 21, 216, 231, 144, 60, 186,\n\t\t166, 156, 179, 235, 224, 217, 228, 95, 161, 139, 106, 164,\n\t\t227, 228, 132, 100, 94, 2, 21, 2, 169, 49, 74, 11, 142, 52,\n\t\t13, 197, 72, 97, 81, 29, 113, 9, 194, 74, 113, 198, 216, 152,\n\t\t143, 17, 90, 142, 185, 255, 175, 198, 190, 226, 203, 215,\n\t\t223, 125, 171, 77, 0, 0, 76, 29, 84, 37, 248, 153, 253, 93,\n\t\t11, 92, 253, 59, 88, 192, 57, 129, 161, 56, 146, 209, 68,\n\t\t113, 59, 22, 145, 113, 78, 209, 228, 145, 135, 250, 209, 6,\n\t\t250, 160, 11, 183, 4, 119, 12, 3, 115, 66, 180, 8, 41, 152,\n\t\t228, 88, 56, 98, 100, 253, 165, 3, 198, 154, 208, 8, 214,\n\t\t141, 58, 40, 28, 21, 216, 208, 98, 154, 108, 95, 78, 205,\n\t\t71, 204, 73, 85, 125, 229, 188, 213, 52, 238, 150, 233, 236,\n\t\t195, 47, 167, 122, 159, 218, 62, 152, 173, 243, 162, 95, 132,\n\t\t156, 190, 52, 60, 5, 214, 129, 26, 127, 125, 95, 173, 95,\n\t\t245, 107, 253, 245, 98, 181, 95, 117, 170, 5, 70, 200, 177,\n\t\t9, 56, 107, 164, 217, 198, 58, 164, 190, 62, 34, 166, 145,\n\t\t18, 164, 51, 199, 38, 181, 179, 196, 218, 194, 69, 182, 199,\n\t\t59, 64, 191, 191, 4, 132, 146, 105, 123, 174, 204, 57, 67,\n\t\t31, 125, 165, 191, 80, 100, 38, 81, 173, 100, 129, 212, 34,\n\t\t138, 198, 219, 203, 217, 208, 17, 72, 10, 170, 33, 156, 51,\n\t\t245, 162, 217, 234, 54, 134, 153, 6, 37, 125, 32, 245, 3,\n\t\t206, 141, 238, 243, 19, 37, 13, 115, 237, 222, 6, 151, 63,\n\t\t47, 190, 2, 96, 232, 183, 75, 71, 179, 198, 66, 209, 222,\n\t\t170, 116, 174, 105, 209, 40, 18, 4, 94, 135, 193, 214, 224,\n\t\t37, 205, 29, 254, 196, 255, 181, 127, 53, 191, 61, 41, 72,\n\t\t54, 56, 115, 48, 174, 236, 162, 65, 44, 236, 108, 129, 29,\n\t\t129, 133, 204, 69, 47, 15, 140, 198, 205, 160, 33, 250, 131,\n\t\t61, 83, 11, 79, 106, 19, 116, 149, 158, 139, 128, 250, 139,\n\t\t154, 134, 97, 232, 108, 121, 149, 225, 150, 12, 128, 53, 211,\n\t\t160, 161, 204, 130, 216, 239, 37, 47, 249, 48, 209, 85, 3,\n\t\t108, 237, 168, 24, 120, 246, 109, 238, 17, 25, 35, 40, 132,\n\t\t104, 206, 190, 106, 200, 18, 21, 158, 7, 97, 155, 207, 174,\n\t\t143, 87, 185, 156, 253, 224, 218, 220, 8, 66, 252, 188, 61,\n\t\t121, 130, 155, 240, 106, 26, 243, 243, 78, 145, 19, 220, 95,\n\t\t167, 218, 215, 161, 126, 217, 113, 10, 185, 116, 227, 121,\n\t\t115, 37, 21, 220, 78, 213, 120, 63, 179, 227, 244, 87, 200,\n\t\t166, 132, 196, 2, 155, 32, 60, 206, 244, 28, 167, 166, 53,\n\t\t189, 1, 23, 40, 17, 141, 10, 157, 153, 171, 101, 156, 10,\n\t\t243, 201, 4, 124, 38, 177, 234, 8, 51, 214, 174, 54, 96, 175,\n\t\t91, 150, 80, 67, 148, 50, 56, 209, 163, 205, 137, 64, 4, 14,\n\t\t150, 163, 220, 243, 96, 207, 194, 113, 17, 232, 42, 176, 194,\n\t\t19, 109, 95, 135, 182, 61, 147, 102, 234, 33, 7, 90, 52, 232,\n\t\t70, 47, 130, 0, 212, 215, 76, 181, 160, 39, 125, 24, 117,\n\t\t89, 177, 222, 87, 244, 56, 216, 40, 144, 205, 50, 139, 80,\n\t\t95, 106, 212, 199, 78, 67, 171, 164, 251, 249, 196, 158, 76,\n\t\t15, 24, 7, 97, 201, 56, 229, 76, 77, 32, 85, 248, 227, 12,\n\t\t226, 111, 196, 210, 174, 173, 69, 112, 205, 61, 23, 13, 67,\n\t\t230, 15, 2, 123, 23, 50, 154, 237, 181, 232, 66, 129, 217,\n\t\t9, 212, 172, 33, 215, 22, 242, 118, 229, 20, 31, 5, 6, 56,\n\t\t45, 104, 180, 91, 103, 0, 54, 223, 191, 253, 6, 43, 89, 167,\n\t\t60, 202, 127, 120, 111, 61, 6, 38, 53, 196, 211, 32, 28, 212,\n\t\t8, 186, 108, 221, 156, 38, 93, 221, 147, 38, 15, 52, 234,\n\t\t24, 109, 149, 46, 236, 79, 38, 121, 85, 37, 29, 137, 60, 163,\n\t\t129, 98, 156, 22, 239, 89, 56, 189, 16, 224, 206, 99, 246,\n\t\t99, 27, 202, 10, 11, 131, 17, 178, 32, 10, 41, 239, 64, 171,\n\t\t190, 101, 5, 32, 82, 145, 130, 241, 152, 154, 55, 0, 194,\n\t\t178, 21, 224, 74, 236, 106, 236, 100, 163, 54, 202, 21, 11,\n\t\t53, 158, 132, 75, 197, 105, 197, 143, 87, 211, 138, 172, 226,\n\t\t49, 94, 250, 1, 127, 25, 194, 135, 85, 60, 174, 200, 181,\n\t\t185, 36, 142, 38, 156, 245, 47, 224, 133, 219, 123, 9, 171,\n\t\t8, 70, 227, 156, 143, 17, 1, 249, 239, 127, 194, 199, 205,\n\t\t165, 188, 25, 103, 1, 122, 147, 29, 16, 69, 63, 38, 219, 157,\n\t\t68, 20, 125, 150, 73, 153, 237, 17, 69, 95, 243, 141, 68,\n\t\t33, 141, 134, 47, 112, 69, 34, 19, 192, 192, 97, 206, 244,\n\t\t197, 91, 133, 124, 72, 225, 82, 52, 184, 168, 187, 50, 62,\n\t\t29, 157, 84, 5, 101, 141, 89, 94, 47, 202, 51, 85, 66, 87,\n\t\t83, 235, 113, 186, 134, 93, 141, 76, 73, 68, 106, 90, 246,\n\t\t239, 194, 117, 238, 50, 163, 17, 59, 213, 139, 230, 146, 124,\n\t\t73, 162, 32, 11, 109, 243, 65, 22, 210, 246, 145, 73, 125,\n\t\t157, 142, 104, 110, 77, 5, 68, 76, 220, 210, 78, 110, 85,\n\t\t81, 43, 66, 181, 220, 108, 193, 135, 58, 241, 100, 70, 75,\n\t\t150, 159, 199, 10, 189, 202, 167, 235, 50, 199, 110, 120,\n\t\t247, 230, 147, 29, 171, 164, 96, 205, 80, 48, 5, 18, 169,\n\t\t226, 85, 5, 132, 121, 197, 144, 65, 223, 170, 31, 200, 112,\n\t\t137, 144, 143, 14, 247, 136, 208, 53, 235, 125, 170, 42, 245,\n\t\t97, 196, 88, 234, 121, 227, 130, 120, 94, 194, 181, 169, 110,\n\t\t211, 132, 142, 117, 177, 246, 188, 117, 240, 113, 8, 110,\n\t\t197, 167, 226, 154, 61, 161, 41, 75, 171, 74, 165, 209, 53,\n\t\t27, 23, 85, 53, 119, 192, 252, 168, 39, 3, 122, 184, 30, 167,\n\t\t132, 226, 249, 36, 35, 143, 241, 124, 130, 51, 213, 215, 235,\n\t\t162, 170, 166, 159, 16, 114, 195, 102, 158, 135, 35, 54, 35,\n\t\t116, 125, 205, 178, 197, 250, 49, 123, 66, 207, 10, 155, 83,\n\t\t116, 203, 228, 40, 58, 186, 102, 227, 117, 85, 169, 102, 103,\n\t\t138, 158, 5, 243, 112, 185, 30, 99, 245, 59, 158, 147, 199,\n\t\t34, 120, 18, 250, 99, 245, 151, 230, 106, 43, 77, 75, 145,\n\t\t72, 150, 210, 124, 90, 200, 40, 151, 108, 77, 243, 41, 23,\n\t\t49, 3, 191, 93, 80, 62, 164, 28, 128, 193, 174, 212, 186,\n\t\t189, 105, 18, 2, 114, 116, 193, 46, 119, 220, 132, 104, 194,\n\t\t82, 238, 138, 204, 58, 238, 234, 244, 54, 139, 31, 58, 183,\n\t\t125, 136, 158, 235, 23, 196, 22, 48, 64, 43, 29, 160, 165,\n\t\t239, 187, 132, 178, 1, 118, 77, 118, 209, 109, 154, 173, 223,\n\t\t33, 66, 161, 11, 44, 233, 92, 224, 185, 49, 78, 198, 141,\n\t\t139, 138, 98, 36, 181, 221, 196, 140, 70, 109, 68, 136, 236,\n\t\t38, 90, 100, 227, 49, 193, 57, 4, 213, 54, 187, 18, 98, 181,\n\t\t228, 221, 189, 72, 229, 18, 55, 61, 80, 171, 144, 40, 104,\n\t\t215, 248, 44, 119, 134, 80, 85, 218, 149, 60, 200, 20, 40,\n\t\t246, 42, 97, 112, 17, 27, 210, 234, 196, 222, 86, 143, 56,\n\t\t88, 190, 232, 122, 245, 241, 63, 241, 117, 139, 35, 167, 69,\n\t\t157, 66, 53, 59, 236, 52, 172, 181, 92, 176, 39, 217, 172,\n\t\t25, 151, 62, 12, 74, 116, 188, 112, 53, 194, 94, 127, 212,\n\t\t151, 142, 233, 164, 67, 192, 139, 93, 118, 28, 216, 126, 27,\n\t\t67, 172, 128, 229, 220, 37, 241, 208, 217, 186, 201, 67, 106,\n\t\t42, 179, 237, 54, 29, 34, 100, 232, 54, 203, 82, 30, 185,\n\t\t71, 159, 75, 195, 168, 171, 134, 177, 49, 26, 87, 13, 216,\n\t\t231, 62, 245, 140, 76, 43, 203, 163, 254, 181, 5, 237, 171,\n\t\t46, 91, 55, 36, 34, 230, 90, 16, 183, 33, 144, 42, 8, 138,\n\t\t4, 151, 152, 31, 56, 187, 238, 186, 4, 117, 141, 210, 200,\n\t\t117, 66, 119, 170, 248, 163, 234, 237, 62, 139, 203, 148,\n\t\t63, 170, 86, 215, 120, 233, 255, 22, 221, 69, 21, 95, 239,\n\t\t35, 82, 172, 243, 228, 32, 175, 19, 186, 229, 236, 164, 227,\n\t\t170, 249, 193, 156, 34, 123, 65, 208, 190, 76, 101, 114, 72,\n\t\t57, 251, 200, 62, 125, 244, 20, 81, 212, 94, 13, 20, 82, 185,\n\t\t227, 81, 172, 11, 129, 191, 166, 254, 110, 30, 67, 186, 206,\n\t\t82, 63, 120, 210, 124, 188, 89, 103, 233, 54, 207, 202, 131,\n\t\t206, 214, 188, 57, 37, 100, 222, 41, 32, 213, 198, 52, 149,\n\t\t194, 163, 155, 53, 246, 131, 143, 251, 89, 111, 100, 110,\n\t\t178, 231, 79, 7, 202, 252, 106, 252, 1, 253, 96, 70, 17, 162,\n\t\t8, 133, 245, 98, 203, 167, 217, 65, 66, 79, 152, 126, 78,\n\t\t50, 65, 183, 124, 10, 165, 85, 146, 220, 100, 153, 84, 15,\n\t\t182, 199, 240, 28, 233, 147, 145, 45, 28, 126, 71, 49, 148,\n\t\t216, 193, 107, 220, 9, 35, 229, 88, 112, 89, 148, 120, 249,\n\t\t150, 187, 243, 107, 212, 46, 220, 129, 168, 195, 146, 16,\n\t\t127, 184, 166, 254, 133, 66, 203, 129, 59, 134, 108, 13, 65,\n\t\t72, 123, 234, 59, 237, 183, 182, 108, 108, 60, 57, 40, 155,\n\t\t157, 152, 48, 15, 125, 100, 197, 102, 128, 102, 13, 142, 18,\n\t\t55, 249, 66, 140, 199, 68, 111, 121, 30, 136, 144, 162, 109,\n\t\t154, 221, 70, 233, 203, 187, 40, 69, 224, 8, 172, 241, 144,\n\t\t236, 127, 35, 90, 187, 188, 87, 208, 93, 121, 127, 89, 174,\n\t\t142, 227, 197, 117, 59, 157, 183, 151, 130, 209, 216, 96,\n\t\t90, 116, 195, 164, 65, 221, 150, 0, 188, 202, 163, 45, 224,\n\t\t112, 98, 3, 189, 204, 232, 174, 237, 236, 225, 102, 183, 56,\n\t\t104, 151, 2, 8, 86, 115, 8, 137, 14, 255, 152, 145, 254, 25,\n\t\t67, 70, 136, 157, 147, 152, 102, 78, 64, 152, 44, 244, 51,\n\t\t210, 220, 116, 189, 231, 90, 137, 149, 17, 114, 138, 24, 196,\n\t\t85, 232, 92, 129, 213, 247, 42, 142, 147, 59, 133, 100, 75,\n\t\t134, 15, 134, 154, 103, 164, 170, 2, 13, 159, 228, 60, 224,\n\t\t124, 193, 182, 60, 40, 195, 170, 218, 242, 169, 5, 104, 26,\n\t\t57, 238, 185, 133, 34, 172, 199, 233, 78, 238, 211, 239, 115,\n\t\t110, 172, 98, 51, 50, 46, 20, 137, 93, 131, 19, 189, 19, 193,\n\t\t37, 98, 81, 27, 208, 120, 209, 14, 48, 234, 220, 101, 143,\n\t\t35, 182, 113, 45, 140, 221, 144, 161, 12, 33, 173, 27, 48,\n\t\t145, 52, 236, 8, 223, 240, 123, 160, 139, 112, 221, 195, 166,\n\t\t87, 66, 173, 67, 115, 173, 97, 28, 28, 76, 64, 137, 28, 92,\n\t\t118, 140, 65, 98, 70, 115, 176, 109, 4, 19, 32, 27, 207, 192,\n\t\t78, 115, 202, 28, 94, 51, 235, 17, 253, 76, 201, 197, 119,\n\t\t28, 119, 167, 62, 35, 20, 105, 172, 135, 224, 132, 231, 129,\n\t\t227, 136, 80, 65, 78, 107, 167, 47, 81, 176, 86, 125, 217,\n\t\t217, 85, 180, 193, 12, 17, 105, 92, 65, 179, 70, 133, 179,\n\t\t169, 71, 61, 121, 141, 179, 252, 34, 0, 118, 58, 147, 95,\n\t\t128, 3, 201, 206, 190, 124, 224, 174, 53, 160, 10, 192, 139,\n\t\t116, 63, 219, 251, 230, 40, 106, 111, 158, 235, 231, 49, 247,\n\t\t175, 201, 129, 155, 218, 232, 78, 199, 221, 124, 158, 102,\n\t\t2, 236, 191, 213, 47, 172, 231, 104, 70, 122, 111, 13, 0,\n\t\t217, 80, 157, 180, 235, 47, 174, 214, 62, 202, 121, 244, 244,\n\t\t254, 230, 186, 121, 70, 116, 55, 21, 25, 84, 255, 92, 151,\n\t\t98, 16, 236, 243, 66, 205, 29, 95, 110, 172, 41, 228, 189,\n\t\t154, 238, 254, 85, 187, 71, 69, 247, 222, 241, 135, 107, 250,\n\t\t220, 16, 208, 125, 86, 22, 188, 58, 100, 137, 144, 60, 175,\n\t\t214, 218, 81, 119, 207, 69, 89, 197, 121, 180, 173, 226, 60,\n\t\t59, 144, 106, 157, 38, 235, 119, 215, 244, 13, 148, 9, 222,\n\t\t78, 195, 199, 68, 137, 102, 83, 60, 29, 147, 138, 56, 88,\n\t\t232, 37, 119, 175, 8, 104, 146, 191, 117, 146, 157, 91, 184,\n\t\t223, 113, 99, 114, 212, 8, 10, 157, 24, 172, 142, 250, 184,\n\t\t45, 243, 172, 23, 241, 74, 13, 53, 162, 101, 247, 212, 179,\n\t\t57, 38, 58, 157, 137, 183, 2, 180, 147, 121, 85, 9, 106, 53,\n\t\t208, 164, 61, 25, 149, 4, 234, 47, 161, 126, 25, 148, 33,\n\t\t205, 28, 150, 42, 217, 24, 255, 151, 92, 71, 141, 97, 44,\n\t\t89, 226, 132, 41, 161, 188, 169, 203, 55, 31, 60, 239, 252,\n\t\t216, 74, 168, 220, 57, 205, 155, 188, 230, 213, 233, 138,\n\t\t9, 254, 157, 144, 132, 125, 203, 155, 13, 61, 74, 26, 191,\n\t\t125, 219, 27, 80, 230, 130, 204, 145, 80, 156, 12, 29, 57,\n\t\t30, 49, 153, 102, 155, 13, 230, 96, 146, 51, 100, 37, 88,\n\t\t147, 233, 182, 76, 98, 22, 193, 15, 68, 30, 131, 247, 35,\n\t\t252, 140, 199, 96, 61, 117, 174, 231, 224, 119, 92, 72, 109,\n\t\t228, 163, 253, 19, 18, 154, 195, 129, 110, 109, 190, 177,\n\t\t147, 166, 91, 254, 233, 220, 79, 169, 19, 197, 223, 165, 78,\n\t\t54, 138, 62, 189, 179, 186, 70, 98, 226, 221, 139, 233, 14,\n\t\t174, 104, 201, 129, 151, 199, 25, 19, 196, 166, 128, 105,\n\t\t142, 117, 248, 7, 125, 221, 5, 199, 176, 123, 14, 193, 56,\n\t\t236, 64, 69, 111, 160, 20, 23, 236, 78, 119, 190, 32, 85,\n\t\t229, 188, 65, 220, 60, 28, 177, 59, 211, 164, 62, 7, 183,\n\t\t111, 29, 235, 15, 195, 12, 15, 176, 29, 71, 213, 47, 61, 109,\n\t\t50, 79, 182, 91, 158, 195, 69, 232, 250, 74, 247, 165, 253,\n\t\t164, 24, 121, 240, 153, 183, 194, 185, 99, 10, 164, 193, 163,\n\t\t86, 194, 49, 54, 10, 90, 68, 220, 19, 56, 69, 16, 187, 42,\n\t\t251, 116, 50, 33, 7, 182, 101, 184, 100, 111, 12, 245, 148,\n\t\t65, 26, 154, 32, 46, 243, 144, 238, 24, 46, 131, 39, 230,\n\t\t102, 24, 19, 76, 100, 106, 163, 137, 16, 122, 240, 60, 188,\n\t\t97, 182, 115, 16, 135, 33, 74, 131, 67, 88, 85, 167, 154,\n\t\t30, 24, 78, 150, 155, 105, 204, 83, 190, 85, 244, 236, 225,\n\t\t192, 253, 205, 244, 54, 17, 49, 28, 45, 85, 213, 129, 94,\n\t\t44, 187, 102, 173, 82, 90, 77, 128, 127, 160, 89, 158, 108,\n\t\t161, 142, 173, 62, 196, 201, 169, 89, 96, 95, 80, 181, 68,\n\t\t190, 94, 48, 106, 151, 218, 79, 168, 27, 88, 192, 135, 133,\n\t\t191, 16, 117, 192, 56, 189, 18, 170, 16, 122, 113, 136, 214,\n\t\t220, 223, 153, 72, 41, 83, 68, 106, 69, 16, 113, 204, 10,\n\t\t205, 222, 96, 243, 200, 130, 144, 52, 163, 123, 158, 149,\n\t\t66, 178, 25, 221, 40, 10, 81, 30, 60, 111, 52, 31, 49, 102,\n\t\t222, 90, 255, 255, 29, 141, 72, 85, 157, 219, 117, 120, 222,\n\t\t128, 173, 199, 129, 70, 132, 208, 141, 250, 160, 230, 89,\n\t\t253, 218, 154, 214, 132, 174, 45, 128, 91, 128, 237, 38, 48,\n\t\t61, 29, 74, 242, 94, 198, 214, 187, 33, 238, 246, 119, 60,\n\t\t166, 51, 186, 38, 190, 225, 60, 214, 112, 20, 0, 203, 161,\n\t\t55, 167, 26, 164, 146, 251, 6, 15, 145, 255, 220, 46, 109,\n\t\t207, 222, 60, 175, 179, 103, 61, 207, 221, 79, 228, 244, 159,\n\t\t1, 109, 178, 25, 2, 89, 170, 96, 185, 252, 51, 112, 75, 78,\n\t\t23, 65, 15, 22, 151, 225, 252, 253, 160, 11, 151, 50, 208,\n\t\t146, 149, 112, 49, 82, 239, 238, 153, 213, 106, 74, 208, 216,\n\t\t66, 208, 106, 53, 197, 75, 127, 250, 120, 181, 154, 86, 4,\n\t\t145, 49, 194, 234, 233, 17, 65, 112, 5, 0, 139, 187, 163,\n\t\t203, 38, 19, 178, 102, 113, 144, 133, 116, 148, 120, 222,\n\t\t118, 196, 216, 122, 106, 97, 191, 170, 32, 170, 185, 90, 88,\n\t\t72, 215, 43, 95, 122, 222, 168, 212, 32, 188, 158, 54, 16,\n\t\t76, 170, 42, 247, 188, 28, 242, 21, 205, 181, 122, 24, 61,\n\t\t126, 12, 70, 76, 85, 53, 106, 211, 21, 84, 199, 157, 224,\n\t\t69, 110, 153, 30, 212, 76, 38, 116, 99, 148, 53, 158, 103,\n\t\t159, 90, 192, 36, 139, 200, 243, 70, 113, 123, 188, 168, 120,\n\t\t215, 40, 143, 179, 163, 104, 118, 133, 77, 176, 165, 118,\n\t\t212, 193, 157, 71, 215, 96, 11, 115, 122, 104, 63, 218, 115,\n\t\t20, 216, 137, 117, 99, 214, 113, 80, 116, 185, 32, 118, 65,\n\t\t155, 99, 139, 195, 88, 129, 6, 0, 234, 104, 70, 22, 253, 19,\n\t\t252, 2, 96, 178, 201, 141, 116, 35, 87, 26, 36, 145, 2, 123,\n\t\t139, 110, 7, 76, 6, 108, 99, 155, 228, 30, 140, 149, 172,\n\t\t229, 149, 218, 7, 160, 106, 214, 76, 120, 255, 60, 3, 176,\n\t\t179, 17, 223, 32, 76, 130, 109, 13, 156, 22, 3, 141, 238,\n\t\t53, 112, 173, 207, 32, 180, 249, 106, 148, 185, 224, 242,\n\t\t46, 169, 14, 96, 221, 111, 9, 132, 200, 34, 16, 142, 33, 105,\n\t\t32, 192, 194, 67, 182, 128, 13, 241, 245, 245, 217, 192, 104,\n\t\t61, 61, 228, 252, 133, 25, 113, 85, 193, 82, 117, 210, 28,\n\t\t79, 101, 73, 200, 169, 108, 250, 103, 240, 142, 235, 202,\n\t\t44, 41, 40, 51, 173, 96, 128, 51, 86, 6, 66, 73, 6, 158, 55,\n\t\t146, 211, 164, 248, 62, 207, 14, 209, 22, 162, 246, 191, 150,\n\t\t217, 225, 192, 99, 76, 200, 73, 78, 215, 101, 158, 115, 33,\n\t\t77, 199, 178, 41, 79, 249, 222, 185, 195, 29, 71, 44, 107,\n\t\t154, 211, 55, 189, 153, 10, 191, 216, 239, 121, 156, 68, 146,\n\t\t15, 214, 44, 167, 121, 179, 49, 160, 64, 251, 170, 55, 78,\n\t\t212, 217, 56, 216, 142, 233, 187, 219, 223, 88, 68, 229, 84,\n\t\t81, 28, 22, 193, 79, 107, 97, 131, 19, 134, 113, 127, 141,\n\t\t162, 102, 179, 134, 218, 15, 85, 87, 84, 85, 145, 237, 55,\n\t\t49, 196, 219, 12, 174, 128, 203, 2, 230, 250, 170, 214, 156,\n\t\t23, 101, 42, 89, 2, 65, 16, 192, 89, 154, 11, 249, 66, 179,\n\t\t238, 24, 228, 15, 153, 29, 156, 17, 98, 66, 218, 160, 122,\n\t\t211, 67, 86, 72, 187, 88, 158, 215, 125, 239, 44, 30, 181,\n\t\t45, 129, 85, 140, 158, 205, 203, 166, 5, 10, 168, 149, 236,\n\t\t95, 48, 217, 197, 4, 52, 101, 124, 170, 239, 104, 128, 160,\n\t\t198, 158, 151, 186, 182, 3, 24, 129, 80, 224, 6, 157, 231,\n\t\t83, 29, 213, 254, 41, 155, 27, 187, 190, 84, 49, 57, 187,\n\t\t164, 88, 164, 44, 237, 248, 240, 130, 82, 207, 68, 48, 114,\n\t\t171, 181, 181, 142, 218, 80, 249, 96, 97, 154, 54, 55, 76,\n\t\t19, 173, 220, 48, 190, 155, 167, 154, 234, 0, 241, 5, 236,\n\t\t136, 70, 91, 19, 5, 9, 195, 57, 131, 240, 127, 13, 178, 179,\n\t\t215, 141, 70, 65, 18, 178, 188, 195, 35, 44, 143, 56, 209,\n\t\t209, 23, 76, 212, 129, 20, 220, 253, 76, 164, 22, 253, 201,\n\t\t220, 6, 154, 54, 36, 139, 80, 85, 147, 231, 53, 142, 144,\n\t\t139, 172, 65, 140, 165, 137, 198, 173, 160, 192, 79, 219,\n\t\t117, 200, 234, 102, 73, 83, 227, 208, 114, 35, 63, 88, 74,\n\t\t218, 112, 122, 16, 67, 28, 152, 106, 5, 39, 189, 85, 29, 54,\n\t\t204, 59, 78, 1, 215, 182, 214, 129, 148, 211, 19, 23, 229,\n\t\t158, 91, 155, 188, 190, 141, 30, 216, 202, 129, 43, 131, 195,\n\t\t246, 91, 195, 18, 181, 1, 18, 17, 165, 80, 105, 99, 50, 48,\n\t\t244, 173, 115, 222, 243, 254, 226, 103, 95, 2, 30, 246, 108,\n\t\t4, 47, 142, 207, 156, 253, 126, 96, 72, 199, 60, 145, 246,\n\t\t217, 152, 38, 130, 50, 185, 166, 155, 100, 56, 200, 67, 208,\n\t\t152, 90, 134, 75, 238, 43, 164, 111, 102, 18, 76, 141, 12,\n\t\t70, 240, 79, 105, 22, 197, 254, 73, 100, 159, 149, 183, 198,\n\t\t194, 209, 220, 51, 114, 50, 156, 254, 192, 44, 140, 24, 123,\n\t\t7, 247, 54, 192, 192, 33, 123, 103, 42, 54, 250, 158, 17,\n\t\t58, 154, 215, 180, 195, 166, 32, 248, 146, 8, 84, 211, 219,\n\t\t180, 204, 223, 215, 6, 235, 180, 161, 114, 119, 154, 80, 9,\n\t\t151, 91, 200, 74, 137, 106, 10, 91, 241, 82, 27, 200, 106,\n\t\t222, 193, 56, 66, 85, 169, 145, 0, 60, 66, 73, 207, 123, 97,\n\t\t200, 160, 81, 210, 116, 58, 0, 89, 76, 15, 26, 221, 243, 192,\n\t\t58, 188, 192, 22, 11, 81, 20, 1, 221, 190, 229, 155, 44, 231,\n\t\t165, 208, 51, 239, 162, 193, 46, 37, 183, 152, 156, 27, 116,\n\t\t168, 16, 84, 7, 200, 192, 226, 176, 147, 50, 213, 141, 130,\n\t\t30, 165, 41, 71, 234, 186, 214, 118, 255, 13, 227, 114, 102,\n\t\t225, 60, 104, 135, 174, 26, 28, 50, 79, 151, 198, 145, 224,\n\t\t188, 42, 27, 144, 115, 151, 20, 157, 48, 64, 58, 107, 107,\n\t\t111, 228, 2, 35, 149, 224, 237, 167, 209, 229, 114, 96, 151,\n\t\t217, 184, 57, 96, 25, 172, 179, 233, 132, 164, 48, 196, 231,\n\t\t123, 77, 138, 120, 204, 154, 176, 128, 77, 82, 85, 181, 230,\n\t\t101, 103, 31, 13, 109, 227, 238, 188, 45, 95, 114, 255, 91,\n\t\t219, 164, 166, 244, 118, 5, 61, 239, 99, 77, 46, 224, 205,\n\t\t49, 246, 180, 41, 45, 137, 240, 155, 85, 215, 208, 210, 225,\n\t\t28, 120, 247, 93, 103, 129, 184, 160, 60, 110, 178, 116, 222,\n\t\t205, 169, 147, 158, 2, 42, 181, 180, 8, 18, 104, 67, 52, 225,\n\t\t123, 178, 231, 175, 101, 180, 63, 48, 61, 163, 246, 181, 170,\n\t\t94, 68, 146, 79, 69, 118, 196, 38, 186, 75, 139, 28, 152,\n\t\t218, 242, 103, 72, 150, 157, 156, 104, 79, 190, 249, 76, 207,\n\t\t103, 92, 77, 213, 16, 195, 164, 211, 223, 195, 247, 232, 12,\n\t\t175, 147, 125, 9, 195, 244, 71, 115, 218, 229, 40, 252, 51,\n\t\t237, 235, 57, 104, 44, 46, 193, 193, 75, 78, 129, 149, 210,\n\t\t159, 155, 86, 224, 126, 160, 30, 223, 82, 211, 30, 219, 242,\n\t\t159, 52, 124, 62, 174, 247, 53, 125, 198, 31, 233, 182, 135,\n\t\t102, 233, 63, 233, 196, 123, 102, 249, 67, 189, 25, 42, 106,\n\t\t64, 100, 160, 183, 224, 145, 3, 241, 108, 162, 84, 126, 197,\n\t\t31, 20, 49, 186, 5, 186, 1, 81, 163, 214, 106, 187, 167, 13,\n\t\t5, 219, 69, 98, 203, 227, 55, 89, 9, 247, 119, 168, 20, 153,\n\t\t167, 166, 84, 204, 101, 148, 164, 234, 9, 22, 227, 251, 93,\n\t\t84, 64, 161, 61, 151, 145, 201, 114, 136, 182, 252, 23, 251,\n\t\t240, 79, 245, 0, 182, 107, 230, 235, 93, 194, 143, 234, 23,\n\t\t173, 119, 81, 142, 76, 123, 249, 115, 181, 243, 70, 51, 250,\n\t\t78, 103, 122, 199, 31, 108, 138, 185, 8, 169, 121, 210, 29,\n\t\t74, 19, 46, 228, 47, 237, 35, 52, 147, 109, 54, 5, 215, 169,\n\t\t250, 17, 82, 141, 134, 249, 139, 216, 121, 1, 138, 163, 58,\n\t\t182, 206, 57, 23, 191, 180, 143, 80, 66, 239, 127, 103, 252,\n\t\t50, 51, 138, 97, 253, 210, 164, 31, 119, 201, 160, 20, 103,\n\t\t249, 209, 230, 112, 209, 4, 51, 133, 252, 158, 119, 228, 246,\n\t\t194, 39, 181, 97, 245, 77, 190, 35, 133, 91, 204, 68, 44,\n\t\t219, 71, 159, 79, 155, 185, 104, 202, 187, 6, 228, 207, 123,\n\t\t117, 205, 61, 185, 156, 251, 79, 60, 185, 252, 216, 255, 171,\n\t\t39, 151, 79, 252, 153, 111, 10, 106, 40, 184, 51, 42, 84,\n\t\t5, 32, 164, 1, 11, 80, 198, 171, 29, 152, 251, 8, 158, 179,\n\t\t59, 158, 35, 10, 143, 41, 143, 238, 184, 77, 46, 37, 178,\n\t\t147, 104, 178, 155, 55, 93, 192, 188, 152, 34, 246, 19, 16,\n\t\t245, 46, 185, 233, 11, 56, 60, 100, 167, 14, 63, 32, 169,\n\t\t85, 140, 248, 210, 240, 163, 103, 51, 109, 99, 48, 66, 212,\n\t\t247, 14, 218, 133, 219, 6, 26, 97, 171, 49, 45, 49, 247, 192,\n\t\t230, 85, 229, 156, 83, 65, 108, 154, 170, 50, 83, 200, 178,\n\t\t70, 212, 162, 162, 21, 11, 135, 245, 216, 212, 148, 129, 40,\n\t\t201, 103, 198, 139, 157, 251, 187, 172, 217, 146, 233, 202,\n\t\t179, 214, 118, 16, 210, 107, 154, 137, 115, 77, 216, 165,\n\t\t236, 116, 174, 10, 108, 54, 195, 70, 181, 52, 1, 179, 218,\n\t\t115, 156, 169, 82, 154, 73, 177, 52, 61, 119, 103, 138, 30,\n\t\t49, 239, 201, 241, 90, 151, 159, 183, 146, 236, 50, 111, 102,\n\t\t104, 140, 166, 104, 236, 124, 242, 219, 79, 112, 13, 147,\n\t\t22, 127, 104, 222, 8, 169, 128, 160, 6, 143, 76, 204, 125,\n\t\t17, 16, 4, 144, 19, 141, 51, 55, 27, 136, 84, 205, 47, 4,\n\t\t251, 3, 93, 130, 244, 188, 214, 3, 190, 13, 98, 10, 1, 68,\n\t\t36, 149, 141, 45, 33, 240, 11, 2, 20, 249, 223, 154, 72, 105,\n\t\t23, 79, 24, 58, 230, 204, 84, 104, 235, 105, 99, 255, 241,\n\t\t2, 140, 60, 150, 163, 40, 231, 81, 117, 155, 87, 235, 44,\n\t\t173, 248, 254, 150, 199, 213, 46, 175, 146, 253, 182, 2, 158,\n\t\t179, 74, 19, 241, 174, 82, 72, 177, 58, 68, 121, 180, 39,\n\t\t248, 178, 93, 200, 99, 29, 131, 146, 172, 174, 159, 94, 111,\n\t\t19, 250, 90, 53, 160, 79, 68, 171, 27, 48, 180, 169, 110,\n\t\t84, 109, 215, 9, 253, 154, 179, 107, 115, 150, 183, 42, 30,\n\t\t227, 165, 31, 188, 101, 97, 197, 86, 197, 99, 123, 196, 55,\n\t\t37, 215, 9, 253, 141, 179, 235, 183, 171, 226, 241, 205, 8,\n\t\t47, 253, 85, 240, 252, 197, 179, 55, 207, 86, 65, 53, 153,\n\t\t144, 74, 37, 132, 171, 80, 61, 63, 93, 21, 143, 31, 185, 174,\n\t\t34, 191, 115, 215, 214, 80, 71, 164, 2, 209, 5, 17, 197, 81,\n\t\t159, 71, 54, 147, 110, 52, 44, 36, 115, 164, 35, 112, 78,\n\t\t109, 80, 44, 140, 192, 92, 3, 145, 96, 22, 86, 21, 247, 157,\n\t\t104, 40, 223, 117, 239, 222, 129, 77, 132, 53, 30, 188, 116,\n\t\t113, 220, 24, 93, 163, 177, 225, 34, 157, 154, 190, 239, 59,\n\t\t184, 92, 107, 3, 201, 246, 136, 184, 185, 205, 226, 19, 178,\n\t\t228, 46, 51, 218, 184, 9, 248, 150, 93, 62, 107, 213, 109,\n\t\t233, 115, 62, 168, 195, 160, 133, 142, 253, 208, 187, 113,\n\t\t82, 49, 212, 93, 69, 53, 206, 28, 43, 117, 66, 35, 166, 109,\n\t\t49, 224, 96, 60, 101, 89, 171, 180, 54, 234, 72, 171, 218,\n\t\t161, 81, 123, 34, 180, 104, 246, 72, 106, 66, 28, 206, 104,\n\t\t206, 210, 32, 9, 251, 134, 30, 157, 211, 50, 154, 80, 149,\n\t\t39, 16, 33, 169, 191, 236, 118, 170, 100, 95, 58, 157, 42,\n\t\t152, 27, 182, 170, 36, 212, 120, 17, 232, 216, 8, 205, 84,\n\t\t124, 209, 187, 126, 99, 56, 114, 242, 162, 141, 10, 46, 60,\n\t\t47, 238, 81, 42, 105, 97, 150, 53, 119, 73, 250, 166, 128,\n\t\t54, 85, 67, 246, 80, 26, 222, 65, 125, 230, 30, 55, 179, 110,\n\t\t36, 113, 199, 110, 239, 71, 199, 74, 84, 50, 123, 4, 25, 132,\n\t\t74, 96, 177, 86, 163, 173, 109, 202, 140, 198, 173, 51, 235,\n\t\t129, 197, 147, 57, 189, 131, 16, 197, 244, 129, 109, 241,\n\t\t29, 156, 43, 60, 84, 85, 252, 116, 62, 224, 68, 119, 231,\n\t\t121, 35, 247, 72, 222, 243, 190, 54, 195, 188, 115, 34, 158,\n\t\t119, 241, 76, 19, 132, 132, 79, 249, 239, 56, 33, 139, 7,\n\t\t207, 195, 112, 21, 237, 157, 163, 78, 75, 104, 6, 214, 34,\n\t\t152, 16, 66, 127, 228, 56, 179, 132, 2, 58, 20, 3, 37, 187,\n\t\t229, 88, 97, 199, 89, 216, 179, 180, 24, 205, 41, 120, 199,\n\t\t102, 44, 113, 183, 40, 156, 239, 58, 22, 36, 174, 175, 78,\n\t\t70, 104, 86, 85, 185, 81, 114, 21, 12, 151, 38, 18, 220, 29,\n\t\t199, 137, 99, 161, 241, 29, 111, 174, 129, 88, 108, 110, 226,\n\t\t197, 102, 60, 38, 41, 75, 232, 102, 196, 216, 1, 110, 58,\n\t\t57, 106, 99, 1, 156, 82, 240, 210, 38, 180, 80, 66, 143, 182,\n\t\t96, 41, 233, 157, 250, 208, 84, 71, 8, 181, 218, 250, 96,\n\t\t19, 210, 148, 110, 96, 116, 5, 192, 246, 154, 149, 65, 217,\n\t\t132, 15, 235, 143, 81, 247, 174, 164, 223, 115, 162, 22, 113,\n\t\t177, 185, 41, 76, 103, 74, 85, 149, 53, 21, 73, 93, 83, 145,\n\t\t81, 179, 255, 210, 174, 133, 83, 199, 70, 122, 77, 83, 184,\n\t\t58, 105, 90, 228, 107, 207, 67, 218, 82, 79, 193, 160, 91,\n\t\t89, 47, 104, 255, 113, 250, 43, 191, 139, 210, 159, 242, 84,\n\t\t85, 101, 159, 117, 29, 196, 223, 171, 146, 173, 165, 77, 227,\n\t\t240, 246, 27, 135, 72, 252, 170, 193, 70, 57, 231, 32, 156,\n\t\t207, 206, 175, 11, 163, 9, 147, 75, 55, 220, 54, 241, 57,\n\t\t205, 216, 108, 97, 238, 146, 201, 141, 49, 38, 152, 109, 86,\n\t\t213, 124, 228, 134, 206, 6, 174, 39, 229, 145, 128, 221, 127,\n\t\t167, 111, 231, 202, 59, 183, 176, 98, 209, 153, 138, 188,\n\t\t111, 183, 75, 192, 64, 71, 21, 117, 22, 177, 83, 71, 199,\n\t\t224, 214, 185, 29, 137, 187, 94, 118, 174, 21, 212, 160, 14,\n\t\t172, 153, 162, 23, 156, 162, 155, 71, 243, 167, 55, 215, 143,\n\t\t158, 60, 69, 58, 130, 236, 25, 163, 212, 240, 61, 70, 171,\n\t\t220, 179, 87, 1, 172, 246, 30, 19, 120, 29, 185, 167, 111,\n\t\t247, 162, 103, 207, 141, 61, 63, 239, 38, 104, 103, 82, 29,\n\t\t151, 31, 115, 162, 53, 207, 96, 225, 84, 18, 19, 204, 22,\n\t\t103, 234, 213, 217, 50, 54, 60, 237, 23, 28, 103, 65, 30,\n\t\t210, 40, 200, 67, 104, 95, 66, 44, 90, 162, 53, 204, 89, 85,\n\t\t65, 49, 10, 166, 106, 110, 133, 89, 191, 162, 207, 59, 21,\n\t\t193, 217, 21, 208, 169, 210, 78, 188, 233, 145, 179, 92, 77,\n\t\t36, 57, 109, 108, 69, 71, 133, 231, 233, 163, 170, 118, 69,\n\t\t75, 237, 65, 34, 206, 252, 192, 54, 206, 157, 94, 57, 152,\n\t\t95, 119, 248, 120, 128, 69, 215, 99, 141, 55, 224, 152, 108,\n\t\t240, 63, 117, 72, 128, 13, 150, 76, 4, 95, 181, 94, 180, 144,\n\t\t100, 233, 95, 235, 81, 109, 83, 146, 32, 15, 151, 61, 222,\n\t\t12, 174, 224, 234, 158, 233, 129, 229, 140, 61, 211, 91, 184,\n\t\t13, 24, 38, 176, 22, 193, 151, 142, 87, 53, 118, 95, 45, 159,\n\t\t120, 206, 197, 199, 112, 89, 201, 16, 148, 126, 214, 176,\n\t\t136, 142, 231, 220, 123, 51, 146, 129, 43, 119, 77, 158, 190,\n\t\t227, 32, 63, 119, 228, 230, 75, 125, 51, 132, 182, 76, 54,\n\t\t230, 204, 112, 25, 49, 57, 99, 101, 231, 230, 0, 164, 15,\n\t\t190, 189, 180, 191, 245, 147, 20, 153, 5, 133, 148, 99, 24,\n\t\t200, 91, 231, 65, 126, 230, 74, 69, 106, 170, 77, 212, 6,\n\t\t44, 184, 127, 228, 61, 129, 169, 51, 188, 255, 190, 139, 191,\n\t\t55, 243, 217, 49, 143, 211, 253, 60, 228, 252, 191, 234, 142,\n\t\t101, 225, 186, 77, 205, 7, 210, 254, 214, 79, 178, 114, 127,\n\t\t219, 175, 133, 156, 38, 162, 224, 185, 252, 12, 116, 198,\n\t\t10, 77, 117, 98, 193, 170, 142, 106, 117, 242, 127, 220, 79,\n\t\t104, 217, 197, 217, 189, 132, 179, 134, 117, 200, 241, 154,\n\t\t70, 27, 217, 85, 166, 255, 127, 214, 92, 231, 6, 15, 213,\n\t\t244, 89, 196, 202, 38, 128, 56, 220, 79, 96, 136, 151, 86,\n\t\t149, 5, 50, 36, 112, 91, 65, 255, 234, 15, 220, 163, 94, 28,\n\t\t174, 26, 80, 34, 120, 199, 136, 181, 43, 41, 14, 208, 139,\n\t\t150, 202, 152, 171, 49, 225, 154, 44, 105, 194, 152, 200,\n\t\t37, 247, 141, 98, 87, 49, 24, 231, 211, 101, 249, 27, 179,\n\t\t245, 181, 103, 173, 162, 104, 127, 114, 87, 107, 80, 145,\n\t\t218, 237, 16, 108, 67, 52, 19, 15, 77, 26, 236, 222, 241,\n\t\t173, 62, 187, 204, 222, 142, 175, 181, 230, 28, 140, 85, 193,\n\t\t61, 111, 244, 154, 183, 193, 116, 71, 91, 30, 52, 230, 204,\n\t\t252, 125, 230, 204, 33, 57, 113, 214, 55, 86, 86, 64, 157,\n\t\t63, 192, 202, 53, 66, 134, 62, 95, 214, 131, 17, 230, 100,\n\t\t250, 242, 130, 73, 189, 96, 78, 191, 153, 170, 148, 205, 92,\n\t\t123, 75, 105, 32, 204, 34, 54, 189, 193, 225, 232, 235, 50,\n\t\t6, 50, 220, 66, 55, 160, 168, 213, 191, 6, 141, 107, 209,\n\t\t123, 32, 189, 21, 102, 186, 224, 189, 112, 2, 187, 234, 173,\n\t\t125, 51, 27, 24, 25, 220, 199, 65, 193, 140, 198, 244, 197,\n\t\t88, 236, 234, 237, 167, 182, 128, 117, 138, 214, 106, 88,\n\t\t24, 213, 155, 204, 71, 250, 9, 89, 180, 165, 146, 204, 35,\n\t\t162, 238, 214, 242, 145, 198, 23, 54, 245, 25, 236, 102, 4,\n\t\t155, 26, 217, 9, 120, 150, 166, 62, 114, 38, 99, 64, 237,\n\t\t214, 139, 252, 204, 59, 238, 77, 250, 42, 32, 136, 147, 147,\n\t\t53, 183, 140, 77, 230, 52, 98, 179, 69, 116, 195, 178, 69,\n\t\t164, 248, 74, 184, 204, 48, 115, 124, 100, 245, 134, 80, 156,\n\t\t214, 17, 39, 65, 20, 146, 64, 134, 88, 16, 90, 26, 209, 43,\n\t\t167, 66, 7, 125, 239, 236, 77, 39, 150, 115, 222, 168, 87,\n\t\t190, 233, 123, 84, 90, 47, 202, 229, 232, 112, 79, 180, 43,\n\t\t229, 216, 122, 82, 254, 220, 53, 131, 180, 210, 104, 135,\n\t\t191, 107, 132, 196, 132, 31, 27, 125, 172, 90, 167, 236, 192,\n\t\t5, 207, 65, 79, 196, 137, 238, 224, 243, 108, 127, 40, 37,\n\t\t143, 95, 131, 247, 156, 36, 53, 125, 212, 233, 78, 198, 141,\n\t\t241, 85, 133, 8, 244, 96, 225, 90, 154, 55, 124, 187, 212,\n\t\t7, 149, 107, 114, 74, 141, 167, 212, 186, 40, 222, 240, 123,\n\t\t201, 208, 193, 220, 99, 230, 71, 183, 16, 220, 145, 47, 82,\n\t\t190, 145, 254, 100, 174, 254, 59, 220, 47, 224, 42, 49, 255,\n\t\t211, 217, 225, 126, 177, 143, 242, 109, 34, 38, 50, 59, 248,\n\t\t234, 203, 33, 138, 227, 68, 108, 253, 217, 226, 54, 203, 99,\n\t\t158, 251, 51, 4, 225, 14, 135, 171, 183, 119, 213, 45, 140,\n\t\t143, 150, 15, 126, 110, 139, 219, 236, 126, 82, 36, 127, 168,\n\t\t122, 116, 45, 147, 219, 236, 126, 145, 221, 241, 124, 147,\n\t\t102, 71, 191, 128, 0, 83, 166, 101, 63, 42, 101, 102, 27,\n\t\t115, 123, 224, 246, 243, 127, 22, 208, 191, 255, 65, 244,\n\t\t190, 107, 170, 158, 118, 73, 243, 218, 4, 192, 214, 202, 157,\n\t\t238, 60, 175, 201, 34, 97, 104, 254, 63, 72, 27, 166, 102,\n\t\t7, 90, 176, 249, 19, 198, 152, 192, 114, 170, 251, 242, 53,\n\t\t223, 72, 210, 12, 55, 79, 182, 59, 201, 208, 167, 179, 255,\n\t\t65, 180, 100, 31, 127, 106, 178, 66, 178, 2, 220, 38, 5, 122,\n\t\t217, 150, 179, 179, 195, 144, 157, 125, 68, 35, 157, 123,\n\t\t61, 213, 39, 6, 63, 171, 18, 85, 229, 100, 184, 239, 74, 52,\n\t\t41, 161, 107, 29, 106, 212, 9, 126, 226, 32, 124, 125, 29,\n\t\t104, 86, 138, 24, 67, 160, 148, 87, 105, 22, 193, 237, 20,\n\t\t181, 213, 60, 24, 149, 209, 185, 71, 1, 248, 26, 208, 245,\n\t\t133, 15, 139, 117, 227, 86, 104, 199, 115, 27, 173, 223, 109,\n\t\t161, 173, 231, 105, 114, 96, 200, 4, 131, 87, 107, 170, 96,\n\t\t163, 107, 179, 63, 92, 4, 209, 29, 96, 178, 28, 36, 31, 88,\n\t\t143, 110, 61, 48, 55, 67, 101, 219, 248, 14, 59, 122, 186,\n\t\t205, 238, 95, 3, 88, 253, 200, 211, 228, 66, 204, 105, 8,\n\t\t150, 80, 211, 67, 114, 207, 211, 207, 178, 123, 104, 107,\n\t\t40, 108, 174, 202, 87, 154, 124, 246, 218, 191, 11, 217, 18,\n\t\t133, 249, 117, 131, 223, 52, 112, 114, 33, 111, 81, 83, 13,\n\t\t222, 186, 175, 151, 122, 24, 213, 53, 33, 53, 118, 110, 142,\n\t\t120, 197, 47, 9, 153, 48, 45, 86, 204, 2, 23, 219, 159, 65,\n\t\t216, 243, 60, 140, 64, 95, 16, 49, 64, 43, 214, 98, 4, 244,\n\t\t84, 88, 146, 170, 18, 138, 201, 233, 28, 66, 156, 75, 165,\n\t\t96, 238, 237, 120, 242, 18, 66, 71, 187, 105, 119, 250, 48,\n\t\t241, 188, 111, 172, 173, 25, 241, 188, 71, 230, 89, 234, 80,\n\t\t40, 165, 222, 1, 52, 97, 229, 116, 159, 8, 0, 110, 154, 169,\n\t\t151, 232, 94, 191, 180, 233, 78, 170, 45, 199, 34, 170, 70,\n\t\t112, 52, 57, 117, 90, 238, 150, 73, 168, 83, 42, 35, 78, 156,\n\t\t168, 104, 25, 141, 17, 242, 157, 27, 195, 255, 232, 168, 151,\n\t\t79, 157, 176, 88, 218, 252, 160, 189, 37, 80, 203, 32, 96,\n\t\t68, 72, 46, 196, 25, 54, 74, 82, 155, 177, 174, 97, 131, 253,\n\t\t10, 142, 34, 34, 19, 188, 2, 213, 53, 94, 142, 38, 235, 128,\n\t\t71, 33, 153, 142, 201, 53, 253, 73, 125, 158, 76, 174, 233,\n\t\t63, 56, 59, 53, 200, 210, 217, 237, 119, 73, 145, 220, 38,\n\t\t105, 34, 31, 124, 180, 75, 226, 152, 11, 68, 45, 10, 53, 190,\n\t\t194, 53, 253, 133, 179, 83, 202, 165, 228, 249, 235, 67, 180,\n\t\t86, 40, 17, 205, 16, 221, 100, 66, 254, 12, 23, 66, 250, 232,\n\t\t175, 179, 25, 170, 233, 15, 156, 5, 232, 103, 126, 251, 46,\n\t\t145, 136, 162, 111, 178, 63, 16, 69, 251, 2, 133, 244, 159,\n\t\t252, 194, 38, 55, 32, 213, 204, 217, 223, 185, 145, 76, 184,\n\t\t18, 136, 255, 201, 91, 103, 12, 131, 77, 225, 2, 81, 55, 122,\n\t\t220, 216, 106, 181, 231, 132, 10, 246, 3, 63, 15, 166, 163,\n\t\t99, 19, 255, 192, 3, 17, 142, 37, 233, 86, 219, 174, 214,\n\t\t87, 220, 53, 74, 93, 23, 112, 96, 94, 4, 188, 23, 185, 173,\n\t\t243, 137, 65, 119, 225, 46, 10, 217, 214, 244, 101, 119, 255,\n\t\t48, 235, 30, 223, 198, 239, 204, 151, 128, 53, 247, 209, 61,\n\t\t158, 209, 60, 120, 18, 78, 176, 168, 170, 25, 33, 99, 156,\n\t\t131, 51, 62, 120, 222, 251, 78, 157, 255, 26, 242, 197, 97,\n\t\t72, 95, 196, 9, 1, 60, 230, 254, 204, 220, 132, 63, 211, 87,\n\t\t115, 49, 134, 243, 37, 210, 228, 12, 249, 22, 199, 181, 182,\n\t\t65, 58, 74, 225, 34, 186, 249, 235, 34, 26, 179, 39, 4, 105,\n\t\t202, 99, 29, 181, 139, 113, 19, 30, 65, 140, 51, 30, 68, 16,\n\t\t189, 48, 33, 132, 230, 75, 220, 212, 102, 51, 79, 218, 88,\n\t\t10, 134, 106, 162, 110, 33, 91, 251, 232, 188, 128, 233, 162,\n\t\t206, 63, 70, 63, 235, 203, 69, 117, 57, 226, 187, 29, 25,\n\t\t172, 187, 77, 133, 104, 109, 110, 246, 247, 212, 236, 151,\n\t\t127, 46, 159, 93, 51, 8, 46, 243, 20, 98, 15, 20, 99, 230,\n\t\t44, 31, 60, 174, 121, 146, 98, 30, 32, 77, 83, 209, 88, 158,\n\t\t131, 169, 108, 192, 52, 156, 100, 147, 98, 82, 78, 166, 159,\n\t\t16, 162, 208, 116, 179, 200, 77, 216, 46, 3, 56, 128, 92,\n\t\t105, 194, 12, 66, 6, 253, 54, 106, 217, 152, 78, 4, 139, 134,\n\t\t32, 33, 58, 154, 171, 172, 17, 131, 75, 219, 44, 178, 76,\n\t\t72, 239, 126, 214, 68, 241, 32, 138, 227, 65, 86, 17, 27,\n\t\t177, 200, 243, 240, 110, 122, 70, 219, 48, 169, 170, 164,\n\t\t141, 179, 161, 80, 57, 197, 186, 44, 99, 44, 169, 170, 145,\n\t\t67, 249, 19, 2, 161, 95, 210, 228, 66, 136, 13, 221, 61, 125,\n\t\t101, 240, 159, 158, 49, 170, 227, 97, 226, 132, 117, 90, 82,\n\t\t123, 102, 108, 183, 70, 85, 225, 108, 8, 222, 105, 4, 14,\n\t\t22, 99, 181, 167, 28, 149, 236, 186, 40, 116, 76, 160, 83,\n\t\t166, 112, 154, 124, 240, 79, 231, 129, 11, 65, 79, 105, 216,\n\t\t108, 88, 5, 100, 50, 55, 66, 55, 68, 37, 16, 75, 52, 71, 190,\n\t\t0, 235, 181, 38, 82, 134, 127, 138, 68, 178, 7, 131, 148,\n\t\t47, 36, 207, 225, 1, 204, 125, 181, 209, 100, 90, 238, 219,\n\t\t215, 77, 146, 166, 223, 153, 110, 168, 215, 148, 223, 255,\n\t\t61, 207, 142, 246, 249, 245, 46, 79, 196, 59, 120, 107, 113,\n\t\t238, 104, 70, 213, 36, 127, 222, 188, 101, 109, 5, 154, 135,\n\t\t133, 135, 195, 46, 210, 38, 36, 199, 36, 206, 142, 240, 244,\n\t\t199, 23, 112, 223, 150, 122, 202, 178, 61, 24, 82, 90, 164,\n\t\t230, 159, 106, 10, 139, 60, 112, 50, 175, 143, 216, 63, 238,\n\t\t233, 136, 255, 119, 239, 221, 0, 137, 19, 174, 132, 150, 16,\n\t\t207, 144, 22, 236, 167, 134, 90, 131, 201, 179, 198, 253,\n\t\t201, 6, 23, 128, 90, 191, 226, 184, 36, 58, 220, 179, 93,\n\t\t28, 136, 54, 226, 188, 150, 142, 155, 120, 3, 201, 145, 231,\n\t\t161, 45, 151, 40, 129, 71, 215, 172, 60, 50, 65, 156, 52,\n\t\t200, 45, 19, 63, 13, 100, 184, 104, 245, 6, 56, 107, 252,\n\t\t5, 53, 64, 90, 84, 45, 20, 128, 234, 59, 7, 177, 96, 38, 8,\n\t\t75, 2, 251, 79, 192, 226, 34, 66, 181, 42, 69, 73, 86, 6,\n\t\t9, 218, 79, 198, 93, 80, 140, 225, 214, 128, 243, 224, 42,\n\t\t101, 27, 92, 133, 156, 115, 163, 85, 133, 204, 241, 31, 24,\n\t\t188, 180, 33, 223, 90, 110, 20, 41, 86, 73, 13, 133, 161,\n\t\t68, 236, 120, 158, 0, 148, 123, 30, 42, 122, 179, 192, 64,\n\t\t35, 29, 153, 128, 128, 106, 17, 193, 227, 110, 153, 170, 148,\n\t\t214, 172, 151, 10, 2, 51, 195, 132, 14, 85, 127, 22, 98, 179,\n\t\t19, 125, 198, 44, 167, 165, 101, 237, 154, 186, 139, 136,\n\t\t223, 191, 138, 164, 179, 100, 238, 74, 205, 168, 104, 184,\n\t\t170, 38, 104, 73, 131, 0, 33, 156, 73, 190, 143, 82, 19, 208,\n\t\t68, 42, 46, 225, 23, 14, 153, 126, 209, 136, 73, 111, 200,\n\t\t170, 18, 75, 156, 117, 177, 5, 133, 128, 203, 162, 170, 146,\n\t\t226, 85, 34, 18, 201, 113, 70, 150, 89, 85, 205, 124, 29,\n\t\t233, 189, 81, 86, 4, 72, 223, 115, 141, 168, 33, 176, 225,\n\t\t153, 82, 193, 25, 26, 235, 227, 13, 187, 89, 154, 235, 152,\n\t\t127, 53, 83, 116, 30, 110, 8, 156, 216, 148, 124, 8, 54, 93,\n\t\t63, 242, 181, 44, 154, 187, 231, 212, 86, 218, 114, 249, 153,\n\t\t90, 241, 68, 108, 219, 44, 152, 104, 206, 116, 105, 232, 69,\n\t\t78, 124, 8, 181, 246, 15, 231, 254, 218, 86, 229, 103, 243,\n\t\t212, 228, 44, 20, 172, 187, 174, 134, 216, 68, 127, 146, 192,\n\t\t100, 132, 150, 44, 247, 60, 131, 124, 115, 8, 193, 182, 104,\n\t\t55, 228, 110, 218, 145, 61, 224, 82, 225, 172, 145, 71, 61,\n\t\t15, 151, 19, 246, 223, 80, 78, 103, 65, 51, 181, 220, 19,\n\t\t211, 1, 139, 247, 117, 223, 128, 180, 210, 242, 124, 75, 155,\n\t\t192, 69, 56, 105, 185, 44, 48, 77, 182, 116, 13, 252, 131,\n\t\t157, 48, 70, 20, 120, 57, 65, 75, 123, 76, 98, 215, 221, 17,\n\t\t211, 217, 31, 28, 239, 166, 231, 98, 25, 29, 32, 37, 134,\n\t\t217, 119, 70, 161, 169, 74, 91, 91, 11, 19, 131, 11, 159,\n\t\t242, 141, 156, 192, 106, 159, 218, 50, 254, 172, 30, 90, 249,\n\t\t247, 86, 82, 19, 67, 17, 29, 147, 56, 173, 5, 65, 136, 90,\n\t\t197, 7, 66, 212, 168, 67, 12, 79, 116, 174, 93, 107, 54, 2,\n\t\t31, 171, 173, 160, 79, 151, 90, 32, 115, 143, 114, 225, 60,\n\t\t239, 84, 43, 36, 122, 238, 174, 45, 172, 123, 225, 21, 34,\n\t\t126, 32, 194, 69, 126, 243, 87, 56, 239, 75, 2, 174, 248,\n\t\t178, 60, 84, 245, 103, 65, 30, 86, 85, 22, 228, 147, 39, 240,\n\t\t59, 115, 130, 102, 213, 46, 143, 105, 148, 177, 110, 231,\n\t\t20, 206, 99, 95, 66, 204, 246, 206, 113, 87, 31, 221, 93,\n\t\t86, 101, 247, 132, 98, 53, 150, 72, 115, 219, 253, 96, 190,\n\t\t122, 212, 45, 7, 215, 220, 50, 26, 221, 36, 160, 82, 204,\n\t\t2, 25, 68, 97, 216, 194, 26, 176, 179, 138, 76, 217, 1, 101,\n\t\t150, 45, 107, 8, 154, 88, 186, 97, 174, 4, 241, 91, 64, 173,\n\t\t193, 78, 238, 60, 204, 101, 27, 95, 48, 230, 105, 244, 208,\n\t\t139, 232, 111, 5, 27, 118, 156, 110, 238, 151, 234, 207, 180,\n\t\t56, 112, 30, 107, 132, 45, 125, 169, 195, 104, 65, 180, 60,\n\t\t16, 59, 117, 0, 189, 225, 235, 116, 58, 65, 218, 5, 85, 4,\n\t\t2, 236, 114, 221, 224, 120, 92, 19, 59, 155, 43, 49, 110,\n\t\t33, 109, 134, 187, 78, 236, 138, 126, 232, 137, 161, 168,\n\t\t20, 218, 228, 14, 125, 32, 170, 133, 142, 167, 131, 8, 89,\n\t\t24, 123, 168, 214, 167, 194, 6, 152, 248, 78, 48, 164, 157,\n\t\t161, 192, 105, 133, 238, 166, 217, 65, 106, 167, 118, 30,\n\t\t51, 105, 108, 251, 120, 76, 241, 229, 14, 18, 93, 150, 33,\n\t\t137, 172, 161, 164, 137, 139, 65, 119, 83, 120, 248, 135,\n\t\t253, 206, 154, 150, 108, 20, 9, 41, 169, 144, 246, 70, 247,\n\t\t72, 202, 252, 115, 56, 216, 237, 94, 104, 171, 210, 223, 11,\n\t\t173, 71, 40, 122, 17, 28, 104, 107, 246, 53, 116, 122, 35,\n\t\t135, 141, 4, 219, 66, 205, 177, 110, 47, 226, 233, 89, 191,\n\t\t186, 59, 165, 101, 16, 213, 110, 81, 44, 100, 166, 57, 199,\n\t\t204, 243, 158, 168, 31, 131, 25, 29, 143, 126, 214, 9, 73,\n\t\t212, 216, 169, 45, 143, 211, 67, 158, 29, 236, 22, 192, 38,\n\t\t56, 67, 199, 48, 161, 170, 224, 38, 70, 152, 67, 77, 164,\n\t\t123, 167, 61, 192, 144, 57, 62, 236, 183, 89, 150, 90, 46,\n\t\t102, 41, 165, 223, 68, 136, 112, 246, 158, 62, 44, 99, 66,\n\t\t223, 152, 210, 153, 19, 181, 12, 126, 210, 242, 95, 137, 203,\n\t\t133, 230, 44, 105, 248, 47, 73, 200, 50, 247, 49, 239, 134,\n\t\t63, 145, 84, 140, 145, 98, 40, 117, 37, 219, 166, 18, 99,\n\t\t30, 8, 85, 216, 144, 176, 170, 2, 221, 21, 156, 51, 19, 129,\n\t\t33, 178, 157, 176, 183, 51, 251, 57, 169, 105, 51, 124, 95,\n\t\t187, 254, 159, 250, 129, 224, 181, 64, 232, 2, 166, 231, 25,\n\t\t112, 213, 81, 88, 245, 21, 157, 6, 180, 141, 20, 100, 128,\n\t\t182, 49, 114, 25, 12, 6, 99, 34, 215, 154, 188, 76, 16, 42,\n\t\t65, 54, 26, 4, 62, 218, 191, 15, 217, 243, 218, 128, 231,\n\t\t10, 92, 146, 179, 112, 218, 70, 183, 195, 18, 237, 186, 122,\n\t\t110, 204, 40, 0, 60, 165, 100, 103, 131, 110, 241, 30, 216,\n\t\t199, 202, 101, 111, 37, 5, 241, 123, 99, 18, 84, 128, 177,\n\t\t179, 165, 147, 231, 144, 163, 99, 99, 154, 62, 95, 175, 142,\n\t\t227, 235, 45, 25, 186, 60, 145, 9, 105, 88, 225, 102, 217,\n\t\t22, 144, 212, 117, 114, 234, 132, 122, 236, 129, 110, 163,\n\t\t65, 210, 151, 15, 2, 217, 128, 191, 44, 161, 137, 57, 221,\n\t\t181, 181, 44, 35, 128, 20, 243, 61, 35, 52, 105, 162, 126,\n\t\t74, 29, 145, 70, 91, 238, 106, 204, 86, 89, 227, 195, 74,\n\t\t155, 242, 67, 128, 183, 196, 100, 140, 42, 245, 69, 37, 117,\n\t\t209, 209, 225, 220, 53, 178, 143, 142, 84, 150, 15, 161, 163,\n\t\t158, 135, 229, 251, 209, 145, 163, 7, 13, 116, 245, 175, 146,\n\t\t123, 184, 87, 149, 135, 125, 180, 116, 214, 191, 255, 14,\n\t\t45, 93, 93, 192, 50, 10, 93, 219, 14, 0, 201, 4, 251, 32,\n\t\t149, 98, 133, 131, 14, 10, 249, 243, 40, 66, 243, 162, 127,\n\t\t18, 29, 168, 204, 16, 201, 246, 96, 183, 123, 116, 171, 37,\n\t\t252, 158, 100, 210, 170, 55, 93, 180, 129, 100, 116, 11, 66,\n\t\t166, 99, 72, 176, 4, 14, 245, 11, 33, 177, 164, 243, 25, 241,\n\t\t115, 105, 77, 89, 173, 225, 43, 169, 170, 228, 60, 17, 236,\n\t\t237, 115, 190, 89, 206, 252, 201, 92, 237, 120, 51, 59, 254,\n\t\t9, 109, 178, 28, 249, 104, 39, 247, 233, 171, 44, 71, 20,\n\t\t173, 211, 168, 40, 144, 175, 127, 85, 97, 164, 150, 174, 67,\n\t\t117, 1, 77, 55, 227, 106, 40, 112, 95, 224, 106, 157, 80,\n\t\t6, 47, 168, 150, 93, 99, 14, 215, 146, 195, 214, 8, 179, 5,\n\t\t2, 125, 95, 70, 26, 172, 91, 130, 87, 121, 183, 240, 159,\n\t\t109, 133, 116, 228, 76, 187, 82, 136, 162, 156, 71, 241, 119,\n\t\t34, 125, 64, 138, 141, 189, 255, 26, 182, 136, 154, 38, 158,\n\t\t166, 70, 233, 110, 222, 190, 55, 218, 78, 138, 242, 236, 248,\n\t\t250, 16, 9, 149, 158, 165, 230, 169, 44, 248, 55, 209, 1,\n\t\t81, 4, 55, 43, 127, 102, 164, 34, 171, 13, 123, 25, 107, 223,\n\t\t92, 87, 162, 85, 4, 190, 1, 98, 176, 132, 234, 208, 74, 176,\n\t\t15, 112, 47, 22, 207, 100, 187, 67, 123, 215, 9, 19, 115,\n\t\t90, 124, 133, 28, 227, 228, 72, 118, 236, 28, 93, 98, 110,\n\t\t68, 92, 55, 90, 24, 64, 5, 169, 42, 132, 218, 26, 74, 183,\n\t\t134, 46, 171, 205, 201, 146, 251, 3, 23, 18, 119, 251, 229,\n\t\t7, 97, 55, 72, 103, 20, 199, 207, 85, 75, 231, 43, 221, 139,\n\t\t64, 1, 220, 253, 255, 203, 219, 213, 246, 182, 110, 35, 235,\n\t\t239, 247, 87, 216, 194, 129, 64, 214, 140, 79, 210, 251, 169,\n\t\t114, 89, 225, 162, 197, 69, 123, 239, 226, 244, 237, 44, 186,\n\t\t133, 143, 113, 160, 216, 114, 194, 214, 150, 188, 18, 21,\n\t\t55, 27, 249, 191, 47, 56, 51, 124, 147, 228, 180, 187, 139,\n\t\t221, 47, 113, 36, 145, 20, 95, 134, 212, 112, 56, 207, 51,\n\t\t15, 172, 140, 17, 181, 241, 146, 100, 246, 65, 232, 16, 177,\n\t\t180, 229, 178, 50, 226, 112, 40, 200, 131, 141, 147, 51, 51,\n\t\t211, 18, 218, 228, 224, 237, 246, 131, 6, 139, 90, 75, 44,\n\t\t116, 74, 22, 154, 85, 92, 52, 114, 24, 146, 63, 153, 37, 139,\n\t\t218, 232, 207, 11, 211, 213, 47, 69, 64, 28, 167, 215, 133,\n\t\t201, 222, 120, 187, 145, 73, 11, 233, 192, 143, 163, 89, 72,\n\t\t188, 90, 41, 179, 150, 116, 178, 166, 144, 32, 213, 144, 183,\n\t\t13, 70, 194, 236, 124, 131, 150, 219, 5, 251, 223, 210, 121,\n\t\t65, 209, 191, 211, 127, 243, 145, 71, 76, 248, 2, 88, 215,\n\t\t108, 253, 147, 228, 63, 212, 227, 120, 57, 213, 239, 95, 220,\n\t\t220, 241, 6, 194, 93, 161, 135, 175, 123, 34, 254, 133, 113,\n\t\t64, 134, 216, 225, 56, 4, 16, 5, 154, 9, 162, 9, 118, 219,\n\t\t102, 55, 55, 156, 63, 214, 142, 61, 34, 150, 213, 105, 218,\n\t\t228, 20, 169, 199, 203, 53, 121, 97, 70, 99, 197, 51, 51,\n\t\t200, 83, 225, 34, 42, 63, 186, 65, 133, 163, 209, 173, 220,\n\t\t232, 2, 54, 152, 95, 174, 208, 214, 162, 128, 129, 112, 153,\n\t\t1, 109, 248, 139, 146, 183, 162, 150, 84, 190, 40, 112, 128,\n\t\t105, 88, 180, 44, 214, 202, 12, 75, 189, 124, 44, 90, 124,\n\t\t171, 230, 121, 29, 85, 92, 243, 172, 246, 77, 211, 196, 132,\n\t\t227, 209, 236, 105, 234, 122, 133, 0, 25, 166, 92, 43, 139,\n\t\t105, 250, 255, 62, 224, 68, 242, 241, 163, 251, 144, 125,\n\t\t252, 152, 56, 152, 115, 27, 173, 118, 163, 91, 110, 120, 117,\n\t\t223, 35, 190, 59, 79, 146, 44, 228, 181, 137, 203, 133, 133,\n\t\t145, 163, 3, 30, 53, 107, 122, 22, 202, 219, 149, 150, 70,\n\t\t208, 74, 35, 104, 171, 72, 218, 27, 146, 246, 161, 140, 51,\n\t\t18, 114, 152, 3, 40, 232, 78, 154, 53, 74, 49, 42, 206, 54,\n\t\t144, 204, 252, 206, 42, 148, 173, 150, 111, 63, 52, 111, 31,\n\t\t98, 237, 240, 169, 56, 92, 91, 35, 172, 59, 224, 202, 236,\n\t\t65, 174, 205, 230, 70, 26, 185, 154, 66, 174, 145, 22, 167,\n\t\t86, 35, 103, 213, 52, 37, 226, 64, 166, 100, 147, 199, 130,\n\t\t102, 69, 241, 169, 56, 48, 206, 179, 146, 231, 74, 38, 73,\n\t\t230, 237, 246, 36, 249, 42, 87, 11, 243, 32, 158, 42, 138,\n\t\t83, 132, 255, 99, 113, 98, 106, 202, 111, 153, 80, 175, 102,\n\t\t8, 203, 69, 146, 92, 56, 23, 160, 34, 62, 21, 7, 210, 7, 31,\n\t\t9, 25, 15, 155, 128, 248, 246, 52, 162, 8, 44, 229, 164, 51,\n\t\t234, 16, 8, 235, 69, 79, 137, 4, 182, 89, 112, 42, 0, 69,\n\t\t225, 174, 75, 217, 213, 82, 57, 31, 131, 176, 46, 106, 162,\n\t\t34, 234, 181, 90, 60, 140, 107, 97, 36, 10, 100, 213, 215,\n\t\t129, 231, 213, 232, 123, 108, 118, 106, 88, 41, 158, 59, 119,\n\t\t65, 214, 2, 19, 61, 109, 102, 43, 211, 105, 22, 81, 26, 200,\n\t\t143, 59, 162, 51, 93, 253, 7, 245, 89, 170, 73, 136, 69, 158,\n\t\t75, 157, 235, 172, 214, 140, 252, 201, 75, 56, 232, 64, 197,\n\t\t236, 74, 169, 36, 167, 150, 139, 185, 133, 237, 66, 172, 243,\n\t\t21, 146, 204, 79, 55, 68, 112, 78, 96, 189, 78, 22, 24, 85,\n\t\t10, 200, 126, 138, 188, 94, 220, 101, 202, 97, 136, 192, 48,\n\t\t88, 127, 126, 155, 183, 89, 145, 215, 217, 237, 170, 249,\n\t\t188, 69, 75, 231, 158, 49, 220, 212, 58, 38, 29, 163, 3, 55,\n\t\t64, 3, 156, 166, 243, 202, 49, 243, 164, 41, 155, 87, 161,\n\t\t138, 105, 31, 244, 253, 252, 43, 22, 62, 17, 137, 165, 149,\n\t\t134, 96, 67, 128, 68, 56, 179, 138, 230, 128, 40, 220, 135,\n\t\t115, 69, 132, 56, 218, 125, 103, 186, 113, 232, 56, 183, 81,\n\t\t31, 116, 76, 24, 126, 6, 130, 193, 168, 216, 11, 3, 194, 88,\n\t\t0, 84, 167, 8, 154, 38, 189, 167, 169, 151, 65, 42, 21, 9,\n\t\t226, 185, 168, 97, 221, 129, 83, 184, 249, 173, 31, 82, 0,\n\t\t47, 71, 131, 33, 111, 238, 184, 168, 47, 151, 72, 189, 38,\n\t\t219, 155, 55, 246, 13, 212, 222, 104, 6, 110, 198, 198, 2,\n\t\t232, 176, 145, 109, 215, 169, 178, 22, 206, 23, 180, 131,\n\t\t149, 182, 107, 97, 197, 188, 92, 188, 121, 17, 118, 51, 241,\n\t\t27, 193, 225, 231, 234, 66, 50, 194, 133, 146, 96, 231, 73,\n\t\t93, 37, 153, 181, 30, 114, 216, 53, 17, 91, 141, 76, 234,\n\t\t202, 18, 215, 40, 235, 53, 115, 160, 77, 60, 61, 128, 159,\n\t\t222, 146, 207, 0, 93, 205, 155, 183, 98, 27, 87, 100, 138,\n\t\t1, 98, 229, 102, 38, 65, 83, 196, 152, 176, 198, 76, 155,\n\t\t144, 44, 150, 64, 135, 72, 101, 248, 44, 215, 170, 239, 155,\n\t\t141, 56, 202, 61, 45, 204, 130, 96, 167, 57, 114, 178, 101,\n\t\t90, 220, 7, 207, 28, 204, 26, 18, 120, 170, 49, 207, 68, 152,\n\t\t173, 129, 138, 173, 147, 143, 178, 149, 74, 154, 226, 133,\n\t\t217, 199, 171, 193, 9, 117, 120, 61, 63, 208, 198, 245, 184,\n\t\t24, 81, 133, 26, 81, 59, 122, 29, 110, 9, 218, 155, 185, 39,\n\t\t217, 189, 60, 6, 47, 230, 46, 124, 209, 61, 177, 33, 114,\n\t\t177, 149, 65, 214, 12, 21, 110, 51, 86, 139, 163, 208, 82,\n\t\t135, 44, 71, 58, 98, 57, 58, 138, 49, 159, 110, 154, 2, 189,\n\t\t152, 106, 223, 99, 213, 100, 157, 127, 154, 253, 183, 8, 122,\n\t\t65, 222, 123, 106, 77, 17, 50, 177, 201, 32, 81, 62, 73, 169,\n\t\t120, 255, 187, 148, 138, 104, 57, 114, 68, 106, 184, 226,\n\t\t11, 77, 76, 49, 0, 77, 37, 198, 25, 5, 193, 54, 104, 17, 95,\n\t\t235, 77, 22, 197, 162, 18, 96, 3, 57, 141, 40, 248, 142, 8,\n\t\t4, 168, 251, 126, 126, 178, 189, 79, 92, 121, 238, 154, 252,\n\t\t224, 20, 196, 104, 0, 91, 101, 157, 166, 243, 211, 210, 50,\n\t\t64, 165, 233, 252, 9, 252, 90, 204, 146, 122, 144, 167, 136,\n\t\t103, 178, 239, 143, 194, 142, 243, 97, 113, 52, 223, 198,\n\t\t78, 118, 193, 202, 200, 87, 221, 106, 112, 231, 25, 151, 192,\n\t\t142, 139, 86, 118, 171, 86, 26, 37, 34, 246, 82, 236, 123,\n\t\t0, 4, 98, 186, 54, 244, 180, 238, 123, 235, 68, 255, 147,\n\t\t170, 118, 245, 185, 239, 75, 126, 241, 219, 4, 214, 201, 103,\n\t\t220, 39, 188, 70, 220, 247, 40, 59, 129, 19, 65, 22, 95, 220,\n\t\t229, 135, 236, 228, 200, 50, 77, 123, 216, 206, 114, 30, 118,\n\t\t87, 8, 15, 45, 57, 104, 103, 89, 24, 33, 66, 208, 206, 133,\n\t\t229, 175, 128, 128, 117, 155, 166, 221, 122, 187, 241, 79,\n\t\t210, 244, 103, 214, 33, 87, 30, 13, 120, 148, 5, 45, 165,\n\t\t142, 219, 105, 76, 168, 231, 13, 71, 88, 249, 163, 25, 88,\n\t\t61, 193, 118, 195, 120, 223, 159, 28, 95, 60, 241, 88, 250,\n\t\t27, 244, 210, 231, 229, 169, 62, 49, 14, 177, 183, 230, 63,\n\t\t131, 159, 207, 54, 77, 31, 152, 90, 31, 161, 255, 158, 80,\n\t\t23, 99, 173, 84, 216, 12, 102, 126, 49, 48, 174, 24, 77, 105,\n\t\t121, 20, 215, 58, 60, 77, 31, 199, 116, 177, 71, 177, 213,\n\t\t92, 152, 119, 49, 254, 106, 206, 41, 194, 41, 204, 60, 174,\n\t\t3, 77, 160, 214, 214, 181, 229, 17, 121, 96, 75, 108, 55,\n\t\t211, 182, 74, 15, 81, 15, 86, 13, 81, 9, 180, 235, 15, 200,\n\t\t137, 110, 47, 124, 53, 120, 63, 107, 40, 16, 222, 56, 220,\n\t\t216, 104, 1, 15, 109, 184, 147, 251, 176, 97, 217, 166, 162,\n\t\t218, 34, 174, 232, 230, 215, 196, 40, 60, 185, 49, 37, 197,\n\t\t63, 112, 144, 152, 77, 149, 89, 1, 198, 48, 252, 184, 25,\n\t\t85, 21, 79, 170, 145, 246, 205, 81, 180, 33, 67, 91, 200,\n\t\t167, 54, 245, 226, 240, 243, 230, 150, 35, 234, 55, 166, 133,\n\t\t99, 193, 138, 25, 73, 241, 179, 23, 173, 93, 26, 53, 133,\n\t\t46, 176, 44, 219, 129, 130, 30, 27, 172, 24, 168, 164, 123,\n\t\t38, 132, 70, 104, 190, 50, 31, 170, 177, 232, 149, 216, 106,\n\t\t17, 166, 21, 76, 129, 155, 219, 29, 64, 41, 145, 239, 245,\n\t\t159, 127, 241, 205, 221, 74, 229, 81, 241, 10, 34, 105, 79,\n\t\t201, 178, 175, 13, 65, 80, 77, 1, 224, 8, 1, 106, 197, 222,\n\t\t236, 249, 214, 31, 54, 111, 222, 138, 29, 108, 255, 242, 15,\n\t\t213, 219, 7, 113, 34, 109, 163, 237, 238, 143, 74, 211, 97,\n\t\t66, 175, 142, 197, 67, 217, 55, 101, 91, 234, 126, 175, 14,\n\t\t37, 156, 46, 60, 190, 122, 12, 241, 107, 249, 252, 80, 86,\n\t\t252, 173, 242, 166, 199, 7, 114, 144, 116, 71, 36, 147, 103,\n\t\t239, 36, 37, 129, 3, 134, 105, 229, 75, 213, 247, 123, 237,\n\t\t34, 187, 154, 230, 41, 158, 153, 18, 23, 201, 58, 89, 140,\n\t\t249, 89, 156, 197, 93, 229, 58, 75, 204, 215, 113, 147, 8,\n\t\t101, 41, 9, 44, 95, 124, 213, 247, 54, 231, 92, 202, 123,\n\t\t208, 15, 25, 50, 197, 89, 90, 93, 133, 116, 247, 238, 85,\n\t\t10, 74, 210, 107, 181, 193, 194, 206, 75, 96, 76, 145, 147,\n\t\t154, 54, 2, 148, 166, 228, 25, 104, 35, 53, 227, 153, 94,\n\t\t53, 235, 134, 20, 238, 141, 44, 171, 109, 189, 43, 255, 252,\n\t\t195, 55, 95, 214, 199, 83, 93, 33, 139, 226, 34, 145, 201,\n\t\t98, 226, 73, 184, 249, 226, 151, 113, 111, 130, 115, 243,\n\t\t242, 23, 8, 219, 66, 177, 123, 191, 59, 20, 170, 34, 230,\n\t\t223, 210, 117, 118, 228, 122, 164, 112, 27, 106, 148, 16,\n\t\t225, 55, 164, 174, 215, 128, 198, 3, 89, 111, 30, 52, 171,\n\t\t4, 196, 102, 49, 67, 228, 14, 183, 72, 61, 73, 19, 32, 239,\n\t\t11, 131, 43, 149, 141, 42, 14, 211, 96, 6, 234, 70, 70, 70,\n\t\t22, 74, 136, 237, 224, 224, 252, 20, 222, 154, 40, 64, 79,\n\t\t64, 32, 159, 192, 33, 129, 206, 156, 209, 34, 83, 82, 24,\n\t\t28, 191, 195, 44, 243, 80, 231, 33, 19, 217, 133, 91, 210,\n\t\t130, 81, 113, 206, 12, 16, 129, 195, 76, 119, 153, 62, 38,\n\t\t35, 133, 106, 89, 146, 217, 125, 93, 98, 62, 56, 36, 188,\n\t\t145, 181, 192, 124, 14, 79, 218, 67, 30, 241, 233, 214, 2,\n\t\t250, 231, 142, 131, 132, 243, 11, 143, 27, 23, 136, 82, 100,\n\t\t24, 137, 57, 188, 240, 224, 59, 27, 5, 32, 69, 51, 72, 53,\n\t\t97, 6, 121, 49, 13, 201, 80, 7, 37, 2, 80, 207, 110, 176,\n\t\t211, 34, 249, 208, 124, 168, 18, 179, 180, 103, 19, 73, 171,\n\t\t233, 164, 136, 166, 27, 125, 190, 206, 77, 113, 250, 159,\n\t\t195, 132, 149, 41, 236, 89, 8, 60, 9, 118, 232, 52, 101, 16,\n\t\t67, 196, 218, 132, 214, 183, 27, 136, 117, 114, 102, 40, 168,\n\t\t35, 98, 17, 190, 44, 255, 202, 108, 156, 17, 192, 251, 217,\n\t\t100, 241, 105, 79, 4, 9, 182, 37, 11, 61, 45, 77, 230, 57,\n\t\t169, 133, 37, 98, 164, 201, 143, 4, 161, 210, 166, 134, 163,\n\t\t187, 158, 84, 194, 1, 68, 53, 66, 48, 65, 214, 132, 233, 136,\n\t\t111, 170, 106, 154, 92, 226, 154, 117, 54, 176, 189, 187,\n\t\t252, 177, 229, 157, 191, 110, 142, 117, 198, 215, 74, 234,\n\t\t37, 29, 49, 181, 140, 175, 108, 220, 216, 188, 90, 210, 8,\n\t\t193, 172, 8, 160, 173, 28, 171, 60, 97, 204, 121, 240, 54,\n\t\t233, 41, 5, 164, 138, 235, 12, 49, 164, 98, 51, 31, 196, 233,\n\t\t230, 23, 209, 85, 163, 55, 132, 197, 226, 0, 154, 253, 122,\n\t\t85, 107, 150, 32, 111, 211, 88, 219, 113, 103, 19, 14, 98,\n\t\t106, 167, 152, 11, 75, 116, 161, 65, 32, 219, 213, 169, 89,\n\t\t158, 218, 178, 219, 213, 16, 134, 109, 87, 86, 19, 59, 252,\n\t\t249, 32, 33, 160, 112, 140, 60, 192, 130, 55, 245, 104, 170,\n\t\t144, 57, 43, 99, 20, 159, 189, 68, 159, 240, 87, 124, 75,\n\t\t57, 216, 37, 192, 135, 233, 235, 247, 112, 160, 13, 226, 46,\n\t\t71, 178, 218, 44, 213, 241, 132, 114, 8, 10, 240, 68, 38,\n\t\t150, 36, 28, 98, 23, 122, 159, 144, 48, 232, 206, 190, 110,\n\t\t142, 95, 124, 254, 22, 127, 194, 139, 68, 124, 10, 54, 142,\n\t\t17, 61, 207, 133, 153, 142, 132, 19, 104, 40, 99, 168, 19,\n\t\t7, 208, 111, 31, 109, 140, 84, 201, 245, 102, 53, 121, 146,\n\t\t65, 220, 104, 243, 59, 79, 136, 84, 132, 192, 158, 169, 222,\n\t\t200, 25, 83, 146, 233, 63, 218, 7, 124, 232, 20, 118, 95,\n\t\t180, 102, 255, 5, 7, 226, 178, 89, 30, 234, 45, 102, 55, 215,\n\t\t66, 47, 31, 203, 98, 23, 121, 173, 41, 206, 51, 45, 1, 229,\n\t\t241, 163, 197, 172, 139, 66, 206, 171, 52, 93, 111, 68, 157,\n\t\t175, 135, 65, 187, 234, 245, 221, 134, 111, 50, 86, 203, 123,\n\t\t12, 144, 166, 69, 1, 142, 224, 133, 115, 33, 62, 179, 194,\n\t\t30, 172, 65, 175, 82, 48, 181, 141, 168, 67, 9, 6, 169, 67,\n\t\t209, 1, 213, 246, 91, 248, 247, 186, 227, 132, 15, 83, 17,\n\t\t64, 115, 200, 183, 55, 225, 98, 143, 128, 234, 157, 124, 129,\n\t\t160, 183, 133, 86, 91, 128, 85, 122, 87, 219, 0, 153, 106,\n\t\t129, 187, 9, 23, 157, 220, 83, 45, 40, 204, 52, 21, 173, 235,\n\t\t83, 66, 156, 54, 120, 227, 0, 142, 178, 130, 29, 36, 243,\n\t\t80, 54, 243, 134, 190, 79, 246, 234, 55, 240, 30, 147, 91,\n\t\t96, 32, 91, 180, 65, 212, 116, 128, 172, 128, 69, 49, 103,\n\t\t133, 100, 141, 220, 187, 138, 48, 206, 1, 137, 171, 204, 72,\n\t\t149, 123, 205, 51, 86, 132, 238, 227, 53, 199, 184, 161, 193,\n\t\t173, 22, 240, 39, 226, 1, 193, 135, 218, 44, 129, 24, 134,\n\t\t161, 18, 49, 167, 24, 183, 96, 1, 0, 251, 166, 41, 219, 153,\n\t\t95, 188, 186, 233, 204, 223, 69, 225, 147, 152, 183, 67, 26,\n\t\t243, 15, 93, 223, 116, 240, 179, 80, 92, 36, 102, 203, 243,\n\t\t0, 150, 248, 92, 47, 225, 194, 190, 119, 199, 179, 61, 116,\n\t\t209, 14, 9, 80, 67, 102, 198, 225, 136, 242, 215, 14, 94,\n\t\t2, 2, 22, 125, 37, 46, 52, 56, 255, 98, 169, 75, 39, 49, 184,\n\t\t2, 35, 69, 196, 202, 159, 69, 105, 191, 229, 115, 212, 216,\n\t\t205, 181, 165, 41, 135, 25, 119, 197, 117, 89, 84, 178, 185,\n\t\t142, 118, 23, 47, 186, 62, 101, 208, 173, 139, 106, 9, 100,\n\t\t172, 88, 47, 1, 152, 115, 236, 74, 122, 242, 23, 124, 98,\n\t\t148, 16, 147, 233, 22, 147, 220, 94, 46, 226, 52, 1, 193,\n\t\t37, 166, 111, 243, 85, 199, 133, 81, 68, 45, 19, 74, 198,\n\t\t165, 0, 61, 133, 147, 68, 148, 219, 38, 156, 35, 252, 149,\n\t\t70, 130, 150, 252, 162, 105, 79, 103, 231, 195, 168, 229,\n\t\t194, 172, 206, 248, 248, 59, 248, 150, 245, 125, 53, 140,\n\t\t66, 102, 213, 12, 80, 124, 36, 197, 152, 237, 123, 252, 127,\n\t\t144, 22, 78, 154, 220, 100, 157, 152, 215, 160, 153, 4, 110,\n\t\t48, 101, 154, 150, 115, 136, 208, 53, 34, 46, 97, 200, 169,\n\t\t224, 106, 15, 115, 107, 4, 184, 123, 95, 159, 28, 212, 142,\n\t\t11, 133, 195, 51, 76, 244, 167, 114, 175, 125, 42, 123, 58,\n\t\t225, 71, 250, 70, 193, 95, 215, 199, 232, 3, 14, 209, 166,\n\t\t77, 169, 193, 200, 223, 224, 27, 134, 73, 193, 235, 30, 141,\n\t\t13, 23, 17, 246, 231, 63, 180, 69, 8, 6, 11, 115, 251, 174,\n\t\t255, 3, 189, 26, 101, 180, 159, 209, 190, 255, 173, 188, 68,\n\t\t36, 26, 136, 169, 0, 151, 255, 36, 16, 226, 132, 128, 222,\n\t\t239, 235, 19, 222, 39, 177, 191, 98, 8, 137, 146, 72, 41,\n\t\t245, 106, 68, 146, 209, 188, 226, 4, 239, 163, 21, 1, 107,\n\t\t139, 209, 45, 107, 89, 102, 159, 13, 101, 160, 14, 248, 10,\n\t\t85, 121, 14, 65, 61, 118, 17, 168, 243, 122, 173, 55, 25,\n\t\t4, 67, 174, 243, 122, 105, 155, 193, 170, 188, 14, 103, 105,\n\t\t166, 68, 149, 171, 172, 14, 231, 52, 207, 48, 128, 241, 69,\n\t\t152, 42, 141, 41, 82, 34, 55, 43, 136, 61, 126, 192, 80, 227,\n\t\t113, 151, 196, 80, 30, 128, 114, 68, 64, 252, 48, 121, 21,\n\t\t193, 122, 44, 36, 80, 115, 97, 65, 150, 21, 241, 129, 250,\n\t\t143, 202, 90, 111, 0, 102, 145, 85, 23, 30, 12, 36, 129, 246,\n\t\t28, 206, 8, 4, 60, 35, 180, 209, 4, 115, 48, 100, 114, 168,\n\t\t12, 80, 175, 146, 69, 41, 72, 229, 206, 180, 72, 146, 44,\n\t\t169, 59, 13, 183, 47, 3, 255, 124, 24, 221, 38, 24, 221, 0,\n\t\t65, 60, 236, 55, 163, 41, 245, 125, 224, 246, 96, 141, 33,\n\t\t230, 235, 92, 245, 61, 3, 12, 149, 234, 123, 248, 173, 115,\n\t\t11, 185, 200, 44, 0, 199, 233, 238, 67, 193, 129, 147, 33,\n\t\t43, 56, 246, 59, 195, 52, 207, 111, 33, 172, 179, 251, 70,\n\t\t99, 43, 120, 174, 215, 174, 157, 155, 76, 187, 197, 106, 184,\n\t\t106, 173, 19, 228, 195, 134, 100, 159, 69, 180, 65, 57, 171,\n\t\t229, 40, 189, 112, 208, 93, 13, 139, 225, 58, 65, 161, 51,\n\t\t249, 69, 29, 93, 217, 4, 22, 154, 132, 9, 226, 43, 255, 114,\n\t\t110, 35, 199, 153, 254, 201, 113, 162, 107, 128, 14, 101,\n\t\t22, 182, 129, 135, 99, 29, 191, 24, 69, 45, 87, 148, 94, 20,\n\t\t0, 131, 112, 194, 145, 220, 31, 186, 102, 6, 198, 204, 25,\n\t\t89, 56, 103, 214, 180, 57, 107, 202, 86, 253, 173, 156, 97,\n\t\t45, 103, 16, 217, 97, 182, 187, 63, 224, 63, 64, 88, 189,\n\t\t171, 207, 21, 254, 215, 157, 240, 215, 40, 127, 51, 199, 113,\n\t\t61, 179, 180, 214, 51, 79, 129, 61, 243, 180, 215, 51, 36,\n\t\t67, 159, 81, 248, 101, 180, 226, 205, 126, 45, 159, 161, 220,\n\t\t95, 203, 231, 83, 83, 182, 173, 249, 167, 59, 205, 130, 24,\n\t\t150, 73, 128, 223, 153, 162, 224, 137, 157, 156, 61, 248,\n\t\t100, 228, 21, 124, 139, 59, 85, 148, 24, 228, 63, 170, 108,\n\t\t76, 1, 50, 15, 79, 216, 177, 31, 77, 211, 94, 177, 98, 251,\n\t\t182, 154, 249, 233, 155, 203, 52, 28, 212, 12, 139, 187, 87,\n\t\t213, 48, 150, 98, 92, 30, 182, 2, 140, 234, 16, 98, 162, 171,\n\t\t70, 89, 6, 25, 246, 123, 151, 131, 251, 72, 32, 131, 151,\n\t\t4, 4, 216, 190, 23, 74, 226, 203, 238, 170, 43, 185, 92, 30,\n\t\t243, 29, 30, 118, 104, 30, 188, 62, 249, 228, 147, 132, 250,\n\t\t210, 220, 208, 162, 236, 123, 115, 79, 84, 212, 5, 167, 166,\n\t\t254, 237, 121, 218, 16, 137, 28, 219, 35, 87, 75, 220, 91,\n\t\t149, 107, 189, 17, 90, 150, 2, 156, 253, 67, 151, 191, 70,\n\t\t214, 168, 158, 122, 10, 170, 79, 121, 104, 209, 12, 92, 67,\n\t\t137, 247, 130, 44, 215, 205, 114, 91, 87, 91, 163, 122, 15,\n\t\t10, 224, 102, 191, 162, 48, 58, 95, 25, 254, 244, 189, 141,\n\t\t50, 41, 148, 209, 127, 31, 235, 195, 238, 135, 178, 216, 61,\n\t\t199, 71, 219, 224, 242, 95, 236, 158, 127, 42, 148, 94, 44,\n\t\t50, 186, 98, 64, 105, 120, 182, 54, 46, 25, 89, 188, 236,\n\t\t126, 244, 255, 126, 252, 246, 157, 52, 127, 240, 82, 156,\n\t\t157, 33, 78, 126, 5, 121, 255, 151, 94, 36, 31, 224, 18, 207,\n\t\t2, 229, 147, 56, 47, 183, 197, 177, 60, 124, 89, 180, 165,\n\t\t252, 94, 156, 241, 152, 236, 30, 242, 159, 165, 141, 120,\n\t\t1, 89, 222, 117, 199, 178, 81, 219, 168, 202, 214, 205, 197,\n\t\t228, 242, 230, 145, 16, 112, 172, 251, 62, 112, 243, 51, 186,\n\t\t220, 92, 181, 239, 138, 119, 172, 188, 25, 176, 242, 8, 79,\n\t\t30, 238, 6, 17, 49, 55, 105, 138, 191, 203, 226, 184, 179,\n\t\t255, 179, 4, 141, 191, 137, 88, 111, 38, 48, 134, 103, 210,\n\t\t243, 159, 180, 44, 151, 191, 124, 111, 82, 138, 103, 243,\n\t\t255, 27, 187, 196, 155, 22, 126, 89, 87, 251, 131, 10, 61,\n\t\t12, 2, 74, 186, 229, 27, 163, 23, 193, 214, 240, 141, 124,\n\t\t214, 92, 0, 105, 59, 150, 229, 158, 208, 229, 147, 230, 226,\n\t\t124, 17, 26, 220, 63, 232, 158, 201, 118, 54, 183, 249, 234,\n\t\t191, 254, 30, 0, 0, 255, 255, 80, 75, 7, 8, 252, 73, 101,\n\t\t65, 196, 94, 0, 0, 29, 17, 1, 0, 80, 75, 3, 4, 20, 0, 8, 0,\n\t\t8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t16, 0, 9, 0, 106, 115, 47, 112, 111, 112, 112, 101, 114, 46,\n\t\t109, 105, 110, 46, 106, 115, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 172, 124, 107, 151, 219, 182, 181, 232, 247, 254, 10,\n\t\t233, 156, 148, 4, 44, 136, 35, 37, 205, 189, 231, 82, 70,\n\t\t180, 28, 63, 26, 183, 126, 53, 158, 212, 77, 104, 174, 154,\n\t\t35, 130, 18, 18, 10, 96, 0, 104, 30, 149, 244, 223, 239, 194,\n\t\t139, 4, 37, 206, 216, 237, 58, 31, 108, 145, 192, 6, 176,\n\t\t177, 177, 223, 216, 156, 139, 71, 127, 24, 61, 229, 205, 157,\n\t\t160, 235, 141, 26, 129, 167, 112, 244, 130, 148, 68, 208,\n\t\t21, 31, 253, 66, 175, 121, 205, 71, 95, 207, 230, 255, 243,\n\t\t135, 209, 51, 42, 149, 160, 87, 59, 69, 202, 209, 142, 149,\n\t\t68, 140, 212, 134, 140, 94, 191, 188, 28, 189, 162, 43, 194,\n\t\t36, 25, 129, 218, 61, 40, 34, 182, 114, 84, 8, 50, 42, 212,\n\t\t104, 163, 84, 147, 94, 92, 240, 134, 48, 201, 119, 98, 69,\n\t\t18, 46, 214, 23, 14, 84, 94, 188, 126, 121, 9, 147, 63, 140,\n\t\t30, 93, 128, 106, 199, 86, 138, 114, 6, 8, 82, 112, 31, 243,\n\t\t171, 95, 201, 74, 197, 24, 171, 187, 134, 240, 106, 68, 110,\n\t\t27, 46, 148, 140, 162, 88, 175, 94, 81, 70, 202, 120, 236,\n\t\t59, 183, 188, 220, 213, 100, 105, 127, 18, 7, 138, 21, 128,\n\t\t105, 236, 167, 237, 102, 178, 163, 163, 200, 254, 38, 197,\n\t\t182, 92, 218, 71, 160, 96, 74, 146, 119, 188, 105, 136, 208,\n\t\t131, 143, 16, 168, 13, 149, 168, 197, 12, 238, 227, 157, 36,\n\t\t35, 77, 136, 149, 138, 23, 190, 125, 68, 0, 129, 123, 65,\n\t\t212, 78, 176, 17, 137, 162, 56, 179, 200, 143, 94, 56, 128,\n\t\t60, 198, 24, 239, 143, 137, 226, 239, 149, 160, 108, 157,\n\t\t172, 138, 186, 6, 4, 30, 219, 25, 148, 221, 53, 173, 192,\n\t\t124, 140, 49, 73, 24, 47, 201, 229, 93, 67, 160, 157, 53,\n\t\t203, 23, 215, 133, 24, 113, 188, 38, 234, 41, 223, 54, 250,\n\t\t20, 222, 171, 187, 154, 0, 130, 216, 174, 174, 225, 194, 173,\n\t\t174, 150, 60, 83, 121, 202, 187, 153, 121, 135, 91, 252, 195,\n\t\t229, 235, 87, 26, 21, 59, 255, 155, 98, 75, 150, 36, 37, 73,\n\t\t83, 8, 194, 212, 27, 94, 146, 195, 129, 36, 27, 46, 85, 55,\n\t\t156, 233, 225, 180, 2, 99, 143, 202, 168, 228, 171, 221, 150,\n\t\t48, 149, 92, 241, 242, 110, 33, 111, 168, 90, 109, 64, 55,\n\t\t35, 220, 175, 10, 73, 236, 82, 169, 121, 252, 254, 237, 179,\n\t\t159, 227, 212, 147, 39, 225, 55, 140, 136, 103, 189, 73, 12,\n\t\t216, 127, 251, 137, 3, 88, 211, 123, 212, 91, 167, 88, 1,\n\t\t2, 145, 192, 52, 225, 215, 68, 84, 53, 191, 65, 77, 240, 242,\n\t\t15, 36, 131, 183, 159, 61, 61, 46, 64, 177, 83, 252, 32, 87,\n\t\t130, 215, 245, 65, 119, 215, 197, 29, 188, 72, 20, 145, 10,\n\t\t136, 137, 156, 52, 112, 73, 82, 6, 52, 149, 130, 227, 16,\n\t\t193, 129, 206, 231, 154, 98, 75, 65, 210, 249, 204, 60, 53,\n\t\t36, 21, 228, 112, 104, 72, 7, 223, 220, 79, 37, 255, 240,\n\t\t188, 38, 250, 103, 81, 113, 1, 236, 89, 10, 48, 159, 193,\n\t\t101, 143, 156, 169, 62, 76, 196, 48, 73, 120, 85, 73, 162,\n\t\t222, 153, 147, 89, 48, 140, 49, 143, 34, 146, 48, 114, 235,\n\t\t39, 122, 79, 175, 106, 202, 214, 11, 200, 48, 32, 120, 168,\n\t\t11, 246, 39, 177, 84, 100, 81, 196, 218, 179, 242, 84, 162,\n\t\t81, 100, 79, 105, 140, 177, 126, 54, 135, 167, 159, 151, 83,\n\t\t205, 142, 89, 124, 249, 44, 70, 241, 229, 147, 239, 95, 61,\n\t\t143, 243, 132, 178, 146, 220, 190, 173, 64, 55, 15, 140, 162,\n\t\t88, 170, 66, 209, 149, 230, 46, 5, 24, 138, 27, 46, 169, 17,\n\t\t59, 184, 108, 0, 131, 41, 75, 201, 242, 244, 236, 79, 72,\n\t\t147, 222, 71, 179, 142, 206, 82, 211, 89, 111, 68, 5, 60,\n\t\t236, 118, 209, 238, 64, 69, 17, 104, 89, 93, 29, 14, 13, 32,\n\t\t73, 69, 133, 244, 211, 61, 221, 208, 186, 132, 250, 40, 131,\n\t\t19, 47, 131, 19, 215, 135, 96, 164, 164, 19, 140, 37, 73,\n\t\t75, 16, 54, 4, 67, 139, 86, 118, 199, 228, 112, 24, 119, 194,\n\t\t123, 56, 140, 149, 254, 119, 42, 205, 247, 51, 135, 101, 12,\n\t\t146, 172, 248, 86, 47, 229, 41, 245, 206, 17, 19, 40, 24,\n\t\t233, 197, 147, 103, 111, 159, 254, 244, 250, 249, 155, 203,\n\t\t127, 190, 123, 251, 254, 229, 229, 203, 183, 111, 254, 249,\n\t\t226, 237, 171, 87, 111, 63, 188, 124, 243, 103, 196, 48, 95,\n\t\t146, 84, 33, 138, 249, 82, 165, 4, 9, 220, 46, 183, 18, 164,\n\t\t80, 228, 199, 130, 173, 9, 128, 11, 145, 72, 162, 222, 171,\n\t\t66, 232, 3, 155, 65, 100, 222, 159, 179, 18, 80, 52, 131,\n\t\t6, 149, 26, 11, 141, 202, 150, 179, 39, 108, 69, 164, 226,\n\t\t226, 41, 103, 170, 160, 140, 136, 5, 173, 0, 25, 99, 92, 71,\n\t\t145, 210, 63, 135, 3, 75, 86, 182, 83, 2, 10, 253, 78, 37,\n\t\t168, 225, 178, 78, 27, 80, 219, 25, 43, 172, 9, 237, 249,\n\t\t174, 50, 202, 102, 89, 0, 251, 128, 20, 76, 53, 49, 75, 160,\n\t\t160, 105, 8, 136, 92, 119, 39, 63, 127, 92, 136, 181, 217,\n\t\t144, 76, 106, 194, 214, 106, 19, 69, 215, 156, 150, 163, 217,\n\t\t24, 227, 182, 43, 155, 231, 203, 240, 37, 141, 21, 111, 98,\n\t\t196, 177, 249, 213, 156, 177, 140, 173, 90, 184, 228, 77,\n\t\t156, 186, 231, 87, 164, 82, 177, 17, 192, 150, 187, 104, 5,\n\t\t44, 107, 97, 140, 217, 225, 208, 114, 22, 179, 248, 80, 252,\n\t\t25, 182, 70, 226, 12, 194, 174, 69, 217, 218, 129, 28, 14,\n\t\t212, 147, 68, 100, 60, 63, 122, 253, 167, 159, 91, 10, 84,\n\t\t150, 205, 44, 139, 124, 253, 101, 52, 248, 58, 143, 162, 240,\n\t\t13, 49, 92, 3, 133, 12, 9, 32, 162, 246, 165, 214, 123, 214,\n\t\t170, 149, 47, 167, 243, 116, 190, 104, 181, 175, 226, 205,\n\t\t4, 179, 71, 2, 105, 69, 172, 20, 223, 250, 55, 61, 98, 130,\n\t\t169, 121, 54, 126, 131, 123, 233, 144, 221, 134, 200, 198,\n\t\t183, 142, 222, 134, 186, 105, 172, 9, 142, 24, 182, 175, 24,\n\t\t243, 101, 252, 163, 158, 36, 78, 227, 239, 205, 50, 177, 71,\n\t\t161, 41, 132, 36, 47, 106, 94, 40, 64, 178, 248, 138, 139,\n\t\t146, 136, 120, 194, 39, 241, 7, 90, 170, 77, 156, 163, 249,\n\t\t12, 78, 134, 129, 88, 15, 168, 67, 108, 163, 17, 67, 28, 177,\n\t\t86, 218, 191, 2, 42, 139, 173, 166, 140, 39, 36, 71, 42, 115,\n\t\t188, 96, 222, 120, 22, 175, 106, 170, 173, 146, 123, 11, 32,\n\t\t121, 15, 210, 170, 243, 30, 196, 132, 101, 241, 182, 16, 107,\n\t\t202, 226, 9, 136, 127, 32, 102, 151, 198, 134, 196, 150, 233,\n\t\t12, 5, 224, 67, 112, 142, 34, 169, 35, 17, 204, 211, 112,\n\t\t55, 43, 96, 105, 76, 112, 207, 140, 32, 133, 239, 83, 49,\n\t\t200, 217, 157, 40, 58, 115, 37, 148, 151, 203, 253, 198, 96,\n\t\t144, 110, 90, 92, 144, 33, 26, 68, 55, 154, 164, 186, 221,\n\t\t210, 214, 53, 31, 59, 132, 214, 129, 26, 173, 9, 216, 31,\n\t\t17, 65, 123, 195, 34, 169, 99, 27, 146, 152, 73, 144, 229,\n\t\t168, 212, 114, 25, 73, 236, 146, 199, 96, 111, 59, 47, 241,\n\t\t28, 239, 143, 11, 37, 238, 180, 134, 53, 184, 195, 189, 214,\n\t\t145, 107, 162, 190, 231, 59, 86, 82, 182, 126, 106, 78, 232,\n\t\t71, 178, 82, 192, 170, 25, 205, 230, 36, 100, 115, 226, 217,\n\t\t124, 193, 29, 91, 35, 238, 217, 24, 241, 142, 189, 17, 111,\n\t\t25, 250, 72, 106, 73, 70, 15, 172, 116, 92, 21, 218, 245,\n\t\t81, 112, 111, 60, 148, 6, 239, 245, 132, 169, 157, 23, 41,\n\t\t222, 164, 102, 45, 71, 52, 55, 241, 212, 117, 59, 18, 251,\n\t\t165, 167, 6, 244, 136, 36, 30, 114, 210, 86, 0, 166, 251,\n\t\t35, 42, 177, 180, 196, 211, 110, 154, 229, 202, 15, 246, 181,\n\t\t113, 147, 55, 118, 242, 2, 75, 71, 208, 14, 242, 7, 247, 222,\n\t\t248, 21, 27, 131, 92, 213, 250, 26, 102, 170, 105, 137, 54,\n\t\t109, 139, 29, 50, 45, 180, 10, 172, 14, 135, 141, 61, 142,\n\t\t157, 241, 196, 22, 213, 20, 111, 193, 14, 197, 183, 49, 68,\n\t\t27, 247, 124, 23, 67, 212, 88, 20, 167, 184, 66, 141, 67,\n\t\t98, 138, 55, 94, 165, 173, 65, 19, 28, 241, 21, 32, 136, 123,\n\t\t53, 250, 159, 170, 180, 198, 50, 116, 72, 58, 222, 146, 14,\n\t\t149, 88, 243, 17, 42, 240, 14, 112, 136, 106, 172, 253, 89,\n\t\t180, 197, 74, 191, 109, 112, 160, 59, 182, 137, 85, 29, 151,\n\t\t188, 49, 148, 208, 106, 3, 173, 134, 32, 180, 208, 182, 32,\n\t\t139, 214, 95, 234, 173, 27, 69, 160, 208, 244, 197, 95, 217,\n\t\t95, 109, 95, 11, 115, 56, 166, 197, 156, 210, 12, 90, 102,\n\t\t189, 194, 107, 176, 215, 236, 82, 106, 200, 169, 129, 159,\n\t\t110, 144, 97, 166, 210, 128, 78, 237, 136, 233, 202, 241,\n\t\t82, 233, 100, 200, 49, 81, 217, 74, 143, 62, 169, 171, 196,\n\t\t170, 146, 75, 222, 224, 25, 242, 111, 26, 105, 60, 67, 227,\n\t\t38, 138, 164, 165, 248, 93, 127, 111, 237, 32, 179, 241, 155,\n\t\t161, 78, 61, 135, 217, 243, 149, 65, 17, 111, 166, 119, 232,\n\t\t202, 179, 147, 123, 51, 120, 226, 213, 244, 6, 93, 57, 158,\n\t\t116, 47, 29, 82, 119, 125, 164, 110, 28, 111, 128, 38, 138,\n\t\t198, 116, 201, 59, 55, 162, 134, 41, 199, 198, 197, 104, 125,\n\t\t187, 58, 244, 57, 193, 21, 174, 192, 21, 226, 16, 162, 171,\n\t\t142, 169, 238, 254, 3, 79, 33, 100, 169, 121, 142, 248, 103,\n\t\t109, 58, 195, 150, 119, 17, 197, 95, 1, 30, 10, 35, 186, 161,\n\t\t172, 228, 55, 9, 101, 140, 8, 39, 158, 218, 185, 10, 224,\n\t\t172, 92, 245, 0, 189, 116, 206, 32, 106, 176, 90, 206, 210,\n\t\t90, 51, 168, 244, 143, 173, 145, 46, 177, 225, 148, 102, 202,\n\t\t140, 26, 99, 193, 177, 25, 126, 145, 83, 102, 213, 26, 11,\n\t\t207, 204, 114, 13, 245, 252, 34, 142, 139, 86, 28, 203, 64,\n\t\t28, 111, 60, 229, 216, 125, 222, 245, 169, 11, 180, 28, 207,\n\t\t211, 184, 162, 183, 164, 180, 142, 63, 9, 29, 255, 195, 225,\n\t\t230, 52, 174, 122, 222, 198, 73, 198, 81, 182, 238, 116, 235,\n\t\t4, 9, 0, 63, 235, 33, 119, 225, 211, 201, 240, 5, 143, 162,\n\t\t152, 113, 70, 44, 38, 28, 197, 74, 20, 76, 86, 92, 108, 99,\n\t\t184, 128, 28, 243, 19, 120, 183, 18, 63, 28, 62, 31, 119,\n\t\t92, 27, 175, 129, 34, 97, 233, 211, 224, 63, 125, 25, 103,\n\t\t253, 169, 199, 89, 127, 202, 145, 180, 231, 55, 179, 167,\n\t\t53, 211, 58, 189, 89, 106, 170, 164, 54, 138, 48, 222, 230,\n\t\t53, 37, 55, 13, 23, 198, 5, 16, 80, 226, 59, 80, 162, 6, 46,\n\t\t180, 61, 50, 203, 215, 11, 231, 119, 216, 200, 206, 128, 45,\n\t\t129, 214, 109, 28, 40, 8, 81, 123, 86, 117, 168, 143, 234,\n\t\t207, 49, 53, 132, 105, 108, 121, 210, 206, 248, 217, 1, 105,\n\t\t141, 133, 243, 234, 175, 64, 141, 12, 146, 26, 127, 207, 30,\n\t\t225, 242, 227, 27, 80, 66, 75, 189, 45, 94, 1, 173, 124, 183,\n\t\t78, 109, 161, 53, 222, 90, 133, 182, 144, 214, 56, 87, 70,\n\t\t191, 84, 1, 115, 75, 167, 102, 240, 102, 98, 58, 145, 116,\n\t\t214, 187, 178, 26, 167, 10, 217, 93, 90, 205, 131, 215, 19,\n\t\t219, 107, 45, 185, 196, 149, 183, 66, 178, 53, 253, 110, 65,\n\t\t234, 199, 76, 205, 163, 87, 105, 20, 201, 142, 7, 110, 195,\n\t\t216, 211, 234, 95, 205, 132, 118, 15, 109, 254, 229, 81, 144,\n\t\t122, 121, 235, 125, 77, 68, 237, 72, 129, 191, 253, 50, 190,\n\t\t249, 54, 140, 93, 190, 205, 211, 153, 166, 235, 212, 36, 34,\n\t\t218, 240, 59, 46, 118, 138, 199, 173, 196, 144, 133, 229,\n\t\t204, 107, 160, 23, 20, 136, 66, 207, 108, 123, 43, 254, 77,\n\t\t223, 104, 40, 67, 227, 198, 186, 29, 214, 67, 107, 1, 45,\n\t\t41, 148, 253, 245, 3, 188, 53, 63, 122, 215, 109, 120, 222,\n\t\t214, 191, 80, 238, 225, 104, 121, 221, 65, 43, 123, 94, 77,\n\t\t207, 11, 106, 167, 214, 242, 240, 214, 228, 206, 146, 223,\n\t\t200, 157, 4, 18, 38, 219, 162, 9, 82, 131, 61, 231, 242, 55,\n\t\t114, 151, 146, 35, 146, 25, 201, 209, 190, 16, 164, 72, 111,\n\t\t129, 126, 129, 71, 120, 132, 137, 228, 66, 157, 36, 21, 253,\n\t\t33, 37, 26, 120, 74, 204, 207, 81, 59, 7, 101, 82, 209, 90,\n\t\t17, 209, 91, 169, 127, 214, 236, 252, 172, 191, 195, 61, 205,\n\t\t31, 69, 172, 107, 249, 193, 89, 100, 84, 227, 217, 227, 194,\n\t\t157, 245, 178, 200, 102, 185, 222, 89, 90, 186, 7, 227, 127,\n\t\t201, 166, 166, 10, 196, 211, 24, 102, 243, 220, 207, 94, 79,\n\t\t64, 181, 140, 167, 241, 164, 74, 227, 56, 80, 161, 175, 44,\n\t\t83, 121, 69, 253, 205, 151, 49, 212, 55, 33, 67, 125, 147,\n\t\t219, 60, 19, 197, 108, 249, 28, 152, 160, 91, 207, 232, 87,\n\t\t190, 2, 28, 81, 196, 130, 53, 223, 119, 228, 56, 79, 64, 66,\n\t\t196, 67, 103, 65, 117, 82, 219, 139, 205, 124, 187, 13, 104,\n\t\t32, 98, 67, 131, 180, 248, 14, 142, 50, 209, 143, 182, 182,\n\t\t142, 141, 122, 78, 235, 132, 121, 70, 234, 123, 174, 19, 222,\n\t\t26, 58, 218, 109, 230, 178, 219, 140, 117, 216, 99, 195, 230,\n\t\t177, 19, 2, 107, 105, 61, 143, 219, 164, 129, 150, 162, 216,\n\t\t182, 196, 199, 46, 62, 22, 164, 169, 139, 21, 1, 23, 122,\n\t\t200, 193, 12, 63, 88, 168, 131, 226, 205, 197, 26, 13, 240,\n\t\t173, 202, 72, 30, 70, 57, 79, 253, 113, 106, 3, 21, 48, 194,\n\t\t44, 119, 129, 140, 166, 125, 183, 111, 214, 23, 54, 214, 202,\n\t\t164, 192, 46, 85, 231, 54, 99, 183, 209, 37, 235, 184, 118,\n\t\t44, 196, 210, 236, 199, 239, 81, 234, 134, 218, 198, 228,\n\t\t102, 159, 165, 110, 176, 51, 198, 218, 22, 152, 24, 175, 208,\n\t\t141, 246, 57, 245, 157, 45, 89, 179, 38, 199, 42, 107, 242,\n\t\t137, 202, 202, 252, 226, 235, 41, 51, 63, 136, 102, 50, 199,\n\t\t218, 119, 147, 75, 149, 201, 124, 202, 178, 34, 79, 85, 118,\n\t\t9, 36, 204, 81, 112, 22, 207, 122, 114, 249, 68, 136, 226,\n\t\t46, 105, 4, 87, 92, 221, 53, 36, 169, 40, 43, 151, 246, 199,\n\t\t166, 230, 157, 144, 42, 77, 158, 110, 146, 55, 158, 132, 180,\n\t\t2, 67, 83, 188, 212, 36, 104, 213, 100, 215, 52, 164, 86,\n\t\t72, 166, 114, 237, 200, 31, 125, 28, 169, 49, 124, 24, 174,\n\t\t157, 184, 205, 139, 6, 199, 251, 14, 184, 100, 131, 141, 113,\n\t\t172, 100, 26, 207, 73, 107, 96, 89, 211, 21, 1, 51, 244, 6,\n\t\t40, 20, 179, 98, 75, 98, 196, 96, 59, 35, 77, 42, 46, 158,\n\t\t23, 171, 77, 135, 168, 130, 123, 149, 117, 87, 26, 121, 20,\n\t\t173, 56, 147, 188, 38, 201, 77, 33, 24, 136, 63, 109, 121,\n\t\t73, 43, 74, 68, 226, 97, 62, 141, 168, 28, 149, 164, 17, 100,\n\t\t85, 40, 82, 162, 209, 78, 146, 81, 0, 198, 62, 141, 99, 191,\n\t\t215, 222, 212, 135, 131, 74, 42, 182, 80, 9, 97, 197, 85,\n\t\t77, 202, 40, 34, 128, 105, 167, 155, 59, 25, 147, 73, 99,\n\t\t111, 74, 214, 103, 77, 16, 117, 45, 130, 84, 68, 16, 182,\n\t\t34, 61, 184, 182, 85, 107, 15, 6, 56, 82, 16, 30, 33, 10,\n\t\t140, 231, 111, 192, 122, 138, 106, 67, 101, 34, 85, 161, 72,\n\t\t66, 229, 51, 34, 149, 224, 119, 164, 244, 105, 143, 61, 101,\n\t\t82, 21, 108, 69, 82, 115, 83, 35, 181, 74, 146, 58, 86, 46,\n\t\t132, 224, 55, 239, 187, 87, 229, 46, 175, 204, 91, 85, 211,\n\t\t166, 33, 101, 58, 158, 35, 135, 80, 186, 63, 30, 23, 100,\n\t\t0, 233, 87, 160, 67, 0, 153, 71, 187, 69, 251, 220, 194, 217,\n\t\t87, 222, 104, 212, 53, 136, 245, 129, 95, 104, 207, 24, 34,\n\t\t146, 24, 61, 161, 149, 47, 126, 11, 250, 144, 190, 3, 13,\n\t\t44, 254, 197, 235, 249, 227, 148, 137, 222, 89, 114, 197,\n\t\t119, 172, 44, 4, 37, 210, 135, 43, 15, 65, 55, 69, 89, 82,\n\t\t182, 214, 104, 114, 65, 215, 148, 21, 245, 187, 22, 93, 210,\n\t\t195, 176, 183, 47, 124, 255, 150, 131, 205, 56, 30, 121, 10,\n\t\t194, 189, 12, 237, 53, 88, 9, 158, 141, 111, 167, 127, 96,\n\t\t209, 165, 11, 68, 210, 184, 184, 146, 188, 222, 41, 18, 35,\n\t\t130, 223, 217, 133, 219, 61, 35, 2, 81, 143, 165, 158, 154,\n\t\t156, 120, 185, 236, 77, 204, 217, 79, 77, 89, 40, 109, 221,\n\t\t82, 48, 4, 142, 199, 51, 116, 50, 194, 246, 152, 120, 167,\n\t\t227, 226, 15, 61, 5, 71, 18, 201, 183, 228, 204, 201, 208,\n\t\t110, 164, 150, 126, 227, 99, 56, 113, 243, 74, 128, 69, 145,\n\t\t214, 163, 189, 204, 216, 247, 122, 160, 15, 132, 20, 206,\n\t\t198, 115, 20, 111, 101, 140, 226, 15, 228, 234, 55, 170, 149,\n\t\t255, 107, 254, 175, 24, 197, 111, 99, 27, 202, 174, 54, 133,\n\t\t120, 162, 192, 12, 38, 138, 255, 164, 201, 249, 180, 144,\n\t\t4, 192, 9, 113, 10, 104, 174, 173, 241, 108, 193, 30, 43,\n\t\t231, 66, 44, 216, 100, 226, 85, 150, 202, 88, 142, 4, 166,\n\t\t203, 56, 158, 208, 9, 79, 109, 66, 124, 224, 14, 182, 151,\n\t\t129, 76, 140, 36, 102, 34, 247, 122, 87, 120, 223, 91, 123,\n\t\t30, 221, 86, 126, 0, 157, 101, 28, 20, 116, 77, 232, 15, 167,\n\t\t103, 24, 23, 77, 83, 223, 25, 233, 142, 181, 74, 10, 120,\n\t\t43, 17, 100, 203, 175, 201, 19, 47, 239, 32, 190, 157, 182,\n\t\t140, 21, 195, 80, 164, 44, 142, 29, 107, 197, 241, 64, 175,\n\t\t226, 205, 112, 135, 201, 229, 12, 246, 216, 224, 99, 176,\n\t\t203, 5, 49, 131, 125, 55, 180, 174, 159, 110, 10, 182, 38,\n\t\t131, 253, 217, 247, 32, 140, 104, 115, 28, 251, 221, 148,\n\t\t84, 106, 150, 121, 126, 77, 152, 122, 69, 165, 34, 140, 8,\n\t\t9, 96, 159, 63, 45, 89, 222, 50, 71, 216, 40, 10, 23, 232,\n\t\t174, 181, 28, 156, 185, 34, 11, 201, 106, 103, 235, 206, 237,\n\t\t73, 232, 32, 247, 130, 196, 238, 38, 90, 37, 37, 169, 138,\n\t\t93, 173, 254, 78, 201, 77, 106, 35, 203, 110, 134, 215, 46,\n\t\t56, 106, 67, 163, 54, 106, 237, 114, 15, 198, 101, 57, 11,\n\t\t66, 131, 73, 201, 162, 73, 138, 178, 236, 109, 221, 88, 220,\n\t\t125, 83, 72, 73, 175, 73, 58, 158, 29, 33, 18, 135, 195, 107,\n\t\t192, 64, 19, 222, 223, 185, 197, 17, 77, 154, 157, 220, 244,\n\t\t210, 146, 47, 59, 212, 120, 178, 51, 138, 192, 228, 127, 49,\n\t\t69, 122, 223, 231, 43, 198, 130, 72, 250, 47, 18, 163, 30,\n\t\t120, 31, 137, 133, 221, 37, 11, 174, 191, 94, 3, 129, 252,\n\t\t13, 194, 201, 80, 158, 132, 17, 190, 132, 109, 131, 211, 232,\n\t\t88, 32, 158, 16, 141, 132, 124, 110, 21, 134, 22, 148, 192,\n\t\t124, 190, 0, 112, 31, 72, 84, 15, 244, 112, 8, 116, 26, 126,\n\t\t9, 30, 48, 45, 129, 174, 116, 143, 171, 13, 41, 119, 53, 177,\n\t\t250, 49, 204, 237, 252, 216, 247, 229, 52, 161, 44, 51, 221,\n\t\t67, 43, 21, 110, 24, 34, 213, 223, 241, 185, 239, 67, 224,\n\t\t158, 12, 207, 232, 73, 216, 159, 241, 8, 251, 13, 216, 196,\n\t\t60, 39, 203, 224, 44, 111, 155, 60, 105, 29, 220, 9, 117,\n\t\t231, 40, 200, 7, 253, 244, 0, 117, 163, 8, 172, 180, 71, 82,\n\t\t63, 97, 116, 91, 24, 243, 36, 138, 45, 1, 67, 228, 11, 200,\n\t\t139, 127, 28, 60, 7, 211, 23, 146, 249, 231, 160, 158, 35,\n\t\t30, 99, 76, 162, 104, 76, 229, 155, 226, 13, 8, 47, 194, 32,\n\t\t140, 34, 42, 95, 80, 70, 141, 73, 234, 134, 255, 106, 79,\n\t\t41, 12, 178, 21, 60, 39, 118, 27, 95, 198, 241, 194, 5, 22,\n\t\t46, 28, 240, 33, 128, 189, 93, 65, 109, 188, 225, 194, 163,\n\t\t129, 192, 35, 138, 126, 6, 42, 227, 185, 214, 212, 12, 199,\n\t\t205, 109, 172, 13, 188, 85, 106, 92, 135, 15, 60, 159, 176,\n\t\t208, 190, 253, 245, 223, 196, 81, 207, 176, 24, 207, 141,\n\t\t91, 77, 206, 12, 0, 215, 145, 131, 36, 42, 104, 65, 6, 157,\n\t\t112, 201, 223, 251, 81, 245, 169, 215, 31, 90, 233, 54, 113,\n\t\t104, 205, 50, 162, 120, 60, 102, 81, 52, 96, 219, 91, 171,\n\t\t175, 135, 249, 18, 142, 206, 157, 78, 204, 109, 194, 99, 102,\n\t\t127, 109, 242, 126, 220, 169, 195, 79, 241, 68, 77, 226, 79,\n\t\t241, 226, 196, 197, 55, 23, 160, 159, 226, 73, 60, 242, 6,\n\t\t81, 187, 248, 130, 252, 190, 163, 130, 148, 163, 171, 187,\n\t\t81, 60, 17, 189, 94, 54, 50, 43, 140, 20, 31, 221, 112, 241,\n\t\t27, 26, 93, 145, 145, 220, 9, 162, 27, 40, 91, 213, 187, 146,\n\t\t140, 168, 26, 93, 145, 138, 11, 98, 71, 143, 99, 120, 60,\n\t\t15, 157, 255, 28, 240, 30, 97, 165, 187, 162, 148, 170, 16,\n\t\t58, 94, 180, 191, 182, 77, 247, 166, 193, 125, 240, 191, 254,\n\t\t55, 146, 242, 219, 46, 198, 34, 218, 101, 217, 122, 7, 134,\n\t\t79, 230, 48, 89, 113, 182, 42, 20, 104, 27, 103, 136, 195,\n\t\t160, 46, 138, 37, 130, 92, 19, 161, 29, 159, 148, 117, 136,\n\t\t253, 189, 187, 15, 190, 118, 183, 249, 91, 115, 173, 119,\n\t\t1, 192, 50, 253, 56, 61, 124, 156, 192, 229, 199, 242, 209,\n\t\t199, 68, 255, 15, 65, 242, 8, 94, 64, 36, 240, 132, 106, 156,\n\t\t26, 76, 179, 175, 115, 115, 112, 162, 75, 196, 209, 10, 232,\n\t\t24, 175, 233, 82, 117, 127, 140, 93, 238, 83, 250, 130, 169,\n\t\t198, 213, 73, 253, 177, 137, 83, 137, 249, 226, 74, 144, 226,\n\t\t55, 91, 8, 245, 71, 87, 55, 245, 71, 17, 167, 206, 216, 165,\n\t\t18, 51, 91, 7, 85, 226, 53, 144, 237, 182, 202, 76, 229, 23,\n\t\t243, 217, 236, 145, 56, 154, 196, 241, 70, 147, 191, 57, 28,\n\t\t226, 107, 147, 195, 109, 236, 162, 133, 7, 47, 176, 7, 89,\n\t\t126, 5, 238, 203, 122, 127, 201, 37, 69, 250, 217, 225, 15,\n\t\t221, 133, 20, 14, 229, 214, 53, 108, 79, 227, 159, 167, 167,\n\t\t145, 205, 208, 44, 255, 108, 114, 131, 65, 212, 180, 121,\n\t\t180, 11, 240, 113, 114, 248, 56, 133, 23, 247, 230, 14, 73,\n\t\t162, 4, 221, 2, 109, 33, 100, 112, 74, 207, 64, 51, 16, 234,\n\t\t79, 109, 65, 158, 36, 133, 208, 92, 129, 14, 31, 229, 5, 60,\n\t\t66, 184, 104, 50, 153, 71, 145, 73, 202, 234, 199, 238, 176,\n\t\t145, 246, 73, 251, 66, 251, 214, 70, 51, 35, 73, 154, 66,\n\t\t232, 248, 65, 139, 233, 205, 134, 42, 50, 146, 77, 177, 34,\n\t\t64, 66, 83, 47, 121, 26, 168, 23, 163, 21, 223, 110, 139,\n\t\t17, 64, 112, 164, 35, 93, 82, 148, 137, 11, 215, 75, 124,\n\t\t241, 81, 62, 66, 31, 229, 163, 195, 71, 57, 185, 64, 5, 54,\n\t\t168, 200, 101, 214, 228, 105, 214, 180, 66, 32, 91, 201, 200,\n\t\t12, 154, 150, 72, 37, 204, 102, 121, 14, 209, 73, 219, 60,\n\t\t207, 61, 180, 159, 65, 78, 230, 16, 230, 29, 7, 21, 39, 84,\n\t\t237, 206, 10, 88, 13, 60, 22, 169, 128, 231, 105, 164, 6,\n\t\t143, 231, 97, 234, 172, 220, 173, 200, 96, 122, 54, 54, 42,\n\t\t36, 35, 78, 57, 76, 231, 134, 202, 230, 248, 39, 49, 138,\n\t\t167, 193, 185, 43, 184, 4, 61, 72, 172, 244, 58, 51, 68, 96,\n\t\t218, 156, 116, 77, 108, 223, 92, 247, 17, 191, 73, 5, 143,\n\t\t40, 203, 239, 101, 20, 173, 28, 168, 45, 113, 208, 204, 82,\n\t\t12, 56, 37, 26, 111, 50, 96, 155, 52, 89, 126, 54, 198, 15,\n\t\t208, 76, 229, 19, 204, 31, 129, 120, 106, 183, 198, 166, 243,\n\t\t220, 148, 218, 64, 59, 111, 160, 97, 255, 17, 212, 205, 32,\n\t\t134, 149, 139, 131, 17, 237, 69, 226, 162, 189, 162, 151,\n\t\t218, 69, 246, 97, 181, 196, 34, 112, 31, 74, 76, 79, 18, 138,\n\t\t173, 225, 250, 25, 76, 24, 92, 102, 19, 134, 102, 121, 250,\n\t\t79, 192, 80, 131, 36, 42, 161, 147, 43, 140, 113, 185, 4,\n\t\t141, 189, 25, 225, 217, 44, 71, 141, 187, 214, 229, 217, 60,\n\t\t135, 62, 95, 122, 31, 216, 196, 131, 185, 58, 43, 3, 228,\n\t\t59, 12, 148, 185, 60, 118, 64, 206, 109, 208, 112, 81, 52,\n\t\t0, 232, 102, 51, 201, 7, 147, 73, 104, 16, 57, 250, 216, 247,\n\t\t47, 248, 117, 161, 54, 201, 150, 50, 244, 55, 251, 40, 140,\n\t\t247, 252, 139, 125, 169, 106, 206, 5, 250, 202, 1, 21, 183,\n\t\t136, 16, 60, 20, 185, 90, 45, 53, 92, 89, 236, 181, 27, 82,\n\t\t4, 103, 241, 243, 114, 77, 98, 20, 95, 10, 90, 234, 112, 18,\n\t\t197, 47, 168, 32, 21, 191, 213, 129, 54, 193, 51, 196, 136,\n\t\t142, 163, 201, 99, 69, 218, 72, 154, 76, 240, 28, 210, 10,\n\t\t16, 18, 69, 179, 199, 152, 21, 215, 116, 93, 40, 46, 146,\n\t\t157, 36, 226, 201, 90, 107, 204, 150, 157, 73, 198, 72, 14,\n\t\t225, 158, 19, 60, 183, 22, 193, 213, 190, 234, 193, 78, 151,\n\t\t190, 19, 124, 75, 37, 65, 148, 96, 186, 60, 245, 81, 84, 32,\n\t\t100, 109, 31, 220, 43, 237, 241, 107, 185, 232, 207, 145,\n\t\t8, 34, 121, 125, 77, 0, 76, 212, 134, 48, 16, 142, 48, 146,\n\t\t162, 85, 36, 60, 30, 211, 127, 119, 25, 73, 212, 37, 221,\n\t\t18, 190, 83, 131, 115, 34, 110, 146, 36, 72, 16, 179, 177,\n\t\t241, 24, 56, 188, 94, 191, 127, 201, 154, 157, 122, 77, 212,\n\t\t134, 151, 79, 57, 83, 228, 86, 69, 209, 153, 165, 121, 109,\n\t\t226, 183, 198, 142, 190, 120, 253, 254, 229, 243, 209, 124,\n\t\t230, 106, 122, 7, 232, 11, 145, 36, 184, 47, 177, 218, 96,\n\t\t3, 50, 242, 201, 67, 94, 141, 20, 132, 106, 35, 248, 205,\n\t\t136, 145, 155, 209, 229, 93, 67, 158, 11, 193, 5, 136, 159,\n\t\t22, 140, 113, 53, 90, 21, 117, 173, 181, 113, 93, 72, 57,\n\t\t42, 228, 168, 104, 247, 29, 195, 35, 42, 131, 249, 225, 190,\n\t\t21, 102, 98, 23, 107, 175, 172, 135, 178, 44, 220, 38, 88,\n\t\t120, 66, 216, 110, 75, 132, 246, 13, 113, 248, 114, 56, 140,\n\t\t231, 200, 212, 68, 84, 116, 189, 179, 253, 227, 25, 138, 175,\n\t\t139, 122, 71, 98, 237, 218, 153, 148, 236, 141, 160, 202,\n\t\t245, 65, 228, 28, 103, 203, 203, 239, 4, 111, 136, 80, 119,\n\t\t128, 32, 110, 110, 156, 120, 235, 217, 181, 56, 247, 11, 226,\n\t\t180, 155, 10, 84, 151, 68, 71, 28, 34, 102, 218, 16, 131,\n\t\t72, 29, 143, 0, 162, 162, 79, 81, 237, 57, 123, 79, 75, 251,\n\t\t155, 100, 121, 31, 14, 10, 237, 13, 234, 41, 71, 221, 38,\n\t\t211, 241, 12, 133, 59, 212, 239, 126, 71, 38, 120, 78, 77,\n\t\t190, 157, 35, 114, 68, 53, 241, 55, 132, 58, 184, 94, 179,\n\t\t195, 33, 228, 206, 54, 43, 134, 56, 158, 47, 248, 153, 171,\n\t\t185, 224, 147, 9, 244, 64, 76, 163, 170, 2, 159, 147, 231,\n\t\t72, 65, 55, 123, 119, 135, 176, 41, 228, 219, 27, 230, 247,\n\t\t96, 107, 247, 53, 41, 162, 8, 144, 140, 229, 230, 0, 187,\n\t\t107, 128, 35, 170, 180, 166, 40, 118, 138, 79, 173, 71, 140,\n\t\t236, 77, 173, 253, 153, 106, 207, 216, 196, 78, 109, 175,\n\t\t141, 163, 116, 139, 237, 179, 183, 175, 190, 215, 187, 60,\n\t\t182, 213, 66, 184, 27, 214, 240, 165, 107, 245, 3, 141, 202,\n\t\t182, 32, 246, 186, 199, 182, 216, 238, 28, 109, 9, 174, 188,\n\t\t171, 252, 13, 68, 27, 130, 247, 47, 94, 189, 124, 151, 198,\n\t\t85, 77, 155, 24, 61, 125, 245, 246, 233, 95, 63, 188, 124,\n\t\t255, 60, 141, 87, 53, 95, 253, 118, 67, 37, 137, 209, 211,\n\t\t183, 63, 189, 185, 124, 254, 99, 216, 201, 119, 76, 17, 209,\n\t\t193, 28, 209, 106, 88, 26, 20, 8, 252, 58, 29, 219, 34, 241,\n\t\t229, 53, 95, 203, 240, 37, 221, 31, 23, 210, 6, 212, 72, 193,\n\t\t161, 188, 68, 136, 128, 247, 50, 201, 239, 59, 34, 213, 73,\n\t\t80, 78, 93, 134, 0, 30, 237, 52, 246, 13, 83, 23, 174, 219,\n\t\t215, 228, 202, 220, 64, 109, 168, 132, 253, 172, 26, 182,\n\t\t37, 142, 42, 121, 102, 221, 116, 137, 68, 47, 164, 223, 7,\n\t\t137, 204, 116, 60, 71, 109, 250, 88, 191, 244, 242, 16, 105,\n\t\t150, 31, 79, 82, 252, 58, 92, 228, 201, 175, 191, 239, 136,\n\t\t184, 91, 106, 131, 152, 242, 48, 43, 104, 43, 249, 93, 55,\n\t\t211, 221, 236, 158, 52, 63, 222, 31, 81, 24, 75, 159, 34,\n\t\t29, 36, 86, 69, 247, 12, 7, 34, 110, 2, 247, 244, 124, 254,\n\t\t140, 228, 103, 132, 232, 245, 30, 14, 251, 99, 56, 245, 82,\n\t\t244, 186, 211, 189, 241, 130, 84, 47, 199, 219, 43, 3, 24,\n\t\t222, 215, 131, 181, 1, 58, 228, 78, 201, 17, 13, 227, 251,\n\t\t112, 125, 128, 139, 204, 167, 202, 71, 230, 39, 184, 13, 223,\n\t\t203, 133, 23, 101, 42, 225, 236, 21, 47, 74, 24, 69, 254,\n\t\t17, 208, 192, 55, 163, 222, 101, 163, 93, 162, 13, 81, 151,\n\t\t236, 241, 235, 89, 230, 115, 21, 173, 77, 255, 230, 163, 151,\n\t\t113, 90, 52, 46, 157, 107, 49, 24, 78, 4, 15, 100, 170, 112,\n\t\t227, 45, 65, 169, 149, 123, 102, 10, 42, 98, 187, 108, 140,\n\t\t172, 154, 62, 23, 164, 223, 156, 6, 212, 226, 112, 60, 34,\n\t\t59, 168, 180, 108, 126, 255, 168, 31, 134, 70, 13, 225, 123,\n\t\t255, 20, 47, 6, 23, 30, 74, 126, 223, 63, 199, 79, 189, 57,\n\t\t114, 109, 206, 64, 171, 187, 87, 36, 249, 73, 209, 90, 226,\n\t\t240, 126, 3, 247, 189, 196, 229, 186, 230, 87, 69, 237, 210,\n\t\t217, 208, 125, 45, 102, 134, 161, 85, 224, 163, 75, 92, 17,\n\t\t221, 224, 5, 2, 239, 219, 174, 214, 233, 69, 189, 251, 43,\n\t\t173, 19, 122, 199, 163, 173, 224, 73, 218, 222, 220, 88, 186,\n\t\t155, 166, 112, 119, 71, 228, 111, 172, 250, 173, 45, 203,\n\t\t166, 123, 185, 161, 149, 74, 247, 134, 163, 211, 249, 108,\n\t\t134, 72, 183, 74, 197, 6, 92, 188, 48, 224, 224, 88, 245,\n\t\t99, 9, 19, 155, 244, 235, 86, 168, 142, 195, 219, 36, 138,\n\t\t15, 79, 4, 14, 249, 190, 193, 180, 11, 86, 92, 80, 215, 218,\n\t\t47, 109, 7, 123, 5, 11, 37, 150, 253, 250, 132, 66, 55, 156,\n\t\t148, 34, 160, 26, 239, 141, 77, 75, 11, 163, 131, 74, 36,\n\t\t178, 82, 7, 12, 172, 236, 181, 76, 68, 86, 228, 211, 38, 43,\n\t\t114, 24, 222, 244, 58, 101, 106, 245, 87, 131, 106, 109, 203,\n\t\t219, 239, 47, 142, 71, 119, 63, 236, 233, 246, 245, 25, 221,\n\t\t254, 225, 33, 102, 71, 212, 8, 115, 126, 111, 221, 71, 104,\n\t\t126, 208, 55, 15, 16, 187, 251, 72, 66, 157, 95, 219, 218,\n\t\t79, 151, 188, 147, 234, 111, 98, 22, 65, 83, 103, 44, 76,\n\t\t118, 17, 112, 220, 0, 14, 253, 125, 126, 255, 198, 200, 196,\n\t\t144, 39, 147, 217, 44, 172, 57, 36, 83, 84, 135, 169, 173,\n\t\t203, 42, 49, 205, 88, 190, 160, 254, 250, 139, 182, 215, 93,\n\t\t186, 29, 199, 177, 89, 161, 192, 215, 231, 248, 161, 33, 244,\n\t\t144, 242, 215, 204, 136, 159, 222, 35, 67, 183, 140, 240,\n\t\t171, 72, 187, 72, 137, 66, 146, 224, 194, 125, 145, 164, 61,\n\t\t51, 202, 5, 85, 119, 65, 237, 122, 123, 179, 188, 197, 251,\n\t\t70, 208, 109, 33, 238, 206, 56, 154, 227, 42, 35, 109, 16,\n\t\t172, 159, 31, 23, 25, 201, 163, 104, 172, 18, 34, 87, 69,\n\t\t67, 62, 80, 181, 249, 209, 163, 108, 168, 249, 21, 208, 112,\n\t\t72, 195, 65, 237, 244, 218, 15, 26, 56, 60, 34, 73, 86, 92,\n\t\t163, 54, 180, 78, 23, 32, 147, 62, 255, 50, 92, 101, 188,\n\t\t135, 194, 119, 159, 65, 129, 225, 191, 0, 61, 198, 160, 48,\n\t\t5, 225, 204, 149, 45, 5, 74, 43, 87, 3, 4, 91, 12, 181, 159,\n\t\t117, 108, 235, 148, 234, 65, 59, 110, 101, 220, 164, 140,\n\t\t50, 239, 31, 246, 5, 144, 192, 101, 220, 238, 50, 78, 99,\n\t\t71, 215, 120, 81, 57, 105, 169, 208, 54, 83, 185, 185, 240,\n\t\t62, 191, 177, 199, 149, 118, 214, 253, 81, 165, 237, 26, 162,\n\t\t119, 121, 224, 100, 63, 71, 142, 59, 210, 111, 209, 153, 20,\n\t\t164, 253, 98, 215, 35, 250, 141, 144, 230, 146, 175, 137,\n\t\t218, 16, 225, 101, 236, 79, 95, 164, 208, 188, 82, 210, 210,\n\t\t230, 24, 70, 235, 177, 192, 46, 135, 90, 239, 68, 227, 9,\n\t\t252, 11, 106, 188, 210, 234, 163, 223, 210, 204, 20, 93, 54,\n\t\t75, 183, 203, 78, 209, 151, 186, 177, 175, 201, 154, 123,\n\t\t139, 170, 120, 38, 243, 199, 2, 48, 173, 198, 116, 140, 113,\n\t\t66, 217, 172, 204, 177, 235, 157, 114, 173, 206, 16, 207,\n\t\t202, 252, 59, 221, 36, 31, 28, 32, 53, 15, 107, 157, 102,\n\t\t106, 99, 60, 229, 190, 125, 72, 59, 249, 11, 17, 147, 225,\n\t\t254, 61, 20, 246, 240, 50, 94, 79, 23, 163, 56, 60, 151, 211,\n\t\t186, 84, 170, 131, 90, 87, 120, 77, 43, 16, 75, 243, 29, 116,\n\t\t103, 92, 169, 137, 201, 135, 52, 148, 113, 112, 223, 147,\n\t\t154, 172, 20, 23, 154, 192, 99, 218, 77, 109, 43, 123, 77,\n\t\t65, 249, 217, 192, 129, 175, 17, 251, 73, 217, 15, 79, 126,\n\t\t124, 243, 242, 205, 159, 211, 209, 39, 179, 3, 143, 223, 167,\n\t\t209, 118, 39, 213, 232, 138, 140, 86, 27, 90, 151, 35, 141,\n\t\t157, 146, 35, 59, 235, 200, 1, 141, 99, 136, 136, 187, 210,\n\t\t189, 159, 101, 154, 128, 231, 36, 110, 60, 207, 149, 184,\n\t\t9, 120, 174, 240, 60, 213, 147, 144, 142, 167, 4, 68, 53,\n\t\t46, 206, 19, 170, 149, 110, 12, 62, 35, 67, 91, 83, 55, 253,\n\t\t138, 223, 248, 2, 15, 180, 209, 32, 33, 219, 173, 116, 195,\n\t\t149, 255, 164, 204, 201, 226, 14, 191, 7, 20, 102, 117, 190,\n\t\t40, 179, 85, 62, 221, 61, 150, 217, 54, 31, 226, 163, 109,\n\t\t62, 197, 186, 111, 10, 44, 32, 132, 168, 204, 182, 249, 100,\n\t\t247, 157, 204, 86, 247, 140, 152, 96, 11, 50, 213, 32, 3,\n\t\t106, 98, 125, 54, 200, 127, 20, 99, 198, 149, 89, 157, 95,\n\t\t124, 61, 221, 93, 124, 141, 238, 176, 26, 176, 134, 253, 47,\n\t\t85, 238, 186, 239, 232, 42, 243, 225, 31, 122, 126, 210, 237,\n\t\t191, 15, 172, 122, 223, 7, 162, 107, 124, 53, 29, 218, 239,\n\t\t205, 244, 185, 23, 203, 107, 252, 21, 248, 11, 144, 89, 157,\n\t\t79, 119, 232, 26, 162, 153, 222, 141, 225, 28, 127, 113, 76,\n\t\t131, 237, 153, 14, 12, 152, 14, 190, 10, 2, 24, 218, 162,\n\t\t191, 129, 107, 171, 162, 25, 218, 160, 56, 134, 136, 105,\n\t\t113, 68, 196, 171, 185, 236, 118, 106, 70, 229, 177, 173,\n\t\t80, 243, 18, 250, 127, 62, 227, 63, 208, 10, 124, 184, 71,\n\t\t52, 205, 197, 75, 40, 139, 180, 2, 36, 113, 229, 111, 81,\n\t\t20, 22, 166, 97, 60, 80, 255, 213, 23, 98, 254, 159, 216,\n\t\t251, 1, 191, 230, 204, 3, 48, 133, 79, 247, 9, 17, 197, 151,\n\t\t128, 65, 116, 175, 156, 205, 243, 195, 33, 142, 81, 131, 179,\n\t\t220, 95, 174, 169, 228, 138, 108, 138, 107, 202, 133, 189,\n\t\t101, 27, 109, 72, 98, 146, 27, 13, 206, 24, 162, 121, 112,\n\t\t219, 166, 187, 186, 116, 70, 131, 255, 5, 24, 60, 237, 62,\n\t\t77, 122, 24, 40, 52, 158, 121, 64, 127, 73, 215, 224, 110,\n\t\t225, 133, 119, 34, 155, 115, 243, 43, 81, 105, 78, 141, 141,\n\t\t49, 150, 135, 67, 227, 82, 31, 24, 227, 114, 50, 239, 72,\n\t\t254, 121, 162, 56, 47, 236, 204, 11, 170, 241, 80, 133, 93,\n\t\t133, 127, 65, 91, 220, 230, 248, 89, 20, 85, 160, 176, 213,\n\t\t74, 240, 187, 10, 212, 198, 251, 130, 135, 67, 231, 100, 56,\n\t\t16, 211, 254, 88, 67, 88, 224, 195, 193, 231, 246, 29, 128,\n\t\t213, 40, 118, 18, 197, 27, 13, 208, 229, 245, 29, 140, 110,\n\t\t55, 115, 56, 96, 180, 193, 225, 220, 246, 179, 72, 136, 86,\n\t\t184, 135, 148, 251, 106, 18, 162, 53, 14, 38, 49, 31, 75,\n\t\t66, 180, 195, 253, 197, 121, 59, 247, 85, 111, 155, 155, 147,\n\t\t61, 173, 122, 27, 88, 159, 98, 187, 67, 119, 159, 49, 243,\n\t\t76, 171, 157, 241, 88, 25, 73, 250, 123, 33, 168, 201, 40,\n\t\t201, 40, 2, 119, 246, 47, 33, 184, 111, 119, 204, 210, 186,\n\t\t201, 93, 150, 11, 179, 246, 248, 20, 104, 237, 218, 58, 168,\n\t\t29, 92, 128, 237, 225, 112, 117, 56, 220, 88, 139, 238, 68,\n\t\t22, 143, 103, 200, 116, 216, 90, 138, 38, 43, 39, 243, 28,\n\t\t162, 155, 40, 2, 2, 255, 25, 8, 216, 47, 54, 101, 19, 32,\n\t\t204, 55, 4, 34, 141, 227, 1, 229, 235, 190, 208, 61, 101,\n\t\t159, 167, 131, 82, 254, 112, 201, 38, 52, 181, 150, 131, 90,\n\t\t136, 32, 155, 83, 180, 126, 226, 17, 121, 17, 241, 169, 198,\n\t\t7, 125, 191, 246, 91, 168, 35, 50, 202, 204, 43, 197, 255,\n\t\t27, 42, 197, 249, 127, 22, 193, 118, 198, 153, 98, 230, 55,\n\t\t42, 48, 235, 5, 172, 15, 27, 103, 243, 145, 158, 243, 162,\n\t\t45, 179, 156, 149, 191, 4, 181, 242, 61, 99, 156, 99, 145,\n\t\t241, 124, 10, 228, 210, 244, 156, 56, 131, 121, 58, 235, 159,\n\t\t229, 37, 24, 168, 139, 197, 107, 237, 17, 105, 159, 110, 67,\n\t\t75, 226, 105, 243, 63, 15, 58, 195, 15, 185, 114, 122, 150,\n\t\t24, 197, 39, 129, 236, 169, 51, 167, 6, 213, 11, 199, 207,\n\t\t134, 103, 61, 207, 208, 157, 45, 96, 171, 254, 138, 45, 57,\n\t\t194, 192, 92, 104, 107, 229, 191, 34, 122, 108, 100, 254,\n\t\t112, 176, 223, 15, 125, 231, 244, 130, 126, 87, 188, 249,\n\t\t206, 75, 190, 126, 55, 29, 143, 157, 62, 49, 187, 53, 127,\n\t\t182, 37, 209, 123, 235, 246, 97, 223, 205, 93, 113, 210, 21,\n\t\t135, 103, 241, 237, 148, 239, 212, 148, 87, 211, 14, 141,\n\t\t88, 7, 188, 198, 211, 52, 179, 205, 31, 152, 109, 254, 69,\n\t\t179, 141, 231, 97, 134, 97, 101, 63, 167, 49, 213, 172, 237,\n\t\t9, 126, 251, 101, 41, 131, 91, 19, 191, 220, 33, 122, 110,\n\t\t3, 196, 191, 113, 28, 65, 57, 109, 120, 18, 235, 102, 247,\n\t\t100, 181, 34, 53, 17, 70, 191, 45, 218, 204, 188, 56, 173,\n\t\t111, 232, 92, 233, 147, 49, 159, 70, 54, 99, 57, 218, 242,\n\t\t107, 82, 142, 20, 31, 125, 10, 247, 251, 169, 171, 82, 42,\n\t\t88, 57, 186, 161, 117, 61, 98, 92, 217, 2, 165, 70, 203, 61,\n\t\t41, 71, 148, 141, 170, 157, 218, 9, 50, 186, 38, 66, 106,\n\t\t69, 171, 125, 114, 155, 120, 75, 126, 149, 254, 251, 5, 137,\n\t\t74, 84, 116, 95, 88, 136, 165, 58, 221, 64, 170, 45, 227,\n\t\t80, 74, 5, 85, 120, 7, 106, 104, 178, 7, 206, 49, 73, 105,\n\t\t235, 163, 28, 209, 198, 125, 41, 244, 11, 160, 206, 76, 41,\n\t\t222, 164, 127, 3, 212, 218, 33, 247, 173, 144, 126, 247, 6,\n\t\t200, 126, 75, 164, 225, 173, 253, 58, 162, 21, 14, 172, 12,\n\t\t247, 31, 226, 248, 0, 113, 29, 36, 13, 88, 171, 38, 156, 131,\n\t\t126, 117, 146, 201, 209, 114, 81, 6, 211, 173, 150, 83, 159,\n\t\t4, 152, 108, 28, 10, 233, 198, 101, 116, 218, 121, 215, 26,\n\t\t202, 104, 153, 201, 198, 98, 149, 110, 220, 159, 11, 136,\n\t\t162, 43, 184, 205, 174, 114, 108, 87, 169, 11, 69, 190, 41,\n\t\t65, 60, 145, 147, 184, 185, 69, 163, 120, 82, 218, 135, 25,\n\t\t140, 209, 54, 91, 229, 120, 134, 182, 217, 218, 252, 244,\n\t\t202, 150, 59, 28, 187, 143, 85, 239, 250, 136, 206, 211, 57,\n\t\t186, 233, 33, 53, 79, 231, 11, 51, 105, 249, 232, 206, 78,\n\t\t43, 31, 221, 244, 39, 94, 77, 98, 141, 197, 218, 220, 134,\n\t\t63, 199, 251, 255, 10, 106, 186, 255, 43, 13, 180, 100, 240,\n\t\t113, 86, 39, 134, 206, 204, 61, 239, 201, 102, 91, 130, 232,\n\t\t187, 183, 109, 67, 235, 215, 191, 15, 251, 79, 92, 251, 62,\n\t\t140, 177, 107, 167, 220, 54, 158, 161, 219, 238, 132, 239,\n\t\t252, 113, 30, 81, 39, 110, 94, 222, 255, 223, 131, 26, 219,\n\t\t237, 233, 215, 65, 179, 236, 113, 254, 235, 96, 111, 127,\n\t\t195, 97, 180, 18, 69, 225, 13, 75, 127, 55, 237, 93, 220,\n\t\t175, 160, 63, 104, 96, 215, 246, 118, 35, 237, 223, 6, 135,\n\t\t159, 188, 190, 2, 20, 41, 68, 16, 63, 117, 250, 27, 252, 22,\n\t\t240, 176, 170, 197, 129, 125, 246, 107, 150, 51, 16, 255,\n\t\t9, 75, 91, 237, 215, 175, 247, 236, 125, 2, 128, 26, 136,\n\t\t126, 5, 10, 117, 146, 206, 63, 251, 29, 137, 249, 50, 233,\n\t\t236, 124, 173, 170, 57, 106, 21, 78, 142, 112, 241, 135, 139,\n\t\t139, 255, 30, 217, 63, 113, 247, 186, 104, 26, 202, 214, 63,\n\t\t253, 248, 10, 187, 100, 196, 150, 178, 228, 87, 153, 108,\n\t\t139, 230, 15, 255, 63, 0, 0, 255, 255, 80, 75, 7, 8, 175,\n\t\t118, 47, 205, 53, 28, 0, 0, 113, 79, 0, 0, 80, 75, 3, 4, 20,\n\t\t0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 18, 0, 9, 0, 106, 115, 47, 115, 109, 111, 111, 116,\n\t\t104, 115, 99, 114, 111, 108, 108, 46, 106, 115, 85, 84, 5,\n\t\t0, 1, 127, 106, 41, 96, 236, 25, 93, 115, 219, 184, 241, 221,\n\t\t191, 98, 243, 98, 81, 62, 133, 74, 218, 222, 77, 71, 174,\n\t\t122, 61, 39, 238, 197, 173, 29, 223, 196, 154, 212, 158, 206,\n\t\t77, 7, 22, 87, 34, 46, 16, 192, 35, 64, 201, 154, 200, 247,\n\t\t219, 59, 248, 32, 8, 240, 195, 73, 166, 55, 147, 151, 234,\n\t\t69, 36, 246, 3, 251, 141, 197, 114, 122, 114, 4, 39, 32, 55,\n\t\t66, 168, 92, 46, 75, 193, 24, 20, 130, 237, 87, 148, 49, 120,\n\t\t14, 219, 23, 233, 31, 211, 111, 53, 70, 174, 84, 33, 103,\n\t\t211, 41, 37, 155, 172, 146, 138, 240, 116, 77, 85, 94, 221,\n\t\t167, 84, 76, 67, 106, 141, 251, 135, 23, 47, 191, 131, 100,\n\t\t57, 134, 215, 6, 19, 254, 73, 164, 66, 62, 129, 127, 96, 137,\n\t\t27, 74, 36, 92, 33, 167, 203, 28, 25, 163, 240, 28, 174, 46,\n\t\t22, 112, 73, 151, 200, 37, 30, 193, 201, 244, 232, 40, 89,\n\t\t85, 124, 169, 168, 224, 201, 110, 2, 217, 4, 42, 158, 225,\n\t\t138, 114, 204, 198, 240, 241, 8, 96, 84, 73, 4, 169, 74, 186,\n\t\t84, 163, 211, 163, 35, 0, 173, 2, 192, 9, 16, 70, 137, 68,\n\t\t105, 95, 118, 51, 216, 81, 158, 137, 29, 172, 153, 184, 39,\n\t\t12, 196, 253, 47, 184, 84, 22, 152, 205, 32, 19, 203, 106,\n\t\t131, 220, 45, 248, 45, 102, 205, 163, 129, 76, 205, 6, 83,\n\t\t111, 147, 35, 128, 90, 58, 191, 150, 88, 185, 12, 94, 137,\n\t\t170, 42, 57, 236, 114, 228, 96, 13, 114, 134, 57, 217, 82,\n\t\t81, 2, 229, 10, 203, 21, 89, 34, 80, 9, 178, 42, 10, 81, 42,\n\t\t187, 11, 208, 21, 36, 163, 24, 125, 4, 148, 67, 150, 214,\n\t\t98, 158, 51, 212, 127, 169, 84, 123, 134, 245, 126, 224, 182,\n\t\t59, 53, 111, 143, 71, 86, 136, 19, 11, 59, 113, 138, 75, 247,\n\t\t58, 53, 255, 91, 82, 130, 227, 5, 115, 216, 165, 111, 22,\n\t\t87, 151, 245, 251, 225, 0, 187, 212, 189, 156, 122, 236, 155,\n\t\t87, 239, 174, 47, 47, 255, 179, 184, 184, 58, 135, 57, 252,\n\t\t233, 187, 63, 159, 182, 247, 177, 150, 133, 53, 81, 57, 150,\n\t\t148, 175, 65, 148, 116, 77, 57, 97, 206, 2, 176, 65, 149,\n\t\t139, 172, 43, 136, 199, 155, 123, 133, 44, 197, 12, 118, 169,\n\t\t163, 53, 66, 217, 231, 133, 152, 68, 88, 103, 251, 6, 239,\n\t\t108, 95, 195, 144, 221, 56, 30, 181, 205, 138, 82, 40, 161,\n\t\t246, 5, 6, 60, 237, 147, 195, 136, 217, 94, 112, 37, 222,\n\t\t83, 220, 13, 51, 168, 49, 172, 217, 59, 246, 176, 241, 3,\n\t\t138, 110, 180, 49, 172, 242, 29, 221, 185, 216, 25, 7, 20,\n\t\t88, 174, 68, 185, 33, 124, 137, 112, 124, 28, 47, 164, 92,\n\t\t236, 156, 104, 223, 119, 33, 233, 61, 229, 89, 18, 45, 143,\n\t\t97, 6, 175, 137, 50, 96, 47, 150, 151, 107, 153, 19, 190,\n\t\t70, 9, 62, 205, 37, 53, 113, 76, 185, 164, 25, 2, 225, 128,\n\t\t86, 225, 154, 224, 111, 86, 246, 216, 88, 30, 88, 144, 146,\n\t\t108, 224, 227, 219, 106, 115, 143, 229, 35, 60, 12, 1, 246,\n\t\t145, 238, 62, 123, 34, 166, 201, 195, 4, 246, 77, 88, 171,\n\t\t156, 74, 103, 235, 75, 92, 233, 72, 125, 56, 237, 130, 22,\n\t\t162, 128, 57, 236, 91, 209, 239, 213, 181, 185, 33, 161, 68,\n\t\t89, 49, 5, 98, 5, 164, 40, 216, 94, 251, 4, 137, 68, 216,\n\t\t16, 149, 55, 226, 40, 1, 4, 184, 17, 185, 173, 190, 198, 30,\n\t\t82, 238, 131, 7, 212, 219, 213, 160, 126, 173, 53, 175, 228,\n\t\t67, 59, 129, 225, 69, 250, 45, 156, 64, 242, 82, 151, 67,\n\t\t162, 242, 116, 41, 100, 98, 30, 126, 186, 128, 19, 248, 48,\n\t\t30, 15, 41, 73, 121, 70, 151, 68, 161, 212, 53, 132, 184,\n\t\t58, 14, 247, 117, 205, 145, 185, 168, 88, 6, 247, 104, 116,\n\t\t167, 152, 117, 92, 107, 16, 206, 8, 101, 215, 213, 128, 107,\n\t\t15, 215, 38, 191, 67, 15, 123, 93, 207, 132, 96, 72, 248,\n\t\t128, 178, 17, 243, 228, 161, 209, 90, 215, 59, 157, 79, 98,\n\t\t5, 15, 240, 108, 62, 135, 145, 173, 33, 35, 7, 183, 191, 195,\n\t\t1, 30, 96, 62, 159, 3, 175, 76, 225, 141, 33, 169, 87, 82,\n\t\t163, 68, 85, 251, 9, 188, 17, 169, 148, 232, 110, 211, 66,\n\t\t162, 92, 159, 91, 106, 212, 72, 108, 138, 251, 138, 150, 82,\n\t\t1, 41, 215, 192, 133, 210, 249, 98, 165, 158, 70, 242, 77,\n\t\t167, 32, 202, 198, 3, 84, 130, 222, 114, 2, 142, 167, 6, 118,\n\t\t133, 117, 97, 160, 202, 10, 235, 64, 119, 190, 110, 25, 107,\n\t\t62, 100, 172, 227, 227, 142, 22, 54, 24, 6, 149, 48, 231,\n\t\t138, 145, 175, 86, 4, 8, 207, 34, 201, 45, 135, 182, 148,\n\t\t43, 194, 100, 87, 204, 233, 20, 84, 94, 138, 29, 96, 89, 138,\n\t\t210, 158, 128, 33, 47, 109, 178, 248, 212, 3, 71, 192, 113,\n\t\t7, 139, 125, 129, 231, 154, 48, 25, 121, 34, 77, 177, 37,\n\t\t140, 102, 163, 193, 240, 95, 81, 158, 213, 5, 141, 220, 51,\n\t\t132, 130, 148, 90, 43, 157, 236, 131, 229, 76, 19, 221, 120,\n\t\t146, 159, 12, 69, 39, 244, 69, 134, 143, 128, 172, 27, 242,\n\t\t45, 72, 43, 228, 251, 120, 39, 200, 26, 31, 232, 218, 79,\n\t\t229, 153, 200, 246, 167, 193, 74, 78, 100, 67, 117, 83, 144,\n\t\t37, 182, 160, 239, 169, 164, 247, 12, 175, 183, 88, 174, 152,\n\t\t47, 238, 0, 153, 8, 188, 139, 250, 36, 69, 150, 90, 35, 104,\n\t\t65, 61, 158, 241, 143, 68, 5, 75, 193, 51, 91, 246, 183, 164,\n\t\t164, 122, 59, 233, 81, 172, 92, 134, 135, 137, 160, 44, 189,\n\t\t15, 228, 132, 30, 41, 97, 30, 4, 33, 178, 116, 201, 40, 114,\n\t\t245, 6, 233, 58, 87, 240, 23, 189, 98, 125, 227, 86, 14, 135,\n\t\t62, 244, 127, 209, 76, 229, 33, 182, 89, 136, 182, 109, 169,\n\t\t31, 109, 187, 75, 215, 168, 94, 137, 77, 81, 41, 204, 110,\n\t\t116, 127, 148, 32, 155, 152, 162, 49, 78, 133, 167, 208, 25,\n\t\t177, 181, 108, 70, 62, 120, 97, 151, 83, 134, 144, 60, 115,\n\t\t170, 31, 31, 195, 179, 164, 71, 77, 189, 222, 21, 67, 151,\n\t\t229, 58, 73, 107, 211, 245, 217, 168, 87, 3, 35, 160, 167,\n\t\t119, 169, 133, 108, 40, 210, 37, 178, 21, 80, 190, 21, 31,\n\t\t48, 11, 78, 173, 156, 168, 9, 172, 233, 22, 57, 16, 237, 91,\n\t\t133, 15, 106, 2, 82, 97, 33, 77, 118, 85, 235, 220, 165, 7,\n\t\t229, 235, 118, 34, 104, 180, 118, 224, 215, 197, 222, 241,\n\t\t234, 143, 114, 77, 152, 56, 140, 56, 180, 21, 221, 104, 133,\n\t\t185, 216, 37, 227, 48, 132, 183, 132, 85, 81, 76, 47, 171,\n\t\t82, 7, 233, 109, 207, 218, 93, 184, 134, 140, 20, 18, 51,\n\t\t152, 67, 98, 120, 63, 175, 37, 75, 165, 34, 165, 90, 208,\n\t\t13, 142, 97, 26, 118, 169, 167, 65, 69, 34, 91, 65, 51, 207,\n\t\t67, 51, 144, 144, 211, 117, 142, 165, 54, 29, 7, 193, 221,\n\t\t201, 30, 236, 83, 63, 253, 21, 94, 194, 247, 240, 18, 102,\n\t\t245, 74, 196, 88, 183, 18, 250, 52, 215, 237, 132, 18, 209,\n\t\t22, 94, 122, 86, 105, 91, 152, 35, 223, 193, 155, 128, 169,\n\t\t245, 135, 121, 172, 208, 45, 124, 3, 181, 105, 211, 135, 182,\n\t\t186, 183, 99, 56, 137, 109, 89, 219, 172, 205, 231, 46, 228,\n\t\t179, 111, 243, 185, 11, 248, 212, 140, 28, 220, 198, 70, 186,\n\t\t36, 140, 121, 250, 166, 192, 78, 188, 224, 254, 233, 110,\n\t\t28, 26, 166, 110, 249, 69, 137, 250, 228, 218, 33, 228, 100,\n\t\t139, 166, 150, 151, 72, 150, 57, 102, 32, 170, 18, 50, 148,\n\t\t138, 114, 162, 163, 169, 206, 160, 21, 36, 222, 40, 186, 39,\n\t\t104, 140, 112, 56, 52, 106, 134, 144, 125, 120, 180, 237,\n\t\t210, 18, 127, 173, 80, 170, 31, 56, 221, 24, 198, 127, 47,\n\t\t201, 6, 19, 29, 171, 174, 85, 158, 212, 148, 227, 113, 115,\n\t\t124, 65, 127, 186, 25, 53, 100, 125, 135, 220, 81, 149, 119,\n\t\t219, 171, 78, 62, 25, 240, 141, 187, 7, 67, 79, 94, 29, 58,\n\t\t231, 202, 255, 218, 69, 7, 91, 154, 178, 23, 55, 210, 58,\n\t\t131, 26, 231, 133, 121, 101, 195, 169, 179, 18, 229, 158,\n\t\t85, 171, 131, 179, 136, 114, 188, 113, 189, 187, 247, 184,\n\t\t8, 136, 10, 136, 241, 110, 116, 170, 132, 174, 11, 206, 239,\n\t\t57, 236, 154, 194, 239, 18, 98, 238, 111, 121, 183, 246, 58,\n\t\t88, 144, 53, 222, 94, 175, 86, 18, 85, 11, 249, 46, 64, 190,\n\t\t107, 144, 239, 218, 200, 206, 97, 115, 127, 5, 117, 52, 205,\n\t\t193, 128, 76, 226, 144, 136, 200, 122, 100, 244, 167, 151,\n\t\t190, 177, 244, 136, 229, 225, 11, 81, 244, 8, 18, 93, 135,\n\t\t250, 154, 43, 103, 86, 38, 68, 97, 238, 216, 91, 44, 129,\n\t\t192, 74, 199, 248, 81, 189, 21, 22, 73, 159, 200, 179, 224,\n\t\t121, 210, 218, 122, 230, 254, 39, 177, 196, 218, 199, 179,\n\t\t230, 177, 5, 189, 117, 160, 219, 214, 250, 157, 91, 191, 107,\n\t\t214, 31, 102, 240, 208, 188, 237, 103, 117, 32, 195, 99, 187,\n\t\t169, 171, 35, 255, 250, 221, 197, 143, 23, 111, 127, 184,\n\t\t132, 171, 243, 197, 155, 235, 215, 55, 112, 253, 254, 252,\n\t\t221, 187, 139, 215, 231, 55, 62, 5, 44, 197, 180, 153, 18,\n\t\t232, 198, 181, 25, 19, 24, 176, 135, 205, 3, 8, 204, 125,\n\t\t234, 36, 77, 4, 250, 131, 162, 125, 125, 162, 43, 87, 184,\n\t\t126, 173, 104, 233, 187, 86, 29, 203, 241, 213, 166, 238,\n\t\t166, 229, 191, 95, 252, 60, 14, 35, 187, 21, 94, 182, 170,\n\t\t122, 40, 192, 110, 18, 188, 132, 92, 82, 166, 239, 189, 135,\n\t\t67, 180, 56, 136, 172, 68, 17, 227, 190, 252, 217, 163, 142,\n\t\t155, 96, 11, 167, 69, 113, 112, 93, 158, 47, 96, 241, 230,\n\t\t28, 110, 174, 174, 175, 23, 111, 222, 158, 223, 220, 192,\n\t\t217, 249, 143, 23, 111, 159, 213, 161, 21, 148, 153, 150,\n\t\t18, 129, 10, 54, 179, 155, 247, 223, 126, 235, 168, 52, 8,\n\t\t84, 194, 181, 34, 181, 192, 126, 174, 50, 13, 134, 60, 145,\n\t\t103, 207, 246, 95, 217, 157, 103, 251, 255, 59, 84, 183, 25,\n\t\t195, 229, 121, 252, 148, 191, 67, 210, 110, 177, 30, 15, 134,\n\t\t195, 224, 92, 79, 87, 129, 33, 160, 171, 10, 131, 180, 243,\n\t\t39, 40, 191, 90, 152, 213, 179, 204, 78, 152, 217, 57, 216,\n\t\t36, 90, 249, 162, 104, 251, 93, 227, 77, 119, 6, 204, 206,\n\t\t233, 58, 66, 132, 221, 131, 50, 3, 187, 246, 198, 167, 191,\n\t\t79, 216, 118, 77, 210, 121, 183, 67, 20, 43, 169, 190, 14,\n\t\t218, 113, 223, 8, 190, 183, 107, 179, 246, 220, 177, 135,\n\t\t216, 168, 16, 211, 234, 165, 89, 107, 46, 249, 197, 177, 235,\n\t\t74, 219, 48, 184, 63, 6, 181, 85, 73, 185, 126, 209, 50, 235,\n\t\t105, 207, 236, 200, 162, 5, 227, 163, 48, 226, 2, 233, 131,\n\t\t14, 2, 140, 93, 102, 134, 180, 78, 246, 167, 76, 36, 10, 135,\n\t\t107, 147, 59, 54, 73, 136, 89, 167, 138, 67, 143, 251, 233,\n\t\t160, 55, 232, 105, 196, 66, 73, 91, 190, 14, 39, 198, 223,\n\t\t24, 206, 237, 104, 8, 6, 199, 223, 124, 34, 216, 31, 63, 215,\n\t\t115, 209, 199, 128, 79, 33, 125, 181, 74, 18, 139, 97, 83,\n\t\t199, 228, 71, 20, 55, 186, 6, 168, 178, 194, 79, 167, 252,\n\t\t103, 228, 106, 124, 247, 176, 163, 48, 173, 127, 223, 132,\n\t\t76, 139, 18, 205, 11, 236, 8, 235, 29, 46, 149, 244, 205,\n\t\t113, 131, 159, 174, 81, 157, 137, 138, 103, 148, 175, 95,\n\t\t153, 25, 146, 198, 140, 39, 14, 75, 191, 174, 57, 24, 239,\n\t\t15, 82, 133, 134, 109, 75, 252, 172, 247, 202, 98, 62, 245,\n\t\t109, 145, 176, 122, 200, 88, 127, 69, 41, 130, 113, 226, 151,\n\t\t22, 172, 246, 222, 79, 193, 226, 96, 15, 148, 181, 137, 250,\n\t\t60, 180, 96, 171, 243, 26, 100, 102, 243, 34, 228, 165, 19,\n\t\t57, 102, 213, 244, 105, 209, 201, 208, 216, 195, 77, 96, 41,\n\t\t135, 45, 197, 93, 33, 202, 198, 24, 77, 227, 214, 83, 100,\n\t\t158, 146, 215, 84, 150, 150, 20, 253, 245, 164, 30, 122, 127,\n\t\t78, 41, 233, 243, 225, 23, 10, 221, 182, 123, 71, 232, 150,\n\t\t49, 191, 92, 104, 243, 255, 168, 95, 77, 238, 5, 5, 29, 31,\n\t\t180, 156, 178, 183, 166, 79, 167, 176, 20, 155, 141, 224,\n\t\t191, 216, 233, 238, 70, 100, 21, 195, 212, 147, 192, 71, 255,\n\t\t245, 122, 214, 124, 239, 183, 219, 132, 102, 154, 78, 221,\n\t\t87, 100, 243, 214, 124, 240, 182, 242, 60, 142, 19, 59, 31,\n\t\t153, 248, 207, 233, 227, 211, 163, 255, 6, 0, 0, 255, 255,\n\t\t80, 75, 7, 8, 169, 210, 96, 101, 196, 8, 0, 0, 82, 32, 0,\n\t\t0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 9, 0, 119, 101, 98, 102,\n\t\t111, 110, 116, 115, 47, 102, 97, 45, 98, 114, 97, 110, 100,\n\t\t115, 45, 52, 48, 48, 46, 101, 111, 116, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 236, 188, 121, 156, 29, 85, 153, 48, 124, 158,\n\t\t115, 170, 206, 169, 189, 234, 222, 218, 238, 237, 187, 223,\n\t\t234, 174, 234, 245, 118, 247, 173, 123, 111, 165, 59, 221,\n\t\t157, 206, 202, 150, 132, 164, 147, 176, 4, 18, 8, 134, 125,\n\t\t49, 66, 16, 68, 197, 150, 1, 4, 4, 5, 101, 28, 65, 212, 184,\n\t\t140, 11, 110, 136, 200, 48, 140, 98, 156, 225, 115, 24, 7,\n\t\t125, 121, 197, 97, 124, 29, 148, 56, 142, 203, 248, 155, 215,\n\t\t73, 119, 7, 130, 232, 116, 127, 191, 170, 123, 59, 116, 208,\n\t\t247, 91, 255, 251, 126, 95, 117, 234, 158, 165, 78, 157, 243,\n\t\t156, 231, 60, 251, 57, 149, 119, 252, 30, 208, 230, 215, 0,\n\t\t1, 194, 40, 190, 48, 226, 73, 146, 65, 128, 238, 133, 56,\n\t\t221, 188, 13, 218, 21, 6, 66, 203, 79, 208, 108, 156, 94,\n\t\t243, 243, 27, 118, 161, 63, 186, 198, 209, 38, 244, 102, 116,\n\t\t13, 58, 136, 202, 104, 45, 186, 1, 93, 140, 174, 67, 111,\n\t\t70, 87, 163, 139, 81, 25, 53, 81, 25, 173, 67, 215, 162, 125,\n\t\t232, 26, 180, 31, 93, 135, 202, 104, 6, 93, 140, 46, 69, 215,\n\t\t163, 171, 208, 62, 116, 45, 66, 72, 251, 163, 154, 211, 81,\n\t\t136, 234, 104, 12, 213, 80, 148, 164, 101, 212, 251, 127,\n\t\t48, 194, 91, 209, 197, 232, 90, 116, 29, 186, 60, 105, 49,\n\t\t158, 140, 89, 67, 171, 80, 13, 141, 162, 190, 255, 215, 208,\n\t\t181, 39, 143, 84, 52, 139, 8, 218, 182, 105, 211, 206, 45,\n\t\t119, 62, 127, 231, 60, 130, 215, 70, 16, 66, 249, 83, 54,\n\t\t108, 220, 132, 250, 225, 107, 8, 94, 139, 113, 85, 60, 115,\n\t\t199, 112, 125, 157, 241, 139, 247, 35, 4, 231, 32, 132, 46,\n\t\t124, 211, 213, 251, 14, 164, 255, 195, 122, 0, 33, 225, 50,\n\t\t132, 248, 155, 46, 221, 119, 221, 129, 165, 37, 68, 16, 188,\n\t\t38, 32, 132, 132, 75, 175, 122, 219, 37, 103, 127, 165, 239,\n\t\t215, 8, 165, 166, 17, 252, 183, 233, 203, 46, 222, 183, 223,\n\t\t218, 122, 222, 95, 33, 132, 94, 68, 8, 181, 46, 187, 236,\n\t\t226, 125, 92, 139, 188, 136, 16, 88, 8, 161, 238, 203, 174,\n\t\t62, 120, 227, 160, 201, 63, 135, 16, 60, 129, 16, 253, 242,\n\t\t85, 111, 126, 211, 190, 201, 240, 203, 175, 32, 164, 254,\n\t\t27, 66, 228, 252, 171, 247, 221, 120, 0, 59, 228, 76, 132,\n\t\t96, 21, 66, 168, 124, 205, 190, 171, 47, 190, 245, 237, 111,\n\t\t238, 70, 112, 100, 22, 33, 254, 93, 7, 222, 124, 221, 193,\n\t\t107, 238, 46, 252, 61, 130, 95, 34, 132, 44, 62, 158, 27,\n\t\t156, 246, 228, 199, 119, 221, 240, 243, 107, 46, 208, 39,\n\t\t94, 70, 114, 155, 38, 126, 244, 215, 143, 76, 119, 210, 141,\n\t\t75, 191, 93, 122, 28, 223, 6, 71, 98, 120, 59, 36, 147, 224,\n\t\t4, 14, 47, 29, 70, 8, 207, 46, 253, 118, 105, 14, 223, 134,\n\t\t224, 100, 154, 128, 135, 147, 54, 95, 34, 155, 81, 144, 84,\n\t\t224, 228, 173, 184, 213, 116, 167, 9, 7, 255, 14, 247, 34,\n\t\t30, 33, 216, 12, 151, 32, 132, 78, 233, 164, 47, 163, 44,\n\t\t186, 117, 37, 93, 198, 111, 26, 43, 250, 222, 118, 201, 198,\n\t\t253, 104, 246, 232, 187, 95, 157, 78, 96, 168, 193, 179, 104,\n\t\t231, 108, 123, 157, 16, 140, 195, 95, 198, 51, 71, 176, 12,\n\t\t42, 122, 56, 134, 245, 228, 59, 1, 38, 206, 31, 237, 220,\n\t\t203, 245, 179, 72, 73, 242, 71, 58, 109, 102, 79, 164, 4,\n\t\t79, 35, 13, 102, 151, 150, 146, 118, 70, 82, 135, 79, 244,\n\t\t121, 52, 105, 71, 97, 26, 177, 164, 60, 139, 72, 231, 89,\n\t\t25, 14, 35, 17, 35, 36, 36, 229, 3, 43, 218, 79, 163, 52,\n\t\t110, 35, 70, 136, 199, 129, 195, 40, 181, 2, 62, 161, 147,\n\t\t183, 225, 215, 43, 202, 71, 145, 176, 12, 251, 137, 180, 61,\n\t\t102, 185, 147, 127, 125, 94, 203, 233, 116, 50, 175, 19, 115,\n\t\t137, 219, 96, 132, 164, 21, 243, 54, 58, 48, 219, 112, 24,\n\t\t49, 60, 141, 84, 140, 16, 192, 97, 36, 193, 44, 130, 14, 108,\n\t\t52, 121, 239, 79, 221, 232, 4, 238, 226, 180, 214, 129, 67,\n\t\t133, 195, 200, 236, 228, 41, 158, 69, 180, 3, 51, 183, 12,\n\t\t75, 103, 204, 215, 113, 63, 189, 180, 148, 60, 59, 250, 122,\n\t\t223, 29, 188, 198, 183, 136, 167, 151, 126, 7, 211, 9, 92,\n\t\t39, 198, 75, 240, 114, 180, 189, 94, 43, 218, 198, 207, 75,\n\t\t49, 204, 43, 113, 218, 25, 95, 195, 8, 101, 225, 71, 73, 57,\n\t\t198, 101, 122, 185, 31, 252, 250, 92, 203, 48, 141, 178, 24,\n\t\t45, 253, 23, 70, 200, 130, 147, 105, 167, 12, 135, 219, 52,\n\t\t176, 60, 222, 138, 103, 220, 137, 117, 121, 29, 183, 82, 7,\n\t\t167, 194, 50, 173, 173, 88, 239, 147, 222, 111, 195, 222,\n\t\t233, 251, 48, 202, 224, 217, 19, 117, 191, 91, 94, 39, 60,\n\t\t187, 180, 184, 76, 11, 201, 243, 233, 101, 60, 44, 253, 33,\n\t\t126, 6, 203, 180, 115, 116, 233, 232, 27, 96, 67, 157, 53,\n\t\t69, 176, 25, 33, 124, 89, 194, 185, 127, 72, 224, 120, 34,\n\t\t233, 199, 73, 218, 31, 89, 90, 90, 65, 123, 8, 14, 117, 218,\n\t\t29, 121, 189, 12, 71, 226, 177, 16, 2, 97, 197, 26, 46, 175,\n\t\t197, 225, 165, 57, 188, 13, 9, 112, 239, 137, 103, 249, 206,\n\t\t154, 100, 97, 22, 149, 19, 158, 65, 109, 30, 107, 195, 183,\n\t\t244, 114, 242, 44, 105, 187, 244, 59, 140, 144, 11, 71, 151,\n\t\t254, 115, 37, 78, 150, 199, 192, 179, 75, 191, 95, 81, 135,\n\t\t97, 186, 179, 158, 229, 21, 243, 60, 122, 50, 79, 47, 227,\n\t\t39, 129, 167, 77, 87, 203, 252, 147, 78, 202, 9, 14, 151,\n\t\t94, 131, 71, 98, 220, 181, 251, 95, 201, 59, 203, 52, 152,\n\t\t148, 159, 61, 89, 86, 36, 235, 253, 196, 210, 31, 78, 140,\n\t\t211, 161, 165, 149, 56, 111, 195, 141, 216, 10, 158, 85, 224,\n\t\t117, 94, 89, 174, 19, 18, 217, 129, 146, 57, 165, 241, 236,\n\t\t210, 127, 37, 227, 206, 182, 241, 114, 130, 62, 81, 39, 223,\n\t\t198, 197, 34, 156, 160, 137, 19, 253, 17, 152, 109, 151, 33,\n\t\t30, 179, 157, 202, 9, 253, 205, 34, 45, 233, 51, 166, 195,\n\t\t167, 222, 64, 23, 179, 39, 198, 80, 218, 227, 46, 45, 44,\n\t\t243, 225, 255, 221, 27, 191, 46, 199, 52, 188, 113, 197, 26,\n\t\t182, 229, 80, 246, 13, 60, 147, 59, 169, 220, 206, 231, 59,\n\t\t116, 202, 37, 239, 204, 34, 45, 150, 35, 203, 243, 95, 238,\n\t\t239, 132, 156, 136, 233, 101, 26, 105, 29, 248, 243, 248,\n\t\t4, 95, 45, 45, 194, 44, 74, 175, 196, 245, 73, 248, 155, 70,\n\t\t46, 158, 70, 56, 166, 61, 140, 226, 52, 225, 43, 183, 243,\n\t\t238, 239, 59, 253, 101, 240, 235, 114, 202, 90, 73, 99, 9,\n\t\t254, 255, 34, 225, 149, 184, 157, 24, 203, 233, 164, 174,\n\t\t13, 51, 135, 167, 219, 115, 139, 215, 100, 197, 124, 21, 140,\n\t\t144, 221, 225, 21, 150, 172, 51, 234, 104, 213, 66, 162, 169,\n\t\t72, 231, 206, 183, 117, 25, 119, 48, 182, 20, 146, 50, 199,\n\t\t157, 131, 16, 164, 1, 33, 134, 210, 71, 111, 57, 122, 247,\n\t\t209, 15, 28, 253, 200, 209, 127, 58, 250, 179, 57, 115, 174,\n\t\t53, 55, 49, 183, 123, 238, 242, 185, 107, 230, 222, 50, 119,\n\t\t112, 238, 230, 185, 119, 207, 221, 58, 119, 207, 220, 253,\n\t\t115, 31, 158, 251, 200, 220, 199, 230, 30, 158, 251, 171,\n\t\t185, 167, 230, 158, 157, 251, 231, 185, 127, 159, 251, 237,\n\t\t220, 203, 243, 100, 94, 156, 215, 230, 157, 249, 250, 124,\n\t\t52, 63, 53, 191, 121, 126, 239, 252, 149, 243, 215, 204, 31,\n\t\t152, 191, 121, 254, 150, 249, 187, 230, 239, 159, 127, 96,\n\t\t254, 51, 243, 95, 158, 127, 108, 254, 137, 249, 239, 204,\n\t\t255, 120, 254, 167, 243, 71, 22, 206, 95, 184, 126, 225, 157,\n\t\t11, 179, 11, 183, 45, 220, 177, 240, 254, 133, 191, 88, 120,\n\t\t112, 225, 227, 11, 159, 94, 120, 116, 225, 155, 11, 135, 23,\n\t\t158, 94, 120, 102, 225, 217, 133, 231, 22, 94, 92, 120, 105,\n\t\t225, 223, 22, 254, 99, 225, 63, 23, 22, 22, 126, 183, 176,\n\t\t120, 140, 63, 166, 30, 171, 28, 243, 142, 141, 30, 219, 114,\n\t\t108, 230, 216, 217, 199, 206, 61, 246, 79, 199, 126, 113,\n\t\t236, 119, 47, 91, 47, 127, 224, 229, 143, 189, 252, 169, 151,\n\t\t63, 247, 242, 163, 47, 127, 253, 229, 167, 94, 254, 206, 203,\n\t\t207, 190, 252, 223, 94, 158, 123, 249, 248, 203, 175, 189,\n\t\t162, 191, 146, 126, 101, 205, 43, 235, 94, 249, 232, 43, 95,\n\t\t121, 229, 187, 175, 60, 251, 202, 139, 199, 185, 227, 163,\n\t\t199, 247, 28, 191, 241, 248, 219, 143, 223, 118, 252, 206,\n\t\t227, 247, 28, 191, 239, 248, 3, 199, 191, 122, 252, 107, 199,\n\t\t191, 113, 252, 59, 199, 159, 63, 254, 194, 241, 159, 29, 255,\n\t\t249, 171, 147, 175, 78, 47, 45, 33, 116, 244, 221, 9, 78,\n\t\t30, 56, 250, 131, 14, 78, 86, 207, 237, 158, 187, 116, 238,\n\t\t202, 185, 3, 115, 215, 205, 189, 109, 110, 118, 238, 214,\n\t\t185, 59, 19, 156, 60, 56, 247, 177, 185, 67, 115, 143, 205,\n\t\t125, 99, 238, 187, 115, 207, 205, 253, 106, 238, 127, 206,\n\t\t29, 157, 199, 243, 194, 188, 58, 111, 204, 143, 206, 71, 243,\n\t\t227, 243, 103, 204, 239, 157, 191, 112, 254, 234, 249, 3,\n\t\t243, 239, 152, 159, 157, 191, 117, 254, 131, 243, 31, 154,\n\t\t255, 203, 249, 207, 207, 63, 50, 255, 196, 252, 211, 243,\n\t\t255, 52, 255, 147, 4, 39, 151, 45, 220, 184, 240, 174, 133,\n\t\t63, 91, 184, 99, 225, 189, 11, 247, 45, 60, 176, 240, 209,\n\t\t133, 79, 44, 124, 102, 225, 177, 133, 195, 11, 127, 183, 240,\n\t\t157, 133, 239, 46, 60, 183, 240, 131, 133, 151, 22, 126, 182,\n\t\t240, 203, 133, 223, 46, 44, 44, 188, 188, 176, 120, 12, 31,\n\t\t99, 199, 82, 199, 188, 99, 61, 43, 112, 242, 111, 199, 126,\n\t\t245, 178, 244, 127, 17, 39, 255, 208, 193, 201, 72, 130, 147,\n\t\t155, 58, 56, 185, 247, 248, 95, 28, 255, 202, 241, 175, 29,\n\t\t255, 155, 14, 78, 94, 58, 254, 243, 87, 27, 175, 174, 89,\n\t\t90, 210, 111, 209, 223, 166, 31, 212, 175, 209, 87, 233, 67,\n\t\t218, 31, 180, 31, 107, 47, 104, 127, 173, 125, 73, 251, 162,\n\t\t246, 5, 237, 97, 237, 51, 218, 95, 106, 159, 210, 62, 174,\n\t\t61, 160, 125, 72, 251, 115, 237, 131, 218, 7, 180, 59, 181,\n\t\t219, 180, 155, 180, 27, 180, 203, 180, 139, 181, 253, 218,\n\t\t57, 218, 78, 109, 187, 182, 77, 107, 105, 117, 109, 68, 235,\n\t\t214, 76, 45, 173, 165, 52, 67, 227, 53, 78, 35, 234, 239,\n\t\t213, 215, 212, 255, 84, 255, 167, 250, 31, 234, 191, 171,\n\t\t63, 85, 159, 83, 191, 175, 126, 79, 157, 81, 79, 81, 55, 170,\n\t\t27, 212, 117, 234, 180, 58, 165, 78, 170, 19, 234, 184, 58,\n\t\t166, 174, 82, 35, 181, 169, 134, 106, 93, 29, 85, 107, 234,\n\t\t144, 58, 160, 246, 171, 125, 106, 175, 218, 163, 118, 171,\n\t\t101, 181, 160, 230, 213, 172, 154, 81, 93, 229, 15, 202, 171,\n\t\t202, 49, 101, 65, 185, 81, 185, 66, 185, 92, 57, 87, 126,\n\t\t81, 254, 239, 242, 247, 228, 127, 144, 15, 203, 79, 201, 143,\n\t\t203, 95, 145, 31, 150, 63, 39, 191, 71, 190, 69, 158, 149,\n\t\t175, 146, 175, 144, 167, 228, 9, 233, 95, 165, 255, 46, 61,\n\t\t33, 253, 149, 244, 57, 233, 221, 210, 89, 210, 128, 148, 146,\n\t\t12, 137, 73, 156, 4, 226, 146, 248, 154, 248, 11, 241, 223,\n\t\t196, 159, 136, 63, 20, 159, 17, 191, 35, 62, 37, 126, 83,\n\t\t188, 90, 188, 234, 141, 22, 234, 255, 127, 197, 23, 80, 116,\n\t\t2, 49, 176, 108, 62, 157, 212, 224, 79, 188, 244, 255, 221,\n\t\t107, 55, 186, 23, 253, 20, 62, 9, 191, 193, 101, 252, 75,\n\t\t178, 149, 252, 45, 103, 112, 167, 114, 183, 114, 175, 242,\n\t\t121, 126, 3, 191, 159, 127, 129, 58, 116, 43, 125, 136, 62,\n\t\t77, 95, 101, 119, 179, 195, 236, 95, 5, 67, 216, 44, 60, 40,\n\t\t188, 40, 188, 38, 222, 44, 159, 37, 127, 67, 233, 87, 110,\n\t\t87, 126, 160, 114, 234, 85, 26, 213, 198, 181, 71, 180, 35,\n\t\t122, 93, 255, 178, 209, 111, 156, 99, 220, 110, 60, 154, 26,\n\t\t73, 61, 153, 22, 210, 155, 211, 15, 166, 127, 100, 174, 178,\n\t\t182, 89, 207, 217, 151, 217, 79, 58, 69, 231, 86, 103, 222,\n\t\t61, 203, 189, 49, 115, 48, 243, 120, 22, 103, 255, 182, 235,\n\t\t244, 92, 57, 247, 88, 126, 42, 191, 63, 255, 197, 252, 107,\n\t\t133, 107, 11, 243, 197, 124, 241, 161, 18, 87, 58, 189, 244,\n\t\t76, 101, 119, 181, 171, 187, 216, 67, 123, 158, 242, 71, 252,\n\t\t199, 130, 76, 240, 131, 94, 212, 215, 221, 55, 211, 247, 225,\n\t\t190, 249, 254, 107, 6, 238, 30, 120, 118, 112, 221, 224, 131,\n\t\t67, 194, 80, 125, 232, 218, 161, 15, 140, 12, 142, 188, 117,\n\t\t228, 216, 232, 236, 232, 15, 234, 245, 250, 222, 250, 135,\n\t\t194, 173, 225, 163, 141, 124, 99, 111, 227, 217, 230, 101,\n\t\t205, 71, 91, 127, 136, 86, 69, 31, 142, 126, 189, 234, 145,\n\t\t177, 233, 177, 157, 99, 31, 24, 251, 226, 120, 215, 248, 135,\n\t\t198, 127, 184, 58, 179, 122, 124, 245, 83, 19, 141, 137, 243,\n\t\t39, 126, 60, 217, 152, 60, 56, 249, 161, 201, 103, 166, 140,\n\t\t169, 171, 166, 158, 88, 179, 105, 205, 119, 166, 235, 211,\n\t\t95, 94, 59, 189, 246, 135, 235, 174, 89, 247, 185, 245, 27,\n\t\t214, 127, 104, 195, 83, 27, 185, 141, 187, 55, 165, 55, 237,\n\t\t61, 165, 120, 202, 204, 41, 87, 157, 122, 240, 212, 95, 158,\n\t\t118, 209, 233, 198, 233, 15, 158, 254, 195, 51, 186, 54, 111,\n\t\t216, 252, 200, 150, 252, 150, 15, 109, 189, 113, 235, 167,\n\t\t207, 116, 206, 188, 105, 219, 103, 182, 119, 109, 191, 107,\n\t\t230, 138, 153, 167, 119, 24, 59, 46, 220, 249, 214, 157, 135,\n\t\t119, 205, 236, 122, 246, 172, 234, 89, 143, 157, 221, 125,\n\t\t246, 93, 103, 63, 115, 142, 117, 206, 166, 115, 165, 115,\n\t\t127, 186, 91, 218, 221, 58, 255, 150, 61, 220, 158, 3, 123,\n\t\t190, 188, 183, 181, 119, 239, 222, 217, 189, 63, 189, 96,\n\t\t219, 5, 223, 185, 224, 215, 251, 26, 251, 46, 219, 119, 215,\n\t\t190, 71, 247, 253, 242, 162, 109, 251, 27, 251, 111, 188,\n\t\t120, 240, 226, 11, 47, 126, 238, 146, 250, 37, 219, 46, 121,\n\t\t199, 37, 191, 190, 252, 225, 43, 94, 187, 178, 118, 229, 145,\n\t\t171, 138, 87, 221, 116, 213, 252, 213, 91, 15, 72, 7, 238,\n\t\t63, 240, 111, 111, 217, 240, 150, 215, 174, 221, 116, 237,\n\t\t77, 215, 89, 215, 61, 124, 80, 59, 216, 58, 248, 163, 235,\n\t\t211, 215, 223, 114, 253, 199, 174, 255, 238, 91, 185, 183,\n\t\t142, 188, 245, 153, 27, 206, 185, 225, 125, 55, 90, 111, 147,\n\t\t222, 118, 203, 77, 93, 55, 173, 186, 233, 142, 155, 94, 125,\n\t\t199, 249, 239, 120, 242, 157, 218, 59, 111, 127, 231, 179,\n\t\t55, 111, 184, 249, 233, 119, 73, 239, 186, 255, 93, 79, 207,\n\t\t78, 204, 126, 114, 246, 153, 217, 223, 190, 251, 192, 187,\n\t\t191, 115, 75, 255, 45, 119, 252, 217, 163, 183, 226, 91, 127,\n\t\t115, 155, 117, 219, 182, 219, 14, 220, 158, 185, 253, 201,\n\t\t59, 182, 221, 241, 212, 157, 143, 221, 197, 221, 245, 229,\n\t\t247, 78, 220, 141, 238, 62, 120, 247, 43, 247, 100, 238, 25,\n\t\t188, 231, 7, 239, 155, 125, 223, 143, 223, 127, 205, 189,\n\t\t199, 238, 187, 241, 3, 63, 254, 32, 254, 224, 107, 127, 254,\n\t\t190, 63, 255, 226, 159, 63, 247, 161, 239, 127, 248, 146,\n\t\t15, 127, 230, 195, 79, 63, 240, 240, 3, 79, 63, 120, 217,\n\t\t131, 15, 62, 248, 220, 67, 7, 62, 166, 124, 172, 250, 177,\n\t\t153, 143, 221, 250, 177, 31, 124, 236, 63, 62, 254, 225, 67,\n\t\t59, 15, 221, 251, 137, 244, 39, 142, 125, 242, 156, 79, 62,\n\t\t248, 201, 63, 124, 234, 178, 79, 125, 227, 83, 191, 253, 244,\n\t\t186, 79, 127, 232, 211, 71, 255, 114, 211, 95, 254, 235, 103,\n\t\t102, 63, 243, 163, 207, 214, 62, 251, 141, 207, 253, 232,\n\t\t243, 231, 127, 254, 59, 15, 111, 123, 248, 63, 190, 112, 251,\n\t\t23, 30, 253, 226, 238, 47, 157, 245, 165, 215, 30, 185, 251,\n\t\t177, 223, 126, 253, 193, 175, 255, 230, 241, 199, 255, 106,\n\t\t254, 137, 167, 254, 166, 248, 55, 123, 255, 230, 147, 127,\n\t\t115, 228, 27, 141, 111, 60, 252, 205, 174, 111, 190, 239,\n\t\t169, 214, 83, 87, 60, 245, 131, 167, 22, 191, 213, 248, 214,\n\t\t77, 135, 79, 61, 124, 232, 233, 198, 211, 71, 159, 185, 247,\n\t\t31, 233, 63, 238, 253, 199, 35, 207, 30, 124, 174, 235, 185,\n\t\t137, 231, 211, 207, 215, 158, 223, 249, 252, 29, 207, 255,\n\t\t246, 135, 183, 254, 240, 232, 63, 93, 241, 79, 159, 123, 161,\n\t\t255, 159, 79, 253, 231, 155, 255, 249, 151, 63, 218, 253,\n\t\t163, 91, 126, 180, 248, 47, 197, 23, 55, 191, 120, 215, 139,\n\t\t79, 254, 228, 150, 159, 188, 246, 211, 123, 127, 186, 248,\n\t\t210, 143, 143, 156, 254, 179, 253, 63, 59, 252, 175, 249,\n\t\t127, 221, 253, 115, 252, 243, 111, 252, 226, 174, 95, 252,\n\t\t248, 151, 247, 254, 170, 251, 87, 135, 98, 137, 178, 116,\n\t\t4, 14, 195, 33, 164, 163, 213, 8, 65, 221, 177, 83, 22, 245,\n\t\t42, 85, 191, 153, 106, 180, 66, 190, 21, 81, 22, 223, 190,\n\t\t87, 165, 174, 31, 80, 219, 42, 130, 235, 7, 182, 229, 184,\n\t\t52, 40, 66, 72, 189, 106, 224, 132, 245, 41, 104, 54, 224,\n\t\t94, 43, 159, 183, 22, 15, 197, 191, 48, 108, 106, 166, 105,\n\t\t11, 150, 99, 230, 75, 189, 108, 71, 83, 20, 52, 193, 208,\n\t\t138, 174, 102, 208, 170, 221, 61, 36, 178, 90, 52, 118, 78,\n\t\t31, 28, 58, 241, 194, 133, 86, 254, 227, 154, 37, 96, 213,\n\t\t85, 56, 123, 164, 194, 79, 235, 105, 201, 78, 83, 16, 32,\n\t\t211, 205, 19, 108, 101, 243, 80, 28, 223, 57, 196, 183, 165,\n\t\t94, 7, 230, 30, 132, 32, 101, 209, 1, 104, 134, 145, 215,\n\t\t108, 76, 193, 106, 104, 198, 144, 22, 192, 179, 67, 219, 235,\n\t\t76, 162, 82, 119, 224, 112, 222, 218, 53, 33, 110, 228, 12,\n\t\t181, 219, 46, 245, 14, 79, 78, 254, 111, 203, 163, 194, 129,\n\t\t24, 130, 175, 110, 24, 144, 85, 113, 130, 12, 247, 215, 55,\n\t\t124, 181, 253, 32, 31, 203, 28, 110, 5, 126, 44, 148, 71,\n\t\t205, 63, 198, 145, 25, 54, 61, 187, 85, 111, 53, 252, 42,\n\t\t181, 160, 217, 168, 97, 175, 74, 153, 215, 244, 236, 176,\n\t\t217, 104, 133, 245, 34, 46, 0, 28, 82, 77, 83, 93, 156, 141,\n\t\t127, 47, 133, 245, 169, 178, 235, 150, 29, 152, 166, 70, 37,\n\t\t227, 86, 24, 76, 175, 55, 92, 197, 224, 49, 28, 90, 110, 4,\n\t\t179, 170, 185, 56, 251, 194, 11, 11, 110, 201, 117, 75, 139,\n\t\t175, 92, 159, 169, 22, 116, 75, 43, 188, 112, 69, 182, 40,\n\t\t89, 186, 114, 25, 66, 72, 92, 1, 219, 89, 232, 60, 244, 38,\n\t\t116, 57, 58, 128, 110, 64, 239, 68, 183, 253, 9, 40, 227,\n\t\t37, 138, 113, 19, 47, 157, 211, 108, 248, 77, 13, 170, 53,\n\t\t8, 252, 96, 36, 104, 132, 142, 235, 68, 173, 168, 70, 154,\n\t\t141, 200, 143, 90, 78, 9, 90, 117, 119, 10, 187, 14, 115,\n\t\t108, 75, 195, 204, 177, 243, 96, 91, 62, 245, 195, 22, 107,\n\t\t120, 85, 219, 10, 235, 62, 13, 252, 150, 27, 180, 124, 70,\n\t\t93, 39, 104, 5, 62, 163, 142, 223, 10, 124, 234, 6, 173, 160,\n\t\t26, 87, 174, 164, 135, 95, 212, 39, 247, 109, 220, 184, 103,\n\t\t170, 174, 0, 166, 41, 77, 35, 76, 102, 130, 33, 166, 202,\n\t\t88, 72, 91, 89, 217, 16, 37, 234, 138, 130, 53, 96, 113, 114,\n\t\t150, 74, 66, 74, 233, 178, 210, 242, 14, 6, 132, 83, 56, 142,\n\t\t227, 84, 76, 56, 76, 68, 224, 49, 96, 194, 112, 124, 113,\n\t\t148, 96, 76, 48, 7, 24, 3, 16, 124, 50, 37, 45, 206, 166,\n\t\t206, 142, 54, 236, 217, 179, 33, 58, 59, 133, 37, 40, 11,\n\t\t0, 68, 18, 77, 158, 17, 48, 10, 186, 206, 48, 175, 21, 29,\n\t\t39, 101, 101, 177, 200, 243, 60, 143, 153, 132, 51, 118, 218,\n\t\t118, 138, 26, 143, 69, 91, 235, 3, 105, 26, 120, 224, 9, 193,\n\t\t148, 7, 224, 1, 3, 141, 7, 147, 129, 16, 12, 188, 152, 140,\n\t\t204, 0, 3, 36, 90, 57, 166, 199, 163, 56, 246, 99, 71, 16,\n\t\t130, 4, 99, 109, 174, 136, 170, 126, 146, 212, 240, 36, 56,\n\t\t174, 223, 108, 68, 49, 243, 36, 68, 225, 118, 24, 11, 254,\n\t\t17, 122, 79, 59, 184, 233, 156, 211, 100, 237, 180, 113, 175,\n\t\t41, 73, 162, 166, 101, 124, 199, 201, 14, 235, 193, 91, 166,\n\t\t241, 228, 64, 173, 212, 93, 82, 170, 197, 162, 3, 189, 156,\n\t\t216, 188, 252, 236, 214, 48, 12, 245, 149, 128, 240, 197,\n\t\t129, 44, 86, 161, 188, 42, 159, 29, 29, 39, 138, 50, 48, 85,\n\t\t97, 233, 30, 155, 83, 203, 255, 207, 248, 67, 147, 175, 29,\n\t\t23, 215, 243, 122, 204, 31, 193, 200, 248, 248, 11, 178, 166,\n\t\t201, 240, 62, 73, 135, 247, 44, 94, 43, 233, 95, 94, 31, 243,\n\t\t199, 36, 174, 13, 212, 215, 127, 57, 126, 32, 107, 26, 74,\n\t\t252, 35, 180, 244, 60, 28, 133, 39, 16, 67, 26, 178, 208,\n\t\t197, 232, 106, 116, 61, 122, 39, 186, 21, 161, 200, 242, 104,\n\t\t179, 17, 182, 104, 203, 117, 24, 13, 162, 186, 195, 168, 111,\n\t\t214, 139, 96, 91, 148, 81, 191, 57, 1, 205, 70, 48, 197, 53,\n\t\t27, 126, 76, 62, 84, 7, 191, 202, 106, 152, 81, 55, 22, 50,\n\t\t196, 165, 76, 3, 63, 168, 193, 48, 84, 221, 34, 148, 160,\n\t\t136, 235, 107, 192, 114, 108, 139, 6, 53, 104, 54, 90, 164,\n\t\t221, 173, 31, 116, 82, 247, 164, 178, 255, 25, 158, 242, 180,\n\t\t66, 248, 120, 253, 122, 121, 224, 121, 56, 101, 195, 193,\n\t\t245, 123, 206, 16, 196, 148, 147, 233, 54, 53, 69, 83, 52,\n\t\t169, 170, 42, 165, 181, 69, 62, 221, 35, 234, 138, 171, 165,\n\t\t171, 89, 91, 37, 146, 93, 150, 168, 201, 168, 99, 49, 141,\n\t\t112, 156, 149, 113, 24, 3, 81, 216, 188, 247, 158, 65, 76,\n\t\t226, 149, 39, 34, 38, 4, 128, 112, 85, 204, 113, 152, 112,\n\t\t156, 72, 226, 139, 15, 57, 224, 9, 112, 2, 6, 142, 195, 140,\n\t\t98, 16, 96, 118, 250, 192, 134, 29, 127, 150, 197, 2, 133,\n\t\t53, 86, 89, 35, 156, 230, 244, 230, 205, 140, 94, 234, 33,\n\t\t170, 32, 138, 34, 39, 235, 164, 167, 148, 173, 228, 123, 29,\n\t\t141, 199, 138, 195, 113, 74, 74, 86, 1, 116, 46, 205, 4, 197,\n\t\t224, 0, 148, 17, 160, 2, 206, 254, 217, 142, 203, 238, 94,\n\t\t252, 108, 103, 124, 9, 67, 76, 128, 184, 66, 56, 142, 16,\n\t\t142, 75, 17, 158, 195, 88, 76, 214, 253, 153, 100, 45, 78,\n\t\t71, 8, 89, 177, 104, 110, 173, 129, 34, 132, 245, 214, 10,\n\t\t214, 143, 166, 32, 106, 5, 109, 42, 140, 105, 21, 188, 170,\n\t\t31, 77, 225, 102, 163, 6, 73, 147, 34, 103, 187, 148, 81,\n\t\t55, 65, 114, 29, 142, 222, 119, 169, 239, 101, 168, 65, 203,\n\t\t102, 116, 218, 57, 107, 55, 159, 157, 119, 88, 204, 18, 64,\n\t\t210, 147, 97, 109, 220, 238, 182, 77, 135, 195, 10, 165, 186,\n\t\t100, 118, 1, 96, 192, 144, 229, 121, 254, 148, 179, 239, 251,\n\t\t62, 4, 223, 191, 79, 238, 205, 174, 86, 140, 115, 215, 78,\n\t\t206, 156, 51, 85, 24, 147, 8, 197, 46, 225, 136, 91, 29, 88,\n\t\t59, 54, 88, 105, 20, 114, 105, 169, 59, 39, 137, 134, 88,\n\t\t237, 226, 68, 198, 56, 14, 224, 82, 43, 91, 203, 221, 188,\n\t\t245, 210, 251, 86, 208, 241, 204, 50, 29, 119, 230, 115, 146,\n\t\t44, 139, 26, 173, 63, 61, 161, 88, 38, 217, 86, 17, 151, 64,\n\t\t227, 157, 18, 188, 65, 29, 188, 226, 80, 157, 150, 211, 61,\n\t\t227, 149, 179, 215, 158, 145, 204, 138, 38, 147, 170, 15,\n\t\t141, 219, 158, 147, 118, 56, 44, 179, 108, 78, 23, 18, 1,\n\t\t195, 171, 60, 3, 0, 32, 231, 158, 172, 54, 186, 221, 213,\n\t\t138, 209, 187, 169, 127, 114, 251, 217, 83, 249, 85, 50, 97,\n\t\t224, 112, 28, 113, 43, 3, 211, 171, 6, 203, 141, 124, 87,\n\t\t90, 246, 114, 98, 145, 227, 242, 186, 69, 21, 145, 98, 108,\n\t\t71, 86, 89, 113, 82, 42, 172, 208, 49, 100, 133, 28, 31, 64,\n\t\t209, 159, 144, 221, 241, 2, 6, 158, 29, 198, 115, 75, 214,\n\t\t37, 172, 187, 81, 140, 0, 203, 233, 105, 198, 154, 38, 102,\n\t\t231, 176, 185, 82, 226, 30, 28, 104, 226, 189, 99, 36, 223,\n\t\t149, 202, 167, 186, 187, 50, 70, 46, 31, 244, 173, 94, 13,\n\t\t124, 33, 190, 222, 32, 45, 191, 209, 26, 20, 132, 170, 158,\n\t\t79, 21, 82, 93, 61, 122, 87, 215, 234, 153, 213, 51, 73, 187,\n\t\t2, 194, 72, 65, 8, 31, 132, 89, 148, 67, 1, 66, 61, 49, 255,\n\t\t121, 85, 63, 129, 32, 54, 10, 52, 176, 45, 39, 172, 183, 34,\n\t\t175, 201, 135, 182, 103, 123, 77, 175, 25, 54, 67, 184, 133,\n\t\t92, 50, 179, 237, 192, 129, 109, 103, 52, 27, 197, 90, 57,\n\t\t42, 111, 26, 173, 183, 248, 171, 225, 154, 85, 171, 86, 69,\n\t\t209, 170, 23, 83, 250, 142, 203, 15, 28, 58, 80, 175, 23,\n\t\t202, 171, 42, 245, 83, 90, 249, 245, 108, 85, 124, 37, 17,\n\t\t22, 4, 135, 225, 48, 34, 72, 71, 189, 8, 133, 94, 42, 12,\n\t\t218, 3, 22, 193, 210, 0, 188, 142, 134, 45, 128, 151, 10,\n\t\t237, 112, 10, 98, 13, 107, 239, 223, 179, 167, 230, 148, 203,\n\t\t142, 150, 213, 245, 44, 188, 99, 15, 22, 236, 84, 197, 221,\n\t\t179, 27, 164, 90, 185, 58, 228, 138, 48, 208, 87, 30, 44,\n\t\t107, 217, 66, 86, 95, 252, 226, 7, 82, 118, 78, 235, 247,\n\t\t238, 135, 129, 62, 171, 96, 247, 141, 84, 18, 61, 143, 16,\n\t\t28, 129, 89, 36, 161, 16, 109, 70, 59, 17, 106, 197, 51, 109,\n\t\t115, 1, 111, 49, 141, 247, 250, 161, 198, 197, 116, 22, 197,\n\t\t119, 221, 113, 99, 28, 76, 65, 232, 216, 22, 115, 88, 76,\n\t\t143, 140, 86, 131, 54, 89, 22, 201, 106, 168, 79, 97, 191,\n\t\t238, 88, 180, 234, 55, 158, 52, 211, 74, 138, 153, 30, 140,\n\t\t165, 197, 92, 95, 57, 202, 228, 243, 122, 43, 51, 148, 201,\n\t\t11, 86, 191, 160, 121, 163, 217, 254, 225, 126, 63, 59, 90,\n\t\t213, 133, 96, 186, 183, 170, 12, 218, 35, 246, 128, 90, 237,\n\t\t53, 243, 253, 126, 102, 164, 56, 50, 220, 181, 223, 51, 77,\n\t\t207, 186, 203, 239, 182, 50, 178, 217, 205, 173, 238, 54,\n\t\t115, 134, 72, 128, 112, 178, 145, 53, 122, 163, 181, 35, 153,\n\t\t172, 91, 48, 44, 73, 180, 244, 130, 155, 117, 107, 55, 120,\n\t\t35, 148, 16, 58, 226, 101, 125, 91, 229, 152, 53, 112, 86,\n\t\t183, 223, 221, 237, 183, 61, 70, 30, 75, 240, 118, 100, 34,\n\t\t212, 227, 69, 45, 127, 0, 136, 103, 122, 196, 51, 131, 74,\n\t\t221, 117, 24, 124, 111, 95, 131, 24, 198, 232, 196, 190, 213,\n\t\t59, 38, 246, 77, 12, 193, 193, 169, 238, 30, 149, 95, 48,\n\t\t204, 197, 223, 128, 19, 223, 23, 14, 13, 77, 118, 236, 198,\n\t\t89, 56, 132, 56, 100, 35, 148, 170, 16, 22, 64, 228, 185,\n\t\t161, 14, 195, 224, 149, 32, 92, 3, 94, 0, 179, 222, 71, 63,\n\t\t10, 41, 126, 78, 249, 44, 109, 182, 184, 97, 250, 38, 216,\n\t\t167, 61, 194, 193, 161, 197, 131, 141, 6, 40, 35, 31, 152,\n\t\t210, 52, 127, 115, 46, 247, 231, 163, 29, 94, 63, 146, 240,\n\t\t0, 2, 194, 130, 40, 100, 238, 26, 168, 68, 241, 31, 28, 153,\n\t\t126, 233, 219, 214, 140, 112, 240, 118, 115, 241, 107, 6,\n\t\t108, 145, 23, 31, 77, 193, 161, 197, 123, 183, 109, 187, 160,\n\t\t111, 112, 112, 223, 76, 115, 6, 17, 68, 150, 14, 195, 173,\n\t\t112, 24, 213, 208, 218, 120, 245, 122, 28, 166, 1, 179, 189,\n\t\t102, 213, 75, 126, 162, 122, 232, 76, 65, 212, 172, 1, 171,\n\t\t122, 77, 39, 106, 134, 118, 43, 108, 134, 118, 145, 115, 157,\n\t\t192, 174, 59, 173, 122, 172, 138, 106, 28, 101, 117, 103,\n\t\t138, 38, 57, 15, 90, 91, 24, 61, 101, 221, 104, 86, 29, 21,\n\t\t207, 145, 8, 75, 169, 10, 16, 183, 192, 147, 157, 106, 92,\n\t\t103, 150, 11, 150, 10, 244, 251, 96, 74, 182, 102, 42, 50,\n\t\t21, 211, 169, 156, 222, 5, 224, 42, 89, 195, 209, 84, 38,\n\t\t219, 102, 197, 40, 195, 247, 210, 51, 205, 65, 110, 195, 250,\n\t\t245, 27, 198, 1, 4, 225, 127, 24, 12, 26, 0, 103, 110, 133,\n\t\t45, 103, 98, 166, 164, 115, 198, 248, 206, 11, 99, 125, 34,\n\t\t72, 154, 168, 164, 100, 138, 1, 126, 31, 203, 26, 78, 148,\n\t\t12, 73, 53, 101, 1, 67, 226, 232, 99, 164, 33, 132, 235, 48,\n\t\t139, 186, 99, 94, 132, 34, 41, 128, 21, 207, 82, 3, 230, 85,\n\t\t131, 88, 89, 6, 205, 70, 44, 223, 167, 32, 10, 235, 110, 17,\n\t\t248, 40, 192, 62, 225, 49, 200, 124, 87, 218, 188, 98, 112,\n\t\t240, 11, 253, 129, 196, 243, 43, 138, 233, 174, 197, 191,\n\t\t127, 255, 251, 97, 131, 210, 237, 21, 37, 113, 247, 64, 170,\n\t\t139, 143, 159, 203, 61, 230, 122, 55, 115, 238, 64, 186, 93,\n\t\t228, 187, 126, 61, 179, 29, 225, 165, 197, 165, 151, 224,\n\t\t22, 56, 132, 12, 228, 33, 20, 141, 48, 58, 0, 85, 127, 13,\n\t\t4, 126, 107, 53, 212, 221, 30, 230, 58, 113, 205, 48, 76,\n\t\t225, 40, 174, 113, 62, 181, 73, 144, 214, 82, 30, 111, 28,\n\t\t36, 148, 174, 149, 25, 136, 247, 158, 71, 120, 186, 78, 102,\n\t\t231, 67, 233, 212, 62, 38, 173, 163, 252, 111, 223, 161, 136,\n\t\t252, 77, 155, 121, 81, 57, 235, 191, 62, 203, 139, 202, 231,\n\t\t113, 235, 93, 167, 42, 226, 27, 228, 98, 25, 141, 254, 41,\n\t\t185, 24, 181, 162, 192, 31, 128, 42, 45, 1, 163, 78, 216,\n\t\t19, 147, 115, 149, 81, 230, 58, 171, 161, 222, 26, 134, 149,\n\t\t18, 241, 124, 129, 31, 193, 101, 94, 168, 241, 4, 151, 70,\n\t\t49, 199, 129, 132, 57, 110, 152, 241, 151, 224, 117, 188,\n\t\t48, 204, 113, 120, 221, 27, 228, 226, 17, 113, 23, 137, 68,\n\t\t202, 181, 206, 230, 232, 11, 28, 21, 191, 70, 110, 20, 41,\n\t\t119, 195, 9, 153, 141, 13, 56, 132, 24, 146, 99, 94, 2, 230,\n\t\t178, 32, 10, 162, 84, 228, 178, 102, 20, 68, 46, 115, 25,\n\t\t8, 183, 190, 241, 130, 205, 187, 118, 238, 220, 181, 115,\n\t\t231, 206, 197, 251, 119, 237, 218, 249, 244, 206, 157, 73,\n\t\t9, 33, 138, 240, 210, 17, 184, 25, 14, 33, 146, 244, 168,\n\t\t35, 19, 229, 16, 234, 97, 193, 26, 96, 113, 111, 193, 26,\n\t\t112, 89, 96, 218, 94, 211, 109, 134, 118, 165, 25, 218, 224,\n\t\t137, 127, 39, 28, 239, 122, 32, 123, 147, 241, 120, 234, 182,\n\t\t27, 202, 55, 52, 158, 57, 218, 187, 248, 64, 239, 157, 65,\n\t\t95, 80, 43, 189, 187, 248, 185, 238, 157, 61, 31, 60, 148,\n\t\t57, 180, 248, 92, 111, 239, 182, 27, 15, 29, 186, 49, 134,\n\t\t155, 95, 90, 90, 58, 2, 223, 134, 79, 32, 134, 116, 228, 162,\n\t\t16, 93, 137, 80, 186, 35, 166, 156, 142, 19, 211, 74, 74,\n\t\t173, 186, 235, 36, 228, 69, 19, 218, 194, 77, 191, 17, 181,\n\t\t226, 191, 152, 178, 200, 20, 158, 224, 18, 247, 161, 134,\n\t\t251, 193, 235, 199, 113, 59, 166, 225, 60, 216, 121, 92, 196,\n\t\t174, 227, 22, 241, 56, 132, 227, 56, 182, 54, 30, 185, 112,\n\t\t253, 250, 11, 215, 239, 156, 26, 28, 156, 26, 252, 137, 238,\n\t\t24, 134, 115, 62, 0, 89, 63, 153, 187, 37, 55, 89, 81, 13,\n\t\t134, 49, 169, 84, 146, 210, 250, 33, 194, 97, 204, 17, 165,\n\t\t36, 100, 61, 187, 15, 227, 94, 199, 203, 10, 37, 133, 112,\n\t\t24, 48, 135, 213, 98, 187, 154, 4, 73, 53, 132, 235, 227,\n\t\t158, 223, 62, 24, 247, 252, 201, 184, 95, 189, 149, 244, 130,\n\t\t227, 30, 149, 114, 209, 202, 221, 146, 159, 168, 84, 99, 107,\n\t\t109, 253, 226, 207, 133, 172, 231, 244, 242, 193, 137, 30,\n\t\t87, 140, 195, 21, 204, 162, 237, 176, 229, 106, 245, 36, 218,\n\t\t115, 81, 233, 143, 105, 47, 221, 193, 213, 50, 206, 86, 82,\n\t\t218, 166, 102, 79, 79, 179, 231, 233, 228, 247, 13, 36, 245,\n\t\t179, 158, 164, 54, 249, 183, 76, 71, 109, 155, 13, 35, 9,\n\t\t165, 16, 50, 93, 175, 187, 131, 126, 51, 96, 97, 20, 186,\n\t\t175, 174, 189, 5, 198, 238, 251, 254, 125, 247, 125, 127,\n\t\t232, 254, 251, 139, 213, 207, 85, 33, 115, 209, 91, 226, 226,\n\t\t125, 139, 95, 127, 233, 165, 70, 3, 97, 68, 151, 94, 130,\n\t\t215, 224, 19, 200, 141, 105, 198, 172, 212, 195, 34, 177,\n\t\t45, 155, 104, 16, 131, 27, 144, 70, 179, 209, 138, 133, 179,\n\t\t3, 207, 67, 108, 176, 226, 13, 32, 210, 197, 39, 153, 10,\n\t\t27, 68, 232, 201, 126, 52, 15, 135, 128, 112, 60, 1, 188,\n\t\t120, 1, 47, 200, 12, 30, 194, 192, 196, 197, 23, 62, 248,\n\t\t65, 4, 136, 45, 29, 134, 113, 56, 140, 250, 16, 226, 19, 251,\n\t\t3, 79, 130, 87, 157, 132, 68, 208, 196, 92, 94, 128, 176,\n\t\t94, 0, 107, 32, 182, 4, 162, 150, 235, 148, 192, 129, 150,\n\t\t210, 172, 244, 79, 21, 213, 97, 73, 238, 239, 37, 160, 111,\n\t\t146, 118, 74, 210, 78, 175, 34, 114, 60, 118, 184, 178, 106,\n\t\t230, 107, 131, 238, 189, 210, 6, 133, 211, 214, 245, 24, 210,\n\t\t117, 210, 140, 116, 91, 206, 86, 56, 12, 108, 90, 106, 203,\n\t\t186, 215, 241, 255, 39, 44, 34, 104, 13, 131, 31, 219, 119,\n\t\t254, 36, 132, 245, 73, 104, 12, 64, 179, 209, 102, 125, 90,\n\t\t0, 107, 53, 196, 118, 95, 88, 63, 41, 36, 161, 97, 172, 1,\n\t\t33, 188, 237, 52, 40, 109, 208, 65, 17, 184, 81, 70, 139,\n\t\t130, 233, 231, 250, 223, 176, 74, 247, 99, 214, 203, 1, 96,\n\t\t65, 77, 237, 160, 13, 122, 42, 149, 86, 165, 8, 27, 160, 187,\n\t\t181, 124, 62, 141, 48, 34, 75, 47, 193, 59, 225, 16, 42, 197,\n\t\t22, 74, 143, 229, 106, 192, 170, 177, 226, 247, 104, 204,\n\t\t18, 205, 70, 43, 170, 59, 97, 61, 118, 160, 93, 26, 208, 192,\n\t\t143, 81, 229, 192, 154, 73, 101, 188, 172, 213, 82, 169, 97,\n\t\t217, 25, 45, 8, 218, 198, 154, 190, 138, 114, 182, 83, 80,\n\t\t198, 242, 225, 170, 114, 15, 87, 80, 252, 52, 249, 218, 154,\n\t\t130, 191, 13, 210, 105, 168, 183, 156, 254, 96, 205, 38, 176,\n\t\t152, 72, 129, 239, 45, 94, 227, 147, 222, 178, 102, 65, 239,\n\t\t201, 113, 137, 101, 121, 129, 82, 145, 237, 217, 205, 208,\n\t\t142, 229, 3, 137, 108, 239, 137, 39, 158, 176, 142, 29, 59,\n\t\t118, 12, 46, 234, 122, 244, 139, 31, 122, 4, 63, 250, 67,\n\t\t248, 88, 245, 5, 20, 203, 154, 242, 210, 139, 112, 8, 62,\n\t\t137, 20, 212, 141, 86, 163, 13, 104, 27, 186, 0, 161, 200,\n\t\t142, 233, 110, 18, 18, 59, 58, 238, 36, 54, 184, 109, 43,\n\t\t70, 177, 215, 73, 170, 126, 228, 53, 166, 72, 20, 248, 81,\n\t\t9, 90, 110, 188, 218, 58, 20, 193, 111, 115, 66, 24, 179,\n\t\t66, 219, 252, 129, 176, 238, 214, 139, 80, 128, 196, 90, 140,\n\t\t251, 220, 109, 100, 210, 105, 69, 78, 73, 175, 166, 21, 43,\n\t\t159, 243, 115, 121, 75, 73, 191, 250, 59, 42, 27, 150, 108,\n\t\t18, 158, 179, 90, 45, 11, 19, 12, 102, 161, 250, 48, 21, 41,\n\t\t229, 248, 27, 40, 199, 49, 194, 19, 238, 98, 65, 21, 227,\n\t\t87, 83, 199, 14, 42, 134, 161, 28, 148, 13, 227, 243, 143,\n\t\t61, 166, 164, 38, 211, 154, 150, 158, 156, 76, 233, 90, 122,\n\t\t50, 245, 93, 37, 107, 91, 58, 245, 56, 140, 187, 51, 153,\n\t\t110, 142, 96, 226, 233, 77, 75, 96, 76, 160, 84, 96, 140,\n\t\t35, 60, 174, 51, 149, 45, 119, 129, 16, 146, 144, 184, 244,\n\t\t77, 248, 58, 124, 27, 201, 40, 139, 174, 68, 55, 163, 123,\n\t\t209, 231, 208, 211, 32, 65, 31, 172, 71, 200, 244, 130, 70,\n\t\t60, 67, 203, 171, 250, 172, 218, 140, 243, 117, 202, 170,\n\t\t163, 35, 212, 116, 236, 88, 214, 197, 196, 22, 248, 1, 245,\n\t\t89, 85, 195, 94, 92, 168, 225, 192, 15, 252, 182, 55, 146,\n\t\t200, 202, 41, 136, 252, 36, 211, 168, 193, 20, 142, 45, 85,\n\t\t234, 210, 34, 184, 142, 235, 48, 199, 77, 254, 8, 117, 29,\n\t\t215, 111, 133, 69, 96, 85, 230, 184, 173, 192, 175, 178, 42,\n\t\t117, 91, 35, 129, 223, 138, 98, 111, 185, 21, 181, 131, 44,\n\t\t110, 17, 135, 78, 34, 128, 99, 69, 31, 155, 155, 85, 210,\n\t\t242, 219, 124, 144, 72, 223, 216, 107, 115, 24, 117, 99, 241,\n\t\t219, 106, 198, 77, 155, 73, 115, 215, 97, 97, 43, 246, 177,\n\t\t131, 216, 147, 102, 190, 231, 199, 80, 39, 19, 72, 122, 10,\n\t\t52, 142, 81, 230, 71, 173, 118, 15, 9, 112, 212, 115, 122,\n\t\t26, 201, 124, 152, 22, 55, 169, 142, 198, 253, 91, 241, 243,\n\t\t120, 90, 152, 248, 81, 221, 25, 117, 92, 39, 172, 39, 211,\n\t\t116, 235, 241, 203, 177, 21, 242, 19, 28, 139, 106, 66, 0,\n\t\t59, 36, 22, 219, 177, 75, 248, 162, 1, 42, 239, 166, 168,\n\t\t147, 203, 169, 0, 74, 15, 99, 186, 164, 112, 204, 204, 150,\n\t\t4, 59, 67, 117, 158, 103, 152, 0, 225, 85, 141, 3, 153, 227,\n\t\t36, 125, 192, 34, 24, 4, 189, 146, 117, 203, 170, 0, 0, 138,\n\t\t164, 84, 212, 148, 138, 49, 198, 140, 227, 190, 205, 99, 129,\n\t\t199, 2, 165, 148, 0, 17, 137, 46, 9, 133, 17, 141, 42, 20,\n\t\t120, 160, 132, 199, 28, 5, 197, 161, 152, 40, 68, 21, 168,\n\t\t212, 133, 211, 28, 175, 115, 58, 167, 41, 138, 14, 18, 244,\n\t\t98, 75, 82, 36, 1, 139, 132, 170, 114, 76, 37, 152, 113, 36,\n\t\t219, 173, 100, 234, 165, 177, 28, 197, 132, 55, 136, 151,\n\t\t231, 121, 218, 195, 241, 66, 142, 99, 170, 41, 82, 158, 79,\n\t\t103, 85, 166, 99, 158, 225, 76, 26, 68, 130, 57, 224, 101,\n\t\t65, 193, 42, 100, 114, 10, 231, 240, 60, 79, 205, 172, 42,\n\t\t19, 78, 149, 128, 106, 28, 207, 113, 204, 160, 174, 152, 194,\n\t\t32, 113, 24, 75, 148, 151, 221, 140, 37, 150, 237, 37, 46,\n\t\t158, 36, 81, 20, 37, 141, 21, 76, 128, 99, 76, 176, 100, 77,\n\t\t35, 176, 49, 246, 45, 49, 144, 24, 117, 137, 191, 137, 23,\n\t\t255, 61, 29, 67, 41, 43, 172, 11, 227, 44, 225, 128, 198,\n\t\t79, 13, 142, 166, 184, 184, 23, 81, 182, 121, 67, 224, 24,\n\t\t47, 241, 60, 193, 58, 201, 20, 106, 97, 190, 135, 47, 103,\n\t\t171, 174, 97, 22, 188, 170, 166, 229, 13, 173, 215, 235, 239,\n\t\t137, 251, 229, 83, 6, 140, 201, 50, 38, 162, 14, 105, 145,\n\t\t35, 56, 229, 26, 124, 159, 204, 3, 239, 0, 21, 121, 130, 53,\n\t\t115, 130, 23, 4, 134, 101, 14, 116, 224, 85, 133, 98, 30,\n\t\t139, 218, 226, 231, 228, 38, 215, 173, 97, 44, 98, 149, 240,\n\t\t60, 199, 168, 150, 166, 166, 64, 57, 158, 234, 66, 61, 69,\n\t\t77, 91, 200, 43, 54, 205, 27, 138, 102, 233, 41, 211, 203,\n\t\t48, 101, 52, 131, 75, 149, 90, 93, 226, 1, 243, 160, 233,\n\t\t32, 0, 38, 114, 182, 203, 202, 113, 165, 82, 57, 116, 160,\n\t\t59, 99, 26, 105, 69, 75, 235, 146, 168, 112, 162, 193, 165,\n\t\t13, 66, 129, 201, 152, 203, 242, 134, 156, 39, 190, 171, 218,\n\t\t24, 187, 114, 74, 1, 143, 35, 60, 143, 37, 9, 11, 241, 170,\n\t\t50, 78, 146, 98, 57, 39, 44, 61, 3, 175, 38, 177, 166, 20,\n\t\t234, 66, 85, 84, 67, 45, 52, 241, 186, 253, 210, 163, 225,\n\t\t152, 131, 220, 216, 18, 102, 142, 59, 133, 131, 184, 34, 242,\n\t\t153, 229, 78, 225, 200, 15, 104, 96, 185, 69, 136, 252, 64,\n\t\t3, 183, 21, 249, 204, 121, 32, 81, 163, 240, 16, 53, 199,\n\t\t61, 81, 60, 237, 12, 56, 37, 216, 31, 14, 116, 87, 163, 212,\n\t\t207, 138, 35, 21, 186, 247, 226, 238, 79, 71, 169, 214, 169,\n\t\t61, 76, 186, 234, 154, 153, 218, 193, 80, 45, 79, 158, 251,\n\t\t203, 45, 218, 154, 141, 5, 120, 34, 209, 200, 37, 193, 234,\n\t\t215, 44, 71, 50, 78, 159, 241, 178, 202, 216, 122, 197, 55,\n\t\t123, 181, 193, 177, 10, 228, 214, 222, 62, 51, 81, 92, 85,\n\t\t147, 210, 233, 50, 38, 15, 247, 104, 238, 150, 29, 214, 25,\n\t\t181, 198, 110, 75, 222, 246, 186, 126, 251, 54, 28, 66, 57,\n\t\t180, 227, 132, 95, 29, 196, 210, 178, 237, 96, 38, 49, 194,\n\t\t36, 160, 193, 18, 239, 223, 15, 106, 164, 217, 136, 157, 224,\n\t\t88, 177, 52, 99, 137, 107, 91, 69, 230, 22, 113, 242, 102,\n\t\t226, 18, 219, 150, 3, 159, 119, 215, 213, 252, 162, 227, 236,\n\t\t186, 145, 59, 145, 251, 251, 161, 245, 231, 241, 114, 74,\n\t\t75, 241, 253, 86, 214, 148, 153, 194, 248, 13, 103, 175, 37,\n\t\t162, 144, 22, 179, 82, 137, 79, 41, 106, 198, 76, 231, 85,\n\t\t83, 210, 244, 83, 238, 47, 250, 181, 117, 46, 119, 227, 46,\n\t\t219, 61, 145, 187, 118, 168, 111, 204, 6, 204, 113, 76, 96,\n\t\t142, 145, 226, 69, 153, 101, 74, 189, 125, 114, 90, 147, 36,\n\t\t202, 8, 3, 158, 200, 162, 162, 107, 41, 45, 165, 230, 252,\n\t\t100, 110, 143, 195, 65, 248, 38, 114, 208, 154, 68, 119, 235,\n\t\t160, 145, 142, 118, 14, 150, 55, 22, 18, 179, 221, 78, 89,\n\t\t107, 96, 10, 98, 103, 25, 98, 81, 21, 87, 198, 234, 98, 10,\n\t\t39, 254, 115, 19, 214, 23, 44, 54, 130, 57, 49, 165, 238,\n\t\t224, 8, 126, 183, 106, 165, 179, 89, 0, 16, 216, 191, 48,\n\t\t17, 159, 203, 68, 249, 52, 158, 113, 192, 49, 44, 177, 221,\n\t\t162, 76, 120, 129, 187, 130, 80, 158, 192, 55, 203, 149, 5,\n\t\t81, 48, 24, 33, 127, 174, 11, 204, 133, 71, 83, 133, 211,\n\t\t153, 44, 211, 197, 47, 97, 124, 149, 192, 243, 20, 59, 61,\n\t\t76, 86, 68, 149, 19, 120, 66, 72, 114, 154, 145, 36, 182,\n\t\t113, 172, 83, 211, 200, 123, 61, 210, 223, 182, 162, 154,\n\t\t141, 68, 51, 154, 205, 70, 2, 120, 1, 172, 98, 12, 118, 43,\n\t\t106, 87, 104, 112, 162, 6, 238, 112, 43, 122, 151, 190, 248,\n\t\t136, 91, 169, 184, 247, 24, 242, 14, 217, 16, 20, 182, 67,\n\t\t54, 190, 109, 200, 219, 153, 202, 4, 133, 109, 151, 13, 56,\n\t\t84, 113, 23, 31, 209, 187, 244, 138, 251, 133, 119, 246, 186,\n\t\t149, 197, 47, 45, 202, 134, 33, 47, 10, 10, 51, 222, 254,\n\t\t190, 228, 149, 247, 197, 249, 14, 173, 60, 211, 137, 177,\n\t\t230, 94, 167, 118, 126, 10, 251, 129, 79, 99, 249, 92, 139,\n\t\t125, 64, 167, 4, 247, 181, 233, 249, 74, 194, 131, 34, 187,\n\t\t21, 69, 241, 21, 165, 234, 106, 18, 229, 223, 210, 33, 216,\n\t\t237, 188, 97, 59, 130, 44, 106, 42, 104, 154, 40, 75, 101,\n\t\t151, 61, 144, 132, 62, 80, 26, 149, 113, 3, 46, 68, 91, 16,\n\t\t130, 88, 53, 88, 238, 72, 236, 27, 15, 64, 181, 70, 218, 81,\n\t\t141, 78, 236, 39, 118, 5, 26, 177, 119, 231, 38, 161, 197,\n\t\t73, 136, 9, 51, 89, 195, 2, 88, 245, 104, 10, 214, 64, 108,\n\t\t22, 226, 10, 233, 171, 2, 165, 106, 218, 49, 117, 194, 114,\n\t\t171, 153, 164, 72, 150, 212, 107, 42, 28, 24, 185, 225, 11,\n\t\t187, 171, 67, 154, 181, 90, 150, 57, 123, 210, 160, 60, 8,\n\t\t2, 227, 24, 183, 199, 48, 211, 102, 183, 40, 178, 244, 234,\n\t\t12, 156, 174, 111, 8, 65, 20, 36, 45, 157, 113, 51, 66, 150,\n\t\t147, 20, 71, 242, 181, 138, 33, 41, 242, 170, 70, 237, 188,\n\t\t17, 41, 37, 169, 147, 23, 138, 234, 217, 154, 37, 74, 28,\n\t\t71, 57, 231, 96, 42, 109, 79, 88, 102, 10, 33, 150, 108, 153,\n\t\t139, 240, 57, 164, 34, 31, 141, 160, 41, 116, 58, 218, 137,\n\t\t206, 71, 8, 98, 101, 234, 183, 162, 150, 195, 52, 240, 73,\n\t\t181, 163, 169, 99, 149, 23, 215, 209, 68, 249, 49, 218, 74,\n\t\t80, 90, 132, 168, 101, 182, 138, 192, 168, 31, 181, 223, 35,\n\t\t9, 182, 99, 133, 87, 132, 24, 249, 180, 8, 83, 224, 71, 126,\n\t\t91, 49, 194, 95, 208, 108, 90, 86, 120, 201, 15, 21, 98, 170,\n\t\t223, 220, 117, 203, 230, 83, 39, 6, 9, 80, 162, 79, 156, 102,\n\t\t98, 142, 174, 227, 200, 244, 134, 134, 120, 193, 244, 244,\n\t\t14, 225, 130, 233, 233, 141, 245, 93, 190, 65, 123, 104, 234,\n\t\t244, 72, 209, 232, 122, 101, 109, 185, 232, 170, 234, 68,\n\t\t177, 156, 123, 147, 228, 80, 202, 91, 174, 66, 93, 145, 242,\n\t\t98, 236, 180, 107, 233, 60, 135, 53, 19, 11, 99, 221, 18,\n\t\t81, 23, 255, 107, 243, 228, 250, 205, 167, 114, 36, 208, 44,\n\t\t153, 207, 21, 70, 25, 71, 172, 102, 115, 160, 118, 249, 142,\n\t\t144, 209, 13, 241, 15, 220, 32, 213, 118, 143, 152, 138, 217,\n\t\t156, 145, 73, 202, 94, 124, 182, 144, 151, 197, 102, 46, 215,\n\t\t37, 8, 33, 112, 130, 40, 153, 146, 96, 89, 41, 34, 136, 28,\n\t\t39, 74, 177, 47, 210, 150, 175, 143, 33, 17, 153, 168, 136,\n\t\t144, 105, 81, 230, 199, 107, 27, 153, 213, 96, 10, 162, 34,\n\t\t184, 52, 170, 145, 73, 40, 130, 109, 189, 48, 179, 110, 188,\n\t\t181, 119, 188, 111, 205, 170, 161, 53, 178, 188, 102, 40,\n\t\t122, 87, 165, 21, 56, 231, 188, 21, 220, 153, 219, 202, 27,\n\t\t119, 79, 94, 190, 81, 90, 180, 138, 249, 237, 181, 218, 246,\n\t\t124, 241, 28, 61, 92, 179, 165, 239, 163, 250, 93, 231, 239,\n\t\t70, 8, 150, 150, 150, 190, 11, 179, 240, 56, 154, 65, 168,\n\t\t71, 195, 254, 48, 196, 142, 69, 35, 172, 183, 34, 13, 106,\n\t\t16, 76, 65, 17, 187, 113, 190, 90, 227, 131, 86, 17, 151,\n\t\t160, 213, 172, 145, 86, 84, 196, 84, 135, 60, 216, 141, 41,\n\t\t174, 238, 106, 100, 24, 40, 155, 34, 14, 204, 234, 245, 209,\n\t\t33, 77, 43, 237, 27, 83, 148, 145, 237, 5, 179, 103, 120,\n\t\t80, 47, 69, 61, 165, 20, 211, 25, 166, 166, 217, 229, 186,\n\t\t105, 5, 119, 55, 60, 155, 227, 9, 167, 21, 116, 222, 244,\n\t\t124, 158, 167, 60, 167, 234, 153, 46, 207, 132, 98, 127, 159,\n\t\t166, 49, 149, 168, 190, 31, 189, 199, 15, 176, 36, 176, 169,\n\t\t83, 51, 171, 67, 198, 137, 67, 129, 74, 37, 219, 86, 186,\n\t\t7, 1, 128, 19, 12, 171, 100, 169, 52, 95, 82, 149, 170, 73,\n\t\t228, 238, 238, 86, 151, 218, 63, 208, 171, 168, 144, 101,\n\t\t152, 166, 116, 67, 96, 61, 245, 20, 197, 184, 175, 135, 83,\n\t\t92, 89, 138, 237, 244, 212, 210, 97, 248, 10, 28, 70, 10,\n\t\t50, 144, 21, 99, 53, 170, 36, 150, 53, 107, 198, 150, 49,\n\t\t174, 216, 61, 205, 138, 29, 212, 157, 2, 84, 98, 169, 159,\n\t\t134, 135, 252, 156, 121, 246, 35, 57, 31, 30, 90, 220, 15,\n\t\t15, 173, 205, 249, 139, 251, 253, 220, 65, 167, 16, 236, 222,\n\t\t29, 20, 134, 118, 237, 186, 102, 215, 174, 191, 239, 205,\n\t\t59, 78, 190, 247, 13, 126, 82, 227, 79, 237, 223, 6, 62, 107,\n\t\t37, 20, 157, 40, 197, 170, 70, 152, 155, 236, 73, 186, 29,\n\t\t219, 237, 36, 23, 105, 27, 169, 175, 203, 232, 21, 2, 86,\n\t\t46, 99, 112, 174, 73, 13, 91, 47, 48, 221, 230, 152, 164,\n\t\t136, 2, 227, 204, 252, 208, 218, 233, 147, 125, 165, 15, 173,\n\t\t1, 178, 85, 20, 29, 163, 220, 95, 188, 36, 159, 197, 66, 74,\n\t\t237, 162, 166, 174, 120, 249, 74, 86, 11, 119, 206, 116, 246,\n\t\t136, 218, 48, 10, 200, 66, 5, 52, 128, 26, 104, 29, 58, 3,\n\t\t157, 141, 80, 212, 118, 117, 87, 131, 219, 104, 197, 40, 136,\n\t\t139, 77, 51, 241, 126, 157, 2, 176, 88, 210, 197, 26, 33,\n\t\t166, 193, 144, 143, 43, 227, 114, 240, 186, 159, 82, 4, 155,\n\t\t180, 197, 225, 36, 68, 237, 158, 226, 162, 183, 55, 239, 231,\n\t\t243, 230, 112, 38, 23, 228, 243, 65, 110, 216, 202, 229, 130,\n\t\t252, 176, 153, 207, 155, 111, 53, 243, 170, 173, 66, 184,\n\t\t226, 185, 169, 58, 202, 201, 45, 242, 230, 109, 111, 40, 255,\n\t\t159, 188, 160, 218, 234, 226, 247, 78, 26, 18, 37, 126, 214,\n\t\t178, 189, 194, 163, 97, 20, 161, 181, 232, 52, 180, 29, 161,\n\t\t28, 212, 160, 217, 224, 45, 29, 130, 68, 168, 120, 129, 79,\n\t\t157, 208, 9, 93, 214, 41, 87, 189, 169, 216, 127, 170, 38,\n\t\t26, 221, 117, 88, 236, 69, 122, 213, 192, 140, 229, 47, 139,\n\t\t90, 205, 198, 114, 124, 38, 221, 137, 64, 76, 93, 220, 90,\n\t\t7, 23, 27, 206, 230, 140, 0, 98, 213, 89, 69, 121, 142, 151,\n\t\t149, 202, 240, 150, 140, 136, 5, 207, 161, 66, 97, 111, 180,\n\t\t99, 18, 131, 110, 219, 233, 187, 215, 2, 120, 221, 197, 226,\n\t\t241, 174, 241, 145, 181, 198, 68, 162, 20, 110, 127, 239,\n\t\t211, 239, 125, 239, 211, 224, 46, 254, 166, 235, 210, 169,\n\t\t161, 106, 170, 113, 202, 47, 48, 164, 98, 67, 84, 20, 241,\n\t\t121, 119, 255, 42, 41, 12, 54, 86, 185, 186, 81, 45, 142,\n\t\t127, 13, 176, 34, 66, 125, 56, 26, 191, 40, 255, 141, 222,\n\t\t110, 69, 110, 199, 34, 62, 19, 247, 241, 222, 101, 219, 230,\n\t\t40, 28, 134, 123, 19, 43, 13, 245, 176, 36, 136, 30, 217,\n\t\t201, 94, 129, 155, 138, 82, 81, 16, 249, 65, 211, 113, 35,\n\t\t48, 54, 156, 125, 253, 213, 59, 162, 141, 91, 198, 55, 124,\n\t\t245, 207, 122, 138, 189, 27, 67, 207, 40, 11, 51, 171, 154,\n\t\t219, 165, 1, 113, 85, 183, 63, 206, 96, 103, 101, 113, 246,\n\t\t158, 130, 149, 102, 3, 66, 201, 68, 128, 236, 165, 195, 240,\n\t\t5, 56, 140, 242, 8, 69, 110, 236, 5, 69, 53, 62, 217, 101,\n\t\t141, 13, 190, 40, 206, 208, 63, 112, 174, 40, 102, 56, 185,\n\t\t156, 41, 231, 202, 134, 110, 26, 233, 242, 165, 226, 234,\n\t\t97, 75, 79, 155, 122, 207, 67, 47, 114, 220, 139, 230, 88,\n\t\t127, 52, 20, 186, 28, 55, 246, 121, 253, 194, 51, 187, 57,\n\t\t174, 209, 217, 199, 125, 6, 126, 13, 79, 196, 125, 247, 172,\n\t\t216, 231, 168, 65, 103, 155, 99, 10, 71, 94, 51, 116, 224,\n\t\t215, 183, 93, 121, 233, 125, 247, 93, 186, 111, 227, 250,\n\t\t242, 185, 91, 162, 221, 211, 94, 84, 74, 145, 123, 254, 131,\n\t\t123, 242, 138, 59, 238, 251, 254, 125, 107, 215, 150, 228,\n\t\t202, 150, 250, 218, 243, 93, 175, 170, 159, 229, 32, 254,\n\t\t4, 29, 8, 200, 64, 171, 209, 105, 104, 23, 66, 173, 152, 170,\n\t\t99, 130, 94, 142, 246, 184, 85, 230, 7, 145, 219, 14, 40,\n\t\t121, 85, 22, 248, 58, 180, 207, 93, 56, 46, 237, 140, 222,\n\t\t108, 4, 83, 224, 179, 68, 91, 85, 99, 71, 51, 54, 103, 99,\n\t\t27, 145, 182, 121, 228, 135, 182, 166, 217, 26, 56, 201, 170,\n\t\t170, 154, 212, 93, 79, 173, 210, 108, 77, 147, 117, 54, 201,\n\t\t99, 179, 222, 45, 234, 134, 73, 117, 188, 181, 149, 27, 237,\n\t\t182, 64, 231, 205, 93, 28, 199, 243, 169, 205, 41, 158, 231,\n\t\t56, 117, 189, 45, 199, 239, 83, 229, 125, 186, 36, 233, 186,\n\t\t117, 87, 178, 178, 255, 77, 202, 226, 173, 138, 172, 233,\n\t\t150, 174, 105, 64, 207, 194, 89, 41, 83, 18, 152, 208, 27,\n\t\t233, 217, 110, 83, 16, 88, 41, 115, 144, 227, 120, 46, 149,\n\t\t138, 93, 31, 21, 206, 77, 94, 150, 152, 28, 235, 96, 254,\n\t\t4, 239, 171, 40, 139, 122, 80, 19, 93, 152, 196, 230, 59,\n\t\t224, 59, 245, 168, 21, 88, 109, 171, 55, 182, 118, 219, 147,\n\t\t105, 23, 163, 149, 130, 172, 82, 119, 88, 7, 65, 137, 213,\n\t\t241, 191, 64, 81, 171, 141, 33, 200, 241, 124, 122, 38, 205,\n\t\t243, 28, 175, 157, 170, 241, 103, 27, 178, 172, 235, 178,\n\t\t108, 156, 215, 78, 140, 71, 86, 74, 176, 253, 154, 28, 180,\n\t\t204, 213, 130, 194, 98, 3, 204, 16, 214, 241, 216, 106, 249,\n\t\t178, 158, 182, 153, 129, 119, 142, 175, 222, 129, 13, 102,\n\t\t95, 194, 241, 233, 52, 207, 241, 188, 166, 241, 163, 157,\n\t\t94, 140, 229, 110, 255, 250, 245, 206, 242, 159, 144, 114,\n\t\t176, 75, 99, 10, 211, 29, 67, 215, 129, 238, 193, 57, 185,\n\t\t171, 34, 8, 98, 255, 196, 68, 191, 196, 132, 74, 215, 9, 61,\n\t\t27, 219, 115, 61, 104, 108, 101, 252, 213, 41, 128, 27, 37,\n\t\t198, 125, 91, 22, 38, 161, 23, 39, 177, 178, 26, 238, 72,\n\t\t211, 235, 132, 104, 88, 208, 38, 8, 104, 59, 48, 115, 154,\n\t\t236, 86, 7, 167, 6, 37, 93, 26, 31, 44, 149, 6, 159, 28, 151,\n\t\t116, 169, 234, 14, 150, 44, 207, 234, 216, 125, 21, 137, 217,\n\t\t146, 228, 22, 7, 250, 139, 87, 9, 146, 36, 12, 213, 74, 131,\n\t\t3, 165, 43, 217, 91, 106, 35, 76, 146, 216, 176, 36, 15, 151,\n\t\t6, 44, 47, 225, 221, 37, 56, 14, 179, 200, 64, 163, 8, 245,\n\t\t116, 6, 116, 35, 59, 38, 204, 73, 8, 78, 0, 151, 196, 117,\n\t\t194, 14, 97, 198, 210, 56, 145, 216, 112, 124, 221, 158, 117,\n\t\t213, 134, 238, 24, 239, 213, 93, 125, 221, 112, 109, 221,\n\t\t89, 134, 204, 75, 140, 91, 127, 222, 250, 198, 227, 155, 106,\n\t\t235, 214, 214, 54, 25, 198, 41, 49, 222, 78, 29, 47, 197,\n\t\t8, 63, 84, 91, 187, 174, 182, 105, 163, 172, 115, 76, 226,\n\t\t63, 53, 180, 102, 122, 168, 91, 111, 203, 144, 151, 18, 255,\n\t\t168, 7, 133, 201, 169, 138, 54, 53, 4, 126, 59, 22, 221, 166,\n\t\t9, 55, 49, 66, 221, 229, 72, 74, 211, 107, 38, 27, 131, 161,\n\t\t29, 214, 91, 240, 20, 142, 87, 153, 82, 89, 196, 152, 80,\n\t\t18, 175, 15, 165, 132, 143, 221, 119, 142, 196, 174, 54, 20,\n\t\t15, 63, 194, 196, 248, 134, 119, 240, 44, 94, 67, 32, 2, 198,\n\t\t156, 164, 208, 120, 41, 49, 198, 64, 128, 112, 152, 227, 56,\n\t\t178, 248, 193, 71, 14, 139, 236, 145, 195, 98, 91, 159, 161,\n\t\t50, 70, 112, 33, 226, 145, 136, 82, 200, 70, 5, 84, 65, 61,\n\t\t168, 15, 33, 179, 25, 38, 17, 122, 207, 238, 137, 51, 97,\n\t\t211, 139, 154, 158, 205, 154, 237, 66, 96, 135, 205, 32, 76,\n\t\t54, 107, 189, 153, 240, 182, 153, 18, 156, 122, 219, 109,\n\t\t51, 51, 51, 165, 239, 221, 118, 219, 76, 169, 244, 96, 163,\n\t\t209, 104, 128, 181, 249, 247, 95, 185, 125, 207, 158, 219,\n\t\t143, 245, 229, 251, 246, 236, 233, 251, 202, 177, 190, 252,\n\t\t237, 123, 246, 92, 31, 102, 191, 130, 78, 226, 167, 216, 70,\n\t\t243, 80, 29, 173, 67, 40, 157, 248, 142, 205, 88, 86, 37,\n\t\t218, 47, 206, 191, 145, 123, 248, 152, 55, 106, 224, 85, 153,\n\t\t103, 71, 205, 34, 180, 247, 43, 25, 101, 118, 212, 116, 194,\n\t\t250, 247, 210, 170, 204, 152, 172, 158, 162, 154, 166, 42,\n\t\t83, 246, 204, 73, 241, 208, 223, 149, 6, 172, 170, 149, 78,\n\t\t13, 133, 218, 151, 6, 138, 148, 163, 170, 83, 108, 40, 70,\n\t\t9, 42, 37, 151, 219, 192, 93, 238, 36, 201, 39, 87, 176, 193,\n\t\t223, 13, 151, 157, 30, 91, 252, 190, 20, 242, 227, 235, 106,\n\t\t96, 106, 46, 126, 72, 10, 121, 36, 32, 182, 244, 215, 120,\n\t\t12, 14, 35, 138, 210, 104, 26, 109, 64, 143, 163, 39, 209,\n\t\t83, 232, 31, 17, 138, 88, 80, 79, 166, 80, 36, 46, 29, 134,\n\t\t41, 32, 62, 101, 173, 104, 138, 68, 69, 28, 217, 97, 43, 154,\n\t\t18, 214, 64, 12, 113, 108, 196, 196, 22, 40, 243, 35, 102,\n\t\t55, 73, 17, 187, 26, 102, 53, 226, 81, 230, 184, 69, 177,\n\t\t0, 14, 243, 105, 48, 1, 81, 163, 213, 244, 89, 59, 100, 29,\n\t\t248, 29, 215, 122, 13, 180, 3, 113, 203, 238, 181, 14, 203,\n\t\t114, 35, 246, 106, 162, 160, 21, 196, 86, 5, 113, 35, 13,\n\t\t23, 160, 85, 36, 44, 81, 203, 46, 115, 167, 112, 232, 140,\n\t\t90, 26, 241, 142, 229, 129, 40, 28, 127, 15, 97, 34, 101,\n\t\t16, 70, 76, 110, 101, 200, 105, 174, 144, 150, 210, 130, 69,\n\t\t56, 81, 18, 216, 41, 158, 160, 42, 76, 226, 36, 162, 16, 12,\n\t\t202, 224, 165, 68, 16, 4, 70, 64, 97, 233, 31, 192, 106, 169,\n\t\t43, 101, 105, 222, 160, 148, 182, 197, 106, 145, 96, 140,\n\t\t177, 200, 81, 194, 97, 2, 0, 50, 91, 35, 64, 133, 81, 105,\n\t\t48, 21, 235, 126, 138, 233, 157, 50, 199, 196, 187, 49, 22,\n\t\t120, 25, 128, 129, 200, 143, 96, 25, 75, 205, 97, 170, 245,\n\t\t169, 134, 138, 77, 131, 119, 211, 233, 180, 74, 36, 78, 131,\n\t\t180, 225, 4, 133, 130, 249, 132, 72, 148, 141, 90, 201, 154,\n\t\t96, 78, 90, 1, 201, 208, 13, 248, 46, 229, 185, 127, 16, 13,\n\t\t37, 5, 166, 56, 36, 40, 32, 115, 68, 214, 25, 209, 4, 151,\n\t\t16, 85, 0, 39, 151, 99, 146, 204, 84, 46, 197, 59, 28, 49,\n\t\t50, 231, 103, 147, 67, 85, 188, 142, 57, 222, 250, 26, 0,\n\t\t44, 254, 153, 81, 210, 211, 162, 145, 226, 245, 109, 103,\n\t\t76, 64, 252, 144, 17, 74, 40, 199, 152, 64, 69, 53, 4, 145,\n\t\t167, 57, 145, 84, 24, 8, 122, 46, 147, 47, 114, 152, 149,\n\t\t41, 47, 225, 34, 79, 121, 140, 57, 77, 178, 176, 194, 9, 141,\n\t\t154, 38, 73, 192, 51, 158, 167, 70, 149, 199, 18, 203, 137,\n\t\t76, 147, 48, 79, 65, 181, 188, 220, 250, 12, 249, 42, 23,\n\t\t106, 123, 129, 195, 60, 142, 57, 180, 29, 231, 46, 47, 29,\n\t\t129, 67, 112, 8, 101, 80, 47, 26, 71, 59, 147, 125, 207, 101,\n\t\t29, 49, 133, 147, 224, 106, 44, 4, 204, 228, 8, 154, 87, 245,\n\t\t135, 161, 74, 93, 167, 21, 104, 16, 123, 100, 177, 169, 27,\n\t\t181, 252, 192, 175, 198, 165, 196, 143, 245, 170, 49, 27,\n\t\t104, 224, 184, 206, 20, 118, 235, 14, 76, 139, 25, 63, 123,\n\t\t96, 235, 214, 131, 93, 126, 94, 236, 85, 77, 82, 214, 229,\n\t\t1, 149, 231, 48, 49, 187, 245, 46, 158, 231, 121, 98, 111,\n\t\t243, 5, 147, 35, 162, 166, 138, 18, 38, 152, 50, 158, 207,\n\t\t158, 229, 170, 186, 193, 20, 105, 82, 150, 170, 3, 118, 198,\n\t\t211, 152, 102, 134, 189, 253, 162, 52, 2, 91, 120, 103, 112,\n\t\t99, 48, 115, 217, 213, 219, 123, 54, 244, 187, 188, 35, 107,\n\t\t158, 47, 49, 107, 241, 49, 158, 3, 172, 49, 194, 137, 36,\n\t\t77, 55, 16, 131, 18, 65, 166, 140, 3, 222, 32, 156, 133, 123,\n\t\t250, 109, 161, 63, 147, 237, 170, 118, 75, 154, 228, 102,\n\t\t96, 116, 69, 156, 255, 19, 40, 131, 70, 209, 233, 232, 98,\n\t\t132, 204, 118, 128, 190, 229, 178, 216, 250, 43, 1, 171, 37,\n\t\t46, 105, 13, 220, 36, 16, 27, 219, 142, 137, 165, 232, 176,\n\t\t160, 213, 240, 147, 221, 208, 228, 204, 85, 60, 239, 128,\n\t\t250, 65, 20, 91, 24, 195, 16, 197, 158, 174, 6, 140, 6, 26,\n\t\t238, 40, 92, 63, 114, 169, 149, 232, 228, 8, 188, 140, 91,\n\t\t225, 90, 253, 131, 169, 188, 45, 237, 31, 12, 43, 134, 165,\n\t\t10, 86, 215, 187, 207, 210, 204, 86, 150, 84, 221, 140, 87,\n\t\t116, 140, 161, 65, 221, 41, 202, 210, 238, 159, 58, 69, 47,\n\t\t171, 101, 83, 36, 59, 102, 13, 26, 121, 71, 222, 63, 116,\n\t\t158, 208, 123, 209, 72, 160, 244, 70, 196, 200, 106, 89, 175,\n\t\t203, 210, 6, 7, 53, 73, 46, 73, 231, 202, 176, 63, 235, 21,\n\t\t108, 165, 127, 80, 115, 138, 242, 254, 193, 122, 213, 48,\n\t\t91, 93, 92, 229, 130, 93, 154, 165, 10, 113, 79, 110, 133,\n\t\t91, 53, 52, 20, 247, 35, 237, 190, 138, 84, 220, 172, 167,\n\t\t58, 170, 160, 57, 157, 23, 206, 19, 123, 33, 238, 90, 211,\n\t\t108, 197, 203, 218, 21, 46, 26, 28, 50, 242, 178, 44, 159,\n\t\t163, 196, 54, 55, 66, 50, 158, 134, 235, 145, 140, 210, 40,\n\t\t139, 10, 40, 140, 53, 108, 228, 36, 62, 87, 42, 172, 219,\n\t\t86, 96, 135, 245, 102, 195, 115, 235, 205, 198, 0, 216, 61,\n\t\t94, 51, 116, 45, 230, 181, 245, 105, 20, 190, 110, 139, 176,\n\t\t48, 166, 150, 95, 175, 61, 181, 249, 197, 207, 190, 229, 187,\n\t\t103, 14, 55, 165, 241, 85, 187, 224, 201, 123, 239, 93, 5,\n\t\t127, 93, 41, 202, 174, 73, 166, 242, 231, 79, 156, 114, 218,\n\t\t248, 248, 250, 39, 175, 227, 195, 108, 249, 249, 244, 169,\n\t\t97, 3, 222, 116, 78, 184, 117, 199, 64, 239, 111, 134, 195,\n\t\t139, 230, 188, 231, 121, 161, 92, 21, 116, 249, 172, 211,\n\t\t39, 86, 111, 217, 150, 143, 138, 49, 77, 179, 19, 50, 156,\n\t\t34, 53, 145, 226, 1, 10, 209, 169, 177, 55, 52, 0, 205, 176,\n\t\t30, 180, 19, 183, 238, 122, 83, 240, 71, 86, 80, 216, 244,\n\t\t88, 35, 104, 37, 192, 199, 30, 115, 39, 18, 136, 195, 122,\n\t\t228, 197, 194, 174, 25, 54, 158, 44, 13, 213, 138, 172, 107,\n\t\t160, 183, 112, 107, 158, 172, 129, 212, 95, 172, 20, 230,\n\t\t143, 108, 221, 58, 224, 117, 77, 237, 222, 83, 8, 254, 162,\n\t\t123, 77, 175, 148, 206, 25, 117, 163, 74, 210, 98, 117, 255,\n\t\t71, 178, 141, 200, 29, 26, 42, 106, 198, 131, 43, 68, 249,\n\t\t59, 205, 119, 247, 73, 106, 102, 228, 112, 126, 160, 60, 208,\n\t\t95, 54, 114, 166, 60, 44, 72, 30, 75, 104, 179, 29, 151, 170,\n\t\t160, 58, 26, 143, 53, 81, 79, 251, 248, 85, 208, 14, 13, 5,\n\t\t145, 211, 234, 216, 11, 204, 103, 65, 66, 153, 188, 51, 5,\n\t\t254, 48, 180, 98, 133, 157, 236, 44, 180, 218, 222, 158, 69,\n\t\t151, 55, 82, 143, 174, 187, 110, 253, 174, 91, 157, 11, 120,\n\t\t191, 171, 208, 15, 59, 123, 87, 69, 91, 162, 213, 25, 235,\n\t\t54, 225, 125, 23, 93, 122, 223, 226, 23, 245, 130, 170, 106,\n\t\t101, 203, 180, 68, 33, 213, 107, 167, 197, 95, 134, 61, 61,\n\t\t97, 207, 76, 144, 203, 5, 185, 195, 235, 175, 91, 119, 241,\n\t\t153, 65, 166, 60, 80, 156, 128, 85, 65, 208, 106, 5, 112,\n\t\t22, 168, 209, 133, 183, 222, 247, 43, 170, 20, 11, 84, 21,\n\t\t4, 209, 178, 122, 83, 130, 144, 126, 107, 119, 163, 187, 187,\n\t\t97, 199, 94, 155, 127, 242, 57, 223, 22, 154, 66, 167, 33,\n\t\t212, 129, 179, 8, 9, 152, 174, 99, 190, 238, 91, 79, 130,\n\t\t27, 35, 252, 141, 19, 140, 233, 134, 235, 76, 135, 181, 167,\n\t\t99, 91, 69, 248, 154, 34, 107, 197, 116, 218, 52, 12, 223,\n\t\t76, 9, 5, 237, 213, 101, 143, 251, 92, 146, 206, 27, 185,\n\t\t0, 206, 236, 105, 134, 167, 133, 171, 156, 244, 245, 121,\n\t\t11, 172, 145, 106, 117, 196, 91, 109, 102, 179, 61, 93, 138,\n\t\t181, 53, 151, 167, 10, 99, 130, 239, 235, 2, 75, 41, 20, 246,\n\t\t46, 175, 229, 91, 122, 244, 140, 214, 91, 88, 5, 141, 158,\n\t\t238, 48, 236, 134, 237, 88, 29, 249, 132, 149, 255, 105, 53,\n\t\t126, 223, 234, 234, 238, 234, 74, 43, 150, 178, 188, 87, 184,\n\t\t28, 63, 204, 162, 26, 90, 191, 34, 134, 216, 142, 45, 179,\n\t\t182, 245, 28, 27, 228, 81, 187, 38, 54, 14, 58, 117, 206,\n\t\t255, 162, 178, 19, 108, 220, 67, 69, 233, 194, 123, 84, 129,\n\t\t97, 233, 29, 59, 104, 89, 144, 229, 45, 251, 235, 35, 134,\n\t\t34, 96, 105, 205, 187, 70, 132, 110, 81, 83, 103, 222, 190,\n\t\t174, 145, 82, 37, 34, 77, 124, 174, 73, 59, 6, 233, 139, 34,\n\t\t149, 233, 88, 137, 104, 84, 196, 93, 117, 110, 157, 44, 168,\n\t\t108, 72, 229, 13, 65, 198, 70, 42, 207, 109, 86, 37, 93, 24,\n\t\t49, 248, 180, 164, 225, 180, 81, 106, 31, 207, 66, 104, 233,\n\t\t48, 76, 195, 97, 100, 37, 231, 45, 66, 219, 211, 97, 132,\n\t\t121, 205, 40, 240, 154, 225, 26, 28, 194, 244, 69, 236, 188,\n\t\t79, 168, 131, 226, 158, 61, 236, 172, 135, 180, 1, 241, 34,\n\t\t120, 211, 215, 164, 89, 113, 167, 184, 231, 49, 49, 78, 16,\n\t\t210, 16, 66, 77, 60, 11, 103, 32, 25, 185, 200, 67, 67, 104,\n\t\t12, 109, 64, 91, 209, 133, 232, 122, 52, 139, 62, 136, 62,\n\t\t142, 190, 128, 30, 143, 61, 75, 102, 121, 213, 102, 16, 53,\n\t\t194, 122, 84, 183, 79, 148, 86, 230, 105, 189, 4, 140, 86,\n\t\t155, 193, 26, 72, 114, 237, 218, 214, 235, 45, 218, 217, 164,\n\t\t129, 211, 169, 28, 134, 168, 217, 136, 181, 18, 139, 107,\n\t\t108, 171, 189, 101, 22, 183, 104, 68, 173, 58, 125, 189, 31,\n\t\t190, 222, 150, 88, 254, 36, 36, 237, 29, 183, 213, 179, 98,\n\t\t236, 96, 197, 136, 206, 235, 245, 111, 166, 148, 227, 226,\n\t\t219, 225, 219, 87, 145, 242, 60, 229, 121, 254, 126, 14, 120,\n\t\t30, 56, 158, 239, 194, 192, 24, 96, 66, 105, 150, 50, 70,\n\t\t226, 148, 49, 198, 40, 125, 153, 227, 56, 65, 196, 152, 35,\n\t\t152, 195, 89, 142, 16, 130, 9, 71, 128, 96, 32, 132, 187,\n\t\t78, 142, 95, 143, 123, 130, 155, 43, 181, 90, 229, 199, 162,\n\t\t144, 233, 138, 206, 228, 245, 197, 95, 49, 142, 99, 2, 33,\n\t\t53, 10, 28, 7, 241, 208, 93, 26, 199, 49, 198, 113, 135, 215,\n\t\t110, 228, 184, 141, 107, 185, 62, 254, 242, 141, 60, 191,\n\t\t241, 114, 62, 195, 223, 178, 129, 231, 55, 220, 194, 95, 72,\n\t\t60, 143, 16, 207, 203, 146, 177, 49, 76, 86, 141, 17, 153,\n\t\t108, 88, 71, 200, 186, 13, 60, 217, 180, 129, 227, 54, 108,\n\t\t186, 22, 243, 143, 78, 11, 66, 185, 252, 85, 224, 8, 78, 97,\n\t\t254, 83, 227, 140, 224, 24, 162, 117, 159, 0, 30, 67, 134,\n\t\t222, 189, 158, 210, 245, 119, 175, 26, 46, 87, 106, 32, 254,\n\t\t142, 17, 241, 180, 22, 155, 16, 238, 92, 43, 8, 107, 239,\n\t\t20, 4, 118, 223, 122, 198, 214, 223, 199, 56, 118, 79, 156,\n\t\t185, 167, 67, 59, 63, 133, 91, 224, 33, 52, 16, 123, 53, 212,\n\t\t211, 112, 80, 227, 130, 176, 24, 107, 205, 206, 145, 202,\n\t\t34, 180, 207, 28, 183, 154, 141, 206, 102, 202, 108, 46, 155,\n\t\t61, 179, 223, 145, 115, 3, 61, 221, 210, 233, 234, 234, 129,\n\t\t161, 82, 207, 64, 52, 220, 59, 34, 81, 137, 26, 85, 65, 200,\n\t\t107, 169, 205, 223, 110, 208, 198, 249, 25, 149, 102, 86,\n\t\t159, 113, 243, 25, 87, 191, 183, 57, 56, 101, 110, 29, 173,\n\t\t175, 237, 155, 24, 119, 0, 75, 106, 206, 169, 117, 101, 198,\n\t\t199, 58, 113, 176, 111, 96, 128, 167, 19, 159, 33, 139, 242,\n\t\t168, 140, 186, 81, 111, 12, 17, 56, 5, 176, 116, 160, 195,\n\t\t201, 130, 175, 129, 86, 9, 108, 55, 10, 152, 27, 49, 59, 114,\n\t\t155, 1, 91, 3, 113, 33, 96, 81, 147, 193, 43, 146, 244, 27,\n\t\t69, 249, 77, 242, 43, 93, 176, 229, 71, 95, 220, 114, 193,\n\t\t83, 209, 123, 46, 216, 242, 183, 91, 183, 110, 221, 159, 20,\n\t\t160, 76, 149, 135, 20, 250, 144, 32, 60, 180, 156, 89, 125,\n\t\t233, 154, 240, 186, 235, 194, 53, 205, 211, 123, 190, 125,\n\t\t233, 154, 176, 171, 209, 104, 124, 187, 93, 68, 100, 105,\n\t\t9, 33, 188, 22, 110, 65, 221, 232, 52, 244, 46, 132, 122,\n\t\t138, 192, 52, 226, 197, 180, 89, 131, 192, 79, 142, 215, 70,\n\t\t45, 119, 36, 49, 48, 58, 254, 86, 108, 83, 53, 107, 92, 108,\n\t\t143, 107, 208, 223, 62, 140, 145, 24, 20, 174, 19, 58, 205,\n\t\t122, 24, 27, 96, 157, 247, 147, 64, 122, 178, 23, 158, 4,\n\t\t221, 131, 26, 52, 91, 73, 232, 194, 117, 90, 81, 171, 134,\n\t\t19, 43, 164, 29, 204, 128, 165, 106, 73, 228, 172, 124, 183,\n\t\t229, 253, 143, 211, 83, 221, 171, 37, 217, 45, 80, 160, 129,\n\t\t63, 44, 100, 123, 171, 91, 54, 68, 42, 199, 67, 174, 96, 15,\n\t\t72, 96, 87, 135, 235, 45, 183, 215, 198, 28, 143, 5, 240,\n\t\t171, 158, 64, 212, 130, 169, 229, 54, 124, 250, 65, 99, 96,\n\t\t53, 23, 100, 178, 166, 112, 154, 94, 44, 106, 84, 207, 84,\n\t\t116, 44, 16, 170, 240, 234, 160, 227, 228, 72, 165, 167, 216,\n\t\t181, 78, 55, 3, 89, 18, 242, 221, 41, 16, 176, 32, 114, 213,\n\t\t209, 76, 230, 121, 115, 67, 183, 89, 118, 85, 0, 168, 85,\n\t\t189, 245, 46, 199, 143, 230, 243, 38, 215, 231, 154, 124,\n\t\t182, 213, 35, 246, 10, 31, 239, 62, 199, 226, 229, 98, 171,\n\t\t39, 43, 138, 170, 211, 203, 113, 60, 88, 110, 38, 208, 5,\n\t\t115, 93, 105, 2, 99, 184, 206, 45, 167, 217, 102, 201, 205,\n\t\t41, 149, 156, 9, 42, 22, 49, 207, 68, 51, 197, 152, 159, 245,\n\t\t211, 182, 107, 157, 42, 42, 146, 153, 238, 177, 185, 20, 136,\n\t\t192, 75, 252, 176, 41, 12, 38, 180, 41, 45, 61, 3, 47, 195,\n\t\t19, 232, 60, 132, 248, 106, 114, 90, 164, 62, 170, 17, 199,\n\t\t45, 226, 41, 188, 6, 166, 112, 13, 15, 67, 13, 134, 33, 42,\n\t\t146, 18, 180, 252, 97, 136, 92, 13, 152, 61, 197, 175, 1,\n\t\t87, 3, 29, 98, 99, 182, 211, 54, 105, 215, 106, 22, 137, 235,\n\t\t80, 64, 151, 190, 159, 224, 137, 8, 56, 51, 43, 167, 242,\n\t\t146, 157, 50, 20, 17, 19, 65, 0, 194, 83, 140, 57, 87, 148,\n\t\t10, 76, 147, 4, 140, 65, 166, 116, 104, 80, 148, 1, 11, 130,\n\t\t200, 40, 224, 130, 234, 80, 94, 144, 168, 74, 83, 70, 74,\n\t\t147, 9, 41, 152, 154, 35, 203, 144, 45, 246, 90, 0, 119, 172,\n\t\t250, 208, 101, 19, 151, 123, 92, 54, 108, 173, 203, 73, 50,\n\t\t38, 148, 97, 34, 101, 221, 140, 165, 115, 188, 108, 113, 124,\n\t\t153, 72, 178, 72, 136, 90, 18, 133, 176, 174, 150, 68, 137,\n\t\t23, 5, 198, 115, 0, 101, 206, 18, 4, 99, 32, 76, 73, 34, 112,\n\t\t140, 18, 220, 181, 118, 108, 84, 211, 48, 164, 115, 163, 27,\n\t\t6, 174, 190, 27, 117, 190, 107, 105, 235, 43, 5, 229, 81,\n\t\t31, 106, 161, 245, 232, 12, 180, 3, 93, 132, 222, 139, 16,\n\t\t248, 94, 179, 8, 46, 243, 131, 248, 159, 227, 50, 191, 217,\n\t\t136, 92, 202, 92, 106, 199, 182, 176, 19, 218, 53, 8, 34,\n\t\t199, 141, 28, 66, 99, 147, 35, 178, 171, 204, 165, 140, 111,\n\t\t37, 40, 107, 214, 163, 160, 21, 189, 49, 126, 106, 58, 22,\n\t\t11, 90, 81, 204, 248, 65, 228, 7, 204, 165, 213, 36, 245,\n\t\t131, 200, 143, 125, 194, 200, 141, 31, 134, 117, 151, 197,\n\t\t253, 186, 204, 177, 226, 46, 3, 10, 101, 35, 61, 190, 175,\n\t\t104, 72, 82, 186, 111, 242, 151, 140, 25, 185, 156, 33, 80,\n\t\t87, 146, 238, 228, 77, 125, 252, 162, 130, 33, 40, 233, 190,\n\t\t213, 146, 100, 20, 247, 141, 167, 13, 126, 178, 15, 186, 21,\n\t\t193, 40, 92, 52, 174, 155, 252, 100, 223, 155, 19, 61, 120,\n\t\t219, 93, 79, 223, 117, 215, 211, 111, 90, 126, 211, 165, 194,\n\t\t103, 85, 173, 75, 83, 179, 122, 35, 45, 78, 19, 50, 45, 166,\n\t\t27, 70, 70, 85, 116, 77, 85, 51, 198, 138, 58, 184, 139, 152,\n\t\t120, 108, 68, 52, 100, 189, 166, 28, 75, 233, 98, 125, 108,\n\t\t108, 84, 212, 13, 150, 47, 21, 11, 55, 100, 218, 15, 85, 205,\n\t\t24, 134, 33, 217, 16, 71, 198, 176, 73, 50, 74, 109, 73, 83,\n\t\t151, 243, 195, 63, 93, 14, 220, 222, 117, 215, 211, 119, 193,\n\t\t217, 245, 107, 71, 69, 45, 197, 10, 197, 82, 158, 25, 198,\n\t\t231, 215, 19, 178, 158, 79, 15, 218, 89, 71, 201, 40, 78,\n\t\t214, 30, 76, 243, 127, 92, 181, 194, 150, 101, 72, 71, 165,\n\t\t100, 165, 118, 161, 107, 16, 138, 234, 118, 172, 147, 26,\n\t\t81, 163, 229, 196, 185, 158, 55, 218, 177, 212, 243, 147,\n\t\t243, 251, 182, 6, 174, 221, 54, 43, 58, 78, 120, 18, 231,\n\t\t108, 173, 1, 207, 177, 88, 232, 55, 218, 135, 138, 226, 231,\n\t\t174, 215, 136, 60, 199, 246, 236, 122, 56, 218, 182, 67, 154,\n\t\t212, 171, 78, 66, 120, 119, 49, 87, 34, 142, 99, 187, 176,\n\t\t101, 165, 169, 59, 231, 164, 10, 83, 41, 85, 6, 181, 18, 228,\n\t\t214, 186, 57, 71, 211, 28, 133, 8, 116, 172, 23, 160, 23,\n\t\t120, 77, 146, 52, 77, 146, 110, 232, 129, 94, 72, 113, 170,\n\t\t209, 101, 169, 162, 98, 244, 236, 79, 155, 105, 243, 96, 74,\n\t\t85, 83, 153, 71, 86, 152, 193, 215, 10, 169, 82, 183, 86,\n\t\t228, 128, 175, 10, 32, 23, 178, 78, 43, 101, 242, 162, 168,\n\t\t98, 146, 202, 232, 76, 192, 184, 42, 220, 41, 73, 119, 133,\n\t\t150, 97, 216, 122, 222, 101, 52, 83, 89, 83, 40, 51, 143,\n\t\t186, 107, 147, 189, 0, 99, 233, 8, 60, 2, 135, 144, 135, 6,\n\t\t80, 19, 109, 71, 123, 98, 95, 46, 106, 76, 129, 91, 143, 108,\n\t\t202, 18, 151, 45, 49, 228, 99, 108, 197, 68, 221, 244, 91,\n\t\t81, 179, 6, 110, 242, 185, 85, 179, 17, 196, 232, 73, 2, 209,\n\t\t188, 157, 108, 248, 79, 226, 42, 107, 134, 141, 32, 164, 118,\n\t\t104, 251, 94, 220, 10, 159, 56, 178, 30, 214, 93, 234, 184,\n\t\t94, 171, 17, 152, 253, 171, 10, 153, 162, 40, 115, 221, 37,\n\t\t171, 236, 151, 118, 251, 173, 161, 52, 214, 211, 238, 217,\n\t\t193, 128, 63, 84, 84, 211, 41, 21, 46, 75, 231, 205, 172,\n\t\t204, 165, 88, 6, 86, 65, 104, 150, 157, 212, 237, 150, 38,\n\t\t26, 162, 165, 233, 42, 6, 88, 133, 241, 191, 86, 134, 120,\n\t\t85, 174, 19, 34, 75, 165, 33, 202, 165, 84, 149, 230, 50,\n\t\t155, 75, 94, 159, 14, 202, 48, 3, 218, 127, 111, 87, 54, 151,\n\t\t185, 165, 170, 153, 28, 103, 106, 213, 250, 136, 164, 230,\n\t\t114, 233, 115, 0, 70, 202, 162, 92, 28, 129, 243, 42, 192,\n\t\t21, 28, 41, 37, 234, 206, 155, 229, 111, 107, 218, 97, 229,\n\t\t164, 243, 189, 4, 113, 177, 77, 151, 170, 164, 42, 145, 27,\n\t\t121, 73, 56, 39, 240, 92, 59, 132, 195, 139, 211, 246, 143,\n\t\t183, 123, 25, 87, 198, 88, 100, 174, 217, 179, 173, 4, 135,\n\t\t22, 167, 127, 223, 250, 200, 208, 112, 158, 242, 78, 106,\n\t\t164, 250, 192, 165, 201, 158, 131, 189, 244, 20, 92, 10, 135,\n\t\t145, 129, 134, 16, 114, 29, 26, 235, 45, 191, 125, 130, 130,\n\t\t6, 212, 108, 167, 126, 203, 117, 218, 31, 195, 104, 216, 117,\n\t\t104, 53, 240, 167, 240, 169, 80, 0, 49, 138, 148, 114, 201,\n\t\t169, 172, 206, 95, 121, 199, 198, 139, 222, 190, 93, 103,\n\t\t218, 212, 21, 219, 198, 122, 166, 170, 44, 205, 73, 6, 231,\n\t\t138, 193, 150, 17, 29, 107, 23, 124, 98, 44, 23, 86, 220,\n\t\t74, 201, 188, 14, 54, 92, 180, 113, 235, 197, 41, 46, 79,\n\t\t140, 153, 245, 99, 219, 186, 199, 78, 241, 4, 77, 236, 61,\n\t\t235, 148, 161, 182, 173, 202, 150, 190, 5, 127, 13, 135, 81,\n\t\t29, 161, 110, 26, 11, 112, 139, 178, 34, 97, 180, 26, 196,\n\t\t195, 38, 70, 135, 70, 131, 106, 172, 93, 219, 112, 50, 39,\n\t\t86, 128, 95, 167, 138, 34, 115, 164, 43, 43, 232, 105, 129,\n\t\t232, 215, 120, 222, 213, 6, 45, 91, 217, 46, 192, 76, 16,\n\t\t5, 70, 8, 199, 36, 86, 33, 219, 103, 182, 207, 144, 10, 147,\n\t\t88, 30, 100, 221, 160, 124, 54, 178, 9, 21, 21, 94, 224, 56,\n\t\t65, 74, 51, 59, 202, 2, 39, 75, 138, 72, 193, 28, 41, 103,\n\t\t183, 239, 125, 219, 141, 23, 108, 207, 150, 71, 218, 251,\n\t\t82, 234, 210, 75, 56, 132, 67, 201, 126, 100, 47, 106, 161,\n\t\t83, 208, 14, 132, 32, 217, 110, 138, 149, 62, 235, 28, 64,\n\t\t113, 92, 63, 56, 113, 176, 143, 213, 151, 25, 145, 183, 152,\n\t\t27, 44, 239, 142, 56, 44, 249, 26, 167, 115, 254, 36, 246,\n\t\t138, 150, 63, 206, 177, 28, 120, 247, 198, 11, 169, 36, 152,\n\t\t163, 27, 204, 173, 215, 110, 63, 229, 45, 138, 120, 173, 146,\n\t\t78, 43, 178, 170, 222, 47, 107, 154, 44, 167, 211, 240, 229,\n\t\t13, 122, 171, 55, 189, 233, 194, 11, 55, 173, 123, 211, 191,\n\t\t48, 153, 18, 42, 241, 76, 33, 60, 123, 51, 147, 169, 38, 49,\n\t\t69, 129, 204, 238, 105, 203, 2, 177, 186, 58, 218, 178, 241,\n\t\t194, 173, 171, 161, 169, 58, 170, 234, 168, 35, 237, 228,\n\t\t161, 201, 198, 72, 65, 218, 113, 253, 142, 157, 21, 42, 242,\n\t\t132, 81, 162, 176, 88, 177, 80, 145, 103, 138, 162, 43, 137,\n\t\t255, 3, 75, 127, 5, 75, 112, 56, 145, 81, 155, 208, 222, 215,\n\t\t253, 159, 86, 39, 117, 147, 61, 210, 228, 251, 177, 104, 130,\n\t\t54, 171, 190, 151, 167, 118, 187, 232, 199, 68, 83, 119, 220,\n\t\t102, 34, 183, 138, 80, 0, 150, 4, 82, 43, 177, 215, 87, 132,\n\t\t86, 24, 187, 178, 113, 139, 214, 39, 195, 238, 238, 176, 251,\n\t\t177, 248, 183, 231, 95, 100, 133, 121, 167, 20, 91, 213, 94,\n\t\t31, 136, 136, 193, 239, 173, 182, 74, 167, 122, 76, 145, 129,\n\t\t135, 156, 9, 151, 42, 182, 154, 21, 82, 198, 226, 223, 101,\n\t\t82, 165, 117, 125, 150, 41, 72, 18, 46, 155, 253, 27, 192,\n\t\t175, 196, 14, 92, 37, 249, 29, 19, 116, 185, 191, 120, 73,\n\t\t163, 34, 75, 253, 64, 101, 45, 149, 54, 5, 34, 152, 233, 180,\n\t\t174, 80, 232, 147, 229, 74, 227, 210, 194, 128, 164, 11, 4,\n\t\t190, 99, 23, 84, 87, 251, 142, 254, 45, 195, 18, 205, 174,\n\t\t111, 27, 26, 6, 65, 18, 114, 24, 235, 241, 252, 165, 165,\n\t\t35, 240, 120, 18, 51, 110, 91, 158, 200, 172, 164, 152, 199,\n\t\t188, 166, 151, 226, 155, 149, 84, 104, 71, 97, 211, 78, 190,\n\t\t35, 106, 246, 194, 251, 174, 63, 123, 108, 226, 74, 184, 117,\n\t\t241, 91, 187, 199, 174, 236, 93, 223, 11, 135, 22, 127, 123,\n\t\t253, 216, 24, 140, 127, 245, 133, 197, 95, 141, 141, 61, 123,\n\t\t253, 245, 215, 95, 143, 120, 4, 75, 223, 130, 119, 193, 97,\n\t\t148, 70, 85, 20, 162, 77, 232, 172, 216, 107, 114, 168, 14,\n\t\t201, 25, 17, 63, 249, 16, 33, 172, 187, 73, 204, 181, 229,\n\t\t216, 44, 22, 77, 158, 31, 249, 173, 82, 114, 124, 32, 49,\n\t\t250, 188, 106, 16, 37, 223, 75, 234, 64, 253, 53, 208, 74,\n\t\t62, 90, 232, 105, 69, 245, 176, 189, 25, 60, 12, 126, 179,\n\t\t49, 176, 95, 35, 198, 85, 152, 136, 42, 128, 132, 85, 198,\n\t\t143, 74, 244, 116, 185, 192, 105, 34, 198, 3, 87, 11, 150,\n\t\t126, 57, 19, 177, 80, 210, 168, 168, 176, 221, 152, 240, 148,\n\t\t92, 169, 155, 226, 20, 83, 68, 170, 21, 22, 255, 161, 185,\n\t\t26, 64, 82, 171, 226, 101, 228, 185, 81, 86, 230, 186, 64,\n\t\t17, 100, 165, 92, 100, 226, 60, 83, 68, 54, 163, 40, 198,\n\t\t155, 69, 85, 184, 93, 203, 242, 213, 184, 115, 222, 232, 149,\n\t\t121, 233, 231, 124, 76, 74, 60, 20, 249, 46, 237, 60, 153,\n\t\t42, 125, 223, 202, 242, 170, 244, 92, 90, 212, 191, 206, 83,\n\t\t61, 150, 55, 75, 75, 75, 63, 129, 187, 224, 83, 168, 138,\n\t\t206, 64, 40, 178, 52, 174, 253, 53, 68, 100, 198, 211, 110,\n\t\t213, 139, 216, 45, 2, 163, 172, 234, 107, 56, 138, 181, 93,\n\t\t63, 209, 56, 155, 118, 26, 181, 162, 86, 56, 142, 167, 104,\n\t\t156, 121, 51, 23, 95, 0, 248, 12, 94, 128, 213, 32, 11, 249,\n\t\t83, 179, 221, 122, 90, 234, 183, 210, 165, 171, 133, 146,\n\t\t156, 98, 199, 186, 21, 231, 109, 192, 48, 197, 28, 38, 88,\n\t\t3, 162, 77, 243, 20, 56, 23, 36, 40, 203, 101, 163, 152, 206,\n\t\t26, 41, 74, 9, 124, 152, 179, 179, 133, 46, 151, 98, 129,\n\t\t194, 117, 130, 8, 64, 56, 46, 117, 230, 224, 185, 24, 128,\n\t\t147, 223, 147, 91, 119, 0, 48, 225, 40, 119, 54, 167, 11,\n\t\t124, 241, 110, 17, 115, 76, 214, 237, 92, 42, 109, 196, 242,\n\t\t151, 46, 29, 129, 39, 224, 16, 146, 144, 141, 114, 201, 94,\n\t\t134, 227, 82, 230, 7, 83, 224, 55, 88, 221, 117, 92, 47, 230,\n\t\t132, 48, 10, 227, 156, 233, 216, 22, 243, 3, 191, 253, 229,\n\t\t199, 71, 155, 37, 197, 204, 150, 48, 134, 17, 129, 143, 242,\n\t\t151, 149, 38, 8, 199, 223, 115, 245, 205, 169, 107, 165, 119,\n\t\t148, 178, 169, 211, 169, 5, 28, 119, 174, 2, 107, 119, 109,\n\t\t169, 143, 190, 169, 174, 22, 51, 213, 41, 186, 249, 173, 215,\n\t\t108, 225, 196, 115, 190, 252, 183, 159, 1, 237, 154, 75, 174,\n\t\t216, 119, 215, 109, 167, 159, 202, 209, 182, 124, 66, 75,\n\t\t71, 240, 116, 114, 94, 32, 147, 236, 171, 156, 218, 62, 35,\n\t\t231, 122, 209, 200, 20, 172, 129, 55, 152, 18, 16, 121, 108,\n\t\t24, 252, 192, 99, 78, 9, 194, 200, 99, 81, 35, 240, 155, 173,\n\t\t176, 85, 130, 168, 253, 137, 26, 117, 157, 88, 103, 14, 3,\n\t\t115, 220, 122, 203, 13, 188, 170, 14, 97, 43, 10, 93, 120,\n\t\t65, 128, 138, 129, 49, 92, 157, 183, 22, 203, 137, 174, 63,\n\t\t98, 229, 23, 207, 153, 30, 8, 56, 141, 24, 211, 224, 154,\n\t\t221, 119, 102, 123, 179, 143, 85, 93, 112, 117, 141, 227,\n\t\t13, 203, 44, 165, 160, 219, 6, 215, 52, 121, 154, 202, 151,\n\t\t130, 123, 202, 101, 157, 159, 232, 103, 208, 224, 255, 135,\n\t\t207, 6, 120, 1, 223, 181, 194, 106, 88, 156, 251, 200, 21,\n\t\t206, 41, 10, 16, 42, 191, 231, 35, 31, 169, 119, 165, 100,\n\t\t65, 5, 6, 21, 166, 102, 180, 108, 90, 18, 117, 129, 120, 2,\n\t\t20, 186, 62, 162, 190, 207, 228, 92, 132, 92, 132, 150, 94,\n\t\t194, 211, 240, 113, 68, 144, 152, 68, 7, 27, 104, 29, 154,\n\t\t65, 123, 209, 126, 116, 15, 250, 8, 250, 10, 58, 140, 190,\n\t\t135, 126, 132, 126, 129, 142, 162, 223, 3, 15, 42, 12, 193,\n\t\t24, 108, 66, 168, 219, 170, 54, 42, 117, 203, 171, 54, 90,\n\t\t117, 215, 139, 146, 156, 91, 183, 71, 232, 168, 53, 90, 237,\n\t\t252, 249, 163, 19, 48, 218, 8, 27, 163, 225, 72, 56, 18, 58,\n\t\t163, 35, 108, 36, 28, 105, 140, 142, 12, 128, 29, 54, 221,\n\t\t208, 124, 3, 94, 185, 196, 196, 138, 213, 168, 87, 117, 91,\n\t\t141, 128, 90, 172, 225, 85, 153, 239, 85, 89, 211, 179, 195,\n\t\t9, 50, 133, 19, 245, 106, 135, 19, 120, 138, 116, 178, 145,\n\t\t103, 47, 155, 107, 145, 29, 70, 13, 191, 217, 168, 187, 81,\n\t\t98, 234, 217, 86, 53, 96, 78, 43, 12, 232, 36, 132, 39, 62,\n\t\t91, 180, 156, 40, 236, 248, 219, 81, 64, 253, 200, 103, 157,\n\t\t47, 231, 93, 167, 209, 234, 188, 25, 5, 52, 238, 55, 201,\n\t\t218, 225, 138, 38, 73, 109, 187, 210, 14, 155, 97, 211, 179,\n\t\t221, 70, 211, 31, 245, 71, 188, 234, 136, 71, 71, 233, 168,\n\t\t101, 91, 163, 86, 232, 212, 195, 250, 232, 72, 107, 164, 53,\n\t\t58, 18, 121, 44, 240, 236, 166, 27, 182, 161, 243, 170, 172,\n\t\t24, 123, 13, 245, 22, 252, 220, 93, 60, 34, 203, 242, 141,\n\t\t41, 48, 175, 87, 20, 249, 122, 88, 113, 37, 199, 152, 1, 78,\n\t\t63, 137, 74, 208, 246, 177, 126, 47, 130, 150, 215, 63, 246,\n\t\t254, 102, 179, 121, 174, 46, 114, 156, 192, 56, 65, 192, 152,\n\t\t96, 74, 24, 0, 38, 132, 39, 194, 144, 192, 51, 65, 146, 4,\n\t\t129, 19, 122, 93, 141, 39, 204, 117, 13, 158, 19, 51, 30,\n\t\t86, 84, 85, 16, 4, 51, 149, 75, 9, 82, 86, 228, 168, 62, 46,\n\t\t241, 130, 32, 97, 77, 101, 156, 152, 201, 10, 28, 107, 10,\n\t\t52, 147, 161, 66, 53, 169, 39, 253, 2, 205, 100, 121, 65,\n\t\t0, 224, 4, 56, 233, 226, 146, 147, 195, 0, 152, 139, 129,\n\t\t106, 65, 228, 245, 143, 109, 31, 117, 93, 215, 5, 81, 112,\n\t\t221, 174, 215, 103, 146, 236, 51, 237, 94, 65, 162, 151, 92,\n\t\t183, 221, 29, 186, 103, 48, 115, 188, 239, 61, 125, 125, 239,\n\t\t121, 171, 206, 24, 207, 245, 16, 145, 167, 132, 96, 73, 161,\n\t\t100, 69, 182, 135, 227, 229, 148, 76, 121, 89, 228, 8, 71,\n\t\t40, 229, 36, 129, 199, 60, 71, 41, 199, 152, 156, 98, 178,\n\t\t204, 82, 10, 73, 185, 178, 160, 11, 34, 165, 164, 192, 9,\n\t\t92, 143, 45, 16, 98, 166, 120, 158, 49, 81, 213, 68, 129,\n\t\t242, 101, 78, 136, 115, 34, 223, 195, 139, 92, 143, 205, 56,\n\t\t226, 154, 130, 152, 19, 69, 254, 93, 60, 15, 240, 142, 147,\n\t\t230, 117, 51, 199, 241, 177, 120, 220, 53, 30, 3, 57, 228,\n\t\t110, 71, 8, 41, 39, 228, 3, 69, 78, 18, 59, 31, 71, 235, 208,\n\t\t14, 116, 37, 186, 30, 189, 13, 189, 59, 246, 18, 123, 218,\n\t\t33, 244, 232, 141, 199, 161, 98, 34, 113, 195, 216, 209, 171,\n\t\t145, 126, 136, 137, 40, 217, 164, 109, 134, 205, 1, 112, 99,\n\t\t209, 177, 252, 73, 79, 224, 107, 201, 55, 36, 81, 147, 198,\n\t\t182, 144, 203, 18, 210, 109, 54, 18, 205, 214, 33, 75, 183,\n\t\t8, 148, 181, 183, 85, 19, 14, 242, 108, 190, 169, 1, 171,\n\t\t212, 91, 61, 142, 197, 146, 175, 238, 235, 88, 208, 121, 94,\n\t\t23, 146, 136, 111, 155, 114, 30, 51, 176, 99, 117, 153, 68,\n\t\t160, 42, 111, 140, 15, 21, 242, 249, 194, 181, 41, 79, 232,\n\t\t78, 59, 171, 123, 186, 186, 122, 186, 246, 26, 121, 83, 78,\n\t\t187, 178, 86, 41, 235, 251, 20, 42, 169, 131, 146, 166, 164,\n\t\t4, 65, 235, 182, 101, 42, 92, 229, 184, 138, 165, 186, 231,\n\t\t25, 240, 245, 112, 225, 38, 184, 143, 138, 139, 253, 162,\n\t\t200, 116, 142, 211, 255, 160, 102, 63, 188, 210, 251, 121,\n\t\t239, 76, 165, 226, 17, 139, 10, 148, 192, 140, 230, 104, 105,\n\t\t109, 231, 206, 104, 188, 43, 30, 196, 98, 52, 163, 43, 150,\n\t\t132, 169, 169, 105, 102, 90, 215, 134, 37, 201, 20, 29, 73,\n\t\t226, 121, 202, 136, 32, 171, 82, 202, 96, 156, 34, 168, 89,\n\t\t67, 49, 165, 153, 153, 153, 199, 238, 43, 95, 238, 138, 199,\n\t\t89, 151, 64, 91, 200, 94, 90, 90, 58, 130, 215, 194, 33, 100,\n\t\t162, 174, 228, 63, 130, 29, 71, 107, 209, 150, 36, 138, 122,\n\t\t41, 122, 59, 186, 25, 70, 225, 52, 216, 7, 87, 195, 141, 240,\n\t\t54, 120, 8, 62, 14, 159, 66, 8, 44, 230, 20, 192, 155, 192,\n\t\t53, 60, 0, 182, 215, 12, 235, 172, 189, 1, 227, 214, 109,\n\t\t75, 75, 22, 195, 11, 152, 215, 12, 221, 136, 69, 65, 178,\n\t\t69, 110, 187, 77, 22, 181, 27, 117, 42, 146, 109, 116, 158,\n\t\t181, 187, 106, 227, 157, 173, 232, 42, 240, 154, 204, 11,\n\t\t108, 47, 240, 152, 23, 133, 110, 220, 87, 200, 194, 128, 79,\n\t\t190, 66, 179, 151, 67, 247, 177, 224, 119, 220, 176, 233,\n\t\t184, 225, 20, 142, 197, 70, 61, 180, 226, 226, 106, 136, 31,\n\t\t216, 245, 248, 89, 17, 220, 120, 61, 253, 32, 185, 171, 163,\n\t\t109, 145, 87, 227, 250, 201, 0, 166, 172, 6, 129, 103, 199,\n\t\t63, 90, 108, 11, 38, 178, 178, 0, 213, 184, 77, 63, 214, 112,\n\t\t210, 18, 87, 253, 126, 236, 217, 254, 0, 104, 36, 113, 102,\n\t\t236, 176, 21, 197, 189, 54, 90, 205, 122, 148, 7, 59, 156,\n\t\t128, 120, 96, 219, 178, 235, 81, 125, 13, 84, 147, 255, 88,\n\t\t197, 166, 3, 16, 197, 206, 158, 31, 123, 128, 171, 193, 142,\n\t\t39, 230, 211, 118, 222, 171, 218, 150, 19, 59, 211, 3, 208,\n\t\t92, 70, 80, 140, 143, 160, 21, 142, 212, 67, 86, 13, 252,\n\t\t70, 20, 132, 118, 63, 209, 136, 109, 173, 134, 54, 2, 154,\n\t\t161, 189, 140, 145, 106, 179, 225, 178, 48, 8, 109, 15, 54,\n\t\t42, 178, 129, 9, 229, 210, 70, 144, 43, 200, 178, 205, 229,\n\t\t9, 99, 50, 85, 113, 197, 178, 215, 173, 183, 236, 208, 76,\n\t\t247, 117, 119, 95, 145, 93, 35, 73, 182, 28, 248, 126, 16,\n\t\t69, 112, 218, 223, 201, 146, 65, 40, 77, 65, 251, 37, 235,\n\t\t1, 35, 163, 103, 170, 212, 163, 233, 98, 38, 159, 115, 172,\n\t\t220, 253, 174, 2, 207, 211, 140, 164, 11, 92, 155, 218, 115,\n\t\t152, 51, 57, 210, 4, 174, 16, 139, 166, 59, 4, 128, 117, 178,\n\t\t25, 87, 18, 0, 220, 96, 60, 238, 235, 229, 233, 0, 161, 101,\n\t\t146, 51, 149, 94, 76, 120, 194, 120, 153, 25, 188, 114, 41,\n\t\t207, 176, 12, 53, 158, 64, 47, 54, 248, 182, 184, 229, 168,\n\t\t39, 138, 142, 160, 240, 12, 159, 137, 57, 158, 81, 85, 178,\n\t\t4, 73, 31, 7, 142, 231, 128, 163, 24, 227, 29, 51, 84, 98,\n\t\t148, 140, 128, 43, 7, 2, 254, 32, 5, 210, 45, 234, 22, 71,\n\t\t83, 101, 40, 11, 170, 161, 101, 42, 103, 139, 154, 161, 102,\n\t\t42, 165, 56, 233, 42, 75, 241, 204, 86, 173, 26, 3, 134, 65,\n\t\t192, 0, 142, 97, 96, 145, 99, 132, 199, 96, 176, 76, 38, 223,\n\t\t85, 72, 101, 74, 85, 86, 165, 102, 101, 179, 226, 30, 72,\n\t\t165, 32, 163, 113, 156, 174, 98, 145, 227, 9, 206, 110, 44,\n\t\t10, 76, 223, 237, 196, 94, 7, 184, 174, 187, 209, 113, 90,\n\t\t150, 165, 232, 170, 184, 42, 71, 68, 33, 117, 135, 162, 105,\n\t\t218, 198, 43, 202, 26, 207, 105, 154, 194, 83, 156, 221, 88,\n\t\t16, 152, 190, 173, 245, 191, 211, 245, 39, 96, 150, 92, 229,\n\t\t121, 56, 126, 190, 179, 214, 190, 47, 119, 95, 251, 86, 245,\n\t\t122, 187, 251, 110, 213, 51, 61, 221, 61, 251, 166, 153, 209,\n\t\t140, 164, 25, 205, 140, 70, 26, 109, 104, 180, 130, 144, 144,\n\t\t0, 33, 201, 163, 5, 203, 2, 3, 22, 24, 188, 97, 172, 24, 2,\n\t\t78, 28, 91, 198, 196, 70, 22, 96, 134, 191, 49, 118, 242,\n\t\t216, 70, 137, 29, 226, 45, 142, 98, 59, 36, 126, 66, 226,\n\t\t196, 255, 44, 56, 177, 123, 126, 79, 157, 123, 123, 52, 35,\n\t\t112, 119, 223, 234, 170, 186, 167, 78, 213, 173, 123, 234,\n\t\t156, 243, 125, 223, 251, 190, 223, 104, 52, 178, 237, 125,\n\t\t187, 119, 47, 46, 78, 87, 190, 4, 4, 159, 205, 31, 216, 223,\n\t\t225, 170, 202, 117, 172, 98, 66, 177, 94, 212, 45, 85, 229,\n\t\t170, 0, 74, 34, 67, 144, 115, 190, 170, 133, 138, 169, 170,\n\t\t76, 118, 137, 134, 71, 10, 36, 212, 4, 165, 137, 241, 246,\n\t\t252, 216, 87, 242, 110, 19, 75, 169, 18, 12, 156, 231, 29,\n\t\t50, 48, 142, 9, 190, 85, 232, 138, 32, 138, 34, 132, 226,\n\t\t112, 77, 168, 64, 84, 147, 224, 29, 130, 1, 240, 146, 106,\n\t\t115, 134, 53, 61, 176, 166, 57, 35, 160, 233, 161, 45, 40,\n\t\t6, 77, 143, 236, 105, 195, 54, 193, 218, 119, 27, 184, 0,\n\t\t166, 97, 219, 152, 80, 65, 131, 108, 247, 238, 229, 229, 125,\n\t\t131, 129, 109, 183, 218, 70, 101, 122, 31, 66, 250, 149, 126,\n\t\t88, 69, 62, 170, 160, 121, 180, 11, 157, 70, 143, 160, 23,\n\t\t208, 167, 208, 207, 163, 95, 145, 232, 206, 188, 213, 141,\n\t\t250, 189, 180, 23, 229, 29, 98, 54, 232, 55, 123, 113, 32,\n\t\t87, 190, 7, 160, 50, 152, 131, 150, 13, 124, 21, 122, 27,\n\t\t48, 24, 109, 199, 82, 85, 64, 78, 55, 38, 65, 39, 158, 55,\n\t\t235, 252, 205, 56, 27, 12, 199, 165, 37, 249, 55, 92, 170,\n\t\t65, 60, 126, 51, 27, 239, 30, 151, 91, 135, 237, 120, 249,\n\t\t173, 149, 4, 91, 149, 200, 162, 161, 24, 31, 150, 246, 194,\n\t\t201, 181, 190, 102, 104, 142, 169, 58, 247, 235, 42, 198,\n\t\t129, 194, 8, 52, 60, 136, 20, 74, 254, 240, 154, 161, 127,\n\t\t103, 107, 154, 129, 3, 212, 103, 64, 9, 163, 12, 162, 194,\n\t\t77, 30, 5, 225, 120, 37, 207, 114, 116, 32, 46, 197, 90, 103,\n\t\t39, 241, 9, 46, 233, 152, 122, 84, 211, 33, 36, 62, 249, 71,\n\t\t242, 56, 18, 18, 160, 249, 228, 156, 143, 15, 227, 174, 95,\n\t\t116, 109, 71, 147, 71, 205, 19, 159, 56, 196, 165, 112, 216,\n\t\t201, 47, 229, 215, 85, 211, 86, 205, 38, 211, 172, 50, 214,\n\t\t189, 50, 126, 246, 170, 145, 251, 167, 42, 236, 30, 202, 75,\n\t\t152, 20, 76, 69, 43, 251, 150, 103, 16, 66, 249, 78, 122,\n\t\t231, 57, 0, 74, 210, 132, 210, 106, 29, 87, 9, 121, 123, 94,\n\t\t142, 84, 175, 42, 199, 32, 47, 215, 164, 228, 94, 32, 124,\n\t\t217, 86, 77, 91, 51, 144, 118, 229, 251, 20, 50, 42, 189,\n\t\t19, 29, 71, 103, 209, 109, 232, 78, 244, 78, 244, 2, 66, 157,\n\t\t94, 20, 182, 7, 235, 32, 122, 19, 56, 65, 58, 28, 189, 117,\n\t\t128, 141, 7, 93, 24, 14, 250, 189, 120, 56, 209, 134, 200,\n\t\t139, 182, 91, 105, 40, 53, 34, 134, 237, 161, 216, 242, 219,\n\t\t37, 107, 16, 15, 147, 124, 46, 214, 31, 142, 226, 97, 59,\n\t\t204, 134, 34, 140, 39, 74, 37, 249, 238, 108, 24, 229, 95,\n\t\t179, 116, 213, 140, 25, 133, 210, 219, 151, 194, 119, 20,\n\t\t109, 138, 169, 239, 228, 26, 55, 52, 77, 240, 207, 188, 57,\n\t\t182, 30, 46, 151, 13, 207, 117, 124, 43, 50, 202, 101, 203,\n\t\t13, 189, 32, 46, 239, 43, 183, 67, 199, 85, 72, 225, 109,\n\t\t129, 134, 235, 83, 218, 218, 212, 212, 212, 219, 195, 74,\n\t\t53, 176, 13, 220, 152, 50, 127, 161, 92, 48, 3, 75, 113, 74,\n\t\t110, 236, 58, 126, 9, 255, 133, 110, 40, 58, 197, 170, 173,\n\t\t218, 190, 24, 138, 175, 94, 61, 160, 254, 173, 231, 43, 92,\n\t\t168, 45, 174, 250, 134, 235, 169, 92, 53, 90, 74, 120, 164,\n\t\t86, 87, 30, 177, 67, 86, 33, 196, 236, 147, 166, 240, 244,\n\t\t167, 78, 154, 119, 62, 245, 212, 71, 170, 162, 250, 129, 102,\n\t\t163, 214, 210, 213, 207, 42, 211, 106, 95, 97, 213, 41, 205,\n\t\t45, 88, 97, 213, 82, 171, 74, 56, 137, 103, 162, 101, 140,\n\t\t224, 122, 116, 26, 161, 204, 162, 91, 200, 131, 26, 27, 147,\n\t\t253, 122, 195, 65, 151, 77, 132, 77, 222, 20, 219, 136, 107,\n\t\t170, 244, 16, 166, 93, 49, 225, 90, 246, 70, 27, 240, 231,\n\t\t192, 189, 160, 237, 173, 239, 222, 187, 51, 238, 148, 98,\n\t\t203, 17, 10, 195, 74, 56, 83, 89, 35, 154, 226, 105, 37, 182,\n\t\t119, 199, 194, 109, 98, 149, 204, 153, 158, 102, 249, 184,\n\t\t194, 138, 34, 224, 38, 163, 79, 236, 223, 231, 16, 147, 26,\n\t\t138, 101, 7, 70, 125, 198, 109, 76, 39, 170, 122, 2, 152,\n\t\t166, 136, 253, 123, 246, 31, 21, 122, 236, 118, 162, 130,\n\t\t165, 196, 245, 160, 206, 117, 133, 113, 194, 176, 179, 99,\n\t\t33, 61, 44, 218, 194, 210, 44, 135, 2, 7, 65, 85, 197, 180,\n\t\t124, 237, 196, 104, 73, 157, 182, 234, 154, 207, 249, 98,\n\t\t191, 60, 27, 185, 138, 122, 13, 62, 253, 194, 247, 225, 241,\n\t\t230, 159, 81, 89, 78, 100, 155, 201, 198, 79, 105, 220, 171,\n\t\t41, 178, 209, 116, 213, 43, 100, 210, 209, 6, 164, 87, 144,\n\t\t25, 53, 30, 215, 232, 53, 184, 117, 122, 132, 96, 149, 26,\n\t\t212, 33, 126, 88, 42, 227, 41, 186, 189, 218, 153, 35, 26,\n\t\t87, 24, 167, 20, 227, 164, 235, 128, 138, 85, 170, 41, 150,\n\t\t229, 233, 211, 115, 126, 187, 228, 213, 57, 215, 131, 138,\n\t\t95, 40, 249, 34, 239, 89, 5, 81, 48, 209, 236, 240, 173, 210,\n\t\t40, 191, 213, 231, 134, 170, 48, 142, 41, 228, 198, 95, 68,\n\t\t23, 139, 149, 142, 46, 21, 168, 8, 161, 140, 248, 93, 82,\n\t\t225, 49, 115, 169, 70, 200, 210, 124, 37, 9, 52, 70, 27, 97,\n\t\t189, 212, 168, 81, 106, 8, 95, 41, 49, 221, 115, 117, 49,\n\t\t230, 121, 227, 139, 240, 42, 170, 162, 85, 116, 64, 222, 137,\n\t\t128, 207, 193, 22, 167, 166, 61, 6, 175, 111, 249, 221, 196,\n\t\t32, 109, 74, 255, 90, 115, 162, 202, 19, 55, 37, 178, 175,\n\t\t41, 111, 70, 167, 191, 5, 140, 31, 140, 240, 189, 154, 101,\n\t\t105, 67, 246, 210, 133, 35, 79, 86, 247, 92, 181, 94, 229,\n\t\t155, 223, 202, 55, 161, 80, 186, 109, 229, 198, 199, 56, 204,\n\t\t230, 91, 155, 255, 89, 110, 109, 190, 254, 122, 190, 149,\n\t\t47, 160, 97, 5, 86, 92, 188, 240, 210, 77, 123, 175, 172,\n\t\t220, 94, 40, 88, 129, 181, 184, 237, 177, 27, 183, 86, 30,\n\t\t176, 2, 203, 10, 44, 196, 81, 247, 242, 37, 248, 40, 92, 66,\n\t\t41, 90, 68, 43, 104, 31, 122, 70, 246, 13, 147, 46, 225, 42,\n\t\t242, 154, 132, 103, 245, 123, 113, 20, 175, 83, 105, 27, 218,\n\t\t16, 203, 200, 170, 8, 226, 81, 156, 38, 18, 200, 119, 5, 125,\n\t\t151, 196, 235, 82, 237, 105, 220, 200, 179, 94, 191, 23, 143,\n\t\t67, 139, 185, 221, 184, 196, 151, 147, 180, 213, 142, 242,\n\t\t19, 100, 53, 122, 69, 207, 72, 162, 76, 210, 40, 30, 101,\n\t\t9, 220, 210, 140, 238, 59, 181, 255, 124, 95, 169, 123, 138,\n\t\t177, 200, 117, 215, 232, 100, 24, 192, 115, 226, 146, 25,\n\t\t196, 199, 155, 173, 69, 221, 249, 106, 151, 87, 91, 177, 163,\n\t\t96, 170, 138, 53, 155, 241, 165, 127, 92, 10, 185, 230, 156,\n\t\t105, 42, 10, 60, 66, 177, 141, 21, 223, 87, 252, 162, 142,\n\t\t167, 49, 214, 104, 236, 215, 150, 67, 238, 8, 77, 48, 162,\n\t\t118, 85, 219, 209, 221, 61, 11, 187, 70, 2, 235, 106, 245,\n\t\t175, 148, 165, 228, 244, 163, 231, 182, 109, 179, 34, 197,\n\t\t107, 179, 247, 87, 117, 223, 82, 62, 203, 0, 247, 59, 139,\n\t\t165, 74, 88, 247, 111, 227, 207, 122, 14, 173, 190, 135, 146,\n\t\t183, 237, 97, 248, 95, 9, 141, 186, 39, 20, 106, 159, 123,\n\t\t173, 114, 124, 187, 98, 57, 140, 178, 105, 8, 21, 69, 112,\n\t\t51, 13, 148, 166, 42, 240, 170, 85, 217, 21, 169, 161, 170,\n\t\t17, 70, 181, 141, 169, 230, 204, 226, 43, 1, 51, 4, 191, 198,\n\t\t79, 142, 37, 166, 9, 249, 113, 251, 173, 225, 20, 29, 218,\n\t\t164, 159, 197, 111, 204, 157, 2, 253, 234, 6, 188, 235, 252,\n\t\t197, 243, 183, 60, 92, 128, 153, 151, 255, 211, 213, 94, 137,\n\t\t207, 193, 236, 230, 183, 110, 185, 5, 161, 24, 153, 151, 191,\n\t\t137, 251, 240, 121, 116, 24, 29, 69, 55, 160, 243, 232, 30,\n\t\t116, 31, 122, 59, 122, 39, 122, 12, 61, 129, 158, 67, 47,\n\t\t160, 15, 163, 31, 69, 63, 129, 62, 137, 254, 17, 250, 57,\n\t\t244, 75, 232, 87, 209, 175, 161, 95, 71, 191, 61, 102, 44,\n\t\t218, 176, 181, 144, 177, 222, 54, 207, 95, 227, 70, 144, 110,\n\t\t45, 54, 96, 144, 44, 15, 54, 96, 204, 225, 232, 197, 253,\n\t\t81, 254, 146, 204, 141, 64, 196, 146, 223, 8, 195, 118, 54,\n\t\t20, 81, 152, 13, 83, 222, 22, 65, 190, 127, 41, 206, 134,\n\t\t34, 88, 14, 68, 54, 20, 108, 40, 226, 204, 134, 126, 154,\n\t\t165, 162, 14, 253, 44, 205, 68, 156, 37, 107, 144, 38, 105,\n\t\t91, 196, 105, 59, 206, 218, 188, 37, 194, 44, 109, 217, 227,\n\t\t160, 121, 152, 137, 176, 159, 165, 162, 159, 181, 195, 56,\n\t\t138, 251, 105, 91, 244, 71, 189, 13, 104, 199, 163, 13, 220,\n\t\t206, 6, 89, 42, 242, 145, 37, 75, 69, 60, 202, 112, 98, 24,\n\t\t25, 24, 3, 160, 130, 10, 250, 0, 179, 216, 253, 76, 112, 21,\n\t\t6, 6, 100, 134, 49, 2, 117, 5, 88, 254, 206, 253, 227, 119,\n\t\t168, 160, 176, 194, 21, 188, 249, 217, 249, 249, 5, 152, 239,\n\t\t19, 58, 128, 21, 218, 159, 199, 221, 121, 120, 228, 206, 157,\n\t\t237, 175, 24, 177, 113, 252, 198, 227, 103, 220, 39, 249,\n\t\t222, 214, 99, 55, 222, 137, 183, 131, 65, 63, 187, 77, 187,\n\t\t183, 255, 163, 215, 81, 227, 61, 163, 62, 0, 204, 92, 191,\n\t\t99, 199, 212, 212, 3, 238, 13, 109, 184, 229, 46, 32, 207,\n\t\t223, 119, 46, 57, 119, 7, 53, 158, 244, 30, 61, 139, 193,\n\t\t109, 71, 17, 184, 244, 20, 116, 219, 33, 144, 111, 98, 211,\n\t\t32, 231, 9, 54, 200, 89, 140, 169, 160, 148, 49, 166, 114,\n\t\t76, 207, 16, 3, 147, 243, 196, 48, 241, 57, 0, 141, 222, 65,\n\t\t242, 55, 57, 207, 13, 113, 138, 201, 237, 42, 39, 116, 243,\n\t\t223, 30, 81, 250, 75, 24, 54, 206, 13, 240, 89, 32, 24, 223,\n\t\t142, 63, 121, 208, 1, 74, 155, 59, 174, 43, 192, 61, 123,\n\t\t62, 247, 53, 35, 190, 225, 244, 77, 231, 220, 202, 129, 55,\n\t\t158, 60, 253, 54, 74, 225, 110, 32, 59, 214, 222, 59, 26,\n\t\t49, 56, 16, 140, 224, 196, 141, 115, 39, 55, 30, 61, 146,\n\t\t244, 86, 189, 83, 223, 60, 127, 22, 128, 156, 63, 207, 196,\n\t\t141, 231, 0, 170, 107, 10, 6, 47, 124, 16, 3, 208, 235, 63,\n\t\t19, 73, 113, 26, 140, 252, 203, 151, 224, 23, 224, 18, 50,\n\t\t81, 21, 33, 9, 91, 155, 112, 57, 71, 125, 63, 236, 167, 99,\n\t\t107, 77, 66, 199, 35, 56, 112, 207, 48, 249, 203, 100, 56,\n\t\t76, 230, 223, 232, 171, 182, 242, 33, 211, 247, 225, 244,\n\t\t189, 155, 39, 59, 75, 75, 157, 255, 152, 102, 155, 191, 13,\n\t\t195, 247, 169, 182, 26, 152, 31, 49, 253, 49, 126, 233, 223,\n\t\t193, 37, 248, 105, 57, 207, 172, 162, 20, 161, 173, 78, 198,\n\t\t130, 142, 5, 210, 73, 153, 69, 126, 20, 39, 169, 20, 213,\n\t\t203, 174, 236, 227, 252, 185, 115, 133, 226, 185, 31, 134,\n\t\t11, 239, 252, 92, 179, 16, 54, 255, 241, 195, 229, 41, 207,\n\t\t201, 6, 211, 11, 123, 222, 203, 249, 201, 103, 219, 245, 82,\n\t\t235, 39, 47, 24, 31, 40, 149, 206, 61, 199, 166, 62, 116,\n\t\t71, 243, 159, 60, 226, 215, 30, 254, 92, 211, 223, 252, 171,\n\t\t165, 117, 43, 40, 138, 167, 118, 47, 60, 208, 126, 254, 20,\n\t\t213, 239, 253, 233, 86, 89, 62, 139, 28, 33, 188, 29, 46,\n\t\t34, 11, 117, 208, 118, 132, 32, 110, 39, 210, 37, 230, 75,\n\t\t72, 177, 47, 21, 160, 228, 14, 62, 7, 254, 4, 102, 28, 235,\n\t\t176, 181, 87, 58, 205, 36, 244, 24, 158, 179, 245, 149, 197,\n\t\t133, 237, 43, 123, 234, 243, 75, 107, 179, 51, 255, 125, 170,\n\t\t149, 13, 215, 103, 102, 214, 135, 89, 187, 5, 179, 235, 7,\n\t\t118, 206, 206, 238, 60, 176, 14, 173, 197, 81, 190, 119, 180,\n\t\t216, 170, 54, 151, 11, 43, 139, 139, 43, 237, 109, 112, 226,\n\t\t111, 161, 90, 169, 0, 246, 231, 102, 54, 63, 239, 20, 103,\n\t\t102, 138, 14, 220, 218, 174, 86, 219, 155, 175, 67, 33, 76,\n\t\t146, 112, 243, 63, 27, 134, 90, 173, 58, 18, 51, 206, 47,\n\t\t191, 129, 159, 128, 151, 229, 28, 125, 7, 58, 138, 110, 189,\n\t\t210, 99, 55, 39, 200, 207, 201, 211, 57, 1, 143, 178, 55,\n\t\t89, 174, 209, 85, 36, 215, 171, 183, 223, 252, 54, 191, 95,\n\t\t1, 92, 153, 25, 30, 234, 109, 62, 219, 59, 148, 54, 72, 148,\n\t\t198, 245, 130, 117, 203, 246, 125, 119, 109, 254, 156, 202,\n\t\t235, 66, 85, 69, 157, 171, 103, 84, 94, 207, 141, 158, 58,\n\t\t87, 207, 82, 65, 183, 118, 223, 172, 242, 106, 190, 187, 202,\n\t\t213, 223, 215, 246, 204, 245, 15, 30, 236, 79, 237, 176, 117,\n\t\t35, 78, 226, 112, 229, 224, 93, 251, 130, 95, 125, 71, 94,\n\t\t242, 29, 121, 153, 231, 175, 44, 62, 77, 5, 85, 249, 167,\n\t\t243, 213, 255, 192, 53, 141, 255, 7, 174, 170, 121, 59, 185,\n\t\t252, 27, 112, 9, 190, 114, 149, 166, 78, 140, 202, 168, 46,\n\t\t17, 151, 115, 104, 17, 245, 81, 134, 86, 209, 6, 218, 131,\n\t\t14, 160, 163, 232, 164, 244, 31, 61, 133, 158, 65, 63, 136,\n\t\t62, 136, 62, 130, 62, 134, 126, 12, 253, 20, 250, 25, 244,\n\t\t105, 244, 57, 244, 243, 232, 21, 244, 5, 244, 69, 244, 21,\n\t\t244, 53, 132, 54, 32, 22, 113, 22, 139, 13, 136, 109, 200,\n\t\t38, 0, 241, 108, 188, 158, 191, 71, 38, 177, 148, 252, 213,\n\t\t191, 234, 181, 181, 13, 97, 123, 152, 133, 249, 100, 56, 223,\n\t\t142, 38, 113, 168, 116, 108, 221, 183, 91, 169, 152, 140,\n\t\t137, 124, 60, 47, 234, 143, 189, 216, 105, 216, 30, 178, 97,\n\t\t63, 236, 132, 237, 33, 105, 186, 34, 237, 184, 77, 55, 246,\n\t\t135, 77, 233, 6, 136, 39, 117, 230, 37, 210, 252, 53, 81,\n\t\t10, 18, 147, 245, 9, 47, 97, 178, 117, 55, 173, 83, 133, 213,\n\t\t232, 135, 107, 180, 246, 34, 171, 177, 143, 179, 26, 253,\n\t\t149, 26, 171, 207, 215, 89, 253, 145, 58, 173, 255, 90, 203,\n\t\t108, 153, 173, 87, 154, 23, 91, 39, 90, 107, 205, 87, 90,\n\t\t155, 95, 211, 79, 180, 166, 244, 214, 171, 71, 70, 163, 35,\n\t\t195, 15, 22, 170, 133, 102, 69, 81, 253, 138, 223, 40, 86,\n\t\t139, 181, 178, 10, 74, 213, 54, 2, 247, 189, 58, 220, 161,\n\t\t111, 254, 140, 62, 11, 151, 254, 252, 207, 224, 211, 155,\n\t\t79, 124, 237, 55, 55, 159, 40, 232, 186, 126, 177, 5, 68,\n\t\t215, 245, 175, 52, 127, 95, 215, 245, 15, 55, 79, 180, 30,\n\t\t139, 91, 139, 173, 68, 179, 52, 170, 153, 90, 217, 210, 172,\n\t\t80, 179, 180, 221, 154, 165, 22, 77, 205, 84, 44, 205, 90,\n\t\t183, 52, 19, 46, 104, 111, 249, 217, 124, 189, 213, 250, 67,\n\t\t93, 215, 227, 150, 254, 151, 195, 35, 195, 225, 145, 237,\n\t\t182, 129, 153, 98, 219, 158, 97, 185, 142, 133, 137, 176,\n\t\t77, 199, 160, 246, 161, 86, 235, 155, 173, 214, 209, 102,\n\t\t19, 150, 54, 239, 191, 243, 78, 31, 172, 205, 191, 57, 9,\n\t\t23, 87, 87, 159, 109, 54, 231, 154, 205, 103, 117, 253, 211,\n\t\t114, 229, 61, 186, 126, 180, 213, 122, 182, 213, 250, 166,\n\t\t174, 235, 122, 43, 214, 91, 45, 93, 31, 235, 242, 80, 132,\n\t\t224, 239, 224, 162, 212, 25, 152, 253, 158, 153, 235, 42,\n\t\t200, 80, 160, 84, 120, 197, 111, 149, 2, 250, 15, 146, 201,\n\t\t189, 158, 47, 239, 23, 134, 120, 205, 214, 255, 62, 75, 211,\n\t\t44, 253, 59, 185, 132, 139, 182, 190, 249, 207, 117, 219,\n\t\t214, 225, 136, 110, 11, 67, 76, 79, 235, 246, 230, 159, 166,\n\t\t242, 77, 249, 55, 177, 13, 40, 190, 8, 79, 162, 51, 19, 46,\n\t\t90, 151, 231, 141, 64, 218, 65, 19, 103, 187, 228, 54, 76,\n\t\t158, 220, 26, 239, 247, 214, 65, 78, 22, 199, 211, 228, 177,\n\t\t229, 52, 46, 48, 134, 193, 135, 129, 200, 187, 29, 124, 113,\n\t\t111, 175, 58, 154, 158, 105, 206, 164, 195, 234, 236, 54,\n\t\t211, 218, 49, 183, 103, 21, 4, 231, 152, 113, 175, 113, 227,\n\t\t244, 206, 179, 51, 251, 103, 155, 59, 230, 231, 91, 105, 167,\n\t\t91, 172, 36, 170, 218, 41, 169, 77, 198, 53, 190, 167, 87,\n\t\t152, 142, 49, 227, 74, 178, 179, 214, 239, 132, 224, 121,\n\t\t221, 221, 239, 94, 222, 29, 181, 23, 22, 231, 167, 194, 249,\n\t\t245, 245, 249, 89, 16, 140, 10, 170, 56, 149, 214, 13, 27,\n\t\t179, 251, 146, 176, 53, 191, 56, 223, 138, 170, 51, 51, 85,\n\t\t93, 229, 188, 192, 123, 187, 60, 95, 48, 166, 206, 135, 157,\n\t\t126, 213, 80, 217, 250, 22, 174, 243, 27, 112, 17, 94, 67,\n\t\t59, 17, 146, 129, 122, 137, 72, 79, 45, 46, 105, 98, 146,\n\t\t128, 44, 63, 69, 156, 207, 150, 175, 80, 225, 38, 54, 253,\n\t\t21, 190, 216, 239, 28, 122, 192, 159, 90, 75, 130, 105, 149,\n\t\t232, 68, 21, 166, 173, 19, 32, 212, 44, 99, 173, 83, 243,\n\t\t212, 82, 217, 47, 36, 190, 186, 107, 184, 227, 120, 172, 242,\n\t\t112, 238, 125, 240, 218, 185, 67, 83, 123, 183, 183, 124,\n\t\t215, 152, 55, 107, 102, 33, 178, 49, 89, 82, 203, 251, 238,\n\t\t85, 253, 198, 146, 99, 70, 134, 231, 95, 231, 251, 197, 70,\n\t\t111, 57, 26, 108, 63, 182, 35, 158, 7, 165, 188, 190, 116,\n\t\t252, 238, 183, 234, 146, 29, 28, 107, 190, 94, 29, 55, 39,\n\t\t189, 209, 112, 148, 74, 244, 111, 29, 68, 22, 71, 111, 98,\n\t\t237, 199, 145, 209, 81, 63, 159, 224, 70, 203, 145, 176, 176,\n\t\t196, 193, 141, 41, 232, 240, 212, 158, 231, 207, 109, 91,\n\t\t126, 188, 81, 123, 246, 220, 185, 115, 71, 222, 14, 219, 70,\n\t\t63, 254, 80, 149, 250, 251, 197, 220, 143, 107, 64, 4, 41,\n\t\t170, 165, 153, 229, 133, 216, 23, 138, 66, 84, 226, 18, 76,\n\t\t13, 140, 173, 102, 69, 161, 38, 163, 138, 2, 231, 247, 156,\n\t\t61, 247, 108, 185, 254, 104, 127, 199, 185, 103, 55, 239,\n\t\t123, 232, 200, 225, 149, 209, 131, 71, 134, 11, 98, 175, 71,\n\t\t75, 31, 100, 152, 135, 138, 11, 212, 11, 55, 234, 165, 98,\n\t\t196, 213, 25, 78, 85, 19, 243, 82, 201, 162, 204, 22, 156,\n\t\t144, 43, 124, 226, 139, 240, 50, 138, 242, 153, 38, 136, 126,\n\t\t216, 150, 175, 180, 61, 236, 203, 87, 63, 238, 103, 36, 107,\n\t\t195, 197, 165, 165, 189, 214, 13, 23, 206, 156, 185, 112,\n\t\t131, 181, 119, 105, 105, 231, 137, 219, 78, 92, 44, 143, 224,\n\t\t229, 135, 151, 26, 75, 175, 191, 190, 212, 88, 122, 248, 210,\n\t\t165, 205, 215, 119, 94, 195, 81, 38, 104, 122, 140, 242, 128,\n\t\t161, 12, 195, 196, 145, 8, 35, 27, 194, 254, 48, 77, 50, 25,\n\t\t147, 9, 174, 108, 37, 25, 92, 218, 220, 9, 239, 186, 113,\n\t\t117, 239, 205, 21, 6, 192, 26, 103, 27, 12, 174, 87, 247,\n\t\t224, 194, 227, 5, 2, 64, 224, 229, 205, 157, 112, 138, 253,\n\t\t232, 143, 178, 22, 229, 239, 23, 60, 97, 44, 225, 226, 209,\n\t\t159, 255, 249, 23, 41, 46, 48, 22, 19, 250, 79, 40, 65, 111,\n\t\t57, 191, 141, 16, 184, 77, 215, 207, 218, 130, 139, 69, 216,\n\t\t194, 152, 124, 231, 88, 179, 43, 184, 177, 208, 62, 82, 147,\n\t\t213, 94, 186, 140, 62, 122, 139, 101, 150, 111, 249, 145,\n\t\t219, 16, 42, 92, 222, 188, 252, 187, 120, 55, 188, 138, 62,\n\t\t132, 126, 28, 253, 172, 244, 109, 125, 21, 253, 11, 244, 111,\n\t\t208, 27, 232, 191, 160, 239, 2, 134, 20, 86, 224, 16, 220,\n\t\t2, 111, 135, 39, 224, 25, 248, 48, 124, 18, 126, 14, 254,\n\t\t57, 124, 85, 50, 29, 35, 46, 120, 154, 255, 74, 216, 99, 50,\n\t\t202, 173, 149, 120, 148, 13, 70, 241, 40, 30, 74, 5, 102,\n\t\t137, 140, 140, 123, 113, 111, 212, 79, 210, 36, 29, 12, 19,\n\t\t137, 185, 140, 226, 160, 134, 71, 209, 40, 146, 135, 8, 137,\n\t\t19, 73, 37, 110, 126, 59, 172, 211, 225, 250, 88, 69, 136,\n\t\t139, 176, 37, 184, 232, 69, 253, 81, 127, 52, 33, 195, 229,\n\t\t29, 67, 16, 142, 226, 81, 20, 70, 241, 40, 18, 249, 34, 149,\n\t\t144, 205, 46, 240, 48, 144, 72, 135, 113, 117, 173, 118, 20,\n\t\t247, 178, 81, 194, 228, 20, 32, 145, 240, 205, 56, 201, 242,\n\t\t121, 84, 110, 86, 113, 27, 134, 60, 142, 178, 177, 161, 54,\n\t\t182, 211, 146, 246, 152, 57, 190, 14, 105, 171, 205, 35, 73,\n\t\t23, 25, 136, 209, 32, 157, 5, 222, 182, 164, 46, 2, 159, 200,\n\t\t204, 230, 231, 137, 98, 169, 129, 212, 29, 11, 36, 229, 21,\n\t\t243, 84, 42, 15, 201, 103, 33, 159, 175, 13, 187, 56, 77,\n\t\t120, 92, 35, 113, 111, 52, 54, 230, 242, 66, 209, 88, 208,\n\t\t136, 117, 105, 186, 117, 96, 56, 204, 159, 147, 246, 104,\n\t\t40, 3, 207, 89, 50, 156, 92, 166, 148, 63, 10, 162, 254, 58,\n\t\t144, 46, 136, 117, 136, 96, 20, 73, 117, 35, 57, 181, 105,\n\t\t37, 18, 164, 159, 142, 36, 194, 106, 48, 70, 161, 114, 193,\n\t\t147, 241, 12, 104, 140, 112, 21, 53, 16, 129, 188, 162, 17,\n\t\t94, 195, 0, 253, 184, 102, 254, 218, 79, 89, 213, 184, 15,\n\t\t64, 177, 66, 5, 181, 133, 106, 82, 71, 23, 190, 135, 149,\n\t\t38, 168, 76, 163, 46, 37, 58, 161, 84, 120, 211, 182, 163,\n\t\t132, 220, 150, 206, 89, 66, 56, 167, 166, 165, 55, 43, 213,\n\t\t180, 99, 46, 254, 163, 155, 74, 142, 162, 43, 140, 96, 0,\n\t\t176, 133, 207, 152, 107, 167, 190, 160, 249, 161, 196, 163,\n\t\t26, 83, 33, 164, 24, 211, 154, 161, 59, 212, 84, 165, 211,\n\t\t134, 40, 248, 88, 164, 128, 80, 72, 110, 109, 104, 161, 226,\n\t\t41, 4, 227, 129, 66, 13, 194, 56, 83, 55, 143, 43, 17, 81,\n\t\t184, 80, 116, 197, 19, 129, 70, 203, 132, 244, 168, 195, 52,\n\t\t195, 20, 202, 87, 194, 118, 176, 176, 49, 63, 127, 19, 111,\n\t\t229, 181, 98, 162, 235, 195, 106, 5, 48, 81, 218, 10, 57,\n\t\t76, 64, 196, 129, 130, 129, 169, 83, 119, 48, 195, 86, 48,\n\t\t96, 236, 174, 48, 243, 186, 19, 139, 215, 205, 106, 152, 170,\n\t\t26, 209, 2, 157, 99, 66, 194, 170, 141, 21, 161, 45, 115,\n\t\t40, 88, 156, 97, 167, 10, 68, 179, 132, 215, 195, 204, 114,\n\t\t92, 97, 197, 220, 198, 195, 225, 92, 6, 28, 20, 76, 12, 194,\n\t\t0, 110, 52, 131, 66, 84, 52, 130, 8, 99, 215, 219, 182, 242,\n\t\t145, 207, 99, 27, 128, 82, 157, 98, 5, 40, 201, 150, 179,\n\t\t79, 227, 158, 167, 249, 172, 232, 88, 83, 191, 92, 222, 221,\n\t\t52, 118, 12, 54, 255, 80, 55, 24, 54, 28, 102, 6, 157, 255,\n\t\t88, 104, 48, 173, 227, 22, 151, 234, 255, 83, 183, 40, 231,\n\t\t152, 235, 194, 134, 207, 155, 157, 192, 84, 99, 74, 13, 93,\n\t\t196, 96, 115, 147, 97, 94, 22, 52, 158, 1, 92, 228, 188, 0,\n\t\t48, 19, 115, 38, 4, 17, 194, 85, 24, 213, 129, 19, 53, 80,\n\t\t92, 189, 101, 81, 13, 19, 83, 1, 130, 245, 252, 59, 113, 189,\n\t\t3, 54, 229, 10, 86, 65, 1, 142, 25, 197, 134, 2, 172, 98,\n\t\t251, 148, 233, 173, 3, 113, 7, 8, 40, 88, 195, 66, 48, 171,\n\t\t53, 229, 187, 64, 116, 76, 176, 106, 96, 208, 152, 234, 234,\n\t\t186, 235, 155, 66, 193, 28, 116, 202, 40, 23, 10, 39, 226,\n\t\t255, 168, 101, 173, 169, 16, 76, 136, 98, 82, 92, 72, 169,\n\t\t66, 233, 52, 174, 55, 193, 155, 50, 203, 170, 16, 12, 152,\n\t\t210, 76, 20, 154, 22, 48, 85, 167, 153, 219, 170, 2, 101,\n\t\t80, 172, 192, 167, 195, 118, 208, 88, 88, 104, 212, 23, 94,\n\t\t1, 175, 224, 2, 111, 123, 162, 129, 41, 97, 213, 46, 79, 52,\n\t\t208, 166, 24, 133, 145, 211, 16, 84, 165, 211, 10, 52, 20,\n\t\t118, 125, 217, 28, 204, 82, 1, 0, 77, 78, 13, 98, 10, 140,\n\t\t25, 231, 0, 204, 41, 152, 66, 87, 52, 252, 139, 148, 154,\n\t\t145, 139, 121, 18, 9, 75, 229, 224, 92, 95, 46, 214, 157,\n\t\t120, 4, 24, 11, 202, 9, 33, 241, 13, 66, 55, 52, 149, 170,\n\t\t2, 128, 41, 78, 11, 128, 123, 229, 98, 24, 96, 134, 57, 103,\n\t\t0, 128, 251, 69, 183, 19, 37, 156, 52, 124, 55, 128, 16, 62,\n\t\t80, 53, 253, 138, 221, 216, 252, 40, 196, 42, 211, 53, 160,\n\t\t154, 106, 212, 62, 223, 46, 58, 154, 235, 50, 173, 82, 10,\n\t\t43, 255, 127, 170, 171, 0, 22, 51, 24, 22, 7, 161, 102, 168,\n\t\t26, 197, 158, 80, 227, 57, 240, 56, 19, 152, 25, 204, 154,\n\t\t248, 44, 254, 8, 63, 15, 159, 147, 152, 171, 37, 132, 182,\n\t\t104, 238, 173, 9, 226, 10, 122, 53, 106, 17, 193, 197, 122,\n\t\t254, 208, 242, 46, 79, 107, 24, 62, 87, 74, 202, 229, 228,\n\t\t255, 228, 139, 18, 156, 72, 87, 167, 107, 10, 247, 140, 180,\n\t\t80, 238, 87, 140, 126, 18, 196, 167, 79, 108, 191, 99, 247,\n\t\t182, 122, 205, 240, 201, 236, 219, 62, 85, 74, 74, 178, 124,\n\t\t169, 148, 192, 12, 86, 184, 171, 151, 156, 118, 24, 207, 23,\n\t\t163, 149, 78, 26, 155, 0, 138, 17, 123, 53, 183, 193, 230,\n\t\t103, 172, 45, 222, 213, 22, 15, 166, 141, 250, 104, 3, 93,\n\t\t143, 110, 70, 231, 223, 68, 131, 197, 109, 25, 13, 88, 131,\n\t\t193, 58, 72, 241, 186, 241, 134, 156, 72, 197, 111, 177, 112,\n\t\t210, 48, 152, 131, 214, 26, 12, 86, 161, 23, 7, 98, 178, 53,\n\t\t230, 244, 227, 73, 125, 91, 26, 145, 47, 255, 210, 83, 79,\n\t\t253, 210, 83, 239, 2, 213, 83, 139, 157, 169, 146, 234, 170,\n\t\t219, 166, 75, 11, 165, 191, 214, 197, 119, 133, 46, 23, 223,\n\t\t101, 42, 165, 42, 251, 144, 171, 122, 170, 23, 214, 38, 204,\n\t\t251, 159, 248, 245, 23, 94, 248, 245, 23, 224, 227, 79, 229,\n\t\t199, 43, 101, 85, 45, 199, 13, 69, 105, 196, 249, 218, 244,\n\t\t182, 210, 194, 183, 63, 44, 52, 77, 124, 88, 232, 250, 143,\n\t\t188, 159, 210, 247, 179, 97, 168, 213, 85, 181, 174, 133,\n\t\t86, 24, 130, 41, 225, 197, 155, 95, 120, 33, 175, 228, 26,\n\t\t76, 141, 131, 26, 104, 21, 29, 67, 119, 33, 212, 25, 246,\n\t\t151, 243, 153, 100, 43, 142, 2, 193, 219, 195, 222, 247, 68,\n\t\t101, 218, 65, 20, 88, 164, 221, 74, 195, 26, 238, 245, 227,\n\t\t222, 58, 29, 36, 217, 24, 135, 90, 131, 81, 54, 180, 32, 25,\n\t\t140, 162, 58, 12, 186, 52, 149, 64, 64, 72, 199, 196, 52,\n\t\t248, 165, 196, 52, 129, 89, 22, 158, 158, 190, 247, 154, 224,\n\t\t201, 227, 219, 0, 168, 98, 105, 229, 154, 18, 58, 54, 165,\n\t\t94, 217, 51, 56, 134, 95, 46, 102, 253, 102, 107, 52, 140,\n\t\t11, 203, 173, 214, 114, 225, 85, 66, 133, 170, 49, 203, 81,\n\t\t93, 253, 49, 242, 62, 175, 240, 59, 13, 98, 90, 56, 32, 85,\n\t\t12, 237, 87, 175, 114, 102, 61, 175, 55, 220, 88, 215, 153,\n\t\t93, 33, 4, 3, 231, 142, 81, 118, 59, 92, 96, 181, 89, 42,\n\t\t55, 21, 194, 43, 38, 141, 123, 49, 53, 215, 168, 34, 56, 197,\n\t\t128, 93, 93, 179, 4, 92, 244, 174, 240, 169, 39, 49, 15, 19,\n\t\t197, 40, 69, 163, 171, 218, 195, 208, 130, 32, 31, 192, 134,\n\t\t131, 46, 73, 223, 26, 235, 0, 57, 30, 74, 237, 167, 124, 78,\n\t\t250, 185, 143, 94, 184, 240, 209, 11, 63, 212, 152, 158, 126,\n\t\t184, 62, 45, 12, 47, 50, 190, 123, 85, 212, 191, 116, 253,\n\t\t123, 223, 125, 226, 150, 225, 233, 193, 35, 215, 195, 195,\n\t\t23, 94, 186, 247, 222, 151, 62, 255, 186, 177, 109, 255, 138,\n\t\t105, 174, 180, 173, 114, 28, 56, 244, 61, 215, 248, 157, 111,\n\t\t127, 231, 209, 155, 222, 190, 116, 118, 229, 216, 195, 99,\n\t\t255, 199, 111, 201, 118, 27, 160, 25, 180, 130, 246, 34, 148,\n\t\t137, 164, 221, 10, 250, 189, 44, 150, 80, 224, 55, 67, 4,\n\t\t111, 217, 151, 94, 153, 77, 231, 179, 104, 255, 42, 33, 248,\n\t\t255, 221, 212, 188, 102, 51, 82, 107, 225, 188, 22, 149, 156,\n\t\t133, 74, 247, 211, 77, 213, 207, 247, 212, 163, 57, 61, 42,\n\t\t58, 11, 229, 238, 123, 239, 251, 200, 204, 190, 179, 75, 247,\n\t\t124, 116, 227, 209, 253, 39, 158, 120, 252, 228, 169, 199,\n\t\t222, 253, 87, 110, 112, 58, 180, 83, 110, 181, 226, 233, 206,\n\t\t212, 214, 70, 179, 48, 221, 249, 249, 31, 185, 119, 116, 219,\n\t\t70, 231, 165, 11, 187, 31, 217, 187, 185, 246, 232, 233, 147,\n\t\t143, 63, 113, 226, 198, 247, 76, 230, 95, 200, 192, 8, 222,\n\t\t37, 57, 87, 104, 98, 48, 75, 62, 203, 120, 61, 75, 69, 44,\n\t\t210, 47, 92, 184, 240, 133, 47, 44, 148, 252, 139, 23, 7,\n\t\t71, 191, 112, 101, 173, 120, 225, 143, 47, 220, 243, 133,\n\t\t47, 44, 20, 243, 173, 35, 95, 184, 178, 86, 186, 128, 8, 82,\n\t\t47, 255, 54, 252, 173, 124, 158, 125, 84, 191, 234, 123, 27,\n\t\t87, 56, 174, 56, 187, 114, 34, 241, 147, 242, 169, 250, 173,\n\t\t195, 71, 11, 195, 242, 209, 163, 122, 177, 253, 244, 27, 79,\n\t\t63, 157, 111, 149, 142, 29, 211, 11, 19, 98, 218, 183, 175,\n\t\t59, 86, 28, 150, 142, 30, 213, 11, 83, 79, 63, 249, 244, 211,\n\t\t87, 182, 16, 210, 46, 127, 23, 217, 248, 0, 60, 32, 49, 114,\n\t\t125, 180, 42, 125, 6, 183, 162, 251, 101, 198, 3, 148, 141,\n\t\t185, 143, 121, 7, 208, 25, 135, 200, 242, 141, 152, 39, 169,\n\t\t72, 199, 170, 81, 73, 42, 229, 202, 243, 223, 40, 238, 115,\n\t\t17, 241, 169, 137, 225, 152, 207, 150, 114, 227, 45, 255,\n\t\t229, 162, 87, 195, 52, 127, 196, 106, 48, 186, 162, 14, 50,\n\t\t177, 231, 228, 52, 172, 243, 230, 153, 248, 164, 130, 207,\n\t\t114, 93, 168, 182, 237, 91, 160, 10, 157, 91, 129, 101, 221,\n\t\t189, 248, 238, 78, 189, 54, 245, 232, 226, 146, 215, 86, 253,\n\t\t179, 83, 239, 152, 35, 148, 146, 153, 135, 166, 110, 247,\n\t\t181, 182, 189, 249, 59, 123, 206, 239, 221, 123, 254, 118,\n\t\t122, 60, 43, 31, 171, 97, 2, 184, 118, 188, 92, 233, 117,\n\t\t10, 96, 53, 79, 157, 157, 110, 222, 124, 102, 243, 95, 207,\n\t\t174, 206, 206, 174, 186, 229, 192, 136, 140, 114, 90, 134,\n\t\t237, 65, 35, 168, 206, 206, 174, 206, 20, 202, 105, 185, 156,\n\t\t126, 142, 235, 220, 242, 45, 203, 202, 207, 108, 89, 190,\n\t\t245, 193, 142, 189, 184, 216, 93, 176, 91, 237, 199, 151,\n\t\t234, 229, 168, 209, 136, 74, 245, 197, 199, 234, 231, 247,\n\t\t236, 57, 191, 247, 233, 236, 8, 214, 93, 199, 136, 218, 203,\n\t\t115, 103, 166, 229, 25, 222, 151, 215, 62, 123, 16, 252, 178,\n\t\t17, 153, 126, 185, 236, 251, 77, 63, 63, 227, 178, 100, 114,\n\t\t142, 109, 112, 184, 252, 37, 216, 1, 151, 208, 52, 26, 228,\n\t\t182, 97, 135, 139, 58, 140, 89, 163, 130, 119, 33, 27, 45,\n\t\t103, 201, 150, 26, 23, 238, 141, 54, 96, 20, 73, 186, 102,\n\t\t103, 34, 13, 148, 223, 187, 108, 50, 111, 205, 111, 30, 248,\n\t\t205, 109, 225, 17, 211, 168, 219, 193, 182, 35, 102, 91, 53,\n\t\t142, 132, 171, 141, 178, 163, 242, 114, 72, 157, 229, 193,\n\t\t146, 166, 135, 101, 65, 176, 97, 109, 254, 253, 145, 81, 123,\n\t\t71, 251, 200, 131, 71, 118, 39, 131, 36, 41, 185, 53, 247,\n\t\t145, 144, 135, 249, 49, 122, 126, 168, 81, 183, 143, 6, 60,\n\t\t244, 98, 207, 20, 22, 209, 28, 75, 17, 150, 48, 117, 195,\n\t\t209, 127, 99, 116, 164, 189, 58, 53, 60, 114, 100, 88, 234,\n\t\t116, 74, 229, 142, 91, 189, 154, 91, 42, 164, 150, 240, 94,\n\t\t132, 70, 19, 228, 241, 91, 187, 91, 58, 113, 34, 196, 93,\n\t\t152, 144, 217, 199, 26, 99, 113, 20, 139, 64, 240, 104, 3,\n\t\t162, 56, 26, 45, 226, 81, 182, 14, 175, 22, 26, 133, 66, 227,\n\t\t191, 95, 211, 109, 124, 115, 113, 239, 226, 226, 222, 31,\n\t\t160, 142, 21, 117, 156, 154, 224, 150, 67, 57, 87, 141, 160,\n\t\t99, 46, 153, 21, 115, 105, 202, 48, 43, 230, 162, 217, 14,\n\t\t93, 109, 179, 89, 40, 52, 227, 23, 175, 234, 71, 111, 220,\n\t\t187, 184, 184, 103, 233, 159, 41, 84, 241, 84, 202, 20, 170,\n\t\t8, 75, 81, 76, 106, 192, 162, 89, 29, 31, 106, 45, 25, 212,\n\t\t212, 237, 171, 53, 126, 46, 34, 75, 242, 215, 198, 120, 221,\n\t\t246, 150, 195, 55, 191, 190, 113, 87, 35, 184, 24, 199, 117,\n\t\t198, 201, 26, 226, 168, 7, 63, 238, 198, 207, 221, 122, 235,\n\t\t115, 5, 247, 119, 11, 173, 25, 219, 51, 52, 167, 85, 246,\n\t\t253, 74, 195, 209, 76, 207, 158, 109, 21, 212, 2, 92, 44,\n\t\t184, 47, 220, 250, 220, 115, 183, 190, 224, 22, 54, 255, 103,\n\t\t220, 72, 61, 221, 240, 140, 102, 201, 243, 203, 117, 195,\n\t\t51, 116, 119, 186, 17, 171, 82, 71, 236, 127, 224, 139, 240,\n\t\t17, 116, 4, 33, 8, 185, 176, 136, 104, 167, 185, 45, 144,\n\t\t44, 75, 78, 188, 216, 1, 195, 126, 40, 109, 146, 120, 29,\n\t\t103, 82, 53, 245, 202, 142, 81, 54, 234, 66, 123, 7, 12, 183,\n\t\t227, 126, 62, 123, 175, 65, 236, 119, 161, 61, 196, 23, 83,\n\t\t151, 207, 37, 61, 207, 186, 65, 28, 246, 236, 248, 142, 88,\n\t\t91, 242, 126, 214, 107, 112, 113, 191, 41, 170, 77, 206, 86,\n\t\t21, 125, 225, 195, 142, 207, 213, 154, 90, 245, 25, 15, 92,\n\t\t119, 199, 12, 75, 130, 85, 178, 19, 63, 193, 106, 6, 124,\n\t\t200, 128, 105, 243, 174, 179, 143, 206, 124, 205, 250, 112,\n\t\t7, 32, 251, 227, 149, 104, 9, 176, 134, 77, 8, 44, 235, 127,\n\t\t87, 204, 149, 53, 83, 123, 193, 246, 45, 19, 76, 35, 216,\n\t\t237, 103, 93, 205, 228, 249, 219, 184, 246, 62, 245, 35, 20,\n\t\t74, 182, 105, 161, 171, 52, 131, 44, 20, 161, 26, 186, 31,\n\t\t61, 44, 217, 34, 248, 205, 28, 23, 83, 111, 97, 49, 101, 65,\n\t\t204, 69, 58, 104, 183, 234, 32, 83, 127, 44, 15, 100, 135,\n\t\t145, 164, 217, 104, 208, 150, 52, 169, 49, 197, 6, 218, 163,\n\t\t44, 142, 122, 139, 18, 110, 205, 195, 64, 74, 39, 137, 86,\n\t\t24, 244, 179, 124, 42, 208, 197, 237, 86, 202, 109, 24, 101,\n\t\t255, 21, 83, 65, 132, 78, 21, 198, 117, 208, 101, 231, 248,\n\t\t248, 51, 175, 62, 243, 204, 171, 219, 156, 185, 235, 40, 165,\n\t\t64, 131, 32, 91, 50, 8, 230, 98, 183, 231, 19, 234, 211, 154,\n\t\t7, 68, 104, 176, 112, 29, 5, 1, 52, 112, 183, 45, 233, 20,\n\t\t235, 59, 93, 155, 80, 135, 86, 65, 8, 160, 205, 23, 225, 246,\n\t\t31, 130, 175, 82, 206, 136, 42, 152, 194, 212, 119, 140, 89,\n\t\t72, 255, 44, 175, 248, 153, 39, 177, 182, 203, 243, 242, 170,\n\t\t170, 1, 85, 116, 152, 59, 74, 129, 83, 223, 223, 182, 164,\n\t\t19, 204, 249, 46, 215, 199, 212, 163, 53, 7, 83, 47, 191,\n\t\t4, 66, 3, 127, 101, 17, 24, 253, 235, 103, 224, 229, 31, 192,\n\t\t19, 174, 243, 215, 49, 192, 175, 33, 19, 21, 80, 11, 205,\n\t\t35, 148, 73, 226, 121, 28, 197, 105, 98, 225, 88, 122, 203,\n\t\t228, 48, 209, 145, 150, 121, 54, 74, 82, 81, 131, 76, 138,\n\t\t84, 101, 207, 31, 109, 223, 147, 237, 217, 190, 179, 249,\n\t\t187, 209, 76, 187, 92, 140, 147, 184, 189, 188, 188, 127,\n\t\t25, 86, 155, 59, 142, 239, 60, 252, 112, 145, 84, 126, 47,\n\t\t56, 58, 187, 113, 246, 61, 211, 223, 126, 124, 126, 169, 217,\n\t\t217, 173, 131, 30, 54, 87, 227, 36, 94, 222, 191, 188, 252,\n\t\t228, 141, 175, 116, 59, 244, 23, 166, 78, 55, 159, 77, 103,\n\t\t148, 167, 172, 15, 158, 59, 188, 62, 121, 86, 126, 11, 222,\n\t\t128, 47, 162, 111, 163, 255, 130, 80, 39, 170, 2, 23, 75,\n\t\t146, 95, 32, 184, 141, 115, 243, 221, 162, 237, 86, 186, 20,\n\t\t45, 75, 203, 54, 77, 50, 46, 6, 50, 63, 208, 40, 27, 100,\n\t\t163, 172, 95, 133, 193, 40, 11, 170, 144, 239, 8, 226, 172,\n\t\t159, 63, 72, 253, 40, 94, 30, 197, 163, 44, 8, 199, 175, 150,\n\t\t24, 101, 189, 152, 139, 165, 124, 96, 137, 163, 56, 12, 66,\n\t\t41, 217, 59, 150, 6, 182, 33, 10, 115, 107, 92, 36, 105, 20,\n\t\t135, 249, 73, 150, 150, 101, 184, 132, 199, 81, 220, 78, 199,\n\t\t175, 26, 72, 79, 68, 196, 211, 164, 101, 177, 220, 234, 94,\n\t\t132, 48, 26, 43, 197, 141, 134, 185, 113, 222, 165, 249, 229,\n\t\t173, 227, 13, 224, 113, 20, 142, 149, 55, 182, 228, 119, 226,\n\t\t44, 232, 240, 112, 105, 4, 127, 134, 113, 5, 83, 38, 74, 142,\n\t\t143, 1, 19, 34, 128, 251, 133, 233, 120, 170, 133, 25, 169,\n\t\t20, 55, 106, 17, 161, 196, 81, 184, 234, 113, 14, 88, 3, 153,\n\t\t76, 71, 161, 210, 122, 6, 32, 188, 82, 38, 148, 171, 186,\n\t\t1, 121, 215, 69, 41, 197, 145, 74, 253, 14, 96, 133, 96, 202,\n\t\t137, 161, 73, 125, 92, 12, 64, 40, 161, 146, 201, 44, 229,\n\t\t125, 184, 224, 42, 198, 138, 200, 223, 80, 28, 221, 97, 101,\n\t\t151, 229, 237, 141, 48, 194, 169, 130, 203, 85, 33, 176, 229,\n\t\t155, 150, 97, 118, 119, 130, 214, 112, 169, 230, 42, 5, 92,\n\t\t51, 5, 152, 22, 231, 180, 94, 37, 140, 24, 44, 100, 4, 43,\n\t\t92, 101, 12, 216, 230, 183, 0, 254, 141, 174, 147, 193, 60,\n\t\t1, 93, 175, 121, 150, 2, 128, 69, 110, 153, 170, 66, 3, 12,\n\t\t170, 155, 236, 94, 26, 90, 198, 194, 140, 97, 182, 234, 154,\n\t\t160, 172, 16, 231, 151, 79, 0, 3, 5, 149, 153, 38, 16, 76,\n\t\t49, 103, 76, 163, 4, 64, 80, 0, 158, 79, 80, 9, 16, 171, 232,\n\t\t17, 194, 1, 176, 158, 95, 46, 16, 96, 124, 44, 251, 75, 169,\n\t\t16, 68, 170, 39, 227, 252, 88, 32, 220, 48, 84, 14, 140, 230,\n\t\t117, 98, 194, 128, 69, 92, 147, 105, 167, 8, 102, 96, 242,\n\t\t252, 24, 207, 224, 132, 236, 90, 40, 70, 126, 67, 247, 61,\n\t\t225, 227, 184, 29, 38, 173, 162, 34, 236, 106, 9, 44, 51,\n\t\t242, 149, 162, 160, 84, 55, 60, 223, 113, 56, 185, 21, 240,\n\t\t21, 159, 216, 235, 240, 63, 224, 18, 138, 101, 150, 168, 177,\n\t\t30, 74, 191, 151, 241, 118, 171, 45, 25, 100, 185, 93, 147,\n\t\t248, 60, 73, 215, 97, 144, 47, 226, 40, 128, 237, 107, 183,\n\t\t207, 154, 201, 218, 205, 195, 238, 254, 243, 10, 189, 235,\n\t\t197, 151, 46, 192, 109, 251, 23, 150, 234, 7, 106, 179, 217,\n\t\t104, 174, 126, 160, 126, 61, 252, 204, 225, 7, 158, 94, 186,\n\t\t174, 182, 193, 62, 114, 247, 133, 151, 54, 106, 155, 143,\n\t\t250, 36, 116, 238, 124, 250, 78, 39, 36, 254, 225, 63, 146,\n\t\t207, 231, 175, 99, 21, 254, 37, 106, 162, 89, 212, 67, 59,\n\t\t16, 130, 72, 52, 165, 45, 33, 211, 219, 164, 22, 140, 229,\n\t\t226, 70, 25, 23, 235, 16, 143, 162, 48, 96, 22, 212, 240,\n\t\t40, 75, 178, 254, 56, 73, 81, 22, 197, 19, 49, 35, 248, 139,\n\t\t68, 223, 252, 226, 226, 198, 94, 255, 189, 133, 119, 31, 222,\n\t\t223, 104, 173, 15, 235, 37, 111, 219, 245, 195, 125, 254,\n\t\t139, 39, 238, 120, 120, 243, 144, 103, 170, 113, 123, 38,\n\t\t62, 116, 230, 155, 181, 197, 210, 236, 218, 23, 247, 44, 216,\n\t\t86, 209, 46, 67, 99, 239, 161, 169, 190, 83, 104, 236, 61,\n\t\t102, 187, 46, 73, 218, 141, 19, 141, 11, 251, 163, 235, 79,\n\t\t62, 192, 230, 138, 219, 210, 239, 116, 182, 53, 125, 108,\n\t\t152, 179, 191, 94, 158, 47, 140, 62, 86, 58, 156, 212, 156,\n\t\t130, 181, 117, 223, 254, 61, 70, 146, 59, 213, 67, 40, 171,\n\t\t225, 184, 189, 21, 17, 224, 194, 194, 53, 232, 140, 205, 132,\n\t\t57, 24, 165, 82, 239, 86, 142, 68, 99, 29, 238, 44, 73, 23,\n\t\t116, 173, 18, 28, 183, 130, 192, 218, 30, 58, 102, 110, 0,\n\t\t195, 171, 249, 214, 96, 157, 189, 72, 178, 118, 108, 133,\n\t\t150, 38, 8, 51, 167, 70, 149, 23, 131, 198, 71, 22, 103, 119,\n\t\t229, 189, 253, 147, 86, 224, 23, 131, 165, 246, 122, 249,\n\t\t59, 129, 181, 249, 188, 21, 172, 93, 168, 173, 235, 138, 111,\n\t\t244, 247, 45, 174, 198, 122, 89, 24, 89, 181, 223, 28, 107,\n\t\t61, 212, 47, 127, 13, 62, 13, 95, 68, 135, 209, 121, 244,\n\t\t78, 244, 33, 132, 178, 100, 148, 141, 106, 16, 15, 183, 148,\n\t\t97, 36, 161, 73, 142, 207, 249, 144, 89, 193, 97, 52, 202,\n\t\t70, 19, 121, 7, 209, 230, 105, 50, 182, 106, 131, 220, 142,\n\t\t91, 151, 100, 29, 11, 119, 193, 31, 172, 203, 196, 14, 99,\n\t\t65, 37, 46, 120, 226, 75, 58, 183, 244, 159, 69, 97, 141,\n\t\t140, 210, 65, 150, 38, 178, 175, 205, 70, 145, 13, 113, 36,\n\t\t21, 141, 199, 18, 7, 23, 24, 214, 117, 102, 90, 176, 109,\n\t\t122, 122, 251, 245, 61, 69, 85, 170, 83, 133, 217, 21, 159,\n\t\t113, 134, 211, 179, 13, 9, 49, 77, 108, 14, 220, 178, 180,\n\t\t191, 81, 148, 55, 160, 243, 182, 147, 171, 157, 109, 7, 247,\n\t\t238, 88, 242, 170, 157, 249, 133, 174, 79, 243, 150, 31, 117,\n\t\t150, 246, 180, 185, 250, 23, 60, 96, 203, 207, 188, 227, 38,\n\t\t21, 108, 91, 27, 30, 186, 225, 134, 143, 5, 30, 161, 42, 198,\n\t\t129, 71, 29, 234, 185, 76, 103, 56, 160, 92, 37, 148, 177,\n\t\t123, 53, 149, 18, 94, 115, 110, 235, 100, 219, 166, 151, 87,\n\t\t109, 82, 33, 106, 173, 84, 77, 32, 226, 170, 109, 148, 163,\n\t\t69, 191, 96, 52, 146, 135, 210, 36, 177, 85, 141, 80, 229,\n\t\t75, 90, 237, 253, 211, 126, 235, 196, 112, 118, 95, 106, 90,\n\t\t203, 48, 203, 20, 65, 152, 81, 244, 169, 166, 184, 161, 139,\n\t\t77, 226, 109, 190, 198, 3, 190, 92, 74, 206, 111, 48, 65,\n\t\t216, 210, 225, 142, 82, 251, 97, 18, 120, 68, 17, 129, 199,\n\t\t28, 230, 185, 220, 12, 40, 215, 24, 67, 19, 94, 205, 151,\n\t\t224, 101, 180, 128, 70, 232, 24, 186, 27, 33, 216, 65, 186,\n\t\t172, 61, 11, 22, 22, 233, 86, 126, 192, 32, 170, 131, 72,\n\t\t210, 252, 62, 15, 7, 235, 36, 30, 74, 229, 199, 108, 20, 231,\n\t\t182, 155, 188, 195, 189, 184, 70, 165, 239, 50, 31, 229, 121,\n\t\t146, 173, 131, 76, 127, 176, 78, 100, 135, 157, 119, 9, 148,\n\t\t41, 42, 199, 204, 54, 109, 122, 248, 208, 122, 189, 91, 208,\n\t\t29, 69, 217, 150, 8, 179, 219, 91, 168, 150, 58, 253, 142,\n\t\t119, 83, 165, 234, 106, 63, 36, 166, 110, 90, 92, 186, 173,\n\t\t239, 16, 96, 184, 16, 101, 201, 206, 109, 135, 83, 194, 167,\n\t\t84, 131, 50, 204, 117, 202, 103, 77, 204, 20, 77, 103, 137,\n\t\t130, 41, 84, 169, 45, 76, 174, 50, 142, 49, 87, 3, 75, 76,\n\t\t239, 244, 42, 69, 253, 99, 102, 73, 136, 149, 41, 61, 44,\n\t\t98, 103, 174, 81, 157, 47, 216, 236, 230, 25, 146, 85, 85,\n\t\t173, 100, 127, 80, 45, 215, 103, 102, 124, 202, 192, 50, 75,\n\t\t154, 46, 124, 15, 64, 136, 80, 163, 132, 233, 9, 23, 18, 247,\n\t\t72, 9, 80, 141, 150, 101, 236, 199, 157, 240, 98, 85, 132,\n\t\t58, 237, 176, 237, 246, 67, 230, 182, 33, 184, 239, 39, 31,\n\t\t130, 222, 39, 31, 251, 56, 92, 186, 247, 212, 230, 166, 140,\n\t\t17, 253, 29, 124, 29, 158, 67, 9, 66, 48, 105, 84, 105, 151,\n\t\t180, 91, 34, 93, 167, 153, 116, 139, 111, 228, 143, 89, 194,\n\t\t197, 40, 142, 224, 18, 57, 115, 203, 70, 90, 230, 170, 97,\n\t\t184, 182, 202, 106, 161, 54, 29, 214, 34, 117, 96, 20, 60,\n\t\t167, 133, 43, 24, 135, 85, 187, 121, 235, 62, 72, 118, 61,\n\t\t242, 238, 67, 126, 123, 97, 102, 201, 13, 203, 74, 199, 43,\n\t\t104, 192, 142, 252, 152, 99, 15, 241, 66, 28, 250, 132, 63,\n\t\t72, 240, 53, 241, 3, 109, 28, 191, 232, 164, 89, 59, 22, 177,\n\t\t140, 80, 236, 216, 185, 243, 213, 157, 59, 207, 193, 203,\n\t\t155, 59, 223, 247, 234, 169, 83, 175, 158, 121, 107, 126,\n\t\t134, 121, 180, 129, 142, 141, 143, 147, 233, 239, 178, 177,\n\t\t53, 34, 147, 240, 245, 164, 238, 195, 56, 228, 49, 88, 131,\n\t\t126, 214, 30, 100, 185, 169, 30, 247, 135, 105, 107, 48, 28,\n\t\t172, 65, 91, 196, 99, 113, 136, 13, 72, 37, 142, 91, 200,\n\t\t96, 179, 140, 142, 124, 137, 11, 210, 111, 215, 74, 77, 175,\n\t\t18, 113, 17, 62, 55, 79, 97, 69, 223, 11, 88, 185, 241, 130,\n\t\t67, 142, 139, 34, 23, 225, 137, 136, 150, 29, 213, 41, 211,\n\t\t72, 21, 141, 186, 144, 209, 141, 62, 213, 84, 94, 143, 172,\n\t\t122, 49, 236, 144, 119, 8, 192, 165, 34, 5, 130, 241, 59,\n\t\t59, 24, 23, 52, 77, 252, 77, 81, 142, 83, 63, 94, 227, 152,\n\t\t63, 200, 129, 252, 167, 130, 86, 169, 104, 133, 166, 226,\n\t\t186, 138, 252, 108, 214, 229, 55, 224, 111, 224, 103, 209,\n\t\t44, 218, 134, 14, 200, 108, 75, 189, 104, 76, 97, 30, 211,\n\t\t143, 179, 174, 156, 92, 142, 164, 144, 197, 168, 63, 22, 165,\n\t\t75, 134, 169, 136, 226, 17, 187, 42, 126, 103, 65, 44, 101,\n\t\t187, 90, 99, 245, 136, 94, 118, 117, 102, 55, 120, 181, 92,\n\t\t83, 11, 228, 125, 167, 183, 221, 177, 66, 138, 106, 173, 28,\n\t\t57, 219, 174, 175, 99, 245, 14, 35, 118, 227, 216, 117, 226,\n\t\t211, 149, 227, 219, 156, 205, 127, 95, 112, 20, 91, 227, 177,\n\t\t163, 123, 250, 191, 21, 66, 136, 240, 129, 144, 11, 33, 202,\n\t\t239, 45, 235, 158, 94, 112, 156, 56, 254, 159, 201, 178, 161,\n\t\t91, 27, 103, 102, 246, 205, 154, 186, 185, 148, 58, 211, 228,\n\t\t3, 42, 142, 162, 184, 25, 199, 78, 240, 20, 73, 237, 251,\n\t\t156, 152, 235, 150, 226, 198, 186, 119, 111, 126, 112, 24,\n\t\t10, 33, 120, 229, 6, 205, 211, 221, 56, 175, 99, 220, 247,\n\t\t23, 47, 255, 54, 252, 39, 248, 53, 132, 37, 6, 101, 105, 153,\n\t\t133, 205, 124, 96, 10, 45, 104, 165, 93, 24, 230, 243, 182,\n\t\t254, 168, 139, 37, 49, 64, 246, 182, 113, 84, 130, 223, 217,\n\t\t252, 6, 172, 223, 124, 174, 86, 60, 118, 103, 58, 216, 139,\n\t\t159, 40, 41, 191, 68, 252, 90, 93, 55, 14, 188, 115, 202,\n\t\t120, 226, 174, 157, 247, 214, 170, 127, 234, 12, 22, 70, 170,\n\t\t31, 221, 103, 135, 118, 112, 231, 232, 185, 109, 205, 110,\n\t\t109, 46, 208, 1, 31, 24, 220, 250, 3, 171, 163, 193, 86, 158,\n\t\t152, 63, 148, 26, 162, 17, 90, 24, 223, 113, 73, 164, 144,\n\t\t93, 68, 50, 129, 13, 198, 111, 162, 36, 99, 233, 80, 24, 179,\n\t\t119, 225, 179, 182, 105, 56, 122, 233, 230, 112, 215, 233,\n\t\t222, 133, 151, 94, 186, 112, 224, 225, 246, 107, 63, 185,\n\t\t54, 119, 253, 250, 205, 55, 175, 31, 92, 88, 173, 223, 154,\n\t\t221, 242, 204, 51, 183, 108, 191, 243, 127, 149, 202, 243,\n\t\t119, 124, 162, 187, 39, 121, 233, 247, 94, 58, 180, 235, 161,\n\t\t183, 215, 15, 222, 188, 190, 126, 243, 70, 123, 113, 248,\n\t\t204, 175, 62, 179, 42, 191, 123, 101, 194, 19, 188, 146, 119,\n\t\t164, 19, 135, 169, 63, 118, 233, 12, 253, 76, 180, 225, 238,\n\t\t206, 251, 255, 249, 141, 63, 25, 63, 245, 127, 187, 179, 255,\n\t\t247, 169, 111, 253, 94, 225, 91, 55, 193, 174, 31, 188, 61,\n\t\t249, 200, 246, 218, 183, 54, 255, 239, 246, 127, 129, 8, 242,\n\t\t46, 95, 130, 255, 6, 191, 129, 206, 160, 183, 161, 119, 230,\n\t\t159, 69, 210, 57, 164, 142, 82, 91, 106, 139, 203, 200, 250,\n\t\t91, 255, 247, 135, 201, 96, 20, 5, 34, 204, 63, 171, 148,\n\t\t240, 171, 66, 208, 110, 229, 227, 86, 248, 15, 28, 209, 145,\n\t\t56, 241, 177, 39, 55, 187, 106, 29, 254, 138, 125, 177, 53,\n\t\t219, 250, 34, 43, 179, 169, 201, 171, 163, 171, 142, 163,\n\t\t153, 58, 143, 24, 115, 49, 45, 243, 128, 235, 182, 209, 161,\n\t\t21, 218, 145, 37, 54, 255, 31, 43, 51, 86, 102, 31, 27, 255,\n\t\t123, 153, 254, 233, 237, 165, 106, 181, 116, 251, 159, 82,\n\t\t218, 248, 101, 74, 27, 13, 249, 122, 152, 6, 138, 18, 80,\n\t\t150, 119, 114, 59, 20, 74, 147, 173, 55, 232, 47, 55, 40,\n\t\t219, 73, 233, 78, 54, 94, 78, 226, 222, 127, 135, 159, 133,\n\t\t231, 209, 25, 132, 166, 2, 201, 156, 205, 7, 223, 118, 13,\n\t\t175, 194, 228, 67, 140, 221, 202, 249, 136, 59, 7, 19, 167,\n\t\t79, 254, 69, 247, 162, 117, 150, 173, 147, 184, 183, 149,\n\t\t255, 110, 162, 187, 149, 63, 82, 162, 57, 28, 140, 234, 128,\n\t\t159, 101, 103, 8, 198, 152, 253, 55, 165, 20, 153, 101, 245,\n\t\t140, 170, 158, 81, 203, 197, 52, 40, 89, 111, 227, 73, 177,\n\t\t58, 59, 91, 45, 38, 156, 185, 204, 160, 170, 162, 114, 43,\n\t\t44, 122, 129, 160, 188, 236, 234, 129, 165, 218, 5, 219, 45,\n\t\t243, 154, 25, 149, 84, 24, 169, 236, 204, 111, 106, 100, 8,\n\t\t128, 217, 148, 185, 163, 85, 206, 43, 82, 203, 243, 163, 249,\n\t\t184, 54, 187, 125, 182, 22, 3, 0, 83, 44, 223, 172, 183, 108,\n\t\t2, 78, 160, 90, 129, 110, 21, 173, 192, 110, 238, 48, 219,\n\t\t140, 147, 209, 216, 151, 243, 166, 230, 169, 141, 138, 50,\n\t\t30, 32, 9, 82, 91, 90, 28, 209, 32, 145, 36, 170, 126, 15,\n\t\t246, 71, 246, 254, 253, 246, 111, 75, 131, 211, 237, 79, 189,\n\t\t167, 183, 127, 234, 127, 213, 163, 195, 85, 105, 40, 254,\n\t\t159, 131, 253, 239, 30, 150, 156, 238, 9, 62, 194, 71, 25,\n\t\t218, 143, 78, 34, 212, 25, 167, 66, 152, 32, 154, 228, 227,\n\t\t39, 198, 29, 77, 42, 117, 125, 178, 137, 243, 83, 76, 148,\n\t\t199, 198, 15, 199, 148, 212, 96, 74, 228, 4, 104, 29, 98,\n\t\t126, 237, 38, 252, 92, 216, 10, 86, 210, 205, 63, 91, 220,\n\t\t157, 205, 186, 167, 71, 187, 110, 183, 116, 223, 82, 125,\n\t\t27, 83, 90, 112, 25, 63, 60, 232, 108, 216, 181, 72, 83, 66,\n\t\t61, 172, 230, 183, 20, 155, 29, 161, 27, 134, 168, 213, 20,\n\t\t35, 82, 91, 101, 174, 155, 134, 8, 2, 97, 132, 234, 95, 210,\n\t\t114, 26, 165, 43, 123, 186, 115, 27, 188, 191, 113, 250, 117,\n\t\t197, 242, 117, 167, 204, 77, 211, 160, 142, 25, 4, 131, 195,\n\t\t51, 77, 37, 82, 99, 174, 132, 51, 171, 51, 239, 121, 97, 69,\n\t\t141, 244, 133, 7, 23, 244, 16, 235, 135, 238, 152, 86, 35,\n\t\t189, 114, 176, 170, 69, 160, 141, 231, 160, 191, 15, 207,\n\t\t194, 47, 160, 50, 218, 190, 133, 133, 27, 213, 112, 44, 210,\n\t\t44, 17, 121, 223, 41, 231, 4, 50, 196, 41, 243, 114, 181,\n\t\t249, 34, 100, 177, 144, 194, 93, 195, 129, 100, 181, 15, 70,\n\t\t241, 104, 182, 112, 219, 161, 214, 142, 161, 27, 244, 59,\n\t\t229, 149, 61, 51, 7, 170, 205, 216, 7, 63, 58, 0, 211, 154,\n\t\t137, 69, 228, 12, 110, 120, 232, 6, 123, 173, 221, 220, 121,\n\t\t252, 124, 9, 87, 91, 81, 0, 179, 213, 228, 55, 170, 253, 67,\n\t\t199, 193, 172, 27, 246, 193, 66, 218, 129, 217, 118, 65, 21,\n\t\t161, 63, 242, 99, 22, 24, 83, 179, 115, 51, 246, 60, 28, 178,\n\t\t14, 86, 210, 165, 93, 156, 23, 20, 37, 242, 202, 213, 105,\n\t\t12, 82, 199, 241, 18, 188, 12, 151, 16, 70, 12, 149, 228,\n\t\t40, 46, 82, 55, 139, 179, 32, 183, 125, 187, 120, 48, 78,\n\t\t143, 35, 178, 52, 76, 183, 70, 184, 206, 28, 192, 236, 147,\n\t\t122, 161, 54, 223, 173, 117, 247, 108, 171, 86, 179, 189,\n\t\t11, 243, 187, 251, 165, 79, 93, 255, 212, 225, 242, 173, 183,\n\t\t150, 15, 227, 31, 128, 112, 238, 212, 230, 223, 158, 154,\n\t\t59, 211, 191, 62, 75, 66, 53, 26, 221, 243, 241, 251, 86,\n\t\t10, 133, 109, 23, 174, 59, 253, 194, 231, 15, 149, 110, 59,\n\t\t87, 62, 244, 79, 47, 202, 246, 87, 188, 124, 9, 82, 184, 132,\n\t\t116, 100, 33, 119, 236, 133, 150, 9, 219, 226, 97, 220, 78,\n\t\t171, 56, 251, 250, 157, 63, 74, 78, 213, 31, 124, 176, 126,\n\t\t234, 163, 131, 94, 239, 203, 23, 62, 254, 141, 83, 141, 7,\n\t\t31, 108, 156, 250, 189, 159, 238, 221, 125, 255, 221, 61,\n\t\t153, 59, 237, 239, 46, 255, 107, 76, 225, 23, 17, 151, 181,\n\t\t248, 18, 139, 27, 45, 183, 179, 81, 143, 100, 126, 154, 100,\n\t\t125, 210, 137, 108, 240, 211, 56, 223, 117, 223, 182, 231,\n\t\t87, 136, 117, 79, 245, 207, 191, 171, 255, 227, 47, 223, 134,\n\t\t46, 83, 253, 187, 127, 190, 178, 242, 252, 54, 108, 193, 231,\n\t\t94, 121, 69, 108, 254, 205, 233, 205, 63, 126, 85, 125, 219,\n\t\t230, 31, 255, 158, 169, 190, 10, 201, 43, 175, 188, 34, 242,\n\t\t118, 29, 92, 126, 3, 190, 3, 47, 75, 77, 217, 25, 217, 211,\n\t\t215, 198, 79, 126, 58, 11, 237, 113, 2, 208, 81, 214, 133,\n\t\t117, 220, 171, 97, 222, 233, 15, 219, 241, 144, 39, 105, 88,\n\t\t131, 180, 63, 108, 195, 55, 3, 90, 202, 218, 181, 204, 102,\n\t\t1, 179, 179, 90, 59, 43, 209, 32, 102, 205, 181, 179, 247,\n\t\t156, 93, 107, 178, 205, 143, 207, 206, 254, 209, 194, 219,\n\t\t102, 146, 7, 31, 250, 236, 103, 159, 46, 172, 44, 214, 75,\n\t\t133, 66, 169, 190, 184, 82, 72, 110, 58, 188, 218, 110, 175,\n\t\t30, 190, 105, 97, 251, 143, 196, 142, 215, 40, 182, 188, 251,\n\t\t183, 79, 180, 120, 254, 253, 21, 172, 203, 88, 173, 106, 17,\n\t\t245, 209, 72, 98, 31, 223, 226, 189, 36, 238, 96, 14, 242,\n\t\t219, 218, 110, 133, 110, 208, 111, 246, 96, 2, 76, 219, 128,\n\t\t54, 123, 115, 213, 15, 219, 67, 184, 84, 244, 54, 63, 225,\n\t\t21, 139, 30, 220, 239, 21, 59, 92, 125, 199, 218, 218, 59,\n\t\t84, 206, 225, 126, 190, 249, 255, 14, 29, 58, 116, 211, 232,\n\t\t113, 240, 190, 254, 245, 175, 63, 188, 243, 241, 15, 220,\n\t\t5, 143, 189, 89, 180, 184, 249, 60, 220, 207, 175, 235, 245,\n\t\t174, 227, 155, 159, 224, 0, 157, 206, 225, 36, 249, 216, 252,\n\t\t99, 147, 255, 155, 255, 187, 211, 185, 22, 243, 81, 68, 203,\n\t\t8, 185, 189, 26, 181, 32, 140, 219, 105, 203, 194, 93, 156,\n\t\t118, 105, 156, 240, 58, 140, 101, 240, 135, 163, 177, 170,\n\t\t48, 61, 245, 254, 227, 195, 80, 112, 113, 162, 180, 159, 151,\n\t\t227, 102, 163, 147, 248, 165, 118, 193, 42, 237, 141, 177,\n\t\t166, 70, 83, 182, 119, 224, 80, 2, 166, 41, 58, 35, 203, 168,\n\t\t22, 167, 225, 229, 202, 252, 250, 218, 190, 229, 37, 118,\n\t\t195, 1, 70, 8, 85, 3, 59, 236, 238, 218, 246, 32, 209, 168,\n\t\t34, 236, 249, 74, 243, 197, 186, 3, 160, 42, 188, 124, 161,\n\t\t20, 206, 23, 235, 232, 45, 57, 13, 235, 232, 62, 132, 252,\n\t\t96, 156, 56, 73, 118, 90, 163, 254, 247, 4, 224, 248, 32,\n\t\t201, 187, 42, 139, 9, 25, 94, 107, 183, 44, 44, 85, 54, 250,\n\t\t189, 144, 47, 115, 193, 23, 97, 176, 78, 150, 175, 166, 201,\n\t\t140, 178, 117, 42, 97, 14, 253, 94, 252, 247, 84, 85, 192,\n\t\t116, 44, 223, 87, 184, 249, 27, 87, 187, 138, 119, 70, 148,\n\t\t81, 166, 170, 92, 167, 38, 0, 88, 123, 139, 115, 37, 203,\n\t\t136, 26, 33, 96, 10, 162, 234, 16, 224, 138, 194, 171, 66,\n\t\t49, 21, 106, 22, 156, 86, 95, 197, 100, 76, 131, 110, 22,\n\t\t89, 3, 230, 52, 103, 126, 154, 85, 188, 226, 146, 70, 251,\n\t\t87, 57, 145, 127, 95, 105, 1, 1, 130, 57, 40, 0, 98, 195,\n\t\t221, 40, 116, 102, 103, 26, 161, 1, 176, 67, 231, 22, 21,\n\t\t166, 194, 41, 51, 52, 199, 21, 78, 209, 90, 153, 226, 134,\n\t\t194, 41, 1, 0, 151, 229, 223, 89, 222, 71, 92, 130, 75, 232,\n\t\t32, 186, 99, 130, 80, 109, 231, 163, 187, 165, 108, 65, 221,\n\t\t38, 41, 126, 233, 216, 58, 202, 6, 173, 55, 1, 112, 50, 173,\n\t\t116, 188, 46, 250, 61, 73, 239, 197, 249, 113, 50, 72, 217,\n\t\t223, 142, 215, 177, 204, 205, 209, 22, 61, 117, 122, 136,\n\t\t199, 57, 169, 8, 197, 246, 13, 163, 233, 110, 53, 54, 22,\n\t\t133, 102, 104, 220, 175, 68, 14, 199, 234, 238, 67, 157, 27,\n\t\t70, 83, 75, 197, 8, 3, 113, 185, 173, 88, 154, 37, 248, 103,\n\t\t25, 16, 85, 232, 122, 189, 174, 196, 30, 112, 202, 8, 6, 243,\n\t\t191, 226, 76, 48, 165, 12, 249, 199, 229, 154, 225, 106, 43,\n\t\t103, 150, 211, 226, 200, 87, 128, 10, 221, 112, 213, 0, 195,\n\t\t108, 109, 129, 30, 216, 189, 112, 122, 87, 176, 48, 85, 185,\n\t\t71, 3, 172, 82, 133, 48, 140, 143, 151, 92, 174, 170, 148,\n\t\t187, 71, 167, 189, 90, 17, 128, 144, 13, 132, 200, 229, 205,\n\t\t203, 95, 133, 175, 192, 37, 196, 208, 50, 218, 143, 16, 132,\n\t\t73, 42, 61, 213, 53, 144, 80, 184, 46, 72, 235, 154, 139,\n\t\t173, 44, 107, 241, 58, 25, 14, 210, 49, 8, 127, 52, 28, 248,\n\t\t181, 177, 231, 55, 27, 73, 4, 180, 148, 82, 130, 160, 216,\n\t\t173, 119, 166, 162, 192, 36, 197, 114, 255, 83, 253, 105,\n\t\t39, 57, 179, 218, 172, 234, 56, 46, 109, 63, 86, 233, 55,\n\t\t219, 203, 177, 10, 254, 67, 116, 245, 250, 59, 139, 120, 49,\n\t\t169, 148, 175, 43, 114, 176, 119, 119, 140, 192, 92, 154,\n\t\t133, 89, 56, 124, 52, 56, 253, 25, 106, 214, 247, 28, 174,\n\t\t174, 172, 204, 62, 124, 219, 110, 61, 140, 212, 155, 182,\n\t\t183, 86, 83, 110, 237, 58, 121, 52, 45, 24, 217, 182, 23,\n\t\t247, 2, 220, 176, 90, 131, 250, 212, 93, 135, 74, 51, 115,\n\t\t166, 104, 246, 20, 63, 168, 5, 134, 85, 124, 107, 155, 223,\n\t\t153, 143, 212, 223, 39, 55, 125, 58, 54, 31, 210, 254, 104,\n\t\t56, 72, 135, 93, 156, 70, 113, 32, 83, 207, 111, 169, 25,\n\t\t141, 198, 32, 88, 137, 55, 234, 141, 18, 137, 33, 10, 131,\n\t\t120, 29, 50, 137, 103, 186, 154, 14, 244, 87, 69, 205, 48,\n\t\t45, 177, 220, 193, 123, 117, 172, 5, 102, 213, 225, 86, 61,\n\t\t170, 165, 203, 83, 142, 133, 133, 31, 116, 86, 10, 122, 161,\n\t\t113, 215, 142, 66, 21, 28, 165, 84, 83, 76, 37, 158, 81, 169,\n\t\t211, 117, 222, 194, 253, 249, 116, 249, 96, 73, 16, 39, 232,\n\t\t244, 97, 238, 228, 84, 11, 220, 118, 83, 93, 238, 10, 187,\n\t\t184, 56, 154, 86, 249, 82, 99, 106, 200, 45, 83, 204, 172,\n\t\t238, 47, 181, 127, 181, 187, 30, 251, 182, 42, 76, 223, 212,\n\t\t89, 61, 160, 74, 185, 228, 92, 147, 183, 231, 222, 171, 52,\n\t\t55, 71, 105, 151, 166, 237, 177, 8, 200, 68, 126, 83, 180,\n\t\t210, 81, 218, 197, 237, 165, 214, 114, 203, 146, 57, 208,\n\t\t243, 169, 160, 84, 174, 168, 145, 56, 18, 22, 21, 60, 140,\n\t\t228, 250, 88, 187, 58, 202, 164, 184, 177, 4, 98, 225, 108,\n\t\t52, 209, 226, 252, 89, 162, 152, 5, 203, 36, 121, 147, 196,\n\t\t46, 5, 87, 83, 184, 34, 8, 38, 66, 41, 55, 60, 174, 184, 229,\n\t\t162, 80, 40, 161, 66, 165, 170, 66, 2, 80, 57, 199, 152, 2,\n\t\t53, 236, 216, 228, 48, 63, 166, 220, 11, 236, 10, 207, 175,\n\t\t132, 81, 217, 247, 20, 7, 11, 41, 125, 144, 78, 162, 163,\n\t\t255, 63, 21, 99, 203, 244, 4, 81, 24, 103, 88, 104, 10, 205,\n\t\t43, 192, 59, 92, 175, 96, 16, 173, 224, 186, 59, 48, 197,\n\t\t152, 83, 93, 0, 193, 12, 51, 133, 8, 207, 50, 49, 8, 75, 0,\n\t\t97, 12, 115, 98, 249, 0, 190, 69, 56, 86, 24, 112, 25, 195,\n\t\t249, 93, 140, 225, 243, 232, 65, 25, 223, 11, 198, 178, 48,\n\t\t227, 200, 145, 4, 205, 73, 68, 107, 218, 197, 121, 163, 88,\n\t\t202, 155, 52, 207, 150, 134, 163, 180, 75, 36, 112, 78, 250,\n\t\t44, 147, 65, 182, 78, 250, 75, 189, 188, 23, 136, 163, 64,\n\t\t76, 164, 76, 37, 210, 141, 11, 30, 7, 203, 53, 42, 197, 5,\n\t\t149, 29, 152, 0, 81, 105, 65, 247, 3, 111, 186, 85, 155, 245,\n\t\t2, 95, 43, 17, 53, 239, 177, 156, 66, 5, 84, 171, 236, 123,\n\t\t186, 74, 128, 19, 172, 169, 22, 84, 9, 142, 21, 75, 227, 148,\n\t\t40, 70, 103, 186, 100, 168, 80, 94, 156, 49, 20, 66, 153,\n\t\t102, 104, 186, 93, 194, 172, 72, 9, 7, 238, 135, 83, 62, 99,\n\t\t153, 167, 130, 162, 83, 149, 169, 70, 21, 147, 154, 161, 50,\n\t\t149, 24, 10, 96, 110, 171, 160, 2, 209, 109, 207, 118, 56,\n\t\t6, 93, 48, 65, 40, 24, 142, 170, 81, 142, 11, 135, 252, 210,\n\t\t148, 205, 188, 78, 217, 63, 84, 192, 156, 49, 102, 90, 58,\n\t\t128, 162, 9, 29, 168, 94, 10, 67, 2, 234, 91, 242, 188, 188,\n\t\t253, 251, 229, 195, 76, 187, 124, 248, 253, 218, 20, 188,\n\t\t165, 77, 229, 247, 99, 41, 191, 77, 87, 218, 20, 254, 7, 218,\n\t\t212, 53, 12, 187, 179, 68, 209, 60, 195, 16, 2, 127, 79, 211,\n\t\t50, 186, 229, 171, 91, 22, 179, 129, 4, 150, 114, 109, 187,\n\t\t194, 255, 96, 179, 186, 246, 145, 251, 77, 21, 131, 146, 223,\n\t\t91, 130, 223, 218, 192, 74, 149, 173, 246, 69, 4, 215, 5,\n\t\t99, 228, 154, 198, 197, 148, 239, 105, 91, 111, 230, 88, 211,\n\t\t100, 190, 98, 225, 231, 67, 106, 222, 192, 192, 89, 206, 111,\n\t\t222, 58, 228, 31, 52, 255, 99, 89, 163, 1, 251, 151, 225,\n\t\t192, 190, 31, 90, 62, 3, 167, 247, 47, 111, 126, 209, 236,\n\t\t135, 250, 98, 219, 244, 10, 161, 162, 212, 91, 157, 102, 89,\n\t\t169, 238, 128, 131, 203, 251, 163, 179, 219, 238, 1, 123,\n\t\t243, 139, 203, 251, 221, 68, 103, 129, 111, 120, 131, 131,\n\t\t110, 48, 211, 168, 134, 14, 69, 136, 35, 122, 249, 18, 124,\n\t\t25, 46, 33, 36, 57, 5, 55, 162, 51, 232, 46, 132, 54, 160,\n\t\t23, 139, 44, 186, 250, 21, 6, 34, 141, 249, 213, 175, 86,\n\t\t154, 137, 228, 234, 215, 112, 144, 197, 233, 232, 234, 87,\n\t\t236, 202, 73, 115, 42, 194, 56, 35, 113, 40, 210, 225, 148,\n\t\t244, 149, 244, 70, 195, 129, 249, 251, 134, 70, 163, 208,\n\t\t175, 46, 184, 102, 111, 77, 227, 59, 247, 2, 236, 217, 201,\n\t\t245, 181, 158, 225, 45, 84, 221, 56, 162, 122, 164, 231, 5,\n\t\t106, 11, 174, 213, 95, 51, 88, 94, 96, 239, 78, 102, 172,\n\t\t245, 77, 111, 161, 230, 135, 17, 209, 190, 253, 39, 127, 242,\n\t\t39, 255, 82, 254, 124, 249, 203, 95, 6, 248, 192, 157, 119,\n\t\t126, 224, 206, 63, 121, 254, 170, 82, 94, 28, 81, 213, 52,\n\t\t213, 201, 137, 172, 254, 154, 206, 119, 237, 219, 170, 199,\n\t\t240, 23, 106, 65, 24, 81, 83, 213, 117, 26, 7, 129, 60, 211,\n\t\t186, 158, 159, 169, 126, 25, 93, 188, 8, 232, 226, 7, 30,\n\t\t123, 236, 191, 60, 254, 56, 28, 127, 232, 79, 222, 254, 246,\n\t\t63, 94, 189, 115, 255, 190, 187, 238, 218, 183, 127, 60, 70,\n\t\t252, 1, 92, 130, 127, 134, 124, 212, 69, 219, 16, 242, 251,\n\t\t162, 61, 70, 91, 245, 195, 113, 88, 121, 29, 178, 190, 165,\n\t\t10, 46, 134, 235, 48, 204, 242, 105, 81, 218, 143, 51, 183,\n\t\t61, 202, 250, 238, 32, 205, 162, 91, 94, 19, 95, 168, 206,\n\t\t205, 205, 24, 157, 81, 97, 118, 115, 143, 63, 93, 40, 217,\n\t\t142, 166, 169, 170, 168, 45, 53, 235, 160, 85, 74, 254, 122,\n\t\t239, 219, 223, 210, 240, 23, 151, 197, 26, 188, 203, 159,\n\t\t169, 254, 94, 117, 198, 31, 118, 126, 183, 48, 83, 88, 233,\n\t\t221, 183, 115, 95, 50, 29, 134, 166, 193, 235, 184, 207, 186,\n\t\t5, 208, 203, 7, 118, 45, 255, 244, 139, 155, 223, 178, 24,\n\t\t196, 93, 215, 11, 36, 63, 250, 18, 70, 112, 9, 105, 232, 52,\n\t\t186, 11, 61, 134, 158, 71, 31, 69, 159, 66, 255, 20, 253,\n\t\t11, 244, 135, 8, 121, 185, 21, 59, 54, 196, 89, 192, 101,\n\t\t82, 238, 9, 49, 110, 172, 249, 54, 246, 141, 141, 7, 232,\n\t\t36, 141, 50, 9, 5, 31, 179, 129, 36, 2, 120, 89, 14, 238,\n\t\t242, 65, 12, 132, 76, 42, 63, 222, 152, 26, 127, 189, 121,\n\t\t79, 24, 15, 178, 9, 5, 96, 204, 164, 228, 137, 152, 164, 227,\n\t\t144, 114, 212, 195, 108, 28, 31, 201, 239, 154, 220, 74, 190,\n\t\t255, 250, 4, 16, 148, 201, 144, 188, 28, 92, 199, 127, 146,\n\t\t0, 52, 22, 197, 145, 116, 130, 26, 136, 209, 235, 154, 163,\n\t\t82, 133, 41, 144, 248, 174, 123, 172, 4, 138, 169, 56, 170,\n\t\t218, 80, 149, 134, 170, 58, 170, 41, 74, 245, 86, 201, 182,\n\t\t27, 193, 84, 125, 100, 9, 213, 155, 138, 93, 206, 57, 112,\n\t\t8, 139, 7, 82, 77, 113, 139, 177, 11, 166, 195, 22, 12, 161,\n\t\t153, 118, 105, 243, 203, 94, 197, 87, 108, 205, 106, 40, 190,\n\t\t8, 22, 106, 141, 10, 13, 153, 50, 200, 102, 12, 215, 32, 92,\n\t\t80, 213, 88, 102, 26, 83, 13, 195, 53, 150, 117, 215, 48,\n\t\t92, 189, 103, 184, 186, 238, 26, 71, 157, 197, 141, 230, 254,\n\t\t179, 188, 214, 105, 169, 110, 126, 126, 69, 205, 207, 239,\n\t\t42, 141, 196, 232, 207, 44, 180, 102, 110, 224, 181, 48, 86,\n\t\t200, 2, 156, 119, 77, 83, 225, 170, 248, 64, 227, 122, 223,\n\t\t91, 80, 26, 170, 165, 88, 242, 71, 181, 213, 32, 6, 166, 150,\n\t\t21, 63, 107, 58, 181, 176, 55, 156, 178, 21, 1, 28, 90, 141,\n\t\t4, 60, 7, 83, 139, 9, 204, 166, 247, 42, 86, 244, 174, 106,\n\t\t28, 219, 170, 163, 127, 168, 216, 172, 238, 30, 181, 3, 75,\n\t\t137, 176, 86, 250, 166, 106, 24, 106, 131, 9, 78, 77, 181,\n\t\t193, 85, 110, 168, 141, 252, 73, 104, 200, 221, 215, 174,\n\t\t253, 70, 173, 91, 190, 239, 96, 177, 216, 91, 239, 158, 170,\n\t\t186, 182, 252, 113, 202, 199, 62, 50, 187, 49, 245, 34, 195,\n\t\t44, 240, 103, 208, 53, 185, 159, 5, 234, 228, 86, 202, 21,\n\t\t252, 146, 116, 131, 166, 237, 176, 63, 14, 182, 76, 252, 121,\n\t\t99, 143, 69, 231, 77, 233, 164, 254, 120, 216, 255, 124, 59,\n\t\t171, 226, 199, 246, 147, 153, 146, 83, 9, 141, 133, 70, 45,\n\t\t104, 182, 150, 251, 135, 14, 65, 169, 221, 158, 154, 154,\n\t\t154, 154, 12, 221, 127, 81, 207, 218, 186, 54, 87, 168, 154,\n\t\t97, 197, 105, 116, 253, 102, 227, 208, 61, 135, 238, 159,\n\t\t106, 183, 167, 218, 215, 142, 47, 107, 223, 103, 124, 145,\n\t\t146, 200, 237, 214, 36, 72, 52, 28, 77, 18, 80, 198, 19, 58,\n\t\t255, 104, 13, 70, 189, 173, 193, 99, 4, 31, 14, 106, 181,\n\t\t96, 243, 51, 249, 18, 186, 10, 76, 155, 10, 235, 20, 42, 45,\n\t\t76, 204, 160, 226, 155, 134, 98, 211, 188, 247, 79, 170, 238,\n\t\t172, 25, 53, 4, 188, 124, 165, 240, 185, 160, 182, 249, 151,\n\t\t63, 172, 56, 216, 178, 48, 248, 170, 107, 249, 190, 229, 104,\n\t\t127, 162, 24, 22, 0, 93, 0, 112, 93, 139, 32, 29, 105, 151,\n\t\t47, 193, 175, 194, 37, 180, 27, 237, 71, 135, 209, 49, 116,\n\t\t3, 58, 133, 206, 162, 187, 208, 5, 244, 14, 244, 168, 68,\n\t\t221, 7, 237, 220, 52, 154, 252, 139, 243, 127, 237, 100, 57,\n\t\t55, 243, 54, 32, 25, 202, 229, 34, 36, 27, 208, 235, 199,\n\t\t81, 24, 7, 54, 196, 189, 48, 206, 70, 117, 200, 198, 226,\n\t\t203, 145, 13, 113, 70, 68, 156, 165, 241, 34, 248, 241, 34,\n\t\t212, 97, 17, 164, 254, 114, 60, 76, 243, 226, 209, 6, 136,\n\t\t88, 138, 50, 71, 54, 108, 128, 13, 240, 43, 160, 65, 134,\n\t\t113, 128, 97, 15, 198, 21, 12, 55, 1, 224, 93, 216, 6, 236,\n\t\t149, 67, 32, 229, 4, 202, 64, 222, 135, 225, 44, 230, 184,\n\t\t53, 133, 161, 13, 184, 0, 176, 138, 97, 63, 252, 206, 219,\n\t\t172, 91, 140, 247, 6, 247, 191, 118, 200, 63, 190, 109, 167,\n\t\t185, 127, 110, 187, 182, 126, 236, 122, 122, 242, 92, 185,\n\t\t6, 81, 1, 159, 167, 187, 225, 52, 223, 9, 51, 24, 240, 97,\n\t\t165, 207, 254, 12, 14, 226, 121, 0, 171, 137, 71, 24, 23,\n\t\t186, 120, 15, 192, 62, 56, 134, 65, 47, 194, 221, 24, 155,\n\t\t85, 252, 126, 12, 233, 60, 224, 231, 49, 184, 69, 220, 14,\n\t\t1, 156, 6, 192, 20, 64, 130, 217, 182, 59, 214, 192, 93, 252,\n\t\t193, 140, 110, 123, 255, 242, 230, 95, 175, 221, 182, 253,\n\t\t95, 173, 237, 221, 241, 220, 250, 254, 181, 249, 120, 111,\n\t\t44, 192, 14, 0, 246, 44, 238, 61, 188, 103, 186, 86, 6, 220,\n\t\t42, 111, 76, 237, 146, 115, 15, 113, 249, 13, 120, 13, 94,\n\t\t70, 37, 52, 200, 239, 174, 37, 33, 34, 147, 153, 185, 236,\n\t\t169, 164, 71, 63, 125, 19, 93, 216, 239, 101, 227, 216, 140,\n\t\t36, 58, 190, 10, 204, 153, 174, 172, 118, 182, 191, 235, 186,\n\t\t247, 28, 187, 254, 221, 135, 227, 146, 98, 10, 246, 136, 59,\n\t\t92, 89, 233, 247, 87, 124, 75, 24, 110, 104, 234, 138, 89,\n\t\t158, 107, 206, 172, 169, 229, 86, 188, 238, 76, 223, 189,\n\t\t235, 228, 195, 239, 56, 117, 126, 251, 20, 215, 52, 182, 189,\n\t\t179, 113, 252, 216, 177, 227, 215, 31, 99, 166, 23, 104, 180,\n\t\t16, 151, 209, 196, 23, 253, 247, 120, 5, 158, 66, 21, 116,\n\t\t47, 122, 6, 125, 24, 33, 159, 231, 147, 228, 73, 70, 212,\n\t\t113, 239, 42, 227, 151, 16, 203, 171, 29, 235, 55, 141, 198,\n\t\t168, 5, 41, 170, 154, 100, 189, 88, 118, 218, 130, 231, 118,\n\t\t164, 84, 185, 95, 146, 172, 34, 145, 164, 59, 242, 237, 188,\n\t\t71, 29, 211, 140, 114, 163, 51, 47, 236, 143, 29, 174, 210,\n\t\t237, 158, 79, 33, 96, 44, 10, 69, 122, 97, 48, 246, 62, 174,\n\t\t67, 127, 95, 13, 87, 21, 223, 212, 20, 166, 212, 219, 197,\n\t\t98, 179, 174, 16, 193, 236, 210, 107, 213, 169, 237, 166,\n\t\t96, 164, 160, 197, 30, 227, 90, 62, 59, 20, 78, 195, 142,\n\t\t109, 195, 178, 21, 133, 18, 203, 1, 76, 44, 78, 148, 121,\n\t\t77, 24, 244, 107, 106, 189, 85, 40, 52, 154, 26, 85, 45, 31,\n\t\t215, 131, 106, 234, 105, 137, 97, 108, 254, 63, 174, 18, 193,\n\t\t96, 105, 248, 84, 207, 40, 24, 38, 99, 74, 101, 249, 216,\n\t\t92, 122, 168, 91, 33, 140, 112, 167, 250, 31, 181, 197, 106,\n\t\t225, 76, 108, 68, 148, 96, 65, 153, 222, 172, 53, 13, 18,\n\t\t114, 112, 91, 75, 225, 84, 81, 81, 52, 108, 23, 45, 207, 212,\n\t\t128, 232, 68, 195, 224, 17, 139, 114, 198, 45, 12, 186, 226,\n\t\t36, 78, 108, 235, 12, 48, 135, 233, 234, 242, 177, 217, 206,\n\t\t193, 165, 170, 34, 220, 128, 164, 247, 60, 52, 227, 115, 166,\n\t\t108, 126, 197, 113, 84, 65, 5, 187, 54, 47, 105, 245, 106,\n\t\t251, 38, 177, 193, 130, 186, 132, 146, 216, 184, 183, 1, 113,\n\t\t148, 77, 12, 148, 71, 176, 174, 252, 181, 9, 250, 218, 135,\n\t\t57, 1, 252, 40, 19, 188, 182, 238, 209, 73, 7, 85, 52, 116,\n\t\t114, 43, 53, 136, 127, 134, 18, 192, 247, 110, 240, 106, 87,\n\t\t11, 222, 146, 255, 84, 191, 234, 60, 89, 91, 76, 170, 157,\n\t\t62, 249, 43, 39, 39, 149, 252, 202, 39, 63, 57, 198, 122,\n\t\t111, 249, 155, 117, 228, 163, 178, 204, 20, 188, 142, 126,\n\t\t57, 111, 189, 99, 153, 245, 13, 24, 197, 50, 53, 251, 40,\n\t\t142, 198, 9, 213, 210, 36, 235, 74, 34, 78, 141, 91, 32, 44,\n\t\t200, 146, 113, 10, 153, 45, 165, 80, 95, 242, 103, 196, 58,\n\t\t172, 194, 64, 130, 34, 134, 185, 165, 157, 228, 102, 154,\n\t\t84, 56, 143, 37, 151, 39, 73, 91, 98, 29, 250, 217, 32, 77,\n\t\t90, 98, 176, 204, 163, 152, 11, 139, 228, 55, 36, 150, 145,\n\t\t219, 40, 27, 101, 75, 93, 104, 143, 250, 209, 104, 13, 6,\n\t\t105, 36, 114, 43, 183, 109, 49, 201, 94, 150, 138, 232, 89,\n\t\t20, 71, 176, 160, 40, 154, 162, 232, 66, 104, 138, 26, 176,\n\t\t177, 140, 127, 157, 49, 158, 175, 29, 115, 52, 187, 212, 4,\n\t\t142, 25, 166, 82, 210, 77, 157, 105, 82, 157, 82, 174, 41,\n\t\t207, 202, 155, 112, 61, 20, 65, 47, 250, 204, 32, 84, 203,\n\t\t77, 186, 18, 197, 213, 88, 15, 93, 166, 98, 205, 82, 205,\n\t\t152, 42, 46, 35, 150, 206, 76, 74, 8, 141, 56, 85, 13, 193,\n\t\t185, 99, 153, 132, 22, 123, 12, 19, 166, 25, 78, 108, 18,\n\t\t133, 165, 130, 82, 189, 10, 148, 82, 12, 160, 8, 133, 83,\n\t\t192, 42, 44, 198, 254, 173, 86, 215, 243, 166, 211, 239, 40,\n\t\t138, 166, 170, 154, 154, 95, 170, 202, 152, 188, 60, 61, 191,\n\t\t68, 198, 152, 111, 76, 5, 181, 58, 199, 28, 11, 146, 91, 60,\n\t\t158, 145, 49, 166, 51, 133, 11, 60, 70, 124, 253, 59, 205,\n\t\t194, 129, 77, 9, 49, 12, 42, 24, 3, 176, 170, 113, 135, 0,\n\t\t51, 85, 171, 18, 216, 20, 60, 187, 214, 96, 132, 9, 1, 166,\n\t\t162, 26, 32, 86, 67, 202, 137, 237, 56, 140, 171, 125, 159,\n\t\t17, 194, 244, 80, 232, 1, 198, 42, 184, 170, 86, 49, 43, 77,\n\t\t166, 48, 2, 216, 50, 92, 215, 243, 20, 75, 25, 26, 218, 219,\n\t\t103, 43, 157, 118, 49, 158, 196, 90, 198, 188, 182, 211, 210,\n\t\t206, 76, 196, 112, 93, 25, 142, 210, 65, 87, 73, 135, 52,\n\t\t19, 237, 174, 50, 70, 247, 103, 189, 117, 37, 235, 243, 32,\n\t\t110, 119, 121, 154, 140, 9, 1, 235, 60, 131, 139, 26, 255,\n\t\t249, 223, 100, 174, 98, 48, 65, 8, 48, 38, 129, 77, 76, 87,\n\t\t28, 6, 228, 94, 37, 6, 70, 24, 229, 92, 213, 248, 139, 130,\n\t\t156, 206, 239, 195, 4, 195, 83, 36, 184, 4, 12, 83, 170, 168,\n\t\t34, 220, 179, 112, 198, 240, 77, 139, 27, 204, 38, 119, 239,\n\t\t56, 200, 121, 73, 58, 203, 40, 225, 130, 189, 254, 8, 21,\n\t\t140, 82, 169, 44, 2, 69, 197, 120, 154, 6, 170, 167, 154,\n\t\t66, 16, 202, 63, 67, 198, 52, 36, 83, 241, 248, 117, 198,\n\t\t33, 22, 42, 22, 21, 24, 240, 7, 83, 138, 77, 86, 80, 167,\n\t\t4, 186, 38, 207, 166, 45, 115, 141, 182, 80, 31, 237, 65,\n\t\t39, 208, 45, 223, 59, 158, 139, 88, 42, 40, 182, 69, 34, 5,\n\t\t120, 164, 26, 98, 175, 223, 27, 165, 131, 188, 199, 195, 237,\n\t\t214, 28, 196, 147, 116, 97, 121, 193, 44, 234, 247, 210, 48,\n\t\t8, 43, 192, 219, 67, 217, 163, 198, 19, 149, 234, 126, 239,\n\t\t106, 51, 177, 124, 164, 249, 209, 57, 193, 201, 92, 213, 8,\n\t\t141, 105, 166, 117, 109, 192, 216, 181, 12, 2, 133, 151, 65,\n\t\t215, 12, 181, 94, 3, 213, 136, 30, 99, 140, 81, 56, 201, 49,\n\t\t97, 252, 90, 3, 240, 55, 111, 185, 120, 241, 226, 142, 25,\n\t\t255, 226, 201, 147, 55, 223, 108, 205, 186, 154, 199, 53,\n\t\t13, 238, 154, 210, 117, 85, 155, 189, 168, 104, 231, 150,\n\t\t129, 48, 198, 110, 162, 148, 225, 114, 211, 98, 179, 230,\n\t\t4, 195, 255, 231, 152, 195, 171, 104, 30, 45, 163, 237, 232,\n\t\t0, 122, 24, 33, 144, 234, 171, 99, 240, 91, 218, 154, 184,\n\t\t207, 121, 84, 135, 40, 238, 194, 34, 36, 105, 20, 203, 220,\n\t\t81, 242, 87, 112, 49, 202, 68, 84, 151, 226, 249, 92, 212,\n\t\t32, 110, 165, 93, 154, 38, 241, 36, 28, 45, 184, 88, 135,\n\t\t186, 76, 44, 38, 162, 56, 26, 229, 157, 135, 68, 239, 165,\n\t\t53, 82, 135, 8, 126, 108, 180, 194, 41, 119, 179, 190, 161,\n\t\t120, 145, 170, 238, 127, 200, 203, 31, 75, 83, 81, 177, 94,\n\t\t105, 16, 188, 87, 153, 105, 3, 14, 181, 166, 48, 133, 249,\n\t\t190, 207, 233, 138, 166, 212, 128, 204, 112, 5, 32, 0, 231,\n\t\t198, 12, 3, 49, 234, 165, 170, 96, 255, 121, 105, 245, 157,\n\t\t199, 15, 143, 20, 90, 56, 84, 44, 68, 176, 122, 120, 74, 245,\n\t\t150, 206, 23, 98, 31, 83, 179, 191, 179, 185, 160, 181, 154,\n\t\t117, 77, 157, 130, 103, 43, 15, 173, 55, 253, 193, 222, 138,\n\t\t66, 56, 62, 185, 219, 31, 184, 14, 113, 237, 93, 165, 98,\n\t\t201, 136, 152, 210, 105, 245, 166, 171, 5, 147, 111, 251,\n\t\t73, 39, 212, 249, 61, 182, 41, 252, 5, 211, 12, 142, 13, 14,\n\t\t231, 195, 77, 177, 60, 19, 193, 131, 133, 219, 86, 142, 63,\n\t\t178, 108, 21, 125, 23, 48, 148, 89, 185, 126, 172, 129, 75,\n\t\t182, 101, 121, 5, 94, 80, 25, 20, 210, 216, 33, 132, 111,\n\t\t249, 238, 114, 27, 218, 65, 153, 204, 159, 156, 127, 253,\n\t\t87, 55, 37, 79, 118, 139, 203, 131, 86, 146, 38, 60, 30, 3,\n\t\t176, 211, 46, 180, 150, 242, 177, 150, 219, 32, 19, 35, 103,\n\t\t145, 63, 74, 90, 54, 36, 50, 83, 1, 244, 131, 37, 137, 99,\n\t\t134, 46, 200, 76, 202, 203, 189, 32, 146, 249, 147, 239, 40,\n\t\t205, 23, 87, 210, 205, 205, 116, 101, 37, 253, 210, 108, 52,\n\t\t69, 25, 80, 234, 135, 158, 170, 5, 102, 97, 49, 96, 20, 24,\n\t\t85, 92, 234, 168, 150, 231, 2, 76, 61, 41, 172, 72, 97, 157,\n\t\t19, 51, 97, 135, 230, 111, 249, 161, 231, 135, 198, 184, 32,\n\t\t101, 182, 142, 225, 229, 226, 124, 105, 92, 29, 224, 116,\n\t\t101, 243, 103, 14, 157, 8, 9, 6, 76, 244, 68, 103, 204, 88,\n\t\t156, 49, 13, 185, 73, 169, 82, 118, 117, 187, 132, 33, 0,\n\t\t205, 8, 117, 37, 136, 14, 190, 89, 82, 123, 179, 160, 208,\n\t\t175, 198, 131, 120, 168, 142, 16, 8, 201, 237, 181, 176, 200,\n\t\t36, 149, 115, 29, 196, 100, 84, 224, 249, 135, 132, 75, 55,\n\t\t111, 112, 122, 126, 95, 251, 236, 217, 246, 205, 27, 140,\n\t\t222, 190, 111, 233, 23, 7, 244, 248, 142, 116, 239, 60, 38,\n\t\t199, 119, 172, 158, 133, 151, 111, 94, 63, 181, 255, 109,\n\t\t42, 51, 116, 118, 243, 218, 205, 251, 223, 166, 242, 248,\n\t\t47, 87, 79, 83, 220, 218, 153, 238, 184, 153, 146, 99, 91,\n\t\t154, 184, 99, 219, 83, 200, 103, 123, 172, 97, 128, 208, 214,\n\t\t216, 180, 69, 64, 239, 196, 34, 173, 67, 59, 21, 237, 49,\n\t\t231, 97, 194, 181, 192, 232, 19, 127, 240, 137, 79, 252, 193,\n\t\t227, 207, 189, 246, 220, 115, 175, 61, 183, 249, 181, 155,\n\t\t59, 55, 127, 108, 209, 238, 45, 91, 253, 136, 239, 229, 149,\n\t\t125, 181, 189, 15, 101, 113, 6, 179, 121, 161, 79, 92, 70,\n\t\t231, 158, 207, 11, 190, 209, 185, 185, 115, 195, 109, 119,\n\t\t223, 253, 128, 102, 85, 237, 39, 107, 123, 171, 165, 56, 203,\n\t\t251, 82, 227, 242, 230, 229, 215, 176, 7, 95, 67, 20, 25,\n\t\t50, 163, 111, 138, 150, 208, 26, 218, 139, 142, 162, 135,\n\t\t208, 23, 208, 87, 16, 26, 69, 60, 201, 226, 201, 176, 138,\n\t\t229, 48, 27, 197, 60, 111, 26, 249, 16, 59, 197, 147, 52,\n\t\t89, 7, 25, 135, 149, 216, 184, 26, 176, 81, 52, 14, 89, 230,\n\t\t111, 100, 242, 176, 81, 50, 146, 126, 239, 46, 200, 119, 82,\n\t\t11, 210, 37, 30, 114, 25, 170, 129, 81, 150, 200, 108, 103,\n\t\t163, 72, 212, 100, 6, 180, 100, 148, 230, 67, 111, 222, 103,\n\t\t39, 99, 158, 117, 254, 157, 208, 80, 14, 184, 99, 88, 171,\n\t\t8, 242, 241, 87, 102, 20, 28, 245, 123, 114, 171, 6, 113,\n\t\t13, 143, 226, 209, 214, 165, 220, 65, 3, 170, 253, 148, 161,\n\t\t40, 134, 174, 138, 141, 152, 96, 157, 41, 240, 1, 155, 104,\n\t\t158, 77, 24, 131, 101, 219, 163, 140, 58, 46, 99, 223, 208,\n\t\t45, 133, 48, 110, 9, 120, 136, 105, 0, 156, 231, 75, 204,\n\t\t231, 136, 166, 99, 28, 220, 100, 216, 42, 225, 220, 81, 72,\n\t\t224, 212, 139, 117, 117, 127, 153, 212, 246, 133, 22, 212,\n\t\t19, 90, 8, 219, 105, 112, 207, 108, 255, 38, 90, 55, 111,\n\t\t195, 211, 128, 231, 128, 214, 76, 69, 48, 67, 152, 150, 197,\n\t\t109, 85, 241, 93, 70, 52, 93, 85, 68, 33, 112, 84, 60, 131,\n\t\t153, 170, 224, 10, 128, 21, 112, 176, 93, 27, 56, 87, 113,\n\t\t7, 99, 102, 170, 44, 8, 45, 170, 248, 156, 17, 199, 215, 233,\n\t\t124, 72, 67, 124, 92, 53, 12, 69, 53, 12, 248, 35, 102, 232,\n\t\t249, 48, 245, 7, 186, 103, 83, 221, 83, 196, 47, 170, 84,\n\t\t81, 188, 124, 113, 68, 193, 134, 69, 9, 214, 127, 17, 4, 227,\n\t\t242, 226, 169, 96, 219, 84, 130, 53, 141, 238, 80, 137, 233,\n\t\t80, 138, 205, 119, 55, 175, 11, 61, 152, 10, 11, 24, 2, 179,\n\t\t26, 150, 88, 111, 35, 106, 31, 230, 189, 169, 134, 187, 107,\n\t\t168, 237, 188, 93, 227, 186, 123, 167, 89, 5, 70, 153, 65,\n\t\t12, 131, 136, 124, 32, 87, 120, 165, 85, 41, 227, 160, 2,\n\t\t224, 208, 7, 176, 198, 168, 206, 246, 19, 93, 227, 58, 174,\n\t\t183, 106, 88, 209, 217, 117, 138, 22, 56, 249, 180, 69, 189,\n\t\t145, 83, 69, 241, 117, 106, 7, 215, 198, 8, 22, 208, 154,\n\t\t204, 65, 223, 139, 38, 249, 145, 100, 255, 219, 14, 3, 17,\n\t\t142, 249, 5, 99, 142, 93, 190, 45, 45, 78, 233, 189, 252,\n\t\t30, 110, 150, 59, 72, 218, 205, 22, 15, 221, 32, 234, 55,\n\t\t123, 35, 184, 145, 50, 16, 181, 200, 156, 118, 75, 41, 96,\n\t\t160, 150, 98, 152, 126, 217, 55, 128, 180, 139, 197, 22, 23,\n\t\t102, 178, 227, 42, 155, 245, 126, 133, 111, 126, 134, 43,\n\t\t10, 135, 115, 92, 129, 144, 146, 23, 242, 169, 185, 11, 243,\n\t\t4, 131, 101, 40, 127, 160, 57, 166, 239, 155, 174, 234, 97,\n\t\t211, 36, 206, 7, 175, 49, 95, 31, 201, 143, 201, 143, 103,\n\t\t170, 146, 127, 174, 194, 229, 47, 193, 63, 133, 75, 104, 6,\n\t\t13, 208, 62, 132, 58, 194, 202, 39, 159, 210, 193, 147, 142,\n\t\t21, 27, 68, 58, 202, 45, 73, 222, 5, 57, 174, 44, 215, 192,\n\t\t134, 108, 20, 37, 99, 176, 71, 62, 218, 146, 94, 22, 91, 32,\n\t\t147, 99, 196, 249, 84, 19, 126, 206, 196, 245, 42, 104, 51,\n\t\t206, 108, 26, 40, 209, 114, 61, 173, 166, 237, 238, 145, 185,\n\t\t190, 221, 16, 230, 94, 199, 255, 97, 131, 233, 219, 239, 183,\n\t\t252, 133, 217, 90, 45, 180, 98, 235, 219, 181, 82, 90, 221,\n\t\t191, 107, 212, 108, 78, 59, 184, 176, 120, 233, 167, 125,\n\t\t211, 243, 159, 192, 141, 169, 245, 133, 52, 222, 209, 107,\n\t\t151, 210, 134, 114, 170, 216, 53, 205, 186, 181, 102, 233,\n\t\t39, 148, 134, 177, 135, 67, 240, 195, 181, 217, 154, 21, 91,\n\t\t225, 230, 69, 119, 58, 182, 188, 116, 87, 50, 156, 77, 11,\n\t\t43, 221, 90, 254, 125, 93, 190, 124, 249, 175, 241, 251, 225,\n\t\t37, 84, 66, 203, 82, 157, 123, 201, 130, 101, 153, 30, 44,\n\t\t228, 109, 62, 246, 211, 247, 235, 144, 224, 252, 97, 237,\n\t\t245, 37, 106, 101, 75, 5, 33, 201, 198, 61, 38, 116, 113,\n\t\t187, 139, 219, 201, 48, 201, 150, 242, 113, 184, 87, 135,\n\t\t104, 3, 106, 24, 118, 119, 231, 111, 21, 240, 8, 120, 24,\n\t\t30, 127, 175, 34, 56, 195, 208, 127, 153, 252, 21, 101, 160,\n\t\t40, 218, 246, 237, 190, 33, 220, 175, 218, 10, 126, 39, 17,\n\t\t246, 143, 104, 10, 126, 2, 51, 213, 230, 30, 144, 159, 248,\n\t\t49, 160, 96, 124, 140, 48, 85, 172, 110, 243, 221, 199, 153,\n\t\t111, 126, 125, 118, 166, 69, 56, 20, 72, 135, 19, 160, 240,\n\t\t174, 247, 8, 78, 48, 236, 126, 47, 129, 57, 9, 182, 166, 106,\n\t\t248, 23, 62, 133, 69, 96, 68, 197, 28, 142, 140, 113, 216,\n\t\t208, 106, 97, 76, 232, 8, 48, 104, 135, 35, 101, 0, 148, 108,\n\t\t233, 146, 35, 57, 191, 218, 133, 78, 163, 39, 209, 15, 161,\n\t\t79, 125, 239, 220, 42, 150, 228, 115, 73, 50, 153, 164, 57,\n\t\t170, 65, 54, 202, 111, 67, 186, 3, 231, 179, 10, 97, 201,\n\t\t176, 115, 222, 45, 177, 65, 50, 43, 105, 95, 50, 214, 83,\n\t\t3, 25, 242, 237, 141, 252, 225, 64, 204, 98, 233, 201, 235,\n\t\t130, 244, 221, 215, 176, 156, 168, 244, 242, 74, 251, 189,\n\t\t97, 106, 229, 70, 167, 36, 62, 1, 91, 74, 90, 93, 54, 148,\n\t\t190, 255, 40, 12, 194, 136, 195, 159, 123, 134, 225, 109,\n\t\t174, 122, 186, 225, 126, 220, 194, 144, 174, 218, 97, 136,\n\t\t201, 242, 158, 138, 66, 1, 3, 107, 11, 70, 56, 201, 167, 40,\n\t\t76, 209, 149, 157, 107, 106, 164, 88, 194, 225, 10, 81, 51,\n\t\t232, 83, 162, 194, 55, 190, 1, 42, 161, 64, 169, 10, 240,\n\t\t65, 80, 41, 165, 22, 16, 10, 1, 143, 103, 171, 69, 147, 22,\n\t\t85, 222, 152, 89, 8, 0, 99, 70, 168, 238, 17, 101, 160, 118,\n\t\t218, 106, 92, 48, 134, 142, 5, 155, 191, 207, 137, 32, 156,\n\t\t18, 12, 33, 221, 199, 8, 36, 240, 178, 225, 109, 62, 233,\n\t\t235, 186, 7, 63, 232, 26, 95, 214, 60, 69, 40, 66, 79, 163,\n\t\t122, 147, 120, 156, 1, 5, 193, 24, 229, 86, 171, 100, 171,\n\t\t117, 171, 168, 187, 170, 74, 75, 117, 86, 42, 115, 138, 49,\n\t\t17, 5, 251, 191, 230, 198, 65, 110, 82, 0, 0, 131, 179, 96,\n\t\t131, 240, 15, 152, 66, 113, 93, 181, 215, 107, 118, 125, 172,\n\t\t231, 159, 132, 99, 108, 173, 198, 142, 237, 247, 123, 37,\n\t\t28, 251, 7, 23, 32, 255, 6, 25, 167, 33, 3, 11, 114, 11, 166,\n\t\t216, 66, 8, 95, 254, 238, 229, 55, 48, 192, 7, 145, 64, 5,\n\t\t132, 60, 11, 146, 117, 28, 177, 45, 78, 141, 20, 141, 138,\n\t\t163, 209, 55, 142, 158, 156, 47, 28, 61, 57, 15, 77, 56, 244,\n\t\t212, 225, 181, 7, 147, 225, 169, 162, 57, 149, 253, 20, 40,\n\t\t15, 12, 154, 119, 222, 63, 104, 220, 102, 26, 215, 61, 125,\n\t\t120, 176, 96, 237, 95, 238, 199, 205, 155, 198, 109, 99, 194,\n\t\t241, 114, 81, 75, 62, 235, 71, 175, 242, 232, 201, 209, 169,\n\t\t10, 193, 198, 247, 204, 159, 226, 126, 24, 140, 251, 177,\n\t\t53, 24, 83, 140, 5, 15, 234, 16, 141, 103, 166, 139, 144,\n\t\t180, 196, 150, 176, 204, 165, 195, 131, 193, 225, 193, 143,\n\t\t99, 8, 102, 8, 253, 164, 83, 118, 218, 133, 205, 95, 45, 180,\n\t\t219, 133, 31, 0, 226, 7, 129, 79, 12, 101, 65, 49, 110, 226,\n\t\t92, 193, 88, 40, 66, 35, 68, 112, 135, 239, 190, 239, 240,\n\t\t225, 251, 14, 131, 58, 200, 143, 166, 128, 167, 48, 217, 67,\n\t\t241, 127, 115, 202, 206, 248, 96, 56, 92, 104, 159, 180, 199,\n\t\t9, 226, 108, 197, 48, 22, 152, 195, 21, 76, 84, 69, 17, 24,\n\t\t43, 140, 109, 30, 206, 43, 144, 118, 184, 115, 249, 13, 248,\n\t\t60, 188, 140, 250, 232, 208, 88, 169, 197, 13, 68, 107, 12,\n\t\t90, 147, 158, 74, 50, 220, 129, 215, 105, 62, 220, 78, 50,\n\t\t130, 200, 1, 61, 31, 253, 253, 97, 254, 192, 243, 10, 30,\n\t\t231, 8, 249, 239, 119, 156, 103, 100, 231, 144, 139, 250,\n\t\t233, 86, 125, 169, 232, 176, 252, 11, 212, 68, 244, 19, 123,\n\t\t177, 94, 8, 167, 79, 149, 169, 73, 40, 39, 218, 145, 79, 213,\n\t\t247, 5, 36, 183, 165, 0, 168, 94, 242, 166, 225, 229, 67,\n\t\t27, 155, 255, 86, 96, 12, 74, 209, 45, 122, 165, 122, 36,\n\t\t192, 49, 2, 219, 183, 12, 162, 214, 212, 36, 12, 98, 181,\n\t\t234, 81, 34, 148, 186, 197, 179, 205, 207, 60, 64, 2, 29,\n\t\t24, 21, 44, 255, 101, 152, 153, 142, 134, 244, 203, 127, 143,\n\t\t150, 240, 69, 56, 38, 179, 97, 28, 64, 167, 208, 121, 116,\n\t\t23, 186, 7, 125, 22, 189, 130, 190, 142, 126, 11, 161, 142,\n\t\t141, 179, 252, 15, 50, 27, 210, 44, 206, 196, 6, 8, 150, 218,\n\t\t144, 77, 144, 215, 89, 175, 198, 150, 243, 190, 122, 3, 198,\n\t\t37, 197, 6, 200, 82, 54, 73, 109, 72, 69, 34, 100, 192, 45,\n\t\t202, 70, 27, 120, 148, 216, 208, 91, 199, 113, 198, 69, 150,\n\t\t138, 69, 176, 241, 6, 196, 242, 79, 172, 227, 108, 84, 19,\n\t\t178, 162, 52, 27, 215, 149, 70, 34, 22, 249, 153, 44, 222,\n\t\t230, 178, 174, 255, 143, 181, 55, 1, 147, 228, 186, 235, 4,\n\t\t227, 255, 238, 184, 239, 136, 188, 207, 202, 136, 58, 179,\n\t\t242, 142, 62, 170, 171, 170, 91, 125, 73, 173, 86, 235, 178,\n\t\t172, 91, 26, 75, 178, 100, 73, 150, 117, 216, 194, 6, 44,\n\t\t151, 108, 203, 227, 219, 146, 141, 135, 25, 227, 67, 50, 131,\n\t\t193, 99, 22, 216, 129, 97, 36, 179, 216, 109, 48, 187, 130,\n\t\t5, 15, 54, 24, 45, 30, 123, 17, 48, 198, 92, 31, 215, 103,\n\t\t88, 127, 120, 168, 218, 47, 94, 100, 181, 90, 6, 102, 103,\n\t\t230, 219, 202, 202, 56, 94, 100, 70, 102, 198, 241, 222, 239,\n\t\t127, 253, 126, 197, 101, 144, 38, 246, 252, 138, 224, 91,\n\t\t136, 39, 105, 210, 149, 145, 77, 158, 165, 104, 7, 119, 81,\n\t\t23, 119, 81, 7, 111, 27, 235, 173, 82, 211, 108, 189, 209,\n\t\t172, 153, 187, 255, 217, 39, 53, 28, 46, 84, 218, 8, 245,\n\t\t234, 194, 212, 56, 195, 4, 167, 61, 138, 143, 226, 5, 180,\n\t\t128, 122, 168, 135, 102, 165, 150, 26, 225, 51, 184, 164,\n\t\t29, 34, 139, 226, 223, 85, 85, 151, 27, 42, 3, 176, 109, 199,\n\t\t172, 30, 6, 195, 198, 156, 107, 36, 98, 60, 252, 152, 176,\n\t\t63, 68, 22, 69, 235, 96, 169, 169, 85, 19, 86, 39, 76, 109,\n\t\t120, 220, 80, 5, 163, 24, 33, 156, 86, 116, 218, 50, 227,\n\t\t230, 10, 173, 83, 7, 117, 42, 189, 252, 179, 115, 164, 46,\n\t\t116, 75, 93, 178, 72, 57, 97, 95, 183, 25, 7, 32, 204, 125,\n\t\t80, 152, 156, 9, 222, 193, 91, 208, 228, 132, 51, 93, 215,\n\t\t17, 124, 161, 36, 190, 82, 195, 30, 174, 163, 0, 85, 200,\n\t\t67, 143, 160, 71, 209, 149, 215, 236, 188, 17, 189, 209, 91,\n\t\t72, 160, 222, 65, 208, 170, 150, 22, 17, 34, 148, 83, 214,\n\t\t68, 184, 90, 37, 53, 228, 161, 42, 14, 112, 248, 6, 244, 186,\n\t\t235, 80, 141, 214, 208, 205, 216, 70, 206, 38, 114, 129, 105,\n\t\t58, 51, 125, 0, 15, 18, 149, 64, 13, 48, 63, 182, 225, 169,\n\t\t70, 178, 120, 214, 69, 62, 250, 126, 244, 234, 123, 208, 214,\n\t\t49, 180, 100, 152, 33, 228, 200, 63, 183, 69, 113, 11, 35,\n\t\t195, 64, 43, 125, 116, 197, 26, 90, 91, 89, 176, 82, 212,\n\t\t75, 81, 11, 4, 21, 140, 17, 188, 188, 136, 182, 142, 157,\n\t\t3, 76, 132, 192, 24, 182, 85, 0, 76, 85, 84, 34, 6, 98, 8,\n\t\t131, 208, 108, 203, 133, 228, 226, 154, 189, 178, 210, 81,\n\t\t50, 101, 75, 57, 163, 40, 32, 37, 243, 108, 153, 141, 56,\n\t\t39, 249, 204, 10, 240, 107, 75, 52, 188, 5, 179, 108, 78,\n\t\t231, 153, 99, 208, 100, 174, 184, 23, 37, 251, 94, 174, 151,\n\t\t92, 170, 51, 80, 84, 226, 90, 148, 190, 114, 203, 182, 249,\n\t\t115, 170, 97, 168, 147, 99, 1, 165, 150, 75, 78, 250, 212,\n\t\t177, 9, 177, 75, 207, 77, 243, 230, 122, 64, 242, 86, 119,\n\t\t36, 116, 174, 27, 115, 39, 217, 111, 190, 229, 134, 27, 31,\n\t\t203, 159, 112, 202, 225, 84, 117, 196, 15, 215, 76, 195, 53,\n\t\t30, 89, 16, 142, 74, 249, 159, 118, 100, 91, 153, 175, 24,\n\t\t174, 209, 145, 77, 205, 235, 172, 184, 167, 134, 159, 149,\n\t\t239, 191, 187, 120, 239, 91, 148, 151, 107, 165, 150, 148,\n\t\t209, 156, 205, 244, 229, 25, 29, 89, 98, 3, 147, 3, 96, 178,\n\t\t2, 217, 172, 15, 204, 206, 173, 66, 11, 154, 192, 139, 196,\n\t\t203, 118, 222, 169, 173, 64, 146, 22, 229, 152, 13, 216, 132,\n\t\t117, 184, 216, 153, 112, 206, 183, 75, 54, 161, 150, 243,\n\t\t1, 110, 219, 155, 215, 17, 98, 59, 68, 85, 137, 99, 17, 18,\n\t\t28, 29, 11, 195, 16, 80, 202, 167, 19, 103, 69, 231, 186,\n\t\t58, 182, 136, 99, 81, 18, 124, 79, 68, 249, 233, 182, 47,\n\t\t74, 194, 17, 228, 136, 89, 253, 48, 119, 4, 225, 182, 205,\n\t\t137, 112, 120, 247, 225, 34, 194, 84, 187, 76, 44, 196, 206,\n\t\t245, 37, 65, 132, 35, 218, 115, 253, 57, 229, 58, 180, 3,\n\t\t138, 210, 150, 156, 214, 103, 149, 127, 161, 60, 160, 188,\n\t\t91, 249, 33, 229, 51, 138, 146, 73, 41, 160, 110, 126, 131,\n\t\t119, 39, 69, 191, 93, 135, 110, 214, 221, 23, 81, 222, 167,\n\t\t48, 150, 186, 22, 124, 92, 148, 30, 206, 129, 108, 218, 13,\n\t\t187, 217, 69, 231, 51, 27, 243, 127, 118, 123, 145, 201, 85,\n\t\t104, 127, 214, 161, 27, 204, 91, 166, 227, 125, 209, 208,\n\t\t57, 57, 50, 227, 97, 254, 57, 133, 35, 62, 236, 78, 230, 254,\n\t\t138, 58, 116, 151, 93, 147, 228, 230, 10, 64, 194, 212, 222,\n\t\t170, 70, 82, 4, 88, 88, 122, 236, 5, 169, 198, 133, 225, 138,\n\t\t27, 19, 0, 102, 59, 161, 110, 24, 106, 201, 182, 9, 164, 87,\n\t\t9, 211, 20, 194, 50, 196, 161, 4, 184, 237, 132, 154, 105,\n\t\t168, 37, 199, 198, 243, 45, 68, 168, 166, 152, 154, 70, 187,\n\t\t85, 186, 60, 191, 187, 121, 194, 181, 110, 98, 24, 103, 133,\n\t\t161, 51, 184, 37, 69, 160, 6, 174, 213, 37, 76, 195, 144,\n\t\t126, 153, 169, 177, 3, 152, 18, 143, 25, 190, 106, 95, 238,\n\t\t11, 65, 220, 192, 119, 7, 52, 183, 118, 4, 189, 45, 52, 133,\n\t\t170, 247, 22, 77, 77, 53, 78, 222, 31, 26, 186, 23, 154, 198,\n\t\t185, 127, 212, 104, 155, 204, 136, 186, 186, 94, 106, 233,\n\t\t8, 11, 141, 48, 129, 28, 213, 52, 244, 49, 66, 42, 99, 42,\n\t\t233, 7, 129, 95, 162, 20, 33, 67, 168, 68, 61, 62, 247, 23,\n\t\t127, 27, 29, 133, 15, 43, 235, 74, 38, 189, 125, 113, 55,\n\t\t205, 39, 25, 203, 237, 226, 68, 214, 84, 202, 254, 51, 138,\n\t\t253, 184, 240, 225, 74, 15, 79, 220, 64, 33, 227, 179, 44,\n\t\t229, 209, 22, 32, 22, 214, 46, 125, 117, 191, 92, 111, 191,\n\t\t51, 94, 104, 71, 119, 117, 78, 192, 242, 225, 87, 215, 219,\n\t\t195, 198, 138, 49, 250, 220, 15, 251, 206, 165, 135, 30, 190,\n\t\t239, 225, 107, 95, 121, 227, 55, 110, 159, 157, 77, 224, 111,\n\t\t171, 213, 115, 175, 110, 47, 180, 223, 19, 121, 15, 156, 210,\n\t\t196, 180, 71, 160, 51, 174, 101, 75, 203, 71, 90, 90, 88,\n\t\t110, 247, 175, 137, 160, 241, 135, 182, 115, 197, 59, 93,\n\t\t183, 105, 173, 142, 250, 150, 72, 179, 246, 193, 247, 10,\n\t\t227, 251, 63, 1, 108, 42, 125, 88, 127, 143, 118, 224, 29,\n\t\t10, 149, 92, 234, 203, 133, 78, 41, 237, 77, 105, 214, 7,\n\t\t206, 120, 183, 72, 114, 139, 233, 62, 211, 67, 202, 230, 37,\n\t\t6, 60, 237, 3, 163, 104, 103, 247, 252, 238, 121, 216, 126,\n\t\t108, 246, 233, 227, 20, 65, 253, 166, 105, 247, 216, 212,\n\t\t223, 253, 118, 119, 99, 163, 219, 239, 76, 154, 63, 100, 133,\n\t\t75, 79, 156, 61, 251, 196, 210, 16, 134, 31, 252, 56, 124,\n\t\t232, 59, 179, 231, 159, 159, 61, 191, 115, 42, 60, 64, 208,\n\t\t242, 40, 94, 170, 13, 135, 195, 250, 224, 117, 122, 180, 117,\n\t\t233, 165, 91, 13, 56, 126, 52, 184, 86, 230, 81, 238, 125,\n\t\t119, 239, 69, 68, 229, 189, 62, 40, 172, 50, 108, 65, 126,\n\t\t159, 75, 161, 35, 63, 91, 135, 77, 60, 156, 245, 145, 164,\n\t\t211, 178, 161, 9, 140, 167, 188, 9, 82, 53, 17, 126, 165,\n\t\t222, 161, 7, 233, 176, 190, 251, 252, 254, 2, 187, 141, 112,\n\t\t83, 112, 134, 44, 143, 218, 62, 189, 91, 245, 79, 132, 161,\n\t\t113, 200, 153, 44, 121, 145, 91, 126, 4, 158, 94, 170, 239,\n\t\t254, 122, 125, 105, 169, 14, 147, 250, 210, 238, 143, 137,\n\t\t239, 227, 84, 99, 148, 122, 14, 165, 150, 71, 30, 162, 245,\n\t\t59, 235, 145, 217, 116, 6, 71, 204, 109, 221, 121, 64, 81,\n\t\t216, 222, 63, 236, 237, 161, 39, 224, 113, 101, 168, 108,\n\t\t42, 175, 86, 126, 84, 121, 86, 121, 94, 81, 50, 73, 60, 110,\n\t\t3, 235, 46, 231, 61, 12, 234, 118, 134, 44, 201, 146, 89,\n\t\t60, 138, 167, 179, 132, 231, 6, 101, 82, 8, 84, 21, 183, 159,\n\t\t13, 163, 89, 54, 155, 38, 221, 132, 197, 44, 138, 165, 240,\n\t\t84, 103, 58, 57, 12, 51, 25, 198, 24, 207, 103, 135, 32, 10,\n\t\t25, 103, 105, 151, 173, 3, 103, 41, 149, 200, 103, 18, 23,\n\t\t116, 87, 105, 159, 165, 125, 52, 77, 102, 69, 26, 82, 29,\n\t\t130, 220, 184, 145, 105, 153, 113, 131, 73, 127, 161, 85,\n\t\t96, 253, 52, 201, 205, 2, 201, 155, 57, 139, 102, 73, 1, 42,\n\t\t230, 254, 143, 236, 231, 40, 35, 38, 194, 8, 233, 140, 133,\n\t\t37, 13, 252, 37, 132, 86, 107, 97, 5, 151, 163, 176, 204,\n\t\t114, 12, 179, 24, 98, 82, 141, 60, 184, 46, 42, 97, 20, 248,\n\t\t118, 13, 192, 125, 78, 195, 35, 0, 18, 107, 104, 161, 141,\n\t\t116, 87, 71, 237, 30, 210, 125, 64, 24, 38, 72, 247, 116,\n\t\t212, 110, 35, 93, 217, 107, 151, 132, 234, 107, 221, 72, 197,\n\t\t28, 229, 240, 138, 57, 140, 219, 17, 164, 77, 17, 198, 4,\n\t\t81, 100, 133, 6, 209, 109, 181, 65, 2, 106, 18, 149, 226,\n\t\t192, 246, 244, 241, 251, 46, 65, 112, 230, 217, 140, 50, 118,\n\t\t228, 185, 147, 48, 121, 255, 186, 166, 54, 188, 75, 41, 16,\n\t\t127, 146, 80, 30, 149, 9, 71, 127, 171, 57, 58, 34, 72, 69,\n\t\t166, 33, 76, 1, 149, 102, 173, 131, 152, 19, 84, 176, 134,\n\t\t192, 39, 212, 116, 131, 42, 198, 119, 249, 186, 240, 41, 216,\n\t\t158, 233, 69, 160, 255, 24, 33, 64, 64, 127, 223, 251, 116,\n\t\t0, 253, 3, 31, 208, 115, 132, 254, 19, 6, 128, 241, 174, 119,\n\t\t25, 136, 25, 68, 232, 42, 22, 136, 27, 52, 230, 8, 97, 132,\n\t\t17, 69, 32, 42, 110, 212, 193, 57, 146, 209, 184, 132, 171,\n\t\t186, 234, 11, 96, 64, 17, 101, 184, 220, 236, 222, 147, 44,\n\t\t157, 26, 17, 129, 187, 195, 122, 64, 44, 39, 86, 129, 19,\n\t\t67, 101, 84, 61, 27, 98, 76, 94, 150, 135, 216, 85, 38, 255,\n\t\t100, 148, 59, 7, 224, 188, 43, 157, 227, 227, 125, 158, 31,\n\t\t182, 2, 157, 62, 28, 1, 89, 19, 27, 193, 211, 185, 237, 191,\n\t\t187, 147, 79, 97, 123, 113, 219, 221, 102, 176, 189, 13, 230,\n\t\t65, 119, 123, 113, 219, 42, 245, 109, 79, 15, 227, 126, 201,\n\t\t130, 167, 47, 188, 106, 199, 244, 119, 247, 186, 203, 139,\n\t\t233, 153, 63, 238, 166, 139, 167, 99, 223, 166, 142, 21, 4,\n\t\t182, 93, 196, 48, 247, 235, 34, 182, 148, 171, 149, 187, 95,\n\t\t242, 233, 197, 179, 52, 147, 26, 164, 41, 79, 214, 129, 15,\n\t\t70, 13, 52, 26, 70, 54, 68, 227, 65, 39, 229, 44, 77, 134,\n\t\t60, 110, 224, 49, 151, 146, 164, 113, 22, 229, 48, 113, 198,\n\t\t45, 220, 233, 227, 110, 142, 80, 51, 139, 36, 157, 62, 74,\n\t\t179, 81, 131, 193, 119, 228, 32, 142, 249, 17, 189, 170, 11,\n\t\t75, 175, 234, 6, 235, 113, 68, 41, 69, 22, 152, 8, 16, 120,\n\t\t88, 13, 204, 46, 98, 132, 34, 189, 106, 104, 186, 94, 53,\n\t\t58, 99, 221, 94, 172, 31, 4, 166, 106, 166, 102, 113, 19,\n\t\t108, 240, 52, 79, 211, 229, 197, 35, 132, 198, 53, 166, 130,\n\t\t5, 6, 55, 185, 129, 41, 164, 18, 102, 124, 117, 57, 92, 99,\n\t\t43, 8, 175, 242, 53, 132, 212, 58, 0, 34, 198, 24, 224, 180,\n\t\t64, 180, 169, 230, 38, 231, 26, 95, 69, 120, 141, 173, 169,\n\t\t78, 125, 45, 228, 51, 42, 164, 202, 52, 222, 32, 152, 113,\n\t\t213, 188, 138, 230, 198, 62, 96, 64, 48, 195, 136, 16, 206,\n\t\t117, 133, 238, 253, 229, 222, 11, 72, 129, 47, 40, 166, 84,\n\t\t38, 155, 42, 231, 20, 197, 159, 141, 138, 50, 142, 14, 103,\n\t\t125, 240, 37, 11, 72, 148, 247, 232, 13, 96, 25, 147, 206,\n\t\t193, 52, 145, 78, 197, 52, 63, 158, 249, 217, 27, 69, 97,\n\t\t54, 153, 93, 76, 84, 17, 133, 76, 42, 22, 162, 43, 78, 61,\n\t\t127, 41, 163, 142, 216, 250, 169, 77, 238, 146, 215, 220,\n\t\t254, 170, 50, 114, 77, 20, 189, 226, 90, 141, 152, 239, 81,\n\t\t13, 172, 157, 187, 218, 195, 150, 139, 194, 91, 127, 68, 24,\n\t\t170, 106, 168, 167, 28, 231, 196, 112, 120, 194, 113, 0, 89,\n\t\t189, 78, 187, 103, 35, 120, 243, 37, 167, 184, 75, 248, 145,\n\t\t67, 156, 217, 187, 119, 213, 255, 151, 219, 53, 98, 168, 215,\n\t\t254, 112, 5, 187, 38, 197, 134, 135, 43, 31, 188, 74, 51,\n\t\t136, 118, 203, 79, 12, 153, 170, 178, 211, 249, 228, 87, 52,\n\t\t33, 180, 83, 131, 149, 149, 193, 169, 124, 169, 61, 108, 187,\n\t\t78, 107, 52, 231, 170, 82, 76, 164, 192, 35, 138, 80, 92,\n\t\t165, 44, 107, 1, 70, 202, 33, 69, 241, 131, 66, 35, 38, 202,\n\t\t230, 10, 225, 25, 31, 73, 77, 152, 108, 60, 159, 247, 230,\n\t\t243, 88, 186, 142, 138, 23, 240, 124, 254, 169, 78, 114, 42,\n\t\t60, 94, 47, 63, 86, 47, 183, 123, 39, 189, 127, 89, 171, 92,\n\t\t122, 50, 252, 78, 173, 114, 234, 164, 15, 80, 47, 159, 60,\n\t\t233, 45, 6, 101, 245, 228, 73, 239, 77, 181, 10, 156, 60,\n\t\t233, 195, 153, 160, 126, 67, 185, 92, 182, 131, 250, 13, 111,\n\t\t43, 219, 195, 27, 242, 231, 44, 159, 188, 219, 114, 213, 225,\n\t\t13, 179, 146, 51, 188, 97, 142, 7, 127, 15, 190, 0, 207, 40,\n\t\t142, 210, 84, 54, 149, 219, 21, 37, 219, 68, 163, 125, 96,\n\t\t211, 73, 251, 16, 143, 242, 51, 97, 163, 124, 57, 155, 209,\n\t\t220, 58, 146, 5, 156, 73, 186, 47, 21, 152, 205, 90, 50, 120,\n\t\t16, 6, 105, 129, 129, 167, 19, 185, 181, 35, 237, 156, 96,\n\t\t223, 141, 34, 157, 185, 159, 68, 88, 213, 204, 26, 17, 28,\n\t\t31, 196, 130, 92, 178, 100, 19, 134, 184, 58, 152, 16, 129,\n\t\t57, 129, 24, 153, 145, 37, 126, 236, 199, 184, 161, 233, 140,\n\t\t99, 132, 104, 213, 167, 112, 41, 107, 219, 20, 93, 135, 24,\n\t\t170, 18, 81, 246, 35, 218, 25, 185, 43, 58, 0, 225, 189, 144,\n\t\t63, 170, 214, 67, 135, 33, 248, 175, 8, 1, 146, 170, 86, 128,\n\t\t220, 235, 17, 166, 14, 201, 141, 4, 151, 210, 183, 89, 177,\n\t\t155, 219, 58, 156, 171, 154, 193, 127, 252, 83, 220, 175,\n\t\t80, 0, 222, 208, 91, 239, 250, 228, 255, 42, 48, 0, 38, 86,\n\t\t179, 226, 113, 0, 238, 244, 217, 161, 83, 86, 212, 34, 0,\n\t\t64, 34, 39, 230, 215, 20, 254, 178, 226, 24, 37, 82, 111,\n\t\t83, 145, 236, 19, 146, 165, 176, 83, 148, 136, 79, 103, 69,\n\t\t240, 96, 92, 144, 41, 200, 95, 28, 245, 88, 81, 149, 63, 151,\n\t\t223, 103, 113, 62, 204, 128, 52, 172, 139, 138, 87, 248, 60,\n\t\t0, 214, 202, 70, 185, 238, 88, 159, 215, 59, 135, 245, 252,\n\t\t155, 171, 107, 45, 47, 157, 28, 224, 189, 250, 34, 24, 124,\n\t\t21, 107, 187, 231, 85, 97, 176, 181, 53, 106, 152, 172, 191,\n\t\t224, 126, 86, 199, 42, 43, 93, 114, 172, 194, 52, 132, 76,\n\t\t126, 237, 217, 223, 167, 239, 48, 122, 101, 211, 213, 16,\n\t\t66, 124, 220, 179, 215, 46, 191, 85, 235, 78, 77, 142, 1,\n\t\t233, 141, 165, 81, 196, 115, 251, 124, 164, 214, 72, 14, 32,\n\t\t109, 142, 209, 151, 88, 89, 48, 132, 136, 102, 90, 20, 3,\n\t\t40, 138, 123, 81, 189, 235, 255, 23, 215, 178, 226, 142, 195,\n\t\t110, 54, 237, 134, 217, 247, 204, 233, 255, 64, 251, 206,\n\t\t206, 27, 31, 252, 215, 23, 38, 187, 207, 254, 183, 214, 225,\n\t\t233, 29, 241, 224, 131, 111, 188, 48, 89, 252, 231, 87, 247,\n\t\t121, 135, 126, 9, 190, 11, 191, 32, 249, 122, 186, 138, 178,\n\t\t96, 201, 64, 85, 132, 251, 168, 56, 71, 13, 20, 71, 44, 155,\n\t\t245, 113, 110, 188, 68, 51, 184, 156, 45, 77, 219, 108, 105,\n\t\t122, 224, 212, 35, 7, 84, 113, 230, 192, 250, 171, 111, 56,\n\t\t189, 130, 240, 71, 79, 139, 198, 244, 204, 225, 218, 138,\n\t\t91, 25, 127, 224, 75, 211, 54, 93, 158, 182, 217, 238, 151,\n\t\t201, 149, 143, 157, 220, 190, 171, 26, 145, 133, 205, 91,\n\t\t38, 175, 253, 225, 231, 58, 151, 140, 250, 85, 109, 233, 179,\n\t\t111, 48, 14, 95, 100, 91, 229, 199, 46, 85, 214, 21, 5, 102,\n\t\t185, 253, 24, 241, 124, 84, 144, 36, 2, 249, 117, 48, 175,\n\t\t241, 100, 179, 132, 237, 91, 138, 23, 232, 135, 55, 49, 71,\n\t\t232, 114, 164, 137, 216, 21, 154, 89, 169, 46, 164, 25, 192,\n\t\t229, 211, 181, 244, 21, 65, 16, 92, 42, 35, 64, 31, 127, 251,\n\t\t173, 183, 190, 253, 86, 72, 48, 226, 228, 122, 75, 19, 110,\n\t\t44, 52, 8, 202, 7, 150, 85, 125, 118, 69, 231, 161, 32, 8,\n\t\t126, 79, 134, 138, 254, 225, 214, 252, 133, 23, 114, 48, 206,\n\t\t194, 179, 138, 166, 180, 20, 229, 34, 6, 170, 52, 183, 86,\n\t\t216, 188, 56, 99, 86, 164, 4, 5, 12, 46, 143, 210, 184, 51,\n\t\t26, 157, 24, 94, 219, 233, 15, 78, 13, 71, 157, 238, 210,\n\t\t180, 219, 93, 91, 171, 205, 185, 82, 190, 188, 214, 237, 244,\n\t\t251, 157, 238, 116, 169, 219, 25, 13, 79, 14, 231, 49, 174,\n\t\t61, 244, 16, 188, 85, 89, 82, 174, 87, 238, 81, 222, 160,\n\t\t60, 174, 60, 169, 40, 217, 188, 179, 62, 12, 69, 48, 62, 31,\n\t\t137, 187, 69, 76, 167, 16, 217, 180, 160, 107, 65, 202, 146,\n\t\t172, 1, 178, 117, 29, 34, 198, 103, 82, 121, 62, 138, 251,\n\t\t82, 212, 63, 110, 136, 56, 153, 101, 172, 129, 50, 169, 181,\n\t\t177, 63, 152, 231, 99, 65, 58, 103, 241, 147, 136, 45, 187,\n\t\t168, 238, 146, 135, 47, 113, 216, 31, 134, 209, 135, 135,\n\t\t148, 115, 178, 238, 7, 76, 165, 182, 87, 213, 251, 203, 65,\n\t\t54, 93, 215, 103, 35, 67, 59, 53, 90, 120, 168, 119, 248,\n\t\t170, 111, 176, 131, 245, 250, 42, 23, 158, 6, 229, 82, 83,\n\t\t100, 11, 155, 147, 171, 3, 107, 54, 240, 170, 45, 4, 152,\n\t\t81, 141, 234, 84, 7, 106, 68, 166, 72, 54, 23, 143, 255, 217,\n\t\t34, 211, 52, 182, 200, 85, 245, 205, 154, 86, 35, 76, 123,\n\t\t171, 26, 169, 106, 164, 62, 200, 73, 133, 112, 78, 202, 198,\n\t\t147, 156, 46, 82, 206, 29, 170, 210, 208, 183, 213, 213, 169,\n\t\t41, 136, 189, 210, 116, 111, 24, 174, 28, 236, 161, 14, 222,\n\t\t92, 237, 213, 24, 91, 170, 39, 157, 32, 232, 235, 221, 237,\n\t\t117, 162, 78, 196, 37, 113, 5, 49, 107, 92, 23, 150, 161,\n\t\t105, 76, 16, 14, 209, 65, 43, 26, 47, 216, 102, 227, 25, 141,\n\t\t21, 159, 201, 180, 69, 173, 166, 49, 82, 211, 202, 242, 35,\n\t\t175, 45, 81, 206, 105, 137, 202, 60, 2, 182, 247, 93, 229,\n\t\t45, 232, 113, 48, 149, 154, 50, 82, 174, 81, 110, 85, 190,\n\t\t79, 249, 17, 69, 201, 34, 11, 229, 182, 188, 68, 69, 201,\n\t\t10, 72, 65, 39, 73, 132, 141, 120, 135, 69, 146, 17, 59, 228,\n\t\t93, 169, 95, 127, 24, 56, 235, 102, 163, 200, 134, 2, 60,\n\t\t21, 45, 43, 208, 41, 196, 151, 102, 249, 97, 221, 146, 84,\n\t\t25, 249, 217, 203, 102, 99, 62, 202, 47, 114, 121, 184, 167,\n\t\t210, 103, 80, 8, 165, 110, 65, 60, 222, 95, 218, 68, 249,\n\t\t73, 146, 47, 146, 31, 91, 236, 198, 6, 246, 21, 76, 173, 200,\n\t\t108, 49, 172, 235, 170, 142, 176, 29, 84, 176, 94, 238, 98,\n\t\t189, 167, 186, 166, 246, 17, 67, 211, 12, 29, 17, 16, 70,\n\t\t185, 197, 105, 205, 91, 100, 216, 248, 166, 237, 98, 139,\n\t\t250, 7, 13, 7, 19, 199, 24, 16, 172, 135, 132, 116, 9, 168,\n\t\t128, 15, 113, 21, 97, 248, 8, 38, 85, 82, 118, 22, 144, 248,\n\t\t93, 183, 98, 80, 21, 9, 31, 19, 29, 27, 106, 224, 34, 225,\n\t\t19, 2, 149, 15, 93, 74, 137, 126, 204, 118, 137, 134, 117,\n\t\t71, 93, 183, 93, 130, 137, 63, 197, 88, 143, 48, 0, 208, 54,\n\t\t7, 129, 254, 139, 30, 251, 102, 73, 183, 84, 235, 54, 253,\n\t\t173, 58, 211, 237, 158, 239, 35, 130, 42, 139, 229, 32, 140,\n\t\t245, 110, 108, 77, 60, 203, 243, 77, 83, 23, 172, 201, 116,\n\t\t110, 117, 40, 190, 195, 246, 159, 16, 93, 175, 233, 180, 5,\n\t\t197, 139, 170, 189, 45, 40, 126, 213, 101, 161, 30, 91, 139,\n\t\t194, 226, 145, 101, 120, 166, 142, 17, 101, 13, 118, 49, 87,\n\t\t51, 81, 74, 138, 226, 182, 49, 79, 161, 27, 143, 109, 136,\n\t\t135, 177, 13, 235, 208, 109, 194, 22, 116, 51, 216, 233, 126,\n\t\t236, 99, 16, 253, 13, 251, 1, 254, 32, 249, 20, 153, 77, 241,\n\t\t144, 221, 241, 42, 243, 117, 143, 192, 211, 187, 175, 159,\n\t\t76, 96, 99, 29, 175, 247, 225, 136, 109, 38, 151, 213, 235,\n\t\t31, 28, 201, 92, 153, 231, 225, 167, 225, 89, 165, 34, 85,\n\t\t87, 47, 170, 59, 102, 252, 66, 81, 249, 38, 192, 245, 209,\n\t\t209, 238, 109, 211, 187, 159, 122, 234, 238, 233, 109, 221,\n\t\t163, 145, 57, 171, 47, 111, 110, 46, 251, 73, 227, 253, 87,\n\t\t119, 147, 149, 167, 190, 244, 212, 74, 210, 189, 58, 110,\n\t\t110, 94, 187, 41, 11, 129, 152, 18, 237, 253, 2, 90, 134,\n\t\t95, 86, 250, 202, 155, 148, 207, 128, 1, 255, 10, 62, 170,\n\t\t40, 126, 146, 73, 174, 225, 120, 86, 208, 56, 112, 41, 176,\n\t\t39, 189, 198, 249, 84, 22, 112, 132, 44, 30, 212, 33, 73,\n\t\t89, 156, 208, 65, 156, 240, 130, 86, 44, 225, 204, 134, 96,\n\t\t216, 135, 116, 52, 25, 202, 0, 82, 214, 145, 142, 209, 1,\n\t\t31, 164, 179, 44, 26, 178, 220, 90, 27, 143, 178, 77, 146,\n\t\t141, 134, 99, 9, 37, 230, 126, 245, 56, 226, 69, 2, 71, 146,\n\t\t78, 250, 48, 101, 241, 96, 184, 207, 188, 52, 203, 34, 158,\n\t\t127, 25, 198, 103, 177, 28, 103, 243, 241, 55, 155, 13, 37,\n\t\t139, 119, 145, 77, 18, 101, 129, 244, 31, 36, 233, 32, 31,\n\t\t1, 58, 105, 167, 155, 227, 154, 68, 86, 165, 228, 187, 76,\n\t\t251, 40, 205, 127, 214, 33, 136, 230, 227, 249, 96, 20, 207,\n\t\t107, 45, 162, 89, 58, 153, 70, 97, 3, 120, 135, 71, 99, 105,\n\t\t57, 38, 233, 172, 151, 164, 179, 56, 217, 39, 84, 154, 36,\n\t\t211, 28, 24, 201, 152, 78, 182, 207, 175, 180, 79, 14, 149,\n\t\t255, 178, 125, 218, 37, 30, 20, 60, 76, 22, 226, 249, 209,\n\t\t154, 229, 199, 107, 20, 179, 144, 69, 217, 104, 54, 150, 130,\n\t\t169, 22, 164, 249, 143, 153, 39, 171, 113, 201, 34, 157, 229,\n\t\t221, 98, 126, 58, 39, 155, 168, 40, 127, 228, 157, 238, 38,\n\t\t202, 102, 113, 222, 67, 94, 13, 22, 96, 181, 67, 32, 140,\n\t\t195, 240, 128, 197, 109, 213, 0, 2, 53, 21, 33, 3, 33, 77,\n\t\t111, 234, 14, 101, 184, 165, 155, 44, 128, 223, 70, 94, 213,\n\t\t214, 17, 115, 80, 175, 92, 13, 0, 85, 84, 232, 44, 85, 42,\n\t\t24, 25, 80, 107, 70, 22, 128, 179, 4, 152, 0, 34, 132, 97,\n\t\t147, 107, 26, 3, 12, 96, 34, 41, 140, 234, 152, 65, 16, 127,\n\t\t13, 193, 234, 233, 149, 110, 195, 67, 24, 144, 10, 46, 55,\n\t\t2, 221, 180, 151, 8, 48, 168, 246, 52, 136, 227, 22, 23, 174,\n\t\t219, 114, 188, 138, 135, 216, 151, 91, 58, 87, 237, 82, 27,\n\t\t160, 84, 165, 224, 86, 26, 3, 14, 106, 65, 242, 235, 120,\n\t\t128, 136, 206, 44, 205, 166, 22, 6, 16, 136, 48, 112, 4, 241,\n\t\t129, 145, 252, 91, 3, 18, 58, 214, 85, 213, 47, 113, 85, 51,\n\t\t109, 204, 53, 198, 129, 3, 196, 142, 129, 85, 102, 26, 187,\n\t\t239, 97, 78, 236, 106, 148, 187, 172, 195, 64, 69, 220, 193,\n\t\t148, 0, 6, 140, 93, 81, 241, 25, 6, 230, 25, 46, 1, 196, 0,\n\t\t0, 123, 49, 65, 30, 23, 8, 52, 149, 35, 194, 13, 134, 124,\n\t\t20, 234, 90, 208, 98, 142, 96, 136, 81, 64, 128, 117, 2, 45,\n\t\t195, 32, 90, 110, 131, 50, 219, 177, 117, 53, 54, 12, 191,\n\t\t74, 195, 142, 70, 252, 86, 163, 208, 98, 117, 85, 27, 1, 247,\n\t\t67, 38, 126, 16, 184, 198, 4, 220, 210, 240, 76, 177, 84,\n\t\t210, 153, 71, 8, 53, 15, 55, 122, 190, 3, 4, 170, 26, 66,\n\t\t97, 236, 104, 6, 232, 94, 5, 67, 20, 0, 56, 11, 181, 74, 112,\n\t\t61, 34, 148, 80, 32, 12, 68, 173, 177, 134, 0, 34, 12, 253,\n\t\t178, 141, 1, 187, 166, 139, 96, 173, 14, 4, 4, 162, 4, 235,\n\t\t148, 17, 0, 21, 99, 10, 0, 12, 64, 85, 191, 0, 248, 58, 147,\n\t\t59, 102, 12, 136, 128, 102, 168, 16, 54, 135, 83, 166, 175,\n\t\t44, 99, 218, 52, 107, 142, 19, 69, 162, 221, 92, 168, 86,\n\t\t117, 175, 129, 169, 163, 215, 220, 158, 17, 32, 151, 3, 5,\n\t\t155, 210, 70, 139, 243, 166, 13, 188, 234, 57, 13, 141, 24,\n\t\t194, 36, 186, 69, 52, 149, 229, 54, 188, 233, 122, 24, 144,\n\t\t161, 130, 0, 0, 46, 28, 159, 9, 8, 76, 0, 10, 90, 219, 212,\n\t\t0, 233, 162, 170, 51, 134, 126, 92, 215, 128, 122, 161, 163,\n\t\t147, 128, 129, 6, 4, 108, 13, 97, 55, 160, 58, 193, 53, 79,\n\t\t148, 61, 65, 192, 241, 116, 135, 112, 199, 2, 164, 219, 81,\n\t\t72, 144, 107, 217, 54, 64, 222, 223, 114, 207, 53, 113, 9,\n\t\t3, 10, 16, 34, 24, 123, 64, 5, 65, 14, 226, 8, 169, 30, 8,\n\t\t13, 16, 80, 225, 196, 0, 44, 50, 8, 54, 16, 128, 161, 3, 86,\n\t\t171, 136, 96, 130, 56, 179, 17, 96, 174, 235, 148, 121, 66,\n\t\t103, 224, 74, 220, 145, 119, 166, 176, 163, 56, 74, 77, 233,\n\t\t43, 135, 148, 203, 148, 27, 21, 5, 198, 97, 119, 42, 115,\n\t\t153, 100, 105, 110, 20, 243, 139, 168, 36, 211, 253, 141,\n\t\t232, 229, 27, 101, 247, 216, 187, 40, 243, 96, 234, 78, 146,\n\t\t244, 123, 253, 12, 143, 77, 38, 214, 154, 29, 148, 226, 192,\n\t\t234, 219, 219, 94, 221, 247, 45, 205, 22, 111, 157, 76, 204,\n\t\t190, 101, 6, 70, 28, 90, 107, 246, 182, 95, 243, 133, 163,\n\t\t90, 62, 28, 127, 201, 141, 224, 155, 149, 36, 169, 236, 238,\n\t\t228, 83, 56, 240, 87, 161, 203, 132, 154, 148, 227, 84, 21,\n\t\t212, 57, 100, 249, 129, 105, 6, 154, 253, 17, 217, 206, 194,\n\t\t186, 115, 209, 6, 97, 107, 193, 47, 250, 230, 158, 34, 119,\n\t\t165, 152, 126, 43, 169, 236, 41, 114, 63, 74, 37, 81, 136,\n\t\t172, 61, 125, 17, 190, 160, 148, 148, 186, 114, 74, 185, 92,\n\t\t81, 226, 220, 214, 162, 69, 66, 96, 58, 46, 4, 219, 179, 110,\n\t\t54, 102, 105, 216, 229, 50, 216, 39, 243, 189, 186, 157, 62,\n\t\t202, 166, 147, 76, 2, 129, 48, 24, 77, 39, 169, 44, 228, 143,\n\t\t103, 9, 251, 82, 51, 182, 184, 153, 91, 10, 22, 198, 12, 159,\n\t\t211, 212, 73, 71, 127, 250, 251, 220, 159, 169, 222, 120,\n\t\t89, 155, 217, 145, 193, 17, 4, 128, 227, 155, 140, 118, 82,\n\t\t6, 251, 106, 192, 102, 96, 5, 206, 181, 201, 172, 172, 61,\n\t\t177, 205, 75, 11, 219, 9, 48, 162, 235, 166, 166, 82, 32,\n\t\t14, 38, 28, 143, 203, 225, 10, 133, 159, 104, 54, 95, 252,\n\t\t116, 102, 216, 129, 138, 53, 164, 117, 35, 163, 180, 222,\n\t\t252, 170, 3, 192, 3, 71, 211, 170, 110, 121, 105, 225, 178,\n\t\t70, 212, 196, 115, 255, 10, 2, 248, 130, 180, 75, 58, 74,\n\t\t170, 40, 241, 116, 28, 230, 167, 79, 230, 177, 79, 135, 35,\n\t\t105, 82, 201, 98, 203, 238, 100, 51, 7, 148, 120, 216, 157,\n\t\t142, 95, 121, 217, 59, 55, 55, 225, 183, 194, 242, 177, 123,\n\t\t55, 198, 87, 214, 92, 125, 173, 145, 221, 178, 113, 251, 236,\n\t\t166, 71, 183, 15, 92, 243, 181, 219, 110, 235, 92, 118, 217,\n\t\t191, 60, 242, 173, 237, 71, 111, 154, 221, 190, 113, 75, 214,\n\t\t88, 211, 221, 218, 85, 163, 141, 123, 143, 149, 67, 239, 154,\n\t\t221, 223, 191, 109, 159, 3, 168, 168, 103, 54, 149, 80, 233,\n\t\t41, 183, 72, 214, 139, 130, 33, 103, 19, 141, 47, 80, 97,\n\t\t247, 220, 36, 141, 47, 46, 163, 159, 36, 235, 208, 199, 43,\n\t\t192, 27, 208, 132, 62, 216, 48, 203, 210, 14, 183, 80, 216,\n\t\t64, 227, 188, 235, 94, 135, 6, 26, 74, 107, 152, 241, 120,\n\t\t180, 137, 50, 88, 178, 117, 110, 112, 194, 53, 170, 63, 18,\n\t\t217, 118, 100, 195, 226, 161, 35, 214, 238, 55, 194, 102,\n\t\t51, 132, 235, 195, 230, 165, 158, 166, 106, 177, 107, 17,\n\t\t130, 253, 22, 99, 171, 247, 172, 216, 97, 31, 117, 123, 196,\n\t\t8, 145, 190, 88, 214, 184, 21, 19, 130, 40, 233, 92, 179,\n\t\t98, 91, 102, 219, 117, 170, 174, 137, 126, 183, 228, 10, 83,\n\t\t48, 77, 16, 167, 228, 186, 165, 127, 191, 59, 29, 31, 28,\n\t\t52, 35, 184, 49, 106, 54, 119, 191, 179, 112, 198, 247, 133,\n\t\t78, 49, 97, 46, 165, 101, 228, 139, 192, 194, 85, 81, 57,\n\t\t183, 64, 141, 72, 215, 136, 205, 40, 96, 228, 115, 151, 106,\n\t\t161, 22, 168, 186, 78, 46, 202, 155, 211, 148, 88, 198, 143,\n\t\t115, 124, 61, 153, 78, 102, 126, 97, 186, 132, 65, 204, 179,\n\t\t232, 15, 110, 126, 235, 91, 111, 254, 131, 119, 220, 56, 61,\n\t\t115, 230, 222, 51, 118, 124, 117, 25, 158, 126, 251, 127,\n\t\t124, 226, 69, 114, 211, 227, 187, 79, 159, 185, 247, 204,\n\t\t153, 105, 187, 118, 38, 48, 230, 54, 201, 231, 225, 73, 201,\n\t\t41, 17, 40, 10, 116, 167, 241, 56, 12, 86, 192, 29, 143, 226,\n\t\t48, 145, 243, 41, 188, 255, 253, 131, 219, 127, 235, 23, 127,\n\t\t209, 115, 109, 239, 182, 219, 30, 130, 214, 123, 127, 242,\n\t\t177, 95, 66, 10, 190, 22, 237, 254, 244, 157, 138, 162, 104,\n\t\t123, 223, 221, 251, 61, 180, 243, 50, 187, 117, 77, 25, 42,\n\t\t83, 229, 160, 114, 68, 81, 122, 221, 233, 120, 58, 103, 46,\n\t\t216, 87, 209, 161, 249, 240, 154, 202, 194, 174, 62, 100,\n\t\t237, 81, 150, 204, 182, 242, 209, 120, 22, 245, 46, 210, 250,\n\t\t201, 95, 13, 183, 30, 59, 118, 236, 201, 99, 55, 30, 123,\n\t\t242, 24, 188, 210, 20, 229, 75, 150, 62, 253, 232, 3, 7, 170,\n\t\t49, 131, 159, 173, 133, 54, 177, 84, 171, 71, 253, 149, 93,\n\t\t227, 216, 147, 199, 158, 60, 102, 28, 251, 237, 195, 79, 29,\n\t\t57, 242, 212, 225, 195, 167, 55, 54, 54, 54, 238, 84, 109,\n\t\t212, 135, 59, 94, 115, 172, 125, 99, 170, 151, 14, 69, 150,\n\t\t86, 93, 192, 36, 56, 44, 255, 78, 111, 108, 92, 136, 195,\n\t\t189, 8, 207, 40, 235, 210, 55, 116, 169, 162, 244, 248, 180,\n\t\t45, 125, 36, 40, 237, 231, 134, 17, 159, 23, 67, 36, 115,\n\t\t207, 73, 3, 75, 209, 106, 198, 199, 211, 56, 204, 246, 217,\n\t\t135, 249, 56, 199, 6, 69, 82, 108, 196, 25, 188, 248, 228,\n\t\t238, 207, 220, 112, 26, 179, 48, 14, 48, 25, 52, 185, 15,\n\t\t186, 103, 240, 118, 169, 218, 33, 196, 106, 159, 174, 46,\n\t\t45, 150, 98, 129, 109, 143, 184, 157, 179, 55, 117, 214, 119,\n\t\t191, 105, 122, 150, 229, 165, 143, 220, 152, 56, 72, 83, 187,\n\t\t3, 91, 11, 134, 179, 209, 213, 219, 183, 92, 141, 121, 169,\n\t\t182, 238, 197, 177, 129, 29, 6, 186, 237, 235, 113, 103, 185,\n\t\t92, 142, 39, 54, 65, 134, 234, 112, 236, 244, 55, 235, 155,\n\t\t215, 31, 205, 102, 213, 63, 244, 77, 211, 55, 191, 248, 170,\n\t\t227, 237, 177, 109, 47, 32, 163, 52, 57, 114, 236, 101, 57,\n\t\t205, 76, 49, 149, 72, 233, 42, 75, 202, 80, 57, 154, 255,\n\t\t214, 76, 230, 106, 176, 44, 71, 130, 179, 136, 111, 162, 124,\n\t\t45, 201, 44, 196, 147, 233, 96, 50, 205, 225, 90, 14, 224,\n\t\t114, 180, 19, 197, 9, 79, 190, 151, 89, 1, 205, 127, 253,\n\t\t141, 124, 177, 94, 41, 95, 242, 99, 209, 40, 174, 181, 183,\n\t\t63, 44, 106, 253, 74, 40, 90, 103, 78, 148, 250, 93, 163,\n\t\t123, 252, 82, 158, 174, 45, 170, 35, 158, 78, 74, 13, 88,\n\t\t31, 176, 255, 237, 101, 36, 10, 210, 60, 254, 122, 115, 108,\n\t\t45, 172, 186, 103, 154, 222, 74, 143, 59, 127, 108, 183, 26,\n\t\t106, 54, 180, 212, 183, 241, 250, 66, 176, 56, 193, 128, 66,\n\t\t171, 204, 205, 67, 157, 254, 157, 81, 171, 55, 208, 153, 245,\n\t\t209, 139, 165, 248, 254, 94, 154, 226, 202, 133, 28, 245,\n\t\t167, 165, 246, 138, 226, 22, 238, 179, 220, 228, 154, 142,\n\t\t231, 76, 227, 97, 247, 51, 15, 159, 216, 108, 109, 220, 118,\n\t\t232, 51, 159, 185, 238, 182, 59, 175, 186, 111, 27, 158, 62,\n\t\t185, 117, 211, 242, 149, 219, 201, 246, 191, 216, 218, 190,\n\t\t61, 83, 20, 177, 247, 221, 189, 255, 3, 126, 95, 242, 159,\n\t\t150, 149, 5, 101, 85, 249, 15, 202, 255, 174, 252, 174, 242,\n\t\t199, 138, 2, 155, 16, 231, 29, 115, 98, 161, 164, 91, 8, 140,\n\t\t68, 172, 143, 162, 130, 157, 43, 239, 148, 46, 196, 156, 89,\n\t\t202, 120, 48, 30, 141, 163, 172, 15, 179, 108, 32, 233, 115,\n\t\t243, 235, 102, 54, 206, 129, 115, 142, 163, 11, 191, 106,\n\t\t50, 229, 65, 103, 202, 146, 45, 232, 88, 48, 220, 207, 87,\n\t\t27, 39, 41, 147, 10, 38, 217, 44, 235, 227, 84, 38, 131, 161,\n\t\t241, 38, 150, 125, 215, 38, 92, 216, 155, 196, 186, 185, 209,\n\t\t24, 133, 249, 206, 242, 117, 30, 244, 138, 88, 18, 43, 18,\n\t\t164, 80, 60, 233, 75, 31, 111, 199, 66, 124, 36, 173, 142,\n\t\t44, 41, 180, 217, 243, 119, 103, 155, 0, 7, 161, 100, 0, 211,\n\t\t8, 82, 29, 75, 103, 191, 74, 3, 102, 86, 0, 184, 225, 184,\n\t\t159, 55, 85, 89, 169, 242, 175, 76, 77, 51, 85, 184, 66, 159,\n\t\t6, 247, 34, 97, 181, 183, 5, 195, 72, 104, 152, 88, 58, 6,\n\t\t204, 37, 66, 82, 209, 218, 218, 105, 64, 85, 108, 218, 80,\n\t\t99, 17, 32, 183, 238, 8, 33, 4, 216, 45, 251, 85, 238, 65,\n\t\t157, 149, 58, 154, 204, 66, 66, 8, 197, 8, 40, 3, 228, 52,\n\t\t195, 112, 97, 141, 3, 65, 186, 129, 176, 202, 17, 194, 116,\n\t\t182, 220, 89, 196, 192, 41, 130, 136, 18, 2, 212, 82, 13,\n\t\t46, 8, 222, 253, 75, 48, 163, 186, 157, 114, 225, 153, 252,\n\t\t148, 74, 56, 25, 51, 154, 99, 51, 76, 49, 65, 170, 5, 64,\n\t\t197, 251, 216, 98, 216, 141, 4, 85, 79, 51, 35, 132, 39, 53,\n\t\t66, 177, 252, 52, 140, 40, 54, 128, 74, 167, 36, 65, 247,\n\t\t171, 150, 74, 4, 225, 170, 106, 169, 170, 245, 145, 106, 237,\n\t\t158, 0, 144, 198, 124, 3, 128, 81, 198, 17, 210, 29, 142,\n\t\t144, 96, 160, 107, 200, 176, 152, 165, 10, 174, 83, 203, 210,\n\t\t184, 97, 32, 208, 12, 13, 80, 249, 150, 122, 205, 174, 68,\n\t\t156, 104, 42, 119, 244, 128, 147, 170, 145, 91, 172, 186,\n\t\t197, 209, 162, 42, 2, 29, 17, 67, 16, 138, 64, 152, 132, 246,\n\t\t193, 242, 115, 192, 107, 84, 48, 234, 169, 174, 79, 84, 166,\n\t\t50, 206, 5, 255, 132, 227, 83, 132, 192, 180, 207, 113, 2,\n\t\t26, 173, 212, 134, 40, 80, 33, 7, 150, 22, 85, 169, 120, 133,\n\t\t9, 0, 126, 104, 247, 185, 134, 40, 59, 55, 239, 171, 254,\n\t\t22, 237, 192, 123, 228, 125, 108, 41, 13, 69, 241, 243, 254,\n\t\t190, 235, 210, 81, 20, 119, 55, 161, 55, 28, 187, 221, 89,\n\t\t150, 230, 198, 223, 180, 61, 153, 206, 94, 121, 244, 138,\n\t\t59, 225, 68, 119, 13, 254, 29, 30, 131, 118, 237, 85, 173,\n\t\t202, 237, 71, 95, 121, 234, 56, 188, 1, 195, 187, 207, 61,\n\t\t244, 248, 53, 240, 67, 106, 191, 183, 176, 174, 238, 222,\n\t\t215, 89, 31, 188, 6, 224, 222, 27, 28, 113, 155, 188, 135,\n\t\t206, 131, 128, 243, 74, 168, 40, 190, 100, 217, 27, 115, 169,\n\t\t197, 54, 29, 23, 46, 179, 240, 255, 242, 66, 246, 10, 227,\n\t\t210, 91, 207, 158, 221, 158, 174, 84, 225, 62, 195, 179, 182,\n\t\t110, 250, 230, 55, 111, 58, 125, 112, 139, 92, 245, 18, 119,\n\t\t204, 231, 100, 206, 123, 180, 175, 72, 5, 41, 159, 246, 209,\n\t\t38, 246, 51, 158, 242, 236, 197, 155, 223, 122, 205, 19, 39,\n\t\t207, 116, 150, 52, 35, 153, 157, 61, 246, 166, 7, 14, 190,\n\t\t233, 1, 120, 250, 77, 215, 29, 191, 111, 197, 95, 62, 87,\n\t\t185, 228, 196, 201, 35, 131, 218, 238, 159, 238, 28, 217,\n\t\t120, 124, 115, 142, 3, 118, 36, 247, 80, 168, 84, 149, 110,\n\t\t62, 86, 133, 82, 12, 46, 127, 240, 241, 254, 114, 44, 23,\n\t\t160, 29, 202, 173, 176, 179, 189, 115, 254, 83, 59, 55, 86,\n\t\t42, 249, 172, 178, 93, 217, 253, 26, 236, 236, 200, 34, 234,\n\t\t157, 202, 206, 206, 246, 71, 118, 42, 59, 219, 149, 237, 27,\n\t\t225, 83, 59, 59, 59, 251, 57, 180, 223, 128, 29, 120, 159,\n\t\t178, 164, 108, 40, 103, 20, 37, 203, 127, 122, 16, 178, 166,\n\t\t20, 156, 155, 29, 129, 73, 222, 153, 204, 171, 246, 248, 62,\n\t\t11, 97, 96, 65, 0, 243, 237, 235, 144, 141, 243, 119, 68,\n\t\t77, 192, 251, 4, 73, 227, 108, 28, 143, 227, 135, 111, 177,\n\t\t207, 2, 59, 252, 179, 117, 85, 52, 146, 233, 116, 121, 253,\n\t\t132, 102, 230, 215, 20, 128, 253, 190, 154, 174, 181, 213,\n\t\t7, 0, 225, 168, 97, 104, 203, 43, 154, 209, 160, 73, 104,\n\t\t134, 9, 125, 113, 252, 113, 132, 9, 176, 78, 23, 131, 246,\n\t\t81, 60, 174, 143, 250, 205, 101, 225, 155, 154, 101, 181,\n\t\t0, 33, 216, 253, 135, 14, 1, 245, 135, 4, 86, 23, 127, 19,\n\t\t17, 153, 120, 121, 112, 77, 139, 34, 109, 173, 167, 37, 137,\n\t\t165, 92, 28, 31, 211, 149, 24, 174, 130, 255, 160, 40, 217,\n\t\t5, 90, 180, 139, 41, 210, 38, 146, 189, 90, 62, 6, 193, 144,\n\t\t15, 130, 161, 44, 87, 201, 87, 88, 209, 18, 6, 188, 6, 97,\n\t\t39, 24, 176, 26, 228, 255, 195, 128, 7, 97, 39, 144, 78, 130,\n\t\t128, 15, 88, 192, 134, 54, 132, 44, 228, 29, 94, 3, 11, 66,\n\t\t54, 12, 24, 31, 50, 30, 12, 45, 8, 7, 60, 223, 62, 96, 178,\n\t\t53, 236, 50, 62, 88, 70, 108, 25, 13, 89, 119, 25, 15, 59,\n\t\t221, 14, 147, 105, 156, 131, 206, 80, 206, 151, 81, 119, 176,\n\t\t12, 201, 50, 29, 38, 249, 26, 12, 147, 238, 50, 116, 147,\n\t\t116, 48, 149, 238, 134, 238, 96, 146, 91, 21, 178, 106, 98,\n\t\t154, 164, 131, 97, 110, 238, 79, 228, 99, 154, 118, 146, 13,\n\t\t88, 135, 65, 50, 76, 166, 147, 116, 146, 164, 147, 105, 103,\n\t\t146, 47, 39, 27, 144, 228, 11, 27, 144, 47, 77, 7, 147, 116,\n\t\t50, 76, 7, 121, 203, 96, 50, 220, 128, 233, 100, 42, 151,\n\t\t38, 197, 106, 58, 153, 230, 109, 47, 149, 184, 20, 15, 201,\n\t\t131, 61, 136, 134, 210, 119, 128, 231, 132, 120, 221, 127,\n\t\t60, 239, 78, 139, 90, 222, 35, 80, 212, 253, 38, 221, 142,\n\t\t44, 250, 237, 132, 65, 28, 254, 211, 111, 145, 243, 194, 81,\n\t\t49, 149, 81, 54, 249, 129, 191, 73, 72, 68, 200, 123, 229,\n\t\t244, 35, 125, 248, 111, 252, 73, 26, 32, 36, 31, 135, 239,\n\t\t42, 230, 115, 166, 30, 57, 205, 187, 33, 4, 4, 136, 108, 184,\n\t\t240, 64, 5, 39, 81, 190, 253, 206, 13, 244, 210, 222, 48,\n\t\t65, 255, 252, 71, 245, 49, 17, 130, 16, 134, 57, 199, 104,\n\t\t121, 92, 170, 148, 203, 227, 21, 34, 152, 103, 99, 70, 34,\n\t\t82, 223, 127, 106, 134, 74, 29, 26, 17, 100, 18, 226, 81,\n\t\t161, 139, 138, 208, 234, 23, 189, 192, 10, 154, 139, 97, 180,\n\t\t186, 26, 133, 139, 205, 224, 183, 200, 4, 227, 9, 41, 166,\n\t\t111, 62, 122, 78, 126, 1, 89, 51, 82, 124, 83, 12, 136, 201,\n\t\t223, 34, 27, 47, 124, 255, 124, 203, 124, 59, 32, 144, 58,\n\t\t81, 197, 83, 200, 26, 105, 192, 251, 235, 215, 185, 197, 151,\n\t\t119, 175, 153, 55, 236, 207, 136, 128, 151, 222, 53, 255,\n\t\t0, 4, 243, 32, 170, 92, 127, 233, 227, 10, 142, 109, 54, 255,\n\t\t78, 0, 82, 200, 186, 88, 4, 2, 231, 142, 18, 170, 9, 66, 41,\n\t\t166, 12, 65, 67, 167, 84, 107, 98, 70, 29, 31, 239, 254, 221,\n\t\t105, 66, 42, 79, 18, 82, 169, 200, 103, 3, 99, 54, 196, 24,\n\t\t35, 130, 133, 105, 10, 124, 227, 254, 6, 242, 100, 133, 144,\n\t\t211, 177, 223, 116, 85, 122, 121, 45, 142, 107, 151, 83, 213,\n\t\t109, 250, 10, 222, 251, 171, 189, 63, 132, 255, 19, 126, 82,\n\t\t81, 21, 91, 89, 148, 104, 36, 98, 156, 245, 81, 202, 120,\n\t\t146, 205, 232, 44, 191, 125, 217, 62, 155, 83, 142, 219, 152,\n\t\t12, 248, 193, 192, 126, 109, 99, 106, 171, 189, 174, 245,\n\t\t220, 160, 54, 12, 3, 120, 51, 163, 213, 199, 126, 246, 177,\n\t\t67, 119, 28, 158, 172, 171, 90, 160, 90, 238, 89, 91, 192,\n\t\t237, 246, 180, 241, 90, 91, 181, 186, 189, 94, 99, 248, 138,\n\t\t48, 248, 55, 154, 58, 60, 120, 195, 91, 222, 114, 195, 225,\n\t\t59, 14, 149, 41, 195, 181, 82, 123, 98, 11, 201, 67, 248,\n\t\t69, 116, 26, 206, 43, 247, 43, 223, 167, 188, 109, 174, 221,\n\t\t199, 167, 44, 13, 37, 113, 169, 44, 89, 201, 193, 197, 52,\n\t\t73, 195, 185, 113, 47, 179, 214, 101, 155, 204, 192, 239,\n\t\t227, 35, 48, 153, 101, 163, 177, 148, 8, 178, 176, 36, 46,\n\t\t226, 161, 44, 21, 147, 245, 164, 146, 135, 144, 79, 243, 54,\n\t\t36, 75, 140, 103, 236, 66, 70, 215, 100, 78, 73, 152, 35,\n\t\t79, 52, 243, 158, 121, 196, 48, 30, 121, 198, 163, 186, 70,\n\t\t220, 183, 191, 74, 55, 166, 215, 14, 79, 28, 204, 143, 251,\n\t\t100, 243, 138, 77, 174, 115, 15, 219, 182, 113, 103, 157,\n\t\t144, 250, 157, 66, 55, 116, 236, 89, 250, 230, 21, 155, 19,\n\t\t141, 82, 61, 57, 208, 122, 205, 85, 134, 190, 253, 154, 35,\n\t\t46, 209, 244, 231, 2, 139, 107, 92, 179, 254, 45, 85, 25,\n\t\t177, 2, 203, 130, 203, 134, 211, 215, 255, 56, 249, 32, 192,\n\t\t7, 201, 143, 191, 126, 58, 212, 41, 209, 214, 134, 119, 126,\n\t\t216, 252, 65, 68, 238, 49, 143, 223, 113, 224, 248, 195, 45,\n\t\t166, 107, 180, 126, 247, 230, 137, 215, 149, 111, 198, 170,\n\t\t37, 2, 173, 218, 18, 170, 176, 27, 79, 32, 244, 68, 195, 102,\n\t\t130, 27, 245, 72, 11, 12, 143, 220, 92, 126, 240, 196, 145,\n\t\t187, 235, 84, 211, 89, 184, 125, 205, 218, 117, 111, 247,\n\t\t239, 33, 232, 7, 197, 101, 15, 95, 50, 88, 211, 8, 253, 180,\n\t\t169, 73, 209, 145, 14, 97, 42, 213, 164, 78, 120, 49, 134,\n\t\t62, 41, 249, 215, 58, 138, 210, 27, 53, 80, 252, 18, 53, 41,\n\t\t79, 10, 31, 114, 54, 205, 70, 81, 29, 146, 21, 152, 194, 113,\n\t\t191, 102, 49, 56, 126, 247, 45, 59, 143, 223, 124, 211, 209,\n\t\t173, 228, 129, 43, 174, 200, 38, 9, 244, 198, 165, 201, 163,\n\t\t59, 78, 37, 54, 175, 126, 251, 205, 183, 188, 237, 216, 86,\n\t\t122, 197, 131, 87, 44, 116, 30, 154, 14, 26, 203, 55, 92,\n\t\t92, 55, 226, 40, 45, 169, 3, 17, 201, 202, 130, 66, 22, 36,\n\t\t71, 163, 223, 11, 251, 249, 100, 218, 13, 59, 251, 81, 212,\n\t\t80, 154, 209, 131, 108, 48, 174, 65, 193, 23, 148, 38, 233,\n\t\t100, 69, 86, 169, 101, 51, 88, 197, 204, 179, 157, 101, 179,\n\t\t18, 35, 188, 90, 143, 219, 254, 15, 183, 227, 221, 159, 137,\n\t\t219, 237, 24, 174, 140, 219, 143, 214, 1, 196, 98, 45, 153,\n\t\t104, 12, 54, 38, 253, 56, 135, 157, 237, 106, 165, 203, 80,\n\t\t21, 184, 123, 174, 125, 9, 64, 208, 107, 235, 58, 226, 230,\n\t\t180, 181, 188, 22, 116, 206, 189, 244, 222, 246, 119, 58,\n\t\t255, 113, 17, 188, 218, 242, 66, 88, 58, 180, 129, 208, 42,\n\t\t34, 21, 82, 246, 91, 156, 113, 173, 5, 174, 81, 247, 53, 87,\n\t\t98, 145, 218, 222, 231, 225, 14, 248, 130, 50, 80, 182, 242,\n\t\t17, 125, 52, 30, 133, 81, 33, 24, 57, 157, 77, 214, 33, 96,\n\t\t161, 5, 156, 245, 33, 157, 204, 127, 112, 28, 101, 211, 177,\n\t\t47, 11, 167, 210, 196, 239, 92, 192, 210, 249, 49, 89, 65,\n\t\t21, 19, 107, 211, 116, 121, 228, 233, 210, 1, 153, 117, 198,\n\t\t151, 175, 32, 213, 57, 119, 184, 54, 106, 8, 128, 85, 128,\n\t\t87, 247, 46, 61, 225, 234, 79, 174, 28, 39, 184, 179, 24,\n\t\t28, 45, 117, 170, 156, 111, 172, 225, 129, 173, 171, 250,\n\t\t176, 150, 242, 101, 41, 190, 216, 234, 34, 148, 94, 117, 184,\n\t\t215, 202, 182, 227, 134, 139, 225, 200, 238, 207, 189, 171,\n\t\t204, 161, 83, 247, 225, 93, 39, 142, 14, 175, 242, 117, 236,\n\t\t198, 175, 232, 31, 216, 158, 159, 35, 89, 55, 81, 216, 216,\n\t\t74, 15, 143, 125, 218, 230, 109, 63, 198, 41, 92, 243, 111,\n\t\t63, 249, 163, 187, 191, 3, 179, 171, 118, 127, 173, 125, 205,\n\t\t71, 175, 122, 2, 170, 187, 223, 140, 223, 15, 31, 123, 255,\n\t\t238, 95, 191, 63, 31, 255, 203, 123, 231, 225, 143, 165, 141,\n\t\t175, 42, 142, 226, 43, 74, 47, 165, 61, 21, 242, 243, 73,\n\t\t27, 96, 67, 154, 65, 22, 195, 137, 175, 67, 105, 247, 167,\n\t\t0, 118, 247, 34, 248, 188, 5, 214, 198, 209, 163, 187, 191,\n\t\t254, 245, 141, 223, 249, 198, 51, 63, 181, 167, 236, 41, 122,\n\t\t9, 62, 91, 122, 65, 91, 212, 58, 219, 219, 187, 191, 241,\n\t\t141, 13, 201, 53, 247, 60, 108, 195, 179, 202, 178, 114, 149,\n\t\t204, 23, 43, 184, 144, 194, 128, 79, 102, 210, 229, 53, 157,\n\t\t72, 114, 181, 162, 212, 95, 210, 245, 176, 97, 39, 153, 202,\n\t\t91, 90, 178, 114, 147, 233, 36, 27, 228, 171, 235, 208, 128,\n\t\t7, 17, 98, 72, 32, 29, 97, 211, 50, 92, 122, 46, 44, 133,\n\t\t141, 213, 149, 6, 16, 207, 107, 47, 182, 191, 132, 46, 193,\n\t\t164, 69, 173, 88, 133, 90, 13, 36, 3, 54, 194, 126, 224, 98,\n\t\t226, 31, 255, 16, 213, 185, 78, 77, 100, 3, 34, 94, 208, 48,\n\t\t202, 17, 178, 105, 243, 128, 87, 94, 142, 91, 155, 195, 193,\n\t\t180, 76, 41, 138, 87, 195, 234, 193, 165, 153, 109, 26, 151,\n\t\t156, 68, 107, 130, 133, 19, 207, 117, 172, 213, 58, 102, 66,\n\t\t213, 169, 16, 213, 214, 178, 173, 113, 206, 175, 84, 60, 5,\n\t\t237, 157, 135, 199, 224, 11, 74, 162, 172, 41, 231, 148, 235,\n\t\t148, 59, 149, 191, 1, 2, 46, 116, 97, 32, 117, 41, 127, 10,\n\t\t62, 11, 231, 225, 55, 224, 5, 248, 166, 162, 248, 133, 166,\n\t\t100, 3, 182, 32, 96, 221, 200, 66, 54, 204, 38, 155, 48, 73,\n\t\t147, 84, 94, 62, 41, 227, 147, 62, 100, 82, 208, 49, 137,\n\t\t59, 201, 52, 202, 114, 155, 58, 138, 3, 102, 131, 228, 85,\n\t\t69, 133, 90, 99, 19, 250, 40, 99, 60, 202, 54, 129, 143, 100,\n\t\t100, 69, 166, 119, 204, 198, 89, 3, 21, 44, 92, 5, 97, 55,\n\t\t164, 201, 108, 11, 36, 127, 191, 44, 228, 203, 59, 212, 201,\n\t\t108, 56, 155, 110, 66, 90, 56, 41, 38, 217, 108, 154, 111,\n\t\t232, 166, 115, 184, 50, 27, 39, 179, 108, 16, 72, 34, 60,\n\t\t22, 111, 194, 56, 150, 245, 51, 18, 205, 52, 32, 140, 121,\n\t\t39, 191, 1, 66, 22, 7, 97, 254, 242, 104, 94, 120, 25, 95,\n\t\t32, 118, 232, 230, 189, 119, 60, 195, 133, 46, 70, 129, 130,\n\t\t36, 157, 92, 156, 91, 178, 209, 156, 126, 167, 55, 202, 70,\n\t\t197, 230, 76, 50, 46, 114, 25, 112, 233, 206, 3, 50, 179,\n\t\t252, 189, 188, 216, 204, 120, 33, 142, 144, 22, 187, 155,\n\t\t251, 86, 228, 133, 48, 72, 166, 242, 109, 82, 145, 67, 198,\n\t\t85, 186, 29, 206, 108, 40, 118, 42, 63, 174, 9, 251, 205,\n\t\t50, 135, 99, 50, 205, 71, 23, 27, 164, 216, 102, 161, 145,\n\t\t195, 163, 113, 178, 5, 82, 7, 179, 8, 251, 116, 226, 81, 38,\n\t\t67, 174, 157, 162, 152, 150, 117, 89, 86, 80, 230, 73, 13,\n\t\t217, 81, 218, 73, 214, 65, 138, 55, 196, 178, 234, 121, 255,\n\t\t216, 31, 145, 229, 147, 61, 238, 81, 102, 170, 249, 85, 55,\n\t\t31, 234, 145, 90, 114, 169, 145, 227, 3, 92, 199, 152, 121,\n\t\t129, 241, 128, 106, 250, 110, 175, 207, 120, 1, 81, 48, 210,\n\t\t177, 225, 184, 188, 0, 15, 136, 138, 173, 150, 225, 123, 28,\n\t\t191, 139, 81, 32, 42, 53, 169, 70, 16, 227, 95, 195, 154,\n\t\t65, 248, 98, 176, 94, 90, 92, 140, 215, 67, 191, 68, 136,\n\t\t206, 57, 142, 176, 138, 49, 53, 77, 219, 65, 4, 3, 114, 41,\n\t\t214, 133, 33, 53, 43, 108, 13, 12, 225, 213, 12, 163, 26,\n\t\t19, 4, 161, 0, 140, 73, 151, 9, 213, 37, 4, 17, 138, 40, 137,\n\t\t171, 134, 97, 198, 154, 48, 64, 179, 114, 160, 103, 8, 41,\n\t\t251, 130, 164, 106, 6, 128, 99, 155, 38, 7, 172, 146, 112,\n\t\t49, 116, 17, 38, 152, 89, 166, 67, 9, 165, 134, 169, 154,\n\t\t186, 170, 18, 70, 40, 199, 8, 195, 238, 159, 16, 234, 24,\n\t\t54, 163, 8, 97, 55, 20, 170, 105, 208, 33, 81, 133, 145, 3,\n\t\t44, 76, 57, 46, 123, 128, 168, 93, 34, 200, 85, 153, 203,\n\t\t216, 235, 57, 117, 153, 110, 35, 82, 178, 41, 2, 143, 131,\n\t\t166, 233, 106, 126, 32, 12, 130, 5, 128, 129, 129, 81, 205,\n\t\t242, 43, 9, 35, 81, 147, 186, 173, 107, 91, 46, 109, 133,\n\t\t132, 37, 21, 223, 82, 25, 3, 108, 0, 8, 140, 248, 28, 116,\n\t\t10, 219, 102, 161, 183, 200, 117, 160, 248, 136, 69, 97, 106,\n\t\t122, 140, 169, 175, 222, 140, 41, 99, 254, 163, 190, 65, 227,\n\t\t15, 120, 166, 166, 178, 147, 2, 168, 181, 129, 9, 232, 124,\n\t\t233, 189, 204, 36, 196, 180, 44, 211, 26, 50, 134, 136, 70,\n\t\t77, 170, 18, 160, 12, 176, 138, 17, 210, 87, 84, 130, 144,\n\t\t208, 169, 42, 120, 126, 14, 25, 19, 152, 16, 21, 9, 106, 134,\n\t\t76, 3, 172, 49, 86, 162, 166, 225, 85, 117, 161, 249, 43,\n\t\t82, 191, 146, 170, 24, 169, 60, 52, 49, 167, 152, 81, 204,\n\t\t116, 74, 16, 119, 39, 158, 103, 152, 180, 244, 34, 35, 154,\n\t\t70, 136, 170, 50, 118, 23, 214, 122, 225, 162, 189, 70, 130,\n\t\t128, 172, 241, 106, 24, 46, 112, 94, 241, 170, 93, 205, 66,\n\t\t8, 115, 225, 233, 142, 46, 9, 46, 235, 40, 240, 13, 74, 0,\n\t\t17, 89, 40, 151, 239, 221, 35, 162, 137, 188, 58, 104, 92,\n\t\t133, 154, 225, 6, 66, 0, 82, 3, 14, 168, 41, 136, 202, 65,\n\t\t67, 88, 101, 72, 197, 148, 32, 194, 12, 17, 168, 8, 213, 115,\n\t\t228, 105, 56, 154, 47, 56, 193, 150, 214, 173, 122, 48, 100,\n\t\t149, 252, 18, 51, 116, 21, 48, 162, 33, 231, 54, 99, 8, 104,\n\t\t153, 130, 9, 170, 46, 93, 19, 21, 134, 41, 90, 177, 57, 71,\n\t\t192, 74, 20, 16, 251, 180, 86, 42, 143, 25, 112, 54, 176,\n\t\t86, 250, 0, 253, 21, 119, 141, 113, 96, 227, 114, 73, 203,\n\t\t143, 153, 201, 116, 14, 0, 38, 178, 235, 101, 143, 9, 0, 91,\n\t\t103, 8, 51, 209, 32, 172, 109, 49, 213, 182, 85, 102, 181,\n\t\t25, 105, 8, 134, 17, 211, 109, 0, 193, 188, 178, 25, 81, 130,\n\t\t76, 0, 224, 186, 106, 10, 242, 193, 122, 96, 0, 165, 120,\n\t\t25, 173, 28, 244, 132, 106, 15, 182, 29, 193, 109, 103, 187,\n\t\t36, 60, 100, 111, 88, 43, 104, 25, 83, 10, 70, 240, 119, 42,\n\t\t37, 66, 120, 127, 4, 148, 106, 130, 82, 77, 37, 76, 33, 138,\n\t\t177, 119, 94, 249, 59, 248, 101, 197, 84, 254, 147, 242, 135,\n\t\t202, 95, 41, 74, 102, 195, 220, 201, 182, 14, 209, 8, 71,\n\t\t179, 172, 232, 18, 167, 50, 181, 43, 201, 59, 200, 57, 163,\n\t\t87, 110, 138, 230, 91, 242, 158, 112, 222, 29, 238, 247, 22,\n\t\t156, 21, 137, 114, 47, 173, 207, 95, 56, 75, 7, 221, 132,\n\t\t239, 199, 170, 89, 148, 5, 209, 80, 242, 140, 72, 220, 90,\n\t\t48, 165, 206, 38, 23, 140, 192, 56, 144, 16, 55, 155, 101,\n\t\t220, 66, 157, 62, 20, 125, 71, 222, 175, 5, 243, 96, 183,\n\t\t132, 168, 121, 127, 52, 47, 53, 40, 234, 167, 199, 163, 185,\n\t\t83, 57, 11, 216, 28, 200, 21, 68, 8, 161, 13, 17, 159, 164,\n\t\t60, 232, 28, 129, 49, 11, 131, 209, 87, 44, 218, 171, 184,\n\t\t117, 151, 217, 205, 215, 124, 42, 254, 249, 216, 54, 8, 7,\n\t\t12, 212, 100, 6, 151, 86, 28, 202, 141, 30, 135, 35, 64, 92,\n\t\t195, 115, 65, 31, 138, 202, 64, 48, 199, 64, 165, 89, 34,\n\t\t77, 33, 66, 25, 193, 249, 165, 143, 48, 80, 76, 48, 71, 136,\n\t\t91, 2, 91, 42, 32, 131, 11, 176, 1, 33, 217, 169, 33, 204,\n\t\t8, 37, 68, 67, 212, 50, 9, 55, 117, 136, 86, 214, 150, 35,\n\t\t16, 152, 170, 6, 150, 2, 170, 146, 150, 18, 49, 68, 40, 80,\n\t\t162, 106, 12, 35, 76, 136, 163, 234, 140, 96, 134, 192, 211,\n\t\t204, 136, 254, 238, 235, 95, 127, 124, 96, 235, 230, 17, 204,\n\t\t5, 62, 168, 29, 63, 137, 32, 2, 82, 59, 88, 190, 146, 171,\n\t\t68, 144, 43, 203, 38, 104, 38, 24, 239, 212, 49, 69, 204,\n\t\t225, 132, 162, 124, 47, 152, 0, 86, 243, 17, 150, 17, 15,\n\t\t197, 156, 18, 200, 109, 84, 186, 77, 48, 96, 33, 176, 142,\n\t\t40, 66, 20, 35, 42, 84, 130, 84, 106, 75, 33, 13, 238, 83,\n\t\t106, 91, 88, 5, 80, 41, 22, 184, 93, 216, 96, 185, 9, 8, 156,\n\t\t8, 75, 101, 28, 115, 130, 169, 143, 25, 66, 216, 184, 13,\n\t\t9, 206, 5, 186, 18, 25, 136, 132, 132, 2, 18, 44, 16, 54,\n\t\t39, 185, 249, 101, 115, 85, 195, 220, 180, 234, 76, 232, 92,\n\t\t229, 26, 97, 45, 247, 29, 154, 16, 26, 211, 96, 184, 141,\n\t\t25, 71, 176, 177, 68, 108, 40, 36, 147, 128, 124, 47, 31,\n\t\t107, 142, 154, 255, 9, 118, 144, 172, 107, 33, 222, 199, 169,\n\t\t212, 199, 190, 152, 224, 227, 107, 87, 117, 75, 177, 142,\n\t\t144, 202, 99, 191, 119, 101, 243, 123, 216, 59, 102, 63, 178,\n\t\t182, 94, 99, 52, 114, 7, 157, 127, 115, 183, 180, 1, 10, 206,\n\t\t2, 71, 90, 90, 13, 20, 187, 22, 240, 118, 31, 82, 119, 19,\n\t\t50, 24, 37, 221, 28, 17, 20, 212, 126, 179, 100, 223, 209,\n\t\t192, 226, 65, 131, 134, 1, 15, 44, 144, 185, 67, 211, 220,\n\t\t38, 164, 195, 139, 95, 32, 45, 175, 252, 250, 239, 176, 241,\n\t\t104, 54, 138, 198, 163, 137, 4, 23, 57, 116, 147, 121, 93,\n\t\t97, 16, 21, 25, 26, 129, 220, 14, 191, 128, 252, 134, 87,\n\t\t77, 209, 238, 123, 105, 90, 171, 45, 97, 184, 130, 1, 181,\n\t\t4, 197, 170, 174, 50, 76, 188, 208, 115, 92, 7, 99, 202, 112,\n\t\t126, 90, 243, 179, 240, 64, 126, 213, 32, 74, 120, 222, 123,\n\t\t98, 199, 117, 188, 208, 203, 7, 28, 27, 83, 97, 81, 96, 158,\n\t\t191, 16, 186, 132, 4, 20, 99, 16, 244, 65, 42, 7, 179, 144,\n\t\t16, 55, 92, 240, 225, 188, 215, 12, 240, 238, 251, 241, 98,\n\t\t181, 154, 16, 120, 4, 47, 213, 118, 239, 211, 169, 170, 14,\n\t\t79, 222, 165, 89, 12, 33, 13, 33, 21, 73, 197, 22, 131, 31,\n\t\t210, 129, 49, 198, 64, 63, 196, 13, 65, 243, 81, 79, 205,\n\t\t95, 128, 45, 251, 174, 147, 67, 85, 165, 249, 193, 6, 206,\n\t\t104, 179, 182, 194, 72, 62, 198, 173, 212, 154, 148, 113,\n\t\t80, 17, 82, 20, 5, 246, 190, 189, 247, 155, 240, 43, 112,\n\t\t94, 89, 40, 56, 79, 164, 242, 68, 146, 74, 6, 133, 212, 2,\n\t\t137, 70, 114, 128, 35, 163, 134, 4, 62, 17, 91, 186, 113,\n\t\t238, 80, 213, 108, 117, 91, 205, 114, 82, 11, 49, 71, 230,\n\t\t235, 58, 229, 229, 205, 133, 54, 115, 84, 77, 109, 92, 123,\n\t\t250, 10, 104, 44, 222, 182, 214, 191, 218, 75, 110, 191, 76,\n\t\t100, 107, 93, 70, 154, 122, 253, 104, 217, 57, 187, 113, 247,\n\t\t114, 249, 208, 112, 217, 48, 128, 149, 218, 27, 82, 15, 227,\n\t\t60, 124, 11, 206, 43, 51, 229, 104, 142, 203, 217, 60, 37,\n\t\t48, 12, 184, 68, 107, 211, 151, 74, 245, 37, 61, 115, 183,\n\t\t147, 242, 121, 74, 112, 50, 167, 180, 155, 78, 94, 10, 155,\n\t\t7, 160, 255, 168, 105, 133, 205, 230, 74, 19, 213, 223, 170,\n\t\t5, 81, 173, 154, 214, 106, 235, 91, 151, 207, 86, 187, 35,\n\t\t100, 24, 29, 221, 136, 93, 206, 71, 149, 187, 14, 46, 249,\n\t\t77, 191, 190, 248, 231, 143, 240, 198, 74, 179, 25, 114, 30,\n\t\t221, 38, 116, 124, 196, 104, 230, 87, 98, 211, 216, 228, 151,\n\t\t14, 102, 151, 87, 70, 148, 187, 186, 97, 232, 157, 24, 141,\n\t\t58, 171, 7, 222, 188, 88, 247, 155, 254, 210, 193, 151, 233,\n\t\t49, 78, 149, 19, 57, 254, 127, 169, 78, 119, 58, 225, 29,\n\t\t222, 201, 241, 228, 92, 129, 124, 223, 216, 146, 190, 52,\n\t\t89, 94, 125, 161, 213, 47, 18, 8, 247, 115, 4, 199, 254, 104,\n\t\t19, 230, 63, 37, 250, 55, 239, 187, 235, 206, 247, 223, 245,\n\t\t93, 80, 225, 97, 76, 36, 33, 47, 107, 8, 93, 115, 36, 27,\n\t\t14, 191, 158, 8, 160, 172, 33, 4, 168, 122, 24, 173, 175,\n\t\t108, 108, 172, 252, 77, 62, 121, 211, 228, 134, 241, 248,\n\t\t134, 201, 149, 15, 61, 4, 15, 222, 245, 190, 187, 238, 122,\n\t\t223, 123, 200, 143, 106, 16, 98, 68, 208, 219, 242, 14, 84,\n\t\t104, 13, 140, 85, 102, 178, 135, 56, 56, 128, 132, 95, 238,\n\t\t48, 160, 92, 68, 92, 37, 4, 38, 243, 189, 252, 205, 202, 198,\n\t\t238, 157, 147, 235, 95, 115, 253, 228, 161, 79, 60, 148, 95,\n\t\t35, 223, 217, 251, 26, 60, 14, 159, 148, 17, 205, 28, 17,\n\t\t75, 235, 24, 201, 136, 96, 126, 142, 108, 41, 231, 27, 70,\n\t\t124, 16, 178, 125, 219, 57, 223, 58, 147, 147, 241, 108, 156,\n\t\t255, 238, 128, 7, 240, 24, 173, 135, 203, 177, 139, 92, 81,\n\t\t113, 203, 122, 222, 213, 185, 207, 9, 6, 152, 149, 204, 196,\n\t\t108, 249, 145, 168, 230, 205, 50, 201, 132, 241, 63, 194,\n\t\t30, 218, 8, 74, 68, 120, 246, 170, 45, 52, 66, 16, 35, 222,\n\t\t100, 156, 216, 184, 11, 92, 100, 151, 221, 161, 67, 213, 224,\n\t\t12, 177, 141, 80, 104, 152, 34, 202, 149, 61, 145, 95, 223,\n\t\t224, 95, 115, 255, 187, 5, 40, 177, 18, 239, 157, 135, 63,\n\t\t129, 47, 42, 151, 43, 119, 40, 143, 40, 207, 41, 191, 161,\n\t\t252, 174, 242, 251, 202, 159, 41, 127, 175, 252, 3, 32, 104,\n\t\t193, 8, 50, 184, 18, 110, 132, 187, 225, 113, 248, 9, 248,\n\t\t2, 252, 26, 124, 25, 254, 64, 242, 255, 49, 222, 78, 210,\n\t\t201, 180, 143, 37, 159, 136, 52, 150, 139, 164, 178, 249,\n\t\t143, 155, 72, 185, 150, 77, 154, 201, 56, 152, 12, 139, 202,\n\t\t116, 236, 6, 138, 27, 24, 10, 249, 150, 89, 52, 167, 135,\n\t\t29, 229, 135, 137, 179, 120, 22, 133, 163, 153, 44, 241, 73,\n\t\t101, 250, 117, 60, 147, 57, 89, 13, 84, 92, 34, 114, 231,\n\t\t60, 217, 132, 184, 159, 31, 97, 206, 120, 3, 164, 50, 125,\n\t\t204, 230, 137, 108, 145, 204, 239, 182, 80, 200, 98, 38, 173,\n\t\t137, 116, 82, 16, 149, 68, 225, 44, 102, 233, 38, 100, 22,\n\t\t74, 131, 78, 97, 224, 167, 9, 103, 233, 68, 202, 227, 179,\n\t\t136, 143, 7, 69, 58, 188, 220, 111, 20, 79, 134, 217, 56,\n\t\t73, 59, 217, 6, 154, 38, 221, 77, 200, 54, 96, 42, 65, 191,\n\t\t133, 226, 96, 94, 143, 20, 103, 44, 233, 38, 82, 109, 63,\n\t\t138, 199, 147, 81, 120, 24, 18, 206, 178, 89, 58, 145, 249,\n\t\t230, 121, 123, 62, 120, 55, 32, 102, 124, 60, 195, 146, 75,\n\t\t128, 39, 60, 41, 4, 251, 71, 195, 40, 46, 72, 6, 26, 16, 7,\n\t\t13, 28, 204, 153, 27, 70, 13, 249, 74, 20, 71, 249, 177, 129,\n\t\t62, 202, 109, 184, 89, 28, 204, 153, 132, 89, 104, 33, 153,\n\t\t207, 46, 43, 159, 106, 40, 236, 67, 150, 228, 159, 20, 197,\n\t\t17, 101, 60, 201, 54, 49, 143, 178, 40, 100, 73, 92, 92, 106,\n\t\t40, 255, 214, 227, 6, 204, 224, 91, 160, 9, 182, 123, 163,\n\t\t236, 117, 49, 0, 15, 176, 214, 175, 34, 44, 128, 67, 217,\n\t\t210, 5, 151, 206, 81, 132, 90, 88, 213, 60, 61, 162, 122,\n\t\t189, 119, 119, 131, 187, 182, 69, 124, 100, 51, 10, 130, 130,\n\t\t225, 230, 176, 128, 239, 126, 171, 54, 81, 137, 199, 64, 7,\n\t\t162, 10, 140, 185, 64, 64, 49, 190, 207, 34, 193, 50, 38,\n\t\t0, 24, 235, 188, 227, 168, 174, 61, 99, 13, 167, 84, 1, 215,\n\t\t237, 134, 107, 51, 238, 173, 82, 196, 121, 203, 68, 170, 163,\n\t\t33, 65, 5, 19, 156, 214, 78, 54, 47, 113, 8, 16, 10, 2, 88,\n\t\t200, 61, 39, 6, 168, 122, 212, 162, 56, 135, 127, 191, 15,\n\t\t0, 81, 157, 2, 165, 204, 15, 49, 214, 84, 219, 199, 22, 101,\n\t\t85, 203, 64, 142, 230, 32, 172, 83, 14, 119, 97, 234, 155,\n\t\t132, 119, 62, 246, 115, 136, 195, 178, 13, 134, 1, 75, 71,\n\t\t196, 255, 35, 84, 64, 160, 233, 6, 182, 9, 115, 194, 56, 199,\n\t\t182, 160, 99, 164, 199, 60, 58, 8, 204, 193, 216, 202, 81,\n\t\t16, 16, 234, 26, 241, 130, 21, 194, 53, 20, 184, 9, 52, 228,\n\t\t88, 8, 20, 49, 166, 129, 10, 0, 53, 254, 215, 180, 102, 112,\n\t\t149, 116, 125, 245, 115, 36, 34, 26, 128, 75, 80, 228, 223,\n\t\t30, 80, 208, 25, 145, 67, 190, 192, 102, 83, 32, 38, 153,\n\t\t227, 234, 249, 152, 195, 93, 211, 205, 13, 51, 204, 193, 212,\n\t\t45, 134, 244, 5, 96, 24, 128, 89, 94, 219, 97, 232, 139, 152,\n\t\t230, 128, 29, 1, 67, 249, 140, 0, 238, 97, 128, 229, 176,\n\t\t13, 32, 28, 205, 126, 87, 124, 0, 213, 214, 175, 195, 76,\n\t\t239, 217, 84, 168, 0, 72, 183, 88, 171, 23, 243, 118, 37,\n\t\t204, 77, 52, 98, 105, 38, 85, 117, 21, 241, 170, 131, 136,\n\t\t102, 32, 219, 38, 161, 187, 22, 1, 38, 40, 135, 67, 91, 182,\n\t\t234, 234, 38, 51, 8, 211, 45, 17, 83, 219, 245, 248, 226,\n\t\t15, 14, 66, 29, 89, 26, 51, 44, 64, 185, 45, 241, 54, 209,\n\t\t9, 129, 229, 150, 170, 110, 227, 124, 248, 69, 24, 225, 91,\n\t\t157, 137, 17, 68, 132, 81, 21, 217, 39, 77, 252, 226, 66,\n\t\t57, 32, 22, 103, 149, 122, 80, 10, 106, 220, 78, 73, 101,\n\t\t235, 214, 145, 105, 25, 154, 48, 100, 237, 156, 202, 57, 67,\n\t\t174, 110, 180, 123, 90, 201, 171, 168, 106, 83, 168, 208,\n\t\t70, 40, 114, 252, 37, 4, 26, 225, 148, 33, 242, 78, 164, 17,\n\t\t6, 220, 209, 99, 140, 133, 133, 84, 192, 20, 121, 56, 239,\n\t\t159, 129, 0, 24, 45, 106, 153, 57, 44, 21, 50, 135, 12, 97,\n\t\t230, 30, 230, 145, 21, 104, 182, 9, 206, 186, 91, 1, 10, 56,\n\t\t4, 66, 128, 33, 41, 151, 165, 26, 4, 132, 233, 48, 222, 200,\n\t\t209, 41, 241, 35, 19, 116, 224, 18, 214, 81, 206, 88, 168,\n\t\t177, 86, 132, 137, 208, 128, 68, 140, 112, 134, 245, 164,\n\t\t229, 19, 21, 3, 10, 225, 70, 35, 4, 164, 49, 177, 132, 214,\n\t\t17, 224, 170, 214, 101, 92, 35, 106, 211, 130, 42, 149, 244,\n\t\t112, 20, 97, 6, 68, 53, 100, 0, 0, 29, 71, 185, 125, 67, 168,\n\t\t10, 132, 115, 44, 192, 177, 154, 22, 209, 17, 148, 82, 68,\n\t\t49, 80, 23, 169, 154, 64, 212, 115, 65, 87, 17, 37, 42, 85,\n\t\t129, 86, 133, 164, 149, 139, 68, 200, 22, 22, 193, 206, 173,\n\t\t36, 161, 25, 136, 218, 96, 53, 84, 68, 16, 195, 194, 2, 64,\n\t\t154, 109, 129, 162, 144, 189, 191, 216, 251, 121, 132, 100,\n\t\t204, 173, 163, 108, 74, 254, 184, 57, 117, 211, 38, 140, 71,\n\t\t254, 44, 235, 88, 136, 91, 164, 129, 134, 133, 52, 104, 26,\n\t\t197, 179, 121, 166, 238, 38, 150, 108, 106, 22, 201, 59, 187,\n\t\t6, 228, 166, 193, 44, 219, 36, 227, 81, 220, 0, 11, 217, 48,\n\t\t136, 103, 217, 12, 190, 255, 250, 245, 251, 159, 255, 233,\n\t\t245, 89, 247, 161, 173, 147, 15, 10, 134, 78, 141, 47, 241,\n\t\t116, 91, 205, 237, 130, 124, 204, 86, 179, 127, 241, 153,\n\t\t241, 207, 170, 211, 236, 204, 79, 174, 175, 216, 52, 72, 78,\n\t\t174, 45, 97, 100, 32, 95, 115, 109, 230, 182, 255, 64, 211,\n\t\t160, 255, 239, 58, 77, 26, 232, 182, 65, 41, 165, 132, 82,\n\t\t29, 198, 76, 117, 182, 224, 67, 179, 231, 127, 122, 253, 254,\n\t\t231, 95, 121, 96, 115, 247, 95, 231, 215, 147, 96, 68, 19,\n\t\t58, 55, 136, 238, 149, 97, 246, 14, 32, 155, 111, 232, 244,\n\t\t151, 206, 156, 184, 50, 72, 214, 91, 24, 59, 42, 71, 26, 215,\n\t\t45, 17, 84, 103, 88, 32, 28, 35, 61, 196, 38, 87, 49, 194,\n\t\t140, 97, 6, 29, 4, 106, 251, 229, 152, 25, 43, 142, 50, 43,\n\t\t212, 220, 178, 105, 55, 12, 36, 168, 25, 143, 230, 133, 223,\n\t\t235, 82, 189, 178, 16, 65, 44, 248, 122, 155, 48, 207, 193,\n\t\t73, 121, 4, 231, 119, 183, 191, 189, 28, 219, 70, 199, 91,\n\t\t171, 119, 238, 104, 166, 213, 186, 102, 235, 84, 101, 174,\n\t\t214, 246, 151, 106, 157, 74, 89, 83, 85, 13, 59, 102, 217,\n\t\t233, 132, 240, 244, 238, 246, 29, 31, 248, 64, 37, 12, 210,\n\t\t86, 171, 89, 43, 215, 76, 194, 53, 149, 10, 234, 133, 157,\n\t\t214, 160, 174, 81, 66, 184, 160, 170, 81, 9, 86, 94, 142,\n\t\t233, 107, 202, 177, 127, 162, 34, 255, 127, 248, 187, 94,\n\t\t4, 251, 191, 248, 223, 255, 157, 95, 174, 160, 240, 223, 251,\n\t\t245, 21, 174, 40, 123, 207, 35, 5, 158, 85, 74, 74, 95, 57,\n\t\t174, 220, 44, 235, 63, 30, 85, 20, 169, 120, 157, 53, 144,\n\t\t28, 67, 71, 140, 71, 243, 40, 130, 28, 227, 7, 209, 112, 22,\n\t\t231, 200, 45, 77, 178, 52, 31, 129, 123, 17, 143, 11, 206,\n\t\t127, 158, 100, 179, 44, 101, 146, 106, 161, 87, 164, 184,\n\t\t164, 50, 101, 60, 157, 197, 145, 4, 158, 155, 192, 229, 85,\n\t\t89, 92, 215, 60, 138, 249, 88, 50, 216, 166, 22, 100, 219,\n\t\t27, 195, 43, 214, 83, 172, 10, 24, 30, 190, 100, 12, 11, 152,\n\t\t215, 75, 97, 117, 9, 190, 191, 129, 96, 189, 100, 235, 194,\n\t\t43, 171, 26, 94, 219, 66, 16, 237, 254, 103, 29, 247, 109,\n\t\t145, 34, 8, 163, 58, 160, 126, 197, 214, 5, 184, 101, 120,\n\t\t216, 175, 213, 124, 157, 110, 229, 59, 10, 243, 189, 44, 33,\n\t\t51, 250, 101, 174, 30, 62, 109, 221, 250, 134, 211, 156, 95,\n\t\t69, 160, 169, 95, 166, 183, 58, 165, 82, 231, 80, 122, 248,\n\t\t24, 130, 18, 86, 85, 104, 1, 90, 233, 226, 56, 173, 5, 149,\n\t\t218, 183, 135, 217, 241, 105, 25, 233, 106, 217, 85, 117,\n\t\t123, 48, 186, 108, 121, 241, 205, 186, 61, 212, 181, 213,\n\t\t195, 171, 73, 52, 60, 112, 124, 90, 69, 186, 90, 242, 96,\n\t\t161, 158, 214, 208, 198, 81, 4, 113, 212, 4, 180, 146, 114,\n\t\t97, 70, 230, 107, 64, 220, 242, 134, 75, 237, 91, 14, 207,\n\t\t78, 126, 223, 130, 51, 153, 184, 221, 114, 27, 160, 61, 120,\n\t\t25, 215, 243, 72, 81, 232, 69, 193, 145, 252, 146, 193, 5,\n\t\t117, 203, 62, 169, 248, 17, 40, 18, 109, 214, 101, 130, 123,\n\t\t194, 108, 128, 39, 47, 202, 95, 250, 58, 215, 108, 225, 135,\n\t\t84, 115, 84, 47, 218, 208, 218, 166, 14, 98, 184, 40, 144,\n\t\t110, 36, 198, 106, 107, 254, 34, 121, 77, 64, 95, 119, 117,\n\t\t86, 241, 127, 68, 117, 13, 30, 71, 203, 151, 235, 96, 232,\n\t\t13, 109, 235, 144, 86, 215, 76, 228, 109, 203, 220, 141, 223,\n\t\t131, 183, 194, 39, 149, 166, 162, 248, 97, 193, 110, 100,\n\t\t23, 236, 111, 201, 122, 97, 64, 228, 223, 84, 150, 189, 127,\n\t\t232, 154, 232, 100, 20, 16, 235, 204, 77, 54, 246, 75, 155,\n\t\t222, 131, 139, 173, 133, 212, 237, 196, 173, 37, 184, 226,\n\t\t212, 163, 45, 18, 251, 83, 239, 190, 71, 188, 89, 16, 163,\n\t\t240, 221, 151, 47, 47, 175, 247, 160, 26, 47, 68, 203, 74,\n\t\t222, 191, 253, 253, 222, 127, 65, 79, 192, 71, 149, 145, 114,\n\t\t92, 185, 86, 106, 205, 68, 18, 85, 69, 5, 99, 100, 34, 29,\n\t\t223, 172, 72, 226, 159, 101, 135, 164, 54, 184, 148, 15, 207,\n\t\t54, 241, 120, 22, 55, 128, 206, 214, 161, 176, 71, 227, 200,\n\t\t11, 163, 108, 52, 163, 57, 146, 179, 229, 197, 90, 96, 231,\n\t\t180, 96, 21, 96, 77, 152, 161, 199, 152, 206, 175, 60, 67,\n\t\t48, 225, 252, 188, 106, 216, 92, 219, 186, 175, 26, 107, 176,\n\t\t117, 20, 171, 238, 237, 109, 202, 40, 194, 31, 249, 37, 118,\n\t\t0, 113, 7, 213, 26, 85, 100, 168, 236, 232, 238, 39, 41, 121,\n\t\t18, 97, 184, 7, 48, 70, 143, 3, 195, 15, 194, 120, 19, 97,\n\t\t246, 139, 135, 40, 97, 232, 166, 155, 37, 45, 220, 144, 97,\n\t\t58, 40, 17, 124, 240, 196, 151, 56, 70, 209, 93, 148, 83,\n\t\t140, 143, 99, 138, 52, 243, 225, 26, 167, 33, 122, 215, 123,\n\t\t69, 128, 4, 162, 136, 238, 238, 245, 213, 115, 88, 67, 64,\n\t\t9, 69, 58, 187, 250, 12, 208, 191, 199, 42, 195, 187, 127,\n\t\t7, 24, 85, 15, 194, 181, 152, 160, 225, 157, 76, 96, 104,\n\t\t54, 1, 222, 131, 240, 17, 65, 65, 195, 64, 174, 112, 139,\n\t\t154, 160, 253, 250, 197, 178, 210, 83, 102, 202, 213, 202,\n\t\t171, 148, 55, 42, 74, 47, 12, 86, 160, 179, 46, 235, 76, 231,\n\t\t9, 25, 205, 66, 186, 174, 123, 81, 102, 6, 159, 47, 39, 251,\n\t\t41, 27, 243, 20, 142, 66, 254, 242, 165, 121, 145, 198, 241,\n\t\t143, 226, 117, 73, 161, 29, 223, 0, 94, 3, 153, 20, 150, 205,\n\t\t192, 193, 58, 130, 54, 214, 73, 62, 240, 181, 176, 129, 175,\n\t\t198, 88, 199, 216, 193, 100, 13, 16, 214, 201, 243, 24, 55,\n\t\t155, 197, 179, 143, 241, 39, 7, 157, 221, 63, 236, 172, 15,\n\t\t58, 80, 239, 172, 111, 222, 246, 47, 111, 191, 226, 176, 137,\n\t\t9, 112, 166, 245, 15, 58, 157, 111, 159, 194, 176, 186, 76,\n\t\t136, 156, 97, 124, 42, 255, 223, 192, 58, 6, 116, 10, 227,\n\t\t131, 27, 216, 152, 63, 244, 124, 195, 43, 95, 218, 209, 224,\n\t\t163, 179, 43, 174, 152, 13, 47, 19, 216, 246, 49, 226, 8,\n\t\t145, 218, 170, 151, 202, 190, 88, 97, 72, 129, 55, 40, 170,\n\t\t178, 172, 156, 150, 245, 142, 65, 108, 65, 154, 76, 123, 65,\n\t\t52, 14, 139, 98, 242, 132, 213, 97, 28, 118, 115, 115, 56,\n\t\t45, 82, 114, 226, 113, 216, 237, 77, 199, 97, 144, 95, 123,\n\t\t83, 233, 192, 179, 72, 146, 38, 71, 96, 28, 6, 163, 233, 21,\n\t\t85, 99, 181, 84, 134, 63, 178, 245, 218, 122, 173, 82, 73,\n\t\t211, 114, 216, 216, 88, 238, 29, 16, 149, 210, 238, 215, 206,\n\t\t46, 119, 147, 197, 82, 216, 194, 136, 49, 93, 183, 196, 218,\n\t\t217, 18, 188, 238, 203, 43, 158, 134, 157, 32, 237, 104, 246,\n\t\t217, 218, 122, 237, 172, 99, 89, 78, 124, 150, 167, 129, 71,\n\t\t126, 118, 101, 163, 223, 61, 123, 22, 254, 253, 226, 140,\n\t\t115, 227, 164, 134, 112, 4, 36, 7, 199, 200, 152, 188, 253,\n\t\t33, 93, 47, 242, 160, 208, 222, 231, 225, 115, 112, 94, 81,\n\t\t21, 95, 81, 192, 229, 110, 202, 253, 212, 205, 124, 183, 208,\n\t\t161, 112, 99, 248, 220, 246, 199, 63, 1, 219, 255, 119, 107,\n\t\t235, 182, 219, 182, 90, 176, 189, 167, 44, 40, 123, 55, 223,\n\t\t188, 167, 244, 64, 217, 217, 189, 89, 217, 91, 216, 83, 178,\n\t\t12, 148, 133, 61, 197, 155, 231, 65, 109, 195, 121, 153, 173,\n\t\t122, 76, 121, 189, 162, 228, 208, 160, 129, 98, 201, 211,\n\t\t141, 195, 6, 52, 33, 178, 160, 195, 45, 196, 59, 125, 156,\n\t\t22, 10, 228, 203, 121, 7, 29, 119, 59, 82, 147, 152, 207,\n\t\t231, 153, 20, 244, 203, 54, 241, 156, 136, 190, 80, 242, 42,\n\t\t216, 166, 138, 224, 29, 204, 149, 242, 243, 123, 240, 81,\n\t\t192, 8, 17, 233, 250, 71, 152, 18, 204, 40, 33, 180, 164,\n\t\t105, 192, 109, 77, 5, 73, 186, 139, 9, 193, 42, 22, 152, 98,\n\t\t174, 85, 52, 250, 190, 119, 58, 206, 59, 157, 197, 235, 29,\n\t\t231, 122, 199, 3, 207, 70, 92, 136, 134, 109, 158, 185, 231,\n\t\t140, 105, 55, 132, 224, 200, 246, 128, 83, 213, 118, 108,\n\t\t123, 229, 178, 149, 99, 183, 218, 182, 227, 8, 250, 21, 164,\n\t\t11, 65, 192, 240, 168, 232, 183, 204, 200, 143, 138, 180,\n\t\t14, 2, 64, 92, 6, 76, 55, 108, 118, 84, 245, 153, 165, 34,\n\t\t140, 127, 163, 213, 218, 110, 181, 222, 175, 83, 93, 91, 181,\n\t\t156, 97, 117, 49, 24, 159, 62, 61, 14, 22, 171, 67, 199, 94,\n\t\t85, 117, 170, 165, 154, 91, 170, 214, 214, 75, 203, 167, 150,\n\t\t111, 218, 46, 173, 215, 170, 21, 91, 83, 64, 177, 20, 5, 254,\n\t\t6, 118, 148, 5, 69, 241, 39, 235, 48, 29, 199, 217, 56, 228,\n\t\t44, 118, 95, 74, 243, 194, 93, 124, 33, 233, 43, 61, 205,\n\t\t215, 222, 251, 218, 219, 222, 145, 82, 0, 154, 124, 46, 37,\n\t\t247, 219, 111, 1, 49, 126, 114, 172, 34, 24, 169, 124, 38,\n\t\t254, 226, 47, 68, 143, 240, 221, 191, 226, 164, 39, 68, 66,\n\t\t248, 215, 119, 255, 28, 130, 231, 12, 117, 83, 136, 77, 213,\n\t\t216, 207, 99, 127, 30, 173, 192, 179, 138, 165, 212, 149,\n\t\t21, 229, 156, 162, 120, 185, 81, 123, 33, 156, 207, 252, 77,\n\t\t72, 163, 130, 190, 40, 73, 27, 128, 11, 50, 207, 130, 47,\n\t\t59, 139, 247, 239, 238, 11, 247, 248, 133, 190, 226, 66, 10,\n\t\t215, 195, 15, 92, 83, 107, 220, 253, 193, 15, 222, 221, 168,\n\t\t93, 243, 11, 135, 146, 186, 107, 245, 171, 111, 251, 248,\n\t\t186, 41, 250, 239, 124, 38, 123, 60, 233, 88, 203, 150, 81,\n\t\t109, 189, 106, 136, 238, 93, 20, 98, 81, 136, 129, 156, 202,\n\t\t5, 168, 254, 252, 59, 45, 254, 212, 221, 119, 63, 197, 173,\n\t\t221, 231, 150, 222, 113, 216, 241, 143, 125, 226, 214, 218,\n\t\t49, 63, 92, 87, 161, 177, 100, 12, 215, 30, 94, 73, 94, 209,\n\t\t93, 110, 153, 240, 192, 197, 239, 43, 22, 190, 87, 171, 119,\n\t\t174, 105, 42, 43, 148, 199, 97, 151, 207, 231, 47, 188, 240,\n\t\t39, 251, 255, 240, 244, 11, 47, 188, 224, 189, 240, 194, 11,\n\t\t114, 188, 250, 107, 56, 15, 59, 74, 45, 199, 131, 97, 192,\n\t\t18, 121, 95, 243, 112, 206, 56, 208, 7, 185, 156, 76, 225,\n\t\t252, 234, 234, 242, 10, 110, 44, 52, 202, 173, 26, 94, 93,\n\t\t133, 157, 95, 175, 198, 81, 173, 84, 141, 131, 202, 235, 195,\n\t\t56, 14, 127, 58, 40, 161, 192, 255, 203, 106, 20, 87, 230,\n\t\t199, 123, 206, 119, 238, 40, 213, 252, 76, 95, 240, 79, 21,\n\t\t151, 187, 59, 203, 230, 114, 169, 249, 225, 119, 139, 197,\n\t\t168, 224, 121, 250, 137, 184, 19, 183, 127, 60, 238, 196,\n\t\t65, 16, 188, 55, 238, 196, 235, 115, 98, 244, 255, 244, 162,\n\t\t27, 199, 238, 238, 95, 181, 42, 191, 147, 47, 252, 14, 62,\n\t\t2, 78, 190, 240, 162, 163, 188, 140, 99, 221, 80, 170, 138,\n\t\t210, 27, 75, 62, 163, 116, 60, 141, 51, 218, 189, 224, 198,\n\t\t235, 78, 121, 10, 183, 223, 31, 30, 189, 122, 245, 216, 67,\n\t\t237, 251, 239, 185, 103, 247, 59, 103, 204, 167, 190, 244,\n\t\t148, 121, 230, 153, 79, 108, 47, 204, 26, 71, 179, 157, 215,\n\t\t188, 230, 202, 116, 233, 238, 167, 158, 186, 123, 41, 253,\n\t\t205, 79, 124, 66, 225, 123, 123, 123, 191, 10, 127, 13, 207,\n\t\t40, 68, 9, 149, 166, 172, 125, 207, 177, 157, 228, 224, 78,\n\t\t179, 164, 195, 147, 52, 191, 123, 55, 209, 17, 96, 185, 29,\n\t\t33, 67, 179, 29, 62, 95, 10, 163, 128, 135, 22, 206, 135,\n\t\t222, 73, 22, 111, 194, 56, 26, 15, 2, 139, 114, 214, 77, 71,\n\t\t227, 89, 3, 199, 50, 168, 204, 38, 113, 20, 179, 78, 58, 219,\n\t\t130, 40, 139, 96, 57, 170, 213, 195, 39, 151, 239, 89, 105,\n\t\t38, 11, 135, 78, 158, 60, 180, 144, 254, 165, 166, 173, 222,\n\t\t185, 170, 105, 131, 183, 191, 187, 92, 222, 124, 118, 179,\n\t\t84, 89, 93, 229, 155, 215, 221, 241, 138, 45, 182, 186, 250,\n\t\t130, 218, 61, 196, 73, 33, 160, 77, 53, 231, 139, 132, 87,\n\t\t162, 154, 174, 147, 133, 138, 173, 81, 233, 145, 133, 79,\n\t\t35, 136, 38, 17, 96, 150, 36, 228, 178, 80, 213, 130, 231,\n\t\t27, 141, 138, 246, 204, 218, 201, 158, 235, 46, 156, 90, 123,\n\t\t70, 107, 81, 22, 199, 140, 173, 197, 192, 79, 156, 224, 112,\n\t\t162, 118, 119, 13, 14, 93, 155, 64, 242, 138, 195, 181, 187,\n\t\t107, 159, 91, 116, 128, 99, 193, 56, 103, 152, 77, 1, 168,\n\t\t17, 186, 0, 12, 231, 13, 2, 243, 31, 32, 212, 52, 25, 97,\n\t\t250, 156, 91, 248, 139, 112, 30, 126, 73, 57, 172, 220, 171,\n\t\t40, 81, 103, 93, 246, 115, 51, 201, 140, 89, 100, 104, 38,\n\t\t54, 228, 224, 172, 9, 146, 64, 190, 184, 127, 88, 55, 127,\n\t\t225, 17, 152, 171, 87, 72, 189, 232, 44, 111, 149, 99, 113,\n\t\t220, 128, 241, 104, 58, 233, 227, 116, 95, 75, 68, 58, 45,\n\t\t247, 165, 13, 226, 6, 252, 105, 160, 110, 106, 194, 54, 17,\n\t\t94, 199, 248, 57, 132, 159, 197, 249, 255, 40, 44, 209, 152,\n\t\t213, 43, 126, 105, 224, 251, 207, 249, 254, 115, 65, 240,\n\t\t220, 91, 7, 171, 175, 98, 49, 5, 92, 238, 102, 32, 204, 178,\n\t\t87, 237, 4, 171, 139, 215, 49, 140, 75, 4, 72, 185, 54, 136,\n\t\t150, 250, 201, 6, 237, 81, 76, 57, 66, 53, 132, 238, 69, 228,\n\t\t171, 24, 221, 155, 47, 224, 175, 18, 104, 8, 211, 250, 10,\n\t\t99, 95, 169, 54, 141, 154, 30, 127, 53, 210, 239, 211, 245,\n\t\t251, 244, 232, 171, 177, 126, 223, 111, 52, 218, 199, 41,\n\t\t9, 220, 58, 165, 140, 18, 132, 181, 82, 80, 107, 110, 99,\n\t\t76, 124, 187, 162, 169, 140, 149, 10, 174, 111, 101, 27, 109,\n\t\t67, 75, 193, 146, 217, 63, 71, 35, 178, 74, 163, 23, 182,\n\t\t101, 150, 111, 44, 169, 91, 194, 113, 38, 231, 217, 124, 45,\n\t\t127, 66, 171, 213, 130, 214, 238, 139, 59, 79, 63, 189, 179,\n\t\t221, 106, 61, 189, 179, 189, 253, 226, 249, 237, 86, 171,\n\t\t213, 122, 122, 123, 251, 124, 171, 117, 190, 181, 115, 251,\n\t\t237, 59, 79, 183, 118, 118, 110, 191, 253, 246, 219, 139,\n\t\t126, 65, 201, 208, 219, 224, 148, 162, 42, 199, 149, 43, 148,\n\t\t87, 22, 170, 68, 41, 239, 102, 227, 184, 23, 49, 222, 128,\n\t\t125, 23, 214, 148, 113, 214, 205, 138, 66, 209, 36, 71, 58,\n\t\t243, 116, 75, 94, 68, 234, 36, 217, 143, 116, 136, 75, 181,\n\t\t129, 116, 63, 39, 103, 159, 123, 234, 23, 214, 6, 7, 199,\n\t\t205, 181, 225, 48, 131, 111, 225, 165, 154, 133, 45, 255,\n\t\t92, 207, 142, 29, 12, 92, 143, 222, 163, 191, 69, 199, 24,\n\t\t0, 211, 235, 75, 38, 213, 184, 26, 233, 31, 214, 158, 208,\n\t\t101, 10, 31, 35, 215, 215, 105, 251, 136, 122, 164, 151, 188,\n\t\t134, 232, 195, 192, 83, 227, 160, 87, 41, 233, 26, 54, 66,\n\t\t93, 133, 214, 211, 247, 222, 251, 244, 195, 143, 248, 21,\n\t\t22, 207, 106, 73, 170, 18, 167, 100, 83, 70, 0, 45, 114, 46,\n\t\t48, 54, 157, 5, 221, 68, 208, 226, 88, 69, 4, 220, 5, 3, 26,\n\t\t93, 206, 222, 26, 151, 89, 232, 47, 19, 92, 185, 135, 48,\n\t\t230, 32, 106, 104, 74, 222, 39, 238, 61, 15, 79, 194, 115,\n\t\t82, 109, 247, 10, 229, 58, 229, 86, 229, 213, 202, 3, 202,\n\t\t163, 202, 99, 202, 59, 148, 247, 43, 255, 74, 249, 184, 242,\n\t\t41, 229, 103, 20, 197, 63, 4, 13, 198, 39, 155, 36, 138, 3,\n\t\t139, 166, 147, 77, 154, 117, 18, 11, 241, 62, 73, 27, 36,\n\t\t14, 250, 0, 133, 255, 127, 58, 39, 79, 35, 251, 204, 213,\n\t\t223, 51, 143, 254, 127, 106, 223, 207, 187, 152, 141, 174,\n\t\t71, 204, 115, 99, 63, 48, 24, 66, 92, 115, 131, 134, 139,\n\t\t152, 106, 121, 37, 27, 81, 166, 155, 190, 134, 168, 239, 85,\n\t\t12, 192, 182, 223, 13, 177, 94, 9, 92, 152, 78, 224, 96, 235,\n\t\t216, 175, 31, 107, 45, 30, 187, 245, 214, 99, 139, 187, 127,\n\t\t236, 148, 156, 151, 255, 95, 255, 63, 213, 178, 40, 196, 230,\n\t\t191, 221, 228, 234, 185, 79, 194, 179, 128, 184, 234, 6, 13,\n\t\t15, 168, 173, 27, 12, 115, 160, 142, 238, 112, 74, 129, 24,\n\t\t154, 169, 114, 0, 44, 98, 135, 152, 237, 74, 132, 128, 56,\n\t\t209, 98, 25, 139, 195, 187, 255, 245, 220, 116, 48, 152, 158,\n\t\t59, 118, 108, 56, 60, 246, 243, 114, 167, 215, 196, 142, 19,\n\t\t187, 197, 244, 245, 255, 83, 45, 199, 83, 183, 213, 114, 22,\n\t\t109, 69, 234, 92, 21, 99, 129, 170, 24, 50, 231, 170, 162,\n\t\t116, 149, 117, 229, 160, 114, 84, 185, 86, 81, 226, 162, 206,\n\t\t35, 134, 241, 180, 155, 197, 99, 198, 179, 48, 141, 11, 5,\n\t\t239, 44, 224, 93, 183, 129, 211, 241, 84, 166, 220, 231, 207,\n\t\t184, 59, 157, 116, 59, 117, 24, 79, 83, 30, 198, 211, 116,\n\t\t154, 165, 5, 185, 146, 172, 74, 74, 45, 136, 198, 163, 217,\n\t\t119, 242, 1, 163, 217, 216, 253, 219, 47, 125, 248, 195, 183,\n\t\t191, 110, 233, 228, 193, 16, 132, 243, 3, 241, 227, 237, 3,\n\t\t75, 209, 59, 79, 88, 150, 101, 90, 199, 43, 97, 120, 2, 142,\n\t\t31, 183, 44, 178, 96, 233, 92, 183, 29, 85, 51, 4, 242, 189,\n\t\t178, 123, 224, 169, 47, 61, 37, 118, 223, 217, 250, 234, 223,\n\t\t110, 53, 190, 229, 136, 190, 174, 9, 115, 146, 13, 225, 172,\n\t\t181, 126, 232, 244, 101, 131, 118, 163, 209, 254, 19, 189,\n\t\t92, 41, 219, 119, 55, 140, 134, 203, 42, 236, 186, 170, 97,\n\t\t196, 53, 77, 83, 27, 229, 213, 185, 54, 245, 139, 232, 0,\n\t\t60, 163, 104, 202, 88, 121, 173, 162, 244, 130, 66, 165, 107,\n\t\t19, 34, 62, 153, 78, 102, 50, 175, 70, 242, 131, 77, 163,\n\t\t217, 116, 146, 240, 126, 161, 45, 80, 228, 116, 22, 1, 249,\n\t\t116, 178, 137, 14, 163, 77, 58, 206, 198, 249, 59, 14, 195,\n\t\t40, 106, 230, 134, 77, 60, 206, 23, 2, 198, 87, 128, 7, 204,\n\t\t134, 118, 167, 143, 142, 64, 154, 15, 174, 240, 248, 172,\n\t\t110, 33, 192, 209, 82, 235, 151, 147, 128, 81, 176, 109, 202,\n\t\t112, 255, 214, 115, 7, 144, 175, 170, 176, 122, 80, 115, 181,\n\t\t18, 99, 46, 66, 228, 115, 66, 215, 9, 169, 19, 39, 42, 199,\n\t\t62, 99, 53, 157, 210, 235, 132, 14, 80, 123, 85, 216, 116,\n\t\t125, 0, 95, 83, 27, 113, 164, 27, 187, 47, 154, 158, 74, 227,\n\t\t134, 235, 195, 110, 114, 136, 173, 95, 42, 176, 127, 43, 96,\n\t\t111, 213, 250, 197, 169, 109, 35, 198, 204, 197, 13, 253,\n\t\t166, 67, 147, 158, 171, 115, 206, 195, 248, 116, 211, 244,\n\t\t141, 208, 39, 112, 181, 110, 115, 98, 199, 182, 65, 9, 248,\n\t\t66, 5, 149, 18, 255, 140, 167, 169, 174, 15, 95, 243, 35,\n\t\t4, 170, 105, 82, 242, 53, 79, 219, 199, 10, 191, 134, 20,\n\t\t248, 121, 69, 203, 209, 168, 60, 90, 5, 63, 0, 184, 99, 23,\n\t\t41, 247, 95, 126, 249, 253, 249, 115, 87, 185, 241, 31, 46,\n\t\t191, 255, 254, 127, 253, 218, 215, 238, 62, 14, 127, 190,\n\t\t59, 231, 249, 246, 246, 206, 195, 79, 193, 121, 197, 83, 58,\n\t\t202, 180, 200, 191, 229, 22, 150, 172, 104, 114, 108, 194,\n\t\t69, 130, 108, 65, 130, 136, 252, 34, 109, 98, 150, 21, 229,\n\t\t181, 233, 172, 1, 240, 240, 198, 213, 60, 76, 23, 173, 210,\n\t\t201, 214, 53, 63, 112, 221, 53, 215, 88, 71, 54, 215, 95,\n\t\t123, 230, 202, 7, 214, 183, 182, 223, 114, 108, 109, 225,\n\t\t96, 133, 134, 213, 94, 165, 218, 59, 150, 192, 206, 214, 43,\n\t\t175, 121, 64, 45, 175, 212, 182, 150, 95, 123, 237, 245, 143,\n\t\t237, 122, 7, 175, 122, 245, 226, 149, 175, 127, 253, 149,\n\t\t139, 175, 190, 234, 32, 52, 87, 143, 46, 76, 143, 86, 189,\n\t\t106, 213, 171, 27, 106, 85, 234, 219, 239, 237, 237, 237,\n\t\t193, 95, 195, 227, 115, 238, 199, 75, 21, 165, 23, 243, 46,\n\t\t15, 121, 218, 229, 235, 136, 173, 67, 54, 77, 179, 113, 54,\n\t\t205, 226, 113, 214, 68, 163, 48, 182, 97, 146, 72, 81, 182,\n\t\t77, 148, 69, 65, 145, 125, 21, 38, 57, 94, 145, 124, 205,\n\t\t83, 210, 0, 217, 23, 193, 37, 161, 104, 168, 65, 100, 6, 1,\n\t\t82, 235, 160, 134, 114, 53, 180, 228, 170, 22, 174, 5, 21,\n\t\t23, 124, 83, 181, 248, 175, 186, 238, 173, 112, 224, 227,\n\t\t7, 150, 14, 184, 238, 86, 235, 192, 199, 15, 236, 254, 193,\n\t\t13, 143, 221, 120, 227, 99, 55, 124, 54, 12, 212, 150, 40,\n\t\t149, 68, 91, 5, 20, 132, 102, 24, 168, 117, 17, 134, 106,\n\t\t93, 133, 32, 36, 134, 7, 126, 197, 5, 213, 234, 59, 3, 231,\n\t\t54, 56, 144, 193, 242, 1, 103, 224, 108, 181, 15, 100, 240,\n\t\t171, 55, 192, 141, 143, 221, 112, 195, 92, 207, 249, 155,\n\t\t104, 7, 62, 166, 156, 84, 206, 42, 247, 43, 79, 40, 31, 83,\n\t\t158, 85, 190, 172, 252, 153, 178, 167, 40, 25, 43, 50, 244,\n\t\t36, 27, 128, 164, 215, 151, 186, 153, 227, 193, 104, 56, 143,\n\t\t26, 166, 115, 1, 7, 153, 49, 59, 31, 251, 24, 103, 113, 131,\n\t\t13, 25, 142, 102, 25, 227, 145, 47, 141, 176, 105, 17, 131,\n\t\t146, 193, 37, 86, 164, 208, 73, 134, 5, 86, 112, 60, 132,\n\t\t157, 112, 50, 205, 239, 162, 252, 180, 103, 146, 65, 47, 150,\n\t\t156, 185, 233, 116, 32, 227, 117, 155, 185, 61, 55, 8, 147,\n\t\t116, 48, 76, 58, 60, 71, 124, 105, 50, 204, 141, 127, 146,\n\t\t205, 210, 65, 58, 146, 82, 168, 217, 161, 28, 255, 142, 165,\n\t\t14, 114, 154, 208, 253, 112, 210, 108, 56, 139, 27, 52, 110,\n\t\t224, 1, 143, 242, 51, 145, 206, 134, 81, 220, 96, 97, 244,\n\t\t213, 206, 85, 38, 5, 164, 245, 85, 21, 1, 64, 245, 76, 167,\n\t\t123, 96, 41, 157, 52, 136, 137, 16, 42, 171, 245, 24, 87,\n\t\t85, 35, 194, 181, 114, 253, 234, 18, 128, 183, 85, 141, 22,\n\t\t19, 203, 90, 64, 192, 169, 105, 152, 186, 96, 244, 227, 90,\n\t\t25, 2, 23, 126, 165, 121, 188, 100, 209, 78, 216, 235, 10,\n\t\t71, 231, 16, 16, 205, 21, 39, 125, 142, 171, 166, 53, 254,\n\t\t228, 114, 57, 210, 40, 208, 94, 165, 122, 228, 146, 8, 1,\n\t\t174, 116, 210, 39, 117, 223, 233, 148, 42, 190, 102, 114,\n\t\t238, 152, 110, 219, 247, 93, 181, 18, 116, 44, 176, 72, 126,\n\t\t198, 23, 43, 224, 150, 77, 226, 169, 142, 35, 150, 254, 2,\n\t\t183, 67, 110, 169, 54, 181, 67, 36, 67, 169, 200, 176, 22,\n\t\t122, 53, 184, 153, 68, 46, 213, 12, 162, 121, 16, 151, 100,\n\t\t186, 11, 67, 68, 165, 236, 183, 161, 238, 249, 117, 40, 217,\n\t\t84, 21, 148, 97, 74, 239, 129, 108, 18, 76, 172, 227, 42,\n\t\t0, 64, 224, 97, 220, 89, 95, 239, 81, 0, 164, 3, 115, 80,\n\t\t140, 136, 90, 95, 117, 92, 161, 65, 84, 197, 56, 25, 168,\n\t\t170, 230, 25, 182, 230, 104, 156, 32, 64, 16, 107, 212, 0,\n\t\t2, 187, 207, 64, 183, 106, 11, 8, 153, 110, 253, 191, 140,\n\t\t189, 9, 152, 37, 87, 117, 38, 120, 207, 93, 99, 223, 151,\n\t\t183, 111, 241, 222, 139, 92, 95, 102, 190, 45, 178, 50, 179,\n\t\t50, 179, 118, 237, 75, 105, 173, 210, 86, 90, 170, 132, 144,\n\t\t192, 32, 100, 73, 172, 42, 132, 12, 8, 27, 228, 22, 208, 128,\n\t\t221, 141, 133, 13, 54, 75, 123, 26, 48, 237, 177, 141, 12,\n\t\t178, 193, 254, 188, 124, 216, 180, 191, 105, 143, 219, 31,\n\t\t182, 25, 187, 199, 51, 223, 12, 221, 182, 219, 54, 134, 49,\n\t\t100, 205, 23, 55, 94, 150, 74, 66, 166, 187, 42, 95, 172,\n\t\t247, 70, 220, 184, 17, 247, 222, 115, 206, 61, 231, 255, 9,\n\t\t38, 4, 83, 170, 42, 148, 57, 156, 41, 0, 226, 123, 166, 166,\n\t\t86, 76, 27, 0, 252, 64, 85, 235, 53, 12, 128, 3, 33, 30, 112,\n\t\t194, 136, 113, 0, 34, 4, 119, 44, 203, 196, 160, 3, 41, 81,\n\t\t5, 20, 194, 49, 5, 102, 2, 193, 2, 235, 76, 161, 192, 159,\n\t\t198, 10, 81, 133, 228, 159, 2, 14, 212, 183, 255, 119, 194,\n\t\t8, 22, 6, 17, 24, 44, 5, 8, 201, 159, 143, 48, 128, 247, 0,\n\t\t144, 32, 202, 7, 66, 76, 25, 83, 136, 2, 92, 226, 207, 127,\n\t\t247, 194, 95, 225, 93, 120, 14, 197, 104, 14, 109, 34, 212,\n\t\t179, 136, 141, 39, 18, 76, 195, 134, 73, 1, 188, 30, 164,\n\t\t147, 113, 218, 231, 161, 155, 186, 5, 180, 24, 103, 210, 214,\n\t\t187, 131, 67, 97, 73, 14, 183, 144, 227, 77, 162, 107, 42,\n\t\t33, 95, 251, 144, 73, 180, 114, 243, 108, 47, 61, 118, 48,\n\t\t140, 254, 218, 83, 244, 59, 167, 87, 109, 174, 28, 220, 251,\n\t\t68, 203, 117, 149, 138, 170, 190, 243, 110, 147, 104, 149,\n\t\t230, 224, 186, 171, 168, 228, 65, 186, 124, 58, 165, 6, 81,\n\t\t141, 100, 221, 164, 74, 44, 60, 247, 166, 31, 111, 50, 98,\n\t\t153, 123, 159, 168, 195, 207, 104, 229, 112, 235, 64, 182,\n\t\t240, 144, 154, 232, 220, 32, 116, 101, 154, 200, 180, 238,\n\t\t154, 45, 121, 228, 191, 127, 225, 207, 225, 63, 192, 207,\n\t\t33, 23, 197, 168, 142, 230, 208, 178, 156, 97, 177, 49, 239,\n\t\t167, 164, 63, 205, 122, 211, 200, 134, 84, 196, 217, 180,\n\t\t207, 226, 44, 237, 115, 127, 155, 102, 169, 223, 0, 152, 174,\n\t\t128, 128, 15, 185, 134, 241, 255, 38, 74, 194, 30, 32, 166,\n\t\t14, 142, 21, 41, 150, 246, 235, 159, 115, 49, 221, 251, 127,\n\t\t62, 122, 247, 119, 41, 123, 4, 168, 174, 168, 248, 137, 27,\n\t\t128, 131, 207, 213, 87, 159, 134, 235, 160, 105, 254, 95,\n\t\t215, 155, 212, 129, 219, 173, 16, 47, 227, 216, 109, 175,\n\t\t53, 157, 57, 74, 179, 127, 248, 235, 24, 248, 222, 115, 88,\n\t\t45, 249, 33, 253, 173, 189, 255, 74, 0, 14, 114, 162, 254,\n\t\t39, 52, 179, 147, 254, 9, 252, 14, 124, 2, 85, 80, 79, 226,\n\t\t100, 163, 94, 36, 44, 88, 132, 80, 162, 208, 166, 251, 200,\n\t\t72, 211, 131, 48, 26, 226, 125, 88, 152, 201, 56, 149, 113,\n\t\t101, 178, 75, 151, 88, 64, 147, 100, 50, 222, 38, 242, 149,\n\t\t72, 93, 37, 189, 232, 39, 145, 119, 241, 240, 43, 182, 173,\n\t\t198, 209, 115, 15, 78, 166, 147, 105, 43, 122, 176, 50, 55,\n\t\t55, 247, 14, 215, 48, 20, 174, 178, 247, 120, 77, 175, 23,\n\t\t213, 184, 101, 241, 110, 233, 253, 15, 18, 161, 251, 214,\n\t\t104, 61, 106, 54, 163, 135, 185, 202, 152, 202, 21, 131, 112,\n\t\t241, 157, 157, 65, 173, 98, 205, 247, 29, 219, 118, 250, 231,\n\t\t162, 214, 124, 117, 117, 111, 207, 112, 13, 174, 114, 229,\n\t\t147, 94, 211, 93, 171, 151, 167, 89, 185, 110, 206, 107, 150,\n\t\t169, 10, 162, 170, 180, 25, 158, 139, 90, 239, 227, 170, 174,\n\t\t49, 67, 161, 10, 251, 1, 191, 168, 166, 68, 222, 122, 57,\n\t\t178, 127, 127, 26, 143, 134, 211, 137, 180, 142, 15, 167,\n\t\t147, 248, 197, 237, 131, 208, 159, 198, 112, 119, 186, 190,\n\t\t207, 94, 51, 4, 71, 93, 15, 234, 63, 165, 89, 65, 253, 179,\n\t\t179, 53, 56, 42, 60, 183, 159, 0, 112, 186, 254, 41, 213,\n\t\t129, 122, 96, 105, 63, 85, 15, 156, 217, 122, 93, 117, 224,\n\t\t101, 156, 103, 55, 93, 202, 173, 150, 116, 10, 149, 98, 52,\n\t\t28, 13, 5, 79, 22, 64, 238, 22, 214, 176, 233, 254, 46, 159,\n\t\t233, 31, 253, 139, 7, 102, 157, 112, 158, 43, 155, 78, 166,\n\t\t197, 122, 6, 12, 253, 115, 84, 125, 139, 224, 132, 88, 84,\n\t\t221, 114, 84, 130, 21, 115, 98, 42, 164, 129, 65, 161, 24,\n\t\t74, 84, 35, 41, 97, 184, 14, 68, 39, 138, 90, 51, 49, 101,\n\t\t52, 161, 28, 43, 77, 95, 96, 130, 203, 130, 176, 193, 109,\n\t\t28, 55, 137, 66, 15, 169, 212, 157, 89, 27, 44, 149, 43, 77,\n\t\t85, 97, 226, 56, 33, 152, 113, 50, 81, 233, 97, 204, 168,\n\t\t240, 194, 157, 58, 21, 220, 59, 190, 232, 48, 74, 170, 130,\n\t\t178, 99, 88, 40, 253, 75, 240, 243, 109, 212, 70, 187, 232,\n\t\t68, 193, 91, 197, 94, 142, 213, 85, 184, 62, 38, 82, 134,\n\t\t220, 134, 209, 176, 89, 248, 40, 246, 211, 209, 116, 50, 157,\n\t\t65, 6, 190, 200, 65, 56, 205, 250, 145, 68, 206, 45, 98, 111,\n\t\t250, 51, 232, 162, 98, 11, 118, 95, 152, 92, 121, 229, 36,\n\t\t95, 124, 65, 21, 186, 162, 48, 160, 181, 46, 54, 53, 161,\n\t\t62, 206, 84, 213, 240, 28, 184, 1, 3, 99, 66, 209, 52, 173,\n\t\t149, 52, 59, 142, 101, 43, 115, 58, 140, 192, 178, 110, 55,\n\t\t52, 205, 52, 53, 205, 216, 95, 183, 138, 11, 229, 139, 63,\n\t\t36, 156, 233, 254, 143, 159, 86, 52, 114, 156, 80, 226, 185,\n\t\t66, 112, 238, 232, 122, 94, 197, 189, 94, 39, 101, 84, 156,\n\t\t115, 108, 203, 101, 134, 17, 232, 250, 227, 134, 225, 235,\n\t\t250, 140, 11, 244, 239, 164, 204, 221, 67, 115, 8, 245, 68,\n\t\t154, 77, 163, 38, 68, 156, 12, 103, 206, 83, 43, 192, 178,\n\t\t21, 233, 204, 178, 2, 114, 178, 97, 27, 72, 127, 2, 229, 223,\n\t\t174, 61, 63, 87, 97, 58, 115, 14, 31, 125, 248, 240, 179,\n\t\t231, 142, 109, 196, 208, 92, 213, 190, 113, 71, 183, 156,\n\t\t24, 154, 181, 218, 89, 254, 243, 224, 157, 111, 238, 127,\n\t\t250, 192, 61, 83, 93, 184, 169, 227, 1, 59, 252, 134, 35,\n\t\t231, 158, 77, 174, 235, 153, 157, 106, 85, 139, 219, 243,\n\t\t189, 85, 133, 154, 187, 55, 60, 184, 247, 142, 237, 227, 5,\n\t\t159, 214, 11, 248, 16, 188, 128, 18, 180, 129, 142, 161, 235,\n\t\t102, 51, 192, 146, 212, 54, 181, 96, 0, 233, 54, 77, 7, 184,\n\t\t0, 13, 216, 198, 81, 60, 141, 200, 69, 4, 135, 72, 172, 114,\n\t\t49, 205, 166, 59, 185, 100, 159, 118, 250, 233, 12, 114, 179,\n\t\t128, 222, 148, 52, 59, 241, 139, 71, 225, 175, 151, 6, 131,\n\t\t165, 236, 3, 7, 219, 87, 109, 207, 233, 68, 43, 185, 58, 245,\n\t\t42, 122, 169, 201, 26, 158, 167, 207, 237, 92, 217, 222, 126,\n\t\t255, 211, 119, 189, 235, 93, 95, 122, 231, 216, 172, 99, 168,\n\t\t150, 3, 39, 88, 92, 130, 215, 90, 1, 116, 146, 96, 171, 157,\n\t\t128, 21, 132, 214, 51, 197, 46, 220, 88, 187, 238, 250, 235,\n\t\t106, 221, 146, 217, 170, 113, 77, 16, 181, 90, 77, 28, 127,\n\t\t184, 125, 188, 89, 222, 112, 93, 161, 241, 122, 211, 44, 237,\n\t\t253, 210, 45, 111, 186, 229, 150, 131, 147, 249, 165, 140,\n\t\t2, 54, 117, 199, 215, 95, 239, 91, 145, 231, 134, 96, 5, 109,\n\t\t185, 54, 61, 74, 189, 240, 226, 65, 244, 178, 246, 88, 125,\n\t\t177, 61, 66, 46, 91, 72, 146, 6, 27, 70, 89, 156, 116, 120,\n\t\t19, 102, 173, 234, 131, 103, 175, 136, 2, 235, 163, 90, 71,\n\t\t251, 192, 233, 155, 110, 188, 50, 242, 204, 215, 205, 218,\n\t\t198, 222, 127, 125, 12, 96, 206, 253, 85, 211, 252, 197, 123,\n\t\t239, 157, 183, 159, 202, 175, 239, 32, 116, 225, 91, 240,\n\t\t2, 60, 254, 63, 196, 79, 68, 144, 102, 49, 203, 36, 177, 147,\n\t\t164, 39, 216, 95, 139, 124, 157, 133, 34, 22, 233, 14, 20,\n\t\t180, 79, 59, 16, 139, 52, 94, 1, 201, 5, 21, 103, 177, 200,\n\t\t15, 192, 157, 211, 43, 174, 185, 128, 6, 157, 236, 116, 203,\n\t\t237, 37, 106, 221, 90, 47, 169, 213, 58, 141, 249, 122, 72,\n\t\t162, 122, 16, 110, 213, 160, 188, 216, 100, 213, 246, 188,\n\t\t146, 44, 134, 3, 235, 45, 39, 74, 217, 242, 98, 109, 20, 29,\n\t\t156, 92, 231, 30, 57, 124, 10, 58, 131, 116, 137, 213, 58,\n\t\t141, 122, 84, 139, 55, 19, 47, 57, 236, 149, 188, 181, 154,\n\t\t93, 107, 153, 29, 195, 208, 250, 106, 164, 174, 232, 182,\n\t\t57, 111, 253, 27, 190, 171, 93, 118, 192, 154, 254, 49, 61,\n\t\t163, 252, 187, 104, 57, 26, 250, 183, 232, 159, 168, 31, 174,\n\t\t204, 108, 174, 95, 135, 175, 195, 115, 136, 161, 0, 237, 162,\n\t\t163, 8, 249, 98, 146, 171, 146, 133, 51, 90, 20, 203, 120,\n\t\t188, 41, 226, 233, 106, 58, 96, 105, 127, 5, 184, 216, 129,\n\t\t34, 200, 110, 210, 32, 97, 32, 226, 40, 23, 79, 163, 53, 62,\n\t\t238, 4, 127, 118, 116, 58, 117, 192, 110, 246, 87, 186, 27,\n\t\t87, 95, 11, 111, 111, 88, 91, 138, 161, 112, 194, 192, 157,\n\t\t87, 251, 75, 216, 233, 46, 79, 22, 155, 217, 92, 92, 183,\n\t\t173, 62, 113, 153, 105, 136, 165, 192, 129, 237, 63, 122,\n\t\t71, 249, 203, 111, 120, 11, 157, 24, 89, 39, 221, 20, 83,\n\t\t229, 182, 173, 173, 211, 123, 183, 54, 216, 18, 215, 21, 141,\n\t\t155, 164, 111, 217, 21, 34, 214, 212, 141, 222, 194, 54, 29,\n\t\t227, 234, 194, 129, 214, 234, 130, 54, 231, 130, 160, 138,\n\t\t169, 109, 249, 142, 83, 124, 27, 8, 193, 223, 194, 121, 164,\n\t\t160, 16, 161, 172, 129, 227, 246, 54, 78, 27, 36, 78, 6, 36,\n\t\t157, 222, 186, 252, 182, 199, 172, 189, 199, 135, 87, 115,\n\t\t115, 254, 117, 111, 184, 211, 58, 163, 78, 142, 29, 235, 224,\n\t\t255, 155, 31, 120, 205, 22, 189, 250, 236, 239, 241, 237,\n\t\t51, 63, 121, 213, 242, 141, 59, 203, 230, 245, 151, 242, 240,\n\t\t154, 249, 181, 152, 184, 212, 169, 146, 239, 35, 60, 190,\n\t\t208, 120, 118, 176, 117, 244, 158, 123, 158, 190, 167, 245,\n\t\t197, 87, 95, 121, 213, 3, 87, 65, 243, 3, 253, 123, 127, 226,\n\t\t222, 123, 143, 103, 75, 205, 171, 114, 221, 171, 192, 238,\n\t\t190, 112, 225, 207, 224, 43, 240, 49, 116, 53, 186, 94, 34,\n\t\t142, 190, 56, 153, 42, 138, 56, 153, 188, 90, 243, 54, 218,\n\t\t223, 198, 59, 144, 206, 54, 97, 7, 242, 3, 178, 251, 201,\n\t\t36, 144, 67, 3, 55, 33, 155, 54, 32, 191, 64, 190, 22, 89,\n\t\t42, 224, 75, 204, 178, 150, 29, 106, 90, 78, 133, 58, 119,\n\t\t58, 132, 154, 170, 93, 97, 206, 152, 233, 62, 197, 192, 117,\n\t\t177, 220, 152, 48, 221, 39, 132, 26, 218, 178, 35, 143, 216,\n\t\t85, 234, 220, 97, 51, 203, 18, 150, 169, 97, 103, 217, 170,\n\t\t170, 166, 53, 104, 46, 107, 158, 253, 207, 119, 54, 239, 248,\n\t\t188, 93, 165, 246, 138, 93, 97, 204, 54, 87, 90, 3, 205, 183,\n\t\t8, 179, 204, 85, 15, 44, 77, 216, 134, 134, 237, 211, 46,\n\t\t152, 186, 230, 217, 196, 94, 145, 7, 152, 101, 173, 52, 243,\n\t\t12, 4, 115, 93, 172, 216, 204, 172, 87, 153, 125, 218, 38,\n\t\t196, 60, 208, 58, 221, 148, 239, 134, 94, 248, 6, 252, 58,\n\t\t124, 66, 242, 215, 161, 172, 159, 235, 36, 69, 228, 77, 144,\n\t\t143, 154, 126, 54, 115, 92, 105, 96, 17, 88, 144, 74, 7, 137,\n\t\t104, 155, 76, 166, 23, 103, 145, 118, 183, 180, 31, 251, 252,\n\t\t99, 234, 17, 173, 29, 1, 93, 122, 211, 211, 159, 78, 235,\n\t\t43, 243, 25, 64, 195, 92, 169, 130, 237, 136, 166, 59, 215,\n\t\t25, 114, 167, 85, 242, 161, 110, 174, 148, 61, 139, 87, 214,\n\t\t15, 255, 210, 99, 234, 83, 159, 223, 82, 3, 139, 17, 240,\n\t\t217, 34, 208, 249, 10, 192, 98, 191, 235, 11, 219, 177, 52,\n\t\t131, 66, 105, 161, 13, 160, 218, 157, 184, 239, 41, 150, 101,\n\t\t105, 38, 150, 88, 235, 95, 130, 231, 225, 171, 168, 41, 61,\n\t\t53, 227, 40, 111, 11, 43, 184, 95, 24, 117, 119, 114, 233,\n\t\t175, 63, 227, 46, 109, 66, 54, 35, 50, 181, 129, 55, 33, 146,\n\t\t156, 197, 152, 23, 137, 99, 120, 98, 73, 40, 191, 77, 85,\n\t\t140, 255, 35, 87, 150, 21, 254, 97, 33, 238, 80, 196, 141,\n\t\t220, 22, 71, 185, 216, 16, 252, 211, 99, 145, 31, 254, 24,\n\t\t87, 110, 23, 252, 46, 238, 240, 3, 66, 17, 67, 69, 124, 102,\n\t\t145, 43, 127, 160, 42, 255, 102, 129, 243, 143, 19, 192, 240,\n\t\t85, 193, 59, 156, 127, 128, 243, 43, 56, 63, 201, 13, 126,\n\t\t136, 243, 37, 198, 127, 225, 102, 206, 187, 156, 255, 140,\n\t\t224, 151, 113, 126, 59, 55, 120, 198, 57, 79, 57, 255, 196,\n\t\t2, 231, 63, 43, 152, 108, 219, 23, 228, 188, 136, 64, 45,\n\t\t52, 68, 219, 151, 96, 90, 7, 60, 17, 5, 169, 245, 10, 76,\n\t\t226, 105, 60, 139, 89, 228, 146, 181, 96, 159, 59, 48, 221,\n\t\t31, 163, 101, 79, 48, 26, 194, 79, 116, 71, 73, 50, 186, 245,\n\t\t200, 202, 107, 200, 90, 219, 170, 69, 54, 217, 184, 59, 174,\n\t\t159, 128, 195, 43, 205, 73, 227, 31, 187, 85, 46, 42, 190,\n\t\t99, 247, 125, 26, 114, 175, 87, 253, 251, 165, 86, 208, 13,\n\t\t150, 155, 45, 152, 203, 179, 117, 183, 87, 142, 92, 219, 94,\n\t\t210, 188, 178, 21, 63, 152, 90, 248, 236, 202, 225, 198, 228,\n\t\t191, 143, 123, 88, 83, 250, 125, 71, 1, 21, 119, 254, 243,\n\t\t206, 82, 144, 132, 205, 229, 162, 205, 124, 89, 142, 125,\n\t\t8, 253, 111, 8, 245, 210, 6, 13, 100, 92, 104, 71, 240, 116,\n\t\t11, 164, 103, 99, 42, 57, 153, 114, 109, 85, 88, 56, 148,\n\t\t225, 166, 97, 65, 98, 177, 90, 144, 13, 175, 21, 176, 190,\n\t\t253, 108, 218, 95, 40, 156, 78, 251, 211, 201, 52, 151, 133,\n\t\t199, 211, 241, 164, 191, 13, 185, 128, 60, 211, 157, 37, 187,\n\t\t211, 106, 163, 112, 169, 140, 163, 92, 152, 145, 195, 108,\n\t\t62, 66, 22, 166, 229, 177, 116, 59, 152, 244, 59, 147, 1,\n\t\t228, 135, 164, 219, 110, 36, 45, 82, 219, 210, 151, 117, 27,\n\t\t134, 145, 36, 154, 136, 120, 28, 141, 86, 179, 109, 60, 138,\n\t\t44, 8, 87, 243, 14, 146, 224, 33, 167, 10, 37, 32, 40, 1,\n\t\t83, 167, 192, 24, 211, 77, 66, 40, 197, 20, 20, 207, 23, 101,\n\t\t21, 83, 74, 20, 14, 130, 96, 10, 106, 174, 99, 113, 201, 182,\n\t\t83, 207, 245, 49, 44, 25, 78, 0, 64, 37, 120, 63, 230, 156,\n\t\t46, 246, 234, 65, 221, 6, 197, 33, 224, 6, 88, 232, 132, 97,\n\t\t32, 4, 8, 103, 146, 5, 47, 87, 5, 185, 140, 96, 231, 24, 171,\n\t\t184, 136, 75, 167, 76, 194, 98, 98, 96, 190, 95, 222, 158,\n\t\t240, 218, 129, 64, 45, 97, 220, 88, 50, 156, 186, 99, 2, 54,\n\t\t139, 64, 117, 166, 19, 69, 96, 166, 218, 140, 16, 66, 48,\n\t\t249, 206, 53, 134, 167, 10, 130, 49, 53, 5, 96, 172, 99, 70,\n\t\t21, 202, 24, 147, 49, 31, 12, 171, 149, 178, 218, 114, 136,\n\t\t101, 128, 154, 6, 188, 132, 149, 5, 13, 83, 172, 106, 69,\n\t\t220, 125, 254, 35, 6, 99, 128, 21, 140, 121, 23, 172, 6, 161,\n\t\t12, 152, 80, 244, 128, 17, 6, 148, 90, 6, 16, 198, 160, 187,\n\t\t168, 68, 203, 66, 147, 79, 71, 76, 5, 19, 154, 103, 196, 4,\n\t\t52, 233, 139, 202, 151, 220, 186, 154, 223, 157, 99, 128,\n\t\t238, 130, 98, 176, 186, 107, 69, 142, 163, 99, 19, 115, 106,\n\t\t114, 5, 67, 185, 205, 53, 13, 67, 89, 215, 41, 99, 88, 229,\n\t\t196, 45, 99, 149, 91, 186, 138, 21, 137, 235, 227, 93, 120,\n\t\t1, 254, 155, 156, 247, 70, 16, 135, 54, 159, 142, 226, 204,\n\t\t38, 59, 16, 239, 96, 145, 165, 89, 26, 23, 255, 87, 32, 78,\n\t\t227, 44, 221, 129, 38, 136, 216, 6, 248, 38, 45, 167, 235,\n\t\t215, 185, 138, 230, 225, 224, 200, 29, 235, 145, 8, 69, 112,\n\t\t234, 128, 245, 86, 251, 23, 79, 254, 252, 27, 206, 125, 191,\n\t\t249, 150, 103, 188, 181, 193, 87, 22, 31, 50, 66, 218, 175,\n\t\t27, 66, 49, 53, 160, 181, 218, 210, 53, 71, 251, 37, 131,\n\t\t238, 66, 90, 237, 214, 240, 21, 204, 28, 140, 142, 198, 222,\n\t\t84, 123, 179, 247, 208, 19, 253, 43, 238, 237, 123, 55, 190,\n\t\t105, 253, 110, 213, 237, 233, 101, 25, 150, 133, 144, 113,\n\t\t225, 2, 58, 134, 207, 195, 221, 200, 70, 13, 180, 139, 174,\n\t\t65, 167, 209, 221, 232, 53, 232, 17, 244, 30, 244, 73, 244,\n\t\t89, 244, 235, 251, 120, 191, 233, 80, 34, 17, 165, 13, 232,\n\t\t5, 241, 140, 254, 59, 238, 39, 22, 196, 153, 100, 211, 222,\n\t\t103, 4, 47, 32, 36, 58, 185, 114, 87, 56, 237, 164, 217, 104,\n\t\t54, 39, 42, 61, 25, 226, 73, 50, 153, 113, 222, 132, 147,\n\t\t60, 227, 34, 188, 226, 33, 9, 87, 50, 172, 67, 32, 167, 138,\n\t\t37, 182, 87, 39, 147, 9, 103, 136, 19, 161, 116, 160, 184,\n\t\t244, 172, 4, 223, 10, 147, 76, 206, 138, 39, 19, 145, 164,\n\t\t97, 130, 207, 31, 122, 221, 145, 164, 107, 24, 103, 223, 55,\n\t\t26, 76, 190, 255, 217, 209, 96, 242, 190, 179, 189, 142, 169,\n\t\t157, 125, 223, 150, 170, 234, 102, 16, 56, 134, 234, 88, 186,\n\t\t105, 218, 166, 99, 42, 54, 121, 212, 246, 26, 190, 211, 237,\n\t\t40, 169, 225, 56, 134, 109, 90, 150, 121, 64, 73, 13, 219,\n\t\t54, 108, 195, 178, 140, 3, 132, 217, 42, 246, 177, 173, 246,\n\t\t148, 29, 101, 172, 88, 196, 175, 213, 136, 79, 44, 37, 85,\n\t\t54, 137, 200, 63, 20, 140, 137, 4, 86, 248, 181, 214, 180,\n\t\t201, 174, 152, 44, 38, 206, 26, 95, 234, 56, 107, 181, 213,\n\t\t99, 12, 224, 138, 59, 116, 77, 227, 170, 165, 107, 150, 162,\n\t\t42, 84, 168, 76, 112, 67, 211, 45, 65, 174, 206, 44, 207,\n\t\t179, 178, 204, 117, 155, 151, 89, 78, 201, 105, 44, 218, 214,\n\t\t101, 23, 183, 118, 14, 98, 75, 217, 198, 152, 155, 170, 186,\n\t\t99, 41, 38, 195, 145, 25, 202, 221, 155, 0, 184, 96, 76, 48,\n\t\t198, 24, 130, 11, 23, 46, 124, 15, 190, 2, 79, 229, 18, 4,\n\t\t16, 201, 85, 145, 236, 128, 36, 145, 74, 11, 243, 2, 124,\n\t\t249, 168, 82, 191, 127, 168, 233, 202, 151, 133, 224, 226,\n\t\t91, 231, 92, 28, 192, 123, 109, 15, 238, 216, 251, 205, 142,\n\t\t115, 213, 170, 246, 192, 191, 19, 128, 217, 7, 91, 44, 16,\n\t\t63, 197, 92, 244, 18, 159, 177, 185, 31, 212, 140, 61, 25,\n\t\t93, 222, 225, 98, 52, 185, 20, 148, 37, 137, 224, 163, 86,\n\t\t16, 88, 123, 79, 229, 203, 15, 188, 238, 4, 103, 215, 188,\n\t\t234, 26, 118, 167, 56, 42, 196, 81, 113, 39, 135, 231, 246,\n\t\t207, 193, 91, 172, 96, 239, 253, 198, 45, 235, 227, 227, 199,\n\t\t199, 65, 126, 86, 4, 235, 51, 185, 251, 5, 120, 94, 98, 231,\n\t\t216, 210, 7, 37, 157, 196, 97, 156, 77, 210, 44, 21, 105,\n\t\t6, 207, 255, 229, 159, 222, 250, 99, 239, 62, 123, 75, 231,\n\t\t214, 155, 79, 193, 238, 5, 116, 254, 252, 31, 47, 255, 232,\n\t\t149, 87, 126, 104, 99, 18, 78, 86, 50, 132, 226, 139, 24,\n\t\t185, 4, 233, 210, 222, 242, 82, 153, 250, 0, 58, 136, 14,\n\t\t161, 99, 232, 114, 116, 45, 186, 1, 221, 130, 238, 64, 247,\n\t\t162, 7, 209, 143, 32, 20, 117, 210, 81, 26, 132, 201, 248,\n\t\t32, 140, 226, 40, 78, 250, 105, 86, 44, 195, 100, 178, 255,\n\t\t139, 103, 191, 253, 109, 54, 205, 70, 92, 164, 147, 81, 40,\n\t\t38, 163, 48, 157, 225, 12, 146, 126, 218, 230, 130, 204, 142,\n\t\t50, 185, 151, 94, 76, 57, 187, 69, 248, 207, 143, 174, 254,\n\t\t241, 87, 239, 191, 63, 176, 252, 247, 112, 122, 15, 225, 175,\n\t\t197, 248, 220, 253, 151, 254, 3, 147, 147, 7, 128, 220, 179,\n\t\t191, 255, 251, 129, 9, 61, 203, 43, 223, 127, 255, 253, 123,\n\t\t191, 64, 13, 184, 65, 209, 30, 241, 205, 71, 4, 190, 249,\n\t\t254, 251, 239, 111, 181, 62, 70, 9, 102, 230, 113, 71, 53,\n\t\t204, 196, 208, 117, 227, 152, 235, 254, 34, 99, 9, 198, 199,\n\t\t20, 229, 85, 182, 125, 76, 211, 18, 195, 248, 152, 110, 24,\n\t\t250, 175, 105, 90, 207, 48, 174, 80, 148, 171, 241, 222, 253,\n\t\t182, 237, 88, 240, 6, 198, 62, 96, 219, 191, 198, 98, 219,\n\t\t236, 169, 78, 192, 78, 154, 38, 102, 164, 227, 186, 40, 215,\n\t\t78, 46, 252, 58, 126, 35, 252, 6, 90, 70, 151, 163, 215, 34,\n\t\t4, 22, 179, 115, 185, 176, 176, 14, 239, 192, 116, 7, 182,\n\t\t105, 54, 29, 77, 179, 116, 44, 195, 183, 115, 49, 37, 14,\n\t\t210, 254, 100, 90, 176, 174, 198, 195, 25, 200, 175, 12, 138,\n\t\t72, 250, 147, 41, 72, 194, 68, 46, 149, 218, 108, 156, 231,\n\t\t150, 230, 91, 22, 195, 191, 242, 154, 174, 201, 8, 48, 162,\n\t\t127, 192, 12, 27, 99, 83, 53, 62, 168, 59, 117, 206, 157,\n\t\t112, 210, 193, 152, 1, 80, 221, 178, 9, 16, 70, 224, 243,\n\t\t130, 90, 50, 182, 6, 131, 230, 96, 28, 132, 24, 12, 13, 128,\n\t\t1, 188, 195, 80, 149, 70, 47, 8, 141, 15, 234, 249, 160, 130,\n\t\t133, 234, 233, 128, 137, 66, 25, 97, 132, 122, 220, 96, 10,\n\t\t129, 247, 245, 54, 155, 177, 166, 176, 182, 103, 127, 221,\n\t\t197, 180, 95, 245, 221, 175, 219, 170, 77, 184, 91, 202, 58,\n\t\t10, 193, 148, 106, 154, 46, 3, 244, 176, 70, 176, 174, 105,\n\t\t10, 193, 138, 230, 96, 18, 68, 24, 151, 2, 32, 88, 236, 189,\n\t\t207, 245, 189, 134, 71, 176, 251, 117, 219, 115, 44, 66, 185,\n\t\t225, 116, 2, 66, 136, 74, 89, 126, 95, 149, 40, 76, 176, 194,\n\t\t6, 95, 196, 197, 169, 232, 173, 232, 199, 208, 123, 209, 71,\n\t\t208, 39, 208, 231, 64, 135, 26, 66, 89, 254, 145, 245, 179,\n\t\t233, 90, 192, 184, 136, 211, 31, 248, 37, 34, 237, 167, 34,\n\t\t123, 197, 223, 100, 60, 73, 179, 105, 150, 198, 175, 248,\n\t\t219, 129, 120, 24, 103, 34, 122, 165, 95, 19, 68, 46, 230,\n\t\t196, 124, 127, 246, 116, 38, 175, 137, 32, 150, 177, 250,\n\t\t105, 127, 194, 211, 75, 182, 47, 61, 30, 247, 15, 2, 79, 34,\n\t\t217, 230, 251, 69, 80, 122, 254, 12, 18, 37, 32, 138, 147,\n\t\t1, 204, 54, 215, 18, 25, 237, 47, 41, 66, 3, 209, 95, 148,\n\t\t28, 15, 217, 42, 23, 227, 252, 130, 195, 6, 72, 32, 139, 56,\n\t\t18, 163, 97, 20, 78, 179, 209, 48, 155, 20, 151, 141, 70,\n\t\t195, 44, 151, 132, 254, 45, 83, 242, 78, 149, 194, 18, 17,\n\t\t139, 203, 138, 209, 233, 25, 78, 185, 238, 4, 142, 31, 68,\n\t\t66, 143, 34, 140, 163, 72, 23, 81, 224, 219, 190, 91, 43,\n\t\t59, 102, 183, 99, 40, 203, 139, 10, 25, 141, 112, 182, 142,\n\t\t249, 198, 38, 87, 179, 77, 213, 88, 155, 26, 214, 220, 192,\n\t\t114, 170, 29, 199, 49, 124, 215, 165, 212, 117, 2, 195, 181,\n\t\t59, 85, 219, 30, 204, 89, 198, 116, 205, 80, 55, 215, 85,\n\t\t190, 181, 193, 241, 250, 58, 140, 174, 184, 255, 217, 87,\n\t\t189, 234, 217, 107, 79, 61, 113, 234, 212, 19, 111, 161, 140,\n\t\t80, 66, 180, 249, 217, 218, 159, 173, 191, 166, 152, 76, 101,\n\t\t30, 54, 177, 74, 49, 7, 85, 176, 92, 98, 34, 160, 2, 7, 172,\n\t\t82, 0, 15, 115, 2, 150, 6, 14, 49, 116, 142, 25, 80, 208,\n\t\t1, 99, 208, 176, 160, 132, 109, 83, 221, 96, 15, 242, 146,\n\t\t41, 52, 195, 48, 48, 166, 4, 188, 159, 179, 133, 52, 242,\n\t\t151, 131, 32, 246, 3, 183, 89, 245, 236, 78, 203, 214, 123,\n\t\t93, 157, 165, 125, 222, 239, 3, 235, 167, 76, 75, 122, 186,\n\t\t213, 236, 216, 110, 165, 225, 5, 126, 28, 4, 170, 101, 154,\n\t\t92, 33, 196, 247, 29, 205, 117, 27, 101, 199, 90, 74, 77,\n\t\t109, 125, 172, 41, 135, 118, 4, 61, 113, 156, 192, 101, 151,\n\t\t209, 227, 39, 168, 216, 57, 164, 104, 227, 117, 221, 72, 151,\n\t\t44, 167, 220, 112, 61, 221, 241, 125, 66, 132, 48, 44, 171,\n\t\t157, 63, 238, 253, 127, 243, 182, 211, 167, 223, 118, 250,\n\t\t141, 4, 19, 166, 228, 226, 34, 213, 156, 75, 182, 201, 139,\n\t\t219, 250, 105, 98, 190, 206, 15, 197, 174, 96, 93, 108, 16,\n\t\t226, 82, 223, 36, 58, 33, 160, 96, 236, 146, 252, 8, 0, 115,\n\t\t52, 66, 169, 171, 208, 42, 38, 56, 172, 89, 140, 229, 18,\n\t\t162, 130, 193, 100, 12, 131, 73, 52, 67, 8, 135, 155, 74,\n\t\t251, 172, 23, 137, 195, 134, 34, 101, 65, 177, 111, 119, 249,\n\t\t142, 28, 119, 54, 115, 29, 214, 223, 38, 133, 219, 152, 196,\n\t\t126, 152, 5, 223, 89, 56, 12, 66, 11, 58, 253, 73, 63, 151,\n\t\t65, 102, 142, 166, 219, 80, 164, 144, 184, 180, 94, 71, 194,\n\t\t124, 247, 167, 163, 97, 174, 201, 142, 134, 18, 210, 231,\n\t\t155, 64, 212, 200, 190, 183, 101, 168, 92, 227, 237, 206,\n\t\t125, 186, 197, 49, 88, 158, 5, 196, 49, 207, 118, 218, 92,\n\t\t51, 84, 222, 186, 215, 9, 85, 226, 119, 149, 181, 53, 213,\n\t\t243, 66, 245, 200, 17, 53, 244, 60, 21, 238, 134, 145, 102,\n\t\t6, 90, 100, 168, 38, 215, 120, 175, 213, 160, 170, 194, 1,\n\t\t107, 166, 169, 97, 80, 52, 181, 209, 234, 113, 141, 115, 141,\n\t\t27, 145, 238, 155, 123, 95, 116, 224, 166, 155, 192, 106,\n\t\t4, 143, 62, 26, 52, 44, 248, 52, 72, 60, 116, 227, 194, 151,\n\t\t224, 255, 131, 223, 64, 35, 116, 26, 157, 69, 111, 64, 231,\n\t\t209, 47, 206, 162, 56, 69, 98, 225, 148, 11, 139, 116, 120,\n\t\t58, 32, 147, 52, 75, 6, 66, 10, 254, 155, 208, 192, 241, 180,\n\t\t159, 171, 6, 11, 146, 26, 86, 68, 188, 129, 227, 188, 85,\n\t\t237, 64, 180, 13, 217, 112, 155, 165, 65, 103, 210, 79, 59,\n\t\t253, 233, 72, 6, 102, 228, 27, 13, 16, 1, 239, 199, 50, 112,\n\t\t187, 159, 116, 198, 69, 13, 164, 23, 99, 226, 86, 160, 63,\n\t\t131, 95, 47, 180, 206, 58, 52, 104, 60, 148, 225, 221, 113,\n\t\t4, 207, 183, 107, 58, 49, 157, 208, 143, 44, 23, 68, 231,\n\t\t138, 94, 168, 18, 141, 170, 84, 195, 148, 203, 119, 21, 118,\n\t\t99, 95, 149, 97, 214, 171, 141, 251, 186, 201, 248, 166, 86,\n\t\t73, 139, 107, 162, 113, 249, 18, 117, 151, 231, 87, 237, 121,\n\t\t12, 88, 115, 231, 234, 160, 208, 163, 205, 221, 6, 7, 215,\n\t\t140, 92, 207, 120, 183, 137, 155, 148, 80, 186, 24, 193, 92,\n\t\t143, 98, 66, 23, 86, 128, 139, 21, 46, 142, 141, 57, 223,\n\t\t184, 74, 215, 106, 150, 187, 19, 149, 124, 39, 215, 143, 129,\n\t\t133, 174, 165, 25, 92, 40, 170, 36, 99, 39, 166, 219, 244,\n\t\t85, 166, 105, 78, 205, 211, 225, 125, 245, 183, 222, 30, 247,\n\t\t171, 145, 169, 49, 74, 184, 160, 177, 70, 116, 170, 82, 2,\n\t\t92, 8, 140, 199, 60, 172, 52, 91, 157, 86, 195, 120, 205,\n\t\t106, 181, 2, 161, 255, 237, 107, 94, 83, 18, 142, 3, 68, 248,\n\t\t246, 220, 109, 222, 252, 202, 124, 162, 92, 43, 4, 97, 215,\n\t\t98, 198, 49, 101, 154, 27, 39, 231, 4, 111, 97, 193, 241,\n\t\t122, 123, 137, 8, 78, 198, 125, 154, 119, 229, 132, 208, 205,\n\t\t35, 230, 149, 63, 235, 134, 140, 117, 92, 191, 20, 150, 221,\n\t\t26, 103, 86, 77, 19, 186, 45, 52, 203, 213, 84, 44, 8, 38,\n\t\t106, 57, 140, 24, 55, 76, 213, 113, 53, 132, 94, 238, 115,\n\t\t255, 114, 249, 137, 77, 211, 190, 152, 94, 28, 21, 133, 69,\n\t\t69, 188, 79, 153, 60, 26, 102, 83, 120, 191, 95, 169, 248,\n\t\t123, 63, 149, 47, 225, 42, 50, 60, 82, 178, 219, 4, 130, 170,\n\t\t97, 184, 106, 79, 56, 161, 221, 16, 78, 72, 13, 207, 21, 36,\n\t\t168, 13, 14, 239, 194, 115, 23, 83, 159, 243, 43, 31, 220,\n\t\t5, 124, 141, 170, 70, 110, 107, 193, 178, 95, 181, 78, 65,\n\t\t113, 205, 10, 15, 236, 149, 237, 178, 53, 190, 249, 36, 42,\n\t\t248, 156, 209, 25, 252, 36, 32, 180, 132, 110, 66, 79, 32,\n\t\t148, 117, 250, 43, 120, 128, 243, 15, 110, 216, 32, 77, 233,\n\t\t166, 177, 131, 183, 169, 228, 96, 192, 129, 69, 242, 178,\n\t\t175, 224, 254, 43, 158, 182, 104, 146, 14, 163, 38, 142, 22,\n\t\t161, 51, 160, 133, 171, 188, 204, 36, 153, 28, 240, 54, 29,\n\t\t61, 96, 199, 148, 101, 32, 35, 69, 219, 185, 54, 202, 160,\n\t\t203, 109, 161, 99, 220, 5, 138, 41, 35, 109, 149, 97, 188,\n\t\t158, 15, 177, 26, 188, 202, 142, 41, 93, 215, 195, 151, 36,\n\t\t132, 30, 48, 96, 180, 72, 152, 129, 76, 249, 91, 50, 161,\n\t\t22, 180, 243, 78, 25, 19, 232, 49, 71, 232, 128, 123, 12,\n\t\t83, 134, 219, 90, 126, 69, 192, 138, 234, 170, 103, 108, 69,\n\t\t188, 14, 48, 103, 20, 83, 162, 192, 149, 166, 32, 228, 74,\n\t\t80, 8, 197, 42, 163, 175, 3, 170, 41, 34, 79, 225, 253, 139,\n\t\t103, 159, 43, 78, 99, 74, 248, 43, 158, 127, 169, 95, 169,\n\t\t131, 14, 163, 147, 232, 110, 132, 60, 9, 74, 35, 109, 249,\n\t\t34, 203, 199, 63, 73, 12, 60, 139, 20, 144, 173, 81, 2, 60,\n\t\t200, 105, 108, 57, 209, 19, 6, 241, 106, 67, 200, 185, 116,\n\t\t255, 229, 17, 61, 82, 23, 187, 8, 155, 252, 169, 215, 164,\n\t\t115, 215, 100, 221, 38, 27, 154, 36, 248, 35, 138, 65, 68,\n\t\t140, 19, 162, 18, 30, 196, 186, 84, 224, 49, 80, 142, 49,\n\t\t39, 140, 51, 203, 37, 132, 11, 85, 211, 76, 222, 240, 184,\n\t\t119, 246, 197, 80, 159, 207, 30, 190, 115, 117, 240, 212,\n\t\t29, 97, 116, 99, 2, 199, 210, 185, 201, 244, 106, 143, 152,\n\t\t171, 172, 213, 207, 126, 196, 98, 64, 164, 198, 172, 81, 162,\n\t\t249, 30, 3, 141, 19, 2, 186, 77, 56, 48, 219, 11, 66, 70,\n\t\t21, 69, 81, 21, 65, 76, 2, 58, 52, 94, 18, 9, 244, 142, 59,\n\t\t14, 237, 174, 13, 238, 56, 180, 216, 59, 25, 249, 179, 185,\n\t\t182, 191, 144, 117, 179, 130, 54, 208, 147, 8, 129, 13, 177,\n\t\t72, 11, 246, 219, 100, 5, 68, 33, 223, 175, 192, 100, 71,\n\t\t82, 240, 74, 130, 220, 81, 19, 102, 118, 236, 38, 8, 57, 211,\n\t\t216, 47, 162, 150, 194, 255, 153, 204, 241, 10, 216, 88, 166,\n\t\t13, 197, 204, 176, 52, 205, 54, 65, 94, 118, 7, 167, 240,\n\t\t66, 29, 135, 122, 93, 168, 97, 168, 139, 72, 24, 126, 160,\n\t\t136, 134, 22, 144, 90, 141, 4, 122, 77, 81, 2, 223, 16, 145,\n\t\t208, 67, 95, 136, 122, 126, 248, 49, 187, 226, 116, 86, 218,\n\t\t237, 51, 43, 25, 77, 131, 169, 229, 166, 105, 104, 46, 152,\n\t\t81, 183, 103, 91, 89, 208, 103, 211, 41, 79, 195, 137, 109,\n\t\t247, 186, 177, 177, 96, 196, 156, 234, 132, 185, 37, 14, 221,\n\t\t149, 237, 165, 222, 134, 98, 10, 204, 176, 203, 120, 192,\n\t\t49, 52, 243, 187, 169, 74, 205, 8, 73, 189, 78, 66, 163, 170,\n\t\t8, 47, 48, 20, 121, 55, 69, 173, 234, 33, 173, 84, 104, 40,\n\t\t11, 17, 232, 234, 97, 187, 226, 196, 237, 246, 74, 219, 181,\n\t\t230, 204, 56, 233, 59, 246, 56, 158, 227, 249, 237, 162, 161,\n\t\t107, 39, 253, 200, 154, 183, 131, 180, 107, 57, 227, 32, 229,\n\t\t227, 1, 199, 220, 231, 212, 3, 142, 185, 169, 108, 244, 23,\n\t\t183, 87, 18, 81, 114, 25, 49, 40, 71, 151, 114, 214, 10, 105,\n\t\t113, 222, 69, 87, 92, 226, 109, 28, 68, 49, 225, 254, 48,\n\t\t235, 175, 128, 136, 252, 184, 160, 161, 218, 87, 251, 59,\n\t\t22, 136, 225, 40, 147, 189, 86, 156, 173, 128, 28, 111, 138,\n\t\t125, 95, 206, 2, 231, 98, 222, 71, 228, 100, 72, 249, 216,\n\t\t129, 7, 253, 191, 232, 119, 1, 142, 30, 105, 238, 92, 23,\n\t\t187, 126, 20, 57, 128, 119, 111, 233, 159, 56, 16, 40, 124,\n\t\t75, 5, 213, 176, 78, 174, 118, 74, 140, 50, 222, 11, 229,\n\t\t254, 209, 209, 86, 21, 246, 167, 19, 239, 63, 244, 80, 13,\n\t\t186, 139, 123, 127, 103, 2, 254, 226, 111, 170, 112, 226,\n\t\t111, 174, 152, 122, 141, 86, 226, 58, 37, 216, 44, 47, 55,\n\t\t9, 120, 128, 225, 239, 158, 189, 139, 168, 42, 145, 59, 123,\n\t\t127, 220, 56, 119, 240, 192, 80, 55, 122, 139, 69, 91, 228,\n\t\t23, 190, 2, 223, 133, 231, 145, 143, 22, 209, 161, 194, 30,\n\t\t46, 131, 125, 228, 240, 39, 41, 200, 226, 70, 46, 170, 242,\n\t\t56, 154, 241, 108, 108, 147, 252, 96, 20, 71, 172, 240, 235,\n\t\t17, 124, 34, 195, 122, 102, 200, 83, 189, 52, 155, 70, 113,\n\t\t167, 47, 41, 65, 6, 24, 30, 62, 225, 242, 205, 234, 218, 120,\n\t\t115, 20, 154, 167, 74, 83, 42, 110, 124, 238, 116, 211, 17,\n\t\t152, 16, 214, 86, 48, 39, 186, 19, 232, 170, 162, 87, 167,\n\t\t20, 14, 80, 194, 77, 195, 36, 152, 232, 213, 51, 139, 81,\n\t\t100, 209, 90, 178, 247, 156, 234, 239, 188, 113, 168, 5, 107,\n\t\t245, 0, 160, 220, 156, 127, 242, 150, 150, 222, 85, 109, 198,\n\t\t219, 150, 109, 172, 220, 85, 94, 5, 56, 249, 129, 215, 220,\n\t\t180, 236, 11, 70, 212, 225, 9, 127, 222, 233, 180, 234, 134,\n\t\t138, 137, 186, 70, 15, 185, 91, 110, 179, 90, 117, 9, 8, 175,\n\t\t115, 242, 241, 57, 211, 106, 236, 158, 7, 173, 166, 54, 177,\n\t\t105, 105, 96, 152, 250, 44, 158, 227, 5, 180, 7, 47, 32, 3,\n\t\t5, 8, 101, 34, 201, 85, 134, 233, 38, 184, 201, 196, 149,\n\t\t115, 166, 155, 240, 145, 91, 118, 207, 92, 121, 211, 238,\n\t\t201, 172, 222, 31, 222, 90, 127, 234, 171, 127, 212, 191,\n\t\t255, 234, 27, 247, 208, 87, 193, 90, 223, 124, 205, 69, 91,\n\t\t214, 0, 94, 64, 10, 66, 241, 132, 140, 98, 127, 68, 194, 39,\n\t\t95, 183, 126, 242, 206, 241, 27, 119, 127, 30, 22, 254, 26,\n\t\t162, 189, 143, 127, 28, 137, 11, 223, 67, 91, 248, 60, 28,\n\t\t69, 2, 173, 160, 77, 116, 4, 221, 142, 238, 71, 111, 68, 200,\n\t\t231, 5, 131, 137, 136, 226, 213, 132, 199, 65, 67, 172, 21,\n\t\t51, 184, 73, 135, 39, 18, 152, 96, 154, 13, 11, 242, 219,\n\t\t81, 49, 241, 185, 8, 97, 146, 133, 133, 69, 56, 238, 244,\n\t\t39, 227, 29, 144, 80, 57, 73, 17, 227, 81, 135, 100, 146,\n\t\t240, 116, 56, 61, 8, 66, 162, 44, 198, 157, 100, 18, 141,\n\t\t134, 59, 144, 142, 226, 81, 54, 18, 22, 252, 168, 229, 97,\n\t\t203, 240, 49, 174, 152, 16, 75, 206, 103, 202, 242, 186, 247,\n\t\t108, 17, 40, 74, 192, 109, 223, 214, 12, 187, 198, 45, 131,\n\t\t144, 218, 107, 47, 247, 235, 110, 175, 190, 208, 104, 36,\n\t\t65, 20, 5, 231, 195, 234, 180, 95, 47, 211, 170, 93, 113,\n\t\t42, 205, 26, 152, 177, 29, 118, 234, 194, 120, 173, 66, 24,\n\t\t245, 57, 25, 53, 187, 144, 52, 39, 106, 9, 58, 46, 118, 109,\n\t\t27, 188, 54, 246, 237, 50, 211, 132, 96, 20, 99, 176, 156,\n\t\t138, 162, 64, 45, 58, 80, 173, 0, 99, 122, 226, 212, 253,\n\t\t90, 247, 240, 167, 174, 14, 122, 193, 103, 98, 191, 79, 177,\n\t\t94, 10, 204, 64, 47, 135, 119, 199, 229, 216, 51, 117, 12,\n\t\t62, 87, 217, 21, 37, 8, 212, 247, 189, 225, 13, 31, 172, 248,\n\t\t5, 6, 250, 255, 129, 119, 225, 99, 136, 73, 207, 132, 20,\n\t\t29, 69, 215, 161, 87, 163, 183, 32, 132, 130, 69, 152, 140,\n\t\t226, 241, 14, 20, 4, 246, 47, 15, 158, 98, 81, 38, 189, 141,\n\t\t227, 254, 164, 95, 0, 103, 231, 53, 93, 184, 31, 207, 144,\n\t\t83, 178, 105, 38, 177, 197, 71, 147, 209, 112, 27, 98, 233,\n\t\t151, 97, 65, 56, 154, 142, 134, 245, 89, 141, 142, 134, 89,\n\t\t56, 202, 18, 145, 164, 73, 156, 191, 171, 36, 148, 125, 39,\n\t\t12, 234, 165, 210, 213, 65, 204, 13, 225, 253, 101, 45, 216,\n\t\t107, 201, 222, 254, 155, 65, 109, 111, 215, 208, 84, 48, 85,\n\t\t109, 219, 7, 87, 115, 185, 174, 97, 236, 178, 80, 83, 132,\n\t\t110, 106, 212, 50, 44, 166, 25, 252, 39, 202, 193, 40, 172,\n\t\t155, 161, 113, 90, 243, 12, 221, 211, 125, 226, 6, 149, 190,\n\t\t106, 171, 177, 26, 156, 139, 74, 80, 142, 186, 152, 90, 152,\n\t\t130, 112, 92, 14, 144, 101, 167, 77, 192, 10, 215, 248, 159,\n\t\t92, 18, 125, 248, 30, 208, 117, 19, 52, 253, 22, 53, 116,\n\t\t117, 11, 128, 82, 1, 158, 63, 103, 251, 156, 123, 234, 225,\n\t\t160, 244, 238, 21, 61, 212, 53, 75, 17, 150, 106, 185, 10,\n\t\t144, 170, 98, 9, 215, 185, 247, 250, 235, 239, 229, 150, 3,\n\t\t150, 39, 241, 5, 191, 12, 15, 193, 111, 32, 7, 165, 104, 128,\n\t\t214, 17, 202, 34, 81, 131, 53, 89, 83, 210, 139, 98, 232,\n\t\t23, 29, 133, 72, 10, 126, 159, 194, 111, 153, 184, 150, 132,\n\t\t125, 232, 167, 18, 57, 98, 250, 219, 29, 128, 200, 241, 34,\n\t\t128, 22, 193, 244, 233, 166, 166, 221, 53, 194, 152, 0, 171,\n\t\t45, 142, 154, 4, 223, 180, 144, 206, 245, 22, 223, 90, 237,\n\t\t104, 152, 253, 129, 57, 218, 174, 196, 128, 15, 221, 27, 52,\n\t\t2, 192, 150, 27, 218, 126, 141, 0, 156, 155, 108, 173, 60,\n\t\t190, 6, 0, 172, 58, 56, 124, 168, 126, 247, 178, 107, 7, 123,\n\t\t95, 129, 227, 100, 120, 160, 122, 89, 54, 184, 211, 244, 174,\n\t\t72, 79, 188, 241, 62, 196, 46, 198, 226, 133, 168, 143, 214,\n\t\t209, 141, 232, 30, 201, 135, 25, 133, 53, 16, 60, 233, 207,\n\t\t166, 13, 242, 206, 107, 82, 120, 127, 4, 197, 236, 194, 104,\n\t\t22, 152, 51, 227, 94, 44, 232, 133, 134, 242, 92, 24, 132,\n\t\t1, 23, 129, 40, 2, 32, 59, 73, 46, 154, 20, 243, 98, 80, 4,\n\t\t51, 158, 17, 175, 195, 128, 15, 28, 16, 165, 94, 137, 99,\n\t\t170, 174, 61, 218, 93, 178, 82, 21, 128, 56, 101, 75, 233,\n\t\t247, 175, 114, 27, 4, 59, 54, 87, 85, 97, 10, 130, 109, 245,\n\t\t83, 112, 189, 82, 154, 171, 48, 0, 10, 132, 154, 43, 117,\n\t\t126, 37, 134, 123, 221, 22, 163, 148, 181, 220, 72, 229, 92,\n\t\t129, 143, 98, 250, 141, 143, 28, 147, 82, 96, 185, 23, 171,\n\t\t15, 191, 221, 109, 47, 255, 201, 243, 220, 94, 16, 223, 226,\n\t\t118, 217, 165, 24, 96, 135, 134, 158, 93, 97, 152, 114, 139,\n\t\t171, 161, 169, 220, 9, 152, 150, 231, 74, 226, 77, 152, 222,\n\t\t158, 232, 0, 138, 82, 110, 19, 128, 191, 248, 139, 223, 99,\n\t\t158, 107, 154, 174, 71, 121, 108, 217, 113, 222, 231, 91,\n\t\t8, 93, 248, 30, 62, 15, 63, 134, 54, 209, 25, 105, 213, 123,\n\t\t59, 122, 23, 250, 12, 250, 42, 250, 99, 244, 61, 176, 160,\n\t\t3, 93, 72, 17, 98, 179, 24, 139, 225, 255, 32, 198, 226, 21,\n\t\t66, 44, 120, 22, 204, 66, 44, 66, 105, 0, 207, 171, 125, 63,\n\t\t186, 98, 210, 223, 15, 174, 200, 94, 36, 203, 227, 227, 78,\n\t\t144, 229, 149, 155, 119, 106, 147, 209, 48, 12, 196, 48, 14,\n\t\t250, 210, 148, 221, 11, 3, 94, 220, 161, 240, 39, 224, 197,\n\t\t45, 102, 183, 148, 145, 149, 81, 79, 146, 26, 95, 90, 142,\n\t\t92, 23, 110, 66, 36, 198, 107, 105, 39, 17, 157, 58, 4, 163,\n\t\t56, 154, 100, 171, 147, 76, 240, 254, 203, 158, 229, 229,\n\t\t121, 235, 16, 136, 108, 184, 22, 15, 235, 176, 106, 195, 106,\n\t\t146, 118, 14, 194, 170, 8, 66, 254, 178, 116, 97, 58, 138,\n\t\t211, 16, 182, 8, 241, 9, 102, 20, 192, 2, 216, 144, 127, 7,\n\t\t0, 108, 33, 176, 192, 46, 23, 14, 231, 27, 197, 31, 94, 172,\n\t\t55, 177, 2, 216, 243, 194, 114, 165, 138, 1, 4, 198, 142,\n\t\t45, 76, 203, 200, 8, 39, 84, 8, 85, 96, 223, 194, 5, 253,\n\t\t190, 196, 78, 192, 176, 247, 247, 20, 122, 132, 58, 64, 177,\n\t\t67, 104, 23, 83, 122, 80, 78, 200, 108, 19, 184, 150, 28,\n\t\t164, 180, 248, 179, 41, 193, 61, 50, 8, 1, 228, 95, 244, 71,\n\t\t93, 76, 177, 143, 243, 191, 109, 140, 123, 180, 72, 73, 14,\n\t\t210, 235, 13, 48, 0, 242, 197, 247, 129, 28, 164, 100, 123,\n\t\t118, 133, 43, 225, 42, 160, 88, 151, 232, 200, 10, 64, 27,\n\t\t224, 176, 92, 22, 27, 42, 97, 244, 48, 192, 97, 143, 168,\n\t\t84, 28, 22, 180, 77, 105, 155, 138, 195, 10, 105, 227, 195,\n\t\t210, 160, 168, 10, 140, 109, 63, 0, 0, 93, 145, 166, 196,\n\t\t121, 194, 72, 174, 231, 91, 158, 79, 9, 0, 147, 138, 41, 17,\n\t\t132, 252, 228, 93, 24, 67, 136, 233, 18, 195, 42, 128, 138,\n\t\t217, 18, 197, 33, 96, 124, 23, 197, 93, 128, 46, 190, 239,\n\t\t115, 20, 119, 49, 238, 98, 122, 130, 146, 4, 99, 21, 211,\n\t\t59, 49, 129, 16, 255, 24, 152, 38, 148, 112, 94, 122, 92,\n\t\t202, 115, 120, 24, 116, 0, 29, 112, 132, 113, 2, 20, 66, 140,\n\t\t147, 60, 215, 44, 187, 75, 185, 16, 96, 65, 190, 88, 0, 32,\n\t\t56, 201, 207, 179, 227, 251, 231, 167, 79, 2, 228, 99, 191,\n\t\t114, 225, 107, 152, 194, 243, 104, 25, 221, 92, 112, 103,\n\t\t204, 250, 130, 25, 165, 88, 1, 200, 89, 140, 12, 51, 53, 116,\n\t\t192, 199, 253, 108, 53, 10, 37, 164, 172, 236, 4, 50, 201,\n\t\t143, 83, 224, 228, 198, 51, 96, 164, 2, 19, 78, 193, 111,\n\t\t58, 125, 238, 103, 92, 231, 230, 147, 38, 171, 86, 152, 209,\n\t\t227, 208, 175, 214, 151, 41, 141, 99, 147, 85, 171, 84, 191,\n\t\t117, 145, 202, 1, 17, 67, 8, 236, 200, 38, 197, 81, 12, 116,\n\t\t149, 192, 242, 110, 221, 175, 2, 155, 163, 16, 71, 152, 102,\n\t\t237, 137, 174, 61, 123, 239, 201, 135, 127, 249, 222, 167,\n\t\t13, 243, 209, 51, 167, 62, 220, 230, 230, 241, 99, 6, 115,\n\t\t83, 198, 171, 11, 152, 36, 181, 210, 162, 198, 205, 227, 199,\n\t\t117, 214, 185, 73, 113, 108, 211, 210, 76, 110, 16, 151, 173,\n\t\t223, 83, 199, 108, 99, 147, 146, 198, 122, 107, 85, 115, 181,\n\t\t149, 136, 241, 229, 50, 166, 155, 27, 12, 87, 6, 151, 223,\n\t\t122, 219, 227, 166, 246, 214, 34, 142, 229, 79, 49, 130, 159,\n\t\t71, 91, 232, 10, 116, 18, 157, 70, 175, 71, 111, 148, 253,\n\t\t194, 7, 209, 199, 209, 47, 161, 47, 162, 223, 71, 127, 138,\n\t\t254, 82, 90, 97, 100, 32, 174, 152, 33, 138, 22, 49, 225,\n\t\t5, 56, 210, 52, 235, 239, 179, 66, 101, 18, 94, 107, 90, 32,\n\t\t129, 22, 16, 58, 92, 68, 233, 69, 168, 81, 89, 167, 133, 49,\n\t\t180, 159, 206, 224, 67, 227, 139, 106, 125, 145, 191, 8, 80,\n\t\t225, 49, 151, 220, 108, 92, 30, 140, 226, 252, 34, 211, 184,\n\t\t47, 25, 70, 11, 84, 210, 181, 1, 16, 153, 34, 87, 95, 10,\n\t\t164, 245, 34, 255, 139, 40, 85, 89, 222, 181, 71, 82, 169,\n\t\t44, 202, 222, 192, 251, 112, 126, 105, 81, 138, 97, 191, 232,\n\t\t137, 2, 248, 217, 133, 113, 182, 204, 9, 6, 142, 109, 51,\n\t\t216, 108, 43, 140, 241, 246, 78, 16, 24, 10, 198, 76, 93,\n\t\t156, 12, 23, 84, 21, 131, 106, 4, 193, 110, 135, 82, 193,\n\t\t219, 155, 65, 104, 104, 0, 202, 19, 156, 199, 65, 187, 3,\n\t\t160, 8, 211, 92, 125, 134, 43, 26, 143, 74, 34, 21, 42, 87,\n\t\t132, 82, 226, 186, 174, 155, 113, 92, 138, 44, 205, 208, 228,\n\t\t246, 32, 182, 52, 227, 51, 170, 40, 197, 66, 85, 132, 198,\n\t\t195, 146, 80, 248, 93, 142, 213, 104, 88, 79, 25, 66, 96,\n\t\t232, 180, 131, 88, 212, 199, 61, 205, 178, 52, 77, 36, 11,\n\t\t216, 41, 165, 226, 77, 140, 149, 252, 78, 7, 99, 46, 76, 215,\n\t\t107, 14, 29, 211, 114, 108, 219, 126, 63, 21, 128, 219, 137,\n\t\t31, 43, 204, 77, 202, 170, 29, 148, 210, 112, 41, 81, 132,\n\t\t102, 217, 26, 121, 107, 191, 90, 237, 87, 193, 182, 231, 227,\n\t\t120, 201, 194, 32, 68, 125, 181, 43, 244, 160, 170, 48, 198,\n\t\t234, 161, 174, 111, 47, 168, 42, 16, 123, 41, 138, 22, 44,\n\t\t66, 20, 117, 97, 199, 208, 163, 38, 165, 130, 213, 3, 93,\n\t\t63, 178, 44, 40, 62, 201, 120, 185, 70, 20, 202, 211, 169,\n\t\t34, 130, 191, 49, 236, 82, 200, 176, 246, 238, 40, 50, 44,\n\t\t195, 34, 87, 68, 126, 224, 3, 132, 126, 16, 68, 190, 239,\n\t\t99, 28, 248, 225, 113, 71, 35, 44, 14, 237, 67, 81, 196, 136,\n\t\t105, 106, 119, 203, 136, 140, 107, 196, 168, 171, 49, 65,\n\t\t106, 101, 81, 9, 247, 254, 182, 211, 108, 182, 9, 49, 90,\n\t\t150, 175, 123, 38, 190, 143, 178, 74, 13, 43, 138, 218, 93,\n\t\t19, 66, 49, 86, 61, 15, 32, 24, 116, 90, 156, 11, 82, 171,\n\t\t40, 196, 241, 41, 53, 158, 80, 162, 72, 51, 219, 6, 198, 237,\n\t\t70, 171, 233, 86, 243, 135, 219, 183, 43, 124, 29, 159, 135,\n\t\t207, 34, 46, 35, 48, 60, 132, 192, 79, 210, 68, 36, 217, 40,\n\t\t77, 152, 72, 227, 158, 72, 51, 216, 254, 248, 213, 229, 199,\n\t\t203, 215, 188, 241, 198, 121, 12, 135, 62, 26, 124, 114, 111,\n\t\t43, 248, 168, 6, 159, 221, 107, 93, 127, 253, 123, 158, 252,\n\t\t156, 186, 238, 56, 235, 106, 19, 21, 188, 171, 40, 195, 231,\n\t\t225, 114, 52, 143, 174, 67, 79, 162, 79, 163, 47, 161, 175,\n\t\t32, 212, 11, 226, 176, 48, 214, 115, 73, 27, 81, 40, 220,\n\t\t147, 113, 1, 235, 38, 9, 105, 38, 50, 198, 154, 139, 168,\n\t\t144, 62, 211, 108, 54, 10, 230, 227, 224, 54, 150, 64, 223,\n\t\t114, 26, 152, 177, 225, 40, 230, 73, 231, 96, 225, 243, 43,\n\t\t17, 225, 242, 140, 97, 16, 109, 66, 88, 196, 17, 75, 210,\n\t\t1, 121, 3, 201, 244, 154, 73, 242, 155, 31, 118, 205, 180,\n\t\t8, 73, 205, 27, 82, 92, 96, 107, 246, 167, 225, 104, 156,\n\t\t116, 240, 217, 106, 149, 248, 81, 192, 133, 32, 16, 199, 192,\n\t\t117, 30, 68, 62, 121, 245, 162, 213, 8, 58, 149, 48, 244,\n\t\t195, 58, 134, 5, 213, 142, 205, 90, 53, 244, 28, 23, 40, 17,\n\t\t84, 221, 251, 105, 66, 184, 102, 45, 90, 154, 200, 51, 9,\n\t\t77, 102, 146, 87, 186, 242, 111, 23, 85, 167, 228, 180, 171,\n\t\t23, 243, 58, 145, 89, 175, 132, 158, 237, 1, 165, 156, 169,\n\t\t31, 105, 37, 248, 46, 158, 184, 174, 83, 105, 196, 73, 8,\n\t\t203, 7, 170, 229, 255, 51, 130, 26, 68, 90, 219, 40, 7, 101,\n\t\t160, 170, 170, 182, 181, 22, 195, 172, 165, 117, 132, 165,\n\t\t150, 130, 178, 209, 94, 176, 58, 86, 108, 69, 77, 215, 82,\n\t\t117, 0, 167, 161, 123, 166, 8, 106, 166, 65, 8, 197, 4, 147,\n\t\t173, 14, 157, 254, 107, 213, 84, 58, 106, 139, 97, 222, 212,\n\t\t58, 138, 169, 149, 130, 138, 222, 86, 227, 26, 68, 106, 199,\n\t\t40, 7, 159, 55, 55, 173, 142, 238, 89, 202, 191, 120, 145,\n\t\t163, 139, 109, 97, 36, 90, 213, 243, 251, 229, 222, 224, 112,\n\t\t241, 190, 47, 124, 255, 194, 239, 225, 39, 225, 87, 17, 66,\n\t\t255, 5, 253, 3, 8, 112, 161, 140, 80, 47, 27, 206, 52, 226,\n\t\t92, 116, 236, 167, 125, 17, 133, 179, 161, 32, 187, 216, 207,\n\t\t136, 217, 240, 48, 59, 58, 189, 228, 76, 96, 195, 36, 87,\n\t\t228, 118, 128, 11, 249, 230, 6, 5, 67, 25, 23, 193, 90, 244,\n\t\t98, 215, 57, 205, 134, 89, 46, 70, 79, 179, 25, 5, 209, 190,\n\t\t29, 58, 155, 74, 51, 151, 28, 79, 168, 224, 13, 136, 135,\n\t\t65, 60, 150, 70, 239, 97, 100, 195, 116, 180, 186, 13, 146,\n\t\t190, 194, 34, 194, 130, 104, 45, 239, 63, 195, 213, 201, 106,\n\t\t86, 80, 91, 77, 114, 177, 124, 85, 78, 33, 5, 241, 140, 236,\n\t\t34, 28, 90, 16, 230, 253, 237, 148, 77, 211, 85, 222, 201,\n\t\t31, 47, 23, 219, 229, 96, 38, 249, 183, 33, 87, 24, 135, 219,\n\t\t36, 158, 78, 198, 107, 220, 198, 145, 180, 113, 112, 193,\n\t\t97, 240, 221, 249, 53, 128, 72, 48, 96, 54, 107, 244, 146,\n\t\t42, 131, 146, 102, 232, 60, 208, 149, 138, 134, 41, 182, 3,\n\t\t201, 6, 25, 104, 186, 106, 233, 140, 19, 92, 227, 20, 83,\n\t\t35, 151, 95, 28, 91, 3, 48, 116, 93, 1, 172, 40, 148, 235,\n\t\t92, 99, 170, 1, 88, 88, 154, 66, 85, 226, 184, 91, 13, 211,\n\t\t210, 157, 171, 1, 3, 168, 203, 73, 139, 146, 184, 125, 224,\n\t\t206, 195, 143, 233, 218, 230, 74, 239, 50, 205, 246, 9, 33,\n\t\t132, 5, 203, 151, 221, 226, 232, 175, 186, 178, 179, 86, 182,\n\t\t9, 64, 115, 67, 7, 8, 220, 138, 222, 174, 104, 18, 48, 53,\n\t\t23, 60, 0, 83, 74, 37, 38, 84, 46, 66, 81, 158, 18, 76, 72,\n\t\t108, 130, 68, 57, 83, 186, 20, 40, 142, 45, 160, 20, 48, 24,\n\t\t213, 189, 135, 155, 18, 199, 74, 193, 213, 150, 170, 41, 157,\n\t\t247, 135, 12, 108, 97, 229, 114, 12, 201, 123, 89, 38, 94,\n\t\t87, 102, 220, 7, 184, 173, 130, 77, 174, 30, 187, 101, 169,\n\t\t234, 6, 18, 49, 89, 107, 118, 41, 213, 77, 45, 242, 4, 101,\n\t\t64, 235, 113, 24, 112, 211, 108, 213, 129, 58, 70, 217, 230,\n\t\t148, 73, 52, 42, 210, 225, 130, 176, 42, 49, 205, 185, 86,\n\t\t195, 201, 101, 55, 191, 98, 154, 190, 163, 170, 130, 41, 61,\n\t\t167, 226, 42, 140, 17, 48, 183, 75, 213, 178, 66, 123, 141,\n\t\t110, 31, 0, 68, 171, 60, 31, 184, 89, 99, 210, 41, 85, 22,\n\t\t230, 111, 246, 108, 194, 153, 43, 20, 12, 60, 164, 234, 233,\n\t\t78, 133, 116, 220, 164, 82, 179, 148, 40, 93, 52, 114, 161,\n\t\t75, 181, 236, 82, 168, 235, 185, 24, 65, 20, 213, 114, 92,\n\t\t193, 52, 198, 243, 199, 5, 197, 188, 89, 163, 38, 230, 66,\n\t\t53, 153, 234, 8, 123, 195, 213, 212, 217, 14, 47, 153, 255,\n\t\t170, 179, 140, 1, 24, 56, 205, 62, 99, 198, 171, 71, 10, 229,\n\t\t138, 83, 86, 60, 219, 20, 32, 44, 195, 27, 218, 1, 8, 17,\n\t\t18, 136, 180, 50, 99, 186, 233, 93, 244, 235, 124, 1, 206,\n\t\t35, 142, 12, 132, 96, 164, 195, 40, 206, 68, 21, 18, 145,\n\t\t194, 217, 219, 190, 249, 205, 207, 174, 174, 127, 243, 147,\n\t\t159, 156, 62, 252, 48, 156, 223, 59, 15, 231, 79, 157, 106,\n\t\t237, 125, 19, 90, 191, 253, 219, 210, 190, 233, 92, 248, 38,\n\t\t124, 22, 158, 203, 37, 175, 92, 234, 216, 129, 56, 141, 137,\n\t\t72, 9, 232, 48, 202, 70, 241, 175, 245, 251, 253, 175, 183,\n\t\t62, 251, 217, 22, 156, 124, 242, 201, 213, 234, 107, 43, 95,\n\t\t184, 253, 246, 111, 93, 177, 247, 173, 123, 238, 129, 96,\n\t\t239, 31, 160, 187, 247, 141, 195, 135, 139, 120, 45, 116,\n\t\t43, 62, 15, 115, 136, 75, 230, 12, 31, 85, 209, 42, 58, 138,\n\t\t126, 21, 125, 25, 161, 76, 246, 249, 113, 42, 70, 113, 58,\n\t\t138, 179, 81, 60, 25, 133, 89, 193, 117, 20, 70, 129, 133,\n\t\t59, 3, 92, 160, 254, 202, 41, 247, 152, 207, 184, 180, 44,\n\t\t156, 127, 244, 209, 80, 162, 30, 205, 72, 55, 178, 137, 8,\n\t\t163, 160, 35, 215, 163, 89, 236, 230, 104, 34, 145, 201, 47,\n\t\t217, 239, 175, 92, 186, 151, 206, 114, 164, 225, 139, 87,\n\t\t73, 227, 254, 164, 63, 73, 227, 241, 104, 27, 118, 176, 44,\n\t\t94, 146, 38, 50, 150, 43, 19, 129, 8, 68, 38, 210, 81, 22,\n\t\t143, 210, 7, 253, 177, 239, 110, 111, 111, 251, 233, 29, 219,\n\t\t238, 242, 178, 235, 219, 191, 233, 205, 223, 247, 78, 205,\n\t\t43, 213, 74, 158, 166, 169, 204, 49, 106, 134, 195, 84, 166,\n\t\t11, 75, 213, 66, 85, 181, 20, 197, 82, 213, 80, 83, 173, 91,\n\t\t52, 161, 9, 237, 58, 173, 172, 213, 57, 103, 140, 245, 169,\n\t\t74, 8, 163, 140, 50, 93, 233, 115, 206, 56, 175, 107, 37,\n\t\t245, 58, 93, 209, 132, 118, 234, 239, 1, 14, 29, 2, 48, 56,\n\t\t135, 146, 231, 237, 108, 187, 126, 9, 98, 178, 187, 11, 240,\n\t\t247, 167, 126, 215, 3, 236, 5, 31, 95, 88, 120, 234, 169,\n\t\t123, 23, 183, 158, 58, 115, 230, 252, 249, 243, 143, 60, 242,\n\t\t136, 97, 244, 100, 25, 252, 184, 86, 82, 153, 116, 171, 81,\n\t\t141, 94, 228, 91, 148, 82, 106, 249, 145, 87, 108, 28, 5,\n\t\t157, 9, 193, 116, 224, 42, 195, 65, 128, 25, 41, 89, 66, 88,\n\t\t49, 101, 2, 64, 24, 140, 25, 2, 27, 52, 206, 143, 149, 72,\n\t\t145, 66, 229, 251, 121, 132, 102, 81, 66, 137, 130, 65, 49,\n\t\t48, 174, 204, 191, 227, 29, 243, 21, 238, 1, 150, 115, 170,\n\t\t150, 118, 253, 220, 220, 98, 174, 231, 163, 55, 226, 183,\n\t\t195, 27, 209, 95, 161, 111, 161, 239, 128, 5, 21, 25, 109,\n\t\t105, 131, 133, 211, 1, 73, 39, 137, 176, 240, 0, 14, 202,\n\t\t93, 88, 129, 153, 103, 47, 79, 7, 176, 3, 9, 151, 145, 58,\n\t\t92, 226, 237, 231, 9, 115, 137, 53, 21, 29, 11, 207, 104,\n\t\t132, 115, 221, 46, 87, 78, 71, 178, 75, 142, 35, 110, 195,\n\t\t106, 129, 248, 180, 3, 146, 228, 126, 19, 166, 242, 104, 156,\n\t\t75, 253, 195, 40, 255, 20, 226, 29, 144, 129, 121, 98, 53,\n\t\t140, 226, 60, 225, 52, 219, 102, 249, 82, 134, 181, 75, 180,\n\t\t166, 109, 216, 129, 241, 164, 112, 81, 204, 115, 55, 112,\n\t\t54, 220, 198, 179, 75, 54, 97, 180, 77, 242, 107, 72, 178,\n\t\t239, 56, 202, 175, 192, 10, 6, 100, 11, 122, 92, 108, 211,\n\t\t180, 47, 120, 84, 160, 213, 14, 176, 69, 106, 80, 135, 6,\n\t\t158, 102, 145, 4, 160, 234, 11, 11, 98, 124, 62, 111, 252,\n\t\t90, 89, 229, 42, 197, 128, 3, 160, 186, 206, 177, 90, 115,\n\t\t172, 128, 146, 112, 195, 136, 56, 243, 34, 85, 246, 138, 166,\n\t\t32, 130, 96, 155, 66, 222, 193, 25, 154, 161, 8, 198, 193,\n\t\t1, 110, 91, 46, 115, 168, 171, 51, 130, 41, 39, 42, 37, 152,\n\t\t91, 213, 80, 87, 202, 142, 139, 177, 194, 148, 146, 80, 64,\n\t\t39, 32, 8, 81, 11, 50, 157, 16, 152, 45, 36, 14, 33, 198,\n\t\t80, 3, 162, 81, 21, 4, 38, 76, 35, 68, 48, 160, 140, 231,\n\t\t74, 177, 112, 35, 161, 175, 90, 166, 71, 133, 96, 14, 231,\n\t\t162, 65, 195, 24, 160, 106, 90, 128, 77, 149, 155, 154, 74,\n\t\t48, 24, 24, 59, 32, 221, 10, 89, 222, 107, 107, 66, 98, 38,\n\t\t114, 155, 82, 237, 251, 95, 230, 150, 198, 56, 53, 13, 112,\n\t\t29, 192, 220, 214, 21, 76, 61, 240, 5, 38, 36, 215, 87, 85,\n\t\t69, 99, 20, 152, 161, 221, 231, 104, 12, 48, 86, 117, 70,\n\t\t225, 55, 168, 2, 128, 185, 130, 177, 102, 24, 148, 110, 144,\n\t\t188, 195, 163, 4, 11, 29, 131, 201, 185, 101, 128, 32, 84,\n\t\t211, 108, 209, 50, 141, 74, 73, 211, 193, 80, 170, 134, 89,\n\t\t42, 133, 146, 15, 152, 170, 132, 2, 161, 134, 7, 12, 43, 148,\n\t\t74, 191, 74, 223, 108, 129, 29, 118, 132, 130, 41, 193, 26,\n\t\t99, 250, 148, 19, 2, 42, 45, 105, 42, 238, 18, 174, 131, 238,\n\t\t72, 96, 253, 101, 160, 12, 136, 62, 137, 24, 48, 130, 55,\n\t\t86, 52, 223, 177, 52, 129, 177, 38, 148, 230, 242, 65, 75,\n\t\t49, 230, 108, 11, 84, 74, 57, 244, 98, 194, 140, 192, 111,\n\t\t48, 57, 13, 199, 57, 199, 216, 88, 19, 20, 72, 143, 105, 10,\n\t\t7, 12, 132, 98, 91, 136, 38, 0, 35, 132, 58, 88, 19, 62, 195,\n\t\t52, 122, 77, 230, 16, 173, 22, 87, 120, 180, 68, 62, 224,\n\t\t59, 90, 193, 70, 64, 116, 207, 85, 103, 155, 29, 176, 133,\n\t\t73, 136, 30, 168, 14, 145, 182, 105, 114, 225, 5, 248, 117,\n\t\t120, 1, 13, 242, 118, 50, 179, 42, 11, 11, 146, 125, 232,\n\t\t176, 23, 241, 136, 135, 219, 84, 18, 92, 73, 42, 52, 120,\n\t\t222, 204, 122, 209, 101, 245, 225, 97, 160, 16, 88, 86, 16,\n\t\t119, 86, 58, 49, 232, 118, 28, 215, 205, 222, 117, 90, 124,\n\t\t4, 115, 245, 148, 194, 227, 90, 29, 224, 26, 199, 15, 108,\n\t\t120, 204, 173, 197, 157, 78, 92, 119, 90, 140, 11, 206, 106,\n\t\t53, 133, 35, 138, 156, 11, 47, 192, 235, 224, 133, 23, 113,\n\t\t100, 178, 196, 29, 197, 110, 226, 142, 242, 95, 152, 76, 14,\n\t\t15, 135, 103, 71, 31, 30, 125, 104, 248, 54, 56, 124, 213,\n\t\t222, 85, 240, 133, 252, 247, 79, 255, 36, 99, 238, 209, 85,\n\t\t248, 60, 204, 35, 34, 209, 150, 98, 84, 69, 59, 232, 4, 250,\n\t\t105, 244, 115, 232, 51, 8, 101, 147, 40, 206, 162, 17, 79,\n\t\t179, 110, 231, 226, 67, 72, 158, 209, 44, 76, 27, 56, 8, 131,\n\t\t176, 6, 185, 112, 67, 242, 38, 63, 192, 227, 201, 120, 50,\n\t\t222, 38, 155, 48, 21, 147, 113, 167, 14, 193, 80, 166, 170,\n\t\t17, 139, 9, 139, 36, 233, 44, 77, 214, 79, 195, 194, 97, 179,\n\t\t159, 22, 97, 250, 105, 63, 149, 170, 101, 152, 76, 6, 84,\n\t\t246, 4, 113, 22, 74, 221, 150, 140, 226, 105, 154, 229, 77,\n\t\t48, 106, 194, 236, 162, 63, 233, 7, 126, 191, 63, 63, 245,\n\t\t225, 19, 37, 215, 45, 59, 27, 27, 79, 109, 156, 18, 130, 16,\n\t\t133, 51, 203, 212, 41, 105, 121, 185, 12, 158, 143, 180, 106,\n\t\t43, 140, 162, 7, 243, 61, 192, 152, 82, 114, 201, 121, 53,\n\t\t57, 100, 86, 252, 176, 81, 213, 117, 218, 14, 189, 80, 213,\n\t\t54, 220, 138, 37, 164, 15, 200, 112, 62, 218, 237, 147, 253,\n\t\t212, 223, 169, 15, 60, 130, 189, 232, 175, 162, 232, 140,\n\t\t163, 9, 110, 234, 30, 60, 238, 26, 134, 105, 26, 198, 211,\n\t\t175, 125, 237, 39, 171, 95, 121, 140, 27, 146, 218, 66, 81,\n\t\t45, 131, 51, 65, 48, 120, 162, 56, 162, 235, 158, 163, 226,\n\t\t211, 115, 186, 62, 103, 222, 88, 164, 82, 177, 66, 4, 17,\n\t\t148, 99, 166, 16, 12, 216, 151, 135, 27, 86, 165, 53, 141,\n\t\t34, 231, 78, 195, 91, 179, 253, 58, 169, 150, 154, 142, 35,\n\t\t120, 253, 10, 167, 30, 121, 166, 138, 193, 6, 91, 11, 155,\n\t\t13, 66, 138, 92, 13, 203, 181, 137, 153, 150, 14, 200, 75,\n\t\t75, 185, 65, 92, 120, 1, 222, 8, 47, 32, 134, 116, 132, 170,\n\t\t144, 164, 34, 105, 143, 68, 58, 138, 63, 250, 161, 83, 219,\n\t\t219, 167, 96, 112, 228, 71, 94, 127, 116, 25, 94, 216, 251,\n\t\t198, 35, 143, 124, 227, 27, 183, 206, 198, 249, 98, 190, 196,\n\t\t149, 30, 138, 219, 232, 36, 58, 133, 94, 133, 222, 128, 30,\n\t\t67, 200, 47, 252, 92, 163, 225, 52, 11, 185, 140, 136, 139,\n\t\t167, 113, 216, 23, 249, 40, 156, 133, 98, 194, 164, 163, 173,\n\t\t212, 192, 38, 133, 35, 238, 12, 230, 37, 236, 39, 29, 54,\n\t\t211, 145, 194, 25, 201, 167, 116, 126, 25, 201, 8, 56, 169,\n\t\t65, 241, 164, 147, 218, 48, 25, 197, 51, 84, 200, 164, 35,\n\t\t226, 40, 255, 182, 62, 209, 233, 168, 134, 70, 244, 32, 168,\n\t\t60, 101, 148, 67, 115, 169, 127, 215, 210, 222, 133, 176,\n\t\t18, 58, 53, 191, 28, 87, 98, 55, 172, 132, 237, 106, 41, 8,\n\t\t99, 27, 223, 0, 183, 144, 86, 41, 8, 235, 81, 203, 239, 53,\n\t\t27, 157, 91, 7, 166, 170, 89, 175, 47, 119, 147, 138, 99,\n\t\t195, 82, 138, 29, 213, 176, 109, 195, 82, 64, 121, 120, 9,\n\t\t86, 250, 253, 29, 85, 195, 208, 225, 165, 224, 125, 11, 145,\n\t\t58, 47, 156, 251, 63, 178, 217, 213, 186, 119, 10, 85, 196,\n\t\t158, 29, 233, 250, 156, 173, 11, 77, 9, 221, 184, 170, 44,\n\t\t232, 139, 170, 168, 168, 109, 195, 237, 86, 146, 193, 192,\n\t\t183, 108, 123, 180, 216, 155, 155, 51, 134, 218, 215, 116,\n\t\t235, 205, 37, 207, 139, 149, 195, 106, 251, 35, 31, 41, 56,\n\t\t84, 245, 11, 95, 134, 71, 225, 5, 212, 65, 200, 15, 26, 116,\n\t\t230, 128, 60, 171, 23, 250, 98, 189, 252, 116, 123, 245, 192,\n\t\t106, 235, 161, 219, 59, 183, 53, 111, 188, 44, 107, 229, 59,\n\t\t15, 220, 122, 213, 225, 163, 87, 172, 65, 207, 138, 172, 82,\n\t\t99, 115, 238, 202, 107, 125, 243, 237, 131, 196, 41, 217,\n\t\t165, 250, 122, 239, 202, 155, 43, 239, 236, 162, 217, 251,\n\t\t253, 38, 252, 42, 60, 135, 66, 148, 200, 187, 224, 209, 48,\n\t\t147, 81, 13, 114, 34, 17, 103, 60, 27, 22, 239, 67, 190, 136,\n\t\t95, 170, 205, 143, 2, 67, 244, 79, 86, 187, 167, 54, 85, 115,\n\t\t227, 120, 215, 122, 243, 123, 106, 61, 211, 235, 213, 61,\n\t\t15, 30, 46, 159, 186, 101, 23, 111, 93, 251, 182, 231, 198,\n\t\t177, 101, 215, 124, 170, 123, 227, 244, 214, 245, 165, 131,\n\t\t199, 202, 145, 133, 4, 178, 16, 224, 135, 225, 9, 52, 64,\n\t\t183, 161, 215, 163, 47, 160, 63, 0, 4, 7, 16, 218, 119, 214,\n\t\t145, 49, 157, 5, 131, 205, 140, 252, 69, 254, 239, 44, 66,\n\t\t39, 233, 39, 133, 115, 79, 58, 78, 253, 225, 72, 178, 254,\n\t\t237, 235, 110, 105, 24, 172, 241, 164, 147, 244, 39, 171,\n\t\t179, 248, 202, 56, 136, 131, 81, 17, 124, 47, 86, 195, 213,\n\t\t96, 45, 12, 226, 104, 84, 232, 67, 210, 65, 33, 27, 230, 61,\n\t\t166, 188, 101, 184, 90, 135, 32, 255, 160, 146, 78, 58, 78,\n\t\t59, 161, 140, 87, 144, 250, 96, 28, 197, 67, 201, 65, 40,\n\t\t45, 78, 114, 206, 116, 159, 135, 112, 52, 29, 198, 91, 32,\n\t\t25, 5, 103, 206, 13, 130, 7, 251, 86, 68, 22, 174, 94, 44,\n\t\t122, 63, 147, 233, 211, 217, 125, 59, 197, 211, 76, 250, 107,\n\t\t51, 58, 195, 194, 173, 52, 93, 141, 87, 119, 96, 60, 157,\n\t\t76, 55, 241, 80, 204, 38, 104, 211, 78, 218, 159, 108, 65,\n\t\t188, 1, 241, 176, 96, 178, 128, 2, 137, 113, 210, 31, 13,\n\t\t37, 163, 110, 100, 17, 81, 35, 7, 15, 183, 90, 115, 115, 66,\n\t\t148, 234, 201, 93, 109, 70, 25, 161, 148, 45, 30, 232, 245,\n\t\t171, 149, 124, 176, 7, 42, 42, 229, 249, 180, 115, 83, 149,\n\t\t126, 148, 99, 173, 105, 170, 0, 170, 93, 239, 84, 1, 128,\n\t\t234, 26, 35, 76, 18, 140, 16, 2, 110, 184, 8, 190, 223, 86,\n\t\t41, 83, 202, 165, 8, 190, 166, 80, 44, 176, 169, 58, 249,\n\t\t168, 174, 40, 44, 215, 129, 150, 28, 143, 96, 174, 6, 86,\n\t\t224, 56, 160, 25, 110, 192, 124, 193, 45, 98, 91, 128, 19,\n\t\t12, 62, 35, 84, 85, 204, 92, 95, 211, 132, 26, 120, 0, 185,\n\t\t36, 225, 113, 158, 43, 239, 0, 6, 165, 32, 20, 97, 5, 68,\n\t\t85, 72, 65, 222, 135, 177, 83, 50, 45, 206, 117, 77, 121,\n\t\t7, 40, 9, 96, 6, 1, 5, 72, 186, 148, 153, 21, 85, 81, 24,\n\t\t102, 185, 114, 200, 116, 6, 28, 99, 220, 168, 99, 160, 138,\n\t\t77, 49, 15, 222, 204, 169, 141, 27, 18, 92, 134, 208, 178,\n\t\t149, 107, 159, 148, 146, 134, 103, 240, 92, 90, 162, 194,\n\t\t50, 70, 37, 200, 115, 241, 102, 80, 47, 7, 117, 38, 34, 128,\n\t\t203, 49, 7, 134, 255, 136, 17, 129, 121, 126, 123, 19, 207,\n\t\t47, 44, 0, 6, 19, 55, 12, 223, 183, 74, 121, 119, 56, 7, 152,\n\t\t105, 33, 231, 240, 106, 200, 71, 120, 21, 108, 161, 106, 145,\n\t\t107, 122, 66, 206, 254, 128, 207, 52, 19, 19, 10, 12, 139,\n\t\t130, 131, 3, 40, 156, 39, 26, 216, 152, 0, 161, 58, 211, 114,\n\t\t145, 5, 176, 9, 79, 120, 10, 238, 68, 130, 23, 196, 136, 13,\n\t\t219, 86, 21, 124, 145, 232, 48, 255, 111, 20, 80, 250, 63,\n\t\t138, 163, 251, 0, 3, 163, 132, 156, 62, 165, 169, 17, 96,\n\t\t80, 100, 232, 9, 209, 169, 77, 56, 191, 252, 178, 252, 133,\n\t\t218, 120, 82, 240, 71, 75, 156, 0, 15, 205, 161, 117, 244,\n\t\t48, 250, 37, 244, 87, 96, 65, 134, 80, 150, 127, 249, 51,\n\t\t56, 138, 160, 248, 116, 226, 194, 66, 17, 231, 146, 65, 29,\n\t\t106, 36, 225, 130, 247, 94, 142, 71, 89, 48, 66, 21, 83, 130,\n\t\t60, 89, 237, 39, 157, 96, 191, 169, 200, 255, 227, 100, 181,\n\t\t179, 214, 17, 1, 15, 5, 23, 227, 201, 96, 198, 247, 36, 25,\n\t\t165, 162, 105, 54, 93, 139, 66, 25, 135, 45, 91, 94, 1, 234,\n\t\t222, 95, 132, 206, 154, 252, 128, 195, 26, 132, 193, 172,\n\t\t33, 69, 97, 13, 135, 171, 97, 103, 109, 223, 63, 40, 12, 194,\n\t\t64, 230, 28, 31, 132, 213, 130, 226, 101, 58, 201, 63, 239,\n\t\t78, 186, 8, 171, 188, 184, 130, 88, 157, 140, 251, 147, 252,\n\t\t138, 172, 127, 177, 181, 23, 62, 70, 51, 163, 113, 20, 15,\n\t\t71, 171, 155, 48, 92, 187, 200, 8, 211, 207, 46, 58, 33, 137,\n\t\t226, 30, 121, 37, 204, 250, 147, 181, 32, 26, 237, 167, 28,\n\t\t191, 21, 188, 32, 20, 148, 40, 53, 219, 129, 159, 86, 24,\n\t\t38, 186, 106, 80, 11, 99, 176, 29, 5, 58, 151, 206, 2, 127,\n\t\t29, 128, 118, 53, 73, 236, 66, 85, 158, 203, 201, 92, 101,\n\t\t145, 206, 72, 144, 2, 80, 135, 97, 168, 19, 202, 195, 252,\n\t\t75, 167, 134, 32, 111, 35, 182, 213, 179, 115, 105, 80, 8,\n\t\t10, 216, 18, 58, 112, 172, 97, 75, 199, 6, 227, 22, 243, 44,\n\t\t149, 81, 176, 76, 199, 112, 5, 127, 47, 85, 85, 138, 163,\n\t\t122, 201, 80, 65, 209, 203, 152, 98, 133, 184, 118, 65, 113,\n\t\t194, 85, 1, 63, 78, 216, 161, 203, 162, 112, 110, 174, 90,\n\t\t57, 48, 196, 37, 70, 8, 76, 143, 182, 146, 48, 228, 4, 123,\n\t\t56, 138, 91, 205, 149, 110, 126, 223, 1, 8, 161, 185, 78,\n\t\t96, 225, 252, 211, 246, 61, 157, 9, 14, 132, 106, 146, 128,\n\t\t70, 193, 54, 7, 248, 118, 55, 193, 96, 0, 14, 116, 215, 214,\n\t\t42, 88, 199, 38, 113, 20, 141, 16, 32, 216, 0, 38, 225, 71,\n\t\t127, 252, 146, 9, 233, 37, 130, 213, 83, 37, 198, 136, 65,\n\t\t243, 6, 171, 72, 238, 25, 95, 17, 195, 179, 185, 212, 3, 24,\n\t\t110, 84, 52, 0, 123, 203, 230, 10, 125, 181, 167, 10, 110,\n\t\t128, 192, 148, 226, 83, 140, 187, 10, 149, 211, 82, 121, 59,\n\t\t97, 210, 69, 152, 96, 224, 76, 33, 66, 149, 197, 163, 194,\n\t\t210, 111, 252, 247, 88, 154, 115, 182, 192, 231, 172, 228,\n\t\t132, 37, 175, 146, 235, 17, 90, 209, 68, 40, 240, 191, 1,\n\t\t92, 85, 49, 0, 163, 220, 42, 131, 73, 24, 166, 176, 90, 214,\n\t\t57, 193, 64, 152, 102, 151, 41, 38, 74, 157, 74, 125, 130,\n\t\t104, 146, 31, 84, 18, 140, 218, 134, 29, 231, 77, 14, 20,\n\t\t226, 215, 8, 103, 114, 190, 232, 5, 88, 159, 201, 178, 168,\n\t\t39, 82, 223, 205, 68, 10, 235, 31, 150, 255, 190, 120, 199,\n\t\t29, 192, 246, 222, 126, 251, 159, 253, 217, 69, 220, 132,\n\t\t47, 195, 71, 145, 141, 34, 84, 127, 5, 220, 4, 233, 61, 48,\n\t\t241, 71, 50, 108, 31, 158, 44, 39, 73, 105, 239, 87, 203,\n\t\t73, 82, 174, 62, 127, 253, 143, 108, 31, 126, 244, 214, 23,\n\t\t206, 192, 71, 147, 242, 222, 175, 229, 103, 224, 68, 57, 185,\n\t\t229, 169, 167, 30, 121, 100, 239, 111, 223, 241, 142, 135,\n\t\t11, 204, 183, 139, 190, 147, 251, 81, 209, 175, 136, 111,\n\t\t61, 154, 36, 97, 54, 251, 193, 167, 85, 211, 84, 247, 30,\n\t\t202, 151, 239, 155, 251, 157, 199, 243, 127, 240, 220, 254,\n\t\t17, 248, 128, 106, 238, 61, 255, 59, 191, 51, 55, 119, 157,\n\t\t252, 187, 4, 251, 1, 35, 15, 13, 17, 202, 98, 241, 3, 45,\n\t\t191, 32, 153, 89, 132, 2, 113, 161, 14, 249, 232, 37, 161,\n\t\t221, 10, 3, 228, 23, 239, 186, 11, 216, 165, 94, 111, 11,\n\t\t10, 175, 24, 39, 26, 245, 135, 107, 21, 78, 233, 75, 118,\n\t\t190, 61, 157, 254, 245, 37, 159, 205, 87, 55, 235, 179, 36,\n\t\t230, 146, 99, 111, 21, 233, 69, 217, 88, 114, 94, 226, 59,\n\t\t74, 114, 121, 210, 109, 187, 109, 152, 180, 221, 209, 100,\n\t\t52, 129, 23, 246, 118, 225, 220, 222, 63, 156, 58, 13, 207,\n\t\t237, 237, 130, 121, 42, 223, 220, 183, 233, 43, 248, 41, 120,\n\t\t28, 233, 104, 5, 221, 134, 94, 139, 222, 132, 158, 204, 37,\n\t\t201, 23, 129, 122, 69, 116, 17, 149, 119, 186, 2, 29, 139,\n\t\t20, 187, 19, 183, 152, 239, 158, 142, 134, 44, 23, 23, 18,\n\t\t233, 45, 144, 11, 9, 197, 156, 85, 17, 166, 145, 15, 194,\n\t\t195, 58, 4, 114, 238, 42, 106, 66, 148, 206, 48, 182, 247,\n\t\t111, 176, 141, 227, 23, 137, 93, 162, 125, 102, 249, 239,\n\t\t145, 121, 66, 230, 201, 153, 26, 174, 113, 13, 74, 177, 25,\n\t\t40, 20, 112, 126, 12, 199, 213, 46, 252, 147, 194, 212, 46,\n\t\t88, 81, 57, 182, 9, 46, 183, 155, 156, 121, 147, 22, 227,\n\t\t181, 176, 95, 171, 98, 218, 94, 84, 24, 240, 141, 242, 119,\n\t\t7, 59, 187, 203, 237, 50, 158, 39, 113, 210, 178, 42, 93,\n\t\t167, 238, 86, 186, 221, 119, 150, 92, 183, 228, 66, 231, 119,\n\t\t9, 249, 93, 98, 6, 201, 187, 137, 42, 222, 236, 113, 194,\n\t\t185, 142, 241, 187, 9, 129, 24, 227, 235, 245, 243, 126, 144,\n\t\t232, 84, 97, 78, 7, 3, 248, 150, 169, 148, 172, 122, 51, 182,\n\t\t53, 188, 204, 136, 41, 136, 70, 202, 250, 3, 59, 183, 237,\n\t\t248, 167, 8, 249, 149, 250, 98, 164, 126, 166, 87, 113, 107,\n\t\t110, 111, 212, 251, 174, 155, 95, 63, 111, 11, 40, 198, 231,\n\t\t225, 1, 36, 36, 82, 249, 14, 58, 135, 222, 140, 222, 139,\n\t\t16, 154, 161, 206, 245, 134, 13, 8, 44, 201, 91, 52, 222,\n\t\t166, 98, 186, 5, 3, 186, 0, 137, 216, 192, 219, 76, 100, 185,\n\t\t8, 194, 133, 197, 58, 137, 200, 70, 98, 56, 29, 54, 72, 220,\n\t\t32, 22, 21, 73, 65, 208, 73, 22, 104, 34, 146, 222, 116, 60,\n\t\t96, 179, 76, 244, 98, 38, 218, 225, 157, 68, 192, 151, 190,\n\t\t247, 185, 207, 125, 239, 115, 123, 255, 241, 150, 247, 223,\n\t\t124, 243, 251, 255, 151, 247, 223, 28, 207, 111, 158, 56,\n\t\t185, 1, 140, 40, 204, 224, 54, 177, 176, 199, 44, 166, 49,\n\t\t78, 31, 111, 159, 104, 89, 150, 18, 48, 205, 84, 124, 94,\n\t\t33, 234, 7, 123, 42, 245, 84, 75, 213, 20, 130, 165, 125,\n\t\t132, 18, 70, 122, 132, 9, 201, 4, 72, 25, 85, 184, 70, 253,\n\t\t30, 186, 144, 159, 217, 191, 90, 192, 108, 166, 51, 94, 92,\n\t\t76, 245, 169, 38, 76, 238, 241, 152, 168, 112, 235, 109, 111,\n\t\t186, 237, 182, 55, 61, 184, 124, 245, 237, 87, 47, 47, 95,\n\t\t61, 136, 151, 186, 173, 208, 248, 41, 166, 10, 9, 153, 121,\n\t\t2, 48, 225, 66, 63, 251, 73, 199, 153, 122, 76, 228, 135,\n\t\t150, 254, 211, 178, 148, 154, 8, 161, 130, 27, 170, 111, 87,\n\t\t117, 59, 238, 216, 44, 47, 202, 153, 157, 139, 25, 49, 230,\n\t\t194, 184, 79, 230, 163, 156, 97, 12, 5, 70, 155, 113, 225,\n\t\t119, 224, 219, 240, 43, 168, 46, 61, 160, 16, 147, 0, 180,\n\t\t47, 198, 198, 247, 211, 169, 132, 45, 151, 254, 74, 89, 56,\n\t\t221, 7, 104, 216, 208, 72, 39, 1, 56, 251, 204, 51, 191, 255,\n\t\t76, 128, 85, 26, 45, 236, 116, 14, 223, 177, 120, 249, 34,\n\t\t244, 78, 110, 108, 156, 220, 168, 106, 88, 123, 230, 247,\n\t\t159, 121, 230, 220, 104, 64, 140, 206, 161, 213, 198, 29,\n\t\t135, 242, 147, 240, 169, 141, 252, 180, 196, 165, 255, 111,\n\t\t120, 23, 158, 69, 109, 180, 140, 14, 72, 182, 160, 59, 208,\n\t\t3, 114, 126, 120, 22, 126, 32, 17, 191, 6, 120, 159, 5, 104,\n\t\t19, 134, 81, 188, 13, 163, 125, 118, 237, 34, 60, 241, 149,\n\t\t183, 217, 255, 68, 26, 236, 228, 189, 196, 233, 203, 183,\n\t\t13, 160, 160, 212, 14, 14, 79, 231, 251, 63, 209, 93, 87,\n\t\t148, 245, 238, 179, 228, 99, 132, 60, 71, 47, 93, 66, 190,\n\t\t160, 207, 189, 100, 9, 207, 66, 45, 248, 199, 160, 150, 204,\n\t\t97, 92, 109, 186, 181, 224, 219, 126, 125, 144, 36, 131, 189,\n\t\t111, 199, 132, 196, 100, 247, 197, 37, 125, 52, 166, 52, 223,\n\t\t46, 150, 249, 17, 164, 92, 248, 239, 23, 158, 135, 167, 37,\n\t\t102, 91, 138, 14, 162, 107, 209, 171, 208, 163, 232, 73, 244,\n\t\t44, 66, 189, 98, 26, 104, 27, 54, 97, 85, 240, 56, 218, 1,\n\t\t158, 14, 200, 52, 219, 38, 233, 170, 148, 145, 26, 56, 179,\n\t\t176, 132, 255, 138, 184, 13, 219, 68, 246, 29, 190, 148, 89,\n\t\t132, 132, 9, 145, 42, 137, 92, 206, 84, 136, 161, 100, 229,\n\t\t12, 10, 202, 218, 149, 226, 178, 153, 164, 208, 201, 166,\n\t\t241, 54, 236, 128, 84, 54, 162, 233, 254, 177, 204, 194, 65,\n\t\t20, 71, 16, 93, 123, 238, 0, 5, 37, 152, 211, 181, 249, 122,\n\t\t111, 254, 228, 213, 230, 25, 39, 10, 85, 16, 250, 106, 47,\n\t\t18, 90, 120, 50, 14, 185, 17, 61, 214, 234, 185, 88, 168,\n\t\t4, 116, 219, 182, 129, 42, 148, 138, 131, 103, 43, 193, 17,\n\t\t141, 71, 148, 49, 78, 89, 59, 8, 202, 225, 10, 172, 86, 211,\n\t\t19, 239, 30, 14, 23, 43, 229, 182, 78, 133, 222, 192, 108,\n\t\t254, 107, 3, 75, 33, 127, 197, 112, 56, 158, 90, 246, 177,\n\t\t227, 93, 12, 191, 223, 236, 83, 130, 63, 124, 195, 56, 152,\n\t\t123, 218, 84, 141, 83, 87, 118, 9, 46, 3, 166, 170, 118, 248,\n\t\t93, 161, 202, 12, 66, 53, 213, 48, 25, 227, 58, 47, 219, 81,\n\t\t37, 138, 53, 103, 174, 54, 172, 59, 217, 174, 223, 105, 196,\n\t\t141, 159, 247, 234, 65, 108, 154, 4, 135, 45, 77, 3, 106,\n\t\t24, 174, 114, 98, 104, 236, 125, 55, 73, 130, 92, 232, 101,\n\t\t216, 40, 197, 181, 200, 132, 45, 195, 169, 113, 162, 8, 215,\n\t\t3, 146, 151, 29, 59, 216, 98, 26, 89, 230, 2, 115, 77, 97,\n\t\t13, 87, 49, 213, 211, 220, 166, 180, 30, 115, 162, 41, 240,\n\t\t33, 149, 86, 108, 97, 170, 10, 96, 206, 88, 17, 71, 3, 8,\n\t\t93, 248, 19, 124, 30, 62, 137, 78, 32, 4, 22, 149, 97, 235,\n\t\t120, 141, 139, 190, 197, 69, 182, 77, 11, 86, 120, 27, 120,\n\t\t218, 151, 224, 219, 48, 25, 143, 134, 69, 112, 62, 137, 179,\n\t\t85, 201, 131, 132, 207, 199, 157, 64, 87, 136, 37, 88, 185,\n\t\t107, 214, 131, 126, 45, 245, 151, 140, 9, 95, 180, 54, 202,\n\t\t163, 116, 43, 193, 130, 78, 152, 58, 127, 207, 225, 155, 106,\n\t\t237, 53, 7, 247, 15, 77, 206, 101, 68, 171, 70, 37, 86, 115,\n\t\t189, 142, 23, 15, 43, 240, 11, 118, 189, 236, 186, 192, 14,\n\t\t155, 90, 16, 168, 25, 80, 98, 243, 146, 104, 81, 151, 149,\n\t\t84, 139, 64, 46, 35, 158, 81, 176, 74, 117, 3, 92, 7, 99,\n\t\t251, 220, 173, 32, 244, 138, 187, 214, 238, 140, 163, 198,\n\t\t156, 117, 41, 54, 178, 133, 2, 212, 66, 203, 8, 245, 66, 9,\n\t\t52, 89, 48, 191, 197, 81, 58, 30, 134, 65, 39, 155, 153, 54,\n\t\t250, 147, 241, 52, 158, 193, 1, 201, 249, 107, 216, 172, 93,\n\t\t93, 215, 248, 57, 206, 216, 185, 99, 199, 146, 7, 158, 249,\n\t\t192, 125, 231, 158, 125, 223, 171, 111, 254, 209, 199, 110,\n\t\t28, 223, 177, 241, 232, 222, 185, 199, 31, 63, 199, 53, 198,\n\t\t14, 36, 73, 231, 223, 254, 228, 171, 30, 124, 239, 191, 186,\n\t\t255, 236, 251, 151, 223, 116, 253, 13, 143, 15, 239, 220,\n\t\t188, 233, 209, 125, 156, 168, 162, 12, 58, 154, 71, 135, 17,\n\t\t242, 47, 185, 153, 152, 221, 139, 101, 169, 5, 34, 76, 38,\n\t\t157, 52, 107, 64, 54, 78, 251, 89, 71, 196, 219, 144, 77,\n\t\t70, 97, 20, 139, 126, 254, 89, 55, 65, 42, 215, 223, 153,\n\t\t21, 226, 102, 253, 241, 27, 202, 43, 157, 166, 239, 82, 124,\n\t\t7, 79, 75, 245, 249, 78, 167, 124, 16, 68, 13, 94, 189, 123,\n\t\t151, 232, 6, 245, 78, 173, 149, 212, 28, 117, 117, 249, 9,\n\t\t190, 185, 9, 191, 242, 204, 3, 15, 190, 247, 217, 115, 103,\n\t\t223, 255, 31, 154, 221, 27, 30, 211, 221, 146, 31, 115, 58,\n\t\t95, 174, 225, 126, 191, 209, 137, 160, 172, 113, 227, 207,\n\t\t239, 88, 140, 66, 72, 83, 8, 59, 101, 91, 49, 195, 224, 64,\n\t\t165, 122, 243, 198, 22, 122, 105, 61, 174, 161, 17, 186, 122,\n\t\t246, 20, 18, 137, 113, 50, 158, 250, 195, 109, 146, 141, 215,\n\t\t210, 139, 211, 235, 253, 52, 153, 140, 182, 96, 146, 76, 70,\n\t\t169, 100, 143, 76, 178, 120, 223, 92, 84, 232, 228, 162, 192,\n\t\t102, 138, 71, 225, 119, 30, 120, 166, 178, 186, 125, 69, 63,\n\t\t175, 216, 246, 86, 175, 163, 177, 243, 183, 25, 235, 213,\n\t\t64, 171, 245, 150, 79, 40, 213, 56, 166, 135, 244, 199, 143,\n\t\t192, 53, 239, 230, 143, 222, 244, 208, 246, 245, 66, 244,\n\t\t55, 58, 53, 189, 20, 181, 125, 74, 107, 199, 243, 7, 91, 188,\n\t\t102, 107, 41, 206, 159, 109, 239, 96, 88, 78, 108, 5, 214,\n\t\t135, 250, 192, 153, 172, 54, 84, 21, 26, 245, 102, 114, 195,\n\t\t227, 95, 246, 183, 202, 181, 155, 30, 189, 163, 171, 171,\n\t\t11, 198, 170, 22, 49, 213, 108, 188, 228, 185, 116, 212, 70,\n\t\t61, 180, 241, 210, 183, 227, 15, 179, 116, 246, 185, 140,\n\t\t38, 233, 197, 103, 73, 69, 184, 255, 52, 22, 22, 113, 58,\n\t\t106, 66, 54, 18, 163, 253, 23, 243, 234, 135, 142, 158, 220,\n\t\t61, 184, 187, 203, 55, 106, 79, 168, 143, 127, 38, 35, 187,\n\t\t103, 149, 71, 111, 106, 109, 44, 52, 244, 235, 171, 135, 231,\n\t\t226, 197, 195, 59, 125, 248, 149, 252, 99, 41, 138, 124, 111,\n\t\t183, 187, 190, 158, 122, 70, 186, 94, 107, 221, 240, 248,\n\t\t123, 74, 220, 27, 45, 215, 154, 55, 61, 234, 54, 155, 126,\n\t\t119, 116, 179, 118, 230, 145, 151, 148, 179, 132, 106, 168,\n\t\t245, 210, 114, 190, 228, 147, 221, 15, 51, 254, 206, 203,\n\t\t63, 86, 245, 11, 95, 248, 66, 113, 223, 151, 126, 164, 63,\n\t\t185, 184, 120, 221, 194, 194, 37, 223, 169, 64, 9, 202, 94,\n\t\t244, 235, 247, 135, 219, 144, 245, 211, 194, 179, 87, 250,\n\t\t78, 224, 201, 56, 75, 121, 3, 103, 171, 163, 162, 26, 184,\n\t\t140, 63, 138, 69, 159, 139, 2, 207, 232, 59, 189, 99, 19,\n\t\t15, 254, 179, 94, 246, 66, 187, 219, 30, 4, 253, 180, 68,\n\t\t175, 245, 253, 209, 173, 255, 8, 226, 177, 27, 198, 167, 170,\n\t\t87, 180, 143, 14, 90, 115, 214, 170, 185, 143, 114, 244, 135,\n\t\t213, 149, 38, 156, 113, 91, 177, 187, 84, 55, 170, 227, 196,\n\t\t117, 146, 213, 51, 87, 173, 254, 235, 74, 229, 134, 199, 134,\n\t\t11, 237, 113, 109, 222, 161, 165, 153, 172, 122, 73, 93, 52,\n\t\t208, 28, 26, 163, 205, 151, 191, 55, 89, 19, 133, 247, 136,\n\t\t63, 12, 22, 97, 18, 75, 59, 231, 34, 132, 233, 48, 12, 44,\n\t\t44, 29, 42, 227, 225, 180, 191, 8, 225, 197, 138, 202, 43,\n\t\t233, 166, 155, 127, 244, 177, 143, 28, 63, 62, 153, 118, 84,\n\t\t155, 51, 255, 206, 33, 209, 202, 126, 181, 179, 99, 26, 134,\n\t\t85, 123, 177, 246, 246, 14, 202, 170, 203, 235, 16, 220, 167,\n\t\t159, 126, 40, 181, 61, 14, 215, 62, 52, 224, 134, 167, 47,\n\t\t61, 125, 36, 12, 230, 95, 86, 206, 165, 25, 34, 211, 191,\n\t\t252, 222, 154, 16, 74, 162, 112, 72, 69, 58, 201, 198, 147,\n\t\t44, 14, 197, 36, 153, 164, 97, 188, 3, 169, 136, 39, 34, 252,\n\t\t129, 55, 122, 53, 35, 173, 6, 38, 27, 71, 213, 221, 157, 205,\n\t\t35, 31, 14, 225, 245, 175, 87, 230, 122, 233, 169, 229, 87,\n\t\t122, 205, 127, 72, 142, 131, 101, 150, 106, 180, 90, 219,\n\t\t45, 193, 241, 250, 246, 246, 185, 37, 60, 88, 94, 217, 112,\n\t\t28, 119, 178, 232, 47, 190, 188, 175, 42, 161, 173, 31, 82,\n\t\t90, 177, 77, 70, 195, 125, 59, 242, 0, 210, 81, 36, 193, 30,\n\t\t6, 36, 233, 136, 145, 72, 127, 160, 168, 95, 161, 213, 110,\n\t\t205, 74, 38, 85, 163, 186, 181, 16, 45, 166, 108, 155, 140,\n\t\t163, 174, 110, 6, 10, 27, 114, 111, 109, 237, 149, 74, 252,\n\t\t201, 250, 130, 39, 170, 139, 139, 81, 123, 115, 206, 30, 116,\n\t\t7, 115, 139, 113, 199, 86, 96, 105, 109, 237, 7, 203, 250,\n\t\t134, 31, 86, 214, 97, 20, 198, 89, 222, 209, 199, 210, 205,\n\t\t35, 206, 166, 155, 16, 38, 179, 249, 79, 105, 148, 220, 95,\n\t\t5, 157, 73, 202, 195, 124, 103, 181, 63, 145, 71, 87, 64,\n\t\t250, 51, 21, 240, 70, 227, 34, 123, 17, 45, 154, 95, 231,\n\t\t7, 158, 243, 122, 170, 112, 22, 114, 14, 170, 102, 48, 162,\n\t\t108, 140, 124, 226, 0, 85, 64, 213, 128, 51, 172, 170, 192,\n\t\t121, 88, 108, 0, 103, 160, 41, 88, 167, 98, 188, 108, 17,\n\t\t27, 19, 133, 51, 141, 9, 201, 127, 204, 56, 188, 82, 133,\n\t\t76, 24, 127, 104, 75, 211, 240, 117, 187, 154, 122, 183, 41,\n\t\t162, 37, 5, 171, 173, 219, 53, 13, 174, 186, 76, 85, 225,\n\t\t150, 187, 12, 227, 150, 27, 65, 211, 0, 78, 29, 80, 213, 171,\n\t\t148, 176, 38, 176, 18, 220, 67, 185, 113, 236, 118, 198, 0,\n\t\t24, 187, 238, 30, 237, 101, 125, 201, 93, 63, 180, 230, 226,\n\t\t209, 197, 106, 234, 200, 197, 36, 175, 162, 23, 119, 95, 82,\n\t\t57, 211, 97, 94, 67, 50, 98, 54, 175, 164, 109, 184, 184,\n\t\t43, 134, 227, 197, 98, 18, 40, 233, 4, 155, 16, 6, 195, 131,\n\t\t240, 3, 53, 23, 109, 142, 60, 226, 1, 225, 16, 1, 101, 16,\n\t\t49, 22, 1, 163, 32, 23, 33, 232, 68, 140, 22, 45, 226, 98,\n\t\t80, 32, 4, 202, 139, 52, 60, 63, 197, 88, 136, 117, 138, 143,\n\t\t43, 74, 232, 132, 249, 226, 149, 170, 238, 107, 241, 146,\n\t\t66, 148, 248, 6, 93, 223, 221, 208, 245, 203, 174, 215, 245,\n\t\t203, 143, 235, 250, 53, 139, 186, 118, 57, 143, 107, 2, 171,\n\t\t198, 105, 77, 59, 112, 157, 174, 31, 185, 81, 215, 239, 92,\n\t\t214, 64, 63, 54, 210, 181, 59, 84, 133, 23, 215, 204, 23,\n\t\t133, 109, 225, 197, 186, 27, 163, 45, 180, 251, 195, 106,\n\t\t239, 82, 194, 207, 68, 34, 57, 143, 179, 34, 18, 89, 140,\n\t\t38, 227, 108, 52, 73, 226, 36, 28, 253, 64, 77, 56, 92, 81,\n\t\t248, 187, 152, 50, 37, 140, 98, 227, 105, 34, 200, 187, 230,\n\t\t141, 236, 161, 207, 62, 244, 208, 43, 61, 217, 83, 10, 255,\n\t\t229, 60, 195, 20, 19, 142, 255, 87, 157, 80, 78, 167, 111,\n\t\t56, 107, 224, 185, 35, 255, 230, 101, 229, 157, 67, 107, 232,\n\t\t192, 15, 41, 47, 31, 54, 240, 204, 15, 100, 27, 226, 142,\n\t\t108, 46, 105, 63, 22, 92, 206, 134, 252, 64, 49, 31, 222,\n\t\t88, 136, 84, 53, 90, 40, 86, 39, 150, 240, 84, 209, 89, 239,\n\t\t160, 234, 152, 75, 175, 84, 206, 173, 202, 226, 202, 116,\n\t\t101, 177, 82, 172, 106, 167, 2, 235, 62, 83, 133, 193, 3,\n\t\t166, 117, 170, 140, 102, 88, 253, 59, 248, 60, 28, 146, 200,\n\t\t225, 87, 163, 187, 209, 57, 132, 96, 36, 146, 44, 205, 171,\n\t\t49, 78, 250, 147, 162, 208, 114, 238, 36, 13, 68, 50, 61,\n\t\t8, 35, 57, 33, 25, 6, 98, 154, 13, 71, 69, 156, 79, 62, 16,\n\t\t165, 163, 152, 206, 208, 207, 178, 73, 103, 63, 44, 101, 218,\n\t\t107, 192, 52, 43, 184, 42, 246, 161, 103, 210, 1, 112, 129,\n\t\t239, 236, 220, 219, 173, 29, 100, 208, 128, 112, 190, 222,\n\t\t2, 62, 87, 77, 3, 104, 225, 86, 208, 111, 12, 176, 118, 196,\n\t\t43, 205, 183, 113, 135, 30, 89, 117, 244, 94, 182, 247, 203,\n\t\t203, 181, 218, 114, 245, 159, 75, 206, 138, 112, 140, 114,\n\t\t117, 239, 62, 152, 95, 228, 109, 82, 174, 187, 11, 243, 11,\n\t\t243, 221, 197, 14, 44, 47, 83, 192, 191, 57, 125, 68, 179,\n\t\t14, 219, 186, 170, 87, 42, 62, 163, 165, 70, 89, 213, 34,\n\t\t253, 83, 215, 149, 230, 186, 170, 210, 198, 180, 29, 45, 86,\n\t\t130, 215, 216, 141, 213, 70, 99, 213, 35, 0, 37, 161, 43,\n\t\t149, 176, 90, 50, 92, 39, 82, 230, 219, 221, 133, 126, 95,\n\t\t9, 43, 81, 88, 69, 8, 41, 200, 189, 240, 77, 248, 247, 146,\n\t\t131, 214, 67, 167, 208, 89, 244, 24, 250, 16, 250, 13, 244,\n\t\t91, 8, 205, 176, 23, 54, 112, 52, 163, 12, 151, 176, 234,\n\t\t219, 144, 74, 63, 57, 25, 242, 157, 9, 9, 177, 32, 182, 240,\n\t\t182, 116, 23, 206, 164, 59, 242, 36, 147, 254, 145, 81, 60,\n\t\t205, 98, 46, 205, 183, 97, 32, 162, 56, 234, 77, 179, 105,\n\t\t210, 79, 58, 161, 8, 154, 16, 197, 227, 105, 19, 164, 155,\n\t\t93, 178, 154, 116, 82, 30, 231, 149, 41, 3, 120, 119, 160,\n\t\t160, 29, 77, 251, 18, 205, 42, 44, 20, 186, 184, 240, 239,\n\t\t155, 25, 201, 11, 162, 137, 201, 56, 147, 191, 84, 26, 193,\n\t\t167, 89, 174, 192, 101, 211, 94, 54, 18, 95, 209, 108, 77,\n\t\t179, 207, 88, 186, 46, 152, 194, 158, 139, 170, 174, 33, 140,\n\t\t181, 114, 103, 103, 97, 37, 242, 56, 246, 231, 68, 169, 110,\n\t\t139, 18, 16, 202, 85, 195, 213, 234, 115, 58, 9, 76, 15, 131,\n\t\t106, 41, 184, 106, 169, 204, 15, 109, 110, 187, 81, 131, 175,\n\t\t116, 15, 236, 253, 23, 166, 128, 90, 6, 21, 43, 67, 197, 74,\n\t\t60, 197, 166, 66, 73, 116, 112, 121, 255, 85, 1, 6, 21, 203,\n\t\t41, 91, 202, 8, 105, 84, 48, 39, 24, 124, 149, 113, 66, 180,\n\t\t183, 213, 151, 116, 131, 208, 150, 208, 77, 199, 208, 44,\n\t\t69, 229, 32, 112, 217, 237, 143, 76, 15, 175, 28, 169, 223,\n\t\t242, 218, 190, 231, 237, 253, 61, 216, 80, 206, 203, 154,\n\t\t255, 81, 149, 42, 131, 205, 165, 218, 53, 181, 208, 86, 52,\n\t\t44, 34, 203, 100, 120, 107, 49, 109, 151, 170, 101, 60, 39,\n\t\t18, 189, 97, 87, 188, 80, 107, 58, 97, 25, 192, 55, 1, 42,\n\t\t138, 165, 98, 208, 68, 213, 104, 50, 46, 22, 35, 199, 178,\n\t\t123, 155, 159, 179, 45, 11, 43, 85, 5, 118, 76, 225, 57, 142,\n\t\t110, 246, 53, 223, 180, 183, 238, 119, 242, 130, 234, 0, 142,\n\t\t96, 140, 208, 94, 147, 0, 39, 16, 129, 146, 151, 92, 233,\n\t\t206, 251, 140, 18, 146, 170, 154, 165, 234, 92, 211, 116,\n\t\t69, 99, 84, 209, 57, 99, 142, 57, 174, 116, 167, 195, 19,\n\t\t119, 174, 180, 244, 114, 233, 15, 236, 25, 79, 139, 117, 225,\n\t\t207, 224, 243, 240, 49, 52, 70, 103, 16, 130, 153, 199, 102,\n\t\t16, 55, 72, 60, 220, 166, 217, 40, 150, 129, 196, 188, 112,\n\t\t0, 192, 59, 48, 29, 198, 13, 42, 182, 200, 128, 72, 238, 54,\n\t\t233, 93, 73, 106, 56, 204, 187, 171, 105, 28, 213, 225, 226,\n\t\t6, 124, 14, 52, 118, 104, 254, 220, 213, 128, 157, 122, 28,\n\t\t40, 174, 109, 105, 10, 193, 80, 27, 173, 77, 131, 102, 100,\n\t\t107, 28, 155, 190, 207, 197, 224, 183, 86, 136, 18, 185, 214,\n\t\t149, 128, 25, 103, 222, 81, 215, 48, 220, 163, 30, 231, 12,\n\t\t175, 148, 74, 6, 29, 84, 98, 157, 130, 121, 217, 176, 180,\n\t\t196, 12, 95, 8, 55, 214, 228, 172, 21, 198, 208, 179, 9, 182,\n\t\t152, 223, 168, 45, 55, 179, 122, 221, 224, 213, 65, 213, 39,\n\t\t52, 12, 49, 11, 42, 255, 63, 115, 111, 30, 109, 201, 113,\n\t\t214, 9, 230, 247, 197, 154, 123, 222, 123, 51, 51, 238, 126,\n\t\t239, 187, 249, 94, 230, 171, 183, 191, 187, 100, 150, 170,\n\t\t222, 162, 93, 42, 73, 85, 150, 75, 146, 37, 171, 100, 203,\n\t\t50, 90, 44, 35, 121, 145, 55, 225, 5, 100, 186, 141, 219,\n\t\t96, 51, 24, 27, 240, 192, 200, 152, 233, 110, 102, 48, 235,\n\t\t129, 105, 155, 118, 195, 177, 48, 216, 236, 62, 180, 205,\n\t\t105, 14, 61, 99, 204, 114, 218, 192, 224, 230, 152, 30, 230,\n\t\t28, 48, 205, 171, 57, 17, 121, 159, 22, 56, 253, 255, 84,\n\t\t214, 125, 55, 111, 102, 100, 100, 100, 68, 100, 124, 223,\n\t\t23, 241, 251, 190, 223, 206, 199, 154, 219, 237, 65, 208,\n\t\t116, 29, 158, 66, 47, 142, 187, 152, 114, 183, 233, 143, 213,\n\t\t60, 126, 106, 196, 120, 199, 245, 143, 143, 87, 5, 79, 165,\n\t\t247, 212, 243, 190, 213, 120, 19, 124, 194, 106, 89, 83, 235,\n\t\t38, 235, 118, 131, 248, 80, 89, 193, 181, 205, 181, 92, 231,\n\t\t30, 2, 139, 83, 181, 152, 157, 131, 33, 213, 58, 162, 161,\n\t\t103, 91, 234, 249, 92, 77, 211, 233, 17, 89, 204, 119, 232,\n\t\t6, 240, 76, 36, 211, 42, 207, 240, 166, 251, 110, 120, 211,\n\t\t250, 202, 218, 183, 60, 250, 129, 79, 62, 253, 178, 239, 186,\n\t\t116, 178, 125, 211, 217, 95, 71, 209, 106, 36, 161, 211, 236,\n\t\t116, 109, 187, 233, 16, 122, 243, 91, 95, 115, 229, 59, 255,\n\t\t68, 118, 252, 150, 237, 80, 100, 204, 181, 67, 47, 145, 208,\n\t\t87, 190, 251, 149, 203, 215, 60, 117, 187, 77, 143, 142, 188,\n\t\t39, 110, 121, 249, 83, 243, 251, 111, 40, 174, 139, 126, 143,\n\t\t114, 191, 57, 104, 182, 215, 154, 174, 209, 16, 72, 118, 235,\n\t\t245, 55, 92, 122, 21, 0, 225, 174, 228, 210, 176, 180, 62,\n\t\t147, 146, 214, 75, 121, 136, 14, 172, 7, 173, 199, 235, 185,\n\t\t222, 53, 195, 236, 123, 170, 255, 22, 201, 52, 213, 163, 186,\n\t\t17, 68, 113, 64, 179, 100, 58, 155, 206, 22, 147, 29, 54,\n\t\t63, 132, 116, 102, 252, 141, 166, 71, 228, 0, 246, 179, 100,\n\t\t22, 103, 147, 58, 86, 134, 81, 117, 204, 92, 236, 0, 226,\n\t\t84, 76, 138, 133, 214, 123, 98, 110, 230, 143, 185, 31, 168,\n\t\t86, 35, 29, 117, 240, 192, 198, 229, 50, 31, 65, 134, 2, 135,\n\t\t180, 209, 68, 219, 196, 128, 227, 161, 106, 185, 171, 93,\n\t\t233, 9, 134, 195, 102, 218, 244, 5, 119, 16, 29, 18, 185,\n\t\t141, 70, 244, 176, 227, 240, 104, 205, 48, 86, 62, 37, 194,\n\t\t206, 10, 237, 71, 105, 27, 193, 144, 142, 82, 65, 159, 100,\n\t\t156, 82, 195, 69, 43, 13, 86, 149, 113, 182, 3, 27, 137, 207,\n\t\t63, 136, 146, 5, 164, 225, 244, 84, 207, 48, 241, 75, 100,\n\t\t78, 203, 29, 7, 205, 109, 184, 9, 178, 40, 174, 235, 228,\n\t\t151, 208, 130, 63, 182, 2, 43, 179, 174, 88, 143, 89, 86,\n\t\t117, 234, 180, 82, 59, 231, 170, 84, 197, 75, 63, 222, 121,\n\t\t117, 68, 180, 62, 88, 197, 38, 130, 222, 226, 0, 23, 121,\n\t\t145, 79, 76, 132, 190, 84, 240, 140, 231, 135, 112, 186, 228,\n\t\t181, 92, 174, 222, 83, 233, 105, 124, 250, 84, 20, 59, 80,\n\t\t86, 83, 253, 54, 240, 191, 37, 45, 119, 54, 8, 82, 65, 187,\n\t\t81, 127, 53, 251, 45, 23, 162, 48, 90, 127, 116, 14, 211,\n\t\t173, 155, 214, 26, 12, 40, 30, 3, 25, 55, 109, 242, 240, 250,\n\t\t3, 151, 206, 155, 181, 89, 112, 213, 0, 72, 202, 192, 30,\n\t\t82, 66, 197, 214, 185, 239, 123, 210, 68, 50, 247, 21, 5,\n\t\t214, 253, 209, 121, 16, 54, 87, 128, 190, 28, 97, 229, 145,\n\t\t134, 160, 4, 211, 201, 122, 211, 151, 193, 202, 202, 154,\n\t\t108, 171, 213, 192, 27, 81, 34, 4, 37, 195, 173, 97, 64, 191,\n\t\t109, 135, 55, 83, 66, 60, 123, 50, 240, 222, 82, 165, 107,\n\t\t183, 236, 248, 163, 205, 194, 133, 158, 74, 186, 109, 135,\n\t\t176, 253, 77, 70, 133, 220, 111, 110, 61, 14, 158, 11, 180,\n\t\t81, 165, 20, 253, 31, 147, 52, 234, 251, 56, 222, 232, 174,\n\t\t189, 72, 79, 16, 86, 104, 41, 107, 100, 125, 203, 11, 246,\n\t\t95, 115, 41, 73, 255, 233, 239, 53, 46, 10, 245, 252, 103,\n\t\t82, 84, 34, 127, 241, 103, 94, 169, 162, 124, 241, 103, 170,\n\t\t68, 149, 190, 248, 19, 139, 162, 182, 22, 127, 224, 11, 31,\n\t\t250, 208, 23, 62, 244, 3, 159, 122, 239, 123, 63, 245, 222,\n\t\t127, 249, 115, 239, 126, 247, 207, 189, 27, 190, 151, 7, 183,\n\t\t29, 70, 73, 181, 170, 58, 125, 230, 119, 125, 218, 235, 170,\n\t\t213, 50, 141, 142, 110, 11, 248, 197, 203, 136, 119, 93, 122,\n\t\t33, 65, 143, 250, 93, 159, 245, 59, 106, 181, 74, 162, 195,\n\t\t219, 124, 113, 233, 46, 128, 203, 167, 134, 229, 79, 124,\n\t\t72, 231, 14, 199, 239, 213, 217, 159, 252, 199, 119, 235,\n\t\t252, 139, 211, 180, 1, 191, 116, 215, 50, 179, 163, 198, 255,\n\t\t248, 110, 151, 47, 234, 4, 81, 90, 102, 105, 183, 190, 155,\n\t\t101, 124, 65, 159, 131, 194, 172, 121, 185, 166, 214, 172,\n\t\t150, 40, 142, 33, 17, 42, 217, 133, 99, 84, 33, 44, 70, 16,\n\t\t194, 162, 122, 205, 106, 150, 221, 125, 230, 76, 60, 155,\n\t\t61, 156, 173, 174, 222, 157, 204, 102, 201, 25, 232, 111,\n\t\t109, 109, 126, 219, 151, 183, 183, 191, 252, 133, 115, 231,\n\t\t38, 155, 155, 91, 68, 239, 124, 225, 203, 219, 150, 251, 146,\n\t\t182, 72, 173, 190, 117, 163, 117, 135, 117, 217, 186, 207,\n\t\t122, 181, 245, 176, 245, 122, 203, 162, 75, 151, 28, 92, 174,\n\t\t33, 20, 169, 18, 59, 176, 11, 9, 23, 69, 169, 102, 73, 170,\n\t\t42, 37, 12, 61, 32, 23, 74, 212, 67, 92, 94, 136, 162, 50,\n\t\t147, 50, 101, 85, 84, 170, 60, 134, 84, 101, 59, 88, 172,\n\t\t41, 46, 178, 82, 204, 82, 37, 242, 181, 153, 206, 128, 165,\n\t\t42, 201, 139, 74, 113, 177, 40, 225, 65, 211, 60, 31, 123,\n\t\t238, 253, 239, 127, 238, 253, 191, 125, 118, 187, 25, 238,\n\t\t183, 206, 238, 172, 53, 183, 111, 28, 7, 254, 249, 244, 188,\n\t\t77, 46, 95, 38, 246, 249, 244, 188, 31, 252, 147, 3, 94, 248,\n\t\t139, 19, 217, 65, 39, 148, 39, 159, 107, 246, 69, 71, 202,\n\t\t142, 232, 55, 39, 240, 47, 58, 114, 210, 236, 159, 124, 117,\n\t\t109, 231, 236, 246, 55, 154, 219, 103, 119, 206, 154, 70,\n\t\t130, 75, 239, 215, 247, 120, 74, 78, 154, 94, 76, 58, 38,\n\t\t237, 230, 105, 214, 163, 240, 52, 107, 42, 95, 114, 175, 249,\n\t\t246, 89, 111, 60, 112, 154, 205, 181, 157, 179, 111, 210,\n\t\t197, 58, 123, 118, 187, 185, 118, 135, 190, 221, 164, 217,\n\t\t156, 200, 142, 153, 203, 148, 150, 117, 245, 207, 208, 130,\n\t\t31, 181, 186, 214, 212, 186, 205, 122, 139, 245, 46, 235,\n\t\t95, 88, 223, 99, 253, 172, 101, 181, 102, 201, 16, 84, 190,\n\t\t92, 88, 175, 221, 170, 146, 88, 28, 97, 85, 47, 133, 103,\n\t\t121, 86, 86, 233, 180, 204, 139, 178, 26, 130, 249, 74, 85,\n\t\t0, 233, 242, 107, 90, 165, 106, 34, 12, 167, 152, 113, 249,\n\t\t76, 181, 12, 81, 9, 23, 59, 144, 25, 191, 88, 195, 107, 206,\n\t\t69, 94, 44, 142, 106, 110, 212, 244, 148, 108, 104, 249, 42,\n\t\t149, 203, 223, 66, 235, 97, 179, 116, 106, 224, 181, 179,\n\t\t169, 226, 34, 215, 57, 36, 124, 82, 44, 118, 160, 152, 136,\n\t\t188, 40, 191, 233, 57, 1, 180, 244, 96, 171, 199, 15, 2, 49,\n\t\t112, 87, 116, 9, 228, 210, 239, 123, 1, 177, 221, 68, 184,\n\t\t174, 223, 144, 77, 15, 132, 255, 178, 208, 23, 224, 53, 101,\n\t\t195, 119, 93, 145, 184, 54, 9, 188, 190, 47, 115, 56, 227,\n\t\t29, 174, 172, 231, 199, 97, 208, 114, 206, 173, 175, 236,\n\t\t219, 94, 219, 227, 157, 60, 93, 63, 231, 180, 130, 240, 56,\n\t\t95, 95, 57, 84, 147, 118, 123, 210, 174, 250, 173, 86, 191,\n\t\t181, 149, 70, 81, 26, 125, 111, 47, 85, 93, 144, 145, 132,\n\t\t174, 74, 123, 177, 131, 44, 240, 71, 27, 60, 26, 71, 124,\n\t\t99, 228, 7, 12, 29, 248, 209, 94, 248, 244, 157, 221, 180,\n\t\t33, 37, 53, 236, 15, 82, 54, 210, 238, 226, 202, 161, 243,\n\t\t109, 43, 69, 235, 12, 229, 105, 204, 221, 166, 104, 250, 158,\n\t\t43, 82, 143, 19, 194, 189, 84, 184, 158, 223, 20, 77, 151,\n\t\t199, 41, 167, 103, 90, 121, 39, 110, 140, 174, 133, 32, 192,\n\t\t110, 218, 104, 131, 106, 16, 226, 54, 189, 118, 35, 237, 98,\n\t\t16, 192, 181, 163, 198, 29, 109, 93, 176, 168, 165, 11, 230,\n\t\t71, 186, 96, 51, 103, 64, 1, 232, 192, 193, 150, 67, 97, 115,\n\t\t196, 8, 97, 163, 77, 160, 78, 11, 79, 231, 176, 255, 8, 126,\n\t\t5, 126, 220, 122, 202, 178, 214, 142, 176, 138, 3, 38, 178,\n\t\t29, 182, 11, 67, 24, 193, 14, 106, 117, 39, 168, 247, 161,\n\t\t94, 40, 208, 251, 1, 12, 201, 8, 202, 170, 14, 180, 217, 60,\n\t\t132, 100, 145, 196, 173, 74, 40, 161, 242, 66, 29, 145, 188,\n\t\t208, 159, 33, 227, 226, 136, 204, 139, 33, 225, 240, 189,\n\t\t196, 233, 57, 232, 53, 178, 173, 155, 55, 232, 198, 77, 219,\n\t\t147, 166, 11, 232, 182, 165, 136, 21, 67, 199, 161, 212, 131,\n\t\t70, 34, 237, 129, 51, 200, 163, 168, 215, 12, 18, 199, 105,\n\t\t184, 118, 210, 83, 182, 4, 152, 180, 143, 143, 227, 145, 148,\n\t\t163, 248, 248, 184, 61, 164, 200, 227, 173, 14, 182, 169,\n\t\t223, 115, 26, 61, 226, 13, 219, 169, 136, 82, 234, 118, 2,\n\t\t143, 216, 13, 162, 110, 67, 123, 189, 71, 253, 60, 219, 28,\n\t\t166, 0, 201, 74, 81, 172, 56, 78, 175, 224, 188, 179, 216,\n\t\t218, 24, 119, 184, 104, 47, 206, 100, 182, 189, 119, 229,\n\t\t104, 207, 117, 227, 114, 111, 211, 247, 86, 14, 182, 139,\n\t\t110, 139, 210, 198, 141, 171, 123, 182, 93, 237, 192, 14,\n\t\t211, 189, 135, 159, 124, 121, 167, 178, 237, 189, 49, 189,\n\t\t135, 184, 27, 251, 119, 110, 179, 104, 127, 187, 138, 81,\n\t\t246, 70, 251, 179, 27, 51, 226, 231, 197, 162, 195, 162, 249,\n\t\t252, 54, 139, 89, 189, 171, 159, 133, 31, 135, 231, 224, 93,\n\t\t240, 81, 248, 57, 248, 60, 252, 129, 101, 169, 188, 42, 23,\n\t\t101, 117, 0, 197, 124, 97, 124, 173, 22, 243, 69, 190, 168,\n\t\t1, 84, 213, 17, 228, 89, 141, 207, 138, 181, 81, 145, 112,\n\t\t3, 229, 231, 69, 190, 168, 215, 108, 150, 72, 45, 145, 212,\n\t\t96, 26, 149, 154, 248, 202, 181, 201, 96, 146, 115, 227, 239,\n\t\t83, 103, 183, 208, 137, 119, 161, 58, 128, 197, 46, 24, 24,\n\t\t170, 65, 176, 228, 69, 126, 92, 71, 163, 154, 159, 2, 189,\n\t\t12, 94, 45, 137, 79, 129, 110, 202, 224, 80, 22, 115, 93,\n\t\t194, 69, 94, 188, 100, 219, 133, 69, 97, 150, 43, 148, 137,\n\t\t213, 161, 239, 107, 24, 99, 121, 162, 202, 106, 110, 74, 169,\n\t\t166, 38, 44, 97, 169, 165, 253, 16, 142, 193, 24, 60, 67,\n\t\t48, 238, 152, 137, 190, 17, 79, 140, 107, 124, 194, 197, 11,\n\t\t155, 126, 235, 77, 49, 234, 162, 164, 75, 168, 221, 41, 28,\n\t\t198, 124, 153, 39, 76, 70, 144, 196, 42, 169, 47, 11, 145,\n\t\t235, 212, 251, 53, 64, 192, 32, 145, 133, 201, 93, 165, 161,\n\t\t78, 150, 38, 92, 197, 102, 214, 32, 192, 42, 175, 253, 198,\n\t\t107, 74, 180, 36, 53, 15, 160, 203, 83, 3, 247, 150, 231,\n\t\t230, 179, 114, 4, 9, 55, 46, 169, 33, 236, 145, 33, 85, 169,\n\t\t50, 204, 114, 53, 105, 79, 169, 210, 58, 52, 137, 62, 17,\n\t\t64, 254, 23, 8, 80, 67, 167, 40, 0, 19, 6, 64, 2, 64, 185,\n\t\t87, 131, 200, 12, 94, 4, 140, 47, 183, 148, 72, 180, 129,\n\t\t98, 155, 213, 215, 250, 50, 189, 185, 244, 121, 232, 21, 186,\n\t\t174, 222, 55, 222, 187, 32, 156, 192, 67, 147, 6, 168, 206,\n\t\t150, 113, 228, 250, 26, 66, 93, 196, 6, 151, 6, 173, 142,\n\t\t104, 224, 43, 232, 72, 14, 250, 38, 38, 126, 176, 16, 210,\n\t\t68, 217, 5, 96, 200, 4, 3, 2, 174, 192, 16, 80, 82, 134, 140,\n\t\t82, 227, 177, 198, 141, 39, 135, 227, 50, 170, 53, 80, 195,\n\t\t119, 79, 4, 112, 219, 101, 20, 177, 142, 65, 76, 40, 175,\n\t\t75, 168, 141, 10, 93, 72, 98, 226, 44, 152, 216, 167, 54,\n\t\t183, 107, 111, 36, 243, 225, 30, 35, 64, 25, 10, 81, 231,\n\t\t133, 96, 60, 163, 116, 158, 44, 162, 72, 235, 167, 19, 98,\n\t\t168, 179, 35, 140, 1, 214, 8, 156, 11, 230, 132, 169, 38,\n\t\t219, 172, 78, 3, 220, 203, 108, 74, 40, 105, 209, 27, 101,\n\t\t128, 103, 86, 156, 11, 97, 128, 249, 223, 111, 14, 187, 189,\n\t\t53, 214, 233, 228, 13, 23, 0, 58, 217, 218, 181, 162, 153,\n\t\t242, 24, 161, 79, 89, 212, 98, 196, 70, 164, 76, 57, 130,\n\t\t200, 17, 147, 130, 72, 198, 169, 77, 145, 129, 205, 8, 65,\n\t\t78, 169, 169, 41, 66, 100, 200, 9, 106, 229, 143, 17, 218,\n\t\t244, 136, 99, 219, 97, 162, 7, 66, 202, 24, 243, 36, 119,\n\t\t207, 114, 210, 236, 34, 186, 212, 235, 217, 36, 140, 35, 218,\n\t\t104, 80, 234, 185, 72, 92, 175, 144, 54, 165, 104, 11, 207,\n\t\t5, 132, 192, 3, 34, 24, 65, 100, 82, 55, 188, 80, 186, 54,\n\t\t185, 199, 57, 37, 156, 2, 70, 0, 158, 105, 127, 219, 38, 136,\n\t\t52, 4, 234, 249, 148, 48, 160, 38, 52, 179, 96, 190, 207,\n\t\t5, 69, 168, 99, 55, 19, 162, 27, 196, 37, 64, 98, 206, 16,\n\t\t89, 192, 235, 8, 205, 80, 99, 241, 76, 35, 219, 220, 196,\n\t\t211, 212, 173, 135, 224, 211, 186, 27, 152, 170, 67, 102,\n\t\t106, 155, 19, 110, 252, 114, 40, 227, 12, 92, 201, 77, 80,\n\t\t103, 42, 188, 148, 10, 42, 9, 147, 132, 113, 41, 40, 181,\n\t\t37, 65, 225, 58, 2, 120, 32, 57, 71, 202, 129, 232, 190, 134,\n\t\t13, 230, 37, 148, 49, 183, 193, 237, 128, 112, 202, 162, 36,\n\t\t231, 68, 200, 86, 139, 128, 160, 219, 16, 40, 151, 250, 138,\n\t\t178, 200, 116, 30, 17, 121, 158, 140, 199, 54, 93, 99, 186,\n\t\t247, 112, 18, 49, 16, 180, 141, 54, 231, 220, 150, 194, 31,\n\t\t105, 13, 157, 112, 221, 215, 185, 123, 77, 208, 219, 82, 66,\n\t\t145, 78, 114, 238, 142, 143, 176, 179, 197, 160, 232, 119,\n\t\t26, 91, 227, 53, 79, 116, 214, 2, 98, 89, 150, 125, 245, 234,\n\t\t213, 207, 195, 223, 192, 167, 173, 239, 176, 190, 12, 61,\n\t\t120, 53, 190, 26, 127, 24, 191, 68, 154, 228, 118, 203, 106,\n\t\t77, 103, 83, 53, 85, 233, 41, 28, 86, 165, 106, 111, 105,\n\t\t137, 232, 161, 68, 191, 164, 125, 224, 47, 25, 71, 106, 237,\n\t\t131, 103, 147, 98, 82, 108, 64, 190, 132, 230, 190, 120, 155,\n\t\t231, 139, 121, 174, 71, 182, 121, 117, 0, 229, 66, 127, 202,\n\t\t253, 218, 177, 241, 249, 241, 102, 90, 206, 202, 233, 126,\n\t\t189, 66, 126, 186, 45, 145, 175, 47, 30, 38, 151, 219, 57,\n\t\t152, 165, 213, 244, 133, 171, 95, 180, 21, 243, 124, 255,\n\t\t133, 91, 79, 178, 34, 23, 101, 21, 60, 15, 31, 86, 245, 192,\n\t\t85, 63, 82, 210, 7, 253, 63, 173, 119, 48, 137, 147, 73, 29,\n\t\t63, 196, 224, 26, 77, 88, 197, 229, 210, 189, 222, 210, 229,\n\t\t149, 201, 18, 86, 249, 252, 54, 41, 246, 230, 251, 115, 253,\n\t\t96, 203, 255, 243, 23, 61, 216, 243, 212, 45, 197, 158, 46,\n\t\t201, 63, 123, 34, 3, 139, 76, 98, 53, 4, 3, 69, 156, 63, 159,\n\t\t75, 89, 239, 146, 58, 195, 249, 162, 15, 251, 105, 18, 167,\n\t\t177, 254, 164, 47, 100, 48, 221, 79, 171, 249, 233, 189, 102,\n\t\t229, 18, 52, 93, 86, 229, 49, 114, 177, 119, 90, 198, 101,\n\t\t17, 78, 133, 205, 178, 220, 89, 173, 15, 214, 129, 159, 150,\n\t\t30, 173, 207, 99, 42, 245, 137, 58, 114, 187, 154, 166, 179,\n\t\t189, 154, 87, 103, 86, 99, 179, 227, 58, 163, 23, 132, 197,\n\t\t220, 8, 216, 186, 168, 250, 207, 11, 13, 80, 60, 95, 184,\n\t\t253, 120, 0, 113, 178, 151, 205, 243, 226, 0, 138, 137, 33,\n\t\t240, 201, 38, 217, 124, 255, 8, 246, 117, 91, 206, 230, 11,\n\t\t163, 133, 206, 243, 108, 190, 127, 14, 102, 101, 90, 237,\n\t\t77, 23, 243, 35, 168, 166, 90, 245, 141, 211, 253, 180, 156,\n\t\t233, 199, 219, 75, 38, 98, 146, 76, 244, 211, 37, 83, 53,\n\t\t77, 213, 84, 103, 107, 178, 139, 69, 18, 64, 44, 38, 251,\n\t\t243, 67, 152, 139, 114, 159, 27, 105, 249, 194, 246, 124,\n\t\t191, 142, 147, 231, 131, 197, 188, 232, 129, 23, 123, 166,\n\t\t46, 14, 12, 205, 253, 218, 178, 255, 191, 164, 173, 121, 150,\n\t\t23, 147, 93, 152, 191, 180, 211, 45, 81, 164, 243, 186, 181,\n\t\t191, 238, 120, 140, 163, 15, 132, 128, 19, 52, 155, 235, 163,\n\t\t81, 147, 0, 37, 130, 156, 142, 49, 220, 107, 111, 118, 71,\n\t\t174, 180, 209, 181, 185, 244, 168, 244, 60, 201, 169, 78,\n\t\t239, 162, 164, 110, 216, 240, 25, 70, 209, 66, 49, 2, 203,\n\t\t145, 9, 153, 3, 196, 107, 14, 55, 125, 71, 117, 193, 1, 14,\n\t\t40, 49, 240, 66, 199, 75, 90, 141, 64, 82, 41, 196, 102, 96,\n\t\t6, 40, 36, 96, 39, 94, 179, 61, 242, 109, 151, 53, 26, 192,\n\t\t49, 137, 193, 33, 54, 56, 100, 125, 165, 221, 36, 66, 15,\n\t\t41, 182, 9, 224, 4, 196, 181, 253, 184, 91, 236, 186, 62,\n\t\t50, 234, 190, 173, 213, 1, 129, 13, 223, 53, 208, 36, 87,\n\t\t6, 232, 34, 37, 134, 58, 45, 138, 28, 97, 11, 91, 232, 242,\n\t\t152, 176, 152, 156, 82, 167, 97, 255, 7, 228, 174, 72, 70,\n\t\t54, 117, 244, 144, 78, 57, 115, 195, 168, 197, 184, 17, 53,\n\t\t212, 183, 185, 167, 7, 93, 138, 140, 203, 48, 166, 143, 162,\n\t\t17, 143, 90, 206, 82, 45, 212, 180, 68, 34, 181, 180, 173,\n\t\t5, 151, 150, 121, 188, 134, 111, 49, 105, 72, 139, 41, 15,\n\t\t4, 229, 204, 247, 108, 222, 240, 245, 8, 204, 164, 205, 165,\n\t\t235, 250, 62, 21, 200, 41, 35, 76, 114, 46, 128, 0, 241, 27,\n\t\t227, 137, 16, 46, 141, 26, 141, 158, 203, 192, 177, 109, 65,\n\t\t8, 103, 92, 72, 199, 115, 153, 240, 124, 42, 234, 177, 29,\n\t\t194, 32, 112, 65, 128, 180, 5, 74, 66, 57, 19, 204, 12, 248,\n\t\t181, 192, 36, 70, 224, 154, 159, 40, 184, 206, 155, 130, 145,\n\t\t221, 121, 173, 47, 80, 52, 51, 126, 96, 216, 222, 140, 101,\n\t\t67, 9, 82, 32, 14, 162, 9, 17, 202, 235, 71, 225, 192, 109,\n\t\t35, 102, 137, 109, 68, 138, 67, 128, 233, 202, 172, 207, 126,\n\t\t198, 8, 123, 143, 51, 215, 22, 82, 162, 176, 65, 162, 52,\n\t\t14, 61, 174, 205, 100, 16, 9, 234, 185, 140, 248, 54, 125,\n\t\t65, 44, 233, 14, 0, 111, 213, 66, 220, 211, 98, 72, 184, 126,\n\t\t203, 182, 29, 233, 56, 158, 11, 64, 1, 181, 80, 96, 232, 184,\n\t\t78, 232, 81, 224, 212, 248, 222, 233, 139, 63, 5, 245, 172,\n\t\t148, 221, 28, 141, 10, 14, 174, 221, 106, 49, 202, 185, 29,\n\t\t73, 223, 116, 55, 143, 246, 59, 211, 44, 245, 77, 168, 26,\n\t\t60, 213, 157, 116, 69, 11, 65, 192, 241, 182, 174, 243, 3,\n\t\t238, 97, 173, 115, 184, 77, 78, 209, 248, 95, 19, 240, 186,\n\t\t41, 114, 232, 38, 121, 71, 80, 199, 40, 18, 109, 3, 195, 21,\n\t\t14, 39, 156, 3, 223, 62, 240, 125, 47, 244, 108, 233, 123,\n\t\t152, 141, 90, 13, 21, 113, 66, 65, 11, 240, 250, 13, 112,\n\t\t59, 77, 69, 117, 143, 226, 205, 86, 35, 104, 42, 180, 135,\n\t\t93, 21, 15, 146, 145, 171, 139, 49, 245, 37, 80, 112, 2, 79,\n\t\t91, 132, 34, 110, 133, 62, 216, 250, 25, 25, 10, 116, 0, 133,\n\t\t174, 8, 226, 33, 24, 255, 110, 193, 152, 16, 174, 207, 117,\n\t\t203, 5, 13, 135, 180, 149, 239, 38, 13, 187, 15, 72, 169,\n\t\t51, 108, 73, 72, 59, 204, 110, 52, 124, 219, 149, 145, 235,\n\t\t233, 119, 144, 163, 64, 106, 48, 57, 196, 33, 18, 8, 149,\n\t\t142, 16, 126, 232, 72, 46, 93, 79, 216, 142, 19, 122, 120,\n\t\t78, 43, 130, 92, 8, 194, 136, 235, 48, 52, 119, 228, 171,\n\t\t31, 93, 35, 6, 230, 103, 192, 197, 12, 109, 68, 143, 160,\n\t\t160, 18, 209, 175, 191, 137, 71, 144, 80, 2, 148, 51, 160,\n\t\t20, 64, 16, 70, 177, 37, 37, 15, 108, 163, 159, 161, 227,\n\t\t19, 227, 1, 64, 0, 152, 126, 135, 144, 80, 46, 35, 79, 247,\n\t\t93, 163, 251, 17, 164, 132, 9, 227, 250, 142, 182, 8, 180,\n\t\t42, 202, 60, 161, 53, 93, 42, 8, 165, 181, 66, 43, 40, 247,\n\t\t19, 238, 67, 221, 22, 81, 205, 249, 136, 72, 4, 101, 192,\n\t\t106, 159, 74, 36, 142, 107, 139, 4, 41, 131, 142, 238, 197,\n\t\t168, 43, 144, 56, 40, 61, 87, 56, 174, 173, 245, 102, 228,\n\t\t250, 213, 112, 56, 0, 203, 41, 160, 172, 245, 66, 120, 81,\n\t\t167, 91, 246, 60, 109, 133, 201, 165, 158, 189, 76, 84, 167,\n\t\t52, 192, 111, 160, 57, 219, 226, 142, 239, 248, 227, 174,\n\t\t35, 2, 161, 11, 143, 196, 64, 36, 9, 215, 175, 191, 110, 118,\n\t\t46, 25, 9, 98, 71, 72, 138, 28, 184, 180, 61, 174, 117, 51,\n\t\t71, 68, 109, 160, 14, 29, 12, 153, 23, 9, 218, 110, 198, 46,\n\t\t215, 3, 14, 24, 175, 13, 91, 72, 163, 70, 18, 42, 60, 38,\n\t\t88, 208, 114, 25, 10, 87, 248, 194, 55, 184, 225, 207, 35,\n\t\t192, 103, 172, 215, 91, 111, 178, 172, 86, 169, 74, 149, 215,\n\t\t168, 187, 170, 84, 167, 162, 254, 52, 16, 77, 185, 168, 157,\n\t\t12, 82, 195, 177, 121, 42, 231, 68, 29, 147, 123, 25, 234,\n\t\t71, 43, 40, 105, 237, 251, 160, 173, 160, 197, 188, 88, 202,\n\t\t8, 113, 202, 28, 186, 56, 2, 102, 46, 126, 205, 133, 7, 54,\n\t\t182, 214, 87, 174, 223, 161, 222, 160, 175, 214, 86, 69, 185,\n\t\t162, 0, 18, 47, 100, 44, 81, 177, 126, 91, 26, 173, 172, 151,\n\t\t52, 184, 235, 217, 30, 221, 216, 221, 95, 217, 198, 134, 2,\n\t\t63, 24, 202, 144, 146, 102, 163, 187, 183, 50, 66, 8, 244,\n\t\t171, 196, 193, 87, 4, 163, 33, 103, 157, 245, 139, 231, 191,\n\t\t171, 234, 44, 130, 148, 144, 25, 72, 41, 109, 104, 194, 123,\n\t\t175, 33, 16, 73, 46, 103, 192, 124, 68, 42, 72, 99, 123, 101,\n\t\t50, 246, 36, 16, 223, 243, 208, 5, 112, 152, 235, 16, 73,\n\t\t132, 148, 14, 25, 43, 5, 5, 70, 3, 148, 78, 22, 174, 140,\n\t\t58, 142, 203, 221, 237, 141, 146, 216, 130, 174, 118, 154,\n\t\t29, 158, 240, 112, 183, 21, 6, 235, 171, 187, 7, 173, 120,\n\t\t190, 125, 33, 235, 203, 73, 120, 174, 187, 181, 63, 154, 191,\n\t\t122, 79, 171, 234, 206, 139, 121, 2, 87, 172, 51, 214, 190,\n\t\t101, 53, 84, 161, 202, 169, 170, 132, 222, 82, 81, 179, 121,\n\t\t240, 194, 252, 172, 242, 121, 85, 168, 242, 159, 76, 19, 189,\n\t\t195, 187, 226, 119, 253, 43, 222, 59, 110, 62, 127, 51, 99,\n\t\t55, 159, 191, 249, 29, 222, 149, 110, 183, 254, 77, 200, 205,\n\t\t231, 127, 247, 177, 91, 47, 60, 122, 225, 19, 183, 206, 231,\n\t\t183, 206, 225, 19, 203, 131, 47, 78, 116, 122, 145, 201, 165,\n\t\t117, 235, 99, 23, 46, 60, 186, 54, 215, 201, 45, 203, 242,\n\t\t45, 235, 234, 175, 63, 63, 223, 56, 176, 54, 173, 133, 117,\n\t\t108, 93, 176, 238, 178, 174, 88, 143, 91, 111, 182, 222, 103,\n\t\t253, 79, 255, 124, 46, 120, 45, 51, 78, 134, 217, 34, 43,\n\t\t102, 139, 153, 200, 22, 134, 195, 89, 25, 238, 244, 162, 18,\n\t\t170, 48, 243, 39, 167, 223, 170, 82, 47, 236, 62, 191, 119,\n\t\t250, 116, 236, 165, 87, 27, 90, 136, 89, 142, 38, 94, 109,\n\t\t242, 194, 125, 120, 18, 31, 195, 233, 197, 245, 188, 241,\n\t\t15, 125, 238, 187, 191, 251, 115, 223, 13, 223, 245, 253,\n\t\t119, 223, 189, 247, 246, 181, 31, 249, 220, 133, 187, 62,\n\t\t252, 83, 223, 23, 191, 187, 119, 215, 255, 154, 134, 97, 234,\n\t\t161, 82, 216, 176, 125, 1, 65, 0, 210, 251, 95, 236, 229,\n\t\t174, 120, 58, 12, 19, 23, 210, 20, 189, 175, 255, 210, 251,\n\t\t222, 247, 75, 239, 131, 235, 239, 254, 254, 47, 60, 187, 254,\n\t\t182, 249, 221, 15, 222, 252, 166, 228, 217, 223, 56, 254,\n\t\t133, 159, 123, 207, 254, 247, 223, 125, 247, 181, 111, 217,\n\t\t178, 63, 172, 26, 97, 226, 211, 118, 27, 225, 211, 245, 124,\n\t\t242, 207, 124, 183, 190, 235, 103, 179, 221, 95, 251, 252,\n\t\t206, 229, 7, 206, 182, 239, 108, 127, 225, 11, 175, 178, 155,\n\t\t77, 59, 110, 51, 222, 70, 135, 251, 33, 161, 190, 199, 159,\n\t\t117, 29, 230, 5, 132, 6, 222, 229, 70, 195, 142, 21, 99, 42,\n\t\t254, 223, 222, 167, 111, 184, 50, 154, 93, 158, 126, 254,\n\t\t215, 126, 231, 242, 117, 151, 175, 59, 185, 231, 61, 247,\n\t\t93, 60, 152, 181, 142, 127, 237, 243, 103, 7, 227, 251, 110,\n\t\t182, 27, 45, 55, 105, 115, 218, 182, 92, 171, 127, 245, 57,\n\t\t248, 47, 240, 156, 245, 131, 214, 143, 88, 63, 102, 253, 184,\n\t\t245, 83, 214, 207, 91, 159, 182, 126, 217, 250, 156, 245,\n\t\t27, 214, 23, 13, 219, 151, 40, 68, 178, 67, 139, 249, 14,\n\t\t45, 202, 34, 0, 161, 184, 170, 244, 102, 206, 204, 243, 121,\n\t\t89, 137, 188, 18, 243, 26, 45, 14, 197, 16, 184, 216, 129,\n\t\t178, 74, 71, 88, 136, 17, 84, 35, 16, 134, 64, 198, 32, 140,\n\t\t142, 161, 172, 78, 19, 212, 243, 24, 67, 76, 138, 84, 20,\n\t\t67, 136, 121, 162, 51, 44, 76, 230, 101, 81, 237, 64, 193,\n\t\t85, 192, 68, 64, 197, 66, 183, 71, 89, 241, 138, 11, 173,\n\t\t229, 21, 101, 149, 86, 169, 202, 139, 178, 72, 21, 23, 115,\n\t\t161, 245, 99, 179, 155, 23, 243, 106, 185, 91, 86, 60, 201,\n\t\t139, 18, 60, 207, 117, 25, 227, 54, 67, 2, 132, 184, 225,\n\t\t176, 21, 250, 157, 145, 24, 54, 89, 159, 55, 237, 86, 215,\n\t\t238, 136, 46, 50, 222, 165, 110, 90, 168, 70, 129, 168, 154,\n\t\t49, 52, 28, 194, 65, 190, 146, 157, 35, 223, 42, 26, 91, 81,\n\t\t159, 38, 227, 149, 132, 244, 163, 173, 166, 120, 130, 158,\n\t\t163, 175, 148, 192, 137, 211, 192, 184, 217, 6, 44, 26, 225,\n\t\t160, 145, 122, 180, 203, 24, 118, 69, 71, 246, 98, 217, 226,\n\t\t61, 214, 28, 242, 81, 215, 11, 227, 65, 228, 16, 98, 100,\n\t\t185, 228, 140, 223, 20, 57, 54, 116, 1, 66, 46, 215, 219,\n\t\t142, 228, 164, 75, 59, 158, 192, 21, 191, 96, 255, 21, 209,\n\t\t118, 183, 2, 201, 34, 232, 48, 233, 246, 129, 187, 93, 218,\n\t\t71, 86, 4, 237, 36, 9, 61, 49, 196, 72, 165, 125, 78, 134,\n\t\t209, 184, 61, 242, 215, 215, 73, 50, 148, 249, 68, 76, 196,\n\t\t138, 72, 250, 44, 11, 72, 191, 217, 181, 89, 188, 230, 196,\n\t\t107, 8, 227, 86, 56, 96, 209, 164, 69, 229, 202, 97, 127,\n\t\t250, 218, 226, 85, 7, 130, 230, 108, 255, 233, 40, 138, 162,\n\t\t167, 247, 89, 78, 197, 193, 171, 138, 215, 78, 251, 135, 43,\n\t\t146, 182, 38, 17, 27, 132, 173, 49, 64, 171, 235, 59, 107,\n\t\t49, 179, 187, 205, 62, 9, 50, 214, 79, 196, 138, 152, 136,\n\t\t73, 46, 135, 9, 89, 95, 247, 71, 237, 113, 52, 36, 124, 144,\n\t\t180, 67, 28, 10, 239, 13, 46, 231, 141, 173, 216, 163, 68,\n\t\t186, 194, 15, 194, 163, 70, 97, 99, 120, 7, 109, 123, 232,\n\t\t124, 15, 111, 112, 94, 52, 36, 161, 94, 208, 10, 3, 255, 182,\n\t\t97, 8, 78, 113, 60, 118, 208, 107, 215, 107, 165, 112, 245,\n\t\t179, 112, 21, 126, 197, 202, 172, 139, 214, 155, 173, 143,\n\t\t88, 86, 85, 71, 236, 48, 206, 176, 59, 48, 63, 162, 199, 32,\n\t\t2, 48, 19, 99, 179, 115, 176, 159, 240, 214, 145, 153, 60,\n\t\t45, 118, 192, 68, 219, 73, 246, 226, 36, 203, 171, 137, 193,\n\t\t89, 24, 215, 121, 109, 221, 49, 158, 77, 178, 33, 4, 16, 66,\n\t\t117, 4, 134, 24, 43, 155, 136, 69, 169, 78, 93, 212, 3, 32,\n\t\t251, 211, 37, 140, 161, 200, 23, 129, 137, 235, 160, 134,\n\t\t96, 72, 171, 22, 7, 176, 63, 75, 239, 128, 116, 156, 166,\n\t\t17, 65, 207, 151, 65, 212, 8, 40, 149, 109, 217, 25, 52, 131,\n\t\t139, 103, 128, 190, 109, 117, 116, 184, 149, 73, 251, 138,\n\t\t219, 12, 61, 135, 227, 234, 60, 133, 18, 33, 74, 9, 21, 182,\n\t\t195, 156, 152, 82, 216, 147, 18, 177, 45, 212, 208, 15, 236,\n\t\t150, 103, 171, 118, 16, 92, 44, 64, 190, 233, 86, 80, 163,\n\t\t148, 59, 79, 71, 105, 26, 241, 192, 37, 100, 124, 180, 189,\n\t\t42, 237, 43, 94, 18, 6, 130, 174, 149, 45, 188, 68, 48, 74,\n\t\t211, 145, 130, 230, 234, 112, 168, 146, 200, 37, 228, 129,\n\t\t160, 219, 112, 105, 94, 182, 16, 222, 147, 208, 246, 192,\n\t\t247, 237, 40, 96, 65, 59, 246, 130, 139, 5, 194, 59, 110,\n\t\t73, 35, 230, 72, 193, 136, 47, 165, 141, 31, 32, 227, 227,\n\t\t157, 85, 187, 206, 83, 146, 181, 57, 40, 216, 55, 153, 234,\n\t\t59, 158, 124, 211, 20, 128, 9, 145, 114, 53, 244, 125, 217,\n\t\t242, 236, 182, 46, 221, 58, 176, 39, 107, 206, 71, 122, 245,\n\t\t143, 225, 211, 240, 111, 44, 98, 101, 214, 109, 214, 37, 235,\n\t\t178, 245, 10, 235, 113, 235, 199, 173, 47, 91, 127, 14, 30,\n\t\t252, 0, 252, 16, 124, 28, 126, 26, 62, 109, 89, 45, 46, 10,\n\t\t49, 36, 42, 229, 134, 133, 41, 213, 102, 228, 60, 175, 167,\n\t\t12, 149, 182, 240, 210, 42, 215, 150, 218, 254, 228, 212,\n\t\t114, 94, 174, 145, 78, 103, 229, 108, 170, 173, 185, 132,\n\t\t103, 241, 100, 81, 84, 187, 80, 41, 46, 138, 52, 47, 83, 97,\n\t\t156, 112, 51, 51, 129, 59, 155, 86, 83, 51, 23, 202, 67, 8,\n\t\t104, 54, 217, 97, 251, 188, 14, 225, 84, 228, 71, 100, 4,\n\t\t101, 237, 132, 98, 172, 251, 218, 220, 29, 130, 216, 51, 232,\n\t\t146, 33, 206, 202, 42, 59, 130, 99, 221, 182, 19, 113, 234,\n\t\t134, 200, 69, 108, 232, 201, 102, 90, 147, 40, 132, 9, 38,\n\t\t58, 45, 11, 46, 230, 38, 192, 82, 77, 211, 26, 167, 102, 118,\n\t\t89, 77, 22, 122, 88, 201, 139, 116, 63, 85, 185, 200, 180,\n\t\t253, 153, 11, 179, 108, 50, 157, 5, 32, 88, 153, 103, 19,\n\t\t97, 226, 50, 233, 66, 235, 193, 44, 25, 194, 17, 221, 159,\n\t\t77, 3, 162, 159, 90, 219, 236, 179, 244, 8, 42, 190, 31, 160,\n\t\t161, 95, 47, 107, 11, 63, 223, 132, 165, 149, 110, 166, 140,\n\t\t107, 178, 92, 98, 0, 174, 92, 229, 197, 16, 141, 23, 116,\n\t\t170, 12, 161, 91, 172, 146, 138, 43, 253, 127, 73, 175, 198,\n\t\t197, 254, 17, 164, 34, 230, 89, 97, 170, 247, 212, 247, 216,\n\t\t144, 153, 38, 121, 54, 201, 242, 191, 100, 72, 222, 164, 181,\n\t\t84, 0, 71, 104, 67, 198, 71, 199, 232, 167, 136, 192, 120,\n\t\t96, 148, 65, 74, 152, 153, 173, 164, 192, 82, 4, 74, 17, 109,\n\t\t198, 180, 10, 249, 32, 71, 18, 2, 247, 223, 238, 51, 127,\n\t\t31, 81, 8, 163, 171, 82, 109, 214, 73, 2, 207, 106, 5, 17,\n\t\t121, 119, 229, 96, 53, 221, 28, 247, 91, 129, 0, 116, 156,\n\t\t118, 106, 55, 227, 96, 118, 253, 245, 73, 163, 24, 41, 207,\n\t\t151, 77, 193, 60, 51, 149, 41, 104, 195, 241, 109, 73, 40,\n\t\t122, 39, 111, 0, 71, 130, 237, 129, 87, 174, 140, 218, 184,\n\t\t98, 20, 84, 201, 131, 48, 241, 6, 25, 119, 39, 9, 116, 91,\n\t\t157, 73, 219, 238, 60, 48, 222, 126, 69, 210, 35, 132, 80,\n\t\t68, 226, 72, 167, 213, 237, 222, 158, 12, 179, 155, 92, 224,\n\t\t13, 130, 110, 0, 12, 162, 192, 176, 222, 116, 26, 232, 144,\n\t\t212, 113, 161, 53, 226, 90, 101, 183, 9, 17, 126, 47, 43,\n\t\t150, 49, 168, 68, 35, 106, 4, 174, 13, 192, 253, 70, 199,\n\t\t3, 219, 38, 1, 23, 189, 107, 58, 20, 216, 120, 214, 110, 59,\n\t\t182, 12, 24, 222, 190, 165, 237, 30, 187, 69, 168, 54, 228,\n\t\t136, 75, 41, 65, 46, 184, 227, 201, 6, 141, 58, 104, 102,\n\t\t118, 61, 91, 15, 225, 174, 13, 194, 49, 134, 61, 35, 92, 128,\n\t\t141, 204, 115, 207, 204, 18, 233, 73, 109, 45, 127, 244, 8,\n\t\t109, 160, 120, 24, 54, 56, 80, 105, 187, 140, 73, 130, 184,\n\t\t46, 109, 206, 245, 37, 239, 32, 224, 253, 61, 16, 100, 68,\n\t\t250, 12, 93, 109, 98, 10, 32, 212, 196, 111, 1, 2, 182, 49,\n\t\t79, 137, 112, 25, 51, 54, 56, 239, 216, 0, 130, 153, 121,\n\t\t234, 191, 65, 110, 15, 128, 186, 191, 42, 108, 174, 53, 122,\n\t\t90, 27, 13, 120, 192, 125, 70, 69, 107, 115, 220, 115, 27,\n\t\t73, 210, 112, 129, 218, 123, 237, 32, 188, 245, 246, 27, 187,\n\t\t65, 208, 246, 195, 217, 64, 120, 118, 139, 55, 35, 162, 117,\n\t\t68, 162, 28, 34, 29, 220, 70, 201, 125, 145, 95, 236, 171,\n\t\t196, 235, 105, 83, 93, 136, 160, 217, 75, 33, 91, 231, 110,\n\t\t47, 140, 40, 198, 9, 229, 55, 207, 111, 125, 239, 36, 229,\n\t\t20, 49, 240, 5, 87, 140, 246, 215, 251, 63, 209, 77, 82, 215,\n\t\t5, 159, 17, 221, 15, 204, 164, 8, 18, 234, 32, 147, 238, 208,\n\t\t121, 86, 250, 16, 122, 161, 31, 129, 113, 5, 53, 143, 64,\n\t\t8, 229, 156, 162, 75, 0, 218, 49, 5, 183, 19, 3, 128, 231,\n\t\t14, 112, 65, 165, 107, 235, 238, 164, 40, 233, 113, 162, 159,\n\t\t147, 35, 64, 220, 104, 186, 132, 218, 13, 9, 146, 128, 12,\n\t\t36, 117, 165, 64, 20, 141, 200, 111, 134, 94, 228, 58, 194,\n\t\t143, 184, 239, 186, 142, 160, 141, 215, 249, 200, 9, 177,\n\t\t25, 71, 33, 144, 48, 2, 99, 73, 34, 27, 249, 139, 241, 186,\n\t\t204, 242, 173, 194, 196, 184, 74, 68, 129, 167, 174, 87, 139,\n\t\t66, 111, 34, 209, 155, 170, 22, 149, 58, 253, 251, 159, 38,\n\t\t43, 43, 147, 155, 106, 154, 220, 15, 156, 63, 232, 118, 15,\n\t\t206, 119, 187, 43, 147, 110, 119, 178, 210, 253, 235, 201,\n\t\t228, 250, 149, 21, 240, 106, 213, 236, 255, 185, 247, 252,\n\t\t125, 7, 183, 183, 90, 183, 31, 220, 119, 254, 222, 56, 190,\n\t\t110, 101, 229, 186, 229, 95, 35, 215, 130, 171, 207, 193,\n\t\t83, 240, 156, 193, 208, 173, 88, 91, 150, 117, 234, 246, 197,\n\t\t79, 229, 79, 54, 169, 12, 168, 153, 79, 242, 69, 67, 29, 65,\n\t\t235, 5, 218, 128, 191, 82, 81, 164, 162, 215, 71, 42, 20,\n\t\t158, 116, 143, 87, 175, 223, 29, 60, 254, 145, 215, 109, 39,\n\t\t119, 142, 87, 15, 179, 139, 111, 184, 116, 233, 7, 34, 21,\n\t\t134, 74, 169, 40, 114, 165, 39, 62, 215, 223, 189, 62, 187,\n\t\t237, 177, 199, 110, 131, 151, 253, 217, 74, 118, 242, 59,\n\t\t217, 225, 106, 121, 241, 226, 147, 23, 45, 11, 173, 214, 213,\n\t\t63, 134, 159, 129, 79, 88, 142, 97, 110, 126, 33, 220, 175,\n\t\t74, 178, 58, 78, 232, 66, 137, 69, 0, 73, 60, 4, 115, 255,\n\t\t29, 40, 170, 33, 192, 164, 57, 108, 246, 242, 188, 44, 190,\n\t\t231, 75, 119, 189, 237, 141, 119, 62, 249, 228, 193, 93, 27,\n\t\t23, 238, 185, 117, 163, 181, 18, 239, 12, 55, 127, 186, 57,\n\t\t108, 228, 101, 81, 164, 95, 194, 167, 239, 122, 249, 219,\n\t\t121, 126, 124, 188, 206, 239, 63, 220, 184, 176, 177, 113,\n\t\t97, 67, 205, 183, 252, 110, 251, 126, 227, 167, 251, 235,\n\t\t240, 247, 240, 139, 214, 196, 58, 111, 89, 44, 48, 168, 62,\n\t\t35, 216, 141, 136, 206, 114, 253, 155, 39, 177, 22, 30, 42,\n\t\t53, 97, 21, 151, 83, 122, 59, 108, 177, 140, 101, 13, 31,\n\t\t237, 191, 98, 5, 30, 251, 240, 135, 31, 91, 127, 205, 16,\n\t\t104, 191, 15, 15, 191, 51, 29, 84, 107, 147, 235, 82, 120,\n\t\t45, 52, 244, 43, 53, 184, 54, 110, 141, 163, 166, 128, 188,\n\t\t217, 185, 245, 2, 136, 164, 255, 225, 47, 126, 120, 173, 167,\n\t\t187, 224, 203, 111, 27, 207, 87, 86, 34, 191, 211, 0, 242,\n\t\t21, 215, 219, 221, 36, 16, 181, 133, 12, 220, 168, 233, 76,\n\t\t124, 113, 8, 53, 151, 252, 213, 171, 127, 139, 0, 31, 180,\n\t\t146, 165, 15, 153, 117, 12, 186, 181, 66, 224, 147, 162, 210,\n\t\t54, 136, 222, 203, 231, 229, 242, 144, 97, 11, 77, 167, 199,\n\t\t80, 10, 125, 216, 0, 217, 132, 54, 162, 234, 203, 4, 95, 30,\n\t\t211, 237, 93, 152, 139, 63, 243, 236, 224, 242, 185, 193,\n\t\t59, 194, 51, 193, 15, 135, 131, 51, 225, 179, 34, 9, 254,\n\t\t54, 20, 31, 239, 95, 30, 200, 48, 150, 129, 62, 242, 127,\n\t\t255, 179, 20, 226, 191, 214, 73, 68, 176, 76, 242, 248, 179,\n\t\t131, 115, 151, 7, 239, 8, 195, 31, 14, 215, 7, 193, 179, 50,\n\t\t140, 159, 14, 99, 241, 241, 193, 64, 198, 161, 12, 130, 103,\n\t\t229, 131, 47, 57, 175, 175, 123, 211, 75, 19, 24, 159, 193,\n\t\t95, 134, 231, 224, 115, 86, 98, 141, 173, 93, 171, 180, 14,\n\t\t173, 155, 173, 59, 180, 5, 62, 130, 33, 214, 97, 157, 119,\n\t\t97, 7, 14, 97, 94, 86, 106, 3, 50, 19, 124, 189, 204, 85,\n\t\t113, 4, 121, 177, 252, 173, 102, 197, 52, 229, 155, 176, 88,\n\t\t126, 85, 147, 192, 176, 172, 228, 124, 154, 242, 73, 254,\n\t\t219, 205, 230, 103, 153, 100, 205, 207, 54, 155, 255, 94,\n\t\t58, 142, 124, 66, 142, 101, 107, 160, 90, 173, 183, 141, 154,\n\t\t94, 43, 213, 191, 154, 67, 181, 225, 218, 182, 59, 184, 193,\n\t\t177, 109, 103, 252, 39, 237, 62, 244, 59, 43, 189, 94, 185,\n\t\t209, 104, 108, 52, 224, 23, 29, 231, 9, 226, 120, 252, 15,\n\t\t19, 231, 73, 199, 121, 146, 54, 237, 63, 180, 155, 244, 129,\n\t\t71, 135, 171, 171, 143, 100, 116, 60, 128, 71, 39, 147, 187,\n\t\t163, 198, 10, 180, 90, 121, 107, 101, 125, 101, 177, 104,\n\t\t102, 171, 171, 203, 184, 120, 186, 79, 124, 135, 181, 99,\n\t\t221, 85, 123, 98, 199, 53, 145, 105, 54, 41, 140, 214, 32,\n\t\t230, 75, 56, 174, 58, 194, 217, 116, 136, 234, 8, 212, 210,\n\t\t25, 56, 132, 204, 52, 87, 182, 164, 105, 95, 34, 79, 103,\n\t\t102, 30, 2, 126, 34, 223, 119, 6, 194, 14, 69, 247, 134, 195,\n\t\t78, 231, 240, 134, 174, 157, 120, 190, 16, 132, 194, 108,\n\t\t109, 184, 45, 237, 213, 158, 239, 196, 93, 197, 229, 206,\n\t\t89, 233, 52, 220, 129, 216, 130, 109, 231, 156, 179, 13, 91,\n\t\t98, 16, 165, 242, 186, 96, 188, 226, 22, 176, 238, 76, 198,\n\t\t1, 124, 251, 238, 170, 63, 190, 212, 82, 155, 173, 155, 203,\n\t\t242, 166, 94, 53, 201, 226, 196, 117, 165, 96, 227, 237, 108,\n\t\t208, 29, 9, 234, 245, 227, 65, 246, 150, 54, 117, 35, 57,\n\t\t248, 224, 7, 198, 227, 15, 124, 112, 208, 240, 252, 244, 103,\n\t\t215, 38, 111, 123, 219, 100, 205, 96, 207, 12, 126, 249, 122,\n\t\t171, 105, 157, 179, 238, 177, 222, 108, 89, 176, 167, 7, 21,\n\t\t19, 22, 79, 219, 96, 56, 157, 137, 35, 80, 245, 90, 237, 14,\n\t\t214, 193, 245, 76, 144, 73, 216, 132, 194, 96, 232, 143, 192,\n\t\t128, 239, 6, 75, 246, 244, 108, 113, 64, 142, 72, 205, 218,\n\t\t90, 141, 160, 102, 251, 209, 103, 178, 162, 42, 202, 229,\n\t\t68, 203, 17, 140, 0, 62, 0, 129, 207, 36, 160, 112, 136, 16,\n\t\t2, 159, 162, 227, 214, 245, 137, 235, 121, 156, 132, 30, 16,\n\t\t155, 128, 23, 18, 238, 121, 44, 226, 236, 250, 214, 152, 102,\n\t\t125, 158, 158, 73, 121, 255, 7, 185, 203, 124, 70, 181, 188,\n\t\t32, 40, 56, 161, 2, 254, 237, 93, 171, 77, 119, 131, 139,\n\t\t77, 91, 246, 28, 251, 174, 187, 178, 134, 187, 41, 248, 150,\n\t\t43, 186, 142, 13, 7, 104, 187, 13, 6, 12, 65, 37, 90, 39,\n\t\t201, 90, 77, 252, 59, 96, 188, 209, 246, 14, 247, 209, 117,\n\t\t113, 255, 200, 109, 55, 56, 226, 223, 97, 179, 245, 190, 39,\n\t\t59, 74, 117, 158, 124, 198, 254, 161, 180, 193, 8, 194, 199,\n\t\t208, 33, 2, 181, 181, 103, 22, 135, 57, 222, 245, 46, 26,\n\t\t58, 135, 142, 115, 100, 11, 6, 239, 122, 55, 143, 236, 99,\n\t\t199, 57, 214, 63, 224, 165, 28, 234, 131, 23, 102, 32, 88,\n\t\t29, 36, 57, 128, 73, 94, 199, 146, 86, 67, 152, 150, 75, 22,\n\t\t245, 127, 133, 156, 115, 7, 220, 235, 46, 95, 231, 130, 195,\n\t\t25, 7, 255, 206, 71, 239, 92, 34, 193, 62, 200, 92, 64, 206,\n\t\t139, 217, 172, 224, 12, 192, 225, 251, 199, 199, 166, 127,\n\t\t170, 171, 207, 193, 95, 194, 115, 86, 67, 191, 117, 144, 158,\n\t\t186, 180, 228, 243, 154, 109, 24, 167, 101, 145, 103, 243,\n\t\t252, 0, 170, 121, 54, 201, 38, 73, 154, 100, 229, 33, 76,\n\t\t43, 173, 102, 6, 108, 63, 157, 37, 169, 136, 103, 231, 96,\n\t\t54, 93, 228, 139, 89, 156, 38, 60, 153, 8, 14, 127, 228, 36,\n\t\t191, 156, 6, 143, 61, 36, 220, 244, 151, 210, 224, 177, 215,\n\t\t126, 156, 175, 33, 70, 128, 204, 143, 41, 220, 169, 247, 214,\n\t\t8, 48, 41, 37, 39, 24, 33, 50, 158, 80, 142, 119, 130, 25,\n\t\t65, 175, 109, 253, 231, 252, 201, 197, 177, 87, 127, 157,\n\t\t252, 167, 85, 68, 217, 238, 189, 226, 122, 198, 214, 118,\n\t\t31, 7, 130, 184, 74, 185, 148, 130, 33, 121, 235, 67, 156,\n\t\t247, 182, 129, 192, 94, 129, 75, 220, 75, 112, 245, 179, 48,\n\t\t133, 231, 116, 173, 49, 197, 55, 97, 178, 11, 34, 121, 193,\n\t\t89, 63, 105, 84, 198, 237, 56, 4, 216, 67, 96, 55, 112, 246,\n\t\t134, 145, 156, 73, 57, 147, 255, 146, 241, 155, 24, 33, 31,\n\t\t44, 5, 97, 31, 26, 62, 33, 37, 124, 67, 202, 147, 47, 126,\n\t\t23, 183, 241, 253, 70, 126, 255, 3, 190, 23, 222, 103, 133,\n\t\t86, 207, 154, 252, 243, 152, 10, 176, 200, 132, 9, 217, 160,\n\t\t170, 68, 85, 38, 236, 35, 94, 110, 245, 122, 173, 127, 252,\n\t\t191, 244, 95, 88, 61, 60, 58, 60, 58, 58, 58, 252, 252, 3,\n\t\t71, 135, 135, 240, 190, 94, 235, 228, 75, 230, 248, 78, 171,\n\t\t119, 242, 165, 47, 93, 188, 248, 165, 167, 47, 94, 124, 154,\n\t\t60, 241, 248, 227, 150, 197, 158, 159, 251, 240, 13, 2, 46,\n\t\t51, 62, 220, 89, 145, 136, 172, 81, 205, 212, 162, 154, 53,\n\t\t160, 81, 45, 90, 179, 42, 131, 86, 181, 40, 18, 209, 130,\n\t\t89, 35, 107, 144, 17, 52, 4, 252, 232, 131, 79, 188, 226,\n\t\t181, 235, 79, 190, 235, 222, 135, 78, 110, 184, 245, 15, 238,\n\t\t153, 95, 58, 249, 181, 249, 157, 47, 187, 48, 134, 242, 174,\n\t\t59, 191, 250, 193, 91, 111, 189, 246, 71, 30, 56, 134, 63,\n\t\t29, 254, 220, 155, 143, 79, 166, 240, 147, 39, 179, 197, 223,\n\t\t159, 252, 78, 1, 159, 59, 81, 231, 31, 121, 234, 43, 11, 248,\n\t\t171, 147, 155, 225, 51, 39, 191, 10, 135, 255, 238, 81, 72,\n\t\t23, 38, 54, 194, 38, 190, 23, 94, 110, 113, 203, 183, 110,\n\t\t177, 238, 182, 94, 163, 109, 226, 214, 44, 209, 143, 91, 45,\n\t\t178, 100, 166, 170, 194, 48, 139, 112, 161, 77, 1, 12, 112,\n\t\t0, 133, 126, 233, 121, 81, 86, 89, 121, 30, 202, 69, 166,\n\t\t109, 17, 195, 16, 51, 171, 184, 168, 121, 72, 98, 177, 86,\n\t\t232, 183, 119, 72, 244, 155, 173, 255, 138, 226, 8, 85, 186,\n\t\t185, 100, 231, 40, 242, 98, 8, 211, 89, 90, 30, 106, 5, 97,\n\t\t23, 102, 139, 137, 49, 211, 166, 229, 49, 26, 177, 39, 120,\n\t\t150, 236, 205, 202, 159, 124, 231, 254, 134, 84, 15, 93, 240,\n\t\t88, 255, 126, 66, 15, 145, 135, 178, 95, 175, 9, 148, 188,\n\t\t201, 121, 50, 188, 86, 92, 79, 189, 57, 106, 69, 181, 203,\n\t\t93, 193, 129, 68, 130, 75, 118, 31, 163, 51, 132, 223, 107,\n\t\t13, 57, 50, 198, 181, 86, 222, 254, 73, 52, 238, 254, 173,\n\t\t51, 200, 162, 63, 7, 231, 157, 78, 28, 250, 190, 39, 88, 195,\n\t\t231, 110, 240, 132, 227, 3, 126, 87, 43, 63, 35, 125, 50,\n\t\t124, 235, 214, 166, 226, 4, 251, 7, 145, 192, 55, 194, 214,\n\t\t127, 238, 118, 219, 159, 252, 100, 179, 249, 106, 151, 243,\n\t\t56, 241, 236, 21, 34, 164, 16, 12, 225, 186, 116, 34, 120,\n\t\t203, 222, 191, 67, 169, 25, 241, 90, 196, 235, 55, 155, 232,\n\t\t184, 144, 196, 46, 103, 69, 134, 193, 186, 225, 124, 38, 8,\n\t\t48, 94, 65, 215, 247, 40, 13, 206, 1, 33, 119, 180, 47, 4,\n\t\t137, 43, 68, 168, 53, 83, 231, 22, 143, 241, 135, 9, 32, 141,\n\t\t108, 202, 40, 137, 180, 110, 9, 143, 192, 139, 98, 93, 44,\n\t\t172, 35, 211, 35, 7, 176, 3, 133, 182, 46, 205, 164, 162,\n\t\t238, 131, 102, 2, 113, 198, 133, 65, 113, 215, 84, 49, 6,\n\t\t3, 252, 124, 191, 37, 185, 129, 220, 101, 19, 120, 231, 224,\n\t\t76, 251, 225, 142, 19, 83, 122, 223, 147, 79, 206, 222, 240,\n\t\t134, 7, 126, 222, 105, 188, 124, 231, 220, 54, 37, 59, 123,\n\t\t219, 23, 187, 183, 63, 212, 26, 183, 78, 126, 103, 112, 230,\n\t\t204, 64, 65, 182, 61, 185, 189, 58, 190, 1, 62, 113, 102,\n\t\t240, 87, 114, 213, 142, 183, 125, 127, 212, 154, 205, 90,\n\t\t163, 198, 112, 216, 217, 205, 6, 187, 219, 171, 147, 178,\n\t\t53, 110, 157, 25, 192, 124, 112, 230, 228, 43, 205, 149, 241,\n\t\t5, 43, 188, 250, 143, 87, 159, 131, 127, 132, 231, 172, 135,\n\t\t173, 143, 88, 31, 135, 12, 222, 0, 127, 9, 95, 135, 19, 20,\n\t\t216, 193, 2, 247, 241, 30, 252, 86, 252, 160, 101, 153, 117,\n\t\t82, 81, 112, 97, 162, 100, 228, 139, 121, 190, 16, 121, 53,\n\t\t47, 247, 119, 225, 136, 152, 149, 81, 97, 184, 59, 103, 165,\n\t\t170, 237, 250, 84, 149, 213, 76, 148, 42, 32, 194, 204, 178,\n\t\t165, 234, 136, 12, 65, 245, 105, 26, 167, 73, 29, 164, 72,\n\t\t13, 129, 103, 250, 108, 46, 12, 109, 95, 170, 102, 121, 125,\n\t\t161, 152, 170, 50, 19, 249, 34, 207, 246, 146, 88, 105, 99,\n\t\t59, 192, 44, 157, 86, 66, 233, 161, 99, 185, 38, 93, 228,\n\t\t140, 11, 101, 210, 43, 81, 42, 49, 20, 170, 24, 18, 85, 30,\n\t\t130, 54, 198, 119, 105, 170, 170, 162, 218, 192, 128, 136,\n\t\t236, 69, 43, 244, 217, 164, 72, 184, 200, 68, 126, 12, 89,\n\t\t53, 201, 179, 69, 53, 77, 205, 36, 131, 210, 165, 170, 138,\n\t\t137, 40, 22, 85, 89, 105, 3, 91, 20, 42, 153, 152, 216, 71,\n\t\t169, 50, 203, 9, 199, 32, 42, 193, 5, 28, 193, 124, 7, 22,\n\t\t60, 211, 37, 27, 130, 226, 133, 18, 59, 36, 227, 133, 137,\n\t\t155, 97, 38, 2, 230, 102, 206, 81, 233, 183, 99, 54, 228,\n\t\t101, 181, 67, 10, 85, 79, 60, 78, 143, 72, 165, 138, 169,\n\t\t202, 119, 225, 24, 114, 173, 24, 137, 66, 137, 34, 83, 137,\n\t\t150, 189, 149, 72, 184, 168, 68, 169, 118, 176, 72, 117, 246,\n\t\t106, 7, 68, 81, 137, 138, 139, 172, 44, 98, 193, 197, 14,\n\t\t112, 49, 29, 226, 52, 221, 75, 99, 99, 247, 87, 106, 8, 85,\n\t\t161, 68, 29, 147, 191, 24, 202, 164, 168, 84, 161, 102, 133,\n\t\t42, 42, 83, 81, 187, 32, 234, 105, 78, 174, 199, 3, 158, 77,\n\t\t178, 162, 172, 242, 42, 173, 39, 89, 74, 53, 4, 67, 130, 192,\n\t\t147, 82, 9, 174, 170, 196, 8, 117, 221, 3, 3, 208, 221, 178,\n\t\t42, 22, 134, 46, 43, 91, 136, 84, 5, 144, 149, 179, 162, 76,\n\t\t77, 96, 235, 249, 17, 212, 10, 120, 34, 12, 137, 214, 14,\n\t\t169, 184, 48, 10, 209, 108, 175, 42, 23, 166, 202, 205, 26,\n\t\t141, 40, 143, 65, 101, 185, 224, 106, 102, 50, 95, 204, 235,\n\t\t217, 217, 17, 24, 4, 88, 9, 127, 193, 180, 145, 230, 219,\n\t\t226, 59, 95, 245, 192, 245, 215, 65, 44, 214, 97, 64, 208,\n\t\t179, 61, 238, 70, 200, 36, 64, 52, 90, 161, 170, 107, 112,\n\t\t50, 146, 13, 208, 219, 94, 16, 95, 122, 162, 207, 219, 41,\n\t\t201, 86, 104, 131, 251, 78, 104, 3, 122, 65, 203, 181, 109,\n\t\t224, 200, 64, 40, 251, 141, 177, 244, 0, 61, 38, 16, 1, 3,\n\t\t84, 227, 102, 55, 166, 192, 8, 216, 136, 140, 18, 207, 9,\n\t\t168, 240, 133, 162, 13, 182, 30, 71, 158, 161, 136, 103, 244,\n\t\t228, 107, 46, 250, 224, 160, 235, 129, 8, 2, 151, 56, 132,\n\t\t19, 70, 40, 122, 236, 76, 186, 219, 13, 160, 33, 73, 83, 15,\n\t\t101, 29, 137, 74, 128, 208, 226, 210, 166, 232, 50, 18, 216,\n\t\t137, 227, 16, 194, 253, 200, 70, 134, 220, 165, 8, 20, 16,\n\t\t24, 48, 134, 72, 60, 119, 212, 76, 214, 199, 136, 132, 98,\n\t\t72, 128, 249, 210, 22, 60, 4, 228, 77, 65, 163, 160, 69, 29,\n\t\t230, 163, 68, 136, 17, 129, 14, 209, 129, 134, 75, 125, 223,\n\t\t109, 19, 138, 82, 114, 60, 123, 142, 56, 195, 222, 106, 160,\n\t\t246, 132, 15, 131, 107, 207, 250, 17, 229, 173, 6, 32, 107,\n\t\t54, 7, 253, 34, 87, 161, 114, 67, 108, 184, 205, 120, 216,\n\t\t218, 2, 42, 188, 244, 189, 182, 239, 120, 126, 208, 131, 118,\n\t\t212, 104, 6, 103, 124, 74, 184, 195, 3, 234, 5, 90, 207, 112,\n\t\t237, 221, 70, 115, 92, 38, 36, 64, 244, 182, 218, 98, 72,\n\t\t137, 157, 50, 238, 214, 5, 110, 141, 109, 159, 58, 140, 35,\n\t\t37, 4, 34, 55, 180, 83, 116, 46, 108, 117, 183, 128, 58, 195,\n\t\t81, 20, 173, 112, 215, 22, 198, 19, 72, 64, 203, 78, 144,\n\t\t138, 0, 228, 102, 190, 217, 39, 164, 21, 254, 131, 112, 133,\n\t\t131, 224, 113, 105, 219, 148, 192, 160, 41, 208, 102, 169,\n\t\t235, 5, 1, 99, 36, 114, 9, 111, 33, 17, 28, 128, 0, 86, 84,\n\t\t107, 24, 134, 213, 143, 210, 130, 166, 220, 245, 16, 110,\n\t\t6, 26, 250, 40, 35, 193, 29, 138, 132, 216, 65, 13, 50, 243,\n\t\t93, 68, 159, 184, 62, 243, 124, 4, 38, 40, 69, 228, 18, 168,\n\t\t214, 56, 232, 58, 113, 165, 240, 48, 104, 128, 176, 199, 141,\n\t\t54, 33, 96, 115, 138, 97, 3, 56, 128, 99, 147, 47, 114, 209,\n\t\t104, 64, 24, 184, 15, 60, 125, 112, 120, 63, 16, 72, 183,\n\t\t51, 131, 42, 100, 148, 166, 77, 187, 65, 193, 206, 7, 1, 231,\n\t\t194, 227, 92, 8, 145, 180, 211, 237, 94, 72, 124, 33, 81,\n\t\t10, 17, 51, 116, 209, 65, 74, 56, 103, 182, 86, 74, 1, 193,\n\t\t17, 118, 216, 112, 32, 10, 154, 42, 253, 110, 159, 185, 182,\n\t\t231, 80, 199, 119, 129, 72, 207, 117, 34, 25, 187, 13, 233,\n\t\t128, 16, 188, 233, 8, 20, 54, 0, 167, 141, 177, 231, 36, 148,\n\t\t34, 67, 91, 140, 87, 54, 88, 175, 225, 10, 138, 46, 103, 210,\n\t\t128, 12, 9, 101, 20, 73, 215, 109, 242, 20, 128, 70, 6, 231,\n\t\t6, 224, 52, 71, 77, 14, 72, 56, 77, 219, 65, 48, 232, 199,\n\t\t161, 212, 245, 134, 62, 161, 204, 37, 112, 138, 101, 160,\n\t\t9, 180, 144, 9, 223, 75, 165, 20, 131, 85, 125, 152, 3, 141,\n\t\t188, 28, 28, 230, 17, 143, 156, 252, 31, 94, 51, 150, 61,\n\t\t234, 132, 192, 156, 208, 163, 174, 82, 68, 134, 14, 111, 244,\n\t\t1, 89, 43, 58, 80, 145, 75, 196, 96, 164, 120, 130, 196, 13,\n\t\t8, 111, 248, 45, 199, 69, 34, 210, 176, 67, 101, 187, 19,\n\t\t55, 206, 52, 1, 169, 243, 21, 127, 133, 52, 66, 69, 144, 18,\n\t\t63, 110, 70, 186, 75, 247, 130, 213, 173, 40, 34, 208, 14,\n\t\t211, 36, 6, 150, 134, 180, 29, 193, 86, 151, 216, 54, 18,\n\t\t201, 3, 202, 192, 118, 16, 192, 33, 132, 157, 46, 54, 75,\n\t\t209, 235, 167, 209, 230, 46, 87, 138, 104, 19, 32, 1, 74,\n\t\t25, 167, 2, 57, 12, 72, 191, 23, 80, 26, 17, 225, 245, 199,\n\t\t123, 246, 173, 232, 114, 159, 59, 12, 124, 244, 9, 18, 159,\n\t\t191, 157, 217, 107, 174, 23, 70, 123, 51, 87, 58, 126, 39,\n\t\t162, 52, 241, 4, 16, 2, 44, 116, 128, 136, 128, 2, 5, 46,\n\t\t97, 74, 48, 224, 100, 31, 25, 177, 35, 1, 192, 61, 207, 37,\n\t\t32, 92, 66, 244, 221, 27, 237, 134, 203, 128, 80, 87, 241,\n\t\t152, 19, 144, 118, 128, 232, 58, 30, 65, 91, 220, 192, 5,\n\t\t128, 228, 190, 80, 54, 21, 13, 215, 17, 28, 28, 19, 124, 25,\n\t\t80, 119, 57, 173, 147, 55, 175, 62, 7, 79, 194, 115, 214,\n\t\t155, 172, 127, 101, 89, 108, 8, 106, 101, 98, 38, 158, 211,\n\t\t170, 92, 24, 136, 107, 17, 160, 72, 103, 73, 166, 15, 150,\n\t\t106, 170, 13, 164, 35, 49, 47, 139, 121, 158, 109, 64, 166,\n\t\t213, 247, 217, 10, 23, 134, 20, 194, 4, 183, 94, 206, 66,\n\t\t171, 233, 44, 85, 217, 98, 58, 155, 22, 123, 203, 24, 118,\n\t\t73, 218, 55, 4, 41, 179, 105, 154, 167, 90, 94, 24, 194, 22,\n\t\t82, 108, 130, 153, 193, 134, 71, 128, 193, 201, 207, 114,\n\t\t0, 42, 158, 146, 33, 80, 113, 6, 57, 35, 56, 121, 11, 1, 230,\n\t\t68, 12, 197, 112, 200, 36, 103, 196, 204, 63, 118, 252, 176,\n\t\t26, 49, 131, 87, 185, 171, 70, 189, 238, 5, 91, 158, 227,\n\t\t17, 49, 244, 155, 93, 63, 128, 22, 144, 183, 118, 153, 238,\n\t\t233, 132, 135, 41, 7, 136, 253, 135, 57, 249, 5, 219, 182,\n\t\t93, 219, 165, 136, 17, 33, 146, 11, 130, 210, 93, 39, 68,\n\t\t196, 116, 100, 115, 103, 192, 129, 242, 198, 183, 166, 12,\n\t\t208, 97, 190, 207, 72, 63, 102, 134, 39, 249, 194, 173, 110,\n\t\t236, 7, 220, 70, 14, 12, 60, 167, 219, 32, 204, 101, 212,\n\t\t117, 108, 0, 136, 156, 228, 198, 209, 246, 65, 10, 60, 233,\n\t\t209, 14, 175, 163, 41, 119, 174, 45, 32, 38, 4, 126, 147,\n\t\t232, 127, 0, 112, 198, 145, 42, 81, 178, 255, 58, 4, 180,\n\t\t172, 200, 240, 231, 127, 214, 216, 14, 63, 102, 125, 29, 58,\n\t\t112, 63, 252, 107, 248, 51, 36, 152, 227, 45, 248, 77, 34,\n\t\t72, 151, 172, 144, 109, 178, 111, 89, 173, 180, 166, 1, 211,\n\t\t98, 52, 219, 161, 139, 201, 33, 204, 13, 139, 152, 22, 217,\n\t\t138, 23, 123, 59, 144, 37, 123, 71, 176, 95, 170, 105, 194,\n\t\t5, 55, 113, 138, 138, 26, 29, 102, 108, 168, 84, 77, 99, 177,\n\t\t1, 249, 98, 62, 59, 7, 75, 241, 53, 201, 242, 202, 4, 18,\n\t\t220, 139, 247, 135, 104, 154, 235, 16, 230, 70, 210, 78, 147,\n\t\t189, 52, 137, 207, 67, 94, 76, 117, 18, 220, 95, 112, 49,\n\t\t89, 228, 197, 124, 54, 173, 242, 66, 229, 250, 134, 133, 105,\n\t\t109, 221, 27, 166, 73, 108, 4, 235, 60, 47, 38, 201, 94, 186,\n\t\t31, 215, 16, 181, 218, 243, 171, 172, 166, 135, 80, 214, 198,\n\t\t28, 23, 90, 73, 55, 129, 72, 117, 17, 50, 227, 20, 157, 114,\n\t\t193, 7, 160, 226, 217, 180, 56, 130, 33, 206, 82, 3, 96, 159,\n\t\t28, 26, 154, 11, 19, 2, 228, 8, 103, 211, 100, 47, 9, 48,\n\t\t230, 251, 129, 62, 92, 170, 108, 98, 188, 238, 22, 243, 98,\n\t\t178, 168, 150, 209, 16, 181, 129, 62, 173, 143, 205, 171,\n\t\t217, 84, 100, 60, 137, 117, 182, 194, 32, 235, 116, 85, 108,\n\t\t64, 146, 38, 177, 214, 63, 215, 184, 200, 77, 24, 86, 227,\n\t\t84, 107, 10, 151, 241, 125, 46, 226, 180, 84, 169, 216, 219,\n\t\t132, 73, 141, 206, 156, 79, 13, 98, 114, 182, 204, 183, 218,\n\t\t155, 77, 83, 145, 77, 12, 232, 210, 4, 151, 19, 147, 162,\n\t\t172, 166, 179, 50, 77, 98, 17, 79, 22, 243, 60, 203, 179,\n\t\t201, 0, 226, 170, 156, 149, 73, 204, 139, 189, 69, 158, 229,\n\t\t60, 137, 147, 62, 166, 179, 180, 172, 202, 169, 78, 168, 239,\n\t\t55, 159, 149, 139, 178, 72, 147, 62, 238, 243, 137, 110, 143,\n\t\t37, 161, 219, 124, 81, 170, 88, 212, 116, 139, 106, 106, 160,\n\t\t237, 73, 189, 128, 82, 38, 41, 159, 108, 194, 36, 55, 87,\n\t\t234, 199, 156, 157, 131, 34, 158, 77, 235, 252, 206, 195,\n\t\t180, 172, 139, 153, 153, 37, 150, 84, 236, 101, 60, 225, 228,\n\t\t28, 204, 142, 160, 218, 252, 208, 36, 217, 235, 67, 218, 199,\n\t\t26, 14, 88, 228, 251, 249, 98, 190, 63, 175, 230, 155, 48,\n\t\t196, 34, 54, 133, 51, 142, 57, 177, 138, 13, 25, 117, 185,\n\t\t224, 75, 46, 164, 124, 23, 38, 177, 153, 223, 210, 201, 230,\n\t\t139, 29, 208, 85, 91, 112, 241, 167, 191, 207, 40, 181, 31,\n\t\t123, 28, 73, 122, 120, 118, 127, 136, 196, 253, 109, 110,\n\t\t63, 244, 208, 72, 18, 207, 135, 241, 24, 36, 236, 164, 128,\n\t\t255, 1, 185, 239, 217, 50, 192, 16, 107, 178, 219, 33, 173,\n\t\t97, 53, 64, 128, 176, 61, 233, 65, 164, 135, 187, 68, 248,\n\t\t128, 140, 115, 142, 128, 159, 89, 63, 3, 28, 129, 20, 89,\n\t\t116, 191, 65, 202, 127, 203, 252, 251, 238, 117, 48, 95, 167,\n\t\t116, 163, 0, 144, 155, 15, 146, 26, 138, 229, 244, 128, 2,\n\t\t101, 14, 2, 141, 252, 62, 167, 190, 99, 192, 73, 188, 229,\n\t\t212, 209, 19, 145, 173, 0, 128, 29, 11, 102, 112, 127, 173,\n\t\t95, 228, 142, 43, 125, 179, 158, 64, 73, 103, 226, 144, 126,\n\t\t215, 115, 0, 107, 104, 208, 230, 14, 193, 228, 145, 150, 89,\n\t\t217, 160, 36, 149, 66, 112, 164, 182, 164, 28, 9, 33, 45,\n\t\t70, 141, 104, 69, 100, 9, 179, 181, 156, 162, 6, 130, 6, 208,\n\t\t32, 184, 41, 150, 82, 75, 11, 61, 162, 133, 56, 161, 156,\n\t\t80, 196, 174, 89, 84, 106, 234, 115, 134, 160, 141, 19, 146,\n\t\t214, 161, 29, 17, 2, 196, 199, 244, 247, 138, 46, 13, 161,\n\t\t6, 118, 24, 214, 144, 66, 15, 16, 93, 3, 235, 99, 147, 122,\n\t\t117, 138, 0, 17, 205, 144, 209, 166, 96, 136, 192, 19, 55,\n\t\t4, 219, 7, 4, 194, 128, 56, 194, 128, 239, 1, 115, 131, 179,\n\t\t3, 14, 8, 205, 62, 71, 12, 164, 193, 39, 214, 53, 17, 235,\n\t\t199, 36, 160, 5, 169, 248, 148, 92, 135, 255, 31, 253, 51,\n\t\t53, 231, 3, 120, 8, 248, 105, 120, 229, 35, 175, 32, 50, 36,\n\t\t76, 184, 196, 197, 215, 131, 231, 131, 75, 66, 66, 29, 70,\n\t\t193, 246, 164, 164, 148, 220, 131, 156, 131, 224, 191, 207,\n\t\t145, 194, 115, 239, 66, 96, 239, 249, 118, 10, 252, 220, 1,\n\t\t248, 217, 184, 223, 0, 132, 63, 237, 17, 228, 111, 37, 241,\n\t\t217, 202, 227, 192, 216, 215, 206, 86, 8, 240, 178, 28, 192,\n\t\t6, 223, 105, 33, 244, 184, 110, 76, 227, 250, 236, 223, 224,\n\t\t25, 88, 130, 232, 181, 76, 0, 207, 14, 71, 112, 205, 154,\n\t\t96, 23, 224, 230, 91, 0, 248, 13, 135, 95, 99, 153, 110, 234,\n\t\t98, 120, 215, 15, 1, 185, 238, 22, 206, 111, 187, 254, 182,\n\t\t202, 212, 168, 81, 122, 1, 222, 9, 136, 194, 23, 97, 160,\n\t\t133, 82, 76, 16, 110, 221, 7, 194, 24, 181, 109, 227, 170,\n\t\t144, 74, 100, 182, 107, 107, 221, 1, 17, 134, 80, 227, 221,\n\t\t128, 180, 76, 99, 133, 132, 14, 133, 19, 175, 32, 56, 14,\n\t\t1, 194, 41, 69, 78, 213, 32, 153, 92, 214, 61, 223, 29, 80,\n\t\t83, 65, 129, 32, 212, 147, 20, 144, 174, 153, 192, 252, 64,\n\t\t115, 134, 36, 164, 166, 15, 56, 128, 142, 99, 106, 210, 208,\n\t\t190, 179, 154, 250, 29, 137, 96, 103, 244, 206, 46, 69, 138,\n\t\t235, 4, 12, 161, 95, 1, 132, 210, 155, 150, 14, 28, 210, 244,\n\t\t125, 140, 140, 107, 128, 228, 38, 178, 49, 71, 66, 13, 86,\n\t\t67, 247, 117, 166, 187, 234, 236, 13, 160, 117, 60, 68, 129,\n\t\t44, 245, 29, 125, 7, 125, 218, 5, 194, 229, 136, 7, 111, 214,\n\t\t57, 175, 72, 10, 96, 24, 23, 56, 65, 232, 199, 4, 200, 57,\n\t\t74, 8, 139, 2, 163, 211, 233, 26, 165, 39, 95, 96, 143, 49,\n\t\t96, 210, 113, 109, 1, 148, 224, 8, 113, 196, 24, 56, 57, 194,\n\t\t236, 220, 103, 8, 162, 112, 59, 250, 141, 232, 134, 109, 134,\n\t\t156, 174, 18, 150, 115, 144, 188, 199, 191, 16, 74, 241, 8,\n\t\t3, 46, 128, 233, 59, 171, 136, 59, 86, 98, 89, 214, 253, 248,\n\t\t12, 228, 214, 196, 42, 172, 43, 214, 83, 214, 183, 91, 255,\n\t\t194, 250, 97, 235, 79, 173, 175, 89, 255, 29, 20, 20, 112,\n\t\t0, 183, 193, 125, 240, 32, 60, 1, 255, 10, 62, 6, 63, 9, 191,\n\t\t103, 89, 107, 134, 140, 42, 86, 121, 85, 136, 121, 121, 12,\n\t\t105, 204, 147, 178, 210, 246, 33, 215, 67, 157, 182, 120,\n\t\t203, 88, 148, 133, 138, 121, 145, 86, 60, 95, 112, 109, 241,\n\t\t150, 121, 177, 3, 7, 176, 3, 139, 216, 32, 176, 147, 88, 237,\n\t\t165, 74, 11, 171, 178, 24, 130, 72, 171, 121, 81, 166, 218,\n\t\t242, 20, 218, 190, 63, 130, 153, 216, 59, 134, 169, 202, 69,\n\t\t46, 114, 53, 77, 147, 56, 155, 20, 213, 162, 40, 85, 186,\n\t\t152, 139, 181, 98, 126, 4, 74, 203, 129, 124, 191, 52, 19,\n\t\t37, 250, 30, 92, 149, 197, 44, 215, 5, 152, 23, 121, 21, 167,\n\t\t73, 141, 220, 143, 83, 145, 38, 211, 42, 21, 101, 46, 22,\n\t\t185, 40, 21, 159, 37, 51, 158, 149, 11, 158, 25, 94, 250,\n\t\t106, 82, 148, 42, 23, 83, 197, 69, 185, 159, 139, 35, 52,\n\t\t92, 118, 213, 94, 149, 228, 153, 200, 51, 109, 6, 47, 246,\n\t\t202, 153, 54, 101, 217, 16, 140, 10, 65, 55, 48, 171, 22,\n\t\t197, 108, 81, 152, 104, 30, 198, 107, 253, 8, 15, 97, 190,\n\t\t131, 217, 68, 156, 35, 71, 116, 145, 45, 230, 59, 184, 129,\n\t\t153, 74, 102, 194, 164, 85, 89, 50, 19, 213, 116, 136, 117,\n\t\t212, 36, 93, 254, 50, 159, 240, 180, 72, 148, 57, 47, 84,\n\t\t85, 204, 138, 188, 72, 13, 209, 19, 38, 229, 140, 39, 21,\n\t\t87, 124, 19, 202, 170, 212, 90, 69, 178, 119, 14, 143, 112,\n\t\t190, 131, 147, 156, 171, 153, 72, 180, 210, 184, 188, 118,\n\t\t8, 106, 81, 44, 163, 27, 149, 197, 116, 121, 235, 36, 23,\n\t\t229, 172, 118, 56, 208, 10, 104, 10, 231, 152, 160, 4, 92,\n\t\t14, 104, 48, 216, 68, 34, 165, 146, 72, 201, 129, 131, 189,\n\t\t202, 16, 67, 201, 25, 37, 49, 99, 70, 123, 212, 131, 38, 49,\n\t\t48, 79, 102, 94, 107, 202, 106, 56, 51, 99, 178, 112, 125,\n\t\t215, 54, 112, 81, 134, 6, 217, 41, 153, 111, 179, 191, 233,\n\t\t173, 156, 111, 247, 165, 236, 201, 221, 221, 147, 111, 82,\n\t\t112, 236, 6, 147, 68, 219, 199, 122, 20, 54, 239, 133, 48,\n\t\t193, 34, 40, 161, 129, 17, 38, 88, 135, 53, 174, 145, 160,\n\t\t4, 181, 144, 224, 4, 180, 249, 109, 80, 172, 148, 73, 134,\n\t\t200, 25, 128, 0, 70, 187, 64, 96, 67, 15, 252, 140, 32, 51,\n\t\t48, 107, 66, 9, 158, 252, 153, 99, 59, 200, 152, 45, 2, 79,\n\t\t217, 210, 117, 229, 217, 64, 93, 3, 146, 11, 74, 80, 10, 73,\n\t\t0, 165, 22, 36, 6, 17, 75, 153, 96, 18, 30, 57, 8, 94, 46,\n\t\t196, 133, 96, 190, 22, 124, 54, 106, 251, 156, 123, 157, 40,\n\t\t29, 112, 49, 72, 90, 65, 152, 133, 225, 109, 98, 67, 108,\n\t\t109, 243, 36, 230, 27, 23, 36, 136, 149, 142, 32, 68, 155,\n\t\t200, 4, 193, 13, 51, 74, 177, 197, 136, 17, 77, 6, 115, 253,\n\t\t95, 10, 145, 226, 22, 138, 66, 136, 17, 158, 33, 79, 133,\n\t\t13, 164, 205, 80, 216, 45, 109, 191, 24, 7, 36, 66, 108, 110,\n\t\t34, 131, 74, 20, 95, 164, 4, 8, 5, 39, 66, 164, 134, 232,\n\t\t131, 18, 70, 8, 101, 104, 55, 93, 96, 208, 236, 232, 39, 117,\n\t\t24, 7, 138, 220, 96, 244, 25, 17, 196, 0, 122, 181, 88, 124,\n\t\t30, 155, 75, 168, 126, 34, 137, 40, 116, 229, 4, 33, 128,\n\t\t35, 25, 197, 37, 222, 88, 182, 233, 172, 151, 238, 163, 188,\n\t\t36, 241, 14, 190, 50, 102, 15, 11, 34, 109, 131, 35, 165,\n\t\t14, 167, 148, 18, 78, 93, 82, 151, 159, 162, 160, 204, 215,\n\t\t218, 182, 110, 150, 80, 143, 13, 66, 235, 218, 148, 80, 0,\n\t\t202, 106, 13, 195, 248, 0, 16, 35, 25, 13, 20, 152, 32, 39,\n\t\t6, 220, 220, 52, 93, 0, 32, 66, 138, 79, 16, 143, 114, 207,\n\t\t96, 20, 192, 30, 135, 3, 219, 13, 162, 118, 162, 107, 157,\n\t\t152, 130, 29, 152, 241, 20, 169, 65, 253, 71, 137, 125, 81,\n\t\t38, 97, 114, 224, 54, 147, 164, 233, 38, 131, 65, 114, 169,\n\t\t223, 239, 247, 237, 150, 109, 183, 174, 23, 121, 46, 238,\n\t\t225, 54, 85, 38, 130, 51, 15, 8, 231, 18, 8, 210, 130, 209,\n\t\t9, 33, 66, 10, 93, 21, 47, 179, 239, 17, 91, 108, 79, 218,\n\t\t119, 216, 180, 144, 27, 143, 67, 228, 49, 230, 71, 182, 108,\n\t\t80, 81, 227, 76, 8, 215, 242, 90, 34, 183, 233, 139, 226,\n\t\t44, 219, 86, 199, 202, 234, 25, 216, 114, 25, 241, 104, 49,\n\t\t91, 251, 103, 17, 151, 107, 222, 232, 105, 89, 45, 150, 129,\n\t\t37, 170, 217, 162, 158, 165, 85, 85, 38, 138, 76, 13, 225,\n\t\t41, 207, 227, 141, 6, 172, 55, 187, 221, 230, 201, 199, 244,\n\t\t223, 55, 168, 246, 222, 110, 71, 61, 114, 108, 187, 158, 125,\n\t\t180, 24, 143, 159, 205, 87, 6, 195, 113, 46, 7, 127, 107,\n\t\t203, 155, 109, 249, 186, 159, 58, 77, 9, 175, 107, 118, 79,\n\t\t254, 241, 150, 198, 240, 223, 14, 94, 63, 244, 236, 247, 72,\n\t\t15, 6, 249, 48, 127, 203, 135, 159, 122, 234, 195, 45, 82,\n\t\t199, 110, 122, 14, 45, 227, 175, 191, 98, 221, 98, 221, 110,\n\t\t189, 204, 178, 64, 137, 98, 150, 170, 82, 15, 114, 134, 155,\n\t\t174, 14, 19, 81, 86, 83, 227, 241, 196, 5, 87, 101, 181, 67,\n\t\t181, 177, 185, 3, 133, 1, 43, 157, 198, 115, 95, 50, 100,\n\t\t166, 37, 177, 113, 166, 170, 2, 172, 175, 126, 245, 171, 85,\n\t\t218, 58, 71, 121, 135, 135, 137, 211, 69, 244, 198, 190, 60,\n\t\t211, 145, 0, 147, 126, 231, 186, 225, 109, 191, 127, 227,\n\t\t10, 181, 165, 148, 84, 180, 19, 91, 116, 56, 246, 41, 18,\n\t\t174, 8, 33, 254, 74, 192, 115, 187, 183, 136, 147, 195, 13,\n\t\t176, 174, 90, 87, 173, 232, 27, 223, 248, 6, 252, 232, 87,\n\t\t191, 250, 213, 36, 190, 134, 242, 142, 8, 99, 167, 75, 208,\n\t\t35, 14, 207, 187, 54, 201, 147, 88, 14, 111, 127, 247, 141,\n\t\t43, 84, 154, 252, 84, 98, 139, 46, 131, 101, 126, 148, 120,\n\t\t224, 178, 53, 187, 87, 250, 129, 13, 223, 161, 179, 3, 235,\n\t\t27, 223, 248, 70, 29, 99, 201, 198, 239, 132, 167, 45, 106,\n\t\t133, 214, 212, 186, 221, 122, 181, 101, 65, 170, 68, 89, 7,\n\t\t85, 21, 92, 20, 229, 90, 154, 164, 1, 20, 113, 77, 180, 190,\n\t\t171, 205, 186, 178, 50, 124, 138, 80, 207, 4, 167, 74, 24,\n\t\t126, 166, 58, 38, 144, 225, 243, 87, 122, 180, 21, 69, 101,\n\t\t254, 234, 3, 33, 232, 221, 99, 80, 2, 126, 156, 38, 235, 193,\n\t\t239, 38, 156, 39, 92, 56, 109, 166, 224, 222, 215, 194, 27,\n\t\t127, 225, 141, 174, 253, 14, 234, 70, 64, 29, 137, 47, 127,\n\t\t197, 135, 46, 179, 224, 101, 215, 56, 77, 246, 223, 252, 161,\n\t\t148, 84, 246, 98, 112, 239, 155, 174, 210, 196, 141, 233,\n\t\t91, 104, 130, 123, 95, 121, 146, 38, 55, 28, 222, 70, 27,\n\t\t43, 9, 125, 51, 109, 209, 115, 60, 132, 190, 189, 227, 30,\n\t\t237, 178, 70, 236, 18, 36, 124, 135, 143, 246, 207, 22, 103,\n\t\t221, 212, 137, 200, 40, 112, 183, 16, 100, 72, 154, 219, 211,\n\t\t213, 89, 75, 248, 52, 9, 137, 109, 255, 30, 105, 185, 254,\n\t\t234, 138, 106, 251, 206, 22, 123, 11, 219, 26, 110, 243, 182,\n\t\t239, 14, 182, 249, 135, 163, 120, 139, 126, 59, 223, 26, 22,\n\t\t172, 25, 6, 212, 234, 90, 150, 69, 240, 189, 240, 30, 139,\n\t\t91, 125, 107, 205, 186, 215, 122, 200, 122, 157, 245, 97,\n\t\t235, 39, 172, 63, 4, 132, 13, 56, 132, 123, 224, 53, 240,\n\t\t29, 240, 195, 240, 239, 224, 11, 240, 23, 120, 47, 62, 128,\n\t\t175, 197, 111, 195, 127, 137, 31, 196, 143, 214, 108, 27,\n\t\t130, 231, 172, 102, 201, 21, 89, 89, 156, 210, 109, 76, 246,\n\t\t247, 138, 249, 49, 212, 62, 79, 211, 84, 113, 145, 138, 108,\n\t\t94, 24, 78, 76, 177, 168, 33, 242, 92, 228, 133, 9, 105, 181,\n\t\t12, 173, 152, 237, 192, 46, 28, 81, 162, 133, 171, 89, 238,\n\t\t172, 84, 161, 171, 91, 29, 105, 35, 120, 7, 138, 178, 90,\n\t\t232, 190, 152, 229, 197, 66, 155, 178, 213, 14, 100, 11, 46,\n\t\t146, 82, 13, 9, 79, 170, 197, 100, 7, 138, 69, 169, 22, 69,\n\t\t198, 133, 154, 205, 143, 96, 150, 138, 100, 175, 170, 97,\n\t\t110, 213, 68, 36, 211, 17, 100, 123, 92, 204, 119, 97, 49,\n\t\t17, 83, 21, 15, 33, 73, 13, 185, 236, 124, 7, 246, 171, 178,\n\t\t82, 105, 61, 89, 159, 5, 160, 15, 45, 74, 53, 47, 247, 51,\n\t\t125, 195, 69, 169, 102, 121, 177, 224, 34, 75, 245, 101, 74,\n\t\t36, 229, 172, 42, 23, 218, 70, 51, 97, 104, 230, 213, 92,\n\t\t219, 133, 59, 192, 51, 161, 116, 165, 24, 120, 168, 54, 138,\n\t\t213, 1, 236, 47, 12, 129, 112, 181, 216, 171, 184, 126, 239,\n\t\t170, 52, 17, 102, 129, 162, 50, 118, 102, 181, 131, 33, 84,\n\t\t121, 86, 211, 166, 231, 134, 226, 49, 95, 148, 251, 147, 188,\n\t\t24, 0, 15, 97, 170, 210, 253, 133, 190, 108, 170, 246, 18,\n\t\t145, 76, 135, 80, 112, 99, 148, 238, 235, 44, 242, 178, 58,\n\t\t194, 42, 47, 68, 26, 66, 206, 85, 181, 216, 129, 218, 43,\n\t\t123, 146, 87, 25, 79, 134, 80, 199, 116, 153, 234, 164, 133,\n\t\t214, 85, 66, 52, 147, 236, 233, 49, 236, 96, 80, 27, 253,\n\t\t188, 152, 47, 10, 49, 196, 89, 77, 52, 170, 82, 17, 139, 106,\n\t\t182, 131, 89, 46, 42, 81, 152, 181, 11, 181, 151, 229, 38,\n\t\t116, 107, 161, 68, 145, 42, 81, 8, 165, 207, 9, 179, 151,\n\t\t27, 106, 53, 253, 58, 28, 161, 218, 51, 16, 27, 221, 108,\n\t\t162, 74, 85, 33, 246, 84, 202, 133, 42, 171, 130, 23, 249,\n\t\t46, 42, 81, 86, 133, 224, 162, 154, 8, 85, 84, 66, 55, 221,\n\t\t154, 42, 103, 58, 215, 35, 72, 139, 233, 144, 36, 177, 48,\n\t\t42, 80, 54, 169, 27, 154, 105, 181, 199, 140, 86, 34, 173,\n\t\t233, 53, 213, 66, 107, 141, 147, 252, 255, 116, 93, 199, 113,\n\t\t83, 120, 128, 94, 179, 249, 208, 189, 90, 1, 126, 229, 183,\n\t\t236, 156, 67, 160, 240, 111, 68, 8, 128, 182, 156, 189, 241,\n\t\t39, 92, 162, 5, 62, 74, 73, 35, 47, 160, 36, 101, 84, 120,\n\t\t253, 244, 194, 53, 55, 189, 123, 11, 250, 79, 149, 32, 59,\n\t\t55, 92, 120, 227, 70, 195, 243, 155, 18, 25, 143, 92, 164,\n\t\t65, 199, 115, 109, 131, 33, 99, 84, 107, 11, 68, 2, 5, 163,\n\t\t88, 3, 66, 195, 38, 72, 37, 33, 112, 22, 144, 115, 135, 16,\n\t\t80, 90, 180, 81, 240, 161, 90, 250, 158, 160, 225, 37, 112,\n\t\t8, 32, 145, 104, 124, 174, 141, 37, 136, 96, 27, 54, 202,\n\t\t220, 216, 91, 168, 197, 45, 24, 199, 25, 95, 11, 231, 192,\n\t\t53, 126, 99, 0, 145, 112, 5, 98, 179, 118, 200, 214, 183,\n\t\t12, 18, 159, 145, 192, 231, 20, 133, 176, 181, 129, 194, 61,\n\t\t182, 233, 70, 136, 177, 68, 214, 68, 12, 93, 198, 64, 64,\n\t\t171, 9, 54, 48, 219, 115, 129, 72, 18, 66, 224, 187, 1, 69,\n\t\t206, 3, 134, 122, 68, 215, 154, 24, 151, 134, 167, 205, 56,\n\t\t32, 163, 182, 67, 28, 30, 104, 125, 46, 160, 72, 136, 139,\n\t\t132, 19, 17, 161, 64, 137, 237, 132, 16, 71, 203, 120, 99,\n\t\t102, 107, 107, 216, 184, 37, 1, 33, 41, 80, 219, 184, 180,\n\t\t161, 214, 188, 24, 25, 72, 160, 158, 199, 180, 94, 130, 92,\n\t\t34, 97, 72, 93, 234, 11, 193, 180, 57, 28, 222, 122, 199,\n\t\t218, 13, 215, 37, 19, 91, 203, 84, 207, 135, 200, 37, 216,\n\t\t114, 213, 121, 214, 64, 50, 24, 54, 2, 239, 65, 10, 62, 163,\n\t\t221, 245, 150, 215, 232, 58, 68, 210, 222, 136, 1, 17, 8,\n\t\t212, 91, 89, 237, 123, 253, 85, 182, 49, 36, 19, 84, 128,\n\t\t140, 52, 19, 112, 16, 91, 14, 30, 250, 170, 167, 181, 157,\n\t\t116, 184, 70, 59, 87, 238, 185, 225, 250, 237, 219, 55, 213,\n\t\t201, 147, 68, 80, 251, 123, 220, 148, 52, 220, 222, 117, 111,\n\t\t184, 48, 83, 0, 91, 23, 223, 114, 253, 193, 20, 100, 80, 65,\n\t\t72, 133, 161, 20, 116, 184, 115, 173, 36, 196, 182, 9, 29,\n\t\t83, 221, 60, 143, 218, 81, 40, 237, 209, 141, 129, 232, 172,\n\t\t19, 126, 167, 235, 224, 45, 46, 219, 26, 120, 242, 83, 82,\n\t\t184, 61, 34, 224, 199, 222, 114, 25, 137, 203, 184, 205, 132,\n\t\t19, 245, 29, 240, 226, 78, 36, 157, 228, 140, 45, 66, 213,\n\t\t143, 91, 253, 209, 254, 45, 215, 220, 245, 120, 128, 118,\n\t\t103, 154, 15, 79, 254, 40, 140, 90, 62, 143, 133, 32, 223,\n\t\t43, 89, 111, 192, 111, 121, 127, 61, 185, 33, 181, 117, 70,\n\t\t16, 185, 13, 181, 3, 36, 16, 176, 5, 0, 17, 30, 229, 128,\n\t\t99, 128, 32, 52, 62, 93, 142, 86, 59, 112, 136, 144, 2, 33,\n\t\t137, 129, 101, 82, 219, 180, 130, 214, 132, 61, 31, 72, 237,\n\t\t55, 200, 77, 44, 42, 155, 50, 148, 245, 236, 166, 86, 116,\n\t\t205, 189, 184, 214, 25, 235, 112, 0, 196, 113, 8, 5, 186,\n\t\t109, 116, 59, 6, 72, 3, 1, 49, 218, 196, 150, 16, 145, 192,\n\t\t102, 28, 153, 214, 77, 27, 182, 11, 77, 221, 193, 133, 173,\n\t\t91, 146, 75, 238, 57, 244, 78, 32, 149, 96, 90, 185, 12, 7,\n\t\t130, 187, 186, 125, 221, 166, 248, 54, 18, 114, 23, 89, 200,\n\t\t164, 112, 0, 187, 250, 54, 142, 83, 135, 4, 160, 166, 225,\n\t\t0, 94, 25, 174, 25, 239, 71, 164, 212, 27, 10, 25, 9, 17,\n\t\t80, 198, 187, 14, 60, 96, 162, 88, 19, 253, 26, 49, 67, 116,\n\t\t67, 25, 211, 85, 16, 105, 141, 18, 185, 107, 144, 50, 82,\n\t\t226, 134, 67, 184, 141, 210, 181, 109, 27, 208, 37, 4, 3,\n\t\t221, 219, 66, 154, 104, 221, 146, 3, 23, 187, 215, 247, 96,\n\t\t237, 240, 186, 4, 37, 14, 14, 165, 235, 2, 163, 222, 38, 6,\n\t\t52, 242, 87, 237, 13, 54, 112, 8, 109, 251, 35, 231, 188,\n\t\t215, 236, 249, 92, 136, 86, 155, 235, 122, 113, 134, 43, 29,\n\t\t249, 234, 77, 255, 190, 155, 237, 27, 217, 121, 221, 81, 165,\n\t\t208, 70, 110, 197, 228, 218, 38, 167, 61, 76, 224, 78, 59,\n\t\t106, 37, 118, 1, 48, 218, 205, 94, 107, 163, 92, 207, 27,\n\t\t158, 139, 239, 30, 77, 15, 207, 247, 34, 226, 172, 223, 121,\n\t\t237, 122, 32, 41, 4, 159, 140, 34, 18, 58, 109, 128, 10, 61,\n\t\t31, 209, 247, 219, 192, 169, 91, 227, 120, 212, 213, 231,\n\t\t240, 140, 193, 93, 250, 150, 181, 230, 66, 209, 131, 106,\n\t\t198, 122, 144, 17, 1, 255, 241, 139, 191, 51, 254, 250, 23,\n\t\t171, 241, 201, 205, 63, 248, 245, 149, 223, 126, 123, 1, 15,\n\t\t157, 124, 2, 224, 135, 78, 62, 254, 224, 235, 1, 79, 190,\n\t\t21, 94, 245, 91, 150, 101, 89, 93, 11, 175, 126, 22, 175,\n\t\t131, 223, 48, 108, 119, 83, 235, 146, 245, 136, 245, 164,\n\t\t245, 157, 214, 251, 172, 255, 217, 250, 148, 245, 57, 235,\n\t\t183, 172, 63, 177, 254, 210, 250, 38, 32, 120, 240, 114, 120,\n\t\t2, 190, 3, 254, 20, 254, 30, 9, 250, 184, 135, 231, 44, 235,\n\t\t24, 12, 139, 168, 80, 133, 182, 9, 235, 61, 81, 219, 192,\n\t\t135, 48, 159, 77, 107, 112, 76, 77, 82, 103, 156, 173, 203,\n\t\t153, 152, 214, 252, 22, 218, 80, 156, 213, 251, 201, 233,\n\t\t119, 161, 82, 157, 190, 200, 94, 68, 143, 49, 128, 184, 88,\n\t\t204, 77, 162, 234, 244, 180, 136, 55, 113, 114, 92, 179, 103,\n\t\t204, 10, 85, 39, 206, 94, 184, 96, 19, 212, 11, 119, 209,\n\t\t135, 240, 37, 119, 121, 225, 220, 76, 157, 210, 242, 253,\n\t\t15, 238, 92, 83, 0, 36, 213, 105, 65, 95, 116, 157, 201, 81,\n\t\t204, 106, 199, 169, 217, 49, 12, 33, 0, 45, 49, 178, 137,\n\t\t182, 230, 141, 151, 143, 22, 189, 42, 32, 90, 92, 85, 59,\n\t\t68, 107, 123, 6, 233, 105, 188, 209, 245, 193, 73, 0, 34,\n\t\t47, 142, 96, 8, 34, 93, 11, 48, 30, 82, 195, 5, 100, 92, 121,\n\t\t140, 71, 72, 54, 129, 210, 160, 237, 243, 162, 230, 148, 55,\n\t\t161, 162, 181, 4, 222, 129, 37, 221, 179, 62, 147, 27, 229,\n\t\t102, 135, 44, 129, 245, 203, 228, 194, 104, 60, 89, 94, 4,\n\t\t168, 21, 239, 189, 217, 180, 74, 103, 53, 3, 254, 180, 170,\n\t\t93, 235, 167, 134, 6, 58, 93, 82, 222, 151, 213, 34, 157,\n\t\t165, 197, 236, 165, 117, 7, 177, 174, 132, 217, 243, 79, 106,\n\t\t66, 246, 232, 189, 99, 172, 43, 118, 114, 136, 243, 243, 56,\n\t\t29, 192, 126, 188, 137, 201, 178, 5, 48, 89, 246, 134, 170,\n\t\t152, 253, 3, 114, 129, 68, 112, 228, 231, 12, 69, 166, 228,\n\t\t200, 31, 34, 208, 104, 52, 26, 148, 80, 207, 67, 188, 68,\n\t\t105, 74, 72, 74, 105, 224, 82, 234, 246, 165, 30, 42, 164,\n\t\t9, 39, 17, 52, 60, 206, 24, 191, 211, 5, 74, 41, 122, 134,\n\t\t169, 10, 92, 42, 168, 103, 179, 123, 40, 161, 130, 210, 14,\n\t\t165, 226, 239, 16, 149, 249, 223, 138, 16, 163, 219, 194,\n\t\t16, 194, 208, 77, 146, 29, 67, 33, 228, 186, 90, 212, 5, 97,\n\t\t228, 186, 206, 107, 194, 208, 53, 83, 129, 109, 199, 113,\n\t\t156, 223, 212, 133, 226, 132, 11, 252, 218, 246, 182, 56,\n\t\t60, 219, 233, 132, 227, 201, 107, 167, 219, 235, 129, 219,\n\t\t66, 166, 58, 27, 138, 179, 86, 54, 232, 38, 118, 219, 15,\n\t\t131, 254, 254, 232, 186, 170, 221, 142, 198, 147, 135, 102,\n\t\t155, 27, 190, 211, 34, 34, 237, 156, 81, 140, 173, 95, 152,\n\t\t185, 65, 243, 228, 231, 41, 69, 212, 163, 232, 198, 166, 234,\n\t\t49, 150, 198, 189, 94, 28, 239, 220, 55, 104, 67, 158, 164,\n\t\t107, 123, 170, 207, 152, 106, 117, 123, 113, 188, 125, 223,\n\t\t80, 37, 119, 167, 136, 224, 173, 14, 27, 77, 38, 56, 33, 84,\n\t\t242, 241, 122, 179, 33, 40, 149, 44, 116, 58, 157, 241, 168,\n\t\t217, 224, 20, 88, 216, 92, 31, 235, 129, 156, 57, 130, 205,\n\t\t207, 209, 107, 206, 113, 1, 132, 32, 151, 124, 117, 181, 17,\n\t\t73, 138, 208, 136, 59, 157, 209, 168, 25, 9, 74, 72, 216,\n\t\t88, 93, 229, 54, 33, 68, 136, 39, 1, 67, 8, 17, 48, 70, 79,\n\t\t63, 38, 211, 173, 208, 127, 126, 79, 154, 234, 74, 181, 116,\n\t\t104, 153, 149, 218, 200, 35, 167, 39, 191, 46, 168, 16, 186,\n\t\t106, 151, 223, 37, 117, 130, 96, 61, 8, 60, 135, 243, 85,\n\t\t206, 141, 157, 220, 212, 146, 224, 128, 2, 33, 164, 69, 8,\n\t\t137, 91, 109, 74, 148, 34, 228, 60, 13, 60, 219, 181, 121,\n\t\t210, 59, 79, 137, 231, 17, 122, 158, 108, 12, 166, 132, 148,\n\t\t117, 0, 171, 133, 30, 181, 175, 53, 51, 3, 93, 4, 236, 29,\n\t\t235, 124, 215, 131, 249, 170, 231, 173, 186, 157, 30, 66,\n\t\t175, 167, 207, 7, 182, 11, 174, 112, 7, 43, 129, 19, 152,\n\t\t3, 74, 186, 195, 217, 178, 72, 239, 109, 236, 237, 237, 70,\n\t\t87, 54, 251, 183, 222, 76, 237, 227, 107, 93, 45, 222, 122,\n\t\t41, 99, 205, 110, 192, 8, 11, 46, 29, 17, 55, 93, 141, 135,\n\t\t211, 240, 202, 102, 255, 150, 91, 168, 125, 116, 157, 86,\n\t\t82, 116, 138, 98, 216, 127, 249, 121, 250, 12, 111, 52, 90,\n\t\t141, 40, 112, 132, 75, 39, 67, 198, 58, 125, 132, 163, 107,\n\t\t79, 202, 226, 110, 135, 189, 240, 251, 227, 237, 130, 114,\n\t\t213, 234, 185, 130, 182, 98, 96, 4, 211, 84, 210, 222, 0,\n\t\t25, 115, 29, 21, 34, 233, 142, 144, 51, 210, 239, 81, 59,\n\t\t73, 1, 88, 163, 21, 110, 110, 111, 71, 113, 12, 144, 38, 146,\n\t\t118, 7, 4, 96, 216, 67, 210, 29, 80, 132, 65, 135, 218, 73,\n\t\t2, 8, 188, 249, 32, 204, 131, 96, 14, 48, 117, 221, 41, 220,\n\t\t179, 124, 162, 0, 234, 29, 224, 109, 83, 53, 199, 70, 25,\n\t\t51, 21, 244, 240, 178, 33, 44, 139, 88, 29, 203, 130, 63,\n\t\t135, 103, 44, 180, 152, 229, 88, 22, 204, 26, 64, 26, 35,\n\t\t200, 138, 12, 14, 62, 121, 242, 71, 159, 252, 218, 19, 183,\n\t\t13, 95, 86, 147, 96, 235, 207, 247, 254, 183, 139, 117, 60,\n\t\t111, 188, 250, 199, 40, 225, 19, 22, 183, 66, 171, 105, 89,\n\t\t213, 138, 90, 153, 228, 197, 90, 26, 2, 232, 209, 72, 100,\n\t\t21, 194, 249, 243, 39, 127, 230, 247, 56, 252, 102, 163, 117,\n\t\t230, 228, 234, 125, 126, 143, 31, 254, 249, 91, 111, 121,\n\t\t172, 225, 62, 218, 27, 223, 2, 207, 69, 238, 255, 251, 27,\n\t\t150, 101, 225, 213, 127, 188, 250, 89, 36, 240, 43, 150, 103,\n\t\t141, 44, 171, 210, 182, 215, 38, 76, 114, 67, 44, 92, 78,\n\t\t85, 43, 213, 63, 139, 29, 118, 4, 31, 155, 14, 7, 212, 254,\n\t\t89, 105, 211, 247, 208, 240, 181, 60, 162, 223, 160, 182,\n\t\t252, 25, 155, 217, 69, 50, 242, 108, 187, 243, 251, 229, 143,\n\t\t156, 151, 129, 252, 7, 9, 127, 36, 229, 201, 80, 6, 178, 121,\n\t\t219, 198, 173, 179, 91, 14, 46, 24, 172, 229, 41, 118, 244,\n\t\t216, 178, 214, 2, 24, 65, 94, 228, 137, 202, 202, 197, 60,\n\t\t132, 210, 172, 82, 85, 229, 46, 164, 42, 61, 214, 127, 94,\n\t\t180, 123, 12, 60, 225, 207, 239, 10, 62, 2, 14, 207, 112,\n\t\t64, 231, 65, 167, 197, 135, 188, 245, 56, 99, 8, 252, 241,\n\t\t134, 203, 146, 61, 71, 178, 112, 78, 132, 135, 189, 161, 227,\n\t\t242, 205, 156, 113, 119, 189, 135, 158, 168, 124, 100, 242,\n\t\t92, 147, 48, 183, 241, 216, 107, 24, 245, 179, 24, 49, 120,\n\t\t243, 99, 78, 128, 105, 28, 250, 148, 189, 74, 48, 255, 6,\n\t\t135, 160, 51, 62, 64, 38, 228, 119, 54, 153, 240, 238, 188,\n\t\t85, 122, 66, 61, 237, 72, 193, 142, 122, 204, 65, 255, 64,\n\t\t248, 76, 220, 111, 213, 107, 191, 167, 241, 68, 235, 40, 144,\n\t\t61, 43, 179, 54, 151, 113, 235, 111, 88, 206, 152, 220, 107,\n\t\t61, 104, 102, 77, 22, 162, 154, 37, 69, 165, 178, 68, 20,\n\t\t139, 16, 178, 164, 168, 146, 217, 49, 168, 68, 137, 69, 86,\n\t\t84, 179, 197, 218, 98, 38, 84, 146, 21, 107, 73, 33, 178,\n\t\t69, 85, 144, 172, 168, 138, 69, 53, 130, 36, 171, 138, 197,\n\t\t76, 85, 137, 182, 153, 178, 133, 208, 63, 68, 49, 91, 84,\n\t\t42, 41, 84, 182, 80, 213, 44, 129, 201, 232, 142, 183, 143,\n\t\t183, 179, 234, 236, 182, 235, 54, 221, 103, 206, 158, 125,\n\t\t230, 254, 59, 198, 215, 159, 125, 198, 113, 158, 57, 249,\n\t\t247, 119, 142, 175, 68, 247, 67, 127, 124, 127, 120, 255,\n\t\t232, 225, 237, 241, 197, 239, 89, 185, 227, 247, 46, 141,\n\t\t238, 15, 239, 31, 143, 239, 216, 29, 109, 127, 100, 229, 201,\n\t\t215, 159, 173, 182, 92, 247, 157, 227, 59, 87, 238, 143, 224,\n\t\t213, 163, 139, 79, 140, 70, 79, 188, 253, 172, 185, 252, 127,\n\t\t119, 182, 171, 179, 219, 206, 197, 241, 118, 82, 109, 59,\n\t\t238, 118, 251, 210, 232, 74, 120, 101, 231, 210, 248, 74,\n\t\t120, 101, 116, 242, 107, 227, 59, 110, 217, 30, 95, 124, 248,\n\t\t101, 227, 251, 163, 43, 87, 182, 199, 23, 95, 63, 126, 98,\n\t\t119, 188, 253, 209, 170, 122, 198, 117, 159, 217, 24, 191,\n\t\t108, 124, 165, 142, 171, 123, 245, 155, 87, 127, 21, 57, 252,\n\t\t178, 149, 89, 55, 107, 123, 191, 58, 98, 53, 190, 32, 132,\n\t\t154, 222, 114, 135, 6, 40, 248, 46, 228, 96, 184, 152, 106,\n\t\t175, 50, 67, 144, 107, 36, 46, 86, 123, 85, 57, 130, 20, 9,\n\t\t11, 26, 235, 171, 7, 199, 247, 238, 85, 51, 206, 200, 148,\n\t\t248, 220, 87, 197, 100, 222, 90, 9, 218, 13, 95, 6, 175, 15,\n\t\t144, 18, 230, 55, 77, 154, 253, 253, 107, 56, 197, 153, 78,\n\t\t211, 158, 157, 57, 151, 76, 146, 6, 216, 254, 235, 131, 85,\n\t\t42, 211, 238, 78, 167, 13, 113, 187, 219, 38, 30, 127, 74,\n\t\t43, 188, 220, 109, 69, 49, 5, 39, 238, 37, 129, 188, 94, 194,\n\t\t205, 117, 162, 78, 172, 218, 93, 226, 243, 167, 56, 35, 220,\n\t\t107, 199, 77, 218, 24, 13, 192, 183, 175, 147, 181, 47, 184,\n\t\t245, 253, 248, 140, 245, 215, 166, 15, 212, 236, 105, 155,\n\t\t214, 174, 53, 183, 206, 154, 88, 231, 183, 214, 158, 24, 51,\n\t\t177, 54, 19, 89, 53, 227, 155, 80, 205, 166, 90, 148, 175,\n\t\t101, 213, 140, 233, 118, 46, 205, 161, 52, 4, 109, 156, 162,\n\t\t88, 204, 196, 172, 220, 159, 137, 153, 238, 45, 179, 36, 51,\n\t\t189, 198, 92, 43, 102, 106, 38, 178, 73, 94, 253, 117, 122,\n\t\t62, 61, 249, 131, 87, 208, 203, 63, 125, 99, 154, 61, 124,\n\t\t102, 38, 40, 56, 20, 110, 62, 90, 63, 58, 185, 72, 175, 124,\n\t\t145, 137, 55, 37, 111, 75, 34, 17, 108, 219, 20, 40, 253,\n\t\t221, 75, 236, 155, 233, 249, 244, 95, 179, 251, 47, 92, 184,\n\t\t104, 211, 203, 223, 60, 87, 124, 223, 250, 185, 180, 123,\n\t\t246, 125, 233, 171, 27, 190, 248, 200, 112, 216, 228, 205,\n\t\t97, 197, 32, 96, 98, 113, 192, 121, 143, 247, 58, 78, 147,\n\t\t33, 227, 21, 231, 195, 33, 231, 67, 238, 113, 126, 105, 177,\n\t\t24, 14, 135, 193, 146, 235, 166, 125, 245, 171, 240, 23, 240,\n\t\t99, 214, 142, 101, 85, 19, 190, 63, 201, 23, 123, 165, 33,\n\t\t191, 215, 42, 207, 254, 116, 177, 87, 238, 151, 211, 33, 206,\n\t\t166, 71, 176, 63, 132, 61, 46, 246, 210, 100, 143, 103, 123,\n\t\t249, 127, 135, 251, 224, 21, 247, 94, 119, 11, 194, 24, 110,\n\t\t189, 0, 8, 143, 25, 75, 242, 166, 155, 96, 244, 65, 184, 235,\n\t\t21, 240, 202, 87, 189, 227, 0, 190, 29, 83, 5, 240, 8, 180,\n\t\t219, 248, 3, 0, 151, 46, 181, 21, 60, 186, 7, 239, 132, 227,\n\t\t247, 212, 188, 107, 247, 227, 51, 48, 54, 53, 124, 108, 221,\n\t\t110, 93, 182, 94, 109, 89, 107, 42, 211, 47, 77, 86, 19, 169,\n\t\t196, 105, 53, 11, 76, 20, 109, 67, 164, 111, 16, 173, 71,\n\t\t96, 88, 163, 166, 106, 86, 31, 80, 213, 140, 205, 118, 32,\n\t\t157, 254, 127, 180, 189, 9, 156, 36, 89, 89, 32, 254, 190,\n\t\t247, 34, 222, 139, 59, 242, 140, 168, 172, 170, 204, 170,\n\t\t202, 172, 204, 172, 234, 234, 204, 170, 202, 170, 204, 236,\n\t\t233, 158, 169, 233, 57, 153, 147, 57, 24, 142, 97, 128, 33,\n\t\t50, 51, 42, 43, 186, 50, 35, 114, 34, 34, 235, 24, 174, 225,\n\t\t28, 102, 4, 148, 251, 80, 116, 0, 1, 21, 240, 143, 127, 93,\n\t\t21, 21, 119, 16, 113, 65, 197, 3, 5, 113, 87, 4, 149, 93,\n\t\t119, 117, 119, 21, 93, 89, 20, 233, 222, 95, 68, 102, 53,\n\t\t13, 12, 63, 215, 221, 223, 118, 87, 197, 251, 226, 85, 196,\n\t\t59, 191, 247, 29, 47, 222, 247, 125, 147, 175, 55, 211, 125,\n\t\t213, 56, 194, 221, 86, 182, 93, 205, 150, 22, 96, 171, 58,\n\t\t217, 101, 101, 91, 248, 182, 214, 121, 211, 248, 67, 80, 140,\n\t\t153, 34, 126, 86, 73, 62, 165, 158, 111, 226, 205, 205, 225,\n\t\t213, 109, 101, 171, 33, 210, 66, 214, 80, 225, 237, 103, 14,\n\t\t13, 99, 231, 162, 178, 206, 85, 94, 181, 164, 106, 122, 66,\n\t\t251, 212, 153, 51, 237, 51, 15, 110, 158, 105, 52, 206, 60,\n\t\t62, 183, 82, 175, 85, 102, 103, 87, 234, 245, 202, 143, 95,\n\t\t147, 203, 41, 233, 162, 153, 82, 18, 75, 137, 114, 73, 18,\n\t\t238, 252, 197, 213, 217, 153, 108, 194, 156, 207, 228, 244,\n\t\t59, 54, 19, 51, 51, 107, 105, 184, 105, 113, 97, 97, 171,\n\t\t112, 122, 190, 184, 240, 193, 149, 250, 85, 87, 157, 46, 22,\n\t\t182, 27, 249, 252, 214, 86, 52, 254, 198, 165, 75, 151, 190,\n\t\t12, 159, 128, 247, 32, 25, 165, 208, 12, 202, 163, 101, 116,\n\t\t10, 109, 160, 22, 186, 26, 93, 143, 110, 69, 119, 161, 103,\n\t\t162, 199, 208, 27, 208, 91, 99, 43, 248, 15, 162, 143, 160,\n\t\t159, 69, 31, 139, 237, 1, 52, 152, 198, 163, 227, 183, 215,\n\t\t33, 155, 97, 85, 99, 1, 234, 192, 40, 51, 35, 105, 212, 172,\n\t\t52, 219, 213, 233, 22, 203, 83, 93, 43, 77, 150, 89, 128,\n\t\t230, 118, 187, 90, 0, 179, 178, 14, 113, 118, 59, 14, 9, 82,\n\t\t156, 196, 175, 219, 153, 88, 205, 174, 65, 145, 230, 161,\n\t\t84, 164, 198, 57, 152, 120, 244, 47, 21, 43, 37, 13, 178,\n\t\t25, 35, 62, 156, 189, 21, 189, 24, 189, 109, 152, 223, 167,\n\t\t182, 12, 51, 163, 182, 181, 218, 173, 102, 149, 178, 87, 253,\n\t\t210, 43, 225, 149, 207, 255, 41, 115, 1, 224, 113, 210, 230,\n\t\t48, 129, 54, 43, 254, 165, 32, 8, 36, 193, 216, 28, 134, 2,\n\t\t229, 75, 140, 53, 41, 87, 228, 233, 38, 79, 150, 9, 87, 39,\n\t\t164, 10, 164, 142, 241, 54, 221, 36, 109, 114, 134, 22, 83,\n\t\t4, 206, 157, 231, 232, 45, 248, 91, 186, 170, 234, 69, 97,\n\t\t205, 100, 154, 40, 139, 146, 4, 107, 59, 167, 18, 170, 154,\n\t\t88, 34, 116, 201, 228, 5, 34, 105, 26, 173, 223, 117, 189,\n\t\t40, 136, 36, 33, 208, 57, 12, 144, 167, 116, 153, 23, 91,\n\t\t60, 95, 226, 249, 13, 158, 91, 38, 124, 157, 35, 43, 164,\n\t\t209, 98, 176, 74, 8, 62, 207, 81, 120, 226, 85, 31, 123, 229,\n\t\t162, 241, 161, 231, 205, 202, 242, 25, 96, 194, 18, 71, 91,\n\t\t233, 242, 27, 1, 139, 12, 48, 55, 71, 153, 192, 17, 110, 153,\n\t\t224, 121, 142, 47, 241, 156, 73, 185, 229, 56, 228, 197, 138,\n\t\t192, 50, 84, 104, 169, 26, 40, 210, 25, 16, 232, 98, 186,\n\t\t44, 112, 252, 243, 206, 243, 228, 86, 241, 244, 76, 78, 92,\n\t\t207, 47, 240, 152, 42, 130, 168, 1, 190, 230, 244, 153, 153,\n\t\t28, 37, 235, 230, 18, 6, 77, 146, 52, 105, 103, 235, 12, 96,\n\t\t33, 210, 74, 231, 47, 151, 159, 231, 185, 18, 79, 76, 158,\n\t\t63, 41, 95, 224, 155, 138, 118, 74, 80, 68, 225, 58, 202,\n\t\t77, 252, 155, 103, 46, 61, 9, 251, 240, 36, 154, 71, 203,\n\t\t8, 65, 41, 57, 181, 83, 159, 92, 98, 107, 186, 115, 48, 177,\n\t\t237, 43, 158, 24, 26, 102, 159, 217, 120, 90, 163, 81, 42,\n\t\t53, 26, 37, 179, 106, 54, 74, 31, 42, 53, 204, 234, 217, 155,\n\t\t27, 141, 155, 27, 144, 189, 132, 74, 141, 232, 207, 55, 55,\n\t\t204, 21, 51, 122, 100, 166, 106, 54, 162, 191, 197, 118, 90,\n\t\t39, 113, 37, 205, 56, 170, 220, 58, 186, 14, 221, 250, 84,\n\t\t241, 43, 99, 85, 164, 200, 190, 79, 202, 239, 64, 29, 138,\n\t\t44, 54, 68, 211, 98, 177, 160, 61, 85, 239, 224, 181, 230,\n\t\t210, 146, 121, 241, 163, 209, 245, 171, 133, 194, 237, 241,\n\t\t207, 109, 133, 2, 220, 192, 97, 142, 73, 220, 198, 207, 55,\n\t\t56, 137, 113, 152, 59, 251, 217, 171, 11, 5, 120, 226, 228,\n\t\t89, 184, 219, 92, 186, 247, 211, 154, 246, 105, 93, 248, 162,\n\t\t174, 127, 81, 55, 98, 184, 246, 26, 93, 127, 141, 254, 247,\n\t\t156, 196, 40, 183, 186, 202, 209, 168, 0, 120, 125, 156, 137,\n\t\t208, 149, 126, 73, 116, 52, 139, 158, 254, 20, 253, 216, 174,\n\t\t156, 4, 135, 48, 27, 237, 42, 45, 85, 154, 173, 118, 171,\n\t\t142, 41, 107, 151, 216, 86, 68, 245, 35, 146, 196, 182, 226,\n\t\t35, 74, 109, 182, 213, 158, 196, 103, 211, 72, 1, 195, 219,\n\t\t147, 51, 51, 201, 139, 111, 138, 174, 143, 206, 205, 37, 20,\n\t\t34, 43, 239, 174, 232, 41, 89, 17, 65, 99, 108, 182, 80, 84,\n\t\t196, 27, 165, 197, 140, 58, 155, 90, 186, 83, 92, 52, 161,\n\t\t88, 215, 133, 218, 172, 152, 203, 82, 194, 129, 64, 120, 194,\n\t\t82, 240, 196, 73, 9, 224, 38, 103, 252, 164, 170, 38, 229,\n\t\t4, 209, 190, 180, 205, 10, 160, 208, 102, 174, 146, 2, 51,\n\t\t187, 178, 124, 87, 129, 35, 154, 240, 138, 229, 231, 203,\n\t\t166, 145, 200, 45, 246, 151, 57, 146, 145, 20, 50, 171, 229,\n\t\t244, 132, 128, 166, 241, 48, 159, 132, 191, 141, 237, 123,\n\t\t178, 8, 149, 141, 140, 14, 215, 98, 86, 169, 86, 182, 219,\n\t\t173, 72, 50, 108, 87, 25, 252, 21, 165, 183, 2, 192, 135,\n\t\t231, 191, 64, 233, 157, 239, 175, 252, 212, 239, 221, 113,\n\t\t199, 29, 191, 67, 19, 244, 54, 0, 252, 225, 252, 231, 105,\n\t\t34, 206, 125, 241, 29, 119, 220, 17, 201, 150, 72, 194, 175,\n\t\t128, 0, 221, 128, 238, 141, 202, 163, 76, 131, 120, 43, 189,\n\t\t85, 173, 196, 206, 240, 178, 6, 173, 210, 74, 187, 57, 185,\n\t\t55, 162, 219, 122, 180, 248, 205, 29, 168, 86, 90, 91, 5,\n\t\t178, 213, 216, 33, 237, 134, 193, 168, 97, 182, 248, 56, 140,\n\t\t122, 68, 99, 226, 32, 21, 248, 161, 4, 214, 180, 210, 194,\n\t\t12, 96, 102, 110, 174, 213, 54, 19, 144, 89, 169, 86, 87,\n\t\t178, 169, 205, 181, 211, 155, 105, 72, 172, 46, 207, 207,\n\t\t19, 57, 55, 191, 144, 144, 82, 205, 102, 110, 53, 147, 215,\n\t\t53, 35, 157, 45, 102, 155, 205, 148, 156, 92, 200, 95, 252,\n\t\t106, 190, 88, 158, 133, 217, 178, 90, 200, 188, 40, 117, 78,\n\t\t209, 4, 105, 62, 147, 76, 108, 24, 233, 68, 234, 52, 6, 88,\n\t\t184, 14, 224, 252, 34, 212, 210, 201, 84, 118, 29, 67, 241,\n\t\t28, 79, 78, 215, 228, 28, 129, 198, 70, 237, 89, 144, 91,\n\t\t200, 37, 162, 17, 127, 86, 109, 163, 1, 4, 86, 204, 217, 114,\n\t\t121, 86, 155, 207, 34, 132, 180, 75, 23, 47, 61, 9, 239, 132,\n\t\t95, 67, 3, 20, 162, 23, 163, 223, 64, 159, 131, 28, 44, 194,\n\t\t41, 104, 193, 14, 220, 14, 207, 134, 46, 12, 17, 42, 23, 224,\n\t\t196, 17, 80, 44, 115, 159, 120, 195, 171, 67, 235, 90, 216,\n\t\t142, 35, 73, 85, 170, 149, 246, 244, 127, 203, 108, 109, 181,\n\t\t204, 232, 218, 40, 192, 86, 171, 97, 152, 45, 51, 254, 30,\n\t\t183, 181, 209, 110, 153, 219, 173, 134, 217, 136, 88, 93,\n\t\t244, 72, 195, 108, 25, 236, 228, 127, 84, 69, 1, 178, 213,\n\t\t214, 100, 91, 159, 70, 75, 74, 3, 131, 68, 235, 169, 213,\n\t\t166, 172, 64, 218, 149, 106, 92, 89, 124, 28, 33, 78, 105,\n\t\t252, 187, 61, 1, 138, 165, 98, 179, 93, 97, 149, 54, 101,\n\t\t149, 237, 214, 38, 157, 64, 209, 111, 147, 178, 10, 139, 49,\n\t\t223, 108, 180, 154, 173, 137, 201, 1, 51, 226, 194, 34, 166,\n\t\t91, 137, 221, 17, 100, 88, 165, 106, 76, 127, 55, 12, 154,\n\t\t141, 33, 102, 26, 37, 195, 164, 19, 35, 5, 99, 242, 203, 12,\n\t\t147, 70, 153, 102, 133, 154, 70, 187, 197, 226, 152, 25, 44,\n\t\t110, 103, 108, 192, 70, 51, 102, 1, 42, 198, 164, 3, 102,\n\t\t163, 85, 221, 158, 212, 94, 128, 118, 108, 121, 156, 135,\n\t\t140, 209, 104, 153, 241, 39, 144, 248, 235, 79, 236, 95, 119,\n\t\t130, 89, 16, 234, 89, 146, 6, 137, 43, 107, 115, 185, 249,\n\t\t101, 88, 158, 207, 205, 171, 101, 78, 130, 52, 201, 234, 156,\n\t\t150, 210, 116, 172, 99, 29, 100, 34, 113, 2, 227, 69, 133,\n\t\t166, 57, 69, 208, 57, 14, 243, 20, 24, 199, 176, 44, 83, 67,\n\t\t18, 13, 6, 162, 34, 18, 6, 2, 71, 57, 77, 144, 249, 52, 175,\n\t\t138, 60, 19, 56, 137, 200, 16, 151, 96, 204, 164, 192, 44,\n\t\t155, 202, 218, 250, 217, 50, 205, 215, 151, 233, 60, 145,\n\t\t52, 156, 88, 189, 230, 198, 89, 146, 52, 18, 17, 217, 206,\n\t\t240, 60, 206, 112, 148, 203, 112, 34, 200, 130, 128, 117,\n\t\t16, 136, 130, 69, 192, 12, 51, 157, 138, 73, 194, 20, 9, 168,\n\t\t42, 17, 94, 148, 56, 34, 81, 76, 52, 188, 156, 46, 22, 102,\n\t\t102, 242, 176, 252, 122, 62, 131, 129, 202, 230, 60, 201,\n\t\t221, 120, 205, 170, 78, 116, 17, 131, 70, 48, 149, 8, 39,\n\t\t139, 148, 200, 10, 5, 73, 97, 36, 41, 81, 200, 9, 24, 162,\n\t\t118, 113, 12, 116, 194, 4, 25, 68, 46, 77, 24, 159, 193, 237,\n\t\t210, 38, 134, 250, 218, 72, 100, 58, 229, 132, 172, 38, 245,\n\t\t37, 166, 38, 150, 20, 81, 78, 212, 202, 229, 122, 158, 150,\n\t\t235, 243, 47, 205, 84, 160, 156, 78, 175, 36, 230, 111, 45,\n\t\t109, 22, 75, 155, 197, 123, 85, 44, 102, 43, 154, 44, 9, 70,\n\t\t161, 164, 72, 90, 86, 32, 130, 46, 126, 81, 42, 55, 178, 194,\n\t\t124, 126, 153, 100, 197, 249, 121, 49, 75, 150, 243, 243,\n\t\t66, 182, 81, 150, 168, 177, 152, 20, 57, 145, 83, 36, 81,\n\t\t144, 100, 81, 146, 5, 13, 4, 138, 5, 158, 196, 123, 189, 88,\n\t\t82, 23, 22, 84, 144, 226, 125, 95, 0, 204, 11, 152, 10, 160,\n\t\t9, 178, 36, 202, 146, 32, 74, 10, 39, 114, 106, 105, 17, 155,\n\t\t69, 141, 195, 229, 234, 11, 204, 245, 53, 117, 102, 253, 20,\n\t\t44, 72, 185, 2, 91, 202, 148, 230, 100, 157, 199, 128, 73,\n\t\t124, 40, 142, 114, 88, 226, 0, 152, 0, 88, 199, 132, 96, 145,\n\t\t2, 8, 18, 80, 204, 19, 10, 28, 6, 138, 25, 97, 68, 228, 57,\n\t\t94, 192, 12, 235, 48, 0, 83, 146, 83, 144, 144, 85, 67, 157,\n\t\t120, 158, 195, 9, 125, 190, 152, 89, 98, 133, 156, 196, 64,\n\t\t199, 12, 11, 60, 199, 139, 132, 197, 177, 217, 49, 193, 148,\n\t\t240, 152, 130, 36, 0, 80, 49, 170, 65, 199, 32, 48, 0, 78,\n\t\t194, 28, 37, 57, 90, 89, 214, 86, 202, 63, 207, 101, 202,\n\t\t139, 26, 200, 171, 203, 3, 225, 84, 34, 169, 51, 190, 154,\n\t\t54, 213, 31, 48, 213, 181, 250, 140, 186, 246, 87, 179, 162,\n\t\t40, 3, 104, 34, 151, 80, 95, 10, 198, 194, 162, 17, 93, 178,\n\t\t233, 154, 144, 56, 149, 168, 75, 28, 78, 220, 47, 45, 175,\n\t\t42, 88, 93, 168, 102, 226, 239, 239, 95, 194, 0, 239, 67,\n\t\t41, 228, 162, 15, 160, 95, 65, 191, 31, 81, 207, 201, 193,\n\t\t79, 70, 43, 237, 56, 42, 76, 187, 129, 39, 1, 90, 227, 115,\n\t\t182, 217, 216, 80, 88, 35, 205, 202, 214, 101, 223, 210, 205,\n\t\t237, 86, 179, 18, 219, 204, 151, 138, 180, 20, 71, 169, 136,\n\t\t143, 123, 51, 26, 83, 150, 104, 145, 100, 98, 175, 35, 44,\n\t\t142, 128, 83, 42, 70, 100, 168, 210, 140, 13, 71, 105, 92,\n\t\t79, 187, 21, 91, 223, 178, 162, 134, 43, 213, 138, 14, 180,\n\t\t128, 39, 47, 20, 75, 52, 166, 77, 90, 108, 40, 99, 26, 173,\n\t\t106, 195, 52, 98, 67, 187, 202, 58, 212, 227, 157, 131, 2,\n\t\t52, 90, 237, 86, 1, 226, 8, 74, 213, 141, 237, 205, 104, 53,\n\t\t23, 183, 183, 90, 112, 134, 231, 48, 39, 202, 140, 114, 4,\n\t\t115, 186, 204, 19, 14, 222, 251, 135, 111, 91, 93, 43, 18,\n\t\t0, 69, 80, 85, 192, 66, 52, 188, 58, 38, 50, 150, 48, 0, 3,\n\t\t166, 18, 78, 39, 156, 22, 205, 52, 183, 168, 37, 242, 148,\n\t\t23, 56, 134, 5, 65, 150, 153, 0, 34, 230, 121, 142, 97, 72,\n\t\t50, 146, 148, 121, 62, 99, 166, 84, 248, 61, 174, 88, 228,\n\t\t147, 177, 225, 12, 79, 121, 61, 201, 204, 21, 144, 4, 85,\n\t\t23, 91, 146, 76, 120, 105, 57, 63, 159, 32, 34, 147, 1, 212,\n\t\t219, 102, 151, 85, 179, 100, 18, 126, 227, 57, 141, 123, 94,\n\t\t247, 103, 73, 142, 136, 98, 65, 224, 4, 66, 120, 129, 16,\n\t\t17, 115, 34, 75, 221, 164, 164, 133, 148, 34, 176, 20, 144,\n\t\t69, 0, 113, 61, 222, 193, 97, 60, 0, 37, 178, 192, 56, 204,\n\t\t67, 240, 182, 11, 183, 159, 151, 52, 32, 128, 49, 79, 64,\n\t\t214, 39, 62, 143, 33, 203, 241, 42, 167, 50, 46, 1, 144, 230,\n\t\t48, 225, 120, 10, 28, 15, 179, 162, 200, 8, 38, 58, 21, 8,\n\t\t214, 152, 32, 97, 129, 98, 66, 57, 224, 112, 22, 75, 213,\n\t\t83, 23, 122, 198, 146, 144, 17, 0, 99, 145, 41, 153, 84, 101,\n\t\t137, 153, 210, 228, 100, 105, 165, 198, 107, 170, 206, 211,\n\t\t68, 54, 26, 60, 83, 55, 102, 49, 167, 202, 201, 205, 117,\n\t\t61, 183, 244, 73, 129, 199, 24, 139, 132, 231, 120, 80, 105,\n\t\t236, 251, 111, 5, 56, 198, 81, 134, 49, 71, 37, 30, 243, 177,\n\t\t143, 127, 241, 210, 87, 224, 27, 241, 222, 5, 69, 18, 210,\n\t\t80, 18, 25, 104, 22, 21, 16, 74, 183, 89, 169, 108, 86, 153,\n\t\t73, 182, 174, 133, 5, 188, 69, 210, 102, 105, 29, 248, 107,\n\t\t129, 241, 100, 29, 230, 159, 78, 31, 128, 87, 178, 71, 127,\n\t\t228, 69, 127, 246, 128, 250, 134, 107, 238, 209, 158, 251,\n\t\t149, 199, 158, 243, 92, 10, 23, 255, 4, 191, 252, 181, 176,\n\t\t252, 198, 221, 53, 40, 92, 120, 229, 235, 95, 253, 230, 95,\n\t\t250, 91, 160, 226, 187, 174, 127, 142, 120, 241, 159, 224,\n\t\t213, 7, 15, 165, 42, 27, 218, 155, 147, 23, 191, 250, 153,\n\t\t103, 32, 140, 178, 151, 158, 132, 15, 195, 39, 80, 58, 170,\n\t\t175, 156, 161, 44, 123, 18, 244, 43, 22, 64, 27, 6, 159, 41,\n\t\t192, 212, 145, 4, 124, 232, 222, 115, 2, 125, 33, 21, 206,\n\t\t221, 123, 248, 19, 135, 23, 191, 54, 191, 178, 58, 191, 182,\n\t\t181, 246, 15, 215, 60, 148, 222, 165, 130, 64, 119, 211, 15,\n\t\t93, 115, 223, 225, 225, 125, 179, 37, 65, 40, 205, 46, 150,\n\t\t203, 136, 187, 244, 45, 84, 192, 47, 129, 14, 218, 71, 135,\n\t\t232, 181, 232, 117, 8, 65, 188, 47, 158, 97, 17, 254, 78,\n\t\t252, 156, 155, 209, 66, 41, 21, 35, 30, 194, 168, 89, 170,\n\t\t115, 145, 186, 18, 71, 120, 136, 207, 112, 79, 206, 81, 79,\n\t\t195, 96, 237, 192, 228, 108, 120, 172, 93, 110, 183, 119,\n\t\t34, 166, 194, 52, 92, 61, 241, 203, 187, 67, 76, 99, 1, 50,\n\t\t70, 171, 82, 221, 40, 21, 53, 28, 7, 71, 45, 157, 68, 151,\n\t\t106, 109, 53, 104, 99, 187, 8, 127, 4, 15, 84, 82, 73, 78,\n\t\t77, 23, 55, 22, 36, 104, 207, 229, 114, 28, 71, 72, 122, 59,\n\t\t47, 229, 19, 73, 17, 115, 230, 38, 86, 196, 196, 76, 98, 198,\n\t\t196, 184, 46, 150, 43, 169, 86, 43, 43, 157, 170, 136, 122,\n\t\t122, 70, 74, 196, 158, 28, 9, 240, 138, 42, 8, 250, 44, 24,\n\t\t234, 114, 198, 72, 80, 58, 187, 108, 108, 205, 41, 188, 168,\n\t\t205, 222, 182, 124, 227, 214, 86, 242, 218, 91, 175, 174,\n\t\t47, 167, 114, 192, 52, 137, 86, 100, 29, 116, 153, 41, 76,\n\t\t151, 129, 153, 38, 220, 15, 170, 33, 93, 29, 225, 49, 201,\n\t\t100, 103, 32, 15, 58, 78, 196, 70, 53, 24, 203, 226, 204,\n\t\t34, 55, 171, 38, 133, 249, 130, 180, 184, 110, 16, 241, 166,\n\t\t74, 54, 69, 149, 116, 13, 131, 24, 123, 105, 140, 200, 170,\n\t\t76, 136, 153, 206, 233, 2, 200, 218, 70, 54, 53, 43, 99, 110,\n\t\t37, 153, 94, 46, 237, 108, 24, 115, 140, 96, 60, 179, 61,\n\t\t155, 41, 174, 3, 149, 212, 84, 66, 2, 89, 103, 138, 32, 37,\n\t\t242, 9, 132, 98, 61, 224, 211, 87, 248, 203, 91, 69, 155,\n\t\t104, 7, 221, 246, 109, 11, 245, 101, 26, 205, 118, 29, 216,\n\t\t229, 136, 230, 209, 184, 155, 134, 25, 59, 247, 163, 204,\n\t\t200, 76, 185, 125, 68, 238, 170, 26, 84, 153, 209, 222, 193,\n\t\t215, 70, 130, 69, 68, 191, 204, 150, 49, 181, 102, 223, 82,\n\t\t153, 153, 211, 152, 249, 117, 45, 37, 232, 162, 154, 18, 244,\n\t\t178, 186, 54, 83, 173, 206, 172, 169, 137, 207, 152, 76, 203,\n\t\t153, 76, 45, 151, 185, 58, 119, 239, 154, 185, 222, 192, 233,\n\t\t89, 161, 206, 149, 51, 101, 210, 88, 55, 215, 78, 194, 159,\n\t\t92, 107, 204, 70, 165, 168, 159, 77, 171, 162, 38, 198, 23,\n\t\t210, 200, 175, 204, 189, 96, 110, 37, 223, 208, 214, 222,\n\t\t174, 70, 133, 204, 26, 55, 45, 111, 195, 250, 122, 102, 213,\n\t\t212, 180, 12, 111, 195, 246, 178, 96, 100, 53, 115, 53, 187,\n\t\t129, 16, 141, 253, 78, 189, 24, 222, 139, 52, 84, 69, 231,\n\t\t208, 205, 232, 25, 104, 31, 161, 118, 115, 43, 171, 197, 72,\n\t\t190, 149, 205, 24, 173, 234, 14, 152, 217, 140, 198, 88, 93,\n\t\t104, 46, 53, 43, 26, 102, 177, 19, 145, 29, 62, 254, 110,\n\t\t148, 205, 208, 106, 182, 212, 46, 192, 14, 110, 110, 71, 26,\n\t\t132, 185, 221, 50, 179, 21, 154, 165, 5, 156, 213, 160, 218,\n\t\t52, 90, 213, 237, 58, 238, 47, 9, 133, 82, 110, 73, 211, 30,\n\t\t188, 237, 115, 15, 80, 33, 163, 46, 37, 79, 103, 102, 103,\n\t\t141, 83, 233, 5, 45, 35, 80, 216, 173, 62, 239, 190, 251,\n\t\t203, 122, 118, 243, 244, 169, 98, 181, 102, 102, 133, 207,\n\t\t201, 139, 203, 179, 235, 185, 165, 37, 194, 171, 146, 192,\n\t\t68, 133, 113, 119, 157, 203, 170, 37, 72, 102, 19, 208, 158,\n\t\t211, 151, 33, 145, 78, 190, 241, 69, 111, 224, 133, 217, 217,\n\t\t254, 158, 38, 147, 191, 92, 225, 78, 127, 41, 89, 152, 153,\n\t\t73, 100, 229, 140, 168, 200, 82, 70, 206, 38, 102, 102, 10,\n\t\t201, 47, 82, 78, 95, 91, 122, 217, 236, 202, 252, 130, 145,\n\t\t210, 211, 57, 35, 95, 124, 57, 165, 124, 181, 184, 85, 18,\n\t\t110, 122, 16, 0, 196, 153, 116, 202, 148, 48, 6, 45, 159,\n\t\t73, 230, 53, 208, 69, 85, 154, 73, 46, 100, 146, 5, 13, 39,\n\t\t69, 93, 52, 38, 58, 213, 28, 90, 196, 101, 120, 33, 154, 67,\n\t\t77, 116, 203, 36, 226, 117, 115, 135, 214, 161, 84, 209, 160,\n\t\t26, 91, 112, 70, 250, 40, 211, 40, 107, 55, 182, 150, 205,\n\t\t146, 185, 3, 109, 131, 105, 92, 121, 137, 44, 45, 183, 119,\n\t\t226, 143, 112, 49, 59, 131, 223, 158, 28, 200, 158, 58, 119,\n\t\t101, 235, 5, 78, 75, 243, 2, 153, 51, 216, 43, 212, 217, 242,\n\t\t252, 217, 234, 253, 11, 219, 243, 219, 128, 240, 175, 23,\n\t\t202, 187, 197, 57, 0, 41, 105, 46, 93, 252, 26, 252, 198,\n\t\t141, 23, 239, 135, 55, 241, 192, 75, 60, 80, 46, 157, 135,\n\t\t123, 94, 115, 203, 239, 196, 206, 250, 121, 142, 231, 226,\n\t\t111, 63, 177, 67, 126, 14, 11, 169, 38, 47, 37, 212, 124,\n\t\t250, 116, 226, 235, 48, 243, 252, 100, 9, 3, 31, 123, 182,\n\t\t125, 239, 197, 39, 127, 20, 99, 150, 78, 164, 121, 30, 203,\n\t\t198, 188, 254, 157, 241, 54, 239, 65, 247, 163, 183, 32, 84,\n\t\t142, 131, 203, 197, 236, 59, 70, 223, 117, 152, 70, 86, 106,\n\t\t79, 244, 157, 74, 187, 30, 251, 124, 110, 239, 192, 150, 25,\n\t\t137, 243, 5, 178, 16, 119, 150, 176, 98, 236, 59, 142, 110,\n\t\t54, 140, 56, 222, 137, 49, 13, 98, 215, 72, 215, 33, 182,\n\t\t148, 111, 85, 39, 20, 43, 210, 210, 138, 149, 226, 73, 69,\n\t\t140, 154, 212, 140, 29, 207, 197, 81, 190, 79, 92, 145, 182,\n\t\t119, 48, 60, 158, 200, 47, 155, 132, 101, 55, 82, 28, 6, 194,\n\t\t197, 38, 14, 132, 35, 138, 41, 201, 148, 231, 56, 166, 178,\n\t\t117, 204, 203, 60, 207, 201, 156, 100, 50, 38, 179, 136, 99,\n\t\t113, 128, 117, 85, 192, 2, 19, 1, 68, 141, 231, 129, 96, 154,\n\t\t146, 231, 82, 10, 121, 94, 188, 120, 174, 199, 186, 108, 44,\n\t\t48, 158, 44, 166, 162, 50, 168, 46, 82, 192, 148, 23, 4, 129,\n\t\t155, 79, 99, 65, 98, 130, 94, 6, 69, 224, 41, 193, 218, 76,\n\t\t70, 202, 172, 207, 10, 172, 56, 159, 73, 50, 145, 235, 115,\n\t\t201, 12, 227, 128, 7, 16, 57, 70, 73, 28, 74, 0, 43, 18, 81,\n\t\t100, 170, 113, 140, 37, 230, 229, 230, 18, 22, 103, 4, 21,\n\t\t56, 94, 18, 193, 148, 9, 48, 49, 226, 206, 179, 85, 57, 35,\n\t\t107, 152, 101, 52, 101, 46, 1, 2, 77, 102, 126, 53, 166, 6,\n\t\t23, 63, 46, 169, 17, 179, 93, 95, 156, 157, 75, 212, 52, 153,\n\t\t203, 112, 128, 9, 85, 69, 156, 197, 132, 75, 103, 103, 138,\n\t\t155, 202, 188, 161, 145, 36, 83, 37, 137, 98, 94, 73, 106,\n\t\t28, 136, 114, 52, 111, 228, 210, 151, 225, 227, 241, 57, 205,\n\t\t77, 116, 123, 188, 91, 61, 213, 76, 99, 133, 180, 90, 39,\n\t\t165, 162, 54, 141, 93, 17, 219, 190, 85, 34, 109, 12, 83,\n\t\t102, 180, 55, 10, 144, 53, 166, 126, 90, 38, 145, 219, 183,\n\t\t26, 5, 238, 43, 101, 65, 41, 21, 102, 12, 145, 125, 116, 46,\n\t\t35, 21, 158, 41, 210, 100, 66, 161, 178, 32, 242, 2, 17, 0,\n\t\t46, 136, 218, 122, 165, 90, 63, 45, 137, 171, 171, 153, 98,\n\t\t22, 207, 23, 174, 239, 137, 66, 234, 220, 102, 251, 170, 171,\n\t\t218, 155, 231, 82, 242, 133, 212, 242, 130, 174, 229, 82,\n\t\t149, 149, 219, 235, 229, 90, 66, 203, 164, 151, 151, 143,\n\t\t228, 70, 238, 182, 247, 167, 21, 131, 17, 34, 80, 133, 38,\n\t\t8, 252, 241, 76, 249, 28, 207, 109, 157, 57, 189, 122, 46,\n\t\t81, 172, 223, 80, 190, 245, 199, 210, 105, 220, 184, 123,\n\t\t103, 231, 238, 198, 226, 231, 203, 203, 56, 157, 191, 233,\n\t\t153, 8, 33, 113, 122, 174, 243, 215, 208, 181, 232, 105, 241,\n\t\t23, 138, 31, 70, 31, 64, 63, 141, 126, 1, 253, 98, 164, 141,\n\t\t226, 56, 14, 33, 51, 204, 137, 95, 114, 13, 98, 252, 156,\n\t\t112, 186, 74, 181, 24, 187, 183, 173, 180, 38, 142, 215, 205,\n\t\t19, 23, 236, 70, 172, 94, 50, 202, 118, 34, 182, 24, 199,\n\t\t243, 104, 87, 170, 180, 109, 76, 14, 125, 178, 214, 196, 70,\n\t\t43, 102, 195, 117, 92, 106, 156, 156, 30, 101, 153, 248, 244,\n\t\t30, 205, 198, 248, 95, 157, 22, 22, 59, 207, 53, 26, 59, 116,\n\t\t83, 195, 37, 35, 93, 199, 145, 228, 201, 90, 17, 114, 179,\n\t\t134, 57, 81, 6, 141, 70, 187, 98, 194, 39, 178, 5, 133, 230,\n\t\t94, 180, 80, 174, 206, 16, 202, 113, 115, 249, 197, 109, 142,\n\t\t37, 182, 75, 73, 42, 8, 98, 197, 224, 158, 157, 227, 180,\n\t\t242, 25, 108, 36, 52, 29, 102, 228, 68, 218, 152, 95, 218,\n\t\t94, 93, 227, 57, 78, 154, 93, 202, 139, 226, 96, 169, 44,\n\t\t2, 94, 199, 31, 75, 24, 201, 57, 89, 210, 63, 51, 139, 201,\n\t\t130, 44, 39, 31, 223, 92, 158, 195, 55, 118, 113, 38, 115,\n\t\t238, 12, 203, 170, 64, 212, 25, 81, 149, 183, 175, 219, 88,\n\t\t42, 242, 218, 130, 150, 1, 204, 164, 76, 154, 204, 27, 197,\n\t\t27, 175, 163, 146, 172, 85, 235, 76, 150, 69, 129, 241, 4,\n\t\t131, 178, 144, 22, 150, 185, 68, 94, 160, 170, 204, 96, 249,\n\t\t22, 38, 100, 73, 54, 139, 243, 154, 136, 129, 174, 45, 87,\n\t\t126, 225, 79, 213, 249, 153, 44, 43, 243, 107, 179, 183, 100,\n\t\t8, 225, 230, 215, 179, 156, 174, 229, 242, 2, 167, 39, 22,\n\t\t42, 231, 26, 167, 37, 70, 68, 92, 169, 99, 60, 115, 118, 86,\n\t\t197, 216, 152, 219, 225, 83, 55, 46, 50, 109, 121, 51, 121,\n\t\t74, 81, 47, 96, 69, 17, 242, 249, 53, 103, 150, 16, 61, 149,\n\t\t81, 222, 7, 137, 84, 58, 157, 18, 62, 190, 216, 92, 173, 86,\n\t\t83, 130, 74, 56, 57, 163, 155, 34, 111, 36, 147, 137, 57,\n\t\t66, 50, 119, 61, 136, 233, 109, 119, 229, 23, 176, 182, 152,\n\t\t32, 112, 246, 236, 90, 170, 122, 39, 39, 36, 244, 122, 37,\n\t\t118, 215, 28, 199, 38, 145, 210, 160, 81, 99, 30, 196, 84,\n\t\t33, 109, 242, 10, 224, 45, 72, 255, 208, 92, 85, 2, 53, 149,\n\t\t49, 47, 199, 3, 140, 247, 190, 20, 148, 155, 68, 101, 47,\n\t\t199, 81, 161, 155, 17, 230, 87, 75, 81, 2, 217, 140, 134,\n\t\t139, 237, 43, 119, 196, 150, 26, 6, 219, 174, 54, 91, 205,\n\t\t171, 161, 78, 214, 32, 121, 150, 180, 26, 17, 73, 135, 101,\n\t\t57, 45, 242, 247, 220, 163, 103, 24, 110, 220, 126, 123, 34,\n\t\t205, 137, 162, 198, 255, 246, 233, 133, 139, 95, 88, 56, 125,\n\t\t122, 1, 78, 45, 156, 118, 55, 203, 156, 148, 152, 79, 191,\n\t\t44, 93, 55, 231, 20, 93, 16, 185, 230, 107, 245, 52, 133,\n\t\t123, 196, 132, 116, 227, 45, 138, 38, 202, 58, 227, 94, 245,\n\t\t237, 231, 79, 255, 221, 85, 18, 36, 86, 56, 154, 86, 117,\n\t\t225, 226, 63, 1, 198, 144, 136, 214, 178, 114, 233, 43, 240,\n\t\t115, 240, 30, 148, 69, 107, 232, 42, 132, 202, 113, 16, 222,\n\t\t202, 181, 208, 106, 44, 192, 196, 219, 213, 2, 24, 213, 72,\n\t\t105, 249, 238, 124, 179, 124, 114, 27, 123, 204, 130, 15,\n\t\t127, 138, 8, 228, 83, 140, 69, 98, 255, 163, 68, 32, 143,\n\t\t114, 140, 91, 103, 140, 177, 167, 200, 191, 248, 246, 203,\n\t\t217, 81, 114, 131, 133, 177, 197, 113, 38, 198, 55, 196, 63,\n\t\t38, 247, 106, 142, 116, 48, 238, 144, 56, 15, 224, 6, 140,\n\t\t31, 32, 228, 1, 128, 201, 21, 113, 40, 139, 16, 252, 53, 60,\n\t\t18, 239, 240, 151, 208, 218, 229, 221, 198, 104, 200, 147,\n\t\t75, 217, 82, 36, 88, 146, 216, 45, 74, 51, 187, 213, 48, 178,\n\t\t165, 205, 237, 74, 169, 89, 128, 108, 105, 187, 82, 130, 39,\n\t\t83, 185, 92, 234, 173, 111, 189, 248, 200, 90, 46, 181, 54,\n\t\t87, 62, 15, 215, 60, 103, 237, 218, 211, 214, 227, 107, 163,\n\t\t187, 225, 145, 92, 234, 226, 23, 82, 185, 53, 56, 117, 254,\n\t\t124, 42, 119, 241, 201, 242, 44, 188, 13, 158, 189, 83, 219,\n\t\t121, 4, 30, 179, 238, 30, 197, 124, 235, 203, 240, 114, 120,\n\t\t31, 154, 69, 71, 232, 21, 8, 165, 141, 210, 41, 170, 65, 145,\n\t\t149, 218, 89, 154, 209, 96, 158, 79, 87, 98, 179, 70, 13,\n\t\t199, 219, 157, 173, 230, 230, 118, 29, 170, 27, 117, 90, 213,\n\t\t48, 171, 76, 212, 202, 234, 118, 171, 125, 150, 107, 53, 38,\n\t\t190, 72, 183, 227, 195, 208, 198, 2, 52, 10, 52, 118, 171,\n\t\t161, 177, 72, 224, 111, 199, 246, 146, 141, 106, 29, 142,\n\t\t193, 20, 211, 138, 202, 4, 46, 54, 91, 26, 2, 192, 93, 114,\n\t\t49, 175, 82, 25, 116, 49, 43, 165, 231, 168, 153, 22, 5, 85,\n\t\t86, 4, 10, 68, 200, 40, 194, 66, 43, 147, 22, 37, 208, 100,\n\t\t201, 212, 18, 162, 72, 121, 142, 96, 138, 89, 46, 187, 200,\n\t\t95, 7, 58, 75, 138, 154, 32, 128, 196, 241, 128, 101, 45,\n\t\t153, 76, 234, 50, 71, 82, 43, 183, 16, 78, 92, 224, 121, 76,\n\t\t86, 224, 106, 3, 0, 60, 0, 66, 120, 78, 96, 170, 146, 185,\n\t\t248, 201, 249, 77, 200, 81, 32, 76, 80, 212, 185, 180, 144,\n\t\t158, 137, 152, 34, 207, 36, 141, 41, 185, 60, 1, 146, 206,\n\t\t232, 107, 245, 132, 154, 154, 216, 233, 209, 244, 138, 169,\n\t\t83, 89, 34, 252, 172, 76, 128, 231, 68, 89, 151, 90, 135,\n\t\t215, 165, 11, 70, 82, 98, 4, 210, 127, 30, 155, 148, 176,\n\t\t4, 143, 56, 196, 46, 125, 25, 254, 17, 158, 64, 171, 232,\n\t\t22, 116, 140, 30, 69, 40, 221, 218, 138, 52, 227, 233, 167,\n\t\t145, 102, 236, 62, 111, 234, 69, 105, 122, 19, 229, 199, 31,\n\t\t85, 34, 5, 100, 171, 209, 54, 26, 237, 2, 180, 11, 144, 161,\n\t\t140, 46, 198, 210, 130, 209, 106, 27, 13, 90, 212, 120, 166,\n\t\t65, 129, 108, 237, 64, 211, 104, 103, 12, 243, 44, 236, 144,\n\t\t237, 74, 181, 78, 227, 67, 72, 69, 86, 143, 4, 233, 106, 54,\n\t\t83, 45, 110, 54, 217, 14, 180, 111, 89, 124, 135, 115, 87,\n\t\t98, 115, 33, 153, 45, 228, 87, 243, 154, 169, 105, 166, 150,\n\t\t95, 205, 23, 178, 201, 133, 205, 183, 176, 188, 6, 80, 74,\n\t\t38, 110, 72, 138, 203, 50, 16, 89, 62, 119, 241, 155, 87,\n\t\t107, 18, 33, 242, 178, 152, 188, 65, 207, 166, 116, 73, 225,\n\t\t227, 128, 12, 188, 42, 137, 133, 210, 211, 159, 94, 42, 48,\n\t\t65, 162, 12, 19, 130, 101, 94, 145, 244, 84, 86, 73, 137,\n\t\t198, 105, 67, 76, 61, 237, 180, 144, 55, 205, 60, 153, 85,\n\t\t224, 221, 132, 136, 103, 164, 108, 102, 161, 144, 201, 20,\n\t\t10, 25, 53, 170, 84, 141, 160, 76, 97, 33, 147, 149, 206,\n\t\t188, 68, 73, 230, 243, 249, 68, 130, 75, 63, 237, 129, 59,\n\t\t101, 77, 211, 94, 180, 91, 224, 244, 100, 62, 39, 164, 19,\n\t\t197, 212, 170, 144, 48, 84, 145, 0, 148, 115, 170, 154, 43,\n\t\t71, 76, 92, 82, 83, 138, 176, 154, 42, 38, 210, 2, 136, 18,\n\t\t33, 146, 184, 190, 170, 65, 14, 32, 7, 116, 94, 70, 8, 233,\n\t\t151, 254, 249, 210, 151, 241, 35, 177, 126, 171, 163, 28,\n\t\t186, 9, 237, 161, 199, 208, 91, 209, 207, 162, 63, 1, 9, 12,\n\t\t216, 128, 59, 96, 31, 60, 132, 218, 165, 86, 99, 171, 21,\n\t\t27, 119, 197, 94, 117, 89, 203, 204, 210, 106, 52, 244, 229,\n\t\t76, 132, 206, 85, 13, 215, 113, 149, 214, 113, 171, 93, 217,\n\t\t193, 91, 13, 35, 222, 121, 165, 102, 171, 128, 249, 237, 106,\n\t\t165, 217, 50, 204, 70, 115, 163, 181, 213, 220, 136, 213,\n\t\t69, 115, 98, 39, 86, 209, 33, 179, 25, 137, 91, 69, 150, 217,\n\t\t204, 108, 154, 198, 230, 214, 70, 36, 10, 24, 145, 8, 31,\n\t\t199, 173, 138, 45, 170, 234, 208, 222, 94, 131, 98, 30, 50,\n\t\t231, 160, 209, 108, 199, 167, 188, 162, 50, 34, 57, 173, 89,\n\t\t221, 46, 209, 82, 177, 185, 213, 104, 110, 92, 13, 117, 48,\n\t\t27, 147, 24, 86, 91, 13, 243, 28, 84, 55, 90, 155, 81, 141,\n\t\t177, 170, 52, 173, 115, 123, 179, 152, 101, 153, 45, 35, 42,\n\t\t114, 59, 18, 18, 155, 237, 70, 108, 175, 31, 71, 38, 62, 7,\n\t\t83, 231, 174, 108, 131, 110, 210, 173, 216, 223, 124, 123,\n\t\t171, 209, 52, 227, 74, 167, 71, 198, 42, 172, 249, 237, 246,\n\t\t92, 19, 149, 98, 54, 154, 173, 118, 115, 195, 92, 7, 90, 42,\n\t\t110, 111, 53, 54, 27, 166, 209, 108, 53, 91, 165, 120, 187,\n\t\t41, 122, 105, 243, 164, 217, 155, 153, 239, 110, 118, 243,\n\t\t106, 92, 135, 134, 89, 250, 199, 89, 152, 121, 92, 211, 100,\n\t\t2, 2, 247, 53, 170, 235, 148, 192, 63, 216, 231, 165, 74,\n\t\t107, 65, 42, 173, 214, 86, 138, 66, 233, 236, 130, 56, 159,\n\t\t215, 196, 194, 153, 98, 238, 172, 94, 92, 23, 18, 154, 166,\n\t\t202, 146, 200, 149, 110, 58, 83, 252, 214, 55, 146, 26, 36,\n\t\t25, 198, 0, 226, 98, 74, 21, 101, 1, 0, 11, 122, 118, 81,\n\t\t139, 20, 83, 78, 224, 41, 53, 116, 166, 230, 8, 200, 203,\n\t\t32, 1, 72, 112, 134, 201, 26, 163, 140, 37, 84, 30, 8, 8,\n\t\t66, 162, 12, 64, 138, 70, 74, 21, 68, 33, 62, 101, 42, 40,\n\t\t162, 156, 212, 36, 73, 140, 224, 187, 65, 225, 65, 6, 2, 160,\n\t\t75, 60, 17, 0, 99, 65, 196, 152, 136, 147, 99, 211, 162, 40,\n\t\t112, 88, 84, 112, 139, 166, 51, 60, 199, 209, 116, 150, 227,\n\t\t78, 233, 108, 82, 17, 199, 139, 128, 97, 29, 99, 142, 37,\n\t\t19, 64, 99, 159, 179, 9, 37, 145, 23, 24, 180, 248, 84, 150,\n\t\t195, 133, 73, 11, 88, 178, 12, 176, 60, 3, 179, 191, 169,\n\t\t65, 54, 163, 112, 156, 36, 205, 240, 36, 73, 56, 194, 1, 55,\n\t\t123, 253, 125, 90, 122, 78, 214, 205, 37, 13, 18, 37, 147,\n\t\t229, 54, 175, 58, 155, 44, 236, 52, 22, 243, 153, 18, 230,\n\t\t168, 32, 202, 10, 77, 72, 165, 107, 111, 84, 120, 74, 24,\n\t\t112, 192, 0, 24, 213, 20, 158, 231, 24, 5, 16, 128, 93, 19,\n\t\t155, 167, 97, 204, 137, 88, 18, 65, 228, 69, 6, 80, 228, 153,\n\t\t148, 5, 184, 11, 160, 193, 68, 166, 105, 76, 32, 209, 67,\n\t\t36, 9, 132, 167, 172, 145, 138, 11, 227, 163, 178, 120, 73,\n\t\t184, 162, 172, 179, 32, 240, 17, 64, 37, 170, 129, 0, 219,\n\t\t36, 170, 13, 19, 66, 36, 218, 2, 33, 149, 82, 148, 84, 74,\n\t\t201, 199, 225, 54, 206, 0, 204, 43, 100, 98, 153, 215, 100,\n\t\t128, 171, 0, 192, 19, 224, 121, 33, 83, 32, 176, 146, 72,\n\t\t81, 30, 242, 39, 181, 198, 166, 111, 130, 54, 253, 190, 132,\n\t\t22, 49, 130, 23, 162, 69, 116, 54, 90, 129, 145, 38, 19, 41,\n\t\t121, 241, 38, 80, 230, 50, 52, 201, 109, 85, 34, 141, 111,\n\t\t171, 177, 3, 215, 192, 118, 101, 13, 90, 219, 213, 216, 27,\n\t\t88, 68, 46, 191, 224, 175, 158, 59, 183, 250, 234, 196, 204,\n\t\t76, 226, 209, 76, 38, 190, 249, 112, 210, 52, 147, 63, 173,\n\t\t200, 242, 45, 169, 2, 185, 142, 23, 121, 89, 56, 208, 245,\n\t\t199, 150, 234, 217, 101, 227, 29, 231, 238, 61, 103, 22, 205,\n\t\t149, 73, 146, 201, 28, 41, 235, 89, 94, 164, 71, 130, 146,\n\t\t172, 39, 215, 151, 158, 48, 202, 217, 73, 251, 132, 75, 159,\n\t\t134, 111, 196, 251, 21, 143, 124, 123, 151, 162, 188, 3, 213,\n\t\t237, 10, 59, 5, 26, 101, 27, 117, 18, 187, 200, 40, 240, 113,\n\t\t152, 190, 56, 80, 93, 108, 155, 97, 70, 250, 217, 58, 84,\n\t\t34, 229, 13, 155, 19, 29, 33, 162, 234, 237, 86, 133, 21,\n\t\t169, 57, 241, 199, 140, 219, 219, 17, 181, 222, 193, 205,\n\t\t86, 133, 101, 34, 177, 185, 186, 195, 111, 181, 178, 6, 205,\n\t\t102, 140, 119, 78, 182, 50, 94, 42, 73, 144, 203, 96, 34,\n\t\t139, 186, 170, 107, 26, 213, 85, 51, 51, 167, 38, 104, 154,\n\t\t136, 132, 199, 24, 216, 92, 26, 115, 152, 211, 51, 28, 151,\n\t\t202, 21, 54, 57, 50, 163, 234, 170, 156, 149, 18, 41, 94,\n\t\t18, 164, 84, 82, 145, 48, 15, 84, 145, 19, 98, 2, 204, 84,\n\t\t117, 41, 105, 70, 88, 145, 90, 72, 73, 80, 32, 20, 248, 68,\n\t\t158, 35, 2, 83, 116, 73, 1, 38, 79, 183, 62, 0, 116, 65, 77,\n\t\t0, 38, 130, 148, 200, 228, 147, 154, 164, 112, 188, 168, 158,\n\t\t202, 17, 145, 48, 142, 242, 196, 164, 188, 12, 140, 87, 18,\n\t\t68, 81, 11, 76, 154, 157, 49, 230, 53, 61, 161, 242, 68, 78,\n\t\t114, 75, 155, 219, 219, 154, 136, 121, 158, 230, 65, 151,\n\t\t181, 36, 64, 53, 211, 174, 46, 227, 168, 177, 188, 172, 177,\n\t\t20, 214, 56, 137, 242, 18, 103, 104, 37, 61, 35, 128, 128,\n\t\t21, 94, 16, 17, 31, 159, 97, 195, 240, 4, 170, 196, 81, 166,\n\t\t239, 65, 189, 201, 23, 66, 35, 222, 108, 59, 69, 170, 17,\n\t\t87, 44, 213, 97, 170, 101, 69, 210, 68, 68, 133, 201, 14,\n\t\t110, 183, 38, 193, 66, 53, 174, 100, 152, 173, 72, 33, 216,\n\t\t138, 72, 108, 236, 226, 148, 182, 226, 43, 171, 180, 226,\n\t\t128, 205, 145, 200, 25, 71, 213, 40, 86, 224, 235, 242, 206,\n\t\t142, 180, 48, 151, 45, 0, 54, 102, 102, 56, 40, 100, 1, 102,\n\t\t243, 194, 181, 101, 81, 75, 36, 19, 28, 33, 226, 245, 247,\n\t\t111, 60, 253, 197, 97, 182, 82, 96, 122, 166, 121, 247, 233,\n\t\t243, 174, 130, 9, 167, 204, 101, 139, 87, 167, 26, 138, 116,\n\t\t11, 165, 115, 106, 234, 93, 179, 185, 220, 3, 185, 217, 217,\n\t\t183, 96, 69, 195, 100, 57, 151, 43, 113, 36, 71, 248, 250,\n\t\t202, 226, 214, 215, 207, 251, 133, 92, 45, 159, 129, 108,\n\t\t30, 78, 229, 140, 77, 53, 159, 201, 53, 244, 218, 173, 213,\n\t\t23, 94, 252, 103, 177, 176, 106, 212, 159, 177, 83, 190, 243,\n\t\t156, 124, 170, 176, 152, 168, 101, 146, 162, 1, 74, 226, 35,\n\t\t75, 154, 182, 164, 170, 241, 117, 85, 16, 57, 33, 57, 7, 144,\n\t\t75, 42, 84, 49, 86, 160, 60, 145, 191, 243, 151, 46, 193,\n\t\t95, 192, 203, 145, 134, 10, 104, 3, 61, 11, 33, 136, 52, 179,\n\t\t56, 158, 242, 36, 160, 255, 212, 31, 111, 53, 246, 42, 222,\n\t\t50, 218, 177, 60, 14, 172, 88, 199, 209, 200, 157, 133, 242,\n\t\t196, 103, 232, 2, 108, 157, 188, 65, 226, 243, 32, 213, 201,\n\t\t38, 229, 198, 86, 36, 201, 181, 225, 3, 167, 238, 22, 132,\n\t\t7, 211, 241, 193, 127, 85, 16, 168, 196, 8, 1, 156, 126, 80,\n\t\t16, 238, 190, 79, 144, 120, 145, 207, 214, 78, 205, 99, 238,\n\t\t192, 0, 124, 241, 46, 208, 100, 157, 221, 3, 119, 210, 132,\n\t\t164, 129, 155, 168, 84, 65, 86, 168, 168, 136, 192, 152, 145,\n\t\t147, 97, 197, 92, 162, 252, 173, 241, 7, 15, 249, 43, 76,\n\t\t142, 195, 188, 200, 183, 80, 126, 201, 197, 170, 192, 75,\n\t\t20, 48, 207, 120, 33, 245, 58, 142, 147, 116, 237, 179, 191,\n\t\t165, 107, 34, 71, 46, 254, 205, 169, 10, 198, 10, 21, 85,\n\t\t152, 91, 68, 8, 205, 195, 179, 80, 236, 226, 54, 62, 213,\n\t\t222, 154, 194, 128, 242, 232, 245, 83, 24, 35, 134, 126, 121,\n\t\t10, 19, 84, 2, 121, 10, 115, 40, 15, 251, 83, 152, 71, 101,\n\t\t248, 252, 20, 166, 104, 22, 111, 78, 97, 9, 157, 198, 31,\n\t\t152, 194, 50, 50, 9, 153, 194, 9, 148, 37, 79, 155, 194, 73,\n\t\t196, 200, 112, 10, 167, 80, 158, 252, 204, 20, 206, 162, 44,\n\t\t249, 230, 20, 54, 16, 227, 150, 16, 65, 192, 137, 8, 161,\n\t\t237, 184, 37, 17, 12, 232, 44, 186, 103, 10, 99, 164, 161,\n\t\t15, 77, 97, 130, 110, 70, 159, 156, 194, 28, 58, 11, 235,\n\t\t83, 152, 71, 183, 193, 99, 83, 152, 162, 109, 248, 230, 20,\n\t\t150, 208, 115, 240, 29, 83, 88, 70, 117, 252, 7, 83, 56, 129,\n\t\t78, 145, 185, 41, 156, 68, 26, 121, 254, 20, 78, 161, 179,\n\t\t100, 60, 133, 179, 232, 20, 249, 221, 41, 108, 32, 141, 75,\n\t\t162, 27, 144, 135, 70, 232, 24, 249, 200, 65, 125, 180, 135,\n\t\t66, 180, 136, 86, 80, 23, 173, 162, 69, 116, 51, 242, 144,\n\t\t27, 231, 92, 135, 14, 145, 141, 2, 228, 161, 33, 178, 17,\n\t\t186, 193, 27, 29, 251, 78, 127, 47, 92, 92, 233, 174, 46,\n\t\t222, 236, 185, 225, 226, 117, 135, 118, 224, 13, 109, 244,\n\t\t125, 95, 90, 68, 77, 180, 136, 174, 71, 62, 178, 144, 139,\n\t\t122, 40, 64, 139, 232, 94, 100, 163, 62, 26, 163, 1, 178,\n\t\t144, 143, 208, 149, 5, 45, 54, 23, 175, 247, 45, 183, 23,\n\t\t44, 222, 107, 247, 199, 3, 203, 71, 223, 253, 244, 229, 252,\n\t\t255, 243, 26, 107, 168, 137, 234, 232, 12, 170, 163, 205,\n\t\t127, 161, 246, 90, 179, 126, 166, 190, 249, 127, 83, 215,\n\t\t191, 212, 187, 45, 212, 64, 87, 161, 58, 106, 199, 105, 52,\n\t\t9, 223, 191, 174, 3, 100, 35, 31, 5, 200, 137, 159, 56, 27,\n\t\t215, 126, 210, 143, 85, 132, 182, 26, 87, 213, 219, 141, 171,\n\t\t22, 87, 190, 163, 202, 3, 219, 15, 28, 207, 61, 187, 24, 119,\n\t\t101, 245, 219, 125, 249, 206, 210, 155, 223, 209, 139, 218,\n\t\t83, 245, 98, 90, 98, 115, 210, 133, 218, 229, 46, 220, 135,\n\t\t246, 226, 230, 69, 197, 117, 80, 53, 30, 132, 33, 242, 80,\n\t\t16, 119, 98, 20, 99, 218, 73, 65, 139, 200, 65, 221, 184,\n\t\t1, 139, 40, 64, 118, 252, 196, 164, 210, 69, 20, 34, 15, 121,\n\t\t104, 128, 246, 145, 131, 66, 84, 71, 232, 190, 61, 123, 241,\n\t\t208, 238, 84, 131, 197, 161, 23, 132, 139, 35, 111, 20, 85,\n\t\t184, 232, 116, 61, 119, 49, 176, 195, 69, 203, 237, 45, 134,\n\t\t158, 55, 216, 119, 194, 58, 138, 145, 56, 68, 35, 20, 160,\n\t\t179, 104, 29, 173, 163, 221, 105, 63, 173, 239, 232, 103,\n\t\t61, 174, 126, 136, 208, 94, 24, 142, 130, 179, 235, 235, 187,\n\t\t158, 27, 90, 147, 158, 213, 187, 222, 240, 95, 51, 215, 79,\n\t\t61, 183, 255, 47, 48, 246, 95, 194, 162, 255, 253, 146, 255,\n\t\t181, 109, 142, 101, 53, 132, 208, 165, 79, 160, 28, 122, 138,\n\t\t127, 240, 145, 152, 22, 79, 252, 211, 112, 192, 3, 5, 6, 2,\n\t\t136, 32, 129, 12, 10, 168, 113, 236, 146, 4, 36, 33, 5, 105,\n\t\t200, 64, 22, 12, 48, 97, 6, 114, 48, 11, 115, 48, 15, 121,\n\t\t244, 185, 56, 12, 202, 34, 44, 65, 17, 74, 176, 12, 101, 168,\n\t\t64, 21, 86, 96, 21, 78, 193, 26, 156, 134, 90, 28, 210, 100,\n\t\t3, 54, 161, 1, 91, 176, 13, 77, 104, 65, 27, 206, 192, 85,\n\t\t112, 22, 206, 193, 213, 112, 77, 28, 137, 250, 60, 92, 7,\n\t\t215, 195, 13, 112, 35, 220, 4, 55, 195, 211, 224, 22, 184,\n\t\t21, 110, 131, 219, 225, 14, 184, 19, 158, 14, 119, 193, 221,\n\t\t112, 15, 220, 11, 207, 128, 251, 224, 153, 240, 44, 120, 54,\n\t\t60, 7, 238, 135, 231, 194, 3, 240, 60, 120, 62, 188, 0, 30,\n\t\t132, 23, 130, 5, 29, 232, 66, 15, 108, 216, 133, 62, 236,\n\t\t129, 3, 23, 96, 31, 6, 48, 4, 23, 60, 24, 193, 67, 224, 67,\n\t\t0, 33, 140, 225, 0, 14, 225, 8, 142, 225, 97, 120, 17, 188,\n\t\t24, 94, 2, 47, 133, 151, 193, 35, 240, 114, 120, 5, 188, 18,\n\t\t94, 5, 175, 134, 215, 192, 163, 240, 90, 120, 12, 30, 135,\n\t\t31, 128, 215, 193, 235, 225, 13, 240, 131, 240, 67, 240, 70,\n\t\t120, 19, 188, 25, 222, 2, 111, 133, 183, 193, 219, 225, 29,\n\t\t240, 78, 120, 23, 252, 48, 252, 8, 188, 27, 126, 20, 126,\n\t\t12, 158, 128, 247, 192, 123, 225, 125, 240, 227, 240, 126,\n\t\t248, 0, 124, 16, 126, 2, 126, 18, 126, 10, 62, 4, 31, 134,\n\t\t143, 192, 79, 195, 255, 7, 31, 133, 159, 129, 255, 31, 126,\n\t\t22, 126, 14, 254, 13, 252, 60, 252, 2, 252, 34, 124, 12, 126,\n\t\t9, 126, 25, 126, 5, 62, 14, 191, 10, 255, 22, 158, 132, 79,\n\t\t192, 175, 193, 39, 225, 215, 225, 83, 240, 27, 240, 239, 224,\n\t\t211, 240, 25, 248, 77, 248, 45, 248, 109, 248, 44, 252, 14,\n\t\t252, 46, 252, 30, 252, 62, 124, 14, 254, 0, 254, 16, 62, 15,\n\t\t95, 128, 63, 130, 47, 194, 31, 195, 191, 135, 255, 0, 127,\n\t\t2, 95, 130, 63, 133, 47, 195, 87, 224, 207, 224, 207, 225,\n\t\t47, 224, 171, 240, 31, 225, 63, 193, 95, 194, 127, 134, 255,\n\t\t2, 127, 5, 127, 13, 255, 21, 254, 27, 252, 119, 248, 27, 248,\n\t\t91, 248, 26, 252, 29, 252, 61, 252, 15, 248, 7, 248, 58, 252,\n\t\t79, 248, 6, 252, 35, 252, 19, 124, 19, 254, 25, 190, 5, 23,\n\t\t225, 18, 142, 16, 0, 199, 142, 21, 120, 76, 99, 211, 79, 17,\n\t\t75, 88, 198, 10, 86, 177, 134, 117, 156, 192, 73, 156, 194,\n\t\t105, 156, 193, 89, 108, 96, 19, 207, 224, 28, 158, 197, 115,\n\t\t120, 30, 231, 113, 1, 47, 224, 69, 188, 132, 139, 184, 132,\n\t\t151, 113, 25, 87, 112, 21, 175, 224, 85, 124, 10, 175, 225,\n\t\t211, 184, 134, 235, 120, 29, 111, 224, 77, 220, 192, 91, 104,\n\t\t1, 111, 227, 38, 110, 225, 54, 62, 131, 175, 194, 103, 241,\n\t\t57, 124, 53, 190, 6, 239, 224, 107, 241, 121, 124, 29, 190,\n\t\t30, 223, 128, 111, 196, 55, 225, 155, 241, 211, 240, 45, 248,\n\t\t86, 124, 27, 190, 29, 223, 129, 239, 196, 79, 199, 119, 225,\n\t\t187, 241, 61, 248, 94, 252, 12, 124, 31, 126, 38, 126, 22,\n\t\t126, 54, 126, 14, 190, 31, 63, 23, 63, 128, 159, 135, 159,\n\t\t143, 95, 128, 31, 196, 47, 196, 22, 238, 224, 46, 238, 97,\n\t\t27, 239, 226, 62, 222, 195, 14, 190, 128, 247, 241, 0, 15,\n\t\t177, 139, 61, 60, 194, 15, 97, 31, 7, 56, 196, 99, 124, 128,\n\t\t15, 241, 17, 62, 198, 15, 227, 23, 225, 23, 227, 151, 224,\n\t\t151, 226, 151, 225, 71, 240, 203, 241, 43, 240, 43, 241, 171,\n\t\t240, 171, 241, 107, 240, 163, 248, 181, 248, 49, 252, 56,\n\t\t254, 1, 252, 58, 252, 122, 252, 6, 252, 131, 248, 135, 240,\n\t\t27, 241, 155, 240, 155, 241, 91, 240, 91, 241, 219, 240, 219,\n\t\t241, 59, 240, 59, 241, 187, 240, 15, 227, 31, 193, 239, 198,\n\t\t63, 138, 127, 12, 63, 129, 223, 131, 223, 139, 223, 135, 127,\n\t\t28, 191, 31, 127, 0, 127, 16, 255, 4, 254, 73, 45, 60, 116,\n\t\t194, 208, 246, 107, 193, 67, 99, 203, 183, 245, 93, 171, 107,\n\t\t119, 60, 111, 127, 122, 47, 12, 28, 119, 223, 238, 57, 174,\n\t\t218, 119, 194, 189, 113, 103, 154, 205, 166, 111, 9, 39, 143,\n\t\t211, 201, 159, 197, 145, 227, 134, 182, 111, 7, 97, 226, 50,\n\t\t52, 125, 37, 213, 247, 188, 254, 192, 174, 141, 6, 227, 96,\n\t\t154, 165, 94, 153, 213, 151, 79, 170, 170, 57, 174, 52, 173,\n\t\t205, 26, 132, 116, 104, 29, 117, 123, 46, 191, 23, 14, 7,\n\t\t77, 174, 27, 4, 91, 164, 19, 118, 217, 177, 55, 14, 199, 29,\n\t\t155, 59, 114, 220, 190, 28, 93, 78, 90, 214, 243, 189, 81,\n\t\t199, 59, 210, 130, 208, 234, 238, 215, 188, 3, 219, 223, 29,\n\t\t120, 135, 162, 227, 6, 161, 213, 247, 173, 33, 221, 29, 56,\n\t\t221, 125, 159, 88, 61, 87, 236, 56, 97, 103, 220, 221, 183,\n\t\t67, 26, 142, 135, 157, 129, 175, 78, 146, 147, 162, 14, 29,\n\t\t183, 231, 29, 6, 204, 114, 123, 190, 231, 244, 248, 129, 227,\n\t\t142, 143, 132, 158, 239, 116, 58, 157, 129, 205, 7, 251, 199,\n\t\t35, 91, 218, 245, 198, 254, 228, 121, 26, 250, 246, 96, 224,\n\t\t9, 125, 223, 10, 157, 145, 117, 140, 15, 246, 249, 67, 219,\n\t\t233, 120, 212, 183, 93, 223, 118, 197, 145, 213, 183, 7, 142,\n\t\t107, 7, 211, 198, 217, 71, 221, 61, 203, 237, 219, 202, 129,\n\t\t51, 180, 189, 105, 173, 124, 48, 176, 186, 251, 226, 161,\n\t\t231, 247, 70, 190, 29, 4, 212, 27, 217, 174, 211, 227, 143,\n\t\t173, 61, 207, 163, 147, 17, 163, 190, 221, 235, 57, 161, 58,\n\t\t73, 78, 6, 56, 136, 91, 111, 143, 71, 158, 91, 235, 58, 126,\n\t\t119, 96, 203, 87, 100, 137, 61, 123, 224, 116, 29, 111, 28,\n\t\t112, 61, 167, 223, 87, 71, 142, 221, 171, 141, 156, 145, 237,\n\t\t215, 70, 35, 237, 138, 187, 104, 204, 123, 254, 120, 100,\n\t\t13, 232, 5, 207, 27, 14, 44, 214, 177, 247, 44, 183, 107,\n\t\t107, 211, 244, 114, 67, 67, 219, 26, 42, 241, 245, 100, 196,\n\t\t130, 145, 23, 58, 187, 199, 82, 207, 62, 112, 44, 55, 180,\n\t\t252, 80, 10, 188, 177, 219, 235, 14, 188, 113, 143, 59, 112,\n\t\t92, 155, 117, 189, 158, 61, 178, 93, 225, 66, 176, 235, 244,\n\t\t122, 3, 155, 247, 237, 142, 61, 160, 246, 112, 228, 248, 118,\n\t\t52, 239, 211, 178, 72, 223, 9, 229, 61, 171, 187, 111, 251,\n\t\t53, 215, 62, 12, 212, 208, 118, 187, 182, 27, 214, 226, 33,\n\t\t197, 15, 61, 68, 15, 109, 231, 200, 113, 165, 96, 224, 244,\n\t\t236, 96, 47, 158, 128, 67, 39, 236, 238, 113, 199, 246, 96,\n\t\t68, 71, 214, 241, 200, 26, 156, 160, 216, 161, 53, 24, 216,\n\t\t33, 235, 118, 107, 7, 78, 96, 169, 221, 110, 109, 104, 5,\n\t\t161, 237, 119, 45, 191, 39, 119, 187, 181, 158, 19, 116, 35,\n\t\t92, 137, 158, 176, 134, 246, 145, 216, 237, 214, 38, 37, 68,\n\t\t80, 16, 250, 206, 200, 166, 3, 43, 8, 119, 135, 234, 36, 57,\n\t\t233, 178, 227, 29, 237, 121, 65, 40, 70, 19, 57, 24, 56, 65,\n\t\t40, 117, 198, 199, 129, 61, 24, 88, 189, 64, 235, 122, 174,\n\t\t107, 119, 195, 158, 125, 96, 15, 188, 145, 208, 179, 130,\n\t\t189, 238, 184, 99, 11, 187, 158, 63, 30, 118, 108, 155, 13,\n\t\t108, 203, 29, 141, 59, 52, 122, 33, 56, 86, 130, 61, 199,\n\t\t15, 3, 199, 237, 140, 7, 251, 114, 224, 12, 71, 131, 227,\n\t\t206, 216, 25, 132, 66, 176, 127, 108, 133, 3, 43, 144, 191,\n\t\t189, 172, 70, 194, 225, 158, 21, 6, 214, 104, 196, 14, 28,\n\t\t171, 235, 57, 46, 29, 218, 61, 103, 60, 84, 142, 107, 93,\n\t\t111, 216, 113, 92, 43, 244, 124, 213, 27, 133, 142, 91, 27,\n\t\t122, 110, 212, 93, 33, 66, 166, 174, 229, 135, 138, 125, 52,\n\t\t178, 123, 78, 104, 247, 130, 96, 64, 187, 221, 218, 133, 110,\n\t\t71, 139, 199, 193, 181, 253, 160, 214, 29, 140, 59, 137, 174,\n\t\t111, 91, 161, 115, 96, 71, 165, 69, 239, 227, 126, 95, 236,\n\t\t247, 79, 80, 43, 26, 18, 171, 119, 224, 4, 81, 29, 61, 215,\n\t\t219, 31, 88, 65, 224, 58, 251, 78, 230, 59, 238, 166, 195,\n\t\t36, 245, 237, 176, 54, 242, 162, 181, 38, 31, 58, 251, 78,\n\t\t84, 185, 85, 59, 164, 129, 181, 107, 249, 14, 237, 238, 249,\n\t\t222, 208, 102, 187, 142, 111, 239, 122, 71, 188, 55, 178,\n\t\t125, 43, 25, 247, 212, 181, 195, 154, 125, 52, 26, 120, 190,\n\t\t237, 211, 110, 36, 71, 121, 124, 115, 99, 99, 116, 68, 173,\n\t\t161, 245, 176, 231, 242, 123, 222, 248, 225, 135, 217, 100,\n\t\t5, 29, 136, 157, 104, 241, 212, 66, 199, 22, 35, 153, 43,\n\t\t146, 226, 2, 101, 186, 74, 172, 129, 99, 187, 156, 221, 235,\n\t\t219, 66, 215, 235, 57, 246, 200, 177, 185, 161, 215, 59, 82,\n\t\t118, 61, 63, 172, 77, 197, 51, 50, 14, 58, 202, 200, 247,\n\t\t122, 227, 110, 88, 219, 27, 187, 161, 48, 116, 142, 98, 236,\n\t\t165, 65, 215, 119, 58, 61, 177, 51, 24, 219, 161, 231, 133,\n\t\t123, 242, 101, 168, 214, 137, 200, 223, 192, 234, 72, 135,\n\t\t163, 142, 221, 119, 92, 215, 246, 217, 225, 104, 215, 243,\n\t\t135, 1, 181, 221, 3, 199, 183, 248, 126, 132, 165, 44, 190,\n\t\t214, 250, 244, 192, 177, 122, 182, 167, 78, 146, 19, 82, 27,\n\t\t184, 214, 168, 187, 103, 133, 218, 9, 80, 235, 71, 152, 165,\n\t\t95, 190, 157, 14, 229, 183, 215, 170, 188, 235, 248, 65, 88,\n\t\t243, 252, 158, 237, 243, 199, 158, 21, 132, 98, 184, 103,\n\t\t15, 109, 39, 24, 216, 242, 21, 196, 85, 137, 6, 227, 164,\n\t\t139, 116, 224, 184, 94, 207, 230, 31, 26, 123, 190, 165, 237,\n\t\t250, 118, 52, 193, 61, 187, 214, 181, 134, 35, 33, 180, 7,\n\t\t118, 68, 37, 133, 142, 229, 246, 162, 28, 174, 239, 91, 7,\n\t\t156, 29, 6, 199, 156, 51, 236, 117, 152, 111, 29, 216, 3,\n\t\t255, 88, 136, 16, 182, 107, 5, 161, 28, 140, 71, 182, 63,\n\t\t242, 14, 109, 63, 144, 14, 71, 151, 167, 106, 104, 219, 225,\n\t\t120, 148, 184, 178, 226, 136, 178, 232, 86, 183, 107, 7, 129,\n\t\t211, 25, 216, 181, 104, 118, 4, 171, 219, 29, 7, 222, 110,\n\t\t40, 88, 189, 72, 139, 176, 6, 154, 181, 187, 235, 12, 28,\n\t\t43, 180, 227, 174, 48, 107, 208, 247, 6, 142, 69, 173, 97,\n\t\t148, 171, 90, 110, 223, 63, 62, 193, 76, 209, 26, 141, 106,\n\t\t65, 232, 249, 182, 122, 25, 170, 57, 94, 192, 91, 163, 145,\n\t\t237, 75, 86, 112, 60, 28, 218, 161, 239, 236, 51, 107, 220,\n\t\t139, 234, 100, 86, 68, 151, 236, 35, 98, 29, 6, 98, 199, 25,\n\t\t122, 157, 11, 118, 55, 100, 29, 39, 140, 214, 15, 215, 113,\n\t\t194, 99, 41, 70, 161, 142, 237, 251, 199, 172, 51, 240, 250,\n\t\t125, 219, 23, 167, 105, 173, 147, 232, 140, 125, 111, 232,\n\t\t117, 236, 65, 180, 126, 252, 208, 150, 34, 146, 100, 251,\n\t\t209, 0, 74, 49, 154, 4, 93, 107, 112, 2, 14, 157, 112, 79,\n\t\t137, 193, 88, 65, 218, 61, 166, 221, 145, 229, 218, 3, 33,\n\t\t226, 98, 209, 104, 72, 221, 113, 24, 14, 236, 93, 39, 216,\n\t\t99, 189, 154, 229, 246, 106, 61, 177, 103, 143, 6, 222, 113,\n\t\t207, 235, 179, 158, 29, 236, 143, 124, 79, 237, 57, 125, 39,\n\t\t180, 6, 53, 175, 107, 91, 46, 139, 41, 149, 223, 19, 227,\n\t\t116, 236, 7, 54, 237, 121, 221, 189, 113, 39, 74, 246, 109,\n\t\t95, 237, 249, 214, 110, 216, 152, 190, 163, 159, 48, 171,\n\t\t41, 238, 208, 222, 177, 53, 240, 250, 146, 109, 249, 131,\n\t\t227, 142, 227, 247, 2, 106, 251, 3, 203, 237, 75, 151, 249,\n\t\t254, 110, 234, 50, 56, 180, 131, 192, 118, 251, 182, 47, 197,\n\t\t120, 22, 151, 172, 92, 94, 87, 181, 93, 39, 113, 229, 210,\n\t\t137, 58, 196, 34, 116, 234, 4, 61, 177, 239, 132, 251, 190,\n\t\t181, 111, 187, 180, 239, 237, 122, 190, 45, 246, 61, 175,\n\t\t231, 219, 86, 47, 144, 47, 67, 181, 190, 50, 197, 209, 158,\n\t\t239, 28, 92, 129, 176, 214, 177, 208, 247, 157, 81, 68, 13,\n\t\t248, 190, 63, 118, 67, 174, 63, 30, 140, 82, 87, 48, 131,\n\t\t19, 1, 98, 207, 241, 237, 154, 85, 219, 179, 7, 35, 219, 167,\n\t\t123, 94, 120, 193, 242, 217, 222, 184, 19, 241, 33, 234, 132,\n\t\t99, 215, 14, 228, 73, 82, 115, 189, 208, 102, 23, 108, 119,\n\t\t223, 113, 3, 254, 130, 215, 183, 67, 124, 33, 16, 47, 156,\n\t\t20, 69, 247, 237, 227, 110, 207, 149, 247, 157, 238, 126,\n\t\t16, 49, 46, 219, 87, 175, 128, 107, 251, 108, 96, 197, 184,\n\t\t207, 69, 28, 156, 27, 28, 239, 134, 108, 104, 245, 109, 55,\n\t\t244, 216, 208, 238, 89, 163, 81, 32, 76, 200, 111, 109, 200,\n\t\t15, 237, 158, 31, 138, 67, 167, 235, 123, 17, 110, 147, 161,\n\t\t115, 68, 135, 206, 195, 99, 215, 161, 67, 207, 181, 125, 143,\n\t\t185, 214, 40, 162, 199, 44, 90, 137, 181, 11, 1, 113, 71,\n\t\t67, 226, 6, 103, 100, 119, 28, 250, 78, 232, 120, 174, 115,\n\t\t196, 71, 226, 194, 54, 29, 89, 131, 93, 187, 199, 70, 86,\n\t\t232, 219, 158, 43, 142, 108, 63, 154, 248, 145, 45, 143, 246,\n\t\t172, 142, 239, 116, 35, 34, 159, 28, 237, 121, 182, 235, 28,\n\t\t213, 118, 125, 107, 104, 31, 122, 254, 190, 28, 141, 98, 16,\n\t\t90, 81, 81, 116, 52, 14, 246, 236, 30, 29, 29, 135, 123, 158,\n\t\t43, 250, 118, 175, 22, 141, 119, 68, 162, 34, 1, 195, 167,\n\t\t190, 61, 26, 28, 247, 68, 223, 14, 188, 193, 129, 227, 246,\n\t\t37, 63, 38, 212, 17, 205, 97, 17, 24, 145, 177, 160, 187,\n\t\t55, 112, 142, 228, 192, 182, 252, 238, 158, 237, 246, 29,\n\t\t87, 9, 108, 255, 192, 233, 218, 177, 44, 195, 2, 39, 98, 146,\n\t\t71, 82, 44, 189, 212, 246, 172, 96, 143, 5, 35, 219, 218,\n\t\t183, 70, 82, 16, 90, 199, 19, 217, 238, 68, 88, 56, 30, 118,\n\t\t188, 129, 18, 132, 78, 60, 161, 195, 241, 192, 86, 130, 112,\n\t\t220, 115, 188, 3, 199, 141, 216, 65, 48, 30, 141, 6, 182,\n\t\t118, 66, 140, 34, 148, 112, 109, 110, 220, 177, 125, 126,\n\t\t236, 236, 59, 161, 60, 118, 29, 223, 238, 71, 85, 30, 179,\n\t\t177, 27, 90, 163, 81, 79, 24, 7, 193, 216, 117, 173, 61, 122,\n\t\t96, 89, 61, 199, 229, 15, 156, 232, 249, 152, 49, 144, 3,\n\t\t247, 64, 63, 225, 150, 39, 226, 203, 225, 222, 176, 27, 36,\n\t\t46, 203, 89, 181, 152, 221, 218, 220, 81, 199, 59, 162, 199,\n\t\t150, 219, 179, 143, 50, 147, 164, 54, 97, 68, 241, 88, 90,\n\t\t131, 136, 230, 68, 88, 106, 29, 43, 145, 172, 112, 114, 67,\n\t\t118, 7, 199, 186, 27, 61, 233, 246, 188, 90, 48, 17, 68, 162,\n\t\t217, 37, 94, 224, 240, 190, 109, 117, 67, 197, 26, 135, 222,\n\t\t200, 183, 119, 157, 35, 219, 231, 2, 43, 8, 248, 131, 177,\n\t\t125, 33, 146, 47, 99, 69, 152, 70, 196, 41, 244, 120, 123,\n\t\t216, 177, 253, 228, 119, 80, 206, 221, 129, 213, 143, 120,\n\t\t76, 104, 251, 252, 158, 231, 13, 28, 26, 132, 190, 117, 96,\n\t\t209, 137, 100, 34, 76, 146, 90, 192, 135, 199, 35, 111, 75,\n\t\t154, 176, 198, 168, 89, 106, 44, 207, 156, 220, 9, 17, 77,\n\t\t245, 237, 241, 144, 238, 123, 254, 193, 216, 22, 237, 129,\n\t\t61, 140, 80, 216, 215, 166, 242, 244, 116, 112, 196, 221,\n\t\t129, 51, 234, 120, 150, 223, 227, 246, 156, 81, 64, 70, 123,\n\t\t35, 241, 161, 177, 227, 6, 93, 107, 20, 73, 159, 86, 111,\n\t\t104, 115, 23, 172, 3, 235, 74, 193, 113, 207, 10, 211, 223,\n\t\t45, 51, 212, 58, 199, 223, 155, 231, 118, 141, 167, 200, 171,\n\t\t217, 227, 167, 204, 190, 48, 122, 138, 18, 122, 223, 155,\n\t\t55, 234, 153, 79, 145, 23, 81, 165, 239, 45, 214, 183, 135,\n\t\t206, 209, 247, 22, 17, 88, 185, 167, 200, 27, 142, 6, 142,\n\t\t219, 47, 124, 223, 191, 196, 44, 246, 123, 235, 136, 69, 210,\n\t\t236, 247, 100, 63, 108, 251, 30, 103, 119, 172, 99, 182, 111,\n\t\t31, 119, 172, 192, 22, 34, 73, 212, 235, 69, 43, 179, 54,\n\t\t242, 189, 136, 33, 41, 190, 61, 89, 104, 125, 43, 180, 197,\n\t\t104, 205, 196, 107, 73, 191, 130, 221, 79, 168, 237, 120,\n\t\t208, 245, 199, 195, 100, 223, 26, 88, 221, 208, 233, 214,\n\t\t124, 123, 52, 238, 12, 156, 174, 126, 57, 39, 176, 93, 43,\n\t\t180, 165, 11, 118, 207, 153, 188, 40, 15, 45, 183, 103, 13,\n\t\t60, 223, 177, 92, 197, 27, 244, 46, 191, 147, 56, 33, 34,\n\t\t17, 10, 244, 124, 207, 229, 2, 39, 220, 75, 132, 190, 213,\n\t\t179, 107, 187, 118, 207, 246, 227, 21, 144, 62, 244, 6, 187,\n\t\t181, 81, 180, 202, 59, 86, 24, 90, 3, 199, 115, 133, 61, 207,\n\t\t119, 59, 206, 96, 32, 14, 45, 103, 208, 221, 115, 134, 35,\n\t\t97, 104, 247, 173, 145, 231, 135, 212, 117, 34, 157, 138,\n\t\t248, 246, 129, 16, 236, 121, 163, 67, 203, 183, 229, 9, 150,\n\t\t5, 35, 171, 107, 179, 152, 205, 119, 61, 122, 104, 219, 157,\n\t\t193, 49, 57, 116, 142, 184, 72, 141, 146, 38, 228, 222, 183,\n\t\t220, 125, 186, 111, 245, 251, 131, 104, 160, 252, 253, 158,\n\t\t119, 232, 114, 174, 237, 5, 252, 195, 123, 206, 222, 152,\n\t\t90, 131, 72, 213, 82, 194, 61, 187, 22, 17, 182, 99, 59, 116,\n\t\t114, 86, 247, 161, 177, 19, 196, 100, 52, 168, 57, 110, 215,\n\t\t243, 71, 158, 111, 133, 118, 79, 237, 70, 196, 181, 107, 13,\n\t\t106, 190, 55, 176, 181, 41, 203, 173, 117, 236, 99, 207, 237,\n\t\t145, 158, 125, 144, 217, 141, 180, 150, 224, 184, 182, 59,\n\t\t112, 250, 123, 97, 173, 111, 13, 237, 64, 25, 217, 174, 123,\n\t\t92, 179, 252, 174, 213, 179, 51, 135, 206, 195, 150, 223,\n\t\t11, 106, 222, 110, 45, 170, 180, 27, 73, 93, 114, 184, 231,\n\t\t184, 251, 181, 104, 142, 2, 57, 94, 235, 246, 216, 247, 70,\n\t\t54, 111, 245, 188, 142, 45, 89, 126, 56, 37, 197, 98, 44,\n\t\t196, 7, 142, 229, 166, 187, 150, 107, 245, 28, 203, 173, 13,\n\t\t173, 136, 132, 12, 108, 107, 151, 70, 194, 132, 23, 72, 93,\n\t\t207, 221, 29, 140, 35, 117, 135, 244, 246, 6, 66, 207, 177,\n\t\t130, 168, 3, 124, 52, 9, 71, 116, 215, 238, 197, 55, 78, 127,\n\t\t104, 9, 206, 68, 250, 24, 10, 142, 123, 224, 4, 142, 231,\n\t\t114, 23, 28, 223, 18, 134, 182, 219, 179, 7, 246, 177, 226,\n\t\t91, 193, 40, 150, 101, 106, 35, 39, 210, 26, 247, 172, 144,\n\t\t6, 49, 109, 143, 20, 51, 191, 107, 135, 190, 109, 115, 193,\n\t\t56, 176, 233, 184, 51, 118, 195, 49, 25, 143, 2, 110, 28,\n\t\t140, 2, 238, 216, 242, 93, 106, 57, 126, 199, 237, 72, 209,\n\t\t76, 15, 236, 154, 107, 135, 98, 199, 243, 194, 136, 248, 140,\n\t\t104, 103, 188, 187, 107, 251, 210, 68, 118, 143, 100, 65,\n\t\t193, 62, 176, 253, 152, 207, 70, 212, 175, 230, 120, 82, 96,\n\t\t13, 236, 96, 215, 243, 187, 182, 18, 99, 176, 237, 215, 122,\n\t\t118, 196, 45, 142, 135, 187, 158, 123, 204, 29, 90, 15, 219,\n\t\t244, 216, 26, 14, 109, 127, 186, 213, 119, 233, 18, 194, 241,\n\t\t215, 14, 37, 254, 222, 129, 226, 59, 2, 31, 70, 56, 142, 228,\n\t\t134, 79, 182, 4, 163, 203, 23, 95, 184, 58, 136, 211, 143,\n\t\t125, 244, 252, 52, 189, 233, 127, 5, 0, 0, 255, 255, 80, 75,\n\t\t7, 8, 10, 222, 217, 32, 228, 88, 1, 0, 124, 251, 1, 0, 80,\n\t\t75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 9, 0, 119, 101, 98, 102, 111,\n\t\t110, 116, 115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115,\n\t\t45, 52, 48, 48, 46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106,\n\t\t41, 96, 204, 189, 235, 142, 92, 73, 146, 30, 248, 63, 158,\n\t\t194, 151, 11, 44, 36, 172, 142, 151, 223, 47, 173, 174, 214,\n\t\t238, 244, 104, 6, 3, 76, 174, 4, 205, 72, 11, 253, 76, 58,\n\t\t179, 25, 84, 71, 49, 185, 76, 86, 116, 117, 60, 253, 194,\n\t\t205, 236, 51, 63, 17, 81, 76, 114, 26, 104, 141, 208, 93,\n\t\t204, 112, 15, 143, 115, 252, 106, 110, 151, 207, 204, 126,\n\t\t251, 31, 126, 249, 233, 100, 206, 79, 159, 95, 62, 60, 127,\n\t\t252, 241, 141, 183, 238, 141, 121, 249, 242, 248, 241, 221,\n\t\t227, 233, 249, 227, 211, 143, 111, 62, 62, 191, 249, 15, 191,\n\t\t59, 252, 246, 127, 219, 182, 195, 223, 61, 127, 252, 98, 254,\n\t\t239, 63, 61, 189, 60, 255, 244, 100, 254, 238, 243, 211, 147,\n\t\t201, 182, 89, 111, 222, 254, 217, 252, 95, 127, 120, 254,\n\t\t248, 229, 81, 190, 218, 204, 241, 203, 151, 79, 47, 191, 249,\n\t\t225, 135, 93, 173, 29, 207, 63, 29, 254, 241, 195, 120, 250,\n\t\t248, 242, 74, 139, 31, 78, 220, 226, 135, 63, 204, 199, 255,\n\t\t155, 127, 24, 207, 31, 95, 126, 99, 126, 255, 123, 243, 55,\n\t\t255, 221, 36, 235, 254, 157, 153, 125, 120, 249, 141, 249,\n\t\t167, 127, 248, 71, 243, 159, 254, 238, 31, 141, 183, 254,\n\t\t223, 153, 223, 63, 191, 123, 250, 141, 121, 248, 135, 127,\n\t\t54, 242, 252, 127, 123, 216, 182, 217, 231, 191, 253, 79,\n\t\t191, 255, 231, 255, 254, 159, 255, 163, 121, 57, 191, 55,\n\t\t255, 249, 191, 254, 205, 63, 254, 195, 239, 205, 155, 237,\n\t\t135, 31, 254, 223, 248, 251, 31, 126, 248, 219, 127, 254,\n\t\t91, 243, 79, 255, 237, 239, 231, 19, 126, 248, 225, 63, 254,\n\t\t63, 111, 204, 155, 217, 165, 223, 252, 240, 195, 159, 254,\n\t\t244, 39, 251, 167, 104, 159, 63, 191, 255, 225, 239, 63, 63,\n\t\t126, 58, 126, 24, 47, 63, 252, 211, 127, 251, 251, 31, 102,\n\t\t195, 191, 253, 231, 191, 253, 225, 229, 252, 222, 123, 251,\n\t\t238, 203, 187, 55, 230, 119, 135, 223, 206, 71, 255, 242,\n\t\t211, 233, 227, 203, 143, 191, 242, 251, 224, 156, 155, 237,\n\t\t223, 112, 147, 223, 252, 114, 250, 240, 241, 143, 191, 214,\n\t\t208, 247, 222, 127, 160, 111, 223, 236, 151, 194, 191, 249,\n\t\t221, 225, 183, 63, 61, 125, 121, 124, 247, 248, 229, 241,\n\t\t119, 135, 223, 127, 126, 122, 252, 242, 244, 110, 206, 247,\n\t\t156, 134, 191, 123, 254, 252, 254, 201, 4, 231, 187, 243,\n\t\t62, 152, 199, 47, 230, 159, 143, 63, 155, 135, 199, 207, 38,\n\t\t120, 227, 203, 111, 124, 255, 141, 243, 244, 253, 193, 252,\n\t\t205, 159, 205, 127, 121, 126, 251, 244, 249, 139, 121, 120,\n\t\t124, 247, 124, 122, 58, 252, 254, 249, 211, 159, 63, 127,\n\t\t120, 127, 252, 98, 254, 205, 248, 183, 102, 191, 178, 135,\n\t\t223, 254, 176, 94, 249, 219, 119, 79, 127, 120, 249, 221,\n\t\t225, 183, 115, 153, 204, 135, 119, 63, 190, 153, 45, 165,\n\t\t97, 254, 155, 207, 143, 31, 223, 189, 108, 255, 229, 233,\n\t\t253, 207, 167, 199, 207, 111, 204, 241, 249, 243, 135, 203,\n\t\t246, 248, 238, 188, 253, 242, 227, 155, 148, 218, 156, 32,\n\t\t99, 232, 183, 219, 31, 30, 199, 147, 57, 24, 99, 140, 20,\n\t\t127, 250, 112, 250, 51, 63, 78, 183, 84, 54, 252, 68, 131,\n\t\t39, 174, 246, 127, 122, 154, 125, 253, 241, 77, 114, 110,\n\t\t87, 251, 242, 229, 243, 211, 151, 113, 156, 155, 244, 243,\n\t\t79, 143, 39, 254, 230, 231, 143, 31, 190, 188, 108, 159, 158,\n\t\t62, 111, 79, 63, 253, 248, 38, 251, 192, 213, 159, 30, 63,\n\t\t62, 191, 60, 109, 254, 199, 55, 193, 56, 147, 77, 52, 110,\n\t\t253, 143, 155, 60, 190, 140, 167, 143, 95, 184, 235, 84, 241,\n\t\t238, 73, 106, 182, 146, 184, 230, 237, 219, 231, 95, 126,\n\t\t124, 179, 57, 27, 156, 243, 61, 155, 173, 20, 219, 179, 203,\n\t\t166, 36, 111, 179, 73, 169, 217, 136, 110, 188, 123, 250,\n\t\t124, 250, 240, 241, 105, 251, 114, 252, 48, 254, 248, 241,\n\t\t233, 229, 229, 199, 55, 33, 223, 126, 249, 233, 249, 229,\n\t\t195, 23, 90, 238, 45, 123, 29, 192, 120, 126, 247, 180, 125,\n\t\t126, 252, 248, 254, 233, 199, 55, 255, 245, 255, 116, 46,\n\t\t184, 237, 239, 90, 162, 110, 254, 240, 59, 106, 244, 219,\n\t\t159, 62, 188, 188, 124, 248, 248, 126, 123, 127, 250, 243,\n\t\t167, 163, 214, 114, 137, 254, 221, 62, 62, 254, 244, 244,\n\t\t227, 155, 47, 127, 250, 240, 229, 203, 211, 231, 237, 229,\n\t\t255, 251, 249, 241, 243, 211, 27, 60, 253, 199, 55, 255, 199,\n\t\t255, 254, 203, 31, 92, 243, 255, 254, 141, 57, 188, 251, 241,\n\t\t205, 67, 114, 206, 36, 95, 70, 40, 54, 27, 103, 82, 51, 91,\n\t\t160, 33, 53, 179, 165, 118, 222, 98, 14, 195, 153, 141, 190,\n\t\t230, 111, 54, 254, 106, 254, 119, 164, 175, 55, 249, 237,\n\t\t172, 212, 22, 169, 157, 249, 167, 244, 37, 30, 73, 255, 63,\n\t\t198, 28, 46, 15, 49, 123, 235, 77, 200, 213, 134, 225, 131,\n\t\t109, 206, 53, 211, 109, 232, 189, 153, 144, 76, 112, 182,\n\t\t245, 158, 76, 12, 182, 59, 151, 76, 76, 99, 243, 222, 214,\n\t\t249, 245, 150, 173, 119, 46, 119, 179, 133, 100, 115, 239,\n\t\t197, 108, 77, 190, 137, 85, 62, 120, 90, 170, 112, 24, 62,\n\t\t114, 147, 102, 93, 239, 197, 155, 16, 249, 193, 193, 241,\n\t\t131, 131, 252, 52, 22, 106, 48, 54, 31, 228, 153, 149, 70,\n\t\t92, 240, 192, 104, 182, 185, 214, 244, 149, 207, 84, 59, 27,\n\t\t27, 31, 164, 69, 232, 243, 161, 213, 185, 96, 182, 84, 229,\n\t\t233, 92, 49, 182, 52, 247, 219, 86, 35, 15, 112, 147, 183,\n\t\t153, 173, 36, 179, 53, 71, 143, 29, 91, 78, 54, 209, 175,\n\t\t116, 16, 193, 118, 237, 225, 230, 99, 182, 193, 148, 70, 173,\n\t\t15, 99, 203, 242, 178, 46, 127, 27, 141, 204, 155, 13, 99,\n\t\t91, 53, 49, 210, 251, 206, 155, 179, 222, 213, 20, 104, 77,\n\t\t125, 183, 49, 183, 100, 124, 180, 174, 121, 111, 182, 20,\n\t\t109, 173, 62, 155, 208, 173, 239, 61, 24, 234, 80, 143, 97,\n\t\t204, 233, 44, 179, 198, 205, 14, 198, 206, 239, 224, 5, 226,\n\t\t154, 57, 124, 76, 244, 28, 226, 124, 211, 236, 181, 203, 243,\n\t\t77, 209, 203, 164, 135, 57, 167, 153, 155, 152, 76, 165, 146,\n\t\t108, 236, 61, 29, 232, 37, 52, 252, 45, 200, 128, 124, 167,\n\t\t37, 144, 18, 94, 176, 121, 90, 218, 33, 79, 217, 66, 153,\n\t\t187, 100, 238, 186, 196, 195, 46, 94, 190, 73, 217, 230, 177,\n\t\t241, 75, 125, 181, 197, 185, 98, 182, 140, 53, 10, 205, 108,\n\t\t205, 227, 149, 109, 206, 103, 164, 217, 114, 180, 125, 178,\n\t\t89, 167, 93, 214, 219, 232, 152, 66, 55, 155, 231, 133, 48,\n\t\t37, 82, 47, 59, 63, 201, 59, 103, 171, 22, 135, 15, 206, 22,\n\t\t227, 140, 111, 197, 22, 211, 59, 247, 144, 75, 244, 175, 243,\n\t\t135, 121, 72, 228, 249, 6, 107, 170, 239, 110, 54, 95, 222,\n\t\t188, 114, 206, 39, 129, 125, 251, 252, 252, 199, 175, 29,\n\t\t244, 160, 7, 61, 205, 77, 254, 237, 19, 221, 50, 47, 160,\n\t\t175, 213, 134, 99, 225, 189, 121, 106, 220, 175, 82, 169,\n\t\t120, 220, 10, 31, 213, 115, 138, 188, 24, 206, 120, 89, 30,\n\t\t204, 162, 158, 220, 57, 61, 82, 56, 70, 158, 200, 115, 113,\n\t\t212, 106, 108, 133, 126, 174, 19, 107, 182, 80, 245, 12, 208,\n\t\t68, 228, 192, 45, 130, 28, 164, 44, 103, 208, 153, 173, 85,\n\t\t218, 89, 153, 63, 53, 158, 241, 243, 150, 58, 109, 182, 227,\n\t\t86, 248, 169, 135, 243, 86, 120, 241, 231, 104, 58, 181, 153,\n\t\t131, 243, 199, 205, 247, 98, 251, 95, 68, 191, 190, 66, 47,\n\t\t95, 93, 170, 121, 207, 63, 189, 251, 240, 241, 110, 141, 134,\n\t\t174, 145, 47, 68, 140, 125, 197, 32, 227, 60, 6, 137, 102,\n\t\t208, 108, 49, 200, 217, 138, 45, 218, 68, 71, 88, 233, 157,\n\t\t144, 14, 180, 153, 31, 180, 112, 220, 98, 75, 214, 15, 61,\n\t\t4, 124, 36, 121, 43, 206, 135, 107, 9, 111, 192, 11, 240,\n\t\t124, 159, 248, 169, 120, 250, 77, 251, 35, 61, 255, 242, 48,\n\t\t41, 212, 172, 60, 58, 34, 55, 174, 167, 115, 240, 209, 182,\n\t\t227, 188, 47, 243, 121, 227, 66, 41, 212, 215, 203, 195, 164,\n\t\t111, 193, 132, 154, 15, 35, 200, 153, 117, 38, 54, 155, 231,\n\t\t123, 105, 213, 169, 48, 255, 153, 11, 193, 231, 158, 6, 205,\n\t\t157, 104, 212, 117, 109, 178, 173, 135, 112, 173, 182, 220,\n\t\t86, 211, 23, 60, 122, 253, 144, 63, 94, 30, 230, 32, 162,\n\t\t137, 225, 236, 103, 155, 225, 76, 174, 160, 56, 147, 132,\n\t\t120, 71, 84, 204, 108, 85, 8, 174, 84, 12, 157, 115, 55, 41,\n\t\t38, 147, 26, 34, 159, 37, 48, 217, 219, 98, 178, 249, 184,\n\t\t209, 230, 139, 221, 159, 67, 167, 46, 28, 183, 18, 233, 73,\n\t\t135, 155, 153, 57, 123, 151, 109, 155, 67, 150, 107, 36, 11,\n\t\t193, 20, 2, 23, 133, 140, 72, 121, 196, 52, 231, 237, 122,\n\t\t33, 169, 148, 11, 61, 255, 188, 121, 151, 230, 195, 231, 153,\n\t\t123, 117, 139, 190, 255, 240, 229, 248, 243, 219, 175, 208,\n\t\t146, 30, 254, 213, 153, 134, 80, 43, 45, 17, 205, 199, 40,\n\t\t197, 132, 96, 188, 119, 182, 153, 38, 115, 51, 75, 213, 248,\n\t\t220, 108, 28, 206, 116, 207, 140, 197, 86, 229, 124, 248,\n\t\t66, 239, 242, 165, 216, 192, 133, 151, 205, 151, 185, 86,\n\t\t93, 22, 141, 74, 244, 205, 36, 204, 243, 202, 158, 179, 102,\n\t\t82, 193, 238, 139, 101, 222, 142, 198, 251, 185, 121, 55,\n\t\t126, 19, 239, 182, 185, 73, 230, 63, 81, 246, 199, 252, 60,\n\t\t151, 49, 129, 95, 81, 170, 30, 202, 45, 157, 79, 142, 142,\n\t\t230, 32, 62, 33, 241, 82, 205, 123, 136, 22, 145, 120, 5,\n\t\t207, 61, 228, 22, 116, 144, 115, 159, 149, 210, 173, 38, 116,\n\t\t51, 129, 32, 59, 186, 183, 248, 167, 114, 179, 122, 233, 136,\n\t\t114, 71, 179, 149, 215, 151, 9, 247, 149, 229, 232, 16, 63,\n\t\t196, 244, 33, 100, 38, 28, 81, 121, 145, 198, 239, 77, 184,\n\t\t133, 125, 228, 189, 72, 147, 224, 112, 21, 48, 241, 104, 90,\n\t\t19, 100, 229, 182, 88, 215, 172, 84, 33, 46, 116, 219, 163,\n\t\t80, 227, 252, 122, 206, 135, 111, 204, 141, 228, 121, 28,\n\t\t232, 59, 159, 249, 105, 177, 143, 77, 120, 194, 36, 183, 206,\n\t\t86, 229, 67, 8, 50, 116, 158, 232, 148, 137, 21, 164, 45,\n\t\t34, 111, 72, 184, 107, 189, 156, 178, 219, 138, 249, 3, 166,\n\t\t66, 92, 31, 38, 71, 200, 175, 246, 6, 188, 160, 148, 231,\n\t\t60, 121, 38, 173, 65, 86, 98, 243, 194, 125, 37, 15, 214,\n\t\t67, 218, 206, 89, 143, 210, 241, 32, 247, 27, 94, 142, 119,\n\t\t119, 225, 87, 183, 16, 77, 196, 224, 146, 240, 46, 158, 118,\n\t\t194, 228, 51, 231, 176, 156, 60, 222, 123, 125, 4, 117, 133,\n\t\t120, 180, 185, 251, 181, 34, 246, 185, 165, 139, 204, 195,\n\t\t54, 217, 182, 50, 23, 160, 208, 62, 167, 249, 46, 120, 111,\n\t\t230, 126, 121, 48, 83, 186, 151, 80, 17, 133, 183, 157, 7,\n\t\t29, 151, 206, 98, 153, 228, 22, 222, 87, 101, 38, 99, 243,\n\t\t7, 184, 78, 176, 5, 58, 142, 206, 214, 46, 15, 190, 118, 27,\n\t\t76, 39, 206, 146, 248, 66, 166, 155, 243, 81, 224, 62, 101,\n\t\t69, 152, 139, 240, 115, 40, 210, 70, 102, 102, 172, 215, 210,\n\t\t134, 148, 247, 144, 152, 81, 155, 153, 83, 74, 167, 4, 143,\n\t\t214, 214, 81, 207, 101, 166, 11, 204, 224, 193, 88, 205, 225,\n\t\t168, 235, 142, 206, 123, 164, 167, 109, 115, 149, 228, 60,\n\t\t110, 209, 108, 241, 242, 224, 75, 183, 213, 244, 132, 1, 51,\n\t\t209, 145, 21, 215, 166, 178, 173, 120, 84, 135, 177, 5, 186,\n\t\t185, 184, 169, 71, 27, 226, 128, 169, 5, 93, 248, 150, 71,\n\t\t180, 5, 217, 135, 232, 112, 224, 169, 24, 243, 25, 145, 26,\n\t\t57, 249, 62, 27, 249, 238, 242, 224, 115, 49, 61, 51, 103,\n\t\t186, 155, 77, 29, 72, 0, 51, 175, 83, 158, 176, 29, 164, 205,\n\t\t90, 141, 253, 98, 240, 78, 193, 111, 116, 150, 65, 100, 208,\n\t\t18, 4, 70, 222, 130, 31, 128, 16, 120, 155, 199, 245, 212,\n\t\t243, 166, 10, 16, 221, 32, 228, 233, 112, 166, 192, 66, 28,\n\t\t119, 27, 44, 142, 248, 180, 88, 73, 221, 28, 248, 29, 238,\n\t\t95, 188, 112, 172, 217, 196, 9, 91, 7, 75, 110, 116, 233,\n\t\t203, 152, 107, 172, 191, 95, 93, 220, 192, 184, 235, 87, 50,\n\t\t97, 135, 225, 113, 37, 232, 233, 5, 41, 210, 179, 50, 247,\n\t\t65, 43, 147, 109, 74, 83, 28, 112, 221, 246, 129, 149, 215,\n\t\t97, 172, 189, 203, 11, 62, 175, 19, 122, 197, 92, 65, 25,\n\t\t243, 213, 142, 8, 224, 111, 100, 44, 94, 72, 174, 95, 183,\n\t\t80, 133, 92, 163, 130, 244, 18, 125, 162, 236, 115, 191, 86,\n\t\t62, 235, 20, 6, 249, 1, 158, 61, 191, 188, 60, 248, 208, 172,\n\t\t55, 126, 94, 80, 115, 181, 101, 42, 244, 53, 250, 1, 61, 211,\n\t\t149, 137, 147, 107, 211, 75, 105, 157, 34, 89, 147, 249, 83,\n\t\t158, 163, 113, 53, 249, 232, 254, 250, 20, 32, 70, 44, 122,\n\t\t144, 117, 42, 55, 191, 206, 28, 47, 72, 190, 154, 253, 224,\n\t\t109, 50, 62, 212, 161, 63, 95, 226, 200, 142, 140, 40, 29,\n\t\t200, 88, 11, 162, 77, 124, 116, 220, 238, 156, 238, 4, 71,\n\t\t28, 5, 29, 242, 88, 131, 223, 118, 51, 165, 237, 177, 148,\n\t\t212, 221, 177, 91, 178, 57, 223, 190, 235, 217, 153, 91, 80,\n\t\t201, 25, 14, 216, 171, 172, 157, 40, 132, 238, 152, 186, 254,\n\t\t239, 111, 52, 120, 217, 7, 176, 121, 185, 219, 88, 77, 232,\n\t\t197, 134, 150, 230, 244, 132, 204, 196, 221, 230, 84, 27,\n\t\t29, 49, 169, 153, 215, 85, 45, 101, 87, 227, 163, 45, 41,\n\t\t147, 248, 239, 39, 219, 48, 55, 139, 203, 54, 183, 56, 165,\n\t\t227, 102, 115, 110, 248, 208, 181, 102, 108, 185, 219, 148,\n\t\t3, 11, 225, 62, 217, 66, 183, 87, 240, 173, 49, 83, 230, 39,\n\t\t227, 48, 175, 179, 156, 71, 179, 41, 213, 80, 105, 34, 107,\n\t\t44, 49, 78, 86, 38, 151, 38, 172, 76, 107, 113, 242, 50, 49,\n\t\t210, 237, 197, 21, 135, 145, 186, 117, 57, 85, 227, 136, 58,\n\t\t251, 208, 245, 71, 62, 58, 27, 106, 50, 41, 217, 22, 195,\n\t\t152, 76, 152, 143, 158, 206, 118, 205, 185, 21, 179, 181,\n\t\t100, 107, 15, 243, 234, 246, 173, 205, 65, 55, 235, 125, 136,\n\t\t166, 6, 91, 107, 200, 163, 216, 132, 93, 211, 107, 154, 244,\n\t\t193, 7, 219, 123, 166, 67, 84, 66, 154, 68, 178, 219, 230,\n\t\t185, 135, 84, 49, 186, 77, 193, 117, 210, 16, 216, 150, 66,\n\t\t83, 34, 89, 109, 241, 113, 94, 84, 185, 198, 144, 198, 150,\n\t\t26, 107, 105, 186, 173, 169, 186, 74, 189, 241, 41, 20, 147,\n\t\t189, 237, 117, 206, 56, 42, 72, 109, 212, 210, 89, 199, 60,\n\t\t25, 159, 50, 103, 112, 74, 115, 243, 195, 28, 169, 167, 205,\n\t\t28, 108, 41, 189, 207, 41, 77, 113, 62, 212, 71, 27, 125,\n\t\t75, 99, 11, 205, 134, 18, 171, 118, 107, 78, 71, 109, 46,\n\t\t206, 215, 57, 151, 250, 170, 104, 147, 229, 98, 78, 173, 219,\n\t\t52, 169, 66, 182, 190, 151, 208, 77, 172, 54, 22, 150, 49,\n\t\t67, 143, 221, 228, 96, 123, 78, 126, 100, 111, 75, 78, 145,\n\t\t56, 145, 82, 83, 51, 62, 116, 27, 121, 127, 132, 60, 229,\n\t\t129, 98, 99, 33, 246, 183, 219, 230, 234, 208, 233, 195, 0,\n\t\t136, 216, 181, 18, 39, 43, 216, 253, 174, 28, 146, 157, 60,\n\t\t3, 201, 110, 45, 84, 111, 168, 151, 147, 10, 186, 100, 123,\n\t\t76, 183, 127, 7, 166, 130, 165, 61, 226, 254, 100, 78, 106,\n\t\t177, 165, 78, 26, 31, 163, 245, 177, 212, 17, 162, 173, 126,\n\t\t10, 35, 178, 251, 83, 177, 41, 103, 111, 104, 206, 122, 52,\n\t\t83, 198, 237, 173, 96, 211, 13, 154, 238, 217, 112, 11, 201,\n\t\t198, 50, 229, 10, 253, 64, 155, 44, 26, 221, 100, 155, 244,\n\t\t119, 10, 194, 222, 215, 201, 21, 132, 26, 83, 34, 62, 179,\n\t\t37, 211, 172, 15, 193, 85, 83, 156, 77, 115, 138, 124, 177,\n\t\t33, 197, 48, 41, 208, 156, 220, 64, 204, 94, 165, 219, 56,\n\t\t88, 95, 252, 252, 208, 109, 116, 115, 219, 230, 96, 75, 168,\n\t\t157, 212, 121, 33, 135, 254, 93, 250, 164, 59, 58, 241, 120,\n\t\t165, 72, 234, 222, 198, 243, 22, 59, 139, 230, 115, 219, 8,\n\t\t235, 236, 69, 177, 25, 18, 24, 147, 155, 15, 71, 58, 215,\n\t\t225, 236, 107, 180, 233, 152, 89, 142, 184, 215, 47, 213,\n\t\t107, 213, 18, 113, 184, 89, 136, 223, 183, 84, 75, 249, 215,\n\t\t245, 74, 36, 229, 252, 165, 122, 165, 3, 41, 150, 232, 77,\n\t\t219, 20, 249, 122, 79, 164, 87, 162, 238, 106, 197, 28, 84,\n\t\t62, 110, 193, 147, 60, 50, 136, 8, 138, 194, 5, 243, 112,\n\t\t55, 67, 242, 247, 60, 39, 147, 78, 145, 252, 6, 13, 111, 218,\n\t\t225, 239, 145, 39, 31, 51, 239, 168, 158, 57, 245, 221, 15,\n\t\t249, 214, 230, 95, 124, 135, 228, 127, 183, 234, 111, 111,\n\t\t111, 135, 212, 139, 236, 3, 95, 178, 237, 38, 139, 242, 122,\n\t\t142, 144, 248, 8, 190, 239, 162, 48, 35, 16, 35, 80, 49, 182,\n\t\t184, 68, 5, 89, 154, 172, 183, 62, 127, 131, 114, 84, 113,\n\t\t105, 46, 83, 20, 158, 146, 191, 203, 144, 204, 248, 162, 140,\n\t\t70, 31, 151, 215, 85, 207, 74, 147, 197, 110, 211, 7, 102,\n\t\t183, 154, 201, 44, 207, 140, 197, 157, 232, 195, 163, 41,\n\t\t216, 28, 244, 214, 195, 136, 87, 220, 163, 112, 2, 194, 247,\n\t\t38, 237, 54, 109, 215, 61, 115, 184, 155, 135, 73, 237, 100,\n\t\t42, 194, 216, 162, 89, 173, 232, 30, 23, 249, 78, 36, 83,\n\t\t46, 147, 36, 100, 50, 91, 32, 70, 88, 162, 10, 6, 42, 143,\n\t\t246, 38, 239, 88, 239, 27, 33, 37, 40, 223, 169, 50, 210,\n\t\t150, 48, 37, 242, 225, 48, 59, 180, 227, 166, 240, 100, 240,\n\t\t72, 179, 134, 123, 8, 198, 100, 114, 49, 115, 102, 136, 219,\n\t\t36, 145, 92, 24, 194, 68, 178, 250, 252, 43, 98, 50, 134,\n\t\t18, 38, 197, 51, 41, 185, 65, 220, 192, 220, 175, 217, 91,\n\t\t97, 10, 34, 10, 33, 177, 90, 211, 59, 59, 101, 83, 104, 55,\n\t\t131, 203, 150, 24, 128, 58, 255, 4, 146, 251, 213, 44, 0,\n\t\t249, 180, 98, 189, 49, 45, 208, 22, 176, 252, 48, 47, 133,\n\t\t6, 170, 32, 179, 35, 39, 122, 85, 180, 8, 45, 76, 32, 46,\n\t\t81, 58, 0, 109, 162, 17, 197, 204, 200, 60, 33, 166, 200,\n\t\t182, 156, 36, 173, 153, 201, 137, 243, 7, 239, 88, 101, 41,\n\t\t202, 236, 173, 139, 150, 2, 42, 204, 32, 170, 145, 220, 88,\n\t\t218, 7, 239, 94, 88, 14, 166, 227, 27, 35, 26, 203, 114, 21,\n\t\t81, 13, 168, 237, 165, 96, 168, 83, 136, 159, 140, 16, 255,\n\t\t157, 146, 164, 91, 243, 64, 22, 74, 26, 64, 17, 54, 190, 217,\n\t\t252, 178, 165, 197, 211, 203, 182, 192, 215, 27, 19, 117,\n\t\t210, 205, 105, 87, 50, 61, 61, 212, 177, 104, 125, 76, 170,\n\t\t215, 224, 142, 22, 181, 166, 104, 199, 208, 101, 95, 104,\n\t\t65, 50, 83, 62, 161, 112, 147, 202, 202, 15, 80, 131, 9, 113,\n\t\t102, 235, 69, 244, 62, 5, 250, 20, 151, 108, 36, 189, 91,\n\t\t228, 45, 146, 15, 243, 142, 229, 13, 183, 233, 100, 248, 8,\n\t\t77, 94, 85, 149, 30, 93, 226, 164, 61, 219, 160, 202, 222,\n\t\t10, 78, 65, 230, 205, 194, 131, 170, 65, 237, 131, 141, 44,\n\t\t20, 24, 238, 188, 253, 187, 232, 146, 169, 175, 88, 195, 219,\n\t\t138, 65, 102, 73, 163, 39, 100, 243, 218, 179, 172, 154, 182,\n\t\t235, 154, 225, 49, 198, 106, 73, 205, 37, 15, 46, 242, 224,\n\t\t155, 138, 195, 240, 184, 84, 147, 208, 248, 166, 183, 108,\n\t\t255, 245, 10, 34, 208, 222, 236, 168, 110, 190, 57, 12, 115,\n\t\t249, 168, 51, 142, 38, 147, 184, 252, 157, 97, 65, 117, 233,\n\t\t62, 176, 166, 104, 235, 162, 7, 143, 17, 77, 10, 233, 113,\n\t\t66, 163, 5, 162, 66, 136, 157, 84, 233, 124, 232, 189, 43,\n\t\t214, 155, 144, 146, 97, 114, 16, 82, 186, 60, 116, 81, 200,\n\t\t247, 44, 231, 212, 131, 164, 128, 228, 223, 80, 35, 108, 183,\n\t\t41, 163, 170, 24, 42, 244, 105, 246, 154, 55, 132, 138, 76,\n\t\t91, 230, 154, 177, 169, 42, 235, 238, 150, 218, 83, 58, 254,\n\t\t185, 31, 160, 155, 94, 205, 170, 74, 221, 22, 173, 148, 230,\n\t\t151, 135, 38, 43, 232, 93, 156, 3, 198, 203, 119, 4, 82, 72,\n\t\t187, 232, 21, 248, 247, 135, 49, 59, 111, 226, 58, 228, 106,\n\t\t190, 225, 83, 57, 174, 164, 117, 152, 90, 193, 108, 97, 19,\n\t\t232, 149, 202, 77, 199, 148, 35, 231, 149, 163, 98, 47, 204,\n\t\t54, 252, 208, 203, 131, 159, 108, 61, 184, 173, 53, 225, 220,\n\t\t58, 93, 207, 63, 237, 5, 63, 246, 179, 188, 238, 143, 38,\n\t\t106, 19, 28, 41, 154, 141, 195, 126, 170, 181, 169, 199, 82,\n\t\t201, 228, 19, 173, 27, 155, 206, 15, 102, 25, 90, 83, 84,\n\t\t200, 163, 10, 102, 218, 187, 106, 147, 105, 162, 73, 198,\n\t\t81, 210, 249, 197, 234, 223, 222, 146, 65, 155, 174, 87, 130,\n\t\t66, 202, 171, 28, 238, 232, 93, 255, 205, 150, 200, 174, 163,\n\t\t202, 21, 225, 8, 116, 100, 225, 102, 164, 235, 97, 114, 105,\n\t\t190, 202, 118, 125, 250, 240, 241, 203, 211, 231, 167, 151,\n\t\t47, 183, 156, 215, 187, 240, 117, 206, 43, 145, 53, 128, 109,\n\t\t248, 113, 10, 109, 147, 221, 15, 100, 133, 145, 127, 198,\n\t\t188, 97, 192, 207, 102, 7, 102, 73, 8, 125, 149, 3, 43, 55,\n\t\t205, 240, 142, 245, 195, 158, 172, 46, 114, 188, 18, 49, 215,\n\t\t162, 65, 46, 121, 76, 202, 43, 140, 169, 144, 177, 201, 178,\n\t\t233, 199, 209, 84, 219, 34, 117, 17, 219, 51, 204, 203, 39,\n\t\t3, 72, 49, 75, 163, 38, 126, 174, 35, 106, 81, 77, 105, 162,\n\t\t169, 166, 146, 207, 201, 70, 54, 140, 55, 65, 14, 108, 165,\n\t\t240, 7, 159, 34, 153, 95, 54, 159, 105, 167, 160, 98, 108,\n\t\t222, 85, 210, 26, 148, 56, 121, 135, 10, 176, 136, 148, 125,\n\t\t118, 214, 19, 22, 1, 7, 85, 12, 246, 91, 147, 126, 102, 39,\n\t\t43, 217, 5, 10, 146, 22, 135, 225, 72, 246, 20, 178, 195,\n\t\t127, 27, 142, 20, 109, 67, 199, 170, 24, 175, 218, 190, 60,\n\t\t111, 16, 217, 184, 60, 237, 161, 129, 15, 1, 235, 23, 24,\n\t\t100, 32, 188, 200, 245, 161, 174, 170, 163, 116, 162, 119,\n\t\t103, 24, 3, 94, 155, 177, 237, 0, 166, 40, 224, 195, 179,\n\t\t60, 41, 121, 80, 164, 106, 167, 52, 17, 248, 211, 16, 35,\n\t\t248, 156, 123, 23, 109, 17, 6, 65, 62, 147, 50, 181, 179,\n\t\t153, 64, 173, 6, 2, 153, 217, 60, 137, 38, 222, 108, 164,\n\t\t244, 230, 2, 221, 118, 76, 211, 204, 228, 41, 104, 211, 5,\n\t\t135, 159, 22, 190, 130, 19, 175, 247, 97, 84, 19, 232, 90,\n\t\t112, 54, 43, 78, 131, 10, 45, 160, 255, 147, 100, 123, 108,\n\t\t89, 177, 234, 41, 167, 32, 21, 244, 86, 25, 133, 226, 62,\n\t\t136, 171, 194, 173, 200, 53, 197, 65, 134, 220, 194, 156,\n\t\t83, 33, 160, 81, 54, 227, 109, 197, 11, 95, 221, 219, 156,\n\t\t140, 54, 7, 74, 56, 143, 48, 41, 250, 198, 150, 76, 49, 178,\n\t\t79, 166, 65, 56, 150, 165, 152, 172, 94, 20, 222, 91, 15,\n\t\t204, 186, 40, 204, 199, 103, 90, 131, 144, 121, 43, 206, 66,\n\t\t136, 158, 238, 197, 106, 230, 241, 157, 7, 87, 254, 123, 161,\n\t\t67, 140, 202, 121, 154, 191, 143, 130, 124, 197, 106, 251,\n\t\t46, 254, 75, 17, 32, 33, 101, 91, 134, 240, 17, 224, 76, 66,\n\t\t16, 59, 40, 113, 181, 114, 232, 121, 239, 71, 54, 221, 120,\n\t\t88, 169, 197, 254, 117, 83, 30, 108, 67, 226, 221, 187, 96,\n\t\t55, 188, 206, 153, 24, 233, 166, 21, 147, 64, 56, 38, 95,\n\t\t158, 95, 55, 73, 132, 156, 3, 46, 207, 243, 95, 133, 68, 8,\n\t\t150, 74, 4, 44, 159, 60, 73, 11, 217, 115, 195, 89, 156, 231,\n\t\t168, 48, 121, 32, 179, 109, 197, 143, 164, 236, 19, 11, 223,\n\t\t91, 44, 203, 166, 218, 132, 250, 37, 153, 139, 173, 103, 102,\n\t\t125, 238, 40, 131, 170, 202, 65, 26, 152, 222, 10, 105, 16,\n\t\t29, 4, 160, 82, 89, 207, 135, 108, 195, 80, 233, 61, 95, 37,\n\t\t12, 96, 22, 133, 50, 28, 174, 136, 194, 53, 25, 136, 9, 103,\n\t\t85, 233, 2, 147, 4, 218, 143, 243, 170, 118, 4, 61, 34, 1,\n\t\t139, 62, 79, 122, 32, 231, 215, 187, 32, 244, 64, 172, 198,\n\t\t84, 20, 208, 18, 145, 4, 152, 138, 89, 32, 32, 86, 156, 16,\n\t\t17, 74, 27, 185, 134, 142, 167, 172, 223, 36, 10, 78, 236,\n\t\t215, 130, 134, 144, 167, 36, 54, 218, 142, 2, 182, 66, 230,\n\t\t93, 9, 167, 88, 59, 81, 110, 94, 136, 136, 51, 57, 154, 173,\n\t\t102, 155, 205, 220, 170, 196, 227, 83, 105, 11, 153, 249,\n\t\t92, 208, 80, 158, 156, 56, 55, 250, 190, 48, 150, 228, 225,\n\t\t99, 224, 163, 190, 206, 42, 99, 39, 22, 220, 172, 79, 126,\n\t\t199, 159, 194, 142, 249, 163, 149, 57, 110, 141, 33, 96, 127,\n\t\t17, 152, 225, 47, 65, 16, 189, 127, 126, 126, 127, 122, 218,\n\t\t62, 157, 126, 126, 249, 218, 105, 79, 255, 234, 24, 13, 95,\n\t\t146, 233, 97, 228, 10, 197, 84, 47, 38, 77, 18, 223, 139,\n\t\t233, 21, 84, 190, 176, 17, 70, 54, 60, 88, 11, 149, 140, 60,\n\t\t75, 58, 199, 173, 179, 252, 113, 158, 210, 230, 252, 112,\n\t\t204, 116, 159, 166, 41, 228, 130, 122, 123, 192, 64, 21, 219,\n\t\t147, 162, 44, 102, 46, 2, 0, 145, 154, 49, 159, 131, 157,\n\t\t89, 0, 75, 4, 136, 1, 21, 69, 85, 143, 113, 137, 99, 37, 242,\n\t\t33, 218, 53, 154, 229, 65, 40, 69, 103, 98, 0, 63, 33, 39,\n\t\t177, 203, 155, 133, 31, 58, 133, 42, 106, 57, 69, 154, 78,\n\t\t97, 79, 37, 191, 68, 51, 42, 130, 116, 197, 231, 195, 128,\n\t\t217, 156, 97, 137, 124, 221, 9, 167, 224, 184, 234, 229, 170,\n\t\t6, 181, 132, 103, 50, 190, 70, 219, 22, 224, 40, 244, 115,\n\t\t232, 243, 15, 149, 207, 27, 23, 206, 168, 56, 242, 231, 35,\n\t\t190, 167, 143, 223, 189, 35, 223, 223, 109, 198, 124, 203,\n\t\t195, 150, 228, 100, 123, 198, 86, 172, 155, 12, 245, 156,\n\t\t62, 194, 141, 52, 182, 212, 116, 91, 122, 136, 132, 13, 72,\n\t\t49, 103, 134, 169, 182, 125, 69, 244, 182, 103, 210, 11, 146,\n\t\t129, 160, 18, 49, 152, 204, 8, 181, 110, 213, 102, 186, 64,\n\t\t219, 220, 48, 73, 107, 232, 6, 176, 174, 17, 203, 224, 123,\n\t\t48, 45, 219, 238, 51, 127, 246, 61, 188, 80, 153, 24, 107,\n\t\t252, 55, 178, 183, 173, 164, 56, 247, 112, 182, 174, 69, 34,\n\t\t171, 45, 79, 54, 52, 52, 75, 90, 118, 226, 26, 195, 105, 203,\n\t\t193, 250, 192, 240, 82, 23, 93, 100, 197, 188, 79, 57, 147,\n\t\t62, 55, 136, 66, 222, 133, 22, 141, 82, 150, 90, 108, 106,\n\t\t57, 161, 98, 108, 37, 219, 212, 34, 247, 208, 55, 43, 16,\n\t\t220, 16, 124, 93, 21, 62, 120, 27, 106, 125, 201, 209, 166,\n\t\t88, 178, 86, 152, 155, 6, 163, 102, 75, 103, 203, 145, 173,\n\t\t35, 123, 194, 139, 213, 148, 231, 29, 208, 108, 47, 196, 115,\n\t\t213, 26, 211, 113, 147, 138, 115, 41, 214, 185, 214, 142,\n\t\t190, 121, 27, 138, 63, 111, 206, 58, 231, 122, 45, 185, 132,\n\t\t203, 67, 174, 222, 166, 185, 53, 125, 180, 174, 212, 99, 206,\n\t\t182, 198, 152, 206, 132, 80, 114, 254, 184, 73, 197, 225,\n\t\t140, 79, 71, 249, 234, 188, 202, 243, 67, 72, 103, 249, 137,\n\t\t22, 249, 239, 81, 154, 163, 217, 119, 193, 41, 183, 123, 68,\n\t\t229, 147, 194, 219, 39, 63, 27, 154, 113, 199, 201, 147, 181,\n\t\t218, 231, 254, 239, 214, 31, 81, 218, 168, 120, 121, 200,\n\t\t209, 214, 110, 98, 236, 132, 7, 237, 32, 93, 27, 215, 43,\n\t\t206, 156, 139, 89, 113, 29, 97, 238, 86, 79, 168, 43, 215,\n\t\t107, 53, 242, 253, 250, 247, 133, 63, 243, 125, 216, 138,\n\t\t124, 197, 207, 33, 242, 11, 240, 54, 46, 204, 45, 171, 62,\n\t\t89, 154, 114, 249, 242, 144, 82, 181, 93, 70, 82, 154, 171,\n\t\t103, 63, 47, 191, 121, 27, 70, 156, 127, 213, 21, 84, 176,\n\t\t48, 132, 207, 66, 113, 72, 209, 145, 246, 167, 180, 158, 25,\n\t\t49, 79, 45, 181, 166, 42, 104, 48, 53, 235, 233, 117, 181,\n\t\t185, 40, 19, 215, 186, 117, 109, 46, 81, 226, 107, 240, 40,\n\t\t240, 2, 47, 228, 143, 244, 166, 41, 216, 210, 93, 82, 116,\n\t\t88, 171, 52, 219, 40, 143, 78, 210, 135, 247, 115, 105, 148,\n\t\t232, 162, 236, 83, 176, 241, 188, 249, 146, 108, 60, 110,\n\t\t138, 36, 253, 14, 235, 197, 246, 120, 186, 149, 163, 189,\n\t\t143, 119, 114, 116, 3, 13, 242, 173, 8, 110, 33, 210, 90,\n\t\t56, 240, 78, 248, 32, 54, 130, 37, 199, 160, 134, 228, 107,\n\t\t145, 96, 73, 120, 16, 97, 133, 39, 29, 21, 106, 98, 80, 111,\n\t\t3, 60, 57, 51, 35, 105, 118, 45, 137, 177, 132, 78, 209, 25,\n\t\t125, 35, 158, 186, 239, 194, 108, 123, 121, 72, 205, 25, 95,\n\t\t58, 33, 69, 21, 98, 15, 171, 196, 164, 37, 114, 41, 144, 35,\n\t\t67, 207, 135, 49, 23, 155, 229, 162, 90, 112, 99, 166, 96,\n\t\t61, 161, 238, 68, 58, 247, 197, 86, 45, 143, 201, 86, 85,\n\t\t92, 62, 173, 144, 138, 30, 27, 54, 100, 91, 140, 54, 244,\n\t\t162, 12, 158, 18, 83, 16, 233, 173, 196, 5, 68, 163, 138,\n\t\t62, 217, 179, 4, 228, 177, 192, 208, 26, 177, 16, 12, 158,\n\t\t20, 145, 18, 216, 51, 104, 88, 101, 143, 70, 145, 65, 80,\n\t\t78, 140, 70, 60, 48, 56, 56, 171, 101, 6, 120, 92, 244, 41,\n\t\t179, 46, 96, 36, 189, 73, 129, 50, 220, 58, 17, 67, 98, 11,\n\t\t71, 232, 42, 171, 103, 193, 57, 122, 103, 154, 152, 38, 189,\n\t\t27, 161, 154, 197, 75, 171, 222, 188, 57, 233, 149, 28, 178,\n\t\t152, 20, 222, 89, 34, 9, 234, 252, 243, 106, 27, 74, 163,\n\t\t3, 23, 66, 204, 3, 250, 185, 69, 119, 221, 241, 77, 122, 78,\n\t\t72, 84, 229, 20, 22, 128, 12, 107, 129, 51, 156, 68, 122,\n\t\t34, 164, 226, 6, 142, 132, 84, 62, 208, 0, 118, 198, 85, 132,\n\t\t203, 67, 154, 211, 171, 187, 63, 1, 20, 136, 190, 183, 32,\n\t\t125, 168, 145, 197, 115, 50, 140, 204, 11, 16, 114, 119, 172,\n\t\t115, 183, 9, 15, 150, 167, 0, 70, 219, 64, 30, 163, 152, 50,\n\t\t8, 79, 216, 152, 41, 67, 57, 0, 14, 199, 179, 22, 149, 158,\n\t\t41, 130, 141, 66, 155, 102, 115, 182, 65, 8, 9, 243, 178,\n\t\t30, 106, 99, 136, 213, 16, 163, 103, 10, 97, 54, 176, 93,\n\t\t169, 219, 91, 108, 152, 34, 42, 98, 24, 100, 229, 21, 69,\n\t\t185, 83, 243, 130, 183, 209, 248, 236, 44, 10, 199, 196, 208,\n\t\t211, 81, 29, 139, 167, 142, 190, 46, 142, 108, 254, 34, 228,\n\t\t74, 121, 182, 191, 60, 196, 24, 39, 69, 169, 201, 166, 195,\n\t\t88, 36, 2, 199, 124, 127, 152, 149, 234, 10, 204, 245, 27,\n\t\t228, 71, 155, 43, 249, 193, 64, 65, 24, 246, 228, 135, 42,\n\t\t190, 139, 252, 160, 37, 145, 148, 215, 72, 236, 79, 143, 191,\n\t\t140, 119, 183, 55, 173, 143, 229, 21, 248, 80, 241, 214, 11,\n\t\t118, 253, 184, 117, 214, 26, 156, 50, 152, 238, 20, 108, 29,\n\t\t216, 38, 80, 248, 168, 54, 133, 125, 127, 0, 235, 21, 205,\n\t\t206, 216, 178, 81, 128, 42, 12, 51, 93, 213, 186, 50, 1, 82,\n\t\t113, 220, 18, 43, 40, 78, 91, 102, 71, 162, 202, 221, 152,\n\t\t11, 119, 162, 42, 170, 105, 172, 178, 123, 181, 213, 105,\n\t\t114, 221, 68, 49, 5, 62, 121, 140, 53, 88, 127, 24, 81, 180,\n\t\t136, 206, 84, 213, 200, 21, 254, 208, 33, 85, 136, 54, 106,\n\t\t4, 5, 52, 138, 231, 16, 48, 192, 91, 1, 56, 1, 102, 48, 114,\n\t\t0, 232, 175, 179, 222, 199, 47, 63, 157, 242, 221, 122, 220,\n\t\t25, 236, 99, 75, 178, 30, 36, 15, 30, 99, 75, 167, 109, 233,\n\t\t213, 122, 182, 237, 36, 42, 41, 128, 34, 102, 185, 216, 98,\n\t\t164, 120, 121, 136, 174, 217, 96, 66, 107, 214, 159, 176,\n\t\t36, 137, 137, 206, 113, 11, 201, 91, 127, 82, 55, 56, 226,\n\t\t74, 142, 190, 20, 219, 79, 91, 33, 171, 34, 63, 51, 43, 70,\n\t\t36, 217, 76, 69, 162, 124, 249, 68, 72, 191, 200, 234, 157,\n\t\t227, 38, 207, 61, 21, 131, 203, 231, 212, 113, 136, 5, 0,\n\t\t126, 20, 108, 226, 25, 58, 146, 83, 135, 191, 93, 61, 193,\n\t\t225, 111, 114, 47, 147, 181, 173, 147, 73, 58, 41, 144, 53,\n\t\t117, 234, 255, 209, 183, 104, 95, 23, 182, 199, 203, 75, 188,\n\t\t155, 222, 241, 202, 118, 111, 52, 193, 39, 242, 233, 139,\n\t\t165, 157, 182, 16, 162, 141, 102, 107, 238, 68, 74, 132, 106,\n\t\t154, 59, 193, 77, 170, 243, 197, 121, 108, 225, 180, 53, 66,\n\t\t118, 207, 234, 147, 159, 84, 158, 182, 12, 237, 63, 31, 147,\n\t\t245, 70, 75, 162, 37, 239, 85, 230, 106, 146, 155, 116, 242,\n\t\t197, 180, 112, 156, 159, 235, 137, 28, 215, 114, 144, 165,\n\t\t193, 247, 194, 133, 133, 99, 114, 213, 190, 206, 73, 189,\n\t\t253, 50, 110, 7, 157, 31, 191, 190, 167, 34, 29, 220, 100,\n\t\t130, 203, 54, 150, 48, 210, 100, 224, 201, 10, 224, 89, 216,\n\t\t169, 201, 246, 94, 61, 81, 226, 148, 82, 52, 165, 219, 24,\n\t\t74, 32, 189, 82, 235, 243, 74, 169, 54, 36, 50, 64, 78, 174,\n\t\t164, 134, 72, 44, 97, 238, 165, 154, 121, 14, 9, 173, 71,\n\t\t124, 74, 35, 134, 197, 145, 16, 114, 222, 74, 35, 28, 218,\n\t\t113, 94, 122, 57, 212, 56, 133, 151, 41, 221, 16, 52, 128,\n\t\t153, 220, 144, 45, 35, 9, 241, 110, 103, 163, 79, 41, 71,\n\t\t66, 238, 184, 76, 219, 109, 254, 186, 197, 179, 60, 238, 101,\n\t\t107, 182, 181, 86, 42, 181, 37, 144, 218, 36, 92, 213, 121,\n\t\t84, 28, 78, 221, 214, 82, 115, 51, 243, 204, 148, 50, 38,\n\t\t247, 29, 25, 245, 87, 60, 129, 179, 178, 179, 49, 146, 78,\n\t\t137, 193, 125, 57, 218, 144, 19, 33, 13, 93, 157, 156, 180,\n\t\t175, 54, 197, 65, 240, 139, 146, 50, 137, 23, 101, 238, 26,\n\t\t2, 234, 116, 19, 130, 245, 46, 101, 194, 199, 185, 48, 249,\n\t\t9, 111, 83, 40, 237, 156, 189, 45, 181, 214, 49, 217, 147,\n\t\t196, 24, 154, 154, 39, 181, 172, 157, 70, 65, 26, 149, 216,\n\t\t93, 9, 70, 123, 125, 174, 147, 68, 245, 112, 196, 72, 183,\n\t\t90, 167, 172, 61, 57, 246, 238, 91, 215, 129, 206, 235, 42,\n\t\t82, 185, 48, 120, 114, 205, 26, 87, 28, 206, 164, 231, 139,\n\t\t254, 136, 41, 223, 228, 217, 163, 76, 206, 140, 196, 95, 27,\n\t\t243, 92, 176, 41, 152, 167, 206, 114, 77, 174, 205, 51, 48,\n\t\t34, 123, 50, 183, 244, 208, 234, 152, 7, 178, 148, 70, 234,\n\t\t198, 238, 137, 46, 68, 155, 179, 99, 114, 232, 131, 99, 232,\n\t\t66, 104, 46, 210, 143, 88, 8, 226, 251, 182, 153, 56, 47,\n\t\t224, 84, 207, 91, 159, 171, 206, 44, 79, 242, 164, 47, 246,\n\t\t145, 37, 241, 98, 163, 11, 53, 106, 197, 100, 142, 188, 239,\n\t\t140, 13, 116, 49, 7, 179, 181, 108, 171, 119, 36, 151, 240,\n\t\t244, 237, 218, 206, 138, 203, 65, 95, 88, 60, 161, 1, 199,\n\t\t228, 185, 170, 207, 243, 69, 81, 95, 212, 105, 71, 115, 69,\n\t\t229, 229, 14, 243, 69, 52, 45, 81, 204, 42, 49, 103, 221,\n\t\t9, 219, 85, 219, 212, 207, 164, 156, 200, 238, 117, 138, 244,\n\t\t231, 231, 159, 191, 252, 252, 246, 86, 231, 231, 75, 189,\n\t\t35, 74, 21, 166, 194, 156, 186, 45, 57, 155, 24, 162, 237,\n\t\t190, 14, 239, 109, 242, 193, 147, 86, 182, 149, 74, 112, 52,\n\t\t174, 240, 147, 187, 118, 249, 174, 226, 197, 49, 6, 46, 54,\n\t\t210, 248, 94, 125, 89, 8, 104, 215, 124, 200, 12, 225, 72,\n\t\t93, 54, 113, 171, 0, 158, 16, 79, 218, 18, 251, 68, 183, 224,\n\t\t230, 182, 159, 172, 155, 99, 160, 90, 106, 37, 26, 242, 126,\n\t\t139, 243, 39, 95, 173, 121, 217, 124, 117, 182, 18, 195, 131,\n\t\t239, 228, 171, 195, 152, 239, 78, 147, 200, 20, 27, 231, 254,\n\t\t100, 157, 179, 11, 36, 184, 123, 194, 112, 162, 23, 218, 9,\n\t\t140, 4, 243, 160, 21, 50, 178, 187, 138, 23, 103, 104, 26,\n\t\t234, 154, 34, 153, 161, 129, 57, 152, 83, 144, 217, 7, 139,\n\t\t102, 32, 133, 121, 62, 89, 12, 166, 151, 55, 34, 107, 3, 19,\n\t\t128, 209, 222, 12, 232, 182, 252, 194, 67, 159, 148, 236,\n\t\t118, 90, 14, 3, 67, 223, 48, 118, 12, 157, 44, 100, 169, 68,\n\t\t179, 22, 128, 95, 127, 121, 8, 49, 88, 159, 50, 89, 1, 146,\n\t\t235, 167, 73, 92, 235, 148, 100, 188, 13, 206, 207, 235, 127,\n\t\t95, 145, 253, 153, 172, 36, 233, 27, 12, 226, 47, 31, 62,\n\t\t222, 106, 0, 125, 105, 95, 191, 58, 230, 51, 171, 9, 177,\n\t\t169, 19, 151, 98, 3, 97, 131, 198, 61, 104, 182, 10, 139,\n\t\t162, 15, 228, 52, 160, 232, 0, 245, 63, 115, 224, 63, 212,\n\t\t221, 155, 177, 63, 193, 230, 227, 20, 134, 25, 179, 162, 74,\n\t\t233, 77, 96, 97, 134, 68, 165, 198, 188, 8, 221, 178, 165,\n\t\t27, 31, 252, 20, 138, 172, 192, 242, 221, 66, 232, 171, 58,\n\t\t130, 43, 153, 251, 216, 146, 88, 72, 43, 27, 221, 15, 179,\n\t\t127, 204, 215, 86, 133, 232, 7, 113, 231, 16, 63, 49, 121,\n\t\t163, 39, 183, 100, 97, 212, 43, 196, 83, 143, 137, 80, 215,\n\t\t24, 30, 152, 112, 99, 83, 138, 49, 201, 249, 201, 97, 249,\n\t\t68, 134, 207, 120, 86, 72, 222, 169, 171, 50, 189, 20, 91,\n\t\t70, 196, 84, 193, 76, 181, 243, 107, 135, 210, 169, 217, 85,\n\t\t162, 217, 98, 89, 171, 10, 107, 205, 8, 95, 226, 91, 72, 161,\n\t\t106, 60, 27, 67, 78, 91, 23, 25, 211, 151, 102, 243, 97, 68,\n\t\t25, 118, 150, 97, 231, 73, 2, 58, 220, 208, 200, 10, 60, 153,\n\t\t249, 108, 195, 128, 89, 11, 184, 1, 47, 98, 180, 12, 211,\n\t\t176, 118, 156, 11, 115, 134, 8, 189, 197, 136, 1, 177, 21,\n\t\t66, 80, 221, 245, 253, 155, 27, 244, 215, 205, 38, 190, 244,\n\t\t127, 125, 179, 73, 114, 236, 134, 98, 219, 88, 24, 18, 184,\n\t\t1, 66, 217, 128, 232, 20, 93, 224, 1, 81, 118, 113, 46, 244,\n\t\t64, 17, 105, 5, 157, 152, 69, 152, 110, 77, 86, 11, 74, 162,\n\t\t156, 105, 10, 15, 67, 229, 247, 27, 77, 75, 83, 96, 149, 64,\n\t\t173, 165, 226, 56, 37, 108, 214, 85, 47, 1, 180, 11, 84, 140,\n\t\t238, 57, 122, 227, 41, 122, 209, 137, 228, 52, 232, 228, 18,\n\t\t182, 106, 119, 120, 118, 117, 122, 200, 244, 243, 9, 146,\n\t\t155, 217, 90, 17, 193, 79, 113, 219, 236, 106, 227, 97, 35,\n\t\t212, 143, 199, 196, 38, 163, 203, 67, 44, 206, 122, 19, 39,\n\t\t95, 113, 24, 240, 145, 129, 116, 182, 14, 162, 76, 206, 86,\n\t\t140, 119, 52, 174, 70, 120, 63, 4, 23, 113, 80, 232, 236,\n\t\t16, 146, 76, 91, 154, 116, 169, 20, 156, 179, 201, 207, 49,\n\t\t107, 234, 29, 129, 9, 27, 35, 91, 35, 85, 183, 96, 227, 169,\n\t\t16, 237, 154, 103, 212, 15, 104, 66, 242, 13, 10, 1, 179,\n\t\t142, 73, 71, 197, 17, 147, 94, 180, 111, 178, 210, 217, 20,\n\t\t12, 228, 52, 143, 237, 164, 233, 253, 140, 121, 188, 28, 94,\n\t\t59, 14, 239, 62, 63, 127, 122, 251, 252, 203, 221, 81, 184,\n\t\t147, 32, 115, 104, 114, 56, 66, 73, 54, 153, 56, 229, 214,\n\t\t211, 100, 1, 200, 231, 132, 68, 108, 20, 230, 182, 186, 249,\n\t\t138, 120, 133, 52, 55, 229, 36, 118, 39, 186, 52, 205, 213,\n\t\t151, 209, 180, 104, 243, 245, 55, 151, 7, 31, 189, 200, 160,\n\t\t120, 193, 237, 203, 244, 9, 90, 186, 72, 23, 9, 244, 115,\n\t\t245, 27, 106, 214, 162, 72, 89, 115, 127, 210, 87, 83, 210,\n\t\t228, 247, 110, 55, 93, 66, 249, 176, 255, 158, 133, 227, 171,\n\t\t239, 95, 37, 57, 47, 95, 30, 199, 31, 183, 231, 243, 211,\n\t\t231, 63, 156, 158, 255, 116, 55, 213, 119, 210, 228, 186,\n\t\t29, 67, 39, 63, 246, 88, 79, 91, 131, 94, 103, 146, 251, 158,\n\t\t109, 53, 201, 159, 128, 49, 232, 50, 238, 185, 221, 171, 9,\n\t\t33, 157, 54, 118, 224, 142, 124, 33, 78, 89, 62, 2, 149, 121,\n\t\t162, 175, 228, 155, 11, 9, 111, 217, 248, 185, 108, 167, 205,\n\t\t3, 160, 21, 11, 230, 97, 94, 255, 115, 150, 242, 20, 33, 171,\n\t\t232, 173, 242, 156, 227, 64, 146, 46, 233, 14, 231, 53, 227,\n\t\t230, 3, 34, 113, 251, 167, 141, 107, 169, 242, 242, 16, 218,\n\t\t60, 50, 109, 18, 206, 14, 125, 129, 115, 103, 20, 2, 217,\n\t\t41, 67, 152, 239, 57, 251, 224, 142, 201, 29, 38, 183, 225,\n\t\t38, 37, 237, 54, 159, 231, 199, 228, 206, 243, 232, 28, 195,\n\t\t148, 114, 94, 157, 238, 15, 31, 95, 190, 60, 190, 255, 252,\n\t\t248, 211, 221, 76, 191, 3, 125, 15, 147, 37, 52, 209, 213,\n\t\t81, 212, 55, 99, 202, 38, 132, 3, 102, 26, 33, 69, 250, 35,\n\t\t254, 210, 98, 253, 81, 84, 160, 39, 10, 45, 109, 180, 60,\n\t\t180, 169, 91, 109, 238, 126, 132, 198, 206, 160, 7, 215, 47,\n\t\t222, 183, 235, 23, 233, 48, 145, 152, 145, 188, 21, 39, 243,\n\t\t42, 38, 31, 2, 98, 160, 80, 19, 209, 139, 3, 43, 217, 101,\n\t\t211, 236, 27, 108, 187, 150, 76, 195, 230, 19, 69, 245, 42,\n\t\t191, 6, 184, 67, 139, 104, 235, 140, 182, 142, 152, 17, 52,\n\t\t218, 55, 158, 31, 46, 15, 177, 206, 189, 21, 189, 183, 149,\n\t\t148, 215, 80, 56, 249, 176, 11, 170, 116, 251, 97, 233, 143,\n\t\t221, 250, 114, 255, 11, 249, 251, 226, 131, 185, 169, 194,\n\t\t223, 195, 203, 10, 217, 180, 26, 225, 1, 151, 135, 52, 175,\n\t\t9, 19, 230, 174, 30, 240, 102, 221, 98, 53, 250, 217, 79,\n\t\t17, 129, 237, 29, 201, 238, 121, 211, 140, 17, 48, 54, 174,\n\t\t66, 215, 202, 214, 128, 30, 1, 76, 83, 55, 15, 81, 187, 108,\n\t\t185, 113, 4, 16, 109, 196, 103, 140, 230, 63, 214, 229, 223,\n\t\t76, 175, 238, 251, 114, 155, 251, 193, 205, 107, 90, 110,\n\t\t116, 15, 187, 129, 64, 119, 205, 236, 76, 23, 238, 83, 30,\n\t\t250, 194, 47, 203, 77, 95, 99, 86, 231, 228, 209, 251, 215,\n\t\t210, 128, 59, 187, 32, 242, 206, 148, 33, 99, 196, 93, 174,\n\t\t63, 12, 250, 230, 169, 47, 25, 94, 2, 194, 172, 239, 250,\n\t\t67, 108, 237, 110, 118, 121, 132, 90, 194, 248, 214, 220,\n\t\t242, 155, 117, 122, 189, 51, 251, 57, 35, 101, 188, 206, 43,\n\t\t102, 90, 98, 157, 80, 12, 175, 171, 197, 184, 60, 196, 78,\n\t\t56, 103, 55, 16, 27, 1, 97, 154, 186, 233, 125, 178, 166,\n\t\t36, 195, 249, 65, 240, 13, 182, 95, 113, 59, 194, 62, 205,\n\t\t187, 92, 90, 56, 63, 185, 97, 230, 202, 188, 218, 108, 35,\n\t\t153, 94, 153, 83, 23, 198, 76, 254, 142, 21, 16, 10, 220,\n\t\t184, 188, 112, 147, 231, 25, 114, 187, 9, 139, 94, 16, 218,\n\t\t74, 161, 221, 145, 236, 114, 125, 108, 250, 54, 188, 126,\n\t\t211, 119, 134, 184, 222, 187, 233, 139, 245, 133, 232, 193,\n\t\t100, 208, 232, 229, 219, 122, 59, 153, 12, 241, 83, 125, 41,\n\t\t117, 1, 141, 134, 190, 16, 93, 152, 239, 195, 203, 239, 222,\n\t\t171, 111, 195, 251, 241, 74, 12, 229, 48, 48, 199, 110, 77,\n\t\t47, 166, 27, 115, 50, 240, 46, 188, 28, 239, 11, 209, 220,\n\t\t76, 241, 235, 110, 140, 167, 15, 227, 143, 183, 206, 206,\n\t\t190, 60, 253, 47, 192, 230, 39, 186, 141, 251, 220, 244, 108,\n\t\t234, 226, 8, 98, 8, 27, 66, 133, 249, 207, 203, 118, 85, 181,\n\t\t237, 190, 144, 144, 99, 8, 52, 178, 190, 127, 185, 174, 91,\n\t\t95, 92, 14, 15, 209, 197, 127, 149, 55, 191, 182, 76, 143,\n\t\t247, 22, 165, 234, 190, 14, 124, 39, 132, 108, 115, 54, 159,\n\t\t10, 238, 147, 206, 156, 240, 113, 243, 161, 79, 233, 242,\n\t\t114, 141, 142, 47, 124, 61, 123, 123, 139, 144, 127, 161,\n\t\t79, 187, 111, 102, 29, 23, 127, 13, 139, 107, 119, 104, 220,\n\t\t135, 216, 41, 122, 144, 235, 196, 55, 37, 178, 141, 132, 104,\n\t\t3, 10, 164, 248, 15, 199, 200, 150, 197, 19, 110, 203, 204,\n\t\t52, 232, 56, 101, 229, 226, 188, 214, 111, 248, 34, 178, 17,\n\t\t236, 117, 253, 252, 135, 47, 111, 127, 30, 127, 124, 186,\n\t\t3, 58, 84, 255, 117, 211, 132, 6, 153, 241, 229, 148, 74,\n\t\t177, 187, 72, 45, 195, 217, 90, 75, 44, 228, 70, 239, 56,\n\t\t56, 160, 9, 214, 69, 199, 158, 245, 34, 167, 173, 24, 26,\n\t\t242, 179, 106, 99, 47, 137, 61, 235, 125, 171, 4, 115, 138,\n\t\t189, 9, 254, 205, 211, 153, 150, 10, 159, 73, 29, 54, 28,\n\t\t199, 49, 168, 161, 176, 44, 72, 122, 118, 118, 43, 9, 49,\n\t\t80, 64, 4, 223, 91, 72, 36, 113, 101, 31, 234, 9, 254, 99,\n\t\t147, 243, 40, 150, 189, 46, 130, 47, 141, 195, 252, 212, 84,\n\t\t248, 109, 76, 118, 166, 40, 235, 215, 235, 180, 102, 204,\n\t\t119, 229, 150, 123, 108, 44, 100, 250, 156, 66, 175, 102,\n\t\t135, 109, 162, 113, 249, 208, 40, 22, 131, 214, 30, 183, 24,\n\t\t72, 239, 64, 120, 91, 239, 124, 153, 223, 182, 224, 226, 100,\n\t\t73, 124, 183, 37, 165, 108, 154, 13, 49, 71, 166, 18, 164,\n\t\t151, 144, 208, 72, 212, 121, 186, 7, 147, 151, 11, 196, 145,\n\t\t202, 187, 210, 187, 107, 233, 57, 146, 231, 145, 111, 37,\n\t\t135, 56, 231, 60, 196, 180, 15, 152, 195, 115, 126, 32, 1,\n\t\t186, 69, 242, 219, 171, 52, 250, 202, 106, 127, 227, 197,\n\t\t192, 236, 179, 237, 93, 139, 99, 14, 55, 151, 66, 250, 3,\n\t\t71, 24, 52, 50, 66, 207, 231, 146, 107, 249, 53, 170, 43,\n\t\t58, 14, 222, 209, 108, 56, 65, 239, 230, 83, 61, 146, 77,\n\t\t48, 158, 196, 107, 129, 152, 147, 163, 119, 175, 27, 143,\n\t\t190, 252, 252, 211, 219, 211, 29, 213, 173, 119, 16, 156,\n\t\t24, 20, 6, 232, 58, 161, 47, 16, 23, 10, 106, 38, 14, 122,\n\t\t183, 101, 70, 182, 240, 245, 36, 22, 100, 173, 25, 36, 80,\n\t\t55, 199, 250, 169, 84, 9, 170, 193, 156, 95, 170, 198, 39,\n\t\t103, 203, 217, 167, 68, 38, 197, 60, 5, 251, 204, 247, 172,\n\t\t17, 140, 191, 241, 238, 92, 218, 112, 240, 236, 32, 194, 188,\n\t\t156, 175, 153, 37, 47, 163, 132, 73, 199, 105, 162, 9, 170,\n\t\t82, 11, 132, 74, 226, 202, 233, 50, 165, 247, 146, 242, 156,\n\t\t93, 56, 11, 126, 205, 147, 39, 229, 99, 101, 59, 252, 97,\n\t\t112, 95, 188, 99, 205, 137, 167, 110, 157, 55, 239, 179, 13,\n\t\t199, 22, 175, 190, 102, 107, 43, 241, 121, 124, 37, 158, 225,\n\t\t177, 50, 216, 47, 9, 142, 122, 14, 255, 145, 73, 155, 65,\n\t\t179, 62, 146, 55, 218, 2, 30, 4, 24, 97, 179, 76, 116, 97,\n\t\t214, 150, 184, 239, 36, 220, 37, 124, 177, 186, 65, 104, 31,\n\t\t185, 166, 153, 140, 12, 162, 237, 106, 169, 87, 55, 72, 81,\n\t\t99, 168, 58, 163, 114, 139, 19, 121, 103, 138, 48, 61, 52,\n\t\t134, 171, 134, 247, 209, 248, 85, 187, 128, 68, 233, 27, 247,\n\t\t6, 111, 180, 175, 40, 243, 234, 191, 62, 6, 58, 250, 106,\n\t\t171, 226, 142, 4, 123, 179, 226, 30, 81, 17, 78, 219, 170,\n\t\t145, 18, 157, 222, 137, 144, 13, 196, 99, 57, 230, 120, 41,\n\t\t128, 77, 187, 14, 209, 148, 48, 203, 73, 253, 206, 232, 113,\n\t\t132, 139, 230, 61, 179, 119, 49, 223, 133, 225, 106, 234,\n\t\t73, 56, 182, 160, 106, 114, 248, 67, 36, 10, 117, 40, 127,\n\t\t3, 107, 119, 207, 141, 215, 234, 152, 197, 245, 19, 78, 78,\n\t\t110, 57, 202, 51, 223, 206, 37, 254, 115, 206, 30, 248, 147,\n\t\t21, 36, 86, 134, 161, 64, 231, 253, 15, 142, 243, 34, 156,\n\t\t231, 227, 92, 195, 245, 143, 246, 15, 191, 253, 77, 194, 206,\n\t\t82, 39, 117, 199, 241, 196, 182, 181, 193, 12, 28, 138, 150,\n\t\t56, 167, 190, 66, 30, 222, 77, 12, 255, 200, 138, 169, 2,\n\t\t224, 8, 80, 49, 90, 124, 117, 245, 200, 87, 165, 121, 122,\n\t\t231, 140, 209, 81, 3, 102, 69, 222, 36, 142, 139, 187, 254,\n\t\t83, 249, 40, 208, 207, 243, 214, 157, 112, 227, 162, 73, 23,\n\t\t42, 215, 228, 238, 235, 64, 246, 73, 197, 97, 44, 124, 106,\n\t\t198, 143, 196, 85, 2, 190, 93, 158, 65, 87, 175, 243, 94,\n\t\t159, 62, 157, 238, 207, 206, 93, 56, 160, 189, 173, 159, 156,\n\t\t243, 170, 192, 37, 213, 99, 147, 89, 61, 81, 56, 20, 165,\n\t\t214, 94, 20, 170, 94, 3, 82, 1, 139, 79, 65, 50, 125, 99,\n\t\t9, 64, 69, 1, 210, 27, 145, 67, 89, 3, 123, 170, 168, 27,\n\t\t191, 3, 46, 178, 149, 0, 142, 229, 49, 40, 14, 51, 107, 32,\n\t\t60, 248, 122, 212, 12, 12, 62, 154, 11, 162, 75, 86, 179,\n\t\t51, 121, 157, 23, 7, 81, 80, 114, 38, 39, 55, 45, 242, 226,\n\t\t130, 135, 103, 181, 61, 198, 178, 124, 161, 243, 206, 47,\n\t\t186, 73, 52, 226, 5, 20, 20, 183, 40, 182, 14, 154, 73, 211,\n\t\t189, 97, 58, 76, 248, 65, 117, 146, 87, 73, 167, 92, 87, 12,\n\t\t47, 180, 154, 220, 92, 8, 79, 75, 253, 67, 44, 233, 200, 129,\n\t\t169, 33, 148, 171, 232, 12, 213, 253, 206, 53, 156, 33, 123,\n\t\t17, 168, 162, 0, 164, 34, 60, 66, 213, 193, 159, 46, 218,\n\t\t198, 162, 214, 229, 240, 16, 74, 32, 13, 58, 199, 231, 2,\n\t\t92, 61, 64, 45, 157, 34, 46, 98, 136, 226, 133, 15, 156, 224,\n\t\t162, 55, 184, 202, 4, 209, 82, 192, 198, 147, 197, 90, 129,\n\t\t112, 146, 85, 246, 136, 135, 122, 99, 142, 51, 9, 245, 35,\n\t\t53, 20, 120, 40, 248, 253, 169, 159, 229, 134, 144, 146, 48,\n\t\t57, 109, 9, 10, 253, 201, 74, 214, 240, 141, 27, 228, 79,\n\t\t31, 62, 190, 123, 254, 211, 203, 221, 254, 215, 48, 55, 206,\n\t\t196, 156, 108, 60, 249, 22, 45, 245, 56, 80, 232, 93, 95,\n\t\t137, 11, 57, 110, 84, 127, 246, 147, 36, 94, 30, 8, 9, 78,\n\t\t167, 217, 115, 224, 195, 35, 127, 77, 240, 35, 223, 251, 229,\n\t\t33, 184, 104, 155, 68, 163, 164, 216, 202, 179, 81, 152, 196,\n\t\t235, 188, 133, 41, 50, 163, 73, 36, 115, 1, 125, 51, 167,\n\t\t128, 73, 132, 68, 209, 229, 246, 190, 57, 251, 186, 87, 241,\n\t\t227, 199, 119, 159, 159, 63, 188, 187, 27, 220, 91, 12, 174,\n\t\t201, 154, 134, 185, 196, 204, 120, 16, 138, 216, 103, 236,\n\t\t197, 128, 201, 132, 42, 134, 49, 165, 82, 28, 234, 202, 183,\n\t\t195, 108, 2, 2, 174, 21, 210, 248, 140, 199, 107, 8, 73, 200,\n\t\t244, 149, 181, 209, 104, 156, 231, 70, 64, 20, 77, 122, 157,\n\t\t162, 202, 241, 242, 124, 33, 72, 127, 50, 173, 216, 124, 158,\n\t\t180, 40, 29, 67, 170, 4, 24, 159, 133, 107, 164, 172, 215,\n\t\t16, 26, 186, 135, 161, 165, 144, 154, 35, 176, 201, 231, 73,\n\t\t193, 0, 197, 132, 127, 232, 150, 89, 149, 190, 131, 95, 102,\n\t\t227, 206, 210, 242, 184, 69, 142, 62, 113, 251, 91, 145, 234,\n\t\t242, 142, 238, 1, 207, 201, 7, 251, 180, 204, 80, 250, 44,\n\t\t47, 110, 118, 218, 123, 183, 186, 237, 35, 48, 199, 88, 55,\n\t\t254, 123, 121, 136, 169, 217, 57, 61, 217, 150, 195, 220,\n\t\t31, 93, 148, 59, 73, 200, 34, 78, 90, 91, 218, 230, 206, 83,\n\t\t112, 154, 111, 100, 20, 104, 214, 99, 203, 108, 135, 69, 92,\n\t\t70, 90, 225, 121, 243, 210, 240, 249, 92, 158, 212, 113, 58,\n\t\t178, 181, 123, 192, 231, 208, 207, 217, 169, 100, 214, 102,\n\t\t165, 142, 107, 54, 26, 130, 188, 209, 131, 102, 251, 17, 8,\n\t\t167, 77, 229, 190, 11, 83, 169, 0, 89, 126, 135, 246, 109,\n\t\t19, 196, 244, 97, 168, 163, 2, 222, 95, 162, 216, 129, 197,\n\t\t245, 121, 85, 200, 8, 47, 15, 243, 156, 85, 178, 87, 205,\n\t\t57, 81, 239, 96, 161, 235, 30, 150, 68, 142, 88, 171, 1, 245,\n\t\t23, 187, 48, 219, 86, 48, 169, 92, 33, 145, 93, 182, 172,\n\t\t1, 111, 50, 88, 0, 126, 206, 174, 217, 98, 72, 232, 75, 101,\n\t\t175, 241, 198, 203, 67, 232, 126, 18, 218, 217, 193, 195,\n\t\t85, 15, 249, 161, 218, 67, 90, 125, 116, 82, 216, 70, 121,\n\t\t229, 190, 139, 249, 59, 250, 151, 181, 115, 89, 108, 251,\n\t\t120, 254, 174, 127, 250, 190, 203, 67, 108, 217, 206, 59,\n\t\t208, 143, 117, 228, 113, 102, 149, 76, 104, 197, 60, 162,\n\t\t66, 79, 14, 66, 80, 132, 123, 74, 139, 142, 200, 82, 187,\n\t\t107, 18, 195, 56, 112, 39, 209, 178, 96, 253, 103, 102, 13,\n\t\t97, 81, 110, 168, 9, 243, 62, 226, 21, 128, 70, 252, 207,\n\t\t183, 92, 135, 126, 190, 51, 124, 214, 177, 108, 68, 110, 18,\n\t\t226, 144, 44, 133, 158, 115, 130, 154, 0, 55, 29, 181, 38,\n\t\t118, 68, 155, 20, 41, 77, 6, 178, 131, 139, 72, 19, 158, 82,\n\t\t223, 205, 46, 78, 169, 60, 79, 94, 160, 225, 41, 84, 176,\n\t\t146, 123, 80, 27, 102, 22, 187, 28, 219, 208, 17, 181, 99,\n\t\t197, 46, 81, 134, 217, 83, 144, 75, 161, 124, 42, 22, 44,\n\t\t155, 251, 46, 180, 103, 93, 172, 237, 178, 114, 115, 84, 78,\n\t\t225, 65, 40, 38, 165, 16, 50, 25, 224, 229, 193, 247, 102,\n\t\t187, 137, 33, 74, 96, 84, 233, 147, 234, 115, 119, 121, 34,\n\t\t84, 166, 20, 145, 67, 103, 194, 235, 164, 73, 124, 4, 161,\n\t\t18, 144, 40, 104, 158, 134, 199, 3, 43, 2, 244, 10, 16, 130,\n\t\t166, 3, 99, 218, 5, 153, 221, 79, 126, 213, 40, 158, 26, 138,\n\t\t180, 232, 28, 120, 68, 178, 90, 97, 112, 49, 101, 152, 71,\n\t\t141, 198, 75, 43, 35, 99, 165, 10, 184, 111, 96, 47, 227,\n\t\t227, 229, 33, 5, 103, 146, 4, 225, 86, 169, 10, 247, 152,\n\t\t7, 183, 22, 196, 99, 62, 171, 11, 216, 224, 71, 55, 149, 18,\n\t\t56, 134, 166, 44, 16, 140, 32, 226, 214, 205, 238, 133, 124,\n\t\t171, 144, 253, 10, 167, 12, 194, 120, 134, 15, 65, 12, 16,\n\t\t124, 224, 30, 224, 11, 12, 42, 26, 160, 3, 87, 150, 70, 243,\n\t\t14, 43, 110, 19, 143, 151, 171, 99, 208, 136, 87, 147, 221,\n\t\t34, 106, 27, 226, 25, 171, 176, 14, 203, 50, 97, 9, 9, 212,\n\t\t248, 220, 147, 254, 43, 166, 195, 203, 195, 153, 232, 9, 217,\n\t\t1, 197, 128, 247, 131, 70, 212, 221, 194, 138, 190, 1, 157,\n\t\t5, 66, 21, 169, 7, 47, 150, 106, 71, 21, 69, 40, 80, 57, 14,\n\t\t153, 64, 130, 46, 134, 10, 135, 69, 163, 50, 171, 63, 56,\n\t\t59, 203, 241, 5, 135, 172, 21, 196, 167, 170, 15, 79, 10,\n\t\t166, 225, 236, 228, 46, 74, 192, 41, 12, 46, 64, 135, 238,\n\t\t23, 97, 152, 51, 189, 20, 92, 147, 98, 113, 232, 205, 234,\n\t\t168, 110, 32, 199, 136, 0, 21, 57, 220, 17, 142, 132, 2, 85,\n\t\t64, 99, 52, 36, 154, 110, 124, 9, 0, 62, 246, 52, 2, 54, 29,\n\t\t126, 102, 189, 41, 75, 142, 29, 10, 90, 207, 196, 30, 71,\n\t\t167, 173, 48, 192, 66, 113, 71, 146, 192, 98, 72, 204, 35,\n\t\t145, 161, 152, 141, 247, 201, 230, 33, 215, 186, 106, 62,\n\t\t192, 97, 24, 95, 77, 67, 40, 29, 225, 138, 178, 93, 160, 28,\n\t\t47, 130, 153, 151, 157, 25, 160, 9, 129, 215, 15, 60, 189,\n\t\t87, 224, 110, 185, 13, 68, 202, 206, 204, 11, 12, 47, 38,\n\t\t167, 8, 57, 66, 48, 61, 85, 188, 184, 114, 227, 46, 247, 34,\n\t\t115, 43, 171, 14, 89, 39, 8, 172, 48, 137, 114, 151, 146,\n\t\t201, 20, 177, 136, 107, 140, 109, 85, 42, 176, 10, 49, 219,\n\t\t100, 170, 188, 144, 146, 246, 28, 70, 67, 74, 158, 69, 43,\n\t\t43, 132, 167, 38, 93, 135, 175, 221, 70, 240, 148, 177, 139,\n\t\t144, 24, 87, 128, 30, 97, 121, 200, 184, 142, 184, 91, 53,\n\t\t208, 221, 204, 167, 155, 248, 44, 166, 58, 9, 241, 4, 233,\n\t\t140, 72, 10, 132, 1, 104, 21, 156, 90, 21, 109, 148, 97, 247,\n\t\t149, 109, 84, 25, 124, 54, 64, 168, 37, 230, 48, 174, 12,\n\t\t122, 159, 198, 7, 15, 135, 161, 241, 169, 214, 254, 3, 203,\n\t\t134, 101, 199, 37, 51, 86, 240, 53, 89, 80, 184, 120, 224,\n\t\t152, 50, 167, 34, 81, 71, 52, 78, 251, 6, 73, 18, 161, 26,\n\t\t137, 226, 185, 125, 116, 158, 46, 116, 56, 132, 56, 121, 191,\n\t\t226, 230, 37, 142, 219, 80, 115, 127, 232, 93, 183, 252, 213,\n\t\t16, 66, 81, 78, 128, 190, 65, 239, 99, 61, 228, 186, 157,\n\t\t227, 228, 190, 146, 170, 221, 120, 42, 160, 239, 72, 20, 254,\n\t\t108, 119, 60, 66, 28, 250, 136, 5, 67, 83, 202, 158, 173,\n\t\t170, 0, 213, 211, 101, 172, 185, 220, 118, 241, 213, 121,\n\t\t9, 244, 190, 191, 13, 236, 136, 99, 167, 129, 174, 86, 92,\n\t\t114, 131, 3, 1, 4, 173, 90, 121, 59, 31, 63, 238, 105, 193,\n\t\t16, 120, 255, 48, 137, 33, 149, 8, 127, 175, 129, 112, 160,\n\t\t86, 70, 158, 13, 54, 96, 48, 65, 186, 60, 248, 22, 77, 172,\n\t\t193, 134, 43, 191, 193, 41, 159, 71, 129, 221, 194, 123, 80,\n\t\t20, 139, 85, 209, 122, 52, 128, 162, 146, 136, 80, 60, 241,\n\t\t206, 36, 218, 170, 223, 106, 232, 63, 132, 91, 196, 124, 243,\n\t\t217, 30, 5, 148, 108, 13, 112, 131, 194, 172, 235, 62, 226,\n\t\t24, 179, 135, 17, 245, 10, 227, 165, 40, 66, 195, 227, 146,\n\t\t26, 132, 91, 230, 185, 70, 148, 56, 28, 171, 46, 209, 18,\n\t\t125, 23, 214, 56, 146, 208, 90, 186, 77, 4, 135, 33, 240,\n\t\t50, 118, 161, 220, 116, 232, 132, 170, 206, 245, 174, 94,\n\t\t81, 206, 102, 165, 168, 124, 244, 114, 117, 118, 73, 91, 96,\n\t\t181, 7, 130, 5, 170, 152, 195, 234, 221, 121, 27, 204, 70,\n\t\t7, 13, 54, 169, 145, 215, 243, 10, 163, 199, 111, 88, 46,\n\t\t117, 194, 37, 249, 149, 211, 194, 97, 170, 153, 80, 11, 107,\n\t\t16, 133, 111, 145, 243, 164, 120, 11, 4, 79, 4, 93, 167, 196,\n\t\t28, 60, 97, 172, 122, 26, 81, 116, 69, 141, 121, 80, 224,\n\t\t68, 48, 40, 70, 168, 225, 126, 22, 42, 172, 33, 88, 65, 16,\n\t\t65, 253, 130, 236, 238, 174, 92, 146, 6, 225, 194, 58, 3,\n\t\t35, 171, 167, 73, 46, 119, 169, 24, 170, 217, 115, 228, 211,\n\t\t192, 207, 133, 15, 43, 18, 242, 128, 155, 18, 166, 205, 177,\n\t\t50, 24, 60, 192, 142, 184, 8, 251, 71, 146, 148, 175, 129,\n\t\t82, 131, 5, 18, 131, 101, 30, 233, 167, 20, 109, 152, 98,\n\t\t106, 123, 83, 248, 160, 156, 176, 35, 13, 196, 236, 77, 148,\n\t\t18, 154, 241, 69, 152, 67, 191, 124, 183, 229, 202, 41, 7,\n\t\t5, 186, 251, 181, 145, 132, 13, 82, 230, 22, 114, 88, 193,\n\t\t192, 241, 156, 140, 253, 165, 230, 180, 176, 132, 56, 249,\n\t\t32, 209, 173, 149, 1, 235, 202, 127, 73, 144, 28, 244, 30,\n\t\t86, 43, 242, 20, 225, 110, 162, 75, 224, 42, 53, 28, 173,\n\t\t223, 69, 48, 14, 208, 72, 80, 219, 188, 71, 69, 173, 52, 2,\n\t\t34, 74, 109, 193, 205, 219, 71, 222, 140, 117, 136, 107, 123,\n\t\t236, 66, 242, 50, 185, 61, 47, 67, 246, 150, 119, 225, 171,\n\t\t243, 10, 30, 180, 130, 152, 6, 9, 250, 186, 120, 37, 185,\n\t\t176, 19, 248, 102, 224, 114, 43, 12, 73, 116, 6, 20, 4, 13,\n\t\t141, 78, 5, 102, 70, 146, 235, 168, 207, 168, 167, 172, 39,\n\t\t222, 70, 200, 112, 35, 238, 152, 84, 234, 78, 211, 105, 67,\n\t\t162, 152, 201, 35, 25, 9, 127, 122, 0, 166, 152, 12, 144,\n\t\t204, 161, 195, 30, 93, 132, 166, 134, 190, 179, 83, 194, 208,\n\t\t11, 202, 41, 215, 47, 216, 116, 201, 48, 53, 144, 160, 101,\n\t\t193, 206, 153, 33, 149, 240, 58, 184, 7, 112, 91, 193, 208,\n\t\t229, 149, 15, 172, 114, 59, 176, 162, 73, 184, 116, 98, 142,\n\t\t113, 33, 144, 239, 65, 32, 111, 5, 162, 13, 188, 71, 4, 58,\n\t\t70, 62, 47, 59, 167, 11, 104, 198, 149, 105, 244, 208, 173,\n\t\t97, 107, 134, 149, 153, 6, 216, 161, 177, 192, 243, 202, 137,\n\t\t106, 184, 141, 149, 139, 2, 46, 198, 170, 236, 93, 228, 36,\n\t\t105, 0, 86, 240, 170, 93, 3, 87, 94, 9, 191, 192, 16, 90,\n\t\t136, 180, 178, 133, 202, 28, 176, 186, 101, 160, 123, 8, 176,\n\t\t151, 16, 248, 10, 23, 130, 36, 179, 34, 153, 128, 247, 28,\n\t\t185, 111, 8, 235, 43, 42, 28, 62, 235, 16, 171, 165, 203,\n\t\t161, 131, 228, 80, 178, 34, 213, 2, 136, 238, 175, 36, 161,\n\t\t37, 124, 33, 104, 24, 182, 121, 249, 23, 140, 90, 180, 154,\n\t\t166, 99, 70, 24, 221, 175, 132, 3, 106, 94, 239, 193, 59,\n\t\t193, 35, 195, 211, 229, 166, 151, 73, 230, 104, 62, 84, 226,\n\t\t164, 82, 25, 50, 235, 97, 44, 153, 150, 86, 108, 81, 155,\n\t\t4, 89, 89, 40, 108, 226, 148, 29, 66, 146, 76, 213, 219, 75,\n\t\t246, 164, 144, 248, 21, 145, 115, 69, 228, 203, 202, 45, 130,\n\t\t58, 237, 153, 214, 65, 1, 186, 235, 34, 237, 50, 249, 58,\n\t\t15, 32, 106, 126, 82, 207, 222, 199, 114, 54, 2, 38, 79, 21,\n\t\t204, 201, 193, 210, 4, 145, 157, 51, 136, 109, 224, 140, 116,\n\t\t97, 112, 59, 20, 161, 135, 216, 35, 77, 88, 93, 226, 195,\n\t\t228, 244, 243, 117, 153, 193, 28, 139, 48, 66, 114, 37, 40,\n\t\t38, 5, 54, 92, 134, 152, 0, 14, 55, 119, 149, 152, 42, 200,\n\t\t173, 136, 253, 216, 19, 187, 184, 215, 216, 216, 47, 94, 142,\n\t\t42, 203, 230, 1, 113, 40, 130, 198, 128, 219, 199, 153, 79,\n\t\t235, 238, 231, 9, 11, 115, 200, 200, 192, 69, 224, 77, 188,\n\t\t188, 129, 75, 135, 26, 32, 137, 117, 144, 115, 128, 74, 51,\n\t\t229, 59, 218, 238, 130, 103, 3, 53, 174, 103, 188, 92, 215,\n\t\t125, 78, 185, 202, 139, 48, 86, 93, 30, 18, 71, 18, 85, 179,\n\t\t81, 64, 56, 88, 185, 69, 148, 178, 197, 69, 254, 131, 158,\n\t\t14, 183, 210, 92, 33, 19, 97, 92, 7, 139, 62, 72, 2, 176,\n\t\t195, 192, 5, 74, 190, 40, 64, 116, 227, 176, 128, 130, 100,\n\t\t168, 155, 112, 235, 98, 183, 107, 20, 105, 189, 48, 99, 91,\n\t\t215, 134, 108, 108, 111, 119, 65, 226, 125, 83, 124, 201,\n\t\t6, 143, 240, 121, 128, 247, 2, 227, 178, 246, 175, 48, 200,\n\t\t187, 128, 212, 196, 177, 140, 101, 190, 94, 226, 144, 95,\n\t\t28, 139, 238, 103, 94, 0, 33, 226, 7, 89, 50, 213, 116, 47,\n\t\t51, 125, 100, 38, 85, 170, 225, 37, 179, 139, 95, 172, 225,\n\t\t14, 176, 3, 97, 234, 6, 194, 24, 110, 240, 67, 244, 110, 55,\n\t\t142, 50, 203, 47, 80, 53, 152, 178, 241, 135, 138, 127, 36,\n\t\t129, 115, 32, 7, 9, 236, 17, 53, 238, 128, 196, 171, 244,\n\t\t34, 251, 171, 248, 46, 102, 81, 4, 105, 23, 100, 76, 200,\n\t\t115, 55, 7, 2, 145, 83, 69, 9, 74, 99, 105, 74, 10, 18, 0,\n\t\t20, 230, 238, 162, 141, 38, 244, 62, 69, 247, 184, 147, 148,\n\t\t33, 80, 44, 22, 212, 138, 112, 51, 217, 64, 21, 153, 3, 68,\n\t\t230, 166, 177, 169, 77, 82, 101, 155, 48, 81, 59, 30, 93,\n\t\t21, 251, 64, 130, 84, 144, 90, 48, 116, 152, 102, 112, 203,\n\t\t12, 169, 234, 186, 215, 153, 28, 112, 249, 240, 194, 154,\n\t\t13, 19, 144, 162, 86, 116, 98, 8, 168, 140, 158, 210, 77,\n\t\t129, 155, 72, 160, 19, 18, 97, 28, 59, 33, 44, 245, 51, 206,\n\t\t193, 58, 0, 11, 72, 40, 187, 113, 9, 184, 81, 119, 148, 195,\n\t\t173, 201, 34, 214, 218, 159, 154, 75, 75, 119, 204, 46, 1,\n\t\t170, 74, 118, 42, 172, 234, 236, 129, 215, 223, 153, 103,\n\t\t120, 123, 71, 8, 174, 30, 170, 50, 58, 108, 28, 142, 133,\n\t\t99, 163, 232, 254, 70, 62, 1, 201, 212, 8, 241, 109, 93, 242,\n\t\t42, 134, 52, 132, 4, 125, 213, 10, 241, 238, 243, 135, 183,\n\t\t111, 223, 254, 10, 6, 227, 221, 43, 72, 206, 92, 36, 137,\n\t\t66, 161, 16, 0, 206, 40, 66, 53, 228, 96, 22, 186, 21, 53,\n\t\t95, 67, 189, 234, 119, 192, 189, 226, 231, 242, 223, 229,\n\t\t33, 249, 110, 123, 53, 132, 129, 140, 105, 222, 195, 169,\n\t\t228, 70, 251, 203, 37, 114, 216, 159, 92, 98, 9, 236, 57,\n\t\t147, 19, 71, 125, 32, 103, 99, 179, 181, 104, 115, 8, 121,\n\t\t84, 10, 82, 39, 210, 105, 240, 117, 242, 126, 141, 42, 66,\n\t\t165, 204, 70, 147, 73, 44, 132, 74, 76, 222, 22, 159, 226,\n\t\t97, 84, 103, 83, 75, 83, 34, 107, 133, 242, 25, 77, 170, 192,\n\t\t129, 220, 99, 114, 141, 224, 137, 156, 170, 167, 216, 230,\n\t\t91, 164, 236, 96, 220, 183, 212, 45, 232, 98, 140, 196, 193,\n\t\t116, 215, 197, 247, 60, 102, 227, 41, 116, 96, 102, 4, 111,\n\t\t10, 222, 196, 236, 172, 143, 99, 35, 96, 66, 162, 252, 14,\n\t\t146, 107, 42, 4, 219, 26, 225, 152, 75, 163, 228, 5, 221,\n\t\t81, 188, 194, 84, 109, 106, 61, 142, 108, 91, 78, 137, 54,\n\t\t96, 35, 152, 107, 74, 54, 134, 73, 93, 139, 179, 4, 103, 173,\n\t\t221, 178, 37, 61, 89, 14, 125, 156, 109, 12, 49, 80, 180,\n\t\t201, 249, 189, 119, 213, 6, 239, 13, 133, 162, 245, 188, 42,\n\t\t46, 120, 18, 34, 60, 37, 38, 43, 217, 18, 51, 222, 162, 141,\n\t\t156, 26, 139, 82, 50, 145, 20, 74, 224, 81, 239, 162, 37,\n\t\t248, 106, 11, 54, 179, 127, 254, 220, 164, 116, 28, 154, 141,\n\t\t190, 141, 110, 83, 77, 133, 113, 166, 33, 27, 138, 150, 80,\n\t\t153, 254, 187, 216, 39, 139, 209, 179, 109, 49, 81, 244, 7,\n\t\t71, 148, 55, 115, 164, 58, 13, 233, 80, 131, 237, 217, 7,\n\t\t137, 224, 96, 182, 218, 108, 142, 164, 73, 10, 54, 187, 126,\n\t\t121, 72, 201, 250, 210, 187, 241, 157, 194, 83, 144, 221,\n\t\t143, 82, 153, 87, 98, 89, 74, 32, 167, 153, 100, 231, 210,\n\t\t205, 250, 76, 241, 60, 188, 45, 145, 108, 199, 49, 22, 14,\n\t\t184, 85, 123, 164, 48, 212, 125, 238, 138, 201, 235, 68, 111,\n\t\t124, 115, 118, 14, 149, 130, 194, 57, 114, 59, 141, 190, 70,\n\t\t206, 234, 17, 19, 243, 53, 222, 179, 211, 61, 103, 49, 247,\n\t\t213, 82, 139, 56, 103, 143, 208, 115, 46, 219, 218, 56, 221,\n\t\t68, 201, 156, 43, 169, 217, 20, 89, 82, 136, 145, 244, 109,\n\t\t36, 14, 115, 8, 46, 159, 50, 93, 166, 174, 48, 80, 120, 242,\n\t\t245, 153, 2, 173, 43, 18, 151, 252, 187, 43, 3, 135, 81, 85,\n\t\t108, 170, 177, 196, 195, 229, 129, 226, 60, 215, 202, 113,\n\t\t61, 82, 30, 37, 88, 194, 235, 110, 169, 217, 30, 115, 38,\n\t\t79, 232, 146, 37, 60, 105, 207, 147, 19, 15, 182, 114, 246,\n\t\t14, 219, 90, 104, 147, 184, 248, 76, 68, 187, 201, 202, 102,\n\t\t155, 82, 39, 23, 198, 152, 115, 230, 48, 90, 173, 103, 114,\n\t\t180, 43, 83, 2, 128, 26, 121, 50, 107, 62, 18, 85, 72, 217,\n\t\t38, 138, 115, 81, 109, 14, 49, 113, 6, 149, 92, 197, 195,\n\t\t163, 230, 114, 121, 136, 53, 217, 152, 43, 199, 38, 201, 97,\n\t\t204, 163, 21, 60, 165, 85, 242, 49, 18, 228, 53, 230, 64,\n\t\t153, 81, 92, 172, 222, 244, 73, 175, 19, 71, 85, 238, 20,\n\t\t8, 191, 218, 64, 9, 201, 130, 13, 173, 206, 5, 40, 217, 230,\n\t\t82, 9, 132, 38, 103, 103, 30, 187, 84, 77, 103, 96, 242, 32,\n\t\t75, 238, 220, 148, 181, 80, 102, 173, 201, 65, 138, 142, 51,\n\t\t54, 235, 231, 57, 244, 214, 231, 16, 57, 136, 179, 139, 241,\n\t\t117, 39, 203, 63, 254, 249, 211, 61, 17, 93, 174, 30, 147,\n\t\t97, 165, 112, 64, 4, 173, 18, 9, 92, 164, 79, 21, 185, 24,\n\t\t239, 168, 193, 243, 68, 117, 200, 65, 98, 69, 45, 162, 151,\n\t\t135, 223, 253, 51, 52, 55, 174, 91, 130, 28, 148, 217, 165,\n\t\t169, 96, 23, 249, 114, 73, 128, 53, 144, 19, 133, 192, 169,\n\t\t164, 53, 128, 79, 27, 156, 243, 188, 143, 150, 245, 80, 46,\n\t\t219, 232, 188, 233, 106, 104, 144, 10, 250, 59, 15, 28, 244,\n\t\t216, 94, 133, 125, 97, 102, 68, 174, 143, 34, 57, 96, 2, 84,\n\t\t250, 198, 4, 208, 248, 181, 36, 29, 31, 4, 87, 163, 7, 97,\n\t\t244, 20, 71, 158, 255, 27, 65, 1, 19, 203, 95, 91, 120, 27,\n\t\t53, 36, 178, 141, 66, 211, 227, 70, 131, 97, 95, 247, 204,\n\t\t192, 164, 34, 67, 198, 0, 55, 12, 89, 43, 116, 200, 59, 159,\n\t\t66, 5, 199, 246, 171, 25, 212, 41, 189, 60, 132, 121, 174,\n\t\t141, 228, 195, 30, 89, 189, 12, 231, 80, 16, 207, 124, 126,\n\t\t110, 133, 224, 19, 25, 122, 98, 12, 76, 7, 212, 133, 45, 168,\n\t\t18, 201, 120, 158, 105, 182, 248, 65, 213, 86, 4, 186, 162,\n\t\t220, 43, 42, 98, 100, 212, 194, 194, 135, 19, 207, 149, 2,\n\t\t253, 29, 73, 61, 234, 147, 162, 97, 34, 35, 106, 232, 195,\n\t\t97, 44, 29, 250, 46, 80, 32, 213, 160, 28, 213, 124, 199,\n\t\t74, 232, 156, 53, 192, 27, 100, 118, 199, 185, 175, 104, 85,\n\t\t216, 142, 36, 113, 116, 189, 106, 174, 180, 220, 20, 193,\n\t\t139, 152, 16, 6, 209, 136, 183, 42, 156, 211, 188, 114, 26,\n\t\t145, 24, 218, 49, 28, 16, 71, 48, 202, 65, 21, 131, 228, 212,\n\t\t209, 174, 87, 13, 218, 51, 117, 232, 75, 138, 247, 224, 154,\n\t\t195, 216, 50, 103, 223, 16, 147, 117, 130, 205, 187, 137,\n\t\t217, 46, 169, 24, 41, 3, 33, 77, 134, 238, 114, 41, 198, 149,\n\t\t163, 12, 102, 227, 172, 25, 2, 50, 221, 53, 83, 8, 125, 29,\n\t\t51, 242, 135, 231, 159, 63, 255, 58, 222, 188, 221, 121, 44,\n\t\t197, 2, 143, 249, 24, 34, 5, 240, 202, 35, 77, 217, 57, 139,\n\t\t234, 103, 131, 166, 43, 65, 173, 39, 243, 123, 226, 40, 45,\n\t\t12, 99, 140, 106, 19, 222, 192, 187, 11, 135, 12, 185, 26,\n\t\t22, 190, 229, 93, 45, 208, 255, 21, 217, 193, 153, 93, 182,\n\t\t100, 17, 0, 203, 181, 104, 194, 201, 158, 208, 19, 22, 239,\n\t\t34, 98, 25, 100, 10, 163, 176, 105, 184, 4, 239, 33, 16, 66,\n\t\t52, 87, 169, 61, 34, 223, 125, 133, 130, 5, 138, 209, 5, 169,\n\t\t16, 138, 136, 131, 138, 178, 128, 129, 206, 41, 82, 230, 133,\n\t\t121, 80, 132, 179, 135, 186, 41, 137, 101, 22, 57, 187, 164,\n\t\t124, 12, 53, 50, 194, 50, 186, 98, 155, 137, 213, 219, 160,\n\t\t158, 189, 120, 13, 244, 172, 85, 196, 74, 82, 177, 80, 162,\n\t\t190, 190, 172, 90, 110, 183, 39, 247, 10, 8, 185, 49, 56,\n\t\t218, 195, 121, 139, 177, 49, 88, 114, 7, 229, 129, 34, 26,\n\t\t86, 116, 21, 114, 88, 170, 27, 77, 192, 170, 93, 54, 114,\n\t\t99, 107, 91, 179, 113, 247, 17, 150, 89, 24, 169, 124, 84,\n\t\t107, 29, 249, 25, 72, 225, 88, 41, 185, 45, 2, 101, 26, 79,\n\t\t193, 100, 88, 32, 147, 199, 123, 34, 23, 218, 173, 172, 6,\n\t\t29, 100, 229, 246, 162, 154, 150, 56, 167, 240, 202, 232,\n\t\t146, 149, 167, 45, 105, 154, 123, 194, 21, 199, 73, 253, 120,\n\t\t119, 249, 32, 50, 18, 13, 11, 239, 215, 10, 249, 123, 246,\n\t\t68, 242, 130, 54, 64, 40, 255, 93, 187, 64, 1, 253, 92, 177,\n\t\t105, 84, 221, 178, 94, 13, 128, 244, 103, 55, 174, 240, 45,\n\t\t7, 185, 47, 159, 159, 78, 167, 231, 187, 51, 170, 17, 161,\n\t\t99, 15, 54, 146, 87, 72, 116, 107, 153, 36, 155, 19, 0, 120,\n\t\t97, 81, 59, 86, 202, 100, 90, 120, 38, 33, 248, 153, 138,\n\t\t208, 89, 81, 55, 248, 125, 166, 224, 124, 197, 134, 49, 155,\n\t\t11, 209, 222, 50, 41, 21, 68, 13, 88, 56, 53, 67, 76, 110,\n\t\t15, 10, 136, 113, 46, 41, 191, 9, 191, 196, 111, 232, 39,\n\t\t248, 120, 164, 199, 95, 30, 124, 175, 70, 34, 54, 31, 245,\n\t\t49, 231, 144, 147, 13, 194, 23, 136, 126, 28, 208, 107, 40,\n\t\t204, 241, 65, 254, 30, 167, 12, 209, 121, 109, 229, 55, 110,\n\t\t53, 218, 225, 129, 111, 126, 127, 222, 232, 93, 99, 167, 6,\n\t\t215, 93, 19, 128, 90, 5, 12, 164, 50, 213, 152, 155, 184,\n\t\t5, 1, 92, 104, 38, 32, 180, 130, 162, 50, 20, 253, 91, 56,\n\t\t174, 75, 159, 119, 184, 111, 205, 214, 51, 197, 45, 222, 51,\n\t\t62, 251, 1, 10, 103, 179, 6, 216, 41, 109, 103, 19, 144, 174,\n\t\t118, 112, 23, 100, 0, 89, 205, 174, 99, 18, 116, 118, 162,\n\t\t74, 236, 34, 174, 87, 215, 190, 237, 85, 87, 81, 113, 108,\n\t\t126, 172, 89, 68, 71, 240, 179, 155, 142, 189, 30, 216, 250,\n\t\t243, 227, 151, 15, 159, 30, 255, 124, 183, 159, 211, 235,\n\t\t94, 178, 208, 17, 244, 189, 134, 192, 223, 232, 7, 254, 50,\n\t\t159, 216, 203, 67, 44, 228, 170, 238, 163, 45, 163, 1, 223,\n\t\t71, 38, 112, 26, 95, 214, 136, 186, 194, 219, 213, 48, 20,\n\t\t246, 233, 229, 230, 166, 184, 230, 142, 49, 6, 78, 120, 101,\n\t\t189, 96, 248, 78, 7, 28, 116, 33, 214, 146, 42, 75, 97, 135,\n\t\t133, 187, 137, 219, 25, 20, 128, 225, 217, 18, 52, 128, 142,\n\t\t30, 79, 72, 12, 126, 180, 70, 78, 14, 30, 183, 45, 120, 143,\n\t\t162, 23, 157, 6, 185, 8, 39, 177, 0, 112, 214, 169, 242, 141,\n\t\t192, 172, 231, 219, 228, 185, 190, 221, 39, 217, 222, 69,\n\t\t232, 203, 38, 78, 57, 116, 44, 243, 127, 196, 181, 94, 213,\n\t\t4, 17, 217, 225, 72, 157, 236, 99, 182, 100, 18, 134, 185,\n\t\t213, 173, 240, 65, 155, 207, 178, 181, 3, 123, 235, 41, 168,\n\t\t128, 87, 3, 208, 106, 4, 1, 239, 14, 230, 27, 130, 39, 172,\n\t\t196, 107, 184, 250, 20, 10, 19, 118, 106, 213, 45, 228, 163,\n\t\t166, 107, 4, 80, 135, 89, 176, 229, 174, 51, 37, 123, 120,\n\t\t45, 109, 145, 32, 75, 204, 51, 100, 135, 136, 175, 148, 243,\n\t\t145, 42, 165, 98, 168, 86, 123, 239, 144, 160, 26, 111, 84,\n\t\t212, 168, 188, 41, 51, 71, 170, 16, 93, 126, 42, 74, 180,\n\t\t64, 218, 138, 48, 19, 228, 27, 238, 141, 198, 67, 247, 181,\n\t\t83, 122, 194, 106, 219, 152, 79, 102, 6, 222, 5, 155, 40,\n\t\t152, 4, 23, 107, 183, 125, 87, 236, 153, 68, 5, 81, 228, 99,\n\t\t150, 17, 41, 7, 170, 70, 41, 31, 142, 152, 42, 175, 206, 247,\n\t\t192, 150, 45, 252, 74, 89, 155, 145, 218, 6, 88, 9, 26, 1,\n\t\t202, 100, 233, 51, 39, 64, 234, 55, 21, 163, 138, 215, 40,\n\t\t83, 151, 200, 112, 23, 166, 52, 193, 230, 115, 67, 140, 21,\n\t\t120, 231, 36, 70, 56, 208, 186, 165, 184, 4, 54, 230, 12,\n\t\t42, 141, 110, 178, 3, 121, 169, 123, 179, 241, 4, 89, 202,\n\t\t199, 206, 106, 207, 131, 6, 254, 119, 200, 217, 162, 230,\n\t\t28, 45, 139, 73, 253, 188, 249, 57, 27, 195, 73, 32, 173,\n\t\t5, 59, 41, 208, 35, 71, 221, 121, 141, 45, 238, 28, 104, 83,\n\t\t120, 101, 249, 154, 177, 225, 178, 89, 96, 45, 76, 50, 27,\n\t\t21, 214, 67, 98, 234, 175, 74, 67, 248, 96, 141, 237, 46,\n\t\t162, 48, 86, 44, 95, 149, 177, 96, 135, 1, 78, 84, 162, 204,\n\t\t131, 11, 247, 106, 57, 20, 232, 239, 171, 238, 70, 79, 31,\n\t\t222, 222, 51, 37, 119, 129, 117, 119, 209, 132, 93, 53, 161,\n\t\t58, 226, 138, 100, 119, 36, 113, 105, 103, 230, 87, 56, 120,\n\t\t25, 118, 18, 108, 40, 89, 3, 21, 16, 34, 35, 13, 160, 185,\n\t\t48, 248, 136, 211, 220, 64, 128, 56, 236, 147, 174, 217, 39,\n\t\t197, 52, 205, 128, 134, 150, 68, 55, 94, 214, 136, 249, 102,\n\t\t143, 10, 17, 193, 94, 142, 228, 55, 48, 233, 201, 229, 33,\n\t\t112, 50, 92, 182, 186, 80, 132, 211, 72, 4, 130, 170, 179,\n\t\t26, 159, 185, 85, 44, 44, 214, 167, 36, 72, 203, 134, 88,\n\t\t219, 138, 148, 244, 83, 156, 31, 72, 59, 138, 191, 193, 69,\n\t\t138, 198, 64, 25, 173, 42, 103, 168, 83, 203, 53, 77, 25,\n\t\t143, 17, 99, 3, 126, 66, 9, 254, 168, 157, 209, 148, 188,\n\t\t252, 148, 171, 8, 209, 176, 188, 103, 96, 36, 100, 42, 190,\n\t\t53, 186, 66, 215, 197, 82, 129, 9, 84, 3, 177, 16, 167, 73,\n\t\t166, 235, 18, 108, 87, 228, 22, 159, 41, 66, 92, 233, 132,\n\t\t8, 154, 165, 203, 225, 33, 102, 6, 206, 86, 75, 138, 78, 38,\n\t\t40, 202, 83, 86, 2, 29, 39, 206, 104, 72, 241, 212, 120, 140,\n\t\t13, 15, 85, 46, 220, 39, 74, 105, 80, 212, 64, 202, 14, 123,\n\t\t147, 192, 151, 145, 113, 200, 240, 96, 122, 238, 214, 57,\n\t\t104, 26, 53, 195, 163, 101, 221, 13, 204, 205, 244, 92, 231,\n\t\t77, 145, 11, 99, 62, 119, 202, 18, 228, 135, 84, 109, 167,\n\t\t72, 7, 125, 76, 186, 25, 13, 110, 86, 223, 40, 72, 88, 37,\n\t\t195, 156, 144, 174, 205, 87, 201, 240, 168, 38, 245, 121,\n\t\t181, 164, 180, 99, 198, 120, 127, 65, 53, 19, 6, 48, 39, 213,\n\t\t47, 33, 152, 207, 118, 236, 52, 151, 222, 79, 18, 30, 18,\n\t\t105, 228, 132, 199, 192, 88, 53, 238, 62, 238, 125, 36, 105,\n\t\t106, 216, 170, 132, 207, 243, 206, 219, 78, 137, 153, 60,\n\t\t76, 177, 108, 29, 42, 112, 93, 45, 80, 150, 80, 120, 226,\n\t\t34, 106, 189, 164, 18, 27, 94, 220, 76, 6, 58, 55, 33, 125,\n\t\t153, 88, 218, 6, 144, 87, 10, 89, 150, 145, 65, 73, 195, 113,\n\t\t3, 19, 114, 205, 237, 204, 85, 69, 211, 90, 201, 237, 66,\n\t\t17, 48, 26, 153, 31, 27, 101, 30, 136, 60, 0, 17, 196, 215,\n\t\t248, 221, 222, 254, 27, 155, 6, 118, 220, 97, 26, 244, 214,\n\t\t196, 138, 172, 133, 223, 98, 26, 56, 71, 91, 49, 123, 193,\n\t\t73, 82, 219, 117, 61, 100, 76, 51, 105, 46, 168, 10, 182,\n\t\t117, 85, 160, 201, 224, 211, 164, 15, 148, 129, 34, 229, 201,\n\t\t252, 0, 171, 1, 248, 149, 7, 125, 88, 224, 45, 133, 159, 201,\n\t\t184, 198, 66, 237, 226, 215, 59, 124, 155, 0, 255, 163, 222,\n\t\t50, 50, 98, 109, 202, 104, 119, 183, 207, 129, 172, 25, 67,\n\t\t248, 41, 176, 86, 106, 82, 96, 57, 239, 154, 161, 129, 152,\n\t\t250, 249, 241, 85, 226, 255, 249, 233, 227, 231, 167, 187,\n\t\t64, 55, 237, 62, 208, 226, 50, 243, 249, 100, 66, 109, 28,\n\t\t127, 142, 194, 244, 78, 86, 151, 149, 159, 36, 97, 81, 184,\n\t\t254, 48, 47, 189, 161, 25, 77, 245, 14, 71, 6, 198, 14, 234,\n\t\t188, 82, 50, 118, 122, 164, 15, 204, 206, 54, 89, 182, 16,\n\t\t232, 110, 53, 97, 74, 39, 41, 89, 127, 230, 12, 0, 151, 135,\n\t\t144, 243, 148, 85, 41, 104, 51, 196, 88, 137, 6, 64, 176,\n\t\t98, 79, 88, 127, 137, 116, 51, 50, 192, 18, 136, 123, 65,\n\t\t59, 25, 42, 83, 110, 235, 115, 178, 147, 109, 32, 126, 182,\n\t\t8, 203, 94, 214, 170, 51, 159, 222, 56, 131, 35, 121, 96,\n\t\t41, 158, 93, 49, 182, 21, 17, 14, 101, 235, 114, 115, 41,\n\t\t95, 30, 82, 202, 150, 178, 43, 228, 177, 53, 225, 169, 232,\n\t\t24, 209, 180, 33, 40, 16, 21, 104, 10, 207, 52, 216, 49, 185,\n\t\t147, 190, 139, 118, 69, 162, 71, 240, 54, 241, 71, 154, 24,\n\t\t177, 8, 136, 248, 71, 29, 46, 236, 190, 158, 21, 34, 59, 39,\n\t\t249, 245, 148, 157, 143, 239, 159, 78, 31, 62, 62, 221, 121,\n\t\t31, 183, 87, 2, 66, 82, 54, 183, 200, 71, 69, 39, 36, 82,\n\t\t182, 30, 223, 234, 148, 216, 200, 173, 30, 31, 137, 40, 101,\n\t\t206, 110, 43, 55, 52, 7, 41, 141, 73, 72, 112, 75, 226, 119,\n\t\t31, 217, 207, 109, 249, 187, 168, 215, 133, 34, 97, 229, 211,\n\t\t40, 168, 209, 3, 67, 108, 86, 2, 166, 119, 110, 0, 10, 43,\n\t\t237, 135, 166, 145, 92, 168, 47, 242, 249, 103, 27, 151, 0,\n\t\t92, 188, 45, 64, 54, 30, 6, 69, 98, 135, 136, 157, 73, 1,\n\t\t13, 165, 186, 175, 148, 83, 60, 77, 150, 91, 0, 165, 218,\n\t\t59, 95, 167, 196, 201, 114, 184, 220, 57, 85, 92, 170, 28,\n\t\t51, 250, 114, 201, 130, 215, 79, 20, 136, 77, 248, 71, 239,\n\t\t153, 152, 167, 138, 23, 75, 56, 130, 42, 234, 205, 219, 138,\n\t\t177, 79, 81, 72, 98, 11, 239, 194, 44, 112, 52, 20, 153, 143,\n\t\t150, 46, 16, 235, 83, 213, 181, 72, 248, 49, 95, 200, 55,\n\t\t196, 7, 89, 137, 20, 119, 209, 1, 166, 168, 114, 83, 28, 226,\n\t\t124, 198, 239, 119, 98, 176, 129, 42, 35, 238, 222, 152, 68,\n\t\t127, 213, 58, 109, 119, 97, 231, 23, 172, 156, 108, 129, 201,\n\t\t211, 118, 119, 197, 222, 148, 134, 98, 74, 54, 216, 70, 116,\n\t\t37, 182, 12, 231, 255, 224, 40, 241, 103, 166, 23, 182, 168,\n\t\t198, 41, 79, 102, 223, 239, 8, 139, 250, 244, 203, 56, 62,\n\t\t126, 124, 127, 175, 79, 215, 96, 157, 184, 41, 253, 188, 40,\n\t\t142, 147, 187, 168, 231, 45, 112, 64, 27, 245, 75, 23, 143,\n\t\t171, 173, 52, 210, 162, 163, 112, 220, 124, 63, 109, 13, 44,\n\t\t171, 220, 190, 231, 6, 69, 185, 175, 133, 144, 58, 156, 9,\n\t\t18, 137, 105, 65, 82, 80, 81, 218, 153, 114, 142, 163, 35,\n\t\t177, 219, 120, 110, 25, 125, 105, 249, 184, 209, 199, 213,\n\t\t36, 164, 102, 235, 175, 55, 137, 37, 155, 148, 218, 97, 208,\n\t\t75, 23, 222, 18, 24, 117, 149, 117, 197, 211, 21, 74, 9, 121,\n\t\t192, 89, 138, 195, 25, 176, 253, 1, 230, 41, 121, 185, 118,\n\t\t91, 146, 179, 132, 246, 186, 88, 114, 254, 240, 211, 211,\n\t\t243, 87, 194, 232, 244, 255, 5, 194, 232, 180, 104, 155, 9,\n\t\t101, 238, 73, 197, 61, 65, 99, 3, 253, 76, 137, 196, 137,\n\t\t101, 83, 230, 198, 133, 251, 16, 56, 159, 10, 100, 160, 230,\n\t\t214, 233, 80, 240, 212, 44, 136, 54, 68, 184, 128, 59, 10,\n\t\t76, 48, 96, 33, 210, 206, 189, 32, 8, 168, 13, 16, 83, 69,\n\t\t204, 105, 254, 115, 184, 70, 232, 76, 240, 162, 145, 147,\n\t\t38, 159, 32, 152, 135, 19, 220, 185, 192, 62, 41, 159, 217,\n\t\t225, 143, 78, 155, 18, 243, 202, 92, 34, 195, 236, 40, 156,\n\t\t28, 171, 51, 231, 53, 52, 31, 91, 85, 40, 163, 200, 38, 50,\n\t\t72, 9, 66, 199, 153, 46, 233, 243, 97, 236, 156, 172, 88,\n\t\t35, 169, 244, 91, 202, 8, 212, 128, 180, 116, 14, 10, 25,\n\t\t242, 84, 216, 178, 88, 115, 51, 12, 149, 62, 209, 18, 129,\n\t\t133, 140, 50, 233, 161, 65, 125, 46, 139, 150, 0, 178, 149,\n\t\t138, 1, 207, 54, 103, 10, 116, 169, 0, 137, 19, 215, 35, 194,\n\t\t205, 128, 42, 39, 203, 184, 192, 56, 116, 57, 223, 216, 248,\n\t\t62, 212, 111, 92, 190, 47, 167, 199, 113, 167, 160, 235, 13,\n\t\t123, 189, 39, 206, 61, 226, 99, 96, 238, 43, 236, 92, 118,\n\t\t125, 113, 12, 38, 114, 197, 229, 251, 15, 67, 157, 73, 28,\n\t\t215, 101, 198, 200, 175, 159, 101, 158, 3, 106, 236, 12, 90,\n\t\t163, 201, 190, 197, 238, 239, 81, 126, 113, 198, 35, 46, 15,\n\t\t100, 116, 77, 218, 201, 215, 30, 52, 59, 40, 101, 78, 73,\n\t\t198, 253, 67, 147, 237, 246, 55, 120, 201, 121, 227, 151,\n\t\t120, 153, 4, 209, 250, 223, 142, 230, 238, 195, 208, 25, 115,\n\t\t107, 134, 238, 230, 14, 47, 145, 119, 80, 214, 96, 242, 40,\n\t\t247, 182, 181, 239, 127, 196, 183, 231, 241, 47, 31, 190,\n\t\t252, 250, 184, 155, 117, 234, 99, 232, 205, 250, 242, 221,\n\t\t207, 226, 46, 254, 75, 102, 240, 168, 51, 255, 221, 251, 137,\n\t\t70, 71, 19, 1, 62, 72, 59, 178, 155, 0, 148, 143, 58, 235,\n\t\t49, 71, 219, 154, 9, 153, 35, 100, 188, 246, 251, 253, 148,\n\t\t255, 53, 199, 46, 191, 59, 235, 172, 199, 73, 35, 10, 247,\n\t\t241, 240, 29, 143, 211, 19, 137, 205, 248, 189, 51, 120, 94,\n\t\t27, 254, 59, 79, 230, 88, 251, 84, 223, 124, 59, 119, 119,\n\t\t231, 233, 242, 16, 72, 86, 47, 129, 40, 205, 119, 63, 163,\n\t\t184, 252, 215, 29, 190, 252, 250, 168, 51, 207, 253, 108,\n\t\t153, 16, 142, 223, 255, 172, 111, 31, 202, 61, 113, 147, 89,\n\t\t249, 23, 29, 206, 239, 160, 203, 251, 249, 208, 3, 245, 186,\n\t\t138, 246, 249, 243, 187, 79, 159, 159, 94, 238, 164, 178,\n\t\t254, 138, 154, 22, 130, 235, 20, 214, 203, 201, 59, 142, 164,\n\t\t81, 219, 216, 170, 215, 128, 216, 20, 218, 172, 51, 224, 83,\n\t\t11, 221, 79, 134, 94, 141, 188, 64, 135, 195, 252, 4, 143,\n\t\t75, 145, 95, 47, 15, 177, 247, 41, 175, 186, 32, 26, 116,\n\t\t216, 232, 235, 222, 81, 165, 144, 161, 171, 18, 144, 68, 149,\n\t\t180, 18, 117, 242, 52, 37, 24, 62, 222, 161, 217, 58, 224,\n\t\t140, 175, 0, 253, 0, 23, 170, 245, 233, 48, 160, 134, 241,\n\t\t215, 28, 195, 130, 8, 64, 21, 10, 73, 64, 66, 157, 171, 231,\n\t\t222, 242, 69, 102, 117, 101, 184, 182, 135, 107, 51, 131,\n\t\t6, 120, 227, 206, 113, 64, 157, 206, 213, 90, 139, 1, 227,\n\t\t173, 203, 177, 87, 122, 174, 80, 162, 147, 122, 110, 116,\n\t\t100, 68, 80, 191, 189, 201, 206, 151, 19, 73, 49, 38, 176,\n\t\t27, 192, 225, 187, 230, 229, 87, 166, 5, 171, 134, 105, 17,\n\t\t115, 208, 215, 167, 69, 80, 52, 50, 106, 214, 172, 64, 29,\n\t\t165, 145, 90, 110, 160, 59, 3, 70, 179, 12, 116, 12, 5, 117,\n\t\t238, 8, 80, 81, 171, 109, 40, 13, 232, 19, 231, 236, 100,\n\t\t203, 76, 59, 75, 211, 41, 78, 137, 88, 194, 90, 28, 198, 230,\n\t\t247, 94, 108, 96, 180, 53, 80, 203, 166, 19, 194, 21, 87,\n\t\t107, 24, 53, 142, 34, 34, 235, 105, 141, 184, 86, 209, 110,\n\t\t173, 187, 224, 14, 27, 242, 248, 106, 198, 83, 129, 165, 12,\n\t\t229, 161, 17, 172, 196, 95, 37, 178, 229, 146, 176, 207, 151,\n\t\t135, 144, 201, 104, 87, 163, 77, 167, 146, 33, 167, 214, 78,\n\t\t104, 132, 4, 254, 124, 231, 14, 22, 204, 62, 208, 13, 5, 20,\n\t\t1, 151, 44, 187, 103, 25, 152, 195, 226, 159, 101, 175, 112,\n\t\t205, 213, 224, 147, 55, 203, 89, 65, 70, 135, 222, 165, 68,\n\t\t233, 173, 38, 63, 57, 150, 37, 21, 248, 151, 66, 34, 38, 43,\n\t\t223, 200, 221, 70, 32, 6, 172, 140, 103, 48, 166, 167, 196,\n\t\t135, 188, 116, 190, 69, 219, 79, 37, 27, 223, 170, 237, 3,\n\t\t10, 114, 81, 188, 25, 47, 145, 239, 115, 82, 27, 22, 149,\n\t\t107, 17, 221, 138, 91, 145, 62, 28, 71, 158, 17, 221, 12,\n\t\t108, 106, 108, 25, 191, 60, 100, 138, 30, 169, 209, 179, 197,\n\t\t42, 28, 111, 144, 2, 67, 190, 116, 70, 33, 3, 81, 33, 3, 195,\n\t\t25, 254, 150, 220, 10, 246, 208, 1, 118, 91, 184, 114, 90,\n\t\t216, 133, 213, 78, 61, 88, 132, 238, 246, 81, 34, 85, 209,\n\t\t64, 76, 136, 133, 52, 71, 244, 135, 254, 157, 61, 0, 230,\n\t\t143, 191, 164, 182, 90, 162, 63, 135, 23, 60, 96, 255, 83,\n\t\t41, 12, 60, 128, 43, 249, 231, 187, 102, 175, 94, 22, 207,\n\t\t159, 158, 62, 222, 7, 216, 235, 26, 96, 47, 84, 10, 240, 83,\n\t\t78, 164, 150, 136, 68, 214, 242, 114, 89, 11, 116, 108, 43,\n\t\t111, 71, 142, 203, 158, 56, 170, 21, 213, 81, 210, 20, 31,\n\t\t61, 221, 18, 149, 224, 226, 241, 188, 165, 56, 111, 21, 155,\n\t\t145, 135, 200, 135, 100, 182, 28, 229, 3, 101, 32, 38, 232,\n\t\t189, 55, 153, 77, 58, 208, 211, 178, 17, 202, 187, 120, 142,\n\t\t201, 157, 10, 133, 86, 12, 164, 96, 136, 45, 45, 212, 208,\n\t\t220, 179, 205, 248, 76, 185, 125, 230, 130, 134, 102, 243,\n\t\t9, 177, 240, 16, 126, 82, 82, 86, 179, 108, 27, 37, 172, 64,\n\t\t85, 183, 192, 195, 57, 197, 145, 224, 122, 148, 231, 96, 118,\n\t\t129, 219, 88, 97, 24, 245, 202, 58, 197, 252, 93, 177, 74,\n\t\t255, 252, 120, 124, 190, 51, 159, 118, 133, 120, 135, 60,\n\t\t101, 215, 114, 34, 111, 72, 71, 246, 15, 190, 149, 33, 183,\n\t\t71, 187, 34, 71, 33, 216, 52, 42, 134, 134, 161, 112, 172,\n\t\t98, 22, 2, 46, 68, 76, 77, 162, 220, 250, 52, 175, 79, 55,\n\t\t182, 156, 145, 194, 21, 10, 122, 223, 249, 184, 212, 100,\n\t\t66, 167, 27, 130, 137, 155, 6, 148, 136, 203, 209, 46, 34,\n\t\t160, 31, 250, 208, 25, 15, 32, 23, 159, 196, 184, 140, 0,\n\t\t77, 131, 96, 37, 16, 204, 42, 35, 107, 65, 53, 193, 228, 238,\n\t\t72, 113, 200, 67, 182, 121, 32, 36, 84, 17, 201, 187, 139,\n\t\t250, 96, 238, 165, 41, 221, 114, 142, 25, 110, 187, 156, 62,\n\t\t165, 123, 97, 23, 34, 37, 170, 80, 47, 93, 21, 7, 41, 96,\n\t\t229, 189, 137, 121, 77, 165, 178, 60, 73, 161, 21, 148, 198,\n\t\t137, 18, 203, 139, 225, 143, 98, 94, 189, 174, 151, 122, 255,\n\t\t252, 252, 254, 222, 49, 234, 241, 62, 53, 64, 107, 154, 125,\n\t\t183, 25, 202, 80, 207, 128, 16, 54, 212, 43, 44, 43, 5, 10,\n\t\t203, 79, 136, 135, 196, 241, 72, 230, 4, 45, 250, 229, 108,\n\t\t219, 67, 158, 102, 113, 79, 183, 138, 230, 21, 247, 33, 34,\n\t\t206, 79, 41, 115, 39, 75, 38, 2, 10, 247, 158, 169, 72, 87,\n\t\t217, 214, 68, 143, 209, 84, 121, 148, 3, 107, 185, 246, 69,\n\t\t246, 152, 154, 125, 110, 164, 194, 2, 54, 135, 19, 48, 251,\n\t\t76, 23, 53, 21, 14, 163, 11, 115, 225, 104, 157, 43, 242,\n\t\t229, 205, 77, 65, 212, 171, 81, 88, 210, 89, 60, 139, 15,\n\t\t243, 113, 18, 50, 175, 73, 182, 55, 70, 49, 133, 117, 20,\n\t\t196, 13, 119, 85, 36, 190, 16, 190, 97, 206, 122, 247, 238,\n\t\t195, 93, 254, 129, 199, 215, 242, 15, 16, 95, 236, 41, 66,\n\t\t178, 162, 194, 220, 66, 80, 170, 18, 13, 21, 240, 196, 37,\n\t\t240, 135, 192, 204, 69, 53, 181, 90, 236, 255, 14, 175, 153,\n\t\t151, 130, 250, 120, 200, 83, 181, 2, 109, 221, 14, 220, 181,\n\t\t127, 117, 254, 213, 15, 55, 119, 98, 165, 139, 235, 107, 200,\n\t\t57, 221, 68, 135, 151, 89, 10, 191, 146, 74, 98, 159, 72,\n\t\t162, 82, 210, 46, 10, 14, 188, 245, 29, 21, 210, 24, 137,\n\t\t186, 80, 26, 9, 206, 17, 219, 34, 230, 60, 203, 17, 171, 139,\n\t\t40, 237, 50, 109, 35, 128, 12, 51, 165, 58, 3, 46, 134, 183,\n\t\t227, 41, 43, 163, 36, 225, 170, 53, 95, 182, 18, 129, 164,\n\t\t214, 159, 178, 175, 24, 107, 225, 176, 109, 224, 36, 141,\n\t\t114, 64, 220, 2, 90, 183, 187, 85, 16, 177, 117, 53, 230,\n\t\t147, 162, 209, 172, 55, 223, 118, 190, 190, 0, 89, 122, 196,\n\t\t4, 45, 34, 208, 200, 163, 199, 22, 23, 169, 84, 164, 185,\n\t\t114, 52, 234, 150, 141, 24, 250, 39, 13, 201, 51, 39, 41,\n\t\t49, 160, 35, 222, 136, 49, 91, 129, 9, 95, 29, 192, 27, 71,\n\t\t233, 147, 244, 82, 11, 211, 190, 2, 34, 104, 188, 83, 28,\n\t\t109, 161, 219, 26, 116, 60, 46, 68, 109, 82, 103, 7, 16, 39,\n\t\t245, 93, 47, 204, 103, 15, 141, 203, 67, 161, 73, 112, 121,\n\t\t186, 155, 139, 201, 103, 9, 244, 9, 15, 115, 220, 92, 29,\n\t\t161, 49, 226, 42, 12, 65, 203, 17, 237, 32, 252, 51, 130,\n\t\t39, 80, 169, 103, 101, 19, 87, 158, 196, 44, 225, 41, 151,\n\t\t100, 37, 110, 196, 146, 45, 32, 34, 223, 197, 228, 217, 4,\n\t\t159, 32, 124, 43, 143, 118, 150, 46, 15, 209, 5, 98, 5, 235,\n\t\t144, 59, 75, 254, 44, 215, 0, 190, 201, 248, 189, 110, 176,\n\t\t31, 18, 249, 79, 239, 162, 78, 56, 133, 183, 208, 246, 151,\n\t\t157, 36, 65, 110, 183, 6, 43, 149, 214, 120, 14, 211, 100,\n\t\t220, 144, 103, 9, 78, 146, 195, 15, 242, 133, 236, 0, 75,\n\t\t63, 12, 13, 88, 141, 190, 201, 149, 125, 211, 55, 241, 31,\n\t\t144, 171, 173, 234, 81, 130, 83, 3, 104, 144, 166, 214, 155,\n\t\t124, 64, 132, 184, 160, 120, 241, 221, 145, 192, 253, 116,\n\t\t69, 152, 168, 197, 245, 97, 220, 246, 109, 121, 247, 83, 75,\n\t\t183, 154, 48, 241, 209, 179, 123, 71, 63, 205, 13, 113, 69,\n\t\t249, 245, 44, 145, 76, 236, 191, 98, 34, 122, 12, 202, 129,\n\t\t53, 6, 97, 113, 108, 163, 189, 196, 175, 34, 190, 94, 161,\n\t\t2, 160, 27, 124, 141, 202, 191, 29, 4, 110, 71, 190, 155,\n\t\t77, 188, 128, 242, 28, 216, 36, 185, 204, 6, 37, 121, 150,\n\t\t198, 117, 145, 191, 100, 80, 146, 207, 240, 229, 112, 195,\n\t\t183, 197, 138, 242, 202, 122, 13, 25, 65, 8, 178, 76, 27,\n\t\t80, 68, 34, 97, 160, 120, 143, 160, 216, 231, 234, 78, 182,\n\t\t124, 30, 132, 178, 60, 209, 148, 216, 201, 42, 21, 33, 26,\n\t\t242, 239, 109, 102, 59, 220, 105, 218, 154, 195, 56, 176,\n\t\t247, 153, 95, 215, 34, 47, 216, 74, 113, 135, 102, 85, 2,\n\t\t25, 224, 206, 43, 178, 107, 152, 178, 150, 29, 197, 226, 28,\n\t\t140, 197, 16, 64, 104, 172, 94, 224, 97, 251, 95, 113, 133,\n\t\t146, 186, 215, 71, 166, 141, 243, 114, 43, 132, 21, 240, 186,\n\t\t245, 183, 135, 149, 205, 46, 65, 95, 51, 177, 252, 245, 172,\n\t\t138, 95, 177, 98, 114, 40, 237, 104, 66, 168, 54, 237, 252,\n\t\t157, 72, 38, 88, 97, 45, 0, 18, 69, 16, 159, 177, 136, 125,\n\t\t89, 170, 157, 172, 62, 133, 91, 15, 156, 97, 139, 47, 99,\n\t\t217, 127, 72, 37, 202, 41, 39, 4, 212, 185, 159, 110, 21,\n\t\t30, 116, 254, 100, 166, 175, 188, 10, 88, 3, 4, 178, 122,\n\t\t189, 73, 120, 190, 175, 215, 238, 46, 239, 226, 186, 212,\n\t\t60, 100, 15, 58, 15, 200, 175, 172, 210, 147, 236, 20, 101,\n\t\t117, 197, 173, 208, 107, 138, 1, 225, 48, 151, 39, 20, 111,\n\t\t72, 155, 175, 130, 218, 209, 101, 125, 98, 103, 189, 57, 51,\n\t\t124, 221, 45, 21, 18, 81, 252, 186, 84, 48, 114, 161, 233,\n\t\t102, 106, 194, 49, 20, 14, 34, 203, 205, 132, 97, 32, 242,\n\t\t7, 61, 152, 31, 28, 97, 144, 125, 114, 185, 225, 114, 75,\n\t\t200, 242, 158, 124, 208, 56, 199, 10, 183, 92, 49, 145, 247,\n\t\t241, 145, 197, 111, 212, 201, 234, 22, 192, 216, 25, 234,\n\t\t56, 197, 13, 78, 7, 58, 139, 131, 116, 56, 142, 216, 221,\n\t\t96, 160, 81, 226, 18, 55, 88, 129, 190, 215, 45, 171, 126,\n\t\t8, 114, 245, 248, 58, 20, 145, 42, 134, 99, 40, 116, 139,\n\t\t6, 59, 17, 94, 79, 42, 190, 1, 185, 248, 249, 167, 183, 167,\n\t\t167, 159, 63, 61, 127, 220, 198, 135, 207, 227, 87, 164, 171,\n\t\t187, 52, 77, 59, 151, 18, 13, 59, 177, 215, 222, 92, 187,\n\t\t147, 124, 147, 37, 190, 229, 136, 47, 244, 216, 48, 217, 132,\n\t\t161, 46, 120, 138, 170, 38, 111, 61, 217, 23, 12, 129, 62,\n\t\t83, 76, 14, 231, 202, 73, 57, 0, 57, 133, 167, 184, 56, 174,\n\t\t249, 247, 44, 105, 142, 134, 51, 64, 95, 110, 113, 23, 127,\n\t\t77, 211, 160, 2, 196, 206, 96, 41, 183, 190, 217, 162, 42,\n\t\t0, 53, 119, 42, 215, 156, 55, 239, 26, 169, 238, 87, 16, 18,\n\t\t214, 68, 203, 94, 185, 249, 240, 162, 53, 183, 45, 228, 239,\n\t\t89, 182, 200, 113, 203, 44, 179, 159, 73, 65, 61, 156, 74,\n\t\t99, 70, 51, 178, 210, 168, 241, 23, 21, 131, 66, 204, 87,\n\t\t184, 2, 71, 253, 88, 57, 62, 203, 121, 10, 135, 125, 146,\n\t\t115, 153, 229, 102, 110, 186, 128, 191, 151, 135, 20, 34,\n\t\t65, 228, 24, 122, 72, 255, 219, 133, 217, 54, 137, 35, 246,\n\t\t236, 187, 218, 120, 38, 120, 142, 154, 46, 22, 125, 16, 178,\n\t\t1, 87, 233, 157, 159, 229, 215, 167, 132, 86, 58, 49, 2, 247,\n\t\t52, 57, 103, 7, 122, 203, 53, 240, 238, 144, 165, 167, 201,\n\t\t170, 184, 174, 146, 95, 225, 126, 170, 208, 108, 204, 6, 42,\n\t\t6, 102, 213, 233, 76, 34, 73, 46, 166, 183, 127, 203, 45,\n\t\t107, 119, 154, 238, 142, 209, 157, 103, 214, 146, 131, 179,\n\t\t11, 147, 111, 104, 225, 188, 21, 133, 168, 77, 190, 159, 199,\n\t\t152, 151, 35, 78, 16, 144, 158, 39, 23, 20, 41, 15, 13, 70,\n\t\t224, 240, 149, 82, 55, 46, 146, 34, 246, 92, 89, 86, 152,\n\t\t167, 66, 158, 87, 78, 25, 250, 31, 198, 178, 158, 161, 216,\n\t\t150, 91, 135, 5, 152, 176, 46, 28, 97, 225, 138, 205, 154,\n\t\t80, 87, 227, 216, 238, 238, 237, 115, 13, 199, 198, 150, 184,\n\t\t203, 67, 160, 188, 231, 97, 30, 185, 115, 228, 171, 64, 92,\n\t\t244, 228, 28, 135, 171, 39, 87, 92, 91, 148, 180, 86, 191,\n\t\t241, 187, 111, 241, 225, 204, 73, 166, 7, 163, 47, 3, 232,\n\t\t57, 134, 238, 236, 245, 164, 57, 219, 200, 215, 71, 160, 37,\n\t\t50, 57, 121, 225, 69, 121, 174, 130, 141, 103, 89, 135, 99,\n\t\t43, 103, 242, 17, 91, 83, 194, 187, 236, 190, 171, 90, 241,\n\t\t178, 243, 88, 212, 137, 217, 53, 60, 156, 125, 225, 117, 115,\n\t\t166, 184, 149, 229, 217, 53, 2, 73, 6, 235, 249, 243, 224,\n\t\t44, 12, 84, 65, 238, 223, 248, 236, 93, 63, 35, 203, 198,\n\t\t105, 203, 59, 60, 229, 55, 201, 253, 187, 167, 211, 135, 241,\n\t\t225, 249, 231, 59, 99, 230, 99, 86, 84, 23, 129, 166, 98,\n\t\t115, 195, 35, 239, 134, 145, 11, 91, 4, 61, 225, 124, 55,\n\t\t31, 136, 27, 99, 11, 197, 171, 252, 88, 82, 209, 106, 107,\n\t\t34, 82, 177, 30, 159, 76, 47, 99, 67, 140, 170, 176, 88, 29,\n\t\t149, 247, 17, 210, 192, 143, 229, 70, 45, 182, 21, 77, 160,\n\t\t38, 82, 92, 132, 2, 55, 16, 3, 161, 1, 196, 121, 121, 86,\n\t\t184, 202, 121, 137, 203, 115, 201, 202, 165, 74, 148, 121,\n\t\t220, 65, 188, 73, 53, 21, 190, 198, 51, 178, 172, 71, 140,\n\t\t99, 218, 201, 141, 1, 215, 55, 135, 215, 157, 156, 25, 158,\n\t\t167, 182, 39, 245, 221, 55, 123, 230, 130, 3, 135, 171, 45,\n\t\t70, 211, 26, 236, 162, 38, 102, 17, 129, 247, 145, 183, 97,\n\t\t139, 220, 183, 75, 26, 138, 250, 160, 177, 200, 247, 193,\n\t\t183, 189, 54, 101, 175, 31, 24, 31, 36, 13, 203, 22, 140,\n\t\t102, 47, 134, 172, 211, 160, 59, 169, 226, 22, 206, 27, 94,\n\t\t30, 190, 114, 45, 81, 112, 50, 254, 18, 225, 198, 188, 62,\n\t\t94, 22, 75, 217, 190, 235, 215, 35, 56, 0, 192, 172, 198,\n\t\t115, 102, 137, 213, 252, 242, 144, 252, 100, 168, 207, 190,\n\t\t82, 98, 156, 112, 246, 157, 17, 155, 228, 48, 162, 20, 176,\n\t\t172, 128, 222, 20, 102, 134, 242, 45, 149, 227, 252, 193,\n\t\t252, 213, 209, 215, 50, 180, 185, 47, 136, 17, 78, 207, 126,\n\t\t253, 244, 124, 120, 255, 254, 238, 224, 148, 175, 211, 245,\n\t\t166, 40, 128, 108, 235, 89, 220, 149, 142, 217, 159, 183,\n\t\t48, 169, 212, 145, 195, 237, 156, 125, 77, 54, 29, 27, 50,\n\t\t69, 224, 87, 20, 219, 232, 220, 129, 245, 20, 239, 138, 243,\n\t\t134, 154, 149, 175, 191, 54, 74, 197, 146, 109, 61, 250, 24,\n\t\t237, 124, 126, 138, 252, 252, 89, 18, 55, 148, 163, 96, 190,\n\t\t207, 83, 236, 56, 2, 1, 206, 111, 191, 60, 164, 226, 200,\n\t\t164, 244, 157, 239, 12, 129, 242, 151, 185, 121, 175, 112,\n\t\t255, 231, 187, 162, 243, 135, 171, 151, 71, 183, 123, 125,\n\t\t16, 38, 140, 95, 207, 165, 121, 59, 148, 41, 95, 197, 100,\n\t\t203, 221, 123, 238, 122, 114, 121, 240, 57, 218, 104, 98,\n\t\t14, 71, 33, 156, 231, 45, 251, 35, 114, 240, 159, 179, 71,\n\t\t19, 158, 15, 109, 196, 157, 212, 118, 60, 234, 87, 209, 248,\n\t\t31, 158, 222, 109, 159, 62, 124, 122, 250, 188, 125, 250,\n\t\t116, 183, 234, 85, 53, 28, 46, 211, 203, 34, 243, 126, 1,\n\t\t26, 26, 191, 139, 120, 200, 53, 154, 87, 67, 106, 86, 160,\n\t\t69, 183, 176, 12, 26, 152, 89, 80, 155, 146, 233, 171, 180,\n\t\t161, 110, 142, 178, 59, 68, 16, 93, 22, 113, 106, 143, 12,\n\t\t35, 44, 229, 232, 43, 225, 42, 189, 250, 0, 206, 46, 100,\n\t\t74, 189, 78, 248, 110, 95, 193, 1, 69, 68, 243, 240, 117,\n\t\t125, 150, 126, 51, 218, 8, 38, 39, 117, 190, 209, 136, 169,\n\t\t171, 189, 24, 250, 183, 42, 58, 61, 30, 39, 235, 56, 214,\n\t\t56, 233, 195, 191, 96, 156, 244, 151, 139, 127, 125, 181,\n\t\t192, 225, 171, 122, 1, 223, 72, 145, 103, 187, 242, 217, 60,\n\t\t16, 209, 4, 40, 155, 201, 106, 164, 23, 213, 41, 215, 190,\n\t\t164, 141, 125, 133, 6, 207, 0, 107, 27, 245, 90, 131, 192,\n\t\t142, 156, 214, 41, 11, 247, 51, 151, 45, 158, 144, 160, 65,\n\t\t166, 234, 44, 9, 15, 135, 58, 254, 105, 80, 83, 184, 86, 35,\n\t\t209, 26, 163, 10, 64, 70, 216, 109, 175, 84, 91, 216, 225,\n\t\t210, 236, 251, 204, 58, 255, 42, 90, 75, 169, 208, 12, 10,\n\t\t110, 23, 8, 120, 5, 25, 213, 8, 48, 184, 167, 118, 129, 107,\n\t\t16, 45, 84, 244, 153, 122, 5, 107, 44, 27, 4, 172, 89, 201,\n\t\t110, 178, 166, 173, 217, 253, 32, 239, 146, 108, 48, 173,\n\t\t34, 253, 219, 215, 38, 229, 176, 159, 21, 222, 81, 184, 181,\n\t\t229, 226, 10, 10, 195, 230, 75, 25, 78, 124, 115, 137, 119,\n\t\t171, 139, 101, 251, 94, 26, 242, 120, 186, 55, 141, 181, 175,\n\t\t187, 255, 135, 148, 76, 32, 184, 22, 164, 93, 94, 243, 19,\n\t\t20, 253, 73, 174, 87, 225, 45, 153, 229, 224, 207, 50, 199,\n\t\t80, 216, 136, 204, 171, 86, 154, 178, 184, 12, 65, 192, 40,\n\t\t2, 71, 12, 189, 243, 74, 233, 182, 107, 64, 228, 206, 150,\n\t\t93, 32, 121, 146, 160, 68, 98, 212, 108, 60, 164, 173, 17,\n\t\t45, 182, 166, 31, 81, 177, 69, 191, 34, 156, 61, 245, 227,\n\t\t164, 118, 24, 121, 26, 185, 126, 97, 197, 152, 235, 184, 78,\n\t\t90, 58, 39, 124, 95, 158, 27, 150, 236, 177, 213, 15, 13,\n\t\t130, 141, 244, 242, 108, 104, 192, 142, 236, 203, 29, 25,\n\t\t89, 31, 52, 55, 13, 118, 65, 221, 163, 92, 137, 108, 237,\n\t\t2, 123, 210, 95, 36, 34, 34, 120, 72, 102, 157, 147, 162,\n\t\t237, 85, 179, 9, 208, 128, 103, 131, 15, 251, 26, 34, 196,\n\t\t119, 136, 231, 77, 34, 63, 31, 78, 176, 248, 104, 52, 32,\n\t\t245, 106, 21, 99, 57, 84, 12, 17, 49, 3, 92, 177, 4, 117,\n\t\t167, 163, 135, 220, 70, 0, 98, 100, 17, 128, 179, 163, 228,\n\t\t163, 220, 115, 119, 10, 8, 68, 58, 174, 61, 38, 121, 193,\n\t\t247, 241, 161, 187, 104, 215, 88, 65, 137, 80, 239, 27, 35,\n\t\t110, 10, 206, 91, 85, 93, 185, 35, 196, 134, 79, 130, 6, 34,\n\t\t228, 218, 97, 172, 56, 224, 43, 117, 10, 242, 46, 106, 36,\n\t\t87, 68, 177, 111, 202, 35, 98, 165, 174, 87, 101, 3, 197,\n\t\t90, 25, 27, 73, 216, 211, 216, 21, 146, 110, 151, 191, 147,\n\t\t220, 33, 50, 90, 245, 17, 83, 165, 16, 188, 15, 53, 211, 13,\n\t\t44, 8, 204, 199, 94, 30, 50, 37, 114, 76, 169, 237, 18, 49,\n\t\t2, 178, 119, 90, 201, 146, 116, 34, 15, 167, 93, 184, 90,\n\t\t62, 75, 151, 135, 212, 39, 63, 35, 249, 87, 71, 0, 133, 131,\n\t\t171, 113, 210, 156, 2, 34, 133, 87, 205, 44, 172, 51, 238,\n\t\t247, 62, 141, 80, 79, 42, 233, 99, 108, 223, 150, 36, 178,\n\t\t154, 166, 143, 84, 19, 98, 136, 38, 4, 10, 74, 225, 57, 68,\n\t\t244, 44, 72, 236, 228, 133, 158, 188, 143, 49, 188, 66, 101,\n\t\t48, 141, 217, 73, 15, 94, 237, 40, 25, 162, 151, 192, 64,\n\t\t32, 120, 164, 17, 16, 184, 29, 89, 61, 52, 17, 17, 92, 242,\n\t\t162, 56, 142, 111, 89, 20, 223, 235, 213, 221, 230, 149, 134,\n\t\t96, 158, 17, 113, 16, 177, 10, 123, 131, 70, 163, 80, 246,\n\t\t89, 69, 71, 91, 196, 177, 206, 202, 82, 120, 114, 64, 235,\n\t\t251, 77, 184, 139, 55, 189, 210, 112, 64, 122, 1, 112, 15,\n\t\t157, 17, 15, 197, 149, 185, 72, 226, 0, 176, 57, 93, 168,\n\t\t80, 140, 88, 74, 73, 33, 175, 187, 3, 55, 216, 202, 167, 130,\n\t\t51, 37, 148, 151, 238, 52, 33, 141, 125, 183, 148, 164, 216,\n\t\t19, 157, 148, 24, 81, 81, 51, 212, 249, 146, 117, 205, 180,\n\t\t208, 12, 250, 66, 234, 99, 81, 183, 232, 149, 188, 226, 26,\n\t\t80, 81, 125, 190, 133, 77, 83, 27, 167, 170, 139, 183, 149,\n\t\t85, 174, 219, 171, 13, 151, 170, 221, 167, 140, 19, 221, 9,\n\t\t201, 122, 152, 75, 207, 64, 206, 206, 6, 139, 76, 184, 42,\n\t\t33, 132, 18, 219, 14, 230, 54, 161, 188, 39, 2, 217, 170,\n\t\t139, 240, 38, 241, 237, 217, 146, 143, 4, 69, 21, 44, 153,\n\t\t108, 41, 164, 179, 208, 157, 34, 51, 145, 104, 137, 146, 166,\n\t\t244, 81, 242, 174, 1, 219, 22, 23, 145, 100, 113, 113, 17,\n\t\t200, 188, 164, 172, 252, 38, 205, 115, 66, 24, 1, 209, 135,\n\t\t33, 53, 6, 5, 33, 19, 35, 140, 236, 115, 13, 193, 46, 4, 229,\n\t\t180, 101, 205, 140, 226, 109, 62, 221, 159, 176, 125, 76,\n\t\t118, 240, 64, 73, 221, 252, 164, 66, 35, 5, 72, 197, 240,\n\t\t154, 0, 59, 139, 78, 50, 33, 231, 27, 76, 235, 78, 57, 116,\n\t\t36, 187, 152, 167, 135, 105, 42, 148, 31, 168, 16, 59, 2,\n\t\t165, 84, 207, 96, 200, 129, 55, 199, 249, 198, 109, 77, 27,\n\t\t149, 64, 97, 81, 41, 50, 157, 7, 76, 44, 36, 11, 248, 192,\n\t\t139, 210, 114, 64, 203, 135, 73, 130, 50, 12, 180, 38, 9,\n\t\t98, 26, 51, 147, 11, 44, 89, 88, 17, 13, 96, 81, 24, 215,\n\t\t194, 2, 199, 9, 248, 8, 62, 59, 7, 77, 188, 161, 148, 118,\n\t\t139, 130, 118, 221, 4, 46, 12, 112, 107, 244, 59, 194, 83,\n\t\t70, 189, 233, 161, 167, 3, 193, 174, 219, 60, 196, 76, 251,\n\t\t61, 51, 108, 129, 130, 141, 241, 180, 28, 101, 119, 157, 214,\n\t\t85, 167, 137, 106, 17, 64, 92, 142, 193, 89, 50, 48, 92, 30,\n\t\t66, 244, 147, 205, 174, 206, 134, 147, 78, 158, 205, 167,\n\t\t184, 83, 96, 178, 57, 45, 120, 69, 185, 92, 30, 226, 220,\n\t\t118, 70, 146, 57, 29, 6, 18, 8, 80, 80, 117, 181, 124, 211,\n\t\t3, 50, 199, 98, 15, 132, 177, 222, 93, 99, 188, 207, 23, 236,\n\t\t57, 170, 38, 14, 53, 88, 3, 39, 119, 105, 210, 176, 82, 216,\n\t\t59, 203, 155, 157, 143, 209, 55, 2, 153, 255, 252, 233, 241,\n\t\t116, 199, 245, 118, 13, 185, 231, 153, 176, 70, 27, 7, 227,\n\t\t27, 132, 165, 233, 133, 45, 113, 242, 97, 165, 150, 159, 76,\n\t\t149, 36, 101, 39, 24, 124, 119, 228, 57, 65, 41, 38, 5, 42,\n\t\t212, 163, 109, 166, 169, 74, 151, 138, 190, 117, 182, 52,\n\t\t187, 110, 166, 212, 86, 24, 118, 78, 0, 185, 154, 109, 83,\n\t\t0, 0, 206, 34, 72, 31, 210, 212, 146, 115, 101, 68, 210, 45,\n\t\t71, 169, 55, 88, 229, 133, 123, 26, 113, 157, 2, 5, 27, 207,\n\t\t135, 125, 230, 61, 110, 193, 198, 154, 72, 132, 170, 216,\n\t\t157, 7, 168, 66, 255, 124, 146, 112, 187, 52, 47, 69, 77,\n\t\t78, 148, 41, 44, 134, 96, 36, 33, 238, 117, 132, 52, 191,\n\t\t40, 28, 132, 187, 192, 244, 150, 50, 77, 230, 43, 38, 143,\n\t\t96, 56, 116, 134, 232, 211, 96, 247, 3, 199, 142, 151, 196,\n\t\t101, 117, 17, 170, 180, 52, 96, 240, 117, 59, 240, 19, 46,\n\t\t44, 94, 31, 150, 146, 23, 42, 140, 210, 38, 178, 22, 68, 174,\n\t\t105, 138, 240, 164, 66, 123, 160, 5, 144, 56, 52, 108, 182,\n\t\t85, 15, 136, 160, 59, 76, 173, 210, 202, 80, 238, 18, 35,\n\t\t192, 157, 30, 83, 39, 196, 92, 115, 236, 209, 68, 85, 92,\n\t\t125, 66, 0, 9, 237, 162, 202, 249, 17, 52, 113, 177, 10, 198,\n\t\t146, 109, 27, 192, 137, 44, 124, 16, 44, 122, 122, 223, 237,\n\t\t242, 116, 241, 133, 45, 115, 4, 3, 35, 110, 89, 205, 43, 18,\n\t\t26, 212, 24, 242, 4, 176, 237, 220, 243, 203, 67, 44, 206,\n\t\t164, 56, 212, 229, 23, 17, 151, 9, 82, 74, 68, 8, 210, 17,\n\t\t249, 26, 144, 196, 77, 156, 57, 99, 90, 53, 158, 67, 18, 233,\n\t\t133, 228, 97, 154, 27, 106, 149, 59, 37, 18, 243, 142, 82,\n\t\t233, 55, 178, 113, 23, 240, 229, 203, 45, 162, 195, 173, 161,\n\t\t238, 92, 116, 33, 59, 101, 27, 52, 148, 7, 18, 121, 16, 34,\n\t\t63, 246, 110, 16, 8, 196, 23, 79, 56, 178, 193, 172, 141,\n\t\t178, 93, 106, 145, 34, 75, 70, 97, 234, 242, 122, 104, 221,\n\t\t255, 241, 252, 252, 211, 233, 241, 142, 126, 172, 84, 252,\n\t\t144, 103, 98, 206, 100, 151, 140, 72, 189, 32, 40, 20, 248,\n\t\t94, 228, 126, 85, 30, 209, 241, 29, 186, 146, 114, 25, 201,\n\t\t139, 163, 33, 116, 70, 20, 2, 91, 225, 128, 133, 224, 63,\n\t\t250, 86, 38, 78, 209, 157, 86, 184, 93, 249, 32, 113, 135,\n\t\t25, 207, 160, 144, 58, 28, 67, 64, 45, 163, 32, 100, 34, 64,\n\t\t20, 66, 178, 80, 131, 40, 116, 12, 230, 163, 75, 238, 212,\n\t\t105, 82, 231, 191, 39, 202, 169, 168, 47, 4, 154, 190, 41,\n\t\t43, 41, 182, 87, 252, 157, 63, 98, 31, 114, 228, 21, 190,\n\t\t194, 217, 108, 145, 41, 78, 223, 169, 82, 76, 7, 176, 2, 161,\n\t\t41, 179, 69, 110, 91, 152, 180, 52, 226, 176, 84, 100, 68,\n\t\t78, 242, 20, 89, 59, 76, 122, 55, 72, 207, 132, 131, 221,\n\t\t132, 181, 109, 162, 87, 233, 162, 91, 234, 124, 244, 88, 225,\n\t\t214, 187, 66, 85, 249, 8, 68, 10, 205, 193, 171, 43, 42, 7,\n\t\t216, 93, 144, 66, 41, 8, 227, 13, 167, 114, 186, 7, 213, 161,\n\t\t60, 206, 37, 215, 124, 125, 24, 143, 10, 21, 178, 51, 220,\n\t\t46, 124, 76, 80, 167, 44, 112, 102, 25, 240, 155, 249, 232,\n\t\t177, 226, 27, 35, 51, 12, 136, 163, 219, 69, 113, 247, 206,\n\t\t219, 64, 139, 37, 107, 117, 24, 216, 28, 112, 209, 161, 95,\n\t\t37, 100, 164, 181, 121, 197, 225, 86, 135, 252, 157, 146,\n\t\t149, 55, 83, 90, 148, 154, 55, 9, 101, 39, 90, 225, 152, 155,\n\t\t36, 163, 161, 0, 23, 212, 178, 163, 166, 171, 254, 164, 23,\n\t\t155, 104, 199, 208, 53, 212, 245, 254, 224, 121, 205, 138,\n\t\t61, 89, 186, 14, 225, 2, 250, 154, 45, 181, 30, 149, 53, 149,\n\t\t124, 80, 246, 147, 235, 37, 69, 80, 215, 171, 4, 220, 109,\n\t\t0, 159, 154, 17, 0, 30, 218, 241, 184, 75, 246, 200, 15, 170,\n\t\t224, 224, 150, 40, 76, 206, 84, 237, 180, 166, 119, 172, 64,\n\t\t148, 18, 130, 70, 110, 34, 112, 71, 89, 149, 17, 121, 220,\n\t\t206, 175, 166, 174, 170, 16, 182, 100, 126, 79, 219, 46, 188,\n\t\t220, 156, 198, 147, 38, 209, 229, 227, 122, 24, 222, 241,\n\t\t165, 234, 18, 79, 170, 240, 174, 243, 166, 211, 83, 75, 7,\n\t\t47, 104, 66, 134, 172, 98, 113, 102, 3, 182, 99, 43, 49, 159,\n\t\t255, 206, 242, 244, 100, 253, 200, 38, 156, 156, 77, 116,\n\t\t208, 121, 194, 91, 5, 30, 11, 152, 50, 68, 251, 216, 174,\n\t\t223, 71, 153, 8, 216, 169, 80, 69, 12, 186, 51, 148, 81, 238,\n\t\t146, 249, 104, 11, 101, 225, 152, 55, 141, 94, 27, 221, 58,\n\t\t223, 202, 20, 163, 230, 48, 54, 58, 91, 186, 220, 186, 17,\n\t\t80, 177, 206, 86, 64, 76, 124, 58, 153, 184, 171, 145, 154,\n\t\t25, 217, 60, 27, 75, 219, 160, 182, 114, 127, 72, 234, 5,\n\t\t74, 105, 5, 82, 112, 186, 34, 129, 170, 106, 9, 26, 170, 117,\n\t\t69, 144, 95, 202, 39, 33, 191, 227, 142, 224, 70, 69, 168,\n\t\t72, 133, 158, 173, 195, 64, 188, 255, 212, 69, 69, 39, 30,\n\t\t19, 94, 162, 222, 224, 112, 245, 239, 112, 90, 122, 251, 116,\n\t\t124, 252, 56, 238, 112, 86, 111, 239, 1, 34, 75, 27, 28, 131,\n\t\t9, 4, 95, 72, 138, 159, 15, 202, 32, 8, 5, 22, 94, 72, 43,\n\t\t218, 130, 146, 212, 0, 110, 97, 158, 24, 198, 164, 133, 100,\n\t\t187, 150, 143, 155, 175, 222, 182, 115, 204, 36, 85, 29, 39,\n\t\t139, 236, 71, 145, 179, 57, 229, 233, 200, 105, 22, 84, 68,\n\t\t71, 69, 91, 222, 156, 154, 123, 93, 35, 124, 230, 182, 46,\n\t\t125, 81, 10, 167, 203, 3, 148, 51, 180, 175, 207, 155, 132,\n\t\t124, 62, 214, 126, 160, 20, 32, 157, 147, 29, 84, 214, 104,\n\t\t51, 215, 84, 249, 40, 207, 87, 207, 123, 30, 135, 58, 72,\n\t\t92, 31, 142, 105, 5, 146, 50, 75, 71, 4, 130, 189, 60, 76,\n\t\t142, 132, 194, 25, 38, 201, 190, 41, 99, 202, 160, 165, 130,\n\t\t159, 67, 57, 213, 249, 10, 101, 154, 33, 98, 131, 51, 202,\n\t\t5, 159, 143, 20, 1, 147, 130, 93, 119, 254, 237, 81, 98, 160,\n\t\t93, 30, 242, 20, 17, 205, 148, 112, 252, 145, 2, 45, 214,\n\t\t115, 100, 236, 200, 145, 75, 155, 20, 47, 15, 185, 22, 178,\n\t\t187, 10, 84, 137, 185, 166, 0, 189, 216, 85, 160, 59, 222,\n\t\t195, 199, 205, 183, 60, 69, 84, 193, 130, 241, 237, 7, 203,\n\t\t158, 198, 250, 137, 250, 121, 32, 163, 163, 155, 76, 32, 18,\n\t\t78, 34, 208, 227, 188, 190, 142, 5, 202, 29, 68, 107, 94,\n\t\t225, 104, 116, 17, 155, 6, 219, 165, 163, 230, 181, 102, 108,\n\t\t141, 141, 152, 228, 30, 152, 213, 255, 141, 138, 28, 71, 204,\n\t\t153, 90, 167, 24, 197, 112, 188, 72, 178, 172, 124, 157, 231,\n\t\t200, 27, 3, 237, 100, 87, 22, 184, 40, 202, 38, 141, 221,\n\t\t6, 14, 244, 61, 37, 231, 116, 244, 158, 210, 73, 142, 45,\n\t\t154, 200, 148, 158, 185, 109, 77, 85, 187, 252, 94, 153, 25,\n\t\t142, 17, 145, 106, 72, 123, 70, 227, 66, 228, 156, 141, 221,\n\t\t34, 165, 237, 247, 28, 221, 175, 192, 222, 223, 42, 134, 198,\n\t\t147, 215, 150, 207, 236, 73, 163, 110, 248, 59, 154, 191,\n\t\t197, 229, 240, 69, 53, 71, 152, 85, 206, 162, 200, 63, 38,\n\t\t210, 248, 240, 166, 219, 69, 130, 7, 123, 34, 39, 101, 177,\n\t\t43, 149, 211, 205, 53, 219, 76, 136, 85, 36, 102, 93, 178,\n\t\t93, 134, 9, 209, 94, 237, 60, 106, 26, 129, 247, 36, 92, 219,\n\t\t89, 226, 109, 30, 163, 24, 249, 4, 27, 198, 38, 32, 254, 49,\n\t\t242, 123, 163, 44, 108, 244, 229, 240, 16, 57, 46, 184, 39,\n\t\t255, 102, 189, 238, 67, 91, 168, 242, 101, 68, 217, 36, 101,\n\t\t222, 145, 64, 89, 28, 68, 141, 117, 18, 16, 154, 65, 95, 145,\n\t\t91, 15, 182, 101, 41, 255, 245, 237, 191, 95, 53, 255, 6,\n\t\t246, 209, 42, 241, 88, 121, 37, 14, 103, 201, 195, 114, 220,\n\t\t164, 230, 140, 116, 66, 151, 135, 192, 105, 39, 51, 71, 105,\n\t\t80, 19, 47, 194, 5, 104, 2, 147, 184, 56, 86, 88, 186, 155,\n\t\t178, 5, 44, 238, 35, 158, 152, 148, 35, 81, 43, 216, 48, 137,\n\t\t211, 78, 85, 248, 9, 126, 54, 101, 180, 152, 130, 29, 163,\n\t\t95, 186, 196, 160, 141, 128, 252, 91, 49, 215, 22, 100, 23,\n\t\t149, 123, 31, 229, 12, 28, 95, 108, 142, 117, 39, 100, 30,\n\t\t222, 57, 200, 209, 135, 186, 11, 83, 150, 119, 21, 67, 51,\n\t\t183, 58, 210, 107, 43, 24, 130, 55, 132, 214, 84, 86, 40,\n\t\t18, 77, 131, 28, 7, 94, 167, 70, 179, 107, 55, 224, 38, 75,\n\t\t66, 28, 16, 231, 220, 103, 225, 16, 5, 252, 121, 220, 34,\n\t\t4, 114, 53, 60, 131, 135, 215, 179, 165, 194, 127, 84, 95,\n\t\t42, 174, 57, 92, 197, 47, 7, 228, 84, 245, 44, 168, 136, 226,\n\t\t84, 233, 157, 187, 74, 120, 160, 137, 128, 133, 150, 35, 187,\n\t\t0, 202, 223, 133, 206, 126, 122, 252, 233, 142, 204, 220,\n\t\t33, 142, 22, 32, 59, 245, 114, 235, 146, 200, 30, 174, 12,\n\t\t190, 182, 100, 140, 105, 156, 66, 138, 93, 45, 93, 183, 69,\n\t\t35, 41, 111, 129, 82, 139, 57, 155, 78, 112, 23, 219, 34,\n\t\t155, 145, 135, 90, 83, 1, 129, 198, 6, 154, 20, 149, 38, 169,\n\t\t180, 235, 138, 17, 245, 252, 87, 153, 117, 132, 120, 16, 40,\n\t\t170, 169, 209, 230, 83, 75, 162, 13, 154, 11, 149, 213, 117,\n\t\t89, 52, 108, 93, 232, 20, 156, 156, 81, 238, 156, 204, 100,\n\t\t73, 37, 137, 61, 173, 216, 103, 200, 137, 223, 213, 139, 150,\n\t\t136, 9, 212, 194, 252, 238, 44, 128, 194, 211, 166, 78, 114,\n\t\t26, 61, 217, 179, 77, 71, 117, 165, 14, 152, 22, 204, 66,\n\t\t98, 135, 44, 238, 237, 137, 145, 86, 38, 83, 2, 22, 62, 167,\n\t\t129, 64, 141, 148, 7, 201, 83, 104, 21, 79, 81, 69, 11, 127,\n\t\t30, 112, 52, 150, 85, 17, 12, 188, 44, 208, 229, 193, 207,\n\t\t219, 217, 148, 40, 60, 54, 108, 224, 155, 28, 116, 210, 19,\n\t\t194, 128, 5, 196, 107, 240, 3, 100, 83, 225, 191, 210, 68,\n\t\t210, 120, 137, 182, 74, 210, 13, 157, 56, 193, 188, 143, 99,\n\t\t233, 205, 88, 164, 13, 5, 187, 53, 98, 77, 97, 223, 26, 62,\n\t\t174, 0, 202, 65, 179, 223, 10, 46, 130, 17, 37, 226, 215,\n\t\t242, 146, 215, 213, 196, 31, 118, 225, 68, 210, 194, 95, 234,\n\t\t77, 8, 231, 161, 4, 31, 207, 8, 220, 9, 229, 192, 107, 144,\n\t\t138, 157, 13, 222, 119, 147, 108, 40, 61, 71, 78, 52, 221,\n\t\t43, 133, 175, 104, 148, 107, 17, 233, 142, 229, 142, 187,\n\t\t60, 68, 18, 27, 124, 143, 182, 44, 103, 116, 198, 88, 179,\n\t\t20, 218, 214, 231, 194, 105, 171, 41, 9, 139, 208, 161, 166,\n\t\t73, 94, 119, 141, 102, 249, 165, 168, 114, 114, 125, 183,\n\t\t201, 151, 196, 207, 41, 216, 58, 104, 242, 3, 164, 197, 222,\n\t\t183, 103, 165, 201, 236, 102, 49, 243, 76, 134, 125, 252,\n\t\t39, 196, 231, 241, 250, 81, 232, 219, 46, 54, 215, 198, 223,\n\t\t10, 187, 125, 211, 236, 42, 70, 147, 102, 106, 241, 187, 130,\n\t\t62, 112, 173, 16, 24, 4, 229, 147, 240, 248, 219, 31, 125,\n\t\t155, 132, 125, 141, 97, 170, 139, 97, 202, 54, 152, 238, 109,\n\t\t30, 43, 33, 200, 60, 95, 70, 115, 90, 33, 17, 178, 68, 244,\n\t\t63, 113, 18, 47, 15, 198, 65, 205, 72, 146, 229, 94, 166,\n\t\t157, 116, 71, 75, 207, 153, 117, 171, 111, 80, 205, 106, 170,\n\t\t15, 32, 143, 247, 120, 110, 138, 236, 154, 151, 211, 81, 54,\n\t\t154, 215, 111, 91, 225, 120, 36, 232, 40, 237, 76, 110, 161,\n\t\t219, 87, 192, 20, 149, 34, 0, 136, 58, 165, 176, 135, 17,\n\t\t98, 31, 130, 13, 131, 66, 8, 18, 30, 88, 197, 32, 94, 97,\n\t\t124, 182, 196, 176, 52, 89, 67, 129, 100, 201, 65, 237, 184,\n\t\t206, 133, 102, 37, 92, 231, 108, 196, 185, 252, 53, 195, 117,\n\t\t122, 31, 108, 59, 53, 213, 93, 243, 6, 57, 12, 186, 84, 87,\n\t\t116, 245, 12, 67, 21, 9, 57, 82, 26, 81, 164, 69, 55, 57,\n\t\t14, 150, 196, 87, 228, 83, 110, 207, 18, 200, 169, 118, 35,\n\t\t182, 239, 145, 20, 134, 34, 92, 146, 236, 14, 36, 29, 71,\n\t\t185, 113, 160, 165, 212, 174, 111, 51, 170, 39, 225, 85, 91,\n\t\t189, 144, 174, 134, 251, 175, 105, 11, 81, 51, 63, 156, 65,\n\t\t77, 79, 75, 35, 216, 152, 218, 31, 216, 213, 113, 151, 180,\n\t\t88, 81, 100, 26, 8, 40, 185, 197, 129, 4, 177, 17, 22, 91,\n\t\t102, 215, 136, 237, 247, 83, 218, 126, 45, 232, 41, 225, 109,\n\t\t38, 9, 203, 67, 109, 243, 142, 164, 23, 102, 145, 203, 18,\n\t\t103, 168, 34, 243, 84, 188, 4, 8, 67, 50, 53, 183, 223, 171,\n\t\t77, 111, 215, 144, 43, 164, 5, 211, 177, 93, 166, 39, 57,\n\t\t64, 8, 221, 126, 219, 158, 251, 154, 76, 112, 243, 162, 11,\n\t\t9, 204, 90, 18, 92, 150, 158, 100, 41, 167, 8, 215, 68, 180,\n\t\t85, 231, 219, 149, 251, 114, 181, 173, 48, 111, 96, 6, 18,\n\t\t128, 39, 154, 43, 93, 107, 208, 156, 113, 149, 124, 49, 171,\n\t\t202, 90, 100, 194, 125, 227, 89, 241, 58, 57, 251, 244, 252,\n\t\t229, 195, 31, 238, 242, 46, 189, 189, 139, 208, 253, 63, 51,\n\t\t239, 210, 60, 12, 70, 148, 163, 163, 201, 134, 35, 160, 2,\n\t\t141, 184, 192, 86, 137, 8, 0, 188, 123, 95, 52, 129, 143,\n\t\t154, 119, 101, 106, 60, 57, 239, 86, 144, 84, 28, 223, 201,\n\t\t147, 80, 76, 108, 77, 5, 16, 43, 228, 16, 74, 248, 74, 102,\n\t\t102, 100, 51, 71, 92, 93, 182, 164, 197, 165, 134, 197, 130,\n\t\t32, 170, 215, 10, 209, 144, 5, 27, 156, 33, 44, 242, 135,\n\t\t1, 203, 188, 51, 205, 224, 5, 234, 158, 204, 229, 81, 21,\n\t\t53, 143, 191, 137, 180, 11, 188, 107, 131, 163, 136, 232,\n\t\t33, 81, 186, 23, 53, 226, 49, 149, 33, 93, 40, 30, 235, 244,\n\t\t220, 82, 197, 229, 33, 214, 108, 57, 253, 71, 61, 12, 175,\n\t\t65, 190, 128, 174, 132, 25, 12, 112, 145, 142, 236, 63, 242,\n\t\t148, 32, 157, 18, 161, 195, 47, 6, 141, 110, 12, 152, 216,\n\t\t3, 174, 10, 242, 241, 113, 132, 71, 33, 211, 119, 165, 79,\n\t\t20, 54, 93, 168, 36, 217, 23, 212, 18, 211, 213, 87, 78, 228,\n\t\t167, 205, 3, 119, 169, 184, 20, 246, 108, 37, 251, 64, 22,\n\t\t62, 176, 138, 102, 208, 11, 99, 187, 146, 68, 65, 195, 169,\n\t\t29, 226, 15, 135, 193, 150, 98, 96, 185, 49, 16, 248, 16,\n\t\t51, 231, 56, 154, 168, 23, 40, 133, 169, 175, 197, 122, 181,\n\t\t160, 133, 200, 97, 222, 187, 8, 7, 186, 83, 100, 61, 240,\n\t\t100, 40, 23, 52, 19, 139, 98, 189, 9, 255, 72, 17, 131, 244,\n\t\t26, 95, 1, 135, 58, 124, 136, 128, 127, 18, 243, 181, 91,\n\t\t94, 211, 184, 242, 151, 185, 119, 215, 91, 22, 248, 68, 216,\n\t\t93, 42, 70, 31, 201, 159, 78, 147, 250, 80, 166, 133, 4, 100,\n\t\t251, 62, 253, 193, 234, 46, 166, 93, 226, 66, 176, 250, 100,\n\t\t108, 180, 229, 48, 104, 205, 210, 164, 40, 89, 212, 8, 142,\n\t\t142, 101, 56, 153, 229, 29, 78, 154, 121, 20, 0, 200, 164,\n\t\t98, 104, 234, 58, 36, 139, 20, 78, 94, 71, 200, 229, 195,\n\t\t92, 32, 222, 112, 145, 248, 76, 202, 188, 206, 108, 94, 115,\n\t\t182, 115, 174, 92, 6, 25, 228, 5, 97, 91, 113, 103, 4, 34,\n\t\t3, 37, 146, 84, 124, 195, 231, 236, 252, 225, 241, 227, 151,\n\t\t199, 207, 119, 0, 232, 183, 119, 25, 237, 99, 112, 154, 33,\n\t\t213, 153, 152, 147, 109, 167, 173, 107, 244, 196, 218, 173,\n\t\t63, 169, 227, 120, 183, 249, 216, 225, 161, 50, 229, 173,\n\t\t122, 36, 127, 192, 126, 146, 112, 25, 93, 196, 187, 4, 191,\n\t\t236, 150, 198, 202, 119, 194, 169, 209, 120, 57, 20, 20, 174,\n\t\t209, 82, 232, 239, 145, 188, 209, 157, 11, 231, 206, 187,\n\t\t234, 212, 21, 47, 220, 109, 58, 169, 19, 59, 154, 55, 230,\n\t\t153, 207, 36, 253, 29, 125, 46, 39, 234, 137, 116, 4, 216,\n\t\t207, 150, 14, 11, 153, 163, 225, 70, 244, 111, 199, 134, 166,\n\t\t103, 118, 120, 57, 75, 134, 177, 215, 175, 167, 231, 159,\n\t\t63, 190, 27, 167, 231, 159, 239, 98, 208, 189, 125, 186, 157,\n\t\t235, 146, 48, 215, 243, 78, 73, 28, 84, 238, 4, 173, 96, 201,\n\t\t39, 141, 185, 83, 16, 171, 124, 229, 138, 145, 112, 44, 60,\n\t\t89, 154, 22, 224, 246, 195, 203, 118, 3, 82, 217, 20, 187,\n\t\t34, 160, 90, 36, 17, 43, 136, 67, 132, 50, 197, 138, 189,\n\t\t254, 241, 53, 238, 69, 60, 93, 148, 14, 192, 108, 185, 233,\n\t\t211, 23, 229, 152, 135, 88, 180, 162, 7, 242, 113, 115, 234,\n\t\t166, 118, 133, 24, 49, 91, 214, 9, 240, 46, 219, 114, 63,\n\t\t7, 142, 232, 170, 228, 149, 6, 39, 180, 50, 75, 231, 161,\n\t\t97, 49, 151, 71, 1, 28, 57, 178, 153, 147, 186, 198, 74, 1,\n\t\t56, 203, 218, 10, 56, 137, 252, 216, 60, 255, 119, 121, 240,\n\t\t153, 226, 79, 20, 111, 211, 208, 71, 171, 100, 45, 77, 193,\n\t\t137, 241, 250, 156, 228, 239, 36, 32, 238, 112, 218, 180,\n\t\t88, 118, 198, 26, 157, 46, 226, 197, 245, 1, 251, 191, 67,\n\t\t91, 57, 253, 106, 137, 79, 188, 80, 89, 152, 89, 204, 185,\n\t\t188, 226, 132, 178, 143, 110, 13, 16, 142, 40, 156, 230, 141,\n\t\t59, 181, 30, 68, 229, 203, 131, 186, 227, 37, 219, 212, 213,\n\t\t81, 55, 131, 170, 52, 16, 16, 72, 183, 204, 206, 37, 118,\n\t\t213, 28, 198, 61, 148, 219, 172, 72, 74, 26, 85, 104, 227,\n\t\t24, 100, 210, 192, 233, 204, 250, 253, 52, 5, 130, 93, 240,\n\t\t162, 198, 124, 210, 79, 76, 130, 245, 61, 26, 228, 117, 215,\n\t\t83, 249, 111, 178, 198, 188, 134, 190, 21, 91, 199, 122, 33,\n\t\t3, 191, 116, 126, 228, 182, 177, 249, 164, 233, 1, 234, 124,\n\t\t187, 150, 88, 166, 189, 25, 158, 64, 124, 245, 131, 140, 76,\n\t\t31, 54, 22, 12, 144, 191, 188, 154, 8, 110, 120, 218, 138,\n\t\t180, 201, 12, 12, 62, 105, 153, 101, 41, 13, 237, 187, 91,\n\t\t76, 29, 94, 86, 144, 61, 41, 185, 120, 134, 156, 46, 188,\n\t\t190, 95, 43, 248, 134, 59, 45, 23, 211, 38, 26, 181, 85, 195,\n\t\t71, 144, 227, 206, 168, 212, 167, 56, 48, 125, 206, 245, 135,\n\t\t177, 18, 162, 92, 249, 145, 170, 143, 48, 181, 210, 243, 45,\n\t\t47, 193, 233, 151, 94, 12, 85, 142, 43, 202, 78, 110, 140,\n\t\t43, 87, 99, 3, 171, 95, 19, 150, 57, 76, 89, 77, 221, 121,\n\t\t9, 96, 203, 187, 104, 13, 95, 6, 39, 223, 156, 84, 187, 90,\n\t\t221, 105, 185, 82, 201, 97, 186, 90, 101, 245, 128, 90, 76,\n\t\t235, 182, 123, 92, 193, 224, 59, 118, 178, 178, 182, 107,\n\t\t10, 48, 134, 114, 61, 7, 245, 106, 14, 170, 219, 147, 96,\n\t\t222, 234, 50, 142, 245, 4, 42, 19, 58, 209, 54, 19, 61, 39,\n\t\t217, 222, 29, 181, 116, 195, 212, 17, 91, 193, 155, 248, 164,\n\t\t140, 184, 175, 180, 183, 181, 92, 184, 177, 216, 67, 175,\n\t\t89, 143, 117, 85, 223, 126, 120, 209, 235, 124, 215, 150,\n\t\t159, 40, 45, 212, 121, 74, 140, 192, 179, 204, 76, 99, 156,\n\t\t39, 13, 204, 86, 45, 182, 158, 33, 202, 175, 45, 192, 231,\n\t\t69, 142, 2, 86, 94, 34, 192, 220, 30, 121, 5, 191, 75, 79,\n\t\t52, 87, 38, 151, 15, 187, 131, 175, 27, 87, 237, 188, 73,\n\t\t41, 29, 189, 236, 242, 16, 58, 197, 160, 237, 217, 246, 177,\n\t\t200, 32, 63, 96, 183, 7, 224, 145, 129, 89, 228, 49, 2, 160,\n\t\t227, 75, 152, 204, 148, 210, 125, 1, 114, 236, 209, 233, 43,\n\t\t156, 13, 120, 217, 21, 72, 47, 225, 18, 147, 251, 130, 217,\n\t\t253, 61, 73, 213, 221, 37, 31, 164, 97, 81, 2, 115, 224, 160,\n\t\t107, 107, 81, 161, 248, 45, 122, 42, 28, 158, 234, 175, 183,\n\t\t44, 214, 205, 44, 247, 55, 98, 203, 212, 119, 74, 207, 191,\n\t\t166, 250, 217, 85, 48, 39, 127, 83, 113, 194, 53, 62, 89,\n\t\t198, 118, 218, 81, 111, 153, 4, 245, 200, 149, 37, 199, 81,\n\t\t23, 6, 133, 154, 29, 224, 222, 190, 115, 175, 191, 250, 149,\n\t\t94, 131, 92, 30, 139, 40, 197, 171, 21, 191, 166, 220, 151,\n\t\t7, 223, 146, 173, 226, 86, 28, 149, 102, 103, 108, 108, 244,\n\t\t29, 17, 233, 128, 218, 57, 17, 172, 215, 17, 227, 66, 228,\n\t\t131, 120, 164, 221, 18, 47, 103, 255, 42, 23, 189, 176, 55,\n\t\t186, 45, 68, 178, 97, 76, 15, 226, 237, 73, 51, 161, 196,\n\t\t87, 183, 61, 115, 182, 24, 230, 124, 55, 121, 20, 8, 179,\n\t\t192, 199, 11, 34, 62, 8, 13, 23, 231, 109, 65, 105, 212, 166,\n\t\t16, 58, 96, 244, 115, 148, 121, 146, 245, 112, 50, 231, 28,\n\t\t253, 186, 10, 26, 113, 103, 32, 156, 45, 120, 181, 43, 148,\n\t\t81, 10, 92, 149, 154, 227, 22, 124, 179, 113, 96, 207, 45,\n\t\t52, 5, 232, 135, 238, 236, 197, 127, 83, 197, 57, 164, 62,\n\t\t101, 126, 7, 21, 45, 136, 69, 69, 124, 26, 9, 50, 7, 148,\n\t\t56, 230, 112, 18, 19, 131, 176, 157, 136, 46, 34, 229, 81,\n\t\t131, 36, 175, 165, 188, 90, 72, 36, 239, 35, 37, 50, 243,\n\t\t161, 216, 68, 238, 150, 56, 197, 176, 228, 232, 179, 37, 247,\n\t\t144, 148, 47, 15, 161, 240, 70, 113, 182, 15, 85, 137, 41,\n\t\t72, 87, 120, 172, 202, 84, 151, 227, 108, 41, 117, 244, 145,\n\t\t20, 220, 167, 69, 91, 229, 104, 8, 225, 197, 51, 100, 98,\n\t\t249, 25, 252, 207, 11, 125, 90, 95, 241, 133, 193, 68, 156,\n\t\t95, 137, 83, 134, 178, 188, 108, 236, 204, 161, 89, 15, 147,\n\t\t116, 205, 232, 131, 26, 179, 130, 129, 149, 93, 181, 217,\n\t\t170, 250, 2, 183, 252, 58, 245, 68, 203, 29, 33, 20, 79, 217,\n\t\t127, 74, 33, 185, 54, 235, 38, 185, 132, 14, 215, 7, 2, 188,\n\t\t226, 58, 74, 114, 24, 215, 99, 249, 236, 110, 186, 67, 183,\n\t\t21, 9, 18, 199, 135, 127, 35, 127, 215, 93, 38, 175, 212,\n\t\t187, 142, 179, 90, 186, 221, 77, 234, 118, 228, 196, 172,\n\t\t231, 84, 113, 22, 169, 228, 226, 58, 127, 20, 245, 74, 215,\n\t\t16, 166, 113, 125, 20, 118, 233, 164, 151, 71, 154, 210, 156,\n\t\t174, 98, 1, 191, 72, 12, 1, 119, 90, 111, 158, 93, 124, 143,\n\t\t235, 167, 189, 104, 14, 234, 184, 90, 225, 77, 251, 49, 166,\n\t\t235, 49, 122, 210, 100, 195, 185, 197, 220, 252, 18, 127,\n\t\t191, 145, 130, 236, 227, 157, 189, 104, 220, 101, 220, 184,\n\t\t201, 131, 216, 163, 141, 231, 45, 35, 36, 63, 146, 101, 108,\n\t\t59, 143, 32, 177, 193, 97, 232, 106, 110, 46, 96, 27, 181,\n\t\t77, 213, 28, 119, 142, 252, 92, 35, 249, 185, 6, 214, 129,\n\t\t146, 151, 185, 239, 147, 211, 74, 43, 52, 206, 74, 242, 5,\n\t\t55, 96, 128, 106, 244, 130, 24, 218, 102, 97, 115, 2, 229,\n\t\t57, 32, 143, 20, 82, 145, 38, 235, 77, 156, 7, 232, 88, 19,\n\t\t249, 146, 168, 177, 131, 210, 31, 22, 137, 143, 73, 1, 59,\n\t\t40, 75, 242, 22, 157, 183, 228, 177, 204, 202, 56, 249, 11,\n\t\t60, 20, 80, 17, 21, 212, 198, 21, 219, 73, 247, 200, 113,\n\t\t35, 33, 245, 53, 81, 51, 53, 4, 119, 64, 197, 220, 181, 147,\n\t\t172, 23, 49, 243, 198, 93, 2, 62, 79, 209, 235, 228, 243,\n\t\t152, 253, 233, 148, 90, 162, 144, 107, 14, 39, 117, 52, 77,\n\t\t141, 108, 243, 19, 103, 190, 144, 160, 97, 102, 235, 32, 192,\n\t\t37, 10, 106, 254, 160, 217, 233, 61, 208, 226, 188, 130, 81,\n\t\t50, 142, 193, 12, 222, 232, 97, 8, 57, 171, 234, 213, 164,\n\t\t222, 40, 98, 235, 144, 138, 161, 49, 89, 25, 232, 173, 129,\n\t\t200, 196, 94, 135, 154, 60, 101, 86, 88, 247, 42, 112, 229,\n\t\t234, 13, 229, 9, 204, 35, 46, 182, 206, 127, 35, 179, 216,\n\t\t220, 192, 159, 238, 243, 188, 142, 87, 242, 188, 230, 57,\n\t\t163, 45, 155, 64, 209, 194, 203, 40, 214, 57, 199, 71, 182,\n\t\t247, 78, 186, 161, 234, 83, 99, 133, 178, 79, 161, 80, 69,\n\t\t110, 226, 110, 212, 114, 56, 147, 182, 190, 83, 144, 169,\n\t\t173, 206, 54, 153, 126, 142, 159, 37, 27, 90, 37, 125, 23,\n\t\t106, 230, 239, 38, 139, 28, 40, 9, 228, 148, 227, 130, 31,\n\t\t91, 163, 76, 57, 164, 224, 232, 178, 130, 197, 230, 70, 103,\n\t\t170, 251, 236, 36, 242, 108, 245, 209, 56, 254, 173, 254,\n\t\t20, 157, 78, 235, 45, 212, 219, 88, 118, 21, 252, 214, 179,\n\t\t116, 150, 19, 82, 112, 103, 103, 95, 99, 171, 132, 201, 110,\n\t\t116, 43, 75, 153, 7, 120, 146, 119, 13, 244, 16, 29, 148,\n\t\t254, 161, 123, 218, 59, 138, 67, 102, 98, 75, 182, 149, 126,\n\t\t38, 224, 107, 174, 225, 212, 179, 77, 161, 85, 246, 112, 247,\n\t\t169, 157, 106, 177, 45, 87, 66, 187, 207, 47, 38, 13, 78,\n\t\t248, 217, 105, 243, 117, 174, 12, 65, 183, 146, 109, 121,\n\t\t53, 223, 164, 189, 62, 80, 158, 119, 150, 23, 93, 30, 18,\n\t\t103, 216, 105, 165, 157, 183, 74, 163, 235, 135, 83, 206,\n\t\t188, 126, 113, 62, 166, 36, 126, 219, 100, 187, 83, 41, 248,\n\t\t173, 63, 109, 87, 15, 205, 141, 114, 246, 236, 94, 219, 43,\n\t\t7, 77, 156, 236, 151, 243, 254, 84, 43, 189, 219, 228, 64,\n\t\t89, 108, 238, 62, 111, 57, 240, 116, 224, 77, 39, 140, 139,\n\t\t135, 85, 215, 11, 228, 249, 171, 11, 155, 244, 1, 83, 232,\n\t\t47, 15, 169, 52, 67, 198, 161, 156, 206, 50, 50, 178, 145,\n\t\t210, 200, 200, 26, 156, 235, 235, 193, 118, 254, 199, 203,\n\t\t31, 62, 188, 123, 119, 31, 124, 114, 220, 217, 213, 22, 40,\n\t\t58, 79, 182, 49, 50, 251, 152, 99, 27, 147, 70, 181, 198,\n\t\t246, 247, 24, 9, 142, 20, 107, 224, 92, 143, 185, 184, 108,\n\t\t114, 177, 45, 18, 81, 10, 243, 135, 20, 170, 192, 187, 152,\n\t\t57, 6, 40, 165, 3, 201, 217, 230, 84, 59, 33, 91, 75, 230,\n\t\t80, 158, 205, 6, 207, 72, 254, 208, 35, 229, 85, 119, 145,\n\t\t110, 132, 57, 213, 117, 54, 41, 205, 186, 202, 33, 190, 114,\n\t\t235, 45, 113, 20, 127, 79, 190, 87, 169, 185, 84, 58, 133,\n\t\t81, 136, 33, 16, 211, 239, 92, 105, 49, 119, 246, 236, 45,\n\t\t133, 86, 33, 245, 224, 91, 35, 7, 172, 62, 153, 28, 155, 99,\n\t\t119, 37, 28, 198, 70, 246, 225, 72, 220, 103, 44, 149, 227,\n\t\t158, 214, 90, 40, 22, 73, 43, 41, 138, 166, 210, 213, 73,\n\t\t100, 83, 12, 133, 108, 209, 62, 180, 78, 126, 134, 217, 81,\n\t\t128, 180, 214, 19, 101, 166, 40, 33, 26, 242, 41, 247, 137,\n\t\t208, 181, 197, 83, 208, 175, 84, 218, 124, 67, 15, 177, 69,\n\t\t67, 91, 221, 39, 83, 108, 14, 46, 79, 6, 57, 251, 84, 38,\n\t\t75, 155, 83, 234, 140, 165, 75, 228, 119, 229, 109, 43, 46,\n\t\t209, 145, 77, 57, 154, 92, 109, 169, 142, 114, 67, 148, 154,\n\t\t155, 169, 147, 49, 104, 132, 161, 12, 45, 144, 145, 44, 180,\n\t\t230, 77, 206, 54, 16, 121, 243, 54, 183, 218, 77, 155, 11,\n\t\t230, 137, 241, 46, 255, 63, 113, 127, 158, 228, 72, 110, 116,\n\t\t139, 163, 255, 115, 21, 177, 129, 128, 97, 30, 236, 173, 129,\n\t\t139, 168, 70, 167, 196, 122, 95, 244, 112, 59, 91, 212, 39,\n\t\t174, 254, 103, 62, 28, 71, 144, 89, 149, 213, 146, 236, 218,\n\t\t53, 235, 174, 100, 128, 96, 4, 2, 131, 195, 221, 225, 126,\n\t\t14, 131, 72, 68, 151, 106, 141, 2, 81, 210, 10, 35, 76, 186,\n\t\t154, 70, 101, 247, 71, 104, 173, 37, 210, 17, 99, 22, 208,\n\t\t183, 218, 75, 41, 76, 166, 19, 3, 67, 236, 150, 148, 226,\n\t\t150, 186, 11, 49, 6, 218, 35, 106, 137, 140, 200, 144, 217,\n\t\t22, 33, 53, 37, 166, 57, 162, 235, 69, 178, 90, 90, 246, 18,\n\t\t95, 63, 74, 222, 186, 75, 33, 148, 184, 197, 76, 243, 150,\n\t\t187, 187, 230, 82, 102, 113, 165, 180, 202, 155, 176, 203,\n\t\t173, 146, 10, 222, 114, 9, 130, 9, 90, 125, 203, 219, 112,\n\t\t126, 240, 112, 102, 250, 148, 219, 244, 174, 133, 218, 70,\n\t\t227, 147, 167, 72, 115, 47, 184, 90, 104, 200, 186, 11, 165,\n\t\t196, 70, 250, 94, 247, 93, 113, 131, 91, 205, 143, 203, 181,\n\t\t36, 106, 80, 216, 74, 114, 181, 244, 56, 211, 112, 41, 36,\n\t\t78, 218, 75, 173, 108, 49, 186, 28, 24, 56, 93, 166, 78, 210,\n\t\t101, 22, 114, 118, 121, 180, 185, 55, 151, 83, 41, 156, 127,\n\t\t95, 121, 71, 24, 174, 197, 82, 6, 41, 215, 153, 49, 120, 135,\n\t\t235, 252, 2, 156, 200, 158, 104, 190, 184, 222, 124, 136,\n\t\t27, 43, 55, 113, 200, 161, 23, 233, 236, 189, 57, 95, 211,\n\t\t182, 199, 228, 93, 20, 94, 201, 74, 207, 136, 213, 133, 144,\n\t\t146, 196, 204, 212, 38, 161, 64, 52, 55, 54, 193, 180, 167,\n\t\t13, 131, 230, 54, 77, 6, 65, 102, 100, 94, 165, 230, 202,\n\t\t240, 188, 73, 101, 231, 135, 110, 216, 131, 133, 74, 115,\n\t\t163, 181, 34, 80, 237, 97, 116, 241, 51, 196, 70, 171, 148,\n\t\t103, 105, 144, 179, 220, 154, 36, 113, 144, 214, 20, 39, 97,\n\t\t100, 54, 245, 162, 243, 52, 228, 164, 195, 247, 228, 195,\n\t\t228, 120, 228, 218, 228, 8, 217, 199, 44, 241, 214, 35, 168,\n\t\t14, 88, 35, 105, 112, 100, 107, 241, 162, 175, 209, 177, 102,\n\t\t22, 121, 182, 74, 210, 126, 243, 188, 84, 71, 200, 190, 74,\n\t\t6, 185, 60, 155, 19, 172, 106, 227, 131, 183, 144, 106, 187,\n\t\t76, 134, 197, 234, 67, 228, 78, 44, 244, 208, 66, 237, 32,\n\t\t129, 208, 178, 44, 16, 234, 149, 208, 75, 17, 156, 148, 224,\n\t\t11, 169, 116, 52, 76, 18, 7, 23, 7, 135, 253, 242, 48, 239,\n\t\t101, 184, 90, 83, 216, 70, 113, 161, 101, 201, 163, 25, 163,\n\t\t132, 185, 160, 59, 72, 132, 228, 206, 161, 110, 129, 164,\n\t\t113, 20, 96, 126, 22, 62, 86, 226, 73, 28, 199, 209, 56, 163,\n\t\t190, 151, 166, 89, 28, 77, 164, 126, 41, 129, 86, 104, 104,\n\t\t158, 86, 199, 198, 141, 200, 35, 94, 102, 236, 110, 208, 60,\n\t\t243, 46, 141, 150, 43, 207, 67, 159, 21, 147, 37, 52, 70,\n\t\t157, 136, 221, 39, 18, 63, 181, 112, 92, 81, 78, 110, 148,\n\t\t200, 129, 254, 161, 180, 185, 23, 215, 115, 167, 105, 147,\n\t\t2, 21, 200, 164, 168, 180, 22, 5, 46, 136, 186, 175, 86, 87,\n\t\t107, 213, 130, 34, 60, 227, 163, 36, 102, 28, 163, 151, 76,\n\t\t186, 176, 88, 5, 171, 244, 110, 131, 83, 125, 124, 27, 65,\n\t\t98, 160, 75, 96, 85, 186, 142, 150, 56, 206, 47, 176, 247,\n\t\t148, 20, 12, 207, 232, 91, 154, 63, 81, 228, 117, 200, 50,\n\t\t232, 141, 134, 43, 122, 231, 75, 97, 189, 162, 247, 214, 4,\n\t\t98, 163, 143, 68, 211, 41, 209, 156, 174, 222, 197, 198, 96,\n\t\t83, 174, 245, 24, 19, 43, 202, 98, 26, 114, 3, 104, 42, 22,\n\t\t145, 29, 204, 3, 223, 26, 199, 78, 251, 26, 11, 27, 13, 161,\n\t\t247, 50, 179, 43, 185, 247, 68, 118, 60, 107, 37, 205, 117,\n\t\t158, 92, 36, 67, 227, 144, 83, 215, 172, 39, 169, 57, 183,\n\t\t73, 115, 40, 151, 182, 21, 87, 120, 234, 68, 239, 26, 117,\n\t\t144, 119, 189, 167, 198, 124, 221, 46, 84, 9, 228, 167, 174,\n\t\t156, 52, 37, 19, 107, 0, 44, 93, 179, 164, 124, 38, 206, 201,\n\t\t161, 25, 73, 221, 194, 46, 147, 202, 204, 52, 18, 173, 64,\n\t\t175, 223, 93, 31, 173, 112, 132, 2, 119, 114, 238, 220, 52,\n\t\t26, 79, 89, 50, 36, 48, 99, 221, 154, 119, 161, 245, 54, 131,\n\t\t139, 145, 230, 1, 9, 158, 158, 57, 245, 41, 85, 65, 63, 97,\n\t\t54, 197, 84, 92, 14, 153, 133, 250, 168, 185, 207, 72, 74,\n\t\t65, 230, 227, 251, 154, 90, 99, 108, 224, 218, 57, 85, 42,\n\t\t228, 82, 216, 34, 30, 114, 242, 150, 91, 170, 105, 114, 248,\n\t\t170, 180, 58, 183, 194, 86, 74, 97, 151, 99, 15, 44, 97, 133,\n\t\t32, 145, 85, 79, 31, 92, 204, 101, 146, 78, 39, 60, 120, 106,\n\t\t216, 148, 236, 98, 201, 52, 254, 212, 182, 200, 254, 251,\n\t\t30, 147, 16, 197, 249, 50, 120, 90, 147, 100, 216, 50, 41,\n\t\t243, 67, 49, 213, 72, 142, 250, 226, 124, 168, 218, 85, 157,\n\t\t183, 135, 204, 184, 102, 131, 22, 24, 79, 130, 172, 200, 229,\n\t\t35, 212, 193, 126, 163, 145, 66, 205, 26, 189, 63, 68, 96,\n\t\t180, 64, 114, 49, 240, 126, 197, 214, 100, 231, 77, 132, 71,\n\t\t137, 58, 203, 5, 102, 8, 98, 248, 59, 161, 144, 78, 37, 150,\n\t\t201, 145, 24, 41, 112, 220, 108, 73, 204, 88, 159, 107, 26,\n\t\t91, 246, 46, 103, 159, 183, 158, 100, 46, 70, 82, 66, 210,\n\t\t152, 41, 168, 18, 198, 143, 164, 138, 195, 5, 223, 36, 13,\n\t\t142, 246, 76, 142, 214, 41, 234, 8, 35, 145, 243, 35, 26,\n\t\t135, 159, 222, 62, 32, 52, 252, 252, 129, 79, 233, 68, 217,\n\t\t195, 64, 231, 123, 97, 162, 137, 225, 216, 75, 24, 37, 87,\n\t\t43, 84, 9, 53, 103, 240, 197, 146, 153, 96, 72, 220, 57, 106,\n\t\t64, 101, 156, 157, 23, 177, 23, 57, 208, 205, 123, 38, 176,\n\t\t143, 56, 12, 183, 67, 19, 248, 233, 62, 32, 152, 26, 1, 182,\n\t\t160, 3, 41, 201, 28, 27, 209, 39, 100, 171, 200, 174, 180,\n\t\t149, 117, 206, 105, 131, 122, 234, 165, 127, 103, 234, 174,\n\t\t80, 151, 35, 213, 80, 17, 124, 104, 27, 28, 175, 215, 12,\n\t\t134, 191, 216, 106, 178, 230, 84, 102, 228, 26, 190, 20, 28,\n\t\t81, 179, 166, 18, 208, 196, 178, 121, 19, 92, 177, 174, 160,\n\t\t73, 47, 63, 123, 41, 88, 96, 72, 17, 120, 129, 72, 85, 175,\n\t\t138, 83, 253, 90, 112, 100, 64, 231, 106, 120, 119, 70, 232,\n\t\t113, 209, 12, 76, 69, 216, 183, 100, 28, 220, 128, 118, 64,\n\t\t181, 151, 95, 74, 46, 198, 238, 19, 121, 197, 151, 13, 177,\n\t\t145, 231, 11, 13, 77, 77, 6, 61, 128, 80, 150, 14, 199, 146,\n\t\t129, 219, 164, 177, 58, 240, 169, 100, 26, 98, 255, 174, 65,\n\t\t228, 230, 74, 81, 187, 123, 33, 44, 133, 216, 28, 109, 243,\n\t\t200, 38, 216, 241, 230, 72, 187, 133, 123, 252, 229, 122,\n\t\t146, 197, 66, 107, 120, 88, 18, 8, 167, 98, 199, 178, 62,\n\t\t157, 152, 124, 202, 57, 162, 115, 177, 127, 158, 175, 103,\n\t\t49, 242, 74, 206, 248, 10, 217, 81, 139, 53, 192, 28, 75,\n\t\t194, 103, 215, 103, 20, 127, 100, 37, 1, 173, 185, 238, 180,\n\t\t90, 134, 132, 252, 71, 135, 171, 79, 237, 164, 183, 95, 126,\n\t\t255, 250, 49, 142, 250, 231, 15, 28, 91, 167, 232, 195, 222,\n\t\t92, 221, 210, 72, 174, 79, 203, 164, 182, 51, 68, 164, 114,\n\t\t192, 157, 46, 132, 120, 236, 104, 189, 43, 115, 231, 108,\n\t\t0, 48, 69, 28, 67, 200, 10, 144, 67, 187, 65, 207, 242, 74,\n\t\t12, 78, 119, 172, 65, 28, 56, 203, 65, 111, 14, 139, 48, 3,\n\t\t178, 39, 242, 10, 13, 59, 165, 233, 209, 111, 232, 202, 99,\n\t\t180, 199, 186, 230, 63, 18, 154, 138, 5, 210, 250, 224, 6,\n\t\t162, 85, 31, 87, 164, 127, 210, 114, 173, 151, 185, 220, 220,\n\t\t250, 210, 56, 33, 64, 60, 187, 5, 90, 167, 128, 231, 126,\n\t\t104, 60, 92, 67, 201, 114, 225, 181, 160, 34, 132, 12, 5,\n\t\t252, 254, 239, 0, 10, 105, 108, 135, 216, 23, 229, 248, 120,\n\t\t107, 56, 221, 44, 190, 221, 175, 158, 216, 79, 109, 59, 162,\n\t\t230, 26, 239, 77, 143, 156, 150, 135, 26, 105, 114, 187, 117,\n\t\t174, 101, 130, 89, 137, 230, 113, 190, 155, 163, 59, 35, 208,\n\t\t220, 159, 73, 83, 105, 123, 222, 66, 62, 246, 140, 31, 42,\n\t\t150, 209, 252, 192, 244, 20, 149, 101, 212, 206, 210, 211,\n\t\t41, 130, 242, 142, 70, 205, 29, 19, 199, 192, 176, 200, 72,\n\t\t88, 209, 163, 52, 117, 134, 244, 155, 15, 71, 168, 155, 4,\n\t\t6, 134, 203, 92, 125, 37, 19, 197, 2, 80, 117, 198, 88, 55,\n\t\t41, 157, 202, 17, 186, 209, 79, 89, 24, 116, 212, 96, 96,\n\t\t201, 117, 199, 164, 161, 57, 195, 249, 207, 246, 230, 160,\n\t\t195, 76, 52, 96, 19, 32, 130, 104, 177, 222, 76, 34, 249,\n\t\t44, 177, 60, 74, 22, 244, 154, 49, 24, 85, 222, 81, 42, 16,\n\t\t63, 60, 203, 4, 6, 4, 224, 117, 34, 47, 123, 7, 39, 238, 101,\n\t\t145, 26, 159, 35, 171, 236, 109, 237, 152, 227, 220, 191,\n\t\t135, 5, 46, 33, 18, 90, 146, 159, 17, 162, 215, 44, 31, 100,\n\t\t129, 94, 202, 81, 19, 214, 73, 102, 208, 132, 34, 110, 238,\n\t\t217, 24, 204, 72, 79, 167, 117, 143, 10, 77, 179, 44, 1, 112,\n\t\t134, 110, 6, 82, 220, 176, 19, 17, 1, 24, 66, 70, 11, 211,\n\t\t13, 138, 52, 200, 156, 213, 212, 53, 201, 156, 199, 248, 30,\n\t\t16, 79, 190, 184, 156, 245, 173, 241, 210, 56, 231, 61, 201,\n\t\t33, 139, 184, 193, 11, 243, 251, 246, 13, 47, 10, 220, 10,\n\t\t147, 6, 50, 172, 223, 200, 132, 251, 183, 153, 72, 190, 197,\n\t\t205, 151, 59, 35, 74, 25, 27, 109, 16, 255, 75, 219, 98, 18,\n\t\t50, 101, 254, 195, 255, 94, 222, 245, 74, 107, 236, 231, 42,\n\t\t239, 79, 101, 79, 223, 200, 197, 249, 174, 252, 47, 89, 90,\n\t\t153, 46, 70, 119, 43, 61, 116, 135, 104, 130, 188, 65, 4,\n\t\t205, 42, 16, 209, 180, 104, 73, 90, 89, 98, 139, 191, 204,\n\t\t231, 137, 44, 199, 32, 42, 157, 2, 147, 131, 112, 239, 35,\n\t\t175, 77, 37, 83, 98, 87, 241, 6, 153, 132, 51, 57, 75, 220,\n\t\t229, 164, 84, 129, 10, 240, 52, 42, 52, 161, 222, 33, 49,\n\t\t32, 130, 76, 74, 233, 176, 153, 172, 67, 66, 13, 132, 150,\n\t\t201, 32, 96, 192, 24, 211, 183, 53, 231, 113, 141, 53, 80,\n\t\t191, 69, 239, 198, 97, 80, 86, 85, 131, 26, 86, 184, 136,\n\t\t197, 16, 233, 44, 95, 1, 82, 208, 56, 164, 224, 157, 83, 68,\n\t\t79, 17, 96, 250, 181, 124, 123, 177, 71, 216, 19, 112, 160,\n\t\t99, 187, 169, 87, 70, 92, 81, 16, 189, 77, 227, 114, 44, 180,\n\t\t202, 44, 152, 152, 211, 18, 83, 45, 84, 30, 239, 24, 113,\n\t\t238, 128, 6, 100, 201, 147, 59, 42, 178, 176, 141, 130, 154,\n\t\t249, 11, 236, 112, 84, 79, 227, 44, 145, 19, 226, 59, 185,\n\t\t242, 110, 1, 43, 70, 35, 171, 13, 227, 195, 37, 189, 35, 13,\n\t\t171, 188, 188, 16, 117, 23, 65, 230, 192, 102, 141, 147, 21,\n\t\t110, 204, 135, 23, 2, 108, 174, 69, 136, 171, 82, 36, 176,\n\t\t44, 171, 51, 248, 215, 251, 169, 51, 147, 80, 126, 203, 104,\n\t\t197, 37, 140, 84, 246, 63, 141, 194, 187, 164, 137, 25, 191,\n\t\t212, 203, 16, 174, 251, 238, 122, 227, 203, 180, 99, 55, 156,\n\t\t76, 43, 165, 180, 54, 211, 210, 116, 208, 52, 188, 152, 189,\n\t\t151, 233, 142, 64, 4, 53, 134, 3, 196, 242, 227, 224, 16,\n\t\t125, 179, 235, 137, 157, 142, 83, 116, 39, 250, 171, 21, 4,\n\t\t165, 227, 116, 230, 246, 44, 239, 167, 0, 155, 186, 61, 241,\n\t\t126, 22, 27, 255, 221, 134, 203, 44, 35, 139, 60, 215, 161,\n\t\t79, 107, 195, 84, 115, 5, 77, 123, 125, 189, 221, 200, 168,\n\t\t23, 89, 27, 200, 123, 109, 223, 61, 119, 210, 231, 24, 94,\n\t\t127, 255, 46, 73, 224, 207, 70, 18, 24, 50, 137, 209, 49,\n\t\t36, 59, 47, 72, 150, 3, 103, 247, 45, 156, 53, 97, 68, 147,\n\t\t115, 205, 105, 137, 12, 33, 97, 44, 76, 151, 108, 118, 49,\n\t\t13, 35, 69, 15, 251, 56, 14, 126, 125, 12, 253, 61, 148, 165,\n\t\t138, 122, 193, 51, 144, 13, 16, 187, 72, 8, 133, 3, 84, 42,\n\t\t147, 156, 164, 98, 134, 172, 8, 157, 108, 25, 68, 100, 41,\n\t\t240, 64, 49, 40, 71, 200, 26, 52, 35, 157, 4, 164, 177, 104,\n\t\t151, 151, 9, 112, 57, 54, 160, 65, 34, 136, 137, 4, 174, 12,\n\t\t5, 89, 252, 127, 136, 114, 224, 219, 22, 91, 118, 105, 117,\n\t\t230, 110, 9, 139, 66, 44, 11, 93, 212, 50, 133, 59, 212, 56,\n\t\t209, 14, 140, 76, 127, 32, 135, 122, 165, 85, 91, 81, 30,\n\t\t202, 58, 219, 79, 2, 51, 218, 6, 175, 5, 242, 132, 251, 9,\n\t\t78, 222, 192, 198, 45, 50, 42, 180, 101, 144, 241, 135, 229,\n\t\t54, 205, 237, 233, 167, 60, 165, 76, 149, 54, 66, 111, 155,\n\t\t74, 86, 162, 192, 223, 28, 58, 161, 41, 202, 201, 24, 82,\n\t\t26, 71, 156, 201, 114, 111, 151, 153, 26, 38, 48, 208, 212,\n\t\t0, 97, 129, 107, 197, 47, 157, 158, 33, 82, 249, 135, 13,\n\t\t102, 24, 176, 246, 80, 176, 128, 182, 134, 70, 191, 24, 137,\n\t\t171, 234, 240, 0, 37, 80, 62, 87, 40, 189, 69, 80, 254, 162,\n\t\t78, 106, 238, 63, 92, 235, 94, 43, 164, 174, 178, 19, 66,\n\t\t202, 155, 94, 173, 189, 25, 202, 180, 216, 39, 175, 177, 81,\n\t\t5, 250, 60, 158, 173, 134, 214, 229, 158, 36, 21, 140, 54,\n\t\t226, 196, 81, 43, 209, 149, 27, 35, 94, 50, 158, 5, 250, 87,\n\t\t129, 116, 22, 182, 116, 142, 78, 32, 133, 75, 113, 229, 150,\n\t\t140, 14, 1, 173, 138, 102, 127, 200, 187, 231, 226, 36, 189,\n\t\t141, 17, 89, 99, 237, 46, 109, 41, 10, 79, 190, 77, 136, 224,\n\t\t13, 34, 195, 32, 42, 180, 96, 225, 170, 249, 133, 209, 174,\n\t\t140, 4, 139, 221, 24, 121, 109, 254, 196, 133, 140, 244, 94,\n\t\t17, 37, 86, 85, 10, 216, 85, 34, 43, 26, 15, 228, 123, 218,\n\t\t211, 165, 218, 227, 154, 26, 189, 48, 186, 71, 55, 60, 99,\n\t\t97, 91, 104, 140, 198, 64, 122, 18, 130, 55, 86, 247, 231,\n\t\t9, 135, 83, 70, 7, 225, 213, 104, 41, 10, 228, 55, 106, 198,\n\t\t222, 105, 35, 144, 8, 40, 8, 119, 139, 107, 134, 224, 197,\n\t\t106, 129, 229, 139, 130, 181, 116, 110, 214, 194, 59, 187,\n\t\t137, 176, 52, 20, 160, 227, 9, 204, 204, 114, 7, 181, 96,\n\t\t6, 131, 148, 138, 105, 211, 233, 206, 241, 114, 237, 158,\n\t\t196, 179, 247, 164, 171, 236, 160, 201, 221, 13, 182, 219,\n\t\t32, 55, 181, 100, 2, 22, 105, 195, 182, 16, 64, 77, 207, 87,\n\t\t81, 102, 196, 189, 130, 204, 24, 182, 134, 63, 39, 134, 131,\n\t\t111, 233, 181, 228, 158, 196, 234, 184, 89, 186, 247, 143,\n\t\t182, 187, 15, 251, 92, 90, 73, 238, 170, 194, 196, 202, 49,\n\t\t96, 21, 132, 193, 137, 67, 127, 200, 208, 173, 174, 111, 21,\n\t\t97, 133, 234, 166, 243, 91, 210, 188, 232, 34, 160, 149, 10,\n\t\t110, 125, 39, 163, 182, 24, 124, 170, 46, 229, 180, 237, 154,\n\t\t9, 203, 130, 181, 128, 212, 9, 185, 251, 2, 41, 204, 99, 67,\n\t\t178, 158, 35, 253, 204, 29, 36, 172, 36, 202, 130, 41, 41,\n\t\t109, 178, 94, 144, 34, 161, 43, 22, 62, 11, 203, 61, 68, 129,\n\t\t234, 66, 18, 102, 102, 166, 64, 88, 112, 101, 2, 27, 165,\n\t\t206, 51, 191, 129, 48, 112, 225, 137, 238, 77, 182, 10, 92,\n\t\t204, 21, 65, 197, 103, 177, 101, 97, 31, 242, 149, 6, 238,\n\t\t79, 111, 200, 236, 129, 233, 185, 100, 250, 1, 191, 87, 22,\n\t\t243, 61, 204, 61, 150, 165, 17, 35, 184, 178, 136, 182, 132,\n\t\t123, 73, 53, 249, 165, 48, 164, 132, 179, 203, 150, 175, 106,\n\t\t103, 180, 37, 182, 240, 171, 196, 54, 3, 153, 199, 179, 79,\n\t\t19, 243, 88, 247, 146, 19, 242, 164, 74, 244, 157, 83, 36,\n\t\t163, 200, 15, 168, 21, 17, 59, 43, 102, 128, 78, 108, 4, 92,\n\t\t113, 208, 228, 9, 1, 72, 223, 60, 174, 244, 230, 40, 237,\n\t\t213, 207, 212, 196, 196, 105, 227, 113, 70, 203, 198, 0, 106,\n\t\t103, 200, 246, 49, 217, 174, 4, 94, 137, 189, 242, 217, 121,\n\t\t195, 231, 221, 11, 222, 138, 161, 109, 65, 91, 73, 11, 1,\n\t\t252, 169, 224, 113, 205, 73, 88, 172, 202, 125, 207, 186,\n\t\t78, 207, 82, 75, 169, 37, 204, 69, 95, 214, 213, 220, 139,\n\t\t210, 88, 3, 69, 208, 38, 41, 10, 20, 170, 229, 222, 197, 62,\n\t\t184, 121, 87, 104, 224, 26, 103, 200, 66, 44, 34, 248, 156,\n\t\t166, 253, 157, 145, 144, 98, 230, 14, 147, 5, 181, 18, 147,\n\t\t216, 46, 100, 232, 127, 122, 202, 173, 24, 184, 97, 220, 78,\n\t\t12, 52, 174, 24, 138, 178, 91, 253, 204, 140, 94, 153, 163,\n\t\t98, 145, 21, 28, 182, 189, 132, 45, 220, 105, 142, 250, 19,\n\t\t157, 226, 56, 155, 135, 176, 104, 194, 82, 56, 248, 221, 141,\n\t\t15, 211, 44, 64, 173, 56, 48, 39, 163, 18, 56, 215, 45, 25,\n\t\t54, 182, 197, 8, 242, 2, 78, 216, 251, 146, 77, 65, 219, 252,\n\t\t22, 223, 38, 35, 79, 46, 79, 130, 130, 101, 96, 223, 3, 112,\n\t\t89, 208, 114, 76, 20, 187, 152, 235, 86, 246, 152, 208, 183,\n\t\t243, 35, 69, 141, 142, 109, 56, 50, 180, 50, 59, 161, 81,\n\t\t211, 120, 136, 151, 92, 25, 138, 74, 20, 154, 235, 55, 142,\n\t\t198, 153, 150, 240, 13, 42, 16, 237, 12, 159, 184, 135, 168,\n\t\t34, 43, 2, 159, 137, 229, 219, 151, 249, 63, 111, 127, 236,\n\t\t191, 190, 253, 243, 3, 241, 225, 207, 217, 224, 132, 183,\n\t\t28, 234, 45, 231, 126, 223, 51, 41, 211, 244, 41, 179, 18,\n\t\t140, 229, 68, 18, 249, 102, 252, 70, 39, 172, 20, 11, 22,\n\t\t180, 100, 145, 117, 162, 181, 62, 44, 251, 96, 213, 63, 99,\n\t\t253, 157, 176, 87, 80, 249, 113, 141, 105, 56, 73, 134, 27,\n\t\t7, 32, 115, 57, 214, 234, 182, 39, 160, 219, 45, 196, 61,\n\t\t207, 112, 79, 182, 132, 7, 34, 233, 171, 55, 45, 135, 157,\n\t\t227, 6, 20, 107, 199, 82, 0, 3, 198, 218, 44, 24, 124, 250,\n\t\t193, 109, 79, 82, 126, 52, 67, 22, 42, 28, 107, 203, 8, 172,\n\t\t183, 36, 254, 188, 59, 109, 99, 159, 7, 67, 254, 249, 246,\n\t\t235, 124, 251, 245, 207, 253, 159, 111, 95, 127, 250, 237,\n\t\t195, 88, 148, 239, 199, 247, 54, 211, 198, 53, 135, 113, 25,\n\t\t198, 118, 152, 2, 180, 142, 104, 27, 154, 237, 75, 166, 43,\n\t\t168, 117, 33, 209, 155, 208, 89, 24, 166, 152, 61, 136, 121,\n\t\t75, 36, 166, 166, 33, 26, 165, 140, 124, 220, 166, 150, 5,\n\t\t144, 32, 245, 122, 38, 205, 224, 246, 91, 1, 240, 11, 200,\n\t\t234, 173, 0, 52, 73, 126, 19, 216, 102, 182, 61, 154, 57,\n\t\t181, 16, 114, 108, 92, 72, 59, 160, 79, 22, 19, 8, 115, 237,\n\t\t49, 114, 103, 29, 226, 100, 29, 122, 154, 215, 28, 89, 170,\n\t\t131, 108, 248, 230, 198, 100, 172, 141, 80, 171, 147, 221,\n\t\t92, 34, 126, 229, 146, 254, 136, 157, 229, 163, 192, 119,\n\t\t14, 75, 15, 234, 10, 13, 144, 37, 85, 136, 195, 104, 24, 100,\n\t\t73, 197, 74, 60, 57, 127, 140, 37, 66, 192, 34, 39, 38, 166,\n\t\t237, 13, 161, 54, 215, 88, 102, 175, 43, 134, 200, 154, 158,\n\t\t207, 247, 21, 130, 86, 32, 49, 118, 249, 195, 255, 242, 212,\n\t\t20, 48, 201, 42, 41, 17, 226, 59, 230, 168, 61, 145, 16, 113,\n\t\t14, 115, 5, 156, 120, 133, 147, 95, 91, 172, 190, 18, 40,\n\t\t196, 74, 101, 70, 85, 186, 49, 0, 221, 98, 150, 14, 8, 194,\n\t\t238, 46, 87, 159, 206, 220, 255, 243, 127, 62, 76, 215, 106,\n\t\t156, 169, 36, 242, 10, 123, 126, 74, 201, 77, 166, 89, 228,\n\t\t24, 1, 151, 6, 135, 222, 102, 13, 5, 42, 209, 181, 28, 226,\n\t\t135, 2, 85, 161, 83, 206, 77, 24, 188, 83, 105, 108, 8, 198,\n\t\t220, 120, 55, 113, 190, 96, 26, 180, 94, 103, 168, 174, 231,\n\t\t192, 135, 224, 97, 112, 252, 69, 118, 61, 71, 81, 198, 66,\n\t\t101, 216, 136, 238, 83, 99, 177, 158, 163, 31, 115, 111, 46,\n\t\t133, 154, 149, 144, 70, 170, 146, 13, 207, 124, 57, 174, 107,\n\t\t28, 90, 25, 174, 166, 196, 40, 208, 169, 5, 182, 226, 179,\n\t\t4, 210, 237, 201, 245, 156, 26, 251, 149, 162, 75, 65, 140,\n\t\t127, 95, 170, 253, 140, 244, 19, 254, 213, 220, 135, 243,\n\t\t28, 15, 70, 186, 22, 135, 47, 140, 32, 27, 88, 16, 202, 175,\n\t\t214, 19, 239, 37, 57, 20, 126, 194, 8, 131, 167, 83, 97, 191,\n\t\t0, 191, 109, 231, 24, 20, 14, 44, 180, 2, 126, 123, 182, 55,\n\t\t4, 123, 58, 37, 97, 51, 8, 41, 105, 31, 115, 88, 14, 250,\n\t\t116, 47, 46, 113, 100, 155, 119, 181, 136, 203, 33, 68, 151,\n\t\t99, 226, 182, 212, 156, 203, 54, 92, 202, 181, 42, 44, 58,\n\t\t103, 230, 121, 23, 107, 104, 52, 215, 57, 114, 44, 6, 14,\n\t\t191, 218, 170, 119, 185, 117, 118, 93, 6, 250, 33, 251, 231,\n\t\t27, 243, 42, 249, 66, 157, 16, 104, 72, 72, 83, 41, 46, 230,\n\t\t44, 24, 152, 131, 166, 94, 165, 59, 70, 185, 174, 113, 114,\n\t\t20, 22, 13, 140, 119, 180, 9, 20, 14, 238, 172, 201, 133,\n\t\t66, 154, 47, 141, 124, 236, 250, 35, 86, 209, 233, 87, 137,\n\t\t116, 193, 16, 186, 226, 252, 198, 216, 88, 221, 13, 28, 222,\n\t\t26, 93, 47, 100, 120, 105, 195, 228, 180, 161, 49, 234, 107,\n\t\t171, 164, 78, 55, 47, 161, 58, 164, 129, 132, 34, 88, 224,\n\t\t190, 196, 198, 47, 79, 211, 76, 95, 254, 243, 88, 145, 127,\n\t\t190, 125, 253, 223, 175, 31, 194, 216, 127, 110, 223, 143,\n\t\t208, 77, 140, 234, 21, 59, 3, 87, 143, 133, 2, 25, 106, 113,\n\t\t180, 229, 0, 106, 150, 174, 105, 169, 151, 172, 122, 146,\n\t\t108, 183, 150, 113, 168, 107, 189, 162, 32, 123, 245, 85,\n\t\t90, 137, 178, 9, 171, 235, 103, 193, 48, 217, 1, 233, 41,\n\t\t253, 66, 119, 60, 111, 232, 64, 139, 148, 161, 170, 194, 45,\n\t\t219, 198, 177, 215, 110, 48, 143, 7, 84, 59, 229, 174, 146,\n\t\t200, 92, 193, 156, 194, 41, 33, 128, 141, 27, 14, 97, 81,\n\t\t16, 82, 224, 252, 137, 161, 113, 22, 140, 62, 37, 189, 16,\n\t\t70, 38, 217, 72, 159, 231, 208, 61, 199, 51, 188, 68, 91,\n\t\t16, 75, 129, 57, 197, 88, 78, 182, 197, 199, 177, 222, 82,\n\t\t187, 118, 185, 1, 84, 111, 215, 2, 82, 21, 189, 107, 74, 181,\n\t\t98, 188, 222, 126, 51, 64, 118, 59, 133, 142, 230, 131, 204,\n\t\t234, 47, 135, 59, 51, 104, 214, 137, 14, 206, 169, 158, 216,\n\t\t42, 2, 15, 131, 239, 113, 106, 132, 234, 90, 139, 89, 191,\n\t\t197, 50, 93, 53, 52, 154, 101, 85, 77, 236, 38, 17, 4, 159,\n\t\t216, 179, 107, 51, 24, 190, 9, 156, 209, 64, 223, 183, 99,\n\t\t133, 111, 61, 65, 119, 169, 211, 35, 80, 87, 222, 77, 81,\n\t\t187, 78, 175, 109, 160, 254, 175, 29, 113, 238, 135, 118,\n\t\t126, 243, 15, 93, 241, 184, 150, 154, 182, 16, 187, 3, 152,\n\t\t169, 214, 31, 27, 176, 174, 215, 76, 19, 188, 159, 195, 110,\n\t\t154, 149, 25, 141, 236, 31, 217, 168, 228, 238, 115, 217,\n\t\t216, 168, 154, 86, 155, 117, 250, 26, 54, 187, 150, 92, 120,\n\t\t213, 233, 148, 146, 85, 54, 6, 71, 184, 201, 214, 169, 5,\n\t\t33, 7, 182, 33, 108, 250, 226, 48, 150, 202, 105, 143, 60,\n\t\t215, 243, 97, 118, 33, 151, 197, 42, 134, 43, 82, 46, 181,\n\t\t146, 208, 137, 142, 141, 212, 196, 48, 49, 36, 222, 198, 226,\n\t\t117, 108, 20, 186, 139, 221, 96, 58, 2, 248, 16, 94, 70, 2,\n\t\t5, 244, 118, 150, 19, 104, 150, 215, 26, 65, 43, 209, 250,\n\t\t52, 24, 232, 42, 252, 208, 32, 195, 206, 149, 43, 243, 18,\n\t\t115, 228, 33, 90, 175, 83, 187, 156, 219, 45, 111, 253, 173,\n\t\t118, 91, 234, 166, 181, 27, 117, 101, 40, 81, 245, 12, 14,\n\t\t125, 110, 182, 170, 47, 120, 205, 167, 118, 175, 90, 104,\n\t\t183, 213, 174, 63, 68, 135, 57, 190, 254, 252, 246, 126, 251,\n\t\t198, 97, 204, 219, 71, 41, 110, 33, 127, 161, 147, 246, 22,\n\t\t71, 118, 105, 38, 146, 155, 213, 248, 191, 129, 207, 135,\n\t\t130, 162, 231, 182, 254, 196, 2, 188, 8, 76, 113, 222, 122,\n\t\t174, 46, 199, 194, 40, 137, 117, 125, 171, 95, 50, 220, 251,\n\t\t134, 155, 232, 3, 182, 83, 37, 177, 48, 83, 226, 76, 81, 109,\n\t\t36, 20, 242, 10, 148, 225, 239, 181, 244, 242, 218, 84, 17,\n\t\t20, 223, 109, 42, 233, 42, 156, 255, 9, 28, 234, 186, 62,\n\t\t191, 54, 24, 133, 120, 240, 249, 250, 113, 205, 210, 171,\n\t\t158, 26, 108, 192, 108, 28, 131, 6, 239, 20, 115, 131, 200,\n\t\t198, 18, 128, 55, 101, 251, 89, 52, 70, 46, 227, 53, 176,\n\t\t115, 59, 207, 155, 69, 139, 151, 89, 76, 21, 30, 129, 246,\n\t\t147, 144, 152, 201, 47, 146, 22, 76, 87, 89, 34, 39, 73, 184,\n\t\t157, 163, 203, 213, 32, 45, 144, 92, 86, 34, 224, 131, 192,\n\t\t216, 92, 27, 16, 128, 23, 226, 242, 46, 34, 151, 159, 36,\n\t\t224, 147, 149, 59, 64, 159, 119, 42, 146, 44, 211, 105, 41,\n\t\t184, 11, 241, 105, 120, 209, 254, 171, 145, 51, 240, 232,\n\t\t6, 78, 94, 33, 237, 180, 40, 22, 180, 225, 223, 247, 190,\n\t\t45, 222, 50, 238, 138, 22, 39, 194, 174, 54, 243, 209, 227,\n\t\t12, 202, 56, 41, 42, 160, 181, 57, 82, 79, 143, 133, 12, 233,\n\t\t206, 50, 87, 213, 8, 229, 191, 247, 48, 58, 75, 78, 4, 60,\n\t\t70, 53, 179, 141, 124, 199, 62, 222, 82, 25, 12, 217, 31,\n\t\t11, 212, 143, 92, 215, 73, 31, 125, 214, 154, 247, 157, 239,\n\t\t74, 2, 168, 145, 229, 223, 201, 214, 55, 215, 192, 93, 123,\n\t\t228, 34, 52, 8, 48, 251, 165, 115, 140, 49, 15, 88, 201, 90,\n\t\t112, 219, 19, 189, 219, 220, 23, 249, 1, 85, 81, 143, 0, 146,\n\t\t30, 173, 196, 232, 165, 3, 233, 108, 211, 104, 69, 146, 54,\n\t\t157, 172, 134, 198, 59, 164, 158, 61, 201, 164, 234, 19, 135,\n\t\t47, 11, 208, 40, 26, 148, 132, 157, 60, 107, 39, 47, 36, 23,\n\t\t149, 242, 222, 194, 138, 168, 27, 13, 19, 205, 43, 19, 167,\n\t\t14, 159, 30, 112, 7, 15, 108, 95, 38, 230, 228, 9, 32, 112,\n\t\t212, 28, 20, 42, 63, 86, 7, 193, 192, 163, 144, 180, 90, 101,\n\t\t78, 1, 67, 254, 83, 119, 197, 63, 191, 254, 57, 111, 31, 164,\n\t\t101, 55, 195, 15, 236, 228, 161, 222, 210, 104, 110, 220,\n\t\t247, 216, 178, 139, 199, 30, 2, 7, 29, 181, 219, 222, 219,\n\t\t177, 23, 35, 69, 1, 48, 185, 226, 93, 223, 173, 32, 248, 118,\n\t\t79, 33, 211, 200, 243, 157, 152, 73, 107, 220, 99, 200, 183,\n\t\t61, 197, 112, 223, 25, 160, 237, 54, 164, 115, 239, 184, 211,\n\t\t129, 91, 227, 70, 193, 55, 22, 135, 91, 28, 227, 206, 249,\n\t\t38, 131, 15, 141, 60, 131, 140, 242, 165, 94, 61, 174, 49,\n\t\t230, 191, 80, 237, 179, 14, 250, 215, 219, 241, 129, 28, 255,\n\t\t109, 124, 223, 141, 99, 135, 186, 190, 185, 218, 143, 49,\n\t\t92, 13, 76, 61, 72, 34, 100, 100, 163, 12, 216, 129, 159,\n\t\t16, 204, 145, 217, 92, 9, 190, 41, 67, 70, 142, 174, 133,\n\t\t131, 58, 205, 21, 129, 234, 237, 193, 51, 190, 81, 145, 120,\n\t\t120, 239, 82, 27, 189, 203, 113, 136, 119, 181, 55, 129, 45,\n\t\t145, 28, 46, 41, 16, 236, 105, 50, 145, 132, 185, 63, 7, 218,\n\t\t224, 125, 239, 189, 241, 210, 228, 188, 177, 232, 57, 105,\n\t\t77, 24, 100, 57, 187, 175, 186, 208, 37, 1, 192, 197, 94,\n\t\t130, 100, 114, 151, 117, 25, 163, 203, 45, 50, 114, 68, 104,\n\t\t220, 174, 45, 115, 134, 24, 31, 72, 140, 90, 132, 83, 186,\n\t\t151, 184, 213, 232, 122, 174, 109, 70, 78, 209, 201, 91, 119,\n\t\t165, 246, 36, 7, 135, 181, 102, 14, 185, 225, 164, 182, 32,\n\t\t41, 102, 122, 61, 169, 23, 187, 32, 61, 164, 222, 107, 227,\n\t\t51, 220, 196, 109, 33, 171, 50, 50, 224, 10, 231, 177, 61,\n\t\t174, 230, 93, 74, 146, 215, 68, 86, 113, 238, 37, 149, 45,\n\t\t185, 86, 148, 168, 125, 196, 214, 146, 160, 41, 75, 92, 150,\n\t\t22, 116, 215, 83, 25, 140, 129, 209, 35, 137, 75, 30, 47,\n\t\t206, 228, 229, 44, 165, 178, 114, 201, 98, 73, 227, 114, 208,\n\t\t236, 15, 155, 162, 12, 78, 166, 210, 145, 243, 105, 233, 7,\n\t\t239, 138, 95, 188, 125, 105, 72, 58, 4, 184, 153, 79, 80,\n\t\t20, 129, 228, 18, 67, 151, 228, 16, 3, 179, 159, 68, 167,\n\t\t169, 202, 222, 85, 206, 166, 136, 209, 41, 16, 91, 84, 75,\n\t\t87, 75, 248, 240, 184, 133, 168, 72, 94, 109, 212, 206, 9,\n\t\t81, 185, 242, 13, 146, 235, 37, 22, 14, 63, 140, 61, 68, 50,\n\t\t10, 19, 231, 60, 110, 217, 121, 77, 4, 29, 146, 207, 22, 186,\n\t\t203, 177, 53, 206, 2, 231, 111, 82, 116, 193, 15, 78, 212,\n\t\t141, 46, 178, 173, 151, 50, 155, 131, 134, 237, 73, 150, 58,\n\t\t155, 171, 252, 142, 153, 222, 64, 142, 107, 248, 213, 83,\n\t\t226, 68, 180, 131, 172, 244, 44, 94, 247, 88, 70, 159, 221,\n\t\t213, 225, 115, 226, 189, 166, 143, 202, 199, 84, 45, 107,\n\t\t192, 116, 173, 109, 93, 199, 224, 122, 212, 64, 16, 71, 237,\n\t\t231, 144, 138, 154, 120, 30, 52, 23, 170, 164, 101, 187, 80,\n\t\t56, 153, 88, 115, 173, 217, 231, 203, 30, 35, 250, 125, 27,\n\t\t146, 4, 227, 83, 20, 96, 230, 80, 187, 192, 33, 52, 217, 109,\n\t\t107, 96, 160, 140, 228, 138, 196, 220, 83, 171, 100, 162,\n\t\t121, 39, 158, 148, 226, 34, 187, 95, 72, 61, 238, 17, 215,\n\t\t100, 158, 142, 209, 124, 211, 227, 216, 58, 42, 103, 148,\n\t\t250, 174, 234, 54, 103, 47, 122, 215, 82, 202, 76, 41, 225,\n\t\t74, 147, 20, 222, 78, 82, 158, 19, 81, 247, 232, 114, 168,\n\t\t130, 252, 151, 106, 17, 158, 201, 16, 219, 186, 30, 156, 75,\n\t\t20, 68, 53, 206, 162, 69, 144, 242, 86, 138, 42, 254, 156,\n\t\t187, 19, 168, 203, 171, 204, 15, 95, 115, 57, 196, 155, 152,\n\t\t229, 228, 201, 179, 9, 33, 41, 17, 118, 186, 140, 248, 13,\n\t\t218, 121, 56, 227, 30, 234, 88, 202, 36, 112, 42, 131, 148,\n\t\t143, 48, 198, 164, 197, 179, 145, 64, 225, 117, 26, 93, 76,\n\t\t133, 217, 130, 125, 45, 28, 64, 52, 82, 47, 184, 158, 89,\n\t\t115, 69, 25, 140, 52, 143, 36, 249, 141, 169, 123, 142, 207,\n\t\t243, 53, 8, 84, 82, 173, 114, 234, 23, 170, 174, 137, 84,\n\t\t3, 71, 164, 9, 73, 180, 239, 149, 1, 101, 120, 62, 237, 117,\n\t\t240, 218, 122, 92, 107, 148, 9, 151, 73, 218, 196, 203, 140,\n\t\t195, 229, 58, 56, 195, 205, 199, 145, 54, 246, 217, 39, 118,\n\t\t78, 134, 212, 182, 192, 137, 110, 91, 2, 45, 151, 43, 62,\n\t\t13, 62, 233, 247, 57, 248, 80, 234, 22, 92, 226, 220, 90,\n\t\t239, 72, 104, 5, 78, 13, 238, 122, 96, 166, 37, 147, 36, 84,\n\t\t200, 28, 169, 21, 53, 209, 51, 120, 23, 74, 141, 171, 128,\n\t\t62, 84, 129, 32, 240, 206, 83, 71, 73, 158, 141, 247, 126,\n\t\t180, 90, 68, 16, 135, 204, 105, 134, 175, 197, 145, 26, 19,\n\t\t239, 123, 244, 180, 192, 228, 224, 241, 20, 88, 169, 185,\n\t\t156, 224, 9, 207, 145, 39, 172, 49, 170, 28, 28, 129, 28,\n\t\t162, 144, 89, 208, 220, 119, 149, 101, 118, 116, 154, 104,\n\t\t157, 156, 207, 101, 108, 93, 186, 8, 151, 252, 243, 144, 25,\n\t\t134, 96, 36, 95, 171, 145, 135, 54, 23, 138, 80, 83, 143,\n\t\t92, 121, 87, 40, 227, 7, 193, 0, 191, 127, 249, 215, 55, 248,\n\t\t111, 223, 62, 130, 158, 218, 238, 168, 64, 156, 180, 28, 149,\n\t\t175, 61, 128, 151, 242, 4, 24, 203, 193, 180, 8, 255, 10,\n\t\t233, 140, 105, 186, 14, 215, 20, 127, 139, 229, 73, 185, 225,\n\t\t32, 64, 114, 112, 97, 123, 42, 56, 114, 53, 99, 88, 29, 104,\n\t\t26, 116, 113, 168, 171, 107, 75, 45, 184, 49, 3, 155, 191,\n\t\t208, 214, 116, 153, 40, 21, 64, 244, 248, 56, 217, 57, 172,\n\t\t238, 129, 224, 195, 166, 10, 119, 212, 209, 17, 199, 75, 61,\n\t\t1, 218, 242, 196, 50, 148, 174, 198, 4, 185, 89, 96, 172,\n\t\t144, 203, 43, 49, 230, 98, 0, 48, 128, 210, 222, 37, 32, 144,\n\t\t35, 7, 119, 213, 137, 230, 158, 211, 107, 64, 7, 173, 146,\n\t\t178, 53, 142, 139, 127, 241, 210, 164, 194, 204, 28, 163,\n\t\t78, 227, 156, 197, 73, 31, 142, 116, 216, 76, 100, 237, 85,\n\t\t177, 194, 225, 79, 17, 62, 246, 109, 239, 60, 72, 13, 145,\n\t\t146, 188, 180, 188, 198, 52, 13, 187, 230, 104, 63, 13, 54,\n\t\t146, 206, 80, 11, 106, 121, 153, 52, 96, 67, 137, 71, 246,\n\t\t97, 163, 13, 194, 146, 142, 184, 254, 128, 104, 204, 33, 39,\n\t\t67, 211, 2, 154, 79, 128, 120, 58, 9, 12, 118, 218, 160, 108,\n\t\t164, 228, 166, 44, 250, 128, 92, 22, 106, 95, 141, 28, 51,\n\t\t155, 66, 28, 12, 98, 250, 176, 199, 157, 67, 131, 213, 81,\n\t\t98, 233, 45, 85, 64, 178, 96, 11, 34, 221, 7, 20, 162, 80,\n\t\t227, 192, 222, 34, 215, 179, 48, 134, 118, 213, 228, 33, 184,\n\t\t55, 34, 115, 40, 6, 207, 90, 192, 212, 87, 15, 122, 72, 135,\n\t\t19, 74, 61, 220, 235, 75, 253, 103, 7, 12, 103, 12, 168, 149,\n\t\t0, 7, 178, 244, 71, 2, 201, 238, 167, 145, 59, 191, 253, 246,\n\t\t247, 227, 109, 255, 231, 151, 227, 120, 251, 16, 195, 243,\n\t\t246, 102, 49, 60, 165, 186, 190, 37, 154, 40, 51, 41, 123,\n\t\t128, 157, 174, 90, 64, 110, 8, 137, 231, 126, 183, 92, 151,\n\t\t26, 133, 142, 89, 5, 216, 58, 45, 215, 15, 85, 80, 200, 17,\n\t\t66, 49, 144, 67, 131, 216, 38, 99, 148, 143, 85, 79, 42, 19,\n\t\t83, 209, 5, 134, 192, 169, 114, 38, 47, 14, 67, 169, 216,\n\t\t16, 163, 42, 242, 254, 113, 13, 126, 240, 73, 87, 159, 236,\n\t\t188, 3, 0, 40, 3, 59, 149, 203, 52, 55, 165, 209, 54, 46,\n\t\t120, 34, 166, 212, 22, 88, 199, 145, 56, 158, 204, 243, 244,\n\t\t137, 126, 227, 229, 37, 231, 153, 12, 8, 0, 99, 43, 244, 198,\n\t\t160, 107, 219, 162, 205, 55, 150, 242, 130, 207, 55, 69, 83,\n\t\t126, 92, 3, 175, 197, 148, 234, 141, 196, 91, 99, 78, 118,\n\t\t157, 134, 137, 189, 231, 28, 107, 236, 183, 144, 147, 227,\n\t\t28, 126, 50, 152, 104, 109, 76, 48, 226, 4, 201, 146, 169,\n\t\t112, 43, 87, 22, 112, 221, 197, 45, 213, 254, 184, 102, 223,\n\t\t221, 216, 178, 23, 60, 165, 161, 17, 78, 9, 212, 38, 33, 141,\n\t\t117, 17, 73, 225, 162, 13, 71, 94, 78, 37, 141, 132, 64, 153,\n\t\t20, 33, 61, 26, 104, 240, 35, 170, 73, 34, 110, 62, 78, 245,\n\t\t225, 216, 86, 62, 91, 110, 222, 145, 104, 210, 163, 138, 34,\n\t\t71, 21, 186, 149, 9, 83, 167, 140, 105, 230, 152, 71, 173,\n\t\t165, 70, 51, 143, 181, 14, 40, 224, 10, 229, 250, 214, 117,\n\t\t138, 112, 98, 127, 66, 8, 170, 246, 190, 69, 56, 133, 31,\n\t\t68, 70, 204, 185, 223, 191, 190, 127, 32, 89, 254, 219, 199,\n\t\t20, 96, 59, 213, 201, 141, 153, 125, 67, 101, 144, 47, 111,\n\t\t248, 238, 28, 35, 224, 217, 247, 175, 210, 45, 23, 38, 224,\n\t\t98, 75, 64, 95, 24, 25, 161, 161, 74, 212, 180, 254, 157,\n\t\t22, 85, 113, 242, 11, 161, 143, 116, 85, 35, 37, 37, 107,\n\t\t24, 101, 105, 245, 47, 5, 69, 231, 238, 255, 253, 160, 232,\n\t\t220, 253, 229, 187, 81, 209, 180, 197, 73, 194, 115, 63, 170,\n\t\t37, 53, 23, 23, 153, 67, 175, 28, 203, 53, 31, 124, 61, 204,\n\t\t95, 70, 247, 56, 246, 144, 55, 101, 86, 152, 187, 197, 125,\n\t\t171, 209, 3, 7, 8, 232, 69, 145, 41, 6, 30, 131, 219, 174,\n\t\t236, 158, 199, 105, 135, 131, 167, 205, 82, 12, 179, 133,\n\t\t194, 237, 67, 39, 141, 69, 79, 105, 88, 231, 177, 184, 58,\n\t\t83, 185, 101, 134, 238, 141, 153, 79, 225, 67, 117, 245, 114,\n\t\t68, 229, 252, 163, 215, 202, 55, 132, 64, 31, 139, 219, 70,\n\t\t190, 200, 178, 143, 147, 34, 79, 114, 49, 212, 38, 217, 220,\n\t\t22, 67, 170, 175, 161, 14, 170, 20, 144, 57, 136, 24, 196,\n\t\t8, 57, 7, 22, 57, 184, 0, 145, 9, 100, 233, 22, 86, 160, 225,\n\t\t145, 210, 162, 48, 54, 64, 212, 33, 232, 11, 7, 39, 201, 148,\n\t\t25, 209, 57, 160, 238, 156, 188, 83, 186, 113, 174, 248, 42,\n\t\t68, 150, 242, 120, 28, 39, 216, 94, 238, 116, 205, 127, 17,\n\t\t5, 0, 152, 111, 134, 162, 199, 150, 132, 233, 82, 201, 244,\n\t\t170, 105, 225, 128, 254, 228, 199, 180, 116, 128, 138, 32,\n\t\t202, 130, 89, 113, 194, 250, 133, 243, 76, 98, 181, 196, 177,\n\t\t106, 254, 97, 37, 5, 159, 162, 50, 64, 177, 139, 150, 174,\n\t\t169, 26, 211, 42, 192, 249, 195, 90, 107, 1, 137, 88, 193,\n\t\t248, 14, 112, 251, 152, 109, 164, 165, 195, 247, 80, 85, 135,\n\t\t145, 219, 242, 134, 165, 35, 172, 136, 230, 134, 52, 206,\n\t\t171, 96, 193, 112, 203, 146, 157, 80, 6, 118, 240, 106, 193,\n\t\t43, 6, 42, 144, 156, 173, 32, 242, 209, 135, 205, 91, 139,\n\t\t152, 170, 43, 31, 141, 171, 54, 191, 149, 244, 184, 150, 216,\n\t\t101, 234, 30, 123, 130, 28, 150, 169, 171, 98, 253, 249, 212,\n\t\t5, 46, 17, 75, 253, 146, 200, 0, 214, 122, 121, 7, 148, 197,\n\t\t66, 11, 227, 166, 109, 120, 175, 167, 115, 29, 81, 64, 228,\n\t\t109, 84, 133, 189, 25, 113, 163, 54, 153, 99, 240, 113, 127,\n\t\t85, 115, 95, 174, 111, 233, 47, 144, 0, 206, 185, 255, 242,\n\t\t229, 253, 207, 183, 63, 230, 151, 63, 62, 192, 250, 255, 237,\n\t\t67, 234, 247, 73, 80, 119, 82, 66, 211, 58, 147, 49, 122,\n\t\t48, 83, 248, 205, 11, 27, 214, 134, 193, 181, 81, 215, 175,\n\t\t239, 78, 123, 74, 84, 189, 140, 170, 190, 27, 246, 107, 48,\n\t\t125, 237, 252, 253, 172, 214, 239, 97, 117, 77, 60, 215, 196,\n\t\t83, 31, 215, 208, 162, 11, 240, 223, 79, 17, 191, 230, 160,\n\t\t94, 167, 36, 208, 182, 249, 87, 151, 231, 87, 67, 84, 152,\n\t\t189, 218, 75, 117, 90, 185, 222, 38, 2, 184, 127, 87, 67,\n\t\t130, 74, 29, 125, 55, 213, 40, 215, 187, 157, 191, 127, 92,\n\t\t99, 31, 206, 156, 252, 211, 148, 29, 227, 127, 89, 39, 141,\n\t\t82, 116, 3, 193, 238, 52, 104, 101, 68, 255, 234, 26, 208,\n\t\t159, 14, 87, 54, 100, 33, 37, 50, 7, 208, 43, 151, 105, 67,\n\t\t131, 214, 156, 250, 83, 141, 197, 240, 141, 49, 79, 112, 172,\n\t\t173, 49, 127, 174, 189, 87, 221, 45, 252, 234, 53, 235, 24,\n\t\t189, 254, 110, 199, 60, 127, 255, 184, 22, 142, 59, 94, 36,\n\t\t44, 251, 199, 136, 72, 142, 218, 56, 195, 215, 243, 45, 47,\n\t\t243, 37, 40, 242, 92, 251, 9, 237, 94, 1, 59, 191, 93, 247,\n\t\t229, 87, 229, 28, 2, 242, 121, 189, 19, 224, 200, 231, 117,\n\t\t95, 90, 178, 138, 78, 191, 242, 250, 150, 235, 182, 248, 234,\n\t\t242, 141, 90, 167, 39, 52, 116, 214, 211, 221, 94, 186, 206,\n\t\t62, 124, 120, 179, 231, 38, 46, 24, 111, 43, 66, 247, 249,\n\t\t77, 218, 119, 122, 162, 213, 240, 122, 130, 247, 212, 182,\n\t\t115, 211, 214, 93, 62, 180, 240, 187, 191, 185, 204, 239,\n\t\t125, 245, 252, 92, 43, 152, 104, 160, 190, 131, 223, 62, 118,\n\t\t184, 190, 46, 152, 93, 112, 207, 85, 244, 52, 168, 79, 99,\n\t\t106, 241, 186, 166, 126, 86, 196, 242, 174, 177, 165, 249,\n\t\t44, 188, 198, 114, 200, 132, 38, 61, 189, 8, 218, 103, 3,\n\t\t252, 173, 94, 249, 172, 123, 222, 253, 135, 113, 91, 3, 187,\n\t\t88, 107, 94, 151, 141, 218, 240, 90, 114, 195, 145, 218, 125,\n\t\t39, 91, 13, 183, 184, 235, 113, 216, 13, 245, 142, 21, 45,\n\t\t100, 223, 72, 85, 168, 214, 237, 191, 81, 173, 47, 159, 234,\n\t\t214, 223, 85, 173, 107, 222, 98, 100, 37, 114, 219, 155, 38,\n\t\t87, 192, 68, 227, 108, 108, 65, 28, 224, 63, 19, 52, 159,\n\t\t164, 2, 136, 248, 233, 106, 63, 241, 79, 85, 3, 156, 123,\n\t\t211, 67, 39, 196, 52, 83, 129, 168, 8, 45, 8, 9, 107, 226,\n\t\t117, 134, 67, 245, 32, 38, 45, 215, 53, 138, 211, 243, 45,\n\t\t47, 115, 111, 21, 103, 157, 192, 137, 13, 0, 67, 176, 143,\n\t\t65, 82, 224, 105, 151, 32, 237, 164, 187, 58, 27, 13, 94,\n\t\t41, 70, 128, 27, 106, 148, 22, 132, 198, 14, 25, 100, 224,\n\t\t21, 24, 154, 77, 166, 97, 213, 28, 57, 174, 247, 184, 134,\n\t\t92, 86, 124, 237, 137, 111, 12, 249, 172, 240, 17, 45, 54,\n\t\t52, 21, 241, 121, 41, 65, 98, 215, 218, 126, 185, 160, 172,\n\t\t5, 168, 95, 202, 141, 85, 135, 199, 194, 149, 69, 133, 201,\n\t\t28, 113, 201, 180, 132, 182, 116, 101, 220, 209, 24, 243,\n\t\t165, 228, 174, 123, 243, 77, 77, 246, 59, 242, 3, 110, 114,\n\t\t61, 253, 22, 186, 233, 101, 101, 3, 29, 243, 192, 167, 25,\n\t\t68, 231, 231, 253, 85, 3, 255, 144, 178, 104, 5, 90, 247,\n\t\t166, 234, 185, 220, 84, 186, 242, 155, 55, 189, 24, 99, 175,\n\t\t223, 44, 234, 96, 125, 196, 237, 180, 201, 49, 173, 248, 255,\n\t\t199, 149, 207, 226, 183, 82, 111, 123, 19, 139, 225, 14, 253,\n\t\t131, 89, 128, 60, 135, 65, 128, 122, 135, 41, 111, 94, 148,\n\t\t147, 130, 218, 48, 242, 37, 145, 67, 30, 109, 173, 89, 193,\n\t\t16, 24, 110, 211, 193, 12, 120, 218, 114, 53, 94, 42, 95,\n\t\t150, 78, 178, 216, 40, 214, 227, 19, 90, 205, 131, 119, 195,\n\t\t107, 36, 37, 118, 189, 70, 14, 171, 73, 98, 37, 80, 95, 150,\n\t\t197, 32, 111, 93, 142, 2, 16, 157, 249, 173, 152, 182, 36,\n\t\t97, 8, 112, 93, 244, 181, 101, 28, 70, 160, 81, 166, 29, 246,\n\t\t26, 11, 1, 134, 233, 204, 202, 109, 179, 196, 210, 55, 35,\n\t\t18, 253, 250, 203, 117, 40, 170, 20, 70, 181, 113, 221, 226,\n\t\t48, 0, 251, 221, 218, 100, 15, 113, 181, 107, 58, 149, 41,\n\t\t165, 240, 107, 36, 120, 158, 171, 125, 108, 146, 120, 170,\n\t\t162, 77, 78, 46, 109, 89, 8, 212, 148, 165, 126, 69, 19, 179,\n\t\t31, 232, 178, 22, 237, 50, 191, 246, 61, 136, 170, 124, 11,\n\t\t194, 244, 117, 111, 88, 48, 40, 208, 182, 209, 10, 226, 190,\n\t\t191, 239, 86, 162, 173, 189, 220, 53, 249, 233, 166, 5, 119,\n\t\t166, 92, 68, 199, 169, 245, 25, 144, 229, 1, 65, 97, 225,\n\t\t68, 170, 199, 89, 202, 78, 118, 229, 22, 149, 247, 167, 90,\n\t\t199, 104, 152, 134, 253, 72, 221, 203, 209, 156, 227, 234,\n\t\t251, 58, 79, 231, 102, 39, 187, 223, 152, 207, 108, 59, 219,\n\t\t253, 162, 166, 245, 47, 55, 169, 56, 86, 15, 116, 42, 11,\n\t\t96, 147, 87, 80, 108, 193, 254, 105, 3, 13, 72, 7, 89, 36,\n\t\t143, 107, 74, 221, 141, 173, 212, 105, 22, 80, 92, 142, 111,\n\t\t59, 57, 41, 207, 195, 244, 35, 177, 117, 95, 108, 138, 72,\n\t\t46, 145, 100, 18, 117, 63, 168, 92, 85, 107, 241, 113, 77,\n\t\t236, 44, 93, 86, 153, 158, 137, 216, 143, 129, 105, 136, 105,\n\t\t170, 233, 244, 7, 94, 253, 137, 60, 120, 96, 114, 129, 99,\n\t\t55, 191, 22, 236, 65, 18, 62, 212, 171, 27, 141, 175, 26,\n\t\t89, 123, 171, 222, 234, 94, 89, 147, 210, 13, 178, 245, 27,\n\t\t224, 3, 196, 252, 106, 94, 21, 5, 41, 51, 216, 25, 9, 67,\n\t\t244, 147, 201, 66, 68, 49, 75, 88, 173, 142, 73, 183, 19,\n\t\t144, 129, 147, 142, 110, 1, 199, 250, 240, 213, 90, 28, 156,\n\t\t156, 106, 15, 198, 2, 128, 232, 210, 135, 154, 228, 202, 121,\n\t\t232, 88, 99, 43, 91, 198, 230, 22, 221, 11, 232, 198, 199,\n\t\t193, 86, 201, 186, 70, 27, 5, 231, 225, 222, 134, 185, 103,\n\t\t63, 140, 115, 30, 222, 69, 218, 231, 169, 157, 167, 251, 5,\n\t\t131, 226, 132, 231, 26, 6, 106, 84, 108, 188, 226, 86, 242,\n\t\t182, 158, 223, 36, 28, 194, 236, 32, 26, 141, 79, 233, 234,\n\t\t231, 154, 207, 253, 130, 231, 22, 24, 102, 121, 52, 215, 183,\n\t\t144, 235, 170, 99, 58, 34, 10, 52, 43, 220, 72, 144, 110,\n\t\t168, 122, 55, 161, 121, 211, 205, 132, 52, 227, 236, 50, 142,\n\t\t101, 204, 158, 56, 41, 220, 166, 130, 23, 177, 239, 190, 111,\n\t\t207, 44, 181, 189, 193, 22, 120, 53, 242, 190, 109, 35, 157,\n\t\t205, 171, 165, 50, 171, 221, 245, 172, 31, 111, 198, 81, 107,\n\t\t214, 195, 139, 33, 182, 90, 177, 126, 161, 50, 230, 252, 147,\n\t\t23, 147, 176, 157, 222, 228, 108, 18, 74, 249, 197, 126, 145,\n\t\t204, 18, 91, 191, 232, 31, 202, 190, 105, 221, 190, 180, 201,\n\t\t58, 120, 21, 21, 181, 216, 190, 253, 70, 231, 154, 89, 181,\n\t\t163, 31, 244, 108, 123, 126, 218, 60, 183, 63, 158, 186, 223,\n\t\t159, 201, 228, 214, 75, 63, 191, 243, 183, 230, 132, 117,\n\t\t172, 148, 76, 204, 30, 28, 76, 174, 193, 178, 10, 175, 237,\n\t\t125, 177, 72, 159, 231, 193, 251, 211, 204, 58, 77, 172, 151,\n\t\t247, 57, 153, 125, 214, 182, 240, 244, 100, 176, 81, 209,\n\t\t140, 111, 76, 9, 204, 49, 115, 250, 10, 199, 162, 62, 78,\n\t\t174, 92, 14, 11, 108, 148, 3, 51, 21, 47, 208, 133, 111, 24,\n\t\t243, 187, 238, 253, 135, 37, 193, 82, 253, 96, 133, 34, 186,\n\t\t18, 167, 80, 75, 33, 190, 188, 23, 107, 78, 136, 102, 52,\n\t\t53, 229, 240, 222, 171, 157, 229, 75, 26, 157, 89, 79, 137,\n\t\t241, 57, 85, 39, 220, 97, 56, 153, 182, 217, 68, 222, 139,\n\t\t194, 49, 1, 68, 98, 233, 160, 13, 225, 198, 100, 58, 201,\n\t\t153, 118, 98, 163, 126, 41, 3, 101, 147, 244, 70, 88, 78,\n\t\t118, 71, 54, 198, 218, 66, 88, 240, 154, 237, 42, 109, 171,\n\t\t64, 164, 176, 150, 126, 14, 133, 57, 231, 254, 243, 215, 247,\n\t\t249, 219, 253, 237, 143, 15, 78, 209, 248, 9, 107, 64, 100,\n\t\t106, 242, 18, 28, 207, 126, 227, 105, 41, 106, 219, 60, 49,\n\t\t79, 91, 201, 13, 176, 136, 119, 13, 51, 189, 41, 203, 239,\n\t\t68, 36, 4, 211, 109, 107, 48, 138, 202, 117, 92, 107, 88,\n\t\t133, 56, 169, 255, 11, 6, 254, 255, 244, 32, 235, 113, 97,\n\t\t212, 186, 177, 197, 214, 92, 184, 239, 61, 222, 66, 189, 39,\n\t\t125, 51, 77, 179, 58, 44, 105, 22, 95, 168, 62, 197, 103,\n\t\t62, 0, 189, 145, 160, 62, 197, 10, 225, 67, 176, 110, 254,\n\t\t63, 209, 94, 128, 164, 148, 176, 29, 40, 54, 172, 110, 147,\n\t\t150, 139, 83, 64, 76, 140, 116, 159, 28, 59, 53, 144, 155,\n\t\t167, 184, 13, 247, 0, 240, 13, 141, 147, 184, 107, 35, 111,\n\t\t177, 191, 86, 64, 65, 215, 10, 250, 131, 144, 47, 183, 93,\n\t\t111, 247, 184, 166, 194, 103, 224, 173, 49, 36, 74, 57, 82,\n\t\t97, 176, 214, 40, 218, 156, 192, 13, 38, 154, 9, 40, 148,\n\t\t106, 43, 161, 184, 136, 190, 240, 184, 38, 159, 104, 26, 241,\n\t\t136, 100, 83, 118, 179, 129, 201, 64, 79, 177, 18, 133, 168,\n\t\t157, 39, 200, 153, 15, 149, 206, 149, 57, 168, 1, 103, 45,\n\t\t126, 3, 194, 45, 126, 131, 107, 173, 121, 17, 242, 124, 93,\n\t\t129, 47, 117, 246, 83, 229, 34, 113, 191, 37, 51, 175, 86,\n\t\t114, 194, 76, 161, 71, 125, 156, 204, 19, 85, 171, 86, 253,\n\t\t204, 74, 146, 208, 198, 106, 26, 176, 106, 218, 116, 117,\n\t\t170, 33, 58, 88, 24, 243, 67, 22, 11, 35, 142, 137, 130, 109,\n\t\t199, 148, 90, 96, 7, 122, 52, 105, 52, 171, 66, 141, 103,\n\t\t141, 48, 95, 53, 239, 97, 60, 56, 6, 99, 72, 4, 49, 219, 1,\n\t\t43, 7, 72, 163, 116, 16, 51, 35, 168, 117, 94, 145, 206, 140,\n\t\t105, 91, 163, 77, 102, 104, 200, 14, 209, 60, 139, 2, 218,\n\t\t32, 152, 40, 40, 208, 208, 78, 193, 23, 210, 140, 110, 104,\n\t\t149, 130, 198, 38, 90, 152, 172, 248, 117, 212, 148, 204,\n\t\t54, 209, 131, 188, 5, 83, 101, 120, 40, 184, 115, 55, 79,\n\t\t77, 49, 104, 37, 21, 54, 124, 156, 6, 160, 45, 133, 66, 188,\n\t\t112, 31, 123, 181, 230, 68, 72, 231, 129, 211, 56, 85, 111,\n\t\t81, 0, 139, 25, 174, 3, 105, 10, 92, 40, 186, 27, 68, 157,\n\t\t7, 64, 32, 157, 72, 154, 89, 201, 19, 134, 61, 170, 102, 163,\n\t\t121, 55, 180, 224, 113, 45, 10, 235, 28, 70, 153, 0, 90, 227,\n\t\t217, 43, 239, 163, 250, 60, 174, 179, 168, 190, 115, 33, 38,\n\t\t237, 129, 68, 36, 222, 7, 213, 164, 224, 182, 43, 150, 207,\n\t\t133, 133, 132, 94, 60, 174, 129, 236, 126, 122, 226, 189,\n\t\t211, 138, 173, 42, 225, 30, 215, 146, 243, 22, 202, 61, 228,\n\t\t50, 25, 2, 207, 204, 127, 249, 16, 43, 39, 172, 69, 134, 42,\n\t\t205, 129, 67, 46, 253, 45, 251, 48, 13, 119, 37, 20, 132,\n\t\t29, 133, 178, 133, 242, 184, 54, 3, 115, 170, 46, 79, 116,\n\t\t80, 89, 93, 142, 131, 84, 43, 136, 94, 82, 238, 205, 85, 99,\n\t\t59, 168, 226, 167, 173, 122, 77, 32, 71, 140, 64, 254, 124,\n\t\t152, 165, 46, 8, 148, 68, 28, 139, 87, 24, 44, 34, 177, 238,\n\t\t69, 37, 23, 210, 50, 205, 177, 20, 64, 103, 167, 206, 159,\n\t\t211, 29, 120, 178, 254, 104, 179, 253, 242, 203, 219, 255,\n\t\t126, 216, 104, 211, 39, 201, 191, 177, 144, 140, 233, 222,\n\t\t197, 19, 153, 150, 229, 206, 108, 6, 128, 199, 22, 56, 162,\n\t\t29, 120, 226, 177, 250, 160, 227, 21, 22, 41, 123, 16, 231,\n\t\t65, 102, 251, 38, 136, 94, 5, 94, 47, 83, 6, 67, 134, 12,\n\t\t80, 11, 223, 2, 22, 244, 236, 85, 11, 110, 123, 232, 247,\n\t\t125, 93, 136, 90, 114, 175, 98, 157, 29, 9, 185, 201, 166,\n\t\t119, 6, 99, 255, 179, 52, 177, 133, 130, 73, 237, 226, 109,\n\t\t236, 114, 141, 131, 113, 91, 107, 119, 99, 26, 196, 95, 8,\n\t\t91, 176, 247, 81, 79, 200, 60, 49, 25, 130, 38, 213, 208,\n\t\t59, 129, 147, 101, 46, 160, 24, 238, 187, 18, 77, 222, 116,\n\t\t170, 176, 147, 70, 152, 232, 103, 176, 212, 97, 100, 75, 155,\n\t\t132, 178, 2, 172, 107, 191, 82, 170, 247, 132, 0, 0, 11, 174,\n\t\t205, 200, 132, 212, 146, 227, 140, 75, 130, 115, 107, 6, 199,\n\t\t99, 143, 76, 244, 8, 183, 184, 28, 52, 43, 241, 219, 219,\n\t\t174, 184, 120, 199, 250, 185, 118, 238, 173, 86, 87, 14, 197,\n\t\t162, 23, 101, 227, 136, 236, 78, 98, 189, 163, 68, 125, 187,\n\t\t208, 10, 131, 98, 101, 215, 142, 48, 128, 64, 123, 24, 246,\n\t\t131, 10, 172, 219, 158, 101, 74, 223, 57, 228, 225, 150, 42,\n\t\t63, 229, 142, 152, 18, 193, 88, 147, 18, 85, 23, 52, 213,\n\t\t233, 113, 141, 236, 13, 173, 174, 220, 75, 225, 141, 222,\n\t\t226, 187, 154, 10, 151, 216, 58, 155, 203, 141, 148, 92, 132,\n\t\t137, 123, 77, 213, 83, 209, 224, 57, 50, 86, 55, 49, 243,\n\t\t97, 194, 213, 110, 8, 137, 203, 87, 205, 5, 55, 86, 241, 238,\n\t\t112, 202, 221, 52, 34, 132, 26, 213, 56, 109, 62, 187, 120,\n\t\t3, 172, 34, 222, 77, 188, 94, 252, 110, 50, 113, 87, 137,\n\t\t190, 219, 250, 129, 44, 52, 129, 209, 161, 137, 205, 87, 124,\n\t\t1, 236, 29, 57, 233, 9, 35, 186, 186, 252, 218, 183, 229,\n\t\t224, 78, 157, 227, 145, 171, 119, 141, 13, 88, 172, 98, 11,\n\t\t249, 202, 75, 150, 233, 162, 182, 80, 88, 89, 168, 19, 110,\n\t\t164, 167, 229, 92, 176, 150, 121, 130, 156, 39, 152, 110,\n\t\t225, 182, 178, 15, 123, 104, 16, 226, 192, 128, 148, 206,\n\t\t4, 167, 50, 66, 115, 177, 242, 215, 45, 164, 99, 159, 39,\n\t\t112, 209, 9, 252, 225, 254, 152, 156, 105, 88, 188, 144, 172,\n\t\t38, 13, 84, 70, 100, 139, 1, 39, 219, 233, 188, 208, 89, 48,\n\t\t132, 37, 66, 94, 94, 86, 124, 95, 147, 67, 231, 194, 90, 240,\n\t\t107, 114, 232, 130, 183, 201, 113, 7, 8, 205, 90, 240, 188,\n\t\t216, 183, 168, 168, 126, 2, 70, 9, 145, 127, 48, 204, 85,\n\t\t49, 205, 53, 235, 219, 71, 38, 130, 228, 205, 97, 125, 171,\n\t\t174, 213, 197, 53, 14, 217, 194, 40, 80, 151, 227, 228, 86,\n\t\t197, 23, 186, 236, 14, 128, 234, 96, 70, 145, 222, 121, 68,\n\t\t224, 225, 43, 112, 205, 93, 255, 222, 180, 191, 142, 8, 33,\n\t\t159, 105, 49, 203, 29, 114, 163, 175, 43, 35, 19, 234, 221,\n\t\t30, 215, 100, 224, 101, 195, 197, 155, 202, 172, 131, 183,\n\t\t192, 77, 17, 126, 200, 2, 239, 12, 167, 238, 37, 221, 87,\n\t\t113, 242, 74, 134, 66, 39, 183, 224, 24, 79, 13, 72, 190,\n\t\t239, 195, 78, 49, 62, 179, 176, 56, 169, 244, 59, 70, 86,\n\t\t244, 201, 181, 91, 212, 108, 85, 152, 121, 64, 82, 82, 149,\n\t\t81, 6, 253, 181, 91, 161, 228, 218, 130, 49, 106, 117, 4,\n\t\t111, 124, 232, 240, 34, 167, 25, 119, 117, 16, 27, 243, 247,\n\t\t25, 146, 154, 15, 149, 244, 66, 235, 145, 233, 35, 92, 86,\n\t\t244, 124, 97, 112, 6, 118, 104, 83, 197, 143, 47, 181, 254,\n\t\t221, 126, 24, 200, 244, 185, 220, 163, 98, 21, 161, 65, 126,\n\t\t235, 235, 148, 115, 129, 84, 2, 4, 75, 60, 76, 167, 128, 50,\n\t\t209, 249, 78, 75, 78, 54, 94, 150, 250, 119, 85, 119, 102,\n\t\t91, 59, 159, 70, 85, 45, 206, 16, 141, 5, 71, 20, 150, 22,\n\t\t220, 52, 90, 236, 212, 239, 106, 133, 126, 222, 239, 83, 78,\n\t\t45, 159, 143, 248, 139, 69, 13, 162, 187, 47, 212, 223, 188,\n\t\t156, 112, 198, 31, 236, 68, 96, 96, 105, 234, 117, 132, 167,\n\t\t2, 10, 115, 80, 159, 128, 28, 37, 220, 105, 79, 74, 3, 98,\n\t\t88, 164, 220, 180, 211, 30, 211, 179, 171, 153, 0, 170, 67,\n\t\t32, 112, 74, 126, 113, 3, 205, 245, 157, 117, 72, 62, 88,\n\t\t209, 35, 24, 131, 78, 195, 30, 115, 194, 71, 23, 37, 71, 126,\n\t\t112, 67, 48, 28, 75, 111, 30, 206, 188, 61, 209, 187, 163,\n\t\t75, 128, 148, 172, 106, 212, 13, 96, 90, 211, 14, 134, 189,\n\t\t121, 133, 152, 57, 216, 78, 91, 97, 34, 112, 75, 7, 132, 8,\n\t\t222, 94, 58, 119, 49, 143, 24, 241, 110, 84, 232, 95, 115,\n\t\t118, 87, 245, 12, 224, 23, 103, 140, 52, 156, 209, 156, 14,\n\t\t219, 81, 194, 193, 232, 202, 44, 191, 159, 232, 208, 117,\n\t\t168, 192, 49, 139, 96, 200, 61, 249, 137, 168, 191, 42, 103,\n\t\t1, 182, 127, 168, 43, 44, 249, 219, 158, 235, 29, 60, 33,\n\t\t211, 206, 187, 108, 138, 130, 34, 131, 55, 51, 156, 0, 242,\n\t\t75, 43, 70, 0, 38, 247, 58, 243, 130, 73, 154, 226, 169, 27,\n\t\t139, 184, 245, 239, 193, 15, 6, 175, 253, 183, 98, 37, 72,\n\t\t113, 40, 142, 115, 244, 0, 60, 105, 163, 153, 243, 74, 112,\n\t\t223, 11, 20, 238, 114, 47, 19, 190, 16, 245, 253, 129, 238,\n\t\t158, 187, 31, 106, 163, 28, 45, 234, 223, 27, 211, 120, 140,\n\t\t65, 155, 135, 244, 238, 98, 173, 128, 20, 229, 11, 147, 67,\n\t\t77, 181, 94, 45, 184, 35, 14, 116, 238, 134, 143, 175, 122,\n\t\t127, 102, 241, 165, 235, 48, 106, 51, 181, 224, 182, 151,\n\t\t126, 209, 36, 168, 180, 22, 158, 196, 206, 171, 185, 96, 6,\n\t\t132, 208, 113, 200, 92, 213, 245, 161, 214, 164, 119, 39,\n\t\t8, 126, 65, 135, 109, 170, 53, 118, 61, 84, 221, 135, 76,\n\t\t254, 91, 143, 211, 48, 225, 221, 130, 145, 197, 188, 0, 251,\n\t\t133, 78, 131, 185, 104, 73, 178, 45, 100, 83, 130, 164, 25,\n\t\t64, 134, 214, 159, 220, 20, 193, 250, 34, 40, 53, 58, 104,\n\t\t16, 148, 29, 75, 16, 5, 49, 77, 222, 245, 214, 50, 141, 64,\n\t\t182, 64, 1, 160, 46, 42, 20, 140, 5, 152, 123, 90, 43, 240,\n\t\t15, 172, 34, 197, 253, 33, 101, 167, 10, 124, 9, 159, 205,\n\t\t175, 103, 67, 62, 159, 90, 163, 11, 19, 232, 67, 155, 193,\n\t\t157, 90, 88, 175, 85, 190, 204, 179, 74, 135, 9, 199, 91,\n\t\t133, 97, 155, 146, 184, 37, 61, 41, 179, 79, 100, 157, 103,\n\t\t132, 194, 68, 241, 91, 22, 159, 119, 97, 51, 158, 211, 225,\n\t\t179, 228, 81, 152, 187, 7, 170, 229, 10, 133, 63, 157, 89,\n\t\t114, 95, 64, 226, 170, 84, 52, 35, 113, 197, 231, 179, 103,\n\t\t93, 161, 4, 232, 230, 3, 11, 23, 155, 42, 102, 210, 178, 211,\n\t\t227, 201, 108, 39, 1, 123, 50, 112, 84, 5, 189, 220, 18, 237,\n\t\t244, 56, 194, 128, 143, 89, 59, 2, 151, 160, 149, 23, 196,\n\t\t34, 175, 105, 140, 77, 117, 2, 93, 21, 40, 81, 123, 68, 42,\n\t\t115, 139, 66, 176, 35, 98, 156, 229, 234, 245, 45, 197, 101,\n\t\t2, 84, 177, 18, 144, 241, 159, 59, 67, 11, 196, 50, 17, 217,\n\t\t67, 237, 83, 113, 134, 156, 42, 221, 68, 229, 97, 226, 36,\n\t\t56, 181, 12, 170, 255, 106, 89, 210, 115, 91, 53, 74, 54,\n\t\t232, 178, 167, 246, 149, 213, 184, 164, 186, 168, 110, 98,\n\t\t55, 216, 160, 115, 95, 168, 220, 107, 104, 113, 52, 182, 134,\n\t\t214, 78, 174, 112, 82, 14, 76, 1, 4, 104, 227, 122, 95, 8,\n\t\t185, 176, 239, 55, 147, 93, 123, 140, 6, 242, 77, 23, 203,\n\t\t164, 93, 22, 135, 42, 46, 250, 197, 227, 154, 57, 234, 138,\n\t\t19, 27, 217, 48, 43, 98, 149, 93, 158, 204, 50, 221, 11, 26,\n\t\t134, 64, 21, 237, 4, 108, 38, 139, 191, 59, 175, 208, 172,\n\t\t86, 73, 17, 169, 251, 13, 155, 89, 61, 207, 119, 212, 37,\n\t\t227, 140, 109, 129, 150, 216, 193, 18, 95, 14, 197, 130, 13,\n\t\t42, 242, 34, 38, 141, 245, 57, 148, 222, 224, 86, 80, 114,\n\t\t24, 50, 175, 38, 115, 94, 44, 69, 197, 155, 223, 202, 244,\n\t\t8, 219, 230, 52, 70, 85, 211, 49, 78, 186, 32, 86, 180, 237,\n\t\t130, 90, 176, 28, 32, 230, 69, 181, 111, 112, 45, 127, 213,\n\t\t208, 124, 92, 51, 109, 145, 91, 236, 164, 128, 47, 57, 179,\n\t\t112, 81, 30, 215, 52, 146, 171, 76, 142, 51, 110, 42, 170,\n\t\t239, 167, 220, 5, 221, 187, 215, 33, 103, 210, 93, 216, 34,\n\t\t220, 80, 0, 125, 239, 162, 222, 82, 89, 90, 240, 135, 195,\n\t\t185, 110, 92, 72, 90, 112, 83, 45, 225, 224, 201, 94, 56,\n\t\t110, 38, 171, 111, 163, 193, 211, 38, 251, 193, 93, 255, 222,\n\t\t84, 164, 30, 17, 206, 166, 44, 86, 212, 93, 255, 222, 116,\n\t\t24, 200, 58, 98, 231, 167, 24, 116, 176, 144, 74, 128, 146,\n\t\t165, 250, 39, 210, 106, 14, 248, 244, 120, 7, 18, 127, 141,\n\t\t172, 173, 101, 239, 237, 246, 149, 154, 38, 23, 142, 127,\n\t\t132, 170, 151, 210, 201, 210, 78, 91, 202, 226, 158, 23, 168,\n\t\t28, 218, 84, 147, 252, 124, 75, 25, 31, 31, 215, 156, 216,\n\t\t245, 213, 171, 235, 135, 105, 104, 208, 36, 111, 234, 223,\n\t\t121, 92, 83, 202, 58, 82, 253, 166, 153, 24, 102, 255, 221,\n\t\t144, 155, 1, 135, 197, 143, 220, 146, 223, 78, 178, 254, 91,\n\t\t254, 190, 99, 50, 244, 234, 210, 22, 186, 232, 92, 43, 44,\n\t\t235, 132, 97, 94, 84, 60, 132, 83, 32, 12, 11, 145, 21, 15,\n\t\t95, 55, 14, 172, 193, 175, 153, 23, 97, 161, 16, 197, 56,\n\t\t7, 22, 142, 17, 206, 32, 42, 206, 194, 210, 152, 191, 160,\n\t\t179, 39, 137, 15, 102, 131, 109, 149, 193, 96, 118, 69, 99,\n\t\t41, 150, 186, 43, 136, 212, 166, 122, 120, 253, 42, 158, 154,\n\t\t110, 209, 82, 221, 164, 168, 76, 250, 203, 177, 18, 111, 4,\n\t\t170, 10, 107, 21, 10, 139, 182, 94, 254, 128, 233, 71, 228,\n\t\t182, 232, 43, 143, 107, 18, 134, 32, 110, 112, 151, 195, 250,\n\t\t174, 231, 255, 240, 1, 132, 19, 232, 53, 237, 202, 236, 213,\n\t\t231, 30, 13, 253, 216, 79, 128, 82, 7, 32, 244, 190, 219,\n\t\t30, 117, 97, 126, 187, 65, 229, 223, 74, 2, 252, 190, 93,\n\t\t255, 31, 69, 42, 135, 200, 200, 177, 73, 114, 69, 57, 129,\n\t\t168, 66, 221, 88, 217, 90, 145, 158, 237, 197, 60, 33, 149,\n\t\t123, 219, 163, 169, 216, 102, 72, 28, 167, 237, 201, 71, 134,\n\t\t137, 58, 69, 117, 68, 139, 92, 202, 155, 97, 208, 147, 97,\n\t\t107, 184, 248, 5, 253, 50, 204, 230, 151, 185, 118, 240, 80,\n\t\t137, 48, 184, 76, 222, 10, 184, 91, 245, 54, 8, 14, 238, 250,\n\t\t105, 130, 42, 196, 111, 89, 143, 196, 66, 179, 143, 89, 180,\n\t\t164, 199, 53, 10, 173, 5, 25, 78, 36, 61, 206, 81, 192, 89,\n\t\t15, 210, 49, 33, 213, 241, 133, 51, 191, 126, 158, 173, 65,\n\t\t44, 74, 105, 130, 156, 163, 202, 224, 156, 204, 234, 114,\n\t\t186, 204, 22, 94, 186, 51, 119, 75, 48, 26, 66, 93, 131, 134,\n\t\t227, 150, 144, 25, 71, 218, 23, 72, 139, 112, 170, 34, 201,\n\t\t182, 65, 23, 147, 70, 235, 20, 70, 76, 48, 234, 67, 182, 32,\n\t\t121, 140, 120, 78, 169, 81, 16, 94, 70, 64, 122, 243, 52,\n\t\t12, 27, 96, 194, 100, 4, 100, 108, 225, 245, 173, 178, 111,\n\t\t207, 211, 14, 109, 219, 162, 52, 31, 215, 233, 233, 250, 113,\n\t\t141, 37, 9, 7, 237, 81, 181, 187, 128, 66, 224, 29, 50, 9,\n\t\t202, 22, 52, 252, 5, 91, 151, 165, 249, 112, 98, 124, 57,\n\t\t221, 182, 152, 204, 55, 236, 0, 222, 222, 209, 9, 66, 245,\n\t\t112, 232, 90, 74, 131, 100, 249, 150, 154, 236, 242, 77, 26,\n\t\t111, 193, 2, 155, 14, 121, 190, 217, 241, 205, 14, 221, 195,\n\t\t159, 60, 5, 6, 114, 111, 174, 3, 213, 209, 117, 50, 240, 153,\n\t\t15, 176, 172, 98, 88, 81, 44, 28, 135, 178, 71, 12, 141, 133,\n\t\t213, 202, 241, 1, 0, 206, 229, 82, 185, 240, 100, 231, 150,\n\t\t138, 225, 233, 213, 181, 209, 252, 215, 124, 114, 1, 214,\n\t\t129, 233, 69, 43, 150, 41, 47, 255, 217, 227, 154, 67, 252,\n\t\t139, 75, 222, 92, 1, 139, 187, 194, 242, 42, 109, 137, 172,\n\t\t181, 47, 223, 4, 31, 207, 185, 153, 17, 6, 195, 211, 172,\n\t\t227, 227, 68, 166, 132, 224, 86, 150, 141, 190, 148, 8, 14,\n\t\t129, 103, 120, 94, 231, 220, 141, 223, 90, 231, 73, 79, 102,\n\t\t21, 141, 47, 52, 251, 104, 235, 60, 143, 250, 23, 214, 249,\n\t\t16, 183, 19, 214, 121, 193, 34, 255, 108, 125, 107, 79, 96,\n\t\t125, 235, 187, 125, 92, 223, 58, 92, 107, 125, 183, 115, 193,\n\t\t101, 237, 177, 66, 42, 247, 157, 21, 30, 87, 120, 220, 127,\n\t\t184, 204, 201, 136, 248, 191, 190, 204, 75, 38, 35, 187, 49,\n\t\t70, 250, 119, 215, 109, 151, 240, 95, 233, 201, 180, 25, 96,\n\t\t128, 157, 42, 199, 211, 180, 10, 154, 124, 205, 71, 44, 43,\n\t\t110, 79, 215, 157, 30, 159, 200, 35, 236, 89, 133, 84, 50,\n\t\t225, 140, 121, 126, 85, 190, 189, 189, 45, 28, 145, 62, 184,\n\t\t120, 199, 187, 62, 174, 185, 228, 45, 250, 226, 210, 231,\n\t\t234, 143, 76, 247, 178, 172, 116, 174, 240, 162, 128, 133,\n\t\t211, 229, 229, 89, 13, 67, 99, 204, 88, 145, 198, 64, 33,\n\t\t27, 156, 83, 255, 162, 144, 253, 72, 145, 124, 255, 243, 143,\n\t\t175, 191, 127, 0, 70, 253, 219, 7, 74, 130, 83, 126, 237,\n\t\t136, 78, 210, 149, 226, 236, 38, 242, 2, 71, 207, 96, 193,\n\t\t225, 208, 245, 134, 56, 98, 14, 164, 223, 86, 52, 182, 86,\n\t\t68, 43, 161, 100, 53, 106, 125, 118, 117, 194, 11, 101, 210,\n\t\t201, 40, 186, 217, 125, 102, 87, 41, 45, 157, 107, 152, 207,\n\t\t66, 141, 150, 4, 92, 156, 115, 117, 177, 185, 187, 217, 119,\n\t\t56, 224, 78, 220, 163, 234, 8, 104, 10, 54, 160, 66, 169,\n\t\t40, 249, 37, 176, 89, 78, 73, 171, 84, 191, 145, 28, 105,\n\t\t255, 239, 2, 221, 56, 20, 36, 50, 219, 1, 99, 214, 97, 102,\n\t\t193, 5, 154, 0, 13, 141, 130, 226, 85, 241, 20, 198, 52, 181,\n\t\t154, 0, 20, 169, 193, 143, 128, 138, 133, 15, 91, 161, 128,\n\t\t141, 254, 120, 49, 57, 179, 37, 121, 79, 9, 30, 127, 221,\n\t\t89, 78, 148, 189, 154, 68, 149, 236, 184, 162, 76, 99, 234,\n\t\t149, 151, 101, 149, 57, 247, 103, 218, 57, 96, 143, 103, 22,\n\t\t126, 60, 132, 69, 120, 36, 134, 30, 105, 217, 121, 6, 156,\n\t\t162, 198, 7, 3, 42, 105, 219, 157, 3, 206, 203, 168, 143,\n\t\t249, 94, 230, 247, 2, 137, 159, 90, 34, 76, 24, 214, 129,\n\t\t158, 32, 203, 86, 239, 175, 90, 229, 202, 221, 79, 128, 178,\n\t\t209, 2, 227, 162, 179, 201, 147, 97, 58, 107, 127, 224, 58,\n\t\t123, 181, 31, 195, 8, 188, 221, 148, 187, 134, 11, 222, 208,\n\t\t194, 187, 178, 59, 28, 187, 13, 33, 236, 237, 243, 225, 83,\n\t\t72, 18, 213, 25, 23, 82, 168, 16, 179, 39, 197, 169, 226,\n\t\t171, 105, 135, 7, 166, 28, 34, 73, 7, 1, 87, 210, 194, 123,\n\t\t132, 191, 86, 180, 34, 200, 76, 102, 153, 236, 22, 251, 212,\n\t\t54, 61, 93, 184, 23, 207, 233, 50, 143, 107, 172, 180, 126,\n\t\t131, 11, 247, 132, 245, 111, 174, 138, 105, 40, 45, 75, 192,\n\t\t61, 131, 3, 32, 145, 133, 172, 59, 75, 44, 162, 11, 246, 149,\n\t\t85, 118, 198, 7, 154, 131, 183, 84, 92, 185, 43, 221, 252,\n\t\t180, 8, 177, 149, 154, 3, 184, 21, 160, 175, 106, 167, 61,\n\t\t174, 201, 15, 23, 152, 5, 37, 221, 229, 86, 52, 39, 95, 110,\n\t\t77, 151, 143, 139, 214, 141, 45, 58, 238, 145, 206, 103, 246,\n\t\t250, 181, 37, 254, 221, 119, 237, 172, 199, 53, 245, 164,\n\t\t100, 102, 109, 193, 221, 154, 67, 75, 17, 206, 117, 203, 214,\n\t\t139, 90, 84, 161, 101, 6, 38, 233, 133, 36, 177, 133, 210,\n\t\t39, 89, 53, 22, 45, 152, 230, 231, 22, 34, 45, 17, 106, 182,\n\t\t6, 34, 34, 251, 2, 178, 179, 2, 12, 144, 38, 231, 83, 152,\n\t\t223, 161, 22, 215, 37, 230, 179, 185, 114, 242, 187, 101,\n\t\t164, 7, 218, 1, 85, 50, 169, 32, 195, 118, 138, 45, 26, 180,\n\t\t123, 39, 71, 230, 82, 63, 135, 59, 69, 99, 253, 1, 185, 249,\n\t\t42, 88, 192, 90, 70, 58, 135, 244, 172, 106, 180, 49, 218,\n\t\t25, 90, 48, 13, 56, 202, 159, 142, 117, 162, 37, 127, 162,\n\t\t68, 207, 114, 166, 112, 187, 201, 78, 147, 161, 81, 243, 161,\n\t\t139, 193, 78, 9, 30, 82, 59, 145, 130, 129, 122, 79, 227,\n\t\t32, 52, 176, 229, 174, 154, 246, 92, 196, 242, 22, 166, 102,\n\t\t17, 117, 118, 220, 149, 224, 54, 134, 167, 207, 56, 180, 88,\n\t\t232, 108, 235, 167, 10, 161, 69, 162, 252, 86, 199, 15, 192,\n\t\t138, 142, 47, 239, 127, 254, 237, 151, 151, 45, 58, 250, 143,\n\t\t209, 222, 134, 93, 30, 99, 113, 125, 235, 22, 102, 40, 104,\n\t\t223, 170, 69, 6, 140, 30, 252, 115, 90, 50, 65, 124, 199,\n\t\t187, 98, 108, 110, 208, 60, 85, 111, 31, 95, 134, 68, 123,\n\t\t62, 243, 57, 136, 36, 179, 188, 91, 134, 108, 78, 65, 67,\n\t\t134, 226, 12, 161, 57, 70, 104, 162, 149, 198, 48, 95, 178,\n\t\t152, 43, 3, 120, 133, 154, 102, 200, 107, 148, 22, 9, 158,\n\t\t206, 238, 129, 56, 45, 45, 152, 122, 176, 202, 216, 230, 230,\n\t\t174, 231, 12, 77, 78, 121, 76, 182, 191, 171, 32, 75, 152,\n\t\t74, 32, 110, 210, 166, 46, 246, 10, 195, 131, 168, 157, 102,\n\t\t162, 174, 164, 190, 53, 61, 110, 247, 91, 205, 155, 98, 155,\n\t\t108, 29, 103, 97, 158, 79, 107, 113, 61, 203, 192, 158, 50,\n\t\t234, 210, 238, 165, 79, 188, 119, 67, 120, 5, 143, 29, 136,\n\t\t130, 123, 155, 43, 162, 198, 124, 106, 77, 252, 138, 186,\n\t\t226, 181, 79, 181, 224, 50, 113, 76, 195, 251, 36, 156, 139,\n\t\t118, 72, 111, 37, 105, 97, 95, 96, 61, 89, 184, 18, 162, 84,\n\t\t76, 31, 74, 121, 26, 178, 26, 159, 181, 5, 218, 125, 131,\n\t\t5, 28, 22, 70, 252, 131, 98, 101, 252, 10, 72, 14, 223, 187,\n\t\t129, 139, 208, 138, 192, 60, 219, 133, 73, 202, 11, 99, 199,\n\t\t9, 151, 155, 33, 105, 182, 224, 163, 64, 120, 91, 224, 113,\n\t\t199, 9, 101, 2, 197, 129, 172, 32, 218, 2, 56, 160, 2, 5,\n\t\t147, 228, 110, 211, 169, 217, 52, 14, 223, 58, 102, 149, 232,\n\t\t148, 230, 70, 75, 240, 219, 102, 98, 66, 104, 19, 13, 103,\n\t\t57, 184, 50, 179, 221, 180, 233, 240, 165, 124, 250, 248,\n\t\t23, 22, 229, 183, 73, 158, 163, 79, 11, 41, 219, 255, 55,\n\t\t42, 225, 127, 202, 108, 76, 59, 29, 231, 187, 249, 228, 2,\n\t\t189, 167, 156, 2, 216, 203, 97, 27, 105, 234, 206, 47, 30,\n\t\t7, 162, 66, 71, 136, 56, 208, 197, 213, 171, 218, 83, 105,\n\t\t98, 137, 233, 8, 226, 76, 59, 130, 92, 26, 103, 193, 40, 136,\n\t\t43, 132, 60, 114, 184, 160, 72, 64, 203, 203, 172, 248, 56,\n\t\t49, 107, 253, 194, 76, 199, 198, 182, 220, 29, 66, 99, 117,\n\t\t128, 149, 79, 209, 93, 38, 136, 206, 182, 148, 132, 160, 121,\n\t\t72, 248, 188, 76, 219, 154, 240, 121, 154, 26, 233, 249, 88,\n\t\t66, 23, 32, 210, 45, 173, 164, 32, 124, 68, 210, 22, 100,\n\t\t237, 99, 146, 129, 5, 92, 160, 241, 114, 159, 17, 82, 18,\n\t\t237, 133, 134, 7, 101, 212, 174, 177, 155, 136, 217, 161,\n\t\t75, 217, 2, 163, 113, 28, 146, 250, 58, 99, 209, 253, 143,\n\t\t97, 133, 139, 146, 120, 33, 23, 114, 175, 234, 47, 202, 224,\n\t\t56, 140, 126, 171, 226, 32, 106, 56, 179, 8, 14, 203, 201,\n\t\t7, 185, 156, 8, 192, 160, 123, 10, 190, 97, 2, 232, 149, 92,\n\t\t14, 57, 4, 42, 208, 121, 177, 254, 187, 102, 196, 52, 123,\n\t\t63, 41, 152, 57, 96, 130, 213, 229, 216, 146, 88, 137, 231,\n\t\t235, 195, 130, 4, 84, 100, 191, 239, 97, 44, 85, 144, 233,\n\t\t36, 135, 226, 132, 177, 63, 1, 145, 139, 234, 65, 145, 37,\n\t\t29, 215, 231, 162, 222, 72, 158, 184, 18, 24, 5, 192, 69,\n\t\t112, 241, 106, 57, 168, 120, 179, 120, 17, 50, 226, 194, 17,\n\t\t33, 95, 147, 36, 197, 176, 208, 181, 221, 33, 41, 248, 153,\n\t\t238, 21, 218, 79, 195, 102, 168, 20, 124, 42, 41, 190, 254,\n\t\t246, 191, 183, 223, 222, 95, 193, 53, 163, 239, 175, 251,\n\t\t119, 205, 94, 165, 70, 13, 117, 139, 189, 159, 131, 175, 243,\n\t\t138, 149, 140, 28, 93, 166, 147, 72, 231, 142, 37, 42, 103,\n\t\t252, 127, 219, 53, 162, 120, 26, 84, 91, 80, 108, 46, 175,\n\t\t122, 128, 44, 19, 189, 206, 114, 44, 148, 24, 191, 159, 3,\n\t\t83, 250, 250, 103, 178, 135, 94, 25, 103, 130, 99, 4, 119,\n\t\t125, 32, 9, 216, 45, 148, 120, 219, 171, 186, 140, 246, 213,\n\t\t108, 106, 203, 185, 109, 220, 108, 180, 250, 244, 62, 252,\n\t\t223, 5, 49, 208, 115, 71, 147, 131, 186, 219, 48, 101, 100,\n\t\t114, 192, 144, 146, 204, 148, 182, 81, 123, 169, 165, 250,\n\t\t255, 68, 91, 165, 169, 59, 218, 42, 77, 221, 169, 173, 218,\n\t\t84, 50, 217, 61, 179, 196, 178, 195, 70, 167, 222, 130, 62,\n\t\t208, 13, 38, 115, 42, 86, 103, 126, 196, 255, 236, 213, 110,\n\t\t177, 13, 22, 156, 202, 68, 189, 213, 40, 244, 99, 131, 3,\n\t\t104, 88, 9, 230, 40, 29, 222, 70, 131, 230, 240, 70, 239,\n\t\t1, 249, 203, 31, 163, 247, 122, 168, 47, 166, 132, 228, 37,\n\t\t209, 71, 211, 30, 250, 77, 26, 250, 223, 205, 28, 110, 237,\n\t\t68, 91, 247, 26, 183, 97, 39, 115, 140, 31, 35, 105, 131,\n\t\t28, 45, 40, 109, 165, 246, 113, 75, 233, 67, 244, 254, 113,\n\t\t141, 52, 135, 67, 189, 69, 223, 47, 255, 109, 115, 252, 127,\n\t\t62, 169, 62, 93, 154, 95, 126, 253, 251, 219, 113, 124, 253,\n\t\t198, 226, 28, 216, 192, 83, 102, 184, 100, 118, 126, 231,\n\t\t190, 178, 54, 138, 5, 142, 105, 10, 160, 21, 140, 4, 231,\n\t\t202, 30, 130, 176, 182, 144, 30, 171, 158, 40, 47, 8, 201,\n\t\t35, 56, 92, 77, 102, 191, 19, 128, 151, 157, 177, 129, 55,\n\t\t203, 22, 13, 85, 242, 162, 132, 84, 203, 80, 218, 245, 40,\n\t\t201, 232, 128, 84, 165, 111, 225, 101, 249, 0, 2, 166, 47,\n\t\t52, 196, 14, 139, 231, 34, 71, 219, 28, 93, 197, 187, 65,\n\t\t209, 185, 4, 26, 85, 189, 158, 136, 47, 241, 198, 34, 179,\n\t\t71, 134, 102, 204, 88, 238, 186, 127, 46, 136, 70, 157, 160,\n\t\t108, 11, 159, 46, 171, 38, 70, 202, 172, 7, 89, 168, 190,\n\t\t68, 86, 203, 90, 175, 103, 38, 179, 165, 23, 116, 68, 206,\n\t\t219, 176, 156, 150, 22, 93, 153, 66, 205, 137, 48, 60, 206,\n\t\t202, 172, 201, 5, 19, 206, 124, 117, 153, 145, 166, 76, 182,\n\t\t150, 131, 121, 38, 153, 216, 51, 149, 209, 32, 87, 76, 222,\n\t\t7, 241, 120, 101, 107, 69, 161, 17, 8, 143, 107, 162, 13,\n\t\t98, 75, 217, 31, 43, 126, 98, 104, 20, 66, 162, 21, 195, 103,\n\t\t196, 154, 170, 181, 101, 140, 91, 100, 52, 94, 27, 197, 206,\n\t\t128, 235, 136, 12, 149, 134, 133, 122, 66, 157, 171, 64, 159,\n\t\t76, 128, 99, 42, 66, 9, 98, 187, 143, 72, 177, 144, 163, 75,\n\t\t91, 26, 130, 73, 205, 174, 20, 126, 68, 90, 44, 255, 208,\n\t\t236, 104, 46, 245, 105, 188, 218, 233, 89, 29, 83, 35, 55,\n\t\t33, 157, 13, 206, 38, 220, 72, 66, 207, 217, 216, 160, 250,\n\t\t3, 137, 195, 89, 189, 221, 28, 33, 165, 159, 245, 61, 169,\n\t\t117, 36, 18, 242, 220, 23, 83, 120, 180, 152, 193, 181, 48,\n\t\t150, 175, 22, 134, 71, 84, 8, 196, 34, 170, 61, 255, 184,\n\t\t193, 86, 27, 240, 79, 174, 108, 35, 93, 137, 43, 192, 88,\n\t\t166, 157, 6, 146, 179, 10, 170, 161, 29, 13, 146, 151, 57,\n\t\t124, 42, 102, 12, 93, 62, 174, 41, 102, 151, 140, 22, 9, 144,\n\t\t84, 204, 220, 154, 181, 99, 3, 217, 68, 91, 10, 91, 104, 217,\n\t\t145, 81, 151, 17, 15, 203, 224, 183, 27, 72, 130, 118, 201,\n\t\t67, 215, 75, 142, 199, 129, 16, 179, 176, 218, 21, 154, 114,\n\t\t66, 63, 247, 56, 207, 203, 235, 236, 83, 77, 92, 176, 152,\n\t\t71, 229, 136, 210, 2, 67, 240, 241, 203, 9, 104, 156, 108,\n\t\t240, 3, 70, 152, 250, 150, 128, 177, 50, 49, 12, 181, 246,\n\t\t3, 47, 152, 6, 116, 46, 192, 162, 21, 234, 107, 74, 235, 154,\n\t\t199, 150, 41, 162, 201, 244, 18, 1, 81, 249, 85, 228, 198,\n\t\t217, 112, 155, 81, 210, 228, 153, 23, 53, 95, 155, 74, 114,\n\t\t181, 14, 17, 145, 106, 200, 90, 94, 15, 155, 182, 167, 120,\n\t\t1, 197, 108, 177, 119, 154, 182, 61, 26, 137, 50, 0, 121,\n\t\t45, 144, 92, 133, 79, 93, 146, 83, 187, 99, 5, 18, 115, 224,\n\t\t70, 93, 1, 216, 34, 26, 80, 180, 28, 101, 193, 2, 229, 145,\n\t\t98, 200, 60, 39, 244, 216, 168, 225, 202, 58, 244, 221, 244,\n\t\t214, 197, 117, 169, 116, 53, 211, 236, 213, 84, 224, 202,\n\t\t48, 140, 92, 19, 244, 6, 154, 155, 5, 14, 147, 59, 17, 99,\n\t\t130, 235, 126, 178, 188, 116, 149, 106, 242, 121, 179, 72,\n\t\t108, 117, 157, 53, 12, 85, 88, 248, 167, 8, 175, 54, 3, 8,\n\t\t225, 248, 194, 226, 200, 106, 242, 162, 99, 3, 209, 28, 43,\n\t\t43, 29, 228, 98, 226, 54, 181, 130, 9, 162, 2, 191, 117, 224,\n\t\t236, 35, 213, 216, 15, 215, 54, 117, 206, 60, 216, 129, 213,\n\t\t24, 246, 188, 77, 168, 6, 218, 81, 43, 131, 65, 127, 10, 23,\n\t\t35, 178, 26, 103, 85, 15, 11, 166, 228, 41, 162, 89, 84, 3,\n\t\t205, 136, 54, 243, 42, 240, 201, 99, 244, 118, 236, 103, 12,\n\t\t218, 159, 107, 246, 63, 253, 227, 95, 239, 111, 199, 241,\n\t\t229, 231, 87, 122, 245, 232, 127, 254, 255, 153, 43, 46, 111,\n\t\t113, 52, 151, 14, 139, 207, 228, 196, 178, 27, 140, 167, 199,\n\t\t53, 231, 254, 151, 130, 121, 254, 83, 103, 192, 119, 99, 121,\n\t\t82, 143, 2, 167, 199, 251, 214, 62, 228, 36, 189, 83, 227,\n\t\t104, 232, 178, 22, 237, 82, 54, 68, 179, 58, 2, 239, 125,\n\t\t67, 148, 241, 3, 116, 160, 187, 22, 112, 53, 218, 148, 62,\n\t\t37, 213, 157, 191, 253, 250, 235, 219, 252, 243, 231, 183,\n\t\t251, 219, 241, 219, 43, 147, 86, 244, 111, 159, 0, 89, 48,\n\t\t146, 124, 244, 109, 86, 87, 71, 141, 28, 66, 157, 82, 239,\n\t\t141, 93, 122, 157, 67, 241, 229, 32, 188, 245, 46, 161, 204,\n\t\t45, 137, 150, 201, 1, 101, 197, 165, 210, 69, 200, 214, 170,\n\t\t230, 127, 138, 49, 9, 20, 20, 105, 113, 108, 254, 12, 170,\n\t\t215, 24, 242, 50, 85, 198, 248, 15, 74, 102, 69, 155, 146,\n\t\t240, 245, 36, 23, 67, 234, 237, 84, 146, 93, 143, 33, 14,\n\t\t121, 88, 76, 33, 243, 3, 61, 179, 86, 237, 12, 201, 29, 21,\n\t\t25, 163, 48, 225, 53, 181, 45, 228, 131, 214, 51, 51, 6, 49,\n\t\t167, 71, 237, 149, 33, 100, 82, 97, 110, 100, 188, 30, 61,\n\t\t37, 182, 196, 48, 129, 181, 181, 150, 78, 37, 89, 56, 184,\n\t\t166, 151, 3, 154, 196, 108, 70, 174, 142, 22, 155, 164, 250,\n\t\t48, 77, 20, 127, 232, 213, 74, 38, 126, 183, 157, 126, 23,\n\t\t28, 115, 134, 145, 14, 210, 3, 35, 86, 209, 27, 49, 81, 155,\n\t\t11, 153, 209, 219, 107, 235, 77, 78, 242, 133, 153, 170, 186,\n\t\t33, 12, 83, 210, 103, 178, 135, 148, 208, 170, 149, 188, 239,\n\t\t221, 117, 126, 139, 232, 66, 102, 102, 112, 174, 194, 76,\n\t\t51, 169, 212, 204, 236, 10, 149, 30, 125, 145, 39, 140, 58,\n\t\t158, 158, 160, 239, 242, 252, 132, 190, 158, 48, 237, 5, 252,\n\t\t122, 227, 15, 93, 128, 23, 247, 250, 154, 214, 203, 76, 107,\n\t\t20, 156, 111, 158, 217, 189, 248, 150, 107, 88, 250, 144,\n\t\t57, 100, 111, 138, 49, 177, 161, 148, 88, 69, 189, 208, 97,\n\t\t61, 61, 37, 214, 94, 10, 67, 251, 63, 79, 24, 237, 221, 203,\n\t\t193, 33, 208, 109, 180, 13, 243, 238, 244, 40, 153, 118, 114,\n\t\t247, 68, 143, 106, 116, 183, 85, 192, 1, 0, 141, 131, 50,\n\t\t120, 106, 243, 204, 14, 124, 212, 82, 58, 231, 240, 31, 37,\n\t\t185, 228, 115, 35, 45, 34, 228, 84, 5, 174, 74, 231, 181,\n\t\t181, 142, 94, 63, 198, 246, 84, 82, 125, 205, 133, 51, 56,\n\t\t67, 13, 33, 113, 63, 121, 206, 238, 116, 177, 4, 6, 98, 163,\n\t\t198, 233, 35, 143, 82, 220, 232, 145, 29, 248, 49, 37, 201,\n\t\t191, 210, 231, 172, 46, 83, 142, 50, 116, 134, 21, 172, 197,\n\t\t211, 93, 225, 18, 235, 131, 231, 225, 179, 97, 164, 95, 80,\n\t\t139, 233, 23, 50, 189, 118, 204, 47, 19, 6, 197, 213, 88,\n\t\t110, 52, 185, 124, 11, 19, 147, 55, 185, 220, 99, 102, 74,\n\t\t127, 22, 34, 92, 107, 195, 180, 229, 171, 247, 111, 221, 19,\n\t\t179, 186, 198, 236, 227, 77, 88, 250, 235, 101, 70, 55, 50,\n\t\t77, 180, 117, 91, 105, 184, 221, 150, 219, 194, 87, 115, 205,\n\t\t83, 91, 152, 152, 167, 207, 43, 181, 137, 163, 16, 227, 191,\n\t\t36, 130, 45, 11, 76, 88, 200, 29, 234, 255, 156, 89, 142,\n\t\t20, 215, 71, 34, 51, 196, 83, 247, 203, 152, 182, 210, 250,\n\t\t166, 242, 112, 173, 90, 43, 8, 197, 121, 207, 48, 90, 182,\n\t\t196, 61, 147, 233, 7, 238, 70, 97, 1, 220, 85, 62, 168, 120,\n\t\t123, 92, 174, 161, 36, 106, 25, 163, 202, 167, 152, 227, 189,\n\t\t9, 5, 63, 39, 242, 145, 136, 125, 88, 149, 30, 120, 190, 220,\n\t\t139, 167, 14, 60, 246, 156, 221, 32, 253, 32, 55, 38, 247,\n\t\t122, 18, 122, 50, 23, 49, 55, 120, 12, 18, 79, 73, 157, 70,\n\t\t58, 125, 110, 31, 30, 66, 90, 67, 9, 253, 56, 51, 107, 13,\n\t\t225, 175, 58, 72, 117, 244, 189, 15, 14, 34, 175, 185, 51,\n\t\t76, 94, 160, 137, 189, 235, 92, 151, 55, 213, 97, 215, 175,\n\t\t108, 197, 105, 191, 92, 88, 50, 208, 239, 73, 96, 79, 91,\n\t\t46, 214, 234, 85, 130, 169, 179, 74, 116, 138, 200, 208, 170,\n\t\t100, 127, 234, 113, 116, 65, 118, 62, 180, 210, 105, 76, 165,\n\t\t11, 70, 117, 57, 246, 54, 173, 11, 108, 76, 237, 215, 107,\n\t\t41, 241, 111, 109, 246, 172, 222, 137, 185, 184, 158, 239,\n\t\t45, 50, 21, 254, 65, 99, 52, 152, 233, 47, 200, 168, 1, 135,\n\t\t92, 110, 108, 31, 214, 76, 88, 69, 250, 182, 50, 97, 70, 46,\n\t\t233, 101, 194, 240, 26, 89, 93, 192, 221, 88, 235, 106, 74,\n\t\t138, 213, 229, 90, 238, 69, 164, 235, 129, 249, 194, 185,\n\t\t116, 36, 53, 30, 215, 220, 61, 137, 212, 45, 246, 70, 98,\n\t\t241, 248, 216, 178, 99, 31, 50, 199, 55, 62, 126, 162, 129,\n\t\t175, 44, 204, 217, 29, 73, 183, 77, 16, 139, 149, 54, 176,\n\t\t244, 184, 198, 17, 168, 2, 25, 175, 35, 214, 11, 251, 164,\n\t\t153, 200, 146, 150, 105, 145, 228, 235, 218, 170, 84, 204,\n\t\t61, 242, 177, 95, 200, 233, 104, 67, 232, 43, 123, 148, 59,\n\t\t239, 61, 57, 159, 168, 160, 185, 210, 251, 56, 152, 198, 139,\n\t\t68, 242, 222, 179, 75, 173, 208, 45, 170, 235, 105, 108, 163,\n\t\t187, 88, 142, 80, 117, 115, 165, 150, 196, 122, 11, 49, 59,\n\t\t38, 216, 232, 131, 61, 190, 46, 196, 114, 8, 71, 79, 163,\n\t\t54, 61, 174, 153, 217, 11, 195, 150, 125, 162, 145, 100, 130,\n\t\t85, 146, 250, 226, 155, 240, 97, 28, 220, 6, 146, 15, 104,\n\t\t196, 16, 248, 31, 250, 61, 199, 204, 165, 68, 235, 214, 70,\n\t\t1, 31, 84, 100, 172, 2, 25, 158, 59, 4, 246, 177, 151, 230,\n\t\t152, 157, 147, 140, 254, 22, 242, 186, 215, 121, 122, 231,\n\t\t224, 73, 127, 56, 233, 68, 185, 147, 218, 19, 92, 202, 190,\n\t\t199, 199, 53, 251, 64, 123, 207, 150, 125, 113, 141, 33, 21,\n\t\t99, 111, 33, 28, 123, 168, 149, 238, 183, 237, 213, 31, 165,\n\t\t169, 70, 84, 121, 92, 169, 239, 91, 163, 6, 218, 207, 130,\n\t\t167, 137, 58, 142, 226, 89, 176, 73, 26, 103, 11, 233, 8,\n\t\t28, 35, 145, 54, 189, 190, 237, 166, 66, 240, 138, 128, 174,\n\t\t180, 211, 14, 230, 67, 53, 93, 137, 85, 156, 208, 122, 179,\n\t\t146, 119, 82, 16, 153, 254, 112, 237, 185, 90, 69, 107, 60,\n\t\t174, 161, 6, 87, 90, 220, 178, 247, 52, 88, 247, 189, 113,\n\t\t223, 244, 3, 138, 99, 24, 212, 236, 196, 18, 130, 182, 76,\n\t\t106, 87, 79, 146, 217, 219, 146, 207, 85, 240, 219, 11, 211,\n\t\t239, 5, 101, 219, 35, 107, 50, 164, 216, 181, 189, 67, 42,\n\t\t73, 151, 174, 103, 166, 232, 233, 86, 119, 154, 118, 180,\n\t\t133, 28, 89, 117, 52, 50, 236, 104, 53, 95, 14, 204, 191,\n\t\t158, 93, 240, 85, 73, 61, 72, 184, 87, 22, 151, 99, 221, 44,\n\t\t210, 108, 171, 225, 190, 55, 218, 24, 99, 58, 82, 21, 202,\n\t\t207, 36, 251, 211, 170, 41, 140, 116, 233, 78, 247, 10, 163,\n\t\t164, 27, 105, 130, 181, 245, 67, 103, 49, 243, 221, 180, 214,\n\t\t142, 189, 43, 31, 105, 47, 220, 46, 186, 69, 167, 217, 36,\n\t\t167, 226, 229, 166, 130, 235, 24, 74, 235, 58, 120, 14, 166,\n\t\t219, 62, 6, 51, 27, 222, 119, 85, 180, 14, 219, 216, 84, 42,\n\t\t211, 14, 171, 194, 248, 164, 59, 197, 94, 69, 114, 119, 230,\n\t\t164, 236, 35, 157, 4, 44, 173, 189, 238, 50, 77, 42, 125,\n\t\t58, 173, 226, 65, 70, 141, 220, 116, 61, 94, 95, 89, 191,\n\t\t105, 121, 219, 241, 21, 68, 110, 116, 181, 211, 64, 97, 190,\n\t\t75, 113, 192, 188, 216, 104, 149, 230, 150, 112, 253, 78,\n\t\t107, 73, 229, 47, 181, 13, 95, 239, 54, 143, 114, 208, 182,\n\t\t13, 166, 48, 109, 212, 153, 57, 196, 176, 241, 114, 174, 225,\n\t\t38, 190, 227, 86, 47, 71, 151, 110, 103, 11, 171, 183, 50,\n\t\t215, 38, 163, 154, 213, 218, 26, 165, 211, 160, 132, 104,\n\t\t119, 63, 174, 57, 209, 18, 100, 158, 91, 90, 92, 71, 98, 189,\n\t\t41, 109, 213, 235, 70, 29, 105, 55, 99, 244, 214, 90, 105,\n\t\t90, 99, 163, 158, 75, 107, 0, 177, 44, 228, 187, 233, 68,\n\t\t186, 25, 233, 14, 112, 236, 54, 43, 58, 207, 184, 99, 207,\n\t\t60, 37, 131, 56, 159, 202, 136, 55, 178, 191, 75, 203, 143,\n\t\t107, 73, 145, 198, 112, 11, 189, 147, 224, 22, 136, 84, 104,\n\t\t158, 34, 106, 246, 211, 91, 218, 4, 208, 18, 18, 243, 211,\n\t\t111, 203, 46, 179, 154, 35, 87, 109, 43, 155, 71, 218, 235,\n\t\t199, 78, 123, 159, 143, 109, 99, 65, 94, 197, 175, 41, 242,\n\t\t58, 84, 18, 47, 253, 136, 158, 53, 54, 244, 200, 252, 96,\n\t\t124, 65, 176, 224, 11, 236, 180, 52, 54, 249, 7, 148, 54,\n\t\t63, 127, 121, 191, 205, 127, 252, 244, 33, 92, 32, 120, 59,\n\t\t109, 136, 213, 213, 45, 229, 124, 4, 207, 33, 157, 140, 105,\n\t\t43, 123, 172, 80, 168, 129, 122, 123, 239, 133, 103, 132,\n\t\t250, 70, 202, 109, 143, 145, 83, 188, 231, 14, 47, 145, 95,\n\t\t21, 18, 219, 241, 184, 234, 229, 206, 88, 42, 211, 111, 5,\n\t\t105, 34, 122, 219, 145, 92, 217, 80, 143, 89, 239, 162, 68,\n\t\t84, 203, 182, 205, 116, 113, 229, 126, 74, 69, 228, 56, 249,\n\t\t195, 158, 169, 97, 37, 247, 16, 37, 209, 1, 206, 60, 203,\n\t\t22, 79, 114, 224, 44, 135, 108, 55, 166, 178, 172, 99, 92,\n\t\t166, 185, 253, 4, 109, 15, 94, 127, 117, 169, 89, 9, 253,\n\t\t234, 46, 60, 147, 79, 190, 66, 59, 213, 68, 72, 209, 233,\n\t\t7, 237, 71, 249, 116, 127, 251, 237, 143, 127, 252, 242, 211,\n\t\t219, 199, 113, 9, 24, 23, 208, 161, 10, 144, 168, 6, 117,\n\t\t133, 102, 39, 132, 9, 94, 16, 128, 141, 168, 127, 206, 111,\n\t\t212, 17, 201, 142, 207, 34, 95, 209, 191, 18, 242, 153, 38,\n\t\t188, 88, 126, 75, 122, 164, 189, 115, 192, 128, 124, 44, 174,\n\t\t76, 102, 34, 36, 33, 207, 236, 220, 154, 249, 198, 190, 252,\n\t\t88, 171, 184, 128, 99, 29, 142, 9, 115, 186, 107, 91, 98,\n\t\t224, 242, 61, 240, 144, 4, 70, 69, 144, 10, 114, 156, 196,\n\t\t1, 95, 209, 37, 250, 83, 24, 224, 40, 172, 188, 137, 213,\n\t\t103, 94, 248, 64, 197, 99, 149, 65, 214, 51, 38, 124, 183,\n\t\t129, 129, 166, 67, 101, 82, 188, 218, 232, 185, 236, 194,\n\t\t75, 129, 169, 124, 213, 251, 29, 205, 223, 42, 5, 81, 157,\n\t\t160, 185, 173, 112, 39, 57, 194, 200, 28, 215, 173, 4, 136,\n\t\t70, 90, 102, 17, 195, 230, 102, 106, 8, 63, 150, 196, 29,\n\t\t134, 144, 216, 147, 134, 163, 44, 162, 139, 77, 59, 202, 55,\n\t\t80, 151, 105, 36, 149, 76, 70, 241, 125, 234, 121, 47, 156,\n\t\t227, 29, 37, 26, 38, 57, 51, 112, 239, 225, 114, 247, 140,\n\t\t9, 193, 49, 110, 153, 185, 30, 235, 22, 6, 159, 136, 88, 58,\n\t\t237, 242, 252, 27, 254, 4, 28, 235, 81, 156, 163, 58, 33,\n\t\t175, 57, 103, 71, 251, 48, 255, 158, 89, 29, 5, 28, 82, 156,\n\t\t174, 62, 243, 128, 73, 56, 226, 182, 71, 89, 253, 177, 48,\n\t\t107, 32, 48, 223, 113, 8, 207, 216, 177, 22, 238, 101, 240,\n\t\t141, 50, 106, 151, 153, 17, 194, 34, 24, 179, 133, 49, 60,\n\t\t51, 99, 130, 50, 155, 106, 216, 226, 40, 46, 204, 51, 86,\n\t\t189, 28, 136, 32, 9, 45, 33, 155, 26, 39, 11, 154, 178, 244,\n\t\t121, 136, 212, 219, 151, 95, 127, 255, 199, 79, 31, 86, 213,\n\t\t39, 48, 181, 169, 87, 87, 56, 142, 167, 186, 18, 202, 193,\n\t\t185, 238, 165, 113, 12, 130, 27, 133, 169, 172, 221, 104,\n\t\t157, 125, 42, 173, 164, 17, 120, 240, 73, 27, 39, 17, 29,\n\t\t115, 12, 67, 78, 19, 152, 115, 185, 187, 214, 147, 164, 24,\n\t\t185, 202, 183, 105, 110, 140, 22, 248, 4, 75, 56, 159, 7,\n\t\t239, 82, 28, 162, 152, 99, 98, 160, 43, 170, 177, 126, 99,\n\t\t63, 161, 53, 87, 83, 209, 168, 25, 95, 89, 129, 243, 174,\n\t\t121, 38, 223, 38, 121, 23, 116, 134, 199, 216, 14, 158, 67,\n\t\t97, 139, 165, 187, 216, 251, 133, 115, 12, 149, 106, 153,\n\t\t183, 160, 74, 166, 69, 202, 66, 155, 158, 19, 89, 35, 49,\n\t\t150, 138, 235, 153, 131, 11, 141, 153, 220, 91, 98, 50, 122,\n\t\t57, 80, 105, 185, 111, 246, 54, 52, 63, 115, 26, 83, 159,\n\t\t73, 6, 68, 108, 161, 108, 101, 56, 31, 98, 219, 114, 112,\n\t\t45, 134, 70, 198, 7, 117, 213, 166, 245, 31, 215, 82, 135,\n\t\t243, 109, 243, 188, 36, 74, 172, 28, 10, 68, 147, 186, 23,\n\t\t70, 162, 17, 239, 66, 243, 174, 100, 1, 244, 205, 140, 37,\n\t\t153, 93, 10, 190, 72, 65, 17, 214, 209, 49, 82, 228, 240,\n\t\t113, 26, 19, 246, 17, 210, 230, 168, 5, 151, 201, 145, 245,\n\t\t173, 113, 167, 181, 236, 70, 202, 85, 129, 132, 66, 62, 13,\n\t\t11, 109, 2, 81, 16, 154, 229, 69, 244, 239, 94, 19, 169, 195,\n\t\t109, 147, 10, 235, 23, 248, 65, 162, 231, 53, 142, 75, 105,\n\t\t201, 149, 234, 25, 13, 35, 37, 97, 35, 214, 214, 236, 218,\n\t\t28, 206, 244, 230, 169, 178, 15, 215, 187, 239, 130, 181,\n\t\t217, 216, 74, 213, 183, 228, 151, 18, 82, 120, 45, 97, 168,\n\t\t235, 150, 124, 57, 184, 251, 242, 216, 82, 30, 46, 228, 112,\n\t\t153, 105, 176, 19, 140, 239, 154, 50, 89, 129, 62, 132, 70,\n\t\t210, 174, 23, 142, 102, 20, 90, 100, 189, 158, 73, 141, 28,\n\t\t191, 53, 90, 153, 140, 183, 81, 123, 46, 109, 11, 190, 210,\n\t\t232, 171, 244, 200, 109, 98, 122, 198, 32, 172, 231, 220,\n\t\t168, 49, 54, 253, 222, 126, 128, 250, 36, 70, 251, 8, 155,\n\t\t167, 61, 219, 231, 33, 168, 49, 149, 212, 48, 109, 196, 174,\n\t\t173, 120, 92, 11, 139, 193, 200, 172, 131, 57, 196, 67, 248,\n\t\t240, 171, 130, 86, 102, 18, 148, 201, 11, 231, 126, 72, 226,\n\t\t159, 33, 83, 90, 14, 28, 132, 131, 157, 172, 75, 239, 7, 10,\n\t\t120, 152, 73, 33, 214, 97, 78, 61, 75, 3, 124, 59, 175, 164,\n\t\t157, 227, 124, 99, 224, 212, 143, 216, 34, 231, 232, 178,\n\t\t182, 85, 179, 139, 177, 149, 77, 43, 172, 159, 216, 47, 82,\n\t\t114, 173, 10, 187, 126, 35, 37, 177, 242, 145, 35, 92, 55,\n\t\t218, 156, 93, 219, 179, 94, 105, 183, 119, 202, 205, 197,\n\t\t224, 153, 198, 48, 247, 154, 200, 134, 239, 35, 115, 108,\n\t\t23, 207, 250, 144, 138, 243, 235, 90, 88, 142, 51, 77, 220,\n\t\t230, 93, 15, 108, 20, 184, 42, 238, 93, 147, 38, 195, 213,\n\t\t156, 42, 141, 22, 153, 120, 180, 231, 248, 212, 195, 86, 139,\n\t\t243, 37, 112, 164, 5, 125, 111, 63, 64, 253, 18, 93, 40, 114,\n\t\t12, 214, 28, 9, 129, 93, 59, 26, 141, 216, 181, 21, 159, 138,\n\t\t215, 247, 183, 227, 120, 255, 215, 7, 233, 250, 1, 155, 116,\n\t\t133, 149, 149, 52, 28, 173, 206, 64, 58, 23, 159, 108, 7,\n\t\t50, 240, 248, 16, 158, 154, 49, 178, 19, 179, 183, 38, 23,\n\t\t162, 94, 179, 252, 12, 195, 21, 207, 26, 87, 237, 206, 147,\n\t\t192, 216, 75, 113, 185, 10, 244, 107, 114, 129, 61, 131, 252,\n\t\t161, 88, 9, 25, 86, 193, 133, 209, 38, 179, 125, 70, 142,\n\t\t183, 215, 47, 235, 182, 158, 174, 63, 211, 191, 211, 147,\n\t\t118, 144, 57, 238, 179, 185, 78, 83, 105, 240, 240, 118, 26,\n\t\t137, 214, 75, 220, 66, 8, 46, 38, 129, 233, 8, 57, 151, 180,\n\t\t53, 151, 120, 105, 238, 201, 249, 90, 114, 98, 58, 145, 144,\n\t\t235, 42, 136, 209, 165, 58, 194, 228, 200, 191, 216, 60, 115,\n\t\t145, 212, 17, 50, 7, 115, 87, 47, 65, 221, 100, 54, 232, 245,\n\t\t140, 222, 169, 115, 57, 13, 146, 192, 124, 174, 204, 79, 225,\n\t\t166, 87, 9, 123, 45, 201, 39, 82, 120, 82, 175, 141, 213,\n\t\t151, 58, 202, 134, 64, 201, 64, 130, 172, 7, 14, 69, 161,\n\t\t121, 173, 215, 115, 68, 150, 172, 158, 125, 82, 131, 4, 82,\n\t\t43, 46, 245, 208, 87, 129, 126, 144, 19, 241, 40, 59, 207,\n\t\t30, 104, 209, 243, 33, 123, 113, 36, 224, 57, 4, 71, 84, 182,\n\t\t230, 82, 79, 156, 76, 68, 178, 141, 94, 50, 231, 154, 238,\n\t\t129, 246, 203, 40, 64, 203, 100, 191, 112, 114, 130, 216,\n\t\t207, 161, 184, 20, 121, 249, 232, 7, 253, 203, 217, 54, 35,\n\t\t119, 62, 82, 145, 223, 248, 85, 137, 127, 46, 194, 254, 229,\n\t\t247, 247, 125, 61, 204, 126, 137, 135, 189, 62, 196, 10, 110,\n\t\t250, 176, 203, 92, 15, 67, 157, 215, 150, 234, 95, 161, 159,\n\t\t76, 165, 173, 183, 76, 193, 229, 130, 183, 140, 185, 74, 51,\n\t\t123, 215, 223, 120, 60, 47, 90, 129, 190, 229, 208, 183, 164,\n\t\t223, 188, 190, 229, 83, 187, 119, 253, 221, 125, 95, 15, 251,\n\t\t119, 223, 114, 124, 124, 203, 248, 242, 150, 241, 244, 150,\n\t\t169, 117, 150, 14, 246, 150, 53, 178, 31, 238, 229, 45, 255,\n\t\t141, 177, 204, 57, 216, 91, 198, 15, 99, 25, 159, 198, 210,\n\t\t30, 246, 244, 150, 79, 35, 255, 250, 171, 231, 177, 148, 135,\n\t\t253, 112, 44, 115, 45, 174, 215, 96, 111, 201, 249, 159, 33,\n\t\t202, 41, 144, 196, 45, 224, 193, 180, 35, 199, 54, 158, 198,\n\t\t146, 10, 24, 7, 63, 179, 146, 246, 250, 150, 24, 75, 154,\n\t\t10, 79, 99, 73, 191, 187, 239, 235, 97, 255, 198, 88, 234,\n\t\t195, 62, 188, 229, 39, 99, 249, 169, 28, 191, 125, 253, 227,\n\t\t207, 247, 175, 191, 254, 244, 143, 227, 127, 62, 72, 243,\n\t\t108, 12, 252, 222, 131, 61, 233, 0, 64, 182, 70, 211, 31,\n\t\t9, 129, 25, 74, 250, 124, 44, 8, 109, 141, 0, 122, 92, 201,\n\t\t146, 200, 6, 38, 140, 192, 175, 211, 29, 44, 26, 253, 123,\n\t\t119, 72, 156, 41, 162, 150, 174, 61, 19, 63, 56, 213, 239,\n\t\t26, 51, 118, 106, 85, 22, 196, 242, 54, 92, 216, 210, 169,\n\t\t253, 28, 202, 113, 164, 83, 52, 24, 221, 236, 114, 44, 222,\n\t\t86, 123, 124, 213, 0, 49, 69, 132, 250, 244, 21, 42, 147,\n\t\t118, 159, 154, 164, 72, 6, 177, 113, 138, 146, 230, 247, 226,\n\t\t23, 235, 21, 236, 153, 223, 125, 133, 40, 254, 11, 227, 80,\n\t\t251, 164, 27, 228, 221, 158, 238, 209, 20, 57, 215, 187, 1,\n\t\t23, 193, 249, 14, 28, 2, 245, 237, 158, 180, 87, 67, 79, 250,\n\t\t45, 251, 224, 242, 125, 215, 4, 201, 228, 202, 157, 63, 210,\n\t\t39, 201, 8, 238, 82, 229, 25, 104, 248, 27, 181, 25, 33, 141,\n\t\t67, 122, 165, 254, 183, 170, 139, 83, 71, 127, 17, 5, 175,\n\t\t57, 180, 15, 109, 136, 76, 132, 240, 84, 77, 166, 205, 167,\n\t\t141, 77, 165, 163, 177, 151, 239, 213, 137, 164, 35, 254,\n\t\t149, 231, 241, 129, 193, 199, 138, 79, 237, 215, 208, 111,\n\t\t13, 98, 4, 22, 83, 18, 172, 1, 25, 219, 59, 95, 233, 5, 250,\n\t\t51, 133, 232, 250, 95, 235, 79, 220, 61, 249, 232, 226, 157,\n\t\t145, 193, 159, 238, 172, 21, 209, 68, 197, 160, 186, 60, 174,\n\t\t49, 6, 215, 200, 232, 43, 28, 49, 88, 140, 166, 145, 221,\n\t\t119, 236, 60, 1, 51, 52, 10, 70, 64, 60, 92, 81, 144, 85,\n\t\t112, 9, 156, 106, 156, 255, 206, 34, 81, 219, 195, 160, 54,\n\t\t212, 125, 103, 5, 195, 242, 118, 150, 223, 177, 225, 155,\n\t\t244, 244, 116, 148, 208, 172, 100, 116, 142, 158, 29, 59,\n\t\t44, 51, 162, 203, 144, 212, 1, 148, 108, 43, 72, 253, 162,\n\t\t209, 223, 18, 143, 22, 243, 201, 111, 146, 34, 2, 18, 79,\n\t\t129, 198, 200, 5, 137, 154, 121, 183, 0, 82, 52, 92, 78, 241,\n\t\t162, 110, 22, 192, 119, 8, 16, 147, 68, 48, 2, 44, 123, 31,\n\t\t200, 194, 67, 252, 162, 145, 18, 34, 48, 79, 11, 38, 131,\n\t\t114, 248, 173, 4, 3, 18, 14, 155, 66, 145, 145, 50, 9, 87,\n\t\t87, 99, 215, 10, 64, 31, 248, 42, 137, 63, 229, 114, 226,\n\t\t207, 64, 24, 118, 0, 195, 197, 120, 186, 158, 32, 253, 230,\n\t\t188, 84, 13, 70, 86, 15, 110, 89, 50, 128, 110, 117, 147,\n\t\t4, 171, 144, 15, 192, 29, 40, 130, 216, 164, 125, 74, 50,\n\t\t94, 244, 14, 10, 162, 184, 133, 200, 99, 162, 161, 121, 147,\n\t\t180, 87, 110, 187, 231, 204, 62, 13, 237, 131, 240, 177, 18,\n\t\t141, 245, 93, 51, 58, 214, 225, 170, 172, 22, 198, 252, 59,\n\t\t79, 107, 70, 111, 67, 0, 216, 53, 141, 226, 226, 86, 69, 104,\n\t\t61, 45, 168, 151, 197, 182, 110, 30, 178, 119, 225, 243, 165,\n\t\t232, 183, 76, 111, 113, 203, 185, 223, 247, 204, 76, 61, 177,\n\t\t186, 180, 237, 67, 178, 171, 232, 154, 35, 212, 228, 242,\n\t\t158, 189, 158, 183, 88, 212, 229, 13, 153, 202, 247, 216,\n\t\t188, 128, 26, 14, 215, 238, 59, 95, 29, 97, 208, 82, 223,\n\t\t123, 81, 113, 45, 63, 77, 165, 50, 173, 176, 254, 80, 51,\n\t\t58, 237, 167, 184, 166, 203, 250, 184, 172, 206, 138, 213,\n\t\t253, 64, 180, 216, 171, 247, 68, 146, 226, 83, 41, 212, 188,\n\t\t200, 160, 239, 74, 82, 238, 241, 144, 169, 77, 159, 246, 183,\n\t\t86, 28, 209, 141, 207, 43, 146, 148, 127, 125, 228, 183, 164,\n\t\t60, 223, 47, 166, 122, 249, 75, 207, 245, 213, 149, 31, 60,\n\t\t151, 229, 253, 95, 121, 178, 168, 37, 63, 238, 149, 216, 134,\n\t\t59, 67, 76, 146, 72, 86, 177, 187, 42, 127, 108, 48, 239,\n\t\t77, 159, 221, 254, 83, 221, 238, 235, 47, 191, 31, 255, 250,\n\t\t233, 31, 95, 143, 15, 41, 38, 225, 35, 196, 138, 229, 111,\n\t\t231, 30, 232, 229, 59, 11, 44, 61, 21, 145, 168, 80, 3, 102,\n\t\t52, 71, 177, 136, 28, 106, 119, 16, 254, 232, 144, 181, 162,\n\t\t130, 194, 67, 38, 69, 228, 67, 106, 201, 109, 207, 146, 222,\n\t\t57, 141, 67, 192, 175, 90, 150, 97, 140, 2, 60, 8, 207, 17,\n\t\t198, 158, 213, 156, 168, 127, 89, 212, 224, 17, 193, 215,\n\t\t25, 140, 205, 201, 192, 51, 78, 63, 51, 31, 60, 213, 191,\n\t\t220, 119, 133, 230, 189, 133, 94, 92, 186, 159, 128, 122,\n\t\t179, 98, 159, 157, 218, 178, 189, 180, 141, 30, 247, 184,\n\t\t210, 236, 231, 212, 4, 22, 209, 200, 237, 246, 91, 69, 101,\n\t\t196, 246, 234, 117, 173, 200, 15, 176, 60, 240, 215, 42, 251,\n\t\t169, 174, 230, 145, 86, 59, 173, 170, 0, 219, 54, 232, 118,\n\t\t43, 209, 234, 188, 201, 37, 1, 251, 51, 145, 111, 181, 206,\n\t\t181, 19, 115, 130, 37, 102, 199, 62, 189, 129, 246, 31, 106,\n\t\t158, 154, 135, 59, 20, 73, 153, 72, 54, 45, 244, 41, 21, 153,\n\t\t68, 167, 186, 124, 50, 181, 175, 142, 177, 183, 219, 207,\n\t\t109, 179, 23, 215, 131, 172, 29, 96, 34, 231, 215, 228, 134,\n\t\t157, 43, 179, 242, 243, 233, 138, 248, 159, 127, 125, 249,\n\t\t243, 248, 242, 33, 98, 58, 212, 79, 210, 33, 179, 103, 30,\n\t\t113, 214, 42, 106, 65, 226, 149, 192, 98, 7, 62, 210, 10,\n\t\t138, 22, 73, 87, 147, 225, 45, 52, 89, 177, 186, 202, 103,\n\t\t29, 141, 84, 4, 250, 195, 23, 52, 229, 249, 117, 184, 18,\n\t\t167, 120, 237, 145, 118, 252, 205, 128, 126, 249, 146, 143,\n\t\t128, 72, 81, 66, 126, 51, 18, 71, 98, 113, 137, 253, 233,\n\t\t198, 125, 1, 76, 32, 228, 90, 64, 23, 0, 186, 168, 94, 191,\n\t\t27, 239, 105, 89, 20, 168, 74, 31, 112, 145, 184, 97, 25,\n\t\t130, 112, 194, 101, 213, 15, 125, 69, 228, 75, 224, 122, 198,\n\t\t13, 82, 193, 202, 242, 158, 1, 23, 128, 36, 23, 74, 166, 87,\n\t\t215, 235, 185, 119, 156, 241, 157, 80, 120, 75, 222, 36, 59,\n\t\t148, 180, 39, 201, 183, 231, 204, 43, 73, 84, 228, 104, 34,\n\t\t206, 123, 9, 155, 160, 87, 235, 213, 228, 37, 74, 203, 26,\n\t\t164, 172, 212, 233, 169, 114, 198, 49, 95, 204, 49, 144, 104,\n\t\t60, 244, 36, 151, 204, 208, 102, 4, 97, 124, 37, 39, 144,\n\t\t130, 236, 85, 22, 196, 253, 158, 113, 46, 167, 37, 211, 88,\n\t\t11, 197, 184, 23, 85, 18, 218, 26, 212, 191, 98, 2, 67, 179,\n\t\t69, 113, 128, 168, 193, 255, 122, 153, 12, 35, 25, 179, 120,\n\t\t47, 24, 227, 192, 93, 22, 100, 32, 229, 146, 115, 166, 113,\n\t\t168, 222, 101, 49, 72, 207, 119, 96, 138, 36, 168, 95, 134,\n\t\t20, 110, 204, 6, 101, 125, 212, 191, 23, 129, 94, 210, 137,\n\t\t227, 65, 102, 32, 234, 50, 52, 33, 89, 121, 224, 230, 65,\n\t\t222, 92, 69, 246, 171, 230, 206, 4, 207, 150, 158, 38, 29,\n\t\t182, 129, 12, 139, 144, 100, 204, 72, 53, 145, 19, 91, 20,\n\t\t4, 82, 76, 121, 41, 225, 188, 111, 193, 164, 89, 138, 31,\n\t\t34, 11, 192, 193, 128, 164, 22, 160, 39, 131, 185, 12, 185,\n\t\t185, 64, 209, 227, 203, 203, 172, 30, 242, 49, 4, 158, 16,\n\t\t89, 243, 184, 245, 50, 248, 230, 62, 15, 150, 248, 253, 235,\n\t\t175, 127, 190, 253, 241, 246, 254, 231, 254, 33, 63, 32, 133,\n\t\t87, 89, 145, 122, 70, 190, 5, 243, 172, 5, 87, 230, 200, 24,\n\t\t136, 64, 35, 86, 49, 3, 187, 166, 89, 114, 164, 235, 72, 43,\n\t\t243, 92, 95, 124, 84, 206, 149, 223, 37, 222, 1, 215, 124,\n\t\t84, 134, 44, 205, 194, 216, 71, 42, 244, 6, 102, 212, 66,\n\t\t18, 230, 48, 126, 217, 61, 249, 48, 35, 145, 66, 217, 2, 210,\n\t\t169, 90, 116, 125, 26, 50, 162, 33, 229, 241, 137, 54, 82,\n\t\t149, 144, 117, 201, 88, 188, 0, 117, 236, 56, 143, 23, 235,\n\t\t162, 200, 167, 34, 50, 154, 230, 20, 146, 222, 35, 72, 150,\n\t\t89, 242, 229, 184, 69, 63, 92, 152, 146, 25, 177, 128, 187,\n\t\t100, 2, 90, 158, 47, 10, 138, 113, 61, 119, 62, 80, 226, 145,\n\t\t29, 209, 62, 2, 56, 158, 33, 186, 120, 243, 150, 23, 107,\n\t\t101, 109, 231, 250, 170, 226, 23, 153, 130, 128, 47, 22, 155,\n\t\t217, 156, 202, 64, 145, 129, 216, 167, 5, 179, 14, 145, 184,\n\t\t60, 48, 67, 143, 186, 113, 77, 34, 136, 131, 84, 155, 229,\n\t\t66, 169, 99, 136, 99, 1, 232, 145, 108, 137, 73, 96, 64, 59,\n\t\t193, 231, 101, 79, 27, 69, 105, 246, 145, 214, 129, 54, 46,\n\t\t45, 254, 78, 153, 5, 69, 243, 55, 117, 167, 107, 246, 194,\n\t\t13, 96, 88, 136, 37, 72, 43, 57, 84, 103, 132, 150, 112, 86,\n\t\t160, 231, 195, 20, 238, 149, 124, 250, 28, 130, 23, 37, 138,\n\t\t143, 98, 198, 38, 200, 41, 226, 31, 139, 94, 63, 125, 186,\n\t\t60, 254, 121, 251, 242, 231, 251, 151, 223, 63, 174, 141,\n\t\t104, 177, 68, 221, 147, 60, 46, 222, 141, 153, 79, 41, 105,\n\t\t200, 118, 180, 148, 74, 43, 8, 165, 201, 113, 67, 228, 238,\n\t\t241, 193, 49, 146, 31, 167, 205, 102, 222, 34, 35, 35, 122,\n\t\t201, 206, 193, 167, 175, 232, 221, 134, 52, 69, 29, 92, 210,\n\t\t240, 195, 22, 53, 96, 181, 113, 114, 237, 96, 119, 151, 194,\n\t\t205, 76, 163, 244, 182, 108, 219, 168, 38, 103, 11, 75, 13,\n\t\t211, 222, 98, 186, 0, 110, 214, 208, 50, 106, 150, 254, 127,\n\t\t153, 101, 193, 46, 146, 241, 187, 72, 120, 3, 13, 119, 21,\n\t\t192, 252, 199, 53, 70, 90, 209, 74, 191, 79, 175, 87, 89,\n\t\t1, 8, 157, 148, 132, 110, 102, 24, 93, 133, 158, 93, 245,\n\t\t225, 68, 232, 96, 224, 55, 152, 192, 3, 179, 189, 0, 52, 56,\n\t\t49, 36, 60, 136, 153, 12, 13, 170, 35, 54, 202, 232, 57, 18,\n\t\t205, 63, 189, 156, 218, 209, 212, 241, 244, 80, 139, 16, 177,\n\t\t107, 250, 83, 68, 135, 84, 183, 129, 129, 81, 85, 16, 223,\n\t\t116, 93, 67, 67, 22, 254, 114, 34, 210, 8, 0, 62, 165, 138,\n\t\t179, 226, 168, 195, 228, 9, 189, 201, 1, 165, 145, 179, 15,\n\t\t117, 252, 0, 133, 8, 183, 15, 98, 103, 148, 77, 76, 61, 153,\n\t\t76, 118, 200, 44, 113, 83, 34, 146, 108, 22, 200, 13, 215,\n\t\t214, 86, 12, 30, 101, 2, 222, 122, 65, 143, 162, 96, 69, 32,\n\t\t1, 223, 51, 66, 182, 25, 3, 198, 30, 18, 23, 155, 42, 164,\n\t\t219, 47, 146, 103, 35, 20, 220, 96, 88, 34, 42, 214, 118,\n\t\t36, 139, 131, 155, 195, 52, 88, 133, 195, 153, 11, 242, 4,\n\t\t67, 53, 226, 214, 17, 113, 55, 116, 96, 59, 192, 216, 44,\n\t\t93, 26, 141, 65, 184, 147, 135, 63, 11, 240, 12, 210, 184,\n\t\t119, 248, 182, 0, 33, 131, 37, 160, 41, 211, 151, 9, 54, 153,\n\t\t34, 182, 21, 63, 215, 118, 2, 125, 85, 189, 126, 71, 230,\n\t\t238, 74, 124, 94, 244, 84, 150, 159, 107, 40, 129, 221, 120,\n\t\t217, 4, 226, 197, 149, 185, 122, 84, 39, 168, 49, 203, 164,\n\t\t174, 34, 21, 185, 188, 89, 29, 94, 70, 92, 14, 247, 6, 58,\n\t\t82, 232, 208, 53, 19, 153, 244, 89, 53, 40, 76, 141, 136,\n\t\t0, 43, 14, 10, 204, 4, 110, 228, 203, 148, 60, 70, 104, 84,\n\t\t150, 38, 153, 193, 63, 197, 51, 171, 86, 155, 97, 131, 17,\n\t\t237, 128, 73, 136, 183, 194, 44, 58, 145, 217, 168, 198, 169,\n\t\t154, 161, 110, 51, 97, 97, 175, 241, 40, 154, 94, 88, 20,\n\t\t4, 83, 222, 16, 96, 133, 209, 8, 15, 231, 162, 28, 147, 59,\n\t\t167, 136, 93, 78, 183, 242, 4, 68, 181, 240, 121, 96, 212,\n\t\t253, 235, 151, 249, 219, 215, 95, 63, 136, 238, 246, 125,\n\t\t181, 38, 245, 188, 101, 14, 97, 229, 45, 46, 222, 216, 249,\n\t\t213, 111, 180, 166, 203, 97, 56, 115, 123, 138, 183, 174,\n\t\t33, 152, 252, 53, 107, 135, 199, 222, 135, 169, 115, 167,\n\t\t171, 232, 81, 227, 158, 59, 126, 183, 110, 150, 162, 220,\n\t\t254, 206, 48, 163, 252, 104, 122, 114, 205, 71, 135, 84, 8,\n\t\t35, 222, 70, 118, 133, 75, 100, 70, 83, 133, 199, 53, 80,\n\t\t79, 135, 120, 196, 182, 213, 124, 219, 127, 16, 202, 240,\n\t\t203, 219, 207, 95, 255, 241, 1, 225, 46, 125, 193, 86, 198,\n\t\t24, 90, 234, 240, 99, 164, 212, 220, 239, 153, 51, 88, 27,\n\t\t217, 108, 201, 15, 55, 238, 133, 185, 141, 88, 250, 25, 111,\n\t\t59, 219, 118, 131, 83, 42, 100, 66, 211, 175, 123, 211, 14,\n\t\t210, 1, 93, 44, 126, 170, 9, 205, 184, 102, 87, 217, 16, 121,\n\t\t8, 150, 45, 48, 48, 238, 34, 69, 239, 123, 72, 105, 226, 64,\n\t\t136, 193, 105, 248, 201, 103, 122, 30, 21, 175, 150, 41, 142,\n\t\t102, 26, 162, 77, 234, 214, 36, 174, 115, 235, 114, 243, 203,\n\t\t93, 11, 86, 93, 173, 186, 232, 182, 146, 100, 181, 2, 241,\n\t\t3, 254, 91, 253, 16, 224, 52, 11, 229, 104, 6, 142, 218, 200,\n\t\t164, 10, 55, 133, 110, 61, 170, 174, 9, 45, 191, 51, 128,\n\t\t155, 40, 70, 186, 44, 252, 2, 189, 6, 199, 222, 14, 152, 220,\n\t\t104, 223, 224, 76, 67, 129, 85, 111, 33, 244, 245, 2, 2, 54,\n\t\t34, 164, 101, 106, 42, 243, 186, 119, 128, 28, 71, 4, 165,\n\t\t106, 37, 252, 231, 30, 234, 112, 105, 238, 134, 31, 25, 5,\n\t\t247, 157, 55, 101, 35, 223, 122, 250, 201, 167, 51, 237, 95,\n\t\t251, 252, 237, 151, 159, 190, 254, 250, 229, 207, 223, 94,\n\t\t249, 243, 99, 250, 201, 80, 219, 50, 3, 249, 62, 207, 182,\n\t\t27, 207, 184, 152, 42, 71, 189, 150, 163, 137, 101, 92, 216,\n\t\t37, 136, 28, 234, 108, 208, 11, 193, 0, 79, 119, 76, 70, 57,\n\t\t136, 208, 137, 137, 77, 94, 249, 253, 142, 69, 219, 132, 2,\n\t\t68, 221, 142, 112, 219, 83, 57, 154, 49, 25, 147, 162, 124,\n\t\t231, 220, 108, 102, 61, 188, 143, 191, 16, 227, 252, 219,\n\t\t239, 127, 126, 253, 117, 255, 229, 183, 95, 223, 255, 124,\n\t\t251, 248, 230, 243, 147, 132, 235, 22, 93, 133, 167, 110,\n\t\t170, 153, 18, 28, 24, 163, 22, 224, 62, 48, 133, 109, 37,\n\t\t36, 179, 228, 23, 66, 167, 196, 233, 177, 78, 166, 185, 247,\n\t\t224, 222, 57, 253, 78, 29, 134, 107, 46, 3, 192, 73, 130,\n\t\t95, 67, 18, 203, 7, 243, 69, 2, 97, 96, 68, 9, 126, 240, 230,\n\t\t151, 187, 96, 7, 99, 210, 10, 0, 142, 12, 62, 33, 51, 246,\n\t\t50, 129, 225, 106, 240, 247, 123, 203, 26, 96, 204, 173, 69,\n\t\t99, 23, 145, 150, 140, 157, 53, 25, 209, 177, 218, 8, 117,\n\t\t30, 79, 227, 179, 50, 136, 2, 216, 160, 106, 130, 25, 15,\n\t\t144, 172, 237, 153, 80, 204, 227, 222, 182, 113, 82, 3, 194,\n\t\t210, 58, 150, 231, 8, 123, 58, 24, 168, 112, 140, 39, 187,\n\t\t53, 155, 137, 90, 195, 51, 2, 115, 80, 51, 125, 152, 23, 2,\n\t\t17, 189, 112, 201, 154, 163, 162, 161, 45, 188, 165, 243,\n\t\t62, 8, 175, 45, 112, 114, 76, 196, 197, 170, 206, 102, 101,\n\t\t65, 13, 166, 8, 44, 184, 189, 236, 205, 177, 44, 187, 102,\n\t\t6, 192, 5, 208, 235, 138, 29, 143, 65, 99, 75, 42, 152, 35,\n\t\t40, 175, 148, 157, 209, 248, 177, 64, 163, 9, 52, 230, 144,\n\t\t237, 104, 77, 61, 66, 151, 169, 72, 189, 107, 116, 4, 183,\n\t\t79, 149, 159, 51, 103, 30, 31, 162, 26, 5, 220, 102, 68, 249,\n\t\t65, 80, 21, 68, 21, 146, 38, 133, 89, 160, 126, 157, 199,\n\t\t8, 227, 89, 215, 26, 153, 38, 48, 205, 208, 135, 176, 230,\n\t\t25, 214, 77, 254, 137, 118, 140, 93, 233, 196, 173, 158, 108,\n\t\t104, 116, 26, 103, 216, 69, 252, 247, 194, 233, 220, 218,\n\t\t35, 146, 15, 195, 12, 108, 152, 173, 0, 85, 3, 202, 143, 156,\n\t\t231, 234, 123, 155, 191, 179, 228, 39, 23, 231, 52, 80, 190,\n\t\t104, 72, 133, 58, 96, 93, 11, 192, 68, 18, 60, 173, 75, 172,\n\t\t54, 104, 208, 198, 93, 169, 13, 139, 6, 32, 44, 90, 179, 113,\n\t\t181, 50, 39, 166, 84, 85, 25, 191, 99, 62, 45, 162, 50, 12,\n\t\t166, 246, 190, 57, 201, 64, 83, 175, 61, 34, 0, 24, 158, 79,\n\t\t52, 206, 11, 196, 86, 248, 30, 96, 12, 100, 83, 153, 228,\n\t\t125, 141, 68, 49, 138, 229, 15, 79, 7, 79, 214, 2, 192, 73,\n\t\t81, 249, 38, 239, 101, 56, 206, 46, 12, 168, 45, 200, 136,\n\t\t170, 100, 198, 164, 115, 26, 182, 151, 209, 224, 179, 43,\n\t\t91, 219, 82, 134, 186, 240, 42, 73, 161, 86, 245, 4, 89, 150,\n\t\t31, 147, 69, 225, 188, 35, 51, 142, 49, 91, 57, 34, 134, 13,\n\t\t34, 82, 189, 15, 43, 223, 69, 111, 96, 204, 117, 213, 207,\n\t\t4, 183, 62, 0, 207, 1, 189, 204, 224, 134, 138, 238, 8, 254,\n\t\t219, 176, 108, 54, 200, 150, 168, 50, 75, 142, 118, 244, 88,\n\t\t158, 44, 8, 244, 50, 31, 140, 113, 28, 180, 152, 15, 88, 198,\n\t\t70, 240, 39, 195, 118, 49, 50, 95, 248, 209, 23, 124, 143,\n\t\t1, 96, 27, 26, 103, 177, 45, 194, 180, 77, 163, 190, 49, 50,\n\t\t125, 216, 120, 197, 200, 50, 149, 75, 76, 13, 133, 185, 219,\n\t\t170, 57, 81, 140, 248, 87, 85, 38, 158, 73, 249, 229, 128,\n\t\t103, 51, 222, 54, 115, 245, 88, 176, 65, 95, 242, 156, 103,\n\t\t19, 25, 110, 250, 149, 138, 3, 53, 12, 150, 60, 208, 214,\n\t\t169, 76, 128, 40, 192, 234, 11, 241, 121, 203, 3, 152, 148,\n\t\t94, 79, 0, 189, 233, 215, 213, 4, 130, 76, 242, 69, 64, 200,\n\t\t170, 161, 209, 217, 65, 242, 45, 25, 183, 168, 13, 117, 43,\n\t\t48, 120, 127, 211, 24, 49, 233, 150, 66, 2, 220, 53, 237,\n\t\t165, 139, 53, 223, 132, 23, 168, 111, 44, 246, 224, 132, 203,\n\t\t20, 96, 91, 163, 23, 225, 248, 4, 242, 166, 205, 89, 219,\n\t\t18, 80, 34, 78, 234, 10, 86, 29, 75, 71, 57, 145, 155, 40,\n\t\t227, 12, 228, 2, 35, 10, 241, 252, 105, 234, 66, 80, 117,\n\t\t10, 28, 30, 179, 110, 39, 238, 101, 113, 45, 98, 148, 244,\n\t\t122, 215, 170, 151, 185, 88, 90, 85, 54, 152, 227, 192, 118,\n\t\t210, 29, 108, 58, 106, 243, 23, 131, 25, 242, 178, 79, 75,\n\t\t231, 218, 142, 172, 10, 134, 78, 96, 244, 159, 241, 108, 98,\n\t\t7, 135, 208, 159, 224, 217, 134, 34, 206, 208, 156, 250, 43,\n\t\t108, 65, 152, 181, 143, 107, 30, 157, 249, 2, 189, 171, 211,\n\t\t52, 43, 244, 224, 137, 246, 81, 239, 137, 117, 160, 168, 246,\n\t\t52, 176, 58, 158, 222, 124, 39, 234, 226, 224, 220, 37, 236,\n\t\t68, 101, 113, 4, 243, 13, 108, 194, 217, 166, 2, 75, 57, 219,\n\t\t226, 19, 85, 73, 70, 84, 133, 0, 126, 101, 148, 121, 166,\n\t\t176, 101, 123, 31, 206, 145, 106, 201, 49, 15, 143, 206, 27,\n\t\t53, 240, 247, 229, 102, 26, 246, 59, 245, 9, 171, 214, 34,\n\t\t81, 155, 50, 118, 109, 193, 125, 25, 152, 125, 77, 139, 223,\n\t\t98, 241, 84, 151, 109, 157, 47, 71, 173, 47, 131, 172, 15,\n\t\t138, 58, 183, 180, 59, 160, 124, 162, 29, 13, 91, 57, 186,\n\t\t211, 124, 222, 160, 203, 49, 233, 140, 195, 212, 12, 22, 129,\n\t\t220, 144, 81, 23, 232, 141, 109, 238, 99, 130, 251, 117, 122,\n\t\t142, 83, 155, 201, 39, 1, 216, 69, 77, 126, 226, 25, 225,\n\t\t132, 143, 47, 167, 209, 137, 79, 219, 248, 204, 13, 11, 105,\n\t\t81, 77, 235, 56, 21, 125, 39, 112, 239, 174, 53, 87, 12, 132,\n\t\t92, 123, 187, 114, 144, 5, 233, 102, 91, 204, 139, 97, 149,\n\t\t213, 244, 144, 54, 108, 189, 152, 109, 9, 80, 236, 97, 75,\n\t\t236, 3, 228, 231, 244, 229, 89, 210, 179, 193, 172, 186, 158,\n\t\t173, 87, 195, 152, 179, 85, 131, 22, 160, 213, 23, 22, 247,\n\t\t56, 122, 208, 41, 188, 200, 92, 207, 145, 152, 220, 35, 58,\n\t\t143, 31, 87, 192, 177, 197, 208, 92, 6, 162, 160, 209, 142,\n\t\t27, 159, 177, 95, 107, 8, 83, 98, 207, 136, 36, 195, 131,\n\t\t237, 48, 45, 195, 44, 208, 29, 179, 114, 158, 96, 87, 173,\n\t\t177, 65, 130, 1, 41, 155, 23, 152, 45, 32, 17, 180, 251, 194,\n\t\t122, 198, 218, 133, 1, 9, 14, 129, 21, 118, 160, 115, 232,\n\t\t236, 95, 229, 47, 18, 173, 7, 41, 58, 49, 253, 242, 20, 125,\n\t\t92, 131, 47, 124, 230, 16, 93, 55, 141, 44, 26, 187, 163,\n\t\t170, 166, 80, 64, 53, 232, 174, 178, 29, 182, 206, 175, 176,\n\t\t216, 149, 155, 9, 74, 129, 190, 235, 178, 108, 161, 248, 26,\n\t\t115, 210, 101, 238, 175, 162, 67, 238, 162, 120, 240, 187,\n\t\t73, 184, 146, 38, 104, 106, 120, 139, 237, 235, 66, 59, 18,\n\t\t189, 108, 37, 146, 38, 16, 182, 84, 57, 139, 22, 71, 32, 126,\n\t\t219, 161, 165, 237, 150, 151, 106, 37, 77, 118, 160, 41, 28,\n\t\t18, 92, 102, 202, 6, 42, 173, 202, 242, 97, 230, 0, 43, 231,\n\t\t27, 56, 242, 90, 233, 34, 36, 31, 186, 189, 33, 50, 18, 251,\n\t\t157, 85, 46, 16, 3, 62, 187, 38, 0, 198, 39, 43, 202, 38,\n\t\t13, 166, 225, 201, 104, 102, 91, 81, 109, 147, 224, 23, 46,\n\t\t109, 90, 171, 95, 196, 1, 199, 17, 149, 174, 218, 30, 233,\n\t\t24, 50, 126, 80, 208, 19, 188, 131, 105, 43, 77, 162, 149,\n\t\t27, 71, 138, 117, 86, 103, 181, 37, 216, 128, 1, 86, 190,\n\t\t74, 74, 219, 252, 121, 132, 79, 223, 168, 216, 92, 154, 24,\n\t\t12, 60, 116, 177, 198, 173, 78, 83, 218, 48, 113, 101, 255,\n\t\t193, 20, 40, 134, 181, 169, 47, 188, 8, 117, 139, 58, 132,\n\t\t244, 103, 205, 204, 33, 29, 255, 199, 53, 182, 238, 210, 22,\n\t\t210, 48, 7, 184, 248, 120, 117, 133, 24, 244, 41, 183, 168,\n\t\t200, 102, 126, 126, 159, 48, 108, 161, 159, 58, 161, 64, 199,\n\t\t180, 94, 80, 25, 99, 18, 117, 29, 244, 174, 125, 11, 182,\n\t\t136, 249, 31, 116, 121, 170, 140, 229, 13, 12, 170, 101, 134,\n\t\t64, 179, 67, 2, 228, 43, 7, 91, 204, 18, 223, 62, 188, 99,\n\t\t59, 18, 218, 129, 154, 25, 39, 101, 91, 237, 105, 211, 216,\n\t\t213, 248, 187, 88, 71, 178, 151, 161, 47, 245, 167, 108, 216,\n\t\t168, 248, 38, 166, 1, 226, 220, 84, 200, 134, 158, 118, 195,\n\t\t2, 9, 105, 106, 251, 73, 3, 207, 214, 97, 54, 129, 151, 142,\n\t\t172, 209, 250, 129, 204, 20, 134, 90, 37, 209, 148, 112, 72,\n\t\t46, 179, 24, 77, 27, 144, 62, 98, 31, 148, 105, 118, 157,\n\t\t192, 157, 137, 76, 232, 80, 2, 10, 104, 215, 61, 219, 92,\n\t\t18, 221, 178, 120, 47, 56, 157, 190, 122, 78, 216, 34, 195,\n\t\t182, 45, 251, 193, 164, 128, 222, 201, 219, 181, 8, 249, 21,\n\t\t164, 162, 112, 201, 75, 194, 55, 140, 174, 142, 191, 88, 169,\n\t\t170, 143, 238, 60, 179, 83, 162, 30, 224, 160, 38, 221, 172,\n\t\t208, 29, 234, 247, 53, 78, 69, 211, 158, 53, 252, 78, 103,\n\t\t82, 69, 240, 81, 19, 214, 16, 244, 130, 237, 171, 192, 207,\n\t\t54, 77, 98, 13, 130, 210, 37, 205, 19, 12, 55, 118, 88, 243,\n\t\t225, 5, 40, 93, 57, 111, 73, 204, 35, 195, 179, 12, 203, 96,\n\t\t144, 146, 104, 99, 169, 180, 128, 75, 51, 179, 19, 164, 220,\n\t\t173, 237, 48, 179, 96, 179, 139, 49, 61, 215, 206, 114, 6,\n\t\t69, 93, 187, 4, 102, 113, 187, 152, 110, 104, 102, 216, 201,\n\t\t179, 166, 177, 9, 155, 218, 138, 115, 29, 225, 159, 134, 200,\n\t\t236, 63, 155, 242, 105, 157, 103, 62, 174, 129, 148, 8, 139,\n\t\t142, 97, 2, 82, 113, 68, 235, 13, 202, 139, 56, 94, 196, 144,\n\t\t170, 122, 91, 199, 170, 164, 192, 225, 22, 7, 147, 110, 37,\n\t\t79, 112, 91, 108, 240, 242, 214, 174, 51, 65, 90, 82, 177,\n\t\t233, 232, 170, 191, 76, 219, 240, 56, 66, 61, 115, 248, 148,\n\t\t78, 145, 129, 253, 141, 105, 191, 224, 198, 50, 87, 140, 197,\n\t\t202, 235, 212, 6, 164, 176, 178, 92, 145, 82, 80, 93, 0, 150,\n\t\t199, 28, 202, 251, 44, 243, 84, 167, 59, 154, 89, 148, 112,\n\t\t146, 223, 3, 162, 177, 2, 127, 186, 32, 70, 169, 48, 240,\n\t\t245, 92, 129, 22, 114, 34, 172, 155, 135, 193, 65, 12, 24,\n\t\t20, 237, 116, 76, 176, 230, 158, 97, 237, 154, 165, 96, 99,\n\t\t41, 174, 97, 19, 168, 14, 126, 65, 109, 165, 222, 193, 196,\n\t\t155, 106, 201, 244, 16, 143, 159, 64, 144, 224, 38, 112, 28,\n\t\t46, 255, 49, 232, 99, 227, 106, 7, 238, 111, 118, 157, 174,\n\t\t113, 107, 88, 117, 229, 182, 63, 111, 135, 224, 109, 227,\n\t\t129, 61, 9, 197, 118, 22, 209, 158, 149, 234, 204, 176, 16,\n\t\t202, 238, 56, 77, 72, 154, 65, 209, 116, 93, 45, 247, 137,\n\t\t10, 177, 146, 22, 251, 212, 126, 202, 4, 232, 80, 142, 117,\n\t\t195, 141, 22, 40, 104, 29, 162, 175, 114, 210, 54, 62, 22,\n\t\t65, 235, 245, 162, 114, 243, 93, 237, 24, 92, 231, 136, 169,\n\t\t233, 136, 132, 8, 240, 138, 101, 120, 144, 77, 73, 111, 208,\n\t\t3, 45, 239, 33, 4, 142, 66, 41, 242, 204, 213, 133, 119, 251,\n\t\t116, 162, 255, 223, 190, 249, 17, 245, 130, 39, 105, 110,\n\t\t231, 111, 209, 87, 70, 65, 161, 61, 203, 15, 151, 55, 207,\n\t\t12, 158, 46, 46, 186, 182, 25, 12, 82, 70, 45, 131, 132, 148,\n\t\t94, 146, 221, 138, 81, 127, 57, 78, 27, 254, 169, 85, 103,\n\t\t31, 128, 118, 88, 108, 103, 113, 161, 163, 69, 98, 52, 216,\n\t\t12, 210, 237, 213, 28, 2, 242, 65, 233, 168, 118, 241, 40,\n\t\t235, 58, 80, 18, 181, 109, 97, 79, 235, 12, 213, 205, 103,\n\t\t194, 209, 180, 130, 11, 117, 93, 65, 129, 130, 187, 65, 61,\n\t\t70, 107, 22, 122, 153, 147, 197, 244, 166, 221, 47, 237, 136,\n\t\t4, 237, 105, 99, 91, 90, 87, 211, 173, 176, 170, 95, 91, 134,\n\t\t217, 142, 55, 163, 89, 49, 48, 165, 138, 29, 102, 121, 57,\n\t\t103, 81, 154, 208, 212, 215, 166, 34, 221, 95, 89, 252, 235,\n\t\t241, 134, 132, 18, 54, 245, 14, 20, 70, 159, 193, 193, 236,\n\t\t76, 91, 130, 94, 152, 249, 216, 6, 178, 31, 178, 147, 68,\n\t\t231, 132, 115, 97, 205, 225, 197, 155, 151, 144, 89, 37, 135,\n\t\t63, 69, 25, 128, 146, 69, 174, 25, 26, 10, 55, 50, 11, 251,\n\t\t114, 155, 65, 5, 238, 26, 96, 30, 174, 102, 146, 152, 4, 177,\n\t\t156, 86, 147, 78, 202, 170, 52, 132, 53, 212, 237, 189, 107,\n\t\t116, 138, 9, 195, 16, 171, 28, 121, 33, 242, 176, 152, 59,\n\t\t130, 87, 237, 102, 92, 102, 177, 202, 54, 241, 184, 42, 128,\n\t\t206, 166, 145, 193, 115, 249, 193, 205, 156, 215, 253, 28,\n\t\t74, 15, 200, 125, 244, 221, 57, 210, 198, 14, 184, 117, 55,\n\t\t181, 64, 56, 139, 139, 193, 22, 66, 125, 39, 51, 72, 236,\n\t\t10, 83, 105, 141, 189, 88, 215, 53, 174, 131, 145, 244, 193,\n\t\t7, 12, 114, 63, 232, 183, 153, 183, 51, 203, 50, 28, 100,\n\t\t126, 144, 93, 30, 38, 130, 200, 36, 4, 211, 220, 214, 186,\n\t\t128, 84, 33, 83, 78, 182, 105, 206, 194, 8, 190, 38, 73, 160,\n\t\t208, 15, 42, 1, 249, 8, 204, 179, 122, 0, 29, 62, 0, 68, 155,\n\t\t79, 228, 20, 76, 29, 162, 180, 65, 94, 106, 128, 165, 93,\n\t\t235, 25, 231, 244, 39, 237, 7, 130, 144, 116, 29, 245, 105,\n\t\t91, 28, 158, 148, 60, 174, 85, 142, 128, 217, 234, 81, 203,\n\t\t86, 20, 36, 56, 169, 229, 216, 28, 54, 153, 58, 233, 177,\n\t\t71, 153, 135, 23, 27, 81, 208, 73, 4, 245, 34, 200, 115, 46,\n\t\t243, 180, 85, 193, 85, 235, 157, 109, 66, 65, 249, 162, 64,\n\t\t159, 76, 90, 169, 41, 220, 186, 119, 64, 89, 16, 16, 241,\n\t\t193, 112, 75, 229, 113, 45, 62, 112, 98, 166, 206, 183, 165,\n\t\t72, 169, 217, 37, 244, 53, 106, 85, 201, 149, 14, 238, 244,\n\t\t107, 153, 159, 52, 48, 209, 135, 237, 164, 64, 231, 203, 14,\n\t\t90, 90, 243, 2, 226, 236, 19, 126, 16, 120, 145, 117, 70,\n\t\t94, 204, 227, 12, 223, 22, 159, 146, 52, 157, 244, 112, 73,\n\t\t41, 4, 123, 235, 172, 223, 205, 117, 232, 166, 61, 155, 188,\n\t\t4, 195, 241, 157, 17, 137, 143, 97, 56, 109, 222, 58, 185,\n\t\t150, 38, 220, 208, 107, 154, 45, 73, 162, 167, 173, 124, 69,\n\t\t120, 165, 116, 20, 154, 169, 85, 65, 9, 212, 101, 189, 26,\n\t\t134, 189, 237, 93, 114, 40, 172, 211, 231, 243, 19, 255, 183,\n\t\t95, 231, 151, 63, 62, 36, 30, 165, 159, 191, 159, 105, 145,\n\t\t25, 159, 172, 173, 169, 140, 88, 97, 59, 50, 201, 136, 122,\n\t\t124, 253, 240, 110, 177, 15, 231, 186, 178, 178, 181, 6, 8,\n\t\t4, 78, 229, 231, 191, 139, 53, 117, 179, 155, 11, 93, 234,\n\t\t233, 81, 77, 18, 225, 42, 237, 219, 69, 201, 159, 209, 74,\n\t\t111, 119, 180, 223, 181, 115, 67, 46, 239, 26, 131, 246, 122,\n\t\t67, 43, 121, 230, 27, 211, 128, 222, 232, 215, 137, 181, 76,\n\t\t164, 245, 62, 241, 229, 61, 240, 189, 52, 51, 215, 224, 194,\n\t\t150, 98, 114, 97, 114, 34, 48, 67, 126, 240, 4, 175, 13, 138,\n\t\t23, 62, 68, 33, 29, 158, 216, 51, 36, 176, 63, 86, 62, 121,\n\t\t151, 208, 107, 6, 191, 17, 53, 164, 179, 174, 78, 123, 44,\n\t\t71, 61, 27, 185, 123, 74, 204, 201, 77, 166, 47, 239, 77,\n\t\t137, 3, 52, 179, 139, 151, 217, 225, 126, 234, 26, 158, 77,\n\t\t166, 245, 96, 30, 170, 40, 2, 146, 90, 139, 203, 79, 231,\n\t\t214, 219, 255, 254, 254, 246, 243, 215, 63, 223, 126, 126,\n\t\t127, 63, 62, 204, 175, 15, 232, 253, 121, 32, 152, 36, 102,\n\t\t218, 154, 152, 224, 59, 52, 230, 138, 140, 100, 198, 48, 94,\n\t\t181, 28, 156, 202, 37, 255, 121, 183, 210, 253, 92, 108, 223,\n\t\t202, 213, 75, 29, 249, 238, 249, 118, 167, 127, 31, 215, 80,\n\t\t60, 93, 180, 224, 26, 199, 50, 143, 17, 195, 184, 35, 205,\n\t\t141, 19, 158, 23, 89, 125, 55, 55, 199, 115, 193, 205, 216,\n\t\t97, 24, 123, 92, 79, 85, 173, 50, 140, 15, 190, 190, 220,\n\t\t215, 189, 187, 10, 177, 16, 243, 211, 103, 255, 127, 179,\n\t\t1, 167, 231, 23, 163, 61, 66, 188, 54, 56, 94, 134, 70, 200,\n\t\t105, 193, 187, 21, 44, 146, 22, 43, 209, 58, 143, 43, 39,\n\t\t191, 110, 181, 223, 67, 14, 18, 149, 143, 125, 167, 159, 144,\n\t\t31, 225, 49, 145, 191, 55, 225, 147, 211, 138, 39, 12, 199,\n\t\t189, 159, 62, 235, 135, 251, 206, 119, 230, 76, 13, 249, 166,\n\t\t127, 184, 161, 21, 220, 232, 198, 118, 95, 124, 187, 90, 162,\n\t\t127, 31, 87, 190, 167, 16, 246, 223, 247, 144, 88, 214, 178,\n\t\t180, 99, 81, 140, 29, 192, 66, 168, 95, 63, 220, 48, 8, 23,\n\t\t9, 198, 241, 167, 104, 187, 215, 31, 235, 223, 251, 122, 74,\n\t\t60, 133, 79, 189, 212, 194, 223, 27, 28, 50, 114, 119, 123,\n\t\t254, 235, 207, 240, 148, 199, 53, 246, 196, 174, 178, 234,\n\t\t148, 92, 146, 253, 82, 94, 85, 54, 61, 189, 64, 119, 37, 145,\n\t\t103, 119, 56, 119, 100, 202, 237, 96, 64, 222, 79, 115, 237,\n\t\t185, 228, 134, 123, 208, 222, 42, 135, 82, 82, 243, 123, 211,\n\t\t245, 142, 39, 136, 178, 129, 8, 202, 243, 8, 62, 183, 77,\n\t\t155, 70, 74, 25, 48, 23, 129, 176, 137, 64, 135, 231, 191,\n\t\t156, 158, 63, 56, 59, 50, 9, 191, 213, 170, 95, 44, 21, 227,\n\t\t33, 130, 39, 251, 25, 152, 74, 51, 74, 20, 173, 176, 6, 210,\n\t\t124, 124, 255, 6, 231, 225, 59, 127, 178, 242, 152, 251, 229,\n\t\t253, 133, 105, 80, 238, 139, 232, 205, 25, 24, 45, 42, 210,\n\t\t75, 112, 80, 76, 210, 207, 252, 239, 251, 126, 46, 218, 159,\n\t\t190, 209, 50, 169, 176, 159, 107, 188, 63, 149, 157, 191,\n\t\t249, 84, 62, 207, 185, 255, 255, 231, 7, 228, 197, 252, 211,\n\t\t247, 195, 252, 50, 39, 102, 68, 159, 92, 187, 39, 117, 55,\n\t\t100, 99, 148, 98, 224, 200, 165, 237, 60, 95, 158, 226, 13,\n\t\t68, 137, 129, 218, 219, 94, 174, 65, 80, 162, 78, 9, 75, 85,\n\t\t182, 239, 85, 15, 176, 228, 179, 21, 17, 132, 42, 207, 62,\n\t\t247, 117, 77, 42, 28, 179, 118, 117, 50, 152, 36, 23, 84,\n\t\t236, 240, 98, 204, 65, 80, 117, 217, 168, 27, 210, 128, 114,\n\t\t214, 129, 39, 162, 203, 79, 193, 187, 201, 154, 82, 22, 97,\n\t\t53, 93, 221, 83, 153, 73, 176, 33, 178, 63, 177, 253, 159,\n\t\t170, 60, 174, 165, 213, 191, 68, 237, 147, 187, 255, 247,\n\t\t169, 125, 232, 71, 223, 163, 246, 9, 157, 140, 133, 66, 123,\n\t\t92, 145, 23, 174, 160, 157, 3, 115, 162, 80, 46, 237, 198,\n\t\t60, 205, 215, 115, 87, 188, 11, 246, 212, 13, 11, 0, 100,\n\t\t131, 11, 6, 92, 227, 80, 229, 216, 103, 242, 139, 150, 169,\n\t\t127, 227, 227, 4, 145, 55, 237, 124, 27, 82, 236, 186, 112,\n\t\t133, 199, 199, 53, 49, 91, 109, 44, 124, 202, 165, 56, 17,\n\t\t194, 128, 87, 203, 41, 82, 165, 150, 13, 17, 221, 156, 130,\n\t\t101, 111, 210, 157, 32, 194, 138, 21, 140, 106, 202, 219,\n\t\t174, 70, 192, 162, 148, 205, 246, 226, 114, 96, 110, 31, 83,\n\t\t120, 47, 26, 34, 85, 84, 51, 196, 23, 184, 219, 227, 90, 114,\n\t\t102, 254, 114, 70, 53, 230, 185, 199, 134, 98, 18, 31, 64,\n\t\t223, 82, 188, 219, 81, 15, 247, 225, 2, 209, 149, 217, 87,\n\t\t164, 54, 95, 40, 213, 32, 203, 185, 101, 251, 36, 166, 221,\n\t\t218, 82, 96, 202, 118, 141, 65, 88, 51, 62, 144, 34, 186,\n\t\t45, 63, 88, 136, 205, 149, 91, 136, 156, 16, 103, 65, 216,\n\t\t167, 140, 37, 203, 141, 80, 119, 133, 94, 3, 58, 225, 7, 2,\n\t\t228, 231, 175, 191, 190, 253, 241, 190, 207, 227, 35, 132,\n\t\t107, 254, 36, 94, 56, 74, 134, 111, 237, 46, 208, 240, 71,\n\t\t236, 198, 197, 41, 46, 10, 119, 175, 92, 242, 31, 94, 141,\n\t\t200, 245, 109, 102, 133, 159, 106, 160, 226, 62, 86, 206,\n\t\t186, 124, 209, 204, 93, 196, 151, 184, 31, 158, 219, 212,\n\t\t135, 126, 250, 86, 254, 85, 156, 188, 173, 119, 87, 238, 209,\n\t\t55, 55, 166, 5, 135, 236, 136, 193, 91, 25, 155, 230, 173,\n\t\t90, 57, 156, 62, 187, 224, 131, 80, 244, 233, 46, 22, 7, 78,\n\t\t155, 212, 205, 122, 170, 157, 232, 153, 177, 13, 87, 233,\n\t\t153, 60, 246, 22, 140, 130, 179, 95, 144, 188, 233, 195, 112,\n\t\t205, 143, 82, 84, 68, 239, 79, 56, 3, 221, 88, 242, 207, 53,\n\t\t125, 184, 239, 145, 86, 198, 227, 90, 98, 255, 111, 200, 199,\n\t\t127, 32, 148, 46, 223, 149, 74, 143, 107, 162, 54, 110, 126,\n\t\t6, 175, 228, 176, 174, 109, 189, 8, 61, 44, 159, 38, 123,\n\t\t199, 147, 63, 100, 85, 254, 165, 39, 6, 39, 202, 162, 78,\n\t\t114, 253, 134, 76, 218, 201, 39, 118, 162, 47, 210, 23, 76,\n\t\t170, 106, 174, 98, 148, 240, 7, 86, 128, 248, 248, 188, 55,\n\t\t115, 118, 121, 167, 183, 151, 106, 222, 197, 155, 222, 249,\n\t\t243, 101, 240, 199, 219, 151, 63, 191, 222, 223, 246, 249,\n\t\t219, 47, 191, 252, 246, 235, 7, 212, 130, 242, 169, 173, 83,\n\t\t92, 167, 61, 59, 185, 144, 152, 39, 52, 134, 209, 196, 214,\n\t\t239, 62, 49, 155, 34, 179, 63, 144, 180, 224, 118, 145, 29,\n\t\t155, 37, 45, 108, 36, 47, 112, 197, 185, 226, 146, 143, 136,\n\t\t66, 242, 156, 255, 78, 119, 139, 94, 40, 196, 42, 19, 8, 91,\n\t\t73, 86, 194, 9, 241, 92, 150, 230, 19, 135, 123, 195, 47,\n\t\t218, 179, 23, 17, 96, 149, 179, 239, 51, 100, 151, 235, 16,\n\t\t221, 200, 213, 60, 24, 7, 143, 105, 203, 72, 192, 213, 145,\n\t\t248, 200, 161, 250, 198, 120, 101, 89, 119, 235, 114, 153,\n\t\t204, 171, 49, 148, 55, 178, 4, 110, 117, 113, 181, 235, 233,\n\t\t190, 72, 174, 138, 3, 20, 45, 153, 150, 25, 231, 89, 126,\n\t\t179, 192, 85, 156, 70, 185, 108, 141, 97, 108, 201, 100, 33,\n\t\t123, 150, 164, 87, 226, 194, 234, 203, 214, 162, 171, 113,\n\t\t12, 92, 207, 228, 93, 163, 174, 245, 206, 8, 127, 202, 201,\n\t\t33, 54, 138, 143, 91, 45, 110, 12, 47, 71, 136, 189, 122,\n\t\t54, 94, 186, 235, 125, 141, 79, 116, 173, 51, 80, 164, 140,\n\t\t207, 69, 78, 102, 73, 15, 109, 94, 92, 88, 252, 144, 243,\n\t\t224, 136, 112, 57, 15, 79, 246, 224, 107, 213, 193, 62, 15,\n\t\t15, 151, 188, 12, 79, 241, 157, 134, 39, 142, 60, 158, 135,\n\t\t199, 42, 99, 120, 138, 192, 192, 124, 99, 120, 242, 26, 28,\n\t\t57, 173, 42, 167, 99, 28, 33, 195, 225, 232, 36, 95, 95, 198,\n\t\t164, 143, 110, 37, 23, 126, 1, 238, 106, 27, 148, 225, 122,\n\t\t243, 33, 126, 123, 80, 234, 24, 156, 172, 71, 211, 230, 211,\n\t\t145, 121, 25, 23, 153, 235, 167, 113, 41, 69, 61, 202, 50,\n\t\t46, 145, 118, 236, 186, 229, 52, 220, 40, 147, 108, 181, 46,\n\t\t47, 222, 93, 230, 131, 1, 239, 66, 178, 203, 168, 188, 229,\n\t\t185, 57, 142, 246, 163, 173, 249, 164, 201, 163, 206, 101,\n\t\t238, 33, 241, 75, 48, 127, 52, 63, 129, 20, 30, 169, 203,\n\t\t151, 81, 249, 196, 163, 27, 124, 50, 146, 93, 203, 170, 232,\n\t\t227, 123, 214, 247, 93, 22, 224, 111, 106, 45, 31, 45, 49,\n\t\t127, 30, 71, 80, 37, 38, 206, 160, 14, 224, 203, 44, 127,\n\t\t68, 210, 177, 104, 35, 153, 211, 71, 96, 61, 155, 157, 246,\n\t\t244, 125, 24, 122, 61, 185, 249, 12, 250, 189, 179, 38, 46,\n\t\t70, 119, 207, 226, 9, 147, 2, 174, 42, 121, 218, 164, 176,\n\t\t181, 176, 13, 225, 213, 192, 221, 228, 238, 149, 81, 227,\n\t\t165, 224, 115, 46, 198, 191, 255, 253, 85, 170, 85, 255, 125,\n\t\t104, 162, 64, 82, 151, 253, 241, 149, 57, 42, 146, 68, 83,\n\t\t240, 135, 99, 127, 42, 201, 199, 46, 181, 249, 223, 227, 252,\n\t\t57, 35, 75, 78, 63, 28, 12, 68, 46, 106, 154, 56, 209, 142,\n\t\t117, 66, 33, 127, 143, 61, 68, 62, 20, 233, 135, 125, 40,\n\t\t65, 14, 227, 202, 97, 74, 97, 147, 147, 150, 196, 112, 125,\n\t\t45, 216, 115, 165, 41, 104, 17, 174, 208, 14, 52, 3, 173,\n\t\t208, 70, 92, 142, 176, 246, 24, 105, 5, 61, 155, 30, 189,\n\t\t219, 7, 110, 4, 255, 123, 160, 17, 59, 181, 226, 192, 171,\n\t\t108, 120, 185, 213, 63, 250, 247, 211, 189, 231, 239, 127,\n\t\t223, 231, 215, 63, 230, 241, 129, 150, 162, 126, 128, 191,\n\t\t88, 195, 19, 75, 251, 239, 237, 220, 111, 152, 185, 172, 14,\n\t\t87, 133, 222, 108, 69, 16, 204, 105, 80, 26, 84, 45, 113,\n\t\t99, 30, 203, 223, 160, 31, 142, 178, 184, 171, 89, 95, 57,\n\t\t246, 51, 236, 147, 244, 203, 233, 46, 242, 132, 151, 187,\n\t\t90, 60, 152, 126, 48, 218, 81, 253, 123, 57, 118, 176, 143,\n\t\t39, 113, 34, 211, 0, 21, 57, 59, 231, 19, 143, 199, 53, 121,\n\t\t82, 86, 52, 19, 244, 144, 111, 249, 75, 84, 229, 127, 143,\n\t\t157, 217, 237, 138, 53, 1, 109, 59, 240, 98, 81, 128, 89,\n\t\t142, 29, 47, 166, 49, 59, 135, 40, 67, 213, 125, 227, 183,\n\t\t251, 185, 68, 250, 201, 114, 134, 244, 141, 128, 234, 195,\n\t\t29, 247, 67, 231, 254, 159, 127, 124, 253, 253, 203, 207,\n\t\t247, 175, 239, 31, 211, 24, 235, 39, 252, 10, 161, 114, 72,\n\t\t21, 117, 66, 19, 2, 149, 228, 98, 42, 146, 193, 209, 18, 239,\n\t\t115, 36, 37, 75, 215, 15, 181, 91, 201, 180, 202, 126, 213,\n\t\t250, 240, 51, 84, 22, 70, 254, 84, 147, 85, 193, 253, 158,\n\t\t106, 86, 62, 168, 227, 122, 222, 106, 112, 99, 226, 88, 63,\n\t\t65, 91, 148, 202, 168, 70, 142, 140, 204, 169, 92, 248, 215,\n\t\t84, 85, 126, 93, 152, 139, 129, 126, 157, 171, 20, 104, 44,\n\t\t15, 125, 176, 247, 213, 176, 219, 22, 107, 213, 47, 203, 170,\n\t\t101, 37, 250, 190, 193, 222, 183, 72, 86, 76, 139, 165, 174,\n\t\t2, 84, 214, 247, 13, 217, 170, 60, 213, 88, 127, 73, 45, 247,\n\t\t180, 39, 151, 192, 148, 73, 115, 175, 209, 213, 218, 56, 225,\n\t\t61, 48, 250, 123, 40, 36, 226, 171, 6, 87, 242, 90, 34, 121,\n\t\t209, 6, 205, 189, 82, 122, 189, 48, 38, 236, 104, 164, 100,\n\t\t229, 234, 82, 44, 81, 80, 98, 123, 228, 211, 135, 145, 70,\n\t\t153, 123, 238, 46, 10, 245, 153, 215, 205, 63, 164, 226, 106,\n\t\t20, 59, 134, 41, 231, 246, 64, 251, 75, 151, 136, 82, 95,\n\t\t114, 155, 123, 205, 142, 113, 161, 104, 67, 101, 124, 246,\n\t\t214, 92, 43, 189, 111, 12, 151, 18, 202, 38, 112, 180, 161,\n\t\t110, 209, 51, 51, 2, 103, 172, 149, 86, 217, 157, 23, 98,\n\t\t132, 127, 47, 50, 225, 68, 139, 73, 78, 240, 25, 75, 189,\n\t\t52, 23, 114, 43, 7, 239, 131, 149, 53, 131, 60, 186, 207,\n\t\t237, 50, 115, 119, 236, 108, 140, 162, 116, 240, 70, 220,\n\t\t11, 71, 57, 134, 16, 211, 22, 250, 112, 169, 15, 92, 207,\n\t\t232, 66, 24, 60, 56, 164, 65, 208, 227, 201, 244, 77, 141,\n\t\t59, 172, 57, 163, 45, 244, 61, 122, 38, 165, 225, 166, 144,\n\t\t253, 236, 19, 104, 161, 74, 100, 220, 111, 231, 75, 169, 53,\n\t\t7, 50, 185, 115, 37, 5, 27, 37, 179, 208, 205, 3, 35, 139,\n\t\t164, 206, 237, 225, 145, 103, 230, 171, 78, 29, 45, 185, 71,\n\t\t217, 231, 116, 140, 234, 98, 208, 135, 182, 28, 67, 103, 173,\n\t\t195, 187, 26, 134, 164, 66, 40, 13, 86, 82, 60, 233, 236,\n\t\t93, 170, 156, 133, 218, 93, 98, 242, 144, 210, 88, 185, 155,\n\t\t28, 252, 71, 3, 23, 93, 203, 141, 25, 36, 134, 96, 237, 23,\n\t\t234, 114, 1, 229, 19, 6, 208, 49, 92, 205, 245, 113, 141,\n\t\t101, 184, 68, 198, 68, 173, 46, 166, 49, 169, 17, 190, 246,\n\t\t84, 6, 147, 191, 209, 235, 200, 38, 149, 138, 68, 58, 122,\n\t\t38, 34, 228, 192, 17, 45, 168, 141, 157, 48, 212, 153, 219,\n\t\t249, 231, 82, 171, 101, 253, 189, 176, 239, 82, 253, 110,\n\t\t55, 184, 204, 115, 125, 60, 15, 143, 219, 241, 60, 60, 110,\n\t\t199, 243, 168, 38, 123, 77, 209, 99, 108, 18, 142, 158, 229,\n\t\t183, 61, 108, 120, 18, 255, 45, 241, 78, 51, 134, 125, 130,\n\t\t143, 107, 36, 3, 184, 180, 45, 180, 234, 234, 200, 179, 184,\n\t\t156, 98, 141, 91, 75, 46, 167, 193, 219, 149, 112, 213, 38,\n\t\t239, 122, 87, 0, 172, 184, 145, 30, 40, 156, 18, 50, 113,\n\t\t56, 190, 159, 249, 29, 138, 99, 238, 49, 82, 236, 139, 44,\n\t\t151, 236, 232, 133, 180, 128, 217, 20, 115, 16, 208, 24, 210,\n\t\t171, 67, 149, 193, 14, 85, 152, 5, 139, 11, 137, 86, 41, 79,\n\t\t196, 238, 123, 225, 97, 24, 37, 133, 88, 88, 9, 238, 173,\n\t\t15, 73, 116, 17, 158, 193, 211, 111, 147, 203, 108, 11, 88,\n\t\t209, 220, 211, 80, 98, 155, 141, 97, 221, 114, 147, 184, 181,\n\t\t200, 143, 13, 12, 245, 39, 124, 251, 177, 142, 50, 91, 118,\n\t\t137, 25, 229, 130, 43, 52, 229, 153, 76, 34, 177, 71, 44,\n\t\t243, 6, 159, 189, 19, 58, 142, 148, 92, 233, 36, 135, 210,\n\t\t112, 181, 38, 62, 8, 201, 149, 79, 51, 130, 227, 83, 196,\n\t\t50, 92, 77, 169, 51, 186, 89, 168, 49, 108, 195, 59, 101,\n\t\t156, 229, 232, 148, 178, 213, 206, 210, 97, 238, 86, 21, 191,\n\t\t221, 173, 46, 126, 188, 107, 101, 251, 53, 243, 135, 165,\n\t\t24, 99, 173, 51, 70, 225, 204, 224, 27, 209, 36, 163, 95,\n\t\t141, 46, 247, 33, 19, 135, 225, 101, 58, 147, 193, 116, 23,\n\t\t66, 74, 147, 106, 134, 18, 55, 250, 41, 73, 12, 122, 96, 72,\n\t\t105, 195, 243, 42, 243, 104, 242, 239, 90, 79, 143, 107, 12,\n\t\t201, 213, 168, 219, 94, 175, 244, 244, 16, 74, 84, 122, 98,\n\t\t79, 11, 157, 45, 163, 225, 132, 130, 49, 5, 55, 122, 77, 44,\n\t\t37, 67, 37, 147, 170, 5, 39, 92, 222, 12, 58, 85, 243, 148,\n\t\t202, 98, 218, 148, 86, 67, 139, 90, 59, 50, 56, 240, 250,\n\t\t185, 47, 76, 229, 73, 191, 126, 199, 23, 184, 45, 151, 167,\n\t\t178, 105, 61, 161, 147, 17, 23, 158, 180, 143, 190, 241, 89,\n\t\t98, 29, 72, 164, 111, 250, 120, 185, 245, 232, 241, 113, 37,\n\t\t169, 24, 254, 63, 246, 254, 52, 73, 114, 35, 201, 18, 199,\n\t\t191, 251, 41, 112, 1, 64, 108, 95, 100, 206, 16, 135, 200,\n\t\t50, 102, 149, 167, 52, 138, 201, 97, 144, 222, 61, 113, 250,\n\t\t191, 216, 83, 125, 106, 136, 112, 50, 146, 211, 242, 175,\n\t\t233, 223, 135, 18, 33, 51, 0, 56, 86, 91, 212, 116, 125, 111,\n\t\t14, 106, 253, 182, 41, 239, 98, 111, 137, 223, 230, 133, 31,\n\t\t54, 43, 17, 82, 112, 7, 226, 51, 169, 40, 219, 205, 148, 52,\n\t\t181, 69, 228, 196, 244, 216, 94, 119, 251, 133, 167, 238,\n\t\t250, 147, 158, 91, 227, 156, 234, 217, 213, 230, 165, 150,\n\t\t175, 54, 192, 139, 173, 147, 113, 57, 206, 45, 201, 174, 30,\n\t\t243, 204, 185, 222, 162, 175, 102, 51, 207, 31, 166, 60, 156,\n\t\t151, 150, 218, 228, 13, 132, 211, 161, 244, 152, 222, 94,\n\t\t178, 11, 194, 231, 43, 159, 38, 31, 20, 240, 232, 15, 157,\n\t\t229, 5, 93, 45, 36, 93, 218, 194, 148, 153, 216, 8, 190, 106,\n\t\t95, 117, 244, 21, 152, 141, 216, 126, 9, 9, 99, 188, 26, 108,\n\t\t75, 122, 241, 252, 68, 143, 121, 187, 241, 65, 122, 38, 47,\n\t\t228, 83, 244, 66, 244, 157, 76, 252, 146, 83, 152, 22, 241,\n\t\t52, 4, 189, 190, 224, 52, 212, 249, 136, 213, 119, 169, 182,\n\t\t195, 69, 47, 31, 216, 181, 199, 40, 35, 216, 178, 232, 7,\n\t\t143, 230, 41, 66, 86, 90, 116, 109, 45, 48, 193, 165, 199,\n\t\t240, 139, 158, 185, 235, 47, 118, 234, 235, 245, 135, 90,\n\t\t209, 196, 66, 179, 163, 103, 162, 115, 138, 172, 132, 41,\n\t\t131, 230, 121, 254, 18, 115, 69, 239, 4, 185, 68, 12, 126,\n\t\t233, 157, 199, 122, 211, 207, 115, 80, 126, 250, 249, 251,\n\t\t127, 156, 95, 94, 95, 127, 254, 246, 31, 223, 158, 20, 213,\n\t\t39, 170, 154, 24, 152, 136, 18, 42, 144, 165, 124, 2, 41,\n\t\t148, 5, 9, 45, 139, 208, 209, 165, 47, 78, 239, 46, 110, 76,\n\t\t152, 23, 129, 160, 152, 154, 110, 114, 86, 67, 229, 86, 208,\n\t\t199, 64, 199, 105, 96, 242, 155, 160, 135, 86, 203, 215, 98,\n\t\t208, 35, 89, 173, 154, 210, 186, 89, 61, 86, 82, 208, 52,\n\t\t243, 202, 242, 41, 213, 108, 154, 203, 99, 21, 100, 66, 76,\n\t\t128, 192, 135, 169, 43, 156, 233, 136, 204, 145, 98, 241,\n\t\t162, 62, 202, 64, 162, 170, 37, 75, 99, 191, 42, 144, 146,\n\t\t62, 231, 100, 118, 141, 22, 2, 14, 203, 239, 55, 252, 171,\n\t\t162, 129, 0, 171, 153, 232, 188, 68, 220, 239, 3, 152, 235,\n\t\t72, 121, 145, 193, 33, 73, 82, 132, 72, 140, 90, 10, 152,\n\t\t187, 129, 36, 48, 151, 50, 104, 104, 71, 251, 96, 42, 105,\n\t\t56, 206, 58, 54, 183, 57, 66, 110, 162, 213, 225, 56, 235,\n\t\t12, 240, 232, 129, 145, 181, 59, 0, 23, 138, 251, 92, 78,\n\t\t189, 238, 15, 62, 135, 168, 12, 236, 13, 70, 172, 173, 52,\n\t\t102, 193, 87, 168, 239, 60, 51, 105, 158, 33, 235, 40, 95,\n\t\t38, 177, 35, 135, 106, 64, 139, 210, 248, 118, 68, 129, 26,\n\t\t196, 215, 101, 6, 18, 225, 221, 190, 252, 251, 42, 219, 123,\n\t\t230, 111, 59, 254, 8, 158, 171, 5, 17, 22, 244, 139, 146,\n\t\t250, 93, 206, 141, 115, 38, 203, 126, 110, 252, 69, 127, 120,\n\t\t123, 233, 229, 253, 11, 89, 29, 132, 13, 224, 162, 249, 28,\n\t\t197, 32, 11, 101, 227, 149, 7, 120, 230, 135, 19, 135, 179,\n\t\t136, 186, 205, 134, 146, 46, 247, 75, 175, 182, 61, 79, 144,\n\t\t86, 93, 79, 249, 65, 10, 218, 117, 250, 239, 175, 255, 251,\n\t\t247, 47, 191, 62, 123, 51, 22, 197, 73, 147, 98, 95, 7, 232,\n\t\t33, 22, 41, 123, 117, 179, 38, 240, 48, 137, 183, 198, 189,\n\t\t26, 164, 1, 139, 107, 22, 198, 129, 131, 107, 85, 210, 66,\n\t\t100, 124, 197, 206, 180, 94, 158, 164, 71, 94, 237, 8, 111,\n\t\t99, 7, 244, 140, 55, 96, 1, 253, 149, 16, 238, 252, 249, 255,\n\t\t58, 132, 139, 48, 202, 159, 198, 112, 83, 56, 186, 181, 199,\n\t\t158, 116, 78, 69, 130, 107, 54, 21, 116, 141, 206, 17, 61,\n\t\t240, 202, 3, 204, 136, 228, 190, 254, 62, 220, 102, 254, 55,\n\t\t222, 108, 221, 131, 231, 202, 223, 87, 59, 176, 170, 244,\n\t\t63, 158, 251, 246, 18, 189, 16, 98, 186, 35, 92, 144, 250,\n\t\t250, 37, 221, 35, 106, 238, 188, 62, 85, 93, 29, 90, 212,\n\t\t14, 241, 176, 27, 64, 200, 92, 170, 22, 128, 87, 123, 181,\n\t\t157, 235, 15, 94, 82, 142, 165, 243, 44, 71, 181, 31, 121,\n\t\t147, 196, 15, 58, 83, 248, 136, 125, 145, 91, 22, 13, 31,\n\t\t91, 17, 7, 167, 8, 225, 1, 99, 93, 197, 243, 44, 110, 98,\n\t\t46, 132, 129, 189, 101, 3, 51, 215, 154, 171, 211, 210, 242,\n\t\t89, 8, 133, 122, 201, 96, 223, 100, 41, 41, 249, 2, 55, 171,\n\t\t27, 23, 184, 66, 110, 88, 160, 222, 242, 42, 219, 154, 168,\n\t\t88, 98, 146, 50, 139, 38, 249, 182, 113, 121, 154, 166, 157,\n\t\t27, 160, 95, 182, 51, 237, 177, 114, 73, 93, 43, 32, 174,\n\t\t77, 235, 193, 148, 7, 124, 156, 189, 180, 254, 61, 119, 31,\n\t\t25, 92, 190, 13, 196, 183, 45, 107, 86, 151, 75, 86, 145,\n\t\t91, 230, 186, 150, 51, 48, 165, 146, 169, 31, 65, 123, 53,\n\t\t120, 153, 32, 177, 126, 238, 26, 253, 250, 219, 254, 203,\n\t\t247, 241, 31, 95, 159, 146, 91, 75, 54, 12, 47, 87, 143, 2,\n\t\t12, 125, 14, 44, 183, 37, 133, 138, 181, 126, 177, 3, 90,\n\t\t27, 254, 128, 139, 68, 50, 147, 3, 96, 160, 201, 220, 11,\n\t\t8, 84, 96, 39, 72, 140, 114, 238, 13, 156, 148, 101, 240,\n\t\t206, 95, 187, 36, 59, 7, 33, 118, 77, 71, 120, 240, 118, 38,\n\t\t205, 26, 106, 181, 164, 135, 63, 252, 189, 199, 82, 223, 16,\n\t\t54, 44, 48, 119, 243, 144, 130, 7, 201, 69, 64, 9, 154, 243,\n\t\t168, 165, 74, 107, 47, 196, 67, 112, 156, 12, 45, 91, 171,\n\t\t21, 34, 135, 15, 55, 244, 47, 166, 141, 69, 209, 89, 171,\n\t\t189, 160, 23, 28, 198, 103, 235, 90, 184, 215, 52, 231, 185,\n\t\t201, 97, 109, 183, 70, 130, 226, 121, 186, 237, 190, 187,\n\t\t181, 61, 159, 47, 180, 127, 124, 35, 180, 50, 75, 59, 56,\n\t\t114, 137, 54, 51, 223, 108, 219, 245, 243, 188, 55, 207, 175,\n\t\t36, 100, 107, 197, 137, 194, 241, 108, 238, 115, 168, 220,\n\t\t111, 255, 241, 237, 151, 175, 63, 125, 251, 178, 255, 231,\n\t\t211, 112, 249, 1, 234, 124, 236, 69, 8, 127, 86, 14, 6, 94,\n\t\t116, 88, 77, 202, 181, 38, 234, 146, 126, 6, 36, 81, 93, 143,\n\t\t52, 128, 29, 174, 85, 193, 72, 235, 66, 204, 55, 1, 205, 60,\n\t\t43, 73, 231, 84, 129, 238, 72, 72, 194, 140, 99, 202, 174,\n\t\t239, 17, 245, 15, 200, 80, 36, 136, 240, 52, 136, 85, 72,\n\t\t205, 70, 233, 172, 250, 211, 147, 23, 168, 247, 229, 245,\n\t\t49, 88, 253, 170, 141, 154, 226, 90, 251, 76, 243, 129, 186,\n\t\t138, 199, 224, 27, 192, 103, 83, 4, 106, 120, 156, 210, 96,\n\t\t193, 43, 24, 0, 107, 210, 146, 191, 234, 22, 254, 115, 233,\n\t\t166, 91, 172, 202, 49, 125, 5, 239, 174, 59, 226, 189, 191,\n\t\t251, 2, 117, 108, 206, 62, 10, 78, 139, 187, 112, 17, 201,\n\t\t134, 138, 107, 90, 186, 213, 150, 36, 201, 154, 15, 76, 112,\n\t\t78, 70, 216, 28, 145, 47, 156, 28, 154, 23, 222, 254, 41,\n\t\t62, 167, 96, 243, 83, 100, 25, 153, 65, 214, 18, 160, 217,\n\t\t8, 40, 195, 151, 5, 43, 73, 213, 123, 52, 237, 83, 105, 185,\n\t\t89, 120, 19, 1, 17, 94, 3, 107, 195, 220, 176, 162, 25, 43,\n\t\t187, 36, 57, 181, 153, 14, 28, 26, 154, 226, 248, 208, 219,\n\t\t159, 62, 133, 107, 74, 219, 131, 20, 0, 239, 74, 206, 179,\n\t\t32, 31, 90, 229, 188, 241, 5, 4, 158, 163, 213, 36, 183, 185,\n\t\t28, 136, 72, 152, 3, 217, 173, 49, 35, 235, 153, 113, 116,\n\t\t187, 116, 84, 67, 186, 33, 24, 74, 212, 100, 169, 66, 227,\n\t\t131, 140, 208, 206, 29, 205, 170, 36, 136, 57, 178, 51, 1,\n\t\t212, 244, 81, 86, 196, 107, 229, 215, 21, 58, 79, 30, 228,\n\t\t172, 130, 122, 141, 6, 229, 188, 74, 18, 255, 184, 130, 147,\n\t\t8, 149, 249, 58, 16, 162, 30, 40, 66, 199, 51, 155, 10, 1,\n\t\t59, 201, 44, 120, 63, 43, 137, 226, 198, 1, 148, 57, 117,\n\t\t163, 215, 117, 44, 219, 104, 11, 179, 195, 141, 4, 201, 107,\n\t\t215, 21, 154, 64, 24, 16, 179, 81, 168, 11, 148, 163, 158,\n\t\t2, 76, 29, 90, 0, 98, 244, 222, 84, 253, 9, 113, 41, 78, 73,\n\t\t135, 143, 28, 32, 199, 148, 38, 169, 173, 1, 16, 42, 146,\n\t\t157, 100, 210, 124, 78, 163, 241, 229, 239, 95, 126, 125,\n\t\t182, 168, 159, 16, 100, 47, 145, 193, 88, 230, 90, 2, 68,\n\t\t9, 103, 186, 89, 97, 191, 51, 35, 87, 45, 13, 166, 151, 51,\n\t\t161, 215, 173, 92, 93, 182, 206, 74, 222, 21, 137, 33, 73,\n\t\t218, 58, 91, 69, 173, 244, 215, 140, 238, 194, 1, 71, 141,\n\t\t167, 107, 246, 183, 200, 12, 158, 70, 237, 71, 110, 250, 246,\n\t\t146, 33, 254, 100, 177, 136, 117, 251, 75, 1, 204, 167, 68,\n\t\t221, 215, 167, 72, 232, 219, 75, 170, 80, 90, 113, 235, 217,\n\t\t133, 81, 68, 40, 100, 223, 84, 5, 183, 93, 254, 224, 223,\n\t\t87, 221, 177, 83, 246, 235, 57, 175, 31, 142, 190, 251, 77,\n\t\t118, 222, 223, 26, 255, 10, 202, 71, 223, 186, 166, 50, 195,\n\t\t169, 172, 117, 252, 113, 97, 5, 25, 169, 152, 174, 61, 183,\n\t\t97, 140, 94, 123, 130, 145, 65, 60, 111, 75, 4, 3, 232, 122,\n\t\t223, 128, 135, 43, 80, 162, 218, 29, 83, 253, 184, 172, 12,\n\t\t239, 18, 222, 57, 61, 24, 89, 21, 77, 205, 126, 22, 112, 23,\n\t\t67, 45, 125, 119, 242, 162, 78, 244, 141, 151, 81, 56, 127,\n\t\t192, 57, 181, 251, 35, 252, 33, 226, 73, 151, 212, 88, 172,\n\t\t244, 166, 10, 192, 130, 140, 8, 23, 55, 101, 213, 191, 13,\n\t\t2, 141, 17, 161, 215, 48, 8, 215, 102, 88, 185, 149, 135,\n\t\t21, 115, 41, 138, 149, 54, 175, 193, 218, 234, 129, 97, 201,\n\t\t239, 110, 193, 158, 205, 17, 171, 186, 177, 101, 142, 118,\n\t\t93, 158, 18, 161, 48, 57, 186, 107, 216, 42, 69, 108, 51,\n\t\t144, 255, 126, 148, 147, 158, 35, 253, 74, 189, 57, 37, 215,\n\t\t182, 128, 180, 87, 163, 235, 185, 183, 235, 39, 144, 78, 112,\n\t\t179, 190, 148, 35, 231, 162, 133, 33, 77, 30, 42, 12, 104,\n\t\t76, 241, 195, 130, 24, 31, 186, 55, 197, 243, 0, 161, 168,\n\t\t74, 245, 35, 147, 114, 144, 185, 169, 200, 128, 233, 195,\n\t\t86, 93, 147, 15, 90, 225, 102, 133, 72, 28, 157, 138, 218,\n\t\t176, 198, 139, 13, 102, 21, 24, 220, 87, 252, 174, 27, 244,\n\t\t3, 26, 101, 68, 167, 177, 58, 246, 102, 235, 1, 29, 103, 52,\n\t\t193, 170, 106, 130, 149, 32, 168, 40, 129, 82, 85, 233, 76,\n\t\t203, 6, 66, 45, 182, 174, 151, 214, 192, 242, 43, 199, 79,\n\t\t122, 191, 255, 26, 109, 100, 89, 87, 224, 229, 79, 14, 91,\n\t\t111, 185, 254, 239, 110, 72, 95, 155, 125, 163, 182, 172,\n\t\t238, 223, 70, 84, 239, 29, 248, 252, 169, 59, 3, 33, 14, 138,\n\t\t46, 19, 130, 247, 143, 29, 126, 65, 63, 204, 79, 71, 36, 245,\n\t\t73, 175, 48, 100, 141, 213, 206, 170, 30, 233, 32, 95, 99,\n\t\t220, 47, 220, 88, 113, 49, 198, 247, 82, 31, 32, 37, 58, 180,\n\t\t43, 171, 249, 170, 155, 109, 172, 19, 97, 54, 195, 169, 233,\n\t\t243, 114, 177, 22, 195, 236, 215, 38, 167, 172, 96, 27, 83,\n\t\t0, 224, 69, 175, 239, 206, 159, 226, 199, 14, 57, 173, 158,\n\t\t67, 63, 66, 68, 22, 115, 171, 57, 124, 88, 5, 28, 151, 87,\n\t\t207, 76, 12, 243, 59, 122, 17, 44, 59, 153, 116, 144, 141,\n\t\t179, 146, 254, 23, 11, 129, 38, 122, 244, 181, 114, 161, 111,\n\t\t101, 255, 2, 76, 225, 54, 131, 89, 241, 54, 221, 244, 67,\n\t\t68, 192, 188, 189, 196, 234, 143, 186, 197, 88, 161, 61, 11,\n\t\t108, 138, 170, 233, 17, 6, 229, 212, 101, 224, 173, 247, 160,\n\t\t156, 247, 226, 252, 203, 231, 84, 196, 233, 96, 112, 211,\n\t\t22, 92, 24, 132, 50, 234, 113, 185, 15, 73, 2, 243, 226, 44,\n\t\t116, 159, 147, 134, 140, 251, 175, 223, 255, 249, 236, 129,\n\t\t107, 127, 158, 196, 234, 165, 44, 100, 170, 143, 240, 104,\n\t\t203, 112, 1, 74, 154, 150, 225, 91, 141, 187, 247, 125, 235,\n\t\t68, 17, 238, 224, 47, 115, 80, 231, 200, 218, 73, 237, 77,\n\t\t76, 73, 25, 253, 65, 204, 88, 114, 251, 141, 20, 169, 197,\n\t\t18, 4, 217, 216, 209, 212, 242, 176, 138, 53, 239, 226, 185,\n\t\t163, 136, 235, 2, 184, 220, 56, 237, 216, 151, 62, 30, 146,\n\t\t50, 77, 75, 9, 3, 168, 37, 245, 92, 249, 146, 68, 9, 184,\n\t\t41, 51, 60, 198, 154, 62, 130, 130, 252, 195, 223, 87, 238,\n\t\t239, 31, 79, 164, 232, 127, 181, 95, 246, 143, 63, 93, 206,\n\t\t225, 145, 167, 115, 245, 239, 84, 81, 250, 17, 183, 208, 166,\n\t\t206, 150, 164, 72, 5, 30, 1, 228, 48, 26, 143, 18, 124, 201,\n\t\t209, 1, 35, 49, 197, 229, 232, 150, 137, 100, 124, 173, 209,\n\t\t96, 236, 98, 213, 70, 23, 127, 213, 237, 244, 40, 92, 158,\n\t\t90, 32, 12, 234, 17, 181, 76, 61, 245, 205, 202, 172, 125,\n\t\t56, 128, 249, 174, 50, 61, 215, 35, 188, 189, 76, 3, 168,\n\t\t162, 190, 20, 62, 121, 105, 99, 69, 199, 152, 210, 162, 241,\n\t\t187, 196, 156, 18, 20, 175, 26, 230, 96, 50, 31, 178, 142,\n\t\t1, 73, 126, 68, 29, 190, 74, 0, 135, 252, 219, 224, 192, 39,\n\t\t134, 157, 144, 18, 124, 161, 89, 65, 49, 233, 190, 96, 93,\n\t\t0, 221, 57, 62, 230, 227, 115, 253, 249, 239, 223, 126, 253,\n\t\t250, 247, 239, 255, 245, 52, 21, 250, 211, 84, 104, 86, 27,\n\t\t93, 219, 225, 81, 69, 90, 135, 33, 113, 172, 250, 236, 110,\n\t\t194, 67, 218, 203, 228, 184, 148, 192, 93, 0, 105, 57, 54,\n\t\t227, 21, 165, 176, 212, 197, 119, 131, 76, 4, 196, 99, 188,\n\t\t148, 49, 237, 254, 48, 66, 130, 181, 60, 232, 162, 143, 55,\n\t\t25, 220, 55, 216, 83, 213, 112, 22, 120, 205, 5, 94, 89, 68,\n\t\t16, 170, 248, 22, 194, 32, 197, 156, 217, 43, 28, 31, 64,\n\t\t43, 240, 44, 227, 19, 99, 202, 168, 232, 194, 18, 146, 210,\n\t\t109, 81, 109, 103, 162, 140, 158, 43, 212, 178, 40, 121, 5,\n\t\t197, 111, 152, 216, 124, 87, 111, 165, 2, 85, 87, 179, 180,\n\t\t190, 216, 137, 39, 215, 176, 192, 12, 254, 196, 64, 247, 169,\n\t\t223, 117, 211, 43, 222, 47, 78, 230, 143, 48, 138, 22, 161,\n\t\t156, 211, 194, 128, 152, 7, 73, 12, 54, 41, 236, 16, 55, 234,\n\t\t85, 201, 38, 100, 202, 178, 48, 151, 89, 122, 24, 100, 10,\n\t\t129, 209, 77, 14, 129, 45, 70, 86, 13, 121, 55, 160, 27, 138,\n\t\t74, 161, 111, 207, 24, 154, 154, 71, 254, 131, 15, 213, 232,\n\t\t150, 188, 5, 183, 116, 181, 81, 62, 174, 27, 128, 117, 170,\n\t\t170, 35, 212, 75, 101, 102, 144, 24, 108, 239, 44, 10, 130,\n\t\t217, 47, 21, 120, 145, 33, 42, 134, 211, 138, 169, 26, 140,\n\t\t65, 58, 119, 196, 85, 30, 71, 157, 47, 47, 77, 89, 31, 103,\n\t\t144, 1, 3, 20, 198, 2, 91, 114, 228, 141, 130, 153, 195, 164,\n\t\t101, 5, 58, 192, 90, 176, 124, 243, 84, 54, 150, 209, 99,\n\t\t228, 18, 89, 77, 128, 11, 166, 22, 133, 128, 248, 182, 245,\n\t\t109, 104, 104, 20, 45, 233, 103, 36, 75, 187, 158, 207, 178,\n\t\t117, 148, 235, 170, 40, 104, 15, 171, 106, 92, 20, 137, 4,\n\t\t109, 88, 165, 85, 89, 88, 40, 54, 42, 131, 199, 226, 126,\n\t\t230, 235, 25, 224, 137, 250, 40, 53, 68, 121, 218, 104, 225,\n\t\t32, 25, 246, 156, 245, 211, 182, 11, 210, 171, 104, 28, 175,\n\t\t239, 24, 199, 229, 49, 243, 215, 177, 172, 8, 211, 94, 210,\n\t\t22, 12, 235, 10, 19, 103, 76, 75, 65, 172, 114, 78, 28, 130,\n\t\t2, 81, 91, 34, 157, 219, 122, 15, 62, 237, 2, 11, 180, 54,\n\t\t248, 250, 34, 78, 174, 151, 73, 49, 253, 28, 255, 81, 135,\n\t\t56, 43, 39, 117, 226, 61, 48, 237, 237, 181, 201, 53, 160,\n\t\t111, 108, 248, 163, 170, 239, 31, 249, 54, 22, 214, 177, 136,\n\t\t129, 105, 86, 25, 74, 242, 28, 189, 167, 61, 118, 17, 147,\n\t\t45, 135, 103, 95, 158, 101, 130, 246, 112, 74, 42, 134, 230,\n\t\t99, 17, 154, 173, 203, 236, 3, 220, 5, 118, 137, 226, 139,\n\t\t7, 46, 228, 96, 238, 221, 199, 255, 65, 123, 72, 235, 221,\n\t\t134, 221, 195, 56, 253, 22, 128, 25, 193, 40, 101, 42, 201,\n\t\t104, 30, 6, 96, 79, 115, 35, 155, 5, 109, 65, 216, 115, 137,\n\t\t118, 62, 233, 15, 90, 133, 242, 135, 151, 95, 96, 117, 229,\n\t\t21, 76, 223, 21, 187, 234, 126, 189, 25, 97, 78, 46, 8, 89,\n\t\t42, 4, 204, 148, 166, 83, 203, 130, 255, 202, 127, 114, 59,\n\t\t175, 227, 137, 151, 175, 49, 169, 56, 49, 122, 155, 133, 161,\n\t\t140, 187, 43, 217, 213, 112, 107, 245, 216, 222, 207, 6, 145,\n\t\t72, 23, 20, 53, 53, 97, 182, 108, 248, 181, 83, 93, 1, 89,\n\t\t194, 184, 140, 204, 181, 228, 8, 2, 11, 135, 5, 246, 212,\n\t\t203, 207, 52, 135, 5, 129, 159, 55, 30, 11, 234, 20, 238,\n\t\t55, 131, 204, 23, 190, 156, 245, 82, 6, 131, 173, 164, 153,\n\t\t131, 120, 206, 12, 147, 85, 243, 102, 200, 190, 87, 180, 33,\n\t\t85, 21, 138, 173, 24, 250, 170, 152, 81, 122, 83, 35, 160,\n\t\t228, 122, 97, 6, 227, 182, 231, 245, 13, 134, 84, 36, 8, 121,\n\t\t215, 85, 75, 111, 170, 193, 83, 107, 193, 112, 105, 137, 219,\n\t\t92, 33, 22, 96, 105, 32, 125, 62, 203, 183, 46, 136, 89, 100,\n\t\t48, 186, 118, 49, 214, 214, 205, 155, 87, 74, 163, 70, 202,\n\t\t23, 43, 147, 120, 68, 161, 1, 82, 66, 75, 58, 162, 73, 65,\n\t\t70, 151, 226, 99, 215, 254, 91, 93, 127, 237, 117, 83, 183,\n\t\t214, 28, 94, 250, 150, 188, 60, 121, 212, 46, 112, 225, 134,\n\t\t202, 232, 150, 144, 80, 27, 111, 89, 131, 54, 1, 77, 15, 81,\n\t\t222, 77, 98, 14, 106, 39, 175, 1, 101, 254, 99, 235, 18, 115,\n\t\t61, 211, 223, 100, 124, 16, 198, 116, 231, 117, 37, 212, 187,\n\t\t133, 75, 1, 91, 22, 154, 64, 125, 145, 43, 46, 159, 189, 35,\n\t\t173, 207, 116, 213, 14, 223, 15, 119, 110, 121, 123, 162,\n\t\t140, 213, 181, 119, 187, 246, 158, 206, 10, 17, 208, 219,\n\t\t133, 196, 68, 207, 143, 84, 83, 232, 90, 164, 70, 104, 99,\n\t\t92, 191, 228, 162, 254, 77, 209, 79, 229, 71, 112, 48, 222,\n\t\t233, 17, 118, 9, 233, 54, 173, 123, 255, 136, 84, 75, 165,\n\t\t217, 82, 116, 211, 7, 102, 41, 157, 181, 132, 82, 50, 219,\n\t\t69, 151, 191, 133, 254, 114, 211, 161, 106, 34, 72, 222, 106,\n\t\t45, 143, 145, 55, 192, 9, 99, 189, 5, 231, 216, 187, 81, 247,\n\t\t135, 71, 214, 136, 10, 38, 15, 76, 118, 178, 1, 146, 158,\n\t\t202, 223, 189, 233, 91, 248, 155, 214, 144, 128, 74, 65, 184,\n\t\t132, 119, 145, 190, 171, 80, 187, 204, 22, 3, 255, 124, 183,\n\t\t24, 241, 152, 103, 83, 173, 162, 193, 63, 216, 127, 93, 139,\n\t\t150, 118, 84, 226, 121, 210, 48, 11, 67, 100, 233, 180, 210,\n\t\t64, 134, 139, 217, 105, 57, 53, 226, 223, 10, 254, 159, 141,\n\t\t96, 142, 26, 85, 41, 5, 167, 22, 130, 34, 109, 123, 49, 153,\n\t\t190, 24, 149, 179, 229, 100, 204, 47, 186, 44, 132, 4, 138,\n\t\t176, 1, 106, 31, 163, 226, 90, 63, 127, 33, 139, 171, 60,\n\t\t32, 33, 196, 78, 157, 145, 126, 50, 198, 118, 134, 76, 29,\n\t\t112, 120, 155, 116, 149, 107, 248, 220, 113, 89, 80, 116,\n\t\t200, 47, 87, 170, 2, 58, 155, 100, 201, 35, 24, 152, 46, 97,\n\t\t206, 12, 105, 91, 191, 40, 51, 138, 36, 77, 124, 27, 204,\n\t\t126, 137, 134, 160, 103, 110, 237, 100, 78, 208, 58, 128,\n\t\t239, 139, 177, 80, 72, 248, 77, 109, 29, 230, 234, 90, 230,\n\t\t47, 161, 43, 235, 70, 198, 53, 108, 78, 44, 159, 248, 133,\n\t\t187, 171, 173, 95, 53, 9, 129, 190, 112, 226, 41, 216, 220,\n\t\t225, 144, 89, 130, 160, 155, 214, 199, 174, 79, 155, 46, 148,\n\t\t231, 30, 108, 241, 187, 189, 211, 66, 180, 145, 219, 18, 176,\n\t\t50, 24, 148, 112, 92, 162, 128, 209, 220, 138, 106, 179, 45,\n\t\t79, 185, 133, 176, 164, 213, 193, 93, 96, 240, 70, 122, 242,\n\t\t197, 181, 74, 240, 93, 115, 14, 39, 89, 97, 177, 55, 202,\n\t\t59, 157, 4, 156, 190, 91, 162, 229, 132, 61, 229, 251, 93,\n\t\t231, 24, 209, 9, 37, 1, 39, 140, 58, 170, 18, 114, 70, 131,\n\t\t229, 80, 16, 186, 161, 174, 117, 87, 36, 6, 91, 32, 11, 81,\n\t\t116, 52, 71, 136, 156, 167, 217, 7, 54, 122, 12, 6, 94, 211,\n\t\t84, 5, 239, 67, 205, 168, 198, 52, 79, 156, 17, 13, 199, 95,\n\t\t125, 114, 89, 90, 107, 152, 111, 169, 44, 4, 71, 140, 89,\n\t\t212, 206, 190, 223, 123, 181, 49, 105, 212, 48, 43, 120, 37,\n\t\t249, 164, 183, 81, 150, 65, 175, 182, 217, 5, 63, 58, 91,\n\t\t18, 40, 170, 94, 166, 209, 168, 75, 13, 155, 74, 187, 94,\n\t\t105, 206, 77, 63, 83, 20, 59, 242, 42, 200, 87, 235, 125,\n\t\t233, 2, 54, 106, 135, 68, 192, 245, 11, 8, 132, 168, 98, 204,\n\t\t41, 96, 105, 168, 101, 177, 36, 55, 252, 85, 39, 48, 82, 9,\n\t\t93, 33, 141, 89, 75, 45, 206, 197, 238, 74, 169, 216, 249,\n\t\t106, 253, 138, 146, 19, 168, 253, 1, 172, 210, 156, 253, 24,\n\t\t114, 2, 152, 163, 92, 183, 67, 130, 132, 18, 159, 55, 79,\n\t\t184, 6, 69, 104, 193, 19, 62, 156, 83, 154, 139, 154, 54,\n\t\t72, 254, 195, 221, 215, 235, 10, 167, 170, 41, 251, 72, 53,\n\t\t148, 183, 23, 97, 171, 142, 222, 29, 241, 54, 246, 171, 186,\n\t\t176, 95, 87, 249, 160, 50, 143, 107, 106, 94, 66, 154, 240,\n\t\t66, 84, 236, 151, 142, 65, 203, 226, 71, 0, 135, 191, 126,\n\t\t121, 242, 224, 125, 249, 115, 103, 118, 156, 211, 99, 75,\n\t\t179, 211, 167, 240, 114, 130, 39, 17, 114, 16, 191, 187, 166,\n\t\t118, 129, 206, 120, 219, 99, 206, 135, 31, 81, 80, 77, 53,\n\t\t69, 182, 49, 1, 182, 106, 101, 175, 158, 171, 187, 131, 161,\n\t\t6, 103, 81, 19, 99, 228, 211, 236, 140, 40, 253, 53, 46, 244,\n\t\t99, 150, 76, 224, 160, 41, 109, 123, 137, 192, 188, 57, 226,\n\t\t220, 124, 23, 154, 20, 179, 159, 108, 19, 42, 4, 81, 218,\n\t\t238, 1, 175, 101, 9, 141, 69, 146, 231, 245, 187, 176, 27,\n\t\t82, 5, 144, 154, 143, 117, 251, 16, 29, 191, 27, 112, 77,\n\t\t137, 7, 179, 154, 2, 83, 45, 220, 81, 55, 3, 126, 21, 127,\n\t\t249, 94, 20, 121, 113, 15, 221, 64, 191, 119, 94, 28, 25,\n\t\t216, 237, 164, 198, 151, 3, 111, 47, 179, 233, 47, 64, 236,\n\t\t201, 50, 245, 19, 33, 230, 56, 185, 232, 133, 219, 125, 196,\n\t\t168, 148, 128, 33, 211, 8, 129, 226, 72, 250, 242, 78, 52,\n\t\t82, 3, 21, 19, 20, 180, 70, 117, 41, 153, 166, 0, 44, 25,\n\t\t194, 216, 201, 121, 22, 201, 213, 110, 232, 122, 114, 36,\n\t\t223, 60, 100, 90, 30, 222, 41, 115, 64, 111, 11, 211, 28,\n\t\t117, 147, 89, 195, 55, 84, 4, 126, 144, 19, 253, 237, 231,\n\t\t223, 190, 254, 250, 243, 215, 223, 246, 175, 255, 245, 203,\n\t\t249, 253, 215, 103, 50, 206, 242, 140, 210, 101, 73, 28, 169,\n\t\t197, 195, 165, 190, 133, 54, 151, 220, 36, 200, 192, 115,\n\t\t188, 204, 17, 154, 42, 84, 129, 128, 194, 199, 94, 143, 12,\n\t\t44, 128, 114, 52, 212, 22, 250, 132, 250, 164, 251, 30, 33,\n\t\t252, 36, 161, 194, 185, 35, 197, 0, 7, 62, 160, 35, 98, 57,\n\t\t28, 186, 180, 28, 13, 21, 35, 245, 72, 49, 231, 251, 28, 5,\n\t\t45, 70, 201, 64, 43, 41, 35, 172, 80, 67, 131, 129, 215, 143,\n\t\t210, 160, 74, 204, 139, 1, 196, 56, 175, 142, 118, 4, 149,\n\t\t118, 62, 150, 138, 200, 190, 59, 66, 69, 57, 156, 159, 119,\n\t\t206, 50, 238, 75, 7, 55, 101, 174, 113, 218, 94, 173, 30,\n\t\t177, 87, 33, 41, 76, 154, 86, 224, 142, 144, 61, 144, 120,\n\t\t128, 70, 98, 71, 82, 56, 160, 145, 1, 251, 179, 185, 130,\n\t\t186, 219, 144, 144, 202, 52, 69, 85, 217, 82, 148, 194, 52,\n\t\t159, 50, 222, 6, 47, 147, 43, 50, 224, 67, 168, 91, 243, 71,\n\t\t242, 193, 75, 44, 170, 102, 4, 15, 74, 155, 195, 52, 30, 190,\n\t\t52, 153, 170, 174, 72, 114, 67, 43, 208, 16, 60, 42, 204,\n\t\t246, 50, 231, 59, 148, 209, 185, 76, 212, 42, 31, 227, 51,\n\t\t202, 157, 90, 173, 136, 154, 212, 38, 153, 252, 9, 80, 47,\n\t\t241, 40, 177, 109, 1, 241, 97, 33, 155, 79, 185, 222, 134,\n\t\t143, 40, 137, 219, 128, 67, 133, 204, 170, 126, 148, 217,\n\t\t159, 233, 240, 41, 101, 219, 71, 98, 85, 173, 8, 158, 206,\n\t\t133, 52, 6, 137, 197, 231, 210, 100, 6, 202, 251, 4, 127,\n\t\t164, 128, 2, 190, 122, 180, 234, 253, 219, 75, 145, 202, 225,\n\t\t13, 47, 24, 226, 216, 107, 60, 28, 162, 141, 57, 32, 159,\n\t\t244, 200, 1, 117, 224, 53, 28, 33, 137, 199, 55, 148, 42,\n\t\t241, 201, 8, 137, 53, 155, 62, 138, 158, 132, 199, 182, 112,\n\t\t228, 156, 43, 48, 144, 115, 140, 50, 156, 230, 53, 122, 201,\n\t\t219, 203, 236, 164, 28, 11, 222, 190, 247, 114, 7, 210, 146,\n\t\t84, 26, 110, 83, 188, 102, 47, 8, 239, 184, 111, 79, 120,\n\t\t85, 201, 141, 236, 205, 243, 192, 128, 159, 219, 37, 241,\n\t\t136, 186, 217, 208, 93, 242, 244, 5, 97, 101, 158, 61, 143,\n\t\t232, 233, 111, 47, 177, 228, 195, 213, 176, 197, 57, 7, 122,\n\t\t25, 169, 28, 1, 181, 104, 190, 29, 78, 124, 207, 189, 133,\n\t\t36, 144, 102, 192, 250, 152, 234, 85, 145, 252, 159, 220,\n\t\t80, 222, 226, 147, 71, 178, 46, 250, 123, 174, 186, 115, 208,\n\t\t165, 122, 180, 146, 162, 237, 151, 185, 95, 145, 231, 56,\n\t\t71, 97, 234, 88, 188, 91, 14, 25, 64, 155, 193, 87, 208, 53,\n\t\t132, 154, 18, 15, 220, 16, 96, 232, 61, 227, 107, 178, 63,\n\t\t124, 4, 152, 133, 63, 170, 207, 77, 98, 99, 168, 191, 69,\n\t\t113, 99, 248, 60, 136, 53, 190, 255, 252, 219, 151, 239, 79,\n\t\t242, 227, 9, 223, 247, 34, 63, 200, 110, 147, 226, 96, 152,\n\t\t123, 47, 154, 171, 16, 24, 106, 245, 161, 163, 136, 82, 241,\n\t\t105, 243, 125, 175, 157, 218, 162, 170, 208, 32, 105, 218,\n\t\t188, 145, 145, 164, 45, 166, 71, 108, 78, 192, 209, 68, 14,\n\t\t19, 144, 33, 201, 127, 247, 108, 169, 238, 113, 169, 237,\n\t\t34, 229, 3, 211, 74, 66, 53, 49, 186, 180, 79, 93, 45, 168,\n\t\t171, 85, 140, 125, 17, 47, 8, 219, 24, 86, 117, 152, 211,\n\t\t12, 133, 117, 91, 242, 146, 1, 41, 198, 198, 134, 88, 219,\n\t\t122, 161, 61, 166, 199, 30, 155, 59, 188, 38, 33, 107, 138,\n\t\t32, 225, 142, 229, 148, 249, 255, 125, 207, 26, 199, 142,\n\t\t42, 248, 163, 42, 154, 69, 117, 108, 141, 115, 79, 245, 24,\n\t\t199, 125, 137, 192, 148, 136, 26, 153, 13, 214, 118, 180,\n\t\t113, 153, 195, 32, 31, 88, 152, 31, 157, 173, 148, 140, 0,\n\t\t250, 129, 42, 56, 223, 139, 253, 183, 146, 44, 172, 38, 73,\n\t\t99, 5, 195, 242, 68, 4, 213, 144, 69, 3, 83, 188, 3, 125,\n\t\t123, 234, 10, 190, 119, 20, 251, 90, 108, 7, 240, 135, 155,\n\t\t71, 172, 210, 155, 203, 208, 75, 222, 44, 241, 29, 217, 58,\n\t\t86, 47, 65, 5, 156, 158, 96, 101, 108, 99, 113, 9, 13, 187,\n\t\t98, 41, 128, 250, 57, 141, 174, 203, 196, 196, 199, 88, 167,\n\t\t134, 98, 89, 228, 160, 102, 96, 148, 139, 17, 232, 66, 190,\n\t\t19, 98, 59, 105, 16, 31, 64, 94, 206, 133, 207, 81, 110, 178,\n\t\t115, 191, 60, 135, 123, 191, 90, 237, 17, 96, 54, 231, 191,\n\t\t85, 185, 22, 22, 237, 187, 218, 36, 250, 149, 23, 255, 175,\n\t\t83, 240, 105, 188, 103, 219, 22, 35, 97, 162, 99, 49, 201,\n\t\t129, 187, 229, 244, 118, 77, 112, 86, 109, 33, 211, 140, 75,\n\t\t115, 24, 137, 2, 66, 181, 70, 125, 208, 89, 169, 104, 129,\n\t\t106, 39, 13, 128, 84, 0, 219, 235, 90, 83, 225, 54, 131, 80,\n\t\t220, 139, 165, 8, 249, 40, 73, 38, 240, 1, 244, 168, 22, 151,\n\t\t100, 95, 172, 92, 155, 101, 132, 162, 97, 197, 232, 130, 74,\n\t\t155, 227, 230, 182, 102, 97, 64, 25, 234, 220, 47, 34, 66,\n\t\t134, 219, 96, 213, 84, 251, 85, 125, 4, 190, 76, 125, 91,\n\t\t194, 1, 131, 148, 58, 180, 68, 173, 224, 37, 25, 106, 186,\n\t\t149, 192, 0, 221, 223, 143, 108, 21, 3, 83, 157, 109, 192,\n\t\t62, 13, 160, 95, 79, 83, 7, 132, 87, 40, 208, 7, 165, 127,\n\t\t129, 11, 154, 245, 111, 143, 55, 169, 112, 83, 21, 91, 167,\n\t\t90, 49, 159, 184, 206, 252, 46, 198, 23, 102, 220, 187, 187,\n\t\t89, 198, 126, 100, 3, 6, 238, 189, 238, 197, 220, 15, 20,\n\t\t104, 29, 159, 24, 53, 203, 50, 124, 12, 16, 239, 158, 252,\n\t\t2, 115, 246, 105, 227, 235, 28, 160, 199, 78, 38, 246, 176,\n\t\t64, 56, 181, 88, 6, 68, 45, 197, 54, 104, 103, 144, 255, 2,\n\t\t88, 108, 76, 5, 91, 40, 243, 98, 254, 47, 123, 218, 164, 5,\n\t\t50, 143, 91, 1, 96, 222, 66, 156, 214, 164, 52, 253, 231,\n\t\t30, 146, 63, 226, 104, 52, 107, 44, 217, 79, 117, 110, 219,\n\t\t87, 64, 124, 183, 189, 203, 164, 36, 113, 236, 229, 180, 121,\n\t\t224, 14, 83, 43, 24, 246, 242, 125, 57, 205, 28, 146, 154,\n\t\t92, 7, 139, 105, 128, 120, 159, 250, 131, 110, 238, 222, 181,\n\t\t163, 163, 172, 210, 35, 27, 99, 15, 73, 19, 136, 2, 192, 49,\n\t\t247, 8, 30, 86, 169, 117, 173, 10, 21, 95, 142, 178, 197,\n\t\t169, 255, 140, 200, 172, 81, 154, 255, 41, 227, 108, 37, 153,\n\t\t217, 194, 148, 237, 78, 210, 199, 130, 164, 63, 103, 113,\n\t\t14, 237, 90, 217, 179, 218, 209, 146, 28, 48, 249, 232, 223,\n\t\t130, 149, 70, 254, 122, 43, 51, 118, 82, 240, 153, 104, 252,\n\t\t249, 75, 59, 89, 43, 121, 91, 126, 89, 84, 43, 131, 225, 237,\n\t\t37, 118, 81, 236, 17, 227, 39, 125, 23, 146, 79, 117, 186,\n\t\t232, 50, 106, 238, 34, 45, 175, 26, 2, 248, 130, 134, 227,\n\t\t70, 204, 154, 101, 150, 57, 235, 98, 19, 169, 63, 165, 127,\n\t\t28, 2, 155, 187, 42, 192, 36, 70, 158, 69, 34, 96, 71, 167,\n\t\t74, 20, 43, 117, 11, 162, 242, 167, 195, 111, 49, 6, 169,\n\t\t39, 8, 10, 186, 176, 77, 163, 35, 33, 207, 83, 86, 104, 198,\n\t\t166, 9, 87, 31, 212, 125, 161, 241, 164, 211, 10, 179, 244,\n\t\t239, 109, 113, 232, 243, 111, 93, 190, 59, 25, 202, 129, 230,\n\t\t156, 190, 23, 189, 187, 203, 241, 191, 210, 49, 196, 111,\n\t\t219, 143, 124, 178, 56, 84, 93, 128, 131, 198, 51, 49, 170,\n\t\t37, 70, 213, 150, 3, 80, 37, 136, 36, 26, 158, 215, 202, 62,\n\t\t108, 156, 139, 66, 67, 95, 132, 190, 166, 106, 126, 33, 178,\n\t\t247, 216, 165, 230, 222, 179, 175, 101, 48, 206, 2, 9, 151,\n\t\t192, 38, 51, 55, 64, 37, 225, 45, 90, 123, 161, 250, 200,\n\t\t164, 207, 8, 129, 47, 211, 5, 12, 80, 154, 223, 73, 104, 208,\n\t\t92, 211, 40, 70, 147, 157, 97, 145, 32, 139, 240, 100, 252,\n\t\t42, 49, 185, 185, 38, 124, 170, 139, 126, 249, 231, 151, 183,\n\t\t239, 63, 127, 92, 96, 171, 251, 95, 11, 152, 236, 152, 3,\n\t\t42, 163, 128, 57, 118, 202, 37, 124, 174, 21, 84, 160, 56,\n\t\t82, 217, 195, 164, 42, 52, 26, 130, 48, 84, 105, 174, 170,\n\t\t249, 68, 1, 253, 102, 107, 95, 90, 142, 83, 209, 62, 29, 224,\n\t\t160, 35, 104, 52, 231, 246, 104, 228, 28, 135, 190, 31, 65,\n\t\t84, 169, 91, 77, 154, 246, 33, 48, 130, 142, 214, 21, 60,\n\t\t200, 34, 185, 88, 125, 244, 241, 192, 9, 108, 88, 57, 82,\n\t\t0, 25, 41, 3, 134, 249, 134, 68, 81, 54, 191, 121, 202, 235,\n\t\t61, 33, 56, 152, 182, 50, 45, 99, 21, 46, 141, 140, 111, 225,\n\t\t178, 191, 72, 83, 60, 178, 74, 220, 33, 160, 56, 85, 25, 37,\n\t\t252, 92, 61, 223, 180, 157, 125, 111, 71, 126, 168, 23, 120,\n\t\t236, 209, 114, 237, 184, 120, 180, 180, 198, 160, 8, 17, 59,\n\t\t146, 171, 233, 19, 148, 139, 246, 155, 74, 85, 59, 160, 85,\n\t\t163, 111, 183, 41, 163, 142, 176, 197, 60, 44, 148, 131, 116,\n\t\t91, 39, 153, 109, 190, 98, 32, 149, 250, 186, 251, 41, 30,\n\t\t183, 138, 153, 24, 92, 159, 6, 233, 148, 158, 184, 45, 61,\n\t\t56, 150, 160, 156, 87, 142, 205, 2, 103, 128, 35, 180, 73,\n\t\t169, 204, 156, 198, 96, 84, 202, 203, 203, 95, 197, 25, 139,\n\t\t59, 153, 83, 85, 202, 130, 125, 120, 123, 73, 49, 50, 50,\n\t\t48, 148, 182, 197, 150, 199, 114, 101, 239, 49, 143, 142,\n\t\t191, 105, 158, 82, 90, 43, 129, 173, 202, 116, 252, 190, 250,\n\t\t139, 235, 222, 178, 138, 114, 150, 103, 52, 78, 254, 88, 55,\n\t\t227, 157, 74, 205, 168, 178, 86, 78, 183, 160, 247, 99, 237,\n\t\t94, 193, 36, 250, 81, 53, 205, 57, 120, 51, 177, 178, 196,\n\t\t205, 103, 231, 27, 249, 14, 115, 74, 210, 138, 113, 109, 105,\n\t\t241, 154, 51, 35, 202, 242, 231, 100, 180, 203, 106, 32, 254,\n\t\t78, 241, 228, 125, 58, 225, 239, 223, 127, 127, 123, 123,\n\t\t154, 239, 227, 127, 93, 0, 60, 58, 6, 101, 188, 99, 77, 40,\n\t\t206, 207, 249, 213, 177, 159, 211, 17, 31, 41, 181, 59, 48,\n\t\t56, 31, 56, 33, 159, 17, 92, 196, 123, 19, 81, 255, 216, 231,\n\t\t88, 238, 119, 84, 71, 150, 222, 31, 184, 248, 211, 119, 122,\n\t\t124, 251, 231, 215, 239, 251, 227, 233, 173, 126, 178, 162,\n\t\t224, 105, 194, 111, 161, 167, 35, 141, 93, 52, 105, 173, 87,\n\t\t11, 92, 124, 89, 152, 217, 13, 188, 185, 246, 67, 6, 41, 221,\n\t\t149, 245, 3, 71, 221, 84, 77, 161, 221, 168, 195, 21, 251,\n\t\t131, 133, 120, 130, 7, 32, 87, 24, 127, 22, 39, 119, 53, 102,\n\t\t63, 198, 192, 3, 240, 41, 105, 24, 4, 41, 15, 168, 172, 143,\n\t\t70, 77, 198, 10, 54, 94, 116, 172, 106, 225, 77, 10, 20, 77,\n\t\t176, 184, 157, 123, 240, 155, 26, 214, 35, 147, 101, 75, 229,\n\t\t208, 180, 254, 80, 130, 164, 243, 197, 31, 109, 155, 194,\n\t\t99, 48, 252, 195, 103, 101, 131, 239, 0, 149, 3, 35, 162,\n\t\t115, 34, 15, 227, 231, 244, 13, 0, 6, 150, 79, 232, 16, 186,\n\t\t153, 234, 53, 53, 149, 114, 212, 65, 15, 65, 80, 67, 129,\n\t\t209, 24, 170, 36, 12, 110, 21, 201, 48, 31, 4, 233, 36, 229,\n\t\t62, 33, 235, 13, 107, 191, 80, 45, 247, 183, 17, 64, 202,\n\t\t133, 86, 46, 116, 90, 187, 105, 94, 206, 103, 139, 219, 214,\n\t\t15, 227, 253, 241, 246, 164, 12, 75, 147, 215, 201, 131, 154,\n\t\t120, 22, 62, 29, 115, 127, 59, 191, 140, 255, 216, 127, 251,\n\t\t246, 148, 86, 95, 205, 184, 116, 91, 242, 229, 158, 82, 123,\n\t\t236, 9, 192, 218, 169, 205, 193, 255, 246, 18, 97, 11, 116,\n\t\t167, 75, 73, 17, 201, 150, 78, 182, 110, 147, 85, 227, 14,\n\t\t161, 217, 79, 252, 190, 235, 65, 61, 125, 254, 116, 10, 217,\n\t\t79, 147, 102, 253, 60, 239, 249, 251, 207, 191, 125, 27, 127,\n\t\t128, 100, 221, 220, 15, 223, 214, 183, 186, 1, 151, 103, 88,\n\t\t8, 98, 179, 164, 97, 26, 22, 54, 74, 226, 73, 235, 77, 85,\n\t\t43, 129, 157, 80, 155, 94, 87, 29, 43, 234, 101, 88, 50, 83,\n\t\t48, 115, 233, 113, 87, 110, 72, 86, 235, 219, 145, 234, 30,\n\t\t123, 240, 247, 61, 180, 7, 163, 98, 119, 37, 53, 30, 84, 255,\n\t\t28, 173, 31, 219, 216, 109, 185, 151, 76, 10, 24, 20, 22,\n\t\t174, 243, 162, 243, 171, 140, 182, 204, 86, 89, 216, 207,\n\t\t221, 168, 55, 195, 131, 101, 39, 119, 31, 221, 81, 31, 65,\n\t\t166, 226, 41, 246, 185, 102, 153, 24, 79, 250, 165, 116, 87,\n\t\t103, 250, 177, 232, 37, 228, 123, 30, 72, 178, 191, 103, 213,\n\t\t49, 173, 226, 93, 126, 189, 239, 165, 170, 90, 31, 204, 198,\n\t\t178, 187, 94, 30, 64, 206, 153, 64, 147, 1, 197, 155, 249,\n\t\t114, 46, 61, 85, 182, 249, 246, 18, 138, 63, 204, 202, 184,\n\t\t123, 135, 152, 216, 250, 36, 46, 45, 150, 233, 33, 25, 176,\n\t\t204, 200, 11, 102, 120, 230, 181, 195, 143, 202, 160, 90,\n\t\t106, 50, 169, 207, 189, 208, 56, 69, 153, 75, 72, 234, 103,\n\t\t212, 164, 41, 179, 209, 76, 31, 101, 15, 168, 141, 189, 58,\n\t\t4, 221, 251, 64, 9, 4, 187, 48, 171, 105, 124, 88, 198, 14,\n\t\t79, 206, 22, 121, 21, 184, 97, 14, 37, 253, 32, 244, 37, 214,\n\t\t188, 151, 152, 194, 225, 17, 97, 105, 39, 163, 191, 10, 51,\n\t\t123, 34, 89, 69, 252, 121, 115, 212, 25, 14, 134, 216, 71,\n\t\t119, 141, 222, 179, 48, 106, 30, 177, 115, 162, 234, 14, 243,\n\t\t210, 121, 95, 29, 137, 188, 113, 183, 26, 152, 179, 174, 226,\n\t\t2, 220, 45, 42, 239, 164, 214, 35, 158, 209, 82, 90, 229,\n\t\t192, 237, 36, 107, 46, 254, 124, 58, 255, 127, 253, 250, 211,\n\t\t79, 223, 126, 219, 191, 156, 223, 190, 62, 41, 235, 237, 19,\n\t\t92, 225, 148, 192, 63, 51, 39, 240, 200, 70, 183, 86, 169,\n\t\t73, 84, 149, 180, 193, 28, 33, 10, 1, 192, 4, 41, 102, 93,\n\t\t91, 2, 62, 147, 80, 236, 64, 88, 46, 132, 102, 119, 225, 42,\n\t\t131, 49, 52, 87, 52, 39, 11, 173, 71, 238, 186, 207, 90, 11,\n\t\t227, 165, 190, 191, 152, 193, 173, 7, 228, 68, 103, 156, 138,\n\t\t166, 13, 49, 193, 128, 217, 167, 154, 47, 127, 131, 220, 145,\n\t\t30, 151, 210, 54, 38, 135, 59, 119, 192, 38, 20, 155, 113,\n\t\t238, 13, 96, 41, 216, 202, 71, 226, 127, 166, 45, 170, 32,\n\t\t28, 92, 171, 152, 145, 223, 212, 69, 199, 12, 13, 31, 203,\n\t\t17, 185, 146, 157, 209, 10, 88, 234, 81, 152, 251, 203, 124,\n\t\t69, 154, 166, 141, 22, 176, 209, 3, 158, 86, 20, 165, 213,\n\t\t38, 150, 58, 106, 217, 237, 93, 63, 75, 0, 146, 37, 11, 243,\n\t\t54, 8, 75, 2, 139, 76, 129, 177, 88, 66, 197, 3, 186, 1, 155,\n\t\t200, 216, 192, 235, 250, 81, 103, 103, 127, 127, 100, 216,\n\t\t201, 110, 197, 184, 205, 193, 199, 3, 145, 216, 222, 4, 22,\n\t\t241, 93, 215, 66, 171, 172, 69, 88, 110, 228, 85, 23, 162,\n\t\t29, 130, 10, 107, 194, 215, 192, 129, 60, 85, 47, 45, 54,\n\t\t187, 13, 194, 48, 144, 218, 154, 93, 167, 137, 55, 177, 190,\n\t\t219, 127, 123, 65, 132, 78, 32, 66, 245, 75, 165, 123, 46,\n\t\t31, 42, 42, 198, 229, 59, 9, 58, 161, 159, 249, 241, 43, 47,\n\t\t31, 233, 165, 1, 195, 71, 79, 231, 181, 249, 120, 174, 182,\n\t\t158, 245, 204, 106, 218, 197, 224, 245, 161, 177, 167, 208,\n\t\t138, 71, 37, 49, 225, 109, 36, 212, 172, 172, 18, 70, 203,\n\t\t73, 39, 131, 185, 176, 31, 139, 72, 210, 122, 5, 40, 19, 74,\n\t\t154, 234, 16, 217, 199, 255, 126, 46, 120, 130, 57, 52, 109,\n\t\t146, 62, 127, 187, 92, 172, 147, 56, 175, 108, 90, 55, 246,\n\t\t180, 233, 127, 76, 172, 117, 139, 59, 221, 224, 171, 184,\n\t\t129, 54, 191, 236, 86, 44, 45, 34, 135, 251, 166, 248, 59,\n\t\t83, 173, 67, 11, 179, 87, 170, 182, 150, 132, 100, 164, 245,\n\t\t110, 23, 160, 29, 27, 162, 79, 35, 244, 179, 1, 250, 174,\n\t\t137, 3, 55, 170, 86, 146, 94, 6, 197, 31, 14, 99, 59, 240,\n\t\t57, 119, 226, 79, 255, 120, 210, 21, 219, 51, 102, 247, 5,\n\t\t210, 253, 168, 62, 246, 45, 248, 126, 180, 88, 135, 59, 60,\n\t\t32, 52, 55, 7, 188, 81, 192, 21, 135, 232, 82, 153, 27, 49,\n\t\t196, 144, 166, 46, 16, 147, 175, 160, 196, 72, 45, 3, 154,\n\t\t236, 2, 158, 105, 23, 206, 131, 41, 89, 205, 134, 92, 11,\n\t\t16, 203, 148, 114, 132, 231, 76, 46, 71, 146, 96, 173, 49,\n\t\t165, 183, 151, 212, 202, 17, 90, 129, 45, 18, 67, 63, 221,\n\t\t225, 140, 222, 1, 193, 178, 146, 242, 125, 143, 62, 29, 174,\n\t\t198, 225, 143, 216, 162, 32, 215, 182, 35, 129, 63, 99, 234,\n\t\t92, 58, 177, 93, 201, 91, 152, 54, 80, 22, 74, 204, 92, 125,\n\t\t20, 107, 48, 129, 180, 54, 213, 67, 146, 4, 230, 240, 11,\n\t\t160, 127, 200, 229, 168, 192, 34, 142, 135, 23, 0, 220, 228,\n\t\t14, 31, 197, 222, 153, 31, 48, 246, 170, 152, 203, 211, 168,\n\t\t77, 18, 136, 232, 71, 247, 81, 66, 93, 66, 30, 224, 142, 154,\n\t\t226, 230, 43, 226, 246, 112, 126, 185, 154, 36, 234, 226,\n\t\t155, 80, 121, 246, 121, 66, 142, 71, 10, 226, 111, 153, 191,\n\t\t251, 214, 142, 136, 220, 199, 124, 212, 150, 197, 255, 6,\n\t\t108, 214, 41, 177, 192, 133, 1, 80, 134, 36, 112, 137, 177,\n\t\t117, 112, 26, 245, 144, 219, 29, 204, 67, 57, 222, 198, 156,\n\t\t21, 169, 122, 169, 253, 206, 2, 50, 149, 124, 235, 127, 122,\n\t\t96, 168, 89, 42, 89, 252, 0, 232, 220, 125, 173, 71, 79, 2,\n\t\t7, 84, 50, 96, 164, 131, 59, 34, 80, 157, 67, 58, 122, 41,\n\t\t3, 113, 106, 47, 208, 81, 169, 228, 249, 113, 221, 149, 128,\n\t\t145, 212, 115, 222, 66, 12, 115, 68, 97, 191, 212, 54, 90,\n\t\t62, 164, 198, 103, 147, 0, 76, 22, 160, 188, 90, 187, 56,\n\t\t148, 144, 119, 49, 167, 121, 201, 83, 236, 97, 200, 193, 65,\n\t\t151, 20, 154, 17, 46, 199, 218, 142, 88, 227, 218, 7, 60,\n\t\t138, 251, 220, 123, 56, 190, 255, 244, 237, 235, 47, 207,\n\t\t54, 84, 75, 79, 217, 92, 213, 84, 18, 184, 104, 67, 66, 154,\n\t\t150, 154, 26, 110, 83, 230, 110, 98, 175, 172, 208, 139, 30,\n\t\t186, 211, 213, 242, 32, 101, 243, 157, 212, 155, 15, 93, 69,\n\t\t239, 177, 170, 84, 77, 53, 24, 58, 199, 92, 90, 228, 158,\n\t\t157, 41, 129, 136, 151, 138, 58, 130, 148, 83, 85, 84, 224,\n\t\t119, 175, 82, 164, 251, 57, 177, 194, 96, 46, 146, 67, 233,\n\t\t109, 147, 146, 62, 172, 87, 30, 220, 102, 126, 234, 19, 231,\n\t\t238, 145, 182, 59, 141, 233, 183, 219, 75, 194, 39, 54, 146,\n\t\t41, 20, 205, 52, 139, 78, 150, 233, 229, 202, 73, 201, 172,\n\t\t164, 101, 172, 51, 194, 15, 199, 133, 238, 15, 164, 114, 64,\n\t\t72, 167, 126, 132, 173, 24, 24, 11, 118, 125, 18, 174, 89,\n\t\t208, 151, 102, 251, 149, 63, 218, 191, 131, 52, 215, 110,\n\t\t107, 228, 229, 66, 204, 79, 226, 128, 115, 160, 70, 16, 66,\n\t\t244, 21, 222, 93, 37, 139, 133, 185, 0, 194, 221, 228, 157,\n\t\t219, 72, 31, 226, 220, 109, 232, 58, 4, 41, 12, 15, 92, 103,\n\t\t80, 73, 247, 241, 231, 245, 195, 209, 235, 111, 131, 220,\n\t\t98, 110, 243, 240, 209, 37, 195, 100, 131, 83, 220, 187, 227,\n\t\t115, 75, 255, 159, 223, 127, 122, 138, 32, 55, 195, 155, 139,\n\t\t121, 138, 196, 114, 132, 51, 178, 249, 52, 80, 254, 64, 120,\n\t\t36, 159, 59, 64, 170, 69, 183, 125, 155, 26, 245, 22, 107,\n\t\t60, 1, 210, 34, 173, 61, 37, 198, 9, 244, 255, 188, 245, 50,\n\t\t141, 35, 84, 197, 204, 243, 239, 97, 174, 159, 111, 47, 49,\n\t\t123, 84, 227, 131, 104, 3, 204, 191, 153, 6, 70, 42, 91, 232,\n\t\t15, 60, 234, 237, 101, 10, 218, 28, 167, 5, 147, 128, 41,\n\t\t106, 150, 74, 200, 66, 176, 149, 239, 187, 220, 242, 115,\n\t\t111, 193, 175, 191, 237, 95, 254, 243, 235, 235, 31, 160,\n\t\t6, 180, 39, 232, 180, 107, 154, 26, 250, 173, 76, 53, 153,\n\t\t9, 164, 206, 74, 188, 246, 32, 97, 133, 100, 166, 215, 236,\n\t\t158, 251, 238, 231, 152, 126, 192, 4, 168, 107, 48, 204, 215,\n\t\t255, 176, 235, 30, 59, 38, 114, 131, 82, 247, 144, 222, 117,\n\t\t86, 69, 21, 46, 197, 100, 239, 254, 222, 53, 245, 248, 79,\n\t\t223, 169, 107, 81, 131, 190, 87, 12, 119, 245, 219, 63, 252,\n\t\t148, 106, 208, 47, 104, 49, 108, 132, 185, 92, 15, 193, 254,\n\t\t95, 126, 8, 206, 230, 67, 96, 41, 199, 240, 39, 15, 120, 247,\n\t\t247, 174, 54, 187, 21, 244, 57, 59, 99, 95, 23, 125, 124,\n\t\t192, 124, 172, 60, 160, 108, 205, 206, 98, 186, 51, 79, 246,\n\t\t82, 129, 6, 127, 55, 179, 242, 245, 126, 44, 188, 48, 79,\n\t\t54, 15, 104, 44, 116, 190, 58, 193, 195, 52, 179, 36, 56,\n\t\t213, 184, 116, 31, 200, 172, 133, 165, 67, 219, 34, 127, 95,\n\t\t72, 161, 114, 175, 7, 235, 69, 6, 43, 228, 88, 120, 162, 56,\n\t\t150, 244, 237, 132, 248, 110, 223, 210, 183, 161, 7, 106,\n\t\t254, 144, 138, 71, 203, 57, 81, 167, 200, 5, 217, 74, 243,\n\t\t203, 89, 47, 196, 173, 31, 246, 160, 14, 147, 34, 223, 197,\n\t\t120, 174, 225, 126, 181, 5, 162, 178, 55, 77, 185, 112, 164,\n\t\t38, 87, 49, 197, 210, 107, 98, 247, 52, 235, 211, 5, 119,\n\t\t109, 169, 215, 193, 224, 60, 229, 200, 99, 143, 141, 206,\n\t\t124, 103, 125, 105, 5, 89, 108, 221, 63, 24, 9, 183, 255,\n\t\t71, 99, 237, 255, 239, 179, 5, 243, 208, 102, 165, 62, 227,\n\t\t47, 78, 251, 183, 219, 75, 112, 254, 240, 72, 98, 46, 143,\n\t\t146, 46, 47, 248, 254, 107, 222, 191, 34, 225, 182, 198, 190,\n\t\t94, 114, 191, 188, 229, 254, 252, 154, 184, 247, 190, 222,\n\t\t108, 255, 248, 106, 251, 143, 69, 210, 211, 247, 76, 147,\n\t\t8, 177, 158, 255, 222, 235, 223, 254, 199, 223, 255, 179,\n\t\t165, 230, 247, 215, 39, 150, 209, 246, 132, 102, 119, 5, 231,\n\t\t68, 158, 130, 184, 37, 86, 209, 152, 142, 120, 35, 154, 78,\n\t\t226, 203, 205, 231, 222, 20, 77, 97, 106, 88, 121, 92, 203,\n\t\t125, 171, 213, 233, 153, 227, 81, 127, 19, 255, 250, 97, 241,\n\t\t113, 11, 186, 208, 105, 181, 10, 239, 224, 185, 87, 63, 183,\n\t\t221, 105, 77, 192, 108, 43, 158, 150, 160, 60, 162, 152, 234,\n\t\t247, 61, 196, 6, 254, 86, 75, 61, 84, 27, 55, 73, 86, 158,\n\t\t67, 254, 217, 86, 8, 13, 162, 7, 238, 10, 192, 249, 8, 22,\n\t\t1, 159, 38, 185, 136, 160, 246, 199, 127, 239, 218, 6, 239,\n\t\t56, 227, 247, 143, 23, 49, 231, 225, 193, 38, 27, 79, 244,\n\t\t224, 127, 178, 113, 183, 43, 200, 14, 206, 146, 147, 15, 23,\n\t\t240, 9, 90, 207, 115, 131, 6, 46, 54, 121, 213, 36, 79, 183,\n\t\t96, 166, 21, 22, 83, 240, 120, 177, 115, 223, 21, 143, 130,\n\t\t185, 48, 22, 79, 0, 139, 32, 52, 220, 172, 160, 29, 236, 112,\n\t\t250, 111, 204, 19, 2, 126, 8, 93, 25, 52, 130, 166, 7, 20,\n\t\t69, 239, 53, 2, 106, 140, 135, 174, 127, 71, 212, 82, 7, 73,\n\t\t124, 99, 90, 144, 61, 45, 118, 254, 172, 25, 142, 18, 53,\n\t\t174, 154, 216, 83, 156, 78, 200, 180, 242, 233, 240, 151,\n\t\t40, 25, 141, 154, 169, 198, 207, 116, 31, 145, 109, 22, 248,\n\t\t132, 186, 69, 173, 66, 201, 170, 223, 235, 254, 8, 66, 225,\n\t\t44, 77, 192, 58, 245, 76, 195, 40, 99, 106, 51, 71, 143, 63,\n\t\t239, 235, 119, 54, 89, 136, 84, 231, 167, 237, 35, 137, 64,\n\t\t150, 22, 183, 30, 169, 195, 88, 252, 52, 83, 200, 116, 243,\n\t\t92, 153, 5, 82, 140, 186, 225, 58, 142, 251, 29, 233, 90,\n\t\t15, 190, 183, 35, 100, 153, 78, 28, 78, 227, 53, 109, 94,\n\t\t13, 124, 82, 255, 218, 24, 164, 161, 119, 190, 159, 232, 171,\n\t\t230, 210, 115, 249, 153, 211, 240, 178, 83, 127, 236, 177,\n\t\t249, 229, 215, 239, 63, 253, 62, 126, 219, 239, 191, 255,\n\t\t252, 4, 56, 221, 158, 192, 179, 150, 26, 28, 67, 57, 226,\n\t\t22, 66, 23, 68, 233, 32, 51, 218, 226, 25, 150, 234, 252,\n\t\t97, 227, 190, 107, 245, 208, 163, 138, 255, 251, 174, 251,\n\t\t35, 136, 10, 97, 23, 152, 19, 253, 195, 29, 254, 123, 168,\n\t\t153, 127, 5, 52, 51, 34, 172, 143, 79, 186, 9, 39, 177, 134,\n\t\t100, 213, 224, 107, 204, 158, 104, 69, 204, 127, 61, 112,\n\t\t135, 15, 6, 24, 191, 33, 181, 123, 146, 97, 240, 244, 129,\n\t\t105, 241, 133, 235, 245, 81, 149, 179, 15, 247, 251, 220,\n\t\t80, 251, 246, 95, 227, 252, 254, 251, 79, 79, 125, 245, 132,\n\t\t238, 180, 22, 148, 20, 210, 145, 102, 103, 181, 35, 84, 15,\n\t\t208, 178, 18, 34, 180, 220, 88, 235, 156, 186, 73, 224, 100,\n\t\t235, 225, 74, 143, 235, 0, 243, 116, 29, 156, 95, 49, 122,\n\t\t241, 66, 11, 167, 80, 79, 160, 75, 193, 70, 47, 173, 217,\n\t\t145, 251, 30, 90, 63, 138, 79, 160, 127, 203, 53, 139, 143,\n\t\t212, 199, 35, 164, 56, 39, 180, 240, 224, 233, 62, 226, 130,\n\t\t101, 78, 144, 92, 142, 154, 37, 244, 237, 90, 70, 194, 114,\n\t\t206, 0, 192, 2, 239, 234, 212, 223, 115, 19, 199, 126, 111,\n\t\t62, 33, 176, 61, 165, 93, 43, 226, 165, 242, 112, 203, 165,\n\t\t205, 3, 242, 214, 246, 71, 171, 71, 240, 25, 201, 81, 250,\n\t\t203, 62, 237, 252, 0, 70, 177, 122, 100, 212, 101, 100, 127,\n\t\t212, 208, 223, 94, 146, 139, 199, 212, 48, 167, 45, 155, 124,\n\t\t152, 242, 198, 85, 31, 167, 200, 153, 10, 73, 73, 83, 47,\n\t\t7, 243, 23, 247, 209, 50, 200, 171, 2, 73, 174, 102, 57, 130,\n\t\t32, 39, 185, 163, 215, 82, 16, 254, 202, 82, 209, 154, 114,\n\t\t244, 0, 22, 104, 169, 86, 100, 169, 53, 201, 202, 164, 242,\n\t\t225, 235, 225, 11, 146, 85, 98, 233, 94, 138, 51, 83, 13,\n\t\t245, 134, 37, 1, 165, 70, 96, 250, 0, 13, 85, 234, 74, 116,\n\t\t235, 211, 17, 64, 249, 151, 220, 225, 83, 201, 146, 29, 52,\n\t\t18, 170, 87, 0, 212, 83, 99, 141, 27, 111, 26, 202, 225, 66,\n\t\t73, 182, 143, 133, 57, 206, 149, 182, 116, 165, 231, 205,\n\t\t229, 72, 45, 38, 97, 142, 148, 96, 69, 70, 49, 138, 30, 24,\n\t\t243, 225, 112, 127, 186, 203, 88, 152, 178, 23, 101, 59, 62,\n\t\t29, 37, 52, 97, 215, 13, 185, 13, 223, 143, 216, 156, 32,\n\t\t84, 180, 20, 5, 136, 174, 86, 65, 21, 235, 217, 163, 61, 93,\n\t\t14, 2, 21, 22, 65, 138, 4, 87, 30, 106, 183, 108, 195, 41,\n\t\t69, 88, 70, 141, 149, 68, 219, 225, 12, 198, 70, 115, 85,\n\t\t209, 89, 229, 251, 133, 162, 200, 121, 7, 178, 159, 90, 208,\n\t\t64, 250, 214, 122, 0, 171, 167, 242, 2, 187, 163, 225, 21,\n\t\t163, 215, 66, 48, 59, 82, 221, 81, 156, 208, 92, 129, 196,\n\t\t88, 14, 196, 188, 189, 63, 35, 230, 187, 14, 253, 183, 151,\n\t\t50, 239, 235, 17, 3, 115, 82, 211, 148, 210, 225, 196, 207,\n\t\t59, 123, 163, 68, 8, 146, 216, 102, 135, 74, 136, 167, 136,\n\t\t243, 170, 228, 10, 166, 9, 233, 58, 40, 124, 190, 73, 70,\n\t\t165, 20, 3, 29, 73, 93, 191, 85, 235, 132, 244, 8, 48, 234,\n\t\t163, 175, 137, 89, 79, 97, 118, 87, 59, 90, 40, 226, 254,\n\t\t79, 41, 166, 169, 19, 244, 212, 131, 245, 136, 54, 247, 252,\n\t\t219, 93, 140, 91, 137, 71, 105, 126, 237, 247, 14, 230, 67,\n\t\t101, 83, 129, 59, 120, 154, 123, 193, 35, 155, 177, 86, 120,\n\t\t93, 120, 110, 59, 90, 74, 21, 46, 228, 146, 115, 68, 108,\n\t\t106, 138, 141, 249, 176, 226, 81, 102, 4, 26, 240, 152, 133,\n\t\t39, 12, 147, 41, 5, 112, 252, 199, 82, 36, 77, 178, 247, 8,\n\t\t185, 47, 77, 50, 173, 162, 92, 210, 246, 174, 141, 98, 237,\n\t\t111, 47, 185, 180, 195, 199, 107, 19, 163, 231, 114, 18, 209,\n\t\t86, 170, 100, 245, 185, 249, 170, 59, 138, 5, 139, 80, 183,\n\t\t197, 144, 195, 135, 22, 118, 77, 147, 86, 123, 19, 251, 63,\n\t\t230, 42, 65, 184, 10, 50, 113, 61, 34, 192, 0, 206, 7, 109,\n\t\t98, 220, 219, 183, 163, 87, 212, 11, 206, 38, 14, 218, 196,\n\t\t53, 130, 193, 211, 249, 0, 98, 109, 208, 95, 250, 62, 123,\n\t\t87, 224, 94, 115, 238, 182, 95, 210, 145, 125, 172, 34, 67,\n\t\t68, 101, 23, 178, 177, 184, 161, 44, 166, 138, 51, 126, 157,\n\t\t235, 165, 141, 107, 241, 85, 46, 41, 113, 222, 76, 82, 227,\n\t\t234, 225, 122, 170, 239, 219, 56, 135, 129, 225, 210, 4, 174,\n\t\t24, 179, 223, 154, 132, 115, 253, 218, 70, 46, 149, 31, 192,\n\t\t116, 143, 95, 191, 253, 237, 121, 29, 122, 170, 81, 142, 45,\n\t\t217, 58, 164, 42, 80, 151, 42, 101, 3, 143, 71, 174, 128,\n\t\t56, 107, 8, 30, 192, 34, 133, 170, 176, 196, 78, 112, 218,\n\t\t122, 39, 61, 47, 124, 128, 66, 48, 166, 219, 163, 171, 19,\n\t\t148, 88, 117, 62, 151, 163, 205, 25, 191, 249, 150, 142, 136,\n\t\t73, 154, 145, 138, 157, 161, 174, 212, 160, 25, 32, 154, 133,\n\t\t2, 2, 242, 121, 64, 57, 163, 54, 69, 122, 7, 124, 115, 222,\n\t\t130, 164, 199, 65, 135, 151, 218, 105, 31, 226, 22, 13, 160,\n\t\t46, 171, 75, 232, 2, 61, 34, 46, 39, 153, 140, 18, 230, 228,\n\t\t145, 90, 24, 56, 181, 186, 51, 239, 137, 196, 176, 82, 212,\n\t\t85, 161, 164, 242, 171, 58, 36, 243, 108, 233, 172, 183, 236,\n\t\t151, 188, 138, 33, 134, 21, 163, 144, 73, 44, 208, 25, 91,\n\t\t24, 227, 187, 64, 206, 8, 146, 13, 52, 92, 125, 9, 120, 151,\n\t\t21, 203, 14, 95, 160, 89, 215, 62, 29, 141, 89, 7, 111, 183,\n\t\t151, 88, 28, 248, 75, 211, 52, 28, 212, 45, 69, 5, 218, 160,\n\t\t14, 34, 60, 254, 193, 16, 240, 80, 70, 227, 199, 37, 18, 105,\n\t\t8, 162, 204, 170, 72, 76, 39, 244, 49, 74, 234, 161, 30, 25,\n\t\t187, 193, 246, 94, 138, 79, 34, 106, 250, 182, 96, 64, 160,\n\t\t29, 189, 129, 36, 68, 230, 177, 104, 250, 129, 68, 225, 89,\n\t\t70, 84, 189, 166, 39, 24, 161, 181, 178, 40, 175, 204, 226,\n\t\t40, 157, 126, 67, 65, 181, 28, 81, 67, 165, 219, 219, 194,\n\t\t121, 145, 210, 225, 5, 2, 31, 32, 7, 43, 147, 12, 110, 127,\n\t\t137, 23, 0, 35, 221, 138, 139, 14, 5, 19, 96, 206, 177, 250,\n\t\t183, 44, 13, 130, 254, 46, 5, 218, 89, 21, 136, 59, 71, 203,\n\t\t42, 140, 224, 232, 87, 108, 192, 157, 163, 101, 85, 216, 25,\n\t\t64, 119, 198, 156, 151, 201, 152, 232, 65, 177, 106, 3, 195,\n\t\t169, 38, 174, 59, 50, 8, 189, 70, 64, 18, 253, 121, 54, 234,\n\t\t44, 84, 172, 55, 96, 202, 123, 117, 66, 74, 13, 29, 146, 163,\n\t\t208, 156, 18, 198, 215, 163, 224, 147, 197, 152, 142, 228,\n\t\t67, 126, 144, 153, 248, 251, 215, 223, 190, 127, 255, 237,\n\t\t254, 81, 254, 244, 104, 89, 186, 61, 28, 243, 221, 203, 209,\n\t\t207, 249, 233, 162, 204, 39, 198, 150, 108, 236, 180, 242,\n\t\t246, 18, 82, 63, 0, 2, 226, 4, 198, 80, 241, 229, 90, 57,\n\t\t147, 249, 90, 229, 14, 111, 47, 82, 61, 219, 80, 135, 15,\n\t\t140, 94, 49, 175, 85, 108, 77, 173, 112, 182, 21, 178, 125,\n\t\t177, 55, 180, 80, 109, 206, 244, 222, 142, 190, 129, 200,\n\t\t20, 91, 242, 187, 3, 75, 233, 28, 226, 76, 160, 9, 25, 9,\n\t\t27, 83, 243, 149, 237, 193, 91, 248, 86, 15, 49, 104, 197,\n\t\t102, 149, 93, 156, 243, 118, 67, 130, 124, 150, 151, 59, 171,\n\t\t214, 177, 53, 41, 118, 19, 34, 112, 0, 225, 198, 116, 196,\n\t\t199, 238, 165, 97, 170, 230, 35, 85, 41, 31, 59, 81, 125,\n\t\t74, 186, 193, 206, 84, 240, 30, 207, 253, 186, 67, 142, 58,\n\t\t59, 243, 227, 109, 12, 27, 163, 58, 80, 63, 76, 61, 178, 254,\n\t\t160, 204, 194, 250, 116, 127, 114, 151, 245, 167, 88, 233,\n\t\t162, 83, 156, 205, 52, 173, 189, 86, 143, 94, 235, 217, 235,\n\t\t209, 61, 75, 173, 99, 140, 231, 238, 83, 59, 50, 194, 217,\n\t\t169, 205, 69, 245, 220, 195, 81, 65, 227, 58, 123, 33, 180,\n\t\t116, 78, 69, 204, 123, 47, 26, 217, 220, 56, 119, 248, 245,\n\t\t115, 220, 244, 239, 233, 93, 59, 28, 42, 239, 167, 232, 107,\n\t\t231, 254, 254, 64, 63, 63, 94, 240, 241, 150, 143, 224, 202,\n\t\t17, 227, 233, 231, 18, 135, 197, 33, 151, 163, 244, 183, 151,\n\t\t48, 53, 225, 180, 133, 62, 141, 133, 136, 181, 9, 132, 172,\n\t\t248, 91, 211, 233, 142, 24, 107, 3, 172, 162, 155, 131, 54,\n\t\t191, 221, 94, 230, 199, 130, 127, 28, 236, 201, 115, 48, 191,\n\t\t63, 39, 157, 239, 238, 242, 3, 216, 134, 127, 124, 251, 237,\n\t\t252, 242, 220, 230, 159, 4, 193, 132, 26, 41, 133, 120, 8,\n\t\t193, 89, 150, 229, 176, 206, 165, 97, 145, 135, 205, 221,\n\t\t251, 238, 99, 56, 241, 59, 246, 135, 206, 114, 171, 62, 210,\n\t\t21, 203, 246, 137, 13, 245, 246, 178, 48, 41, 139, 59, 226,\n\t\t201, 76, 234, 214, 206, 128, 116, 231, 125, 126, 231, 30,\n\t\t166, 93, 61, 23, 120, 171, 180, 48, 232, 92, 50, 229, 164,\n\t\t133, 61, 23, 194, 219, 139, 47, 126, 74, 227, 212, 142, 120,\n\t\t151, 185, 50, 237, 23, 25, 175, 97, 206, 240, 236, 197, 147,\n\t\t14, 244, 23, 73, 63, 126, 95, 232, 168, 178, 132, 120, 196,\n\t\t59, 208, 156, 240, 30, 72, 89, 14, 226, 27, 129, 176, 0, 251,\n\t\t62, 26, 234, 188, 52, 210, 106, 21, 201, 185, 249, 191, 106,\n\t\t152, 79, 249, 160, 126, 249, 219, 215, 127, 124, 251, 249,\n\t\t231, 103, 232, 141, 254, 9, 127, 74, 146, 218, 23, 33, 17,\n\t\t10, 5, 88, 36, 200, 161, 153, 235, 148, 171, 101, 75, 200,\n\t\t170, 241, 90, 189, 26, 36, 81, 160, 101, 97, 133, 194, 17,\n\t\t172, 229, 197, 5, 120, 71, 235, 180, 57, 18, 178, 197, 74,\n\t\t43, 89, 70, 165, 23, 227, 223, 161, 163, 90, 131, 118, 238,\n\t\t160, 218, 39, 45, 63, 4, 111, 235, 229, 80, 71, 62, 8, 18,\n\t\t182, 188, 210, 137, 207, 37, 38, 224, 205, 28, 120, 143, 119,\n\t\t220, 113, 61, 64, 246, 111, 99, 239, 249, 72, 93, 179, 179,\n\t\t102, 79, 167, 142, 20, 17, 152, 216, 120, 247, 156, 55, 123,\n\t\t245, 58, 181, 251, 86, 165, 68, 32, 163, 88, 56, 20, 196,\n\t\t156, 29, 232, 179, 231, 212, 173, 115, 173, 149, 253, 225,\n\t\t107, 62, 74, 68, 40, 174, 229, 163, 77, 121, 158, 27, 218,\n\t\t69, 206, 140, 243, 229, 113, 234, 219, 11, 248, 124, 242,\n\t\t92, 167, 231, 178, 214, 238, 201, 31, 57, 180, 248, 200, 237,\n\t\t112, 53, 135, 251, 206, 3, 187, 30, 121, 123, 137, 105, 206,\n\t\t231, 0, 230, 150, 28, 202, 35, 196, 163, 197, 214, 111, 40,\n\t\t211, 200, 18, 19, 113, 71, 7, 58, 92, 12, 71, 204, 200, 86,\n\t\t243, 2, 252, 48, 69, 67, 110, 128, 170, 234, 213, 213, 211,\n\t\t9, 239, 187, 232, 129, 173, 151, 60, 178, 103, 18, 197, 52,\n\t\t255, 171, 84, 70, 212, 36, 28, 237, 64, 9, 153, 210, 69, 91,\n\t\t187, 251, 232, 133, 138, 57, 195, 104, 150, 143, 240, 165,\n\t\t28, 46, 183, 245, 17, 60, 96, 31, 241, 249, 32, 253, 251,\n\t\t247, 95, 255, 249, 148, 166, 223, 219, 42, 101, 145, 194,\n\t\t167, 246, 216, 99, 145, 52, 215, 197, 135, 59, 205, 133, 164,\n\t\t185, 124, 251, 170, 70, 151, 35, 119, 92, 32, 202, 143, 76,\n\t\t23, 76, 124, 124, 63, 207, 245, 109, 213, 154, 227, 128, 146,\n\t\t109, 61, 228, 82, 183, 41, 40, 159, 149, 210, 94, 207, 187,\n\t\t252, 189, 203, 187, 129, 197, 60, 49, 48, 122, 185, 70, 14,\n\t\t232, 201, 83, 111, 112, 71, 221, 20, 218, 79, 158, 133, 2,\n\t\t238, 205, 208, 179, 141, 95, 141, 114, 76, 188, 139, 10, 43,\n\t\t120, 238, 222, 163, 14, 184, 38, 181, 98, 10, 147, 104, 187,\n\t\t234, 52, 134, 132, 109, 71, 228, 146, 42, 214, 21, 115, 184,\n\t\t175, 165, 152, 171, 108, 224, 221, 179, 245, 239, 165, 253,\n\t\t227, 130, 93, 127, 247, 126, 220, 149, 214, 184, 13, 3, 253,\n\t\t180, 104, 4, 179, 132, 53, 220, 253, 238, 234, 183, 23, 159,\n\t\t221, 17, 182, 80, 194, 99, 143, 245, 142, 202, 199, 71, 172,\n\t\t247, 249, 151, 63, 206, 241, 88, 30, 187, 213, 10, 232, 57,\n\t\t178, 167, 39, 106, 138, 127, 58, 250, 153, 211, 108, 253,\n\t\t130, 209, 224, 125, 155, 63, 199, 58, 127, 182, 135, 248,\n\t\t94, 230, 51, 60, 10, 144, 241, 211, 199, 71, 200, 25, 178,\n\t\t131, 211, 66, 43, 224, 186, 176, 90, 149, 119, 143, 152, 202,\n\t\t151, 222, 200, 199, 203, 109, 20, 26, 203, 110, 213, 255,\n\t\t66, 209, 205, 215, 159, 31, 223, 158, 177, 191, 122, 127,\n\t\t87, 195, 50, 82, 173, 7, 18, 115, 81, 2, 190, 71, 95, 231,\n\t\t247, 151, 42, 233, 166, 229, 136, 39, 41, 84, 119, 101, 54,\n\t\t185, 239, 161, 156, 150, 47, 85, 101, 168, 76, 177, 189, 25,\n\t\t109, 145, 15, 176, 75, 72, 26, 28, 4, 70, 101, 139, 117, 236,\n\t\t10, 68, 161, 197, 141, 205, 108, 112, 60, 208, 207, 239, 219,\n\t\t98, 236, 71, 123, 123, 169, 76, 156, 173, 110, 24, 91, 157,\n\t\t224, 35, 24, 111, 131, 254, 125, 191, 127, 27, 86, 47, 202,\n\t\t50, 128, 82, 224, 65, 196, 45, 186, 1, 217, 138, 183, 93,\n\t\t193, 117, 11, 95, 12, 160, 183, 93, 41, 27, 16, 64, 168, 71,\n\t\t29, 5, 9, 150, 91, 100, 41, 134, 71, 154, 215, 6, 20, 3, 146,\n\t\t239, 88, 53, 36, 177, 19, 166, 68, 159, 122, 71, 116, 199,\n\t\t108, 33, 134, 108, 220, 182, 23, 1, 107, 0, 230, 20, 202,\n\t\t249, 115, 59, 62, 15, 254, 254, 227, 252, 246, 211, 83, 130,\n\t\t209, 151, 188, 106, 135, 3, 170, 246, 58, 106, 201, 247, 182,\n\t\t2, 181, 203, 31, 252, 46, 49, 194, 80, 38, 198, 158, 121,\n\t\t114, 48, 234, 69, 38, 177, 47, 71, 0, 237, 246, 70, 172, 25,\n\t\t191, 10, 72, 12, 174, 84, 237, 67, 6, 156, 124, 164, 132,\n\t\t148, 35, 16, 167, 77, 249, 171, 226, 180, 234, 130, 22, 58,\n\t\t33, 45, 91, 240, 240, 197, 154, 84, 171, 180, 48, 211, 190,\n\t\t29, 121, 154, 53, 78, 82, 183, 213, 17, 129, 66, 19, 79, 160,\n\t\t80, 209, 209, 228, 124, 101, 146, 34, 172, 178, 219, 136,\n\t\t14, 185, 27, 63, 181, 89, 22, 180, 199, 254, 197, 36, 198,\n\t\t127, 202, 97, 28, 167, 5, 209, 166, 2, 108, 224, 135, 150,\n\t\t37, 196, 78, 67, 169, 69, 236, 66, 146, 174, 66, 151, 106,\n\t\t45, 161, 18, 249, 69, 157, 201, 5, 42, 164, 131, 5, 98, 73,\n\t\t249, 35, 158, 87, 1, 198, 145, 219, 251, 35, 11, 186, 134,\n\t\t59, 178, 53, 47, 17, 77, 100, 157, 152, 102, 45, 219, 24,\n\t\t251, 77, 211, 26, 46, 53, 107, 172, 109, 41, 86, 251, 59,\n\t\t13, 201, 66, 120, 223, 106, 169, 71, 211, 236, 17, 191, 184,\n\t\t210, 60, 53, 65, 209, 66, 224, 53, 19, 93, 51, 76, 9, 177,\n\t\t53, 214, 203, 181, 124, 67, 120, 215, 17, 242, 124, 149, 107,\n\t\t173, 204, 34, 197, 157, 215, 47, 108, 116, 241, 136, 210,\n\t\t220, 104, 190, 203, 110, 86, 170, 116, 44, 213, 240, 247,\n\t\t132, 38, 46, 185, 64, 188, 30, 248, 39, 20, 94, 192, 42, 164,\n\t\t108, 148, 94, 144, 152, 196, 68, 80, 39, 197, 108, 80, 6,\n\t\t120, 35, 49, 121, 98, 188, 236, 100, 199, 120, 238, 206, 122,\n\t\t121, 18, 254, 218, 247, 91, 65, 71, 102, 233, 13, 107, 100,\n\t\t221, 156, 11, 146, 20, 165, 130, 145, 150, 71, 151, 38, 30,\n\t\t4, 22, 226, 8, 170, 115, 244, 72, 119, 234, 227, 20, 82, 102,\n\t\t4, 103, 152, 53, 44, 196, 97, 233, 79, 86, 87, 13, 41, 137,\n\t\t189, 125, 149, 239, 134, 91, 105, 169, 156, 134, 198, 47,\n\t\t18, 99, 105, 76, 228, 82, 176, 68, 58, 217, 253, 17, 118,\n\t\t37, 36, 222, 254, 143, 39, 153, 87, 174, 244, 197, 126, 11,\n\t\t177, 28, 82, 208, 190, 51, 229, 205, 64, 19, 179, 186, 241,\n\t\t236, 64, 137, 234, 48, 91, 37, 120, 251, 2, 37, 109, 239,\n\t\t235, 25, 245, 0, 4, 188, 102, 160, 201, 15, 137, 4, 224, 204,\n\t\t130, 201, 140, 192, 50, 17, 230, 194, 211, 87, 172, 32, 136,\n\t\t245, 235, 157, 104, 86, 161, 14, 1, 30, 78, 38, 57, 117, 132,\n\t\t25, 198, 185, 103, 25, 139, 58, 91, 111, 99, 37, 189, 21,\n\t\t18, 83, 35, 194, 144, 242, 145, 44, 209, 26, 123, 195, 96,\n\t\t160, 156, 84, 140, 111, 177, 232, 134, 226, 174, 12, 103,\n\t\t140, 155, 128, 198, 168, 164, 35, 81, 15, 156, 214, 84, 207,\n\t\t142, 87, 128, 165, 124, 241, 37, 227, 148, 108, 200, 179,\n\t\t90, 137, 76, 118, 0, 93, 29, 82, 86, 49, 42, 223, 46, 187,\n\t\t69, 162, 44, 77, 40, 245, 164, 107, 34, 71, 176, 54, 83, 23,\n\t\t39, 58, 66, 232, 58, 44, 13, 63, 214, 115, 19, 64, 136, 184,\n\t\t204, 137, 243, 22, 172, 173, 42, 227, 176, 235, 227, 123,\n\t\t168, 75, 3, 3, 235, 237, 72, 0, 48, 20, 255, 77, 26, 213,\n\t\t105, 97, 15, 125, 49, 155, 229, 105, 216, 129, 105, 31, 98,\n\t\t210, 166, 166, 137, 10, 130, 120, 228, 153, 40, 130, 2, 32,\n\t\t119, 164, 243, 74, 197, 32, 91, 195, 120, 162, 116, 78, 102,\n\t\t45, 231, 129, 150, 212, 9, 232, 53, 85, 223, 218, 21, 132,\n\t\t131, 109, 75, 255, 45, 221, 210, 204, 144, 14, 40, 70, 143,\n\t\t83, 243, 48, 248, 90, 175, 104, 88, 10, 72, 35, 89, 51, 76,\n\t\t45, 12, 28, 255, 236, 191, 133, 185, 110, 124, 69, 86, 178,\n\t\t55, 140, 247, 194, 89, 240, 224, 130, 38, 31, 152, 47, 202,\n\t\t204, 36, 3, 108, 93, 53, 252, 6, 207, 126, 225, 40, 211, 62,\n\t\t140, 152, 139, 55, 141, 183, 73, 203, 208, 9, 93, 181, 73,\n\t\t83, 183, 237, 97, 176, 122, 6, 231, 194, 102, 9, 97, 211,\n\t\t23, 29, 68, 23, 83, 180, 84, 140, 234, 166, 9, 53, 84, 111,\n\t\t224, 185, 252, 1, 72, 194, 151, 159, 190, 62, 161, 6, 126,\n\t\t233, 11, 185, 161, 76, 99, 163, 215, 35, 63, 44, 250, 49,\n\t\t140, 63, 37, 91, 34, 173, 110, 120, 7, 138, 53, 194, 151,\n\t\t204, 73, 10, 182, 50, 153, 245, 196, 85, 5, 10, 136, 3, 48,\n\t\t174, 54, 81, 118, 176, 58, 92, 59, 58, 138, 190, 218, 32,\n\t\t85, 21, 211, 235, 16, 94, 65, 191, 74, 253, 235, 180, 35,\n\t\t117, 105, 147, 111, 54, 109, 23, 58, 173, 149, 144, 237, 1,\n\t\t112, 13, 6, 192, 163, 99, 102, 247, 29, 156, 105, 213, 86,\n\t\t244, 220, 143, 182, 161, 184, 192, 53, 161, 83, 7, 158, 200,\n\t\t236, 50, 124, 90, 244, 160, 55, 11, 208, 165, 101, 111, 4,\n\t\t35, 224, 97, 3, 160, 28, 174, 72, 146, 154, 50, 155, 27, 106,\n\t\t220, 84, 19, 53, 216, 98, 4, 9, 6, 255, 195, 159, 18, 209,\n\t\t199, 56, 110, 49, 243, 162, 98, 248, 80, 229, 153, 118, 2,\n\t\t198, 141, 30, 24, 187, 142, 93, 33, 118, 67, 194, 134, 214,\n\t\t9, 242, 136, 159, 83, 2, 131, 144, 80, 101, 137, 120, 236,\n\t\t62, 20, 100, 139, 196, 141, 72, 133, 8, 13, 26, 186, 161,\n\t\t247, 211, 102, 242, 77, 66, 70, 178, 23, 4, 223, 81, 73, 74,\n\t\t156, 101, 95, 239, 126, 83, 114, 185, 193, 248, 200, 98, 189,\n\t\t102, 37, 8, 123, 193, 14, 120, 15, 85, 180, 201, 199, 18,\n\t\t198, 98, 26, 11, 42, 141, 58, 240, 222, 92, 62, 252, 185,\n\t\t91, 85, 248, 66, 61, 110, 32, 72, 210, 40, 166, 82, 218, 21,\n\t\t125, 55, 238, 123, 9, 75, 13, 204, 171, 188, 80, 250, 99,\n\t\t91, 194, 54, 215, 183, 151, 228, 219, 225, 183, 52, 7, 208,\n\t\t200, 168, 103, 182, 60, 59, 128, 88, 148, 205, 168, 5, 101,\n\t\t127, 236, 107, 28, 0, 100, 221, 73, 112, 82, 149, 156, 76,\n\t\t78, 174, 17, 51, 3, 184, 114, 58, 67, 14, 137, 120, 195, 58,\n\t\t223, 155, 192, 109, 220, 198, 34, 105, 18, 109, 19, 144, 141,\n\t\t242, 85, 212, 81, 181, 158, 148, 116, 180, 136, 250, 73, 71,\n\t\t152, 210, 89, 173, 102, 84, 10, 137, 58, 171, 131, 16, 252,\n\t\t240, 252, 17, 136, 36, 182, 173, 173, 50, 4, 214, 97, 211,\n\t\t113, 138, 149, 44, 16, 176, 193, 9, 52, 8, 160, 145, 68, 45,\n\t\t88, 248, 229, 226, 168, 245, 249, 104, 91, 19, 13, 233, 47,\n\t\t8, 162, 253, 245, 127, 255, 254, 229, 215, 103, 235, 239,\n\t\t203, 210, 132, 196, 154, 255, 99, 19, 227, 95, 102, 210, 188,\n\t\t189, 132, 230, 142, 138, 114, 39, 237, 200, 168, 241, 110,\n\t\t213, 158, 85, 79, 234, 27, 243, 63, 225, 26, 158, 162, 199,\n\t\t216, 93, 150, 181, 200, 96, 80, 179, 140, 109, 195, 65, 4,\n\t\t207, 78, 50, 163, 214, 83, 6, 80, 235, 23, 156, 43, 42, 116,\n\t\t82, 3, 160, 203, 180, 202, 31, 162, 147, 177, 138, 122, 78,\n\t\t42, 221, 144, 49, 115, 18, 90, 221, 184, 30, 146, 202, 74,\n\t\t147, 207, 132, 183, 212, 213, 173, 152, 45, 217, 144, 189,\n\t\t104, 149, 253, 212, 112, 5, 249, 92, 129, 4, 183, 234, 30,\n\t\t100, 152, 49, 176, 162, 120, 169, 22, 199, 228, 174, 52, 184,\n\t\t201, 79, 209, 197, 137, 120, 27, 86, 81, 27, 116, 72, 79,\n\t\t123, 130, 202, 165, 177, 89, 244, 244, 142, 210, 183, 26,\n\t\t47, 23, 143, 144, 195, 224, 194, 65, 171, 134, 128, 131, 227,\n\t\t214, 36, 177, 110, 100, 47, 228, 253, 178, 87, 243, 216, 147,\n\t\t231, 44, 67, 170, 234, 102, 161, 77, 236, 181, 76, 205, 146,\n\t\t20, 238, 180, 42, 90, 179, 217, 32, 246, 163, 90, 95, 90,\n\t\t244, 17, 46, 60, 56, 70, 32, 80, 22, 115, 84, 95, 128, 33,\n\t\t22, 189, 38, 104, 129, 214, 243, 13, 113, 203, 172, 188, 253,\n\t\t76, 1, 33, 119, 139, 170, 206, 81, 95, 1, 63, 62, 75, 248,\n\t\t144, 15, 148, 225, 230, 210, 181, 167, 23, 128, 26, 37, 202,\n\t\t235, 196, 56, 75, 112, 216, 17, 73, 83, 194, 129, 48, 83,\n\t\t116, 125, 131, 167, 107, 144, 215, 194, 109, 92, 82, 154,\n\t\t122, 130, 9, 126, 239, 163, 48, 2, 24, 46, 188, 144, 148,\n\t\t103, 35, 50, 32, 9, 168, 202, 74, 183, 32, 195, 100, 72, 177,\n\t\t201, 13, 105, 197, 142, 144, 204, 192, 25, 37, 142, 229, 247,\n\t\t214, 77, 172, 36, 150, 238, 168, 88, 229, 58, 92, 88, 146,\n\t\t164, 215, 81, 51, 207, 108, 174, 197, 28, 99, 36, 74, 17,\n\t\t12, 41, 82, 4, 16, 134, 145, 14, 47, 112, 61, 230, 112, 236,\n\t\t73, 0, 39, 229, 104, 142, 183, 97, 44, 55, 179, 217, 184,\n\t\t178, 41, 198, 113, 52, 80, 11, 165, 184, 255, 52, 129, 232,\n\t\t231, 47, 191, 140, 251, 151, 167, 180, 227, 47, 79, 32, 241,\n\t\t139, 230, 32, 76, 25, 150, 220, 144, 34, 212, 167, 36, 222,\n\t\t215, 255, 86, 50, 240, 92, 35, 177, 118, 56, 143, 162, 62,\n\t\t140, 15, 131, 52, 52, 131, 160, 83, 140, 81, 242, 145, 22,\n\t\t124, 39, 185, 174, 57, 26, 8, 59, 157, 73, 80, 90, 26, 179,\n\t\t11, 110, 87, 162, 175, 119, 36, 70, 238, 35, 49, 225, 126,\n\t\t33, 186, 11, 6, 150, 166, 144, 85, 179, 15, 173, 178, 159,\n\t\t170, 2, 232, 118, 116, 135, 67, 86, 188, 109, 154, 79, 210,\n\t\t133, 43, 78, 37, 155, 241, 230, 196, 85, 226, 97, 144, 28,\n\t\t234, 144, 240, 94, 43, 60, 12, 148, 146, 4, 181, 92, 178,\n\t\t11, 13, 220, 139, 199, 223, 179, 94, 71, 89, 234, 184, 50,\n\t\t144, 211, 67, 81, 150, 198, 158, 140, 48, 206, 252, 95, 139,\n\t\t111, 150, 116, 165, 131, 172, 111, 122, 166, 183, 193, 185,\n\t\t232, 79, 140, 106, 63, 240, 219, 88, 12, 193, 234, 161, 85,\n\t\t14, 99, 88, 114, 98, 245, 155, 37, 101, 158, 130, 220, 204,\n\t\t189, 80, 173, 219, 136, 255, 164, 188, 25, 90, 101, 144, 233,\n\t\t3, 104, 196, 163, 93, 249, 49, 218, 186, 110, 177, 45, 93,\n\t\t105, 171, 40, 221, 22, 47, 25, 112, 241, 46, 158, 135, 132,\n\t\t187, 202, 20, 203, 171, 140, 46, 95, 200, 139, 178, 33, 90,\n\t\t50, 18, 198, 197, 172, 154, 108, 165, 79, 226, 29, 76, 147,\n\t\t136, 150, 195, 124, 193, 108, 90, 57, 130, 4, 84, 168, 21,\n\t\t164, 134, 229, 153, 68, 75, 98, 115, 87, 226, 101, 172, 236,\n\t\t46, 115, 75, 91, 49, 185, 35, 250, 245, 102, 108, 89, 38,\n\t\t173, 89, 15, 82, 5, 43, 20, 153, 83, 108, 173, 32, 234, 153,\n\t\t250, 180, 229, 254, 8, 114, 70, 250, 172, 40, 207, 84, 97,\n\t\t61, 150, 111, 53, 95, 157, 232, 1, 30, 216, 63, 156, 110,\n\t\t251, 31, 204, 183, 253, 15, 248, 152, 174, 204, 47, 226, 24,\n\t\t145, 97, 7, 145, 95, 164, 90, 217, 73, 182, 32, 31, 187, 120,\n\t\t169, 172, 106, 235, 226, 180, 146, 246, 84, 204, 215, 33,\n\t\t74, 172, 151, 97, 47, 217, 135, 166, 202, 18, 125, 145, 46,\n\t\t25, 49, 71, 172, 71, 116, 190, 96, 21, 36, 72, 167, 69, 75,\n\t\t203, 109, 92, 235, 192, 240, 210, 139, 54, 206, 80, 142, 203,\n\t\t43, 241, 36, 89, 113, 198, 69, 152, 4, 143, 196, 163, 17,\n\t\t219, 72, 199, 103, 180, 66, 78, 133, 64, 49, 118, 226, 202,\n\t\t180, 49, 29, 64, 234, 120, 81, 240, 97, 58, 202, 87, 163,\n\t\t70, 163, 49, 210, 15, 32, 226, 140, 94, 65, 67, 129, 73, 29,\n\t\t221, 84, 115, 236, 147, 104, 92, 247, 111, 3, 57, 251, 222,\n\t\t74, 129, 216, 70, 43, 222, 137, 3, 247, 165, 52, 82, 139,\n\t\t220, 42, 73, 90, 155, 14, 67, 99, 155, 165, 86, 162, 13, 196,\n\t\t145, 156, 46, 36, 154, 144, 106, 90, 242, 181, 37, 6, 57,\n\t\t252, 123, 209, 73, 20, 121, 47, 68, 4, 127, 105, 149, 220,\n\t\t255, 113, 255, 254, 250, 188, 86, 142, 63, 207, 234, 200,\n\t\t115, 125, 74, 88, 132, 98, 168, 130, 214, 230, 133, 94, 50,\n\t\t28, 62, 87, 201, 234, 12, 177, 69, 12, 42, 215, 90, 199, 202,\n\t\t21, 179, 186, 5, 35, 178, 106, 130, 64, 166, 96, 240, 180,\n\t\t226, 35, 198, 112, 205, 81, 116, 210, 210, 0, 111, 114, 100,\n\t\t201, 120, 13, 241, 232, 185, 160, 194, 161, 4, 129, 215, 21,\n\t\t0, 143, 124, 148, 128, 68, 234, 118, 52, 169, 107, 152, 47,\n\t\t17, 106, 183, 35, 146, 146, 87, 90, 205, 115, 89, 116, 185,\n\t\t161, 34, 1, 4, 8, 9, 72, 237, 152, 7, 46, 78, 243, 49, 134,\n\t\t16, 170, 64, 156, 103, 95, 120, 224, 38, 198, 80, 0, 122,\n\t\t213, 180, 38, 74, 9, 144, 109, 46, 5, 45, 105, 8, 120, 239,\n\t\t105, 241, 181, 42, 60, 1, 13, 192, 206, 249, 72, 128, 23,\n\t\t73, 225, 168, 213, 11, 40, 75, 45, 177, 10, 252, 87, 168,\n\t\t81, 26, 164, 207, 6, 153, 243, 50, 101, 241, 149, 198, 136,\n\t\t201, 220, 36, 179, 31, 150, 80, 21, 106, 106, 240, 125, 32,\n\t\t151, 52, 198, 129, 192, 144, 143, 40, 40, 47, 168, 91, 8,\n\t\t253, 104, 161, 121, 24, 159, 45, 200, 187, 37, 31, 116, 127,\n\t\t8, 31, 75, 140, 26, 112, 171, 49, 163, 220, 187, 250, 174,\n\t\t68, 41, 66, 124, 163, 71, 164, 54, 164, 70, 164, 34, 128,\n\t\t61, 208, 7, 44, 228, 192, 123, 65, 98, 231, 148, 44, 253,\n\t\t112, 73, 107, 125, 171, 139, 126, 206, 37, 223, 26, 140, 201,\n\t\t35, 185, 20, 17, 8, 45, 179, 97, 103, 43, 198, 4, 108, 56,\n\t\t31, 64, 168, 224, 142, 82, 91, 5, 166, 43, 10, 78, 230, 56,\n\t\t113, 48, 137, 143, 152, 98, 131, 23, 38, 105, 197, 97, 158,\n\t\t207, 152, 125, 216, 106, 235, 14, 100, 193, 197, 251, 105,\n\t\t246, 184, 195, 249, 92, 64, 145, 147, 66, 0, 198, 204, 229,\n\t\t80, 110, 104, 96, 55, 223, 188, 230, 140, 234, 74, 212, 138,\n\t\t244, 163, 128, 144, 103, 26, 30, 33, 99, 30, 165, 150, 210,\n\t\t109, 76, 203, 165, 69, 176, 176, 230, 236, 5, 240, 51, 40,\n\t\t128, 136, 79, 155, 119, 225, 8, 161, 193, 182, 137, 169, 12,\n\t\t119, 184, 154, 208, 38, 238, 240, 53, 207, 17, 235, 14, 159,\n\t\t243, 236, 95, 55, 191, 3, 99, 47, 196, 26, 65, 2, 157, 125,\n\t\t42, 9, 85, 232, 62, 180, 62, 181, 187, 56, 59, 53, 29, 25,\n\t\t101, 16, 83, 78, 163, 112, 226, 72, 101, 254, 62, 141, 155,\n\t\t28, 250, 156, 103, 2, 70, 4, 55, 112, 209, 218, 131, 26, 0,\n\t\t205, 230, 75, 18, 64, 40, 151, 99, 21, 41, 150, 37, 190, 90,\n\t\t125, 154, 95, 26, 101, 208, 134, 122, 56, 159, 224, 7, 148,\n\t\t89, 50, 237, 111, 239, 35, 164, 42, 56, 18, 195, 145, 98,\n\t\t201, 168, 237, 105, 49, 67, 25, 175, 65, 174, 192, 112, 137,\n\t\t17, 140, 48, 115, 104, 231, 232, 71, 59, 186, 111, 194, 55,\n\t\t234, 193, 37, 228, 203, 209, 82, 104, 130, 190, 95, 26, 242,\n\t\t195, 51, 96, 111, 244, 192, 200, 135, 11, 243, 165, 128, 141,\n\t\t239, 189, 178, 154, 165, 169, 9, 119, 113, 82, 2, 166, 8,\n\t\t34, 2, 51, 44, 206, 118, 46, 89, 0, 91, 125, 70, 168, 49,\n\t\t76, 249, 89, 26, 222, 116, 202, 199, 210, 71, 156, 2, 36,\n\t\t38, 216, 204, 179, 51, 188, 203, 71, 156, 103, 123, 201, 32,\n\t\t243, 161, 28, 169, 54, 238, 131, 89, 58, 197, 136, 18, 253,\n\t\t14, 216, 35, 240, 149, 55, 73, 34, 3, 42, 190, 232, 210, 114,\n\t\t100, 228, 112, 32, 189, 211, 201, 0, 200, 210, 3, 181, 185,\n\t\t136, 91, 215, 32, 73, 17, 37, 133, 50, 166, 229, 3, 2, 157,\n\t\t208, 142, 146, 93, 218, 234, 81, 145, 56, 182, 215, 142, 156,\n\t\t47, 1, 75, 74, 194, 248, 224, 252, 64, 17, 154, 195, 88, 110,\n\t\t40, 13, 73, 71, 204, 53, 65, 11, 159, 11, 153, 223, 154, 153,\n\t\t177, 135, 143, 173, 84, 112, 0, 150, 217, 142, 71, 152, 2,\n\t\t52, 98, 228, 248, 148, 183, 112, 196, 249, 198, 0, 246, 2,\n\t\t233, 206, 17, 114, 105, 115, 92, 31, 174, 37, 52, 112, 75,\n\t\t165, 104, 146, 118, 142, 24, 106, 243, 91, 131, 59, 82, 85,\n\t\t206, 234, 92, 139, 175, 225, 116, 135, 11, 61, 244, 34, 58,\n\t\t166, 130, 86, 141, 126, 36, 204, 164, 61, 30, 177, 101, 20,\n\t\t199, 29, 41, 182, 172, 165, 84, 89, 136, 159, 33, 249, 125,\n\t\t61, 90, 117, 224, 60, 111, 178, 4, 244, 163, 166, 42, 50,\n\t\t59, 135, 57, 180, 166, 84, 242, 24, 208, 89, 160, 147, 128,\n\t\t108, 232, 91, 1, 59, 173, 111, 30, 53, 5, 45, 166, 174, 21,\n\t\t247, 218, 114, 10, 226, 84, 143, 20, 83, 174, 80, 235, 66,\n\t\t130, 146, 57, 219, 24, 181, 131, 241, 240, 14, 53, 87, 129,\n\t\t30, 236, 122, 52, 151, 75, 145, 158, 241, 89, 42, 152, 66,\n\t\t245, 48, 130, 92, 237, 94, 12, 177, 121, 99, 47, 237, 166,\n\t\t162, 111, 218, 243, 71, 82, 87, 112, 59, 106, 2, 155, 57,\n\t\t214, 24, 232, 100, 190, 212, 14, 64, 49, 95, 138, 147, 87,\n\t\t54, 68, 177, 16, 33, 149, 119, 155, 252, 254, 136, 206, 87,\n\t\t56, 194, 93, 116, 161, 2, 108, 195, 139, 31, 245, 72, 69,\n\t\t70, 88, 68, 116, 110, 138, 152, 217, 117, 41, 148, 121, 129,\n\t\t71, 215, 72, 89, 71, 137, 208, 244, 90, 45, 8, 71, 87, 144,\n\t\t120, 205, 85, 167, 229, 246, 121, 54, 144, 45, 255, 127, 226,\n\t\t74, 252, 233, 127, 220, 149, 24, 17, 1, 251, 183, 237, 252,\n\t\t111, 219, 249, 223, 182, 243, 191, 109, 231, 127, 219, 206,\n\t\t255, 182, 157, 255, 63, 99, 59, 255, 242, 237, 235, 79, 251,\n\t\t47, 223, 126, 121, 174, 134, 248, 98, 0, 246, 49, 108, 161,\n\t\t159, 59, 234, 128, 21, 198, 219, 250, 60, 6, 148, 196, 107,\n\t\t77, 42, 165, 132, 247, 64, 128, 91, 255, 222, 227, 180, 163,\n\t\t199, 142, 188, 127, 11, 1, 183, 126, 8, 115, 163, 204, 213,\n\t\t144, 35, 234, 67, 10, 34, 172, 213, 168, 73, 60, 7, 1, 210,\n\t\t195, 17, 176, 134, 255, 28, 225, 235, 128, 220, 98, 164, 56,\n\t\t206, 181, 221, 109, 194, 27, 19, 218, 209, 174, 235, 31, 14,\n\t\t32, 20, 206, 242, 217, 133, 41, 236, 37, 70, 226, 17, 113,\n\t\t198, 222, 77, 120, 82, 99, 239, 3, 105, 22, 200, 81, 100,\n\t\t116, 57, 35, 206, 131, 57, 84, 202, 0, 103, 13, 81, 147, 107,\n\t\t177, 56, 67, 22, 157, 157, 196, 9, 131, 52, 103, 0, 246, 73,\n\t\t85, 34, 85, 222, 229, 173, 122, 164, 200, 22, 231, 7, 249,\n\t\t40, 80, 199, 43, 236, 160, 168, 222, 245, 215, 237, 207, 33,\n\t\t251, 190, 253, 250, 250, 219, 254, 253, 215, 159, 158, 251,\n\t\t243, 111, 6, 241, 207, 128, 74, 0, 81, 197, 85, 51, 208, 53,\n\t\t237, 73, 49, 184, 110, 72, 160, 100, 54, 229, 58, 127, 123,\n\t\t71, 119, 198, 149, 145, 231, 222, 77, 242, 189, 189, 132,\n\t\t144, 182, 8, 148, 204, 106, 51, 130, 89, 151, 72, 175, 50,\n\t\t201, 39, 127, 207, 93, 178, 193, 176, 77, 14, 164, 162, 139,\n\t\t149, 55, 28, 53, 25, 240, 97, 213, 75, 230, 45, 57, 171, 67,\n\t\t186, 157, 59, 51, 62, 231, 234, 135, 138, 230, 164, 41, 7,\n\t\t138, 248, 45, 138, 136, 97, 20, 173, 183, 96, 225, 166, 65,\n\t\t12, 201, 249, 82, 32, 141, 35, 202, 76, 121, 22, 17, 54, 224,\n\t\t181, 232, 61, 12, 134, 179, 168, 39, 105, 88, 171, 16, 201,\n\t\t221, 232, 217, 207, 189, 36, 35, 120, 58, 201, 151, 152, 44,\n\t\t60, 104, 41, 115, 75, 38, 107, 139, 45, 108, 184, 112, 123,\n\t\t189, 214, 95, 177, 69, 215, 9, 108, 78, 98, 241, 164, 243,\n\t\t242, 208, 177, 64, 249, 120, 165, 32, 103, 54, 73, 4, 147,\n\t\t239, 180, 183, 213, 152, 86, 144, 16, 223, 153, 185, 132,\n\t\t38, 5, 113, 95, 97, 110, 111, 41, 81, 6, 9, 42, 181, 193,\n\t\t26, 186, 102, 99, 38, 157, 80, 218, 27, 103, 48, 86, 105,\n\t\t145, 109, 82, 123, 43, 157, 45, 145, 62, 130, 225, 89, 195,\n\t\t106, 127, 203, 253, 148, 81, 108, 10, 38, 233, 109, 120, 95,\n\t\t36, 137, 207, 168, 82, 172, 125, 109, 28, 89, 146, 206, 251,\n\t\t65, 56, 172, 7, 220, 106, 161, 181, 250, 26, 31, 143, 52,\n\t\t113, 218, 74, 59, 141, 175, 11, 60, 29, 146, 85, 158, 184,\n\t\t2, 234, 26, 65, 170, 71, 232, 123, 200, 186, 152, 109, 112,\n\t\t34, 66, 170, 17, 203, 27, 154, 70, 5, 150, 142, 84, 107, 212,\n\t\t149, 76, 128, 5, 75, 245, 51, 29, 133, 108, 218, 172, 251,\n\t\t218, 55, 232, 61, 199, 96, 59, 147, 66, 68, 104, 27, 204,\n\t\t38, 229, 67, 89, 189, 207, 206, 47, 23, 182, 54, 99, 246,\n\t\t132, 47, 75, 23, 132, 75, 235, 170, 81, 176, 26, 55, 93, 231,\n\t\t214, 171, 19, 158, 77, 60, 202, 126, 11, 231, 212, 117, 230,\n\t\t119, 23, 230, 106, 203, 227, 70, 212, 226, 24, 146, 239, 1,\n\t\t224, 149, 148, 81, 246, 150, 231, 199, 207, 91, 19, 85, 231,\n\t\t233, 176, 114, 65, 162, 74, 106, 211, 133, 53, 203, 217, 120,\n\t\t20, 18, 108, 251, 37, 71, 180, 127, 6, 71, 37, 19, 213, 169,\n\t\t251, 107, 90, 65, 50, 142, 148, 115, 14, 252, 146, 78, 206,\n\t\t180, 66, 88, 190, 98, 112, 113, 58, 201, 245, 251, 116, 80,\n\t\t25, 79, 43, 118, 231, 66, 23, 143, 180, 197, 224, 30, 123,\n\t\t200, 229, 4, 122, 42, 92, 197, 141, 219, 62, 180, 199, 252,\n\t\t201, 246, 222, 94, 18, 202, 45, 163, 235, 71, 61, 247, 224,\n\t\t2, 170, 112, 160, 210, 112, 119, 215, 253, 199, 30, 144, 140,\n\t\t229, 207, 203, 241, 210, 251, 185, 174, 42, 189, 63, 244,\n\t\t36, 145, 231, 201, 187, 163, 159, 190, 85, 172, 206, 174,\n\t\t31, 233, 129, 101, 185, 159, 251, 229, 96, 230, 30, 118, 110,\n\t\t15, 172, 62, 188, 69, 44, 110, 0, 75, 169, 107, 190, 107,\n\t\t1, 102, 112, 165, 129, 171, 251, 190, 96, 13, 239, 58, 82,\n\t\t137, 168, 38, 133, 44, 155, 157, 84, 143, 58, 36, 219, 21,\n\t\t71, 170, 81, 44, 206, 61, 249, 217, 9, 28, 54, 82, 211, 56,\n\t\t6, 129, 185, 164, 231, 124, 14, 49, 245, 127, 190, 127, 121,\n\t\t14, 52, 252, 205, 115, 129, 237, 196, 150, 171, 225, 238,\n\t\t91, 57, 247, 106, 2, 240, 190, 251, 218, 135, 17, 39, 56,\n\t\t20, 198, 75, 6, 138, 166, 55, 92, 142, 16, 8, 12, 105, 112,\n\t\t146, 200, 182, 71, 77, 18, 12, 105, 157, 132, 241, 210, 214,\n\t\t246, 99, 46, 91, 78, 224, 174, 53, 3, 6, 85, 159, 93, 210,\n\t\t246, 249, 122, 76, 92, 179, 3, 173, 31, 249, 129, 103, 93,\n\t\t41, 245, 52, 97, 165, 49, 101, 109, 157, 28, 132, 124, 32,\n\t\t184, 35, 109, 41, 180, 219, 189, 20, 160, 43, 166, 40, 172,\n\t\t156, 81, 88, 58, 125, 202, 200, 207, 68, 65, 63, 200, 140,\n\t\t234, 182, 167, 216, 15, 245, 250, 139, 52, 52, 171, 212, 200,\n\t\t243, 40, 132, 43, 173, 8, 229, 227, 120, 100, 153, 43, 35,\n\t\t105, 78, 183, 74, 1, 149, 180, 44, 246, 179, 253, 154, 47,\n\t\t16, 181, 210, 8, 52, 85, 77, 230, 17, 115, 47, 4, 84, 231,\n\t\t221, 139, 183, 181, 77, 149, 207, 92, 142, 34, 122, 102, 104,\n\t\t229, 200, 143, 61, 244, 38, 56, 202, 152, 196, 98, 147, 153,\n\t\t147, 193, 153, 96, 226, 242, 47, 102, 168, 136, 143, 187,\n\t\t111, 97, 54, 117, 21, 190, 9, 165, 132, 166, 87, 135, 118,\n\t\t109, 82, 18, 238, 162, 128, 12, 164, 206, 209, 116, 169, 133,\n\t\t181, 65, 79, 134, 81, 148, 177, 180, 210, 14, 52, 247, 131,\n\t\t138, 132, 223, 238, 95, 255, 249, 245, 219, 235, 249, 228,\n\t\t62, 251, 219, 103, 220, 4, 174, 109, 49, 247, 163, 122, 65,\n\t\t159, 217, 138, 184, 111, 33, 226, 189, 176, 116, 194, 103,\n\t\t175, 251, 83, 201, 242, 41, 160, 202, 162, 202, 25, 194, 125,\n\t\t206, 83, 163, 144, 215, 227, 92, 39, 14, 88, 68, 64, 202,\n\t\t145, 171, 15, 235, 71, 5, 118, 186, 158, 142, 204, 185, 208,\n\t\t0, 188, 206, 199, 242, 208, 254, 225, 61, 222, 94, 178, 159,\n\t\t75, 38, 223, 28, 193, 6, 161, 110, 227, 5, 46, 128, 229, 0,\n\t\t201, 117, 77, 108, 124, 156, 125, 27, 66, 242, 94, 181, 90,\n\t\t56, 207, 105, 215, 234, 145, 66, 173, 162, 92, 38, 44, 155,\n\t\t193, 29, 45, 23, 193, 211, 169, 33, 158, 251, 252, 5, 101,\n\t\t200, 116, 113, 63, 192, 4, 94, 93, 28, 162, 184, 240, 49,\n\t\t56, 95, 74, 199, 42, 184, 0, 187, 222, 83, 143, 128, 63, 86,\n\t\t66, 125, 136, 40, 128, 31, 98, 190, 115, 72, 114, 233, 92,\n\t\t112, 155, 144, 52, 169, 159, 181, 205, 31, 132, 51, 93, 209,\n\t\t139, 244, 28, 253, 134, 203, 145, 219, 171, 220, 184, 189,\n\t\t191, 177, 56, 198, 215, 141, 125, 10, 185, 189, 191, 177,\n\t\t188, 237, 245, 198, 243, 227, 236, 200, 144, 222, 84, 29,\n\t\t234, 47, 61, 2, 205, 245, 163, 71, 248, 119, 143, 104, 114,\n\t\t27, 129, 184, 196, 35, 124, 230, 64, 209, 3, 81, 186, 79,\n\t\t61, 110, 108, 116, 25, 103, 49, 43, 17, 63, 95, 16, 213, 84,\n\t\t242, 12, 57, 50, 187, 31, 254, 223, 40, 39, 180, 121, 165,\n\t\t47, 98, 25, 55, 97, 142, 157, 183, 31, 28, 187, 22, 209, 8,\n\t\t218, 161, 65, 231, 72, 212, 19, 180, 13, 32, 10, 241, 242,\n\t\t214, 40, 177, 203, 176, 226, 87, 237, 57, 108, 58, 30, 71,\n\t\t240, 71, 172, 78, 66, 8, 8, 236, 33, 105, 15, 106, 151, 4,\n\t\t2, 167, 169, 152, 144, 229, 141, 191, 24, 183, 91, 8, 250,\n\t\t69, 46, 162, 186, 5, 119, 45, 77, 94, 12, 163, 120, 190, 8,\n\t\t95, 192, 235, 55, 238, 130, 121, 149, 1, 220, 241, 238, 64,\n\t\t202, 156, 171, 169, 43, 77, 137, 54, 131, 47, 0, 113, 228,\n\t\t54, 50, 33, 5, 36, 16, 95, 83, 16, 171, 197, 236, 153, 2,\n\t\t87, 230, 140, 140, 129, 17, 15, 151, 192, 123, 36, 49, 195,\n\t\t118, 164, 144, 37, 84, 24, 231, 8, 145, 120, 93, 168, 117,\n\t\t128, 143, 12, 131, 131, 111, 60, 127, 232, 165, 79, 37, 20,\n\t\t163, 167, 73, 91, 223, 70, 61, 122, 239, 170, 227, 206, 215,\n\t\t160, 212, 9, 58, 97, 41, 87, 98, 26, 81, 7, 67, 154, 63, 165,\n\t\t188, 53, 253, 169, 232, 124, 243, 17, 83, 134, 251, 3, 210,\n\t\t44, 200, 188, 206, 62, 23, 19, 122, 156, 242, 243, 219, 241,\n\t\t197, 120, 232, 148, 66, 200, 139, 71, 211, 36, 61, 164, 251,\n\t\t224, 236, 152, 157, 131, 114, 81, 25, 183, 133, 150, 44, 78,\n\t\t144, 91, 37, 200, 145, 217, 90, 0, 71, 159, 173, 129, 34,\n\t\t121, 25, 89, 118, 32, 202, 134, 212, 161, 112, 84, 153, 80,\n\t\t181, 238, 245, 20, 104, 124, 72, 210, 27, 237, 210, 223, 94,\n\t\t38, 81, 106, 210, 241, 45, 173, 125, 73, 226, 151, 235, 195,\n\t\t101, 195, 36, 68, 162, 228, 174, 114, 100, 216, 24, 10, 218,\n\t\t76, 137, 83, 13, 35, 54, 22, 120, 76, 100, 90, 186, 102, 175,\n\t\t194, 27, 242, 237, 155, 222, 215, 235, 48, 215, 253, 219,\n\t\t101, 160, 113, 62, 237, 28, 13, 161, 45, 121, 225, 156, 31,\n\t\t193, 81, 246, 53, 105, 117, 114, 237, 128, 93, 38, 249, 178,\n\t\t14, 212, 174, 11, 135, 111, 115, 201, 131, 80, 82, 96, 50,\n\t\t25, 226, 58, 174, 0, 83, 56, 63, 34, 6, 253, 8, 61, 48, 188,\n\t\t246, 167, 219, 56, 192, 56, 173, 185, 207, 51, 231, 20, 209,\n\t\t133, 96, 138, 9, 2, 206, 217, 105, 114, 64, 82, 108, 171,\n\t\t4, 159, 119, 123, 156, 201, 138, 245, 2, 114, 190, 160, 232,\n\t\t84, 159, 182, 144, 147, 84, 68, 200, 136, 215, 113, 17, 251,\n\t\t187, 134, 68, 49, 153, 72, 226, 112, 168, 207, 187, 3, 136,\n\t\t80, 212, 141, 56, 135, 60, 200, 124, 171, 223, 10, 31, 170,\n\t\t7, 166, 116, 210, 181, 56, 233, 103, 84, 125, 76, 153, 253,\n\t\t50, 166, 202, 38, 35, 43, 18, 103, 72, 23, 0, 238, 7, 89,\n\t\t7, 193, 94, 72, 121, 127, 209, 46, 100, 185, 13, 178, 184,\n\t\t242, 192, 176, 209, 134, 192, 130, 173, 183, 156, 49, 107,\n\t\t192, 83, 228, 150, 168, 169, 25, 62, 40, 228, 170, 171, 2,\n\t\t146, 18, 231, 190, 0, 57, 202, 145, 18, 167, 8, 121, 3, 150,\n\t\t82, 22, 96, 150, 134, 108, 12, 169, 137, 17, 168, 205, 166,\n\t\t34, 141, 35, 143, 210, 80, 15, 188, 83, 82, 130, 68, 63, 240,\n\t\t181, 216, 209, 147, 76, 47, 16, 162, 123, 189, 117, 187, 104,\n\t\t64, 34, 177, 156, 109, 163, 22, 124, 54, 136, 51, 241, 203,\n\t\t27, 219, 11, 200, 153, 15, 189, 245, 219, 75, 128, 232, 206,\n\t\t127, 246, 25, 34, 86, 47, 223, 241, 39, 159, 160, 61, 115,\n\t\t249, 14, 174, 205, 31, 62, 230, 253, 183, 80, 92, 216, 183,\n\t\t240, 42, 46, 86, 215, 47, 154, 138, 229, 124, 129, 167, 79,\n\t\t232, 83, 220, 183, 63, 239, 137, 185, 66, 189, 239, 10, 128,\n\t\t204, 224, 192, 171, 29, 248, 240, 242, 57, 252, 248, 229,\n\t\t37, 10, 127, 125, 249, 188, 190, 230, 149, 7, 222, 245, 65,\n\t\t14, 207, 31, 16, 83, 150, 193, 198, 15, 184, 253, 55, 190,\n\t\t224, 95, 208, 252, 246, 5, 222, 253, 249, 203, 39, 44, 153,\n\t\t211, 106, 14, 3, 78, 39, 129, 201, 236, 34, 56, 1, 134, 33,\n\t\t171, 140, 11, 50, 95, 60, 164, 166, 183, 35, 183, 177, 247,\n\t\t194, 213, 110, 247, 101, 206, 101, 20, 80, 64, 253, 213, 125,\n\t\t95, 139, 138, 90, 95, 164, 25, 194, 22, 117, 26, 23, 42, 29,\n\t\t3, 211, 39, 106, 126, 208, 110, 43, 103, 165, 46, 109, 71,\n\t\t60, 198, 21, 108, 11, 211, 215, 76, 1, 198, 7, 129, 155, 92,\n\t\t165, 68, 65, 35, 14, 46, 61, 157, 106, 145, 94, 65, 245, 81,\n\t\t60, 186, 178, 124, 59, 137, 10, 137, 120, 162, 86, 242, 81,\n\t\t79, 189, 141, 172, 210, 207, 86, 49, 93, 246, 41, 234, 62,\n\t\t170, 195, 127, 237, 190, 127, 116, 91, 121, 211, 31, 222,\n\t\t182, 189, 191, 173, 74, 115, 187, 173, 52, 192, 187, 183,\n\t\t245, 239, 222, 246, 106, 120, 220, 76, 225, 81, 169, 81, 146,\n\t\t88, 112, 16, 41, 92, 81, 125, 25, 208, 161, 75, 163, 78, 59,\n\t\t151, 145, 92, 122, 220, 122, 144, 78, 152, 203, 125, 194,\n\t\t50, 244, 246, 146, 100, 61, 219, 66, 241, 106, 180, 229, 168,\n\t\t119, 138, 124, 29, 7, 173, 68, 220, 67, 120, 31, 57, 128,\n\t\t225, 41, 186, 184, 20, 143, 74, 155, 101, 85, 59, 43, 245,\n\t\t81, 93, 40, 165, 176, 174, 103, 143, 146, 202, 216, 130, 184,\n\t\t106, 83, 170, 40, 150, 132, 61, 48, 245, 54, 29, 36, 114,\n\t\t224, 54, 64, 120, 150, 166, 196, 234, 85, 208, 120, 167, 186,\n\t\t17, 155, 7, 91, 254, 90, 137, 107, 194, 169, 56, 161, 80,\n\t\t129, 222, 138, 42, 84, 220, 7, 35, 122, 253, 1, 108, 202,\n\t\t247, 239, 255, 56, 191, 238, 191, 156, 191, 63, 225, 68, 253,\n\t\t45, 254, 149, 250, 144, 2, 254, 84, 86, 136, 28, 31, 106,\n\t\t68, 142, 63, 173, 18, 57, 222, 215, 137, 28, 31, 42, 69, 124,\n\t\t173, 71, 220, 74, 27, 213, 106, 36, 133, 34, 61, 91, 118,\n\t\t198, 220, 3, 163, 215, 112, 91, 125, 202, 31, 240, 86, 177,\n\t\t171, 33, 80, 5, 240, 188, 35, 193, 172, 63, 88, 123, 124,\n\t\t175, 136, 53, 149, 155, 177, 44, 163, 210, 94, 54, 16, 37,\n\t\t176, 24, 159, 158, 105, 71, 198, 158, 32, 118, 234, 42, 228,\n\t\t202, 107, 175, 74, 56, 111, 172, 34, 223, 168, 78, 217, 218,\n\t\t228, 62, 151, 51, 225, 94, 243, 122, 220, 109, 86, 141, 167,\n\t\t127, 89, 49, 197, 156, 138, 147, 56, 174, 74, 73, 36, 254,\n\t\t4, 196, 141, 88, 240, 148, 213, 175, 19, 13, 216, 37, 114,\n\t\t251, 54, 172, 150, 215, 1, 140, 8, 64, 16, 89, 55, 125, 72,\n\t\t175, 57, 91, 230, 195, 52, 150, 228, 232, 27, 0, 37, 4, 95,\n\t\t48, 220, 149, 34, 30, 36, 36, 247, 253, 105, 47, 63, 246,\n\t\t167, 237, 143, 155, 243, 159, 31, 50, 141, 255, 25, 119, 216,\n\t\t223, 146, 69, 150, 123, 61, 36, 110, 27, 4, 253, 132, 196,\n\t\t247, 2, 118, 231, 194, 58, 160, 27, 143, 61, 166, 170, 192,\n\t\t162, 18, 8, 98, 93, 214, 199, 51, 109, 227, 174, 151, 236,\n\t\t250, 140, 197, 174, 255, 241, 82, 62, 131, 143, 192, 5, 31,\n\t\t223, 228, 195, 223, 59, 78, 126, 123, 137, 57, 128, 65, 214,\n\t\t31, 245, 110, 33, 213, 135, 79, 78, 74, 176, 57, 46, 245,\n\t\t47, 139, 211, 187, 110, 141, 93, 0, 85, 188, 249, 187, 117,\n\t\t35, 27, 46, 68, 209, 216, 90, 50, 207, 49, 3, 25, 151, 10,\n\t\t72, 197, 22, 208, 42, 226, 97, 89, 51, 134, 144, 164, 46,\n\t\t69, 230, 53, 236, 12, 90, 26, 51, 44, 11, 159, 225, 227, 128,\n\t\t220, 134, 91, 43, 91, 148, 108, 26, 30, 124, 39, 78, 54, 11,\n\t\t247, 89, 250, 137, 38, 206, 104, 62, 217, 99, 90, 88, 67,\n\t\t221, 184, 160, 161, 21, 135, 124, 150, 242, 102, 121, 231,\n\t\t66, 47, 173, 95, 64, 28, 74, 232, 136, 127, 163, 80, 247,\n\t\t52, 230, 137, 200, 209, 121, 210, 190, 206, 82, 183, 33, 162,\n\t\t235, 4, 245, 13, 234, 33, 247, 4, 156, 211, 71, 73, 148, 162,\n\t\t168, 110, 132, 115, 251, 74, 52, 178, 132, 35, 221, 184, 89,\n\t\t224, 8, 202, 136, 140, 9, 230, 104, 104, 190, 148, 54, 209,\n\t\t67, 145, 195, 150, 68, 147, 134, 90, 112, 192, 87, 186, 246,\n\t\t217, 100, 143, 164, 60, 147, 31, 207, 92, 149, 187, 188, 148,\n\t\t30, 102, 73, 254, 24, 68, 140, 224, 203, 177, 92, 150, 168,\n\t\t86, 69, 230, 189, 180, 45, 65, 5, 128, 107, 164, 248, 68,\n\t\t250, 41, 213, 156, 201, 114, 0, 220, 2, 242, 46, 130, 43,\n\t\t239, 10, 170, 209, 57, 32, 57, 96, 12, 150, 89, 210, 217,\n\t\t52, 152, 197, 183, 228, 190, 140, 242, 79, 37, 198, 249, 237,\n\t\t231, 239, 207, 48, 96, 127, 91, 136, 135, 72, 251, 8, 1, 96,\n\t\t123, 54, 226, 195, 5, 16, 172, 16, 77, 137, 32, 26, 85, 146,\n\t\t245, 36, 87, 129, 169, 91, 66, 195, 194, 143, 181, 84, 176,\n\t\t115, 207, 12, 125, 39, 206, 133, 75, 106, 27, 175, 182, 36,\n\t\t193, 117, 136, 20, 108, 167, 13, 29, 15, 0, 93, 141, 89, 8,\n\t\t96, 177, 188, 3, 51, 188, 86, 254, 215, 243, 139, 200, 96,\n\t\t59, 231, 215, 200, 42, 152, 245, 14, 235, 156, 75, 170, 152,\n\t\t246, 250, 229, 80, 194, 155, 32, 87, 189, 34, 105, 98, 219,\n\t\t83, 249, 191, 124, 60, 104, 41, 21, 156, 167, 104, 212, 121,\n\t\t197, 187, 47, 121, 6, 235, 141, 76, 4, 233, 29, 121, 100,\n\t\t172, 150, 186, 94, 39, 77, 102, 7, 24, 249, 211, 83, 231,\n\t\t231, 107, 208, 174, 144, 84, 10, 140, 95, 148, 43, 144, 28,\n\t\t53, 44, 164, 217, 202, 211, 140, 148, 139, 239, 134, 164,\n\t\t18, 92, 43, 169, 16, 10, 47, 114, 18, 107, 200, 203, 155,\n\t\t142, 133, 14, 193, 37, 8, 217, 188, 138, 55, 109, 188, 170,\n\t\t161, 104, 11, 17, 19, 1, 201, 58, 206, 143, 213, 44, 28, 54,\n\t\t118, 64, 30, 47, 107, 186, 188, 133, 225, 231, 107, 172, 93,\n\t\t18, 34, 113, 149, 136, 50, 165, 175, 150, 53, 78, 65, 246,\n\t\t55, 141, 237, 159, 4, 96, 223, 60, 152, 168, 222, 63, 91,\n\t\t91, 214, 82, 111, 229, 93, 230, 147, 49, 28, 252, 28, 23,\n\t\t6, 219, 127, 73, 34, 93, 4, 103, 28, 186, 188, 233, 217, 45,\n\t\t193, 67, 103, 198, 74, 249, 187, 136, 56, 142, 164, 234, 44,\n\t\t23, 194, 230, 203, 153, 53, 118, 37, 112, 172, 206, 139, 115,\n\t\t99, 1, 97, 218, 124, 214, 103, 123, 158, 175, 105, 112, 23,\n\t\t172, 121, 237, 184, 19, 53, 66, 154, 9, 116, 125, 33, 107,\n\t\t9, 75, 96, 212, 68, 4, 203, 133, 145, 30, 92, 217, 157, 154,\n\t\t36, 162, 164, 180, 4, 59, 28, 198, 82, 96, 173, 100, 248,\n\t\t116, 214, 186, 58, 198, 78, 40, 90, 229, 92, 249, 134, 154,\n\t\t191, 49, 220, 102, 199, 48, 18, 87, 170, 3, 91, 70, 51, 99,\n\t\t98, 25, 107, 224, 216, 243, 164, 129, 158, 186, 211, 157,\n\t\t213, 217, 184, 24, 16, 105, 118, 206, 74, 107, 209, 183, 179,\n\t\t15, 13, 111, 47, 33, 2, 242, 221, 3, 217, 28, 144, 79, 200,\n\t\t44, 13, 24, 26, 211, 118, 146, 220, 164, 217, 229, 18, 82,\n\t\t148, 182, 64, 148, 254, 232, 91, 236, 114, 225, 212, 18, 0,\n\t\t20, 128, 147, 13, 181, 8, 190, 241, 219, 233, 93, 57, 144,\n\t\t157, 158, 64, 174, 159, 210, 22, 106, 58, 250, 89, 185, 0,\n\t\t243, 137, 134, 18, 224, 5, 79, 228, 220, 9, 141, 169, 106,\n\t\t243, 219, 11, 225, 122, 252, 156, 128, 103, 225, 178, 165,\n\t\t220, 4, 39, 51, 67, 183, 46, 19, 245, 220, 171, 35, 16, 214,\n\t\t219, 75, 215, 182, 213, 4, 245, 51, 147, 207, 95, 63, 235,\n\t\t52, 254, 251, 34, 9, 158, 72, 143, 193, 253, 52, 116, 250,\n\t\t246, 226, 11, 0, 142, 52, 215, 254, 172, 43, 40, 43, 114,\n\t\t128, 93, 82, 221, 237, 220, 27, 211, 146, 52, 63, 68, 28,\n\t\t109, 105, 43, 238, 12, 149, 218, 199, 194, 215, 215, 81, 95,\n\t\t192, 170, 218, 86, 118, 9, 115, 94, 156, 77, 8, 195, 223,\n\t\t180, 249, 161, 157, 44, 169, 70, 74, 60, 33, 153, 12, 103,\n\t\t80, 107, 101, 15, 110, 88, 50, 46, 199, 146, 56, 126, 68,\n\t\t186, 72, 117, 74, 7, 200, 43, 64, 148, 154, 244, 217, 169,\n\t\t171, 186, 174, 65, 144, 198, 242, 93, 73, 143, 172, 25, 171,\n\t\t121, 85, 224, 185, 0, 138, 253, 180, 8, 79, 194, 83, 232,\n\t\t8, 217, 139, 166, 106, 36, 185, 240, 188, 102, 139, 187, 51,\n\t\t241, 243, 66, 229, 212, 251, 3, 1, 99, 243, 89, 195, 224,\n\t\t108, 2, 206, 164, 29, 6, 224, 219, 11, 130, 34, 217, 29, 253,\n\t\t108, 71, 222, 138, 242, 78, 239, 153, 202, 181, 114, 148,\n\t\t158, 187, 117, 150, 8, 128, 79, 213, 147, 255, 253, 251, 247,\n\t\t103, 200, 217, 145, 22, 30, 179, 147, 172, 45, 136, 163, 149,\n\t\t245, 102, 16, 150, 123, 167, 45, 218, 186, 237, 12, 201, 239,\n\t\t118, 200, 116, 201, 11, 167, 172, 171, 17, 87, 152, 158, 231,\n\t\t61, 242, 104, 34, 211, 21, 66, 234, 91, 102, 98, 88, 0, 125,\n\t\t11, 96, 142, 124, 221, 144, 209, 84, 142, 186, 249, 142, 164,\n\t\t152, 185, 61, 188, 243, 7, 12, 113, 160, 60, 205, 89, 38,\n\t\t90, 27, 144, 226, 118, 57, 71, 146, 99, 179, 162, 150, 238,\n\t\t98, 165, 239, 149, 5, 16, 30, 220, 245, 150, 171, 171, 201,\n\t\t42, 65, 65, 105, 186, 128, 44, 103, 219, 27, 65, 72, 197,\n\t\t1, 65, 203, 226, 142, 136, 176, 103, 5, 163, 117, 215, 57,\n\t\t138, 152, 26, 50, 81, 169, 132, 7, 75, 200, 145, 251, 102,\n\t\t178, 191, 16, 138, 210, 57, 40, 250, 222, 1, 197, 22, 217,\n\t\t19, 62, 107, 162, 81, 155, 223, 60, 119, 198, 94, 133, 212,\n\t\t220, 209, 21, 144, 109, 103, 158, 160, 25, 6, 208, 115, 152,\n\t\t129, 1, 190, 129, 190, 217, 89, 216, 189, 13, 175, 148, 194,\n\t\t186, 178, 201, 60, 210, 100, 20, 102, 97, 15, 209, 73, 164,\n\t\t237, 184, 86, 21, 175, 19, 145, 124, 31, 122, 192, 128, 248,\n\t\t221, 74, 222, 216, 253, 202, 102, 223, 211, 137, 160, 244,\n\t\t188, 36, 172, 100, 87, 121, 190, 86, 160, 8, 48, 211, 226,\n\t\t158, 212, 205, 145, 42, 111, 141, 242, 229, 184, 117, 1, 96,\n\t\t145, 219, 125, 110, 180, 255, 250, 245, 235, 62, 135, 247,\n\t\t62, 190, 252, 243, 151, 167, 193, 158, 159, 50, 65, 42, 157,\n\t\t74, 69, 147, 118, 162, 131, 145, 134, 228, 127, 140, 52, 3,\n\t\t101, 243, 37, 110, 72, 84, 173, 115, 100, 168, 221, 168, 128,\n\t\t69, 68, 250, 220, 9, 206, 104, 7, 144, 80, 132, 2, 23, 105,\n\t\t23, 144, 221, 32, 92, 163, 19, 44, 194, 93, 39, 165, 36, 228,\n\t\t84, 193, 32, 238, 54, 196, 235, 33, 145, 129, 217, 12, 181,\n\t\t109, 190, 149, 173, 171, 44, 246, 173, 72, 252, 150, 83, 137,\n\t\t153, 243, 220, 87, 88, 80, 209, 86, 12, 1, 198, 88, 230, 9,\n\t\t193, 148, 221, 122, 95, 93, 46, 167, 76, 217, 154, 124, 199,\n\t\t64, 20, 80, 237, 110, 233, 108, 204, 180, 68, 186, 210, 162,\n\t\t166, 170, 2, 55, 13, 20, 167, 101, 230, 135, 106, 210, 18,\n\t\t247, 125, 4, 49, 146, 250, 196, 21, 100, 86, 218, 205, 104,\n\t\t174, 189, 226, 2, 106, 11, 15, 171, 226, 88, 52, 191, 27,\n\t\t63, 135, 251, 90, 86, 53, 191, 213, 112, 118, 11, 253, 9,\n\t\t50, 228, 164, 50, 78, 110, 25, 89, 166, 161, 101, 9, 83, 180,\n\t\t191, 75, 107, 222, 18, 49, 174, 106, 82, 47, 25, 69, 120,\n\t\t213, 69, 201, 242, 183, 201, 252, 201, 6, 209, 3, 138, 137,\n\t\t235, 117, 129, 99, 225, 23, 247, 53, 249, 114, 224, 12, 123,\n\t\t25, 105, 9, 174, 40, 116, 240, 201, 62, 234, 70, 53, 147,\n\t\t119, 185, 25, 244, 243, 4, 36, 73, 45, 138, 17, 136, 207,\n\t\t71, 113, 20, 53, 135, 107, 79, 125, 109, 55, 245, 226, 185,\n\t\t197, 29, 180, 219, 149, 38, 59, 179, 145, 130, 119, 117, 247,\n\t\t44, 124, 111, 29, 200, 90, 30, 176, 204, 74, 30, 209, 158,\n\t\t27, 168, 28, 233, 98, 146, 168, 232, 157, 230, 56, 226, 197,\n\t\t76, 69, 39, 128, 188, 194, 61, 29, 72, 217, 136, 32, 102,\n\t\t178, 101, 147, 30, 133, 221, 200, 213, 233, 27, 37, 6, 174,\n\t\t30, 24, 139, 252, 10, 214, 99, 181, 146, 165, 124, 221, 165,\n\t\t178, 108, 223, 178, 188, 65, 154, 186, 186, 14, 24, 172, 50,\n\t\t102, 113, 52, 74, 32, 122, 236, 120, 196, 88, 141, 171, 25,\n\t\t113, 250, 56, 102, 199, 218, 129, 32, 18, 245, 118, 197, 152,\n\t\t54, 251, 86, 199, 107, 98, 190, 175, 83, 67, 79, 134, 97,\n\t\t81, 175, 86, 182, 114, 31, 228, 141, 115, 111, 193, 81, 155,\n\t\t21, 114, 221, 220, 23, 243, 39, 111, 200, 22, 221, 235, 218,\n\t\t212, 234, 170, 33, 65, 122, 29, 64, 132, 90, 143, 36, 80,\n\t\t181, 35, 21, 108, 242, 94, 49, 155, 189, 61, 11, 64, 128,\n\t\t142, 10, 140, 140, 220, 219, 176, 47, 22, 108, 38, 142, 231,\n\t\t149, 216, 236, 212, 143, 38, 175, 26, 150, 185, 174, 173,\n\t\t151, 158, 202, 80, 237, 136, 186, 112, 68, 250, 218, 144,\n\t\t81, 87, 139, 200, 96, 213, 58, 85, 228, 165, 234, 142, 180,\n\t\t197, 38, 201, 73, 29, 152, 186, 157, 200, 110, 149, 154, 184,\n\t\t86, 109, 9, 172, 220, 62, 151, 240, 214, 5, 9, 85, 221, 228,\n\t\t13, 201, 162, 189, 81, 180, 205, 253, 155, 114, 74, 123, 37,\n\t\t181, 48, 92, 118, 30, 208, 161, 54, 28, 97, 11, 13, 229, 90,\n\t\t205, 135, 72, 66, 184, 185, 62, 77, 109, 93, 117, 137, 146,\n\t\t64, 45, 37, 131, 179, 72, 85, 131, 151, 130, 208, 11, 62,\n\t\t188, 88, 32, 101, 25, 160, 50, 1, 51, 31, 74, 161, 98, 164,\n\t\t100, 170, 167, 41, 115, 24, 247, 167, 106, 218, 14, 63, 37,\n\t\t57, 124, 42, 205, 76, 110, 207, 169, 80, 215, 230, 212, 39,\n\t\t176, 240, 24, 203, 49, 229, 83, 226, 218, 164, 39, 202, 145,\n\t\t251, 30, 138, 63, 188, 148, 112, 58, 250, 72, 244, 175, 23,\n\t\t16, 122, 222, 138, 47, 204, 155, 201, 57, 122, 31, 220, 230,\n\t\t243, 108, 209, 175, 231, 215, 127, 252, 250, 229, 159, 79,\n\t\t42, 194, 19, 33, 210, 191, 28, 151, 44, 150, 126, 180, 45,\n\t\t84, 119, 248, 65, 65, 99, 235, 162, 213, 210, 137, 242, 183,\n\t\t16, 52, 243, 185, 135, 216, 15, 143, 96, 161, 194, 105, 178,\n\t\t93, 109, 180, 155, 19, 222, 107, 125, 176, 142, 7, 89, 212,\n\t\t207, 178, 208, 244, 196, 127, 224, 19, 178, 164, 147, 166,\n\t\t245, 203, 18, 154, 214, 144, 16, 108, 82, 237, 129, 186, 28,\n\t\t28, 249, 20, 202, 64, 193, 61, 141, 71, 59, 119, 94, 181,\n\t\t23, 69, 8, 46, 54, 84, 88, 173, 192, 178, 1, 176, 53, 168,\n\t\t79, 139, 248, 137, 138, 115, 119, 150, 128, 162, 156, 170,\n\t\t149, 214, 178, 216, 22, 149, 86, 134, 208, 103, 62, 34, 5,\n\t\t229, 243, 63, 74, 22, 254, 219, 151, 159, 127, 250, 35, 13,\n\t\t241, 167, 39, 13, 241, 95, 222, 253, 161, 23, 212, 24, 198,\n\t\t105, 237, 81, 67, 206, 229, 240, 247, 221, 55, 127, 238, 109,\n\t\t153, 47, 243, 160, 111, 63, 136, 169, 254, 250, 229, 241,\n\t\t244, 85, 159, 176, 124, 69, 231, 5, 167, 221, 10, 60, 173,\n\t\t235, 236, 128, 55, 146, 67, 214, 120, 47, 183, 195, 78, 5,\n\t\t241, 114, 185, 190, 175, 95, 42, 169, 28, 208, 170, 49, 119,\n\t\t10, 1, 192, 252, 103, 94, 23, 85, 147, 162, 50, 167, 157,\n\t\t187, 152, 21, 213, 218, 37, 154, 190, 60, 240, 227, 91, 242,\n\t\t124, 219, 215, 138, 26, 247, 246, 50, 231, 86, 223, 66, 22,\n\t\t57, 108, 74, 176, 206, 6, 150, 241, 173, 233, 1, 204, 203,\n\t\t121, 162, 134, 2, 54, 219, 84, 5, 86, 20, 150, 17, 183, 104,\n\t\t179, 32, 110, 122, 89, 180, 42, 226, 40, 171, 154, 196, 115,\n\t\t242, 219, 75, 72, 9, 175, 225, 142, 68, 94, 247, 8, 212, 71,\n\t\t187, 150, 111, 96, 101, 200, 239, 223, 80, 19, 202, 69, 31,\n\t\t199, 18, 102, 81, 177, 245, 214, 209, 212, 226, 121, 243,\n\t\t168, 139, 190, 94, 119, 123, 123, 137, 30, 81, 136, 18, 167,\n\t\t129, 73, 4, 94, 46, 215, 83, 109, 133, 224, 49, 206, 37, 54,\n\t\t171, 146, 125, 12, 51, 155, 147, 233, 204, 50, 100, 85, 52,\n\t\t101, 42, 34, 116, 128, 140, 37, 229, 105, 29, 179, 62, 194,\n\t\t204, 100, 122, 24, 146, 41, 251, 88, 40, 68, 232, 37, 150,\n\t\t208, 68, 227, 54, 181, 162, 154, 78, 223, 15, 140, 149, 232,\n\t\t218, 17, 128, 147, 164, 65, 45, 183, 45, 130, 76, 67, 160,\n\t\t21, 89, 168, 224, 149, 86, 196, 185, 67, 37, 22, 53, 242,\n\t\t130, 232, 142, 53, 5, 174, 149, 127, 25, 37, 125, 154, 58,\n\t\t212, 230, 83, 199, 176, 192, 3, 213, 205, 70, 88, 102, 214,\n\t\t47, 6, 117, 170, 4, 241, 69, 223, 134, 153, 222, 100, 179,\n\t\t2, 208, 255, 20, 210, 145, 11, 72, 78, 98, 211, 39, 45, 17,\n\t\t197, 12, 20, 28, 160, 237, 221, 226, 162, 59, 195, 194, 15,\n\t\t75, 96, 123, 240, 200, 75, 155, 104, 159, 141, 200, 54, 134,\n\t\t147, 132, 46, 235, 160, 230, 239, 199, 3, 3, 77, 217, 150,\n\t\t81, 38, 230, 10, 137, 61, 84, 205, 83, 126, 175, 155, 45,\n\t\t131, 209, 47, 178, 173, 76, 131, 35, 145, 75, 52, 40, 186,\n\t\t72, 96, 229, 11, 70, 11, 157, 236, 156, 26, 134, 63, 161,\n\t\t149, 109, 194, 153, 42, 119, 114, 52, 80, 168, 29, 106, 232,\n\t\t152, 159, 193, 202, 109, 148, 62, 138, 154, 193, 83, 153,\n\t\t79, 177, 164, 156, 222, 44, 18, 135, 130, 235, 39, 43, 234,\n\t\t116, 54, 167, 46, 61, 99, 138, 204, 197, 207, 190, 100, 47,\n\t\t85, 55, 59, 79, 126, 246, 70, 63, 176, 7, 150, 142, 41, 16,\n\t\t139, 205, 51, 191, 70, 137, 12, 31, 125, 245, 15, 251, 80,\n\t\t250, 244, 99, 150, 139, 146, 110, 3, 134, 63, 117, 186, 15,\n\t\t11, 136, 123, 191, 152, 100, 174, 184, 182, 87, 153, 58, 254,\n\t\t0, 171, 229, 169, 254, 250, 186, 145, 161, 30, 239, 70, 169,\n\t\t96, 81, 185, 172, 230, 180, 209, 49, 54, 35, 113, 145, 32,\n\t\t168, 154, 227, 157, 102, 132, 225, 72, 192, 201, 34, 172,\n\t\t130, 50, 121, 108, 193, 202, 150, 223, 194, 248, 248, 199,\n\t\t35, 32, 21, 17, 107, 198, 120, 65, 42, 217, 157, 89, 142,\n\t\t186, 202, 251, 213, 227, 63, 86, 48, 48, 174, 113, 2, 151,\n\t\t26, 22, 130, 155, 65, 175, 152, 39, 91, 96, 91, 242, 98, 103,\n\t\t106, 230, 45, 165, 204, 92, 120, 24, 234, 104, 96, 47, 26,\n\t\t251, 144, 210, 12, 147, 75, 146, 132, 149, 129, 196, 10, 202,\n\t\t156, 65, 120, 227, 40, 56, 215, 50, 158, 96, 37, 216, 170,\n\t\t206, 181, 115, 80, 138, 112, 8, 27, 253, 7, 215, 106, 33,\n\t\t182, 222, 180, 217, 7, 140, 45, 145, 7, 205, 78, 182, 45,\n\t\t77, 129, 230, 8, 81, 231, 163, 95, 230, 122, 2, 228, 142,\n\t\t244, 168, 114, 37, 80, 36, 24, 41, 79, 144, 144, 73, 214,\n\t\t16, 105, 101, 28, 150, 45, 199, 81, 191, 135, 248, 110, 103,\n\t\t172, 177, 177, 234, 192, 47, 11, 137, 14, 96, 210, 251, 120,\n\t\t39, 8, 12, 139, 87, 148, 29, 177, 82, 110, 220, 7, 170, 151,\n\t\t5, 20, 93, 232, 167, 228, 242, 38, 51, 180, 164, 35, 143,\n\t\t192, 154, 121, 79, 250, 11, 229, 108, 80, 242, 94, 192, 150,\n\t\t205, 7, 34, 186, 56, 162, 94, 204, 242, 66, 141, 69, 109,\n\t\t74, 60, 141, 108, 110, 172, 203, 121, 4, 161, 57, 204, 91,\n\t\t231, 32, 233, 137, 104, 77, 219, 158, 63, 103, 120, 255, 250,\n\t\t219, 235, 255, 121, 210, 23, 159, 104, 68, 23, 191, 59, 8,\n\t\t177, 156, 67, 10, 77, 150, 249, 33, 137, 233, 248, 227, 157,\n\t\t173, 175, 49, 136, 211, 191, 85, 1, 91, 105, 2, 65, 217, 143,\n\t\t6, 171, 189, 166, 232, 17, 201, 128, 173, 247, 8, 211, 186,\n\t\t75, 249, 72, 185, 78, 137, 151, 90, 72, 27, 232, 63, 231,\n\t\t174, 243, 45, 231, 173, 128, 165, 33, 8, 56, 83, 232, 117,\n\t\t171, 225, 136, 33, 196, 45, 10, 210, 216, 54, 245, 43, 143,\n\t\t172, 184, 24, 36, 247, 33, 244, 56, 45, 137, 84, 20, 137,\n\t\t178, 119, 172, 61, 37, 129, 253, 100, 139, 5, 207, 189, 141,\n\t\t26, 143, 214, 4, 180, 44, 34, 253, 61, 231, 163, 199, 8, 7,\n\t\t20, 80, 254, 98, 9, 71, 239, 168, 53, 200, 192, 175, 17, 215,\n\t\t47, 80, 240, 240, 225, 2, 185, 117, 217, 185, 99, 153, 73,\n\t\t82, 214, 231, 114, 168, 91, 2, 134, 159, 44, 104, 185, 129,\n\t\t75, 39, 11, 125, 84, 198, 246, 125, 170, 21, 82, 100, 70,\n\t\t165, 177, 102, 33, 231, 224, 118, 63, 106, 126, 236, 190,\n\t\t224, 53, 114, 19, 79, 86, 107, 154, 31, 192, 13, 128, 135,\n\t\t23, 200, 220, 158, 189, 175, 18, 132, 207, 224, 68, 202, 226,\n\t\t52, 193, 237, 202, 108, 77, 127, 187, 207, 5, 42, 139, 2,\n\t\t47, 153, 203, 206, 31, 49, 35, 47, 164, 123, 128, 167, 21,\n\t\t127, 180, 0, 151, 158, 124, 224, 148, 147, 243, 11, 229, 194,\n\t\t46, 240, 138, 243, 174, 174, 9, 39, 175, 3, 24, 92, 241, 135,\n\t\t75, 169, 163, 14, 44, 11, 187, 69, 150, 217, 5, 136, 49, 0,\n\t\t254, 111, 225, 177, 107, 177, 100, 144, 244, 35, 107, 219,\n\t\t116, 217, 185, 183, 62, 95, 118, 148, 120, 148, 152, 167,\n\t\t1, 86, 202, 33, 217, 229, 73, 24, 95, 251, 108, 86, 15, 62,\n\t\t138, 124, 15, 97, 182, 253, 3, 40, 121, 10, 147, 247, 233,\n\t\t44, 248, 246, 207, 159, 158, 184, 145, 127, 106, 255, 227,\n\t\t176, 107, 76, 168, 68, 165, 249, 125, 65, 45, 253, 33, 226,\n\t\t201, 243, 66, 251, 97, 197, 125, 24, 158, 201, 219, 75, 175,\n\t\t194, 140, 240, 240, 161, 206, 91, 199, 248, 216, 101, 51,\n\t\t198, 183, 219, 75, 240, 224, 228, 188, 158, 145, 226, 185,\n\t\t87, 250, 65, 179, 216, 13, 99, 249, 107, 177, 152, 232, 234,\n\t\t64, 119, 108, 211, 31, 245, 236, 59, 248, 213, 165, 186, 27,\n\t\t247, 12, 253, 209, 210, 145, 79, 6, 138, 166, 173, 155, 239,\n\t\t138, 103, 117, 122, 93, 185, 149, 157, 232, 65, 154, 162,\n\t\t187, 6, 25, 223, 94, 66, 240, 71, 81, 134, 135, 166, 142,\n\t\t254, 133, 222, 50, 71, 42, 254, 109, 65, 61, 71, 78, 115,\n\t\t19, 152, 95, 195, 152, 140, 95, 186, 173, 186, 154, 47, 200,\n\t\t13, 219, 30, 137, 189, 111, 197, 201, 157, 219, 119, 10, 121,\n\t\t253, 164, 183, 151, 216, 24, 204, 75, 15, 41, 133, 82, 129,\n\t\t189, 22, 173, 72, 47, 40, 195, 72, 122, 96, 25, 46, 226, 64,\n\t\t21, 53, 195, 204, 85, 234, 29, 162, 7, 63, 180, 118, 250,\n\t\t78, 229, 107, 53, 170, 120, 78, 232, 166, 209, 207, 190, 13,\n\t\t75, 96, 209, 207, 54, 109, 75, 245, 233, 203, 3, 160, 196,\n\t\t209, 165, 140, 192, 161, 232, 28, 217, 214, 64, 190, 119,\n\t\t151, 20, 129, 146, 49, 70, 253, 131, 197, 239, 227, 178, 132,\n\t\t154, 225, 117, 33, 56, 212, 69, 91, 56, 34, 30, 154, 171,\n\t\t117, 161, 50, 179, 83, 88, 126, 110, 151, 32, 83, 21, 238,\n\t\t131, 30, 30, 44, 168, 191, 141, 203, 248, 91, 168, 102, 180,\n\t\t106, 169, 223, 233, 129, 97, 192, 103, 224, 188, 93, 218,\n\t\t4, 81, 120, 228, 70, 230, 62, 55, 184, 62, 6, 236, 19, 205,\n\t\t173, 203, 1, 81, 1, 23, 11, 218, 138, 244, 224, 163, 211,\n\t\t178, 151, 112, 166, 49, 163, 241, 221, 184, 174, 243, 85,\n\t\t229, 188, 79, 165, 214, 175, 95, 30, 95, 207, 95, 159, 151,\n\t\t239, 254, 9, 11, 184, 171, 112, 113, 151, 35, 143, 106, 228,\n\t\t135, 74, 141, 229, 81, 18, 55, 7, 44, 72, 177, 80, 51, 220,\n\t\t145, 178, 186, 60, 56, 116, 210, 208, 12, 226, 251, 210, 236,\n\t\t215, 40, 237, 176, 193, 189, 50, 47, 114, 48, 93, 74, 216,\n\t\t85, 65, 126, 137, 126, 66, 180, 155, 110, 61, 115, 1, 237,\n\t\t222, 50, 14, 216, 165, 139, 50, 75, 122, 237, 70, 95, 129,\n\t\t93, 19, 44, 241, 216, 110, 103, 81, 7, 233, 131, 105, 204,\n\t\t88, 210, 97, 190, 64, 252, 92, 66, 66, 151, 189, 177, 119,\n\t\t38, 72, 110, 187, 175, 113, 43, 154, 112, 208, 193, 21, 22,\n\t\t59, 50, 4, 139, 226, 77, 109, 72, 243, 91, 249, 137, 43, 1,\n\t\t74, 113, 212, 118, 210, 189, 129, 69, 166, 11, 232, 147, 186,\n\t\t51, 92, 58, 252, 135, 221, 87, 56, 114, 172, 33, 244, 251,\n\t\t111, 99, 47, 116, 33, 153, 50, 11, 165, 47, 250, 227, 221,\n\t\t246, 216, 125, 222, 50, 155, 175, 16, 229, 197, 2, 124, 180,\n\t\t10, 36, 142, 131, 213, 217, 8, 25, 233, 78, 173, 236, 228,\n\t\t80, 47, 140, 155, 38, 71, 103, 35, 18, 149, 238, 178, 61,\n\t\t76, 74, 136, 147, 64, 179, 64, 231, 179, 241, 125, 85, 109,\n\t\t107, 58, 102, 34, 103, 159, 186, 97, 8, 159, 67, 42, 182,\n\t\t38, 208, 121, 160, 224, 163, 52, 18, 163, 68, 157, 5, 81,\n\t\t34, 95, 120, 119, 37, 87, 52, 47, 97, 179, 191, 210, 18, 180,\n\t\t171, 204, 1, 214, 71, 85, 137, 27, 51, 138, 118, 74, 239,\n\t\t243, 209, 234, 15, 72, 2, 242, 249, 246, 226, 99, 59, 218,\n\t\t22, 90, 58, 26, 176, 29, 85, 210, 24, 213, 11, 221, 15, 193,\n\t\t146, 34, 200, 193, 168, 137, 4, 131, 235, 144, 189, 202, 10,\n\t\t217, 75, 36, 136, 25, 238, 133, 94, 30, 105, 84, 245, 198,\n\t\t112, 140, 50, 101, 237, 227, 129, 183, 23, 239, 234, 92, 22,\n\t\t167, 202, 58, 214, 144, 102, 51, 133, 5, 101, 101, 169, 48,\n\t\t82, 251, 113, 38, 226, 212, 21, 78, 20, 175, 130, 46, 133,\n\t\t21, 72, 192, 203, 50, 164, 255, 241, 192, 80, 218, 69, 47,\n\t\t238, 42, 185, 29, 229, 11, 0, 209, 197, 43, 197, 164, 45,\n\t\t47, 62, 182, 105, 164, 222, 70, 176, 231, 43, 251, 87, 67,\n\t\t20, 57, 28, 109, 243, 57, 9, 9, 117, 146, 9, 247, 62, 23,\n\t\t183, 232, 20, 203, 43, 128, 236, 69, 209, 108, 70, 244, 228,\n\t\t218, 180, 171, 54, 208, 95, 47, 163, 16, 170, 24, 67, 109,\n\t\t38, 22, 136, 62, 162, 103, 205, 85, 189, 108, 81, 135, 117,\n\t\t137, 91, 156, 2, 178, 28, 5, 169, 74, 174, 204, 247, 171,\n\t\t2, 32, 2, 143, 171, 144, 194, 33, 124, 214, 133, 126, 167,\n\t\t71, 217, 188, 13, 67, 135, 113, 48, 211, 28, 199, 136, 10,\n\t\t216, 208, 166, 216, 77, 144, 186, 121, 137, 58, 234, 83, 148,\n\t\t130, 38, 73, 45, 35, 76, 162, 54, 35, 131, 99, 137, 25, 135,\n\t\t169, 232, 172, 208, 141, 149, 18, 32, 160, 244, 162, 133,\n\t\t16, 167, 137, 54, 176, 242, 82, 14, 99, 0, 167, 75, 97, 106,\n\t\t24, 43, 8, 5, 152, 67, 124, 173, 38, 189, 136, 11, 139, 195,\n\t\t123, 175, 164, 56, 50, 53, 203, 187, 163, 141, 217, 70, 87,\n\t\t140, 224, 57, 173, 145, 147, 143, 57, 125, 221, 27, 222, 106,\n\t\t63, 34, 227, 61, 24, 31, 124, 132, 141, 23, 93, 125, 189,\n\t\t154, 74, 34, 102, 248, 210, 129, 124, 69, 6, 178, 27, 24,\n\t\t30, 143, 82, 168, 162, 148, 115, 164, 22, 12, 164, 211, 246,\n\t\t82, 153, 113, 27, 160, 120, 214, 37, 68, 58, 42, 90, 158,\n\t\t19, 111, 42, 17, 103, 25, 34, 145, 145, 56, 11, 232, 40, 214,\n\t\t39, 190, 253, 186, 51, 130, 114, 204, 226, 52, 43, 252, 241,\n\t\t83, 250, 225, 80, 252, 177, 26, 240, 250, 245, 60, 199, 31,\n\t\t192, 57, 253, 100, 20, 116, 113, 202, 94, 152, 48, 89, 39,\n\t\t178, 3, 133, 43, 86, 255, 164, 161, 94, 59, 208, 101, 248,\n\t\t60, 246, 144, 225, 161, 128, 110, 117, 57, 145, 39, 96, 227,\n\t\t221, 37, 119, 92, 82, 81, 114, 175, 213, 100, 243, 39, 81,\n\t\t128, 46, 87, 227, 128, 254, 125, 200, 37, 110, 203, 235, 28,\n\t\t62, 224, 114, 42, 110, 143, 83, 223, 94, 34, 24, 59, 187,\n\t\t56, 184, 110, 35, 104, 14, 2, 9, 152, 201, 79, 238, 133, 102,\n\t\t58, 50, 104, 26, 219, 181, 252, 134, 53, 54, 127, 140, 121,\n\t\t235, 5, 255, 82, 198, 213, 30, 178, 121, 81, 141, 91, 108,\n\t\t69, 22, 12, 248, 41, 214, 35, 15, 223, 150, 179, 200, 242,\n\t\t175, 119, 146, 203, 109, 124, 252, 206, 172, 253, 192, 4,\n\t\t3, 95, 54, 190, 42, 10, 232, 48, 119, 184, 174, 84, 70, 101,\n\t\t69, 178, 242, 26, 158, 103, 31, 201, 19, 241, 86, 65, 124,\n\t\t137, 154, 37, 68, 87, 230, 21, 222, 242, 79, 190, 151, 19,\n\t\t175, 172, 117, 204, 56, 131, 149, 254, 76, 70, 250, 9, 230,\n\t\t89, 12, 1, 38, 190, 238, 150, 201, 20, 86, 22, 135, 8, 150,\n\t\t28, 103, 15, 219, 66, 137, 168, 117, 178, 84, 52, 38, 135,\n\t\t121, 39, 168, 109, 232, 48, 1, 149, 232, 61, 188, 221, 94,\n\t\t98, 200, 115, 223, 181, 35, 25, 112, 102, 72, 116, 169, 170,\n\t\t118, 65, 94, 192, 157, 228, 218, 66, 159, 206, 211, 140, 4,\n\t\t154, 207, 53, 196, 77, 121, 174, 199, 34, 3, 202, 201, 104,\n\t\t174, 102, 214, 186, 217, 187, 154, 216, 157, 23, 161, 219,\n\t\t116, 55, 26, 228, 170, 117, 178, 8, 151, 63, 130, 52, 247,\n\t\t141, 174, 29, 104, 116, 65, 114, 121, 248, 21, 212, 211, 130,\n\t\t142, 3, 169, 226, 156, 35, 236, 29, 108, 233, 101, 56, 155,\n\t\t190, 113, 61, 48, 108, 176, 120, 25, 161, 178, 210, 113, 220,\n\t\t112, 128, 233, 176, 25, 30, 76, 188, 56, 159, 231, 112, 104,\n\t\t113, 100, 113, 96, 173, 236, 179, 133, 85, 108, 206, 136,\n\t\t63, 249, 70, 111, 149, 141, 20, 225, 151, 124, 36, 120, 65,\n\t\t52, 244, 51, 44, 4, 170, 254, 133, 45, 108, 190, 35, 23, 247,\n\t\t115, 89, 248, 251, 47, 95, 127, 253, 229, 251, 127, 126, 253,\n\t\t245, 169, 164, 248, 167, 5, 163, 47, 80, 187, 39, 163, 9,\n\t\t219, 222, 234, 32, 160, 157, 241, 240, 91, 118, 68, 103, 253,\n\t\t164, 13, 149, 57, 16, 86, 72, 4, 152, 192, 149, 4, 153, 190,\n\t\t84, 140, 223, 210, 144, 206, 91, 251, 84, 20, 219, 130, 234,\n\t\t221, 128, 208, 151, 5, 71, 52, 164, 14, 190, 222, 120, 54,\n\t\t93, 37, 245, 239, 176, 21, 134, 175, 99, 176, 151, 221, 138,\n\t\t62, 73, 153, 140, 215, 81, 43, 139, 73, 218, 181, 2, 39, 48,\n\t\t111, 190, 204, 69, 214, 221, 70, 51, 104, 99, 224, 8, 214,\n\t\t109, 54, 107, 118, 91, 140, 111, 47, 113, 46, 229, 155, 111,\n\t\t241, 168, 75, 101, 118, 136, 140, 232, 35, 202, 161, 197,\n\t\t227, 126, 90, 61, 3, 171, 59, 196, 58, 23, 119, 193, 175,\n\t\t206, 116, 65, 251, 28, 69, 93, 203, 151, 212, 128, 230, 182,\n\t\t108, 218, 0, 110, 57, 239, 8, 135, 189, 31, 212, 23, 184,\n\t\t24, 66, 9, 223, 114, 222, 124, 134, 6, 56, 239, 245, 105,\n\t\t223, 255, 231, 47, 95, 255, 235, 151, 243, 251, 175, 207,\n\t\t200, 193, 63, 125, 253, 140, 65, 41, 88, 88, 55, 121, 193,\n\t\t81, 6, 190, 95, 200, 101, 253, 51, 244, 71, 39, 135, 46, 167,\n\t\t132, 92, 94, 101, 87, 247, 112, 4, 215, 173, 195, 243, 204,\n\t\t183, 151, 212, 156, 62, 106, 154, 190, 208, 236, 166, 204,\n\t\t9, 1, 182, 22, 204, 140, 1, 171, 24, 158, 66, 28, 70, 166,\n\t\t184, 110, 135, 144, 94, 47, 251, 118, 108, 110, 200, 113,\n\t\t61, 252, 246, 226, 139, 59, 250, 22, 167, 80, 156, 35, 171,\n\t\t81, 34, 206, 69, 249, 118, 238, 38, 176, 26, 203, 35, 154,\n\t\t14, 95, 253, 133, 57, 19, 83, 237, 142, 39, 185, 53, 247,\n\t\t158, 238, 68, 143, 61, 247, 60, 245, 93, 119, 78, 169, 72,\n\t\t179, 222, 205, 159, 207, 108, 89, 152, 40, 181, 33, 142, 172,\n\t\t6, 143, 206, 169, 151, 158, 133, 18, 82, 3, 61, 231, 94, 172,\n\t\t62, 247, 237, 37, 228, 14, 67, 216, 29, 229, 221, 153, 81,\n\t\t106, 199, 12, 9, 89, 228, 241, 201, 13, 70, 141, 164, 22,\n\t\t100, 54, 69, 61, 234, 237, 180, 178, 200, 32, 169, 72, 167,\n\t\t45, 22, 12, 14, 159, 22, 37, 214, 83, 62, 29, 103, 255, 252,\n\t\t250, 245, 183, 223, 159, 82, 135, 190, 186, 63, 31, 99, 93,\n\t\t172, 91, 209, 81, 85, 61, 166, 87, 36, 172, 53, 69, 181, 252,\n\t\t141, 72, 193, 23, 17, 99, 17, 81, 207, 16, 53, 47, 11, 91,\n\t\t91, 117, 158, 244, 121, 176, 230, 70, 123, 130, 75, 171, 222,\n\t\t118, 57, 202, 168, 47, 201, 104, 88, 72, 207, 114, 239, 217,\n\t\t19, 41, 28, 222, 22, 211, 81, 84, 219, 165, 214, 11, 235,\n\t\t45, 216, 50, 175, 2, 84, 133, 189, 169, 198, 22, 9, 63, 86,\n\t\t10, 134, 46, 210, 166, 85, 184, 177, 23, 115, 140, 208, 206,\n\t\t49, 30, 252, 149, 178, 234, 54, 214, 182, 50, 207, 211, 46,\n\t\t11, 235, 165, 112, 85, 52, 223, 244, 219, 11, 146, 167, 182,\n\t\t20, 210, 81, 198, 165, 4, 73, 34, 142, 18, 62, 49, 94, 129,\n\t\t46, 109, 61, 88, 29, 174, 167, 27, 73, 178, 234, 166, 180,\n\t\t32, 145, 42, 39, 13, 7, 83, 150, 195, 85, 42, 195, 165, 73,\n\t\t120, 75, 11, 11, 243, 21, 22, 101, 135, 225, 120, 90, 35,\n\t\t165, 183, 23, 114, 173, 74, 209, 176, 119, 155, 97, 63, 219,\n\t\t249, 22, 32, 164, 123, 87, 19, 197, 175, 28, 238, 151, 66,\n\t\t112, 93, 178, 25, 137, 54, 84, 240, 108, 170, 223, 226, 106,\n\t\t230, 51, 204, 241, 173, 99, 86, 253, 190, 55, 115, 221, 248,\n\t\t85, 113, 174, 161, 76, 117, 165, 232, 254, 156, 145, 174,\n\t\t28, 105, 139, 61, 204, 14, 80, 190, 139, 75, 51, 152, 219,\n\t\t196, 58, 90, 71, 19, 233, 31, 46, 142, 96, 253, 110, 125,\n\t\t182, 86, 151, 152, 145, 168, 95, 52, 248, 12, 102, 218, 242,\n\t\t17, 188, 46, 58, 75, 32, 31, 162, 196, 224, 116, 27, 163,\n\t\t33, 173, 4, 115, 196, 135, 157, 107, 226, 175, 136, 91, 140,\n\t\t233, 40, 55, 225, 246, 88, 12, 35, 190, 105, 180, 142, 30,\n\t\t46, 29, 161, 192, 130, 68, 167, 173, 251, 233, 56, 96, 248,\n\t\t122, 73, 159, 34, 192, 235, 204, 2, 209, 206, 110, 27, 175,\n\t\t224, 189, 53, 68, 49, 204, 55, 173, 115, 220, 216, 127, 45,\n\t\t50, 158, 222, 183, 241, 92, 134, 224, 31, 170, 237, 88, 233,\n\t\t79, 23, 172, 107, 81, 88, 163, 100, 34, 69, 86, 103, 136,\n\t\t235, 205, 138, 90, 45, 241, 140, 6, 235, 197, 89, 161, 170,\n\t\t175, 196, 187, 103, 35, 209, 155, 203, 139, 25, 219, 176,\n\t\t139, 87, 223, 22, 101, 100, 209, 190, 23, 13, 72, 197, 20,\n\t\t51, 31, 88, 182, 44, 227, 251, 237, 37, 79, 131, 125, 11,\n\t\t49, 79, 187, 224, 176, 188, 139, 63, 17, 175, 166, 196, 201,\n\t\t68, 5, 244, 10, 223, 139, 178, 153, 22, 36, 37, 138, 65, 183,\n\t\t191, 19, 181, 58, 156, 40, 105, 243, 214, 56, 251, 135, 101,\n\t\t203, 80, 72, 152, 75, 85, 71, 163, 15, 16, 175, 41, 85, 128,\n\t\t90, 251, 5, 45, 1, 9, 39, 217, 134, 6, 17, 175, 193, 3, 234,\n\t\t120, 134, 78, 111, 179, 198, 89, 95, 83, 22, 74, 147, 34,\n\t\t25, 46, 127, 88, 112, 120, 178, 93, 93, 24, 157, 88, 109,\n\t\t97, 200, 236, 75, 136, 114, 164, 234, 180, 147, 7, 188, 161,\n\t\t110, 112, 234, 154, 253, 168, 35, 112, 62, 167, 133, 143,\n\t\t161, 150, 145, 115, 246, 82, 27, 160, 104, 81, 245, 189, 114,\n\t\t40, 12, 109, 160, 50, 180, 194, 74, 215, 108, 154, 245, 98,\n\t\t26, 154, 109, 66, 29, 166, 152, 58, 96, 156, 1, 46, 99, 209,\n\t\t210, 26, 212, 107, 145, 63, 107, 83, 86, 207, 190, 91, 180,\n\t\t76, 172, 64, 255, 182, 148, 58, 121, 80, 183, 177, 100, 111,\n\t\t237, 69, 205, 144, 169, 120, 201, 25, 209, 243, 152, 186,\n\t\t111, 115, 66, 155, 35, 17, 146, 160, 232, 82, 229, 45, 246,\n\t\t230, 182, 46, 148, 227, 210, 126, 211, 10, 184, 13, 243, 80,\n\t\t106, 241, 234, 42, 167, 166, 199, 145, 206, 117, 77, 195,\n\t\t30, 90, 21, 187, 21, 50, 161, 195, 39, 220, 181, 66, 192,\n\t\t151, 120, 8, 51, 19, 22, 245, 202, 69, 70, 199, 242, 212,\n\t\t201, 157, 200, 96, 185, 105, 68, 177, 180, 208, 127, 37, 179,\n\t\t125, 117, 165, 203, 92, 75, 20, 104, 97, 41, 2, 90, 4, 250,\n\t\t246, 18, 235, 28, 35, 93, 62, 246, 54, 118, 86, 157, 219,\n\t\t122, 196, 144, 131, 173, 252, 28, 64, 97, 113, 6, 201, 76,\n\t\t138, 97, 99, 138, 159, 36, 184, 164, 169, 77, 183, 85, 19,\n\t\t19, 46, 25, 57, 43, 139, 40, 218, 129, 36, 249, 124, 218,\n\t\t94, 23, 47, 50, 135, 153, 212, 134, 210, 177, 40, 214, 232,\n\t\t90, 151, 56, 94, 140, 16, 42, 217, 47, 31, 48, 33, 110, 182,\n\t\t102, 149, 229, 49, 240, 22, 74, 99, 221, 120, 208, 161, 192,\n\t\t25, 32, 229, 25, 58, 24, 49, 103, 100, 236, 88, 33, 158, 169,\n\t\t76, 246, 96, 145, 102, 26, 46, 118, 150, 13, 183, 206, 181,\n\t\t135, 170, 222, 181, 114, 199, 0, 74, 43, 33, 81, 227, 104,\n\t\t211, 201, 146, 220, 69, 19, 75, 205, 212, 13, 9, 185, 89,\n\t\t132, 72, 109, 11, 136, 216, 56, 167, 221, 2, 245, 14, 89,\n\t\t139, 57, 212, 107, 93, 204, 17, 165, 113, 116, 162, 66, 176,\n\t\t233, 117, 78, 15, 182, 214, 202, 75, 180, 117, 82, 53, 73,\n\t\t253, 16, 129, 252, 79, 35, 89, 124, 132, 79, 159, 3, 190,\n\t\t110, 73, 179, 168, 60, 6, 171, 31, 6, 95, 177, 49, 212, 142,\n\t\t184, 139, 248, 59, 164, 213, 110, 38, 101, 57, 228, 76, 31,\n\t\t34, 75, 220, 154, 201, 23, 132, 21, 14, 250, 208, 86, 30,\n\t\t233, 156, 183, 210, 62, 181, 90, 247, 233, 2, 21, 140, 163,\n\t\t130, 61, 167, 61, 77, 172, 140, 61, 49, 210, 69, 128, 177,\n\t\t68, 27, 95, 245, 50, 34, 115, 117, 77, 27, 84, 185, 83, 222,\n\t\t43, 68, 205, 86, 40, 137, 169, 220, 134, 129, 62, 108, 237,\n\t\t169, 122, 170, 126, 48, 52, 134, 161, 79, 88, 10, 48, 225,\n\t\t38, 0, 79, 163, 82, 155, 54, 96, 19, 169, 189, 192, 64, 118,\n\t\t234, 132, 75, 187, 103, 58, 197, 133, 22, 4, 139, 166, 14,\n\t\t69, 91, 169, 138, 150, 52, 203, 94, 134, 135, 82, 228, 226,\n\t\t148, 40, 80, 39, 117, 160, 83, 37, 0, 218, 149, 42, 23, 92,\n\t\t10, 13, 131, 172, 220, 134, 33, 181, 241, 130, 245, 150, 89,\n\t\t211, 59, 203, 117, 221, 160, 220, 182, 235, 194, 42, 179,\n\t\t213, 11, 99, 216, 202, 34, 32, 49, 121, 166, 15, 103, 206,\n\t\t45, 21, 103, 173, 162, 250, 171, 184, 99, 251, 151, 243, 163,\n\t\t87, 63, 230, 97, 94, 253, 216, 167, 222, 83, 203, 209, 76,\n\t\t225, 112, 66, 198, 18, 109, 138, 235, 171, 63, 224, 139, 65,\n\t\t225, 162, 1, 204, 225, 99, 205, 111, 172, 110, 39, 207, 72,\n\t\t135, 125, 179, 130, 84, 113, 129, 84, 224, 101, 25, 205, 92,\n\t\t209, 221, 42, 133, 246, 76, 196, 97, 69, 53, 51, 237, 13,\n\t\t232, 108, 190, 3, 12, 29, 29, 123, 150, 32, 96, 192, 77, 23,\n\t\t108, 133, 5, 218, 243, 132, 217, 197, 205, 199, 174, 144,\n\t\t81, 130, 200, 82, 249, 66, 87, 84, 22, 5, 169, 218, 233, 20,\n\t\t191, 212, 144, 234, 90, 245, 238, 35, 213, 109, 105, 48, 74,\n\t\t206, 222, 252, 35, 90, 149, 29, 208, 191, 143, 224, 195, 148,\n\t\t122, 100, 116, 80, 3, 83, 147, 34, 131, 80, 113, 85, 77, 89,\n\t\t241, 205, 148, 5, 14, 211, 15, 127, 95, 109, 248, 50, 153,\n\t\t197, 14, 68, 171, 29, 94, 30, 216, 100, 170, 172, 1, 154,\n\t\t72, 37, 133, 60, 243, 1, 2, 88, 33, 199, 211, 0, 69, 38, 158,\n\t\t23, 81, 1, 146, 177, 185, 96, 64, 232, 5, 38, 131, 162, 225,\n\t\t157, 232, 180, 212, 80, 173, 241, 202, 5, 11, 253, 68, 42,\n\t\t102, 140, 171, 102, 170, 84, 11, 122, 139, 243, 81, 157, 159,\n\t\t250, 105, 86, 240, 42, 47, 175, 38, 224, 26, 63, 116, 72,\n\t\t161, 85, 115, 88, 59, 111, 255, 79, 1, 249, 110, 255, 98,\n\t\t68, 190, 52, 135, 18, 215, 62, 185, 3, 162, 113, 117, 101,\n\t\t114, 229, 119, 218, 166, 204, 55, 133, 112, 51, 119, 188,\n\t\t193, 7, 214, 53, 138, 121, 17, 43, 136, 223, 221, 66, 90,\n\t\t68, 74, 55, 57, 142, 175, 231, 125, 60, 95, 222, 119, 172,\n\t\t226, 40, 91, 136, 214, 235, 209, 183, 247, 153, 232, 251,\n\t\t50, 198, 215, 215, 215, 111, 127, 59, 191, 238, 223, 198,\n\t\t247, 159, 63, 74, 190, 178, 18, 50, 67, 60, 250, 230, 167,\n\t\t66, 126, 46, 101, 196, 231, 122, 196, 97, 220, 157, 201, 32,\n\t\t13, 52, 139, 99, 173, 91, 197, 196, 63, 148, 128, 211, 79,\n\t\t29, 18, 101, 140, 84, 188, 213, 110, 28, 22, 123, 15, 172,\n\t\t115, 98, 101, 6, 115, 67, 236, 64, 105, 130, 244, 96, 80,\n\t\t48, 86, 200, 67, 95, 249, 190, 162, 95, 174, 204, 167, 69,\n\t\t130, 78, 200, 223, 219, 208, 186, 218, 173, 80, 197, 85, 107,\n\t\t223, 151, 122, 128, 142, 88, 182, 16, 144, 198, 137, 142,\n\t\t4, 155, 228, 181, 180, 20, 159, 61, 148, 167, 7, 12, 49, 228,\n\t\t56, 246, 112, 107, 54, 10, 73, 10, 149, 83, 231, 172, 68,\n\t\t116, 16, 209, 113, 18, 179, 148, 33, 55, 192, 209, 232, 106,\n\t\t55, 245, 115, 177, 239, 164, 41, 88, 26, 33, 98, 84, 8, 3,\n\t\t21, 151, 167, 52, 228, 117, 35, 177, 165, 115, 214, 171, 185,\n\t\t171, 233, 16, 12, 18, 1, 210, 148, 241, 32, 0, 253, 98, 193,\n\t\t219, 155, 106, 87, 115, 55, 163, 70, 7, 235, 139, 47, 203,\n\t\t5, 129, 251, 240, 75, 247, 88, 172, 212, 105, 207, 228, 254,\n\t\t202, 77, 181, 141, 50, 187, 98, 118, 136, 95, 68, 150, 208,\n\t\t53, 40, 241, 12, 38, 66, 157, 113, 86, 39, 166, 201, 135,\n\t\t111, 47, 113, 234, 25, 169, 160, 248, 76, 179, 39, 84, 40,\n\t\t104, 250, 144, 182, 11, 15, 104, 13, 201, 20, 7, 10, 187,\n\t\t26, 130, 34, 62, 174, 51, 174, 127, 95, 243, 37, 39, 75, 220,\n\t\t125, 110, 105, 79, 93, 33, 9, 248, 232, 157, 119, 91, 197,\n\t\t42, 215, 211, 197, 107, 226, 107, 63, 36, 167, 4, 52, 2, 10,\n\t\t170, 168, 195, 157, 149, 65, 89, 23, 115, 77, 98, 61, 87,\n\t\t144, 172, 115, 169, 246, 14, 156, 150, 149, 154, 110, 200,\n\t\t254, 152, 138, 160, 165, 95, 96, 31, 211, 107, 0, 92, 214,\n\t\t171, 135, 16, 109, 73, 227, 157, 89, 108, 93, 71, 219, 199,\n\t\t7, 141, 61, 177, 130, 164, 136, 207, 153, 43, 7, 28, 187,\n\t\t141, 169, 140, 216, 253, 145, 144, 249, 253, 245, 251, 223,\n\t\t159, 244, 170, 242, 148, 53, 89, 146, 51, 254, 80, 8, 98,\n\t\t209, 247, 205, 89, 164, 26, 96, 211, 66, 155, 189, 9, 193,\n\t\t172, 214, 219, 48, 230, 119, 238, 157, 46, 97, 205, 112, 27,\n\t\t22, 141, 134, 222, 69, 69, 82, 63, 175, 154, 11, 120, 92,\n\t\t81, 14, 243, 149, 174, 143, 43, 158, 69, 205, 199, 51, 186,\n\t\t133, 99, 188, 121, 123, 167, 77, 201, 150, 86, 147, 205, 117,\n\t\t24, 137, 105, 58, 192, 1, 37, 193, 253, 219, 74, 255, 178,\n\t\t112, 237, 90, 27, 47, 117, 55, 34, 169, 228, 61, 72, 228,\n\t\t42, 31, 24, 166, 206, 185, 133, 232, 231, 194, 181, 5, 16,\n\t\t191, 133, 105, 235, 15, 143, 156, 198, 169, 12, 153, 143,\n\t\t104, 109, 158, 217, 83, 27, 207, 212, 219, 222, 94, 82, 11,\n\t\t7, 176, 113, 196, 44, 161, 145, 96, 14, 227, 169, 15, 109,\n\t\t161, 87, 128, 59, 199, 126, 244, 45, 186, 2, 111, 51, 133,\n\t\t169, 74, 70, 103, 153, 223, 4, 8, 85, 219, 31, 18, 9, 103,\n\t\t88, 235, 77, 185, 112, 193, 58, 245, 200, 110, 179, 86, 164,\n\t\t196, 90, 231, 27, 0, 214, 210, 172, 218, 114, 113, 161, 247,\n\t\t109, 232, 50, 196, 45, 222, 170, 144, 242, 209, 182, 224,\n\t\t144, 238, 128, 210, 208, 35, 14, 104, 141, 197, 86, 30, 149,\n\t\t111, 170, 70, 153, 160, 39, 188, 102, 88, 158, 86, 237, 28,\n\t\t159, 230, 28, 79, 43, 199, 65, 114, 175, 154, 126, 174, 137,\n\t\t202, 93, 220, 107, 121, 225, 20, 41, 202, 213, 214, 69, 75,\n\t\t127, 123, 41, 49, 29, 125, 171, 234, 118, 46, 43, 107, 222,\n\t\t12, 5, 3, 82, 213, 25, 194, 98, 222, 112, 41, 212, 243, 226,\n\t\t226, 70, 188, 60, 171, 27, 41, 31, 82, 95, 103, 6, 136, 188,\n\t\t18, 195, 193, 177, 93, 38, 91, 214, 116, 20, 29, 110, 43,\n\t\t28, 130, 129, 11, 190, 218, 98, 100, 107, 174, 17, 124, 19,\n\t\t181, 119, 98, 146, 45, 31, 160, 85, 138, 47, 123, 45, 74,\n\t\t122, 69, 16, 159, 80, 218, 202, 198, 108, 93, 250, 143, 181,\n\t\t4, 98, 100, 131, 54, 241, 9, 44, 185, 166, 133, 186, 35, 108,\n\t\t89, 51, 210, 116, 162, 179, 203, 173, 2, 154, 73, 138, 44,\n\t\t128, 85, 247, 43, 157, 171, 246, 6, 90, 57, 1, 99, 9, 15,\n\t\t43, 86, 226, 37, 194, 37, 211, 93, 90, 147, 173, 167, 6, 91,\n\t\t99, 11, 32, 137, 198, 163, 1, 128, 40, 165, 167, 224, 122,\n\t\t138, 164, 246, 24, 0, 92, 212, 223, 237, 13, 111, 80, 66,\n\t\t115, 73, 102, 202, 143, 101, 238, 26, 72, 220, 231, 146, 247,\n\t\t167, 199, 215, 95, 95, 191, 156, 79, 146, 247, 203, 39, 249,\n\t\t234, 109, 74, 94, 168, 243, 194, 183, 78, 128, 136, 157, 57,\n\t\t205, 118, 32, 154, 58, 223, 26, 72, 233, 64, 175, 165, 53,\n\t\t150, 193, 220, 51, 60, 93, 143, 220, 247, 148, 241, 113, 195,\n\t\t60, 50, 178, 146, 138, 146, 100, 254, 1, 61, 160, 212, 207,\n\t\t143, 40, 98, 126, 174, 224, 145, 197, 186, 164, 133, 254,\n\t\t112, 238, 93, 31, 48, 151, 220, 102, 81, 233, 97, 222, 148,\n\t\t69, 94, 42, 77, 236, 181, 75, 45, 167, 56, 200, 226, 123,\n\t\t65, 173, 166, 29, 85, 243, 135, 30, 159, 51, 222, 72, 105,\n\t\t7, 115, 178, 96, 112, 169, 223, 194, 48, 179, 252, 90, 96,\n\t\t213, 201, 225, 7, 135, 7, 147, 15, 155, 253, 102, 174, 237,\n\t\t42, 229, 147, 226, 110, 226, 164, 193, 67, 104, 207, 91, 165,\n\t\t3, 235, 145, 111, 87, 145, 103, 73, 200, 137, 9, 181, 44,\n\t\t207, 96, 73, 196, 78, 236, 174, 104, 69, 184, 42, 102, 45,\n\t\t15, 129, 65, 65, 195, 253, 80, 13, 146, 94, 25, 139, 249,\n\t\t233, 91, 91, 94, 155, 170, 114, 130, 113, 71, 143, 84, 137,\n\t\t156, 78, 91, 19, 161, 51, 220, 20, 28, 12, 31, 234, 215, 120,\n\t\t172, 149, 72, 172, 15, 77, 82, 121, 249, 133, 140, 7, 180,\n\t\t100, 235, 137, 174, 168, 33, 139, 43, 61, 81, 186, 25, 194,\n\t\t51, 100, 153, 70, 56, 204, 121, 203, 162, 159, 98, 209, 61,\n\t\t29, 2, 186, 172, 82, 145, 76, 90, 154, 148, 5, 148, 92, 250,\n\t\t88, 159, 109, 232, 191, 186, 198, 85, 84, 222, 139, 53, 163,\n\t\t217, 159, 212, 96, 51, 121, 216, 181, 93, 248, 254, 186, 162,\n\t\t188, 189, 36, 224, 42, 92, 28, 22, 201, 250, 72, 87, 7, 250,\n\t\t160, 181, 107, 58, 3, 73, 64, 201, 93, 53, 222, 123, 64, 73,\n\t\t194, 218, 143, 189, 28, 109, 187, 68, 253, 221, 42, 47, 161,\n\t\t11, 194, 166, 194, 242, 104, 91, 30, 165, 130, 2, 25, 185,\n\t\t229, 130, 161, 48, 64, 57, 76, 239, 216, 37, 32, 162, 183,\n\t\t22, 222, 70, 81, 198, 181, 189, 42, 63, 5, 163, 113, 126,\n\t\t115, 59, 76, 157, 119, 151, 194, 186, 107, 69, 157, 105, 87,\n\t\t208, 106, 173, 25, 226, 145, 47, 49, 47, 174, 85, 218, 153,\n\t\t22, 246, 216, 87, 51, 92, 190, 158, 186, 7, 188, 106, 234,\n\t\t66, 217, 3, 255, 133, 171, 13, 226, 173, 250, 97, 240, 151,\n\t\t41, 219, 64, 75, 71, 188, 68, 37, 144, 169, 5, 6, 83, 128,\n\t\t172, 120, 203, 138, 180, 161, 70, 97, 82, 108, 33, 166, 88,\n\t\t247, 206, 221, 198, 26, 168, 76, 223, 241, 155, 129, 252,\n\t\t248, 132, 133, 107, 99, 134, 248, 88, 136, 124, 237, 93, 78,\n\t\t70, 149, 140, 8, 237, 35, 89, 104, 134, 5, 4, 88, 27, 101,\n\t\t209, 127, 237, 146, 184, 74, 120, 100, 177, 93, 0, 40, 77,\n\t\t155, 176, 81, 230, 232, 242, 47, 242, 237, 17, 250, 84, 20,\n\t\t189, 160, 184, 198, 163, 43, 182, 226, 158, 42, 5, 153, 145,\n\t\t109, 71, 141, 109, 119, 199, 231, 222, 160, 124, 160, 229,\n\t\t99, 92, 234, 109, 134, 70, 129, 174, 225, 224, 243, 14, 21,\n\t\t235, 172, 157, 81, 241, 148, 181, 7, 163, 170, 166, 13, 5,\n\t\t157, 170, 244, 209, 149, 172, 192, 70, 171, 176, 188, 105,\n\t\t248, 161, 45, 199, 187, 63, 252, 219, 203, 180, 152, 202,\n\t\t86, 21, 32, 89, 240, 209, 12, 217, 44, 110, 113, 109, 75,\n\t\t183, 133, 170, 112, 24, 54, 184, 152, 207, 82, 169, 140, 27,\n\t\t74, 92, 144, 117, 227, 54, 136, 192, 65, 26, 0, 22, 39, 112,\n\t\t64, 87, 170, 206, 170, 207, 48, 106, 18, 44, 186, 96, 90,\n\t\t148, 17, 66, 204, 150, 177, 72, 65, 220, 108, 52, 239, 134,\n\t\t224, 81, 216, 27, 89, 48, 210, 62, 215, 26, 254, 254, 247,\n\t\t111, 231, 183, 47, 191, 125, 5, 193, 235, 147, 238, 240, 183,\n\t\t63, 215, 29, 252, 236, 144, 45, 120, 55, 141, 128, 108, 153,\n\t\t212, 52, 137, 61, 164, 180, 215, 186, 132, 141, 36, 191, 173,\n\t\t43, 156, 86, 32, 78, 149, 231, 188, 80, 9, 219, 47, 140, 226,\n\t\t34, 237, 235, 145, 7, 31, 192, 251, 227, 246, 155, 220, 91,\n\t\t110, 205, 59, 91, 84, 50, 152, 174, 165, 7, 250, 149, 169,\n\t\t94, 132, 250, 188, 247, 219, 75, 246, 64, 48, 42, 245, 232,\n\t\t183, 97, 197, 102, 59, 93, 238, 102, 12, 195, 227, 54, 109,\n\t\t110, 120, 133, 179, 23, 22, 99, 31, 196, 0, 219, 1, 98, 61,\n\t\t255, 92, 247, 199, 52, 92, 241, 202, 78, 124, 104, 200, 185,\n\t\t150, 247, 8, 174, 206, 207, 133, 54, 65, 50, 156, 133, 120,\n\t\t237, 100, 110, 200, 94, 73, 16, 56, 0, 116, 239, 115, 202,\n\t\t50, 213, 133, 73, 68, 73, 184, 139, 208, 114, 130, 151, 135,\n\t\t153, 81, 153, 200, 148, 232, 254, 233, 248, 192, 141, 165,\n\t\t126, 178, 114, 120, 172, 81, 254, 237, 246, 233, 88, 57, 255,\n\t\t241, 253, 252, 246, 17, 228, 56, 22, 11, 153, 132, 128, 144,\n\t\t73, 201, 71, 26, 201, 216, 33, 154, 81, 207, 171, 114, 104,\n\t\t7, 116, 227, 213, 126, 217, 63, 254, 116, 57, 135, 71, 158,\n\t\t206, 229, 25, 31, 111, 255, 225, 239, 219, 75, 152, 243, 216,\n\t\t1, 73, 88, 218, 122, 21, 119, 209, 144, 120, 159, 87, 66,\n\t\t167, 251, 194, 205, 160, 34, 24, 153, 99, 67, 89, 202, 244,\n\t\t225, 200, 136, 186, 193, 229, 31, 172, 7, 160, 110, 232, 63,\n\t\t88, 168, 204, 82, 123, 24, 154, 45, 107, 122, 87, 6, 16, 235,\n\t\t94, 101, 181, 120, 123, 137, 115, 180, 67, 113, 143, 2, 163,\n\t\t76, 148, 248, 41, 15, 240, 138, 153, 0, 137, 250, 203, 99,\n\t\t143, 145, 74, 181, 64, 34, 147, 230, 196, 78, 121, 222, 184,\n\t\t221, 229, 170, 177, 235, 99, 236, 12, 62, 198, 14, 228, 254,\n\t\t144, 83, 149, 174, 250, 242, 30, 253, 15, 254, 222, 245, 109,\n\t\t222, 94, 124, 67, 98, 122, 244, 71, 188, 16, 227, 176, 242,\n\t\t77, 131, 78, 206, 45, 202, 128, 184, 178, 176, 130, 32, 155,\n\t\t84, 103, 165, 60, 27, 93, 183, 240, 110, 170, 251, 107, 234,\n\t\t113, 66, 249, 105, 26, 189, 94, 211, 108, 41, 68, 159, 220,\n\t\t134, 153, 194, 14, 222, 81, 29, 38, 42, 17, 88, 46, 112, 228,\n\t\t135, 198, 250, 5, 92, 85, 238, 73, 20, 106, 137, 117, 117,\n\t\t41, 151, 204, 211, 2, 162, 129, 193, 18, 17, 253, 121, 183,\n\t\t186, 52, 187, 228, 237, 197, 187, 105, 146, 133, 142, 58,\n\t\t58, 115, 95, 61, 111, 248, 110, 82, 37, 40, 54, 253, 10, 74,\n\t\t86, 113, 22, 89, 93, 181, 140, 161, 109, 247, 91, 186, 36,\n\t\t80, 112, 109, 161, 247, 150, 1, 120, 31, 86, 213, 164, 34,\n\t\t178, 10, 222, 101, 38, 142, 230, 252, 104, 102, 8, 72, 6,\n\t\t64, 178, 192, 23, 46, 51, 52, 118, 38, 252, 45, 171, 255,\n\t\t100, 208, 131, 190, 53, 126, 210, 211, 167, 217, 1, 9, 3,\n\t\t189, 169, 124, 65, 249, 94, 233, 180, 38, 125, 144, 133, 198,\n\t\t146, 233, 117, 31, 127, 167, 138, 89, 37, 211, 94, 83, 39,\n\t\t185, 42, 93, 207, 114, 255, 63, 234, 222, 44, 201, 145, 228,\n\t\t136, 18, 252, 199, 41, 252, 2, 238, 98, 251, 114, 136, 56,\n\t\t68, 150, 51, 139, 200, 33, 200, 228, 100, 20, 209, 205, 56,\n\t\t253, 136, 169, 190, 167, 102, 0, 34, 179, 72, 233, 110, 153,\n\t\t25, 17, 22, 19, 240, 112, 248, 98, 139, 238, 250, 158, 63,\n\t\t247, 50, 199, 83, 142, 105, 117, 190, 78, 143, 126, 231, 169,\n\t\t110, 179, 147, 243, 12, 179, 136, 58, 90, 78, 252, 181, 214,\n\t\t253, 251, 183, 207, 4, 169, 181, 80, 132, 228, 176, 189, 125,\n\t\t84, 193, 239, 54, 223, 253, 161, 152, 77, 88, 102, 226, 120,\n\t\t150, 251, 30, 122, 209, 252, 154, 76, 240, 110, 150, 142,\n\t\t69, 21, 173, 226, 86, 58, 19, 133, 92, 65, 22, 236, 12, 106,\n\t\t106, 203, 4, 191, 191, 207, 198, 4, 195, 162, 216, 194, 248,\n\t\t249, 140, 238, 112, 205, 20, 222, 109, 46, 34, 57, 112, 71,\n\t\t13, 201, 69, 74, 189, 50, 21, 50, 124, 112, 39, 81, 131, 165,\n\t\t237, 85, 218, 225, 241, 125, 108, 148, 97, 90, 56, 181, 187,\n\t\t251, 102, 164, 9, 250, 213, 187, 244, 110, 47, 215, 243, 4,\n\t\t96, 19, 47, 82, 24, 132, 179, 249, 105, 62, 151, 35, 42, 48,\n\t\t117, 72, 241, 168, 27, 224, 207, 239, 81, 243, 73, 22, 247,\n\t\t22, 107, 204, 211, 110, 146, 87, 198, 129, 83, 198, 156, 27,\n\t\t215, 75, 75, 137, 53, 223, 250, 28, 228, 209, 43, 85, 133,\n\t\t13, 72, 90, 204, 6, 85, 101, 118, 132, 213, 126, 4, 133, 219,\n\t\t23, 224, 106, 61, 21, 163, 40, 240, 180, 179, 225, 13, 193,\n\t\t132, 5, 173, 155, 74, 156, 17, 48, 43, 78, 9, 16, 69, 34,\n\t\t164, 50, 226, 247, 2, 9, 63, 44, 223, 104, 128, 71, 190, 73,\n\t\t95, 244, 36, 227, 8, 221, 73, 148, 239, 238, 93, 57, 234,\n\t\t146, 24, 72, 124, 177, 174, 33, 31, 131, 140, 240, 104, 178,\n\t\t81, 12, 46, 11, 142, 154, 141, 101, 149, 178, 140, 151, 217,\n\t\t17, 64, 22, 156, 107, 167, 220, 172, 10, 215, 187, 178, 119,\n\t\t179, 219, 231, 147, 112, 82, 110, 66, 158, 227, 87, 96, 249,\n\t\t217, 208, 148, 250, 235, 61, 248, 143, 191, 254, 248, 247,\n\t\t249, 227, 235, 151, 63, 190, 221, 95, 13, 223, 151, 150, 150,\n\t\t153, 174, 40, 201, 109, 193, 245, 67, 184, 61, 244, 41, 131,\n\t\t154, 138, 55, 13, 96, 24, 73, 146, 190, 235, 120, 34, 225,\n\t\t142, 217, 120, 252, 179, 159, 49, 0, 168, 7, 152, 201, 12,\n\t\t206, 126, 142, 80, 38, 126, 96, 134, 255, 205, 194, 73, 92,\n\t\t95, 55, 106, 196, 225, 163, 133, 219, 78, 76, 171, 221, 251,\n\t\t124, 164, 219, 2, 171, 125, 155, 88, 115, 195, 179, 191, 69,\n\t\t22, 154, 223, 24, 202, 25, 174, 176, 108, 227, 27, 65, 232,\n\t\t154, 6, 210, 62, 222, 82, 40, 71, 219, 106, 81, 132, 25, 136,\n\t\t94, 119, 11, 8, 200, 99, 137, 174, 9, 228, 48, 108, 161, 225,\n\t\t123, 21, 3, 173, 17, 134, 23, 77, 81, 149, 219, 78, 106, 35,\n\t\t73, 101, 46, 40, 113, 114, 231, 155, 53, 171, 117, 108, 75,\n\t\t233, 246, 146, 82, 141, 9, 24, 56, 68, 151, 58, 32, 49, 195,\n\t\t99, 139, 134, 11, 39, 210, 76, 173, 4, 75, 216, 77, 51, 37,\n\t\t104, 129, 5, 125, 109, 248, 106, 129, 64, 208, 100, 82, 24,\n\t\t186, 8, 133, 165, 167, 117, 65, 66, 219, 153, 35, 76, 16,\n\t\t68, 243, 139, 136, 184, 107, 168, 167, 224, 167, 137, 72,\n\t\t236, 5, 77, 20, 106, 104, 18, 142, 47, 205, 3, 88, 54, 137,\n\t\t168, 157, 28, 13, 125, 78, 192, 183, 22, 104, 236, 100, 43,\n\t\t8, 198, 165, 86, 152, 220, 118, 235, 154, 134, 149, 123, 91,\n\t\t146, 109, 154, 23, 191, 220, 200, 198, 128, 58, 234, 135,\n\t\t171, 232, 116, 25, 95, 3, 215, 242, 196, 159, 193, 140, 70,\n\t\t107, 232, 192, 38, 88, 164, 158, 188, 114, 206, 178, 220,\n\t\t194, 205, 22, 159, 234, 249, 155, 101, 126, 165, 239, 243,\n\t\t102, 53, 132, 26, 38, 158, 173, 78, 204, 119, 220, 172, 73,\n\t\t1, 239, 88, 51, 11, 168, 117, 135, 140, 187, 39, 67, 33, 215,\n\t\t155, 44, 208, 186, 30, 111, 189, 103, 43, 215, 190, 89, 223,\n\t\t139, 215, 216, 143, 36, 249, 45, 56, 127, 147, 246, 161, 98,\n\t\t221, 10, 66, 160, 50, 12, 217, 155, 217, 221, 28, 213, 211,\n\t\t18, 75, 22, 121, 38, 104, 187, 1, 142, 178, 48, 31, 166, 238,\n\t\t238, 251, 82, 127, 101, 49, 18, 165, 248, 98, 245, 53, 153,\n\t\t15, 102, 225, 160, 151, 92, 149, 156, 171, 150, 119, 131,\n\t\t71, 109, 156, 6, 62, 176, 25, 187, 2, 55, 20, 188, 35, 6,\n\t\t25, 10, 141, 7, 52, 141, 91, 168, 176, 182, 63, 222, 124,\n\t\t141, 210, 30, 88, 213, 109, 194, 27, 233, 230, 161, 129, 102,\n\t\t210, 130, 232, 48, 8, 74, 45, 235, 103, 104, 91, 146, 195,\n\t\t24, 225, 149, 86, 235, 96, 125, 88, 232, 70, 175, 241, 241,\n\t\t230, 251, 208, 246, 165, 26, 87, 144, 83, 24, 203, 136, 98,\n\t\t25, 92, 217, 218, 171, 234, 244, 128, 198, 99, 125, 92, 222,\n\t\t134, 143, 17, 55, 239, 195, 205, 24, 37, 162, 170, 127, 233,\n\t\t172, 70, 43, 6, 137, 102, 4, 119, 109, 27, 238, 72, 185, 177,\n\t\t173, 99, 12, 254, 109, 6, 241, 141, 73, 200, 96, 24, 188,\n\t\t137, 112, 147, 170, 144, 194, 185, 10, 133, 109, 235, 125,\n\t\t44, 116, 29, 94, 221, 179, 67, 206, 66, 19, 186, 112, 99,\n\t\t48, 200, 187, 116, 84, 140, 188, 72, 6, 134, 124, 138, 142,\n\t\t238, 109, 216, 48, 228, 75, 10, 90, 66, 33, 191, 188, 237,\n\t\t40, 105, 151, 170, 15, 107, 57, 137, 90, 9, 37, 55, 78, 64,\n\t\t18, 192, 165, 4, 180, 227, 76, 110, 118, 151, 101, 46, 210,\n\t\t128, 192, 124, 102, 74, 10, 189, 57, 55, 70, 196, 162, 84,\n\t\t15, 96, 135, 171, 159, 193, 194, 49, 26, 135, 214, 209, 109,\n\t\t70, 127, 124, 100, 94, 156, 248, 229, 200, 98, 140, 173, 15,\n\t\t67, 38, 40, 9, 29, 6, 19, 88, 146, 183, 16, 89, 158, 123,\n\t\t139, 222, 180, 96, 50, 45, 165, 74, 231, 50, 59, 209, 19,\n\t\t91, 15, 3, 11, 81, 168, 144, 40, 39, 121, 2, 43, 140, 82,\n\t\t60, 53, 3, 207, 39, 133, 1, 98, 240, 70, 10, 142, 43, 162,\n\t\t200, 234, 89, 35, 196, 250, 42, 23, 41, 93, 25, 175, 40, 56,\n\t\t37, 105, 21, 39, 159, 138, 210, 66, 231, 208, 134, 215, 31,\n\t\t217, 68, 199, 222, 25, 134, 156, 221, 127, 52, 60, 51, 215,\n\t\t100, 108, 151, 147, 225, 235, 89, 64, 159, 80, 104, 106, 205,\n\t\t105, 25, 53, 221, 81, 195, 100, 186, 104, 28, 31, 39, 47,\n\t\t2, 50, 66, 137, 21, 86, 88, 112, 242, 140, 188, 38, 197, 161,\n\t\t250, 67, 105, 210, 53, 199, 77, 205, 88, 202, 195, 166, 70,\n\t\t103, 61, 98, 244, 106, 4, 33, 162, 105, 101, 48, 38, 70, 8,\n\t\t254, 105, 217, 253, 60, 11, 168, 113, 196, 200, 60, 173, 199,\n\t\t11, 224, 203, 19, 83, 215, 182, 38, 202, 164, 76, 253, 147,\n\t\t71, 249, 227, 45, 142, 37, 186, 133, 40, 142, 173, 158, 205,\n\t\t42, 74, 63, 75, 48, 242, 2, 16, 161, 127, 61, 73, 174, 123,\n\t\t0, 156, 105, 2, 221, 160, 172, 19, 82, 27, 198, 242, 153,\n\t\t137, 63, 174, 9, 160, 141, 17, 112, 207, 213, 103, 132, 212,\n\t\t186, 238, 46, 55, 154, 18, 65, 195, 203, 55, 0, 252, 179,\n\t\t219, 237, 102, 50, 248, 182, 27, 135, 77, 48, 7, 143, 110,\n\t\t3, 222, 1, 27, 209, 138, 195, 153, 102, 111, 211, 35, 92,\n\t\t234, 9, 48, 101, 24, 46, 139, 121, 141, 5, 217, 8, 230, 149,\n\t\t161, 78, 141, 179, 69, 65, 234, 3, 60, 121, 189, 237, 100,\n\t\t72, 64, 50, 124, 91, 122, 26, 212, 52, 191, 60, 212, 246,\n\t\t99, 254, 237, 103, 208, 103, 75, 9, 6, 68, 244, 208, 178,\n\t\t91, 8, 249, 104, 139, 245, 160, 66, 149, 53, 51, 136, 174,\n\t\t254, 218, 246, 255, 231, 63, 247, 247, 63, 190, 255, 120,\n\t\t181, 251, 127, 255, 121, 192, 91, 96, 75, 183, 40, 60, 131,\n\t\t54, 239, 104, 236, 228, 50, 66, 6, 0, 86, 255, 228, 46, 134,\n\t\t110, 26, 98, 215, 160, 220, 166, 242, 132, 23, 140, 31, 105,\n\t\t149, 44, 205, 182, 6, 170, 49, 127, 228, 43, 118, 228, 48,\n\t\t20, 133, 58, 77, 122, 76, 112, 7, 107, 92, 212, 106, 179,\n\t\t171, 16, 163, 228, 211, 176, 179, 156, 242, 28, 247, 217,\n\t\t129, 59, 15, 4, 221, 67, 151, 119, 190, 86, 32, 202, 207,\n\t\t227, 9, 215, 28, 110, 133, 145, 20, 141, 128, 9, 207, 169,\n\t\t40, 210, 200, 66, 244, 167, 177, 160, 47, 19, 176, 158, 68,\n\t\t60, 160, 78, 186, 99, 219, 176, 12, 36, 76, 53, 208, 21, 61,\n\t\t196, 12, 13, 229, 141, 15, 155, 119, 125, 152, 91, 222, 196,\n\t\t95, 154, 119, 52, 152, 60, 14, 229, 62, 41, 157, 201, 164,\n\t\t163, 80, 209, 56, 209, 192, 226, 140, 113, 26, 5, 131, 59,\n\t\t158, 82, 148, 19, 91, 88, 208, 110, 112, 146, 9, 196, 80,\n\t\t54, 56, 235, 250, 240, 201, 178, 166, 42, 252, 62, 222, 98,\n\t\t18, 96, 135, 234, 142, 118, 205, 8, 42, 204, 121, 49, 100,\n\t\t168, 101, 244, 161, 75, 12, 76, 122, 92, 11, 9, 181, 197,\n\t\t156, 134, 61, 191, 156, 158, 20, 53, 179, 15, 167, 172, 211,\n\t\t17, 18, 100, 44, 123, 85, 38, 169, 40, 90, 13, 73, 144, 235,\n\t\t78, 92, 242, 253, 121, 153, 238, 156, 191, 233, 155, 90, 237,\n\t\t122, 62, 181, 141, 33, 183, 25, 65, 81, 219, 215, 33, 21,\n\t\t82, 25, 110, 144, 102, 61, 109, 77, 84, 79, 93, 19, 136, 176,\n\t\t129, 114, 231, 22, 144, 71, 34, 183, 175, 55, 146, 221, 184,\n\t\t69, 3, 23, 96, 237, 180, 97, 165, 73, 248, 34, 151, 45, 37,\n\t\t119, 249, 223, 205, 35, 146, 42, 113, 44, 252, 112, 116, 182,\n\t\t189, 67, 70, 5, 65, 12, 242, 194, 153, 122, 238, 250, 71,\n\t\t167, 71, 236, 156, 157, 39, 157, 136, 32, 245, 237, 225, 79,\n\t\t246, 103, 254, 124, 28, 88, 111, 16, 252, 127, 40, 207, 246,\n\t\t111, 223, 159, 145, 89, 98, 117, 255, 175, 35, 237, 250, 80,\n\t\t135, 57, 33, 139, 82, 133, 180, 121, 49, 176, 79, 22, 74,\n\t\t10, 203, 141, 51, 112, 136, 160, 243, 109, 86, 210, 7, 213,\n\t\t195, 23, 37, 98, 210, 238, 146, 185, 160, 141, 107, 220, 214,\n\t\t169, 220, 171, 179, 92, 201, 146, 243, 83, 204, 132, 249,\n\t\t3, 229, 230, 235, 226, 163, 166, 115, 58, 37, 184, 216, 120,\n\t\t55, 55, 43, 53, 147, 187, 238, 69, 253, 214, 91, 131, 75,\n\t\t33, 208, 42, 162, 250, 187, 5, 125, 230, 77, 43, 171, 103,\n\t\t88, 119, 212, 17, 91, 183, 7, 15, 143, 15, 78, 240, 210, 203,\n\t\t205, 16, 108, 9, 221, 112, 51, 60, 3, 28, 208, 1, 209, 116,\n\t\t194, 132, 165, 168, 15, 151, 91, 239, 187, 179, 113, 6, 114,\n\t\t115, 166, 16, 30, 30, 225, 22, 20, 235, 139, 119, 45, 22,\n\t\t254, 84, 160, 169, 235, 158, 189, 196, 99, 28, 90, 36, 245,\n\t\t159, 224, 222, 245, 147, 126, 185, 250, 230, 143, 254, 241,\n\t\t22, 75, 194, 232, 202, 47, 130, 179, 118, 65, 57, 85, 246,\n\t\t216, 184, 134, 254, 106, 11, 238, 186, 231, 176, 24, 185,\n\t\t137, 117, 59, 137, 160, 252, 164, 60, 97, 228, 214, 75, 57,\n\t\t210, 68, 224, 133, 205, 72, 147, 97, 216, 225, 64, 165, 163,\n\t\t52, 45, 200, 239, 43, 190, 34, 157, 6, 235, 198, 173, 40,\n\t\t153, 173, 18, 199, 106, 135, 63, 109, 225, 249, 165, 229,\n\t\t189, 174, 203, 105, 95, 214, 157, 194, 48, 98, 45, 89, 254,\n\t\t99, 93, 125, 183, 201, 201, 168, 222, 226, 53, 252, 26, 90,\n\t\t254, 203, 63, 255, 249, 2, 197, 19, 171, 255, 121, 220, 146,\n\t\t225, 246, 224, 218, 209, 141, 100, 211, 9, 69, 171, 133, 165,\n\t\t232, 92, 15, 197, 117, 37, 192, 218, 61, 48, 80, 59, 203,\n\t\t230, 172, 145, 137, 96, 35, 158, 48, 183, 200, 140, 173, 150,\n\t\t135, 193, 187, 177, 231, 16, 18, 91, 71, 228, 58, 230, 67,\n\t\t2, 219, 230, 48, 122, 243, 152, 37, 139, 166, 229, 84, 24,\n\t\t94, 26, 144, 220, 72, 205, 108, 46, 253, 9, 118, 81, 98, 45,\n\t\t60, 90, 173, 98, 28, 34, 143, 221, 230, 2, 152, 138, 74, 5,\n\t\t253, 225, 25, 12, 204, 1, 245, 79, 227, 68, 81, 58, 98, 34,\n\t\t223, 247, 170, 129, 159, 171, 185, 113, 51, 101, 63, 238,\n\t\t116, 221, 37, 146, 175, 195, 227, 173, 116, 136, 72, 165,\n\t\t166, 175, 35, 227, 231, 240, 91, 156, 13, 83, 122, 36, 88,\n\t\t156, 7, 0, 44, 118, 57, 221, 228, 25, 97, 39, 27, 132, 14,\n\t\t103, 23, 223, 63, 222, 178, 85, 95, 11, 46, 36, 12, 33, 103,\n\t\t100, 31, 209, 62, 65, 189, 74, 165, 21, 182, 3, 195, 31, 236,\n\t\t65, 241, 83, 20, 103, 77, 209, 216, 245, 108, 226, 37, 255,\n\t\t196, 207, 158, 185, 156, 53, 182, 79, 22, 210, 185, 97, 58,\n\t\t172, 76, 150, 89, 201, 129, 143, 183, 161, 188, 133, 80, 234,\n\t\t138, 161, 190, 220, 20, 78, 6, 167, 94, 141, 254, 136, 182,\n\t\t172, 149, 117, 102, 187, 166, 252, 27, 197, 144, 67, 197,\n\t\t38, 151, 161, 219, 2, 195, 71, 81, 9, 136, 173, 4, 206, 100,\n\t\t5, 33, 26, 24, 59, 179, 249, 179, 3, 73, 173, 29, 201, 188,\n\t\t105, 246, 45, 197, 185, 176, 97, 8, 169, 207, 105, 124, 190,\n\t\t38, 253, 103, 205, 152, 77, 182, 65, 13, 227, 200, 144, 120,\n\t\t150, 233, 24, 54, 157, 72, 32, 89, 60, 6, 230, 171, 38, 231,\n\t\t213, 208, 207, 239, 123, 213, 229, 116, 21, 237, 121, 247,\n\t\t165, 127, 188, 133, 49, 43, 155, 239, 153, 13, 114, 251, 12,\n\t\t230, 96, 80, 101, 48, 98, 64, 49, 91, 119, 168, 211, 101,\n\t\t156, 106, 57, 137, 181, 186, 218, 17, 179, 69, 60, 78, 230,\n\t\t179, 232, 183, 147, 175, 231, 172, 208, 196, 108, 124, 230,\n\t\t172, 8, 168, 27, 170, 148, 230, 255, 122, 186, 85, 16, 157,\n\t\t230, 119, 205, 233, 110, 112, 80, 62, 157, 110, 62, 3, 145,\n\t\t52, 95, 167, 91, 167, 101, 153, 109, 40, 203, 57, 219, 122,\n\t\t224, 255, 196, 108, 171, 164, 248, 201, 108, 99, 208, 254,\n\t\t203, 217, 158, 37, 20, 31, 111, 49, 43, 205, 247, 58, 239,\n\t\t42, 51, 254, 79, 78, 59, 119, 216, 159, 77, 123, 82, 150,\n\t\t186, 222, 14, 202, 53, 8, 7, 125, 68, 162, 239, 65, 204, 65,\n\t\t213, 211, 30, 99, 146, 219, 176, 243, 225, 30, 165, 108, 66,\n\t\t95, 120, 180, 19, 166, 207, 109, 217, 234, 47, 217, 11, 198,\n\t\t3, 217, 186, 119, 61, 228, 120, 101, 197, 198, 196, 175, 8,\n\t\t75, 52, 115, 79, 15, 95, 244, 193, 180, 192, 86, 22, 99, 130,\n\t\t49, 199, 149, 9, 15, 84, 15, 12, 207, 132, 35, 77, 105, 25,\n\t\t237, 19, 138, 10, 175, 99, 29, 223, 247, 217, 130, 60, 125,\n\t\t233, 60, 1, 166, 109, 153, 65, 154, 157, 251, 172, 241, 134,\n\t\t61, 215, 159, 181, 80, 178, 230, 210, 8, 73, 206, 30, 219,\n\t\t68, 16, 76, 218, 82, 19, 109, 74, 7, 163, 41, 199, 216, 54,\n\t\t153, 230, 102, 35, 140, 126, 200, 186, 48, 63, 222, 82, 43,\n\t\t71, 151, 218, 192, 36, 237, 230, 164, 132, 192, 99, 217, 1,\n\t\t222, 107, 57, 128, 193, 156, 136, 53, 208, 68, 233, 89, 19,\n\t\t37, 106, 34, 19, 234, 230, 84, 138, 38, 178, 16, 0, 186, 158,\n\t\t230, 77, 112, 205, 33, 108, 52, 145, 147, 147, 118, 142, 47,\n\t\t18, 232, 182, 182, 3, 136, 57, 198, 0, 231, 229, 52, 212,\n\t\t70, 204, 89, 178, 32, 201, 186, 194, 249, 253, 156, 101, 63,\n\t\t70, 184, 203, 66, 162, 104, 158, 127, 88, 235, 209, 141, 172,\n\t\t0, 79, 128, 55, 180, 230, 33, 141, 8, 160, 32, 107, 65, 195,\n\t\t239, 20, 6, 121, 177, 164, 112, 115, 126, 183, 154, 38, 124,\n\t\t23, 163, 142, 54, 92, 152, 104, 178, 230, 152, 33, 1, 108,\n\t\t112, 43, 107, 67, 124, 156, 139, 73, 95, 12, 47, 178, 123,\n\t\t86, 163, 216, 114, 219, 8, 193, 114, 223, 203, 52, 161, 238,\n\t\t222, 183, 35, 47, 66, 235, 151, 22, 239, 251, 191, 255, 254,\n\t\t247, 175, 127, 252, 248, 246, 183, 23, 179, 55, 252, 156,\n\t\t122, 62, 75, 64, 90, 128, 229, 207, 217, 169, 97, 174, 100,\n\t\t180, 48, 10, 237, 120, 67, 92, 4, 70, 232, 109, 114, 15, 143,\n\t\t5, 125, 149, 18, 226, 114, 27, 222, 135, 6, 245, 60, 18, 205,\n\t\t222, 200, 140, 41, 18, 73, 128, 229, 23, 68, 196, 108, 128,\n\t\t228, 55, 22, 111, 238, 8, 10, 93, 119, 63, 140, 195, 27, 27,\n\t\t76, 129, 214, 36, 156, 122, 26, 253, 177, 254, 18, 102, 27,\n\t\t105, 75, 77, 28, 71, 245, 140, 111, 18, 152, 5, 192, 29, 31,\n\t\t89, 138, 16, 50, 155, 187, 82, 54, 177, 51, 126, 46, 31, 210,\n\t\t114, 64, 110, 208, 226, 92, 74, 172, 158, 243, 105, 35, 160,\n\t\t99, 154, 85, 1, 162, 114, 137, 84, 146, 156, 212, 241, 110,\n\t\t44, 63, 245, 197, 31, 130, 173, 170, 250, 209, 178, 44, 150,\n\t\t71, 75, 129, 176, 16, 69, 1, 225, 20, 231, 36, 178, 85, 209,\n\t\t138, 104, 178, 101, 55, 57, 184, 85, 29, 217, 70, 53, 154,\n\t\t43, 150, 176, 92, 87, 91, 235, 135, 240, 53, 71, 66, 162,\n\t\t169, 225, 230, 187, 59, 194, 22, 218, 24, 113, 175, 141, 187,\n\t\t195, 175, 23, 77, 125, 250, 168, 206, 59, 235, 224, 8, 23,\n\t\t155, 13, 1, 111, 28, 117, 233, 8, 134, 174, 30, 92, 149, 192,\n\t\t16, 129, 217, 163, 23, 218, 13, 2, 196, 24, 56, 96, 42, 71,\n\t\t219, 12, 46, 44, 120, 65, 104, 101, 7, 75, 49, 178, 117, 9,\n\t\t21, 9, 202, 173, 241, 255, 121, 1, 122, 218, 173, 86, 97,\n\t\t252, 221, 111, 4, 134, 10, 85, 204, 60, 169, 31, 76, 130,\n\t\t159, 223, 72, 15, 233, 221, 68, 98, 31, 23, 9, 82, 194, 38,\n\t\t232, 181, 135, 44, 207, 188, 20, 182, 239, 236, 34, 158, 89,\n\t\t167, 90, 102, 96, 47, 107, 109, 183, 84, 114, 196, 208, 143,\n\t\t46, 181, 19, 93, 33, 139, 101, 224, 33, 198, 164, 232, 138,\n\t\t222, 24, 187, 113, 144, 21, 187, 237, 21, 243, 232, 67, 188,\n\t\t201, 242, 20, 224, 202, 126, 68, 193, 184, 88, 25, 228, 233,\n\t\t229, 91, 218, 184, 176, 61, 67, 83, 37, 183, 72, 188, 7, 221,\n\t\t37, 191, 150, 33, 255, 250, 203, 183, 223, 110, 47, 113, 255,\n\t\t26, 255, 164, 222, 39, 9, 253, 78, 78, 183, 61, 106, 88, 194,\n\t\t233, 39, 223, 251, 209, 239, 57, 221, 120, 248, 227, 45, 37,\n\t\t241, 246, 199, 152, 157, 195, 64, 147, 135, 239, 230, 1, 11,\n\t\t148, 236, 144, 36, 117, 152, 121, 99, 46, 162, 250, 149, 231,\n\t\t132, 171, 100, 72, 150, 61, 169, 6, 241, 59, 51, 44, 21, 150,\n\t\t160, 238, 205, 147, 192, 110, 86, 30, 232, 36, 208, 58, 182,\n\t\t156, 22, 29, 212, 176, 126, 127, 247, 234, 133, 70, 234, 50,\n\t\t101, 171, 145, 126, 148, 172, 201, 243, 48, 44, 178, 77, 81,\n\t\t31, 130, 4, 185, 11, 110, 144, 183, 212, 199, 11, 105, 136,\n\t\t164, 159, 209, 74, 189, 171, 137, 87, 104, 233, 110, 249,\n\t\t88, 225, 212, 78, 166, 104, 26, 130, 4, 52, 31, 233, 222,\n\t\t236, 57, 72, 118, 90, 182, 74, 131, 148, 195, 1, 177, 144,\n\t\t27, 44, 228, 132, 38, 51, 189, 188, 237, 121, 79, 246, 42,\n\t\t239, 226, 81, 182, 48, 12, 17, 9, 69, 228, 89, 84, 183, 7,\n\t\t139, 35, 26, 214, 128, 49, 238, 19, 183, 144, 225, 129, 134,\n\t\t83, 124, 170, 219, 24, 52, 105, 181, 86, 134, 36, 253, 118,\n\t\t146, 163, 126, 44, 6, 180, 23, 231, 36, 231, 200, 136, 142,\n\t\t211, 170, 224, 248, 214, 85, 225, 220, 230, 2, 247, 231, 222,\n\t\t137, 230, 35, 37, 122, 251, 16, 74, 227, 199, 190, 148, 67,\n\t\t146, 251, 82, 116, 164, 79, 242, 241, 150, 171, 27, 175, 54,\n\t\t100, 240, 175, 215, 250, 253, 219, 151, 127, 124, 253, 159,\n\t\t47, 107, 61, 253, 162, 33, 116, 104, 34, 173, 43, 31, 47,\n\t\t84, 12, 175, 18, 211, 148, 217, 0, 86, 160, 27, 103, 149,\n\t\t108, 116, 66, 0, 96, 8, 87, 250, 38, 137, 235, 190, 80, 150,\n\t\t24, 88, 119, 97, 139, 104, 244, 67, 210, 75, 216, 156, 55,\n\t\t180, 212, 166, 69, 249, 81, 57, 192, 138, 219, 113, 183, 114,\n\t\t242, 102, 114, 47, 222, 138, 119, 226, 141, 120, 159, 232,\n\t\t195, 199, 91, 212, 162, 146, 6, 45, 105, 245, 146, 168, 164,\n\t\t232, 180, 233, 124, 63, 210, 109, 79, 66, 13, 163, 194, 173,\n\t\t155, 213, 39, 79, 166, 206, 15, 225, 133, 32, 242, 130, 70,\n\t\t125, 78, 242, 245, 176, 97, 204, 58, 38, 157, 217, 241, 154,\n\t\t117, 141, 68, 76, 98, 176, 198, 78, 136, 219, 100, 141, 134,\n\t\t15, 134, 167, 4, 186, 0, 7, 214, 76, 251, 104, 209, 77, 221,\n\t\t227, 55, 99, 1, 73, 66, 33, 239, 198, 212, 122, 45, 71, 186,\n\t\t204, 200, 241, 78, 192, 17, 82, 1, 19, 86, 237, 86, 120, 160,\n\t\t43, 177, 12, 162, 192, 160, 62, 61, 137, 140, 135, 173, 164,\n\t\t216, 172, 124, 42, 43, 186, 139, 58, 162, 82, 100, 21, 213,\n\t\t193, 186, 25, 172, 129, 197, 177, 51, 187, 216, 18, 234, 37,\n\t\t19, 213, 101, 241, 55, 115, 142, 84, 206, 223, 246, 133, 195,\n\t\t72, 90, 126, 36, 121, 64, 246, 188, 80, 45, 58, 64, 235, 36,\n\t\t16, 154, 91, 42, 32, 197, 142, 251, 245, 198, 249, 31, 175,\n\t\t73, 148, 23, 234, 250, 169, 32, 124, 115, 7, 8, 50, 149, 173,\n\t\t170, 250, 94, 67, 21, 241, 82, 178, 86, 203, 99, 138, 194,\n\t\t81, 154, 171, 2, 72, 89, 187, 82, 55, 186, 4, 79, 51, 182,\n\t\t208, 68, 246, 71, 159, 147, 240, 156, 187, 154, 69, 9, 248,\n\t\t144, 220, 90, 63, 92, 142, 80, 93, 246, 55, 243, 101, 199,\n\t\t100, 98, 78, 84, 39, 10, 228, 92, 243, 41, 137, 211, 223,\n\t\t131, 111, 82, 2, 215, 146, 151, 148, 94, 9, 93, 15, 116, 109,\n\t\t198, 114, 71, 10, 189, 52, 161, 235, 240, 61, 71, 193, 79,\n\t\t61, 124, 235, 73, 10, 67, 90, 180, 8, 88, 237, 98, 7, 22,\n\t\t175, 41, 252, 120, 184, 208, 162, 154, 103, 101, 188, 242,\n\t\t152, 55, 225, 177, 9, 253, 72, 2, 138, 81, 252, 17, 83, 47,\n\t\t118, 68, 252, 193, 84, 75, 46, 10, 158, 209, 125, 116, 74,\n\t\t106, 224, 82, 211, 33, 240, 71, 40, 174, 10, 153, 131, 119,\n\t\t53, 9, 221, 104, 57, 66, 115, 2, 58, 214, 186, 43, 33, 11,\n\t\t204, 144, 172, 153, 126, 140, 225, 137, 106, 2, 134, 46, 176,\n\t\t42, 193, 11, 11, 93, 235, 45, 13, 225, 32, 63, 141, 233, 112,\n\t\t185, 151, 33, 71, 229, 223, 234, 14, 33, 58, 45, 78, 230,\n\t\t224, 98, 210, 100, 159, 163, 96, 228, 35, 238, 136, 213, 121,\n\t\t95, 5, 92, 180, 171, 10, 14, 165, 231, 120, 247, 99, 52, 186,\n\t\t63, 199, 150, 118, 41, 74, 227, 75, 153, 5, 106, 118, 126,\n\t\t26, 162, 77, 105, 184, 187, 87, 142, 101, 40, 245, 241, 234,\n\t\t202, 162, 185, 89, 57, 172, 236, 180, 148, 143, 150, 28, 99,\n\t\t68, 67, 93, 214, 35, 230, 30, 197, 243, 138, 85, 230, 112,\n\t\t130, 122, 181, 224, 162, 150, 189, 212, 108, 223, 5, 70, 57,\n\t\t185, 238, 53, 192, 140, 159, 7, 175, 51, 185, 135, 163, 199,\n\t\t174, 52, 159, 65, 235, 24, 130, 56, 114, 236, 203, 142, 249,\n\t\t104, 69, 11, 3, 101, 18, 75, 30, 63, 200, 146, 39, 175, 189,\n\t\t158, 254, 104, 37, 135, 184, 185, 195, 151, 172, 162, 102,\n\t\t140, 185, 118, 153, 140, 217, 28, 78, 107, 245, 169, 217,\n\t\t129, 211, 231, 35, 164, 236, 55, 39, 238, 77, 241, 210, 212,\n\t\t210, 106, 222, 134, 223, 229, 155, 150, 127, 228, 218, 37,\n\t\t22, 91, 163, 211, 128, 131, 75, 81, 130, 188, 173, 149, 42,\n\t\t251, 200, 69, 23, 231, 129, 97, 83, 167, 40, 129, 164, 49,\n\t\t239, 33, 99, 92, 123, 41, 181, 87, 217, 3, 132, 104, 9, 94,\n\t\t15, 229, 35, 251, 92, 194, 199, 91, 143, 58, 67, 193, 135,\n\t\t67, 250, 169, 210, 88, 21, 99, 173, 187, 234, 162, 228, 17,\n\t\t138, 22, 211, 247, 234, 170, 54, 113, 74, 203, 65, 117, 245,\n\t\t12, 71, 202, 8, 217, 143, 69, 180, 5, 253, 199, 151, 35, 121,\n\t\t45, 204, 79, 154, 227, 81, 115, 167, 31, 69, 219, 73, 143,\n\t\t168, 179, 53, 196, 102, 147, 130, 161, 150, 85, 109, 246,\n\t\t35, 151, 225, 151, 31, 173, 58, 207, 174, 217, 52, 76, 184,\n\t\t195, 39, 87, 20, 231, 170, 249, 30, 151, 141, 60, 4, 93, 28,\n\t\t71, 98, 56, 66, 214, 234, 80, 108, 10, 1, 99, 17, 124, 141,\n\t\t32, 13, 203, 4, 175, 232, 135, 8, 36, 119, 164, 230, 242,\n\t\t199, 91, 40, 233, 232, 94, 24, 162, 178, 104, 241, 86, 92,\n\t\t84, 43, 28, 194, 108, 216, 80, 65, 31, 76, 255, 52, 134, 107,\n\t\t140, 164, 215, 189, 113, 219, 201, 189, 238, 75, 58, 138,\n\t\t120, 20, 189, 200, 111, 195, 81, 107, 23, 64, 193, 226, 198,\n\t\t242, 203, 71, 73, 64, 82, 17, 1, 180, 181, 35, 143, 95, 74,\n\t\t172, 104, 8, 148, 224, 100, 73, 13, 249, 35, 91, 222, 101,\n\t\t95, 115, 109, 27, 193, 119, 236, 107, 233, 33, 14, 23, 117,\n\t\t11, 135, 111, 57, 75, 184, 35, 139, 211, 112, 132, 48, 68,\n\t\t204, 216, 108, 193, 251, 161, 2, 115, 45, 65, 168, 107, 243,\n\t\t217, 142, 218, 92, 24, 147, 220, 170, 80, 39, 123, 127, 148,\n\t\t40, 234, 102, 44, 172, 161, 66, 194, 145, 83, 215, 173, 39,\n\t\t111, 55, 172, 56, 63, 214, 141, 79, 238, 104, 241, 22, 35,\n\t\t150, 133, 124, 61, 221, 145, 199, 239, 226, 22, 143, 224,\n\t\t123, 141, 91, 56, 122, 26, 226, 96, 172, 221, 210, 227, 204,\n\t\t254, 13, 73, 223, 227, 117, 232, 168, 162, 5, 231, 94, 150,\n\t\t196, 120, 95, 87, 36, 53, 122, 120, 15, 17, 224, 161, 48,\n\t\t228, 49, 74, 247, 227, 182, 73, 76, 76, 159, 194, 81, 162,\n\t\t191, 197, 34, 11, 101, 195, 247, 83, 100, 116, 146, 37, 230,\n\t\t107, 47, 125, 12, 190, 60, 144, 247, 114, 133, 109, 157, 182,\n\t\t210, 253, 117, 24, 54, 190, 215, 211, 201, 10, 20, 73, 60,\n\t\t36, 114, 30, 214, 139, 207, 218, 187, 213, 188, 203, 169,\n\t\t14, 199, 78, 186, 214, 100, 119, 78, 165, 49, 52, 68, 214,\n\t\t178, 179, 36, 140, 198, 222, 29, 37, 3, 122, 65, 25, 141,\n\t\t251, 209, 165, 226, 203, 235, 188, 231, 35, 187, 94, 171,\n\t\t100, 17, 33, 181, 252, 225, 90, 111, 115, 85, 113, 224, 175,\n\t\t66, 185, 211, 5, 42, 213, 169, 240, 25, 215, 201, 142, 16,\n\t\t250, 78, 73, 10, 139, 80, 41, 47, 47, 87, 243, 109, 183, 73,\n\t\t26, 162, 38, 222, 196, 42, 17, 45, 226, 99, 129, 174, 246,\n\t\t185, 11, 167, 148, 220, 94, 10, 50, 107, 232, 73, 107, 229,\n\t\t144, 31, 92, 158, 168, 230, 43, 219, 87, 238, 139, 220, 254,\n\t\t120, 203, 194, 77, 36, 28, 47, 93, 235, 18, 154, 202, 231,\n\t\t85, 184, 199, 40, 235, 125, 129, 69, 206, 34, 208, 147, 134,\n\t\t59, 133, 116, 193, 251, 28, 54, 127, 180, 144, 37, 13, 63,\n\t\t70, 62, 11, 108, 108, 73, 121, 30, 24, 110, 117, 235, 254,\n\t\t238, 14, 31, 134, 102, 184, 203, 179, 9, 13, 111, 202, 179,\n\t\t125, 134, 240, 77, 13, 42, 60, 31, 173, 245, 146, 79, 145,\n\t\t86, 98, 80, 228, 158, 171, 72, 43, 121, 156, 49, 74, 189,\n\t\t72, 9, 249, 184, 143, 149, 230, 93, 206, 88, 100, 207, 74,\n\t\t149, 144, 108, 144, 49, 181, 165, 91, 121, 195, 112, 3, 198,\n\t\t246, 72, 186, 252, 78, 31, 199, 28, 165, 205, 30, 56, 141,\n\t\t237, 172, 182, 195, 88, 208, 178, 148, 134, 109, 152, 129,\n\t\t0, 42, 15, 48, 12, 78, 53, 106, 179, 30, 232, 34, 182, 130,\n\t\t70, 200, 132, 96, 220, 143, 81, 42, 34, 8, 135, 237, 172,\n\t\t70, 227, 196, 243, 27, 134, 137, 30, 232, 82, 212, 92, 198,\n\t\t194, 113, 227, 112, 204, 130, 25, 35, 166, 84, 200, 42, 151,\n\t\t115, 17, 53, 54, 92, 4, 145, 26, 57, 203, 3, 73, 197, 252,\n\t\t16, 212, 219, 50, 123, 169, 28, 41, 58, 89, 179, 106, 177,\n\t\t12, 79, 184, 58, 229, 195, 47, 97, 56, 130, 162, 35, 197,\n\t\t132, 211, 197, 20, 212, 142, 16, 60, 91, 209, 10, 16, 119,\n\t\t123, 61, 92, 146, 158, 220, 161, 216, 189, 3, 112, 108, 138,\n\t\t176, 183, 138, 190, 115, 225, 170, 134, 46, 176, 35, 90, 105,\n\t\t41, 233, 87, 21, 198, 90, 7, 31, 155, 102, 104, 189, 248,\n\t\t157, 169, 99, 237, 143, 149, 33, 225, 91, 153, 251, 109, 108,\n\t\t123, 253, 73, 236, 114, 72, 141, 48, 231, 179, 20, 19, 15,\n\t\t99, 65, 235, 10, 135, 240, 150, 93, 30, 69, 44, 73, 218, 161,\n\t\t108, 210, 4, 217, 181, 204, 94, 244, 99, 0, 68, 233, 56, 48,\n\t\t46, 39, 244, 124, 69, 17, 142, 69, 95, 54, 53, 130, 53, 219,\n\t\t191, 149, 8, 77, 52, 220, 136, 54, 70, 173, 138, 94, 211,\n\t\t66, 180, 73, 117, 106, 116, 96, 195, 102, 209, 126, 198, 124,\n\t\t164, 164, 102, 103, 63, 156, 180, 222, 199, 122, 164, 142,\n\t\t240, 167, 138, 197, 40, 195, 152, 21, 31, 183, 56, 197, 148,\n\t\t73, 210, 104, 156, 5, 237, 65, 122, 196, 178, 96, 62, 56,\n\t\t53, 34, 132, 230, 77, 69, 123, 245, 71, 25, 22, 72, 237, 34,\n\t\t233, 66, 110, 71, 226, 215, 49, 20, 45, 199, 236, 149, 218,\n\t\t205, 140, 213, 48, 228, 121, 40, 79, 59, 253, 112, 61, 12,\n\t\t1, 55, 15, 138, 147, 159, 21, 234, 100, 15, 201, 29, 161,\n\t\t250, 45, 15, 155, 94, 122, 152, 198, 6, 169, 85, 184, 58,\n\t\t171, 70, 219, 177, 207, 48, 109, 67, 19, 87, 151, 157, 212,\n\t\t24, 75, 137, 156, 170, 141, 97, 84, 247, 26, 207, 230, 15,\n\t\t95, 165, 82, 107, 172, 211, 88, 182, 16, 194, 209, 115, 22,\n\t\t8, 12, 25, 241, 56, 182, 121, 141, 118, 224, 234, 132, 146,\n\t\t62, 212, 83, 96, 2, 171, 148, 53, 215, 232, 210, 112, 160,\n\t\t234, 81, 20, 5, 167, 250, 184, 133, 228, 199, 200, 165, 97,\n\t\t27, 184, 118, 138, 240, 113, 113, 211, 74, 170, 170, 130,\n\t\t3, 213, 32, 14, 179, 235, 203, 17, 155, 235, 31, 111, 197,\n\t\t213, 99, 252, 97, 248, 157, 89, 8, 19, 186, 85, 18, 4, 17,\n\t\t129, 93, 205, 243, 60, 126, 208, 138, 32, 78, 138, 240, 129,\n\t\t65, 173, 217, 84, 217, 231, 54, 4, 123, 133, 221, 154, 41,\n\t\t31, 60, 206, 225, 112, 36, 135, 213, 217, 116, 59, 120, 55,\n\t\t6, 114, 179, 22, 43, 31, 143, 36, 142, 89, 9, 2, 167, 160,\n\t\t202, 30, 191, 150, 29, 44, 7, 164, 110, 177, 135, 105, 150,\n\t\t9, 182, 104, 31, 94, 76, 62, 106, 166, 14, 211, 221, 233,\n\t\t189, 184, 4, 75, 41, 90, 195, 54, 133, 231, 118, 57, 155,\n\t\t44, 225, 40, 169, 179, 172, 102, 225, 240, 99, 155, 46, 99,\n\t\t223, 84, 196, 52, 117, 64, 126, 233, 163, 254, 246, 237, 239,\n\t\t223, 127, 251, 191, 190, 158, 47, 72, 139, 117, 226, 184,\n\t\t250, 162, 61, 196, 136, 167, 105, 197, 240, 196, 217, 28,\n\t\t230, 226, 125, 143, 77, 211, 73, 70, 148, 56, 93, 120, 254,\n\t\t119, 149, 147, 246, 121, 157, 113, 124, 61, 47, 134, 187,\n\t\t94, 134, 167, 44, 55, 145, 255, 93, 99, 147, 132, 116, 216,\n\t\t124, 110, 71, 185, 206, 178, 144, 123, 148, 54, 220, 110,\n\t\t41, 22, 228, 29, 52, 211, 233, 162, 96, 108, 140, 111, 87,\n\t\t150, 133, 95, 4, 14, 213, 9, 124, 161, 102, 157, 218, 99,\n\t\t68, 201, 218, 50, 174, 172, 49, 191, 215, 132, 88, 83, 73,\n\t\t247, 61, 196, 112, 45, 233, 30, 53, 240, 113, 101, 223, 202,\n\t\t169, 81, 12, 205, 218, 90, 13, 34, 98, 32, 149, 69, 182, 188,\n\t\t52, 242, 229, 39, 3, 172, 78, 72, 189, 39, 97, 180, 126, 107,\n\t\t8, 167, 190, 133, 214, 54, 223, 52, 171, 107, 197, 84, 187,\n\t\t129, 159, 24, 162, 65, 92, 74, 212, 48, 188, 17, 239, 130,\n\t\t178, 55, 5, 65, 181, 48, 40, 96, 61, 10, 130, 109, 172, 1,\n\t\t26, 111, 123, 247, 130, 160, 198, 208, 34, 225, 127, 16, 123,\n\t\t121, 58, 249, 74, 152, 130, 184, 100, 20, 23, 116, 197, 237,\n\t\t225, 129, 254, 12, 140, 238, 183, 111, 127, 156, 223, 191,\n\t\t189, 96, 12, 215, 95, 112, 167, 75, 160, 4, 76, 113, 195,\n\t\t58, 43, 226, 115, 248, 195, 9, 202, 205, 167, 245, 186, 243,\n\t\t111, 168, 217, 149, 3, 75, 221, 238, 59, 235, 127, 237, 15,\n\t\t187, 84, 243, 198, 18, 134, 174, 22, 176, 184, 24, 207, 116,\n\t\t244, 88, 243, 22, 195, 209, 187, 150, 197, 251, 174, 232,\n\t\t176, 234, 85, 101, 232, 239, 50, 228, 97, 12, 183, 161, 99,\n\t\t83, 201, 218, 60, 30, 252, 77, 202, 36, 125, 24, 22, 179,\n\t\t248, 21, 183, 161, 252, 154, 104, 138, 20, 143, 28, 98, 18,\n\t\t55, 92, 194, 58, 67, 118, 134, 160, 41, 159, 172, 140, 66,\n\t\t37, 182, 170, 245, 1, 42, 240, 253, 112, 234, 110, 67, 127,\n\t\t134, 86, 183, 20, 37, 110, 32, 55, 241, 189, 5, 185, 137,\n\t\t15, 249, 38, 245, 10, 195, 249, 30, 243, 94, 90, 22, 78, 99,\n\t\t13, 245, 12, 75, 164, 21, 225, 249, 60, 106, 204, 195, 18,\n\t\t41, 205, 23, 173, 210, 139, 117, 152, 105, 174, 197, 222,\n\t\t110, 78, 221, 157, 152, 196, 234, 239, 37, 53, 233, 255, 201,\n\t\t161, 199, 173, 139, 253, 45, 189, 115, 208, 112, 161, 31,\n\t\t174, 132, 252, 46, 3, 228, 149, 192, 67, 36, 222, 240, 33,\n\t\t74, 18, 75, 165, 251, 232, 250, 69, 56, 38, 130, 232, 208,\n\t\t163, 138, 137, 238, 227, 225, 60, 236, 2, 117, 230, 205, 181,\n\t\t201, 71, 11, 73, 161, 166, 75, 31, 79, 157, 199, 171, 231,\n\t\t118, 58, 17, 177, 69, 116, 171, 239, 49, 10, 18, 101, 77,\n\t\t2, 80, 54, 252, 28, 241, 240, 194, 209, 66, 215, 128, 215,\n\t\t120, 56, 113, 59, 69, 173, 141, 101, 28, 52, 6, 229, 143,\n\t\t86, 179, 164, 144, 240, 163, 61, 216, 145, 234, 67, 235, 254,\n\t\t38, 181, 175, 93, 168, 158, 252, 17, 99, 21, 130, 50, 216,\n\t\t115, 145, 195, 153, 142, 90, 106, 22, 193, 30, 33, 243, 195,\n\t\t145, 170, 175, 210, 243, 82, 82, 75, 151, 83, 20, 123, 106,\n\t\t242, 136, 67, 71, 69, 69, 180, 16, 15, 24, 11, 237, 233, 251,\n\t\t77, 98, 184, 222, 105, 170, 207, 167, 154, 135, 183, 153,\n\t\t124, 18, 52, 135, 22, 138, 175, 103, 57, 114, 107, 99, 153,\n\t\t248, 163, 100, 31, 171, 140, 103, 74, 125, 70, 130, 252, 196,\n\t\t131, 119, 174, 180, 116, 83, 125, 52, 158, 109, 108, 109,\n\t\t31, 250, 109, 172, 160, 230, 197, 203, 213, 117, 42, 43, 40,\n\t\t70, 89, 200, 49, 164, 51, 31, 189, 180, 170, 54, 168, 175,\n\t\t94, 202, 138, 75, 211, 137, 245, 177, 149, 42, 1, 177, 86,\n\t\t178, 198, 30, 74, 207, 23, 93, 134, 62, 107, 132, 43, 135,\n\t\t144, 111, 178, 27, 20, 121, 80, 87, 42, 31, 36, 141, 181,\n\t\t93, 251, 41, 217, 235, 20, 69, 63, 142, 19, 182, 230, 15,\n\t\t13, 100, 100, 44, 181, 158, 143, 62, 70, 60, 150, 163, 134,\n\t\t34, 221, 18, 45, 102, 176, 216, 75, 47, 146, 134, 153, 114,\n\t\t60, 66, 243, 130, 131, 60, 76, 178, 46, 1, 170, 238, 195,\n\t\t208, 121, 98, 163, 12, 33, 55, 86, 80, 132, 121, 36, 221,\n\t\t126, 97, 120, 30, 53, 85, 193, 219, 31, 206, 242, 199, 91,\n\t\t116, 238, 240, 85, 221, 121, 159, 189, 24, 42, 234, 204, 238,\n\t\t184, 103, 201, 71, 116, 85, 11, 74, 198, 150, 150, 76, 70,\n\t\t205, 9, 100, 30, 41, 74, 163, 72, 79, 41, 110, 89, 91, 47,\n\t\t206, 161, 207, 147, 218, 255, 106, 114, 87, 83, 178, 241,\n\t\t168, 190, 182, 161, 249, 213, 209, 74, 195, 46, 18, 46, 116,\n\t\t215, 198, 203, 137, 104, 106, 94, 88, 240, 75, 13, 45, 107,\n\t\t26, 32, 202, 246, 200, 135, 147, 16, 173, 207, 176, 182, 68,\n\t\t59, 133, 130, 74, 28, 105, 223, 207, 105, 120, 64, 233, 136,\n\t\t161, 12, 127, 38, 31, 177, 12, 97, 25, 143, 22, 170, 207,\n\t\t146, 217, 137, 36, 34, 169, 67, 236, 148, 163, 37, 224, 79,\n\t\t186, 152, 254, 84, 188, 255, 251, 69, 182, 191, 224, 140,\n\t\t166, 206, 26, 12, 244, 103, 110, 177, 185, 163, 157, 29, 89,\n\t\t64, 2, 52, 5, 105, 143, 233, 132, 169, 73, 194, 115, 131,\n\t\t74, 160, 21, 12, 95, 149, 189, 53, 151, 25, 205, 102, 96,\n\t\t242, 32, 72, 243, 100, 67, 206, 177, 205, 195, 121, 168, 98,\n\t\t118, 66, 134, 46, 234, 19, 192, 154, 11, 104, 36, 155, 243,\n\t\t118, 201, 92, 91, 96, 149, 85, 249, 90, 209, 170, 125, 72,\n\t\t81, 73, 27, 85, 29, 251, 208, 142, 186, 69, 251, 129, 147,\n\t\t200, 193, 134, 108, 189, 47, 253, 104, 219, 184, 169, 103,\n\t\t129, 79, 144, 192, 170, 154, 9, 65, 241, 75, 52, 219, 133,\n\t\t114, 244, 201, 72, 37, 186, 43, 90, 126, 105, 15, 146, 202,\n\t\t240, 155, 87, 218, 253, 80, 252, 105, 168, 42, 28, 24, 35,\n\t\t122, 161, 166, 223, 205, 167, 138, 238, 67, 120, 158, 241,\n\t\t71, 52, 157, 227, 230, 102, 242, 184, 109, 193, 161, 6, 120,\n\t\t60, 1, 201, 5, 201, 221, 121, 69, 143, 247, 69, 160, 0, 19,\n\t\t146, 149, 41, 30, 195, 181, 6, 222, 43, 123, 122, 140, 0,\n\t\t63, 107, 75, 149, 22, 153, 57, 58, 122, 160, 104, 247, 65,\n\t\t113, 110, 118, 160, 28, 100, 5, 141, 43, 64, 66, 20, 228,\n\t\t193, 32, 148, 53, 104, 9, 30, 118, 66, 179, 39, 71, 222, 220,\n\t\t79, 190, 220, 199, 15, 239, 118, 228, 229, 92, 252, 123, 83,\n\t\t96, 113, 223, 183, 234, 49, 177, 147, 109, 159, 13, 148, 203,\n\t\t111, 208, 233, 161, 131, 72, 56, 118, 103, 103, 216, 51, 61,\n\t\t63, 201, 199, 91, 148, 212, 97, 244, 225, 144, 150, 25, 242,\n\t\t64, 7, 0, 70, 117, 69, 16, 205, 155, 187, 239, 213, 163, 46,\n\t\t126, 242, 189, 236, 133, 21, 153, 125, 66, 237, 9, 208, 34,\n\t\t10, 174, 87, 120, 31, 146, 111, 249, 37, 245, 56, 190, 224,\n\t\t228, 59, 174, 47, 216, 163, 235, 173, 31, 30, 202, 45, 88,\n\t\t3, 141, 67, 62, 22, 118, 244, 135, 16, 24, 72, 83, 126, 56,\n\t\t242, 217, 173, 23, 56, 163, 91, 23, 242, 46, 161, 142, 92,\n\t\t78, 150, 115, 127, 45, 94, 110, 95, 206, 191, 253, 246, 245,\n\t\t199, 143, 87, 33, 243, 43, 64, 194, 33, 230, 135, 156, 23,\n\t\t203, 154, 165, 117, 172, 72, 221, 19, 139, 239, 170, 172,\n\t\t48, 124, 189, 74, 24, 64, 122, 186, 61, 241, 105, 175, 5,\n\t\t104, 217, 201, 232, 252, 179, 1, 176, 33, 169, 108, 7, 162,\n\t\t149, 49, 247, 32, 216, 126, 67, 194, 253, 201, 15, 213, 71,\n\t\t1, 244, 254, 211, 195, 106, 170, 109, 62, 172, 181, 2, 60,\n\t\t61, 239, 229, 134, 82, 135, 231, 167, 254, 120, 107, 86, 129,\n\t\t212, 143, 62, 158, 69, 174, 240, 248, 44, 50, 38, 207, 47,\n\t\t33, 207, 178, 208, 5, 233, 67, 37, 195, 67, 230, 192, 161,\n\t\t74, 246, 97, 224, 164, 233, 212, 30, 33, 8, 202, 43, 31, 64,\n\t\t239, 141, 40, 209, 188, 55, 92, 159, 207, 239, 173, 107, 120,\n\t\t222, 219, 160, 212, 245, 200, 101, 222, 223, 163, 146, 104,\n\t\t121, 8, 237, 128, 72, 185, 9, 102, 189, 208, 110, 127, 58,\n\t\t35, 54, 10, 47, 51, 178, 142, 194, 127, 56, 35, 63, 159, 144,\n\t\t20, 5, 89, 34, 231, 151, 165, 33, 247, 224, 244, 63, 63, 200,\n\t\t5, 79, 130, 186, 229, 244, 191, 246, 16, 33, 9, 86, 166, 11,\n\t\t127, 182, 34, 126, 190, 58, 159, 158, 192, 38, 196, 158, 64,\n\t\t178, 251, 63, 123, 130, 95, 239, 248, 239, 127, 253, 235,\n\t\t39, 237, 76, 6, 45, 233, 75, 56, 210, 22, 178, 129, 190, 39,\n\t\t43, 177, 80, 209, 203, 102, 92, 2, 49, 224, 251, 25, 140,\n\t\t150, 128, 100, 32, 75, 75, 138, 33, 206, 0, 52, 224, 36, 62,\n\t\t32, 145, 101, 168, 134, 171, 125, 98, 221, 180, 155, 144,\n\t\t1, 51, 147, 171, 20, 194, 179, 167, 56, 129, 56, 0, 146, 23,\n\t\t255, 106, 13, 168, 233, 228, 201, 15, 237, 52, 72, 52, 101,\n\t\t214, 2, 30, 217, 5, 223, 25, 42, 106, 143, 74, 89, 161, 2,\n\t\t126, 118, 81, 78, 210, 66, 162, 125, 206, 130, 49, 85, 71,\n\t\t65, 45, 137, 143, 183, 16, 4, 215, 37, 11, 184, 42, 106, 239,\n\t\t165, 74, 30, 75, 131, 217, 117, 240, 197, 159, 134, 72, 91,\n\t\t13, 206, 118, 103, 55, 231, 132, 94, 6, 226, 237, 109, 239,\n\t\t152, 150, 221, 75, 221, 23, 203, 74, 201, 178, 113, 57, 133,\n\t\t173, 71, 30, 77, 146, 122, 217, 184, 30, 88, 204, 156, 141,\n\t\t246, 89, 205, 52, 131, 12, 225, 192, 53, 43, 206, 49, 180,\n\t\t14, 31, 22, 114, 51, 193, 53, 165, 22, 54, 26, 103, 199, 166,\n\t\t123, 137, 193, 240, 162, 17, 175, 196, 66, 29, 150, 90, 20,\n\t\t199, 82, 67, 249, 46, 148, 178, 135, 20, 148, 36, 130, 78,\n\t\t108, 19, 204, 35, 168, 239, 10, 55, 140, 92, 71, 89, 91, 206,\n\t\t235, 28, 17, 180, 24, 25, 18, 209, 196, 80, 170, 65, 203,\n\t\t80, 113, 206, 41, 136, 177, 90, 115, 45, 77, 169, 115, 65,\n\t\t136, 179, 194, 179, 26, 94, 35, 216, 61, 208, 126, 166, 173,\n\t\t102, 196, 55, 119, 39, 49, 159, 13, 80, 212, 26, 237, 172,\n\t\t220, 93, 210, 65, 154, 173, 38, 83, 174, 245, 142, 19, 17,\n\t\t215, 186, 220, 134, 169, 40, 137, 61, 2, 83, 67, 106, 226,\n\t\t133, 186, 109, 12, 28, 240, 53, 10, 77, 158, 47, 195, 200,\n\t\t119, 82, 224, 86, 88, 163, 62, 254, 88, 201, 246, 205, 150,\n\t\t29, 226, 121, 38, 148, 57, 101, 118, 217, 3, 238, 183, 114,\n\t\t149, 224, 189, 162, 112, 201, 224, 118, 49, 57, 195, 234,\n\t\t56, 173, 83, 133, 16, 79, 209, 154, 213, 88, 47, 68, 247,\n\t\t12, 88, 89, 167, 181, 118, 226, 133, 171, 52, 36, 206, 174,\n\t\t158, 230, 4, 98, 210, 182, 165, 23, 84, 33, 175, 243, 149,\n\t\t30, 170, 88, 165, 120, 55, 127, 188, 197, 50, 172, 38, 173,\n\t\t53, 152, 108, 199, 27, 233, 61, 58, 135, 122, 34, 219, 229,\n\t\t121, 222, 36, 169, 105, 19, 174, 90, 161, 218, 117, 151, 238,\n\t\t68, 155, 90, 136, 253, 48, 213, 139, 57, 104, 204, 207, 64,\n\t\t1, 65, 182, 144, 8, 42, 6, 150, 100, 0, 156, 141, 52, 105,\n\t\t210, 169, 195, 80, 104, 83, 136, 85, 84, 116, 98, 136, 114,\n\t\t145, 7, 14, 19, 203, 144, 127, 209, 234, 49, 22, 118, 5, 82,\n\t\t124, 18, 73, 100, 194, 149, 122, 24, 215, 82, 160, 202, 157,\n\t\t173, 22, 217, 144, 26, 218, 60, 35, 66, 3, 133, 194, 81, 235,\n\t\t130, 247, 66, 64, 123, 40, 133, 115, 15, 117, 130, 215, 239,\n\t\t201, 60, 28, 43, 199, 167, 106, 43, 234, 43, 202, 82, 214,\n\t\t115, 242, 92, 186, 148, 231, 132, 106, 177, 237, 74, 30, 129,\n\t\t245, 17, 172, 225, 104, 152, 75, 186, 170, 20, 133, 252, 180,\n\t\t224, 52, 251, 174, 248, 180, 100, 23, 46, 160, 83, 221, 179,\n\t\t10, 148, 115, 17, 162, 186, 24, 20, 131, 193, 84, 133, 192,\n\t\t65, 75, 178, 207, 45, 240, 113, 196, 195, 197, 198, 49, 209,\n\t\t135, 219, 98, 67, 93, 78, 3, 245, 39, 164, 246, 36, 42, 86,\n\t\t243, 145, 78, 64, 59, 242, 105, 81, 109, 196, 199, 169, 31,\n\t\t137, 79, 173, 151, 234, 42, 71, 255, 19, 85, 191, 255, 246,\n\t\t162, 236, 13, 254, 52, 165, 33, 21, 66, 200, 71, 60, 213,\n\t\t9, 5, 150, 44, 167, 36, 38, 225, 244, 57, 128, 140, 82, 207,\n\t\t133, 67, 212, 100, 19, 17, 63, 82, 154, 254, 176, 166, 95,\n\t\t11, 155, 83, 9, 204, 53, 235, 22, 45, 17, 33, 157, 132, 123,\n\t\t35, 170, 23, 200, 40, 78, 22, 24, 227, 238, 195, 215, 15,\n\t\t134, 226, 164, 104, 14, 214, 172, 40, 1, 177, 173, 137, 215,\n\t\t164, 54, 11, 219, 16, 189, 75, 71, 218, 122, 194, 158, 162,\n\t\t235, 109, 189, 98, 117, 139, 82, 220, 172, 42, 215, 71, 193,\n\t\t133, 30, 215, 242, 155, 64, 158, 202, 89, 164, 231, 144, 76,\n\t\t67, 239, 39, 83, 39, 169, 88, 71, 176, 162, 14, 97, 121, 53,\n\t\t54, 68, 107, 105, 248, 25, 32, 81, 73, 149, 162, 96, 74, 42,\n\t\t137, 157, 204, 235, 208, 24, 41, 45, 106, 58, 27, 53, 55,\n\t\t54, 107, 97, 49, 47, 137, 189, 3, 215, 240, 24, 190, 196,\n\t\t166, 13, 58, 159, 37, 83, 4, 92, 206, 192, 229, 31, 232, 36,\n\t\t2, 72, 102, 207, 204, 252, 18, 164, 177, 163, 74, 118, 237,\n\t\t37, 134, 89, 23, 166, 1, 171, 137, 39, 195, 25, 18, 148, 96,\n\t\t26, 45, 48, 107, 141, 27, 129, 250, 221, 176, 242, 242, 233,\n\t\t241, 142, 193, 218, 112, 185, 95, 216, 84, 243, 66, 93, 236,\n\t\t39, 142, 155, 214, 234, 104, 111, 79, 254, 120, 243, 66, 142,\n\t\t19, 90, 211, 186, 23, 138, 66, 31, 224, 77, 148, 217, 101,\n\t\t225, 23, 150, 110, 233, 35, 90, 120, 44, 32, 177, 23, 16,\n\t\t67, 125, 159, 204, 161, 34, 233, 67, 138, 211, 56, 76, 240,\n\t\t24, 76, 40, 101, 88, 135, 192, 220, 104, 130, 71, 128, 165,\n\t\t53, 169, 79, 28, 134, 47, 96, 239, 195, 202, 53, 150, 94,\n\t\t14, 153, 95, 88, 111, 84, 94, 0, 71, 241, 180, 5, 203, 69,\n\t\t97, 160, 123, 156, 134, 76, 145, 162, 7, 78, 171, 138, 31,\n\t\t214, 180, 196, 240, 3, 11, 99, 88, 123, 140, 208, 202, 199,\n\t\t91, 28, 102, 201, 214, 8, 9, 131, 13, 75, 139, 164, 154, 121,\n\t\t79, 199, 32, 146, 140, 92, 237, 68, 26, 141, 243, 35, 233,\n\t\t218, 73, 141, 213, 24, 79, 92, 150, 153, 209, 205, 205, 39,\n\t\t51, 228, 22, 163, 211, 93, 48, 196, 32, 132, 104, 23, 47,\n\t\t108, 91, 216, 8, 170, 158, 39, 54, 183, 97, 65, 52, 107, 20,\n\t\t214, 9, 33, 129, 5, 194, 250, 167, 41, 103, 154, 180, 70,\n\t\t123, 136, 127, 187, 113, 24, 222, 170, 180, 116, 234, 123,\n\t\t254, 154, 174, 239, 183, 127, 253, 248, 254, 247, 239, 191,\n\t\t125, 189, 125, 253, 159, 255, 252, 250, 227, 143, 215, 190,\n\t\t152, 223, 41, 147, 5, 57, 230, 234, 67, 187, 239, 62, 180,\n\t\t235, 248, 191, 187, 15, 130, 201, 229, 182, 208, 203, 221,\n\t\t251, 112, 221, 189, 151, 62, 218, 112, 245, 62, 8, 162, 226,\n\t\t207, 126, 21, 218, 79, 127, 21, 195, 79, 127, 149, 210, 79,\n\t\t127, 229, 182, 144, 127, 250, 124, 62, 254, 244, 249, 126,\n\t\t242, 171, 241, 124, 248, 213, 229, 179, 7, 252, 201, 207,\n\t\t198, 3, 254, 228, 102, 110, 235, 63, 125, 190, 61, 164, 159,\n\t\t61, 223, 231, 63, 26, 143, 247, 147, 31, 141, 167, 251, 244,\n\t\t71, 191, 90, 7, 231, 215, 127, 252, 241, 245, 199, 152, 248,\n\t\t231, 21, 208, 220, 207, 35, 110, 49, 244, 99, 236, 189, 126,\n\t\t136, 179, 160, 203, 145, 145, 237, 9, 85, 88, 140, 232, 155,\n\t\t31, 114, 65, 203, 36, 85, 50, 61, 13, 227, 142, 157, 56, 135,\n\t\t104, 241, 193, 111, 223, 249, 7, 158, 200, 107, 226, 188,\n\t\t51, 114, 203, 225, 121, 138, 213, 222, 227, 135, 249, 137,\n\t\t70, 245, 227, 77, 153, 19, 217, 7, 46, 196, 140, 229, 168,\n\t\t147, 198, 63, 43, 136, 149, 143, 237, 144, 104, 77, 20, 210,\n\t\t169, 32, 175, 77, 228, 233, 134, 190, 148, 66, 12, 32, 197,\n\t\t33, 22, 22, 85, 9, 216, 247, 112, 250, 226, 183, 10, 33, 19,\n\t\t83, 151, 214, 62, 40, 212, 152, 147, 244, 131, 41, 105, 202,\n\t\t194, 220, 156, 170, 182, 1, 74, 193, 21, 173, 191, 162, 125,\n\t\t24, 57, 29, 99, 201, 133, 120, 196, 77, 24, 138, 78, 2, 166,\n\t\t73, 68, 216, 203, 105, 193, 101, 33, 37, 137, 226, 183, 198,\n\t\t36, 44, 170, 89, 140, 155, 108, 192, 142, 12, 234, 248, 214,\n\t\t142, 135, 78, 146, 148, 142, 116, 90, 31, 8, 161, 50, 125,\n\t\t209, 151, 34, 230, 109, 168, 94, 58, 218, 126, 157, 52, 58,\n\t\t111, 223, 255, 245, 151, 247, 243, 203, 107, 247, 93, 139,\n\t\t70, 186, 46, 29, 141, 161, 167, 211, 42, 24, 85, 28, 26, 90,\n\t\t43, 70, 6, 172, 188, 34, 10, 111, 123, 165, 101, 135, 24,\n\t\t224, 105, 189, 130, 147, 41, 213, 47, 34, 214, 84, 11, 162,\n\t\t22, 17, 246, 160, 81, 197, 120, 111, 109, 48, 250, 101, 56,\n\t\t146, 243, 239, 203, 121, 250, 33, 116, 161, 119, 165, 243,\n\t\t58, 133, 184, 138, 230, 97, 84, 136, 114, 66, 66, 193, 0,\n\t\t68, 137, 188, 55, 57, 164, 204, 183, 142, 48, 173, 13, 170,\n\t\t164, 24, 213, 11, 124, 189, 60, 249, 36, 58, 219, 227, 73,\n\t\t255, 207, 70, 62, 209, 87, 170, 7, 253, 102, 137, 174, 131,\n\t\t68, 15, 156, 88, 30, 128, 178, 113, 91, 245, 106, 238, 233,\n\t\t124, 11, 219, 152, 15, 253, 72, 250, 249, 140, 70, 4, 95,\n\t\t44, 175, 128, 76, 157, 245, 119, 197, 200, 253, 21, 211, 248,\n\t\t121, 11, 43, 14, 157, 50, 74, 88, 90, 69, 158, 213, 80, 35,\n\t\t166, 78, 53, 221, 202, 115, 38, 30, 29, 147, 13, 15, 10, 24,\n\t\t190, 218, 250, 179, 226, 64, 246, 133, 107, 175, 39, 109,\n\t\t222, 124, 46, 5, 14, 209, 75, 126, 188, 133, 144, 180, 118,\n\t\t74, 250, 154, 220, 54, 190, 11, 25, 111, 214, 143, 33, 164,\n\t\t119, 124, 223, 121, 0, 71, 199, 167, 229, 47, 33, 164, 203,\n\t\t251, 252, 37, 254, 211, 59, 196, 112, 50, 163, 226, 182, 33,\n\t\t237, 43, 67, 33, 69, 190, 191, 239, 235, 129, 221, 142, 202,\n\t\t183, 106, 33, 27, 252, 237, 253, 225, 8, 143, 254, 7, 123,\n\t\t242, 239, 223, 254, 184, 190, 236, 201, 151, 46, 193, 24,\n\t\t77, 238, 19, 103, 218, 33, 18, 154, 140, 0, 205, 90, 55, 153,\n\t\t174, 109, 201, 190, 188, 143, 47, 132, 76, 31, 159, 113, 252,\n\t\t20, 202, 121, 149, 131, 248, 189, 252, 113, 107, 233, 189,\n\t\t45, 23, 213, 75, 13, 121, 45, 216, 172, 53, 156, 214, 7, 239,\n\t\t182, 125, 104, 196, 200, 94, 184, 38, 7, 222, 151, 231, 113,\n\t\t120, 20, 167, 79, 97, 39, 166, 173, 185, 119, 187, 67, 147,\n\t\t219, 182, 247, 170, 200, 132, 162, 96, 198, 255, 46, 239,\n\t\t150, 194, 74, 122, 214, 187, 220, 143, 191, 147, 171, 191,\n\t\t239, 235, 101, 113, 203, 63, 31, 254, 251, 215, 31, 239, 223,\n\t\t126, 127, 73, 117, 181, 215, 142, 51, 207, 124, 186, 32, 204,\n\t\t109, 62, 165, 251, 52, 86, 175, 195, 152, 38, 252, 12, 184,\n\t\t135, 180, 0, 200, 9, 12, 11, 76, 112, 30, 64, 192, 239, 158,\n\t\t12, 99, 146, 129, 235, 58, 185, 37, 233, 14, 234, 247, 107,\n\t\t82, 201, 121, 103, 52, 249, 116, 51, 186, 210, 86, 241, 234,\n\t\t156, 241, 224, 160, 83, 249, 83, 48, 140, 108, 216, 93, 100,\n\t\t203, 185, 35, 184, 116, 89, 61, 143, 136, 63, 106, 28, 142,\n\t\t215, 6, 141, 56, 171, 218, 232, 15, 210, 9, 22, 175, 201,\n\t\t11, 210, 102, 150, 160, 212, 150, 130, 117, 67, 119, 160,\n\t\t92, 11, 209, 200, 153, 97, 50, 40, 191, 87, 150, 236, 44,\n\t\t157, 29, 33, 39, 218, 91, 62, 43, 225, 194, 2, 220, 106, 239,\n\t\t84, 195, 27, 1, 117, 159, 116, 38, 121, 168, 199, 115, 247,\n\t\t90, 59, 214, 24, 98, 130, 244, 29, 254, 183, 166, 79, 179,\n\t\t244, 86, 10, 217, 37, 73, 82, 178, 145, 164, 12, 67, 106,\n\t\t227, 164, 14, 221, 44, 189, 192, 144, 108, 231, 14, 238, 58,\n\t\t139, 28, 238, 130, 209, 190, 37, 147, 233, 169, 72, 141, 92,\n\t\t252, 120, 139, 181, 12, 171, 244, 100, 232, 34, 63, 81, 234,\n\t\t41, 233, 119, 167, 244, 0, 114, 216, 25, 141, 9, 89, 125,\n\t\t20, 161, 68, 26, 150, 3, 249, 74, 107, 57, 242, 249, 8, 203,\n\t\t102, 65, 154, 44, 168, 53, 0, 120, 14, 55, 184, 200, 29, 249,\n\t\t102, 63, 253, 33, 237, 36, 202, 139, 153, 168, 181, 13, 21,\n\t\t5, 150, 242, 108, 197, 136, 22, 0, 247, 149, 36, 238, 82,\n\t\t42, 64, 4, 178, 240, 48, 178, 1, 201, 114, 252, 141, 184,\n\t\t25, 94, 106, 225, 146, 12, 168, 198, 2, 78, 169, 149, 198,\n\t\t218, 53, 83, 143, 237, 240, 206, 11, 107, 50, 81, 25, 34,\n\t\t2, 51, 201, 28, 59, 23, 23, 242, 159, 24, 15, 9, 95, 84, 84,\n\t\t167, 102, 4, 2, 244, 29, 135, 28, 206, 2, 88, 186, 237, 8,\n\t\t144, 77, 111, 46, 209, 0, 148, 245, 93, 240, 205, 218, 217,\n\t\t107, 135, 161, 156, 144, 149, 151, 43, 10, 230, 136, 188,\n\t\t24, 113, 162, 58, 106, 74, 119, 67, 90, 47, 110, 51, 194,\n\t\t122, 159, 210, 16, 23, 49, 11, 212, 132, 119, 71, 59, 77,\n\t\t84, 89, 151, 113, 145, 87, 200, 98, 7, 171, 34, 215, 193,\n\t\t24, 30, 202, 152, 94, 119, 37, 32, 138, 86, 113, 155, 132,\n\t\t129, 165, 102, 44, 35, 248, 142, 127, 239, 64, 241, 148, 106,\n\t\t10, 253, 17, 67, 246, 143, 39, 242, 223, 43, 238, 114, 206,\n\t\t123, 24, 248, 199, 211, 47, 121, 175, 251, 62, 111, 50, 251,\n\t\t154, 159, 31, 232, 229, 195, 199, 27, 9, 186, 67, 91, 172,\n\t\t8, 21, 106, 58, 223, 50, 145, 248, 130, 127, 47, 119, 114,\n\t\t65, 58, 51, 70, 36, 213, 244, 120, 26, 255, 189, 146, 67,\n\t\t62, 139, 29, 49, 161, 253, 244, 39, 250, 5, 231, 222, 247,\n\t\t121, 233, 105, 194, 60, 60, 196, 254, 252, 155, 43, 129, 107,\n\t\t134, 187, 216, 54, 33, 233, 190, 67, 10, 202, 19, 58, 60,\n\t\t161, 174, 19, 29, 147, 135, 127, 174, 56, 123, 216, 102, 14,\n\t\t35, 192, 117, 254, 248, 51, 196, 53, 238, 251, 188, 254, 140,\n\t\t121, 80, 12, 61, 158, 59, 65, 137, 248, 155, 125, 222, 133,\n\t\t231, 60, 253, 148, 132, 12, 185, 72, 158, 36, 223, 193, 184,\n\t\t200, 165, 109, 183, 84, 88, 135, 133, 157, 249, 200, 215,\n\t\t29, 166, 181, 68, 163, 68, 35, 185, 121, 138, 113, 188, 147,\n\t\t198, 204, 15, 149, 147, 135, 182, 193, 197, 45, 65, 232, 87,\n\t\t182, 179, 113, 97, 38, 44, 166, 114, 213, 219, 83, 37, 241,\n\t\t89, 126, 93, 218, 114, 254, 243, 203, 63, 190, 190, 112, 116,\n\t\t183, 246, 243, 238, 242, 224, 221, 17, 181, 28, 240, 52, 32,\n\t\t119, 35, 185, 84, 116, 117, 227, 45, 207, 126, 74, 116, 29,\n\t\t246, 24, 110, 124, 226, 192, 154, 58, 120, 198, 15, 251, 214,\n\t\t116, 125, 122, 248, 126, 69, 106, 249, 36, 207, 172, 216,\n\t\t232, 234, 226, 210, 146, 104, 144, 69, 170, 7, 79, 194, 209,\n\t\t111, 221, 166, 21, 201, 63, 43, 133, 194, 47, 112, 224, 186,\n\t\t3, 92, 225, 114, 219, 141, 161, 175, 3, 89, 125, 201, 182,\n\t\t152, 16, 176, 108, 59, 195, 175, 166, 2, 245, 200, 109, 55,\n\t\t167, 201, 204, 163, 91, 36, 180, 131, 176, 20, 218, 24, 144,\n\t\t130, 64, 39, 17, 49, 180, 101, 16, 196, 240, 137, 245, 36,\n\t\t208, 186, 219, 146, 129, 223, 18, 7, 220, 139, 223, 165, 34,\n\t\t133, 37, 21, 190, 247, 33, 102, 201, 57, 237, 182, 249, 76,\n\t\t17, 210, 221, 217, 199, 203, 21, 16, 106, 39, 41, 82, 204,\n\t\t26, 219, 201, 227, 109, 117, 143, 96, 2, 191, 45, 57, 143,\n\t\t2, 81, 128, 73, 2, 28, 247, 216, 157, 125, 99, 199, 239, 206,\n\t\t48, 112, 1, 140, 185, 225, 207, 110, 172, 54, 36, 220, 168,\n\t\t229, 88, 245, 251, 53, 185, 155, 141, 126, 32, 110, 220, 50,\n\t\t47, 249, 113, 82, 16, 184, 180, 202, 77, 12, 162, 52, 114,\n\t\t42, 30, 186, 243, 99, 73, 199, 116, 12, 83, 192, 66, 192,\n\t\t15, 148, 55, 42, 150, 143, 137, 81, 115, 147, 250, 147, 204,\n\t\t68, 160, 153, 57, 134, 171, 100, 65, 118, 210, 143, 204, 194,\n\t\t21, 146, 190, 100, 13, 140, 106, 137, 193, 146, 76, 4, 90,\n\t\t73, 177, 84, 105, 209, 80, 58, 14, 92, 147, 38, 228, 192,\n\t\t80, 229, 173, 114, 244, 151, 75, 179, 211, 43, 182, 165, 73,\n\t\t57, 152, 133, 229, 130, 88, 177, 202, 144, 44, 103, 215, 169,\n\t\t86, 241, 241, 10, 166, 81, 227, 128, 30, 34, 157, 36, 15,\n\t\t122, 178, 122, 210, 227, 2, 55, 194, 88, 70, 207, 48, 72,\n\t\t0, 10, 28, 201, 98, 182, 201, 121, 238, 225, 135, 171, 156,\n\t\t144, 66, 16, 43, 73, 80, 189, 174, 190, 205, 82, 83, 34, 49,\n\t\t139, 97, 119, 223, 162, 114, 236, 141, 241, 189, 86, 141,\n\t\t243, 127, 188, 149, 24, 15, 191, 133, 210, 133, 232, 195,\n\t\t89, 4, 45, 105, 123, 138, 97, 123, 42, 192, 120, 111, 24,\n\t\t70, 147, 231, 19, 108, 210, 224, 120, 68, 188, 37, 218, 208,\n\t\t227, 235, 45, 146, 218, 100, 220, 141, 150, 36, 105, 226,\n\t\t150, 88, 63, 225, 102, 57, 146, 32, 55, 250, 120, 83, 114,\n\t\t116, 137, 74, 156, 209, 208, 3, 179, 21, 179, 176, 165, 149,\n\t\t5, 195, 69, 157, 167, 219, 110, 16, 62, 36, 6, 156, 21, 5,\n\t\t24, 163, 89, 113, 107, 171, 147, 51, 43, 2, 78, 68, 157, 168,\n\t\t145, 93, 135, 200, 202, 133, 150, 2, 94, 162, 11, 99, 101,\n\t\t39, 119, 18, 175, 213, 251, 25, 173, 208, 36, 128, 65, 211,\n\t\t193, 214, 195, 1, 19, 169, 55, 203, 148, 237, 37, 173, 15,\n\t\t12, 83, 159, 70, 198, 242, 192, 122, 193, 74, 209, 76, 167,\n\t\t210, 36, 147, 61, 50, 139, 102, 158, 31, 156, 56, 221, 186,\n\t\t113, 100, 206, 239, 11, 44, 105, 234, 249, 240, 155, 208,\n\t\t71, 95, 171, 26, 232, 55, 27, 56, 5, 238, 248, 175, 37, 254,\n\t\t117, 47, 5, 250, 34, 72, 111, 24, 101, 137, 239, 155, 21,\n\t\t83, 71, 61, 229, 198, 205, 153, 220, 57, 105, 78, 85, 224,\n\t\t48, 71, 206, 98, 88, 160, 234, 225, 251, 53, 25, 24, 16, 196,\n\t\t149, 9, 28, 249, 21, 107, 196, 32, 177, 46, 147, 233, 207,\n\t\t11, 222, 7, 55, 210, 66, 206, 62, 251, 238, 194, 114, 57,\n\t\t185, 25, 171, 19, 176, 215, 140, 154, 150, 21, 111, 83, 103,\n\t\t153, 226, 94, 190, 95, 153, 194, 27, 83, 198, 193, 48, 153,\n\t\t17, 111, 38, 227, 2, 125, 249, 3, 149, 42, 147, 167, 24, 22,\n\t\t17, 1, 157, 76, 130, 200, 129, 97, 90, 28, 72, 252, 165, 105,\n\t\t210, 21, 75, 133, 47, 41, 46, 221, 70, 194, 158, 22, 157,\n\t\t118, 232, 0, 106, 142, 11, 251, 200, 76, 168, 153, 9, 134,\n\t\t239, 191, 54, 167, 222, 223, 227, 254, 229, 246, 210, 4, 217,\n\t\t94, 234, 132, 99, 75, 15, 153, 172, 216, 210, 141, 224, 68,\n\t\t219, 30, 123, 62, 132, 11, 170, 30, 94, 234, 74, 130, 152,\n\t\t17, 250, 29, 95, 63, 222, 162, 31, 242, 45, 198, 97, 116,\n\t\t39, 9, 198, 147, 155, 140, 36, 139, 87, 175, 44, 67, 55, 213,\n\t\t138, 4, 44, 242, 62, 28, 10, 70, 40, 223, 167, 247, 167, 86,\n\t\t231, 205, 170, 222, 102, 91, 228, 98, 185, 248, 82, 14, 129,\n\t\t193, 200, 99, 65, 161, 102, 172, 232, 244, 222, 134, 51, 143,\n\t\t249, 34, 58, 127, 102, 132, 34, 82, 224, 70, 44, 25, 244,\n\t\t40, 92, 137, 113, 105, 166, 225, 142, 240, 198, 173, 27, 8,\n\t\t20, 128, 250, 32, 165, 55, 224, 255, 78, 174, 199, 84, 142,\n\t\t97, 113, 12, 139, 247, 102, 122, 134, 245, 105, 130, 180,\n\t\t20, 233, 47, 255, 122, 10, 255, 245, 199, 31, 183, 175, 191,\n\t\t127, 123, 127, 13, 65, 158, 47, 29, 37, 102, 21, 199, 148,\n\t\t4, 242, 34, 159, 158, 37, 171, 25, 150, 7, 81, 159, 134, 179,\n\t\t45, 43, 88, 218, 166, 252, 176, 159, 247, 73, 29, 96, 200,\n\t\t184, 18, 152, 216, 219, 36, 39, 141, 246, 237, 220, 149, 69,\n\t\t228, 79, 249, 65, 132, 102, 125, 120, 4, 177, 2, 176, 81,\n\t\t93, 192, 135, 107, 217, 189, 165, 54, 96, 140, 56, 212, 11,\n\t\t25, 43, 237, 57, 47, 218, 107, 43, 88, 213, 26, 20, 98, 92,\n\t\t64, 126, 57, 44, 180, 52, 180, 53, 35, 16, 226, 177, 166,\n\t\t25, 76, 208, 111, 222, 165, 247, 135, 35, 60, 122, 198, 198,\n\t\t223, 213, 182, 176, 196, 225, 186, 191, 156, 173, 191, 236,\n\t\t95, 254, 241, 151, 253, 47, 47, 83, 245, 151, 159, 3, 176,\n\t\t74, 43, 111, 76, 253, 240, 75, 113, 166, 213, 111, 12, 49,\n\t\t170, 238, 4, 25, 53, 96, 22, 204, 140, 59, 75, 79, 169, 188,\n\t\t196, 231, 49, 222, 44, 136, 57, 22, 165, 10, 156, 177, 7,\n\t\t38, 1, 227, 53, 9, 42, 189, 40, 37, 18, 245, 139, 21, 240,\n\t\t70, 248, 110, 80, 239, 38, 210, 25, 49, 51, 82, 189, 102,\n\t\t250, 66, 53, 8, 161, 127, 129, 186, 122, 18, 245, 137, 37,\n\t\t84, 132, 2, 222, 146, 113, 91, 158, 10, 140, 135, 39, 147,\n\t\t246, 66, 88, 202, 214, 190, 92, 1, 185, 108, 11, 6, 217, 35,\n\t\t147, 217, 123, 202, 230, 7, 200, 2, 162, 103, 205, 92, 23,\n\t\t91, 159, 124, 88, 106, 155, 130, 155, 208, 169, 106, 131,\n\t\t4, 51, 11, 205, 205, 136, 102, 25, 176, 246, 83, 100, 149,\n\t\t22, 236, 66, 109, 82, 68, 32, 90, 22, 44, 227, 11, 199, 38,\n\t\t90, 202, 137, 225, 58, 123, 176, 89, 162, 106, 165, 172, 144,\n\t\t134, 39, 223, 71, 152, 11, 89, 4, 24, 88, 224, 225, 182, 148,\n\t\t102, 33, 36, 1, 174, 233, 167, 17, 178, 215, 160, 169, 11,\n\t\t77, 244, 132, 32, 177, 206, 44, 171, 9, 179, 84, 221, 229,\n\t\t135, 130, 100, 235, 155, 66, 33, 15, 51, 24, 193, 176, 37,\n\t\t217, 112, 147, 88, 3, 62, 11, 63, 245, 6, 179, 14, 144, 156,\n\t\t136, 54, 176, 231, 236, 241, 246, 108, 125, 72, 230, 206,\n\t\t155, 17, 32, 230, 46, 139, 111, 168, 1, 180, 48, 105, 173,\n\t\t126, 162, 190, 93, 15, 101, 134, 228, 39, 208, 245, 211, 21,\n\t\t246, 89, 93, 141, 153, 81, 198, 102, 93, 211, 130, 252, 58,\n\t\t141, 152, 68, 10, 219, 128, 161, 180, 10, 120, 179, 21, 153,\n\t\t5, 213, 128, 167, 69, 93, 17, 94, 62, 141, 68, 195, 51, 61,\n\t\t75, 196, 240, 56, 1, 56, 165, 228, 188, 247, 225, 57, 103,\n\t\t97, 190, 15, 249, 232, 167, 91, 231, 102, 110, 252, 205, 144,\n\t\t112, 117, 44, 239, 82, 248, 184, 251, 60, 107, 87, 39, 25,\n\t\t23, 86, 8, 170, 237, 131, 6, 46, 105, 228, 135, 149, 152,\n\t\t154, 182, 167, 209, 46, 174, 198, 154, 198, 120, 160, 117,\n\t\t41, 179, 237, 87, 130, 3, 33, 43, 206, 102, 215, 236, 38,\n\t\t45, 181, 149, 55, 71, 113, 130, 138, 254, 133, 190, 134, 85,\n\t\t92, 176, 208, 81, 83, 120, 78, 228, 93, 99, 231, 130, 39,\n\t\t196, 133, 146, 248, 172, 85, 193, 29, 41, 13, 33, 135, 30,\n\t\t103, 158, 171, 116, 78, 255, 20, 174, 19, 246, 151, 139, 247,\n\t\t36, 121, 199, 218, 2, 73, 243, 24, 251, 8, 60, 175, 33, 115,\n\t\t165, 154, 254, 199, 213, 150, 15, 157, 31, 8, 119, 170, 194,\n\t\t45, 176, 16, 24, 59, 156, 78, 158, 20, 245, 86, 164, 100,\n\t\t42, 88, 82, 124, 145, 140, 127, 140, 164, 135, 221, 178, 4,\n\t\t232, 218, 145, 47, 231, 132, 56, 7, 106, 193, 177, 60, 8,\n\t\t6, 27, 59, 70, 32, 150, 100, 98, 37, 82, 140, 223, 113, 187,\n\t\t24, 140, 185, 141, 222, 4, 168, 157, 90, 67, 163, 228, 221,\n\t\t86, 187, 21, 132, 50, 119, 205, 138, 235, 93, 101, 228, 163,\n\t\t147, 32, 205, 165, 186, 215, 17, 231, 126, 152, 130, 117,\n\t\t217, 79, 134, 196, 105, 48, 251, 57, 193, 54, 228, 115, 42,\n\t\t43, 173, 72, 187, 130, 141, 255, 233, 253, 22, 33, 192, 88,\n\t\t129, 156, 179, 49, 168, 195, 26, 57, 31, 150, 8, 175, 182,\n\t\t46, 152, 89, 208, 174, 91, 207, 70, 7, 131, 112, 76, 154,\n\t\t9, 85, 171, 108, 196, 177, 246, 23, 218, 252, 19, 187, 92,\n\t\t79, 99, 249, 183, 187, 156, 75, 171, 12, 253, 3, 235, 64,\n\t\t32, 81, 135, 62, 0, 179, 44, 148, 214, 132, 41, 38, 128, 7,\n\t\t193, 220, 9, 90, 186, 140, 17, 55, 136, 201, 238, 64, 196,\n\t\t124, 4, 97, 112, 224, 170, 252, 24, 219, 90, 203, 207, 199,\n\t\t177, 25, 178, 224, 19, 56, 23, 89, 4, 107, 146, 82, 63, 88,\n\t\t23, 141, 151, 180, 215, 16, 191, 51, 206, 167, 163, 49, 103,\n\t\t160, 109, 86, 250, 161, 43, 133, 248, 208, 11, 63, 170, 42,\n\t\t83, 188, 66, 133, 152, 130, 196, 102, 250, 109, 186, 194,\n\t\t148, 85, 157, 0, 143, 147, 140, 2, 69, 203, 155, 149, 229,\n\t\t210, 50, 136, 29, 186, 149, 205, 201, 86, 212, 88, 204, 51,\n\t\t144, 212, 236, 102, 84, 185, 100, 96, 150, 154, 205, 186,\n\t\t101, 22, 185, 104, 136, 220, 166, 212, 28, 69, 4, 212, 15,\n\t\t214, 236, 0, 140, 114, 214, 114, 103, 54, 72, 23, 170, 156,\n\t\t102, 88, 238, 66, 180, 215, 40, 95, 139, 45, 28, 56, 5, 32,\n\t\t125, 53, 228, 124, 4, 171, 88, 10, 124, 42, 234, 124, 155,\n\t\t82, 86, 93, 39, 166, 99, 19, 236, 84, 4, 157, 134, 201, 244,\n\t\t60, 99, 214, 41, 64, 115, 18, 107, 84, 54, 41, 13, 182, 74,\n\t\t89, 99, 253, 59, 12, 71, 31, 74, 22, 162, 233, 187, 207, 101,\n\t\t53, 141, 138, 117, 171, 103, 3, 180, 204, 39, 195, 12, 102,\n\t\t97, 76, 220, 97, 60, 106, 215, 108, 83, 208, 142, 111, 146,\n\t\t166, 168, 138, 82, 193, 74, 130, 1, 166, 134, 3, 48, 201,\n\t\t105, 136, 17, 142, 75, 100, 84, 37, 42, 14, 116, 173, 243,\n\t\t135, 66, 38, 232, 24, 91, 156, 223, 132, 159, 245, 222, 147,\n\t\t177, 25, 127, 58, 185, 85, 136, 23, 76, 26, 237, 140, 85,\n\t\t151, 81, 37, 221, 116, 98, 78, 210, 227, 90, 120, 33, 62,\n\t\t42, 241, 104, 209, 162, 115, 181, 118, 86, 91, 159, 182, 162,\n\t\t213, 1, 37, 168, 114, 63, 89, 208, 213, 145, 116, 58, 50,\n\t\t114, 3, 34, 83, 167, 200, 160, 71, 133, 211, 192, 117, 56,\n\t\t187, 40, 109, 208, 246, 200, 128, 17, 254, 98, 164, 186, 12,\n\t\t25, 49, 209, 136, 84, 2, 248, 95, 180, 104, 121, 114, 125,\n\t\t70, 35, 220, 16, 97, 76, 255, 109, 54, 160, 152, 244, 12,\n\t\t108, 88, 176, 138, 74, 210, 20, 89, 33, 28, 234, 200, 172,\n\t\t116, 209, 210, 49, 129, 224, 222, 252, 96, 205, 16, 56, 32,\n\t\t184, 120, 240, 28, 201, 165, 39, 40, 126, 234, 237, 34, 232,\n\t\t172, 117, 25, 164, 39, 11, 102, 199, 231, 45, 77, 40, 119,\n\t\t235, 208, 194, 82, 196, 243, 91, 99, 11, 255, 124, 122, 138,\n\t\t31, 42, 254, 217, 113, 160, 107, 60, 113, 103, 99, 139, 126,\n\t\t188, 165, 214, 142, 186, 117, 10, 77, 147, 29, 248, 129, 165,\n\t\t231, 213, 155, 89, 57, 1, 165, 242, 132, 105, 43, 122, 93,\n\t\t70, 40, 61, 65, 170, 232, 85, 151, 114, 46, 212, 78, 218,\n\t\t98, 130, 14, 15, 94, 37, 87, 59, 127, 113, 127, 157, 149,\n\t\t238, 235, 71, 136, 66, 131, 243, 159, 20, 121, 108, 22, 50,\n\t\t38, 54, 56, 91, 217, 186, 255, 221, 76, 187, 233, 4, 219,\n\t\t30, 177, 0, 109, 162, 253, 154, 103, 200, 54, 163, 49, 65,\n\t\t119, 42, 175, 22, 202, 28, 110, 56, 59, 236, 168, 240, 180,\n\t\t87, 200, 203, 105, 25, 246, 74, 59, 159, 73, 153, 38, 37,\n\t\t55, 20, 105, 147, 14, 124, 109, 206, 12, 208, 118, 16, 250,\n\t\t84, 72, 242, 40, 206, 181, 181, 114, 211, 200, 78, 146, 217,\n\t\t103, 212, 196, 153, 236, 68, 84, 201, 90, 119, 103, 95, 120,\n\t\t222, 83, 151, 153, 250, 61, 242, 244, 22, 180, 165, 47, 111,\n\t\t7, 162, 178, 165, 72, 54, 121, 146, 219, 99, 197, 26, 182,\n\t\t186, 216, 141, 91, 214, 149, 32, 73, 17, 108, 253, 200, 54,\n\t\t81, 101, 63, 216, 146, 71, 214, 96, 162, 74, 192, 153, 153,\n\t\t168, 18, 226, 50, 204, 222, 56, 191, 165, 105, 105, 232, 164,\n\t\t46, 45, 149, 252, 145, 94, 117, 188, 120, 49, 129, 1, 149,\n\t\t191, 52, 243, 225, 46, 23, 205, 60, 216, 210, 32, 197, 252,\n\t\t180, 76, 162, 165, 119, 233, 247, 233, 169, 42, 239, 216,\n\t\t48, 194, 178, 36, 102, 17, 1, 121, 179, 176, 135, 203, 223,\n\t\t173, 159, 145, 63, 96, 249, 212, 14, 103, 226, 164, 65, 46,\n\t\t47, 208, 230, 78, 168, 198, 4, 137, 37, 122, 228, 211, 232,\n\t\t98, 140, 5, 29, 183, 227, 139, 175, 112, 49, 65, 91, 232,\n\t\t151, 37, 96, 97, 36, 252, 6, 142, 219, 212, 81, 162, 5, 204,\n\t\t176, 167, 128, 57, 196, 22, 243, 179, 237, 81, 87, 170, 77,\n\t\t141, 169, 101, 163, 235, 119, 199, 164, 176, 52, 227, 253,\n\t\t180, 118, 202, 25, 5, 227, 54, 32, 195, 27, 45, 40, 144, 173,\n\t\t25, 166, 147, 47, 168, 147, 239, 146, 159, 146, 207, 202,\n\t\t197, 194, 12, 139, 53, 39, 65, 17, 42, 132, 187, 142, 18,\n\t\t99, 157, 77, 25, 218, 104, 103, 226, 33, 66, 183, 42, 58,\n\t\t210, 221, 68, 111, 174, 137, 57, 1, 211, 236, 135, 183, 226,\n\t\t213, 47, 160, 25, 13, 10, 209, 69, 67, 111, 105, 6, 151, 84,\n\t\t25, 85, 211, 195, 167, 133, 87, 124, 50, 186, 116, 137, 207,\n\t\t232, 158, 164, 188, 210, 137, 21, 59, 217, 150, 54, 20, 219,\n\t\t76, 154, 122, 250, 6, 92, 29, 142, 233, 207, 249, 208, 176,\n\t\t171, 104, 136, 139, 106, 159, 131, 112, 250, 52, 171, 160,\n\t\t9, 25, 224, 55, 218, 10, 125, 154, 190, 48, 120, 104, 41,\n\t\t24, 83, 5, 11, 44, 19, 40, 32, 118, 203, 72, 98, 56, 184,\n\t\t180, 219, 212, 61, 195, 1, 16, 153, 65, 3, 93, 47, 101, 131,\n\t\t30, 102, 175, 161, 12, 218, 199, 91, 199, 130, 8, 165, 29,\n\t\t117, 168, 125, 93, 112, 84, 54, 62, 78, 203, 78, 45, 113,\n\t\t132, 29, 33, 236, 44, 88, 46, 66, 25, 76, 238, 115, 146, 163,\n\t\t145, 170, 235, 242, 219, 235, 236, 226, 109, 96, 67, 82, 165,\n\t\t54, 70, 166, 106, 85, 19, 246, 27, 75, 70, 13, 231, 131, 165,\n\t\t85, 198, 127, 138, 164, 216, 105, 177, 13, 62, 173, 225, 20,\n\t\t113, 161, 166, 201, 41, 162, 123, 50, 78, 141, 166, 198, 152,\n\t\t77, 189, 67, 56, 48, 219, 204, 83, 235, 64, 126, 88, 26, 138,\n\t\t2, 52, 153, 169, 164, 119, 47, 231, 158, 103, 173, 169, 143,\n\t\t155, 55, 42, 45, 22, 220, 103, 115, 72, 151, 56, 139, 202,\n\t\t14, 145, 43, 186, 108, 132, 102, 221, 36, 175, 254, 105, 136,\n\t\t114, 130, 78, 192, 21, 136, 218, 118, 118, 74, 109, 251, 54,\n\t\t81, 193, 69, 58, 74, 180, 82, 223, 238, 92, 94, 1, 235, 82,\n\t\t47, 157, 40, 151, 54, 43, 195, 53, 111, 128, 217, 55, 5, 14,\n\t\t201, 139, 31, 83, 206, 89, 147, 192, 32, 233, 130, 155, 165,\n\t\t113, 1, 138, 172, 168, 252, 36, 39, 80, 22, 44, 82, 70, 225,\n\t\t17, 20, 87, 160, 208, 42, 156, 98, 89, 31, 205, 76, 17, 140,\n\t\t6, 109, 44, 216, 33, 50, 226, 113, 102, 113, 131, 133, 90,\n\t\t39, 185, 138, 202, 31, 78, 172, 213, 93, 98, 253, 147, 106,\n\t\t202, 136, 50, 13, 97, 159, 119, 148, 186, 185, 7, 53, 107,\n\t\t165, 93, 92, 35, 84, 34, 72, 121, 75, 101, 147, 140, 22, 89,\n\t\t93, 176, 250, 68, 154, 51, 130, 180, 133, 109, 177, 93, 181,\n\t\t37, 254, 152, 253, 251, 115, 42, 172, 12, 193, 20, 43, 194,\n\t\t186, 244, 142, 204, 190, 52, 98, 96, 96, 205, 88, 149, 105,\n\t\t17, 74, 205, 165, 144, 214, 119, 214, 179, 242, 181, 73, 51,\n\t\t28, 129, 20, 197, 139, 227, 18, 86, 3, 217, 39, 227, 24, 233,\n\t\t91, 166, 47, 106, 241, 34, 167, 14, 186, 42, 16, 78, 170,\n\t\t8, 41, 46, 123, 88, 81, 146, 232, 213, 247, 235, 211, 138,\n\t\t145, 101, 107, 149, 186, 58, 250, 178, 17, 218, 102, 237,\n\t\t45, 233, 200, 167, 229, 110, 104, 154, 155, 163, 147, 29,\n\t\t253, 80, 4, 78, 25, 94, 59, 205, 11, 150, 8, 234, 182, 66,\n\t\t38, 101, 186, 83, 2, 114, 141, 224, 2, 222, 27, 238, 7, 191,\n\t\t51, 213, 69, 188, 23, 8, 180, 89, 44, 194, 37, 160, 237, 26,\n\t\t136, 91, 8, 26, 182, 120, 132, 102, 27, 204, 206, 25, 230,\n\t\t146, 234, 92, 227, 99, 140, 78, 134, 20, 236, 193, 39, 206,\n\t\t220, 166, 100, 57, 8, 185, 237, 12, 129, 165, 165, 44, 128,\n\t\t121, 101, 146, 83, 63, 150, 91, 153, 50, 100, 87, 204, 44,\n\t\t182, 84, 137, 224, 185, 26, 105, 181, 66, 42, 61, 172, 220,\n\t\t205, 162, 197, 209, 174, 71, 72, 12, 54, 248, 239, 36, 84,\n\t\t158, 5, 87, 141, 226, 41, 16, 79, 2, 211, 40, 37, 204, 134,\n\t\t4, 61, 75, 97, 68, 71, 157, 104, 215, 167, 2, 14, 74, 218,\n\t\t207, 5, 106, 69, 117, 40, 0, 60, 235, 102, 134, 12, 254, 69,\n\t\t12, 129, 15, 132, 71, 61, 117, 236, 22, 116, 11, 243, 87,\n\t\t204, 244, 52, 143, 78, 183, 209, 229, 182, 134, 51, 97, 156,\n\t\t209, 69, 162, 170, 89, 130, 27, 40, 123, 66, 147, 24, 116,\n\t\t114, 160, 227, 207, 204, 67, 28, 47, 149, 25, 46, 59, 109,\n\t\t77, 191, 226, 110, 44, 15, 27, 192, 95, 60, 140, 77, 238,\n\t\t50, 203, 154, 48, 69, 74, 202, 43, 168, 163, 152, 52, 231,\n\t\t161, 127, 165, 193, 59, 65, 18, 176, 205, 177, 50, 10, 132,\n\t\t212, 211, 74, 33, 228, 32, 117, 176, 240, 36, 26, 167, 42,\n\t\t155, 42, 48, 110, 224, 62, 222, 232, 68, 9, 237, 48, 119,\n\t\t176, 152, 253, 214, 84, 109, 157, 100, 170, 33, 160, 38, 237,\n\t\t66, 42, 80, 39, 17, 127, 221, 246, 148, 22, 162, 193, 66,\n\t\t149, 196, 120, 27, 3, 3, 137, 10, 183, 114, 165, 81, 209,\n\t\t38, 147, 194, 16, 98, 82, 88, 197, 112, 166, 153, 84, 144,\n\t\t117, 126, 150, 47, 230, 233, 75, 177, 102, 220, 16, 32, 249,\n\t\t64, 212, 197, 179, 50, 239, 176, 72, 60, 109, 172, 37, 213,\n\t\t18, 166, 179, 18, 96, 63, 243, 244, 135, 84, 29, 45, 112,\n\t\t238, 32, 238, 54, 55, 45, 76, 90, 226, 197, 202, 254, 65,\n\t\t18, 42, 189, 75, 151, 83, 223, 19, 62, 12, 100, 77, 100, 219,\n\t\t248, 199, 155, 212, 11, 11, 112, 123, 63, 237, 161, 196, 67,\n\t\t135, 109, 147, 21, 234, 0, 155, 49, 33, 218, 71, 1, 71, 62,\n\t\t101, 75, 5, 105, 255, 13, 127, 128, 243, 127, 93, 41, 240,\n\t\t245, 159, 183, 239, 255, 254, 203, 247, 191, 190, 212, 10,\n\t\t124, 253, 69, 71, 113, 19, 16, 61, 31, 174, 168, 100, 190,\n\t\t239, 97, 88, 165, 87, 86, 54, 223, 3, 169, 65, 125, 159, 15,\n\t\t175, 31, 76, 40, 155, 61, 81, 13, 230, 40, 225, 87, 204, 199,\n\t\t120, 34, 111, 39, 96, 43, 68, 250, 32, 60, 128, 102, 58, 69,\n\t\t208, 230, 156, 136, 50, 201, 8, 33, 39, 4, 77, 193, 241, 40,\n\t\t0, 44, 10, 201, 175, 59, 63, 7, 116, 167, 176, 85, 217, 226,\n\t\t162, 42, 162, 238, 222, 197, 163, 127, 92, 222, 162, 82, 212,\n\t\t102, 119, 40, 252, 117, 179, 189, 169, 43, 76, 1, 35, 185,\n\t\t137, 148, 104, 27, 207, 52, 203, 208, 168, 97, 249, 61, 130,\n\t\t108, 213, 25, 29, 218, 78, 235, 127, 189, 84, 88, 14, 156,\n\t\t102, 129, 187, 149, 142, 222, 154, 251, 236, 103, 68, 53,\n\t\t247, 173, 41, 148, 229, 159, 77, 215, 229, 127, 231, 124,\n\t\t169, 0, 91, 230, 75, 77, 157, 207, 230, 75, 254, 93, 230,\n\t\t75, 207, 156, 243, 5, 189, 101, 243, 69, 77, 243, 171, 249,\n\t\t122, 243, 128, 78, 123, 157, 46, 216, 98, 47, 211, 117, 249,\n\t\t63, 56, 95, 114, 198, 127, 56, 95, 41, 181, 45, 230, 207,\n\t\t241, 252, 209, 74, 64, 90, 128, 144, 203, 74, 11, 96, 127,\n\t\t4, 35, 192, 184, 192, 3, 175, 128, 156, 160, 84, 0, 33, 43,\n\t\t162, 232, 194, 40, 144, 241, 187, 45, 6, 60, 69, 75, 39, 145,\n\t\t2, 220, 86, 148, 18, 84, 70, 104, 124, 22, 148, 126, 125,\n\t\t0, 131, 19, 224, 223, 119, 61, 97, 252, 135, 247, 152, 215,\n\t\t25, 199, 215, 243, 74, 186, 235, 101, 120, 202, 114, 19, 249,\n\t\t159, 240, 18, 252, 90, 138, 189, 255, 237, 159, 63, 190, 191,\n\t\t200, 176, 223, 95, 74, 211, 154, 53, 108, 104, 199, 125, 73,\n\t\t55, 214, 129, 1, 58, 255, 100, 240, 204, 162, 17, 129, 170,\n\t\t30, 70, 135, 0, 15, 211, 171, 139, 51, 29, 145, 151, 171,\n\t\t108, 5, 174, 54, 1, 135, 11, 157, 165, 169, 98, 86, 131, 200,\n\t\t184, 99, 217, 207, 142, 234, 156, 107, 101, 37, 242, 130,\n\t\t185, 199, 230, 34, 195, 56, 209, 220, 30, 213, 125, 53, 136,\n\t\t132, 110, 81, 30, 230, 45, 19, 27, 36, 9, 129, 181, 119, 78,\n\t\t93, 153, 80, 44, 134, 120, 199, 104, 206, 52, 164, 225, 50,\n\t\t102, 86, 41, 225, 156, 143, 183, 228, 202, 17, 5, 230, 168,\n\t\t222, 118, 63, 172, 185, 109, 159, 133, 134, 108, 160, 83,\n\t\t141, 117, 243, 53, 171, 61, 8, 212, 55, 51, 148, 72, 31, 97,\n\t\t229, 79, 18, 94, 64, 16, 51, 206, 128, 67, 211, 26, 241, 241,\n\t\t22, 91, 12, 245, 40, 247, 221, 151, 118, 196, 235, 56, 43,\n\t\t95, 148, 68, 74, 78, 206, 249, 200, 215, 93, 240, 206, 50,\n\t\t103, 86, 28, 22, 185, 122, 214, 180, 54, 38, 41, 183, 39,\n\t\t167, 147, 123, 147, 97, 104, 207, 0, 127, 176, 6, 47, 157,\n\t\t86, 195, 222, 37, 6, 130, 117, 218, 38, 103, 8, 12, 195, 253,\n\t\t240, 130, 202, 218, 253, 169, 202, 221, 161, 213, 111, 179,\n\t\t156, 168, 119, 117, 243, 62, 221, 131, 143, 71, 20, 16, 190,\n\t\t109, 154, 57, 154, 246, 148, 232, 195, 184, 203, 181, 73,\n\t\t236, 148, 209, 191, 135, 42, 3, 191, 56, 139, 252, 118, 38,\n\t\t46, 109, 214, 93, 48, 254, 3, 3, 142, 223, 173, 255, 210,\n\t\t105, 0, 168, 107, 216, 19, 83, 4, 175, 110, 246, 246, 187,\n\t\t205, 250, 40, 179, 72, 17, 150, 204, 192, 78, 194, 213, 174,\n\t\t13, 166, 165, 119, 237, 168, 243, 41, 188, 182, 26, 84, 160,\n\t\t212, 225, 171, 31, 215, 255, 120, 11, 2, 203, 26, 170, 63,\n\t\t202, 173, 32, 150, 160, 182, 50, 158, 43, 41, 92, 21, 2, 69,\n\t\t213, 122, 171, 18, 73, 53, 126, 45, 58, 190, 253, 245, 219,\n\t\t31, 95, 110, 251, 247, 243, 235, 151, 23, 38, 140, 238, 127,\n\t\t110, 4, 181, 106, 16, 28, 247, 170, 54, 192, 21, 43, 244,\n\t\t190, 243, 0, 215, 236, 199, 91, 128, 235, 228, 157, 63, 210,\n\t\t21, 117, 193, 247, 189, 104, 68, 224, 202, 74, 225, 59, 14,\n\t\t124, 188, 165, 238, 143, 34, 239, 237, 207, 60, 171, 206,\n\t\t221, 17, 199, 78, 24, 123, 82, 170, 160, 67, 204, 2, 6, 50,\n\t\t190, 221, 187, 142, 247, 149, 235, 224, 62, 83, 85, 206, 203,\n\t\t136, 99, 169, 248, 38, 225, 18, 193, 40, 247, 199, 152, 74,\n\t\t41, 103, 165, 214, 102, 132, 49, 33, 175, 91, 217, 157, 212,\n\t\t48, 161, 205, 250, 190, 156, 66, 157, 71, 171, 72, 118, 77,\n\t\t33, 194, 99, 103, 178, 138, 71, 198, 173, 234, 117, 199, 67,\n\t\t202, 210, 14, 130, 184, 91, 142, 46, 40, 92, 178, 149, 183,\n\t\t0, 198, 230, 106, 1, 8, 58, 17, 210, 193, 187, 19, 49, 126,\n\t\t252, 78, 82, 109, 130, 198, 50, 70, 120, 8, 160, 196, 134,\n\t\t75, 27, 3, 251, 36, 183, 30, 31, 199, 56, 201, 168, 119, 149,\n\t\t236, 151, 251, 248, 203, 159, 219, 202, 223, 222, 207, 239,\n\t\t63, 94, 170, 106, 123, 32, 46, 74, 232, 245, 8, 190, 108,\n\t\t193, 165, 67, 186, 67, 133, 117, 84, 8, 67, 189, 146, 74,\n\t\t9, 10, 169, 215, 56, 171, 247, 33, 242, 128, 140, 189, 80,\n\t\t103, 56, 252, 205, 79, 50, 66, 59, 160, 231, 190, 243, 98,\n\t\t184, 214, 227, 95, 213, 133, 12, 67, 200, 217, 61, 120, 161,\n\t\t167, 155, 42, 72, 126, 25, 27, 101, 24, 33, 252, 173, 199,\n\t\t111, 99, 105, 225, 167, 191, 189, 188, 188, 158, 208, 68,\n\t\t253, 199, 175, 23, 158, 95, 47, 60, 188, 222, 184, 216, 250,\n\t\t122, 246, 87, 216, 37, 99, 34, 135, 249, 145, 114, 31, 31,\n\t\t206, 189, 164, 67, 72, 11, 199, 90, 210, 100, 106, 60, 218,\n\t\t120, 129, 216, 132, 205, 98, 83, 154, 254, 54, 54, 96, 61,\n\t\t106, 45, 194, 190, 80, 154, 214, 99, 199, 226, 210, 85, 120,\n\t\t222, 163, 70, 146, 154, 178, 186, 56, 49, 127, 133, 227, 46,\n\t\t196, 35, 103, 223, 230, 129, 97, 135, 198, 18, 239, 49, 201,\n\t\t248, 171, 69, 235, 91, 42, 118, 42, 206, 216, 158, 126, 113,\n\t\t141, 66, 222, 32, 152, 250, 184, 11, 207, 216, 151, 159, 234,\n\t\t1, 252, 230, 227, 45, 214, 124, 200, 162, 15, 71, 174, 210,\n\t\t167, 29, 142, 20, 189, 66, 212, 181, 146, 134, 87, 217, 15,\n\t\t33, 207, 121, 58, 112, 57, 237, 200, 80, 148, 169, 102, 65,\n\t\t37, 233, 49, 75, 118, 65, 41, 142, 159, 14, 72, 15, 93, 139,\n\t\t18, 243, 57, 92, 207, 245, 76, 17, 43, 120, 72, 127, 31, 180,\n\t\t13, 47, 37, 53, 14, 132, 76, 248, 249, 192, 185, 23, 119,\n\t\t52, 239, 181, 110, 69, 216, 95, 124, 12, 71, 72, 98, 77, 71,\n\t\t33, 39, 237, 254, 8, 81, 42, 183, 133, 33, 116, 239, 71, 170,\n\t\t190, 104, 73, 89, 22, 174, 59, 113, 246, 163, 246, 46, 142,\n\t\t115, 94, 143, 92, 222, 135, 118, 78, 213, 139, 66, 10, 169,\n\t\t108, 165, 30, 49, 84, 47, 62, 120, 44, 254, 182, 135, 35,\n\t\t11, 133, 98, 60, 132, 115, 230, 93, 140, 139, 42, 140, 184,\n\t\t181, 8, 73, 169, 13, 192, 142, 17, 80, 254, 110, 14, 156,\n\t\t148, 255, 11, 53, 143, 29, 193, 232, 202, 121, 193, 31, 74,\n\t\t117, 25, 171, 114, 125, 212, 70, 238, 187, 38, 212, 166, 114,\n\t\t22, 95, 142, 251, 119, 120, 16, 217, 11, 52, 223, 184, 144,\n\t\t142, 155, 175, 67, 221, 135, 154, 21, 19, 83, 118, 136, 132,\n\t\t129, 218, 243, 247, 203, 25, 143, 90, 138, 212, 35, 151, 152,\n\t\t107, 218, 250, 33, 36, 118, 146, 104, 205, 161, 70, 137, 151,\n\t\t246, 50, 123, 191, 198, 44, 6, 143, 206, 61, 249, 123, 58,\n\t\t114, 211, 110, 58, 31, 138, 182, 123, 37, 201, 158, 42, 83,\n\t\t53, 121, 224, 198, 4, 54, 47, 93, 133, 194, 157, 210, 14,\n\t\t223, 67, 148, 132, 178, 16, 249, 201, 156, 164, 12, 210, 115,\n\t\t219, 216, 238, 80, 107, 49, 21, 221, 253, 194, 100, 91, 98,\n\t\t63, 235, 81, 154, 27, 143, 62, 222, 181, 101, 177, 109, 148,\n\t\t64, 47, 128, 63, 229, 249, 192, 229, 28, 166, 90, 45, 10,\n\t\t50, 235, 123, 31, 99, 44, 23, 197, 16, 63, 127, 255, 115,\n\t\t81, 254, 175, 31, 239, 47, 32, 87, 221, 64, 174, 164, 196,\n\t\t25, 232, 66, 18, 34, 16, 124, 33, 233, 16, 242, 46, 72, 179,\n\t\t183, 124, 9, 33, 30, 93, 164, 97, 24, 10, 123, 239, 86, 142,\n\t\t163, 52, 101, 227, 131, 157, 40, 77, 71, 227, 202, 178, 56,\n\t\t168, 142, 223, 215, 4, 109, 72, 15, 249, 218, 80, 229, 234,\n\t\t122, 241, 97, 93, 143, 27, 59, 150, 96, 235, 103, 133, 41,\n\t\t42, 233, 172, 142, 142, 166, 15, 226, 81, 171, 222, 12, 242,\n\t\t223, 251, 190, 30, 216, 113, 244, 242, 46, 159, 38, 33, 5,\n\t\t255, 40, 160, 242, 136, 43, 77, 148, 3, 132, 109, 189, 161,\n\t\t198, 249, 155, 133, 235, 247, 154, 111, 141, 80, 91, 250,\n\t\t10, 167, 71, 223, 177, 174, 219, 60, 67, 85, 217, 152, 241,\n\t\t193, 216, 242, 203, 233, 250, 126, 94, 255, 245, 2, 69, 219,\n\t\t95, 192, 143, 146, 97, 239, 196, 94, 213, 168, 184, 138, 217,\n\t\t209, 239, 62, 185, 99, 120, 12, 46, 9, 42, 224, 176, 189,\n\t\t134, 157, 169, 232, 56, 161, 11, 88, 156, 68, 76, 117, 16,\n\t\t122, 20, 60, 54, 175, 4, 39, 227, 219, 117, 247, 173, 31,\n\t\t225, 158, 125, 184, 202, 167, 147, 89, 87, 45, 179, 82, 251,\n\t\t12, 30, 83, 36, 210, 151, 154, 46, 247, 93, 60, 121, 103,\n\t\t149, 241, 129, 195, 36, 254, 122, 180, 47, 215, 189, 39, 152,\n\t\t144, 49, 214, 35, 94, 59, 129, 221, 11, 35, 19, 126, 8, 96,\n\t\t43, 120, 211, 111, 222, 185, 195, 223, 125, 116, 31, 151,\n\t\t63, 25, 198, 191, 189, 194, 247, 247, 95, 144, 230, 199, 212,\n\t\t199, 48, 122, 49, 220, 138, 90, 131, 247, 172, 118, 250, 149,\n\t\t223, 119, 28, 248, 192, 233, 201, 15, 195, 118, 105, 249,\n\t\t148, 179, 120, 0, 223, 63, 222, 82, 16, 20, 185, 234, 143,\n\t\t32, 151, 16, 119, 119, 156, 62, 6, 227, 206, 3, 248, 254,\n\t\t241, 54, 78, 108, 194, 59, 20, 229, 234, 106, 229, 241, 116,\n\t\t30, 176, 211, 245, 81, 62, 57, 157, 15, 195, 211, 245, 97,\n\t\t202, 240, 191, 182, 48, 78, 191, 220, 172, 154, 5, 225, 250,\n\t\t37, 175, 195, 6, 28, 161, 86, 73, 179, 98, 195, 224, 201,\n\t\t207, 197, 215, 102, 218, 189, 176, 58, 46, 49, 26, 221, 153,\n\t\t234, 74, 104, 243, 223, 181, 105, 204, 71, 137, 160, 9, 201,\n\t\t233, 16, 125, 210, 97, 61, 196, 179, 98, 11, 234, 247, 115,\n\t\t175, 179, 113, 197, 135, 38, 34, 129, 11, 87, 219, 160, 183,\n\t\t162, 165, 40, 231, 80, 64, 178, 72, 83, 70, 172, 216, 226,\n\t\t103, 18, 61, 246, 18, 218, 31, 134, 184, 119, 254, 114, 77,\n\t\t81, 66, 122, 167, 213, 255, 152, 143, 6, 170, 137, 173, 108,\n\t\t104, 179, 39, 174, 238, 12, 111, 69, 194, 176, 178, 191, 170,\n\t\t14, 197, 129, 96, 93, 60, 218, 141, 28, 135, 233, 230, 19,\n\t\t147, 159, 167, 53, 62, 121, 69, 5, 220, 34, 19, 48, 188, 37,\n\t\t1, 15, 246, 2, 167, 84, 60, 103, 134, 13, 145, 233, 97, 113,\n\t\t53, 194, 239, 4, 219, 255, 120, 243, 195, 74, 213, 101, 118,\n\t\t165, 31, 252, 184, 222, 198, 15, 46, 203, 130, 251, 120, 27,\n\t\t27, 190, 126, 182, 52, 185, 254, 185, 52, 117, 241, 232, 210,\n\t\t252, 143, 87, 178, 94, 253, 63, 93, 154, 191, 220, 208, 63,\n\t\t190, 252, 254, 71, 128, 11, 251, 178, 175, 203, 207, 163,\n\t\t95, 169, 9, 155, 103, 151, 78, 84, 47, 26, 95, 227, 85, 247,\n\t\t162, 94, 215, 109, 143, 177, 44, 129, 3, 22, 23, 120, 84,\n\t\t116, 55, 1, 205, 70, 5, 170, 47, 254, 240, 155, 175, 105,\n\t\t168, 181, 51, 98, 237, 68, 36, 135, 235, 68, 27, 100, 239,\n\t\t156, 31, 134, 168, 65, 43, 204, 102, 38, 8, 84, 66, 38, 238,\n\t\t252, 157, 4, 211, 119, 195, 133, 158, 109, 68, 168, 197, 163,\n\t\t198, 101, 238, 22, 37, 48, 151, 51, 60, 117, 15, 37, 205,\n\t\t105, 218, 103, 226, 145, 58, 201, 205, 67, 54, 51, 91, 111,\n\t\t56, 218, 166, 27, 179, 49, 74, 84, 221, 77, 78, 17, 195, 100,\n\t\t245, 3, 122, 68, 174, 41, 59, 5, 2, 1, 177, 36, 86, 248, 177,\n\t\t192, 193, 80, 172, 184, 65, 145, 29, 247, 232, 176, 33, 201,\n\t\t105, 66, 91, 22, 33, 202, 134, 205, 22, 199, 197, 17, 5, 17,\n\t\t6, 83, 102, 159, 198, 76, 168, 75, 160, 145, 162, 82, 12,\n\t\t244, 228, 52, 164, 204, 0, 113, 148, 148, 144, 10, 51, 194,\n\t\t240, 83, 142, 71, 20, 238, 86, 67, 188, 223, 165, 235, 102,\n\t\t120, 112, 155, 116, 18, 55, 53, 126, 227, 21, 82, 108, 172,\n\t\t153, 34, 205, 97, 113, 72, 186, 173, 214, 251, 14, 245, 126,\n\t\t75, 64, 82, 69, 181, 214, 199, 155, 143, 233, 8, 91, 104,\n\t\t229, 16, 220, 106, 66, 109, 11, 71, 133, 25, 78, 250, 97,\n\t\t102, 246, 141, 47, 193, 176, 153, 229, 23, 243, 11, 78, 85,\n\t\t101, 142, 40, 210, 242, 247, 245, 60, 41, 64, 89, 112, 114,\n\t\t24, 77, 152, 31, 113, 210, 135, 246, 196, 150, 122, 228, 235,\n\t\t120, 251, 25, 74, 103, 170, 186, 75, 119, 147, 19, 198, 30,\n\t\t41, 157, 246, 165, 28, 245, 140, 19, 101, 86, 229, 22, 187,\n\t\t52, 85, 89, 63, 126, 213, 176, 139, 230, 174, 173, 207, 29,\n\t\t85, 189, 145, 21, 29, 13, 197, 132, 8, 38, 159, 140, 21, 42,\n\t\t189, 27, 166, 149, 31, 2, 147, 205, 168, 216, 58, 141, 35,\n\t\t63, 18, 91, 134, 33, 50, 214, 29, 25, 55, 138, 23, 118, 207,\n\t\t126, 142, 185, 135, 204, 181, 192, 108, 16, 164, 59, 159,\n\t\t0, 232, 15, 234, 183, 126, 244, 63, 17, 81, 223, 126, 251,\n\t\t237, 183, 219, 215, 253, 253, 255, 254, 215, 151, 31, 175,\n\t\t246, 118, 165, 189, 77, 90, 178, 224, 251, 209, 78, 38, 202,\n\t\t19, 230, 132, 77, 171, 149, 157, 80, 40, 92, 32, 0, 209, 108,\n\t\t214, 135, 130, 14, 109, 210, 2, 91, 176, 186, 246, 115, 87,\n\t\t126, 85, 13, 47, 198, 5, 103, 118, 88, 131, 194, 98, 135,\n\t\t242, 169, 143, 183, 56, 20, 188, 192, 220, 178, 97, 42, 43,\n\t\t123, 140, 145, 1, 85, 134, 131, 19, 99, 231, 92, 67, 137,\n\t\t133, 7, 108, 77, 169, 156, 220, 236, 183, 230, 46, 39, 211,\n\t\t92, 210, 216, 222, 86, 28, 121, 113, 55, 180, 137, 64, 213,\n\t\t69, 26, 230, 126, 75, 67, 50, 60, 192, 201, 229, 56, 212,\n\t\t188, 10, 17, 196, 216, 26, 19, 242, 44, 166, 72, 200, 104,\n\t\t177, 90, 114, 88, 30, 242, 200, 193, 170, 17, 93, 28, 178,\n\t\t56, 169, 6, 214, 133, 209, 11, 3, 184, 76, 110, 122, 145,\n\t\t120, 126, 243, 237, 227, 45, 12, 15, 107, 243, 61, 28, 225,\n\t\t92, 202, 237, 89, 150, 214, 137, 131, 159, 121, 196, 171,\n\t\t23, 0, 232, 66, 173, 234, 214, 126, 131, 101, 169, 202, 112,\n\t\t25, 216, 49, 15, 116, 77, 186, 12, 81, 113, 176, 1, 9, 145,\n\t\t109, 114, 120, 240, 59, 98, 203, 107, 169, 100, 13, 180, 72,\n\t\t132, 50, 84, 200, 18, 12, 169, 157, 134, 28, 22, 20, 94, 157,\n\t\t158, 141, 181, 140, 160, 44, 98, 104, 121, 73, 40, 214, 172,\n\t\t116, 109, 85, 119, 18, 202, 69, 81, 93, 166, 133, 158, 141,\n\t\t5, 10, 216, 233, 2, 186, 79, 124, 14, 45, 155, 130, 195, 196,\n\t\t212, 70, 102, 53, 35, 166, 231, 180, 66, 200, 102, 166, 168,\n\t\t46, 112, 235, 240, 145, 32, 57, 96, 131, 63, 222, 130, 52,\n\t\t74, 7, 193, 151, 206, 78, 81, 114, 245, 189, 200, 25, 230,\n\t\t182, 74, 244, 52, 208, 42, 81, 151, 27, 168, 73, 52, 228,\n\t\t239, 96, 129, 134, 206, 184, 175, 71, 189, 108, 222, 180,\n\t\t201, 2, 118, 29, 46, 209, 173, 208, 69, 139, 119, 78, 246,\n\t\t93, 41, 196, 159, 156, 43, 155, 142, 122, 15, 129, 188, 210,\n\t\t238, 123, 204, 202, 96, 166, 96, 28, 82, 176, 44, 176, 143,\n\t\t242, 223, 85, 254, 172, 127, 116, 114, 208, 206, 72, 237,\n\t\t174, 63, 149, 63, 202, 97, 57, 186, 165, 118, 29, 127, 192,\n\t\t111, 18, 122, 99, 55, 189, 224, 199, 91, 108, 228, 176, 158,\n\t\t68, 137, 255, 203, 0, 190, 151, 247, 79, 144, 129, 127, 45,\n\t\t25, 255, 253, 229, 246, 90, 119, 209, 95, 200, 183, 167, 83,\n\t\t11, 196, 253, 97, 103, 158, 53, 173, 88, 22, 33, 41, 114,\n\t\t179, 201, 244, 51, 49, 91, 67, 126, 14, 67, 54, 69, 240, 123,\n\t\t30, 240, 121, 44, 92, 245, 132, 181, 189, 126, 65, 6, 30,\n\t\t75, 74, 44, 173, 116, 52, 124, 187, 238, 242, 8, 247, 146,\n\t\t240, 44, 67, 98, 73, 208, 161, 13, 165, 48, 70, 87, 62, 248,\n\t\t226, 196, 191, 174, 86, 55, 4, 131, 202, 231, 97, 38, 236,\n\t\t56, 107, 124, 185, 74, 34, 97, 88, 207, 186, 142, 132, 2,\n\t\t94, 146, 136, 191, 28, 194, 175, 95, 126, 220, 254, 253, 219,\n\t\t183, 31, 127, 121, 127, 25, 198, 87, 158, 91, 51, 126, 227,\n\t\t240, 239, 182, 228, 164, 51, 21, 107, 51, 110, 150, 226, 19,\n\t\t189, 43, 82, 207, 138, 26, 103, 121, 80, 64, 177, 47, 53,\n\t\t51, 247, 65, 183, 158, 159, 83, 250, 176, 68, 87, 29, 108,\n\t\t57, 180, 230, 35, 203, 146, 193, 17, 44, 66, 67, 226, 165,\n\t\t156, 166, 139, 28, 174, 20, 44, 250, 92, 72, 162, 176, 185,\n\t\t38, 56, 251, 174, 170, 29, 130, 26, 218, 144, 201, 104, 54,\n\t\t61, 164, 89, 186, 41, 210, 227, 178, 188, 139, 181, 144, 70,\n\t\t180, 76, 248, 165, 113, 19, 213, 250, 67, 7, 246, 35, 109,\n\t\t161, 13, 141, 204, 0, 68, 153, 91, 90, 122, 4, 223, 119, 35,\n\t\t27, 41, 252, 239, 52, 82, 90, 217, 30, 219, 114, 134, 47,\n\t\t239, 100, 89, 147, 111, 155, 100, 34, 114, 31, 30, 215, 127,\n\t\t125, 159, 247, 207, 46, 206, 223, 232, 181, 47, 111, 169,\n\t\t182, 35, 8, 248, 190, 20, 43, 67, 240, 135, 36, 155, 3, 98,\n\t\t223, 139, 123, 169, 193, 45, 204, 163, 64, 92, 76, 216, 253,\n\t\t108, 64, 173, 222, 31, 9, 6, 195, 38, 156, 184, 43, 14, 202,\n\t\t108, 144, 93, 10, 218, 4, 151, 252, 52, 224, 105, 10, 119,\n\t\t66, 217, 145, 76, 6, 226, 124, 83, 194, 95, 245, 173, 172,\n\t\t216, 198, 155, 37, 4, 145, 139, 1, 142, 90, 247, 119, 57,\n\t\t167, 134, 196, 19, 120, 3, 29, 210, 127, 3, 59, 158, 189,\n\t\t182, 233, 228, 89, 251, 27, 72, 17, 181, 134, 152, 103, 117,\n\t\t211, 236, 183, 97, 132, 203, 112, 36, 2, 117, 68, 177, 24,\n\t\t9, 10, 20, 113, 119, 123, 28, 86, 224, 224, 151, 180, 76,\n\t\t244, 130, 231, 210, 13, 6, 59, 200, 84, 50, 241, 40, 168,\n\t\t67, 9, 153, 164, 105, 37, 173, 68, 166, 86, 100, 224, 194,\n\t\t122, 45, 147, 213, 233, 160, 160, 72, 16, 29, 224, 66, 224,\n\t\t14, 205, 142, 176, 37, 212, 123, 145, 171, 168, 76, 190, 45,\n\t\t133, 225, 214, 217, 98, 253, 48, 86, 229, 108, 230, 140, 33,\n\t\t133, 160, 127, 246, 161, 186, 20, 78, 152, 241, 98, 91, 173,\n\t\t45, 227, 42, 55, 144, 45, 242, 37, 103, 127, 178, 55, 14,\n\t\t67, 86, 214, 207, 82, 96, 216, 5, 214, 43, 131, 206, 87, 114,\n\t\t31, 194, 154, 231, 189, 32, 145, 218, 145, 111, 172, 233,\n\t\t152, 176, 148, 5, 230, 242, 20, 22, 185, 19, 148, 6, 211,\n\t\t63, 68, 133, 94, 10, 71, 78, 86, 153, 110, 206, 10, 78, 173,\n\t\t31, 210, 241, 211, 105, 109, 228, 214, 92, 75, 84, 150, 98,\n\t\t181, 22, 180, 18, 41, 141, 208, 1, 237, 226, 81, 183, 156,\n\t\t213, 21, 237, 155, 31, 194, 244, 220, 67, 158, 245, 227, 96,\n\t\t204, 8, 180, 94, 75, 131, 249, 55, 201, 190, 196, 220, 102,\n\t\t46, 94, 173, 2, 172, 24, 154, 210, 48, 152, 102, 91, 146,\n\t\t113, 68, 243, 223, 135, 186, 236, 205, 26, 46, 73, 118, 228,\n\t\t39, 104, 21, 2, 33, 86, 82, 142, 116, 122, 89, 249, 36, 48,\n\t\t33, 212, 21, 180, 197, 172, 216, 158, 173, 57, 164, 191, 48,\n\t\t73, 195, 158, 62, 156, 72, 239, 145, 157, 93, 48, 100, 207,\n\t\t137, 238, 3, 79, 65, 159, 97, 150, 108, 19, 90, 78, 232, 247,\n\t\t229, 72, 134, 29, 200, 210, 52, 146, 22, 73, 77, 51, 163,\n\t\t125, 92, 183, 137, 150, 223, 24, 204, 198, 14, 153, 102, 59,\n\t\t148, 208, 30, 70, 217, 198, 42, 42, 6, 69, 249, 192, 137,\n\t\t40, 34, 20, 27, 216, 51, 11, 35, 164, 190, 176, 69, 121, 80,\n\t\t95, 135, 7, 96, 187, 22, 35, 85, 222, 166, 67, 157, 118, 132,\n\t\t43, 141, 212, 201, 154, 64, 12, 94, 205, 231, 5, 36, 18, 12,\n\t\t124, 98, 72, 97, 161, 139, 67, 129, 69, 10, 146, 56, 81, 12,\n\t\t172, 158, 36, 224, 138, 148, 45, 155, 149, 200, 158, 118,\n\t\t146, 202, 236, 81, 26, 48, 229, 50, 19, 60, 199, 91, 192,\n\t\t21, 53, 209, 214, 100, 0, 193, 248, 160, 98, 150, 230, 2,\n\t\t246, 211, 77, 104, 27, 109, 102, 211, 94, 211, 233, 150, 177,\n\t\t233, 98, 15, 86, 196, 207, 82, 200, 64, 164, 204, 89, 102,\n\t\t194, 33, 198, 51, 68, 2, 52, 24, 120, 128, 238, 222, 203,\n\t\t185, 34, 234, 40, 154, 215, 44, 64, 78, 188, 37, 232, 126,\n\t\t207, 88, 231, 237, 45, 215, 34, 1, 133, 194, 111, 69, 59,\n\t\t146, 63, 222, 130, 171, 106, 121, 12, 27, 146, 42, 36, 41,\n\t\t209, 132, 26, 57, 156, 139, 10, 231, 41, 57, 212, 71, 27,\n\t\t4, 187, 183, 134, 241, 165, 7, 36, 229, 101, 92, 22, 64, 41,\n\t\t42, 50, 195, 32, 232, 108, 67, 177, 97, 113, 254, 8, 151,\n\t\t115, 194, 90, 61, 120, 88, 214, 195, 219, 176, 64, 97, 68,\n\t\t177, 199, 164, 219, 198, 220, 82, 55, 109, 171, 178, 167,\n\t\t34, 128, 22, 178, 152, 91, 65, 80, 137, 13, 86, 133, 129,\n\t\t177, 34, 33, 118, 149, 45, 8, 231, 163, 204, 237, 220, 181,\n\t\t91, 112, 71, 107, 181, 247, 66, 132, 227, 182, 21, 129, 183,\n\t\t82, 67, 98, 145, 42, 179, 145, 108, 33, 111, 220, 194, 214,\n\t\t188, 196, 109, 206, 108, 6, 217, 174, 89, 66, 102, 244, 57,\n\t\t40, 66, 167, 216, 67, 187, 216, 199, 91, 20, 4, 209, 40, 189,\n\t\t68, 147, 104, 159, 119, 103, 125, 177, 53, 130, 164, 50, 219,\n\t\t113, 207, 97, 152, 105, 76, 140, 219, 177, 66, 150, 91, 79,\n\t\t130, 245, 164, 112, 214, 245, 197, 89, 201, 55, 139, 250,\n\t\t172, 136, 143, 132, 241, 104, 106, 83, 27, 221, 232, 1, 176,\n\t\t93, 219, 83, 215, 226, 197, 138, 253, 217, 24, 44, 229, 159,\n\t\t181, 61, 6, 219, 198, 210, 136, 191, 246, 85, 126, 220, 190,\n\t\t252, 227, 213, 221, 123, 129, 228, 155, 201, 183, 70, 84,\n\t\t147, 46, 67, 152, 20, 228, 202, 128, 18, 178, 169, 153, 114,\n\t\t144, 29, 98, 247, 99, 209, 174, 93, 99, 141, 13, 212, 34,\n\t\t25, 58, 96, 65, 84, 176, 248, 32, 206, 156, 115, 71, 186,\n\t\t39, 151, 175, 141, 65, 218, 56, 54, 233, 22, 219, 48, 152,\n\t\t83, 49, 37, 234, 144, 148, 174, 140, 27, 74, 13, 117, 99,\n\t\t116, 173, 233, 64, 95, 37, 42, 216, 122, 55, 130, 44, 70,\n\t\t11, 24, 243, 106, 228, 89, 66, 12, 10, 63, 252, 184, 188,\n\t\t229, 92, 198, 154, 233, 233, 72, 87, 22, 135, 222, 214, 98,\n\t\t70, 71, 124, 218, 113, 102, 194, 153, 77, 85, 228, 125, 31,\n\t\t47, 33, 80, 142, 146, 88, 194, 198, 14, 81, 49, 66, 18, 124,\n\t\t41, 22, 154, 227, 188, 219, 222, 97, 12, 17, 211, 112, 183,\n\t\t14, 75, 18, 109, 239, 205, 48, 67, 28, 114, 247, 62, 123,\n\t\t241, 97, 93, 81, 22, 145, 206, 26, 239, 131, 48, 81, 126,\n\t\t136, 158, 173, 217, 52, 69, 97, 131, 233, 249, 136, 215, 88,\n\t\t69, 233, 105, 83, 162, 197, 162, 181, 135, 83, 110, 232, 140,\n\t\t23, 69, 132, 163, 197, 96, 109, 211, 40, 157, 143, 110, 145,\n\t\t18, 142, 250, 203, 165, 247, 251, 151, 243, 235, 111, 223,\n\t\t191, 255, 109, 255, 253, 101, 249, 189, 116, 121, 132, 146,\n\t\t12, 210, 62, 31, 109, 139, 37, 74, 186, 163, 234, 166, 31,\n\t\t210, 19, 226, 163, 45, 95, 80, 222, 127, 151, 178, 98, 169,\n\t\t244, 4, 214, 181, 49, 217, 236, 221, 95, 89, 22, 121, 223,\n\t\t67, 232, 215, 189, 167, 187, 252, 91, 213, 153, 189, 119,\n\t\t127, 229, 71, 84, 113, 158, 110, 35, 18, 16, 49, 213, 52,\n\t\t108, 59, 204, 115, 175, 159, 79, 166, 194, 157, 213, 92, 75,\n\t\t184, 214, 186, 159, 16, 26, 190, 239, 77, 45, 2, 193, 85,\n\t\t13, 127, 134, 89, 107, 99, 246, 247, 175, 239, 239, 95, 255,\n\t\t241, 9, 237, 125, 255, 125, 150, 138, 36, 43, 20, 81, 26,\n\t\t42, 73, 146, 116, 150, 206, 13, 125, 52, 244, 75, 149, 130,\n\t\t94, 44, 140, 221, 143, 237, 48, 148, 101, 83, 19, 61, 139,\n\t\t83, 217, 219, 81, 111, 44, 225, 30, 202, 241, 94, 25, 91,\n\t\t150, 44, 45, 195, 195, 5, 156, 168, 177, 200, 178, 138, 67,\n\t\t111, 200, 231, 143, 183, 144, 170, 80, 128, 213, 163, 223,\n\t\t124, 144, 212, 92, 104, 130, 63, 231, 221, 33, 53, 27, 178,\n\t\t180, 4, 104, 93, 22, 126, 86, 209, 125, 147, 18, 22, 45, 213,\n\t\t148, 31, 232, 249, 48, 195, 127, 61, 90, 223, 126, 188, 255,\n\t\t33, 217, 200, 231, 81, 250, 242, 82, 66, 59, 49, 126, 99,\n\t\t211, 98, 12, 233, 36, 48, 22, 68, 124, 234, 225, 142, 194,\n\t\t251, 171, 47, 229, 72, 247, 113, 24, 44, 137, 215, 214, 185,\n\t\t144, 8, 39, 19, 115, 27, 154, 211, 215, 163, 92, 113, 240,\n\t\t46, 201, 172, 242, 31, 95, 245, 3, 15, 244, 120, 105, 125,\n\t\t186, 146, 174, 60, 112, 199, 205, 249, 16, 31, 111, 110, 75,\n\t\t169, 93, 99, 251, 228, 45, 30, 62, 253, 89, 27, 195, 239,\n\t\t223, 255, 241, 199, 183, 243, 251, 63, 222, 247, 223, 191,\n\t\t189, 140, 99, 248, 249, 56, 74, 118, 106, 11, 33, 93, 65,\n\t\t157, 116, 155, 245, 244, 96, 9, 144, 93, 54, 254, 116, 87,\n\t\t178, 122, 225, 96, 153, 214, 1, 4, 177, 161, 124, 120, 119,\n\t\t203, 221, 60, 105, 236, 31, 160, 176, 95, 119, 95, 251, 17,\n\t\t238, 232, 214, 184, 89, 115, 183, 138, 93, 40, 45, 51, 223,\n\t\t241, 87, 115, 107, 228, 31, 88, 35, 119, 159, 179, 60, 139,\n\t\t181, 30, 218, 167, 182, 81, 155, 68, 245, 11, 238, 124, 19,\n\t\t116, 88, 92, 238, 104, 19, 57, 221, 86, 4, 54, 92, 214, 178,\n\t\t88, 250, 101, 235, 229, 76, 86, 50, 211, 140, 26, 145, 60,\n\t\t144, 60, 80, 57, 94, 101, 162, 111, 104, 165, 156, 201, 113,\n\t\t118, 127, 236, 101, 194, 251, 48, 159, 72, 175, 118, 15, 179,\n\t\t185, 37, 148, 37, 109, 50, 190, 128, 126, 236, 190, 71, 9,\n\t\t115, 219, 171, 226, 17, 202, 218, 105, 90, 116, 13, 238, 49,\n\t\t95, 119, 159, 220, 209, 238, 24, 244, 91, 104, 68, 207, 188,\n\t\t188, 12, 49, 65, 79, 104, 139, 243, 187, 119, 119, 159, 86,\n\t\t6, 156, 61, 45, 116, 31, 240, 250, 169, 5, 233, 236, 233,\n\t\t208, 220, 184, 34, 116, 240, 175, 222, 187, 251, 30, 28, 215,\n\t\t141, 245, 152, 18, 159, 73, 150, 12, 17, 40, 167, 200, 197,\n\t\t211, 143, 237, 57, 70, 43, 28, 2, 77, 173, 170, 20, 24, 28,\n\t\t55, 49, 83, 189, 187, 13, 71, 64, 179, 66, 8, 186, 24, 150,\n\t\t237, 142, 35, 23, 57, 215, 59, 187, 134, 93, 34, 58, 46, 128,\n\t\t27, 85, 164, 187, 198, 118, 163, 239, 136, 53, 115, 69, 154,\n\t\t219, 142, 239, 252, 67, 108, 55, 235, 35, 83, 28, 238, 63,\n\t\t217, 169, 63, 254, 216, 191, 252, 143, 175, 239, 223, 255,\n\t\t254, 245, 51, 100, 243, 47, 241, 231, 141, 3, 97, 188, 162,\n\t\t119, 199, 208, 237, 106, 31, 185, 109, 214, 143, 193, 198,\n\t\t164, 223, 165, 173, 56, 119, 118, 234, 73, 158, 196, 194,\n\t\t96, 199, 19, 40, 225, 227, 191, 87, 194, 146, 78, 88, 22,\n\t\t103, 231, 88, 60, 143, 205, 107, 170, 119, 231, 109, 38, 198,\n\t\t23, 105, 4, 216, 121, 141, 243, 229, 235, 53, 24, 234, 250,\n\t\t112, 203, 245, 189, 46, 64, 179, 207, 140, 24, 254, 255, 245,\n\t\t157, 210, 112, 33, 182, 24, 243, 81, 47, 179, 124, 130, 49,\n\t\t227, 100, 36, 56, 176, 52, 236, 192, 208, 236, 85, 94, 75,\n\t\t44, 166, 135, 182, 226, 162, 216, 191, 196, 183, 180, 240,\n\t\t215, 98, 178, 107, 215, 141, 29, 182, 159, 206, 160, 1, 59,\n\t\t193, 18, 46, 102, 113, 1, 183, 0, 13, 63, 253, 214, 130, 137,\n\t\t203, 57, 1, 215, 91, 78, 131, 55, 191, 2, 27, 234, 179, 62,\n\t\t161, 213, 126, 126, 79, 29, 255, 249, 99, 92, 239, 233, 182,\n\t\t222, 176, 165, 17, 215, 52, 52, 162, 25, 227, 144, 138, 159,\n\t\t159, 220, 113, 194, 35, 127, 114, 67, 185, 210, 207, 94, 52,\n\t\t88, 43, 183, 189, 103, 68, 180, 30, 34, 237, 17, 113, 227,\n\t\t211, 123, 62, 94, 40, 60, 66, 48, 45, 19, 71, 71, 32, 204,\n\t\t199, 148, 23, 107, 90, 83, 248, 9, 178, 199, 195, 101, 12,\n\t\t165, 202, 128, 111, 53, 48, 113, 91, 82, 12, 214, 233, 183,\n\t\t94, 44, 27, 232, 228, 188, 152, 179, 129, 98, 32, 90, 55,\n\t\t197, 167, 15, 174, 216, 108, 156, 36, 196, 163, 246, 39, 224,\n\t\t203, 101, 104, 236, 146, 235, 123, 98, 38, 214, 31, 173, 161,\n\t\t55, 67, 246, 89, 194, 219, 170, 129, 46, 231, 195, 234, 155,\n\t\t185, 55, 115, 172, 108, 31, 112, 216, 24, 194, 124, 4, 147,\n\t\t212, 187, 108, 11, 14, 93, 124, 124, 133, 121, 105, 121, 250,\n\t\t198, 1, 47, 182, 44, 57, 70, 54, 5, 118, 114, 231, 250, 225,\n\t\t240, 0, 29, 224, 241, 14, 156, 39, 66, 182, 96, 128, 171,\n\t\t173, 158, 250, 132, 19, 252, 248, 27, 76, 228, 130, 60, 184,\n\t\t252, 146, 235, 238, 179, 31, 254, 252, 102, 63, 251, 73, 49,\n\t\t52, 99, 254, 206, 18, 133, 118, 171, 117, 142, 103, 111, 40,\n\t\t150, 141, 209, 30, 234, 69, 159, 94, 106, 25, 234, 249, 82,\n\t\t200, 163, 140, 91, 40, 42, 217, 178, 29, 253, 195, 68, 172,\n\t\t247, 123, 188, 240, 92, 134, 243, 194, 249, 241, 241, 225,\n\t\t136, 26, 218, 209, 249, 128, 189, 62, 193, 199, 230, 16, 60,\n\t\t95, 0, 227, 102, 11, 240, 97, 88, 231, 206, 137, 130, 89,\n\t\t50, 127, 231, 184, 40, 31, 94, 106, 166, 7, 45, 15, 248, 159,\n\t\t60, 83, 120, 158, 22, 206, 8, 70, 208, 153, 182, 93, 114,\n\t\t50, 235, 72, 149, 23, 1, 177, 236, 199, 250, 34, 22, 230,\n\t\t157, 77, 53, 63, 66, 114, 217, 140, 199, 79, 116, 203, 186,\n\t\t131, 23, 136, 92, 123, 195, 249, 88, 249, 180, 11, 26, 232,\n\t\t151, 117, 67, 27, 59, 39, 53, 235, 156, 140, 240, 140, 116,\n\t\t183, 163, 213, 117, 174, 136, 9, 4, 205, 31, 213, 103, 129,\n\t\t104, 144, 67, 184, 209, 227, 235, 44, 79, 249, 56, 130, 115,\n\t\t57, 27, 208, 200, 212, 116, 159, 220, 4, 211, 108, 179, 20,\n\t\t40, 236, 62, 185, 203, 20, 223, 115, 119, 242, 147, 159, 66,\n\t\t117, 222, 197, 230, 135, 41, 164, 57, 81, 44, 58, 90, 4, 171,\n\t\t221, 44, 189, 108, 201, 135, 177, 179, 5, 97, 99, 103, 71,\n\t\t214, 165, 102, 3, 199, 61, 240, 162, 16, 31, 62, 61, 189,\n\t\t234, 182, 152, 23, 128, 92, 219, 38, 87, 78, 87, 34, 21, 99,\n\t\t124, 40, 14, 209, 9, 135, 240, 217, 195, 24, 121, 91, 176,\n\t\t166, 186, 162, 201, 102, 211, 76, 250, 214, 64, 10, 159, 86,\n\t\t195, 139, 126, 140, 243, 144, 24, 34, 159, 34, 196, 152, 198,\n\t\t152, 230, 128, 29, 122, 184, 209, 52, 176, 30, 238, 177, 173,\n\t\t112, 254, 235, 59, 132, 199, 167, 107, 143, 214, 209, 229,\n\t\t233, 236, 69, 27, 205, 223, 216, 33, 107, 177, 127, 124, 144,\n\t\t249, 126, 222, 212, 239, 211, 40, 252, 244, 189, 169, 34,\n\t\t230, 221, 30, 45, 211, 115, 181, 56, 158, 108, 208, 135, 67,\n\t\t113, 218, 97, 250, 20, 151, 101, 165, 185, 135, 185, 244,\n\t\t83, 215, 207, 175, 231, 231, 118, 114, 126, 185, 119, 156,\n\t\t99, 136, 99, 231, 147, 21, 62, 31, 196, 110, 100, 210, 145,\n\t\t55, 251, 204, 158, 95, 190, 189, 239, 146, 253, 94, 226, 212,\n\t\t231, 84, 98, 110, 202, 1, 55, 135, 159, 215, 190, 216, 155,\n\t\t184, 249, 2, 15, 207, 15, 236, 161, 135, 199, 127, 25, 167,\n\t\t199, 97, 90, 71, 201, 61, 95, 209, 80, 46, 150, 123, 224,\n\t\t241, 48, 23, 203, 244, 175, 107, 173, 246, 7, 136, 116, 182,\n\t\t162, 204, 169, 127, 248, 35, 239, 203, 165, 18, 231, 145,\n\t\t185, 150, 95, 151, 242, 235, 74, 94, 23, 242, 195, 134, 90,\n\t\t221, 8, 251, 49, 214, 239, 203, 169, 246, 24, 219, 220, 121,\n\t\t38, 68, 62, 121, 203, 41, 65, 112, 64, 183, 245, 251, 250,\n\t\t102, 79, 18, 195, 9, 194, 228, 50, 116, 235, 198, 193, 80,\n\t\t153, 184, 96, 205, 11, 165, 69, 33, 214, 136, 1, 71, 75, 76,\n\t\t57, 85, 194, 109, 20, 39, 188, 232, 72, 240, 226, 205, 63,\n\t\t17, 177, 38, 97, 87, 255, 13, 11, 230, 19, 36, 200, 7, 33,\n\t\t190, 200, 112, 94, 236, 69, 89, 124, 162, 43, 252, 212, 50,\n\t\t70, 34, 98, 55, 210, 237, 53, 21, 32, 62, 76, 45, 136, 145,\n\t\t126, 84, 181, 171, 124, 199, 120, 190, 170, 192, 23, 13, 56,\n\t\t21, 224, 246, 162, 101, 31, 149, 236, 39, 154, 124, 81, 228,\n\t\t133, 104, 180, 238, 193, 88, 152, 182, 194, 98, 42, 216, 76,\n\t\t172, 214, 200, 58, 72, 118, 49, 134, 47, 244, 89, 211, 36,\n\t\t24, 50, 100, 92, 195, 71, 156, 214, 14, 215, 208, 234, 92,\n\t\t204, 201, 183, 155, 204, 151, 60, 231, 75, 46, 207, 239, 48,\n\t\t221, 158, 0, 47, 8, 124, 188, 204, 247, 52, 9, 158, 47, 178,\n\t\t76, 183, 57, 47, 82, 19, 236, 183, 7, 35, 244, 213, 6, 93,\n\t\t237, 90, 187, 42, 165, 55, 230, 57, 216, 229, 38, 42, 226,\n\t\t156, 216, 184, 216, 215, 175, 230, 245, 106, 93, 79, 171,\n\t\t60, 254, 217, 19, 228, 245, 103, 50, 224, 198, 212, 19, 31,\n\t\t41, 92, 150, 201, 68, 213, 198, 131, 167, 48, 99, 1, 235,\n\t\t3, 225, 71, 107, 115, 232, 195, 69, 231, 2, 180, 139, 154,\n\t\t99, 180, 248, 69, 243, 142, 28, 98, 143, 24, 86, 88, 221,\n\t\t175, 52, 163, 11, 159, 220, 193, 222, 249, 201, 199, 179,\n\t\t146, 171, 207, 127, 181, 45, 150, 14, 95, 231, 217, 153, 252,\n\t\t244, 54, 102, 131, 204, 95, 61, 47, 180, 255, 242, 54, 118,\n\t\t230, 235, 165, 187, 123, 228, 147, 120, 116, 136, 23, 127,\n\t\t88, 255, 252, 234, 123, 227, 218, 107, 196, 32, 254, 228,\n\t\t122, 137, 178, 194, 204, 19, 188, 243, 107, 36, 98, 217, 56,\n\t\t121, 155, 49, 15, 222, 224, 120, 242, 103, 62, 9, 172, 60,\n\t\t196, 85, 150, 176, 138, 253, 121, 193, 51, 159, 150, 24, 46,\n\t\t147, 214, 224, 208, 39, 129, 166, 197, 7, 132, 4, 214, 149,\n\t\t180, 68, 153, 178, 77, 130, 93, 230, 37, 196, 52, 55, 178,\n\t\t61, 213, 243, 124, 188, 4, 198, 30, 226, 98, 175, 97, 177,\n\t\t79, 162, 111, 216, 111, 120, 208, 79, 98, 154, 47, 145, 190,\n\t\t215, 64, 223, 107, 156, 239, 243, 27, 153, 41, 204, 229, 98,\n\t\t227, 254, 201, 205, 120, 206, 140, 158, 234, 21, 17, 197,\n\t\t180, 27, 53, 115, 128, 61, 247, 115, 225, 240, 63, 94, 228,\n\t\t103, 175, 245, 122, 39, 46, 36, 4, 185, 63, 11, 205, 190,\n\t\t128, 192, 83, 80, 217, 83, 132, 199, 24, 244, 75, 168, 57,\n\t\t233, 149, 105, 47, 191, 90, 221, 18, 95, 95, 174, 176, 186,\n\t\t100, 229, 116, 155, 244, 167, 120, 240, 86, 120, 23, 45, 90,\n\t\t238, 83, 148, 148, 1, 86, 49, 178, 80, 112, 1, 39, 243, 187,\n\t\t174, 210, 46, 184, 196, 106, 202, 179, 68, 94, 159, 193, 90,\n\t\t9, 13, 152, 181, 157, 86, 224, 168, 194, 66, 41, 184, 229,\n\t\t16, 178, 124, 252, 247, 164, 139, 133, 95, 224, 209, 178,\n\t\t157, 37, 95, 219, 169, 156, 12, 122, 53, 22, 104, 178, 44,\n\t\t136, 133, 118, 100, 100, 176, 114, 81, 168, 18, 232, 92, 171,\n\t\t118, 212, 107, 10, 236, 32, 241, 117, 89, 170, 56, 196, 58,\n\t\t219, 103, 8, 114, 165, 211, 122, 62, 241, 171, 128, 220, 119,\n\t\t203, 91, 118, 91, 126, 143, 86, 44, 142, 247, 112, 219, 158,\n\t\t79, 227, 241, 171, 91, 41, 19, 123, 160, 51, 73, 153, 172,\n\t\t50, 146, 80, 188, 124, 228, 7, 171, 112, 86, 243, 201, 36,\n\t\t84, 184, 251, 250, 150, 134, 52, 199, 87, 33, 206, 156, 167,\n\t\t85, 232, 165, 128, 14, 137, 202, 184, 192, 153, 51, 201, 7,\n\t\t106, 143, 19, 189, 118, 58, 225, 118, 211, 199, 154, 58, 233,\n\t\t104, 208, 22, 162, 90, 142, 124, 175, 128, 114, 117, 43, 146,\n\t\t124, 134, 133, 201, 40, 21, 108, 157, 250, 139, 60, 146, 1,\n\t\t223, 97, 251, 219, 17, 2, 123, 1, 248, 248, 42, 200, 200,\n\t\t119, 159, 210, 101, 201, 43, 237, 51, 177, 244, 179, 123,\n\t\t2, 34, 224, 211, 123, 90, 230, 235, 245, 158, 221, 41, 64,\n\t\t209, 145, 239, 172, 75, 253, 175, 110, 251, 201, 171, 234,\n\t\t169, 63, 201, 183, 253, 228, 166, 227, 101, 45, 111, 125,\n\t\t100, 187, 97, 183, 207, 119, 176, 214, 157, 232, 49, 93, 138,\n\t\t166, 171, 218, 206, 250, 143, 91, 191, 158, 179, 87, 132,\n\t\t13, 45, 82, 109, 107, 149, 170, 99, 197, 225, 94, 179, 77,\n\t\t119, 26, 109, 56, 48, 22, 66, 210, 194, 248, 199, 133, 240,\n\t\t139, 209, 89, 25, 211, 141, 69, 65, 137, 102, 103, 193, 114,\n\t\t22, 30, 169, 70, 223, 157, 141, 182, 90, 90, 143, 133, 25,\n\t\t81, 229, 136, 11, 105, 29, 210, 18, 184, 235, 15, 155, 233,\n\t\t78, 190, 209, 244, 228, 24, 177, 103, 168, 96, 17, 24, 167,\n\t\t173, 63, 178, 32, 166, 97, 244, 13, 78, 238, 249, 128, 59,\n\t\t157, 196, 224, 85, 152, 234, 212, 76, 102, 118, 127, 228,\n\t\t59, 243, 149, 231, 112, 130, 65, 58, 198, 149, 212, 117, 239,\n\t\t61, 44, 129, 203, 255, 7, 22, 222, 227, 77, 159, 55, 246,\n\t\t154, 197, 253, 217, 46, 251, 147, 187, 250, 132, 59, 246,\n\t\t94, 238, 216, 228, 151, 255, 78, 156, 56, 173, 4, 193, 15,\n\t\t30, 110, 106, 210, 228, 241, 166, 148, 90, 147, 45, 40, 107,\n\t\t231, 166, 202, 101, 246, 233, 91, 219, 16, 208, 119, 206,\n\t\t192, 62, 77, 163, 66, 80, 220, 87, 244, 109, 84, 43, 152,\n\t\t111, 198, 28, 104, 156, 82, 36, 242, 52, 182, 183, 201, 28,\n\t\t165, 42, 234, 94, 231, 219, 103, 128, 154, 54, 252, 251, 252,\n\t\t221, 221, 119, 156, 189, 112, 42, 227, 62, 221, 200, 138,\n\t\t12, 52, 72, 111, 112, 146, 193, 149, 149, 195, 25, 111, 65,\n\t\t34, 38, 62, 191, 60, 190, 180, 230, 161, 65, 158, 39, 112,\n\t\t64, 112, 225, 95, 87, 106, 252, 248, 250, 245, 183, 247, 23,\n\t\t208, 190, 47, 137, 197, 123, 81, 250, 74, 98, 246, 71, 59,\n\t\t201, 149, 203, 230, 95, 47, 19, 82, 171, 212, 215, 9, 182,\n\t\t183, 172, 231, 96, 244, 41, 156, 209, 73, 28, 45, 160, 54,\n\t\t251, 4, 108, 28, 63, 60, 87, 2, 58, 189, 195, 30, 41, 94,\n\t\t166, 140, 40, 164, 154, 192, 52, 79, 32, 111, 91, 56, 198,\n\t\t251, 167, 53, 49, 67, 10, 21, 117, 180, 63, 222, 188, 19,\n\t\t196, 155, 218, 15, 105, 191, 181, 94, 47, 222, 40, 179, 85,\n\t\t40, 41, 38, 19, 65, 73, 81, 15, 44, 13, 60, 106, 147, 176,\n\t\t4, 90, 150, 85, 99, 255, 27, 187, 150, 189, 203, 71, 61, 217,\n\t\t145, 40, 173, 221, 165, 25, 196, 152, 226, 83, 56, 105, 48,\n\t\t84, 80, 216, 186, 133, 154, 8, 111, 46, 227, 185, 249, 217,\n\t\t140, 34, 239, 0, 170, 157, 211, 51, 5, 16, 25, 106, 97, 147,\n\t\t80, 65, 169, 226, 236, 26, 114, 249, 104, 138, 66, 232, 251,\n\t\t24, 242, 142, 246, 97, 129, 195, 92, 255, 57, 245, 12, 167,\n\t\t113, 87, 47, 224, 146, 91, 55, 126, 87, 28, 208, 83, 221,\n\t\t166, 87, 235, 218, 81, 44, 200, 49, 15, 39, 68, 116, 138,\n\t\t185, 201, 3, 14, 235, 176, 43, 246, 58, 185, 254, 172, 60,\n\t\t125, 105, 193, 104, 147, 60, 199, 218, 201, 246, 80, 140,\n\t\t64, 212, 186, 44, 140, 75, 141, 101, 234, 123, 210, 73, 186,\n\t\t156, 214, 46, 102, 140, 129, 93, 42, 80, 116, 50, 92, 23,\n\t\t120, 80, 53, 137, 79, 218, 175, 100, 55, 42, 214, 222, 71,\n\t\t203, 24, 144, 52, 191, 218, 64, 127, 253, 246, 199, 223, 126,\n\t\t124, 249, 219, 215, 23, 112, 212, 47, 47, 248, 50, 185, 179,\n\t\t198, 41, 151, 44, 104, 158, 253, 232, 231, 100, 108, 199,\n\t\t146, 52, 162, 154, 2, 107, 124, 50, 215, 56, 127, 40, 136,\n\t\t71, 206, 2, 180, 166, 181, 174, 161, 9, 170, 73, 168, 210,\n\t\t112, 25, 90, 61, 234, 221, 167, 124, 180, 147, 229, 122, 234,\n\t\t67, 238, 126, 146, 37, 49, 229, 74, 182, 71, 55, 100, 188,\n\t\t76, 222, 41, 101, 161, 117, 51, 186, 20, 185, 172, 31, 118,\n\t\t40, 191, 140, 91, 52, 5, 164, 150, 7, 148, 53, 78, 188, 114,\n\t\t182, 21, 56, 127, 196, 225, 183, 200, 55, 92, 12, 8, 71, 70,\n\t\t96, 206, 63, 170, 203, 105, 228, 46, 230, 87, 8, 65, 188,\n\t\t234, 234, 66, 55, 30, 77, 33, 39, 105, 146, 134, 34, 144,\n\t\t87, 211, 47, 133, 111, 170, 95, 225, 32, 104, 93, 113, 18,\n\t\t140, 56, 41, 242, 13, 195, 191, 218, 20, 60, 119, 15, 37,\n\t\t140, 33, 27, 114, 228, 92, 40, 111, 160, 150, 216, 252, 65,\n\t\t41, 19, 34, 94, 231, 190, 123, 237, 82, 211, 93, 44, 69, 223,\n\t\t249, 232, 82, 130, 236, 249, 37, 196, 34, 99, 5, 116, 7, 3,\n\t\t239, 241, 2, 138, 228, 67, 22, 120, 154, 120, 196, 147, 184,\n\t\t39, 144, 141, 62, 206, 240, 143, 241, 151, 228, 115, 114,\n\t\t171, 172, 241, 58, 235, 27, 177, 150, 86, 178, 239, 21, 118,\n\t\t84, 198, 217, 47, 10, 224, 61, 239, 153, 48, 180, 35, 99,\n\t\t184, 198, 88, 117, 194, 34, 240, 215, 190, 198, 35, 136, 156,\n\t\t23, 224, 194, 124, 164, 203, 189, 211, 126, 33, 5, 82, 194,\n\t\t22, 199, 11, 114, 188, 232, 203, 69, 181, 209, 32, 198, 105,\n\t\t194, 17, 224, 138, 77, 85, 209, 41, 152, 145, 92, 177, 26,\n\t\t212, 174, 48, 230, 180, 245, 91, 83, 185, 113, 199, 166, 29,\n\t\t235, 177, 9, 230, 146, 136, 204, 226, 143, 186, 249, 48, 164,\n\t\t149, 47, 233, 168, 75, 3, 45, 124, 118, 182, 192, 218, 129,\n\t\t202, 51, 46, 167, 97, 106, 209, 57, 246, 178, 200, 4, 5, 77,\n\t\t63, 142, 107, 222, 9, 229, 117, 42, 85, 149, 238, 82, 131,\n\t\t165, 177, 114, 97, 181, 63, 26, 104, 81, 165, 199, 210, 16,\n\t\t47, 172, 151, 140, 48, 77, 19, 225, 219, 201, 120, 25, 100,\n\t\t246, 236, 199, 13, 210, 158, 141, 37, 49, 134, 245, 190, 115,\n\t\t46, 26, 113, 213, 73, 150, 35, 51, 230, 189, 148, 198, 203,\n\t\t231, 49, 121, 218, 92, 193, 198, 146, 161, 242, 182, 33, 82,\n\t\t202, 186, 24, 116, 45, 24, 8, 21, 198, 129, 196, 180, 147,\n\t\t19, 145, 12, 55, 128, 192, 152, 209, 4, 53, 116, 8, 187, 78,\n\t\t34, 76, 46, 229, 124, 214, 188, 105, 211, 142, 110, 2, 169,\n\t\t174, 183, 47, 178, 37, 8, 186, 32, 205, 132, 2, 128, 13, 145,\n\t\t164, 138, 145, 91, 108, 151, 61, 118, 247, 147, 208, 54, 44,\n\t\t123, 247, 113, 95, 12, 215, 218, 118, 175, 26, 42, 231, 88,\n\t\t37, 99, 34, 32, 14, 212, 70, 1, 174, 118, 81, 192, 31, 55,\n\t\t65, 187, 203, 86, 216, 85, 77, 41, 211, 35, 59, 235, 240,\n\t\t146, 217, 242, 141, 140, 75, 3, 105, 133, 82, 140, 36, 53,\n\t\t101, 82, 76, 41, 145, 159, 9, 69, 182, 132, 125, 188, 197,\n\t\t34, 66, 165, 6, 101, 59, 197, 246, 113, 139, 121, 229, 205,\n\t\t36, 158, 50, 202, 214, 165, 209, 233, 185, 199, 191, 109,\n\t\t47, 39, 147, 57, 94, 0, 27, 11, 72, 63, 100, 195, 241, 251,\n\t\t188, 172, 159, 77, 127, 15, 127, 210, 182, 201, 229, 192,\n\t\t199, 91, 8, 69, 122, 44, 242, 33, 183, 128, 59, 201, 243,\n\t\t249, 88, 79, 79, 117, 209, 123, 232, 228, 241, 253, 94, 12,\n\t\t75, 28, 56, 105, 156, 99, 84, 144, 11, 116, 243, 236, 135,\n\t\t15, 239, 186, 3, 159, 46, 98, 7, 126, 173, 238, 191, 255,\n\t\t254, 253, 21, 166, 233, 75, 125, 129, 211, 112, 6, 167, 17,\n\t\t146, 44, 169, 112, 230, 217, 27, 72, 85, 71, 174, 130, 66,\n\t\t97, 89, 73, 2, 166, 86, 168, 1, 254, 120, 87, 199, 182, 80,\n\t\t16, 19, 65, 63, 108, 202, 232, 62, 30, 90, 129, 191, 220,\n\t\t144, 77, 78, 171, 78, 228, 75, 8, 2, 12, 52, 84, 252, 38,\n\t\t125, 54, 105, 155, 127, 16, 31, 12, 168, 101, 134, 32, 46,\n\t\t237, 101, 76, 178, 222, 118, 131, 64, 41, 182, 192, 151, 168,\n\t\t3, 27, 8, 205, 84, 103, 196, 12, 7, 198, 102, 140, 51, 122,\n\t\t16, 195, 161, 234, 25, 47, 164, 223, 135, 82, 22, 147, 166,\n\t\t194, 137, 201, 147, 6, 82, 228, 231, 182, 156, 24, 123, 55,\n\t\t144, 8, 25, 68, 177, 121, 217, 9, 220, 208, 192, 22, 213,\n\t\t229, 186, 71, 221, 243, 87, 172, 185, 143, 183, 232, 253,\n\t\t80, 200, 201, 29, 245, 100, 198, 88, 186, 31, 224, 114, 228,\n\t\t249, 121, 88, 9, 225, 78, 144, 169, 19, 158, 39, 27, 255,\n\t\t165, 37, 55, 209, 110, 171, 133, 159, 175, 130, 162, 157,\n\t\t238, 173, 95, 174, 195, 40, 136, 238, 215, 48, 187, 127, 253,\n\t\t254, 253, 47, 63, 190, 126, 121, 133, 103, 249, 210, 38, 102,\n\t\t186, 32, 140, 230, 97, 68, 16, 26, 143, 132, 220, 83, 170,\n\t\t213, 46, 144, 80, 112, 84, 221, 120, 193, 125, 98, 94, 74,\n\t\t231, 227, 36, 123, 51, 158, 26, 88, 34, 59, 164, 149, 148,\n\t\t24, 169, 95, 103, 215, 239, 170, 117, 225, 95, 35, 152, 210,\n\t\t21, 159, 132, 173, 174, 5, 118, 88, 130, 183, 210, 224, 8,\n\t\t85, 72, 178, 86, 143, 124, 38, 4, 133, 166, 178, 93, 204,\n\t\t94, 249, 80, 13, 108, 8, 205, 241, 132, 64, 114, 247, 61,\n\t\t70, 165, 81, 49, 139, 207, 160, 227, 236, 191, 171, 156, 100,\n\t\t167, 56, 57, 190, 158, 151, 203, 93, 47, 195, 83, 248, 199,\n\t\t140, 255, 93, 199, 159, 231, 239, 199, 101, 151, 83, 246,\n\t\t92, 62, 222, 98, 28, 82, 73, 209, 235, 221, 26, 222, 143,\n\t\t143, 168, 196, 190, 30, 241, 186, 135, 126, 223, 209, 30,\n\t\t127, 238, 107, 114, 35, 32, 3, 97, 4, 119, 121, 134, 94, 172,\n\t\t74, 128, 172, 145, 68, 170, 218, 233, 91, 37, 107, 193, 45,\n\t\t91, 42, 231, 158, 137, 95, 55, 147, 235, 108, 141, 221, 73,\n\t\t236, 42, 139, 162, 168, 120, 81, 144, 15, 46, 14, 195, 93,\n\t\t227, 116, 64, 34, 237, 74, 27, 1, 34, 88, 63, 197, 147, 62,\n\t\t131, 181, 57, 250, 10, 251, 66, 193, 225, 188, 192, 49, 10,\n\t\t118, 187, 24, 51, 88, 178, 2, 223, 234, 235, 86, 58, 1, 27,\n\t\t47, 198, 72, 9, 59, 200, 204, 110, 21, 202, 250, 245, 92,\n\t\t75, 55, 156, 37, 249, 103, 17, 193, 60, 246, 156, 186, 59,\n\t\t215, 210, 19, 121, 183, 165, 148, 11, 99, 186, 86, 247, 36,\n\t\t205, 69, 241, 118, 222, 24, 46, 73, 243, 199, 49, 77, 18,\n\t\t203, 36, 10, 171, 224, 133, 91, 117, 31, 55, 36, 34, 78, 93,\n\t\t85, 182, 33, 182, 194, 38, 34, 49, 156, 61, 153, 5, 68, 172,\n\t\t252, 193, 63, 16, 97, 75, 239, 119, 23, 115, 73, 134, 29,\n\t\t242, 230, 33, 203, 57, 147, 19, 34, 202, 241, 68, 97, 253,\n\t\t122, 37, 127, 237, 138, 184, 2, 221, 202, 4, 12, 41, 173,\n\t\t213, 251, 10, 29, 49, 41, 72, 231, 93, 90, 133, 91, 160, 32,\n\t\t84, 150, 124, 177, 237, 68, 44, 169, 220, 7, 116, 170, 241,\n\t\t231, 23, 192, 129, 102, 44, 54, 3, 186, 26, 50, 242, 63, 147,\n\t\t144, 251, 75, 107, 248, 151, 23, 36, 176, 217, 241, 151, 130,\n\t\t5, 254, 68, 5, 176, 80, 192, 7, 74, 125, 176, 203, 196, 9,\n\t\t129, 130, 90, 48, 163, 96, 55, 60, 157, 137, 241, 203, 49,\n\t\t102, 109, 69, 181, 9, 194, 139, 9, 44, 40, 57, 11, 25, 173,\n\t\t0, 110, 210, 105, 172, 244, 76, 137, 101, 66, 162, 98, 125,\n\t\t52, 227, 171, 211, 73, 98, 186, 138, 38, 247, 16, 104, 164,\n\t\t75, 106, 19, 37, 5, 144, 111, 52, 119, 18, 126, 229, 253,\n\t\t86, 202, 240, 32, 108, 141, 103, 110, 3, 172, 153, 84, 151,\n\t\t12, 38, 244, 195, 109, 173, 204, 210, 243, 206, 135, 226,\n\t\t86, 43, 130, 94, 10, 47, 197, 40, 73, 204, 0, 27, 130, 66,\n\t\t34, 216, 112, 225, 106, 228, 196, 75, 120, 74, 4, 70, 233,\n\t\t136, 70, 123, 23, 53, 26, 84, 250, 49, 252, 206, 97, 229,\n\t\t132, 205, 215, 114, 176, 134, 198, 44, 70, 125, 141, 132,\n\t\t225, 228, 136, 104, 188, 233, 100, 204, 183, 98, 171, 84,\n\t\t76, 135, 224, 225, 108, 62, 195, 185, 241, 237, 104, 103,\n\t\t193, 128, 207, 130, 5, 53, 159, 34, 65, 147, 21, 58, 0, 80,\n\t\t28, 39, 228, 52, 229, 213, 195, 6, 155, 56, 31, 58, 124, 36,\n\t\t170, 185, 162, 245, 91, 60, 196, 230, 36, 244, 183, 74, 157,\n\t\t40, 208, 112, 79, 7, 30, 107, 197, 107, 67, 34, 5, 102, 237,\n\t\t152, 224, 77, 199, 75, 24, 98, 78, 1, 181, 91, 98, 30, 30,\n\t\t110, 153, 10, 248, 161, 190, 0, 99, 177, 75, 226, 49, 79,\n\t\t52, 7, 195, 255, 245, 81, 130, 228, 74, 134, 215, 183, 36,\n\t\t249, 148, 97, 51, 160, 34, 204, 59, 229, 105, 167, 46, 242,\n\t\t126, 28, 140, 81, 113, 56, 144, 3, 200, 221, 2, 104, 187,\n\t\t98, 222, 85, 93, 47, 105, 248, 237, 94, 18, 185, 42, 246,\n\t\t72, 172, 95, 77, 13, 101, 193, 232, 140, 196, 148, 99, 59,\n\t\t59, 187, 46, 11, 57, 51, 235, 216, 53, 186, 190, 179, 240,\n\t\t147, 202, 225, 186, 192, 137, 234, 31, 3, 34, 159, 69, 34,\n\t\t150, 191, 238, 255, 255, 235, 247, 239, 127, 189, 125, 221,\n\t\t255, 242, 227, 219, 253, 213, 178, 127, 1, 202, 91, 120, 30,\n\t\t135, 186, 138, 241, 240, 183, 221, 151, 120, 140, 221, 25,\n\t\t142, 126, 21, 184, 231, 222, 111, 114, 76, 34, 189, 114, 120,\n\t\t31, 199, 135, 59, 228, 116, 183, 246, 35, 95, 227, 144, 190,\n\t\t183, 189, 209, 127, 243, 195, 31, 190, 238, 114, 248, 227,\n\t\t205, 15, 1, 177, 197, 230, 142, 114, 107, 150, 134, 72, 82,\n\t\t225, 119, 19, 98, 31, 1, 202, 242, 71, 152, 151, 144, 43,\n\t\t252, 39, 111, 251, 207, 219, 151, 127, 191, 188, 236, 111,\n\t\t191, 120, 217, 144, 143, 40, 145, 170, 122, 51, 255, 194,\n\t\t31, 241, 54, 86, 181, 66, 62, 232, 251, 165, 186, 165, 212,\n\t\t110, 65, 233, 135, 66, 206, 71, 191, 237, 246, 109, 236, 244,\n\t\t184, 77, 176, 29, 2, 51, 79, 215, 94, 15, 68, 5, 112, 185,\n\t\t167, 241, 186, 154, 217, 147, 237, 76, 226, 218, 166, 144,\n\t\t150, 60, 55, 40, 100, 102, 29, 139, 46, 132, 112, 164, 9,\n\t\t241, 74, 12, 180, 137, 249, 10, 182, 122, 249, 82, 28, 154,\n\t\t105, 11, 237, 30, 36, 17, 46, 55, 139, 191, 150, 116, 228,\n\t\t219, 250, 229, 227, 205, 187, 52, 222, 39, 251, 219, 58, 20,\n\t\t118, 13, 128, 148, 255, 122, 30, 126, 124, 251, 231, 239,\n\t\t223, 62, 241, 37, 207, 95, 117, 178, 7, 97, 184, 85, 116,\n\t\t104, 65, 242, 210, 96, 23, 45, 116, 96, 138, 147, 101, 87,\n\t\t36, 195, 25, 180, 100, 0, 144, 49, 137, 188, 81, 25, 191,\n\t\t182, 3, 173, 60, 53, 21, 42, 95, 162, 133, 177, 2, 81, 206,\n\t\t132, 233, 83, 88, 75, 52, 151, 12, 67, 127, 66, 214, 32, 26,\n\t\t168, 50, 38, 80, 0, 78, 18, 187, 56, 225, 173, 42, 92, 174,\n\t\t166, 239, 112, 57, 119, 214, 99, 4, 226, 175, 14, 53, 38,\n\t\t94, 8, 62, 138, 164, 144, 216, 16, 67, 67, 62, 9, 222, 69,\n\t\t85, 254, 223, 241, 57, 148, 38, 99, 196, 250, 63, 179, 253,\n\t\t8, 238, 60, 203, 240, 220, 116, 172, 40, 197, 99, 159, 42,\n\t\t76, 126, 111, 7, 144, 74, 144, 62, 111, 72, 70, 132, 226,\n\t\t187, 26, 65, 248, 30, 92, 252, 16, 74, 212, 182, 249, 150,\n\t\t15, 129, 31, 148, 104, 118, 68, 33, 13, 70, 2, 51, 183, 224,\n\t\t102, 137, 195, 233, 4, 153, 0, 22, 166, 249, 215, 50, 236,\n\t\t197, 2, 134, 18, 89, 182, 6, 39, 92, 128, 122, 40, 62, 30,\n\t\t56, 173, 20, 69, 233, 40, 197, 127, 69, 50, 73, 10, 127, 144,\n\t\t187, 27, 126, 13, 61, 219, 140, 37, 207, 239, 93, 21, 204,\n\t\t24, 119, 186, 142, 76, 148, 144, 216, 148, 85, 63, 81, 139,\n\t\t229, 47, 39, 26, 174, 104, 32, 243, 146, 195, 67, 65, 4, 4,\n\t\t144, 46, 60, 114, 90, 111, 165, 155, 112, 128, 33, 204, 207,\n\t\t200, 37, 206, 101, 231, 45, 134, 68, 35, 26, 57, 87, 214,\n\t\t18, 201, 251, 97, 160, 107, 176, 143, 67, 187, 215, 211, 89,\n\t\t162, 195, 111, 94, 146, 207, 200, 211, 169, 113, 119, 219,\n\t\t211, 70, 16, 40, 195, 5, 135, 9, 172, 139, 19, 238, 116, 183,\n\t\t200, 251, 112, 33, 255, 100, 231, 255, 235, 31, 175, 45, 241,\n\t\t47, 72, 71, 115, 219, 211, 126, 10, 185, 141, 39, 22, 118,\n\t\t135, 198, 130, 44, 25, 2, 183, 213, 205, 79, 2, 135, 211,\n\t\t138, 166, 13, 94, 70, 95, 114, 114, 164, 71, 185, 138, 218,\n\t\t177, 9, 209, 73, 198, 106, 171, 33, 54, 66, 171, 52, 70, 226,\n\t\t224, 172, 159, 38, 113, 40, 85, 101, 17, 49, 215, 183, 126,\n\t\t89, 41, 214, 45, 203, 107, 65, 160, 62, 235, 173, 198, 165,\n\t\t242, 216, 38, 44, 190, 102, 156, 201, 242, 131, 81, 131, 95,\n\t\t235, 215, 119, 66, 55, 120, 171, 237, 68, 28, 254, 156, 134,\n\t\t172, 109, 133, 197, 163, 26, 238, 141, 160, 136, 226, 65,\n\t\t204, 185, 107, 48, 114, 205, 87, 193, 24, 153, 63, 206, 152,\n\t\t168, 33, 233, 135, 200, 248, 60, 97, 161, 19, 109, 90, 243,\n\t\t251, 248, 175, 222, 173, 211, 98, 74, 150, 147, 187, 104,\n\t\t68, 1, 174, 189, 157, 0, 137, 9, 40, 234, 143, 55, 96, 170,\n\t\t108, 161, 160, 51, 16, 22, 184, 193, 33, 70, 19, 214, 216,\n\t\t96, 19, 118, 20, 227, 50, 25, 252, 145, 148, 159, 155, 83,\n\t\t232, 223, 217, 226, 40, 108, 206, 102, 229, 18, 18, 82, 147,\n\t\t47, 234, 236, 212, 143, 183, 48, 22, 196, 22, 134, 217, 119,\n\t\t26, 134, 218, 146, 93, 4, 200, 96, 179, 167, 242, 246, 66,\n\t\t1, 69, 20, 142, 233, 109, 89, 23, 154, 105, 27, 235, 7, 203,\n\t\t135, 8, 194, 44, 122, 192, 61, 82, 176, 69, 201, 53, 105,\n\t\t49, 141, 89, 50, 208, 166, 135, 66, 153, 169, 26, 77, 70,\n\t\t107, 110, 151, 100, 219, 66, 175, 94, 248, 188, 4, 189, 52,\n\t\t147, 249, 156, 1, 21, 155, 157, 221, 144, 194, 159, 14, 168,\n\t\t227, 162, 106, 6, 121, 9, 125, 123, 230, 18, 18, 73, 75, 79,\n\t\t36, 104, 185, 49, 108, 201, 170, 185, 190, 212, 0, 234, 202,\n\t\t98, 89, 19, 93, 73, 21, 226, 19, 106, 53, 207, 50, 52, 44,\n\t\t95, 186, 105, 97, 89, 90, 122, 77, 1, 79, 63, 103, 75, 28,\n\t\t31, 194, 122, 220, 67, 254, 252, 192, 187, 165, 87, 4, 187,\n\t\t28, 37, 141, 99, 91, 126, 92, 222, 66, 23, 208, 29, 93, 167,\n\t\t74, 188, 238, 189, 197, 8, 182, 221, 112, 99, 146, 37, 178,\n\t\t170, 101, 128, 41, 132, 13, 49, 69, 34, 246, 68, 54, 68, 102,\n\t\t246, 100, 185, 36, 86, 186, 87, 90, 198, 49, 176, 117, 44,\n\t\t161, 36, 200, 42, 190, 8, 243, 96, 182, 57, 30, 162, 114,\n\t\t202, 134, 246, 160, 200, 206, 167, 78, 31, 149, 4, 250, 121,\n\t\t214, 226, 235, 224, 139, 110, 99, 35, 13, 149, 25, 156, 43,\n\t\t60, 116, 220, 118, 131, 63, 157, 112, 149, 24, 230, 50, 19,\n\t\t104, 12, 221, 120, 251, 98, 139, 217, 25, 166, 228, 140, 240,\n\t\t208, 1, 214, 92, 210, 184, 180, 38, 149, 102, 9, 24, 228,\n\t\t120, 135, 188, 212, 223, 107, 24, 215, 26, 233, 172, 183,\n\t\t208, 155, 88, 92, 160, 136, 229, 192, 144, 198, 200, 87, 225,\n\t\t223, 100, 137, 192, 126, 88, 83, 193, 21, 22, 138, 178, 74,\n\t\t133, 109, 104, 192, 170, 196, 127, 148, 175, 98, 130, 154,\n\t\t164, 175, 26, 100, 181, 228, 34, 2, 108, 97, 73, 71, 238,\n\t\t169, 90, 167, 235, 185, 155, 128, 176, 98, 27, 32, 68, 74,\n\t\t128, 82, 44, 143, 178, 198, 172, 245, 61, 211, 234, 234, 74,\n\t\t128, 111, 195, 74, 44, 113, 170, 175, 124, 181, 32, 200, 229,\n\t\t220, 137, 214, 228, 228, 66, 170, 13, 169, 246, 129, 7, 58,\n\t\t126, 35, 177, 114, 93, 238, 156, 79, 49, 80, 163, 91, 77,\n\t\t52, 123, 20, 86, 42, 53, 155, 115, 58, 224, 148, 24, 73, 29,\n\t\t91, 188, 173, 110, 106, 224, 176, 109, 172, 103, 99, 192,\n\t\t254, 233, 187, 217, 57, 102, 34, 141, 133, 23, 177, 29, 3,\n\t\t169, 214, 16, 23, 186, 156, 180, 1, 66, 160, 213, 36, 255,\n\t\t228, 60, 43, 86, 139, 241, 197, 24, 70, 182, 204, 119, 130,\n\t\t52, 210, 199, 210, 101, 163, 236, 31, 235, 78, 17, 137, 162,\n\t\t3, 192, 213, 236, 135, 78, 131, 168, 2, 102, 210, 220, 220,\n\t\t60, 144, 144, 205, 19, 111, 79, 4, 42, 150, 79, 152, 134,\n\t\t157, 254, 82, 137, 149, 102, 20, 243, 161, 93, 201, 91, 41,\n\t\t121, 192, 190, 25, 95, 47, 231, 132, 183, 193, 107, 163, 46,\n\t\t114, 75, 124, 88, 181, 148, 233, 239, 160, 160, 133, 118,\n\t\t115, 76, 188, 158, 254, 188, 98, 110, 151, 102, 60, 171, 198,\n\t\t64, 149, 110, 240, 19, 50, 59, 234, 106, 58, 195, 82, 195,\n\t\t138, 136, 55, 179, 111, 137, 217, 151, 211, 4, 46, 117, 31,\n\t\t54, 60, 117, 231, 48, 221, 214, 200, 158, 230, 16, 150, 154,\n\t\t95, 128, 180, 106, 144, 221, 82, 204, 16, 87, 207, 2, 173,\n\t\t81, 71, 88, 28, 44, 153, 147, 132, 1, 238, 83, 210, 5, 60,\n\t\t146, 26, 89, 212, 236, 62, 34, 118, 73, 114, 122, 171, 85,\n\t\t11, 157, 159, 111, 187, 183, 104, 153, 252, 234, 198, 150,\n\t\t62, 84, 120, 46, 92, 221, 252, 224, 17, 58, 22, 151, 51, 149,\n\t\t249, 229, 156, 21, 199, 126, 2, 64, 144, 21, 74, 171, 146,\n\t\t13, 112, 188, 210, 104, 160, 170, 113, 10, 120, 169, 170,\n\t\t40, 146, 106, 109, 174, 35, 70, 234, 161, 237, 173, 152, 1,\n\t\t59, 84, 232, 169, 212, 248, 35, 218, 17, 11, 240, 72, 87,\n\t\t5, 42, 34, 167, 246, 70, 126, 168, 185, 10, 20, 44, 80, 54,\n\t\t58, 60, 84, 62, 4, 202, 230, 134, 137, 138, 224, 106, 62,\n\t\t40, 130, 112, 194, 154, 2, 171, 166, 60, 207, 151, 101, 56,\n\t\t172, 103, 140, 80, 182, 129, 253, 32, 120, 208, 200, 84, 127,\n\t\t254, 244, 251, 187, 165, 214, 119, 202, 139, 93, 104, 90,\n\t\t164, 228, 60, 62, 245, 163, 41, 49, 185, 158, 214, 103, 180,\n\t\t188, 106, 197, 123, 54, 214, 119, 138, 189, 232, 143, 137,\n\t\t246, 27, 21, 90, 247, 114, 54, 44, 54, 91, 183, 240, 208,\n\t\t56, 41, 192, 254, 180, 158, 168, 208, 135, 211, 106, 110,\n\t\t28, 133, 175, 141, 78, 61, 178, 173, 180, 33, 199, 230, 58,\n\t\t92, 81, 120, 184, 242, 166, 215, 99, 8, 195, 90, 97, 134,\n\t\t89, 90, 225, 42, 112, 3, 179, 181, 50, 195, 8, 120, 20, 93,\n\t\t149, 107, 3, 236, 236, 148, 102, 235, 180, 22, 114, 209, 182,\n\t\t224, 94, 92, 224, 145, 150, 150, 165, 217, 230, 206, 243,\n\t\t177, 209, 79, 51, 4, 103, 70, 136, 41, 27, 22, 147, 118, 44,\n\t\t197, 147, 244, 18, 6, 12, 198, 128, 189, 185, 56, 76, 17,\n\t\t251, 122, 38, 51, 11, 45, 86, 188, 128, 195, 65, 139, 154,\n\t\t142, 85, 33, 119, 121, 96, 132, 180, 209, 170, 92, 237, 250,\n\t\t60, 180, 245, 32, 72, 87, 220, 21, 22, 253, 51, 37, 133, 61,\n\t\t70, 13, 111, 210, 226, 147, 118, 85, 170, 66, 42, 57, 78,\n\t\t5, 23, 33, 150, 65, 50, 191, 17, 134, 4, 173, 54, 59, 128,\n\t\t231, 92, 121, 94, 39, 161, 26, 43, 141, 247, 228, 104, 136,\n\t\t176, 110, 101, 49, 164, 57, 39, 121, 182, 6, 225, 246, 141,\n\t\t43, 11, 207, 49, 163, 30, 11, 132, 144, 177, 51, 145, 94,\n\t\t222, 142, 80, 245, 186, 73, 43, 49, 135, 143, 188, 144, 214,\n\t\t40, 67, 109, 78, 16, 117, 82, 124, 80, 14, 161, 158, 127,\n\t\t236, 43, 249, 123, 98, 229, 78, 116, 249, 168, 91, 26, 118,\n\t\t246, 154, 198, 52, 43, 157, 17, 164, 96, 225, 1, 218, 74,\n\t\t17, 229, 104, 75, 163, 96, 209, 13, 48, 35, 16, 152, 42, 171,\n\t\t204, 210, 217, 62, 103, 237, 22, 36, 233, 244, 225, 116, 89,\n\t\t204, 172, 155, 206, 169, 53, 165, 101, 235, 91, 163, 205,\n\t\t75, 233, 76, 94, 187, 102, 226, 92, 173, 90, 124, 111, 28,\n\t\t16, 152, 218, 141, 218, 115, 198, 204, 232, 112, 217, 190,\n\t\t100, 52, 153, 155, 243, 52, 218, 3, 125, 58, 10, 3, 10, 173,\n\t\t142, 217, 96, 116, 130, 209, 81, 49, 208, 69, 226, 230, 9,\n\t\t155, 159, 39, 35, 150, 155, 142, 250, 10, 167, 99, 197, 149,\n\t\t156, 42, 41, 77, 140, 61, 28, 254, 180, 26, 189, 181, 212,\n\t\t64, 32, 45, 184, 196, 88, 85, 89, 47, 231, 46, 130, 139, 187,\n\t\t38, 216, 198, 103, 168, 87, 187, 120, 130, 56, 80, 88, 215,\n\t\t9, 251, 146, 5, 27, 148, 173, 90, 86, 229, 213, 254, 58, 45,\n\t\t144, 182, 85, 115, 34, 160, 69, 189, 24, 37, 90, 116, 66,\n\t\t37, 178, 246, 14, 50, 196, 146, 44, 22, 39, 122, 148, 29,\n\t\t141, 188, 93, 120, 62, 139, 86, 97, 121, 4, 38, 208, 219,\n\t\t153, 81, 168, 70, 157, 124, 189, 124, 188, 145, 115, 54, 185,\n\t\t32, 69, 162, 9, 187, 41, 210, 144, 98, 213, 40, 45, 33, 51,\n\t\t178, 78, 62, 166, 147, 158, 148, 185, 187, 3, 152, 90, 141,\n\t\t31, 151, 145, 34, 115, 229, 172, 204, 168, 138, 49, 79, 245,\n\t\t42, 187, 212, 204, 86, 172, 254, 66, 93, 104, 205, 125, 44,\n\t\t215, 227, 226, 228, 163, 89, 13, 129, 177, 191, 6, 138, 99,\n\t\t202, 61, 11, 136, 120, 196, 223, 141, 45, 130, 91, 55, 178,\n\t\t83, 135, 197, 231, 116, 189, 32, 31, 41, 198, 185, 2, 217,\n\t\t130, 238, 181, 247, 171, 211, 254, 154, 139, 121, 207, 231,\n\t\t178, 233, 229, 110, 182, 224, 162, 25, 128, 88, 154, 76, 229,\n\t\t116, 4, 33, 98, 9, 199, 162, 115, 173, 223, 17, 212, 142,\n\t\t136, 39, 42, 185, 219, 129, 170, 51, 165, 191, 165, 119, 139,\n\t\t37, 77, 19, 73, 212, 96, 93, 11, 32, 166, 103, 29, 166, 210,\n\t\t232, 51, 10, 51, 237, 28, 90, 45, 38, 224, 49, 38, 243, 102,\n\t\t212, 25, 226, 5, 218, 6, 216, 37, 109, 147, 166, 181, 38,\n\t\t222, 111, 122, 146, 32, 27, 237, 30, 211, 216, 64, 144, 42,\n\t\t144, 139, 184, 185, 149, 152, 202, 201, 85, 183, 29, 118,\n\t\t221, 199, 229, 141, 60, 76, 94, 168, 33, 8, 102, 63, 177,\n\t\t211, 141, 84, 197, 43, 23, 145, 108, 214, 69, 178, 76, 219,\n\t\t159, 81, 52, 150, 115, 76, 93, 94, 209, 118, 230, 145, 249,\n\t\t215, 197, 54, 227, 227, 150, 69, 225, 1, 245, 83, 25, 112,\n\t\t54, 161, 216, 164, 229, 56, 179, 210, 115, 221, 186, 144,\n\t\t4, 108, 249, 157, 22, 119, 177, 69, 157, 109, 21, 117, 230,\n\t\t164, 234, 82, 133, 154, 183, 29, 225, 82, 147, 69, 182, 173,\n\t\t43, 93, 32, 222, 207, 176, 103, 244, 192, 213, 139, 233, 131,\n\t\t95, 153, 164, 51, 51, 206, 47, 32, 139, 0, 3, 18, 211, 65,\n\t\t23, 191, 159, 77, 91, 250, 32, 124, 142, 50, 55, 147, 204,\n\t\t81, 160, 42, 45, 136, 216, 240, 37, 119, 123, 75, 63, 195,\n\t\t68, 84, 40, 194, 99, 65, 150, 14, 25, 55, 63, 241, 122, 134,\n\t\t115, 172, 52, 152, 147, 147, 90, 135, 95, 252, 116, 9, 224,\n\t\t98, 19, 26, 46, 31, 198, 209, 102, 149, 114, 179, 30, 11,\n\t\t120, 114, 71, 142, 0, 94, 8, 87, 14, 125, 84, 204, 36, 139,\n\t\t102, 168, 137, 25, 1, 96, 97, 64, 51, 26, 108, 198, 161, 249,\n\t\t61, 10, 48, 144, 219, 172, 5, 44, 153, 91, 156, 103, 36, 23,\n\t\t42, 251, 6, 252, 24, 125, 231, 115, 193, 170, 162, 55, 190,\n\t\t251, 37, 203, 107, 50, 21, 187, 147, 139, 221, 136, 214, 108,\n\t\t71, 63, 146, 23, 177, 193, 72, 131, 243, 212, 195, 82, 251,\n\t\t192, 220, 24, 27, 154, 104, 180, 122, 191, 52, 140, 50, 102,\n\t\t192, 4, 99, 138, 15, 190, 0, 53, 170, 180, 153, 62, 185, 5,\n\t\t240, 2, 79, 155, 215, 165, 46, 167, 62, 214, 124, 61, 224,\n\t\t238, 208, 14, 145, 78, 123, 141, 6, 141, 105, 100, 3, 122,\n\t\t96, 188, 121, 44, 36, 19, 194, 58, 10, 66, 128, 85, 208, 87,\n\t\t171, 75, 134, 108, 94, 6, 177, 105, 30, 156, 41, 18, 112,\n\t\t64, 224, 128, 178, 17, 235, 230, 146, 32, 47, 221, 113, 56,\n\t\t8, 86, 20, 37, 160, 224, 44, 127, 194, 181, 178, 53, 52, 19,\n\t\t222, 169, 176, 68, 42, 170, 65, 178, 86, 232, 173, 159, 232,\n\t\t90, 175, 24, 138, 207, 199, 110, 59, 101, 38, 11, 241, 110,\n\t\t81, 33, 15, 144, 166, 178, 208, 3, 134, 23, 81, 253, 8, 243,\n\t\t59, 163, 156, 41, 21, 169, 234, 11, 175, 61, 17, 20, 19, 36,\n\t\t146, 179, 38, 28, 114, 109, 168, 133, 132, 196, 249, 102,\n\t\t141, 29, 44, 131, 193, 129, 211, 124, 36, 39, 117, 187, 44,\n\t\t208, 132, 22, 90, 138, 102, 112, 58, 251, 111, 132, 117, 223,\n\t\t58, 232, 204, 89, 176, 86, 71, 60, 142, 81, 113, 51, 124,\n\t\t159, 163, 60, 148, 46, 213, 25, 132, 61, 178, 12, 16, 74,\n\t\t67, 47, 55, 66, 221, 83, 124, 191, 175, 176, 44, 222, 202,\n\t\t47, 19, 151, 41, 1, 201, 218, 42, 134, 68, 90, 91, 37, 1,\n\t\t179, 167, 54, 189, 117, 11, 230, 116, 195, 188, 42, 178, 108,\n\t\t52, 25, 103, 49, 15, 103, 222, 181, 66, 124, 178, 30, 21,\n\t\t203, 240, 156, 16, 236, 126, 122, 45, 93, 189, 71, 253, 21,\n\t\t181, 149, 14, 245, 101, 66, 78, 89, 122, 206, 58, 224, 2,\n\t\t253, 38, 156, 192, 77, 228, 142, 71, 176, 44, 42, 76, 90,\n\t\t43, 143, 232, 153, 51, 19, 154, 204, 168, 204, 18, 71, 95,\n\t\t125, 118, 217, 244, 211, 84, 148, 136, 74, 84, 233, 10, 27,\n\t\t42, 197, 115, 161, 120, 239, 115, 49, 232, 144, 166, 244,\n\t\t147, 35, 151, 115, 145, 28, 240, 126, 117, 76, 204, 148, 211,\n\t\t205, 79, 161, 247, 0, 120, 57, 157, 115, 45, 130, 163, 103,\n\t\t206, 108, 173, 156, 10, 106, 190, 41, 151, 211, 220, 113,\n\t\t248, 208, 230, 166, 241, 79, 71, 32, 219, 165, 105, 133, 177,\n\t\t78, 203, 16, 4, 141, 174, 235, 140, 72, 107, 148, 21, 180,\n\t\t79, 220, 18, 201, 235, 66, 170, 225, 214, 31, 151, 183, 8,\n\t\t221, 147, 162, 249, 193, 168, 165, 162, 167, 172, 201, 51,\n\t\t196, 3, 179, 109, 99, 9, 244, 39, 181, 79, 168, 42, 97, 33,\n\t\t166, 105, 203, 224, 213, 77, 1, 232, 3, 156, 140, 240, 155,\n\t\t34, 148, 43, 208, 245, 28, 102, 155, 236, 115, 40, 38, 140,\n\t\t69, 17, 24, 24, 47, 155, 92, 99, 226, 160, 169, 219, 199,\n\t\t62, 156, 245, 35, 59, 131, 129, 180, 119, 178, 126, 255, 120,\n\t\t107, 152, 1, 167, 161, 225, 203, 169, 220, 210, 106, 46, 231,\n\t\t41, 31, 214, 90, 122, 121, 75, 157, 4, 139, 13, 81, 208, 219,\n\t\t206, 34, 128, 12, 137, 246, 204, 107, 116, 72, 10, 104, 248,\n\t\t132, 139, 175, 209, 93, 144, 215, 255, 120, 243, 61, 24, 59,\n\t\t211, 89, 96, 29, 153, 216, 168, 76, 24, 160, 137, 161, 49,\n\t\t251, 142, 156, 8, 215, 187, 230, 1, 33, 45, 25, 144, 154,\n\t\t56, 93, 250, 104, 178, 151, 101, 240, 205, 114, 87, 152, 7,\n\t\t76, 43, 50, 34, 250, 93, 123, 54, 154, 243, 167, 9, 17, 167,\n\t\t50, 179, 43, 161, 35, 163, 15, 204, 163, 176, 150, 114, 70,\n\t\t163, 26, 23, 220, 12, 220, 232, 169, 211, 208, 224, 160, 89,\n\t\t210, 207, 163, 64, 62, 176, 151, 172, 224, 250, 124, 243,\n\t\t29, 175, 254, 241, 22, 170, 118, 249, 170, 244, 189, 156,\n\t\t140, 15, 231, 25, 14, 213, 106, 234, 178, 182, 54, 228, 97,\n\t\t145, 46, 232, 183, 51, 16, 54, 119, 27, 44, 84, 157, 162,\n\t\t83, 113, 61, 218, 84, 103, 187, 181, 157, 114, 238, 249, 30,\n\t\t204, 244, 217, 142, 162, 129, 5, 247, 143, 196, 242, 137,\n\t\t124, 100, 146, 3, 226, 138, 3, 235, 197, 36, 127, 223, 173,\n\t\t4, 173, 218, 159, 50, 188, 57, 90, 98, 102, 73, 225, 68, 12,\n\t\t182, 84, 194, 154, 32, 86, 156, 61, 3, 43, 245, 18, 236, 228,\n\t\t15, 228, 58, 205, 38, 169, 205, 2, 152, 89, 215, 162, 12,\n\t\t69, 52, 29, 18, 28, 76, 47, 80, 15, 106, 230, 116, 204, 138,\n\t\t239, 210, 76, 84, 220, 17, 197, 228, 129, 251, 64, 147, 196,\n\t\t118, 182, 245, 9, 60, 30, 184, 156, 157, 235, 166, 204, 2,\n\t\t8, 35, 43, 100, 50, 19, 89, 132, 118, 60, 166, 68, 52, 11,\n\t\t6, 179, 15, 231, 50, 225, 176, 57, 22, 238, 89, 16, 199, 216,\n\t\t237, 113, 243, 171, 217, 160, 202, 140, 46, 175, 149, 215,\n\t\t150, 248, 165, 10, 112, 241, 74, 85, 61, 152, 26, 140, 231,\n\t\t92, 76, 92, 139, 156, 80, 139, 77, 76, 83, 155, 246, 161,\n\t\t46, 179, 197, 135, 70, 112, 115, 241, 230, 97, 124, 235, 152,\n\t\t159, 134, 118, 52, 251, 58, 109, 137, 38, 83, 64, 222, 244,\n\t\t187, 198, 17, 247, 233, 190, 89, 184, 117, 198, 86, 189, 100,\n\t\t208, 164, 200, 69, 74, 97, 164, 16, 3, 17, 47, 86, 167, 156,\n\t\t79, 72, 134, 150, 4, 55, 193, 7, 133, 175, 166, 196, 133,\n\t\t93, 50, 150, 174, 123, 208, 170, 22, 100, 212, 239, 87, 164,\n\t\t176, 127, 93, 41, 246, 175, 219, 63, 95, 10, 197, 94, 57,\n\t\t201, 114, 49, 238, 148, 126, 180, 45, 107, 128, 225, 54, 91,\n\t\t189, 16, 217, 189, 77, 125, 220, 156, 233, 218, 89, 36, 99,\n\t\t17, 126, 18, 117, 22, 235, 192, 212, 35, 239, 118, 132, 43,\n\t\t138, 223, 113, 194, 205, 98, 221, 160, 229, 186, 25, 70, 3,\n\t\t74, 136, 206, 228, 231, 98, 212, 108, 94, 40, 51, 133, 229,\n\t\t75, 62, 202, 230, 62, 222, 136, 136, 20, 189, 59, 194, 229,\n\t\t140, 86, 121, 94, 55, 223, 165, 23, 146, 245, 238, 33, 180,\n\t\t35, 218, 246, 184, 205, 206, 29, 41, 144, 28, 130, 61, 61,\n\t\t46, 141, 181, 68, 195, 49, 198, 110, 5, 109, 9, 234, 237,\n\t\t25, 238, 107, 95, 186, 136, 173, 245, 238, 17, 150, 56, 56,\n\t\t118, 115, 61, 59, 156, 220, 76, 222, 202, 46, 164, 159, 157,\n\t\t0, 110, 23, 11, 174, 50, 234, 198, 38, 142, 50, 161, 161,\n\t\t72, 188, 171, 50, 15, 231, 217, 12, 103, 74, 32, 143, 120,\n\t\t196, 2, 133, 185, 226, 117, 71, 164, 35, 53, 129, 12, 91,\n\t\t125, 54, 53, 48, 67, 252, 248, 157, 60, 205, 219, 180, 185,\n\t\t240, 22, 38, 152, 5, 162, 219, 109, 43, 216, 54, 77, 70, 115,\n\t\t166, 245, 137, 68, 61, 227, 217, 108, 103, 155, 158, 173,\n\t\t199, 44, 36, 216, 45, 205, 140, 214, 11, 34, 127, 218, 203,\n\t\t44, 70, 190, 154, 65, 90, 193, 60, 93, 191, 233, 34, 206,\n\t\t92, 209, 116, 17, 155, 157, 87, 80, 55, 25, 103, 170, 134,\n\t\t14, 110, 157, 43, 143, 84, 176, 146, 25, 219, 167, 159, 59,\n\t\t209, 143, 248, 60, 27, 81, 130, 230, 140, 51, 236, 102, 154,\n\t\t72, 197, 131, 170, 214, 211, 18, 82, 8, 127, 52, 50, 39, 91,\n\t\t171, 117, 84, 33, 123, 206, 140, 130, 30, 214, 179, 88, 90,\n\t\t146, 52, 102, 147, 207, 5, 201, 147, 125, 76, 56, 48, 83,\n\t\t122, 156, 88, 1, 130, 230, 0, 205, 8, 251, 110, 17, 101, 249,\n\t\t62, 93, 36, 183, 244, 151, 208, 34, 93, 82, 107, 69, 11, 46,\n\t\t196, 100, 17, 67, 198, 74, 190, 76, 104, 192, 156, 32, 144,\n\t\t75, 33, 183, 100, 216, 22, 166, 12, 234, 25, 126, 40, 182,\n\t\t143, 243, 162, 20, 252, 243, 159, 169, 132, 56, 224, 92, 188,\n\t\t76, 136, 241, 145, 155, 229, 4, 112, 92, 53, 28, 35, 173,\n\t\t204, 192, 112, 184, 88, 190, 106, 117, 27, 20, 251, 11, 78,\n\t\t44, 93, 128, 176, 40, 128, 233, 18, 227, 151, 139, 99, 229,\n\t\t167, 234, 196, 54, 101, 64, 74, 42, 242, 224, 38, 110, 179,\n\t\t199, 134, 199, 172, 212, 16, 91, 245, 124, 160, 60, 200, 219,\n\t\t36, 221, 224, 180, 76, 253, 88, 17, 176, 130, 170, 126, 112,\n\t\t206, 184, 141, 202, 52, 27, 233, 29, 235, 207, 179, 214, 63,\n\t\t239, 196, 149, 156, 144, 77, 62, 174, 100, 21, 38, 126, 20,\n\t\t20, 100, 206, 17, 214, 222, 131, 213, 233, 44, 19, 111, 158,\n\t\t220, 120, 137, 126, 90, 165, 132, 238, 74, 196, 138, 101,\n\t\t241, 176, 54, 72, 27, 56, 172, 82, 141, 147, 201, 48, 130,\n\t\t5, 137, 205, 201, 174, 52, 16, 16, 66, 100, 192, 141, 125,\n\t\t184, 180, 92, 42, 107, 194, 102, 244, 152, 198, 76, 89, 100,\n\t\t80, 93, 2, 180, 231, 66, 0, 143, 241, 183, 251, 91, 200, 216,\n\t\t242, 151, 158, 187, 47, 154, 181, 71, 147, 112, 117, 137,\n\t\t185, 228, 225, 240, 235, 126, 63, 177, 92, 228, 146, 73, 101,\n\t\t166, 94, 214, 44, 92, 28, 32, 31, 179, 51, 91, 180, 152, 228,\n\t\t81, 191, 65, 21, 244, 101, 50, 42, 179, 106, 209, 118, 136,\n\t\t21, 85, 4, 183, 150, 40, 80, 171, 173, 65, 159, 229, 88, 101,\n\t\t113, 22, 227, 157, 19, 250, 211, 194, 47, 92, 113, 197, 244,\n\t\t217, 172, 207, 61, 227, 49, 67, 21, 172, 171, 57, 44, 74,\n\t\t66, 49, 247, 28, 183, 91, 162, 28, 54, 245, 56, 50, 121, 190,\n\t\t204, 34, 182, 178, 17, 77, 116, 26, 252, 91, 86, 196, 77,\n\t\t80, 39, 79, 53, 50, 85, 70, 176, 158, 72, 221, 25, 243, 8,\n\t\t83, 54, 110, 234, 172, 149, 72, 139, 186, 149, 27, 180, 62,\n\t\t100, 202, 45, 241, 199, 125, 20, 116, 206, 176, 104, 172,\n\t\t43, 147, 73, 34, 11, 185, 83, 169, 166, 49, 72, 67, 241, 48,\n\t\t56, 179, 12, 17, 210, 29, 44, 43, 79, 167, 238, 39, 177, 207,\n\t\t44, 2, 32, 215, 101, 69, 121, 8, 102, 229, 91, 157, 156, 252,\n\t\t184, 75, 190, 93, 0, 75, 178, 128, 146, 70, 219, 193, 121,\n\t\t171, 156, 88, 36, 246, 88, 217, 75, 176, 24, 2, 176, 30, 22,\n\t\t52, 135, 173, 156, 65, 119, 215, 81, 160, 162, 99, 84, 102,\n\t\t80, 7, 6, 152, 62, 221, 101, 150, 144, 90, 126, 47, 33, 131,\n\t\t50, 235, 220, 121, 36, 40, 72, 164, 6, 67, 196, 138, 243,\n\t\t168, 218, 66, 178, 243, 36, 4, 17, 134, 7, 157, 6, 172, 100,\n\t\t90, 40, 188, 171, 114, 38, 209, 163, 237, 104, 219, 249, 127,\n\t\t168, 251, 215, 108, 199, 141, 99, 91, 20, 254, 207, 86, 160,\n\t\t3, 192, 200, 247, 163, 17, 108, 68, 41, 181, 108, 214, 49,\n\t\t44, 233, 171, 37, 113, 31, 179, 245, 223, 200, 136, 152, 17,\n\t\t201, 197, 210, 42, 249, 92, 223, 125, 246, 29, 182, 106, 17,\n\t\t32, 0, 2, 137, 124, 196, 99, 198, 156, 139, 138, 58, 62, 104,\n\t\t229, 144, 135, 190, 125, 211, 62, 86, 197, 212, 76, 236, 164,\n\t\t32, 191, 29, 62, 28, 168, 165, 40, 234, 244, 118, 9, 5, 60,\n\t\t49, 202, 35, 32, 129, 153, 212, 32, 2, 28, 144, 2, 223, 160,\n\t\t21, 211, 97, 34, 240, 156, 64, 172, 12, 38, 229, 129, 142,\n\t\t94, 200, 231, 36, 181, 97, 120, 91, 208, 13, 4, 43, 143, 203,\n\t\t148, 22, 130, 82, 220, 82, 124, 95, 66, 246, 58, 41, 172,\n\t\t148, 209, 150, 254, 208, 225, 41, 244, 56, 23, 56, 244, 58,\n\t\t144, 213, 161, 215, 21, 27, 107, 191, 151, 228, 104, 147,\n\t\t103, 67, 140, 90, 172, 144, 77, 137, 113, 51, 215, 26, 96,\n\t\t10, 196, 94, 238, 228, 146, 4, 0, 61, 15, 144, 202, 222, 49,\n\t\t230, 213, 187, 45, 42, 211, 83, 54, 39, 84, 134, 38, 143,\n\t\t127, 56, 244, 238, 180, 58, 128, 252, 172, 223, 196, 241,\n\t\t21, 206, 235, 114, 238, 212, 23, 120, 196, 81, 86, 85, 49,\n\t\t171, 156, 197, 232, 159, 246, 60, 25, 97, 10, 152, 48, 119,\n\t\t152, 119, 40, 139, 183, 188, 78, 140, 18, 157, 191, 60, 240,\n\t\t229, 234, 225, 242, 237, 43, 252, 70, 115, 135, 98, 157, 72,\n\t\t112, 212, 7, 64, 28, 7, 188, 41, 80, 26, 35, 175, 7, 23, 70,\n\t\t250, 123, 0, 92, 177, 232, 155, 225, 137, 75, 44, 138, 116,\n\t\t24, 241, 53, 196, 212, 36, 241, 77, 215, 81, 69, 123, 121,\n\t\t55, 229, 121, 123, 176, 166, 116, 198, 4, 98, 86, 112, 55,\n\t\t203, 136, 48, 176, 214, 58, 237, 67, 35, 163, 239, 239, 101,\n\t\t145, 229, 132, 134, 237, 18, 48, 162, 0, 1, 172, 128, 203,\n\t\t48, 214, 90, 140, 104, 205, 172, 68, 197, 117, 59, 74, 107,\n\t\t5, 142, 228, 165, 249, 146, 163, 111, 34, 127, 73, 203, 185,\n\t\t39, 6, 58, 253, 232, 134, 211, 240, 25, 166, 120, 201, 162,\n\t\t121, 161, 90, 148, 237, 209, 151, 53, 125, 101, 31, 41, 250,\n\t\t178, 121, 205, 57, 17, 144, 20, 150, 196, 19, 153, 223, 50,\n\t\t77, 150, 15, 113, 107, 141, 80, 235, 178, 221, 117, 42, 155,\n\t\t203, 138, 133, 204, 208, 65, 116, 52, 192, 131, 13, 50, 28,\n\t\t232, 253, 156, 207, 178, 103, 242, 145, 196, 181, 101, 226,\n\t\t166, 18, 104, 239, 140, 104, 59, 2, 68, 130, 190, 88, 80,\n\t\t55, 142, 248, 152, 238, 16, 30, 173, 199, 213, 87, 170, 149,\n\t\t246, 233, 240, 68, 197, 222, 62, 250, 120, 210, 165, 212,\n\t\t29, 58, 191, 163, 214, 200, 124, 153, 138, 246, 88, 204, 86,\n\t\t45, 93, 83, 179, 85, 107, 38, 204, 2, 54, 33, 17, 164, 247,\n\t\t229, 96, 183, 216, 69, 110, 91, 148, 73, 116, 167, 44, 234,\n\t\t231, 178, 84, 67, 150, 198, 204, 11, 100, 182, 227, 226, 243,\n\t\t196, 13, 229, 31, 99, 145, 77, 130, 81, 163, 30, 15, 66, 106,\n\t\t17, 190, 25, 22, 7, 227, 184, 23, 228, 244, 194, 72, 221,\n\t\t184, 255, 211, 25, 159, 134, 169, 110, 95, 198, 63, 222, 190,\n\t\t237, 191, 188, 253, 215, 251, 254, 254, 255, 251, 227, 203,\n\t\t119, 138, 154, 85, 12, 62, 57, 71, 98, 240, 129, 201, 160,\n\t\t19, 23, 129, 103, 250, 144, 218, 125, 143, 57, 72, 105, 115,\n\t\t150, 111, 118, 254, 106, 254, 119, 163, 175, 119, 57, 119,\n\t\t238, 212, 35, 82, 187, 243, 169, 129, 185, 73, 249, 146, 244,\n\t\t255, 91, 204, 115, 240, 137, 97, 21, 124, 59, 218, 109, 165,\n\t\t137, 177, 183, 224, 129, 228, 127, 181, 41, 245, 3, 91, 186,\n\t\t172, 44, 139, 227, 87, 227, 239, 59, 102, 241, 227, 114, 13,\n\t\t196, 144, 235, 75, 58, 250, 217, 64, 1, 153, 243, 225, 111,\n\t\t123, 132, 71, 166, 69, 91, 222, 209, 164, 144, 96, 252, 119,\n\t\t132, 234, 139, 213, 30, 50, 115, 171, 56, 97, 1, 38, 142,\n\t\t76, 142, 26, 63, 206, 226, 37, 209, 241, 55, 16, 71, 157,\n\t\t181, 227, 151, 114, 60, 226, 157, 20, 227, 234, 77, 18, 221,\n\t\t119, 239, 126, 84, 193, 122, 251, 250, 237, 109, 255, 178,\n\t\t223, 222, 206, 223, 94, 133, 255, 127, 114, 127, 206, 34,\n\t\t144, 82, 60, 252, 150, 82, 27, 10, 162, 138, 18, 3, 224, 234,\n\t\t206, 34, 203, 93, 145, 252, 200, 94, 217, 52, 188, 239, 177,\n\t\t82, 41, 89, 4, 70, 128, 83, 36, 146, 81, 64, 221, 91, 1, 137,\n\t\t175, 208, 145, 206, 71, 38, 107, 114, 0, 41, 189, 225, 247,\n\t\t184, 32, 168, 68, 251, 29, 206, 56, 241, 228, 123, 143, 117,\n\t\t90, 139, 40, 87, 195, 221, 226, 250, 72, 97, 224, 44, 185,\n\t\t203, 219, 60, 203, 247, 206, 204, 190, 126, 75, 72, 72, 193,\n\t\t129, 117, 134, 61, 101, 191, 117, 115, 248, 52, 180, 240,\n\t\t78, 129, 25, 228, 147, 88, 170, 87, 114, 82, 18, 16, 36, 206,\n\t\t117, 190, 20, 64, 21, 152, 130, 19, 186, 131, 114, 153, 134,\n\t\t74, 4, 137, 158, 216, 61, 1, 103, 214, 66, 30, 233, 103, 65,\n\t\t186, 89, 84, 180, 44, 34, 214, 193, 45, 176, 55, 84, 180,\n\t\t236, 30, 31, 167, 9, 35, 67, 210, 216, 185, 137, 81, 153,\n\t\t13, 217, 233, 226, 34, 67, 194, 161, 214, 45, 88, 125, 149,\n\t\t57, 192, 228, 92, 230, 5, 29, 237, 105, 141, 110, 28, 31,\n\t\t211, 84, 131, 216, 108, 74, 134, 12, 143, 95, 119, 72, 248,\n\t\t222, 81, 26, 137, 110, 199, 230, 250, 172, 246, 20, 69, 157,\n\t\t170, 28, 104, 169, 122, 252, 180, 134, 58, 81, 172, 41, 123,\n\t\t110, 187, 119, 132, 133, 34, 230, 87, 101, 180, 167, 99, 212,\n\t\t178, 227, 45, 232, 249, 192, 108, 165, 130, 64, 173, 102,\n\t\t218, 253, 102, 55, 16, 153, 104, 203, 138, 178, 144, 147,\n\t\t151, 135, 194, 51, 85, 177, 101, 130, 26, 93, 250, 46, 208,\n\t\t141, 62, 54, 245, 190, 180, 53, 189, 138, 15, 175, 106, 121,\n\t\t83, 97, 236, 153, 209, 72, 13, 121, 83, 13, 104, 238, 250,\n\t\t178, 61, 64, 106, 176, 5, 130, 22, 2, 136, 13, 168, 59, 164,\n\t\t43, 221, 119, 244, 189, 189, 9, 179, 236, 74, 181, 229, 211,\n\t\t209, 173, 179, 238, 212, 91, 199, 110, 193, 7, 45, 23, 247,\n\t\t98, 35, 75, 60, 209, 107, 202, 6, 51, 168, 14, 179, 229, 106,\n\t\t58, 208, 180, 47, 69, 5, 145, 32, 243, 70, 229, 111, 210,\n\t\t4, 17, 60, 73, 84, 191, 69, 124, 1, 210, 141, 47, 99, 206,\n\t\t245, 102, 69, 6, 110, 102, 105, 45, 98, 62, 162, 51, 181,\n\t\t24, 3, 36, 228, 250, 4, 200, 34, 91, 215, 0, 53, 53, 202,\n\t\t97, 49, 77, 181, 104, 159, 189, 143, 70, 119, 160, 176, 82,\n\t\t212, 254, 199, 167, 222, 118, 243, 12, 5, 29, 85, 221, 4,\n\t\t28, 193, 37, 221, 31, 170, 213, 153, 87, 143, 67, 72, 29,\n\t\t197, 185, 89, 27, 207, 19, 242, 95, 61, 201, 23, 76, 141,\n\t\t244, 42, 36, 199, 245, 185, 150, 225, 170, 1, 75, 217, 211,\n\t\t237, 37, 161, 229, 162, 102, 222, 193, 62, 102, 205, 30, 190,\n\t\t243, 186, 118, 123, 95, 251, 15, 76, 147, 95, 127, 255, 95,\n\t\t95, 94, 151, 40, 175, 230, 8, 245, 189, 64, 212, 39, 196,\n\t\t222, 21, 141, 216, 209, 207, 14, 102, 230, 180, 111, 238,\n\t\t232, 195, 0, 178, 25, 25, 195, 162, 121, 179, 224, 142, 200,\n\t\t124, 71, 20, 119, 152, 107, 52, 49, 223, 85, 241, 111, 18,\n\t\t138, 50, 157, 59, 184, 70, 159, 147, 202, 228, 39, 102, 132,\n\t\t124, 186, 138, 18, 88, 38, 148, 47, 60, 59, 176, 126, 207,\n\t\t128, 78, 197, 48, 26, 41, 98, 77, 107, 106, 219, 135, 126,\n\t\t76, 39, 179, 64, 215, 198, 172, 212, 122, 48, 43, 243, 188,\n\t\t215, 116, 144, 228, 13, 131, 77, 98, 222, 42, 152, 209, 0,\n\t\t240, 76, 253, 104, 91, 237, 91, 112, 20, 47, 36, 214, 220,\n\t\t176, 181, 170, 107, 7, 175, 41, 189, 30, 245, 121, 235, 61,\n\t\t8, 191, 252, 30, 250, 22, 122, 52, 182, 160, 207, 137, 138,\n\t\t110, 127, 252, 244, 254, 219, 175, 47, 68, 25, 63, 133, 63,\n\t\t55, 47, 66, 169, 71, 34, 202, 237, 196, 156, 76, 1, 20, 49,\n\t\t198, 235, 141, 252, 4, 39, 116, 108, 168, 126, 40, 169, 31,\n\t\t59, 96, 252, 12, 194, 227, 165, 10, 147, 23, 118, 100, 37,\n\t\t183, 65, 221, 35, 74, 240, 215, 35, 150, 191, 35, 112, 144,\n\t\t119, 90, 2, 168, 10, 192, 85, 117, 7, 142, 93, 210, 44, 22,\n\t\t35, 81, 41, 33, 155, 248, 46, 35, 35, 139, 142, 112, 19, 209,\n\t\t68, 17, 75, 216, 209, 55, 63, 173, 169, 217, 19, 210, 209,\n\t\t148, 229, 23, 158, 125, 16, 162, 135, 188, 37, 188, 106, 54,\n\t\t57, 238, 5, 108, 132, 132, 32, 213, 148, 59, 98, 164, 40,\n\t\t106, 214, 29, 208, 223, 112, 40, 13, 86, 173, 142, 4, 238,\n\t\t22, 137, 56, 201, 246, 192, 113, 142, 184, 232, 192, 221,\n\t\t63, 63, 203, 17, 236, 145, 129, 94, 193, 47, 84, 152, 107,\n\t\t176, 86, 126, 248, 62, 251, 120, 38, 152, 13, 141, 12, 138,\n\t\t243, 121, 98, 120, 23, 92, 21, 125, 246, 65, 252, 111, 24,\n\t\t111, 198, 65, 227, 153, 15, 222, 71, 39, 159, 135, 170, 140,\n\t\t56, 90, 37, 57, 97, 237, 136, 139, 154, 209, 80, 200, 181,\n\t\t147, 150, 148, 36, 213, 213, 133, 180, 248, 140, 244, 189,\n\t\t250, 113, 135, 96, 138, 249, 57, 81, 10, 130, 137, 32, 168,\n\t\t202, 169, 183, 166, 102, 238, 73, 199, 153, 4, 237, 201, 152,\n\t\t178, 144, 216, 14, 160, 74, 87, 33, 5, 92, 221, 217, 117,\n\t\t19, 95, 112, 211, 99, 52, 192, 168, 19, 61, 66, 16, 70, 30,\n\t\t47, 221, 188, 49, 153, 187, 44, 174, 9, 190, 213, 182, 28,\n\t\t192, 188, 38, 184, 150, 10, 129, 129, 174, 97, 185, 146, 70,\n\t\t96, 12, 17, 173, 150, 135, 145, 224, 115, 68, 224, 36, 82,\n\t\t218, 4, 94, 5, 132, 121, 131, 46, 82, 26, 231, 160, 207, 228,\n\t\t24, 131, 48, 23, 177, 169, 186, 80, 214, 82, 46, 137, 241,\n\t\t17, 143, 107, 204, 229, 232, 91, 149, 85, 44, 54, 116, 207,\n\t\t210, 21, 91, 85, 250, 86, 136, 16, 28, 157, 102, 249, 98,\n\t\t167, 47, 167, 57, 44, 95, 58, 218, 181, 224, 153, 233, 24,\n\t\t90, 115, 229, 218, 235, 87, 252, 237, 167, 147, 226, 215,\n\t\t223, 255, 248, 229, 237, 133, 47, 248, 39, 149, 107, 9, 33,\n\t\t30, 101, 139, 165, 30, 117, 144, 62, 184, 35, 165, 129, 64,\n\t\t130, 38, 18, 151, 163, 205, 249, 39, 82, 52, 156, 150, 254,\n\t\t170, 248, 7, 251, 26, 127, 6, 226, 219, 100, 67, 77, 15, 103,\n\t\t46, 104, 210, 225, 104, 147, 46, 246, 206, 244, 91, 116, 162,\n\t\t237, 166, 50, 194, 72, 30, 72, 213, 88, 147, 196, 39, 44,\n\t\t161, 22, 55, 191, 249, 82, 15, 166, 117, 66, 172, 130, 222,\n\t\t153, 150, 158, 247, 13, 34, 31, 170, 63, 188, 176, 25, 47,\n\t\t161, 26, 38, 224, 242, 178, 150, 25, 110, 126, 91, 168, 54,\n\t\t44, 97, 128, 100, 13, 167, 158, 21, 174, 106, 184, 4, 12,\n\t\t101, 43, 233, 49, 139, 8, 17, 116, 245, 216, 66, 91, 205,\n\t\t164, 72, 138, 18, 139, 170, 111, 94, 150, 31, 184, 1, 213,\n\t\t118, 224, 241, 180, 140, 82, 215, 118, 213, 65, 144, 118,\n\t\t143, 139, 5, 7, 184, 215, 130, 2, 143, 178, 202, 104, 238,\n\t\t35, 177, 37, 58, 22, 236, 6, 176, 12, 86, 244, 14, 160, 187,\n\t\t4, 213, 53, 27, 162, 110, 38, 207, 5, 78, 211, 32, 252, 27,\n\t\t124, 111, 64, 63, 97, 120, 203, 140, 32, 45, 3, 222, 31, 223,\n\t\t184, 202, 195, 170, 203, 156, 85, 194, 107, 78, 48, 0, 201,\n\t\t6, 46, 105, 40, 190, 116, 153, 178, 145, 58, 1, 209, 190,\n\t\t55, 220, 175, 163, 188, 84, 124, 2, 37, 208, 108, 15, 98,\n\t\t2, 98, 49, 150, 9, 86, 254, 74, 68, 230, 223, 125, 85, 79,\n\t\t111, 74, 174, 248, 201, 139, 98, 135, 177, 96, 41, 19, 216,\n\t\t155, 122, 51, 10, 87, 144, 123, 143, 82, 183, 211, 117, 182,\n\t\t151, 247, 208, 213, 82, 97, 191, 92, 151, 177, 97, 50, 114,\n\t\t226, 35, 203, 232, 80, 191, 12, 214, 26, 31, 247, 184, 198,\n\t\t148, 143, 64, 241, 56, 176, 1, 206, 57, 61, 76, 43, 19, 80,\n\t\t92, 217, 164, 63, 247, 61, 164, 192, 124, 237, 56, 126, 79,\n\t\t150, 160, 176, 3, 229, 207, 141, 143, 191, 140, 221, 46, 47,\n\t\t7, 36, 163, 43, 159, 155, 124, 121, 92, 93, 169, 9, 159, 238,\n\t\t97, 249, 247, 70, 71, 62, 100, 186, 75, 67, 216, 214, 231,\n\t\t221, 247, 249, 234, 52, 151, 70, 91, 244, 239, 251, 222, 138,\n\t\t100, 40, 58, 167, 94, 236, 59, 214, 112, 33, 189, 55, 249,\n\t\t178, 105, 94, 120, 57, 248, 253, 195, 222, 245, 187, 191,\n\t\t48, 107, 239, 191, 252, 250, 251, 75, 100, 244, 167, 252,\n\t\t231, 188, 111, 177, 249, 163, 111, 25, 75, 93, 81, 11, 12,\n\t\t105, 75, 5, 118, 38, 133, 103, 160, 168, 38, 205, 222, 12,\n\t\t164, 23, 33, 108, 155, 100, 58, 197, 224, 45, 130, 20, 98,\n\t\t19, 47, 168, 103, 130, 249, 20, 128, 91, 152, 188, 98, 28,\n\t\t10, 66, 119, 248, 74, 245, 151, 179, 61, 147, 44, 128, 92,\n\t\t90, 9, 238, 19, 164, 212, 172, 12, 215, 75, 39, 148, 164,\n\t\t113, 39, 24, 33, 117, 246, 203, 48, 37, 83, 54, 37, 101, 51,\n\t\t41, 6, 71, 156, 222, 194, 2, 53, 202, 65, 144, 25, 15, 32,\n\t\t254, 87, 5, 229, 180, 10, 200, 24, 62, 201, 183, 124, 84,\n\t\t142, 250, 241, 66, 247, 180, 61, 148, 52, 201, 16, 44, 106,\n\t\t236, 127, 220, 33, 200, 31, 138, 83, 199, 116, 84, 195, 239,\n\t\t135, 32, 74, 58, 204, 181, 37, 4, 224, 154, 203, 55, 116,\n\t\t129, 188, 192, 8, 238, 118, 43, 109, 160, 162, 3, 111, 73,\n\t\t69, 126, 52, 48, 123, 238, 94, 67, 157, 248, 32, 21, 122,\n\t\t131, 200, 42, 121, 254, 148, 73, 44, 55, 153, 208, 153, 98,\n\t\t137, 58, 134, 240, 108, 202, 251, 227, 198, 254, 209, 251,\n\t\t19, 192, 194, 119, 223, 31, 189, 151, 203, 80, 153, 89, 46,\n\t\t127, 227, 89, 136, 72, 95, 165, 245, 66, 157, 230, 180, 186,\n\t\t49, 178, 198, 108, 81, 105, 78, 144, 67, 150, 104, 38, 202,\n\t\t99, 163, 89, 135, 128, 255, 200, 34, 149, 71, 112, 105, 154,\n\t\t97, 124, 125, 118, 172, 54, 144, 78, 7, 14, 61, 97, 123, 208,\n\t\t141, 89, 70, 25, 198, 91, 89, 234, 98, 133, 224, 195, 2, 83,\n\t\t145, 104, 220, 13, 13, 71, 64, 85, 204, 235, 177, 253, 96,\n\t\t208, 255, 175, 183, 95, 254, 241, 245, 151, 87, 91, 237, 85,\n\t\t23, 204, 194, 227, 141, 184, 75, 35, 39, 64, 181, 78, 69,\n\t\t139, 96, 16, 104, 104, 186, 14, 9, 235, 245, 18, 111, 65,\n\t\t184, 2, 203, 134, 118, 49, 17, 206, 82, 216, 253, 109, 79,\n\t\t140, 130, 18, 220, 216, 2, 230, 150, 164, 255, 146, 80, 90,\n\t\t24, 37, 181, 55, 75, 89, 84, 132, 49, 132, 200, 72, 202, 26,\n\t\t21, 70, 128, 16, 66, 118, 160, 59, 149, 8, 52, 216, 182, 34,\n\t\t183, 241, 160, 30, 232, 41, 188, 94, 97, 212, 119, 102, 34,\n\t\t229, 100, 148, 84, 91, 34, 79, 143, 229, 78, 38, 61, 32, 37,\n\t\t131, 145, 6, 209, 27, 149, 249, 65, 91, 13, 169, 100, 243,\n\t\t175, 64, 73, 133, 50, 52, 197, 252, 57, 93, 124, 169, 32,\n\t\t16, 117, 253, 124, 215, 96, 96, 95, 139, 225, 185, 115, 32,\n\t\t35, 168, 117, 67, 136, 117, 103, 153, 111, 49, 140, 81, 130,\n\t\t68, 69, 102, 68, 253, 176, 64, 234, 26, 228, 118, 96, 194,\n\t\t154, 190, 16, 236, 104, 83, 9, 144, 85, 194, 76, 236, 108,\n\t\t150, 140, 145, 154, 32, 86, 46, 33, 126, 213, 50, 46, 122,\n\t\t157, 82, 169, 206, 106, 222, 118, 173, 242, 34, 65, 133, 5,\n\t\t6, 34, 162, 139, 167, 201, 0, 244, 189, 85, 92, 72, 20, 127,\n\t\t194, 208, 160, 25, 1, 190, 22, 191, 36, 152, 110, 84, 175,\n\t\t1, 70, 4, 210, 92, 66, 45, 169, 175, 20, 30, 243, 58, 85,\n\t\t193, 194, 136, 76, 2, 37, 107, 158, 92, 56, 43, 136, 116,\n\t\t174, 228, 224, 68, 222, 161, 182, 19, 50, 135, 226, 252, 86,\n\t\t212, 154, 158, 203, 199, 69, 226, 103, 11, 232, 78, 191, 54,\n\t\t183, 91, 94, 95, 144, 69, 66, 147, 49, 86, 35, 147, 236, 5,\n\t\t6, 220, 165, 14, 215, 206, 245, 212, 10, 126, 68, 119, 213,\n\t\t104, 48, 119, 107, 181, 1, 5, 132, 209, 113, 43, 90, 110,\n\t\t171, 216, 86, 48, 154, 32, 60, 39, 214, 223, 227, 26, 92,\n\t\t38, 230, 246, 68, 100, 45, 32, 78, 183, 112, 81, 85, 191,\n\t\t10, 165, 241, 82, 120, 196, 61, 81, 217, 44, 104, 2, 23, 179,\n\t\t27, 55, 220, 248, 216, 74, 164, 79, 220, 92, 154, 240, 180,\n\t\t120, 34, 38, 8, 144, 235, 185, 35, 143, 174, 153, 10, 27,\n\t\t250, 89, 227, 104, 209, 41, 42, 4, 232, 36, 143, 8, 57, 161,\n\t\t54, 8, 224, 224, 153, 78, 36, 195, 91, 104, 138, 227, 229,\n\t\t31, 196, 27, 20, 86, 113, 33, 29, 246, 102, 171, 203, 36,\n\t\t132, 23, 109, 228, 185, 244, 147, 143, 171, 119, 211, 91,\n\t\t141, 129, 116, 115, 60, 104, 43, 172, 32, 69, 137, 234, 150,\n\t\t185, 149, 254, 22, 169, 147, 166, 156, 51, 42, 72, 138, 214,\n\t\t219, 2, 177, 162, 201, 37, 120, 74, 50, 115, 46, 5, 161, 60,\n\t\t10, 64, 196, 3, 15, 77, 96, 105, 52, 251, 128, 211, 27, 96,\n\t\t14, 164, 34, 117, 114, 232, 28, 97, 185, 12, 99, 234, 82,\n\t\t204, 175, 42, 75, 120, 26, 24, 60, 141, 73, 117, 246, 227,\n\t\t234, 35, 241, 84, 7, 183, 178, 188, 4, 167, 225, 146, 61,\n\t\t45, 97, 240, 34, 142, 181, 143, 120, 76, 225, 239, 194, 0,\n\t\t215, 145, 80, 52, 12, 35, 92, 1, 90, 86, 64, 73, 48, 177,\n\t\t236, 37, 12, 34, 163, 90, 193, 185, 24, 87, 202, 157, 20,\n\t\t196, 152, 241, 202, 70, 129, 234, 77, 37, 254, 240, 209, 108,\n\t\t65, 13, 65, 234, 4, 43, 157, 57, 241, 117, 6, 27, 199, 145,\n\t\t248, 207, 229, 109, 74, 106, 164, 177, 220, 75, 147, 100,\n\t\t145, 138, 198, 203, 107, 132, 168, 149, 24, 54, 29, 83, 59,\n\t\t106, 225, 36, 187, 191, 196, 187, 232, 123, 80, 89, 44, 131,\n\t\t158, 230, 20, 144, 14, 161, 46, 38, 5, 210, 168, 244, 206,\n\t\t207, 249, 150, 231, 195, 92, 231, 246, 69, 167, 107, 161,\n\t\t133, 133, 113, 92, 183, 189, 147, 68, 2, 44, 223, 117, 192,\n\t\t169, 30, 33, 68, 99, 89, 214, 65, 60, 234, 177, 71, 133, 3,\n\t\t98, 224, 162, 233, 162, 68, 138, 37, 39, 51, 148, 226, 213,\n\t\t75, 36, 178, 179, 216, 151, 12, 14, 249, 221, 44, 40, 30,\n\t\t45, 243, 99, 226, 177, 142, 196, 166, 114, 139, 133, 126,\n\t\t68, 116, 121, 102, 222, 148, 254, 132, 25, 149, 101, 45, 208,\n\t\t8, 123, 67, 237, 69, 117, 195, 43, 155, 24, 134, 162, 42,\n\t\t233, 84, 56, 64, 178, 163, 213, 3, 129, 160, 140, 26, 102,\n\t\t121, 64, 13, 115, 194, 250, 214, 128, 178, 170, 176, 97, 234,\n\t\t214, 44, 139, 122, 252, 106, 101, 127, 212, 117, 49, 179,\n\t\t199, 11, 15, 54, 13, 94, 62, 134, 122, 157, 96, 9, 121, 164,\n\t\t102, 139, 30, 25, 86, 84, 37, 134, 225, 142, 73, 82, 210,\n\t\t96, 251, 33, 90, 80, 182, 248, 217, 137, 197, 89, 105, 218,\n\t\t13, 185, 27, 152, 89, 77, 237, 129, 122, 59, 13, 13, 120,\n\t\t152, 84, 152, 198, 131, 174, 28, 88, 226, 10, 79, 28, 1, 53,\n\t\t79, 11, 57, 29, 50, 219, 88, 251, 140, 60, 71, 170, 105, 31,\n\t\t215, 152, 73, 52, 84, 150, 206, 203, 88, 75, 3, 36, 69, 137,\n\t\t121, 208, 162, 33, 79, 47, 43, 15, 19, 250, 213, 190, 44,\n\t\t81, 83, 185, 68, 86, 67, 109, 0, 15, 128, 170, 111, 153, 237,\n\t\t17, 27, 73, 204, 21, 196, 173, 105, 240, 71, 167, 253, 136,\n\t\t47, 24, 23, 241, 65, 234, 80, 145, 215, 6, 54, 204, 212, 89,\n\t\t67, 142, 61, 97, 24, 200, 96, 185, 40, 81, 180, 94, 16, 13,\n\t\t92, 182, 69, 59, 145, 172, 193, 130, 87, 149, 21, 118, 229,\n\t\t216, 222, 148, 185, 76, 140, 70, 3, 246, 105, 169, 135, 233,\n\t\t27, 104, 123, 33, 137, 43, 13, 254, 184, 198, 20, 142, 162,\n\t\t3, 30, 157, 94, 60, 103, 41, 193, 83, 50, 56, 5, 37, 155,\n\t\t179, 170, 175, 139, 123, 135, 248, 36, 134, 54, 125, 150,\n\t\t171, 89, 105, 16, 94, 238, 141, 167, 45, 234, 238, 106, 42,\n\t\t42, 200, 32, 192, 235, 97, 183, 194, 84, 143, 233, 213, 144,\n\t\t250, 26, 29, 80, 116, 209, 229, 91, 1, 215, 12, 30, 33, 90,\n\t\t33, 16, 47, 167, 8, 114, 88, 187, 1, 89, 109, 47, 130, 157,\n\t\t94, 179, 178, 2, 180, 43, 81, 239, 122, 33, 169, 0, 241, 90,\n\t\t49, 183, 171, 201, 47, 152, 136, 177, 91, 8, 14, 8, 61, 143,\n\t\t55, 90, 165, 147, 39, 44, 36, 50, 173, 42, 51, 46, 88, 176,\n\t\t244, 201, 66, 156, 205, 144, 85, 185, 242, 113, 205, 24, 243,\n\t\t137, 231, 138, 187, 162, 208, 110, 190, 145, 253, 162, 216,\n\t\t71, 142, 77, 29, 75, 189, 151, 86, 211, 4, 153, 220, 248,\n\t\t214, 97, 142, 86, 214, 56, 196, 244, 198, 211, 117, 102, 9,\n\t\t51, 89, 228, 186, 118, 124, 177, 88, 232, 238, 50, 86, 24,\n\t\t52, 116, 52, 65, 11, 84, 23, 88, 74, 70, 150, 48, 240, 231,\n\t\t198, 98, 254, 41, 15, 161, 234, 17, 29, 193, 218, 237, 29,\n\t\t77, 52, 156, 199, 27, 26, 194, 90, 116, 210, 179, 69, 172,\n\t\t180, 254, 83, 174, 252, 184, 134, 222, 142, 168, 164, 232,\n\t\t183, 21, 239, 137, 153, 103, 129, 252, 45, 5, 224, 43, 193,\n\t\t240, 108, 233, 204, 156, 136, 77, 155, 255, 38, 125, 119,\n\t\t236, 30, 8, 83, 20, 99, 136, 177, 41, 99, 29, 52, 65, 74,\n\t\t191, 206, 184, 69, 29, 224, 29, 30, 130, 244, 26, 254, 230,\n\t\t113, 157, 70, 41, 171, 253, 38, 102, 3, 194, 56, 67, 205,\n\t\t214, 82, 214, 68, 63, 164, 247, 46, 246, 60, 145, 191, 101,\n\t\t155, 114, 210, 6, 166, 248, 12, 6, 129, 193, 7, 72, 137, 180,\n\t\t132, 92, 225, 74, 43, 69, 8, 131, 169, 13, 47, 122, 44, 172,\n\t\t47, 193, 156, 2, 148, 24, 6, 192, 91, 232, 244, 103, 126,\n\t\t177, 206, 177, 28, 89, 62, 101, 124, 112, 220, 75, 6, 191,\n\t\t133, 58, 187, 73, 205, 38, 216, 140, 188, 86, 93, 6, 23, 241,\n\t\t91, 209, 165, 142, 251, 140, 96, 89, 161, 208, 40, 141, 204,\n\t\t167, 73, 147, 126, 68, 11, 36, 218, 50, 253, 215, 129, 55,\n\t\t227, 172, 148, 27, 163, 65, 203, 227, 231, 205, 26, 107, 226,\n\t\t28, 55, 18, 146, 69, 86, 29, 136, 68, 76, 241, 48, 88, 52,\n\t\t235, 30, 216, 205, 98, 83, 80, 74, 218, 228, 190, 31, 215,\n\t\t88, 73, 151, 85, 58, 217, 185, 202, 8, 139, 137, 175, 1, 208,\n\t\t229, 177, 170, 5, 116, 77, 177, 193, 251, 177, 112, 132, 46,\n\t\t122, 225, 178, 92, 234, 220, 96, 101, 151, 1, 149, 152, 65,\n\t\t151, 48, 245, 156, 196, 224, 152, 61, 149, 251, 78, 212, 99,\n\t\t186, 196, 29, 164, 131, 131, 55, 192, 42, 253, 195, 145, 111,\n\t\t82, 113, 99, 65, 54, 164, 184, 68, 162, 15, 34, 117, 184,\n\t\t140, 152, 135, 239, 197, 210, 106, 106, 169, 240, 119, 55,\n\t\t159, 30, 215, 216, 172, 185, 110, 130, 23, 26, 90, 84, 134,\n\t\t34, 239, 133, 251, 88, 222, 54, 210, 80, 158, 235, 134, 1,\n\t\t18, 4, 238, 198, 170, 182, 168, 44, 121, 89, 200, 252, 156,\n\t\t11, 82, 33, 9, 46, 41, 216, 81, 233, 18, 172, 18, 90, 210,\n\t\t43, 182, 129, 69, 171, 208, 125, 165, 59, 41, 26, 87, 34,\n\t\t116, 90, 42, 4, 253, 12, 229, 92, 65, 85, 130, 225, 209, 29,\n\t\t198, 233, 166, 62, 127, 68, 234, 19, 65, 86, 21, 171, 20,\n\t\t10, 152, 200, 113, 4, 222, 37, 192, 194, 104, 21, 229, 220,\n\t\t39, 181, 128, 209, 216, 97, 249, 77, 215, 70, 85, 3, 253,\n\t\t41, 166, 161, 80, 101, 121, 36, 45, 141, 242, 188, 128, 172,\n\t\t213, 169, 58, 3, 130, 232, 9, 115, 19, 174, 201, 70, 205,\n\t\t45, 176, 135, 59, 12, 48, 191, 204, 204, 11, 225, 237, 139,\n\t\t140, 7, 52, 178, 151, 242, 30, 186, 25, 84, 50, 136, 206,\n\t\t237, 92, 222, 195, 49, 219, 171, 210, 170, 162, 1, 136, 46,\n\t\t177, 64, 110, 77, 141, 106, 110, 49, 40, 110, 30, 249, 76,\n\t\t139, 6, 26, 195, 74, 133, 117, 15, 183, 162, 82, 150, 76,\n\t\t190, 5, 57, 76, 134, 197, 30, 241, 114, 149, 253, 195, 42,\n\t\t85, 84, 2, 27, 102, 70, 19, 91, 40, 81, 190, 42, 204, 139,\n\t\t128, 213, 22, 70, 9, 234, 58, 181, 218, 15, 158, 149, 81,\n\t\t207, 6, 116, 122, 206, 30, 208, 220, 131, 69, 183, 35, 182,\n\t\t42, 62, 16, 67, 92, 41, 181, 134, 217, 15, 13, 126, 49, 66,\n\t\t195, 164, 141, 160, 126, 25, 214, 15, 126, 202, 4, 238, 116,\n\t\t45, 240, 101, 41, 22, 68, 17, 2, 66, 148, 170, 26, 41, 195,\n\t\t105, 46, 185, 36, 62, 144, 253, 52, 111, 138, 46, 249, 98,\n\t\t53, 116, 65, 142, 83, 18, 60, 101, 120, 51, 75, 252, 92, 43,\n\t\t98, 149, 41, 71, 5, 89, 185, 167, 13, 45, 175, 78, 246, 26,\n\t\t23, 58, 55, 126, 141, 151, 177, 18, 250, 232, 252, 137, 5,\n\t\t98, 177, 73, 248, 124, 121, 94, 75, 193, 195, 167, 147, 89,\n\t\t127, 177, 148, 35, 36, 169, 170, 38, 43, 112, 8, 138, 248,\n\t\t113, 18, 178, 192, 48, 114, 97, 162, 76, 243, 184, 144, 218,\n\t\t216, 108, 38, 120, 195, 224, 27, 178, 10, 58, 13, 184, 218,\n\t\t4, 194, 102, 66, 192, 44, 9, 248, 121, 146, 112, 0, 200, 127,\n\t\t148, 88, 84, 120, 118, 251, 230, 177, 206, 170, 157, 164,\n\t\t108, 182, 152, 245, 163, 147, 116, 22, 71, 22, 24, 248, 66,\n\t\t247, 150, 150, 12, 121, 229, 152, 219, 0, 60, 76, 78, 70,\n\t\t156, 126, 71, 112, 16, 111, 4, 85, 165, 106, 84, 130, 34,\n\t\t31, 238, 35, 130, 196, 26, 177, 43, 84, 188, 164, 69, 7, 168,\n\t\t116, 70, 239, 87, 31, 194, 243, 43, 164, 37, 48, 216, 82,\n\t\t198, 63, 107, 181, 220, 77, 210, 170, 129, 107, 222, 23, 32,\n\t\t50, 207, 122, 154, 20, 87, 17, 187, 134, 241, 21, 68, 82,\n\t\t121, 55, 29, 8, 24, 185, 124, 175, 58, 100, 96, 21, 70, 47,\n\t\t211, 149, 39, 220, 155, 239, 132, 67, 149, 247, 175, 107,\n\t\t179, 122, 65, 28, 57, 231, 117, 131, 127, 148, 237, 133, 40,\n\t\t94, 136, 204, 195, 139, 52, 11, 26, 53, 96, 81, 52, 125, 99,\n\t\t101, 105, 195, 120, 198, 243, 80, 40, 222, 233, 66, 203, 189,\n\t\t223, 130, 206, 121, 179, 88, 185, 78, 98, 176, 55, 101, 70,\n\t\t69, 40, 40, 129, 232, 66, 26, 45, 41, 59, 191, 19, 43, 56,\n\t\t197, 124, 248, 205, 23, 98, 183, 54, 230, 129, 142, 117, 93,\n\t\t135, 24, 216, 216, 51, 205, 56, 171, 254, 146, 102, 238, 45,\n\t\t54, 195, 49, 88, 148, 54, 14, 68, 77, 205, 139, 44, 146, 84,\n\t\t98, 219, 79, 21, 75, 166, 67, 65, 208, 210, 121, 227, 195,\n\t\t11, 212, 102, 199, 234, 146, 85, 92, 134, 42, 117, 213, 137,\n\t\t101, 59, 16, 3, 81, 133, 203, 112, 128, 18, 168, 97, 164,\n\t\t202, 109, 237, 49, 90, 32, 183, 6, 51, 141, 27, 82, 1, 60,\n\t\t189, 79, 35, 40, 31, 211, 226, 92, 33, 219, 152, 116, 148,\n\t\t61, 178, 235, 66, 13, 50, 21, 111, 182, 5, 183, 171, 17, 125,\n\t\t3, 148, 174, 85, 250, 1, 189, 136, 157, 142, 161, 144, 76,\n\t\t157, 213, 43, 103, 117, 178, 193, 90, 67, 89, 248, 216, 208,\n\t\t37, 160, 92, 25, 116, 162, 3, 187, 149, 164, 127, 177, 134,\n\t\t239, 17, 137, 49, 26, 77, 91, 7, 105, 166, 96, 140, 63, 79,\n\t\t193, 254, 250, 247, 183, 87, 0, 113, 253, 152, 128, 77, 29,\n\t\t4, 74, 177, 182, 195, 111, 201, 197, 225, 73, 153, 203, 115,\n\t\t1, 18, 247, 206, 64, 158, 88, 72, 71, 217, 26, 137, 62, 19,\n\t\t54, 174, 90, 182, 136, 171, 45, 232, 128, 125, 30, 222, 248,\n\t\t32, 242, 92, 27, 207, 246, 99, 199, 133, 237, 60, 186, 176,\n\t\t156, 214, 252, 38, 167, 168, 100, 126, 45, 72, 143, 249, 58,\n\t\t15, 156, 67, 153, 63, 15, 20, 250, 184, 173, 65, 16, 9, 139,\n\t\t158, 231, 92, 210, 244, 104, 30, 215, 20, 250, 209, 55, 169,\n\t\t250, 186, 64, 94, 70, 75, 244, 37, 64, 86, 181, 195, 211,\n\t\t239, 42, 85, 108, 84, 86, 120, 53, 221, 50, 233, 109, 210,\n\t\t227, 58, 6, 187, 67, 29, 3, 152, 3, 169, 221, 139, 8, 101,\n\t\t100, 192, 21, 84, 146, 190, 72, 164, 9, 107, 21, 128, 126,\n\t\t150, 81, 51, 72, 181, 116, 102, 161, 72, 55, 50, 126, 25,\n\t\t220, 154, 114, 162, 84, 51, 255, 190, 191, 12, 73, 74, 206,\n\t\t49, 158, 60, 193, 34, 55, 223, 2, 171, 60, 79, 227, 175, 211,\n\t\t164, 82, 14, 63, 178, 215, 112, 85, 112, 115, 20, 169, 234,\n\t\t105, 136, 44, 218, 140, 172, 145, 174, 205, 77, 49, 185, 92,\n\t\t193, 76, 2, 183, 29, 176, 224, 105, 8, 13, 82, 221, 207, 91,\n\t\t193, 155, 14, 49, 28, 164, 231, 194, 171, 69, 232, 92, 168,\n\t\t198, 101, 59, 90, 51, 3, 122, 88, 84, 235, 241, 85, 249, 2,\n\t\t141, 45, 157, 126, 248, 203, 240, 94, 145, 27, 9, 225, 152,\n\t\t200, 217, 59, 210, 71, 221, 252, 156, 159, 71, 86, 176, 111,\n\t\t98, 131, 207, 242, 21, 252, 123, 65, 45, 21, 117, 19, 152,\n\t\t166, 22, 99, 90, 129, 222, 90, 148, 151, 85, 167, 94, 197,\n\t\t97, 196, 255, 101, 38, 89, 58, 156, 21, 91, 69, 196, 234,\n\t\t113, 77, 158, 187, 249, 92, 188, 144, 236, 222, 139, 242,\n\t\t73, 147, 163, 240, 188, 117, 178, 84, 47, 38, 146, 203, 73,\n\t\t226, 224, 198, 209, 242, 142, 212, 12, 188, 247, 2, 1, 42,\n\t\t137, 105, 7, 138, 122, 242, 211, 47, 84, 159, 157, 179, 103,\n\t\t25, 27, 67, 250, 151, 83, 86, 51, 171, 26, 214, 204, 44, 183,\n\t\t17, 207, 108, 94, 139, 220, 212, 183, 109, 6, 207, 73, 26,\n\t\t232, 39, 198, 52, 141, 76, 179, 0, 217, 211, 230, 187, 206,\n\t\t246, 112, 85, 100, 173, 23, 75, 231, 50, 144, 190, 66, 13,\n\t\t120, 73, 170, 137, 221, 0, 62, 229, 187, 254, 124, 34, 124,\n\t\t133, 161, 52, 64, 134, 169, 30, 247, 150, 82, 187, 239, 41,\n\t\t181, 219, 252, 231, 158, 82, 227, 114, 245, 70, 34, 242, 189,\n\t\t151, 59, 233, 142, 223, 230, 24, 228, 184, 227, 220, 246,\n\t\t92, 198, 14, 19, 7, 3, 66, 230, 65, 88, 246, 36, 43, 236,\n\t\t147, 85, 157, 233, 148, 51, 187, 13, 189, 111, 89, 89, 79,\n\t\t21, 255, 69, 162, 123, 120, 103, 18, 161, 44, 19, 71, 17,\n\t\t209, 162, 113, 135, 198, 101, 154, 116, 150, 83, 213, 125,\n\t\t100, 9, 177, 61, 237, 191, 199, 53, 166, 120, 36, 68, 226,\n\t\t47, 90, 104, 238, 182, 34, 132, 196, 194, 38, 164, 219, 153,\n\t\t81, 236, 92, 160, 167, 222, 0, 221, 12, 198, 213, 14, 112,\n\t\t74, 97, 19, 227, 228, 225, 67, 108, 64, 192, 22, 41, 195,\n\t\t53, 60, 81, 114, 193, 229, 179, 16, 123, 50, 154, 158, 253,\n\t\t69, 56, 123, 243, 126, 56, 3, 216, 6, 150, 103, 167, 44, 155,\n\t\t74, 249, 131, 86, 220, 125, 59, 35, 130, 222, 148, 105, 65,\n\t\t200, 193, 124, 205, 217, 125, 184, 3, 102, 160, 58, 0, 102,\n\t\t141, 149, 95, 81, 209, 34, 130, 180, 108, 228, 140, 166, 48,\n\t\t133, 102, 88, 98, 96, 187, 207, 44, 124, 16, 143, 124, 202,\n\t\t28, 114, 228, 161, 105, 12, 17, 200, 83, 83, 153, 78, 177,\n\t\t217, 144, 235, 48, 117, 173, 241, 22, 180, 145, 110, 165,\n\t\t132, 165, 78, 214, 49, 69, 67, 56, 17, 135, 213, 168, 3, 77,\n\t\t117, 98, 105, 47, 157, 74, 16, 60, 150, 122, 128, 229, 24,\n\t\t65, 40, 144, 226, 6, 160, 252, 158, 226, 15, 198, 212, 159,\n\t\t20, 187, 255, 212, 255, 239, 23, 187, 255, 183, 15, 221, 203,\n\t\t127, 235, 216, 253, 159, 53, 116, 47, 255, 241, 177, 251,\n\t\t63, 99, 232, 94, 254, 95, 27, 187, 255, 151, 135, 238, 63,\n\t\t222, 254, 53, 126, 254, 229, 101, 220, 126, 249, 115, 100,\n\t\t102, 1, 29, 41, 40, 84, 102, 27, 229, 62, 34, 226, 40, 64,\n\t\t96, 87, 12, 169, 50, 205, 118, 241, 33, 138, 96, 16, 34, 120,\n\t\t141, 216, 215, 41, 192, 217, 205, 181, 156, 30, 6, 34, 64,\n\t\t64, 202, 0, 250, 41, 118, 7, 197, 193, 148, 184, 155, 203,\n\t\t234, 181, 107, 139, 139, 6, 24, 69, 52, 181, 237, 198, 229,\n\t\t151, 81, 227, 88, 144, 181, 87, 104, 107, 3, 234, 74, 131,\n\t\t17, 76, 30, 12, 92, 193, 154, 40, 203, 208, 25, 211, 44, 120,\n\t\t149, 161, 45, 63, 44, 97, 91, 214, 116, 213, 216, 54, 130,\n\t\t0, 162, 70, 182, 160, 169, 160, 79, 166, 16, 29, 83, 19, 72,\n\t\t149, 231, 55, 121, 171, 36, 2, 201, 149, 103, 66, 206, 166,\n\t\t121, 250, 44, 238, 58, 94, 84, 202, 226, 21, 39, 223, 142,\n\t\t186, 133, 238, 201, 102, 134, 125, 9, 48, 76, 64, 222, 190,\n\t\t152, 128, 163, 180, 128, 75, 139, 194, 175, 70, 171, 124,\n\t\t39, 72, 9, 91, 182, 2, 88, 9, 126, 172, 252, 31, 242, 201,\n\t\t234, 35, 37, 76, 6, 221, 66, 166, 92, 87, 177, 61, 132, 162,\n\t\t52, 154, 177, 169, 108, 134, 96, 235, 134, 73, 29, 4, 27,\n\t\t40, 202, 224, 174, 111, 49, 25, 18, 42, 172, 232, 69, 61,\n\t\t16, 243, 94, 2, 245, 223, 33, 20, 73, 242, 218, 171, 225,\n\t\t5, 253, 135, 122, 88, 0, 192, 168, 170, 128, 39, 63, 0, 140,\n\t\t128, 61, 89, 233, 188, 215, 29, 35, 125, 192, 254, 20, 233,\n\t\t126, 194, 99, 182, 129, 33, 212, 135, 196, 24, 113, 137, 121,\n\t\t34, 178, 34, 215, 205, 192, 192, 99, 217, 106, 65, 242, 101,\n\t\t222, 165, 45, 246, 116, 244, 203, 80, 89, 135, 109, 193, 175,\n\t\t240, 202, 176, 214, 250, 206, 190, 115, 106, 13, 74, 226,\n\t\t88, 194, 208, 4, 87, 180, 94, 43, 13, 175, 142, 128, 98, 4,\n\t\t192, 77, 139, 76, 155, 120, 103, 17, 3, 176, 40, 237, 176,\n\t\t211, 46, 21, 142, 39, 166, 78, 60, 161, 165, 180, 228, 81,\n\t\t137, 103, 145, 131, 45, 231, 46, 152, 84, 228, 225, 59, 123,\n\t\t56, 50, 159, 138, 75, 86, 22, 174, 111, 241, 137, 184, 238,\n\t\t153, 160, 65, 236, 215, 75, 142, 166, 137, 159, 79, 163, 201,\n\t\t83, 91, 250, 211, 68, 190, 1, 100, 48, 234, 7, 155, 129, 249,\n\t\t222, 108, 253, 83, 138, 45, 244, 53, 207, 113, 76, 206, 32,\n\t\t3, 244, 45, 15, 135, 68, 172, 70, 40, 128, 61, 6, 240, 20,\n\t\t206, 44, 38, 8, 36, 0, 46, 215, 84, 210, 49, 231, 34, 55,\n\t\t93, 58, 55, 239, 156, 71, 49, 82, 29, 186, 67, 101, 87, 237,\n\t\t30, 213, 2, 1, 170, 139, 62, 60, 237, 25, 32, 158, 123, 98,\n\t\t239, 241, 105, 97, 116, 194, 226, 79, 141, 123, 206, 41, 75,\n\t\t60, 97, 56, 207, 8, 83, 105, 66, 163, 2, 14, 106, 36, 250,\n\t\t228, 139, 206, 87, 21, 52, 63, 148, 151, 136, 44, 150, 3,\n\t\t37, 178, 109, 139, 2, 137, 116, 5, 88, 83, 129, 86, 30, 177,\n\t\t123, 216, 249, 69, 150, 81, 185, 235, 26, 7, 27, 8, 122, 153,\n\t\t180, 35, 203, 35, 53, 173, 131, 145, 251, 156, 51, 126, 165,\n\t\t177, 75, 158, 88, 146, 203, 68, 147, 13, 207, 139, 86, 35,\n\t\t221, 215, 34, 241, 74, 219, 62, 73, 174, 207, 25, 21, 25,\n\t\t187, 168, 146, 66, 16, 236, 229, 252, 187, 110, 63, 174, 33,\n\t\t147, 124, 97, 76, 71, 25, 153, 19, 78, 152, 171, 12, 208,\n\t\t128, 184, 8, 232, 136, 43, 42, 55, 148, 40, 121, 90, 136,\n\t\t123, 67, 3, 4, 80, 13, 228, 126, 248, 97, 17, 79, 61, 175,\n\t\t233, 18, 201, 103, 210, 129, 116, 6, 159, 58, 118, 192, 219,\n\t\t45, 90, 202, 137, 253, 205, 78, 157, 135, 110, 243, 204, 112,\n\t\t25, 50, 58, 171, 116, 203, 138, 124, 51, 241, 175, 251, 205,\n\t\t207, 137, 144, 182, 218, 227, 42, 76, 9, 62, 211, 148, 135,\n\t\t69, 21, 65, 104, 77, 67, 129, 141, 34, 126, 32, 7, 56, 25,\n\t\t203, 43, 188, 67, 162, 123, 70, 59, 101, 223, 80, 251, 19,\n\t\t227, 81, 76, 149, 208, 1, 153, 85, 82, 2, 67, 244, 197, 96,\n\t\t139, 22, 125, 200, 76, 200, 13, 112, 39, 255, 189, 80, 127,\n\t\t231, 6, 48, 92, 19, 234, 227, 9, 40, 72, 23, 81, 41, 21, 57,\n\t\t143, 94, 244, 22, 90, 251, 220, 58, 251, 58, 254, 241, 254,\n\t\t251, 151, 111, 191, 127, 135, 91, 234, 167, 213, 181, 218,\n\t\t99, 48, 39, 137, 30, 200, 252, 36, 153, 14, 158, 92, 37, 228,\n\t\t68, 232, 203, 213, 97, 26, 118, 62, 124, 52, 57, 228, 131,\n\t\t155, 102, 161, 77, 92, 95, 254, 155, 239, 179, 19, 91, 72,\n\t\t103, 243, 68, 231, 124, 49, 79, 19, 216, 57, 162, 248, 39,\n\t\t73, 197, 161, 178, 242, 76, 36, 103, 220, 187, 180, 49, 71,\n\t\t227, 125, 247, 57, 29, 237, 34, 147, 154, 116, 117, 153, 238,\n\t\t77, 190, 82, 66, 118, 52, 88, 201, 35, 116, 132, 31, 166,\n\t\t161, 157, 244, 163, 28, 113, 151, 110, 117, 42, 163, 88, 229,\n\t\t82, 90, 179, 175, 145, 7, 95, 87, 80, 96, 1, 220, 80, 152,\n\t\t190, 60, 22, 96, 61, 72, 75, 166, 233, 80, 240, 156, 37, 176,\n\t\t12, 0, 148, 79, 186, 213, 204, 102, 214, 80, 115, 35, 138,\n\t\t22, 146, 68, 201, 100, 102, 73, 156, 110, 186, 80, 10, 145,\n\t\t250, 191, 138, 236, 37, 220, 129, 18, 9, 34, 195, 86, 79,\n\t\t42, 119, 116, 34, 171, 50, 127, 231, 46, 89, 199, 191, 218,\n\t\t239, 246, 127, 188, 244, 188, 241, 231, 117, 154, 62, 213,\n\t\t99, 122, 103, 241, 40, 247, 189, 242, 96, 62, 155, 2, 110,\n\t\t219, 17, 6, 162, 222, 136, 216, 55, 129, 252, 96, 120, 123,\n\t\t2, 37, 41, 76, 119, 104, 190, 55, 88, 148, 143, 187, 69, 65,\n\t\t139, 35, 215, 213, 186, 44, 74, 21, 32, 89, 239, 234, 145,\n\t\t206, 174, 16, 15, 79, 188, 31, 192, 205, 99, 116, 122, 53,\n\t\t125, 77, 218, 6, 240, 166, 160, 75, 20, 22, 79, 237, 208,\n\t\t44, 48, 100, 146, 34, 142, 66, 192, 155, 155, 115, 79, 160,\n\t\t233, 211, 199, 118, 196, 59, 81, 10, 12, 166, 205, 224, 251,\n\t\t64, 5, 195, 222, 144, 11, 168, 42, 140, 42, 69, 40, 179, 179,\n\t\t72, 90, 110, 62, 14, 119, 64, 240, 47, 97, 135, 28, 124, 15,\n\t\t45, 14, 183, 1, 89, 1, 96, 97, 147, 244, 105, 149, 92, 172,\n\t\t108, 143, 228, 16, 49, 168, 248, 121, 156, 162, 59, 26, 207,\n\t\t139, 159, 246, 146, 243, 203, 183, 47, 247, 183, 243, 165,\n\t\t127, 252, 252, 177, 127, 148, 228, 212, 121, 36, 55, 198,\n\t\t149, 35, 141, 69, 54, 72, 74, 216, 184, 29, 193, 223, 175,\n\t\t38, 168, 224, 247, 134, 49, 27, 35, 18, 129, 149, 222, 36,\n\t\t124, 154, 114, 238, 10, 160, 1, 243, 132, 150, 187, 86, 149,\n\t\t113, 114, 238, 40, 107, 94, 178, 28, 13, 236, 204, 59, 235,\n\t\t204, 100, 179, 225, 76, 155, 15, 210, 100, 154, 103, 54, 53,\n\t\t80, 223, 51, 17, 76, 104, 84, 92, 52, 237, 178, 12, 91, 26,\n\t\t136, 28, 199, 23, 219, 252, 48, 118, 109, 148, 144, 142, 189,\n\t\t153, 244, 99, 70, 1, 28, 156, 177, 42, 198, 142, 15, 117,\n\t\t240, 44, 201, 183, 57, 237, 243, 165, 232, 222, 211, 69, 41,\n\t\t55, 39, 102, 153, 242, 209, 177, 47, 74, 175, 89, 187, 57,\n\t\t22, 59, 79, 196, 237, 252, 52, 234, 36, 208, 50, 77, 243,\n\t\t57, 69, 60, 184, 154, 52, 204, 150, 30, 202, 249, 238, 13,\n\t\t127, 161, 0, 26, 112, 15, 48, 203, 38, 64, 154, 168, 177,\n\t\t244, 204, 76, 43, 174, 31, 115, 159, 32, 53, 188, 64, 118,\n\t\t76, 247, 140, 253, 95, 49, 136, 25, 29, 121, 206, 245, 128,\n\t\t172, 240, 122, 228, 211, 247, 200, 158, 58, 10, 58, 188, 210,\n\t\t75, 98, 241, 37, 170, 110, 213, 189, 19, 93, 248, 142, 132,\n\t\t36, 82, 195, 74, 24, 166, 230, 27, 96, 209, 90, 112, 197,\n\t\t102, 220, 101, 160, 179, 170, 146, 130, 49, 7, 209, 24, 107,\n\t\t40, 92, 17, 106, 75, 16, 120, 29, 72, 171, 72, 91, 105, 105,\n\t\t150, 129, 102, 168, 251, 26, 227, 155, 24, 42, 5, 174, 96,\n\t\t3, 131, 11, 194, 9, 157, 80, 185, 161, 229, 35, 110, 243,\n\t\t245, 39, 48, 88, 59, 130, 134, 114, 75, 224, 15, 181, 7, 56,\n\t\t33, 246, 15, 210, 108, 66, 130, 21, 82, 159, 118, 240, 178,\n\t\t65, 233, 116, 168, 11, 112, 147, 42, 16, 72, 228, 84, 80,\n\t\t79, 16, 143, 39, 97, 202, 233, 132, 81, 127, 236, 58, 91,\n\t\t22, 108, 104, 142, 126, 97, 137, 87, 198, 91, 103, 96, 9,\n\t\t45, 56, 70, 156, 32, 50, 119, 88, 225, 143, 243, 164, 234,\n\t\t222, 23, 159, 242, 0, 76, 50, 43, 198, 110, 192, 108, 192,\n\t\t53, 124, 58, 162, 149, 201, 78, 23, 128, 16, 70, 206, 181,\n\t\t199, 53, 119, 127, 196, 173, 86, 67, 17, 0, 236, 36, 132,\n\t\t80, 155, 114, 248, 65, 190, 177, 65, 190, 35, 170, 139, 144,\n\t\t184, 249, 241, 86, 157, 2, 43, 206, 221, 183, 38, 16, 234,\n\t\t217, 73, 222, 115, 227, 89, 41, 110, 128, 23, 200, 172, 164,\n\t\t197, 55, 101, 17, 191, 222, 139, 18, 144, 80, 118, 1, 227,\n\t\t150, 18, 159, 205, 31, 117, 67, 216, 211, 83, 49, 117, 225,\n\t\t88, 37, 121, 21, 0, 24, 202, 125, 65, 36, 30, 144, 138, 199,\n\t\t181, 184, 233, 7, 4, 79, 177, 34, 240, 91, 91, 109, 34, 58,\n\t\t140, 113, 140, 87, 121, 145, 124, 93, 197, 252, 103, 80, 2,\n\t\t177, 49, 67, 68, 163, 10, 231, 208, 147, 49, 157, 195, 63,\n\t\t134, 179, 217, 193, 0, 58, 44, 193, 104, 30, 66, 169, 54,\n\t\t54, 248, 67, 93, 48, 36, 243, 53, 191, 43, 58, 205, 234, 0,\n\t\t17, 78, 60, 179, 6, 72, 68, 136, 236, 189, 128, 218, 187,\n\t\t234, 106, 136, 120, 129, 251, 17, 192, 226, 252, 250, 203,\n\t\t75, 250, 99, 56, 37, 35, 154, 211, 246, 70, 185, 136, 251,\n\t\t188, 75, 199, 105, 46, 69, 179, 24, 213, 137, 12, 15, 229,\n\t\t187, 225, 29, 183, 221, 3, 202, 10, 183, 117, 33, 57, 94,\n\t\t5, 134, 242, 130, 165, 57, 201, 23, 167, 8, 71, 186, 239,\n\t\t201, 184, 212, 190, 243, 179, 254, 153, 223, 69, 118, 220,\n\t\t0, 151, 90, 153, 134, 84, 11, 231, 249, 158, 229, 148, 187,\n\t\t196, 125, 41, 21, 128, 193, 134, 194, 31, 57, 112, 249, 115,\n\t\t67, 217, 213, 124, 34, 37, 157, 17, 162, 114, 89, 127, 248,\n\t\t244, 19, 15, 179, 167, 116, 183, 135, 209, 223, 224, 187,\n\t\t249, 179, 223, 160, 135, 192, 51, 232, 188, 110, 177, 0, 189,\n\t\t67, 153, 98, 168, 155, 76, 95, 198, 209, 139, 171, 67, 245,\n\t\t43, 172, 130, 96, 169, 38, 224, 191, 250, 110, 47, 63, 120,\n\t\t185, 235, 223, 207, 219, 88, 77, 140, 229, 121, 238, 214,\n\t\t131, 254, 98, 11, 71, 174, 110, 45, 84, 254, 212, 234, 145,\n\t\t134, 78, 185, 139, 122, 144, 137, 86, 235, 243, 160, 219,\n\t\t61, 61, 206, 243, 61, 125, 248, 123, 185, 1, 47, 49, 12, 61,\n\t\t176, 40, 67, 173, 37, 115, 116, 30, 86, 144, 177, 10, 200,\n\t\t102, 69, 52, 99, 161, 148, 55, 163, 59, 194, 159, 54, 197,\n\t\t191, 209, 17, 150, 119, 249, 212, 128, 250, 252, 153, 157,\n\t\t173, 155, 88, 255, 143, 107, 140, 60, 146, 235, 229, 79, 155,\n\t\t240, 249, 10, 248, 201, 117, 113, 251, 97, 143, 144, 159,\n\t\t187, 239, 62, 220, 148, 18, 226, 59, 29, 240, 251, 55, 237,\n\t\t69, 222, 227, 47, 119, 192, 239, 252, 220, 229, 187, 191,\n\t\t247, 212, 180, 223, 127, 196, 191, 248, 147, 73, 188, 108,\n\t\t211, 133, 89, 58, 125, 254, 11, 29, 62, 127, 255, 13, 203,\n\t\t117, 31, 215, 148, 26, 133, 209, 226, 125, 39, 155, 232, 185,\n\t\t54, 47, 45, 165, 81, 252, 1, 193, 178, 249, 65, 124, 0, 127,\n\t\t227, 83, 135, 30, 190, 92, 1, 199, 43, 174, 171, 249, 77,\n\t\t78, 189, 243, 89, 118, 112, 178, 152, 0, 60, 49, 182, 22,\n\t\t80, 199, 239, 111, 124, 74, 50, 150, 75, 156, 171, 247, 133,\n\t\t59, 109, 94, 239, 241, 113, 141, 173, 200, 58, 93, 231, 156,\n\t\t83, 35, 41, 255, 115, 51, 138, 165, 78, 244, 159, 236, 141,\n\t\t210, 142, 49, 253, 100, 113, 0, 249, 59, 50, 140, 197, 222,\n\t\t224, 109, 28, 234, 200, 203, 230, 8, 89, 99, 90, 215, 121,\n\t\t225, 34, 23, 166, 128, 181, 31, 74, 75, 169, 101, 7, 104,\n\t\t19, 21, 4, 192, 212, 13, 42, 175, 37, 244, 191, 232, 40, 200,\n\t\t100, 140, 42, 108, 20, 72, 115, 196, 226, 50, 80, 208, 41,\n\t\t235, 62, 216, 97, 51, 82, 131, 161, 29, 97, 235, 98, 139,\n\t\t4, 173, 225, 222, 162, 184, 203, 194, 81, 170, 219, 237, 71,\n\t\t196, 171, 231, 191, 254, 246, 2, 154, 28, 241, 207, 115, 163,\n\t\t110, 139, 165, 28, 253, 38, 22, 197, 157, 48, 129, 196, 176,\n\t\t25, 5, 196, 233, 51, 197, 45, 233, 69, 106, 228, 128, 228,\n\t\t99, 212, 66, 65, 60, 53, 107, 129, 51, 92, 208, 134, 18, 23,\n\t\t105, 67, 95, 153, 10, 18, 189, 75, 125, 95, 84, 150, 245,\n\t\t123, 112, 245, 232, 143, 107, 106, 249, 232, 219, 116, 144,\n\t\t120, 148, 46, 133, 15, 236, 168, 102, 205, 100, 185, 117,\n\t\t7, 199, 46, 152, 181, 76, 77, 116, 23, 142, 58, 157, 44, 39,\n\t\t110, 52, 133, 114, 231, 191, 247, 90, 49, 76, 35, 40, 118,\n\t\t192, 250, 250, 178, 195, 221, 225, 163, 223, 34, 19, 12, 208,\n\t\t143, 85, 230, 170, 199, 158, 133, 95, 74, 145, 191, 226, 131,\n\t\t237, 41, 175, 1, 214, 62, 22, 161, 35, 85, 121, 80, 52, 174,\n\t\t22, 241, 24, 71, 207, 221, 87, 138, 85, 19, 203, 26, 237,\n\t\t52, 153, 91, 125, 38, 254, 119, 136, 137, 190, 185, 233, 45,\n\t\t202, 76, 166, 226, 91, 68, 73, 44, 32, 228, 91, 224, 107,\n\t\t44, 15, 35, 233, 207, 251, 30, 68, 45, 183, 108, 161, 135,\n\t\t35, 221, 221, 145, 103, 87, 225, 195, 125, 109, 204, 11, 158,\n\t\t145, 245, 81, 194, 134, 174, 130, 105, 90, 101, 226, 220,\n\t\t209, 40, 216, 43, 125, 69, 205, 90, 166, 219, 210, 0, 63,\n\t\t50, 92, 220, 102, 247, 234, 196, 111, 213, 208, 170, 244,\n\t\t40, 102, 38, 128, 27, 152, 181, 186, 98, 0, 69, 26, 52, 32,\n\t\t142, 172, 21, 70, 81, 32, 183, 89, 244, 118, 195, 210, 105,\n\t\t249, 41, 52, 242, 173, 97, 156, 88, 77, 73, 37, 101, 99, 203,\n\t\t72, 42, 66, 112, 159, 243, 79, 189, 201, 227, 206, 5, 134,\n\t\t8, 58, 189, 76, 69, 154, 79, 254, 184, 195, 221, 189, 255,\n\t\t28, 239, 240, 207, 47, 127, 127, 251, 229, 247, 95, 95, 6,\n\t\t181, 210, 134, 166, 105, 188, 16, 3, 138, 191, 239, 33, 151,\n\t\t195, 159, 123, 129, 151, 23, 203, 145, 239, 33, 231, 163,\n\t\t157, 187, 39, 84, 103, 151, 64, 4, 109, 22, 122, 85, 180,\n\t\t109, 245, 114, 129, 161, 53, 116, 149, 32, 139, 0, 5, 158,\n\t\t231, 23, 253, 12, 193, 207, 145, 25, 218, 225, 31, 215, 185,\n\t\t139, 252, 207, 44, 223, 174, 191, 92, 168, 155, 132, 92, 206,\n\t\t189, 35, 134, 149, 217, 119, 58, 247, 142, 41, 14, 59, 150,\n\t\t212, 19, 174, 244, 244, 235, 243, 66, 151, 51, 234, 122, 45,\n\t\t224, 212, 79, 219, 238, 237, 231, 47, 191, 253, 246, 130,\n\t\t159, 28, 47, 52, 94, 49, 32, 222, 231, 125, 155, 238, 181,\n\t\t235, 71, 97, 222, 154, 64, 60, 77, 226, 124, 194, 189, 194,\n\t\t10, 206, 219, 67, 203, 221, 249, 222, 180, 40, 28, 48, 122,\n\t\t13, 246, 73, 163, 12, 16, 114, 73, 41, 47, 123, 246, 45, 107,\n\t\t228, 133, 83, 228, 50, 149, 172, 49, 40, 12, 176, 66, 224,\n\t\t49, 118, 5, 179, 233, 81, 99, 101, 74, 136, 185, 168, 112,\n\t\t211, 135, 29, 151, 177, 240, 26, 99, 14, 222, 22, 65, 68,\n\t\t135, 250, 168, 177, 136, 163, 35, 50, 175, 197, 52, 97, 225,\n\t\t22, 230, 229, 56, 52, 203, 196, 91, 48, 5, 68, 111, 170, 222,\n\t\t84, 153, 7, 152, 162, 237, 198, 86, 81, 68, 207, 94, 174,\n\t\t78, 154, 11, 153, 57, 31, 178, 85, 27, 67, 79, 65, 195, 42,\n\t\t134, 57, 41, 10, 142, 192, 115, 200, 116, 194, 207, 242, 184,\n\t\t134, 208, 54, 119, 185, 237, 62, 150, 161, 67, 127, 153, 5,\n\t\t34, 89, 199, 225, 54, 191, 183, 175, 117, 142, 136, 2, 122,\n\t\t122, 92, 3, 199, 80, 110, 123, 107, 159, 94, 168, 181, 31,\n\t\t92, 39, 78, 19, 128, 222, 162, 105, 121, 6, 133, 127, 0, 92,\n\t\t173, 126, 49, 148, 33, 113, 44, 46, 169, 89, 23, 100, 228,\n\t\t179, 86, 126, 21, 242, 109, 17, 193, 71, 166, 186, 200, 114,\n\t\t216, 231, 229, 177, 225, 179, 39, 30, 95, 213, 98, 201, 149,\n\t\t114, 177, 84, 252, 40, 31, 223, 233, 227, 158, 85, 232, 119,\n\t\t110, 209, 55, 194, 45, 202, 70, 38, 133, 211, 186, 127, 254,\n\t\t177, 221, 83, 37, 160, 114, 3, 72, 166, 68, 11, 239, 64, 40,\n\t\t128, 187, 159, 115, 113, 102, 152, 119, 94, 33, 105, 48, 223,\n\t\t116, 245, 87, 79, 91, 218, 135, 8, 236, 216, 98, 0, 108, 72,\n\t\t66, 170, 81, 83, 209, 210, 157, 100, 104, 80, 16, 59, 217,\n\t\t226, 203, 249, 86, 164, 155, 67, 218, 40, 166, 35, 54, 65,\n\t\t210, 98, 53, 49, 67, 42, 90, 67, 105, 79, 9, 40, 228, 230,\n\t\t160, 230, 14, 168, 165, 40, 153, 196, 132, 28, 127, 122, 159,\n\t\t159, 52, 43, 64, 27, 180, 127, 8, 37, 57, 63, 46, 186, 67,\n\t\t195, 44, 106, 12, 172, 129, 107, 116, 45, 214, 143, 170, 28,\n\t\t21, 2, 87, 246, 167, 64, 8, 189, 177, 23, 152, 35, 94, 83,\n\t\t56, 216, 19, 0, 113, 212, 42, 198, 244, 23, 146, 111, 255,\n\t\t124, 251, 249, 235, 31, 255, 220, 255, 249, 50, 207, 190,\n\t\t84, 235, 152, 225, 89, 201, 31, 114, 121, 26, 155, 240, 157,\n\t\t179, 62, 4, 191, 6, 165, 78, 71, 152, 77, 170, 204, 206, 249,\n\t\t252, 244, 94, 164, 16, 247, 46, 229, 183, 55, 42, 155, 56,\n\t\t189, 107, 7, 149, 108, 212, 163, 158, 29, 224, 152, 185, 117,\n\t\t35, 90, 231, 59, 202, 117, 207, 21, 249, 102, 90, 174, 52,\n\t\t219, 152, 206, 169, 22, 98, 73, 76, 253, 190, 135, 26, 190,\n\t\t231, 15, 80, 37, 31, 29, 186, 156, 65, 55, 28, 149, 107, 184,\n\t\t94, 244, 215, 111, 187, 111, 253, 168, 184, 249, 19, 108,\n\t\t73, 0, 225, 1, 182, 248, 244, 199, 2, 227, 124, 233, 123,\n\t\t240, 157, 22, 247, 105, 183, 207, 9, 153, 26, 241, 6, 38,\n\t\t166, 147, 160, 43, 148, 254, 224, 111, 238, 187, 111, 44,\n\t\t2, 97, 145, 69, 101, 39, 166, 176, 51, 58, 172, 206, 101,\n\t\t103, 198, 184, 19, 122, 180, 245, 9, 82, 186, 55, 61, 160,\n\t\t240, 139, 187, 140, 252, 33, 218, 170, 220, 249, 145, 86,\n\t\t211, 140, 105, 235, 30, 124, 60, 126, 216, 185, 190, 189,\n\t\t186, 52, 237, 165, 103, 37, 205, 232, 78, 91, 122, 243, 157,\n\t\t227, 134, 115, 209, 216, 154, 228, 54, 246, 16, 136, 134,\n\t\t184, 243, 116, 146, 60, 213, 36, 54, 125, 205, 121, 65, 70,\n\t\t170, 142, 111, 254, 176, 103, 236, 62, 214, 131, 210, 156,\n\t\t33, 245, 205, 51, 189, 82, 223, 66, 106, 239, 222, 251, 233,\n\t\t220, 166, 54, 255, 59, 104, 223, 0, 92, 215, 25, 223, 150,\n\t\t6, 163, 81, 122, 98, 151, 158, 134, 199, 162, 29, 60, 111,\n\t\t149, 61, 87, 223, 73, 20, 2, 219, 116, 243, 143, 107, 154,\n\t\t206, 215, 214, 209, 238, 85, 250, 89, 150, 138, 108, 239,\n\t\t210, 145, 88, 172, 108, 43, 117, 11, 145, 26, 98, 40, 3, 5,\n\t\t12, 7, 70, 167, 99, 158, 97, 168, 107, 20, 230, 55, 229, 196,\n\t\t107, 64, 254, 64, 184, 40, 120, 212, 87, 49, 244, 188, 6,\n\t\t114, 174, 45, 165, 89, 172, 26, 180, 29, 158, 217, 115, 216,\n\t\t214, 102, 164, 247, 150, 234, 216, 77, 14, 71, 21, 125, 87,\n\t\t180, 6, 187, 57, 110, 206, 114, 69, 251, 33, 84, 176, 202,\n\t\t244, 119, 246, 234, 182, 192, 229, 163, 171, 170, 96, 15,\n\t\t148, 216, 159, 51, 76, 157, 35, 58, 43, 232, 192, 83, 186,\n\t\t30, 53, 82, 211, 158, 37, 164, 175, 160, 55, 70, 194, 92,\n\t\t158, 81, 120, 164, 186, 180, 137, 85, 28, 119, 128, 162, 246,\n\t\t224, 60, 161, 141, 8, 228, 11, 37, 15, 239, 145, 156, 241,\n\t\t134, 117, 246, 121, 90, 70, 113, 122, 110, 153, 243, 250,\n\t\t84, 73, 40, 109, 74, 206, 84, 159, 139, 115, 38, 250, 41,\n\t\t26, 225, 42, 137, 137, 106, 230, 180, 105, 152, 55, 16, 146,\n\t\t44, 221, 146, 211, 92, 139, 219, 140, 170, 107, 126, 108,\n\t\t247, 61, 177, 146, 150, 197, 63, 197, 146, 107, 252, 255,\n\t\t219, 158, 156, 17, 165, 57, 218, 249, 116, 204, 125, 30, 240,\n\t\t131, 43, 180, 15, 87, 88, 14, 105, 119, 58, 253, 229, 108,\n\t\t58, 153, 126, 253, 242, 233, 201, 109, 57, 217, 206, 157,\n\t\t167, 126, 120, 236, 229, 203, 231, 159, 252, 112, 86, 251,\n\t\t180, 177, 158, 30, 117, 189, 147, 109, 255, 193, 28, 245,\n\t\t117, 124, 251, 245, 253, 215, 239, 132, 94, 190, 60, 87, 106,\n\t\t133, 249, 218, 239, 59, 253, 185, 241, 159, 59, 253, 59, 13,\n\t\t193, 120, 164, 31, 29, 228, 54, 223, 194, 241, 23, 174, 243,\n\t\t163, 195, 62, 127, 154, 255, 253, 242, 28, 63, 217, 115, 196,\n\t\t150, 184, 226, 44, 56, 86, 236, 220, 129, 223, 222, 27, 15,\n\t\t26, 137, 253, 76, 239, 22, 146, 231, 28, 177, 96, 35, 70,\n\t\t226, 70, 84, 157, 143, 165, 242, 78, 181, 181, 124, 181, 182,\n\t\t237, 100, 175, 193, 6, 157, 115, 231, 221, 87, 10, 80, 42,\n\t\t189, 252, 222, 80, 16, 130, 64, 96, 107, 115, 101, 185, 239,\n\t\t129, 214, 116, 185, 20, 226, 113, 141, 238, 146, 39, 91, 186,\n\t\t177, 56, 231, 231, 31, 52, 195, 227, 143, 95, 190, 190, 180,\n\t\t196, 11, 150, 200, 42, 144, 231, 188, 159, 146, 27, 62, 214,\n\t\t105, 236, 39, 194, 239, 120, 10, 190, 147, 249, 197, 149,\n\t\t22, 177, 210, 110, 218, 97, 255, 188, 211, 39, 221, 207, 7,\n\t\t251, 88, 14, 94, 97, 100, 223, 252, 239, 113, 245, 165, 109,\n\t\t141, 31, 237, 30, 66, 60, 250, 34, 12, 184, 131, 255, 53,\n\t\t49, 38, 45, 185, 119, 6, 93, 160, 53, 121, 63, 217, 48, 135,\n\t\t87, 223, 68, 101, 101, 64, 13, 41, 208, 183, 230, 230, 46,\n\t\t70, 106, 135, 214, 54, 50, 56, 72, 218, 231, 223, 255, 65,\n\t\t159, 134, 143, 155, 205, 238, 64, 16, 36, 137, 79, 161, 62,\n\t\t8, 37, 42, 132, 251, 19, 115, 84, 14, 141, 70, 25, 73, 59,\n\t\t30, 215, 196, 11, 18, 245, 161, 48, 141, 236, 255, 163, 91,\n\t\t155, 221, 116, 68, 197, 106, 160, 174, 70, 75, 171, 36, 238,\n\t\t217, 8, 163, 248, 184, 124, 218, 109, 126, 253, 229, 237,\n\t\t219, 75, 184, 230, 231, 23, 97, 205, 165, 112, 61, 135, 173,\n\t\t164, 27, 89, 173, 84, 223, 193, 119, 161, 18, 71, 158, 86,\n\t\t27, 178, 237, 201, 193, 12, 76, 92, 228, 222, 119, 95, 250,\n\t\t150, 208, 199, 249, 11, 31, 28, 95, 233, 78, 82, 124, 167,\n\t\t231, 7, 74, 242, 209, 187, 124, 223, 125, 104, 143, 107, 155,\n\t\t189, 45, 220, 246, 10, 9, 83, 0, 67, 84, 139, 12, 81, 142,\n\t\t28, 236, 115, 115, 212, 45, 235, 199, 78, 249, 142, 222, 254,\n\t\t212, 215, 67, 51, 76, 84, 134, 224, 167, 114, 130, 181, 233,\n\t\t136, 203, 207, 223, 131, 155, 70, 108, 113, 92, 127, 223,\n\t\t73, 4, 108, 254, 33, 120, 110, 162, 184, 244, 167, 163, 245,\n\t\t151, 47, 191, 189, 127, 7, 116, 250, 243, 139, 226, 216, 50,\n\t\t92, 137, 90, 14, 162, 8, 166, 193, 162, 236, 184, 202, 186,\n\t\t170, 213, 31, 25, 192, 61, 225, 70, 49, 85, 117, 165, 106,\n\t\t245, 74, 98, 109, 196, 38, 249, 230, 157, 59, 42, 211, 57,\n\t\t198, 45, 212, 52, 144, 167, 179, 46, 237, 185, 194, 28, 211,\n\t\t39, 33, 45, 122, 95, 18, 43, 84, 66, 192, 206, 37, 230, 82,\n\t\t32, 214, 57, 26, 74, 21, 214, 226, 223, 222, 73, 165, 141,\n\t\t211, 186, 193, 19, 198, 145, 244, 109, 68, 207, 109, 110,\n\t\t160, 218, 229, 62, 143, 36, 32, 46, 233, 207, 36, 69, 100,\n\t\t1, 104, 102, 117, 73, 252, 140, 143, 171, 39, 247, 62, 198,\n\t\t64, 92, 106, 150, 252, 210, 4, 8, 0, 73, 86, 210, 47, 105,\n\t\t217, 44, 82, 220, 100, 99, 250, 64, 208, 86, 43, 35, 104,\n\t\t228, 199, 106, 64, 199, 72, 101, 248, 234, 243, 71, 169, 254,\n\t\t141, 143, 230, 186, 138, 34, 62, 121, 86, 223, 149, 160, 27,\n\t\t168, 179, 219, 67, 32, 5, 53, 4, 163, 30, 215, 4, 143, 42,\n\t\t19, 182, 18, 244, 96, 155, 214, 171, 97, 98, 202, 10, 176,\n\t\t61, 242, 104, 1, 161, 211, 45, 76, 167, 91, 183, 162, 171,\n\t\t11, 159, 222, 128, 223, 141, 40, 22, 130, 208, 96, 143, 203,\n\t\t178, 110, 9, 48, 229, 62, 91, 119, 62, 221, 200, 205, 130,\n\t\t32, 89, 42, 240, 61, 199, 188, 158, 112, 73, 236, 52, 92,\n\t\t206, 69, 183, 24, 252, 76, 86, 55, 17, 9, 166, 19, 27, 43,\n\t\t148, 39, 6, 168, 238, 201, 77, 199, 133, 8, 211, 232, 250,\n\t\t17, 249, 28, 218, 98, 95, 105, 145, 149, 206, 237, 136, 247,\n\t\t194, 189, 224, 113, 13, 185, 31, 97, 235, 69, 85, 232, 32,\n\t\t80, 76, 125, 33, 207, 247, 17, 167, 227, 145, 132, 177, 183,\n\t\t202, 205, 65, 107, 19, 221, 152, 149, 69, 217, 122, 86, 62,\n\t\t120, 16, 253, 170, 169, 24, 196, 23, 149, 30, 200, 133, 87,\n\t\t20, 190, 188, 12, 45, 120, 81, 70, 93, 165, 233, 38, 63, 102,\n\t\t221, 122, 92, 125, 32, 127, 48, 251, 35, 14, 96, 39, 213,\n\t\t119, 239, 210, 75, 18, 221, 253, 46, 126, 19, 103, 6, 98,\n\t\t49, 206, 50, 189, 166, 103, 197, 25, 126, 0, 39, 94, 19, 77,\n\t\t14, 73, 238, 145, 234, 110, 165, 76, 73, 49, 214, 90, 105,\n\t\t20, 181, 84, 12, 52, 71, 220, 17, 166, 69, 63, 125, 83, 33,\n\t\t78, 187, 140, 104, 100, 46, 58, 97, 26, 238, 148, 45, 41,\n\t\t120, 141, 161, 219, 130, 199, 30, 102, 169, 31, 247, 116,\n\t\t49, 127, 28, 61, 156, 130, 18, 50, 179, 48, 82, 248, 71, 226,\n\t\t214, 131, 131, 210, 94, 160, 104, 252, 66, 192, 70, 245, 97,\n\t\t123, 40, 48, 20, 254, 50, 240, 159, 136, 43, 87, 233, 147,\n\t\t252, 187, 81, 35, 77, 58, 32, 228, 192, 207, 103, 247, 95,\n\t\t127, 126, 219, 95, 137, 16, 126, 142, 166, 157, 54, 223, 145,\n\t\t83, 196, 173, 19, 146, 50, 205, 22, 8, 80, 138, 131, 128,\n\t\t39, 69, 50, 104, 26, 162, 183, 213, 17, 67, 149, 222, 200,\n\t\t215, 168, 26, 136, 178, 210, 85, 153, 34, 140, 9, 147, 173,\n\t\t39, 196, 49, 65, 53, 1, 39, 3, 131, 32, 98, 12, 228, 77, 117,\n\t\t204, 0, 43, 57, 147, 74, 2, 73, 41, 155, 38, 252, 84, 67,\n\t\t103, 247, 96, 233, 113, 167, 111, 36, 91, 227, 202, 81, 20,\n\t\t209, 225, 193, 101, 27, 241, 33, 83, 104, 133, 138, 39, 100,\n\t\t54, 83, 35, 138, 40, 49, 100, 50, 146, 208, 19, 5, 133, 8,\n\t\t195, 238, 184, 108, 28, 151, 221, 211, 198, 108, 141, 252,\n\t\t219, 116, 92, 102, 144, 95, 49, 125, 123, 111, 87, 100, 85,\n\t\t123, 249, 44, 157, 104, 218, 126, 168, 90, 183, 186, 172,\n\t\t180, 178, 250, 83, 223, 57, 117, 194, 229, 117, 33, 92, 6,\n\t\t41, 92, 106, 118, 52, 161, 2, 90, 230, 86, 108, 123, 94, 84,\n\t\t238, 193, 59, 74, 23, 199, 5, 238, 23, 248, 61, 173, 155,\n\t\t55, 97, 182, 29, 128, 232, 57, 99, 7, 13, 207, 39, 72, 17,\n\t\t239, 157, 98, 29, 4, 81, 1, 223, 219, 30, 24, 31, 207, 27,\n\t\t89, 205, 28, 112, 227, 122, 43, 146, 70, 8, 218, 81, 245,\n\t\t166, 106, 54, 158, 59, 106, 170, 116, 208, 239, 126, 25, 23,\n\t\t32, 231, 215, 170, 18, 236, 136, 17, 143, 75, 48, 9, 178,\n\t\t200, 248, 16, 69, 59, 130, 106, 207, 206, 160, 104, 32, 191,\n\t\t62, 126, 123, 8, 186, 35, 69, 20, 84, 201, 141, 183, 35, 52,\n\t\t84, 233, 172, 66, 193, 21, 87, 142, 58, 124, 80, 10, 81, 16,\n\t\t112, 89, 233, 139, 238, 144, 159, 148, 119, 207, 240, 50,\n\t\t100, 65, 77, 143, 84, 1, 242, 31, 78, 147, 30, 137, 31, 45,\n\t\t166, 1, 175, 164, 220, 42, 98, 99, 34, 79, 184, 72, 22, 51,\n\t\t37, 214, 72, 210, 36, 142, 59, 95, 82, 154, 60, 240, 231,\n\t\t32, 199, 184, 247, 96, 106, 26, 224, 123, 154, 239, 171, 75,\n\t\t1, 68, 196, 124, 138, 29, 69, 96, 179, 78, 123, 177, 246,\n\t\t156, 215, 63, 151, 155, 104, 38, 12, 213, 247, 94, 68, 150,\n\t\t251, 218, 83, 5, 24, 139, 68, 144, 205, 55, 98, 154, 88, 169,\n\t\t116, 128, 177, 64, 25, 197, 40, 197, 164, 110, 46, 193, 121,\n\t\t195, 82, 65, 27, 65, 240, 171, 78, 51, 225, 152, 226, 52,\n\t\t163, 82, 172, 18, 131, 77, 9, 226, 20, 200, 140, 219, 161,\n\t\t59, 192, 82, 141, 29, 89, 20, 94, 76, 161, 83, 53, 8, 5, 179,\n\t\t14, 35, 33, 95, 70, 150, 25, 214, 77, 191, 53, 131, 142, 2,\n\t\t136, 108, 41, 98, 49, 130, 98, 94, 198, 109, 241, 141, 11,\n\t\t60, 75, 166, 196, 177, 47, 51, 218, 162, 32, 137, 245, 37,\n\t\t90, 251, 22, 198, 133, 6, 81, 93, 118, 250, 244, 152, 190,\n\t\t228, 217, 5, 52, 60, 118, 176, 166, 102, 51, 132, 185, 19,\n\t\t64, 127, 27, 76, 222, 178, 227, 50, 120, 92, 59, 50, 100,\n\t\t16, 42, 148, 99, 109, 118, 231, 133, 80, 6, 130, 172, 70,\n\t\t50, 176, 165, 5, 245, 173, 74, 157, 246, 80, 157, 234, 57,\n\t\t13, 54, 20, 142, 9, 186, 215, 118, 228, 31, 172, 158, 191,\n\t\t189, 164, 102, 126, 78, 47, 1, 244, 170, 126, 209, 116, 13,\n\t\t139, 187, 237, 49, 220, 75, 186, 197, 112, 223, 75, 122, 92,\n\t\t115, 165, 242, 191, 251, 238, 251, 108, 205, 249, 41, 134,\n\t\t219, 116, 38, 239, 244, 183, 184, 251, 252, 38, 215, 242,\n\t\t184, 250, 226, 182, 144, 11, 127, 59, 255, 185, 149, 116,\n\t\t239, 133, 174, 197, 127, 200, 7, 141, 225, 233, 176, 226,\n\t\t230, 97, 49, 204, 127, 233, 251, 156, 146, 124, 223, 195,\n\t\t247, 47, 243, 114, 205, 79, 219, 225, 189, 189, 180, 195,\n\t\t139, 132, 159, 149, 254, 48, 8, 61, 180, 118, 248, 91, 226,\n\t\t23, 66, 83, 54, 241, 216, 187, 195, 223, 166, 15, 215, 69,\n\t\t65, 88, 98, 203, 115, 249, 60, 173, 242, 138, 182, 111, 59,\n\t\t206, 78, 125, 227, 51, 19, 143, 200, 51, 39, 148, 194, 148,\n\t\t222, 31, 215, 18, 169, 14, 177, 117, 5, 8, 24, 251, 134, 150,\n\t\t82, 37, 101, 114, 206, 120, 253, 252, 235, 55, 99, 211, 101,\n\t\t167, 38, 128, 209, 12, 245, 158, 69, 118, 216, 20, 234, 56,\n\t\t125, 168, 1, 119, 133, 112, 53, 114, 235, 170, 122, 163, 49,\n\t\t115, 121, 109, 105, 99, 41, 198, 17, 12, 118, 150, 236, 127,\n\t\t232, 20, 102, 227, 249, 161, 51, 47, 115, 5, 87, 244, 124,\n\t\t80, 85, 138, 83, 18, 94, 112, 138, 48, 179, 57, 198, 131,\n\t\t102, 31, 49, 179, 51, 31, 25, 236, 93, 85, 220, 135, 165,\n\t\t20, 188, 174, 220, 244, 110, 68, 199, 111, 238, 56, 1, 25,\n\t\t139, 125, 250, 225, 161, 28, 4, 38, 98, 187, 202, 105, 177,\n\t\t174, 66, 16, 193, 55, 64, 45, 52, 48, 159, 0, 3, 161, 37,\n\t\t11, 178, 148, 36, 86, 98, 200, 108, 182, 73, 144, 10, 86,\n\t\t133, 122, 60, 42, 232, 85, 159, 150, 220, 27, 50, 37, 164,\n\t\t249, 148, 120, 250, 214, 12, 148, 242, 245, 7, 190, 37, 81,\n\t\t101, 6, 107, 55, 171, 245, 73, 42, 6, 142, 156, 55, 126, 0,\n\t\t71, 144, 88, 85, 230, 147, 24, 27, 18, 75, 176, 168, 34, 58,\n\t\t110, 30, 72, 252, 121, 93, 26, 4, 74, 193, 39, 22, 214, 181,\n\t\t145, 148, 224, 42, 81, 151, 111, 84, 90, 157, 249, 37, 186,\n\t\t237, 187, 4, 231, 88, 104, 229, 134, 12, 69, 187, 47, 166,\n\t\t23, 202, 68, 112, 109, 24, 7, 40, 117, 94, 24, 56, 189, 36,\n\t\t70, 248, 135, 96, 80, 48, 47, 50, 148, 13, 111, 77, 140, 49,\n\t\t60, 139, 219, 162, 215, 18, 253, 152, 22, 153, 50, 233, 231,\n\t\t40, 4, 203, 78, 189, 181, 188, 117, 233, 133, 66, 135, 119,\n\t\t95, 3, 50, 242, 218, 104, 250, 7, 199, 189, 80, 55, 241, 82,\n\t\t39, 49, 196, 161, 146, 28, 128, 14, 105, 89, 145, 180, 76,\n\t\t66, 208, 82, 162, 78, 143, 107, 142, 110, 26, 250, 45, 29,\n\t\t113, 44, 178, 52, 60, 68, 40, 96, 97, 69, 121, 124, 131, 82,\n\t\t22, 50, 128, 83, 92, 77, 113, 29, 30, 96, 15, 42, 188, 18,\n\t\t179, 37, 55, 148, 96, 121, 113, 174, 17, 101, 42, 206, 2,\n\t\t59, 194, 140, 49, 66, 182, 53, 54, 131, 138, 93, 82, 93, 200,\n\t\t24, 38, 78, 187, 62, 174, 153, 64, 126, 164, 240, 63, 16,\n\t\t92, 245, 172, 37, 198, 51, 67, 76, 232, 243, 236, 129, 194,\n\t\t191, 146, 26, 59, 158, 92, 204, 81, 0, 179, 18, 171, 242,\n\t\t210, 84, 161, 66, 60, 26, 190, 228, 36, 166, 97, 48, 217,\n\t\t174, 169, 218, 15, 101, 170, 193, 12, 2, 6, 95, 105, 148,\n\t\t31, 187, 164, 127, 252, 254, 237, 235, 239, 95, 127, 253,\n\t\t229, 53, 91, 242, 243, 11, 190, 44, 57, 44, 42, 173, 109,\n\t\t41, 118, 10, 217, 59, 97, 61, 104, 40, 86, 34, 250, 95, 151,\n\t\t14, 142, 63, 192, 107, 64, 233, 172, 119, 145, 242, 160, 108,\n\t\t116, 185, 69, 206, 168, 38, 100, 56, 248, 68, 73, 116, 102,\n\t\t9, 140, 1, 124, 35, 105, 26, 9, 110, 72, 180, 76, 203, 245,\n\t\t154, 82, 200, 74, 143, 117, 219, 82, 209, 206, 74, 227, 93,\n\t\t236, 230, 206, 117, 240, 116, 72, 85, 193, 6, 172, 10, 240,\n\t\t137, 188, 171, 44, 24, 253, 196, 204, 225, 136, 119, 191,\n\t\t210, 147, 110, 158, 168, 161, 40, 140, 239, 136, 92, 129,\n\t\t80, 147, 188, 198, 42, 150, 20, 253, 49, 162, 152, 115, 160,\n\t\t50, 232, 137, 31, 71, 8, 216, 124, 105, 172, 160, 11, 158,\n\t\t15, 199, 40, 153, 102, 212, 252, 243, 16, 210, 216, 5, 186,\n\t\t186, 210, 197, 27, 220, 147, 40, 80, 244, 225, 148, 245, 2,\n\t\t109, 221, 193, 40, 239, 136, 176, 179, 94, 6, 110, 5, 119,\n\t\t210, 229, 87, 144, 73, 153, 166, 144, 124, 30, 37, 206, 215,\n\t\t227, 171, 176, 174, 234, 247, 59, 14, 80, 33, 194, 88, 41,\n\t\t105, 209, 48, 57, 144, 209, 232, 143, 250, 184, 250, 105,\n\t\t51, 81, 20, 62, 115, 132, 112, 142, 35, 162, 233, 218, 66,\n\t\t123, 167, 144, 187, 231, 78, 76, 59, 223, 117, 67, 182, 67,\n\t\t219, 112, 206, 52, 177, 230, 229, 132, 171, 228, 47, 95, 243,\n\t\t242, 87, 46, 234, 51, 235, 65, 255, 181, 75, 254, 240, 138,\n\t\t196, 150, 242, 31, 189, 220, 127, 254, 169, 123, 248, 15,\n\t\t63, 117, 40, 233, 63, 249, 212, 243, 114, 255, 241, 167, 158,\n\t\t23, 253, 207, 62, 117, 140, 229, 63, 249, 212, 243, 114, 255,\n\t\t241, 167, 158, 23, 253, 15, 63, 117, 33, 1, 116, 149, 118,\n\t\t210, 169, 0, 182, 141, 150, 237, 248, 57, 149, 15, 37, 227,\n\t\t87, 114, 136, 78, 54, 1, 21, 10, 164, 45, 134, 119, 178, 238,\n\t\t217, 124, 146, 121, 47, 81, 240, 253, 50, 148, 51, 146, 245,\n\t\t253, 212, 94, 139, 209, 126, 98, 174, 38, 73, 85, 167, 120,\n\t\t217, 237, 77, 23, 122, 9, 10, 56, 124, 126, 151, 105, 77,\n\t\t3, 67, 197, 169, 96, 208, 167, 235, 232, 111, 95, 254, 254,\n\t\t150, 94, 86, 208, 79, 120, 190, 41, 193, 56, 27, 128, 211,\n\t\t236, 47, 121, 243, 247, 15, 169, 201, 129, 106, 20, 183, 37,\n\t\t77, 232, 137, 65, 94, 156, 90, 80, 249, 220, 3, 107, 194,\n\t\t196, 58, 157, 182, 224, 242, 81, 239, 187, 247, 68, 201, 73,\n\t\t212, 91, 236, 100, 249, 233, 188, 157, 244, 239, 22, 152,\n\t\t250, 131, 131, 92, 197, 145, 96, 91, 218, 114, 185, 17, 16,\n\t\t108, 152, 190, 32, 21, 11, 163, 180, 163, 178, 51, 68, 88,\n\t\t49, 136, 43, 222, 229, 239, 92, 10, 231, 126, 63, 173, 206,\n\t\t59, 228, 202, 47, 167, 2, 139, 193, 198, 19, 155, 63, 252,\n\t\t230, 99, 63, 234, 200, 26, 199, 84, 21, 68, 254, 169, 15,\n\t\t149, 12, 247, 221, 187, 27, 80, 86, 119, 136, 132, 108, 166,\n\t\t52, 33, 37, 230, 178, 114, 234, 167, 199, 53, 205, 149, 138,\n\t\t33, 117, 90, 180, 131, 139, 87, 45, 89, 142, 98, 191, 76,\n\t\t135, 190, 223, 99, 228, 240, 100, 83, 117, 2, 98, 45, 163,\n\t\t116, 50, 47, 200, 57, 112, 122, 174, 82, 247, 63, 210, 22,\n\t\t233, 236, 194, 22, 209, 61, 137, 42, 234, 13, 234, 149, 119,\n\t\t240, 144, 220, 32, 215, 112, 23, 18, 192, 229, 16, 219, 35,\n\t\t45, 251, 114, 206, 46, 23, 190, 193, 95, 126, 92, 19, 211,\n\t\t57, 248, 62, 221, 250, 80, 142, 124, 247, 158, 135, 54, 34,\n\t\t138, 220, 97, 194, 194, 71, 202, 30, 131, 170, 66, 11, 228,\n\t\t142, 201, 86, 37, 80, 99, 180, 26, 178, 71, 232, 1, 239, 187,\n\t\t212, 160, 232, 179, 250, 124, 51, 51, 9, 247, 19, 166, 231,\n\t\t126, 57, 247, 162, 114, 38, 108, 120, 221, 119, 33, 87, 56,\n\t\t215, 111, 242, 93, 220, 153, 19, 140, 31, 146, 52, 184, 207,\n\t\t7, 58, 109, 31, 117, 150, 187, 135, 196, 90, 162, 4, 89, 232,\n\t\t238, 40, 183, 61, 102, 233, 41, 66, 17, 120, 67, 163, 137,\n\t\t19, 118, 243, 126, 152, 96, 138, 114, 19, 200, 11, 86, 215,\n\t\t65, 163, 22, 16, 174, 33, 8, 63, 65, 2, 14, 232, 101, 201,\n\t\t161, 153, 19, 145, 243, 185, 78, 21, 17, 51, 5, 52, 13, 60,\n\t\t114, 76, 67, 201, 181, 164, 240, 102, 11, 16, 13, 149, 29,\n\t\t35, 210, 72, 23, 37, 224, 136, 50, 49, 233, 131, 66, 51, 254,\n\t\t131, 25, 233, 252, 219, 219, 207, 47, 83, 210, 43, 228, 84,\n\t\t35, 102, 177, 165, 163, 147, 162, 143, 95, 106, 40, 141, 55,\n\t\t159, 241, 145, 93, 1, 72, 66, 32, 132, 61, 131, 23, 10, 158,\n\t\t48, 57, 94, 15, 111, 6, 249, 67, 209, 165, 34, 69, 31, 149,\n\t\t150, 149, 49, 14, 95, 21, 214, 244, 0, 160, 6, 87, 235, 89,\n\t\t141, 88, 54, 223, 149, 245, 176, 11, 111, 132, 239, 142, 64,\n\t\t99, 254, 96, 69, 72, 19, 212, 211, 170, 102, 78, 86, 173,\n\t\t5, 239, 34, 108, 38, 161, 145, 225, 64, 169, 59, 237, 233,\n\t\t34, 195, 131, 18, 203, 146, 2, 52, 1, 212, 88, 108, 88, 205,\n\t\t69, 72, 72, 78, 53, 198, 27, 166, 63, 61, 162, 101, 138, 85,\n\t\t67, 27, 98, 172, 138, 226, 23, 36, 166, 78, 129, 152, 203,\n\t\t136, 51, 66, 38, 92, 84, 91, 114, 187, 221, 241, 120, 23,\n\t\t77, 96, 225, 198, 17, 128, 42, 70, 18, 47, 236, 41, 206, 25,\n\t\t250, 20, 3, 201, 39, 119, 120, 173, 167, 224, 45, 31, 105,\n\t\t60, 15, 183, 213, 57, 227, 71, 13, 30, 80, 4, 45, 108, 53,\n\t\t12, 245, 201, 85, 212, 31, 65, 153, 160, 42, 204, 157, 179,\n\t\t68, 94, 196, 102, 40, 241, 205, 151, 225, 5, 91, 3, 199, 156,\n\t\t129, 6, 133, 135, 209, 53, 153, 91, 228, 142, 202, 28, 177,\n\t\t186, 225, 67, 17, 191, 12, 116, 160, 8, 253, 236, 41, 66,\n\t\t96, 107, 126, 30, 49, 35, 113, 197, 201, 54, 218, 64, 175,\n\t\t146, 237, 105, 176, 112, 35, 81, 228, 199, 218, 108, 161,\n\t\t18, 230, 61, 143, 235, 124, 145, 133, 124, 223, 8, 156, 153,\n\t\t248, 87, 17, 26, 4, 207, 219, 183, 208, 7, 77, 16, 21, 132,\n\t\t120, 148, 57, 168, 72, 139, 172, 91, 55, 73, 159, 222, 61,\n\t\t136, 199, 220, 230, 27, 98, 7, 114, 239, 223, 223, 190, 53,\n\t\t230, 113, 27, 248, 222, 233, 17, 251, 199, 83, 176, 227, 190,\n\t\t203, 239, 220, 66, 163, 37, 206, 81, 126, 131, 136, 180, 152,\n\t\t96, 150, 153, 25, 59, 185, 187, 114, 139, 145, 103, 135, 65,\n\t\t92, 218, 78, 159, 118, 255, 248, 248, 216, 49, 220, 74, 206,\n\t\t187, 124, 41, 31, 62, 236, 185, 237, 209, 77, 83, 65, 235,\n\t\t49, 125, 229, 82, 146, 4, 0, 60, 230, 197, 61, 41, 153, 213,\n\t\t135, 61, 20, 218, 63, 250, 208, 56, 179, 179, 144, 243, 122,\n\t\t210, 186, 227, 4, 203, 229, 70, 191, 56, 111, 99, 236, 242,\n\t\t140, 251, 242, 74, 159, 239, 90, 118, 252, 96, 46, 254, 253,\n\t\t219, 219, 175, 47, 116, 207, 63, 247, 63, 175, 44, 201, 62,\n\t\t108, 33, 75, 57, 146, 119, 158, 74, 93, 149, 151, 180, 69,\n\t\t114, 190, 151, 63, 131, 14, 34, 83, 210, 183, 116, 164, 173,\n\t\t41, 149, 13, 109, 242, 65, 142, 164, 71, 138, 209, 37, 181,\n\t\t116, 196, 13, 71, 164, 35, 14, 250, 169, 78, 49, 101, 190,\n\t\t186, 29, 42, 63, 150, 142, 248, 184, 58, 90, 23, 242, 61,\n\t\t117, 127, 235, 238, 190, 207, 191, 123, 119, 159, 183, 194,\n\t\t219, 183, 175, 239, 227, 215, 223, 94, 248, 90, 126, 86, 124,\n\t\t113, 172, 132, 204, 61, 210, 208, 78, 1, 238, 218, 204, 165,\n\t\t178, 194, 217, 149, 101, 6, 113, 180, 84, 56, 237, 155, 148,\n\t\t213, 146, 70, 226, 99, 26, 5, 117, 194, 81, 198, 222, 180,\n\t\t148, 133, 114, 2, 136, 36, 210, 122, 76, 34, 167, 222, 229,\n\t\t177, 211, 202, 187, 55, 113, 46, 4, 232, 206, 226, 112, 84,\n\t\t137, 208, 141, 128, 56, 162, 76, 73, 27, 201, 87, 210, 208,\n\t\t193, 102, 167, 73, 131, 82, 150, 84, 35, 15, 65, 162, 57,\n\t\t249, 110, 92, 78, 64, 159, 47, 35, 71, 152, 247, 4, 115, 20,\n\t\t120, 62, 199, 86, 136, 119, 126, 23, 30, 33, 146, 4, 62, 172,\n\t\t122, 106, 68, 33, 81, 114, 244, 6, 231, 153, 190, 84, 150,\n\t\t95, 33, 140, 69, 168, 157, 29, 60, 87, 169, 19, 65, 66, 189,\n\t\t23, 42, 197, 96, 28, 198, 220, 24, 20, 214, 242, 28, 48, 227,\n\t\t38, 16, 40, 90, 167, 93, 133, 227, 90, 60, 55, 248, 196, 201,\n\t\t153, 74, 232, 198, 121, 0, 125, 156, 62, 229, 244, 87, 188,\n\t\t20, 127, 161, 196, 45, 91, 46, 137, 201, 173, 60, 17, 71,\n\t\t209, 214, 133, 101, 106, 138, 227, 159, 206, 20, 47, 118,\n\t\t179, 189, 166, 91, 193, 83, 123, 243, 71, 187, 107, 46, 85,\n\t\t102, 253, 108, 107, 141, 18, 62, 43, 229, 177, 0, 34, 131,\n\t\t142, 127, 48, 50, 194, 211, 196, 182, 18, 140, 111, 166, 161,\n\t\t34, 96, 40, 85, 222, 135, 7, 148, 216, 2, 30, 21, 114, 121,\n\t\t29, 54, 10, 139, 167, 203, 26, 234, 185, 149, 98, 255, 28,\n\t\t155, 253, 219, 237, 203, 79, 223, 190, 142, 47, 191, 255,\n\t\t250, 138, 248, 252, 233, 19, 164, 109, 152, 67, 54, 75, 244,\n\t\t85, 169, 64, 189, 224, 27, 141, 158, 157, 71, 206, 169, 66,\n\t\t168, 90, 27, 194, 81, 101, 205, 67, 104, 193, 59, 175, 195,\n\t\t203, 214, 9, 2, 112, 21, 71, 122, 87, 49, 238, 200, 2, 188,\n\t\t64, 244, 137, 70, 211, 73, 136, 146, 202, 240, 27, 30, 97,\n\t\t192, 151, 177, 145, 162, 49, 253, 231, 29, 231, 14, 189, 45,\n\t\t53, 108, 222, 13, 187, 105, 196, 229, 78, 189, 52, 242, 117,\n\t\t37, 13, 32, 164, 203, 187, 65, 150, 178, 38, 231, 162, 230,\n\t\t12, 158, 182, 79, 37, 26, 231, 31, 121, 87, 38, 235, 69, 22,\n\t\t145, 76, 24, 105, 135, 217, 219, 86, 189, 118, 249, 41, 37,\n\t\t68, 6, 6, 253, 121, 123, 173, 8, 23, 63, 244, 157, 228, 250,\n\t\t200, 14, 208, 82, 170, 57, 15, 92, 78, 232, 111, 226, 61,\n\t\t17, 186, 84, 172, 42, 121, 43, 102, 194, 126, 216, 113, 226,\n\t\t77, 201, 223, 119, 101, 254, 9, 152, 74, 245, 101, 201, 147,\n\t\t158, 193, 161, 229, 150, 134, 99, 91, 57, 248, 165, 23, 117,\n\t\t22, 5, 124, 218, 113, 42, 159, 62, 46, 251, 238, 85, 123,\n\t\t138, 31, 11, 47, 43, 248, 83, 7, 42, 15, 152, 203, 80, 43,\n\t\t217, 36, 180, 144, 135, 5, 14, 240, 227, 142, 83, 43, 172,\n\t\t69, 33, 244, 29, 111, 76, 201, 240, 24, 65, 60, 95, 24, 115,\n\t\t255, 187, 177, 74, 191, 195, 46, 199, 92, 20, 212, 180, 251,\n\t\t176, 231, 113, 13, 36, 195, 230, 123, 154, 235, 134, 145,\n\t\t34, 86, 120, 122, 80, 109, 84, 193, 140, 206, 100, 147, 85,\n\t\t251, 124, 129, 146, 175, 26, 220, 72, 49, 68, 228, 174, 164,\n\t\t39, 174, 194, 208, 18, 118, 151, 106, 105, 201, 25, 25, 37,\n\t\t50, 247, 151, 247, 184, 16, 44, 118, 46, 117, 163, 211, 132,\n\t\t162, 249, 113, 77, 181, 31, 113, 11, 132, 108, 214, 16, 28,\n\t\t62, 232, 14, 96, 117, 231, 92, 239, 135, 10, 16, 64, 44, 226,\n\t\t217, 188, 226, 61, 154, 198, 144, 15, 151, 177, 87, 124, 87,\n\t\t217, 60, 239, 137, 170, 217, 0, 148, 15, 165, 211, 76, 207,\n\t\t30, 205, 105, 192, 220, 21, 18, 158, 253, 150, 185, 16, 63,\n\t\t67, 151, 157, 64, 74, 236, 248, 213, 241, 122, 239, 248, 96,\n\t\t207, 208, 252, 40, 130, 96, 196, 3, 96, 53, 192, 115, 116,\n\t\t113, 165, 228, 230, 71, 21, 39, 0, 143, 64, 239, 187, 119,\n\t\t77, 86, 241, 189, 227, 214, 109, 32, 235, 167, 203, 227, 58,\n\t\t61, 166, 68, 228, 150, 4, 127, 198, 136, 38, 227, 195, 103,\n\t\t254, 196, 243, 242, 244, 79, 12, 152, 172, 135, 226, 123,\n\t\t156, 65, 94, 164, 227, 195, 157, 31, 251, 114, 28, 153, 60,\n\t\t115, 137, 206, 54, 113, 204, 139, 186, 161, 191, 194, 63,\n\t\t108, 155, 243, 22, 28, 31, 247, 57, 231, 206, 111, 183, 95,\n\t\t223, 126, 249, 250, 191, 247, 191, 125, 251, 242, 207, 183,\n\t\t255, 250, 245, 219, 11, 255, 240, 207, 47, 53, 67, 6, 50,\n\t\t9, 36, 173, 230, 93, 60, 42, 233, 233, 243, 28, 237, 53, 110,\n\t\t199, 2, 24, 152, 135, 67, 21, 232, 39, 179, 34, 241, 209,\n\t\t17, 197, 242, 40, 172, 242, 2, 61, 106, 91, 43, 226, 67, 74,\n\t\t152, 200, 148, 252, 4, 18, 82, 17, 78, 201, 40, 100, 39, 252,\n\t\t39, 106, 25, 176, 132, 169, 118, 53, 110, 4, 125, 135, 182,\n\t\t157, 168, 68, 171, 138, 134, 211, 108, 31, 150, 60, 91, 237,\n\t\t130, 77, 95, 188, 107, 88, 199, 182, 163, 214, 93, 38, 206,\n\t\t161, 81, 9, 27, 248, 47, 171, 10, 22, 19, 60, 1, 45, 7, 224,\n\t\t21, 128, 53, 210, 131, 186, 90, 196, 13, 181, 197, 60, 124,\n\t\t136, 196, 135, 66, 136, 14, 242, 26, 102, 143, 41, 91, 96,\n\t\t134, 26, 95, 9, 198, 168, 114, 15, 58, 115, 26, 235, 54, 214,\n\t\t32, 134, 8, 73, 116, 85, 103, 168, 101, 53, 195, 108, 188,\n\t\t80, 158, 28, 121, 109, 17, 141, 178, 4, 157, 201, 213, 88,\n\t\t81, 82, 81, 182, 175, 161, 120, 36, 190, 21, 90, 87, 121,\n\t\t132, 214, 120, 20, 48, 236, 60, 7, 139, 58, 148, 214, 73,\n\t\t36, 100, 228, 119, 128, 9, 69, 25, 144, 212, 200, 76, 171,\n\t\t31, 82, 32, 74, 218, 144, 213, 218, 165, 123, 52, 202, 85,\n\t\t211, 94, 16, 226, 90, 34, 51, 162, 201, 71, 243, 242, 28,\n\t\t4, 25, 42, 255, 202, 146, 140, 226, 75, 1, 158, 64, 244, 176,\n\t\t85, 19, 10, 171, 164, 141, 246, 19, 89, 54, 76, 141, 84, 218,\n\t\t80, 5, 79, 151, 14, 164, 39, 137, 73, 224, 54, 191, 180, 20,\n\t\t3, 40, 100, 154, 64, 203, 86, 140, 201, 164, 152, 40, 182,\n\t\t180, 19, 74, 30, 80, 28, 132, 80, 13, 138, 177, 171, 146,\n\t\t53, 80, 101, 122, 103, 19, 15, 75, 53, 235, 130, 33, 215,\n\t\t191, 237, 89, 224, 78, 198, 155, 185, 123, 167, 21, 192, 92,\n\t\t114, 4, 235, 19, 240, 22, 172, 35, 200, 57, 23, 196, 179,\n\t\t82, 221, 10, 211, 181, 102, 150, 173, 199, 122, 232, 24, 125,\n\t\t227, 23, 150, 42, 253, 137, 37, 26, 22, 40, 35, 1, 114, 139,\n\t\t216, 226, 225, 77, 221, 149, 122, 79, 84, 105, 121, 137, 106,\n\t\t33, 6, 92, 132, 142, 73, 231, 142, 85, 59, 133, 5, 152, 15,\n\t\t141, 6, 202, 221, 202, 41, 70, 184, 168, 147, 138, 237, 50,\n\t\t217, 93, 50, 54, 72, 4, 62, 224, 241, 146, 34, 200, 48, 110,\n\t\t186, 98, 90, 55, 34, 41, 33, 73, 207, 36, 181, 38, 18, 42,\n\t\t52, 168, 11, 36, 249, 231, 27, 224, 165, 135, 253, 206, 211,\n\t\t122, 10, 28, 41, 197, 116, 129, 253, 33, 40, 115, 151, 188,\n\t\t133, 12, 143, 42, 212, 97, 10, 252, 84, 79, 201, 1, 107, 126,\n\t\t142, 138, 58, 34, 94, 89, 161, 175, 9, 45, 247, 228, 185,\n\t\t108, 192, 212, 228, 169, 157, 47, 67, 64, 113, 234, 104, 193,\n\t\t54, 178, 18, 26, 34, 244, 17, 200, 28, 52, 203, 140, 93, 199,\n\t\t104, 125, 100, 32, 87, 6, 162, 18, 21, 157, 6, 221, 229, 229,\n\t\t149, 184, 129, 162, 171, 163, 104, 72, 100, 223, 135, 65,\n\t\t111, 54, 152, 225, 187, 42, 217, 200, 77, 9, 26, 254, 137,\n\t\t209, 112, 157, 237, 195, 71, 5, 166, 5, 253, 75, 53, 241,\n\t\t74, 186, 206, 36, 21, 18, 64, 102, 49, 39, 121, 105, 160,\n\t\t5, 130, 227, 26, 22, 157, 42, 24, 95, 117, 9, 166, 62, 174,\n\t\t41, 213, 45, 180, 105, 169, 226, 130, 128, 2, 99, 166, 148,\n\t\t176, 3, 209, 45, 9, 221, 144, 86, 120, 17, 183, 177, 181,\n\t\t20, 86, 99, 197, 113, 37, 224, 245, 178, 73, 51, 229, 213,\n\t\t161, 164, 21, 89, 71, 29, 159, 255, 20, 126, 95, 226, 238,\n\t\t110, 137, 184, 175, 246, 31, 227, 16, 105, 222, 179, 65, 35,\n\t\t45, 103, 146, 247, 230, 14, 141, 157, 121, 163, 192, 244,\n\t\t146, 84, 32, 86, 140, 199, 208, 37, 88, 159, 63, 142, 5, 98,\n\t\t79, 76, 6, 204, 241, 181, 28, 157, 128, 52, 203, 228, 171,\n\t\t254, 159, 60, 176, 55, 139, 134, 166, 16, 113, 98, 150, 41,\n\t\t88, 238, 95, 167, 31, 125, 76, 70, 125, 115, 147, 99, 204,\n\t\t120, 49, 96, 34, 8, 50, 64, 10, 165, 2, 60, 65, 114, 42, 76,\n\t\t98, 81, 228, 170, 192, 66, 41, 43, 51, 144, 173, 236, 90,\n\t\t132, 199, 53, 19, 119, 184, 47, 245, 240, 164, 144, 2, 199,\n\t\t207, 195, 27, 65, 67, 101, 235, 211, 82, 86, 87, 146, 46,\n\t\t147, 136, 131, 40, 157, 95, 67, 116, 21, 171, 103, 74, 79,\n\t\t216, 214, 59, 222, 219, 0, 89, 29, 35, 74, 185, 7, 195, 15,\n\t\t133, 146, 172, 192, 21, 49, 215, 138, 207, 4, 103, 6, 201,\n\t\t34, 232, 92, 5, 246, 154, 7, 180, 231, 24, 177, 42, 16, 199,\n\t\t36, 180, 252, 77, 89, 181, 70, 208, 153, 93, 198, 26, 0, 196,\n\t\t48, 31, 35, 216, 251, 36, 181, 122, 25, 223, 53, 207, 150,\n\t\t129, 187, 173, 246, 207, 194, 154, 203, 253, 249, 213, 52,\n\t\t50, 179, 202, 141, 189, 42, 123, 57, 234, 31, 62, 134, 64,\n\t\t120, 251, 113, 205, 177, 82, 48, 141, 234, 88, 87, 63, 233,\n\t\t197, 158, 220, 215, 113, 98, 223, 114, 151, 27, 26, 201, 208,\n\t\t73, 52, 53, 69, 63, 8, 98, 146, 222, 115, 53, 238, 148, 93,\n\t\t235, 198, 3, 119, 185, 160, 164, 31, 99, 215, 236, 164, 66,\n\t\t174, 65, 93, 100, 53, 11, 69, 90, 149, 6, 146, 218, 53, 118,\n\t\t111, 25, 20, 195, 104, 87, 227, 207, 30, 110, 251, 158, 85,\n\t\t243, 106, 28, 229, 185, 2, 113, 191, 67, 245, 43, 50, 104,\n\t\t88, 25, 168, 84, 132, 19, 75, 23, 117, 125, 1, 5, 72, 210,\n\t\t233, 69, 88, 124, 3, 111, 121, 244, 3, 50, 124, 168, 85, 203,\n\t\t11, 200, 98, 171, 154, 136, 66, 182, 57, 148, 118, 148, 45,\n\t\t102, 55, 29, 158, 239, 240, 39, 171, 21, 141, 85, 6, 203,\n\t\t43, 79, 95, 208, 120, 112, 54, 40, 14, 184, 54, 252, 22, 68,\n\t\t228, 98, 246, 122, 30, 122, 36, 192, 132, 112, 197, 150, 181,\n\t\t8, 136, 87, 210, 203, 80, 254, 82, 25, 78, 96, 237, 131, 222,\n\t\t190, 102, 43, 37, 26, 8, 29, 16, 237, 73, 141, 103, 87, 186,\n\t\t25, 29, 197, 98, 253, 171, 217, 160, 175, 162, 171, 201, 121,\n\t\t44, 11, 222, 210, 22, 75, 23, 53, 32, 117, 215, 61, 48, 112,\n\t\t104, 161, 222, 117, 197, 229, 54, 230, 225, 162, 140, 95,\n\t\t176, 228, 4, 117, 125, 89, 8, 56, 193, 45, 99, 117, 234, 114,\n\t\t114, 5, 105, 161, 44, 239, 26, 75, 84, 10, 76, 52, 72, 80,\n\t\t37, 53, 25, 1, 146, 170, 122, 92, 75, 226, 76, 88, 20, 89,\n\t\t133, 168, 254, 204, 66, 26, 43, 70, 31, 246, 0, 41, 0, 127,\n\t\t202, 42, 120, 216, 37, 147, 223, 130, 124, 94, 96, 187, 139,\n\t\t66, 224, 155, 242, 22, 34, 132, 171, 99, 22, 12, 110, 232,\n\t\t21, 186, 186, 44, 166, 37, 28, 57, 121, 133, 248, 35, 221,\n\t\t72, 172, 184, 46, 22, 165, 20, 174, 203, 100, 138, 194, 157,\n\t\t99, 250, 143, 52, 59, 200, 217, 11, 188, 155, 130, 94, 50,\n\t\t67, 72, 176, 67, 147, 41, 208, 38, 12, 20, 39, 22, 112, 115,\n\t\t52, 163, 41, 63, 45, 149, 78, 163, 40, 106, 33, 172, 211,\n\t\t25, 127, 122, 92, 19, 87, 77, 6, 240, 10, 227, 86, 240, 96,\n\t\t176, 251, 168, 219, 206, 3, 197, 150, 52, 158, 244, 136, 86,\n\t\t196, 162, 85, 116, 69, 225, 110, 167, 49, 104, 213, 140, 64,\n\t\t217, 128, 114, 107, 192, 130, 238, 24, 10, 121, 157, 171,\n\t\t196, 253, 48, 133, 56, 153, 61, 176, 227, 50, 150, 40, 41,\n\t\t158, 91, 233, 254, 212, 224, 136, 77, 103, 53, 154, 141, 71,\n\t\t64, 48, 4, 94, 82, 204, 86, 124, 157, 64, 101, 5, 88, 10,\n\t\t234, 173, 96, 92, 26, 180, 73, 145, 80, 188, 67, 230, 136,\n\t\t207, 227, 64, 231, 151, 127, 189, 255, 254, 229, 247, 175,\n\t\t223, 201, 87, 254, 237, 207, 193, 35, 121, 206, 145, 211,\n\t\t73, 100, 3, 25, 228, 81, 198, 71, 129, 66, 76, 173, 6, 124,\n\t\t217, 115, 238, 193, 229, 195, 211, 216, 37, 244, 78, 150,\n\t\t253, 62, 207, 107, 231, 40, 217, 109, 137, 145, 42, 157, 30,\n\t\t106, 54, 181, 154, 153, 55, 59, 6, 126, 196, 98, 8, 207, 31,\n\t\t12, 117, 114, 31, 89, 69, 14, 185, 245, 79, 74, 71, 101, 106,\n\t\t223, 124, 23, 134, 139, 203, 180, 43, 232, 48, 113, 10, 32,\n\t\t225, 8, 158, 141, 154, 213, 186, 33, 231, 30, 106, 79, 20,\n\t\t156, 48, 41, 65, 153, 29, 167, 17, 26, 56, 152, 60, 18, 194,\n\t\t10, 62, 145, 220, 24, 207, 235, 128, 254, 16, 14, 92, 86,\n\t\t157, 72, 16, 28, 95, 218, 17, 238, 62, 82, 94, 17, 147, 100,\n\t\t220, 226, 18, 214, 226, 169, 39, 35, 144, 33, 189, 90, 233,\n\t\t123, 187, 206, 165, 188, 33, 149, 196, 247, 61, 166, 122,\n\t\t244, 115, 239, 144, 126, 230, 166, 189, 220, 211, 108, 92,\n\t\t149, 188, 86, 48, 167, 4, 92, 56, 56, 34, 44, 24, 179, 213,\n\t\t200, 51, 173, 28, 130, 135, 117, 199, 136, 121, 37, 32, 224,\n\t\t77, 31, 43, 101, 165, 37, 118, 156, 104, 186, 8, 156, 25,\n\t\t164, 61, 21, 68, 104, 9, 21, 39, 202, 231, 10, 56, 16, 156,\n\t\t229, 28, 185, 208, 5, 97, 117, 120, 174, 42, 185, 139, 174,\n\t\t152, 165, 106, 30, 119, 254, 97, 251, 244, 164, 0, 135, 50,\n\t\t148, 59, 169, 167, 156, 123, 87, 240, 78, 66, 179, 86, 245,\n\t\t160, 62, 184, 67, 136, 240, 108, 187, 66, 92, 164, 120, 21,\n\t\t157, 81, 253, 214, 168, 122, 192, 114, 211, 32, 143, 227,\n\t\t105, 244, 76, 80, 157, 99, 203, 227, 174, 133, 13, 115, 185,\n\t\t226, 181, 199, 50, 217, 18, 110, 82, 125, 150, 76, 243, 201,\n\t\t230, 127, 144, 151, 255, 227, 253, 246, 138, 20, 123, 243,\n\t\t47, 25, 200, 24, 84, 250, 176, 110, 113, 154, 209, 35, 152,\n\t\t103, 36, 129, 19, 245, 228, 169, 84, 65, 243, 8, 149, 7, 56,\n\t\t193, 135, 246, 16, 253, 17, 79, 3, 218, 53, 212, 207, 121,\n\t\t175, 222, 251, 194, 179, 167, 117, 195, 208, 79, 173, 39,\n\t\t161, 130, 137, 2, 38, 53, 42, 165, 144, 230, 68, 223, 135,\n\t\t156, 42, 214, 0, 40, 88, 73, 148, 230, 12, 213, 31, 81, 83,\n\t\t191, 160, 82, 130, 121, 139, 25, 130, 215, 61, 21, 100, 142,\n\t\t245, 114, 238, 158, 203, 187, 19, 171, 134, 246, 58, 205,\n\t\t192, 158, 136, 233, 167, 205, 222, 239, 79, 95, 235, 193,\n\t\t118, 204, 156, 2, 79, 68, 101, 132, 19, 103, 40, 7, 131, 172,\n\t\t237, 182, 48, 168, 21, 148, 49, 211, 208, 237, 60, 174, 65,\n\t\t229, 139, 221, 225, 79, 159, 153, 95, 102, 15, 41, 29, 241,\n\t\t236, 18, 13, 14, 209, 29, 245, 220, 67, 162, 96, 187, 112,\n\t\t56, 168, 93, 108, 62, 45, 214, 244, 100, 140, 164, 72, 238,\n\t\t62, 174, 62, 22, 181, 61, 47, 156, 95, 22, 175, 169, 72, 10,\n\t\t22, 90, 246, 149, 219, 232, 68, 56, 127, 182, 196, 217, 52,\n\t\t190, 83, 231, 204, 230, 197, 150, 232, 22, 73, 211, 135, 51,\n\t\t113, 100, 218, 38, 14, 172, 163, 109, 209, 205, 110, 5, 101,\n\t\t15, 149, 156, 146, 131, 217, 34, 144, 119, 221, 144, 82, 226,\n\t\t201, 132, 199, 222, 73, 106, 132, 60, 157, 251, 120, 212,\n\t\t207, 123, 254, 191, 126, 191, 189, 46, 115, 111, 65, 73, 201,\n\t\t231, 140, 183, 133, 84, 231, 179, 32, 243, 156, 128, 73, 64,\n\t\t247, 172, 138, 47, 163, 96, 106, 49, 1, 52, 22, 150, 223,\n\t\t45, 225, 134, 197, 80, 51, 24, 178, 135, 10, 143, 9, 41, 205,\n\t\t171, 201, 141, 56, 10, 238, 59, 240, 6, 142, 146, 129, 13,\n\t\t116, 51, 25, 96, 76, 117, 23, 114, 146, 96, 120, 18, 89, 58,\n\t\t241, 26, 106, 92, 92, 60, 18, 181, 218, 220, 101, 0, 107,\n\t\t183, 193, 66, 208, 11, 169, 225, 129, 29, 114, 225, 251, 156,\n\t\t92, 230, 76, 141, 44, 14, 66, 129, 178, 70, 111, 203, 241,\n\t\t115, 251, 198, 2, 90, 178, 4, 109, 110, 43, 24, 5, 94, 63,\n\t\t22, 81, 107, 16, 218, 156, 155, 16, 210, 15, 212, 29, 147,\n\t\t178, 162, 0, 142, 163, 254, 202, 83, 187, 61, 174, 161, 149,\n\t\t35, 108, 41, 209, 220, 225, 152, 207, 130, 45, 104, 5, 12,\n\t\t4, 242, 5, 151, 138, 206, 174, 209, 42, 216, 173, 203, 209,\n\t\t60, 33, 232, 45, 32, 32, 137, 115, 176, 141, 35, 157, 245,\n\t\t3, 250, 82, 92, 22, 59, 42, 144, 107, 239, 75, 37, 202, 214,\n\t\t126, 116, 74, 144, 209, 97, 142, 188, 102, 233, 41, 166, 218,\n\t\t47, 123, 10, 251, 39, 58, 227, 223, 144, 88, 51, 77, 76, 71,\n\t\t65, 113, 94, 47, 32, 109, 169, 149, 203, 220, 66, 92, 92,\n\t\t72, 135, 80, 121, 39, 164, 138, 145, 42, 117, 27, 247, 89,\n\t\t34, 82, 202, 252, 79, 197, 139, 165, 113, 255, 124, 189, 155,\n\t\t79, 245, 46, 220, 118, 55, 238, 81, 189, 223, 5, 164, 197,\n\t\t178, 179, 52, 58, 80, 14, 40, 32, 117, 125, 115, 89, 140,\n\t\t18, 164, 238, 160, 166, 231, 55, 174, 59, 55, 30, 244, 17,\n\t\t186, 149, 74, 106, 71, 135, 235, 110, 61, 31, 80, 111, 234,\n\t\t161, 189, 51, 36, 84, 211, 65, 240, 7, 179, 226, 195, 150,\n\t\t33, 67, 61, 149, 31, 98, 190, 34, 127, 204, 245, 36, 204,\n\t\t193, 46, 111, 195, 105, 215, 0, 186, 2, 219, 242, 102, 223,\n\t\t247, 165, 99, 104, 252, 4, 71, 36, 198, 11, 219, 219, 162,\n\t\t222, 185, 244, 62, 153, 44, 181, 47, 89, 23, 93, 106, 57,\n\t\t151, 195, 194, 143, 80, 223, 223, 222, 126, 222, 191, 125,\n\t\t189, 191, 82, 200, 189, 41, 201, 80, 204, 113, 142, 24, 95,\n\t\t70, 150, 176, 184, 163, 130, 64, 94, 97, 37, 100, 168, 59,\n\t\t228, 195, 125, 15, 185, 177, 136, 9, 206, 210, 99, 247, 143,\n\t\t7, 235, 135, 155, 156, 181, 219, 47, 233, 49, 47, 103, 227,\n\t\t151, 240, 67, 56, 231, 227, 45, 125, 248, 123, 163, 227, 31,\n\t\t87, 159, 8, 189, 158, 234, 225, 47, 43, 76, 7, 92, 250, 102,\n\t\t228, 177, 67, 151, 182, 144, 110, 153, 71, 226, 8, 149, 132,\n\t\t151, 37, 189, 42, 72, 23, 108, 39, 142, 166, 221, 72, 5, 217,\n\t\t19, 231, 52, 152, 144, 168, 131, 33, 143, 134, 101, 7, 123,\n\t\t2, 10, 53, 112, 30, 126, 5, 22, 201, 122, 117, 252, 218, 93,\n\t\t110, 233, 113, 141, 193, 31, 97, 243, 53, 79, 51, 235, 223,\n\t\t185, 191, 203, 127, 203, 13, 254, 187, 109, 252, 105, 183,\n\t\t253, 175, 223, 190, 189, 189, 191, 191, 118, 218, 23, 126,\n\t\t143, 239, 209, 148, 150, 163, 63, 49, 149, 186, 184, 25, 31,\n\t\t169, 236, 248, 19, 154, 82, 253, 10, 180, 215, 114, 174, 146,\n\t\t148, 166, 233, 70, 198, 45, 52, 79, 186, 158, 201, 59, 63,\n\t\t231, 172, 84, 123, 162, 100, 5, 44, 145, 80, 123, 36, 209,\n\t\t232, 224, 60, 21, 44, 149, 158, 9, 80, 153, 104, 70, 115,\n\t\t174, 215, 146, 75, 224, 114, 226, 194, 86, 95, 116, 161, 82,\n\t\t249, 254, 52, 220, 232, 40, 222, 67, 105, 162, 232, 123, 76,\n\t\t79, 103, 214, 195, 187, 30, 41, 104, 214, 130, 139, 68, 211,\n\t\t222, 98, 111, 20, 252, 172, 205, 133, 74, 156, 47, 18, 116,\n\t\t209, 232, 139, 63, 50, 103, 43, 203, 225, 51, 245, 3, 184,\n\t\t7, 177, 31, 129, 20, 30, 115, 165, 203, 169, 175, 66, 145,\n\t\t242, 249, 0, 91, 150, 191, 216, 49, 194, 220, 227, 102, 115,\n\t\t103, 119, 228, 32, 64, 9, 239, 106, 10, 148, 34, 174, 205,\n\t\t197, 121, 215, 190, 231, 232, 195, 101, 90, 77, 46, 242, 46,\n\t\t60, 72, 59, 50, 15, 252, 105, 235, 20, 178, 171, 213, 64,\n\t\t137, 71, 137, 164, 72, 94, 142, 20, 231, 207, 28, 46, 245,\n\t\t230, 18, 101, 148, 143, 86, 184, 16, 154, 176, 187, 246, 221,\n\t\t108, 174, 78, 47, 102, 109, 174, 118, 68, 137, 64, 28, 173,\n\t\t245, 66, 133, 3, 71, 204, 156, 178, 36, 125, 14, 110, 133,\n\t\t126, 52, 133, 114, 249, 68, 222, 109, 60, 28, 1, 112, 231,\n\t\t158, 54, 219, 174, 198, 195, 23, 86, 163, 134, 205, 55, 119,\n\t\t248, 194, 100, 223, 179, 65, 204, 150, 158, 83, 248, 108,\n\t\t133, 204, 55, 48, 208, 150, 190, 29, 189, 115, 128, 160, 100,\n\t\t6, 142, 247, 208, 43, 185, 157, 181, 103, 226, 4, 110, 189,\n\t\t76, 255, 128, 136, 235, 188, 139, 249, 217, 59, 168, 201,\n\t\t5, 238, 101, 185, 251, 54, 119, 100, 170, 216, 10, 211, 188,\n\t\t119, 193, 101, 50, 229, 162, 227, 182, 155, 167, 34, 170,\n\t\t54, 13, 169, 68, 216, 74, 217, 69, 143, 18, 243, 236, 79,\n\t\t246, 254, 246, 44, 29, 156, 242, 92, 244, 142, 202, 81, 185,\n\t\t3, 164, 35, 206, 86, 36, 219, 131, 47, 95, 253, 209, 42, 225,\n\t\t148, 59, 191, 118, 2, 144, 133, 249, 33, 210, 139, 224, 116,\n\t\t92, 233, 172, 57, 58, 143, 165, 160, 110, 228, 15, 62, 241,\n\t\t251, 156, 247, 145, 4, 32, 112, 244, 108, 34, 32, 35, 31,\n\t\t133, 171, 15, 34, 95, 205, 123, 58, 151, 226, 103, 180, 93,\n\t\t15, 215, 200, 177, 34, 178, 221, 234, 34, 137, 222, 207, 145,\n\t\t24, 234, 225, 99, 47, 164, 196, 154, 89, 156, 126, 54, 222,\n\t\t214, 195, 124, 41, 254, 50, 130, 116, 194, 124, 84, 106, 228,\n\t\t36, 228, 5, 238, 200, 244, 234, 203, 236, 154, 190, 240, 142,\n\t\t206, 32, 147, 144, 152, 0, 18, 227, 54, 180, 35, 1, 42, 132,\n\t\t94, 154, 194, 81, 125, 175, 207, 157, 115, 118, 144, 180,\n\t\t158, 89, 142, 150, 28, 1, 211, 209, 188, 58, 40, 230, 203,\n\t\t101, 118, 24, 233, 239, 196, 83, 211, 58, 147, 47, 54, 106,\n\t\t222, 220, 142, 26, 58, 35, 92, 230, 237, 183, 118, 184, 74,\n\t\t239, 180, 201, 4, 68, 209, 230, 226, 24, 81, 24, 226, 252,\n\t\t48, 125, 218, 224, 188, 20, 239, 17, 82, 172, 209, 248, 27,\n\t\t187, 159, 15, 237, 152, 73, 156, 251, 144, 151, 25, 110, 190,\n\t\t255, 57, 179, 80, 56, 89, 130, 13, 53, 206, 199, 154, 189,\n\t\t60, 184, 202, 185, 117, 199, 233, 186, 84, 231, 14, 154, 253,\n\t\t133, 223, 173, 205, 29, 115, 130, 142, 61, 143, 64, 175, 139,\n\t\t179, 170, 12, 10, 160, 182, 165, 46, 144, 50, 71, 214, 124,\n\t\t159, 30, 11, 111, 143, 148, 233, 68, 155, 79, 182, 46, 125,\n\t\t110, 25, 232, 20, 66, 242, 211, 171, 137, 179, 193, 98, 158,\n\t\t206, 198, 17, 107, 111, 148, 191, 160, 187, 175, 71, 167,\n\t\t168, 90, 230, 110, 61, 103, 37, 234, 168, 132, 164, 8, 238,\n\t\t168, 115, 4, 39, 190, 77, 178, 96, 233, 110, 40, 223, 36,\n\t\t247, 156, 100, 150, 152, 131, 109, 222, 98, 153, 13, 63, 47,\n\t\t19, 201, 181, 165, 251, 30, 33, 210, 40, 164, 60, 221, 28,\n\t\t189, 36, 108, 70, 211, 223, 50, 22, 75, 63, 92, 118, 109,\n\t\t233, 53, 163, 208, 235, 35, 83, 252, 200, 161, 19, 251, 97,\n\t\t152, 205, 239, 195, 209, 75, 175, 115, 61, 153, 67, 255, 50,\n\t\t230, 96, 207, 172, 164, 151, 42, 223, 43, 181, 92, 105, 71,\n\t\t111, 61, 146, 195, 20, 58, 35, 241, 62, 135, 251, 125, 123,\n\t\t251, 237, 252, 215, 107, 208, 167, 168, 149, 24, 72, 218,\n\t\t135, 72, 171, 198, 94, 149, 122, 102, 247, 161, 109, 74, 24,\n\t\t232, 169, 252, 187, 221, 185, 168, 22, 71, 225, 107, 249,\n\t\t118, 254, 119, 155, 71, 216, 85, 230, 222, 125, 61, 76, 184,\n\t\t179, 216, 213, 197, 113, 251, 211, 239, 232, 63, 143, 43,\n\t\t9, 234, 109, 190, 166, 163, 13, 141, 190, 113, 58, 70, 64,\n\t\t40, 8, 200, 41, 73, 55, 237, 32, 137, 25, 24, 70, 158, 235,\n\t\t151, 17, 134, 241, 64, 127, 99, 250, 49, 125, 40, 83, 145,\n\t\t150, 156, 3, 211, 246, 201, 106, 153, 197, 212, 149, 148,\n\t\t223, 169, 201, 147, 38, 254, 5, 61, 25, 135, 248, 111, 194,\n\t\t127, 117, 111, 194, 61, 226, 41, 91, 201, 193, 13, 100, 107,\n\t\t187, 68, 74, 80, 166, 206, 107, 206, 208, 228, 49, 142, 98,\n\t\t183, 76, 30, 21, 5, 166, 25, 79, 154, 52, 197, 168, 196, 139,\n\t\t155, 50, 78, 169, 0, 67, 156, 206, 223, 86, 1, 38, 82, 61,\n\t\t98, 77, 235, 154, 234, 31, 226, 55, 30, 124, 109, 34, 136,\n\t\t253, 78, 83, 21, 230, 143, 69, 129, 142, 200, 148, 80, 233,\n\t\t234, 12, 101, 29, 37, 134, 161, 196, 175, 156, 178, 21, 27,\n\t\t160, 45, 200, 129, 233, 82, 139, 16, 172, 112, 136, 92, 134,\n\t\t38, 186, 12, 74, 195, 113, 125, 4, 148, 0, 193, 144, 80, 235,\n\t\t96, 186, 82, 254, 78, 51, 46, 40, 254, 53, 104, 119, 32, 98,\n\t\t76, 53, 146, 145, 95, 210, 144, 46, 234, 3, 5, 124, 169, 166,\n\t\t128, 210, 135, 85, 196, 170, 162, 80, 38, 120, 254, 106, 24,\n\t\t51, 31, 240, 132, 226, 93, 86, 221, 193, 202, 231, 27, 192,\n\t\t241, 42, 110, 164, 121, 82, 154, 168, 224, 211, 74, 93, 39,\n\t\t228, 40, 131, 249, 151, 81, 128, 65, 98, 138, 36, 205, 223,\n\t\t53, 241, 86, 185, 252, 152, 81, 37, 252, 57, 19, 31, 40, 192,\n\t\t22, 74, 30, 43, 237, 160, 53, 149, 153, 7, 193, 0, 143, 145,\n\t\t90, 152, 90, 212, 138, 98, 6, 77, 97, 0, 72, 105, 28, 162,\n\t\t200, 107, 250, 37, 155, 40, 253, 244, 50, 250, 162, 131, 108,\n\t\t57, 30, 129, 112, 160, 20, 202, 47, 97, 31, 170, 180, 57,\n\t\t234, 80, 72, 139, 188, 100, 173, 201, 22, 32, 136, 177, 208,\n\t\t241, 142, 27, 196, 40, 135, 6, 69, 209, 119, 100, 164, 251,\n\t\t10, 206, 129, 192, 236, 156, 131, 184, 184, 209, 37, 60, 117,\n\t\t222, 188, 5, 74, 154, 15, 132, 58, 22, 104, 44, 120, 166,\n\t\t144, 158, 134, 68, 216, 78, 20, 25, 229, 168, 68, 121, 16,\n\t\t230, 40, 149, 87, 133, 60, 49, 32, 86, 176, 198, 21, 166,\n\t\t197, 219, 163, 50, 219, 27, 151, 143, 200, 152, 65, 198, 92,\n\t\t14, 193, 53, 97, 86, 163, 59, 32, 132, 177, 232, 80, 205,\n\t\t7, 122, 223, 137, 134, 141, 95, 243, 242, 93, 162, 82, 21,\n\t\t204, 121, 139, 160, 39, 126, 139, 66, 81, 11, 83, 113, 88,\n\t\t103, 211, 229, 182, 185, 75, 43, 9, 176, 66, 181, 176, 163,\n\t\t225, 36, 203, 163, 200, 175, 7, 131, 245, 173, 223, 113, 70,\n\t\t136, 219, 49, 242, 44, 249, 63, 161, 33, 47, 255, 29, 45,\n\t\t249, 127, 212, 144, 115, 132, 43, 65, 238, 39, 109, 250, 185,\n\t\t193, 240, 254, 235, 121, 255, 250, 203, 223, 95, 108, 134,\n\t\t207, 88, 78, 136, 186, 221, 23, 22, 247, 234, 245, 232, 180,\n\t\t168, 7, 10, 212, 131, 20, 178, 115, 142, 253, 244, 173, 29,\n\t\t20, 119, 156, 207, 59, 178, 32, 72, 1, 11, 43, 115, 204, 241,\n\t\t253, 86, 45, 38, 228, 89, 235, 52, 234, 23, 65, 79, 98, 168,\n\t\t170, 214, 0, 151, 221, 112, 132, 53, 165, 13, 250, 20, 68,\n\t\t138, 50, 215, 135, 85, 239, 228, 80, 90, 147, 32, 69, 142,\n\t\t169, 178, 154, 176, 103, 4, 62, 127, 77, 95, 180, 131, 3,\n\t\t8, 186, 53, 123, 58, 77, 197, 173, 51, 194, 66, 94, 118, 32,\n\t\t124, 62, 228, 204, 66, 220, 68, 84, 248, 228, 153, 108, 151,\n\t\t42, 206, 19, 66, 24, 158, 217, 21, 206, 189, 203, 82, 32,\n\t\t66, 86, 231, 30, 230, 2, 11, 194, 136, 179, 203, 204, 40,\n\t\t68, 23, 35, 58, 68, 246, 233, 135, 83, 80, 178, 189, 130,\n\t\t20, 152, 216, 19, 130, 148, 223, 34, 212, 169, 50, 144, 243,\n\t\t149, 195, 187, 167, 134, 140, 98, 5, 67, 44, 224, 161, 128,\n\t\t31, 129, 167, 14, 208, 239, 189, 120, 141, 243, 242, 226,\n\t\t23, 4, 41, 70, 182, 65, 162, 223, 36, 15, 30, 144, 60, 154,\n\t\t59, 231, 83, 137, 70, 0, 8, 48, 66, 161, 200, 116, 35, 66,\n\t\t181, 105, 77, 17, 252, 143, 74, 26, 232, 243, 227, 10, 244,\n\t\t100, 150, 220, 234, 30, 8, 187, 195, 203, 19, 190, 4, 247,\n\t\t152, 238, 240, 209, 255, 64, 171, 237, 219, 175, 227, 31,\n\t\t111, 191, 143, 219, 151, 23, 33, 164, 183, 79, 216, 51, 82,\n\t\t43, 71, 242, 148, 162, 75, 113, 120, 223, 143, 50, 29, 168,\n\t\t90, 142, 204, 12, 113, 97, 174, 7, 129, 147, 20, 189, 30,\n\t\t62, 141, 189, 86, 241, 201, 178, 35, 15, 101, 174, 201, 253,\n\t\t136, 149, 180, 193, 196, 233, 43, 233, 240, 172, 45, 224,\n\t\t201, 89, 235, 89, 226, 46, 221, 75, 116, 34, 56, 127, 84,\n\t\t134, 244, 123, 138, 167, 4, 74, 56, 145, 26, 32, 113, 219,\n\t\t73, 60, 163, 72, 200, 189, 248, 35, 204, 85, 172, 28, 169,\n\t\t83, 30, 157, 126, 41, 177, 103, 206, 156, 169, 84, 121, 48,\n\t\t95, 22, 13, 137, 24, 142, 90, 9, 97, 70, 206, 87, 78, 71,\n\t\t36, 7, 114, 189, 208, 243, 214, 32, 167, 170, 51, 196, 104,\n\t\t62, 161, 15, 117, 54, 64, 78, 28, 27, 177, 59, 156, 158, 90,\n\t\t31, 45, 29, 61, 9, 90, 139, 43, 151, 167, 237, 52, 151, 227,\n\t\t220, 107, 221, 150, 70, 112, 213, 197, 199, 53, 244, 116,\n\t\t248, 70, 176, 223, 230, 226, 152, 163, 171, 208, 173, 18,\n\t\t73, 116, 223, 74, 33, 63, 77, 183, 125, 106, 71, 32, 46, 169,\n\t\t112, 212, 68, 155, 105, 14, 220, 249, 181, 151, 205, 57, 125,\n\t\t243, 54, 165, 94, 66, 175, 122, 192, 206, 71, 80, 26, 110,\n\t\t142, 38, 226, 7, 39, 103, 183, 52, 110, 172, 28, 40, 144,\n\t\t237, 67, 239, 163, 31, 222, 167, 32, 252, 239, 161, 206, 167,\n\t\t104, 62, 100, 22, 124, 11, 20, 241, 203, 71, 159, 111, 123,\n\t\t206, 124, 157, 117, 38, 90, 235, 37, 113, 157, 92, 237, 165,\n\t\t47, 161, 129, 200, 81, 70, 42, 140, 226, 61, 249, 8, 177,\n\t\t135, 50, 189, 193, 233, 66, 110, 254, 136, 49, 11, 156, 216,\n\t\t103, 130, 122, 198, 156, 73, 201, 173, 18, 65, 71, 13, 61,\n\t\t211, 251, 115, 165, 81, 101, 7, 121, 206, 161, 30, 137, 200,\n\t\t35, 114, 156, 139, 92, 33, 111, 156, 170, 101, 90, 47, 231,\n\t\t52, 124, 171, 203, 76, 224, 232, 218, 116, 110, 75, 100, 180,\n\t\t67, 168, 53, 166, 217, 157, 74, 205, 108, 206, 198, 58, 109,\n\t\t161, 122, 248, 152, 108, 199, 112, 28, 249, 242, 4, 240, 170,\n\t\t174, 184, 76, 190, 188, 186, 238, 238, 232, 53, 49, 110, 210,\n\t\t137, 135, 255, 184, 250, 150, 14, 63, 13, 242, 92, 24, 91,\n\t\t233, 99, 172, 141, 35, 166, 8, 3, 236, 238, 136, 217, 83,\n\t\t152, 111, 238, 157, 189, 49, 112, 24, 167, 229, 233, 118,\n\t\t47, 123, 25, 206, 92, 124, 99, 173, 218, 120, 244, 238, 105,\n\t\t78, 244, 142, 34, 15, 233, 136, 62, 49, 9, 105, 136, 101,\n\t\t161, 250, 197, 184, 40, 117, 186, 254, 158, 199, 71, 239,\n\t\t27, 222, 184, 231, 200, 192, 125, 119, 71, 158, 15, 84, 198,\n\t\t250, 104, 243, 14, 90, 107, 165, 134, 237, 249, 190, 67, 12,\n\t\t41, 124, 220, 25, 131, 15, 141, 84, 255, 233, 94, 51, 35,\n\t\t131, 188, 171, 140, 53, 104, 169, 84, 134, 110, 7, 95, 229,\n\t\t33, 250, 93, 67, 126, 143, 107, 200, 117, 118, 160, 141, 8,\n\t\t112, 130, 148, 177, 177, 79, 105, 79, 65, 1, 176, 84, 56,\n\t\t102, 53, 159, 34, 186, 72, 53, 182, 46, 197, 249, 20, 133,\n\t\t66, 22, 195, 209, 9, 137, 69, 96, 57, 14, 138, 147, 231, 30,\n\t\t10, 179, 237, 56, 125, 167, 120, 25, 221, 67, 114, 126, 190,\n\t\t238, 31, 191, 55, 5, 255, 127, 250, 222, 94, 95, 91, 246,\n\t\t207, 175, 45, 164, 128, 215, 198, 9, 159, 249, 32, 207, 175,\n\t\t173, 183, 167, 215, 198, 15, 252, 131, 215, 230, 125, 247,\n\t\t137, 35, 76, 161, 135, 206, 177, 250, 232, 125, 14, 241, 195,\n\t\t206, 20, 93, 41, 233, 245, 173, 53, 17, 0, 232, 85, 0, 247,\n\t\t33, 22, 126, 143, 173, 151, 229, 181, 253, 104, 13, 250, 246,\n\t\t207, 23, 169, 144, 183, 23, 198, 144, 31, 233, 182, 61, 167,\n\t\t66, 254, 44, 15, 242, 167, 180, 115, 243, 189, 102, 226, 170,\n\t\t56, 242, 73, 41, 214, 76, 92, 22, 253, 189, 66, 223, 12, 181,\n\t\t5, 85, 96, 108, 216, 49, 130, 214, 160, 138, 41, 156, 36,\n\t\t119, 27, 133, 57, 42, 8, 207, 115, 102, 52, 239, 185, 251,\n\t\t76, 80, 146, 150, 73, 209, 20, 20, 209, 200, 87, 0, 189, 173,\n\t\t101, 130, 196, 59, 238, 8, 147, 83, 15, 66, 14, 133, 35, 223,\n\t\t186, 59, 27, 234, 125, 165, 206, 189, 9, 151, 236, 222, 187,\n\t\t196, 100, 42, 112, 186, 81, 96, 252, 41, 9, 226, 79, 114,\n\t\t100, 168, 230, 194, 189, 121, 50, 202, 163, 63, 226, 237,\n\t\t7, 52, 39, 239, 227, 118, 190, 178, 233, 190, 25, 199, 9,\n\t\t137, 18, 132, 238, 142, 120, 42, 34, 36, 201, 207, 0, 182,\n\t\t28, 251, 89, 81, 28, 146, 128, 117, 240, 61, 108, 49, 228,\n\t\t163, 159, 170, 250, 201, 246, 211, 25, 17, 48, 17, 112, 218,\n\t\t185, 103, 99, 199, 122, 92, 231, 250, 216, 183, 232, 251,\n\t\t17, 207, 40, 105, 61, 161, 83, 63, 21, 110, 37, 53, 130, 167,\n\t\t213, 239, 78, 175, 251, 113, 165, 2, 145, 45, 68, 127, 248,\n\t\t19, 148, 139, 145, 185, 51, 78, 188, 98, 137, 47, 24, 39,\n\t\t128, 64, 187, 30, 151, 43, 72, 107, 162, 79, 71, 59, 3, 216,\n\t\t71, 24, 208, 124, 170, 203, 18, 210, 185, 232, 104, 48, 189,\n\t\t218, 227, 154, 59, 153, 124, 249, 84, 145, 75, 220, 165, 66,\n\t\t251, 243, 145, 79, 13, 120, 8, 84, 235, 113, 69, 193, 99,\n\t\t8, 233, 232, 39, 56, 12, 224, 47, 168, 77, 40, 117, 113, 187,\n\t\t98, 192, 105, 5, 146, 96, 128, 111, 110, 174, 130, 212, 169,\n\t\t5, 67, 97, 21, 116, 32, 56, 63, 137, 181, 93, 228, 165, 175,\n\t\t133, 97, 213, 238, 168, 23, 242, 111, 248, 103, 164, 113,\n\t\t80, 3, 191, 9, 14, 249, 132, 105, 44, 102, 246, 227, 218,\n\t\t59, 115, 184, 172, 220, 251, 179, 147, 72, 31, 17, 226, 5,\n\t\t169, 103, 221, 132, 193, 139, 181, 161, 194, 86, 253, 185,\n\t\t43, 52, 88, 136, 196, 78, 69, 214, 151, 120, 228, 19, 216,\n\t\t45, 33, 92, 127, 92, 73, 200, 124, 11, 222, 205, 70, 130,\n\t\t19, 149, 197, 181, 160, 186, 51, 126, 31, 234, 16, 72, 128,\n\t\t68, 156, 180, 199, 53, 68, 198, 186, 73, 105, 230, 185, 163,\n\t\t84, 2, 172, 30, 97, 41, 189, 159, 59, 114, 134, 127, 66, 239,\n\t\t115, 222, 2, 209, 135, 22, 119, 248, 19, 76, 157, 66, 253,\n\t\t116, 6, 147, 34, 39, 117, 2, 137, 127, 129, 90, 156, 21, 144,\n\t\t125, 201, 71, 56, 21, 88, 202, 61, 224, 204, 136, 150, 53,\n\t\t158, 116, 206, 233, 115, 72, 160, 10, 231, 7, 134, 12, 100,\n\t\t119, 180, 179, 160, 108, 130, 95, 229, 89, 88, 168, 139, 99,\n\t\t192, 231, 222, 80, 61, 38, 149, 114, 159, 207, 0, 111, 95,\n\t\t190, 141, 219, 219, 47, 127, 255, 250, 138, 45, 123, 229,\n\t\t117, 41, 90, 68, 31, 220, 81, 182, 232, 235, 81, 207, 185,\n\t\t230, 138, 135, 229, 250, 17, 239, 62, 98, 186, 144, 161, 201,\n\t\t115, 194, 137, 29, 115, 229, 143, 247, 221, 79, 3, 250, 113,\n\t\t245, 244, 86, 146, 103, 88, 34, 162, 140, 170, 165, 13, 34,\n\t\t138, 44, 149, 85, 115, 102, 149, 92, 41, 63, 181, 134, 194,\n\t\t49, 111, 234, 30, 239, 28, 179, 0, 129, 137, 93, 229, 230,\n\t\t186, 212, 7, 55, 224, 107, 72, 149, 225, 78, 52, 81, 92, 225,\n\t\t80, 5, 101, 201, 116, 111, 62, 206, 117, 165, 42, 229, 14,\n\t\t109, 250, 60, 173, 160, 230, 22, 229, 59, 154, 219, 231, 192,\n\t\t224, 226, 168, 60, 151, 164, 196, 186, 112, 8, 128, 170, 251,\n\t\t175, 31, 172, 248, 64, 249, 34, 192, 229, 72, 10, 72, 26,\n\t\t43, 212, 178, 97, 169, 112, 242, 128, 56, 23, 132, 39, 81,\n\t\t3, 21, 101, 210, 0, 184, 65, 229, 119, 116, 205, 96, 89, 100,\n\t\t9, 119, 33, 252, 164, 108, 60, 32, 243, 72, 170, 247, 83,\n\t\t231, 83, 74, 79, 71, 57, 162, 68, 190, 89, 163, 159, 27, 6,\n\t\t228, 171, 57, 26, 15, 209, 222, 188, 61, 23, 189, 85, 68,\n\t\t189, 37, 204, 115, 122, 41, 103, 79, 253, 200, 131, 97, 227,\n\t\t2, 27, 105, 32, 53, 180, 143, 222, 37, 226, 107, 202, 16,\n\t\t15, 103, 56, 135, 35, 18, 56, 18, 4, 169, 135, 191, 103, 94,\n\t\t49, 46, 163, 33, 11, 174, 201, 7, 126, 33, 149, 117, 36, 232,\n\t\t179, 207, 157, 59, 74, 132, 14, 165, 190, 156, 162, 157, 184,\n\t\t19, 221, 47, 53, 128, 215, 37, 154, 31, 96, 32, 11, 162, 175,\n\t\t38, 50, 154, 180, 161, 205, 148, 234, 235, 61, 162, 54, 4,\n\t\t213, 168, 38, 44, 57, 214, 215, 197, 179, 168, 86, 234, 8,\n\t\t252, 155, 87, 254, 2, 156, 160, 255, 16, 77, 126, 34, 103,\n\t\t145, 192, 50, 248, 10, 73, 134, 145, 116, 25, 165, 176, 231,\n\t\t89, 38, 154, 103, 123, 166, 176, 248, 84, 160, 154, 200, 237,\n\t\t164, 195, 124, 80, 108, 30, 216, 207, 2, 209, 184, 228, 231,\n\t\t214, 227, 251, 219, 183, 251, 215, 241, 246, 254, 251, 151,\n\t\t241, 66, 227, 241, 246, 137, 244, 111, 107, 211, 217, 31,\n\t\t77, 65, 221, 18, 76, 10, 53, 18, 111, 129, 35, 49, 114, 134,\n\t\t14, 133, 219, 30, 123, 24, 157, 100, 146, 16, 235, 100, 97,\n\t\t174, 88, 55, 190, 18, 115, 168, 199, 150, 6, 80, 253, 132,\n\t\t48, 140, 153, 120, 41, 74, 157, 70, 73, 37, 78, 192, 116,\n\t\t219, 5, 247, 193, 179, 248, 52, 5, 192, 5, 22, 60, 109, 132,\n\t\t72, 118, 72, 118, 71, 130, 182, 120, 66, 113, 156, 23, 112,\n\t\t50, 189, 116, 201, 249, 249, 121, 252, 231, 205, 244, 245,\n\t\t253, 247, 111, 223, 49, 213, 222, 20, 255, 75, 70, 244, 41,\n\t\t249, 146, 232, 167, 165, 89, 168, 135, 251, 177, 43, 44, 60,\n\t\t32, 33, 6, 249, 169, 61, 34, 220, 79, 228, 114, 178, 53, 246,\n\t\t46, 125, 107, 122, 12, 84, 139, 93, 21, 114, 83, 80, 216,\n\t\t209, 136, 46, 174, 75, 234, 162, 98, 122, 159, 19, 240, 54,\n\t\t143, 42, 124, 148, 243, 163, 11, 65, 138, 219, 248, 236, 105,\n\t\t211, 50, 193, 25, 111, 210, 57, 76, 117, 188, 153, 22, 77,\n\t\t85, 150, 91, 236, 233, 29, 230, 37, 223, 196, 236, 230, 151,\n\t\t81, 53, 105, 227, 167, 145, 185, 101, 132, 207, 104, 203,\n\t\t115, 225, 53, 17, 132, 174, 211, 217, 220, 79, 201, 81, 28,\n\t\t68, 217, 65, 82, 205, 199, 5, 176, 77, 223, 82, 182, 87, 234,\n\t\t24, 178, 48, 227, 210, 149, 183, 229, 168, 246, 3, 26, 181,\n\t\t247, 243, 203, 248, 199, 126, 251, 242, 126, 123, 121, 147,\n\t\t127, 179, 55, 89, 8, 76, 87, 143, 50, 212, 170, 233, 139,\n\t\t192, 86, 68, 87, 82, 83, 80, 192, 199, 39, 69, 200, 248, 109,\n\t\t102, 49, 153, 1, 75, 166, 220, 189, 213, 126, 136, 233, 139,\n\t\t76, 102, 84, 32, 122, 164, 171, 113, 39, 8, 120, 1, 122, 38,\n\t\t252, 154, 66, 5, 48, 129, 171, 144, 104, 153, 46, 92, 157,\n\t\t71, 5, 57, 50, 139, 121, 49, 180, 117, 209, 169, 11, 155,\n\t\t203, 114, 15, 246, 88, 79, 247, 192, 235, 253, 114, 15, 114,\n\t\t230, 203, 61, 176, 205, 133, 159, 33, 28, 139, 38, 46, 208,\n\t\t205, 51, 202, 154, 60, 24, 91, 33, 41, 6, 42, 10, 33, 103,\n\t\t177, 162, 80, 44, 195, 74, 169, 128, 85, 52, 160, 170, 198,\n\t\t202, 186, 54, 150, 21, 166, 9, 136, 28, 123, 186, 39, 173,\n\t\t251, 225, 200, 243, 133, 70, 39, 89, 47, 221, 141, 93, 17,\n\t\t227, 159, 223, 164, 46, 173, 127, 118, 147, 69, 236, 114,\n\t\t189, 73, 1, 52, 190, 220, 36, 130, 219, 220, 222, 223, 191,\n\t\t95, 113, 84, 214, 87, 106, 176, 5, 188, 51, 116, 155, 215,\n\t\t75, 92, 180, 130, 169, 160, 122, 211, 4, 196, 37, 204, 83,\n\t\t180, 227, 174, 189, 243, 4, 225, 100, 4, 25, 221, 250, 66,\n\t\t151, 135, 144, 59, 248, 222, 67, 80, 175, 197, 115, 202, 208,\n\t\t89, 126, 159, 111, 90, 126, 159, 58, 238, 210, 53, 63, 190,\n\t\t172, 229, 65, 126, 120, 157, 231, 110, 205, 153, 155, 79,\n\t\t187, 245, 169, 37, 97, 224, 155, 62, 35, 240, 248, 221, 253,\n\t\t27, 183, 242, 210, 164, 228, 121, 19, 45, 178, 59, 210, 73,\n\t\t78, 7, 198, 225, 142, 159, 232, 226, 32, 146, 186, 12, 141,\n\t\t83, 242, 96, 63, 157, 183, 126, 123, 251, 242, 143, 47, 191,\n\t\t125, 156, 180, 254, 166, 72, 237, 146, 168, 28, 204, 247,\n\t\t58, 166, 247, 146, 252, 244, 155, 26, 69, 236, 182, 189, 6,\n\t\t114, 110, 99, 33, 64, 97, 156, 239, 207, 165, 195, 39, 63,\n\t\t166, 175, 146, 230, 226, 209, 5, 12, 23, 152, 22, 180, 210,\n\t\t218, 125, 4, 38, 228, 14, 201, 133, 129, 171, 78, 255, 134,\n\t\t224, 109, 149, 102, 64, 186, 236, 142, 235, 238, 124, 97,\n\t\t138, 200, 113, 28, 208, 23, 206, 4, 20, 206, 164, 185, 238,\n\t\t218, 150, 216, 161, 8, 197, 213, 65, 50, 60, 185, 51, 125,\n\t\t8, 169, 154, 229, 120, 144, 211, 60, 155, 102, 78, 197, 161,\n\t\t111, 165, 30, 249, 166, 208, 174, 199, 229, 26, 106, 61, 162,\n\t\t39, 129, 165, 22, 78, 34, 222, 77, 238, 104, 153, 150, 206,\n\t\t163, 16, 248, 181, 17, 118, 141, 234, 222, 73, 87, 159, 20,\n\t\t229, 107, 57, 124, 233, 29, 241, 36, 134, 155, 71, 130, 137,\n\t\t117, 239, 136, 132, 173, 103, 186, 208, 102, 78, 121, 103,\n\t\t104, 227, 182, 55, 55, 86, 97, 106, 143, 83, 131, 213, 137,\n\t\t215, 224, 136, 191, 44, 81, 142, 38, 19, 24, 204, 143, 152,\n\t\t142, 196, 156, 129, 180, 31, 121, 19, 34, 185, 114, 189, 109,\n\t\t173, 112, 139, 100, 162, 201, 115, 148, 94, 241, 149, 253,\n\t\t87, 194, 75, 134, 34, 87, 12, 249, 104, 108, 42, 52, 14, 194,\n\t\t239, 162, 218, 56, 246, 184, 98, 96, 103, 103, 139, 204, 35,\n\t\t36, 70, 98, 170, 71, 241, 46, 145, 87, 18, 156, 63, 247, 196,\n\t\t242, 172, 115, 231, 152, 75, 40, 39, 132, 234, 70, 9, 227,\n\t\t185, 191, 123, 114, 209, 186, 99, 165, 140, 121, 237, 49,\n\t\t237, 188, 32, 4, 19, 181, 151, 214, 182, 142, 91, 115, 132,\n\t\t98, 101, 194, 28, 10, 168, 54, 79, 124, 25, 205, 133, 26,\n\t\t231, 96, 226, 27, 15, 148, 152, 225, 217, 203, 83, 230, 164,\n\t\t49, 124, 49, 23, 1, 80, 198, 116, 80, 146, 34, 120, 238, 157,\n\t\t123, 163, 220, 2, 193, 215, 246, 150, 56, 225, 146, 250, 81,\n\t\t243, 112, 4, 67, 205, 196, 91, 20, 230, 88, 163, 178, 164,\n\t\t217, 225, 98, 229, 40, 174, 192, 144, 231, 145, 129, 238,\n\t\t215, 17, 167, 3, 229, 210, 28, 227, 45, 105, 72, 243, 30,\n\t\t95, 233, 236, 207, 7, 227, 239, 95, 254, 117, 126, 253, 229,\n\t\t31, 175, 133, 144, 127, 123, 17, 87, 76, 202, 123, 23, 91,\n\t\t32, 85, 238, 124, 228, 211, 200, 18, 133, 163, 70, 217, 83,\n\t\t8, 216, 34, 189, 110, 91, 229, 228, 2, 102, 101, 182, 1, 227,\n\t\t209, 135, 85, 107, 85, 205, 97, 27, 169, 100, 133, 84, 250,\n\t\t199, 93, 231, 30, 136, 100, 207, 119, 226, 15, 28, 59, 52,\n\t\t201, 246, 184, 245, 133, 214, 129, 162, 133, 41, 107, 20,\n\t\t143, 236, 1, 137, 65, 70, 13, 14, 241, 154, 177, 105, 177,\n\t\t170, 59, 242, 233, 179, 36, 104, 137, 249, 247, 242, 244,\n\t\t116, 222, 41, 72, 78, 235, 189, 141, 151, 20, 64, 169, 180,\n\t\t0, 42, 216, 21, 35, 215, 129, 205, 204, 3, 244, 5, 104, 147,\n\t\t150, 182, 6, 178, 31, 248, 61, 66, 66, 212, 87, 172, 206,\n\t\t78, 20, 65, 249, 79, 136, 37, 23, 88, 136, 24, 125, 192, 47,\n\t\t69, 59, 179, 72, 206, 189, 36, 241, 1, 151, 214, 147, 85,\n\t\t186, 43, 17, 27, 110, 48, 203, 43, 72, 108, 192, 12, 192,\n\t\t50, 172, 21, 153, 143, 66, 197, 24, 185, 21, 171, 99, 207,\n\t\t39, 78, 215, 177, 30, 115, 149, 157, 102, 250, 115, 95, 17,\n\t\t228, 202, 247, 59, 11, 222, 30, 167, 34, 169, 20, 250, 80,\n\t\t68, 136, 62, 36, 47, 132, 209, 92, 35, 14, 224, 23, 122, 252,\n\t\t205, 19, 22, 242, 67, 179, 114, 159, 0, 222, 15, 47, 159,\n\t\t217, 111, 85, 162, 208, 51, 118, 222, 67, 159, 86, 99, 75,\n\t\t114, 26, 156, 162, 149, 116, 145, 238, 187, 171, 131, 15,\n\t\t54, 195, 151, 14, 36, 88, 169, 151, 30, 244, 202, 29, 49,\n\t\t112, 7, 214, 218, 28, 139, 49, 142, 190, 121, 223, 25, 188,\n\t\t53, 25, 220, 70, 127, 58, 38, 149, 153, 4, 205, 12, 75, 182,\n\t\t156, 142, 31, 146, 167, 22, 25, 109, 74, 43, 21, 155, 190,\n\t\t4, 217, 161, 160, 62, 200, 128, 27, 26, 85, 41, 87, 152, 29,\n\t\t226, 220, 125, 245, 68, 215, 68, 181, 204, 39, 9, 194, 81,\n\t\t159, 226, 66, 154, 15, 111, 136, 71, 178, 0, 213, 229, 54,\n\t\t131, 43, 66, 249, 29, 230, 37, 46, 67, 235, 159, 121, 242,\n\t\t64, 33, 58, 162, 229, 240, 175, 249, 237, 252, 96, 70, 124,\n\t\t251, 242, 207, 253, 253, 95, 255, 252, 233, 215, 243, 101,\n\t\t78, 52, 156, 112, 39, 216, 72, 133, 174, 120, 180, 128, 90,\n\t\t222, 246, 217, 1, 248, 191, 161, 95, 57, 218, 5, 94, 128,\n\t\t249, 185, 248, 119, 108, 210, 214, 86, 252, 152, 126, 193,\n\t\t230, 182, 194, 172, 176, 212, 180, 124, 33, 10, 255, 209,\n\t\t15, 82, 120, 169, 196, 109, 207, 158, 89, 9, 27, 200, 9, 121,\n\t\t235, 36, 122, 241, 184, 33, 242, 59, 118, 50, 87, 54, 169,\n\t\t145, 173, 136, 18, 177, 172, 68, 133, 51, 144, 36, 35, 4,\n\t\t223, 59, 64, 102, 170, 197, 173, 212, 203, 201, 158, 174,\n\t\t68, 24, 239, 196, 170, 126, 42, 155, 28, 0, 72, 32, 177, 18,\n\t\t0, 38, 34, 84, 144, 201, 204, 172, 124, 122, 86, 79, 36, 145,\n\t\t149, 64, 170, 5, 188, 5, 156, 100, 11, 71, 219, 188, 79, 252,\n\t\t105, 148, 128, 214, 147, 39, 205, 126, 91, 159, 249, 113,\n\t\t13, 46, 110, 109, 190, 4, 77, 6, 5, 168, 124, 83, 225, 39,\n\t\t253, 59, 255, 161, 106, 249, 205, 73, 199, 207, 134, 132,\n\t\t206, 103, 80, 190, 150, 192, 162, 38, 210, 205, 35, 149, 11,\n\t\t205, 151, 38, 131, 130, 249, 58, 49, 8, 248, 96, 21, 3, 157,\n\t\t71, 151, 229, 38, 150, 67, 193, 47, 5, 43, 44, 2, 103, 42,\n\t\t148, 44, 18, 27, 22, 243, 62, 42, 174, 75, 198, 121, 206,\n\t\t207, 59, 70, 84, 122, 119, 122, 188, 167, 39, 46, 148, 190,\n\t\t74, 116, 73, 244, 151, 196, 57, 50, 250, 241, 170, 20, 151,\n\t\t242, 65, 254, 50, 3, 99, 144, 190, 90, 41, 152, 98, 4, 145,\n\t\t69, 58, 75, 224, 122, 87, 21, 113, 212, 64, 248, 114, 181,\n\t\t229, 200, 228, 117, 45, 149, 57, 76, 127, 95, 121, 106, 158,\n\t\t111, 227, 7, 131, 243, 235, 248, 199, 219, 183, 253, 159,\n\t\t127, 156, 47, 114, 10, 127, 123, 1, 228, 45, 52, 45, 133,\n\t\t18, 62, 137, 170, 50, 141, 160, 61, 130, 199, 38, 8, 155,\n\t\t208, 252, 223, 227, 154, 137, 77, 43, 78, 243, 116, 40, 169,\n\t\t100, 182, 218, 102, 158, 208, 19, 84, 215, 177, 35, 179, 7,\n\t\t71, 193, 29, 138, 217, 234, 90, 64, 102, 141, 172, 29, 190,\n\t\t48, 61, 40, 205, 108, 198, 44, 71, 103, 96, 56, 81, 149, 161,\n\t\t100, 220, 28, 29, 135, 14, 43, 201, 205, 121, 9, 28, 236,\n\t\t141, 88, 143, 153, 168, 133, 43, 76, 168, 185, 145, 124, 3,\n\t\t142, 155, 123, 138, 113, 59, 74, 56, 77, 220, 79, 238, 178,\n\t\t124, 132, 65, 215, 253, 199, 232, 153, 175, 99, 87, 36, 190,\n\t\t172, 124, 120, 211, 243, 126, 40, 132, 75, 127, 2, 180, 34,\n\t\t34, 75, 41, 241, 70, 14, 164, 103, 93, 145, 199, 144, 112,\n\t\t96, 214, 12, 15, 215, 115, 241, 98, 206, 16, 58, 14, 122,\n\t\t211, 242, 173, 112, 79, 62, 173, 75, 88, 218, 33, 209, 193,\n\t\t247, 42, 36, 137, 202, 135, 108, 146, 171, 44, 87, 109, 65,\n\t\t200, 131, 147, 63, 48, 186, 176, 108, 57, 128, 79, 217, 217,\n\t\t225, 4, 4, 22, 82, 14, 198, 15, 229, 65, 197, 205, 128, 35,\n\t\t134, 64, 232, 210, 205, 152, 152, 58, 49, 11, 134, 26, 102,\n\t\t106, 4, 210, 188, 164, 77, 76, 88, 127, 103, 140, 122, 248,\n\t\t168, 85, 24, 160, 41, 84, 145, 0, 199, 56, 87, 185, 240, 2,\n\t\t0, 198, 9, 22, 246, 202, 170, 80, 104, 226, 194, 134, 35,\n\t\t151, 29, 74, 81, 203, 9, 87, 63, 236, 171, 160, 145, 8, 37,\n\t\t202, 196, 235, 42, 28, 75, 50, 219, 51, 26, 1, 178, 134, 97,\n\t\t105, 138, 159, 211, 172, 172, 11, 89, 136, 230, 112, 125,\n\t\t36, 191, 200, 220, 82, 217, 228, 117, 48, 101, 222, 144, 101,\n\t\t222, 13, 97, 199, 156, 253, 158, 121, 152, 61, 219, 176, 3,\n\t\t226, 192, 0, 115, 130, 136, 65, 2, 111, 2, 116, 79, 60, 114,\n\t\t70, 146, 59, 208, 194, 121, 181, 64, 85, 157, 123, 250, 229,\n\t\t82, 4, 1, 107, 17, 213, 39, 102, 224, 103, 253, 44, 84, 156,\n\t\t23, 83, 103, 16, 249, 56, 24, 96, 160, 181, 158, 15, 32, 76,\n\t\t88, 67, 25, 116, 28, 45, 37, 252, 218, 172, 56, 99, 46, 23,\n\t\t196, 248, 149, 4, 29, 173, 56, 130, 44, 250, 189, 161, 107,\n\t\t246, 22, 156, 4, 52, 164, 201, 40, 103, 226, 94, 188, 49,\n\t\t206, 230, 136, 138, 202, 94, 63, 176, 187, 194, 169, 136,\n\t\t153, 10, 147, 196, 164, 3, 255, 122, 83, 177, 106, 37, 145,\n\t\t162, 203, 185, 101, 168, 106, 75, 236, 165, 48, 133, 213,\n\t\t147, 152, 48, 230, 42, 196, 69, 37, 19, 219, 185, 250, 76,\n\t\t122, 46, 149, 31, 200, 6, 119, 20, 143, 178, 156, 121, 24,\n\t\t82, 101, 242, 58, 140, 91, 37, 99, 136, 160, 120, 167, 12,\n\t\t208, 167, 208, 104, 91, 211, 80, 94, 86, 252, 108, 118, 231,\n\t\t30, 84, 108, 129, 127, 87, 101, 195, 230, 22, 49, 49, 203,\n\t\t249, 14, 93, 238, 3, 85, 30, 209, 128, 3, 227, 129, 17, 135,\n\t\t247, 104, 184, 13, 176, 81, 211, 132, 142, 139, 122, 157,\n\t\t119, 34, 216, 110, 55, 89, 50, 146, 150, 249, 116, 42, 108,\n\t\t82, 179, 70, 127, 76, 235, 83, 230, 124, 183, 249, 160, 51,\n\t\t212, 162, 212, 206, 63, 99, 180, 123, 178, 35, 117, 153, 98,\n\t\t221, 214, 117, 166, 20, 167, 19, 83, 21, 134, 13, 170, 129,\n\t\t248, 13, 73, 27, 16, 58, 220, 109, 190, 172, 20, 223, 141,\n\t\t75, 77, 208, 25, 48, 116, 177, 237, 227, 216, 117, 136, 243,\n\t\t87, 60, 97, 218, 224, 31, 234, 216, 53, 93, 106, 229, 190,\n\t\t106, 87, 89, 254, 110, 98, 40, 121, 243, 188, 16, 208, 248,\n\t\t82, 249, 44, 129, 217, 168, 187, 75, 6, 210, 129, 10, 24,\n\t\t25, 163, 94, 41, 94, 132, 71, 125, 80, 108, 78, 2, 216, 16,\n\t\t191, 66, 86, 40, 179, 106, 253, 0, 1, 158, 45, 219, 69, 105,\n\t\t28, 165, 234, 201, 207, 97, 188, 137, 34, 26, 166, 100, 24,\n\t\t217, 216, 38, 42, 18, 106, 63, 247, 81, 115, 97, 43, 50, 161,\n\t\t101, 153, 122, 91, 133, 32, 226, 72, 50, 71, 5, 153, 5, 138,\n\t\t244, 43, 212, 90, 128, 170, 199, 183, 203, 64, 106, 77, 233,\n\t\t145, 177, 16, 250, 138, 143, 35, 243, 123, 60, 140, 151, 145,\n\t\t91, 68, 119, 72, 70, 133, 167, 16, 27, 77, 89, 233, 211, 243,\n\t\t80, 83, 210, 203, 232, 84, 218, 64, 172, 208, 121, 52, 89,\n\t\t171, 20, 150, 144, 96, 94, 72, 226, 1, 114, 243, 84, 120,\n\t\t11, 15, 27, 203, 90, 167, 152, 19, 119, 8, 223, 213, 186,\n\t\t96, 38, 148, 39, 18, 214, 202, 157, 81, 141, 45, 158, 100,\n\t\t112, 211, 52, 105, 227, 162, 68, 50, 174, 229, 128, 110, 40,\n\t\t85, 80, 80, 206, 103, 185, 15, 201, 176, 171, 81, 38, 18,\n\t\t191, 63, 176, 95, 255, 248, 249, 235, 175, 247, 175, 191,\n\t\t124, 249, 246, 245, 197, 126, 125, 69, 217, 171, 44, 90, 106,\n\t\t238, 136, 132, 22, 138, 39, 12, 164, 208, 238, 123, 104, 167,\n\t\t105, 230, 139, 166, 223, 73, 242, 240, 60, 169, 3, 219, 150,\n\t\t149, 245, 154, 180, 114, 171, 38, 204, 120, 30, 63, 205, 54,\n\t\t10, 196, 250, 166, 249, 172, 112, 90, 249, 103, 122, 71, 252,\n\t\t77, 52, 185, 64, 54, 136, 237, 129, 201, 201, 25, 37, 144,\n\t\t86, 26, 190, 236, 57, 139, 244, 78, 145, 19, 164, 112, 11,\n\t\t51, 54, 56, 206, 112, 101, 104, 19, 68, 94, 64, 8, 176, 38,\n\t\t108, 80, 237, 212, 210, 158, 93, 36, 110, 20, 239, 134, 66,\n\t\t142, 34, 179, 68, 158, 46, 158, 46, 162, 146, 175, 105, 50,\n\t\t134, 19, 175, 21, 167, 18, 8, 121, 150, 91, 101, 135, 10,\n\t\t13, 8, 37, 52, 80, 50, 157, 88, 98, 60, 240, 112, 190, 146,\n\t\t41, 177, 101, 57, 0, 212, 204, 94, 34, 80, 101, 243, 108,\n\t\t11, 159, 222, 167, 131, 43, 111, 157, 148, 155, 80, 117, 135,\n\t\t107, 151, 51, 176, 15, 193, 133, 51, 229, 100, 177, 169, 216,\n\t\t78, 31, 146, 40, 17, 202, 237, 76, 187, 101, 155, 215, 82,\n\t\t131, 20, 119, 154, 12, 155, 40, 112, 182, 217, 193, 27, 56,\n\t\t37, 123, 98, 218, 107, 31, 194, 169, 156, 94, 89, 80, 106,\n\t\t94, 116, 77, 9, 252, 69, 132, 30, 52, 123, 19, 216, 79, 106,\n\t\t138, 209, 253, 208, 115, 162, 145, 197, 211, 215, 1, 222,\n\t\t176, 144, 139, 158, 30, 108, 104, 28, 94, 194, 138, 118, 114,\n\t\t189, 81, 184, 152, 2, 22, 236, 205, 115, 177, 225, 221, 95,\n\t\t240, 9, 255, 248, 237, 183, 239, 120, 131, 47, 144, 97, 147,\n\t\t109, 33, 130, 219, 150, 57, 116, 83, 80, 180, 232, 137, 192,\n\t\t216, 151, 131, 96, 193, 28, 27, 152, 91, 204, 73, 47, 70,\n\t\t25, 68, 26, 84, 1, 67, 60, 164, 60, 180, 98, 88, 151, 0, 70,\n\t\t149, 41, 93, 76, 0, 137, 151, 18, 86, 51, 227, 162, 219, 248,\n\t\t215, 50, 8, 237, 104, 203, 19, 254, 199, 51, 245, 152, 228,\n\t\t225, 101, 212, 102, 37, 127, 150, 56, 65, 109, 151, 81, 156,\n\t\t45, 53, 93, 129, 108, 249, 195, 142, 142, 250, 47, 80, 10,\n\t\t134, 224, 158, 101, 111, 241, 107, 170, 65, 70, 74, 128, 74,\n\t\t186, 88, 219, 32, 204, 16, 157, 235, 21, 69, 177, 229, 172,\n\t\t40, 227, 173, 71, 33, 101, 91, 214, 46, 168, 142, 112, 105,\n\t\t147, 47, 115, 54, 163, 62, 60, 63, 151, 222, 87, 193, 58,\n\t\t81, 96, 225, 230, 172, 100, 177, 81, 55, 164, 50, 118, 62,\n\t\t8, 230, 197, 174, 194, 205, 48, 109, 233, 61, 145, 205, 64,\n\t\t141, 187, 104, 18, 4, 214, 19, 84, 161, 68, 254, 125, 226,\n\t\t241, 35, 241, 111, 239, 234, 65, 232, 215, 99, 118, 78, 116,\n\t\t234, 249, 203, 239, 170, 184, 110, 49, 0, 153, 76, 120, 199,\n\t\t40, 188, 96, 42, 249, 113, 214, 207, 56, 130, 180, 214, 23,\n\t\t189, 3, 15, 25, 97, 236, 136, 240, 23, 156, 38, 32, 124, 0,\n\t\t81, 242, 198, 138, 210, 82, 35, 232, 137, 160, 16, 89, 95,\n\t\t245, 236, 53, 13, 204, 51, 217, 29, 170, 30, 55, 176, 209,\n\t\t222, 193, 179, 235, 54, 43, 248, 87, 209, 93, 245, 19, 101,\n\t\t199, 19, 105, 64, 96, 235, 86, 167, 208, 172, 132, 94, 195,\n\t\t153, 25, 159, 80, 31, 135, 213, 90, 119, 72, 230, 154, 249,\n\t\t232, 32, 207, 34, 128, 50, 172, 95, 1, 69, 108, 178, 135,\n\t\t51, 175, 50, 240, 64, 192, 7, 120, 252, 199, 29, 143, 43,\n\t\t105, 145, 147, 120, 104, 187, 73, 50, 254, 46, 101, 222, 94,\n\t\t37, 29, 209, 234, 10, 3, 138, 186, 124, 123, 113, 193, 176,\n\t\t80, 73, 88, 151, 95, 150, 125, 150, 227, 238, 57, 223, 164,\n\t\t196, 144, 169, 82, 159, 168, 246, 170, 6, 17, 164, 199, 162,\n\t\t212, 29, 59, 134, 23, 81, 113, 183, 1, 160, 81, 184, 118,\n\t\t94, 108, 49, 58, 252, 46, 1, 252, 199, 53, 148, 120, 120,\n\t\t194, 64, 165, 123, 13, 55, 145, 232, 184, 75, 224, 231, 38,\n\t\t204, 157, 195, 19, 119, 91, 181, 183, 192, 3, 85, 65, 181,\n\t\t124, 218, 251, 110, 234, 190, 8, 155, 216, 49, 188, 231, 70,\n\t\t160, 53, 22, 100, 167, 207, 140, 156, 14, 181, 29, 211, 74,\n\t\t246, 71, 186, 121, 40, 183, 192, 11, 157, 125, 92, 121, 136,\n\t\t9, 168, 93, 152, 197, 17, 139, 84, 222, 212, 143, 242, 150,\n\t\t56, 75, 204, 226, 197, 235, 242, 29, 178, 119, 143, 107, 140,\n\t\t153, 208, 95, 246, 204, 100, 64, 254, 233, 67, 115, 191, 88,\n\t\t30, 90, 58, 202, 242, 208, 176, 156, 236, 161, 159, 246, 188,\n\t\t60, 116, 101, 74, 178, 236, 143, 98, 15, 93, 8, 13, 250, 255,\n\t\t252, 113, 59, 145, 144, 233, 227, 38, 206, 100, 214, 114,\n\t\t148, 155, 206, 156, 247, 34, 92, 241, 139, 57, 174, 62, 85,\n\t\t248, 232, 193, 201, 142, 155, 64, 231, 181, 165, 80, 15, 157,\n\t\t49, 156, 154, 90, 184, 20, 134, 242, 72, 98, 209, 89, 123,\n\t\t225, 222, 193, 61, 90, 126, 195, 82, 69, 248, 213, 229, 215,\n\t\t249, 87, 69, 58, 103, 232, 41, 122, 136, 9, 21, 62, 159, 123,\n\t\t23, 1, 143, 155, 164, 136, 238, 187, 103, 148, 53, 60, 102,\n\t\t248, 172, 31, 110, 81, 119, 220, 136, 250, 129, 230, 138,\n\t\t44, 190, 190, 211, 131, 84, 218, 70, 89, 63, 233, 156, 185,\n\t\t248, 17, 172, 133, 90, 122, 95, 154, 154, 167, 93, 12, 174,\n\t\t203, 93, 76, 251, 155, 172, 126, 35, 99, 137, 82, 221, 126,\n\t\t14, 233, 59, 183, 52, 158, 143, 54, 223, 102, 123, 119, 26,\n\t\t47, 208, 119, 151, 53, 172, 33, 239, 142, 254, 222, 118, 97,\n\t\t159, 191, 67, 9, 250, 38, 233, 135, 59, 194, 188, 183, 93,\n\t\t247, 200, 92, 245, 163, 23, 165, 63, 37, 47, 10, 147, 241,\n\t\t127, 242, 77, 229, 79, 223, 146, 208, 21, 236, 218, 3, 127,\n\t\t248, 146, 50, 225, 31, 194, 124, 69, 12, 93, 190, 243, 72,\n\t\t184, 213, 187, 112, 231, 234, 23, 136, 79, 222, 224, 28, 222,\n\t\t101, 199, 188, 74, 209, 69, 65, 126, 234, 162, 160, 113, 4,\n\t\t25, 78, 4, 156, 100, 251, 22, 228, 25, 133, 45, 156, 174,\n\t\t123, 231, 183, 127, 238, 202, 106, 75, 219, 183, 29, 144,\n\t\t40, 164, 177, 244, 158, 240, 117, 190, 203, 117, 62, 53, 99,\n\t\t127, 127, 59, 223, 254, 254, 237, 203, 63, 247, 223, 206,\n\t\t47, 191, 188, 154, 179, 111, 43, 164, 179, 110, 49, 245, 35,\n\t\t81, 185, 4, 0, 146, 140, 142, 53, 169, 168, 192, 113, 43,\n\t\t93, 83, 155, 185, 124, 124, 255, 190, 114, 109, 91, 132, 198,\n\t\t25, 249, 14, 60, 115, 37, 208, 141, 103, 142, 197, 100, 179,\n\t\t125, 230, 7, 54, 215, 131, 3, 160, 144, 247, 156, 98, 191,\n\t\t179, 92, 244, 233, 187, 155, 211, 119, 13, 196, 21, 66, 191,\n\t\t169, 193, 113, 175, 97, 15, 78, 241, 247, 37, 94, 120, 238,\n\t\t84, 56, 232, 83, 59, 166, 19, 200, 202, 221, 81, 178, 231,\n\t\t123, 64, 53, 183, 70, 215, 40, 1, 38, 123, 149, 94, 156, 123,\n\t\t198, 25, 59, 87, 79, 144, 244, 153, 52, 5, 206, 100, 251,\n\t\t80, 195, 181, 172, 199, 197, 17, 235, 79, 95, 212, 31, 63,\n\t\t189, 208, 140, 38, 103, 220, 201, 62, 29, 158, 104, 70, 85,\n\t\t102, 81, 51, 93, 138, 206, 140, 192, 70, 68, 80, 81, 198,\n\t\t70, 150, 146, 24, 43, 98, 102, 45, 89, 191, 142, 84, 200,\n\t\t211, 135, 27, 159, 55, 76, 210, 209, 142, 121, 57, 59, 166,\n\t\t59, 31, 237, 80, 45, 180, 45, 247, 195, 135, 60, 255, 189,\n\t\t201, 93, 113, 189, 83, 129, 135, 114, 25, 162, 251, 183, 9,\n\t\t246, 121, 171, 48, 239, 131, 151, 82, 136, 50, 246, 186, 149,\n\t\t46, 171, 31, 34, 210, 211, 3, 14, 92, 244, 226, 121, 195,\n\t\t112, 210, 74, 44, 69, 95, 238, 244, 237, 173, 179, 253, 115,\n\t\t55, 170, 88, 8, 224, 28, 168, 251, 16, 219, 105, 249, 115,\n\t\t43, 92, 113, 51, 52, 243, 174, 108, 195, 207, 103, 237, 48,\n\t\t148, 229, 4, 90, 240, 162, 30, 43, 3, 233, 249, 96, 252, 189,\n\t\t225, 164, 177, 47, 9, 126, 220, 220, 243, 169, 242, 51, 242,\n\t\t16, 183, 93, 158, 106, 112, 206, 15, 109, 169, 126, 104, 224,\n\t\t202, 146, 194, 113, 0, 255, 3, 70, 179, 63, 190, 254, 227,\n\t\t235, 71, 198, 134, 228, 162, 77, 23, 241, 232, 91, 12, 238,\n\t\t190, 135, 92, 206, 61, 132, 44, 80, 245, 233, 213, 51, 141,\n\t\t89, 240, 233, 136, 103, 3, 235, 88, 226, 57, 228, 190, 123,\n\t\t95, 79, 207, 233, 183, 154, 143, 124, 206, 87, 67, 136, 202,\n\t\t105, 36, 249, 236, 121, 112, 122, 231, 65, 125, 54, 175, 193,\n\t\t165, 173, 236, 210, 131, 104, 43, 78, 7, 244, 220, 27, 148,\n\t\t118, 115, 60, 247, 86, 32, 192, 114, 182, 103, 205, 189, 207,\n\t\t31, 247, 151, 175, 223, 222, 254, 254, 245, 253, 247, 111,\n\t\t255, 122, 121, 232, 23, 218, 212, 216, 146, 52, 131, 103,\n\t\t209, 160, 65, 41, 12, 201, 111, 83, 215, 183, 228, 163, 163,\n\t\t121, 149, 163, 229, 183, 224, 41, 135, 20, 17, 112, 86, 118,\n\t\t175, 162, 52, 162, 170, 204, 226, 202, 97, 219, 211, 143,\n\t\t36, 81, 216, 105, 68, 81, 36, 146, 242, 98, 78, 101, 60, 23,\n\t\t231, 85, 230, 203, 27, 137, 145, 17, 124, 205, 14, 92, 148,\n\t\t86, 157, 102, 76, 218, 199, 93, 114, 133, 187, 80, 209, 222,\n\t\t232, 183, 239, 187, 108, 62, 46, 84, 35, 201, 133, 78, 126,\n\t\t52, 156, 15, 216, 144, 82, 44, 43, 20, 58, 110, 8, 118, 220,\n\t\t136, 187, 45, 50, 166, 142, 90, 168, 109, 123, 53, 225, 13,\n\t\t68, 5, 113, 56, 5, 181, 230, 195, 103, 98, 121, 106, 71, 27,\n\t\t139, 174, 36, 230, 34, 184, 235, 26, 36, 226, 69, 243, 198,\n\t\t138, 248, 154, 179, 211, 54, 54, 74, 52, 100, 125, 113, 198,\n\t\t124, 164, 132, 198, 14, 174, 29, 254, 14, 120, 224, 141, 42,\n\t\t118, 250, 229, 142, 109, 218, 196, 177, 177, 249, 35, 222,\n\t\t17, 83, 144, 99, 239, 216, 124, 58, 52, 249, 114, 159, 239,\n\t\t15, 7, 205, 143, 207, 215, 74, 68, 87, 47, 203, 26, 14, 195,\n\t\t230, 211, 161, 33, 133, 121, 168, 215, 214, 165, 67, 177,\n\t\t249, 124, 85, 31, 238, 128, 251, 225, 64, 108, 62, 95, 179,\n\t\t214, 35, 233, 219, 214, 107, 242, 230, 5, 199, 134, 210, 15,\n\t\t38, 40, 201, 195, 86, 63, 120, 168, 240, 80, 140, 79, 221,\n\t\t154, 119, 213, 5, 174, 102, 68, 42, 123, 210, 130, 76, 127,\n\t\t126, 145, 15, 98, 64, 242, 91, 116, 225, 8, 247, 190, 60,\n\t\t227, 93, 82, 188, 114, 179, 56, 48, 148, 252, 39, 125, 248,\n\t\t195, 129, 49, 246, 35, 62, 183, 240, 199, 246, 127, 92, 228,\n\t\t216, 228, 11, 142, 120, 126, 137, 143, 107, 21, 107, 72, 172,\n\t\t37, 195, 32, 44, 197, 77, 28, 231, 211, 248, 42, 115, 4, 66,\n\t\t17, 233, 22, 250, 180, 41, 24, 123, 224, 85, 71, 93, 201,\n\t\t208, 253, 50, 65, 224, 148, 61, 76, 187, 93, 159, 164, 150,\n\t\t35, 61, 247, 187, 143, 189, 82, 91, 39, 212, 143, 125, 229,\n\t\t99, 79, 122, 92, 174, 2, 201, 219, 4, 196, 51, 52, 62, 222,\n\t\t144, 224, 228, 84, 138, 88, 140, 224, 71, 18, 31, 248, 22,\n\t\t9, 144, 137, 162, 107, 139, 250, 171, 192, 154, 217, 37, 136,\n\t\t101, 224, 212, 61, 58, 170, 191, 157, 247, 73, 248, 123, 90,\n\t\t171, 65, 143, 152, 109, 166, 224, 68, 152, 44, 116, 81, 204,\n\t\t62, 155, 65, 40, 7, 90, 197, 115, 16, 231, 18, 112, 5, 175,\n\t\t176, 181, 35, 63, 77, 82, 253, 72, 250, 198, 105, 210, 253,\n\t\t147, 142, 132, 185, 120, 77, 115, 47, 51, 42, 146, 69, 207,\n\t\t115, 178, 37, 50, 49, 31, 171, 230, 21, 206, 213, 29, 114,\n\t\t38, 94, 218, 52, 127, 219, 243, 20, 244, 113, 134, 250, 193,\n\t\t66, 247, 251, 151, 223, 126, 251, 8, 203, 78, 238, 5, 150,\n\t\t109, 113, 237, 68, 137, 132, 185, 216, 250, 177, 212, 125,\n\t\t23, 55, 13, 42, 37, 131, 224, 202, 243, 185, 24, 75, 76, 172,\n\t\t82, 215, 214, 122, 123, 210, 214, 99, 133, 105, 140, 110,\n\t\t102, 48, 134, 187, 207, 161, 241, 104, 3, 35, 114, 225, 86,\n\t\t162, 146, 208, 224, 234, 209, 198, 2, 227, 6, 120, 32, 40,\n\t\t133, 98, 49, 203, 84, 246, 136, 218, 42, 5, 67, 201, 137,\n\t\t98, 1, 102, 50, 166, 180, 202, 21, 140, 104, 141, 82, 240,\n\t\t208, 157, 194, 250, 77, 89, 240, 252, 108, 128, 137, 214,\n\t\t221, 201, 183, 70, 119, 214, 251, 128, 6, 20, 16, 213, 30,\n\t\t90, 67, 77, 35, 101, 2, 3, 57, 161, 161, 73, 130, 85, 36,\n\t\t179, 38, 173, 10, 122, 50, 160, 158, 166, 105, 84, 104, 221,\n\t\t235, 195, 111, 210, 105, 85, 227, 19, 9, 210, 54, 162, 21,\n\t\t214, 162, 65, 189, 170, 246, 136, 247, 114, 90, 10, 65, 50,\n\t\t150, 171, 174, 172, 146, 246, 61, 95, 26, 58, 81, 188, 57,\n\t\t210, 147, 213, 161, 65, 83, 196, 198, 178, 70, 96, 135, 150,\n\t\t138, 55, 107, 142, 167, 56, 242, 102, 185, 65, 158, 231, 198,\n\t\t170, 247, 40, 0, 11, 219, 133, 126, 161, 177, 27, 164, 126,\n\t\t24, 240, 193, 171, 7, 243, 112, 99, 236, 73, 72, 100, 23,\n\t\t13, 62, 217, 143, 251, 2, 10, 201, 48, 41, 10, 168, 128, 153,\n\t\t128, 174, 201, 72, 46, 254, 137, 233, 180, 56, 90, 5, 252,\n\t\t244, 70, 64, 241, 106, 218, 217, 136, 86, 104, 125, 54, 95,\n\t\t85, 114, 209, 90, 107, 11, 175, 94, 50, 212, 64, 46, 33, 127,\n\t\t34, 77, 2, 45, 0, 52, 162, 34, 231, 160, 138, 33, 45, 238,\n\t\t221, 101, 24, 208, 27, 239, 71, 49, 103, 10, 67, 66, 187,\n\t\t202, 77, 14, 3, 43, 46, 224, 104, 60, 61, 31, 11, 203, 76,\n\t\t250, 204, 88, 48, 42, 210, 227, 116, 79, 124, 238, 59, 123,\n\t\t27, 170, 206, 209, 245, 249, 100, 153, 144, 105, 34, 128,\n\t\t17, 85, 210, 179, 67, 101, 215, 208, 50, 8, 254, 196, 227,\n\t\t73, 178, 85, 164, 76, 46, 68, 217, 222, 48, 1, 72, 80, 2,\n\t\t73, 38, 181, 179, 25, 163, 156, 248, 78, 7, 97, 9, 183, 21,\n\t\t109, 3, 115, 100, 205, 244, 192, 164, 17, 60, 175, 188, 49,\n\t\t11, 242, 202, 43, 75, 73, 217, 239, 25, 24, 108, 35, 167,\n\t\t179, 95, 199, 29, 111, 246, 111, 47, 2, 133, 90, 254, 64,\n\t\t61, 11, 4, 222, 58, 211, 151, 224, 160, 54, 125, 25, 154,\n\t\t51, 151, 228, 16, 146, 70, 200, 108, 169, 136, 172, 136, 113,\n\t\t13, 75, 186, 71, 97, 8, 50, 250, 154, 162, 228, 203, 192,\n\t\t27, 148, 38, 115, 164, 87, 210, 22, 201, 158, 228, 205, 42,\n\t\t33, 162, 174, 177, 28, 172, 242, 44, 95, 65, 115, 31, 101,\n\t\t116, 4, 61, 164, 174, 0, 164, 32, 61, 166, 98, 164, 57, 120,\n\t\t124, 18, 124, 45, 203, 116, 9, 184, 149, 214, 127, 90, 118,\n\t\t45, 48, 228, 96, 232, 236, 20, 32, 255, 91, 182, 212, 33,\n\t\t90, 50, 180, 43, 74, 202, 94, 187, 164, 215, 151, 193, 127,\n\t\t231, 139, 85, 95, 195, 55, 75, 71, 134, 200, 34, 158, 16,\n\t\t251, 29, 170, 121, 163, 53, 158, 154, 33, 146, 78, 149, 49,\n\t\t161, 137, 232, 220, 231, 203, 238, 251, 251, 31, 191, 252,\n\t\t242, 229, 99, 77, 117, 114, 175, 232, 98, 69, 103, 248, 76,\n\t\t172, 188, 37, 28, 253, 92, 224, 33, 108, 190, 114, 92, 115,\n\t\t60, 107, 104, 91, 120, 65, 187, 0, 214, 21, 6, 130, 233, 104,\n\t\t70, 7, 20, 113, 50, 98, 75, 31, 88, 152, 161, 143, 38, 29,\n\t\t252, 0, 150, 137, 219, 80, 163, 207, 128, 128, 217, 220, 7,\n\t\t30, 37, 235, 178, 129, 50, 29, 41, 167, 105, 186, 164, 68,\n\t\t106, 50, 134, 195, 51, 140, 168, 36, 185, 3, 68, 0, 57, 135,\n\t\t39, 101, 228, 39, 177, 11, 130, 93, 40, 97, 25, 84, 233, 62,\n\t\t60, 147, 46, 71, 97, 145, 185, 85, 14, 18, 65, 92, 158, 17,\n\t\t53, 45, 66, 187, 201, 20, 77, 212, 91, 121, 172, 142, 29,\n\t\t0, 162, 5, 67, 204, 152, 227, 140, 140, 162, 180, 46, 47,\n\t\t21, 103, 80, 33, 90, 165, 36, 149, 105, 66, 2, 140, 23, 22,\n\t\t227, 83, 235, 215, 84, 181, 27, 13, 83, 137, 124, 74, 161,\n\t\t173, 214, 252, 226, 150, 85, 110, 55, 170, 32, 46, 46, 0,\n\t\t251, 53, 176, 120, 0, 183, 158, 18, 23, 201, 220, 120, 130,\n\t\t10, 74, 225, 28, 212, 190, 145, 115, 214, 195, 36, 1, 117,\n\t\t50, 81, 188, 5, 26, 151, 121, 61, 100, 189, 58, 85, 114, 56,\n\t\t26, 27, 147, 66, 250, 146, 224, 83, 51, 38, 83, 53, 140, 65,\n\t\t116, 26, 228, 122, 25, 39, 99, 158, 150, 40, 242, 105, 16,\n\t\t30, 79, 149, 59, 64, 69, 169, 21, 32, 53, 229, 186, 190, 64,\n\t\t106, 86, 50, 138, 231, 174, 98, 187, 113, 161, 25, 160, 75,\n\t\t212, 217, 122, 91, 165, 230, 14, 114, 78, 2, 212, 10, 118,\n\t\t12, 99, 92, 84, 184, 54, 114, 131, 158, 58, 233, 38, 125,\n\t\t74, 153, 150, 181, 132, 218, 68, 208, 120, 54, 81, 107, 147,\n\t\t11, 156, 121, 198, 23, 176, 74, 20, 12, 161, 234, 235, 35,\n\t\t176, 161, 74, 200, 72, 129, 7, 229, 192, 118, 27, 26, 105,\n\t\t23, 54, 29, 245, 161, 206, 4, 250, 90, 169, 231, 128, 155,\n\t\t227, 205, 255, 145, 249, 177, 172, 227, 76, 48, 2, 39, 149,\n\t\t254, 244, 51, 3, 170, 159, 36, 95, 183, 204, 22, 11, 132,\n\t\t194, 163, 28, 204, 27, 82, 160, 131, 181, 165, 242, 196, 32,\n\t\t11, 30, 16, 180, 142, 217, 232, 221, 19, 167, 26, 180, 57,\n\t\t179, 114, 176, 131, 124, 74, 250, 56, 228, 83, 197, 10, 175,\n\t\t12, 108, 230, 55, 148, 161, 27, 203, 15, 116, 102, 77, 201,\n\t\t75, 104, 151, 224, 14, 170, 42, 70, 16, 10, 68, 167, 129,\n\t\t122, 202, 130, 20, 136, 238, 84, 90, 13, 225, 38, 184, 12,\n\t\t148, 120, 193, 207, 141, 172, 113, 65, 237, 30, 32, 59, 205,\n\t\t227, 154, 18, 29, 25, 37, 140, 103, 214, 168, 58, 235, 253,\n\t\t143, 102, 173, 200, 139, 19, 197, 189, 50, 200, 134, 183,\n\t\t0, 94, 176, 228, 32, 236, 118, 38, 101, 140, 151, 100, 97,\n\t\t167, 73, 92, 46, 32, 44, 27, 10, 16, 193, 139, 83, 78, 104,\n\t\t0, 235, 216, 0, 60, 181, 158, 172, 240, 76, 113, 225, 10,\n\t\t33, 204, 240, 88, 173, 33, 148, 45, 233, 14, 5, 97, 193, 231,\n\t\t221, 42, 167, 104, 78, 82, 225, 222, 11, 179, 186, 13, 63,\n\t\t215, 93, 126, 196, 160, 144, 21, 182, 222, 162, 198, 215,\n\t\t169, 255, 157, 50, 142, 171, 212, 221, 169, 197, 88, 81, 184,\n\t\t4, 29, 116, 177, 48, 129, 207, 195, 250, 110, 153, 142, 35,\n\t\t159, 160, 202, 47, 29, 211, 9, 40, 141, 228, 62, 137, 172,\n\t\t149, 1, 26, 154, 127, 180, 2, 11, 41, 52, 5, 145, 20, 1, 235,\n\t\t48, 48, 139, 212, 248, 238, 96, 137, 219, 11, 8, 15, 212,\n\t\t180, 196, 162, 233, 62, 24, 106, 224, 142, 134, 4, 171, 22,\n\t\t10, 103, 158, 60, 231, 123, 150, 17, 36, 136, 68, 122, 185,\n\t\t106, 76, 41, 49, 163, 231, 46, 194, 212, 56, 179, 215, 231,\n\t\t103, 40, 241, 154, 96, 139, 146, 113, 160, 80, 42, 191, 11,\n\t\t205, 216, 120, 83, 60, 203, 138, 200, 154, 93, 158, 23, 109,\n\t\t44, 93, 153, 203, 207, 248, 238, 23, 70, 22, 176, 91, 33,\n\t\t112, 179, 112, 6, 10, 159, 132, 128, 1, 115, 215, 49, 195,\n\t\t46, 188, 112, 209, 72, 237, 214, 2, 247, 161, 197, 64, 161,\n\t\t254, 130, 210, 101, 77, 5, 158, 9, 207, 172, 120, 103, 220,\n\t\t157, 58, 106, 23, 139, 162, 104, 189, 19, 77, 186, 29, 235,\n\t\t78, 214, 122, 221, 65, 153, 97, 69, 210, 101, 248, 153, 154,\n\t\t180, 212, 133, 25, 196, 122, 154, 132, 76, 176, 97, 98, 56,\n\t\t162, 8, 200, 185, 173, 115, 146, 165, 83, 186, 159, 74, 200,\n\t\t25, 103, 83, 142, 252, 46, 27, 243, 219, 125, 253, 250, 221,\n\t\t118, 60, 237, 230, 13, 189, 22, 253, 203, 184, 13, 249, 61,\n\t\t74, 32, 129, 133, 19, 37, 69, 28, 113, 41, 207, 127, 222,\n\t\t249, 143, 243, 219, 243, 81, 110, 118, 131, 112, 204, 118,\n\t\t104, 44, 65, 58, 15, 144, 24, 196, 242, 189, 253, 125, 151,\n\t\t203, 22, 197, 164, 219, 175, 16, 172, 109, 14, 75, 87, 217,\n\t\t12, 148, 142, 166, 70, 132, 140, 117, 105, 83, 68, 67, 173,\n\t\t150, 87, 134, 12, 222, 60, 222, 222, 51, 230, 225, 50, 84,\n\t\t69, 131, 13, 112, 190, 60, 77, 177, 114, 79, 10, 98, 65, 69,\n\t\t144, 145, 163, 194, 130, 195, 12, 84, 135, 134, 152, 5, 116,\n\t\t70, 191, 149, 205, 189, 132, 19, 86, 216, 51, 22, 167, 159,\n\t\t231, 75, 11, 91, 130, 255, 198, 246, 240, 154, 251, 184, 250,\n\t\t156, 142, 184, 133, 80, 62, 109, 147, 242, 4, 17, 184, 12,\n\t\t41, 22, 69, 131, 120, 212, 161, 160, 69, 158, 160, 15, 90,\n\t\t155, 162, 77, 34, 108, 18, 212, 38, 34, 152, 242, 189, 70,\n\t\t225, 7, 95, 26, 133, 30, 254, 199, 109, 18, 120, 193, 253,\n\t\t126, 147, 20, 157, 24, 208, 36, 216, 163, 77, 66, 220, 100,\n\t\t33, 148, 203, 191, 209, 38, 35, 234, 160, 252, 255, 64, 171,\n\t\t80, 173, 146, 24, 205, 255, 78, 211, 196, 228, 142, 64, 145,\n\t\t61, 63, 32, 17, 189, 69, 173, 4, 44, 22, 169, 129, 93, 59,\n\t\t167, 254, 187, 247, 225, 136, 67, 145, 48, 30, 85, 68, 58,\n\t\t195, 139, 217, 216, 116, 99, 168, 203, 167, 41, 153, 108,\n\t\t170, 149, 40, 114, 36, 85, 98, 212, 134, 45, 190, 221, 82,\n\t\t136, 152, 193, 121, 73, 27, 183, 221, 55, 242, 229, 212, 38,\n\t\t211, 170, 100, 165, 85, 132, 7, 32, 225, 215, 177, 11, 182,\n\t\t73, 107, 76, 187, 190, 11, 93, 60, 185, 6, 110, 104, 152,\n\t\t207, 10, 77, 17, 139, 144, 29, 89, 111, 140, 222, 176, 197,\n\t\t165, 160, 246, 163, 175, 133, 140, 172, 170, 41, 37, 182,\n\t\t74, 111, 18, 146, 178, 194, 79, 229, 178, 192, 203, 10, 202,\n\t\t84, 38, 222, 142, 208, 200, 94, 190, 247, 32, 225, 105, 237,\n\t\t71, 188, 99, 104, 190, 21, 43, 204, 66, 161, 145, 23, 119,\n\t\t154, 240, 235, 18, 202, 0, 176, 88, 37, 138, 192, 141, 129,\n\t\t23, 201, 43, 177, 61, 129, 95, 99, 53, 170, 171, 3, 170, 70,\n\t\t116, 174, 57, 130, 237, 190, 165, 225, 215, 55, 32, 11, 94,\n\t\t20, 155, 73, 202, 30, 209, 252, 24, 179, 104, 125, 57, 15,\n\t\t205, 191, 214, 197, 200, 242, 42, 69, 108, 81, 242, 25, 69,\n\t\t34, 119, 255, 127, 234, 254, 52, 217, 145, 99, 201, 18, 6,\n\t\t255, 99, 21, 190, 1, 55, 177, 121, 144, 94, 195, 93, 68, 164,\n\t\t189, 200, 2, 191, 198, 35, 89, 4, 31, 178, 18, 171, 111, 49,\n\t\t85, 61, 170, 6, 220, 136, 251, 200, 174, 252, 243, 137, 144,\n\t\t113, 221, 29, 62, 218, 160, 166, 227, 57, 98, 46, 92, 53,\n\t\t103, 213, 234, 46, 81, 82, 21, 164, 46, 54, 42, 182, 24, 216,\n\t\t54, 36, 85, 121, 77, 99, 106, 54, 245, 95, 90, 97, 87, 216,\n\t\t214, 146, 121, 110, 57, 214, 178, 33, 140, 1, 60, 66, 41,\n\t\t45, 248, 130, 218, 106, 29, 2, 192, 53, 50, 124, 147, 164,\n\t\t51, 3, 21, 67, 236, 161, 176, 53, 77, 58, 90, 244, 193, 169,\n\t\t195, 200, 88, 75, 138, 240, 227, 97, 174, 178, 89, 195, 7,\n\t\t174, 84, 20, 163, 89, 166, 125, 110, 174, 27, 44, 163, 44,\n\t\t9, 170, 109, 138, 7, 68, 211, 87, 60, 13, 116, 254, 77, 254,\n\t\t68, 89, 75, 201, 231, 105, 130, 215, 243, 186, 203, 127, 203,\n\t\t166, 118, 110, 193, 217, 104, 83, 142, 55, 154, 94, 39, 95,\n\t\t22, 216, 173, 36, 35, 90, 70, 86, 49, 213, 211, 18, 130, 37,\n\t\t57, 123, 238, 94, 249, 200, 210, 159, 223, 169, 235, 194,\n\t\t13, 23, 162, 152, 2, 39, 132, 176, 136, 86, 187, 179, 244,\n\t\t167, 166, 125, 243, 235, 93, 8, 152, 2, 110, 139, 98, 103,\n\t\t237, 122, 36, 5, 29, 168, 237, 196, 103, 203, 42, 176, 101,\n\t\t22, 104, 47, 139, 185, 122, 149, 50, 57, 212, 176, 233, 92,\n\t\t204, 82, 143, 17, 227, 84, 136, 245, 170, 46, 5, 152, 38,\n\t\t136, 121, 136, 197, 120, 13, 190, 77, 200, 29, 127, 104, 41,\n\t\t48, 31, 64, 0, 73, 243, 132, 171, 95, 154, 96, 205, 174, 17,\n\t\t113, 252, 18, 64, 67, 101, 191, 122, 191, 33, 251, 247, 17,\n\t\t70, 109, 110, 89, 227, 178, 2, 124, 226, 46, 182, 3, 60, 238,\n\t\t31, 103, 173, 92, 108, 225, 133, 216, 76, 3, 167, 106, 251,\n\t\t102, 221, 158, 96, 18, 162, 82, 133, 114, 232, 0, 130, 211,\n\t\t55, 234, 60, 231, 73, 165, 214, 158, 108, 72, 222, 191, 24,\n\t\t157, 116, 18, 145, 227, 112, 87, 171, 87, 175, 97, 173, 129,\n\t\t72, 149, 3, 241, 107, 215, 235, 227, 219, 183, 127, 124, 130,\n\t\t142, 206, 190, 255, 127, 20, 40, 154, 74, 119, 125, 115, 137,\n\t\t8, 4, 17, 163, 80, 178, 116, 25, 50, 25, 200, 4, 188, 127,\n\t\t21, 162, 165, 25, 53, 229, 30, 213, 235, 22, 98, 164, 93,\n\t\t233, 244, 7, 113, 123, 82, 155, 194, 244, 1, 251, 255, 118,\n\t\t34, 118, 238, 108, 165, 161, 85, 196, 102, 227, 223, 30, 228,\n\t\t70, 18, 184, 140, 33, 153, 1, 52, 142, 227, 206, 120, 191,\n\t\t100, 138, 39, 248, 17, 101, 107, 162, 68, 62, 26, 8, 220,\n\t\t223, 148, 153, 211, 212, 68, 50, 8, 11, 139, 137, 237, 118,\n\t\t184, 72, 142, 249, 6, 164, 180, 175, 74, 244, 146, 60, 231,\n\t\t163, 226, 74, 240, 145, 251, 218, 168, 252, 221, 252, 138,\n\t\t168, 93, 146, 19, 166, 61, 24, 209, 51, 115, 1, 96, 53, 215,\n\t\t35, 242, 46, 86, 31, 115, 38, 240, 56, 209, 135, 201, 246,\n\t\t133, 91, 129, 33, 55, 233, 60, 111, 141, 164, 16, 159, 56,\n\t\t80, 227, 67, 218, 214, 250, 8, 203, 231, 75, 111, 98, 127,\n\t\t26, 37, 227, 151, 61, 102, 157, 175, 110, 111, 44, 106, 39,\n\t\t110, 9, 22, 127, 28, 88, 67, 140, 102, 112, 214, 74, 177,\n\t\t172, 80, 47, 70, 21, 197, 109, 137, 97, 137, 84, 235, 231,\n\t\t101, 141, 108, 6, 204, 224, 2, 106, 133, 155, 96, 223, 167,\n\t\t172, 38, 162, 154, 41, 32, 23, 116, 88, 117, 172, 145, 138,\n\t\t56, 68, 227, 12, 45, 56, 38, 225, 39, 169, 163, 208, 50, 252,\n\t\t43, 64, 219, 80, 0, 33, 251, 83, 209, 175, 14, 29, 19, 208,\n\t\t206, 52, 206, 34, 57, 231, 183, 170, 218, 35, 65, 183, 99,\n\t\t151, 246, 168, 32, 10, 90, 2, 36, 159, 50, 251, 15, 93, 80,\n\t\t89, 130, 196, 245, 192, 132, 30, 134, 235, 86, 139, 51, 240,\n\t\t114, 106, 8, 156, 219, 183, 139, 103, 179, 14, 46, 107, 28,\n\t\t170, 112, 243, 247, 27, 221, 53, 150, 1, 252, 174, 254, 10,\n\t\t141, 216, 252, 5, 194, 246, 199, 47, 63, 74, 254, 253, 84,\n\t\t106, 184, 21, 238, 230, 44, 9, 25, 0, 204, 161, 96, 31, 185,\n\t\t83, 52, 240, 193, 49, 86, 27, 33, 49, 51, 70, 140, 250, 131,\n\t\t98, 118, 92, 160, 72, 153, 177, 235, 6, 7, 85, 164, 182, 245,\n\t\t65, 113, 154, 150, 168, 49, 115, 20, 80, 6, 133, 69, 225,\n\t\t172, 15, 89, 231, 231, 182, 62, 179, 255, 59, 88, 235, 139,\n\t\t3, 78, 145, 65, 19, 150, 107, 91, 194, 208, 238, 218, 120,\n\t\t75, 62, 101, 5, 157, 71, 246, 56, 38, 144, 2, 167, 5, 194,\n\t\t48, 148, 55, 210, 237, 155, 69, 30, 196, 123, 122, 221, 193,\n\t\t236, 194, 178, 4, 204, 147, 24, 66, 103, 68, 124, 199, 99,\n\t\t143, 201, 46, 238, 88, 233, 215, 217, 241, 40, 112, 130, 149,\n\t\t234, 250, 172, 224, 130, 83, 159, 63, 169, 55, 7, 208, 252,\n\t\t223, 246, 47, 51, 4, 41, 147, 37, 71, 120, 181, 74, 233, 35,\n\t\t180, 190, 154, 61, 19, 21, 91, 46, 141, 83, 61, 39, 212, 22,\n\t\t194, 197, 50, 95, 99, 232, 28, 207, 150, 28, 152, 184, 154,\n\t\t127, 170, 138, 171, 17, 85, 225, 6, 60, 24, 187, 34, 59, 2,\n\t\t148, 148, 164, 37, 170, 42, 203, 174, 137, 233, 214, 188,\n\t\t35, 56, 175, 121, 166, 176, 199, 205, 73, 136, 53, 68, 11,\n\t\t16, 95, 32, 234, 150, 122, 217, 166, 78, 217, 117, 200, 53,\n\t\t232, 3, 125, 232, 200, 170, 139, 12, 46, 36, 48, 244, 185,\n\t\t99, 223, 246, 135, 231, 151, 50, 74, 144, 6, 213, 221, 14,\n\t\t117, 14, 20, 190, 96, 138, 208, 64, 51, 180, 160, 35, 168,\n\t\t170, 60, 145, 17, 132, 73, 89, 101, 22, 183, 177, 109, 206,\n\t\t106, 156, 180, 229, 88, 195, 95, 215, 229, 245, 149, 17, 174,\n\t\t131, 203, 12, 140, 46, 50, 36, 189, 53, 104, 46, 70, 58, 66,\n\t\t40, 46, 60, 63, 82, 160, 132, 160, 28, 220, 50, 136, 146,\n\t\t104, 186, 125, 119, 21, 109, 182, 34, 214, 110, 24, 76, 38,\n\t\t132, 227, 110, 242, 64, 99, 77, 210, 248, 226, 155, 158, 154,\n\t\t204, 230, 185, 233, 133, 191, 87, 4, 236, 78, 197, 203, 1,\n\t\t109, 196, 178, 2, 199, 40, 196, 183, 220, 136, 175, 81, 230,\n\t\t128, 80, 148, 60, 63, 82, 26, 4, 166, 72, 218, 67, 56, 50,\n\t\t28, 234, 148, 22, 208, 32, 97, 0, 184, 222, 4, 166, 141, 146,\n\t\t232, 204, 208, 3, 18, 8, 197, 76, 84, 241, 199, 251, 148,\n\t\t142, 28, 158, 163, 163, 142, 56, 75, 46, 95, 7, 184, 244,\n\t\t32, 36, 146, 173, 183, 85, 15, 85, 110, 156, 205, 21, 66,\n\t\t82, 4, 78, 225, 231, 71, 234, 117, 125, 196, 146, 42, 243,\n\t\t229, 22, 214, 29, 252, 88, 245, 12, 111, 93, 34, 167, 83,\n\t\t138, 148, 216, 179, 157, 38, 67, 1, 152, 4, 50, 222, 189,\n\t\t99, 132, 253, 140, 239, 223, 159, 116, 232, 107, 97, 107,\n\t\t54, 195, 2, 90, 139, 25, 33, 238, 177, 26, 20, 18, 195, 237,\n\t\t173, 198, 127, 126, 164, 150, 151, 20, 8, 227, 161, 58, 15,\n\t\t205, 113, 17, 87, 203, 46, 35, 168, 113, 186, 94, 235, 62,\n\t\t104, 13, 61, 53, 242, 134, 214, 152, 90, 197, 13, 140, 147,\n\t\t37, 204, 233, 170, 36, 72, 53, 209, 17, 215, 3, 161, 123,\n\t\t97, 226, 192, 3, 145, 8, 98, 80, 58, 73, 6, 67, 6, 86, 149,\n\t\t66, 123, 1, 147, 11, 22, 72, 68, 223, 36, 145, 76, 25, 41,\n\t\t42, 128, 76, 79, 156, 118, 89, 9, 42, 128, 78, 181, 109, 229,\n\t\t112, 85, 190, 33, 176, 59, 145, 212, 166, 235, 37, 148, 114,\n\t\t213, 6, 146, 201, 165, 41, 2, 208, 76, 162, 6, 227, 120, 28,\n\t\t94, 72, 218, 132, 8, 15, 143, 204, 128, 0, 135, 131, 84, 254,\n\t\t76, 115, 120, 26, 82, 8, 44, 108, 172, 163, 145, 151, 163,\n\t\t207, 161, 18, 93, 184, 226, 150, 191, 198, 77, 112, 163, 36,\n\t\t5, 113, 17, 204, 13, 57, 30, 246, 167, 38, 53, 228, 125, 251,\n\t\t174, 176, 235, 40, 24, 208, 176, 64, 87, 223, 157, 183, 176,\n\t\t184, 153, 98, 89, 130, 237, 151, 155, 249, 37, 148, 213, 156,\n\t\t12, 86, 122, 63, 232, 80, 18, 146, 4, 77, 53, 196, 184, 104,\n\t\t159, 90, 221, 12, 150, 35, 67, 81, 149, 217, 221, 44, 169,\n\t\t195, 166, 172, 132, 171, 147, 102, 252, 176, 233, 254, 111,\n\t\t84, 163, 127, 126, 255, 237, 147, 106, 164, 244, 95, 217,\n\t\t39, 23, 169, 46, 106, 171, 244, 207, 166, 82, 178, 142, 140,\n\t\t3, 178, 241, 56, 211, 90, 230, 201, 205, 169, 192, 138, 40,\n\t\t90, 120, 63, 89, 55, 174, 114, 213, 105, 79, 210, 115, 62,\n\t\t93, 141, 39, 225, 65, 170, 125, 190, 189, 210, 219, 223, 43,\n\t\t157, 191, 230, 126, 35, 228, 110, 42, 166, 228, 249, 170,\n\t\t138, 30, 180, 159, 138, 96, 110, 6, 189, 55, 216, 110, 178,\n\t\t164, 163, 168, 79, 170, 21, 104, 95, 152, 6, 3, 6, 86, 35,\n\t\t236, 118, 154, 183, 4, 17, 110, 177, 59, 126, 47, 173, 196,\n\t\t212, 217, 110, 181, 208, 103, 55, 205, 172, 168, 75, 133,\n\t\t208, 44, 56, 157, 33, 41, 52, 30, 192, 38, 50, 180, 123, 197,\n\t\t252, 66, 173, 225, 224, 20, 139, 139, 22, 115, 2, 200, 76,\n\t\t133, 69, 65, 14, 68, 22, 236, 8, 254, 218, 168, 211, 140,\n\t\t52, 30, 190, 6, 172, 59, 231, 0, 61, 83, 19, 208, 126, 229,\n\t\t107, 10, 140, 104, 50, 9, 64, 65, 19, 42, 147, 206, 235, 104,\n\t\t16, 247, 145, 92, 185, 97, 153, 19, 128, 35, 4, 85, 148, 226,\n\t\t62, 132, 76, 118, 14, 191, 97, 146, 69, 34, 14, 227, 118,\n\t\t202, 120, 55, 85, 7, 129, 69, 232, 137, 80, 82, 36, 38, 251,\n\t\t139, 150, 180, 57, 58, 152, 179, 101, 229, 199, 51, 171, 36,\n\t\t133, 12, 17, 201, 4, 2, 51, 220, 215, 24, 65, 143, 95, 31,\n\t\t159, 166, 209, 39, 250, 44, 75, 250, 166, 98, 203, 99, 201,\n\t\t234, 148, 213, 119, 0, 50, 24, 5, 81, 124, 59, 64, 193, 99,\n\t\t49, 215, 2, 69, 66, 197, 91, 4, 123, 1, 136, 91, 178, 127,\n\t\t5, 233, 84, 208, 150, 208, 36, 46, 4, 62, 212, 129, 43, 184,\n\t\t54, 202, 167, 215, 178, 43, 247, 98, 147, 130, 251, 79, 203,\n\t\t10, 248, 192, 132, 113, 225, 45, 119, 214, 78, 221, 247, 47,\n\t\t122, 231, 117, 99, 229, 188, 102, 66, 30, 158, 71, 250, 21,\n\t\t192, 241, 120, 251, 10, 44, 84, 94, 191, 243, 124, 255, 112,\n\t\t131, 231, 41, 234, 154, 148, 166, 138, 182, 88, 190, 54, 46,\n\t\t142, 92, 97, 244, 63, 63, 242, 24, 255, 215, 189, 115, 249,\n\t\t127, 85, 247, 220, 144, 164, 39, 189, 195, 107, 10, 247, 142,\n\t\t100, 10, 255, 188, 119, 56, 39, 226, 239, 118, 15, 220, 16,\n\t\t127, 167, 123, 150, 104, 89, 234, 115, 35, 114, 165, 58, 173,\n\t\t123, 222, 79, 255, 116, 224, 246, 246, 72, 141, 61, 132, 13,\n\t\t131, 244, 229, 45, 175, 32, 109, 187, 24, 150, 157, 183, 60,\n\t\t72, 45, 172, 121, 109, 16, 163, 164, 164, 46, 66, 125, 134,\n\t\t102, 20, 42, 178, 156, 116, 209, 105, 125, 100, 246, 252,\n\t\t126, 246, 203, 145, 141, 240, 146, 122, 202, 240, 66, 21,\n\t\t65, 212, 178, 43, 245, 195, 222, 70, 209, 245, 212, 78, 59,\n\t\t173, 215, 62, 13, 215, 247, 3, 55, 32, 123, 73, 3, 2, 75,\n\t\t248, 173, 193, 209, 95, 152, 77, 95, 73, 205, 255, 186, 126,\n\t\t251, 243, 254, 237, 247, 223, 207, 251, 255, 254, 215, 183,\n\t\t63, 222, 235, 231, 179, 159, 155, 23, 153, 160, 125, 227,\n\t\t4, 45, 164, 87, 35, 83, 179, 159, 135, 166, 233, 10, 112,\n\t\t1, 114, 94, 78, 100, 144, 130, 57, 232, 44, 221, 182, 229,\n\t\t50, 138, 82, 193, 26, 172, 22, 105, 12, 4, 91, 157, 24, 118,\n\t\t104, 237, 189, 184, 57, 0, 61, 234, 109, 241, 181, 128, 53,\n\t\t120, 250, 20, 229, 75, 212, 25, 214, 66, 41, 177, 72, 134,\n\t\t36, 175, 108, 55, 32, 221, 8, 96, 213, 229, 166, 193, 161,\n\t\t98, 28, 179, 202, 210, 7, 132, 191, 172, 170, 178, 28, 104,\n\t\t188, 220, 90, 241, 69, 19, 207, 112, 65, 161, 0, 125, 213,\n\t\t250, 119, 8, 199, 252, 71, 98, 186, 220, 165, 22, 32, 69,\n\t\t0, 120, 224, 162, 179, 0, 174, 16, 2, 97, 96, 0, 91, 200,\n\t\t1, 241, 203, 104, 49, 8, 4, 56, 233, 192, 157, 235, 144, 52,\n\t\t255, 18, 9, 201, 65, 199, 163, 2, 235, 139, 214, 33, 190,\n\t\t133, 104, 149, 46, 103, 220, 144, 60, 181, 148, 81, 225, 189,\n\t\t45, 209, 30, 1, 28, 10, 162, 137, 14, 35, 189, 170, 200, 129,\n\t\t105, 55, 88, 167, 98, 81, 133, 32, 134, 74, 146, 76, 88, 76,\n\t\t147, 19, 105, 135, 162, 21, 26, 112, 110, 59, 172, 231, 67,\n\t\t128, 231, 136, 187, 113, 90, 226, 60, 124, 10, 226, 62, 128,\n\t\t203, 201, 42, 69, 164, 46, 226, 126, 162, 240, 55, 2, 110,\n\t\t33, 72, 37, 99, 150, 250, 117, 238, 106, 24, 215, 149, 50,\n\t\t23, 43, 50, 55, 144, 219, 209, 56, 51, 128, 63, 235, 173,\n\t\t162, 89, 119, 16, 41, 218, 199, 181, 14, 235, 198, 224, 208,\n\t\t40, 8, 35, 192, 85, 105, 69, 26, 184, 226, 92, 212, 56, 33,\n\t\t142, 36, 30, 211, 151, 187, 178, 28, 40, 87, 99, 149, 3, 57,\n\t\t204, 184, 37, 13, 118, 102, 131, 89, 143, 169, 155, 106, 203,\n\t\t139, 63, 210, 224, 96, 162, 167, 172, 226, 156, 15, 228, 182,\n\t\t197, 7, 166, 122, 71, 164, 123, 224, 25, 31, 156, 17, 186,\n\t\t175, 174, 207, 143, 236, 61, 27, 57, 140, 8, 150, 187, 68,\n\t\t124, 136, 88, 156, 236, 25, 78, 200, 175, 162, 135, 51, 181,\n\t\t163, 252, 127, 165, 159, 79, 185, 118, 29, 212, 51, 114, 191,\n\t\t60, 248, 90, 250, 21, 247, 164, 255, 174, 169, 16, 252, 21,\n\t\t21, 250, 75, 161, 5, 74, 237, 253, 193, 229, 127, 13, 107,\n\t\t5, 237, 133, 210, 41, 116, 162, 238, 162, 208, 143, 142, 117,\n\t\t51, 131, 175, 116, 137, 229, 121, 38, 127, 36, 175, 104, 221,\n\t\t228, 25, 96, 36, 226, 48, 136, 210, 183, 204, 179, 55, 91,\n\t\t210, 10, 57, 10, 154, 46, 54, 165, 11, 222, 160, 60, 242,\n\t\t140, 93, 203, 187, 139, 216, 203, 74, 193, 219, 144, 24, 202,\n\t\t224, 37, 242, 74, 151, 91, 7, 10, 154, 132, 114, 44, 43, 95,\n\t\t20, 238, 172, 190, 58, 49, 139, 64, 10, 136, 3, 255, 102,\n\t\t237, 248, 231, 124, 231, 28, 207, 254, 31, 59, 29, 98, 236,\n\t\t237, 6, 168, 166, 227, 108, 55, 77, 183, 145, 84, 254, 91,\n\t\t84, 190, 181, 142, 196, 246, 13, 196, 144, 151, 115, 36, 153,\n\t\t11, 215, 238, 9, 23, 129, 4, 80, 111, 90, 49, 180, 90, 64,\n\t\t85, 8, 33, 172, 86, 184, 149, 40, 41, 238, 39, 100, 3, 229,\n\t\t214, 158, 202, 94, 141, 187, 163, 10, 194, 216, 59, 170, 217,\n\t\t46, 116, 53, 253, 172, 75, 72, 0, 90, 135, 68, 139, 47, 55,\n\t\t45, 201, 144, 115, 111, 136, 244, 74, 226, 208, 13, 105, 53,\n\t\t34, 248, 168, 133, 196, 227, 200, 216, 50, 170, 165, 18, 0,\n\t\t39, 143, 64, 228, 176, 171, 244, 143, 111, 205, 179, 174,\n\t\t181, 194, 34, 182, 30, 111, 132, 207, 34, 152, 147, 0, 59,\n\t\t214, 116, 103, 245, 99, 133, 91, 80, 98, 55, 190, 132, 222,\n\t\t196, 18, 186, 165, 42, 66, 63, 132, 133, 195, 13, 64, 166,\n\t\t33, 92, 110, 65, 43, 4, 194, 77, 26, 31, 233, 209, 55, 100,\n\t\t184, 69, 214, 80, 174, 145, 133, 204, 173, 49, 171, 21, 213,\n\t\t154, 98, 189, 199, 53, 176, 138, 215, 237, 48, 128, 2, 250,\n\t\t144, 237, 113, 193, 16, 69, 192, 107, 189, 114, 28, 212, 14,\n\t\t166, 73, 74, 22, 240, 25, 55, 248, 29, 110, 25, 140, 68, 105,\n\t\t13, 254, 108, 110, 203, 135, 177, 70, 167, 216, 93, 103, 151,\n\t\t247, 101, 166, 128, 25, 11, 216, 211, 40, 115, 81, 97, 80,\n\t\t69, 224, 147, 37, 45, 227, 66, 210, 172, 74, 149, 185, 181,\n\t\t157, 203, 5, 195, 41, 64, 234, 232, 111, 167, 194, 18, 234,\n\t\t145, 98, 112, 224, 184, 128, 153, 52, 222, 158, 173, 7, 158,\n\t\t84, 217, 28, 142, 184, 238, 117, 83, 207, 68, 200, 174, 60,\n\t\t78, 171, 137, 176, 192, 146, 42, 73, 226, 93, 147, 112, 246,\n\t\t229, 150, 224, 192, 78, 236, 104, 217, 203, 79, 36, 145, 249,\n\t\t44, 138, 155, 124, 211, 170, 14, 196, 226, 110, 65, 130, 119,\n\t\t103, 137, 68, 207, 174, 142, 21, 164, 61, 11, 146, 251, 210,\n\t\t9, 203, 237, 140, 240, 69, 130, 159, 248, 12, 202, 131, 156,\n\t\t9, 127, 149, 219, 139, 102, 139, 252, 82, 80, 93, 16, 69,\n\t\t117, 40, 184, 54, 169, 33, 210, 101, 48, 72, 97, 144, 206,\n\t\t18, 184, 68, 10, 223, 17, 160, 115, 59, 162, 110, 209, 84,\n\t\t25, 250, 120, 122, 130, 172, 26, 55, 16, 184, 166, 38, 247,\n\t\t135, 154, 25, 69, 166, 149, 172, 101, 33, 158, 121, 234, 168,\n\t\t237, 75, 226, 122, 17, 170, 53, 64, 192, 122, 88, 139, 80,\n\t\t155, 75, 72, 75, 145, 120, 19, 50, 184, 117, 189, 151, 59,\n\t\t7, 43, 247, 161, 27, 106, 32, 180, 196, 27, 154, 0, 131, 31,\n\t\t198, 230, 26, 6, 244, 202, 17, 101, 135, 34, 83, 33, 230,\n\t\t74, 188, 92, 101, 185, 211, 99, 70, 161, 8, 89, 169, 252,\n\t\t241, 74, 24, 36, 223, 128, 21, 11, 227, 34, 40, 104, 202,\n\t\t205, 82, 203, 196, 216, 189, 41, 206, 52, 10, 186, 131, 130,\n\t\t19, 54, 25, 154, 86, 206, 75, 120, 87, 242, 17, 149, 5, 185,\n\t\t156, 43, 207, 218, 180, 43, 41, 81, 189, 237, 196, 125, 170,\n\t\t239, 102, 228, 118, 178, 49, 218, 245, 157, 149, 18, 94, 243,\n\t\t117, 125, 226, 181, 24, 85, 52, 217, 40, 158, 9, 190, 197,\n\t\t115, 104, 121, 253, 153, 107, 40, 29, 254, 24, 81, 123, 141,\n\t\t101, 58, 249, 115, 187, 12, 140, 32, 232, 24, 250, 98, 138,\n\t\t189, 172, 177, 195, 27, 84, 123, 153, 91, 240, 12, 196, 124,\n\t\t67, 209, 40, 34, 82, 55, 171, 88, 98, 168, 137, 91, 86, 109,\n\t\t155, 23, 43, 173, 243, 167, 246, 184, 220, 144, 236, 132,\n\t\t197, 18, 96, 128, 180, 50, 174, 193, 240, 53, 134, 210, 127,\n\t\t253, 246, 199, 63, 126, 255, 227, 251, 253, 126, 222, 127,\n\t\t249, 231, 103, 48, 225, 28, 194, 207, 35, 252, 177, 212, 35,\n\t\t103, 63, 3, 33, 205, 249, 35, 102, 113, 21, 69, 222, 140,\n\t\t89, 114, 73, 152, 218, 57, 4, 71, 32, 59, 221, 254, 185, 211,\n\t\t214, 246, 11, 95, 66, 6, 148, 28, 150, 163, 235, 255, 231,\n\t\t71, 74, 71, 32, 156, 73, 162, 175, 164, 137, 161, 197, 216,\n\t\t21, 177, 209, 181, 34, 121, 239, 218, 141, 240, 137, 242,\n\t\t17, 7, 231, 131, 32, 144, 162, 156, 70, 6, 244, 219, 109,\n\t\t169, 225, 35, 131, 39, 217, 147, 190, 241, 76, 225, 50, 99,\n\t\t93, 75, 134, 88, 141, 235, 81, 141, 218, 188, 144, 253, 162,\n\t\t241, 183, 96, 233, 253, 209, 18, 106, 197, 254, 36, 222, 185,\n\t\t114, 132, 222, 92, 191, 157, 150, 68, 50, 178, 203, 51, 122,\n\t\t227, 33, 201, 208, 33, 145, 170, 80, 147, 110, 63, 63, 98,\n\t\t39, 96, 191, 177, 166, 76, 183, 52, 185, 225, 234, 13, 121,\n\t\t77, 77, 2, 45, 72, 125, 17, 13, 45, 180, 163, 164, 245, 111,\n\t\t19, 109, 210, 131, 65, 243, 80, 22, 194, 12, 109, 74, 65,\n\t\t227, 2, 199, 219, 80, 241, 134, 182, 138, 226, 102, 86, 100,\n\t\t54, 28, 16, 223, 241, 244, 92, 96, 200, 12, 224, 2, 205, 13,\n\t\t169, 157, 224, 216, 38, 148, 124, 137, 39, 169, 165, 29, 237,\n\t\t8, 130, 138, 96, 107, 78, 138, 194, 4, 185, 197, 5, 127, 197,\n\t\t59, 222, 158, 103, 19, 45, 158, 208, 121, 43, 229, 12, 16,\n\t\t182, 92, 37, 231, 3, 103, 155, 33, 92, 101, 216, 18, 48, 125,\n\t\t85, 253, 66, 40, 72, 143, 44, 221, 155, 28, 11, 254, 16, 78,\n\t\t27, 100, 63, 191, 238, 206, 16, 13, 234, 34, 88, 20, 251,\n\t\t0, 94, 192, 41, 109, 40, 41, 14, 200, 168, 210, 80, 8, 171,\n\t\t4, 17, 170, 177, 2, 214, 230, 224, 202, 45, 119, 9, 3, 230,\n\t\t234, 210, 13, 213, 188, 199, 224, 133, 98, 117, 212, 246,\n\t\t116, 205, 111, 179, 4, 216, 215, 3, 111, 167, 107, 9, 161,\n\t\t84, 185, 43, 194, 193, 246, 194, 186, 238, 224, 227, 21, 56,\n\t\t72, 140, 76, 0, 20, 28, 202, 204, 162, 173, 180, 237, 254,\n\t\t207, 182, 210, 243, 242, 145, 42, 161, 233, 225, 158, 83,\n\t\t210, 67, 15, 120, 31, 66, 32, 80, 198, 165, 43, 98, 123, 73,\n\t\t246, 165, 230, 193, 250, 64, 94, 92, 83, 95, 144, 172, 14,\n\t\t193, 183, 73, 142, 24, 110, 197, 32, 170, 4, 175, 246, 174,\n\t\t40, 111, 48, 89, 121, 226, 38, 210, 4, 172, 172, 174, 192,\n\t\t70, 118, 222, 26, 219, 95, 202, 228, 255, 243, 31, 191, 189,\n\t\t83, 212, 231, 16, 127, 46, 135, 83, 29, 235, 107, 226, 112,\n\t\t125, 42, 39, 105, 145, 141, 154, 229, 117, 134, 124, 101,\n\t\t209, 138, 220, 101, 186, 207, 45, 157, 24, 90, 100, 129, 8,\n\t\t200, 202, 224, 136, 164, 154, 162, 164, 230, 67, 229, 6, 63,\n\t\t175, 170, 12, 181, 181, 150, 18, 118, 100, 102, 77, 210, 24,\n\t\t73, 26, 201, 221, 91, 133, 84, 194, 149, 129, 178, 157, 198,\n\t\t101, 106, 85, 115, 208, 240, 188, 4, 214, 45, 237, 10, 145,\n\t\t118, 30, 178, 140, 22, 207, 2, 73, 156, 87, 157, 211, 25,\n\t\t143, 14, 127, 93, 38, 198, 196, 153, 34, 242, 83, 152, 177,\n\t\t13, 201, 14, 29, 165, 165, 34, 213, 149, 83, 7, 147, 7, 101,\n\t\t105, 167, 146, 138, 80, 198, 100, 224, 252, 180, 242, 252,\n\t\t8, 157, 32, 255, 124, 118, 113, 82, 122, 50, 171, 35, 146,\n\t\t188, 64, 186, 116, 161, 38, 89, 139, 182, 8, 254, 139, 210,\n\t\t137, 137, 107, 68, 225, 133, 10, 9, 253, 114, 156, 53, 79,\n\t\t43, 179, 72, 162, 47, 64, 11, 130, 126, 0, 4, 122, 113, 221,\n\t\t40, 217, 81, 226, 82, 73, 113, 244, 52, 232, 72, 132, 54,\n\t\t18, 216, 116, 55, 184, 163, 160, 194, 95, 90, 91, 230, 144,\n\t\t180, 117, 245, 174, 76, 153, 254, 25, 90, 145, 172, 85, 131,\n\t\t126, 230, 217, 18, 227, 250, 46, 148, 184, 194, 153, 72, 57,\n\t\t54, 234, 127, 21, 169, 33, 230, 232, 52, 150, 102, 230, 3,\n\t\t144, 78, 94, 45, 210, 209, 144, 149, 149, 158, 231, 71, 241,\n\t\t158, 116, 12, 239, 218, 212, 224, 56, 108, 8, 72, 186, 38,\n\t\t107, 181, 85, 171, 8, 5, 192, 212, 186, 22, 74, 63, 223, 98,\n\t\t197, 25, 192, 177, 50, 216, 13, 186, 119, 115, 30, 146, 61,\n\t\t202, 169, 44, 229, 221, 208, 203, 137, 83, 153, 241, 14, 96,\n\t\t57, 255, 193, 17, 136, 57, 195, 172, 121, 169, 2, 219, 106,\n\t\t84, 146, 50, 16, 72, 231, 99, 129, 85, 227, 191, 106, 150,\n\t\t16, 87, 175, 83, 206, 15, 163, 3, 70, 151, 84, 34, 35, 183,\n\t\t54, 7, 165, 241, 1, 211, 86, 129, 80, 22, 63, 32, 224, 106,\n\t\t209, 77, 200, 142, 77, 21, 155, 23, 205, 217, 247, 71, 81,\n\t\t71, 163, 140, 0, 32, 123, 158, 33, 121, 151, 158, 31, 33,\n\t\t47, 85, 46, 251, 50, 205, 174, 220, 86, 157, 157, 235, 7,\n\t\t179, 14, 213, 112, 93, 218, 67, 137, 135, 26, 41, 45, 236,\n\t\t192, 225, 121, 124, 0, 116, 159, 220, 251, 48, 43, 165, 126,\n\t\t150, 9, 38, 156, 122, 184, 169, 17, 21, 88, 97, 90, 231, 243,\n\t\t114, 130, 176, 128, 206, 201, 160, 114, 174, 73, 229, 134,\n\t\t12, 30, 67, 155, 174, 200, 68, 209, 244, 181, 165, 59, 192,\n\t\t94, 248, 82, 212, 255, 247, 183, 95, 255, 241, 253, 179, 176,\n\t\t79, 239, 194, 62, 150, 170, 136, 43, 4, 135, 159, 162, 139,\n\t\t27, 172, 104, 24, 213, 197, 43, 176, 115, 110, 132, 112, 185,\n\t\t150, 3, 32, 154, 30, 17, 67, 4, 107, 91, 5, 62, 59, 14, 172,\n\t\t62, 122, 67, 226, 68, 107, 213, 206, 248, 114, 7, 163, 137,\n\t\t209, 246, 181, 3, 42, 186, 132, 120, 133, 11, 226, 33, 47,\n\t\t146, 129, 154, 31, 198, 186, 34, 251, 224, 202, 245, 84, 191,\n\t\t123, 150, 135, 251, 67, 61, 168, 248, 113, 59, 66, 169, 168,\n\t\t92, 88, 44, 162, 60, 225, 28, 98, 211, 240, 225, 176, 115,\n\t\t249, 192, 85, 238, 242, 136, 75, 209, 249, 11, 77, 127, 254,\n\t\t242, 235, 159, 223, 255, 248, 245, 219, 159, 191, 252, 246,\n\t\t235, 183, 119, 214, 219, 28, 62, 227, 170, 70, 205, 62, 136,\n\t\t34, 156, 31, 161, 86, 23, 150, 101, 28, 142, 56, 154, 27,\n\t\t87, 144, 202, 116, 100, 155, 196, 56, 92, 187, 13, 9, 180,\n\t\t198, 214, 92, 187, 22, 160, 103, 47, 41, 220, 150, 136, 110,\n\t\t174, 63, 200, 142, 89, 237, 41, 206, 171, 175, 190, 224, 219,\n\t\t239, 191, 223, 190, 159, 191, 127, 251, 4, 7, 27, 190, 64,\n\t\t202, 11, 161, 46, 193, 208, 7, 19, 105, 150, 45, 38, 196,\n\t\t80, 9, 90, 120, 150, 160, 230, 12, 229, 59, 11, 81, 75, 81,\n\t\t35, 210, 209, 144, 38, 199, 242, 151, 144, 125, 97, 182, 40,\n\t\t137, 149, 100, 99, 38, 216, 16, 6, 164, 229, 197, 147, 204,\n\t\t195, 88, 51, 208, 52, 39, 23, 150, 144, 160, 51, 60, 63, 66,\n\t\t108, 174, 31, 177, 45, 193, 6, 77, 212, 115, 60, 34, 138,\n\t\t90, 90, 76, 163, 139, 90, 14, 249, 130, 161, 21, 211, 86,\n\t\t243, 181, 49, 117, 162, 10, 212, 170, 246, 83, 124, 9, 169,\n\t\t232, 50, 37, 85, 45, 27, 58, 221, 118, 251, 172, 42, 172,\n\t\t58, 230, 152, 128, 16, 24, 42, 214, 228, 73, 112, 123, 10,\n\t\t98, 101, 180, 4, 197, 58, 41, 171, 78, 115, 36, 21, 130, 18,\n\t\t153, 4, 167, 56, 174, 112, 128, 50, 34, 37, 252, 205, 141,\n\t\t218, 117, 201, 201, 220, 203, 69, 20, 254, 44, 117, 129, 209,\n\t\t104, 188, 196, 145, 148, 36, 174, 195, 25, 236, 93, 117, 0,\n\t\t254, 100, 148, 126, 180, 77, 201, 91, 22, 118, 154, 10, 227,\n\t\t32, 73, 216, 248, 154, 8, 146, 72, 241, 115, 45, 5, 103, 6,\n\t\t45, 4, 148, 54, 142, 240, 237, 225, 54, 248, 52, 28, 32, 142,\n\t\t107, 207, 245, 43, 64, 249, 242, 230, 107, 4, 164, 23, 243,\n\t\t160, 44, 107, 183, 187, 114, 109, 224, 11, 110, 40, 125, 82,\n\t\t186, 163, 88, 109, 187, 230, 251, 25, 181, 28, 73, 241, 11,\n\t\t138, 254, 76, 71, 174, 167, 176, 249, 82, 213, 217, 106, 181,\n\t\t235, 41, 72, 38, 143, 165, 197, 141, 231, 71, 36, 67, 52,\n\t\t246, 244, 88, 6, 104, 166, 224, 189, 68, 164, 240, 129, 132,\n\t\t152, 198, 42, 145, 166, 137, 242, 126, 98, 163, 238, 194,\n\t\t89, 120, 240, 187, 130, 30, 140, 114, 220, 121, 146, 241,\n\t\t129, 43, 244, 185, 231, 71, 38, 225, 65, 65, 169, 121, 198,\n\t\t238, 52, 209, 6, 25, 160, 240, 88, 11, 174, 253, 145, 41,\n\t\t146, 86, 142, 48, 84, 154, 34, 105, 141, 236, 75, 100, 251,\n\t\t139, 62, 242, 144, 44, 187, 233, 15, 171, 129, 208, 250, 58,\n\t\t113, 225, 119, 236, 89, 229, 6, 71, 250, 68, 93, 198, 104,\n\t\t7, 36, 210, 41, 145, 144, 43, 12, 172, 203, 52, 246, 5, 164,\n\t\t182, 137, 8, 200, 73, 244, 58, 232, 157, 188, 63, 147, 140,\n\t\t94, 210, 62, 196, 52, 132, 79, 8, 7, 114, 149, 162, 241, 209,\n\t\t174, 103, 236, 15, 49, 126, 175, 198, 67, 69, 44, 152, 112,\n\t\t6, 40, 30, 151, 98, 101, 169, 1, 20, 173, 189, 105, 5, 76,\n\t\t197, 197, 25, 217, 63, 72, 58, 209, 250, 87, 200, 171, 31,\n\t\t33, 220, 214, 92, 226, 79, 149, 10, 213, 203, 60, 141, 138,\n\t\t71, 141, 113, 37, 26, 135, 189, 169, 114, 75, 216, 213, 81,\n\t\t66, 170, 17, 53, 84, 107, 234, 164, 145, 3, 196, 26, 225,\n\t\t50, 169, 232, 156, 190, 44, 250, 164, 39, 215, 14, 111, 154,\n\t\t231, 85, 180, 26, 232, 96, 104, 25, 205, 228, 52, 177, 70,\n\t\t54, 137, 167, 28, 38, 253, 137, 38, 177, 132, 59, 16, 253,\n\t\t3, 174, 154, 20, 16, 83, 175, 222, 34, 100, 20, 59, 131, 149,\n\t\t182, 107, 233, 26, 227, 10, 196, 170, 100, 229, 64, 197, 133,\n\t\t43, 116, 183, 117, 92, 44, 247, 117, 88, 18, 180, 111, 103,\n\t\t73, 42, 84, 199, 52, 199, 64, 218, 166, 247, 210, 63, 184,\n\t\t121, 216, 237, 159, 255, 130, 42, 54, 231, 249, 243, 5, 181,\n\t\t254, 156, 96, 155, 144, 158, 143, 181, 194, 87, 41, 69, 149,\n\t\t165, 133, 133, 44, 208, 226, 226, 208, 157, 43, 81, 61, 47,\n\t\t217, 33, 40, 57, 215, 40, 176, 248, 112, 174, 249, 35, 246,\n\t\t87, 69, 84, 247, 165, 100, 240, 249, 145, 242, 88, 51, 191,\n\t\t54, 162, 221, 41, 226, 96, 102, 235, 2, 16, 80, 210, 216,\n\t\t116, 211, 27, 103, 141, 184, 242, 16, 46, 177, 201, 110, 21,\n\t\t30, 112, 154, 180, 15, 47, 158, 66, 143, 225, 200, 230, 3,\n\t\t244, 98, 57, 41, 177, 42, 237, 137, 225, 250, 252, 40, 173,\n\t\t30, 169, 142, 127, 27, 242, 207, 221, 255, 44, 228, 255, 243,\n\t\t136, 255, 186, 232, 199, 41, 6, 170, 27, 20, 239, 250, 212,\n\t\t133, 210, 156, 76, 144, 32, 34, 96, 162, 46, 37, 153, 62,\n\t\t15, 120, 1, 64, 195, 84, 12, 172, 162, 9, 34, 17, 197, 165,\n\t\t90, 224, 187, 205, 169, 10, 97, 173, 226, 78, 185, 159, 25,\n\t\t218, 201, 24, 168, 203, 171, 222, 5, 143, 140, 9, 202, 8,\n\t\t109, 167, 83, 197, 87, 91, 171, 172, 205, 201, 45, 6, 34,\n\t\t110, 24, 101, 180, 13, 66, 128, 153, 136, 31, 90, 180, 135,\n\t\t141, 244, 130, 36, 114, 212, 197, 1, 245, 15, 23, 69, 33,\n\t\t88, 26, 73, 20, 125, 204, 168, 127, 145, 98, 132, 244, 109,\n\t\t173, 40, 85, 35, 78, 145, 7, 235, 38, 237, 249, 106, 57, 98,\n\t\t100, 218, 204, 155, 198, 165, 128, 120, 241, 8, 127, 21, 247,\n\t\t219, 148, 212, 35, 251, 84, 165, 71, 87, 136, 124, 47, 214,\n\t\t122, 229, 12, 42, 136, 5, 125, 19, 197, 217, 45, 85, 41, 195,\n\t\t27, 183, 53, 129, 166, 121, 246, 155, 4, 84, 0, 137, 202,\n\t\t41, 190, 79, 1, 123, 22, 31, 0, 56, 145, 181, 208, 43, 164,\n\t\t163, 42, 97, 110, 157, 54, 53, 88, 213, 227, 223, 164, 179,\n\t\t249, 243, 225, 98, 54, 159, 115, 37, 229, 69, 112, 92, 4,\n\t\t63, 76, 22, 177, 169, 83, 89, 194, 224, 86, 57, 202, 26, 132,\n\t\t63, 98, 120, 126, 164, 152, 214, 136, 95, 230, 133, 76, 23,\n\t\t150, 140, 157, 75, 166, 120, 180, 101, 201, 224, 147, 3, 151,\n\t\t43, 228, 240, 131, 98, 51, 249, 42, 58, 227, 35, 139, 110,\n\t\t35, 224, 180, 19, 138, 145, 63, 50, 64, 124, 37, 40, 128,\n\t\t253, 92, 158, 31, 57, 208, 59, 80, 121, 182, 102, 16, 0, 99,\n\t\t61, 33, 207, 38, 251, 195, 152, 227, 35, 207, 121, 45, 124,\n\t\t213, 124, 179, 132, 235, 87, 231, 94, 145, 29, 135, 56, 10,\n\t\t178, 50, 145, 166, 137, 52, 169, 232, 177, 57, 67, 18, 10,\n\t\t86, 186, 75, 181, 77, 9, 68, 94, 30, 156, 160, 97, 235, 39,\n\t\t244, 98, 83, 188, 28, 131, 123, 193, 150, 199, 104, 194, 17,\n\t\t201, 133, 17, 97, 15, 247, 136, 24, 46, 162, 82, 89, 245,\n\t\t9, 32, 225, 213, 43, 14, 45, 3, 248, 145, 88, 18, 69, 105,\n\t\t68, 77, 222, 178, 4, 249, 136, 204, 241, 71, 237, 70, 142,\n\t\t246, 252, 40, 107, 242, 166, 230, 194, 149, 100, 224, 205,\n\t\t148, 22, 161, 138, 94, 90, 14, 223, 234, 98, 63, 234, 111,\n\t\t82, 145, 176, 214, 88, 89, 103, 20, 153, 14, 243, 183, 106,\n\t\t126, 156, 37, 6, 118, 247, 130, 229, 163, 141, 196, 71, 166,\n\t\t226, 44, 122, 43, 19, 178, 25, 140, 20, 18, 200, 76, 253,\n\t\t196, 169, 8, 202, 58, 189, 54, 181, 67, 148, 165, 165, 118,\n\t\t192, 225, 229, 53, 97, 86, 113, 0, 17, 106, 103, 133, 233,\n\t\t203, 149, 254, 63, 111, 159, 23, 248, 79, 24, 183, 59, 129,\n\t\t10, 173, 42, 226, 198, 182, 212, 72, 73, 112, 72, 27, 28,\n\t\t60, 43, 233, 104, 181, 226, 117, 157, 53, 219, 112, 47, 11,\n\t\t149, 97, 189, 31, 139, 204, 223, 15, 242, 118, 69, 248, 237,\n\t\t40, 159, 83, 131, 24, 64, 196, 105, 141, 221, 151, 76, 196,\n\t\t132, 220, 37, 205, 16, 16, 249, 47, 14, 203, 25, 148, 190,\n\t\t159, 84, 88, 100, 67, 99, 174, 102, 142, 9, 94, 64, 100, 173,\n\t\t136, 137, 162, 226, 73, 31, 35, 107, 26, 192, 235, 0, 102,\n\t\t245, 71, 218, 180, 72, 254, 108, 77, 209, 146, 117, 45, 81,\n\t\t214, 108, 234, 222, 181, 25, 147, 90, 223, 71, 68, 98, 88,\n\t\t131, 207, 82, 49, 113, 152, 241, 93, 43, 218, 170, 166, 253,\n\t\t250, 36, 121, 118, 149, 253, 231, 133, 138, 30, 227, 146,\n\t\t64, 243, 252, 204, 157, 141, 69, 65, 227, 76, 236, 2, 16,\n\t\t83, 243, 102, 248, 218, 94, 171, 176, 101, 208, 137, 94, 122,\n\t\t128, 71, 255, 80, 138, 122, 190, 120, 146, 199, 120, 93, 92,\n\t\t148, 243, 50, 19, 179, 97, 9, 72, 5, 44, 107, 40, 81, 65,\n\t\t119, 96, 151, 74, 67, 30, 16, 170, 154, 88, 181, 62, 58, 188,\n\t\t230, 57, 144, 133, 45, 209, 89, 152, 200, 237, 0, 48, 96,\n\t\t71, 17, 66, 19, 161, 189, 173, 48, 5, 163, 133, 2, 214, 186,\n\t\t58, 32, 86, 184, 187, 89, 202, 145, 57, 149, 139, 222, 166,\n\t\t130, 45, 84, 40, 215, 151, 38, 82, 93, 63, 6, 91, 248, 143,\n\t\t20, 169, 117, 181, 150, 137, 75, 171, 21, 194, 117, 88, 39,\n\t\t137, 217, 178, 198, 216, 84, 96, 41, 205, 190, 208, 232, 61,\n\t\t231, 223, 28, 118, 65, 31, 156, 184, 213, 142, 88, 251, 196,\n\t\t114, 82, 52, 97, 21, 85, 238, 203, 200, 38, 233, 37, 26, 78,\n\t\t186, 204, 164, 230, 20, 86, 41, 228, 230, 245, 34, 218, 98,\n\t\t72, 148, 19, 16, 233, 85, 10, 38, 148, 172, 8, 217, 115, 237,\n\t\t162, 168, 3, 164, 197, 77, 224, 21, 163, 212, 63, 248, 72,\n\t\t73, 216, 156, 138, 77, 70, 97, 243, 46, 125, 41, 120, 126,\n\t\t253, 229, 215, 63, 191, 255, 250, 143, 223, 206, 251, 127,\n\t\t253, 242, 231, 252, 4, 180, 29, 20, 239, 101, 136, 84, 206,\n\t\t129, 43, 73, 88, 51, 83, 40, 16, 176, 213, 194, 9, 35, 42,\n\t\t19, 34, 123, 27, 166, 64, 229, 60, 55, 216, 157, 44, 142,\n\t\t156, 193, 92, 201, 80, 135, 39, 187, 137, 78, 188, 49, 41,\n\t\t82, 92, 133, 233, 156, 188, 48, 116, 239, 226, 138, 74, 139,\n\t\t5, 143, 157, 179, 15, 166, 205, 44, 221, 128, 32, 226, 234,\n\t\t100, 45, 250, 80, 211, 184, 188, 171, 70, 103, 17, 112, 76,\n\t\t165, 79, 134, 14, 153, 155, 58, 127, 206, 238, 143, 156, 41,\n\t\t89, 131, 190, 99, 48, 251, 177, 8, 31, 13, 75, 171, 139, 18,\n\t\t153, 171, 194, 70, 62, 185, 186, 57, 6, 224, 29, 64, 45, 75,\n\t\t158, 124, 203, 8, 213, 4, 74, 245, 5, 60, 43, 202, 210, 179,\n\t\t12, 144, 38, 138, 196, 144, 200, 73, 103, 157, 249, 249, 17,\n\t\t218, 112, 253, 88, 195, 103, 92, 245, 230, 143, 208, 251,\n\t\t146, 49, 112, 165, 32, 229, 97, 154, 230, 179, 181, 174, 90,\n\t\t177, 166, 102, 23, 228, 107, 148, 77, 111, 225, 175, 83, 140,\n\t\t0, 245, 166, 226, 187, 115, 87, 242, 103, 90, 92, 88, 0, 106,\n\t\t226, 48, 14, 68, 94, 56, 142, 13, 90, 39, 15, 114, 179, 66,\n\t\t225, 62, 148, 168, 184, 164, 67, 129, 136, 165, 206, 227,\n\t\t50, 155, 98, 82, 25, 200, 28, 4, 151, 68, 235, 227, 206, 156,\n\t\t190, 58, 224, 17, 122, 99, 94, 39, 102, 107, 75, 46, 104,\n\t\t192, 10, 46, 32, 78, 27, 229, 67, 10, 149, 94, 24, 151, 82,\n\t\t203, 90, 21, 240, 28, 147, 93, 157, 41, 25, 152, 233, 106,\n\t\t153, 97, 85, 224, 28, 212, 3, 140, 66, 58, 69, 78, 133, 139,\n\t\t194, 2, 134, 214, 221, 128, 89, 101, 142, 42, 70, 200, 6,\n\t\t211, 72, 57, 47, 146, 41, 39, 26, 234, 60, 211, 1, 251, 71,\n\t\t49, 204, 155, 29, 16, 104, 4, 132, 165, 182, 170, 104, 113,\n\t\t206, 193, 78, 16, 31, 107, 72, 154, 194, 95, 38, 42, 116,\n\t\t69, 190, 10, 62, 158, 89, 176, 131, 12, 13, 90, 182, 159,\n\t\t31, 177, 70, 34, 7, 41, 46, 79, 53, 95, 45, 237, 69, 52, 13,\n\t\t253, 208, 28, 48, 55, 203, 101, 38, 20, 65, 168, 28, 52, 11,\n\t\t56, 107, 133, 148, 200, 163, 12, 3, 80, 6, 74, 71, 137, 47,\n\t\t44, 147, 65, 166, 210, 96, 195, 109, 6, 36, 19, 162, 178,\n\t\t64, 92, 243, 236, 3, 162, 165, 61, 50, 77, 100, 74, 20, 118,\n\t\t183, 113, 26, 104, 161, 48, 140, 254, 53, 101, 3, 175, 176,\n\t\t150, 143, 104, 177, 114, 5, 102, 107, 10, 249, 75, 254, 185,\n\t\t227, 76, 204, 45, 159, 144, 228, 43, 114, 102, 137, 48, 192,\n\t\t199, 152, 217, 78, 170, 182, 44, 71, 120, 247, 158, 116, 202,\n\t\t178, 38, 107, 226, 112, 231, 142, 41, 135, 21, 165, 17, 160,\n\t\t86, 162, 18, 236, 192, 201, 35, 38, 7, 35, 71, 42, 236, 218,\n\t\t117, 160, 60, 63, 82, 165, 44, 187, 165, 43, 88, 168, 95,\n\t\t139, 251, 53, 169, 81, 203, 13, 160, 177, 39, 127, 153, 27,\n\t\t189, 12, 196, 34, 228, 53, 68, 130, 170, 225, 128, 129, 159,\n\t\t170, 192, 37, 203, 138, 78, 109, 173, 199, 21, 90, 40, 96,\n\t\t104, 48, 150, 145, 52, 45, 248, 198, 154, 41, 16, 121, 132,\n\t\t77, 84, 101, 25, 0, 2, 202, 232, 52, 15, 140, 130, 84, 138,\n\t\t40, 163, 52, 145, 200, 230, 135, 151, 62, 41, 36, 33, 117,\n\t\t216, 215, 107, 240, 111, 255, 248, 156, 228, 248, 9, 198,\n\t\t200, 226, 101, 137, 24, 251, 207, 108, 32, 130, 94, 65, 65,\n\t\t172, 71, 1, 142, 32, 106, 166, 37, 87, 11, 68, 202, 186, 90,\n\t\t190, 194, 20, 209, 2, 132, 72, 14, 96, 185, 2, 218, 78, 37,\n\t\t224, 41, 251, 77, 177, 162, 101, 195, 109, 177, 53, 107, 167,\n\t\t60, 50, 223, 148, 28, 186, 1, 59, 226, 236, 220, 55, 151,\n\t\t233, 197, 185, 34, 147, 94, 231, 178, 30, 224, 158, 184, 21,\n\t\t0, 197, 137, 131, 152, 92, 222, 56, 75, 213, 132, 207, 27,\n\t\t242, 206, 143, 90, 97, 3, 217, 26, 166, 18, 195, 30, 171,\n\t\t87, 113, 26, 241, 185, 61, 54, 82, 52, 234, 229, 185, 167,\n\t\t138, 36, 59, 32, 239, 123, 170, 234, 157, 20, 165, 207, 186,\n\t\t201, 188, 117, 6, 242, 248, 186, 195, 47, 64, 97, 30, 179,\n\t\t221, 228, 114, 131, 203, 9, 106, 201, 218, 133, 229, 22, 80,\n\t\t121, 35, 113, 171, 169, 85, 113, 0, 104, 18, 75, 103, 71,\n\t\t31, 132, 243, 124, 140, 254, 168, 202, 78, 160, 55, 54, 239,\n\t\t37, 132, 226, 246, 231, 250, 41, 122, 226, 15, 131, 254, 124,\n\t\t189, 80, 150, 182, 199, 105, 15, 97, 181, 223, 178, 174, 59,\n\t\t89, 244, 50, 199, 8, 221, 83, 67, 8, 85, 138, 118, 57, 10,\n\t\t143, 94, 2, 78, 129, 128, 211, 104, 81, 219, 59, 112, 125,\n\t\t125, 219, 15, 107, 221, 183, 22, 86, 106, 34, 94, 37, 68,\n\t\t26, 237, 39, 191, 15, 195, 203, 212, 39, 121, 153, 26, 69,\n\t\t183, 65, 49, 98, 131, 247, 196, 232, 53, 134, 174, 87, 129,\n\t\t89, 223, 246, 233, 5, 247, 49, 144, 77, 131, 164, 191, 90,\n\t\t31, 252, 114, 137, 141, 91, 16, 188, 237, 6, 168, 156, 152,\n\t\t94, 84, 141, 213, 180, 178, 185, 164, 122, 58, 42, 216, 88,\n\t\t188, 213, 120, 73, 44, 65, 189, 1, 113, 232, 206, 60, 163,\n\t\t65, 6, 2, 19, 203, 124, 86, 114, 64, 74, 97, 214, 10, 179,\n\t\t13, 62, 12, 37, 94, 52, 117, 72, 149, 215, 225, 36, 11, 168,\n\t\t165, 56, 235, 7, 241, 42, 175, 31, 134, 2, 72, 102, 59, 3,\n\t\t94, 144, 122, 48, 130, 56, 94, 13, 140, 16, 137, 127, 160,\n\t\t112, 144, 93, 129, 12, 246, 71, 210, 229, 156, 202, 50, 165,\n\t\t197, 225, 1, 237, 34, 25, 96, 26, 238, 248, 248, 244, 209,\n\t\t197, 54, 131, 70, 60, 208, 52, 242, 90, 200, 245, 66, 144,\n\t\t91, 137, 252, 9, 38, 201, 178, 163, 21, 10, 112, 11, 208,\n\t\t177, 218, 96, 74, 136, 136, 84, 213, 222, 77, 56, 236, 130,\n\t\t3, 226, 44, 170, 63, 200, 182, 76, 64, 154, 140, 91, 59, 215,\n\t\t213, 182, 155, 78, 232, 143, 93, 169, 56, 212, 185, 129, 187,\n\t\t195, 127, 212, 117, 100, 107, 229, 105, 232, 26, 245, 80,\n\t\t183, 57, 134, 143, 106, 193, 90, 197, 161, 71, 58, 76, 53,\n\t\t91, 252, 160, 67, 21, 56, 99, 209, 211, 2, 129, 167, 48, 64,\n\t\t80, 47, 144, 13, 160, 20, 76, 38, 120, 104, 227, 249, 145,\n\t\t9, 234, 43, 132, 224, 72, 207, 211, 185, 37, 232, 125, 252,\n\t\t1, 170, 55, 241, 145, 169, 167, 121, 59, 107, 187, 0, 167,\n\t\t121, 240, 74, 21, 93, 152, 189, 204, 21, 156, 231, 153, 77,\n\t\t101, 95, 74, 205, 127, 194, 195, 101, 123, 184, 103, 148,\n\t\t139, 64, 101, 35, 242, 202, 10, 57, 45, 109, 164, 229, 4,\n\t\t210, 4, 0, 33, 43, 166, 74, 224, 20, 173, 216, 178, 107, 100,\n\t\t202, 2, 253, 0, 58, 220, 235, 205, 116, 127, 34, 242, 174,\n\t\t111, 143, 19, 149, 149, 0, 215, 209, 223, 245, 238, 132, 29,\n\t\t231, 139, 107, 151, 43, 42, 136, 247, 252, 175, 125, 225,\n\t\t44, 0, 112, 150, 109, 26, 219, 115, 71, 241, 218, 150, 119,\n\t\t30, 237, 27, 104, 37, 79, 46, 222, 191, 138, 248, 125, 156,\n\t\t101, 109, 210, 201, 143, 37, 234, 174, 128, 226, 228, 232,\n\t\t30, 70, 184, 110, 157, 6, 112, 141, 232, 182, 120, 30, 224,\n\t\t47, 141, 118, 166, 140, 87, 91, 14, 77, 61, 130, 252, 141,\n\t\t251, 10, 130, 244, 245, 205, 168, 216, 2, 230, 168, 228, 86,\n\t\t215, 9, 191, 10, 83, 96, 172, 113, 146, 25, 144, 85, 101,\n\t\t99, 180, 85, 250, 208, 249, 40, 34, 246, 140, 143, 51, 185,\n\t\t114, 133, 79, 3, 211, 215, 43, 188, 178, 33, 157, 98, 191,\n\t\t113, 56, 48, 53, 151, 142, 88, 218, 94, 7, 53, 24, 28, 220,\n\t\t148, 41, 41, 139, 183, 2, 127, 101, 194, 98, 201, 106, 9,\n\t\t8, 91, 248, 14, 231, 218, 33, 128, 50, 80, 245, 29, 251, 40,\n\t\t217, 220, 81, 11, 226, 13, 172, 219, 248, 227, 27, 175, 166,\n\t\t220, 181, 146, 236, 71, 128, 232, 250, 66, 220, 79, 154, 172,\n\t\t171, 151, 208, 241, 27, 27, 208, 82, 188, 191, 145, 59, 237,\n\t\t239, 43, 82, 71, 175, 13, 74, 52, 103, 116, 183, 16, 173,\n\t\t182, 146, 200, 173, 1, 12, 48, 247, 145, 36, 27, 234, 207,\n\t\t199, 168, 194, 1, 121, 187, 199, 105, 95, 116, 126, 250, 164,\n\t\t179, 236, 23, 208, 75, 110, 229, 139, 210, 130, 12, 75, 137,\n\t\t144, 199, 151, 125, 32, 241, 20, 195, 177, 220, 242, 102,\n\t\t117, 88, 169, 91, 3, 181, 95, 241, 173, 126, 110, 148, 173,\n\t\t249, 223, 91, 255, 173, 241, 43, 50, 110, 11, 166, 35, 26,\n\t\t31, 54, 168, 188, 122, 64, 21, 218, 17, 174, 152, 25, 151,\n\t\t61, 150, 163, 229, 60, 106, 144, 136, 89, 169, 145, 217, 64,\n\t\t79, 227, 81, 35, 143, 251, 212, 33, 214, 31, 24, 101, 123,\n\t\t111, 60, 63, 114, 163, 148, 191, 234, 137, 101, 188, 85, 247,\n\t\t179, 142, 121, 27, 108, 214, 61, 251, 59, 228, 125, 128, 235,\n\t\t164, 210, 107, 113, 0, 9, 210, 254, 98, 151, 191, 95, 253,\n\t\t215, 166, 71, 211, 4, 43, 96, 56, 88, 255, 112, 143, 255,\n\t\t160, 127, 246, 199, 105, 230, 56, 214, 55, 209, 155, 121,\n\t\t87, 95, 244, 166, 121, 78, 98, 4, 170, 108, 12, 26, 176, 81,\n\t\t129, 167, 156, 243, 44, 169, 151, 222, 230, 81, 199, 147,\n\t\t144, 179, 126, 80, 101, 23, 143, 53, 33, 141, 243, 120, 37,\n\t\t52, 31, 143, 5, 251, 244, 250, 178, 47, 109, 240, 252, 200,\n\t\t156, 233, 145, 8, 149, 244, 101, 45, 145, 17, 243, 115, 83,\n\t\t49, 6, 224, 96, 207, 23, 83, 13, 105, 25, 34, 19, 182, 3,\n\t\t18, 151, 164, 75, 145, 214, 79, 102, 98, 85, 77, 206, 204,\n\t\t68, 56, 194, 127, 180, 165, 214, 98, 52, 82, 18, 125, 119,\n\t\t243, 161, 124, 114, 179, 195, 75, 128, 231, 51, 204, 140,\n\t\t173, 181, 241, 223, 89, 229, 242, 205, 47, 215, 253, 200,\n\t\t42, 87, 35, 242, 205, 42, 151, 247, 181, 120, 242, 229, 249,\n\t\t81, 151, 148, 63, 98, 226, 234, 110, 245, 247, 64, 167, 20,\n\t\t170, 13, 157, 75, 178, 100, 169, 102, 107, 209, 64, 26, 49,\n\t\t129, 51, 100, 104, 77, 196, 87, 136, 246, 42, 119, 146, 184,\n\t\t173, 136, 170, 192, 44, 31, 208, 176, 126, 36, 238, 12, 247,\n\t\t229, 243, 10, 165, 158, 171, 96, 9, 191, 170, 63, 155, 188,\n\t\t84, 57, 249, 190, 33, 111, 13, 198, 220, 109, 61, 125, 17,\n\t\t207, 199, 118, 129, 192, 34, 96, 18, 217, 108, 220, 218, 137,\n\t\t118, 72, 95, 215, 149, 205, 202, 231, 60, 131, 234, 168, 180,\n\t\t131, 164, 121, 85, 154, 206, 6, 43, 252, 118, 86, 9, 124,\n\t\t72, 209, 223, 229, 11, 73, 179, 75, 76, 172, 91, 187, 164,\n\t\t249, 203, 43, 129, 72, 26, 234, 204, 215, 167, 25, 157, 201,\n\t\t155, 160, 193, 107, 158, 111, 215, 253, 64, 162, 247, 151,\n\t\t125, 93, 96, 197, 13, 33, 148, 76, 48, 70, 108, 240, 153,\n\t\t41, 253, 186, 20, 20, 74, 164, 25, 55, 56, 120, 129, 228,\n\t\t128, 169, 104, 51, 105, 219, 52, 1, 25, 84, 44, 189, 94, 182,\n\t\t103, 94, 153, 100, 106, 239, 135, 44, 169, 134, 141, 72, 127,\n\t\t156, 175, 110, 182, 23, 33, 242, 122, 213, 237, 124, 123,\n\t\t58, 9, 164, 237, 249, 112, 116, 189, 236, 232, 171, 159, 111,\n\t\t95, 124, 238, 159, 252, 243, 55, 222, 156, 68, 60, 107, 245,\n\t\t205, 127, 230, 231, 123, 57, 255, 249, 145, 124, 118, 203,\n\t\t106, 46, 156, 174, 186, 11, 49, 111, 105, 14, 152, 136, 154,\n\t\t181, 134, 225, 235, 17, 127, 121, 93, 26, 173, 64, 11, 132,\n\t\t127, 180, 108, 23, 145, 242, 10, 251, 129, 185, 179, 75, 38,\n\t\t27, 134, 112, 217, 31, 219, 133, 186, 52, 210, 13, 178, 17,\n\t\t123, 229, 125, 150, 168, 186, 10, 207, 8, 191, 141, 205, 18,\n\t\t94, 65, 160, 63, 84, 49, 33, 147, 198, 213, 161, 22, 233,\n\t\t244, 194, 188, 241, 132, 54, 149, 100, 1, 194, 133, 103, 2,\n\t\t126, 167, 78, 20, 158, 119, 22, 30, 106, 47, 251, 208, 29,\n\t\t78, 121, 89, 102, 124, 47, 71, 10, 222, 17, 196, 66, 211,\n\t\t1, 183, 204, 12, 122, 237, 213, 89, 117, 217, 170, 221, 187,\n\t\t120, 219, 7, 136, 228, 0, 235, 232, 252, 210, 127, 254, 219,\n\t\t253, 151, 79, 238, 243, 111, 63, 175, 77, 93, 131, 35, 184,\n\t\t82, 85, 118, 164, 66, 193, 213, 33, 149, 75, 107, 189, 201,\n\t\t4, 208, 69, 223, 120, 196, 220, 93, 240, 113, 134, 212, 221,\n\t\t230, 158, 41, 133, 131, 180, 128, 243, 142, 100, 237, 121,\n\t\t174, 88, 2, 204, 12, 85, 180, 82, 120, 233, 56, 99, 34, 72,\n\t\t166, 224, 8, 32, 45, 79, 53, 171, 213, 253, 134, 220, 198,\n\t\t160, 182, 65, 63, 192, 246, 4, 223, 69, 214, 208, 167, 56,\n\t\t146, 70, 116, 53, 69, 134, 48, 99, 255, 86, 234, 110, 140,\n\t\t177, 21, 253, 117, 21, 224, 90, 236, 216, 144, 138, 51, 145,\n\t\t48, 24, 8, 231, 158, 238, 141, 148, 177, 12, 188, 104, 246,\n\t\t34, 47, 233, 83, 71, 139, 237, 72, 206, 135, 82, 201, 217,\n\t\t92, 24, 136, 206, 141, 236, 115, 178, 3, 193, 59, 242, 191,\n\t\t82, 113, 118, 244, 100, 205, 14, 23, 91, 205, 71, 93, 175,\n\t\t211, 152, 20, 52, 21, 95, 15, 194, 152, 109, 243, 164, 181,\n\t\t23, 115, 70, 235, 148, 36, 112, 120, 54, 138, 140, 22, 142,\n\t\t25, 18, 222, 173, 40, 245, 41, 25, 187, 38, 152, 218, 51,\n\t\t82, 134, 155, 180, 223, 176, 233, 203, 79, 96, 71, 51, 80,\n\t\t150, 225, 24, 66, 129, 183, 50, 237, 159, 25, 41, 42, 90,\n\t\t90, 57, 146, 139, 41, 82, 192, 89, 100, 67, 224, 40, 245,\n\t\t134, 95, 167, 25, 167, 86, 67, 138, 69, 181, 176, 131, 187,\n\t\t76, 66, 173, 161, 161, 164, 153, 244, 158, 60, 146, 7, 105,\n\t\t245, 137, 16, 210, 3, 149, 30, 35, 91, 114, 160, 238, 94,\n\t\t28, 43, 93, 129, 183, 1, 183, 237, 201, 241, 253, 252, 64,\n\t\t9, 68, 232, 201, 229, 26, 54, 92, 253, 170, 122, 18, 4, 99,\n\t\t144, 34, 98, 140, 89, 160, 120, 99, 164, 53, 105, 76, 205,\n\t\t89, 9, 153, 235, 102, 169, 92, 53, 113, 5, 179, 10, 192, 98,\n\t\t49, 103, 157, 244, 208, 196, 164, 74, 84, 10, 184, 14, 36,\n\t\t140, 161, 76, 186, 117, 23, 125, 136, 71, 46, 68, 92, 146,\n\t\t136, 62, 0, 114, 71, 84, 31, 81, 136, 21, 172, 90, 158, 85,\n\t\t213, 223, 47, 73, 49, 1, 201, 88, 185, 57, 197, 94, 164, 252,\n\t\t5, 250, 185, 215, 25, 0, 222, 5, 183, 21, 85, 238, 0, 254,\n\t\t165, 8, 149, 83, 162, 36, 81, 106, 229, 214, 214, 27, 115,\n\t\t59, 115, 56, 157, 253, 203, 51, 22, 151, 66, 227, 164, 195,\n\t\t50, 90, 59, 114, 113, 189, 230, 68, 249, 118, 161, 114, 174,\n\t\t1, 31, 104, 195, 165, 222, 26, 169, 17, 201, 249, 66, 99,\n\t\t98, 245, 127, 237, 141, 240, 177, 70, 207, 137, 93, 38, 53,\n\t\t251, 42, 234, 99, 136, 109, 43, 17, 86, 158, 9, 67, 11, 209,\n\t\t124, 53, 212, 162, 87, 245, 197, 111, 30, 107, 216, 154, 236,\n\t\t159, 18, 223, 181, 220, 130, 64, 101, 185, 15, 19, 0, 34,\n\t\t189, 139, 181, 86, 226, 148, 200, 41, 85, 3, 164, 100, 90,\n\t\t25, 172, 89, 16, 51, 155, 171, 139, 155, 16, 79, 84, 228,\n\t\t102, 106, 52, 206, 232, 61, 42, 124, 136, 50, 250, 187, 184,\n\t\t129, 91, 156, 168, 182, 202, 146, 53, 149, 145, 100, 228,\n\t\t131, 27, 150, 238, 68, 165, 99, 112, 181, 4, 6, 220, 9, 195,\n\t\t229, 35, 134, 165, 2, 156, 145, 42, 45, 2, 185, 159, 125,\n\t\t101, 182, 150, 213, 104, 133, 81, 55, 88, 45, 30, 205, 81,\n\t\t78, 81, 113, 95, 103, 104, 254, 241, 253, 219, 252, 243, 211,\n\t\t50, 243, 9, 10, 122, 35, 155, 9, 221, 197, 35, 54, 239, 250,\n\t\t44, 111, 148, 227, 199, 80, 20, 114, 65, 98, 208, 3, 173,\n\t\t195, 74, 89, 67, 153, 59, 51, 171, 30, 6, 188, 170, 65, 117,\n\t\t145, 29, 185, 33, 90, 203, 29, 44, 118, 182, 185, 101, 17,\n\t\t233, 181, 192, 72, 214, 9, 169, 46, 94, 81, 36, 184, 0, 113,\n\t\t42, 203, 82, 65, 97, 179, 234, 188, 158, 164, 17, 147, 211,\n\t\t240, 71, 69, 166, 203, 138, 96, 228, 215, 26, 67, 69, 96,\n\t\t216, 20, 45, 242, 240, 166, 42, 190, 126, 188, 72, 214, 228,\n\t\t31, 205, 174, 5, 244, 164, 148, 98, 78, 30, 184, 234, 167,\n\t\t105, 38, 202, 36, 24, 53, 164, 53, 178, 166, 22, 116, 17,\n\t\t143, 29, 208, 16, 5, 208, 19, 129, 134, 97, 208, 132, 239,\n\t\t137, 180, 130, 67, 95, 62, 201, 247, 21, 229, 66, 2, 133,\n\t\t18, 23, 1, 7, 45, 206, 224, 54, 140, 82, 141, 122, 4, 42,\n\t\t171, 128, 227, 68, 228, 190, 38, 213, 107, 34, 173, 148, 99,\n\t\t9, 215, 234, 60, 101, 180, 30, 231, 64, 88, 0, 235, 2, 14,\n\t\t44, 181, 101, 82, 162, 49, 43, 145, 178, 184, 0, 197, 100,\n\t\t200, 120, 105, 188, 118, 77, 228, 246, 168, 142, 41, 90, 42,\n\t\t252, 250, 80, 101, 164, 26, 128, 12, 84, 110, 220, 109, 230,\n\t\t138, 85, 166, 57, 190, 50, 221, 42, 212, 146, 64, 146, 146,\n\t\t109, 43, 56, 225, 8, 114, 54, 174, 101, 153, 196, 242, 140,\n\t\t34, 130, 145, 159, 212, 52, 97, 25, 246, 26, 177, 8, 17, 111,\n\t\t142, 226, 74, 68, 103, 235, 134, 58, 187, 176, 156, 130, 92,\n\t\t55, 171, 2, 10, 102, 26, 145, 207, 81, 224, 104, 47, 19, 217,\n\t\t113, 200, 240, 234, 104, 93, 78, 147, 100, 250, 102, 193,\n\t\t112, 155, 81, 177, 183, 80, 44, 0, 54, 83, 104, 22, 81, 75,\n\t\t189, 98, 226, 10, 152, 166, 30, 221, 134, 37, 144, 95, 186,\n\t\t217, 244, 43, 234, 6, 152, 86, 161, 132, 33, 226, 213, 212,\n\t\t16, 175, 153, 69, 165, 168, 163, 214, 106, 30, 221, 56, 82,\n\t\t161, 12, 215, 44, 34, 28, 220, 53, 148, 50, 164, 142, 51,\n\t\t36, 190, 5, 165, 97, 69, 106, 10, 86, 111, 42, 190, 85, 78,\n\t\t34, 41, 93, 155, 200, 106, 58, 9, 119, 56, 72, 66, 31, 191,\n\t\t97, 53, 68, 50, 158, 182, 106, 125, 105, 186, 167, 156, 40,\n\t\t127, 213, 255, 231, 149, 241, 189, 176, 102, 192, 221, 56,\n\t\t52, 23, 15, 37, 38, 222, 19, 32, 150, 180, 186, 242, 97, 17,\n\t\t222, 153, 130, 7, 159, 170, 239, 164, 250, 252, 8, 235, 181,\n\t\t142, 144, 89, 248, 20, 77, 45, 67, 94, 156, 209, 148, 35,\n\t\t154, 47, 53, 222, 70, 61, 108, 172, 6, 208, 23, 19, 114, 247,\n\t\t66, 181, 204, 176, 50, 81, 166, 132, 84, 236, 132, 218, 180,\n\t\t162, 90, 57, 11, 186, 38, 224, 221, 7, 151, 37, 120, 123,\n\t\t21, 254, 94, 24, 11, 60, 19, 158, 31, 33, 81, 237, 123, 93,\n\t\t171, 132, 229, 234, 73, 90, 209, 192, 218, 173, 152, 23, 149,\n\t\t209, 35, 200, 17, 145, 233, 41, 210, 94, 220, 13, 141, 145,\n\t\t255, 2, 87, 58, 79, 164, 41, 105, 210, 29, 80, 63, 81, 59,\n\t\t37, 201, 156, 146, 22, 53, 173, 208, 62, 90, 6, 147, 129,\n\t\t42, 103, 101, 48, 162, 167, 174, 30, 200, 46, 113, 62, 169,\n\t\t102, 99, 33, 9, 80, 75, 184, 49, 249, 165, 148, 142, 71, 208,\n\t\t221, 158, 4, 36, 104, 77, 219, 26, 151, 137, 82, 44, 11, 88,\n\t\t71, 36, 89, 66, 68, 233, 203, 200, 129, 123, 178, 164, 192,\n\t\t213, 29, 252, 129, 252, 234, 83, 40, 133, 88, 52, 136, 254,\n\t\t1, 216, 30, 216, 63, 4, 46, 204, 173, 44, 18, 3, 106, 106,\n\t\t108, 170, 41, 102, 241, 87, 157, 96, 154, 182, 26, 173, 108,\n\t\t28, 121, 0, 154, 204, 108, 10, 223, 173, 219, 65, 9, 134,\n\t\t12, 89, 41, 131, 184, 76, 128, 26, 104, 156, 109, 141, 68,\n\t\t209, 202, 101, 16, 100, 208, 16, 240, 129, 251, 58, 99, 200,\n\t\t234, 10, 85, 62, 43, 24, 62, 244, 225, 157, 183, 73, 222,\n\t\t116, 3, 3, 149, 41, 143, 149, 60, 129, 130, 196, 138, 247,\n\t\t146, 77, 34, 185, 74, 47, 135, 138, 32, 120, 71, 207, 143,\n\t\t148, 137, 123, 137, 64, 112, 206, 178, 211, 78, 1, 38, 117,\n\t\t159, 8, 69, 223, 224, 50, 45, 99, 66, 220, 111, 44, 45, 168,\n\t\t2, 160, 111, 249, 118, 27, 90, 116, 161, 49, 193, 37, 13,\n\t\t130, 91, 151, 217, 144, 153, 134, 64, 36, 112, 69, 123, 85,\n\t\t16, 143, 26, 193, 138, 126, 126, 164, 181, 122, 18, 221, 85,\n\t\t84, 42, 162, 160, 38, 49, 213, 207, 139, 26, 34, 218, 77,\n\t\t214, 52, 26, 49, 215, 21, 113, 18, 239, 99, 88, 150, 71, 55,\n\t\t92, 55, 227, 70, 22, 35, 95, 192, 75, 247, 90, 111, 242, 9,\n\t\t109, 13, 167, 153, 42, 77, 71, 100, 209, 4, 72, 66, 2, 92,\n\t\t186, 20, 149, 218, 157, 193, 91, 9, 194, 134, 75, 171, 84,\n\t\t167, 176, 135, 180, 226, 70, 110, 174, 83, 44, 105, 62, 177,\n\t\t28, 40, 171, 237, 252, 132, 98, 102, 180, 79, 162, 16, 233,\n\t\t176, 193, 210, 146, 192, 189, 27, 136, 166, 61, 141, 112,\n\t\t49, 153, 110, 36, 135, 50, 152, 101, 250, 170, 74, 155, 77,\n\t\t61, 69, 193, 61, 6, 139, 71, 75, 23, 65, 126, 143, 170, 202,\n\t\t240, 192, 200, 34, 61, 52, 83, 11, 228, 192, 226, 57, 3, 241,\n\t\t130, 122, 111, 0, 250, 39, 186, 11, 24, 97, 177, 26, 26, 120,\n\t\t185, 123, 243, 240, 98, 26, 96, 134, 180, 11, 37, 202, 243,\n\t\t108, 214, 31, 197, 105, 160, 249, 199, 67, 124, 51, 105, 60,\n\t\t63, 2, 231, 103, 172, 87, 208, 146, 202, 104, 196, 88, 138,\n\t\t76, 33, 55, 171, 4, 98, 48, 184, 122, 90, 218, 172, 169, 151,\n\t\t131, 133, 34, 193, 30, 84, 241, 148, 26, 123, 51, 38, 188,\n\t\t230, 94, 201, 92, 16, 163, 145, 50, 89, 33, 3, 84, 32, 183,\n\t\t182, 153, 129, 252, 53, 56, 34, 182, 128, 177, 43, 105, 169,\n\t\t187, 86, 54, 160, 68, 72, 147, 146, 4, 95, 68, 204, 51, 160,\n\t\t236, 227, 213, 228, 197, 117, 181, 153, 217, 98, 13, 105,\n\t\t215, 235, 144, 238, 0, 4, 47, 160, 86, 61, 63, 98, 138, 107,\n\t\t2, 75, 81, 35, 242, 118, 165, 237, 212, 219, 41, 203, 36,\n\t\t247, 153, 70, 218, 131, 24, 164, 162, 127, 121, 132, 49, 104,\n\t\t149, 165, 27, 21, 100, 247, 217, 167, 225, 140, 117, 109,\n\t\t161, 178, 28, 58, 14, 131, 91, 115, 93, 165, 188, 0, 226,\n\t\t247, 77, 131, 62, 85, 133, 230, 236, 232, 45, 129, 224, 236,\n\t\t88, 170, 168, 195, 70, 52, 107, 108, 53, 151, 86, 29, 231,\n\t\t67, 128, 147, 145, 101, 133, 108, 101, 160, 218, 105, 166,\n\t\t191, 124, 139, 12, 118, 185, 138, 229, 7, 41, 194, 162, 50,\n\t\t250, 141, 195, 1, 57, 109, 32, 194, 0, 186, 94, 66, 229, 66,\n\t\t64, 44, 65, 101, 141, 165, 121, 40, 219, 11, 14, 209, 233,\n\t\t94, 81, 54, 14, 67, 145, 33, 200, 34, 44, 96, 115, 232, 192,\n\t\t18, 53, 91, 107, 41, 144, 83, 152, 96, 20, 9, 236, 230, 243,\n\t\t35, 245, 38, 126, 27, 2, 87, 145, 1, 16, 49, 16, 50, 4, 132,\n\t\t140, 184, 53, 224, 170, 56, 36, 76, 123, 215, 90, 36, 179,\n\t\t63, 109, 196, 209, 200, 20, 24, 124, 141, 244, 100, 19, 236,\n\t\t178, 202, 25, 113, 9, 87, 253, 40, 144, 65, 183, 165, 83,\n\t\t162, 80, 10, 103, 8, 4, 183, 34, 24, 34, 138, 208, 120, 8,\n\t\t94, 58, 203, 135, 16, 213, 110, 117, 101, 138, 245, 108, 136,\n\t\t221, 141, 58, 66, 86, 166, 101, 225, 200, 28, 201, 18, 72,\n\t\t134, 247, 19, 160, 1, 64, 63, 210, 234, 173, 74, 158, 122,\n\t\t105, 208, 204, 184, 195, 107, 127, 102, 43, 220, 44, 71, 135,\n\t\t95, 70, 252, 17, 216, 175, 1, 62, 11, 3, 71, 4, 253, 183,\n\t\t17, 9, 28, 197, 224, 6, 52, 135, 83, 22, 33, 117, 31, 150,\n\t\t3, 245, 252, 155, 154, 81, 20, 243, 9, 128, 120, 140, 243,\n\t\t82, 217, 139, 117, 209, 90, 68, 133, 159, 99, 20, 189, 44,\n\t\t224, 31, 203, 120, 35, 7, 54, 188, 94, 158, 213, 140, 0, 136,\n\t\t16, 237, 250, 2, 63, 7, 195, 236, 134, 92, 93, 124, 201, 103,\n\t\t5, 179, 91, 244, 226, 77, 228, 6, 225, 191, 119, 58, 250,\n\t\t118, 80, 127, 52, 82, 184, 253, 44, 220, 227, 126, 190, 222,\n\t\t242, 211, 198, 215, 184, 91, 255, 250, 243, 183, 223, 255,\n\t\t248, 254, 159, 191, 252, 159, 207, 140, 200, 97, 126, 85,\n\t\t74, 176, 12, 239, 156, 226, 109, 233, 242, 75, 199, 239, 254,\n\t\t74, 174, 246, 155, 57, 153, 89, 248, 92, 201, 185, 198, 199,\n\t\t121, 217, 215, 31, 214, 249, 207, 143, 216, 186, 11, 224,\n\t\t121, 189, 118, 30, 208, 183, 51, 107, 89, 164, 119, 235, 38,\n\t\t235, 212, 154, 253, 145, 211, 13, 4, 21, 116, 91, 48, 30,\n\t\t148, 234, 202, 109, 217, 118, 108, 159, 177, 102, 25, 218,\n\t\t218, 31, 126, 35, 70, 40, 2, 241, 47, 55, 17, 95, 215, 45,\n\t\t120, 29, 200, 95, 53, 216, 237, 251, 253, 19, 201, 68, 248,\n\t\t199, 207, 27, 170, 174, 217, 124, 68, 169, 246, 9, 135, 142,\n\t\t206, 168, 10, 133, 104, 113, 172, 48, 63, 128, 35, 52, 165,\n\t\t95, 131, 65, 183, 154, 206, 179, 95, 85, 133, 77, 30, 232,\n\t\t217, 74, 122, 164, 60, 225, 103, 97, 237, 149, 124, 131, 90,\n\t\t240, 30, 109, 61, 146, 101, 1, 227, 40, 114, 102, 159, 119,\n\t\t229, 33, 125, 121, 101, 193, 247, 16, 188, 28, 122, 115, 175,\n\t\t134, 50, 208, 99, 101, 87, 62, 237, 50, 253, 102, 74, 139,\n\t\t32, 73, 248, 2, 13, 68, 178, 107, 10, 107, 147, 229, 198,\n\t\t179, 173, 37, 207, 74, 124, 159, 135, 76, 127, 86, 14, 253,\n\t\t150, 30, 128, 19, 13, 57, 227, 245, 74, 22, 49, 178, 14, 203,\n\t\t171, 32, 123, 246, 245, 77, 20, 194, 85, 189, 211, 17, 150,\n\t\t189, 125, 31, 141, 84, 129, 151, 127, 68, 32, 223, 144, 67,\n\t\t33, 74, 0, 200, 115, 88, 96, 245, 249, 75, 195, 50, 174, 238,\n\t\t161, 120, 4, 138, 245, 243, 214, 89, 207, 143, 226, 155, 11,\n\t\t71, 24, 141, 209, 153, 78, 69, 141, 162, 149, 129, 245, 161,\n\t\t164, 104, 88, 116, 95, 69, 214, 81, 47, 77, 160, 186, 83,\n\t\t236, 172, 65, 117, 48, 145, 38, 59, 10, 40, 48, 198, 198,\n\t\t42, 40, 80, 194, 90, 42, 203, 52, 100, 132, 160, 90, 175,\n\t\t242, 173, 203, 167, 97, 57, 196, 185, 2, 147, 13, 45, 220,\n\t\t51, 146, 142, 231, 161, 39, 137, 255, 48, 216, 80, 96, 146,\n\t\t64, 244, 47, 193, 35, 253, 54, 12, 29, 34, 197, 22, 25, 23,\n\t\t216, 70, 151, 118, 220, 224, 186, 232, 129, 121, 168, 227,\n\t\t149, 91, 103, 136, 115, 78, 60, 27, 84, 233, 39, 125, 73,\n\t\t239, 9, 47, 78, 20, 154, 135, 157, 244, 60, 108, 92, 119,\n\t\t171, 195, 140, 108, 242, 117, 168, 93, 238, 102, 37, 102,\n\t\t141, 153, 168, 221, 24, 117, 230, 177, 150, 164, 117, 123,\n\t\t240, 30, 64, 21, 42, 203, 250, 233, 110, 61, 168, 185, 186,\n\t\t37, 210, 98, 28, 122, 212, 158, 96, 17, 186, 65, 145, 72,\n\t\t128, 172, 80, 86, 95, 85, 134, 1, 221, 181, 205, 147, 253,\n\t\t192, 212, 230, 247, 164, 6, 112, 79, 4, 219, 22, 187, 230,\n\t\t17, 10, 21, 18, 95, 225, 98, 186, 76, 189, 55, 99, 135, 136,\n\t\t207, 75, 157, 212, 56, 34, 221, 122, 215, 133, 27, 188, 218,\n\t\t122, 64, 230, 221, 14, 138, 35, 106, 53, 40, 37, 236, 165,\n\t\t69, 12, 40, 210, 73, 80, 8, 101, 81, 54, 113, 166, 210, 26,\n\t\t110, 151, 38, 161, 43, 1, 77, 140, 85, 84, 38, 48, 82, 189,\n\t\t188, 212, 69, 96, 81, 68, 198, 241, 203, 97, 102, 237, 31,\n\t\t184, 14, 64, 66, 226, 51, 174, 72, 138, 50, 4, 119, 198, 41,\n\t\t14, 178, 97, 226, 0, 183, 4, 202, 49, 70, 6, 255, 41, 154,\n\t\t199, 18, 40, 72, 35, 5, 137, 219, 74, 192, 94, 50, 254, 224,\n\t\t7, 86, 15, 158, 124, 135, 122, 208, 109, 185, 193, 233, 42,\n\t\t163, 135, 10, 60, 126, 174, 9, 39, 41, 137, 156, 94, 95, 74,\n\t\t169, 154, 96, 116, 6, 108, 94, 27, 139, 153, 199, 25, 90,\n\t\t119, 36, 230, 160, 148, 235, 152, 79, 48, 250, 178, 42, 235,\n\t\t129, 1, 192, 26, 193, 126, 127, 22, 117, 152, 174, 255, 94,\n\t\t222, 73, 156, 134, 229, 29, 118, 46, 63, 22, 120, 44, 53,\n\t\t140, 243, 169, 168, 200, 131, 87, 151, 26, 10, 110, 240, 207,\n\t\t34, 79, 79, 253, 107, 18, 175, 75, 16, 67, 37, 30, 143, 205,\n\t\t77, 226, 209, 27, 253, 143, 73, 188, 139, 38, 103, 252, 64,\n\t\t228, 201, 56, 254, 155, 34, 143, 90, 20, 159, 166, 158, 1,\n\t\t158, 32, 18, 66, 222, 132, 159, 184, 92, 63, 11, 63, 49, 70,\n\t\t48, 196, 3, 68, 95, 140, 153, 220, 217, 133, 113, 223, 69,\n\t\t36, 105, 252, 64, 184, 227, 150, 1, 38, 73, 29, 69, 108, 79,\n\t\t191, 19, 92, 194, 2, 11, 128, 32, 181, 10, 85, 110, 152, 235,\n\t\t41, 228, 2, 83, 231, 115, 222, 186, 206, 144, 216, 195, 182,\n\t\t55, 21, 98, 80, 167, 221, 219, 84, 13, 148, 145, 44, 138,\n\t\t157, 54, 39, 210, 32, 52, 201, 36, 169, 54, 132, 229, 161,\n\t\t104, 221, 16, 31, 49, 144, 99, 111, 230, 15, 47, 17, 216,\n\t\t235, 145, 57, 44, 142, 2, 231, 150, 200, 192, 245, 195, 209,\n\t\t64, 233, 31, 105, 65, 25, 228, 87, 29, 195, 213, 171, 81,\n\t\t65, 233, 211, 17, 103, 74, 193, 220, 233, 137, 96, 85, 249,\n\t\t142, 222, 196, 11, 89, 237, 252, 34, 233, 235, 164, 170, 251,\n\t\t183, 31, 40, 200, 223, 191, 176, 36, 124, 112, 61, 31, 117,\n\t\t56, 223, 25, 178, 57, 90, 194, 151, 149, 236, 104, 185, 185,\n\t\t231, 146, 254, 195, 63, 63, 74, 241, 110, 180, 35, 148, 234,\n\t\t124, 159, 101, 125, 214, 48, 72, 38, 194, 208, 104, 62, 81,\n\t\t187, 123, 66, 88, 238, 110, 52, 223, 152, 216, 78, 80, 107,\n\t\t100, 161, 140, 96, 48, 33, 188, 87, 146, 134, 104, 37, 114,\n\t\t28, 24, 135, 168, 17, 5, 217, 91, 169, 109, 111, 233, 136,\n\t\t8, 129, 137, 199, 235, 50, 63, 167, 62, 59, 137, 133, 193,\n\t\t226, 229, 195, 0, 224, 177, 180, 245, 12, 23, 54, 207, 65,\n\t\t207, 9, 36, 188, 222, 149, 25, 205, 247, 172, 132, 97, 202,\n\t\t43, 190, 100, 97, 110, 131, 230, 61, 143, 202, 88, 143, 36,\n\t\t48, 18, 236, 122, 193, 55, 212, 232, 124, 103, 7, 37, 69,\n\t\t99, 213, 230, 85, 143, 101, 217, 166, 215, 18, 121, 50, 235,\n\t\t34, 60, 93, 22, 209, 68, 78, 5, 55, 28, 124, 58, 148, 33,\n\t\t163, 160, 22, 75, 91, 201, 189, 36, 10, 211, 13, 222, 8, 197,\n\t\t133, 210, 152, 175, 178, 172, 30, 35, 35, 190, 111, 147, 104,\n\t\t158, 42, 192, 48, 115, 148, 241, 208, 149, 173, 232, 55, 145,\n\t\t39, 69, 76, 72, 61, 23, 112, 12, 200, 139, 64, 118, 85, 18,\n\t\t242, 93, 38, 201, 99, 158, 151, 72, 60, 140, 126, 120, 162,\n\t\t139, 23, 165, 71, 130, 238, 234, 183, 236, 110, 12, 31, 19,\n\t\t50, 122, 164, 54, 212, 162, 68, 148, 168, 217, 67, 93, 194,\n\t\t93, 242, 240, 243, 250, 54, 169, 207, 172, 53, 107, 226, 69,\n\t\t44, 152, 160, 126, 3, 114, 77, 193, 181, 48, 26, 185, 223,\n\t\t185, 127, 170, 119, 53, 242, 224, 69, 127, 168, 218, 39, 215,\n\t\t160, 107, 12, 53, 16, 229, 248, 231, 80, 96, 77, 37, 7, 80,\n\t\t91, 18, 248, 137, 91, 66, 47, 86, 65, 205, 75, 219, 115, 136,\n\t\t68, 109, 128, 3, 179, 184, 80, 99, 144, 162, 148, 234, 139,\n\t\t200, 121, 242, 116, 229, 82, 60, 123, 48, 66, 31, 28, 224,\n\t\t228, 65, 96, 132, 173, 242, 130, 33, 110, 69, 155, 12, 92,\n\t\t40, 145, 239, 73, 6, 151, 184, 7, 11, 247, 252, 91, 122, 174,\n\t\t76, 222, 200, 88, 11, 98, 231, 153, 39, 158, 218, 217, 106,\n\t\t57, 217, 16, 129, 23, 51, 30, 52, 175, 34, 89, 124, 44, 89,\n\t\t253, 50, 31, 233, 61, 19, 133, 149, 232, 122, 52, 5, 59, 15,\n\t\t36, 190, 20, 185, 168, 213, 231, 209, 125, 110, 199, 218,\n\t\t202, 236, 167, 92, 175, 151, 90, 57, 188, 11, 41, 183, 74,\n\t\t115, 78, 138, 137, 148, 18, 104, 117, 185, 116, 94, 210, 180,\n\t\t16, 1, 79, 68, 76, 42, 120, 91, 199, 217, 54, 230, 70, 64,\n\t\t150, 130, 255, 251, 67, 237, 162, 99, 45, 15, 31, 119, 196,\n\t\t194, 224, 42, 117, 83, 11, 226, 144, 228, 19, 20, 87, 144,\n\t\t28, 198, 60, 149, 229, 40, 105, 255, 245, 161, 82, 238, 142,\n\t\t124, 241, 173, 80, 68, 139, 26, 39, 126, 108, 42, 234, 225,\n\t\t1, 222, 74, 174, 222, 14, 61, 54, 24, 179, 213, 21, 244, 34,\n\t\t186, 126, 38, 87, 131, 231, 68, 41, 25, 205, 73, 119, 46,\n\t\t228, 137, 195, 146, 134, 0, 125, 217, 164, 194, 126, 224,\n\t\t206, 80, 58, 74, 141, 17, 56, 135, 147, 151, 231, 234, 122,\n\t\t31, 181, 188, 242, 219, 242, 188, 140, 28, 97, 91, 191, 175,\n\t\t29, 27, 218, 172, 254, 132, 225, 119, 56, 171, 213, 234, 105,\n\t\t157, 90, 72, 155, 82, 252, 121, 40, 103, 52, 206, 181, 67,\n\t\t0, 228, 41, 37, 26, 84, 86, 10, 239, 112, 214, 85, 156, 247,\n\t\t161, 193, 101, 184, 97, 78, 176, 91, 108, 140, 29, 144, 162,\n\t\t125, 151, 226, 67, 90, 146, 52, 220, 13, 39, 160, 108, 164,\n\t\t200, 101, 3, 218, 229, 250, 122, 111, 69, 226, 17, 57, 246,\n\t\t219, 18, 126, 236, 169, 255, 220, 223, 154, 219, 161, 5, 240,\n\t\t33, 113, 99, 156, 72, 238, 59, 135, 58, 122, 135, 43, 247,\n\t\t117, 188, 245, 181, 150, 171, 2, 27, 124, 115, 165, 145, 165,\n\t\t202, 161, 224, 19, 55, 177, 98, 71, 90, 112, 144, 216, 201,\n\t\t10, 217, 129, 156, 120, 140, 122, 232, 112, 173, 185, 212,\n\t\t253, 56, 192, 128, 49, 146, 171, 205, 143, 165, 81, 73, 147,\n\t\t39, 113, 1, 55, 212, 254, 136, 139, 93, 154, 38, 11, 240,\n\t\t201, 210, 239, 233, 206, 10, 48, 21, 214, 232, 108, 97, 221,\n\t\t26, 50, 174, 56, 79, 240, 14, 148, 152, 35, 218, 36, 80, 119,\n\t\t51, 45, 121, 228, 208, 164, 30, 40, 201, 197, 245, 237, 193,\n\t\t83, 216, 238, 50, 179, 167, 85, 71, 243, 184, 70, 115, 163,\n\t\t142, 166, 36, 201, 196, 32, 86, 225, 206, 159, 189, 187, 28,\n\t\t71, 59, 224, 244, 15, 61, 184, 145, 73, 104, 177, 139, 126,\n\t\t84, 151, 216, 230, 103, 27, 136, 141, 39, 38, 219, 73, 252,\n\t\t168, 51, 68, 226, 61, 31, 197, 181, 74, 2, 156, 2, 128, 97,\n\t\t158, 37, 203, 25, 150, 186, 238, 189, 203, 45, 236, 134, 192,\n\t\t26, 191, 146, 109, 196, 90, 8, 169, 6, 13, 93, 180, 204, 16,\n\t\t42, 38, 2, 54, 180, 213, 60, 109, 108, 51, 88, 121, 233, 41,\n\t\t30, 2, 113, 70, 45, 206, 142, 80, 172, 164, 135, 52, 34, 3,\n\t\t157, 170, 216, 1, 137, 210, 66, 244, 69, 17, 170, 53, 115,\n\t\t91, 155, 161, 231, 131, 107, 237, 80, 12, 136, 154, 156, 175,\n\t\t164, 90, 30, 97, 13, 189, 101, 20, 37, 26, 123, 220, 231,\n\t\t136, 188, 143, 165, 213, 50, 198, 154, 216, 148, 125, 184,\n\t\t158, 237, 217, 132, 65, 61, 92, 169, 108, 146, 138, 48, 137,\n\t\t213, 249, 58, 152, 3, 100, 53, 88, 108, 178, 207, 246, 232,\n\t\t196, 170, 165, 200, 78, 53, 185, 216, 70, 226, 252, 207, 117,\n\t\t96, 140, 117, 69, 226, 76, 197, 2, 112, 156, 178, 151, 236,\n\t\t109, 188, 100, 76, 130, 196, 13, 45, 33, 30, 209, 20, 0, 129,\n\t\t161, 145, 17, 137, 213, 4, 37, 102, 58, 18, 184, 163, 36,\n\t\t208, 159, 19, 249, 21, 8, 23, 131, 212, 55, 8, 227, 212, 93,\n\t\t104, 107, 4, 118, 102, 68, 162, 31, 215, 206, 140, 195, 229,\n\t\t62, 210, 65, 110, 8, 22, 1, 192, 124, 123, 63, 112, 183, 162,\n\t\t93, 253, 128, 56, 55, 32, 9, 36, 137, 21, 54, 194, 57, 153,\n\t\t73, 148, 89, 205, 104, 77, 68, 64, 12, 17, 114, 160, 34, 141,\n\t\t86, 213, 49, 226, 124, 41, 246, 193, 111, 65, 51, 92, 14,\n\t\t245, 60, 159, 149, 117, 198, 203, 86, 196, 19, 222, 150, 60,\n\t\t228, 30, 109, 101, 78, 124, 104, 90, 61, 35, 70, 45, 196,\n\t\t9, 5, 182, 249, 75, 108, 197, 187, 203, 220, 130, 49, 144,\n\t\t28, 112, 72, 169, 190, 201, 202, 162, 182, 173, 77, 4, 155,\n\t\t228, 221, 48, 14, 180, 102, 230, 71, 101, 150, 40, 107, 66,\n\t\t58, 67, 129, 243, 17, 201, 28, 72, 173, 16, 74, 251, 217,\n\t\t151, 98, 151, 105, 85, 226, 2, 162, 193, 134, 71, 71, 202,\n\t\t65, 100, 27, 108, 88, 109, 161, 68, 22, 249, 231, 3, 237,\n\t\t138, 2, 35, 73, 175, 213, 52, 254, 12, 69, 43, 135, 165, 132,\n\t\t25, 213, 177, 147, 20, 229, 213, 128, 126, 87, 175, 200, 71,\n\t\t67, 86, 54, 108, 177, 76, 10, 99, 133, 235, 192, 41, 60, 2,\n\t\t228, 66, 53, 149, 32, 139, 137, 44, 235, 158, 228, 104, 237,\n\t\t136, 144, 72, 191, 220, 238, 131, 70, 194, 253, 228, 37, 55,\n\t\t211, 168, 10, 166, 76, 218, 105, 8, 98, 84, 80, 229, 40, 171,\n\t\t56, 139, 195, 138, 40, 198, 96, 37, 163, 89, 29, 123, 170,\n\t\t33, 29, 172, 67, 148, 213, 60, 193, 7, 38, 180, 202, 45, 109,\n\t\t141, 200, 67, 52, 136, 226, 172, 69, 238, 145, 231, 150, 52,\n\t\t35, 208, 252, 12, 17, 120, 195, 152, 128, 167, 4, 57, 181,\n\t\t65, 153, 69, 100, 0, 126, 217, 140, 188, 2, 238, 205, 200,\n\t\t245, 107, 123, 51, 178, 91, 236, 235, 102, 36, 231, 109, 80,\n\t\t231, 176, 170, 52, 107, 188, 81, 54, 84, 210, 28, 76, 202,\n\t\t10, 11, 177, 143, 163, 185, 92, 98, 40, 76, 66, 154, 36, 47,\n\t\t162, 180, 165, 21, 211, 246, 117, 233, 233, 36, 32, 158, 31,\n\t\t129, 90, 158, 196, 92, 27, 99, 194, 188, 1, 182, 221, 146,\n\t\t191, 171, 197, 114, 115, 35, 140, 161, 17, 240, 37, 118, 163,\n\t\t79, 66, 202, 83, 1, 54, 121, 108, 174, 5, 85, 186, 116, 194,\n\t\t30, 231, 15, 234, 49, 63, 85, 249, 26, 198, 190, 222, 2, 102,\n\t\t39, 172, 67, 205, 239, 16, 163, 142, 137, 13, 160, 157, 193,\n\t\t147, 55, 96, 67, 195, 100, 203, 80, 183, 118, 24, 115, 118,\n\t\t123, 196, 224, 86, 139, 176, 231, 167, 35, 132, 164, 38, 66,\n\t\t225, 207, 159, 33, 192, 26, 133, 68, 170, 60, 253, 228, 35,\n\t\t150, 154, 182, 214, 81, 37, 46, 143, 165, 186, 80, 8, 106,\n\t\t182, 245, 169, 24, 240, 224, 174, 46, 72, 8, 102, 96, 237,\n\t\t163, 8, 114, 146, 230, 193, 96, 214, 208, 217, 6, 71, 36,\n\t\t62, 5, 37, 62, 56, 181, 246, 136, 134, 17, 139, 223, 88, 54,\n\t\t2, 131, 44, 106, 131, 122, 167, 207, 228, 77, 68, 44, 235,\n\t\t186, 24, 236, 92, 101, 178, 174, 105, 201, 68, 60, 34, 137,\n\t\t212, 155, 115, 195, 217, 193, 208, 217, 81, 32, 217, 24, 207,\n\t\t143, 84, 219, 250, 220, 60, 72, 109, 157, 168, 193, 19, 81,\n\t\t159, 29, 231, 78, 176, 47, 87, 12, 123, 80, 236, 248, 23,\n\t\t172, 26, 200, 50, 76, 133, 237, 8, 53, 12, 85, 235, 141, 62,\n\t\t34, 165, 93, 139, 237, 212, 150, 249, 150, 41, 64, 142, 177,\n\t\t231, 197, 48, 1, 184, 252, 89, 54, 63, 187, 141, 12, 165,\n\t\t58, 127, 63, 114, 231, 49, 173, 198, 58, 102, 166, 24, 116,\n\t\t54, 118, 197, 106, 67, 61, 187, 83, 238, 21, 17, 224, 78,\n\t\t210, 36, 114, 137, 174, 37, 66, 73, 94, 45, 52, 228, 149,\n\t\t137, 237, 3, 49, 194, 160, 45, 68, 127, 19, 8, 15, 150, 120,\n\t\t170, 45, 245, 184, 22, 6, 95, 67, 161, 39, 15, 94, 129, 154,\n\t\t189, 164, 40, 232, 44, 97, 200, 29, 68, 139, 135, 193, 197,\n\t\t42, 114, 62, 48, 201, 3, 215, 167, 148, 121, 106, 94, 50,\n\t\t162, 9, 109, 179, 9, 139, 102, 140, 124, 233, 11, 125, 252,\n\t\t235, 251, 255, 243, 217, 25, 250, 159, 128, 70, 78, 165, 18,\n\t\t114, 120, 114, 237, 58, 184, 73, 111, 103, 140, 148, 79, 155,\n\t\t92, 227, 109, 254, 57, 180, 122, 203, 157, 184, 162, 41, 59,\n\t\t162, 212, 67, 54, 175, 141, 93, 151, 207, 143, 130, 152, 120,\n\t\t9, 174, 221, 66, 237, 196, 68, 221, 187, 139, 180, 179, 12,\n\t\t146, 78, 124, 108, 172, 225, 221, 136, 148, 142, 210, 50,\n\t\t215, 41, 180, 71, 85, 79, 219, 57, 95, 231, 142, 252, 250,\n\t\t191, 254, 117, 251, 246, 41, 109, 36, 122, 124, 95, 232, 148,\n\t\t15, 212, 134, 27, 183, 132, 122, 37, 30, 183, 107, 159, 237,\n\t\t12, 57, 112, 61, 155, 102, 167, 18, 17, 68, 14, 245, 22, 125,\n\t\t115, 76, 116, 193, 25, 27, 73, 139, 59, 27, 121, 248, 111,\n\t\t103, 104, 235, 22, 60, 11, 121, 79, 119, 112, 178, 156, 251,\n\t\t252, 72, 37, 19, 155, 52, 151, 168, 39, 226, 221, 28, 209,\n\t\t37, 222, 161, 66, 211, 232, 210, 53, 179, 144, 189, 69, 17,\n\t\t69, 149, 61, 157, 215, 64, 142, 151, 112, 83, 172, 47, 252,\n\t\t144, 217, 56, 254, 186, 173, 30, 191, 124, 251, 243, 183,\n\t\t79, 77, 245, 137, 145, 124, 35, 183, 243, 84, 165, 80, 51,\n\t\t231, 184, 32, 119, 234, 122, 22, 97, 71, 167, 177, 170, 71,\n\t\t197, 241, 121, 171, 0, 134, 78, 193, 101, 221, 99, 144, 240,\n\t\t43, 210, 168, 159, 31, 248, 33, 214, 232, 232, 86, 50, 200,\n\t\t115, 116, 229, 42, 117, 124, 207, 143, 208, 40, 126, 80, 169,\n\t\t202, 122, 191, 115, 26, 227, 138, 39, 106, 213, 7, 111, 115,\n\t\t47, 215, 107, 104, 75, 232, 115, 158, 100, 118, 229, 177,\n\t\t44, 152, 112, 13, 197, 149, 199, 201, 219, 228, 71, 126, 126,\n\t\t228, 154, 93, 61, 98, 247, 46, 92, 30, 196, 155, 84, 175,\n\t\t8, 187, 62, 100, 55, 43, 29, 149, 43, 215, 33, 36, 18, 164,\n\t\t111, 211, 111, 28, 68, 172, 217, 19, 125, 136, 196, 30, 229,\n\t\t195, 49, 141, 225, 246, 43, 155, 82, 193, 198, 168, 58, 8,\n\t\t55, 246, 42, 75, 24, 215, 64, 17, 63, 230, 174, 81, 76, 83,\n\t\t0, 99, 120, 61, 153, 168, 184, 12, 23, 8, 133, 192, 239, 79,\n\t\t214, 35, 156, 66, 192, 34, 15, 174, 92, 57, 69, 225, 248,\n\t\t77, 5, 214, 42, 185, 110, 111, 198, 102, 24, 63, 253, 174,\n\t\t42, 21, 85, 45, 34, 190, 5, 255, 57, 110, 179, 225, 115, 108,\n\t\t111, 24, 96, 22, 175, 167, 223, 1, 171, 216, 240, 50, 47,\n\t\t63, 79, 124, 162, 38, 142, 226, 205, 182, 135, 174, 253, 123,\n\t\t72, 234, 149, 138, 134, 85, 199, 134, 254, 166, 219, 203,\n\t\t107, 160, 157, 222, 218, 224, 174, 93, 136, 202, 134, 247,\n\t\t118, 188, 7, 43, 64, 106, 162, 76, 75, 199, 240, 211, 102,\n\t\t93, 10, 184, 1, 122, 167, 215, 215, 69, 75, 234, 135, 157,\n\t\t125, 11, 122, 188, 189, 29, 186, 104, 205, 37, 114, 253, 200,\n\t\t200, 179, 140, 39, 86, 104, 40, 176, 46, 161, 28, 175, 238,\n\t\t72, 209, 106, 170, 170, 210, 82, 1, 183, 151, 99, 137, 62,\n\t\t4, 111, 28, 244, 32, 45, 141, 208, 1, 16, 12, 25, 17, 94,\n\t\t74, 190, 157, 86, 110, 136, 141, 153, 13, 120, 51, 223, 55,\n\t\t23, 38, 94, 25, 206, 139, 245, 35, 114, 191, 53, 138, 169,\n\t\t74, 61, 158, 98, 245, 61, 216, 176, 60, 214, 109, 118, 32,\n\t\t75, 232, 190, 249, 250, 53, 176, 172, 22, 144, 23, 67, 73,\n\t\t161, 156, 205, 250, 206, 199, 167, 211, 182, 122, 121, 62,\n\t\t75, 95, 14, 67, 118, 123, 58, 105, 112, 218, 110, 138, 68,\n\t\t76, 145, 99, 105, 246, 237, 219, 150, 206, 112, 87, 23, 231,\n\t\t134, 250, 153, 239, 200, 120, 9, 106, 93, 113, 83, 42, 3,\n\t\t83, 84, 87, 9, 59, 147, 84, 167, 69, 247, 144, 234, 133, 87,\n\t\t193, 95, 76, 30, 127, 108, 189, 158, 56, 237, 20, 229, 113,\n\t\t98, 4, 75, 180, 65, 154, 239, 109, 92, 61, 63, 74, 36, 30,\n\t\t181, 20, 93, 153, 117, 243, 68, 112, 34, 194, 62, 242, 163,\n\t\t54, 119, 213, 57, 132, 129, 133, 76, 249, 247, 141, 37, 166,\n\t\t228, 208, 167, 147, 229, 239, 212, 36, 37, 173, 99, 69, 99,\n\t\t121, 46, 165, 34, 49, 94, 68, 1, 233, 90, 168, 250, 208, 32,\n\t\t143, 221, 90, 38, 154, 234, 233, 245, 253, 128, 160, 227,\n\t\t254, 248, 43, 148, 44, 73, 191, 194, 67, 60, 138, 11, 195,\n\t\t4, 170, 249, 52, 162, 36, 21, 20, 245, 198, 96, 98, 130, 154,\n\t\t19, 152, 188, 15, 41, 33, 185, 157, 234, 231, 85, 228, 37,\n\t\t86, 126, 175, 114, 19, 66, 209, 145, 181, 91, 142, 72, 1,\n\t\t242, 245, 44, 143, 211, 182, 249, 134, 15, 156, 141, 253,\n\t\t8, 96, 169, 212, 53, 205, 138, 133, 130, 149, 60, 115, 174,\n\t\t243, 158, 241, 181, 237, 220, 204, 180, 22, 184, 131, 91,\n\t\t49, 123, 130, 21, 244, 203, 109, 135, 160, 39, 177, 121, 5,\n\t\t144, 231, 142, 190, 87, 174, 18, 71, 219, 15, 158, 197, 206,\n\t\t53, 3, 69, 244, 20, 5, 8, 149, 39, 221, 236, 186, 138, 138,\n\t\t52, 208, 96, 168, 186, 66, 131, 156, 222, 253, 132, 151, 91,\n\t\t120, 6, 1, 17, 175, 205, 179, 183, 46, 31, 249, 73, 235, 114,\n\t\t211, 75, 41, 9, 58, 231, 242, 16, 160, 16, 235, 71, 116, 163,\n\t\t176, 62, 77, 45, 38, 134, 73, 175, 86, 85, 125, 63, 160, 72,\n\t\t102, 251, 136, 196, 213, 219, 136, 148, 184, 128, 240, 48,\n\t\t105, 86, 151, 183, 225, 186, 15, 78, 158, 97, 114, 178, 87,\n\t\t6, 112, 36, 159, 132, 61, 12, 73, 73, 96, 18, 155, 167, 9,\n\t\t198, 78, 225, 199, 137, 144, 159, 242, 135, 255, 72, 58, 20,\n\t\t141, 167, 255, 248, 19, 244, 205, 223, 54, 118, 201, 96, 231,\n\t\t66, 50, 36, 206, 241, 255, 43, 146, 129, 37, 221, 109, 217,\n\t\t57, 28, 155, 240, 183, 152, 133, 171, 133, 240, 5, 206, 13,\n\t\t186, 81, 154, 83, 198, 151, 173, 140, 178, 122, 11, 75, 218,\n\t\t52, 12, 188, 104, 163, 94, 195, 185, 230, 181, 169, 75, 211,\n\t\t174, 202, 69, 76, 167, 222, 170, 178, 244, 200, 104, 240,\n\t\t6, 20, 231, 45, 212, 176, 99, 178, 178, 198, 134, 240, 178,\n\t\t56, 155, 153, 76, 20, 105, 138, 219, 206, 13, 239, 47, 52,\n\t\t110, 87, 164, 46, 171, 130, 191, 116, 185, 23, 5, 95, 28,\n\t\t94, 63, 81, 240, 215, 89, 23, 152, 12, 124, 173, 96, 147,\n\t\t220, 204, 108, 231, 5, 230, 30, 161, 33, 84, 54, 187, 139,\n\t\t226, 230, 204, 221, 73, 245, 18, 228, 83, 228, 45, 111, 142,\n\t\t114, 158, 250, 85, 75, 81, 69, 50, 214, 55, 204, 229, 185,\n\t\t57, 249, 140, 115, 35, 138, 107, 52, 179, 167, 186, 170, 168,\n\t\t42, 123, 54, 208, 142, 40, 42, 135, 138, 245, 53, 178, 86,\n\t\t46, 58, 92, 132, 214, 213, 134, 210, 25, 252, 227, 212, 218,\n\t\t31, 226, 190, 141, 209, 47, 155, 132, 195, 84, 55, 43, 190,\n\t\t93, 109, 115, 211, 122, 45, 222, 215, 211, 148, 183, 118,\n\t\t217, 74, 95, 26, 125, 223, 255, 249, 31, 159, 171, 42, 226,\n\t\t39, 66, 252, 173, 88, 32, 113, 26, 100, 114, 121, 90, 118,\n\t\t135, 149, 140, 171, 70, 4, 55, 196, 219, 17, 226, 127, 46,\n\t\t72, 207, 224, 141, 220, 212, 111, 54, 181, 70, 64, 217, 91,\n\t\t152, 115, 20, 49, 170, 125, 239, 138, 17, 127, 211, 226, 152,\n\t\t179, 112, 43, 223, 21, 157, 40, 42, 145, 32, 78, 17, 238,\n\t\t199, 203, 84, 25, 97, 40, 128, 146, 137, 24, 148, 58, 249,\n\t\t245, 192, 221, 112, 105, 52, 150, 88, 148, 205, 6, 220, 152,\n\t\t73, 116, 122, 69, 27, 204, 56, 160, 181, 81, 175, 7, 238,\n\t\t167, 17, 175, 41, 59, 169, 66, 115, 20, 113, 135, 41, 6, 9,\n\t\t200, 45, 78, 148, 134, 6, 101, 84, 127, 61, 64, 106, 188,\n\t\t140, 62, 221, 8, 125, 23, 244, 125, 211, 58, 162, 2, 162,\n\t\t105, 33, 154, 210, 13, 11, 144, 7, 10, 194, 80, 101, 117,\n\t\t166, 163, 2, 197, 74, 55, 175, 72, 82, 38, 153, 43, 14, 206,\n\t\t106, 26, 188, 244, 186, 196, 153, 78, 35, 59, 65, 163, 151,\n\t\t141, 88, 125, 219, 185, 91, 206, 145, 249, 230, 65, 164, 26,\n\t\t224, 94, 77, 44, 171, 229, 189, 121, 70, 22, 248, 112, 95,\n\t\t247, 111, 231, 59, 232, 231, 125, 163, 2, 218, 150, 55, 126,\n\t\t227, 136, 42, 84, 45, 11, 204, 154, 221, 11, 25, 92, 60, 197,\n\t\t137, 11, 37, 1, 179, 17, 2, 93, 59, 110, 163, 140, 46, 15,\n\t\t213, 116, 221, 253, 0, 161, 38, 115, 179, 241, 215, 221, 9,\n\t\t238, 5, 25, 2, 146, 57, 172, 254, 64, 182, 93, 56, 185, 64,\n\t\t116, 68, 196, 115, 143, 136, 34, 60, 101, 178, 30, 144, 157,\n\t\t148, 24, 171, 85, 233, 103, 20, 239, 87, 133, 28, 68, 78,\n\t\t168, 196, 82, 182, 229, 163, 255, 228, 200, 61, 113, 158,\n\t\t49, 47, 153, 135, 191, 91, 117, 32, 86, 255, 183, 3, 19, 92,\n\t\t18, 69, 185, 76, 81, 94, 19, 8, 169, 71, 137, 201, 193, 13,\n\t\t144, 210, 90, 51, 72, 182, 36, 38, 200, 184, 76, 243, 185,\n\t\t75, 228, 48, 38, 85, 119, 169, 246, 79, 50, 109, 17, 162,\n\t\t65, 91, 102, 180, 50, 114, 148, 207, 10, 20, 178, 247, 35,\n\t\t247, 45, 249, 235, 189, 243, 120, 9, 155, 200, 85, 83, 127,\n\t\t114, 22, 229, 4, 25, 36, 111, 251, 136, 27, 2, 169, 2, 162,\n\t\t166, 210, 0, 46, 71, 3, 220, 9, 66, 43, 168, 251, 22, 173,\n\t\t0, 2, 242, 109, 255, 222, 113, 28, 109, 206, 185, 185, 171,\n\t\t57, 145, 254, 60, 52, 120, 128, 49, 158, 155, 218, 210, 175,\n\t\t71, 110, 106, 121, 243, 212, 177, 56, 33, 162, 241, 248, 60,\n\t\t26, 245, 251, 206, 61, 152, 21, 202, 99, 175, 91, 78, 208,\n\t\t125, 95, 36, 211, 107, 170, 213, 218, 191, 108, 15, 38, 89,\n\t\t114, 123, 141, 47, 207, 136, 175, 22, 3, 19, 81, 90, 201,\n\t\t255, 122, 219, 191, 163, 76, 20, 196, 114, 84, 69, 41, 210,\n\t\t108, 218, 168, 172, 162, 44, 107, 251, 208, 77, 76, 121, 134,\n\t\t255, 170, 41, 87, 227, 177, 109, 223, 45, 35, 105, 224, 245,\n\t\t16, 225, 98, 151, 237, 93, 105, 194, 101, 53, 122, 219, 191,\n\t\t220, 27, 199, 255, 232, 35, 32, 121, 130, 47, 110, 41, 249,\n\t\t44, 63, 168, 162, 90, 136, 201, 143, 54, 222, 118, 238, 171,\n\t\t27, 130, 103, 66, 101, 20, 98, 7, 193, 230, 204, 58, 53, 208,\n\t\t154, 10, 187, 39, 233, 165, 148, 46, 39, 217, 86, 252, 41,\n\t\t29, 41, 50, 73, 153, 13, 61, 133, 113, 20, 132, 201, 234,\n\t\t165, 248, 47, 202, 165, 26, 218, 128, 5, 20, 208, 208, 180,\n\t\t230, 20, 126, 40, 240, 122, 189, 237, 79, 196, 9, 129, 199,\n\t\t153, 142, 32, 255, 222, 61, 101, 23, 112, 123, 168, 190, 183,\n\t\t198, 184, 40, 89, 202, 117, 153, 168, 54, 156, 222, 35, 193,\n\t\t61, 38, 96, 90, 25, 119, 231, 145, 145, 129, 28, 3, 159, 9,\n\t\t197, 89, 238, 171, 111, 69, 180, 99, 69, 126, 63, 114, 183,\n\t\t154, 34, 73, 190, 143, 69, 17, 202, 46, 19, 93, 44, 57, 84,\n\t\t89, 120, 125, 34, 60, 94, 175, 251, 54, 193, 130, 213, 196,\n\t\t48, 47, 186, 32, 63, 76, 3, 6, 228, 161, 35, 28, 248, 117,\n\t\t203, 184, 75, 152, 31, 103, 219, 114, 221, 36, 85, 244, 243,\n\t\t145, 155, 214, 114, 17, 1, 166, 8, 142, 198, 55, 100, 97,\n\t\t43, 35, 232, 109, 255, 142, 169, 1, 96, 162, 142, 124, 149,\n\t\t203, 220, 170, 205, 89, 15, 50, 72, 120, 15, 75, 236, 245,\n\t\t128, 205, 159, 228, 49, 243, 144, 20, 19, 85, 204, 27, 222,\n\t\t51, 176, 129, 48, 151, 94, 247, 117, 206, 43, 181, 164, 87,\n\t\t83, 162, 177, 91, 84, 160, 145, 66, 239, 142, 204, 166, 3,\n\t\t110, 73, 139, 204, 73, 130, 140, 100, 152, 211, 98, 35, 111,\n\t\t198, 157, 128, 0, 29, 16, 67, 0, 134, 38, 169, 108, 243, 148,\n\t\t89, 176, 19, 181, 163, 103, 136, 90, 40, 141, 231, 71, 34,\n\t\t94, 213, 36, 188, 38, 126, 131, 172, 40, 28, 85, 214, 100,\n\t\t15, 254, 4, 58, 41, 19, 205, 236, 178, 6, 142, 33, 229, 55,\n\t\t0, 81, 208, 57, 93, 160, 66, 150, 183, 221, 231, 71, 42, 212,\n\t\t191, 77, 211, 161, 200, 95, 103, 110, 79, 153, 21, 156, 99,\n\t\t183, 237, 221, 145, 78, 127, 24, 143, 56, 248, 107, 65, 219,\n\t\t108, 81, 93, 189, 161, 50, 10, 129, 31, 253, 211, 145, 123,\n\t\t218, 188, 222, 188, 98, 166, 151, 5, 228, 249, 145, 115, 116,\n\t\t97, 235, 46, 205, 116, 122, 179, 80, 53, 208, 0, 49, 71, 65,\n\t\t30, 219, 190, 220, 53, 93, 212, 168, 110, 160, 152, 130, 79,\n\t\t204, 170, 98, 84, 223, 83, 180, 217, 4, 134, 159, 247, 35,\n\t\t95, 83, 97, 255, 246, 235, 159, 231, 183, 255, 250, 126, 255,\n\t\t237, 159, 223, 207, 255, 188, 125, 251, 95, 159, 44, 175,\n\t\t130, 192, 100, 206, 217, 165, 150, 142, 222, 93, 105, 53,\n\t\t178, 215, 57, 212, 54, 8, 27, 48, 228, 92, 18, 235, 233, 89,\n\t\t26, 44, 133, 88, 116, 99, 174, 81, 86, 91, 96, 101, 51, 246,\n\t\t30, 72, 88, 165, 17, 68, 141, 45, 75, 241, 31, 209, 133, 130,\n\t\t129, 82, 8, 218, 175, 114, 10, 20, 83, 242, 150, 78, 105,\n\t\t3, 184, 79, 116, 189, 99, 159, 128, 97, 70, 170, 132, 182,\n\t\t222, 131, 27, 17, 104, 171, 137, 52, 220, 213, 49, 33, 209,\n\t\t58, 88, 71, 73, 100, 136, 248, 220, 58, 217, 195, 62, 102,\n\t\t234, 118, 231, 71, 105, 219, 129, 245, 93, 169, 144, 33, 237,\n\t\t115, 239, 233, 113, 182, 230, 122, 76, 92, 144, 188, 102,\n\t\t125, 225, 180, 199, 16, 41, 29, 51, 59, 202, 37, 231, 12,\n\t\t205, 168, 7, 38, 101, 6, 20, 38, 252, 193, 73, 75, 249, 171,\n\t\t62, 219, 1, 249, 251, 72, 45, 187, 214, 57, 63, 50, 5, 202,\n\t\t255, 144, 70, 141, 209, 149, 216, 210, 26, 83, 53, 102, 219,\n\t\t207, 197, 249, 82, 169, 228, 48, 184, 70, 112, 202, 224, 192,\n\t\t106, 46, 229, 212, 223, 255, 94, 238, 56, 112, 190, 159, 121,\n\t\t202, 6, 21, 160, 117, 151, 83, 228, 49, 53, 66, 222, 191,\n\t\t16, 143, 62, 229, 217, 15, 10, 29, 231, 68, 160, 50, 244,\n\t\t182, 193, 165, 182, 254, 150, 238, 90, 109, 85, 251, 141,\n\t\t0, 29, 183, 126, 171, 197, 197, 70, 185, 136, 163, 185, 218,\n\t\t10, 91, 200, 53, 247, 53, 157, 171, 27, 173, 234, 129, 153,\n\t\t186, 27, 33, 174, 102, 68, 15, 227, 212, 53, 114, 170, 104,\n\t\t229, 185, 231, 37, 235, 195, 136, 169, 243, 148, 228, 134,\n\t\t198, 40, 213, 3, 50, 54, 31, 103, 204, 222, 213, 175, 121,\n\t\t35, 255, 215, 47, 127, 254, 249, 3, 199, 68, 253, 57, 111,\n\t\t124, 197, 204, 95, 77, 124, 61, 165, 244, 236, 145, 86, 211,\n\t\t93, 177, 119, 210, 238, 243, 35, 84, 74, 107, 104, 193, 141,\n\t\t199, 153, 83, 113, 195, 174, 224, 221, 162, 80, 223, 107,\n\t\t34, 252, 181, 83, 83, 237, 71, 106, 113, 125, 96, 179, 147,\n\t\t214, 14, 78, 249, 234, 147, 175, 191, 253, 118, 251, 4, 246,\n\t\t29, 63, 49, 229, 111, 225, 119, 90, 0, 70, 125, 132, 58, 131,\n\t\t98, 221, 138, 88, 83, 182, 78, 20, 31, 193, 71, 13, 140, 180,\n\t\t231, 71, 244, 209, 49, 162, 101, 154, 145, 177, 196, 68, 0,\n\t\t23, 5, 88, 164, 92, 84, 53, 186, 145, 119, 31, 21, 12, 138,\n\t\t201, 197, 73, 4, 227, 172, 145, 97, 200, 69, 242, 29, 74,\n\t\t150, 14, 212, 154, 7, 159, 183, 22, 223, 224, 194, 17, 41,\n\t\t5, 248, 12, 84, 78, 168, 200, 206, 201, 182, 53, 221, 154,\n\t\t134, 22, 126, 230, 120, 166, 149, 154, 150, 73, 119, 208,\n\t\t106, 219, 206, 63, 171, 113, 94, 238, 167, 220, 84, 14, 189,\n\t\t109, 60, 63, 74, 95, 75, 203, 106, 205, 101, 48, 93, 11, 91,\n\t\t239, 143, 147, 119, 79, 217, 127, 126, 20, 162, 160, 162,\n\t\t86, 239, 55, 48, 178, 71, 173, 250, 30, 197, 165, 43, 152,\n\t\t218, 159, 31, 185, 53, 2, 237, 45, 46, 47, 3, 81, 186, 164,\n\t\t171, 9, 41, 158, 19, 0, 11, 170, 59, 155, 245, 200, 139, 136,\n\t\t5, 86, 173, 176, 92, 166, 252, 218, 147, 116, 122, 153, 122,\n\t\t219, 83, 145, 106, 138, 2, 178, 161, 230, 236, 253, 200, 253,\n\t\t76, 230, 164, 150, 149, 12, 231, 200, 41, 211, 18, 24, 183,\n\t\t104, 174, 104, 228, 48, 138, 229, 192, 122, 145, 187, 122,\n\t\t60, 147, 160, 200, 109, 191, 242, 87, 105, 3, 200, 141, 223,\n\t\t158, 248, 190, 127, 199, 59, 98, 149, 127, 255, 138, 231,\n\t\t71, 78, 205, 85, 74, 119, 47, 15, 129, 38, 156, 30, 16, 146,\n\t\t26, 175, 245, 106, 192, 112, 195, 35, 220, 169, 25, 7, 222,\n\t\t230, 192, 185, 33, 180, 53, 191, 69, 94, 31, 167, 61, 64,\n\t\t21, 163, 205, 59, 80, 94, 98, 152, 101, 201, 70, 214, 133,\n\t\t40, 120, 74, 207, 237, 102, 154, 243, 123, 144, 80, 74, 41,\n\t\t236, 99, 5, 62, 156, 159, 143, 21, 62, 80, 36, 1, 144, 135,\n\t\t10, 223, 207, 149, 215, 97, 162, 103, 190, 13, 19, 126, 198,\n\t\t223, 28, 38, 162, 179, 191, 117, 210, 229, 235, 113, 162,\n\t\t104, 134, 58, 78, 120, 66, 179, 22, 181, 99, 97, 210, 203,\n\t\t1, 182, 28, 24, 16, 161, 90, 69, 100, 89, 82, 86, 222, 111,\n\t\t136, 122, 46, 236, 232, 15, 226, 94, 94, 50, 202, 224, 43,\n\t\t17, 64, 136, 145, 147, 251, 163, 36, 90, 192, 60, 101, 20,\n\t\t20, 76, 76, 118, 26, 224, 128, 60, 231, 113, 14, 182, 33,\n\t\t46, 230, 159, 166, 10, 172, 100, 120, 172, 44, 48, 75, 83,\n\t\t83, 164, 80, 4, 182, 67, 95, 183, 64, 40, 187, 119, 80, 95,\n\t\t120, 132, 114, 223, 50, 17, 172, 66, 5, 71, 184, 49, 31, 167,\n\t\t212, 109, 220, 72, 199, 151, 113, 55, 119, 84, 58, 22, 104,\n\t\t176, 178, 19, 218, 86, 96, 222, 0, 185, 252, 32, 242, 232,\n\t\t160, 240, 84, 234, 117, 141, 6, 189, 204, 109, 155, 192, 33,\n\t\t106, 138, 186, 211, 32, 30, 79, 36, 152, 103, 134, 87, 193,\n\t\t119, 123, 156, 2, 45, 169, 162, 240, 209, 208, 149, 93, 156,\n\t\t42, 196, 61, 46, 125, 186, 132, 236, 251, 238, 4, 170, 36,\n\t\t130, 171, 242, 80, 192, 159, 13, 153, 213, 198, 187, 28, 101,\n\t\t242, 201, 27, 136, 169, 20, 13, 218, 95, 140, 105, 32, 202,\n\t\t19, 18, 103, 240, 75, 238, 175, 71, 123, 193, 255, 147, 186,\n\t\t27, 233, 47, 136, 6, 43, 221, 160, 167, 18, 105, 41, 11, 165,\n\t\t255, 49, 33, 134, 202, 178, 88, 243, 13, 14, 164, 128, 102,\n\t\t67, 249, 183, 22, 89, 22, 5, 159, 162, 216, 168, 200, 218,\n\t\t8, 227, 197, 200, 93, 48, 238, 146, 86, 66, 14, 101, 79, 209,\n\t\t56, 195, 229, 81, 65, 178, 24, 71, 112, 237, 239, 200, 82,\n\t\t158, 2, 146, 151, 242, 63, 46, 64, 239, 216, 219, 164, 38,\n\t\t63, 241, 223, 5, 183, 238, 127, 254, 241, 237, 241, 237, 147,\n\t\t74, 213, 127, 174, 68, 134, 66, 152, 97, 185, 223, 66, 161,\n\t\t233, 64, 25, 151, 215, 115, 89, 97, 196, 112, 195, 226, 117,\n\t\t153, 32, 150, 109, 72, 101, 76, 225, 122, 118, 228, 36, 38,\n\t\t223, 215, 98, 84, 234, 181, 178, 215, 250, 70, 208, 240, 196,\n\t\t175, 79, 228, 65, 75, 239, 138, 209, 175, 159, 201, 251, 130,\n\t\t176, 205, 122, 78, 252, 119, 25, 187, 247, 63, 255, 248, 229,\n\t\t247, 79, 164, 234, 241, 11, 82, 245, 80, 203, 145, 124, 114,\n\t\t105, 203, 107, 56, 151, 44, 188, 38, 30, 37, 143, 83, 16,\n\t\t196, 175, 167, 30, 169, 66, 95, 233, 21, 148, 245, 136, 36,\n\t\t142, 142, 164, 48, 143, 5, 87, 179, 30, 48, 79, 13, 218, 37,\n\t\t91, 1, 120, 242, 217, 47, 65, 245, 69, 58, 50, 53, 52, 228,\n\t\t169, 232, 159, 6, 119, 104, 182, 45, 78, 128, 155, 177, 175,\n\t\t115, 181, 213, 243, 35, 150, 188, 52, 200, 18, 92, 35, 132,\n\t\t71, 158, 110, 226, 165, 67, 16, 14, 117, 164, 73, 124, 164,\n\t\t146, 153, 68, 131, 16, 47, 45, 250, 21, 143, 64, 120, 55,\n\t\t50, 138, 11, 121, 161, 129, 130, 231, 137, 20, 228, 74, 72,\n\t\t252, 148, 254, 89, 146, 139, 87, 17, 154, 207, 143, 148, 171,\n\t\t203, 71, 138, 203, 214, 224, 102, 187, 105, 84, 238, 28, 174,\n\t\t60, 18, 114, 136, 51, 32, 152, 195, 112, 141, 209, 209, 142,\n\t\t218, 108, 86, 21, 219, 171, 138, 95, 64, 152, 105, 6, 83,\n\t\t151, 145, 111, 88, 161, 255, 103, 197, 246, 216, 136, 170,\n\t\t35, 1, 42, 116, 158, 89, 244, 245, 217, 43, 83, 137, 166,\n\t\t232, 232, 183, 2, 57, 70, 178, 134, 245, 128, 66, 88, 250,\n\t\t213, 65, 202, 215, 212, 84, 143, 242, 135, 134, 237, 200,\n\t\t106, 2, 35, 15, 239, 85, 77, 192, 66, 153, 103, 228, 85, 105,\n\t\t157, 82, 61, 54, 9, 171, 171, 241, 202, 28, 53, 197, 95, 92,\n\t\t136, 57, 191, 122, 98, 30, 72, 47, 158, 98, 171, 72, 51, 36,\n\t\t43, 9, 228, 27, 100, 77, 69, 225, 151, 80, 134, 162, 45, 167,\n\t\t8, 38, 147, 241, 24, 224, 8, 47, 243, 156, 191, 27, 186, 112,\n\t\t94, 2, 104, 97, 171, 148, 209, 212, 166, 13, 14, 132, 61,\n\t\t121, 215, 181, 238, 177, 33, 19, 15, 13, 247, 42, 102, 52,\n\t\t164, 123, 2, 10, 242, 0, 178, 44, 249, 107, 25, 52, 26, 4,\n\t\t64, 226, 199, 27, 252, 154, 15, 229, 91, 215, 104, 181, 133,\n\t\t84, 59, 18, 175, 148, 95, 135, 80, 54, 21, 3, 214, 31, 103,\n\t\t75, 236, 51, 228, 43, 104, 175, 117, 204, 125, 128, 40, 69,\n\t\t129, 171, 233, 146, 27, 139, 161, 41, 251, 247, 138, 84, 149,\n\t\t36, 54, 154, 30, 232, 220, 215, 207, 203, 71, 41, 107, 165,\n\t\t141, 126, 205, 151, 172, 180, 248, 209, 27, 138, 175, 166,\n\t\t169, 209, 74, 46, 123, 83, 241, 101, 189, 77, 206, 215, 170,\n\t\t112, 88, 114, 137, 109, 174, 52, 150, 124, 93, 175, 56, 21,\n\t\t57, 253, 168, 90, 208, 141, 64, 39, 48, 107, 68, 65, 59, 149,\n\t\t236, 33, 14, 58, 206, 167, 87, 40, 98, 13, 160, 32, 4, 189,\n\t\t225, 169, 102, 135, 2, 189, 73, 198, 88, 0, 183, 220, 158,\n\t\t117, 38, 99, 250, 6, 22, 91, 213, 153, 30, 209, 103, 194,\n\t\t43, 19, 150, 142, 155, 113, 19, 134, 9, 55, 116, 209, 57,\n\t\t38, 81, 27, 81, 93, 128, 198, 44, 251, 207, 143, 28, 105,\n\t\t201, 201, 197, 165, 73, 120, 166, 196, 166, 94, 20, 72, 7,\n\t\t240, 120, 152, 45, 20, 31, 194, 234, 197, 27, 25, 83, 101,\n\t\t59, 87, 134, 149, 104, 134, 126, 147, 231, 138, 214, 38, 113,\n\t\t1, 137, 84, 223, 44, 180, 80, 9, 199, 95, 164, 18, 210, 6,\n\t\t60, 87, 234, 139, 255, 30, 58, 132, 28, 120, 18, 210, 206,\n\t\t32, 126, 239, 42, 130, 53, 43, 100, 23, 237, 158, 178, 255,\n\t\t23, 86, 200, 243, 83, 89, 75, 252, 196, 156, 182, 175, 252,\n\t\t133, 160, 150, 19, 207, 237, 170, 233, 225, 82, 164, 175,\n\t\t59, 107, 252, 50, 82, 166, 143, 174, 42, 81, 205, 65, 47,\n\t\t72, 106, 180, 39, 14, 158, 181, 55, 217, 181, 29, 234, 177,\n\t\t164, 12, 209, 138, 81, 13, 75, 235, 4, 52, 21, 26, 93, 86,\n\t\t143, 196, 17, 157, 71, 88, 90, 243, 204, 154, 177, 82, 137,\n\t\t244, 106, 8, 32, 115, 40, 68, 244, 179, 182, 215, 184, 22,\n\t\t144, 161, 146, 161, 29, 21, 221, 78, 25, 179, 171, 194, 231,\n\t\t16, 67, 117, 164, 67, 23, 108, 211, 139, 14, 34, 153, 15,\n\t\t62, 28, 13, 225, 175, 186, 172, 208, 48, 162, 235, 188, 189,\n\t\t222, 71, 86, 146, 145, 57, 148, 204, 146, 52, 83, 185, 189,\n\t\t224, 254, 63, 206, 144, 150, 64, 12, 83, 177, 122, 117, 102,\n\t\t142, 78, 140, 193, 104, 39, 134, 246, 198, 129, 9, 195, 134,\n\t\t214, 255, 174, 211, 155, 213, 66, 59, 34, 169, 40, 95, 118,\n\t\t252, 159, 255, 253, 251, 111, 233, 83, 175, 255, 135, 22,\n\t\t251, 180, 238, 218, 145, 234, 112, 156, 254, 40, 243, 189,\n\t\t35, 91, 32, 86, 166, 255, 9, 217, 83, 79, 242, 238, 172, 182,\n\t\t234, 49, 87, 122, 224, 156, 5, 246, 133, 105, 166, 64, 99,\n\t\t23, 90, 160, 86, 93, 75, 1, 57, 196, 43, 213, 200, 167, 49,\n\t\t9, 106, 92, 62, 51, 116, 82, 92, 82, 198, 102, 74, 141, 13,\n\t\t226, 183, 52, 106, 172, 127, 128, 217, 18, 143, 76, 108, 71,\n\t\t210, 156, 75, 194, 185, 150, 33, 19, 90, 117, 233, 16, 87,\n\t\t232, 133, 24, 18, 184, 42, 12, 38, 79, 216, 128, 238, 196,\n\t\t8, 26, 208, 92, 136, 218, 38, 135, 58, 65, 80, 231, 15, 230,\n\t\t5, 84, 249, 44, 187, 98, 189, 159, 93, 33, 60, 153, 5, 166,\n\t\t71, 199, 85, 254, 176, 92, 163, 75, 19, 121, 48, 236, 91,\n\t\t9, 146, 252, 29, 116, 103, 13, 14, 38, 254, 97, 223, 158,\n\t\t36, 203, 36, 96, 218, 201, 244, 2, 36, 246, 151, 21, 76, 255,\n\t\t252, 246, 252, 237, 215, 243, 247, 111, 255, 253, 105, 12,\n\t\t124, 129, 19, 28, 242, 17, 98, 116, 13, 156, 137, 154, 78,\n\t\t193, 82, 81, 244, 86, 49, 244, 215, 151, 7, 15, 99, 31, 166,\n\t\t162, 250, 15, 68, 132, 170, 142, 139, 248, 123, 210, 208,\n\t\t101, 117, 132, 190, 51, 188, 107, 45, 51, 134, 87, 201, 117,\n\t\t28, 130, 158, 64, 106, 47, 13, 172, 165, 26, 180, 68, 160,\n\t\t117, 28, 246, 89, 243, 190, 87, 194, 149, 206, 37, 135, 163,\n\t\t110, 2, 156, 100, 122, 140, 206, 247, 68, 185, 53, 196, 184,\n\t\t86, 186, 20, 192, 22, 151, 90, 27, 233, 232, 222, 165, 22,\n\t\t131, 30, 88, 242, 217, 19, 162, 8, 3, 1, 14, 79, 214, 180,\n\t\t224, 71, 47, 9, 21, 219, 88, 162, 171, 181, 150, 72, 27, 161,\n\t\t175, 211, 228, 82, 93, 133, 212, 169, 195, 154, 55, 191, 206,\n\t\t26, 250, 105, 164, 163, 184, 156, 123, 92, 61, 59, 92, 31,\n\t\t141, 216, 80, 98, 34, 152, 138, 228, 195, 18, 73, 252, 246,\n\t\t210, 208, 168, 206, 149, 221, 168, 132, 57, 130, 162, 175,\n\t\t98, 132, 31, 186, 218, 67, 109, 243, 83, 50, 167, 41, 220,\n\t\t148, 91, 168, 148, 211, 17, 91, 204, 172, 19, 241, 198, 106,\n\t\t199, 214, 153, 63, 131, 47, 19, 142, 208, 169, 106, 163, 213,\n\t\t75, 153, 98, 131, 16, 236, 176, 180, 69, 150, 178, 228, 18,\n\t\t74, 12, 125, 89, 10, 149, 251, 149, 228, 70, 43, 172, 57,\n\t\t231, 84, 11, 161, 1, 138, 215, 173, 65, 141, 128, 85, 16,\n\t\t93, 76, 53, 37, 50, 201, 114, 90, 111, 152, 93, 234, 181,\n\t\t49, 116, 58, 63, 157, 91, 154, 105, 179, 7, 17, 214, 157,\n\t\t90, 24, 78, 193, 234, 144, 51, 229, 208, 132, 38, 65, 29,\n\t\t78, 169, 225, 172, 226, 171, 150, 13, 173, 235, 123, 41, 132,\n\t\t255, 68, 129, 163, 68, 87, 251, 53, 4, 189, 139, 210, 48,\n\t\t145, 0, 23, 248, 90, 35, 231, 51, 96, 123, 120, 206, 116,\n\t\t173, 135, 73, 142, 161, 65, 218, 248, 24, 109, 93, 84, 5,\n\t\t83, 42, 85, 138, 100, 30, 201, 121, 223, 27, 251, 153, 105,\n\t\t30, 33, 63, 100, 105, 125, 45, 54, 214, 115, 9, 134, 164,\n\t\t187, 150, 27, 17, 123, 250, 218, 50, 37, 134, 176, 147, 67,\n\t\t235, 123, 178, 235, 181, 80, 117, 12, 161, 119, 144, 248,\n\t\t165, 26, 128, 226, 100, 185, 205, 197, 213, 163, 183, 185,\n\t\t241, 247, 75, 175, 39, 37, 70, 7, 62, 145, 216, 179, 84, 86,\n\t\t24, 143, 212, 163, 27, 72, 146, 246, 7, 107, 125, 253, 205,\n\t\t108, 152, 73, 15, 20, 229, 136, 178, 92, 38, 101, 57, 33,\n\t\t220, 229, 160, 197, 17, 226, 32, 151, 212, 47, 131, 112, 133,\n\t\t9, 38, 185, 54, 186, 246, 104, 66, 128, 46, 140, 64, 161,\n\t\t87, 191, 98, 30, 82, 67, 108, 124, 152, 74, 148, 149, 204,\n\t\t44, 18, 43, 0, 185, 56, 130, 27, 55, 173, 26, 17, 11, 174,\n\t\t37, 209, 129, 121, 37, 43, 177, 124, 198, 200, 167, 97, 166,\n\t\t228, 78, 0, 67, 229, 108, 253, 128, 212, 54, 161, 30, 230,\n\t\t220, 125, 204, 102, 245, 15, 73, 158, 218, 227, 108, 106,\n\t\t31, 158, 20, 186, 141, 59, 198, 195, 153, 246, 76, 235, 180,\n\t\t1, 8, 115, 150, 117, 153, 107, 157, 219, 51, 190, 97, 41,\n\t\t110, 199, 48, 171, 9, 136, 76, 156, 242, 246, 43, 208, 65,\n\t\t105, 186, 241, 175, 101, 75, 7, 223, 43, 219, 227, 182, 157,\n\t\t30, 209, 15, 151, 46, 84, 62, 32, 30, 42, 167, 64, 64, 220,\n\t\t69, 219, 159, 43, 25, 96, 80, 136, 253, 150, 23, 114, 40,\n\t\t51, 145, 4, 241, 24, 25, 39, 98, 106, 137, 139, 252, 220,\n\t\t114, 25, 78, 24, 106, 206, 231, 52, 40, 39, 96, 77, 17, 138,\n\t\t21, 123, 23, 99, 172, 133, 65, 47, 82, 138, 27, 123, 188,\n\t\t36, 208, 204, 157, 99, 29, 170, 35, 255, 1, 120, 133, 228,\n\t\t175, 93, 38, 210, 93, 214, 235, 214, 88, 40, 209, 34, 50,\n\t\t94, 5, 97, 80, 165, 142, 210, 202, 231, 71, 88, 34, 254, 72,\n\t\t57, 236, 192, 27, 217, 108, 56, 86, 245, 172, 50, 10, 93,\n\t\t181, 101, 222, 75, 140, 130, 207, 163, 79, 92, 253, 232, 115,\n\t\t239, 177, 83, 71, 248, 230, 57, 227, 193, 147, 56, 81, 92,\n\t\t149, 158, 202, 200, 239, 71, 99, 73, 131, 75, 94, 214, 0,\n\t\t96, 233, 215, 106, 169, 145, 241, 222, 234, 104, 137, 202,\n\t\t90, 105, 181, 76, 206, 103, 74, 244, 193, 34, 142, 106, 125,\n\t\t213, 103, 131, 164, 187, 104, 20, 66, 150, 29, 205, 244, 178,\n\t\t194, 21, 48, 235, 138, 196, 4, 53, 29, 233, 249, 192, 212,\n\t\t242, 135, 241, 152, 228, 67, 208, 11, 9, 76, 25, 83, 242,\n\t\t136, 81, 37, 7, 15, 204, 148, 140, 234, 77, 160, 44, 37, 171,\n\t\t53, 102, 96, 248, 10, 78, 129, 44, 136, 164, 121, 108, 76,\n\t\t184, 73, 105, 225, 100, 201, 51, 186, 156, 164, 45, 190, 134,\n\t\t84, 160, 239, 41, 165, 86, 65, 8, 33, 220, 146, 29, 104, 65,\n\t\t142, 68, 39, 0, 62, 212, 252, 93, 120, 244, 221, 234, 210,\n\t\t50, 152, 248, 53, 134, 78, 56, 131, 62, 196, 58, 120, 180,\n\t\t38, 31, 90, 233, 207, 143, 148, 150, 221, 196, 50, 119, 41,\n\t\t139, 157, 245, 109, 86, 29, 49, 73, 167, 18, 197, 250, 13,\n\t\t36, 201, 50, 230, 52, 104, 34, 75, 74, 83, 101, 33, 32, 109,\n\t\t221, 139, 249, 42, 117, 194, 6, 69, 194, 105, 207, 208, 63,\n\t\t1, 87, 66, 217, 117, 186, 112, 31, 194, 0, 147, 24, 32, 169,\n\t\t176, 100, 141, 163, 17, 62, 17, 167, 104, 116, 87, 9, 153,\n\t\t208, 142, 4, 41, 85, 137, 153, 116, 63, 26, 156, 97, 160,\n\t\t101, 107, 9, 169, 202, 81, 27, 223, 60, 126, 30, 103, 160,\n\t\t40, 240, 203, 5, 171, 181, 105, 182, 172, 83, 104, 50, 174,\n\t\t102, 76, 117, 132, 252, 118, 48, 215, 210, 229, 217, 85, 224,\n\t\t45, 151, 164, 96, 62, 222, 224, 42, 103, 153, 172, 105, 151,\n\t\t51, 229, 1, 185, 148, 18, 243, 217, 251, 150, 99, 232, 172,\n\t\t72, 180, 28, 217, 157, 31, 51, 215, 210, 214, 54, 234, 56,\n\t\t20, 251, 5, 180, 38, 138, 183, 186, 139, 97, 216, 248, 251,\n\t\t49, 56, 124, 73, 79, 19, 227, 74, 231, 62, 16, 72, 84, 190,\n\t\t235, 226, 140, 81, 169, 248, 29, 5, 17, 53, 214, 131, 20,\n\t\t52, 75, 212, 82, 130, 234, 205, 170, 26, 197, 92, 2, 65, 188,\n\t\t185, 48, 150, 66, 186, 198, 77, 106, 137, 169, 253, 245, 86,\n\t\t94, 115, 191, 248, 227, 128, 111, 24, 139, 233, 244, 146,\n\t\t252, 175, 220, 214, 202, 172, 141, 186, 123, 242, 232, 29,\n\t\t10, 151, 3, 12, 22, 149, 166, 90, 122, 102, 72, 167, 98, 233,\n\t\t5, 165, 189, 54, 91, 162, 10, 28, 81, 17, 255, 137, 225, 251,\n\t\t1, 132, 81, 26, 81, 212, 215, 137, 50, 84, 164, 163, 134,\n\t\t61, 53, 27, 54, 165, 148, 44, 76, 76, 26, 89, 220, 99, 36,\n\t\t207, 119, 2, 27, 164, 120, 233, 187, 27, 111, 162, 32, 38,\n\t\t23, 251, 96, 50, 161, 18, 70, 33, 84, 118, 145, 79, 151, 141,\n\t\t148, 123, 195, 18, 109, 192, 65, 11, 239, 90, 148, 39, 83,\n\t\t37, 167, 37, 48, 82, 15, 61, 209, 106, 208, 70, 237, 75, 98,\n\t\t177, 194, 104, 1, 0, 89, 190, 236, 214, 134, 184, 7, 255,\n\t\t148, 234, 10, 248, 76, 67, 49, 210, 80, 132, 178, 148, 6,\n\t\t13, 82, 40, 75, 41, 123, 30, 179, 250, 225, 138, 233, 76,\n\t\t138, 90, 132, 104, 118, 223, 187, 117, 189, 158, 220, 31,\n\t\t220, 230, 182, 116, 39, 27, 162, 242, 9, 205, 94, 166, 108,\n\t\t168, 224, 59, 105, 200, 113, 2, 168, 215, 240, 203, 145, 166,\n\t\t42, 229, 169, 199, 94, 62, 219, 216, 138, 29, 104, 35, 204,\n\t\t59, 229, 25, 15, 90, 76, 200, 122, 61, 138, 51, 95, 79, 134,\n\t\t57, 70, 47, 82, 173, 178, 67, 136, 150, 172, 76, 147, 156,\n\t\t234, 180, 182, 192, 199, 174, 195, 157, 52, 238, 217, 92,\n\t\t175, 57, 214, 165, 106, 144, 76, 137, 222, 245, 16, 72, 207,\n\t\t47, 221, 16, 21, 97, 198, 109, 200, 115, 250, 58, 65, 213,\n\t\t181, 248, 10, 109, 9, 223, 251, 243, 35, 85, 242, 224, 149,\n\t\t226, 226, 254, 33, 136, 37, 224, 171, 199, 91, 43, 136, 98,\n\t\t114, 63, 183, 51, 104, 136, 102, 89, 67, 188, 241, 64, 120,\n\t\t242, 251, 32, 163, 31, 75, 136, 20, 17, 168, 75, 218, 202,\n\t\t226, 100, 48, 70, 21, 33, 64, 55, 91, 179, 121, 144, 52, 90,\n\t\t90, 90, 43, 137, 17, 186, 105, 62, 121, 151, 67, 12, 158,\n\t\t204, 44, 224, 242, 242, 17, 34, 139, 28, 137, 115, 165, 66,\n\t\t116, 35, 22, 90, 235, 130, 248, 22, 214, 106, 199, 249, 214,\n\t\t53, 16, 228, 227, 86, 210, 0, 29, 133, 140, 93, 241, 51, 43,\n\t\t180, 16, 168, 42, 151, 100, 105, 180, 156, 153, 216, 15, 244,\n\t\t112, 230, 117, 96, 67, 78, 143, 12, 87, 82, 247, 228, 12,\n\t\t141, 174, 245, 26, 150, 210, 89, 201, 89, 192, 54, 34, 67,\n\t\t143, 134, 216, 8, 230, 169, 174, 119, 10, 174, 144, 21, 72,\n\t\t98, 125, 80, 186, 120, 8, 73, 226, 20, 105, 25, 189, 86, 184,\n\t\t203, 106, 150, 177, 10, 11, 82, 162, 165, 236, 34, 17, 30,\n\t\t186, 141, 72, 254, 9, 231, 150, 38, 138, 3, 39, 71, 36, 29,\n\t\t188, 233, 89, 148, 35, 239, 122, 138, 62, 81, 250, 59, 233,\n\t\t209, 235, 181, 125, 237, 4, 50, 200, 88, 106, 178, 47, 223,\n\t\t73, 37, 182, 190, 12, 6, 111, 95, 139, 238, 210, 2, 200, 134,\n\t\t14, 133, 23, 253, 117, 176, 178, 54, 186, 244, 158, 101, 208,\n\t\t63, 63, 234, 90, 69, 40, 69, 177, 63, 96, 244, 205, 13, 146,\n\t\t125, 91, 210, 226, 216, 162, 237, 27, 93, 138, 65, 91, 32,\n\t\t0, 162, 203, 80, 48, 151, 158, 36, 128, 131, 205, 160, 112,\n\t\t218, 41, 85, 199, 197, 22, 50, 169, 185, 156, 179, 219, 157,\n\t\t172, 202, 195, 141, 152, 58, 169, 43, 230, 35, 148, 117, 205,\n\t\t133, 28, 216, 144, 96, 116, 170, 37, 74, 56, 58, 238, 194,\n\t\t26, 107, 199, 134, 3, 87, 108, 81, 223, 16, 146, 141, 52,\n\t\t28, 14, 13, 41, 102, 17, 189, 107, 73, 231, 176, 172, 110,\n\t\t239, 122, 89, 250, 250, 26, 74, 153, 115, 130, 92, 24, 53,\n\t\t142, 35, 28, 105, 162, 196, 4, 158, 39, 17, 79, 17, 121, 56,\n\t\t198, 75, 230, 233, 123, 209, 110, 48, 173, 20, 159, 2, 148,\n\t\t123, 92, 229, 140, 126, 16, 7, 135, 1, 184, 151, 99, 24, 52,\n\t\t32, 24, 55, 9, 164, 184, 229, 37, 208, 66, 89, 150, 213, 234,\n\t\t149, 148, 59, 85, 124, 86, 30, 204, 154, 142, 193, 146, 27,\n\t\t224, 172, 27, 44, 92, 196, 226, 0, 112, 61, 77, 216, 130,\n\t\t246, 55, 149, 103, 198, 106, 163, 152, 92, 54, 216, 242, 128,\n\t\t241, 81, 216, 202, 166, 196, 105, 26, 125, 165, 73, 128, 193,\n\t\t165, 88, 67, 227, 197, 54, 21, 238, 199, 190, 244, 60, 59,\n\t\t180, 45, 165, 172, 169, 214, 92, 51, 43, 239, 126, 144, 165,\n\t\t68, 58, 102, 37, 240, 116, 211, 49, 89, 41, 217, 66, 168,\n\t\t233, 221, 49, 244, 154, 222, 65, 143, 225, 233, 190, 150,\n\t\t249, 68, 206, 38, 237, 249, 224, 124, 232, 165, 188, 28, 201,\n\t\t161, 141, 70, 32, 224, 174, 225, 157, 146, 228, 21, 203, 106,\n\t\t178, 102, 15, 157, 29, 93, 233, 209, 39, 154, 205, 189, 215,\n\t\t70, 221, 211, 137, 39, 81, 170, 241, 27, 217, 195, 9, 150,\n\t\t110, 153, 8, 152, 138, 254, 128, 40, 39, 10, 27, 178, 71,\n\t\t161, 235, 92, 19, 113, 181, 108, 112, 41, 47, 153, 28, 134,\n\t\t35, 109, 56, 186, 156, 114, 105, 148, 36, 94, 59, 118, 103,\n\t\t114, 153, 18, 165, 215, 218, 234, 155, 128, 40, 38, 18, 216,\n\t\t75, 71, 128, 38, 149, 114, 96, 188, 131, 216, 88, 102, 164,\n\t\t22, 104, 185, 43, 46, 37, 50, 78, 67, 232, 129, 249, 142,\n\t\t100, 232, 78, 13, 59, 27, 141, 40, 74, 16, 248, 43, 80, 129,\n\t\t34, 37, 208, 207, 143, 60, 146, 11, 71, 204, 107, 150, 9,\n\t\t204, 192, 94, 36, 95, 200, 182, 80, 153, 179, 70, 95, 76,\n\t\t153, 130, 238, 234, 38, 160, 78, 20, 107, 10, 164, 100, 5,\n\t\t7, 36, 35, 235, 166, 254, 96, 239, 47, 147, 65, 10, 197, 66,\n\t\t149, 21, 17, 224, 51, 114, 63, 155, 251, 131, 135, 104, 116,\n\t\t189, 141, 190, 244, 136, 64, 125, 93, 92, 12, 173, 181, 181,\n\t\t70, 180, 37, 154, 100, 127, 122, 23, 216, 156, 241, 166, 46,\n\t\t146, 192, 109, 61, 68, 250, 164, 88, 97, 83, 5, 114, 119,\n\t\t206, 170, 14, 151, 240, 174, 7, 41, 113, 167, 249, 250, 204,\n\t\t161, 44, 175, 170, 70, 50, 183, 57, 115, 101, 172, 133, 142,\n\t\t188, 41, 98, 27, 123, 71, 115, 155, 75, 27, 146, 143, 237,\n\t\t216, 216, 154, 72, 46, 38, 154, 67, 204, 104, 70, 78, 220,\n\t\t172, 53, 117, 97, 56, 162, 147, 104, 198, 132, 59, 24, 190,\n\t\t58, 138, 244, 45, 252, 68, 194, 59, 170, 145, 163, 58, 37,\n\t\t250, 114, 236, 190, 59, 214, 91, 53, 4, 131, 28, 15, 240,\n\t\t5, 156, 106, 240, 10, 48, 62, 98, 188, 75, 77, 162, 202, 15,\n\t\t23, 122, 166, 170, 140, 200, 168, 205, 160, 51, 57, 193, 68,\n\t\t29, 47, 102, 233, 25, 144, 112, 131, 60, 149, 181, 186, 233,\n\t\t224, 28, 111, 186, 122, 114, 177, 190, 112, 12, 84, 105, 63,\n\t\t143, 58, 203, 185, 171, 161, 74, 70, 82, 182, 144, 12, 169,\n\t\t149, 226, 226, 134, 86, 191, 182, 37, 116, 193, 14, 145, 25,\n\t\t92, 242, 196, 41, 176, 198, 11, 25, 23, 201, 101, 46, 80,\n\t\t89, 34, 174, 151, 66, 148, 156, 12, 27, 138, 35, 107, 205,\n\t\t24, 203, 12, 63, 252, 26, 223, 101, 180, 165, 164, 213, 16,\n\t\t19, 59, 24, 106, 33, 248, 136, 84, 123, 32, 169, 224, 205,\n\t\t133, 9, 136, 16, 232, 25, 72, 61, 66, 222, 60, 26, 71, 218,\n\t\t170, 174, 41, 36, 234, 168, 148, 222, 79, 243, 198, 201, 141,\n\t\t117, 146, 217, 151, 162, 224, 216, 128, 178, 186, 228, 162,\n\t\t150, 99, 169, 110, 69, 114, 104, 67, 46, 178, 42, 200, 66,\n\t\t26, 92, 149, 186, 33, 87, 188, 39, 35, 33, 9, 84, 186, 60,\n\t\t182, 194, 252, 245, 82, 149, 173, 98, 130, 147, 78, 165, 253,\n\t\t11, 28, 43, 155, 130, 174, 233, 70, 241, 19, 64, 239, 212,\n\t\t100, 19, 43, 223, 199, 243, 224, 57, 214, 62, 85, 171, 31,\n\t\t50, 66, 179, 34, 160, 195, 153, 250, 218, 41, 61, 85, 179,\n\t\t81, 83, 113, 109, 13, 45, 130, 61, 235, 157, 185, 33, 142,\n\t\t212, 93, 29, 157, 22, 233, 230, 190, 78, 173, 155, 243, 252,\n\t\t34, 134, 248, 137, 66, 179, 180, 138, 24, 98, 204, 174, 29,\n\t\t145, 40, 85, 183, 54, 209, 56, 42, 153, 113, 158, 146, 46,\n\t\t199, 232, 143, 4, 204, 229, 67, 101, 174, 88, 203, 150, 230,\n\t\t47, 154, 3, 51, 94, 81, 77, 159, 103, 96, 7, 90, 176, 18,\n\t\t146, 79, 37, 174, 19, 100, 50, 136, 118, 161, 160, 41, 237,\n\t\t128, 43, 245, 140, 226, 72, 208, 186, 94, 29, 106, 144, 117,\n\t\t29, 253, 43, 7, 164, 134, 90, 24, 172, 48, 10, 55, 226, 21,\n\t\t190, 145, 206, 121, 161, 188, 95, 226, 161, 42, 207, 150,\n\t\t8, 162, 14, 183, 6, 84, 210, 4, 83, 55, 2, 238, 21, 202, 156,\n\t\t23, 193, 196, 54, 228, 75, 126, 77, 131, 95, 210, 11, 232,\n\t\t139, 170, 69, 186, 210, 188, 42, 208, 44, 209, 159, 31, 113,\n\t\t9, 211, 35, 166, 224, 232, 245, 2, 28, 253, 34, 40, 181, 140,\n\t\t80, 66, 82, 226, 122, 37, 140, 127, 89, 243, 96, 243, 203,\n\t\t18, 246, 9, 89, 91, 32, 212, 166, 85, 122, 82, 94, 28, 135,\n\t\t229, 101, 249, 0, 57, 25, 128, 0, 84, 60, 200, 46, 57, 105,\n\t\t88, 116, 136, 216, 108, 91, 139, 171, 5, 23, 213, 241, 99,\n\t\t56, 10, 120, 63, 213, 97, 195, 187, 234, 168, 249, 141, 252,\n\t\t245, 187, 141, 124, 82, 116, 94, 192, 157, 56, 203, 208, 52,\n\t\t120, 61, 9, 126, 112, 111, 152, 7, 254, 216, 217, 80, 44,\n\t\t188, 160, 62, 13, 213, 78, 167, 230, 138, 239, 136, 190, 210,\n\t\t234, 155, 79, 90, 228, 131, 208, 227, 224, 19, 152, 72, 247,\n\t\t216, 81, 234, 49, 33, 92, 121, 126, 148, 86, 143, 84, 251,\n\t\t227, 76, 5, 9, 171, 5, 236, 202, 203, 214, 225, 255, 175,\n\t\t103, 238, 126, 242, 143, 148, 107, 114, 232, 25, 121, 205,\n\t\t73, 250, 114, 250, 149, 65, 102, 58, 255, 119, 93, 87, 201,\n\t\t69, 185, 3, 129, 134, 238, 72, 37, 95, 75, 196, 228, 236,\n\t\t214, 170, 165, 105, 128, 234, 149, 193, 242, 168, 168, 230,\n\t\t24, 159, 64, 205, 12, 140, 21, 34, 139, 126, 130, 236, 236,\n\t\t210, 18, 153, 147, 74, 214, 108, 176, 62, 150, 69, 145, 218,\n\t\t174, 234, 74, 12, 51, 98, 192, 5, 167, 68, 12, 85, 109, 46,\n\t\t244, 11, 184, 8, 183, 233, 201, 83, 43, 218, 251, 21, 75,\n\t\t35, 148, 151, 216, 186, 75, 220, 81, 112, 102, 137, 192, 232,\n\t\t108, 155, 104, 31, 194, 243, 203, 82, 105, 170, 21, 107, 145,\n\t\t228, 12, 131, 1, 118, 34, 196, 59, 134, 173, 126, 133, 125,\n\t\t96, 182, 26, 109, 89, 44, 52, 205, 236, 242, 50, 170, 163,\n\t\t142, 31, 61, 84, 84, 13, 20, 237, 120, 238, 142, 103, 152,\n\t\t168, 26, 134, 19, 223, 23, 127, 102, 163, 184, 29, 196, 160,\n\t\t168, 26, 195, 4, 131, 92, 109, 173, 194, 2, 220, 172, 58,\n\t\t25, 187, 81, 105, 4, 36, 10, 12, 140, 79, 246, 5, 206, 168,\n\t\t130, 153, 255, 22, 75, 158, 99, 148, 7, 7, 91, 151, 131, 171,\n\t\t80, 3, 138, 84, 6, 144, 34, 16, 40, 13, 173, 160, 138, 160,\n\t\t120, 38, 218, 224, 164, 84, 114, 37, 75, 167, 37, 172, 65,\n\t\t89, 131, 142, 50, 140, 163, 201, 20, 145, 64, 9, 45, 131,\n\t\t162, 2, 20, 39, 104, 179, 106, 99, 194, 71, 227, 53, 9, 230,\n\t\t240, 83, 195, 46, 222, 202, 5, 13, 200, 28, 143, 131, 227,\n\t\t237, 69, 162, 120, 132, 125, 212, 126, 214, 235, 95, 86, 161,\n\t\t219, 25, 1, 211, 208, 21, 82, 10, 227, 164, 110, 3, 134, 251,\n\t\t72, 192, 92, 8, 92, 204, 0, 156, 180, 9, 108, 2, 43, 232,\n\t\t215, 38, 105, 145, 40, 3, 21, 23, 139, 66, 4, 169, 134, 48,\n\t\t79, 28, 224, 243, 60, 37, 209, 239, 232, 220, 101, 182, 190,\n\t\t96, 92, 37, 98, 236, 42, 218, 60, 10, 215, 187, 81, 241, 89,\n\t\t76, 56, 91, 116, 36, 91, 60, 112, 143, 180, 124, 154, 60,\n\t\t32, 66, 49, 229, 12, 113, 120, 111, 105, 2, 42, 165, 48, 131,\n\t\t184, 159, 159, 31, 49, 71, 151, 143, 152, 163, 97, 201, 96,\n\t\t213, 54, 254, 4, 44, 97, 156, 28, 200, 126, 39, 197, 3, 40,\n\t\t188, 200, 241, 210, 15, 96, 14, 32, 244, 200, 12, 156, 65,\n\t\t13, 69, 141, 188, 146, 88, 132, 145, 129, 18, 184, 66, 131,\n\t\t58, 193, 89, 28, 1, 116, 215, 176, 161, 125, 38, 210, 87,\n\t\t99, 118, 220, 4, 232, 220, 106, 218, 182, 216, 82, 8, 189,\n\t\t23, 177, 91, 95, 5, 13, 165, 65, 170, 41, 152, 205, 61, 172,\n\t\t30, 228, 240, 118, 4, 26, 128, 71, 150, 217, 110, 226, 200,\n\t\t138, 47, 10, 175, 134, 92, 236, 20, 29, 106, 187, 67, 28,\n\t\t51, 14, 71, 36, 127, 248, 209, 89, 167, 153, 254, 216, 130,\n\t\t165, 34, 111, 45, 98, 42, 242, 54, 160, 8, 34, 152, 144, 121,\n\t\t89, 52, 108, 145, 150, 4, 148, 168, 57, 29, 69, 109, 99, 25,\n\t\t53, 106, 168, 169, 42, 169, 53, 30, 105, 227, 216, 170, 102,\n\t\t85, 156, 150, 220, 69, 45, 118, 61, 131, 159, 47, 164, 107,\n\t\t42, 79, 172, 145, 225, 194, 120, 73, 113, 154, 138, 236, 187,\n\t\t73, 141, 250, 46, 99, 148, 192, 153, 112, 26, 13, 56, 25,\n\t\t231, 209, 28, 192, 234, 82, 182, 112, 214, 153, 136, 230,\n\t\t62, 111, 195, 71, 179, 134, 78, 38, 49, 10, 138, 26, 248,\n\t\t55, 87, 157, 32, 171, 142, 20, 29, 20, 52, 93, 243, 155, 163,\n\t\t116, 86, 91, 244, 17, 102, 76, 27, 108, 150, 48, 51, 32, 70,\n\t\t165, 51, 7, 208, 40, 252, 39, 1, 218, 90, 212, 219, 178, 137,\n\t\t120, 13, 161, 151, 205, 177, 142, 36, 154, 54, 181, 142, 44,\n\t\t43, 44, 165, 178, 187, 73, 235, 162, 86, 205, 186, 168, 90,\n\t\t216, 6, 242, 39, 193, 237, 169, 221, 232, 49, 94, 207, 31,\n\t\t4, 13, 55, 131, 99, 187, 137, 10, 69, 200, 233, 237, 11, 188,\n\t\t41, 6, 184, 203, 69, 61, 34, 10, 175, 137, 56, 171, 206, 145,\n\t\t168, 129, 51, 86, 204, 72, 233, 241, 178, 44, 244, 247, 16,\n\t\t118, 84, 80, 36, 121, 21, 133, 64, 76, 166, 221, 110, 49,\n\t\t67, 178, 123, 188, 175, 246, 185, 103, 54, 173, 73, 180, 23,\n\t\t181, 93, 154, 41, 140, 134, 225, 61, 196, 4, 75, 57, 184,\n\t\t240, 56, 67, 43, 46, 205, 79, 31, 222, 94, 132, 187, 56, 134,\n\t\t173, 229, 226, 166, 58, 226, 5, 242, 235, 170, 168, 176, 78,\n\t\t231, 103, 75, 118, 63, 36, 13, 232, 201, 15, 227, 15, 16,\n\t\t50, 29, 159, 61, 251, 38, 198, 84, 48, 155, 24, 123, 123,\n\t\t225, 232, 202, 163, 2, 228, 102, 91, 125, 219, 75, 232, 23,\n\t\t67, 224, 216, 178, 80, 128, 207, 83, 164, 136, 48, 109, 228,\n\t\t137, 188, 10, 203, 224, 135, 102, 58, 145, 218, 129, 182,\n\t\t70, 28, 82, 171, 44, 68, 113, 17, 144, 172, 105, 156, 31,\n\t\t212, 149, 112, 26, 131, 207, 88, 186, 167, 177, 235, 19, 0,\n\t\t152, 116, 91, 246, 189, 97, 132, 193, 142, 69, 146, 213, 206,\n\t\t241, 193, 50, 86, 77, 107, 48, 159, 177, 189, 199, 58, 61,\n\t\t55, 152, 168, 114, 180, 160, 154, 192, 132, 91, 128, 254,\n\t\t92, 207, 54, 55, 202, 30, 27, 3, 58, 233, 49, 7, 247, 180,\n\t\t26, 51, 196, 13, 101, 81, 243, 143, 10, 164, 20, 10, 16, 96,\n\t\t22, 204, 115, 63, 95, 89, 28, 211, 86, 249, 151, 221, 158,\n\t\t78, 231, 95, 236, 185, 93, 228, 203, 156, 86, 19, 220, 156,\n\t\t35, 170, 73, 155, 83, 10, 2, 156, 135, 114, 197, 122, 163,\n\t\t75, 191, 225, 178, 83, 4, 187, 152, 158, 41, 66, 249, 42,\n\t\t25, 30, 86, 188, 184, 205, 30, 75, 207, 216, 182, 5, 10, 153,\n\t\t253, 234, 245, 160, 192, 108, 84, 139, 207, 216, 149, 249,\n\t\t149, 252, 70, 45, 197, 197, 17, 3, 125, 205, 157, 222, 73,\n\t\t80, 36, 69, 228, 76, 213, 117, 246, 101, 137, 134, 200, 8,\n\t\t80, 210, 37, 40, 144, 215, 101, 38, 91, 161, 111, 68, 161,\n\t\t112, 145, 20, 8, 125, 23, 213, 120, 208, 202, 40, 111, 2,\n\t\t76, 247, 178, 61, 8, 132, 76, 123, 144, 9, 148, 249, 214,\n\t\t37, 89, 138, 64, 106, 7, 0, 13, 206, 134, 210, 122, 227, 4,\n\t\t168, 142, 56, 244, 154, 128, 127, 139, 72, 197, 164, 149,\n\t\t132, 57, 197, 80, 149, 84, 154, 192, 184, 157, 175, 18, 90,\n\t\t9, 7, 92, 49, 24, 124, 208, 27, 61, 212, 188, 50, 99, 16,\n\t\t117, 219, 114, 0, 110, 41, 224, 20, 138, 59, 97, 38, 38, 149,\n\t\t162, 6, 105, 138, 166, 73, 203, 43, 17, 19, 177, 9, 62, 225,\n\t\t128, 82, 183, 135, 22, 112, 65, 151, 171, 74, 60, 78, 224,\n\t\t138, 102, 147, 68, 91, 6, 50, 240, 55, 243, 146, 195, 105,\n\t\t23, 160, 117, 155, 147, 195, 198, 189, 81, 27, 251, 227, 179,\n\t\t87, 39, 154, 102, 201, 51, 231, 42, 60, 219, 83, 85, 58, 211,\n\t\t57, 205, 53, 128, 156, 9, 25, 146, 114, 64, 75, 64, 205, 228,\n\t\t3, 231, 149, 76, 115, 160, 41, 82, 115, 112, 58, 18, 55, 92,\n\t\t150, 120, 2, 98, 79, 21, 48, 4, 108, 200, 92, 180, 234, 30,\n\t\t36, 169, 197, 98, 69, 124, 33, 170, 108, 217, 168, 85, 44,\n\t\t106, 25, 90, 240, 32, 74, 51, 118, 0, 179, 77, 213, 192, 185,\n\t\t101, 164, 197, 81, 252, 171, 20, 156, 146, 57, 248, 252, 40,\n\t\t121, 201, 243, 234, 218, 166, 86, 66, 127, 201, 64, 46, 212,\n\t\t25, 218, 182, 106, 96, 204, 124, 69, 111, 149, 117, 29, 64,\n\t\t164, 176, 82, 195, 110, 38, 146, 8, 128, 162, 155, 244, 26,\n\t\t49, 173, 137, 57, 26, 203, 146, 166, 147, 170, 85, 74, 25,\n\t\t155, 72, 34, 219, 37, 55, 102, 109, 180, 213, 143, 111, 108,\n\t\t212, 163, 155, 200, 219, 140, 100, 19, 1, 38, 59, 139, 42,\n\t\t23, 115, 115, 167, 161, 221, 44, 195, 72, 2, 230, 7, 231,\n\t\t174, 235, 130, 179, 70, 37, 207, 48, 111, 52, 241, 50, 166,\n\t\t111, 164, 244, 0, 130, 0, 229, 21, 134, 226, 14, 111, 4, 23,\n\t\t119, 202, 181, 108, 218, 76, 85, 135, 116, 85, 218, 16, 51,\n\t\t248, 50, 109, 60, 173, 43, 132, 162, 87, 223, 84, 114, 245,\n\t\t37, 0, 126, 67, 63, 212, 202, 71, 32, 110, 69, 41, 208, 156,\n\t\t133, 245, 13, 2, 35, 124, 42, 194, 157, 162, 73, 23, 19, 2,\n\t\t178, 68, 163, 224, 218, 158, 177, 47, 102, 234, 45, 151, 231,\n\t\t238, 157, 89, 54, 13, 150, 53, 179, 53, 38, 55, 106, 244,\n\t\t162, 62, 63, 189, 121, 82, 199, 141, 97, 61, 104, 64, 155,\n\t\t187, 172, 89, 106, 44, 136, 184, 213, 159, 173, 136, 51, 176,\n\t\t58, 27, 160, 74, 212, 42, 207, 188, 126, 152, 28, 74, 72,\n\t\t218, 168, 106, 170, 208, 243, 134, 42, 120, 0, 188, 133, 110,\n\t\t2, 169, 166, 3, 64, 43, 247, 255, 29, 28, 249, 159, 215, 239,\n\t\t127, 124, 255, 215, 63, 63, 197, 94, 190, 127, 170, 220, 140,\n\t\t168, 223, 34, 212, 196, 35, 244, 70, 12, 97, 101, 237, 156,\n\t\t131, 103, 222, 218, 143, 7, 118, 214, 118, 172, 222, 245,\n\t\t231, 71, 168, 254, 168, 44, 219, 110, 114, 202, 90, 254, 248,\n\t\t252, 51, 46, 97, 199, 219, 180, 249, 229, 43, 255, 127, 127,\n\t\t251, 227, 241, 175, 207, 112, 12, 255, 249, 254, 194, 57,\n\t\t35, 88, 148, 122, 165, 66, 187, 60, 81, 195, 225, 143, 194,\n\t\t209, 88, 192, 227, 160, 196, 104, 109, 60, 206, 20, 27, 87,\n\t\t254, 67, 7, 32, 111, 21, 95, 98, 255, 94, 215, 121, 46, 204,\n\t\t211, 238, 202, 191, 70, 133, 137, 90, 123, 133, 211, 63, 31,\n\t\t124, 178, 63, 112, 246, 254, 108, 251, 231, 154, 98, 123,\n\t\t126, 116, 169, 13, 93, 215, 196, 199, 25, 82, 188, 174, 246,\n\t\t46, 183, 142, 169, 153, 226, 149, 106, 111, 250, 24, 132,\n\t\t147, 33, 186, 97, 168, 143, 16, 234, 245, 28, 245, 121, 249,\n\t\t136, 185, 187, 113, 20, 86, 140, 174, 129, 131, 213, 4, 126,\n\t\t95, 184, 184, 208, 83, 61, 244, 25, 70, 32, 6, 46, 217, 39,\n\t\t72, 174, 53, 182, 195, 215, 67, 231, 246, 253, 159, 223, 127,\n\t\t253, 243, 183, 79, 160, 113, 73, 201, 222, 114, 44, 174, 82,\n\t\t133, 35, 210, 111, 189, 174, 71, 203, 246, 183, 32, 57, 111,\n\t\t60, 206, 236, 201, 29, 48, 55, 214, 11, 114, 18, 188, 159,\n\t\t169, 27, 87, 189, 228, 180, 103, 232, 89, 251, 165, 120, 134,\n\t\t61, 194, 104, 52, 142, 183, 147, 240, 247, 42, 39, 175, 1,\n\t\t156, 93, 90, 195, 182, 60, 194, 24, 87, 2, 34, 18, 0, 178,\n\t\t113, 149, 157, 231, 229, 35, 197, 165, 161, 210, 105, 114,\n\t\t240, 202, 148, 206, 15, 92, 113, 165, 221, 167, 156, 25, 90,\n\t\t116, 97, 157, 42, 132, 14, 122, 42, 237, 191, 156, 26, 75,\n\t\t112, 253, 223, 220, 245, 171, 254, 250, 239, 223, 254, 245,\n\t\t231, 191, 254, 227, 251, 121, 255, 223, 255, 250, 246, 199,\n\t\t167, 249, 147, 130, 49, 244, 81, 177, 114, 46, 110, 220, 6,\n\t\t18, 179, 10, 219, 92, 183, 115, 63, 178, 134, 213, 35, 248,\n\t\t238, 8, 92, 163, 255, 165, 136, 208, 250, 249, 139, 136, 208,\n\t\t143, 3, 66, 235, 135, 159, 5, 132, 242, 146, 182, 35, 16,\n\t\t162, 135, 151, 137, 77, 83, 25, 42, 134, 64, 188, 92, 52,\n\t\t124, 130, 156, 181, 147, 179, 180, 1, 202, 5, 21, 85, 92,\n\t\t198, 132, 232, 73, 43, 142, 214, 52, 228, 232, 226, 15, 247,\n\t\t238, 68, 231, 206, 129, 58, 58, 124, 138, 142, 104, 204, 208,\n\t\t74, 39, 214, 247, 154, 126, 168, 38, 250, 76, 115, 234, 114,\n\t\t37, 49, 118, 187, 98, 216, 190, 29, 185, 179, 208, 169, 28,\n\t\t167, 120, 253, 141, 224, 0, 188, 248, 18, 121, 245, 225, 94,\n\t\t145, 111, 176, 199, 3, 161, 11, 171, 174, 38, 224, 225, 107,\n\t\t126, 180, 123, 199, 71, 239, 77, 49, 241, 197, 168, 231, 167,\n\t\t135, 138, 48, 147, 6, 102, 85, 111, 42, 155, 120, 167, 245,\n\t\t83, 123, 43, 236, 223, 34, 251, 95, 163, 188, 222, 126, 249,\n\t\t253, 63, 126, 251, 246, 199, 63, 222, 7, 117, 254, 7, 6, 181,\n\t\t95, 82, 232, 154, 115, 127, 156, 153, 2, 147, 185, 63, 50,\n\t\t197, 19, 9, 128, 40, 46, 27, 240, 209, 185, 29, 175, 103,\n\t\t172, 125, 73, 194, 7, 54, 174, 242, 139, 158, 209, 5, 109,\n\t\t76, 254, 226, 247, 175, 225, 38, 127, 249, 253, 19, 64, 66,\n\t\t137, 63, 47, 147, 94, 243, 189, 30, 113, 120, 151, 31, 103,\n\t\t244, 75, 196, 7, 142, 255, 170, 183, 200, 66, 51, 60, 160,\n\t\t95, 255, 46, 209, 200, 45, 173, 202, 165, 215, 72, 134, 121,\n\t\t26, 100, 53, 98, 113, 102, 207, 81, 23, 190, 104, 63, 74,\n\t\t73, 190, 157, 126, 197, 3, 130, 70, 170, 205, 25, 171, 225,\n\t\t147, 253, 157, 158, 31, 161, 240, 172, 243, 132, 74, 216,\n\t\t160, 19, 22, 54, 226, 196, 6, 92, 219, 69, 114, 55, 200, 64,\n\t\t15, 159, 190, 93, 13, 0, 187, 63, 79, 48, 249, 246, 136, 100,\n\t\t223, 97, 126, 1, 248, 125, 148, 143, 15, 16, 166, 236, 183,\n\t\t126, 132, 24, 41, 3, 204, 91, 218, 40, 190, 183, 81, 189,\n\t\t22, 55, 65, 155, 39, 144, 122, 188, 29, 86, 212, 166, 237,\n\t\t72, 211, 183, 191, 252, 251, 215, 127, 237, 58, 74, 89, 167,\n\t\t99, 214, 105, 47, 151, 237, 189, 214, 152, 103, 80, 205, 3,\n\t\t107, 123, 111, 190, 104, 254, 243, 195, 62, 19, 31, 211, 118,\n\t\t33, 72, 42, 232, 154, 199, 41, 122, 7, 177, 104, 47, 105,\n\t\t9, 9, 162, 0, 93, 142, 137, 141, 199, 216, 152, 65, 226, 139,\n\t\t11, 23, 128, 64, 8, 116, 84, 171, 230, 121, 126, 212, 196,\n\t\t172, 162, 195, 141, 89, 196, 16, 32, 153, 86, 85, 32, 22,\n\t\t152, 129, 176, 192, 134, 152, 109, 90, 85, 174, 120, 249,\n\t\t64, 122, 98, 24, 15, 250, 151, 11, 200, 65, 239, 25, 196,\n\t\t42, 147, 91, 41, 36, 95, 54, 55, 224, 43, 171, 26, 68, 54,\n\t\t107, 133, 101, 47, 50, 200, 178, 128, 232, 50, 51, 96, 29,\n\t\t192, 75, 15, 142, 24, 253, 96, 57, 32, 6, 192, 67, 96, 59,\n\t\t215, 218, 167, 147, 141, 206, 4, 254, 208, 139, 237, 173,\n\t\t128, 232, 74, 42, 147, 50, 252, 172, 18, 137, 45, 128, 245,\n\t\t1, 99, 126, 148, 2, 74, 210, 62, 165, 114, 164, 48, 129, 132,\n\t\t48, 62, 206, 100, 36, 201, 22, 182, 70, 229, 85, 16, 175,\n\t\t74, 4, 226, 142, 144, 90, 83, 158, 213, 101, 174, 21, 153,\n\t\t30, 104, 232, 241, 112, 46, 109, 53, 56, 25, 108, 46, 234,\n\t\t107, 48, 192, 72, 58, 161, 108, 192, 252, 178, 207, 75, 138,\n\t\t248, 64, 224, 218, 72, 26, 139, 95, 95, 90, 176, 51, 195,\n\t\t26, 204, 90, 35, 42, 246, 98, 81, 42, 90, 135, 204, 29, 51,\n\t\t204, 223, 19, 103, 172, 146, 136, 199, 212, 90, 45, 232, 29,\n\t\t46, 92, 115, 129, 241, 130, 97, 130, 207, 221, 114, 119, 21,\n\t\t162, 82, 233, 143, 154, 140, 157, 0, 159, 110, 167, 50, 52,\n\t\t74, 191, 83, 248, 96, 133, 122, 60, 171, 184, 211, 173, 144,\n\t\t132, 123, 225, 6, 146, 10, 208, 57, 72, 42, 75, 195, 152,\n\t\t217, 208, 110, 217, 115, 132, 89, 32, 227, 227, 249, 145,\n\t\t90, 37, 130, 227, 238, 226, 172, 146, 121, 229, 9, 242, 166,\n\t\t209, 56, 22, 215, 78, 119, 235, 46, 235, 143, 200, 173, 138,\n\t\t42, 246, 108, 108, 158, 148, 95, 198, 27, 77, 247, 167, 114,\n\t\t170, 123, 230, 92, 146, 4, 66, 110, 212, 34, 17, 12, 25, 149,\n\t\t143, 211, 34, 167, 103, 120, 95, 55, 54, 129, 254, 34, 139,\n\t\t182, 85, 77, 179, 91, 182, 85, 109, 188, 175, 106, 68, 17,\n\t\t220, 19, 97, 158, 0, 120, 166, 49, 230, 33, 133, 243, 124,\n\t\t38, 76, 230, 68, 138, 54, 181, 15, 33, 131, 92, 102, 66, 49,\n\t\t217, 1, 172, 55, 48, 91, 1, 135, 176, 42, 45, 94, 202, 232,\n\t\t26, 17, 140, 10, 85, 248, 126, 238, 234, 140, 42, 121, 26,\n\t\t122, 18, 174, 58, 223, 47, 163, 150, 1, 159, 193, 161, 244,\n\t\t213, 138, 247, 154, 179, 102, 212, 43, 22, 153, 90, 159, 154,\n\t\t94, 152, 117, 251, 249, 17, 99, 119, 233, 72, 141, 50, 85,\n\t\t17, 98, 222, 112, 156, 145, 9, 240, 142, 215, 60, 189, 105,\n\t\t145, 150, 153, 4, 64, 232, 23, 120, 231, 78, 168, 148, 6,\n\t\t45, 13, 79, 142, 225, 75, 119, 174, 230, 197, 202, 16, 42,\n\t\t33, 76, 35, 22, 243, 138, 67, 253, 165, 78, 245, 251, 245,\n\t\t247, 79, 42, 213, 23, 0, 222, 41, 174, 174, 162, 80, 116,\n\t\t104, 193, 37, 18, 231, 62, 57, 246, 66, 139, 46, 204, 251,\n\t\t161, 4, 87, 238, 33, 17, 228, 18, 237, 28, 251, 47, 19, 215,\n\t\t243, 65, 92, 205, 123, 124, 237, 201, 23, 243, 181, 231, 246,\n\t\t203, 147, 223, 99, 77, 192, 25, 90, 117, 141, 196, 178, 39,\n\t\t200, 18, 22, 251, 4, 209, 86, 187, 75, 247, 51, 228, 68, 232,\n\t\t86, 204, 220, 190, 255, 178, 182, 21, 41, 124, 237, 240, 113,\n\t\t190, 128, 207, 215, 163, 207, 203, 71, 12, 68, 247, 238, 11,\n\t\t37, 19, 75, 34, 20, 66, 34, 155, 200, 224, 251, 149, 250,\n\t\t114, 224, 166, 62, 120, 164, 203, 207, 148, 177, 164, 232,\n\t\t160, 149, 5, 190, 73, 218, 20, 16, 132, 62, 6, 162, 16, 60,\n\t\t204, 111, 41, 138, 28, 168, 221, 181, 43, 24, 54, 162, 34,\n\t\t199, 165, 141, 100, 146, 188, 99, 134, 235, 163, 84, 82, 113,\n\t\t203, 81, 165, 115, 43, 34, 231, 154, 255, 37, 166, 195, 101,\n\t\t110, 68, 28, 152, 44, 121, 188, 45, 153, 231, 208, 120, 144,\n\t\t192, 195, 105, 6, 110, 206, 162, 147, 37, 46, 254, 124, 126,\n\t\t196, 158, 92, 32, 246, 144, 116, 77, 68, 17, 217, 53, 230,\n\t\t129, 160, 7, 35, 87, 85, 241, 241, 137, 4, 105, 74, 93, 39,\n\t\t31, 29, 244, 128, 188, 34, 36, 65, 218, 226, 212, 203, 206,\n\t\t10, 215, 51, 181, 9, 124, 145, 38, 24, 88, 128, 234, 101,\n\t\t106, 85, 122, 210, 216, 203, 5, 116, 194, 138, 228, 53, 122,\n\t\t102, 169, 200, 147, 3, 55, 165, 117, 59, 7, 175, 72, 244,\n\t\t181, 229, 249, 81, 168, 234, 153, 7, 141, 132, 119, 182, 65,\n\t\t3, 245, 227, 231, 131, 134, 243, 140, 116, 208, 36, 44, 58,\n\t\t85, 123, 130, 159, 219, 144, 75, 167, 108, 140, 125, 9, 230,\n\t\t109, 200, 176, 228, 219, 135, 204, 229, 47, 143, 25, 233,\n\t\t253, 191, 60, 102, 38, 232, 153, 44, 165, 140, 73, 19, 255,\n\t\t222, 104, 105, 255, 14, 64, 235, 127, 255, 235, 151, 95, 239,\n\t\t243, 219, 103, 116, 217, 242, 9, 93, 182, 132, 168, 254, 87,\n\t\t198, 189, 19, 183, 177, 6, 251, 176, 161, 229, 73, 76, 120,\n\t\t137, 160, 49, 35, 145, 23, 31, 57, 134, 205, 14, 195, 60,\n\t\t28, 213, 97, 18, 228, 160, 111, 249, 56, 107, 119, 37, 246,\n\t\t164, 71, 168, 52, 33, 212, 202, 254, 205, 224, 146, 128, 25,\n\t\t105, 5, 230, 178, 106, 90, 244, 124, 140, 11, 48, 231, 25,\n\t\t18, 35, 54, 18, 99, 66, 240, 236, 108, 205, 76, 150, 147,\n\t\t197, 198, 10, 169, 184, 64, 63, 102, 62, 122, 108, 103, 92,\n\t\t238, 124, 232, 228, 139, 101, 135, 254, 144, 107, 182, 200,\n\t\t135, 89, 144, 24, 122, 159, 150, 103, 14, 56, 97, 146, 198,\n\t\t85, 205, 75, 47, 189, 7, 119, 42, 52, 42, 217, 31, 12, 241,\n\t\t12, 46, 202, 86, 233, 77, 74, 227, 205, 121, 246, 6, 82, 143,\n\t\t51, 148, 238, 184, 138, 136, 145, 36, 100, 159, 254, 220,\n\t\t233, 232, 208, 163, 251, 111, 215, 240, 164, 158, 100, 47,\n\t\t52, 113, 45, 35, 50, 161, 43, 227, 243, 35, 13, 242, 181,\n\t\t231, 232, 242, 44, 153, 209, 153, 252, 49, 148, 53, 47, 51,\n\t\t131, 137, 30, 88, 27, 221, 183, 7, 21, 98, 17, 128, 0, 1,\n\t\t109, 102, 215, 74, 103, 240, 161, 76, 30, 131, 129, 10, 166,\n\t\t253, 74, 86, 80, 112, 178, 183, 179, 62, 93, 134, 147, 25,\n\t\t13, 177, 112, 224, 146, 78, 121, 59, 3, 127, 191, 156, 5,\n\t\t127, 124, 255, 246, 143, 127, 126, 154, 2, 255, 40, 63, 47,\n\t\t255, 40, 164, 197, 100, 191, 86, 98, 48, 16, 89, 112, 55,\n\t\t67, 136, 34, 76, 174, 7, 114, 23, 205, 51, 46, 83, 240, 43,\n\t\t63, 101, 71, 146, 2, 195, 149, 175, 142, 78, 145, 135, 32,\n\t\t196, 223, 146, 161, 107, 209, 158, 47, 49, 38, 72, 33, 81,\n\t\t122, 32, 105, 14, 63, 21, 15, 189, 120, 179, 71, 105, 128,\n\t\t17, 58, 8, 221, 174, 21, 125, 244, 229, 167, 126, 210, 245,\n\t\t242, 253, 199, 158, 210, 176, 172, 143, 41, 159, 121, 120,\n\t\t228, 189, 146, 65, 38, 218, 189, 192, 37, 10, 207, 250, 36,\n\t\t83, 56, 183, 67, 88, 13, 14, 240, 175, 175, 19, 51, 246, 232,\n\t\t190, 157, 210, 81, 41, 184, 27, 174, 58, 70, 31, 82, 126,\n\t\t180, 222, 231, 216, 202, 247, 184, 22, 117, 109, 92, 207,\n\t\t192, 198, 198, 60, 37, 233, 117, 7, 0, 193, 153, 15, 32, 235,\n\t\t179, 169, 117, 188, 156, 128, 147, 174, 116, 167, 73, 2, 159,\n\t\t204, 55, 20, 25, 211, 41, 242, 126, 163, 253, 15, 188, 157,\n\t\t230, 93, 191, 189, 221, 223, 121, 57, 123, 152, 190, 92, 44,\n\t\t205, 141, 215, 215, 235, 84, 83, 245, 119, 223, 239, 71, 173,\n\t\t199, 106, 245, 255, 223, 239, 87, 252, 82, 105, 87, 247, 198,\n\t\t43, 114, 26, 30, 118, 219, 61, 70, 253, 233, 253, 242, 95,\n\t\t123, 187, 191, 213, 183, 63, 126, 189, 209, 104, 244, 217,\n\t\t235, 237, 221, 251, 127, 241, 122, 127, 183, 115, 223, 70,\n\t\t30, 191, 93, 44, 253, 229, 221, 154, 0, 90, 252, 223, 190,\n\t\t28, 172, 228, 191, 250, 114, 175, 77, 247, 149, 236, 253,\n\t\t127, 126, 0, 216, 255, 61, 255, 28, 182, 55, 182, 230, 90,\n\t\t230, 181, 123, 158, 140, 79, 11, 216, 149, 51, 182, 182, 5,\n\t\t234, 35, 113, 6, 129, 254, 158, 151, 118, 241, 19, 117, 80,\n\t\t113, 140, 109, 243, 126, 14, 205, 13, 64, 153, 0, 161, 52,\n\t\t34, 99, 165, 168, 103, 135, 181, 91, 162, 206, 146, 111, 13,\n\t\t164, 176, 5, 32, 193, 77, 98, 30, 65, 106, 113, 19, 194, 70,\n\t\t224, 42, 191, 237, 223, 85, 251, 62, 213, 115, 11, 44, 62,\n\t\t226, 60, 184, 124, 132, 17, 93, 90, 150, 106, 115, 145, 189,\n\t\t191, 135, 130, 243, 117, 113, 191, 117, 165, 132, 18, 245,\n\t\t34, 44, 13, 121, 38, 113, 64, 17, 102, 235, 90, 68, 226, 209,\n\t\t68, 62, 135, 101, 6, 28, 161, 70, 82, 106, 252, 81, 18, 179,\n\t\t124, 25, 12, 101, 225, 132, 216, 84, 230, 217, 149, 216, 15,\n\t\t238, 76, 98, 137, 243, 73, 150, 167, 181, 40, 60, 63, 146,\n\t\t175, 142, 240, 170, 147, 163, 10, 191, 53, 236, 2, 105, 186,\n\t\t188, 2, 46, 253, 162, 211, 184, 49, 229, 151, 96, 18, 195,\n\t\t101, 34, 69, 132, 170, 163, 152, 248, 134, 218, 160, 105,\n\t\t189, 231, 219, 145, 59, 72, 42, 193, 178, 70, 168, 53, 153,\n\t\t222, 149, 30, 55, 4, 241, 119, 0, 207, 54, 251, 165, 212,\n\t\t83, 57, 204, 218, 92, 239, 235, 93, 39, 143, 12, 77, 192,\n\t\t33, 30, 199, 12, 154, 25, 73, 6, 26, 224, 125, 146, 252, 138,\n\t\t1, 178, 199, 68, 128, 10, 92, 220, 223, 131, 47, 148, 186,\n\t\t38, 72, 117, 193, 141, 88, 184, 148, 245, 56, 211, 101, 6,\n\t\t215, 194, 104, 233, 136, 46, 231, 26, 7, 213, 3, 197, 66,\n\t\t85, 239, 181, 151, 114, 32, 231, 77, 0, 97, 171, 160, 71,\n\t\t198, 0, 255, 45, 197, 228, 106, 210, 230, 135, 201, 36, 161,\n\t\t6, 173, 251, 93, 27, 244, 228, 224, 74, 150, 84, 243, 86,\n\t\t227, 17, 225, 212, 123, 126, 164, 220, 15, 33, 164, 153, 37,\n\t\t105, 81, 38, 51, 249, 133, 186, 154, 120, 25, 129, 75, 55,\n\t\t62, 53, 189, 175, 201, 68, 67, 21, 77, 146, 214, 34, 206,\n\t\t74, 88, 95, 25, 168, 254, 196, 107, 73, 26, 132, 106, 150,\n\t\t65, 53, 35, 43, 158, 81, 111, 102, 86, 6, 51, 69, 120, 135,\n\t\t81, 37, 220, 235, 179, 232, 53, 242, 6, 49, 37, 114, 255,\n\t\t161, 192, 114, 4, 103, 213, 6, 19, 180, 163, 160, 9, 69, 69,\n\t\t3, 168, 77, 95, 247, 25, 199, 48, 231, 163, 128, 45, 91, 226,\n\t\t154, 10, 243, 107, 168, 202, 69, 190, 49, 123, 245, 220, 179,\n\t\t28, 168, 112, 239, 18, 82, 179, 148, 78, 103, 41, 186, 116,\n\t\t185, 182, 214, 214, 32, 242, 132, 143, 135, 234, 114, 101,\n\t\t8, 13, 224, 213, 88, 218, 79, 36, 44, 68, 113, 107, 69, 10,\n\t\t138, 211, 100, 204, 157, 192, 29, 200, 145, 227, 179, 139,\n\t\t28, 103, 32, 125, 184, 34, 4, 34, 243, 183, 129, 200, 3, 92,\n\t\t219, 175, 251, 83, 211, 231, 206, 172, 163, 42, 103, 55, 8,\n\t\t225, 25, 146, 168, 145, 96, 59, 51, 232, 12, 78, 32, 235,\n\t\t107, 170, 109, 147, 42, 39, 115, 210, 216, 1, 42, 176, 34,\n\t\t230, 81, 74, 176, 15, 133, 173, 42, 49, 116, 86, 255, 165,\n\t\t67, 178, 145, 159, 31, 177, 174, 161, 123, 140, 50, 139, 243,\n\t\t189, 112, 163, 113, 189, 254, 82, 94, 121, 12, 121, 151, 123,\n\t\t226, 94, 67, 112, 64, 26, 109, 9, 18, 201, 100, 61, 99, 169,\n\t\t46, 237, 89, 94, 117, 48, 60, 162, 168, 19, 222, 74, 142,\n\t\t201, 195, 141, 48, 18, 166, 86, 29, 99, 245, 47, 22, 19, 162,\n\t\t94, 109, 218, 217, 130, 44, 75, 169, 187, 226, 66, 255, 218,\n\t\t81, 248, 203, 247, 127, 156, 191, 255, 242, 251, 247, 63,\n\t\t206, 235, 183, 63, 63, 45, 120, 159, 76, 13, 243, 25, 214,\n\t\t236, 143, 188, 22, 151, 185, 84, 102, 209, 238, 209, 89, 29,\n\t\t116, 25, 131, 134, 198, 208, 188, 114, 159, 89, 101, 171,\n\t\t154, 222, 103, 220, 53, 168, 197, 210, 74, 5, 45, 16, 151,\n\t\t222, 178, 124, 112, 117, 92, 21, 77, 161, 68, 126, 107, 149,\n\t\t168, 250, 89, 252, 118, 1, 234, 75, 53, 146, 159, 16, 21,\n\t\t200, 104, 236, 202, 229, 156, 151, 73, 78, 251, 176, 85, 147,\n\t\t84, 65, 196, 78, 96, 186, 143, 101, 172, 89, 48, 228, 189,\n\t\t12, 28, 157, 173, 42, 113, 46, 160, 220, 240, 109, 127, 14,\n\t\t97, 53, 73, 245, 88, 230, 67, 58, 42, 18, 248, 123, 88, 207,\n\t\t21, 27, 18, 1, 102, 111, 222, 123, 205, 172, 180, 104, 50,\n\t\t27, 88, 115, 203, 46, 167, 246, 128, 157, 133, 18, 112, 212,\n\t\t59, 162, 60, 132, 34, 85, 252, 221, 67, 19, 188, 5, 67, 247,\n\t\t181, 197, 154, 137, 0, 89, 102, 249, 189, 214, 176, 174, 132,\n\t\t20, 18, 147, 10, 191, 234, 198, 94, 143, 31, 136, 51, 64,\n\t\t171, 25, 155, 226, 150, 202, 167, 173, 21, 130, 16, 254, 10,\n\t\t54, 89, 39, 160, 144, 173, 124, 61, 117, 180, 215, 92, 191,\n\t\t151, 63, 52, 93, 146, 97, 238, 209, 154, 15, 159, 69, 147,\n\t\t80, 220, 90, 80, 19, 181, 116, 60, 66, 39, 7, 225, 17, 41,\n\t\t31, 49, 96, 159, 215, 132, 38, 35, 208, 31, 3, 134, 104, 149,\n\t\t148, 12, 80, 100, 107, 12, 11, 84, 96, 98, 205, 191, 237,\n\t\t79, 105, 126, 96, 213, 166, 162, 170, 85, 87, 94, 96, 90,\n\t\t169, 39, 121, 193, 151, 104, 241, 234, 193, 228, 252, 229,\n\t\t176, 70, 198, 8, 255, 222, 87, 54, 255, 248, 254, 237, 207,\n\t\t95, 30, 223, 207, 249, 219, 63, 255, 249, 219, 175, 247, 243,\n\t\t63, 62, 33, 70, 124, 255, 228, 251, 207, 67, 147, 0, 195,\n\t\t146, 171, 177, 36, 87, 31, 4, 133, 159, 198, 184, 18, 135,\n\t\t137, 247, 253, 113, 134, 72, 172, 147, 66, 202, 240, 8, 204,\n\t\t58, 119, 197, 68, 122, 4, 242, 53, 120, 141, 197, 66, 199,\n\t\t86, 8, 7, 81, 67, 89, 103, 152, 24, 135, 8, 49, 99, 124, 2,\n\t\t80, 48, 104, 13, 48, 237, 95, 215, 237, 135, 166, 228, 18,\n\t\t16, 10, 13, 173, 96, 247, 133, 187, 180, 50, 24, 160, 142,\n\t\t116, 5, 9, 145, 48, 153, 61, 170, 43, 144, 199, 122, 167,\n\t\t231, 71, 92, 11, 251, 145, 66, 163, 58, 38, 136, 29, 138,\n\t\t221, 167, 194, 76, 56, 169, 220, 153, 17, 7, 18, 133, 247,\n\t\t18, 129, 204, 18, 118, 57, 71, 51, 242, 235, 191, 119, 222,\n\t\t222, 126, 76, 153, 77, 222, 230, 234, 145, 137, 252, 136,\n\t\t18, 75, 14, 127, 196, 220, 93, 102, 224, 240, 128, 157, 152,\n\t\t57, 8, 152, 27, 249, 199, 136, 239, 97, 29, 164, 127, 228,\n\t\t132, 37, 176, 18, 103, 247, 209, 93, 213, 171, 216, 200, 115,\n\t\t72, 224, 30, 41, 186, 65, 33, 189, 182, 142, 28, 250, 219,\n\t\t243, 131, 239, 147, 70, 113, 105, 210, 3, 200, 228, 138, 158,\n\t\t212, 23, 104, 151, 216, 95, 127, 168, 212, 107, 61, 163, 175,\n\t\t209, 201, 178, 33, 250, 72, 60, 30, 114, 82, 116, 125, 6,\n\t\t78, 16, 92, 223, 69, 63, 130, 175, 7, 167, 174, 115, 246,\n\t\t178, 174, 228, 186, 121, 143, 233, 57, 251, 109, 211, 223,\n\t\t155, 1, 191, 206, 79, 51, 224, 19, 215, 154, 205, 128, 173,\n\t\t51, 210, 120, 235, 12, 223, 214, 228, 248, 212, 25, 241, 103,\n\t\t157, 65, 125, 33, 172, 60, 220, 27, 76, 40, 248, 23, 123,\n\t\t163, 32, 149, 166, 116, 71, 152, 156, 168, 189, 83, 138, 62,\n\t\t29, 239, 27, 8, 130, 200, 229, 106, 1, 201, 224, 221, 56,\n\t\t6, 66, 9, 171, 29, 243, 222, 61, 132, 85, 67, 170, 16, 49,\n\t\t104, 145, 104, 34, 254, 221, 245, 241, 161, 117, 137, 255,\n\t\t6, 31, 110, 107, 145, 99, 245, 153, 167, 220, 60, 53, 18,\n\t\t211, 108, 5, 21, 163, 44, 145, 155, 92, 118, 56, 214, 242,\n\t\t88, 171, 102, 224, 236, 49, 86, 215, 31, 2, 25, 51, 79, 34,\n\t\t6, 178, 108, 245, 34, 9, 36, 234, 133, 70, 20, 79, 180, 194,\n\t\t27, 242, 57, 86, 11, 207, 180, 21, 34, 209, 11, 66, 178, 106,\n\t\t52, 24, 7, 162, 234, 253, 74, 170, 15, 192, 19, 112, 6, 1,\n\t\t148, 75, 96, 153, 167, 50, 143, 85, 141, 192, 239, 165, 140,\n\t\t44, 155, 217, 177, 190, 79, 161, 54, 79, 68, 129, 168, 23,\n\t\t86, 179, 107, 0, 36, 52, 134, 15, 73, 183, 161, 120, 197,\n\t\t204, 226, 113, 0, 110, 36, 203, 34, 0, 134, 201, 138, 226,\n\t\t29, 161, 120, 19, 165, 229, 138, 150, 132, 22, 115, 153, 138,\n\t\t179, 3, 14, 37, 163, 167, 98, 169, 87, 73, 107, 186, 81, 106,\n\t\t229, 128, 227, 147, 122, 1, 35, 41, 202, 202, 195, 102, 240,\n\t\t90, 249, 189, 142, 174, 89, 212, 244, 17, 235, 56, 111, 229,\n\t\t165, 180, 49, 18, 141, 132, 181, 228, 222, 66, 36, 121, 85,\n\t\t88, 203, 155, 90, 89, 44, 193, 53, 84, 219, 139, 93, 37, 187,\n\t\t69, 48, 105, 252, 81, 154, 221, 54, 120, 206, 42, 103, 145,\n\t\t156, 147, 27, 23, 74, 37, 137, 178, 28, 179, 124, 234, 162,\n\t\t165, 20, 165, 57, 200, 201, 85, 236, 254, 93, 225, 113, 126,\n\t\t255, 215, 39, 249, 241, 41, 238, 244, 42, 63, 154, 8, 115,\n\t\t79, 81, 235, 53, 34, 40, 82, 52, 176, 249, 89, 144, 135, 77,\n\t\t118, 36, 149, 29, 21, 146, 163, 17, 249, 84, 195, 14, 36,\n\t\t71, 144, 164, 140, 170, 146, 163, 153, 28, 79, 91, 252, 148,\n\t\t51, 246, 100, 122, 39, 34, 23, 141, 52, 181, 59, 77, 237,\n\t\t116, 59, 3, 197, 10, 74, 149, 20, 235, 193, 19, 241, 50, 17,\n\t\t1, 89, 170, 41, 129, 203, 15, 85, 168, 249, 151, 10, 253,\n\t\t78, 14, 204, 32, 165, 128, 164, 139, 73, 118, 26, 143, 66,\n\t\t227, 232, 108, 84, 248, 96, 204, 138, 54, 197, 180, 174, 141,\n\t\t36, 5, 29, 9, 69, 20, 237, 170, 97, 224, 34, 80, 99, 165,\n\t\t33, 82, 74, 225, 95, 90, 136, 17, 202, 203, 180, 250, 145,\n\t\t211, 230, 122, 198, 246, 136, 195, 149, 235, 230, 109, 84,\n\t\t184, 111, 216, 253, 134, 192, 135, 3, 84, 190, 32, 89, 97,\n\t\t124, 61, 235, 195, 183, 179, 22, 157, 38, 94, 228, 32, 132,\n\t\t9, 204, 31, 133, 24, 207, 241, 253, 72, 173, 144, 203, 81,\n\t\t157, 62, 36, 138, 27, 201, 101, 236, 60, 63, 8, 25, 234, 8,\n\t\t75, 13, 188, 9, 89, 5, 173, 1, 249, 182, 23, 33, 243, 161,\n\t\t255, 31, 123, 239, 154, 28, 61, 114, 108, 9, 254, 207, 85,\n\t\t96, 3, 8, 139, 247, 195, 102, 13, 92, 68, 9, 42, 53, 235,\n\t\t118, 74, 165, 41, 234, 114, 122, 184, 250, 49, 63, 126, 220,\n\t\t3, 36, 75, 159, 174, 186, 245, 227, 142, 153, 204, 164, 250,\n\t\t8, 36, 18, 25, 8, 68, 248, 243, 248, 241, 215, 243, 70, 58,\n\t\t28, 241, 106, 215, 10, 245, 73, 104, 37, 92, 169, 246, 184,\n\t\t140, 166, 198, 176, 122, 214, 218, 201, 68, 156, 30, 54, 15,\n\t\t104, 235, 188, 158, 43, 98, 104, 170, 253, 245, 79, 89, 161,\n\t\t152, 249, 168, 63, 224, 141, 127, 70, 132, 185, 160, 22, 247,\n\t\t115, 218, 3, 22, 190, 107, 19, 0, 220, 165, 211, 164, 109,\n\t\t117, 42, 169, 172, 226, 245, 202, 6, 125, 235, 26, 185, 193,\n\t\t135, 149, 41, 152, 213, 62, 29, 63, 174, 236, 92, 111, 213,\n\t\t215, 36, 173, 59, 239, 67, 201, 98, 134, 167, 215, 207, 157,\n\t\t213, 16, 176, 22, 233, 241, 236, 127, 30, 38, 116, 110, 29,\n\t\t64, 227, 117, 102, 184, 229, 70, 117, 230, 218, 226, 244,\n\t\t66, 110, 150, 69, 236, 254, 221, 94, 125, 239, 44, 113, 22,\n\t\t67, 156, 110, 126, 18, 13, 144, 13, 186, 145, 84, 255, 189,\n\t\t14, 221, 137, 104, 180, 220, 94, 141, 242, 228, 159, 149,\n\t\t97, 255, 241, 13, 1, 244, 243, 183, 174, 115, 127, 79, 134,\n\t\t205, 79, 50, 44, 228, 223, 145, 98, 249, 71, 82, 172, 41,\n\t\t230, 127, 203, 177, 254, 191, 45, 199, 208, 36, 92, 229, 152,\n\t\t152, 47, 22, 7, 77, 98, 27, 28, 75, 157, 144, 231, 57, 147,\n\t\t197, 252, 222, 81, 176, 12, 60, 28, 59, 38, 189, 159, 173,\n\t\t191, 162, 163, 179, 28, 224, 111, 125, 57, 15, 209, 167, 184,\n\t\t148, 39, 222, 9, 188, 126, 58, 18, 147, 136, 136, 215, 179,\n\t\t169, 17, 35, 223, 192, 59, 34, 228, 77, 164, 232, 144, 117,\n\t\t218, 174, 243, 19, 104, 6, 226, 83, 87, 203, 242, 144, 198,\n\t\t127, 81, 4, 20, 204, 159, 120, 215, 253, 121, 90, 39, 189,\n\t\t172, 98, 238, 185, 3, 71, 44, 27, 127, 55, 206, 172, 215,\n\t\t166, 97, 160, 143, 151, 2, 114, 156, 52, 68, 224, 38, 143,\n\t\t95, 62, 46, 163, 155, 35, 59, 231, 97, 148, 239, 101, 250,\n\t\t159, 109, 81, 0, 32, 224, 241, 201, 30, 7, 203, 50, 37, 1,\n\t\t98, 56, 107, 119, 195, 68, 144, 93, 46, 104, 98, 163, 14,\n\t\t117, 30, 212, 54, 17, 105, 64, 184, 37, 16, 65, 70, 41, 208,\n\t\t210, 107, 87, 107, 247, 89, 172, 52, 101, 234, 171, 123, 230,\n\t\t226, 32, 222, 167, 89, 50, 171, 251, 245, 103, 135, 195, 213,\n\t\t95, 169, 110, 222, 141, 222, 239, 159, 220, 36, 223, 234,\n\t\t34, 126, 254, 195, 127, 201, 75, 248, 63, 118, 217, 254, 59,\n\t\t122, 108, 143, 127, 185, 203, 198, 117, 152, 91, 122, 135,\n\t\t165, 251, 122, 166, 137, 54, 43, 239, 56, 226, 193, 94, 174,\n\t\t41, 228, 31, 94, 248, 79, 189, 220, 191, 126, 127, 185, 223,\n\t\t90, 239, 221, 95, 238, 164, 3, 72, 243, 237, 64, 138, 40,\n\t\t29, 246, 226, 48, 133, 5, 125, 189, 110, 34, 15, 255, 121,\n\t\t195, 95, 126, 222, 222, 95, 215, 254, 161, 124, 123, 211,\n\t\t223, 29, 194, 205, 215, 232, 182, 119, 128, 97, 241, 50, 118,\n\t\t197, 61, 202, 123, 7, 21, 210, 151, 154, 91, 37, 215, 244,\n\t\t92, 92, 18, 231, 116, 105, 138, 225, 70, 173, 82, 242, 6,\n\t\t168, 15, 194, 142, 61, 218, 199, 19, 187, 200, 4, 29, 15,\n\t\t169, 245, 84, 44, 88, 199, 67, 198, 43, 159, 197, 34, 170,\n\t\t164, 140, 184, 78, 70, 171, 15, 75, 193, 146, 182, 0, 10,\n\t\t11, 148, 14, 154, 35, 148, 195, 235, 172, 4, 107, 36, 113,\n\t\t98, 29, 43, 204, 67, 145, 114, 42, 114, 24, 152, 231, 106,\n\t\t98, 156, 222, 122, 127, 168, 109, 242, 244, 150, 142, 22,\n\t\t39, 220, 37, 12, 73, 220, 151, 163, 129, 63, 71, 166, 37,\n\t\t45, 36, 42, 112, 240, 241, 82, 81, 137, 37, 170, 237, 19,\n\t\t9, 141, 255, 117, 47, 153, 206, 70, 4, 194, 192, 227, 38,\n\t\t68, 240, 24, 87, 55, 43, 87, 7, 83, 237, 47, 36, 104, 176,\n\t\t112, 68, 238, 90, 72, 47, 163, 159, 229, 169, 255, 224, 191,\n\t\t215, 57, 226, 54, 99, 181, 200, 13, 242, 145, 38, 11, 184,\n\t\t28, 69, 190, 138, 188, 126, 14, 199, 171, 147, 6, 223, 124,\n\t\t35, 35, 81, 106, 6, 233, 183, 108, 98, 20, 115, 140, 71, 143,\n\t\t139, 182, 213, 17, 49, 61, 102, 13, 14, 111, 200, 58, 68,\n\t\t44, 155, 235, 121, 186, 159, 159, 22, 201, 205, 140, 120,\n\t\t171, 89, 90, 170, 28, 231, 240, 246, 157, 255, 244, 190, 60,\n\t\t127, 122, 126, 79, 52, 124, 163, 180, 253, 111, 43, 120, 205,\n\t\t106, 252, 87, 139, 203, 199, 191, 82, 152, 127, 188, 20, 217,\n\t\t189, 71, 238, 192, 15, 115, 169, 141, 232, 164, 94, 242, 103,\n\t\t87, 91, 6, 133, 12, 8, 193, 87, 179, 68, 187, 253, 193, 203,\n\t\t80, 219, 103, 201, 247, 247, 84, 70, 200, 175, 60, 146, 95,\n\t\t66, 63, 170, 86, 66, 187, 178, 252, 140, 134, 60, 155, 123,\n\t\t25, 77, 92, 72, 67, 48, 213, 188, 59, 239, 187, 251, 94, 154,\n\t\t253, 253, 244, 254, 67, 27, 237, 247, 110, 189, 177, 95, 73,\n\t\t144, 254, 241, 162, 207, 42, 79, 103, 181, 50, 232, 218, 222,\n\t\t216, 150, 64, 255, 172, 93, 187, 195, 46, 176, 255, 40, 246,\n\t\t181, 89, 19, 45, 57, 132, 147, 104, 253, 243, 95, 79, 22,\n\t\t43, 224, 249, 202, 107, 183, 202, 128, 180, 212, 179, 170,\n\t\t97, 92, 217, 91, 200, 150, 104, 17, 177, 91, 193, 33, 207,\n\t\t220, 194, 231, 60, 243, 120, 205, 255, 5, 188, 223, 183, 205,\n\t\t242, 219, 207, 127, 254, 229, 127, 125, 219, 43, 223, 40,\n\t\t8, 254, 219, 238, 149, 255, 63, 24, 41, 21, 243, 146, 230,\n\t\t8, 253, 89, 119, 22, 13, 66, 242, 253, 28, 241, 242, 12, 152,\n\t\t147, 142, 118, 15, 134, 33, 125, 236, 241, 144, 60, 25, 164,\n\t\t80, 138, 60, 79, 51, 200, 248, 171, 119, 134, 145, 213, 37,\n\t\t46, 67, 214, 176, 130, 23, 64, 171, 119, 46, 198, 45, 163,\n\t\t158, 35, 180, 119, 115, 85, 158, 22, 2, 203, 196, 209, 223,\n\t\t251, 38, 108, 94, 58, 195, 51, 220, 15, 134, 198, 142, 159,\n\t\t54, 76, 139, 166, 146, 161, 130, 132, 57, 239, 226, 33, 53,\n\t\t173, 134, 42, 11, 54, 72, 15, 233, 189, 22, 134, 135, 236,\n\t\t118, 239, 137, 54, 184, 78, 173, 108, 163, 119, 75, 243, 63,\n\t\t57, 221, 204, 200, 191, 223, 162, 19, 240, 24, 147, 60, 205,\n\t\t211, 118, 61, 123, 91, 61, 13, 16, 14, 22, 205, 231, 169,\n\t\t57, 113, 124, 244, 241, 120, 41, 11, 201, 249, 220, 66, 127,\n\t\t175, 229, 105, 155, 21, 73, 69, 108, 214, 147, 254, 193, 63,\n\t\t183, 177, 222, 190, 99, 187, 190, 243, 100, 252, 123, 87,\n\t\t253, 239, 239, 42, 89, 229, 227, 200, 121, 92, 169, 28, 147,\n\t\t198, 231, 20, 177, 188, 140, 215, 40, 162, 158, 201, 142,\n\t\t175, 69, 115, 35, 162, 206, 172, 105, 83, 111, 251, 59, 149,\n\t\t138, 66, 222, 13, 50, 82, 154, 199, 140, 252, 178, 86, 70,\n\t\t241, 24, 33, 120, 10, 105, 160, 184, 1, 199, 225, 52, 212,\n\t\t99, 141, 215, 14, 42, 66, 86, 31, 49, 200, 99, 136, 154, 202,\n\t\t58, 222, 166, 204, 170, 122, 116, 89, 74, 48, 30, 13, 69,\n\t\t102, 122, 201, 60, 166, 35, 16, 167, 230, 206, 233, 255, 27,\n\t\t118, 79, 204, 98, 60, 44, 79, 92, 167, 81, 44, 71, 4, 143,\n\t\t20, 240, 96, 240, 231, 211, 178, 63, 214, 223, 246, 149, 149,\n\t\t36, 207, 211, 242, 204, 246, 135, 156, 177, 100, 243, 43,\n\t\t53, 230, 63, 187, 3, 254, 252, 215, 231, 47, 127, 249, 31,\n\t\t95, 247, 193, 159, 226, 191, 247, 193, 191, 112, 31, 228,\n\t\t150, 15, 241, 111, 147, 183, 116, 49, 82, 41, 205, 9, 251,\n\t\t191, 41, 180, 167, 215, 188, 166, 136, 224, 178, 235, 35,\n\t\t10, 255, 43, 30, 221, 184, 141, 82, 244, 100, 217, 253, 95,\n\t\t239, 133, 23, 157, 114, 233, 220, 223, 96, 156, 49, 210, 49,\n\t\t64, 125, 104, 211, 138, 95, 167, 2, 87, 179, 126, 202, 120,\n\t\t184, 28, 169, 162, 174, 111, 45, 239, 236, 223, 229, 81, 126,\n\t\t204, 3, 7, 203, 8, 168, 55, 83, 113, 64, 157, 13, 217, 114,\n\t\t83, 79, 157, 130, 213, 241, 147, 122, 9, 55, 86, 178, 0, 173,\n\t\t58, 94, 52, 94, 61, 91, 23, 63, 29, 191, 182, 249, 110, 136,\n\t\t188, 215, 179, 69, 139, 208, 89, 86, 161, 86, 134, 141, 119,\n\t\t83, 1, 31, 154, 146, 164, 26, 37, 194, 153, 73, 162, 74, 48,\n\t\t193, 243, 172, 198, 206, 241, 60, 21, 50, 150, 185, 161, 111,\n\t\t29, 166, 240, 63, 99, 20, 52, 72, 45, 79, 128, 120, 24, 191,\n\t\t7, 163, 96, 179, 191, 26, 110, 211, 94, 176, 179, 15, 24,\n\t\t212, 199, 221, 125, 230, 84, 134, 69, 30, 13, 226, 51, 44,\n\t\t191, 185, 97, 53, 183, 126, 168, 248, 247, 54, 40, 157, 121,\n\t\t27, 148, 55, 61, 69, 123, 81, 88, 7, 191, 59, 166, 73, 254,\n\t\t190, 27, 111, 25, 135, 53, 135, 135, 76, 249, 91, 218, 246,\n\t\t23, 194, 154, 63, 187, 155, 201, 121, 71, 61, 239, 45, 100,\n\t\t4, 47, 124, 181, 113, 255, 124, 253, 58, 71, 105, 255, 202,\n\t\t180, 134, 32, 251, 103, 25, 26, 209, 95, 156, 245, 246, 119,\n\t\t99, 212, 226, 198, 210, 255, 119, 167, 71, 119, 200, 151,\n\t\t119, 166, 19, 115, 27, 14, 198, 238, 211, 243, 59, 6, 216,\n\t\t141, 38, 222, 8, 13, 117, 14, 158, 206, 38, 57, 213, 173,\n\t\t122, 238, 2, 119, 42, 139, 199, 189, 15, 95, 15, 159, 186,\n\t\t31, 252, 157, 215, 104, 73, 15, 140, 86, 247, 198, 183, 217,\n\t\t35, 87, 230, 211, 1, 3, 163, 51, 103, 1, 2, 66, 197, 213,\n\t\t79, 75, 95, 120, 103, 67, 158, 121, 21, 117, 133, 124, 62,\n\t\t123, 199, 191, 178, 158, 239, 105, 216, 74, 18, 17, 95, 6,\n\t\t155, 35, 173, 128, 215, 100, 91, 137, 153, 83, 210, 51, 184,\n\t\t100, 47, 69, 129, 69, 245, 241, 180, 238, 149, 148, 227, 20,\n\t\t122, 4, 54, 218, 82, 248, 252, 47, 136, 110, 163, 11, 150,\n\t\t77, 243, 118, 91, 102, 176, 129, 55, 153, 0, 203, 19, 77,\n\t\t228, 218, 126, 142, 222, 220, 64, 123, 23, 248, 207, 228,\n\t\t155, 8, 253, 196, 65, 24, 221, 9, 28, 95, 127, 84, 175, 126,\n\t\t54, 79, 1, 233, 39, 79, 91, 2, 124, 194, 199, 117, 99, 202,\n\t\t116, 86, 77, 254, 66, 138, 204, 125, 217, 116, 166, 127, 80,\n\t\t184, 240, 119, 53, 253, 249, 215, 231, 127, 126, 35, 218,\n\t\t249, 83, 250, 183, 186, 255, 23, 170, 251, 210, 90, 168, 64,\n\t\t21, 142, 167, 145, 141, 152, 134, 120, 7, 160, 21, 153, 169,\n\t\t22, 197, 211, 73, 106, 233, 21, 54, 248, 53, 25, 73, 245,\n\t\t163, 184, 6, 238, 252, 236, 196, 39, 81, 165, 136, 97, 54,\n\t\t244, 252, 211, 91, 217, 204, 114, 215, 3, 214, 235, 254, 204,\n\t\t106, 102, 114, 38, 204, 6, 229, 170, 219, 34, 168, 87, 186,\n\t\t100, 62, 154, 198, 24, 209, 22, 158, 94, 18, 236, 84, 204,\n\t\t206, 205, 158, 119, 215, 69, 108, 133, 167, 162, 147, 205,\n\t\t99, 244, 205, 55, 163, 50, 78, 50, 106, 66, 98, 225, 236,\n\t\t25, 91, 61, 180, 228, 242, 125, 152, 120, 200, 81, 152, 10,\n\t\t243, 81, 210, 197, 125, 220, 186, 83, 124, 26, 167, 23, 51,\n\t\t127, 190, 47, 95, 236, 211, 168, 86, 135, 165, 19, 203, 182,\n\t\t195, 251, 39, 6, 84, 47, 220, 206, 78, 225, 109, 40, 6, 155,\n\t\t85, 111, 105, 240, 180, 36, 166, 12, 56, 98, 18, 17, 68, 216,\n\t\t116, 38, 78, 14, 234, 172, 177, 253, 38, 109, 51, 24, 140,\n\t\t184, 100, 24, 122, 23, 105, 171, 133, 37, 166, 0, 109, 82,\n\t\t141, 68, 39, 83, 94, 24, 103, 105, 102, 147, 84, 145, 212,\n\t\t30, 145, 96, 155, 68, 54, 80, 182, 98, 200, 203, 138, 126,\n\t\t249, 62, 109, 226, 252, 120, 207, 28, 223, 175, 19, 182, 183,\n\t\t97, 150, 219, 52, 76, 200, 225, 157, 71, 205, 236, 179, 99,\n\t\t91, 37, 79, 123, 67, 93, 13, 133, 167, 49, 85, 179, 74, 230,\n\t\t177, 121, 215, 83, 101, 40, 125, 223, 171, 221, 110, 212,\n\t\t220, 158, 99, 78, 93, 148, 89, 213, 162, 16, 199, 81, 219,\n\t\t250, 55, 174, 3, 91, 32, 153, 83, 42, 183, 209, 231, 235,\n\t\t154, 101, 176, 241, 53, 182, 38, 244, 222, 253, 198, 225,\n\t\t99, 213, 23, 183, 27, 1, 6, 99, 136, 13, 180, 38, 38, 231,\n\t\t103, 21, 133, 114, 57, 51, 189, 190, 248, 126, 163, 71, 29,\n\t\t91, 73, 126, 60, 80, 78, 38, 130, 164, 162, 213, 79, 116,\n\t\t244, 107, 59, 118, 239, 62, 144, 195, 1, 122, 171, 195, 190,\n\t\t127, 114, 242, 227, 87, 43, 38, 120, 231, 191, 184, 62, 125,\n\t\t38, 166, 190, 127, 225, 77, 237, 219, 91, 251, 68, 253, 236,\n\t\t221, 110, 228, 119, 220, 141, 3, 226, 241, 119, 190, 36, 98,\n\t\t152, 163, 251, 244, 153, 125, 254, 106, 131, 179, 123, 62,\n\t\t244, 27, 137, 148, 203, 191, 243, 21, 163, 238, 251, 221,\n\t\t201, 176, 135, 180, 251, 254, 147, 138, 242, 245, 119, 248,\n\t\t31, 255, 244, 141, 137, 238, 223, 10, 242, 255, 68, 65, 86,\n\t\t176, 26, 244, 28, 214, 53, 204, 65, 116, 169, 218, 247, 14,\n\t\t99, 104, 68, 37, 193, 251, 153, 102, 214, 229, 228, 140, 64,\n\t\t174, 227, 156, 245, 235, 203, 151, 94, 1, 68, 73, 49, 57,\n\t\t100, 53, 222, 40, 211, 247, 159, 246, 27, 173, 190, 158, 77,\n\t\t116, 136, 143, 203, 111, 217, 247, 159, 118, 181, 13, 104,\n\t\t215, 198, 169, 46, 50, 186, 145, 116, 171, 52, 90, 43, 191,\n\t\t166, 210, 67, 245, 110, 149, 187, 34, 105, 119, 228, 177,\n\t\t159, 120, 63, 91, 125, 109, 245, 227, 37, 181, 5, 142, 131,\n\t\t17, 198, 107, 37, 37, 26, 1, 250, 87, 244, 230, 255, 102,\n\t\t251, 27, 49, 92, 242, 49, 190, 54, 5, 205, 189, 87, 22, 171,\n\t\t163, 176, 165, 189, 159, 73, 177, 185, 31, 47, 165, 116, 89,\n\t\t165, 165, 5, 251, 240, 225, 159, 190, 234, 197, 118, 237,\n\t\t63, 181, 147, 62, 126, 254, 237, 215, 111, 27, 169, 252, 123,\n\t\t35, 253, 11, 55, 146, 12, 188, 148, 26, 230, 101, 248, 154,\n\t\t8, 144, 167, 72, 73, 71, 93, 178, 46, 47, 135, 249, 38, 54,\n\t\t37, 221, 18, 57, 62, 206, 207, 159, 234, 209, 112, 2, 72,\n\t\t28, 234, 103, 246, 69, 253, 222, 237, 19, 29, 68, 158, 17,\n\t\t152, 220, 74, 181, 26, 17, 104, 81, 83, 168, 71, 203, 182,\n\t\t217, 153, 185, 89, 179, 232, 205, 238, 22, 124, 217, 107,\n\t\t123, 24, 148, 33, 255, 223, 179, 41, 89, 74, 12, 232, 124,\n\t\t18, 17, 98, 162, 79, 174, 137, 3, 179, 126, 173, 170, 196,\n\t\t53, 148, 7, 221, 118, 51, 12, 154, 75, 124, 87, 78, 4, 159,\n\t\t149, 5, 108, 78, 153, 226, 82, 195, 120, 202, 232, 39, 163,\n\t\t21, 45, 32, 190, 162, 51, 70, 163, 124, 51, 48, 26, 206, 60,\n\t\t154, 181, 77, 207, 122, 79, 137, 61, 127, 223, 127, 238, 153,\n\t\t72, 155, 121, 175, 144, 92, 115, 119, 52, 197, 191, 132, 104,\n\t\t255, 152, 118, 250, 15, 223, 59, 197, 254, 233, 91, 193, 250,\n\t\t173, 126, 79, 44, 58, 49, 239, 95, 75, 125, 110, 222, 147,\n\t\t180, 106, 0, 29, 177, 70, 187, 192, 65, 75, 74, 99, 240, 105,\n\t\t183, 35, 37, 165, 29, 117, 150, 200, 238, 33, 135, 177, 237,\n\t\t119, 111, 195, 175, 9, 164, 119, 171, 206, 254, 244, 230,\n\t\t179, 145, 254, 27, 243, 182, 151, 214, 190, 158, 236, 0, 113,\n\t\t237, 246, 118, 187, 7, 202, 86, 19, 92, 210, 60, 145, 173,\n\t\t196, 247, 52, 110, 93, 71, 49, 156, 197, 169, 71, 180, 249,\n\t\t74, 178, 205, 140, 134, 216, 104, 85, 168, 140, 126, 93, 19,\n\t\t6, 252, 216, 78, 212, 134, 62, 102, 137, 205, 85, 24, 96,\n\t\t232, 126, 130, 11, 108, 93, 59, 134, 82, 204, 65, 42, 86,\n\t\t153, 224, 213, 138, 195, 74, 27, 155, 181, 213, 219, 41, 6,\n\t\t100, 29, 226, 110, 235, 35, 62, 152, 58, 123, 213, 194, 5,\n\t\t199, 166, 71, 188, 213, 48, 211, 142, 189, 185, 127, 138,\n\t\t31, 77, 218, 113, 113, 71, 49, 220, 53, 32, 192, 131, 199,\n\t\t69, 237, 215, 119, 84, 164, 190, 22, 93, 188, 239, 226, 173,\n\t\t193, 9, 50, 2, 227, 228, 253, 133, 184, 236, 249, 80, 183,\n\t\t97, 226, 145, 136, 195, 60, 192, 198, 230, 197, 3, 120, 43,\n\t\t126, 130, 117, 191, 87, 220, 125, 150, 181, 49, 68, 194, 107,\n\t\t110, 94, 2, 251, 184, 156, 206, 145, 174, 128, 177, 107, 161,\n\t\t122, 112, 88, 123, 34, 253, 240, 50, 109, 189, 67, 214, 107,\n\t\t131, 188, 171, 213, 249, 241, 196, 187, 119, 161, 56, 188,\n\t\t21, 70, 106, 71, 65, 65, 195, 81, 10, 160, 48, 246, 114, 138,\n\t\t151, 184, 2, 182, 96, 109, 204, 95, 229, 131, 174, 93, 141,\n\t\t245, 57, 40, 188, 142, 178, 72, 49, 70, 239, 0, 173, 160,\n\t\t121, 112, 101, 71, 179, 55, 227, 222, 26, 71, 119, 162, 136,\n\t\t254, 128, 19, 185, 40, 93, 228, 198, 175, 101, 132, 38, 18,\n\t\t145, 40, 170, 184, 194, 18, 65, 44, 202, 70, 179, 100, 214,\n\t\t58, 5, 136, 8, 213, 31, 73, 49, 17, 250, 154, 88, 202, 13,\n\t\t202, 83, 190, 22, 186, 159, 205, 252, 222, 175, 215, 202,\n\t\t102, 196, 46, 136, 251, 51, 231, 54, 221, 103, 246, 173, 189,\n\t\t204, 196, 181, 142, 221, 251, 235, 197, 31, 47, 21, 20, 86,\n\t\t105, 166, 208, 222, 111, 189, 76, 220, 8, 203, 221, 197, 163,\n\t\t233, 71, 212, 38, 224, 183, 45, 78, 118, 237, 126, 68, 59,\n\t\t4, 80, 45, 115, 239, 4, 196, 118, 34, 123, 223, 107, 103,\n\t\t199, 183, 0, 27, 192, 109, 136, 253, 55, 255, 251, 142, 50,\n\t\t49, 140, 21, 235, 124, 236, 184, 234, 241, 199, 139, 181,\n\t\t49, 0, 132, 255, 66, 84, 181, 41, 26, 228, 24, 38, 100, 155,\n\t\t17, 255, 165, 61, 151, 50, 191, 143, 215, 98, 161, 2, 143,\n\t\t13, 112, 73, 31, 103, 45, 27, 148, 126, 14, 99, 91, 242, 114,\n\t\t138, 198, 2, 211, 200, 204, 105, 209, 118, 69, 80, 235, 240,\n\t\t250, 140, 138, 96, 231, 17, 48, 240, 89, 236, 207, 171, 54,\n\t\t163, 46, 28, 198, 101, 103, 120, 124, 63, 49, 172, 172, 107,\n\t\t2, 167, 153, 39, 186, 88, 100, 100, 123, 197, 54, 189, 44,\n\t\t203, 99, 192, 229, 115, 14, 133, 242, 51, 180, 206, 129, 199,\n\t\t87, 254, 245, 227, 158, 22, 63, 255, 191, 127, 248, 233, 237,\n\t\t187, 83, 214, 156, 148, 127, 181, 144, 211, 145, 134, 191,\n\t\t207, 21, 102, 110, 90, 85, 50, 106, 79, 247, 214, 223, 95,\n\t\t254, 184, 112, 109, 79, 3, 166, 62, 63, 252, 246, 53, 187,\n\t\t24, 121, 44, 92, 45, 151, 148, 94, 142, 47, 87, 248, 149,\n\t\t162, 113, 202, 80, 190, 178, 156, 234, 172, 232, 81, 55, 198,\n\t\t44, 24, 149, 134, 117, 191, 140, 5, 166, 7, 218, 178, 67,\n\t\t127, 125, 186, 69, 174, 246, 141, 31, 222, 194, 30, 94, 134,\n\t\t248, 233, 233, 137, 59, 185, 93, 46, 103, 222, 126, 248, 200,\n\t\t76, 225, 112, 50, 237, 138, 191, 243, 196, 31, 47, 181, 196,\n\t\t80, 68, 180, 153, 52, 183, 28, 252, 230, 229, 31, 222, 52,\n\t\t220, 43, 254, 99, 113, 58, 242, 199, 133, 206, 244, 197, 116,\n\t\t11, 144, 2, 180, 33, 188, 105, 133, 108, 133, 235, 116, 108,\n\t\t171, 162, 77, 155, 83, 226, 24, 157, 33, 19, 62, 135, 21,\n\t\t28, 138, 225, 54, 194, 20, 133, 37, 10, 69, 51, 69, 142, 106,\n\t\t20, 99, 143, 197, 77, 8, 146, 145, 101, 149, 41, 215, 231,\n\t\t233, 32, 181, 74, 154, 233, 18, 86, 235, 81, 69, 255, 234,\n\t\t5, 47, 98, 149, 162, 100, 4, 165, 85, 108, 61, 170, 121, 181,\n\t\t0, 88, 250, 136, 230, 143, 169, 213, 130, 186, 163, 137, 152,\n\t\t44, 65, 152, 165, 135, 220, 107, 223, 147, 211, 146, 193,\n\t\t253, 189, 184, 190, 217, 228, 26, 219, 9, 40, 29, 19, 156,\n\t\t23, 24, 102, 57, 181, 144, 175, 212, 67, 237, 83, 141, 226,\n\t\t170, 53, 88, 21, 206, 194, 8, 189, 231, 116, 48, 243, 33,\n\t\t242, 0, 250, 202, 66, 199, 74, 185, 7, 46, 10, 19, 83, 124,\n\t\t203, 181, 3, 149, 183, 146, 27, 202, 120, 9, 43, 193, 116,\n\t\t104, 88, 167, 37, 134, 94, 103, 61, 82, 11, 189, 247, 125,\n\t\t92, 114, 232, 105, 40, 233, 74, 168, 43, 167, 137, 74, 74,\n\t\t219, 22, 33, 227, 174, 49, 196, 58, 65, 19, 152, 194, 152,\n\t\t37, 191, 223, 26, 57, 113, 253, 80, 108, 33, 8, 87, 235, 82,\n\t\t155, 127, 78, 253, 193, 134, 5, 35, 94, 112, 129, 232, 99,\n\t\t46, 60, 185, 214, 190, 161, 122, 153, 105, 217, 212, 38, 26,\n\t\t4, 189, 70, 232, 77, 30, 73, 44, 170, 84, 99, 207, 216, 6,\n\t\t3, 125, 3, 155, 140, 247, 112, 176, 51, 105, 87, 174, 17,\n\t\t82, 138, 5, 134, 149, 5, 2, 209, 83, 184, 137, 145, 210, 147,\n\t\t50, 126, 182, 199, 51, 223, 210, 80, 42, 172, 221, 114, 205,\n\t\t235, 150, 117, 46, 166, 167, 150, 51, 173, 59, 177, 67, 244,\n\t\t82, 41, 185, 191, 171, 110, 22, 170, 92, 34, 135, 203, 192,\n\t\t205, 90, 157, 179, 28, 45, 135, 92, 65, 188, 154, 194, 106,\n\t\t41, 239, 19, 178, 40, 243, 66, 219, 128, 25, 122, 90, 108,\n\t\t148, 208, 180, 59, 87, 14, 177, 118, 237, 80, 93, 115, 155,\n\t\t216, 101, 107, 164, 113, 105, 79, 116, 29, 105, 243, 62, 181,\n\t\t220, 28, 211, 199, 163, 122, 251, 113, 21, 239, 229, 65, 61,\n\t\t99, 36, 215, 162, 15, 160, 208, 252, 68, 42, 61, 244, 87,\n\t\t17, 117, 113, 141, 222, 122, 254, 120, 73, 181, 31, 37, 183,\n\t\t176, 174, 76, 138, 160, 25, 42, 68, 208, 12, 29, 188, 138,\n\t\t162, 49, 107, 3, 77, 187, 58, 210, 106, 17, 236, 84, 90, 62,\n\t\t172, 200, 215, 24, 75, 135, 47, 116, 149, 10, 240, 109, 60,\n\t\t40, 110, 102, 134, 83, 220, 229, 110, 238, 40, 219, 51, 202,\n\t\t42, 205, 171, 207, 137, 150, 41, 117, 140, 134, 56, 195, 12,\n\t\t37, 161, 91, 83, 9, 61, 207, 165, 221, 231, 91, 239, 72, 223,\n\t\t16, 62, 144, 110, 190, 34, 16, 69, 231, 38, 5, 69, 134, 35,\n\t\t167, 168, 127, 197, 148, 134, 108, 18, 113, 6, 147, 124, 254,\n\t\t229, 100, 45, 171, 182, 162, 97, 210, 58, 123, 41, 71, 9,\n\t\t189, 224, 213, 207, 80, 250, 72, 224, 57, 77, 73, 172, 215,\n\t\t25, 122, 79, 169, 124, 188, 164, 145, 196, 173, 237, 53, 164,\n\t\t171, 134, 38, 155, 77, 166, 163, 180, 85, 52, 46, 191, 90,\n\t\t82, 212, 93, 90, 197, 131, 236, 103, 142, 224, 104, 51, 76,\n\t\t62, 200, 189, 24, 108, 104, 230, 59, 160, 249, 18, 51, 182,\n\t\t39, 147, 16, 215, 238, 188, 205, 127, 137, 233, 173, 27, 222,\n\t\t129, 87, 210, 35, 253, 244, 196, 70, 218, 222, 50, 157, 16,\n\t\t194, 163, 104, 71, 29, 45, 68, 181, 118, 165, 17, 227, 44,\n\t\t93, 167, 166, 245, 140, 212, 251, 44, 99, 146, 37, 52, 207,\n\t\t146, 35, 26, 198, 165, 54, 114, 185, 157, 211, 182, 23, 179,\n\t\t107, 25, 227, 10, 224, 189, 234, 97, 98, 226, 100, 245, 183,\n\t\t10, 254, 165, 146, 103, 2, 177, 66, 232, 11, 170, 196, 68,\n\t\t122, 17, 51, 11, 169, 26, 85, 35, 178, 186, 69, 189, 46, 117,\n\t\t218, 62, 47, 227, 44, 70, 208, 33, 54, 202, 120, 110, 141,\n\t\t67, 5, 118, 79, 86, 197, 48, 10, 105, 82, 67, 47, 81, 187,\n\t\t55, 203, 136, 111, 39, 74, 168, 117, 104, 3, 46, 113, 78,\n\t\t163, 60, 118, 12, 213, 119, 112, 234, 99, 13, 145, 200, 74,\n\t\t242, 149, 195, 108, 185, 213, 167, 247, 200, 100, 45, 234,\n\t\t227, 138, 97, 212, 204, 229, 52, 23, 196, 180, 252, 216, 140,\n\t\t218, 189, 54, 151, 136, 192, 122, 75, 98, 72, 240, 196, 21,\n\t\t195, 156, 163, 163, 25, 164, 252, 84, 69, 158, 163, 54, 246,\n\t\t234, 156, 178, 20, 229, 183, 197, 88, 121, 26, 154, 46, 245,\n\t\t39, 27, 157, 98, 195, 85, 27, 73, 223, 93, 223, 104, 229,\n\t\t174, 195, 106, 50, 59, 89, 91, 134, 55, 35, 134, 243, 98,\n\t\t112, 4, 54, 63, 57, 186, 241, 17, 215, 123, 60, 151, 62, 145,\n\t\t153, 206, 72, 29, 32, 247, 254, 184, 210, 87, 16, 146, 181,\n\t\t130, 200, 198, 58, 96, 165, 227, 217, 88, 154, 13, 74, 113,\n\t\t178, 56, 238, 150, 164, 45, 142, 227, 177, 94, 4, 228, 248,\n\t\t25, 254, 219, 250, 199, 147, 47, 125, 126, 188, 148, 81, 66,\n\t\t18, 27, 42, 170, 250, 140, 154, 11, 211, 53, 81, 25, 189,\n\t\t173, 134, 245, 48, 174, 156, 174, 186, 69, 212, 180, 138,\n\t\t131, 28, 196, 248, 44, 218, 164, 165, 162, 246, 164, 205,\n\t\t57, 199, 97, 100, 141, 135, 218, 65, 88, 190, 161, 215, 210,\n\t\t192, 248, 134, 221, 1, 186, 40, 165, 51, 22, 5, 213, 100,\n\t\t107, 120, 23, 2, 34, 146, 139, 5, 70, 88, 192, 136, 166, 126,\n\t\t176, 119, 106, 104, 53, 33, 240, 53, 82, 158, 75, 155, 18,\n\t\t78, 173, 126, 225, 137, 25, 102, 173, 131, 113, 122, 89, 163,\n\t\t224, 164, 154, 179, 15, 124, 152, 210, 80, 124, 209, 74, 89,\n\t\t219, 139, 196, 86, 209, 26, 152, 8, 137, 157, 101, 54, 161,\n\t\t109, 153, 49, 104, 74, 38, 59, 31, 27, 184, 228, 36, 109,\n\t\t6, 219, 216, 144, 46, 183, 51, 121, 70, 5, 56, 226, 53, 215,\n\t\t57, 72, 121, 166, 150, 127, 169, 75, 129, 117, 37, 105, 178,\n\t\t93, 193, 24, 81, 25, 204, 245, 126, 201, 186, 43, 148, 208,\n\t\t242, 42, 71, 13, 165, 172, 89, 117, 2, 101, 146, 225, 72,\n\t\t166, 251, 9, 177, 212, 27, 194, 10, 161, 226, 137, 99, 232,\n\t\t185, 198, 44, 18, 71, 222, 75, 67, 51, 161, 2, 134, 189, 41,\n\t\t106, 23, 208, 180, 41, 247, 61, 170, 74, 122, 208, 214, 212,\n\t\t86, 144, 88, 152, 49, 205, 219, 9, 17, 239, 3, 81, 41, 177,\n\t\t249, 17, 215, 129, 13, 52, 57, 178, 28, 74, 173, 163, 160,\n\t\t182, 170, 148, 93, 176, 238, 179, 157, 59, 211, 27, 230, 30,\n\t\t51, 119, 193, 196, 230, 117, 54, 171, 195, 247, 158, 29, 83,\n\t\t139, 242, 25, 36, 209, 90, 123, 84, 42, 209, 44, 52, 211,\n\t\t116, 119, 17, 182, 186, 231, 29, 77, 53, 131, 122, 89, 180,\n\t\t142, 166, 152, 129, 29, 60, 69, 110, 249, 197, 148, 234, 145,\n\t\t114, 12, 235, 121, 58, 73, 197, 98, 211, 148, 70, 173, 238,\n\t\t13, 229, 115, 5, 177, 214, 66, 254, 148, 225, 32, 167, 11,\n\t\t179, 16, 226, 166, 244, 227, 142, 110, 221, 236, 171, 203,\n\t\t240, 81, 137, 165, 101, 32, 204, 220, 105, 39, 252, 26, 189,\n\t\t3, 241, 124, 197, 134, 58, 74, 149, 209, 37, 251, 206, 51,\n\t\t121, 89, 218, 243, 76, 90, 148, 178, 214, 143, 219, 96, 253,\n\t\t249, 167, 183, 191, 253, 250, 199, 95, 255, 242, 205, 215,\n\t\t237, 222, 53, 176, 148, 3, 141, 183, 150, 182, 116, 195, 80,\n\t\t208, 67, 217, 144, 196, 75, 73, 43, 155, 72, 139, 92, 98,\n\t\t29, 168, 181, 97, 0, 166, 137, 181, 10, 42, 2, 139, 19, 166,\n\t\t20, 80, 203, 197, 202, 255, 115, 7, 176, 93, 138, 137, 200,\n\t\t50, 52, 133, 190, 207, 49, 195, 104, 135, 138, 169, 119, 81,\n\t\t197, 178, 214, 16, 208, 47, 97, 180, 37, 123, 42, 212, 88,\n\t\t138, 110, 60, 236, 172, 27, 40, 163, 4, 241, 157, 174, 30,\n\t\t122, 94, 83, 121, 214, 53, 124, 178, 66, 78, 107, 108, 18,\n\t\t152, 185, 228, 18, 84, 20, 131, 205, 112, 38, 237, 14, 139,\n\t\t221, 62, 70, 72, 57, 98, 79, 106, 60, 241, 243, 241, 211,\n\t\t168, 97, 216, 248, 8, 77, 55, 90, 92, 202, 35, 161, 242, 98,\n\t\t172, 64, 27, 193, 153, 237, 167, 104, 238, 121, 163, 154,\n\t\t237, 57, 76, 49, 136, 110, 205, 83, 99, 9, 165, 88, 39, 167,\n\t\t11, 20, 47, 57, 47, 231, 49, 68, 170, 0, 161, 129, 18, 170,\n\t\t31, 229, 185, 208, 225, 114, 89, 199, 146, 2, 194, 77, 148,\n\t\t53, 140, 207, 71, 143, 171, 167, 176, 114, 92, 222, 172, 61,\n\t\t231, 17, 22, 252, 21, 141, 174, 174, 24, 234, 60, 34, 150,\n\t\t0, 190, 202, 158, 120, 252, 27, 119, 249, 120, 41, 109, 132,\n\t\t169, 132, 41, 93, 91, 58, 42, 39, 156, 186, 41, 67, 47, 157,\n\t\t161, 130, 248, 103, 180, 16, 19, 170, 58, 71, 242, 31, 66,\n\t\t209, 149, 140, 75, 89, 240, 69, 46, 121, 130, 22, 32, 194,\n\t\t102, 241, 245, 182, 185, 21, 18, 42, 62, 115, 213, 153, 44,\n\t\t221, 130, 0, 35, 172, 44, 183, 106, 126, 43, 222, 73, 155,\n\t\t80, 144, 86, 199, 106, 179, 16, 91, 147, 21, 218, 140, 102,\n\t\t210, 207, 164, 209, 94, 69, 71, 230, 213, 222, 83, 210, 162,\n\t\t128, 202, 8, 107, 223, 209, 184, 94, 157, 239, 235, 29, 150,\n\t\t90, 92, 83, 190, 87, 74, 76, 239, 93, 51, 183, 104, 145, 36,\n\t\t223, 233, 254, 29, 138, 135, 247, 51, 41, 172, 71, 190, 34,\n\t\t171, 240, 199, 44, 237, 231, 95, 127, 251, 245, 63, 126, 190,\n\t\t190, 21, 53, 254, 233, 27, 235, 90, 155, 201, 136, 218, 103,\n\t\t210, 150, 174, 151, 210, 208, 51, 71, 225, 38, 76, 172, 42,\n\t\t89, 167, 55, 149, 40, 43, 140, 167, 147, 249, 163, 168, 232,\n\t\t85, 214, 31, 74, 55, 239, 81, 117, 237, 53, 196, 38, 0, 109,\n\t\t167, 19, 156, 219, 242, 236, 203, 111, 26, 150, 215, 254,\n\t\t188, 158, 139, 253, 135, 122, 114, 179, 92, 121, 62, 60, 155,\n\t\t146, 11, 106, 40, 154, 161, 160, 112, 136, 54, 169, 64, 78,\n\t\t162, 16, 176, 160, 158, 106, 85, 54, 233, 107, 250, 247, 227,\n\t\t77, 15, 78, 107, 225, 202, 67, 124, 248, 241, 130, 119, 121,\n\t\t228, 168, 213, 192, 167, 185, 23, 78, 176, 177, 56, 15, 178,\n\t\t188, 33, 186, 86, 88, 239, 57, 206, 80, 94, 211, 90, 111,\n\t\t78, 216, 103, 123, 215, 79, 76, 71, 145, 158, 211, 154, 151,\n\t\t77, 243, 77, 151, 177, 38, 125, 61, 243, 150, 172, 167, 148,\n\t\t81, 80, 121, 244, 44, 110, 24, 207, 173, 145, 247, 225, 77,\n\t\t151, 220, 158, 50, 16, 83, 53, 223, 134, 112, 161, 65, 132,\n\t\t86, 163, 195, 105, 199, 41, 118, 44, 135, 101, 38, 205, 18,\n\t\t159, 191, 136, 239, 129, 94, 7, 165, 188, 157, 57, 131, 77,\n\t\t140, 77, 122, 245, 32, 149, 162, 53, 91, 218, 221, 166, 95,\n\t\t213, 131, 245, 211, 70, 109, 40, 5, 59, 193, 250, 68, 237,\n\t\t208, 164, 51, 92, 226, 78, 59, 250, 101, 122, 226, 93, 148,\n\t\t71, 87, 106, 137, 50, 101, 1, 116, 230, 134, 136, 165, 122,\n\t\t92, 54, 95, 59, 70, 175, 85, 160, 206, 233, 79, 131, 237,\n\t\t58, 13, 228, 197, 186, 30, 250, 232, 214, 109, 33, 87, 251,\n\t\t251, 213, 42, 226, 254, 65, 139, 132, 183, 159, 127, 250,\n\t\t237, 122, 253, 31, 63, 253, 237, 123, 148, 120, 254, 195,\n\t\t46, 151, 185, 231, 144, 15, 242, 213, 188, 211, 89, 184, 206,\n\t\t164, 52, 172, 113, 167, 28, 179, 1, 181, 42, 163, 102, 105,\n\t\t71, 23, 116, 81, 101, 134, 31, 75, 221, 38, 189, 134, 242,\n\t\t152, 232, 21, 71, 195, 120, 57, 141, 28, 196, 82, 199, 118,\n\t\t92, 21, 52, 229, 1, 68, 203, 173, 121, 153, 187, 213, 96,\n\t\t243, 132, 216, 248, 27, 174, 242, 205, 170, 65, 247, 141,\n\t\t79, 121, 146, 247, 147, 192, 192, 203, 77, 20, 51, 165, 181,\n\t\t217, 186, 154, 134, 89, 1, 141, 42, 28, 80, 56, 133, 98, 145,\n\t\t236, 102, 20, 194, 159, 138, 43, 37, 67, 243, 187, 69, 59,\n\t\t46, 178, 186, 169, 202, 204, 202, 97, 196, 20, 174, 101, 207,\n\t\t188, 217, 58, 82, 234, 113, 43, 157, 168, 36, 160, 157, 153,\n\t\t28, 189, 234, 125, 186, 178, 176, 116, 174, 55, 218, 162,\n\t\t133, 234, 169, 115, 63, 99, 195, 170, 76, 198, 247, 253, 11,\n\t\t140, 159, 91, 237, 139, 30, 218, 246, 220, 41, 37, 115, 210,\n\t\t196, 152, 213, 0, 68, 1, 199, 93, 245, 102, 100, 132, 135,\n\t\t58, 254, 128, 249, 231, 163, 58, 75, 186, 241, 146, 69, 55,\n\t\t161, 62, 94, 242, 108, 33, 29, 57, 245, 208, 175, 178, 89,\n\t\t24, 234, 97, 76, 118, 165, 138, 78, 3, 144, 13, 191, 45, 94,\n\t\t251, 187, 121, 66, 175, 105, 75, 180, 100, 60, 12, 155, 40,\n\t\t240, 198, 76, 221, 252, 16, 249, 52, 139, 133, 242, 251, 59,\n\t\t225, 101, 39, 152, 130, 126, 183, 47, 221, 26, 65, 39, 143,\n\t\t227, 12, 110, 215, 251, 191, 151, 129, 96, 227, 65, 130, 98,\n\t\t182, 234, 251, 116, 244, 252, 12, 114, 124, 179, 146, 143,\n\t\t52, 110, 211, 12, 200, 148, 158, 120, 92, 22, 243, 70, 222,\n\t\t181, 238, 198, 74, 56, 32, 135, 246, 187, 53, 11, 198, 124,\n\t\t200, 194, 244, 128, 199, 173, 113, 177, 10, 23, 158, 248,\n\t\t120, 129, 156, 4, 227, 200, 186, 78, 35, 105, 85, 188, 23,\n\t\t151, 103, 182, 190, 37, 219, 206, 126, 239, 124, 90, 75, 205,\n\t\t237, 149, 116, 99, 139, 192, 46, 247, 37, 116, 235, 47, 233,\n\t\t60, 186, 54, 42, 47, 43, 174, 32, 165, 184, 211, 62, 55, 37,\n\t\t203, 81, 185, 188, 182, 49, 251, 15, 197, 225, 223, 126, 254,\n\t\t233, 207, 111, 127, 253, 249, 167, 255, 249, 77, 22, 254,\n\t\t160, 111, 82, 174, 218, 234, 47, 133, 44, 86, 160, 217, 254,\n\t\t68, 187, 88, 77, 76, 166, 0, 240, 0, 201, 117, 58, 83, 28,\n\t\t255, 109, 230, 131, 123, 12, 181, 155, 166, 76, 215, 137,\n\t\t116, 129, 234, 23, 114, 15, 194, 181, 178, 2, 222, 35, 87,\n\t\t237, 4, 163, 83, 168, 21, 89, 117, 119, 149, 14, 237, 24,\n\t\t186, 165, 175, 202, 219, 231, 202, 80, 187, 252, 168, 201,\n\t\t221, 74, 45, 79, 70, 196, 135, 183, 102, 5, 140, 180, 234,\n\t\t19, 24, 17, 161, 237, 211, 202, 158, 81, 155, 103, 211, 18,\n\t\t81, 134, 99, 49, 12, 135, 71, 222, 171, 94, 241, 241, 82,\n\t\t197, 119, 57, 102, 12, 53, 97, 113, 232, 128, 155, 28, 166,\n\t\t126, 184, 209, 149, 111, 52, 222, 133, 189, 31, 18, 230, 140,\n\t\t113, 40, 227, 112, 239, 211, 199, 131, 92, 150, 214, 7, 116,\n\t\t179, 226, 68, 148, 100, 68, 27, 53, 100, 203, 37, 83, 91,\n\t\t216, 248, 241, 199, 149, 178, 248, 191, 235, 72, 232, 102,\n\t\t144, 110, 188, 89, 89, 45, 186, 172, 168, 144, 174, 81, 245,\n\t\t20, 214, 138, 185, 28, 57, 204, 145, 226, 58, 68, 176, 181,\n\t\t58, 142, 26, 86, 47, 115, 216, 241, 149, 66, 68, 8, 40, 30,\n\t\t57, 180, 210, 18, 132, 116, 211, 5, 35, 158, 17, 194, 217,\n\t\t242, 196, 45, 206, 143, 151, 38, 15, 175, 224, 54, 237, 82,\n\t\t108, 237, 37, 124, 135, 90, 229, 107, 242, 114, 216, 235,\n\t\t84, 156, 136, 5, 125, 248, 212, 213, 22, 146, 119, 128, 40,\n\t\t94, 45, 101, 170, 153, 87, 88, 175, 85, 219, 95, 118, 156,\n\t\t172, 140, 209, 59, 130, 186, 90, 106, 221, 96, 24, 83, 71,\n\t\t116, 121, 75, 226, 209, 194, 208, 116, 140, 14, 29, 13, 215,\n\t\t20, 32, 87, 208, 151, 87, 187, 73, 28, 61, 134, 50, 161, 78,\n\t\t155, 246, 77, 68, 215, 15, 181, 207, 232, 145, 91, 150, 199,\n\t\t215, 152, 25, 10, 211, 112, 66, 182, 216, 161, 195, 210, 227,\n\t\t94, 93, 232, 108, 131, 94, 0, 111, 220, 165, 41, 107, 249,\n\t\t232, 117, 22, 39, 34, 52, 117, 208, 190, 54, 198, 180, 19,\n\t\t85, 172, 103, 172, 157, 167, 27, 177, 98, 140, 172, 152, 47,\n\t\t147, 0, 160, 210, 48, 161, 157, 135, 236, 52, 141, 201, 215,\n\t\t75, 187, 169, 104, 40, 132, 27, 69, 156, 41, 254, 44, 243,\n\t\t209, 134, 230, 45, 5, 91, 3, 206, 161, 120, 89, 70, 44, 185,\n\t\t82, 24, 233, 113, 125, 46, 109, 57, 170, 217, 72, 86, 87,\n\t\t122, 217, 188, 52, 151, 76, 14, 101, 42, 200, 185, 93, 246,\n\t\t66, 141, 249, 213, 192, 93, 214, 227, 54, 41, 107, 101, 213,\n\t\t78, 26, 208, 179, 189, 203, 172, 136, 171, 34, 191, 210, 231,\n\t\t60, 114, 147, 87, 10, 206, 196, 136, 209, 235, 203, 232, 247,\n\t\t217, 64, 200, 19, 70, 252, 97, 13, 175, 174, 211, 147, 97,\n\t\t22, 211, 182, 23, 141, 102, 181, 156, 119, 152, 200, 57, 87,\n\t\t43, 147, 89, 98, 230, 148, 92, 51, 250, 150, 164, 210, 135,\n\t\t179, 191, 34, 182, 53, 65, 233, 100, 113, 19, 206, 0, 146,\n\t\t145, 58, 169, 94, 242, 192, 241, 93, 70, 174, 106, 68, 131,\n\t\t217, 74, 121, 13, 89, 150, 187, 219, 164, 31, 47, 5, 77, 212,\n\t\t135, 216, 123, 171, 63, 79, 243, 155, 173, 51, 156, 165, 58,\n\t\t253, 87, 90, 58, 202, 173, 230, 40, 106, 159, 234, 161, 153,\n\t\t123, 126, 89, 164, 249, 180, 229, 96, 84, 143, 238, 129, 220,\n\t\t159, 38, 223, 148, 157, 163, 157, 154, 185, 186, 242, 6, 126,\n\t\t220, 215, 254, 151, 223, 222, 254, 118, 254, 250, 219, 31,\n\t\t127, 254, 237, 119, 200, 132, 90, 252, 33, 207, 161, 17, 125,\n\t\t245, 176, 62, 113, 125, 197, 114, 108, 70, 47, 158, 56, 127,\n\t\t159, 232, 203, 63, 146, 147, 183, 239, 126, 166, 249, 170,\n\t\t83, 244, 41, 186, 163, 117, 252, 80, 4, 82, 69, 156, 228,\n\t\t102, 71, 250, 207, 219, 249, 249, 236, 249, 229, 83, 59, 205,\n\t\t171, 206, 207, 151, 189, 125, 57, 253, 249, 211, 143, 135,\n\t\t62, 179, 152, 112, 98, 110, 167, 0, 116, 116, 22, 211, 45,\n\t\t193, 175, 46, 35, 38, 63, 214, 127, 223, 252, 252, 249, 249,\n\t\t131, 125, 1, 143, 191, 94, 199, 143, 191, 220, 246, 211, 63,\n\t\t156, 30, 145, 6, 17, 173, 5, 123, 152, 0, 124, 139, 16, 75,\n\t\t64, 125, 96, 153, 233, 161, 254, 243, 118, 126, 57, 125, 126,\n\t\t250, 248, 241, 102, 199, 114, 93, 159, 200, 100, 127, 186,\n\t\t240, 109, 185, 74, 185, 127, 209, 14, 63, 94, 106, 169, 33,\n\t\t23, 4, 204, 234, 16, 145, 211, 87, 170, 22, 248, 92, 108,\n\t\t237, 171, 138, 32, 102, 228, 215, 98, 72, 69, 206, 212, 137,\n\t\t95, 124, 158, 163, 134, 148, 23, 54, 246, 28, 107, 61, 123,\n\t\t10, 85, 137, 173, 107, 152, 200, 61, 206, 48, 27, 154, 242,\n\t\t128, 69, 30, 47, 169, 5, 38, 222, 101, 245, 207, 188, 187,\n\t\t130, 227, 143, 165, 4, 144, 148, 105, 109, 196, 242, 228,\n\t\t221, 1, 1, 203, 35, 54, 197, 37, 247, 90, 161, 36, 106, 203,\n\t\t73, 169, 230, 107, 137, 218, 128, 166, 165, 214, 117, 148,\n\t\t89, 41, 28, 67, 206, 203, 136, 24, 1, 236, 234, 107, 60, 229,\n\t\t87, 176, 251, 102, 70, 172, 238, 2, 56, 32, 34, 98, 23, 210,\n\t\t208, 134, 150, 99, 107, 46, 117, 50, 52, 162, 102, 39, 20,\n\t\t82, 148, 100, 95, 133, 158, 35, 242, 135, 118, 9, 139, 0,\n\t\t43, 99, 196, 51, 135, 218, 49, 134, 84, 225, 192, 204, 16,\n\t\t139, 76, 17, 230, 59, 39, 180, 120, 87, 91, 169, 133, 69,\n\t\t70, 0, 109, 213, 56, 217, 155, 134, 217, 3, 153, 16, 4, 23,\n\t\t135, 102, 100, 48, 99, 19, 107, 178, 167, 208, 203, 210, 190,\n\t\t33, 125, 22, 212, 64, 3, 52, 2, 126, 166, 54, 43, 250, 51,\n\t\t217, 164, 35, 214, 57, 66, 30, 171, 200, 171, 19, 9, 124,\n\t\t16, 103, 137, 119, 155, 219, 82, 24, 177, 78, 207, 8, 53,\n\t\t151, 89, 80, 119, 209, 7, 211, 113, 189, 0, 247, 57, 150,\n\t\t45, 16, 69, 6, 98, 125, 136, 53, 80, 52, 168, 146, 146, 220,\n\t\t115, 230, 128, 92, 235, 201, 73, 65, 145, 37, 48, 40, 51,\n\t\t180, 190, 138, 78, 244, 88, 64, 154, 33, 51, 111, 199, 185,\n\t\t135, 140, 14, 228, 224, 9, 200, 107, 78, 92, 131, 219, 39,\n\t\t196, 172, 43, 24, 116, 227, 154, 207, 153, 67, 193, 122, 169,\n\t\t97, 244, 213, 202, 19, 209, 216, 34, 174, 249, 144, 159, 67,\n\t\t130, 15, 105, 112, 76, 189, 206, 244, 204, 249, 144, 149,\n\t\t158, 50, 186, 2, 201, 130, 193, 115, 244, 181, 158, 50, 21,\n\t\t89, 214, 150, 76, 69, 90, 75, 97, 225, 57, 2, 39, 62, 123,\n\t\t172, 215, 12, 115, 198, 9, 219, 23, 211, 206, 89, 182, 73,\n\t\t151, 73, 158, 177, 28, 156, 244, 39, 90, 101, 34, 69, 148,\n\t\t144, 90, 123, 2, 125, 46, 139, 70, 118, 84, 95, 48, 103, 67,\n\t\t111, 93, 92, 199, 154, 100, 119, 203, 36, 183, 140, 192, 100,\n\t\t45, 67, 199, 198, 69, 33, 91, 240, 153, 59, 151, 192, 24,\n\t\t33, 163, 14, 85, 87, 211, 76, 136, 53, 95, 83, 254, 41, 50,\n\t\t89, 105, 198, 222, 49, 193, 98, 189, 25, 26, 36, 19, 10, 193,\n\t\t227, 107, 134, 85, 34, 196, 120, 210, 216, 185, 47, 112, 185,\n\t\t146, 88, 3, 92, 138, 223, 66, 142, 79, 222, 175, 204, 239,\n\t\t51, 143, 16, 171, 102, 45, 228, 57, 97, 8, 12, 38, 84, 197,\n\t\t56, 234, 22, 157, 45, 45, 234, 114, 129, 92, 145, 103, 145,\n\t\t135, 215, 233, 192, 111, 64, 194, 196, 132, 25, 147, 229,\n\t\t42, 18, 166, 175, 113, 161, 119, 78, 134, 238, 159, 61, 21,\n\t\t244, 12, 47, 67, 59, 226, 55, 157, 240, 106, 34, 5, 123, 95,\n\t\t190, 216, 162, 98, 43, 198, 136, 237, 201, 59, 67, 118, 117,\n\t\t64, 155, 152, 126, 196, 204, 151, 130, 153, 158, 178, 4, 101,\n\t\t234, 235, 202, 182, 255, 124, 67, 98, 93, 105, 150, 38, 107,\n\t\t136, 87, 150, 30, 126, 87, 222, 239, 149, 128, 155, 32, 42,\n\t\t5, 158, 17, 30, 74, 97, 135, 109, 31, 209, 10, 125, 40, 62,\n\t\t137, 251, 53, 170, 44, 202, 218, 177, 25, 114, 44, 133, 49,\n\t\t99, 30, 132, 212, 112, 63, 225, 25, 228, 231, 126, 108, 63,\n\t\t252, 231, 243, 250, 237, 63, 255, 252, 205, 110, 248, 198,\n\t\t254, 90, 178, 85, 75, 172, 22, 70, 59, 242, 44, 97, 118, 188,\n\t\t16, 238, 169, 18, 90, 139, 147, 103, 228, 183, 121, 194, 174,\n\t\t144, 227, 138, 68, 97, 133, 126, 65, 12, 82, 116, 78, 74,\n\t\t79, 113, 106, 226, 4, 67, 111, 13, 115, 174, 254, 252, 122,\n\t\t98, 95, 154, 35, 18, 247, 71, 90, 51, 36, 145, 113, 233, 104,\n\t\t3, 83, 246, 108, 49, 172, 17, 135, 29, 127, 188, 228, 92,\n\t\t194, 178, 177, 126, 25, 200, 243, 211, 208, 235, 154, 223,\n\t\t31, 230, 227, 37, 141, 22, 106, 62, 114, 233, 97, 246, 199,\n\t\t59, 198, 80, 129, 98, 195, 224, 56, 6, 209, 158, 54, 134,\n\t\t243, 211, 193, 151, 43, 223, 249, 16, 246, 116, 124, 184,\n\t\t31, 190, 162, 255, 241, 211, 243, 167, 235, 111, 191, 92,\n\t\t231, 111, 63, 255, 245, 63, 255, 240, 252, 229, 107, 67, 143,\n\t\t22, 255, 1, 155, 235, 217, 186, 230, 47, 6, 155, 113, 168,\n\t\t229, 150, 219, 103, 203, 45, 183, 187, 229, 246, 230, 214,\n\t\t32, 207, 111, 107, 48, 183, 47, 214, 160, 154, 49, 53, 171,\n\t\t189, 32, 254, 182, 130, 138, 114, 73, 1, 45, 177, 99, 9, 179,\n\t\t238, 99, 253, 247, 237, 203, 233, 47, 159, 242, 144, 23, 125,\n\t\t186, 230, 237, 252, 124, 246, 243, 29, 80, 50, 220, 66, 207,\n\t\t104, 254, 219, 251, 5, 184, 39, 182, 103, 88, 8, 68, 140,\n\t\t172, 54, 228, 82, 88, 104, 138, 49, 44, 58, 214, 202, 231,\n\t\t70, 17, 136, 63, 122, 212, 116, 112, 31, 13, 16, 203, 146,\n\t\t90, 133, 133, 14, 164, 155, 248, 153, 211, 26, 38, 142, 8,\n\t\t157, 215, 234, 123, 174, 16, 138, 178, 0, 163, 204, 23, 218,\n\t\t16, 175, 119, 113, 148, 90, 133, 119, 186, 250, 26, 128, 158,\n\t\t104, 155, 185, 182, 40, 133, 196, 4, 212, 116, 87, 161, 57,\n\t\t84, 42, 148, 13, 48, 27, 234, 164, 99, 132, 208, 27, 28, 160,\n\t\t246, 101, 20, 49, 8, 208, 162, 152, 72, 69, 229, 141, 216,\n\t\t246, 137, 207, 56, 197, 246, 13, 179, 174, 254, 241, 146,\n\t\t21, 29, 218, 82, 168, 249, 181, 164, 119, 145, 24, 144, 118,\n\t\t41, 234, 13, 206, 28, 98, 22, 177, 191, 104, 213, 118, 128,\n\t\t185, 134, 168, 74, 121, 52, 242, 52, 53, 213, 132, 135, 252,\n\t\t59, 226, 122, 138, 47, 35, 22, 8, 156, 154, 18, 199, 243,\n\t\t180, 43, 236, 143, 171, 65, 80, 67, 250, 41, 2, 100, 137,\n\t\t109, 136, 117, 194, 204, 137, 146, 32, 241, 135, 94, 101,\n\t\t100, 35, 166, 247, 179, 164, 215, 147, 7, 128, 189, 196, 2,\n\t\t161, 151, 180, 143, 53, 70, 72, 155, 108, 193, 151, 59, 78,\n\t\t191, 81, 171, 207, 79, 227, 128, 145, 250, 247, 199, 42, 255,\n\t\t46, 121, 239, 19, 139, 189, 65, 12, 23, 29, 160, 188, 228,\n\t\t115, 65, 203, 39, 31, 164, 254, 84, 93, 19, 19, 201, 112,\n\t\t117, 122, 231, 223, 122, 31, 48, 93, 133, 78, 147, 60, 170,\n\t\t46, 233, 196, 116, 226, 70, 242, 211, 73, 245, 152, 142, 5,\n\t\t119, 230, 31, 143, 61, 96, 254, 251, 252, 54, 220, 22, 42,\n\t\t221, 79, 66, 30, 184, 170, 100, 220, 57, 42, 183, 150, 220,\n\t\t29, 132, 138, 245, 213, 198, 250, 94, 48, 203, 154, 154, 209,\n\t\t166, 224, 192, 15, 148, 88, 14, 36, 178, 213, 32, 216, 223,\n\t\t149, 241, 124, 158, 45, 177, 134, 126, 111, 120, 246, 4, 112,\n\t\t226, 49, 155, 141, 111, 219, 180, 151, 222, 29, 38, 152, 79,\n\t\t64, 90, 235, 157, 111, 250, 227, 241, 82, 83, 11, 163, 30,\n\t\t37, 199, 48, 174, 236, 157, 124, 166, 238, 94, 120, 175, 75,\n\t\t155, 110, 42, 92, 200, 94, 107, 138, 226, 142, 190, 158, 220,\n\t\t140, 8, 158, 204, 130, 78, 164, 104, 87, 136, 117, 34, 187,\n\t\t185, 103, 128, 250, 125, 171, 29, 179, 224, 223, 143, 151,\n\t\t25, 21, 226, 40, 191, 221, 198, 243, 147, 96, 88, 96, 195,\n\t\t24, 220, 174, 185, 134, 216, 197, 40, 200, 11, 1, 68, 133,\n\t\t111, 180, 165, 119, 133, 5, 109, 91, 90, 71, 212, 100, 219,\n\t\t214, 176, 170, 88, 2, 34, 162, 196, 248, 7, 242, 78, 228,\n\t\t19, 76, 59, 217, 173, 45, 42, 137, 49, 168, 35, 21, 206, 132,\n\t\t72, 102, 41, 79, 222, 229, 216, 48, 203, 75, 127, 73, 83,\n\t\t2, 11, 111, 222, 131, 176, 92, 10, 50, 152, 120, 27, 204,\n\t\t211, 132, 220, 237, 161, 76, 136, 200, 20, 171, 121, 219,\n\t\t213, 209, 18, 169, 210, 229, 68, 181, 0, 143, 140, 76, 60,\n\t\t198, 18, 98, 229, 184, 94, 57, 223, 128, 6, 99, 16, 103, 225,\n\t\t187, 69, 206, 170, 1, 128, 156, 9, 114, 185, 189, 45, 17,\n\t\t138, 123, 56, 38, 123, 1, 61, 143, 40, 118, 211, 192, 86,\n\t\t12, 81, 166, 181, 229, 96, 201, 85, 123, 103, 200, 9, 188,\n\t\t0, 67, 221, 81, 218, 38, 111, 93, 190, 135, 61, 43, 55, 234,\n\t\t138, 215, 101, 229, 84, 12, 81, 118, 197, 52, 72, 84, 209,\n\t\t9, 133, 152, 86, 111, 201, 84, 135, 61, 200, 200, 234, 0,\n\t\t200, 115, 20, 205, 129, 67, 119, 240, 41, 62, 30, 47, 165,\n\t\t173, 144, 22, 232, 111, 71, 44, 175, 49, 196, 1, 165, 131,\n\t\t181, 163, 192, 29, 159, 102, 192, 135, 20, 99, 135, 84, 98,\n\t\t17, 47, 84, 38, 251, 62, 35, 152, 34, 17, 218, 162, 84, 228,\n\t\t158, 151, 188, 219, 165, 13, 229, 240, 178, 229, 213, 202,\n\t\t14, 48, 213, 113, 83, 69, 88, 197, 255, 37, 227, 226, 237,\n\t\t231, 191, 124, 207, 27, 183, 248, 141, 140, 250, 158, 43,\n\t\t89, 97, 202, 163, 215, 208, 242, 107, 202, 112, 23, 223, 197,\n\t\t6, 149, 141, 112, 165, 66, 203, 39, 171, 131, 128, 44, 164,\n\t\t174, 179, 56, 131, 166, 44, 116, 27, 102, 209, 170, 45, 105,\n\t\t165, 27, 20, 114, 51, 161, 186, 24, 70, 40, 230, 92, 243,\n\t\t68, 85, 221, 241, 158, 116, 97, 94, 81, 149, 65, 169, 71,\n\t\t131, 15, 162, 56, 98, 37, 160, 42, 8, 81, 209, 228, 150, 91,\n\t\t55, 17, 149, 222, 136, 55, 195, 53, 133, 111, 175, 130, 72,\n\t\t215, 11, 224, 177, 10, 40, 86, 151, 67, 65, 164, 42, 87, 83,\n\t\t24, 101, 101, 2, 145, 177, 127, 45, 100, 208, 67, 135, 23,\n\t\t197, 19, 34, 115, 50, 172, 174, 70, 253, 158, 77, 73, 245,\n\t\t208, 53, 148, 224, 151, 218, 221, 207, 100, 110, 83, 130,\n\t\t153, 80, 128, 167, 199, 109, 101, 76, 57, 38, 36, 85, 48,\n\t\t40, 48, 227, 99, 8, 103, 131, 201, 143, 159, 200, 112, 98,\n\t\t69, 51, 234, 180, 217, 211, 159, 124, 252, 247, 147, 19, 247,\n\t\t80, 14, 1, 181, 17, 206, 193, 25, 56, 75, 254, 242, 2, 78,\n\t\t78, 248, 229, 222, 71, 138, 61, 140, 78, 44, 40, 224, 78,\n\t\t53, 140, 130, 151, 42, 22, 56, 223, 233, 59, 87, 131, 90,\n\t\t226, 45, 31, 185, 139, 25, 122, 221, 170, 0, 188, 242, 18,\n\t\t155, 161, 118, 179, 122, 100, 77, 87, 109, 92, 43, 239, 99,\n\t\t151, 5, 35, 129, 59, 208, 99, 43, 194, 99, 67, 18, 77, 155,\n\t\t98, 87, 115, 65, 155, 134, 212, 148, 194, 66, 103, 35, 135,\n\t\t140, 120, 11, 34, 186, 8, 36, 47, 146, 33, 70, 250, 115, 85,\n\t\t39, 78, 190, 163, 208, 224, 66, 255, 76, 179, 169, 45, 76,\n\t\t84, 9, 192, 205, 154, 113, 28, 52, 56, 46, 35, 42, 180, 137,\n\t\t108, 144, 88, 232, 143, 148, 168, 210, 32, 168, 107, 134,\n\t\t106, 187, 82, 19, 151, 178, 121, 81, 132, 200, 52, 221, 242,\n\t\t230, 16, 22, 53, 146, 80, 193, 137, 137, 186, 116, 239, 35,\n\t\t161, 160, 107, 163, 112, 247, 231, 20, 152, 165, 195, 147,\n\t\t151, 8, 137, 245, 16, 191, 94, 253, 249, 132, 96, 199, 145,\n\t\t102, 208, 212, 134, 37, 25, 34, 240, 135, 64, 139, 78, 148,\n\t\t234, 53, 216, 119, 64, 104, 78, 229, 240, 209, 36, 22, 58,\n\t\t46, 71, 208, 62, 50, 171, 181, 52, 136, 55, 137, 178, 133,\n\t\t216, 68, 154, 73, 151, 89, 78, 250, 220, 72, 235, 64, 102,\n\t\t143, 144, 215, 53, 195, 232, 58, 171, 19, 203, 44, 13, 104,\n\t\t191, 3, 242, 174, 47, 177, 0, 106, 63, 22, 172, 92, 173, 2,\n\t\t12, 226, 139, 96, 197, 60, 46, 241, 168, 114, 214, 221, 129,\n\t\t247, 136, 0, 7, 204, 139, 48, 243, 76, 32, 130, 130, 59, 126,\n\t\t242, 22, 215, 185, 1, 255, 157, 235, 120, 241, 203, 88, 226,\n\t\t69, 1, 34, 22, 93, 211, 65, 194, 40, 199, 70, 202, 84, 191,\n\t\t149, 251, 82, 158, 31, 154, 137, 143, 47, 38, 31, 36, 220,\n\t\t228, 238, 151, 47, 12, 170, 57, 123, 25, 52, 1, 56, 201, 178,\n\t\t215, 96, 167, 159, 203, 66, 138, 57, 99, 58, 20, 179, 158,\n\t\t150, 66, 199, 53, 196, 229, 239, 178, 34, 177, 88, 157, 242,\n\t\t37, 71, 53, 206, 207, 17, 180, 62, 203, 214, 139, 47, 151,\n\t\t102, 2, 41, 65, 0, 45, 213, 52, 67, 117, 191, 173, 199, 211,\n\t\t22, 164, 140, 70, 229, 75, 116, 73, 161, 6, 189, 108, 155,\n\t\t194, 64, 33, 87, 189, 217, 217, 138, 183, 25, 0, 133, 90,\n\t\t106, 174, 100, 46, 54, 29, 135, 238, 45, 213, 85, 220, 90,\n\t\t13, 102, 50, 98, 69, 85, 97, 116, 250, 40, 117, 90, 4, 144,\n\t\t241, 166, 189, 131, 35, 166, 44, 15, 4, 207, 26, 10, 56, 25,\n\t\t12, 169, 139, 118, 69, 161, 79, 65, 97, 241, 241, 146, 155,\n\t\t82, 58, 164, 118, 21, 190, 190, 120, 32, 160, 83, 176, 239,\n\t\t180, 15, 124, 199, 91, 209, 21, 45, 30, 192, 171, 58, 63,\n\t\t177, 14, 151, 144, 40, 47, 82, 147, 84, 126, 46, 38, 153,\n\t\t129, 213, 100, 207, 173, 66, 5, 134, 195, 171, 1, 244, 33,\n\t\t194, 165, 31, 140, 41, 165, 214, 67, 25, 154, 187, 237, 75,\n\t\t252, 63, 221, 100, 15, 153, 241, 202, 156, 229, 32, 24, 217,\n\t\t67, 5, 144, 102, 120, 170, 18, 210, 128, 145, 52, 160, 8,\n\t\t148, 118, 67, 244, 89, 214, 245, 132, 36, 38, 54, 107, 85,\n\t\t83, 65, 84, 107, 204, 168, 235, 151, 233, 69, 83, 16, 212,\n\t\t194, 156, 137, 118, 253, 57, 22, 221, 165, 108, 218, 97, 69,\n\t\t6, 29, 107, 132, 224, 186, 110, 133, 59, 199, 253, 239, 47,\n\t\t167, 201, 33, 16, 245, 0, 211, 6, 121, 219, 137, 136, 116,\n\t\t197, 218, 96, 191, 0, 28, 161, 10, 78, 108, 178, 170, 96,\n\t\t9, 100, 152, 167, 173, 58, 181, 200, 180, 254, 161, 171, 227,\n\t\t153, 92, 29, 227, 75, 254, 157, 223, 31, 215, 231, 63, 125,\n\t\t132, 62, 64, 53, 50, 50, 209, 88, 218, 150, 29, 145, 152,\n\t\t98, 150, 169, 205, 6, 39, 227, 113, 157, 173, 51, 131, 176,\n\t\t9, 38, 150, 246, 47, 143, 140, 132, 219, 180, 159, 62, 239,\n\t\t201, 74, 105, 110, 228, 31, 184, 109, 137, 54, 25, 124, 185,\n\t\t124, 183, 239, 92, 26, 87, 41, 170, 123, 11, 205, 38, 224,\n\t\t95, 199, 214, 37, 186, 164, 120, 120, 85, 134, 216, 163, 175,\n\t\t198, 198, 239, 219, 49, 22, 167, 25, 74, 175, 183, 55, 133,\n\t\t88, 118, 213, 150, 234, 16, 164, 153, 250, 141, 155, 193,\n\t\t119, 7, 143, 117, 83, 165, 158, 66, 83, 31, 161, 42, 139,\n\t\t143, 44, 27, 66, 23, 166, 173, 87, 59, 195, 63, 222, 238,\n\t\t159, 168, 42, 188, 93, 33, 39, 222, 236, 68, 162, 28, 176,\n\t\t99, 251, 220, 111, 254, 245, 222, 118, 130, 195, 107, 37,\n\t\t172, 140, 150, 62, 112, 220, 64, 237, 176, 148, 156, 16, 146,\n\t\t137, 135, 248, 231, 205, 207, 158, 247, 211, 254, 169, 30,\n\t\t125, 185, 70, 63, 251, 124, 187, 219, 127, 57, 140, 58, 194,\n\t\t80, 113, 63, 163, 50, 1, 229, 206, 200, 117, 202, 148, 34,\n\t\t126, 134, 127, 188, 125, 251, 228, 219, 21, 118, 194, 174,\n\t\t252, 114, 225, 227, 237, 252, 250, 201, 215, 123, 125, 188,\n\t\t164, 154, 20, 232, 41, 98, 7, 189, 143, 148, 174, 151, 76,\n\t\t115, 77, 125, 207, 179, 50, 31, 128, 78, 40, 72, 197, 235,\n\t\t198, 6, 78, 81, 165, 112, 215, 16, 1, 214, 34, 220, 60, 89,\n\t\t93, 34, 37, 93, 142, 193, 114, 243, 58, 212, 207, 123, 54,\n\t\t41, 227, 226, 185, 109, 247, 136, 100, 64, 156, 159, 4, 138,\n\t\t255, 169, 37, 142, 113, 84, 144, 204, 164, 184, 138, 14, 220,\n\t\t119, 185, 140, 2, 9, 190, 168, 118, 73, 66, 243, 113, 53,\n\t\t212, 19, 204, 208, 10, 218, 90, 170, 125, 53, 64, 197, 50,\n\t\t192, 243, 242, 196, 213, 96, 22, 145, 67, 23, 94, 31, 124,\n\t\t136, 60, 16, 248, 199, 162, 178, 75, 247, 208, 126, 103, 100,\n\t\t191, 51, 48, 31, 215, 227, 70, 112, 245, 121, 78, 6, 240,\n\t\t23, 80, 239, 176, 137, 98, 200, 125, 181, 146, 110, 18, 44,\n\t\t235, 187, 58, 10, 61, 137, 50, 130, 186, 203, 183, 185, 183,\n\t\t169, 79, 69, 175, 109, 90, 203, 14, 201, 179, 16, 144, 156,\n\t\t90, 149, 237, 47, 53, 114, 131, 122, 144, 241, 200, 187, 167,\n\t\t75, 233, 176, 249, 139, 194, 212, 213, 70, 189, 80, 129, 27,\n\t\t81, 220, 91, 93, 153, 89, 77, 93, 178, 28, 171, 21, 134, 131,\n\t\t196, 168, 65, 159, 47, 158, 66, 124, 164, 105, 57, 28, 12,\n\t\t171, 114, 131, 24, 171, 12, 244, 106, 195, 164, 241, 78, 177,\n\t\t135, 81, 245, 139, 74, 31, 77, 46, 150, 74, 83, 98, 76, 138,\n\t\t227, 81, 25, 67, 139, 250, 75, 217, 136, 223, 209, 231, 146,\n\t\t112, 84, 179, 254, 115, 226, 147, 103, 189, 181, 98, 35, 147,\n\t\t31, 67, 99, 104, 119, 145, 67, 203, 9, 144, 28, 83, 251, 75,\n\t\t47, 229, 149, 248, 61, 125, 249, 213, 0, 89, 157, 169, 153,\n\t\t106, 198, 170, 120, 247, 98, 42, 141, 66, 207, 84, 70, 221,\n\t\t35, 114, 182, 72, 96, 157, 139, 126, 74, 84, 50, 40, 214,\n\t\t225, 176, 194, 206, 227, 141, 62, 53, 70, 22, 4, 41, 190,\n\t\t214, 118, 44, 115, 211, 104, 145, 188, 2, 4, 153, 249, 6,\n\t\t46, 47, 227, 35, 24, 38, 106, 180, 52, 209, 161, 192, 91,\n\t\t230, 75, 254, 97, 236, 224, 63, 126, 254, 227, 47, 10, 61,\n\t\t249, 22, 54, 248, 217, 224, 230, 101, 77, 176, 174, 40, 62,\n\t\t40, 30, 241, 200, 187, 165, 26, 94, 0, 225, 189, 199, 208,\n\t\t26, 120, 92, 115, 162, 220, 118, 42, 213, 155, 146, 67, 160,\n\t\t206, 226, 245, 36, 205, 234, 117, 230, 8, 228, 176, 131, 125,\n\t\t209, 203, 17, 23, 125, 58, 184, 156, 169, 181, 27, 59, 141,\n\t\t85, 124, 240, 7, 191, 157, 184, 78, 107, 174, 42, 198, 92,\n\t\t218, 200, 229, 44, 42, 251, 203, 225, 3, 38, 150, 126, 223,\n\t\t0, 63, 213, 224, 211, 218, 230, 250, 243, 161, 44, 193, 6,\n\t\t188, 45, 106, 190, 219, 145, 193, 130, 180, 255, 188, 206,\n\t\t229, 181, 66, 187, 11, 56, 193, 236, 98, 156, 124, 57, 188,\n\t\t240, 187, 234, 24, 43, 207, 242, 209, 141, 254, 35, 163, 0,\n\t\t229, 243, 225, 219, 102, 102, 239, 4, 59, 19, 159, 196, 142,\n\t\t147, 214, 179, 159, 69, 176, 142, 187, 87, 80, 213, 227, 137,\n\t\t34, 162, 5, 65, 162, 21, 80, 251, 24, 104, 175, 167, 99, 191,\n\t\t91, 11, 237, 89, 236, 241, 181, 47, 102, 53, 144, 27, 171,\n\t\t81, 118, 231, 205, 168, 125, 51, 247, 49, 134, 247, 78, 8,\n\t\t222, 251, 153, 222, 211, 187, 65, 114, 111, 58, 229, 51, 246,\n\t\t14, 224, 27, 176, 180, 40, 88, 139, 119, 241, 81, 112, 16,\n\t\t123, 140, 39, 6, 105, 143, 112, 250, 51, 220, 206, 40, 224,\n\t\t222, 39, 226, 228, 76, 188, 121, 101, 167, 247, 95, 215, 14,\n\t\t95, 78, 207, 161, 111, 165, 79, 195, 233, 19, 182, 104, 235,\n\t\t228, 235, 137, 183, 212, 106, 168, 32, 137, 6, 168, 140, 157,\n\t\t199, 240, 214, 176, 45, 144, 245, 76, 211, 23, 128, 190, 127,\n\t\t124, 210, 21, 146, 23, 163, 174, 164, 83, 151, 146, 124, 52,\n\t\t9, 131, 159, 245, 243, 234, 212, 213, 24, 149, 225, 136, 96,\n\t\t203, 116, 91, 222, 39, 214, 247, 63, 168, 211, 252, 203, 31,\n\t\t127, 122, 254, 250, 219, 47, 63, 125, 45, 213, 108, 241, 79,\n\t\t38, 1, 178, 200, 200, 129, 232, 166, 248, 185, 215, 137, 94,\n\t\t201, 234, 132, 167, 208, 167, 136, 220, 68, 144, 131, 199,\n\t\t224, 114, 133, 30, 187, 34, 188, 197, 168, 87, 32, 9, 129,\n\t\t174, 79, 168, 17, 36, 24, 17, 81, 84, 32, 4, 69, 177, 215,\n\t\t105, 37, 188, 217, 130, 48, 145, 181, 123, 26, 52, 202, 9,\n\t\t41, 222, 203, 155, 74, 164, 205, 134, 150, 25, 106, 62, 35,\n\t\t204, 134, 6, 70, 53, 17, 170, 202, 179, 0, 24, 112, 14, 90,\n\t\t232, 127, 110, 180, 137, 193, 247, 34, 178, 48, 5, 191, 88,\n\t\t128, 70, 2, 4, 3, 215, 116, 143, 231, 208, 150, 200, 145,\n\t\t229, 164, 89, 220, 145, 138, 112, 40, 158, 99, 51, 248, 193,\n\t\t15, 86, 16, 177, 198, 31, 16, 115, 174, 236, 148, 82, 243,\n\t\t26, 176, 64, 42, 40, 35, 197, 77, 42, 25, 230, 4, 2, 131,\n\t\t152, 128, 212, 209, 170, 194, 206, 20, 229, 74, 208, 42, 108,\n\t\t213, 117, 81, 172, 31, 209, 167, 29, 65, 105, 152, 99, 53,\n\t\t231, 217, 242, 49, 21, 61, 115, 157, 249, 72, 136, 55, 105,\n\t\t110, 41, 27, 14, 29, 129, 5, 150, 233, 61, 222, 220, 24, 80,\n\t\t24, 147, 136, 230, 8, 59, 202, 44, 140, 162, 57, 5, 131, 159,\n\t\t116, 134, 155, 82, 61, 166, 197, 91, 10, 140, 157, 203, 2,\n\t\t117, 139, 238, 122, 161, 183, 47, 158, 242, 140, 195, 227,\n\t\t222, 50, 207, 26, 147, 92, 57, 77, 104, 221, 92, 147, 234,\n\t\t227, 152, 10, 4, 37, 138, 242, 205, 60, 73, 13, 99, 144, 31,\n\t\t16, 163, 74, 86, 74, 67, 65, 122, 204, 136, 12, 203, 12, 28,\n\t\t17, 110, 103, 26, 118, 226, 14, 61, 142, 88, 161, 26, 14,\n\t\t73, 132, 254, 100, 162, 219, 193, 67, 79, 188, 180, 101, 38,\n\t\t45, 111, 104, 80, 175, 211, 154, 55, 156, 147, 5, 168, 231,\n\t\t80, 227, 74, 124, 224, 130, 245, 122, 118, 141, 94, 17, 25,\n\t\t135, 248, 130, 197, 101, 1, 176, 138, 44, 34, 153, 49, 189,\n\t\t157, 73, 238, 0, 63, 14, 239, 146, 6, 240, 32, 138, 42, 134,\n\t\t162, 72, 186, 168, 94, 179, 234, 124, 134, 91, 185, 125, 204,\n\t\t62, 171, 58, 203, 224, 196, 48, 211, 40, 84, 24, 246, 41,\n\t\t212, 82, 27, 34, 63, 186, 108, 252, 196, 12, 107, 38, 240,\n\t\t65, 2, 132, 146, 149, 96, 164, 232, 114, 59, 107, 232, 149,\n\t\t107, 106, 40, 203, 209, 41, 206, 235, 92, 8, 49, 20, 16, 110,\n\t\t224, 139, 120, 27, 64, 190, 91, 110, 56, 113, 181, 201, 68,\n\t\t201, 211, 193, 218, 180, 144, 49, 227, 136, 39, 178, 210,\n\t\t85, 189, 19, 133, 37, 76, 188, 20, 108, 188, 74, 66, 253,\n\t\t144, 71, 47, 216, 121, 19, 248, 168, 179, 132, 52, 155, 50,\n\t\t65, 32, 20, 117, 86, 93, 111, 143, 11, 245, 233, 114, 158,\n\t\t129, 139, 8, 188, 64, 235, 26, 181, 7, 77, 167, 238, 94, 164,\n\t\t15, 18, 80, 145, 41, 228, 90, 16, 34, 6, 109, 149, 172, 214,\n\t\t130, 186, 1, 15, 204, 3, 242, 115, 2, 6, 224, 121, 131, 196,\n\t\t162, 111, 51, 205, 206, 194, 151, 158, 18, 49, 117, 20, 87,\n\t\t70, 121, 120, 106, 182, 78, 125, 16, 196, 238, 196, 64, 23,\n\t\t41, 166, 196, 57, 41, 216, 112, 100, 52, 8, 147, 180, 46,\n\t\t190, 59, 163, 49, 85, 195, 141, 32, 177, 177, 213, 100, 250,\n\t\t167, 153, 160, 25, 161, 198, 149, 166, 108, 60, 185, 226,\n\t\t58, 199, 209, 13, 240, 56, 125, 196, 92, 28, 41, 170, 163,\n\t\t206, 114, 170, 107, 7, 123, 173, 226, 165, 132, 8, 251, 190,\n\t\t82, 18, 156, 22, 198, 76, 250, 239, 181, 129, 75, 8, 207,\n\t\t243, 245, 46, 159, 19, 177, 228, 158, 94, 87, 143, 85, 47,\n\t\t190, 218, 83, 115, 28, 136, 236, 49, 116, 171, 27, 37, 101,\n\t\t75, 245, 117, 198, 223, 138, 252, 64, 209, 136, 117, 137,\n\t\t233, 113, 21, 219, 173, 157, 113, 116, 231, 174, 0, 112, 44,\n\t\t170, 176, 208, 253, 204, 2, 253, 8, 215, 17, 244, 67, 41,\n\t\t169, 130, 136, 97, 85, 18, 245, 34, 109, 161, 229, 137, 67,\n\t\t222, 71, 105, 230, 151, 118, 115, 250, 68, 208, 117, 188,\n\t\t116, 241, 83, 228, 219, 254, 64, 250, 82, 223, 80, 48, 99,\n\t\t11, 77, 99, 46, 182, 79, 21, 217, 42, 119, 70, 57, 138, 238,\n\t\t220, 84, 99, 7, 140, 180, 40, 238, 161, 214, 158, 101, 43,\n\t\t235, 124, 159, 75, 54, 49, 164, 49, 118, 139, 146, 142, 136,\n\t\t130, 64, 252, 124, 176, 92, 197, 3, 223, 73, 69, 222, 149,\n\t\t55, 106, 64, 29, 179, 140, 244, 138, 34, 127, 17, 36, 203,\n\t\t166, 36, 8, 232, 188, 118, 219, 224, 179, 80, 168, 110, 21,\n\t\t7, 199, 105, 168, 215, 54, 138, 114, 105, 165, 17, 148, 123,\n\t\t8, 112, 251, 198, 84, 178, 6, 209, 224, 158, 2, 46, 112, 156,\n\t\t106, 176, 231, 164, 58, 148, 248, 217, 227, 46, 53, 18, 93,\n\t\t35, 47, 55, 67, 35, 138, 190, 10, 4, 54, 61, 86, 68, 17, 85,\n\t\t152, 58, 211, 199, 48, 152, 182, 57, 173, 121, 222, 114, 130,\n\t\t145, 20, 74, 67, 99, 99, 231, 100, 248, 209, 176, 67, 16,\n\t\t189, 57, 138, 94, 131, 112, 7, 170, 64, 117, 20, 164, 119,\n\t\t61, 28, 62, 156, 101, 205, 105, 191, 154, 6, 53, 69, 234,\n\t\t132, 114, 152, 134, 75, 162, 6, 80, 45, 132, 154, 74, 77,\n\t\t56, 94, 62, 250, 202, 237, 17, 197, 233, 108, 208, 103, 237,\n\t\t0, 253, 137, 44, 5, 121, 201, 83, 31, 106, 133, 210, 87, 170,\n\t\t230, 181, 193, 165, 171, 168, 52, 214, 36, 67, 169, 8, 212,\n\t\t95, 145, 47, 118, 82, 186, 38, 254, 50, 0, 187, 216, 152,\n\t\t132, 191, 14, 88, 48, 111, 17, 130, 160, 186, 68, 56, 146,\n\t\t26, 52, 40, 76, 142, 171, 62, 197, 88, 88, 70, 177, 55, 98,\n\t\t123, 122, 150, 173, 110, 169, 128, 91, 22, 113, 224, 179,\n\t\t170, 64, 204, 84, 39, 244, 1, 25, 10, 24, 116, 234, 175, 138,\n\t\t211, 124, 116, 11, 250, 202, 142, 43, 138, 121, 102, 242,\n\t\t47, 19, 208, 84, 16, 175, 125, 138, 35, 223, 212, 220, 147,\n\t\t57, 122, 90, 218, 119, 105, 98, 142, 187, 9, 116, 14, 102,\n\t\t88, 85, 197, 20, 31, 241, 104, 11, 169, 119, 145, 49, 124,\n\t\t208, 105, 62, 16, 135, 91, 117, 135, 162, 175, 20, 130, 163,\n\t\t211, 180, 51, 157, 174, 129, 240, 89, 103, 202, 181, 20, 108,\n\t\t215, 203, 59, 181, 236, 39, 137, 106, 56, 20, 162, 155, 182,\n\t\t249, 168, 233, 127, 172, 90, 190, 206, 100, 139, 137, 54,\n\t\t83, 182, 52, 228, 164, 0, 45, 26, 72, 66, 130, 11, 38, 146,\n\t\t171, 163, 51, 165, 93, 83, 150, 11, 241, 35, 21, 154, 14,\n\t\t196, 73, 176, 205, 116, 25, 43, 150, 36, 43, 253, 63, 232,\n\t\t227, 68, 186, 94, 39, 167, 242, 216, 27, 196, 242, 91, 216,\n\t\t109, 88, 65, 75, 135, 255, 52, 153, 198, 20, 224, 211, 77,\n\t\t122, 213, 145, 37, 206, 38, 182, 105, 26, 125, 208, 87, 75,\n\t\t90, 188, 147, 105, 196, 49, 219, 142, 228, 58, 23, 163, 37,\n\t\t34, 89, 115, 165, 217, 49, 144, 210, 212, 185, 112, 95, 185,\n\t\t171, 198, 216, 74, 28, 32, 249, 140, 33, 181, 38, 66, 39,\n\t\t194, 234, 213, 146, 105, 158, 18, 125, 222, 64, 252, 26, 195,\n\t\t236, 242, 177, 242, 117, 41, 49, 80, 138, 29, 22, 77, 204,\n\t\t13, 230, 208, 16, 45, 126, 101, 26, 85, 217, 109, 80, 13,\n\t\t52, 52, 6, 87, 20, 249, 171, 221, 74, 74, 148, 235, 57, 248,\n\t\t164, 225, 68, 75, 211, 102, 13, 162, 123, 251, 172, 172, 228,\n\t\t46, 162, 136, 84, 177, 122, 230, 138, 42, 76, 228, 138, 10,\n\t\t154, 118, 121, 212, 199, 68, 74, 226, 62, 71, 35, 182, 168,\n\t\t208, 31, 227, 1, 78, 147, 47, 57, 134, 90, 91, 225, 242, 105,\n\t\t105, 176, 43, 51, 72, 150, 68, 156, 145, 75, 77, 203, 230,\n\t\t146, 18, 208, 215, 195, 19, 127, 213, 188, 24, 24, 84, 132,\n\t\t4, 92, 38, 163, 206, 74, 51, 117, 208, 109, 17, 163, 65, 171,\n\t\t59, 173, 101, 140, 72, 169, 28, 209, 86, 148, 235, 71, 68,\n\t\t52, 98, 108, 37, 180, 82, 147, 202, 122, 60, 72, 221, 201,\n\t\t121, 8, 255, 43, 121, 234, 56, 42, 246, 40, 25, 136, 44, 49,\n\t\t253, 152, 51, 177, 56, 169, 99, 117, 95, 205, 76, 20, 175,\n\t\t222, 155, 55, 83, 67, 75, 153, 229, 33, 46, 87, 57, 141, 249,\n\t\t106, 213, 250, 168, 76, 48, 228, 156, 157, 16, 167, 66, 12,\n\t\t200, 132, 242, 125, 208, 200, 101, 146, 12, 70, 37, 150, 205,\n\t\t46, 183, 233, 180, 62, 46, 112, 130, 226, 121, 178, 89, 123,\n\t\t17, 46, 99, 22, 223, 4, 163, 132, 198, 164, 179, 178, 186,\n\t\t242, 9, 1, 73, 10, 65, 176, 26, 182, 173, 21, 48, 64, 145,\n\t\t209, 25, 49, 17, 16, 85, 39, 148, 109, 85, 69, 5, 228, 3,\n\t\t250, 210, 16, 27, 115, 235, 215, 173, 136, 8, 156, 169, 234,\n\t\t41, 85, 178, 88, 202, 19, 241, 205, 172, 118, 48, 166, 94,\n\t\t29, 59, 64, 99, 228, 141, 214, 126, 163, 158, 2, 197, 2, 211,\n\t\t183, 56, 173, 22, 171, 131, 223, 153, 198, 79, 13, 172, 61,\n\t\t74, 185, 6, 242, 208, 20, 212, 114, 209, 254, 64, 121, 181,\n\t\t155, 24, 215, 5, 134, 6, 58, 3, 221, 2, 155, 70, 86, 83, 4,\n\t\t33, 218, 209, 130, 18, 40, 37, 162, 251, 134, 186, 41, 90,\n\t\t32, 2, 208, 133, 220, 183, 24, 228, 165, 235, 28, 200, 215,\n\t\t68, 78, 201, 195, 169, 128, 18, 235, 2, 174, 80, 165, 145,\n\t\t91, 212, 76, 57, 156, 201, 174, 168, 91, 193, 158, 131, 224,\n\t\t103, 147, 105, 211, 114, 34, 241, 241, 59, 222, 41, 199, 151,\n\t\t109, 155, 40, 193, 148, 88, 245, 213, 6, 49, 233, 168, 15,\n\t\t197, 170, 52, 136, 89, 81, 141, 234, 61, 33, 80, 44, 126,\n\t\t74, 44, 71, 42, 56, 208, 252, 118, 42, 207, 78, 51, 163, 235,\n\t\t102, 46, 186, 214, 33, 159, 39, 17, 49, 195, 158, 40, 106,\n\t\t234, 119, 66, 7, 47, 217, 162, 106, 37, 112, 100, 149, 54,\n\t\t176, 58, 253, 160, 62, 3, 142, 238, 113, 77, 62, 186, 237,\n\t\t249, 196, 224, 52, 250, 47, 208, 193, 84, 57, 127, 37, 67,\n\t\t30, 36, 166, 69, 18, 169, 50, 55, 43, 119, 196, 34, 67, 51,\n\t\t51, 237, 101, 214, 152, 105, 142, 161, 201, 228, 41, 249,\n\t\t164, 154, 183, 41, 152, 93, 230, 1, 109, 245, 22, 149, 202,\n\t\t177, 25, 1, 169, 129, 35, 220, 234, 106, 38, 75, 176, 188,\n\t\t167, 106, 82, 20, 154, 128, 115, 55, 5, 221, 172, 98, 93,\n\t\t16, 163, 179, 221, 105, 162, 183, 114, 36, 234, 134, 242,\n\t\t0, 9, 14, 56, 128, 133, 30, 104, 218, 24, 206, 103, 34, 216,\n\t\t67, 118, 7, 44, 128, 66, 71, 217, 32, 58, 157, 130, 59, 13,\n\t\t125, 195, 86, 35, 150, 213, 22, 184, 124, 90, 134, 17, 124,\n\t\t165, 140, 126, 83, 6, 196, 194, 188, 18, 165, 131, 117, 170,\n\t\t84, 56, 220, 69, 197, 44, 173, 170, 233, 137, 78, 227, 158,\n\t\t148, 48, 151, 241, 10, 100, 78, 100, 103, 16, 133, 81, 190,\n\t\t201, 26, 146, 170, 187, 4, 182, 34, 39, 205, 151, 91, 69,\n\t\t188, 0, 17, 143, 10, 11, 122, 112, 206, 146, 26, 63, 151,\n\t\t120, 189, 5, 109, 213, 187, 6, 2, 90, 168, 185, 3, 222, 160,\n\t\t73, 152, 65, 201, 161, 74, 81, 198, 4, 46, 210, 168, 252,\n\t\t140, 34, 222, 203, 76, 83, 148, 11, 182, 86, 62, 186, 137,\n\t\t164, 171, 80, 6, 39, 78, 43, 40, 114, 52, 39, 120, 216, 38,\n\t\t182, 192, 156, 172, 194, 62, 138, 26, 251, 234, 129, 200,\n\t\t172, 104, 240, 64, 3, 11, 141, 165, 94, 103, 82, 227, 89,\n\t\t180, 207, 80, 116, 134, 248, 169, 189, 100, 229, 17, 236,\n\t\t186, 248, 32, 1, 176, 30, 177, 190, 160, 26, 6, 35, 21, 29,\n\t\t44, 170, 37, 180, 58, 38, 118, 62, 248, 72, 15, 117, 152,\n\t\t17, 202, 202, 150, 229, 138, 120, 240, 57, 15, 93, 237, 74,\n\t\t154, 56, 136, 138, 162, 235, 253, 172, 220, 175, 140, 184,\n\t\t128, 251, 163, 34, 173, 168, 190, 204, 149, 184, 48, 119,\n\t\t96, 62, 50, 107, 140, 37, 150, 97, 26, 99, 141, 101, 157,\n\t\t232, 103, 13, 198, 54, 138, 205, 243, 204, 174, 189, 84, 22,\n\t\t224, 233, 25, 98, 149, 149, 84, 232, 239, 171, 62, 170, 166,\n\t\t3, 186, 152, 45, 157, 27, 77, 31, 201, 209, 62, 246, 19, 201,\n\t\t246, 17, 23, 199, 125, 251, 101, 131, 30, 186, 249, 108, 93,\n\t\t90, 238, 13, 10, 24, 89, 188, 34, 136, 30, 43, 195, 190, 98,\n\t\t133, 201, 189, 187, 230, 154, 75, 70, 99, 88, 150, 139, 183,\n\t\t176, 228, 13, 137, 191, 82, 26, 5, 71, 196, 235, 16, 7, 132,\n\t\t97, 55, 149, 177, 9, 129, 89, 185, 135, 58, 189, 234, 83,\n\t\t114, 51, 1, 119, 105, 126, 223, 246, 252, 151, 242, 14, 243,\n\t\t117, 98, 214, 134, 220, 83, 201, 226, 245, 42, 184, 193, 136,\n\t\t158, 169, 147, 107, 186, 118, 110, 255, 126, 234, 211, 228,\n\t\t144, 163, 182, 98, 161, 165, 47, 222, 194, 205, 65, 237, 254,\n\t\t42, 10, 209, 96, 201, 42, 40, 211, 216, 204, 33, 222, 138,\n\t\t206, 93, 157, 166, 177, 89, 88, 58, 57, 249, 49, 152, 49,\n\t\t213, 147, 129, 229, 166, 161, 37, 183, 120, 16, 9, 67, 9,\n\t\t101, 12, 107, 228, 174, 179, 151, 86, 207, 0, 115, 205, 216,\n\t\t20, 71, 58, 155, 90, 150, 68, 64, 149, 29, 189, 108, 37, 43,\n\t\t248, 52, 230, 82, 241, 81, 5, 109, 182, 252, 44, 113, 99,\n\t\t123, 149, 192, 26, 129, 209, 73, 166, 229, 228, 85, 24, 161,\n\t\t33, 171, 15, 21, 140, 57, 179, 80, 235, 153, 117, 150, 85,\n\t\t213, 206, 164, 30, 119, 201, 100, 78, 13, 83, 75, 106, 196,\n\t\t123, 3, 83, 107, 182, 218, 152, 61, 70, 101, 83, 148, 149,\n\t\t164, 191, 90, 181, 240, 75, 158, 7, 4, 229, 39, 204, 188,\n\t\t162, 166, 130, 27, 175, 121, 19, 149, 210, 195, 130, 137,\n\t\t203, 191, 17, 206, 104, 202, 246, 1, 139, 73, 209, 132, 41,\n\t\t244, 220, 21, 33, 80, 64, 27, 191, 33, 113, 155, 133, 89,\n\t\t246, 169, 226, 231, 74, 50, 157, 215, 91, 42, 138, 188, 130,\n\t\t27, 34, 235, 141, 138, 64, 101, 159, 250, 60, 186, 122, 147,\n\t\t135, 120, 247, 28, 49, 12, 230, 225, 200, 234, 176, 131, 220,\n\t\t218, 108, 74, 81, 44, 46, 142, 152, 164, 43, 183, 161, 177,\n\t\t76, 122, 10, 212, 151, 141, 246, 82, 178, 32, 159, 211, 13,\n\t\t115, 175, 12, 115, 33, 213, 114, 31, 12, 206, 232, 176, 178,\n\t\t197, 136, 156, 102, 249, 236, 102, 29, 82, 172, 157, 75, 61,\n\t\t185, 11, 142, 162, 170, 186, 76, 205, 34, 67, 134, 214, 138,\n\t\t122, 159, 228, 182, 17, 94, 125, 227, 139, 206, 65, 22, 10,\n\t\t150, 12, 205, 173, 110, 107, 207, 207, 76, 13, 171, 170, 157,\n\t\t32, 50, 191, 0, 38, 1, 83, 35, 105, 100, 200, 120, 160, 163,\n\t\t49, 232, 187, 186, 80, 142, 112, 205, 34, 184, 250, 19, 187,\n\t\t13, 62, 254, 45, 214, 92, 56, 87, 68, 141, 152, 64, 178, 66,\n\t\t98, 89, 137, 83, 83, 49, 126, 133, 154, 47, 232, 175, 163,\n\t\t49, 174, 28, 204, 139, 255, 148, 240, 72, 90, 146, 249, 184,\n\t\t178, 21, 218, 70, 175, 236, 78, 138, 70, 64, 188, 178, 71,\n\t\t212, 198, 196, 137, 136, 220, 98, 188, 93, 93, 226, 193, 145,\n\t\t194, 175, 105, 42, 125, 69, 27, 49, 170, 170, 230, 101, 167,\n\t\t111, 88, 232, 137, 47, 74, 240, 74, 161, 90, 213, 179, 145,\n\t\t151, 52, 69, 29, 38, 121, 186, 220, 80, 80, 44, 187, 91, 148,\n\t\t13, 226, 49, 9, 8, 208, 203, 98, 212, 147, 52, 198, 41, 30,\n\t\t169, 243, 18, 117, 219, 16, 246, 0, 255, 133, 24, 61, 50,\n\t\t247, 72, 94, 85, 29, 185, 178, 23, 162, 99, 71, 118, 127,\n\t\t154, 238, 35, 74, 97, 107, 145, 193, 179, 90, 55, 224, 221,\n\t\t29, 77, 125, 246, 35, 51, 240, 164, 197, 19, 237, 74, 70,\n\t\t137, 34, 2, 76, 68, 32, 177, 190, 71, 51, 125, 165, 98, 247,\n\t\t178, 108, 39, 157, 67, 64, 54, 24, 112, 96, 137, 76, 218,\n\t\t104, 71, 203, 44, 20, 3, 136, 238, 190, 81, 209, 203, 250,\n\t\t173, 10, 24, 194, 111, 61, 111, 133, 184, 204, 225, 60, 158,\n\t\t52, 185, 77, 170, 126, 59, 222, 176, 37, 229, 27, 205, 8,\n\t\t46, 199, 134, 208, 104, 229, 230, 137, 208, 70, 172, 50, 163,\n\t\t157, 190, 76, 55, 168, 166, 125, 198, 192, 148, 158, 172,\n\t\t200, 17, 199, 83, 204, 113, 216, 141, 178, 170, 199, 2, 193,\n\t\t2, 245, 193, 52, 233, 39, 111, 75, 225, 201, 69, 1, 126, 162,\n\t\t88, 52, 246, 154, 19, 224, 64, 8, 215, 105, 200, 183, 152,\n\t\t28, 42, 6, 56, 31, 59, 83, 84, 80, 211, 126, 78, 148, 225,\n\t\t37, 43, 99, 224, 199, 221, 141, 17, 184, 66, 84, 126, 196,\n\t\t74, 34, 64, 104, 153, 47, 209, 228, 207, 83, 243, 74, 115,\n\t\t229, 174, 148, 207, 228, 255, 81, 184, 251, 9, 252, 74, 70,\n\t\t59, 14, 106, 235, 73, 43, 204, 162, 99, 182, 7, 15, 75, 228,\n\t\t64, 83, 54, 210, 38, 91, 166, 57, 94, 95, 251, 12, 16, 166,\n\t\t26, 67, 76, 30, 185, 174, 101, 214, 49, 190, 156, 212, 23,\n\t\t164, 165, 18, 97, 85, 181, 112, 71, 26, 99, 168, 226, 65,\n\t\t65, 109, 232, 49, 55, 45, 235, 16, 145, 124, 121, 252, 31,\n\t\t156, 56, 8, 145, 134, 182, 122, 159, 183, 76, 170, 233, 222,\n\t\t170, 79, 189, 93, 6, 216, 88, 34, 202, 214, 66, 54, 199, 77,\n\t\t149, 100, 211, 194, 125, 113, 57, 193, 187, 161, 119, 28,\n\t\t215, 4, 200, 59, 114, 21, 211, 44, 32, 245, 146, 175, 109,\n\t\t182, 162, 113, 130, 114, 35, 223, 156, 20, 35, 146, 63, 19,\n\t\t218, 199, 89, 168, 9, 203, 152, 9, 6, 77, 74, 200, 68, 27,\n\t\t56, 151, 185, 216, 211, 49, 108, 26, 174, 55, 238, 139, 230,\n\t\t209, 222, 131, 157, 188, 145, 187, 76, 154, 81, 101, 72, 162,\n\t\t107, 122, 246, 212, 178, 14, 46, 89, 45, 19, 187, 227, 210,\n\t\t81, 243, 161, 108, 62, 34, 176, 238, 57, 29, 149, 120, 81,\n\t\t93, 182, 164, 9, 83, 69, 247, 105, 169, 201, 4, 43, 70, 245,\n\t\t229, 253, 140, 250, 0, 90, 229, 73, 243, 42, 194, 237, 129,\n\t\t18, 23, 113, 4, 96, 98, 107, 232, 36, 131, 197, 13, 191, 221,\n\t\t148, 242, 84, 235, 225, 170, 78, 17, 2, 250, 116, 22, 242,\n\t\t168, 173, 121, 184, 189, 84, 134, 227, 9, 60, 155, 105, 29,\n\t\t241, 176, 65, 144, 40, 170, 10, 132, 220, 132, 22, 103, 173,\n\t\t250, 168, 59, 81, 36, 239, 89, 59, 15, 88, 104, 175, 185,\n\t\t223, 193, 8, 181, 44, 66, 3, 89, 34, 150, 193, 5, 217, 60,\n\t\t110, 101, 23, 170, 79, 47, 79, 78, 135, 67, 118, 41, 114,\n\t\t172, 30, 110, 146, 25, 140, 88, 10, 133, 105, 175, 138, 102,\n\t\t180, 11, 2, 236, 9, 87, 28, 107, 131, 54, 192, 181, 109, 135,\n\t\t226, 169, 19, 227, 221, 22, 75, 184, 170, 19, 188, 162, 153,\n\t\t188, 31, 47, 185, 39, 176, 132, 77, 100, 237, 110, 107, 105,\n\t\t23, 24, 64, 28, 203, 83, 186, 5, 231, 103, 82, 37, 85, 148,\n\t\t250, 241, 122, 53, 253, 18, 212, 187, 30, 158, 156, 40, 42,\n\t\t152, 97, 132, 24, 246, 3, 87, 71, 141, 109, 235, 242, 223,\n\t\t45, 183, 7, 238, 119, 15, 172, 121, 213, 34, 227, 194, 185,\n\t\t122, 86, 169, 99, 97, 228, 174, 56, 147, 157, 8, 52, 8, 234,\n\t\t137, 152, 129, 134, 89, 128, 71, 201, 202, 48, 105, 101, 38,\n\t\t233, 232, 162, 228, 96, 154, 44, 53, 25, 223, 44, 172, 97,\n\t\t190, 92, 99, 44, 200, 74, 35, 68, 116, 216, 123, 114, 155,\n\t\t133, 180, 22, 172, 98, 219, 253, 25, 226, 227, 42, 140, 50,\n\t\t232, 43, 89, 136, 19, 16, 172, 223, 145, 199, 59, 170, 9,\n\t\t87, 228, 172, 53, 234, 110, 30, 93, 179, 180, 173, 227, 91,\n\t\t206, 190, 109, 91, 171, 93, 211, 28, 210, 165, 16, 5, 75,\n\t\t231, 184, 203, 149, 173, 146, 86, 249, 126, 20, 204, 98, 171,\n\t\t213, 154, 164, 156, 14, 234, 57, 75, 195, 237, 32, 86, 106,\n\t\t242, 44, 139, 153, 149, 89, 43, 81, 172, 203, 233, 105, 19,\n\t\t36, 27, 93, 159, 180, 234, 31, 31, 143, 151, 180, 98, 240,\n\t\t134, 44, 154, 166, 152, 125, 136, 109, 178, 148, 50, 40, 49,\n\t\t195, 58, 194, 16, 171, 4, 15, 133, 96, 183, 184, 238, 235,\n\t\t13, 83, 28, 167, 120, 250, 108, 37, 97, 145, 94, 124, 142,\n\t\t69, 85, 152, 149, 31, 160, 13, 192, 66, 68, 42, 164, 134,\n\t\t174, 113, 139, 163, 91, 254, 208, 188, 214, 98, 238, 158,\n\t\t195, 14, 198, 118, 235, 11, 51, 137, 120, 42, 153, 83, 207,\n\t\t50, 22, 11, 7, 46, 37, 77, 57, 11, 77, 255, 172, 14, 169,\n\t\t246, 155, 194, 75, 169, 199, 78, 166, 219, 251, 245, 172,\n\t\t164, 3, 81, 162, 198, 45, 180, 23, 130, 25, 255, 250, 37,\n\t\t171, 209, 222, 49, 164, 60, 67, 94, 87, 146, 69, 107, 26,\n\t\t196, 224, 25, 232, 181, 0, 226, 25, 133, 6, 61, 109, 81, 159,\n\t\t13, 68, 52, 34, 2, 173, 112, 31, 161, 180, 139, 158, 108,\n\t\t49, 92, 240, 78, 237, 38, 18, 239, 156, 55, 121, 84, 153,\n\t\t210, 191, 169, 28, 111, 74, 162, 85, 71, 5, 153, 18, 151,\n\t\t19, 221, 86, 87, 2, 109, 215, 182, 223, 150, 69, 65, 54, 186,\n\t\t88, 44, 35, 234, 202, 177, 185, 97, 193, 221, 7, 35, 0, 186,\n\t\t168, 164, 160, 78, 181, 134, 178, 206, 162, 250, 15, 125,\n\t\t120, 176, 57, 20, 18, 142, 55, 172, 174, 176, 168, 177, 194,\n\t\t78, 70, 246, 244, 118, 78, 227, 12, 147, 113, 11, 249, 92,\n\t\t249, 37, 29, 202, 226, 96, 56, 121, 137, 178, 30, 30, 175,\n\t\t159, 26, 69, 69, 81, 226, 71, 6, 79, 230, 149, 45, 247, 158,\n\t\t192, 210, 104, 148, 72, 50, 109, 160, 153, 146, 77, 167, 178,\n\t\t23, 221, 190, 242, 149, 202, 205, 123, 156, 198, 25, 20, 18,\n\t\t58, 238, 136, 170, 5, 57, 85, 234, 52, 154, 107, 49, 17, 214,\n\t\t81, 131, 6, 42, 117, 109, 26, 208, 88, 104, 125, 142, 142,\n\t\t66, 203, 17, 149, 90, 226, 20, 9, 208, 208, 232, 27, 181,\n\t\t249, 109, 29, 93, 171, 62, 231, 64, 170, 223, 98, 157, 103,\n\t\t94, 44, 6, 27, 74, 80, 165, 80, 242, 53, 181, 150, 233, 214,\n\t\t250, 164, 234, 153, 178, 130, 102, 235, 115, 102, 186, 45,\n\t\t205, 80, 14, 217, 21, 19, 143, 247, 238, 104, 252, 143, 151,\n\t\t146, 106, 64, 19, 147, 46, 243, 212, 58, 159, 163, 211, 63,\n\t\t156, 153, 181, 123, 131, 77, 227, 186, 168, 142, 169, 35,\n\t\t82, 116, 178, 81, 42, 229, 69, 132, 117, 175, 10, 79, 239,\n\t\t243, 2, 144, 12, 146, 151, 0, 1, 112, 238, 178, 160, 7, 166,\n\t\t67, 43, 172, 158, 180, 200, 79, 47, 74, 104, 3, 185, 88, 197,\n\t\t18, 63, 86, 70, 234, 37, 85, 89, 154, 143, 203, 136, 46, 135,\n\t\t85, 47, 56, 100, 115, 25, 122, 29, 141, 153, 73, 51, 155,\n\t\t222, 149, 18, 163, 164, 31, 247, 73, 254, 245, 249, 199, 191,\n\t\t75, 42, 147, 226, 15, 72, 101, 68, 24, 247, 163, 202, 20,\n\t\t13, 114, 92, 19, 30, 9, 254, 95, 170, 34, 242, 255, 66, 86,\n\t\t198, 114, 21, 179, 144, 162, 22, 45, 54, 167, 37, 189, 7,\n\t\t62, 135, 38, 242, 224, 74, 139, 171, 106, 25, 68, 150, 65,\n\t\t44, 175, 107, 36, 200, 46, 85, 163, 22, 208, 0, 56, 124, 102,\n\t\t150, 50, 18, 155, 208, 204, 169, 136, 97, 13, 172, 19, 173,\n\t\t121, 161, 223, 255, 184, 28, 45, 236, 41, 232, 230, 117, 133,\n\t\t42, 178, 114, 81, 112, 224, 169, 28, 180, 32, 235, 206, 101,\n\t\t41, 44, 18, 245, 206, 149, 101, 36, 134, 143, 146, 41, 210,\n\t\t24, 159, 88, 221, 87, 238, 22, 251, 35, 17, 84, 139, 202,\n\t\t60, 134, 181, 158, 142, 145, 184, 200, 235, 18, 85, 177, 174,\n\t\t76, 254, 13, 116, 34, 153, 218, 65, 66, 43, 71, 201, 86, 116,\n\t\t212, 105, 169, 241, 165, 137, 123, 3, 103, 120, 110, 61, 223,\n\t\t74, 195, 181, 206, 216, 2, 157, 170, 15, 30, 151, 165, 250,\n\t\t221, 125, 108, 55, 168, 33, 40, 106, 134, 225, 93, 147, 118,\n\t\t33, 185, 182, 165, 144, 85, 190, 15, 79, 229, 84, 229, 37,\n\t\t240, 210, 198, 162, 228, 24, 87, 4, 222, 162, 64, 55, 233,\n\t\t151, 211, 174, 130, 207, 140, 70, 41, 100, 97, 81, 21, 184,\n\t\t172, 115, 151, 48, 154, 212, 29, 204, 111, 25, 97, 25, 34,\n\t\t173, 61, 194, 112, 159, 218, 68, 241, 180, 190, 63, 174, 185,\n\t\t32, 208, 51, 130, 236, 67, 87, 210, 153, 149, 34, 30, 150,\n\t\t141, 249, 0, 213, 10, 238, 183, 49, 190, 236, 119, 163, 46,\n\t\t154, 74, 24, 115, 84, 246, 26, 213, 192, 234, 15, 111, 168,\n\t\t87, 55, 136, 162, 47, 185, 147, 73, 182, 107, 71, 170, 0,\n\t\t253, 213, 186, 66, 2, 37, 206, 157, 134, 54, 111, 154, 222,\n\t\t46, 212, 156, 145, 134, 186, 123, 235, 148, 210, 145, 220,\n\t\t18, 6, 122, 134, 105, 157, 196, 31, 171, 30, 201, 152, 228,\n\t\t176, 38, 239, 116, 103, 242, 203, 107, 76, 80, 56, 40, 22,\n\t\t107, 106, 86, 86, 159, 9, 203, 46, 147, 127, 244, 204, 244,\n\t\t124, 103, 155, 153, 115, 54, 62, 22, 26, 12, 101, 125, 29,\n\t\t138, 246, 40, 178, 148, 209, 141, 107, 132, 50, 149, 136,\n\t\t138, 76, 3, 69, 233, 241, 80, 32, 67, 35, 35, 27, 31, 66,\n\t\t82, 217, 215, 96, 11, 220, 52, 17, 156, 60, 244, 156, 98,\n\t\t157, 186, 5, 25, 7, 153, 137, 110, 113, 89, 138, 218, 179,\n\t\t16, 190, 32, 174, 161, 54, 135, 179, 210, 97, 236, 203, 169,\n\t\t132, 178, 157, 249, 17, 217, 114, 152, 95, 153, 54, 207, 183,\n\t\t27, 6, 116, 25, 152, 54, 185, 123, 87, 109, 143, 170, 27,\n\t\t125, 113, 208, 209, 250, 103, 38, 22, 76, 89, 232, 72, 9,\n\t\t148, 137, 2, 197, 195, 119, 171, 123, 245, 104, 1, 25, 130,\n\t\t183, 209, 117, 122, 161, 187, 182, 254, 145, 223, 233, 70,\n\t\t17, 183, 43, 197, 208, 160, 79, 233, 96, 28, 48, 23, 85, 19,\n\t\t153, 13, 3, 84, 41, 113, 35, 12, 86, 158, 157, 17, 133, 168,\n\t\t45, 79, 125, 175, 193, 56, 129, 19, 135, 156, 246, 6, 222,\n\t\t217, 18, 221, 206, 233, 244, 224, 68, 82, 140, 233, 89, 73,\n\t\t69, 225, 149, 219, 74, 164, 228, 185, 164, 148, 13, 159, 198,\n\t\t170, 240, 10, 150, 12, 183, 190, 166, 97, 178, 25, 253, 131,\n\t\t31, 191, 20, 248, 164, 112, 172, 121, 139, 52, 91, 25, 53,\n\t\t32, 138, 77, 43, 241, 176, 189, 49, 145, 83, 77, 24, 148,\n\t\t126, 213, 137, 110, 101, 137, 125, 2, 161, 109, 84, 23, 20,\n\t\t106, 86, 164, 102, 46, 175, 93, 78, 4, 76, 157, 213, 20, 129,\n\t\t44, 26, 88, 59, 52, 187, 139, 242, 83, 106, 159, 110, 164,\n\t\t166, 186, 73, 204, 156, 212, 14, 74, 149, 204, 221, 133, 97,\n\t\t222, 172, 121, 136, 11, 132, 51, 192, 180, 76, 190, 244, 158,\n\t\t244, 143, 110, 37, 199, 163, 171, 85, 159, 226, 12, 64, 5,\n\t\t107, 200, 104, 154, 151, 213, 44, 130, 60, 88, 210, 111, 237,\n\t\t74, 80, 5, 6, 30, 77, 141, 240, 116, 219, 45, 153, 212, 85,\n\t\t178, 205, 64, 231, 90, 44, 114, 58, 201, 54, 112, 115, 138,\n\t\t153, 136, 221, 182, 178, 135, 54, 108, 137, 28, 67, 135, 116,\n\t\t109, 107, 189, 4, 250, 137, 144, 152, 195, 142, 204, 247,\n\t\t75, 106, 63, 95, 27, 175, 179, 12, 245, 237, 254, 92, 154,\n\t\t36, 81, 114, 145, 74, 123, 245, 82, 224, 105, 5, 126, 35,\n\t\t106, 139, 45, 122, 52, 38, 6, 220, 163, 73, 145, 12, 2, 55,\n\t\t15, 11, 35, 240, 224, 75, 231, 130, 244, 0, 43, 121, 189,\n\t\t118, 156, 197, 20, 164, 211, 197, 52, 79, 127, 232, 124, 78,\n\t\t221, 220, 87, 68, 237, 88, 194, 211, 87, 85, 79, 89, 241,\n\t\t129, 203, 113, 246, 75, 35, 7, 180, 134, 224, 20, 29, 137,\n\t\t132, 39, 83, 85, 115, 201, 170, 166, 82, 211, 170, 192, 170,\n\t\t85, 207, 87, 242, 170, 10, 53, 47, 76, 197, 55, 135, 87, 26,\n\t\t60, 17, 231, 31, 206, 205, 1, 71, 198, 27, 75, 148, 172, 164,\n\t\t31, 121, 145, 150, 129, 145, 141, 28, 81, 46, 8, 118, 68,\n\t\t18, 133, 87, 93, 65, 199, 80, 72, 163, 152, 234, 168, 79,\n\t\t68, 235, 0, 195, 222, 52, 208, 122, 30, 147, 56, 197, 162,\n\t\t248, 9, 66, 77, 174, 68, 178, 78, 51, 173, 75, 38, 251, 57,\n\t\t49, 155, 98, 221, 38, 45, 238, 65, 172, 100, 191, 82, 186,\n\t\t106, 131, 102, 66, 34, 83, 92, 34, 159, 6, 161, 194, 98, 191,\n\t\t116, 10, 26, 198, 204, 205, 199, 188, 185, 181, 26, 124, 98,\n\t\t176, 235, 42, 30, 83, 39, 74, 121, 80, 65, 70, 69, 98, 104,\n\t\t137, 48, 242, 32, 164, 185, 200, 46, 240, 168, 240, 153, 72,\n\t\t57, 28, 167, 107, 237, 99, 109, 177, 126, 160, 143, 68, 61,\n\t\t106, 42, 161, 116, 164, 120, 109, 211, 120, 213, 218, 116,\n\t\t78, 129, 69, 79, 53, 27, 185, 28, 113, 216, 74, 231, 175,\n\t\t160, 87, 47, 9, 169, 206, 103, 100, 225, 195, 4, 31, 203,\n\t\t225, 182, 197, 52, 44, 153, 239, 148, 118, 121, 58, 146, 48,\n\t\t210, 177, 32, 241, 71, 138, 196, 120, 45, 102, 29, 9, 42,\n\t\t218, 205, 38, 139, 85, 6, 167, 193, 240, 177, 85, 134, 159,\n\t\t89, 219, 179, 157, 211, 130, 208, 205, 202, 91, 32, 224, 209,\n\t\t11, 86, 205, 244, 7, 154, 29, 177, 179, 151, 217, 88, 75,\n\t\t109, 163, 173, 64, 100, 88, 100, 171, 208, 245, 125, 25, 97,\n\t\t6, 38, 165, 178, 150, 102, 90, 146, 95, 7, 56, 12, 118, 165,\n\t\t107, 185, 129, 88, 139, 32, 129, 9, 133, 91, 167, 194, 155,\n\t\t207, 222, 24, 117, 106, 218, 114, 41, 130, 33, 251, 218, 164,\n\t\t76, 211, 44, 230, 226, 217, 244, 161, 36, 97, 103, 181, 143,\n\t\t114, 35, 121, 219, 206, 18, 77, 215, 83, 174, 234, 7, 105,\n\t\t30, 146, 151, 19, 88, 43, 25, 175, 73, 30, 84, 50, 142, 12,\n\t\t6, 48, 0, 180, 142, 54, 126, 110, 164, 29, 71, 31, 212, 172,\n\t\t14, 17, 78, 85, 81, 123, 197, 224, 3, 172, 103, 190, 28, 142,\n\t\t96, 236, 60, 78, 152, 184, 152, 47, 241, 180, 56, 23, 205,\n\t\t227, 234, 94, 29, 84, 84, 24, 36, 107, 155, 166, 76, 246,\n\t\t145, 49, 133, 46, 206, 205, 53, 205, 112, 66, 243, 211, 8,\n\t\t138, 33, 45, 183, 200, 149, 76, 128, 43, 208, 136, 87, 147,\n\t\t242, 74, 157, 212, 77, 73, 1, 59, 226, 38, 49, 206, 184, 66,\n\t\t68, 151, 2, 245, 168, 139, 226, 100, 175, 193, 235, 189, 252,\n\t\t165, 222, 220, 117, 20, 141, 105, 49, 23, 232, 9, 16, 119,\n\t\t110, 27, 127, 160, 169, 167, 20, 25, 13, 182, 156, 146, 37,\n\t\t56, 101, 213, 43, 199, 128, 168, 110, 240, 218, 21, 131, 253,\n\t\t102, 154, 192, 86, 93, 93, 42, 29, 192, 65, 96, 97, 182, 160,\n\t\t182, 39, 109, 154, 45, 76, 87, 150, 211, 208, 173, 102, 186,\n\t\t95, 169, 24, 9, 4, 119, 67, 102, 148, 225, 4, 103, 75, 3,\n\t\t50, 25, 104, 206, 171, 154, 237, 70, 173, 58, 41, 249, 99,\n\t\t88, 19, 181, 137, 73, 35, 127, 135, 18, 97, 139, 123, 141,\n\t\t80, 77, 12, 125, 192, 97, 28, 158, 222, 206, 138, 163, 70,\n\t\t200, 194, 218, 71, 85, 58, 139, 55, 159, 216, 46, 167, 192,\n\t\t204, 86, 148, 143, 117, 4, 15, 214, 125, 189, 70, 234, 35,\n\t\t37, 179, 31, 164, 122, 99, 103, 16, 145, 251, 88, 7, 212,\n\t\t117, 88, 6, 160, 190, 70, 114, 187, 26, 55, 177, 214, 244,\n\t\t95, 197, 43, 6, 34, 12, 147, 78, 105, 48, 169, 181, 151, 33,\n\t\t225, 178, 97, 34, 213, 69, 109, 4, 192, 154, 189, 149, 162,\n\t\t50, 29, 233, 11, 75, 45, 180, 250, 240, 6, 30, 117, 23, 99,\n\t\t65, 140, 76, 199, 89, 46, 22, 10, 201, 108, 95, 205, 124,\n\t\t75, 22, 124, 165, 168, 27, 146, 148, 134, 135, 34, 229, 203,\n\t\t176, 238, 32, 204, 185, 69, 141, 124, 85, 212, 2, 197, 64,\n\t\t172, 156, 46, 139, 162, 70, 248, 101, 101, 110, 73, 17, 223,\n\t\t50, 207, 16, 21, 100, 136, 118, 172, 110, 85, 83, 227, 218,\n\t\t11, 139, 101, 155, 199, 121, 211, 139, 86, 152, 99, 136, 77,\n\t\t100, 98, 153, 63, 88, 100, 78, 118, 32, 192, 160, 78, 176,\n\t\t213, 215, 26, 67, 223, 141, 79, 223, 72, 29, 144, 72, 74,\n\t\t144, 173, 227, 104, 206, 74, 19, 81, 173, 14, 214, 18, 106,\n\t\t105, 90, 59, 220, 169, 129, 144, 210, 212, 148, 21, 97, 129,\n\t\t192, 65, 213, 146, 43, 116, 174, 82, 235, 64, 219, 59, 226,\n\t\t225, 75, 165, 247, 57, 155, 83, 163, 1, 241, 112, 146, 82,\n\t\t42, 221, 18, 20, 248, 193, 226, 81, 6, 117, 83, 15, 79, 225,\n\t\t20, 87, 199, 120, 27, 176, 129, 39, 11, 173, 44, 75, 238,\n\t\t36, 104, 170, 69, 46, 167, 186, 219, 161, 9, 113, 236, 19,\n\t\t130, 171, 230, 179, 100, 38, 31, 13, 151, 250, 241, 146, 68,\n\t\t44, 245, 163, 244, 26, 234, 144, 205, 172, 149, 236, 124,\n\t\t63, 121, 234, 196, 167, 205, 51, 109, 4, 11, 105, 70, 88,\n\t\t239, 14, 56, 227, 251, 179, 130, 202, 29, 67, 88, 218, 82,\n\t\t249, 100, 135, 82, 250, 21, 233, 112, 102, 65, 180, 51, 83,\n\t\t50, 215, 106, 181, 129, 145, 180, 213, 164, 84, 132, 127,\n\t\t168, 138, 120, 88, 250, 35, 105, 88, 94, 157, 208, 66, 30,\n\t\t74, 178, 205, 88, 72, 195, 188, 67, 249, 186, 6, 196, 155,\n\t\t139, 248, 106, 189, 222, 29, 96, 155, 80, 133, 116, 109, 252,\n\t\t249, 233, 192, 66, 107, 3, 179, 76, 36, 166, 155, 134, 31,\n\t\t136, 212, 88, 226, 8, 94, 43, 10, 20, 57, 19, 178, 31, 128,\n\t\t4, 215, 224, 122, 209, 50, 228, 171, 221, 235, 14, 129, 61,\n\t\t41, 198, 126, 190, 52, 14, 37, 94, 85, 99, 243, 212, 220,\n\t\t180, 201, 186, 122, 47, 149, 241, 253, 20, 73, 254, 62, 153,\n\t\t192, 73, 198, 235, 153, 180, 231, 248, 181, 57, 2, 153, 140,\n\t\t169, 187, 132, 87, 131, 90, 55, 156, 133, 66, 71, 157, 145,\n\t\t209, 240, 215, 213, 182, 107, 135, 164, 238, 34, 9, 72, 31,\n\t\t156, 216, 34, 242, 222, 205, 70, 133, 222, 14, 0, 176, 124,\n\t\t221, 138, 201, 207, 69, 228, 139, 135, 116, 143, 29, 211,\n\t\t217, 28, 51, 222, 214, 242, 30, 16, 200, 76, 45, 90, 188,\n\t\t117, 91, 53, 183, 155, 209, 127, 59, 182, 93, 146, 162, 6,\n\t\t130, 54, 21, 140, 71, 86, 110, 252, 92, 213, 91, 28, 59, 63,\n\t\t15, 13, 26, 188, 94, 207, 53, 235, 74, 191, 225, 92, 82, 82,\n\t\t33, 19, 213, 137, 32, 229, 0, 7, 74, 120, 140, 105, 215, 219,\n\t\t56, 73, 120, 121, 236, 165, 67, 39, 248, 70, 254, 233, 117,\n\t\t181, 251, 34, 175, 59, 187, 93, 69, 84, 249, 117, 11, 238,\n\t\t236, 160, 137, 99, 189, 110, 72, 6, 171, 117, 177, 231, 122,\n\t\t192, 112, 134, 135, 74, 82, 24, 217, 126, 134, 126, 131, 159,\n\t\t223, 208, 29, 30, 111, 226, 58, 187, 55, 105, 4, 216, 42,\n\t\t130, 75, 82, 23, 73, 210, 249, 63, 24, 122, 17, 153, 140,\n\t\t226, 16, 131, 59, 144, 232, 109, 26, 161, 158, 198, 144, 82,\n\t\t197, 170, 144, 141, 174, 238, 204, 48, 243, 88, 124, 43, 18,\n\t\t38, 48, 193, 218, 157, 126, 21, 101, 136, 142, 83, 37, 193,\n\t\t183, 91, 214, 213, 24, 226, 172, 52, 73, 1, 36, 138, 1, 81,\n\t\t103, 55, 123, 168, 140, 139, 190, 89, 48, 184, 176, 206, 120,\n\t\t24, 105, 64, 165, 255, 233, 204, 130, 22, 104, 74, 26, 80,\n\t\t197, 38, 132, 10, 41, 145, 207, 226, 73, 59, 151, 5, 150,\n\t\t104, 245, 230, 7, 236, 32, 71, 211, 231, 218, 217, 75, 147,\n\t\t106, 30, 53, 43, 4, 247, 87, 43, 128, 214, 144, 217, 149,\n\t\t105, 64, 79, 58, 212, 213, 212, 114, 87, 55, 199, 172, 142,\n\t\t92, 152, 94, 236, 180, 150, 173, 177, 35, 203, 20, 209, 50,\n\t\t68, 190, 144, 89, 97, 90, 166, 70, 225, 105, 225, 118, 31,\n\t\t41, 84, 171, 213, 49, 138, 127, 5, 90, 245, 78, 134, 233,\n\t\t34, 22, 109, 57, 10, 186, 173, 93, 217, 226, 58, 158, 177,\n\t\t181, 230, 121, 158, 88, 159, 134, 26, 98, 192, 84, 6, 168,\n\t\t194, 218, 107, 208, 178, 169, 98, 195, 72, 79, 205, 195, 233,\n\t\t26, 122, 136, 226, 98, 255, 115, 90, 69, 226, 251, 39, 170,\n\t\t20, 44, 79, 111, 179, 145, 53, 34, 126, 121, 149, 207, 162,\n\t\t201, 64, 246, 109, 32, 199, 80, 216, 166, 75, 129, 116, 76,\n\t\t17, 32, 74, 54, 165, 128, 85, 100, 84, 0, 22, 62, 44, 164,\n\t\t96, 68, 100, 112, 141, 33, 143, 65, 93, 193, 214, 173, 41,\n\t\t106, 134, 181, 105, 109, 146, 230, 127, 171, 58, 201, 55,\n\t\t32, 140, 225, 158, 163, 249, 103, 203, 5, 154, 101, 88, 147,\n\t\t134, 120, 129, 236, 177, 72, 127, 74, 78, 4, 102, 128, 219,\n\t\t66, 28, 53, 3, 228, 234, 106, 95, 155, 132, 119, 88, 133,\n\t\t115, 117, 196, 82, 37, 115, 172, 129, 104, 221, 251, 242,\n\t\t77, 36, 122, 91, 183, 136, 19, 254, 38, 99, 171, 77, 209,\n\t\t146, 178, 75, 217, 117, 69, 101, 112, 229, 71, 18, 134, 236,\n\t\t246, 249, 139, 145, 240, 236, 239, 102, 176, 150, 16, 87,\n\t\t15, 205, 62, 217, 6, 117, 122, 211, 66, 186, 199, 210, 140,\n\t\t249, 138, 209, 150, 29, 73, 119, 93, 51, 60, 206, 224, 127,\n\t\t68, 47, 8, 202, 142, 189, 174, 166, 124, 76, 164, 151, 237,\n\t\t232, 108, 193, 111, 200, 95, 194, 70, 96, 208, 50, 49, 200,\n\t\t240, 81, 60, 170, 1, 141, 55, 129, 90, 183, 172, 220, 45,\n\t\t182, 93, 24, 117, 188, 101, 14, 233, 28, 49, 158, 194, 178,\n\t\t193, 203, 233, 76, 134, 235, 85, 83, 32, 9, 18, 9, 88, 34,\n\t\t213, 158, 204, 144, 95, 251, 103, 60, 127, 176, 117, 197,\n\t\t77, 203, 241, 34, 42, 57, 249, 41, 245, 179, 218, 174, 240,\n\t\t141, 204, 236, 36, 29, 232, 30, 47, 92, 206, 59, 235, 91,\n\t\t54, 155, 192, 163, 74, 214, 189, 192, 35, 158, 20, 249, 27,\n\t\t73, 152, 181, 211, 32, 235, 146, 173, 46, 85, 23, 59, 223,\n\t\t28, 188, 198, 133, 238, 117, 58, 177, 162, 63, 196, 249, 77,\n\t\t74, 101, 56, 84, 50, 36, 229, 28, 187, 136, 144, 119, 148,\n\t\t172, 173, 186, 105, 66, 177, 233, 226, 73, 74, 61, 115, 13,\n\t\t46, 97, 227, 42, 73, 149, 164, 148, 67, 53, 160, 5, 0, 196,\n\t\t41, 232, 171, 137, 251, 37, 170, 78, 19, 178, 213, 92, 120,\n\t\t237, 248, 121, 144, 9, 54, 205, 80, 229, 33, 167, 213, 188,\n\t\t91, 13, 82, 100, 169, 250, 52, 176, 154, 242, 197, 236, 10,\n\t\t107, 123, 179, 99, 155, 157, 154, 69, 76, 26, 164, 221, 169,\n\t\t157, 172, 150, 55, 192, 140, 50, 32, 170, 115, 114, 43, 96,\n\t\t245, 32, 236, 100, 182, 16, 249, 35, 128, 71, 181, 98, 245,\n\t\t108, 52, 24, 26, 249, 44, 214, 98, 162, 96, 98, 181, 42, 11,\n\t\t228, 118, 12, 255, 70, 242, 137, 102, 252, 166, 107, 189,\n\t\t194, 30, 173, 236, 240, 191, 247, 83, 218, 234, 215, 42, 91,\n\t\t152, 227, 105, 158, 235, 128, 32, 250, 120, 201, 120, 31,\n\t\t71, 201, 61, 164, 122, 185, 7, 239, 29, 156, 188, 131, 41,\n\t\t121, 5, 168, 242, 138, 213, 67, 108, 228, 11, 120, 167, 59,\n\t\t53, 43, 93, 202, 109, 179, 47, 50, 150, 227, 165, 195, 211,\n\t\t138, 142, 147, 214, 141, 210, 110, 32, 99, 43, 39, 48, 242,\n\t\t27, 208, 127, 64, 71, 79, 173, 97, 61, 203, 254, 141, 238,\n\t\t194, 145, 160, 52, 123, 39, 4, 234, 154, 152, 182, 108, 197,\n\t\t141, 151, 208, 65, 167, 17, 37, 13, 5, 65, 25, 216, 22, 87,\n\t\t34, 92, 229, 180, 154, 187, 234, 33, 46, 245, 77, 142, 105,\n\t\t158, 87, 86, 210, 83, 173, 90, 32, 84, 92, 81, 160, 198, 13,\n\t\t68, 127, 99, 232, 45, 30, 87, 50, 67, 63, 241, 18, 175, 32,\n\t\t53, 32, 111, 51, 31, 85, 145, 201, 94, 50, 232, 207, 107,\n\t\t182, 132, 199, 153, 150, 201, 14, 226, 213, 196, 155, 232,\n\t\t172, 185, 87, 211, 199, 28, 101, 3, 109, 86, 203, 148, 79,\n\t\t163, 141, 191, 179, 242, 142, 162, 172, 205, 96, 117, 31,\n\t\t161, 84, 157, 57, 255, 60, 139, 208, 203, 218, 129, 214, 148,\n\t\t216, 39, 51, 127, 168, 239, 225, 110, 69, 85, 169, 244, 201,\n\t\t99, 115, 236, 225, 198, 160, 219, 30, 101, 30, 71, 49, 70,\n\t\t105, 239, 106, 35, 141, 60, 54, 227, 11, 179, 169, 197, 130,\n\t\t201, 100, 221, 190, 148, 31, 55, 42, 12, 68, 97, 192, 174,\n\t\t129, 13, 237, 92, 44, 45, 103, 254, 124, 250, 212, 103, 221,\n\t\t127, 203, 82, 116, 85, 25, 34, 116, 145, 24, 71, 182, 87,\n\t\t85, 216, 219, 41, 108, 57, 151, 157, 251, 129, 89, 6, 48,\n\t\t2, 35, 9, 229, 65, 51, 2, 132, 205, 43, 244, 206, 191, 68,\n\t\t193, 237, 52, 85, 181, 253, 176, 93, 167, 201, 192, 149, 95,\n\t\t147, 116, 1, 125, 234, 98, 160, 238, 193, 62, 147, 52, 102,\n\t\t112, 115, 164, 8, 34, 189, 103, 196, 44, 25, 178, 117, 149,\n\t\t154, 246, 238, 88, 165, 200, 188, 187, 59, 95, 149, 94, 192,\n\t\t22, 167, 147, 146, 119, 43, 175, 61, 60, 222, 215, 60, 218,\n\t\t125, 70, 220, 14, 240, 16, 59, 89, 78, 34, 103, 181, 223,\n\t\t230, 62, 60, 157, 136, 219, 240, 172, 169, 128, 34, 197, 110,\n\t\t143, 68, 185, 123, 255, 210, 100, 178, 197, 102, 15, 107,\n\t\t170, 60, 62, 77, 159, 122, 222, 159, 166, 207, 199, 231, 211,\n\t\t103, 227, 83, 245, 90, 204, 246, 186, 109, 152, 225, 69, 67,\n\t\t180, 43, 146, 186, 135, 55, 168, 190, 133, 252, 247, 6, 201,\n\t\t30, 169, 101, 145, 183, 213, 203, 109, 243, 68, 52, 83, 212,\n\t\t167, 32, 239, 174, 211, 120, 249, 98, 51, 243, 16, 249, 75,\n\t\t238, 180, 226, 63, 102, 8, 245, 206, 212, 195, 174, 76, 76,\n\t\t42, 23, 47, 231, 14, 216, 229, 130, 90, 228, 137, 208, 4,\n\t\t18, 12, 158, 196, 189, 69, 25, 88, 197, 234, 149, 129, 91,\n\t\t124, 79, 66, 53, 118, 77, 120, 6, 248, 211, 48, 43, 139, 22,\n\t\t140, 137, 3, 80, 54, 139, 159, 209, 220, 101, 233, 88, 56,\n\t\t91, 78, 87, 235, 208, 104, 25, 164, 197, 121, 169, 154, 12,\n\t\t209, 166, 186, 155, 253, 126, 146, 132, 67, 113, 51, 6, 211,\n\t\t218, 240, 23, 245, 75, 47, 215, 38, 230, 176, 110, 122, 30,\n\t\t230, 156, 188, 5, 245, 160, 93, 123, 231, 30, 6, 22, 193,\n\t\t240, 71, 110, 143, 221, 43, 168, 53, 77, 189, 73, 4, 141,\n\t\t222, 75, 141, 174, 173, 191, 146, 9, 84, 157, 213, 203, 19,\n\t\t220, 126, 51, 207, 138, 123, 169, 23, 185, 33, 151, 22, 242,\n\t\t18, 167, 203, 180, 254, 52, 67, 77, 89, 138, 15, 99, 113,\n\t\t201, 69, 125, 232, 237, 15, 59, 25, 0, 61, 60, 227, 216, 99,\n\t\t25, 63, 215, 223, 165, 198, 9, 93, 115, 179, 60, 140, 219,\n\t\t160, 113, 178, 88, 28, 114, 101, 35, 226, 211, 213, 211, 118,\n\t\t106, 27, 151, 51, 215, 103, 188, 49, 151, 5, 230, 61, 123,\n\t\t37, 142, 207, 6, 6, 164, 101, 144, 56, 147, 179, 101, 195,\n\t\t97, 200, 4, 48, 118, 121, 139, 131, 7, 24, 170, 38, 30, 168,\n\t\t108, 143, 217, 108, 235, 97, 69, 45, 59, 52, 165, 49, 84,\n\t\t115, 64, 174, 25, 26, 100, 137, 231, 253, 147, 46, 76, 64,\n\t\t192, 81, 154, 83, 173, 53, 69, 110, 151, 87, 156, 121, 18,\n\t\t186, 138, 53, 59, 13, 42, 8, 67, 112, 48, 214, 131, 46, 89,\n\t\t7, 87, 149, 248, 24, 85, 115, 252, 67, 219, 65, 68, 128, 168,\n\t\t197, 215, 17, 131, 194, 94, 61, 1, 219, 74, 71, 72, 250, 83,\n\t\t43, 245, 99, 57, 87, 178, 252, 94, 177, 72, 143, 155, 10,\n\t\t134, 98, 16, 181, 171, 184, 163, 141, 19, 215, 102, 125, 134,\n\t\t111, 204, 70, 130, 209, 54, 193, 2, 77, 50, 43, 72, 59, 155,\n\t\t1, 69, 150, 151, 4, 145, 255, 88, 246, 51, 19, 9, 195, 251,\n\t\t73, 128, 233, 229, 116, 45, 215, 12, 206, 101, 28, 19, 167,\n\t\t55, 148, 75, 222, 196, 135, 125, 140, 238, 174, 49, 47, 241,\n\t\t94, 77, 202, 116, 163, 237, 97, 180, 208, 194, 232, 49, 231,\n\t\t38, 125, 51, 52, 145, 117, 86, 170, 14, 65, 39, 235, 142,\n\t\t69, 180, 225, 235, 82, 231, 54, 143, 140, 43, 80, 200, 232,\n\t\t50, 224, 68, 39, 18, 135, 130, 8, 209, 121, 143, 180, 171,\n\t\t36, 218, 202, 144, 0, 45, 123, 9, 28, 31, 156, 75, 247, 242,\n\t\t122, 3, 103, 87, 235, 91, 4, 69, 22, 79, 25, 3, 166, 186,\n\t\t108, 183, 58, 25, 181, 11, 44, 9, 117, 90, 191, 10, 3, 251,\n\t\t146, 98, 226, 170, 22, 136, 40, 214, 66, 120, 215, 232, 113,\n\t\t219, 123, 112, 92, 129, 243, 87, 9, 140, 209, 178, 150, 122,\n\t\t110, 126, 57, 246, 116, 207, 140, 69, 52, 85, 18, 143, 45,\n\t\t215, 163, 178, 14, 37, 223, 29, 187, 122, 201, 10, 28, 45,\n\t\t75, 105, 43, 206, 51, 227, 121, 87, 5, 48, 45, 91, 28, 106,\n\t\t160, 210, 229, 114, 153, 127, 118, 19, 244, 153, 9, 53, 132,\n\t\t75, 59, 83, 28, 44, 228, 82, 100, 20, 90, 50, 234, 71, 54,\n\t\t59, 213, 218, 102, 164, 194, 238, 138, 189, 89, 114, 213,\n\t\t169, 197, 110, 184, 62, 131, 111, 174, 221, 49, 202, 89, 227,\n\t\t74, 240, 114, 35, 156, 186, 92, 113, 236, 48, 249, 162, 85,\n\t\t138, 230, 215, 90, 142, 173, 120, 229, 35, 170, 147, 168,\n\t\t29, 173, 24, 205, 55, 165, 142, 246, 59, 135, 81, 49, 120,\n\t\t175, 143, 70, 18, 23, 104, 111, 133, 198, 113, 85, 100, 85,\n\t\t69, 22, 141, 197, 84, 40, 102, 54, 130, 135, 255, 113, 97,\n\t\t6, 24, 83, 211, 220, 76, 34, 58, 115, 58, 131, 23, 161, 185,\n\t\t169, 160, 64, 37, 185, 193, 78, 175, 205, 164, 104, 246, 236,\n\t\t147, 213, 12, 199, 177, 210, 101, 110, 154, 53, 174, 21, 223,\n\t\t174, 136, 64, 227, 118, 48, 184, 86, 39, 14, 178, 249, 237,\n\t\t166, 37, 94, 248, 57, 45, 243, 166, 203, 147, 4, 129, 151,\n\t\t137, 214, 157, 117, 97, 46, 148, 9, 214, 206, 223, 165, 127,\n\t\t14, 87, 84, 225, 83, 187, 168, 190, 27, 238, 187, 58, 58,\n\t\t54, 90, 255, 65, 99, 41, 216, 220, 142, 91, 200, 25, 105,\n\t\t131, 179, 144, 22, 182, 238, 109, 134, 53, 244, 120, 65, 50,\n\t\t103, 52, 105, 81, 212, 113, 131, 130, 142, 224, 40, 55, 49,\n\t\t119, 209, 211, 196, 18, 236, 22, 134, 212, 134, 194, 135,\n\t\t203, 220, 156, 21, 122, 59, 13, 135, 0, 34, 12, 141, 205,\n\t\t211, 22, 157, 134, 41, 180, 52, 94, 10, 36, 4, 135, 111, 189,\n\t\t248, 208, 41, 90, 72, 113, 146, 253, 56, 89, 3, 226, 166,\n\t\t1, 188, 82, 172, 8, 131, 1, 138, 110, 66, 100, 80, 82, 39,\n\t\t173, 197, 176, 110, 32, 137, 8, 140, 51, 25, 9, 29, 55, 176,\n\t\t69, 239, 172, 130, 232, 150, 46, 0, 53, 123, 182, 112, 12,\n\t\t225, 65, 205, 58, 120, 55, 229, 104, 152, 246, 44, 236, 141,\n\t\t253, 184, 166, 137, 132, 201, 45, 149, 166, 153, 6, 67, 169,\n\t\t81, 188, 197, 68, 214, 126, 39, 215, 112, 238, 86, 182, 222,\n\t\t50, 196, 190, 97, 173, 114, 181, 91, 36, 109, 167, 238, 206,\n\t\t184, 115, 59, 246, 189, 241, 89, 246, 120, 3, 34, 66, 88,\n\t\t95, 206, 128, 233, 177, 75, 107, 15, 177, 153, 47, 231, 141,\n\t\t100, 23, 120, 198, 199, 213, 188, 184, 202, 189, 141, 232,\n\t\t166, 143, 249, 214, 6, 158, 139, 170, 181, 157, 17, 199, 29,\n\t\t146, 193, 117, 178, 43, 8, 173, 215, 154, 198, 6, 174, 204,\n\t\t138, 194, 72, 130, 49, 122, 20, 52, 49, 251, 198, 176, 138,\n\t\t229, 112, 21, 247, 101, 184, 32, 39, 103, 100, 59, 196, 137,\n\t\t48, 111, 163, 11, 187, 156, 184, 56, 49, 151, 58, 119, 73,\n\t\t129, 147, 123, 105, 238, 153, 106, 13, 252, 6, 186, 183, 44,\n\t\t183, 233, 76, 101, 221, 236, 198, 110, 155, 15, 6, 226, 149,\n\t\t54, 54, 85, 119, 181, 243, 217, 84, 231, 50, 208, 215, 61,\n\t\t180, 44, 245, 82, 210, 8, 224, 205, 243, 174, 245, 86, 97,\n\t\t103, 245, 111, 103, 39, 115, 211, 173, 242, 203, 154, 155,\n\t\t154, 89, 105, 95, 246, 36, 46, 49, 38, 201, 93, 244, 209,\n\t\t92, 149, 27, 50, 198, 226, 3, 197, 176, 109, 70, 19, 97, 246,\n\t\t151, 141, 96, 18, 43, 90, 141, 61, 179, 24, 255, 180, 33,\n\t\t93, 216, 113, 129, 65, 145, 164, 28, 170, 71, 179, 62, 106,\n\t\t234, 148, 139, 120, 196, 0, 208, 185, 3, 89, 138, 196, 118,\n\t\t191, 150, 252, 200, 83, 241, 25, 70, 207, 104, 234, 222, 139,\n\t\t191, 7, 183, 152, 251, 5, 9, 155, 241, 114, 239, 206, 26,\n\t\t163, 88, 47, 187, 172, 81, 46, 183, 122, 11, 28, 20, 173,\n\t\t142, 102, 184, 40, 57, 249, 36, 85, 169, 209, 89, 68, 237,\n\t\t243, 106, 225, 22, 247, 166, 171, 19, 224, 102, 240, 104,\n\t\t177, 88, 219, 217, 207, 116, 163, 222, 253, 239, 123, 68,\n\t\t126, 223, 133, 33, 249, 99, 168, 136, 189, 245, 97, 105, 86,\n\t\t99, 235, 187, 51, 69, 230, 165, 246, 239, 52, 242, 202, 242,\n\t\t138, 110, 230, 199, 70, 31, 91, 207, 8, 195, 228, 164, 5,\n\t\t84, 138, 242, 213, 40, 112, 190, 177, 177, 191, 49, 226, 49,\n\t\t10, 1, 113, 168, 8, 61, 109, 34, 120, 25, 119, 180, 154, 204,\n\t\t205, 32, 67, 141, 113, 151, 69, 188, 54, 227, 10, 192, 136,\n\t\t200, 34, 243, 172, 130, 161, 120, 150, 231, 64, 153, 18, 102,\n\t\t245, 193, 229, 209, 216, 178, 219, 155, 169, 227, 181, 211,\n\t\t57, 42, 244, 193, 251, 170, 41, 96, 132, 16, 152, 65, 43,\n\t\t30, 240, 177, 132, 153, 233, 93, 43, 191, 189, 103, 206, 178,\n\t\t199, 126, 232, 106, 90, 124, 159, 188, 67, 199, 84, 81, 113,\n\t\t25, 35, 193, 112, 235, 68, 137, 103, 232, 78, 89, 137, 76,\n\t\t86, 40, 235, 69, 46, 100, 15, 152, 21, 242, 244, 25, 128,\n\t\t218, 42, 147, 146, 50, 202, 94, 140, 234, 117, 202, 227, 193,\n\t\t29, 204, 114, 71, 212, 144, 32, 181, 240, 241, 146, 107, 11,\n\t\t233, 40, 104, 99, 136, 96, 74, 131, 207, 30, 245, 177, 99,\n\t\t57, 110, 94, 121, 50, 26, 109, 11, 49, 107, 192, 230, 218,\n\t\t252, 3, 155, 121, 83, 158, 78, 185, 187, 205, 207, 141, 187,\n\t\t66, 26, 246, 211, 251, 89, 166, 23, 252, 239, 40, 172, 165,\n\t\t114, 183, 229, 232, 108, 27, 187, 218, 179, 89, 109, 132,\n\t\t155, 165, 55, 4, 195, 109, 196, 142, 190, 216, 50, 203, 123,\n\t\t39, 157, 78, 84, 93, 88, 241, 166, 121, 58, 211, 158, 214,\n\t\t225, 52, 65, 44, 32, 86, 95, 38, 41, 91, 155, 133, 45, 233,\n\t\t48, 21, 6, 164, 29, 63, 80, 67, 131, 22, 58, 61, 200, 193,\n\t\t166, 9, 238, 3, 237, 130, 110, 171, 88, 138, 208, 69, 105,\n\t\t1, 14, 108, 249, 65, 43, 147, 69, 133, 148, 182, 20, 75, 236,\n\t\t66, 229, 159, 2, 132, 208, 73, 87, 183, 103, 178, 108, 21,\n\t\t238, 175, 163, 186, 236, 99, 112, 242, 58, 239, 45, 166, 172,\n\t\t248, 202, 43, 188, 28, 4, 226, 138, 151, 137, 20, 79, 97,\n\t\t223, 122, 197, 90, 53, 12, 163, 55, 198, 136, 193, 80, 243,\n\t\t70, 245, 83, 247, 118, 74, 9, 211, 137, 22, 169, 210, 112,\n\t\t13, 88, 234, 12, 135, 86, 53, 137, 99, 190, 186, 195, 208,\n\t\t140, 165, 207, 72, 211, 239, 125, 165, 60, 197, 106, 57, 78,\n\t\t51, 134, 111, 145, 15, 162, 4, 188, 139, 196, 142, 108, 101,\n\t\t135, 194, 239, 4, 141, 38, 229, 141, 0, 240, 116, 22, 66,\n\t\t74, 171, 238, 244, 82, 203, 98, 126, 106, 81, 123, 97, 206,\n\t\t222, 31, 6, 89, 54, 104, 136, 102, 57, 8, 198, 31, 4, 183,\n\t\t221, 59, 93, 89, 184, 114, 199, 144, 55, 111, 248, 142, 96,\n\t\t179, 220, 164, 109, 216, 146, 113, 88, 90, 49, 169, 109, 107,\n\t\t147, 52, 134, 237, 185, 10, 145, 18, 30, 170, 237, 187, 154,\n\t\t197, 149, 26, 203, 45, 93, 224, 93, 14, 13, 242, 26, 168,\n\t\t219, 210, 25, 214, 157, 203, 121, 90, 241, 182, 30, 151, 101,\n\t\t208, 171, 193, 60, 189, 132, 127, 230, 5, 236, 181, 74, 51,\n\t\t209, 102, 31, 47, 185, 201, 174, 130, 140, 234, 245, 19, 139,\n\t\t252, 238, 48, 102, 176, 68, 31, 143, 39, 233, 125, 87, 237,\n\t\t106, 195, 66, 123, 45, 109, 154, 94, 138, 91, 103, 125, 39,\n\t\t229, 207, 254, 177, 180, 147, 25, 141, 84, 30, 22, 239, 211,\n\t\t183, 79, 199, 5, 17, 89, 147, 14, 196, 72, 237, 156, 156,\n\t\t109, 231, 177, 203, 125, 173, 115, 153, 135, 150, 246, 35,\n\t\t24, 189, 210, 62, 99, 156, 32, 190, 10, 118, 250, 229, 182,\n\t\t243, 77, 91, 220, 182, 118, 38, 84, 220, 223, 229, 117, 203,\n\t\t200, 223, 156, 251, 27, 159, 191, 114, 12, 199, 79, 209, 67,\n\t\t195, 62, 64, 226, 120, 149, 157, 113, 232, 152, 169, 198,\n\t\t56, 71, 179, 24, 28, 89, 86, 193, 6, 111, 77, 156, 179, 19,\n\t\t36, 91, 232, 197, 106, 107, 19, 1, 232, 44, 30, 187, 54, 121,\n\t\t228, 121, 35, 193, 48, 135, 127, 231, 8, 172, 155, 131, 51,\n\t\t213, 131, 111, 128, 40, 186, 123, 200, 58, 105, 41, 203, 253,\n\t\t30, 27, 223, 214, 141, 230, 102, 250, 134, 147, 17, 34, 104,\n\t\t229, 216, 183, 105, 237, 110, 204, 45, 230, 190, 171, 27,\n\t\t138, 165, 206, 240, 242, 80, 6, 123, 209, 166, 106, 165, 204,\n\t\t26, 53, 184, 118, 125, 131, 111, 188, 77, 227, 224, 149, 221,\n\t\t55, 217, 165, 48, 176, 107, 183, 219, 188, 117, 193, 203,\n\t\t46, 16, 134, 9, 74, 135, 17, 170, 35, 122, 83, 21, 231, 29,\n\t\t7, 88, 12, 157, 127, 199, 1, 154, 187, 71, 153, 170, 225,\n\t\t79, 78, 241, 77, 97, 115, 153, 126, 58, 215, 194, 167, 92,\n\t\t17, 126, 213, 87, 188, 253, 132, 17, 19, 127, 66, 111, 250,\n\t\t170, 82, 36, 10, 94, 191, 17, 22, 237, 55, 108, 251, 189,\n\t\t236, 230, 122, 28, 90, 243, 66, 75, 47, 138, 46, 230, 100,\n\t\t251, 198, 24, 59, 78, 108, 233, 154, 168, 149, 2, 159, 247,\n\t\t194, 38, 169, 48, 46, 149, 123, 19, 86, 99, 124, 114, 79,\n\t\t246, 134, 75, 79, 91, 122, 242, 21, 148, 29, 121, 231, 25,\n\t\t90, 49, 239, 197, 29, 20, 187, 119, 218, 36, 50, 38, 123,\n\t\t183, 33, 197, 24, 27, 205, 168, 143, 151, 110, 24, 242, 177,\n\t\t66, 215, 208, 57, 211, 25, 230, 191, 153, 180, 181, 4, 113,\n\t\t33, 110, 3, 142, 228, 109, 43, 143, 45, 220, 54, 43, 145,\n\t\t86, 144, 20, 119, 2, 203, 173, 56, 241, 28, 55, 14, 68, 102,\n\t\t166, 111, 66, 170, 153, 39, 89, 52, 208, 154, 44, 148, 77,\n\t\t192, 135, 35, 36, 138, 226, 225, 81, 97, 10, 252, 117, 27,\n\t\t172, 244, 183, 232, 135, 101, 45, 187, 195, 203, 146, 42,\n\t\t11, 150, 17, 131, 136, 175, 62, 46, 143, 4, 14, 163, 32, 182,\n\t\t176, 29, 131, 228, 232, 80, 93, 200, 222, 131, 212, 173, 117,\n\t\t161, 101, 251, 188, 99, 217, 111, 14, 115, 61, 155, 50, 50,\n\t\t197, 192, 42, 185, 108, 219, 94, 93, 88, 107, 215, 100, 21,\n\t\t213, 114, 7, 141, 80, 85, 26, 24, 187, 240, 214, 152, 25,\n\t\t34, 33, 227, 150, 235, 148, 89, 67, 189, 24, 117, 226, 85,\n\t\t244, 241, 188, 201, 249, 65, 240, 191, 23, 77, 165, 196, 110,\n\t\t240, 217, 130, 11, 80, 83, 154, 173, 90, 27, 109, 160, 251,\n\t\t206, 162, 146, 231, 84, 43, 236, 50, 70, 114, 177, 165, 33,\n\t\t139, 29, 59, 105, 141, 92, 220, 106, 64, 241, 43, 214, 39,\n\t\t171, 107, 206, 236, 93, 18, 201, 23, 216, 220, 253, 119, 34,\n\t\t58, 37, 146, 189, 51, 180, 140, 155, 67, 235, 123, 49, 90,\n\t\t94, 38, 91, 58, 2, 101, 85, 217, 117, 73, 33, 31, 172, 25,\n\t\t197, 187, 179, 112, 119, 153, 102, 241, 157, 27, 5, 206, 220,\n\t\t244, 238, 86, 68, 200, 226, 121, 171, 118, 60, 181, 40, 230,\n\t\t22, 237, 206, 209, 202, 79, 172, 17, 58, 171, 203, 181, 142,\n\t\t159, 26, 76, 150, 161, 83, 136, 14, 101, 231, 59, 60, 176,\n\t\t151, 104, 16, 144, 189, 255, 58, 13, 209, 176, 59, 148, 105,\n\t\t120, 200, 51, 23, 89, 253, 177, 26, 42, 168, 174, 17, 23,\n\t\t204, 142, 108, 153, 100, 190, 166, 2, 176, 114, 194, 233,\n\t\t181, 131, 139, 134, 195, 242, 204, 50, 121, 35, 50, 235, 165,\n\t\t129, 178, 90, 71, 41, 172, 157, 201, 94, 35, 212, 12, 173,\n\t\t206, 53, 146, 188, 137, 57, 113, 102, 61, 168, 124, 208, 151,\n\t\t106, 209, 209, 211, 152, 145, 135, 1, 181, 173, 76, 9, 92,\n\t\t157, 202, 116, 7, 92, 171, 241, 218, 81, 208, 55, 171, 40,\n\t\t96, 198, 217, 22, 201, 206, 153, 100, 234, 73, 135, 93, 90,\n\t\t208, 215, 57, 77, 24, 70, 215, 150, 32, 42, 114, 154, 7, 128,\n\t\t119, 95, 40, 35, 32, 211, 80, 126, 119, 18, 45, 149, 157,\n\t\t157, 192, 26, 205, 76, 231, 207, 205, 180, 211, 12, 237, 186,\n\t\t149, 121, 123, 23, 145, 206, 142, 80, 234, 160, 26, 199, 254,\n\t\t116, 77, 78, 251, 18, 189, 53, 51, 228, 111, 161, 83, 142,\n\t\t124, 157, 19, 154, 118, 109, 99, 101, 240, 68, 235, 56, 63,\n\t\t136, 29, 178, 38, 14, 86, 78, 84, 116, 229, 124, 60, 94, 106,\n\t\t158, 97, 204, 35, 207, 30, 82, 186, 54, 15, 167, 99, 122,\n\t\t40, 181, 77, 213, 24, 241, 87, 99, 100, 144, 5, 110, 8, 7,\n\t\t162, 67, 71, 53, 61, 104, 109, 79, 59, 163, 111, 167, 53,\n\t\t20, 113, 75, 53, 77, 210, 175, 26, 3, 115, 65, 253, 40, 194,\n\t\t118, 199, 137, 102, 49, 96, 105, 116, 85, 158, 54, 58, 212,\n\t\t0, 107, 101, 239, 121, 230, 137, 188, 146, 103, 27, 35, 107,\n\t\t107, 107, 67, 196, 45, 207, 88, 90, 113, 237, 196, 3, 92,\n\t\t59, 94, 141, 64, 131, 110, 175, 141, 136, 72, 6, 23, 107,\n\t\t27, 176, 187, 162, 2, 240, 169, 246, 217, 48, 17, 100, 139,\n\t\t121, 105, 237, 49, 54, 77, 77, 36, 218, 243, 156, 170, 104,\n\t\t18, 48, 224, 39, 35, 115, 202, 22, 122, 45, 68, 176, 159,\n\t\t104, 165, 9, 172, 163, 39, 70, 138, 134, 2, 52, 49, 162, 176,\n\t\t62, 93, 226, 137, 149, 225, 178, 131, 53, 63, 234, 220, 113,\n\t\t249, 86, 226, 160, 21, 204, 6, 28, 28, 206, 225, 134, 41,\n\t\t188, 118, 171, 1, 87, 174, 217, 18, 209, 102, 237, 56, 99,\n\t\t92, 178, 126, 113, 195, 81, 56, 213, 24, 88, 154, 174, 149,\n\t\t236, 164, 149, 98, 157, 109, 152, 215, 105, 24, 140, 173,\n\t\t251, 139, 163, 50, 24, 144, 110, 14, 145, 40, 90, 174, 113,\n\t\t235, 172, 103, 197, 235, 159, 130, 100, 172, 50, 39, 46, 215,\n\t\t67, 221, 182, 195, 138, 41, 75, 182, 27, 96, 165, 109, 234,\n\t\t218, 255, 50, 179, 225, 75, 229, 205, 27, 159, 215, 96, 168,\n\t\t203, 26, 57, 105, 15, 202, 43, 83, 76, 48, 230, 104, 237,\n\t\t175, 77, 3, 79, 42, 34, 130, 23, 30, 151, 115, 63, 160, 182,\n\t\t19, 12, 4, 6, 182, 75, 138, 173, 51, 52, 207, 53, 172, 188,\n\t\t208, 182, 56, 25, 15, 13, 162, 149, 147, 54, 166, 67, 173,\n\t\t0, 82, 152, 213, 168, 18, 80, 36, 106, 137, 130, 60, 20, 156,\n\t\t43, 111, 12, 81, 63, 173, 196, 226, 8, 139, 247, 186, 76,\n\t\t236, 179, 99, 109, 218, 208, 48, 230, 50, 195, 142, 205, 58,\n\t\t196, 131, 143, 138, 119, 54, 163, 128, 126, 175, 22, 25, 61,\n\t\t46, 147, 56, 137, 181, 203, 41, 107, 225, 113, 86, 189, 78,\n\t\t126, 132, 2, 113, 210, 174, 77, 87, 12, 1, 96, 13, 230, 146,\n\t\t181, 154, 183, 99, 50, 149, 58, 7, 138, 241, 238, 24, 175,\n\t\t145, 173, 242, 180, 223, 23, 140, 36, 247, 185, 188, 183,\n\t\t190, 197, 131, 179, 230, 70, 12, 139, 152, 166, 181, 41, 165,\n\t\t223, 214, 119, 118, 136, 168, 60, 141, 125, 193, 6, 205, 208,\n\t\t5, 52, 57, 239, 81, 234, 225, 165, 103, 54, 192, 166, 13,\n\t\t238, 57, 109, 89, 27, 228, 253, 144, 37, 236, 175, 175, 191,\n\t\t254, 252, 151, 95, 254, 215, 249, 246, 127, 255, 231, 79,\n\t\t127, 252, 237, 215, 111, 173, 94, 83, 250, 202, 20, 214, 82,\n\t\t38, 83, 216, 234, 168, 108, 233, 249, 170, 202, 119, 136,\n\t\t26, 97, 164, 126, 163, 232, 230, 163, 117, 190, 150, 94, 67,\n\t\t75, 71, 35, 52, 36, 179, 143, 185, 187, 142, 109, 177, 100,\n\t\t197, 50, 211, 211, 168, 132, 144, 219, 71, 157, 105, 213,\n\t\t59, 59, 10, 4, 48, 47, 34, 114, 7, 11, 218, 179, 106, 133,\n\t\t235, 172, 153, 229, 20, 205, 28, 195, 169, 98, 62, 15, 163,\n\t\t186, 67, 58, 12, 114, 31, 37, 29, 205, 227, 88, 41, 106, 172,\n\t\t223, 35, 91, 178, 159, 39, 219, 78, 76, 205, 55, 24, 171,\n\t\t60, 107, 133, 15, 179, 241, 218, 96, 219, 68, 165, 47, 188,\n\t\t100, 115, 20, 8, 37, 181, 126, 202, 210, 60, 204, 102, 47,\n\t\t91, 86, 50, 111, 150, 4, 201, 27, 14, 199, 167, 156, 121,\n\t\t145, 33, 168, 26, 63, 176, 22, 194, 48, 64, 91, 170, 129,\n\t\t104, 18, 27, 156, 116, 247, 121, 138, 38, 33, 207, 73, 139,\n\t\t234, 236, 217, 104, 160, 138, 181, 149, 198, 254, 245, 194,\n\t\t91, 76, 157, 22, 90, 26, 247, 90, 87, 90, 91, 237, 188, 103,\n\t\t62, 18, 95, 120, 51, 122, 134, 82, 217, 59, 157, 142, 208,\n\t\t89, 235, 53, 66, 76, 85, 185, 237, 85, 82, 129, 197, 114,\n\t\t65, 179, 177, 139, 185, 56, 108, 90, 92, 168, 91, 72, 20,\n\t\t126, 67, 241, 200, 224, 119, 100, 170, 88, 67, 183, 122, 69,\n\t\t76, 80, 137, 132, 46, 163, 226, 179, 124, 162, 17, 24, 76,\n\t\t234, 167, 90, 20, 140, 159, 186, 174, 33, 243, 55, 140, 94,\n\t\t41, 103, 2, 12, 43, 160, 22, 71, 201, 71, 174, 33, 55, 17,\n\t\t156, 150, 152, 196, 182, 181, 128, 216, 180, 223, 187, 37,\n\t\t35, 192, 38, 68, 228, 171, 53, 126, 52, 66, 224, 180, 73,\n\t\t179, 25, 96, 178, 36, 242, 5, 16, 87, 215, 82, 154, 228, 140,\n\t\t101, 45, 179, 17, 102, 156, 41, 161, 168, 7, 210, 76, 139,\n\t\t122, 176, 11, 34, 156, 6, 181, 10, 106, 102, 218, 220, 26,\n\t\t254, 129, 192, 43, 106, 119, 180, 49, 96, 162, 105, 194, 196,\n\t\t145, 12, 185, 59, 119, 46, 41, 253, 140, 8, 177, 41, 230,\n\t\t20, 141, 116, 176, 132, 151, 113, 207, 116, 197, 26, 100,\n\t\t118, 0, 107, 90, 108, 127, 20, 5, 219, 95, 185, 104, 161,\n\t\t177, 40, 246, 212, 231, 209, 69, 165, 140, 117, 212, 140,\n\t\t198, 18, 199, 84, 203, 12, 228, 15, 113, 245, 43, 107, 183,\n\t\t190, 124, 52, 181, 174, 193, 198, 32, 251, 109, 170, 235,\n\t\t7, 178, 61, 229, 28, 107, 6, 115, 42, 180, 113, 74, 102, 123,\n\t\t212, 220, 89, 37, 93, 59, 19, 115, 149, 157, 159, 129, 63,\n\t\t83, 116, 145, 110, 119, 113, 152, 68, 224, 128, 29, 133, 157,\n\t\t170, 26, 220, 4, 0, 77, 136, 249, 112, 110, 209, 73, 11, 127,\n\t\t215, 106, 145, 254, 0, 9, 140, 134, 29, 58, 195, 108, 108,\n\t\t22, 217, 71, 159, 120, 19, 113, 77, 37, 69, 211, 208, 84,\n\t\t211, 144, 225, 113, 246, 200, 74, 144, 229, 197, 10, 203,\n\t\t104, 80, 208, 137, 189, 38, 227, 18, 97, 21, 251, 217, 233,\n\t\t231, 164, 219, 16, 192, 143, 53, 29, 53, 52, 176, 249, 143,\n\t\t28, 117, 110, 101, 247, 193, 109, 73, 153, 69, 227, 243, 200,\n\t\t106, 208, 30, 187, 199, 101, 33, 93, 76, 51, 150, 136, 146,\n\t\t173, 203, 161, 38, 219, 180, 237, 244, 145, 181, 228, 253,\n\t\t152, 73, 94, 218, 172, 113, 162, 187, 82, 85, 116, 35, 182,\n\t\t80, 137, 220, 74, 218, 101, 214, 17, 28, 171, 123, 233, 166,\n\t\t76, 44, 178, 148, 55, 167, 94, 233, 119, 217, 197, 82, 251,\n\t\t133, 92, 58, 35, 24, 89, 170, 172, 125, 43, 106, 83, 116,\n\t\t178, 94, 245, 168, 210, 52, 111, 14, 21, 165, 235, 99, 119,\n\t\t240, 227, 244, 234, 141, 170, 19, 160, 230, 30, 35, 64, 233,\n\t\t22, 201, 205, 214, 183, 101, 120, 169, 130, 98, 16, 47, 116,\n\t\t70, 95, 0, 198, 172, 114, 136, 56, 43, 224, 82, 232, 73, 12,\n\t\t57, 114, 129, 78, 66, 154, 18, 123, 81, 15, 109, 180, 146,\n\t\t67, 134, 52, 204, 98, 158, 183, 178, 143, 197, 146, 75, 245,\n\t\t138, 98, 144, 176, 128, 166, 160, 146, 181, 181, 176, 22,\n\t\t229, 104, 91, 199, 104, 65, 20, 161, 204, 51, 243, 204, 249,\n\t\t40, 217, 248, 71, 169, 46, 11, 118, 206, 153, 162, 184, 236,\n\t\t160, 243, 222, 97, 1, 178, 31, 218, 25, 145, 37, 242, 152,\n\t\t17, 94, 14, 66, 87, 168, 242, 86, 142, 229, 25, 70, 41, 244,\n\t\t227, 209, 148, 101, 228, 208, 192, 111, 159, 23, 9, 130, 214,\n\t\t64, 95, 227, 220, 77, 245, 12, 27, 12, 105, 29, 116, 99, 166,\n\t\t17, 18, 176, 88, 243, 58, 199, 212, 146, 254, 206, 8, 88,\n\t\t26, 53, 116, 245, 40, 10, 171, 77, 145, 214, 86, 230, 178,\n\t\t130, 54, 222, 104, 243, 173, 141, 97, 70, 9, 115, 164, 116,\n\t\t116, 113, 152, 103, 2, 249, 41, 90, 180, 44, 103, 46, 131,\n\t\t231, 6, 54, 238, 28, 51, 117, 86, 203, 229, 232, 214, 96,\n\t\t62, 55, 181, 179, 151, 130, 244, 223, 139, 54, 34, 115, 66,\n\t\t236, 190, 200, 250, 74, 190, 148, 84, 90, 144, 95, 232, 71,\n\t\t26, 51, 148, 254, 241, 82, 210, 60, 74, 172, 33, 175, 171,\n\t\t6, 101, 133, 223, 133, 42, 9, 141, 174, 225, 148, 162, 234,\n\t\t64, 76, 70, 133, 226, 2, 70, 50, 52, 96, 174, 14, 105, 219,\n\t\t149, 98, 120, 122, 242, 199, 93, 167, 215, 122, 59, 43, 83,\n\t\t26, 196, 35, 46, 171, 74, 202, 157, 83, 150, 212, 99, 248,\n\t\t120, 252, 200, 132, 123, 251, 229, 111, 175, 223, 204, 182,\n\t\t108, 29, 250, 227, 81, 83, 127, 166, 164, 76, 120, 50, 3,\n\t\t233, 121, 154, 42, 108, 19, 219, 229, 185, 16, 10, 86, 182,\n\t\t81, 48, 0, 207, 176, 251, 146, 36, 114, 152, 88, 111, 7, 149,\n\t\t224, 60, 122, 3, 113, 212, 177, 203, 121, 244, 83, 11, 134,\n\t\t249, 157, 121, 227, 253, 211, 167, 253, 54, 135, 198, 145,\n\t\t117, 53, 71, 244, 228, 179, 77, 146, 236, 233, 151, 240, 241,\n\t\t84, 234, 41, 141, 82, 61, 208, 121, 94, 125, 195, 161, 78,\n\t\t173, 57, 93, 48, 140, 170, 246, 54, 104, 202, 151, 254, 252,\n\t\t244, 245, 18, 203, 243, 188, 255, 66, 142, 237, 121, 255,\n\t\t253, 249, 60, 63, 13, 238, 62, 116, 249, 210, 211, 70, 113,\n\t\t240, 190, 151, 15, 226, 244, 97, 201, 40, 250, 237, 184, 37,\n\t\t21, 118, 113, 127, 219, 158, 234, 121, 123, 45, 122, 255,\n\t\t207, 175, 173, 211, 213, 146, 161, 61, 246, 208, 207, 219,\n\t\t216, 241, 116, 124, 56, 133, 235, 86, 180, 245, 102, 183,\n\t\t163, 28, 242, 200, 138, 157, 208, 72, 128, 157, 144, 183,\n\t\t150, 107, 191, 0, 187, 105, 218, 11, 49, 166, 209, 148, 56,\n\t\t16, 44, 134, 247, 43, 91, 223, 175, 130, 79, 241, 252, 52,\n\t\t156, 180, 218, 199, 75, 206, 245, 40, 169, 7, 177, 200, 75,\n\t\t82, 93, 19, 85, 191, 165, 104, 134, 142, 76, 214, 52, 62,\n\t\t173, 210, 29, 202, 107, 12, 214, 247, 63, 192, 70, 53, 2,\n\t\t120, 25, 210, 104, 97, 92, 122, 82, 174, 153, 75, 220, 63,\n\t\t93, 140, 114, 22, 240, 160, 129, 80, 214, 177, 19, 209, 151,\n\t\t221, 206, 190, 130, 27, 200, 247, 0, 237, 181, 111, 192, 223,\n\t\t16, 79, 159, 101, 131, 132, 176, 151, 206, 62, 0, 54, 96,\n\t\t158, 208, 71, 205, 99, 133, 214, 175, 172, 21, 18, 71, 60,\n\t\t106, 165, 92, 154, 116, 20, 59, 41, 34, 129, 219, 68, 180,\n\t\t191, 24, 243, 138, 253, 81, 140, 37, 123, 46, 85, 250, 242,\n\t\t168, 89, 100, 35, 44, 125, 165, 33, 254, 116, 81, 187, 127,\n\t\t93, 175, 173, 71, 188, 62, 221, 241, 211, 183, 228, 75, 128,\n\t\t95, 28, 188, 177, 177, 84, 216, 191, 69, 204, 37, 14, 209,\n\t\t199, 204, 227, 31, 58, 147, 127, 251, 237, 167, 63, 254, 124,\n\t\t254, 233, 231, 63, 254, 252, 219, 79, 127, 251, 229, 119,\n\t\t156, 201, 242, 3, 218, 233, 58, 143, 90, 86, 200, 87, 42,\n\t\t227, 136, 71, 214, 62, 224, 73, 255, 200, 117, 190, 225, 232,\n\t\t180, 67, 158, 131, 82, 177, 243, 114, 198, 190, 194, 255,\n\t\t127, 224, 198, 160, 85, 70, 132, 38, 175, 128, 187, 139, 130,\n\t\t135, 155, 154, 248, 55, 254, 251, 118, 222, 79, 157, 159,\n\t\t62, 225, 57, 189, 224, 188, 95, 241, 246, 233, 220, 253, 147,\n\t\t143, 151, 26, 139, 220, 111, 214, 176, 222, 157, 33, 240,\n\t\t245, 76, 21, 235, 236, 241, 46, 111, 69, 54, 198, 235, 84,\n\t\t62, 161, 247, 179, 142, 215, 211, 15, 210, 106, 97, 190, 202,\n\t\t130, 158, 49, 206, 247, 180, 186, 28, 138, 222, 237, 107,\n\t\t61, 101, 191, 104, 117, 107, 127, 77, 173, 133, 244, 62, 21,\n\t\t174, 243, 154, 86, 9, 114, 47, 165, 165, 251, 120, 41, 121,\n\t\t97, 104, 75, 190, 62, 53, 251, 241, 222, 148, 198, 226, 53,\n\t\t213, 246, 158, 145, 92, 171, 175, 103, 26, 41, 204, 152, 222,\n\t\t207, 169, 77, 141, 101, 172, 69, 174, 127, 102, 77, 163, 107,\n\t\t231, 233, 181, 234, 43, 150, 143, 140, 113, 132, 250, 154,\n\t\t187, 13, 81, 142, 236, 39, 120, 233, 199, 75, 234, 178, 209,\n\t\t74, 156, 97, 62, 65, 197, 137, 234, 175, 167, 50, 158, 44,\n\t\t45, 39, 147, 187, 63, 169, 242, 246, 9, 128, 234, 35, 152,\n\t\t167, 219, 115, 247, 207, 203, 49, 180, 167, 97, 51, 115, 125,\n\t\t34, 222, 183, 16, 22, 67, 13, 237, 51, 23, 148, 167, 107,\n\t\t91, 198, 211, 34, 199, 185, 112, 70, 82, 153, 97, 29, 37,\n\t\t207, 208, 158, 203, 200, 147, 209, 29, 60, 149, 112, 11, 19,\n\t\t61, 207, 110, 35, 84, 99, 247, 233, 1, 68, 49, 102, 228, 132,\n\t\t26, 232, 128, 247, 160, 191, 56, 107, 219, 136, 137, 123,\n\t\t26, 132, 42, 21, 181, 77, 159, 122, 175, 10, 229, 199, 162,\n\t\t92, 86, 91, 125, 188, 136, 241, 81, 142, 52, 75, 40, 207,\n\t\t115, 25, 67, 164, 254, 228, 115, 121, 168, 84, 249, 27, 241,\n\t\t203, 86, 110, 255, 220, 132, 146, 58, 97, 79, 227, 83, 169,\n\t\t251, 193, 204, 173, 197, 199, 159, 15, 141, 215, 201, 46,\n\t\t255, 114, 183, 143, 151, 42, 54, 204, 145, 123, 196, 123,\n\t\t208, 156, 101, 227, 43, 99, 128, 121, 60, 197, 194, 198, 175,\n\t\t78, 123, 120, 52, 68, 23, 167, 39, 198, 254, 120, 38, 114,\n\t\t87, 101, 53, 212, 247, 219, 37, 214, 251, 153, 243, 231, 215,\n\t\t120, 242, 243, 108, 147, 155, 113, 55, 249, 97, 221, 219,\n\t\t53, 205, 144, 174, 36, 182, 159, 108, 236, 220, 3, 38, 40,\n\t\t133, 110, 7, 242, 207, 92, 235, 77, 207, 194, 80, 220, 31,\n\t\t216, 63, 111, 60, 250, 114, 141, 126, 102, 39, 121, 167, 99,\n\t\t127, 54, 65, 243, 82, 179, 252, 90, 203, 216, 185, 178, 72,\n\t\t222, 139, 54, 169, 127, 245, 141, 222, 148, 67, 246, 21, 219,\n\t\t101, 190, 159, 226, 238, 174, 37, 219, 171, 13, 121, 212,\n\t\t103, 141, 224, 135, 215, 111, 137, 239, 179, 150, 236, 45,\n\t\t217, 240, 77, 159, 253, 93, 164, 193, 112, 73, 209, 18, 39,\n\t\t32, 214, 48, 175, 115, 169, 15, 171, 186, 177, 6, 237, 22,\n\t\t208, 88, 101, 146, 49, 41, 85, 110, 38, 191, 87, 223, 237,\n\t\t231, 211, 90, 33, 93, 154, 11, 89, 114, 47, 99, 130, 225,\n\t\t110, 234, 222, 248, 187, 149, 208, 237, 144, 82, 149, 239,\n\t\t234, 18, 121, 36, 10, 47, 139, 179, 124, 44, 146, 154, 200,\n\t\t81, 213, 115, 143, 43, 30, 45, 209, 89, 5, 87, 249, 82, 151,\n\t\t124, 41, 189, 78, 42, 61, 180, 247, 179, 233, 58, 167, 120,\n\t\t68, 255, 33, 8, 168, 169, 75, 244, 253, 236, 58, 17, 223,\n\t\t5, 100, 87, 226, 133, 45, 32, 107, 24, 79, 145, 250, 120,\n\t\t170, 166, 225, 175, 235, 108, 59, 232, 165, 139, 219, 210,\n\t\t70, 72, 224, 99, 116, 126, 166, 107, 122, 10, 213, 244, 120,\n\t\t190, 165, 121, 49, 113, 34, 229, 49, 229, 191, 157, 7, 31,\n\t\t47, 226, 64, 136, 6, 45, 79, 46, 212, 155, 136, 235, 116,\n\t\t202, 105, 72, 203, 126, 153, 86, 66, 171, 155, 68, 220, 210,\n\t\t195, 118, 57, 90, 171, 101, 93, 63, 207, 98, 185, 56, 19,\n\t\t38, 217, 158, 201, 246, 75, 33, 125, 39, 143, 77, 218, 228,\n\t\t26, 218, 15, 149, 245, 255, 243, 235, 243, 79, 231, 95, 127,\n\t\t186, 254, 231, 249, 135, 159, 254, 246, 183, 159, 158, 191,\n\t\t167, 175, 235, 223, 15, 254, 230, 62, 194, 80, 98, 157, 6,\n\t\t75, 58, 37, 242, 176, 102, 197, 71, 238, 51, 89, 91, 209,\n\t\t63, 79, 99, 248, 69, 177, 140, 24, 188, 167, 49, 250, 38,\n\t\t237, 203, 129, 19, 136, 135, 142, 119, 113, 70, 201, 49, 72,\n\t\t154, 147, 225, 254, 145, 222, 240, 232, 157, 38, 103, 110,\n\t\t108, 178, 161, 173, 70, 200, 54, 112, 20, 114, 119, 57, 162,\n\t\t115, 101, 22, 206, 76, 246, 203, 78, 117, 133, 36, 238, 14,\n\t\t145, 156, 106, 38, 28, 9, 244, 197, 26, 13, 97, 52, 113, 42,\n\t\t210, 237, 113, 157, 121, 48, 184, 236, 20, 171, 141, 8, 108,\n\t\t60, 160, 178, 51, 178, 161, 249, 217, 148, 206, 237, 89, 152,\n\t\t54, 57, 167, 117, 226, 177, 234, 49, 153, 65, 91, 29, 138,\n\t\t207, 238, 183, 230, 18, 184, 98, 104, 38, 246, 153, 181, 104,\n\t\t228, 24, 79, 39, 252, 46, 0, 165, 142, 39, 208, 208, 107,\n\t\t28, 227, 201, 157, 140, 79, 242, 26, 207, 180, 244, 151, 69,\n\t\t54, 119, 134, 138, 179, 122, 101, 207, 147, 23, 103, 37, 204,\n\t\t122, 34, 232, 11, 215, 158, 47, 230, 121, 14, 144, 63, 150,\n\t\t184, 30, 248, 190, 242, 164, 166, 10, 143, 227, 210, 202,\n\t\t232, 28, 201, 162, 219, 233, 219, 54, 133, 12, 28, 147, 194,\n\t\t126, 106, 37, 225, 237, 6, 109, 99, 80, 73, 103, 162, 121,\n\t\t59, 175, 9, 40, 218, 56, 131, 111, 188, 117, 56, 238, 207,\n\t\t93, 49, 186, 60, 231, 226, 36, 87, 8, 126, 103, 67, 230, 136,\n\t\t214, 22, 227, 21, 241, 140, 166, 109, 16, 16, 220, 4, 189,\n\t\t160, 113, 122, 116, 37, 22, 203, 141, 180, 158, 36, 115, 167,\n\t\t172, 210, 48, 146, 174, 8, 35, 104, 74, 140, 150, 213, 204,\n\t\t250, 179, 74, 190, 173, 170, 157, 197, 174, 90, 148, 140,\n\t\t0, 77, 24, 34, 2, 215, 228, 79, 234, 166, 82, 189, 87, 210,\n\t\t40, 192, 76, 24, 237, 135, 111, 161, 132, 142, 102, 157, 92,\n\t\t159, 241, 72, 37, 134, 124, 85, 163, 141, 202, 76, 111, 76,\n\t\t107, 102, 214, 169, 129, 23, 114, 158, 96, 7, 153, 253, 105,\n\t\t175, 1, 210, 61, 61, 45, 121, 13, 217, 46, 42, 60, 142, 80,\n\t\t144, 124, 153, 216, 122, 50, 158, 199, 51, 13, 46, 97, 18,\n\t\t72, 61, 209, 36, 24, 55, 72, 154, 31, 61, 116, 143, 62, 101,\n\t\t209, 104, 195, 224, 165, 221, 31, 253, 7, 146, 168, 251, 10,\n\t\t177, 166, 17, 87, 126, 243, 89, 12, 22, 242, 245, 132, 29,\n\t\t251, 87, 252, 2, 227, 21, 210, 91, 102, 53, 10, 15, 252, 228,\n\t\t147, 98, 100, 175, 214, 170, 113, 233, 20, 151, 62, 7, 140,\n\t\t48, 220, 64, 30, 111, 240, 153, 145, 245, 25, 125, 53, 191,\n\t\t59, 102, 228, 241, 108, 83, 191, 126, 49, 45, 62, 9, 96, 104,\n\t\t153, 201, 13, 80, 31, 227, 106, 53, 172, 70, 24, 235, 210,\n\t\t151, 37, 250, 66, 153, 111, 141, 195, 5, 142, 122, 79, 80,\n\t\t200, 120, 127, 40, 33, 237, 155, 172, 95, 30, 2, 153, 38,\n\t\t242, 212, 250, 186, 224, 178, 176, 234, 190, 205, 220, 85,\n\t\t41, 248, 76, 54, 238, 213, 119, 218, 242, 59, 55, 141, 31,\n\t\t23, 119, 41, 128, 162, 29, 162, 94, 241, 24, 182, 202, 207,\n\t\t150, 24, 45, 45, 155, 47, 141, 229, 203, 201, 8, 223, 84,\n\t\t138, 232, 78, 66, 70, 77, 12, 102, 236, 195, 34, 2, 151, 29,\n\t\t238, 219, 141, 81, 27, 252, 143, 232, 161, 135, 6, 4, 76,\n\t\t35, 13, 30, 239, 173, 76, 89, 96, 162, 192, 61, 1, 251, 96,\n\t\t17, 15, 208, 171, 85, 53, 235, 231, 159, 164, 201, 212, 100,\n\t\t181, 70, 135, 6, 114, 38, 34, 192, 32, 201, 116, 235, 107,\n\t\t64, 206, 69, 221, 201, 101, 123, 19, 103, 166, 159, 188, 201,\n\t\t154, 11, 209, 162, 128, 56, 151, 174, 231, 150, 188, 38, 120,\n\t\t243, 208, 151, 120, 178, 51, 252, 69, 253, 44, 246, 40, 102,\n\t\t157, 217, 122, 81, 52, 232, 164, 101, 82, 125, 40, 84, 200,\n\t\t53, 195, 84, 158, 121, 164, 134, 16, 173, 172, 133, 73, 142,\n\t\t210, 244, 29, 180, 72, 114, 87, 211, 46, 124, 145, 192, 80,\n\t\t41, 73, 61, 74, 169, 179, 242, 3, 19, 25, 211, 58, 181, 176,\n\t\t193, 54, 168, 201, 46, 241, 3, 25, 221, 80, 53, 54, 58, 107,\n\t\t68, 71, 200, 34, 70, 76, 73, 158, 212, 146, 94, 78, 126, 186,\n\t\t54, 179, 18, 241, 185, 180, 89, 26, 245, 240, 9, 69, 252,\n\t\t158, 149, 79, 208, 181, 250, 216, 10, 255, 164, 198, 23, 227,\n\t\t89, 108, 233, 161, 244, 66, 79, 51, 13, 144, 149, 247, 28,\n\t\t127, 28, 135, 211, 188, 178, 139, 178, 85, 63, 219, 75, 227,\n\t\t253, 192, 127, 69, 218, 142, 65, 162, 245, 205, 254, 65, 170,\n\t\t179, 99, 179, 227, 177, 109, 232, 251, 6, 203, 126, 188, 148,\n\t\t209, 2, 232, 55, 100, 190, 145, 245, 212, 158, 202, 160, 5,\n\t\t173, 10, 201, 155, 60, 149, 147, 83, 232, 25, 228, 142, 157,\n\t\t149, 157, 168, 56, 121, 223, 225, 70, 166, 8, 227, 239, 53,\n\t\t59, 102, 60, 174, 201, 215, 53, 44, 110, 220, 52, 41, 153,\n\t\t24, 10, 54, 145, 159, 181, 169, 200, 251, 121, 111, 14, 87,\n\t\t150, 236, 195, 35, 33, 35, 170, 38, 98, 51, 49, 115, 53, 118,\n\t\t56, 31, 33, 33, 239, 4, 183, 47, 1, 162, 129, 190, 61, 137,\n\t\t205, 41, 178, 50, 32, 94, 198, 94, 117, 46, 7, 189, 169, 73,\n\t\t150, 163, 255, 73, 169, 160, 225, 13, 121, 7, 232, 182, 150,\n\t\t150, 214, 243, 202, 187, 133, 160, 201, 99, 219, 34, 224,\n\t\t1, 150, 5, 129, 188, 62, 45, 114, 13, 234, 227, 1, 171, 243,\n\t\t109, 209, 4, 89, 198, 30, 104, 226, 49, 105, 255, 246, 203,\n\t\t112, 148, 64, 0, 43, 8, 37, 91, 94, 254, 168, 13, 25, 247,\n\t\t215, 91, 75, 184, 26, 69, 173, 30, 185, 138, 21, 117, 121,\n\t\t245, 177, 145, 23, 148, 70, 72, 192, 178, 250, 116, 107, 238,\n\t\t69, 171, 8, 114, 219, 56, 229, 141, 141, 179, 50, 81, 211,\n\t\t172, 53, 189, 98, 177, 68, 95, 127, 170, 162, 68, 161, 155,\n\t\t114, 177, 105, 249, 93, 30, 142, 237, 211, 5, 83, 51, 18,\n\t\t52, 31, 47, 169, 55, 121, 139, 67, 3, 196, 32, 108, 70, 6,\n\t\t124, 109, 56, 51, 86, 208, 218, 202, 249, 224, 242, 189, 172,\n\t\t242, 240, 44, 86, 50, 77, 211, 215, 120, 65, 15, 51, 3, 247,\n\t\t198, 75, 69, 100, 181, 46, 243, 122, 13, 107, 33, 63, 109,\n\t\t163, 153, 41, 152, 84, 98, 251, 18, 52, 100, 0, 48, 98, 134,\n\t\t127, 54, 47, 177, 144, 107, 191, 25, 14, 210, 214, 248, 137,\n\t\t118, 139, 100, 12, 75, 78, 1, 193, 31, 203, 81, 83, 88, 62,\n\t\t43, 37, 145, 66, 53, 201, 98, 90, 186, 182, 197, 25, 75, 84,\n\t\t72, 154, 172, 79, 222, 19, 132, 75, 242, 170, 134, 190, 27,\n\t\t97, 162, 221, 51, 218, 152, 23, 141, 24, 233, 36, 154, 48,\n\t\t231, 138, 255, 120, 73, 113, 133, 50, 176, 140, 235, 171,\n\t\t23, 155, 161, 154, 208, 240, 14, 131, 196, 126, 88, 203, 152,\n\t\t14, 101, 67, 215, 190, 200, 134, 192, 52, 74, 22, 235, 116,\n\t\t209, 61, 23, 161, 92, 41, 88, 191, 153, 176, 128, 172, 18,\n\t\t217, 121, 25, 171, 214, 9, 250, 38, 161, 92, 150, 41, 16,\n\t\t109, 172, 11, 24, 229, 36, 198, 225, 103, 108, 166, 201, 144,\n\t\t185, 121, 26, 98, 192, 164, 17, 87, 215, 117, 178, 226, 255,\n\t\t152, 134, 52, 206, 75, 151, 176, 155, 167, 21, 205, 140, 116,\n\t\t5, 147, 37, 26, 220, 15, 192, 60, 12, 165, 104, 205, 138,\n\t\t81, 243, 61, 194, 45, 242, 67, 71, 243, 245, 215, 223, 254,\n\t\t242, 135, 95, 158, 207, 175, 222, 229, 202, 127, 223, 187,\n\t\t28, 218, 96, 247, 24, 67, 173, 154, 24, 210, 204, 93, 43,\n\t\t92, 202, 80, 118, 171, 98, 242, 33, 244, 8, 92, 136, 157,\n\t\t168, 129, 5, 83, 135, 242, 136, 0, 171, 216, 195, 42, 72,\n\t\t196, 12, 58, 223, 197, 133, 147, 158, 121, 243, 51, 247, 107,\n\t\t213, 12, 208, 43, 174, 136, 140, 59, 218, 234, 243, 146, 219,\n\t\t21, 247, 127, 175, 20, 216, 204, 83, 252, 114, 69, 105, 196,\n\t\t144, 70, 209, 238, 247, 196, 137, 196, 80, 230, 0, 147, 38,\n\t\t146, 167, 64, 254, 166, 20, 138, 24, 156, 71, 90, 162, 0,\n\t\t247, 95, 178, 217, 72, 0, 82, 21, 29, 174, 13, 217, 86, 114,\n\t\t20, 200, 231, 51, 151, 248, 27, 164, 206, 81, 26, 220, 99,\n\t\t19, 66, 118, 54, 81, 46, 75, 37, 181, 184, 152, 72, 252, 165,\n\t\t25, 122, 173, 13, 198, 226, 72, 25, 111, 160, 231, 177, 112,\n\t\t91, 45, 50, 199, 214, 212, 227, 26, 1, 83, 80, 40, 230, 97,\n\t\t44, 27, 142, 154, 180, 180, 187, 241, 43, 60, 111, 52, 228,\n\t\t211, 122, 196, 173, 69, 53, 157, 188, 130, 170, 205, 128,\n\t\t246, 34, 52, 152, 230, 12, 11, 93, 41, 100, 11, 126, 188,\n\t\t164, 89, 67, 153, 71, 141, 45, 212, 75, 182, 238, 104, 98,\n\t\t49, 163, 225, 34, 58, 130, 194, 76, 229, 3, 126, 61, 129,\n\t\t222, 166, 192, 240, 81, 41, 47, 98, 198, 77, 1, 127, 61, 161,\n\t\t95, 0, 10, 209, 132, 86, 55, 75, 213, 155, 129, 13, 67, 83,\n\t\t85, 217, 146, 76, 95, 33, 167, 11, 30, 44, 0, 208, 70, 152,\n\t\t77, 38, 118, 216, 31, 114, 70, 73, 188, 75, 20, 205, 132,\n\t\t190, 176, 187, 90, 149, 173, 145, 173, 146, 102, 159, 33,\n\t\t101, 39, 124, 37, 181, 102, 172, 32, 231, 218, 181, 21, 49,\n\t\t134, 10, 111, 88, 19, 221, 61, 134, 184, 196, 143, 65, 106,\n\t\t42, 173, 168, 232, 243, 60, 88, 32, 101, 157, 243, 115, 200,\n\t\t232, 24, 141, 218, 42, 171, 252, 138, 13, 229, 102, 118, 234,\n\t\t1, 122, 158, 85, 39, 242, 112, 101, 80, 59, 143, 16, 225,\n\t\t54, 242, 88, 254, 173, 43, 235, 158, 81, 6, 83, 185, 66, 63,\n\t\t104, 223, 255, 5, 111, 53, 248, 46, 68, 168, 180, 172, 61,\n\t\t132, 122, 27, 25, 104, 140, 156, 173, 59, 66, 235, 253, 18,\n\t\t155, 58, 105, 21, 154, 102, 56, 203, 102, 96, 111, 101, 166,\n\t\t125, 220, 67, 110, 99, 146, 18, 83, 177, 102, 49, 164, 170,\n\t\t77, 213, 197, 205, 27, 83, 225, 80, 217, 136, 241, 230, 74,\n\t\t253, 227, 165, 206, 25, 154, 24, 69, 41, 228, 130, 2, 141,\n\t\t156, 134, 246, 14, 136, 113, 14, 37, 107, 209, 88, 70, 209,\n\t\t22, 211, 218, 226, 190, 167, 230, 103, 48, 199, 179, 143,\n\t\t132, 170, 103, 81, 187, 85, 57, 252, 73, 215, 159, 89, 139,\n\t\t154, 208, 161, 250, 154, 102, 76, 39, 52, 44, 1, 196, 241,\n\t\t76, 171, 134, 158, 238, 127, 95, 141, 224, 195, 202, 138,\n\t\t24, 195, 119, 155, 36, 248, 114, 124, 245, 174, 186, 171,\n\t\t198, 160, 157, 253, 20, 98, 218, 181, 77, 123, 153, 160, 52,\n\t\t203, 104, 168, 130, 118, 11, 189, 32, 45, 186, 198, 224, 106,\n\t\t205, 37, 31, 115, 6, 214, 113, 151, 24, 234, 194, 113, 211,\n\t\t30, 78, 163, 33, 197, 110, 180, 238, 187, 185, 230, 52, 254,\n\t\t120, 99, 35, 120, 158, 190, 138, 115, 14, 237, 90, 69, 115,\n\t\t140, 187, 51, 107, 10, 35, 195, 141, 80, 65, 60, 57, 17, 131,\n\t\t122, 54, 202, 58, 96, 133, 104, 110, 69, 59, 45, 71, 5, 61,\n\t\t19, 107, 104, 39, 196, 126, 150, 165, 194, 245, 7, 188, 70,\n\t\t88, 107, 36, 93, 153, 236, 156, 34, 50, 131, 199, 128, 190,\n\t\t225, 194, 232, 151, 156, 95, 191, 115, 242, 15, 44, 40, 177,\n\t\t148, 139, 114, 169, 41, 216, 93, 22, 174, 54, 249, 74, 8,\n\t\t153, 193, 251, 205, 173, 46, 241, 41, 68, 254, 0, 67, 210,\n\t\t232, 110, 104, 33, 51, 104, 163, 21, 14, 45, 242, 197, 42,\n\t\t16, 189, 222, 254, 243, 73, 118, 195, 191, 157, 196, 168,\n\t\t11, 222, 65, 113, 211, 82, 70, 157, 243, 62, 193, 63, 30,\n\t\t111, 254, 209, 249, 245, 51, 255, 3, 216, 208, 180, 122, 193,\n\t\t162, 229, 86, 92, 161, 247, 12, 76, 34, 77, 97, 217, 137,\n\t\t125, 86, 148, 132, 247, 210, 193, 145, 198, 150, 209, 65,\n\t\t201, 43, 87, 88, 218, 23, 212, 120, 154, 197, 118, 73, 232,\n\t\t96, 0, 31, 180, 144, 28, 61, 133, 117, 104, 145, 132, 254,\n\t\t117, 213, 18, 140, 143, 77, 171, 81, 87, 98, 114, 123, 210,\n\t\t35, 249, 122, 226, 113, 85, 107, 71, 222, 71, 72, 35, 46,\n\t\t89, 221, 100, 235, 98, 13, 223, 208, 98, 87, 209, 120, 168,\n\t\t11, 105, 178, 40, 181, 81, 124, 175, 216, 44, 128, 14, 137,\n\t\t186, 107, 21, 63, 129, 221, 45, 218, 174, 54, 89, 69, 187,\n\t\t30, 155, 196, 159, 198, 161, 137, 14, 224, 176, 246, 187,\n\t\t202, 225, 103, 210, 78, 131, 46, 179, 55, 93, 254, 92, 100,\n\t\t47, 19, 31, 141, 145, 186, 172, 136, 68, 213, 117, 67, 102,\n\t\t250, 135, 230, 212, 159, 127, 250, 229, 121, 189, 254, 242,\n\t\t231, 191, 126, 179, 167, 126, 254, 191, 188, 133, 115, 14,\n\t\t227, 144, 37, 7, 124, 170, 209, 157, 208, 121, 175, 155, 31,\n\t\t135, 126, 104, 223, 31, 105, 42, 176, 88, 159, 165, 204, 68,\n\t\t91, 18, 215, 247, 72, 98, 251, 94, 133, 229, 109, 49, 18,\n\t\t3, 187, 180, 97, 8, 115, 141, 222, 10, 230, 255, 99, 237,\n\t\t223, 178, 36, 55, 146, 107, 97, 248, 61, 70, 129, 9, 192,\n\t\t151, 155, 223, 125, 16, 57, 8, 10, 77, 41, 184, 20, 234, 214,\n\t\t97, 245, 73, 253, 202, 209, 255, 203, 247, 54, 51, 71, 100,\n\t\t177, 235, 188, 124, 15, 100, 5, 144, 8, 4, 224, 23, 187, 219,\n\t\t222, 235, 86, 151, 33, 206, 88, 14, 19, 252, 224, 137, 45,\n\t\t143, 232, 177, 77, 81, 227, 86, 77, 51, 29, 27, 187, 5, 157,\n\t\t185, 115, 150, 163, 112, 143, 177, 225, 71, 233, 193, 173,\n\t\t148, 246, 112, 247, 92, 12, 16, 192, 145, 130, 153, 201, 137,\n\t\t23, 43, 71, 52, 189, 233, 249, 18, 237, 0, 84, 158, 29, 166,\n\t\t107, 0, 78, 75, 137, 29, 84, 39, 122, 244, 64, 194, 136, 185,\n\t\t163, 77, 153, 191, 188, 68, 216, 173, 201, 246, 222, 111,\n\t\t110, 200, 245, 97, 140, 218, 239, 136, 53, 74, 237, 119, 157,\n\t\t98, 221, 32, 103, 215, 128, 97, 187, 233, 48, 109, 251, 88,\n\t\t67, 136, 32, 116, 33, 230, 65, 40, 130, 93, 152, 84, 229,\n\t\t172, 65, 46, 183, 227, 22, 210, 82, 50, 203, 77, 210, 241,\n\t\t90, 246, 234, 144, 86, 142, 18, 164, 44, 171, 83, 116, 91,\n\t\t46, 119, 170, 119, 128, 96, 33, 92, 197, 127, 52, 215, 45,\n\t\t111, 71, 150, 240, 166, 133, 178, 134, 242, 45, 2, 226, 235,\n\t\t139, 243, 40, 86, 74, 123, 107, 239, 210, 200, 91, 240, 78,\n\t\t119, 13, 145, 162, 111, 42, 37, 150, 211, 198, 48, 178, 146,\n\t\t192, 120, 195, 99, 152, 177, 163, 85, 77, 59, 13, 249, 197,\n\t\t181, 30, 107, 88, 238, 74, 65, 242, 210, 50, 200, 92, 50,\n\t\t240, 72, 135, 199, 88, 52, 163, 169, 40, 119, 236, 184, 178,\n\t\t31, 148, 170, 165, 243, 65, 251, 66, 151, 43, 54, 200, 81,\n\t\t163, 216, 229, 134, 132, 3, 229, 227, 237, 233, 145, 69, 82,\n\t\t0, 80, 25, 80, 254, 107, 206, 171, 55, 175, 91, 171, 62, 103,\n\t\t157, 172, 171, 141, 140, 196, 203, 252, 88, 54, 201, 97, 45,\n\t\t237, 248, 85, 197, 29, 243, 193, 219, 63, 187, 28, 56, 105,\n\t\t188, 156, 184, 216, 53, 228, 10, 160, 223, 28, 154, 148, 101,\n\t\t242, 195, 225, 94, 182, 237, 113, 162, 192, 215, 202, 4, 144,\n\t\t123, 247, 12, 46, 138, 70, 150, 47, 21, 151, 76, 7, 249, 112,\n\t\t152, 5, 168, 73, 33, 50, 156, 220, 67, 149, 198, 82, 63, 45,\n\t\t60, 208, 93, 108, 129, 63, 142, 21, 83, 166, 54, 68, 214,\n\t\t127, 108, 45, 135, 0, 215, 228, 23, 82, 168, 59, 38, 97, 77,\n\t\t8, 86, 108, 109, 17, 235, 124, 72, 113, 138, 195, 132, 58,\n\t\t36, 22, 244, 107, 209, 78, 132, 193, 139, 82, 204, 68, 27,\n\t\t106, 173, 40, 34, 13, 212, 130, 40, 47, 201, 232, 117, 200,\n\t\t150, 131, 157, 19, 56, 195, 88, 194, 89, 131, 65, 191, 196,\n\t\t200, 122, 184, 62, 154, 100, 59, 190, 150, 58, 105, 105, 194,\n\t\t133, 17, 159, 37, 202, 129, 18, 178, 228, 50, 40, 229, 215,\n\t\t221, 30, 215, 146, 117, 196, 94, 239, 178, 22, 203, 114, 207,\n\t\t69, 136, 140, 206, 16, 91, 177, 136, 42, 223, 48, 169, 196,\n\t\t156, 243, 6, 241, 222, 116, 28, 55, 135, 119, 84, 121, 178,\n\t\t177, 42, 234, 125, 53, 101, 103, 5, 181, 111, 168, 140, 197,\n\t\t146, 234, 69, 187, 251, 13, 194, 96, 233, 55, 145, 76, 113,\n\t\t196, 138, 213, 247, 229, 138, 115, 88, 214, 61, 21, 230, 41,\n\t\t98, 104, 92, 90, 49, 8, 1, 188, 0, 22, 33, 21, 221, 110, 89,\n\t\t97, 178, 228, 144, 55, 137, 230, 248, 179, 85, 161, 233, 18,\n\t\t42, 108, 210, 50, 118, 142, 220, 81, 183, 211, 172, 254, 230,\n\t\t117, 154, 104, 106, 150, 193, 214, 129, 96, 204, 253, 235,\n\t\t35, 165, 20, 202, 145, 91, 167, 246, 82, 161, 104, 251, 185,\n\t\t222, 22, 94, 247, 98, 118, 214, 224, 68, 90, 88, 75, 0, 124,\n\t\t125, 100, 201, 97, 233, 247, 20, 200, 43, 238, 224, 103, 103,\n\t\t181, 10, 19, 189, 77, 246, 7, 160, 188, 53, 241, 100, 50,\n\t\t64, 75, 81, 14, 67, 218, 158, 7, 37, 243, 149, 183, 168, 51,\n\t\t24, 43, 75, 240, 241, 15, 118, 231, 115, 232, 76, 185, 228,\n\t\t115, 138, 215, 26, 234, 14, 159, 177, 5, 152, 5, 22, 189,\n\t\t5, 57, 224, 235, 2, 165, 81, 104, 0, 46, 247, 153, 96, 122,\n\t\t141, 69, 124, 65, 6, 138, 160, 79, 195, 87, 182, 51, 240,\n\t\t89, 16, 112, 136, 108, 253, 71, 85, 245, 114, 178, 249, 97,\n\t\t173, 98, 188, 124, 28, 21, 169, 78, 223, 244, 236, 32, 219,\n\t\t50, 253, 102, 50, 240, 233, 126, 156, 119, 174, 19, 27, 44,\n\t\t14, 78, 9, 245, 50, 18, 1, 9, 25, 81, 162, 162, 94, 229, 50,\n\t\t236, 6, 194, 182, 81, 135, 167, 83, 231, 46, 129, 172, 24,\n\t\t77, 88, 178, 49, 244, 62, 242, 173, 167, 198, 116, 137, 137,\n\t\t24, 244, 218, 33, 81, 232, 232, 33, 41, 80, 58, 71, 196, 43,\n\t\t178, 150, 53, 185, 242, 122, 92, 83, 159, 16, 181, 22, 230,\n\t\t194, 99, 97, 24, 213, 30, 105, 170, 162, 193, 146, 40, 4,\n\t\t154, 215, 142, 221, 82, 11, 101, 171, 7, 15, 51, 231, 22,\n\t\t152, 34, 44, 87, 181, 134, 31, 111, 200, 168, 206, 224, 58,\n\t\t180, 151, 245, 251, 153, 251, 111, 91, 105, 64, 206, 42, 72,\n\t\t36, 117, 84, 240, 52, 22, 242, 36, 236, 13, 17, 86, 194, 182,\n\t\t37, 119, 142, 217, 151, 149, 176, 14, 107, 16, 28, 25, 8,\n\t\t147, 54, 177, 71, 58, 242, 145, 80, 140, 173, 119, 213, 90,\n\t\t116, 164, 178, 161, 167, 218, 169, 203, 187, 38, 34, 19, 254,\n\t\t67, 100, 153, 21, 212, 56, 50, 217, 36, 178, 118, 93, 170,\n\t\t5, 5, 253, 40, 160, 145, 164, 197, 96, 101, 104, 91, 165,\n\t\t37, 169, 179, 166, 191, 135, 168, 149, 169, 21, 126, 135,\n\t\t246, 162, 93, 103, 99, 249, 211, 81, 181, 248, 72, 210, 8,\n\t\t249, 72, 179, 35, 199, 176, 172, 184, 84, 210, 205, 244, 243,\n\t\t126, 42, 52, 122, 90, 0, 250, 219, 209, 149, 140, 114, 202,\n\t\t58, 152, 34, 234, 60, 142, 174, 80, 187, 235, 224, 18, 202,\n\t\t229, 35, 130, 242, 11, 149, 64, 38, 152, 51, 13, 11, 206,\n\t\t228, 101, 24, 172, 40, 105, 155, 4, 45, 103, 149, 85, 245,\n\t\t138, 57, 223, 206, 148, 28, 215, 22, 11, 6, 208, 161, 143,\n\t\t7, 3, 90, 139, 131, 40, 254, 30, 87, 247, 2, 36, 244, 166,\n\t\t79, 173, 151, 49, 60, 114, 173, 232, 26, 108, 43, 50, 243,\n\t\t91, 205, 109, 224, 234, 81, 81, 23, 84, 63, 242, 57, 10, 31,\n\t\t232, 178, 97, 201, 91, 48, 153, 193, 193, 46, 25, 98, 137,\n\t\t154, 65, 106, 98, 128, 60, 193, 67, 215, 52, 168, 98, 79,\n\t\t229, 28, 191, 188, 159, 219, 68, 68, 42, 246, 136, 153, 11,\n\t\t221, 30, 13, 157, 33, 204, 249, 108, 11, 127, 79, 37, 203,\n\t\t4, 221, 82, 28, 134, 200, 4, 171, 220, 193, 149, 138, 98,\n\t\t218, 213, 32, 108, 78, 92, 30, 138, 218, 22, 110, 228, 172,\n\t\t129, 105, 33, 165, 14, 208, 19, 149, 65, 107, 41, 36, 178,\n\t\t121, 73, 173, 203, 230, 49, 115, 68, 146, 214, 168, 102, 45,\n\t\t112, 149, 17, 67, 114, 114, 89, 135, 85, 145, 25, 28, 159,\n\t\t2, 0, 247, 154, 241, 110, 161, 94, 205, 77, 26, 174, 25, 41,\n\t\t190, 230, 104, 94, 91, 85, 86, 124, 60, 183, 109, 103, 24,\n\t\t102, 182, 222, 53, 43, 118, 72, 28, 199, 180, 205, 81, 150,\n\t\t207, 117, 51, 107, 169, 138, 168, 229, 14, 98, 119, 234, 71,\n\t\t100, 254, 216, 162, 225, 165, 100, 170, 107, 117, 87, 162,\n\t\t222, 130, 179, 67, 243, 227, 218, 110, 161, 151, 35, 109,\n\t\t125, 254, 221, 97, 204, 102, 176, 233, 200, 153, 114, 110,\n\t\t52, 51, 85, 36, 154, 171, 118, 42, 176, 4, 129, 185, 205,\n\t\t84, 228, 55, 167, 9, 72, 47, 183, 179, 106, 84, 43, 166, 5,\n\t\t252, 177, 187, 142, 190, 229, 244, 233, 245, 157, 209, 203,\n\t\t196, 197, 149, 130, 98, 162, 208, 191, 212, 66, 49, 123, 194,\n\t\t164, 155, 213, 197, 20, 74, 170, 39, 137, 203, 196, 105, 30,\n\t\t244, 83, 213, 109, 214, 154, 254, 59, 41, 18, 70, 212, 229,\n\t\t88, 117, 200, 117, 131, 181, 238, 83, 216, 40, 119, 215, 113,\n\t\t125, 248, 238, 48, 231, 215, 58, 238, 208, 108, 182, 92, 22,\n\t\t21, 77, 41, 94, 238, 168, 156, 138, 221, 96, 107, 83, 181,\n\t\t133, 151, 47, 40, 162, 102, 188, 35, 82, 166, 98, 203, 75,\n\t\t223, 238, 219, 137, 215, 73, 28, 7, 136, 105, 220, 167, 155,\n\t\t8, 98, 233, 122, 241, 34, 231, 50, 2, 154, 230, 234, 250,\n\t\t226, 229, 137, 175, 51, 177, 207, 145, 211, 215, 187, 61,\n\t\t235, 208, 82, 18, 137, 18, 210, 215, 227, 99, 178, 100, 19,\n\t\t229, 114, 235, 49, 147, 138, 203, 184, 244, 0, 203, 66, 89,\n\t\t40, 126, 20, 149, 184, 90, 133, 190, 94, 200, 141, 228, 211,\n\t\t36, 85, 181, 202, 108, 218, 9, 177, 49, 133, 34, 116, 4, 128,\n\t\t245, 151, 98, 7, 176, 64, 33, 109, 12, 142, 73, 68, 156, 209,\n\t\t206, 82, 216, 227, 182, 252, 94, 100, 110, 102, 72, 21, 13,\n\t\t228, 33, 39, 73, 19, 242, 30, 101, 134, 49, 76, 141, 16, 231,\n\t\t96, 78, 224, 114, 157, 5, 205, 214, 181, 18, 126, 60, 153,\n\t\t98, 137, 228, 177, 211, 21, 150, 108, 93, 245, 80, 123, 77,\n\t\t72, 148, 1, 21, 200, 10, 214, 53, 23, 190, 246, 66, 79, 117,\n\t\t89, 194, 33, 145, 201, 25, 49, 148, 124, 80, 7, 96, 87, 148,\n\t\t39, 80, 255, 82, 30, 249, 58, 19, 194, 171, 197, 116, 136,\n\t\t47, 125, 63, 83, 56, 151, 63, 82, 124, 63, 113, 124, 191,\n\t\t226, 235, 67, 234, 82, 161, 35, 180, 203, 10, 207, 33, 203,\n\t\t210, 68, 183, 33, 138, 222, 245, 246, 165, 105, 105, 80, 177,\n\t\t82, 24, 85, 115, 179, 7, 48, 72, 98, 28, 132, 188, 153, 104,\n\t\t230, 52, 186, 170, 209, 97, 24, 44, 163, 174, 8, 227, 101,\n\t\t173, 87, 4, 45, 59, 189, 183, 93, 81, 129, 154, 18, 60, 227,\n\t\t220, 58, 76, 252, 85, 243, 33, 158, 79, 171, 169, 168, 190,\n\t\t66, 122, 55, 59, 14, 64, 200, 19, 157, 120, 38, 138, 18, 77,\n\t\t137, 176, 174, 7, 28, 59, 170, 27, 192, 35, 17, 39, 137, 247,\n\t\t98, 218, 59, 100, 121, 93, 15, 44, 62, 143, 87, 196, 224,\n\t\t24, 200, 170, 33, 46, 223, 143, 58, 178, 54, 176, 42, 25,\n\t\t237, 137, 155, 10, 72, 27, 51, 247, 216, 226, 193, 96, 215,\n\t\t92, 131, 135, 139, 94, 46, 112, 45, 124, 248, 99, 159, 48,\n\t\t171, 134, 14, 32, 7, 235, 202, 254, 103, 229, 23, 182, 61,\n\t\t108, 18, 123, 238, 77, 243, 64, 251, 52, 86, 164, 109, 169,\n\t\t108, 82, 123, 235, 220, 146, 246, 55, 158, 201, 124, 26, 21,\n\t\t246, 59, 136, 165, 186, 7, 177, 31, 217, 178, 31, 215, 93,\n\t\t4, 158, 193, 120, 210, 108, 130, 50, 200, 218, 24, 108, 182,\n\t\t144, 251, 84, 126, 215, 169, 230, 175, 152, 118, 77, 106,\n\t\t128, 169, 141, 13, 16, 7, 21, 121, 48, 192, 154, 9, 159, 166,\n\t\t164, 164, 63, 157, 249, 122, 124, 20, 25, 161, 28, 18, 83,\n\t\t0, 15, 12, 117, 177, 238, 139, 102, 17, 134, 24, 118, 23,\n\t\t52, 142, 176, 110, 129, 240, 3, 31, 56, 42, 245, 217, 61,\n\t\t244, 190, 134, 67, 202, 183, 128, 60, 162, 223, 116, 84, 24,\n\t\t213, 40, 76, 167, 149, 50, 146, 18, 49, 105, 167, 56, 190,\n\t\t51, 176, 204, 34, 176, 225, 241, 2, 104, 200, 39, 102, 152,\n\t\t199, 108, 204, 81, 6, 150, 151, 89, 134, 188, 188, 68, 118,\n\t\t180, 107, 131, 243, 92, 119, 7, 85, 5, 187, 8, 107, 10, 73,\n\t\t50, 11, 54, 70, 170, 36, 140, 163, 169, 6, 43, 212, 244, 241,\n\t\t94, 113, 135, 247, 186, 236, 88, 157, 74, 231, 115, 112, 81,\n\t\t49, 231, 82, 85, 63, 118, 250, 105, 120, 69, 32, 15, 131,\n\t\t29, 175, 16, 63, 111, 115, 209, 92, 57, 219, 179, 175, 211,\n\t\t67, 11, 204, 36, 30, 83, 197, 139, 198, 54, 239, 240, 171,\n\t\t113, 73, 88, 172, 144, 156, 80, 99, 224, 75, 37, 134, 226,\n\t\t208, 129, 56, 243, 64, 121, 143, 1, 223, 251, 170, 54, 119,\n\t\t109, 216, 18, 53, 141, 218, 211, 251, 25, 40, 125, 205, 120,\n\t\t126, 155, 228, 50, 164, 24, 77, 152, 1, 65, 197, 208, 154,\n\t\t129, 122, 217, 89, 96, 28, 247, 46, 245, 208, 76, 80, 65,\n\t\t100, 184, 55, 233, 66, 20, 166, 148, 27, 3, 151, 73, 42, 35,\n\t\t64, 170, 10, 205, 100, 81, 88, 159, 67, 186, 207, 3, 48, 123,\n\t\t208, 118, 137, 193, 110, 203, 23, 158, 193, 73, 28, 43, 38,\n\t\t122, 187, 12, 26, 75, 110, 166, 245, 173, 209, 72, 100, 201,\n\t\t254, 122, 136, 228, 32, 71, 81, 83, 61, 30, 30, 191, 117,\n\t\t73, 82, 167, 214, 183, 216, 110, 198, 194, 67, 203, 61, 247,\n\t\t88, 109, 54, 147, 96, 246, 92, 94, 2, 141, 31, 228, 242, 38,\n\t\t23, 193, 141, 6, 150, 219, 198, 237, 146, 6, 121, 167, 107,\n\t\t43, 195, 59, 172, 100, 189, 159, 234, 27, 112, 139, 107, 44,\n\t\t60, 171, 81, 109, 82, 166, 68, 60, 117, 113, 225, 97, 119,\n\t\t86, 67, 121, 255, 48, 176, 139, 20, 89, 78, 155, 59, 100,\n\t\t216, 112, 44, 169, 91, 11, 13, 68, 243, 234, 220, 253, 134,\n\t\t84, 75, 110, 151, 226, 160, 62, 247, 59, 189, 206, 219, 66,\n\t\t220, 239, 25, 237, 230, 102, 137, 98, 95, 115, 249, 65, 144,\n\t\t9, 197, 241, 3, 54, 84, 61, 182, 161, 91, 109, 203, 185, 81,\n\t\t139, 177, 40, 101, 9, 34, 219, 136, 98, 161, 23, 147, 199,\n\t\t73, 131, 162, 240, 105, 53, 58, 218, 181, 224, 55, 177, 212,\n\t\t193, 96, 29, 153, 134, 78, 30, 197, 93, 251, 190, 1, 165,\n\t\t152, 186, 81, 212, 251, 143, 176, 232, 9, 159, 21, 67, 174,\n\t\t70, 17, 36, 200, 130, 122, 228, 241, 242, 112, 150, 47, 156,\n\t\t241, 205, 233, 59, 61, 15, 52, 12, 92, 2, 21, 30, 92, 149,\n\t\t93, 53, 67, 46, 230, 206, 186, 222, 105, 246, 82, 200, 165,\n\t\t160, 248, 155, 204, 186, 106, 146, 231, 185, 29, 92, 94, 89,\n\t\t76, 180, 104, 56, 225, 114, 167, 209, 22, 213, 61, 114, 83,\n\t\t124, 152, 19, 151, 22, 119, 65, 53, 253, 60, 204, 11, 169,\n\t\t71, 55, 253, 231, 162, 130, 158, 91, 14, 128, 157, 193, 211,\n\t\t23, 24, 122, 234, 206, 26, 131, 221, 41, 10, 70, 135, 212,\n\t\t55, 2, 92, 192, 218, 86, 172, 221, 210, 88, 11, 182, 108,\n\t\t4, 225, 174, 227, 41, 160, 100, 40, 198, 0, 118, 32, 10, 62,\n\t\t111, 240, 178, 86, 106, 176, 236, 94, 8, 32, 154, 41, 49,\n\t\t24, 66, 37, 91, 47, 166, 162, 135, 212, 29, 118, 87, 111,\n\t\t218, 140, 34, 235, 79, 68, 223, 7, 46, 207, 81, 117, 66, 117,\n\t\t39, 171, 250, 130, 171, 26, 62, 216, 31, 95, 182, 91, 104,\n\t\t114, 60, 126, 184, 11, 104, 158, 140, 25, 39, 153, 130, 236,\n\t\t210, 81, 170, 22, 229, 61, 76, 211, 124, 59, 254, 113, 11,\n\t\t112, 139, 134, 198, 134, 11, 140, 12, 32, 67, 53, 87, 178,\n\t\t117, 73, 24, 95, 145, 174, 239, 111, 199, 63, 170, 235, 178,\n\t\t141, 183, 166, 94, 145, 218, 103, 73, 125, 73, 115, 232, 216,\n\t\t131, 51, 181, 194, 31, 120, 109, 140, 197, 152, 157, 155,\n\t\t212, 11, 42, 106, 17, 54, 93, 28, 69, 151, 92, 75, 95, 31,\n\t\t169, 205, 208, 143, 81, 223, 61, 179, 159, 101, 199, 219,\n\t\t57, 234, 44, 38, 214, 236, 228, 219, 5, 219, 55, 245, 75,\n\t\t127, 117, 167, 183, 83, 22, 42, 189, 41, 199, 120, 83, 254,\n\t\t247, 155, 91, 16, 51, 231, 20, 218, 33, 179, 6, 164, 230,\n\t\t52, 220, 153, 33, 197, 105, 151, 52, 151, 159, 24, 91, 197,\n\t\t138, 188, 110, 249, 50, 181, 237, 157, 106, 221, 77, 94, 212,\n\t\t200, 175, 47, 255, 216, 100, 195, 78, 213, 88, 221, 20, 53,\n\t\t169, 86, 223, 34, 190, 238, 123, 229, 29, 182, 199, 55, 58,\n\t\t31, 236, 235, 35, 245, 130, 103, 111, 161, 93, 158, 58, 246,\n\t\t45, 46, 27, 63, 248, 204, 106, 88, 55, 232, 47, 224, 0, 89,\n\t\t207, 134, 197, 37, 188, 25, 193, 78, 116, 143, 3, 95, 158,\n\t\t2, 219, 57, 104, 123, 67, 139, 21, 233, 67, 93, 37, 52, 37,\n\t\t141, 81, 204, 16, 101, 150, 110, 44, 190, 98, 76, 169, 251,\n\t\t241, 181, 188, 200, 90, 229, 160, 227, 170, 149, 88, 138,\n\t\t8, 11, 200, 221, 68, 53, 95, 178, 180, 107, 151, 127, 190,\n\t\t7, 159, 60, 25, 111, 145, 73, 197, 92, 93, 51, 58, 61, 194,\n\t\t108, 155, 201, 162, 62, 119, 100, 68, 77, 201, 92, 62, 70,\n\t\t199, 246, 58, 48, 161, 219, 135, 232, 200, 172, 12, 166, 101,\n\t\t115, 146, 144, 143, 148, 106, 24, 247, 76, 150, 233, 48, 24,\n\t\t131, 186, 255, 45, 182, 24, 47, 51, 125, 45, 137, 34, 201,\n\t\t149, 194, 182, 117, 82, 81, 105, 159, 1, 181, 148, 129, 78,\n\t\t210, 6, 106, 64, 138, 34, 247, 26, 145, 151, 132, 81, 151,\n\t\t163, 203, 19, 138, 152, 7, 179, 14, 114, 118, 138, 97, 66,\n\t\t212, 101, 174, 225, 229, 91, 41, 245, 6, 97, 126, 57, 90,\n\t\t107, 214, 180, 249, 250, 30, 240, 173, 134, 178, 162, 121,\n\t\t86, 64, 53, 245, 175, 107, 54, 126, 255, 143, 223, 254, 251,\n\t\t31, 127, 254, 243, 123, 201, 198, 111, 191, 2, 68, 0, 62,\n\t\t84, 202, 35, 148, 151, 217, 211, 153, 11, 245, 165, 255, 50,\n\t\t65, 48, 103, 249, 60, 91, 83, 171, 204, 221, 60, 253, 128,\n\t\t51, 104, 2, 170, 159, 141, 161, 22, 109, 27, 46, 241, 255,\n\t\t107, 168, 133, 60, 1, 118, 64, 115, 225, 105, 242, 229, 115,\n\t\t144, 13, 253, 133, 182, 43, 8, 13, 254, 187, 254, 80, 209,\n\t\t226, 95, 97, 161, 205, 80, 31, 159, 189, 234, 185, 212, 84,\n\t\t36, 51, 162, 132, 19, 26, 107, 226, 153, 207, 211, 175, 197,\n\t\t247, 241, 255, 207, 115, 208, 220, 253, 126, 242, 117, 255,\n\t\t58, 250, 248, 111, 63, 128, 150, 237, 86, 67, 125, 217, 96,\n\t\t97, 48, 221, 141, 209, 15, 159, 39, 174, 177, 47, 222, 239,\n\t\t196, 200, 197, 183, 59, 81, 2, 253, 191, 110, 230, 247, 249,\n\t\t53, 204, 207, 223, 255, 248, 175, 127, 123, 253, 249, 211,\n\t\t10, 26, 223, 87, 80, 30, 197, 33, 53, 144, 145, 42, 104, 105,\n\t\t179, 230, 147, 8, 114, 250, 74, 147, 62, 148, 182, 15, 83,\n\t\t255, 1, 222, 8, 180, 15, 37, 214, 199, 219, 95, 136, 198,\n\t\t166, 201, 32, 3, 81, 20, 177, 114, 55, 61, 145, 250, 15, 81,\n\t\t198, 164, 132, 134, 18, 61, 251, 245, 33, 178, 252, 22, 9,\n\t\t125, 41, 48, 169, 4, 128, 17, 97, 153, 188, 94, 91, 1, 48,\n\t\t6, 88, 191, 54, 187, 62, 168, 130, 53, 218, 131, 226, 80,\n\t\t31, 212, 138, 248, 111, 168, 142, 192, 147, 94, 55, 80, 220,\n\t\t31, 187, 173, 82, 224, 236, 19, 120, 166, 41, 161, 183, 35,\n\t\t141, 121, 205, 193, 250, 253, 120, 72, 239, 235, 228, 217,\n\t\t149, 13, 213, 142, 165, 183, 80, 80, 71, 58, 187, 98, 231,\n\t\t244, 105, 172, 128, 189, 5, 212, 52, 223, 174, 173, 233, 58,\n\t\t39, 139, 227, 217, 145, 143, 63, 245, 225, 93, 164, 56, 230,\n\t\t149, 159, 57, 215, 80, 198, 171, 84, 118, 15, 164, 126, 101,\n\t\t117, 93, 203, 80, 52, 62, 16, 76, 181, 113, 72, 78, 161, 202,\n\t\t209, 134, 63, 63, 86, 79, 138, 242, 184, 58, 217, 99, 209,\n\t\t47, 138, 171, 234, 0, 159, 32, 15, 80, 183, 189, 236, 223,\n\t\t158, 136, 232, 179, 182, 70, 202, 147, 21, 221, 72, 149, 236,\n\t\t11, 107, 185, 206, 174, 132, 101, 209, 255, 2, 200, 33, 218,\n\t\t244, 122, 2, 215, 162, 210, 190, 91, 175, 36, 17, 176, 236,\n\t\t79, 199, 251, 149, 191, 148, 146, 127, 254, 254, 249, 125,\n\t\t121, 255, 155, 227, 88, 165, 49, 67, 235, 135, 244, 28, 4,\n\t\t54, 77, 110, 112, 84, 96, 217, 131, 225, 100, 109, 39, 54,\n\t\t95, 235, 82, 183, 51, 151, 95, 27, 121, 78, 27, 133, 253,\n\t\t91, 235, 88, 255, 189, 34, 64, 76, 129, 226, 198, 43, 236,\n\t\t110, 247, 11, 123, 68, 135, 17, 11, 191, 174, 245, 5, 11,\n\t\t26, 40, 115, 247, 186, 8, 145, 146, 229, 118, 8, 111, 66,\n\t\t128, 45, 126, 248, 250, 40, 105, 134, 148, 0, 60, 38, 237,\n\t\t243, 76, 32, 121, 124, 234, 191, 159, 86, 40, 15, 95, 25,\n\t\t136, 151, 119, 206, 208, 229, 16, 28, 211, 90, 139, 244, 56,\n\t\t161, 64, 75, 34, 160, 157, 142, 161, 198, 129, 76, 52, 246,\n\t\t28, 203, 148, 72, 17, 205, 49, 159, 121, 176, 217, 126, 93,\n\t\t219, 59, 226, 104, 125, 160, 133, 255, 118, 98, 126, 230,\n\t\t169, 64, 140, 35, 18, 139, 154, 112, 122, 107, 200, 123, 177,\n\t\t62, 94, 96, 60, 215, 22, 10, 234, 215, 71, 163, 248, 232,\n\t\t81, 65, 155, 164, 246, 0, 96, 218, 30, 68, 236, 240, 199,\n\t\t250, 39, 206, 117, 85, 61, 244, 51, 255, 162, 156, 65, 169,\n\t\t180, 56, 143, 162, 165, 156, 12, 38, 46, 227, 41, 182, 144,\n\t\t242, 178, 57, 148, 255, 114, 173, 169, 81, 214, 190, 33, 252,\n\t\t171, 102, 18, 208, 212, 32, 131, 201, 158, 58, 202, 209, 151,\n\t\t209, 0, 162, 195, 184, 220, 245, 116, 244, 226, 0, 107, 107,\n\t\t34, 169, 244, 127, 185, 54, 127, 60, 255, 241, 223, 255, 243,\n\t\t219, 159, 191, 255, 180, 64, 235, 191, 110, 98, 41, 17, 14,\n\t\t84, 87, 50, 235, 181, 10, 137, 119, 149, 90, 24, 9, 208, 111,\n\t\t81, 2, 50, 13, 72, 150, 35, 183, 88, 150, 41, 40, 126, 134,\n\t\t161, 42, 100, 33, 96, 187, 23, 197, 71, 125, 143, 90, 209,\n\t\t200, 124, 143, 76, 102, 96, 243, 197, 227, 39, 189, 141, 38,\n\t\t42, 252, 241, 155, 2, 127, 70, 214, 105, 148, 171, 90, 48,\n\t\t246, 144, 212, 66, 205, 67, 17, 203, 199, 114, 166, 150, 172,\n\t\t26, 104, 66, 5, 207, 76, 211, 98, 250, 24, 42, 251, 83, 36,\n\t\t136, 183, 68, 182, 1, 194, 41, 61, 161, 173, 201, 172, 198,\n\t\t103, 223, 156, 23, 188, 57, 199, 73, 54, 148, 219, 27, 127,\n\t\t142, 36, 37, 5, 60, 239, 37, 208, 162, 241, 14, 47, 159, 187,\n\t\t145, 130, 73, 13, 41, 129, 174, 60, 102, 12, 117, 137, 112,\n\t\t223, 115, 96, 57, 164, 133, 177, 236, 4, 209, 109, 27, 235,\n\t\t198, 96, 237, 106, 12, 247, 109, 164, 229, 198, 51, 227, 129,\n\t\t64, 89, 130, 2, 126, 91, 74, 24, 55, 0, 66, 88, 167, 190,\n\t\t158, 145, 90, 67, 230, 155, 199, 121, 204, 100, 68, 231, 165,\n\t\t134, 49, 4, 138, 96, 0, 190, 189, 143, 208, 243, 5, 174, 3,\n\t\t118, 11, 47, 217, 161, 33, 38, 133, 55, 28, 29, 25, 194, 58,\n\t\t144, 19, 235, 74, 85, 24, 67, 157, 232, 231, 144, 80, 82,\n\t\t131, 98, 8, 3, 157, 106, 126, 34, 25, 142, 49, 223, 112, 84,\n\t\t165, 137, 65, 241, 40, 225, 225, 90, 195, 23, 247, 23, 214,\n\t\t148, 126, 125, 212, 152, 143, 4, 6, 228, 43, 6, 196, 56, 200,\n\t\t248, 57, 50, 97, 177, 25, 160, 108, 204, 197, 251, 137, 148,\n\t\t194, 16, 190, 245, 114, 9, 154, 32, 253, 206, 242, 28, 90,\n\t\t172, 133, 248, 135, 100, 188, 152, 75, 106, 116, 120, 29,\n\t\t101, 86, 229, 51, 74, 185, 19, 30, 217, 104, 150, 210, 242,\n\t\t125, 80, 102, 206, 186, 60, 61, 243, 184, 125, 13, 235, 11,\n\t\t60, 255, 206, 235, 215, 208, 182, 21, 67, 65, 73, 212, 5,\n\t\t185, 12, 200, 184, 166, 144, 196, 200, 33, 76, 144, 109, 178,\n\t\t50, 125, 38, 90, 39, 121, 106, 89, 124, 139, 236, 244, 86,\n\t\t228, 82, 134, 68, 115, 57, 138, 88, 31, 15, 143, 71, 33, 178,\n\t\t105, 220, 192, 242, 70, 226, 88, 21, 101, 121, 144, 68, 147,\n\t\t71, 87, 85, 178, 235, 184, 214, 133, 162, 249, 119, 131, 68,\n\t\t45, 97, 189, 100, 3, 139, 19, 247, 155, 214, 157, 18, 122,\n\t\t94, 150, 104, 204, 152, 179, 70, 232, 105, 139, 2, 38, 54,\n\t\t100, 252, 90, 170, 253, 159, 255, 251, 219, 159, 191, 255,\n\t\t248, 239, 223, 174, 159, 5, 219, 239, 255, 90, 176, 201, 104,\n\t\t144, 234, 177, 132, 214, 94, 75, 116, 39, 202, 248, 116, 101,\n\t\t109, 129, 88, 255, 2, 83, 46, 162, 119, 209, 15, 243, 12,\n\t\t61, 29, 17, 215, 65, 224, 225, 47, 81, 14, 63, 161, 223, 128,\n\t\t213, 177, 46, 6, 102, 228, 36, 241, 184, 192, 98, 121, 157,\n\t\t155, 38, 239, 188, 177, 59, 33, 35, 2, 231, 118, 18, 39, 229,\n\t\t172, 209, 244, 20, 111, 208, 38, 251, 35, 253, 75, 47, 169,\n\t\t101, 25, 105, 7, 255, 125, 92, 64, 6, 58, 238, 255, 175, 209,\n\t\t12, 231, 245, 237, 22, 203, 15, 220, 118, 153, 2, 188, 0,\n\t\t119, 69, 165, 248, 139, 10, 110, 152, 166, 27, 2, 254, 115,\n\t\t86, 237, 250, 135, 84, 241, 45, 63, 206, 133, 125, 40, 17,\n\t\t23, 43, 242, 63, 255, 245, 19, 252, 78, 60, 214, 181, 37,\n\t\t150, 175, 143, 146, 151, 212, 63, 82, 4, 208, 254, 52, 204,\n\t\t7, 251, 224, 39, 82, 85, 120, 130, 27, 25, 84, 6, 117, 78,\n\t\t215, 167, 165, 116, 234, 97, 41, 95, 155, 140, 211, 166, 145,\n\t\t179, 81, 222, 206, 112, 86, 214, 219, 110, 178, 12, 255, 196,\n\t\t23, 94, 14, 242, 253, 29, 144, 170, 213, 119, 240, 239, 224,\n\t\t189, 99, 127, 221, 43, 232, 93, 127, 217, 232, 216, 139, 36,\n\t\t109, 61, 183, 155, 101, 101, 99, 191, 245, 193, 191, 110,\n\t\t116, 153, 55, 154, 76, 157, 164, 245, 79, 139, 0, 81, 216,\n\t\t75, 98, 73, 199, 251, 154, 192, 87, 184, 160, 105, 145, 140,\n\t\t235, 251, 235, 216, 128, 218, 177, 190, 197, 17, 137, 113,\n\t\t215, 218, 33, 9, 141, 230, 107, 196, 152, 67, 241, 81, 213,\n\t\t165, 125, 59, 177, 198, 50, 223, 223, 251, 109, 63, 248, 84,\n\t\t12, 176, 25, 233, 190, 176, 109, 193, 221, 112, 112, 115,\n\t\t188, 254, 98, 46, 240, 238, 204, 188, 41, 210, 136, 173, 101,\n\t\t219, 32, 88, 185, 4, 12, 215, 239, 172, 69, 81, 2, 68, 47,\n\t\t254, 197, 36, 111, 98, 82, 253, 168, 123, 45, 230, 27, 148,\n\t\t150, 76, 227, 57, 98, 159, 243, 61, 146, 221, 72, 89, 245,\n\t\t186, 83, 172, 109, 251, 249, 54, 67, 123, 187, 113, 19, 27,\n\t\t182, 42, 26, 215, 244, 122, 206, 143, 232, 4, 61, 238, 51,\n\t\t180, 151, 74, 220, 123, 64, 193, 177, 143, 232, 87, 222, 247,\n\t\t153, 118, 169, 235, 254, 58, 125, 131, 13, 237, 40, 146, 101,\n\t\t235, 230, 183, 101, 237, 251, 249, 167, 173, 9, 188, 37, 60,\n\t\t150, 90, 180, 211, 5, 221, 187, 64, 148, 111, 18, 81, 244,\n\t\t233, 92, 82, 188, 253, 148, 173, 57, 125, 190, 28, 73, 155,\n\t\t180, 95, 230, 253, 178, 111, 162, 101, 45, 206, 111, 123,\n\t\t149, 44, 109, 215, 185, 229, 28, 105, 118, 20, 159, 11, 123,\n\t\t101, 86, 159, 55, 76, 22, 191, 67, 161, 145, 92, 194, 205,\n\t\t111, 15, 226, 163, 217, 137, 104, 172, 103, 124, 14, 126,\n\t\t141, 31, 250, 252, 253, 191, 126, 191, 254, 241, 93, 21, 93,\n\t\t205, 157, 64, 0, 217, 149, 60, 67, 237, 215, 212, 40, 172,\n\t\t17, 213, 36, 16, 53, 192, 83, 200, 149, 45, 167, 214, 137,\n\t\t252, 90, 190, 50, 32, 11, 99, 15, 45, 95, 18, 119, 189, 154,\n\t\t112, 237, 34, 100, 32, 68, 80, 89, 82, 126, 185, 100, 61,\n\t\t164, 73, 252, 55, 197, 101, 26, 78, 225, 69, 25, 142, 235,\n\t\t151, 130, 66, 71, 218, 65, 7, 170, 160, 116, 205, 184, 201,\n\t\t148, 171, 48, 1, 244, 202, 76, 220, 106, 75, 90, 31, 239,\n\t\t148, 81, 131, 192, 121, 43, 130, 185, 101, 119, 178, 243,\n\t\t233, 72, 87, 152, 98, 69, 176, 246, 19, 153, 168, 67, 159,\n\t\t254, 176, 246, 172, 68, 160, 193, 119, 58, 199, 62, 131, 55,\n\t\t76, 190, 62, 36, 85, 68, 22, 39, 158, 85, 8, 85, 141, 197,\n\t\t101, 150, 140, 243, 144, 156, 165, 59, 107, 60, 79, 125, 210,\n\t\t137, 42, 243, 137, 184, 195, 156, 159, 137, 27, 244, 169,\n\t\t181, 120, 87, 1, 76, 49, 11, 190, 214, 106, 234, 100, 68,\n\t\t62, 162, 125, 250, 250, 72, 173, 134, 86, 176, 246, 75, 125,\n\t\t188, 214, 152, 3, 254, 33, 23, 236, 217, 43, 247, 163, 43,\n\t\t194, 133, 226, 163, 2, 121, 144, 184, 226, 10, 222, 221, 136,\n\t\t113, 126, 161, 237, 118, 40, 216, 57, 233, 219, 142, 219,\n\t\t243, 15, 74, 165, 247, 199, 175, 251, 233, 115, 14, 51, 206,\n\t\t244, 84, 222, 164, 87, 210, 167, 62, 237, 15, 41, 177, 101,\n\t\t147, 169, 31, 64, 253, 134, 88, 143, 148, 36, 244, 126, 37,\n\t\t133, 226, 65, 77, 49, 229, 95, 6, 29, 90, 212, 15, 79, 242,\n\t\t119, 172, 95, 194, 161, 30, 125, 61, 62, 100, 185, 84, 243,\n\t\t72, 235, 22, 253, 74, 66, 116, 94, 96, 197, 19, 53, 43, 15,\n\t\t74, 231, 232, 31, 159, 235, 158, 89, 98, 93, 62, 252, 40,\n\t\t113, 48, 228, 46, 229, 72, 101, 25, 128, 215, 217, 134, 254,\n\t\t56, 161, 226, 107, 208, 242, 255, 26, 198, 213, 20, 103, 255,\n\t\t38, 133, 219, 36, 91, 148, 93, 137, 127, 247, 77, 83, 9, 41,\n\t\t95, 133, 140, 12, 138, 104, 204, 198, 22, 55, 89, 237, 227,\n\t\t117, 22, 157, 169, 136, 54, 120, 52, 86, 237, 203, 244, 211,\n\t\t175, 17, 9, 127, 255, 253, 223, 94, 255, 251, 211, 238, 191,\n\t\t126, 225, 97, 163, 182, 251, 200, 35, 5, 233, 203, 142, 166,\n\t\t144, 57, 134, 113, 96, 231, 202, 120, 31, 8, 101, 150, 185,\n\t\t48, 232, 153, 193, 37, 177, 88, 167, 99, 179, 0, 154, 18,\n\t\t223, 235, 224, 45, 72, 105, 153, 180, 203, 141, 65, 124, 97,\n\t\t89, 225, 26, 88, 234, 198, 213, 48, 149, 36, 101, 89, 238,\n\t\t216, 152, 122, 230, 58, 179, 70, 215, 56, 68, 48, 86, 193,\n\t\t138, 4, 252, 124, 116, 220, 86, 224, 204, 163, 32, 0, 187,\n\t\t46, 151, 27, 171, 5, 147, 97, 89, 161, 225, 237, 43, 118,\n\t\t230, 1, 132, 234, 201, 56, 233, 186, 63, 194, 151, 195, 196,\n\t\t133, 61, 77, 35, 56, 210, 117, 118, 114, 86, 29, 41, 70, 8,\n\t\t239, 78, 110, 49, 134, 132, 210, 237, 56, 231, 80, 250, 146,\n\t\t35, 37, 43, 153, 181, 234, 41, 43, 249, 196, 208, 218, 209,\n\t\t85, 112, 187, 120, 244, 172, 170, 7, 240, 224, 179, 30, 35,\n\t\t43, 46, 82, 43, 202, 190, 50, 214, 141, 129, 109, 14, 60,\n\t\t172, 181, 125, 15, 253, 227, 49, 84, 115, 233, 49, 12, 23,\n\t\t32, 150, 199, 163, 181, 208, 97, 212, 55, 117, 108, 70, 161,\n\t\t108, 223, 119, 142, 156, 30, 179, 183, 10, 105, 143, 246,\n\t\t205, 245, 81, 244, 248, 235, 163, 84, 1, 56, 66, 235, 33,\n\t\t183, 203, 216, 217, 69, 88, 178, 214, 141, 5, 123, 114, 80,\n\t\t141, 64, 46, 129, 145, 38, 95, 241, 128, 79, 15, 231, 188,\n\t\t177, 227, 94, 153, 25, 242, 224, 15, 226, 16, 5, 16, 134,\n\t\t224, 157, 133, 195, 127, 138, 21, 43, 228, 182, 145, 220,\n\t\t128, 43, 249, 90, 155, 134, 133, 92, 75, 44, 14, 153, 79,\n\t\t95, 152, 248, 27, 222, 65, 114, 3, 233, 76, 163, 54, 7, 43,\n\t\t84, 211, 150, 111, 68, 28, 114, 10, 145, 8, 65, 136, 253,\n\t\t234, 225, 15, 240, 45, 176, 163, 61, 105, 216, 144, 23, 156,\n\t\t122, 197, 254, 137, 147, 191, 241, 237, 215, 89, 121, 196,\n\t\t7, 3, 93, 37, 41, 112, 58, 253, 178, 78, 92, 137, 100, 144,\n\t\t109, 246, 118, 246, 114, 216, 67, 132, 32, 217, 195, 132,\n\t\t34, 90, 108, 59, 63, 147, 72, 16, 196, 48, 73, 176, 206, 62,\n\t\t45, 64, 154, 14, 36, 199, 210, 66, 20, 38, 180, 98, 239, 213,\n\t\t151, 130, 184, 186, 209, 126, 36, 225, 122, 75, 78, 199, 220,\n\t\t249, 161, 52, 238, 75, 59, 177, 68, 184, 138, 183, 220, 21,\n\t\t52, 68, 123, 88, 240, 222, 68, 208, 67, 158, 41, 171, 209,\n\t\t43, 235, 133, 211, 211, 248, 247, 253, 252, 201, 63, 60, 46,\n\t\t227, 243, 194, 83, 140, 153, 81, 101, 56, 52, 43, 135, 8,\n\t\t122, 41, 74, 103, 170, 39, 208, 165, 194, 12, 189, 134, 103,\n\t\t209, 59, 176, 182, 82, 33, 148, 219, 161, 207, 251, 107, 17,\n\t\t250, 199, 255, 239, 39, 249, 249, 239, 223, 229, 103, 43,\n\t\t81, 229, 103, 158, 57, 228, 1, 144, 254, 44, 138, 105, 128,\n\t\t153, 246, 110, 247, 172, 97, 253, 51, 13, 197, 52, 42, 36,\n\t\t118, 93, 70, 138, 146, 231, 100, 195, 173, 48, 122, 204, 105,\n\t\t86, 207, 247, 51, 87, 60, 178, 24, 179, 40, 144, 175, 128,\n\t\t198, 169, 53, 243, 101, 192, 143, 190, 128, 232, 82, 13, 37,\n\t\t73, 145, 135, 140, 248, 235, 219, 241, 215, 71, 90, 178, 122,\n\t\t28, 105, 196, 208, 251, 227, 170, 70, 66, 217, 66, 46, 203,\n\t\t238, 142, 4, 194, 90, 163, 186, 142, 171, 177, 191, 209, 70,\n\t\t125, 237, 108, 65, 42, 61, 204, 252, 131, 224, 13, 136, 231,\n\t\t4, 237, 202, 165, 70, 207, 68, 210, 218, 112, 96, 92, 252,\n\t\t9, 172, 178, 228, 158, 35, 45, 175, 146, 168, 148, 198, 140,\n\t\t194, 217, 181, 143, 202, 8, 170, 96, 17, 48, 129, 54, 66,\n\t\t129, 116, 192, 2, 68, 241, 9, 208, 64, 17, 100, 148, 172,\n\t\t96, 181, 18, 249, 64, 226, 107, 189, 106, 120, 22, 245, 231,\n\t\t145, 177, 109, 99, 239, 71, 227, 13, 7, 221, 16, 188, 236,\n\t\t7, 78, 253, 133, 97, 156, 152, 57, 27, 236, 86, 85, 0, 171,\n\t\t60, 129, 3, 118, 163, 130, 241, 215, 144, 168, 166, 96, 245,\n\t\t137, 79, 202, 109, 161, 148, 38, 239, 199, 123, 104, 57, 178,\n\t\t107, 163, 209, 102, 69, 79, 24, 140, 57, 213, 183, 213, 60,\n\t\t23, 155, 149, 92, 116, 147, 202, 90, 128, 117, 190, 146, 2,\n\t\t234, 104, 126, 227, 113, 117, 5, 27, 90, 6, 81, 37, 136, 35,\n\t\t136, 70, 202, 32, 0, 101, 25, 52, 65, 244, 248, 74, 157, 218,\n\t\t62, 30, 37, 154, 13, 221, 150, 42, 43, 131, 80, 150, 167,\n\t\t94, 137, 159, 234, 132, 31, 192, 111, 49, 175, 157, 219, 145,\n\t\t250, 178, 224, 63, 207, 65, 162, 212, 119, 151, 91, 45, 170,\n\t\t207, 83, 106, 12, 169, 95, 231, 141, 157, 220, 6, 206, 1,\n\t\t131, 115, 215, 20, 28, 4, 232, 36, 112, 208, 82, 90, 15, 14,\n\t\t115, 34, 252, 133, 14, 115, 234, 54, 57, 198, 19, 251, 253,\n\t\t204, 167, 212, 20, 98, 155, 100, 26, 130, 72, 214, 57, 73,\n\t\t10, 92, 34, 153, 230, 165, 86, 52, 93, 77, 67, 163, 105, 19,\n\t\t66, 78, 96, 113, 86, 248, 11, 29, 0, 72, 88, 37, 151, 97,\n\t\t75, 26, 207, 178, 100, 208, 253, 138, 198, 192, 238, 71, 95,\n\t\t31, 181, 182, 48, 142, 229, 15, 149, 241, 26, 201, 212, 222,\n\t\t178, 113, 219, 143, 51, 155, 25, 99, 8, 205, 203, 158, 113,\n\t\t126, 28, 176, 116, 102, 205, 187, 38, 213, 70, 41, 43, 133,\n\t\t158, 197, 101, 107, 86, 172, 63, 146, 168, 163, 138, 110,\n\t\t147, 244, 172, 109, 64, 38, 223, 168, 198, 148, 40, 156, 8,\n\t\t41, 49, 212, 138, 114, 252, 74, 81, 21, 212, 140, 147, 185,\n\t\t38, 99, 136, 178, 251, 75, 87, 243, 79, 140, 103, 104, 25,\n\t\t97, 138, 212, 3, 107, 234, 253, 24, 175, 13, 22, 102, 188,\n\t\t245, 203, 48, 225, 113, 220, 243, 124, 252, 88, 86, 233, 178,\n\t\t240, 171, 70, 181, 43, 202, 131, 233, 70, 201, 37, 217, 126,\n\t\t47, 113, 206, 82, 49, 3, 145, 76, 207, 192, 253, 132, 44,\n\t\t238, 137, 214, 172, 81, 218, 65, 107, 150, 93, 65, 227, 84,\n\t\t145, 123, 16, 18, 161, 111, 151, 240, 133, 69, 92, 84, 62,\n\t\t182, 72, 146, 95, 187, 183, 221, 122, 189, 253, 96, 39, 27,\n\t\t94, 30, 207, 170, 143, 250, 118, 240, 75, 189, 244, 251, 235,\n\t\t245, 147, 91, 255, 239, 63, 81, 75, 126, 99, 3, 65, 129, 74,\n\t\t11, 243, 94, 163, 18, 32, 78, 110, 101, 42, 193, 168, 165,\n\t\t126, 174, 84, 241, 63, 105, 177, 138, 125, 247, 86, 175, 34,\n\t\t97, 20, 196, 126, 199, 149, 148, 115, 184, 43, 162, 244, 153,\n\t\t172, 139, 153, 214, 157, 177, 51, 173, 1, 129, 191, 211, 21,\n\t\t241, 200, 174, 59, 197, 168, 143, 148, 39, 95, 175, 244, 175,\n\t\t62, 160, 58, 104, 33, 85, 35, 185, 69, 224, 36, 170, 49, 40,\n\t\t75, 36, 53, 63, 241, 227, 148, 136, 236, 121, 182, 126, 43,\n\t\t189, 64, 255, 126, 157, 162, 134, 134, 61, 11, 34, 15, 113,\n\t\t250, 238, 244, 103, 152, 198, 47, 233, 175, 103, 95, 61, 189,\n\t\t140, 195, 249, 167, 252, 131, 189, 235, 250, 213, 172, 25,\n\t\t117, 20, 82, 244, 102, 100, 189, 34, 129, 77, 138, 100, 94,\n\t\t151, 208, 30, 63, 100, 201, 39, 129, 225, 50, 237, 111, 248,\n\t\t211, 175, 113, 2, 127, 187, 254, 243, 247, 63, 255, 252, 237,\n\t\t239, 255, 249, 211, 74, 233, 191, 112, 1, 225, 170, 229, 20,\n\t\t47, 242, 233, 37, 244, 115, 19, 124, 45, 229, 24, 102, 186,\n\t\t199, 136, 215, 223, 219, 143, 83, 230, 50, 225, 161, 16, 145,\n\t\t166, 146, 144, 51, 14, 174, 101, 231, 88, 56, 36, 197, 22,\n\t\t70, 70, 55, 137, 93, 181, 54, 241, 90, 119, 133, 110, 243,\n\t\t250, 129, 14, 230, 131, 218, 126, 224, 166, 117, 169, 241,\n\t\t113, 220, 46, 198, 93, 208, 10, 145, 45, 110, 64, 210, 182,\n\t\t181, 0, 151, 7, 145, 81, 202, 61, 98, 190, 76, 145, 66, 71,\n\t\t145, 101, 81, 89, 141, 115, 103, 76, 117, 249, 56, 67, 1,\n\t\t69, 148, 108, 54, 18, 252, 145, 212, 5, 144, 2, 162, 30, 13,\n\t\t17, 63, 150, 240, 231, 37, 203, 250, 178, 126, 66, 184, 14,\n\t\t145, 5, 199, 138, 174, 145, 64, 237, 43, 215, 230, 187, 206,\n\t\t154, 88, 62, 55, 243, 45, 209, 217, 79, 118, 23, 227, 0, 213,\n\t\t252, 196, 41, 7, 4, 123, 70, 243, 138, 114, 83, 222, 232,\n\t\t180, 115, 166, 225, 182, 102, 163, 1, 42, 229, 114, 218, 245,\n\t\t211, 51, 183, 104, 232, 18, 197, 66, 81, 156, 75, 35, 230,\n\t\t85, 36, 147, 199, 229, 172, 253, 218, 196, 233, 85, 140, 93,\n\t\t137, 182, 189, 78, 157, 216, 83, 207, 115, 68, 68, 255, 111,\n\t\t156, 190, 90, 224, 233, 88, 133, 93, 169, 89, 13, 22, 86,\n\t\t226, 50, 178, 62, 179, 162, 232, 14, 5, 93, 139, 203, 218,\n\t\t64, 87, 84, 101, 101, 98, 132, 178, 4, 201, 45, 116, 144,\n\t\t15, 182, 117, 101, 37, 39, 53, 215, 162, 131, 172, 126, 33,\n\t\t168, 249, 186, 78, 234, 68, 79, 79, 134, 71, 193, 118, 34,\n\t\t49, 63, 173, 106, 172, 33, 43, 101, 213, 169, 215, 95, 78,\n\t\t107, 112, 250, 26, 232, 155, 68, 156, 180, 254, 110, 96, 232,\n\t\t99, 125, 158, 153, 252, 161, 87, 86, 250, 247, 181, 18, 81,\n\t\t89, 99, 196, 217, 210, 231, 154, 169, 195, 80, 5, 151, 23,\n\t\t147, 2, 225, 236, 36, 199, 193, 62, 94, 163, 150, 214, 60,\n\t\t83, 83, 88, 81, 192, 239, 166, 230, 39, 0, 37, 10, 108, 171,\n\t\t61, 197, 41, 238, 156, 148, 118, 218, 229, 168, 172, 229,\n\t\t126, 234, 42, 86, 113, 226, 235, 101, 233, 75, 26, 43, 90,\n\t\t188, 106, 60, 219, 149, 76, 153, 40, 204, 133, 129, 149, 155,\n\t\t113, 108, 42, 161, 112, 171, 138, 215, 107, 39, 128, 119,\n\t\t57, 231, 179, 107, 118, 23, 189, 167, 68, 148, 54, 74, 129,\n\t\t51, 171, 150, 243, 19, 213, 201, 196, 125, 25, 128, 208, 60,\n\t\t19, 139, 64, 113, 22, 90, 212, 50, 15, 63, 51, 154, 98, 83,\n\t\t47, 251, 128, 53, 210, 155, 71, 151, 15, 26, 185, 245, 69,\n\t\t177, 255, 109, 198, 208, 210, 236, 43, 40, 169, 92, 206, 92,\n\t\t60, 112, 204, 242, 240, 207, 191, 148, 174, 255, 249, 219,\n\t\t127, 252, 199, 235, 167, 44, 239, 191, 255, 246, 83, 249,\n\t\t96, 114, 231, 48, 150, 64, 11, 173, 190, 28, 183, 164, 107,\n\t\t207, 145, 246, 123, 177, 112, 248, 204, 128, 245, 202, 207,\n\t\t179, 89, 91, 57, 67, 131, 168, 13, 214, 238, 140, 72, 64,\n\t\t2, 37, 5, 66, 233, 79, 137, 161, 49, 248, 59, 213, 113, 74,\n\t\t36, 117, 137, 8, 187, 87, 189, 123, 191, 255, 239, 105, 168,\n\t\t245, 215, 89, 237, 55, 252, 170, 30, 234, 103, 193, 108, 242,\n\t\t100, 223, 255, 61, 237, 107, 21, 197, 213, 122, 111, 187,\n\t\t235, 231, 153, 193, 78, 180, 188, 137, 27, 204, 25, 96, 34,\n\t\t172, 187, 243, 246, 6, 207, 198, 18, 212, 171, 227, 102, 195,\n\t\t198, 6, 239, 97, 205, 160, 66, 162, 164, 60, 65, 27, 150,\n\t\t107, 248, 117, 133, 209, 127, 253, 246, 231, 127, 254, 237,\n\t\t31, 255, 243, 157, 132, 165, 197, 95, 248, 239, 117, 230,\n\t\t48, 142, 60, 70, 152, 23, 130, 250, 17, 74, 151, 21, 221,\n\t\t218, 161, 228, 39, 10, 11, 96, 215, 171, 74, 104, 215, 189,\n\t\t77, 203, 43, 76, 162, 117, 217, 88, 177, 108, 177, 90, 87,\n\t\t61, 243, 60, 107, 233, 203, 135, 212, 159, 59, 237, 246, 246,\n\t\t115, 126, 66, 255, 253, 92, 191, 6, 0, 61, 107, 154, 223,\n\t\t207, 133, 159, 184, 93, 143, 31, 88, 247, 111, 95, 31, 57,\n\t\t143, 80, 143, 193, 208, 192, 211, 59, 24, 62, 83, 68, 177,\n\t\t236, 227, 9, 122, 163, 23, 254, 15, 232, 122, 246, 185, 227,\n\t\t80, 143, 120, 201, 231, 169, 95, 121, 54, 86, 106, 127, 74,\n\t\t138, 47, 255, 26, 106, 133, 237, 91, 19, 117, 185, 146, 226,\n\t\t186, 182, 126, 125, 148, 190, 198, 87, 107, 233, 94, 83, 155,\n\t\t90, 36, 246, 208, 245, 230, 168, 129, 176, 31, 186, 29, 252,\n\t\t114, 170, 255, 254, 251, 63, 126, 124, 159, 102, 249, 5, 26,\n\t\t114, 65, 73, 235, 113, 182, 242, 60, 103, 117, 50, 157, 193,\n\t\t44, 104, 9, 181, 124, 130, 76, 18, 78, 247, 48, 146, 151,\n\t\t150, 33, 183, 158, 231, 164, 25, 240, 89, 70, 10, 50, 94,\n\t\t70, 35, 146, 72, 252, 241, 92, 55, 138, 245, 5, 239, 68, 171,\n\t\t89, 37, 127, 202, 146, 249, 227, 181, 238, 182, 188, 227,\n\t\t198, 160, 194, 115, 221, 107, 204, 250, 121, 22, 142, 80,\n\t\t30, 234, 78, 72, 10, 61, 175, 211, 203, 231, 120, 117, 240,\n\t\t59, 47, 9, 251, 153, 202, 12, 146, 94, 137, 221, 113, 57,\n\t\t246, 208, 202, 115, 148, 208, 231, 171, 170, 239, 158, 7,\n\t\t116, 210, 147, 48, 200, 17, 25, 161, 101, 25, 149, 163, 212,\n\t\t24, 74, 255, 250, 144, 101, 53, 209, 211, 90, 55, 125, 141,\n\t\t120, 84, 68, 187, 243, 167, 68, 121, 45, 197, 79, 148, 15,\n\t\t226, 184, 124, 158, 9, 176, 152, 243, 5, 110, 219, 162, 126,\n\t\t99, 170, 207, 78, 86, 221, 175, 143, 161, 8, 215, 101, 217,\n\t\t214, 249, 149, 37, 18, 39, 184, 148, 20, 106, 127, 142, 4,\n\t\t119, 232, 83, 15, 249, 3, 159, 103, 94, 210, 185, 201, 11,\n\t\t133, 93, 51, 207, 67, 79, 60, 151, 201, 190, 148, 218, 178,\n\t\t233, 100, 153, 131, 33, 215, 53, 10, 176, 224, 135, 124, 166,\n\t\t62, 2, 88, 72, 32, 81, 215, 26, 75, 161, 167, 95, 59, 77,\n\t\t95, 207, 63, 158, 255, 247, 251, 58, 201, 191, 16, 7, 210,\n\t\t225, 254, 165, 57, 195, 232, 207, 245, 19, 109, 48, 143, 89,\n\t\t235, 243, 44, 19, 8, 40, 47, 208, 85, 131, 165, 33, 145, 190,\n\t\t242, 5, 156, 50, 197, 102, 224, 137, 164, 40, 235, 183, 192,\n\t\t6, 110, 83, 190, 62, 82, 3, 209, 239, 178, 143, 102, 249,\n\t\t92, 63, 153, 229, 9, 252, 232, 20, 215, 139, 225, 196, 235,\n\t\t214, 140, 103, 165, 54, 213, 98, 138, 66, 74, 135, 87, 234,\n\t\t106, 189, 117, 176, 70, 60, 53, 86, 241, 245, 33, 101, 46,\n\t\t195, 59, 197, 24, 50, 24, 32, 84, 102, 211, 180, 73, 202,\n\t\t31, 250, 253, 4, 54, 94, 171, 132, 33, 48, 203, 72, 52, 184,\n\t\t123, 99, 124, 104, 26, 209, 236, 97, 180, 41, 5, 165, 129,\n\t\t173, 205, 249, 18, 162, 203, 28, 90, 4, 127, 13, 101, 77,\n\t\t63, 65, 194, 186, 180, 147, 104, 57, 42, 220, 113, 132, 201,\n\t\t73, 224, 29, 103, 187, 166, 219, 83, 202, 201, 39, 134, 40,\n\t\t157, 39, 195, 32, 223, 79, 188, 16, 56, 104, 71, 99, 1, 16,\n\t\t201, 16, 40, 145, 203, 208, 0, 69, 174, 26, 134, 107, 172,\n\t\t96, 122, 63, 70, 180, 72, 57, 84, 213, 54, 90, 234, 84, 9,\n\t\t208, 43, 232, 60, 42, 124, 87, 246, 243, 148, 68, 39, 126,\n\t\t217, 226, 50, 251, 209, 26, 67, 133, 157, 44, 41, 200, 210,\n\t\t21, 180, 193, 213, 32, 79, 171, 159, 254, 145, 141, 49, 63,\n\t\t51, 134, 182, 182, 242, 242, 70, 244, 248, 89, 19, 169, 35,\n\t\t80, 164, 182, 12, 181, 166, 145, 83, 33, 61, 204, 209, 52,\n\t\t251, 96, 199, 221, 68, 83, 162, 93, 141, 56, 166, 2, 58, 116,\n\t\t181, 180, 79, 39, 242, 53, 66, 255, 77, 42, 32, 133, 65, 189,\n\t\t91, 27, 128, 88, 60, 93, 209, 166, 129, 21, 13, 183, 54, 55,\n\t\t11, 204, 166, 144, 228, 90, 171, 111, 205, 70, 46, 228, 105,\n\t\t74, 138, 146, 222, 20, 32, 63, 171, 126, 234, 131, 229, 207,\n\t\t218, 181, 157, 212, 163, 206, 137, 70, 251, 191, 56, 190,\n\t\t78, 22, 241, 47, 71, 31, 179, 176, 220, 10, 212, 103, 38,\n\t\t183, 235, 108, 73, 234, 186, 123, 60, 199, 8, 245, 18, 45,\n\t\t76, 66, 105, 224, 48, 100, 241, 148, 12, 182, 226, 253, 4,\n\t\t204, 32, 192, 59, 51, 147, 201, 182, 130, 200, 130, 67, 2,\n\t\t186, 48, 246, 96, 237, 170, 224, 20, 90, 51, 197, 28, 88,\n\t\t109, 18, 70, 61, 82, 148, 176, 68, 130, 76, 58, 103, 203,\n\t\t177, 205, 177, 255, 176, 144, 101, 137, 206, 124, 203, 227,\n\t\t129, 80, 214, 218, 26, 140, 5, 106, 44, 53, 89, 140, 172,\n\t\t104, 133, 196, 247, 19, 143, 31, 103, 42, 218, 78, 146, 147,\n\t\t69, 1, 139, 166, 55, 43, 139, 203, 200, 49, 217, 151, 28,\n\t\t146, 16, 211, 189, 92, 104, 87, 11, 13, 227, 205, 30, 107,\n\t\t160, 178, 101, 173, 74, 213, 224, 242, 183, 19, 120, 183,\n\t\t194, 190, 233, 78, 38, 4, 45, 57, 78, 138, 20, 13, 86, 165,\n\t\t53, 33, 181, 51, 233, 248, 253, 196, 15, 99, 240, 179, 76,\n\t\t99, 170, 12, 222, 36, 134, 120, 191, 62, 90, 137, 135, 128,\n\t\t140, 151, 80, 34, 59, 163, 12, 186, 62, 72, 16, 138, 18, 28,\n\t\t63, 33, 254, 115, 157, 159, 107, 90, 224, 26, 120, 151, 223,\n\t\t218, 18, 92, 201, 82, 53, 43, 86, 52, 232, 178, 198, 11, 216,\n\t\t42, 118, 230, 178, 152, 33, 114, 252, 141, 113, 81, 167, 126,\n\t\t72, 76, 18, 30, 205, 234, 168, 37, 113, 184, 187, 229, 107,\n\t\t186, 198, 94, 141, 208, 14, 229, 98, 96, 110, 36, 171, 136,\n\t\t40, 7, 176, 87, 152, 163, 15, 150, 72, 3, 244, 68, 138, 168,\n\t\t48, 85, 103, 253, 113, 161, 117, 255, 216, 225, 137, 164,\n\t\t193, 152, 174, 226, 209, 142, 147, 22, 174, 244, 136, 91,\n\t\t61, 81, 154, 179, 60, 135, 164, 25, 39, 71, 110, 118, 54,\n\t\t251, 148, 148, 38, 250, 219, 137, 167, 32, 107, 253, 185,\n\t\t212, 158, 196, 138, 23, 197, 106, 141, 202, 198, 67, 7, 107,\n\t\t88, 107, 167, 242, 178, 161, 66, 54, 182, 6, 154, 251, 66,\n\t\t0, 90, 6, 28, 114, 53, 137, 225, 129, 134, 201, 181, 27, 49,\n\t\t1, 105, 201, 234, 161, 254, 41, 227, 164, 25, 91, 30, 145,\n\t\t83, 137, 59, 169, 130, 224, 141, 76, 236, 236, 171, 117, 155,\n\t\t161, 202, 61, 130, 220, 5, 72, 54, 176, 201, 190, 29, 255,\n\t\t0, 97, 9, 24, 178, 56, 163, 137, 174, 251, 161, 206, 247,\n\t\t37, 198, 102, 216, 88, 236, 140, 103, 213, 6, 179, 60, 255,\n\t\t226, 12, 225, 156, 50, 35, 195, 235, 171, 107, 69, 150, 166,\n\t\t209, 101, 111, 30, 31, 86, 221, 80, 112, 81, 101, 82, 130,\n\t\t70, 229, 91, 183, 54, 65, 40, 212, 221, 176, 201, 17, 109,\n\t\t206, 147, 40, 87, 36, 100, 45, 26, 9, 150, 239, 139, 102,\n\t\t246, 185, 6, 189, 160, 121, 3, 97, 1, 30, 255, 210, 18, 250,\n\t\t237, 245, 199, 127, 255, 246, 189, 50, 164, 21, 111, 14, 202,\n\t\t189, 47, 219, 181, 72, 187, 204, 47, 70, 201, 9, 85, 99, 86,\n\t\t77, 208, 166, 202, 157, 206, 96, 255, 39, 72, 154, 139, 128,\n\t\t174, 129, 29, 105, 86, 120, 49, 149, 35, 59, 55, 190, 228,\n\t\t186, 0, 38, 45, 112, 232, 215, 68, 148, 136, 252, 48, 115,\n\t\t137, 131, 118, 236, 228, 90, 254, 126, 252, 60, 199, 64, 108,\n\t\t232, 51, 211, 4, 120, 74, 156, 161, 212, 79, 153, 80, 18,\n\t\t107, 237, 207, 80, 202, 39, 48, 201, 215, 245, 149, 95, 4,\n\t\t35, 106, 209, 221, 1, 114, 37, 112, 162, 226, 59, 122, 226,\n\t\t177, 108, 82, 222, 244, 156, 200, 218, 202, 231, 169, 175,\n\t\t241, 148, 101, 79, 255, 216, 225, 220, 28, 153, 177, 84, 173,\n\t\t127, 54, 226, 107, 94, 0, 136, 194, 74, 45, 12, 117, 11, 12,\n\t\t30, 176, 213, 1, 108, 18, 236, 51, 97, 9, 156, 193, 10, 45,\n\t\t22, 21, 229, 80, 38, 80, 132, 88, 15, 63, 167, 242, 227, 143,\n\t\t229, 241, 101, 235, 149, 200, 162, 212, 142, 246, 179, 93,\n\t\t105, 212, 103, 199, 224, 234, 225, 213, 10, 243, 110, 107,\n\t\t173, 180, 80, 1, 204, 15, 73, 168, 163, 63, 228, 113, 45,\n\t\t189, 192, 189, 107, 240, 120, 9, 149, 100, 103, 163, 253,\n\t\t121, 72, 151, 208, 142, 53, 224, 203, 192, 208, 48, 69, 86,\n\t\t62, 120, 176, 208, 91, 149, 14, 29, 221, 110, 121, 31, 61,\n\t\t243, 132, 135, 82, 6, 10, 113, 89, 164, 183, 47, 202, 162,\n\t\t81, 42, 59, 97, 11, 73, 191, 131, 220, 61, 137, 225, 245,\n\t\t202, 111, 23, 218, 191, 79, 126, 97, 57, 152, 90, 81, 144,\n\t\t106, 136, 12, 235, 42, 246, 245, 50, 138, 19, 18, 158, 202,\n\t\t6, 164, 212, 162, 125, 176, 97, 65, 143, 47, 206, 82, 92,\n\t\t70, 164, 102, 139, 19, 197, 15, 215, 20, 222, 121, 61, 202,\n\t\t101, 53, 139, 102, 251, 109, 26, 147, 110, 216, 101, 2, 77,\n\t\t224, 39, 174, 179, 78, 74, 207, 120, 156, 77, 227, 226, 57,\n\t\t91, 39, 155, 238, 166, 74, 189, 250, 255, 42, 236, 60, 255,\n\t\t252, 253, 111, 231, 255, 254, 254, 207, 63, 190, 239, 226,\n\t\t249, 183, 95, 56, 190, 99, 132, 180, 28, 129, 22, 242, 149,\n\t\t148, 83, 231, 204, 33, 215, 84, 203, 81, 67, 37, 231, 195,\n\t\t12, 89, 164, 166, 163, 105, 78, 248, 84, 252, 152, 181, 6,\n\t\t177, 174, 207, 233, 248, 21, 153, 104, 185, 73, 107, 173,\n\t\t172, 29, 29, 112, 30, 108, 51, 38, 54, 0, 66, 55, 135, 88,\n\t\t219, 185, 226, 93, 238, 133, 119, 131, 39, 212, 108, 252,\n\t\t233, 210, 67, 17, 71, 81, 80, 145, 16, 68, 147, 40, 1, 188,\n\t\t16, 194, 186, 50, 251, 252, 184, 24, 177, 136, 100, 253, 96,\n\t\t108, 148, 153, 158, 186, 220, 158, 102, 128, 69, 173, 240,\n\t\t136, 19, 213, 20, 177, 150, 109, 56, 118, 80, 21, 202, 106,\n\t\t7, 221, 28, 9, 37, 223, 96, 127, 170, 189, 232, 13, 37, 145,\n\t\t232, 109, 77, 193, 18, 200, 167, 138, 154, 133, 110, 34, 46,\n\t\t31, 67, 145, 250, 241, 3, 135, 35, 3, 88, 80, 68, 71, 216,\n\t\t216, 196, 147, 98, 196, 200, 11, 112, 163, 8, 31, 62, 128,\n\t\t196, 15, 242, 100, 139, 169, 57, 208, 143, 30, 235, 120, 183,\n\t\t160, 237, 45, 41, 160, 203, 95, 150, 11, 214, 80, 205, 33,\n\t\t107, 65, 40, 137, 83, 1, 152, 5, 248, 21, 80, 35, 170, 81,\n\t\t202, 236, 55, 195, 11, 26, 56, 167, 198, 252, 95, 22, 196,\n\t\t52, 160, 132, 205, 208, 206, 67, 61, 34, 142, 15, 200, 129,\n\t\t193, 56, 149, 36, 228, 81, 17, 55, 233, 203, 245, 175, 66,\n\t\t76, 220, 66, 230, 2, 131, 126, 124, 157, 217, 215, 205, 147,\n\t\t40, 7, 164, 22, 65, 137, 139, 161, 31, 40, 94, 138, 189, 190,\n\t\t162, 38, 70, 224, 94, 56, 138, 132, 163, 130, 33, 244, 104,\n\t\t48, 14, 32, 229, 138, 204, 254, 17, 5, 53, 91, 130, 36, 1,\n\t\t164, 140, 222, 66, 67, 228, 94, 79, 172, 113, 140, 168, 15,\n\t\t206, 196, 243, 94, 243, 213, 35, 48, 227, 208, 163, 151, 20,\n\t\t216, 23, 19, 210, 230, 229, 251, 162, 219, 143, 26, 166, 185,\n\t\t1, 188, 26, 156, 46, 154, 174, 239, 11, 77, 141, 107, 133,\n\t\t87, 19, 91, 63, 26, 245, 171, 136, 38, 51, 76, 175, 219, 44,\n\t\t145, 55, 9, 173, 155, 17, 144, 127, 235, 202, 150, 215, 151,\n\t\t49, 106, 83, 55, 159, 86, 207, 93, 27, 64, 72, 12, 103, 46,\n\t\t249, 227, 89, 139, 114, 97, 100, 58, 111, 56, 91, 67, 98,\n\t\t28, 138, 134, 99, 64, 165, 185, 24, 88, 29, 97, 110, 64, 30,\n\t\t138, 197, 171, 120, 37, 143, 11, 160, 118, 40, 140, 103, 75,\n\t\t135, 40, 44, 86, 50, 40, 55, 219, 242, 203, 217, 32, 234,\n\t\t225, 152, 232, 139, 172, 81, 73, 129, 90, 24, 144, 90, 109,\n\t\t152, 184, 32, 184, 243, 75, 11, 24, 234, 149, 12, 253, 74,\n\t\t241, 59, 178, 142, 196, 242, 165, 214, 187, 117, 125, 42,\n\t\t180, 218, 102, 223, 189, 26, 110, 78, 134, 55, 64, 106, 55,\n\t\t238, 162, 66, 90, 99, 180, 189, 17, 77, 17, 213, 109, 67,\n\t\t42, 158, 157, 205, 33, 13, 80, 165, 249, 48, 26, 16, 3, 195,\n\t\t177, 199, 48, 192, 161, 170, 81, 4, 17, 238, 62, 204, 149,\n\t\t134, 116, 12, 106, 199, 208, 173, 83, 191, 28, 220, 107, 103,\n\t\t194, 56, 105, 230, 97, 115, 130, 162, 238, 193, 238, 176,\n\t\t61, 10, 150, 110, 200, 194, 250, 111, 50, 96, 105, 219, 75,\n\t\t89, 244, 185, 180, 240, 248, 235, 35, 99, 161, 181, 48, 46,\n\t\t3, 232, 220, 242, 221, 160, 96, 61, 48, 101, 48, 113, 99,\n\t\t189, 189, 67, 14, 105, 162, 93, 242, 166, 215, 19, 18, 158,\n\t\t168, 244, 243, 84, 163, 99, 59, 154, 192, 46, 59, 211, 161,\n\t\t144, 169, 162, 65, 233, 98, 88, 99, 10, 132, 114, 57, 134,\n\t\t77, 13, 19, 62, 232, 210, 75, 57, 13, 39, 172, 50, 225, 227,\n\t\t200, 68, 79, 2, 100, 233, 99, 74, 54, 68, 35, 160, 188, 57,\n\t\t245, 129, 1, 170, 93, 34, 155, 213, 197, 225, 205, 145, 32,\n\t\t151, 230, 144, 99, 143, 43, 169, 162, 16, 245, 52, 146, 226,\n\t\t159, 17, 165, 67, 95, 200, 168, 232, 207, 13, 125, 221, 46,\n\t\t195, 61, 67, 92, 191, 17, 180, 75, 33, 97, 74, 187, 9, 171,\n\t\t11, 30, 32, 151, 111, 112, 196, 69, 159, 254, 100, 179, 95,\n\t\t12, 52, 88, 196, 52, 174, 206, 215, 29, 88, 208, 68, 223,\n\t\t13, 22, 173, 234, 229, 235, 50, 199, 183, 14, 6, 136, 233,\n\t\t144, 196, 233, 246, 154, 236, 50, 191, 53, 34, 229, 81, 64,\n\t\t88, 21, 67, 148, 94, 9, 140, 24, 20, 33, 241, 237, 92, 158,\n\t\t168, 97, 68, 63, 39, 179, 193, 157, 224, 243, 136, 195, 213,\n\t\t6, 239, 155, 60, 97, 192, 183, 26, 205, 117, 139, 33, 109,\n\t\t93, 251, 93, 28, 99, 207, 246, 135, 233, 126, 125, 92, 135,\n\t\t140, 85, 216, 20, 147, 140, 103, 222, 23, 234, 194, 66, 65,\n\t\t7, 71, 238, 113, 45, 131, 44, 53, 5, 141, 66, 78, 119, 194,\n\t\t253, 192, 219, 100, 250, 146, 92, 212, 118, 136, 175, 140,\n\t\t154, 142, 136, 75, 91, 238, 155, 1, 66, 136, 247, 195, 11,\n\t\t95, 102, 44, 172, 167, 198, 10, 125, 57, 96, 40, 197, 5, 208,\n\t\t226, 52, 30, 97, 17, 96, 67, 14, 178, 239, 42, 104, 216, 215,\n\t\t71, 174, 35, 148, 3, 12, 192, 176, 71, 20, 95, 155, 242, 229,\n\t\t2, 106, 7, 105, 52, 84, 169, 184, 113, 196, 48, 148, 219,\n\t\t1, 168, 112, 68, 133, 141, 153, 0, 70, 42, 33, 10, 144, 102,\n\t\t160, 96, 86, 128, 109, 121, 76, 44, 66, 93, 231, 208, 188,\n\t\t20, 121, 38, 249, 47, 135, 72, 52, 100, 40, 119, 128, 93,\n\t\t154, 217, 54, 35, 120, 221, 197, 172, 167, 167, 61, 13, 26,\n\t\t198, 179, 130, 195, 131, 222, 28, 131, 41, 71, 142, 96, 106,\n\t\t50, 129, 151, 140, 159, 219, 65, 0, 139, 131, 141, 27, 206,\n\t\t90, 7, 164, 118, 123, 249, 137, 250, 120, 169, 104, 74, 253,\n\t\t2, 242, 141, 40, 144, 189, 184, 139, 238, 176, 250, 166, 50,\n\t\t104, 163, 109, 14, 32, 45, 133, 224, 175, 130, 93, 150, 170,\n\t\t158, 43, 235, 229, 144, 133, 46, 178, 45, 103, 205, 97, 186,\n\t\t108, 180, 51, 1, 210, 213, 214, 83, 65, 75, 101, 31, 223,\n\t\t49, 169, 174, 180, 145, 3, 117, 230, 12, 19, 208, 238, 158,\n\t\t77, 97, 42, 238, 206, 203, 171, 232, 141, 32, 201, 235, 250,\n\t\t0, 237, 10, 156, 102, 179, 24, 138, 44, 243, 187, 25, 10,\n\t\t173, 2, 123, 39, 131, 103, 47, 135, 65, 226, 161, 221, 133,\n\t\t130, 110, 163, 165, 41, 194, 229, 235, 6, 160, 166, 31, 174,\n\t\t109, 91, 111, 138, 43, 157, 55, 105, 102, 37, 88, 236, 88,\n\t\t117, 135, 19, 4, 240, 241, 219, 109, 111, 56, 61, 150, 89,\n\t\t140, 54, 245, 155, 104, 169, 122, 213, 131, 197, 197, 168,\n\t\t95, 108, 91, 92, 196, 233, 111, 110, 52, 112, 24, 145, 119,\n\t\t203, 68, 233, 233, 156, 69, 53, 123, 76, 246, 38, 69, 123,\n\t\t80, 130, 160, 87, 243, 31, 82, 137, 165, 207, 141, 112, 154,\n\t\t99, 185, 149, 105, 86, 83, 123, 41, 124, 88, 189, 150, 137,\n\t\t0, 190, 142, 68, 18, 205, 165, 134, 91, 43, 0, 62, 7, 206,\n\t\t65, 59, 74, 91, 47, 71, 24, 255, 30, 122, 106, 181, 161, 10,\n\t\t53, 13, 72, 192, 18, 107, 62, 178, 45, 154, 43, 114, 29, 25,\n\t\t164, 89, 30, 123, 35, 212, 163, 114, 160, 175, 173, 234, 178,\n\t\t46, 252, 237, 97, 156, 57, 30, 89, 121, 24, 150, 61, 77, 46,\n\t\t113, 51, 53, 74, 232, 133, 82, 66, 74, 223, 90, 30, 55, 186,\n\t\t242, 77, 175, 122, 73, 209, 70, 43, 83, 199, 76, 7, 235, 198,\n\t\t90, 118, 251, 30, 66, 170, 187, 66, 233, 243, 204, 136, 28,\n\t\t182, 222, 187, 22, 163, 240, 71, 163, 48, 209, 33, 163, 104,\n\t\t123, 97, 54, 187, 106, 125, 239, 121, 170, 123, 245, 218,\n\t\t64, 193, 102, 75, 152, 91, 103, 106, 37, 30, 77, 69, 149,\n\t\t2, 230, 41, 214, 254, 203, 182, 158, 237, 230, 141, 122, 183,\n\t\t118, 102, 50, 39, 237, 114, 204, 187, 253, 74, 122, 167, 200,\n\t\t245, 165, 159, 249, 138, 47, 117, 56, 215, 201, 87, 162, 239,\n\t\t73, 151, 71, 7, 204, 239, 98, 180, 79, 248, 130, 91, 123,\n\t\t55, 214, 38, 82, 58, 74, 200, 107, 12, 90, 24, 179, 23, 132,\n\t\t87, 193, 87, 54, 67, 175, 163, 79, 59, 190, 132, 8, 190, 128,\n\t\t222, 139, 222, 162, 200, 101, 84, 66, 42, 146, 152, 15, 89,\n\t\t186, 189, 227, 193, 116, 160, 94, 119, 172, 68, 48, 55, 128,\n\t\t19, 42, 134, 146, 200, 230, 212, 2, 82, 135, 18, 232, 245,\n\t\t41, 108, 151, 14, 47, 92, 57, 152, 157, 166, 97, 114, 115,\n\t\t30, 16, 250, 114, 228, 41, 81, 87, 115, 67, 154, 214, 235,\n\t\t220, 69, 103, 96, 247, 84, 177, 230, 51, 218, 101, 235, 8,\n\t\t90, 92, 212, 78, 245, 21, 93, 53, 153, 115, 106, 0, 131, 107,\n\t\t9, 145, 221, 61, 34, 252, 83, 20, 247, 28, 237, 140, 213,\n\t\t61, 98, 55, 147, 100, 179, 236, 117, 159, 92, 247, 134, 85,\n\t\t144, 121, 75, 183, 89, 20, 231, 134, 87, 183, 24, 177, 173,\n\t\t29, 88, 202, 113, 3, 162, 21, 197, 129, 159, 145, 28, 174,\n\t\t235, 129, 42, 211, 121, 74, 182, 186, 236, 158, 74, 129, 182,\n\t\t5, 39, 87, 36, 246, 111, 154, 175, 225, 139, 220, 92, 118,\n\t\t197, 45, 238, 216, 12, 198, 191, 182, 158, 171, 162, 15, 138,\n\t\t77, 186, 168, 169, 23, 237, 77, 66, 243, 201, 146, 69, 176,\n\t\t156, 55, 4, 161, 239, 76, 53, 191, 92, 59, 170, 91, 97, 74,\n\t\t37, 6, 133, 203, 236, 14, 157, 185, 17, 216, 235, 181, 73,\n\t\t214, 116, 183, 80, 246, 232, 78, 73, 197, 97, 180, 113, 153,\n\t\t203, 84, 19, 27, 78, 138, 226, 183, 113, 16, 231, 104, 46,\n\t\t229, 141, 246, 130, 163, 58, 109, 208, 29, 76, 120, 199, 112,\n\t\t172, 78, 39, 99, 169, 87, 126, 247, 101, 144, 250, 60, 178,\n\t\t91, 79, 29, 238, 186, 77, 55, 172, 138, 199, 11, 48, 109,\n\t\t250, 87, 229, 110, 83, 41, 83, 183, 135, 164, 203, 197, 125,\n\t\t166, 27, 122, 178, 174, 27, 74, 173, 175, 143, 220, 88, 105,\n\t\t165, 206, 177, 26, 2, 22, 236, 177, 88, 65, 173, 250, 18,\n\t\t62, 214, 99, 98, 206, 200, 254, 160, 222, 230, 233, 252, 6,\n\t\t120, 75, 142, 216, 242, 159, 233, 33, 104, 176, 103, 195,\n\t\t234, 219, 72, 219, 16, 145, 146, 134, 37, 220, 94, 113, 102,\n\t\t252, 28, 245, 113, 53, 38, 136, 85, 250, 171, 143, 104, 110,\n\t\t62, 116, 80, 54, 138, 67, 28, 77, 119, 0, 53, 254, 71, 140,\n\t\t96, 74, 251, 76, 137, 147, 180, 113, 108, 79, 247, 117, 214,\n\t\t155, 39, 11, 196, 107, 253, 108, 125, 73, 60, 113, 157, 0,\n\t\t157, 36, 204, 156, 168, 155, 160, 38, 37, 2, 133, 102, 114,\n\t\t221, 41, 3, 179, 90, 10, 221, 140, 44, 18, 80, 172, 241, 201,\n\t\t93, 93, 31, 227, 191, 60, 115, 69, 238, 154, 35, 106, 88,\n\t\t170, 38, 129, 70, 82, 205, 90, 130, 228, 218, 203, 49, 172,\n\t\t119, 93, 178, 150, 62, 199, 80, 70, 203, 91, 101, 38, 85,\n\t\t198, 204, 127, 122, 56, 168, 239, 245, 103, 198, 248, 181,\n\t\t185, 115, 84, 6, 86, 43, 30, 203, 107, 104, 167, 237, 51,\n\t\t143, 126, 214, 233, 118, 27, 33, 29, 49, 61, 190, 201, 154,\n\t\t14, 98, 154, 47, 165, 127, 105, 44, 183, 207, 123, 123, 58,\n\t\t165, 8, 87, 75, 180, 26, 13, 168, 85, 226, 197, 102, 194,\n\t\t219, 230, 17, 39, 166, 30, 144, 113, 210, 129, 0, 10, 81,\n\t\t132, 103, 213, 95, 189, 156, 7, 81, 23, 205, 48, 33, 72, 162,\n\t\t170, 136, 253, 12, 67, 157, 85, 156, 70, 35, 158, 108, 61,\n\t\t27, 200, 86, 53, 143, 202, 232, 102, 58, 42, 46, 205, 217,\n\t\t211, 253, 246, 242, 141, 144, 140, 123, 36, 185, 164, 176,\n\t\t16, 137, 35, 142, 212, 109, 41, 21, 19, 174, 57, 34, 212,\n\t\t115, 121, 119, 72, 234, 106, 173, 187, 73, 135, 58, 175, 234,\n\t\t108, 51, 94, 195, 44, 104, 243, 176, 237, 174, 31, 42, 34,\n\t\t69, 19, 100, 123, 101, 36, 144, 237, 205, 144, 95, 131, 25,\n\t\t61, 7, 5, 127, 173, 15, 44, 203, 77, 172, 115, 96, 225, 244,\n\t\t33, 100, 91, 48, 34, 57, 121, 23, 137, 143, 101, 91, 117,\n\t\t80, 95, 78, 50, 42, 208, 121, 146, 81, 214, 239, 246, 81,\n\t\t16, 123, 60, 50, 161, 65, 185, 62, 88, 122, 99, 142, 74, 126,\n\t\t233, 6, 164, 14, 152, 136, 129, 46, 205, 14, 232, 43, 38,\n\t\t227, 71, 7, 77, 31, 184, 30, 207, 156, 15, 75, 3, 248, 248,\n\t\t195, 109, 137, 193, 249, 100, 95, 22, 232, 145, 252, 218,\n\t\t68, 61, 42, 172, 95, 46, 12, 77, 135, 111, 1, 175, 102, 178,\n\t\t153, 33, 174, 254, 248, 139, 79, 211, 162, 143, 151, 25, 250,\n\t\t42, 53, 62, 207, 164, 154, 241, 244, 136, 128, 107, 220, 236,\n\t\t234, 75, 44, 55, 96, 153, 138, 236, 121, 137, 56, 67, 127,\n\t\t89, 128, 94, 16, 147, 176, 128, 212, 39, 148, 217, 214, 235,\n\t\t194, 74, 9, 13, 96, 65, 208, 237, 137, 225, 46, 124, 89, 120,\n\t\t194, 195, 91, 158, 247, 160, 168, 189, 220, 63, 131, 58, 55,\n\t\t98, 70, 221, 235, 217, 210, 21, 84, 98, 143, 11, 118, 79,\n\t\t188, 99, 233, 3, 232, 239, 128, 117, 33, 49, 148, 163, 180,\n\t\t29, 49, 107, 46, 162, 85, 204, 155, 8, 111, 196, 120, 163,\n\t\t131, 168, 15, 116, 211, 182, 20, 243, 38, 23, 213, 53, 46,\n\t\t230, 107, 86, 21, 174, 154, 5, 124, 37, 31, 130, 192, 34,\n\t\t43, 132, 197, 116, 115, 25, 157, 133, 5, 31, 74, 84, 68, 255,\n\t\t182, 45, 54, 179, 96, 76, 255, 67, 183, 96, 165, 240, 151,\n\t\t246, 44, 195, 213, 216, 202, 180, 108, 157, 172, 78, 186,\n\t\t79, 77, 119, 86, 142, 77, 236, 21, 129, 144, 174, 49, 10,\n\t\t7, 236, 222, 78, 227, 182, 119, 178, 81, 28, 223, 104, 12,\n\t\t133, 54, 50, 93, 208, 115, 184, 59, 239, 141, 234, 0, 66,\n\t\t238, 57, 145, 229, 186, 146, 224, 54, 1, 78, 25, 43, 89, 72,\n\t\t119, 241, 206, 23, 121, 157, 5, 172, 235, 26, 221, 178, 144,\n\t\t234, 178, 29, 242, 97, 61, 28, 217, 24, 167, 16, 117, 228,\n\t\t171, 150, 237, 235, 219, 179, 38, 215, 122, 142, 187, 111,\n\t\t11, 221, 229, 88, 21, 253, 82, 215, 249, 79, 172, 71, 59,\n\t\t116, 204, 213, 250, 167, 46, 95, 10, 80, 3, 88, 227, 104,\n\t\t198, 197, 49, 225, 185, 44, 117, 143, 166, 145, 140, 117,\n\t\t109, 136, 193, 234, 31, 191, 28, 253, 194, 78, 108, 158, 198,\n\t\t203, 141, 104, 93, 122, 246, 74, 249, 205, 46, 124, 44, 31,\n\t\t29, 140, 187, 103, 9, 131, 220, 152, 75, 6, 85, 192, 249,\n\t\t131, 254, 248, 104, 49, 128, 33, 223, 78, 92, 67, 73, 122,\n\t\t1, 49, 146, 199, 32, 93, 239, 250, 119, 233, 239, 92, 11,\n\t\t124, 34, 105, 229, 69, 227, 79, 247, 235, 149, 61, 191, 187,\n\t\t244, 171, 210, 159, 233, 22, 171, 54, 250, 182, 167, 207,\n\t\t174, 27, 108, 233, 80, 190, 213, 90, 198, 194, 102, 83, 122,\n\t\t35, 182, 239, 155, 238, 17, 139, 164, 175, 55, 124, 186, 131,\n\t\t106, 94, 165, 190, 241, 171, 239, 149, 205, 112, 131, 199,\n\t\t213, 111, 114, 218, 141, 74, 139, 187, 217, 53, 188, 160,\n\t\t24, 109, 76, 36, 104, 63, 115, 105, 74, 11, 86, 180, 140,\n\t\t52, 107, 129, 121, 211, 12, 109, 39, 173, 228, 50, 106, 168,\n\t\t86, 167, 62, 128, 237, 132, 175, 143, 210, 91, 232, 71, 106,\n\t\t232, 67, 216, 225, 109, 125, 21, 41, 219, 15, 90, 19, 255,\n\t\t245, 145, 214, 59, 31, 137, 228, 110, 201, 92, 41, 51, 141,\n\t\t171, 199, 176, 45, 206, 233, 169, 30, 213, 167, 236, 98, 48,\n\t\t13, 120, 26, 81, 141, 198, 184, 221, 222, 103, 16, 209, 6,\n\t\t68, 183, 22, 67, 27, 217, 66, 131, 93, 103, 84, 181, 145,\n\t\t15, 179, 128, 248, 149, 225, 21, 72, 9, 162, 3, 38, 45, 7,\n\t\t100, 60, 134, 109, 38, 4, 125, 210, 51, 72, 46, 140, 62, 128,\n\t\t130, 85, 149, 112, 60, 134, 100, 164, 137, 236, 69, 142, 129,\n\t\t20, 162, 15, 115, 251, 105, 62, 33, 13, 204, 232, 190, 181,\n\t\t42, 78, 21, 91, 200, 6, 8, 45, 201, 72, 130, 216, 164, 118,\n\t\t141, 227, 167, 103, 117, 149, 186, 170, 21, 218, 20, 41, 213,\n\t\t208, 142, 92, 107, 24, 87, 9, 147, 156, 217, 136, 35, 177,\n\t\t193, 49, 151, 129, 56, 34, 154, 149, 61, 61, 105, 100, 162,\n\t\t206, 68, 239, 177, 62, 139, 87, 21, 163, 121, 52, 99, 87,\n\t\t233, 209, 150, 38, 10, 158, 245, 180, 237, 108, 27, 197, 151,\n\t\t177, 73, 5, 96, 130, 113, 145, 154, 29, 102, 250, 78, 103,\n\t\t76, 181, 96, 102, 210, 208, 34, 122, 198, 203, 229, 81, 127,\n\t\t51, 24, 182, 225, 48, 64, 71, 137, 18, 246, 35, 199, 229,\n\t\t11, 237, 95, 223, 249, 84, 13, 138, 154, 89, 169, 36, 23,\n\t\t197, 130, 118, 78, 112, 175, 233, 24, 14, 110, 55, 79, 93,\n\t\t179, 183, 153, 132, 60, 150, 34, 119, 211, 195, 12, 140, 246,\n\t\t45, 47, 115, 20, 179, 152, 149, 212, 90, 141, 224, 172, 174,\n\t\t154, 73, 61, 75, 161, 162, 120, 219, 216, 97, 68, 153, 187,\n\t\t236, 213, 101, 135, 220, 213, 195, 215, 10, 134, 238, 164,\n\t\t160, 106, 88, 216, 116, 24, 111, 132, 120, 60, 34, 49, 40,\n\t\t130, 151, 137, 161, 126, 170, 152, 121, 220, 120, 97, 18,\n\t\t195, 86, 22, 108, 72, 55, 141, 226, 219, 111, 206, 246, 245,\n\t\t33, 189, 174, 17, 23, 205, 180, 229, 142, 196, 199, 32, 56,\n\t\t106, 9, 5, 43, 141, 245, 190, 178, 227, 54, 198, 194, 157,\n\t\t193, 110, 80, 137, 224, 68, 151, 64, 159, 214, 36, 178, 122,\n\t\t31, 223, 216, 149, 111, 94, 56, 181, 167, 178, 83, 152, 90,\n\t\t182, 216, 139, 193, 43, 185, 70, 215, 97, 124, 42, 131, 221,\n\t\t41, 155, 102, 67, 127, 160, 154, 75, 98, 111, 106, 153, 210,\n\t\t36, 237, 200, 173, 6, 121, 153, 238, 78, 102, 168, 208, 212,\n\t\t173, 32, 186, 157, 68, 182, 50, 69, 50, 220, 205, 240, 219,\n\t\t37, 101, 219, 139, 165, 162, 14, 97, 58, 18, 108, 89, 111,\n\t\t54, 59, 18, 81, 214, 78, 160, 39, 200, 200, 128, 182, 57,\n\t\t66, 1, 179, 105, 52, 2, 171, 151, 95, 80, 200, 140, 117, 142,\n\t\t172, 129, 124, 176, 252, 245, 33, 203, 161, 89, 147, 20, 58,\n\t\t58, 65, 77, 237, 82, 125, 109, 74, 171, 157, 143, 180, 53,\n\t\t218, 120, 205, 229, 30, 251, 206, 58, 90, 100, 96, 47, 138,\n\t\t28, 253, 224, 186, 81, 166, 168, 229, 228, 194, 171, 109,\n\t\t251, 22, 74, 212, 232, 63, 248, 75, 211, 163, 78, 213, 235,\n\t\t37, 60, 135, 171, 94, 172, 39, 6, 119, 166, 113, 61, 40, 145,\n\t\t148, 51, 144, 159, 151, 15, 58, 82, 243, 16, 175, 122, 53,\n\t\t143, 43, 217, 47, 29, 89, 223, 196, 156, 196, 55, 235, 82,\n\t\t200, 121, 221, 220, 10, 230, 140, 111, 222, 198, 20, 216,\n\t\t96, 41, 218, 186, 94, 53, 9, 152, 66, 27, 169, 161, 20, 6,\n\t\t125, 159, 122, 124, 173, 235, 192, 183, 121, 16, 163, 132,\n\t\t235, 21, 205, 142, 53, 44, 213, 67, 84, 173, 177, 38, 110,\n\t\t211, 123, 163, 239, 81, 245, 74, 69, 0, 143, 87, 77, 210,\n\t\t234, 217, 41, 9, 37, 183, 154, 20, 165, 56, 110, 210, 200,\n\t\t24, 155, 147, 182, 173, 31, 49, 224, 74, 187, 83, 106, 185,\n\t\t117, 248, 74, 187, 79, 209, 198, 199, 189, 103, 213, 181,\n\t\t26, 96, 119, 34, 43, 81, 47, 61, 134, 153, 83, 91, 166, 246,\n\t\t12, 133, 157, 22, 61, 240, 7, 0, 235, 137, 212, 174, 23, 54,\n\t\t12, 179, 47, 231, 251, 14, 206, 209, 202, 162, 188, 148, 196,\n\t\t106, 171, 128, 167, 98, 139, 230, 235, 131, 140, 222, 57,\n\t\t151, 0, 78, 63, 187, 200, 249, 85, 45, 122, 65, 200, 99, 163,\n\t\t6, 108, 175, 27, 95, 32, 247, 173, 107, 8, 139, 216, 165,\n\t\t16, 89, 29, 231, 249, 237, 26, 178, 225, 212, 55, 110, 76,\n\t\t47, 135, 179, 51, 151, 153, 150, 235, 5, 140, 148, 125, 157,\n\t\t89, 34, 48, 135, 137, 208, 252, 26, 125, 94, 108, 114, 56,\n\t\t67, 142, 227, 145, 205, 147, 180, 45, 80, 15, 45, 27, 57,\n\t\t76, 185, 170, 134, 54, 215, 104, 199, 51, 118, 227, 185, 96,\n\t\t189, 147, 223, 149, 40, 47, 65, 98, 41, 115, 159, 40, 33,\n\t\t141, 137, 104, 83, 13, 132, 189, 6, 135, 157, 228, 190, 214,\n\t\t55, 144, 126, 214, 120, 209, 13, 16, 52, 15, 92, 103, 62,\n\t\t198, 174, 172, 210, 135, 145, 29, 12, 210, 68, 201, 117, 110,\n\t\t45, 104, 130, 212, 2, 106, 245, 205, 79, 214, 60, 245, 137,\n\t\t48, 183, 152, 49, 200, 153, 243, 240, 96, 243, 155, 1, 108,\n\t\t55, 125, 125, 164, 88, 150, 21, 217, 71, 200, 143, 215, 158,\n\t\t213, 6, 61, 255, 102, 36, 193, 160, 48, 255, 73, 131, 102,\n\t\t227, 219, 132, 199, 101, 166, 139, 91, 41, 24, 245, 39, 253,\n\t\t86, 167, 33, 213, 183, 120, 203, 69, 161, 140, 128, 66, 246,\n\t\t189, 169, 215, 216, 131, 92, 243, 23, 211, 83, 22, 240, 154,\n\t\t161, 190, 166, 171, 92, 240, 182, 81, 148, 53, 215, 211, 150,\n\t\t125, 244, 72, 126, 25, 46, 238, 44, 188, 147, 40, 153, 189,\n\t\t108, 35, 41, 81, 220, 118, 190, 59, 83, 41, 204, 171, 11,\n\t\t192, 239, 11, 204, 236, 4, 72, 250, 208, 122, 235, 168, 68,\n\t\t139, 131, 142, 41, 79, 44, 195, 169, 13, 212, 227, 134, 154,\n\t\t11, 160, 241, 153, 8, 90, 150, 63, 24, 132, 99, 152, 68, 210,\n\t\t23, 122, 179, 183, 16, 8, 3, 132, 155, 112, 202, 109, 37,\n\t\t75, 25, 236, 18, 14, 207, 96, 84, 119, 247, 57, 15, 246, 7,\n\t\t42, 94, 232, 169, 91, 50, 81, 117, 12, 129, 43, 176, 117,\n\t\t232, 213, 107, 169, 75, 125, 157, 62, 214, 22, 193, 184, 147,\n\t\t117, 89, 152, 215, 19, 207, 44, 219, 177, 194, 55, 179, 188,\n\t\t196, 149, 79, 50, 58, 89, 170, 182, 27, 49, 147, 218, 178,\n\t\t170, 200, 127, 93, 131, 127, 253, 159, 255, 251, 199, 143,\n\t\t63, 254, 249, 199, 63, 254, 254, 227, 252, 227, 239, 215,\n\t\t63, 254, 252, 239, 127, 252, 249, 219, 63, 127, 255, 219,\n\t\t247, 130, 222, 223, 126, 234, 80, 220, 148, 52, 185, 246,\n\t\t80, 182, 175, 115, 221, 138, 167, 212, 186, 52, 59, 87, 61,\n\t\t115, 95, 81, 133, 171, 248, 121, 230, 220, 131, 104, 131,\n\t\t185, 145, 165, 222, 109, 34, 220, 71, 89, 196, 92, 215, 42,\n\t\t141, 148, 150, 158, 226, 51, 66, 164, 157, 234, 29, 70, 2,\n\t\t217, 237, 249, 125, 147, 214, 230, 7, 232, 241, 37, 50, 2,\n\t\t2, 36, 34, 107, 15, 111, 50, 53, 73, 18, 150, 35, 142, 185,\n\t\t121, 92, 150, 169, 65, 49, 31, 235, 61, 244, 17, 236, 88,\n\t\t67, 149, 119, 154, 172, 98, 117, 216, 62, 99, 163, 238, 51,\n\t\t182, 118, 70, 224, 194, 86, 35, 86, 229, 142, 47, 152, 226,\n\t\t79, 172, 241, 27, 163, 214, 180, 197, 146, 197, 86, 159, 154,\n\t\t149, 186, 85, 197, 130, 55, 213, 117, 206, 205, 64, 214, 170,\n\t\t190, 162, 31, 54, 91, 96, 83, 115, 219, 129, 13, 249, 157,\n\t\t228, 69, 27, 250, 187, 217, 89, 157, 121, 226, 243, 212, 10,\n\t\t133, 231, 137, 166, 221, 75, 14, 39, 236, 85, 1, 212, 76,\n\t\t124, 209, 110, 98, 220, 240, 186, 45, 103, 142, 177, 165,\n\t\t145, 178, 187, 225, 96, 171, 131, 151, 98, 105, 74, 183, 166,\n\t\t141, 11, 208, 39, 206, 108, 65, 219, 96, 215, 90, 88, 174,\n\t\t29, 244, 150, 102, 69, 212, 29, 197, 193, 152, 21, 149, 160,\n\t\t144, 211, 90, 131, 116, 52, 45, 151, 144, 38, 87, 214, 198,\n\t\t242, 200, 56, 251, 209, 1, 201, 136, 239, 14, 163, 229, 221,\n\t\t114, 193, 194, 247, 246, 76, 30, 51, 244, 74, 208, 164, 139,\n\t\t38, 199, 187, 135, 96, 81, 51, 77, 109, 72, 24, 148, 203,\n\t\t198, 50, 95, 110, 153, 201, 108, 201, 39, 211, 75, 101, 87,\n\t\t208, 117, 75, 212, 83, 225, 24, 146, 65, 113, 231, 16, 194,\n\t\t236, 149, 243, 12, 178, 215, 228, 221, 97, 187, 105, 78, 51,\n\t\t204, 61, 215, 230, 127, 226, 112, 160, 112, 1, 127, 49, 222,\n\t\t106, 119, 204, 44, 61, 68, 120, 76, 19, 128, 201, 201, 233,\n\t\t204, 147, 83, 225, 177, 217, 184, 239, 255, 34, 243, 199,\n\t\t241, 220, 194, 179, 216, 119, 246, 169, 102, 249, 152, 72,\n\t\t106, 90, 171, 14, 190, 13, 175, 41, 179, 253, 12, 181, 89,\n\t\t222, 21, 165, 166, 186, 41, 204, 104, 203, 22, 139, 72, 187,\n\t\t16, 200, 19, 138, 208, 32, 30, 106, 53, 135, 60, 217, 118,\n\t\t180, 92, 86, 166, 219, 206, 160, 197, 213, 170, 187, 116,\n\t\t203, 251, 105, 30, 41, 175, 253, 0, 220, 75, 93, 107, 71,\n\t\t46, 23, 151, 145, 92, 221, 188, 234, 150, 100, 137, 223, 79,\n\t\t61, 174, 61, 13, 106, 143, 249, 212, 141, 163, 80, 9, 175,\n\t\t61, 218, 62, 83, 191, 140, 86, 17, 241, 93, 93, 115, 174,\n\t\t76, 244, 140, 143, 45, 32, 52, 226, 81, 239, 233, 64, 115,\n\t\t153, 53, 171, 108, 209, 110, 227, 232, 62, 85, 236, 59, 16,\n\t\t133, 197, 249, 51, 99, 102, 59, 221, 105, 14, 207, 105, 42,\n\t\t163, 184, 147, 202, 91, 230, 160, 29, 213, 124, 40, 79, 32,\n\t\t152, 65, 238, 9, 193, 220, 223, 214, 161, 103, 11, 78, 113,\n\t\t203, 108, 175, 77, 151, 179, 29, 129, 119, 95, 247, 232, 81,\n\t\t247, 168, 187, 192, 114, 65, 106, 124, 6, 54, 194, 185, 210,\n\t\t182, 237, 239, 174, 167, 70, 175, 211, 46, 246, 189, 238,\n\t\t241, 123, 23, 252, 166, 222, 45, 150, 130, 248, 163, 199,\n\t\t70, 30, 75, 214, 177, 108, 199, 45, 235, 61, 55, 94, 9, 171,\n\t\t146, 236, 235, 67, 70, 10, 117, 201, 156, 26, 234, 149, 66,\n\t\t33, 201, 109, 100, 79, 252, 82, 31, 218, 65, 32, 161, 246,\n\t\t138, 120, 54, 215, 31, 14, 127, 180, 208, 115, 205, 156, 89,\n\t\t116, 122, 235, 223, 249, 231, 75, 44, 143, 6, 78, 38, 213,\n\t\t54, 147, 177, 48, 154, 160, 170, 108, 36, 136, 36, 250, 131,\n\t\t52, 213, 21, 248, 92, 66, 33, 71, 132, 121, 188, 156, 100,\n\t\t230, 4, 35, 107, 97, 189, 16, 140, 251, 197, 173, 53, 35,\n\t\t25, 180, 21, 99, 197, 18, 201, 155, 6, 172, 195, 192, 217,\n\t\t95, 251, 49, 146, 233, 203, 55, 34, 204, 91, 146, 87, 173,\n\t\t67, 211, 236, 17, 61, 65, 10, 146, 194, 212, 63, 15, 134,\n\t\t149, 113, 86, 241, 144, 100, 10, 178, 76, 64, 107, 161, 156,\n\t\t210, 103, 91, 187, 64, 10, 97, 125, 144, 229, 172, 230, 252,\n\t\t121, 169, 145, 147, 237, 235, 138, 244, 210, 72, 13, 192,\n\t\t228, 121, 75, 133, 252, 210, 120, 187, 254, 252, 227, 159,\n\t\t127, 92, 191, 189, 206, 63, 255, 241, 19, 8, 80, 187, 166,\n\t\t227, 235, 167, 26, 198, 82, 24, 203, 40, 74, 117, 106, 85,\n\t\t180, 226, 64, 37, 128, 207, 77, 54, 53, 213, 117, 12, 114,\n\t\t47, 162, 138, 166, 11, 46, 152, 160, 191, 223, 55, 103, 86,\n\t\t6, 28, 63, 161, 200, 0, 215, 221, 179, 31, 57, 148, 210, 242,\n\t\t155, 183, 47, 68, 18, 2, 12, 91, 141, 33, 87, 196, 71, 238,\n\t\t108, 252, 196, 82, 184, 149, 103, 199, 0, 207, 61, 189, 159,\n\t\t43, 104, 196, 126, 16, 224, 41, 182, 65, 174, 156, 154, 164,\n\t\t144, 191, 90, 49, 2, 66, 70, 181, 217, 89, 9, 209, 9, 159,\n\t\t134, 16, 155, 130, 196, 102, 15, 131, 81, 4, 128, 95, 156,\n\t\t105, 73, 244, 172, 35, 49, 158, 103, 190, 206, 62, 217, 174,\n\t\t93, 170, 33, 87, 10, 58, 212, 37, 17, 188, 37, 1, 236, 21,\n\t\t216, 251, 136, 241, 69, 5, 216, 40, 83, 18, 188, 80, 182,\n\t\t22, 31, 162, 228, 253, 118, 156, 224, 169, 20, 18, 255, 234,\n\t\t240, 172, 161, 40, 99, 36, 178, 248, 2, 200, 243, 206, 162,\n\t\t146, 218, 218, 76, 104, 69, 119, 148, 56, 176, 178, 78, 5,\n\t\t228, 32, 236, 100, 170, 25, 194, 9, 161, 21, 114, 58, 45,\n\t\t209, 141, 42, 60, 4, 86, 50, 178, 226, 145, 192, 219, 242,\n\t\t126, 46, 247, 20, 59, 56, 142, 58, 184, 204, 36, 100, 89,\n\t\t131, 155, 3, 162, 62, 235, 177, 75, 206, 109, 25, 15, 181,\n\t\t55, 244, 204, 130, 127, 197, 246, 107, 138, 51, 164, 46, 164,\n\t\t47, 89, 155, 51, 130, 103, 102, 141, 79, 146, 167, 132, 94,\n\t\t191, 62, 146, 212, 176, 204, 226, 30, 42, 74, 192, 146, 76,\n\t\t36, 194, 130, 212, 145, 0, 150, 218, 74, 232, 5, 216, 219,\n\t\t141, 237, 255, 144, 184, 165, 23, 0, 30, 16, 152, 75, 102,\n\t\t9, 40, 132, 89, 238, 155, 210, 33, 75, 82, 236, 60, 3, 32,\n\t\t91, 119, 79, 202, 25, 97, 184, 173, 6, 211, 245, 82, 74, 8,\n\t\t214, 152, 21, 214, 120, 43, 25, 31, 54, 99, 38, 248, 102,\n\t\t211, 218, 54, 122, 185, 184, 203, 221, 188, 143, 172, 236,\n\t\t94, 66, 27, 120, 209, 137, 61, 250, 148, 230, 241, 19, 104,\n\t\t133, 37, 63, 54, 172, 155, 40, 179, 109, 43, 108, 160, 5,\n\t\t19, 160, 172, 67, 144, 135, 137, 44, 161, 66, 28, 213, 164,\n\t\t8, 29, 40, 110, 128, 101, 50, 13, 162, 155, 21, 114, 238,\n\t\t13, 158, 236, 138, 46, 8, 47, 42, 112, 229, 109, 100, 13,\n\t\t133, 64, 8, 134, 118, 1, 11, 1, 104, 117, 93, 9, 81, 214,\n\t\t80, 107, 189, 10, 145, 240, 137, 181, 40, 210, 194, 92, 42,\n\t\t221, 187, 232, 111, 191, 216, 24, 76, 95, 242, 129, 224, 122,\n\t\t138, 81, 139, 163, 167, 12, 118, 32, 105, 4, 49, 34, 244,\n\t\t192, 53, 173, 115, 226, 253, 121, 64, 155, 251, 28, 28, 33,\n\t\t172, 190, 156, 231, 128, 227, 5, 189, 177, 219, 218, 69, 41,\n\t\t61, 5, 144, 151, 16, 66, 59, 190, 132, 106, 177, 12, 185,\n\t\t148, 0, 69, 205, 237, 62, 167, 53, 191, 172, 47, 17, 234,\n\t\t112, 99, 89, 23, 5, 63, 153, 218, 10, 159, 132, 189, 190,\n\t\t0, 134, 1, 13, 255, 32, 99, 176, 65, 103, 179, 221, 57, 25,\n\t\t102, 226, 242, 103, 26, 18, 8, 56, 193, 12, 133, 70, 192,\n\t\t209, 165, 202, 79, 4, 111, 16, 78, 40, 188, 29, 117, 242,\n\t\t27, 160, 246, 55, 40, 95, 101, 146, 155, 56, 204, 173, 78,\n\t\t116, 102, 38, 162, 224, 22, 133, 185, 75, 6, 162, 231, 181,\n\t\t192, 28, 89, 107, 237, 191, 8, 166, 203, 240, 41, 229, 189,\n\t\t113, 149, 45, 195, 138, 109, 94, 92, 65, 44, 16, 229, 162,\n\t\t16, 227, 232, 139, 0, 135, 45, 218, 100, 175, 70, 114, 141,\n\t\t84, 28, 57, 19, 177, 253, 102, 107, 122, 84, 248, 38, 85,\n\t\t68, 89, 11, 150, 4, 169, 68, 38, 229, 137, 20, 50, 218, 211,\n\t\t35, 24, 4, 215, 107, 196, 48, 25, 17, 79, 33, 229, 92, 28,\n\t\t166, 124, 25, 121, 173, 12, 144, 247, 163, 182, 8, 195, 216,\n\t\t218, 209, 54, 136, 32, 87, 101, 211, 233, 44, 92, 108, 102,\n\t\t252, 10, 160, 46, 209, 21, 9, 235, 255, 230, 250, 77, 236,\n\t\t4, 80, 107, 146, 40, 106, 195, 247, 45, 181, 59, 136, 136,\n\t\t77, 136, 228, 229, 7, 18, 239, 94, 116, 97, 17, 177, 87, 121,\n\t\t13, 217, 49, 133, 71, 170, 141, 217, 7, 46, 243, 138, 206,\n\t\t230, 181, 134, 56, 246, 107, 122, 143, 66, 196, 198, 181,\n\t\t248, 145, 112, 42, 138, 15, 236, 195, 122, 148, 70, 224, 77,\n\t\t131, 110, 172, 141, 24, 216, 107, 118, 215, 243, 92, 93, 1,\n\t\t18, 145, 17, 134, 93, 197, 76, 30, 161, 180, 13, 233, 88,\n\t\t157, 130, 37, 120, 6, 225, 29, 165, 24, 202, 144, 163, 38,\n\t\t37, 5, 36, 18, 226, 161, 175, 63, 99, 58, 211, 0, 207, 226,\n\t\t250, 84, 168, 200, 34, 208, 156, 200, 157, 216, 51, 148, 212,\n\t\t237, 156, 16, 215, 157, 98, 56, 119, 224, 32, 175, 125, 62,\n\t\t170, 78, 19, 249, 25, 223, 190, 16, 215, 187, 56, 195, 124,\n\t\t6, 119, 30, 210, 57, 16, 38, 46, 139, 167, 2, 38, 38, 5, 75,\n\t\t69, 171, 251, 82, 1, 75, 236, 2, 95, 55, 3, 31, 107, 57, 129,\n\t\t67, 177, 247, 151, 245, 122, 25, 170, 199, 177, 65, 187, 17,\n\t\t50, 208, 130, 169, 181, 42, 214, 166, 251, 20, 89, 58, 117,\n\t\t253, 9, 18, 159, 204, 138, 147, 121, 19, 72, 106, 33, 158,\n\t\t233, 149, 194, 28, 45, 43, 53, 37, 129, 0, 64, 127, 72, 168,\n\t\t78, 230, 184, 214, 114, 26, 218, 42, 138, 51, 203, 93, 2,\n\t\t87, 101, 92, 250, 33, 197, 37, 142, 43, 11, 214, 150, 169,\n\t\t63, 176, 58, 215, 121, 4, 233, 185, 51, 85, 24, 104, 198,\n\t\t144, 221, 42, 91, 174, 139, 26, 51, 84, 121, 150, 208, 180,\n\t\t73, 54, 32, 44, 183, 17, 76, 27, 177, 63, 206, 168, 212, 196,\n\t\t74, 172, 153, 146, 195, 140, 52, 85, 45, 180, 80, 236, 4,\n\t\t4, 121, 95, 162, 176, 7, 169, 57, 31, 165, 135, 152, 215,\n\t\t28, 46, 167, 117, 237, 215, 153, 3, 205, 172, 65, 204, 10,\n\t\t64, 64, 142, 36, 87, 82, 32, 216, 136, 237, 201, 92, 145,\n\t\t186, 223, 17, 57, 232, 181, 79, 4, 194, 166, 94, 64, 97, 229,\n\t\t132, 37, 34, 167, 0, 61, 116, 125, 45, 43, 12, 41, 146, 72,\n\t\t179, 212, 171, 59, 154, 44, 201, 71, 143, 174, 112, 79, 167,\n\t\t100, 208, 152, 168, 145, 151, 75, 136, 77, 30, 159, 80, 194,\n\t\t112, 51, 201, 81, 96, 229, 162, 57, 16, 120, 85, 233, 25,\n\t\t99, 5, 245, 114, 38, 62, 2, 204, 57, 11, 34, 232, 170, 57,\n\t\t149, 8, 251, 188, 53, 134, 40, 142, 167, 41, 120, 84, 98,\n\t\t233, 114, 219, 241, 94, 42, 180, 236, 40, 62, 84, 215, 71,\n\t\t229, 24, 3, 122, 148, 139, 111, 121, 41, 63, 171, 116, 42,\n\t\t216, 72, 6, 176, 98, 99, 182, 172, 10, 13, 120, 196, 99, 86,\n\t\t162, 57, 27, 13, 149, 16, 148, 118, 73, 153, 235, 108, 149,\n\t\t92, 30, 217, 104, 174, 101, 109, 154, 118, 64, 125, 35, 76,\n\t\t152, 66, 123, 141, 166, 32, 245, 178, 140, 115, 54, 72, 169,\n\t\t229, 96, 12, 173, 40, 147, 70, 205, 240, 205, 47, 142, 0,\n\t\t139, 247, 0, 131, 85, 72, 56, 126, 171, 171, 254, 101, 190,\n\t\t45, 17, 213, 1, 72, 178, 214, 126, 89, 186, 12, 69, 156, 250,\n\t\t229, 162, 212, 59, 195, 16, 41, 164, 64, 69, 158, 195, 200,\n\t\t12, 214, 137, 156, 0, 46, 166, 224, 194, 145, 242, 157, 205,\n\t\t204, 84, 115, 55, 27, 144, 16, 107, 27, 130, 54, 141, 48,\n\t\t50, 216, 10, 198, 50, 85, 151, 147, 191, 126, 104, 206, 0,\n\t\t122, 181, 209, 20, 240, 167, 204, 16, 163, 124, 125, 128,\n\t\t81, 38, 203, 145, 102, 15, 173, 14, 184, 124, 13, 179, 161,\n\t\t246, 102, 9, 17, 148, 169, 107, 99, 67, 174, 86, 87, 10, 3,\n\t\t42, 229, 2, 158, 82, 169, 59, 104, 159, 200, 244, 121, 91,\n\t\t71, 59, 62, 99, 176, 226, 239, 251, 123, 27, 57, 83, 213,\n\t\t65, 132, 58, 208, 86, 163, 101, 148, 48, 207, 137, 206, 172,\n\t\t83, 87, 8, 76, 14, 53, 84, 220, 40, 242, 164, 58, 124, 140,\n\t\t235, 4, 169, 30, 158, 175, 81, 66, 185, 117, 164, 100, 209,\n\t\t7, 87, 104, 163, 32, 138, 40, 37, 140, 75, 8, 163, 112, 144,\n\t\t89, 225, 164, 185, 153, 13, 39, 156, 217, 106, 115, 10, 240,\n\t\t35, 20, 41, 11, 52, 138, 162, 47, 55, 104, 101, 108, 83, 196,\n\t\t74, 70, 13, 249, 64, 168, 168, 238, 145, 140, 105, 88, 116,\n\t\t185, 1, 111, 35, 116, 216, 146, 86, 242, 71, 36, 246, 37,\n\t\t32, 12, 101, 154, 228, 12, 34, 6, 191, 31, 65, 177, 181, 164,\n\t\t47, 81, 95, 100, 66, 116, 92, 98, 96, 235, 158, 118, 75, 214,\n\t\t95, 187, 193, 154, 19, 150, 98, 38, 228, 211, 90, 129, 253,\n\t\t174, 94, 144, 58, 110, 36, 64, 54, 115, 177, 16, 84, 8, 60,\n\t\t98, 104, 185, 225, 208, 26, 175, 226, 80, 17, 153, 173, 145,\n\t\t125, 18, 12, 44, 51, 144, 123, 169, 98, 69, 215, 22, 188,\n\t\t219, 196, 174, 50, 129, 138, 206, 118, 184, 94, 70, 36, 211,\n\t\t157, 220, 249, 244, 37, 27, 96, 194, 68, 186, 240, 60, 169,\n\t\t201, 214, 165, 219, 103, 76, 249, 134, 25, 91, 141, 135, 19,\n\t\t104, 168, 18, 217, 23, 136, 60, 194, 50, 165, 43, 96, 196,\n\t\t85, 133, 136, 82, 18, 69, 136, 48, 65, 139, 142, 225, 138,\n\t\t231, 138, 50, 10, 226, 68, 61, 46, 240, 155, 21, 53, 35, 117,\n\t\t170, 115, 11, 44, 196, 81, 152, 243, 18, 21, 192, 102, 168,\n\t\t107, 227, 200, 205, 103, 211, 248, 195, 89, 204, 172, 21,\n\t\t115, 206, 140, 162, 193, 86, 227, 37, 138, 84, 215, 96, 36,\n\t\t103, 152, 115, 71, 86, 117, 33, 99, 135, 236, 146, 14, 172,\n\t\t41, 251, 164, 182, 84, 118, 229, 143, 152, 213, 85, 29, 143,\n\t\t82, 191, 208, 76, 135, 88, 150, 188, 27, 53, 7, 183, 173,\n\t\t40, 136, 30, 157, 232, 152, 238, 254, 168, 56, 150, 59, 141,\n\t\t190, 141, 210, 174, 240, 133, 49, 212, 78, 16, 186, 164, 68,\n\t\t146, 232, 82, 41, 200, 103, 221, 97, 243, 70, 199, 50, 89,\n\t\t179, 57, 234, 114, 141, 214, 8, 160, 14, 224, 126, 138, 58,\n\t\t5, 171, 98, 153, 46, 137, 224, 49, 180, 222, 82, 80, 131,\n\t\t94, 148, 87, 82, 25, 14, 208, 234, 205, 2, 39, 133, 49, 32,\n\t\t82, 166, 1, 29, 90, 224, 77, 50, 162, 138, 119, 216, 108,\n\t\t81, 180, 34, 233, 212, 168, 73, 40, 204, 13, 54, 80, 4, 246,\n\t\t223, 213, 212, 6, 62, 187, 134, 57, 188, 28, 120, 40, 127,\n\t\t66, 82, 80, 41, 69, 23, 132, 229, 77, 134, 232, 24, 154, 118,\n\t\t83, 134, 68, 248, 39, 128, 254, 183, 219, 9, 173, 94, 81,\n\t\t97, 68, 201, 17, 81, 55, 161, 50, 36, 143, 140, 146, 200,\n\t\t93, 153, 180, 124, 44, 67, 12, 223, 0, 107, 198, 215, 127,\n\t\t56, 121, 15, 140, 77, 146, 95, 145, 109, 91, 173, 25, 44,\n\t\t26, 74, 89, 115, 208, 21, 21, 212, 45, 227, 91, 196, 128,\n\t\t17, 46, 85, 238, 185, 16, 236, 146, 108, 111, 210, 191, 62,\n\t\t154, 33, 200, 199, 22, 210, 28, 215, 146, 9, 75, 100, 21,\n\t\t35, 79, 76, 236, 137, 35, 35, 43, 153, 70, 148, 187, 154,\n\t\t114, 252, 74, 102, 103, 68, 172, 252, 178, 252, 215, 110,\n\t\t207, 3, 17, 159, 141, 170, 5, 169, 42, 69, 203, 63, 233, 190,\n\t\t43, 183, 101, 50, 66, 47, 123, 149, 4, 112, 121, 250, 123,\n\t\t81, 141, 252, 91, 105, 77, 12, 189, 117, 148, 115, 74, 152,\n\t\t67, 75, 201, 21, 254, 147, 248, 188, 229, 114, 36, 73, 47,\n\t\t194, 200, 90, 21, 85, 116, 198, 139, 81, 181, 93, 168, 244,\n\t\t0, 57, 84, 82, 223, 188, 19, 161, 193, 133, 37, 250, 229,\n\t\t193, 133, 164, 48, 212, 88, 139, 20, 252, 41, 19, 181, 77,\n\t\t72, 175, 135, 203, 106, 161, 103, 117, 86, 210, 163, 44, 159,\n\t\t2, 6, 235, 146, 187, 71, 162, 66, 68, 43, 80, 38, 66, 198,\n\t\t154, 152, 199, 125, 234, 222, 194, 103, 194, 15, 17, 189,\n\t\t153, 240, 31, 72, 214, 237, 167, 150, 169, 160, 93, 134, 201,\n\t\t148, 97, 96, 63, 170, 29, 147, 26, 60, 235, 90, 29, 86, 183,\n\t\t115, 27, 222, 50, 178, 145, 181, 26, 214, 225, 178, 167, 75,\n\t\t108, 105, 67, 227, 67, 173, 129, 243, 55, 155, 212, 92, 123,\n\t\t169, 198, 116, 108, 34, 175, 105, 211, 39, 198, 190, 54, 213,\n\t\t49, 62, 71, 179, 186, 218, 164, 240, 122, 51, 83, 100, 151,\n\t\t68, 111, 106, 61, 41, 67, 124, 110, 95, 146, 204, 162, 102,\n\t\t82, 204, 20, 250, 254, 71, 35, 60, 224, 215, 135, 148, 129,\n\t\t88, 96, 146, 17, 90, 26, 79, 100, 0, 199, 132, 129, 28, 107,\n\t\t71, 80, 247, 188, 197, 60, 17, 146, 94, 195, 203, 179, 42,\n\t\t225, 176, 58, 41, 129, 247, 89, 70, 90, 201, 10, 185, 4, 115,\n\t\t30, 13, 148, 25, 177, 66, 199, 45, 233, 65, 141, 4, 139, 252,\n\t\t113, 89, 180, 38, 147, 131, 108, 12, 13, 142, 76, 79, 179,\n\t\t55, 138, 118, 232, 151, 235, 102, 61, 166, 74, 53, 165, 59,\n\t\t4, 170, 84, 195, 87, 133, 5, 70, 72, 219, 23, 107, 117, 84,\n\t\t2, 247, 226, 92, 189, 170, 169, 138, 25, 195, 8, 199, 165,\n\t\t168, 241, 105, 250, 53, 89, 227, 58, 230, 21, 175, 19, 35,\n\t\t14, 224, 177, 96, 41, 222, 82, 125, 73, 9, 175, 150, 145,\n\t\t186, 36, 142, 202, 35, 108, 63, 220, 246, 113, 13, 7, 76,\n\t\t3, 117, 7, 1, 16, 217, 209, 137, 109, 208, 205, 110, 214,\n\t\t155, 93, 68, 252, 7, 177, 42, 162, 231, 174, 118, 141, 5,\n\t\t2, 26, 237, 186, 49, 106, 42, 236, 103, 51, 7, 199, 73, 74,\n\t\t250, 38, 144, 134, 15, 149, 140, 108, 36, 169, 50, 108, 52,\n\t\t10, 16, 57, 145, 216, 203, 49, 205, 64, 205, 48, 28, 219,\n\t\t115, 109, 31, 41, 163, 192, 248, 233, 17, 68, 44, 59, 82,\n\t\t84, 213, 90, 78, 216, 201, 137, 226, 246, 177, 235, 7, 178,\n\t\t243, 61, 88, 166, 163, 152, 66, 214, 172, 193, 154, 56, 128,\n\t\t236, 197, 101, 239, 84, 245, 181, 212, 14, 105, 134, 200,\n\t\t155, 149, 23, 171, 25, 95, 131, 154, 26, 155, 35, 98, 217,\n\t\t16, 78, 116, 66, 255, 70, 39, 242, 37, 202, 88, 226, 82, 254,\n\t\t218, 254, 221, 146, 116, 132, 186, 221, 116, 255, 88, 39,\n\t\t26, 252, 60, 223, 8, 207, 53, 170, 132, 211, 26, 115, 138,\n\t\t160, 20, 161, 212, 220, 1, 190, 83, 221, 45, 216, 227, 44,\n\t\t130, 53, 207, 210, 66, 114, 37, 19, 80, 227, 230, 76, 148,\n\t\t72, 132, 96, 119, 181, 207, 194, 160, 243, 229, 186, 111,\n\t\t211, 144, 68, 168, 37, 180, 202, 232, 224, 84, 175, 93, 212,\n\t\t157, 147, 148, 160, 4, 37, 164, 176, 60, 79, 91, 220, 241,\n\t\t56, 29, 139, 64, 148, 218, 244, 238, 166, 165, 104, 132, 194,\n\t\t192, 125, 17, 205, 103, 243, 73, 9, 86, 170, 1, 50, 228, 230,\n\t\t151, 202, 116, 82, 132, 130, 100, 3, 41, 214, 238, 80, 192,\n\t\t204, 200, 157, 67, 237, 191, 164, 1, 189, 115, 88, 153, 91,\n\t\t70, 94, 244, 198, 185, 98, 140, 155, 145, 9, 197, 62, 243,\n\t\t81, 216, 151, 209, 230, 188, 10, 133, 129, 250, 220, 197,\n\t\t156, 154, 188, 93, 98, 149, 208, 140, 24, 174, 165, 188, 180,\n\t\t29, 48, 144, 151, 7, 176, 164, 97, 90, 62, 185, 6, 19, 233,\n\t\t229, 116, 119, 239, 165, 83, 248, 26, 36, 241, 121, 99, 157,\n\t\t32, 166, 103, 19, 195, 147, 182, 136, 68, 233, 198, 116, 175,\n\t\t225, 254, 165, 221, 96, 126, 169, 46, 132, 176, 76, 169, 180,\n\t\t253, 228, 203, 7, 44, 156, 210, 146, 90, 175, 120, 226, 166,\n\t\t15, 65, 114, 49, 180, 2, 100, 154, 175, 213, 192, 114, 148,\n\t\t58, 75, 103, 31, 161, 62, 12, 91, 181, 108, 53, 34, 52, 204,\n\t\t21, 170, 72, 219, 251, 94, 89, 108, 139, 25, 222, 75, 223,\n\t\t177, 206, 36, 81, 234, 197, 208, 39, 187, 166, 150, 21, 143,\n\t\t238, 251, 80, 74, 65, 127, 114, 0, 136, 3, 15, 105, 127, 160,\n\t\t176, 248, 208, 102, 211, 200, 184, 197, 210, 16, 198, 76,\n\t\t180, 188, 50, 250, 253, 145, 97, 37, 104, 203, 52, 228, 110,\n\t\t63, 163, 252, 190, 15, 76, 42, 229, 84, 11, 13, 29, 52, 122,\n\t\t2, 97, 6, 77, 163, 160, 203, 15, 112, 21, 231, 206, 168, 245,\n\t\t48, 107, 18, 134, 218, 161, 23, 80, 111, 57, 200, 110, 187,\n\t\t214, 111, 103, 163, 177, 132, 44, 185, 176, 32, 165, 10, 134,\n\t\t220, 34, 110, 167, 58, 45, 88, 185, 38, 125, 244, 79, 89,\n\t\t69, 248, 105, 4, 182, 167, 89, 129, 167, 8, 214, 16, 69, 61,\n\t\t98, 162, 224, 57, 163, 42, 115, 23, 9, 88, 122, 145, 254,\n\t\t11, 56, 143, 40, 120, 176, 173, 150, 69, 153, 216, 45, 212,\n\t\t53, 174, 173, 210, 58, 83, 102, 62, 158, 96, 19, 104, 83,\n\t\t46, 167, 169, 193, 62, 198, 136, 31, 217, 100, 57, 183, 110,\n\t\t46, 134, 89, 136, 162, 95, 165, 183, 217, 19, 0, 53, 106,\n\t\t1, 53, 47, 251, 142, 33, 141, 17, 71, 187, 159, 188, 18, 237,\n\t\t118, 72, 75, 246, 12, 8, 51, 142, 75, 100, 103, 65, 40, 173,\n\t\t44, 103, 8, 53, 152, 217, 192, 158, 214, 158, 228, 234, 162,\n\t\t0, 46, 151, 12, 70, 115, 74, 82, 148, 230, 174, 132, 146,\n\t\t140, 25, 17, 81, 99, 78, 64, 94, 203, 50, 142, 110, 93, 1,\n\t\t133, 89, 137, 24, 102, 207, 45, 3, 255, 101, 176, 142, 185,\n\t\t218, 231, 31, 18, 100, 14, 109, 164, 212, 244, 1, 163, 182,\n\t\t248, 243, 229, 33, 170, 172, 17, 64, 111, 30, 43, 0, 229,\n\t\t53, 236, 125, 208, 223, 200, 178, 72, 177, 99, 80, 233, 96,\n\t\t156, 75, 233, 104, 38, 183, 210, 149, 141, 228, 211, 195,\n\t\t44, 229, 48, 171, 161, 168, 28, 41, 92, 42, 48, 92, 61, 130,\n\t\t72, 86, 132, 155, 188, 53, 229, 234, 202, 160, 136, 81, 33,\n\t\t23, 77, 173, 157, 150, 128, 115, 239, 161, 82, 250, 20, 118,\n\t\t203, 92, 91, 253, 192, 14, 35, 61, 128, 135, 63, 111, 210,\n\t\t61, 235, 10, 119, 67, 234, 14, 215, 50, 124, 117, 112, 17,\n\t\t37, 245, 13, 44, 16, 190, 204, 55, 129, 124, 69, 177, 59,\n\t\t182, 3, 35, 47, 46, 66, 105, 227, 170, 103, 66, 159, 110,\n\t\t173, 166, 91, 101, 129, 25, 207, 17, 237, 226, 30, 55, 148,\n\t\t10, 149, 234, 39, 33, 193, 36, 199, 169, 111, 100, 206, 138,\n\t\t20, 68, 184, 253, 140, 190, 172, 117, 51, 88, 48, 253, 189,\n\t\t153, 161, 235, 115, 108, 207, 51, 245, 84, 88, 146, 189, 227,\n\t\t121, 230, 35, 89, 206, 31, 24, 197, 99, 18, 123, 143, 161,\n\t\t224, 66, 30, 205, 245, 253, 1, 144, 140, 144, 75, 107, 32,\n\t\t234, 34, 123, 133, 225, 233, 164, 160, 125, 50, 6, 168, 19,\n\t\t67, 108, 165, 44, 245, 31, 55, 248, 219, 251, 150, 204, 89,\n\t\t77, 76, 51, 174, 37, 107, 196, 180, 40, 166, 119, 81, 154,\n\t\t117, 235, 6, 145, 6, 51, 107, 73, 19, 209, 237, 169, 160,\n\t\t232, 182, 4, 147, 166, 23, 44, 238, 7, 89, 95, 42, 136, 84,\n\t\t198, 18, 128, 135, 180, 18, 74, 36, 10, 141, 22, 125, 108,\n\t\t219, 51, 91, 244, 210, 147, 204, 246, 123, 25, 216, 138, 105,\n\t\t231, 219, 210, 8, 230, 41, 169, 50, 202, 29, 138, 197, 163,\n\t\t229, 23, 192, 226, 155, 7, 60, 119, 238, 118, 189, 60, 218,\n\t\t84, 146, 134, 112, 224, 24, 92, 111, 70, 213, 126, 144, 204,\n\t\t148, 168, 43, 50, 237, 49, 104, 90, 199, 88, 93, 196, 30,\n\t\t14, 41, 147, 156, 146, 215, 43, 86, 185, 164, 25, 53, 97,\n\t\t202, 166, 186, 203, 170, 86, 117, 1, 63, 1, 75, 212, 17, 194,\n\t\t82, 142, 149, 173, 31, 110, 156, 124, 198, 213, 22, 247, 71,\n\t\t84, 194, 196, 74, 200, 112, 73, 72, 115, 58, 49, 36, 62, 90,\n\t\t69, 174, 235, 31, 128, 221, 95, 89, 131, 23, 120, 27, 137,\n\t\t202, 79, 224, 182, 241, 122, 156, 1, 104, 52, 70, 232, 34,\n\t\t112, 183, 208, 248, 163, 147, 145, 13, 53, 7, 73, 140, 37,\n\t\t164, 141, 125, 142, 1, 9, 141, 154, 88, 184, 193, 19, 186,\n\t\t176, 111, 20, 103, 94, 109, 54, 97, 4, 251, 218, 86, 50, 42,\n\t\t75, 181, 36, 211, 99, 218, 244, 33, 0, 233, 175, 138, 69,\n\t\t99, 94, 167, 37, 125, 19, 196, 134, 103, 239, 233, 196, 58,\n\t\t112, 146, 230, 69, 54, 154, 161, 36, 99, 129, 80, 94, 15,\n\t\t167, 244, 188, 180, 119, 172, 190, 61, 184, 114, 162, 103,\n\t\t115, 42, 133, 188, 222, 168, 38, 110, 218, 204, 84, 24, 163,\n\t\t22, 173, 179, 6, 98, 7, 248, 151, 42, 31, 231, 114, 19, 59,\n\t\t169, 217, 148, 9, 185, 133, 240, 115, 182, 33, 129, 219, 130,\n\t\t28, 204, 141, 204, 78, 5, 160, 165, 26, 208, 58, 68, 233,\n\t\t230, 102, 26, 57, 16, 45, 57, 219, 204, 170, 183, 132, 181,\n\t\t151, 240, 90, 108, 122, 157, 225, 70, 88, 91, 73, 9, 31, 77,\n\t\t109, 228, 18, 106, 241, 253, 76, 110, 103, 49, 83, 19, 214,\n\t\t82, 183, 36, 39, 71, 72, 155, 1, 110, 6, 42, 133, 245, 37,\n\t\t222, 234, 194, 109, 137, 61, 92, 173, 148, 212, 104, 24, 32,\n\t\t111, 151, 95, 1, 231, 166, 106, 134, 226, 38, 64, 171, 120,\n\t\t99, 16, 45, 142, 42, 202, 134, 178, 68, 141, 20, 57, 82, 95,\n\t\t142, 15, 184, 96, 173, 152, 193, 165, 10, 197, 149, 87, 104,\n\t\t36, 141, 153, 168, 255, 206, 109, 106, 12, 19, 106, 139, 239,\n\t\t152, 53, 231, 68, 241, 203, 181, 8, 3, 137, 18, 31, 89, 157,\n\t\t1, 103, 101, 76, 6, 99, 101, 246, 128, 249, 84, 215, 150,\n\t\t95, 197, 9, 43, 232, 217, 211, 190, 135, 9, 88, 21, 247, 19,\n\t\t102, 23, 24, 46, 224, 109, 119, 119, 68, 18, 88, 139, 32,\n\t\t57, 10, 91, 109, 96, 229, 0, 91, 84, 102, 191, 60, 63, 134,\n\t\t133, 143, 56, 51, 33, 181, 64, 244, 63, 172, 32, 42, 43, 109,\n\t\t117, 53, 118, 220, 48, 42, 43, 229, 249, 245, 6, 88, 86, 14,\n\t\t119, 55, 222, 10, 35, 146, 214, 170, 70, 200, 16, 13, 244,\n\t\t230, 32, 214, 186, 142, 57, 183, 220, 150, 194, 90, 168, 53,\n\t\t138, 214, 43, 88, 229, 10, 51, 83, 223, 112, 144, 76, 106,\n\t\t200, 84, 231, 40, 91, 86, 49, 39, 2, 218, 103, 91, 183, 9,\n\t\t144, 160, 180, 123, 165, 209, 175, 204, 85, 73, 133, 154,\n\t\t190, 68, 33, 19, 203, 227, 18, 168, 56, 152, 133, 121, 114,\n\t\t183, 119, 13, 83, 150, 68, 50, 21, 122, 133, 249, 233, 116,\n\t\t151, 95, 31, 105, 204, 128, 50, 141, 214, 195, 168, 168, 82,\n\t\t97, 180, 255, 200, 158, 62, 187, 149, 133, 100, 167, 37, 217,\n\t\t22, 220, 178, 101, 114, 59, 206, 122, 115, 231, 42, 251, 244,\n\t\t21, 104, 62, 221, 204, 130, 52, 61, 45, 174, 178, 170, 8,\n\t\t119, 146, 167, 9, 81, 174, 52, 137, 128, 180, 163, 44, 84,\n\t\t196, 154, 221, 202, 182, 178, 153, 205, 166, 248, 88, 26,\n\t\t190, 178, 20, 11, 95, 3, 178, 193, 50, 59, 17, 180, 181, 32,\n\t\t99, 82, 69, 125, 139, 46, 187, 216, 242, 2, 39, 106, 170,\n\t\t27, 147, 166, 89, 184, 44, 104, 5, 235, 244, 89, 41, 62, 14,\n\t\t43, 228, 126, 157, 32, 139, 163, 205, 7, 193, 178, 102, 158,\n\t\t86, 218, 78, 52, 38, 157, 20, 86, 96, 112, 188, 44, 110, 2,\n\t\t130, 79, 166, 6, 139, 5, 66, 60, 215, 83, 221, 42, 97, 33,\n\t\t4, 184, 174, 16, 73, 222, 158, 80, 97, 137, 159, 111, 110,\n\t\t184, 213, 177, 222, 226, 39, 217, 194, 106, 201, 59, 88, 120,\n\t\t92, 213, 190, 80, 229, 130, 204, 85, 163, 59, 165, 91, 250,\n\t\t76, 94, 147, 230, 63, 160, 39, 46, 206, 33, 130, 198, 234,\n\t\t244, 118, 18, 141, 71, 50, 101, 101, 116, 21, 89, 56, 137,\n\t\t215, 124, 125, 164, 186, 28, 27, 65, 253, 103, 43, 227, 222,\n\t\t102, 233, 37, 94, 86, 118, 237, 245, 186, 88, 134, 220, 173,\n\t\t183, 85, 168, 219, 208, 83, 210, 106, 106, 221, 101, 236,\n\t\t94, 189, 77, 99, 0, 140, 194, 52, 117, 8, 147, 4, 139, 143,\n\t\t111, 18, 96, 110, 253, 232, 177, 173, 131, 17, 101, 193, 14,\n\t\t129, 154, 187, 44, 20, 182, 206, 120, 190, 196, 243, 112,\n\t\t120, 138, 178, 92, 142, 199, 245, 166, 195, 147, 234, 69,\n\t\t141, 98, 23, 170, 156, 66, 1, 116, 185, 49, 32, 234, 19, 35,\n\t\t33, 201, 176, 42, 35, 201, 247, 194, 146, 37, 151, 47, 179,\n\t\t44, 162, 39, 1, 252, 146, 36, 42, 66, 77, 0, 93, 158, 131,\n\t\t190, 167, 62, 135, 5, 112, 61, 160, 104, 27, 90, 103, 225,\n\t\t58, 181, 96, 74, 211, 159, 193, 18, 179, 86, 97, 81, 108,\n\t\t203, 234, 234, 249, 201, 86, 26, 73, 165, 228, 118, 24, 246,\n\t\t148, 179, 115, 236, 233, 177, 67, 162, 154, 36, 244, 216,\n\t\t141, 208, 82, 90, 207, 93, 60, 76, 178, 150, 21, 11, 75, 16,\n\t\t58, 95, 143, 59, 53, 100, 238, 55, 231, 153, 245, 181, 153,\n\t\t100, 0, 24, 62, 36, 212, 180, 71, 253, 87, 60, 102, 164, 215,\n\t\t74, 63, 166, 154, 126, 50, 210, 33, 49, 135, 218, 15, 153,\n\t\t61, 20, 136, 228, 229, 22, 64, 167, 130, 241, 13, 98, 79,\n\t\t93, 12, 97, 58, 124, 231, 169, 101, 160, 158, 251, 166, 32,\n\t\t189, 248, 238, 120, 171, 84, 212, 42, 39, 177, 229, 43, 111,\n\t\t158, 153, 134, 205, 89, 154, 90, 10, 107, 227, 52, 7, 118,\n\t\t86, 134, 217, 232, 142, 57, 27, 175, 91, 91, 109, 160, 185,\n\t\t116, 237, 239, 156, 59, 43, 175, 184, 161, 186, 237, 244,\n\t\t173, 254, 77, 72, 250, 158, 143, 138, 236, 162, 101, 3, 73,\n\t\t249, 189, 187, 85, 77, 88, 66, 136, 22, 18, 221, 237, 109,\n\t\t104, 1, 89, 133, 245, 81, 148, 24, 8, 90, 178, 128, 50, 90,\n\t\t189, 82, 34, 3, 82, 70, 32, 72, 224, 9, 166, 80, 83, 225,\n\t\t42, 226, 210, 104, 160, 5, 200, 251, 196, 12, 181, 15, 77,\n\t\t10, 103, 51, 66, 162, 167, 73, 71, 215, 226, 0, 235, 217,\n\t\t78, 75, 117, 95, 219, 223, 242, 178, 91, 203, 105, 55, 40,\n\t\t247, 195, 108, 241, 194, 210, 78, 163, 188, 94, 59, 224, 72,\n\t\t143, 231, 41, 35, 95, 9, 233, 109, 122, 42, 113, 180, 67,\n\t\t250, 88, 74, 240, 32, 35, 254, 90, 41, 104, 192, 78, 161,\n\t\t55, 249, 250, 144, 188, 204, 85, 65, 57, 153, 164, 193, 98,\n\t\t127, 243, 163, 178, 213, 190, 232, 122, 115, 21, 148, 47,\n\t\t145, 101, 162, 110, 7, 0, 219, 141, 1, 140, 37, 45, 81, 47,\n\t\t70, 55, 225, 130, 234, 3, 30, 45, 85, 118, 46, 86, 21, 146,\n\t\t72, 91, 180, 124, 113, 4, 94, 211, 141, 120, 11, 134, 169,\n\t\t105, 188, 74, 6, 29, 171, 85, 121, 220, 74, 36, 206, 161,\n\t\t12, 235, 247, 38, 7, 97, 164, 233, 38, 240, 151, 30, 95, 202,\n\t\t231, 235, 35, 229, 53, 152, 75, 61, 213, 32, 93, 223, 216,\n\t\t138, 171, 53, 16, 152, 7, 141, 29, 81, 97, 198, 34, 157, 229,\n\t\t228, 109, 187, 212, 52, 96, 170, 94, 202, 106, 186, 171, 106,\n\t\t241, 36, 95, 230, 186, 101, 186, 14, 99, 209, 206, 157, 78,\n\t\t145, 117, 74, 229, 9, 111, 229, 113, 57, 22, 246, 217, 205,\n\t\t1, 17, 186, 236, 90, 191, 177, 236, 36, 254, 114, 25, 142,\n\t\t167, 8, 108, 63, 80, 147, 193, 31, 170, 33, 118, 198, 120,\n\t\t169, 73, 186, 246, 243, 219, 137, 171, 90, 119, 247, 177,\n\t\t172, 131, 158, 128, 228, 199, 34, 158, 26, 82, 203, 253, 24,\n\t\t172, 136, 40, 78, 179, 192, 185, 176, 178, 130, 52, 213, 210,\n\t\t171, 22, 140, 230, 22, 159, 205, 72, 227, 162, 89, 80, 17,\n\t\t188, 12, 12, 23, 171, 9, 181, 151, 150, 21, 120, 61, 62, 247,\n\t\t87, 150, 92, 93, 143, 35, 71, 174, 25, 115, 100, 5, 170, 75,\n\t\t46, 77, 47, 115, 42, 90, 25, 116, 175, 77, 95, 58, 226, 242,\n\t\t218, 170, 72, 155, 88, 28, 104, 104, 93, 49, 222, 34, 114,\n\t\t8, 188, 196, 244, 246, 243, 82, 114, 104, 107, 186, 202, 12,\n\t\t25, 123, 205, 32, 113, 118, 14, 199, 118, 73, 178, 244, 110,\n\t\t50, 27, 221, 140, 49, 43, 15, 131, 68, 142, 253, 16, 6, 138,\n\t\t27, 209, 9, 114, 211, 52, 177, 114, 5, 136, 150, 230, 72,\n\t\t209, 58, 142, 184, 27, 188, 225, 182, 119, 171, 184, 216,\n\t\t75, 191, 48, 12, 106, 38, 12, 172, 5, 22, 45, 120, 132, 94,\n\t\t70, 168, 51, 142, 175, 143, 92, 91, 136, 113, 189, 83, 10,\n\t\t179, 140, 215, 217, 172, 195, 187, 218, 238, 179, 200, 74,\n\t\t85, 44, 147, 211, 137, 228, 37, 42, 35, 104, 115, 117, 207,\n\t\t111, 61, 69, 105, 49, 127, 213, 66, 245, 183, 243, 183, 191,\n\t\t255, 237, 252, 219, 249, 111, 191, 255, 239, 63, 254, 254,\n\t\t83, 211, 251, 245, 19, 145, 250, 166, 229, 205, 146, 195,\n\t\t0, 137, 21, 64, 40, 153, 8, 5, 67, 194, 209, 119, 43, 181,\n\t\t33, 159, 89, 179, 151, 119, 88, 31, 231, 189, 247, 213, 251,\n\t\t107, 135, 39, 200, 168, 69, 173, 153, 77, 157, 79, 199, 184,\n\t\t177, 204, 91, 106, 215, 13, 178, 222, 30, 98, 163, 116, 123,\n\t\t234, 198, 110, 252, 254, 187, 230, 82, 237, 134, 184, 247,\n\t\t51, 143, 221, 13, 105, 37, 154, 6, 143, 165, 248, 17, 239,\n\t\t135, 111, 48, 220, 218, 72, 204, 118, 195, 227, 222, 122,\n\t\t235, 143, 103, 144, 133, 40, 145, 228, 11, 89, 103, 33, 67,\n\t\t159, 214, 250, 106, 40, 146, 221, 95, 196, 82, 143, 228, 222,\n\t\t178, 163, 236, 45, 184, 55, 0, 14, 204, 128, 81, 21, 241,\n\t\t183, 149, 96, 30, 215, 14, 131, 73, 98, 103, 169, 150, 79,\n\t\t24, 250, 69, 247, 254, 222, 195, 195, 122, 218, 239, 171,\n\t\t147, 25, 81, 216, 116, 220, 224, 234, 109, 238, 58, 225, 10,\n\t\t242, 123, 183, 161, 99, 135, 84, 224, 128, 232, 129, 61, 231,\n\t\t153, 29, 245, 67, 59, 7, 133, 48, 35, 211, 154, 245, 181,\n\t\t86, 138, 103, 190, 62, 114, 107, 97, 57, 242, 61, 208, 101,\n\t\t220, 115, 233, 248, 53, 86, 222, 99, 189, 59, 5, 216, 82,\n\t\t123, 221, 56, 183, 152, 39, 116, 125, 30, 231, 190, 238, 124,\n\t\t43, 20, 180, 235, 234, 62, 40, 224, 14, 239, 128, 194, 73,\n\t\t41, 32, 81, 103, 115, 222, 222, 225, 186, 196, 122, 168, 139,\n\t\t181, 4, 43, 10, 7, 52, 3, 27, 57, 109, 42, 243, 49, 111, 91,\n\t\t195, 33, 15, 252, 102, 41, 187, 86, 170, 251, 72, 71, 25,\n\t\t33, 41, 31, 145, 239, 203, 220, 70, 63, 222, 176, 41, 45,\n\t\t55, 188, 193, 39, 212, 221, 211, 239, 216, 244, 117, 107,\n\t\t119, 118, 172, 112, 69, 87, 43, 122, 65, 83, 88, 64, 67, 13,\n\t\t164, 201, 104, 116, 79, 46, 8, 54, 24, 198, 82, 108, 151,\n\t\t35, 241, 58, 199, 239, 198, 207, 40, 4, 35, 99, 158, 195,\n\t\t120, 254, 61, 156, 123, 220, 56, 153, 108, 232, 66, 189, 28,\n\t\t126, 232, 214, 176, 109, 251, 207, 65, 252, 109, 169, 93,\n\t\t27, 32, 198, 198, 193, 202, 188, 119, 215, 174, 133, 42, 46,\n\t\t217, 203, 165, 27, 44, 151, 126, 75, 101, 76, 115, 164, 38,\n\t\t118, 226, 250, 147, 165, 195, 128, 25, 173, 247, 119, 115,\n\t\t136, 224, 43, 143, 203, 65, 83, 109, 83, 15, 87, 116, 92,\n\t\t84, 221, 27, 207, 137, 74, 84, 40, 10, 20, 213, 97, 147, 249,\n\t\t57, 2, 191, 34, 21, 91, 114, 203, 246, 235, 230, 147, 65,\n\t\t157, 240, 156, 197, 72, 61, 246, 30, 49, 188, 207, 233, 220,\n\t\t81, 194, 138, 232, 175, 15, 96, 151, 28, 169, 68, 64, 26,\n\t\t114, 45, 24, 134, 137, 210, 129, 57, 83, 204, 50, 30, 244,\n\t\t88, 155, 50, 12, 149, 194, 13, 106, 16, 150, 17, 147, 214,\n\t\t70, 218, 186, 159, 207, 185, 155, 200, 109, 58, 156, 3, 199,\n\t\t204, 8, 85, 206, 172, 6, 62, 12, 240, 221, 251, 23, 124, 76,\n\t\t27, 65, 30, 119, 128, 77, 127, 191, 154, 40, 112, 236, 177,\n\t\t20, 55, 80, 16, 111, 90, 16, 154, 178, 117, 100, 117, 29,\n\t\t119, 152, 54, 141, 167, 27, 57, 13, 255, 177, 15, 143, 203,\n\t\t56, 19, 14, 135, 205, 204, 196, 54, 224, 76, 177, 178, 227,\n\t\t58, 139, 119, 108, 45, 145, 97, 209, 91, 239, 227, 206, 187,\n\t\t82, 251, 29, 78, 226, 214, 158, 161, 146, 13, 229, 78, 228,\n\t\t77, 185, 239, 193, 201, 70, 108, 3, 23, 80, 180, 6, 95, 87,\n\t\t245, 235, 163, 246, 25, 218, 33, 99, 132, 121, 25, 12, 102,\n\t\t60, 154, 65, 46, 24, 121, 156, 159, 80, 72, 36, 246, 38, 59,\n\t\t248, 104, 191, 99, 37, 25, 58, 124, 49, 202, 63, 67, 91, 143,\n\t\t27, 203, 194, 17, 206, 171, 138, 74, 85, 104, 47, 91, 244,\n\t\t188, 245, 103, 239, 138, 144, 255, 126, 254, 50, 203, 97,\n\t\t51, 27, 205, 183, 251, 28, 53, 90, 160, 86, 136, 29, 80, 193,\n\t\t70, 41, 107, 197, 94, 90, 79, 233, 83, 92, 172, 163, 213,\n\t\t70, 70, 143, 193, 18, 136, 98, 229, 77, 148, 105, 63, 116,\n\t\t250, 69, 68, 11, 248, 60, 43, 167, 247, 235, 35, 71, 9, 237,\n\t\t72, 173, 95, 119, 4, 164, 109, 150, 240, 107, 186, 22, 178,\n\t\t89, 4, 12, 198, 89, 187, 68, 210, 245, 51, 245, 234, 232,\n\t\t12, 138, 34, 223, 237, 11, 231, 240, 52, 52, 5, 63, 1, 236,\n\t\t116, 100, 30, 179, 181, 233, 123, 197, 141, 1, 244, 87, 229,\n\t\t253, 138, 172, 6, 33, 2, 130, 254, 132, 213, 74, 151, 13,\n\t\t197, 160, 118, 31, 83, 53, 217, 54, 83, 189, 203, 116, 41,\n\t\t86, 5, 160, 178, 143, 199, 110, 37, 198, 195, 105, 163, 10,\n\t\t245, 166, 26, 9, 70, 249, 127, 67, 128, 222, 72, 210, 136,\n\t\t84, 108, 181, 124, 142, 203, 201, 63, 92, 236, 34, 114, 79,\n\t\t77, 57, 55, 86, 75, 122, 179, 161, 152, 134, 227, 103, 133,\n\t\t15, 249, 122, 96, 206, 210, 145, 154, 220, 177, 122, 172,\n\t\t134, 215, 240, 205, 76, 147, 217, 91, 99, 41, 58, 196, 165,\n\t\t206, 93, 191, 205, 204, 237, 243, 77, 145, 218, 228, 232,\n\t\t235, 96, 12, 68, 17, 197, 46, 5, 254, 140, 102, 23, 26, 218,\n\t\t153, 158, 200, 27, 61, 33, 189, 11, 133, 180, 231, 152, 195,\n\t\t249, 13, 131, 83, 101, 246, 195, 199, 229, 166, 39, 205, 6,\n\t\t230, 23, 173, 191, 212, 192, 213, 140, 21, 53, 109, 153, 36,\n\t\t197, 96, 127, 140, 238, 192, 246, 14, 22, 148, 237, 214, 121,\n\t\t99, 45, 176, 7, 22, 71, 147, 220, 235, 221, 57, 102, 116,\n\t\t55, 187, 95, 129, 223, 55, 42, 185, 170, 160, 55, 14, 198,\n\t\t108, 254, 122, 226, 168, 60, 222, 48, 72, 84, 139, 222, 108,\n\t\t126, 149, 60, 110, 37, 81, 173, 110, 146, 52, 31, 72, 206,\n\t\t139, 206, 211, 59, 19, 228, 245, 198, 65, 115, 108, 60, 179,\n\t\t233, 3, 109, 70, 145, 43, 159, 114, 236, 170, 151, 102, 102,\n\t\t187, 30, 99, 78, 160, 117, 118, 93, 31, 95, 110, 19, 208,\n\t\t110, 157, 0, 111, 96, 220, 149, 169, 124, 155, 68, 55, 90,\n\t\t92, 244, 228, 189, 107, 220, 30, 218, 251, 232, 218, 27, 195,\n\t\t237, 71, 185, 173, 55, 221, 66, 138, 23, 27, 25, 158, 220,\n\t\t222, 200, 93, 176, 41, 132, 209, 86, 96, 55, 218, 185, 250,\n\t\t109, 194, 127, 58, 163, 21, 131, 90, 86, 224, 176, 132, 38,\n\t\t36, 120, 177, 233, 27, 61, 113, 123, 87, 159, 108, 157, 50,\n\t\t46, 240, 195, 153, 96, 238, 15, 85, 125, 58, 238, 72, 243,\n\t\t124, 151, 122, 153, 105, 131, 158, 126, 67, 88, 237, 199,\n\t\t48, 212, 104, 251, 141, 108, 51, 200, 213, 83, 223, 54, 153,\n\t\t239, 49, 253, 53, 190, 208, 126, 8, 71, 10, 199, 40, 59, 16,\n\t\t25, 253, 44, 213, 91, 56, 3, 90, 14, 93, 168, 103, 126, 131,\n\t\t121, 49, 167, 124, 227, 185, 109, 152, 224, 108, 107, 213,\n\t\t58, 56, 204, 82, 57, 137, 27, 103, 159, 121, 175, 101, 136,\n\t\t220, 134, 98, 238, 140, 185, 201, 94, 113, 155, 229, 182,\n\t\t75, 184, 157, 142, 27, 207, 86, 53, 39, 111, 207, 252, 114,\n\t\t1, 236, 169, 140, 245, 0, 255, 60, 174, 77, 39, 28, 225, 105,\n\t\t223, 119, 132, 219, 121, 234, 6, 125, 125, 228, 4, 51, 180,\n\t\t230, 64, 186, 150, 77, 50, 119, 67, 178, 84, 61, 119, 121,\n\t\t55, 223, 233, 76, 207, 117, 107, 65, 199, 189, 212, 19, 112,\n\t\t50, 17, 114, 154, 175, 77, 157, 164, 183, 32, 167, 146, 45,\n\t\t48, 219, 164, 62, 178, 214, 216, 198, 11, 62, 79, 37, 147,\n\t\t37, 80, 2, 199, 197, 107, 11, 8, 62, 206, 189, 83, 93, 200,\n\t\t232, 130, 73, 219, 87, 179, 85, 170, 43, 242, 228, 19, 212,\n\t\t237, 41, 248, 78, 53, 235, 56, 155, 42, 114, 79, 202, 100,\n\t\t26, 23, 10, 21, 67, 54, 140, 214, 79, 141, 223, 92, 183, 183,\n\t\t117, 9, 147, 246, 28, 185, 240, 116, 188, 38, 151, 137, 241,\n\t\t205, 46, 48, 140, 44, 160, 67, 234, 158, 179, 184, 221, 93,\n\t\t0, 233, 40, 22, 215, 128, 84, 191, 31, 93, 113, 133, 209,\n\t\t48, 123, 17, 115, 71, 117, 145, 49, 142, 37, 67, 64, 247,\n\t\t19, 100, 96, 186, 226, 45, 150, 224, 4, 27, 134, 198, 233,\n\t\t155, 68, 58, 29, 240, 141, 111, 182, 41, 150, 237, 113, 28,\n\t\t39, 107, 24, 90, 136, 158, 121, 220, 168, 49, 48, 16, 159,\n\t\t217, 8, 167, 44, 114, 163, 10, 241, 169, 112, 226, 159, 192,\n\t\t27, 61, 55, 93, 239, 250, 214, 179, 42, 138, 156, 225, 42,\n\t\t198, 35, 247, 155, 125, 14, 18, 61, 134, 60, 213, 179, 35,\n\t\t142, 39, 149, 138, 161, 183, 41, 6, 243, 215, 71, 230, 109,\n\t\t15, 105, 51, 180, 207, 53, 64, 3, 61, 149, 138, 32, 23, 183,\n\t\t169, 106, 248, 134, 122, 76, 125, 254, 137, 28, 156, 51, 194,\n\t\t27, 218, 150, 247, 42, 219, 213, 122, 226, 246, 123, 75, 191,\n\t\t93, 134, 202, 22, 143, 172, 111, 227, 143, 109, 39, 24, 115,\n\t\t120, 186, 140, 255, 44, 176, 70, 69, 217, 43, 201, 124, 105,\n\t\t232, 163, 214, 245, 164, 15, 119, 42, 143, 231, 215, 135,\n\t\t228, 25, 150, 241, 49, 67, 255, 68, 97, 71, 140, 229, 213,\n\t\t212, 170, 176, 91, 191, 118, 240, 94, 129, 203, 159, 232,\n\t\t215, 143, 49, 253, 133, 75, 17, 65, 89, 243, 205, 167, 120,\n\t\t117, 202, 87, 125, 86, 127, 234, 215, 237, 206, 207, 83, 137,\n\t\t143, 62, 79, 197, 196, 124, 170, 211, 132, 7, 208, 215, 226,\n\t\t239, 238, 59, 124, 125, 228, 10, 231, 99, 204, 48, 46, 163,\n\t\t120, 136, 71, 55, 140, 190, 57, 93, 34, 155, 50, 157, 22,\n\t\t176, 233, 238, 148, 157, 93, 87, 181, 93, 190, 13, 55, 227,\n\t\t134, 200, 64, 218, 19, 73, 33, 63, 46, 148, 195, 229, 126,\n\t\t212, 106, 18, 218, 172, 45, 171, 15, 83, 130, 45, 100, 177,\n\t\t187, 174, 149, 186, 11, 129, 204, 201, 212, 83, 95, 31, 9,\n\t\t192, 207, 146, 98, 104, 47, 71, 110, 56, 101, 121, 109, 220,\n\t\t119, 170, 37, 159, 32, 50, 159, 179, 189, 186, 77, 42, 206,\n\t\t223, 56, 73, 21, 47, 241, 117, 22, 29, 221, 70, 13, 250, 44,\n\t\t132, 204, 124, 109, 108, 91, 29, 96, 107, 77, 158, 51, 61,\n\t\t77, 229, 189, 156, 39, 108, 206, 244, 120, 57, 182, 42, 191,\n\t\t242, 44, 20, 87, 95, 31, 41, 175, 241, 79, 93, 194, 220, 221,\n\t\t248, 78, 19, 0, 36, 90, 155, 61, 195, 64, 214, 249, 117, 254,\n\t\t83, 85, 154, 19, 140, 47, 134, 97, 6, 122, 78, 157, 205, 132,\n\t\t66, 32, 138, 67, 7, 210, 166, 164, 190, 238, 200, 16, 55,\n\t\t120, 97, 143, 75, 153, 119, 173, 113, 225, 171, 186, 171,\n\t\t48, 117, 133, 190, 99, 123, 206, 109, 58, 156, 99, 171, 129,\n\t\t13, 224, 236, 112, 223, 155, 241, 141, 172, 59, 174, 182,\n\t\t52, 192, 254, 102, 204, 248, 17, 148, 78, 243, 110, 138, 122,\n\t\t139, 172, 244, 183, 16, 69, 186, 44, 160, 117, 99, 155, 144,\n\t\t118, 227, 229, 73, 251, 224, 121, 102, 198, 126, 174, 61,\n\t\t28, 30, 232, 83, 227, 160, 32, 104, 204, 183, 45, 91, 235,\n\t\t12, 117, 76, 222, 158, 218, 157, 213, 30, 55, 136, 247, 167,\n\t\t35, 228, 58, 107, 135, 184, 141, 198, 169, 52, 139, 94, 163,\n\t\t119, 95, 31, 169, 46, 119, 189, 133, 242, 121, 102, 202, 241,\n\t\t75, 117, 66, 116, 98, 121, 47, 114, 181, 19, 210, 213, 222,\n\t\t221, 180, 65, 178, 204, 53, 81, 230, 251, 243, 118, 97, 6,\n\t\t19, 75, 25, 101, 109, 159, 209, 194, 120, 101, 99, 246, 240,\n\t\t17, 120, 109, 141, 68, 181, 241, 248, 60, 135, 81, 169, 38,\n\t\t99, 24, 47, 78, 117, 126, 26, 181, 143, 38, 36, 177, 175,\n\t\t43, 192, 105, 109, 123, 124, 158, 133, 247, 116, 25, 168,\n\t\t38, 244, 243, 204, 190, 105, 249, 99, 159, 189, 233, 190,\n\t\t219, 82, 177, 62, 51, 163, 51, 151, 27, 28, 134, 183, 153,\n\t\t167, 137, 237, 229, 114, 23, 35, 67, 84, 252, 66, 223, 159,\n\t\t159, 75, 14, 124, 125, 228, 62, 150, 115, 61, 82, 152, 143,\n\t\t203, 219, 91, 205, 255, 205, 30, 231, 154, 124, 33, 63, 145,\n\t\t41, 240, 174, 120, 3, 190, 212, 57, 68, 174, 216, 79, 150,\n\t\t231, 118, 128, 178, 199, 44, 232, 4, 144, 217, 90, 211, 11,\n\t\t106, 13, 210, 200, 54, 94, 124, 134, 89, 244, 246, 52, 13,\n\t\t101, 211, 151, 43, 26, 141, 81, 168, 154, 133, 103, 243, 255,\n\t\t54, 207, 24, 73, 21, 21, 8, 126, 114, 180, 246, 134, 241,\n\t\t121, 216, 70, 123, 167, 231, 193, 195, 141, 254, 172, 178,\n\t\t161, 108, 7, 224, 104, 110, 141, 81, 74, 220, 188, 52, 219,\n\t\t246, 74, 29, 119, 11, 155, 88, 6, 34, 223, 177, 63, 221, 188,\n\t\t227, 130, 51, 243, 141, 144, 248, 117, 179, 233, 158, 119,\n\t\t151, 197, 16, 150, 131, 103, 40, 204, 15, 100, 1, 211, 187,\n\t\t146, 97, 182, 66, 215, 205, 100, 22, 81, 244, 53, 170, 75,\n\t\t43, 160, 120, 99, 228, 205, 254, 80, 230, 127, 71, 149, 63,\n\t\t61, 165, 165, 171, 30, 85, 140, 140, 69, 254, 58, 247, 249,\n\t\t251, 231, 79, 9, 207, 203, 64, 35, 151, 14, 147, 116, 164,\n\t\t181, 142, 229, 50, 106, 252, 27, 70, 58, 27, 62, 151, 238,\n\t\t169, 196, 60, 25, 78, 213, 19, 235, 108, 159, 231, 50, 186,\n\t\t106, 44, 23, 250, 166, 28, 61, 110, 106, 221, 0, 43, 231,\n\t\t241, 39, 222, 72, 191, 135, 202, 177, 174, 77, 227, 211, 244,\n\t\t155, 86, 47, 20, 69, 150, 32, 100, 31, 3, 104, 56, 243, 92,\n\t\t230, 107, 169, 203, 112, 143, 37, 148, 254, 92, 135, 121,\n\t\t214, 203, 110, 22, 215, 240, 16, 205, 67, 180, 188, 94, 68,\n\t\t81, 253, 152, 196, 150, 175, 199, 71, 137, 37, 200, 81, 164,\n\t\t93, 201, 156, 182, 163, 100, 118, 223, 47, 179, 18, 144, 12,\n\t\t197, 120, 68, 181, 232, 234, 243, 204, 45, 50, 217, 165, 221,\n\t\t126, 214, 145, 136, 224, 240, 188, 93, 202, 30, 204, 251,\n\t\t151, 159, 248, 178, 204, 9, 224, 124, 179, 99, 236, 55, 237,\n\t\t39, 253, 107, 246, 147, 252, 197, 253, 131, 252, 61, 219,\n\t\t147, 246, 107, 223, 190, 245, 212, 159, 250, 250, 32, 222,\n\t\t176, 212, 22, 134, 128, 244, 201, 203, 83, 58, 32, 100, 58,\n\t\t94, 70, 145, 39, 65, 207, 8, 204, 32, 193, 223, 142, 98, 36,\n\t\t83, 69, 129, 150, 244, 196, 147, 39, 230, 114, 242, 90, 13,\n\t\t165, 61, 139, 162, 152, 16, 236, 227, 54, 64, 101, 144, 185,\n\t\t42, 13, 54, 145, 219, 241, 186, 83, 93, 234, 166, 132, 49,\n\t\t142, 84, 106, 40, 253, 117, 123, 188, 229, 52, 164, 88, 159,\n\t\t103, 203, 218, 61, 40, 232, 69, 102, 115, 141, 161, 28, 206,\n\t\t96, 1, 128, 234, 65, 250, 46, 74, 33, 10, 211, 116, 185, 70,\n\t\t113, 178, 163, 134, 36, 243, 34, 92, 144, 211, 123, 126, 244,\n\t\t46, 187, 220, 138, 147, 249, 108, 40, 17, 235, 112, 96, 122,\n\t\t204, 79, 134, 181, 151, 86, 45, 18, 211, 51, 179, 42, 11,\n\t\t127, 110, 107, 80, 236, 68, 102, 171, 217, 179, 162, 82, 56,\n\t\t47, 91, 116, 132, 154, 14, 201, 49, 200, 120, 173, 63, 35,\n\t\t85, 15, 173, 37, 252, 222, 136, 242, 58, 245, 135, 14, 112,\n\t\t196, 246, 196, 51, 0, 217, 196, 161, 255, 194, 186, 5, 32,\n\t\t160, 78, 189, 199, 3, 201, 46, 44, 160, 164, 72, 9, 153, 221,\n\t\t54, 168, 8, 239, 117, 141, 247, 218, 38, 71, 252, 165, 160,\n\t\t248, 247, 223, 254, 254, 207, 223, 126, 252, 239, 249, 239,\n\t\t175, 63, 254, 227, 249, 207, 243, 63, 126, 251, 175, 223,\n\t\t127, 124, 151, 28, 127, 187, 190, 151, 74, 84, 73, 6, 64,\n\t\t91, 219, 81, 164, 6, 41, 175, 148, 114, 144, 165, 103, 240,\n\t\t239, 235, 252, 23, 199, 252, 231, 235, 99, 12, 22, 191, 201,\n\t\t92, 131, 126, 129, 31, 172, 112, 182, 82, 105, 0, 71, 89,\n\t\t187, 26, 154, 177, 140, 153, 143, 34, 132, 209, 60, 11, 167,\n\t\t13, 116, 170, 77, 129, 117, 250, 156, 71, 1, 88, 149, 217,\n\t\t167, 77, 8, 155, 208, 98, 152, 51, 166, 229, 119, 18, 92,\n\t\t201, 64, 0, 19, 185, 168, 89, 74, 133, 98, 187, 134, 226,\n\t\t178, 60, 208, 247, 241, 192, 55, 128, 230, 38, 108, 142, 73,\n\t\t57, 244, 60, 51, 140, 32, 84, 148, 107, 211, 76, 70, 119,\n\t\t5, 168, 229, 39, 106, 94, 187, 194, 50, 228, 132, 194, 207,\n\t\t101, 18, 147, 240, 60, 87, 86, 251, 102, 246, 84, 93, 142,\n\t\t48, 38, 97, 38, 246, 118, 37, 237, 174, 177, 94, 8, 5, 162,\n\t\t170, 20, 134, 151, 104, 217, 215, 114, 141, 211, 250, 109,\n\t\t128, 177, 130, 83, 243, 168, 141, 203, 90, 45, 226, 171, 131,\n\t\t170, 135, 68, 196, 81, 107, 193, 213, 159, 102, 63, 17, 168,\n\t\t207, 163, 9, 33, 116, 217, 9, 139, 81, 15, 219, 123, 137,\n\t\t245, 141, 235, 95, 140, 102, 6, 112, 62, 129, 16, 81, 63,\n\t\t202, 190, 117, 195, 177, 188, 161, 25, 88, 199, 146, 181,\n\t\t182, 120, 61, 247, 185, 123, 23, 119, 138, 40, 119, 78, 70,\n\t\t49, 115, 178, 37, 62, 0, 98, 127, 89, 103, 172, 42, 200, 7,\n\t\t107, 11, 57, 19, 141, 96, 166, 107, 181, 192, 62, 105, 144,\n\t\t29, 163, 232, 198, 26, 53, 200, 88, 67, 57, 139, 238, 160,\n\t\t89, 21, 1, 117, 54, 197, 86, 153, 196, 68, 253, 122, 124,\n\t\t228, 181, 56, 219, 49, 89, 120, 116, 201, 208, 209, 64, 209,\n\t\t252, 136, 132, 77, 25, 236, 24, 59, 36, 2, 180, 61, 10, 82,\n\t\t251, 138, 94, 43, 25, 58, 136, 13, 26, 125, 118, 208, 44,\n\t\t219, 178, 69, 15, 70, 65, 167, 65, 70, 106, 48, 98, 244, 215,\n\t\t195, 103, 72, 221, 104, 91, 120, 114, 105, 157, 141, 229,\n\t\t173, 141, 69, 199, 132, 71, 207, 128, 237, 210, 37, 149, 10,\n\t\t23, 127, 170, 252, 247, 36, 104, 209, 114, 4, 52, 174, 236,\n\t\t56, 6, 218, 214, 99, 157, 0, 119, 224, 87, 173, 144, 213,\n\t\t74, 68, 20, 41, 245, 164, 164, 235, 186, 11, 69, 171, 1, 147,\n\t\t104, 225, 161, 33, 102, 173, 53, 123, 237, 134, 152, 180,\n\t\t251, 150, 118, 69, 52, 117, 251, 14, 7, 42, 146, 38, 132,\n\t\t24, 203, 70, 21, 34, 32, 9, 71, 13, 191, 183, 54, 81, 150,\n\t\t13, 208, 181, 254, 242, 184, 178, 182, 111, 101, 143, 191,\n\t\t85, 75, 104, 178, 149, 5, 13, 180, 236, 232, 35, 8, 204, 218,\n\t\t104, 205, 242, 39, 214, 43, 82, 162, 41, 127, 110, 251, 58,\n\t\t217, 15, 98, 229, 12, 103, 215, 30, 186, 102, 213, 233, 107,\n\t\t215, 52, 150, 51, 240, 25, 75, 97, 189, 102, 33, 178, 10,\n\t\t52, 22, 199, 70, 216, 112, 72, 106, 1, 220, 53, 101, 45, 38,\n\t\t205, 6, 118, 7, 90, 218, 217, 30, 87, 246, 55, 42, 4, 156,\n\t\t173, 108, 249, 2, 186, 13, 26, 160, 122, 34, 188, 195, 217,\n\t\t26, 30, 250, 74, 150, 112, 86, 248, 2, 112, 102, 194, 224,\n\t\t197, 186, 92, 130, 8, 32, 55, 61, 118, 122, 120, 165, 140,\n\t\t87, 66, 1, 97, 109, 175, 243, 253, 83, 170, 224, 181, 90,\n\t\t146, 248, 149, 10, 80, 143, 35, 62, 172, 127, 79, 253, 240,\n\t\t75, 45, 242, 223, 191, 255, 253, 239, 255, 123, 254, 246,\n\t\t231, 245, 219, 223, 190, 131, 149, 247, 88, 254, 117, 161,\n\t\t93, 73, 107, 233, 29, 105, 172, 205, 115, 117, 109, 156, 66,\n\t\t163, 93, 103, 152, 93, 211, 234, 218, 108, 104, 170, 238,\n\t\t172, 5, 37, 135, 175, 181, 81, 20, 52, 26, 157, 95, 197, 233,\n\t\t210, 235, 164, 224, 2, 134, 244, 218, 117, 172, 28, 60, 172,\n\t\t2, 163, 45, 135, 152, 136, 213, 99, 217, 194, 41, 180, 116,\n\t\t129, 220, 103, 168, 20, 47, 172, 116, 102, 120, 40, 107, 187,\n\t\t164, 1, 132, 116, 224, 22, 161, 108, 54, 169, 243, 164, 54,\n\t\t104, 179, 237, 5, 176, 224, 53, 167, 52, 177, 38, 166, 50,\n\t\t61, 94, 167, 245, 96, 151, 134, 58, 240, 53, 153, 144, 102,\n\t\t10, 195, 37, 147, 138, 187, 106, 185, 250, 146, 5, 137, 165,\n\t\t153, 107, 113, 125, 125, 212, 245, 100, 227, 72, 117, 89,\n\t\t111, 87, 55, 132, 173, 220, 217, 63, 139, 108, 67, 227, 45,\n\t\t39, 116, 0, 140, 242, 101, 59, 95, 158, 239, 234, 67, 151,\n\t\t152, 12, 32, 101, 162, 32, 59, 47, 193, 179, 212, 231, 177,\n\t\t228, 231, 146, 47, 151, 183, 237, 129, 164, 109, 132, 168,\n\t\t232, 178, 69, 141, 244, 20, 117, 197, 167, 17, 44, 149, 181,\n\t\t244, 105, 129, 3, 139, 90, 237, 229, 70, 42, 25, 127, 37,\n\t\t74, 32, 154, 11, 209, 151, 55, 46, 86, 158, 42, 96, 136, 154,\n\t\t165, 160, 241, 23, 238, 52, 221, 70, 70, 152, 94, 181, 36,\n\t\t194, 232, 135, 10, 36, 55, 116, 138, 131, 14, 244, 84, 180,\n\t\t82, 133, 101, 238, 51, 230, 236, 168, 17, 137, 32, 3, 132,\n\t\t7, 174, 67, 228, 24, 64, 159, 7, 22, 21, 12, 15, 233, 1, 181,\n\t\t177, 9, 212, 242, 2, 114, 106, 180, 235, 175, 63, 244, 57,\n\t\t151, 111, 27, 181, 212, 122, 176, 183, 225, 52, 138, 219,\n\t\t198, 118, 145, 125, 98, 114, 183, 95, 17, 123, 24, 165, 215,\n\t\t165, 132, 117, 179, 165, 40, 64, 22, 186, 92, 68, 98, 95,\n\t\t95, 73, 203, 114, 215, 74, 88, 75, 0, 90, 88, 10, 25, 210,\n\t\t50, 169, 70, 7, 189, 237, 53, 62, 215, 108, 252, 185, 164,\n\t\t173, 211, 173, 82, 218, 172, 191, 119, 148, 54, 213, 176,\n\t\t36, 100, 195, 94, 88, 123, 3, 6, 83, 86, 156, 137, 212, 104,\n\t\t245, 47, 119, 12, 43, 50, 39, 43, 34, 174, 218, 104, 153,\n\t\t234, 178, 237, 128, 152, 217, 31, 151, 116, 56, 201, 232,\n\t\t85, 91, 186, 42, 183, 12, 154, 214, 101, 191, 87, 88, 157,\n\t\t57, 171, 109, 166, 165, 45, 217, 192, 238, 20, 209, 87, 98,\n\t\t13, 21, 89, 26, 237, 194, 197, 194, 164, 128, 86, 83, 159,\n\t\t16, 76, 107, 173, 97, 207, 111, 172, 95, 25, 235, 61, 80,\n\t\t124, 178, 22, 223, 75, 157, 59, 54, 127, 188, 18, 109, 165,\n\t\t101, 41, 141, 217, 64, 177, 70, 164, 25, 145, 181, 88, 95,\n\t\t80, 183, 73, 57, 111, 150, 158, 120, 185, 87, 95, 104, 9,\n\t\t190, 100, 189, 182, 28, 57, 178, 71, 242, 229, 128, 28, 218,\n\t\t93, 130, 123, 208, 136, 168, 252, 203, 235, 180, 166, 137,\n\t\t68, 33, 254, 42, 234, 246, 104, 115, 241, 215, 71, 169, 37,\n\t\t228, 229, 10, 228, 16, 199, 75, 226, 8, 21, 11, 103, 182,\n\t\t183, 85, 220, 103, 197, 237, 59, 242, 99, 112, 84, 94, 75,\n\t\t220, 67, 186, 11, 188, 165, 235, 236, 182, 219, 214, 66, 128,\n\t\t250, 47, 137, 43, 17, 102, 51, 170, 89, 214, 140, 83, 187,\n\t\t164, 60, 243, 203, 228, 147, 238, 148, 151, 116, 218, 85,\n\t\t197, 126, 3, 207, 69, 222, 132, 22, 74, 127, 224, 41, 230,\n\t\t212, 10, 152, 101, 168, 189, 28, 52, 98, 221, 36, 205, 254,\n\t\t18, 1, 217, 32, 16, 170, 218, 204, 47, 96, 191, 193, 198,\n\t\t91, 126, 217, 235, 116, 234, 222, 202, 166, 216, 151, 37,\n\t\t231, 214, 2, 42, 175, 138, 178, 126, 200, 226, 146, 226, 124,\n\t\t53, 235, 88, 19, 19, 235, 26, 8, 65, 101, 98, 159, 101, 254,\n\t\t82, 251, 252, 207, 31, 95, 191, 253, 249, 183, 31, 231, 63,\n\t\t254, 253, 252, 231, 243, 247, 243, 250, 199, 111, 63, 254,\n\t\t249, 93, 11, 229, 248, 175, 181, 80, 194, 227, 30, 18, 83,\n\t\t200, 203, 106, 102, 12, 193, 216, 61, 150, 50, 98, 255, 82,\n\t\t99, 255, 82, 18, 181, 141, 58, 90, 139, 174, 110, 221, 26,\n\t\t162, 43, 176, 121, 195, 155, 118, 62, 158, 27, 117, 96, 89,\n\t\t172, 101, 219, 22, 231, 190, 182, 91, 35, 160, 35, 142, 10,\n\t\t85, 91, 99, 75, 4, 112, 224, 226, 4, 123, 30, 253, 32, 3,\n\t\t5, 72, 201, 80, 17, 82, 3, 4, 119, 34, 106, 209, 215, 71,\n\t\t173, 160, 144, 72, 13, 226, 229, 129, 114, 15, 244, 190, 170,\n\t\t109, 165, 125, 152, 130, 6, 15, 67, 153, 74, 196, 79, 185,\n\t\t226, 178, 243, 17, 207, 16, 42, 160, 230, 29, 52, 49, 134,\n\t\t152, 193, 219, 61, 162, 92, 203, 76, 145, 74, 108, 7, 77,\n\t\t56, 2, 96, 143, 198, 22, 1, 234, 70, 129, 18, 232, 176, 209,\n\t\t218, 235, 116, 44, 100, 123, 232, 203, 0, 16, 36, 170, 129,\n\t\t230, 220, 6, 66, 241, 117, 24, 83, 38, 232, 121, 229, 229,\n\t\t175, 43, 196, 104, 122, 92, 77, 59, 86, 170, 168, 24, 4, 72,\n\t\t244, 60, 90, 211, 86, 136, 49, 194, 64, 57, 223, 114, 8, 155,\n\t\t168, 249, 221, 212, 128, 164, 142, 156, 228, 88, 47, 48, 236,\n\t\t209, 155, 61, 66, 204, 49, 95, 251, 153, 79, 3, 213, 61, 147,\n\t\t99, 3, 84, 132, 33, 10, 151, 43, 76, 122, 38, 63, 216, 194,\n\t\t206, 136, 175, 198, 80, 9, 134, 230, 197, 208, 183, 177, 248,\n\t\t250, 200, 51, 133, 52, 142, 20, 123, 168, 196, 245, 86, 136,\n\t\t132, 174, 226, 208, 240, 255, 5, 16, 164, 249, 176, 234, 189,\n\t\t101, 214, 94, 89, 127, 35, 91, 115, 119, 161, 221, 104, 99,\n\t\t250, 237, 248, 199, 174, 18, 107, 134, 202, 105, 139, 57,\n\t\t77, 24, 8, 132, 227, 179, 173, 72, 244, 129, 130, 38, 86,\n\t\t180, 101, 40, 151, 172, 207, 153, 173, 213, 18, 216, 43, 178,\n\t\t23, 254, 216, 157, 162, 22, 77, 103, 7, 139, 126, 247, 235,\n\t\t35, 47, 89, 182, 188, 234, 229, 195, 61, 46, 41, 203, 129,\n\t\t58, 226, 145, 250, 114, 216, 8, 100, 8, 135, 106, 138, 70,\n\t\t224, 72, 96, 17, 217, 136, 234, 163, 171, 248, 225, 62, 71,\n\t\t69, 59, 169, 111, 219, 80, 20, 88, 207, 188, 142, 253, 152,\n\t\t40, 26, 188, 237, 215, 141, 194, 104, 95, 121, 255, 55, 226,\n\t\t98, 98, 167, 213, 221, 232, 202, 30, 70, 17, 213, 22, 6, 182,\n\t\t163, 227, 15, 100, 20, 197, 192, 79, 6, 247, 198, 77, 232,\n\t\t139, 17, 221, 103, 77, 195, 87, 8, 22, 68, 64, 38, 233, 215,\n\t\t120, 245, 190, 75, 69, 0, 225, 98, 195, 46, 48, 181, 13, 9,\n\t\t37, 39, 51, 1, 81, 180, 158, 217, 130, 252, 218, 239, 104,\n\t\t206, 251, 101, 51, 226, 51, 147, 136, 40, 158, 68, 173, 9,\n\t\t61, 206, 52, 140, 47, 212, 8, 209, 220, 105, 234, 74, 102,\n\t\t226, 203, 88, 17, 100, 17, 21, 60, 124, 118, 46, 177, 161,\n\t\t64, 9, 205, 221, 207, 14, 193, 166, 53, 205, 124, 252, 36,\n\t\t186, 162, 150, 141, 194, 165, 197, 126, 253, 247, 233, 118,\n\t\t148, 75, 155, 73, 197, 232, 96, 81, 89, 178, 185, 82, 49,\n\t\t228, 39, 242, 128, 214, 68, 185, 129, 65, 14, 192, 163, 86,\n\t\t59, 26, 198, 23, 217, 76, 207, 66, 152, 169, 235, 198, 124,\n\t\t124, 219, 178, 55, 128, 242, 155, 72, 227, 135, 199, 69, 169,\n\t\t96, 190, 250, 50, 48, 193, 39, 50, 104, 136, 216, 113, 105,\n\t\t203, 32, 1, 218, 228, 80, 73, 87, 38, 213, 250, 136, 218,\n\t\t86, 143, 72, 162, 31, 95, 231, 84, 112, 146, 200, 118, 218,\n\t\t190, 156, 164, 161, 122, 33, 101, 248, 127, 167, 172, 31,\n\t\t170, 47, 95, 170, 58, 225, 215, 114, 125, 41, 31, 151, 166,\n\t\t71, 247, 107, 174, 161, 21, 112, 139, 97, 209, 175, 187, 231,\n\t\t35, 69, 34, 184, 91, 90, 230, 14, 230, 173, 29, 224, 183,\n\t\t97, 232, 150, 165, 85, 184, 16, 73, 4, 153, 49, 104, 20, 89,\n\t\t79, 181, 180, 215, 114, 141, 143, 92, 214, 162, 210, 163,\n\t\t175, 143, 84, 114, 136, 233, 104, 4, 64, 191, 164, 105, 144,\n\t\t188, 160, 141, 236, 40, 234, 146, 101, 141, 70, 148, 64, 12,\n\t\t213, 44, 10, 210, 99, 125, 241, 85, 47, 92, 139, 29, 172,\n\t\t1, 235, 78, 4, 79, 213, 32, 48, 138, 196, 37, 42, 24, 136,\n\t\t239, 18, 37, 10, 98, 214, 26, 35, 94, 28, 179, 41, 41, 88,\n\t\t108, 179, 206, 200, 161, 240, 0, 136, 225, 147, 141, 128,\n\t\t17, 129, 172, 145, 33, 251, 242, 122, 177, 26, 68, 142, 20,\n\t\t107, 40, 243, 229, 210, 100, 16, 203, 236, 181, 22, 114, 143,\n\t\t83, 247, 198, 203, 105, 110, 192, 236, 32, 175, 164, 20, 54,\n\t\t96, 87, 157, 115, 188, 172, 47, 184, 177, 213, 14, 37, 56,\n\t\t80, 3, 61, 134, 217, 190, 62, 82, 203, 161, 31, 163, 195,\n\t\t246, 188, 172, 209, 222, 192, 17, 205, 193, 54, 45, 53, 21,\n\t\t221, 160, 81, 94, 189, 201, 4, 126, 32, 162, 108, 83, 194,\n\t\t112, 227, 26, 202, 138, 196, 182, 133, 161, 62, 150, 202,\n\t\t172, 79, 95, 106, 77, 147, 75, 85, 91, 250, 134, 185, 190,\n\t\t198, 157, 69, 60, 163, 53, 43, 175, 251, 143, 211, 36, 112,\n\t\t97, 254, 147, 116, 191, 157, 224, 136, 214, 80, 159, 231,\n\t\t94, 225, 89, 29, 154, 51, 59, 157, 4, 130, 33, 199, 198, 225,\n\t\t179, 159, 62, 21, 87, 111, 127, 157, 188, 222, 184, 173, 179,\n\t\t237, 216, 106, 232, 10, 58, 15, 188, 192, 9, 126, 98, 168,\n\t\t153, 79, 125, 178, 107, 155, 86, 162, 218, 13, 13, 150, 166,\n\t\t166, 117, 83, 116, 237, 209, 117, 254, 24, 245, 169, 156,\n\t\t27, 76, 227, 169, 166, 82, 236, 209, 94, 63, 75, 237, 211,\n\t\t140, 58, 95, 92, 166, 195, 211, 134, 95, 221, 69, 209, 115,\n\t\t194, 250, 242, 120, 173, 191, 242, 212, 45, 193, 162, 248,\n\t\t14, 223, 221, 206, 121, 111, 34, 4, 218, 235, 78, 53, 71,\n\t\t145, 224, 150, 229, 141, 149, 104, 243, 20, 209, 76, 43, 110,\n\t\t98, 16, 190, 84, 42, 172, 75, 11, 234, 122, 66, 12, 52, 179,\n\t\t113, 28, 250, 12, 153, 12, 19, 196, 252, 1, 92, 253, 146,\n\t\t129, 88, 98, 136, 159, 43, 202, 196, 153, 204, 27, 20, 135,\n\t\t220, 101, 92, 222, 118, 229, 167, 61, 201, 227, 42, 186, 60,\n\t\t68, 161, 26, 134, 2, 127, 21, 21, 7, 107, 154, 132, 213, 208,\n\t\t112, 95, 238, 163, 142, 247, 5, 11, 56, 222, 79, 45, 157,\n\t\t191, 24, 211, 91, 76, 212, 72, 20, 200, 231, 208, 136, 133,\n\t\t111, 161, 20, 117, 134, 108, 19, 221, 118, 161, 15, 239, 203,\n\t\t54, 90, 69, 128, 176, 60, 111, 227, 142, 63, 100, 58, 39,\n\t\t135, 86, 38, 216, 42, 213, 249, 211, 195, 199, 219, 196, 233,\n\t\t67, 46, 63, 21, 113, 201, 52, 213, 41, 35, 178, 23, 45, 64,\n\t\t133, 118, 239, 100, 223, 161, 32, 252, 171, 187, 100, 178,\n\t\t83, 120, 109, 164, 89, 134, 203, 98, 159, 226, 15, 162, 130,\n\t\t231, 235, 35, 47, 57, 149, 161, 19, 152, 17, 80, 209, 178,\n\t\t9, 177, 146, 2, 81, 186, 61, 151, 20, 88, 64, 205, 80, 10,\n\t\t166, 153, 203, 146, 133, 9, 145, 55, 179, 134, 82, 36, 254,\n\t\t225, 114, 174, 250, 178, 95, 218, 134, 16, 52, 88, 222, 141,\n\t\t50, 161, 103, 50, 129, 43, 182, 146, 51, 145, 252, 147, 76,\n\t\t188, 238, 48, 42, 196, 150, 199, 79, 89, 29, 160, 66, 190,\n\t\t153, 69, 114, 170, 244, 253, 60, 239, 174, 142, 255, 58, 191,\n\t\t127, 171, 67, 183, 50, 7, 71, 9, 197, 235, 190, 252, 196,\n\t\t36, 8, 216, 251, 50, 241, 93, 156, 189, 246, 65, 61, 242,\n\t\t211, 202, 167, 78, 191, 131, 231, 14, 116, 214, 238, 130,\n\t\t211, 103, 194, 159, 104, 75, 88, 67, 97, 208, 145, 82, 84,\n\t\t172, 189, 28, 110, 226, 229, 167, 33, 43, 155, 90, 65, 199,\n\t\t167, 123, 145, 148, 111, 92, 27, 49, 125, 137, 79, 95, 255,\n\t\t143, 203, 94, 39, 222, 31, 140, 119, 186, 13, 21, 145, 138,\n\t\t109, 179, 100, 47, 230, 81, 100, 174, 84, 176, 168, 182, 213,\n\t\t152, 186, 218, 129, 110, 199, 108, 91, 199, 206, 184, 170,\n\t\t217, 227, 173, 203, 248, 125, 35, 112, 106, 109, 112, 108,\n\t\t217, 154, 57, 239, 130, 222, 93, 237, 216, 150, 68, 178, 247,\n\t\t251, 110, 164, 109, 41, 190, 213, 174, 221, 195, 222, 243,\n\t\t244, 205, 207, 205, 231, 114, 94, 68, 185, 74, 138, 130, 49,\n\t\t45, 59, 125, 196, 249, 250, 121, 98, 60, 4, 160, 131, 169,\n\t\t171, 107, 187, 153, 186, 86, 108, 25, 254, 197, 222, 223,\n\t\t40, 126, 63, 45, 94, 211, 126, 91, 93, 19, 165, 0, 133, 9,\n\t\t155, 164, 14, 27, 237, 47, 238, 172, 26, 195, 182, 75, 13,\n\t\t213, 149, 156, 241, 226, 233, 152, 44, 199, 25, 161, 14, 96,\n\t\t40, 160, 110, 157, 27, 75, 194, 72, 40, 93, 55, 49, 9, 16,\n\t\t92, 97, 214, 169, 209, 181, 189, 175, 127, 77, 249, 46, 131,\n\t\t146, 86, 143, 104, 202, 22, 117, 134, 116, 228, 155, 38, 233,\n\t\t212, 10, 125, 95, 239, 170, 97, 246, 251, 229, 205, 108, 162,\n\t\t80, 23, 145, 238, 148, 207, 176, 250, 85, 127, 97, 0, 13,\n\t\t125, 10, 47, 247, 183, 162, 42, 209, 204, 52, 86, 83, 124,\n\t\t250, 23, 162, 75, 220, 155, 34, 230, 216, 251, 137, 10, 104,\n\t\t204, 183, 93, 95, 213, 93, 223, 45, 114, 158, 127, 86, 22,\n\t\t147, 159, 196, 217, 95, 27, 139, 46, 191, 111, 114, 136, 27,\n\t\t97, 91, 218, 14, 117, 55, 223, 166, 253, 77, 35, 113, 203,\n\t\t40, 71, 91, 181, 114, 103, 131, 225, 181, 9, 176, 77, 250,\n\t\t23, 55, 185, 11, 178, 220, 238, 198, 170, 237, 208, 243, 182,\n\t\t172, 254, 122, 10, 203, 166, 20, 83, 19, 198, 194, 60, 46,\n\t\t92, 45, 251, 106, 194, 245, 245, 230, 25, 170, 133, 230, 134,\n\t\t153, 255, 237, 246, 76, 138, 107, 178, 101, 24, 102, 203,\n\t\t163, 97, 46, 38, 93, 231, 200, 80, 218, 90, 159, 179, 134,\n\t\t240, 223, 253, 167, 213, 142, 252, 139, 61, 5, 214, 105, 53,\n\t\t57, 117, 57, 210, 251, 246, 117, 146, 146, 102, 226, 41, 59,\n\t\t190, 62, 74, 108, 161, 13, 4, 207, 238, 242, 141, 202, 215,\n\t\t44, 13, 197, 59, 176, 207, 160, 118, 18, 51, 194, 139, 99,\n\t\t155, 206, 174, 182, 133, 170, 106, 119, 178, 212, 8, 191,\n\t\t132, 20, 19, 7, 136, 248, 240, 226, 67, 3, 36, 27, 84, 39,\n\t\t69, 37, 13, 225, 140, 190, 252, 189, 85, 1, 61, 126, 184,\n\t\t224, 139, 219, 80, 23, 67, 251, 215, 117, 32, 219, 51, 48,\n\t\t159, 226, 231, 133, 113, 197, 27, 83, 169, 134, 121, 16, 71,\n\t\t217, 83, 25, 173, 22, 194, 181, 32, 127, 218, 173, 112, 166,\n\t\t238, 247, 49, 34, 192, 59, 86, 235, 220, 124, 120, 170, 225,\n\t\t148, 115, 22, 220, 76, 74, 74, 115, 22, 35, 98, 152, 74, 196,\n\t\t144, 10, 161, 70, 109, 6, 207, 170, 25, 14, 221, 32, 175,\n\t\t115, 71, 164, 244, 140, 175, 51, 149, 155, 151, 52, 77, 195,\n\t\t232, 191, 153, 145, 233, 163, 232, 252, 38, 179, 202, 117,\n\t\t24, 175, 13, 240, 215, 180, 102, 197, 171, 23, 182, 165, 49,\n\t\t152, 249, 235, 120, 156, 141, 44, 119, 54, 227, 71, 144, 132,\n\t\t236, 4, 236, 97, 75, 241, 86, 183, 245, 151, 171, 109, 232,\n\t\t157, 18, 216, 123, 212, 65, 227, 60, 53, 244, 184, 253, 147,\n\t\t50, 83, 114, 55, 42, 46, 125, 91, 181, 249, 135, 226, 87,\n\t\t100, 235, 136, 82, 114, 64, 203, 112, 11, 36, 8, 245, 48,\n\t\t134, 226, 0, 250, 178, 177, 19, 53, 164, 119, 225, 160, 102,\n\t\t55, 34, 92, 45, 150, 53, 95, 190, 11, 81, 221, 225, 204, 35,\n\t\t230, 179, 155, 23, 69, 180, 10, 79, 112, 67, 169, 8, 120,\n\t\t72, 233, 4, 21, 240, 175, 144, 137, 90, 6, 70, 253, 229, 111,\n\t\t225, 178, 36, 110, 57, 254, 45, 152, 111, 251, 153, 70, 239,\n\t\t95, 72, 180, 11, 125, 69, 88, 225, 211, 164, 139, 151, 39,\n\t\t52, 175, 2, 229, 122, 166, 106, 185, 188, 62, 41, 105, 233,\n\t\t67, 85, 152, 32, 37, 50, 181, 28, 69, 13, 75, 80, 148, 25,\n\t\t90, 62, 82, 45, 161, 39, 139, 249, 105, 168, 248, 182, 71,\n\t\t53, 66, 163, 80, 154, 196, 53, 209, 160, 179, 203, 180, 90,\n\t\t137, 234, 246, 118, 124, 109, 210, 188, 229, 206, 179, 182,\n\t\t105, 67, 99, 121, 60, 177, 27, 175, 151, 158, 121, 151, 140,\n\t\t132, 119, 3, 88, 59, 226, 61, 38, 6, 167, 149, 101, 104, 188,\n\t\t59, 55, 133, 198, 86, 177, 246, 114, 221, 102, 98, 6, 69,\n\t\t63, 102, 129, 49, 223, 53, 21, 140, 172, 155, 15, 170, 147,\n\t\t83, 56, 225, 55, 96, 92, 165, 240, 28, 186, 33, 187, 10, 31,\n\t\t27, 126, 87, 109, 6, 159, 167, 255, 254, 48, 48, 90, 111,\n\t\t139, 64, 174, 108, 137, 129, 110, 76, 232, 170, 224, 239,\n\t\t190, 72, 213, 162, 164, 165, 197, 177, 239, 190, 159, 121,\n\t\t153, 64, 199, 206, 122, 92, 231, 112, 228, 121, 26, 211, 169,\n\t\t35, 213, 7, 120, 53, 176, 25, 171, 219, 202, 227, 79, 141,\n\t\t252, 127, 125, 148, 22, 67, 35, 79, 104, 26, 151, 153, 147,\n\t\t176, 26, 80, 225, 172, 186, 219, 197, 158, 214, 33, 8, 145,\n\t\t167, 47, 91, 10, 61, 56, 184, 72, 117, 162, 155, 106, 49,\n\t\t251, 245, 10, 26, 184, 189, 206, 109, 98, 155, 99, 80, 97,\n\t\t152, 97, 209, 89, 9, 232, 208, 48, 32, 150, 53, 252, 36, 79,\n\t\t67, 52, 21, 215, 102, 179, 90, 167, 151, 27, 60, 40, 157,\n\t\t170, 95, 31, 53, 166, 208, 199, 255, 159, 184, 55, 79, 146,\n\t\t229, 54, 210, 7, 255, 207, 83, 196, 5, 2, 6, 56, 118, 155,\n\t\t51, 212, 33, 168, 208, 211, 36, 231, 151, 77, 202, 88, 84,\n\t\t218, 116, 157, 126, 204, 63, 95, 128, 202, 122, 124, 162,\n\t\t90, 221, 61, 102, 162, 94, 70, 84, 44, 8, 44, 14, 95, 62,\n\t\t255, 28, 160, 206, 58, 55, 13, 99, 219, 73, 226, 231, 150,\n\t\t56, 130, 92, 9, 140, 157, 73, 151, 123, 83, 232, 10, 81, 165,\n\t\t129, 212, 83, 161, 155, 0, 85, 47, 66, 232, 54, 128, 14, 118,\n\t\t5, 36, 94, 53, 81, 155, 232, 42, 224, 54, 31, 132, 175, 254,\n\t\t167, 61, 3, 223, 172, 1, 28, 245, 30, 74, 220, 6, 170, 232,\n\t\t10, 212, 101, 83, 104, 4, 92, 249, 216, 204, 70, 89, 41, 207,\n\t\t165, 55, 250, 186, 221, 54, 63, 139, 79, 232, 212, 115, 227,\n\t\t92, 55, 85, 119, 194, 172, 93, 123, 81, 140, 116, 43, 168,\n\t\t47, 189, 224, 212, 158, 22, 212, 50, 62, 250, 138, 28, 26,\n\t\t104, 185, 135, 177, 118, 43, 89, 99, 55, 46, 61, 189, 27,\n\t\t85, 31, 28, 207, 239, 133, 88, 179, 165, 136, 106, 213, 213,\n\t\t205, 184, 19, 239, 19, 61, 22, 19, 165, 216, 16, 127, 96,\n\t\t191, 139, 124, 110, 94, 31, 94, 27, 61, 224, 78, 94, 27, 237,\n\t\t199, 91, 153, 35, 196, 142, 186, 249, 32, 185, 50, 136, 39,\n\t\t25, 202, 121, 154, 116, 54, 90, 144, 105, 86, 83, 21, 141,\n\t\t248, 170, 139, 157, 87, 91, 187, 204, 53, 49, 1, 109, 54,\n\t\t107, 95, 221, 30, 75, 182, 170, 48, 188, 76, 195, 56, 139,\n\t\t146, 110, 38, 169, 227, 46, 41, 231, 154, 220, 129, 90, 127,\n\t\t231, 144, 0, 179, 187, 173, 149, 189, 158, 151, 156, 72, 43,\n\t\t43, 244, 228, 252, 237, 130, 66, 224, 233, 156, 102, 58, 70,\n\t\t145, 144, 141, 215, 155, 106, 6, 36, 48, 10, 147, 20, 21,\n\t\t148, 107, 90, 167, 234, 118, 143, 21, 120, 91, 26, 113, 51,\n\t\t66, 111, 233, 226, 166, 244, 144, 108, 153, 9, 74, 195, 230,\n\t\t176, 136, 74, 36, 57, 90, 133, 71, 133, 90, 157, 70, 229,\n\t\t140, 108, 113, 188, 182, 35, 237, 66, 194, 88, 26, 240, 214,\n\t\t25, 249, 241, 86, 169, 7, 182, 41, 83, 136, 253, 177, 230,\n\t\t35, 254, 250, 92, 30, 88, 211, 205, 155, 7, 11, 83, 152, 25,\n\t\t121, 32, 86, 177, 77, 23, 184, 62, 227, 114, 197, 255, 220,\n\t\t236, 53, 181, 49, 108, 10, 123, 15, 232, 160, 222, 214, 188,\n\t\t219, 60, 1, 50, 203, 204, 253, 228, 163, 61, 12, 108, 107,\n\t\t5, 54, 80, 53, 10, 253, 55, 148, 192, 243, 116, 68, 131, 135,\n\t\t65, 204, 177, 241, 201, 138, 217, 76, 227, 57, 55, 10, 144,\n\t\t53, 68, 197, 124, 153, 219, 25, 217, 102, 179, 25, 74, 78,\n\t\t234, 65, 58, 183, 172, 50, 146, 75, 158, 45, 106, 166, 159,\n\t\t105, 212, 234, 46, 213, 86, 196, 80, 36, 132, 206, 254, 221,\n\t\t93, 239, 217, 133, 201, 170, 222, 90, 242, 147, 244, 152,\n\t\t245, 139, 21, 201, 38, 101, 245, 181, 226, 58, 94, 248, 192,\n\t\t171, 237, 232, 110, 250, 241, 86, 203, 8, 248, 130, 30, 122,\n\t\t122, 152, 128, 83, 201, 254, 93, 167, 151, 153, 14, 219, 168,\n\t\t136, 84, 88, 65, 94, 117, 52, 235, 102, 126, 91, 70, 249,\n\t\t242, 48, 239, 238, 48, 119, 140, 116, 77, 83, 85, 137, 102,\n\t\t60, 204, 98, 61, 165, 114, 44, 17, 255, 69, 106, 47, 137,\n\t\t94, 96, 143, 97, 112, 72, 179, 64, 196, 111, 180, 194, 170,\n\t\t162, 194, 111, 98, 68, 191, 251, 123, 238, 199, 135, 203,\n\t\t167, 87, 151, 206, 39, 15, 193, 210, 165, 179, 21, 160, 54,\n\t\t93, 93, 7, 126, 219, 26, 196, 215, 107, 163, 87, 21, 100,\n\t\t217, 214, 42, 198, 196, 176, 126, 85, 237, 226, 238, 223,\n\t\t234, 216, 96, 210, 71, 147, 91, 32, 74, 103, 234, 197, 41,\n\t\t101, 198, 126, 188, 213, 94, 195, 96, 33, 152, 194, 236, 143,\n\t\t174, 152, 98, 160, 20, 222, 225, 124, 141, 40, 45, 36, 116,\n\t\t250, 48, 230, 96, 60, 221, 128, 231, 22, 68, 113, 209, 254,\n\t\t244, 218, 0, 89, 114, 134, 124, 227, 214, 56, 239, 101, 37,\n\t\t140, 207, 133, 233, 81, 224, 38, 162, 1, 77, 153, 176, 64,\n\t\t196, 169, 182, 220, 195, 167, 178, 14, 201, 99, 105, 201,\n\t\t26, 106, 125, 119, 143, 189, 41, 143, 150, 41, 97, 64, 141,\n\t\t107, 120, 57, 16, 11, 219, 234, 190, 111, 11, 198, 142, 229,\n\t\t211, 226, 114, 223, 116, 13, 153, 16, 233, 59, 252, 132, 40,\n\t\t132, 23, 219, 96, 178, 116, 216, 200, 107, 240, 36, 168, 5,\n\t\t158, 52, 225, 66, 197, 204, 142, 179, 112, 210, 114, 67, 164,\n\t\t84, 163, 252, 244, 153, 167, 27, 243, 199, 91, 227, 29, 171,\n\t\t29, 105, 80, 64, 217, 223, 229, 31, 21, 1, 189, 111, 220,\n\t\t89, 252, 14, 11, 108, 4, 27, 94, 234, 22, 35, 16, 51, 7, 55,\n\t\t6, 253, 76, 161, 183, 35, 229, 17, 144, 233, 55, 145, 121,\n\t\t159, 103, 24, 25, 128, 79, 148, 198, 48, 125, 114, 76, 27,\n\t\t157, 20, 36, 128, 14, 72, 238, 153, 5, 133, 255, 48, 53, 94,\n\t\t49, 70, 64, 217, 73, 119, 181, 10, 139, 233, 225, 197, 118,\n\t\t73, 98, 209, 151, 123, 92, 85, 137, 180, 224, 133, 126, 254,\n\t\t231, 195, 165, 150, 233, 212, 127, 63, 183, 128, 155, 117,\n\t\t136, 7, 43, 117, 226, 221, 30, 167, 65, 32, 8, 148, 211, 249,\n\t\t225, 180, 177, 218, 210, 203, 32, 123, 7, 109, 217, 82, 208,\n\t\t233, 124, 119, 107, 142, 83, 102, 5, 124, 53, 37, 37, 164,\n\t\t192, 116, 75, 3, 80, 135, 127, 118, 244, 150, 249, 184, 36,\n\t\t113, 64, 183, 181, 7, 22, 17, 34, 128, 41, 212, 71, 157, 6,\n\t\t174, 39, 197, 2, 110, 80, 25, 253, 246, 164, 89, 106, 58,\n\t\t73, 111, 23, 153, 197, 83, 181, 19, 44, 83, 54, 9, 79, 238,\n\t\t166, 151, 74, 197, 148, 135, 251, 40, 132, 56, 254, 113, 230,\n\t\t168, 213, 94, 68, 87, 145, 151, 96, 196, 84, 24, 174, 174,\n\t\t42, 82, 190, 250, 225, 203, 203, 86, 224, 99, 22, 153, 241,\n\t\t52, 225, 163, 123, 108, 176, 36, 89, 120, 143, 47, 126, 225,\n\t\t135, 53, 193, 213, 142, 135, 131, 200, 52, 252, 255, 56, 93,\n\t\t179, 145, 237, 130, 213, 186, 26, 26, 32, 119, 17, 227, 15,\n\t\t32, 188, 198, 181, 217, 194, 121, 184, 193, 83, 135, 84, 31,\n\t\t59, 91, 20, 17, 211, 72, 99, 185, 77, 179, 74, 91, 179, 19,\n\t\t154, 25, 219, 171, 21, 248, 52, 119, 190, 8, 28, 91, 233,\n\t\t6, 69, 123, 57, 126, 248, 174, 219, 45, 141, 132, 154, 9,\n\t\t162, 161, 69, 128, 168, 43, 202, 38, 77, 117, 244, 85, 77,\n\t\t41, 198, 128, 247, 217, 31, 46, 206, 116, 15, 187, 189, 155,\n\t\t180, 114, 87, 158, 142, 4, 91, 2, 94, 66, 101, 149, 170, 214,\n\t\t148, 82, 82, 60, 99, 74, 112, 251, 31, 231, 28, 178, 244,\n\t\t76, 60, 170, 76, 123, 184, 45, 59, 179, 96, 100, 179, 229,\n\t\t210, 20, 82, 35, 104, 205, 31, 153, 114, 143, 162, 89, 213,\n\t\t67, 50, 168, 174, 44, 197, 236, 0, 252, 70, 74, 21, 217, 247,\n\t\t181, 38, 177, 79, 199, 97, 117, 73, 42, 130, 76, 128, 60,\n\t\t108, 146, 59, 253, 112, 125, 225, 84, 69, 251, 118, 57, 189,\n\t\t229, 202, 73, 158, 86, 29, 67, 42, 102, 184, 28, 174, 19,\n\t\t106, 252, 101, 213, 77, 207, 225, 216, 196, 224, 140, 111,\n\t\t122, 70, 98, 252, 18, 218, 121, 108, 111, 85, 223, 136, 122,\n\t\t165, 76, 193, 38, 18, 109, 214, 114, 46, 243, 12, 66, 99,\n\t\t81, 148, 198, 194, 209, 11, 42, 214, 135, 162, 59, 206, 228,\n\t\t251, 155, 83, 150, 24, 90, 202, 4, 81, 177, 216, 172, 249,\n\t\t212, 23, 103, 89, 81, 164, 114, 180, 128, 116, 212, 210, 74,\n\t\t3, 202, 244, 195, 65, 112, 170, 180, 46, 219, 75, 64, 199,\n\t\t77, 200, 226, 115, 179, 203, 165, 184, 33, 178, 221, 40, 93,\n\t\t86, 62, 49, 139, 230, 13, 155, 60, 11, 162, 18, 62, 156, 50,\n\t\t37, 61, 76, 3, 21, 107, 179, 18, 108, 206, 182, 237, 226,\n\t\t75, 192, 26, 97, 31, 103, 57, 193, 166, 89, 161, 246, 114,\n\t\t76, 46, 127, 196, 242, 0, 200, 156, 72, 132, 200, 136, 176,\n\t\t255, 46, 158, 141, 34, 103, 188, 170, 45, 143, 173, 16, 169,\n\t\t91, 85, 117, 158, 85, 146, 22, 165, 154, 227, 195, 141, 123,\n\t\t222, 177, 33, 31, 164, 40, 162, 202, 187, 41, 180, 224, 230,\n\t\t95, 122, 156, 163, 106, 42, 141, 138, 183, 43, 15, 249, 92,\n\t\t179, 196, 250, 148, 252, 76, 31, 109, 217, 31, 21, 63, 120,\n\t\t241, 142, 87, 182, 48, 101, 26, 188, 143, 9, 119, 11, 128,\n\t\t120, 51, 225, 56, 209, 12, 141, 62, 222, 40, 242, 226, 58,\n\t\t104, 214, 80, 251, 237, 177, 213, 107, 149, 122, 215, 93,\n\t\t189, 219, 166, 8, 36, 205, 150, 115, 232, 164, 169, 50, 114,\n\t\t252, 176, 56, 184, 67, 105, 214, 234, 249, 20, 7, 209, 98,\n\t\t52, 230, 9, 123, 61, 243, 241, 150, 75, 15, 84, 14, 170, 44,\n\t\t198, 32, 211, 5, 179, 153, 161, 230, 159, 134, 246, 102, 77,\n\t\t56, 205, 122, 53, 79, 68, 169, 71, 182, 196, 80, 94, 166,\n\t\t130, 125, 20, 101, 107, 1, 86, 74, 62, 50, 247, 76, 190, 93,\n\t\t68, 37, 76, 225, 12, 98, 197, 132, 39, 120, 70, 143, 18, 43,\n\t\t44, 60, 35, 122, 144, 226, 22, 73, 184, 225, 180, 182, 111,\n\t\t178, 242, 252, 235, 187, 116, 84, 63, 43, 80, 30, 22, 143,\n\t\t175, 87, 91, 104, 89, 118, 158, 167, 76, 104, 100, 192, 180,\n\t\t128, 106, 165, 220, 130, 132, 204, 220, 220, 143, 19, 20,\n\t\t158, 93, 15, 81, 151, 22, 217, 88, 220, 176, 152, 67, 155,\n\t\t107, 241, 158, 137, 151, 96, 89, 98, 241, 92, 42, 188, 107,\n\t\t252, 102, 181, 185, 49, 110, 49, 101, 243, 100, 42, 230, 83,\n\t\t197, 242, 211, 26, 238, 158, 10, 3, 8, 212, 38, 74, 151, 161,\n\t\t75, 147, 166, 187, 201, 33, 91, 235, 188, 98, 15, 194, 84,\n\t\t1, 55, 139, 86, 232, 43, 203, 185, 37, 180, 0, 185, 90, 77,\n\t\t58, 13, 166, 225, 76, 19, 100, 190, 136, 172, 184, 224, 205,\n\t\t83, 107, 13, 156, 230, 204, 82, 143, 235, 109, 21, 23, 158,\n\t\t90, 136, 218, 40, 46, 178, 230, 71, 169, 253, 116, 168, 168,\n\t\t191, 92, 35, 115, 37, 109, 88, 158, 172, 253, 201, 47, 81,\n\t\t189, 224, 227, 173, 180, 142, 239, 108, 35, 228, 43, 47, 18,\n\t\t13, 125, 66, 135, 7, 213, 3, 233, 135, 107, 206, 220, 49,\n\t\t67, 220, 136, 90, 134, 213, 21, 150, 225, 8, 62, 213, 95,\n\t\t221, 98, 16, 175, 39, 248, 59, 234, 242, 108, 154, 25, 228,\n\t\t239, 218, 186, 2, 185, 207, 30, 23, 212, 55, 40, 224, 199,\n\t\t189, 215, 6, 16, 52, 176, 119, 153, 124, 111, 15, 185, 62,\n\t\t189, 12, 140, 7, 230, 28, 210, 231, 189, 163, 42, 167, 206,\n\t\t220, 109, 113, 108, 232, 12, 159, 238, 209, 131, 215, 126,\n\t\t74, 236, 196, 219, 178, 125, 119, 48, 163, 35, 32, 228, 91,\n\t\t95, 2, 134, 63, 76, 61, 249, 253, 254, 243, 47, 255, 231,\n\t\t252, 251, 183, 159, 254, 207, 107, 214, 124, 207, 233, 75,\n\t\t214, 124, 111, 150, 247, 216, 106, 40, 135, 114, 138, 61,\n\t\t78, 138, 45, 16, 170, 78, 8, 41, 64, 44, 129, 213, 228, 202,\n\t\t107, 154, 149, 200, 69, 186, 253, 160, 204, 151, 150, 216,\n\t\t67, 121, 200, 109, 39, 223, 55, 31, 85, 178, 190, 143, 89,\n\t\t31, 121, 163, 196, 252, 120, 227, 37, 154, 142, 33, 196, 51,\n\t\t143, 84, 102, 104, 200, 24, 3, 221, 254, 131, 88, 215, 57,\n\t\t206, 18, 75, 96, 37, 146, 16, 218, 140, 70, 202, 3, 161, 125,\n\t\t228, 50, 165, 33, 72, 229, 19, 231, 48, 133, 10, 114, 2, 222,\n\t\t213, 127, 216, 67, 191, 125, 251, 233, 250, 253, 219, 63,\n\t\t126, 251, 245, 239, 95, 50, 67, 235, 95, 255, 184, 135, 168,\n\t\t198, 208, 14, 124, 109, 123, 144, 194, 39, 31, 167, 49, 87,\n\t\t107, 234, 214, 163, 43, 101, 205, 106, 51, 57, 75, 55, 238,\n\t\t48, 64, 131, 30, 58, 77, 211, 246, 145, 86, 183, 193, 158,\n\t\t185, 149, 23, 176, 151, 10, 229, 134, 156, 103, 185, 94, 66,\n\t\t182, 182, 37, 231, 83, 242, 139, 193, 211, 225, 13, 84, 102,\n\t\t152, 213, 62, 52, 232, 187, 205, 187, 57, 151, 216, 191, 214,\n\t\t60, 99, 203, 209, 246, 17, 101, 64, 185, 123, 187, 140, 36,\n\t\t56, 58, 33, 118, 86, 179, 211, 142, 89, 85, 17, 179, 221,\n\t\t157, 178, 206, 55, 228, 188, 96, 169, 217, 213, 114, 102,\n\t\t209, 218, 1, 75, 141, 139, 226, 186, 44, 59, 209, 188, 193,\n\t\t94, 229, 182, 103, 17, 119, 239, 206, 189, 103, 20, 241, 202,\n\t\t132, 182, 221, 193, 199, 247, 85, 106, 194, 95, 227, 141,\n\t\t41, 78, 104, 228, 141, 75, 202, 152, 52, 140, 80, 210, 56,\n\t\t191, 86, 245, 7, 255, 112, 233, 251, 251, 233, 60, 169, 37,\n\t\t84, 201, 45, 208, 143, 80, 178, 37, 109, 16, 40, 196, 156,\n\t\t189, 209, 135, 209, 41, 45, 251, 118, 124, 123, 183, 19, 139,\n\t\t59, 172, 186, 74, 136, 75, 158, 96, 143, 210, 90, 128, 197,\n\t\t57, 189, 246, 75, 142, 151, 91, 222, 245, 120, 177, 13, 239,\n\t\t239, 132, 147, 198, 84, 103, 120, 198, 144, 209, 169, 183,\n\t\t200, 225, 93, 191, 245, 227, 45, 21, 10, 89, 182, 148, 6,\n\t\t218, 229, 53, 67, 204, 214, 216, 102, 12, 31, 63, 205, 1,\n\t\t44, 244, 231, 97, 243, 213, 172, 43, 247, 127, 65, 220, 37,\n\t\t73, 80, 100, 61, 171, 41, 117, 126, 223, 216, 222, 244, 84,\n\t\t242, 116, 96, 46, 234, 177, 154, 97, 190, 64, 229, 103, 195,\n\t\t61, 119, 173, 36, 253, 47, 182, 253, 79, 55, 93, 109, 27,\n\t\t112, 154, 98, 154, 40, 215, 229, 237, 127, 236, 133, 201,\n\t\t94, 168, 204, 145, 90, 118, 229, 227, 45, 197, 200, 67, 53,\n\t\t90, 24, 237, 49, 28, 40, 42, 4, 64, 27, 227, 240, 70, 43,\n\t\t172, 4, 115, 231, 86, 102, 65, 179, 64, 229, 196, 93, 169,\n\t\t196, 164, 218, 132, 85, 159, 139, 33, 198, 42, 38, 61, 175,\n\t\t239, 84, 135, 156, 180, 172, 108, 22, 15, 82, 196, 223, 79,\n\t\t194, 245, 142, 34, 100, 146, 148, 19, 217, 18, 208, 130, 213,\n\t\t8, 11, 176, 245, 195, 214, 214, 39, 142, 55, 202, 188, 123,\n\t\t40, 11, 236, 211, 137, 2, 191, 118, 149, 51, 155, 126, 234,\n\t\t220, 187, 87, 37, 248, 58, 177, 178, 221, 97, 51, 75, 134,\n\t\t67, 167, 214, 237, 203, 220, 210, 165, 190, 207, 195, 123,\n\t\t146, 199, 95, 110, 180, 110, 34, 231, 120, 21, 133, 79, 43,\n\t\t39, 35, 68, 109, 70, 171, 234, 18, 48, 170, 115, 165, 47,\n\t\t143, 148, 104, 171, 19, 181, 84, 34, 155, 57, 207, 161, 21,\n\t\t27, 226, 42, 215, 65, 160, 67, 118, 81, 31, 21, 86, 141, 19,\n\t\t119, 147, 249, 79, 195, 207, 220, 245, 196, 205, 25, 224,\n\t\t162, 51, 166, 37, 19, 85, 159, 158, 241, 241, 150, 122, 59,\n\t\t136, 232, 225, 52, 218, 108, 101, 10, 49, 238, 103, 150, 104,\n\t\t39, 65, 83, 233, 178, 69, 89, 112, 230, 126, 42, 105, 98,\n\t\t114, 190, 255, 189, 60, 59, 181, 2, 46, 14, 158, 52, 163,\n\t\t214, 2, 205, 44, 183, 70, 41, 109, 39, 129, 229, 215, 106,\n\t\t230, 60, 147, 210, 0, 45, 78, 237, 45, 1, 115, 220, 115, 46,\n\t\t136, 55, 142, 138, 148, 38, 17, 107, 73, 101, 184, 18, 172,\n\t\t223, 252, 47, 103, 50, 210, 192, 24, 82, 146, 119, 241, 11,\n\t\t8, 169, 118, 161, 163, 28, 215, 169, 207, 243, 231, 219, 9,\n\t\t249, 24, 164, 181, 75, 218, 32, 127, 75, 221, 10, 169, 203,\n\t\t39, 116, 212, 78, 180, 47, 184, 159, 121, 159, 144, 74, 218,\n\t\t168, 19, 98, 165, 96, 160, 203, 30, 41, 29, 171, 187, 83,\n\t\t174, 146, 199, 42, 85, 9, 147, 102, 35, 228, 80, 224, 0, 89,\n\t\t1, 112, 28, 163, 12, 221, 148, 122, 143, 128, 3, 73, 161,\n\t\t243, 115, 43, 81, 191, 199, 188, 181, 254, 223, 189, 105,\n\t\t125, 129, 40, 170, 63, 116, 146, 148, 244, 19, 200, 252, 227,\n\t\t134, 177, 99, 25, 146, 114, 235, 235, 20, 136, 40, 71, 41,\n\t\t59, 169, 49, 219, 202, 172, 109, 240, 194, 65, 206, 114, 70,\n\t\t124, 228, 227, 45, 33, 15, 41, 177, 214, 121, 87, 74, 237,\n\t\t7, 72, 95, 120, 81, 208, 52, 102, 210, 202, 91, 16, 73, 153,\n\t\t6, 47, 225, 188, 45, 127, 11, 145, 238, 162, 242, 182, 237,\n\t\t216, 244, 105, 199, 126, 17, 177, 182, 171, 100, 101, 125,\n\t\t84, 202, 202, 63, 117, 211, 146, 222, 34, 46, 232, 171, 152,\n\t\t88, 59, 145, 236, 195, 255, 83, 27, 67, 15, 85, 202, 107,\n\t\t112, 151, 221, 222, 42, 234, 18, 231, 144, 81, 145, 173, 128,\n\t\t133, 246, 83, 209, 127, 45, 61, 135, 2, 109, 68, 212, 196,\n\t\t233, 38, 97, 98, 63, 199, 182, 150, 78, 239, 132, 160, 21,\n\t\t254, 56, 168, 240, 227, 252, 140, 6, 169, 181, 222, 102, 174,\n\t\t73, 87, 116, 212, 74, 201, 162, 167, 82, 239, 226, 127, 141,\n\t\t177, 140, 65, 3, 239, 78, 212, 103, 126, 186, 244, 224, 198,\n\t\t70, 43, 14, 199, 83, 74, 138, 148, 190, 60, 170, 19, 47, 180,\n\t\t151, 179, 34, 84, 180, 100, 234, 84, 240, 88, 132, 105, 46,\n\t\t206, 55, 143, 9, 91, 50, 178, 2, 29, 192, 73, 199, 47, 42,\n\t\t178, 136, 149, 19, 232, 165, 157, 147, 50, 42, 122, 154, 196,\n\t\t186, 3, 138, 176, 223, 252, 250, 101, 74, 45, 244, 89, 200,\n\t\t233, 115, 182, 179, 215, 41, 53, 227, 180, 89, 159, 90, 140,\n\t\t51, 218, 78, 0, 229, 66, 164, 1, 32, 30, 223, 111, 143, 229,\n\t\t30, 201, 84, 196, 188, 177, 30, 177, 14, 121, 54, 100, 164,\n\t\t187, 64, 138, 65, 72, 50, 120, 85, 75, 25, 66, 30, 118, 171,\n\t\t71, 184, 206, 9, 189, 6, 222, 57, 102, 174, 104, 89, 167,\n\t\t42, 142, 115, 131, 162, 126, 250, 23, 18, 35, 101, 26, 34,\n\t\t109, 212, 181, 203, 77, 22, 158, 21, 222, 225, 80, 97, 244,\n\t\t244, 26, 129, 119, 82, 121, 204, 227, 222, 138, 136, 245,\n\t\t189, 173, 234, 5, 142, 50, 11, 1, 184, 204, 213, 132, 18,\n\t\t159, 185, 98, 152, 189, 87, 152, 46, 86, 45, 31, 179, 73,\n\t\t109, 117, 39, 124, 132, 175, 95, 103, 168, 169, 61, 175, 19,\n\t\t168, 106, 73, 223, 93, 189, 73, 165, 86, 9, 139, 11, 39, 213,\n\t\t235, 12, 69, 149, 198, 151, 249, 57, 12, 62, 244, 233, 241,\n\t\t220, 53, 162, 20, 167, 16, 5, 152, 28, 195, 40, 173, 9, 68,\n\t\t194, 124, 240, 159, 127, 92, 235, 29, 175, 143, 222, 103,\n\t\t21, 158, 189, 189, 240, 142, 184, 73, 140, 237, 121, 170,\n\t\t216, 185, 167, 166, 86, 207, 214, 102, 253, 142, 207, 207,\n\t\t221, 36, 132, 63, 85, 206, 93, 214, 112, 72, 131, 161, 81,\n\t\t68, 249, 132, 189, 225, 124, 241, 205, 164, 65, 210, 217,\n\t\t182, 183, 247, 147, 42, 249, 218, 69, 127, 44, 13, 254, 197,\n\t\t190, 254, 95, 235, 234, 102, 93, 45, 70, 234, 237, 174, 196,\n\t\t221, 31, 111, 37, 246, 48, 15, 162, 22, 104, 183, 76, 87,\n\t\t209, 14, 9, 33, 44, 2, 251, 162, 143, 42, 209, 108, 156, 211,\n\t\t120, 207, 171, 49, 53, 187, 181, 189, 221, 101, 214, 182,\n\t\t78, 210, 79, 214, 182, 94, 230, 112, 28, 61, 222, 141, 109,\n\t\t121, 213, 116, 131, 145, 62, 217, 218, 235, 6, 181, 181, 229,\n\t\t45, 31, 111, 37, 141, 144, 142, 212, 115, 24, 207, 44, 21,\n\t\t17, 121, 220, 187, 49, 33, 231, 197, 99, 159, 162, 112, 12,\n\t\t243, 209, 187, 28, 173, 74, 4, 82, 40, 57, 169, 162, 172,\n\t\t79, 130, 125, 126, 100, 255, 195, 241, 233, 178, 119, 227,\n\t\t3, 183, 162, 124, 251, 11, 62, 222, 114, 79, 90, 178, 43,\n\t\t63, 140, 236, 31, 105, 92, 82, 125, 101, 219, 79, 151, 58,\n\t\t186, 146, 90, 170, 29, 220, 249, 64, 172, 159, 125, 91, 219,\n\t\t230, 228, 190, 173, 233, 202, 193, 182, 102, 218, 159, 175,\n\t\t29, 30, 156, 209, 122, 154, 42, 237, 181, 246, 119, 235, 121,\n\t\t16, 244, 120, 228, 34, 166, 80, 89, 54, 33, 102, 37, 24, 81,\n\t\t165, 105, 63, 181, 248, 25, 102, 153, 90, 116, 251, 27, 99,\n\t\t169, 10, 1, 197, 216, 88, 51, 72, 234, 173, 110, 167, 144,\n\t\t202, 109, 219, 164, 114, 74, 108, 0, 88, 157, 145, 95, 126,\n\t\t92, 251, 59, 62, 63, 123, 251, 108, 201, 19, 247, 23, 222,\n\t\t181, 94, 205, 127, 203, 54, 233, 187, 250, 127, 109, 183,\n\t\t92, 178, 238, 79, 108, 150, 219, 214, 170, 42, 200, 249, 233,\n\t\t114, 83, 65, 206, 239, 60, 4, 111, 182, 166, 134, 145, 82,\n\t\t229, 21, 174, 234, 199, 75, 51, 175, 93, 247, 248, 220, 25,\n\t\t218, 69, 223, 235, 139, 187, 146, 215, 221, 254, 64, 166,\n\t\t68, 65, 224, 191, 136, 20, 209, 166, 165, 20, 136, 166, 30,\n\t\t120, 65, 75, 175, 161, 53, 109, 73, 122, 157, 182, 86, 3,\n\t\t129, 124, 149, 174, 14, 205, 21, 11, 45, 107, 162, 190, 174,\n\t\t186, 103, 51, 112, 238, 49, 116, 217, 75, 57, 8, 91, 149,\n\t\t16, 28, 167, 22, 172, 121, 2, 85, 113, 215, 163, 143, 183,\n\t\t82, 83, 72, 7, 81, 13, 121, 55, 166, 107, 88, 32, 65, 205,\n\t\t41, 136, 113, 137, 187, 219, 243, 84, 103, 219, 247, 68, 164,\n\t\t190, 126, 187, 199, 155, 224, 203, 72, 196, 222, 167, 233,\n\t\t248, 175, 45, 163, 63, 179, 138, 12, 98, 191, 173, 162, 54,\n\t\t122, 253, 209, 34, 210, 220, 146, 109, 17, 97, 188, 68, 14,\n\t\t213, 108, 160, 245, 63, 179, 140, 114, 174, 243, 135, 203,\n\t\t72, 179, 241, 95, 213, 100, 159, 159, 199, 191, 163, 115,\n\t\t174, 139, 255, 5, 157, 243, 246, 239, 40, 157, 18, 191, 250,\n\t\t177, 210, 153, 178, 86, 237, 44, 45, 5, 161, 47, 169, 207,\n\t\t238, 230, 150, 85, 86, 248, 206, 52, 222, 103, 176, 80, 151,\n\t\t217, 36, 126, 89, 27, 194, 143, 255, 105, 71, 162, 42, 84,\n\t\t238, 241, 59, 193, 133, 219, 138, 88, 108, 254, 123, 189,\n\t\t234, 251, 225, 5, 63, 62, 237, 196, 202, 169, 239, 223, 143,\n\t\t48, 136, 147, 232, 15, 66, 12, 31, 111, 101, 160, 120, 84,\n\t\t111, 33, 93, 137, 40, 8, 111, 92, 211, 189, 23, 140, 254,\n\t\t73, 224, 111, 202, 218, 168, 81, 218, 222, 66, 6, 159, 166,\n\t\t56, 176, 138, 85, 5, 24, 190, 243, 195, 189, 123, 236, 245,\n\t\t106, 249, 238, 219, 170, 115, 188, 149, 98, 148, 19, 228,\n\t\t76, 246, 86, 254, 69, 207, 92, 103, 73, 98, 151, 35, 164,\n\t\t124, 20, 175, 34, 60, 16, 5, 59, 82, 225, 107, 200, 76, 239,\n\t\t122, 156, 93, 61, 250, 94, 206, 113, 40, 221, 127, 18, 110,\n\t\t221, 122, 156, 227, 115, 124, 229, 0, 55, 37, 212, 50, 0,\n\t\t254, 160, 207, 92, 171, 138, 156, 213, 208, 53, 68, 146, 238,\n\t\t209, 194, 147, 115, 84, 121, 249, 237, 202, 203, 169, 83,\n\t\t209, 203, 112, 125, 88, 205, 98, 110, 206, 28, 154, 252, 140,\n\t\t47, 107, 86, 69, 163, 217, 171, 16, 147, 67, 110, 17, 122,\n\t\t126, 200, 129, 214, 170, 17, 108, 98, 148, 194, 194, 42, 251,\n\t\t73, 192, 93, 93, 202, 170, 72, 194, 82, 205, 97, 94, 200,\n\t\t108, 225, 241, 169, 18, 198, 7, 67, 179, 190, 132, 40, 164,\n\t\t99, 74, 171, 175, 173, 0, 149, 166, 220, 21, 35, 139, 48,\n\t\t57, 76, 49, 228, 67, 40, 60, 117, 208, 203, 212, 81, 74, 90,\n\t\t125, 14, 99, 190, 77, 112, 208, 26, 122, 41, 76, 67, 206,\n\t\t36, 47, 33, 42, 41, 52, 54, 216, 122, 124, 217, 224, 70, 148,\n\t\t83, 202, 194, 48, 7, 180, 10, 15, 24, 11, 117, 10, 169, 92,\n\t\t148, 67, 75, 73, 48, 204, 35, 247, 121, 180, 20, 106, 34,\n\t\t100, 120, 117, 192, 105, 134, 151, 152, 206, 151, 20, 84,\n\t\t242, 162, 105, 7, 136, 224, 165, 42, 236, 129, 161, 190, 109,\n\t\t133, 233, 188, 242, 157, 4, 138, 76, 27, 19, 230, 186, 129,\n\t\t193, 176, 126, 219, 235, 67, 0, 203, 32, 209, 69, 43, 173,\n\t\t101, 37, 121, 165, 36, 208, 85, 117, 198, 213, 40, 180, 26,\n\t\t41, 230, 208, 185, 139, 241, 193, 60, 212, 132, 18, 68, 220,\n\t\t13, 217, 235, 89, 234, 238, 92, 146, 158, 232, 82, 123, 11,\n\t\t12, 81, 170, 219, 227, 218, 107, 134, 57, 106, 22, 54, 12,\n\t\t232, 31, 84, 195, 204, 5, 105, 43, 173, 247, 158, 143, 92,\n\t\t173, 75, 146, 84, 94, 185, 189, 165, 92, 195, 140, 233, 40,\n\t\t32, 194, 191, 86, 81, 237, 18, 213, 7, 166, 16, 16, 228, 222,\n\t\t88, 53, 97, 162, 192, 114, 147, 255, 153, 130, 189, 27, 53,\n\t\t129, 78, 125, 196, 36, 20, 41, 212, 136, 135, 64, 230, 170,\n\t\t12, 197, 149, 8, 108, 101, 60, 119, 91, 31, 157, 219, 131,\n\t\t108, 131, 210, 37, 203, 164, 106, 61, 220, 166, 85, 21, 183,\n\t\t197, 148, 1, 197, 104, 75, 118, 8, 105, 126, 92, 214, 4, 229,\n\t\t153, 165, 146, 59, 239, 150, 18, 188, 44, 53, 33, 113, 180,\n\t\t20, 56, 112, 187, 6, 255, 139, 151, 113, 37, 245, 230, 151,\n\t\t48, 40, 177, 198, 6, 15, 25, 175, 114, 56, 202, 72, 84, 193,\n\t\t163, 230, 208, 251, 200, 118, 124, 177, 128, 31, 36, 149,\n\t\t196, 98, 85, 54, 22, 222, 153, 51, 175, 160, 164, 30, 101,\n\t\t248, 185, 174, 19, 245, 117, 71, 51, 153, 69, 141, 39, 29,\n\t\t33, 60, 15, 103, 157, 28, 112, 215, 195, 245, 72, 98, 173,\n\t\t161, 125, 185, 232, 160, 83, 84, 213, 172, 240, 184, 68, 201,\n\t\t177, 75, 133, 77, 47, 141, 69, 182, 131, 71, 201, 112, 3,\n\t\t135, 87, 245, 100, 253, 195, 189, 243, 171, 66, 101, 87, 177,\n\t\t227, 101, 206, 108, 172, 78, 45, 216, 134, 158, 236, 21, 112,\n\t\t231, 17, 218, 4, 219, 85, 13, 165, 163, 166, 113, 15, 165,\n\t\t114, 223, 86, 43, 254, 98, 67, 182, 45, 9, 147, 174, 182,\n\t\t42, 186, 143, 148, 46, 10, 220, 96, 227, 133, 225, 106, 233,\n\t\t192, 104, 81, 57, 108, 176, 108, 172, 180, 190, 216, 13, 233,\n\t\t181, 189, 39, 193, 46, 22, 120, 183, 1, 203, 46, 194, 80,\n\t\t40, 25, 94, 117, 213, 123, 49, 214, 242, 20, 84, 101, 192,\n\t\t54, 14, 109, 44, 84, 42, 200, 240, 42, 81, 229, 38, 20, 177,\n\t\t122, 53, 147, 29, 195, 185, 153, 90, 208, 193, 35, 113, 177,\n\t\t234, 193, 101, 11, 38, 30, 89, 20, 112, 4, 34, 149, 162, 148,\n\t\t162, 85, 56, 42, 51, 8, 140, 57, 133, 82, 231, 69, 85, 166,\n\t\t131, 70, 126, 70, 213, 235, 187, 46, 152, 88, 67, 63, 26,\n\t\t5, 36, 246, 40, 177, 101, 16, 168, 16, 175, 18, 217, 225,\n\t\t208, 196, 169, 53, 85, 207, 25, 114, 195, 220, 13, 106, 180,\n\t\t18, 79, 234, 74, 199, 224, 233, 159, 27, 102, 83, 5, 16, 123,\n\t\t249, 232, 173, 66, 157, 235, 63, 212, 76, 251, 209, 109, 5,\n\t\t132, 151, 23, 210, 21, 186, 120, 87, 1, 120, 194, 61, 169,\n\t\t128, 52, 222, 192, 180, 14, 91, 183, 240, 221, 99, 25, 218,\n\t\t203, 87, 11, 142, 121, 137, 223, 212, 222, 160, 252, 180,\n\t\t49, 10, 18, 116, 64, 252, 111, 27, 178, 150, 77, 173, 102,\n\t\t9, 28, 102, 211, 147, 110, 78, 86, 107, 183, 216, 220, 179,\n\t\t45, 217, 212, 170, 156, 116, 107, 180, 232, 103, 183, 58,\n\t\t71, 114, 201, 229, 245, 160, 73, 202, 160, 89, 245, 50, 245,\n\t\t182, 100, 171, 137, 80, 171, 244, 65, 213, 114, 162, 33, 73,\n\t\t216, 106, 176, 74, 11, 48, 48, 138, 120, 8, 207, 107, 209,\n\t\t30, 133, 236, 146, 13, 83, 84, 15, 195, 82, 39, 228, 233,\n\t\t235, 171, 16, 203, 43, 86, 37, 0, 94, 206, 217, 16, 93, 205,\n\t\t60, 20, 232, 168, 46, 172, 127, 99, 72, 0, 136, 175, 237,\n\t\t129, 70, 135, 19, 185, 176, 209, 7, 135, 60, 229, 132, 220,\n\t\t123, 10, 53, 37, 100, 71, 224, 210, 166, 99, 204, 218, 56,\n\t\t185, 214, 176, 137, 24, 145, 169, 85, 93, 12, 188, 130, 167,\n\t\t210, 161, 105, 62, 204, 8, 177, 245, 44, 182, 86, 205, 115,\n\t\t219, 218, 12, 76, 1, 51, 101, 106, 154, 178, 249, 216, 114,\n\t\t16, 211, 169, 133, 210, 115, 131, 26, 164, 164, 59, 94, 76,\n\t\t86, 235, 238, 31, 214, 200, 156, 142, 172, 122, 220, 42, 198,\n\t\t103, 138, 134, 151, 231, 109, 226, 18, 146, 22, 116, 88, 174,\n\t\t215, 42, 195, 164, 118, 160, 57, 182, 248, 155, 155, 185,\n\t\t180, 68, 191, 204, 250, 228, 24, 186, 5, 178, 43, 129, 223,\n\t\t27, 54, 27, 8, 194, 147, 13, 182, 109, 179, 230, 181, 134,\n\t\t171, 200, 139, 37, 151, 99, 179, 185, 49, 242, 214, 108, 139,\n\t\t104, 37, 123, 128, 166, 252, 83, 81, 128, 53, 62, 60, 55,\n\t\t93, 190, 188, 253, 15, 145, 68, 77, 40, 62, 71, 40, 178, 247,\n\t\t230, 38, 101, 90, 83, 43, 30, 194, 77, 18, 23, 183, 234, 112,\n\t\t212, 188, 252, 89, 150, 152, 218, 181, 112, 112, 30, 231,\n\t\t131, 114, 51, 20, 99, 184, 226, 44, 83, 118, 239, 117, 142,\n\t\t133, 14, 162, 133, 200, 210, 207, 26, 54, 44, 98, 242, 10,\n\t\t155, 40, 88, 102, 120, 43, 204, 190, 213, 184, 33, 126, 120,\n\t\t33, 191, 116, 41, 156, 220, 117, 49, 155, 55, 52, 76, 191,\n\t\t49, 179, 189, 104, 164, 31, 69, 123, 18, 214, 148, 144, 11,\n\t\t86, 10, 177, 118, 169, 89, 26, 83, 111, 135, 173, 98, 32,\n\t\t19, 165, 116, 182, 21, 7, 54, 173, 9, 244, 156, 197, 204,\n\t\t19, 171, 155, 86, 165, 25, 183, 107, 72, 87, 193, 118, 235,\n\t\t42, 50, 100, 62, 170, 84, 213, 186, 177, 172, 3, 89, 62, 100,\n\t\t25, 177, 52, 22, 195, 78, 217, 195, 74, 22, 170, 236, 166,\n\t\t80, 47, 247, 58, 144, 213, 195, 183, 50, 12, 165, 233, 51,\n\t\t173, 204, 68, 149, 65, 67, 57, 2, 9, 93, 200, 138, 207, 46,\n\t\t123, 81, 163, 135, 23, 188, 4, 175, 122, 189, 214, 130, 199,\n\t\t122, 7, 205, 143, 172, 119, 44, 247, 220, 15, 66, 81, 15,\n\t\t16, 144, 144, 202, 45, 179, 168, 74, 225, 157, 3, 173, 49,\n\t\t59, 66, 55, 158, 104, 172, 112, 128, 95, 162, 239, 138, 21,\n\t\t116, 14, 21, 212, 248, 172, 19, 21, 106, 44, 142, 37, 39,\n\t\t57, 212, 210, 7, 202, 201, 171, 209, 123, 157, 9, 162, 69,\n\t\t150, 26, 212, 129, 98, 31, 159, 13, 90, 85, 85, 72, 19, 27,\n\t\t239, 29, 120, 38, 120, 211, 88, 5, 3, 212, 85, 98, 203, 157,\n\t\t96, 162, 21, 147, 15, 102, 45, 206, 37, 157, 21, 252, 98,\n\t\t154, 1, 38, 43, 246, 166, 24, 122, 201, 169, 241, 39, 68,\n\t\t64, 3, 40, 228, 218, 74, 61, 170, 234, 145, 186, 120, 30,\n\t\t219, 174, 164, 182, 202, 69, 112, 239, 41, 131, 25, 203, 246,\n\t\t22, 196, 237, 99, 219, 143, 22, 4, 56, 189, 64, 176, 71, 80,\n\t\t17, 74, 169, 160, 158, 136, 43, 198, 186, 57, 78, 174, 18,\n\t\t86, 98, 3, 38, 137, 177, 127, 64, 22, 152, 40, 56, 85, 22,\n\t\t124, 188, 101, 86, 180, 162, 120, 199, 74, 69, 189, 170, 88,\n\t\t107, 107, 250, 216, 106, 126, 100, 137, 83, 29, 11, 134, 195,\n\t\t171, 11, 189, 187, 64, 56, 73, 110, 69, 248, 102, 202, 190,\n\t\t16, 195, 168, 173, 20, 148, 63, 208, 114, 149, 97, 166, 148,\n\t\t242, 243, 172, 201, 156, 107, 82, 102, 121, 143, 59, 232,\n\t\t143, 21, 119, 16, 155, 241, 53, 238, 128, 159, 34, 227, 244,\n\t\t192, 130, 14, 213, 253, 234, 155, 99, 86, 253, 76, 175, 174,\n\t\t86, 241, 51, 253, 25, 87, 43, 124, 88, 155, 139, 117, 255,\n\t\t247, 95, 116, 181, 74, 151, 221, 147, 45, 254, 216, 100, 137,\n\t\t199, 207, 225, 73, 74, 112, 50, 45, 161, 234, 126, 39, 61,\n\t\t197, 3, 54, 85, 108, 30, 201, 144, 236, 49, 244, 218, 6, 132,\n\t\t185, 158, 73, 146, 229, 166, 81, 51, 115, 151, 25, 80, 3,\n\t\t110, 193, 108, 190, 45, 137, 133, 158, 252, 178, 90, 71, 123,\n\t\t158, 106, 162, 75, 196, 132, 92, 163, 91, 113, 19, 149, 37,\n\t\t43, 116, 18, 151, 100, 59, 236, 208, 2, 48, 246, 180, 51,\n\t\t238, 209, 64, 117, 91, 158, 203, 13, 106, 238, 203, 207, 167,\n\t\t52, 7, 29, 35, 163, 16, 35, 243, 139, 122, 129, 12, 179, 255,\n\t\t229, 248, 218, 35, 11, 48, 153, 226, 44, 175, 227, 45, 145,\n\t\t133, 245, 42, 29, 153, 143, 183, 12, 132, 95, 66, 10, 230,\n\t\t156, 243, 191, 3, 186, 187, 176, 178, 155, 115, 77, 238, 248,\n\t\t190, 115, 237, 230, 111, 253, 35, 128, 241, 199, 27, 205,\n\t\t8, 68, 53, 28, 104, 104, 167, 182, 225, 187, 237, 36, 65,\n\t\t253, 254, 145, 11, 16, 231, 119, 23, 160, 156, 248, 234, 2,\n\t\t52, 24, 52, 237, 168, 230, 239, 184, 0, 241, 185, 220, 200,\n\t\t42, 157, 217, 176, 95, 138, 180, 65, 135, 31, 159, 23, 74,\n\t\t206, 125, 72, 219, 53, 40, 187, 32, 91, 56, 115, 37, 205,\n\t\t245, 143, 199, 70, 107, 54, 210, 204, 152, 244, 78, 150, 46,\n\t\t92, 91, 58, 233, 23, 250, 100, 159, 247, 157, 28, 75, 232,\n\t\t243, 30, 80, 166, 151, 64, 241, 22, 20, 86, 15, 86, 252, 28,\n\t\t201, 151, 248, 126, 252, 78, 120, 223, 194, 97, 130, 36, 88,\n\t\t248, 129, 115, 7, 16, 124, 250, 129, 197, 209, 170, 70, 195,\n\t\t209, 76, 45, 203, 176, 183, 253, 5, 172, 176, 99, 70, 254,\n\t\t55, 189, 248, 255, 46, 116, 100, 147, 208, 255, 110, 48, 204,\n\t\t36, 244, 222, 188, 79, 193, 48, 233, 151, 31, 72, 232, 215,\n\t\t190, 248, 223, 196, 144, 96, 228, 255, 29, 12, 73, 255, 239,\n\t\t192, 53, 56, 134, 4, 236, 243, 59, 176, 193, 178, 41, 63,\n\t\t67, 49, 126, 0, 108, 88, 141, 248, 2, 246, 248, 119, 32, 36,\n\t\t107, 18, 188, 162, 37, 254, 44, 132, 132, 127, 252, 123, 16,\n\t\t146, 255, 22, 184, 206, 255, 31, 16, 18, 16, 242, 44, 8, 9,\n\t\t141, 129, 80, 12, 53, 24, 195, 95, 51, 85, 126, 180, 141,\n\t\t252, 183, 133, 146, 94, 211, 105, 94, 54, 146, 31, 166, 246,\n\t\t252, 244, 215, 95, 255, 242, 37, 169, 167, 143, 63, 46, 22,\n\t\t154, 225, 140, 207, 163, 220, 83, 143, 97, 62, 207, 60, 202,\n\t\t199, 91, 2, 18, 58, 75, 98, 127, 12, 243, 224, 211, 79, 191,\n\t\t74, 43, 148, 151, 20, 230, 35, 69, 169, 172, 204, 7, 247,\n\t\t179, 103, 164, 237, 163, 79, 186, 124, 210, 253, 236, 98,\n\t\t247, 253, 184, 225, 191, 253, 254, 254, 251, 79, 191, 255,\n\t\t252, 235, 47, 95, 90, 255, 211, 15, 74, 157, 30, 93, 98, 204,\n\t\t119, 254, 142, 244, 168, 30, 83, 143, 20, 218, 253, 164, 1,\n\t\t27, 228, 126, 186, 142, 8, 31, 78, 25, 9, 200, 138, 60, 80,\n\t\t78, 12, 84, 122, 125, 116, 184, 103, 96, 252, 169, 191, 230,\n\t\t227, 173, 34, 184, 194, 70, 227, 148, 170, 167, 81, 42, 98,\n\t\t69, 11, 175, 213, 106, 110, 30, 128, 181, 35, 146, 199, 138,\n\t\t246, 0, 138, 67, 61, 78, 170, 61, 228, 163, 148, 30, 218,\n\t\t125, 72, 32, 235, 238, 72, 95, 54, 49, 193, 183, 20, 143,\n\t\t220, 67, 158, 185, 41, 21, 99, 68, 29, 243, 60, 148, 144,\n\t\t92, 218, 67, 189, 130, 79, 183, 222, 238, 39, 229, 132, 242,\n\t\t88, 128, 172, 255, 184, 115, 127, 127, 252, 244, 254, 254,\n\t\t243, 79, 95, 251, 246, 47, 127, 220, 183, 169, 82, 32, 100,\n\t\t110, 182, 171, 169, 161, 207, 31, 132, 233, 59, 166, 217,\n\t\t37, 99, 134, 124, 84, 243, 10, 81, 235, 1, 57, 0, 158, 97,\n\t\t163, 222, 34, 83, 148, 135, 132, 249, 180, 35, 135, 229, 62,\n\t\t36, 184, 204, 4, 157, 105, 245, 204, 173, 22, 143, 93, 173,\n\t\t233, 37, 143, 68, 53, 72, 233, 209, 116, 105, 93, 85, 141,\n\t\t255, 118, 83, 174, 217, 20, 23, 7, 141, 105, 132, 165, 132,\n\t\t114, 20, 214, 91, 111, 150, 47, 108, 150, 55, 45, 226, 43,\n\t\t88, 209, 164, 225, 154, 101, 165, 86, 231, 245, 211, 54, 81,\n\t\t137, 161, 176, 185, 77, 33, 127, 58, 184, 234, 230, 219, 55,\n\t\t127, 9, 189, 126, 137, 157, 225, 239, 46, 129, 46, 147, 34,\n\t\t146, 240, 133, 70, 57, 91, 134, 58, 83, 180, 167, 174, 179,\n\t\t163, 128, 124, 105, 18, 18, 75, 163, 67, 98, 229, 72, 33,\n\t\t193, 67, 87, 102, 13, 245, 135, 179, 225, 250, 233, 151, 159,\n\t\t254, 250, 243, 79, 191, 156, 255, 241, 211, 223, 31, 223,\n\t\t206, 199, 183, 159, 254, 246, 58, 47, 70, 253, 129, 196, 24,\n\t\t153, 151, 132, 150, 172, 63, 213, 96, 141, 90, 56, 190, 10,\n\t\t111, 216, 59, 159, 200, 102, 136, 174, 223, 239, 231, 212,\n\t\t41, 65, 209, 102, 80, 172, 65, 82, 220, 231, 108, 151, 59,\n\t\t179, 183, 52, 49, 13, 8, 158, 86, 30, 126, 157, 73, 10, 84,\n\t\t55, 179, 202, 51, 188, 18, 133, 241, 249, 232, 126, 230, 232,\n\t\t217, 90, 113, 251, 51, 254, 250, 126, 78, 243, 240, 217, 24,\n\t\t89, 164, 55, 33, 28, 224, 175, 80, 132, 120, 172, 65, 56,\n\t\t4, 170, 127, 196, 58, 126, 175, 254, 121, 110, 255, 201, 247,\n\t\t123, 246, 95, 2, 132, 65, 186, 76, 231, 176, 40, 172, 102,\n\t\t82, 250, 107, 232, 152, 100, 77, 218, 15, 31, 184, 91, 125,\n\t\t236, 87, 2, 177, 39, 30, 109, 9, 207, 154, 190, 116, 96, 97,\n\t\t136, 183, 147, 214, 29, 8, 110, 161, 105, 205, 242, 96, 94,\n\t\t78, 220, 222, 29, 17, 144, 226, 81, 187, 250, 152, 208, 231,\n\t\t90, 77, 95, 95, 164, 144, 124, 125, 250, 123, 170, 71, 214,\n\t\t173, 115, 253, 124, 175, 164, 161, 184, 170, 190, 175, 170,\n\t\t36, 210, 103, 147, 43, 28, 97, 133, 153, 68, 11, 110, 165,\n\t\t173, 72, 17, 249, 241, 90, 141, 2, 101, 39, 102, 104, 47,\n\t\t135, 239, 217, 231, 85, 215, 128, 185, 15, 156, 70, 29, 93,\n\t\t22, 161, 201, 218, 38, 126, 11, 126, 214, 219, 133, 175, 56,\n\t\t16, 34, 232, 218, 214, 253, 224, 61, 91, 183, 116, 253, 202,\n\t\t66, 218, 55, 122, 197, 37, 43, 98, 57, 3, 162, 63, 254, 172,\n\t\t60, 84, 213, 91, 165, 141, 122, 61, 126, 247, 175, 66, 29,\n\t\t229, 237, 43, 133, 189, 225, 178, 105, 184, 134, 19, 211,\n\t\t33, 173, 17, 67, 242, 131, 13, 145, 245, 117, 179, 88, 248,\n\t\t231, 227, 219, 59, 6, 143, 95, 34, 113, 1, 41, 238, 139, 150,\n\t\t108, 18, 77, 46, 234, 1, 223, 192, 191, 109, 82, 164, 215,\n\t\t131, 119, 84, 193, 21, 15, 228, 180, 96, 143, 13, 68, 235,\n\t\t112, 199, 125, 218, 38, 44, 130, 37, 243, 11, 208, 9, 105,\n\t\t139, 76, 115, 126, 233, 59, 118, 117, 97, 122, 154, 219, 122,\n\t\t56, 117, 65, 252, 88, 232, 125, 251, 229, 247, 95, 191, 36,\n\t\t132, 143, 249, 127, 153, 38, 49, 184, 151, 115, 229, 13, 59,\n\t\t27, 208, 37, 235, 142, 115, 118, 223, 255, 90, 168, 207, 20,\n\t\t71, 160, 123, 41, 10, 109, 74, 188, 59, 31, 57, 141, 48, 248,\n\t\t86, 113, 58, 171, 128, 47, 226, 52, 125, 158, 184, 231, 227,\n\t\t45, 181, 17, 250, 145, 91, 12, 229, 81, 121, 235, 174, 178,\n\t\t217, 200, 193, 169, 71, 247, 115, 221, 71, 61, 76, 64, 84,\n\t\t85, 150, 69, 213, 19, 237, 140, 254, 251, 196, 133, 126, 35,\n\t\t171, 112, 37, 76, 128, 9, 51, 46, 118, 38, 162, 174, 217,\n\t\t89, 35, 180, 219, 19, 215, 139, 222, 249, 165, 53, 85, 130,\n\t\t165, 184, 134, 239, 190, 227, 30, 214, 65, 10, 20, 131, 252,\n\t\t176, 110, 225, 94, 241, 79, 183, 94, 243, 103, 223, 79, 214,\n\t\t17, 199, 156, 31, 111, 172, 3, 85, 107, 212, 167, 79, 126,\n\t\t174, 139, 169, 135, 254, 229, 251, 30, 47, 199, 119, 92, 246,\n\t\t212, 166, 125, 188, 181, 170, 74, 66, 79, 97, 60, 85, 227,\n\t\t188, 119, 9, 202, 60, 206, 215, 198, 221, 30, 211, 50, 171,\n\t\t103, 12, 245, 105, 72, 237, 187, 253, 120, 156, 118, 1, 255,\n\t\t253, 227, 45, 15, 222, 96, 49, 63, 158, 166, 208, 174, 199,\n\t\t250, 68, 249, 244, 84, 127, 216, 211, 30, 186, 63, 19, 119,\n\t\t75, 65, 86, 157, 44, 125, 240, 155, 40, 106, 61, 247, 8, 236,\n\t\t164, 107, 33, 62, 182, 95, 95, 187, 143, 131, 76, 181, 20,\n\t\t211, 214, 39, 41, 91, 247, 222, 30, 224, 19, 120, 189, 17,\n\t\t243, 250, 142, 59, 135, 125, 43, 246, 69, 255, 86, 104, 241,\n\t\t107, 105, 124, 249, 96, 244, 162, 117, 226, 235, 231, 158,\n\t\t123, 31, 166, 158, 66, 219, 38, 222, 235, 208, 172, 213, 134,\n\t\t70, 249, 220, 201, 148, 2, 202, 233, 250, 109, 190, 72, 125,\n\t\t205, 240, 130, 196, 242, 76, 31, 111, 179, 7, 43, 247, 203,\n\t\t61, 120, 83, 42, 5, 155, 157, 54, 223, 244, 155, 137, 69,\n\t\t55, 34, 56, 104, 130, 207, 77, 126, 199, 90, 28, 124, 228,\n\t\t107, 58, 73, 104, 100, 159, 153, 60, 23, 31, 251, 90, 29,\n\t\t224, 121, 212, 43, 239, 107, 113, 166, 188, 125, 203, 107,\n\t\t15, 220, 79, 157, 183, 54, 143, 101, 208, 188, 131, 246, 62,\n\t\t183, 190, 246, 25, 252, 99, 41, 248, 235, 47, 127, 123, 252,\n\t\t227, 219, 47, 215, 23, 27, 113, 124, 37, 126, 88, 86, 150,\n\t\t188, 46, 107, 82, 93, 49, 79, 166, 6, 143, 89, 31, 167, 131,\n\t\t50, 127, 82, 238, 89, 160, 129, 216, 89, 211, 149, 167, 105,\n\t\t13, 226, 224, 56, 70, 214, 19, 89, 133, 56, 203, 112, 65,\n\t\t119, 9, 104, 227, 66, 158, 157, 198, 112, 55, 197, 25, 225,\n\t\t172, 149, 106, 157, 116, 149, 86, 11, 252, 167, 84, 130, 184,\n\t\t10, 205, 52, 251, 148, 252, 186, 78, 146, 6, 95, 140, 198,\n\t\t224, 240, 144, 10, 80, 146, 186, 17, 173, 188, 253, 236, 251,\n\t\t176, 254, 112, 117, 222, 96, 146, 20, 145, 81, 124, 152, 106,\n\t\t123, 82, 98, 21, 57, 37, 201, 110, 24, 10, 95, 19, 243, 34,\n\t\t105, 117, 204, 189, 117, 223, 251, 101, 92, 14, 30, 196, 50,\n\t\t152, 102, 42, 214, 165, 209, 117, 26, 33, 10, 150, 109, 161,\n\t\t134, 201, 51, 11, 208, 55, 47, 85, 97, 28, 9, 172, 137, 20,\n\t\t211, 68, 130, 212, 59, 180, 36, 70, 94, 0, 185, 244, 48, 1,\n\t\t234, 148, 107, 90, 151, 168, 121, 13, 96, 214, 36, 184, 2,\n\t\t122, 70, 136, 60, 17, 95, 154, 13, 131, 106, 166, 247, 208,\n\t\t216, 97, 129, 94, 222, 142, 106, 72, 153, 157, 132, 66, 187,\n\t\t208, 198, 213, 187, 219, 198, 181, 10, 158, 151, 135, 116,\n\t\t13, 222, 215, 248, 161, 147, 176, 28, 62, 154, 107, 48, 109,\n\t\t44, 237, 217, 14, 8, 209, 129, 36, 5, 226, 235, 48, 166, 137,\n\t\t232, 219, 52, 226, 7, 182, 188, 128, 194, 229, 198, 30, 60,\n\t\t138, 45, 38, 47, 251, 114, 125, 121, 225, 33, 105, 229, 169,\n\t\t44, 44, 163, 248, 38, 226, 60, 146, 234, 148, 86, 55, 197,\n\t\t64, 18, 164, 253, 172, 28, 0, 15, 44, 6, 16, 82, 194, 249,\n\t\t231, 186, 157, 131, 26, 226, 10, 234, 67, 66, 145, 196, 121,\n\t\t127, 184, 232, 255, 122, 127, 188, 174, 246, 249, 163, 210,\n\t\t203, 121, 136, 125, 249, 48, 168, 99, 22, 244, 192, 189, 218,\n\t\t182, 231, 24, 72, 251, 203, 169, 127, 250, 120, 139, 71, 226,\n\t\t214, 223, 7, 40, 207, 108, 218, 105, 202, 194, 253, 28, 146,\n\t\t11, 110, 57, 12, 31, 111, 169, 243, 156, 74, 189, 223, 219,\n\t\t208, 57, 91, 183, 25, 63, 53, 92, 43, 138, 99, 182, 253, 164,\n\t\t118, 99, 14, 137, 182, 109, 71, 164, 135, 63, 138, 194, 200,\n\t\t171, 250, 81, 225, 35, 144, 94, 140, 71, 117, 211, 71, 109,\n\t\t80, 125, 129, 218, 247, 224, 34, 146, 51, 121, 181, 193, 34,\n\t\t124, 246, 110, 135, 26, 105, 124, 21, 213, 254, 212, 46, 13,\n\t\t78, 114, 166, 210, 163, 162, 56, 187, 217, 27, 168, 200, 48,\n\t\t99, 40, 71, 26, 153, 181, 181, 38, 13, 121, 100, 205, 170,\n\t\t168, 98, 237, 223, 245, 252, 199, 219, 180, 124, 176, 222,\n\t\t247, 222, 84, 175, 201, 212, 4, 11, 59, 161, 87, 179, 14,\n\t\t209, 128, 182, 207, 161, 221, 46, 7, 104, 203, 188, 214, 54,\n\t\t214, 229, 165, 192, 121, 61, 190, 99, 190, 103, 225, 75, 53,\n\t\t28, 174, 108, 148, 137, 69, 3, 169, 216, 134, 183, 74, 229,\n\t\t161, 174, 43, 50, 9, 144, 81, 95, 228, 19, 80, 73, 228, 232,\n\t\t110, 185, 239, 135, 247, 179, 84, 69, 63, 42, 237, 2, 75,\n\t\t200, 38, 248, 222, 162, 131, 86, 67, 221, 62, 5, 250, 65,\n\t\t0, 56, 77, 44, 22, 115, 226, 8, 142, 2, 19, 145, 39, 241,\n\t\t205, 59, 167, 119, 213, 28, 190, 116, 99, 23, 48, 56, 171,\n\t\t24, 89, 238, 130, 136, 86, 217, 104, 211, 255, 248, 175, 44,\n\t\t135, 90, 196, 89, 211, 31, 250, 86, 91, 9, 186, 135, 63, 215,\n\t\t210, 64, 57, 3, 54, 141, 176, 26, 186, 12, 203, 115, 107,\n\t\t165, 24, 241, 31, 111, 181, 98, 119, 225, 119, 188, 62, 117,\n\t\t36, 86, 0, 245, 232, 118, 63, 71, 179, 200, 45, 204, 27, 202,\n\t\t61, 228, 213, 238, 236, 185, 60, 58, 237, 64, 127, 215, 190,\n\t\t204, 198, 253, 67, 43, 190, 18, 10, 23, 8, 220, 145, 219,\n\t\t65, 25, 122, 93, 191, 167, 156, 67, 121, 233, 16, 44, 207,\n\t\t169, 168, 66, 94, 203, 138, 219, 228, 63, 10, 64, 44, 173,\n\t\t137, 36, 29, 45, 39, 54, 178, 83, 12, 183, 49, 121, 140, 79,\n\t\t223, 124, 252, 9, 231, 242, 95, 127, 254, 233, 253, 239, 191,\n\t\t254, 246, 211, 23, 49, 248, 149, 15, 108, 41, 61, 53, 133,\n\t\t86, 192, 63, 10, 126, 51, 91, 228, 241, 56, 165, 8, 206, 228,\n\t\t189, 112, 24, 242, 6, 199, 215, 74, 88, 136, 82, 28, 27, 54,\n\t\t118, 180, 42, 203, 77, 0, 232, 154, 115, 240, 62, 20, 161,\n\t\t196, 219, 107, 63, 214, 81, 15, 5, 44, 7, 14, 251, 230, 177,\n\t\t43, 69, 210, 35, 218, 81, 186, 203, 29, 244, 114, 20, 173,\n\t\t86, 17, 172, 41, 12, 211, 113, 225, 231, 226, 13, 84, 119,\n\t\t33, 111, 92, 42, 224, 231, 59, 206, 210, 143, 84, 176, 145,\n\t\t20, 80, 231, 217, 6, 182, 170, 155, 97, 140, 144, 20, 100,\n\t\t12, 45, 235, 50, 226, 147, 101, 4, 160, 12, 240, 190, 50,\n\t\t67, 91, 244, 55, 134, 133, 142, 69, 170, 51, 233, 203, 99,\n\t\t13, 201, 55, 238, 75, 32, 118, 178, 212, 83, 109, 33, 57,\n\t\t43, 138, 28, 58, 16, 55, 10, 15, 244, 193, 109, 206, 19, 123,\n\t\t115, 81, 39, 228, 34, 68, 113, 175, 97, 54, 220, 62, 247,\n\t\t1, 91, 231, 226, 46, 161, 32, 132, 231, 211, 67, 138, 238,\n\t\t101, 44, 49, 72, 18, 140, 250, 108, 138, 108, 248, 103, 25,\n\t\t208, 226, 175, 77, 117, 180, 185, 48, 108, 187, 144, 188,\n\t\t142, 33, 62, 25, 225, 206, 121, 63, 7, 58, 182, 225, 203,\n\t\t134, 25, 90, 13, 188, 44, 105, 233, 43, 231, 144, 188, 136,\n\t\t10, 43, 201, 21, 234, 122, 247, 192, 231, 15, 167, 246, 223,\n\t\t190, 253, 245, 219, 255, 251, 101, 94, 247, 63, 222, 222,\n\t\t49, 150, 220, 138, 71, 45, 199, 217, 96, 166, 54, 99, 141,\n\t\t181, 133, 75, 21, 191, 213, 111, 86, 239, 39, 37, 10, 244,\n\t\t84, 90, 157, 251, 25, 249, 35, 250, 171, 87, 252, 36, 183,\n\t\t124, 134, 25, 103, 197, 92, 53, 67, 5, 124, 86, 95, 89, 4,\n\t\t244, 85, 118, 152, 166, 59, 106, 51, 55, 110, 211, 247, 140,\n\t\t170, 68, 36, 89, 230, 184, 170, 1, 216, 85, 221, 187, 91,\n\t\t212, 44, 67, 57, 39, 219, 148, 154, 187, 43, 179, 140, 235,\n\t\t244, 141, 39, 194, 90, 17, 165, 47, 30, 6, 142, 181, 40, 166,\n\t\t248, 178, 12, 81, 162, 73, 54, 119, 67, 214, 61, 89, 12, 215,\n\t\t251, 89, 230, 51, 141, 18, 202, 61, 197, 249, 60, 139, 37,\n\t\t93, 182, 136, 176, 162, 108, 15, 98, 96, 62, 33, 242, 88,\n\t\t177, 1, 234, 172, 152, 18, 26, 115, 152, 8, 240, 96, 247,\n\t\t162, 20, 80, 54, 8, 142, 85, 204, 6, 67, 106, 22, 205, 69,\n\t\t168, 234, 165, 213, 227, 219, 149, 178, 237, 196, 84, 93,\n\t\t107, 233, 106, 168, 185, 134, 130, 173, 155, 109, 243, 94,\n\t\t97, 44, 34, 153, 228, 201, 159, 19, 97, 52, 215, 166, 126,\n\t\t134, 212, 238, 41, 241, 150, 34, 66, 158, 196, 177, 242, 32,\n\t\t143, 120, 136, 15, 168, 25, 87, 18, 214, 32, 40, 102, 211,\n\t\t189, 160, 66, 191, 133, 92, 20, 99, 15, 76, 173, 14, 175,\n\t\t38, 151, 162, 74, 219, 199, 27, 77, 10, 188, 136, 83, 160,\n\t\t43, 11, 195, 91, 86, 71, 122, 211, 21, 21, 237, 23, 219, 100,\n\t\t18, 171, 51, 179, 101, 93, 98, 63, 165, 194, 81, 133, 209,\n\t\t153, 158, 44, 45, 49, 24, 246, 105, 106, 117, 223, 237, 152,\n\t\t252, 219, 107, 168, 79, 69, 104, 250, 95, 179, 100, 13, 241,\n\t\t126, 204, 157, 210, 66, 189, 207, 162, 59, 111, 225, 185,\n\t\t134, 2, 233, 147, 175, 87, 250, 0, 117, 18, 88, 22, 77, 237,\n\t\t176, 74, 245, 247, 243, 44, 5, 77, 209, 152, 179, 19, 163,\n\t\t86, 54, 151, 83, 73, 161, 61, 200, 132, 3, 205, 80, 239, 37,\n\t\t134, 122, 123, 156, 165, 29, 85, 132, 250, 163, 232, 120,\n\t\t214, 116, 63, 243, 80, 42, 97, 233, 12, 154, 106, 247, 81,\n\t\t91, 74, 152, 80, 232, 137, 93, 198, 55, 203, 138, 208, 24,\n\t\t221, 227, 124, 61, 115, 207, 210, 33, 255, 76, 206, 124, 111,\n\t\t3, 29, 238, 63, 165, 122, 148, 212, 174, 196, 43, 107, 51,\n\t\t179, 73, 142, 89, 61, 159, 56, 96, 59, 146, 74, 0, 81, 110,\n\t\t142, 10, 236, 223, 47, 58, 245, 22, 92, 133, 148, 27, 130,\n\t\t82, 145, 58, 47, 92, 179, 182, 158, 241, 66, 119, 141, 142,\n\t\t36, 255, 154, 165, 67, 216, 84, 64, 58, 154, 157, 208, 140,\n\t\t20, 65, 229, 12, 43, 49, 180, 163, 114, 40, 181, 62, 251,\n\t\t235, 73, 161, 246, 116, 219, 142, 95, 158, 183, 29, 82, 90,\n\t\t204, 13, 102, 211, 94, 90, 140, 6, 203, 55, 126, 188, 229,\n\t\t89, 2, 175, 133, 17, 4, 220, 215, 123, 42, 82, 50, 160, 105,\n\t\t13, 144, 44, 245, 254, 121, 113, 72, 77, 5, 89, 61, 26, 220,\n\t\t177, 204, 195, 99, 45, 80, 209, 131, 47, 212, 79, 76, 78,\n\t\t246, 4, 210, 126, 205, 46, 90, 18, 81, 204, 128, 156, 19,\n\t\t40, 76, 59, 176, 186, 128, 21, 83, 200, 41, 35, 235, 163,\n\t\t102, 160, 207, 91, 40, 200, 254, 85, 230, 70, 205, 74, 127,\n\t\t84, 207, 193, 48, 240, 246, 57, 2, 1, 185, 99, 9, 46, 32,\n\t\t241, 29, 146, 166, 37, 228, 68, 117, 132, 122, 180, 172, 139,\n\t\t50, 129, 177, 2, 116, 106, 32, 114, 4, 124, 25, 36, 93, 194,\n\t\t134, 148, 82, 24, 81, 144, 214, 173, 13, 16, 83, 55, 53, 235,\n\t\t4, 147, 158, 30, 136, 22, 143, 80, 1, 140, 47, 40, 237, 34,\n\t\t73, 53, 53, 164, 92, 122, 63, 134, 214, 22, 236, 203, 99,\n\t\t36, 235, 107, 246, 35, 205, 22, 164, 238, 188, 101, 134, 89,\n\t\t189, 148, 184, 170, 17, 39, 121, 177, 26, 71, 167, 248, 77,\n\t\t232, 65, 221, 83, 77, 111, 82, 206, 189, 160, 164, 83, 166,\n\t\t38, 41, 30, 89, 75, 215, 76, 106, 189, 173, 208, 36, 111,\n\t\t30, 15, 87, 158, 198, 199, 91, 87, 204, 113, 26, 51, 32, 77,\n\t\t139, 48, 15, 192, 137, 86, 196, 243, 65, 153, 10, 94, 109,\n\t\t101, 185, 60, 197, 66, 141, 67, 131, 184, 103, 193, 26, 92,\n\t\t89, 83, 45, 147, 129, 121, 98, 136, 84, 203, 145, 195, 172,\n\t\t148, 170, 1, 127, 15, 243, 54, 54, 219, 115, 250, 12, 82,\n\t\t116, 76, 243, 74, 8, 144, 118, 137, 174, 204, 36, 101, 36,\n\t\t98, 209, 210, 178, 178, 215, 170, 167, 226, 225, 27, 121,\n\t\t46, 166, 156, 55, 100, 130, 82, 104, 185, 163, 210, 93, 171,\n\t\t148, 121, 59, 45, 141, 166, 4, 228, 225, 207, 174, 102, 153,\n\t\t25, 52, 192, 8, 75, 108, 130, 233, 172, 109, 102, 114, 15,\n\t\t179, 210, 19, 130, 49, 190, 185, 85, 77, 84, 8, 189, 36, 20,\n\t\t108, 46, 177, 82, 231, 169, 128, 249, 52, 36, 17, 85, 221,\n\t\t100, 62, 17, 204, 152, 73, 149, 130, 176, 13, 71, 73, 99,\n\t\t203, 33, 97, 74, 113, 199, 247, 9, 151, 159, 36, 62, 172,\n\t\t20, 105, 24, 230, 21, 190, 202, 46, 122, 38, 114, 176, 210,\n\t\t81, 66, 174, 160, 85, 156, 152, 63, 72, 226, 28, 206, 193,\n\t\t166, 25, 47, 31, 111, 25, 187, 82, 198, 238, 104, 36, 120,\n\t\t22, 165, 245, 239, 159, 203, 201, 163, 175, 45, 172, 156,\n\t\t25, 217, 95, 205, 146, 3, 85, 168, 74, 146, 43, 141, 36, 198,\n\t\t43, 245, 142, 156, 206, 218, 160, 201, 233, 62, 109, 22, 159,\n\t\t133, 166, 103, 70, 181, 152, 16, 243, 136, 67, 112, 184, 9,\n\t\t73, 132, 44, 129, 0, 44, 77, 53, 72, 205, 110, 115, 8, 136,\n\t\t150, 247, 168, 166, 70, 212, 170, 142, 117, 81, 204, 241,\n\t\t176, 130, 138, 32, 37, 36, 228, 144, 177, 169, 212, 139, 80,\n\t\t84, 204, 210, 15, 79, 151, 49, 73, 68, 234, 140, 215, 29,\n\t\t251, 26, 194, 91, 169, 122, 6, 223, 81, 66, 21, 39, 73, 14,\n\t\t121, 52, 84, 20, 16, 237, 25, 215, 179, 140, 0, 253, 32, 25,\n\t\t21, 183, 36, 122, 23, 129, 214, 171, 240, 154, 175, 223, 46,\n\t\t227, 118, 123, 52, 203, 178, 180, 124, 73, 210, 21, 77, 146,\n\t\t221, 101, 89, 210, 45, 244, 209, 82, 118, 38, 92, 51, 124,\n\t\t45, 245, 165, 147, 12, 101, 148, 130, 89, 94, 191, 139, 66,\n\t\t228, 117, 45, 200, 157, 34, 30, 38, 19, 209, 29, 168, 157,\n\t\t48, 161, 55, 180, 203, 52, 157, 205, 41, 109, 42, 113, 81,\n\t\t7, 138, 104, 32, 105, 162, 220, 1, 54, 131, 172, 43, 216,\n\t\t239, 65, 237, 217, 153, 178, 192, 223, 21, 8, 239, 213, 94,\n\t\t139, 230, 207, 250, 137, 1, 195, 51, 63, 163, 84, 168, 136,\n\t\t121, 229, 98, 148, 190, 121, 88, 75, 220, 114, 89, 155, 6,\n\t\t13, 91, 59, 170, 172, 126, 100, 219, 72, 206, 132, 62, 216,\n\t\t60, 114, 150, 122, 100, 199, 78, 133, 234, 172, 183, 167,\n\t\t154, 237, 100, 153, 41, 73, 61, 73, 84, 192, 108, 158, 181,\n\t\t206, 160, 237, 143, 37, 144, 230, 146, 104, 126, 153, 22,\n\t\t83, 209, 19, 215, 185, 72, 19, 161, 110, 44, 14, 180, 29,\n\t\t255, 151, 231, 112, 16, 237, 6, 232, 85, 250, 73, 220, 201,\n\t\t19, 97, 140, 87, 224, 96, 33, 199, 24, 251, 125, 21, 156,\n\t\t239, 81, 226, 206, 145, 21, 23, 54, 197, 37, 229, 188, 134,\n\t\t52, 244, 15, 49, 61, 62, 33, 196, 218, 195, 253, 233, 251,\n\t\t248, 217, 68, 88, 78, 127, 155, 7, 167, 77, 132, 253, 49,\n\t\t69, 53, 61, 155, 10, 235, 111, 87, 113, 11, 121, 44, 7, 100,\n\t\t93, 7, 243, 83, 123, 138, 208, 240, 57, 102, 54, 199, 48,\n\t\t106, 151, 130, 183, 177, 230, 190, 97, 218, 248, 71, 130,\n\t\t16, 170, 110, 248, 161, 216, 5, 210, 94, 205, 29, 98, 63,\n\t\t147, 203, 109, 75, 222, 145, 19, 74, 94, 208, 196, 222, 38,\n\t\t205, 132, 99, 77, 24, 226, 55, 37, 45, 70, 36, 25, 122, 84,\n\t\t76, 97, 83, 158, 0, 83, 76, 200, 184, 165, 45, 250, 175, 39,\n\t\t174, 230, 21, 89, 52, 57, 79, 204, 233, 172, 26, 160, 120,\n\t\t87, 216, 244, 159, 143, 213, 13, 181, 177, 29, 50, 67, 17,\n\t\t117, 254, 42, 154, 119, 24, 67, 41, 72, 76, 97, 163, 150,\n\t\t34, 18, 41, 132, 129, 81, 217, 57, 76, 53, 1, 146, 109, 8,\n\t\t52, 8, 73, 106, 72, 98, 242, 220, 90, 161, 13, 61, 71, 104,\n\t\t82, 222, 96, 193, 52, 124, 99, 34, 56, 130, 225, 227, 200,\n\t\t97, 18, 196, 168, 20, 35, 75, 154, 150, 146, 131, 164, 186,\n\t\t40, 139, 202, 81, 21, 19, 122, 82, 63, 72, 92, 224, 23, 235,\n\t\t38, 72, 133, 55, 229, 132, 66, 22, 102, 22, 86, 78, 42, 170,\n\t\t183, 88, 90, 32, 73, 89, 117, 115, 121, 104, 96, 132, 245,\n\t\t196, 193, 77, 129, 111, 162, 28, 42, 235, 44, 108, 82, 124,\n\t\t67, 213, 204, 71, 18, 86, 215, 172, 46, 94, 219, 151, 151,\n\t\t211, 251, 37, 243, 242, 204, 254, 237, 22, 252, 211, 120,\n\t\t198, 199, 27, 136, 242, 193, 106, 150, 47, 10, 147, 18, 138,\n\t\t168, 9, 235, 64, 15, 165, 116, 98, 225, 156, 91, 161, 5, 165,\n\t\t154, 15, 119, 43, 100, 1, 76, 229, 6, 22, 142, 208, 160, 201,\n\t\t159, 61, 100, 209, 71, 91, 40, 29, 104, 121, 161, 51, 131,\n\t\t58, 146, 89, 13, 1, 23, 59, 72, 182, 9, 26, 109, 232, 189,\n\t\t148, 196, 111, 2, 81, 66, 15, 5, 164, 202, 195, 54, 116, 49,\n\t\t201, 76, 21, 49, 61, 12, 164, 181, 0, 76, 231, 192, 91, 105,\n\t\t218, 74, 164, 141, 80, 70, 203, 121, 11, 219, 37, 53, 34,\n\t\t115, 7, 145, 219, 156, 97, 94, 164, 21, 125, 51, 56, 122,\n\t\t120, 128, 83, 74, 57, 243, 188, 66, 129, 114, 99, 98, 23,\n\t\t103, 109, 61, 242, 74, 23, 194, 168, 163, 134, 36, 84, 145,\n\t\t211, 116, 145, 83, 149, 145, 173, 215, 93, 29, 153, 9, 78,\n\t\t224, 24, 198, 131, 247, 89, 241, 181, 8, 222, 237, 118, 101,\n\t\t176, 13, 136, 38, 209, 82, 39, 214, 53, 186, 248, 232, 203,\n\t\t156, 135, 231, 250, 168, 134, 241, 40, 201, 204, 122, 228,\n\t\t97, 134, 26, 217, 22, 203, 97, 160, 8, 78, 14, 45, 233, 160,\n\t\t209, 200, 116, 120, 4, 203, 109, 147, 73, 90, 77, 160, 32,\n\t\t89, 78, 202, 102, 35, 31, 216, 11, 172, 37, 148, 171, 95,\n\t\t206, 24, 177, 113, 31, 188, 139, 227, 213, 77, 230, 38, 207,\n\t\t129, 132, 188, 89, 86, 234, 100, 71, 110, 170, 47, 176, 18,\n\t\t141, 226, 79, 231, 52, 197, 83, 181, 132, 31, 90, 187, 63,\n\t\t255, 223, 255, 241, 213, 216, 157, 175, 94, 181, 60, 138,\n\t\t153, 191, 157, 87, 100, 15, 25, 62, 171, 2, 79, 17, 85, 24,\n\t\t185, 158, 200, 193, 155, 197, 16, 130, 19, 106, 44, 103, 135,\n\t\t229, 48, 15, 171, 125, 50, 60, 139, 185, 7, 76, 132, 184,\n\t\t254, 200, 183, 33, 157, 219, 78, 232, 191, 239, 246, 7, 62,\n\t\t174, 209, 207, 219, 241, 221, 217, 152, 254, 91, 31, 123,\n\t\t187, 236, 131, 226, 250, 18, 190, 39, 129, 214, 66, 79, 216,\n\t\t7, 197, 67, 47, 198, 21, 197, 255, 240, 250, 47, 240, 229,\n\t\t253, 90, 237, 244, 174, 217, 155, 99, 125, 133, 118, 158,\n\t\t159, 190, 0, 5, 214, 62, 93, 83, 35, 48, 75, 58, 62, 23, 218,\n\t\t17, 53, 155, 68, 115, 93, 240, 242, 50, 229, 37, 105, 246,\n\t\t99, 31, 25, 130, 23, 42, 218, 248, 217, 85, 251, 87, 126,\n\t\t249, 241, 254, 79, 123, 228, 221, 254, 240, 7, 29, 241, 195,\n\t\t233, 249, 243, 47, 191, 127, 251, 237, 250, 245, 63, 94, 103,\n\t\t232, 79, 127, 51, 119, 76, 102, 117, 50, 181, 43, 71, 115,\n\t\t18, 214, 38, 59, 188, 248, 87, 89, 45, 121, 158, 57, 99, 159,\n\t\t181, 139, 252, 239, 103, 245, 255, 238, 184, 232, 92, 207,\n\t\t225, 243, 251, 117, 181, 61, 229, 49, 118, 201, 246, 18, 252,\n\t\t239, 158, 51, 15, 192, 200, 161, 31, 57, 231, 48, 159, 40,\n\t\t228, 40, 184, 93, 83, 234, 140, 151, 225, 245, 68, 124, 218,\n\t\t181, 73, 145, 152, 167, 253, 233, 203, 137, 248, 113, 123,\n\t\t163, 56, 67, 58, 114, 73, 129, 23, 32, 11, 140, 151, 215,\n\t\t168, 55, 250, 229, 68, 124, 218, 181, 251, 83, 197, 25, 255,\n\t\t122, 34, 126, 188, 165, 92, 66, 249, 159, 254, 152, 55, 3,\n\t\t78, 102, 148, 32, 200, 5, 14, 40, 60, 85, 60, 69, 219, 107,\n\t\t62, 157, 136, 79, 92, 252, 103, 95, 147, 71, 14, 233, 232,\n\t\t34, 213, 175, 164, 59, 171, 233, 82, 208, 36, 23, 129, 145,\n\t\t122, 209, 137, 84, 240, 54, 99, 182, 170, 217, 230, 80, 130,\n\t\t143, 175, 122, 94, 126, 159, 33, 31, 17, 201, 234, 201, 195,\n\t\t235, 102, 143, 57, 86, 62, 89, 110, 133, 62, 250, 118, 117,\n\t\t143, 10, 24, 140, 173, 0, 99, 221, 50, 176, 150, 73, 218,\n\t\t62, 80, 50, 99, 134, 254, 175, 124, 180, 118, 231, 159, 235,\n\t\t205, 127, 178, 18, 159, 63, 191, 127, 39, 105, 229, 47, 209,\n\t\t86, 34, 234, 2, 97, 45, 26, 86, 39, 194, 204, 146, 254, 84,\n\t\t14, 47, 63, 81, 140, 50, 49, 183, 22, 70, 20, 74, 114, 195,\n\t\t248, 216, 213, 231, 235, 229, 254, 227, 238, 247, 157, 235,\n\t\t109, 126, 213, 151, 251, 237, 109, 235, 101, 118, 215, 107,\n\t\t195, 94, 254, 189, 235, 29, 168, 88, 16, 36, 253, 160, 32,\n\t\t176, 86, 37, 212, 152, 93, 66, 168, 185, 178, 248, 78, 76,\n\t\t7, 244, 68, 118, 104, 250, 135, 23, 131, 17, 221, 86, 238,\n\t\t166, 126, 21, 179, 137, 77, 115, 167, 126, 32, 166, 128, 199,\n\t\t146, 5, 197, 115, 166, 48, 142, 158, 46, 202, 22, 30, 40,\n\t\t234, 66, 49, 122, 78, 37, 108, 63, 42, 161, 146, 168, 248,\n\t\t35, 116, 30, 39, 115, 119, 170, 195, 199, 188, 53, 70, 251,\n\t\t182, 206, 40, 101, 202, 237, 114, 23, 183, 129, 210, 60, 194,\n\t\t105, 46, 40, 93, 74, 85, 244, 224, 75, 89, 48, 89, 194, 139,\n\t\t9, 100, 134, 75, 82, 48, 132, 196, 110, 199, 195, 82, 32,\n\t\t138, 4, 231, 228, 246, 199, 105, 56, 106, 93, 141, 119, 5,\n\t\t214, 63, 124, 202, 158, 93, 22, 17, 136, 57, 170, 84, 89,\n\t\t20, 8, 182, 194, 186, 157, 97, 103, 157, 33, 65, 96, 173,\n\t\t175, 73, 139, 172, 87, 63, 7, 18, 192, 76, 43, 33, 198, 187,\n\t\t221, 207, 46, 193, 187, 239, 52, 43, 169, 142, 234, 1, 196,\n\t\t185, 33, 240, 69, 72, 12, 95, 146, 168, 111, 6, 152, 23, 34,\n\t\t173, 120, 148, 147, 243, 105, 216, 228, 152, 198, 99, 98,\n\t\t73, 113, 11, 158, 199, 86, 244, 189, 200, 108, 123, 144, 246,\n\t\t108, 138, 192, 110, 93, 6, 149, 171, 138, 66, 236, 197, 130,\n\t\t231, 124, 74, 150, 183, 129, 242, 206, 185, 63, 242, 243,\n\t\t234, 74, 177, 177, 174, 90, 245, 215, 199, 237, 71, 34, 225,\n\t\t255, 249, 249, 107, 156, 228, 47, 95, 128, 6, 101, 122, 225,\n\t\t177, 25, 15, 224, 117, 46, 41, 229, 44, 145, 101, 9, 166,\n\t\t70, 73, 10, 34, 241, 200, 112, 151, 2, 31, 70, 36, 252, 121,\n\t\t19, 206, 197, 44, 217, 119, 154, 132, 215, 175, 51, 141, 136,\n\t\t74, 15, 17, 100, 123, 192, 245, 241, 255, 227, 58, 4, 55,\n\t\t75, 10, 109, 197, 111, 199, 226, 161, 34, 117, 249, 196, 131,\n\t\t134, 5, 72, 227, 209, 187, 229, 242, 29, 235, 1, 253, 234,\n\t\t54, 190, 221, 74, 127, 180, 1, 182, 174, 54, 143, 189, 65,\n\t\t31, 111, 84, 6, 194, 115, 45, 228, 71, 111, 71, 23, 255, 192,\n\t\t237, 113, 174, 3, 252, 62, 245, 224, 135, 34, 247, 63, 190,\n\t\t253, 242, 215, 111, 143, 111, 255, 249, 165, 143, 243, 31,\n\t\t7, 189, 27, 66, 51, 136, 204, 59, 115, 152, 237, 52, 71, 234,\n\t\t186, 30, 145, 90, 5, 124, 135, 106, 225, 217, 226, 17, 217,\n\t\t120, 85, 82, 140, 155, 28, 230, 153, 59, 38, 164, 29, 137,\n\t\t24, 113, 200, 170, 250, 74, 15, 202, 135, 122, 67, 50, 116,\n\t\t79, 89, 240, 81, 226, 93, 3, 110, 193, 216, 48, 78, 136, 142,\n\t\t202, 147, 175, 239, 161, 88, 221, 43, 120, 110, 208, 67, 114,\n\t\t220, 131, 161, 30, 77, 50, 130, 226, 10, 63, 204, 157, 61,\n\t\t45, 207, 167, 154, 97, 62, 173, 221, 149, 86, 182, 218, 208,\n\t\t216, 98, 53, 209, 87, 5, 0, 97, 240, 214, 107, 107, 209, 106,\n\t\t199, 75, 131, 60, 182, 231, 82, 94, 249, 145, 142, 233, 124,\n\t\t50, 19, 181, 245, 248, 177, 213, 62, 255, 212, 239, 55, 236,\n\t\t25, 11, 172, 105, 161, 108, 25, 181, 105, 161, 26, 103, 238,\n\t\t28, 2, 236, 186, 161, 44, 38, 174, 54, 224, 96, 35, 240, 79,\n\t\t154, 38, 163, 78, 56, 160, 64, 174, 212, 142, 4, 28, 187,\n\t\t168, 104, 186, 61, 213, 44, 105, 88, 37, 43, 51, 221, 97,\n\t\t28, 171, 238, 114, 232, 161, 30, 115, 44, 25, 39, 18, 166,\n\t\t139, 171, 170, 34, 172, 221, 98, 58, 134, 113, 202, 177, 185,\n\t\t205, 202, 140, 124, 135, 201, 155, 133, 29, 25, 132, 107,\n\t\t216, 68, 160, 171, 8, 213, 45, 235, 235, 60, 25, 135, 218,\n\t\t216, 120, 200, 228, 155, 110, 188, 236, 118, 52, 13, 168,\n\t\t89, 121, 234, 138, 245, 208, 45, 244, 143, 215, 90, 17, 30,\n\t\t56, 210, 165, 23, 44, 156, 50, 181, 147, 240, 61, 167, 125,\n\t\t80, 50, 47, 237, 145, 117, 183, 178, 176, 126, 113, 228, 94,\n\t\t55, 119, 2, 65, 204, 20, 184, 207, 204, 65, 237, 17, 252,\n\t\t172, 207, 183, 99, 243, 252, 71, 168, 2, 226, 209, 83, 218,\n\t\t90, 187, 228, 124, 185, 246, 126, 26, 250, 8, 40, 0, 123,\n\t\t131, 95, 230, 15, 56, 95, 159, 0, 181, 201, 160, 147, 166,\n\t\t89, 190, 60, 221, 79, 220, 237, 45, 63, 46, 154, 248, 211,\n\t\t251, 223, 255, 242, 237, 183, 223, 254, 243, 252, 251, 207,\n\t\t95, 68, 207, 151, 52, 218, 18, 187, 89, 98, 157, 14, 74, 0,\n\t\t47, 14, 115, 5, 41, 97, 94, 181, 109, 205, 72, 5, 19, 96,\n\t\t213, 157, 101, 184, 87, 14, 115, 42, 160, 229, 128, 49, 143,\n\t\t104, 210, 34, 169, 240, 190, 57, 158, 211, 41, 230, 138, 7,\n\t\t61, 12, 128, 225, 47, 108, 134, 105, 74, 190, 190, 210, 66,\n\t\t212, 234, 232, 152, 198, 83, 61, 143, 85, 38, 231, 13, 84,\n\t\t190, 122, 202, 248, 254, 11, 153, 84, 29, 159, 67, 45, 126,\n\t\t230, 126, 66, 43, 133, 66, 186, 45, 81, 227, 204, 26, 170,\n\t\t186, 144, 34, 217, 172, 48, 25, 232, 67, 49, 142, 91, 83,\n\t\t180, 37, 43, 43, 19, 152, 21, 211, 31, 40, 27, 194, 93, 191,\n\t\t215, 63, 215, 194, 22, 254, 181, 22, 183, 32, 247, 33, 167,\n\t\t67, 187, 244, 118, 65, 1, 56, 74, 117, 140, 17, 2, 254, 213,\n\t\t48, 166, 7, 134, 234, 161, 242, 168, 41, 219, 136, 69, 82,\n\t\t212, 122, 177, 207, 105, 58, 27, 33, 230, 186, 242, 195, 187,\n\t\t87, 88, 200, 71, 177, 190, 242, 154, 36, 50, 39, 178, 237,\n\t\t45, 186, 111, 57, 59, 107, 210, 165, 60, 253, 132, 98, 215,\n\t\t244, 15, 151, 87, 184, 114, 202, 90, 93, 203, 62, 17, 45,\n\t\t48, 60, 213, 230, 58, 21, 137, 82, 236, 145, 158, 249, 103,\n\t\t42, 156, 131, 233, 229, 199, 229, 28, 203, 93, 196, 183, 108,\n\t\t126, 43, 156, 174, 69, 224, 76, 49, 181, 156, 218, 168, 253,\n\t\t111, 224, 94, 165, 127, 182, 77, 51, 170, 75, 89, 93, 204,\n\t\t105, 227, 131, 86, 88, 137, 241, 41, 129, 119, 77, 153, 163,\n\t\t218, 75, 99, 233, 243, 118, 96, 235, 198, 182, 11, 100, 3,\n\t\t73, 123, 218, 209, 228, 81, 234, 80, 84, 109, 199, 203, 181,\n\t\t105, 117, 227, 45, 83, 87, 38, 173, 28, 95, 134, 91, 69, 72,\n\t\t82, 46, 49, 62, 86, 237, 145, 28, 234, 85, 87, 168, 199, 128,\n\t\t183, 22, 12, 79, 217, 173, 109, 104, 30, 74, 20, 188, 34,\n\t\t202, 217, 242, 247, 44, 214, 98, 66, 205, 202, 238, 37, 111,\n\t\t146, 118, 168, 137, 111, 222, 208, 60, 16, 120, 123, 88, 31,\n\t\t173, 232, 81, 114, 234, 90, 69, 239, 145, 173, 77, 163, 132,\n\t\t116, 224, 157, 154, 15, 198, 125, 107, 166, 66, 82, 142, 84,\n\t\t218, 47, 214, 107, 253, 133, 91, 188, 202, 68, 149, 253, 107,\n\t\t25, 36, 9, 9, 41, 22, 183, 186, 128, 130, 211, 238, 180, 105,\n\t\t215, 253, 203, 245, 195, 111, 151, 201, 69, 227, 24, 181,\n\t\t157, 80, 173, 50, 242, 48, 155, 76, 157, 203, 117, 93, 155,\n\t\t45, 64, 19, 46, 94, 103, 27, 84, 161, 20, 208, 47, 52, 239,\n\t\t6, 72, 40, 91, 168, 22, 173, 191, 244, 46, 36, 248, 234, 0,\n\t\t208, 62, 217, 78, 35, 29, 180, 63, 195, 119, 34, 171, 49,\n\t\t154, 71, 91, 242, 153, 132, 122, 185, 90, 46, 207, 225, 252,\n\t\t215, 110, 134, 248, 14, 32, 235, 131, 167, 176, 118, 110,\n\t\t253, 172, 117, 90, 1, 196, 181, 221, 219, 10, 116, 6, 77,\n\t\t76, 38, 23, 3, 242, 195, 211, 171, 108, 117, 167, 109, 167,\n\t\t241, 53, 155, 150, 142, 97, 13, 51, 121, 102, 82, 212, 64,\n\t\t149, 167, 230, 232, 227, 38, 153, 67, 46, 156, 108, 87, 153,\n\t\t43, 195, 98, 195, 190, 120, 190, 180, 202, 191, 219, 69, 213,\n\t\t145, 185, 242, 254, 98, 220, 206, 54, 245, 68, 133, 236, 86,\n\t\t202, 46, 151, 25, 6, 240, 88, 130, 50, 182, 237, 129, 213,\n\t\t122, 44, 231, 110, 0, 135, 161, 150, 76, 19, 175, 192, 181,\n\t\t145, 227, 171, 0, 27, 54, 6, 6, 234, 182, 91, 78, 189, 231,\n\t\t227, 45, 199, 22, 68, 83, 43, 2, 245, 52, 249, 108, 140, 148,\n\t\t85, 113, 238, 14, 46, 136, 183, 235, 76, 147, 255, 46, 154,\n\t\t149, 97, 174, 156, 76, 218, 192, 67, 58, 101, 222, 79, 39,\n\t\t183, 172, 150, 253, 184, 136, 164, 163, 112, 148, 232, 246,\n\t\t235, 248, 173, 172, 80, 220, 238, 228, 135, 206, 137, 193,\n\t\t86, 205, 81, 88, 229, 195, 23, 107, 127, 91, 240, 183, 88,\n\t\t246, 250, 10, 7, 27, 83, 155, 26, 124, 23, 77, 212, 13, 101,\n\t\t131, 93, 210, 152, 148, 65, 35, 177, 114, 3, 220, 137, 133,\n\t\t173, 161, 142, 201, 227, 186, 208, 224, 138, 70, 50, 205,\n\t\t27, 212, 68, 57, 191, 150, 97, 175, 179, 179, 70, 25, 96,\n\t\t236, 177, 14, 63, 80, 198, 0, 175, 170, 242, 90, 210, 215,\n\t\t171, 173, 168, 241, 163, 147, 206, 202, 5, 46, 203, 111, 179,\n\t\t89, 128, 37, 194, 92, 188, 60, 255, 199, 213, 245, 179, 122,\n\t\t148, 91, 183, 70, 147, 59, 26, 246, 188, 93, 155, 72, 25,\n\t\t246, 86, 147, 5, 98, 10, 68, 16, 58, 139, 179, 232, 56, 133,\n\t\t190, 92, 252, 101, 39, 18, 234, 69, 240, 172, 192, 171, 135,\n\t\t189, 182, 60, 53, 238, 113, 113, 209, 25, 253, 178, 123, 200,\n\t\t12, 71, 96, 52, 171, 126, 34, 69, 99, 90, 189, 140, 28, 66,\n\t\t76, 21, 25, 54, 20, 203, 48, 156, 90, 189, 92, 102, 44, 78,\n\t\t126, 163, 47, 94, 143, 156, 222, 65, 144, 39, 229, 230, 105,\n\t\t86, 53, 124, 230, 116, 181, 124, 41, 54, 184, 172, 222, 163,\n\t\t23, 193, 77, 162, 53, 40, 198, 131, 54, 241, 245, 233, 155,\n\t\t92, 108, 21, 211, 31, 182, 34, 213, 221, 20, 1, 232, 35, 158,\n\t\t109, 229, 88, 205, 211, 41, 137, 211, 202, 222, 138, 215,\n\t\t218, 90, 170, 153, 232, 42, 107, 108, 123, 86, 59, 255, 118,\n\t\t157, 234, 174, 90, 160, 125, 90, 214, 136, 145, 223, 218,\n\t\t6, 243, 104, 94, 254, 25, 124, 158, 34, 254, 102, 48, 98,\n\t\t62, 69, 148, 158, 142, 122, 167, 53, 233, 92, 141, 136, 222,\n\t\t141, 166, 178, 154, 197, 185, 100, 180, 2, 36, 22, 162, 142,\n\t\t76, 7, 215, 185, 122, 121, 12, 56, 175, 61, 114, 66, 175,\n\t\t193, 63, 6, 35, 157, 182, 149, 170, 172, 118, 117, 209, 28,\n\t\t35, 43, 111, 206, 124, 39, 234, 162, 188, 86, 141, 78, 189,\n\t\t194, 187, 200, 240, 104, 218, 247, 22, 184, 246, 177, 16,\n\t\t151, 167, 73, 169, 149, 75, 96, 138, 77, 178, 37, 174, 102,\n\t\t136, 53, 202, 84, 83, 108, 198, 58, 90, 120, 247, 181, 16,\n\t\t132, 14, 132, 53, 19, 198, 230, 175, 85, 25, 193, 33, 48,\n\t\t84, 146, 99, 227, 214, 214, 174, 194, 225, 64, 219, 123, 157,\n\t\t221, 233, 213, 29, 195, 33, 57, 193, 123, 41, 118, 35, 182,\n\t\t176, 125, 216, 147, 10, 124, 106, 123, 161, 94, 27, 53, 77,\n\t\t48, 252, 120, 35, 164, 201, 100, 56, 67, 189, 204, 201, 90,\n\t\t130, 213, 121, 105, 44, 82, 225, 103, 212, 227, 122, 251,\n\t\t148, 253, 108, 105, 162, 36, 142, 56, 245, 190, 24, 44, 250,\n\t\t84, 50, 247, 203, 116, 188, 53, 112, 53, 187, 58, 38, 219,\n\t\t150, 246, 230, 86, 11, 77, 223, 145, 154, 182, 196, 152, 225,\n\t\t51, 183, 179, 176, 129, 223, 144, 24, 54, 80, 26, 33, 181,\n\t\t48, 47, 71, 57, 26, 253, 143, 5, 142, 108, 135, 245, 114,\n\t\t31, 218, 203, 159, 210, 116, 124, 124, 156, 66, 223, 45, 148,\n\t\t230, 166, 134, 232, 89, 182, 167, 251, 205, 85, 213, 21, 86,\n\t\t231, 44, 148, 228, 251, 135, 67, 149, 204, 55, 102, 70, 115,\n\t\t54, 253, 195, 252, 77, 182, 65, 229, 141, 123, 72, 88, 238,\n\t\t51, 27, 205, 135, 224, 164, 88, 215, 80, 234, 6, 222, 255,\n\t\t197, 103, 174, 186, 67, 213, 227, 179, 29, 125, 27, 49, 251,\n\t\t70, 183, 234, 117, 64, 150, 10, 162, 75, 163, 155, 156, 176,\n\t\t173, 200, 247, 99, 35, 230, 119, 133, 206, 24, 174, 116, 62,\n\t\t70, 175, 255, 231, 24, 45, 171, 15, 33, 60, 50, 62, 203, 245,\n\t\t99, 171, 131, 119, 16, 14, 209, 130, 45, 210, 103, 30, 241,\n\t\t211, 71, 73, 89, 4, 91, 96, 174, 212, 85, 217, 20, 157, 221,\n\t\t200, 7, 44, 197, 195, 11, 22, 88, 60, 209, 22, 251, 54, 206,\n\t\t114, 87, 179, 36, 184, 102, 178, 209, 13, 83, 145, 39, 22,\n\t\t102, 183, 247, 107, 95, 183, 77, 98, 97, 48, 76, 96, 173,\n\t\t4, 95, 151, 254, 214, 33, 42, 19, 117, 241, 79, 147, 161,\n\t\t46, 200, 32, 175, 108, 7, 242, 232, 70, 53, 225, 185, 138,\n\t\t4, 75, 147, 251, 82, 65, 180, 137, 166, 121, 107, 211, 95,\n\t\t12, 151, 211, 150, 147, 163, 251, 201, 242, 163, 100, 224,\n\t\t31, 240, 229, 202, 206, 178, 228, 194, 202, 125, 115, 23,\n\t\t233, 250, 35, 153, 221, 226, 214, 143, 166, 212, 154, 205,\n\t\t110, 163, 213, 183, 109, 207, 252, 219, 23, 182, 152, 99,\n\t\t83, 7, 108, 67, 181, 164, 219, 120, 187, 204, 151, 103, 232,\n\t\t154, 180, 82, 226, 92, 77, 241, 73, 41, 59, 244, 2, 26, 219,\n\t\t135, 186, 141, 152, 54, 9, 43, 77, 115, 13, 96, 43, 108, 34,\n\t\t47, 138, 75, 6, 139, 210, 41, 156, 79, 182, 105, 172, 45,\n\t\t63, 175, 167, 87, 27, 219, 174, 15, 23, 229, 229, 170, 107,\n\t\t78, 59, 109, 150, 128, 198, 76, 47, 58, 83, 93, 197, 138,\n\t\t86, 59, 221, 188, 10, 74, 130, 102, 122, 150, 137, 165, 38,\n\t\t134, 128, 220, 102, 157, 68, 46, 203, 93, 135, 243, 4, 144,\n\t\t213, 25, 75, 27, 138, 203, 42, 93, 124, 147, 34, 183, 76,\n\t\t35, 214, 161, 212, 252, 34, 190, 7, 152, 105, 89, 60, 219,\n\t\t178, 210, 229, 227, 219, 144, 207, 82, 85, 99, 63, 222, 144,\n\t\t147, 116, 208, 20, 184, 188, 37, 11, 45, 2, 191, 205, 232,\n\t\t147, 78, 219, 77, 161, 33, 8, 253, 186, 82, 0, 167, 154, 44,\n\t\t77, 35, 194, 155, 173, 53, 4, 7, 233, 117, 172, 218, 69, 150,\n\t\t10, 172, 96, 55, 145, 163, 224, 86, 51, 117, 114, 90, 112,\n\t\t166, 120, 209, 1, 243, 106, 102, 103, 179, 17, 169, 101, 1,\n\t\t144, 105, 108, 142, 137, 102, 88, 254, 31, 243, 172, 154,\n\t\t74, 104, 9, 197, 197, 250, 56, 233, 150, 161, 182, 173, 106,\n\t\t38, 150, 22, 14, 190, 25, 56, 228, 108, 203, 105, 11, 1, 35,\n\t\t51, 221, 200, 252, 206, 177, 114, 121, 245, 76, 110, 139,\n\t\t60, 188, 201, 176, 92, 148, 5, 3, 28, 133, 191, 160, 30, 142,\n\t\t56, 108, 110, 188, 153, 181, 41, 20, 118, 137, 122, 168, 23,\n\t\t121, 13, 33, 189, 220, 41, 183, 76, 70, 191, 24, 146, 183,\n\t\t75, 204, 78, 209, 203, 245, 51, 218, 202, 0, 210, 24, 100,\n\t\t124, 95, 92, 109, 214, 214, 87, 51, 242, 221, 125, 163, 238,\n\t\t240, 117, 160, 221, 136, 172, 213, 192, 49, 123, 185, 91,\n\t\t56, 10, 83, 88, 215, 217, 42, 198, 170, 206, 94, 237, 201,\n\t\t107, 217, 25, 174, 105, 101, 90, 197, 91, 170, 109, 218, 67,\n\t\t221, 132, 48, 66, 61, 83, 121, 49, 142, 121, 126, 187, 27,\n\t\t161, 82, 216, 209, 84, 112, 19, 254, 110, 129, 75, 161, 159,\n\t\t205, 255, 37, 243, 134, 90, 14, 243, 208, 24, 206, 211, 140,\n\t\t182, 107, 233, 76, 100, 181, 82, 72, 139, 77, 120, 33, 164,\n\t\t170, 179, 70, 149, 181, 5, 251, 222, 248, 103, 32, 235, 139,\n\t\t249, 232, 173, 131, 107, 121, 122, 252, 227, 218, 44, 15,\n\t\t125, 21, 153, 126, 96, 175, 170, 150, 225, 170, 105, 251,\n\t\t183, 43, 59, 234, 92, 35, 135, 117, 122, 141, 10, 11, 234,\n\t\t85, 94, 129, 5, 24, 14, 149, 69, 198, 191, 233, 46, 86, 157,\n\t\t239, 64, 231, 163, 95, 251, 166, 61, 225, 213, 238, 109, 2,\n\t\t158, 220, 58, 221, 74, 141, 144, 9, 254, 52, 12, 19, 148,\n\t\t94, 131, 5, 117, 6, 119, 63, 168, 155, 0, 53, 170, 108, 28,\n\t\t101, 246, 9, 176, 86, 140, 69, 227, 222, 211, 228, 201, 143,\n\t\t183, 220, 230, 145, 98, 15, 229, 118, 81, 246, 9, 130, 173,\n\t\t33, 171, 220, 238, 46, 187, 94, 133, 137, 25, 99, 125, 229,\n\t\t76, 128, 181, 172, 31, 95, 164, 200, 15, 131, 68, 223, 254,\n\t\t122, 255, 233, 247, 47, 225, 161, 235, 71, 252, 187, 20, 224,\n\t\t202, 18, 237, 117, 169, 81, 115, 183, 170, 150, 174, 229,\n\t\t155, 189, 152, 24, 215, 218, 138, 124, 91, 53, 5, 205, 51,\n\t\t141, 140, 139, 195, 54, 71, 127, 44, 173, 79, 213, 143, 180,\n\t\t75, 141, 19, 117, 237, 191, 166, 184, 175, 180, 173, 122,\n\t\t44, 51, 222, 138, 224, 200, 137, 77, 237, 219, 148, 145, 229,\n\t\t48, 89, 62, 78, 11, 59, 126, 54, 239, 45, 162, 209, 125, 24,\n\t\t69, 122, 201, 4, 245, 184, 146, 208, 127, 200, 42, 232, 159,\n\t\t220, 0, 135, 249, 89, 46, 231, 168, 212, 79, 53, 15, 144,\n\t\t118, 146, 10, 158, 126, 109, 145, 235, 186, 186, 89, 92, 192,\n\t\t6, 239, 145, 37, 40, 228, 199, 133, 39, 51, 239, 33, 41, 72,\n\t\t10, 118, 19, 10, 170, 198, 63, 1, 181, 16, 117, 31, 233, 154,\n\t\t134, 148, 246, 106, 30, 224, 94, 240, 114, 221, 121, 134,\n\t\t20, 211, 229, 168, 56, 55, 134, 155, 57, 218, 161, 98, 123,\n\t\t157, 78, 201, 65, 210, 174, 223, 148, 61, 19, 114, 203, 126,\n\t\t149, 19, 158, 235, 126, 90, 63, 47, 79, 178, 27, 170, 85,\n\t\t29, 81, 202, 19, 183, 81, 89, 172, 210, 197, 214, 243, 139,\n\t\t161, 33, 123, 68, 232, 114, 194, 77, 55, 191, 93, 172, 146,\n\t\t203, 7, 15, 253, 170, 91, 28, 250, 145, 105, 181, 194, 0,\n\t\t50, 85, 143, 215, 65, 118, 100, 237, 202, 251, 161, 23, 140,\n\t\t193, 126, 202, 153, 151, 108, 3, 145, 57, 179, 197, 122, 44,\n\t\t145, 1, 160, 43, 139, 178, 177, 14, 113, 51, 53, 208, 124,\n\t\t170, 22, 151, 48, 111, 33, 216, 57, 65, 204, 100, 179, 137,\n\t\t84, 195, 82, 106, 76, 171, 2, 162, 76, 151, 151, 1, 215, 45,\n\t\t204, 167, 209, 3, 81, 18, 116, 0, 149, 51, 225, 242, 106,\n\t\t78, 178, 156, 155, 52, 78, 76, 79, 123, 27, 143, 188, 11,\n\t\t243, 165, 214, 54, 119, 251, 236, 42, 127, 5, 99, 166, 234,\n\t\t38, 222, 239, 198, 255, 137, 124, 222, 166, 19, 219, 246,\n\t\t67, 183, 32, 150, 249, 180, 226, 8, 106, 14, 153, 29, 183,\n\t\t60, 163, 6, 21, 180, 123, 204, 238, 45, 230, 35, 178, 210,\n\t\t190, 155, 239, 203, 117, 6, 159, 90, 211, 95, 164, 18, 89,\n\t\t35, 211, 75, 228, 149, 161, 52, 30, 85, 187, 217, 139, 120,\n\t\t153, 213, 186, 50, 72, 233, 211, 177, 133, 78, 87, 113, 231,\n\t\t98, 58, 202, 50, 75, 211, 178, 7, 150, 64, 35, 243, 228, 153,\n\t\t225, 105, 230, 31, 152, 134, 84, 247, 183, 42, 88, 86, 128,\n\t\t221, 9, 106, 244, 239, 253, 147, 83, 137, 63, 161, 94, 154,\n\t\t146, 98, 222, 15, 223, 74, 79, 115, 202, 122, 189, 37, 195,\n\t\t41, 93, 203, 85, 96, 252, 60, 110, 45, 101, 120, 170, 36,\n\t\t204, 34, 203, 183, 153, 79, 85, 37, 156, 47, 49, 27, 227,\n\t\t100, 40, 68, 179, 246, 234, 50, 200, 220, 145, 102, 166, 232,\n\t\t50, 96, 180, 59, 146, 139, 150, 186, 71, 123, 252, 50, 249,\n\t\t114, 72, 42, 247, 238, 110, 246, 163, 110, 242, 74, 250, 34,\n\t\t13, 209, 249, 124, 157, 137, 142, 61, 91, 10, 65, 39, 71,\n\t\t14, 122, 130, 161, 156, 88, 133, 141, 227, 230, 132, 88, 22,\n\t\t234, 114, 174, 38, 131, 51, 153, 154, 127, 82, 223, 228, 140,\n\t\t149, 243, 181, 51, 119, 235, 202, 107, 105, 137, 110, 23,\n\t\t168, 36, 169, 94, 214, 215, 98, 142, 130, 38, 186, 34, 80,\n\t\t49, 249, 176, 13, 65, 24, 14, 193, 153, 47, 191, 63, 222,\n\t\t10, 107, 203, 200, 137, 174, 8, 116, 102, 219, 129, 13, 90,\n\t\t225, 15, 111, 186, 160, 21, 21, 121, 83, 234, 95, 73, 143,\n\t\t117, 65, 108, 202, 223, 98, 109, 233, 170, 117, 173, 244,\n\t\t47, 125, 160, 54, 118, 45, 44, 103, 67, 195, 119, 94, 30,\n\t\t245, 214, 234, 156, 182, 111, 91, 213, 74, 83, 144, 84, 146,\n\t\t65, 182, 54, 227, 228, 74, 110, 139, 232, 212, 201, 116, 121,\n\t\t138, 179, 97, 120, 224, 48, 228, 87, 14, 203, 60, 40, 182,\n\t\t243, 87, 27, 86, 183, 206, 160, 46, 88, 49, 66, 15, 86, 55,\n\t\t114, 225, 220, 128, 4, 113, 162, 49, 231, 77, 242, 44, 5,\n\t\t87, 18, 220, 3, 151, 77, 52, 85, 195, 121, 237, 128, 50, 95,\n\t\t121, 150, 103, 116, 146, 177, 157, 103, 241, 55, 200, 2, 221,\n\t\t64, 106, 110, 48, 126, 58, 179, 119, 190, 70, 118, 229, 194,\n\t\t172, 155, 64, 119, 167, 167, 161, 222, 155, 229, 128, 38,\n\t\t16, 143, 105, 115, 213, 39, 168, 137, 216, 64, 186, 64, 242,\n\t\t137, 145, 104, 202, 225, 150, 67, 239, 19, 195, 29, 34, 205,\n\t\t199, 69, 154, 208, 141, 44, 223, 103, 53, 75, 73, 43, 134,\n\t\t119, 121, 177, 131, 100, 120, 61, 203, 127, 48, 247, 166,\n\t\t211, 117, 21, 91, 40, 230, 59, 53, 193, 216, 187, 203, 1,\n\t\t249, 202, 225, 154, 129, 236, 180, 66, 171, 174, 249, 220,\n\t\t10, 88, 232, 54, 147, 167, 107, 127, 73, 106, 192, 142, 208,\n\t\t46, 214, 201, 105, 193, 178, 41, 245, 128, 0, 143, 250, 144,\n\t\t121, 94, 1, 139, 39, 101, 224, 65, 156, 149, 83, 190, 210,\n\t\t98, 173, 219, 234, 237, 86, 236, 178, 155, 99, 202, 173, 56,\n\t\t19, 150, 158, 145, 91, 77, 136, 9, 254, 153, 220, 67, 117,\n\t\t157, 221, 68, 184, 7, 25, 134, 74, 216, 141, 13, 105, 63,\n\t\t113, 91, 184, 22, 187, 99, 49, 83, 74, 71, 217, 130, 161,\n\t\t136, 140, 76, 245, 180, 24, 222, 162, 137, 55, 22, 183, 232,\n\t\t224, 95, 203, 107, 101, 235, 102, 134, 93, 231, 174, 174,\n\t\t39, 71, 113, 243, 208, 140, 161, 131, 29, 132, 46, 234, 198,\n\t\t177, 230, 69, 63, 181, 243, 179, 211, 38, 21, 157, 23, 11,\n\t\t134, 186, 132, 180, 5, 113, 101, 146, 47, 6, 246, 108, 120,\n\t\t177, 106, 34, 39, 122, 120, 34, 218, 41, 223, 114, 45, 96,\n\t\t225, 250, 164, 124, 245, 78, 187, 165, 189, 38, 242, 39, 154,\n\t\t65, 96, 178, 179, 187, 203, 93, 74, 205, 155, 189, 169, 106,\n\t\t55, 63, 49, 25, 185, 160, 253, 92, 126, 70, 214, 244, 89,\n\t\t22, 171, 125, 0, 208, 15, 44, 100, 83, 212, 116, 227, 212,\n\t\t221, 238, 135, 118, 224, 251, 255, 249, 246, 251, 117, 127,\n\t\t181, 3, 175, 246, 3, 186, 57, 16, 63, 141, 26, 198, 163, 171,\n\t\t199, 12, 100, 160, 143, 205, 57, 154, 161, 115, 221, 141,\n\t\t77, 121, 178, 157, 81, 34, 133, 188, 42, 211, 164, 156, 67,\n\t\t125, 156, 41, 35, 231, 185, 116, 112, 142, 39, 20, 242, 224,\n\t\t181, 241, 72, 68, 32, 147, 207, 124, 0, 138, 29, 236, 76,\n\t\t45, 133, 126, 159, 162, 86, 241, 13, 32, 248, 110, 49, 204,\n\t\t7, 234, 190, 31, 169, 150, 144, 30, 205, 152, 47, 155, 210,\n\t\t132, 15, 9, 223, 142, 80, 239, 39, 13, 16, 36, 1, 195, 83,\n\t\t83, 24, 59, 115, 181, 18, 155, 233, 11, 193, 233, 195, 111,\n\t\t252, 184, 189, 21, 86, 80, 143, 220, 231, 99, 56, 46, 152,\n\t\t151, 203, 221, 136, 165, 31, 46, 202, 146, 148, 194, 216,\n\t\t18, 152, 147, 85, 69, 145, 4, 138, 92, 75, 168, 15, 243, 117,\n\t\t170, 84, 122, 64, 110, 196, 100, 152, 52, 233, 27, 96, 225,\n\t\t122, 72, 31, 111, 37, 38, 254, 86, 110, 241, 227, 76, 165,\n\t\t128, 128, 104, 100, 28, 129, 109, 158, 34, 119, 3, 235, 7,\n\t\t88, 8, 138, 38, 190, 211, 252, 113, 98, 208, 251, 175, 255,\n\t\t248, 237, 250, 246, 251, 111, 223, 190, 48, 45, 255, 53, 123,\n\t\t106, 16, 136, 227, 169, 40, 112, 176, 116, 106, 237, 56, 185,\n\t\t83, 137, 132, 251, 34, 81, 135, 130, 63, 66, 204, 73, 56,\n\t\t233, 186, 32, 167, 211, 19, 249, 34, 77, 82, 132, 184, 239,\n\t\t114, 85, 85, 12, 133, 219, 60, 178, 250, 250, 227, 25, 239,\n\t\t231, 52, 197, 217, 238, 139, 235, 186, 47, 79, 176, 251, 248,\n\t\t117, 253, 2, 255, 89, 109, 146, 3, 8, 182, 128, 84, 132, 123,\n\t\t43, 5, 84, 193, 215, 195, 153, 67, 204, 253, 25, 67, 110,\n\t\t90, 71, 75, 205, 231, 35, 37, 58, 166, 27, 74, 20, 6, 120,\n\t\t74, 9, 191, 219, 5, 14, 47, 94, 218, 49, 47, 66, 60, 28, 80,\n\t\t204, 31, 111, 137, 183, 64, 116, 89, 60, 78, 158, 2, 25, 251,\n\t\t129, 85, 4, 224, 195, 28, 211, 17, 175, 120, 76, 23, 191,\n\t\t122, 242, 203, 137, 127, 50, 130, 255, 120, 255, 58, 118,\n\t\t95, 86, 240, 202, 49, 40, 61, 5, 86, 99, 75, 13, 25, 196,\n\t\t23, 108, 101, 167, 89, 81, 32, 181, 206, 222, 216, 0, 154,\n\t\t201, 96, 37, 45, 166, 218, 220, 151, 225, 246, 247, 164, 165,\n\t\t83, 170, 130, 51, 131, 100, 215, 96, 35, 119, 58, 13, 55,\n\t\t10, 55, 188, 46, 104, 227, 121, 22, 136, 55, 237, 218, 125,\n\t\t3, 186, 241, 154, 38, 100, 250, 65, 94, 145, 140, 166, 182,\n\t\t17, 89, 88, 55, 13, 139, 255, 155, 41, 147, 29, 37, 84, 192,\n\t\t148, 100, 28, 202, 151, 89, 190, 86, 84, 203, 139, 233, 184,\n\t\t22, 198, 246, 21, 85, 72, 88, 87, 212, 68, 169, 113, 246,\n\t\t51, 245, 214, 13, 231, 3, 85, 70, 96, 50, 204, 134, 25, 16,\n\t\t86, 156, 222, 244, 173, 106, 196, 137, 234, 120, 143, 40,\n\t\t160, 92, 15, 247, 74, 153, 70, 232, 238, 41, 217, 31, 204,\n\t\t8, 204, 107, 137, 232, 238, 119, 88, 253, 10, 11, 130, 229,\n\t\t182, 26, 101, 225, 33, 214, 151, 78, 26, 160, 203, 150, 177,\n\t\t2, 145, 190, 232, 193, 86, 117, 124, 120, 241, 150, 85, 132,\n\t\t197, 237, 66, 244, 140, 155, 102, 128, 226, 39, 135, 120,\n\t\t41, 131, 49, 43, 123, 162, 159, 24, 52, 107, 249, 85, 212,\n\t\t174, 109, 166, 122, 116, 205, 56, 213, 19, 188, 243, 106,\n\t\t103, 74, 122, 149, 58, 136, 109, 202, 120, 221, 18, 189, 30,\n\t\t60, 188, 83, 16, 112, 234, 115, 243, 200, 67, 83, 37, 100,\n\t\t46, 184, 40, 133, 2, 114, 207, 124, 157, 221, 132, 133, 127,\n\t\t92, 202, 27, 143, 201, 232, 240, 159, 226, 251, 29, 67, 98,\n\t\t57, 3, 195, 84, 23, 203, 78, 155, 91, 197, 144, 172, 181,\n\t\t169, 197, 66, 169, 102, 102, 52, 139, 163, 208, 88, 49, 26,\n\t\t1, 176, 72, 59, 220, 220, 54, 211, 213, 113, 65, 194, 181,\n\t\t169, 198, 11, 118, 41, 161, 196, 209, 58, 66, 186, 245, 98,\n\t\t1, 14, 51, 13, 64, 204, 168, 250, 138, 206, 65, 183, 130,\n\t\t204, 165, 230, 56, 21, 113, 148, 84, 211, 94, 108, 179, 106,\n\t\t14, 225, 181, 9, 162, 199, 98, 140, 160, 160, 172, 89, 11,\n\t\t30, 157, 55, 207, 5, 24, 84, 228, 242, 98, 22, 82, 9, 148,\n\t\t59, 168, 228, 74, 235, 93, 152, 84, 114, 170, 98, 244, 246,\n\t\t142, 63, 213, 181, 238, 37, 136, 101, 184, 18, 248, 31, 101,\n\t\t17, 153, 186, 142, 148, 45, 77, 146, 217, 98, 27, 169, 126,\n\t\t130, 159, 229, 136, 69, 15, 243, 93, 81, 248, 59, 208, 97,\n\t\t17, 92, 154, 186, 52, 77, 97, 86, 77, 85, 169, 88, 213, 135,\n\t\t145, 61, 84, 165, 171, 65, 254, 60, 220, 188, 55, 119, 157,\n\t\t231, 1, 108, 252, 133, 198, 2, 62, 133, 1, 80, 77, 180, 36,\n\t\t43, 95, 102, 173, 33, 18, 13, 86, 212, 53, 101, 68, 109, 21,\n\t\t86, 197, 51, 245, 84, 143, 25, 162, 212, 221, 206, 161, 167,\n\t\t217, 177, 191, 81, 43, 98, 30, 160, 246, 129, 106, 251, 137,\n\t\t98, 66, 153, 113, 173, 218, 86, 245, 87, 85, 22, 152, 158,\n\t\t52, 154, 167, 253, 102, 224, 200, 161, 248, 89, 75, 195, 154,\n\t\t102, 210, 198, 25, 250, 237, 74, 49, 6, 58, 154, 46, 215,\n\t\t212, 83, 72, 135, 22, 148, 59, 136, 178, 241, 127, 46, 182,\n\t\t27, 147, 129, 44, 113, 151, 231, 84, 52, 63, 55, 88, 227,\n\t\t177, 41, 208, 228, 58, 247, 231, 19, 31, 111, 53, 167, 80,\n\t\t198, 65, 157, 66, 5, 175, 137, 73, 164, 188, 197, 97, 93,\n\t\t150, 152, 91, 218, 224, 168, 151, 69, 157, 205, 75, 51, 143,\n\t\t38, 113, 89, 244, 121, 115, 99, 47, 6, 37, 33, 139, 33, 166,\n\t\t220, 186, 36, 179, 121, 201, 210, 72, 53, 79, 76, 118, 165,\n\t\t215, 243, 83, 200, 56, 137, 13, 69, 179, 88, 20, 143, 14,\n\t\t68, 114, 11, 66, 115, 197, 130, 83, 60, 213, 60, 154, 149,\n\t\t62, 222, 106, 143, 1, 153, 247, 61, 140, 130, 72, 175, 86,\n\t\t165, 44, 9, 165, 157, 169, 6, 16, 172, 176, 192, 72, 37, 110,\n\t\t39, 168, 133, 212, 71, 191, 148, 85, 138, 80, 157, 124, 43,\n\t\t114, 122, 70, 84, 82, 174, 66, 42, 101, 229, 46, 147, 16,\n\t\t128, 201, 206, 18, 105, 102, 76, 164, 217, 167, 196, 161,\n\t\t169, 21, 161, 95, 200, 212, 72, 70, 7, 213, 111, 245, 12,\n\t\t188, 29, 53, 194, 132, 39, 161, 136, 132, 60, 105, 216, 186,\n\t\t245, 4, 255, 219, 99, 125, 199, 31, 6, 2, 128, 126, 126, 251,\n\t\t151, 21, 45, 232, 92, 96, 113, 6, 9, 138, 22, 120, 246, 250,\n\t\t229, 67, 169, 31, 125, 20, 184, 191, 74, 200, 227, 160, 54,\n\t\t131, 208, 124, 201, 134, 123, 216, 47, 115, 79, 70, 251, 117,\n\t\t187, 60, 99, 37, 174, 228, 149, 115, 93, 103, 63, 127, 168,\n\t\t99, 253, 227, 47, 255, 248, 229, 247, 127, 124, 209, 178,\n\t\t254, 246, 199, 217, 178, 84, 198, 81, 74, 188, 82, 238, 172,\n\t\t37, 130, 115, 13, 245, 254, 120, 58, 150, 241, 142, 163, 211,\n\t\t14, 245, 28, 184, 149, 236, 60, 159, 177, 91, 244, 191, 143,\n\t\t183, 28, 163, 84, 191, 184, 206, 5, 248, 112, 127, 153, 238,\n\t\t28, 121, 81, 33, 233, 254, 169, 228, 162, 169, 122, 58, 145,\n\t\t90, 143, 86, 163, 35, 171, 68, 60, 20, 165, 114, 57, 204,\n\t\t214, 18, 60, 170, 121, 198, 116, 55, 208, 103, 23, 145, 26,\n\t\t210, 205, 104, 135, 179, 41, 21, 211, 106, 170, 180, 192,\n\t\t111, 250, 120, 243, 164, 195, 22, 67, 186, 44, 184, 17, 157,\n\t\t13, 219, 108, 90, 59, 206, 226, 222, 127, 119, 101, 63, 123,\n\t\t164, 230, 243, 21, 151, 3, 242, 35, 254, 54, 205, 215, 160,\n\t\t206, 155, 237, 54, 60, 112, 229, 211, 235, 95, 94, 175, 96,\n\t\t163, 13, 104, 155, 218, 111, 151, 3, 243, 205, 235, 110, 18,\n\t\t167, 25, 143, 174, 34, 251, 31, 22, 217, 85, 63, 133, 232,\n\t\t55, 71, 246, 4, 183, 164, 52, 192, 168, 174, 7, 230, 238,\n\t\t244, 56, 191, 220, 68, 158, 193, 96, 202, 92, 81, 62, 128,\n\t\t179, 152, 54, 106, 175, 20, 215, 1, 185, 22, 55, 86, 166,\n\t\t136, 112, 207, 181, 169, 31, 148, 11, 204, 102, 99, 140, 73,\n\t\t159, 66, 156, 226, 146, 32, 203, 127, 250, 60, 202, 151, 79,\n\t\t28, 135, 10, 145, 250, 46, 196, 147, 241, 105, 10, 157, 54,\n\t\t121, 124, 170, 202, 69, 228, 14, 168, 151, 249, 249, 78, 150,\n\t\t176, 76, 182, 67, 111, 115, 134, 155, 93, 143, 41, 90, 192,\n\t\t69, 217, 165, 120, 134, 135, 27, 63, 139, 209, 252, 73, 127,\n\t\t61, 184, 155, 48, 66, 102, 97, 192, 199, 83, 151, 91, 246,\n\t\t236, 62, 71, 132, 212, 151, 205, 240, 121, 176, 158, 88, 140,\n\t\t105, 188, 34, 199, 0, 219, 84, 241, 82, 31, 58, 84, 83, 1,\n\t\t85, 114, 122, 122, 10, 179, 40, 72, 206, 120, 103, 202, 120,\n\t\t182, 154, 51, 218, 125, 160, 131, 206, 85, 152, 205, 26, 108,\n\t\t248, 244, 40, 205, 49, 34, 151, 123, 137, 221, 37, 237, 218,\n\t\t184, 105, 23, 69, 247, 235, 33, 36, 111, 228, 172, 160, 113,\n\t\t205, 16, 117, 8, 201, 31, 244, 165, 30, 41, 247, 76, 1, 101,\n\t\t144, 63, 124, 81, 188, 126, 207, 227, 115, 111, 84, 11, 74,\n\t\t154, 45, 65, 50, 98, 58, 7, 147, 80, 131, 123, 103, 254, 88,\n\t\t194, 254, 253, 75, 209, 187, 111, 95, 138, 191, 44, 30, 171,\n\t\t20, 133, 150, 186, 62, 19, 229, 187, 98, 85, 158, 103, 18,\n\t\t198, 128, 228, 100, 102, 134, 52, 247, 108, 238, 108, 73,\n\t\t34, 118, 38, 207, 167, 20, 225, 85, 31, 234, 243, 76, 224,\n\t\t131, 228, 69, 46, 74, 141, 45, 66, 203, 208, 50, 184, 202,\n\t\t201, 27, 82, 145, 82, 82, 227, 154, 170, 79, 22, 69, 136,\n\t\t80, 157, 33, 177, 158, 36, 42, 104, 175, 1, 132, 46, 36, 57,\n\t\t81, 162, 196, 103, 76, 53, 91, 37, 172, 18, 145, 148, 74,\n\t\t69, 210, 61, 43, 166, 0, 187, 163, 72, 104, 241, 212, 126,\n\t\t252, 125, 120, 117, 23, 28, 234, 213, 79, 125, 252, 199, 91,\n\t\t110, 226, 15, 163, 64, 3, 164, 65, 72, 66, 5, 21, 186, 229,\n\t\t71, 17, 230, 28, 162, 221, 90, 249, 105, 136, 89, 246, 60,\n\t\t147, 64, 58, 175, 173, 58, 4, 200, 46, 53, 22, 45, 86, 105,\n\t\t171, 33, 95, 137, 53, 245, 163, 26, 182, 177, 75, 133, 169,\n\t\t62, 62, 31, 227, 218, 15, 148, 234, 173, 232, 153, 54, 54,\n\t\t244, 11, 43, 23, 49, 195, 68, 43, 158, 233, 46, 71, 230, 194,\n\t\t131, 243, 200, 51, 126, 186, 201, 21, 247, 22, 123, 180, 96,\n\t\t160, 176, 136, 213, 130, 83, 65, 253, 36, 238, 194, 143, 183,\n\t\t52, 42, 102, 13, 133, 60, 174, 61, 77, 115, 129, 165, 213,\n\t\t167, 96, 39, 80, 219, 189, 33, 221, 88, 50, 221, 79, 251,\n\t\t139, 38, 12, 61, 33, 56, 242, 199, 27, 181, 18, 88, 38, 141,\n\t\t208, 69, 189, 82, 179, 196, 224, 19, 86, 122, 184, 42, 28,\n\t\t176, 91, 190, 190, 108, 96, 79, 67, 33, 92, 206, 249, 98,\n\t\t133, 93, 93, 232, 39, 75, 35, 7, 77, 133, 42, 214, 59, 0,\n\t\t194, 56, 21, 170, 69, 148, 140, 21, 223, 33, 248, 221, 179,\n\t\t116, 45, 80, 80, 204, 139, 81, 192, 168, 137, 224, 135, 234,\n\t\t19, 57, 84, 208, 204, 99, 127, 119, 170, 3, 139, 18, 212,\n\t\t180, 78, 200, 12, 81, 41, 232, 241, 116, 119, 22, 25, 171,\n\t\t238, 89, 109, 77, 153, 185, 104, 137, 210, 61, 254, 9, 17,\n\t\t241, 254, 29, 25, 241, 181, 50, 74, 119, 194, 146, 22, 81,\n\t\t92, 168, 177, 225, 159, 150, 55, 71, 190, 174, 184, 189, 157,\n\t\t205, 185, 210, 197, 232, 80, 32, 145, 39, 73, 153, 169, 163,\n\t\t123, 12, 200, 146, 77, 176, 103, 177, 85, 53, 48, 172, 182,\n\t\t252, 24, 230, 57, 80, 183, 179, 160, 10, 80, 43, 69, 94, 102,\n\t\t66, 218, 110, 201, 218, 65, 90, 85, 232, 50, 96, 145, 101,\n\t\t161, 216, 6, 179, 138, 65, 143, 59, 117, 144, 104, 204, 232,\n\t\t85, 142, 16, 234, 216, 180, 62, 217, 118, 121, 231, 28, 60,\n\t\t237, 71, 14, 253, 178, 34, 182, 158, 202, 201, 66, 178, 4,\n\t\t73, 186, 215, 113, 71, 1, 195, 51, 177, 146, 242, 48, 118,\n\t\t13, 98, 107, 246, 74, 160, 209, 203, 89, 156, 106, 134, 246,\n\t\t202, 185, 139, 252, 208, 50, 97, 247, 19, 148, 230, 15, 79,\n\t\t209, 159, 6, 201, 7, 172, 68, 247, 10, 145, 57, 213, 120,\n\t\t72, 58, 133, 102, 251, 248, 237, 178, 164, 254, 181, 66, 61,\n\t\t238, 172, 195, 66, 6, 1, 179, 60, 77, 135, 33, 172, 16, 216,\n\t\t134, 45, 67, 218, 131, 147, 78, 91, 241, 180, 92, 233, 94,\n\t\t106, 9, 249, 113, 54, 219, 51, 114, 154, 161, 223, 79, 20,\n\t\t11, 122, 47, 144, 79, 40, 139, 30, 155, 138, 178, 24, 132,\n\t\t110, 70, 109, 237, 163, 140, 133, 77, 181, 82, 123, 77, 130,\n\t\t118, 26, 119, 218, 112, 254, 214, 159, 122, 66, 136, 190,\n\t\t37, 110, 32, 129, 48, 213, 149, 196, 189, 144, 51, 234, 181,\n\t\t40, 49, 230, 143, 22, 199, 127, 254, 244, 219, 23, 114, 175,\n\t\t111, 95, 152, 102, 150, 125, 146, 39, 8, 77, 35, 133, 113,\n\t\t157, 220, 65, 6, 61, 45, 166, 106, 218, 254, 199, 251, 161,\n\t\t200, 92, 241, 254, 68, 243, 210, 72, 214, 172, 237, 67, 26,\n\t\t144, 186, 86, 241, 112, 71, 194, 27, 210, 71, 8, 29, 22, 28,\n\t\t96, 3, 59, 236, 17, 55, 139, 223, 154, 46, 72, 198, 54, 227,\n\t\t0, 14, 211, 62, 205, 221, 70, 235, 215, 109, 101, 158, 213,\n\t\t227, 156, 199, 198, 166, 41, 43, 200, 94, 189, 213, 244, 85,\n\t\t123, 197, 29, 111, 30, 23, 180, 204, 82, 106, 2, 16, 145,\n\t\t11, 61, 43, 68, 60, 116, 94, 19, 56, 155, 78, 236, 73, 12,\n\t\t174, 24, 90, 221, 116, 155, 205, 201, 25, 180, 63, 159, 120,\n\t\t223, 90, 99, 1, 121, 104, 107, 62, 91, 86, 78, 190, 41, 130,\n\t\t206, 59, 193, 51, 166, 173, 228, 102, 111, 189, 23, 38, 211,\n\t\t253, 182, 40, 23, 134, 18, 232, 232, 144, 234, 73, 218, 242,\n\t\t34, 68, 165, 214, 181, 139, 80, 46, 4, 126, 223, 114, 215,\n\t\t229, 201, 230, 26, 212, 207, 52, 143, 143, 194, 9, 205, 163,\n\t\t105, 54, 186, 129, 115, 72, 151, 180, 1, 213, 139, 137, 134,\n\t\t177, 253, 68, 197, 103, 209, 157, 141, 30, 97, 201, 97, 204,\n\t\t200, 28, 22, 166, 208, 32, 78, 86, 251, 235, 203, 137, 119,\n\t\t139, 71, 27, 118, 209, 160, 142, 245, 114, 178, 164, 102,\n\t\t179, 73, 10, 193, 56, 122, 169, 89, 120, 118, 57, 194, 141,\n\t\t85, 132, 210, 178, 207, 116, 202, 120, 29, 237, 46, 48, 72,\n\t\t223, 126, 138, 129, 82, 36, 19, 131, 44, 121, 81, 121, 106,\n\t\t111, 215, 194, 4, 169, 11, 219, 157, 196, 85, 253, 224, 30,\n\t\t29, 209, 96, 203, 6, 183, 213, 247, 120, 170, 252, 18, 160,\n\t\t234, 232, 55, 158, 14, 79, 11, 51, 121, 106, 193, 127, 221,\n\t\t82, 172, 152, 75, 234, 87, 106, 54, 125, 247, 194, 221, 218,\n\t\t73, 46, 97, 173, 68, 231, 91, 65, 84, 95, 112, 156, 185, 193,\n\t\t168, 74, 41, 252, 161, 183, 35, 44, 127, 199, 237, 93, 142,\n\t\t55, 151, 199, 187, 185, 78, 194, 114, 158, 124, 188, 21, 110,\n\t\t18, 136, 186, 36, 241, 50, 74, 82, 108, 51, 23, 180, 8, 131,\n\t\t204, 93, 104, 51, 26, 156, 46, 91, 109, 172, 18, 213, 186,\n\t\t84, 224, 132, 207, 123, 163, 108, 41, 230, 219, 206, 27, 214,\n\t\t186, 250, 158, 169, 3, 174, 30, 240, 203, 118, 242, 34, 228,\n\t\t224, 172, 231, 118, 39, 240, 82, 191, 129, 210, 222, 221,\n\t\t46, 157, 201, 206, 75, 97, 72, 246, 53, 195, 113, 172, 208,\n\t\t170, 203, 168, 103, 244, 67, 179, 38, 93, 56, 163, 137, 2,\n\t\t109, 117, 51, 182, 201, 98, 196, 52, 14, 214, 160, 100, 100,\n\t\t53, 151, 101, 22, 17, 198, 232, 240, 132, 92, 115, 139, 145,\n\t\t196, 20, 150, 135, 117, 161, 40, 141, 180, 198, 3, 71, 197,\n\t\t230, 62, 141, 219, 70, 228, 180, 80, 128, 134, 106, 95, 224,\n\t\t148, 210, 181, 147, 228, 37, 180, 129, 161, 150, 52, 181,\n\t\t241, 48, 105, 172, 241, 184, 251, 226, 231, 88, 88, 170, 236,\n\t\t121, 184, 27, 211, 192, 74, 251, 180, 60, 0, 89, 115, 158,\n\t\t103, 105, 0, 17, 43, 217, 100, 209, 195, 226, 169, 52, 102,\n\t\t238, 59, 217, 64, 238, 94, 101, 67, 178, 94, 240, 173, 131,\n\t\t96, 122, 103, 201, 151, 89, 233, 188, 61, 111, 57, 201, 93,\n\t\t131, 157, 159, 146, 199, 68, 130, 59, 254, 211, 211, 12, 197,\n\t\t195, 160, 129, 84, 89, 112, 166, 50, 70, 255, 78, 121, 240,\n\t\t202, 47, 146, 27, 202, 203, 92, 77, 175, 61, 153, 163, 255,\n\t\t54, 2, 153, 120, 212, 113, 120, 166, 47, 89, 119, 84, 251,\n\t\t187, 77, 46, 236, 49, 69, 41, 196, 68, 140, 70, 217, 152,\n\t\t44, 179, 214, 20, 90, 87, 243, 212, 209, 97, 216, 61, 165,\n\t\t235, 75, 203, 183, 228, 124, 249, 250, 175, 213, 235, 84,\n\t\t152, 246, 101, 27, 145, 23, 93, 244, 234, 180, 158, 233, 52,\n\t\t254, 185, 126, 244, 211, 207, 191, 253, 229, 151, 191, 188,\n\t\t104, 72, 35, 151, 85, 23, 170, 240, 66, 26, 125, 206, 251,\n\t\t10, 181, 81, 9, 29, 53, 250, 80, 69, 36, 207, 80, 107, 68,\n\t\t78, 202, 164, 217, 143, 82, 143, 145, 241, 167, 139, 23, 60,\n\t\t255, 73, 74, 46, 114, 7, 78, 252, 158, 81, 195, 47, 60, 44,\n\t\t102, 118, 135, 142, 13, 191, 215, 169, 174, 192, 8, 151, 16,\n\t\t76, 47, 126, 154, 90, 239, 245, 72, 161, 213, 152, 231, 149,\n\t\t107, 104, 89, 48, 112, 224, 139, 174, 81, 26, 196, 22, 105,\n\t\t155, 153, 187, 44, 242, 51, 216, 86, 207, 2, 189, 172, 161,\n\t\t204, 136, 56, 77, 75, 26, 79, 26, 121, 10, 247, 97, 233, 146,\n\t\t3, 48, 202, 65, 8, 154, 0, 118, 55, 123, 236, 71, 206, 242,\n\t\t105, 160, 44, 203, 49, 131, 127, 178, 199, 4, 175, 81, 230,\n\t\t31, 122, 226, 98, 243, 112, 176, 217, 30, 225, 191, 107, 4,\n\t\t3, 160, 7, 80, 226, 159, 117, 134, 220, 81, 45, 219, 162,\n\t\t201, 37, 164, 106, 10, 141, 252, 137, 13, 231, 222, 65, 19,\n\t\t3, 187, 136, 27, 85, 195, 232, 74, 19, 41, 126, 28, 41, 96,\n\t\t82, 163, 180, 198, 233, 175, 230, 8, 149, 98, 61, 186, 159,\n\t\t144, 170, 73, 183, 139, 28, 158, 69, 224, 202, 230, 61, 147,\n\t\t34, 136, 160, 240, 33, 163, 114, 67, 64, 60, 194, 3, 2, 52,\n\t\t157, 205, 187, 100, 170, 110, 101, 131, 52, 199, 41, 220,\n\t\t92, 37, 199, 142, 48, 152, 68, 249, 184, 241, 108, 168, 76,\n\t\t73, 249, 200, 13, 129, 216, 40, 18, 159, 6, 60, 25, 145, 215,\n\t\t78, 145, 50, 28, 137, 119, 32, 65, 59, 160, 111, 185, 37,\n\t\t69, 32, 180, 81, 134, 54, 78, 65, 142, 142, 57, 0, 181, 44,\n\t\t81, 98, 221, 29, 15, 75, 82, 68, 18, 37, 196, 27, 207, 142,\n\t\t18, 39, 102, 7, 107, 68, 253, 38, 17, 160, 214, 103, 27, 18,\n\t\t173, 21, 26, 242, 26, 80, 171, 138, 79, 224, 110, 126, 126,\n\t\t159, 233, 162, 26, 40, 207, 140, 230, 200, 88, 177, 49, 74,\n\t\t177, 11, 112, 139, 132, 245, 84, 38, 77, 66, 145, 57, 1, 198,\n\t\t39, 101, 213, 102, 97, 133, 191, 105, 236, 11, 211, 61, 119,\n\t\t94, 225, 50, 208, 108, 209, 85, 245, 59, 230, 18, 101, 17,\n\t\t160, 106, 192, 217, 220, 59, 45, 247, 156, 126, 83, 163, 48,\n\t\t134, 198, 99, 120, 102, 86, 84, 117, 225, 158, 69, 107, 120,\n\t\t114, 73, 99, 110, 87, 196, 149, 172, 29, 132, 150, 102, 2,\n\t\t251, 190, 44, 79, 226, 197, 154, 88, 110, 136, 189, 138, 98,\n\t\t217, 161, 207, 163, 36, 68, 67, 17, 8, 46, 177, 177, 132,\n\t\t235, 243, 24, 69, 154, 133, 35, 48, 26, 242, 107, 34, 128,\n\t\t30, 77, 242, 73, 38, 205, 54, 81, 132, 33, 241, 134, 213,\n\t\t71, 160, 252, 67, 49, 243, 151, 159, 126, 255, 253, 241, 237,\n\t\t252, 229, 219, 107, 114, 213, 200, 245, 143, 65, 117, 165,\n\t\t140, 0, 186, 46, 56, 166, 90, 196, 116, 201, 45, 16, 38, 248,\n\t\t28, 60, 92, 157, 183, 100, 94, 251, 61, 228, 196, 39, 102,\n\t\t198, 8, 139, 225, 171, 59, 196, 144, 138, 26, 84, 165, 71,\n\t\t240, 12, 76, 38, 20, 253, 201, 41, 180, 130, 32, 101, 10,\n\t\t3, 207, 200, 14, 4, 174, 252, 50, 4, 167, 241, 233, 173, 99,\n\t\t174, 9, 156, 162, 77, 144, 2, 86, 201, 217, 195, 164, 116,\n\t\t218, 158, 81, 101, 101, 54, 194, 223, 103, 194, 223, 197,\n\t\t166, 200, 161, 148, 88, 50, 239, 180, 64, 17, 1, 12, 174,\n\t\t174, 18, 150, 37, 0, 241, 104, 53, 7, 150, 83, 41, 103, 64,\n\t\t131, 81, 144, 161, 132, 62, 134, 20, 11, 234, 149, 247, 153,\n\t\t49, 71, 65, 76, 65, 102, 67, 179, 79, 172, 18, 83, 45, 73,\n\t\t138, 214, 122, 214, 101, 47, 24, 116, 36, 224, 78, 212, 181,\n\t\t101, 21, 23, 243, 122, 36, 25, 235, 211, 3, 56, 99, 132, 130,\n\t\t10, 99, 83, 203, 232, 22, 136, 75, 96, 5, 176, 126, 82, 168,\n\t\t52, 51, 248, 156, 143, 169, 101, 32, 50, 175, 32, 13, 229,\n\t\t195, 131, 137, 20, 10, 20, 113, 104, 94, 106, 212, 22, 228,\n\t\t48, 95, 58, 165, 144, 68, 72, 243, 30, 9, 21, 59, 84, 93,\n\t\t22, 93, 62, 174, 242, 83, 122, 119, 214, 99, 184, 2, 171,\n\t\t56, 57, 42, 138, 175, 205, 80, 115, 164, 14, 83, 26, 39, 120,\n\t\t23, 173, 98, 124, 66, 206, 2, 88, 200, 147, 253, 154, 33,\n\t\t246, 152, 133, 46, 48, 43, 145, 230, 136, 168, 2, 139, 33,\n\t\t132, 55, 117, 182, 99, 42, 144, 8, 219, 211, 57, 188, 100,\n\t\t20, 11, 233, 153, 143, 34, 37, 117, 248, 139, 142, 153, 241,\n\t\t251, 226, 181, 153, 170, 20, 73, 77, 108, 168, 10, 227, 74,\n\t\t150, 234, 117, 172, 44, 32, 69, 154, 210, 236, 249, 118, 217,\n\t\t103, 82, 40, 69, 136, 7, 70, 139, 153, 199, 86, 106, 41, 177,\n\t\t182, 85, 97, 213, 119, 190, 225, 34, 58, 106, 40, 29, 66,\n\t\t188, 96, 230, 178, 53, 95, 88, 189, 152, 168, 123, 67, 52,\n\t\t81, 87, 37, 143, 217, 42, 11, 122, 254, 80, 108, 146, 252,\n\t\t157, 163, 132, 222, 97, 248, 28, 131, 119, 137, 123, 12, 105,\n\t\t196, 214, 10, 88, 235, 8, 121, 68, 174, 88, 75, 223, 177,\n\t\t113, 200, 93, 67, 226, 95, 173, 144, 215, 23, 75, 47, 137,\n\t\t193, 168, 70, 101, 140, 161, 149, 167, 60, 85, 126, 19, 191,\n\t\t25, 36, 3, 178, 231, 132, 84, 212, 10, 195, 254, 204, 58,\n\t\t92, 17, 198, 58, 209, 239, 210, 86, 236, 130, 251, 141, 132,\n\t\t27, 119, 84, 228, 130, 17, 236, 10, 81, 23, 74, 148, 125,\n\t\t155, 167, 66, 233, 177, 95, 171, 164, 102, 13, 145, 31, 206,\n\t\t10, 68, 145, 64, 22, 11, 138, 22, 67, 129, 129, 51, 68, 75,\n\t\t185, 114, 15, 82, 250, 5, 211, 143, 119, 149, 166, 209, 126,\n\t\t124, 235, 204, 22, 191, 87, 133, 51, 147, 84, 167, 224, 231,\n\t\t14, 97, 43, 195, 3, 7, 230, 92, 62, 138, 231, 193, 179, 110,\n\t\t195, 242, 184, 25, 18, 147, 95, 68, 97, 230, 8, 124, 40, 128,\n\t\t10, 2, 102, 168, 234, 159, 142, 129, 164, 230, 186, 148, 177,\n\t\t160, 36, 123, 243, 153, 6, 54, 39, 104, 67, 64, 181, 0, 33,\n\t\t145, 231, 170, 84, 113, 1, 25, 46, 173, 204, 17, 80, 42, 89,\n\t\t114, 181, 138, 238, 83, 137, 187, 79, 88, 158, 121, 95, 3,\n\t\t171, 164, 148, 106, 43, 82, 85, 12, 223, 44, 5, 21, 109, 64,\n\t\t64, 152, 108, 248, 10, 22, 73, 31, 111, 185, 199, 208, 27,\n\t\t108, 203, 212, 110, 87, 143, 161, 36, 152, 185, 178, 221,\n\t\t177, 22, 95, 163, 32, 183, 121, 182, 245, 33, 43, 62, 75,\n\t\t189, 100, 214, 14, 134, 206, 40, 89, 234, 24, 68, 155, 96,\n\t\t101, 42, 6, 103, 64, 170, 172, 189, 12, 228, 0, 13, 170, 14,\n\t\t84, 56, 16, 212, 104, 231, 208, 212, 186, 220, 19, 69, 229,\n\t\t210, 199, 27, 177, 186, 198, 35, 205, 11, 23, 25, 255, 81,\n\t\t82, 142, 10, 47, 17, 181, 164, 160, 173, 74, 64, 74, 245,\n\t\t127, 89, 224, 183, 235, 68, 182, 48, 234, 134, 1, 253, 1,\n\t\t128, 36, 111, 186, 176, 34, 212, 167, 145, 71, 72, 216, 94,\n\t\t166, 76, 127, 24, 148, 44, 180, 133, 251, 8, 194, 50, 153,\n\t\t208, 33, 3, 79, 81, 132, 222, 249, 241, 86, 114, 10, 243,\n\t\t32, 222, 114, 218, 133, 173, 12, 111, 211, 178, 67, 252, 73,\n\t\t120, 107, 87, 233, 56, 101, 18, 241, 164, 155, 144, 191, 85,\n\t\t244, 81, 209, 22, 179, 36, 15, 214, 33, 2, 117, 98, 48, 89,\n\t\t171, 194, 222, 150, 141, 233, 30, 34, 33, 246, 195, 119, 68,\n\t\t36, 25, 69, 73, 244, 138, 26, 186, 203, 216, 84, 82, 197,\n\t\t76, 248, 120, 163, 62, 67, 26, 71, 141, 188, 195, 65, 47,\n\t\t53, 214, 236, 198, 219, 214, 152, 60, 223, 161, 60, 176, 60,\n\t\t225, 133, 50, 106, 40, 188, 174, 216, 106, 71, 116, 80, 34,\n\t\t160, 188, 226, 81, 4, 149, 215, 50, 80, 58, 98, 241, 195,\n\t\t142, 128, 251, 9, 165, 48, 187, 78, 219, 49, 69, 113, 44,\n\t\t164, 19, 62, 181, 30, 20, 62, 197, 243, 34, 139, 40, 224,\n\t\t151, 0, 1, 101, 149, 134, 166, 232, 159, 132, 45, 21, 25,\n\t\t156, 60, 37, 224, 52, 154, 68, 200, 158, 202, 176, 17, 88,\n\t\t134, 177, 120, 56, 75, 136, 44, 111, 177, 91, 13, 81, 19,\n\t\t248, 211, 81, 224, 15, 149, 153, 154, 62, 123, 148, 128, 138,\n\t\t98, 146, 84, 93, 231, 145, 96, 111, 72, 90, 79, 146, 173,\n\t\t55, 205, 196, 83, 29, 31, 43, 150, 255, 68, 98, 13, 170, 209,\n\t\t32, 150, 132, 189, 88, 78, 92, 102, 54, 186, 2, 192, 59, 48,\n\t\t54, 222, 198, 221, 42, 250, 93, 17, 32, 219, 53, 66, 65, 141,\n\t\t82, 248, 43, 132, 25, 148, 120, 223, 226, 65, 196, 214, 155,\n\t\t69, 95, 205, 4, 213, 228, 6, 205, 93, 140, 162, 162, 228,\n\t\t238, 0, 46, 136, 126, 217, 66, 134, 173, 220, 197, 82, 193,\n\t\t2, 74, 65, 16, 92, 188, 59, 139, 189, 82, 117, 239, 96, 141,\n\t\t64, 206, 32, 152, 51, 65, 100, 80, 34, 101, 137, 24, 83, 139,\n\t\t253, 232, 182, 14, 230, 8, 40, 20, 193, 23, 231, 80, 114,\n\t\t130, 249, 36, 90, 246, 180, 186, 78, 188, 153, 97, 118, 118,\n\t\t152, 29, 36, 97, 178, 54, 37, 15, 181, 194, 182, 73, 147,\n\t\t0, 89, 232, 141, 119, 114, 150, 211, 17, 132, 49, 51, 80,\n\t\t174, 194, 219, 193, 55, 160, 34, 104, 185, 65, 109, 147, 233,\n\t\t236, 106, 27, 69, 81, 104, 217, 222, 170, 47, 135, 109, 102,\n\t\t208, 54, 121, 254, 136, 200, 220, 1, 213, 15, 206, 166, 2,\n\t\t107, 68, 246, 21, 208, 106, 96, 63, 181, 77, 48, 153, 90,\n\t\t201, 58, 79, 69, 69, 67, 89, 146, 121, 136, 164, 205, 34,\n\t\t236, 120, 148, 161, 96, 112, 63, 163, 176, 89, 146, 51, 0,\n\t\t25, 99, 166, 100, 59, 193, 227, 18, 219, 188, 88, 197, 239,\n\t\t42, 219, 58, 84, 19, 44, 49, 54, 113, 50, 27, 124, 172, 195,\n\t\t37, 140, 19, 75, 147, 219, 149, 85, 10, 167, 46, 210, 106,\n\t\t36, 17, 228, 181, 138, 52, 78, 25, 38, 22, 79, 216, 41, 181,\n\t\t97, 160, 188, 138, 154, 88, 36, 91, 3, 198, 65, 83, 253, 44,\n\t\t1, 34, 41, 133, 41, 225, 98, 23, 76, 37, 239, 76, 40, 169,\n\t\t27, 195, 140, 25, 133, 8, 194, 36, 54, 73, 179, 152, 64, 24,\n\t\t132, 90, 4, 47, 14, 61, 21, 148, 16, 120, 69, 147, 242, 108,\n\t\t162, 19, 67, 150, 143, 194, 187, 47, 118, 77, 222, 141, 48,\n\t\t213, 88, 81, 230, 19, 137, 88, 29, 233, 251, 49, 85, 4, 142,\n\t\t161, 21, 1, 171, 199, 70, 157, 6, 36, 240, 12, 74, 210, 193,\n\t\t72, 184, 31, 146, 108, 128, 37, 40, 9, 118, 137, 68, 5, 102,\n\t\t89, 48, 163, 97, 218, 227, 56, 188, 204, 6, 235, 227, 194,\n\t\t0, 90, 251, 60, 114, 238, 240, 27, 10, 179, 188, 110, 50,\n\t\t176, 67, 217, 206, 55, 43, 181, 234, 254, 207, 251, 81, 82,\n\t\t210, 81, 1, 105, 153, 167, 145, 197, 187, 208, 250, 137, 107,\n\t\t21, 37, 163, 16, 175, 231, 70, 34, 152, 7, 189, 59, 101, 177,\n\t\t70, 106, 20, 41, 64, 178, 159, 29, 179, 136, 77, 73, 162,\n\t\t105, 125, 188, 165, 14, 213, 75, 42, 23, 121, 230, 108, 99,\n\t\t123, 167, 136, 110, 42, 232, 2, 98, 245, 80, 246, 33, 155,\n\t\t203, 60, 237, 239, 103, 20, 145, 150, 37, 63, 187, 207, 35,\n\t\t241, 252, 73, 13, 3, 202, 234, 45, 47, 41, 49, 126, 117, 145,\n\t\t241, 214, 204, 234, 206, 149, 178, 26, 171, 49, 120, 157,\n\t\t77, 223, 166, 48, 13, 89, 144, 21, 175, 117, 195, 59, 27,\n\t\t91, 225, 167, 232, 50, 146, 233, 217, 36, 16, 41, 218, 32,\n\t\t207, 20, 188, 34, 7, 242, 136, 205, 64, 150, 72, 97, 29, 120,\n\t\t2, 69, 59, 177, 73, 200, 78, 221, 146, 77, 83, 243, 190, 244,\n\t\t102, 38, 249, 212, 246, 246, 6, 247, 203, 213, 77, 132, 37,\n\t\t117, 249, 100, 147, 177, 208, 182, 88, 170, 99, 201, 20, 177,\n\t\t41, 48, 129, 97, 14, 241, 138, 128, 132, 42, 69, 111, 36,\n\t\t125, 71, 131, 49, 216, 9, 107, 241, 227, 45, 215, 142, 209,\n\t\t152, 226, 236, 251, 177, 253, 251, 235, 175, 191, 191, 255,\n\t\t254, 219, 79, 127, 255, 98, 254, 54, 247, 180, 177, 26, 131,\n\t\t130, 32, 17, 232, 213, 66, 178, 182, 225, 87, 181, 109, 4,\n\t\t46, 23, 88, 110, 73, 57, 40, 248, 204, 253, 28, 162, 49, 61,\n\t\t89, 94, 207, 88, 238, 122, 124, 21, 18, 245, 41, 30, 126,\n\t\t143, 33, 249, 214, 67, 34, 180, 144, 143, 55, 42, 240, 174,\n\t\t17, 11, 218, 251, 217, 197, 13, 240, 236, 4, 139, 242, 174,\n\t\t199, 87, 46, 226, 174, 137, 220, 163, 162, 239, 240, 110,\n\t\t171, 181, 232, 228, 68, 174, 24, 31, 248, 96, 178, 218, 81,\n\t\t252, 67, 52, 106, 192, 253, 166, 212, 132, 211, 235, 229,\n\t\t204, 7, 91, 252, 168, 254, 149, 243, 243, 164, 201, 19, 26,\n\t\t25, 139, 20, 165, 76, 48, 47, 45, 182, 255, 88, 171, 236,\n\t\t188, 99, 245, 162, 10, 107, 183, 249, 170, 63, 238, 126, 187,\n\t\t221, 180, 30, 99, 55, 237, 79, 193, 205, 250, 239, 83, 111,\n\t\t245, 59, 236, 17, 118, 131, 61, 224, 229, 190, 187, 220, 119,\n\t\t187, 188, 157, 254, 4, 111, 231, 246, 136, 79, 237, 21, 168,\n\t\t91, 172, 226, 206, 41, 23, 80, 250, 178, 57, 52, 200, 81,\n\t\t72, 30, 146, 5, 9, 25, 223, 58, 236, 145, 103, 148, 229, 68,\n\t\t23, 203, 153, 4, 250, 139, 62, 216, 6, 230, 142, 207, 194,\n\t\t95, 76, 213, 143, 120, 107, 40, 136, 110, 246, 131, 80, 129,\n\t\t177, 195, 141, 162, 222, 101, 61, 113, 63, 19, 245, 39, 210,\n\t\t252, 114, 190, 18, 63, 130, 230, 17, 143, 148, 39, 60, 145,\n\t\t38, 131, 83, 203, 161, 33, 140, 11, 76, 49, 43, 190, 233,\n\t\t96, 169, 19, 225, 97, 236, 208, 236, 32, 253, 228, 168, 9,\n\t\t254, 254, 199, 107, 229, 31, 127, 251, 219, 183, 223, 190,\n\t\t44, 148, 190, 167, 221, 141, 130, 239, 207, 49, 61, 0, 170,\n\t\t168, 2, 92, 227, 133, 127, 166, 48, 243, 40, 48, 249, 71,\n\t\t134, 170, 116, 214, 64, 82, 214, 153, 5, 72, 27, 224, 91,\n\t\t19, 117, 208, 206, 0, 81, 136, 90, 158, 81, 66, 42, 181, 130,\n\t\t35, 163, 139, 209, 104, 151, 235, 213, 250, 210, 116, 248,\n\t\t75, 203, 129, 184, 63, 68, 59, 241, 226, 232, 129, 120, 153,\n\t\t61, 74, 23, 211, 134, 213, 180, 62, 231, 149, 194, 44, 36,\n\t\t48, 110, 105, 92, 213, 2, 242, 214, 180, 46, 117, 117, 245,\n\t\t240, 118, 81, 72, 137, 50, 24, 101, 85, 243, 242, 102, 241,\n\t\t165, 69, 82, 72, 164, 89, 41, 179, 50, 126, 156, 141, 117,\n\t\t204, 173, 23, 218, 76, 104, 155, 119, 66, 98, 241, 189, 247,\n\t\t1, 159, 192, 171, 164, 108, 35, 247, 64, 23, 192, 101, 7,\n\t\t88, 127, 235, 0, 190, 212, 222, 36, 47, 82, 111, 214, 250,\n\t\t32, 200, 247, 164, 37, 121, 173, 156, 171, 30, 191, 123, 2,\n\t\t25, 63, 188, 234, 21, 234, 27, 145, 75, 110, 222, 107, 48,\n\t\t239, 217, 170, 40, 102, 161, 134, 41, 112, 66, 61, 174, 162,\n\t\t143, 42, 125, 4, 255, 252, 176, 9, 66, 49, 135, 209, 252,\n\t\t78, 10, 49, 197, 94, 246, 59, 21, 35, 196, 163, 155, 98, 173,\n\t\t251, 84, 234, 74, 67, 248, 227, 169, 4, 246, 154, 79, 83,\n\t\t169, 143, 244, 135, 83, 169, 126, 186, 92, 175, 222, 167,\n\t\t82, 87, 86, 91, 54, 107, 224, 189, 194, 140, 66, 219, 48,\n\t\t163, 164, 149, 219, 140, 18, 131, 235, 95, 155, 81, 255, 197,\n\t\t9, 133, 170, 155, 152, 85, 208, 53, 162, 20, 178, 175, 24,\n\t\t237, 90, 133, 157, 241, 211, 140, 122, 223, 63, 61, 141, 94,\n\t\t247, 57, 180, 230, 15, 158, 123, 251, 159, 152, 69, 31, 111,\n\t\t4, 3, 139, 142, 156, 122, 168, 240, 18, 98, 232, 147, 58,\n\t\t216, 236, 184, 96, 175, 228, 46, 214, 58, 242, 15, 153, 7,\n\t\t51, 6, 234, 51, 95, 170, 24, 68, 169, 50, 140, 133, 148, 91,\n\t\t206, 32, 45, 103, 253, 120, 125, 23, 142, 185, 105, 82, 61,\n\t\t58, 134, 134, 186, 230, 123, 191, 224, 146, 219, 67, 7, 253,\n\t\t180, 119, 160, 217, 3, 126, 25, 148, 145, 16, 127, 9, 40,\n\t\t33, 164, 73, 231, 126, 7, 24, 92, 102, 165, 36, 4, 162, 172,\n\t\t140, 9, 39, 87, 30, 132, 69, 146, 71, 239, 159, 102, 38, 159,\n\t\t120, 135, 93, 71, 168, 234, 212, 196, 35, 176, 154, 206, 23,\n\t\t252, 80, 44, 95, 247, 223, 126, 253, 143, 111, 215, 79, 239,\n\t\t95, 93, 248, 227, 71, 46, 252, 30, 70, 62, 242, 40, 247, 8,\n\t\t117, 143, 232, 34, 182, 164, 80, 190, 125, 89, 249, 51, 164,\n\t\t60, 250, 58, 161, 63, 68, 11, 168, 77, 10, 41, 234, 125, 126,\n\t\t245, 249, 122, 249, 186, 47, 222, 207, 84, 102, 200, 237,\n\t\t169, 103, 238, 9, 181, 153, 158, 250, 188, 251, 153, 71, 14,\n\t\t35, 63, 1, 195, 74, 172, 48, 216, 173, 122, 130, 183, 96,\n\t\t125, 225, 107, 235, 94, 254, 189, 203, 163, 62, 110, 111,\n\t\t148, 196, 254, 104, 5, 126, 156, 139, 109, 228, 62, 120, 173,\n\t\t225, 161, 234, 108, 111, 57, 141, 117, 66, 127, 60, 55, 197,\n\t\t250, 238, 39, 181, 45, 31, 254, 100, 254, 138, 254, 136, 108,\n\t\t250, 35, 6, 115, 70, 153, 245, 220, 189, 89, 24, 182, 6, 5,\n\t\t42, 74, 253, 86, 11, 111, 210, 108, 223, 182, 198, 98, 162,\n\t\t200, 129, 246, 197, 105, 67, 178, 62, 222, 30, 247, 132, 109,\n\t\t69, 29, 169, 208, 108, 243, 192, 9, 86, 186, 248, 142, 81,\n\t\t70, 15, 165, 255, 240, 175, 252, 115, 187, 111, 159, 240,\n\t\t212, 156, 218, 213, 114, 98, 197, 177, 63, 79, 111, 103, 162,\n\t\t9, 15, 133, 4, 80, 83, 199, 21, 112, 31, 72, 53, 126, 62,\n\t\t132, 131, 183, 132, 86, 246, 22, 74, 190, 189, 50, 115, 167,\n\t\t40, 65, 4, 20, 5, 78, 147, 23, 17, 79, 16, 10, 108, 223, 205,\n\t\t20, 122, 181, 25, 240, 195, 217, 253, 237, 249, 237, 183,\n\t\t95, 126, 253, 253, 53, 99, 124, 228, 31, 20, 141, 6, 86, 147,\n\t\t165, 75, 13, 125, 186, 83, 7, 149, 59, 163, 166, 36, 192,\n\t\t65, 0, 219, 24, 94, 69, 178, 176, 179, 158, 185, 206, 54,\n\t\t76, 155, 62, 123, 214, 104, 182, 144, 180, 130, 103, 33, 203,\n\t\t112, 0, 51, 140, 216, 202, 25, 225, 203, 99, 189, 48, 138,\n\t\t100, 192, 14, 230, 125, 104, 63, 30, 41, 142, 80, 51, 234,\n\t\t139, 229, 52, 175, 40, 126, 218, 124, 108, 87, 42, 10, 57,\n\t\t194, 41, 69, 114, 47, 174, 241, 199, 33, 75, 53, 35, 180,\n\t\t112, 206, 48, 199, 36, 41, 84, 47, 103, 82, 85, 103, 169,\n\t\t159, 25, 226, 56, 250, 120, 75, 115, 114, 215, 116, 137, 228,\n\t\t32, 63, 174, 177, 85, 159, 181, 122, 115, 202, 160, 227, 228,\n\t\t47, 175, 36, 206, 49, 54, 229, 40, 34, 235, 9, 102, 23, 138,\n\t\t153, 170, 75, 63, 7, 128, 116, 36, 92, 149, 147, 44, 174,\n\t\t179, 33, 218, 146, 23, 162, 146, 138, 94, 34, 38, 92, 22,\n\t\t111, 68, 222, 96, 89, 194, 177, 142, 237, 129, 4, 42, 200,\n\t\t31, 224, 198, 35, 235, 201, 86, 90, 138, 100, 91, 184, 71,\n\t\t209, 27, 88, 110, 213, 0, 23, 81, 60, 138, 2, 15, 40, 134,\n\t\t82, 90, 246, 99, 253, 247, 185, 173, 3, 159, 169, 87, 68,\n\t\t6, 16, 76, 80, 237, 151, 205, 67, 216, 67, 45, 172, 155, 75,\n\t\t224, 172, 75, 168, 103, 69, 192, 90, 61, 154, 185, 237, 219,\n\t\t112, 180, 67, 165, 88, 133, 66, 75, 62, 55, 181, 48, 97, 33,\n\t\t122, 141, 151, 150, 165, 55, 217, 102, 148, 32, 95, 155, 248,\n\t\t104, 224, 54, 245, 46, 139, 3, 180, 25, 172, 2, 191, 184,\n\t\t157, 17, 144, 158, 40, 38, 215, 145, 155, 120, 68, 13, 74,\n\t\t72, 64, 137, 114, 212, 196, 37, 254, 81, 187, 58, 169, 179,\n\t\t6, 5, 120, 97, 32, 118, 200, 91, 220, 74, 21, 78, 18, 233,\n\t\t59, 26, 113, 159, 0, 241, 130, 227, 28, 197, 215, 66, 85,\n\t\t34, 86, 89, 145, 252, 188, 97, 29, 19, 248, 90, 209, 13, 82,\n\t\t76, 206, 2, 60, 213, 111, 55, 85, 17, 52, 12, 89, 133, 58,\n\t\t34, 191, 35, 5, 150, 55, 135, 38, 14, 88, 239, 231, 168, 161,\n\t\t227, 44, 150, 54, 21, 180, 227, 130, 76, 82, 111, 19, 91,\n\t\t203, 16, 211, 133, 173, 224, 54, 121, 6, 139, 115, 37, 71,\n\t\t140, 245, 163, 21, 241, 131, 226, 179, 106, 44, 160, 59, 0,\n\t\t86, 36, 171, 167, 176, 71, 214, 154, 216, 138, 88, 117, 104,\n\t\t184, 175, 10, 95, 108, 94, 145, 4, 47, 230, 49, 248, 117,\n\t\t112, 200, 100, 248, 209, 87, 98, 21, 31, 74, 58, 161, 166,\n\t\t165, 38, 164, 124, 34, 158, 40, 17, 129, 33, 178, 239, 211,\n\t\t49, 152, 0, 216, 60, 228, 101, 158, 35, 111, 7, 64, 180, 123,\n\t\t101, 4, 232, 118, 8, 110, 179, 105, 39, 97, 148, 129, 80,\n\t\t15, 37, 10, 45, 11, 129, 130, 131, 116, 20, 197, 214, 14,\n\t\t143, 202, 157, 29, 249, 185, 16, 4, 69, 145, 1, 60, 212, 64,\n\t\t226, 73, 204, 179, 84, 241, 206, 159, 85, 194, 179, 87, 54,\n\t\t5, 25, 150, 169, 105, 97, 5, 1, 50, 210, 216, 102, 19, 144,\n\t\t15, 166, 183, 196, 152, 147, 122, 155, 138, 198, 158, 73,\n\t\t10, 57, 77, 1, 110, 84, 105, 227, 143, 203, 61, 255, 126,\n\t\t221, 207, 159, 127, 253, 34, 228, 127, 250, 99, 5, 166, 39,\n\t\t245, 19, 165, 28, 8, 76, 84, 88, 177, 201, 124, 109, 60, 10,\n\t\t64, 158, 74, 172, 118, 20, 228, 45, 203, 225, 123, 74, 13,\n\t\t177, 94, 103, 78, 76, 67, 0, 105, 57, 150, 14, 48, 191, 104,\n\t\t63, 36, 162, 176, 21, 205, 131, 110, 70, 178, 173, 78, 170,\n\t\t179, 215, 39, 239, 25, 144, 14, 17, 120, 34, 53, 143, 20,\n\t\t159, 96, 209, 208, 50, 246, 99, 100, 74, 86, 193, 167, 68,\n\t\t4, 101, 201, 6, 2, 135, 53, 222, 244, 105, 226, 12, 38, 128,\n\t\t131, 112, 63, 250, 85, 241, 42, 241, 253, 44, 115, 221, 91,\n\t\t230, 81, 227, 231, 251, 178, 238, 111, 85, 216, 82, 161, 116,\n\t\t159, 53, 178, 66, 80, 165, 17, 93, 16, 81, 246, 199, 213,\n\t\t16, 61, 241, 250, 196, 164, 233, 220, 210, 18, 107, 132, 180,\n\t\t104, 107, 137, 156, 120, 189, 153, 212, 207, 93, 253, 195,\n\t\t79, 254, 84, 249, 131, 82, 105, 16, 138, 208, 1, 180, 161,\n\t\t135, 218, 105, 79, 239, 103, 31, 52, 10, 208, 226, 139, 149,\n\t\t49, 34, 241, 99, 219, 232, 244, 18, 120, 35, 149, 18, 32,\n\t\t84, 14, 234, 35, 140, 114, 205, 144, 202, 40, 146, 84, 13,\n\t\t191, 115, 78, 161, 86, 18, 16, 217, 236, 163, 30, 101, 6,\n\t\t88, 217, 118, 130, 95, 137, 224, 247, 17, 89, 35, 143, 173,\n\t\t21, 164, 218, 43, 14, 32, 12, 172, 95, 86, 254, 96, 36, 161,\n\t\t34, 101, 226, 29, 252, 40, 138, 217, 73, 77, 68, 104, 77,\n\t\t161, 179, 80, 226, 7, 23, 36, 142, 72, 21, 92, 184, 128, 186,\n\t\t185, 109, 243, 80, 100, 193, 116, 63, 174, 68, 119, 174, 148,\n\t\t53, 242, 64, 89, 102, 90, 201, 178, 113, 123, 250, 67, 85,\n\t\t48, 119, 147, 170, 103, 26, 233, 208, 33, 240, 122, 107, 148,\n\t\t91, 176, 176, 15, 18, 177, 184, 83, 38, 88, 136, 100, 167,\n\t\t73, 195, 94, 52, 39, 44, 77, 15, 7, 229, 142, 19, 17, 48,\n\t\t18, 65, 186, 83, 208, 120, 121, 50, 80, 190, 68, 166, 16,\n\t\t249, 214, 103, 223, 128, 224, 134, 15, 187, 168, 115, 187,\n\t\t232, 9, 3, 137, 84, 132, 39, 209, 114, 115, 250, 158, 42,\n\t\t109, 187, 6, 203, 243, 144, 15, 225, 158, 169, 160, 62, 165,\n\t\t250, 241, 150, 26, 75, 235, 131, 176, 65, 61, 88, 147, 32,\n\t\t232, 18, 112, 138, 115, 15, 80, 189, 206, 74, 2, 68, 138,\n\t\t226, 48, 78, 240, 173, 73, 12, 97, 100, 157, 184, 169, 148,\n\t\t80, 36, 216, 37, 1, 224, 70, 26, 40, 213, 38, 242, 190, 141,\n\t\t110, 200, 89, 225, 59, 45, 135, 78, 179, 222, 174, 162, 151,\n\t\t38, 248, 244, 65, 207, 96, 110, 106, 32, 127, 236, 24, 213,\n\t\t81, 175, 154, 37, 56, 137, 44, 13, 128, 106, 18, 232, 141,\n\t\t155, 74, 219, 84, 107, 168, 21, 73, 88, 216, 209, 146, 48,\n\t\t135, 11, 198, 160, 105, 224, 216, 30, 41, 21, 87, 193, 5,\n\t\t15, 157, 213, 240, 160, 72, 226, 3, 22, 72, 80, 76, 89, 118,\n\t\t28, 109, 50, 182, 32, 132, 130, 90, 91, 62, 232, 202, 166,\n\t\t8, 247, 130, 118, 11, 43, 133, 56, 190, 9, 217, 161, 101,\n\t\t170, 99, 99, 17, 113, 68, 194, 59, 210, 37, 65, 38, 229, 206,\n\t\t98, 152, 114, 42, 82, 241, 29, 64, 57, 210, 72, 58, 200, 104,\n\t\t134, 144, 78, 67, 216, 158, 86, 160, 94, 19, 224, 43, 193,\n\t\t119, 160, 228, 21, 126, 249, 185, 174, 215, 120, 65, 154,\n\t\t42, 37, 52, 150, 102, 135, 197, 118, 2, 57, 33, 180, 210,\n\t\t169, 179, 70, 247, 88, 172, 52, 123, 188, 228, 189, 136, 50,\n\t\t141, 29, 76, 4, 23, 233, 137, 42, 126, 172, 219, 227, 164,\n\t\t121, 36, 177, 202, 158, 144, 238, 67, 153, 109, 66, 170, 51,\n\t\t73, 114, 184, 197, 97, 54, 232, 185, 24, 28, 81, 46, 130,\n\t\t115, 96, 170, 87, 204, 194, 195, 72, 129, 128, 78, 103, 103,\n\t\t244, 234, 39, 9, 100, 4, 175, 62, 245, 221, 87, 135, 8, 5,\n\t\t139, 94, 225, 249, 103, 45, 173, 152, 210, 159, 142, 126,\n\t\t204, 194, 245, 211, 227, 219, 251, 223, 126, 253, 237, 250,\n\t\t106, 89, 125, 41, 186, 187, 184, 184, 168, 140, 48, 38, 40,\n\t\t197, 114, 187, 163, 144, 74, 65, 240, 185, 65, 225, 175, 218,\n\t\t25, 217, 244, 65, 129, 180, 33, 213, 33, 43, 119, 13, 155,\n\t\t18, 141, 7, 12, 106, 183, 70, 104, 225, 172, 149, 34, 39,\n\t\t74, 151, 76, 192, 182, 12, 44, 2, 164, 3, 151, 203, 113, 57,\n\t\t17, 15, 66, 132, 14, 12, 96, 221, 143, 79, 194, 130, 97, 97,\n\t\t43, 73, 31, 124, 58, 35, 18, 34, 143, 181, 139, 120, 231,\n\t\t239, 162, 126, 41, 7, 163, 4, 199, 216, 138, 78, 235, 12,\n\t\t97, 35, 38, 165, 12, 177, 207, 32, 105, 128, 92, 240, 241,\n\t\t134, 252, 220, 124, 176, 109, 91, 134, 49, 143, 229, 208,\n\t\t160, 73, 1, 132, 0, 16, 153, 88, 14, 20, 21, 84, 43, 193,\n\t\t131, 167, 152, 6, 19, 217, 237, 194, 35, 194, 141, 238, 113,\n\t\t106, 116, 87, 73, 198, 36, 152, 35, 22, 41, 22, 113, 18, 178,\n\t\t96, 136, 124, 101, 218, 18, 172, 26, 201, 23, 216, 137, 46,\n\t\t86, 149, 216, 87, 48, 175, 64, 226, 157, 37, 226, 195, 155,\n\t\t88, 105, 101, 128, 3, 172, 165, 76, 227, 243, 185, 130, 233,\n\t\t42, 137, 160, 169, 243, 231, 40, 25, 79, 13, 25, 174, 58,\n\t\t158, 225, 188, 247, 181, 208, 89, 29, 255, 120, 107, 133,\n\t\t251, 11, 249, 207, 67, 129, 123, 231, 0, 107, 73, 9, 146,\n\t\t228, 192, 183, 74, 166, 77, 201, 82, 187, 0, 17, 195, 156,\n\t\t143, 179, 35, 102, 82, 229, 7, 11, 149, 12, 217, 128, 0, 19,\n\t\t27, 104, 8, 26, 137, 18, 51, 27, 127, 24, 118, 176, 30, 6,\n\t\t200, 155, 53, 64, 125, 82, 202, 97, 164, 116, 72, 24, 19,\n\t\t236, 85, 44, 11, 72, 75, 202, 33, 111, 132, 53, 1, 58, 18,\n\t\t239, 188, 93, 34, 191, 24, 224, 9, 147, 8, 140, 241, 29, 229,\n\t\t132, 17, 215, 99, 91, 0, 211, 183, 179, 208, 22, 213, 50,\n\t\t233, 209, 149, 115, 24, 226, 171, 5, 83, 77, 1, 249, 172,\n\t\t88, 235, 172, 24, 231, 49, 65, 237, 213, 226, 42, 164, 204,\n\t\t150, 136, 228, 69, 233, 6, 90, 52, 143, 34, 23, 193, 143,\n\t\t143, 164, 56, 4, 57, 190, 48, 193, 32, 110, 21, 82, 6, 0,\n\t\t222, 244, 138, 22, 98, 248, 221, 174, 73, 2, 113, 47, 81,\n\t\t129, 13, 147, 87, 214, 50, 4, 237, 24, 229, 77, 202, 7, 28,\n\t\t37, 165, 66, 57, 38, 49, 131, 69, 179, 76, 18, 173, 68, 226,\n\t\t66, 51, 148, 73, 23, 56, 16, 159, 0, 21, 3, 230, 25, 217,\n\t\t2, 75, 106, 171, 101, 131, 130, 218, 137, 33, 158, 233, 43,\n\t\t178, 97, 163, 137, 18, 108, 67, 8, 28, 72, 95, 64, 194, 254,\n\t\t4, 59, 86, 37, 29, 252, 40, 154, 105, 170, 86, 111, 4, 242,\n\t\t131, 63, 148, 109, 38, 112, 5, 185, 176, 165, 144, 177, 122,\n\t\t154, 195, 3, 42, 64, 66, 26, 238, 185, 150, 103, 46, 134,\n\t\t56, 169, 247, 12, 21, 174, 102, 81, 212, 2, 1, 84, 178, 159,\n\t\t201, 37, 119, 88, 214, 161, 20, 65, 169, 196, 144, 115, 231,\n\t\t185, 22, 195, 76, 67, 221, 237, 93, 184, 149, 82, 136, 173,\n\t\t98, 66, 43, 72, 160, 135, 6, 70, 36, 236, 41, 17, 29, 81,\n\t\t17, 231, 240, 19, 167, 113, 44, 71, 201, 207, 2, 148, 72,\n\t\t246, 243, 84, 69, 186, 163, 223, 117, 0, 184, 87, 0, 217,\n\t\t132, 28, 113, 28, 4, 107, 132, 162, 151, 173, 159, 58, 205,\n\t\t34, 50, 94, 213, 74, 59, 59, 148, 99, 152, 253, 201, 0, 114,\n\t\t56, 3, 209, 67, 13, 174, 39, 135, 16, 128, 131, 38, 119, 238,\n\t\t216, 81, 11, 124, 147, 211, 92, 29, 144, 158, 77, 93, 83,\n\t\t136, 6, 192, 181, 35, 240, 73, 31, 181, 83, 69, 220, 26, 200,\n\t\t199, 74, 98, 237, 24, 202, 219, 246, 164, 51, 202, 68, 201,\n\t\t155, 65, 156, 212, 182, 223, 207, 148, 200, 59, 105, 18, 249,\n\t\t16, 60, 221, 92, 83, 119, 67, 157, 113, 136, 25, 3, 192, 184,\n\t\t158, 184, 172, 107, 226, 177, 234, 160, 75, 119, 216, 113,\n\t\t18, 176, 53, 220, 189, 162, 236, 11, 255, 67, 169, 7, 81,\n\t\t11, 200, 20, 142, 6, 185, 23, 109, 24, 250, 169, 117, 166,\n\t\t167, 84, 86, 129, 237, 10, 167, 66, 134, 10, 12, 127, 174,\n\t\t56, 110, 162, 232, 119, 82, 176, 39, 27, 11, 214, 58, 55,\n\t\t136, 168, 53, 201, 145, 72, 18, 226, 139, 33, 242, 206, 208,\n\t\t241, 156, 82, 128, 121, 139, 230, 98, 139, 161, 142, 54, 83,\n\t\t1, 63, 43, 127, 186, 143, 106, 12, 41, 21, 229, 211, 202,\n\t\t194, 173, 199, 38, 23, 160, 204, 60, 36, 18, 43, 137, 48,\n\t\t145, 242, 88, 167, 120, 169, 52, 113, 80, 71, 211, 69, 14,\n\t\t119, 182, 193, 43, 57, 120, 251, 14, 108, 144, 228, 46, 136,\n\t\t90, 129, 112, 71, 75, 73, 67, 13, 67, 201, 57, 186, 10, 66,\n\t\t100, 58, 247, 124, 118, 76, 233, 37, 248, 142, 120, 225, 94,\n\t\t91, 241, 20, 171, 36, 34, 168, 117, 240, 63, 75, 66, 149,\n\t\t158, 72, 2, 78, 68, 38, 129, 132, 10, 61, 75, 50, 77, 217,\n\t\t227, 115, 40, 18, 15, 3, 114, 83, 6, 10, 170, 2, 130, 77,\n\t\t181, 55, 193, 187, 140, 44, 56, 81, 243, 164, 198, 92, 210,\n\t\t216, 206, 176, 189, 84, 75, 210, 156, 149, 212, 72, 68, 3,\n\t\t79, 58, 129, 16, 199, 80, 168, 72, 133, 140, 181, 116, 184,\n\t\t121, 248, 38, 196, 25, 141, 206, 208, 228, 162, 87, 197, 18,\n\t\t1, 133, 133, 86, 99, 67, 165, 113, 224, 91, 134, 98, 37, 115,\n\t\t51, 208, 20, 48, 50, 146, 240, 40, 166, 19, 48, 108, 16, 68,\n\t\t80, 180, 32, 118, 121, 145, 27, 255, 169, 29, 43, 190, 247,\n\t\t201, 155, 212, 136, 147, 135, 86, 109, 231, 162, 250, 137,\n\t\t63, 129, 109, 55, 120, 100, 137, 4, 122, 160, 39, 62, 110,\n\t\t111, 130, 183, 237, 161, 179, 166, 23, 253, 59, 151, 153,\n\t\t197, 103, 149, 177, 141, 37, 40, 245, 92, 202, 203, 201, 78,\n\t\t212, 42, 114, 183, 3, 244, 12, 136, 133, 2, 245, 207, 149,\n\t\t180, 164, 222, 39, 61, 113, 109, 134, 28, 250, 223, 158, 124,\n\t\t238, 173, 56, 253, 225, 114, 94, 94, 121, 63, 167, 232, 148,\n\t\t162, 248, 36, 137, 68, 190, 222, 87, 160, 72, 125, 57, 221,\n\t\t168, 238, 231, 248, 9, 45, 97, 3, 141, 171, 145, 222, 252,\n\t\t117, 70, 127, 200, 100, 217, 251, 102, 127, 248, 215, 222,\n\t\t89, 95, 240, 60, 251, 188, 190, 124, 221, 118, 217, 254, 187,\n\t\t226, 163, 190, 156, 238, 137, 198, 180, 25, 171, 93, 189,\n\t\t55, 21, 93, 189, 55, 25, 93, 189, 245, 209, 241, 253, 142,\n\t\t217, 250, 69, 187, 120, 42, 158, 242, 179, 185, 189, 223,\n\t\t176, 143, 215, 235, 84, 216, 207, 94, 171, 165, 62, 27, 94,\n\t\t103, 135, 54, 249, 134, 41, 244, 103, 94, 184, 182, 123, 121,\n\t\t33, 27, 130, 80, 235, 40, 141, 48, 242, 34, 178, 64, 88, 168,\n\t\t34, 55, 165, 171, 206, 172, 201, 42, 169, 11, 92, 83, 79,\n\t\t192, 227, 41, 152, 37, 49, 17, 170, 168, 41, 182, 57, 153,\n\t\t90, 119, 138, 115, 39, 131, 4, 83, 98, 3, 221, 210, 83, 76,\n\t\t63, 57, 147, 37, 247, 248, 25, 248, 214, 34, 9, 56, 75, 233,\n\t\t48, 163, 100, 102, 148, 133, 93, 239, 38, 5, 73, 20, 165,\n\t\t139, 12, 128, 79, 234, 162, 158, 38, 108, 135, 134, 234, 177,\n\t\t27, 198, 117, 226, 74, 81, 182, 71, 20, 202, 71, 222, 20,\n\t\t169, 196, 179, 196, 6, 147, 150, 166, 114, 29, 142, 47, 142,\n\t\t112, 109, 65, 114, 168, 40, 247, 63, 169, 180, 225, 109, 94,\n\t\t158, 6, 148, 113, 20, 227, 67, 55, 13, 92, 41, 208, 134, 169,\n\t\t115, 172, 211, 0, 109, 34, 43, 189, 162, 211, 201, 25, 172,\n\t\t132, 94, 133, 234, 25, 242, 119, 150, 156, 149, 95, 81, 92,\n\t\t111, 220, 249, 205, 151, 129, 122, 223, 78, 211, 253, 88,\n\t\t165, 208, 0, 138, 9, 116, 82, 75, 19, 236, 127, 211, 143,\n\t\t225, 241, 129, 99, 51, 74, 30, 118, 17, 107, 85, 0, 135, 188,\n\t\t151, 65, 27, 147, 148, 168, 123, 238, 176, 208, 120, 227,\n\t\t171, 2, 58, 89, 219, 99, 10, 177, 52, 80, 108, 150, 156, 26,\n\t\t74, 66, 137, 130, 96, 234, 141, 20, 90, 138, 70, 180, 31,\n\t\t225, 43, 90, 149, 49, 0, 128, 149, 36, 227, 28, 235, 125,\n\t\t173, 255, 143, 55, 154, 41, 20, 110, 69, 11, 169, 188, 106,\n\t\t52, 32, 146, 221, 52, 26, 73, 194, 74, 194, 13, 246, 89, 177,\n\t\t159, 244, 162, 216, 207, 121, 184, 126, 121, 74, 172, 5, 185,\n\t\t188, 216, 133, 54, 205, 222, 18, 40, 151, 102, 143, 89, 30,\n\t\t109, 182, 28, 102, 116, 90, 119, 15, 133, 106, 203, 225, 101,\n\t\t232, 9, 254, 40, 93, 179, 172, 45, 183, 36, 177, 174, 153,\n\t\t83, 179, 62, 6, 223, 17, 230, 106, 17, 165, 91, 28, 64, 8,\n\t\t189, 137, 78, 120, 250, 68, 52, 61, 211, 84, 201, 203, 87,\n\t\t164, 51, 77, 145, 174, 195, 221, 58, 16, 50, 9, 146, 84, 140,\n\t\t255, 13, 243, 160, 149, 36, 32, 110, 248, 62, 141, 55, 32,\n\t\t9, 144, 228, 40, 134, 224, 161, 40, 102, 191, 158, 64, 221,\n\t\t30, 33, 60, 65, 218, 128, 118, 177, 29, 179, 136, 202, 194,\n\t\t55, 182, 108, 8, 137, 67, 237, 54, 4, 28, 77, 54, 198, 205,\n\t\t164, 63, 109, 214, 3, 130, 101, 229, 7, 54, 4, 220, 10, 127,\n\t\t206, 136, 176, 213, 185, 219, 16, 189, 208, 171, 13, 145,\n\t\t42, 203, 107, 184, 35, 104, 40, 141, 172, 144, 245, 115, 135,\n\t\t39, 146, 210, 81, 173, 166, 220, 186, 159, 66, 200, 157, 26,\n\t\t78, 97, 133, 119, 232, 177, 208, 196, 90, 23, 117, 215, 156,\n\t\t135, 49, 204, 154, 82, 135, 251, 206, 36, 64, 151, 79, 17,\n\t\t15, 144, 5, 236, 151, 229, 225, 214, 140, 91, 30, 203, 190,\n\t\t49, 203, 195, 12, 48, 55, 62, 196, 145, 183, 25, 31, 125,\n\t\t250, 225, 167, 37, 156, 193, 198, 124, 16, 129, 152, 200,\n\t\t45, 165, 77, 130, 234, 228, 182, 31, 250, 239, 253, 212, 37,\n\t\t140, 219, 82, 209, 173, 88, 155, 173, 11, 241, 40, 88, 0,\n\t\t89, 112, 230, 108, 93, 21, 213, 36, 139, 229, 247, 169, 28,\n\t\t72, 186, 101, 36, 178, 159, 215, 102, 117, 171, 65, 102, 16,\n\t\t244, 232, 151, 219, 159, 30, 36, 114, 253, 16, 212, 73, 186,\n\t\t182, 242, 112, 214, 147, 187, 25, 239, 31, 39, 186, 235, 89,\n\t\t53, 129, 71, 34, 253, 146, 253, 19, 96, 197, 8, 185, 49, 56,\n\t\t128, 112, 19, 95, 43, 81, 199, 211, 104, 160, 207, 190, 146,\n\t\t192, 78, 129, 156, 243, 128, 222, 207, 33, 95, 143, 205, 198,\n\t\t42, 150, 186, 45, 135, 30, 21, 133, 189, 138, 19, 236, 244,\n\t\t6, 106, 31, 63, 220, 132, 61, 187, 237, 126, 199, 185, 125,\n\t\t154, 37, 216, 216, 141, 251, 96, 241, 137, 251, 48, 23, 245,\n\t\t48, 101, 223, 233, 79, 135, 160, 248, 35, 226, 14, 41, 74,\n\t\t198, 226, 89, 37, 172, 128, 186, 246, 162, 3, 100, 5, 229,\n\t\t187, 255, 206, 235, 50, 159, 213, 164, 167, 182, 78, 52, 91,\n\t\t73, 27, 144, 236, 101, 253, 187, 231, 97, 76, 31, 55, 141,\n\t\t30, 69, 93, 50, 138, 232, 51, 203, 219, 147, 13, 108, 70,\n\t\t94, 107, 208, 150, 197, 182, 182, 213, 102, 155, 168, 205,\n\t\t131, 83, 21, 164, 247, 184, 30, 246, 229, 241, 87, 117, 103,\n\t\t236, 33, 18, 191, 91, 26, 45, 18, 167, 35, 11, 38, 0, 18,\n\t\t72, 193, 186, 154, 88, 123, 116, 197, 1, 38, 77, 106, 214,\n\t\t188, 145, 139, 36, 211, 90, 115, 231, 160, 227, 84, 190, 73,\n\t\t227, 41, 234, 202, 159, 161, 231, 153, 239, 9, 1, 4, 214,\n\t\t116, 97, 33, 65, 93, 212, 185, 145, 130, 144, 87, 251, 220,\n\t\t216, 86, 31, 27, 169, 31, 111, 133, 173, 182, 113, 80, 68,\n\t\t157, 196, 202, 230, 49, 92, 184, 210, 207, 86, 205, 205, 85,\n\t\t58, 228, 179, 71, 63, 33, 92, 195, 85, 188, 254, 135, 148,\n\t\t157, 174, 170, 61, 234, 37, 55, 132, 243, 1, 153, 81, 187,\n\t\t56, 21, 141, 18, 176, 2, 116, 173, 145, 62, 189, 60, 99, 17,\n\t\t137, 180, 98, 117, 159, 30, 10, 200, 142, 226, 110, 226, 98,\n\t\t16, 87, 179, 111, 111, 33, 95, 105, 169, 30, 246, 247, 4,\n\t\t115, 182, 35, 109, 84, 92, 238, 218, 146, 143, 183, 82, 107,\n\t\t24, 131, 101, 88, 232, 215, 89, 125, 251, 229, 157, 76, 152,\n\t\t43, 156, 111, 140, 180, 63, 170, 204, 128, 103, 177, 37, 250,\n\t\t162, 182, 111, 230, 217, 50, 19, 54, 27, 100, 157, 108, 84,\n\t\t213, 134, 36, 117, 172, 252, 79, 216, 144, 162, 10, 220, 87,\n\t\t173, 250, 239, 154, 186, 47, 214, 220, 2, 254, 217, 179, 214,\n\t\t217, 219, 23, 27, 82, 90, 235, 113, 229, 115, 255, 0, 177,\n\t\t200, 240, 164, 127, 110, 184, 110, 141, 105, 84, 159, 136,\n\t\t88, 117, 73, 165, 123, 49, 35, 21, 231, 252, 114, 147, 62,\n\t\t234, 245, 180, 116, 244, 233, 76, 231, 49, 84, 41, 186, 114,\n\t\t38, 53, 77, 236, 95, 59, 113, 251, 47, 26, 145, 178, 255,\n\t\t240, 189, 170, 112, 190, 220, 240, 157, 6, 10, 103, 189, 138,\n\t\t167, 79, 70, 164, 180, 213, 219, 230, 173, 126, 105, 180,\n\t\t24, 145, 123, 143, 252, 243, 23, 82, 125, 146, 100, 202, 32,\n\t\t38, 164, 122, 220, 38, 69, 146, 68, 50, 138, 185, 185, 37,\n\t\t101, 215, 249, 141, 236, 95, 120, 107, 36, 122, 178, 84, 107,\n\t\t115, 217, 213, 90, 21, 92, 224, 26, 178, 91, 78, 226, 35,\n\t\t92, 242, 85, 237, 9, 86, 129, 48, 221, 72, 125, 117, 36, 186,\n\t\t233, 81, 67, 103, 27, 196, 253, 102, 176, 212, 125, 80, 146,\n\t\t185, 6, 12, 176, 201, 114, 133, 84, 239, 245, 83, 5, 200,\n\t\t101, 49, 186, 115, 109, 69, 148, 90, 42, 160, 62, 140, 129,\n\t\t55, 28, 137, 25, 213, 162, 133, 98, 231, 104, 153, 198, 142,\n\t\t154, 253, 120, 171, 145, 2, 210, 198, 98, 104, 172, 138, 201,\n\t\t88, 152, 107, 126, 105, 98, 201, 133, 159, 127, 228, 114,\n\t\t38, 127, 62, 35, 101, 58, 116, 233, 8, 210, 12, 254, 217,\n\t\t42, 92, 47, 67, 115, 204, 82, 144, 224, 41, 142, 249, 30,\n\t\t221, 17, 93, 27, 198, 140, 176, 12, 88, 57, 33, 224, 21, 254,\n\t\t230, 166, 175, 72, 74, 227, 192, 127, 106, 44, 109, 212, 106,\n\t\t214, 99, 36, 223, 214, 164, 14, 116, 47, 7, 208, 74, 174,\n\t\t181, 30, 187, 235, 116, 140, 209, 58, 173, 83, 87, 14, 162,\n\t\t169, 68, 222, 199, 218, 80, 23, 41, 91, 20, 168, 19, 9, 68,\n\t\t50, 111, 232, 45, 165, 124, 177, 146, 164, 106, 237, 103,\n\t\t155, 242, 216, 181, 54, 83, 92, 181, 159, 252, 26, 219, 190,\n\t\t77, 155, 51, 109, 113, 69, 74, 176, 135, 223, 118, 243, 233,\n\t\t123, 143, 255, 18, 156, 145, 192, 52, 247, 53, 192, 70, 217,\n\t\t18, 136, 73, 163, 86, 164, 1, 8, 82, 190, 140, 40, 73, 156,\n\t\t106, 161, 119, 211, 170, 154, 162, 22, 27, 98, 32, 121, 59,\n\t\t67, 162, 179, 3, 75, 100, 123, 11, 92, 192, 66, 119, 23, 53,\n\t\t20, 59, 20, 145, 161, 39, 174, 18, 204, 87, 238, 69, 38, 176,\n\t\t70, 129, 78, 232, 45, 163, 172, 93, 21, 243, 80, 253, 20,\n\t\t203, 52, 15, 26, 204, 99, 99, 163, 194, 183, 29, 154, 217,\n\t\t55, 122, 134, 77, 253, 44, 224, 75, 67, 116, 99, 163, 144,\n\t\t209, 139, 129, 36, 43, 1, 219, 68, 105, 178, 136, 51, 84,\n\t\t55, 172, 14, 153, 1, 31, 111, 181, 2, 139, 70, 136, 46, 92,\n\t\t27, 1, 34, 146, 84, 160, 21, 175, 72, 176, 198, 247, 245,\n\t\t196, 117, 254, 127, 180, 157, 111, 142, 220, 54, 18, 197,\n\t\t191, 247, 41, 116, 129, 166, 89, 252, 79, 192, 240, 13, 124,\n\t\t8, 131, 182, 183, 129, 216, 201, 98, 103, 225, 133, 231, 244,\n\t\t139, 122, 175, 138, 146, 103, 54, 147, 253, 18, 32, 142, 35,\n\t\t77, 143, 162, 150, 248, 167, 88, 124, 239, 87, 136, 207, 61,\n\t\t74, 48, 2, 232, 100, 4, 194, 108, 174, 12, 60, 234, 27, 173,\n\t\t213, 220, 145, 202, 24, 107, 209, 174, 106, 97, 165, 105,\n\t\t189, 233, 243, 4, 8, 69, 109, 120, 214, 155, 222, 163, 95,\n\t\t230, 135, 178, 55, 1, 46, 169, 240, 138, 167, 184, 24, 222,\n\t\t112, 191, 112, 56, 13, 196, 209, 103, 198, 3, 240, 19, 72,\n\t\t69, 145, 202, 69, 113, 137, 175, 212, 113, 223, 17, 137, 40,\n\t\t93, 151, 174, 235, 142, 147, 111, 253, 237, 252, 211, 159,\n\t\t36, 162, 184, 236, 195, 72, 107, 153, 40, 38, 162, 90, 69,\n\t\t89, 148, 107, 42, 106, 164, 146, 254, 50, 21, 165, 95, 122,\n\t\t252, 159, 169, 40, 76, 251, 191, 166, 162, 172, 47, 93, 115,\n\t\t81, 54, 110, 237, 92, 148, 30, 255, 117, 46, 10, 250, 129,\n\t\t75, 46, 170, 33, 105, 120, 205, 69, 185, 48, 205, 99, 150,\n\t\t146, 115, 157, 229, 50, 56, 92, 114, 81, 254, 52, 47, 83,\n\t\t32, 23, 8, 221, 64, 60, 123, 236, 213, 238, 82, 94, 140, 236,\n\t\t57, 135, 212, 161, 208, 40, 125, 71, 248, 200, 56, 81, 176,\n\t\t181, 171, 233, 80, 12, 230, 218, 14, 106, 71, 58, 144, 34,\n\t\t218, 80, 203, 56, 170, 77, 11, 217, 140, 85, 127, 34, 30,\n\t\t121, 91, 213, 242, 207, 47, 159, 126, 251, 242, 175, 251,\n\t\t231, 47, 235, 183, 87, 186, 150, 245, 70, 149, 72, 201, 97,\n\t\t232, 23, 76, 15, 64, 227, 81, 151, 223, 43, 77, 129, 252,\n\t\t118, 148, 93, 150, 58, 198, 67, 98, 124, 242, 19, 118, 172,\n\t\t127, 30, 146, 83, 24, 16, 15, 67, 148, 23, 143, 194, 153,\n\t\t134, 74, 213, 120, 220, 75, 124, 218, 199, 119, 158, 208,\n\t\t63, 143, 187, 228, 18, 224, 118, 180, 169, 133, 21, 107, 40,\n\t\t79, 43, 88, 183, 149, 248, 192, 173, 165, 85, 171, 43, 166,\n\t\t244, 255, 123, 191, 222, 136, 222, 221, 147, 158, 241, 162,\n\t\t203, 241, 252, 215, 227, 46, 93, 194, 72, 20, 92, 218, 13,\n\t\t234, 197, 175, 55, 84, 226, 211, 229, 126, 241, 207, 67, 58,\n\t\t158, 136, 222, 79, 231, 90, 0, 93, 21, 183, 85, 226, 243,\n\t\t199, 164, 163, 62, 237, 67, 26, 103, 72, 211, 208, 170, 1,\n\t\t196, 51, 51, 52, 143, 163, 246, 162, 127, 99, 57, 48, 226,\n\t\t163, 209, 118, 139, 222, 95, 25, 16, 90, 210, 13, 146, 127,\n\t\t38, 23, 181, 137, 237, 99, 153, 97, 164, 41, 63, 162, 174,\n\t\t91, 198, 28, 63, 36, 197, 125, 176, 226, 225, 87, 66, 197,\n\t\t143, 222, 240, 11, 61, 195, 11, 243, 235, 21, 110, 250, 134,\n\t\t123, 72, 101, 141, 144, 240, 61, 103, 40, 35, 67, 236, 64,\n\t\t22, 74, 135, 23, 108, 31, 235, 43, 107, 24, 7, 0, 232, 168,\n\t\t28, 58, 247, 15, 31, 96, 198, 230, 85, 72, 15, 211, 153, 124,\n\t\t112, 215, 0, 110, 235, 68, 230, 14, 79, 140, 248, 227, 46,\n\t\t13, 18, 165, 82, 78, 30, 88, 50, 141, 204, 229, 115, 15, 84,\n\t\t87, 200, 245, 237, 214, 254, 243, 251, 215, 63, 126, 255,\n\t\t249, 170, 161, 127, 126, 163, 161, 215, 246, 183, 148, 249,\n\t\t25, 51, 116, 29, 221, 181, 97, 44, 199, 62, 70, 184, 36, 50,\n\t\t67, 170, 198, 146, 103, 76, 73, 78, 155, 119, 51, 54, 212,\n\t\t177, 56, 226, 32, 32, 195, 80, 20, 110, 253, 48, 47, 146,\n\t\t182, 232, 76, 210, 149, 62, 34, 224, 11, 118, 36, 96, 18,\n\t\t79, 3, 1, 32, 4, 97, 104, 195, 90, 122, 153, 206, 37, 29,\n\t\t238, 196, 240, 150, 190, 165, 124, 175, 230, 125, 111, 213,\n\t\t116, 69, 192, 130, 97, 125, 60, 200, 42, 26, 110, 93, 217,\n\t\t47, 204, 37, 208, 197, 187, 77, 178, 143, 116, 222, 243, 210,\n\t\t49, 154, 191, 51, 104, 160, 216, 196, 194, 84, 153, 43, 76,\n\t\t137, 140, 43, 234, 123, 215, 125, 90, 130, 14, 124, 145, 201,\n\t\t196, 16, 116, 228, 160, 58, 65, 180, 77, 165, 160, 134, 177,\n\t\t183, 37, 54, 171, 21, 99, 41, 100, 11, 153, 60, 164, 107,\n\t\t150, 64, 145, 140, 253, 133, 213, 205, 81, 146, 28, 66, 149,\n\t\t140, 29, 153, 41, 255, 205, 134, 110, 18, 47, 155, 83, 76,\n\t\t192, 135, 170, 199, 13, 60, 31, 75, 254, 231, 9, 25, 11, 10,\n\t\t78, 184, 98, 29, 246, 160, 146, 252, 9, 66, 204, 221, 105,\n\t\t192, 214, 126, 73, 212, 167, 105, 195, 243, 164, 220, 205,\n\t\t36, 219, 98, 137, 49, 223, 226, 79, 70, 107, 76, 14, 34, 231,\n\t\t213, 191, 65, 43, 3, 213, 167, 190, 251, 110, 123, 19, 187,\n\t\t108, 138, 198, 109, 151, 138, 157, 6, 126, 50, 158, 255, 106,\n\t\t38, 79, 28, 190, 50, 107, 123, 82, 194, 151, 203, 194, 253,\n\t\t177, 110, 65, 66, 74, 6, 68, 104, 22, 237, 230, 228, 111,\n\t\t90, 168, 96, 47, 46, 204, 206, 212, 227, 172, 77, 138, 50,\n\t\t198, 124, 36, 144, 158, 114, 93, 49, 249, 213, 125, 36, 202,\n\t\t93, 17, 162, 109, 7, 80, 18, 19, 155, 206, 97, 121, 193, 98,\n\t\t29, 8, 53, 123, 115, 149, 219, 201, 247, 187, 231, 80, 104,\n\t\t247, 218, 155, 58, 99, 111, 0, 154, 210, 248, 78, 27, 106,\n\t\t49, 129, 200, 86, 188, 106, 19, 70, 77, 54, 191, 150, 225,\n\t\t197, 132, 48, 88, 84, 86, 202, 83, 159, 19, 112, 115, 221,\n\t\t114, 64, 20, 195, 233, 111, 35, 79, 167, 17, 202, 116, 173,\n\t\t162, 155, 6, 105, 203, 106, 208, 225, 185, 16, 37, 21, 147,\n\t\t191, 38, 166, 194, 215, 25, 179, 75, 183, 76, 158, 69, 51,\n\t\t144, 56, 15, 82, 17, 169, 25, 212, 64, 49, 163, 220, 19, 25,\n\t\t179, 216, 103, 65, 146, 219, 56, 112, 6, 158, 239, 246, 11,\n\t\t6, 203, 88, 214, 165, 64, 100, 215, 46, 87, 58, 81, 22, 58,\n\t\t18, 36, 160, 26, 240, 230, 155, 132, 158, 100, 213, 13, 168,\n\t\t177, 200, 165, 119, 62, 2, 233, 12, 92, 29, 191, 224, 117,\n\t\t10, 247, 66, 55, 57, 80, 50, 145, 127, 173, 109, 33, 29, 198,\n\t\t126, 59, 125, 57, 78, 23, 196, 74, 127, 26, 228, 89, 219,\n\t\t218, 206, 53, 27, 72, 13, 117, 0, 108, 225, 3, 56, 78, 202,\n\t\t208, 194, 78, 135, 152, 21, 119, 204, 53, 242, 9, 151, 139,\n\t\t158, 170, 135, 136, 147, 13, 11, 101, 186, 136, 108, 27, 168,\n\t\t15, 155, 195, 168, 43, 89, 154, 116, 227, 22, 197, 68, 141,\n\t\t26, 204, 202, 196, 122, 51, 57, 58, 151, 30, 154, 181, 63,\n\t\t235, 9, 60, 110, 145, 79, 0, 202, 12, 46, 213, 246, 94, 57,\n\t\t249, 59, 107, 251, 24, 161, 116, 1, 252, 232, 44, 0, 64, 171,\n\t\t236, 164, 89, 21, 207, 162, 71, 121, 190, 189, 53, 201, 253,\n\t\t231, 211, 243, 107, 137, 242, 171, 66, 118, 231, 12, 87, 163,\n\t\t246, 130, 35, 149, 6, 66, 70, 49, 88, 225, 168, 134, 239,\n\t\t202, 110, 250, 146, 214, 3, 146, 165, 104, 97, 58, 228, 232,\n\t\t104, 189, 36, 163, 87, 155, 220, 198, 1, 176, 61, 58, 98,\n\t\t127, 216, 16, 106, 103, 224, 162, 241, 164, 150, 173, 25,\n\t\t117, 76, 212, 40, 65, 71, 139, 158, 173, 192, 99, 155, 249,\n\t\t40, 48, 71, 22, 239, 152, 38, 225, 106, 101, 7, 154, 189,\n\t\t185, 4, 156, 243, 225, 141, 68, 243, 86, 184, 10, 38, 11,\n\t\t78, 155, 30, 150, 107, 40, 221, 148, 43, 174, 15, 193, 174,\n\t\t159, 65, 146, 26, 185, 6, 102, 27, 43, 186, 192, 69, 74, 146,\n\t\t130, 100, 129, 194, 55, 22, 91, 9, 228, 204, 7, 228, 115,\n\t\t203, 221, 92, 131, 16, 161, 210, 195, 212, 143, 214, 13, 66,\n\t\t156, 59, 140, 5, 238, 93, 68, 125, 75, 124, 18, 13, 104, 78,\n\t\t206, 39, 61, 58, 175, 1, 61, 138, 106, 166, 173, 188, 46,\n\t\t94, 217, 213, 76, 82, 118, 124, 91, 250, 234, 4, 153, 210,\n\t\t156, 104, 116, 168, 133, 185, 153, 146, 153, 225, 209, 89,\n\t\t58, 53, 1, 211, 78, 199, 143, 153, 249, 82, 69, 32, 45, 151,\n\t\t218, 131, 148, 35, 233, 16, 153, 236, 104, 33, 22, 208, 229,\n\t\t155, 204, 14, 60, 110, 143, 22, 98, 192, 38, 167, 13, 98,\n\t\t134, 214, 159, 63, 230, 174, 203, 105, 108, 28, 232, 208,\n\t\t94, 16, 58, 66, 90, 60, 136, 106, 212, 46, 215, 229, 152,\n\t\t77, 103, 29, 189, 172, 20, 89, 197, 56, 150, 146, 114, 208,\n\t\t183, 212, 184, 233, 118, 36, 24, 255, 7, 112, 94, 9, 200,\n\t\t249, 97, 120, 55, 44, 13, 98, 200, 9, 243, 189, 13, 15, 163,\n\t\t209, 36, 152, 17, 21, 48, 113, 82, 6, 189, 142, 144, 217,\n\t\t138, 78, 8, 164, 45, 159, 199, 43, 21, 79, 126, 100, 142,\n\t\t2, 117, 56, 217, 218, 120, 210, 211, 64, 148, 122, 99, 200,\n\t\t75, 38, 179, 38, 121, 233, 154, 230, 110, 143, 202, 21, 72,\n\t\t159, 102, 215, 193, 46, 174, 6, 235, 197, 76, 177, 114, 0,\n\t\t66, 56, 235, 185, 79, 57, 124, 163, 139, 203, 121, 73, 183,\n\t\t101, 205, 71, 42, 121, 97, 224, 251, 101, 16, 239, 36, 23,\n\t\t96, 58, 163, 208, 9, 165, 199, 24, 206, 216, 11, 82, 217,\n\t\t174, 68, 106, 235, 114, 98, 101, 78, 66, 209, 52, 222, 76,\n\t\t81, 87, 139, 40, 165, 143, 146, 162, 217, 150, 199, 238, 183,\n\t\t227, 148, 229, 71, 241, 233, 52, 226, 249, 39, 247, 153, 248,\n\t\t252, 49, 163, 218, 246, 255, 190, 90, 165, 12, 219, 174, 166,\n\t\t71, 118, 53, 248, 238, 109, 106, 220, 63, 162, 88, 142, 22,\n\t\t247, 24, 100, 172, 205, 20, 118, 13, 137, 207, 209, 201, 212,\n\t\t234, 169, 242, 245, 84, 110, 192, 124, 251, 197, 160, 146,\n\t\t250, 36, 99, 69, 40, 30, 117, 247, 93, 50, 247, 211, 189,\n\t\t148, 163, 217, 50, 249, 94, 50, 2, 97, 16, 186, 187, 249,\n\t\t4, 96, 202, 128, 65, 71, 35, 78, 193, 135, 197, 40, 142, 109,\n\t\t214, 85, 206, 136, 8, 106, 250, 93, 193, 35, 146, 246, 152,\n\t\t170, 99, 149, 81, 136, 208, 49, 168, 233, 12, 133, 117, 237,\n\t\t162, 183, 54, 5, 115, 160, 213, 143, 70, 233, 110, 128, 149,\n\t\t226, 1, 6, 86, 55, 120, 38, 17, 169, 214, 88, 116, 224, 123,\n\t\t123, 133, 243, 243, 211, 247, 239, 175, 145, 67, 229, 85,\n\t\t161, 189, 11, 215, 66, 155, 243, 56, 210, 172, 208, 120, 149,\n\t\t97, 81, 105, 106, 70, 147, 212, 144, 170, 162, 56, 201, 240,\n\t\t108, 113, 142, 1, 13, 226, 73, 191, 132, 14, 35, 195, 216,\n\t\t241, 224, 39, 140, 121, 140, 97, 54, 235, 48, 19, 125, 79,\n\t\t161, 194, 246, 199, 236, 202, 100, 246, 58, 153, 226, 219,\n\t\t132, 1, 75, 130, 231, 83, 42, 38, 134, 163, 132, 54, 115,\n\t\t70, 234, 190, 96, 28, 214, 201, 179, 202, 121, 98, 73, 162,\n\t\t1, 2, 219, 109, 182, 16, 210, 16, 75, 215, 91, 126, 194, 156,\n\t\t127, 55, 26, 93, 164, 32, 169, 148, 195, 140, 176, 48, 106,\n\t\t39, 205, 153, 59, 206, 4, 144, 234, 146, 170, 214, 254, 236,\n\t\t143, 166, 83, 186, 188, 138, 39, 156, 115, 24, 41, 39, 20,\n\t\t243, 202, 158, 53, 31, 163, 247, 203, 137, 97, 250, 18, 110,\n\t\t157, 225, 150, 236, 78, 208, 82, 95, 254, 7, 86, 103, 80,\n\t\t63, 69, 194, 77, 129, 58, 11, 69, 160, 159, 197, 20, 200,\n\t\t106, 253, 132, 61, 146, 34, 152, 237, 105, 26, 177, 238, 46,\n\t\t59, 98, 241, 194, 28, 151, 7, 76, 33, 129, 152, 111, 99, 108,\n\t\t166, 28, 192, 211, 250, 254, 44, 251, 121, 121, 129, 37, 162,\n\t\t156, 126, 229, 250, 143, 25, 195, 145, 2, 221, 144, 190, 254,\n\t\t177, 150, 240, 252, 177, 52, 32, 179, 146, 200, 66, 237, 9,\n\t\t13, 237, 19, 55, 77, 72, 183, 174, 132, 240, 158, 184, 235,\n\t\t202, 158, 81, 129, 103, 96, 201, 138, 62, 134, 92, 227, 243,\n\t\t24, 38, 154, 158, 204, 144, 134, 33, 41, 218, 212, 85, 1,\n\t\t232, 254, 49, 93, 231, 104, 29, 218, 167, 174, 229, 162, 27,\n\t\t42, 128, 41, 20, 122, 67, 65, 37, 238, 220, 12, 7, 73, 114,\n\t\t0, 173, 100, 188, 72, 1, 72, 221, 15, 151, 209, 39, 161, 55,\n\t\t3, 99, 233, 28, 101, 174, 43, 132, 231, 143, 192, 110, 235,\n\t\t140, 178, 238, 23, 103, 5, 50, 213, 250, 66, 82, 107, 237,\n\t\t168, 134, 177, 247, 99, 237, 213, 99, 224, 59, 139, 206, 49,\n\t\t153, 132, 251, 82, 235, 30, 201, 95, 252, 189, 134, 145, 6,\n\t\t35, 18, 196, 73, 232, 123, 68, 111, 212, 39, 200, 242, 224,\n\t\t37, 104, 136, 242, 109, 160, 224, 66, 13, 177, 61, 204, 239,\n\t\t244, 13, 251, 210, 80, 56, 235, 50, 18, 79, 126, 156, 242,\n\t\t37, 48, 73, 75, 32, 114, 95, 194, 132, 20, 142, 199, 168,\n\t\t205, 49, 64, 138, 112, 19, 13, 97, 154, 93, 206, 19, 150,\n\t\t76, 231, 59, 12, 195, 75, 82, 23, 99, 7, 149, 48, 163, 100,\n\t\t250, 21, 24, 199, 104, 80, 172, 253, 251, 27, 10, 86, 194,\n\t\t126, 155, 67, 158, 130, 228, 1, 233, 114, 155, 39, 145, 187,\n\t\t141, 214, 221, 104, 199, 172, 53, 183, 143, 41, 139, 130,\n\t\t224, 233, 229, 6, 110, 158, 132, 150, 188, 56, 93, 11, 45,\n\t\t222, 241, 42, 88, 110, 161, 180, 54, 60, 129, 60, 134, 206,\n\t\t6, 195, 209, 27, 153, 101, 179, 133, 226, 40, 44, 60, 168,\n\t\t238, 74, 116, 23, 80, 58, 150, 41, 184, 48, 222, 181, 157,\n\t\t72, 26, 228, 20, 151, 20, 182, 220, 143, 25, 42, 244, 142,\n\t\t186, 136, 213, 152, 77, 255, 214, 69, 159, 29, 175, 24, 210,\n\t\t40, 194, 162, 217, 182, 175, 133, 164, 185, 116, 25, 144,\n\t\t25, 176, 210, 248, 89, 145, 124, 75, 216, 47, 141, 84, 162,\n\t\t193, 30, 246, 15, 197, 162, 213, 125, 6, 200, 85, 38, 78,\n\t\t75, 134, 226, 227, 16, 219, 16, 170, 195, 192, 227, 180, 2,\n\t\t248, 132, 243, 254, 221, 215, 63, 126, 255, 247, 135, 219,\n\t\t251, 119, 159, 191, 124, 125, 250, 240, 254, 221, 211, 143,\n\t\t127, 124, 184, 253, 55, 0, 0, 255, 255, 80, 75, 7, 8, 160,\n\t\t30, 168, 222, 148, 130, 3, 0, 55, 153, 10, 0, 80, 75, 3, 4,\n\t\t20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 26, 0, 9, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115, 45, 52,\n\t\t48, 48, 46, 116, 116, 102, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 236, 188, 121, 156, 36, 69, 153, 48, 28, 79, 68, 100,\n\t\t68, 222, 153, 85, 121, 85, 117, 221, 149, 221, 149, 125, 31,\n\t\t149, 85, 149, 211, 61, 221, 61, 61, 39, 215, 204, 48, 211,\n\t\t51, 195, 49, 48, 192, 32, 247, 229, 8, 131, 34, 42, 182, 44,\n\t\t160, 32, 40, 40, 235, 10, 162, 142, 199, 122, 224, 133, 136,\n\t\t46, 203, 42, 142, 187, 124, 46, 235, 162, 47, 175, 184, 172,\n\t\t175, 139, 50, 174, 235, 177, 254, 246, 245, 157, 238, 30,\n\t\t24, 68, 183, 251, 251, 101, 86, 245, 208, 195, 250, 254, 190,\n\t\t227, 207, 239, 247, 101, 79, 86, 70, 68, 198, 241, 196, 19,\n\t\t207, 29, 145, 131, 0, 33, 164, 161, 57, 68, 208, 142, 45,\n\t\t91, 118, 111, 187, 243, 185, 59, 23, 16, 188, 58, 138, 16,\n\t\t202, 159, 178, 105, 243, 22, 212, 15, 95, 67, 240, 170, 137,\n\t\t16, 42, 158, 185, 107, 164, 190, 193, 252, 229, 251, 17, 130,\n\t\t115, 16, 66, 23, 189, 225, 218, 253, 7, 210, 255, 97, 63,\n\t\t128, 144, 120, 5, 66, 194, 205, 151, 239, 191, 225, 192, 242,\n\t\t50, 34, 8, 94, 21, 17, 66, 226, 229, 215, 188, 245, 178, 179,\n\t\t191, 210, 247, 27, 132, 82, 51, 8, 254, 219, 204, 21, 151,\n\t\t238, 191, 196, 222, 126, 222, 95, 33, 132, 94, 64, 8, 181,\n\t\t174, 184, 226, 210, 253, 180, 69, 94, 64, 8, 108, 132, 80,\n\t\t247, 21, 215, 30, 188, 105, 208, 18, 158, 69, 8, 30, 71, 136,\n\t\t125, 249, 154, 55, 190, 97, 255, 84, 248, 229, 151, 17, 210,\n\t\t254, 13, 33, 114, 254, 181, 251, 111, 58, 128, 93, 114, 38,\n\t\t66, 176, 6, 33, 84, 190, 110, 255, 181, 151, 222, 246, 182,\n\t\t55, 118, 35, 56, 50, 135, 144, 240, 206, 3, 111, 188, 225,\n\t\t224, 117, 119, 23, 254, 30, 193, 175, 16, 66, 182, 16, 207,\n\t\t13, 78, 123, 226, 227, 123, 222, 150, 187, 254, 66, 99, 242,\n\t\t37, 164, 96, 20, 95, 63, 254, 235, 71, 102, 58, 207, 205,\n\t\t203, 191, 91, 254, 6, 190, 29, 142, 196, 240, 162, 246, 107,\n\t\t148, 180, 59, 188, 124, 24, 33, 60, 183, 252, 187, 229, 121,\n\t\t124, 123, 130, 165, 85, 23, 60, 156, 212, 249, 18, 217, 138,\n\t\t130, 164, 0, 39, 173, 226, 90, 51, 157, 42, 20, 254, 29, 238,\n\t\t69, 2, 66, 176, 21, 46, 67, 8, 157, 210, 121, 190, 132, 178,\n\t\t232, 182, 184, 129, 64, 94, 235, 206, 92, 213, 247, 142, 203,\n\t\t54, 95, 130, 230, 142, 190, 235, 149, 153, 4, 134, 97, 120,\n\t\t6, 237, 158, 67, 109, 8, 96, 2, 254, 50, 158, 57, 130, 21,\n\t\t80, 209, 195, 49, 172, 39, 223, 9, 48, 113, 250, 104, 231,\n\t\t94, 41, 159, 67, 106, 146, 62, 210, 169, 51, 119, 226, 73,\n\t\t240, 12, 210, 97, 110, 121, 57, 169, 103, 38, 101, 248, 68,\n\t\t159, 71, 147, 122, 12, 102, 16, 79, 242, 115, 136, 116, 222,\n\t\t149, 225, 48, 146, 48, 66, 98, 146, 63, 176, 170, 254, 12,\n\t\t74, 227, 54, 98, 196, 120, 28, 56, 140, 82, 171, 224, 19,\n\t\t59, 105, 7, 126, 179, 42, 127, 20, 137, 43, 176, 159, 120,\n\t\t182, 199, 44, 119, 210, 175, 205, 107, 229, 57, 147, 204,\n\t\t235, 196, 92, 226, 58, 24, 33, 121, 213, 188, 205, 14, 204,\n\t\t14, 28, 70, 28, 207, 32, 13, 35, 4, 112, 24, 201, 48, 135,\n\t\t160, 3, 27, 75, 218, 253, 169, 27, 157, 192, 93, 252, 28,\n\t\t238, 192, 161, 193, 97, 100, 117, 210, 12, 207, 33, 214, 129,\n\t\t153, 174, 192, 210, 25, 243, 53, 220, 207, 44, 47, 39, 239,\n\t\t142, 190, 214, 119, 7, 175, 241, 45, 225, 153, 229, 223, 195,\n\t\t76, 2, 215, 137, 241, 18, 188, 28, 109, 175, 215, 170, 186,\n\t\t241, 251, 82, 12, 243, 106, 156, 118, 198, 215, 49, 66, 89,\n\t\t248, 113, 146, 143, 113, 153, 94, 233, 7, 191, 54, 215, 50,\n\t\t204, 160, 44, 70, 203, 255, 137, 17, 178, 225, 100, 218, 41,\n\t\t195, 225, 54, 13, 172, 140, 183, 234, 29, 61, 177, 46, 175,\n\t\t225, 86, 238, 224, 84, 92, 161, 181, 85, 235, 125, 82, 251,\n\t\t54, 236, 157, 190, 15, 163, 12, 158, 59, 81, 246, 251, 149,\n\t\t117, 194, 115, 203, 75, 43, 180, 144, 188, 159, 89, 193, 195,\n\t\t242, 31, 227, 119, 176, 66, 59, 71, 151, 143, 190, 14, 54,\n\t\t212, 89, 83, 4, 91, 17, 194, 87, 36, 156, 251, 199, 4, 142,\n\t\t199, 147, 126, 220, 164, 254, 145, 229, 229, 85, 180, 135,\n\t\t224, 80, 167, 222, 145, 215, 242, 112, 36, 30, 11, 33, 16,\n\t\t87, 173, 225, 202, 90, 28, 94, 158, 199, 59, 144, 8, 247,\n\t\t158, 120, 151, 239, 172, 73, 22, 230, 80, 57, 225, 25, 212,\n\t\t230, 177, 54, 124, 203, 47, 37, 239, 146, 186, 203, 191, 199,\n\t\t8, 121, 112, 116, 249, 127, 173, 198, 201, 202, 24, 120, 110,\n\t\t249, 15, 171, 202, 48, 204, 116, 214, 179, 188, 106, 158,\n\t\t71, 79, 230, 233, 21, 252, 36, 240, 180, 233, 106, 133, 127,\n\t\t210, 73, 62, 193, 225, 242, 171, 240, 72, 140, 187, 118, 255,\n\t\t171, 121, 103, 133, 6, 147, 252, 51, 39, 203, 138, 100, 189,\n\t\t31, 95, 254, 227, 137, 113, 58, 180, 180, 26, 231, 109, 184,\n\t\t17, 95, 197, 179, 42, 188, 198, 43, 43, 101, 98, 34, 59, 80,\n\t\t50, 167, 52, 158, 91, 254, 207, 100, 220, 185, 54, 94, 78,\n\t\t208, 39, 234, 164, 219, 184, 88, 130, 19, 52, 113, 162, 63,\n\t\t2, 115, 237, 60, 196, 99, 182, 159, 74, 66, 127, 115, 72,\n\t\t79, 250, 140, 233, 240, 201, 215, 209, 197, 220, 137, 49,\n\t\t212, 246, 184, 203, 139, 43, 124, 248, 255, 244, 198, 175,\n\t\t201, 49, 29, 111, 94, 181, 134, 109, 57, 148, 125, 29, 207,\n\t\t228, 78, 202, 183, 211, 249, 14, 157, 210, 164, 205, 28, 210,\n\t\t99, 57, 178, 50, 255, 149, 254, 78, 200, 137, 152, 94, 102,\n\t\t144, 222, 129, 63, 143, 79, 240, 213, 242, 18, 204, 161, 244,\n\t\t106, 92, 159, 132, 191, 25, 228, 225, 25, 132, 99, 218, 195,\n\t\t40, 126, 38, 124, 229, 117, 218, 254, 161, 211, 95, 6, 191,\n\t\t38, 167, 236, 213, 52, 150, 224, 255, 47, 18, 94, 137, 235,\n\t\t73, 177, 156, 78, 202, 218, 48, 83, 60, 211, 158, 91, 188,\n\t\t38, 171, 230, 171, 98, 132, 156, 14, 175, 240, 100, 157, 81,\n\t\t71, 171, 22, 18, 77, 69, 58, 119, 190, 173, 203, 232, 193,\n\t\t216, 82, 72, 242, 148, 158, 131, 16, 164, 1, 33, 142, 210,\n\t\t71, 111, 61, 122, 247, 209, 15, 28, 253, 200, 209, 127, 58,\n\t\t250, 243, 121, 107, 190, 53, 63, 57, 191, 119, 254, 202, 249,\n\t\t235, 230, 223, 52, 127, 112, 254, 150, 249, 119, 205, 223,\n\t\t54, 127, 207, 252, 253, 243, 31, 158, 255, 200, 252, 199,\n\t\t230, 31, 158, 255, 171, 249, 39, 231, 159, 153, 255, 231,\n\t\t249, 127, 159, 255, 221, 252, 75, 11, 100, 65, 90, 208, 23,\n\t\t220, 133, 250, 66, 180, 48, 189, 176, 117, 225, 130, 133,\n\t\t171, 23, 174, 91, 56, 176, 112, 203, 194, 173, 11, 119, 45,\n\t\t220, 191, 240, 192, 194, 103, 22, 190, 188, 240, 216, 194,\n\t\t227, 11, 223, 93, 248, 201, 194, 207, 22, 142, 44, 158, 191,\n\t\t120, 227, 226, 59, 22, 231, 22, 111, 95, 124, 207, 226, 251,\n\t\t23, 255, 98, 241, 193, 197, 143, 47, 126, 122, 241, 209, 197,\n\t\t111, 45, 30, 94, 124, 106, 241, 233, 197, 103, 22, 159, 93,\n\t\t124, 97, 241, 197, 197, 127, 91, 252, 143, 197, 255, 181,\n\t\t184, 184, 248, 251, 197, 165, 99, 194, 49, 237, 88, 229, 152,\n\t\t127, 108, 236, 216, 182, 99, 179, 199, 206, 62, 118, 238,\n\t\t177, 127, 58, 246, 203, 99, 191, 127, 201, 126, 233, 3, 47,\n\t\t125, 236, 165, 79, 189, 244, 185, 151, 30, 125, 233, 235,\n\t\t47, 61, 249, 210, 119, 95, 122, 230, 165, 255, 246, 210, 252,\n\t\t75, 199, 95, 122, 245, 101, 227, 229, 244, 203, 235, 94, 222,\n\t\t240, 242, 71, 95, 254, 202, 203, 223, 123, 249, 153, 151,\n\t\t95, 56, 78, 143, 143, 29, 223, 119, 252, 166, 227, 111, 59,\n\t\t126, 251, 241, 59, 143, 223, 115, 252, 190, 227, 15, 28, 255,\n\t\t234, 241, 175, 29, 255, 230, 241, 239, 30, 127, 238, 248,\n\t\t243, 199, 127, 126, 252, 23, 175, 76, 189, 50, 179, 188, 140,\n\t\t208, 209, 119, 37, 56, 121, 224, 232, 15, 59, 56, 89, 59,\n\t\t191, 119, 254, 242, 249, 171, 231, 15, 204, 223, 48, 255,\n\t\t214, 249, 185, 249, 219, 230, 239, 76, 112, 242, 224, 252,\n\t\t199, 230, 15, 205, 63, 54, 255, 205, 249, 239, 205, 63, 59,\n\t\t255, 235, 249, 255, 57, 127, 116, 1, 47, 136, 11, 218, 130,\n\t\t185, 48, 182, 16, 45, 76, 44, 156, 177, 112, 193, 194, 69,\n\t\t11, 215, 46, 28, 88, 120, 251, 194, 220, 194, 109, 11, 31,\n\t\t92, 248, 208, 194, 95, 46, 124, 126, 225, 145, 133, 199, 23,\n\t\t158, 90, 248, 167, 133, 159, 38, 56, 185, 98, 241, 166, 197,\n\t\t119, 46, 254, 217, 226, 123, 22, 223, 187, 120, 223, 226,\n\t\t3, 139, 31, 93, 252, 196, 226, 103, 22, 31, 91, 60, 188, 248,\n\t\t119, 139, 223, 93, 252, 222, 226, 179, 139, 63, 92, 124, 113,\n\t\t241, 231, 139, 191, 90, 252, 221, 226, 226, 226, 75, 139,\n\t\t75, 199, 240, 49, 126, 44, 117, 204, 63, 214, 179, 10, 39,\n\t\t255, 118, 236, 215, 47, 201, 255, 55, 113, 242, 15, 29, 156,\n\t\t140, 38, 56, 185, 185, 131, 147, 123, 143, 255, 197, 241,\n\t\t175, 28, 255, 218, 241, 191, 233, 224, 228, 197, 227, 191,\n\t\t120, 165, 241, 202, 186, 229, 101, 227, 86, 227, 173, 198,\n\t\t65, 227, 58, 99, 141, 49, 164, 255, 81, 255, 137, 254, 188,\n\t\t254, 215, 250, 151, 244, 47, 234, 95, 208, 31, 214, 63, 163,\n\t\t255, 165, 254, 41, 253, 227, 250, 3, 250, 135, 244, 63, 215,\n\t\t63, 168, 127, 64, 191, 83, 191, 93, 191, 89, 127, 139, 126,\n\t\t133, 126, 169, 126, 137, 126, 142, 190, 91, 223, 169, 239,\n\t\t208, 91, 122, 93, 31, 213, 187, 117, 75, 79, 235, 41, 221,\n\t\t212, 5, 157, 234, 68, 251, 131, 246, 170, 246, 191, 180, 255,\n\t\t169, 253, 135, 246, 239, 218, 207, 180, 103, 181, 31, 104,\n\t\t223, 215, 102, 181, 83, 180, 205, 218, 38, 109, 131, 54, 163,\n\t\t77, 107, 83, 218, 164, 54, 161, 141, 107, 107, 180, 72, 107,\n\t\t106, 161, 86, 215, 198, 180, 97, 109, 72, 27, 208, 250, 181,\n\t\t62, 173, 87, 235, 209, 186, 181, 178, 86, 208, 242, 90, 86,\n\t\t203, 104, 158, 250, 71, 245, 21, 245, 152, 186, 168, 222,\n\t\t164, 94, 165, 94, 169, 158, 171, 188, 160, 252, 119, 229,\n\t\t251, 202, 63, 40, 135, 149, 39, 149, 111, 40, 95, 81, 30,\n\t\t86, 62, 167, 188, 91, 185, 85, 153, 83, 174, 81, 174, 82,\n\t\t166, 149, 73, 249, 95, 229, 255, 46, 63, 46, 255, 149, 252,\n\t\t57, 249, 93, 242, 89, 242, 128, 156, 146, 77, 153, 203, 84,\n\t\t6, 105, 89, 122, 85, 250, 165, 244, 111, 210, 79, 165, 31,\n\t\t73, 79, 75, 223, 149, 158, 148, 190, 37, 93, 43, 93, 243,\n\t\t122, 11, 245, 255, 191, 226, 11, 24, 58, 129, 24, 88, 49,\n\t\t159, 78, 170, 240, 39, 26, 253, 127, 247, 218, 139, 238, 69,\n\t\t63, 131, 79, 194, 111, 113, 25, 255, 138, 108, 39, 127, 75,\n\t\t77, 122, 42, 189, 141, 190, 34, 228, 133, 77, 194, 37, 194,\n\t\t243, 204, 101, 219, 217, 67, 236, 41, 246, 10, 191, 155, 31,\n\t\t230, 255, 42, 154, 226, 86, 241, 65, 241, 5, 241, 85, 233,\n\t\t22, 229, 44, 229, 155, 106, 191, 122, 135, 250, 67, 141, 106,\n\t\t215, 232, 76, 159, 208, 31, 209, 143, 24, 117, 227, 203, 102,\n\t\t191, 121, 142, 121, 135, 249, 104, 106, 52, 245, 68, 90, 76,\n\t\t111, 77, 63, 152, 254, 177, 181, 198, 222, 97, 63, 235, 92,\n\t\t225, 60, 225, 22, 221, 219, 220, 5, 239, 44, 239, 166, 204,\n\t\t193, 204, 55, 178, 56, 251, 183, 93, 167, 231, 202, 185, 199,\n\t\t242, 211, 249, 75, 242, 95, 204, 191, 90, 184, 190, 176, 80,\n\t\t204, 23, 31, 42, 209, 210, 233, 165, 167, 43, 123, 171, 93,\n\t\t221, 197, 30, 214, 243, 100, 109, 180, 246, 88, 144, 9, 126,\n\t\t216, 139, 250, 186, 251, 102, 251, 62, 220, 183, 208, 127,\n\t\t221, 192, 221, 3, 207, 12, 110, 24, 124, 112, 72, 28, 170,\n\t\t15, 93, 63, 244, 129, 209, 193, 209, 55, 143, 30, 27, 155,\n\t\t27, 251, 97, 189, 94, 191, 160, 254, 161, 112, 123, 248, 104,\n\t\t35, 223, 184, 160, 241, 76, 243, 138, 230, 163, 173, 63, 70,\n\t\t107, 162, 15, 71, 191, 89, 243, 200, 248, 204, 248, 238, 241,\n\t\t15, 140, 127, 113, 162, 107, 226, 67, 19, 63, 90, 155, 89,\n\t\t59, 177, 246, 201, 201, 198, 228, 249, 147, 63, 153, 106,\n\t\t76, 29, 156, 250, 208, 212, 211, 211, 230, 244, 53, 211, 143,\n\t\t175, 219, 178, 238, 187, 51, 245, 153, 47, 175, 159, 89, 255,\n\t\t163, 13, 215, 109, 248, 220, 198, 77, 27, 63, 180, 233, 201,\n\t\t205, 116, 243, 222, 45, 233, 45, 23, 156, 82, 60, 101, 246,\n\t\t148, 107, 78, 61, 120, 234, 175, 78, 187, 248, 116, 243, 244,\n\t\t7, 79, 255, 209, 25, 93, 91, 55, 109, 125, 100, 91, 126, 219,\n\t\t135, 182, 223, 180, 253, 211, 103, 186, 103, 222, 188, 227,\n\t\t51, 59, 187, 118, 222, 53, 123, 213, 236, 83, 187, 204, 93,\n\t\t23, 237, 126, 243, 238, 195, 123, 102, 247, 60, 115, 86, 245,\n\t\t172, 199, 206, 238, 62, 251, 174, 179, 159, 62, 199, 62, 103,\n\t\t203, 185, 242, 185, 63, 219, 43, 239, 109, 157, 127, 235,\n\t\t62, 186, 239, 192, 190, 47, 95, 208, 186, 224, 130, 11, 230,\n\t\t46, 248, 217, 133, 59, 46, 252, 238, 133, 191, 217, 223, 216,\n\t\t127, 197, 254, 187, 246, 63, 186, 255, 87, 23, 239, 184, 164,\n\t\t113, 201, 77, 151, 14, 94, 122, 209, 165, 207, 94, 86, 191,\n\t\t108, 199, 101, 111, 191, 236, 55, 87, 62, 124, 213, 171, 87,\n\t\t15, 95, 125, 228, 154, 226, 53, 55, 95, 179, 112, 237, 246,\n\t\t3, 242, 129, 251, 15, 252, 219, 155, 54, 189, 233, 213, 235,\n\t\t183, 92, 127, 243, 13, 246, 13, 15, 31, 212, 15, 182, 14,\n\t\t254, 248, 198, 244, 141, 183, 222, 248, 177, 27, 191, 247,\n\t\t102, 250, 230, 209, 55, 63, 253, 150, 115, 222, 242, 190,\n\t\t155, 236, 183, 202, 111, 189, 245, 230, 174, 155, 215, 220,\n\t\t252, 158, 155, 95, 121, 251, 249, 111, 127, 226, 29, 250,\n\t\t59, 238, 120, 199, 51, 183, 108, 186, 229, 169, 119, 202,\n\t\t239, 188, 255, 157, 79, 205, 77, 206, 125, 114, 238, 233,\n\t\t185, 223, 189, 235, 192, 187, 190, 123, 107, 255, 173, 239,\n\t\t249, 179, 71, 111, 195, 183, 253, 246, 118, 251, 246, 29,\n\t\t183, 31, 184, 35, 115, 199, 19, 239, 217, 241, 158, 39, 239,\n\t\t124, 236, 46, 122, 215, 151, 223, 59, 121, 55, 186, 251, 224,\n\t\t221, 47, 223, 147, 185, 103, 240, 158, 31, 190, 111, 238,\n\t\t125, 63, 121, 255, 117, 247, 30, 187, 239, 166, 15, 252, 228,\n\t\t131, 248, 131, 175, 254, 249, 251, 254, 252, 139, 127, 254,\n\t\t236, 135, 126, 240, 225, 203, 62, 252, 153, 15, 63, 245, 192,\n\t\t195, 15, 60, 245, 224, 21, 15, 62, 248, 224, 179, 15, 29,\n\t\t248, 152, 250, 177, 234, 199, 102, 63, 118, 219, 199, 126,\n\t\t248, 177, 255, 248, 248, 135, 15, 237, 62, 116, 239, 39, 210,\n\t\t159, 56, 246, 201, 115, 62, 249, 224, 39, 255, 248, 169, 43,\n\t\t62, 245, 205, 79, 253, 238, 211, 27, 62, 253, 161, 79, 31,\n\t\t253, 203, 45, 127, 249, 175, 159, 153, 251, 204, 143, 63,\n\t\t59, 252, 217, 111, 126, 238, 199, 159, 63, 255, 243, 223,\n\t\t125, 120, 199, 195, 255, 241, 133, 59, 190, 240, 232, 23,\n\t\t247, 126, 233, 172, 47, 189, 250, 200, 221, 143, 253, 238,\n\t\t235, 15, 126, 253, 183, 223, 248, 198, 95, 45, 60, 254, 228,\n\t\t223, 20, 255, 230, 130, 191, 249, 228, 223, 28, 249, 102,\n\t\t227, 155, 15, 127, 171, 235, 91, 239, 123, 178, 245, 228,\n\t\t85, 79, 254, 240, 201, 165, 111, 55, 190, 125, 243, 225, 83,\n\t\t15, 31, 122, 170, 241, 212, 209, 167, 239, 253, 71, 246, 143,\n\t\t23, 252, 227, 145, 103, 14, 62, 219, 245, 236, 228, 115, 233,\n\t\t231, 134, 159, 219, 253, 220, 123, 158, 251, 221, 143, 110,\n\t\t251, 209, 209, 127, 186, 234, 159, 62, 247, 124, 255, 63,\n\t\t159, 250, 207, 183, 252, 243, 175, 126, 188, 247, 199, 183,\n\t\t254, 120, 233, 95, 138, 47, 108, 125, 225, 174, 23, 158, 248,\n\t\t233, 173, 63, 125, 245, 103, 247, 254, 108, 233, 197, 159,\n\t\t28, 57, 253, 231, 151, 252, 252, 240, 191, 230, 255, 117,\n\t\t239, 47, 240, 47, 190, 249, 203, 187, 126, 249, 147, 95, 221,\n\t\t251, 235, 238, 95, 31, 138, 37, 202, 242, 17, 56, 12, 135,\n\t\t144, 129, 214, 34, 4, 117, 215, 73, 217, 204, 175, 84, 107,\n\t\t205, 84, 163, 21, 10, 173, 136, 241, 248, 174, 249, 85, 230,\n\t\t213, 2, 230, 216, 69, 240, 106, 129, 99, 187, 30, 11, 138,\n\t\t16, 50, 191, 26, 184, 97, 125, 26, 154, 13, 184, 215, 206,\n\t\t231, 237, 165, 67, 241, 47, 140, 88, 186, 101, 57, 162, 237,\n\t\t90, 249, 82, 47, 223, 213, 148, 68, 93, 52, 245, 162, 167,\n\t\t155, 172, 234, 116, 15, 73, 124, 56, 26, 63, 167, 15, 14,\n\t\t157, 104, 112, 145, 157, 255, 184, 110, 139, 88, 243, 84,\n\t\t234, 140, 86, 132, 25, 35, 45, 59, 105, 6, 34, 100, 186, 5,\n\t\t130, 237, 108, 30, 138, 19, 187, 135, 132, 182, 212, 235,\n\t\t192, 220, 131, 16, 164, 108, 54, 0, 205, 48, 242, 155, 141,\n\t\t105, 88, 11, 205, 24, 210, 2, 248, 78, 232, 248, 157, 73,\n\t\t84, 234, 46, 28, 206, 219, 123, 38, 165, 205, 212, 212, 186,\n\t\t157, 82, 239, 200, 212, 212, 255, 177, 50, 42, 28, 136, 33,\n\t\t248, 234, 166, 1, 69, 147, 38, 201, 72, 127, 125, 211, 87,\n\t\t219, 47, 242, 177, 204, 161, 171, 240, 99, 163, 60, 106, 254,\n\t\t87, 28, 89, 97, 211, 119, 90, 245, 86, 163, 86, 101, 54, 52,\n\t\t27, 195, 216, 175, 50, 238, 55, 125, 39, 108, 54, 90, 97,\n\t\t189, 136, 11, 0, 135, 52, 203, 210, 150, 230, 226, 223, 203,\n\t\t97, 99, 170, 236, 121, 101, 23, 102, 152, 89, 201, 120, 21,\n\t\t14, 51, 27, 77, 79, 53, 5, 12, 135, 86, 42, 193, 156, 102,\n\t\t45, 205, 61, 255, 252, 162, 87, 242, 188, 210, 210, 203, 55,\n\t\t102, 170, 5, 195, 214, 11, 207, 95, 149, 45, 202, 182, 161,\n\t\t94, 129, 16, 146, 86, 193, 118, 22, 58, 15, 189, 1, 93, 137,\n\t\t14, 160, 183, 160, 119, 160, 219, 255, 4, 148, 241, 18, 197,\n\t\t184, 137, 151, 206, 109, 54, 106, 77, 29, 170, 195, 16, 212,\n\t\t130, 209, 160, 17, 186, 158, 27, 181, 162, 97, 210, 108, 68,\n\t\t181, 168, 229, 150, 160, 85, 247, 166, 177, 231, 114, 215,\n\t\t177, 117, 204, 93, 39, 15, 142, 93, 99, 181, 176, 197, 27,\n\t\t126, 213, 177, 195, 122, 141, 5, 181, 150, 23, 180, 106, 156,\n\t\t121, 110, 208, 10, 106, 156, 185, 181, 86, 80, 99, 94, 208,\n\t\t10, 170, 113, 225, 106, 122, 248, 101, 125, 106, 255, 230,\n\t\t205, 251, 166, 235, 42, 96, 150, 210, 117, 194, 21, 46, 154,\n\t\t82, 170, 140, 197, 180, 157, 85, 76, 73, 102, 158, 36, 218,\n\t\t3, 54, 85, 178, 76, 22, 83, 106, 151, 157, 86, 118, 113, 32,\n\t\t84, 165, 148, 82, 13, 19, 138, 137, 4, 2, 6, 76, 56, 142,\n\t\t47, 202, 8, 198, 4, 83, 192, 24, 128, 224, 147, 41, 105, 105,\n\t\t46, 117, 118, 180, 105, 223, 190, 77, 209, 217, 41, 44, 67,\n\t\t89, 4, 32, 178, 100, 9, 156, 128, 89, 48, 12, 142, 5, 189,\n\t\t232, 186, 41, 59, 139, 37, 65, 16, 4, 204, 101, 156, 113,\n\t\t210, 142, 91, 212, 5, 44, 57, 122, 31, 200, 51, 32, 128, 64,\n\t\t8, 102, 2, 128, 0, 24, 88, 60, 152, 2, 132, 96, 16, 164, 100,\n\t\t100, 14, 24, 32, 209, 202, 49, 61, 30, 197, 177, 31, 59, 138,\n\t\t16, 36, 24, 107, 115, 69, 84, 173, 37, 143, 97, 60, 5, 174,\n\t\t87, 107, 54, 162, 152, 121, 18, 162, 240, 58, 140, 5, 255,\n\t\t8, 189, 167, 29, 220, 114, 206, 105, 138, 126, 218, 132, 223,\n\t\t148, 101, 73, 215, 51, 53, 215, 205, 142, 24, 193, 155, 102,\n\t\t240, 212, 192, 112, 169, 187, 164, 86, 139, 69, 23, 122, 169,\n\t\t212, 188, 242, 236, 214, 8, 12, 245, 149, 128, 8, 197, 129,\n\t\t44, 214, 160, 188, 38, 159, 29, 155, 32, 170, 58, 48, 93,\n\t\t225, 233, 30, 135, 106, 229, 255, 119, 252, 161, 43, 215,\n\t\t79, 72, 27, 5, 35, 230, 143, 96, 116, 98, 226, 121, 69, 215,\n\t\t21, 120, 159, 108, 192, 187, 151, 174, 151, 141, 47, 111,\n\t\t140, 249, 99, 10, 15, 15, 212, 55, 126, 57, 126, 161, 232,\n\t\t58, 74, 252, 35, 180, 252, 28, 28, 133, 199, 17, 71, 58, 178,\n\t\t209, 165, 232, 90, 116, 35, 122, 7, 186, 13, 161, 200, 246,\n\t\t89, 179, 17, 182, 88, 203, 115, 57, 11, 162, 186, 203, 89,\n\t\t205, 170, 23, 193, 177, 25, 103, 181, 230, 36, 52, 27, 193,\n\t\t52, 109, 54, 106, 49, 249, 48, 3, 106, 85, 62, 140, 57, 243,\n\t\t98, 33, 67, 60, 198, 117, 168, 5, 195, 48, 2, 85, 175, 8,\n\t\t37, 40, 226, 250, 58, 176, 93, 199, 102, 193, 48, 52, 27,\n\t\t45, 210, 238, 182, 22, 116, 158, 222, 73, 249, 218, 103, 4,\n\t\t38, 176, 10, 17, 226, 245, 235, 21, 64, 16, 224, 148, 77,\n\t\t7, 55, 238, 59, 67, 148, 82, 110, 166, 219, 210, 85, 93, 213,\n\t\t229, 170, 166, 150, 214, 23, 133, 116, 143, 100, 168, 158,\n\t\t158, 174, 102, 29, 141, 200, 78, 89, 102, 22, 103, 174, 205,\n\t\t117, 66, 169, 157, 113, 57, 7, 73, 220, 122, 193, 61, 131,\n\t\t152, 196, 43, 79, 36, 76, 8, 0, 161, 85, 76, 41, 38, 148,\n\t\t74, 36, 190, 132, 144, 130, 64, 128, 138, 24, 40, 197, 156,\n\t\t97, 16, 97, 110, 230, 192, 166, 93, 127, 150, 197, 34, 131,\n\t\t117, 118, 89, 39, 84, 119, 123, 243, 86, 198, 40, 245, 16,\n\t\t77, 148, 36, 137, 42, 6, 233, 41, 101, 43, 249, 94, 87, 23,\n\t\t176, 234, 82, 170, 166, 20, 13, 192, 160, 105, 46, 170, 38,\n\t\t5, 80, 71, 129, 137, 56, 251, 103, 187, 174, 184, 123, 233,\n\t\t179, 157, 241, 101, 12, 49, 1, 226, 10, 161, 148, 16, 74,\n\t\t83, 68, 160, 24, 75, 201, 186, 63, 157, 172, 197, 233, 8,\n\t\t33, 59, 22, 205, 173, 117, 80, 132, 176, 222, 90, 197, 250,\n\t\t209, 52, 68, 173, 160, 77, 133, 49, 173, 130, 95, 173, 69,\n\t\t211, 184, 217, 24, 134, 164, 74, 145, 58, 30, 227, 204, 75,\n\t\t144, 92, 135, 163, 247, 93, 94, 243, 51, 204, 100, 101, 43,\n\t\t58, 237, 156, 245, 91, 207, 206, 187, 60, 102, 9, 32, 233,\n\t\t169, 112, 120, 194, 233, 118, 44, 151, 98, 149, 49, 67, 182,\n\t\t186, 0, 48, 96, 200, 10, 130, 112, 202, 217, 247, 253, 0,\n\t\t130, 31, 220, 167, 244, 102, 215, 170, 230, 185, 235, 167,\n\t\t102, 207, 153, 46, 140, 203, 132, 97, 143, 80, 226, 85, 7,\n\t\t214, 143, 15, 86, 26, 133, 92, 90, 238, 206, 201, 146, 41,\n\t\t85, 187, 168, 196, 57, 165, 0, 151, 219, 217, 225, 220, 45,\n\t\t219, 47, 191, 111, 21, 29, 207, 174, 208, 113, 103, 62, 39,\n\t\t201, 178, 168, 209, 250, 211, 19, 138, 101, 146, 99, 23, 113,\n\t\t9, 116, 193, 45, 193, 235, 212, 193, 203, 46, 51, 88, 57,\n\t\t221, 51, 81, 57, 123, 253, 25, 201, 172, 88, 50, 169, 250,\n\t\t208, 132, 227, 187, 105, 151, 98, 133, 103, 115, 134, 152,\n\t\t8, 24, 65, 19, 56, 0, 0, 57, 247, 100, 181, 209, 237, 173,\n\t\t85, 205, 222, 45, 253, 83, 59, 207, 158, 206, 175, 81, 8,\n\t\t7, 151, 82, 226, 85, 6, 102, 214, 12, 150, 27, 249, 174, 180,\n\t\t226, 231, 164, 34, 165, 121, 195, 102, 170, 196, 48, 118,\n\t\t34, 187, 172, 186, 41, 13, 86, 233, 24, 178, 74, 142, 15,\n\t\t160, 232, 79, 200, 238, 120, 1, 3, 223, 9, 227, 185, 37, 235,\n\t\t18, 214, 189, 40, 70, 128, 237, 246, 52, 99, 77, 19, 179,\n\t\t115, 216, 92, 45, 113, 15, 14, 52, 241, 5, 227, 36, 223, 149,\n\t\t202, 167, 186, 187, 50, 102, 46, 31, 244, 173, 93, 11, 66,\n\t\t33, 190, 94, 39, 45, 191, 217, 26, 20, 197, 170, 145, 79,\n\t\t21, 82, 93, 61, 70, 87, 215, 218, 217, 181, 179, 73, 189,\n\t\t2, 194, 72, 69, 8, 31, 132, 57, 148, 67, 1, 66, 61, 49, 255,\n\t\t249, 213, 90, 2, 65, 108, 20, 232, 224, 216, 110, 88, 111,\n\t\t69, 126, 83, 8, 29, 223, 241, 155, 126, 51, 108, 134, 112,\n\t\t43, 185, 108, 118, 199, 129, 3, 59, 206, 104, 54, 138, 195,\n\t\t229, 168, 188, 101, 172, 222, 18, 174, 133, 235, 214, 172,\n\t\t89, 19, 69, 107, 94, 72, 25, 187, 174, 60, 112, 232, 64, 189,\n\t\t94, 40, 175, 169, 212, 79, 105, 229, 55, 242, 53, 241, 149,\n\t\t68, 88, 16, 28, 134, 195, 136, 32, 3, 245, 34, 20, 250, 169,\n\t\t48, 104, 15, 88, 4, 91, 7, 240, 59, 26, 182, 0, 126, 42, 116,\n\t\t194, 105, 136, 53, 172, 115, 201, 190, 125, 195, 110, 185,\n\t\t236, 234, 89, 195, 200, 194, 219, 247, 97, 209, 73, 85, 188,\n\t\t125, 123, 65, 30, 46, 87, 135, 60, 9, 6, 250, 202, 131, 101,\n\t\t61, 91, 200, 26, 75, 95, 252, 64, 202, 201, 233, 253, 254,\n\t\t253, 48, 208, 103, 23, 156, 190, 209, 74, 162, 231, 17, 130,\n\t\t35, 48, 135, 100, 20, 162, 173, 104, 55, 66, 173, 120, 166,\n\t\t109, 46, 16, 108, 174, 11, 126, 63, 12, 211, 152, 206, 162,\n\t\t248, 174, 187, 94, 140, 131, 105, 8, 93, 199, 230, 46, 143,\n\t\t233, 145, 179, 106, 208, 38, 203, 34, 89, 11, 245, 105, 92,\n\t\t171, 187, 54, 171, 214, 26, 79, 88, 105, 53, 197, 45, 31,\n\t\t198, 211, 82, 174, 175, 28, 101, 242, 121, 163, 149, 25, 202,\n\t\t228, 69, 187, 95, 212, 253, 177, 108, 255, 72, 127, 45, 59,\n\t\t86, 53, 196, 96, 166, 183, 170, 14, 58, 163, 206, 128, 86,\n\t\t237, 181, 242, 253, 181, 204, 104, 113, 116, 164, 235, 18,\n\t\t223, 178, 124, 251, 174, 90, 183, 157, 81, 172, 110, 186,\n\t\t182, 219, 202, 153, 18, 1, 66, 21, 51, 107, 246, 70, 235,\n\t\t71, 51, 89, 175, 96, 218, 178, 100, 27, 5, 47, 235, 13, 191,\n\t\t197, 31, 101, 132, 176, 81, 63, 91, 115, 52, 202, 237, 129,\n\t\t179, 186, 107, 221, 221, 181, 182, 199, 40, 96, 25, 222, 134,\n\t\t44, 132, 122, 252, 168, 85, 27, 0, 226, 91, 62, 241, 173,\n\t\t160, 82, 247, 92, 14, 223, 223, 223, 32, 166, 57, 54, 185,\n\t\t127, 237, 174, 201, 253, 147, 67, 112, 112, 186, 187, 71,\n\t\t19, 22, 77, 107, 233, 183, 224, 198, 247, 69, 67, 67, 83,\n\t\t29, 187, 113, 14, 14, 33, 138, 28, 132, 82, 21, 194, 3, 136,\n\t\t124, 47, 52, 96, 4, 252, 18, 132, 235, 192, 15, 96, 206, 255,\n\t\t232, 71, 33, 37, 204, 171, 159, 101, 205, 22, 29, 97, 111,\n\t\t128, 253, 250, 35, 20, 14, 45, 29, 108, 52, 64, 29, 253, 192,\n\t\t180, 174, 215, 182, 230, 114, 127, 62, 214, 225, 245, 35,\n\t\t9, 15, 32, 32, 60, 136, 66, 238, 173, 131, 74, 20, 255, 193,\n\t\t145, 153, 23, 191, 99, 207, 138, 7, 239, 176, 150, 190, 102,\n\t\t194, 54, 101, 233, 209, 20, 28, 90, 186, 119, 199, 142, 11,\n\t\t251, 6, 7, 247, 207, 54, 103, 17, 65, 100, 249, 48, 220, 6,\n\t\t135, 209, 48, 90, 31, 175, 94, 143, 203, 117, 224, 142, 223,\n\t\t172, 250, 201, 79, 84, 15, 221, 105, 136, 154, 195, 192, 171,\n\t\t126, 211, 141, 154, 161, 211, 10, 155, 161, 83, 164, 158,\n\t\t27, 56, 117, 183, 85, 143, 85, 209, 48, 101, 188, 238, 78,\n\t\t179, 36, 229, 67, 107, 27, 103, 167, 108, 24, 203, 106, 99,\n\t\t210, 57, 50, 225, 41, 77, 5, 226, 21, 4, 178, 91, 139, 203,\n\t\t172, 114, 193, 214, 128, 253, 0, 44, 217, 209, 45, 85, 97,\n\t\t82, 58, 149, 51, 186, 0, 60, 53, 107, 186, 186, 198, 21, 199,\n\t\t170, 152, 101, 248, 126, 122, 182, 57, 72, 55, 109, 220, 184,\n\t\t105, 2, 64, 20, 255, 135, 201, 161, 1, 112, 230, 118, 216,\n\t\t118, 38, 230, 106, 58, 103, 78, 236, 190, 40, 214, 39, 162,\n\t\t172, 75, 106, 74, 97, 24, 224, 15, 177, 172, 161, 146, 108,\n\t\t202, 154, 165, 136, 24, 18, 71, 31, 35, 29, 33, 92, 135, 57,\n\t\t212, 29, 243, 34, 20, 73, 1, 236, 120, 150, 58, 112, 191,\n\t\t26, 196, 202, 50, 104, 54, 98, 249, 62, 13, 81, 88, 247, 138,\n\t\t32, 68, 1, 174, 17, 1, 131, 34, 116, 165, 173, 171, 6, 7,\n\t\t191, 208, 31, 200, 130, 176, 42, 155, 238, 90, 250, 251, 247,\n\t\t191, 31, 54, 169, 221, 126, 81, 150, 246, 14, 164, 186, 132,\n\t\t248, 189, 210, 99, 109, 244, 50, 231, 14, 164, 219, 89, 161,\n\t\t235, 55, 179, 59, 17, 94, 94, 90, 126, 17, 110, 133, 67, 200,\n\t\t68, 62, 66, 209, 40, 103, 3, 80, 173, 173, 131, 160, 214,\n\t\t90, 11, 117, 175, 135, 123, 110, 92, 50, 2, 211, 56, 138,\n\t\t75, 220, 79, 109, 17, 229, 245, 76, 192, 155, 7, 9, 99, 235,\n\t\t21, 14, 210, 189, 231, 17, 129, 109, 80, 248, 249, 80, 58,\n\t\t181, 143, 203, 27, 152, 240, 187, 183, 171, 146, 112, 243,\n\t\t86, 65, 82, 207, 250, 207, 207, 10, 146, 250, 121, 220, 122,\n\t\t231, 169, 170, 244, 58, 185, 88, 70, 99, 127, 74, 46, 70,\n\t\t173, 40, 168, 13, 64, 149, 149, 128, 51, 55, 236, 137, 201,\n\t\t185, 202, 25, 247, 220, 181, 80, 111, 141, 192, 106, 137,\n\t\t120, 190, 40, 140, 226, 178, 32, 14, 11, 4, 151, 198, 48,\n\t\t165, 32, 99, 74, 71, 184, 112, 25, 222, 32, 136, 35, 148,\n\t\t226, 13, 175, 147, 139, 71, 164, 61, 36, 146, 24, 109, 157,\n\t\t77, 217, 243, 148, 73, 95, 35, 55, 73, 140, 190, 229, 132,\n\t\t204, 198, 38, 28, 66, 28, 41, 49, 47, 1, 247, 120, 16, 5,\n\t\t81, 42, 242, 120, 51, 10, 34, 143, 123, 28, 196, 219, 94,\n\t\t127, 193, 214, 61, 187, 119, 239, 217, 189, 123, 247, 210,\n\t\t253, 123, 246, 236, 126, 106, 247, 238, 36, 135, 16, 67, 120,\n\t\t249, 8, 220, 2, 135, 16, 73, 122, 52, 144, 133, 114, 8, 245,\n\t\t240, 96, 29, 240, 184, 183, 96, 29, 120, 60, 176, 28, 191,\n\t\t233, 53, 67, 167, 210, 12, 29, 240, 165, 191, 19, 143, 119,\n\t\t61, 144, 189, 217, 252, 70, 234, 246, 183, 148, 223, 210,\n\t\t120, 250, 104, 239, 210, 3, 189, 119, 6, 125, 193, 112, 233,\n\t\t93, 197, 207, 117, 239, 238, 249, 224, 161, 204, 161, 165,\n\t\t103, 123, 123, 119, 220, 116, 232, 208, 77, 49, 220, 194,\n\t\t242, 242, 242, 17, 248, 14, 124, 2, 113, 100, 32, 15, 133,\n\t\t232, 106, 132, 210, 29, 49, 229, 118, 156, 152, 86, 146, 107,\n\t\t213, 61, 55, 33, 47, 150, 208, 22, 110, 214, 26, 81, 43, 254,\n\t\t139, 41, 139, 76, 227, 73, 154, 184, 15, 195, 184, 31, 252,\n\t\t126, 28, 215, 227, 58, 206, 131, 147, 199, 69, 236, 185, 94,\n\t\t17, 79, 64, 56, 129, 99, 107, 227, 145, 139, 54, 110, 188,\n\t\t104, 227, 238, 233, 193, 193, 233, 193, 159, 26, 174, 105,\n\t\t186, 231, 3, 144, 141, 83, 185, 91, 115, 83, 21, 205, 228,\n\t\t24, 147, 74, 37, 201, 109, 28, 34, 20, 99, 74, 212, 146, 152,\n\t\t245, 157, 62, 140, 123, 93, 63, 43, 150, 84, 66, 49, 96, 138,\n\t\t181, 98, 187, 152, 4, 73, 49, 132, 27, 227, 158, 223, 54,\n\t\t24, 247, 252, 201, 184, 95, 163, 149, 244, 130, 227, 30, 213,\n\t\t114, 209, 206, 221, 154, 159, 172, 84, 99, 107, 109, 227,\n\t\t210, 47, 196, 172, 239, 246, 10, 193, 137, 30, 87, 141, 67,\n\t\t11, 86, 209, 113, 249, 74, 177, 118, 18, 237, 121, 168, 244,\n\t\t95, 105, 47, 221, 193, 213, 10, 206, 86, 83, 218, 150, 102,\n\t\t79, 79, 179, 231, 169, 228, 247, 117, 36, 245, 243, 158, 164,\n\t\t52, 249, 183, 66, 71, 109, 155, 13, 35, 25, 165, 16, 178,\n\t\t60, 191, 187, 131, 126, 43, 224, 97, 20, 122, 175, 172, 191,\n\t\t21, 198, 239, 251, 193, 125, 247, 253, 96, 232, 254, 251,\n\t\t139, 213, 207, 85, 33, 115, 241, 155, 226, 236, 125, 75, 95,\n\t\t127, 241, 197, 70, 3, 97, 196, 150, 95, 132, 87, 225, 19,\n\t\t200, 139, 105, 198, 170, 212, 195, 34, 113, 108, 135, 232,\n\t\t16, 131, 27, 144, 70, 179, 209, 138, 133, 179, 11, 207, 65,\n\t\t108, 176, 226, 77, 32, 177, 165, 39, 184, 6, 155, 36, 232,\n\t\t201, 126, 52, 15, 135, 128, 80, 129, 0, 94, 186, 80, 16, 21,\n\t\t14, 15, 97, 224, 210, 210, 243, 31, 252, 32, 2, 196, 151,\n\t\t15, 195, 4, 28, 70, 125, 8, 9, 137, 253, 129, 167, 192, 175,\n\t\t78, 65, 34, 104, 98, 46, 47, 64, 88, 47, 128, 61, 16, 91,\n\t\t2, 81, 203, 115, 75, 224, 66, 75, 109, 86, 250, 167, 139,\n\t\t218, 136, 172, 244, 247, 18, 48, 182, 200, 187, 101, 121,\n\t\t183, 95, 145, 168, 128, 93, 90, 214, 172, 252, 240, 160, 119,\n\t\t175, 188, 73, 165, 250, 134, 30, 83, 190, 65, 158, 149, 111,\n\t\t207, 57, 42, 197, 192, 103, 228, 182, 172, 123, 13, 255, 127,\n\t\t194, 34, 130, 214, 8, 212, 98, 251, 174, 54, 5, 97, 125, 10,\n\t\t26, 3, 208, 108, 180, 89, 159, 21, 192, 94, 11, 177, 221,\n\t\t23, 214, 79, 10, 73, 232, 24, 235, 64, 136, 224, 184, 13,\n\t\t198, 26, 108, 80, 2, 58, 198, 89, 81, 180, 106, 185, 254,\n\t\t215, 173, 210, 253, 152, 247, 82, 0, 44, 106, 169, 93, 172,\n\t\t193, 78, 101, 242, 154, 20, 225, 3, 108, 175, 158, 207, 167,\n\t\t17, 70, 100, 249, 69, 120, 7, 28, 66, 165, 216, 66, 233, 177,\n\t\t61, 29, 120, 53, 86, 252, 62, 139, 89, 162, 217, 104, 69,\n\t\t117, 55, 172, 199, 14, 180, 199, 2, 22, 212, 98, 84, 185,\n\t\t176, 110, 74, 157, 40, 235, 195, 169, 212, 136, 226, 142,\n\t\t21, 68, 125, 243, 176, 177, 134, 81, 199, 45, 168, 227, 249,\n\t\t112, 77, 185, 135, 22, 212, 90, 154, 124, 109, 93, 161, 182,\n\t\t3, 210, 105, 168, 183, 220, 254, 96, 221, 22, 176, 185, 196,\n\t\t64, 232, 45, 94, 87, 35, 189, 101, 221, 134, 222, 147, 227,\n\t\t18, 43, 242, 2, 165, 34, 199, 119, 154, 161, 19, 203, 7, 18,\n\t\t57, 254, 227, 143, 63, 110, 31, 59, 118, 236, 24, 92, 220,\n\t\t245, 232, 23, 63, 244, 8, 126, 244, 71, 240, 177, 234, 243,\n\t\t40, 150, 53, 229, 229, 23, 224, 16, 124, 18, 169, 168, 27,\n\t\t173, 69, 155, 208, 14, 116, 33, 66, 145, 19, 211, 221, 20,\n\t\t36, 118, 116, 220, 73, 108, 112, 59, 118, 140, 98, 191, 243,\n\t\t168, 214, 34, 191, 49, 77, 162, 160, 22, 149, 160, 229, 197,\n\t\t171, 109, 64, 17, 106, 109, 78, 8, 99, 86, 104, 155, 63, 16,\n\t\t214, 189, 122, 17, 10, 144, 88, 139, 113, 159, 123, 205, 76,\n\t\t58, 173, 42, 41, 249, 149, 180, 106, 231, 115, 181, 92, 222,\n\t\t86, 211, 175, 252, 158, 41, 166, 173, 88, 68, 160, 118, 171,\n\t\t101, 99, 130, 193, 42, 84, 31, 102, 18, 99, 84, 120, 11, 163,\n\t\t148, 19, 129, 208, 75, 69, 77, 138, 155, 166, 142, 29, 84,\n\t\t77, 83, 61, 168, 152, 230, 231, 31, 123, 76, 77, 77, 165,\n\t\t117, 61, 61, 53, 149, 50, 244, 244, 84, 234, 123, 106, 214,\n\t\t177, 13, 230, 83, 140, 187, 51, 153, 110, 74, 48, 241, 141,\n\t\t166, 45, 114, 46, 50, 38, 114, 78, 137, 128, 235, 92, 227,\n\t\t43, 93, 32, 132, 100, 36, 45, 127, 11, 190, 14, 223, 65, 10,\n\t\t202, 162, 171, 209, 45, 232, 94, 244, 57, 244, 20, 200, 208,\n\t\t7, 27, 17, 178, 252, 160, 17, 207, 208, 246, 171, 53, 94,\n\t\t109, 198, 233, 58, 227, 213, 177, 81, 102, 185, 78, 44, 235,\n\t\t98, 98, 11, 106, 1, 171, 241, 170, 142, 253, 56, 51, 140,\n\t\t131, 90, 80, 107, 123, 35, 137, 172, 156, 134, 168, 150, 36,\n\t\t26, 195, 48, 141, 99, 75, 149, 121, 172, 8, 158, 235, 185,\n\t\t220, 245, 146, 63, 194, 60, 215, 171, 181, 194, 34, 240, 42,\n\t\t119, 189, 86, 80, 171, 242, 42, 243, 90, 163, 65, 173, 21,\n\t\t197, 222, 114, 43, 106, 7, 89, 188, 34, 14, 221, 68, 0, 199,\n\t\t138, 62, 54, 55, 171, 164, 85, 107, 243, 65, 34, 125, 99,\n\t\t175, 205, 229, 204, 139, 197, 111, 171, 25, 87, 109, 38, 213,\n\t\t61, 151, 135, 173, 216, 199, 14, 98, 79, 154, 215, 252, 90,\n\t\t12, 117, 50, 129, 164, 167, 64, 167, 156, 241, 90, 212, 106,\n\t\t247, 144, 0, 199, 124, 183, 167, 145, 204, 135, 235, 113,\n\t\t149, 234, 88, 220, 191, 29, 191, 143, 167, 133, 73, 45, 170,\n\t\t187, 99, 174, 231, 134, 245, 100, 154, 94, 61, 110, 28, 91,\n\t\t33, 63, 197, 177, 168, 38, 4, 176, 75, 98, 177, 29, 187, 132,\n\t\t47, 152, 160, 9, 94, 138, 185, 185, 156, 6, 160, 246, 112,\n\t\t110, 200, 42, 229, 86, 182, 36, 58, 25, 102, 8, 2, 199, 4,\n\t\t136, 160, 233, 20, 20, 74, 101, 99, 192, 38, 24, 68, 163,\n\t\t146, 245, 202, 154, 8, 0, 170, 172, 86, 180, 148, 134, 49,\n\t\t198, 156, 210, 239, 8, 88, 20, 176, 200, 24, 35, 64, 36, 98,\n\t\t200, 98, 97, 84, 103, 42, 3, 1, 24, 17, 48, 101, 160, 186,\n\t\t12, 19, 149, 104, 34, 147, 187, 112, 154, 10, 6, 53, 168,\n\t\t174, 170, 6, 200, 208, 139, 109, 89, 149, 69, 44, 17, 166,\n\t\t41, 49, 149, 96, 78, 73, 182, 91, 205, 212, 75, 227, 57, 134,\n\t\t137, 96, 18, 63, 47, 8, 172, 135, 10, 98, 142, 114, 205, 146,\n\t\t152, 32, 164, 179, 26, 55, 176, 192, 113, 38, 13, 18, 193,\n\t\t20, 4, 69, 84, 177, 6, 153, 156, 74, 93, 65, 16, 152, 149,\n\t\t213, 20, 66, 53, 25, 152, 78, 5, 74, 185, 201, 60, 41, 133,\n\t\t65, 166, 24, 203, 76, 80, 188, 140, 45, 149, 157, 101, 26,\n\t\t79, 146, 168, 170, 154, 198, 42, 38, 64, 57, 23, 109, 69,\n\t\t215, 9, 108, 142, 125, 75, 12, 36, 70, 93, 226, 111, 226,\n\t\t165, 127, 79, 199, 80, 42, 42, 239, 194, 56, 75, 40, 176,\n\t\t248, 173, 73, 89, 138, 198, 189, 72, 138, 35, 152, 34, 229,\n\t\t130, 44, 8, 4, 27, 36, 83, 24, 14, 243, 61, 66, 57, 91, 245,\n\t\t76, 171, 224, 87, 117, 61, 111, 234, 189, 126, 127, 79, 220,\n\t\t175, 144, 50, 97, 92, 81, 48, 145, 12, 72, 75, 148, 224, 148,\n\t\t103, 10, 125, 138, 0, 130, 11, 76, 18, 8, 214, 173, 73, 65,\n\t\t20, 57, 86, 40, 24, 32, 104, 42, 195, 2, 150, 244, 165, 207,\n\t\t41, 77, 218, 173, 99, 44, 97, 141, 8, 2, 229, 76, 79, 51,\n\t\t75, 100, 84, 96, 134, 88, 79, 49, 203, 17, 243, 170, 195,\n\t\t242, 166, 170, 219, 70, 202, 242, 51, 92, 29, 203, 224, 82,\n\t\t101, 184, 46, 11, 128, 5, 208, 13, 16, 1, 19, 37, 219, 101,\n\t\t231, 104, 169, 84, 14, 93, 232, 206, 88, 102, 90, 213, 211,\n\t\t134, 44, 169, 84, 50, 105, 218, 36, 12, 184, 130, 105, 86,\n\t\t48, 149, 60, 169, 121, 154, 131, 177, 167, 164, 84, 240, 41,\n\t\t17, 4, 44, 203, 88, 140, 87, 149, 83, 89, 142, 229, 156, 184,\n\t\t252, 52, 188, 146, 196, 154, 82, 168, 11, 85, 209, 48, 106,\n\t\t161, 201, 215, 236, 151, 30, 29, 199, 28, 228, 197, 150, 48,\n\t\t119, 189, 105, 28, 196, 5, 81, 141, 219, 222, 52, 142, 106,\n\t\t1, 11, 108, 175, 8, 81, 45, 208, 193, 107, 69, 53, 238, 62,\n\t\t144, 168, 81, 120, 136, 89, 19, 190, 36, 157, 118, 6, 156,\n\t\t18, 92, 18, 14, 116, 87, 163, 212, 207, 139, 163, 21, 118,\n\t\t193, 165, 221, 159, 142, 82, 173, 83, 123, 184, 124, 205,\n\t\t117, 179, 195, 7, 67, 173, 60, 117, 238, 175, 182, 233, 235,\n\t\t54, 23, 224, 241, 68, 35, 151, 68, 187, 95, 183, 93, 217,\n\t\t60, 125, 214, 207, 170, 227, 27, 213, 154, 213, 171, 15, 142,\n\t\t87, 32, 183, 254, 142, 217, 201, 226, 154, 97, 57, 157, 46,\n\t\t99, 242, 112, 143, 238, 109, 219, 101, 159, 49, 220, 216,\n\t\t107, 43, 59, 94, 211, 111, 223, 129, 67, 40, 135, 118, 157,\n\t\t240, 171, 131, 88, 90, 182, 29, 204, 36, 70, 152, 4, 52, 120,\n\t\t226, 253, 215, 130, 97, 210, 108, 196, 78, 112, 172, 88, 154,\n\t\t177, 196, 117, 236, 34, 247, 138, 56, 105, 153, 184, 196,\n\t\t142, 237, 194, 231, 189, 13, 195, 181, 162, 235, 238, 185,\n\t\t137, 158, 72, 253, 253, 208, 198, 243, 4, 37, 165, 167, 132,\n\t\t126, 59, 107, 41, 92, 229, 194, 166, 179, 215, 19, 73, 76,\n\t\t75, 89, 185, 36, 164, 84, 45, 99, 165, 243, 154, 37, 235,\n\t\t198, 41, 247, 23, 107, 195, 27, 60, 122, 211, 30, 199, 59,\n\t\t145, 186, 126, 168, 111, 220, 1, 76, 41, 23, 185, 107, 166,\n\t\t4, 73, 225, 153, 82, 111, 159, 146, 214, 101, 153, 113, 194,\n\t\t65, 32, 138, 164, 26, 122, 74, 79, 105, 185, 90, 50, 183,\n\t\t111, 192, 65, 248, 22, 114, 209, 186, 68, 119, 27, 160, 147,\n\t\t142, 118, 14, 86, 54, 22, 18, 179, 221, 73, 217, 235, 96,\n\t\t26, 98, 103, 25, 98, 81, 21, 23, 198, 234, 98, 26, 39, 254,\n\t\t115, 19, 54, 22, 108, 62, 138, 169, 148, 210, 118, 81, 130,\n\t\t223, 165, 217, 233, 108, 22, 0, 68, 254, 47, 92, 194, 231,\n\t\t114, 73, 57, 77, 224, 20, 40, 199, 50, 223, 43, 41, 68, 16,\n\t\t233, 85, 132, 9, 4, 190, 85, 174, 44, 74, 162, 201, 9, 249,\n\t\t115, 67, 228, 30, 60, 154, 42, 156, 206, 21, 133, 45, 125,\n\t\t9, 227, 107, 68, 65, 96, 216, 237, 225, 138, 42, 105, 84,\n\t\t20, 8, 33, 201, 105, 70, 146, 216, 198, 177, 78, 77, 35, 255,\n\t\t181, 72, 127, 219, 138, 106, 54, 18, 205, 104, 53, 27, 9,\n\t\t224, 5, 176, 139, 49, 216, 173, 168, 93, 160, 195, 137, 18,\n\t\t120, 143, 87, 49, 186, 140, 165, 71, 188, 74, 197, 187, 199,\n\t\t84, 118, 41, 166, 168, 242, 93, 138, 249, 29, 83, 217, 201,\n\t\t53, 46, 170, 124, 167, 98, 194, 161, 138, 183, 244, 136, 209,\n\t\t101, 84, 188, 47, 188, 163, 215, 171, 44, 125, 105, 73, 49,\n\t\t77, 101, 73, 84, 185, 249, 182, 247, 37, 77, 222, 23, 167,\n\t\t59, 180, 242, 116, 39, 198, 154, 123, 141, 218, 133, 105,\n\t\t92, 11, 106, 44, 150, 207, 195, 177, 15, 232, 150, 224, 190,\n\t\t54, 61, 95, 77, 4, 80, 21, 175, 162, 170, 53, 85, 173, 122,\n\t\t186, 204, 132, 55, 117, 8, 118, 167, 96, 58, 174, 168, 72,\n\t\t186, 6, 186, 46, 41, 114, 217, 227, 15, 36, 161, 15, 148,\n\t\t70, 101, 220, 128, 139, 208, 54, 132, 32, 86, 13, 182, 55,\n\t\t26, 251, 198, 3, 80, 29, 38, 237, 168, 70, 39, 246, 19, 187,\n\t\t2, 141, 216, 187, 243, 146, 208, 226, 20, 196, 132, 153, 172,\n\t\t97, 1, 236, 122, 52, 13, 235, 32, 54, 11, 113, 133, 244, 85,\n\t\t129, 49, 45, 237, 90, 6, 225, 185, 181, 92, 86, 101, 91, 238,\n\t\t181, 84, 10, 102, 110, 228, 162, 238, 234, 144, 110, 175,\n\t\t85, 20, 234, 76, 153, 76, 0, 81, 228, 148, 211, 125, 166,\n\t\t149, 182, 186, 37, 137, 167, 215, 102, 224, 116, 99, 83, 8,\n\t\t146, 40, 235, 233, 140, 151, 17, 179, 84, 86, 93, 185, 166,\n\t\t87, 76, 89, 85, 214, 52, 134, 207, 27, 149, 83, 178, 54, 117,\n\t\t145, 164, 157, 173, 219, 146, 76, 41, 163, 238, 193, 84, 218,\n\t\t153, 180, 173, 20, 66, 60, 217, 50, 151, 224, 115, 72, 67,\n\t\t53, 52, 138, 166, 209, 233, 104, 55, 58, 31, 33, 136, 149,\n\t\t105, 173, 21, 181, 92, 174, 67, 141, 84, 59, 154, 58, 86,\n\t\t121, 113, 25, 75, 148, 31, 103, 173, 4, 165, 69, 136, 90,\n\t\t86, 171, 8, 156, 213, 162, 118, 59, 146, 96, 59, 86, 120,\n\t\t69, 136, 145, 207, 138, 48, 13, 181, 168, 214, 86, 140, 240,\n\t\t23, 44, 155, 86, 84, 65, 174, 133, 42, 177, 180, 111, 237,\n\t\t185, 117, 235, 169, 147, 131, 4, 24, 49, 38, 79, 179, 48,\n\t\t101, 27, 40, 153, 217, 212, 144, 46, 156, 153, 217, 37, 94,\n\t\t56, 51, 179, 185, 190, 167, 102, 178, 30, 150, 58, 61, 82,\n\t\t117, 182, 81, 93, 95, 46, 122, 154, 54, 89, 44, 231, 222,\n\t\t32, 187, 140, 9, 182, 167, 50, 79, 98, 130, 20, 59, 237, 122,\n\t\t58, 79, 177, 110, 97, 113, 188, 91, 38, 218, 210, 127, 110,\n\t\t157, 218, 184, 245, 84, 74, 2, 221, 86, 132, 92, 97, 140,\n\t\t83, 98, 55, 155, 3, 195, 87, 238, 10, 57, 219, 20, 255, 192,\n\t\t91, 228, 225, 189, 163, 150, 106, 53, 103, 21, 146, 114, 150,\n\t\t158, 41, 228, 21, 169, 153, 203, 117, 137, 98, 8, 84, 148,\n\t\t100, 75, 22, 109, 59, 69, 68, 137, 82, 73, 142, 125, 145,\n\t\t182, 124, 125, 12, 73, 200, 66, 69, 132, 44, 155, 241, 90,\n\t\t188, 182, 145, 85, 13, 166, 33, 42, 130, 199, 162, 97, 50,\n\t\t5, 69, 112, 236, 231, 103, 55, 76, 180, 46, 152, 232, 91,\n\t\t183, 102, 104, 157, 162, 172, 27, 138, 222, 89, 105, 5, 238,\n\t\t57, 111, 6, 111, 246, 246, 242, 230, 189, 83, 87, 110, 150,\n\t\t151, 236, 98, 126, 231, 240, 240, 206, 124, 241, 28, 35, 92,\n\t\t183, 173, 239, 163, 198, 93, 231, 239, 69, 8, 150, 151, 151,\n\t\t191, 7, 115, 240, 13, 52, 139, 80, 143, 142, 107, 35, 16,\n\t\t59, 22, 141, 176, 222, 138, 116, 24, 134, 96, 26, 138, 216,\n\t\t139, 211, 213, 97, 33, 104, 21, 113, 9, 90, 205, 97, 210,\n\t\t138, 138, 152, 25, 144, 7, 167, 49, 77, 235, 158, 78, 70,\n\t\t128, 241, 105, 226, 194, 156, 81, 31, 27, 210, 245, 210, 254,\n\t\t113, 85, 29, 221, 89, 176, 122, 70, 6, 141, 82, 212, 83, 74,\n\t\t113, 131, 99, 102, 89, 93, 158, 151, 86, 113, 119, 195, 119,\n\t\t168, 64, 168, 94, 48, 4, 203, 175, 9, 2, 19, 168, 102, 100,\n\t\t186, 124, 11, 138, 253, 125, 186, 206, 53, 162, 213, 106,\n\t\t209, 187, 107, 1, 150, 69, 62, 125, 106, 102, 109, 200, 169,\n\t\t52, 20, 104, 76, 118, 28, 181, 123, 16, 0, 168, 104, 218,\n\t\t37, 91, 99, 249, 146, 166, 86, 45, 162, 116, 119, 183, 186,\n\t\t180, 254, 129, 94, 85, 131, 44, 199, 44, 101, 152, 34, 239,\n\t\t169, 167, 24, 198, 125, 61, 84, 245, 20, 57, 182, 211, 83,\n\t\t203, 135, 225, 43, 112, 24, 169, 200, 68, 118, 140, 213, 168,\n\t\t146, 88, 214, 188, 25, 91, 198, 184, 226, 244, 52, 43, 78,\n\t\t80, 119, 11, 80, 137, 165, 126, 26, 30, 170, 229, 172, 179,\n\t\t31, 201, 213, 224, 161, 165, 75, 224, 161, 245, 185, 218,\n\t\t210, 37, 181, 220, 65, 183, 16, 236, 221, 27, 20, 134, 246,\n\t\t236, 185, 110, 207, 158, 191, 239, 205, 187, 110, 190, 247,\n\t\t117, 126, 82, 227, 79, 237, 223, 6, 53, 222, 74, 40, 58, 81,\n\t\t138, 85, 157, 112, 47, 217, 147, 244, 58, 182, 219, 73, 46,\n\t\t210, 14, 82, 223, 144, 49, 42, 4, 236, 92, 198, 164, 158,\n\t\t197, 76, 199, 40, 112, 195, 161, 92, 86, 37, 145, 83, 43,\n\t\t63, 180, 126, 230, 100, 95, 233, 67, 235, 128, 108, 151, 36,\n\t\t215, 44, 247, 23, 47, 203, 103, 177, 152, 210, 186, 152, 101,\n\t\t168, 126, 190, 146, 213, 195, 221, 179, 157, 61, 162, 54,\n\t\t140, 34, 178, 81, 1, 13, 160, 6, 218, 128, 206, 64, 103, 35,\n\t\t20, 181, 93, 221, 181, 224, 53, 90, 49, 10, 226, 108, 211,\n\t\t74, 188, 95, 183, 0, 60, 150, 116, 177, 70, 136, 105, 48,\n\t\t20, 226, 194, 56, 31, 188, 230, 167, 20, 193, 33, 109, 113,\n\t\t56, 5, 81, 187, 167, 56, 235, 95, 144, 175, 229, 243, 214,\n\t\t72, 38, 23, 228, 243, 65, 110, 196, 206, 229, 130, 252, 136,\n\t\t149, 207, 91, 111, 182, 242, 154, 163, 65, 184, 234, 189,\n\t\t165, 185, 234, 201, 53, 242, 214, 237, 175, 203, 255, 95,\n\t\t52, 208, 28, 109, 233, 251, 39, 13, 137, 18, 63, 107, 197,\n\t\t94, 17, 208, 8, 138, 208, 122, 116, 26, 218, 137, 80, 14,\n\t\t134, 161, 217, 16, 108, 3, 130, 68, 168, 248, 65, 141, 185,\n\t\t161, 27, 122, 188, 147, 175, 250, 211, 177, 255, 84, 77, 52,\n\t\t186, 231, 242, 216, 139, 244, 171, 129, 21, 203, 95, 30, 181,\n\t\t154, 141, 149, 248, 76, 186, 19, 129, 152, 190, 180, 181,\n\t\t1, 46, 53, 221, 173, 25, 17, 164, 170, 187, 134, 9, 84, 80,\n\t\t212, 202, 200, 182, 140, 132, 69, 223, 101, 98, 225, 130,\n\t\t104, 215, 20, 6, 195, 113, 210, 119, 175, 7, 240, 187, 139,\n\t\t197, 227, 93, 19, 163, 235, 205, 201, 68, 41, 220, 241, 222,\n\t\t167, 222, 251, 222, 167, 192, 91, 250, 109, 215, 229, 211,\n\t\t67, 213, 84, 227, 148, 95, 98, 72, 197, 134, 168, 36, 225,\n\t\t243, 238, 254, 117, 146, 25, 108, 172, 241, 12, 179, 90, 156,\n\t\t248, 26, 96, 85, 130, 250, 72, 52, 113, 113, 254, 155, 189,\n\t\t221, 170, 210, 142, 69, 124, 38, 238, 227, 189, 43, 182, 205,\n\t\t81, 56, 12, 247, 38, 86, 26, 234, 225, 73, 16, 61, 114, 146,\n\t\t189, 2, 47, 21, 165, 162, 32, 170, 5, 77, 215, 139, 192, 220,\n\t\t116, 246, 141, 215, 238, 138, 54, 111, 155, 216, 244, 213,\n\t\t63, 235, 41, 246, 110, 14, 125, 179, 44, 206, 174, 105, 238,\n\t\t148, 7, 164, 53, 221, 181, 9, 14, 187, 43, 75, 115, 247, 20,\n\t\t236, 52, 31, 16, 75, 22, 2, 228, 44, 31, 134, 47, 192, 97,\n\t\t148, 71, 40, 242, 98, 47, 40, 26, 22, 146, 93, 214, 216, 224,\n\t\t139, 226, 4, 251, 35, 245, 36, 41, 67, 149, 114, 166, 156,\n\t\t43, 155, 134, 101, 166, 203, 151, 75, 107, 71, 108, 35, 109,\n\t\t25, 61, 15, 189, 64, 233, 11, 214, 120, 127, 52, 20, 122,\n\t\t148, 142, 127, 222, 184, 232, 204, 110, 74, 27, 157, 125,\n\t\t220, 167, 225, 55, 240, 120, 220, 119, 207, 170, 125, 142,\n\t\t97, 232, 108, 115, 76, 227, 200, 111, 134, 46, 252, 230, 246,\n\t\t171, 47, 191, 239, 190, 203, 247, 111, 222, 88, 62, 119, 91,\n\t\t180, 119, 198, 143, 74, 41, 114, 207, 127, 208, 39, 174, 122,\n\t\t207, 125, 63, 184, 111, 253, 250, 146, 82, 217, 86, 95, 127,\n\t\t190, 231, 87, 141, 179, 92, 36, 156, 160, 3, 17, 153, 104,\n\t\t45, 58, 13, 237, 65, 168, 21, 83, 117, 76, 208, 43, 209, 30,\n\t\t175, 202, 107, 65, 228, 181, 3, 74, 126, 149, 7, 53, 3, 218,\n\t\t231, 46, 92, 143, 117, 70, 111, 54, 130, 105, 168, 241, 68,\n\t\t91, 85, 99, 71, 51, 54, 103, 99, 27, 145, 181, 121, 228, 71,\n\t\t142, 174, 59, 58, 184, 201, 170, 106, 186, 220, 93, 79, 173,\n\t\t209, 29, 93, 87, 12, 62, 37, 96, 171, 222, 45, 25, 166, 197,\n\t\t12, 188, 189, 149, 27, 235, 182, 193, 16, 172, 61, 148, 10,\n\t\t66, 106, 107, 74, 16, 40, 213, 54, 58, 74, 220, 158, 169,\n\t\t239, 51, 100, 217, 48, 236, 187, 146, 149, 253, 111, 114,\n\t\t22, 111, 87, 21, 221, 176, 13, 93, 7, 118, 22, 206, 202, 153,\n\t\t146, 200, 197, 222, 200, 200, 118, 91, 162, 200, 75, 153,\n\t\t131, 148, 10, 52, 149, 138, 93, 31, 13, 206, 77, 26, 203,\n\t\t92, 137, 117, 176, 112, 130, 247, 53, 148, 69, 61, 168, 137,\n\t\t46, 74, 98, 243, 29, 240, 221, 122, 212, 10, 236, 182, 213,\n\t\t27, 91, 187, 237, 201, 180, 179, 209, 106, 65, 86, 169, 187,\n\t\t188, 131, 160, 196, 234, 248, 223, 160, 168, 213, 198, 16,\n\t\t228, 4, 33, 61, 155, 22, 4, 42, 232, 167, 234, 194, 217, 166,\n\t\t162, 24, 134, 162, 152, 231, 181, 31, 230, 35, 171, 37, 216,\n\t\t37, 186, 18, 180, 172, 181, 162, 202, 99, 3, 204, 20, 55,\n\t\t8, 216, 110, 213, 20, 35, 237, 112, 19, 239, 158, 88, 187,\n\t\t11, 155, 220, 185, 140, 10, 233, 180, 64, 5, 65, 215, 133,\n\t\t177, 78, 47, 230, 74, 183, 127, 253, 90, 103, 249, 79, 200,\n\t\t57, 216, 163, 115, 149, 27, 174, 105, 24, 192, 246, 225, 156,\n\t\t210, 85, 17, 69, 169, 127, 114, 178, 95, 230, 98, 165, 235,\n\t\t132, 158, 141, 237, 185, 30, 52, 190, 58, 254, 234, 22, 192,\n\t\t139, 18, 227, 190, 45, 11, 147, 208, 139, 155, 88, 89, 13,\n\t\t111, 180, 233, 119, 66, 52, 60, 104, 19, 4, 180, 29, 152,\n\t\t121, 93, 241, 170, 131, 211, 131, 178, 33, 79, 12, 150, 74,\n\t\t131, 79, 76, 200, 134, 92, 245, 6, 75, 182, 111, 119, 236,\n\t\t190, 138, 204, 29, 89, 246, 138, 3, 253, 197, 107, 68, 89,\n\t\t22, 135, 134, 75, 131, 3, 165, 171, 249, 155, 134, 71, 185,\n\t\t44, 243, 17, 89, 25, 41, 13, 216, 126, 194, 187, 203, 112,\n\t\t28, 230, 144, 137, 198, 16, 234, 233, 12, 232, 69, 78, 76,\n\t\t152, 83, 16, 156, 0, 46, 137, 235, 132, 29, 194, 140, 165,\n\t\t113, 34, 177, 225, 248, 134, 125, 27, 170, 13, 195, 53, 223,\n\t\t107, 120, 198, 134, 145, 225, 13, 103, 153, 138, 32, 115,\n\t\t186, 241, 188, 141, 141, 111, 108, 25, 222, 176, 126, 120,\n\t\t139, 105, 158, 18, 227, 237, 212, 137, 82, 140, 240, 67, 195,\n\t\t235, 55, 12, 111, 217, 172, 24, 148, 203, 194, 167, 134, 214,\n\t\t205, 12, 117, 27, 109, 25, 242, 98, 226, 31, 245, 160, 48,\n\t\t57, 85, 209, 166, 134, 160, 214, 142, 69, 183, 105, 194, 75,\n\t\t140, 80, 111, 37, 146, 210, 244, 155, 201, 198, 96, 232, 132,\n\t\t245, 22, 60, 137, 227, 85, 102, 76, 145, 48, 38, 140, 196,\n\t\t235, 195, 24, 17, 98, 247, 157, 146, 216, 213, 134, 226, 225,\n\t\t71, 184, 20, 223, 240, 118, 129, 199, 107, 8, 68, 196, 152,\n\t\t202, 42, 139, 151, 18, 99, 12, 4, 8, 197, 148, 82, 178, 244,\n\t\t193, 71, 14, 75, 252, 145, 195, 82, 91, 159, 161, 50, 70,\n\t\t112, 17, 18, 144, 132, 82, 200, 65, 5, 84, 65, 61, 168, 15,\n\t\t33, 171, 25, 38, 17, 122, 223, 233, 137, 19, 97, 211, 143,\n\t\t154, 190, 195, 155, 237, 76, 224, 132, 205, 32, 76, 54, 107,\n\t\t253, 217, 240, 246, 217, 18, 156, 122, 251, 237, 179, 179,\n\t\t179, 165, 239, 223, 126, 251, 108, 169, 244, 96, 163, 209,\n\t\t104, 128, 189, 245, 15, 95, 185, 99, 223, 190, 59, 142, 245,\n\t\t229, 251, 246, 237, 235, 251, 202, 177, 190, 252, 29, 251,\n\t\t246, 221, 24, 102, 191, 130, 78, 226, 167, 216, 70, 243, 81,\n\t\t29, 109, 64, 40, 157, 248, 142, 205, 88, 86, 37, 218, 47,\n\t\t78, 191, 158, 123, 132, 152, 55, 134, 193, 175, 114, 223,\n\t\t137, 154, 69, 104, 239, 87, 114, 198, 157, 168, 233, 134,\n\t\t245, 239, 167, 53, 133, 115, 69, 59, 69, 179, 44, 77, 97,\n\t\t252, 233, 147, 226, 161, 191, 47, 13, 216, 85, 59, 157, 26,\n\t\t10, 245, 47, 13, 20, 25, 101, 154, 91, 108, 168, 102, 9, 42,\n\t\t37, 143, 110, 162, 87, 186, 201, 227, 147, 171, 216, 224,\n\t\t239, 70, 202, 110, 143, 35, 253, 64, 14, 133, 137, 13, 195,\n\t\t96, 233, 30, 126, 72, 14, 5, 36, 34, 190, 252, 215, 120, 28,\n\t\t14, 35, 134, 210, 104, 6, 109, 66, 223, 64, 79, 160, 39, 209,\n\t\t63, 34, 20, 241, 160, 158, 76, 161, 72, 60, 54, 2, 211, 64,\n\t\t106, 140, 183, 162, 105, 18, 21, 113, 228, 132, 173, 104,\n\t\t90, 92, 7, 49, 196, 177, 17, 19, 91, 160, 188, 22, 113, 167,\n\t\t73, 138, 216, 211, 49, 31, 38, 62, 227, 174, 87, 148, 10,\n\t\t224, 242, 26, 11, 38, 33, 106, 180, 154, 53, 222, 14, 89,\n\t\t7, 181, 142, 107, 189, 14, 218, 129, 184, 21, 247, 218, 128,\n\t\t21, 185, 17, 123, 53, 81, 208, 10, 98, 171, 130, 120, 145,\n\t\t142, 11, 208, 42, 18, 158, 168, 101, 143, 123, 211, 56, 116,\n\t\t199, 108, 157, 248, 199, 242, 64, 84, 42, 220, 67, 184, 196,\n\t\t56, 132, 17, 87, 90, 25, 114, 154, 39, 166, 229, 180, 104,\n\t\t19, 42, 201, 34, 63, 197, 23, 53, 149, 203, 84, 38, 42, 193,\n\t\t160, 14, 94, 78, 68, 81, 228, 4, 84, 158, 254, 33, 172, 149,\n\t\t187, 82, 182, 238, 15, 202, 105, 71, 170, 22, 9, 198, 24,\n\t\t75, 148, 17, 138, 9, 0, 40, 124, 157, 8, 21, 206, 228, 193,\n\t\t84, 172, 251, 25, 102, 119, 42, 148, 75, 119, 99, 44, 10,\n\t\t10, 0, 7, 73, 24, 197, 10, 150, 155, 35, 76, 239, 211, 76,\n\t\t13, 91, 166, 224, 165, 211, 105, 141, 200, 84, 135, 180, 233,\n\t\t6, 133, 130, 245, 184, 68, 212, 205, 122, 201, 158, 228, 110,\n\t\t90, 5, 217, 52, 76, 248, 30, 19, 232, 63, 72, 166, 154, 2,\n\t\t75, 26, 18, 85, 80, 40, 81, 12, 78, 116, 209, 35, 68, 19,\n\t\t193, 205, 229, 184, 172, 112, 141, 166, 4, 151, 18, 51, 115,\n\t\t126, 54, 57, 84, 37, 24, 152, 10, 246, 215, 0, 96, 233, 207,\n\t\t204, 146, 145, 150, 204, 148, 96, 236, 56, 99, 18, 226, 151,\n\t\t156, 48, 194, 40, 231, 34, 147, 180, 16, 36, 129, 229, 36,\n\t\t82, 225, 32, 26, 185, 76, 190, 72, 49, 47, 51, 65, 198, 69,\n\t\t129, 9, 24, 83, 93, 182, 177, 74, 197, 198, 176, 46, 203,\n\t\t32, 112, 65, 96, 102, 85, 192, 50, 207, 73, 92, 151, 177,\n\t\t192, 64, 179, 253, 220, 198, 12, 249, 42, 13, 245, 11, 128,\n\t\t98, 1, 199, 28, 218, 142, 115, 151, 151, 143, 192, 33, 56,\n\t\t132, 50, 168, 23, 77, 160, 221, 201, 190, 231, 138, 142, 152,\n\t\t198, 73, 112, 53, 22, 2, 86, 114, 4, 205, 175, 214, 70, 160,\n\t\t202, 60, 183, 21, 232, 16, 123, 100, 177, 169, 27, 181, 106,\n\t\t65, 173, 26, 231, 18, 63, 214, 175, 198, 108, 160, 131, 235,\n\t\t185, 211, 216, 171, 187, 48, 35, 101, 106, 217, 3, 219, 183,\n\t\t31, 236, 170, 229, 165, 94, 205, 34, 101, 67, 25, 208, 4,\n\t\t138, 137, 213, 109, 116, 9, 130, 32, 16, 103, 71, 77, 180,\n\t\t40, 145, 116, 77, 146, 49, 193, 140, 11, 66, 246, 44, 79,\n\t\t51, 76, 174, 202, 83, 138, 92, 29, 112, 50, 190, 206, 117,\n\t\t43, 236, 237, 151, 228, 81, 216, 38, 184, 131, 155, 131, 217,\n\t\t43, 174, 221, 217, 179, 169, 223, 19, 92, 69, 247, 107, 50,\n\t\t183, 151, 30, 19, 40, 96, 157, 19, 42, 145, 52, 219, 68, 76,\n\t\t70, 68, 133, 113, 10, 130, 73, 168, 141, 123, 250, 29, 177,\n\t\t63, 147, 237, 170, 118, 203, 186, 236, 101, 96, 108, 85, 156,\n\t\t255, 19, 40, 131, 198, 208, 233, 232, 82, 132, 172, 118, 128,\n\t\t190, 229, 241, 216, 250, 43, 1, 31, 78, 92, 210, 97, 240,\n\t\t146, 64, 108, 108, 59, 38, 150, 162, 203, 131, 86, 163, 150,\n\t\t236, 134, 38, 103, 174, 226, 121, 7, 172, 22, 68, 177, 133,\n\t\t49, 2, 81, 236, 233, 234, 192, 89, 160, 227, 142, 194, 173,\n\t\t69, 30, 179, 19, 157, 28, 129, 159, 241, 42, 180, 213, 63,\n\t\t152, 202, 59, 242, 37, 131, 97, 197, 180, 53, 209, 238, 122,\n\t\t215, 89, 186, 213, 202, 146, 170, 151, 241, 139, 174, 57,\n\t\t52, 104, 184, 69, 69, 222, 251, 51, 183, 232, 103, 245, 108,\n\t\t138, 100, 199, 237, 65, 51, 239, 42, 151, 12, 157, 39, 246,\n\t\t94, 60, 26, 168, 189, 17, 49, 179, 122, 214, 239, 178, 245,\n\t\t193, 65, 93, 86, 74, 242, 185, 10, 92, 146, 245, 11, 142,\n\t\t218, 63, 168, 187, 69, 229, 146, 193, 122, 213, 180, 90, 93,\n\t\t180, 114, 225, 30, 221, 214, 196, 184, 39, 175, 66, 215, 12,\n\t\t13, 197, 253, 200, 123, 175, 33, 21, 47, 235, 107, 174, 38,\n\t\t234, 110, 167, 193, 121, 82, 47, 196, 93, 235, 186, 163, 250,\n\t\t89, 167, 66, 163, 193, 33, 51, 175, 40, 202, 57, 106, 108,\n\t\t115, 35, 164, 224, 25, 184, 17, 41, 40, 141, 178, 168, 128,\n\t\t194, 88, 195, 70, 110, 226, 115, 165, 194, 186, 99, 7, 78,\n\t\t88, 111, 54, 124, 175, 222, 108, 12, 128, 211, 227, 55, 67,\n\t\t207, 230, 126, 91, 159, 70, 225, 107, 182, 8, 15, 99, 106,\n\t\t249, 205, 250, 83, 155, 95, 252, 236, 155, 190, 119, 230,\n\t\t72, 83, 158, 88, 179, 7, 158, 184, 247, 222, 53, 240, 215,\n\t\t149, 162, 226, 89, 100, 58, 127, 254, 228, 41, 167, 77, 76,\n\t\t108, 124, 226, 6, 33, 204, 150, 159, 75, 159, 26, 54, 224,\n\t\t13, 231, 132, 219, 119, 13, 244, 254, 118, 36, 188, 120, 222,\n\t\t127, 78, 16, 203, 85, 209, 80, 206, 58, 125, 114, 237, 182,\n\t\t29, 249, 168, 24, 211, 52, 63, 33, 195, 25, 210, 18, 41, 30,\n\t\t160, 16, 157, 26, 123, 67, 3, 208, 12, 235, 65, 251, 225,\n\t\t213, 61, 127, 26, 254, 139, 21, 20, 54, 125, 222, 8, 90, 9,\n\t\t240, 177, 199, 220, 137, 4, 226, 176, 30, 249, 177, 176, 107,\n\t\t134, 141, 39, 74, 67, 195, 69, 222, 53, 208, 91, 184, 45,\n\t\t79, 214, 65, 234, 47, 86, 11, 243, 71, 182, 111, 31, 240,\n\t\t187, 166, 247, 238, 43, 4, 127, 209, 189, 174, 87, 78, 231,\n\t\t204, 186, 89, 37, 105, 169, 122, 201, 71, 178, 141, 200, 27,\n\t\t26, 42, 234, 230, 131, 171, 68, 249, 59, 172, 119, 245, 201,\n\t\t90, 102, 244, 112, 126, 160, 60, 208, 95, 54, 115, 150, 50,\n\t\t34, 202, 62, 79, 104, 179, 29, 151, 170, 160, 58, 154, 136,\n\t\t53, 81, 79, 251, 248, 85, 208, 14, 13, 5, 145, 219, 234, 216,\n\t\t11, 188, 198, 131, 132, 50, 5, 119, 26, 106, 35, 208, 138,\n\t\t21, 118, 178, 179, 208, 106, 123, 123, 54, 91, 217, 72, 61,\n\t\t186, 225, 134, 141, 123, 110, 115, 47, 20, 106, 93, 133, 126,\n\t\t216, 221, 187, 38, 218, 22, 173, 205, 216, 183, 139, 239,\n\t\t187, 248, 242, 251, 150, 190, 104, 20, 52, 77, 47, 219, 150,\n\t\t45, 137, 169, 94, 39, 45, 253, 42, 236, 233, 9, 123, 102,\n\t\t131, 92, 46, 200, 29, 222, 120, 195, 134, 75, 207, 12, 50,\n\t\t229, 129, 226, 36, 172, 9, 130, 86, 43, 128, 179, 64, 139,\n\t\t46, 186, 237, 190, 95, 51, 181, 88, 96, 154, 40, 74, 182,\n\t\t221, 155, 18, 197, 244, 155, 187, 27, 221, 221, 13, 39, 246,\n\t\t218, 106, 39, 159, 243, 109, 161, 105, 116, 26, 66, 29, 56,\n\t\t139, 144, 128, 233, 185, 214, 107, 190, 245, 20, 120, 49,\n\t\t194, 95, 63, 193, 152, 110, 104, 103, 58, 188, 61, 29, 199,\n\t\t46, 194, 215, 84, 69, 47, 166, 211, 150, 105, 214, 172, 148,\n\t\t88, 208, 95, 89, 241, 184, 207, 37, 233, 188, 153, 11, 224,\n\t\t204, 158, 102, 120, 90, 184, 198, 77, 223, 152, 183, 193,\n\t\t30, 173, 86, 71, 253, 181, 86, 54, 219, 211, 165, 218, 219,\n\t\t115, 121, 166, 114, 46, 214, 106, 134, 200, 83, 42, 131, 11,\n\t\t86, 214, 242, 77, 61, 70, 70, 239, 45, 172, 129, 70, 79, 119,\n\t\t24, 118, 195, 78, 172, 141, 126, 194, 206, 255, 172, 26, 183,\n\t\t183, 187, 186, 187, 186, 210, 170, 173, 174, 236, 21, 174,\n\t\t196, 15, 179, 104, 24, 109, 92, 21, 67, 108, 199, 150, 121,\n\t\t219, 122, 142, 13, 242, 168, 93, 18, 27, 7, 157, 50, 247,\n\t\t127, 83, 216, 9, 54, 238, 99, 146, 124, 209, 61, 154, 200,\n\t\t177, 252, 246, 93, 172, 44, 42, 202, 182, 75, 234, 163, 166,\n\t\t42, 98, 121, 221, 59, 71, 197, 110, 73, 215, 102, 223, 182,\n\t\t161, 145, 210, 100, 34, 79, 126, 174, 201, 58, 6, 233, 11,\n\t\t18, 83, 216, 120, 137, 232, 76, 194, 93, 117, 186, 65, 17,\n\t\t53, 62, 164, 9, 166, 168, 96, 51, 149, 167, 91, 53, 217, 16,\n\t\t71, 77, 33, 45, 235, 56, 109, 150, 218, 199, 179, 16, 90,\n\t\t62, 12, 51, 112, 24, 217, 201, 121, 139, 208, 241, 13, 24,\n\t\t229, 126, 51, 10, 252, 102, 184, 14, 135, 48, 115, 49, 63,\n\t\t239, 19, 218, 160, 180, 111, 31, 63, 235, 33, 125, 64, 186,\n\t\t24, 222, 240, 53, 121, 78, 218, 45, 237, 123, 76, 138, 31,\n\t\t8, 233, 8, 161, 38, 158, 131, 51, 144, 130, 60, 228, 163,\n\t\t33, 52, 142, 54, 161, 237, 232, 34, 116, 35, 154, 67, 31,\n\t\t68, 31, 71, 95, 64, 223, 136, 61, 75, 110, 251, 213, 102,\n\t\t16, 53, 194, 122, 84, 119, 78, 228, 86, 167, 89, 189, 4, 156,\n\t\t85, 155, 193, 58, 72, 82, 237, 210, 214, 107, 53, 218, 201,\n\t\t164, 130, 219, 41, 28, 129, 168, 217, 136, 181, 18, 143, 75,\n\t\t28, 187, 189, 101, 22, 215, 104, 68, 173, 58, 123, 173, 31,\n\t\t161, 222, 150, 88, 181, 41, 72, 234, 187, 94, 171, 103, 213,\n\t\t216, 193, 170, 17, 221, 215, 202, 223, 200, 24, 165, 241,\n\t\t237, 10, 237, 171, 200, 4, 129, 9, 130, 112, 63, 5, 65, 0,\n\t\t42, 8, 93, 24, 56, 7, 76, 24, 203, 50, 206, 73, 252, 228,\n\t\t156, 115, 198, 94, 162, 148, 138, 18, 198, 148, 96, 138, 179,\n\t\t148, 16, 130, 9, 37, 64, 48, 16, 66, 111, 80, 226, 230, 113,\n\t\t79, 112, 75, 101, 120, 184, 242, 19, 73, 204, 116, 69, 103,\n\t\t10, 198, 210, 175, 57, 165, 92, 36, 100, 152, 1, 165, 16,\n\t\t15, 221, 165, 83, 202, 57, 165, 135, 215, 111, 166, 116, 243,\n\t\t122, 218, 39, 92, 185, 89, 16, 54, 95, 41, 100, 132, 91, 55,\n\t\t9, 194, 166, 91, 133, 139, 136, 239, 19, 226, 251, 89, 50,\n\t\t62, 142, 201, 154, 113, 162, 144, 77, 27, 8, 217, 176, 73,\n\t\t32, 91, 54, 81, 186, 105, 203, 245, 88, 120, 116, 70, 20,\n\t\t203, 229, 175, 2, 37, 56, 133, 133, 79, 77, 112, 130, 99,\n\t\t136, 54, 124, 2, 4, 12, 25, 118, 247, 70, 198, 54, 222, 189,\n\t\t102, 164, 92, 25, 6, 233, 247, 156, 72, 167, 181, 248, 164,\n\t\t120, 231, 122, 81, 92, 127, 167, 40, 242, 251, 54, 114, 190,\n\t\t241, 62, 78, 249, 61, 113, 226, 158, 14, 237, 252, 12, 110,\n\t\t133, 135, 208, 64, 236, 213, 48, 95, 199, 193, 48, 13, 194,\n\t\t98, 172, 53, 59, 71, 42, 139, 208, 62, 115, 220, 106, 54,\n\t\t58, 155, 41, 115, 185, 108, 246, 204, 126, 87, 201, 13, 244,\n\t\t116, 203, 167, 107, 107, 7, 134, 74, 61, 3, 209, 72, 239,\n\t\t168, 204, 100, 102, 86, 69, 49, 175, 167, 182, 126, 167, 193,\n\t\t26, 231, 103, 52, 150, 89, 123, 198, 45, 103, 92, 251, 222,\n\t\t230, 224, 180, 181, 125, 172, 190, 190, 111, 114, 194, 5,\n\t\t44, 107, 57, 119, 184, 43, 51, 49, 222, 137, 131, 125, 19,\n\t\t3, 60, 149, 248, 12, 89, 148, 71, 101, 212, 141, 122, 99,\n\t\t136, 192, 45, 128, 109, 0, 27, 73, 22, 124, 29, 180, 74, 224,\n\t\t120, 81, 192, 189, 136, 59, 145, 215, 12, 248, 58, 136, 51,\n\t\t1, 143, 154, 28, 94, 150, 229, 223, 170, 234, 111, 147, 95,\n\t\t249, 194, 109, 63, 254, 226, 182, 11, 159, 140, 222, 125,\n\t\t225, 182, 191, 221, 190, 125, 251, 37, 73, 6, 202, 76, 125,\n\t\t72, 101, 15, 137, 226, 67, 43, 137, 181, 151, 175, 11, 111,\n\t\t184, 33, 92, 215, 60, 189, 231, 59, 151, 175, 11, 187, 26,\n\t\t141, 198, 119, 218, 89, 68, 150, 151, 17, 194, 235, 225, 86,\n\t\t212, 141, 78, 67, 239, 68, 168, 167, 8, 92, 39, 126, 76, 155,\n\t\t195, 16, 212, 146, 227, 181, 81, 203, 27, 77, 12, 140, 142,\n\t\t191, 21, 219, 84, 205, 97, 26, 219, 227, 58, 244, 183, 15,\n\t\t99, 36, 6, 133, 231, 134, 110, 179, 30, 198, 6, 88, 167, 125,\n\t\t18, 72, 79, 246, 194, 147, 160, 123, 48, 12, 205, 86, 18,\n\t\t186, 240, 220, 86, 212, 26, 198, 137, 21, 210, 14, 102, 192,\n\t\t114, 181, 36, 81, 59, 223, 109, 251, 255, 227, 244, 84, 247,\n\t\t90, 89, 241, 10, 12, 88, 80, 27, 17, 179, 189, 213, 109, 155,\n\t\t34, 141, 10, 144, 43, 56, 3, 50, 56, 213, 145, 122, 203, 235,\n\t\t117, 48, 21, 176, 8, 181, 170, 47, 18, 173, 96, 233, 185,\n\t\t77, 159, 126, 208, 28, 88, 75, 131, 76, 214, 18, 79, 51, 138,\n\t\t69, 157, 25, 153, 138, 129, 69, 194, 84, 65, 27, 116, 221,\n\t\t28, 169, 244, 20, 187, 54, 24, 86, 160, 200, 98, 190, 59,\n\t\t5, 34, 22, 37, 90, 29, 203, 100, 158, 179, 54, 117, 91, 101,\n\t\t79, 3, 128, 225, 170, 191, 209, 163, 194, 88, 62, 111, 209,\n\t\t62, 207, 18, 178, 173, 30, 169, 87, 252, 120, 247, 57, 182,\n\t\t160, 20, 91, 61, 89, 73, 210, 220, 94, 74, 5, 176, 189, 76,\n\t\t96, 136, 214, 134, 210, 36, 198, 112, 131, 87, 78, 243, 173,\n\t\t178, 151, 83, 43, 57, 11, 52, 44, 97, 129, 75, 86, 138, 243,\n\t\t90, 182, 150, 118, 60, 251, 84, 73, 149, 173, 116, 143, 67,\n\t\t83, 32, 129, 32, 11, 35, 150, 56, 152, 208, 166, 188, 252,\n\t\t52, 188, 4, 143, 163, 243, 16, 18, 170, 201, 105, 145, 250,\n\t\t152, 78, 92, 175, 136, 167, 241, 58, 152, 198, 195, 120, 4,\n\t\t134, 97, 4, 162, 34, 41, 65, 171, 54, 2, 145, 167, 3, 119,\n\t\t166, 133, 117, 224, 233, 96, 64, 108, 204, 118, 234, 38, 245,\n\t\t90, 205, 34, 241, 92, 6, 232, 242, 247, 19, 60, 25, 1, 181,\n\t\t178, 74, 42, 47, 59, 41, 83, 149, 48, 17, 69, 32, 2, 195,\n\t\t152, 122, 146, 92, 224, 186, 44, 98, 12, 10, 99, 67, 131,\n\t\t146, 2, 88, 20, 37, 206, 0, 23, 52, 151, 9, 162, 204, 52,\n\t\t150, 50, 83, 186, 66, 72, 193, 210, 93, 69, 129, 108, 177,\n\t\t215, 6, 120, 207, 154, 15, 93, 49, 121, 165, 79, 179, 97,\n\t\t107, 67, 78, 86, 48, 97, 28, 19, 57, 235, 101, 108, 131, 10,\n\t\t138, 77, 133, 50, 145, 21, 137, 16, 173, 36, 137, 97, 93,\n\t\t43, 73, 178, 32, 137, 92, 160, 0, 101, 106, 139, 162, 57,\n\t\t16, 166, 100, 9, 40, 103, 4, 119, 173, 31, 31, 211, 117, 12,\n\t\t233, 220, 216, 166, 129, 107, 239, 70, 157, 239, 90, 218,\n\t\t250, 74, 69, 121, 212, 135, 90, 104, 35, 58, 3, 237, 66, 23,\n\t\t163, 247, 34, 4, 53, 191, 89, 4, 143, 215, 130, 248, 159,\n\t\t235, 241, 90, 179, 17, 121, 140, 123, 204, 137, 109, 97, 55,\n\t\t116, 134, 33, 136, 92, 47, 114, 9, 139, 77, 142, 200, 169,\n\t\t114, 143, 113, 161, 149, 160, 172, 89, 143, 130, 86, 244,\n\t\t250, 248, 169, 229, 218, 60, 104, 69, 49, 227, 7, 81, 45,\n\t\t224, 30, 171, 38, 207, 90, 16, 213, 98, 159, 48, 242, 226,\n\t\t151, 97, 221, 227, 113, 191, 30, 119, 237, 184, 203, 128,\n\t\t65, 217, 76, 79, 236, 47, 154, 178, 156, 238, 155, 250, 21,\n\t\t231, 102, 46, 103, 138, 204, 147, 229, 59, 5, 203, 152, 184,\n\t\t184, 96, 138, 106, 186, 111, 173, 44, 155, 197, 253, 19, 105,\n\t\t83, 152, 234, 131, 110, 85, 52, 11, 23, 79, 24, 150, 48, 213,\n\t\t247, 198, 68, 15, 222, 126, 215, 83, 119, 221, 245, 212, 27,\n\t\t86, 90, 122, 76, 252, 172, 166, 119, 233, 90, 214, 104, 164,\n\t\t165, 25, 66, 102, 164, 116, 195, 204, 104, 170, 161, 107,\n\t\t90, 198, 92, 85, 6, 119, 17, 11, 143, 143, 74, 166, 98, 12,\n\t\t171, 199, 82, 134, 84, 31, 31, 31, 147, 12, 147, 231, 75,\n\t\t197, 194, 91, 50, 237, 151, 154, 110, 142, 192, 144, 98, 74,\n\t\t163, 227, 216, 34, 25, 117, 120, 89, 215, 86, 210, 35, 63,\n\t\t91, 9, 220, 222, 117, 215, 83, 119, 193, 217, 245, 235, 199,\n\t\t36, 61, 197, 11, 197, 82, 158, 155, 230, 231, 55, 18, 178,\n\t\t81, 72, 15, 58, 89, 87, 205, 168, 110, 214, 25, 76, 11, 255,\n\t\t181, 104, 149, 45, 203, 145, 129, 74, 201, 74, 237, 65, 215,\n\t\t33, 20, 213, 157, 88, 39, 53, 162, 70, 203, 141, 83, 61, 175,\n\t\t183, 99, 153, 95, 75, 206, 239, 59, 58, 120, 78, 219, 172,\n\t\t232, 56, 225, 73, 156, 179, 181, 14, 124, 215, 230, 97, 173,\n\t\t209, 62, 84, 20, 191, 247, 252, 70, 228, 187, 142, 239, 212,\n\t\t195, 177, 182, 29, 210, 100, 126, 117, 10, 194, 187, 139,\n\t\t185, 18, 113, 93, 199, 131, 109, 171, 77, 221, 121, 55, 85,\n\t\t152, 78, 105, 10, 104, 149, 32, 183, 222, 203, 185, 186, 238,\n\t\t170, 68, 100, 227, 189, 0, 189, 32, 232, 178, 172, 235, 178,\n\t\t252, 150, 30, 232, 133, 20, 213, 204, 46, 91, 147, 84, 179,\n\t\t231, 146, 180, 149, 182, 14, 166, 52, 45, 149, 121, 100, 149,\n\t\t25, 124, 189, 152, 42, 117, 235, 69, 10, 66, 85, 4, 165, 144,\n\t\t117, 91, 41, 75, 144, 36, 13, 147, 84, 198, 224, 34, 198,\n\t\t85, 241, 78, 89, 190, 43, 180, 77, 211, 49, 242, 30, 103,\n\t\t153, 202, 186, 66, 153, 251, 204, 91, 159, 236, 5, 152, 203,\n\t\t71, 224, 17, 56, 132, 124, 52, 128, 154, 104, 39, 218, 23,\n\t\t251, 114, 81, 99, 26, 188, 122, 228, 48, 158, 184, 108, 137,\n\t\t33, 31, 99, 43, 38, 234, 102, 173, 21, 53, 135, 193, 75, 62,\n\t\t183, 106, 54, 130, 24, 61, 73, 32, 90, 112, 146, 13, 255,\n\t\t41, 92, 229, 205, 176, 17, 132, 204, 9, 157, 154, 31, 215,\n\t\t194, 39, 142, 172, 135, 117, 143, 185, 158, 223, 106, 4, 86,\n\t\t255, 154, 66, 166, 40, 41, 180, 187, 100, 151, 107, 165, 189,\n\t\t181, 214, 80, 26, 27, 105, 239, 236, 96, 160, 54, 84, 212,\n\t\t210, 41, 13, 174, 72, 231, 173, 172, 66, 83, 60, 3, 107, 32,\n\t\t180, 202, 110, 234, 14, 91, 151, 76, 201, 214, 13, 13, 3,\n\t\t172, 193, 248, 95, 43, 67, 130, 166, 212, 9, 81, 228, 210,\n\t\t16, 163, 41, 77, 99, 185, 204, 214, 146, 223, 103, 128, 58,\n\t\t194, 129, 245, 223, 219, 149, 205, 101, 110, 173, 234, 22,\n\t\t165, 150, 94, 173, 143, 202, 90, 46, 151, 62, 7, 96, 180,\n\t\t44, 41, 197, 81, 56, 175, 2, 180, 224, 202, 41, 201, 112,\n\t\t223, 168, 124, 71, 215, 15, 171, 39, 157, 239, 37, 136, 198,\n\t\t54, 93, 170, 146, 170, 68, 94, 228, 39, 225, 156, 192, 247,\n\t\t156, 16, 14, 47, 205, 56, 63, 217, 233, 103, 60, 5, 99, 137,\n\t\t123, 86, 207, 142, 18, 28, 90, 154, 249, 67, 235, 35, 67,\n\t\t35, 121, 38, 184, 169, 209, 234, 3, 151, 39, 123, 14, 206,\n\t\t242, 147, 112, 57, 28, 70, 38, 26, 66, 200, 115, 89, 172,\n\t\t183, 106, 237, 19, 20, 44, 96, 86, 251, 89, 107, 121, 110,\n\t\t251, 99, 24, 29, 123, 46, 171, 6, 181, 105, 124, 42, 20, 64,\n\t\t138, 34, 181, 92, 114, 43, 107, 243, 87, 191, 103, 243, 197,\n\t\t111, 219, 105, 112, 125, 250, 170, 29, 227, 61, 211, 85, 158,\n\t\t166, 178, 73, 61, 41, 216, 54, 106, 96, 253, 194, 79, 140,\n\t\t231, 194, 138, 87, 41, 89, 55, 192, 166, 139, 55, 111, 191,\n\t\t52, 69, 243, 196, 156, 221, 56, 190, 163, 123, 252, 20, 95,\n\t\t212, 165, 222, 179, 78, 25, 106, 219, 170, 124, 249, 219,\n\t\t240, 215, 112, 24, 213, 17, 234, 102, 177, 0, 183, 25, 47,\n\t\t18, 206, 170, 65, 60, 108, 98, 116, 232, 44, 168, 198, 218,\n\t\t181, 13, 39, 119, 99, 5, 248, 117, 166, 170, 10, 37, 93, 89,\n\t\t209, 72, 139, 196, 184, 206, 247, 175, 53, 89, 217, 206, 118,\n\t\t1, 230, 162, 36, 114, 66, 40, 151, 121, 133, 236, 156, 221,\n\t\t57, 75, 42, 92, 230, 121, 80, 12, 147, 9, 217, 200, 33, 76,\n\t\t82, 5, 145, 82, 81, 78, 115, 39, 202, 2, 85, 100, 85, 98,\n\t\t96, 141, 150, 179, 59, 47, 120, 235, 77, 23, 238, 204, 150,\n\t\t71, 219, 251, 82, 218, 242, 139, 56, 132, 67, 201, 126, 100,\n\t\t47, 106, 161, 83, 208, 46, 132, 32, 217, 110, 138, 149, 62,\n\t\t239, 28, 64, 113, 189, 90, 112, 226, 96, 31, 175, 175, 48,\n\t\t162, 96, 115, 47, 88, 217, 29, 113, 121, 242, 53, 78, 231,\n\t\t252, 73, 236, 21, 173, 124, 156, 99, 187, 240, 174, 205, 23,\n\t\t49, 89, 180, 198, 54, 89, 219, 175, 223, 121, 202, 155, 84,\n\t\t233, 122, 53, 157, 86, 21, 77, 187, 95, 209, 117, 69, 73,\n\t\t167, 225, 203, 155, 140, 86, 111, 122, 203, 69, 23, 109, 217,\n\t\t240, 134, 127, 225, 10, 35, 76, 22, 184, 74, 4, 254, 70, 174,\n\t\t48, 93, 230, 170, 10, 153, 189, 51, 182, 13, 82, 117, 109,\n\t\t180, 109, 243, 69, 219, 215, 66, 83, 115, 53, 205, 213, 70,\n\t\t219, 143, 135, 166, 26, 163, 5, 121, 215, 141, 187, 118, 87,\n\t\t152, 36, 16, 206, 136, 202, 99, 197, 194, 36, 129, 171, 170,\n\t\t161, 38, 254, 15, 44, 255, 21, 44, 195, 225, 68, 70, 109,\n\t\t65, 23, 188, 230, 255, 180, 58, 79, 47, 217, 35, 77, 190,\n\t\t31, 139, 38, 89, 179, 90, 243, 243, 204, 105, 103, 107, 49,\n\t\t209, 212, 93, 175, 153, 200, 173, 34, 20, 128, 39, 129, 212,\n\t\t74, 236, 245, 21, 161, 21, 198, 174, 108, 92, 163, 245, 201,\n\t\t176, 187, 59, 236, 126, 44, 254, 237, 249, 23, 69, 229, 254,\n\t\t41, 197, 86, 181, 183, 6, 68, 194, 80, 235, 173, 182, 74,\n\t\t167, 250, 92, 85, 64, 128, 156, 5, 151, 171, 142, 150, 21,\n\t\t83, 230, 210, 223, 101, 82, 165, 13, 125, 182, 37, 202, 50,\n\t\t46, 91, 253, 155, 160, 86, 137, 29, 184, 74, 242, 59, 46,\n\t\t26, 74, 127, 241, 178, 70, 69, 145, 251, 129, 41, 122, 42,\n\t\t109, 137, 68, 180, 210, 105, 67, 101, 208, 167, 40, 149, 198,\n\t\t229, 133, 1, 217, 16, 9, 124, 215, 41, 104, 158, 254, 93,\n\t\t227, 219, 166, 45, 89, 93, 223, 49, 117, 12, 162, 44, 230,\n\t\t48, 54, 226, 249, 203, 203, 71, 224, 27, 73, 204, 184, 109,\n\t\t121, 34, 171, 146, 226, 62, 247, 155, 126, 74, 104, 86, 82,\n\t\t161, 19, 133, 77, 39, 249, 142, 168, 217, 11, 239, 187, 241,\n\t\t236, 241, 201, 171, 225, 182, 165, 111, 239, 29, 191, 186,\n\t\t119, 99, 47, 28, 90, 250, 221, 141, 227, 227, 48, 241, 213,\n\t\t231, 151, 126, 61, 62, 254, 204, 141, 55, 222, 120, 35, 18,\n\t\t16, 44, 127, 27, 222, 9, 135, 81, 26, 85, 81, 136, 182, 160,\n\t\t179, 98, 175, 201, 101, 6, 36, 103, 68, 106, 201, 135, 8,\n\t\t97, 221, 75, 98, 174, 45, 215, 225, 177, 104, 242, 107, 81,\n\t\t173, 85, 74, 142, 15, 36, 70, 159, 95, 13, 162, 228, 123,\n\t\t73, 3, 88, 109, 29, 180, 146, 143, 22, 122, 90, 81, 61, 108,\n\t\t111, 6, 143, 64, 173, 217, 24, 184, 68, 39, 230, 53, 152,\n\t\t72, 26, 128, 140, 53, 46, 140, 201, 236, 116, 165, 64, 117,\n\t\t9, 227, 129, 107, 69, 219, 184, 146, 75, 88, 44, 233, 76,\n\t\t82, 249, 94, 76, 4, 70, 174, 54, 44, 105, 154, 171, 18, 211,\n\t\t11, 75, 255, 208, 92, 11, 32, 107, 85, 233, 10, 242, 236,\n\t\t24, 47, 211, 46, 80, 69, 69, 45, 23, 185, 180, 192, 85, 137,\n\t\t207, 170, 170, 249, 70, 73, 19, 239, 208, 179, 66, 53, 238,\n\t\t92, 48, 123, 21, 65, 254, 133, 16, 147, 146, 0, 69, 161, 75,\n\t\t63, 79, 97, 106, 223, 183, 179, 130, 38, 63, 155, 150, 140,\n\t\t175, 11, 204, 136, 229, 205, 242, 242, 242, 79, 225, 46, 248,\n\t\t20, 170, 162, 51, 16, 138, 108, 157, 182, 191, 134, 136, 172,\n\t\t120, 218, 173, 122, 17, 123, 69, 224, 140, 87, 107, 58, 142,\n\t\t98, 109, 215, 79, 116, 234, 176, 78, 165, 86, 212, 10, 39,\n\t\t240, 52, 139, 19, 111, 164, 241, 5, 128, 207, 16, 68, 88,\n\t\t11, 138, 152, 63, 53, 219, 109, 164, 229, 126, 59, 93, 186,\n\t\t86, 44, 41, 41, 126, 172, 91, 117, 223, 10, 28, 51, 76, 49,\n\t\t193, 58, 16, 125, 70, 96, 64, 61, 144, 161, 172, 148, 205,\n\t\t98, 58, 107, 166, 24, 35, 240, 97, 234, 100, 11, 93, 30, 195,\n\t\t34, 131, 27, 68, 9, 128, 80, 154, 58, 115, 240, 92, 12, 64,\n\t\t149, 119, 231, 54, 28, 0, 76, 40, 163, 103, 83, 67, 20, 138,\n\t\t119, 75, 152, 114, 197, 112, 114, 169, 180, 25, 203, 95, 182,\n\t\t124, 4, 30, 135, 67, 72, 70, 14, 202, 37, 123, 25, 174, 199,\n\t\t120, 45, 152, 134, 90, 131, 215, 61, 215, 243, 99, 78, 8,\n\t\t163, 48, 78, 89, 174, 99, 243, 90, 80, 107, 127, 249, 241,\n\t\t209, 102, 73, 181, 178, 37, 140, 97, 84, 20, 162, 252, 21,\n\t\t165, 73, 66, 133, 123, 174, 189, 37, 117, 189, 252, 246, 82,\n\t\t54, 117, 58, 179, 129, 210, 115, 85, 88, 191, 103, 91, 125,\n\t\t236, 13, 117, 173, 152, 169, 78, 179, 173, 111, 190, 110,\n\t\t27, 149, 206, 249, 242, 223, 126, 6, 244, 235, 46, 187, 106,\n\t\t255, 93, 183, 159, 126, 42, 101, 109, 249, 132, 150, 143,\n\t\t224, 153, 228, 188, 64, 38, 217, 87, 57, 181, 125, 70, 206,\n\t\t243, 163, 209, 105, 88, 7, 175, 51, 37, 32, 242, 249, 8, 212,\n\t\t2, 159, 187, 37, 8, 35, 159, 71, 141, 160, 214, 108, 133,\n\t\t173, 18, 68, 237, 79, 212, 152, 231, 198, 58, 115, 4, 184,\n\t\t235, 213, 91, 94, 224, 87, 13, 8, 91, 81, 232, 193, 243, 34,\n\t\t84, 76, 140, 225, 218, 188, 189, 84, 78, 116, 253, 17, 59,\n\t\t191, 116, 206, 204, 64, 64, 117, 98, 206, 128, 103, 117, 223,\n\t\t153, 237, 205, 62, 86, 245, 192, 51, 116, 42, 152, 182, 85,\n\t\t74, 65, 183, 3, 158, 101, 9, 44, 149, 47, 5, 247, 148, 203,\n\t\t134, 48, 217, 207, 161, 33, 252, 143, 26, 31, 16, 68, 124,\n\t\t215, 42, 171, 97, 105, 254, 35, 87, 185, 167, 168, 64, 152,\n\t\t242, 238, 143, 124, 164, 222, 149, 82, 68, 13, 56, 84, 184,\n\t\t150, 209, 179, 105, 89, 50, 68, 226, 139, 80, 232, 250, 136,\n\t\t246, 62, 139, 122, 8, 121, 8, 45, 191, 136, 103, 224, 227,\n\t\t136, 32, 41, 137, 14, 54, 208, 6, 52, 139, 46, 64, 151, 160,\n\t\t123, 208, 71, 208, 87, 208, 97, 244, 125, 244, 99, 244, 75,\n\t\t116, 20, 253, 1, 4, 208, 96, 8, 198, 97, 11, 66, 221, 118,\n\t\t181, 81, 169, 219, 126, 181, 209, 170, 123, 126, 148, 164,\n\t\t188, 186, 51, 202, 198, 236, 177, 106, 231, 175, 54, 54, 9,\n\t\t99, 141, 176, 49, 22, 142, 134, 163, 161, 59, 54, 202, 71,\n\t\t195, 209, 198, 216, 232, 0, 56, 97, 211, 11, 173, 215, 225,\n\t\t149, 38, 38, 86, 172, 70, 253, 170, 215, 106, 4, 204, 230,\n\t\t13, 191, 202, 107, 126, 149, 55, 125, 39, 156, 36, 211, 56,\n\t\t81, 175, 78, 56, 137, 167, 73, 39, 25, 249, 206, 138, 185,\n\t\t22, 57, 97, 212, 168, 53, 27, 117, 47, 74, 76, 61, 199, 174,\n\t\t6, 220, 109, 133, 1, 155, 130, 240, 196, 103, 139, 182, 27,\n\t\t133, 29, 127, 59, 10, 88, 45, 170, 241, 206, 151, 243, 158,\n\t\t219, 104, 117, 90, 70, 1, 139, 251, 77, 146, 78, 184, 170,\n\t\t74, 82, 218, 46, 116, 194, 102, 216, 244, 29, 175, 209, 172,\n\t\t141, 213, 70, 253, 234, 168, 207, 198, 216, 152, 237, 216,\n\t\t99, 118, 232, 214, 195, 250, 216, 104, 107, 180, 53, 54, 26,\n\t\t249, 60, 240, 157, 166, 23, 182, 161, 243, 171, 188, 24, 123,\n\t\t13, 245, 22, 252, 194, 91, 58, 162, 40, 202, 77, 41, 176,\n\t\t110, 84, 85, 229, 70, 88, 117, 37, 199, 152, 1, 78, 63, 137,\n\t\t74, 208, 206, 241, 126, 63, 130, 150, 223, 63, 254, 254, 102,\n\t\t179, 121, 174, 33, 81, 42, 114, 42, 138, 24, 19, 204, 8, 7,\n\t\t192, 132, 8, 68, 28, 18, 5, 46, 202, 178, 40, 82, 177, 215,\n\t\t211, 5, 194, 61, 207, 20, 168, 148, 241, 177, 170, 105, 162,\n\t\t40, 90, 169, 92, 74, 148, 179, 18, 101, 198, 132, 44, 136,\n\t\t162, 140, 117, 141, 83, 41, 147, 21, 41, 111, 138, 44, 147,\n\t\t97, 98, 53, 41, 39, 253, 34, 203, 100, 5, 81, 4, 160, 34,\n\t\t156, 116, 209, 228, 228, 48, 0, 166, 49, 80, 45, 136, 252,\n\t\t254, 241, 157, 99, 158, 231, 121, 32, 137, 158, 215, 245,\n\t\t218, 76, 146, 125, 166, 189, 171, 72, 244, 178, 27, 118, 122,\n\t\t67, 247, 12, 102, 142, 247, 189, 187, 175, 239, 221, 111,\n\t\t54, 56, 23, 104, 15, 145, 4, 70, 8, 150, 85, 70, 86, 37, 123,\n\t\t168, 160, 164, 20, 38, 40, 18, 37, 148, 48, 70, 101, 81, 192,\n\t\t2, 101, 140, 114, 174, 164, 184, 162, 240, 148, 74, 82, 158,\n\t\t34, 26, 162, 196, 24, 41, 80, 145, 246, 56, 34, 33, 86, 74,\n\t\t16, 56, 151, 52, 93, 18, 153, 80, 166, 98, 156, 146, 132,\n\t\t30, 65, 162, 61, 14, 167, 196, 179, 68, 41, 39, 73, 194, 59,\n\t\t5, 1, 224, 237, 39, 205, 235, 22, 74, 133, 88, 60, 238, 153,\n\t\t136, 129, 28, 242, 118, 34, 132, 212, 19, 242, 129, 33, 55,\n\t\t137, 157, 79, 160, 13, 104, 23, 186, 26, 221, 136, 222, 138,\n\t\t222, 21, 123, 137, 61, 237, 16, 122, 244, 250, 227, 80, 49,\n\t\t145, 120, 97, 236, 232, 13, 147, 126, 136, 137, 40, 217, 164,\n\t\t109, 134, 205, 1, 240, 98, 209, 177, 242, 73, 79, 80, 211,\n\t\t147, 111, 72, 162, 38, 139, 109, 33, 143, 39, 164, 219, 108,\n\t\t36, 154, 173, 67, 150, 94, 17, 24, 111, 111, 171, 38, 28,\n\t\t228, 59, 66, 83, 7, 94, 169, 183, 122, 92, 155, 39, 95, 221,\n\t\t215, 177, 104, 8, 130, 33, 38, 17, 223, 54, 229, 60, 102,\n\t\t98, 215, 238, 178, 136, 200, 52, 193, 156, 24, 42, 228, 243,\n\t\t133, 235, 83, 190, 216, 157, 118, 215, 246, 116, 117, 245,\n\t\t116, 93, 96, 230, 45, 37, 237, 41, 122, 165, 108, 236, 87,\n\t\t153, 172, 13, 202, 186, 154, 18, 69, 189, 219, 81, 152, 120,\n\t\t141, 235, 169, 182, 230, 157, 103, 194, 215, 195, 197, 155,\n\t\t225, 62, 38, 45, 245, 75, 18, 55, 40, 53, 254, 168, 101, 63,\n\t\t188, 218, 251, 121, 239, 108, 165, 226, 19, 155, 137, 140,\n\t\t192, 172, 238, 234, 105, 125, 247, 238, 104, 162, 43, 30,\n\t\t196, 230, 44, 99, 168, 182, 140, 153, 165, 235, 86, 218, 208,\n\t\t71, 100, 217, 146, 92, 89, 22, 4, 198, 137, 168, 104, 114,\n\t\t202, 228, 84, 21, 181, 172, 169, 90, 242, 236, 236, 236, 99,\n\t\t247, 149, 175, 244, 164, 227, 188, 75, 100, 45, 228, 44, 47,\n\t\t47, 31, 193, 235, 225, 16, 178, 80, 23, 26, 70, 17, 154, 64,\n\t\t235, 209, 182, 36, 138, 122, 57, 122, 27, 186, 5, 198, 224,\n\t\t52, 216, 15, 215, 194, 77, 240, 86, 120, 8, 62, 14, 159, 66,\n\t\t8, 108, 238, 22, 192, 159, 196, 195, 120, 0, 28, 191, 25,\n\t\t214, 121, 123, 3, 198, 171, 59, 182, 158, 44, 134, 31, 112,\n\t\t191, 25, 122, 17, 143, 130, 100, 139, 220, 241, 154, 60, 106,\n\t\t87, 234, 20, 36, 219, 232, 2, 111, 119, 213, 198, 59, 95,\n\t\t213, 85, 224, 55, 185, 31, 56, 126, 224, 115, 63, 10, 189,\n\t\t184, 175, 144, 135, 129, 144, 124, 133, 230, 172, 132, 238,\n\t\t99, 193, 239, 122, 97, 211, 245, 194, 105, 28, 139, 141, 122,\n\t\t104, 199, 217, 181, 16, 191, 112, 234, 241, 187, 34, 120,\n\t\t241, 122, 214, 130, 228, 174, 142, 181, 69, 222, 48, 237,\n\t\t39, 3, 152, 241, 97, 8, 124, 39, 254, 209, 99, 91, 48, 145,\n\t\t149, 5, 168, 198, 117, 250, 177, 142, 147, 154, 184, 90, 235,\n\t\t199, 190, 83, 27, 0, 157, 36, 206, 140, 19, 182, 162, 184,\n\t\t215, 70, 171, 89, 143, 242, 224, 132, 147, 16, 15, 236, 216,\n\t\t78, 61, 170, 175, 131, 106, 242, 31, 171, 56, 108, 0, 162,\n\t\t216, 217, 171, 197, 30, 224, 90, 112, 226, 137, 213, 88, 59,\n\t\t237, 87, 29, 219, 141, 157, 233, 1, 104, 174, 32, 40, 198,\n\t\t71, 208, 10, 71, 235, 33, 175, 6, 181, 70, 20, 132, 78, 63,\n\t\t209, 137, 99, 175, 133, 54, 2, 154, 161, 179, 130, 145, 106,\n\t\t179, 225, 241, 48, 8, 29, 31, 54, 171, 138, 137, 9, 163, 105,\n\t\t51, 200, 21, 20, 197, 161, 121, 194, 185, 194, 52, 92, 177,\n\t\t157, 13, 27, 109, 39, 180, 210, 125, 221, 221, 87, 101, 215,\n\t\t201, 178, 163, 4, 181, 90, 16, 69, 112, 218, 223, 41, 178,\n\t\t73, 24, 75, 65, 187, 145, 253, 128, 153, 49, 50, 85, 230,\n\t\t179, 116, 49, 147, 207, 185, 118, 238, 126, 79, 133, 231,\n\t\t88, 70, 54, 68, 218, 166, 246, 28, 166, 22, 37, 77, 160, 133,\n\t\t88, 52, 189, 71, 4, 216, 160, 88, 113, 33, 1, 192, 13, 46,\n\t\t224, 190, 94, 129, 13, 16, 86, 38, 57, 75, 237, 197, 68, 32,\n\t\t92, 80, 184, 41, 168, 151, 11, 28, 43, 48, 44, 16, 232, 197,\n\t\t166, 208, 22, 183, 148, 249, 146, 228, 138, 170, 192, 241,\n\t\t153, 152, 10, 156, 105, 178, 45, 202, 198, 4, 80, 129, 2,\n\t\t101, 24, 227, 93, 179, 76, 230, 140, 140, 130, 167, 4, 34,\n\t\t254, 32, 3, 210, 45, 25, 54, 101, 169, 50, 148, 69, 205, 212,\n\t\t51, 149, 179, 37, 221, 212, 50, 149, 82, 252, 232, 42, 203,\n\t\t241, 204, 214, 172, 25, 7, 142, 65, 196, 0, 174, 105, 98,\n\t\t137, 114, 34, 96, 48, 121, 38, 147, 239, 42, 164, 50, 165,\n\t\t42, 175, 50, 171, 178, 85, 245, 14, 164, 82, 144, 209, 41,\n\t\t53, 52, 44, 81, 129, 224, 236, 230, 162, 200, 141, 189, 110,\n\t\t236, 117, 128, 231, 121, 155, 93, 183, 101, 219, 170, 161,\n\t\t73, 107, 114, 68, 18, 83, 239, 81, 117, 93, 223, 124, 85,\n\t\t89, 23, 168, 174, 171, 2, 195, 217, 205, 5, 145, 27, 59, 90,\n\t\t173, 86, 203, 48, 54, 111, 216, 48, 50, 210, 155, 255, 27,\n\t\t32, 120, 111, 204, 176, 207, 48, 73, 98, 10, 150, 48, 161,\n\t\t88, 201, 42, 186, 36, 49, 137, 3, 37, 174, 202, 201, 249,\n\t\t150, 36, 59, 162, 38, 73, 66, 34, 18, 213, 52, 201, 16, 71,\n\t\t230, 148, 214, 212, 235, 226, 182, 95, 137, 197, 38, 78, 254,\n\t\t171, 18, 12, 140, 197, 2, 25, 4, 134, 9, 222, 199, 21, 145,\n\t\t19, 81, 228, 92, 52, 153, 204, 37, 32, 146, 70, 240, 36, 23,\n\t\t0, 88, 151, 100, 48, 1, 203, 138, 173, 247, 50, 129, 192,\n\t\t255, 73, 215, 159, 128, 89, 114, 157, 229, 225, 248, 249,\n\t\t206, 90, 251, 190, 220, 125, 237, 91, 213, 235, 237, 238,\n\t\t187, 85, 207, 244, 116, 247, 236, 155, 102, 70, 51, 146, 102,\n\t\t52, 51, 26, 105, 180, 89, 163, 213, 150, 37, 75, 182, 101,\n\t\t73, 140, 22, 35, 100, 99, 27, 217, 216, 108, 198, 40, 216,\n\t\t177, 9, 4, 132, 113, 192, 66, 216, 120, 252, 199, 24, 146,\n\t\t7, 176, 18, 136, 3, 152, 16, 5, 136, 19, 158, 56, 33, 225,\n\t\t159, 197, 36, 208, 243, 123, 234, 220, 219, 163, 25, 217,\n\t\t233, 238, 91, 93, 85, 247, 212, 169, 186, 117, 79, 157, 115,\n\t\t190, 239, 123, 223, 247, 211, 244, 208, 22, 20, 131, 166,\n\t\t71, 246, 180, 97, 155, 96, 237, 187, 13, 92, 0, 211, 176,\n\t\t109, 76, 168, 160, 65, 182, 123, 247, 242, 242, 190, 193,\n\t\t192, 182, 91, 109, 163, 50, 189, 15, 33, 253, 74, 63, 172,\n\t\t34, 31, 85, 208, 60, 218, 133, 78, 163, 71, 208, 11, 232,\n\t\t83, 232, 23, 208, 175, 74, 116, 103, 222, 234, 70, 253, 94,\n\t\t218, 139, 242, 14, 49, 27, 244, 155, 189, 56, 144, 43, 223,\n\t\t3, 80, 25, 204, 65, 203, 6, 190, 10, 189, 13, 24, 140, 182,\n\t\t99, 169, 42, 32, 167, 27, 147, 160, 19, 207, 155, 117, 254,\n\t\t102, 156, 13, 134, 227, 210, 146, 252, 27, 46, 213, 32, 30,\n\t\t191, 153, 141, 119, 143, 203, 173, 195, 118, 188, 252, 214,\n\t\t74, 130, 173, 74, 100, 209, 80, 140, 15, 75, 123, 225, 228,\n\t\t90, 95, 51, 52, 199, 84, 157, 251, 117, 21, 227, 64, 97, 4,\n\t\t26, 30, 68, 10, 37, 127, 124, 205, 208, 191, 179, 53, 205,\n\t\t192, 1, 234, 51, 160, 132, 81, 6, 81, 225, 38, 143, 130, 112,\n\t\t188, 146, 103, 57, 58, 16, 151, 98, 173, 179, 147, 248, 4,\n\t\t151, 116, 76, 61, 170, 233, 16, 18, 159, 252, 35, 121, 28,\n\t\t9, 9, 208, 124, 114, 206, 199, 135, 113, 215, 47, 186, 182,\n\t\t163, 201, 163, 230, 137, 79, 28, 226, 82, 56, 236, 228, 151,\n\t\t242, 155, 170, 105, 171, 102, 147, 105, 86, 25, 235, 94, 25,\n\t\t63, 123, 213, 200, 253, 83, 21, 118, 15, 229, 37, 76, 10,\n\t\t166, 162, 149, 125, 203, 51, 8, 161, 124, 39, 189, 243, 28,\n\t\t0, 37, 105, 66, 105, 181, 142, 171, 132, 188, 61, 47, 71,\n\t\t170, 87, 149, 99, 144, 151, 107, 82, 114, 47, 16, 190, 108,\n\t\t171, 166, 173, 25, 72, 187, 242, 125, 10, 25, 149, 222, 137,\n\t\t142, 163, 179, 232, 54, 116, 39, 122, 39, 122, 1, 161, 78,\n\t\t47, 10, 219, 131, 117, 16, 189, 9, 156, 32, 29, 142, 222,\n\t\t58, 192, 198, 131, 46, 12, 7, 253, 94, 60, 156, 104, 67, 228,\n\t\t69, 219, 173, 52, 148, 26, 17, 195, 246, 80, 108, 249, 237,\n\t\t146, 53, 136, 135, 73, 62, 23, 235, 15, 71, 241, 176, 29,\n\t\t102, 67, 17, 198, 19, 165, 146, 124, 119, 54, 140, 242, 175,\n\t\t89, 186, 106, 198, 140, 66, 233, 237, 75, 225, 59, 138, 54,\n\t\t197, 212, 119, 114, 141, 27, 154, 38, 248, 103, 222, 28, 91,\n\t\t15, 151, 203, 134, 231, 58, 190, 21, 25, 229, 178, 229, 134,\n\t\t94, 16, 151, 247, 149, 219, 161, 227, 42, 164, 240, 182, 64,\n\t\t195, 245, 41, 109, 109, 106, 106, 234, 237, 97, 165, 26, 216,\n\t\t6, 110, 76, 153, 191, 88, 46, 152, 129, 165, 56, 37, 55, 118,\n\t\t29, 191, 132, 255, 82, 55, 20, 157, 98, 213, 86, 109, 95,\n\t\t12, 197, 87, 174, 30, 80, 255, 206, 243, 21, 46, 212, 22,\n\t\t87, 125, 195, 245, 84, 174, 26, 45, 37, 60, 82, 171, 43, 143,\n\t\t216, 33, 171, 16, 98, 246, 73, 83, 120, 250, 83, 39, 205,\n\t\t59, 159, 122, 234, 35, 85, 81, 253, 64, 179, 81, 107, 233,\n\t\t234, 103, 149, 105, 181, 175, 176, 234, 148, 230, 22, 172,\n\t\t176, 106, 169, 85, 37, 156, 196, 51, 209, 50, 70, 112, 61,\n\t\t58, 141, 80, 102, 209, 45, 228, 65, 141, 141, 201, 126, 189,\n\t\t225, 160, 203, 38, 194, 38, 111, 138, 109, 196, 53, 85, 122,\n\t\t8, 211, 174, 152, 112, 45, 123, 163, 13, 248, 11, 224, 94,\n\t\t208, 246, 214, 119, 239, 221, 25, 119, 74, 177, 229, 8, 133,\n\t\t97, 37, 156, 169, 172, 17, 77, 241, 180, 18, 219, 187, 99,\n\t\t225, 54, 177, 74, 230, 76, 79, 179, 124, 92, 97, 69, 17, 112,\n\t\t147, 209, 39, 246, 239, 115, 136, 73, 13, 197, 178, 3, 163,\n\t\t62, 227, 54, 166, 19, 85, 61, 1, 76, 83, 196, 254, 61, 251,\n\t\t143, 10, 61, 118, 59, 81, 193, 82, 226, 122, 80, 231, 186,\n\t\t194, 56, 97, 216, 217, 177, 144, 30, 22, 109, 97, 105, 150,\n\t\t67, 129, 131, 160, 170, 98, 90, 190, 118, 98, 180, 164, 78,\n\t\t91, 117, 205, 231, 124, 177, 95, 158, 141, 92, 69, 189, 6,\n\t\t159, 126, 225, 251, 240, 120, 243, 207, 168, 44, 39, 178,\n\t\t205, 100, 227, 167, 52, 238, 213, 20, 217, 104, 186, 234,\n\t\t21, 50, 233, 104, 3, 210, 43, 200, 140, 26, 143, 107, 244,\n\t\t26, 220, 58, 61, 66, 176, 74, 13, 234, 16, 63, 44, 149, 241,\n\t\t20, 221, 94, 237, 204, 17, 141, 43, 140, 83, 138, 113, 210,\n\t\t117, 64, 197, 42, 213, 20, 203, 242, 244, 233, 57, 191, 93,\n\t\t242, 234, 156, 235, 65, 197, 47, 148, 124, 145, 247, 172,\n\t\t130, 40, 152, 104, 118, 248, 86, 105, 148, 223, 233, 115,\n\t\t67, 85, 24, 199, 20, 114, 227, 47, 162, 139, 197, 74, 71,\n\t\t151, 10, 84, 132, 80, 70, 252, 46, 169, 240, 152, 185, 84,\n\t\t35, 100, 105, 190, 146, 4, 26, 163, 141, 176, 94, 106, 212,\n\t\t40, 53, 132, 175, 148, 152, 238, 185, 186, 24, 243, 188, 241,\n\t\t69, 120, 21, 85, 209, 42, 58, 32, 239, 68, 192, 231, 96, 139,\n\t\t83, 211, 30, 131, 215, 183, 252, 110, 98, 144, 54, 165, 127,\n\t\t173, 57, 81, 229, 137, 155, 18, 217, 215, 148, 55, 163, 211,\n\t\t223, 2, 198, 15, 70, 248, 94, 205, 178, 180, 33, 123, 233,\n\t\t194, 145, 39, 171, 123, 174, 90, 175, 242, 205, 111, 230,\n\t\t155, 80, 40, 221, 182, 114, 227, 99, 28, 102, 243, 173, 205,\n\t\t255, 36, 183, 54, 95, 127, 61, 223, 202, 23, 208, 176, 2,\n\t\t43, 46, 94, 120, 233, 166, 189, 87, 86, 110, 47, 20, 172,\n\t\t192, 90, 220, 246, 216, 141, 91, 43, 15, 88, 129, 101, 5,\n\t\t22, 226, 168, 123, 249, 18, 124, 20, 46, 161, 20, 45, 162,\n\t\t21, 180, 15, 61, 35, 251, 134, 73, 151, 112, 21, 121, 77,\n\t\t194, 179, 250, 189, 56, 138, 215, 169, 180, 13, 109, 136,\n\t\t101, 100, 85, 4, 241, 40, 78, 19, 9, 228, 187, 130, 190, 75,\n\t\t226, 117, 169, 246, 52, 110, 228, 89, 175, 223, 139, 199,\n\t\t161, 197, 220, 110, 92, 226, 203, 73, 218, 106, 71, 249, 9,\n\t\t178, 26, 189, 162, 103, 36, 81, 38, 105, 20, 143, 178, 4,\n\t\t110, 105, 70, 247, 157, 218, 127, 190, 175, 212, 61, 197,\n\t\t88, 228, 186, 107, 116, 50, 12, 224, 57, 113, 201, 12, 226,\n\t\t227, 205, 214, 162, 238, 124, 165, 203, 171, 173, 216, 81,\n\t\t48, 85, 197, 154, 205, 248, 210, 63, 46, 133, 92, 115, 206,\n\t\t52, 21, 5, 30, 161, 216, 198, 138, 239, 43, 126, 81, 199,\n\t\t211, 24, 107, 52, 246, 107, 203, 33, 119, 132, 38, 24, 81,\n\t\t187, 170, 237, 232, 238, 158, 133, 93, 35, 129, 117, 181,\n\t\t250, 215, 202, 82, 114, 250, 209, 115, 219, 182, 89, 145,\n\t\t226, 181, 217, 251, 171, 186, 111, 41, 159, 101, 128, 251,\n\t\t157, 197, 82, 37, 172, 251, 183, 241, 103, 61, 135, 86, 223,\n\t\t67, 201, 219, 246, 48, 252, 47, 133, 70, 221, 19, 10, 181,\n\t\t207, 189, 86, 57, 190, 93, 177, 28, 70, 217, 52, 132, 138,\n\t\t34, 184, 153, 6, 74, 83, 21, 120, 213, 170, 236, 138, 212,\n\t\t80, 213, 8, 163, 218, 198, 84, 115, 102, 241, 149, 128, 25,\n\t\t130, 95, 227, 39, 199, 18, 211, 132, 252, 184, 253, 214, 112,\n\t\t138, 14, 109, 210, 207, 226, 55, 230, 78, 129, 126, 117, 3,\n\t\t222, 117, 254, 226, 249, 91, 30, 46, 192, 204, 203, 255, 241,\n\t\t106, 175, 196, 231, 96, 118, 243, 155, 183, 220, 130, 80,\n\t\t140, 204, 203, 223, 192, 125, 248, 60, 58, 140, 142, 162,\n\t\t27, 208, 121, 116, 15, 186, 15, 189, 29, 189, 19, 61, 134,\n\t\t158, 64, 207, 161, 23, 208, 135, 209, 143, 162, 159, 64, 159,\n\t\t68, 255, 8, 253, 28, 250, 101, 244, 107, 232, 215, 209, 111,\n\t\t162, 223, 29, 51, 22, 109, 216, 90, 200, 88, 111, 155, 231,\n\t\t175, 113, 35, 72, 183, 22, 27, 48, 72, 150, 7, 27, 48, 230,\n\t\t112, 244, 226, 254, 40, 127, 73, 230, 70, 32, 98, 201, 111,\n\t\t132, 97, 59, 27, 138, 40, 204, 134, 41, 111, 139, 32, 223,\n\t\t191, 20, 103, 67, 17, 44, 7, 34, 27, 10, 54, 20, 113, 102,\n\t\t67, 63, 205, 82, 81, 135, 126, 150, 102, 34, 206, 146, 53,\n\t\t72, 147, 180, 45, 226, 180, 29, 103, 109, 222, 18, 97, 150,\n\t\t182, 236, 113, 208, 60, 204, 68, 216, 207, 82, 209, 207, 218,\n\t\t97, 28, 197, 253, 180, 45, 250, 163, 222, 6, 180, 227, 209,\n\t\t6, 110, 103, 131, 44, 21, 249, 200, 146, 165, 34, 30, 101,\n\t\t56, 49, 140, 12, 140, 1, 80, 65, 5, 125, 128, 89, 236, 126,\n\t\t38, 184, 10, 3, 3, 50, 195, 24, 129, 186, 2, 44, 127, 231,\n\t\t254, 241, 59, 84, 80, 88, 225, 10, 222, 252, 236, 252, 252,\n\t\t2, 204, 247, 9, 29, 192, 10, 237, 207, 227, 238, 60, 60, 114,\n\t\t231, 206, 246, 151, 141, 216, 56, 126, 227, 241, 51, 238,\n\t\t147, 124, 111, 235, 177, 27, 239, 196, 219, 193, 160, 159,\n\t\t221, 166, 221, 219, 255, 209, 235, 168, 241, 158, 81, 31,\n\t\t0, 102, 174, 223, 177, 99, 106, 234, 1, 247, 134, 54, 220,\n\t\t114, 23, 144, 231, 239, 59, 151, 156, 187, 131, 26, 79, 122,\n\t\t143, 158, 197, 224, 182, 163, 8, 92, 122, 10, 186, 237, 16,\n\t\t200, 55, 176, 105, 144, 243, 4, 27, 228, 44, 198, 84, 80,\n\t\t202, 24, 83, 57, 166, 103, 136, 129, 201, 121, 98, 152, 248,\n\t\t28, 128, 70, 239, 32, 249, 155, 156, 231, 134, 56, 197, 228,\n\t\t118, 149, 19, 186, 249, 111, 142, 40, 253, 37, 12, 27, 231,\n\t\t6, 248, 44, 16, 140, 111, 199, 159, 60, 232, 0, 165, 205,\n\t\t29, 215, 21, 224, 158, 61, 159, 251, 170, 17, 223, 112, 250,\n\t\t166, 115, 110, 229, 192, 27, 79, 158, 126, 27, 165, 112, 55,\n\t\t144, 29, 107, 239, 29, 141, 24, 28, 8, 70, 112, 226, 198,\n\t\t185, 147, 27, 143, 30, 73, 122, 171, 222, 169, 111, 156, 63,\n\t\t11, 64, 206, 159, 103, 226, 198, 115, 0, 213, 53, 5, 131,\n\t\t23, 62, 136, 1, 232, 245, 159, 137, 164, 56, 13, 70, 254,\n\t\t229, 75, 240, 139, 112, 9, 153, 168, 138, 144, 132, 173, 77,\n\t\t184, 156, 163, 190, 31, 246, 211, 177, 181, 38, 161, 227,\n\t\t17, 28, 184, 103, 152, 252, 85, 50, 28, 38, 243, 111, 244,\n\t\t85, 91, 249, 144, 233, 251, 112, 250, 222, 205, 147, 157,\n\t\t165, 165, 206, 127, 72, 179, 205, 223, 133, 225, 251, 84,\n\t\t91, 13, 204, 143, 152, 254, 24, 191, 244, 111, 225, 18, 252,\n\t\t180, 156, 103, 86, 81, 138, 208, 86, 39, 99, 65, 199, 2, 233,\n\t\t164, 204, 34, 63, 138, 147, 84, 138, 234, 101, 87, 246, 113,\n\t\t254, 220, 185, 66, 241, 220, 15, 195, 133, 119, 126, 174,\n\t\t89, 8, 155, 255, 248, 225, 242, 148, 231, 100, 131, 233, 133,\n\t\t61, 239, 229, 252, 228, 179, 237, 122, 169, 245, 147, 23,\n\t\t140, 15, 148, 74, 231, 158, 99, 83, 31, 186, 163, 249, 79,\n\t\t30, 241, 107, 15, 127, 174, 233, 111, 254, 245, 210, 186,\n\t\t21, 20, 197, 83, 187, 23, 30, 104, 63, 127, 138, 234, 247,\n\t\t254, 116, 171, 44, 159, 69, 142, 16, 222, 14, 23, 145, 133,\n\t\t58, 104, 59, 66, 16, 183, 19, 233, 18, 243, 37, 164, 216,\n\t\t151, 10, 80, 114, 7, 159, 3, 127, 2, 51, 142, 117, 216, 218,\n\t\t43, 157, 102, 18, 122, 12, 207, 217, 250, 202, 226, 194, 246,\n\t\t149, 61, 245, 249, 165, 181, 217, 153, 255, 54, 213, 202,\n\t\t134, 235, 51, 51, 235, 195, 172, 221, 130, 217, 245, 3, 59,\n\t\t103, 103, 119, 30, 88, 135, 214, 226, 40, 223, 59, 90, 108,\n\t\t85, 155, 203, 133, 149, 197, 197, 149, 246, 54, 56, 241, 119,\n\t\t80, 173, 84, 0, 251, 115, 51, 155, 159, 119, 138, 51, 51,\n\t\t69, 7, 110, 109, 87, 171, 237, 205, 215, 161, 16, 38, 73,\n\t\t184, 249, 159, 12, 67, 173, 86, 29, 137, 25, 231, 151, 223,\n\t\t192, 79, 192, 203, 114, 142, 190, 3, 29, 69, 183, 94, 233,\n\t\t177, 155, 19, 228, 231, 228, 233, 156, 128, 71, 217, 155,\n\t\t44, 215, 232, 42, 146, 235, 213, 219, 111, 126, 155, 223,\n\t\t175, 0, 174, 204, 12, 15, 245, 54, 159, 237, 29, 74, 27, 36,\n\t\t74, 227, 122, 193, 186, 101, 251, 190, 187, 54, 127, 78, 229,\n\t\t117, 161, 170, 162, 206, 213, 51, 42, 175, 231, 70, 79, 157,\n\t\t171, 103, 169, 160, 91, 187, 111, 86, 121, 53, 223, 93, 229,\n\t\t234, 31, 106, 123, 230, 250, 7, 15, 246, 167, 118, 216, 186,\n\t\t17, 39, 113, 184, 114, 240, 174, 125, 193, 175, 189, 35, 47,\n\t\t249, 142, 188, 204, 243, 87, 22, 159, 166, 130, 170, 252,\n\t\t211, 249, 234, 191, 231, 154, 198, 255, 61, 87, 213, 188,\n\t\t157, 92, 254, 45, 184, 4, 95, 190, 74, 83, 39, 70, 101, 84,\n\t\t151, 136, 203, 57, 180, 136, 250, 40, 67, 171, 104, 3, 237,\n\t\t65, 7, 208, 81, 116, 82, 250, 143, 158, 66, 207, 160, 31,\n\t\t68, 31, 68, 31, 65, 31, 67, 63, 134, 126, 10, 253, 12, 250,\n\t\t52, 250, 28, 250, 5, 244, 10, 250, 2, 250, 34, 250, 50, 250,\n\t\t42, 66, 27, 16, 139, 56, 139, 197, 6, 196, 54, 100, 19, 128,\n\t\t120, 54, 94, 207, 223, 35, 147, 88, 74, 254, 234, 95, 245,\n\t\t218, 218, 134, 176, 61, 204, 194, 124, 50, 156, 111, 71, 147,\n\t\t56, 84, 58, 182, 238, 219, 173, 84, 76, 198, 68, 62, 158,\n\t\t23, 245, 199, 94, 236, 52, 108, 15, 217, 176, 31, 118, 194,\n\t\t246, 144, 52, 93, 145, 118, 220, 166, 27, 251, 195, 166, 116,\n\t\t3, 196, 147, 58, 243, 18, 105, 254, 154, 40, 5, 137, 201,\n\t\t250, 132, 151, 48, 217, 186, 155, 214, 169, 194, 106, 244,\n\t\t195, 53, 90, 123, 145, 213, 216, 199, 89, 141, 254, 106, 141,\n\t\t213, 231, 235, 172, 254, 72, 157, 214, 127, 189, 101, 182,\n\t\t204, 214, 43, 205, 139, 173, 19, 173, 181, 230, 43, 173, 205,\n\t\t175, 234, 39, 90, 83, 122, 235, 213, 35, 163, 209, 145, 225,\n\t\t7, 11, 213, 66, 179, 162, 168, 126, 197, 111, 20, 171, 197,\n\t\t90, 89, 5, 165, 106, 27, 129, 251, 94, 29, 238, 208, 55, 127,\n\t\t70, 159, 133, 75, 127, 241, 231, 240, 233, 205, 39, 190, 250,\n\t\t219, 155, 79, 20, 116, 93, 191, 216, 2, 162, 235, 250, 151,\n\t\t155, 127, 168, 235, 250, 135, 155, 39, 90, 143, 197, 173,\n\t\t197, 86, 162, 89, 26, 213, 76, 173, 108, 105, 86, 168, 89,\n\t\t218, 110, 205, 82, 139, 166, 102, 42, 150, 102, 173, 91, 154,\n\t\t9, 23, 180, 183, 252, 108, 190, 222, 106, 253, 177, 174, 235,\n\t\t113, 75, 255, 171, 225, 145, 225, 240, 200, 118, 219, 192,\n\t\t76, 177, 109, 207, 176, 92, 199, 194, 68, 216, 166, 99, 80,\n\t\t251, 80, 171, 245, 141, 86, 235, 104, 179, 9, 75, 155, 247,\n\t\t223, 121, 167, 15, 214, 230, 223, 158, 132, 139, 171, 171,\n\t\t207, 54, 155, 115, 205, 230, 179, 186, 254, 105, 185, 242,\n\t\t30, 93, 63, 218, 106, 61, 219, 106, 125, 67, 215, 117, 189,\n\t\t21, 235, 173, 150, 174, 143, 117, 121, 40, 66, 240, 247, 112,\n\t\t81, 234, 12, 204, 126, 207, 204, 117, 21, 100, 40, 80, 42,\n\t\t188, 226, 183, 74, 1, 253, 123, 201, 228, 94, 207, 151, 247,\n\t\t11, 67, 188, 102, 235, 255, 144, 165, 105, 150, 254, 189,\n\t\t92, 194, 69, 91, 223, 252, 103, 186, 109, 235, 112, 68, 183,\n\t\t133, 33, 166, 167, 117, 123, 243, 207, 82, 249, 166, 252,\n\t\t155, 216, 6, 20, 95, 132, 39, 209, 153, 9, 23, 173, 203, 243,\n\t\t70, 32, 237, 160, 137, 179, 93, 114, 27, 38, 79, 110, 141,\n\t\t247, 123, 235, 32, 39, 139, 227, 105, 242, 216, 114, 26, 23,\n\t\t24, 195, 224, 195, 64, 228, 221, 14, 190, 184, 183, 87, 29,\n\t\t77, 207, 52, 103, 210, 97, 117, 118, 155, 105, 237, 152, 219,\n\t\t179, 10, 130, 115, 204, 184, 215, 184, 113, 122, 231, 217,\n\t\t153, 253, 179, 205, 29, 243, 243, 173, 180, 211, 45, 86, 18,\n\t\t85, 237, 148, 212, 38, 227, 26, 223, 211, 43, 76, 199, 152,\n\t\t113, 37, 217, 89, 235, 119, 66, 240, 188, 238, 238, 119, 47,\n\t\t239, 142, 218, 11, 139, 243, 83, 225, 252, 250, 250, 252,\n\t\t44, 8, 70, 5, 85, 156, 74, 235, 134, 141, 217, 125, 73, 216,\n\t\t154, 95, 156, 111, 69, 213, 153, 153, 170, 174, 114, 94, 224,\n\t\t189, 93, 158, 47, 24, 83, 231, 195, 78, 191, 106, 168, 108,\n\t\t125, 11, 215, 249, 117, 184, 8, 175, 161, 157, 8, 201, 64,\n\t\t189, 68, 164, 167, 22, 151, 52, 49, 73, 64, 150, 159, 34,\n\t\t206, 103, 203, 87, 168, 112, 19, 155, 254, 10, 95, 236, 247,\n\t\t14, 61, 224, 79, 173, 37, 193, 180, 74, 116, 162, 10, 211,\n\t\t214, 9, 16, 106, 150, 177, 214, 169, 121, 106, 169, 236, 23,\n\t\t18, 95, 221, 53, 220, 113, 60, 86, 121, 56, 247, 62, 120,\n\t\t237, 220, 161, 169, 189, 219, 91, 190, 107, 204, 155, 53,\n\t\t179, 16, 217, 152, 44, 169, 229, 125, 247, 170, 126, 99, 201,\n\t\t49, 35, 195, 243, 175, 243, 253, 98, 163, 183, 28, 13, 182,\n\t\t31, 219, 17, 207, 131, 82, 94, 95, 58, 126, 247, 91, 117,\n\t\t201, 14, 142, 53, 95, 175, 142, 155, 147, 222, 104, 56, 74,\n\t\t37, 250, 183, 14, 34, 139, 163, 55, 177, 246, 227, 200, 232,\n\t\t168, 159, 79, 112, 163, 229, 72, 88, 88, 226, 224, 198, 20,\n\t\t116, 120, 106, 207, 243, 231, 182, 45, 63, 222, 168, 61, 123,\n\t\t238, 220, 185, 35, 111, 135, 109, 163, 31, 127, 168, 74, 253,\n\t\t253, 98, 238, 199, 53, 32, 130, 20, 213, 210, 204, 242, 66,\n\t\t236, 11, 69, 33, 42, 113, 9, 166, 6, 198, 86, 179, 162, 80,\n\t\t147, 81, 69, 129, 243, 123, 206, 158, 123, 182, 92, 127, 180,\n\t\t191, 227, 220, 179, 155, 247, 61, 116, 228, 240, 202, 232,\n\t\t193, 35, 195, 5, 177, 215, 163, 165, 15, 50, 204, 67, 197,\n\t\t5, 234, 133, 27, 245, 82, 49, 226, 234, 12, 167, 170, 137,\n\t\t121, 169, 100, 81, 102, 11, 78, 200, 21, 62, 241, 69, 120,\n\t\t25, 69, 249, 76, 19, 68, 63, 108, 203, 87, 218, 30, 246, 229,\n\t\t171, 31, 247, 51, 146, 181, 225, 226, 210, 210, 94, 235, 134,\n\t\t11, 103, 206, 92, 184, 193, 218, 187, 180, 180, 243, 196,\n\t\t109, 39, 46, 150, 71, 240, 242, 195, 75, 141, 165, 215, 95,\n\t\t95, 106, 44, 61, 124, 233, 210, 230, 235, 59, 175, 225, 40,\n\t\t19, 52, 61, 70, 121, 192, 80, 134, 97, 226, 72, 132, 145,\n\t\t13, 97, 127, 152, 38, 153, 140, 201, 4, 87, 182, 146, 12,\n\t\t46, 109, 238, 132, 119, 221, 184, 186, 247, 230, 10, 3, 96,\n\t\t141, 179, 13, 6, 215, 171, 123, 112, 225, 241, 2, 1, 32, 240,\n\t\t242, 230, 78, 56, 197, 126, 244, 71, 89, 139, 242, 247, 11,\n\t\t158, 48, 150, 112, 241, 232, 47, 252, 194, 139, 20, 23, 24,\n\t\t139, 9, 253, 39, 148, 160, 183, 156, 223, 70, 8, 220, 166,\n\t\t235, 103, 109, 193, 197, 34, 108, 97, 76, 190, 115, 172, 217,\n\t\t21, 220, 88, 104, 31, 169, 201, 106, 47, 93, 70, 31, 189,\n\t\t197, 50, 203, 183, 252, 200, 109, 8, 21, 46, 111, 94, 254,\n\t\t125, 188, 27, 94, 69, 31, 66, 63, 142, 126, 86, 250, 182,\n\t\t190, 130, 254, 57, 250, 215, 232, 13, 244, 159, 209, 119,\n\t\t1, 67, 10, 43, 112, 8, 110, 129, 183, 195, 19, 240, 12, 124,\n\t\t24, 62, 9, 63, 7, 255, 12, 190, 34, 153, 142, 17, 23, 60,\n\t\t205, 127, 37, 236, 49, 25, 229, 214, 74, 60, 202, 6, 163,\n\t\t120, 20, 15, 165, 2, 179, 68, 70, 198, 189, 184, 55, 234,\n\t\t39, 105, 146, 14, 134, 137, 196, 92, 70, 113, 80, 195, 163,\n\t\t104, 20, 201, 67, 132, 196, 137, 164, 18, 55, 191, 29, 214,\n\t\t233, 112, 125, 172, 34, 196, 69, 216, 18, 92, 244, 162, 254,\n\t\t168, 63, 154, 144, 225, 242, 142, 33, 8, 71, 241, 40, 10,\n\t\t163, 120, 20, 137, 124, 145, 74, 200, 102, 23, 120, 24, 72,\n\t\t164, 195, 184, 186, 86, 59, 138, 123, 217, 40, 97, 114, 10,\n\t\t144, 72, 248, 102, 156, 100, 249, 60, 42, 55, 171, 184, 13,\n\t\t67, 30, 71, 217, 216, 80, 27, 219, 105, 73, 123, 204, 28,\n\t\t95, 135, 180, 213, 230, 145, 164, 139, 12, 196, 104, 144,\n\t\t206, 2, 111, 91, 82, 23, 129, 79, 100, 102, 243, 243, 68,\n\t\t177, 212, 64, 234, 142, 5, 146, 242, 138, 121, 42, 149, 135,\n\t\t228, 179, 144, 207, 215, 134, 93, 156, 38, 60, 174, 145, 184,\n\t\t55, 26, 27, 115, 121, 161, 104, 44, 104, 196, 186, 52, 221,\n\t\t58, 48, 28, 230, 207, 73, 123, 52, 148, 129, 231, 44, 25,\n\t\t78, 46, 83, 202, 31, 5, 81, 127, 29, 72, 23, 196, 58, 68,\n\t\t48, 138, 164, 186, 145, 156, 218, 180, 18, 9, 210, 79, 71,\n\t\t18, 97, 53, 24, 163, 80, 185, 224, 201, 120, 6, 52, 70, 184,\n\t\t138, 26, 136, 64, 94, 209, 8, 175, 97, 128, 126, 92, 51, 127,\n\t\t253, 167, 172, 106, 220, 7, 160, 88, 161, 130, 218, 66, 53,\n\t\t169, 163, 11, 223, 195, 74, 19, 84, 166, 81, 151, 18, 157,\n\t\t80, 42, 188, 105, 219, 81, 66, 110, 75, 231, 44, 33, 156,\n\t\t83, 211, 210, 155, 149, 106, 218, 49, 23, 255, 209, 77, 37,\n\t\t71, 209, 21, 70, 48, 0, 216, 194, 103, 204, 181, 83, 95, 208,\n\t\t252, 80, 226, 81, 141, 169, 16, 82, 140, 105, 205, 208, 29,\n\t\t106, 170, 210, 105, 67, 20, 124, 44, 82, 64, 40, 36, 183,\n\t\t54, 180, 80, 241, 20, 130, 241, 64, 161, 6, 97, 156, 169,\n\t\t155, 199, 149, 136, 40, 92, 40, 186, 226, 137, 64, 163, 101,\n\t\t66, 122, 212, 97, 154, 97, 10, 229, 203, 97, 59, 88, 216,\n\t\t152, 159, 191, 137, 183, 242, 90, 49, 209, 245, 97, 181, 2,\n\t\t152, 40, 109, 133, 28, 38, 32, 226, 64, 193, 192, 212, 169,\n\t\t59, 152, 97, 43, 24, 48, 118, 87, 152, 121, 221, 137, 197,\n\t\t235, 102, 53, 76, 85, 141, 104, 129, 206, 49, 33, 97, 213,\n\t\t198, 138, 208, 150, 57, 20, 44, 206, 176, 83, 5, 162, 89,\n\t\t194, 235, 97, 102, 57, 174, 176, 98, 110, 227, 225, 112, 46,\n\t\t3, 14, 10, 38, 6, 97, 0, 55, 154, 65, 33, 42, 26, 65, 132,\n\t\t177, 235, 109, 91, 249, 200, 231, 177, 13, 64, 169, 78, 177,\n\t\t2, 148, 100, 203, 217, 167, 113, 207, 211, 124, 86, 116, 172,\n\t\t169, 95, 41, 239, 110, 26, 59, 6, 155, 127, 172, 27, 12, 27,\n\t\t14, 51, 131, 206, 127, 40, 52, 152, 214, 113, 139, 75, 245,\n\t\t255, 161, 91, 148, 115, 204, 117, 97, 195, 231, 205, 78, 96,\n\t\t170, 49, 165, 134, 46, 98, 176, 185, 201, 48, 47, 11, 26,\n\t\t207, 0, 46, 114, 94, 0, 152, 137, 57, 19, 130, 8, 225, 42,\n\t\t140, 234, 192, 137, 26, 40, 174, 222, 178, 168, 134, 137,\n\t\t169, 0, 193, 122, 254, 157, 184, 222, 1, 155, 114, 5, 171,\n\t\t160, 0, 199, 140, 98, 67, 1, 86, 177, 125, 202, 244, 214,\n\t\t129, 184, 3, 4, 20, 172, 97, 33, 152, 213, 154, 242, 93, 32,\n\t\t58, 38, 88, 53, 48, 104, 76, 117, 117, 221, 245, 77, 161,\n\t\t96, 14, 58, 101, 148, 11, 133, 19, 241, 191, 213, 178, 214,\n\t\t84, 8, 38, 68, 49, 41, 46, 164, 84, 161, 116, 26, 215, 155,\n\t\t224, 77, 153, 101, 85, 8, 6, 76, 105, 38, 10, 77, 11, 152,\n\t\t170, 211, 204, 109, 85, 129, 50, 40, 86, 224, 211, 97, 59,\n\t\t104, 44, 44, 52, 234, 11, 175, 128, 87, 112, 129, 183, 61,\n\t\t209, 192, 148, 176, 106, 151, 39, 26, 104, 83, 140, 194, 200,\n\t\t105, 8, 170, 210, 105, 5, 26, 10, 187, 190, 108, 14, 102,\n\t\t169, 0, 128, 38, 167, 6, 49, 5, 198, 140, 115, 0, 230, 20,\n\t\t76, 161, 43, 26, 254, 37, 74, 205, 200, 197, 60, 137, 132,\n\t\t165, 114, 112, 174, 47, 23, 235, 78, 60, 2, 140, 5, 229, 132,\n\t\t144, 248, 6, 161, 27, 154, 74, 85, 1, 192, 20, 167, 5, 192,\n\t\t189, 114, 49, 12, 48, 195, 156, 51, 0, 192, 253, 162, 219,\n\t\t137, 18, 78, 26, 190, 27, 64, 8, 31, 168, 154, 126, 197, 110,\n\t\t108, 126, 20, 98, 149, 233, 26, 80, 77, 53, 106, 159, 111,\n\t\t23, 29, 205, 117, 153, 86, 41, 133, 149, 255, 63, 213, 85,\n\t\t0, 139, 25, 12, 139, 131, 80, 51, 84, 141, 98, 79, 168, 241,\n\t\t28, 120, 156, 9, 204, 12, 102, 77, 124, 22, 127, 130, 159,\n\t\t135, 207, 73, 204, 213, 18, 66, 91, 52, 247, 214, 4, 113,\n\t\t5, 189, 26, 181, 136, 224, 98, 61, 127, 104, 121, 151, 167,\n\t\t53, 12, 159, 43, 37, 229, 114, 242, 191, 243, 69, 9, 78, 164,\n\t\t171, 211, 53, 133, 123, 70, 90, 40, 247, 43, 70, 63, 9, 226,\n\t\t211, 39, 182, 223, 177, 123, 91, 189, 102, 248, 100, 246,\n\t\t109, 159, 42, 37, 37, 89, 190, 84, 74, 96, 6, 43, 220, 213,\n\t\t75, 78, 59, 140, 231, 139, 209, 74, 39, 141, 77, 0, 197, 136,\n\t\t189, 154, 219, 96, 243, 51, 214, 22, 239, 106, 139, 7, 211,\n\t\t70, 125, 180, 129, 174, 71, 55, 163, 243, 111, 162, 193, 226,\n\t\t182, 140, 6, 172, 193, 96, 29, 164, 120, 221, 120, 67, 78,\n\t\t164, 226, 183, 88, 56, 105, 24, 204, 65, 107, 13, 6, 171,\n\t\t208, 139, 3, 49, 217, 26, 115, 250, 241, 164, 190, 45, 141,\n\t\t200, 151, 127, 249, 169, 167, 126, 249, 169, 119, 129, 234,\n\t\t169, 197, 206, 84, 73, 117, 213, 109, 211, 165, 133, 210,\n\t\t223, 232, 226, 187, 66, 151, 139, 239, 50, 149, 82, 149, 125,\n\t\t200, 85, 61, 213, 11, 107, 19, 230, 253, 79, 252, 230, 11,\n\t\t47, 252, 230, 11, 240, 241, 167, 242, 227, 149, 178, 170,\n\t\t150, 227, 134, 162, 52, 226, 124, 109, 122, 91, 105, 225,\n\t\t219, 31, 22, 154, 38, 62, 44, 116, 253, 71, 222, 79, 233,\n\t\t251, 217, 48, 212, 234, 170, 90, 215, 66, 43, 12, 193, 148,\n\t\t240, 226, 205, 47, 188, 144, 87, 114, 13, 166, 198, 65, 13,\n\t\t180, 138, 142, 161, 187, 16, 234, 12, 251, 203, 249, 76, 178,\n\t\t21, 71, 129, 224, 237, 97, 239, 123, 162, 50, 237, 32, 10,\n\t\t44, 210, 110, 165, 97, 13, 247, 250, 113, 111, 157, 14, 146,\n\t\t108, 140, 67, 173, 193, 40, 27, 90, 144, 12, 70, 81, 29, 6,\n\t\t93, 154, 74, 32, 32, 164, 99, 98, 26, 252, 114, 98, 154, 192,\n\t\t44, 11, 79, 79, 223, 123, 77, 240, 228, 241, 109, 0, 84, 177,\n\t\t180, 114, 77, 9, 29, 155, 82, 175, 236, 25, 28, 195, 175,\n\t\t20, 179, 126, 179, 53, 26, 198, 133, 229, 86, 107, 185, 240,\n\t\t42, 161, 66, 213, 152, 229, 168, 174, 254, 24, 121, 159, 87,\n\t\t248, 189, 6, 49, 45, 28, 144, 42, 134, 246, 171, 87, 57, 179,\n\t\t158, 215, 27, 110, 172, 235, 204, 174, 16, 130, 129, 115,\n\t\t199, 40, 187, 29, 46, 176, 218, 44, 149, 155, 10, 225, 21,\n\t\t147, 198, 189, 152, 154, 107, 84, 17, 156, 98, 192, 174, 174,\n\t\t89, 2, 46, 122, 87, 248, 212, 147, 152, 135, 137, 98, 148,\n\t\t162, 209, 85, 237, 97, 104, 65, 144, 15, 96, 195, 65, 151,\n\t\t164, 111, 141, 117, 128, 28, 15, 165, 246, 83, 62, 39, 253,\n\t\t220, 71, 47, 92, 248, 232, 133, 31, 106, 76, 79, 63, 92, 159,\n\t\t22, 134, 23, 25, 223, 189, 42, 234, 95, 186, 254, 189, 239,\n\t\t62, 113, 203, 240, 244, 224, 145, 235, 225, 225, 11, 47, 221,\n\t\t123, 239, 75, 159, 127, 221, 216, 182, 127, 197, 52, 87, 218,\n\t\t86, 57, 14, 28, 250, 158, 107, 252, 206, 183, 191, 243, 232,\n\t\t77, 111, 95, 58, 187, 114, 236, 225, 177, 255, 227, 119, 100,\n\t\t187, 13, 208, 12, 90, 65, 123, 17, 202, 68, 210, 110, 5, 253,\n\t\t94, 22, 75, 40, 240, 155, 33, 130, 183, 236, 75, 175, 204,\n\t\t166, 243, 89, 180, 127, 149, 16, 252, 255, 106, 106, 94, 179,\n\t\t25, 169, 181, 112, 94, 139, 74, 206, 66, 165, 251, 233, 166,\n\t\t234, 231, 123, 234, 209, 156, 30, 21, 157, 133, 114, 247,\n\t\t189, 247, 125, 100, 102, 223, 217, 165, 123, 62, 186, 241,\n\t\t232, 254, 19, 79, 60, 126, 242, 212, 99, 239, 254, 107, 55,\n\t\t56, 29, 218, 41, 183, 90, 241, 116, 103, 106, 107, 163, 89,\n\t\t152, 238, 252, 194, 143, 220, 59, 186, 109, 163, 243, 210,\n\t\t133, 221, 143, 236, 221, 92, 123, 244, 244, 201, 199, 159,\n\t\t56, 113, 227, 123, 38, 243, 47, 100, 96, 4, 239, 146, 156,\n\t\t43, 52, 49, 152, 37, 159, 101, 188, 158, 165, 34, 22, 233,\n\t\t23, 46, 92, 248, 194, 23, 22, 74, 254, 197, 139, 131, 163,\n\t\t95, 184, 178, 86, 188, 240, 167, 23, 238, 249, 194, 23, 22,\n\t\t138, 249, 214, 145, 47, 92, 89, 43, 93, 64, 4, 169, 151, 127,\n\t\t23, 254, 78, 62, 207, 62, 170, 95, 245, 189, 141, 43, 28,\n\t\t87, 156, 93, 57, 145, 248, 73, 249, 84, 253, 206, 225, 163,\n\t\t133, 97, 249, 232, 81, 189, 216, 126, 250, 141, 167, 159,\n\t\t206, 183, 74, 199, 142, 233, 133, 9, 49, 237, 219, 215, 29,\n\t\t43, 14, 75, 71, 143, 234, 133, 169, 167, 159, 124, 250, 233,\n\t\t43, 91, 8, 105, 151, 191, 139, 108, 124, 0, 30, 144, 24, 185,\n\t\t62, 90, 149, 62, 131, 91, 209, 253, 50, 227, 1, 202, 198,\n\t\t220, 199, 188, 3, 232, 140, 67, 100, 249, 70, 204, 147, 84,\n\t\t164, 99, 213, 168, 36, 149, 114, 229, 249, 111, 20, 247, 185,\n\t\t136, 248, 212, 196, 112, 204, 103, 75, 185, 241, 150, 255,\n\t\t114, 209, 171, 97, 154, 63, 98, 53, 24, 93, 81, 7, 153, 216,\n\t\t115, 114, 26, 214, 121, 243, 76, 124, 82, 193, 103, 185, 46,\n\t\t84, 219, 246, 45, 80, 133, 206, 173, 192, 178, 238, 94, 124,\n\t\t119, 167, 94, 155, 122, 116, 113, 201, 107, 171, 254, 217,\n\t\t169, 119, 204, 17, 74, 201, 204, 67, 83, 183, 251, 90, 219,\n\t\t222, 252, 189, 61, 231, 247, 238, 61, 127, 59, 61, 158, 149,\n\t\t143, 213, 48, 1, 92, 59, 94, 174, 244, 58, 5, 176, 154, 167,\n\t\t206, 78, 55, 111, 62, 179, 249, 175, 102, 87, 103, 103, 87,\n\t\t221, 114, 96, 68, 70, 57, 45, 195, 246, 160, 17, 84, 103,\n\t\t103, 87, 103, 10, 229, 180, 92, 78, 63, 199, 117, 110, 249,\n\t\t150, 101, 229, 103, 182, 44, 223, 250, 96, 199, 94, 92, 236,\n\t\t46, 216, 173, 246, 227, 75, 245, 114, 212, 104, 68, 165, 250,\n\t\t226, 99, 245, 243, 123, 246, 156, 223, 251, 116, 118, 4, 235,\n\t\t174, 99, 68, 237, 229, 185, 51, 211, 242, 12, 239, 203, 107,\n\t\t159, 61, 8, 126, 217, 136, 76, 191, 92, 246, 253, 166, 159,\n\t\t159, 113, 89, 50, 57, 199, 54, 56, 92, 254, 13, 216, 1, 151,\n\t\t208, 52, 26, 228, 182, 97, 135, 139, 58, 140, 89, 163, 130,\n\t\t119, 33, 27, 45, 103, 201, 150, 26, 23, 238, 141, 54, 96,\n\t\t20, 73, 186, 102, 103, 34, 13, 148, 223, 187, 108, 50, 111,\n\t\t205, 111, 30, 248, 205, 109, 225, 17, 211, 168, 219, 193,\n\t\t182, 35, 102, 91, 53, 142, 132, 171, 141, 178, 163, 242, 114,\n\t\t72, 157, 229, 193, 146, 166, 135, 101, 65, 176, 97, 109, 254,\n\t\t195, 145, 81, 123, 71, 251, 200, 131, 71, 118, 39, 131, 36,\n\t\t41, 185, 53, 247, 145, 144, 135, 249, 49, 122, 126, 168, 81,\n\t\t183, 143, 6, 60, 244, 98, 207, 20, 22, 209, 28, 75, 17, 150,\n\t\t48, 117, 195, 209, 127, 107, 116, 164, 189, 58, 53, 60, 114,\n\t\t100, 88, 234, 116, 74, 229, 142, 91, 189, 154, 91, 42, 164,\n\t\t150, 240, 94, 132, 70, 19, 228, 241, 91, 187, 91, 58, 113,\n\t\t34, 196, 93, 152, 144, 217, 199, 26, 99, 113, 20, 139, 64,\n\t\t240, 104, 3, 162, 56, 26, 45, 226, 81, 182, 14, 175, 22, 26,\n\t\t133, 66, 227, 191, 93, 211, 109, 124, 99, 113, 239, 226, 226,\n\t\t222, 31, 160, 142, 21, 117, 156, 154, 224, 150, 67, 57, 87,\n\t\t141, 160, 99, 46, 153, 21, 115, 105, 202, 48, 43, 230, 162,\n\t\t217, 14, 93, 109, 179, 89, 40, 52, 227, 23, 175, 234, 71,\n\t\t111, 220, 187, 184, 184, 103, 233, 159, 42, 84, 241, 84, 202,\n\t\t20, 170, 8, 75, 81, 76, 106, 192, 162, 89, 29, 31, 106, 45,\n\t\t25, 212, 212, 237, 171, 53, 126, 46, 34, 75, 242, 215, 198,\n\t\t120, 221, 246, 150, 195, 55, 191, 190, 113, 87, 35, 184, 24,\n\t\t199, 117, 198, 201, 26, 226, 168, 7, 63, 238, 198, 207, 221,\n\t\t122, 235, 115, 5, 247, 247, 11, 173, 25, 219, 51, 52, 167,\n\t\t85, 246, 253, 74, 195, 209, 76, 207, 158, 109, 21, 212, 2,\n\t\t92, 44, 184, 47, 220, 250, 220, 115, 183, 190, 224, 22, 54,\n\t\t255, 71, 220, 72, 61, 221, 240, 140, 102, 201, 243, 203, 117,\n\t\t195, 51, 116, 119, 186, 17, 171, 82, 71, 236, 191, 227, 139,\n\t\t240, 17, 116, 4, 33, 8, 185, 176, 136, 104, 167, 185, 45,\n\t\t144, 44, 75, 78, 188, 216, 1, 195, 126, 40, 109, 146, 120,\n\t\t29, 103, 82, 53, 245, 202, 142, 81, 54, 234, 66, 123, 7, 12,\n\t\t183, 227, 126, 62, 123, 175, 65, 236, 119, 161, 61, 196, 23,\n\t\t83, 151, 207, 37, 61, 207, 186, 65, 28, 246, 236, 248, 142,\n\t\t88, 91, 242, 126, 214, 107, 112, 113, 191, 41, 170, 77, 206,\n\t\t86, 21, 125, 225, 195, 142, 207, 213, 154, 90, 245, 25, 15,\n\t\t92, 119, 199, 12, 75, 130, 85, 178, 19, 63, 193, 106, 6, 124,\n\t\t200, 128, 105, 243, 174, 179, 143, 206, 124, 213, 250, 112,\n\t\t7, 32, 251, 211, 149, 104, 9, 176, 134, 77, 8, 44, 235, 127,\n\t\t85, 204, 149, 53, 83, 123, 193, 246, 45, 19, 76, 35, 216,\n\t\t237, 103, 93, 205, 228, 249, 219, 184, 246, 62, 245, 35, 20,\n\t\t74, 182, 105, 161, 171, 52, 131, 44, 20, 161, 26, 186, 31,\n\t\t61, 44, 217, 34, 248, 205, 28, 23, 83, 111, 97, 49, 101, 65,\n\t\t204, 69, 58, 104, 183, 234, 32, 83, 127, 44, 15, 100, 135,\n\t\t145, 164, 217, 104, 208, 150, 52, 169, 49, 197, 6, 218, 163,\n\t\t44, 142, 122, 139, 18, 110, 205, 195, 64, 74, 39, 137, 86,\n\t\t24, 244, 179, 124, 42, 208, 197, 237, 86, 202, 109, 24, 101,\n\t\t255, 5, 83, 65, 132, 78, 21, 198, 117, 208, 101, 231, 248,\n\t\t248, 51, 175, 62, 243, 204, 171, 219, 156, 185, 235, 40, 165,\n\t\t64, 131, 32, 91, 50, 8, 230, 98, 183, 231, 19, 234, 211, 154,\n\t\t7, 68, 104, 176, 112, 29, 5, 1, 52, 112, 183, 45, 233, 20,\n\t\t235, 59, 93, 155, 80, 135, 86, 65, 8, 160, 205, 23, 225, 246,\n\t\t31, 130, 175, 80, 206, 136, 42, 152, 194, 212, 119, 140, 89,\n\t\t72, 255, 52, 175, 248, 153, 39, 177, 182, 203, 243, 242, 170,\n\t\t170, 1, 85, 116, 152, 59, 74, 129, 83, 223, 223, 182, 164,\n\t\t19, 204, 249, 46, 215, 199, 212, 163, 53, 7, 83, 47, 191,\n\t\t4, 66, 3, 127, 101, 17, 24, 253, 155, 103, 224, 229, 31, 192,\n\t\t19, 174, 243, 215, 48, 192, 175, 35, 19, 21, 80, 11, 205,\n\t\t35, 148, 73, 226, 121, 28, 197, 105, 98, 225, 88, 122, 203,\n\t\t228, 48, 209, 145, 150, 121, 54, 74, 82, 81, 131, 76, 138,\n\t\t84, 101, 207, 31, 109, 223, 147, 237, 217, 190, 179, 249,\n\t\t251, 209, 76, 187, 92, 140, 147, 184, 189, 188, 188, 127,\n\t\t25, 86, 155, 59, 142, 239, 60, 252, 112, 145, 84, 254, 32,\n\t\t56, 58, 187, 113, 246, 61, 211, 223, 126, 124, 126, 169, 217,\n\t\t217, 173, 131, 30, 54, 87, 227, 36, 94, 222, 191, 188, 252,\n\t\t228, 141, 175, 116, 59, 244, 23, 167, 78, 55, 159, 77, 103,\n\t\t148, 167, 172, 15, 158, 59, 188, 62, 121, 86, 126, 7, 222,\n\t\t128, 47, 162, 111, 163, 255, 140, 80, 39, 170, 2, 23, 75,\n\t\t146, 95, 32, 184, 141, 115, 243, 221, 162, 237, 86, 186, 20,\n\t\t45, 75, 203, 54, 77, 50, 46, 6, 50, 63, 208, 40, 27, 100,\n\t\t163, 172, 95, 133, 193, 40, 11, 170, 144, 239, 8, 226, 172,\n\t\t159, 63, 72, 253, 40, 94, 30, 197, 163, 44, 8, 199, 175, 150,\n\t\t24, 101, 189, 152, 139, 165, 124, 96, 137, 163, 56, 12, 66,\n\t\t41, 217, 59, 150, 6, 182, 33, 10, 115, 107, 92, 36, 105, 20,\n\t\t135, 249, 73, 150, 150, 101, 184, 132, 199, 81, 220, 78, 199,\n\t\t175, 26, 72, 79, 68, 196, 211, 164, 101, 177, 220, 234, 94,\n\t\t132, 48, 26, 43, 197, 141, 134, 185, 113, 222, 165, 249, 229,\n\t\t173, 227, 13, 224, 113, 20, 142, 149, 55, 182, 228, 119, 226,\n\t\t44, 232, 240, 112, 105, 4, 127, 142, 113, 5, 83, 38, 74, 142,\n\t\t143, 1, 19, 34, 128, 251, 133, 233, 120, 170, 133, 25, 169,\n\t\t20, 55, 106, 17, 161, 196, 81, 184, 234, 113, 14, 88, 3, 153,\n\t\t76, 71, 161, 210, 122, 6, 32, 188, 82, 38, 148, 171, 186,\n\t\t1, 121, 215, 69, 41, 197, 145, 74, 253, 14, 96, 133, 96, 202,\n\t\t137, 161, 73, 125, 92, 12, 64, 40, 161, 146, 201, 44, 229,\n\t\t125, 184, 224, 42, 198, 138, 200, 223, 80, 28, 221, 97, 101,\n\t\t151, 229, 237, 141, 48, 194, 169, 130, 203, 85, 33, 176, 229,\n\t\t155, 150, 97, 118, 119, 130, 214, 112, 169, 230, 42, 5, 92,\n\t\t51, 5, 152, 22, 231, 180, 94, 37, 140, 24, 44, 100, 4, 43,\n\t\t92, 101, 12, 216, 230, 55, 1, 254, 181, 174, 147, 193, 60,\n\t\t1, 93, 175, 121, 150, 2, 128, 69, 110, 153, 170, 66, 3, 12,\n\t\t170, 155, 236, 94, 26, 90, 198, 194, 140, 97, 182, 234, 154,\n\t\t160, 172, 16, 231, 151, 79, 0, 3, 5, 149, 153, 38, 16, 76,\n\t\t49, 103, 76, 163, 4, 64, 80, 0, 158, 79, 80, 9, 16, 171, 232,\n\t\t17, 194, 1, 176, 158, 95, 46, 16, 96, 124, 44, 251, 75, 169,\n\t\t16, 68, 170, 39, 227, 252, 88, 32, 220, 48, 84, 14, 140, 230,\n\t\t117, 98, 194, 128, 69, 92, 147, 105, 167, 8, 102, 96, 242,\n\t\t252, 24, 207, 224, 132, 236, 90, 40, 70, 126, 67, 247, 61,\n\t\t225, 227, 184, 29, 38, 173, 162, 34, 236, 106, 9, 44, 51,\n\t\t242, 149, 162, 160, 84, 55, 60, 223, 113, 56, 185, 21, 240,\n\t\t21, 159, 216, 235, 240, 223, 225, 18, 138, 101, 150, 168,\n\t\t177, 30, 74, 191, 151, 241, 118, 171, 45, 25, 100, 185, 93,\n\t\t147, 248, 60, 73, 215, 97, 144, 47, 226, 40, 128, 237, 107,\n\t\t183, 207, 154, 201, 218, 205, 195, 238, 254, 243, 10, 189,\n\t\t235, 197, 151, 46, 192, 109, 251, 23, 150, 234, 7, 106, 179,\n\t\t217, 104, 174, 126, 160, 126, 61, 252, 204, 225, 7, 158, 94,\n\t\t186, 174, 182, 193, 62, 114, 247, 133, 151, 54, 106, 155,\n\t\t143, 250, 36, 116, 238, 124, 250, 78, 39, 36, 254, 225, 63,\n\t\t145, 207, 231, 111, 98, 21, 254, 5, 106, 162, 89, 212, 67,\n\t\t59, 16, 130, 72, 52, 165, 45, 33, 211, 219, 164, 22, 140,\n\t\t229, 226, 70, 25, 23, 235, 16, 143, 162, 48, 96, 22, 212,\n\t\t240, 40, 75, 178, 254, 56, 73, 81, 22, 197, 19, 49, 35, 248,\n\t\t203, 68, 223, 252, 226, 226, 198, 94, 255, 189, 133, 119,\n\t\t31, 222, 223, 104, 173, 15, 235, 37, 111, 219, 245, 195, 125,\n\t\t254, 139, 39, 238, 120, 120, 243, 144, 103, 170, 113, 123,\n\t\t38, 62, 116, 230, 27, 181, 197, 210, 236, 218, 23, 247, 44,\n\t\t216, 86, 209, 46, 67, 99, 239, 161, 169, 190, 83, 104, 236,\n\t\t61, 102, 187, 46, 73, 218, 141, 19, 141, 11, 251, 163, 235,\n\t\t79, 62, 192, 230, 138, 219, 210, 239, 116, 182, 53, 125, 108,\n\t\t152, 179, 191, 89, 158, 47, 140, 62, 86, 58, 156, 212, 156,\n\t\t130, 181, 117, 223, 254, 29, 70, 146, 59, 213, 67, 40, 171,\n\t\t225, 184, 189, 21, 17, 224, 194, 194, 53, 232, 140, 205, 132,\n\t\t57, 24, 165, 82, 239, 86, 142, 68, 99, 29, 238, 44, 73, 23,\n\t\t116, 173, 18, 28, 183, 130, 192, 218, 30, 58, 102, 110, 0,\n\t\t195, 171, 249, 214, 96, 157, 189, 72, 178, 118, 108, 133,\n\t\t150, 38, 8, 51, 167, 70, 149, 23, 131, 198, 71, 22, 103, 119,\n\t\t229, 189, 253, 147, 86, 224, 23, 131, 165, 246, 122, 249,\n\t\t59, 129, 181, 249, 188, 21, 172, 93, 168, 173, 235, 138, 111,\n\t\t244, 247, 45, 174, 198, 122, 89, 24, 89, 181, 223, 28, 107,\n\t\t61, 212, 47, 127, 21, 62, 13, 95, 68, 135, 209, 121, 244,\n\t\t78, 244, 33, 132, 178, 100, 148, 141, 106, 16, 15, 183, 148,\n\t\t97, 36, 161, 73, 142, 207, 249, 144, 89, 193, 97, 52, 202,\n\t\t70, 19, 121, 7, 209, 230, 105, 50, 182, 106, 131, 220, 142,\n\t\t91, 151, 100, 29, 11, 119, 193, 31, 172, 203, 196, 14, 99,\n\t\t65, 37, 46, 120, 226, 75, 58, 183, 244, 159, 69, 97, 141,\n\t\t140, 210, 65, 150, 38, 178, 175, 205, 70, 145, 13, 113, 36,\n\t\t21, 141, 199, 18, 7, 23, 24, 214, 117, 102, 90, 176, 109,\n\t\t122, 122, 251, 245, 61, 69, 85, 170, 83, 133, 217, 21, 159,\n\t\t113, 134, 211, 179, 13, 9, 49, 77, 108, 14, 220, 178, 180,\n\t\t191, 85, 148, 55, 160, 243, 182, 147, 171, 157, 109, 7, 247,\n\t\t238, 88, 242, 170, 157, 249, 133, 174, 79, 243, 150, 31, 117,\n\t\t150, 246, 180, 185, 250, 151, 60, 96, 203, 207, 188, 227,\n\t\t38, 21, 108, 91, 27, 30, 186, 225, 134, 143, 5, 30, 161, 42,\n\t\t198, 129, 71, 29, 234, 185, 76, 103, 56, 160, 92, 37, 148,\n\t\t177, 123, 53, 149, 18, 94, 115, 110, 235, 100, 219, 166, 151,\n\t\t87, 109, 82, 33, 106, 173, 84, 77, 32, 226, 170, 109, 148,\n\t\t163, 69, 191, 96, 52, 146, 135, 210, 36, 177, 85, 141, 80,\n\t\t229, 55, 180, 218, 251, 167, 253, 214, 137, 225, 236, 190,\n\t\t212, 180, 150, 97, 150, 41, 130, 48, 163, 232, 83, 77, 113,\n\t\t67, 23, 155, 196, 219, 124, 141, 7, 124, 185, 148, 156, 223,\n\t\t96, 130, 176, 165, 195, 29, 165, 246, 195, 36, 240, 136, 34,\n\t\t2, 143, 57, 204, 115, 185, 25, 80, 174, 49, 134, 38, 188,\n\t\t154, 223, 128, 151, 209, 2, 26, 161, 99, 232, 110, 132, 96,\n\t\t7, 233, 178, 246, 44, 88, 88, 164, 91, 249, 1, 131, 168, 14,\n\t\t34, 73, 243, 251, 60, 28, 172, 147, 120, 40, 149, 31, 179,\n\t\t81, 156, 219, 110, 242, 14, 247, 226, 26, 149, 190, 203, 124,\n\t\t148, 231, 73, 182, 14, 50, 253, 193, 58, 145, 29, 118, 222,\n\t\t37, 80, 166, 168, 28, 51, 219, 180, 233, 225, 67, 235, 245,\n\t\t110, 65, 119, 20, 101, 91, 34, 204, 110, 111, 161, 90, 234,\n\t\t244, 59, 222, 77, 149, 170, 171, 253, 144, 152, 186, 105,\n\t\t113, 233, 182, 190, 67, 128, 225, 66, 148, 37, 59, 183, 29,\n\t\t78, 9, 159, 82, 13, 202, 48, 215, 41, 159, 53, 49, 83, 52,\n\t\t157, 37, 10, 166, 80, 165, 182, 48, 185, 202, 56, 198, 92,\n\t\t13, 44, 49, 189, 211, 171, 20, 245, 143, 153, 37, 33, 86,\n\t\t166, 244, 176, 136, 157, 185, 70, 117, 190, 96, 179, 155,\n\t\t103, 72, 86, 85, 181, 146, 253, 65, 181, 92, 159, 153, 241,\n\t\t41, 3, 203, 44, 105, 186, 240, 61, 0, 33, 66, 141, 18, 166,\n\t\t39, 92, 72, 220, 35, 37, 64, 53, 90, 150, 177, 31, 119, 194,\n\t\t139, 85, 17, 234, 180, 195, 182, 219, 15, 153, 219, 134, 224,\n\t\t190, 159, 124, 8, 122, 159, 124, 236, 227, 112, 233, 222,\n\t\t83, 155, 155, 50, 70, 244, 247, 240, 53, 120, 14, 37, 8, 193,\n\t\t164, 81, 165, 93, 210, 110, 137, 116, 157, 102, 210, 45, 190,\n\t\t145, 63, 102, 9, 23, 163, 56, 130, 75, 228, 204, 45, 27, 105,\n\t\t153, 171, 134, 225, 218, 42, 171, 133, 218, 116, 88, 139,\n\t\t212, 129, 81, 240, 156, 22, 174, 96, 28, 86, 237, 230, 173,\n\t\t251, 32, 217, 245, 200, 187, 15, 249, 237, 133, 153, 37, 55,\n\t\t44, 43, 29, 175, 160, 1, 59, 242, 99, 142, 61, 196, 11, 113,\n\t\t232, 19, 254, 32, 193, 215, 196, 15, 180, 113, 252, 162, 147,\n\t\t102, 237, 88, 196, 50, 66, 177, 99, 231, 206, 87, 119, 238,\n\t\t60, 7, 47, 111, 238, 124, 223, 171, 167, 78, 189, 122, 230,\n\t\t173, 249, 25, 230, 209, 6, 58, 54, 62, 78, 166, 191, 203,\n\t\t198, 214, 136, 76, 194, 215, 147, 186, 15, 227, 144, 199,\n\t\t96, 13, 250, 89, 123, 144, 229, 166, 122, 220, 31, 166, 173,\n\t\t193, 112, 176, 6, 109, 17, 143, 197, 33, 54, 32, 149, 56,\n\t\t110, 33, 131, 205, 50, 58, 242, 27, 92, 144, 126, 187, 86,\n\t\t106, 122, 149, 136, 139, 240, 185, 121, 10, 43, 250, 94, 192,\n\t\t202, 141, 23, 28, 114, 92, 20, 185, 8, 79, 68, 180, 236, 168,\n\t\t78, 153, 70, 170, 104, 212, 133, 140, 110, 244, 169, 166,\n\t\t242, 122, 100, 213, 139, 97, 135, 188, 67, 0, 46, 21, 41,\n\t\t16, 140, 223, 217, 193, 184, 160, 105, 226, 111, 139, 114,\n\t\t156, 250, 241, 26, 199, 252, 65, 14, 228, 63, 22, 180, 74,\n\t\t69, 43, 52, 21, 215, 85, 228, 103, 179, 46, 191, 1, 127, 11,\n\t\t63, 139, 102, 209, 54, 116, 64, 102, 91, 234, 69, 99, 10,\n\t\t243, 152, 126, 156, 117, 229, 228, 114, 36, 133, 44, 70, 253,\n\t\t177, 40, 93, 50, 76, 69, 20, 143, 216, 85, 241, 59, 11, 98,\n\t\t41, 219, 213, 26, 171, 71, 244, 178, 171, 51, 187, 193, 171,\n\t\t229, 154, 90, 32, 239, 59, 189, 237, 142, 21, 82, 84, 107,\n\t\t229, 200, 217, 118, 125, 29, 171, 119, 24, 177, 27, 199, 174,\n\t\t19, 159, 174, 28, 223, 230, 108, 254, 187, 130, 163, 216,\n\t\t26, 143, 29, 221, 211, 255, 141, 16, 66, 132, 15, 132, 92,\n\t\t8, 81, 126, 111, 89, 247, 244, 130, 227, 196, 241, 255, 72,\n\t\t150, 13, 221, 218, 56, 51, 179, 111, 214, 212, 205, 165, 212,\n\t\t153, 38, 31, 80, 113, 20, 197, 205, 56, 118, 130, 167, 72,\n\t\t106, 223, 231, 196, 92, 183, 20, 55, 214, 189, 123, 243, 131,\n\t\t195, 80, 8, 193, 43, 55, 104, 158, 238, 198, 121, 29, 227,\n\t\t190, 191, 120, 249, 119, 225, 63, 194, 175, 35, 44, 49, 40,\n\t\t75, 203, 44, 108, 230, 3, 83, 104, 65, 43, 237, 194, 48, 159,\n\t\t183, 245, 71, 93, 44, 137, 1, 178, 183, 141, 163, 18, 252,\n\t\t222, 230, 215, 97, 253, 230, 115, 181, 226, 177, 59, 211,\n\t\t193, 94, 252, 68, 73, 249, 101, 226, 215, 234, 186, 113, 224,\n\t\t157, 83, 198, 19, 119, 237, 188, 183, 86, 253, 51, 103, 176,\n\t\t48, 82, 253, 232, 62, 59, 180, 131, 59, 71, 207, 109, 107,\n\t\t118, 107, 115, 129, 14, 248, 192, 224, 214, 31, 88, 29, 13,\n\t\t182, 242, 196, 252, 177, 212, 16, 141, 208, 194, 248, 142,\n\t\t75, 34, 133, 236, 34, 146, 9, 108, 48, 126, 19, 37, 25, 75,\n\t\t135, 194, 152, 189, 11, 159, 181, 77, 195, 209, 75, 55, 135,\n\t\t187, 78, 247, 46, 188, 244, 210, 133, 3, 15, 183, 95, 251,\n\t\t201, 181, 185, 235, 215, 111, 190, 121, 253, 224, 194, 106,\n\t\t253, 214, 236, 150, 103, 158, 185, 101, 251, 157, 255, 179,\n\t\t84, 158, 191, 227, 19, 221, 61, 201, 75, 127, 240, 210, 161,\n\t\t93, 15, 189, 189, 126, 240, 230, 245, 245, 155, 55, 218, 139,\n\t\t195, 103, 126, 237, 153, 85, 249, 221, 43, 19, 158, 224, 149,\n\t\t188, 35, 157, 56, 76, 253, 177, 75, 103, 232, 103, 162, 13,\n\t\t119, 119, 222, 255, 207, 110, 252, 201, 248, 169, 255, 211,\n\t\t157, 253, 63, 79, 125, 243, 15, 10, 223, 188, 9, 118, 253,\n\t\t224, 237, 201, 71, 182, 215, 190, 185, 249, 127, 182, 255,\n\t\t115, 68, 144, 119, 249, 18, 252, 87, 248, 45, 116, 6, 189,\n\t\t13, 189, 51, 255, 44, 146, 206, 33, 117, 148, 218, 82, 91,\n\t\t92, 70, 214, 223, 250, 191, 63, 76, 6, 163, 40, 16, 97, 254,\n\t\t89, 165, 132, 95, 21, 130, 118, 43, 31, 183, 194, 255, 199,\n\t\t17, 29, 137, 19, 31, 123, 114, 179, 171, 214, 225, 175, 217,\n\t\t23, 91, 179, 173, 47, 178, 50, 155, 154, 188, 58, 186, 234,\n\t\t56, 154, 169, 243, 136, 49, 23, 211, 50, 15, 184, 110, 27,\n\t\t29, 90, 161, 29, 89, 98, 243, 255, 178, 50, 99, 101, 246,\n\t\t177, 241, 191, 151, 233, 159, 221, 94, 170, 86, 75, 183, 255,\n\t\t25, 165, 141, 95, 161, 180, 209, 144, 175, 135, 105, 160,\n\t\t40, 1, 101, 121, 39, 183, 67, 161, 52, 217, 122, 131, 254,\n\t\t74, 131, 178, 157, 148, 238, 100, 227, 229, 36, 238, 253,\n\t\t247, 248, 89, 120, 30, 157, 65, 104, 42, 144, 204, 217, 124,\n\t\t240, 109, 215, 240, 42, 76, 62, 196, 216, 173, 156, 143, 184,\n\t\t115, 48, 113, 250, 228, 95, 116, 47, 90, 103, 217, 58, 137,\n\t\t123, 91, 249, 239, 38, 186, 91, 249, 35, 37, 154, 195, 193,\n\t\t168, 14, 248, 89, 118, 134, 96, 140, 217, 127, 85, 74, 145,\n\t\t89, 86, 207, 168, 234, 25, 181, 92, 76, 131, 146, 245, 54,\n\t\t158, 20, 171, 179, 179, 213, 98, 194, 153, 203, 12, 170, 42,\n\t\t42, 183, 194, 162, 23, 8, 202, 203, 174, 30, 88, 170, 93,\n\t\t176, 221, 50, 175, 153, 81, 73, 133, 145, 202, 206, 252, 182,\n\t\t70, 134, 0, 152, 77, 153, 59, 90, 229, 188, 34, 181, 60, 63,\n\t\t154, 143, 107, 179, 219, 103, 107, 49, 0, 48, 197, 242, 205,\n\t\t122, 203, 38, 224, 4, 170, 21, 232, 86, 209, 10, 236, 230,\n\t\t14, 179, 205, 56, 25, 141, 125, 57, 111, 106, 158, 218, 168,\n\t\t40, 227, 1, 146, 32, 181, 165, 197, 17, 13, 18, 73, 162, 234,\n\t\t247, 96, 127, 100, 239, 223, 111, 255, 174, 52, 56, 221, 254,\n\t\t212, 123, 122, 251, 167, 254, 103, 61, 58, 92, 149, 134, 226,\n\t\t255, 62, 216, 255, 238, 97, 201, 233, 158, 224, 35, 124, 148,\n\t\t161, 253, 232, 36, 66, 157, 113, 42, 132, 9, 162, 73, 62,\n\t\t126, 98, 220, 209, 164, 82, 215, 39, 155, 56, 63, 197, 68,\n\t\t121, 108, 252, 112, 76, 73, 13, 166, 68, 78, 128, 214, 33,\n\t\t230, 215, 110, 194, 207, 133, 173, 96, 37, 221, 252, 243,\n\t\t197, 221, 217, 172, 123, 122, 180, 235, 118, 75, 247, 45,\n\t\t213, 183, 49, 165, 5, 151, 241, 195, 131, 206, 134, 93, 139,\n\t\t52, 37, 212, 195, 106, 126, 75, 177, 217, 17, 186, 97, 136,\n\t\t90, 77, 49, 34, 181, 85, 230, 186, 105, 136, 32, 16, 70, 168,\n\t\t254, 21, 45, 167, 81, 186, 178, 167, 59, 183, 193, 251, 27,\n\t\t167, 95, 87, 44, 95, 119, 202, 220, 52, 13, 234, 152, 65,\n\t\t48, 56, 60, 211, 84, 34, 53, 230, 74, 56, 179, 58, 243, 158,\n\t\t23, 86, 212, 72, 95, 120, 112, 65, 15, 177, 126, 232, 142,\n\t\t105, 53, 210, 43, 7, 171, 90, 4, 218, 120, 14, 250, 135, 240,\n\t\t44, 252, 34, 42, 163, 237, 91, 88, 184, 81, 13, 199, 34, 205,\n\t\t18, 145, 247, 157, 114, 78, 32, 67, 156, 50, 47, 87, 155,\n\t\t47, 66, 22, 11, 41, 220, 53, 28, 72, 86, 251, 96, 20, 143,\n\t\t102, 11, 183, 29, 106, 237, 24, 186, 65, 191, 83, 94, 217,\n\t\t51, 115, 160, 218, 140, 125, 240, 163, 3, 48, 173, 153, 88,\n\t\t68, 206, 224, 134, 135, 110, 176, 215, 218, 205, 157, 199,\n\t\t207, 151, 112, 181, 21, 5, 48, 91, 77, 126, 171, 218, 63,\n\t\t116, 28, 204, 186, 97, 31, 44, 164, 29, 152, 109, 23, 84,\n\t\t17, 250, 35, 63, 102, 129, 49, 53, 59, 55, 99, 207, 195, 33,\n\t\t235, 96, 37, 93, 218, 197, 121, 65, 81, 34, 175, 92, 157,\n\t\t198, 32, 117, 28, 47, 193, 203, 112, 9, 97, 196, 80, 73, 142,\n\t\t226, 34, 117, 179, 56, 11, 114, 219, 183, 139, 7, 227, 244,\n\t\t56, 34, 75, 195, 116, 107, 132, 235, 204, 1, 204, 62, 169,\n\t\t23, 106, 243, 221, 90, 119, 207, 182, 106, 53, 219, 187, 48,\n\t\t191, 187, 95, 250, 212, 245, 79, 29, 46, 223, 122, 107, 249,\n\t\t48, 254, 1, 8, 231, 78, 109, 254, 221, 169, 185, 51, 253,\n\t\t235, 179, 36, 84, 163, 209, 61, 31, 191, 111, 165, 80, 216,\n\t\t118, 225, 186, 211, 47, 124, 254, 80, 233, 182, 115, 229,\n\t\t67, 63, 127, 81, 182, 191, 226, 229, 75, 144, 194, 37, 164,\n\t\t35, 11, 185, 99, 47, 180, 76, 216, 22, 15, 227, 118, 90, 197,\n\t\t217, 215, 238, 252, 81, 114, 170, 254, 224, 131, 245, 83,\n\t\t31, 29, 244, 122, 95, 186, 240, 241, 175, 159, 106, 60, 248,\n\t\t96, 227, 212, 31, 252, 116, 239, 238, 251, 239, 238, 201,\n\t\t220, 105, 127, 127, 249, 95, 97, 10, 191, 132, 184, 172, 197,\n\t\t151, 88, 220, 104, 185, 157, 141, 122, 36, 243, 211, 36, 235,\n\t\t147, 78, 100, 131, 159, 198, 249, 174, 251, 182, 61, 191,\n\t\t66, 172, 123, 170, 127, 241, 93, 253, 31, 127, 233, 54, 116,\n\t\t153, 234, 223, 253, 139, 149, 149, 231, 183, 97, 11, 62, 247,\n\t\t202, 43, 98, 243, 111, 79, 111, 254, 233, 171, 234, 219, 54,\n\t\t255, 244, 15, 76, 245, 85, 72, 94, 121, 229, 21, 145, 183,\n\t\t235, 224, 242, 27, 240, 29, 120, 89, 106, 202, 206, 200, 158,\n\t\t190, 54, 126, 242, 211, 89, 104, 143, 19, 128, 142, 178, 46,\n\t\t172, 227, 94, 13, 243, 78, 127, 216, 142, 135, 60, 73, 195,\n\t\t26, 164, 253, 97, 27, 190, 17, 208, 82, 214, 174, 101, 54,\n\t\t11, 152, 157, 213, 218, 89, 137, 6, 49, 107, 174, 157, 189,\n\t\t231, 236, 90, 147, 109, 126, 124, 118, 246, 79, 22, 222, 54,\n\t\t147, 60, 248, 208, 103, 63, 251, 116, 97, 101, 177, 94, 42,\n\t\t20, 74, 245, 197, 149, 66, 114, 211, 225, 213, 118, 123, 245,\n\t\t240, 77, 11, 219, 127, 36, 118, 188, 70, 177, 229, 221, 191,\n\t\t125, 162, 197, 243, 239, 174, 96, 93, 198, 106, 85, 139, 168,\n\t\t143, 70, 18, 251, 248, 22, 239, 37, 113, 7, 115, 144, 223,\n\t\t214, 118, 43, 116, 131, 126, 179, 7, 19, 96, 218, 6, 180,\n\t\t217, 155, 171, 126, 216, 30, 194, 165, 162, 183, 249, 9, 175,\n\t\t88, 244, 224, 126, 175, 216, 225, 234, 59, 214, 214, 222,\n\t\t161, 114, 14, 247, 243, 205, 255, 123, 232, 208, 161, 155,\n\t\t70, 143, 131, 247, 181, 175, 125, 237, 225, 157, 143, 127,\n\t\t224, 46, 120, 236, 205, 162, 197, 205, 231, 225, 126, 126,\n\t\t93, 175, 119, 29, 223, 252, 4, 7, 232, 116, 14, 39, 201, 199,\n\t\t230, 31, 155, 252, 223, 252, 95, 157, 206, 181, 152, 143,\n\t\t34, 90, 70, 200, 237, 213, 168, 5, 97, 220, 78, 91, 22, 238,\n\t\t226, 180, 75, 227, 132, 215, 97, 44, 131, 63, 28, 141, 85,\n\t\t133, 233, 169, 247, 31, 31, 134, 130, 139, 19, 165, 253, 188,\n\t\t28, 55, 27, 157, 196, 47, 181, 11, 86, 105, 111, 140, 53,\n\t\t53, 154, 178, 189, 3, 135, 18, 48, 77, 209, 25, 89, 70, 181,\n\t\t56, 13, 47, 87, 230, 215, 215, 246, 45, 47, 177, 27, 14, 48,\n\t\t66, 168, 26, 216, 97, 119, 215, 182, 7, 137, 70, 21, 97, 207,\n\t\t87, 154, 47, 214, 29, 0, 85, 225, 229, 11, 165, 112, 190,\n\t\t88, 71, 111, 201, 105, 88, 71, 247, 33, 228, 7, 227, 196,\n\t\t73, 178, 211, 26, 245, 191, 39, 0, 199, 7, 73, 222, 85, 89,\n\t\t76, 200, 240, 90, 187, 101, 97, 169, 178, 209, 239, 133, 124,\n\t\t153, 11, 190, 8, 131, 117, 178, 124, 53, 77, 102, 148, 173,\n\t\t83, 9, 115, 232, 247, 226, 127, 160, 170, 2, 166, 99, 249,\n\t\t190, 194, 205, 223, 186, 218, 85, 188, 51, 162, 140, 50, 85,\n\t\t229, 58, 53, 1, 192, 218, 91, 156, 43, 89, 70, 212, 8, 1,\n\t\t83, 16, 85, 135, 0, 87, 20, 94, 21, 138, 169, 80, 179, 224,\n\t\t180, 250, 42, 38, 99, 26, 116, 179, 200, 26, 48, 167, 57,\n\t\t243, 211, 172, 226, 21, 151, 52, 218, 191, 202, 137, 252,\n\t\t135, 74, 11, 8, 16, 204, 65, 1, 16, 27, 238, 70, 161, 51,\n\t\t59, 211, 8, 13, 128, 29, 58, 183, 168, 48, 21, 78, 153, 161,\n\t\t57, 174, 112, 138, 214, 202, 20, 55, 20, 78, 9, 0, 184, 44,\n\t\t255, 206, 242, 62, 226, 18, 92, 66, 7, 209, 29, 19, 132, 106,\n\t\t59, 31, 221, 45, 101, 11, 234, 54, 73, 241, 75, 199, 214,\n\t\t81, 54, 104, 189, 9, 128, 147, 105, 165, 227, 117, 209, 239,\n\t\t73, 122, 47, 206, 143, 147, 65, 202, 254, 118, 188, 142, 101,\n\t\t110, 142, 182, 232, 169, 211, 67, 60, 206, 73, 69, 40, 182,\n\t\t111, 24, 77, 119, 171, 177, 177, 40, 52, 67, 227, 126, 37,\n\t\t114, 56, 86, 119, 31, 234, 220, 48, 154, 90, 42, 70, 24, 136,\n\t\t203, 109, 197, 210, 44, 193, 63, 203, 128, 168, 66, 215, 235,\n\t\t117, 37, 246, 128, 83, 70, 48, 152, 255, 5, 103, 130, 41,\n\t\t101, 200, 63, 46, 215, 12, 87, 91, 57, 179, 156, 22, 71, 190,\n\t\t2, 84, 232, 134, 171, 6, 24, 102, 107, 11, 244, 192, 238,\n\t\t133, 211, 187, 130, 133, 169, 202, 61, 26, 96, 149, 42, 132,\n\t\t97, 124, 188, 228, 114, 85, 165, 220, 61, 58, 237, 213, 138,\n\t\t0, 132, 108, 32, 68, 46, 111, 94, 254, 10, 124, 25, 46, 33,\n\t\t134, 150, 209, 126, 132, 32, 76, 82, 233, 169, 174, 129, 132,\n\t\t194, 117, 65, 90, 215, 92, 108, 101, 89, 139, 215, 201, 112,\n\t\t144, 142, 65, 248, 163, 225, 192, 175, 141, 61, 191, 217,\n\t\t72, 34, 160, 165, 148, 18, 4, 197, 110, 189, 51, 21, 5, 38,\n\t\t41, 150, 251, 159, 234, 79, 59, 201, 153, 213, 102, 85, 199,\n\t\t113, 105, 251, 177, 74, 191, 217, 94, 142, 85, 240, 31, 162,\n\t\t171, 215, 223, 89, 196, 139, 73, 165, 124, 93, 145, 131, 189,\n\t\t187, 99, 4, 230, 210, 44, 204, 194, 225, 163, 193, 233, 207,\n\t\t80, 179, 190, 231, 112, 117, 101, 101, 246, 225, 219, 118,\n\t\t235, 97, 164, 222, 180, 189, 181, 154, 114, 107, 215, 201,\n\t\t163, 105, 193, 200, 182, 189, 184, 23, 224, 134, 213, 26,\n\t\t212, 167, 238, 58, 84, 154, 153, 51, 69, 179, 167, 248, 65,\n\t\t45, 48, 172, 226, 91, 219, 252, 206, 124, 164, 254, 62, 185,\n\t\t233, 211, 177, 249, 144, 246, 71, 195, 65, 58, 236, 226, 52,\n\t\t138, 3, 153, 122, 126, 75, 205, 104, 52, 6, 193, 74, 188,\n\t\t81, 111, 148, 72, 12, 81, 24, 196, 235, 144, 73, 60, 211,\n\t\t213, 116, 160, 191, 46, 106, 134, 105, 137, 229, 14, 222,\n\t\t171, 99, 45, 48, 171, 14, 183, 234, 81, 45, 93, 158, 114,\n\t\t44, 44, 252, 160, 179, 82, 208, 11, 141, 187, 118, 20, 170,\n\t\t224, 40, 165, 154, 98, 42, 241, 140, 74, 157, 174, 243, 22,\n\t\t238, 207, 167, 203, 7, 75, 130, 56, 65, 167, 15, 115, 39,\n\t\t167, 90, 224, 182, 155, 234, 114, 87, 216, 197, 197, 209,\n\t\t180, 202, 151, 26, 83, 67, 110, 153, 98, 102, 117, 127, 169,\n\t\t253, 107, 221, 245, 216, 183, 85, 97, 250, 166, 206, 234,\n\t\t1, 85, 202, 37, 231, 154, 188, 61, 247, 94, 165, 185, 57,\n\t\t74, 187, 52, 109, 143, 69, 64, 38, 242, 155, 162, 149, 142,\n\t\t210, 46, 110, 47, 181, 150, 91, 150, 204, 129, 158, 79, 5,\n\t\t165, 114, 69, 141, 196, 145, 176, 168, 224, 97, 36, 215, 199,\n\t\t218, 213, 81, 38, 197, 141, 37, 16, 11, 103, 163, 137, 22,\n\t\t231, 207, 18, 197, 44, 88, 38, 201, 155, 36, 118, 41, 184,\n\t\t154, 194, 21, 65, 48, 17, 74, 185, 225, 113, 197, 45, 23,\n\t\t133, 66, 9, 21, 42, 85, 21, 18, 128, 202, 57, 198, 20, 168,\n\t\t97, 199, 38, 135, 249, 49, 229, 94, 96, 87, 120, 126, 37,\n\t\t140, 202, 190, 167, 56, 88, 72, 233, 131, 116, 18, 29, 253,\n\t\t255, 169, 24, 91, 166, 39, 136, 194, 56, 195, 66, 83, 104,\n\t\t94, 1, 222, 225, 122, 5, 131, 104, 5, 215, 221, 129, 41, 198,\n\t\t156, 234, 2, 8, 102, 152, 41, 68, 120, 150, 137, 65, 88, 2,\n\t\t8, 99, 152, 19, 203, 7, 240, 45, 194, 177, 194, 128, 203,\n\t\t24, 206, 239, 99, 12, 159, 71, 15, 202, 248, 94, 48, 150,\n\t\t133, 25, 71, 142, 36, 104, 78, 34, 90, 211, 46, 206, 27, 197,\n\t\t82, 222, 164, 121, 182, 52, 28, 165, 93, 34, 129, 115, 210,\n\t\t103, 153, 12, 178, 117, 210, 95, 234, 229, 189, 64, 28, 5,\n\t\t98, 34, 101, 42, 145, 110, 92, 240, 56, 88, 174, 81, 41, 46,\n\t\t168, 236, 192, 4, 136, 74, 11, 186, 31, 120, 211, 173, 218,\n\t\t172, 23, 248, 90, 137, 168, 121, 143, 229, 20, 42, 160, 90,\n\t\t101, 223, 211, 85, 2, 156, 96, 77, 181, 160, 74, 112, 172,\n\t\t88, 26, 167, 68, 49, 58, 211, 37, 67, 133, 242, 226, 140,\n\t\t161, 16, 202, 52, 67, 211, 237, 18, 102, 69, 74, 56, 112,\n\t\t63, 156, 242, 25, 203, 60, 21, 20, 157, 170, 76, 53, 170,\n\t\t152, 212, 12, 149, 169, 196, 80, 0, 115, 91, 5, 21, 136, 110,\n\t\t123, 182, 195, 49, 232, 130, 9, 66, 193, 112, 84, 141, 114,\n\t\t92, 56, 228, 151, 166, 108, 230, 117, 202, 254, 161, 2, 230,\n\t\t140, 49, 211, 210, 1, 20, 77, 232, 64, 245, 82, 24, 18, 80,\n\t\t223, 146, 231, 229, 237, 223, 47, 31, 102, 218, 229, 195,\n\t\t239, 215, 166, 224, 45, 109, 42, 191, 31, 75, 249, 109, 186,\n\t\t210, 166, 240, 255, 163, 77, 93, 195, 176, 59, 75, 20, 205,\n\t\t51, 12, 33, 240, 247, 52, 45, 163, 91, 190, 186, 101, 49,\n\t\t27, 72, 96, 41, 215, 182, 43, 252, 255, 108, 86, 215, 62,\n\t\t114, 191, 173, 98, 80, 242, 123, 75, 240, 91, 27, 88, 169,\n\t\t178, 213, 190, 136, 224, 186, 96, 140, 92, 211, 184, 152,\n\t\t242, 61, 109, 235, 205, 28, 107, 154, 204, 87, 44, 252, 124,\n\t\t72, 205, 27, 24, 56, 203, 249, 205, 91, 135, 252, 131, 230,\n\t\t127, 44, 107, 52, 96, 255, 50, 28, 216, 247, 67, 203, 103,\n\t\t224, 244, 254, 229, 205, 47, 154, 253, 80, 95, 108, 155, 94,\n\t\t33, 84, 148, 122, 171, 211, 44, 43, 213, 29, 112, 112, 121,\n\t\t127, 116, 118, 219, 61, 96, 111, 126, 113, 121, 191, 155,\n\t\t232, 44, 240, 13, 111, 112, 208, 13, 102, 26, 213, 208, 161,\n\t\t8, 113, 68, 47, 95, 130, 47, 193, 37, 132, 36, 167, 224, 70,\n\t\t116, 6, 221, 133, 208, 6, 244, 98, 145, 69, 87, 191, 194,\n\t\t64, 164, 49, 191, 250, 213, 74, 51, 145, 92, 253, 26, 14,\n\t\t178, 56, 29, 93, 253, 138, 93, 57, 105, 78, 69, 24, 103, 36,\n\t\t14, 69, 58, 156, 146, 190, 146, 222, 104, 56, 48, 255, 208,\n\t\t208, 104, 20, 250, 213, 5, 215, 236, 173, 105, 124, 231, 94,\n\t\t128, 61, 59, 185, 190, 214, 51, 188, 133, 170, 27, 71, 84,\n\t\t143, 244, 188, 64, 109, 193, 181, 250, 107, 6, 203, 11, 236,\n\t\t221, 201, 140, 181, 190, 233, 45, 212, 252, 48, 34, 218, 183,\n\t\t191, 245, 173, 111, 253, 11, 249, 243, 165, 47, 125, 9, 224,\n\t\t3, 119, 222, 249, 129, 59, 191, 245, 252, 85, 165, 188, 56,\n\t\t162, 170, 105, 170, 147, 19, 89, 253, 53, 157, 239, 218, 183,\n\t\t85, 143, 225, 47, 212, 130, 48, 162, 166, 170, 235, 52, 14,\n\t\t2, 121, 166, 117, 61, 63, 83, 253, 50, 186, 120, 17, 208,\n\t\t197, 15, 60, 246, 216, 127, 126, 252, 113, 56, 254, 208, 183,\n\t\t222, 254, 246, 63, 93, 189, 115, 255, 190, 187, 238, 218,\n\t\t183, 127, 60, 70, 252, 17, 92, 130, 127, 138, 124, 212, 69,\n\t\t219, 16, 242, 251, 162, 61, 70, 91, 245, 195, 113, 88, 121,\n\t\t29, 178, 190, 165, 10, 46, 134, 235, 48, 204, 242, 105, 81,\n\t\t218, 143, 51, 183, 61, 202, 250, 238, 32, 205, 162, 91, 94,\n\t\t19, 95, 168, 206, 205, 205, 24, 157, 81, 97, 118, 115, 143,\n\t\t63, 93, 40, 217, 142, 166, 169, 170, 168, 45, 53, 235, 160,\n\t\t85, 74, 254, 122, 239, 219, 223, 212, 240, 23, 151, 197, 26,\n\t\t188, 203, 159, 169, 254, 65, 117, 198, 31, 118, 126, 191,\n\t\t48, 83, 88, 233, 221, 183, 115, 95, 50, 29, 134, 166, 193,\n\t\t235, 184, 207, 186, 5, 208, 203, 7, 118, 45, 255, 244, 139,\n\t\t155, 223, 180, 24, 196, 93, 215, 11, 36, 63, 250, 18, 70,\n\t\t112, 9, 105, 232, 52, 186, 11, 61, 134, 158, 71, 31, 69, 159,\n\t\t66, 63, 143, 254, 57, 250, 99, 132, 188, 220, 138, 29, 27,\n\t\t226, 44, 224, 50, 41, 247, 132, 24, 55, 214, 124, 27, 251,\n\t\t198, 198, 3, 116, 146, 70, 153, 132, 130, 143, 217, 64, 18,\n\t\t1, 188, 44, 7, 119, 249, 32, 6, 66, 38, 149, 31, 111, 76,\n\t\t141, 191, 222, 188, 39, 140, 7, 217, 132, 2, 48, 102, 82,\n\t\t242, 68, 76, 210, 113, 72, 57, 234, 97, 54, 142, 143, 228,\n\t\t119, 77, 110, 37, 223, 127, 125, 2, 8, 202, 100, 72, 94, 14,\n\t\t174, 227, 63, 73, 0, 26, 139, 226, 72, 58, 65, 13, 196, 232,\n\t\t117, 205, 81, 169, 194, 20, 72, 124, 215, 61, 86, 2, 197,\n\t\t84, 28, 85, 109, 168, 74, 67, 85, 29, 213, 20, 165, 122, 171,\n\t\t100, 219, 141, 96, 170, 62, 178, 132, 234, 77, 197, 46, 231,\n\t\t28, 56, 132, 197, 3, 169, 166, 184, 197, 216, 5, 211, 97,\n\t\t11, 134, 208, 76, 187, 180, 249, 37, 175, 226, 43, 182, 102,\n\t\t53, 20, 95, 4, 11, 181, 70, 133, 134, 76, 25, 100, 51, 134,\n\t\t107, 16, 46, 168, 106, 44, 51, 141, 169, 134, 225, 26, 203,\n\t\t186, 107, 24, 174, 222, 51, 92, 93, 119, 141, 163, 206, 226,\n\t\t70, 115, 255, 89, 94, 235, 180, 84, 55, 63, 191, 162, 230,\n\t\t231, 119, 149, 70, 98, 244, 103, 22, 90, 51, 55, 240, 90,\n\t\t24, 43, 100, 1, 206, 187, 166, 169, 112, 85, 124, 160, 113,\n\t\t189, 239, 45, 40, 13, 213, 82, 44, 249, 163, 218, 106, 16,\n\t\t3, 83, 203, 138, 159, 53, 157, 90, 216, 27, 78, 217, 138,\n\t\t0, 14, 173, 70, 2, 158, 131, 169, 197, 4, 102, 211, 123, 21,\n\t\t43, 122, 87, 53, 142, 109, 213, 209, 63, 84, 108, 86, 119,\n\t\t143, 218, 129, 165, 68, 88, 43, 125, 67, 53, 12, 181, 193,\n\t\t4, 167, 166, 218, 224, 42, 55, 212, 70, 254, 36, 52, 228,\n\t\t238, 107, 215, 126, 171, 214, 45, 223, 119, 176, 88, 236,\n\t\t173, 119, 79, 85, 93, 91, 254, 56, 229, 99, 31, 153, 221,\n\t\t152, 122, 145, 97, 22, 248, 51, 232, 154, 220, 207, 2, 117,\n\t\t114, 43, 229, 10, 126, 73, 186, 65, 211, 118, 216, 31, 7,\n\t\t91, 38, 254, 188, 177, 199, 162, 243, 166, 116, 82, 127, 60,\n\t\t236, 127, 190, 157, 85, 241, 99, 251, 201, 76, 201, 169, 132,\n\t\t198, 66, 163, 22, 52, 91, 203, 253, 67, 135, 160, 212, 110,\n\t\t79, 77, 77, 77, 77, 134, 238, 191, 172, 103, 109, 93, 155,\n\t\t43, 84, 205, 176, 226, 52, 186, 126, 179, 113, 232, 158, 67,\n\t\t247, 79, 181, 219, 83, 237, 107, 199, 151, 181, 239, 51, 190,\n\t\t72, 73, 228, 118, 107, 18, 36, 26, 142, 38, 9, 40, 227, 9,\n\t\t157, 127, 180, 6, 163, 222, 214, 224, 49, 130, 15, 7, 181,\n\t\t90, 176, 249, 153, 124, 9, 93, 5, 166, 77, 133, 117, 10, 149,\n\t\t22, 38, 102, 80, 241, 77, 67, 177, 105, 222, 251, 39, 85,\n\t\t119, 214, 140, 26, 2, 94, 190, 82, 248, 92, 80, 219, 252,\n\t\t171, 31, 86, 28, 108, 89, 24, 124, 213, 181, 124, 223, 114,\n\t\t180, 111, 41, 134, 5, 64, 23, 0, 92, 215, 34, 72, 71, 218,\n\t\t229, 75, 240, 107, 112, 9, 237, 70, 251, 209, 97, 116, 12,\n\t\t221, 128, 78, 161, 179, 232, 46, 116, 1, 189, 3, 61, 42, 81,\n\t\t247, 65, 59, 55, 141, 38, 255, 226, 252, 95, 59, 89, 206,\n\t\t205, 188, 13, 72, 134, 114, 185, 8, 201, 6, 244, 250, 113,\n\t\t20, 198, 129, 13, 113, 47, 140, 179, 81, 29, 178, 177, 248,\n\t\t114, 100, 67, 156, 17, 17, 103, 105, 188, 8, 126, 188, 8,\n\t\t117, 88, 4, 169, 191, 28, 15, 211, 188, 120, 180, 1, 34, 150,\n\t\t162, 204, 145, 13, 27, 96, 3, 252, 42, 104, 144, 97, 28, 96,\n\t\t216, 131, 113, 5, 195, 77, 0, 120, 23, 182, 1, 123, 229, 16,\n\t\t72, 57, 129, 50, 144, 247, 97, 56, 139, 57, 110, 77, 97, 104,\n\t\t3, 46, 0, 172, 98, 216, 15, 191, 247, 54, 235, 22, 227, 189,\n\t\t193, 253, 175, 29, 242, 143, 111, 219, 105, 238, 159, 219,\n\t\t174, 173, 31, 187, 158, 158, 60, 87, 174, 65, 84, 192, 231,\n\t\t233, 110, 56, 205, 119, 194, 12, 6, 124, 88, 233, 179, 63,\n\t\t135, 131, 120, 30, 192, 106, 226, 17, 198, 133, 46, 222, 3,\n\t\t176, 15, 142, 97, 208, 139, 112, 55, 198, 102, 21, 191, 31,\n\t\t67, 58, 15, 248, 121, 12, 110, 17, 183, 67, 0, 167, 1, 48,\n\t\t5, 144, 96, 182, 237, 142, 53, 112, 23, 127, 48, 163, 219,\n\t\t222, 191, 188, 249, 55, 107, 183, 109, 255, 151, 107, 123,\n\t\t119, 60, 183, 190, 127, 109, 62, 222, 27, 11, 176, 3, 128,\n\t\t61, 139, 123, 15, 239, 153, 174, 149, 1, 183, 202, 27, 83,\n\t\t187, 228, 220, 67, 92, 126, 3, 94, 131, 151, 81, 9, 13, 242,\n\t\t187, 107, 73, 136, 200, 100, 102, 46, 123, 42, 233, 209, 79,\n\t\t223, 68, 23, 246, 123, 217, 56, 54, 35, 137, 142, 175, 2,\n\t\t115, 166, 43, 171, 157, 237, 239, 186, 238, 61, 199, 174,\n\t\t127, 247, 225, 184, 164, 152, 130, 61, 226, 14, 87, 86, 250,\n\t\t253, 21, 223, 18, 134, 27, 154, 186, 98, 150, 231, 154, 51,\n\t\t107, 106, 185, 21, 175, 59, 211, 119, 239, 58, 249, 240, 59,\n\t\t78, 157, 223, 62, 197, 53, 141, 109, 239, 108, 28, 63, 118,\n\t\t236, 248, 245, 199, 152, 233, 5, 26, 45, 196, 101, 52, 241,\n\t\t69, 255, 3, 94, 129, 167, 80, 5, 221, 139, 158, 65, 31, 70,\n\t\t200, 231, 249, 36, 121, 146, 17, 117, 220, 187, 202, 248,\n\t\t37, 196, 242, 106, 199, 250, 77, 163, 49, 106, 65, 138, 170,\n\t\t38, 89, 47, 150, 157, 182, 224, 185, 29, 41, 85, 238, 151,\n\t\t36, 171, 72, 36, 233, 142, 124, 59, 239, 81, 199, 52, 163,\n\t\t220, 232, 204, 11, 251, 99, 135, 171, 116, 187, 231, 83, 8,\n\t\t24, 139, 66, 145, 94, 24, 140, 189, 143, 235, 208, 223, 87,\n\t\t195, 85, 197, 55, 53, 133, 41, 245, 118, 177, 216, 172, 43,\n\t\t68, 48, 187, 244, 90, 117, 106, 187, 41, 24, 41, 104, 177,\n\t\t199, 184, 150, 207, 14, 133, 211, 176, 99, 219, 176, 108,\n\t\t69, 161, 196, 114, 0, 19, 139, 19, 101, 94, 19, 6, 253, 170,\n\t\t90, 111, 21, 10, 141, 166, 70, 85, 203, 199, 245, 160, 154,\n\t\t122, 90, 98, 24, 155, 255, 151, 171, 68, 48, 88, 26, 62, 213,\n\t\t51, 10, 134, 201, 152, 82, 89, 62, 54, 151, 30, 234, 86, 8,\n\t\t35, 220, 169, 254, 7, 109, 177, 90, 56, 19, 27, 17, 37, 88,\n\t\t80, 166, 55, 107, 77, 131, 132, 28, 220, 214, 82, 56, 85,\n\t\t84, 20, 13, 219, 69, 203, 51, 53, 32, 58, 209, 48, 120, 196,\n\t\t162, 156, 113, 11, 131, 174, 56, 137, 19, 219, 58, 3, 204,\n\t\t97, 186, 186, 124, 108, 182, 115, 112, 169, 170, 8, 55, 32,\n\t\t233, 61, 15, 205, 248, 156, 41, 155, 95, 118, 28, 85, 80,\n\t\t193, 174, 205, 75, 90, 189, 218, 190, 73, 108, 176, 160, 46,\n\t\t161, 36, 54, 238, 109, 64, 28, 101, 19, 3, 229, 17, 172, 43,\n\t\t127, 99, 130, 190, 246, 97, 78, 0, 63, 202, 4, 175, 173, 123,\n\t\t116, 210, 65, 21, 13, 157, 220, 74, 13, 226, 159, 161, 4,\n\t\t240, 189, 27, 188, 218, 213, 130, 183, 228, 63, 213, 175,\n\t\t58, 79, 214, 22, 147, 106, 167, 79, 254, 234, 201, 73, 37,\n\t\t191, 250, 201, 79, 142, 177, 222, 91, 254, 102, 29, 249, 168,\n\t\t44, 51, 5, 175, 163, 95, 201, 91, 239, 88, 102, 125, 3, 70,\n\t\t177, 76, 205, 62, 138, 163, 113, 66, 181, 52, 201, 186, 146,\n\t\t136, 83, 227, 22, 8, 11, 178, 100, 156, 66, 102, 75, 41, 212,\n\t\t151, 252, 25, 177, 14, 171, 48, 144, 160, 136, 97, 110, 105,\n\t\t39, 185, 153, 38, 21, 206, 99, 201, 229, 73, 210, 150, 88,\n\t\t135, 126, 54, 72, 147, 150, 24, 44, 243, 40, 230, 194, 34,\n\t\t249, 13, 137, 101, 228, 54, 202, 70, 217, 82, 23, 218, 163,\n\t\t126, 52, 90, 131, 65, 26, 137, 220, 202, 109, 91, 76, 178,\n\t\t151, 165, 34, 122, 22, 197, 17, 44, 40, 138, 166, 40, 186,\n\t\t16, 154, 162, 6, 108, 44, 227, 95, 103, 140, 231, 107, 199,\n\t\t28, 205, 46, 53, 129, 99, 134, 169, 148, 116, 83, 103, 154,\n\t\t84, 167, 148, 107, 202, 179, 242, 38, 92, 15, 69, 208, 139,\n\t\t62, 51, 8, 213, 114, 147, 174, 68, 113, 53, 214, 67, 151,\n\t\t169, 88, 179, 84, 51, 166, 138, 203, 136, 165, 51, 147, 18,\n\t\t66, 35, 78, 85, 67, 112, 238, 88, 38, 161, 197, 30, 195, 132,\n\t\t105, 134, 19, 155, 68, 97, 169, 160, 84, 175, 2, 165, 20,\n\t\t3, 40, 66, 225, 20, 176, 10, 139, 177, 127, 171, 213, 245,\n\t\t188, 233, 244, 59, 138, 162, 169, 170, 166, 230, 151, 170,\n\t\t50, 38, 47, 79, 207, 47, 145, 49, 230, 27, 83, 65, 173, 206,\n\t\t49, 199, 130, 228, 22, 143, 103, 100, 140, 233, 76, 225, 2,\n\t\t143, 17, 95, 255, 86, 179, 112, 96, 83, 66, 12, 131, 10, 198,\n\t\t0, 172, 106, 220, 33, 192, 76, 213, 170, 4, 54, 5, 207, 174,\n\t\t53, 24, 97, 66, 128, 169, 168, 6, 136, 213, 144, 114, 98,\n\t\t59, 14, 227, 106, 223, 103, 132, 48, 61, 20, 122, 128, 177,\n\t\t10, 174, 170, 85, 204, 74, 147, 41, 140, 0, 182, 12, 215,\n\t\t245, 60, 197, 82, 134, 134, 246, 246, 217, 74, 167, 93, 140,\n\t\t39, 177, 150, 49, 175, 237, 180, 180, 51, 19, 49, 92, 87,\n\t\t134, 163, 116, 208, 85, 210, 33, 205, 68, 187, 171, 140, 209,\n\t\t253, 89, 111, 93, 201, 250, 60, 136, 219, 93, 158, 38, 99,\n\t\t66, 192, 58, 207, 224, 162, 198, 127, 225, 183, 153, 171,\n\t\t24, 76, 16, 2, 140, 73, 96, 19, 211, 21, 135, 1, 185, 87,\n\t\t137, 129, 17, 70, 57, 87, 53, 254, 162, 32, 167, 243, 251,\n\t\t48, 193, 240, 20, 9, 46, 1, 195, 148, 42, 170, 8, 247, 44,\n\t\t156, 49, 124, 211, 226, 6, 179, 201, 221, 59, 14, 114, 94,\n\t\t146, 206, 50, 74, 184, 96, 175, 63, 66, 5, 163, 84, 42, 139,\n\t\t64, 81, 49, 158, 166, 129, 234, 169, 166, 16, 132, 242, 207,\n\t\t144, 49, 13, 201, 84, 60, 126, 157, 113, 136, 133, 138, 69,\n\t\t5, 6, 252, 193, 148, 98, 147, 21, 212, 41, 129, 174, 201,\n\t\t179, 105, 203, 92, 163, 45, 212, 71, 123, 208, 9, 116, 203,\n\t\t247, 142, 231, 34, 150, 10, 138, 109, 145, 72, 1, 30, 169,\n\t\t134, 216, 235, 247, 70, 233, 32, 239, 241, 112, 187, 53, 7,\n\t\t241, 36, 93, 88, 94, 48, 139, 250, 189, 52, 12, 194, 10, 240,\n\t\t246, 80, 246, 168, 241, 68, 165, 186, 223, 187, 218, 76, 44,\n\t\t31, 105, 126, 116, 78, 112, 50, 87, 53, 66, 99, 154, 105,\n\t\t93, 27, 48, 118, 45, 131, 64, 225, 101, 208, 53, 67, 173,\n\t\t215, 64, 53, 162, 199, 24, 99, 20, 78, 114, 76, 24, 191, 214,\n\t\t0, 252, 237, 91, 46, 94, 188, 184, 99, 198, 191, 120, 242,\n\t\t228, 205, 55, 91, 179, 174, 230, 113, 77, 131, 187, 166, 116,\n\t\t93, 213, 102, 47, 42, 218, 185, 101, 32, 140, 177, 155, 40,\n\t\t101, 184, 220, 180, 216, 172, 57, 193, 240, 255, 5, 230, 240,\n\t\t42, 154, 71, 203, 104, 59, 58, 128, 30, 70, 8, 164, 250, 234,\n\t\t24, 252, 150, 182, 38, 238, 115, 30, 213, 33, 138, 187, 176,\n\t\t8, 73, 26, 197, 50, 119, 148, 252, 21, 92, 140, 50, 17, 213,\n\t\t165, 120, 62, 23, 53, 136, 91, 105, 151, 166, 73, 60, 9, 71,\n\t\t11, 46, 214, 161, 46, 19, 139, 137, 40, 142, 70, 121, 231,\n\t\t33, 209, 123, 105, 141, 212, 33, 130, 31, 27, 173, 112, 202,\n\t\t221, 172, 111, 40, 94, 164, 170, 251, 31, 242, 242, 199, 210,\n\t\t84, 84, 172, 87, 26, 4, 239, 85, 102, 218, 128, 67, 173, 41,\n\t\t76, 97, 190, 239, 115, 186, 162, 41, 53, 32, 51, 92, 1, 8,\n\t\t192, 185, 49, 195, 64, 140, 122, 169, 42, 216, 127, 90, 90,\n\t\t125, 231, 241, 195, 35, 133, 22, 14, 21, 11, 17, 172, 30,\n\t\t158, 82, 189, 165, 243, 133, 216, 199, 212, 236, 239, 108,\n\t\t46, 104, 173, 102, 93, 83, 167, 224, 217, 202, 67, 235, 77,\n\t\t127, 176, 183, 162, 16, 142, 79, 238, 246, 7, 174, 67, 92,\n\t\t123, 87, 169, 88, 50, 34, 166, 116, 90, 189, 233, 106, 193,\n\t\t228, 219, 126, 210, 9, 117, 126, 143, 109, 10, 127, 193, 52,\n\t\t131, 99, 131, 195, 249, 112, 83, 44, 207, 68, 240, 96, 225,\n\t\t182, 149, 227, 143, 44, 91, 69, 223, 5, 12, 101, 86, 174,\n\t\t31, 107, 224, 146, 109, 89, 94, 129, 23, 84, 6, 133, 52, 118,\n\t\t8, 225, 91, 190, 187, 220, 134, 118, 80, 38, 243, 39, 231,\n\t\t95, 255, 213, 77, 201, 147, 221, 226, 242, 160, 149, 164,\n\t\t9, 143, 199, 0, 236, 180, 11, 173, 165, 124, 172, 229, 54,\n\t\t200, 196, 200, 89, 228, 143, 146, 150, 13, 137, 204, 84, 0,\n\t\t253, 96, 73, 226, 152, 161, 11, 50, 147, 242, 114, 47, 136,\n\t\t100, 254, 228, 59, 74, 243, 197, 149, 116, 115, 51, 93, 89,\n\t\t73, 127, 99, 54, 154, 162, 12, 40, 245, 67, 79, 213, 2, 179,\n\t\t176, 24, 48, 10, 140, 42, 46, 117, 84, 203, 115, 1, 166, 158,\n\t\t20, 86, 164, 176, 206, 137, 153, 176, 67, 243, 183, 252, 208,\n\t\t243, 67, 99, 92, 144, 50, 91, 199, 240, 114, 113, 190, 52,\n\t\t174, 14, 112, 186, 178, 249, 51, 135, 78, 132, 4, 3, 38, 122,\n\t\t162, 51, 102, 44, 206, 152, 134, 220, 164, 84, 41, 187, 186,\n\t\t93, 194, 16, 128, 102, 132, 186, 18, 68, 7, 223, 44, 169,\n\t\t189, 89, 80, 232, 87, 227, 65, 60, 84, 71, 8, 132, 228, 246,\n\t\t90, 88, 100, 146, 202, 185, 14, 98, 50, 42, 240, 252, 67,\n\t\t194, 165, 155, 55, 56, 61, 191, 175, 125, 246, 108, 251, 230,\n\t\t13, 70, 111, 223, 183, 244, 75, 3, 122, 124, 71, 186, 119,\n\t\t30, 147, 227, 59, 86, 207, 194, 203, 55, 175, 159, 218, 255,\n\t\t54, 149, 25, 58, 187, 121, 237, 230, 253, 111, 83, 121, 252,\n\t\t87, 171, 167, 41, 110, 237, 76, 119, 220, 76, 201, 177, 45,\n\t\t77, 220, 177, 237, 41, 228, 179, 61, 214, 48, 64, 104, 107,\n\t\t108, 218, 34, 160, 119, 98, 145, 214, 161, 157, 138, 246,\n\t\t152, 243, 48, 225, 90, 96, 244, 137, 63, 250, 196, 39, 254,\n\t\t232, 241, 231, 94, 123, 238, 185, 215, 158, 219, 252, 234,\n\t\t205, 157, 155, 63, 182, 104, 247, 150, 173, 126, 196, 247,\n\t\t242, 202, 190, 218, 222, 135, 178, 56, 131, 217, 188, 208,\n\t\t39, 46, 163, 115, 207, 231, 5, 223, 232, 220, 220, 185, 225,\n\t\t182, 187, 239, 126, 64, 179, 170, 246, 147, 181, 189, 213,\n\t\t82, 156, 229, 125, 169, 113, 121, 243, 242, 107, 216, 131,\n\t\t175, 34, 138, 12, 153, 209, 55, 69, 75, 104, 13, 237, 69,\n\t\t71, 209, 67, 232, 11, 232, 203, 8, 141, 34, 158, 100, 241,\n\t\t100, 88, 197, 114, 152, 141, 98, 158, 55, 141, 124, 136, 157,\n\t\t226, 73, 154, 172, 131, 140, 195, 74, 108, 92, 13, 216, 40,\n\t\t26, 135, 44, 243, 55, 50, 121, 216, 40, 25, 73, 191, 119,\n\t\t23, 228, 59, 169, 5, 233, 18, 15, 185, 12, 213, 192, 40, 75,\n\t\t100, 182, 179, 81, 36, 106, 50, 3, 90, 50, 74, 243, 161, 55,\n\t\t239, 179, 147, 49, 207, 58, 255, 78, 104, 40, 7, 220, 49,\n\t\t172, 85, 4, 249, 248, 43, 51, 10, 142, 250, 61, 185, 85, 131,\n\t\t184, 134, 71, 241, 104, 235, 82, 238, 160, 1, 213, 126, 202,\n\t\t80, 20, 67, 87, 197, 70, 76, 176, 206, 20, 248, 128, 77, 52,\n\t\t207, 38, 140, 193, 178, 237, 81, 70, 29, 151, 177, 175, 235,\n\t\t150, 66, 24, 183, 4, 60, 196, 52, 0, 206, 243, 37, 230, 115,\n\t\t68, 211, 49, 14, 110, 50, 108, 149, 112, 238, 40, 36, 112,\n\t\t234, 197, 186, 186, 191, 76, 106, 251, 66, 11, 234, 9, 45,\n\t\t132, 237, 52, 184, 103, 182, 127, 19, 173, 155, 183, 225,\n\t\t105, 192, 115, 64, 107, 166, 34, 152, 33, 76, 203, 226, 182,\n\t\t170, 248, 46, 35, 154, 174, 42, 162, 16, 56, 42, 158, 193,\n\t\t76, 85, 112, 5, 192, 10, 56, 216, 174, 13, 156, 171, 184,\n\t\t131, 49, 51, 85, 22, 132, 22, 85, 124, 206, 136, 227, 235,\n\t\t116, 62, 164, 33, 62, 174, 26, 134, 162, 26, 6, 252, 9, 51,\n\t\t244, 124, 152, 250, 35, 221, 179, 169, 238, 41, 226, 151,\n\t\t84, 170, 40, 94, 190, 56, 162, 96, 195, 162, 4, 235, 191,\n\t\t4, 130, 113, 121, 241, 84, 176, 109, 42, 193, 154, 70, 119,\n\t\t168, 196, 116, 40, 197, 230, 187, 155, 215, 133, 30, 76, 133,\n\t\t5, 12, 129, 89, 13, 75, 172, 183, 17, 181, 15, 243, 222, 84,\n\t\t195, 221, 53, 212, 118, 222, 174, 113, 221, 189, 211, 172,\n\t\t2, 163, 204, 32, 134, 65, 68, 62, 144, 43, 188, 210, 170,\n\t\t148, 113, 80, 1, 112, 232, 3, 88, 99, 84, 103, 251, 137, 174,\n\t\t113, 29, 215, 91, 53, 172, 232, 236, 58, 69, 11, 156, 124,\n\t\t218, 162, 222, 200, 169, 162, 248, 58, 181, 131, 107, 99,\n\t\t4, 11, 104, 77, 230, 160, 239, 69, 147, 252, 72, 178, 255,\n\t\t109, 135, 129, 8, 199, 252, 130, 49, 199, 46, 223, 150, 22,\n\t\t167, 244, 94, 126, 15, 55, 203, 29, 36, 237, 102, 139, 135,\n\t\t110, 16, 245, 155, 189, 17, 220, 72, 25, 136, 90, 100, 78,\n\t\t187, 165, 20, 48, 80, 75, 49, 76, 191, 236, 27, 64, 218, 197,\n\t\t98, 139, 11, 51, 217, 113, 149, 205, 122, 191, 194, 55, 63,\n\t\t195, 21, 133, 195, 57, 174, 64, 72, 201, 11, 249, 212, 220,\n\t\t133, 121, 130, 193, 50, 148, 63, 210, 28, 211, 247, 77, 87,\n\t\t245, 176, 105, 18, 231, 131, 215, 152, 175, 143, 228, 199,\n\t\t228, 199, 51, 85, 201, 63, 87, 225, 242, 111, 192, 207, 195,\n\t\t37, 52, 131, 6, 104, 31, 66, 29, 97, 229, 147, 79, 233, 224,\n\t\t73, 199, 138, 13, 34, 29, 229, 150, 36, 239, 130, 28, 87,\n\t\t150, 107, 96, 67, 54, 138, 146, 49, 216, 35, 31, 109, 73,\n\t\t47, 139, 45, 144, 201, 49, 226, 124, 170, 9, 63, 103, 226,\n\t\t122, 21, 180, 25, 103, 54, 13, 148, 104, 185, 158, 86, 211,\n\t\t118, 247, 200, 92, 223, 110, 8, 115, 175, 227, 255, 176, 193,\n\t\t244, 237, 247, 91, 254, 194, 108, 173, 22, 90, 177, 245, 237,\n\t\t90, 41, 173, 238, 223, 53, 106, 54, 167, 29, 92, 88, 188,\n\t\t244, 211, 190, 233, 249, 79, 224, 198, 212, 250, 66, 26, 239,\n\t\t232, 181, 75, 105, 67, 57, 85, 236, 154, 102, 221, 90, 179,\n\t\t244, 19, 74, 195, 216, 195, 33, 248, 225, 218, 108, 205, 138,\n\t\t173, 112, 243, 162, 59, 29, 91, 94, 186, 43, 25, 206, 166,\n\t\t133, 149, 110, 45, 255, 190, 46, 95, 190, 252, 55, 248, 253,\n\t\t240, 18, 42, 161, 101, 169, 206, 189, 100, 193, 178, 76, 15,\n\t\t22, 242, 54, 31, 251, 233, 251, 117, 72, 112, 254, 176, 246,\n\t\t250, 18, 181, 178, 165, 130, 144, 100, 227, 30, 19, 186, 184,\n\t\t221, 197, 237, 100, 152, 100, 75, 249, 56, 220, 171, 67, 180,\n\t\t1, 53, 12, 187, 187, 243, 183, 10, 120, 4, 60, 12, 143, 191,\n\t\t87, 17, 156, 97, 232, 191, 76, 254, 154, 50, 80, 20, 109,\n\t\t251, 118, 223, 16, 238, 87, 108, 5, 191, 147, 8, 251, 71,\n\t\t52, 5, 63, 129, 153, 106, 115, 15, 200, 79, 252, 24, 80, 48,\n\t\t62, 70, 152, 42, 86, 183, 249, 238, 227, 204, 55, 191, 54,\n\t\t59, 211, 34, 28, 10, 164, 195, 9, 80, 120, 215, 123, 4, 39,\n\t\t24, 118, 191, 151, 192, 156, 4, 91, 83, 53, 252, 75, 159,\n\t\t194, 34, 48, 162, 98, 14, 71, 198, 56, 108, 104, 181, 48,\n\t\t38, 116, 4, 24, 180, 195, 145, 50, 0, 74, 182, 116, 201, 145,\n\t\t156, 95, 237, 66, 167, 209, 147, 232, 135, 208, 167, 190,\n\t\t119, 110, 21, 75, 242, 185, 36, 153, 76, 210, 28, 213, 32,\n\t\t27, 229, 183, 33, 221, 129, 243, 89, 133, 176, 100, 216, 57,\n\t\t239, 150, 216, 32, 153, 149, 180, 47, 25, 235, 169, 129, 12,\n\t\t249, 246, 70, 254, 112, 32, 102, 177, 244, 228, 117, 65, 250,\n\t\t238, 107, 88, 78, 84, 122, 121, 165, 253, 222, 48, 181, 114,\n\t\t163, 83, 18, 159, 128, 45, 37, 173, 46, 27, 74, 223, 127,\n\t\t20, 6, 97, 196, 225, 47, 60, 195, 240, 54, 87, 61, 221, 112,\n\t\t63, 110, 97, 72, 87, 237, 48, 196, 100, 121, 79, 69, 161,\n\t\t128, 129, 181, 5, 35, 156, 228, 83, 20, 166, 232, 202, 206,\n\t\t53, 53, 82, 44, 225, 112, 133, 168, 25, 244, 41, 81, 225,\n\t\t235, 95, 7, 149, 80, 160, 84, 5, 248, 32, 168, 148, 82, 11,\n\t\t8, 133, 128, 199, 179, 213, 162, 73, 139, 42, 111, 204, 44,\n\t\t4, 128, 49, 35, 84, 247, 136, 50, 80, 59, 109, 53, 46, 24,\n\t\t67, 199, 130, 205, 63, 228, 68, 16, 78, 9, 134, 144, 238,\n\t\t99, 4, 18, 120, 217, 240, 54, 159, 244, 117, 221, 131, 31,\n\t\t116, 141, 47, 105, 158, 34, 20, 161, 167, 81, 189, 73, 60,\n\t\t206, 128, 130, 96, 140, 114, 171, 85, 178, 213, 186, 85, 212,\n\t\t93, 85, 165, 165, 58, 43, 149, 57, 197, 152, 136, 130, 253,\n\t\t95, 114, 227, 32, 55, 41, 0, 128, 193, 89, 176, 65, 248, 7,\n\t\t76, 161, 184, 174, 218, 235, 53, 187, 62, 214, 243, 79, 194,\n\t\t49, 182, 86, 99, 199, 246, 251, 189, 18, 142, 253, 131, 11,\n\t\t144, 127, 131, 140, 211, 144, 129, 5, 185, 5, 83, 108, 33,\n\t\t132, 47, 127, 247, 242, 27, 24, 224, 131, 72, 160, 2, 66,\n\t\t158, 5, 201, 58, 142, 216, 22, 167, 70, 138, 70, 197, 209,\n\t\t232, 235, 71, 79, 206, 23, 142, 158, 156, 135, 38, 28, 122,\n\t\t234, 240, 218, 131, 201, 240, 84, 209, 156, 202, 126, 10,\n\t\t148, 7, 6, 205, 59, 239, 31, 52, 110, 51, 141, 235, 158, 62,\n\t\t60, 88, 176, 246, 47, 247, 227, 230, 77, 227, 182, 49, 225,\n\t\t120, 185, 168, 37, 159, 245, 163, 87, 121, 244, 228, 232,\n\t\t84, 133, 96, 227, 123, 230, 79, 113, 63, 12, 198, 253, 216,\n\t\t26, 140, 41, 198, 130, 7, 117, 136, 198, 51, 211, 69, 72,\n\t\t90, 98, 75, 88, 230, 210, 225, 193, 224, 240, 224, 199, 49,\n\t\t4, 51, 132, 126, 210, 41, 59, 237, 194, 230, 175, 21, 218,\n\t\t237, 194, 15, 0, 241, 131, 192, 39, 134, 178, 160, 24, 55,\n\t\t113, 174, 96, 44, 20, 161, 17, 34, 184, 195, 119, 223, 119,\n\t\t248, 240, 125, 135, 65, 29, 228, 71, 83, 192, 83, 152, 236,\n\t\t161, 248, 191, 58, 101, 103, 124, 48, 28, 46, 180, 79, 218,\n\t\t227, 4, 113, 182, 98, 24, 11, 204, 225, 10, 38, 170, 162,\n\t\t8, 140, 21, 198, 54, 15, 231, 21, 72, 59, 220, 185, 252, 6,\n\t\t124, 30, 94, 70, 125, 116, 104, 172, 212, 226, 6, 162, 53,\n\t\t6, 173, 73, 79, 37, 25, 238, 192, 235, 52, 31, 110, 39, 25,\n\t\t65, 228, 128, 158, 143, 254, 254, 48, 127, 224, 121, 5, 143,\n\t\t115, 132, 252, 183, 59, 206, 51, 178, 115, 200, 69, 253, 116,\n\t\t171, 190, 84, 116, 88, 254, 5, 106, 34, 250, 137, 189, 88,\n\t\t47, 132, 211, 167, 202, 212, 36, 148, 19, 237, 200, 167, 234,\n\t\t251, 2, 146, 219, 82, 0, 84, 47, 121, 211, 240, 242, 161,\n\t\t141, 205, 127, 35, 48, 6, 165, 232, 22, 189, 82, 61, 18, 224,\n\t\t24, 129, 237, 91, 6, 81, 107, 106, 18, 6, 177, 90, 245, 40,\n\t\t17, 74, 221, 226, 217, 230, 103, 30, 32, 129, 14, 140, 10,\n\t\t150, 255, 50, 204, 76, 71, 67, 250, 229, 127, 64, 75, 248,\n\t\t34, 28, 147, 217, 48, 14, 160, 83, 232, 60, 186, 11, 221,\n\t\t131, 62, 139, 94, 65, 95, 67, 191, 131, 80, 199, 198, 89,\n\t\t254, 7, 153, 13, 105, 22, 103, 98, 3, 4, 75, 109, 200, 38,\n\t\t200, 235, 172, 87, 99, 203, 121, 95, 189, 1, 227, 146, 98,\n\t\t3, 100, 41, 155, 164, 54, 164, 34, 17, 50, 224, 22, 101, 163,\n\t\t13, 60, 74, 108, 232, 173, 227, 56, 227, 34, 75, 197, 34,\n\t\t216, 120, 3, 98, 249, 39, 214, 113, 54, 170, 9, 89, 81, 154,\n\t\t141, 235, 74, 35, 17, 139, 252, 76, 22, 111, 115, 89, 215,\n\t\t184, 25, 164, 137, 61, 105, 17, 98, 3, 139, 36, 77, 218, 50,\n\t\t178, 41, 178, 20, 95, 36, 109, 220, 38, 109, 220, 34, 59,\n\t\t141, 197, 70, 161, 110, 54, 222, 99, 86, 204, 205, 111, 249,\n\t\t180, 66, 194, 169, 82, 19, 227, 78, 85, 49, 53, 193, 9, 37,\n\t\t105, 135, 145, 93, 100, 10, 79, 225, 14, 238, 224, 81, 161,\n\t\t161, 70, 228, 58, 82, 208, 182, 211, 105, 229, 231, 203, 170,\n\t\t43, 12, 149, 3, 216, 182, 99, 150, 87, 193, 176, 137, 16,\n\t\t26, 141, 184, 8, 127, 90, 177, 63, 70, 167, 149, 198, 182,\n\t\t66, 253, 255, 99, 237, 79, 192, 36, 57, 239, 50, 65, 60, 126,\n\t\t223, 29, 247, 29, 145, 247, 89, 25, 81, 103, 86, 222, 209,\n\t\t71, 117, 85, 117, 171, 47, 169, 213, 106, 93, 150, 117, 75,\n\t\t99, 73, 214, 105, 89, 135, 45, 48, 96, 185, 100, 91, 30, 223,\n\t\t150, 12, 30, 102, 140, 15, 201, 12, 6, 143, 249, 3, 255, 129,\n\t\t97, 36, 179, 216, 109, 48, 187, 130, 5, 15, 54, 24, 45, 94,\n\t\t123, 17, 48, 198, 92, 15, 215, 99, 88, 63, 24, 170, 246, 137,\n\t\t47, 178, 90, 45, 3, 179, 51, 243, 108, 101, 101, 28, 95, 100,\n\t\t70, 102, 198, 241, 125, 239, 239, 122, 95, 173, 154, 176,\n\t\t58, 97, 106, 195, 227, 134, 42, 24, 197, 8, 225, 180, 162,\n\t\t211, 150, 25, 55, 87, 104, 157, 58, 168, 83, 233, 229, 159,\n\t\t157, 35, 117, 161, 91, 234, 146, 69, 202, 9, 251, 154, 205,\n\t\t56, 0, 97, 238, 67, 194, 228, 76, 240, 14, 222, 130, 38, 39,\n\t\t156, 233, 186, 142, 224, 243, 37, 241, 229, 26, 246, 112,\n\t\t29, 5, 168, 66, 30, 126, 20, 61, 134, 174, 188, 102, 231,\n\t\t123, 209, 247, 122, 11, 9, 212, 59, 8, 90, 213, 210, 34, 66,\n\t\t132, 114, 202, 154, 8, 87, 171, 164, 134, 60, 84, 197, 1,\n\t\t14, 223, 136, 94, 127, 29, 170, 209, 26, 186, 25, 219, 200,\n\t\t217, 68, 46, 48, 77, 103, 166, 15, 224, 65, 162, 18, 168,\n\t\t1, 230, 199, 54, 60, 213, 72, 22, 207, 186, 200, 71, 223,\n\t\t135, 94, 123, 15, 218, 58, 134, 150, 12, 51, 132, 28, 249,\n\t\t231, 182, 40, 110, 97, 100, 24, 104, 165, 143, 174, 88, 67,\n\t\t107, 43, 11, 86, 138, 122, 41, 106, 129, 160, 130, 49, 130,\n\t\t151, 23, 209, 214, 177, 115, 128, 137, 16, 24, 195, 182, 10,\n\t\t128, 169, 138, 74, 196, 64, 12, 97, 16, 154, 109, 185, 144,\n\t\t92, 92, 179, 87, 86, 58, 74, 166, 108, 41, 103, 20, 5, 164,\n\t\t100, 158, 45, 179, 17, 231, 36, 159, 89, 1, 126, 109, 137,\n\t\t134, 183, 96, 150, 205, 233, 60, 115, 12, 154, 204, 21, 247,\n\t\t162, 100, 223, 203, 245, 178, 75, 117, 6, 138, 74, 92, 139,\n\t\t210, 87, 111, 217, 54, 127, 94, 53, 12, 117, 114, 44, 160,\n\t\t212, 114, 201, 73, 159, 58, 54, 33, 118, 233, 249, 105, 222,\n\t\t92, 15, 72, 222, 234, 142, 132, 206, 117, 99, 238, 36, 251,\n\t\t205, 183, 220, 112, 227, 227, 249, 19, 78, 57, 156, 170, 142,\n\t\t248, 225, 154, 105, 184, 198, 163, 11, 194, 81, 41, 255, 211,\n\t\t142, 108, 43, 243, 21, 195, 53, 58, 178, 169, 121, 157, 21,\n\t\t247, 212, 240, 51, 242, 253, 119, 23, 239, 125, 139, 242,\n\t\t74, 173, 212, 146, 50, 154, 179, 153, 190, 50, 163, 35, 75,\n\t\t108, 96, 114, 0, 76, 86, 32, 155, 245, 129, 217, 185, 85,\n\t\t104, 65, 19, 120, 145, 120, 217, 206, 59, 181, 21, 72, 210,\n\t\t162, 28, 179, 1, 155, 176, 14, 23, 59, 19, 206, 249, 118,\n\t\t201, 38, 212, 114, 62, 192, 109, 123, 243, 58, 66, 108, 135,\n\t\t168, 42, 113, 44, 66, 130, 163, 99, 97, 24, 2, 74, 249, 116,\n\t\t226, 172, 232, 92, 87, 199, 22, 113, 44, 74, 130, 239, 138,\n\t\t40, 63, 211, 246, 69, 73, 56, 130, 28, 49, 171, 31, 226, 142,\n\t\t32, 220, 182, 57, 17, 14, 239, 62, 82, 68, 152, 106, 151,\n\t\t137, 133, 216, 185, 190, 36, 136, 112, 68, 123, 174, 63, 167,\n\t\t92, 135, 118, 64, 81, 218, 146, 211, 250, 172, 242, 175, 148,\n\t\t7, 149, 119, 43, 63, 164, 124, 90, 81, 50, 41, 5, 212, 205,\n\t\t111, 240, 238, 164, 232, 183, 235, 208, 205, 186, 251, 34,\n\t\t202, 251, 20, 198, 82, 215, 130, 143, 139, 210, 195, 57, 144,\n\t\t77, 187, 97, 55, 187, 232, 124, 102, 99, 254, 47, 110, 47,\n\t\t50, 185, 10, 237, 207, 58, 116, 131, 121, 203, 116, 188, 47,\n\t\t26, 58, 39, 71, 102, 60, 204, 63, 167, 112, 196, 135, 221,\n\t\t201, 220, 95, 81, 135, 238, 178, 107, 146, 220, 92, 1, 72,\n\t\t152, 218, 91, 213, 72, 138, 0, 11, 75, 143, 189, 32, 213,\n\t\t184, 48, 92, 113, 99, 2, 192, 108, 39, 212, 13, 67, 45, 217,\n\t\t54, 129, 244, 42, 97, 154, 66, 88, 134, 56, 148, 0, 183, 157,\n\t\t80, 51, 13, 181, 228, 216, 120, 190, 133, 8, 213, 20, 83,\n\t\t211, 104, 183, 74, 151, 231, 119, 55, 79, 184, 214, 77, 12,\n\t\t227, 172, 48, 116, 6, 183, 164, 8, 212, 192, 181, 186, 132,\n\t\t105, 24, 210, 47, 49, 53, 118, 0, 83, 226, 49, 195, 87, 237,\n\t\t203, 125, 33, 136, 27, 248, 238, 128, 230, 214, 142, 160,\n\t\t183, 133, 166, 80, 245, 222, 162, 169, 169, 198, 201, 7, 66,\n\t\t67, 247, 66, 211, 56, 247, 79, 26, 109, 147, 25, 81, 87, 215,\n\t\t75, 45, 29, 97, 161, 17, 38, 144, 163, 154, 134, 62, 70, 72,\n\t\t101, 76, 37, 253, 32, 240, 75, 148, 34, 100, 8, 149, 168,\n\t\t199, 231, 254, 226, 111, 161, 163, 240, 33, 101, 93, 201,\n\t\t164, 183, 47, 238, 166, 249, 36, 99, 185, 93, 156, 200, 154,\n\t\t74, 217, 127, 70, 177, 31, 23, 62, 92, 233, 225, 137, 27,\n\t\t40, 100, 124, 150, 165, 60, 218, 2, 196, 194, 218, 165, 175,\n\t\t237, 151, 235, 237, 119, 198, 11, 237, 232, 174, 206, 9, 88,\n\t\t62, 252, 218, 122, 123, 216, 88, 49, 70, 159, 253, 97, 223,\n\t\t185, 244, 208, 35, 247, 63, 114, 237, 171, 111, 252, 250,\n\t\t237, 179, 179, 9, 252, 109, 181, 122, 238, 181, 237, 133,\n\t\t246, 123, 34, 239, 193, 83, 154, 152, 246, 8, 116, 198, 181,\n\t\t108, 105, 249, 72, 75, 11, 203, 237, 254, 53, 17, 52, 254,\n\t\t208, 118, 174, 120, 167, 235, 54, 173, 213, 81, 223, 18, 105,\n\t\t214, 62, 248, 94, 97, 124, 223, 199, 129, 77, 165, 15, 235,\n\t\t239, 209, 14, 188, 67, 161, 146, 75, 125, 185, 208, 41, 165,\n\t\t189, 41, 205, 250, 192, 25, 239, 22, 73, 110, 49, 221, 103,\n\t\t122, 72, 217, 188, 196, 128, 167, 125, 96, 20, 237, 236, 158,\n\t\t223, 61, 15, 219, 143, 207, 62, 117, 156, 34, 168, 223, 52,\n\t\t237, 30, 155, 250, 187, 223, 234, 110, 108, 116, 251, 157,\n\t\t73, 243, 135, 172, 112, 233, 201, 179, 103, 159, 92, 26, 194,\n\t\t240, 131, 31, 131, 31, 252, 246, 236, 133, 23, 102, 47, 236,\n\t\t156, 10, 15, 16, 180, 60, 138, 151, 106, 195, 225, 176, 62,\n\t\t120, 189, 30, 109, 93, 122, 233, 86, 3, 142, 31, 13, 174,\n\t\t149, 121, 148, 123, 223, 217, 123, 9, 81, 121, 175, 15, 10,\n\t\t171, 12, 91, 144, 223, 231, 82, 232, 200, 207, 214, 97, 19,\n\t\t15, 103, 125, 36, 233, 180, 108, 104, 2, 227, 41, 111, 130,\n\t\t84, 77, 132, 95, 169, 119, 232, 65, 58, 172, 239, 190, 176,\n\t\t191, 192, 110, 35, 220, 20, 156, 33, 203, 163, 182, 79, 239,\n\t\t86, 253, 19, 97, 104, 28, 114, 38, 75, 94, 228, 150, 31, 133,\n\t\t103, 150, 234, 187, 191, 94, 95, 90, 170, 195, 164, 190, 180,\n\t\t251, 99, 226, 123, 56, 213, 24, 165, 158, 67, 169, 229, 145,\n\t\t135, 105, 253, 206, 122, 100, 54, 157, 193, 17, 115, 91, 119,\n\t\t30, 84, 20, 182, 247, 143, 123, 123, 232, 73, 120, 66, 25,\n\t\t42, 155, 202, 107, 149, 31, 85, 158, 83, 94, 80, 148, 76,\n\t\t18, 143, 219, 192, 186, 203, 121, 15, 131, 186, 157, 33, 75,\n\t\t178, 100, 22, 143, 226, 233, 44, 225, 185, 65, 153, 20, 2,\n\t\t85, 197, 237, 103, 195, 104, 150, 205, 166, 73, 55, 97, 49,\n\t\t139, 98, 41, 60, 213, 153, 78, 14, 195, 76, 134, 49, 198,\n\t\t243, 217, 33, 136, 66, 198, 89, 218, 101, 235, 192, 89, 74,\n\t\t37, 242, 153, 196, 5, 221, 85, 218, 103, 105, 31, 77, 147,\n\t\t89, 145, 134, 84, 135, 32, 55, 110, 100, 90, 102, 220, 96,\n\t\t210, 95, 104, 21, 88, 63, 77, 114, 179, 64, 242, 102, 206,\n\t\t162, 89, 82, 128, 138, 185, 255, 35, 251, 57, 202, 136, 137,\n\t\t48, 66, 58, 99, 97, 73, 3, 127, 9, 161, 213, 90, 88, 193,\n\t\t229, 40, 44, 179, 28, 195, 44, 134, 152, 84, 35, 15, 174,\n\t\t139, 74, 24, 5, 190, 93, 3, 112, 159, 215, 240, 8, 128, 196,\n\t\t26, 90, 104, 35, 221, 213, 81, 187, 135, 116, 31, 16, 134,\n\t\t9, 210, 61, 29, 181, 219, 72, 87, 246, 218, 37, 161, 250,\n\t\t90, 55, 82, 49, 71, 57, 188, 98, 14, 227, 118, 4, 105, 83,\n\t\t132, 49, 65, 20, 89, 161, 65, 116, 91, 109, 144, 128, 154,\n\t\t68, 165, 56, 176, 61, 125, 252, 190, 75, 16, 156, 121, 46,\n\t\t163, 140, 29, 121, 254, 36, 76, 222, 191, 174, 169, 13, 239,\n\t\t82, 10, 196, 159, 36, 148, 71, 101, 194, 209, 223, 106, 142,\n\t\t142, 8, 82, 145, 105, 8, 83, 64, 165, 89, 235, 32, 230, 4,\n\t\t21, 172, 33, 240, 9, 53, 221, 160, 138, 241, 93, 190, 46,\n\t\t124, 10, 182, 103, 122, 17, 232, 63, 70, 8, 16, 208, 223,\n\t\t247, 62, 29, 64, 255, 192, 7, 244, 28, 161, 255, 132, 1, 96,\n\t\t188, 235, 93, 6, 98, 6, 17, 186, 138, 5, 226, 6, 141, 57,\n\t\t66, 24, 97, 68, 17, 136, 138, 27, 117, 112, 142, 100, 52,\n\t\t46, 225, 170, 174, 250, 2, 24, 80, 68, 25, 46, 55, 187, 247,\n\t\t36, 75, 167, 70, 68, 224, 238, 176, 30, 16, 203, 137, 85,\n\t\t224, 196, 80, 25, 85, 207, 134, 24, 147, 87, 228, 33, 118,\n\t\t149, 201, 63, 27, 229, 206, 1, 56, 239, 74, 231, 248, 120,\n\t\t159, 231, 135, 173, 64, 167, 15, 71, 64, 214, 196, 70, 240,\n\t\t76, 110, 251, 239, 238, 228, 83, 216, 94, 220, 118, 183, 25,\n\t\t108, 111, 131, 121, 208, 221, 94, 220, 182, 74, 125, 219,\n\t\t211, 195, 184, 95, 178, 224, 153, 11, 175, 218, 49, 253, 221,\n\t\t189, 238, 242, 98, 122, 230, 143, 187, 233, 226, 233, 216,\n\t\t183, 169, 99, 5, 129, 109, 23, 49, 204, 253, 186, 136, 45,\n\t\t229, 106, 229, 238, 151, 125, 122, 241, 44, 205, 164, 6, 105,\n\t\t202, 147, 117, 224, 131, 81, 3, 141, 134, 145, 13, 209, 120,\n\t\t208, 73, 57, 75, 147, 33, 143, 27, 120, 204, 165, 36, 105,\n\t\t156, 69, 57, 76, 156, 113, 11, 119, 250, 184, 155, 35, 212,\n\t\t204, 34, 73, 167, 143, 210, 108, 212, 96, 240, 109, 57, 136,\n\t\t99, 126, 68, 175, 234, 194, 210, 171, 186, 193, 122, 28, 81,\n\t\t74, 145, 5, 38, 2, 4, 30, 86, 3, 179, 139, 24, 161, 72, 175,\n\t\t26, 154, 174, 87, 141, 206, 88, 183, 23, 235, 7, 129, 169,\n\t\t154, 169, 89, 220, 4, 27, 60, 205, 211, 116, 121, 241, 8,\n\t\t161, 113, 141, 169, 96, 129, 193, 77, 110, 96, 10, 169, 132,\n\t\t25, 95, 89, 14, 215, 216, 10, 194, 171, 124, 13, 33, 181,\n\t\t14, 128, 136, 49, 6, 56, 45, 16, 109, 170, 185, 201, 185,\n\t\t198, 87, 17, 94, 99, 107, 170, 83, 95, 11, 249, 140, 10, 169,\n\t\t50, 141, 55, 8, 102, 92, 53, 175, 162, 185, 177, 15, 24, 16,\n\t\t204, 48, 34, 132, 115, 93, 161, 123, 127, 185, 247, 34, 82,\n\t\t224, 243, 138, 41, 149, 201, 166, 202, 57, 69, 241, 103, 163,\n\t\t162, 140, 163, 195, 89, 31, 124, 201, 2, 18, 229, 61, 122,\n\t\t3, 88, 198, 164, 115, 48, 77, 164, 83, 49, 205, 143, 103,\n\t\t126, 246, 70, 81, 152, 77, 102, 23, 19, 85, 68, 33, 147, 138,\n\t\t133, 232, 138, 83, 47, 92, 202, 168, 35, 182, 126, 106, 147,\n\t\t187, 228, 222, 219, 95, 83, 70, 174, 137, 162, 87, 93, 171,\n\t\t17, 243, 61, 170, 129, 181, 115, 87, 123, 216, 114, 81, 120,\n\t\t235, 143, 8, 67, 85, 13, 245, 148, 227, 156, 24, 14, 79, 56,\n\t\t14, 32, 171, 215, 105, 247, 108, 4, 111, 190, 228, 20, 119,\n\t\t9, 63, 114, 136, 51, 123, 247, 174, 250, 255, 239, 118, 141,\n\t\t24, 234, 181, 63, 92, 193, 174, 73, 177, 225, 225, 202, 7,\n\t\t175, 210, 12, 162, 221, 242, 19, 67, 166, 170, 236, 116, 62,\n\t\t249, 21, 77, 8, 237, 212, 96, 101, 101, 112, 42, 95, 106,\n\t\t15, 219, 174, 211, 26, 205, 185, 170, 20, 19, 41, 240, 168,\n\t\t34, 20, 87, 41, 203, 90, 128, 145, 114, 72, 81, 252, 160,\n\t\t208, 136, 137, 178, 185, 66, 120, 198, 71, 82, 19, 38, 27,\n\t\t207, 231, 189, 249, 60, 150, 174, 163, 226, 5, 60, 159, 127,\n\t\t178, 147, 156, 10, 143, 215, 203, 143, 215, 203, 237, 222,\n\t\t73, 239, 95, 215, 42, 151, 158, 12, 191, 93, 171, 156, 58,\n\t\t233, 3, 212, 203, 39, 79, 122, 139, 65, 89, 61, 121, 210,\n\t\t123, 83, 173, 2, 39, 79, 250, 112, 38, 168, 223, 80, 46, 151,\n\t\t237, 160, 126, 195, 219, 202, 246, 240, 134, 252, 57, 203,\n\t\t39, 239, 182, 92, 117, 120, 195, 172, 228, 12, 111, 152, 227,\n\t\t193, 223, 131, 207, 195, 179, 138, 163, 52, 149, 77, 229,\n\t\t118, 69, 201, 54, 209, 104, 31, 216, 116, 210, 62, 196, 163,\n\t\t252, 76, 216, 40, 95, 206, 102, 52, 183, 142, 100, 1, 103,\n\t\t146, 238, 75, 5, 102, 179, 150, 12, 30, 132, 65, 90, 96, 224,\n\t\t233, 68, 110, 237, 72, 59, 39, 216, 119, 163, 72, 103, 238,\n\t\t39, 16, 86, 53, 179, 70, 4, 199, 7, 177, 32, 151, 44, 217,\n\t\t132, 33, 174, 14, 38, 68, 96, 78, 32, 70, 102, 100, 137, 31,\n\t\t251, 49, 110, 104, 58, 227, 24, 33, 90, 245, 41, 92, 202,\n\t\t218, 54, 69, 215, 33, 134, 170, 68, 148, 253, 136, 118, 70,\n\t\t238, 138, 14, 64, 120, 47, 228, 143, 169, 245, 208, 97, 8,\n\t\t254, 1, 33, 64, 82, 213, 10, 144, 123, 61, 194, 212, 33, 185,\n\t\t145, 224, 82, 250, 54, 43, 118, 115, 91, 135, 115, 85, 51,\n\t\t248, 143, 127, 146, 251, 21, 10, 192, 27, 122, 235, 93, 159,\n\t\t248, 255, 11, 12, 128, 137, 213, 172, 120, 28, 128, 59, 125,\n\t\t118, 232, 148, 21, 181, 8, 0, 144, 200, 137, 249, 53, 133,\n\t\t191, 172, 56, 70, 137, 212, 219, 84, 36, 251, 132, 100, 41,\n\t\t236, 20, 37, 226, 211, 89, 17, 60, 24, 23, 100, 10, 242, 23,\n\t\t71, 61, 86, 84, 229, 207, 229, 247, 89, 156, 15, 51, 32, 13,\n\t\t235, 162, 226, 21, 62, 7, 128, 181, 178, 81, 174, 59, 214,\n\t\t231, 244, 206, 97, 61, 255, 230, 234, 90, 203, 75, 39, 7,\n\t\t120, 175, 190, 8, 6, 95, 197, 218, 238, 121, 85, 24, 108,\n\t\t109, 141, 26, 38, 235, 47, 184, 159, 209, 177, 202, 74, 151,\n\t\t28, 171, 48, 13, 33, 147, 95, 123, 246, 247, 233, 59, 140,\n\t\t94, 217, 116, 53, 132, 16, 31, 247, 236, 181, 203, 111, 213,\n\t\t186, 83, 147, 99, 64, 122, 99, 105, 20, 241, 220, 62, 31,\n\t\t169, 53, 146, 3, 72, 155, 99, 244, 69, 86, 22, 12, 33, 162,\n\t\t153, 22, 197, 0, 138, 226, 94, 84, 239, 250, 255, 198, 181,\n\t\t172, 184, 227, 176, 155, 77, 187, 97, 246, 93, 115, 250, 63,\n\t\t208, 190, 179, 243, 189, 15, 253, 219, 11, 147, 221, 231,\n\t\t254, 91, 235, 240, 204, 142, 120, 232, 161, 239, 189, 48,\n\t\t89, 252, 151, 87, 247, 121, 135, 126, 9, 190, 3, 191, 32,\n\t\t249, 122, 186, 138, 178, 96, 201, 64, 85, 132, 251, 168, 56,\n\t\t71, 13, 20, 71, 44, 155, 245, 113, 110, 188, 68, 51, 184,\n\t\t156, 45, 77, 219, 108, 105, 122, 224, 212, 163, 7, 84, 113,\n\t\t230, 192, 250, 107, 111, 56, 189, 130, 240, 71, 78, 139, 198,\n\t\t244, 204, 225, 218, 138, 91, 25, 127, 224, 139, 211, 54, 93,\n\t\t158, 182, 217, 238, 151, 200, 149, 143, 159, 220, 190, 171,\n\t\t26, 145, 133, 205, 91, 38, 175, 251, 225, 231, 59, 151, 140,\n\t\t250, 85, 109, 233, 51, 111, 52, 14, 95, 100, 91, 229, 199,\n\t\t46, 85, 214, 21, 5, 102, 185, 253, 24, 241, 124, 84, 144,\n\t\t36, 2, 249, 117, 48, 175, 241, 100, 179, 132, 237, 91, 138,\n\t\t23, 232, 135, 55, 49, 71, 232, 114, 164, 137, 216, 21, 154,\n\t\t89, 169, 46, 164, 25, 192, 229, 211, 181, 244, 85, 65, 16,\n\t\t92, 42, 35, 64, 31, 123, 251, 173, 183, 190, 253, 86, 72,\n\t\t48, 226, 228, 122, 75, 19, 110, 44, 52, 8, 202, 7, 150, 85,\n\t\t125, 118, 69, 231, 225, 32, 8, 126, 79, 134, 138, 254, 241,\n\t\t214, 252, 133, 23, 114, 48, 206, 194, 115, 138, 166, 180,\n\t\t20, 229, 34, 6, 170, 52, 183, 86, 216, 188, 56, 99, 86, 164,\n\t\t4, 5, 12, 46, 143, 210, 184, 51, 26, 157, 24, 94, 219, 233,\n\t\t15, 78, 13, 71, 157, 238, 210, 180, 219, 93, 91, 171, 205,\n\t\t185, 82, 190, 180, 214, 237, 244, 251, 157, 238, 116, 169,\n\t\t219, 25, 13, 79, 14, 231, 49, 174, 61, 244, 48, 188, 85, 89,\n\t\t82, 174, 87, 238, 81, 222, 168, 60, 161, 60, 165, 40, 217,\n\t\t188, 179, 62, 12, 69, 48, 62, 31, 137, 187, 69, 76, 167, 16,\n\t\t217, 180, 160, 107, 65, 202, 146, 172, 1, 178, 117, 29, 34,\n\t\t198, 103, 82, 121, 62, 138, 251, 82, 212, 63, 110, 136, 56,\n\t\t153, 101, 172, 129, 50, 169, 181, 177, 63, 152, 231, 99, 65,\n\t\t58, 103, 241, 147, 136, 45, 187, 168, 238, 146, 135, 47, 115,\n\t\t216, 31, 134, 209, 135, 134, 148, 115, 178, 238, 7, 76, 165,\n\t\t182, 87, 213, 251, 203, 65, 54, 93, 215, 103, 35, 67, 59,\n\t\t53, 90, 120, 184, 119, 248, 170, 175, 179, 131, 245, 250,\n\t\t42, 23, 158, 6, 229, 82, 83, 100, 11, 155, 147, 171, 3, 107,\n\t\t54, 240, 170, 45, 4, 152, 81, 141, 234, 84, 7, 106, 68, 166,\n\t\t72, 54, 23, 143, 255, 217, 34, 211, 52, 182, 200, 85, 245,\n\t\t205, 154, 86, 35, 76, 123, 171, 26, 169, 106, 164, 62, 196,\n\t\t73, 133, 112, 78, 202, 198, 83, 156, 46, 82, 206, 29, 170,\n\t\t210, 208, 183, 213, 213, 169, 41, 136, 189, 210, 116, 111,\n\t\t24, 174, 28, 236, 161, 14, 222, 92, 237, 213, 24, 91, 170,\n\t\t39, 157, 32, 232, 235, 221, 237, 117, 162, 78, 196, 37, 113,\n\t\t5, 49, 107, 92, 23, 150, 161, 105, 76, 16, 14, 209, 65, 43,\n\t\t26, 47, 216, 102, 227, 89, 141, 21, 159, 201, 180, 69, 173,\n\t\t166, 49, 82, 211, 202, 242, 35, 175, 45, 81, 206, 105, 137,\n\t\t202, 60, 2, 182, 247, 29, 229, 45, 232, 9, 48, 149, 154, 50,\n\t\t82, 174, 81, 110, 85, 190, 71, 249, 17, 69, 201, 34, 11, 229,\n\t\t182, 188, 68, 69, 201, 10, 72, 65, 39, 73, 132, 141, 120,\n\t\t135, 69, 146, 17, 59, 228, 93, 169, 95, 127, 24, 56, 235,\n\t\t102, 163, 200, 134, 2, 60, 21, 45, 43, 208, 41, 196, 151,\n\t\t102, 249, 97, 221, 146, 84, 25, 249, 217, 203, 102, 99, 62,\n\t\t202, 47, 114, 121, 184, 167, 210, 103, 80, 8, 165, 110, 65,\n\t\t60, 222, 95, 218, 68, 249, 73, 146, 47, 146, 31, 91, 236,\n\t\t198, 6, 246, 101, 76, 173, 200, 108, 49, 172, 235, 170, 142,\n\t\t176, 29, 84, 176, 94, 238, 98, 189, 167, 186, 166, 246, 97,\n\t\t67, 211, 12, 29, 17, 16, 70, 185, 197, 105, 205, 91, 100,\n\t\t216, 248, 134, 237, 98, 139, 250, 7, 13, 7, 19, 199, 24, 16,\n\t\t172, 135, 132, 116, 9, 168, 128, 15, 113, 21, 97, 248, 48,\n\t\t38, 85, 82, 118, 22, 144, 248, 93, 183, 98, 80, 21, 9, 31,\n\t\t19, 29, 27, 106, 224, 34, 225, 19, 2, 149, 31, 188, 148, 18,\n\t\t253, 152, 237, 18, 13, 235, 142, 186, 110, 187, 4, 19, 127,\n\t\t138, 177, 30, 97, 0, 160, 109, 14, 2, 253, 87, 61, 246, 205,\n\t\t146, 110, 169, 214, 109, 250, 91, 117, 166, 219, 61, 223,\n\t\t71, 4, 85, 22, 203, 65, 24, 235, 221, 216, 154, 120, 150,\n\t\t231, 155, 166, 46, 88, 147, 233, 220, 234, 80, 124, 135, 237,\n\t\t63, 41, 186, 94, 211, 105, 11, 138, 23, 85, 123, 91, 80, 252,\n\t\t154, 203, 66, 61, 182, 22, 133, 197, 35, 203, 240, 76, 29,\n\t\t35, 202, 26, 236, 98, 174, 102, 162, 148, 20, 197, 109, 99,\n\t\t158, 66, 55, 30, 219, 16, 15, 99, 27, 214, 161, 219, 132,\n\t\t45, 232, 102, 176, 211, 253, 232, 71, 33, 250, 27, 246, 253,\n\t\t252, 33, 242, 73, 50, 155, 226, 33, 187, 227, 53, 230, 235,\n\t\t31, 133, 103, 118, 223, 48, 153, 192, 198, 58, 94, 239, 195,\n\t\t17, 219, 76, 46, 171, 215, 63, 56, 146, 185, 50, 47, 192,\n\t\t79, 195, 115, 74, 69, 170, 174, 94, 84, 119, 204, 248, 133,\n\t\t162, 242, 77, 128, 235, 163, 163, 221, 219, 166, 119, 63,\n\t\t253, 244, 221, 211, 219, 186, 71, 35, 115, 86, 95, 222, 220,\n\t\t92, 246, 147, 198, 251, 175, 238, 38, 43, 79, 127, 241, 233,\n\t\t149, 164, 123, 117, 220, 220, 188, 118, 83, 22, 2, 49, 37,\n\t\t218, 251, 5, 180, 12, 191, 172, 244, 149, 55, 41, 159, 6,\n\t\t3, 254, 13, 124, 68, 81, 252, 36, 147, 92, 195, 241, 172,\n\t\t160, 113, 224, 82, 96, 79, 122, 141, 243, 169, 44, 224, 8,\n\t\t89, 60, 168, 67, 146, 178, 56, 161, 131, 56, 225, 5, 173,\n\t\t88, 194, 153, 13, 193, 176, 15, 233, 104, 50, 148, 1, 164,\n\t\t172, 35, 29, 163, 3, 62, 72, 103, 89, 52, 100, 185, 181, 54,\n\t\t30, 101, 155, 36, 27, 13, 199, 18, 74, 204, 253, 234, 113,\n\t\t196, 139, 4, 142, 36, 157, 244, 97, 202, 226, 193, 112, 159,\n\t\t121, 105, 150, 69, 60, 255, 50, 140, 207, 98, 57, 206, 230,\n\t\t227, 111, 54, 27, 74, 22, 239, 34, 155, 36, 202, 2, 233, 63,\n\t\t72, 210, 65, 62, 2, 116, 210, 78, 55, 199, 53, 137, 172, 74,\n\t\t201, 119, 153, 246, 81, 154, 255, 172, 67, 16, 205, 199, 243,\n\t\t193, 40, 158, 215, 90, 68, 179, 116, 50, 141, 194, 6, 240,\n\t\t14, 143, 198, 210, 114, 76, 210, 89, 47, 73, 103, 113, 178,\n\t\t79, 168, 52, 73, 166, 57, 48, 146, 49, 157, 108, 159, 95,\n\t\t105, 159, 28, 42, 255, 101, 251, 180, 75, 60, 40, 120, 152,\n\t\t44, 196, 243, 163, 53, 203, 143, 215, 40, 102, 33, 139, 178,\n\t\t209, 108, 44, 5, 83, 45, 72, 243, 31, 51, 79, 86, 227, 146,\n\t\t69, 58, 203, 187, 197, 252, 116, 78, 54, 81, 81, 254, 200,\n\t\t59, 221, 77, 148, 205, 226, 188, 135, 188, 26, 44, 192, 106,\n\t\t135, 64, 24, 135, 225, 1, 139, 219, 170, 1, 4, 106, 42, 66,\n\t\t6, 66, 154, 222, 212, 29, 202, 112, 75, 55, 89, 0, 191, 141,\n\t\t188, 170, 173, 35, 230, 160, 94, 185, 26, 0, 170, 168, 208,\n\t\t89, 170, 84, 48, 50, 160, 214, 140, 44, 0, 103, 9, 48, 1,\n\t\t68, 8, 195, 38, 215, 52, 6, 24, 192, 68, 82, 24, 213, 49,\n\t\t131, 32, 254, 42, 130, 213, 211, 43, 221, 134, 135, 48, 32,\n\t\t21, 92, 110, 4, 186, 105, 47, 17, 96, 80, 237, 105, 16, 199,\n\t\t45, 46, 92, 183, 229, 120, 21, 15, 177, 47, 181, 116, 174,\n\t\t218, 165, 54, 64, 169, 74, 193, 173, 52, 6, 28, 212, 130,\n\t\t228, 215, 241, 0, 17, 157, 89, 154, 77, 45, 12, 32, 16, 97,\n\t\t224, 8, 226, 3, 35, 249, 183, 6, 36, 116, 172, 171, 170, 95,\n\t\t226, 170, 102, 218, 152, 107, 140, 3, 7, 136, 29, 3, 171,\n\t\t204, 52, 118, 223, 195, 156, 216, 213, 40, 119, 89, 135, 129,\n\t\t138, 184, 131, 41, 1, 12, 24, 187, 162, 226, 51, 12, 204,\n\t\t51, 92, 2, 136, 1, 0, 246, 98, 130, 60, 46, 16, 104, 42, 71,\n\t\t132, 27, 12, 249, 40, 212, 181, 160, 197, 28, 193, 16, 163,\n\t\t128, 0, 235, 4, 90, 134, 65, 180, 220, 6, 101, 182, 99, 235,\n\t\t106, 108, 24, 126, 149, 134, 29, 141, 248, 173, 70, 161, 197,\n\t\t234, 170, 54, 2, 238, 135, 76, 252, 0, 112, 141, 9, 184, 165,\n\t\t225, 153, 98, 169, 164, 51, 143, 16, 106, 30, 110, 244, 124,\n\t\t7, 8, 84, 53, 132, 194, 216, 209, 12, 208, 189, 10, 134, 40,\n\t\t0, 112, 22, 106, 149, 224, 122, 68, 40, 161, 64, 24, 136,\n\t\t90, 99, 13, 1, 68, 24, 250, 101, 27, 3, 118, 77, 23, 193,\n\t\t90, 29, 8, 8, 68, 9, 214, 41, 35, 0, 42, 198, 20, 0, 24, 128,\n\t\t170, 126, 30, 240, 117, 38, 119, 204, 24, 16, 1, 205, 80,\n\t\t33, 108, 14, 167, 76, 95, 89, 198, 180, 105, 214, 28, 39,\n\t\t138, 68, 187, 185, 80, 173, 234, 94, 3, 83, 71, 175, 185,\n\t\t61, 35, 64, 46, 7, 10, 54, 165, 141, 22, 231, 77, 27, 120,\n\t\t213, 115, 26, 26, 49, 132, 73, 116, 139, 104, 42, 203, 109,\n\t\t120, 211, 245, 48, 32, 67, 5, 1, 0, 92, 56, 62, 19, 16, 152,\n\t\t0, 20, 180, 182, 169, 1, 210, 69, 85, 103, 12, 253, 184, 174,\n\t\t1, 245, 66, 71, 39, 1, 3, 13, 8, 216, 26, 194, 110, 64, 117,\n\t\t130, 107, 158, 40, 123, 130, 128, 227, 233, 14, 225, 142,\n\t\t5, 72, 183, 163, 144, 32, 215, 178, 109, 128, 188, 191, 229,\n\t\t158, 107, 226, 18, 6, 20, 32, 68, 48, 246, 128, 10, 130, 28,\n\t\t196, 17, 82, 61, 16, 26, 32, 160, 194, 137, 1, 88, 100, 16,\n\t\t108, 32, 0, 67, 7, 172, 86, 17, 193, 4, 113, 102, 35, 192,\n\t\t92, 215, 41, 243, 132, 206, 192, 149, 184, 35, 239, 76, 97,\n\t\t71, 113, 148, 154, 210, 87, 14, 41, 151, 41, 55, 42, 10, 140,\n\t\t195, 238, 84, 230, 50, 201, 210, 220, 40, 230, 23, 81, 73,\n\t\t166, 251, 27, 209, 43, 55, 202, 238, 177, 119, 81, 230, 193,\n\t\t212, 157, 36, 233, 119, 251, 25, 30, 159, 76, 172, 53, 59,\n\t\t40, 197, 129, 213, 183, 183, 189, 186, 239, 91, 154, 45, 222,\n\t\t58, 153, 152, 125, 203, 12, 140, 56, 180, 214, 236, 109, 191,\n\t\t230, 11, 71, 181, 124, 56, 254, 178, 27, 193, 55, 43, 73,\n\t\t82, 217, 221, 201, 167, 112, 224, 175, 66, 151, 9, 53, 41,\n\t\t199, 169, 42, 168, 115, 200, 242, 3, 211, 12, 52, 251, 195,\n\t\t178, 157, 133, 117, 231, 162, 13, 194, 214, 130, 95, 244,\n\t\t205, 61, 69, 238, 74, 49, 253, 86, 82, 217, 83, 228, 126,\n\t\t148, 74, 162, 16, 89, 123, 250, 18, 124, 94, 41, 41, 117,\n\t\t229, 148, 114, 185, 162, 196, 185, 173, 69, 139, 132, 192,\n\t\t116, 92, 8, 182, 103, 221, 108, 204, 210, 176, 203, 101, 176,\n\t\t79, 230, 123, 117, 59, 125, 148, 77, 39, 153, 4, 2, 97, 48,\n\t\t154, 78, 82, 89, 200, 31, 207, 18, 246, 197, 102, 108, 113,\n\t\t51, 183, 20, 44, 140, 25, 62, 167, 169, 147, 142, 254, 204,\n\t\t247, 184, 63, 83, 189, 241, 178, 54, 179, 35, 131, 35, 8,\n\t\t0, 199, 55, 25, 237, 164, 12, 246, 213, 128, 205, 192, 10,\n\t\t156, 107, 147, 89, 89, 123, 114, 155, 151, 22, 182, 19, 96,\n\t\t68, 215, 77, 77, 165, 64, 28, 76, 56, 30, 151, 195, 21, 10,\n\t\t63, 209, 108, 190, 244, 169, 204, 176, 3, 21, 107, 72, 235,\n\t\t70, 70, 105, 189, 249, 21, 7, 128, 7, 142, 166, 85, 221, 242,\n\t\t210, 194, 101, 141, 168, 137, 231, 254, 21, 4, 240, 121, 105,\n\t\t151, 116, 148, 84, 81, 226, 233, 56, 204, 79, 159, 204, 99,\n\t\t159, 14, 71, 210, 164, 146, 197, 150, 221, 201, 102, 14, 40,\n\t\t241, 176, 59, 29, 191, 250, 178, 119, 110, 110, 194, 111,\n\t\t133, 229, 99, 247, 109, 140, 175, 172, 185, 250, 90, 35, 187,\n\t\t101, 227, 246, 217, 77, 143, 109, 31, 184, 230, 171, 183,\n\t\t221, 214, 185, 236, 178, 127, 125, 228, 155, 219, 143, 221,\n\t\t52, 187, 125, 227, 150, 172, 177, 166, 187, 181, 171, 70,\n\t\t27, 247, 29, 43, 135, 222, 53, 187, 191, 127, 219, 62, 7,\n\t\t80, 81, 207, 108, 42, 161, 210, 83, 110, 145, 172, 23, 5,\n\t\t67, 206, 38, 26, 95, 160, 194, 238, 185, 73, 26, 95, 92, 70,\n\t\t63, 73, 214, 161, 143, 87, 128, 55, 160, 9, 125, 176, 97,\n\t\t150, 165, 29, 110, 161, 176, 129, 198, 121, 215, 189, 14,\n\t\t13, 52, 148, 214, 48, 227, 241, 104, 19, 101, 176, 100, 235,\n\t\t220, 224, 132, 107, 84, 127, 52, 178, 237, 200, 134, 197,\n\t\t67, 71, 172, 221, 175, 135, 205, 102, 8, 215, 135, 205, 75,\n\t\t61, 77, 213, 98, 215, 34, 4, 251, 45, 198, 86, 239, 89, 177,\n\t\t195, 62, 234, 246, 136, 17, 34, 125, 177, 172, 113, 43, 38,\n\t\t4, 81, 210, 185, 102, 197, 182, 204, 182, 235, 84, 93, 19,\n\t\t253, 110, 201, 21, 166, 96, 154, 32, 78, 201, 117, 75, 255,\n\t\t113, 119, 58, 62, 56, 104, 70, 112, 99, 212, 108, 238, 126,\n\t\t123, 225, 140, 239, 11, 157, 98, 194, 92, 74, 203, 200, 23,\n\t\t129, 133, 171, 162, 114, 110, 129, 26, 145, 174, 17, 155,\n\t\t81, 192, 200, 231, 46, 213, 66, 45, 80, 117, 157, 92, 148,\n\t\t55, 167, 41, 177, 140, 31, 231, 248, 122, 50, 157, 204, 252,\n\t\t194, 116, 9, 131, 152, 103, 209, 31, 220, 252, 214, 183, 222,\n\t\t252, 7, 239, 184, 113, 122, 230, 204, 125, 103, 236, 248,\n\t\t234, 50, 60, 243, 246, 255, 252, 228, 75, 228, 166, 39, 118,\n\t\t159, 57, 115, 223, 153, 51, 211, 118, 237, 76, 96, 204, 109,\n\t\t146, 207, 193, 83, 146, 83, 34, 80, 20, 232, 78, 227, 113,\n\t\t24, 172, 128, 59, 30, 197, 97, 34, 231, 83, 120, 255, 251,\n\t\t7, 183, 255, 214, 47, 254, 162, 231, 218, 222, 109, 183, 61,\n\t\t12, 173, 247, 254, 228, 227, 191, 132, 20, 124, 45, 218, 253,\n\t\t233, 59, 21, 69, 209, 246, 190, 179, 247, 123, 104, 231, 21,\n\t\t118, 235, 154, 50, 84, 166, 202, 65, 229, 136, 162, 244, 186,\n\t\t211, 241, 116, 206, 92, 176, 175, 162, 67, 243, 225, 53, 149,\n\t\t133, 93, 125, 200, 218, 163, 44, 153, 109, 229, 163, 241,\n\t\t44, 234, 93, 164, 245, 147, 191, 26, 110, 61, 118, 236, 216,\n\t\t83, 199, 110, 60, 246, 212, 49, 120, 181, 41, 202, 151, 44,\n\t\t125, 234, 177, 7, 15, 84, 99, 6, 63, 91, 11, 109, 98, 169,\n\t\t86, 143, 250, 43, 187, 198, 177, 167, 142, 61, 117, 204, 56,\n\t\t246, 219, 135, 159, 62, 114, 228, 233, 195, 135, 79, 111,\n\t\t108, 108, 108, 220, 169, 218, 168, 15, 119, 220, 123, 172,\n\t\t125, 99, 170, 151, 14, 69, 150, 86, 93, 192, 36, 56, 44, 255,\n\t\t78, 111, 108, 92, 136, 195, 189, 4, 207, 42, 235, 210, 55,\n\t\t116, 169, 162, 244, 248, 180, 45, 125, 36, 40, 237, 231, 134,\n\t\t17, 159, 23, 67, 36, 115, 207, 73, 3, 75, 209, 106, 198, 199,\n\t\t211, 56, 204, 246, 217, 135, 249, 56, 199, 6, 69, 82, 108,\n\t\t196, 25, 188, 244, 212, 238, 207, 220, 112, 26, 179, 48, 14,\n\t\t48, 25, 52, 185, 15, 186, 103, 240, 118, 169, 218, 33, 196,\n\t\t106, 159, 174, 46, 45, 150, 98, 129, 109, 143, 184, 157, 179,\n\t\t55, 117, 214, 119, 191, 97, 122, 150, 229, 165, 143, 222,\n\t\t152, 56, 72, 83, 187, 3, 91, 11, 134, 179, 209, 213, 219,\n\t\t183, 92, 141, 121, 169, 182, 238, 197, 177, 129, 29, 6, 186,\n\t\t237, 235, 113, 103, 185, 92, 142, 39, 54, 65, 134, 234, 112,\n\t\t236, 244, 55, 235, 155, 215, 31, 205, 102, 213, 63, 244, 77,\n\t\t211, 55, 191, 240, 154, 227, 237, 177, 109, 47, 32, 163, 52,\n\t\t57, 114, 236, 21, 57, 205, 76, 49, 149, 72, 233, 42, 75, 202,\n\t\t80, 57, 154, 255, 214, 76, 230, 106, 176, 44, 71, 130, 179,\n\t\t136, 111, 162, 124, 45, 201, 44, 196, 147, 233, 96, 50, 205,\n\t\t225, 90, 14, 224, 114, 180, 19, 197, 9, 79, 190, 155, 89,\n\t\t1, 205, 127, 253, 141, 124, 177, 94, 41, 95, 242, 99, 209,\n\t\t40, 174, 181, 183, 63, 36, 106, 253, 74, 40, 90, 103, 78,\n\t\t148, 250, 93, 163, 123, 252, 82, 158, 174, 45, 170, 35, 158,\n\t\t78, 74, 13, 88, 31, 176, 255, 229, 21, 36, 10, 210, 60, 254,\n\t\t90, 115, 108, 45, 172, 186, 103, 154, 222, 74, 143, 59, 127,\n\t\t108, 183, 26, 106, 54, 180, 212, 183, 241, 250, 66, 176, 56,\n\t\t193, 128, 66, 171, 204, 205, 67, 157, 254, 157, 81, 171, 55,\n\t\t208, 153, 245, 145, 139, 165, 248, 254, 94, 154, 226, 202,\n\t\t133, 28, 245, 103, 164, 246, 138, 226, 22, 238, 179, 220,\n\t\t228, 154, 142, 231, 76, 227, 97, 247, 211, 143, 156, 216,\n\t\t108, 109, 220, 118, 232, 211, 159, 190, 238, 182, 59, 175,\n\t\t186, 127, 27, 158, 57, 185, 117, 211, 242, 149, 219, 201,\n\t\t246, 191, 218, 218, 190, 61, 83, 20, 177, 247, 157, 189, 255,\n\t\t13, 126, 95, 242, 159, 150, 149, 5, 101, 85, 249, 79, 202,\n\t\t255, 170, 252, 174, 242, 199, 138, 2, 155, 16, 231, 29, 115,\n\t\t98, 161, 164, 91, 8, 140, 68, 172, 143, 162, 130, 157, 43,\n\t\t239, 148, 46, 196, 156, 89, 202, 120, 48, 30, 141, 163, 172,\n\t\t15, 179, 108, 32, 233, 115, 243, 235, 102, 54, 206, 129, 115,\n\t\t142, 163, 11, 191, 106, 50, 229, 65, 103, 202, 146, 45, 232,\n\t\t88, 48, 220, 207, 87, 27, 39, 41, 147, 10, 38, 217, 44, 235,\n\t\t227, 84, 38, 131, 161, 241, 38, 150, 125, 215, 38, 92, 216,\n\t\t155, 196, 186, 185, 209, 24, 133, 249, 206, 242, 117, 30,\n\t\t244, 138, 88, 18, 43, 18, 164, 80, 60, 233, 75, 31, 111, 199,\n\t\t66, 124, 36, 173, 142, 44, 41, 180, 217, 243, 119, 103, 155,\n\t\t0, 7, 161, 100, 0, 211, 8, 82, 29, 75, 103, 191, 74, 3, 102,\n\t\t86, 0, 184, 225, 184, 159, 51, 85, 89, 169, 242, 111, 76,\n\t\t77, 51, 85, 184, 66, 159, 6, 247, 33, 97, 181, 183, 5, 195,\n\t\t72, 104, 152, 88, 58, 6, 204, 37, 66, 82, 209, 218, 218, 105,\n\t\t64, 85, 108, 218, 80, 99, 17, 32, 183, 238, 8, 33, 4, 216,\n\t\t45, 251, 53, 238, 65, 157, 149, 58, 154, 204, 66, 66, 8, 197,\n\t\t8, 40, 3, 228, 52, 195, 112, 97, 141, 3, 65, 186, 129, 176,\n\t\t202, 17, 194, 116, 182, 220, 89, 196, 192, 41, 130, 136, 18,\n\t\t2, 212, 82, 13, 46, 8, 222, 253, 75, 48, 163, 186, 157, 114,\n\t\t225, 153, 252, 148, 74, 56, 25, 51, 154, 99, 51, 76, 49, 65,\n\t\t170, 5, 64, 197, 251, 216, 98, 216, 141, 4, 85, 79, 51, 35,\n\t\t132, 167, 52, 66, 177, 252, 52, 140, 40, 54, 128, 74, 167,\n\t\t36, 65, 15, 168, 150, 74, 4, 225, 170, 106, 169, 170, 245,\n\t\t225, 106, 237, 158, 0, 144, 198, 124, 3, 128, 81, 198, 17,\n\t\t210, 29, 142, 144, 96, 160, 107, 200, 176, 152, 165, 10, 174,\n\t\t83, 203, 210, 184, 97, 32, 208, 12, 13, 80, 249, 150, 122,\n\t\t205, 174, 68, 156, 104, 42, 119, 244, 128, 147, 170, 145,\n\t\t91, 172, 186, 197, 209, 162, 42, 2, 29, 17, 67, 16, 138, 64,\n\t\t152, 132, 246, 193, 242, 115, 192, 107, 84, 48, 234, 169,\n\t\t174, 79, 84, 166, 50, 206, 5, 255, 184, 227, 83, 132, 192,\n\t\t180, 207, 113, 2, 26, 173, 212, 134, 40, 80, 33, 7, 150, 22,\n\t\t85, 169, 120, 149, 9, 0, 126, 104, 247, 185, 134, 40, 59,\n\t\t55, 239, 171, 254, 22, 237, 192, 123, 228, 125, 108, 41, 13,\n\t\t69, 241, 243, 254, 190, 235, 210, 81, 20, 119, 55, 161, 55,\n\t\t28, 187, 221, 89, 150, 230, 198, 223, 180, 61, 153, 206, 94,\n\t\t125, 244, 138, 59, 225, 68, 119, 13, 254, 3, 30, 131, 118,\n\t\t237, 85, 173, 202, 237, 71, 95, 125, 234, 56, 188, 17, 195,\n\t\t187, 207, 61, 252, 196, 53, 240, 67, 106, 191, 183, 176, 174,\n\t\t238, 222, 223, 89, 31, 220, 11, 112, 223, 13, 142, 184, 77,\n\t\t222, 67, 231, 65, 192, 121, 37, 84, 20, 95, 178, 236, 141,\n\t\t185, 212, 98, 155, 142, 11, 151, 89, 248, 127, 120, 33, 123,\n\t\t149, 113, 233, 173, 103, 207, 110, 79, 87, 170, 112, 191,\n\t\t225, 89, 91, 55, 125, 227, 27, 55, 157, 62, 184, 69, 174,\n\t\t122, 153, 59, 230, 179, 50, 231, 61, 218, 87, 164, 130, 148,\n\t\t79, 251, 104, 19, 251, 25, 79, 121, 246, 210, 205, 111, 189,\n\t\t230, 201, 147, 103, 58, 75, 154, 145, 204, 206, 30, 123, 211,\n\t\t131, 7, 223, 244, 32, 60, 243, 166, 235, 142, 223, 191, 226,\n\t\t47, 159, 171, 92, 114, 226, 228, 145, 65, 109, 247, 79, 119,\n\t\t142, 108, 60, 177, 57, 199, 1, 59, 146, 123, 40, 84, 170,\n\t\t74, 55, 31, 171, 66, 41, 6, 151, 63, 248, 120, 127, 57, 150,\n\t\t11, 208, 14, 229, 86, 216, 217, 222, 57, 255, 201, 157, 27,\n\t\t43, 149, 124, 86, 217, 174, 236, 126, 21, 118, 118, 100, 17,\n\t\t245, 78, 101, 103, 103, 251, 195, 59, 149, 157, 237, 202,\n\t\t246, 141, 240, 201, 157, 157, 157, 253, 28, 218, 175, 195,\n\t\t14, 188, 79, 89, 82, 54, 148, 51, 138, 146, 229, 63, 61, 8,\n\t\t89, 83, 10, 206, 205, 142, 192, 36, 239, 76, 230, 85, 123,\n\t\t124, 159, 133, 48, 176, 32, 128, 249, 246, 117, 200, 198,\n\t\t249, 59, 162, 38, 224, 125, 130, 164, 113, 54, 142, 199, 241,\n\t\t35, 183, 216, 103, 129, 29, 254, 217, 186, 42, 26, 201, 116,\n\t\t186, 188, 126, 66, 51, 243, 107, 10, 192, 126, 95, 77, 215,\n\t\t218, 234, 131, 128, 112, 212, 48, 180, 229, 21, 205, 104,\n\t\t208, 36, 52, 195, 132, 190, 52, 254, 24, 194, 4, 88, 167,\n\t\t139, 65, 251, 8, 30, 215, 71, 253, 230, 178, 240, 77, 205,\n\t\t178, 90, 128, 16, 236, 254, 99, 135, 128, 250, 67, 2, 171,\n\t\t139, 191, 137, 136, 76, 188, 60, 184, 166, 69, 145, 182, 214,\n\t\t211, 146, 196, 82, 46, 142, 143, 233, 74, 12, 87, 193, 127,\n\t\t82, 148, 236, 2, 45, 218, 197, 20, 105, 19, 201, 94, 45, 31,\n\t\t131, 96, 200, 7, 193, 80, 150, 171, 228, 43, 172, 104, 9,\n\t\t3, 94, 131, 176, 19, 12, 88, 13, 242, 255, 97, 192, 131, 176,\n\t\t19, 72, 39, 65, 192, 7, 44, 96, 67, 27, 66, 22, 242, 14, 175,\n\t\t129, 5, 33, 27, 6, 140, 15, 25, 15, 134, 22, 132, 3, 158,\n\t\t111, 31, 48, 217, 26, 118, 25, 31, 44, 35, 182, 140, 134,\n\t\t172, 187, 140, 135, 157, 110, 135, 201, 52, 206, 65, 103,\n\t\t40, 231, 203, 168, 59, 88, 134, 100, 153, 14, 147, 124, 13,\n\t\t134, 73, 119, 25, 186, 73, 58, 152, 74, 119, 67, 119, 48,\n\t\t201, 173, 10, 89, 53, 49, 77, 210, 193, 48, 55, 247, 39, 242,\n\t\t49, 77, 59, 201, 6, 172, 195, 32, 25, 38, 211, 73, 58, 73,\n\t\t210, 201, 180, 51, 201, 151, 147, 13, 72, 242, 133, 13, 200,\n\t\t151, 166, 131, 73, 58, 25, 166, 131, 188, 101, 48, 25, 110,\n\t\t192, 116, 50, 149, 75, 147, 98, 53, 157, 76, 243, 182, 151,\n\t\t75, 92, 138, 135, 228, 193, 30, 68, 67, 233, 59, 192, 115,\n\t\t66, 188, 238, 63, 157, 119, 167, 69, 45, 239, 17, 40, 234,\n\t\t126, 147, 110, 71, 22, 253, 118, 194, 32, 14, 255, 249, 183,\n\t\t200, 121, 225, 168, 152, 202, 40, 155, 252, 192, 223, 36,\n\t\t36, 34, 228, 189, 114, 250, 225, 62, 252, 55, 254, 36, 13,\n\t\t16, 146, 143, 195, 119, 21, 243, 57, 83, 143, 156, 230, 221,\n\t\t16, 2, 2, 68, 54, 92, 120, 160, 130, 147, 40, 223, 126, 231,\n\t\t6, 122, 121, 111, 152, 160, 127, 249, 163, 250, 152, 8, 65,\n\t\t8, 195, 156, 99, 180, 60, 46, 85, 202, 229, 241, 10, 17, 204,\n\t\t179, 49, 35, 17, 169, 239, 63, 53, 67, 165, 14, 141, 8, 50,\n\t\t9, 241, 168, 208, 69, 69, 104, 245, 139, 94, 96, 5, 205, 197,\n\t\t48, 90, 93, 141, 194, 197, 102, 240, 91, 100, 130, 241, 132,\n\t\t20, 211, 55, 31, 61, 39, 191, 128, 172, 25, 41, 190, 41, 6,\n\t\t196, 228, 111, 145, 141, 23, 190, 127, 190, 101, 190, 29,\n\t\t16, 72, 157, 168, 226, 41, 100, 141, 52, 224, 253, 245, 235,\n\t\t220, 226, 203, 187, 215, 204, 27, 246, 103, 68, 192, 203,\n\t\t239, 154, 127, 0, 130, 121, 16, 85, 174, 191, 252, 113, 5,\n\t\t199, 54, 155, 127, 39, 0, 41, 100, 93, 44, 2, 129, 115, 71,\n\t\t9, 213, 4, 161, 20, 83, 134, 160, 161, 83, 170, 53, 49, 163,\n\t\t142, 143, 119, 255, 238, 52, 33, 149, 167, 8, 169, 84, 228,\n\t\t179, 129, 49, 27, 98, 140, 17, 193, 194, 52, 5, 190, 113,\n\t\t127, 3, 121, 170, 66, 200, 233, 216, 111, 186, 42, 189, 188,\n\t\t22, 199, 181, 203, 169, 234, 54, 125, 5, 239, 253, 213, 222,\n\t\t31, 194, 255, 14, 63, 169, 168, 138, 173, 44, 74, 52, 18,\n\t\t49, 206, 250, 40, 101, 60, 201, 102, 116, 150, 223, 190, 108,\n\t\t159, 205, 41, 199, 109, 76, 6, 252, 96, 96, 191, 174, 49,\n\t\t181, 213, 94, 215, 122, 126, 80, 27, 134, 1, 188, 153, 209,\n\t\t234, 227, 63, 251, 248, 161, 59, 14, 79, 214, 85, 45, 80,\n\t\t45, 247, 172, 45, 224, 118, 123, 218, 120, 157, 173, 90, 221,\n\t\t94, 175, 49, 124, 85, 24, 252, 59, 77, 29, 30, 188, 225, 45,\n\t\t111, 185, 225, 240, 29, 135, 202, 148, 225, 90, 169, 61, 177,\n\t\t133, 228, 33, 252, 2, 58, 13, 231, 149, 7, 148, 239, 81, 222,\n\t\t54, 215, 238, 227, 83, 150, 134, 146, 184, 84, 150, 172, 228,\n\t\t224, 98, 154, 164, 225, 220, 184, 151, 89, 235, 178, 77, 102,\n\t\t224, 247, 241, 17, 152, 204, 178, 209, 88, 74, 4, 89, 88,\n\t\t18, 23, 241, 80, 150, 138, 201, 122, 82, 201, 67, 200, 167,\n\t\t121, 27, 146, 37, 198, 51, 118, 33, 163, 107, 50, 167, 36,\n\t\t204, 145, 39, 154, 121, 207, 62, 106, 24, 143, 62, 235, 81,\n\t\t93, 35, 238, 219, 95, 163, 27, 211, 107, 135, 39, 14, 230,\n\t\t199, 125, 178, 121, 197, 38, 215, 185, 135, 109, 219, 184,\n\t\t179, 78, 72, 253, 78, 161, 27, 58, 246, 44, 125, 243, 138,\n\t\t205, 137, 70, 169, 158, 28, 104, 221, 123, 149, 161, 111,\n\t\t223, 123, 196, 37, 154, 254, 124, 96, 113, 141, 107, 214,\n\t\t191, 167, 42, 35, 86, 96, 89, 112, 217, 112, 250, 134, 31,\n\t\t39, 31, 4, 248, 32, 249, 241, 55, 76, 135, 58, 37, 218, 218,\n\t\t240, 206, 15, 153, 63, 128, 200, 61, 230, 241, 59, 14, 28,\n\t\t127, 164, 197, 116, 141, 214, 239, 222, 60, 241, 250, 242,\n\t\t205, 88, 181, 68, 160, 85, 91, 66, 21, 118, 227, 73, 132,\n\t\t158, 108, 216, 76, 112, 163, 30, 105, 129, 225, 145, 155,\n\t\t203, 15, 157, 56, 114, 119, 157, 106, 58, 11, 183, 175, 89,\n\t\t187, 238, 237, 254, 61, 4, 253, 128, 184, 236, 145, 75, 6,\n\t\t107, 26, 161, 159, 50, 53, 41, 58, 210, 33, 76, 165, 154,\n\t\t212, 9, 47, 198, 208, 167, 36, 255, 90, 71, 81, 122, 163,\n\t\t6, 138, 95, 166, 38, 229, 73, 225, 67, 206, 166, 217, 40,\n\t\t170, 67, 178, 2, 83, 56, 238, 215, 44, 6, 199, 239, 190, 101,\n\t\t231, 137, 155, 111, 58, 186, 149, 60, 120, 197, 21, 217, 36,\n\t\t129, 222, 184, 52, 121, 108, 199, 169, 196, 230, 213, 111,\n\t\t191, 249, 150, 183, 29, 219, 74, 175, 120, 232, 138, 133,\n\t\t206, 195, 211, 65, 99, 249, 134, 139, 235, 70, 28, 165, 37,\n\t\t117, 32, 34, 89, 89, 80, 200, 130, 228, 104, 244, 187, 97,\n\t\t63, 159, 76, 187, 97, 103, 63, 138, 26, 74, 51, 122, 144,\n\t\t13, 198, 53, 40, 248, 130, 210, 36, 157, 172, 200, 42, 181,\n\t\t108, 6, 171, 152, 121, 182, 179, 108, 86, 98, 132, 87, 235,\n\t\t113, 219, 255, 225, 118, 188, 251, 51, 113, 187, 29, 195,\n\t\t149, 113, 251, 177, 58, 128, 88, 172, 37, 19, 141, 193, 198,\n\t\t164, 31, 231, 176, 179, 93, 173, 116, 25, 170, 2, 119, 207,\n\t\t181, 47, 1, 8, 122, 109, 93, 71, 220, 156, 182, 150, 215,\n\t\t130, 206, 185, 151, 223, 219, 254, 118, 231, 63, 47, 130,\n\t\t87, 91, 94, 8, 75, 135, 54, 16, 90, 69, 164, 66, 202, 126,\n\t\t139, 51, 174, 181, 192, 53, 234, 190, 230, 74, 44, 82, 219,\n\t\t251, 28, 220, 1, 159, 87, 6, 202, 86, 62, 162, 143, 198, 163,\n\t\t48, 42, 4, 35, 167, 179, 201, 58, 4, 44, 180, 128, 179, 62,\n\t\t164, 147, 249, 15, 142, 163, 108, 58, 246, 101, 225, 84, 154,\n\t\t248, 157, 11, 88, 58, 63, 38, 43, 168, 98, 98, 109, 154, 46,\n\t\t143, 60, 93, 58, 32, 179, 206, 248, 242, 21, 164, 58, 231,\n\t\t14, 215, 70, 13, 1, 176, 10, 240, 218, 222, 165, 39, 92, 253,\n\t\t169, 149, 227, 4, 119, 22, 131, 163, 165, 78, 149, 243, 141,\n\t\t53, 60, 176, 117, 85, 31, 214, 82, 190, 44, 197, 23, 91, 93,\n\t\t132, 210, 171, 14, 247, 90, 217, 118, 220, 112, 49, 28, 217,\n\t\t253, 185, 119, 149, 57, 116, 234, 62, 188, 235, 196, 209,\n\t\t225, 85, 190, 142, 221, 248, 85, 253, 3, 219, 243, 115, 36,\n\t\t235, 38, 10, 27, 91, 233, 225, 177, 79, 219, 188, 237, 199,\n\t\t56, 133, 107, 254, 253, 39, 126, 116, 247, 119, 96, 118, 213,\n\t\t238, 175, 181, 175, 249, 200, 85, 79, 66, 117, 247, 27, 241,\n\t\t251, 225, 163, 239, 223, 253, 235, 247, 231, 227, 127, 121,\n\t\t239, 60, 252, 177, 180, 241, 85, 197, 81, 124, 69, 233, 165,\n\t\t180, 167, 66, 126, 62, 105, 3, 108, 72, 51, 200, 98, 56, 241,\n\t\t53, 40, 237, 254, 20, 192, 238, 94, 4, 159, 179, 192, 218,\n\t\t56, 122, 116, 247, 215, 191, 182, 241, 59, 95, 127, 246, 167,\n\t\t246, 148, 61, 69, 47, 193, 103, 74, 47, 106, 139, 90, 103,\n\t\t123, 123, 247, 55, 190, 190, 33, 185, 230, 94, 128, 109, 120,\n\t\t78, 89, 86, 174, 146, 249, 98, 5, 23, 82, 24, 240, 201, 76,\n\t\t186, 188, 166, 19, 73, 174, 86, 148, 250, 75, 186, 30, 54,\n\t\t236, 36, 83, 121, 75, 75, 86, 110, 50, 157, 100, 131, 124,\n\t\t117, 29, 26, 240, 16, 66, 12, 9, 164, 35, 108, 90, 134, 75,\n\t\t207, 133, 165, 176, 177, 186, 210, 0, 226, 121, 237, 197,\n\t\t246, 23, 209, 37, 152, 180, 168, 21, 171, 80, 171, 129, 100,\n\t\t192, 70, 216, 15, 92, 76, 252, 227, 63, 72, 117, 174, 83,\n\t\t19, 217, 128, 136, 23, 52, 140, 114, 132, 108, 218, 60, 224,\n\t\t149, 151, 227, 214, 230, 112, 48, 45, 83, 138, 226, 213, 176,\n\t\t122, 112, 105, 102, 155, 198, 37, 39, 209, 154, 96, 225, 196,\n\t\t115, 29, 107, 181, 142, 153, 80, 117, 42, 68, 181, 181, 108,\n\t\t107, 156, 243, 43, 21, 79, 65, 123, 231, 225, 113, 248, 188,\n\t\t146, 40, 107, 202, 57, 229, 58, 229, 78, 229, 111, 128, 128,\n\t\t11, 93, 24, 72, 93, 202, 159, 130, 207, 192, 121, 248, 13,\n\t\t120, 17, 190, 161, 40, 126, 161, 41, 217, 128, 45, 8, 88,\n\t\t55, 178, 144, 13, 179, 201, 38, 76, 210, 36, 149, 151, 79,\n\t\t202, 248, 164, 15, 153, 20, 116, 76, 226, 78, 50, 141, 178,\n\t\t220, 166, 142, 226, 128, 217, 32, 121, 85, 81, 161, 214, 216,\n\t\t132, 62, 202, 24, 143, 178, 77, 224, 35, 25, 89, 145, 233,\n\t\t29, 179, 113, 214, 64, 5, 11, 87, 65, 216, 13, 105, 50, 219,\n\t\t2, 201, 223, 47, 11, 249, 242, 14, 117, 50, 27, 206, 166,\n\t\t155, 144, 22, 78, 138, 73, 54, 155, 230, 27, 186, 233, 28,\n\t\t174, 204, 198, 201, 44, 27, 4, 146, 8, 143, 197, 155, 48,\n\t\t142, 101, 253, 140, 68, 51, 13, 8, 99, 222, 201, 111, 128,\n\t\t144, 197, 65, 152, 191, 60, 154, 23, 94, 198, 23, 136, 29,\n\t\t186, 121, 239, 29, 207, 112, 161, 139, 81, 160, 32, 73, 39,\n\t\t23, 231, 150, 108, 52, 167, 223, 233, 141, 178, 81, 177, 57,\n\t\t147, 140, 139, 92, 6, 92, 186, 243, 128, 204, 44, 127, 47,\n\t\t47, 54, 51, 94, 136, 35, 164, 197, 238, 230, 190, 21, 121,\n\t\t33, 12, 146, 169, 124, 155, 84, 228, 144, 113, 149, 110, 135,\n\t\t51, 27, 138, 157, 202, 143, 107, 194, 126, 179, 204, 225,\n\t\t152, 76, 243, 209, 197, 6, 41, 182, 89, 104, 228, 240, 104,\n\t\t156, 108, 129, 212, 193, 44, 194, 62, 157, 120, 148, 201,\n\t\t144, 107, 167, 40, 166, 101, 93, 150, 21, 148, 121, 82, 67,\n\t\t118, 148, 118, 146, 117, 144, 226, 13, 177, 172, 122, 222,\n\t\t63, 246, 71, 100, 249, 100, 143, 123, 148, 153, 106, 126,\n\t\t213, 205, 135, 122, 164, 150, 92, 106, 228, 248, 0, 215, 49,\n\t\t102, 94, 96, 60, 168, 154, 190, 219, 235, 51, 94, 64, 20,\n\t\t140, 116, 108, 56, 46, 47, 192, 3, 162, 98, 171, 101, 248,\n\t\t30, 199, 239, 98, 20, 136, 74, 77, 170, 17, 196, 248, 87,\n\t\t177, 102, 16, 190, 24, 172, 151, 22, 23, 227, 245, 208, 47,\n\t\t17, 162, 115, 142, 35, 172, 98, 76, 77, 211, 118, 16, 193,\n\t\t128, 92, 138, 117, 97, 72, 205, 10, 91, 3, 67, 120, 53, 195,\n\t\t168, 198, 4, 65, 40, 0, 99, 210, 101, 66, 117, 9, 65, 132,\n\t\t34, 74, 226, 170, 97, 152, 177, 38, 12, 208, 172, 28, 232,\n\t\t25, 66, 202, 190, 32, 169, 154, 1, 224, 216, 166, 201, 1,\n\t\t171, 36, 92, 12, 93, 132, 9, 102, 150, 233, 80, 66, 169, 97,\n\t\t170, 166, 174, 170, 132, 17, 202, 49, 194, 176, 251, 39, 132,\n\t\t58, 134, 205, 40, 66, 216, 13, 133, 106, 26, 116, 72, 84,\n\t\t97, 228, 0, 11, 83, 142, 203, 30, 32, 106, 151, 8, 114, 85,\n\t\t230, 50, 246, 6, 78, 93, 166, 219, 136, 148, 108, 138, 192,\n\t\t227, 160, 105, 186, 154, 31, 8, 131, 96, 1, 96, 96, 96, 84,\n\t\t179, 252, 74, 194, 72, 212, 164, 110, 235, 218, 150, 75, 91,\n\t\t33, 97, 73, 197, 183, 84, 198, 0, 27, 0, 2, 35, 62, 7, 157,\n\t\t194, 182, 89, 232, 45, 114, 29, 40, 62, 98, 81, 152, 154,\n\t\t30, 99, 234, 107, 55, 99, 202, 152, 255, 152, 111, 208, 248,\n\t\t3, 158, 169, 169, 236, 164, 0, 106, 109, 96, 2, 58, 95, 122,\n\t\t47, 51, 9, 49, 45, 203, 180, 134, 140, 33, 162, 81, 147, 170,\n\t\t4, 40, 3, 172, 98, 132, 244, 21, 149, 32, 36, 116, 170, 10,\n\t\t158, 159, 67, 198, 4, 38, 68, 69, 130, 154, 33, 211, 0, 107,\n\t\t140, 149, 168, 105, 120, 85, 93, 104, 254, 138, 212, 175,\n\t\t164, 42, 70, 42, 15, 77, 204, 41, 102, 20, 51, 157, 18, 196,\n\t\t221, 137, 231, 25, 38, 45, 189, 196, 136, 166, 17, 162, 170,\n\t\t140, 221, 133, 181, 94, 184, 104, 175, 145, 32, 32, 107, 188,\n\t\t26, 134, 11, 156, 87, 188, 106, 87, 179, 16, 194, 92, 120,\n\t\t186, 163, 75, 130, 203, 58, 10, 124, 131, 18, 64, 68, 22,\n\t\t202, 229, 123, 247, 136, 104, 34, 175, 14, 26, 87, 161, 102,\n\t\t184, 129, 16, 128, 212, 128, 3, 106, 10, 162, 114, 208, 16,\n\t\t86, 25, 82, 49, 37, 136, 48, 67, 4, 42, 66, 245, 28, 121,\n\t\t26, 142, 230, 11, 78, 176, 165, 117, 171, 30, 12, 89, 37,\n\t\t191, 196, 12, 93, 5, 140, 104, 200, 185, 205, 24, 2, 90, 166,\n\t\t96, 130, 170, 75, 215, 68, 133, 97, 138, 86, 108, 206, 17,\n\t\t176, 18, 5, 196, 62, 165, 149, 202, 99, 6, 156, 13, 172, 149,\n\t\t62, 64, 127, 197, 93, 99, 28, 216, 184, 92, 210, 242, 99,\n\t\t102, 50, 157, 3, 128, 137, 236, 122, 217, 99, 2, 192, 214,\n\t\t25, 194, 76, 52, 8, 107, 91, 76, 181, 109, 149, 89, 109, 70,\n\t\t26, 130, 97, 196, 116, 27, 64, 48, 175, 108, 70, 148, 32,\n\t\t19, 0, 184, 174, 154, 130, 124, 176, 30, 24, 64, 41, 94, 70,\n\t\t43, 7, 61, 161, 218, 131, 109, 71, 112, 219, 217, 46, 9, 15,\n\t\t217, 27, 214, 10, 90, 198, 148, 130, 17, 252, 157, 74, 137,\n\t\t16, 222, 31, 1, 165, 154, 160, 84, 83, 9, 83, 136, 98, 236,\n\t\t157, 87, 254, 14, 126, 89, 49, 149, 255, 162, 252, 161, 242,\n\t\t87, 138, 146, 217, 48, 119, 178, 173, 67, 52, 194, 209, 44,\n\t\t43, 186, 196, 169, 76, 237, 74, 242, 14, 114, 206, 232, 149,\n\t\t155, 162, 249, 150, 188, 39, 156, 119, 135, 251, 189, 5, 103,\n\t\t69, 162, 220, 203, 235, 243, 23, 206, 210, 65, 55, 225, 251,\n\t\t177, 106, 22, 101, 65, 52, 148, 60, 35, 18, 183, 22, 76, 169,\n\t\t179, 201, 5, 35, 48, 14, 36, 196, 205, 102, 25, 183, 80, 167,\n\t\t15, 69, 223, 145, 247, 107, 193, 60, 216, 45, 33, 106, 222,\n\t\t31, 205, 75, 13, 138, 250, 233, 241, 104, 238, 84, 206, 2,\n\t\t54, 7, 114, 5, 17, 66, 104, 67, 196, 39, 41, 15, 58, 71, 96,\n\t\t204, 194, 96, 244, 101, 139, 246, 42, 110, 221, 101, 118,\n\t\t243, 222, 79, 198, 63, 31, 219, 6, 225, 128, 129, 154, 204,\n\t\t224, 210, 138, 67, 185, 209, 227, 112, 4, 136, 107, 120, 46,\n\t\t232, 67, 81, 25, 8, 230, 24, 168, 52, 75, 164, 41, 68, 40,\n\t\t35, 56, 191, 244, 17, 6, 138, 9, 230, 8, 113, 75, 96, 75,\n\t\t5, 100, 112, 1, 54, 32, 36, 59, 53, 132, 25, 161, 132, 104,\n\t\t136, 90, 38, 225, 166, 14, 209, 202, 218, 114, 4, 2, 83, 213,\n\t\t192, 82, 64, 85, 210, 82, 34, 134, 8, 5, 74, 84, 141, 97,\n\t\t132, 9, 113, 84, 157, 17, 204, 16, 120, 154, 25, 209, 223,\n\t\t125, 195, 27, 142, 15, 108, 221, 60, 130, 185, 192, 7, 181,\n\t\t227, 39, 17, 68, 64, 106, 7, 203, 87, 114, 149, 8, 114, 101,\n\t\t217, 4, 205, 4, 227, 157, 58, 166, 136, 57, 156, 80, 148,\n\t\t239, 5, 19, 192, 106, 62, 194, 50, 226, 161, 152, 83, 2, 185,\n\t\t141, 74, 183, 9, 6, 44, 4, 214, 17, 69, 136, 98, 68, 133,\n\t\t74, 144, 74, 109, 41, 164, 193, 125, 74, 109, 11, 171, 0,\n\t\t42, 197, 2, 183, 11, 27, 44, 55, 1, 129, 19, 97, 169, 140,\n\t\t99, 78, 48, 245, 49, 67, 8, 27, 183, 33, 193, 185, 64, 87,\n\t\t34, 3, 145, 144, 80, 64, 130, 5, 194, 230, 36, 55, 191, 108,\n\t\t174, 106, 152, 155, 86, 157, 9, 157, 171, 92, 35, 172, 229,\n\t\t190, 67, 19, 66, 99, 26, 12, 183, 49, 227, 8, 54, 150, 136,\n\t\t13, 133, 100, 18, 144, 239, 230, 99, 205, 81, 243, 63, 195,\n\t\t14, 146, 117, 45, 196, 251, 56, 149, 250, 216, 23, 19, 124,\n\t\t124, 245, 170, 110, 41, 214, 17, 82, 121, 236, 247, 174, 108,\n\t\t126, 23, 123, 199, 236, 71, 214, 214, 107, 140, 70, 238, 160,\n\t\t243, 239, 238, 150, 54, 64, 193, 89, 224, 72, 75, 171, 129,\n\t\t98, 215, 2, 222, 238, 67, 234, 110, 66, 6, 163, 164, 155,\n\t\t35, 130, 130, 218, 111, 150, 236, 59, 26, 88, 60, 104, 208,\n\t\t48, 224, 129, 5, 50, 119, 104, 154, 219, 132, 116, 120, 241,\n\t\t11, 164, 229, 149, 95, 255, 29, 54, 30, 205, 70, 209, 120,\n\t\t52, 145, 224, 34, 135, 110, 50, 175, 43, 12, 162, 34, 67,\n\t\t35, 144, 219, 225, 23, 144, 223, 240, 170, 41, 218, 125, 47,\n\t\t77, 107, 181, 37, 12, 87, 48, 160, 150, 160, 88, 213, 85,\n\t\t134, 137, 23, 122, 142, 235, 96, 76, 25, 206, 79, 107, 126,\n\t\t22, 30, 204, 175, 26, 68, 9, 207, 123, 79, 236, 184, 142,\n\t\t23, 122, 249, 128, 99, 99, 42, 44, 10, 204, 243, 23, 66, 151,\n\t\t144, 128, 98, 12, 130, 62, 68, 229, 96, 22, 18, 226, 134,\n\t\t11, 62, 156, 247, 154, 1, 222, 125, 63, 94, 172, 86, 19, 2,\n\t\t143, 226, 165, 218, 238, 253, 58, 85, 213, 225, 201, 187,\n\t\t52, 139, 33, 164, 33, 164, 34, 169, 216, 98, 240, 67, 58,\n\t\t48, 198, 24, 232, 135, 184, 33, 104, 62, 234, 169, 249, 11,\n\t\t176, 101, 223, 117, 114, 168, 170, 52, 63, 216, 192, 25, 109,\n\t\t214, 86, 24, 201, 199, 184, 149, 90, 147, 50, 14, 42, 66,\n\t\t138, 162, 192, 222, 183, 246, 126, 19, 126, 5, 206, 43, 11,\n\t\t5, 231, 137, 84, 158, 72, 82, 201, 160, 144, 90, 32, 209,\n\t\t72, 14, 112, 100, 212, 144, 192, 199, 99, 75, 55, 206, 29,\n\t\t170, 154, 173, 110, 171, 89, 78, 106, 33, 230, 200, 124, 125,\n\t\t167, 188, 188, 185, 208, 102, 142, 170, 169, 141, 107, 79,\n\t\t95, 1, 141, 197, 219, 214, 250, 87, 123, 201, 237, 151, 137,\n\t\t108, 173, 203, 72, 83, 175, 31, 45, 59, 103, 55, 238, 94,\n\t\t46, 31, 26, 46, 27, 6, 176, 82, 123, 67, 234, 97, 156, 135,\n\t\t111, 194, 121, 101, 166, 28, 205, 113, 57, 155, 167, 4, 134,\n\t\t1, 151, 104, 109, 250, 114, 169, 190, 164, 103, 238, 118,\n\t\t82, 62, 79, 9, 78, 230, 148, 118, 211, 201, 203, 97, 243,\n\t\t0, 244, 31, 53, 173, 176, 217, 92, 105, 162, 250, 91, 181,\n\t\t32, 170, 85, 211, 90, 109, 125, 235, 242, 217, 106, 119, 132,\n\t\t12, 163, 163, 27, 177, 203, 249, 168, 114, 215, 193, 37, 191,\n\t\t233, 215, 23, 255, 252, 81, 222, 88, 105, 54, 67, 206, 163,\n\t\t219, 132, 142, 143, 24, 205, 252, 74, 108, 26, 155, 252, 210,\n\t\t193, 236, 242, 202, 136, 114, 87, 55, 12, 189, 19, 163, 81,\n\t\t103, 245, 192, 155, 23, 235, 126, 211, 95, 58, 248, 10, 61,\n\t\t198, 169, 114, 34, 199, 255, 47, 215, 233, 78, 39, 188, 195,\n\t\t59, 57, 158, 156, 43, 144, 239, 27, 91, 210, 151, 38, 203,\n\t\t171, 47, 180, 250, 69, 2, 225, 126, 142, 224, 216, 31, 109,\n\t\t194, 252, 167, 68, 255, 238, 125, 119, 221, 249, 254, 187,\n\t\t190, 3, 42, 60, 130, 137, 36, 228, 101, 13, 161, 107, 142,\n\t\t100, 195, 225, 215, 19, 1, 148, 53, 132, 0, 85, 15, 163, 245,\n\t\t149, 141, 141, 149, 191, 201, 39, 111, 154, 220, 48, 30, 223,\n\t\t48, 185, 242, 225, 135, 225, 161, 187, 222, 119, 215, 93,\n\t\t239, 123, 15, 249, 81, 13, 66, 140, 8, 122, 91, 222, 129,\n\t\t10, 173, 129, 177, 202, 76, 246, 48, 7, 7, 144, 240, 203,\n\t\t29, 6, 148, 139, 136, 171, 132, 192, 100, 190, 151, 191, 89,\n\t\t217, 216, 189, 115, 114, 253, 189, 215, 79, 30, 254, 248,\n\t\t195, 249, 53, 242, 237, 189, 175, 194, 19, 240, 9, 25, 209,\n\t\t204, 17, 177, 180, 142, 145, 140, 8, 230, 231, 200, 150, 114,\n\t\t190, 97, 196, 7, 33, 219, 183, 157, 243, 173, 51, 57, 25,\n\t\t207, 198, 249, 239, 14, 120, 0, 143, 211, 122, 184, 28, 187,\n\t\t200, 21, 21, 183, 172, 231, 93, 157, 251, 188, 96, 128, 89,\n\t\t201, 76, 204, 150, 31, 137, 106, 222, 44, 147, 76, 24, 255,\n\t\t35, 236, 161, 141, 160, 68, 132, 103, 175, 218, 66, 35, 4,\n\t\t49, 226, 77, 198, 137, 141, 187, 192, 69, 118, 217, 29, 58,\n\t\t84, 13, 206, 16, 219, 8, 133, 134, 41, 162, 92, 217, 19, 249,\n\t\t245, 13, 254, 53, 15, 188, 91, 128, 18, 43, 241, 222, 121,\n\t\t248, 19, 248, 130, 114, 185, 114, 135, 242, 168, 242, 188,\n\t\t242, 27, 202, 239, 42, 191, 175, 252, 153, 242, 247, 202,\n\t\t63, 2, 130, 22, 140, 32, 131, 43, 225, 70, 184, 27, 158, 128,\n\t\t159, 128, 207, 195, 175, 193, 151, 224, 15, 36, 255, 31, 227,\n\t\t237, 36, 157, 76, 251, 88, 242, 137, 72, 99, 185, 72, 42,\n\t\t155, 255, 184, 137, 148, 107, 217, 164, 153, 140, 131, 201,\n\t\t176, 168, 76, 199, 110, 160, 184, 129, 161, 144, 111, 153,\n\t\t69, 115, 122, 216, 81, 126, 152, 56, 139, 103, 81, 56, 154,\n\t\t201, 18, 159, 84, 166, 95, 199, 51, 153, 147, 213, 64, 197,\n\t\t37, 34, 119, 206, 147, 77, 136, 251, 249, 17, 230, 140, 55,\n\t\t64, 42, 211, 199, 108, 158, 200, 22, 201, 252, 110, 11, 133,\n\t\t44, 102, 210, 154, 72, 39, 5, 81, 73, 20, 206, 98, 150, 110,\n\t\t66, 102, 161, 52, 232, 20, 6, 126, 154, 112, 150, 78, 164,\n\t\t60, 62, 139, 248, 120, 80, 164, 195, 203, 253, 70, 241, 100,\n\t\t152, 141, 147, 180, 147, 109, 160, 105, 210, 221, 132, 108,\n\t\t3, 166, 18, 244, 91, 40, 14, 230, 245, 72, 113, 198, 146,\n\t\t110, 34, 213, 246, 163, 120, 60, 25, 133, 135, 33, 225, 44,\n\t\t155, 165, 19, 153, 111, 158, 183, 231, 131, 119, 3, 98, 198,\n\t\t199, 51, 44, 185, 4, 120, 194, 147, 66, 176, 127, 52, 140,\n\t\t226, 130, 100, 160, 1, 113, 208, 192, 193, 156, 185, 97, 212,\n\t\t144, 175, 68, 113, 148, 31, 27, 232, 163, 220, 134, 155, 197,\n\t\t193, 156, 73, 152, 133, 22, 146, 249, 236, 178, 242, 169,\n\t\t134, 194, 62, 100, 73, 254, 73, 81, 28, 81, 198, 147, 108,\n\t\t19, 243, 40, 139, 66, 150, 196, 197, 165, 134, 242, 111, 61,\n\t\t110, 192, 12, 190, 9, 154, 96, 187, 55, 202, 94, 23, 3, 240,\n\t\t0, 107, 253, 42, 194, 2, 56, 148, 45, 93, 112, 233, 28, 69,\n\t\t168, 133, 85, 205, 211, 35, 170, 215, 123, 119, 55, 184, 107,\n\t\t91, 196, 71, 54, 163, 32, 40, 24, 110, 14, 11, 248, 238, 55,\n\t\t107, 19, 149, 120, 12, 116, 32, 170, 192, 152, 11, 4, 20,\n\t\t227, 251, 45, 18, 44, 99, 2, 128, 177, 206, 59, 142, 234,\n\t\t218, 51, 214, 112, 74, 21, 112, 221, 110, 184, 54, 227, 222,\n\t\t42, 69, 156, 183, 76, 164, 58, 26, 18, 84, 48, 193, 105, 237,\n\t\t100, 243, 18, 135, 0, 161, 32, 128, 133, 220, 115, 98, 128,\n\t\t170, 71, 45, 138, 115, 248, 247, 251, 0, 16, 213, 41, 80,\n\t\t202, 252, 16, 99, 77, 181, 125, 108, 81, 86, 181, 12, 228,\n\t\t104, 14, 194, 58, 229, 112, 23, 166, 190, 73, 120, 231, 163,\n\t\t63, 135, 56, 44, 219, 96, 24, 176, 116, 68, 252, 223, 66,\n\t\t5, 4, 154, 110, 96, 155, 48, 39, 140, 115, 108, 11, 58, 70,\n\t\t122, 204, 163, 131, 192, 28, 140, 173, 28, 5, 1, 161, 174,\n\t\t17, 47, 88, 33, 92, 67, 129, 155, 64, 67, 142, 133, 64, 17,\n\t\t99, 26, 168, 0, 80, 227, 127, 77, 107, 6, 87, 73, 215, 87,\n\t\t63, 75, 34, 162, 1, 184, 4, 69, 254, 237, 1, 5, 157, 17, 57,\n\t\t228, 11, 108, 54, 5, 98, 146, 57, 174, 158, 143, 57, 220,\n\t\t53, 221, 220, 48, 195, 28, 76, 221, 98, 72, 95, 0, 134, 1,\n\t\t152, 229, 181, 29, 134, 190, 128, 105, 14, 216, 17, 48, 148,\n\t\t207, 8, 224, 30, 6, 88, 14, 219, 0, 194, 209, 236, 119, 197,\n\t\t7, 80, 109, 253, 58, 204, 244, 158, 77, 133, 10, 128, 116,\n\t\t139, 181, 122, 49, 111, 87, 194, 220, 68, 35, 150, 102, 82,\n\t\t85, 87, 17, 175, 58, 136, 104, 6, 178, 109, 18, 186, 107,\n\t\t17, 96, 130, 114, 56, 180, 101, 171, 174, 110, 50, 131, 48,\n\t\t221, 18, 49, 181, 93, 143, 47, 254, 192, 32, 212, 145, 165,\n\t\t49, 195, 2, 148, 219, 18, 111, 19, 157, 16, 88, 110, 169,\n\t\t234, 54, 206, 135, 95, 132, 17, 190, 213, 153, 24, 65, 68,\n\t\t24, 85, 145, 125, 210, 196, 47, 45, 148, 3, 98, 113, 86, 169,\n\t\t7, 165, 160, 198, 237, 148, 84, 182, 110, 29, 153, 150, 161,\n\t\t9, 67, 214, 206, 169, 156, 51, 228, 234, 70, 187, 167, 149,\n\t\t188, 138, 170, 54, 133, 10, 109, 132, 34, 199, 95, 66, 160,\n\t\t17, 78, 25, 34, 239, 68, 26, 97, 192, 29, 61, 198, 88, 88,\n\t\t72, 5, 76, 145, 135, 243, 254, 25, 8, 128, 209, 162, 150,\n\t\t153, 195, 82, 33, 115, 200, 16, 102, 238, 97, 30, 89, 129,\n\t\t102, 155, 224, 172, 187, 21, 160, 128, 67, 32, 4, 24, 146,\n\t\t114, 89, 170, 65, 64, 152, 14, 227, 141, 28, 157, 18, 63,\n\t\t50, 65, 7, 46, 97, 29, 229, 140, 133, 26, 107, 69, 152, 8,\n\t\t13, 72, 196, 8, 103, 88, 79, 90, 62, 81, 49, 160, 16, 110,\n\t\t52, 66, 64, 26, 19, 75, 104, 29, 1, 174, 106, 93, 198, 53,\n\t\t162, 54, 45, 168, 82, 73, 15, 71, 17, 102, 64, 84, 67, 6,\n\t\t0, 208, 113, 148, 219, 55, 132, 170, 64, 56, 199, 2, 28, 171,\n\t\t105, 17, 29, 65, 41, 69, 20, 3, 117, 145, 170, 9, 68, 61,\n\t\t23, 116, 21, 81, 162, 82, 21, 104, 85, 72, 90, 185, 72, 132,\n\t\t108, 97, 17, 236, 220, 74, 18, 154, 129, 168, 13, 86, 67,\n\t\t69, 4, 49, 44, 44, 0, 164, 217, 22, 40, 10, 217, 251, 139,\n\t\t189, 159, 71, 72, 198, 220, 58, 202, 166, 228, 143, 155, 83,\n\t\t55, 109, 194, 120, 228, 207, 178, 142, 133, 184, 69, 26, 104,\n\t\t88, 72, 131, 166, 81, 60, 155, 103, 234, 110, 98, 201, 166,\n\t\t102, 145, 188, 179, 107, 64, 110, 26, 204, 178, 77, 50, 30,\n\t\t197, 13, 176, 144, 13, 131, 120, 150, 205, 224, 251, 174,\n\t\t95, 127, 224, 133, 159, 94, 159, 117, 31, 222, 58, 249, 144,\n\t\t96, 232, 212, 248, 18, 79, 183, 213, 220, 46, 200, 199, 108,\n\t\t53, 251, 87, 159, 30, 255, 172, 58, 205, 206, 252, 228, 250,\n\t\t138, 77, 131, 228, 228, 218, 18, 70, 6, 242, 53, 215, 102,\n\t\t110, 251, 15, 52, 13, 250, 255, 161, 211, 164, 129, 110, 27,\n\t\t148, 82, 74, 40, 213, 97, 204, 84, 103, 11, 126, 112, 246,\n\t\t194, 79, 175, 63, 240, 194, 171, 15, 108, 238, 254, 219, 252,\n\t\t122, 18, 140, 104, 66, 231, 6, 209, 189, 50, 204, 222, 1,\n\t\t100, 243, 141, 157, 254, 210, 153, 19, 87, 6, 201, 122, 11,\n\t\t99, 71, 229, 72, 227, 186, 37, 130, 234, 12, 11, 132, 99,\n\t\t164, 135, 216, 228, 42, 70, 152, 49, 204, 160, 131, 64, 109,\n\t\t191, 18, 51, 99, 197, 81, 102, 133, 154, 91, 54, 237, 134,\n\t\t129, 4, 53, 227, 209, 188, 240, 123, 93, 170, 87, 22, 34,\n\t\t136, 5, 95, 111, 19, 230, 57, 56, 41, 143, 224, 252, 238,\n\t\t246, 183, 150, 99, 219, 232, 120, 107, 245, 206, 29, 205,\n\t\t180, 90, 215, 108, 157, 170, 204, 213, 218, 254, 82, 173,\n\t\t83, 41, 107, 170, 170, 97, 199, 44, 59, 157, 16, 158, 217,\n\t\t221, 190, 227, 3, 31, 168, 132, 65, 218, 106, 53, 107, 229,\n\t\t154, 73, 184, 166, 82, 65, 189, 176, 211, 26, 212, 53, 74,\n\t\t8, 23, 84, 53, 42, 193, 202, 43, 49, 125, 77, 57, 246, 207,\n\t\t84, 228, 255, 15, 127, 215, 139, 96, 255, 23, 254, 251, 191,\n\t\t243, 43, 21, 20, 254, 123, 191, 190, 194, 21, 101, 239, 5,\n\t\t164, 192, 115, 74, 73, 233, 43, 199, 149, 155, 101, 253, 199,\n\t\t99, 138, 34, 21, 175, 179, 6, 146, 99, 232, 136, 241, 104,\n\t\t30, 69, 144, 99, 252, 32, 26, 206, 226, 28, 185, 165, 73,\n\t\t150, 230, 35, 112, 47, 226, 113, 193, 249, 207, 147, 108,\n\t\t150, 165, 76, 82, 45, 244, 138, 20, 151, 84, 166, 140, 167,\n\t\t179, 56, 146, 192, 115, 19, 184, 188, 42, 139, 235, 154, 71,\n\t\t49, 31, 75, 6, 219, 212, 130, 108, 123, 99, 120, 197, 122,\n\t\t138, 85, 1, 195, 195, 151, 140, 97, 1, 243, 122, 41, 172,\n\t\t46, 193, 247, 53, 16, 172, 151, 108, 93, 120, 101, 85, 195,\n\t\t107, 91, 8, 162, 221, 255, 83, 199, 125, 91, 164, 8, 194,\n\t\t168, 14, 168, 95, 177, 117, 1, 110, 25, 30, 241, 107, 53,\n\t\t95, 167, 91, 249, 142, 194, 124, 47, 75, 200, 140, 126, 153,\n\t\t171, 135, 79, 91, 183, 190, 241, 52, 231, 87, 17, 104, 234,\n\t\t151, 233, 173, 78, 169, 212, 57, 148, 30, 62, 134, 160, 132,\n\t\t85, 21, 90, 128, 86, 186, 56, 78, 107, 65, 165, 246, 173,\n\t\t97, 118, 124, 90, 70, 186, 90, 118, 85, 221, 30, 140, 46,\n\t\t91, 94, 124, 179, 110, 15, 117, 109, 245, 240, 106, 18, 13,\n\t\t15, 28, 159, 86, 145, 174, 150, 60, 88, 168, 167, 53, 180,\n\t\t113, 20, 65, 28, 53, 1, 173, 164, 92, 152, 145, 121, 47, 136,\n\t\t91, 222, 120, 169, 125, 203, 225, 217, 201, 239, 89, 112,\n\t\t38, 19, 183, 91, 110, 3, 180, 7, 175, 224, 122, 30, 41, 10,\n\t\t189, 40, 56, 146, 95, 50, 184, 160, 110, 217, 39, 21, 63,\n\t\t2, 69, 162, 205, 186, 76, 112, 79, 152, 13, 240, 212, 69,\n\t\t249, 75, 95, 227, 154, 45, 252, 144, 106, 142, 234, 69, 27,\n\t\t90, 219, 212, 65, 12, 23, 5, 210, 141, 196, 88, 109, 205,\n\t\t95, 36, 175, 9, 232, 235, 174, 206, 42, 254, 143, 168, 174,\n\t\t193, 227, 104, 249, 114, 29, 12, 189, 161, 109, 29, 210, 234,\n\t\t154, 137, 188, 109, 153, 187, 241, 123, 240, 86, 248, 132,\n\t\t210, 84, 20, 63, 44, 216, 141, 236, 130, 253, 45, 89, 47,\n\t\t12, 136, 252, 155, 202, 178, 247, 31, 188, 38, 58, 25, 5,\n\t\t196, 58, 115, 147, 141, 253, 210, 166, 247, 208, 98, 107,\n\t\t33, 117, 59, 113, 107, 9, 174, 56, 245, 88, 139, 196, 254,\n\t\t212, 187, 255, 81, 111, 22, 196, 40, 124, 247, 229, 203, 203,\n\t\t235, 61, 168, 198, 11, 209, 178, 146, 247, 111, 127, 191,\n\t\t247, 95, 209, 147, 240, 17, 101, 164, 28, 87, 174, 149, 90,\n\t\t51, 145, 68, 85, 81, 193, 24, 153, 72, 199, 55, 43, 146, 248,\n\t\t103, 217, 33, 169, 13, 46, 229, 195, 179, 77, 60, 158, 197,\n\t\t13, 160, 179, 117, 40, 236, 209, 56, 242, 194, 40, 27, 205,\n\t\t104, 142, 228, 108, 121, 177, 22, 216, 57, 45, 88, 5, 88,\n\t\t19, 102, 232, 113, 166, 243, 43, 207, 16, 76, 56, 63, 175,\n\t\t26, 54, 215, 182, 238, 175, 198, 26, 108, 29, 197, 170, 123,\n\t\t123, 155, 50, 138, 240, 135, 127, 137, 29, 64, 220, 65, 181,\n\t\t70, 21, 25, 42, 59, 186, 251, 9, 74, 158, 66, 24, 238, 1,\n\t\t140, 209, 19, 192, 240, 67, 48, 222, 68, 152, 253, 226, 33,\n\t\t74, 24, 186, 233, 102, 73, 11, 55, 100, 152, 14, 74, 4, 31,\n\t\t60, 241, 69, 142, 81, 116, 23, 229, 20, 227, 227, 152, 34,\n\t\t205, 124, 164, 198, 105, 136, 222, 245, 94, 17, 32, 129, 40,\n\t\t162, 187, 123, 125, 245, 28, 214, 16, 80, 66, 145, 206, 174,\n\t\t62, 3, 244, 239, 177, 202, 240, 238, 223, 1, 70, 213, 131,\n\t\t112, 45, 38, 104, 120, 39, 19, 24, 154, 77, 128, 247, 32,\n\t\t124, 68, 80, 208, 48, 144, 43, 220, 162, 38, 104, 191, 126,\n\t\t177, 172, 244, 148, 153, 114, 181, 242, 26, 229, 123, 21,\n\t\t165, 23, 6, 43, 208, 89, 151, 117, 166, 243, 132, 140, 102,\n\t\t33, 93, 215, 189, 40, 51, 131, 207, 151, 147, 253, 148, 141,\n\t\t121, 10, 71, 33, 127, 249, 242, 188, 72, 227, 248, 39, 241,\n\t\t186, 164, 208, 142, 111, 0, 175, 129, 76, 10, 203, 102, 224,\n\t\t96, 29, 65, 27, 235, 36, 31, 248, 90, 216, 192, 87, 99, 172,\n\t\t99, 236, 96, 178, 6, 8, 235, 228, 5, 140, 155, 205, 226, 217,\n\t\t199, 248, 19, 131, 206, 238, 31, 118, 214, 7, 29, 168, 119,\n\t\t214, 55, 111, 251, 215, 183, 95, 113, 216, 196, 4, 56, 211,\n\t\t250, 7, 157, 206, 183, 78, 97, 88, 93, 38, 68, 206, 48, 62,\n\t\t149, 255, 111, 96, 29, 3, 58, 133, 241, 193, 13, 108, 204,\n\t\t31, 122, 190, 225, 213, 47, 239, 104, 240, 145, 217, 21, 87,\n\t\t204, 134, 151, 9, 108, 251, 24, 113, 132, 72, 109, 213, 75,\n\t\t101, 95, 172, 48, 164, 192, 27, 21, 85, 89, 86, 78, 203, 122,\n\t\t199, 32, 182, 32, 77, 166, 189, 32, 26, 135, 69, 49, 121,\n\t\t194, 234, 48, 14, 187, 185, 57, 156, 22, 41, 57, 241, 56,\n\t\t236, 246, 166, 227, 48, 200, 175, 189, 169, 116, 224, 89,\n\t\t36, 73, 147, 35, 48, 14, 131, 209, 244, 138, 170, 177, 90,\n\t\t42, 195, 31, 217, 122, 109, 189, 86, 169, 164, 105, 57, 108,\n\t\t108, 44, 247, 14, 136, 74, 105, 247, 171, 103, 151, 187, 201,\n\t\t98, 41, 108, 97, 196, 152, 174, 91, 98, 237, 108, 9, 94, 255,\n\t\t165, 21, 79, 195, 78, 144, 118, 52, 251, 108, 109, 189, 118,\n\t\t214, 177, 44, 39, 62, 203, 211, 192, 35, 63, 187, 178, 209,\n\t\t239, 158, 61, 11, 255, 113, 113, 198, 185, 113, 82, 67, 56,\n\t\t2, 146, 131, 99, 100, 76, 222, 254, 176, 174, 23, 121, 80,\n\t\t104, 239, 115, 240, 89, 56, 175, 168, 138, 175, 40, 224, 114,\n\t\t55, 229, 126, 234, 102, 190, 91, 232, 80, 184, 49, 124, 118,\n\t\t251, 99, 31, 135, 237, 255, 171, 181, 117, 219, 109, 91, 45,\n\t\t216, 222, 83, 22, 148, 189, 155, 111, 222, 83, 122, 160, 236,\n\t\t236, 222, 172, 236, 45, 236, 41, 89, 6, 202, 194, 158, 226,\n\t\t205, 243, 160, 182, 225, 188, 204, 86, 61, 166, 188, 65, 81,\n\t\t114, 104, 208, 64, 177, 228, 233, 198, 97, 3, 154, 16, 89,\n\t\t208, 225, 22, 226, 157, 62, 78, 11, 5, 242, 229, 188, 131,\n\t\t142, 187, 29, 169, 73, 204, 231, 243, 76, 10, 250, 101, 155,\n\t\t120, 78, 68, 95, 40, 121, 21, 108, 83, 69, 240, 14, 230, 74,\n\t\t249, 249, 61, 248, 24, 96, 132, 136, 116, 253, 35, 76, 9,\n\t\t102, 148, 16, 90, 210, 52, 224, 182, 166, 130, 36, 221, 197,\n\t\t132, 96, 21, 11, 76, 49, 215, 42, 26, 125, 223, 59, 29, 231,\n\t\t157, 206, 226, 245, 142, 115, 189, 227, 129, 103, 35, 46,\n\t\t68, 195, 54, 207, 220, 115, 198, 180, 27, 66, 112, 100, 123,\n\t\t192, 169, 106, 59, 182, 189, 114, 217, 202, 177, 91, 109,\n\t\t219, 113, 4, 253, 50, 210, 133, 32, 96, 120, 84, 244, 91,\n\t\t102, 228, 71, 69, 90, 7, 1, 32, 46, 3, 166, 27, 54, 59, 170,\n\t\t250, 204, 82, 17, 198, 191, 209, 106, 109, 183, 90, 239, 215,\n\t\t169, 174, 173, 90, 206, 176, 186, 24, 140, 79, 159, 30, 7,\n\t\t139, 213, 161, 99, 175, 170, 58, 213, 82, 205, 45, 85, 107,\n\t\t235, 165, 229, 83, 203, 55, 109, 151, 214, 107, 213, 138,\n\t\t173, 41, 160, 88, 138, 2, 127, 3, 59, 202, 130, 162, 248,\n\t\t147, 117, 152, 142, 227, 108, 28, 114, 22, 187, 47, 167, 121,\n\t\t225, 46, 190, 144, 244, 149, 158, 230, 107, 239, 125, 221,\n\t\t109, 239, 72, 41, 0, 77, 62, 155, 146, 7, 236, 183, 128, 24,\n\t\t63, 53, 86, 17, 140, 84, 62, 19, 127, 241, 23, 162, 71, 248,\n\t\t238, 95, 113, 210, 19, 34, 33, 252, 107, 187, 127, 14, 193,\n\t\t243, 134, 186, 41, 196, 166, 106, 236, 231, 177, 191, 128,\n\t\t86, 224, 57, 197, 82, 234, 202, 138, 114, 78, 81, 188, 220,\n\t\t168, 189, 16, 206, 103, 254, 38, 164, 81, 65, 95, 148, 164,\n\t\t13, 192, 5, 153, 103, 193, 151, 157, 197, 251, 119, 247, 133,\n\t\t123, 252, 66, 95, 113, 33, 133, 235, 145, 7, 175, 169, 53,\n\t\t238, 254, 224, 7, 239, 110, 212, 174, 249, 133, 67, 73, 221,\n\t\t181, 250, 213, 183, 125, 108, 221, 20, 253, 119, 62, 155,\n\t\t61, 145, 116, 172, 101, 203, 168, 182, 94, 51, 68, 247, 45,\n\t\t10, 177, 40, 196, 64, 78, 229, 2, 84, 127, 254, 157, 22, 127,\n\t\t250, 238, 187, 159, 230, 214, 238, 243, 75, 239, 56, 236,\n\t\t248, 199, 62, 126, 107, 237, 152, 31, 174, 171, 208, 88, 50,\n\t\t134, 107, 143, 172, 36, 175, 234, 46, 183, 76, 120, 240, 226,\n\t\t247, 21, 11, 223, 173, 213, 59, 215, 52, 149, 21, 202, 227,\n\t\t176, 203, 231, 243, 23, 95, 252, 147, 253, 127, 120, 230,\n\t\t197, 23, 95, 244, 94, 124, 241, 69, 57, 94, 253, 53, 156,\n\t\t135, 29, 165, 150, 227, 193, 48, 96, 137, 188, 175, 121, 56,\n\t\t103, 28, 232, 131, 92, 78, 166, 112, 126, 117, 117, 121, 5,\n\t\t55, 22, 26, 229, 86, 13, 175, 174, 194, 206, 175, 87, 227,\n\t\t168, 86, 170, 198, 65, 229, 13, 97, 28, 135, 63, 29, 148,\n\t\t80, 224, 255, 101, 53, 138, 43, 243, 227, 61, 231, 59, 119,\n\t\t148, 106, 126, 166, 47, 248, 167, 138, 203, 221, 157, 101,\n\t\t115, 185, 212, 252, 240, 187, 197, 98, 84, 240, 60, 253, 68,\n\t\t220, 137, 219, 63, 30, 119, 226, 32, 8, 222, 27, 119, 226,\n\t\t245, 57, 49, 250, 127, 121, 201, 141, 99, 119, 247, 175, 90,\n\t\t149, 223, 201, 23, 126, 7, 31, 1, 39, 95, 120, 201, 81, 94,\n\t\t193, 177, 110, 40, 85, 69, 233, 141, 37, 159, 81, 58, 158,\n\t\t198, 25, 237, 94, 112, 227, 117, 167, 60, 133, 219, 31, 8,\n\t\t143, 94, 189, 122, 236, 225, 246, 3, 247, 220, 179, 251, 237,\n\t\t51, 230, 211, 95, 124, 218, 60, 243, 236, 199, 183, 23, 102,\n\t\t141, 163, 217, 206, 189, 247, 94, 153, 46, 221, 253, 244,\n\t\t211, 119, 47, 165, 191, 249, 241, 143, 43, 124, 111, 111,\n\t\t239, 87, 225, 175, 225, 89, 133, 40, 161, 210, 148, 181, 239,\n\t\t57, 182, 147, 28, 220, 105, 150, 116, 120, 146, 230, 119,\n\t\t239, 38, 58, 2, 44, 183, 35, 100, 104, 182, 195, 231, 75,\n\t\t97, 20, 240, 208, 194, 249, 208, 59, 201, 226, 77, 24, 71,\n\t\t227, 65, 96, 81, 206, 186, 233, 104, 60, 107, 224, 88, 6,\n\t\t149, 217, 36, 142, 98, 214, 73, 103, 91, 16, 101, 17, 44,\n\t\t71, 181, 122, 248, 212, 242, 61, 43, 205, 100, 225, 208, 201,\n\t\t147, 135, 22, 210, 191, 212, 180, 213, 59, 87, 53, 109, 240,\n\t\t246, 119, 151, 203, 155, 207, 109, 150, 42, 171, 171, 124,\n\t\t243, 186, 59, 94, 181, 197, 86, 87, 95, 84, 187, 135, 56,\n\t\t41, 4, 180, 169, 230, 124, 129, 240, 74, 84, 211, 117, 178,\n\t\t80, 177, 53, 42, 61, 178, 240, 41, 4, 209, 36, 2, 204, 146,\n\t\t132, 92, 22, 170, 90, 240, 66, 163, 81, 209, 158, 93, 59,\n\t\t217, 115, 221, 133, 83, 107, 207, 106, 45, 202, 226, 152,\n\t\t177, 181, 24, 248, 137, 19, 28, 78, 212, 238, 174, 193, 161,\n\t\t107, 19, 72, 94, 117, 184, 118, 119, 237, 179, 139, 14, 112,\n\t\t44, 24, 231, 12, 179, 41, 0, 53, 66, 23, 128, 225, 188, 65,\n\t\t96, 254, 253, 132, 154, 38, 35, 76, 159, 115, 11, 127, 1,\n\t\t206, 195, 47, 41, 135, 149, 251, 20, 37, 234, 172, 203, 126,\n\t\t110, 38, 153, 49, 139, 12, 205, 196, 134, 28, 156, 53, 65,\n\t\t18, 200, 23, 247, 15, 235, 230, 47, 60, 2, 115, 245, 10, 169,\n\t\t23, 157, 229, 173, 114, 44, 142, 27, 48, 30, 77, 39, 125,\n\t\t156, 238, 107, 137, 72, 167, 229, 190, 180, 65, 220, 128,\n\t\t63, 13, 212, 77, 77, 216, 38, 194, 235, 24, 63, 143, 240,\n\t\t115, 56, 255, 31, 133, 37, 26, 179, 122, 197, 47, 13, 124,\n\t\t255, 121, 223, 127, 62, 8, 158, 127, 235, 96, 245, 53, 44,\n\t\t166, 128, 203, 221, 12, 132, 89, 246, 170, 157, 96, 117, 241,\n\t\t58, 134, 113, 137, 0, 41, 215, 6, 209, 82, 63, 217, 160, 61,\n\t\t138, 41, 71, 168, 134, 208, 125, 136, 124, 5, 163, 251, 242,\n\t\t5, 252, 21, 2, 13, 97, 90, 95, 102, 236, 203, 213, 166, 81,\n\t\t211, 227, 175, 68, 250, 253, 186, 126, 191, 30, 125, 37, 214,\n\t\t239, 255, 141, 70, 251, 56, 37, 129, 91, 167, 148, 81, 130,\n\t\t176, 86, 10, 106, 205, 109, 140, 137, 111, 87, 52, 149, 177,\n\t\t82, 193, 245, 173, 108, 163, 109, 104, 41, 88, 50, 251, 231,\n\t\t104, 68, 86, 105, 244, 194, 182, 204, 242, 141, 37, 117, 75,\n\t\t56, 206, 228, 60, 155, 175, 229, 79, 104, 181, 90, 208, 218,\n\t\t125, 105, 231, 153, 103, 118, 182, 91, 173, 103, 118, 182,\n\t\t183, 95, 58, 191, 221, 106, 181, 90, 207, 108, 111, 159, 111,\n\t\t181, 206, 183, 118, 110, 191, 125, 231, 153, 214, 206, 206,\n\t\t237, 183, 223, 126, 123, 209, 47, 40, 25, 122, 27, 156, 82,\n\t\t84, 229, 184, 114, 133, 242, 234, 66, 149, 40, 229, 221, 108,\n\t\t28, 247, 34, 198, 27, 176, 239, 194, 154, 50, 206, 186, 89,\n\t\t81, 40, 154, 228, 72, 103, 158, 110, 201, 139, 72, 157, 36,\n\t\t251, 145, 14, 113, 169, 54, 144, 238, 231, 228, 236, 115,\n\t\t79, 253, 194, 218, 224, 224, 184, 185, 54, 28, 102, 240, 77,\n\t\t188, 84, 179, 176, 229, 159, 235, 217, 177, 131, 129, 235,\n\t\t209, 123, 244, 183, 232, 24, 3, 96, 122, 125, 201, 164, 26,\n\t\t87, 35, 253, 67, 218, 147, 186, 76, 225, 99, 228, 250, 58,\n\t\t109, 31, 81, 143, 244, 146, 123, 137, 62, 12, 60, 53, 14,\n\t\t122, 149, 146, 174, 97, 35, 212, 85, 104, 61, 115, 223, 125,\n\t\t207, 60, 242, 168, 95, 97, 241, 172, 150, 164, 42, 113, 74,\n\t\t54, 101, 4, 208, 34, 231, 2, 99, 211, 89, 208, 77, 4, 45,\n\t\t142, 85, 68, 192, 93, 48, 160, 209, 229, 236, 173, 113, 153,\n\t\t133, 254, 50, 193, 149, 123, 8, 99, 14, 162, 134, 166, 228,\n\t\t125, 226, 222, 11, 240, 20, 60, 47, 213, 118, 175, 80, 174,\n\t\t83, 110, 85, 94, 171, 60, 168, 60, 166, 60, 174, 188, 67,\n\t\t121, 191, 242, 111, 148, 143, 41, 159, 84, 126, 70, 81, 252,\n\t\t67, 208, 96, 124, 178, 73, 162, 56, 176, 104, 58, 217, 164,\n\t\t89, 39, 177, 16, 239, 147, 180, 65, 226, 160, 15, 80, 248,\n\t\t255, 167, 115, 242, 52, 178, 207, 92, 253, 93, 243, 232, 255,\n\t\t163, 246, 253, 188, 139, 217, 232, 122, 196, 60, 55, 246,\n\t\t3, 131, 33, 196, 53, 55, 104, 184, 136, 169, 150, 87, 178,\n\t\t17, 101, 186, 233, 107, 136, 250, 94, 197, 0, 108, 251, 221,\n\t\t16, 235, 149, 192, 133, 233, 4, 14, 182, 142, 253, 250, 177,\n\t\t214, 226, 177, 91, 111, 61, 182, 184, 251, 199, 78, 201, 121,\n\t\t229, 255, 245, 255, 83, 45, 139, 66, 108, 254, 251, 77, 174,\n\t\t158, 251, 4, 60, 7, 136, 171, 110, 208, 240, 128, 218, 186,\n\t\t193, 48, 7, 234, 232, 14, 167, 20, 136, 161, 153, 42, 7, 192,\n\t\t34, 118, 136, 217, 174, 68, 8, 136, 19, 45, 150, 177, 56,\n\t\t188, 251, 15, 231, 166, 131, 193, 244, 220, 177, 99, 195,\n\t\t225, 177, 159, 151, 59, 189, 38, 118, 156, 216, 45, 166, 111,\n\t\t248, 159, 106, 57, 158, 186, 173, 150, 179, 104, 43, 82, 231,\n\t\t170, 24, 11, 84, 197, 144, 57, 87, 21, 165, 171, 172, 43,\n\t\t7, 149, 163, 202, 181, 138, 18, 23, 117, 30, 49, 140, 167,\n\t\t221, 44, 30, 51, 158, 133, 105, 92, 40, 120, 103, 1, 239,\n\t\t186, 13, 156, 142, 167, 50, 229, 62, 127, 198, 221, 233, 164,\n\t\t219, 169, 195, 120, 154, 242, 48, 158, 166, 211, 44, 45, 200,\n\t\t149, 100, 85, 82, 106, 65, 52, 30, 205, 190, 157, 15, 24,\n\t\t205, 198, 238, 223, 126, 241, 67, 31, 186, 253, 245, 75, 39,\n\t\t15, 134, 32, 156, 239, 143, 159, 104, 31, 88, 138, 222, 121,\n\t\t194, 178, 44, 211, 58, 94, 9, 195, 19, 112, 252, 184, 101,\n\t\t145, 5, 75, 231, 186, 237, 168, 154, 33, 144, 239, 149, 221,\n\t\t3, 79, 127, 241, 105, 177, 251, 206, 214, 87, 254, 118, 171,\n\t\t241, 77, 71, 244, 117, 77, 152, 147, 108, 8, 103, 173, 245,\n\t\t67, 167, 47, 27, 180, 27, 141, 246, 159, 232, 229, 74, 217,\n\t\t190, 187, 97, 52, 92, 86, 97, 215, 85, 13, 35, 174, 105, 154,\n\t\t218, 40, 175, 206, 181, 169, 95, 66, 7, 224, 89, 69, 83, 198,\n\t\t202, 235, 20, 165, 23, 20, 42, 93, 155, 16, 241, 201, 116,\n\t\t50, 147, 121, 53, 146, 31, 108, 26, 205, 166, 147, 132, 247,\n\t\t11, 109, 129, 34, 167, 179, 8, 200, 167, 147, 77, 116, 24,\n\t\t109, 210, 113, 54, 206, 223, 113, 24, 70, 81, 51, 55, 108,\n\t\t226, 113, 190, 16, 48, 190, 2, 60, 96, 54, 180, 59, 125, 116,\n\t\t4, 210, 124, 112, 133, 39, 102, 117, 11, 1, 142, 150, 90,\n\t\t191, 156, 4, 140, 130, 109, 83, 134, 251, 183, 158, 59, 128,\n\t\t124, 85, 133, 213, 131, 154, 171, 149, 24, 115, 17, 34, 159,\n\t\t21, 186, 78, 72, 157, 56, 81, 57, 246, 25, 171, 233, 148,\n\t\t94, 39, 116, 128, 218, 107, 194, 166, 235, 3, 248, 154, 218,\n\t\t136, 35, 221, 216, 125, 201, 244, 84, 26, 55, 92, 31, 118,\n\t\t147, 67, 108, 253, 82, 129, 253, 91, 1, 123, 171, 214, 47,\n\t\t78, 109, 27, 49, 102, 46, 110, 232, 55, 29, 154, 244, 92,\n\t\t157, 115, 30, 198, 167, 155, 166, 111, 132, 62, 129, 171,\n\t\t117, 155, 19, 59, 182, 13, 74, 192, 23, 42, 168, 148, 248,\n\t\t103, 60, 77, 117, 125, 248, 170, 31, 33, 80, 77, 147, 146,\n\t\t175, 122, 218, 62, 86, 248, 53, 164, 192, 207, 43, 90, 142,\n\t\t70, 229, 209, 42, 248, 1, 192, 29, 187, 72, 121, 224, 242,\n\t\t203, 31, 200, 159, 187, 202, 141, 255, 120, 249, 3, 15, 252,\n\t\t219, 215, 189, 110, 247, 9, 248, 243, 221, 57, 207, 183, 183,\n\t\t119, 30, 126, 10, 206, 43, 158, 210, 81, 166, 69, 254, 45,\n\t\t183, 176, 100, 69, 147, 99, 19, 46, 18, 100, 11, 18, 68, 228,\n\t\t23, 105, 19, 179, 172, 40, 175, 77, 103, 13, 128, 71, 54,\n\t\t174, 230, 97, 186, 104, 149, 78, 182, 174, 249, 254, 235,\n\t\t174, 185, 198, 58, 178, 185, 254, 186, 51, 87, 62, 184, 190,\n\t\t181, 253, 150, 99, 107, 11, 7, 43, 52, 172, 246, 42, 213,\n\t\t222, 177, 4, 118, 182, 94, 125, 205, 131, 106, 121, 165, 182,\n\t\t181, 252, 186, 107, 175, 127, 124, 215, 59, 120, 213, 107,\n\t\t23, 175, 124, 195, 27, 174, 92, 124, 237, 85, 7, 161, 185,\n\t\t122, 116, 97, 122, 180, 234, 85, 171, 94, 221, 80, 171, 82,\n\t\t223, 126, 111, 111, 111, 15, 254, 26, 158, 152, 115, 63, 94,\n\t\t170, 40, 189, 152, 119, 121, 200, 211, 46, 95, 71, 108, 29,\n\t\t178, 105, 154, 141, 179, 105, 22, 143, 179, 38, 26, 133, 177,\n\t\t13, 147, 68, 138, 178, 109, 162, 44, 10, 138, 236, 171, 48,\n\t\t201, 241, 138, 228, 107, 158, 146, 6, 200, 190, 8, 46, 9,\n\t\t69, 67, 13, 34, 51, 8, 144, 90, 7, 53, 148, 171, 161, 37,\n\t\t87, 181, 112, 45, 168, 184, 224, 155, 170, 197, 127, 213,\n\t\t117, 111, 133, 3, 31, 59, 176, 116, 192, 117, 183, 90, 7,\n\t\t62, 118, 96, 247, 15, 110, 120, 252, 198, 27, 31, 191, 225,\n\t\t51, 97, 160, 182, 68, 169, 36, 218, 42, 160, 32, 52, 195,\n\t\t64, 173, 139, 48, 84, 235, 42, 4, 33, 49, 60, 240, 43, 46,\n\t\t168, 86, 223, 25, 56, 183, 193, 129, 12, 150, 15, 56, 3, 103,\n\t\t171, 125, 32, 131, 95, 189, 1, 110, 124, 252, 134, 27, 230,\n\t\t122, 206, 223, 64, 59, 240, 81, 229, 164, 114, 86, 121, 64,\n\t\t121, 82, 249, 168, 242, 156, 242, 37, 229, 207, 148, 61, 69,\n\t\t201, 88, 145, 161, 39, 217, 0, 36, 189, 190, 212, 205, 28,\n\t\t15, 70, 195, 121, 212, 48, 157, 11, 56, 200, 140, 217, 249,\n\t\t216, 199, 56, 139, 27, 108, 200, 112, 52, 203, 24, 143, 124,\n\t\t105, 132, 77, 139, 24, 148, 12, 46, 177, 34, 133, 78, 50,\n\t\t44, 176, 130, 227, 33, 236, 132, 147, 105, 126, 23, 229, 167,\n\t\t61, 147, 12, 122, 177, 228, 204, 77, 167, 3, 25, 175, 219,\n\t\t204, 237, 185, 65, 152, 164, 131, 97, 210, 225, 57, 226, 75,\n\t\t147, 97, 110, 252, 147, 108, 150, 14, 210, 145, 148, 66, 205,\n\t\t14, 229, 248, 119, 44, 117, 144, 211, 132, 238, 135, 147,\n\t\t102, 195, 89, 220, 160, 113, 3, 15, 120, 148, 159, 137, 116,\n\t\t54, 140, 226, 6, 11, 163, 175, 116, 174, 50, 41, 32, 173,\n\t\t175, 170, 8, 0, 170, 103, 58, 221, 3, 75, 233, 164, 65, 76,\n\t\t132, 80, 89, 173, 199, 184, 170, 26, 17, 174, 149, 235, 87,\n\t\t151, 0, 188, 173, 106, 180, 152, 88, 214, 2, 2, 78, 77, 195,\n\t\t212, 5, 163, 31, 211, 202, 16, 184, 240, 43, 205, 227, 37,\n\t\t139, 118, 194, 94, 87, 56, 58, 135, 128, 104, 174, 56, 233,\n\t\t115, 92, 53, 173, 241, 39, 150, 203, 145, 70, 129, 246, 42,\n\t\t213, 35, 151, 68, 8, 112, 165, 147, 62, 165, 251, 78, 167,\n\t\t84, 241, 53, 147, 115, 199, 116, 219, 190, 239, 170, 149,\n\t\t160, 99, 129, 69, 242, 51, 190, 88, 1, 183, 108, 18, 79, 117,\n\t\t28, 177, 244, 23, 184, 29, 114, 75, 181, 169, 29, 34, 25,\n\t\t74, 69, 134, 181, 208, 171, 193, 205, 36, 114, 169, 102, 16,\n\t\t205, 131, 184, 36, 211, 93, 24, 34, 42, 101, 191, 13, 117,\n\t\t207, 175, 67, 201, 166, 170, 160, 12, 83, 122, 15, 100, 147,\n\t\t96, 98, 29, 87, 1, 0, 2, 15, 227, 206, 250, 122, 143, 2, 32,\n\t\t29, 152, 131, 98, 68, 212, 250, 170, 227, 10, 13, 162, 42,\n\t\t198, 201, 64, 85, 53, 207, 176, 53, 71, 227, 4, 1, 130, 88,\n\t\t163, 6, 16, 216, 125, 22, 186, 85, 91, 64, 200, 116, 11, 35,\n\t\t140, 17, 33, 170, 32, 212, 97, 84, 0, 240, 127, 48, 53, 181,\n\t\t98, 218, 0, 224, 7, 170, 90, 175, 33, 0, 20, 112, 126, 175,\n\t\t19, 70, 148, 1, 96, 206, 153, 99, 89, 38, 2, 29, 112, 137,\n\t\t8, 16, 152, 33, 2, 212, 4, 140, 56, 210, 169, 32, 192, 222,\n\t\t133, 4, 86, 185, 212, 159, 2, 6, 196, 183, 95, 196, 20, 35,\n\t\t110, 96, 142, 192, 18, 128, 113, 254, 251, 48, 5, 120, 55,\n\t\t0, 14, 162, 124, 32, 68, 132, 254, 63, 140, 189, 9, 152, 37,\n\t\t215, 85, 38, 120, 207, 93, 99, 223, 151, 183, 111, 241, 222,\n\t\t139, 92, 95, 102, 190, 45, 178, 50, 179, 50, 107, 47, 237,\n\t\t75, 105, 173, 210, 86, 90, 170, 100, 89, 178, 145, 101, 33,\n\t\t201, 171, 202, 178, 176, 45, 131, 45, 90, 182, 219, 54, 116,\n\t\t27, 25, 108, 240, 210, 76, 219, 198, 205, 0, 22, 118, 129,\n\t\t13, 195, 242, 25, 220, 124, 211, 124, 52, 159, 1, 15, 244,\n\t\t48, 243, 205, 184, 27, 104, 192, 216, 131, 157, 53, 95, 220,\n\t\t120, 89, 42, 45, 184, 187, 42, 95, 172, 247, 70, 220, 184,\n\t\t17, 247, 222, 115, 238, 57, 231, 255, 153, 66, 20, 224, 18,\n\t\t127, 254, 123, 23, 254, 10, 31, 128, 231, 81, 140, 230, 208,\n\t\t38, 66, 61, 139, 216, 120, 34, 193, 52, 108, 152, 20, 192,\n\t\t235, 65, 58, 25, 167, 125, 30, 186, 169, 91, 64, 139, 113,\n\t\t38, 231, 122, 119, 112, 40, 44, 201, 225, 22, 114, 188, 73,\n\t\t116, 77, 37, 228, 235, 31, 54, 137, 86, 110, 158, 233, 165,\n\t\t71, 247, 135, 209, 95, 123, 138, 126, 231, 244, 170, 205,\n\t\t149, 253, 187, 159, 108, 185, 174, 82, 81, 213, 119, 221,\n\t\t109, 18, 173, 210, 28, 92, 119, 21, 149, 60, 72, 151, 79,\n\t\t167, 212, 32, 170, 145, 172, 155, 84, 137, 133, 231, 222,\n\t\t244, 227, 77, 70, 44, 115, 247, 147, 117, 248, 25, 173, 28,\n\t\t110, 237, 203, 22, 30, 82, 19, 157, 27, 132, 174, 76, 19,\n\t\t153, 214, 93, 179, 37, 143, 252, 15, 46, 252, 57, 252, 7,\n\t\t248, 57, 228, 162, 24, 213, 209, 28, 90, 150, 22, 22, 27,\n\t\t243, 126, 74, 250, 211, 172, 55, 141, 108, 72, 69, 156, 77,\n\t\t251, 44, 206, 210, 62, 247, 183, 105, 150, 250, 13, 128, 233,\n\t\t10, 8, 248, 176, 107, 24, 255, 111, 162, 36, 236, 1, 98, 234,\n\t\t224, 88, 145, 98, 105, 191, 254, 121, 23, 211, 221, 255, 231,\n\t\t99, 119, 127, 143, 178, 71, 129, 234, 138, 138, 159, 188,\n\t\t1, 56, 248, 92, 125, 237, 41, 184, 14, 154, 230, 255, 117,\n\t\t189, 73, 29, 184, 221, 10, 241, 50, 142, 221, 246, 90, 211,\n\t\t153, 163, 52, 251, 135, 191, 142, 129, 239, 62, 143, 213,\n\t\t146, 31, 210, 223, 218, 253, 175, 4, 96, 63, 39, 234, 127,\n\t\t66, 179, 121, 210, 63, 129, 223, 129, 79, 162, 10, 234, 73,\n\t\t156, 108, 212, 139, 132, 5, 139, 16, 74, 20, 218, 116, 15,\n\t\t25, 105, 186, 31, 70, 67, 188, 7, 11, 51, 25, 167, 50, 174,\n\t\t76, 118, 233, 18, 11, 104, 146, 76, 198, 219, 68, 190, 18,\n\t\t169, 171, 164, 23, 253, 36, 242, 46, 30, 126, 197, 182, 213,\n\t\t56, 122, 254, 193, 201, 116, 50, 109, 69, 15, 86, 230, 230,\n\t\t230, 222, 233, 26, 134, 194, 85, 246, 94, 175, 233, 245, 162,\n\t\t26, 183, 44, 222, 45, 125, 224, 65, 34, 116, 223, 26, 173,\n\t\t71, 205, 102, 244, 8, 87, 25, 83, 185, 98, 16, 46, 190, 187,\n\t\t51, 168, 85, 172, 249, 190, 99, 219, 78, 255, 108, 212, 154,\n\t\t175, 174, 238, 238, 26, 174, 193, 85, 174, 124, 202, 107,\n\t\t186, 107, 245, 242, 52, 43, 215, 205, 121, 205, 50, 85, 65,\n\t\t84, 149, 54, 195, 179, 81, 235, 253, 92, 213, 53, 102, 40,\n\t\t84, 97, 175, 240, 139, 106, 74, 228, 173, 151, 35, 251, 247,\n\t\t167, 241, 104, 56, 157, 200, 217, 241, 225, 116, 18, 191,\n\t\t184, 189, 31, 250, 211, 24, 238, 78, 215, 247, 216, 107, 134,\n\t\t224, 168, 235, 65, 253, 167, 52, 43, 168, 127, 110, 182, 6,\n\t\t71, 133, 231, 247, 18, 0, 78, 215, 63, 173, 58, 80, 15, 44,\n\t\t237, 167, 234, 129, 51, 91, 175, 171, 14, 188, 140, 243, 236,\n\t\t166, 75, 185, 213, 146, 78, 161, 82, 140, 134, 163, 161, 224,\n\t\t201, 2, 200, 221, 98, 54, 108, 186, 183, 203, 103, 250, 71,\n\t\t255, 226, 129, 89, 39, 156, 231, 202, 166, 147, 105, 177,\n\t\t158, 1, 67, 255, 28, 85, 223, 42, 56, 33, 22, 85, 183, 28,\n\t\t149, 96, 197, 156, 152, 10, 105, 96, 80, 40, 134, 18, 213,\n\t\t72, 74, 24, 174, 3, 209, 137, 162, 214, 76, 76, 25, 77, 40,\n\t\t199, 74, 211, 23, 152, 224, 178, 32, 108, 112, 27, 199, 77,\n\t\t162, 208, 131, 42, 117, 103, 179, 13, 150, 202, 149, 166,\n\t\t170, 48, 113, 140, 16, 204, 56, 153, 168, 244, 16, 102, 84,\n\t\t120, 225, 78, 157, 10, 238, 29, 91, 116, 24, 37, 85, 65, 217,\n\t\t81, 44, 148, 254, 37, 248, 249, 54, 106, 163, 3, 232, 120,\n\t\t193, 91, 197, 94, 142, 213, 85, 184, 62, 38, 82, 134, 220,\n\t\t134, 209, 176, 89, 248, 40, 246, 211, 209, 116, 50, 157, 65,\n\t\t6, 190, 200, 65, 56, 205, 250, 145, 68, 206, 45, 98, 111,\n\t\t250, 51, 232, 162, 98, 11, 14, 156, 159, 92, 121, 229, 36,\n\t\t95, 124, 81, 21, 186, 162, 48, 160, 181, 46, 54, 53, 161,\n\t\t62, 193, 84, 213, 240, 28, 184, 1, 3, 99, 66, 209, 52, 173,\n\t\t149, 52, 59, 142, 101, 43, 115, 58, 140, 192, 178, 110, 55,\n\t\t52, 205, 52, 53, 205, 216, 91, 183, 138, 11, 229, 139, 63,\n\t\t36, 156, 233, 254, 143, 159, 82, 52, 114, 140, 80, 226, 185,\n\t\t66, 112, 238, 232, 122, 94, 197, 189, 94, 39, 101, 84, 156,\n\t\t117, 108, 203, 101, 134, 17, 232, 250, 19, 134, 225, 235,\n\t\t250, 140, 11, 244, 239, 164, 204, 221, 67, 115, 8, 245, 68,\n\t\t154, 77, 163, 38, 68, 156, 12, 103, 206, 83, 43, 192, 178,\n\t\t21, 233, 204, 178, 2, 210, 216, 176, 13, 164, 63, 129, 242,\n\t\t111, 215, 94, 152, 171, 48, 157, 57, 135, 142, 60, 114, 232,\n\t\t185, 179, 71, 55, 98, 104, 174, 106, 223, 188, 163, 91, 78,\n\t\t12, 205, 90, 237, 44, 255, 121, 240, 174, 183, 244, 63, 179,\n\t\t239, 158, 169, 46, 220, 212, 241, 128, 29, 122, 227, 225,\n\t\t179, 207, 37, 215, 245, 204, 78, 181, 170, 197, 237, 249,\n\t\t222, 170, 66, 205, 3, 55, 60, 184, 251, 206, 237, 99, 5, 159,\n\t\t214, 121, 124, 16, 206, 163, 4, 109, 160, 163, 232, 186, 153,\n\t\t5, 88, 146, 218, 166, 22, 12, 32, 221, 166, 233, 0, 23, 160,\n\t\t1, 219, 56, 138, 167, 17, 185, 136, 224, 16, 137, 85, 46,\n\t\t166, 217, 116, 39, 151, 236, 211, 78, 63, 157, 65, 110, 22,\n\t\t208, 155, 146, 102, 39, 126, 241, 40, 252, 245, 210, 96, 176,\n\t\t148, 125, 112, 127, 251, 170, 237, 57, 157, 104, 37, 87, 167,\n\t\t94, 69, 47, 53, 89, 195, 243, 244, 185, 157, 43, 219, 219,\n\t\t31, 120, 230, 174, 119, 191, 251, 203, 239, 26, 155, 117,\n\t\t12, 213, 114, 224, 4, 139, 75, 240, 122, 43, 128, 78, 18,\n\t\t108, 181, 19, 176, 130, 208, 122, 182, 216, 133, 27, 107,\n\t\t215, 93, 127, 93, 173, 91, 50, 91, 53, 174, 9, 162, 86, 171,\n\t\t137, 227, 15, 183, 143, 53, 203, 27, 174, 43, 52, 94, 111,\n\t\t154, 165, 221, 95, 186, 229, 205, 183, 220, 178, 127, 50,\n\t\t191, 148, 81, 192, 166, 238, 248, 250, 27, 124, 43, 242, 220,\n\t\t16, 172, 160, 45, 215, 166, 71, 169, 23, 94, 60, 136, 94,\n\t\t214, 30, 171, 47, 182, 71, 200, 101, 11, 73, 210, 96, 195,\n\t\t40, 139, 147, 14, 111, 194, 172, 85, 125, 232, 204, 21, 81,\n\t\t96, 125, 76, 235, 104, 31, 60, 117, 211, 141, 87, 70, 158,\n\t\t249, 240, 172, 109, 236, 254, 215, 199, 1, 230, 220, 95, 53,\n\t\t205, 95, 188, 247, 222, 121, 251, 233, 252, 250, 14, 66, 23,\n\t\t190, 13, 231, 225, 137, 255, 33, 126, 34, 130, 52, 139, 89,\n\t\t38, 137, 157, 36, 61, 193, 222, 90, 228, 235, 44, 20, 177,\n\t\t72, 119, 160, 160, 125, 218, 129, 88, 164, 241, 10, 72, 46,\n\t\t168, 56, 139, 69, 126, 0, 238, 156, 94, 113, 205, 5, 52, 232,\n\t\t100, 167, 90, 110, 47, 81, 235, 214, 122, 73, 173, 214, 105,\n\t\t204, 215, 67, 18, 213, 131, 112, 171, 6, 229, 197, 38, 171,\n\t\t182, 231, 149, 100, 49, 28, 88, 111, 61, 94, 202, 150, 23,\n\t\t107, 163, 104, 255, 228, 58, 247, 240, 161, 147, 208, 25,\n\t\t164, 75, 172, 214, 105, 212, 163, 90, 188, 153, 120, 201,\n\t\t33, 175, 228, 173, 213, 236, 90, 203, 236, 24, 134, 214, 87,\n\t\t35, 117, 69, 183, 205, 121, 235, 223, 240, 3, 218, 101, 251,\n\t\t172, 233, 31, 211, 211, 202, 191, 139, 150, 163, 161, 127,\n\t\t139, 254, 201, 250, 161, 202, 108, 206, 245, 27, 240, 13,\n\t\t120, 30, 49, 20, 160, 3, 232, 8, 66, 190, 152, 228, 170, 100,\n\t\t225, 140, 22, 197, 50, 30, 111, 138, 120, 186, 154, 14, 88,\n\t\t218, 95, 1, 46, 118, 160, 8, 178, 155, 52, 72, 24, 136, 56,\n\t\t202, 197, 211, 104, 141, 143, 59, 193, 159, 29, 153, 78, 29,\n\t\t176, 155, 253, 149, 238, 198, 213, 215, 194, 59, 26, 214,\n\t\t150, 98, 40, 156, 48, 112, 231, 213, 254, 18, 118, 186, 203,\n\t\t147, 197, 102, 54, 23, 215, 109, 171, 79, 92, 102, 26, 98,\n\t\t41, 112, 96, 251, 143, 222, 89, 254, 202, 27, 223, 74, 39,\n\t\t70, 214, 73, 55, 197, 84, 185, 109, 107, 235, 212, 238, 173,\n\t\t13, 182, 196, 117, 69, 227, 38, 233, 91, 118, 133, 136, 53,\n\t\t117, 163, 183, 176, 77, 199, 184, 186, 176, 175, 181, 186,\n\t\t160, 205, 185, 32, 168, 98, 106, 91, 190, 227, 20, 223, 6,\n\t\t66, 240, 183, 112, 14, 41, 40, 68, 40, 107, 224, 184, 189,\n\t\t141, 211, 6, 137, 147, 1, 73, 167, 183, 46, 191, 253, 113,\n\t\t107, 247, 137, 225, 213, 220, 156, 127, 248, 141, 119, 90,\n\t\t167, 213, 201, 209, 163, 29, 252, 127, 243, 125, 175, 219,\n\t\t162, 87, 159, 249, 61, 190, 125, 250, 39, 175, 90, 190, 113,\n\t\t103, 217, 188, 254, 82, 30, 94, 51, 191, 22, 19, 151, 58,\n\t\t85, 242, 61, 132, 199, 243, 141, 231, 6, 91, 71, 238, 185,\n\t\t231, 153, 123, 90, 95, 122, 237, 149, 87, 61, 112, 21, 52,\n\t\t63, 216, 191, 247, 39, 238, 189, 247, 88, 182, 212, 188, 42,\n\t\t215, 189, 10, 236, 238, 11, 23, 254, 12, 190, 10, 31, 71,\n\t\t87, 163, 235, 37, 226, 232, 139, 198, 84, 81, 196, 201, 228,\n\t\t213, 154, 183, 209, 254, 54, 222, 129, 116, 182, 9, 59, 144,\n\t\t31, 144, 221, 79, 38, 129, 28, 26, 184, 9, 217, 180, 1, 249,\n\t\t5, 242, 181, 200, 82, 1, 95, 102, 150, 181, 236, 80, 211,\n\t\t114, 42, 212, 185, 211, 33, 212, 84, 237, 10, 115, 198, 76,\n\t\t247, 41, 6, 174, 139, 229, 198, 132, 233, 62, 33, 212, 208,\n\t\t150, 29, 121, 196, 174, 82, 231, 14, 155, 89, 150, 176, 76,\n\t\t13, 59, 203, 86, 85, 53, 173, 65, 115, 89, 243, 236, 127,\n\t\t190, 179, 121, 199, 23, 236, 42, 181, 87, 236, 10, 99, 182,\n\t\t185, 210, 26, 104, 190, 69, 152, 101, 174, 122, 96, 105, 194,\n\t\t54, 52, 108, 159, 114, 193, 212, 53, 207, 38, 246, 138, 60,\n\t\t192, 44, 107, 165, 153, 103, 32, 152, 235, 98, 197, 102, 102,\n\t\t189, 202, 236, 83, 54, 33, 230, 190, 214, 169, 166, 124, 55,\n\t\t244, 194, 55, 225, 215, 225, 147, 146, 191, 14, 101, 253,\n\t\t92, 39, 41, 34, 111, 130, 124, 212, 244, 179, 153, 227, 74,\n\t\t3, 139, 192, 130, 84, 58, 72, 68, 219, 100, 50, 189, 104,\n\t\t69, 58, 176, 165, 253, 216, 23, 30, 87, 15, 107, 237, 8, 232,\n\t\t210, 155, 159, 249, 76, 90, 95, 153, 207, 0, 26, 230, 74,\n\t\t21, 108, 71, 52, 221, 185, 206, 144, 59, 173, 146, 15, 117,\n\t\t115, 165, 236, 89, 188, 178, 126, 232, 151, 30, 87, 159, 254,\n\t\t194, 150, 26, 88, 140, 128, 207, 22, 129, 206, 87, 0, 22,\n\t\t251, 93, 95, 216, 142, 165, 25, 20, 74, 11, 109, 0, 213, 238,\n\t\t196, 125, 79, 177, 44, 75, 51, 177, 196, 90, 255, 50, 188,\n\t\t0, 95, 67, 77, 233, 169, 25, 71, 121, 91, 88, 193, 253, 98,\n\t\t82, 119, 39, 151, 254, 250, 51, 238, 210, 38, 100, 51, 34,\n\t\t83, 27, 120, 19, 34, 201, 89, 140, 121, 145, 56, 134, 39,\n\t\t151, 132, 242, 219, 84, 197, 248, 63, 114, 101, 89, 225, 31,\n\t\t17, 226, 14, 69, 220, 200, 109, 113, 132, 139, 13, 193, 63,\n\t\t51, 22, 249, 225, 143, 115, 229, 118, 193, 239, 226, 14, 223,\n\t\t39, 20, 49, 84, 196, 103, 23, 185, 242, 7, 170, 242, 111,\n\t\t22, 56, 255, 4, 1, 12, 95, 19, 188, 195, 249, 7, 57, 191,\n\t\t130, 243, 19, 220, 224, 7, 57, 95, 98, 252, 23, 110, 230,\n\t\t188, 203, 249, 207, 8, 126, 25, 231, 183, 115, 131, 103, 156,\n\t\t243, 148, 243, 79, 46, 112, 254, 179, 130, 201, 182, 125,\n\t\t65, 218, 69, 4, 106, 161, 33, 218, 190, 4, 211, 58, 224, 137,\n\t\t40, 72, 173, 87, 96, 18, 79, 227, 89, 204, 34, 151, 172, 5,\n\t\t123, 220, 129, 233, 222, 24, 45, 123, 130, 209, 16, 126, 162,\n\t\t59, 74, 146, 209, 173, 135, 87, 94, 71, 214, 218, 86, 45,\n\t\t178, 201, 198, 221, 113, 253, 56, 28, 90, 105, 78, 26, 255,\n\t\t216, 173, 114, 81, 241, 29, 187, 239, 211, 144, 123, 189,\n\t\t234, 223, 47, 181, 130, 110, 176, 220, 108, 193, 92, 158,\n\t\t173, 187, 189, 114, 248, 218, 246, 146, 230, 149, 173, 248,\n\t\t193, 212, 194, 103, 86, 14, 53, 38, 255, 125, 220, 195, 154,\n\t\t210, 239, 59, 10, 168, 184, 243, 159, 119, 150, 130, 36, 108,\n\t\t46, 23, 109, 230, 43, 114, 236, 67, 232, 127, 71, 168, 151,\n\t\t54, 104, 32, 227, 66, 59, 130, 167, 91, 32, 61, 27, 83, 201,\n\t\t201, 148, 107, 171, 194, 194, 161, 12, 55, 13, 11, 18, 139,\n\t\t213, 130, 108, 120, 173, 128, 245, 237, 103, 211, 254, 66,\n\t\t225, 116, 218, 159, 78, 166, 185, 44, 60, 158, 142, 39, 253,\n\t\t109, 200, 5, 228, 153, 238, 44, 217, 157, 86, 27, 133, 75,\n\t\t101, 28, 229, 194, 140, 28, 102, 243, 17, 178, 152, 90, 30,\n\t\t75, 183, 131, 73, 191, 51, 25, 64, 126, 72, 186, 237, 70,\n\t\t114, 70, 106, 91, 250, 178, 110, 195, 48, 146, 68, 19, 17,\n\t\t143, 163, 209, 106, 182, 141, 71, 145, 5, 225, 106, 222, 65,\n\t\t18, 60, 228, 84, 161, 4, 4, 37, 96, 234, 20, 24, 99, 186,\n\t\t73, 8, 165, 152, 130, 226, 249, 162, 172, 98, 74, 137, 194,\n\t\t65, 16, 76, 65, 205, 117, 44, 46, 217, 118, 234, 185, 62,\n\t\t134, 37, 195, 9, 0, 168, 4, 239, 197, 156, 211, 197, 94, 61,\n\t\t168, 219, 160, 56, 4, 220, 0, 11, 157, 48, 12, 132, 0, 225,\n\t\t76, 178, 224, 229, 170, 32, 151, 17, 236, 28, 99, 21, 23,\n\t\t113, 233, 148, 73, 88, 76, 12, 204, 247, 203, 219, 19, 94,\n\t\t219, 23, 168, 37, 140, 27, 75, 134, 83, 119, 76, 192, 102,\n\t\t17, 168, 206, 116, 162, 8, 204, 84, 155, 17, 66, 8, 38, 223,\n\t\t189, 198, 240, 84, 65, 48, 166, 166, 0, 140, 117, 204, 168,\n\t\t66, 25, 99, 50, 230, 131, 97, 181, 82, 86, 91, 14, 177, 12,\n\t\t80, 211, 128, 151, 176, 178, 160, 97, 138, 85, 173, 136, 187,\n\t\t207, 127, 196, 96, 12, 176, 130, 49, 239, 130, 213, 32, 148,\n\t\t1, 19, 138, 30, 48, 194, 128, 82, 203, 0, 194, 24, 116, 23,\n\t\t149, 104, 89, 104, 242, 233, 136, 169, 96, 66, 243, 140, 152,\n\t\t128, 38, 125, 81, 249, 146, 91, 87, 243, 187, 115, 12, 208,\n\t\t93, 80, 12, 86, 119, 173, 200, 113, 116, 108, 98, 78, 77,\n\t\t174, 96, 40, 183, 185, 166, 97, 40, 235, 58, 101, 12, 171,\n\t\t156, 184, 101, 172, 114, 75, 87, 177, 34, 113, 125, 188, 11,\n\t\t231, 225, 191, 73, 187, 55, 130, 56, 180, 249, 116, 20, 103,\n\t\t54, 217, 129, 120, 7, 139, 44, 205, 210, 184, 248, 191, 2,\n\t\t113, 26, 103, 233, 14, 52, 65, 196, 54, 192, 183, 104, 57,\n\t\t93, 191, 206, 85, 52, 15, 7, 135, 239, 88, 143, 68, 40, 130,\n\t\t147, 251, 172, 183, 217, 191, 120, 226, 231, 223, 120, 246,\n\t\t7, 205, 183, 62, 235, 173, 13, 190, 186, 248, 144, 17, 210,\n\t\t126, 221, 16, 138, 169, 1, 173, 213, 150, 174, 57, 210, 47,\n\t\t25, 244, 0, 164, 213, 110, 13, 95, 193, 204, 193, 232, 72,\n\t\t236, 77, 181, 183, 120, 15, 61, 217, 191, 226, 222, 190, 119,\n\t\t227, 155, 215, 239, 86, 221, 158, 94, 150, 97, 89, 8, 25,\n\t\t23, 46, 160, 163, 248, 28, 220, 141, 108, 212, 64, 7, 208,\n\t\t53, 232, 20, 186, 27, 189, 14, 61, 138, 222, 139, 62, 133,\n\t\t62, 135, 126, 125, 15, 239, 55, 29, 74, 36, 162, 180, 1, 189,\n\t\t32, 158, 209, 127, 199, 253, 196, 130, 56, 147, 108, 218,\n\t\t123, 140, 224, 5, 132, 68, 39, 87, 238, 10, 167, 157, 52,\n\t\t27, 205, 108, 162, 210, 147, 33, 158, 36, 147, 25, 231, 77,\n\t\t56, 201, 51, 46, 194, 171, 30, 146, 112, 37, 195, 58, 4, 210,\n\t\t84, 44, 177, 189, 58, 153, 76, 56, 67, 156, 8, 165, 3, 197,\n\t\t165, 103, 37, 248, 86, 152, 100, 210, 42, 158, 76, 68, 146,\n\t\t134, 9, 62, 119, 240, 225, 195, 73, 215, 48, 206, 188, 127,\n\t\t52, 152, 252, 224, 115, 163, 193, 228, 253, 103, 122, 29,\n\t\t83, 59, 243, 254, 45, 85, 213, 205, 32, 112, 12, 213, 177,\n\t\t116, 211, 180, 77, 199, 84, 108, 242, 152, 237, 53, 124, 167,\n\t\t219, 81, 82, 195, 113, 12, 219, 180, 44, 115, 159, 146, 26,\n\t\t182, 109, 216, 134, 101, 25, 251, 8, 179, 85, 236, 99, 91,\n\t\t237, 41, 59, 202, 88, 177, 136, 95, 171, 17, 159, 88, 74,\n\t\t170, 108, 18, 145, 127, 40, 24, 19, 9, 172, 240, 107, 173,\n\t\t105, 147, 93, 49, 89, 76, 156, 53, 190, 212, 113, 214, 106,\n\t\t171, 71, 25, 192, 21, 119, 232, 154, 198, 85, 75, 215, 44,\n\t\t69, 85, 168, 80, 153, 224, 134, 166, 91, 130, 92, 157, 89,\n\t\t158, 103, 101, 153, 235, 54, 47, 179, 156, 146, 211, 88, 180,\n\t\t173, 203, 46, 110, 237, 236, 199, 150, 178, 141, 49, 55, 85,\n\t\t117, 199, 82, 76, 134, 35, 51, 148, 187, 55, 1, 112, 193,\n\t\t152, 96, 140, 49, 4, 23, 46, 92, 248, 62, 124, 21, 158, 206,\n\t\t37, 8, 32, 146, 171, 34, 217, 1, 73, 34, 149, 22, 211, 11,\n\t\t240, 149, 35, 74, 253, 254, 161, 166, 43, 95, 17, 130, 139,\n\t\t111, 159, 117, 113, 0, 239, 179, 61, 184, 99, 247, 55, 59,\n\t\t206, 85, 171, 218, 3, 255, 78, 0, 102, 31, 106, 177, 64, 252,\n\t\t20, 115, 209, 75, 124, 198, 230, 94, 169, 25, 123, 50, 186,\n\t\t188, 195, 197, 104, 114, 41, 40, 75, 18, 193, 199, 172, 32,\n\t\t176, 118, 159, 206, 151, 31, 124, 248, 56, 103, 215, 188,\n\t\t230, 26, 118, 167, 56, 34, 196, 17, 113, 39, 135, 231, 247,\n\t\t206, 193, 91, 173, 96, 247, 3, 198, 45, 235, 227, 99, 199,\n\t\t198, 65, 126, 86, 4, 235, 51, 185, 251, 60, 188, 32, 177,\n\t\t115, 108, 233, 131, 146, 78, 226, 48, 206, 38, 105, 150, 138,\n\t\t52, 131, 23, 254, 242, 79, 111, 253, 177, 247, 156, 185, 165,\n\t\t115, 235, 205, 39, 225, 192, 5, 116, 238, 220, 31, 47, 255,\n\t\t232, 149, 87, 126, 120, 99, 18, 78, 86, 50, 132, 226, 139,\n\t\t24, 185, 4, 233, 114, 190, 229, 165, 50, 245, 62, 180, 31,\n\t\t29, 68, 71, 209, 229, 232, 90, 116, 3, 186, 5, 221, 129, 238,\n\t\t69, 15, 162, 31, 65, 40, 234, 164, 163, 52, 8, 147, 241, 126,\n\t\t24, 197, 81, 156, 244, 211, 172, 88, 134, 201, 100, 239, 23,\n\t\t207, 126, 123, 219, 108, 154, 141, 184, 72, 39, 163, 80, 76,\n\t\t70, 97, 58, 195, 25, 36, 253, 180, 205, 5, 153, 29, 101, 114,\n\t\t47, 189, 152, 114, 118, 139, 240, 159, 31, 91, 253, 227, 175,\n\t\t221, 127, 127, 96, 249, 239, 229, 244, 30, 194, 95, 143, 241,\n\t\t217, 251, 47, 253, 7, 38, 39, 15, 0, 185, 103, 111, 255, 247,\n\t\t3, 19, 122, 150, 87, 190, 255, 254, 251, 119, 127, 129, 26,\n\t\t112, 131, 162, 61, 234, 155, 143, 10, 124, 243, 253, 247,\n\t\t223, 223, 106, 125, 156, 18, 204, 204, 99, 142, 106, 152,\n\t\t137, 161, 235, 198, 81, 215, 253, 69, 198, 18, 140, 143, 42,\n\t\t202, 107, 108, 251, 168, 166, 37, 134, 241, 113, 221, 48,\n\t\t244, 95, 211, 180, 158, 97, 92, 161, 40, 87, 227, 221, 251,\n\t\t109, 219, 177, 224, 141, 140, 125, 208, 182, 127, 141, 197,\n\t\t182, 217, 83, 157, 128, 157, 48, 77, 204, 72, 199, 117, 81,\n\t\t174, 157, 92, 248, 117, 252, 38, 248, 13, 180, 140, 46, 71,\n\t\t175, 71, 8, 44, 102, 231, 114, 97, 49, 59, 188, 3, 211, 29,\n\t\t216, 166, 217, 116, 52, 205, 210, 177, 12, 223, 206, 197,\n\t\t148, 56, 72, 251, 147, 105, 193, 186, 26, 15, 103, 32, 191,\n\t\t50, 40, 34, 233, 79, 166, 32, 9, 19, 185, 84, 106, 179, 113,\n\t\t158, 91, 78, 223, 178, 24, 254, 149, 215, 116, 77, 70, 128,\n\t\t17, 253, 131, 102, 216, 24, 155, 170, 241, 33, 221, 169, 115,\n\t\t238, 132, 147, 14, 198, 12, 128, 234, 150, 77, 128, 48, 2,\n\t\t95, 16, 212, 146, 177, 53, 24, 52, 7, 227, 32, 196, 96, 104,\n\t\t0, 12, 224, 157, 134, 170, 52, 122, 65, 104, 124, 72, 207,\n\t\t7, 21, 44, 84, 79, 7, 76, 20, 202, 8, 35, 212, 227, 6, 83,\n\t\t8, 188, 191, 183, 217, 140, 53, 133, 181, 61, 251, 27, 46,\n\t\t166, 253, 170, 239, 126, 195, 86, 109, 194, 221, 82, 214,\n\t\t81, 8, 166, 84, 211, 116, 25, 160, 135, 53, 130, 117, 77,\n\t\t83, 8, 86, 52, 7, 147, 32, 194, 184, 20, 0, 193, 98, 247,\n\t\t253, 174, 239, 53, 60, 130, 221, 111, 216, 158, 99, 17, 202,\n\t\t13, 167, 19, 16, 66, 84, 202, 242, 251, 170, 68, 97, 130,\n\t\t21, 115, 240, 69, 92, 156, 138, 222, 134, 126, 12, 189, 15,\n\t\t125, 20, 125, 18, 125, 30, 116, 168, 33, 148, 229, 31, 89,\n\t\t63, 155, 174, 5, 140, 139, 56, 125, 197, 47, 17, 105, 63,\n\t\t21, 217, 171, 254, 38, 227, 73, 154, 77, 179, 52, 126, 213,\n\t\t223, 14, 196, 195, 56, 19, 209, 171, 253, 154, 32, 114, 49,\n\t\t39, 230, 123, 214, 211, 153, 188, 38, 130, 88, 198, 234, 167,\n\t\t253, 9, 79, 47, 217, 190, 244, 120, 220, 223, 15, 60, 137,\n\t\t100, 155, 239, 23, 65, 233, 249, 51, 72, 148, 128, 40, 78,\n\t\t6, 48, 219, 92, 75, 100, 180, 191, 164, 8, 13, 68, 127, 81,\n\t\t114, 60, 100, 171, 92, 140, 243, 11, 14, 27, 32, 129, 44,\n\t\t226, 72, 140, 134, 81, 56, 205, 70, 195, 108, 82, 92, 54,\n\t\t26, 13, 179, 92, 18, 250, 183, 76, 201, 59, 85, 10, 75, 68,\n\t\t44, 46, 43, 70, 167, 103, 56, 229, 186, 19, 56, 126, 16, 9,\n\t\t61, 138, 48, 142, 34, 93, 68, 129, 111, 251, 110, 173, 236,\n\t\t152, 221, 142, 161, 44, 47, 42, 100, 52, 194, 217, 58, 230,\n\t\t27, 155, 92, 205, 54, 85, 99, 109, 106, 88, 115, 3, 203, 169,\n\t\t118, 28, 199, 240, 93, 151, 82, 215, 9, 12, 215, 238, 84,\n\t\t109, 123, 48, 103, 25, 211, 53, 67, 221, 92, 87, 249, 214,\n\t\t6, 199, 235, 235, 48, 186, 226, 254, 231, 94, 243, 154, 231,\n\t\t174, 61, 249, 228, 201, 147, 79, 190, 149, 50, 66, 9, 209,\n\t\t230, 103, 107, 127, 182, 254, 186, 98, 50, 149, 121, 216,\n\t\t196, 42, 197, 28, 84, 193, 114, 137, 137, 128, 10, 28, 176,\n\t\t74, 1, 60, 204, 9, 88, 26, 56, 196, 208, 57, 102, 64, 65,\n\t\t7, 140, 65, 195, 130, 18, 182, 77, 117, 131, 61, 200, 75,\n\t\t166, 208, 12, 195, 192, 152, 18, 240, 126, 206, 22, 114, 146,\n\t\t191, 28, 4, 177, 31, 184, 205, 170, 103, 119, 90, 182, 222,\n\t\t235, 234, 44, 237, 243, 126, 31, 88, 63, 101, 90, 210, 211,\n\t\t173, 102, 199, 118, 43, 13, 47, 240, 227, 32, 80, 45, 211,\n\t\t228, 10, 33, 190, 239, 104, 174, 219, 40, 59, 214, 82, 106,\n\t\t106, 235, 99, 77, 57, 184, 35, 232, 241, 99, 4, 46, 187, 140,\n\t\t30, 59, 78, 197, 206, 65, 69, 27, 175, 235, 70, 186, 100,\n\t\t57, 229, 134, 235, 233, 142, 239, 19, 34, 132, 97, 89, 237,\n\t\t252, 113, 239, 255, 155, 183, 159, 58, 245, 246, 83, 111,\n\t\t34, 152, 48, 37, 23, 23, 169, 230, 92, 178, 77, 94, 220, 214,\n\t\t79, 17, 243, 97, 63, 20, 7, 4, 235, 98, 131, 16, 151, 250,\n\t\t38, 209, 9, 1, 5, 99, 151, 228, 71, 0, 152, 163, 17, 74, 93,\n\t\t133, 86, 49, 193, 97, 205, 98, 44, 151, 16, 21, 12, 38, 99,\n\t\t24, 76, 162, 25, 66, 56, 220, 84, 218, 103, 188, 72, 28, 50,\n\t\t20, 41, 11, 138, 189, 121, 151, 239, 202, 113, 103, 51, 215,\n\t\t97, 253, 109, 82, 184, 141, 73, 236, 135, 89, 240, 157, 133,\n\t\t195, 32, 180, 160, 211, 159, 244, 115, 25, 100, 230, 104,\n\t\t186, 13, 69, 10, 137, 75, 235, 117, 36, 204, 119, 127, 58,\n\t\t26, 230, 154, 236, 104, 40, 33, 125, 190, 5, 68, 141, 236,\n\t\t123, 91, 134, 202, 53, 222, 238, 220, 167, 91, 28, 131, 229,\n\t\t89, 64, 28, 243, 76, 167, 205, 53, 67, 229, 173, 123, 157,\n\t\t80, 37, 126, 87, 89, 91, 83, 61, 47, 84, 15, 31, 86, 67, 207,\n\t\t83, 225, 110, 24, 105, 102, 160, 69, 134, 106, 114, 141, 247,\n\t\t90, 13, 170, 42, 28, 176, 102, 154, 26, 6, 69, 83, 27, 173,\n\t\t30, 215, 56, 215, 184, 17, 233, 190, 185, 251, 37, 7, 110,\n\t\t186, 9, 172, 70, 240, 216, 99, 65, 195, 130, 207, 128, 196,\n\t\t67, 55, 46, 124, 25, 254, 63, 248, 13, 52, 66, 167, 208, 25,\n\t\t244, 70, 116, 14, 253, 226, 44, 138, 83, 36, 22, 78, 185,\n\t\t176, 72, 135, 167, 3, 50, 73, 179, 100, 32, 164, 224, 191,\n\t\t9, 13, 28, 79, 251, 185, 106, 176, 32, 169, 97, 69, 196, 27,\n\t\t56, 206, 91, 213, 14, 68, 219, 144, 13, 183, 89, 26, 116,\n\t\t38, 253, 180, 211, 159, 142, 100, 96, 70, 190, 209, 0, 17,\n\t\t240, 126, 44, 3, 183, 251, 73, 103, 92, 212, 64, 122, 49,\n\t\t38, 110, 5, 250, 51, 248, 245, 66, 235, 172, 67, 131, 198,\n\t\t67, 25, 222, 29, 71, 240, 66, 187, 166, 19, 211, 9, 253, 200,\n\t\t114, 65, 116, 174, 232, 133, 42, 209, 168, 74, 53, 76, 185,\n\t\t124, 87, 97, 55, 246, 85, 25, 102, 189, 218, 184, 175, 155,\n\t\t140, 111, 106, 149, 180, 184, 38, 26, 151, 47, 81, 119, 121,\n\t\t126, 213, 158, 199, 128, 53, 119, 174, 14, 10, 61, 210, 60,\n\t\t208, 224, 224, 154, 145, 235, 25, 239, 49, 113, 147, 18, 74,\n\t\t23, 35, 152, 235, 81, 76, 232, 194, 10, 112, 177, 194, 197,\n\t\t209, 49, 231, 27, 87, 233, 90, 205, 114, 119, 162, 146, 239,\n\t\t228, 250, 49, 176, 208, 181, 52, 131, 11, 69, 149, 100, 236,\n\t\t196, 116, 155, 190, 202, 52, 205, 169, 121, 58, 188, 191,\n\t\t254, 182, 219, 227, 126, 53, 50, 53, 70, 9, 23, 52, 214, 136,\n\t\t78, 85, 74, 128, 11, 129, 241, 152, 135, 149, 102, 171, 211,\n\t\t106, 24, 175, 91, 173, 86, 32, 244, 191, 115, 205, 235, 74,\n\t\t194, 113, 128, 8, 223, 158, 187, 205, 155, 95, 153, 79, 148,\n\t\t107, 133, 32, 236, 90, 204, 56, 166, 76, 115, 227, 228, 172,\n\t\t224, 45, 44, 56, 94, 111, 47, 17, 193, 201, 184, 79, 243,\n\t\t174, 156, 16, 186, 121, 216, 188, 242, 103, 221, 144, 177,\n\t\t142, 235, 151, 194, 178, 91, 227, 204, 170, 105, 66, 183,\n\t\t133, 102, 185, 154, 138, 5, 193, 68, 45, 135, 17, 227, 134,\n\t\t169, 58, 174, 134, 208, 203, 125, 238, 95, 46, 63, 177, 105,\n\t\t218, 23, 211, 139, 163, 162, 176, 168, 136, 247, 40, 147,\n\t\t71, 195, 108, 10, 31, 240, 43, 21, 127, 247, 167, 242, 37,\n\t\t92, 69, 134, 135, 75, 118, 155, 64, 80, 53, 12, 87, 237, 9,\n\t\t39, 180, 27, 194, 9, 169, 225, 185, 130, 4, 181, 193, 161,\n\t\t3, 240, 252, 197, 212, 103, 253, 202, 135, 14, 0, 190, 70,\n\t\t85, 35, 183, 181, 96, 217, 175, 89, 167, 160, 184, 102, 133,\n\t\t7, 246, 202, 118, 217, 26, 223, 124, 2, 21, 124, 206, 232,\n\t\t52, 126, 10, 16, 90, 66, 55, 161, 39, 17, 202, 58, 253, 21,\n\t\t60, 192, 249, 7, 55, 108, 144, 166, 116, 211, 216, 193, 219,\n\t\t84, 114, 48, 224, 192, 34, 121, 217, 87, 112, 255, 85, 79,\n\t\t91, 52, 73, 135, 81, 19, 71, 139, 208, 25, 208, 194, 85, 94,\n\t\t102, 146, 76, 14, 120, 155, 142, 30, 176, 99, 202, 50, 144,\n\t\t145, 162, 237, 92, 27, 101, 208, 229, 182, 208, 49, 238, 2,\n\t\t197, 148, 145, 182, 202, 48, 94, 207, 135, 88, 13, 94, 99,\n\t\t199, 148, 174, 235, 225, 75, 18, 66, 15, 24, 48, 90, 36, 204,\n\t\t64, 166, 252, 45, 153, 80, 11, 218, 121, 167, 140, 9, 244,\n\t\t152, 35, 116, 192, 61, 134, 41, 195, 109, 45, 191, 34, 96,\n\t\t69, 117, 213, 211, 182, 34, 30, 6, 204, 25, 197, 148, 40,\n\t\t112, 165, 41, 8, 185, 18, 20, 66, 177, 202, 232, 195, 64,\n\t\t53, 69, 228, 41, 188, 127, 241, 236, 243, 197, 105, 76, 9,\n\t\t127, 213, 243, 47, 245, 43, 117, 208, 33, 116, 2, 221, 141,\n\t\t144, 39, 65, 105, 228, 92, 190, 200, 242, 241, 79, 18, 3,\n\t\t207, 34, 5, 100, 107, 148, 0, 15, 210, 140, 45, 13, 61, 97,\n\t\t16, 175, 54, 132, 180, 165, 251, 47, 143, 232, 145, 186, 216,\n\t\t69, 216, 228, 79, 191, 46, 157, 187, 38, 235, 54, 217, 208,\n\t\t36, 193, 31, 81, 12, 34, 98, 156, 16, 149, 240, 32, 214, 165,\n\t\t2, 143, 129, 114, 140, 57, 97, 156, 89, 46, 33, 92, 168, 154,\n\t\t102, 242, 134, 199, 189, 51, 47, 134, 250, 124, 238, 208,\n\t\t157, 171, 131, 167, 239, 8, 163, 27, 19, 56, 154, 206, 77,\n\t\t166, 87, 123, 196, 92, 101, 173, 126, 246, 35, 22, 3, 34,\n\t\t53, 102, 141, 18, 205, 247, 24, 104, 156, 16, 208, 109, 194,\n\t\t129, 217, 94, 16, 50, 170, 40, 138, 170, 8, 98, 18, 208, 161,\n\t\t241, 146, 72, 160, 119, 222, 113, 240, 192, 218, 224, 142,\n\t\t131, 139, 189, 19, 145, 63, 179, 181, 253, 133, 172, 155,\n\t\t21, 180, 129, 158, 66, 8, 108, 136, 69, 90, 176, 223, 38,\n\t\t43, 32, 10, 249, 126, 5, 38, 59, 146, 130, 87, 18, 228, 142,\n\t\t154, 48, 155, 199, 110, 130, 144, 150, 198, 126, 17, 181,\n\t\t20, 254, 207, 100, 142, 87, 192, 198, 50, 109, 40, 102, 19,\n\t\t75, 211, 108, 19, 228, 101, 119, 112, 10, 231, 235, 56, 212,\n\t\t235, 66, 13, 67, 93, 68, 194, 240, 3, 69, 52, 180, 128, 212,\n\t\t106, 36, 208, 107, 138, 18, 248, 134, 136, 132, 30, 250, 66,\n\t\t212, 243, 195, 143, 219, 21, 167, 179, 210, 110, 159, 94,\n\t\t201, 104, 26, 76, 45, 55, 77, 67, 115, 193, 140, 186, 61,\n\t\t219, 202, 130, 62, 155, 78, 121, 26, 78, 108, 187, 215, 141,\n\t\t141, 5, 35, 230, 84, 39, 204, 45, 113, 232, 174, 108, 47,\n\t\t245, 54, 20, 83, 96, 134, 93, 198, 3, 142, 161, 153, 223,\n\t\t77, 85, 106, 70, 72, 234, 117, 18, 26, 85, 69, 120, 129, 161,\n\t\t200, 187, 41, 106, 85, 15, 105, 165, 66, 67, 89, 136, 64,\n\t\t87, 15, 217, 21, 39, 110, 183, 87, 218, 174, 53, 103, 198,\n\t\t73, 223, 177, 199, 241, 28, 207, 111, 23, 13, 93, 59, 233,\n\t\t71, 214, 188, 29, 164, 93, 203, 25, 7, 41, 31, 15, 56, 230,\n\t\t62, 167, 30, 112, 204, 77, 101, 163, 191, 184, 189, 146, 136,\n\t\t146, 203, 136, 65, 57, 186, 148, 179, 86, 200, 25, 231, 3,\n\t\t232, 138, 75, 188, 141, 131, 40, 38, 220, 31, 102, 253, 21,\n\t\t16, 145, 31, 23, 52, 84, 123, 106, 127, 199, 2, 49, 28, 101,\n\t\t178, 215, 138, 179, 21, 144, 227, 77, 177, 239, 75, 43, 112,\n\t\t46, 230, 125, 84, 26, 67, 202, 71, 247, 61, 232, 255, 69,\n\t\t191, 11, 112, 228, 112, 115, 231, 186, 216, 245, 163, 200,\n\t\t1, 124, 224, 150, 254, 241, 125, 129, 194, 183, 84, 80, 13,\n\t\t235, 196, 106, 167, 196, 40, 227, 189, 80, 238, 31, 25, 109,\n\t\t85, 97, 207, 156, 120, 255, 193, 135, 106, 208, 93, 220, 253,\n\t\t59, 19, 240, 151, 126, 83, 133, 227, 127, 115, 197, 212, 107,\n\t\t180, 18, 215, 41, 193, 102, 121, 185, 73, 192, 3, 12, 127,\n\t\t247, 220, 93, 68, 85, 137, 220, 217, 253, 227, 198, 217, 253,\n\t\t251, 134, 186, 209, 91, 44, 218, 34, 191, 240, 85, 248, 30,\n\t\t188, 128, 124, 180, 136, 14, 22, 243, 225, 50, 216, 71, 14,\n\t\t127, 146, 130, 44, 110, 228, 162, 42, 143, 163, 25, 207, 198,\n\t\t54, 201, 15, 70, 113, 196, 10, 191, 30, 193, 39, 50, 172,\n\t\t103, 134, 60, 213, 75, 179, 105, 20, 119, 250, 146, 18, 100,\n\t\t128, 225, 145, 227, 46, 223, 172, 174, 141, 55, 71, 161, 121,\n\t\t178, 52, 165, 226, 198, 231, 79, 53, 29, 129, 9, 97, 109,\n\t\t5, 115, 162, 59, 129, 174, 42, 122, 117, 74, 97, 31, 37, 220,\n\t\t52, 76, 130, 137, 94, 61, 189, 24, 69, 22, 173, 37, 187, 207,\n\t\t171, 254, 206, 155, 134, 90, 176, 86, 15, 0, 202, 205, 249,\n\t\t167, 110, 105, 233, 93, 213, 102, 188, 109, 217, 198, 202,\n\t\t93, 229, 85, 128, 19, 31, 124, 221, 77, 203, 190, 96, 68,\n\t\t29, 30, 247, 231, 157, 78, 171, 110, 168, 152, 168, 107, 244,\n\t\t160, 187, 229, 54, 171, 85, 151, 128, 240, 58, 39, 158, 152,\n\t\t51, 173, 198, 129, 115, 160, 213, 212, 38, 54, 45, 13, 12,\n\t\t83, 159, 197, 115, 156, 71, 187, 112, 30, 25, 40, 64, 40,\n\t\t19, 73, 174, 50, 76, 55, 193, 77, 38, 174, 180, 153, 110,\n\t\t194, 71, 111, 57, 112, 250, 202, 155, 14, 156, 200, 234, 253,\n\t\t225, 173, 245, 167, 191, 246, 71, 253, 251, 175, 190, 113,\n\t\t23, 125, 13, 172, 245, 205, 215, 93, 156, 203, 26, 192, 121,\n\t\t164, 32, 20, 79, 200, 40, 246, 71, 36, 124, 234, 225, 245,\n\t\t19, 119, 142, 223, 116, 224, 231, 97, 225, 175, 33, 218, 253,\n\t\t196, 39, 144, 184, 240, 125, 180, 133, 207, 193, 17, 36, 208,\n\t\t10, 218, 68, 135, 209, 237, 232, 126, 244, 38, 132, 124, 94,\n\t\t48, 152, 136, 40, 94, 77, 120, 28, 52, 196, 90, 97, 193, 77,\n\t\t58, 60, 145, 192, 4, 211, 108, 88, 144, 223, 142, 10, 195,\n\t\t231, 34, 132, 73, 22, 22, 51, 194, 113, 167, 63, 25, 239,\n\t\t128, 132, 202, 73, 138, 24, 143, 58, 36, 147, 132, 167, 195,\n\t\t233, 126, 16, 18, 101, 49, 238, 36, 147, 104, 52, 220, 129,\n\t\t116, 20, 143, 178, 145, 176, 224, 71, 45, 15, 91, 134, 143,\n\t\t113, 197, 132, 88, 114, 62, 83, 150, 215, 189, 103, 139, 64,\n\t\t81, 2, 110, 251, 182, 102, 216, 53, 110, 25, 132, 212, 94,\n\t\t127, 185, 95, 119, 123, 245, 133, 70, 35, 9, 162, 40, 56,\n\t\t23, 86, 167, 253, 122, 153, 86, 237, 138, 83, 105, 214, 192,\n\t\t140, 237, 176, 83, 23, 198, 235, 21, 194, 168, 207, 201, 168,\n\t\t217, 133, 164, 57, 81, 75, 208, 113, 177, 107, 219, 224, 181,\n\t\t177, 111, 151, 153, 38, 4, 163, 24, 131, 229, 84, 20, 5, 106,\n\t\t209, 190, 106, 5, 24, 211, 19, 167, 238, 215, 186, 135, 62,\n\t\t125, 117, 208, 11, 62, 27, 251, 125, 138, 245, 82, 96, 6,\n\t\t122, 57, 188, 59, 46, 199, 158, 169, 99, 240, 185, 202, 174,\n\t\t40, 65, 160, 190, 255, 141, 111, 252, 80, 197, 47, 48, 208,\n\t\t255, 15, 124, 0, 62, 142, 152, 244, 76, 72, 209, 17, 116,\n\t\t29, 122, 45, 122, 43, 66, 40, 88, 132, 201, 40, 30, 239, 64,\n\t\t65, 96, 255, 242, 224, 41, 22, 101, 210, 219, 56, 238, 79,\n\t\t250, 5, 112, 118, 94, 211, 133, 251, 241, 12, 57, 37, 155,\n\t\t102, 18, 91, 124, 52, 25, 13, 183, 33, 150, 126, 25, 22, 132,\n\t\t163, 233, 104, 88, 159, 213, 232, 104, 152, 133, 163, 44,\n\t\t17, 73, 154, 196, 249, 187, 74, 66, 217, 119, 194, 160, 94,\n\t\t42, 93, 29, 196, 220, 16, 222, 95, 214, 130, 221, 150, 236,\n\t\t237, 191, 21, 212, 118, 15, 24, 154, 10, 166, 170, 109, 251,\n\t\t224, 106, 46, 215, 53, 140, 93, 22, 106, 138, 208, 77, 141,\n\t\t90, 134, 197, 52, 131, 255, 68, 57, 24, 133, 117, 51, 52,\n\t\t78, 105, 158, 161, 123, 186, 79, 220, 160, 210, 87, 109, 53,\n\t\t86, 131, 179, 81, 9, 202, 81, 23, 83, 11, 83, 16, 142, 203,\n\t\t1, 178, 236, 148, 9, 88, 225, 26, 255, 147, 75, 162, 15, 223,\n\t\t11, 186, 110, 130, 166, 223, 162, 134, 174, 110, 1, 80, 42,\n\t\t192, 243, 231, 108, 159, 115, 79, 61, 20, 148, 222, 179, 162,\n\t\t135, 186, 102, 41, 194, 82, 45, 87, 1, 82, 85, 44, 225, 58,\n\t\t247, 94, 127, 253, 189, 220, 114, 192, 242, 36, 190, 224,\n\t\t87, 224, 33, 248, 13, 228, 160, 20, 13, 208, 58, 66, 89, 36,\n\t\t106, 176, 38, 107, 74, 122, 81, 12, 253, 162, 163, 16, 73,\n\t\t193, 239, 83, 248, 45, 19, 215, 146, 176, 15, 253, 84, 34,\n\t\t71, 76, 127, 187, 3, 16, 57, 94, 4, 208, 34, 152, 62, 211,\n\t\t212, 180, 187, 70, 24, 19, 96, 181, 197, 81, 147, 224, 155,\n\t\t22, 210, 185, 222, 226, 219, 170, 29, 13, 179, 63, 48, 71,\n\t\t219, 149, 24, 240, 193, 123, 131, 70, 0, 216, 114, 67, 219,\n\t\t175, 17, 128, 179, 147, 173, 149, 39, 214, 0, 128, 85, 7,\n\t\t135, 14, 214, 239, 94, 118, 237, 96, 247, 171, 112, 140, 12,\n\t\t247, 85, 47, 203, 6, 119, 154, 222, 21, 233, 241, 55, 221,\n\t\t135, 216, 197, 88, 188, 16, 245, 209, 58, 186, 17, 221, 35,\n\t\t249, 48, 163, 176, 6, 130, 39, 253, 153, 217, 32, 239, 188,\n\t\t38, 133, 247, 71, 80, 88, 23, 70, 179, 192, 156, 25, 247,\n\t\t98, 65, 47, 52, 148, 231, 194, 32, 12, 184, 8, 68, 17, 0,\n\t\t217, 73, 114, 209, 164, 176, 139, 65, 17, 204, 120, 90, 60,\n\t\t140, 1, 239, 219, 39, 74, 189, 18, 199, 84, 93, 123, 172,\n\t\t187, 100, 165, 42, 0, 113, 202, 150, 210, 239, 95, 229, 54,\n\t\t8, 118, 108, 174, 170, 194, 20, 4, 219, 234, 167, 225, 122,\n\t\t165, 52, 87, 97, 0, 20, 8, 53, 87, 234, 252, 74, 12, 247,\n\t\t186, 45, 70, 41, 107, 185, 145, 202, 185, 2, 31, 195, 244,\n\t\t155, 31, 61, 42, 165, 192, 114, 47, 86, 31, 121, 135, 219,\n\t\t94, 254, 147, 23, 184, 189, 32, 190, 205, 237, 178, 75, 49,\n\t\t192, 14, 13, 61, 187, 194, 48, 229, 22, 87, 67, 83, 185, 19,\n\t\t48, 45, 207, 149, 196, 155, 49, 189, 61, 209, 1, 20, 165,\n\t\t220, 38, 0, 127, 241, 23, 191, 199, 60, 215, 52, 93, 143,\n\t\t242, 216, 178, 227, 188, 207, 183, 16, 186, 240, 125, 124,\n\t\t14, 126, 12, 109, 162, 211, 114, 86, 239, 29, 232, 221, 232,\n\t\t179, 232, 107, 232, 143, 209, 247, 193, 130, 14, 116, 33,\n\t\t69, 136, 205, 98, 44, 134, 255, 131, 24, 139, 87, 9, 177,\n\t\t224, 89, 48, 11, 177, 8, 229, 4, 120, 94, 237, 123, 209, 21,\n\t\t147, 254, 94, 112, 69, 246, 34, 89, 30, 31, 119, 130, 44,\n\t\t175, 220, 188, 83, 155, 140, 134, 97, 32, 134, 113, 208, 151,\n\t\t83, 217, 189, 48, 224, 197, 29, 10, 127, 2, 94, 220, 98, 118,\n\t\t75, 25, 89, 25, 245, 36, 169, 241, 165, 229, 200, 117, 225,\n\t\t38, 68, 98, 188, 150, 118, 18, 209, 169, 67, 48, 138, 163,\n\t\t73, 182, 58, 201, 4, 239, 191, 236, 89, 94, 158, 183, 14,\n\t\t129, 200, 134, 107, 241, 176, 14, 171, 54, 172, 38, 105, 103,\n\t\t63, 172, 138, 32, 228, 47, 75, 23, 166, 163, 56, 13, 97, 139,\n\t\t16, 159, 96, 70, 1, 44, 128, 13, 249, 183, 15, 192, 22, 2,\n\t\t11, 236, 114, 225, 112, 190, 81, 252, 225, 197, 122, 19, 43,\n\t\t128, 61, 47, 44, 87, 170, 24, 64, 96, 236, 216, 194, 180,\n\t\t140, 140, 112, 66, 133, 80, 5, 246, 45, 92, 208, 239, 75,\n\t\t236, 4, 12, 187, 127, 79, 161, 71, 168, 3, 20, 59, 132, 118,\n\t\t49, 165, 251, 165, 65, 102, 155, 192, 181, 100, 63, 165, 197,\n\t\t159, 77, 9, 238, 145, 65, 8, 32, 255, 162, 63, 234, 98, 138,\n\t\t125, 156, 255, 109, 99, 220, 163, 69, 74, 178, 159, 94, 111,\n\t\t128, 1, 144, 47, 126, 0, 100, 63, 37, 219, 179, 43, 92, 9,\n\t\t87, 1, 197, 186, 68, 71, 86, 0, 218, 0, 135, 228, 178, 216,\n\t\t80, 9, 163, 135, 0, 14, 121, 68, 165, 226, 144, 160, 109,\n\t\t74, 219, 84, 28, 82, 72, 27, 31, 146, 19, 138, 170, 192, 216,\n\t\t246, 3, 0, 208, 21, 57, 149, 56, 79, 24, 201, 245, 124, 203,\n\t\t243, 41, 1, 96, 82, 49, 37, 130, 144, 159, 188, 11, 99, 8,\n\t\t49, 93, 98, 88, 5, 80, 49, 91, 162, 56, 4, 140, 239, 162,\n\t\t184, 11, 208, 197, 247, 125, 158, 226, 46, 198, 93, 76, 143,\n\t\t83, 146, 96, 172, 98, 122, 39, 38, 16, 226, 31, 3, 211, 132,\n\t\t18, 206, 75, 143, 75, 121, 14, 15, 131, 14, 160, 3, 142, 48,\n\t\t78, 128, 66, 136, 113, 146, 231, 154, 101, 119, 41, 23, 2,\n\t\t44, 200, 23, 11, 0, 4, 39, 249, 121, 118, 108, 239, 252, 244,\n\t\t41, 128, 124, 236, 87, 46, 124, 29, 83, 120, 1, 45, 163, 155,\n\t\t11, 238, 140, 89, 95, 48, 163, 20, 43, 0, 57, 139, 145, 97,\n\t\t166, 134, 14, 248, 184, 159, 173, 70, 161, 132, 148, 149,\n\t\t157, 64, 38, 249, 113, 10, 156, 220, 120, 6, 140, 84, 96,\n\t\t194, 41, 248, 205, 167, 206, 254, 140, 235, 220, 124, 194,\n\t\t100, 213, 10, 51, 122, 28, 250, 213, 250, 50, 165, 113, 108,\n\t\t178, 106, 149, 234, 183, 46, 82, 57, 32, 98, 8, 129, 29, 222,\n\t\t164, 56, 138, 129, 174, 18, 88, 62, 80, 247, 171, 192, 230,\n\t\t40, 196, 17, 166, 89, 123, 162, 107, 207, 221, 123, 226, 145,\n\t\t95, 190, 247, 25, 195, 124, 236, 244, 201, 143, 180, 185,\n\t\t121, 236, 168, 193, 220, 148, 241, 234, 2, 38, 73, 173, 180,\n\t\t168, 113, 243, 216, 49, 157, 117, 110, 82, 28, 219, 180, 52,\n\t\t147, 27, 196, 101, 235, 247, 212, 49, 219, 216, 164, 164,\n\t\t177, 222, 90, 213, 92, 109, 37, 98, 124, 185, 140, 233, 230,\n\t\t6, 195, 149, 193, 229, 183, 222, 246, 132, 169, 189, 173,\n\t\t136, 99, 249, 83, 140, 224, 231, 209, 22, 186, 2, 157, 64,\n\t\t167, 208, 27, 208, 155, 100, 191, 240, 33, 244, 9, 244, 75,\n\t\t232, 75, 232, 247, 209, 159, 162, 191, 148, 179, 48, 50, 16,\n\t\t87, 204, 16, 69, 139, 152, 240, 2, 28, 105, 154, 245, 247,\n\t\t88, 161, 50, 9, 175, 53, 45, 144, 64, 11, 8, 29, 46, 162,\n\t\t244, 34, 212, 168, 172, 211, 98, 50, 180, 159, 206, 224, 67,\n\t\t227, 139, 106, 125, 145, 191, 8, 80, 225, 49, 151, 220, 108,\n\t\t92, 30, 140, 226, 252, 34, 211, 184, 47, 25, 70, 11, 84, 210,\n\t\t181, 1, 16, 153, 34, 87, 95, 10, 164, 245, 34, 255, 139, 40,\n\t\t85, 89, 222, 181, 71, 82, 169, 44, 202, 222, 192, 123, 112,\n\t\t126, 105, 81, 138, 97, 191, 232, 137, 2, 248, 217, 133, 113,\n\t\t182, 204, 9, 6, 142, 109, 51, 216, 108, 43, 140, 241, 246,\n\t\t78, 16, 24, 10, 198, 76, 93, 156, 12, 23, 84, 21, 131, 106,\n\t\t4, 193, 129, 14, 165, 130, 183, 55, 131, 208, 208, 0, 148,\n\t\t39, 57, 143, 131, 118, 7, 64, 17, 166, 185, 250, 44, 87, 52,\n\t\t30, 149, 68, 42, 84, 174, 8, 165, 196, 117, 93, 55, 227, 184,\n\t\t20, 89, 154, 161, 201, 237, 65, 108, 105, 198, 103, 85, 81,\n\t\t138, 133, 170, 8, 141, 135, 37, 161, 240, 187, 28, 171, 209,\n\t\t176, 158, 54, 132, 192, 208, 105, 7, 177, 168, 143, 123, 154,\n\t\t101, 105, 154, 72, 22, 176, 83, 74, 197, 155, 25, 43, 249,\n\t\t157, 14, 198, 92, 152, 174, 215, 28, 58, 166, 229, 216, 182,\n\t\t253, 1, 42, 0, 183, 19, 63, 86, 152, 155, 148, 85, 59, 40,\n\t\t165, 225, 82, 162, 8, 205, 178, 53, 242, 182, 126, 181, 218,\n\t\t175, 130, 109, 207, 199, 241, 146, 133, 65, 136, 250, 106,\n\t\t87, 232, 65, 85, 97, 140, 213, 67, 93, 223, 94, 80, 85, 32,\n\t\t246, 82, 20, 45, 88, 132, 40, 234, 194, 142, 161, 71, 77,\n\t\t74, 5, 171, 7, 186, 126, 120, 89, 80, 124, 130, 241, 114,\n\t\t141, 40, 148, 167, 83, 69, 4, 127, 99, 216, 165, 144, 97,\n\t\t237, 61, 81, 100, 88, 134, 69, 174, 136, 252, 192, 7, 8, 253,\n\t\t32, 136, 124, 223, 199, 56, 240, 195, 99, 142, 70, 88, 28,\n\t\t218, 7, 163, 136, 17, 211, 212, 238, 150, 17, 25, 215, 136,\n\t\t81, 87, 99, 130, 212, 202, 162, 18, 238, 254, 109, 167, 217,\n\t\t108, 19, 98, 180, 44, 95, 247, 76, 124, 31, 101, 149, 26,\n\t\t86, 20, 181, 187, 38, 132, 98, 172, 122, 30, 64, 48, 232,\n\t\t180, 56, 23, 164, 86, 81, 136, 227, 83, 106, 60, 169, 68,\n\t\t145, 102, 182, 13, 140, 219, 141, 86, 211, 173, 230, 15, 183,\n\t\t55, 175, 240, 13, 124, 14, 62, 135, 184, 140, 192, 240, 16,\n\t\t2, 63, 73, 19, 145, 100, 163, 52, 97, 34, 141, 123, 34, 205,\n\t\t96, 251, 19, 87, 151, 159, 40, 95, 243, 166, 27, 231, 49,\n\t\t28, 252, 88, 240, 169, 221, 173, 224, 99, 26, 124, 110, 183,\n\t\t117, 253, 245, 239, 125, 234, 243, 234, 186, 227, 172, 171,\n\t\t77, 84, 240, 174, 162, 12, 159, 131, 203, 209, 60, 186, 14,\n\t\t61, 133, 62, 131, 190, 140, 190, 138, 80, 47, 136, 195, 98,\n\t\t178, 158, 75, 218, 136, 66, 225, 158, 140, 11, 88, 55, 73,\n\t\t72, 51, 145, 49, 214, 92, 68, 133, 244, 153, 102, 179, 81,\n\t\t48, 31, 7, 183, 177, 4, 250, 150, 102, 96, 198, 134, 163,\n\t\t152, 39, 157, 253, 133, 207, 175, 68, 132, 203, 51, 134, 65,\n\t\t180, 9, 97, 17, 71, 44, 73, 7, 228, 13, 36, 211, 107, 38,\n\t\t201, 111, 126, 216, 53, 211, 34, 36, 53, 111, 72, 113, 129,\n\t\t173, 217, 159, 134, 163, 113, 210, 193, 103, 170, 85, 226,\n\t\t71, 1, 23, 130, 64, 28, 3, 215, 121, 16, 249, 228, 181, 139,\n\t\t86, 35, 232, 84, 194, 208, 15, 235, 24, 22, 84, 59, 54, 107,\n\t\t213, 208, 115, 92, 160, 68, 80, 117, 247, 167, 9, 225, 154,\n\t\t181, 104, 105, 34, 207, 36, 52, 153, 73, 94, 233, 202, 191,\n\t\t93, 84, 157, 146, 211, 174, 94, 204, 235, 68, 102, 189, 18,\n\t\t122, 182, 7, 148, 114, 166, 126, 180, 149, 224, 187, 120,\n\t\t226, 186, 78, 165, 17, 39, 33, 44, 239, 171, 150, 255, 207,\n\t\t8, 106, 16, 105, 109, 163, 28, 148, 129, 170, 170, 218, 214,\n\t\t90, 12, 179, 150, 214, 17, 150, 90, 10, 202, 70, 123, 193,\n\t\t234, 88, 177, 21, 53, 93, 75, 213, 1, 156, 134, 238, 153,\n\t\t34, 168, 153, 6, 33, 20, 19, 76, 182, 58, 116, 250, 175, 85,\n\t\t83, 233, 168, 45, 134, 121, 83, 235, 40, 166, 86, 10, 42,\n\t\t122, 91, 141, 107, 16, 169, 29, 163, 28, 124, 193, 220, 180,\n\t\t58, 186, 103, 41, 255, 226, 69, 142, 44, 182, 133, 145, 104,\n\t\t85, 207, 239, 151, 123, 131, 67, 197, 251, 190, 240, 131,\n\t\t11, 191, 135, 159, 130, 95, 69, 8, 253, 23, 244, 15, 32, 192,\n\t\t133, 50, 66, 189, 108, 56, 211, 136, 115, 209, 177, 159, 246,\n\t\t69, 20, 206, 134, 130, 236, 98, 63, 35, 102, 195, 195, 236,\n\t\t232, 244, 146, 51, 129, 13, 147, 92, 145, 219, 1, 46, 228,\n\t\t155, 27, 20, 12, 101, 92, 4, 107, 209, 139, 93, 231, 52, 27,\n\t\t102, 185, 24, 61, 205, 102, 20, 68, 123, 243, 208, 217, 84,\n\t\t78, 115, 201, 241, 132, 10, 222, 128, 120, 24, 196, 99, 57,\n\t\t233, 61, 140, 108, 152, 142, 86, 183, 65, 210, 87, 88, 68,\n\t\t88, 16, 173, 229, 253, 103, 184, 58, 89, 205, 10, 106, 171,\n\t\t73, 46, 150, 175, 74, 19, 82, 16, 207, 200, 46, 194, 161,\n\t\t5, 97, 222, 223, 78, 217, 52, 93, 229, 157, 252, 241, 114,\n\t\t177, 93, 14, 102, 146, 127, 27, 114, 133, 113, 184, 77, 226,\n\t\t233, 100, 188, 198, 109, 28, 201, 57, 14, 46, 56, 12, 190,\n\t\t55, 191, 6, 16, 9, 6, 204, 102, 141, 94, 82, 101, 80, 210,\n\t\t12, 157, 7, 186, 82, 209, 48, 197, 118, 32, 217, 32, 3, 77,\n\t\t87, 45, 157, 113, 130, 107, 156, 98, 106, 228, 242, 139, 99,\n\t\t107, 0, 134, 174, 43, 128, 21, 133, 114, 157, 107, 76, 53,\n\t\t0, 11, 75, 83, 168, 74, 28, 119, 171, 97, 90, 186, 115, 53,\n\t\t96, 0, 117, 57, 105, 81, 18, 183, 247, 221, 121, 232, 113,\n\t\t93, 219, 92, 233, 93, 166, 217, 62, 33, 132, 176, 96, 249,\n\t\t178, 91, 28, 253, 53, 87, 118, 214, 202, 54, 1, 104, 110,\n\t\t232, 0, 129, 91, 209, 219, 21, 77, 2, 166, 230, 130, 7, 96,\n\t\t74, 169, 196, 132, 202, 69, 40, 202, 83, 130, 9, 137, 77,\n\t\t144, 40, 103, 74, 151, 2, 197, 177, 5, 148, 2, 6, 163, 186,\n\t\t251, 72, 83, 226, 88, 41, 184, 218, 82, 53, 165, 243, 129,\n\t\t144, 129, 45, 172, 92, 142, 33, 121, 47, 203, 196, 195, 101,\n\t\t198, 125, 128, 219, 42, 216, 228, 234, 209, 91, 150, 170,\n\t\t110, 32, 17, 147, 181, 102, 151, 82, 221, 212, 34, 79, 80,\n\t\t6, 180, 30, 135, 1, 55, 205, 86, 29, 168, 99, 148, 109, 78,\n\t\t153, 68, 163, 34, 29, 46, 8, 171, 18, 211, 156, 107, 53, 156,\n\t\t92, 118, 243, 43, 166, 233, 59, 170, 42, 152, 210, 115, 42,\n\t\t174, 194, 24, 1, 115, 187, 84, 45, 43, 180, 215, 232, 246,\n\t\t1, 64, 180, 202, 243, 129, 155, 53, 38, 157, 82, 101, 97,\n\t\t254, 102, 207, 38, 156, 185, 66, 193, 192, 67, 170, 158, 234,\n\t\t84, 72, 199, 77, 42, 53, 75, 137, 210, 69, 35, 23, 186, 84,\n\t\t203, 46, 133, 186, 158, 139, 17, 68, 81, 45, 199, 21, 76,\n\t\t99, 60, 127, 92, 80, 204, 155, 53, 106, 98, 46, 84, 147, 169,\n\t\t142, 176, 55, 92, 77, 157, 237, 240, 146, 249, 175, 58, 203,\n\t\t24, 128, 129, 211, 236, 51, 102, 188, 118, 164, 80, 174, 56,\n\t\t101, 197, 179, 77, 1, 194, 50, 188, 161, 29, 128, 16, 33,\n\t\t129, 72, 43, 51, 166, 155, 222, 69, 191, 206, 243, 112, 14,\n\t\t113, 100, 32, 4, 35, 29, 70, 113, 38, 170, 144, 136, 20, 206,\n\t\t220, 246, 173, 111, 125, 110, 117, 253, 91, 159, 250, 212,\n\t\t244, 145, 71, 224, 220, 238, 57, 56, 119, 242, 100, 107, 247,\n\t\t91, 208, 250, 237, 223, 150, 243, 155, 206, 133, 111, 193,\n\t\t231, 224, 249, 92, 242, 202, 165, 142, 29, 136, 211, 152,\n\t\t136, 148, 128, 14, 163, 108, 20, 255, 90, 191, 223, 255, 70,\n\t\t235, 115, 159, 107, 193, 137, 167, 158, 90, 173, 190, 190,\n\t\t242, 197, 219, 111, 255, 246, 21, 187, 223, 190, 231, 30,\n\t\t8, 118, 255, 1, 186, 187, 223, 60, 116, 168, 136, 215, 66,\n\t\t183, 226, 115, 48, 135, 184, 100, 206, 240, 81, 21, 173, 162,\n\t\t35, 232, 87, 209, 87, 16, 202, 100, 159, 31, 167, 98, 20,\n\t\t167, 163, 56, 27, 197, 147, 81, 152, 21, 92, 71, 97, 20, 88,\n\t\t184, 51, 192, 5, 234, 175, 52, 185, 199, 124, 198, 165, 101,\n\t\t225, 252, 163, 143, 134, 18, 245, 104, 70, 186, 145, 77, 68,\n\t\t24, 5, 29, 185, 30, 205, 98, 55, 71, 19, 137, 76, 126, 201,\n\t\t126, 127, 229, 210, 189, 116, 150, 35, 13, 95, 188, 74, 26,\n\t\t247, 39, 253, 73, 26, 143, 71, 219, 176, 131, 101, 241, 146,\n\t\t52, 145, 177, 92, 153, 8, 68, 32, 50, 145, 142, 178, 120,\n\t\t148, 62, 232, 143, 125, 119, 123, 123, 219, 79, 239, 216,\n\t\t118, 151, 151, 93, 223, 254, 77, 111, 254, 190, 119, 105,\n\t\t94, 169, 86, 242, 52, 77, 101, 142, 81, 51, 28, 166, 50, 93,\n\t\t88, 170, 22, 170, 170, 165, 40, 150, 170, 134, 154, 106, 221,\n\t\t162, 9, 77, 104, 215, 105, 101, 173, 206, 57, 99, 172, 79,\n\t\t85, 66, 24, 101, 148, 233, 74, 159, 115, 198, 121, 93, 43,\n\t\t169, 215, 233, 138, 38, 180, 147, 127, 15, 112, 240, 32, 128,\n\t\t193, 57, 148, 60, 111, 103, 219, 245, 75, 16, 147, 3, 7, 0,\n\t\t254, 254, 228, 239, 122, 128, 189, 224, 19, 11, 11, 79, 63,\n\t\t125, 239, 226, 214, 211, 167, 79, 159, 59, 119, 238, 209,\n\t\t71, 31, 53, 140, 158, 44, 131, 31, 215, 74, 42, 147, 110,\n\t\t53, 170, 209, 139, 124, 139, 82, 74, 45, 63, 242, 138, 141,\n\t\t35, 160, 51, 33, 152, 14, 92, 101, 56, 8, 48, 35, 37, 75,\n\t\t8, 43, 166, 76, 0, 8, 131, 49, 67, 96, 131, 198, 249, 177,\n\t\t18, 41, 82, 168, 124, 47, 143, 208, 44, 74, 40, 81, 48, 40,\n\t\t6, 198, 149, 249, 119, 190, 115, 190, 194, 61, 192, 210, 166,\n\t\t106, 105, 215, 207, 205, 45, 230, 122, 62, 122, 19, 126, 7,\n\t\t188, 9, 253, 21, 250, 54, 250, 46, 88, 80, 145, 209, 150,\n\t\t54, 88, 56, 29, 144, 116, 146, 8, 11, 15, 96, 191, 220, 133,\n\t\t21, 152, 121, 246, 242, 116, 0, 59, 144, 112, 25, 169, 195,\n\t\t37, 222, 126, 158, 48, 151, 88, 83, 209, 177, 240, 140, 70,\n\t\t56, 215, 237, 114, 229, 116, 36, 187, 228, 56, 226, 54, 172,\n\t\t22, 136, 79, 59, 32, 73, 238, 55, 97, 42, 143, 198, 185, 212,\n\t\t63, 140, 242, 79, 33, 222, 1, 25, 152, 39, 86, 195, 40, 206,\n\t\t19, 78, 179, 109, 150, 47, 101, 88, 187, 68, 107, 218, 134,\n\t\t29, 24, 79, 10, 23, 197, 60, 119, 3, 103, 195, 109, 60, 187,\n\t\t100, 19, 70, 219, 36, 191, 134, 36, 251, 142, 163, 252, 10,\n\t\t172, 96, 64, 182, 160, 199, 197, 54, 77, 251, 130, 71, 5,\n\t\t90, 237, 0, 91, 164, 6, 117, 104, 224, 105, 22, 73, 0, 170,\n\t\t190, 176, 32, 198, 231, 242, 198, 175, 149, 85, 174, 82, 12,\n\t\t56, 0, 170, 235, 28, 171, 53, 199, 10, 40, 9, 55, 140, 136,\n\t\t51, 47, 82, 101, 175, 104, 10, 34, 8, 182, 41, 228, 29, 156,\n\t\t161, 25, 138, 96, 28, 28, 224, 182, 229, 50, 135, 186, 58,\n\t\t35, 152, 114, 162, 82, 130, 185, 85, 13, 117, 165, 236, 184,\n\t\t24, 43, 76, 41, 9, 5, 116, 2, 130, 16, 181, 32, 211, 9, 129,\n\t\t217, 66, 226, 16, 98, 12, 53, 32, 26, 85, 65, 96, 194, 52,\n\t\t66, 4, 3, 202, 120, 174, 20, 11, 55, 18, 250, 170, 101, 122,\n\t\t84, 8, 230, 112, 46, 26, 52, 140, 1, 170, 166, 5, 216, 84,\n\t\t185, 169, 169, 4, 131, 129, 177, 3, 210, 173, 144, 229, 189,\n\t\t182, 38, 36, 102, 34, 183, 41, 213, 126, 240, 21, 110, 105,\n\t\t140, 83, 211, 0, 215, 1, 204, 109, 93, 193, 212, 3, 95, 96,\n\t\t66, 114, 125, 85, 85, 52, 70, 129, 25, 218, 125, 142, 198,\n\t\t0, 99, 85, 103, 20, 126, 131, 42, 0, 152, 43, 24, 107, 134,\n\t\t65, 233, 6, 201, 59, 60, 74, 176, 208, 49, 152, 156, 91, 6,\n\t\t8, 66, 53, 205, 22, 45, 211, 168, 148, 52, 29, 12, 165, 106,\n\t\t152, 165, 82, 40, 249, 128, 169, 74, 40, 16, 106, 120, 192,\n\t\t176, 66, 169, 244, 171, 244, 205, 22, 216, 97, 71, 40, 152,\n\t\t18, 172, 49, 166, 79, 57, 33, 160, 210, 146, 166, 226, 46,\n\t\t225, 58, 232, 142, 4, 214, 95, 6, 202, 128, 232, 147, 136,\n\t\t1, 35, 120, 99, 69, 243, 29, 75, 19, 24, 107, 66, 105, 46,\n\t\t239, 183, 20, 99, 206, 182, 64, 165, 148, 67, 47, 38, 204,\n\t\t8, 252, 6, 147, 102, 56, 206, 57, 198, 198, 154, 160, 64,\n\t\t122, 76, 83, 56, 96, 32, 20, 219, 66, 52, 1, 24, 33, 212,\n\t\t193, 154, 240, 25, 166, 209, 235, 50, 135, 104, 181, 184,\n\t\t194, 163, 37, 242, 65, 223, 209, 10, 54, 2, 162, 123, 174,\n\t\t58, 219, 236, 128, 45, 76, 66, 244, 64, 117, 136, 156, 155,\n\t\t38, 23, 206, 195, 175, 195, 121, 52, 200, 219, 201, 108, 86,\n\t\t89, 88, 144, 236, 65, 135, 189, 136, 71, 60, 220, 166, 146,\n\t\t224, 74, 82, 161, 193, 11, 102, 214, 139, 46, 171, 15, 15,\n\t\t1, 133, 192, 178, 130, 184, 179, 210, 137, 65, 183, 227, 184,\n\t\t110, 246, 174, 211, 226, 195, 152, 171, 39, 21, 30, 215, 234,\n\t\t0, 215, 56, 126, 96, 195, 227, 110, 45, 238, 116, 226, 186,\n\t\t211, 98, 92, 112, 86, 171, 41, 28, 81, 228, 92, 56, 15, 15,\n\t\t195, 249, 23, 113, 100, 178, 196, 29, 197, 110, 226, 142,\n\t\t242, 95, 152, 76, 14, 13, 135, 103, 70, 31, 25, 125, 120,\n\t\t248, 118, 56, 116, 213, 238, 85, 240, 197, 252, 247, 79, 255,\n\t\t36, 99, 238, 209, 85, 248, 28, 204, 35, 34, 209, 150, 98,\n\t\t84, 69, 59, 232, 56, 250, 105, 244, 115, 232, 179, 8, 101,\n\t\t147, 40, 206, 162, 17, 79, 179, 110, 231, 226, 67, 72, 158,\n\t\t209, 44, 76, 27, 56, 8, 131, 176, 6, 185, 112, 67, 242, 38,\n\t\t63, 192, 227, 201, 120, 50, 222, 38, 155, 48, 21, 147, 113,\n\t\t167, 14, 193, 80, 166, 170, 17, 139, 9, 139, 36, 233, 44,\n\t\t77, 214, 79, 195, 194, 97, 179, 159, 22, 97, 250, 105, 63,\n\t\t149, 170, 101, 152, 76, 6, 84, 246, 4, 113, 22, 74, 221, 150,\n\t\t140, 226, 105, 154, 229, 77, 48, 106, 194, 236, 162, 63, 233,\n\t\t7, 126, 191, 63, 63, 245, 225, 147, 37, 215, 45, 59, 27, 27,\n\t\t79, 111, 156, 20, 130, 16, 133, 51, 203, 212, 41, 105, 121,\n\t\t185, 12, 158, 143, 180, 106, 43, 140, 162, 7, 243, 61, 192,\n\t\t152, 82, 114, 201, 121, 53, 57, 104, 86, 252, 176, 81, 213,\n\t\t117, 218, 14, 189, 80, 213, 54, 220, 138, 37, 164, 15, 200,\n\t\t112, 62, 58, 208, 39, 123, 169, 191, 91, 31, 120, 4, 123,\n\t\t209, 95, 69, 209, 105, 71, 19, 220, 212, 61, 120, 194, 53,\n\t\t12, 211, 52, 140, 103, 94, 255, 250, 79, 85, 191, 250, 56,\n\t\t55, 36, 181, 133, 162, 90, 6, 103, 130, 96, 240, 68, 113,\n\t\t68, 215, 61, 71, 197, 167, 230, 116, 125, 206, 188, 177, 72,\n\t\t165, 98, 133, 8, 34, 40, 199, 76, 33, 24, 176, 47, 15, 55,\n\t\t172, 74, 107, 26, 69, 206, 157, 134, 183, 102, 251, 117, 82,\n\t\t45, 53, 29, 71, 240, 250, 21, 78, 61, 242, 76, 21, 131, 13,\n\t\t182, 22, 54, 27, 132, 20, 185, 26, 150, 107, 19, 51, 45, 237,\n\t\t147, 151, 150, 114, 131, 184, 112, 30, 222, 4, 231, 17, 67,\n\t\t58, 66, 85, 72, 82, 145, 180, 71, 34, 29, 197, 31, 251, 240,\n\t\t201, 237, 237, 147, 48, 56, 252, 35, 111, 56, 178, 12, 231,\n\t\t119, 191, 249, 232, 163, 223, 252, 230, 173, 179, 113, 190,\n\t\t176, 151, 184, 210, 67, 113, 27, 157, 64, 39, 209, 107, 208,\n\t\t27, 209, 227, 8, 249, 133, 159, 107, 52, 156, 102, 33, 151,\n\t\t17, 113, 241, 52, 14, 251, 34, 31, 133, 179, 80, 76, 152,\n\t\t116, 180, 149, 26, 216, 164, 112, 196, 157, 193, 188, 132,\n\t\t253, 164, 195, 102, 58, 82, 56, 35, 249, 148, 206, 47, 35,\n\t\t25, 1, 39, 53, 40, 158, 116, 82, 27, 38, 163, 120, 134, 10,\n\t\t153, 116, 68, 28, 229, 223, 214, 39, 59, 29, 213, 208, 136,\n\t\t30, 4, 149, 167, 141, 114, 104, 46, 245, 239, 90, 218, 189,\n\t\t16, 86, 66, 167, 230, 151, 227, 74, 236, 134, 149, 176, 93,\n\t\t45, 5, 97, 108, 227, 27, 224, 22, 210, 42, 5, 97, 61, 106,\n\t\t249, 189, 102, 163, 115, 235, 192, 84, 53, 235, 13, 229, 110,\n\t\t82, 113, 108, 88, 74, 177, 163, 26, 182, 109, 88, 10, 40,\n\t\t143, 44, 193, 74, 191, 191, 163, 106, 24, 58, 188, 20, 188,\n\t\t127, 33, 82, 231, 133, 115, 255, 71, 55, 187, 90, 247, 78,\n\t\t161, 138, 216, 179, 35, 93, 159, 179, 117, 161, 41, 161, 27,\n\t\t87, 149, 5, 125, 81, 21, 21, 181, 109, 184, 221, 74, 50, 24,\n\t\t248, 150, 109, 143, 22, 123, 115, 115, 198, 80, 251, 186,\n\t\t110, 189, 165, 228, 121, 177, 114, 72, 109, 127, 244, 163,\n\t\t5, 135, 170, 126, 225, 43, 240, 24, 156, 71, 29, 132, 252,\n\t\t160, 65, 103, 14, 200, 179, 122, 161, 47, 214, 203, 79, 183,\n\t\t87, 247, 173, 182, 30, 186, 189, 115, 91, 243, 198, 203, 178,\n\t\t86, 190, 243, 192, 173, 87, 29, 58, 114, 197, 26, 244, 172,\n\t\t200, 42, 53, 54, 231, 174, 188, 214, 55, 223, 49, 72, 156,\n\t\t146, 93, 170, 175, 247, 174, 188, 185, 242, 174, 46, 154,\n\t\t189, 223, 111, 193, 175, 194, 243, 40, 68, 137, 188, 11, 30,\n\t\t13, 51, 25, 213, 32, 13, 137, 56, 227, 217, 176, 120, 31,\n\t\t242, 69, 252, 82, 109, 126, 20, 24, 162, 127, 162, 218, 61,\n\t\t185, 169, 154, 27, 199, 186, 214, 91, 222, 91, 235, 153, 94,\n\t\t175, 238, 121, 240, 72, 249, 228, 45, 7, 240, 214, 181, 111,\n\t\t127, 126, 28, 91, 118, 205, 167, 186, 55, 78, 111, 93, 95,\n\t\t218, 127, 180, 28, 89, 72, 32, 11, 1, 126, 4, 158, 68, 3,\n\t\t116, 27, 122, 3, 250, 34, 250, 3, 64, 176, 15, 161, 61, 103,\n\t\t29, 25, 211, 89, 48, 216, 204, 200, 95, 228, 255, 206, 34,\n\t\t116, 146, 126, 82, 56, 247, 164, 227, 212, 31, 142, 36, 235,\n\t\t223, 158, 238, 150, 134, 193, 26, 79, 58, 73, 127, 178, 58,\n\t\t139, 175, 140, 131, 56, 24, 21, 193, 247, 98, 53, 92, 13,\n\t\t214, 194, 32, 142, 70, 133, 62, 36, 29, 20, 178, 97, 222,\n\t\t99, 202, 91, 134, 171, 117, 8, 242, 15, 42, 233, 164, 227,\n\t\t180, 19, 202, 120, 5, 169, 15, 198, 81, 60, 148, 28, 132,\n\t\t114, 198, 73, 218, 76, 247, 120, 8, 71, 211, 97, 188, 5, 146,\n\t\t81, 112, 230, 220, 32, 120, 176, 55, 139, 200, 194, 213, 139,\n\t\t69, 239, 103, 50, 125, 58, 187, 111, 167, 120, 154, 73, 127,\n\t\t109, 70, 103, 88, 184, 149, 166, 171, 241, 234, 14, 140, 167,\n\t\t147, 233, 38, 30, 138, 153, 129, 54, 237, 164, 253, 201, 22,\n\t\t196, 27, 16, 15, 11, 38, 11, 40, 144, 24, 39, 253, 209, 80,\n\t\t50, 234, 70, 22, 17, 53, 178, 255, 80, 171, 53, 55, 39, 68,\n\t\t169, 158, 220, 213, 102, 148, 17, 74, 217, 226, 190, 94, 191,\n\t\t90, 201, 7, 123, 160, 162, 82, 158, 79, 59, 55, 85, 233, 199,\n\t\t56, 214, 154, 166, 10, 160, 218, 245, 78, 21, 0, 168, 174,\n\t\t49, 194, 36, 193, 8, 33, 224, 134, 139, 224, 251, 109, 149,\n\t\t50, 165, 92, 138, 224, 235, 10, 197, 2, 155, 170, 147, 143,\n\t\t234, 138, 194, 114, 29, 104, 201, 241, 8, 230, 106, 96, 5,\n\t\t142, 3, 154, 225, 6, 204, 23, 220, 34, 182, 5, 56, 193, 224,\n\t\t51, 66, 85, 197, 204, 245, 53, 77, 168, 129, 7, 144, 75, 18,\n\t\t30, 231, 185, 242, 14, 96, 80, 10, 66, 17, 86, 64, 84, 133,\n\t\t20, 228, 125, 24, 59, 37, 211, 226, 92, 215, 148, 119, 130,\n\t\t146, 0, 102, 16, 80, 128, 164, 75, 153, 89, 81, 21, 133, 97,\n\t\t150, 43, 135, 76, 103, 192, 49, 198, 141, 58, 6, 170, 216,\n\t\t20, 243, 224, 45, 156, 218, 184, 33, 193, 101, 8, 45, 91,\n\t\t185, 246, 73, 41, 105, 120, 6, 207, 165, 37, 42, 44, 99, 84,\n\t\t130, 60, 23, 111, 6, 245, 114, 80, 103, 34, 2, 184, 28, 115,\n\t\t96, 248, 143, 24, 17, 152, 231, 183, 55, 241, 252, 194, 2,\n\t\t96, 48, 113, 195, 240, 125, 171, 148, 119, 135, 115, 128,\n\t\t153, 22, 114, 14, 175, 133, 124, 132, 87, 193, 22, 170, 22,\n\t\t185, 166, 39, 164, 245, 7, 124, 166, 153, 152, 80, 96, 88,\n\t\t20, 28, 28, 64, 225, 28, 209, 192, 198, 4, 8, 213, 153, 150,\n\t\t139, 44, 128, 77, 120, 210, 83, 112, 39, 18, 188, 32, 70,\n\t\t108, 216, 182, 170, 224, 139, 68, 135, 249, 127, 163, 128,\n\t\t210, 255, 81, 28, 221, 7, 24, 24, 37, 228, 212, 73, 77, 141,\n\t\t0, 131, 34, 67, 79, 136, 78, 109, 194, 249, 229, 151, 229,\n\t\t47, 212, 198, 147, 130, 63, 90, 226, 4, 120, 104, 14, 173,\n\t\t163, 71, 208, 47, 161, 191, 2, 11, 50, 132, 178, 252, 203,\n\t\t159, 193, 81, 4, 197, 167, 19, 23, 51, 20, 113, 46, 25, 212,\n\t\t161, 70, 18, 46, 120, 239, 229, 120, 148, 5, 35, 84, 97, 18,\n\t\t228, 201, 106, 63, 233, 4, 123, 77, 69, 254, 31, 39, 171,\n\t\t157, 181, 142, 8, 120, 40, 184, 24, 79, 6, 51, 190, 39, 201,\n\t\t40, 21, 77, 179, 233, 90, 20, 202, 56, 108, 217, 242, 10,\n\t\t80, 247, 254, 34, 116, 214, 228, 7, 28, 214, 32, 12, 102,\n\t\t13, 41, 10, 107, 56, 92, 13, 59, 107, 123, 254, 65, 97, 16,\n\t\t6, 50, 231, 120, 63, 172, 22, 20, 47, 211, 73, 254, 121, 119,\n\t\t210, 69, 88, 229, 197, 21, 196, 234, 100, 220, 159, 228, 87,\n\t\t100, 253, 139, 173, 189, 240, 49, 154, 77, 26, 71, 241, 112,\n\t\t180, 186, 9, 195, 181, 139, 140, 48, 253, 236, 162, 19, 146,\n\t\t40, 238, 145, 87, 194, 172, 63, 89, 11, 162, 209, 94, 202,\n\t\t241, 219, 192, 11, 66, 65, 137, 82, 179, 29, 248, 105, 133,\n\t\t97, 162, 171, 6, 181, 48, 6, 219, 81, 160, 115, 169, 21, 248,\n\t\t27, 0, 180, 171, 73, 98, 23, 170, 242, 92, 78, 230, 42, 139,\n\t\t116, 70, 130, 20, 128, 58, 12, 67, 157, 80, 30, 230, 95, 58,\n\t\t53, 4, 121, 59, 177, 173, 158, 157, 75, 131, 66, 80, 192,\n\t\t150, 208, 129, 99, 13, 91, 58, 54, 24, 183, 152, 103, 169,\n\t\t140, 130, 101, 58, 134, 43, 248, 251, 168, 170, 82, 28, 213,\n\t\t75, 134, 10, 138, 94, 198, 20, 43, 196, 181, 11, 138, 19,\n\t\t174, 10, 248, 113, 194, 14, 94, 22, 133, 115, 115, 213, 202,\n\t\t190, 33, 46, 49, 66, 96, 122, 164, 149, 132, 33, 39, 216,\n\t\t195, 81, 220, 106, 174, 116, 243, 251, 14, 64, 8, 205, 117,\n\t\t2, 11, 231, 159, 182, 239, 233, 76, 112, 32, 84, 147, 4, 52,\n\t\t10, 182, 57, 192, 119, 186, 9, 6, 3, 112, 160, 187, 182, 86,\n\t\t193, 58, 54, 137, 163, 104, 132, 0, 193, 6, 48, 9, 63, 250,\n\t\t227, 151, 24, 164, 151, 8, 86, 79, 150, 24, 35, 6, 205, 27,\n\t\t172, 34, 185, 103, 124, 69, 12, 207, 228, 82, 15, 96, 184,\n\t\t81, 209, 0, 236, 45, 155, 43, 244, 181, 158, 42, 184, 1, 2,\n\t\t83, 138, 79, 50, 238, 42, 84, 154, 165, 242, 118, 194, 164,\n\t\t139, 48, 193, 192, 153, 66, 132, 42, 139, 71, 133, 165, 223,\n\t\t248, 239, 177, 156, 206, 217, 2, 159, 179, 146, 19, 150, 188,\n\t\t74, 174, 71, 104, 69, 19, 161, 192, 255, 6, 112, 85, 197,\n\t\t0, 140, 114, 171, 12, 38, 97, 152, 194, 106, 89, 231, 4, 3,\n\t\t97, 154, 93, 166, 152, 40, 117, 42, 245, 9, 162, 73, 126,\n\t\t80, 73, 48, 106, 27, 118, 156, 55, 57, 80, 136, 95, 35, 156,\n\t\t73, 123, 209, 121, 88, 159, 201, 178, 168, 39, 82, 223, 205,\n\t\t68, 10, 235, 31, 145, 255, 190, 116, 199, 29, 192, 118, 223,\n\t\t113, 251, 159, 253, 217, 69, 220, 132, 175, 192, 199, 144,\n\t\t141, 34, 84, 127, 21, 220, 4, 233, 61, 48, 241, 71, 50, 108,\n\t\t31, 158, 42, 39, 73, 105, 247, 87, 203, 73, 82, 174, 190,\n\t\t112, 253, 143, 108, 31, 122, 236, 214, 243, 167, 225, 99,\n\t\t73, 121, 247, 215, 242, 51, 112, 188, 156, 220, 242, 244,\n\t\t211, 143, 62, 186, 251, 183, 239, 124, 231, 35, 5, 230, 219,\n\t\t69, 223, 201, 189, 168, 232, 87, 197, 183, 30, 77, 146, 48,\n\t\t155, 253, 224, 51, 170, 105, 170, 187, 15, 229, 203, 247,\n\t\t207, 253, 206, 19, 249, 63, 120, 126, 239, 8, 124, 80, 53,\n\t\t119, 95, 248, 157, 223, 153, 155, 187, 78, 254, 93, 130, 253,\n\t\t128, 145, 135, 134, 8, 101, 177, 120, 69, 203, 47, 72, 102,\n\t\t22, 161, 64, 92, 168, 67, 62, 122, 73, 104, 183, 98, 2, 242,\n\t\t75, 119, 221, 5, 236, 82, 175, 183, 5, 133, 87, 140, 227,\n\t\t141, 250, 35, 181, 10, 167, 244, 37, 59, 223, 153, 78, 255,\n\t\t250, 146, 207, 230, 107, 155, 245, 89, 18, 115, 201, 177,\n\t\t183, 138, 244, 162, 108, 44, 57, 47, 241, 29, 37, 185, 60,\n\t\t233, 182, 221, 54, 76, 218, 238, 104, 50, 154, 192, 249, 221,\n\t\t3, 112, 118, 247, 31, 78, 158, 130, 231, 119, 15, 128, 121,\n\t\t50, 223, 220, 155, 211, 87, 240, 211, 240, 4, 210, 209, 10,\n\t\t186, 13, 189, 30, 189, 25, 61, 149, 75, 146, 47, 2, 245, 138,\n\t\t232, 34, 42, 239, 116, 5, 58, 22, 41, 118, 39, 110, 97, 239,\n\t\t158, 142, 134, 44, 23, 23, 18, 233, 45, 144, 11, 9, 133, 205,\n\t\t170, 8, 211, 200, 7, 225, 97, 29, 2, 105, 187, 138, 154, 16,\n\t\t165, 51, 140, 237, 189, 27, 108, 227, 248, 69, 98, 151, 104,\n\t\t143, 89, 254, 251, 100, 158, 144, 121, 114, 186, 134, 107,\n\t\t92, 131, 82, 108, 6, 10, 5, 156, 31, 195, 113, 181, 11, 255,\n\t\t164, 48, 181, 11, 86, 84, 142, 109, 130, 203, 237, 38, 103,\n\t\t222, 164, 197, 120, 45, 236, 215, 170, 152, 182, 23, 21, 6,\n\t\t124, 163, 252, 189, 193, 206, 129, 229, 118, 25, 207, 147,\n\t\t56, 105, 89, 149, 174, 83, 119, 43, 221, 238, 187, 74, 174,\n\t\t91, 114, 161, 243, 187, 132, 252, 46, 49, 131, 228, 61, 68,\n\t\t21, 111, 241, 56, 225, 92, 199, 248, 61, 132, 64, 140, 241,\n\t\t245, 250, 57, 63, 72, 116, 170, 48, 167, 131, 1, 124, 203,\n\t\t84, 74, 86, 189, 25, 219, 26, 94, 102, 196, 20, 68, 35, 101,\n\t\t253, 129, 157, 219, 118, 252, 147, 132, 252, 74, 125, 49,\n\t\t82, 63, 219, 171, 184, 53, 183, 55, 234, 125, 207, 205, 175,\n\t\t159, 183, 5, 20, 227, 115, 240, 0, 18, 18, 169, 124, 7, 157,\n\t\t69, 111, 65, 239, 67, 8, 205, 80, 231, 122, 195, 6, 4, 150,\n\t\t228, 45, 26, 111, 83, 49, 221, 130, 1, 93, 128, 68, 108, 224,\n\t\t109, 38, 178, 92, 4, 225, 194, 98, 157, 68, 100, 35, 49, 156,\n\t\t14, 27, 36, 110, 16, 139, 138, 164, 32, 232, 36, 11, 52, 17,\n\t\t73, 111, 58, 30, 176, 89, 38, 122, 49, 19, 237, 240, 78, 34,\n\t\t224, 203, 223, 255, 252, 231, 191, 255, 249, 221, 255, 120,\n\t\t203, 7, 110, 190, 249, 3, 255, 203, 7, 110, 142, 231, 55,\n\t\t143, 159, 216, 0, 70, 20, 102, 112, 155, 88, 216, 99, 22,\n\t\t211, 24, 167, 79, 180, 143, 183, 44, 75, 9, 152, 102, 42,\n\t\t62, 175, 16, 245, 67, 61, 149, 122, 170, 165, 106, 10, 193,\n\t\t114, 126, 132, 18, 70, 122, 132, 9, 201, 4, 72, 25, 85, 184,\n\t\t70, 253, 30, 186, 144, 159, 217, 187, 90, 192, 108, 166, 51,\n\t\t94, 92, 76, 245, 169, 38, 76, 238, 241, 152, 168, 112, 235,\n\t\t109, 111, 190, 237, 182, 55, 63, 184, 124, 245, 237, 87, 47,\n\t\t47, 95, 61, 136, 151, 186, 173, 208, 248, 41, 166, 10, 9,\n\t\t153, 121, 28, 48, 225, 66, 63, 243, 41, 199, 153, 122, 76,\n\t\t228, 135, 150, 254, 211, 178, 148, 154, 8, 161, 130, 27, 170,\n\t\t111, 87, 117, 59, 238, 216, 44, 47, 202, 233, 157, 139, 25,\n\t\t49, 230, 194, 184, 79, 230, 163, 156, 97, 12, 5, 70, 155,\n\t\t113, 225, 119, 224, 59, 240, 43, 168, 46, 61, 160, 16, 147,\n\t\t0, 180, 47, 198, 198, 247, 211, 169, 132, 45, 151, 254, 74,\n\t\t89, 56, 221, 3, 104, 216, 208, 72, 39, 1, 56, 243, 236, 179,\n\t\t191, 255, 108, 128, 85, 26, 45, 236, 116, 14, 221, 177, 120,\n\t\t249, 34, 244, 78, 108, 108, 156, 216, 168, 106, 88, 123, 246,\n\t\t247, 159, 125, 246, 236, 104, 64, 140, 206, 193, 213, 198,\n\t\t29, 7, 243, 147, 240, 233, 141, 252, 180, 196, 165, 255, 111,\n\t\t248, 0, 60, 135, 218, 104, 25, 237, 147, 108, 65, 119, 160,\n\t\t7, 164, 125, 120, 22, 126, 32, 17, 191, 6, 120, 143, 5, 104,\n\t\t19, 134, 81, 188, 13, 163, 61, 118, 237, 34, 60, 241, 213,\n\t\t183, 217, 255, 68, 26, 236, 228, 189, 196, 169, 203, 183,\n\t\t13, 160, 160, 212, 246, 15, 79, 229, 251, 63, 209, 93, 87,\n\t\t148, 245, 238, 115, 228, 227, 132, 60, 79, 47, 93, 66, 190,\n\t\t160, 207, 191, 100, 9, 207, 65, 45, 248, 199, 160, 150, 204,\n\t\t97, 92, 109, 186, 181, 224, 59, 126, 125, 144, 36, 131, 221,\n\t\t239, 196, 132, 196, 228, 192, 139, 75, 250, 88, 76, 105, 190,\n\t\t93, 44, 243, 35, 72, 185, 240, 223, 47, 188, 0, 207, 72, 204,\n\t\t182, 20, 237, 71, 215, 162, 215, 160, 199, 208, 83, 232, 57,\n\t\t132, 122, 133, 25, 104, 27, 54, 97, 85, 240, 56, 218, 1, 158,\n\t\t14, 200, 52, 219, 38, 233, 170, 148, 145, 26, 56, 179, 176,\n\t\t132, 255, 138, 184, 13, 219, 68, 246, 29, 190, 148, 89, 132,\n\t\t132, 9, 145, 42, 137, 92, 206, 84, 136, 161, 100, 229, 12,\n\t\t10, 202, 218, 149, 226, 178, 153, 164, 208, 201, 166, 241,\n\t\t54, 236, 128, 84, 54, 162, 233, 222, 177, 204, 194, 65, 20,\n\t\t71, 16, 93, 123, 118, 31, 5, 37, 152, 211, 181, 249, 122,\n\t\t111, 254, 196, 213, 230, 105, 39, 10, 85, 16, 250, 106, 47,\n\t\t18, 90, 120, 34, 14, 185, 17, 61, 222, 234, 185, 88, 168,\n\t\t4, 116, 219, 182, 129, 42, 148, 138, 253, 103, 42, 193, 97,\n\t\t141, 71, 148, 49, 78, 89, 59, 8, 202, 225, 10, 172, 86, 211,\n\t\t227, 239, 25, 14, 23, 43, 229, 182, 78, 133, 222, 192, 108,\n\t\t254, 235, 3, 75, 33, 127, 197, 112, 56, 158, 90, 246, 209,\n\t\t99, 93, 12, 191, 223, 236, 83, 130, 63, 114, 195, 56, 152,\n\t\t123, 198, 84, 141, 147, 87, 118, 9, 46, 3, 166, 170, 118,\n\t\t232, 221, 161, 202, 12, 66, 53, 213, 48, 25, 227, 58, 47,\n\t\t219, 81, 37, 138, 53, 103, 174, 54, 172, 59, 217, 1, 191,\n\t\t211, 136, 27, 63, 239, 213, 131, 216, 52, 9, 14, 91, 154,\n\t\t6, 212, 48, 92, 229, 248, 208, 216, 253, 94, 146, 4, 185,\n\t\t208, 203, 176, 81, 138, 107, 145, 9, 91, 134, 83, 227, 68,\n\t\t17, 174, 7, 36, 47, 59, 118, 176, 197, 52, 178, 204, 5, 230,\n\t\t154, 194, 26, 174, 98, 170, 167, 184, 77, 105, 61, 230, 68,\n\t\t83, 224, 195, 42, 173, 216, 194, 84, 21, 192, 156, 177, 34,\n\t\t142, 6, 16, 186, 240, 39, 248, 28, 124, 10, 29, 71, 8, 44,\n\t\t42, 195, 214, 241, 26, 23, 125, 139, 139, 108, 155, 22, 172,\n\t\t240, 54, 240, 180, 47, 193, 183, 97, 50, 30, 13, 139, 224,\n\t\t124, 18, 103, 171, 146, 7, 9, 159, 139, 59, 129, 174, 16,\n\t\t75, 176, 114, 215, 172, 7, 253, 90, 234, 47, 25, 19, 190,\n\t\t104, 109, 148, 71, 233, 86, 130, 5, 157, 48, 117, 254, 158,\n\t\t67, 55, 213, 218, 107, 14, 238, 31, 156, 156, 205, 136, 86,\n\t\t141, 74, 172, 230, 122, 29, 47, 30, 86, 224, 23, 236, 122,\n\t\t217, 117, 129, 29, 50, 181, 32, 80, 51, 160, 196, 230, 37,\n\t\t209, 162, 46, 43, 169, 22, 129, 92, 70, 60, 173, 96, 149,\n\t\t234, 6, 184, 14, 198, 246, 217, 91, 65, 232, 21, 119, 173,\n\t\t221, 25, 71, 141, 57, 235, 82, 108, 100, 11, 5, 168, 133,\n\t\t150, 17, 234, 133, 18, 104, 178, 96, 126, 139, 163, 116, 60,\n\t\t12, 131, 78, 54, 155, 218, 232, 79, 198, 211, 120, 6, 7, 36,\n\t\t237, 215, 176, 89, 187, 186, 174, 241, 179, 156, 177, 179,\n\t\t71, 143, 38, 15, 60, 251, 193, 251, 206, 62, 247, 254, 215,\n\t\t222, 252, 163, 143, 223, 56, 190, 99, 227, 177, 221, 179,\n\t\t79, 60, 113, 150, 107, 140, 237, 75, 146, 206, 191, 253, 201,\n\t\t215, 60, 248, 190, 127, 117, 255, 153, 15, 44, 191, 249, 250,\n\t\t27, 158, 24, 222, 185, 121, 211, 99, 123, 56, 81, 69, 25,\n\t\t116, 52, 143, 14, 33, 228, 95, 114, 51, 49, 187, 23, 203,\n\t\t82, 11, 68, 152, 76, 58, 105, 214, 128, 108, 156, 246, 179,\n\t\t142, 136, 183, 33, 155, 140, 194, 40, 22, 253, 252, 179, 110,\n\t\t130, 84, 174, 191, 59, 43, 196, 205, 250, 19, 55, 148, 87,\n\t\t58, 77, 223, 165, 248, 14, 158, 150, 234, 243, 157, 78, 121,\n\t\t63, 136, 26, 188, 246, 192, 93, 162, 27, 212, 59, 181, 86,\n\t\t82, 115, 212, 213, 229, 39, 249, 230, 38, 252, 202, 179, 15,\n\t\t60, 248, 190, 231, 206, 158, 249, 192, 127, 104, 118, 111,\n\t\t120, 92, 119, 75, 126, 204, 233, 124, 185, 134, 251, 253,\n\t\t70, 39, 130, 178, 198, 141, 63, 191, 99, 49, 10, 33, 77, 33,\n\t\t236, 148, 109, 197, 12, 131, 125, 149, 234, 205, 27, 91, 232,\n\t\t165, 245, 184, 134, 70, 232, 234, 217, 83, 72, 36, 198, 201,\n\t\t120, 234, 15, 183, 73, 54, 94, 75, 47, 154, 215, 251, 105,\n\t\t50, 25, 109, 193, 36, 153, 140, 82, 201, 30, 153, 100, 241,\n\t\t222, 116, 81, 161, 147, 139, 2, 155, 41, 30, 133, 223, 125,\n\t\t224, 217, 202, 234, 246, 21, 253, 188, 98, 219, 91, 189, 142,\n\t\t198, 206, 221, 102, 172, 87, 3, 173, 214, 91, 62, 174, 84,\n\t\t227, 152, 30, 212, 159, 56, 12, 215, 188, 135, 63, 118, 211,\n\t\t67, 219, 215, 11, 209, 223, 232, 212, 244, 82, 212, 246, 41,\n\t\t173, 29, 203, 31, 108, 241, 154, 173, 165, 56, 127, 182, 221,\n\t\t253, 97, 57, 177, 21, 88, 31, 234, 3, 103, 178, 218, 80, 85,\n\t\t104, 212, 155, 201, 13, 79, 124, 197, 223, 42, 215, 110, 122,\n\t\t236, 142, 174, 174, 46, 24, 171, 90, 196, 84, 179, 241, 146,\n\t\t231, 210, 81, 27, 245, 208, 198, 75, 223, 142, 63, 204, 210,\n\t\t217, 231, 50, 154, 164, 23, 159, 37, 21, 225, 222, 211, 88,\n\t\t88, 196, 233, 168, 9, 217, 72, 140, 246, 94, 204, 107, 31,\n\t\t58, 114, 226, 192, 254, 3, 7, 248, 70, 237, 73, 245, 137,\n\t\t207, 102, 228, 192, 25, 229, 177, 155, 90, 27, 11, 13, 253,\n\t\t250, 234, 161, 185, 120, 241, 208, 78, 31, 126, 37, 255, 88,\n\t\t138, 34, 223, 219, 237, 174, 175, 167, 158, 145, 174, 215,\n\t\t90, 55, 60, 241, 222, 18, 247, 70, 203, 181, 230, 77, 143,\n\t\t185, 205, 166, 223, 29, 221, 172, 157, 126, 244, 37, 229,\n\t\t44, 161, 26, 106, 189, 180, 156, 47, 249, 100, 247, 194, 140,\n\t\t191, 251, 242, 143, 85, 253, 226, 23, 191, 88, 220, 247, 165,\n\t\t31, 233, 79, 46, 46, 94, 183, 176, 112, 201, 119, 42, 80,\n\t\t130, 178, 23, 253, 250, 253, 225, 54, 100, 253, 180, 240,\n\t\t236, 149, 190, 19, 120, 50, 206, 82, 222, 192, 217, 234, 168,\n\t\t168, 6, 46, 227, 143, 98, 209, 231, 162, 192, 51, 250, 110,\n\t\t239, 232, 196, 131, 255, 172, 151, 189, 208, 238, 182, 7,\n\t\t65, 63, 45, 209, 107, 125, 127, 116, 235, 63, 130, 120, 252,\n\t\t134, 241, 201, 234, 21, 237, 35, 131, 214, 156, 181, 106,\n\t\t238, 161, 28, 253, 97, 117, 165, 9, 167, 221, 86, 236, 46,\n\t\t213, 141, 234, 56, 113, 157, 100, 245, 244, 85, 171, 255,\n\t\t186, 82, 185, 225, 241, 225, 66, 123, 92, 155, 119, 104, 105,\n\t\t38, 171, 94, 82, 23, 13, 52, 135, 198, 104, 243, 229, 239,\n\t\t77, 214, 68, 225, 61, 226, 15, 131, 69, 152, 196, 114, 158,\n\t\t115, 17, 194, 116, 24, 6, 22, 150, 14, 149, 241, 112, 218,\n\t\t95, 132, 240, 98, 69, 229, 149, 116, 211, 205, 63, 250, 248,\n\t\t71, 143, 29, 155, 76, 59, 170, 205, 153, 127, 231, 144, 104,\n\t\t101, 191, 218, 217, 49, 13, 195, 170, 189, 88, 123, 187, 251,\n\t\t101, 213, 229, 117, 8, 238, 51, 207, 60, 148, 218, 30, 135,\n\t\t107, 31, 26, 112, 195, 211, 151, 158, 57, 28, 6, 243, 47,\n\t\t43, 231, 210, 12, 145, 233, 95, 126, 111, 77, 8, 37, 81, 56,\n\t\t164, 34, 157, 100, 227, 73, 22, 135, 98, 146, 76, 210, 48,\n\t\t222, 129, 84, 196, 19, 17, 190, 226, 141, 94, 205, 72, 171,\n\t\t129, 201, 198, 17, 245, 192, 206, 230, 225, 143, 132, 240,\n\t\t134, 55, 40, 115, 189, 244, 228, 242, 171, 189, 230, 63, 36,\n\t\t199, 192, 50, 75, 53, 90, 173, 29, 40, 193, 177, 250, 246,\n\t\t246, 217, 37, 60, 88, 94, 217, 112, 28, 119, 178, 232, 47,\n\t\t190, 188, 175, 42, 161, 173, 31, 82, 90, 177, 77, 70, 195,\n\t\t189, 121, 228, 1, 164, 163, 72, 130, 61, 12, 72, 210, 17,\n\t\t35, 145, 190, 162, 168, 95, 165, 213, 110, 205, 74, 38, 85,\n\t\t163, 186, 181, 16, 45, 166, 108, 155, 140, 163, 174, 110,\n\t\t6, 10, 27, 114, 111, 109, 237, 213, 74, 252, 169, 250, 130,\n\t\t39, 170, 139, 139, 81, 123, 115, 206, 30, 116, 7, 115, 139,\n\t\t113, 199, 86, 96, 105, 109, 237, 149, 101, 125, 227, 15, 43,\n\t\t235, 48, 10, 227, 44, 239, 232, 99, 233, 230, 17, 103, 211,\n\t\t77, 8, 147, 153, 253, 83, 78, 74, 238, 173, 130, 206, 36,\n\t\t229, 97, 190, 179, 218, 159, 200, 163, 43, 32, 253, 153, 10,\n\t\t120, 163, 113, 145, 189, 136, 22, 205, 175, 243, 138, 231,\n\t\t188, 158, 42, 156, 133, 156, 131, 170, 25, 140, 40, 27, 35,\n\t\t159, 56, 64, 21, 80, 53, 224, 12, 171, 42, 112, 30, 22, 27,\n\t\t192, 25, 104, 10, 214, 169, 24, 47, 91, 196, 198, 68, 225,\n\t\t76, 99, 66, 242, 31, 51, 14, 175, 86, 33, 19, 198, 31, 218,\n\t\t210, 52, 124, 221, 1, 77, 189, 219, 20, 209, 146, 130, 213,\n\t\t214, 237, 154, 6, 87, 93, 166, 170, 112, 203, 93, 134, 113,\n\t\t203, 141, 160, 105, 0, 39, 247, 169, 234, 85, 74, 88, 19,\n\t\t88, 9, 238, 161, 220, 56, 122, 59, 99, 0, 140, 93, 119, 143,\n\t\t246, 178, 190, 228, 174, 31, 90, 115, 241, 232, 98, 53, 117,\n\t\t228, 98, 146, 87, 209, 139, 187, 47, 169, 156, 233, 48, 175,\n\t\t33, 25, 49, 155, 87, 210, 54, 92, 220, 21, 195, 241, 98, 97,\n\t\t4, 74, 58, 193, 38, 132, 193, 112, 63, 188, 162, 230, 162,\n\t\t205, 145, 71, 60, 32, 28, 34, 160, 12, 34, 198, 34, 96, 20,\n\t\t228, 34, 4, 157, 136, 209, 162, 69, 92, 12, 10, 132, 64, 121,\n\t\t145, 134, 231, 167, 24, 11, 177, 78, 241, 49, 69, 9, 157,\n\t\t48, 95, 188, 90, 213, 125, 61, 94, 82, 136, 18, 223, 160,\n\t\t235, 7, 54, 116, 253, 178, 235, 117, 253, 242, 99, 186, 126,\n\t\t205, 162, 174, 93, 206, 227, 154, 192, 170, 113, 74, 211,\n\t\t246, 93, 167, 235, 135, 111, 212, 245, 59, 151, 53, 208, 143,\n\t\t142, 116, 237, 14, 85, 225, 197, 53, 243, 69, 49, 183, 240,\n\t\t98, 221, 141, 209, 22, 58, 240, 195, 106, 239, 82, 194, 207,\n\t\t68, 34, 57, 143, 179, 34, 18, 89, 140, 38, 227, 108, 52, 73,\n\t\t226, 36, 28, 189, 162, 38, 28, 174, 40, 252, 221, 76, 153,\n\t\t18, 70, 177, 241, 12, 17, 228, 221, 243, 70, 246, 208, 231,\n\t\t30, 122, 232, 213, 158, 236, 105, 133, 255, 114, 158, 97,\n\t\t138, 9, 199, 255, 171, 78, 40, 167, 211, 55, 158, 49, 240,\n\t\t220, 225, 127, 243, 178, 242, 206, 161, 53, 180, 239, 135,\n\t\t148, 151, 15, 27, 120, 230, 7, 178, 13, 113, 71, 54, 151,\n\t\t180, 31, 11, 46, 173, 33, 175, 40, 230, 35, 27, 11, 145, 170,\n\t\t70, 11, 197, 234, 248, 18, 158, 42, 58, 235, 237, 87, 29,\n\t\t115, 233, 213, 202, 185, 85, 89, 92, 153, 174, 44, 86, 138,\n\t\t85, 237, 100, 96, 221, 103, 170, 48, 120, 192, 180, 78, 150,\n\t\t209, 12, 171, 127, 7, 159, 131, 131, 18, 57, 252, 106, 116,\n\t\t55, 58, 139, 16, 140, 68, 146, 165, 121, 53, 198, 73, 127,\n\t\t82, 20, 90, 218, 78, 210, 64, 36, 211, 253, 48, 146, 6, 201,\n\t\t48, 16, 211, 108, 56, 42, 226, 124, 242, 129, 40, 29, 197,\n\t\t116, 134, 126, 150, 77, 58, 123, 97, 41, 211, 94, 3, 166,\n\t\t89, 193, 85, 177, 7, 61, 147, 14, 128, 11, 124, 103, 231,\n\t\t222, 110, 109, 63, 131, 6, 132, 243, 245, 22, 240, 185, 106,\n\t\t26, 64, 11, 183, 130, 126, 99, 128, 181, 195, 94, 105, 190,\n\t\t141, 59, 244, 240, 170, 163, 247, 178, 221, 95, 94, 174, 213,\n\t\t150, 171, 255, 92, 114, 86, 132, 99, 148, 171, 187, 247, 193,\n\t\t252, 34, 111, 147, 114, 221, 93, 152, 95, 152, 239, 46, 118,\n\t\t96, 121, 153, 2, 254, 205, 233, 163, 154, 117, 200, 214, 85,\n\t\t189, 82, 241, 25, 45, 53, 202, 170, 22, 233, 159, 190, 174,\n\t\t52, 215, 85, 149, 54, 166, 237, 104, 177, 18, 188, 206, 110,\n\t\t172, 54, 26, 171, 30, 1, 40, 9, 93, 169, 132, 213, 146, 225,\n\t\t58, 145, 50, 223, 238, 46, 244, 251, 74, 88, 137, 194, 42,\n\t\t66, 72, 65, 238, 133, 111, 193, 191, 151, 28, 180, 30, 58,\n\t\t137, 206, 160, 199, 209, 135, 209, 111, 160, 223, 66, 104,\n\t\t134, 189, 176, 129, 163, 25, 101, 184, 132, 85, 223, 134,\n\t\t84, 250, 201, 201, 144, 239, 76, 72, 136, 5, 177, 133, 183,\n\t\t165, 187, 112, 38, 221, 145, 39, 153, 244, 143, 140, 226,\n\t\t105, 22, 115, 57, 125, 27, 6, 34, 138, 163, 222, 52, 155,\n\t\t38, 253, 164, 19, 138, 160, 9, 81, 60, 158, 54, 65, 186, 217,\n\t\t37, 171, 73, 39, 229, 113, 94, 153, 50, 128, 119, 7, 10, 218,\n\t\t209, 180, 47, 209, 172, 194, 66, 161, 139, 11, 255, 190, 217,\n\t\t36, 121, 65, 52, 49, 25, 103, 242, 151, 202, 73, 240, 105,\n\t\t150, 43, 112, 217, 180, 151, 141, 196, 87, 53, 91, 211, 236,\n\t\t211, 150, 174, 11, 166, 176, 231, 163, 170, 107, 8, 99, 173,\n\t\t220, 217, 89, 88, 137, 60, 142, 253, 57, 81, 170, 219, 162,\n\t\t4, 132, 114, 213, 112, 181, 250, 156, 78, 2, 211, 195, 160,\n\t\t90, 10, 174, 90, 42, 243, 67, 155, 219, 110, 212, 224, 43,\n\t\t221, 125, 187, 255, 133, 41, 160, 150, 65, 197, 202, 80, 177,\n\t\t18, 79, 177, 169, 80, 18, 29, 92, 222, 127, 77, 128, 65, 197,\n\t\t210, 100, 75, 25, 33, 141, 10, 230, 4, 131, 175, 50, 78, 136,\n\t\t246, 246, 250, 146, 110, 16, 218, 18, 186, 233, 24, 154, 165,\n\t\t168, 28, 4, 46, 187, 253, 145, 233, 225, 149, 195, 245, 91,\n\t\t94, 223, 247, 188, 221, 191, 7, 27, 202, 121, 89, 243, 63,\n\t\t170, 82, 101, 176, 185, 84, 187, 166, 22, 218, 138, 134, 69,\n\t\t100, 153, 12, 111, 45, 166, 237, 82, 181, 140, 231, 68, 162,\n\t\t55, 236, 138, 23, 106, 77, 39, 44, 3, 248, 38, 64, 69, 177,\n\t\t84, 12, 154, 168, 26, 77, 198, 197, 98, 228, 88, 118, 111,\n\t\t243, 243, 182, 101, 97, 165, 170, 192, 142, 41, 60, 199, 209,\n\t\t205, 190, 230, 155, 246, 214, 253, 78, 94, 80, 29, 192, 17,\n\t\t140, 17, 218, 107, 18, 224, 4, 34, 80, 242, 146, 43, 221,\n\t\t121, 159, 81, 66, 82, 85, 179, 84, 157, 107, 154, 174, 104,\n\t\t140, 42, 58, 103, 204, 49, 199, 149, 238, 116, 120, 252, 206,\n\t\t149, 150, 94, 46, 253, 129, 61, 227, 105, 177, 46, 252, 25,\n\t\t124, 1, 62, 142, 198, 232, 52, 66, 48, 243, 216, 12, 226,\n\t\t6, 137, 135, 219, 52, 27, 197, 50, 144, 152, 23, 14, 0, 120,\n\t\t7, 166, 195, 184, 65, 197, 22, 25, 16, 201, 221, 38, 189,\n\t\t43, 73, 13, 135, 121, 119, 53, 141, 163, 58, 92, 220, 128,\n\t\t207, 131, 198, 14, 206, 159, 189, 26, 176, 83, 143, 3, 197,\n\t\t181, 45, 77, 33, 24, 106, 163, 181, 105, 208, 140, 108, 141,\n\t\t99, 211, 247, 185, 24, 252, 214, 10, 81, 34, 215, 186, 18,\n\t\t48, 227, 204, 59, 226, 26, 134, 123, 196, 227, 156, 225, 149,\n\t\t82, 201, 160, 131, 74, 172, 83, 48, 47, 27, 150, 150, 152,\n\t\t225, 11, 225, 198, 154, 180, 90, 97, 12, 61, 155, 96, 139,\n\t\t249, 141, 218, 114, 51, 171, 215, 13, 94, 29, 84, 125, 66,\n\t\t195, 16, 179, 160, 50, 248, 136, 183, 92, 170, 91, 158, 174,\n\t\t241, 8, 170, 65, 80, 193, 17, 215, 61, 179, 21, 143, 131,\n\t\t71, 154, 140, 151, 117, 115, 103, 167, 43, 120, 164, 24, 143,\n\t\t92, 140, 173, 198, 71, 225, 121, 228, 163, 33, 58, 138, 174,\n\t\t148, 30, 31, 113, 146, 242, 92, 231, 154, 217, 185, 27, 192,\n\t\t130, 40, 158, 140, 54, 160, 65, 115, 25, 81, 210, 179, 205,\n\t\t228, 124, 30, 15, 163, 225, 54, 153, 140, 7, 116, 1, 120,\n\t\t34, 194, 97, 214, 79, 240, 209, 91, 15, 63, 60, 215, 238,\n\t\t221, 123, 246, 153, 207, 60, 113, 237, 187, 174, 217, 93,\n\t\t62, 186, 254, 191, 97, 225, 187, 161, 173, 121, 229, 255,\n\t\t159, 185, 55, 143, 182, 228, 56, 235, 4, 243, 251, 98, 205,\n\t\t61, 239, 189, 153, 25, 119, 191, 247, 221, 124, 47, 243, 213,\n\t\t219, 223, 93, 50, 75, 85, 111, 209, 174, 42, 73, 85, 150,\n\t\t75, 146, 37, 171, 100, 203, 114, 75, 150, 101, 36, 47, 242,\n\t\t38, 188, 128, 12, 24, 131, 177, 25, 140, 13, 102, 96, 108,\n\t\t204, 52, 205, 12, 59, 7, 166, 109, 218, 13, 199, 194, 96,\n\t\t55, 171, 15, 109, 115, 154, 67, 207, 24, 179, 156, 54, 48,\n\t\t184, 57, 166, 135, 57, 7, 76, 243, 106, 78, 68, 222, 167,\n\t\t5, 78, 255, 63, 149, 117, 223, 205, 155, 25, 25, 25, 25, 17,\n\t\t25, 223, 247, 69, 252, 190, 239, 215, 181, 237, 166, 67, 232,\n\t\t173, 111, 121, 213, 213, 111, 251, 83, 217, 241, 91, 182,\n\t\t67, 145, 49, 215, 14, 189, 68, 66, 95, 249, 238, 151, 175,\n\t\t92, 247, 212, 29, 54, 61, 58, 242, 158, 184, 237, 165, 79,\n\t\t205, 31, 184, 169, 184, 33, 250, 125, 202, 253, 230, 160,\n\t\t217, 94, 107, 186, 70, 67, 32, 217, 133, 27, 111, 186, 252,\n\t\t10, 0, 194, 93, 201, 165, 97, 105, 125, 38, 37, 173, 23, 243,\n\t\t16, 29, 88, 15, 89, 143, 215, 115, 189, 107, 134, 217, 247,\n\t\t84, 255, 45, 146, 105, 170, 71, 117, 35, 136, 226, 128, 102,\n\t\t201, 116, 54, 157, 45, 38, 59, 108, 126, 8, 233, 204, 248,\n\t\t27, 77, 143, 200, 1, 236, 103, 201, 44, 206, 38, 117, 172,\n\t\t12, 163, 234, 152, 185, 216, 1, 196, 169, 152, 20, 11, 173,\n\t\t247, 196, 220, 204, 31, 115, 63, 80, 173, 70, 58, 234, 224,\n\t\t129, 141, 203, 101, 62, 130, 12, 5, 14, 105, 163, 137, 182,\n\t\t137, 1, 199, 67, 213, 114, 87, 187, 210, 19, 12, 135, 205,\n\t\t180, 233, 11, 238, 32, 58, 36, 114, 27, 141, 232, 17, 199,\n\t\t225, 209, 154, 97, 172, 124, 74, 132, 157, 21, 218, 143, 210,\n\t\t54, 130, 33, 29, 165, 130, 62, 201, 56, 165, 134, 139, 86,\n\t\t26, 172, 42, 227, 108, 7, 54, 18, 159, 127, 0, 37, 11, 72,\n\t\t195, 233, 169, 158, 97, 226, 151, 200, 156, 150, 59, 14, 154,\n\t\t219, 112, 11, 100, 81, 92, 215, 201, 175, 160, 5, 127, 98,\n\t\t5, 86, 102, 93, 181, 30, 179, 172, 234, 212, 105, 165, 118,\n\t\t206, 85, 169, 138, 151, 126, 188, 243, 234, 136, 104, 125,\n\t\t176, 138, 77, 4, 189, 197, 1, 46, 242, 34, 159, 152, 8, 125,\n\t\t169, 224, 25, 207, 15, 225, 116, 201, 107, 185, 92, 189, 167,\n\t\t210, 211, 248, 244, 169, 40, 118, 160, 172, 166, 250, 109,\n\t\t224, 127, 71, 90, 238, 108, 16, 164, 130, 118, 163, 254, 106,\n\t\t246, 219, 46, 68, 97, 180, 254, 154, 57, 76, 183, 110, 89,\n\t\t107, 48, 160, 120, 12, 100, 220, 180, 201, 35, 235, 15, 94,\n\t\t62, 111, 214, 102, 193, 85, 3, 32, 41, 3, 123, 72, 9, 21,\n\t\t91, 231, 190, 239, 73, 19, 201, 220, 87, 20, 88, 247, 71,\n\t\t231, 65, 216, 92, 1, 250, 82, 132, 149, 71, 27, 130, 18, 76,\n\t\t39, 235, 77, 95, 6, 43, 43, 107, 178, 173, 86, 3, 111, 68,\n\t\t137, 16, 148, 12, 183, 134, 1, 253, 230, 29, 222, 76, 9, 241,\n\t\t236, 201, 192, 123, 115, 149, 174, 221, 182, 227, 143, 54,\n\t\t11, 23, 122, 42, 233, 182, 29, 194, 246, 55, 25, 21, 114,\n\t\t191, 185, 245, 56, 120, 46, 208, 70, 149, 82, 244, 127, 76,\n\t\t210, 168, 239, 227, 120, 163, 187, 246, 2, 61, 65, 88, 161,\n\t\t165, 172, 145, 245, 175, 158, 183, 255, 154, 75, 73, 250,\n\t\t207, 127, 175, 113, 81, 168, 231, 62, 147, 162, 18, 249, 11,\n\t\t63, 243, 74, 21, 229, 11, 63, 83, 37, 170, 244, 133, 159,\n\t\t88, 20, 181, 181, 248, 3, 159, 255, 224, 7, 63, 255, 193,\n\t\t31, 248, 228, 123, 222, 243, 201, 247, 124, 199, 47, 188,\n\t\t235, 93, 191, 240, 46, 248, 94, 30, 220, 126, 24, 37, 213,\n\t\t170, 234, 244, 153, 223, 245, 105, 175, 171, 86, 203, 52,\n\t\t58, 186, 61, 224, 151, 174, 32, 222, 125, 249, 249, 4, 61,\n\t\t234, 119, 125, 214, 239, 168, 213, 42, 137, 14, 111, 247,\n\t\t197, 229, 187, 1, 174, 156, 26, 150, 63, 249, 65, 157, 59,\n\t\t28, 191, 71, 103, 127, 242, 31, 223, 165, 243, 47, 78, 211,\n\t\t6, 252, 242, 221, 203, 204, 142, 26, 255, 227, 187, 93, 185,\n\t\t164, 19, 68, 105, 153, 165, 221, 250, 110, 150, 241, 5, 125,\n\t\t22, 10, 179, 230, 229, 154, 90, 179, 90, 162, 56, 134, 68,\n\t\t168, 100, 23, 142, 81, 133, 176, 24, 65, 8, 139, 234, 85,\n\t\t171, 89, 118, 207, 153, 51, 241, 108, 246, 72, 182, 186, 122,\n\t\t79, 50, 155, 37, 103, 160, 191, 181, 181, 249, 205, 95, 218,\n\t\t222, 254, 210, 231, 207, 157, 155, 108, 110, 110, 17, 189,\n\t\t243, 249, 47, 109, 91, 238, 139, 218, 34, 181, 250, 214, 205,\n\t\t214, 157, 214, 21, 235, 126, 235, 149, 214, 35, 214, 235,\n\t\t44, 139, 46, 93, 114, 112, 185, 134, 80, 164, 74, 236, 192,\n\t\t46, 36, 92, 20, 165, 154, 37, 169, 170, 148, 48, 244, 128,\n\t\t92, 40, 81, 15, 113, 121, 33, 138, 202, 76, 202, 148, 85,\n\t\t81, 169, 242, 24, 82, 149, 237, 96, 177, 166, 184, 200, 74,\n\t\t49, 75, 149, 200, 215, 102, 58, 3, 150, 170, 36, 47, 42, 197,\n\t\t197, 162, 132, 135, 76, 243, 252, 208, 179, 239, 123, 223,\n\t\t179, 239, 251, 157, 179, 219, 205, 112, 191, 117, 118, 103,\n\t\t173, 185, 125, 243, 56, 240, 207, 167, 231, 109, 114, 229,\n\t\t10, 177, 207, 167, 231, 253, 224, 159, 29, 240, 194, 95, 158,\n\t\t200, 14, 58, 161, 60, 249, 108, 179, 47, 58, 82, 118, 68,\n\t\t191, 57, 129, 111, 239, 200, 73, 179, 127, 242, 149, 181,\n\t\t157, 179, 219, 95, 111, 110, 159, 221, 57, 107, 26, 9, 46,\n\t\t191, 79, 223, 227, 41, 57, 105, 122, 49, 233, 152, 180, 155,\n\t\t167, 89, 143, 194, 211, 172, 169, 124, 209, 189, 230, 219,\n\t\t103, 189, 241, 192, 105, 54, 215, 118, 206, 190, 81, 23, 235,\n\t\t236, 217, 237, 230, 218, 157, 250, 118, 147, 102, 115, 34,\n\t\t59, 102, 46, 83, 90, 214, 181, 63, 71, 11, 126, 212, 234,\n\t\t90, 83, 235, 118, 235, 205, 214, 59, 173, 111, 183, 190, 199,\n\t\t250, 121, 203, 106, 205, 146, 33, 168, 124, 185, 176, 94,\n\t\t187, 85, 37, 177, 56, 194, 170, 94, 10, 207, 242, 172, 172,\n\t\t210, 105, 153, 23, 101, 53, 4, 243, 149, 170, 0, 210, 229,\n\t\t215, 180, 74, 213, 68, 24, 78, 49, 227, 242, 153, 106, 25,\n\t\t162, 18, 46, 118, 32, 51, 126, 177, 134, 215, 156, 139, 188,\n\t\t88, 28, 213, 220, 168, 233, 41, 217, 208, 242, 85, 42, 151,\n\t\t191, 133, 214, 195, 102, 233, 212, 192, 107, 103, 83, 197,\n\t\t69, 174, 115, 72, 248, 164, 88, 236, 64, 49, 17, 121, 81,\n\t\t126, 195, 115, 2, 104, 233, 193, 86, 143, 31, 4, 98, 224,\n\t\t174, 232, 18, 200, 165, 223, 247, 2, 98, 187, 137, 112, 93,\n\t\t191, 33, 155, 30, 8, 255, 37, 161, 47, 192, 107, 202, 134,\n\t\t239, 186, 34, 113, 109, 18, 120, 125, 95, 230, 112, 198, 59,\n\t\t92, 89, 207, 143, 195, 160, 229, 156, 91, 95, 217, 183, 189,\n\t\t182, 199, 59, 121, 186, 126, 206, 105, 5, 225, 113, 190, 190,\n\t\t114, 168, 38, 237, 246, 164, 93, 245, 91, 173, 126, 107, 43,\n\t\t141, 162, 52, 250, 222, 94, 170, 186, 32, 35, 9, 93, 149,\n\t\t246, 98, 7, 89, 224, 143, 54, 120, 52, 142, 248, 198, 200,\n\t\t15, 24, 58, 240, 163, 189, 240, 233, 187, 186, 105, 67, 74,\n\t\t106, 216, 31, 164, 108, 164, 221, 197, 213, 67, 231, 155,\n\t\t87, 138, 214, 25, 202, 211, 152, 187, 77, 209, 244, 61, 87,\n\t\t164, 30, 39, 132, 123, 169, 112, 61, 191, 41, 154, 46, 143,\n\t\t83, 78, 207, 180, 242, 78, 220, 24, 93, 15, 65, 128, 221,\n\t\t180, 209, 6, 213, 32, 196, 109, 122, 237, 70, 218, 197, 32,\n\t\t128, 235, 71, 141, 59, 219, 186, 96, 81, 75, 23, 204, 143,\n\t\t116, 193, 102, 206, 128, 2, 208, 129, 131, 45, 135, 194, 230,\n\t\t136, 17, 194, 70, 155, 64, 157, 22, 158, 206, 97, 255, 49,\n\t\t252, 26, 252, 132, 245, 148, 101, 173, 29, 97, 21, 7, 76,\n\t\t100, 59, 108, 23, 134, 48, 130, 29, 212, 234, 78, 80, 239,\n\t\t67, 189, 80, 160, 247, 3, 24, 146, 17, 148, 85, 29, 104, 179,\n\t\t121, 8, 201, 34, 137, 91, 149, 80, 66, 229, 133, 58, 34, 121,\n\t\t161, 63, 67, 198, 197, 17, 153, 23, 67, 194, 225, 123, 137,\n\t\t211, 115, 208, 107, 100, 91, 183, 110, 208, 141, 91, 182,\n\t\t39, 77, 23, 208, 109, 75, 17, 43, 134, 142, 67, 169, 7, 141,\n\t\t68, 218, 3, 103, 144, 71, 81, 175, 25, 36, 142, 211, 112,\n\t\t237, 164, 167, 108, 9, 48, 105, 31, 31, 199, 35, 41, 71, 241,\n\t\t241, 113, 123, 72, 145, 199, 91, 29, 108, 83, 191, 231, 52,\n\t\t122, 196, 27, 182, 83, 17, 165, 212, 237, 4, 30, 177, 27,\n\t\t68, 221, 142, 246, 122, 143, 250, 121, 182, 57, 76, 1, 146,\n\t\t149, 162, 88, 113, 156, 94, 193, 121, 103, 177, 181, 49, 238,\n\t\t112, 209, 94, 156, 201, 108, 123, 239, 234, 209, 158, 235,\n\t\t198, 229, 222, 166, 239, 173, 28, 108, 23, 221, 22, 165, 141,\n\t\t155, 87, 247, 108, 187, 218, 129, 29, 166, 123, 15, 63, 249,\n\t\t210, 78, 101, 219, 123, 99, 122, 47, 113, 55, 246, 239, 218,\n\t\t102, 209, 254, 118, 21, 163, 236, 141, 246, 103, 55, 103,\n\t\t196, 207, 139, 69, 135, 69, 243, 249, 237, 22, 179, 122, 215,\n\t\t62, 3, 63, 1, 207, 194, 59, 225, 35, 240, 11, 240, 57, 248,\n\t\t67, 203, 82, 121, 85, 46, 202, 234, 0, 138, 249, 194, 248,\n\t\t90, 45, 230, 139, 124, 81, 3, 168, 170, 35, 200, 179, 26,\n\t\t159, 21, 107, 163, 34, 225, 6, 202, 207, 139, 124, 81, 175,\n\t\t217, 44, 145, 90, 34, 169, 193, 52, 42, 53, 241, 149, 107,\n\t\t147, 193, 36, 231, 198, 223, 167, 206, 110, 161, 19, 239,\n\t\t66, 117, 0, 139, 93, 48, 48, 84, 131, 96, 201, 139, 252, 184,\n\t\t142, 70, 53, 63, 5, 122, 25, 188, 90, 18, 159, 2, 221, 148,\n\t\t193, 161, 44, 230, 186, 132, 139, 188, 120, 209, 182, 11,\n\t\t139, 194, 44, 87, 40, 19, 171, 67, 223, 215, 48, 198, 242,\n\t\t68, 149, 213, 220, 148, 82, 77, 77, 88, 194, 82, 75, 251,\n\t\t33, 28, 131, 49, 120, 134, 96, 220, 49, 19, 125, 35, 158,\n\t\t24, 215, 248, 132, 139, 231, 55, 253, 214, 155, 98, 212, 69,\n\t\t73, 151, 80, 187, 83, 56, 140, 249, 50, 79, 152, 140, 32,\n\t\t137, 85, 82, 95, 22, 34, 215, 169, 247, 107, 128, 128, 65,\n\t\t34, 11, 147, 187, 74, 67, 157, 44, 77, 184, 138, 205, 172,\n\t\t65, 128, 85, 94, 251, 141, 215, 148, 104, 73, 106, 30, 64,\n\t\t151, 167, 6, 238, 45, 207, 205, 103, 229, 8, 18, 110, 92,\n\t\t82, 67, 216, 35, 67, 170, 82, 101, 152, 229, 106, 210, 158,\n\t\t82, 165, 117, 104, 18, 125, 34, 128, 252, 47, 17, 160, 134,\n\t\t78, 81, 0, 38, 12, 128, 4, 128, 114, 175, 6, 145, 25, 188,\n\t\t8, 24, 95, 110, 41, 145, 104, 3, 197, 54, 171, 175, 245, 101,\n\t\t122, 115, 233, 115, 208, 43, 116, 93, 189, 111, 188, 119,\n\t\t65, 56, 129, 135, 38, 13, 80, 157, 45, 227, 200, 245, 53,\n\t\t132, 186, 136, 13, 46, 13, 90, 29, 209, 192, 87, 208, 145,\n\t\t28, 244, 77, 76, 252, 96, 33, 164, 137, 178, 11, 192, 144,\n\t\t9, 6, 4, 92, 129, 33, 160, 164, 12, 25, 165, 198, 99, 141,\n\t\t27, 79, 14, 199, 101, 84, 107, 160, 134, 239, 158, 8, 224,\n\t\t182, 203, 40, 98, 29, 131, 152, 80, 94, 151, 80, 27, 21, 186,\n\t\t144, 196, 196, 89, 48, 177, 79, 109, 110, 215, 222, 72, 230,\n\t\t195, 61, 70, 128, 50, 20, 162, 206, 11, 193, 120, 70, 233,\n\t\t60, 89, 68, 145, 214, 79, 39, 196, 80, 103, 71, 24, 3, 172,\n\t\t17, 56, 23, 205, 9, 83, 77, 182, 89, 157, 6, 184, 143, 217,\n\t\t148, 80, 210, 162, 55, 203, 0, 207, 172, 56, 23, 195, 0, 243,\n\t\t127, 216, 28, 118, 123, 107, 172, 211, 201, 27, 46, 0, 116,\n\t\t178, 181, 235, 69, 51, 229, 49, 66, 159, 178, 168, 197, 136,\n\t\t141, 72, 153, 114, 4, 145, 35, 38, 5, 145, 140, 83, 155, 34,\n\t\t3, 155, 17, 130, 156, 82, 83, 83, 132, 200, 144, 19, 212,\n\t\t202, 31, 35, 180, 233, 17, 199, 182, 195, 68, 15, 132, 148,\n\t\t49, 230, 73, 238, 158, 229, 164, 217, 69, 116, 169, 215, 179,\n\t\t73, 24, 71, 180, 209, 160, 212, 115, 145, 184, 94, 33, 109,\n\t\t74, 209, 22, 158, 11, 8, 129, 7, 68, 48, 130, 200, 164, 110,\n\t\t120, 161, 116, 109, 114, 143, 115, 74, 56, 5, 140, 0, 60,\n\t\t211, 254, 182, 77, 16, 105, 8, 212, 243, 41, 97, 64, 77, 104,\n\t\t102, 193, 124, 159, 11, 138, 80, 199, 110, 38, 68, 55, 136,\n\t\t75, 128, 196, 156, 33, 178, 128, 215, 17, 154, 161, 198, 226,\n\t\t153, 70, 182, 185, 137, 167, 169, 91, 15, 193, 167, 117, 55,\n\t\t48, 85, 135, 204, 212, 54, 39, 220, 248, 229, 80, 198, 25,\n\t\t184, 146, 155, 160, 206, 84, 120, 41, 21, 84, 18, 38, 9, 227,\n\t\t82, 80, 106, 75, 130, 194, 117, 4, 240, 64, 114, 142, 148,\n\t\t3, 209, 125, 13, 27, 204, 75, 40, 99, 110, 131, 219, 1, 225,\n\t\t148, 69, 73, 206, 137, 144, 173, 22, 1, 65, 183, 33, 80, 46,\n\t\t245, 21, 101, 145, 233, 60, 34, 242, 60, 25, 143, 109, 186,\n\t\t198, 116, 239, 225, 36, 98, 32, 104, 27, 109, 206, 185, 45,\n\t\t133, 63, 210, 26, 58, 225, 186, 175, 115, 247, 186, 160, 183,\n\t\t165, 132, 34, 157, 228, 220, 157, 31, 102, 103, 139, 65, 209,\n\t\t239, 52, 182, 198, 107, 158, 232, 172, 5, 196, 178, 44, 251,\n\t\t218, 181, 107, 159, 131, 191, 133, 79, 89, 223, 106, 125,\n\t\t9, 122, 240, 74, 124, 37, 254, 48, 126, 145, 52, 201, 29,\n\t\t150, 213, 154, 206, 166, 106, 170, 210, 83, 56, 172, 74, 213,\n\t\t222, 210, 18, 209, 67, 137, 126, 73, 251, 192, 95, 52, 142,\n\t\t212, 218, 7, 207, 38, 197, 164, 216, 128, 124, 9, 205, 125,\n\t\t225, 54, 207, 23, 243, 92, 143, 108, 243, 234, 0, 202, 133,\n\t\t254, 148, 251, 181, 99, 227, 115, 227, 205, 180, 156, 149,\n\t\t211, 253, 122, 133, 252, 116, 91, 34, 95, 95, 56, 76, 46,\n\t\t183, 115, 48, 75, 171, 233, 243, 87, 191, 96, 43, 230, 249,\n\t\t254, 243, 183, 158, 100, 69, 46, 202, 42, 120, 14, 62, 172,\n\t\t234, 129, 171, 126, 164, 164, 15, 250, 127, 90, 239, 96, 18,\n\t\t39, 147, 58, 126, 136, 193, 53, 154, 176, 138, 203, 165, 123,\n\t\t189, 165, 203, 43, 147, 37, 172, 242, 185, 109, 82, 236, 205,\n\t\t247, 231, 250, 193, 150, 255, 231, 47, 120, 176, 231, 168,\n\t\t91, 138, 61, 93, 146, 127, 241, 68, 6, 22, 153, 196, 106,\n\t\t8, 6, 138, 56, 127, 46, 151, 178, 222, 37, 117, 134, 243,\n\t\t69, 31, 246, 211, 36, 78, 99, 253, 73, 159, 207, 96, 186,\n\t\t159, 86, 243, 211, 123, 205, 202, 37, 104, 186, 172, 202,\n\t\t99, 228, 98, 239, 180, 140, 203, 34, 156, 10, 155, 101, 185,\n\t\t179, 90, 31, 172, 3, 63, 45, 61, 90, 159, 195, 84, 234, 19,\n\t\t117, 228, 118, 53, 77, 103, 123, 53, 175, 206, 172, 198, 102,\n\t\t199, 117, 70, 207, 11, 139, 185, 17, 176, 117, 81, 245, 159,\n\t\t231, 27, 160, 120, 174, 112, 251, 241, 0, 226, 100, 47, 155,\n\t\t231, 197, 1, 20, 19, 67, 224, 147, 77, 178, 249, 254, 17,\n\t\t236, 235, 182, 156, 205, 23, 70, 11, 157, 231, 217, 124, 255,\n\t\t28, 204, 202, 180, 218, 155, 46, 230, 71, 80, 77, 181, 234,\n\t\t27, 167, 251, 105, 57, 211, 143, 183, 151, 76, 196, 36, 153,\n\t\t232, 167, 75, 166, 106, 154, 170, 169, 206, 214, 100, 23,\n\t\t139, 36, 128, 88, 76, 246, 231, 135, 48, 23, 229, 62, 55,\n\t\t210, 242, 249, 237, 185, 126, 29, 39, 207, 5, 139, 121, 193,\n\t\t3, 47, 246, 76, 93, 28, 24, 154, 251, 181, 101, 255, 127,\n\t\t81, 91, 243, 44, 47, 38, 187, 48, 127, 113, 167, 91, 162,\n\t\t72, 231, 117, 107, 127, 205, 241, 24, 71, 31, 8, 1, 39, 104,\n\t\t54, 215, 71, 163, 38, 1, 74, 4, 57, 29, 99, 184, 215, 222,\n\t\t236, 142, 92, 105, 163, 107, 115, 233, 81, 233, 121, 146,\n\t\t83, 157, 222, 69, 73, 221, 176, 225, 51, 140, 162, 133, 98,\n\t\t4, 150, 35, 19, 50, 7, 136, 215, 28, 110, 250, 142, 234, 130,\n\t\t3, 28, 80, 98, 224, 133, 142, 151, 180, 26, 129, 164, 82,\n\t\t136, 205, 192, 12, 80, 72, 192, 78, 188, 102, 123, 228, 219,\n\t\t46, 107, 52, 128, 99, 18, 131, 67, 108, 112, 200, 250, 74,\n\t\t187, 73, 132, 30, 82, 108, 19, 192, 9, 136, 107, 251, 113,\n\t\t183, 216, 117, 125, 100, 212, 125, 107, 171, 3, 2, 27, 190,\n\t\t107, 160, 73, 174, 12, 208, 69, 74, 12, 117, 90, 20, 57, 194,\n\t\t22, 182, 208, 229, 49, 97, 49, 57, 165, 78, 195, 254, 247,\n\t\t200, 93, 145, 140, 108, 234, 232, 33, 157, 114, 230, 134,\n\t\t81, 139, 113, 35, 106, 168, 111, 115, 79, 15, 186, 20, 25,\n\t\t151, 97, 76, 95, 131, 70, 60, 106, 57, 75, 181, 80, 211, 18,\n\t\t137, 212, 210, 182, 22, 92, 90, 230, 241, 26, 190, 197, 164,\n\t\t33, 45, 166, 60, 16, 148, 51, 223, 179, 121, 195, 215, 35,\n\t\t48, 147, 54, 151, 174, 235, 251, 84, 32, 167, 140, 48, 201,\n\t\t185, 0, 2, 196, 111, 140, 39, 66, 184, 52, 106, 52, 122, 46,\n\t\t3, 199, 182, 5, 33, 156, 113, 33, 29, 207, 101, 194, 243,\n\t\t169, 168, 199, 118, 8, 131, 192, 5, 1, 210, 22, 40, 9, 229,\n\t\t76, 48, 51, 224, 215, 2, 147, 24, 129, 107, 126, 162, 224,\n\t\t58, 111, 10, 70, 118, 231, 181, 190, 64, 209, 204, 248, 129,\n\t\t97, 123, 51, 150, 13, 37, 72, 129, 56, 136, 38, 68, 40, 175,\n\t\t31, 133, 3, 183, 141, 152, 37, 182, 17, 41, 14, 1, 166, 43,\n\t\t179, 62, 251, 105, 35, 236, 61, 206, 92, 91, 72, 137, 194,\n\t\t6, 137, 210, 56, 244, 184, 54, 147, 65, 36, 168, 231, 50,\n\t\t226, 219, 244, 121, 177, 164, 59, 0, 188, 69, 11, 113, 79,\n\t\t139, 33, 225, 250, 45, 219, 118, 164, 227, 120, 46, 0, 5,\n\t\t212, 66, 129, 161, 227, 58, 161, 71, 129, 83, 227, 123, 167,\n\t\t47, 254, 36, 212, 179, 82, 118, 115, 52, 42, 56, 184, 118,\n\t\t171, 197, 40, 231, 118, 36, 125, 211, 221, 60, 218, 239, 76,\n\t\t179, 212, 55, 161, 106, 240, 84, 119, 210, 21, 45, 4, 1, 199,\n\t\t219, 186, 193, 15, 184, 135, 181, 206, 225, 54, 57, 69, 227,\n\t\t127, 77, 192, 235, 166, 200, 161, 155, 228, 29, 65, 29, 163,\n\t\t72, 180, 13, 12, 87, 56, 156, 112, 14, 124, 251, 192, 247,\n\t\t189, 208, 179, 165, 239, 97, 54, 106, 53, 84, 196, 9, 5, 45,\n\t\t192, 235, 55, 192, 237, 52, 21, 213, 61, 138, 55, 91, 141,\n\t\t160, 169, 208, 30, 118, 85, 60, 72, 70, 174, 46, 198, 212,\n\t\t151, 64, 193, 9, 60, 109, 17, 138, 184, 21, 250, 96, 235,\n\t\t103, 100, 40, 208, 1, 20, 186, 34, 136, 135, 96, 252, 187,\n\t\t5, 99, 66, 184, 62, 215, 45, 23, 52, 28, 210, 86, 190, 155,\n\t\t52, 236, 62, 32, 165, 206, 176, 37, 33, 237, 48, 187, 209,\n\t\t240, 109, 87, 70, 174, 167, 223, 65, 142, 2, 169, 193, 228,\n\t\t16, 135, 72, 32, 84, 58, 66, 248, 161, 35, 185, 116, 61, 97,\n\t\t59, 78, 232, 225, 57, 173, 8, 114, 33, 8, 35, 174, 195, 208,\n\t\t220, 145, 175, 126, 100, 141, 24, 152, 159, 1, 23, 51, 180,\n\t\t17, 61, 130, 130, 74, 68, 191, 254, 38, 30, 65, 66, 9, 80,\n\t\t206, 128, 82, 0, 65, 24, 197, 150, 148, 60, 176, 141, 126,\n\t\t134, 142, 79, 140, 7, 0, 1, 96, 250, 29, 66, 66, 185, 140,\n\t\t60, 221, 119, 141, 238, 71, 144, 18, 38, 140, 235, 59, 218,\n\t\t34, 208, 170, 40, 243, 132, 214, 116, 169, 32, 148, 214, 10,\n\t\t173, 160, 220, 79, 184, 15, 117, 91, 68, 53, 231, 35, 34,\n\t\t17, 148, 1, 171, 125, 42, 145, 56, 174, 45, 18, 164, 12, 58,\n\t\t186, 23, 163, 174, 64, 226, 160, 244, 92, 225, 184, 182, 214,\n\t\t155, 145, 235, 87, 195, 225, 0, 44, 167, 128, 178, 214, 11,\n\t\t225, 5, 157, 110, 217, 243, 180, 21, 38, 151, 122, 246, 50,\n\t\t81, 157, 210, 0, 191, 129, 230, 108, 139, 59, 190, 227, 143,\n\t\t187, 142, 8, 132, 46, 60, 18, 3, 145, 36, 92, 191, 254, 186,\n\t\t217, 185, 100, 36, 136, 29, 33, 41, 114, 224, 210, 246, 184,\n\t\t214, 205, 28, 17, 181, 129, 58, 116, 48, 100, 94, 36, 104,\n\t\t187, 25, 187, 92, 15, 56, 96, 188, 54, 108, 33, 141, 26, 73,\n\t\t168, 240, 152, 96, 65, 203, 101, 40, 92, 225, 11, 223, 224,\n\t\t134, 63, 135, 0, 159, 182, 94, 103, 189, 209, 178, 90, 165,\n\t\t42, 85, 94, 163, 238, 170, 82, 157, 138, 250, 211, 64, 52,\n\t\t229, 162, 118, 50, 72, 13, 199, 230, 169, 156, 19, 117, 76,\n\t\t238, 101, 168, 31, 173, 160, 164, 181, 239, 131, 182, 130,\n\t\t22, 243, 98, 41, 35, 196, 41, 115, 232, 226, 8, 152, 185,\n\t\t248, 85, 23, 31, 220, 216, 90, 95, 185, 113, 135, 122, 131,\n\t\t190, 90, 91, 21, 229, 138, 2, 72, 188, 144, 177, 68, 197,\n\t\t250, 109, 105, 180, 178, 94, 210, 224, 174, 103, 123, 116,\n\t\t99, 119, 127, 101, 27, 27, 10, 252, 96, 40, 67, 74, 154, 141,\n\t\t238, 222, 202, 8, 33, 208, 175, 18, 7, 95, 17, 140, 134, 156,\n\t\t117, 214, 47, 157, 255, 206, 170, 179, 8, 82, 66, 102, 32,\n\t\t165, 180, 161, 9, 239, 185, 142, 64, 36, 185, 156, 1, 243,\n\t\t17, 169, 32, 141, 237, 149, 201, 216, 147, 64, 124, 207, 67,\n\t\t23, 192, 97, 174, 67, 36, 17, 82, 58, 100, 172, 20, 20, 24,\n\t\t13, 80, 58, 89, 184, 50, 234, 56, 46, 119, 183, 55, 74, 98,\n\t\t11, 186, 218, 105, 118, 120, 194, 195, 221, 86, 24, 172, 175,\n\t\t238, 30, 180, 226, 249, 246, 197, 172, 47, 39, 225, 185, 238,\n\t\t214, 254, 104, 254, 202, 61, 173, 170, 59, 47, 228, 9, 92,\n\t\t177, 206, 88, 251, 150, 213, 80, 133, 42, 167, 170, 18, 122,\n\t\t75, 69, 205, 230, 193, 11, 243, 179, 202, 231, 85, 161, 202,\n\t\t127, 54, 77, 244, 118, 239, 170, 223, 245, 175, 122, 111,\n\t\t191, 245, 252, 173, 140, 221, 122, 254, 214, 183, 123, 87,\n\t\t187, 221, 250, 55, 33, 183, 158, 255, 189, 199, 46, 92, 124,\n\t\t205, 197, 79, 92, 152, 207, 47, 204, 225, 19, 203, 131, 47,\n\t\t76, 116, 122, 145, 201, 165, 117, 225, 177, 139, 23, 95, 179,\n\t\t54, 215, 201, 45, 203, 242, 45, 235, 218, 127, 120, 110, 190,\n\t\t113, 96, 109, 90, 11, 235, 216, 186, 104, 221, 109, 93, 181,\n\t\t30, 183, 222, 100, 189, 215, 250, 159, 254, 229, 92, 240,\n\t\t90, 102, 156, 12, 179, 69, 86, 204, 22, 51, 145, 45, 12, 135,\n\t\t179, 50, 220, 233, 69, 37, 84, 97, 230, 79, 78, 191, 85, 165,\n\t\t158, 223, 125, 110, 239, 244, 233, 216, 139, 175, 54, 180,\n\t\t16, 179, 28, 77, 188, 218, 228, 249, 251, 240, 36, 62, 134,\n\t\t211, 139, 235, 121, 227, 143, 126, 246, 253, 239, 255, 236,\n\t\t251, 225, 59, 191, 255, 158, 123, 246, 222, 182, 246, 35,\n\t\t159, 189, 120, 247, 135, 126, 230, 251, 226, 119, 245, 238,\n\t\t254, 95, 211, 48, 76, 61, 84, 10, 27, 182, 47, 32, 8, 64,\n\t\t122, 255, 139, 189, 220, 21, 79, 135, 97, 226, 66, 154, 162,\n\t\t247, 181, 95, 121, 239, 123, 127, 229, 189, 112, 227, 61,\n\t\t223, 255, 249, 143, 173, 191, 117, 126, 207, 67, 183, 190,\n\t\t49, 249, 216, 111, 30, 255, 210, 47, 188, 123, 255, 251, 239,\n\t\t185, 231, 250, 55, 111, 217, 31, 82, 141, 48, 241, 105, 187,\n\t\t141, 240, 169, 122, 62, 249, 231, 222, 175, 239, 250, 153,\n\t\t108, 247, 55, 62, 183, 115, 229, 193, 179, 237, 187, 218,\n\t\t159, 255, 252, 43, 236, 102, 211, 142, 219, 140, 183, 209,\n\t\t225, 126, 72, 168, 239, 241, 143, 185, 14, 243, 2, 66, 3,\n\t\t239, 74, 163, 97, 199, 138, 49, 21, 255, 111, 239, 213, 55,\n\t\t92, 25, 205, 174, 76, 63, 247, 27, 191, 123, 229, 134, 43,\n\t\t55, 156, 220, 251, 238, 251, 47, 29, 204, 90, 199, 191, 241,\n\t\t185, 179, 131, 241, 253, 183, 218, 141, 150, 155, 180, 57,\n\t\t109, 91, 174, 213, 191, 246, 44, 252, 23, 120, 214, 250, 65,\n\t\t235, 71, 172, 31, 179, 126, 194, 250, 25, 235, 23, 173, 79,\n\t\t89, 191, 106, 125, 214, 250, 77, 235, 11, 134, 237, 75, 20,\n\t\t34, 217, 161, 197, 124, 135, 22, 101, 17, 128, 80, 92, 85,\n\t\t122, 51, 103, 230, 249, 188, 172, 68, 94, 137, 121, 141, 22,\n\t\t135, 98, 8, 92, 236, 64, 89, 165, 35, 44, 196, 8, 170, 17,\n\t\t8, 67, 32, 99, 16, 70, 199, 80, 86, 167, 9, 234, 121, 140,\n\t\t33, 38, 69, 42, 138, 33, 196, 60, 209, 25, 22, 38, 243, 178,\n\t\t168, 118, 160, 224, 42, 96, 34, 160, 98, 161, 219, 163, 172,\n\t\t120, 197, 133, 214, 242, 138, 178, 74, 171, 84, 229, 69, 89,\n\t\t164, 138, 139, 185, 208, 250, 177, 217, 205, 139, 121, 181,\n\t\t220, 45, 43, 158, 228, 69, 9, 158, 231, 186, 140, 113, 155,\n\t\t33, 1, 66, 220, 112, 216, 10, 253, 206, 72, 12, 155, 172,\n\t\t207, 155, 118, 171, 107, 119, 68, 23, 25, 239, 82, 55, 45,\n\t\t84, 163, 64, 84, 205, 24, 26, 14, 225, 32, 95, 206, 206, 145,\n\t\t111, 18, 141, 173, 168, 79, 147, 241, 74, 66, 250, 209, 86,\n\t\t83, 60, 65, 207, 209, 151, 75, 224, 196, 105, 96, 220, 108,\n\t\t3, 22, 141, 112, 208, 72, 61, 218, 101, 12, 187, 162, 35,\n\t\t123, 177, 108, 241, 30, 107, 14, 249, 168, 235, 133, 241,\n\t\t32, 114, 8, 49, 178, 92, 114, 198, 111, 137, 28, 27, 186,\n\t\t0, 33, 151, 235, 109, 71, 114, 210, 165, 29, 79, 224, 138,\n\t\t95, 176, 255, 138, 104, 187, 91, 129, 100, 17, 116, 152, 116,\n\t\t251, 192, 221, 46, 237, 35, 43, 130, 118, 146, 132, 158, 24,\n\t\t98, 164, 210, 62, 39, 195, 104, 220, 30, 249, 235, 235, 36,\n\t\t25, 202, 124, 34, 38, 98, 69, 36, 125, 150, 5, 164, 223, 236,\n\t\t218, 44, 94, 115, 226, 53, 132, 113, 43, 28, 176, 104, 210,\n\t\t162, 114, 229, 176, 63, 125, 117, 241, 138, 3, 65, 115, 182,\n\t\t255, 116, 20, 69, 209, 211, 251, 44, 167, 226, 224, 21, 197,\n\t\t171, 167, 253, 195, 21, 73, 91, 147, 136, 13, 194, 214, 24,\n\t\t160, 213, 245, 157, 181, 152, 217, 221, 102, 159, 4, 25, 235,\n\t\t39, 98, 69, 76, 196, 36, 151, 195, 132, 172, 175, 251, 163,\n\t\t246, 56, 26, 18, 62, 72, 218, 33, 14, 133, 247, 122, 151,\n\t\t243, 198, 86, 236, 81, 34, 93, 225, 7, 225, 81, 163, 176,\n\t\t49, 188, 147, 182, 61, 116, 190, 135, 55, 56, 47, 26, 146,\n\t\t80, 47, 104, 133, 129, 127, 251, 48, 4, 167, 56, 30, 59, 232,\n\t\t181, 235, 181, 82, 184, 246, 25, 184, 6, 191, 102, 101, 214,\n\t\t37, 235, 77, 214, 135, 45, 171, 170, 35, 118, 24, 103, 216,\n\t\t29, 152, 31, 209, 99, 16, 1, 152, 137, 177, 217, 57, 216,\n\t\t79, 120, 235, 200, 76, 158, 22, 59, 96, 162, 237, 36, 123,\n\t\t113, 146, 229, 213, 196, 224, 44, 140, 235, 188, 182, 238,\n\t\t24, 207, 38, 217, 16, 2, 8, 161, 58, 2, 67, 140, 149, 77,\n\t\t196, 162, 84, 167, 46, 234, 1, 144, 253, 233, 18, 198, 80,\n\t\t228, 139, 192, 196, 117, 80, 67, 48, 164, 85, 139, 3, 216,\n\t\t159, 165, 119, 66, 58, 78, 211, 136, 160, 231, 203, 32, 106,\n\t\t4, 148, 202, 182, 236, 12, 154, 193, 165, 51, 64, 223, 186,\n\t\t58, 58, 220, 202, 164, 125, 213, 109, 134, 158, 195, 113,\n\t\t117, 158, 66, 137, 16, 165, 132, 10, 219, 97, 78, 76, 41,\n\t\t236, 73, 137, 216, 22, 106, 232, 7, 118, 203, 179, 85, 59,\n\t\t8, 46, 21, 32, 223, 120, 1, 212, 40, 229, 206, 211, 81, 154,\n\t\t70, 60, 112, 9, 25, 31, 109, 175, 74, 251, 170, 151, 132,\n\t\t129, 160, 107, 101, 11, 47, 19, 140, 210, 116, 164, 160, 185,\n\t\t58, 28, 170, 36, 114, 9, 121, 48, 232, 54, 92, 154, 151, 45,\n\t\t132, 119, 39, 180, 61, 240, 125, 59, 10, 88, 208, 142, 189,\n\t\t224, 82, 129, 240, 246, 219, 210, 136, 57, 82, 48, 226, 75,\n\t\t105, 227, 119, 147, 241, 241, 206, 170, 93, 231, 41, 201,\n\t\t218, 28, 20, 236, 155, 76, 245, 29, 79, 190, 97, 10, 192,\n\t\t132, 72, 185, 26, 250, 190, 108, 121, 118, 91, 151, 110, 29,\n\t\t216, 147, 53, 231, 35, 189, 246, 39, 240, 41, 248, 113, 139,\n\t\t88, 153, 117, 187, 117, 217, 186, 98, 189, 204, 122, 220,\n\t\t250, 9, 235, 75, 214, 95, 128, 7, 63, 0, 31, 133, 143, 195,\n\t\t207, 194, 167, 44, 171, 197, 69, 33, 134, 68, 165, 220, 176,\n\t\t48, 165, 218, 140, 156, 231, 245, 148, 161, 210, 22, 94, 90,\n\t\t229, 218, 82, 219, 159, 156, 90, 206, 203, 53, 210, 233, 172,\n\t\t156, 77, 181, 53, 151, 240, 44, 158, 44, 138, 106, 23, 42,\n\t\t197, 69, 145, 230, 101, 42, 140, 19, 110, 102, 38, 112, 103,\n\t\t211, 106, 106, 230, 66, 121, 8, 1, 205, 38, 59, 108, 159,\n\t\t215, 33, 156, 138, 252, 136, 140, 160, 172, 157, 80, 140,\n\t\t117, 95, 155, 187, 67, 16, 123, 6, 93, 50, 196, 89, 89, 101,\n\t\t71, 112, 172, 219, 118, 34, 78, 221, 16, 185, 136, 13, 61,\n\t\t217, 76, 107, 18, 133, 48, 193, 68, 167, 101, 193, 197, 220,\n\t\t4, 88, 170, 105, 90, 227, 212, 204, 46, 171, 201, 66, 15,\n\t\t43, 121, 145, 238, 167, 42, 23, 153, 182, 63, 115, 97, 150,\n\t\t77, 166, 179, 0, 4, 43, 243, 108, 34, 76, 92, 38, 93, 104,\n\t\t61, 152, 37, 67, 56, 162, 251, 179, 105, 64, 244, 83, 107,\n\t\t155, 125, 150, 30, 65, 197, 247, 3, 52, 244, 235, 101, 109,\n\t\t225, 231, 155, 176, 180, 210, 205, 148, 113, 77, 150, 75,\n\t\t12, 192, 149, 171, 188, 24, 162, 241, 130, 78, 149, 33, 116,\n\t\t139, 85, 82, 113, 165, 255, 47, 233, 213, 184, 216, 63, 130,\n\t\t84, 196, 60, 43, 76, 245, 158, 250, 30, 27, 50, 211, 36, 207,\n\t\t38, 89, 254, 87, 12, 201, 27, 181, 150, 10, 224, 8, 109, 200,\n\t\t248, 232, 24, 253, 20, 17, 24, 15, 140, 50, 72, 9, 51, 179,\n\t\t149, 20, 88, 138, 64, 41, 162, 205, 152, 86, 33, 31, 226,\n\t\t72, 66, 224, 254, 219, 124, 230, 239, 35, 10, 97, 116, 85,\n\t\t170, 205, 58, 73, 224, 99, 90, 65, 68, 222, 93, 57, 88, 77,\n\t\t55, 199, 253, 86, 32, 0, 29, 167, 157, 218, 205, 56, 152,\n\t\t221, 120, 99, 210, 40, 70, 202, 243, 101, 83, 48, 207, 76,\n\t\t101, 10, 218, 112, 124, 91, 18, 138, 222, 201, 235, 193, 145,\n\t\t96, 123, 224, 149, 43, 163, 54, 174, 24, 5, 85, 242, 32, 76,\n\t\t188, 65, 198, 221, 73, 2, 221, 86, 103, 210, 182, 59, 15,\n\t\t142, 183, 95, 150, 244, 8, 33, 20, 145, 56, 210, 105, 117,\n\t\t187, 119, 36, 195, 236, 22, 23, 120, 131, 160, 27, 0, 131,\n\t\t40, 48, 172, 55, 157, 6, 58, 36, 117, 92, 104, 141, 184, 86,\n\t\t217, 109, 66, 132, 223, 203, 138, 101, 12, 42, 209, 136, 26,\n\t\t129, 107, 3, 112, 191, 209, 241, 192, 182, 73, 192, 69, 239,\n\t\t186, 14, 5, 54, 158, 181, 219, 142, 45, 3, 134, 119, 108,\n\t\t105, 187, 199, 110, 17, 170, 13, 57, 226, 82, 74, 144, 11,\n\t\t238, 120, 178, 65, 163, 14, 154, 153, 93, 207, 214, 67, 184,\n\t\t107, 131, 112, 140, 97, 207, 8, 23, 96, 35, 243, 220, 51,\n\t\t179, 68, 122, 82, 91, 203, 31, 57, 66, 27, 40, 30, 134, 13,\n\t\t14, 84, 218, 46, 99, 146, 32, 174, 75, 155, 115, 125, 201,\n\t\t219, 9, 120, 255, 0, 4, 25, 145, 62, 67, 87, 155, 152, 2,\n\t\t8, 53, 241, 91, 128, 128, 109, 204, 83, 34, 92, 198, 140,\n\t\t13, 206, 59, 54, 128, 96, 102, 158, 250, 111, 145, 219, 3,\n\t\t160, 238, 175, 11, 155, 107, 141, 158, 214, 70, 3, 30, 112,\n\t\t159, 81, 209, 218, 28, 247, 220, 70, 146, 52, 92, 160, 246,\n\t\t94, 59, 8, 47, 220, 113, 115, 55, 8, 218, 126, 56, 27, 8,\n\t\t207, 110, 241, 102, 68, 180, 142, 72, 148, 67, 164, 131, 219,\n\t\t40, 185, 47, 242, 75, 125, 149, 120, 61, 109, 170, 11, 17,\n\t\t52, 123, 41, 100, 235, 220, 237, 133, 17, 197, 56, 161, 252,\n\t\t214, 249, 133, 247, 76, 82, 78, 17, 3, 95, 112, 197, 104,\n\t\t127, 189, 255, 147, 221, 36, 117, 93, 240, 25, 209, 253, 192,\n\t\t76, 138, 32, 161, 14, 50, 233, 14, 157, 143, 73, 31, 66, 47,\n\t\t244, 35, 48, 174, 160, 230, 17, 8, 161, 156, 83, 116, 9, 64,\n\t\t59, 166, 224, 118, 98, 0, 240, 220, 1, 46, 168, 116, 109,\n\t\t221, 157, 20, 37, 61, 78, 244, 115, 114, 4, 136, 27, 77, 151,\n\t\t80, 187, 33, 65, 18, 144, 129, 164, 174, 20, 136, 162, 17,\n\t\t249, 205, 208, 139, 92, 71, 248, 17, 247, 93, 215, 17, 180,\n\t\t241, 90, 31, 57, 33, 54, 227, 40, 4, 18, 70, 96, 44, 73, 100,\n\t\t35, 127, 33, 94, 151, 89, 190, 85, 152, 24, 87, 137, 40, 240,\n\t\t212, 245, 106, 81, 232, 77, 36, 122, 83, 213, 162, 82, 167,\n\t\t127, 255, 211, 100, 101, 101, 114, 75, 77, 147, 251, 221,\n\t\t231, 15, 186, 221, 131, 243, 221, 238, 202, 164, 219, 157,\n\t\t172, 116, 255, 102, 50, 185, 113, 101, 5, 188, 90, 53, 251,\n\t\t127, 238, 59, 127, 255, 193, 29, 173, 214, 29, 7, 247, 159,\n\t\t191, 47, 142, 111, 88, 89, 185, 97, 249, 215, 200, 181, 224,\n\t\t218, 179, 240, 20, 60, 107, 48, 116, 43, 214, 150, 101, 157,\n\t\t186, 125, 241, 83, 249, 147, 77, 42, 3, 106, 230, 147, 124,\n\t\t209, 80, 71, 208, 122, 158, 54, 224, 175, 85, 20, 169, 232,\n\t\t117, 145, 10, 133, 39, 221, 227, 213, 27, 119, 7, 143, 127,\n\t\t248, 181, 219, 201, 93, 227, 213, 195, 236, 210, 235, 47,\n\t\t95, 254, 129, 72, 133, 161, 82, 42, 138, 92, 233, 137, 207,\n\t\t246, 119, 111, 204, 110, 127, 236, 177, 219, 225, 37, 127,\n\t\t190, 146, 157, 252, 110, 118, 184, 90, 94, 186, 244, 228,\n\t\t37, 203, 66, 171, 117, 237, 79, 224, 231, 224, 19, 150, 99,\n\t\t152, 155, 159, 15, 247, 171, 146, 172, 142, 19, 186, 80, 98,\n\t\t17, 64, 18, 15, 193, 220, 127, 7, 138, 106, 8, 48, 105, 14,\n\t\t155, 189, 60, 47, 139, 239, 249, 226, 221, 111, 125, 195,\n\t\t93, 79, 62, 121, 112, 247, 198, 197, 123, 47, 108, 180, 86,\n\t\t226, 157, 225, 230, 207, 54, 135, 141, 188, 44, 138, 244,\n\t\t139, 248, 244, 221, 47, 125, 27, 207, 143, 143, 215, 249,\n\t\t3, 135, 27, 23, 55, 54, 46, 110, 168, 249, 150, 223, 109,\n\t\t63, 96, 252, 116, 255, 3, 252, 3, 252, 178, 53, 177, 206,\n\t\t91, 22, 11, 12, 170, 207, 8, 118, 35, 162, 179, 92, 255, 230,\n\t\t73, 172, 133, 135, 74, 77, 88, 197, 229, 148, 222, 14, 91,\n\t\t44, 99, 89, 195, 71, 250, 47, 91, 129, 199, 62, 244, 161,\n\t\t199, 214, 95, 53, 4, 218, 239, 195, 35, 239, 72, 7, 213, 218,\n\t\t228, 134, 20, 94, 13, 13, 253, 74, 13, 174, 143, 91, 227,\n\t\t168, 41, 32, 111, 118, 46, 92, 4, 145, 244, 63, 244, 133,\n\t\t15, 173, 245, 116, 23, 124, 233, 237, 227, 249, 202, 74, 228,\n\t\t119, 26, 64, 190, 236, 122, 187, 155, 4, 162, 182, 144, 129,\n\t\t27, 53, 157, 137, 47, 14, 161, 230, 146, 191, 118, 237, 239,\n\t\t16, 224, 3, 86, 178, 244, 33, 179, 142, 65, 183, 86, 8, 124,\n\t\t82, 84, 218, 6, 209, 123, 249, 188, 92, 30, 50, 108, 161,\n\t\t233, 244, 24, 74, 161, 15, 27, 32, 155, 208, 70, 84, 125,\n\t\t153, 224, 203, 99, 186, 189, 11, 115, 241, 167, 63, 54, 184,\n\t\t114, 110, 240, 246, 240, 76, 240, 195, 225, 224, 76, 248,\n\t\t49, 145, 4, 127, 23, 138, 143, 247, 175, 12, 100, 24, 203,\n\t\t64, 31, 249, 191, 255, 69, 10, 241, 95, 235, 36, 34, 88, 38,\n\t\t121, 252, 99, 131, 115, 87, 6, 111, 15, 195, 31, 14, 215,\n\t\t7, 193, 199, 100, 24, 63, 29, 198, 226, 227, 131, 129, 140,\n\t\t67, 25, 4, 31, 147, 15, 189, 232, 188, 190, 238, 141, 47,\n\t\t78, 96, 124, 6, 127, 21, 158, 133, 207, 90, 137, 53, 182,\n\t\t118, 173, 210, 58, 180, 110, 181, 238, 212, 22, 248, 8, 134,\n\t\t88, 135, 117, 222, 133, 29, 56, 132, 121, 89, 169, 13, 200,\n\t\t76, 240, 245, 50, 87, 197, 17, 228, 197, 242, 183, 154, 21,\n\t\t211, 148, 111, 194, 98, 249, 85, 77, 2, 195, 178, 146, 243,\n\t\t105, 202, 39, 249, 239, 52, 155, 159, 97, 146, 53, 63, 211,\n\t\t108, 254, 59, 233, 56, 242, 9, 57, 150, 173, 129, 106, 181,\n\t\t222, 58, 106, 122, 173, 84, 255, 106, 14, 213, 134, 107, 219,\n\t\t238, 224, 38, 199, 182, 157, 241, 159, 182, 251, 208, 239,\n\t\t172, 244, 122, 229, 70, 163, 177, 209, 128, 95, 118, 156,\n\t\t39, 136, 227, 241, 63, 74, 156, 39, 29, 231, 73, 218, 180,\n\t\t255, 200, 110, 210, 7, 95, 51, 92, 93, 125, 52, 163, 227,\n\t\t1, 188, 102, 50, 185, 39, 106, 172, 64, 171, 149, 183, 86,\n\t\t214, 87, 22, 139, 102, 182, 186, 186, 140, 139, 167, 251,\n\t\t196, 183, 90, 59, 214, 221, 181, 39, 118, 92, 19, 153, 102,\n\t\t147, 194, 104, 13, 98, 190, 132, 227, 170, 35, 156, 77, 135,\n\t\t168, 142, 64, 45, 157, 129, 67, 200, 76, 115, 101, 75, 154,\n\t\t246, 37, 242, 116, 102, 230, 33, 224, 39, 243, 125, 103, 32,\n\t\t236, 80, 116, 111, 58, 236, 116, 14, 111, 234, 218, 137, 231,\n\t\t11, 65, 40, 204, 214, 134, 219, 210, 94, 237, 249, 78, 220,\n\t\t85, 92, 238, 156, 149, 78, 195, 29, 136, 45, 216, 118, 206,\n\t\t57, 219, 176, 37, 6, 81, 42, 111, 8, 198, 43, 110, 1, 235,\n\t\t206, 100, 28, 192, 183, 236, 174, 250, 227, 203, 45, 181,\n\t\t217, 186, 181, 44, 111, 233, 85, 147, 44, 78, 92, 87, 10,\n\t\t54, 222, 206, 6, 221, 145, 160, 94, 63, 30, 100, 111, 110,\n\t\t83, 55, 146, 131, 15, 124, 247, 120, 252, 221, 31, 24, 52,\n\t\t60, 63, 253, 249, 181, 201, 91, 223, 58, 89, 51, 216, 51,\n\t\t131, 95, 190, 209, 106, 90, 231, 172, 123, 173, 55, 89, 22,\n\t\t236, 233, 65, 197, 132, 197, 211, 54, 24, 78, 103, 226, 8,\n\t\t84, 189, 86, 187, 131, 117, 112, 61, 19, 100, 18, 54, 161,\n\t\t48, 24, 250, 35, 48, 224, 187, 193, 146, 61, 61, 91, 28, 144,\n\t\t35, 82, 179, 182, 86, 35, 168, 217, 126, 244, 153, 172, 168,\n\t\t138, 114, 57, 209, 114, 4, 35, 128, 239, 134, 192, 103, 18,\n\t\t80, 56, 68, 8, 129, 79, 209, 113, 235, 198, 196, 245, 60,\n\t\t78, 66, 15, 136, 77, 192, 11, 9, 247, 60, 22, 113, 118, 99,\n\t\t107, 76, 179, 62, 79, 207, 164, 188, 255, 131, 220, 101, 62,\n\t\t163, 90, 94, 16, 20, 156, 80, 1, 255, 230, 238, 213, 166,\n\t\t187, 193, 197, 166, 45, 123, 142, 125, 247, 221, 89, 195,\n\t\t221, 20, 124, 203, 21, 93, 199, 134, 3, 180, 221, 6, 3, 134,\n\t\t160, 18, 173, 147, 100, 173, 38, 254, 61, 48, 222, 104, 123,\n\t\t135, 251, 232, 186, 184, 127, 228, 182, 27, 28, 241, 239,\n\t\t177, 217, 122, 239, 147, 29, 165, 58, 79, 62, 99, 127, 52,\n\t\t109, 48, 130, 240, 67, 232, 16, 129, 218, 218, 51, 139, 195,\n\t\t28, 239, 126, 39, 13, 157, 67, 199, 57, 178, 5, 131, 119,\n\t\t190, 139, 71, 246, 177, 227, 28, 235, 31, 240, 98, 14, 245,\n\t\t193, 243, 51, 16, 172, 14, 146, 28, 192, 36, 175, 99, 73,\n\t\t171, 33, 76, 203, 37, 139, 250, 119, 33, 231, 220, 1, 247,\n\t\t134, 43, 55, 184, 224, 112, 198, 193, 191, 235, 53, 119, 45,\n\t\t145, 96, 31, 96, 46, 32, 231, 197, 108, 86, 112, 6, 224, 240,\n\t\t253, 227, 99, 211, 63, 213, 181, 103, 225, 175, 224, 89, 171,\n\t\t161, 223, 58, 72, 79, 93, 90, 242, 121, 205, 54, 140, 211,\n\t\t178, 200, 179, 121, 126, 0, 213, 60, 155, 100, 147, 36, 77,\n\t\t178, 242, 16, 166, 149, 86, 51, 3, 182, 159, 206, 146, 84,\n\t\t196, 179, 115, 48, 155, 46, 242, 197, 44, 78, 19, 158, 76,\n\t\t4, 135, 63, 118, 146, 95, 77, 131, 199, 30, 22, 110, 250,\n\t\t43, 105, 240, 216, 171, 63, 206, 215, 16, 35, 64, 230, 199,\n\t\t20, 238, 210, 123, 107, 4, 152, 148, 146, 19, 140, 16, 25,\n\t\t79, 40, 199, 187, 192, 140, 160, 215, 183, 254, 115, 254,\n\t\t228, 226, 216, 171, 191, 78, 254, 211, 42, 162, 108, 247,\n\t\t94, 118, 35, 99, 107, 187, 143, 3, 65, 92, 165, 92, 74, 193,\n\t\t144, 188, 229, 97, 206, 123, 219, 64, 96, 175, 192, 37, 238,\n\t\t37, 184, 246, 25, 152, 194, 179, 186, 214, 152, 226, 155,\n\t\t48, 217, 5, 145, 60, 239, 172, 159, 52, 42, 227, 118, 28,\n\t\t2, 236, 33, 176, 155, 56, 123, 253, 72, 206, 164, 156, 201,\n\t\t239, 96, 252, 22, 70, 200, 7, 74, 65, 216, 7, 135, 79, 72,\n\t\t9, 95, 151, 242, 228, 11, 223, 201, 109, 124, 159, 145, 223,\n\t\t255, 136, 239, 129, 247, 90, 161, 213, 179, 38, 255, 50, 166,\n\t\t2, 44, 50, 97, 66, 54, 168, 42, 81, 149, 9, 251, 136, 87,\n\t\t90, 189, 94, 235, 159, 254, 47, 253, 23, 86, 15, 143, 14,\n\t\t143, 142, 142, 14, 63, 247, 224, 209, 225, 33, 188, 183, 215,\n\t\t58, 249, 162, 57, 190, 211, 234, 157, 124, 241, 139, 151,\n\t\t46, 125, 241, 233, 75, 151, 158, 38, 79, 60, 254, 184, 101,\n\t\t177, 231, 230, 62, 124, 131, 128, 203, 140, 15, 119, 86, 36,\n\t\t34, 107, 84, 51, 181, 168, 102, 13, 104, 84, 139, 214, 172,\n\t\t202, 160, 85, 45, 138, 68, 180, 96, 214, 200, 26, 100, 4,\n\t\t13, 1, 63, 250, 208, 19, 47, 123, 245, 250, 147, 239, 188,\n\t\t239, 225, 147, 155, 46, 252, 225, 189, 243, 203, 39, 191,\n\t\t49, 191, 235, 37, 23, 199, 80, 222, 125, 215, 87, 62, 112,\n\t\t225, 194, 245, 63, 242, 224, 49, 252, 217, 240, 23, 222, 116,\n\t\t124, 50, 133, 159, 62, 153, 45, 254, 225, 228, 119, 11, 248,\n\t\t236, 137, 58, 255, 232, 83, 95, 94, 192, 95, 159, 220, 10,\n\t\t159, 62, 249, 117, 56, 252, 183, 175, 129, 116, 97, 98, 35,\n\t\t108, 226, 123, 224, 165, 22, 183, 124, 235, 54, 235, 30, 235,\n\t\t85, 218, 38, 110, 205, 18, 253, 184, 213, 34, 75, 102, 170,\n\t\t42, 12, 179, 8, 23, 218, 20, 192, 0, 7, 80, 232, 151, 158,\n\t\t23, 101, 149, 149, 231, 161, 92, 100, 218, 22, 49, 12, 49,\n\t\t179, 138, 139, 154, 135, 36, 22, 107, 133, 126, 123, 135,\n\t\t68, 191, 217, 250, 175, 40, 142, 80, 165, 155, 75, 118, 142,\n\t\t34, 47, 134, 48, 157, 165, 229, 161, 86, 16, 118, 97, 182,\n\t\t152, 24, 51, 109, 90, 30, 163, 17, 123, 130, 103, 201, 222,\n\t\t172, 252, 233, 119, 236, 111, 72, 245, 240, 69, 143, 245,\n\t\t31, 32, 244, 16, 121, 40, 251, 245, 154, 64, 201, 155, 156,\n\t\t39, 195, 235, 197, 141, 212, 155, 163, 86, 84, 187, 220, 21,\n\t\t28, 72, 36, 184, 100, 247, 51, 58, 67, 248, 253, 214, 144,\n\t\t35, 99, 92, 107, 229, 237, 159, 70, 227, 238, 223, 58, 131,\n\t\t44, 250, 11, 112, 222, 225, 196, 161, 239, 123, 130, 53, 124,\n\t\t238, 6, 79, 56, 62, 224, 119, 182, 242, 51, 210, 39, 195,\n\t\t183, 108, 109, 42, 78, 176, 127, 16, 9, 124, 3, 108, 253,\n\t\t231, 110, 183, 253, 83, 63, 213, 108, 190, 210, 229, 60, 78,\n\t\t60, 123, 133, 8, 41, 4, 67, 184, 33, 157, 8, 222, 178, 247,\n\t\t239, 84, 106, 70, 188, 22, 241, 250, 205, 38, 58, 46, 36,\n\t\t177, 203, 89, 145, 97, 176, 110, 56, 159, 9, 2, 140, 87, 208,\n\t\t245, 61, 74, 131, 115, 64, 200, 157, 237, 139, 65, 226, 10,\n\t\t17, 106, 205, 212, 185, 205, 99, 252, 17, 2, 72, 35, 155,\n\t\t50, 74, 34, 173, 91, 194, 163, 240, 130, 88, 23, 11, 235,\n\t\t200, 244, 200, 1, 236, 64, 161, 173, 75, 51, 169, 168, 251,\n\t\t160, 153, 64, 156, 113, 97, 80, 220, 53, 85, 140, 193, 0,\n\t\t63, 215, 111, 73, 110, 32, 119, 217, 4, 222, 49, 56, 211,\n\t\t126, 164, 227, 196, 148, 222, 255, 228, 147, 179, 215, 191,\n\t\t254, 193, 95, 116, 26, 47, 221, 57, 183, 77, 201, 206, 222,\n\t\t246, 165, 238, 29, 15, 183, 198, 173, 147, 223, 29, 156, 57,\n\t\t51, 80, 144, 109, 79, 238, 168, 142, 111, 130, 79, 156, 25,\n\t\t252, 181, 92, 181, 227, 109, 223, 31, 181, 102, 179, 214,\n\t\t168, 49, 28, 118, 118, 179, 193, 238, 246, 234, 164, 108,\n\t\t141, 91, 103, 6, 48, 31, 156, 57, 249, 114, 115, 101, 124,\n\t\t209, 10, 175, 253, 211, 181, 103, 225, 159, 224, 89, 235,\n\t\t17, 235, 195, 214, 199, 33, 131, 215, 195, 95, 193, 215, 224,\n\t\t4, 5, 118, 176, 192, 125, 188, 23, 191, 9, 63, 96, 89, 102,\n\t\t157, 84, 20, 92, 152, 40, 25, 249, 98, 158, 47, 68, 94, 205,\n\t\t203, 253, 93, 56, 34, 102, 101, 84, 24, 238, 206, 89, 169,\n\t\t106, 187, 62, 85, 101, 53, 19, 165, 10, 136, 48, 179, 108,\n\t\t169, 58, 34, 67, 80, 125, 154, 198, 105, 82, 7, 41, 82, 67,\n\t\t224, 153, 62, 155, 11, 67, 219, 151, 170, 89, 94, 95, 40,\n\t\t166, 170, 204, 68, 190, 200, 179, 189, 36, 86, 218, 216, 14,\n\t\t48, 75, 167, 149, 80, 122, 232, 88, 174, 73, 23, 57, 227,\n\t\t66, 153, 244, 74, 148, 74, 12, 133, 42, 134, 68, 149, 135,\n\t\t160, 141, 241, 93, 154, 170, 170, 168, 54, 48, 32, 34, 123,\n\t\t193, 10, 125, 54, 41, 18, 46, 50, 145, 31, 67, 86, 77, 242,\n\t\t108, 81, 77, 83, 51, 201, 160, 116, 169, 170, 98, 34, 138,\n\t\t69, 85, 86, 218, 192, 22, 133, 74, 38, 38, 246, 81, 170, 204,\n\t\t114, 194, 49, 136, 74, 112, 1, 71, 48, 223, 129, 5, 207, 116,\n\t\t201, 134, 160, 120, 161, 196, 14, 201, 120, 97, 226, 102,\n\t\t152, 137, 128, 185, 153, 115, 84, 250, 237, 152, 13, 121,\n\t\t89, 237, 144, 66, 213, 19, 143, 211, 35, 82, 169, 98, 170,\n\t\t242, 93, 56, 134, 92, 43, 70, 162, 80, 162, 200, 84, 162,\n\t\t101, 111, 37, 18, 46, 42, 81, 170, 29, 44, 82, 157, 189, 218,\n\t\t1, 81, 84, 162, 226, 34, 43, 139, 88, 112, 177, 3, 92, 76,\n\t\t135, 56, 77, 247, 210, 216, 216, 253, 149, 26, 66, 85, 40,\n\t\t81, 199, 228, 47, 134, 50, 41, 42, 85, 168, 89, 161, 138,\n\t\t202, 84, 212, 46, 136, 122, 154, 147, 235, 241, 128, 103,\n\t\t147, 172, 40, 171, 188, 74, 235, 73, 150, 82, 13, 193, 144,\n\t\t32, 240, 164, 84, 130, 171, 42, 49, 66, 93, 247, 192, 0, 116,\n\t\t183, 172, 138, 133, 161, 203, 202, 22, 34, 85, 1, 100, 229,\n\t\t172, 40, 83, 19, 216, 122, 126, 4, 181, 2, 158, 8, 67, 162,\n\t\t181, 67, 42, 46, 140, 66, 52, 219, 171, 202, 133, 169, 114,\n\t\t179, 70, 35, 202, 99, 80, 89, 46, 184, 154, 153, 204, 23,\n\t\t243, 122, 118, 118, 4, 6, 1, 86, 194, 95, 50, 109, 164, 249,\n\t\t182, 248, 182, 87, 60, 120, 227, 13, 16, 139, 117, 24, 16,\n\t\t244, 108, 143, 187, 17, 50, 9, 16, 141, 86, 168, 234, 26,\n\t\t156, 140, 100, 3, 244, 182, 23, 196, 151, 158, 232, 243, 118,\n\t\t74, 178, 21, 218, 224, 190, 19, 218, 128, 94, 208, 114, 109,\n\t\t27, 56, 50, 16, 202, 126, 67, 44, 61, 64, 143, 9, 68, 192,\n\t\t0, 213, 184, 217, 141, 41, 48, 2, 54, 34, 163, 196, 115, 2,\n\t\t42, 124, 161, 104, 131, 173, 199, 145, 103, 40, 226, 25, 61,\n\t\t249, 170, 139, 62, 56, 232, 122, 32, 130, 192, 37, 14, 225,\n\t\t132, 17, 138, 30, 59, 147, 238, 118, 3, 104, 72, 210, 212,\n\t\t67, 89, 71, 162, 18, 32, 180, 184, 180, 41, 186, 140, 4, 118,\n\t\t226, 56, 132, 112, 63, 178, 145, 33, 119, 41, 2, 5, 4, 6,\n\t\t140, 33, 18, 207, 29, 53, 147, 245, 49, 34, 161, 24, 18, 96,\n\t\t190, 180, 5, 15, 1, 121, 83, 208, 40, 104, 81, 135, 249, 40,\n\t\t17, 98, 68, 160, 67, 116, 160, 225, 82, 223, 119, 219, 132,\n\t\t162, 148, 28, 207, 158, 35, 206, 176, 183, 26, 168, 61, 225,\n\t\t195, 224, 250, 179, 126, 68, 121, 171, 1, 200, 154, 205, 65,\n\t\t191, 200, 85, 168, 220, 16, 27, 110, 51, 30, 182, 182, 128,\n\t\t10, 47, 125, 143, 237, 59, 158, 31, 244, 160, 29, 53, 154,\n\t\t193, 25, 159, 18, 238, 240, 128, 122, 129, 214, 51, 92, 123,\n\t\t183, 209, 28, 151, 9, 9, 16, 189, 173, 182, 24, 82, 98, 167,\n\t\t140, 187, 117, 129, 91, 99, 219, 167, 14, 227, 72, 9, 129,\n\t\t200, 13, 237, 20, 157, 139, 91, 221, 45, 160, 206, 112, 20,\n\t\t69, 43, 220, 181, 133, 241, 4, 18, 208, 178, 19, 164, 34,\n\t\t0, 185, 153, 111, 246, 9, 105, 133, 255, 40, 92, 225, 32,\n\t\t120, 92, 218, 54, 37, 48, 104, 10, 180, 89, 234, 122, 65,\n\t\t192, 24, 137, 92, 194, 91, 72, 4, 7, 32, 128, 21, 213, 26,\n\t\t134, 97, 245, 163, 180, 160, 41, 119, 61, 132, 91, 129, 134,\n\t\t62, 202, 72, 112, 135, 34, 33, 118, 80, 131, 204, 124, 23,\n\t\t209, 39, 174, 207, 60, 31, 129, 9, 74, 17, 185, 4, 170, 53,\n\t\t14, 186, 78, 92, 41, 60, 12, 26, 32, 236, 113, 163, 77, 8,\n\t\t216, 156, 98, 216, 0, 14, 224, 216, 228, 11, 92, 52, 26, 16,\n\t\t6, 238, 131, 79, 31, 28, 62, 0, 4, 210, 237, 204, 160, 10,\n\t\t25, 165, 105, 211, 110, 80, 176, 243, 65, 192, 185, 240, 56,\n\t\t23, 66, 36, 237, 116, 187, 23, 18, 95, 72, 148, 66, 196, 12,\n\t\t93, 116, 144, 18, 206, 153, 173, 149, 82, 64, 112, 132, 29,\n\t\t54, 28, 136, 130, 166, 74, 223, 239, 51, 215, 246, 28, 234,\n\t\t248, 46, 16, 233, 185, 78, 36, 99, 183, 33, 29, 16, 130, 55,\n\t\t29, 129, 194, 6, 224, 180, 49, 246, 156, 132, 82, 100, 104,\n\t\t139, 241, 202, 6, 235, 53, 92, 65, 209, 229, 76, 26, 144,\n\t\t33, 161, 140, 34, 233, 186, 77, 158, 2, 208, 200, 224, 220,\n\t\t0, 156, 230, 168, 201, 1, 9, 167, 105, 59, 8, 6, 253, 56,\n\t\t148, 186, 222, 208, 39, 148, 185, 4, 78, 177, 12, 52, 129,\n\t\t22, 50, 225, 123, 169, 148, 98, 176, 170, 15, 115, 160, 145,\n\t\t151, 131, 195, 60, 226, 145, 147, 255, 195, 107, 198, 178,\n\t\t71, 157, 16, 152, 19, 122, 212, 85, 138, 200, 208, 225, 141,\n\t\t62, 32, 107, 69, 7, 42, 114, 137, 24, 140, 20, 79, 144, 184,\n\t\t1, 225, 13, 191, 229, 184, 72, 68, 26, 118, 168, 108, 119,\n\t\t226, 198, 153, 38, 32, 117, 190, 236, 175, 144, 70, 168, 8,\n\t\t82, 226, 199, 205, 72, 119, 233, 94, 176, 186, 21, 69, 4,\n\t\t218, 97, 154, 196, 192, 210, 144, 182, 35, 216, 234, 18, 219,\n\t\t70, 34, 121, 64, 25, 216, 14, 2, 56, 132, 176, 211, 197, 102,\n\t\t41, 122, 253, 52, 218, 220, 229, 74, 17, 109, 2, 36, 64, 41,\n\t\t227, 84, 32, 135, 1, 233, 247, 2, 74, 35, 34, 188, 254, 120,\n\t\t207, 190, 128, 46, 247, 185, 195, 192, 71, 159, 32, 241, 249,\n\t\t219, 152, 189, 230, 122, 97, 180, 55, 115, 165, 227, 119,\n\t\t34, 74, 19, 79, 0, 33, 192, 66, 7, 136, 8, 40, 80, 224, 18,\n\t\t166, 4, 3, 78, 246, 145, 17, 59, 18, 0, 220, 243, 92, 2, 194,\n\t\t37, 68, 223, 189, 209, 110, 184, 12, 8, 117, 21, 143, 57,\n\t\t1, 105, 7, 136, 174, 227, 17, 180, 197, 77, 92, 0, 72, 238,\n\t\t11, 101, 83, 209, 112, 29, 193, 193, 49, 193, 151, 1, 117,\n\t\t151, 211, 58, 121, 243, 218, 179, 240, 36, 60, 107, 189, 209,\n\t\t250, 46, 203, 98, 67, 80, 43, 19, 51, 241, 156, 86, 229, 194,\n\t\t64, 92, 139, 0, 69, 58, 75, 50, 125, 176, 84, 83, 109, 32,\n\t\t29, 137, 121, 89, 204, 243, 108, 3, 50, 173, 190, 207, 86,\n\t\t184, 48, 164, 16, 38, 184, 245, 114, 22, 90, 77, 103, 169,\n\t\t202, 22, 211, 217, 180, 216, 91, 198, 176, 75, 210, 190, 33,\n\t\t72, 153, 77, 211, 60, 213, 242, 194, 16, 182, 144, 98, 19,\n\t\t204, 12, 54, 60, 10, 12, 78, 126, 158, 3, 80, 241, 148, 12,\n\t\t129, 138, 51, 200, 25, 193, 201, 155, 9, 48, 39, 98, 40, 134,\n\t\t67, 38, 57, 35, 102, 254, 177, 227, 135, 213, 136, 25, 188,\n\t\t202, 221, 53, 234, 117, 47, 216, 242, 28, 143, 136, 161, 223,\n\t\t236, 250, 1, 180, 128, 188, 165, 203, 116, 79, 39, 60, 76,\n\t\t57, 64, 236, 63, 194, 201, 47, 217, 182, 237, 218, 46, 69,\n\t\t140, 8, 145, 92, 16, 148, 238, 58, 33, 34, 166, 35, 155, 59,\n\t\t3, 14, 148, 55, 190, 41, 101, 128, 14, 243, 125, 70, 250,\n\t\t49, 51, 60, 201, 23, 47, 184, 177, 31, 112, 27, 57, 48, 240,\n\t\t156, 110, 131, 48, 151, 81, 215, 177, 1, 32, 114, 146, 155,\n\t\t71, 219, 7, 41, 240, 164, 71, 59, 188, 142, 166, 220, 185,\n\t\t190, 128, 152, 16, 248, 45, 162, 255, 1, 192, 25, 71, 170,\n\t\t68, 201, 254, 107, 17, 208, 178, 34, 195, 159, 255, 25, 99,\n\t\t59, 252, 152, 245, 53, 232, 192, 3, 240, 175, 225, 207, 145,\n\t\t96, 142, 183, 225, 55, 136, 32, 93, 178, 66, 182, 201, 190,\n\t\t101, 181, 210, 154, 6, 76, 139, 209, 108, 135, 46, 38, 135,\n\t\t48, 55, 44, 98, 90, 100, 43, 94, 236, 237, 64, 150, 236, 29,\n\t\t193, 126, 169, 166, 9, 23, 220, 196, 41, 42, 106, 116, 152,\n\t\t177, 161, 82, 53, 141, 197, 6, 228, 139, 249, 236, 28, 44,\n\t\t197, 215, 36, 203, 43, 19, 72, 112, 47, 222, 31, 162, 105,\n\t\t174, 67, 152, 27, 73, 59, 77, 246, 210, 36, 62, 15, 121, 49,\n\t\t213, 73, 112, 127, 193, 197, 100, 145, 23, 243, 217, 180,\n\t\t202, 11, 149, 235, 27, 22, 166, 181, 117, 111, 152, 38, 177,\n\t\t17, 172, 243, 188, 152, 36, 123, 233, 126, 92, 67, 212, 106,\n\t\t207, 175, 178, 154, 30, 66, 89, 27, 115, 92, 104, 37, 221,\n\t\t4, 34, 213, 69, 200, 140, 83, 116, 202, 5, 31, 128, 138, 103,\n\t\t211, 226, 8, 134, 56, 75, 13, 128, 125, 114, 104, 104, 46,\n\t\t76, 8, 144, 35, 156, 77, 147, 189, 36, 192, 152, 239, 7, 250,\n\t\t112, 169, 178, 137, 241, 186, 91, 204, 139, 201, 162, 90,\n\t\t70, 67, 212, 6, 250, 180, 62, 54, 175, 102, 83, 145, 241,\n\t\t36, 214, 217, 10, 131, 172, 211, 85, 177, 1, 73, 154, 196,\n\t\t90, 255, 92, 227, 34, 55, 97, 88, 141, 83, 173, 41, 92, 198,\n\t\t247, 185, 136, 211, 82, 165, 98, 111, 19, 38, 53, 58, 115,\n\t\t62, 53, 136, 201, 217, 50, 223, 106, 111, 54, 77, 69, 54,\n\t\t49, 160, 75, 19, 92, 78, 76, 138, 178, 154, 206, 202, 52,\n\t\t137, 69, 60, 89, 204, 243, 44, 207, 38, 3, 136, 171, 114,\n\t\t86, 38, 49, 47, 246, 22, 121, 150, 243, 36, 78, 250, 152,\n\t\t206, 210, 178, 42, 167, 58, 161, 190, 223, 124, 86, 46, 202,\n\t\t34, 77, 250, 184, 207, 39, 186, 61, 150, 132, 110, 243, 69,\n\t\t169, 98, 81, 211, 45, 170, 169, 129, 182, 39, 245, 2, 74,\n\t\t153, 164, 124, 178, 9, 147, 220, 92, 169, 31, 115, 118, 14,\n\t\t138, 120, 54, 173, 243, 59, 15, 211, 178, 46, 102, 102, 150,\n\t\t88, 82, 177, 151, 241, 132, 147, 115, 48, 59, 130, 106, 243,\n\t\t131, 147, 100, 175, 15, 105, 31, 107, 56, 96, 145, 239, 231,\n\t\t139, 249, 254, 188, 154, 111, 194, 16, 139, 216, 20, 206,\n\t\t56, 230, 196, 42, 54, 100, 212, 229, 130, 47, 185, 144, 242,\n\t\t93, 152, 196, 102, 126, 75, 39, 155, 47, 118, 64, 87, 109,\n\t\t193, 197, 159, 253, 1, 163, 212, 126, 236, 113, 36, 233, 225,\n\t\t217, 253, 33, 18, 247, 119, 184, 253, 240, 195, 35, 73, 60,\n\t\t31, 198, 99, 144, 176, 147, 2, 254, 123, 228, 190, 103, 203,\n\t\t0, 67, 172, 201, 110, 135, 180, 134, 213, 0, 1, 194, 246,\n\t\t164, 7, 145, 30, 238, 18, 225, 3, 50, 206, 57, 2, 126, 122,\n\t\t253, 12, 112, 4, 82, 100, 209, 3, 6, 41, 255, 175, 230, 223,\n\t\t119, 159, 131, 249, 58, 165, 27, 5, 128, 220, 124, 136, 212,\n\t\t80, 44, 167, 7, 20, 40, 115, 16, 104, 228, 247, 57, 245, 29,\n\t\t3, 78, 226, 45, 167, 142, 158, 136, 108, 5, 0, 236, 88, 48,\n\t\t131, 251, 107, 253, 50, 119, 92, 233, 155, 245, 4, 74, 58,\n\t\t19, 135, 244, 187, 158, 3, 88, 67, 131, 54, 119, 8, 38, 143,\n\t\t182, 204, 202, 6, 37, 169, 20, 130, 35, 181, 37, 229, 72,\n\t\t8, 105, 49, 106, 68, 43, 34, 75, 152, 173, 229, 20, 53, 16,\n\t\t52, 128, 6, 193, 77, 177, 148, 90, 90, 232, 17, 45, 196, 9,\n\t\t229, 132, 34, 118, 205, 162, 82, 83, 159, 51, 4, 109, 156,\n\t\t144, 180, 14, 237, 136, 16, 32, 62, 166, 191, 87, 116, 105,\n\t\t8, 53, 176, 195, 176, 134, 20, 122, 128, 232, 26, 88, 31,\n\t\t155, 212, 171, 83, 4, 136, 104, 134, 140, 54, 5, 67, 4, 158,\n\t\t184, 33, 216, 62, 32, 16, 6, 196, 17, 6, 124, 15, 152, 27,\n\t\t156, 29, 112, 64, 104, 246, 57, 98, 32, 13, 62, 177, 174,\n\t\t137, 88, 63, 38, 1, 45, 72, 197, 39, 229, 58, 252, 255, 232,\n\t\t159, 169, 57, 31, 192, 67, 192, 79, 193, 203, 31, 125, 25,\n\t\t145, 33, 97, 194, 37, 46, 190, 14, 60, 31, 92, 18, 18, 234,\n\t\t48, 10, 182, 39, 37, 165, 228, 94, 228, 28, 4, 255, 3, 142,\n\t\t20, 158, 125, 39, 2, 123, 247, 183, 80, 224, 231, 14, 192,\n\t\t207, 198, 253, 6, 32, 252, 89, 143, 32, 127, 11, 137, 207,\n\t\t86, 30, 7, 198, 190, 122, 182, 66, 128, 151, 228, 0, 54, 248,\n\t\t78, 11, 161, 199, 117, 99, 26, 215, 103, 255, 38, 207, 192,\n\t\t18, 68, 175, 101, 2, 120, 118, 56, 130, 107, 214, 4, 187,\n\t\t0, 183, 222, 6, 192, 111, 58, 252, 42, 203, 116, 83, 23, 195,\n\t\t187, 63, 10, 228, 134, 219, 56, 191, 253, 198, 219, 43, 83,\n\t\t163, 70, 233, 5, 120, 7, 32, 10, 95, 132, 129, 22, 74, 49,\n\t\t65, 184, 176, 15, 132, 49, 106, 219, 198, 85, 33, 149, 200,\n\t\t108, 215, 214, 186, 3, 34, 12, 161, 198, 187, 1, 105, 153,\n\t\t198, 10, 9, 29, 10, 39, 94, 65, 112, 28, 2, 132, 83, 138,\n\t\t156, 170, 65, 50, 185, 162, 123, 190, 59, 160, 166, 130, 2,\n\t\t65, 168, 39, 41, 32, 93, 51, 129, 249, 129, 230, 12, 73, 72,\n\t\t77, 31, 112, 0, 29, 199, 212, 164, 161, 125, 103, 53, 245,\n\t\t59, 18, 193, 206, 232, 157, 93, 138, 20, 215, 9, 24, 66, 191,\n\t\t2, 8, 165, 183, 44, 29, 56, 164, 233, 251, 24, 25, 215, 0,\n\t\t201, 77, 100, 99, 142, 132, 26, 172, 134, 238, 235, 76, 119,\n\t\t213, 217, 235, 65, 235, 120, 136, 2, 89, 234, 59, 250, 14,\n\t\t250, 180, 11, 132, 203, 17, 15, 222, 164, 115, 94, 145, 20,\n\t\t192, 48, 46, 112, 130, 208, 143, 9, 144, 115, 148, 16, 22,\n\t\t5, 70, 167, 211, 53, 74, 79, 62, 207, 30, 99, 192, 164, 227,\n\t\t218, 2, 40, 193, 17, 226, 136, 49, 112, 114, 132, 217, 185,\n\t\t79, 19, 68, 225, 118, 244, 27, 209, 13, 219, 12, 57, 93, 37,\n\t\t44, 231, 32, 121, 143, 127, 62, 148, 226, 81, 6, 92, 0, 211,\n\t\t119, 86, 17, 119, 172, 196, 178, 172, 7, 240, 25, 200, 173,\n\t\t137, 85, 88, 87, 173, 167, 172, 111, 177, 190, 221, 250, 97,\n\t\t235, 207, 172, 175, 90, 255, 29, 20, 20, 112, 0, 183, 195,\n\t\t253, 240, 16, 60, 1, 223, 5, 63, 4, 63, 13, 191, 111, 89,\n\t\t107, 134, 140, 42, 86, 121, 85, 136, 121, 121, 12, 105, 204,\n\t\t147, 178, 210, 246, 33, 215, 67, 157, 182, 120, 203, 88, 148,\n\t\t133, 138, 121, 145, 86, 60, 95, 112, 109, 241, 150, 121, 177,\n\t\t3, 7, 176, 3, 139, 216, 32, 176, 147, 88, 237, 165, 74, 11,\n\t\t171, 178, 24, 130, 72, 171, 121, 81, 166, 218, 242, 20, 218,\n\t\t190, 63, 130, 153, 216, 59, 134, 169, 202, 69, 46, 114, 53,\n\t\t77, 147, 56, 155, 20, 213, 162, 40, 85, 186, 152, 139, 181,\n\t\t98, 126, 4, 74, 203, 129, 124, 191, 52, 19, 37, 250, 30, 92,\n\t\t149, 197, 44, 215, 5, 152, 23, 121, 21, 167, 73, 141, 220,\n\t\t143, 83, 145, 38, 211, 42, 21, 101, 46, 22, 185, 40, 21, 159,\n\t\t37, 51, 158, 149, 11, 158, 25, 94, 250, 106, 82, 148, 42,\n\t\t23, 83, 197, 69, 185, 159, 139, 35, 52, 92, 118, 213, 94,\n\t\t149, 228, 153, 200, 51, 109, 6, 47, 246, 202, 153, 54, 101,\n\t\t217, 16, 140, 10, 65, 55, 48, 171, 22, 197, 108, 81, 152,\n\t\t104, 30, 198, 107, 253, 8, 15, 97, 190, 131, 217, 68, 156,\n\t\t35, 71, 116, 145, 45, 230, 59, 184, 129, 153, 74, 102, 194,\n\t\t164, 85, 89, 50, 19, 213, 116, 136, 117, 212, 36, 93, 254,\n\t\t50, 159, 240, 180, 72, 148, 57, 47, 84, 85, 204, 138, 188,\n\t\t72, 13, 209, 19, 38, 229, 140, 39, 21, 87, 124, 19, 202, 170,\n\t\t212, 90, 69, 178, 119, 14, 143, 112, 190, 131, 147, 156, 171,\n\t\t153, 72, 180, 210, 184, 188, 118, 8, 106, 81, 44, 163, 27,\n\t\t149, 197, 116, 121, 235, 36, 23, 229, 172, 118, 56, 208, 10,\n\t\t104, 10, 231, 152, 160, 4, 92, 14, 104, 48, 216, 68, 34, 165,\n\t\t146, 72, 201, 129, 131, 189, 202, 16, 67, 201, 25, 37, 49,\n\t\t99, 70, 123, 212, 131, 38, 49, 48, 79, 102, 94, 107, 202,\n\t\t106, 56, 51, 99, 178, 112, 125, 215, 54, 112, 81, 134, 6,\n\t\t217, 41, 153, 111, 179, 191, 237, 173, 156, 111, 247, 165,\n\t\t236, 201, 221, 221, 147, 111, 80, 112, 236, 6, 147, 68, 219,\n\t\t199, 122, 20, 54, 239, 133, 48, 193, 34, 40, 161, 129, 17,\n\t\t38, 88, 135, 53, 174, 145, 160, 4, 181, 144, 224, 4, 180,\n\t\t249, 109, 80, 172, 148, 73, 134, 200, 25, 128, 0, 70, 187,\n\t\t64, 96, 67, 15, 252, 140, 32, 51, 48, 107, 66, 9, 158, 252,\n\t\t185, 99, 59, 200, 152, 45, 2, 79, 217, 210, 117, 229, 217,\n\t\t64, 93, 7, 146, 11, 74, 80, 10, 73, 0, 165, 22, 36, 6, 17,\n\t\t75, 153, 96, 18, 30, 61, 8, 94, 42, 196, 197, 96, 190, 22,\n\t\t124, 38, 106, 251, 156, 123, 157, 40, 29, 112, 49, 72, 90,\n\t\t65, 152, 133, 225, 237, 98, 67, 108, 109, 243, 36, 230, 27,\n\t\t23, 37, 136, 149, 142, 32, 68, 155, 200, 4, 193, 13, 51, 74,\n\t\t177, 197, 136, 17, 77, 6, 115, 253, 95, 10, 145, 226, 22,\n\t\t138, 66, 136, 17, 158, 33, 79, 133, 13, 164, 205, 80, 216,\n\t\t45, 109, 191, 24, 7, 36, 66, 108, 110, 34, 131, 74, 20, 95,\n\t\t160, 4, 8, 5, 39, 66, 164, 134, 232, 131, 18, 70, 8, 101,\n\t\t104, 55, 93, 96, 208, 236, 232, 39, 117, 24, 7, 138, 220,\n\t\t96, 244, 25, 17, 196, 0, 122, 181, 88, 124, 14, 155, 75, 168,\n\t\t126, 34, 137, 40, 116, 229, 4, 33, 128, 35, 25, 197, 37, 222,\n\t\t88, 182, 233, 172, 151, 238, 163, 188, 44, 241, 78, 190, 50,\n\t\t102, 143, 8, 34, 109, 131, 35, 165, 14, 167, 148, 18, 78,\n\t\t93, 82, 151, 159, 162, 160, 204, 215, 218, 182, 110, 150,\n\t\t80, 143, 13, 66, 235, 218, 148, 80, 0, 202, 106, 13, 195,\n\t\t248, 0, 16, 35, 25, 13, 20, 152, 32, 39, 6, 220, 220, 52,\n\t\t93, 0, 32, 66, 138, 79, 16, 143, 114, 207, 96, 20, 192, 30,\n\t\t135, 3, 219, 13, 162, 118, 162, 107, 157, 152, 130, 29, 152,\n\t\t241, 20, 169, 65, 253, 71, 137, 125, 73, 38, 97, 114, 224,\n\t\t54, 147, 164, 233, 38, 131, 65, 114, 185, 223, 239, 247, 237,\n\t\t150, 109, 183, 110, 20, 121, 46, 238, 229, 54, 85, 38, 130,\n\t\t51, 15, 8, 231, 18, 8, 210, 130, 209, 9, 33, 66, 10, 93, 21,\n\t\t47, 177, 239, 21, 91, 108, 79, 218, 119, 218, 180, 144, 27,\n\t\t143, 67, 228, 49, 230, 71, 182, 108, 80, 81, 227, 76, 8, 215,\n\t\t242, 90, 34, 183, 233, 11, 226, 44, 219, 86, 199, 202, 234,\n\t\t25, 216, 114, 25, 241, 104, 49, 91, 251, 23, 17, 151, 107,\n\t\t222, 232, 105, 89, 45, 150, 129, 37, 170, 217, 162, 158, 165,\n\t\t85, 85, 38, 138, 76, 13, 225, 41, 207, 227, 141, 6, 172, 55,\n\t\t187, 221, 230, 201, 15, 233, 191, 175, 87, 237, 189, 221,\n\t\t142, 122, 244, 216, 118, 61, 251, 104, 49, 30, 127, 44, 95,\n\t\t25, 12, 199, 185, 28, 252, 157, 45, 111, 181, 229, 107, 127,\n\t\t230, 52, 37, 188, 182, 217, 61, 249, 167, 219, 26, 195, 127,\n\t\t51, 120, 221, 208, 179, 223, 45, 61, 24, 228, 195, 252, 205,\n\t\t31, 122, 234, 169, 15, 181, 72, 29, 187, 233, 89, 180, 140,\n\t\t191, 254, 138, 117, 155, 117, 135, 245, 18, 203, 2, 37, 138,\n\t\t89, 170, 74, 61, 200, 25, 110, 186, 58, 76, 68, 89, 77, 141,\n\t\t199, 19, 23, 92, 149, 213, 14, 213, 198, 230, 14, 20, 6, 172,\n\t\t116, 26, 207, 125, 201, 144, 153, 150, 196, 198, 153, 170,\n\t\t10, 176, 190, 242, 149, 175, 84, 105, 235, 28, 229, 29, 30,\n\t\t38, 78, 23, 209, 27, 251, 242, 76, 71, 2, 76, 250, 157, 27,\n\t\t134, 183, 255, 193, 205, 43, 212, 150, 82, 82, 209, 78, 108,\n\t\t209, 225, 216, 167, 72, 184, 34, 132, 248, 43, 1, 207, 237,\n\t\t222, 34, 78, 14, 55, 192, 186, 102, 93, 179, 162, 175, 127,\n\t\t253, 235, 240, 163, 95, 249, 202, 87, 146, 248, 58, 202, 59,\n\t\t34, 140, 157, 46, 65, 143, 56, 60, 239, 218, 36, 79, 98, 57,\n\t\t188, 227, 93, 55, 175, 80, 105, 242, 83, 137, 45, 186, 12,\n\t\t150, 249, 81, 226, 129, 203, 214, 236, 94, 233, 7, 54, 124,\n\t\t171, 206, 14, 172, 175, 127, 253, 235, 117, 140, 37, 27, 191,\n\t\t13, 158, 182, 168, 21, 90, 83, 235, 14, 235, 149, 150, 5,\n\t\t169, 18, 101, 29, 84, 85, 112, 81, 148, 107, 105, 146, 6,\n\t\t80, 196, 53, 209, 250, 174, 54, 235, 202, 202, 240, 41, 66,\n\t\t61, 19, 156, 42, 97, 248, 153, 234, 152, 64, 134, 207, 95,\n\t\t233, 209, 86, 20, 149, 249, 171, 15, 132, 160, 119, 143, 65,\n\t\t9, 248, 9, 154, 172, 7, 191, 151, 112, 158, 112, 225, 180,\n\t\t153, 130, 251, 94, 13, 111, 248, 165, 55, 184, 246, 219, 169,\n\t\t27, 1, 117, 36, 190, 244, 101, 31, 188, 194, 130, 151, 92,\n\t\t231, 52, 217, 127, 243, 135, 82, 82, 217, 139, 193, 189, 127,\n\t\t186, 74, 19, 55, 166, 111, 166, 9, 238, 125, 249, 73, 154,\n\t\t220, 116, 120, 59, 109, 172, 36, 244, 77, 180, 69, 207, 241,\n\t\t16, 250, 246, 142, 123, 180, 203, 26, 177, 75, 144, 240, 29,\n\t\t62, 218, 63, 91, 156, 117, 83, 39, 34, 163, 192, 221, 66,\n\t\t144, 33, 105, 110, 79, 87, 103, 45, 225, 211, 36, 36, 182,\n\t\t253, 251, 164, 229, 250, 171, 43, 170, 237, 59, 91, 236, 205,\n\t\t108, 107, 184, 205, 219, 190, 59, 216, 230, 31, 138, 226,\n\t\t45, 250, 45, 124, 107, 88, 176, 102, 24, 80, 171, 107, 89,\n\t\t22, 193, 247, 192, 187, 45, 110, 245, 173, 53, 235, 62, 235,\n\t\t97, 235, 181, 214, 135, 172, 159, 180, 254, 8, 16, 54, 224,\n\t\t16, 238, 133, 87, 193, 183, 194, 15, 195, 191, 133, 207, 195,\n\t\t95, 226, 125, 248, 32, 190, 26, 191, 25, 191, 3, 63, 128,\n\t\t31, 169, 217, 54, 4, 207, 89, 205, 146, 43, 178, 178, 56,\n\t\t165, 219, 152, 236, 239, 21, 243, 99, 168, 125, 158, 166,\n\t\t169, 226, 34, 21, 217, 188, 48, 156, 152, 98, 81, 67, 228,\n\t\t185, 200, 11, 19, 210, 106, 25, 90, 49, 219, 129, 93, 56,\n\t\t162, 68, 11, 87, 179, 220, 89, 169, 66, 87, 183, 58, 210,\n\t\t70, 240, 14, 20, 101, 181, 208, 125, 49, 203, 139, 133, 54,\n\t\t101, 171, 29, 200, 22, 92, 36, 165, 26, 18, 158, 84, 139,\n\t\t201, 14, 20, 139, 82, 45, 138, 140, 11, 53, 155, 31, 193,\n\t\t44, 21, 201, 94, 85, 195, 220, 170, 137, 72, 166, 35, 200,\n\t\t246, 184, 152, 239, 194, 98, 34, 166, 42, 30, 66, 146, 26,\n\t\t114, 217, 249, 14, 236, 87, 101, 165, 210, 122, 178, 62, 11,\n\t\t64, 31, 90, 148, 106, 94, 238, 103, 250, 134, 139, 82, 205,\n\t\t242, 98, 193, 69, 150, 234, 203, 148, 72, 202, 89, 85, 46,\n\t\t180, 141, 102, 194, 208, 204, 171, 185, 182, 11, 119, 128,\n\t\t103, 66, 233, 74, 49, 240, 80, 109, 20, 171, 3, 216, 95, 24,\n\t\t2, 225, 106, 177, 87, 113, 253, 222, 85, 105, 34, 204, 2,\n\t\t69, 101, 236, 204, 106, 7, 67, 168, 242, 172, 166, 77, 207,\n\t\t13, 197, 99, 190, 40, 247, 39, 121, 49, 0, 30, 194, 84, 165,\n\t\t251, 11, 125, 217, 84, 237, 37, 34, 153, 14, 161, 224, 198,\n\t\t40, 221, 215, 89, 228, 101, 117, 132, 85, 94, 136, 52, 132,\n\t\t156, 171, 106, 177, 3, 181, 87, 246, 36, 175, 50, 158, 12,\n\t\t161, 142, 233, 50, 213, 73, 11, 173, 171, 132, 104, 38, 217,\n\t\t211, 99, 216, 193, 160, 54, 250, 121, 49, 95, 20, 98, 136,\n\t\t179, 154, 104, 84, 165, 34, 22, 213, 108, 7, 179, 92, 84,\n\t\t162, 48, 107, 23, 106, 47, 203, 77, 232, 214, 66, 137, 34,\n\t\t85, 162, 16, 74, 159, 19, 102, 47, 55, 212, 106, 250, 117,\n\t\t56, 66, 181, 103, 32, 54, 186, 217, 68, 149, 170, 66, 236,\n\t\t169, 148, 11, 85, 86, 5, 47, 242, 93, 84, 162, 172, 10, 193,\n\t\t69, 53, 17, 170, 168, 132, 110, 186, 53, 85, 206, 116, 174,\n\t\t71, 144, 22, 211, 33, 73, 98, 97, 84, 160, 108, 82, 55, 52,\n\t\t211, 106, 143, 25, 173, 68, 90, 211, 107, 170, 133, 214, 26,\n\t\t39, 249, 255, 233, 186, 142, 227, 166, 240, 32, 189, 110,\n\t\t243, 225, 251, 180, 2, 252, 242, 127, 181, 115, 14, 129, 194,\n\t\t143, 139, 16, 0, 109, 57, 123, 195, 79, 186, 68, 11, 124,\n\t\t148, 146, 70, 94, 64, 73, 202, 168, 240, 250, 233, 197, 235,\n\t\t110, 121, 215, 22, 244, 159, 42, 65, 118, 110, 186, 248, 134,\n\t\t141, 134, 231, 55, 37, 50, 30, 185, 72, 131, 142, 231, 218,\n\t\t6, 67, 198, 168, 214, 22, 136, 4, 10, 70, 177, 6, 132, 134,\n\t\t77, 144, 74, 66, 224, 44, 32, 231, 14, 33, 160, 180, 104,\n\t\t163, 224, 67, 181, 244, 61, 65, 195, 75, 224, 16, 64, 34,\n\t\t209, 248, 92, 27, 75, 16, 193, 54, 108, 148, 185, 177, 183,\n\t\t80, 139, 91, 48, 142, 51, 190, 22, 206, 129, 107, 252, 198,\n\t\t0, 34, 225, 10, 196, 102, 237, 144, 173, 111, 25, 36, 62,\n\t\t35, 129, 207, 41, 10, 97, 107, 3, 133, 123, 108, 211, 141,\n\t\t16, 99, 137, 172, 137, 24, 186, 140, 129, 128, 86, 19, 108,\n\t\t96, 182, 231, 2, 145, 36, 132, 192, 119, 3, 138, 156, 7, 12,\n\t\t245, 136, 174, 53, 49, 46, 13, 79, 155, 113, 64, 70, 109,\n\t\t135, 56, 60, 208, 250, 92, 64, 145, 16, 23, 9, 39, 34, 66,\n\t\t129, 18, 219, 9, 33, 142, 150, 241, 198, 204, 214, 214, 176,\n\t\t113, 75, 2, 66, 82, 160, 182, 113, 105, 67, 173, 121, 49,\n\t\t50, 144, 64, 61, 143, 105, 189, 4, 185, 68, 194, 144, 186,\n\t\t212, 23, 130, 105, 115, 56, 188, 112, 231, 218, 77, 55, 36,\n\t\t19, 91, 203, 84, 207, 135, 200, 37, 216, 114, 213, 121, 214,\n\t\t64, 50, 24, 54, 2, 239, 33, 10, 62, 163, 221, 245, 150, 215,\n\t\t232, 58, 68, 210, 222, 136, 1, 17, 8, 212, 91, 89, 237, 123,\n\t\t253, 85, 182, 49, 36, 19, 84, 128, 140, 52, 19, 112, 16, 91,\n\t\t14, 30, 250, 170, 167, 181, 157, 116, 184, 70, 59, 87, 239,\n\t\t189, 233, 198, 237, 59, 54, 213, 201, 147, 68, 80, 251, 123,\n\t\t220, 148, 52, 220, 222, 13, 175, 191, 56, 83, 0, 91, 151,\n\t\t222, 124, 227, 193, 20, 100, 80, 65, 72, 133, 161, 20, 116,\n\t\t184, 115, 189, 36, 196, 182, 9, 29, 83, 221, 60, 175, 177,\n\t\t163, 80, 218, 163, 155, 3, 209, 89, 39, 252, 46, 215, 193,\n\t\t219, 92, 182, 53, 240, 228, 39, 165, 112, 123, 68, 192, 143,\n\t\t189, 249, 10, 18, 151, 113, 155, 9, 39, 234, 59, 224, 197,\n\t\t157, 72, 58, 201, 25, 91, 132, 170, 31, 183, 250, 163, 253,\n\t\t219, 174, 187, 251, 241, 0, 237, 206, 52, 31, 158, 252, 113,\n\t\t24, 181, 124, 30, 11, 65, 190, 87, 178, 222, 128, 223, 246,\n\t\t190, 122, 114, 67, 106, 235, 140, 32, 114, 27, 106, 7, 72,\n\t\t32, 96, 11, 0, 34, 60, 202, 1, 199, 0, 65, 104, 124, 186,\n\t\t28, 173, 118, 224, 16, 33, 5, 66, 18, 3, 203, 164, 182, 105,\n\t\t5, 173, 9, 123, 62, 144, 218, 111, 144, 155, 88, 84, 54, 101,\n\t\t40, 235, 217, 77, 173, 232, 154, 123, 113, 173, 51, 214, 225,\n\t\t0, 136, 227, 16, 10, 116, 219, 232, 118, 12, 144, 6, 2, 98,\n\t\t180, 137, 45, 33, 34, 129, 205, 56, 50, 173, 155, 54, 108,\n\t\t23, 154, 186, 131, 11, 91, 183, 36, 151, 220, 115, 232, 93,\n\t\t64, 42, 193, 180, 114, 25, 14, 4, 119, 117, 251, 186, 77,\n\t\t241, 205, 36, 228, 46, 178, 144, 73, 225, 0, 118, 245, 109,\n\t\t28, 167, 14, 9, 64, 77, 195, 1, 188, 60, 92, 51, 222, 143,\n\t\t72, 169, 55, 20, 50, 18, 34, 160, 140, 119, 29, 120, 208,\n\t\t68, 177, 38, 250, 53, 98, 134, 232, 134, 50, 166, 171, 32,\n\t\t210, 26, 37, 114, 215, 32, 101, 164, 196, 13, 135, 112, 27,\n\t\t165, 107, 219, 54, 160, 75, 8, 6, 186, 183, 133, 52, 209,\n\t\t186, 37, 7, 46, 118, 111, 236, 193, 218, 225, 13, 9, 74, 28,\n\t\t28, 74, 215, 5, 70, 189, 77, 12, 104, 228, 175, 218, 27, 108,\n\t\t224, 16, 218, 246, 71, 206, 121, 175, 217, 243, 185, 16, 173,\n\t\t54, 215, 245, 226, 12, 87, 58, 242, 149, 155, 254, 253, 183,\n\t\t218, 55, 179, 243, 186, 163, 74, 161, 141, 220, 138, 201,\n\t\t181, 77, 78, 123, 152, 192, 93, 118, 212, 74, 236, 2, 96,\n\t\t180, 155, 189, 218, 70, 185, 158, 55, 60, 23, 223, 53, 154,\n\t\t30, 158, 239, 69, 196, 89, 191, 235, 250, 245, 64, 82, 8,\n\t\t126, 42, 138, 72, 232, 180, 1, 42, 244, 124, 68, 223, 111,\n\t\t3, 167, 110, 141, 227, 81, 215, 158, 197, 51, 6, 119, 233,\n\t\t91, 214, 154, 11, 69, 15, 170, 25, 235, 65, 70, 4, 252, 199,\n\t\t47, 252, 238, 248, 107, 95, 168, 198, 39, 183, 254, 224, 215,\n\t\t86, 126, 231, 109, 5, 60, 124, 242, 9, 128, 143, 158, 124,\n\t\t252, 161, 215, 1, 158, 124, 19, 188, 226, 183, 45, 203, 178,\n\t\t186, 22, 94, 251, 12, 222, 0, 191, 105, 216, 238, 166, 214,\n\t\t101, 235, 81, 235, 73, 235, 219, 172, 247, 90, 255, 179, 245,\n\t\t73, 235, 179, 214, 111, 91, 127, 106, 253, 149, 245, 13, 64,\n\t\t240, 224, 165, 240, 4, 124, 43, 252, 25, 252, 3, 18, 244,\n\t\t113, 15, 207, 89, 214, 49, 24, 22, 81, 161, 10, 109, 19, 214,\n\t\t123, 162, 182, 129, 15, 97, 62, 155, 214, 224, 152, 154, 164,\n\t\t206, 56, 91, 151, 51, 49, 173, 249, 45, 180, 161, 56, 171,\n\t\t247, 147, 211, 239, 66, 165, 58, 125, 145, 189, 128, 30, 99,\n\t\t0, 113, 177, 152, 155, 68, 213, 233, 105, 17, 111, 226, 228,\n\t\t184, 102, 207, 152, 21, 170, 78, 156, 61, 127, 193, 38, 168,\n\t\t231, 239, 162, 15, 225, 139, 238, 242, 252, 185, 153, 58,\n\t\t165, 229, 251, 31, 220, 185, 166, 0, 72, 170, 211, 130, 190,\n\t\t224, 58, 147, 163, 152, 213, 142, 83, 179, 99, 24, 66, 0,\n\t\t90, 98, 100, 19, 109, 205, 27, 47, 31, 45, 122, 85, 64, 180,\n\t\t184, 170, 118, 136, 214, 246, 12, 210, 211, 120, 163, 235,\n\t\t131, 147, 0, 68, 94, 28, 193, 16, 68, 186, 22, 96, 60, 164,\n\t\t134, 11, 200, 184, 242, 24, 143, 144, 108, 2, 165, 65, 219,\n\t\t231, 69, 205, 41, 111, 66, 69, 107, 9, 188, 3, 75, 186, 103,\n\t\t125, 38, 55, 202, 205, 14, 89, 2, 235, 151, 201, 133, 209,\n\t\t120, 178, 188, 8, 80, 43, 222, 123, 179, 105, 149, 206, 106,\n\t\t6, 252, 105, 85, 187, 214, 79, 13, 13, 116, 186, 164, 188,\n\t\t47, 171, 69, 58, 75, 139, 217, 139, 235, 14, 98, 93, 9, 179,\n\t\t231, 158, 212, 132, 236, 209, 123, 199, 88, 87, 236, 228,\n\t\t16, 231, 231, 113, 58, 128, 253, 120, 19, 147, 101, 11, 96,\n\t\t178, 236, 13, 85, 49, 251, 71, 228, 2, 137, 224, 200, 207,\n\t\t25, 138, 76, 201, 145, 63, 76, 160, 209, 104, 52, 40, 161,\n\t\t158, 135, 120, 153, 210, 148, 144, 148, 210, 192, 165, 212,\n\t\t237, 75, 61, 84, 72, 19, 78, 34, 104, 120, 156, 49, 126, 151,\n\t\t11, 148, 82, 244, 12, 83, 21, 184, 84, 80, 207, 102, 247,\n\t\t82, 66, 5, 165, 29, 74, 197, 223, 35, 42, 243, 191, 21, 33,\n\t\t70, 183, 135, 33, 132, 161, 155, 36, 59, 134, 66, 200, 117,\n\t\t181, 168, 11, 194, 200, 117, 157, 87, 133, 161, 107, 166,\n\t\t2, 219, 142, 227, 56, 191, 165, 11, 197, 9, 23, 248, 213,\n\t\t237, 109, 113, 120, 182, 211, 9, 199, 147, 87, 79, 183, 215,\n\t\t3, 183, 133, 76, 117, 54, 20, 103, 173, 108, 208, 77, 236,\n\t\t182, 31, 6, 253, 253, 209, 13, 85, 187, 29, 141, 39, 15, 207,\n\t\t54, 55, 124, 167, 69, 68, 218, 57, 163, 24, 91, 191, 56, 115,\n\t\t131, 230, 201, 47, 82, 138, 168, 71, 209, 141, 77, 213, 99,\n\t\t44, 141, 123, 189, 56, 222, 185, 127, 208, 134, 60, 73, 215,\n\t\t246, 84, 159, 49, 213, 234, 246, 226, 120, 251, 254, 161,\n\t\t74, 238, 73, 17, 193, 91, 29, 54, 154, 76, 112, 66, 168, 228,\n\t\t227, 245, 102, 67, 80, 42, 89, 232, 116, 58, 227, 81, 179,\n\t\t193, 41, 176, 176, 185, 62, 214, 3, 57, 115, 4, 155, 159,\n\t\t163, 215, 157, 227, 2, 8, 65, 46, 249, 234, 106, 35, 146,\n\t\t20, 161, 17, 119, 58, 163, 81, 51, 18, 148, 144, 176, 177,\n\t\t186, 202, 109, 66, 136, 16, 79, 2, 134, 16, 34, 96, 140, 158,\n\t\t126, 76, 166, 91, 161, 255, 220, 158, 52, 213, 149, 106, 233,\n\t\t208, 50, 43, 181, 145, 71, 78, 79, 126, 77, 80, 33, 116, 213,\n\t\t46, 191, 75, 234, 4, 193, 122, 16, 120, 14, 231, 171, 156,\n\t\t27, 59, 185, 169, 37, 193, 1, 5, 66, 72, 139, 16, 18, 183,\n\t\t218, 148, 40, 69, 200, 121, 26, 120, 182, 107, 243, 164, 119,\n\t\t158, 18, 207, 35, 244, 60, 217, 24, 76, 9, 41, 235, 0, 86,\n\t\t11, 61, 106, 95, 111, 102, 6, 186, 8, 216, 59, 214, 249, 174,\n\t\t7, 243, 85, 207, 91, 117, 59, 61, 132, 94, 79, 159, 15, 108,\n\t\t23, 92, 225, 14, 86, 2, 39, 48, 7, 148, 116, 135, 179, 101,\n\t\t145, 222, 211, 216, 219, 219, 141, 174, 110, 246, 47, 220,\n\t\t74, 237, 227, 235, 93, 45, 222, 122, 41, 99, 205, 110, 192,\n\t\t8, 11, 46, 31, 17, 55, 93, 141, 135, 211, 240, 234, 102, 255,\n\t\t182, 219, 168, 125, 116, 131, 86, 82, 116, 138, 98, 216, 127,\n\t\t233, 121, 250, 12, 111, 52, 90, 141, 40, 112, 132, 75, 39,\n\t\t67, 198, 58, 125, 132, 163, 235, 79, 202, 226, 30, 135, 61,\n\t\t255, 251, 227, 237, 130, 114, 213, 234, 185, 130, 182, 98,\n\t\t96, 4, 211, 84, 210, 222, 0, 25, 115, 29, 21, 34, 233, 142,\n\t\t144, 51, 210, 239, 81, 59, 73, 1, 88, 163, 21, 110, 110, 111,\n\t\t71, 113, 12, 144, 38, 146, 118, 7, 4, 96, 216, 67, 210, 29,\n\t\t80, 132, 65, 135, 218, 73, 2, 8, 188, 249, 16, 204, 131, 96,\n\t\t14, 48, 117, 221, 41, 220, 187, 124, 162, 0, 234, 29, 224,\n\t\t109, 83, 53, 199, 70, 25, 51, 21, 244, 200, 178, 33, 44, 139,\n\t\t88, 29, 203, 130, 191, 128, 103, 44, 180, 152, 229, 88, 22,\n\t\t204, 26, 64, 26, 35, 200, 138, 12, 14, 126, 234, 228, 143,\n\t\t127, 234, 171, 79, 220, 62, 124, 73, 77, 130, 173, 63, 223,\n\t\t251, 223, 46, 213, 241, 188, 241, 218, 159, 160, 132, 79,\n\t\t88, 220, 10, 173, 166, 101, 85, 43, 106, 101, 146, 23, 107,\n\t\t105, 8, 160, 71, 35, 145, 85, 8, 231, 207, 159, 252, 185,\n\t\t223, 227, 240, 91, 141, 214, 153, 147, 107, 247, 251, 61,\n\t\t126, 248, 23, 111, 185, 237, 177, 134, 251, 154, 222, 248,\n\t\t54, 120, 54, 114, 255, 223, 223, 180, 44, 11, 175, 253, 211,\n\t\t181, 207, 32, 129, 95, 179, 60, 107, 100, 89, 149, 182, 189,\n\t\t54, 97, 146, 27, 98, 225, 114, 170, 90, 169, 254, 89, 236,\n\t\t176, 35, 248, 161, 233, 112, 64, 237, 159, 151, 54, 125, 55,\n\t\t13, 95, 205, 35, 250, 117, 106, 203, 159, 179, 153, 93, 36,\n\t\t35, 207, 182, 59, 127, 80, 254, 200, 121, 25, 200, 127, 148,\n\t\t240, 199, 82, 158, 12, 101, 32, 155, 183, 111, 92, 152, 221,\n\t\t118, 112, 209, 96, 45, 79, 177, 163, 199, 150, 181, 22, 192,\n\t\t8, 242, 34, 79, 84, 86, 46, 230, 33, 148, 102, 149, 170, 42,\n\t\t119, 33, 85, 233, 177, 254, 243, 130, 221, 99, 224, 9, 127,\n\t\t110, 87, 240, 17, 112, 120, 134, 3, 58, 15, 57, 45, 62, 228,\n\t\t173, 199, 25, 67, 224, 143, 55, 92, 150, 236, 57, 146, 133,\n\t\t115, 34, 60, 236, 13, 29, 151, 111, 230, 140, 187, 235, 61,\n\t\t244, 68, 229, 35, 147, 231, 154, 132, 185, 141, 199, 94, 197,\n\t\t168, 159, 197, 136, 193, 155, 30, 115, 2, 76, 227, 208, 167,\n\t\t236, 21, 130, 249, 55, 57, 4, 157, 241, 1, 50, 33, 191, 173,\n\t\t201, 132, 119, 215, 5, 233, 9, 245, 180, 35, 5, 59, 234, 49,\n\t\t7, 253, 3, 225, 51, 241, 128, 85, 175, 253, 158, 198, 19,\n\t\t173, 163, 64, 246, 172, 204, 218, 92, 198, 173, 191, 105,\n\t\t57, 99, 114, 159, 245, 144, 153, 53, 89, 136, 106, 150, 20,\n\t\t149, 202, 18, 81, 44, 66, 200, 146, 162, 74, 102, 199, 160,\n\t\t18, 37, 22, 89, 81, 205, 22, 107, 139, 153, 80, 73, 86, 172,\n\t\t37, 133, 200, 22, 85, 65, 178, 162, 42, 22, 213, 8, 146, 172,\n\t\t42, 22, 51, 85, 37, 218, 102, 202, 22, 66, 255, 16, 197, 108,\n\t\t81, 169, 164, 80, 217, 66, 85, 179, 4, 38, 163, 59, 223, 54,\n\t\t222, 206, 170, 179, 219, 174, 219, 116, 159, 57, 123, 246,\n\t\t153, 7, 238, 28, 223, 120, 246, 25, 199, 121, 230, 228, 223,\n\t\t221, 53, 190, 26, 61, 0, 253, 241, 3, 225, 3, 163, 71, 182,\n\t\t199, 151, 190, 103, 229, 206, 223, 191, 60, 122, 32, 124,\n\t\t96, 60, 190, 115, 119, 180, 253, 225, 149, 39, 95, 119, 182,\n\t\t218, 114, 221, 119, 140, 239, 90, 121, 32, 130, 87, 142, 46,\n\t\t61, 49, 26, 61, 241, 182, 179, 230, 242, 255, 221, 217, 174,\n\t\t206, 110, 59, 151, 198, 219, 73, 181, 237, 184, 219, 237,\n\t\t203, 163, 171, 225, 213, 157, 203, 227, 171, 225, 213, 209,\n\t\t201, 111, 140, 239, 188, 109, 123, 124, 233, 145, 151, 140,\n\t\t31, 136, 174, 94, 221, 30, 95, 122, 221, 248, 137, 221, 241,\n\t\t246, 71, 170, 234, 25, 215, 125, 102, 99, 252, 146, 241, 213,\n\t\t58, 174, 238, 181, 111, 92, 251, 117, 228, 240, 171, 86, 102,\n\t\t221, 170, 237, 253, 234, 136, 213, 248, 130, 16, 106, 122,\n\t\t203, 29, 26, 160, 224, 187, 144, 131, 225, 98, 170, 189, 202,\n\t\t12, 65, 174, 145, 184, 88, 237, 85, 229, 8, 82, 36, 44, 104,\n\t\t172, 175, 30, 28, 223, 183, 87, 205, 56, 35, 83, 226, 115,\n\t\t95, 21, 147, 121, 107, 37, 104, 55, 124, 25, 188, 46, 64,\n\t\t74, 152, 223, 52, 105, 246, 247, 175, 227, 20, 103, 58, 77,\n\t\t123, 118, 230, 92, 50, 73, 26, 96, 251, 175, 11, 86, 169,\n\t\t76, 187, 59, 157, 54, 196, 237, 110, 155, 120, 252, 41, 173,\n\t\t240, 114, 183, 21, 197, 20, 156, 184, 151, 4, 242, 70, 9,\n\t\t183, 214, 137, 58, 177, 106, 119, 137, 207, 159, 226, 140,\n\t\t112, 175, 29, 55, 105, 99, 52, 0, 223, 190, 65, 214, 190,\n\t\t224, 214, 247, 227, 51, 214, 223, 152, 62, 80, 179, 167, 109,\n\t\t90, 187, 214, 220, 58, 107, 98, 157, 95, 168, 61, 49, 102,\n\t\t98, 109, 38, 178, 106, 198, 55, 161, 154, 77, 181, 40, 95,\n\t\t203, 170, 25, 211, 237, 92, 154, 67, 105, 8, 218, 56, 69,\n\t\t177, 152, 137, 89, 185, 63, 19, 51, 221, 91, 102, 73, 102,\n\t\t122, 141, 185, 86, 204, 212, 76, 100, 147, 188, 250, 155,\n\t\t244, 124, 122, 242, 135, 47, 163, 87, 126, 246, 230, 52, 123,\n\t\t228, 204, 76, 80, 112, 40, 220, 122, 180, 126, 116, 114, 137,\n\t\t94, 253, 2, 19, 111, 76, 222, 154, 68, 34, 216, 182, 41, 80,\n\t\t250, 123, 151, 217, 55, 210, 243, 233, 191, 102, 15, 92, 188,\n\t\t120, 201, 166, 87, 190, 113, 174, 248, 190, 245, 115, 105,\n\t\t247, 236, 123, 211, 87, 54, 124, 241, 225, 225, 176, 201,\n\t\t155, 195, 138, 65, 192, 196, 226, 128, 243, 30, 239, 117,\n\t\t156, 38, 67, 198, 43, 206, 135, 67, 206, 135, 220, 227, 252,\n\t\t242, 98, 49, 28, 14, 131, 37, 215, 77, 251, 218, 87, 224,\n\t\t47, 225, 199, 172, 29, 203, 170, 38, 124, 127, 146, 47, 246,\n\t\t74, 67, 126, 175, 85, 158, 253, 233, 98, 175, 220, 47, 167,\n\t\t67, 156, 77, 143, 96, 127, 8, 123, 92, 236, 165, 201, 30,\n\t\t207, 246, 242, 255, 14, 247, 195, 203, 238, 187, 225, 54,\n\t\t132, 49, 92, 184, 8, 8, 143, 25, 75, 242, 150, 91, 96, 244,\n\t\t1, 184, 251, 101, 240, 242, 87, 188, 253, 0, 190, 5, 83, 5,\n\t\t240, 40, 180, 219, 248, 3, 0, 151, 47, 183, 21, 188, 102,\n\t\t15, 222, 1, 199, 239, 174, 121, 215, 30, 192, 103, 96, 108,\n\t\t106, 248, 216, 186, 195, 186, 98, 189, 210, 178, 214, 84,\n\t\t166, 95, 154, 172, 38, 82, 137, 211, 106, 22, 152, 40, 218,\n\t\t134, 72, 223, 32, 90, 143, 192, 176, 70, 77, 213, 172, 62,\n\t\t160, 170, 25, 155, 237, 64, 58, 173, 87, 111, 150, 243, 170,\n\t\t134, 225, 110, 150, 84, 69, 146, 141, 96, 86, 212, 179, 172,\n\t\t98, 134, 183, 151, 215, 171, 244, 15, 192, 75, 219, 19, 124,\n\t\t89, 230, 110, 248, 215, 47, 112, 127, 255, 201, 131, 202,\n\t\t155, 77, 109, 62, 76, 82, 31, 62, 122, 246, 237, 105, 122,\n\t\t116, 226, 237, 210, 252, 59, 86, 252, 32, 140, 130, 207, 157,\n\t\t61, 91, 157, 125, 104, 255, 236, 116, 122, 246, 253, 189,\n\t\t245, 157, 237, 188, 219, 93, 223, 217, 201, 127, 252, 176,\n\t\t211, 241, 90, 19, 213, 244, 162, 149, 104, 45, 115, 228, 165,\n\t\t95, 62, 211, 109, 39, 145, 234, 199, 157, 240, 206, 253, 168,\n\t\t221, 222, 108, 253, 127, 180, 189, 11, 152, 43, 89, 121, 24,\n\t\t120, 254, 115, 170, 206, 169, 151, 170, 244, 172, 106, 117,\n\t\t183, 212, 221, 82, 75, 234, 190, 125, 165, 238, 86, 183, 164,\n\t\t59, 247, 206, 244, 188, 135, 121, 50, 15, 134, 199, 120, 192,\n\t\t80, 146, 170, 213, 117, 91, 170, 210, 84, 149, 250, 49, 96,\n\t\t60, 60, 135, 193, 64, 140, 205, 219, 198, 30, 32, 128, 99,\n\t\t192, 75, 214, 89, 59, 56, 33, 59, 152, 216, 11, 137, 113,\n\t\t28, 18, 8, 217, 53, 1, 39, 236, 122, 215, 217, 221, 152, 100,\n\t\t205, 98, 99, 238, 221, 175, 142, 212, 151, 11, 12, 159, 215,\n\t\t187, 95, 238, 237, 174, 243, 215, 233, 170, 243, 252, 207,\n\t\t255, 56, 117, 254, 255, 135, 59, 151, 151, 150, 118, 138,\n\t\t231, 23, 75, 75, 31, 95, 107, 220, 112, 195, 249, 82, 113,\n\t\t183, 89, 40, 236, 236, 196, 227, 111, 94, 189, 122, 245, 27,\n\t\t240, 57, 248, 16, 82, 81, 26, 205, 161, 2, 90, 69, 231, 208,\n\t\t22, 106, 163, 27, 209, 109, 232, 30, 244, 32, 122, 49, 122,\n\t\t6, 189, 3, 189, 155, 91, 193, 127, 28, 125, 10, 253, 38, 250,\n\t\t12, 183, 7, 208, 97, 22, 143, 78, 220, 221, 132, 92, 150,\n\t\t213, 204, 37, 104, 0, 163, 204, 138, 165, 81, 171, 218, 234,\n\t\t212, 102, 91, 44, 207, 119, 173, 182, 88, 118, 9, 90, 187,\n\t\t157, 90, 17, 172, 234, 38, 240, 236, 14, 15, 9, 82, 154, 198,\n\t\t175, 219, 155, 90, 205, 110, 64, 137, 22, 160, 92, 162, 230,\n\t\t37, 152, 122, 244, 47, 151, 170, 101, 29, 114, 89, 147, 31,\n\t\t206, 222, 137, 95, 140, 223, 54, 173, 159, 80, 91, 150, 89,\n\t\t113, 219, 218, 157, 118, 171, 70, 217, 27, 127, 231, 13, 240,\n\t\t134, 87, 252, 186, 181, 4, 240, 86, 210, 17, 48, 129, 14,\n\t\t43, 253, 169, 36, 73, 36, 201, 216, 2, 134, 34, 21, 203, 140,\n\t\t181, 168, 80, 18, 233, 182, 72, 86, 137, 208, 32, 164, 6,\n\t\t164, 129, 241, 46, 221, 38, 29, 114, 129, 150, 210, 4, 46,\n\t\t221, 34, 208, 187, 241, 247, 141, 68, 194, 40, 73, 27, 22,\n\t\t211, 101, 85, 86, 20, 216, 216, 59, 151, 76, 36, 146, 43,\n\t\t132, 174, 88, 162, 68, 20, 93, 167, 141, 7, 111, 147, 37,\n\t\t153, 36, 37, 186, 128, 1, 10, 148, 174, 138, 114, 91, 20,\n\t\t203, 162, 184, 37, 10, 171, 68, 108, 8, 100, 141, 52, 219,\n\t\t12, 214, 9, 193, 183, 8, 20, 158, 125, 227, 103, 222, 176,\n\t\t108, 126, 226, 229, 243, 170, 122, 1, 152, 180, 34, 208, 118,\n\t\t166, 242, 78, 192, 50, 3, 44, 44, 80, 38, 9, 68, 88, 37, 120,\n\t\t81, 16, 203, 162, 96, 81, 97, 149, 135, 188, 88, 147, 88,\n\t\t150, 74, 237, 132, 14, 154, 114, 1, 36, 186, 156, 169, 72,\n\t\t130, 248, 242, 91, 68, 114, 143, 124, 126, 46, 47, 111, 22,\n\t\t150, 68, 76, 53, 73, 214, 1, 223, 116, 254, 194, 92, 158,\n\t\t146, 77, 107, 5, 131, 174, 40, 186, 178, 183, 115, 1, 176,\n\t\t20, 107, 165, 139, 215, 202, 47, 136, 66, 89, 36, 150, 40,\n\t\t158, 149, 47, 137, 45, 77, 63, 39, 105, 178, 116, 43, 21,\n\t\t166, 254, 205, 179, 87, 159, 131, 67, 120, 14, 45, 162, 85,\n\t\t132, 160, 156, 154, 217, 169, 79, 47, 220, 154, 238, 18, 76,\n\t\t109, 251, 74, 103, 134, 134, 185, 23, 55, 95, 208, 108, 150,\n\t\t203, 205, 102, 217, 170, 89, 205, 242, 39, 202, 77, 171, 118,\n\t\t241, 174, 102, 243, 174, 38, 228, 174, 162, 114, 51, 254,\n\t\t243, 93, 77, 107, 205, 138, 31, 153, 171, 89, 205, 248, 111,\n\t\t220, 78, 235, 44, 174, 164, 197, 163, 202, 109, 162, 91, 209,\n\t\t61, 207, 23, 191, 146, 171, 34, 37, 246, 19, 82, 113, 15,\n\t\t26, 80, 98, 220, 16, 77, 231, 98, 65, 103, 166, 222, 193,\n\t\t91, 172, 149, 21, 235, 202, 167, 227, 235, 183, 138, 197,\n\t\t251, 248, 207, 189, 197, 34, 220, 46, 96, 129, 41, 194, 214,\n\t\t111, 53, 5, 133, 9, 88, 184, 248, 165, 27, 139, 69, 120, 246,\n\t\t236, 89, 120, 200, 90, 121, 228, 11, 186, 254, 5, 67, 250,\n\t\t154, 97, 124, 205, 48, 57, 92, 127, 179, 97, 188, 217, 248,\n\t\t47, 130, 194, 168, 176, 190, 46, 208, 184, 0, 120, 59, 207,\n\t\t68, 232, 122, 191, 36, 6, 154, 71, 47, 124, 158, 126, 236,\n\t\t86, 207, 130, 67, 88, 205, 78, 141, 150, 171, 173, 118, 167,\n\t\t221, 192, 148, 117, 202, 108, 39, 166, 250, 49, 73, 98, 59,\n\t\t252, 136, 82, 135, 237, 116, 166, 241, 217, 116, 82, 196,\n\t\t240, 222, 212, 220, 92, 234, 202, 47, 196, 215, 167, 23, 22,\n\t\t146, 26, 81, 181, 15, 86, 141, 180, 170, 201, 160, 51, 54,\n\t\t95, 44, 105, 242, 29, 202, 114, 54, 49, 159, 94, 121, 64,\n\t\t94, 182, 160, 212, 48, 164, 250, 188, 156, 207, 81, 34, 128,\n\t\t68, 68, 194, 210, 240, 236, 89, 9, 224, 165, 230, 130, 84,\n\t\t34, 145, 82, 147, 68, 255, 250, 46, 43, 130, 70, 91, 249,\n\t\t106, 26, 172, 220, 218, 234, 131, 69, 129, 232, 210, 235,\n\t\t87, 95, 161, 90, 102, 50, 191, 60, 88, 21, 72, 86, 209, 200,\n\t\t188, 158, 55, 146, 18, 154, 197, 195, 124, 14, 254, 156, 219,\n\t\t247, 228, 16, 170, 152, 89, 3, 110, 198, 172, 90, 171, 238,\n\t\t118, 218, 177, 100, 216, 169, 49, 248, 51, 74, 239, 1, 128,\n\t\t79, 46, 126, 149, 210, 7, 62, 90, 253, 245, 63, 186, 255,\n\t\t254, 251, 255, 144, 38, 233, 189, 0, 248, 147, 133, 175, 208,\n\t\t36, 207, 125, 205, 253, 247, 223, 31, 203, 150, 72, 193, 175,\n\t\t135, 16, 221, 142, 30, 137, 203, 163, 76, 7, 190, 149, 222,\n\t\t174, 85, 185, 51, 188, 156, 73, 107, 180, 218, 105, 77, 239,\n\t\t205, 248, 182, 17, 47, 126, 107, 15, 106, 213, 246, 78, 145,\n\t\t236, 52, 247, 72, 167, 105, 50, 106, 90, 109, 145, 135, 81,\n\t\t143, 105, 12, 15, 82, 129, 159, 72, 98, 93, 47, 47, 205, 1,\n\t\t102, 214, 246, 70, 125, 59, 9, 217, 181, 90, 109, 45, 151,\n\t\t222, 222, 56, 191, 157, 129, 228, 250, 234, 226, 34, 81, 243,\n\t\t139, 75, 73, 37, 221, 106, 229, 215, 179, 5, 67, 55, 51, 185,\n\t\t82, 174, 213, 74, 171, 169, 165, 194, 149, 111, 21, 74, 149,\n\t\t121, 152, 175, 36, 138, 217, 87, 167, 47, 105, 186, 164, 44,\n\t\t102, 83, 201, 45, 51, 147, 76, 159, 199, 0, 75, 183, 2, 220,\n\t\t178, 12, 245, 76, 42, 157, 219, 196, 80, 186, 36, 146, 243,\n\t\t117, 53, 79, 160, 185, 85, 127, 9, 228, 151, 242, 201, 120,\n\t\t196, 95, 82, 223, 106, 2, 129, 53, 107, 190, 82, 153, 215,\n\t\t23, 115, 8, 33, 253, 234, 149, 171, 207, 193, 251, 225, 119,\n\t\t209, 16, 69, 232, 53, 232, 247, 209, 151, 33, 15, 203, 112,\n\t\t14, 218, 176, 7, 247, 193, 75, 161, 7, 35, 132, 42, 69, 56,\n\t\t115, 4, 196, 101, 238, 51, 111, 120, 13, 104, 223, 12, 187,\n\t\t60, 146, 84, 181, 86, 237, 204, 254, 183, 173, 246, 78, 219,\n\t\t138, 175, 205, 34, 236, 180, 155, 166, 213, 182, 248, 247,\n\t\t184, 157, 173, 78, 219, 218, 109, 55, 173, 102, 204, 234,\n\t\t226, 71, 154, 86, 219, 100, 103, 255, 227, 42, 138, 144, 171,\n\t\t181, 167, 219, 250, 52, 94, 82, 58, 152, 36, 94, 79, 237,\n\t\t14, 101, 69, 210, 169, 214, 120, 101, 252, 56, 2, 79, 41,\n\t\t255, 221, 157, 2, 165, 114, 169, 213, 169, 178, 106, 135,\n\t\t178, 234, 110, 123, 155, 78, 161, 248, 183, 69, 89, 149, 113,\n\t\t204, 183, 154, 237, 86, 123, 106, 114, 192, 76, 94, 88, 204,\n\t\t116, 171, 220, 29, 65, 150, 85, 107, 230, 236, 119, 203, 164,\n\t\t57, 14, 49, 203, 44, 155, 22, 157, 26, 41, 152, 211, 95, 102,\n\t\t90, 52, 206, 180, 170, 212, 50, 59, 109, 198, 99, 102, 48,\n\t\t222, 78, 110, 192, 70, 179, 86, 17, 170, 230, 180, 3, 86,\n\t\t179, 93, 219, 157, 214, 94, 132, 14, 183, 60, 46, 64, 214,\n\t\t108, 182, 45, 254, 9, 132, 127, 253, 225, 254, 117, 167, 152,\n\t\t5, 145, 145, 35, 25, 80, 132, 138, 190, 144, 95, 92, 133,\n\t\t213, 197, 252, 98, 162, 34, 40, 144, 33, 57, 67, 208, 211,\n\t\t186, 129, 13, 108, 128, 74, 20, 65, 98, 162, 172, 209, 140,\n\t\t160, 73, 134, 32, 96, 145, 2, 19, 24, 86, 85, 106, 42, 178,\n\t\t201, 64, 214, 100, 194, 64, 18, 168, 160, 75, 170, 152, 17,\n\t\t19, 178, 200, 36, 65, 33, 42, 240, 18, 204, 185, 52, 88, 21,\n\t\t75, 219, 216, 188, 88, 161, 133, 198, 42, 93, 36, 138, 142,\n\t\t147, 235, 55, 221, 49, 79, 82, 102, 50, 38, 219, 89, 81, 196,\n\t\t89, 129, 10, 89, 65, 6, 85, 146, 176, 1, 18, 209, 176, 12,\n\t\t152, 97, 102, 80, 57, 69, 152, 166, 0, 77, 40, 68, 148, 21,\n\t\t129, 40, 20, 19, 29, 175, 102, 74, 197, 185, 185, 2, 172,\n\t\t190, 93, 204, 98, 160, 170, 181, 72, 242, 119, 220, 180, 110,\n\t\t16, 67, 198, 160, 19, 76, 21, 34, 168, 50, 37, 170, 70, 65,\n\t\t209, 24, 73, 41, 20, 242, 18, 134, 184, 93, 2, 3, 131, 48,\n\t\t73, 5, 89, 200, 16, 38, 102, 113, 167, 188, 141, 161, 177,\n\t\t49, 150, 153, 65, 5, 41, 167, 43, 3, 133, 37, 146, 43, 154,\n\t\t172, 38, 235, 149, 74, 163, 64, 43, 141, 197, 215, 102, 171,\n\t\t80, 201, 100, 214, 146, 139, 247, 148, 183, 75, 229, 237,\n\t\t210, 35, 9, 44, 231, 170, 186, 170, 72, 102, 177, 172, 41,\n\t\t122, 78, 34, 146, 33, 127, 77, 169, 52, 115, 210, 98, 97,\n\t\t149, 228, 228, 197, 69, 57, 71, 86, 11, 139, 82, 174, 89,\n\t\t81, 168, 185, 156, 146, 5, 89, 208, 20, 89, 82, 84, 89, 81,\n\t\t37, 29, 36, 138, 37, 145, 240, 189, 94, 172, 36, 150, 150,\n\t\t18, 160, 240, 125, 95, 0, 44, 74, 152, 74, 160, 75, 170, 34,\n\t\t171, 138, 36, 43, 154, 32, 11, 137, 242, 50, 182, 74, 186,\n\t\t128, 43, 181, 159, 182, 54, 55, 18, 115, 155, 231, 96, 73,\n\t\t201, 23, 217, 74, 182, 188, 160, 26, 34, 6, 76, 248, 161,\n\t\t56, 42, 96, 69, 0, 96, 18, 96, 3, 19, 130, 101, 10, 32, 41,\n\t\t64, 177, 72, 40, 8, 24, 40, 102, 132, 17, 89, 20, 68, 9, 51,\n\t\t108, 192, 16, 44, 69, 77, 67, 82, 77, 152, 137, 169, 231,\n\t\t57, 156, 52, 22, 75, 217, 21, 86, 204, 43, 12, 12, 204, 176,\n\t\t36, 10, 162, 76, 24, 143, 205, 142, 9, 166, 68, 196, 20, 20,\n\t\t9, 128, 202, 113, 13, 6, 6, 137, 1, 8, 10, 22, 40, 201, 211,\n\t\t234, 170, 190, 86, 249, 45, 33, 91, 89, 214, 65, 93, 95, 29,\n\t\t74, 231, 146, 41, 131, 137, 181, 140, 149, 248, 57, 43, 177,\n\t\t209, 152, 75, 108, 252, 217, 188, 44, 171, 0, 186, 44, 36,\n\t\t19, 175, 5, 115, 105, 217, 140, 47, 185, 76, 93, 74, 158,\n\t\t75, 54, 20, 1, 39, 31, 83, 86, 215, 53, 156, 88, 170, 101,\n\t\t249, 247, 247, 175, 99, 128, 143, 160, 52, 242, 208, 199,\n\t\t208, 63, 70, 255, 50, 166, 158, 211, 131, 159, 140, 86, 59,\n\t\t60, 42, 76, 167, 137, 167, 1, 90, 249, 57, 219, 28, 55, 20,\n\t\t214, 73, 171, 186, 115, 205, 183, 116, 107, 183, 221, 170,\n\t\t114, 155, 249, 114, 137, 150, 121, 148, 10, 126, 220, 155,\n\t\t81, 78, 89, 226, 69, 146, 229, 94, 71, 24, 143, 128, 83, 46,\n\t\t197, 100, 168, 218, 226, 134, 163, 148, 215, 211, 105, 115,\n\t\t235, 91, 86, 210, 113, 181, 86, 53, 128, 22, 241, 244, 133,\n\t\t82, 153, 114, 218, 164, 115, 67, 25, 203, 108, 215, 154, 150,\n\t\t201, 13, 237, 170, 155, 208, 224, 59, 7, 69, 104, 182, 59,\n\t\t237, 34, 240, 8, 74, 181, 173, 221, 237, 120, 53, 151, 118,\n\t\t119, 218, 112, 65, 20, 176, 32, 171, 140, 10, 4, 11, 134,\n\t\t42, 18, 1, 62, 252, 175, 223, 179, 190, 81, 34, 0, 154, 148,\n\t\t72, 0, 150, 226, 225, 53, 48, 81, 177, 130, 1, 24, 176, 4,\n\t\t17, 12, 34, 232, 241, 76, 11, 203, 122, 178, 64, 69, 73, 96,\n\t\t88, 146, 84, 149, 73, 32, 99, 81, 20, 24, 134, 20, 35, 41,\n\t\t85, 20, 179, 86, 58, 1, 127, 36, 148, 74, 98, 138, 27, 206,\n\t\t136, 84, 52, 82, 204, 90, 3, 69, 74, 24, 114, 91, 81, 137,\n\t\t168, 172, 22, 22, 147, 68, 102, 42, 64, 226, 222, 249, 213,\n\t\t132, 85, 182, 136, 184, 245, 178, 230, 195, 111, 251, 147,\n\t\t148, 64, 100, 185, 40, 9, 18, 33, 162, 68, 136, 140, 5, 153,\n\t\t165, 239, 212, 50, 82, 90, 147, 88, 26, 200, 50, 128, 188,\n\t\t201, 119, 112, 152, 8, 64, 137, 42, 49, 1, 139, 16, 190, 231,\n\t\t242, 125, 183, 40, 58, 16, 192, 88, 36, 160, 26, 83, 159,\n\t\t199, 144, 19, 196, 132, 144, 96, 66, 18, 32, 35, 96, 34, 136,\n\t\t20, 4, 17, 230, 101, 153, 17, 76, 12, 42, 17, 172, 51, 73,\n\t\t193, 18, 197, 132, 10, 32, 224, 28, 86, 106, 231, 46, 247,\n\t\t205, 21, 41, 43, 1, 198, 50, 211, 178, 233, 234, 10, 179,\n\t\t148, 233, 201, 210, 106, 93, 212, 19, 134, 72, 147, 185, 120,\n\t\t240, 44, 195, 156, 199, 66, 66, 77, 109, 111, 26, 249, 149,\n\t\t207, 75, 34, 198, 88, 38, 162, 32, 66, 130, 114, 223, 127,\n\t\t107, 32, 48, 129, 50, 140, 5, 170, 136, 88, 228, 62, 254,\n\t\t229, 171, 223, 132, 239, 242, 189, 11, 138, 20, 164, 163,\n\t\t20, 50, 209, 60, 42, 34, 148, 233, 176, 114, 197, 170, 49,\n\t\t139, 236, 220, 12, 75, 120, 135, 100, 172, 242, 38, 136, 55,\n\t\t3, 19, 201, 38, 44, 190, 144, 62, 14, 111, 96, 79, 255, 242,\n\t\t171, 255, 228, 241, 196, 59, 110, 122, 88, 255, 169, 111,\n\t\t62, 243, 178, 159, 162, 112, 229, 143, 241, 235, 222, 2, 171,\n\t\t239, 220, 223, 128, 226, 229, 55, 188, 253, 77, 191, 248,\n\t\t59, 127, 14, 84, 254, 192, 109, 47, 147, 175, 252, 21, 188,\n\t\t233, 232, 137, 116, 117, 75, 255, 197, 212, 149, 111, 125,\n\t\t241, 69, 8, 163, 220, 213, 231, 224, 147, 240, 57, 148, 137,\n\t\t235, 171, 100, 41, 203, 157, 5, 253, 226, 2, 104, 211, 20,\n\t\t179, 69, 152, 57, 146, 128, 79, 60, 114, 73, 162, 175, 162,\n\t\t210, 165, 71, 142, 127, 237, 248, 202, 183, 23, 215, 214,\n\t\t23, 55, 118, 54, 254, 226, 166, 39, 50, 251, 84, 146, 232,\n\t\t126, 230, 137, 155, 30, 61, 62, 126, 116, 190, 44, 73, 229,\n\t\t249, 229, 74, 5, 9, 87, 191, 143, 138, 248, 103, 160, 139,\n\t\t14, 209, 49, 122, 11, 122, 27, 66, 192, 247, 197, 179, 44,\n\t\t198, 223, 169, 159, 115, 43, 94, 40, 229, 82, 204, 67, 24,\n\t\t181, 202, 13, 33, 86, 87, 120, 132, 7, 126, 134, 123, 122,\n\t\t142, 122, 22, 6, 107, 15, 166, 103, 195, 185, 118, 185, 219,\n\t\t217, 139, 153, 10, 211, 113, 237, 204, 47, 239, 30, 177, 204,\n\t\t37, 200, 154, 237, 106, 109, 171, 92, 210, 49, 15, 142, 90,\n\t\t62, 139, 46, 213, 222, 105, 210, 230, 110, 9, 254, 13, 60,\n\t\t94, 77, 167, 132, 68, 166, 180, 181, 164, 64, 103, 33, 159,\n\t\t23, 4, 66, 50, 187, 5, 165, 144, 76, 201, 88, 176, 182, 177,\n\t\t38, 39, 231, 146, 115, 22, 198, 13, 185, 82, 77, 183, 219,\n\t\t57, 229, 92, 85, 54, 50, 115, 74, 146, 123, 114, 36, 32, 106,\n\t\t9, 73, 50, 230, 193, 76, 172, 102, 205, 36, 165, 243, 171,\n\t\t230, 206, 130, 38, 202, 250, 252, 189, 171, 119, 236, 236,\n\t\t164, 110, 190, 231, 198, 198, 106, 58, 15, 76, 87, 104, 85,\n\t\t53, 192, 80, 153, 198, 12, 21, 152, 101, 193, 99, 144, 48,\n\t\t149, 27, 99, 60, 38, 217, 220, 28, 20, 192, 192, 73, 110,\n\t\t84, 131, 177, 42, 207, 45, 11, 243, 137, 148, 180, 88, 84,\n\t\t150, 55, 77, 34, 223, 89, 205, 165, 169, 150, 169, 99, 144,\n\t\t185, 151, 198, 152, 172, 170, 132, 88, 153, 188, 33, 129,\n\t\t170, 111, 229, 210, 243, 42, 22, 214, 82, 153, 213, 242, 222,\n\t\t150, 185, 192, 8, 198, 115, 187, 243, 217, 210, 38, 80, 37,\n\t\t145, 78, 42, 160, 26, 76, 147, 148, 100, 33, 137, 16, 215,\n\t\t3, 190, 112, 157, 191, 188, 117, 180, 141, 246, 208, 189,\n\t\t63, 176, 80, 95, 165, 241, 108, 55, 128, 93, 139, 104, 30,\n\t\t143, 187, 101, 90, 220, 185, 31, 101, 102, 118, 198, 237,\n\t\t99, 114, 87, 211, 161, 198, 204, 206, 30, 190, 57, 22, 44,\n\t\t98, 250, 101, 181, 205, 153, 53, 251, 78, 130, 89, 121, 157,\n\t\t89, 223, 209, 211, 146, 33, 39, 210, 146, 81, 73, 108, 204,\n\t\t213, 106, 115, 27, 137, 228, 23, 45, 166, 231, 45, 150, 168,\n\t\t84, 132, 134, 240, 200, 134, 181, 217, 196, 153, 121, 169,\n\t\t33, 84, 178, 21, 210, 220, 180, 54, 206, 194, 159, 220, 108,\n\t\t206, 199, 165, 36, 190, 148, 73, 200, 186, 204, 47, 164, 89,\n\t\t88, 91, 248, 233, 133, 181, 66, 83, 223, 120, 111, 34, 46,\n\t\t100, 222, 188, 115, 117, 23, 54, 55, 179, 235, 150, 174, 103,\n\t\t69, 7, 118, 87, 37, 51, 167, 91, 235, 185, 45, 132, 40, 247,\n\t\t59, 245, 26, 248, 48, 210, 81, 13, 93, 66, 119, 161, 23, 161,\n\t\t67, 132, 58, 173, 157, 156, 206, 145, 124, 39, 151, 53, 219,\n\t\t181, 61, 176, 114, 89, 157, 177, 134, 212, 90, 105, 85, 117,\n\t\t204, 184, 19, 145, 61, 145, 127, 55, 202, 101, 105, 45, 87,\n\t\t238, 20, 97, 15, 183, 118, 99, 13, 194, 218, 109, 91, 185,\n\t\t42, 205, 209, 34, 206, 233, 80, 107, 153, 237, 218, 110, 3,\n\t\t15, 86, 164, 98, 57, 191, 162, 235, 175, 188, 247, 203, 143,\n\t\t83, 41, 155, 88, 73, 157, 207, 206, 207, 155, 231, 50, 75,\n\t\t122, 86, 162, 176, 95, 123, 249, 163, 143, 85, 140, 220, 246,\n\t\t249, 115, 165, 90, 221, 202, 73, 95, 86, 151, 87, 231, 55,\n\t\t243, 43, 43, 68, 76, 40, 18, 147, 53, 38, 60, 120, 41, 151,\n\t\t40, 67, 42, 151, 132, 206, 130, 177, 10, 201, 76, 234, 157,\n\t\t175, 126, 135, 40, 205, 207, 15, 14, 116, 149, 252, 233, 154,\n\t\t112, 254, 235, 169, 226, 220, 92, 50, 167, 102, 101, 77, 85,\n\t\t178, 106, 46, 57, 55, 87, 76, 125, 141, 10, 198, 198, 202,\n\t\t207, 206, 175, 45, 46, 153, 105, 35, 147, 55, 11, 165, 215,\n\t\t81, 42, 214, 74, 59, 101, 233, 206, 87, 2, 128, 60, 151, 73,\n\t\t91, 10, 198, 160, 23, 178, 169, 130, 14, 134, 156, 80, 230,\n\t\t82, 75, 217, 84, 81, 199, 41, 217, 144, 205, 169, 78, 181,\n\t\t128, 150, 113, 5, 94, 133, 22, 80, 11, 221, 61, 141, 120,\n\t\t221, 218, 163, 13, 40, 87, 117, 168, 113, 11, 206, 88, 31,\n\t\t101, 58, 101, 157, 230, 206, 170, 85, 182, 246, 160, 99, 50,\n\t\t93, 168, 172, 144, 149, 213, 206, 30, 255, 8, 199, 217, 25,\n\t\t252, 193, 244, 64, 246, 204, 185, 43, 219, 44, 10, 122, 70,\n\t\t148, 200, 130, 201, 94, 159, 152, 175, 44, 94, 172, 61, 182,\n\t\t180, 187, 184, 11, 8, 255, 211, 98, 101, 191, 180, 0, 160,\n\t\t164, 172, 149, 43, 223, 134, 223, 191, 227, 202, 99, 240,\n\t\t11, 34, 136, 138, 8, 84, 200, 20, 224, 225, 55, 223, 253,\n\t\t135, 220, 89, 191, 40, 136, 2, 255, 246, 195, 29, 242, 11,\n\t\t88, 74, 183, 68, 37, 153, 40, 100, 206, 39, 191, 3, 115, 175,\n\t\t72, 149, 49, 136, 220, 179, 237, 135, 175, 60, 247, 43, 24,\n\t\t179, 76, 50, 35, 138, 88, 53, 23, 141, 31, 142, 183, 249,\n\t\t48, 122, 12, 189, 11, 161, 10, 15, 46, 199, 217, 55, 71, 223,\n\t\t77, 152, 69, 86, 234, 76, 245, 157, 106, 167, 193, 125, 62,\n\t\t119, 246, 96, 199, 138, 197, 249, 34, 89, 226, 157, 37, 172,\n\t\t196, 125, 199, 209, 237, 166, 201, 227, 157, 152, 179, 32,\n\t\t118, 205, 76, 3, 184, 165, 124, 187, 54, 165, 88, 177, 150,\n\t\t86, 170, 150, 206, 42, 98, 212, 162, 22, 119, 60, 199, 163,\n\t\t124, 159, 185, 34, 237, 236, 97, 120, 107, 178, 176, 106,\n\t\t17, 150, 219, 74, 11, 24, 136, 192, 77, 28, 136, 64, 52, 75,\n\t\t81, 169, 40, 8, 44, 193, 54, 177, 168, 138, 162, 160, 10,\n\t\t138, 197, 152, 202, 98, 142, 37, 0, 54, 18, 18, 150, 152,\n\t\t12, 32, 235, 162, 8, 4, 211, 180, 186, 144, 214, 200, 203,\n\t\t249, 226, 185, 13, 27, 170, 185, 196, 68, 178, 156, 142, 203,\n\t\t160, 134, 76, 1, 83, 81, 146, 36, 97, 49, 131, 37, 133, 73,\n\t\t70, 5, 52, 73, 164, 4, 235, 115, 89, 37, 187, 57, 47, 177,\n\t\t210, 98, 54, 197, 100, 97, 32, 164, 178, 76, 0, 17, 64, 22,\n\t\t24, 37, 60, 148, 0, 214, 20, 162, 169, 84, 23, 24, 75, 46,\n\t\t170, 173, 21, 44, 207, 73, 9, 16, 68, 69, 6, 75, 37, 192,\n\t\t228, 152, 59, 207, 215, 212, 172, 170, 99, 150, 213, 181,\n\t\t133, 36, 72, 52, 149, 253, 39, 156, 26, 92, 249, 172, 146,\n\t\t136, 153, 237, 230, 242, 252, 66, 178, 174, 171, 66, 86, 0,\n\t\t76, 104, 66, 198, 57, 76, 132, 76, 110, 174, 180, 173, 45,\n\t\t154, 58, 73, 177, 132, 162, 80, 44, 106, 41, 93, 0, 89, 141,\n\t\t231, 141, 92, 253, 6, 124, 150, 159, 211, 220, 70, 247, 241,\n\t\t221, 234, 153, 102, 202, 21, 210, 90, 131, 148, 75, 250, 44,\n\t\t118, 5, 183, 125, 171, 198, 218, 24, 166, 204, 236, 108, 21,\n\t\t33, 103, 206, 252, 180, 76, 35, 183, 239, 52, 139, 194, 55,\n\t\t43, 146, 86, 46, 206, 153, 50, 251, 244, 66, 86, 41, 190,\n\t\t88, 166, 169, 164, 70, 85, 73, 22, 37, 34, 1, 92, 150, 245,\n\t\t205, 106, 173, 113, 94, 145, 215, 215, 179, 165, 28, 94, 44,\n\t\t222, 214, 151, 165, 244, 165, 237, 206, 13, 55, 116, 182,\n\t\t47, 165, 213, 203, 233, 213, 37, 67, 207, 167, 171, 107, 247,\n\t\t53, 42, 245, 164, 158, 205, 172, 174, 158, 168, 205, 252,\n\t\t189, 31, 205, 104, 38, 35, 68, 162, 26, 77, 18, 248, 183,\n\t\t115, 149, 75, 162, 176, 115, 225, 252, 250, 165, 100, 169,\n\t\t113, 123, 229, 158, 95, 205, 100, 112, 243, 161, 189, 189,\n\t\t135, 154, 203, 95, 169, 172, 226, 76, 225, 206, 23, 35, 132,\n\t\t228, 217, 185, 206, 223, 69, 55, 163, 23, 240, 47, 20, 191,\n\t\t132, 62, 134, 126, 3, 253, 54, 250, 135, 177, 54, 138, 121,\n\t\t28, 66, 102, 90, 83, 191, 228, 58, 112, 252, 156, 114, 186,\n\t\t106, 173, 196, 221, 219, 86, 219, 83, 199, 235, 214, 153,\n\t\t11, 118, 147, 171, 151, 140, 178, 189, 152, 45, 242, 120,\n\t\t30, 157, 106, 141, 118, 204, 233, 161, 79, 214, 158, 218,\n\t\t104, 113, 54, 220, 192, 229, 230, 217, 233, 81, 150, 229,\n\t\t167, 247, 104, 142, 227, 127, 109, 86, 24, 119, 158, 107,\n\t\t54, 247, 232, 182, 142, 203, 102, 166, 129, 99, 201, 147,\n\t\t181, 99, 228, 102, 77, 107, 170, 12, 154, 205, 78, 213, 130,\n\t\t207, 229, 138, 26, 205, 191, 122, 169, 82, 155, 35, 84, 16,\n\t\t22, 10, 203, 187, 2, 75, 238, 150, 83, 84, 146, 228, 170,\n\t\t41, 188, 52, 47, 232, 149, 11, 216, 76, 234, 6, 204, 169,\n\t\t201, 140, 185, 184, 178, 187, 190, 33, 10, 130, 50, 191, 82,\n\t\t144, 229, 225, 74, 69, 6, 188, 137, 63, 147, 52, 83, 11, 170,\n\t\t98, 124, 113, 30, 147, 37, 85, 77, 189, 117, 123, 117, 1,\n\t\t223, 209, 195, 217, 236, 165, 11, 44, 151, 0, 146, 152, 147,\n\t\t19, 234, 238, 173, 91, 43, 37, 81, 95, 210, 179, 128, 153,\n\t\t146, 205, 144, 69, 179, 116, 199, 173, 84, 81, 245, 90, 131,\n\t\t169, 170, 44, 49, 145, 96, 208, 150, 50, 210, 170, 144, 44,\n\t\t72, 52, 161, 50, 88, 189, 155, 73, 57, 146, 203, 225, 130,\n\t\t46, 99, 160, 27, 171, 213, 223, 254, 119, 137, 197, 185, 28,\n\t\t171, 136, 27, 243, 119, 103, 9, 17, 22, 55, 115, 130, 161,\n\t\t231, 11, 146, 96, 36, 151, 170, 151, 154, 231, 21, 70, 100,\n\t\t92, 109, 96, 60, 119, 113, 62, 129, 177, 185, 176, 39, 166,\n\t\t239, 88, 102, 250, 234, 118, 234, 156, 150, 184, 140, 53,\n\t\t77, 42, 20, 54, 220, 121, 66, 140, 116, 86, 251, 8, 36, 211,\n\t\t153, 76, 90, 250, 236, 114, 107, 189, 86, 75, 75, 9, 34, 168,\n\t\t89, 195, 146, 69, 51, 149, 74, 46, 16, 146, 125, 240, 149,\n\t\t152, 222, 251, 96, 97, 9, 235, 203, 73, 2, 23, 47, 110, 164,\n\t\t107, 15, 8, 82, 210, 104, 84, 185, 187, 102, 30, 155, 68,\n\t\t201, 128, 78, 205, 69, 144, 211, 197, 140, 37, 106, 128, 119,\n\t\t32, 243, 243, 11, 53, 5, 18, 233, 172, 117, 45, 30, 32, 223,\n\t\t251, 210, 80, 126, 26, 149, 189, 194, 163, 66, 183, 98, 204,\n\t\t175, 149, 227, 4, 114, 89, 29, 151, 58, 215, 239, 136, 173,\n\t\t52, 77, 182, 91, 107, 181, 91, 55, 66, 131, 108, 64, 234,\n\t\t34, 105, 55, 99, 146, 14, 171, 106, 70, 22, 31, 126, 216,\n\t\t200, 50, 220, 188, 239, 190, 100, 70, 144, 101, 93, 252, 131,\n\t\t243, 75, 87, 190, 186, 116, 254, 252, 18, 156, 91, 58, 239,\n\t\t109, 87, 4, 37, 185, 152, 249, 217, 76, 195, 90, 208, 12,\n\t\t73, 22, 90, 111, 49, 50, 20, 30, 150, 147, 202, 29, 119, 107,\n\t\t186, 172, 26, 76, 120, 227, 15, 158, 63, 255, 159, 111, 80,\n\t\t32, 185, 38, 208, 76, 194, 144, 174, 252, 21, 96, 12, 201,\n\t\t120, 45, 107, 87, 191, 9, 255, 0, 62, 132, 114, 104, 3, 221,\n\t\t128, 80, 133, 7, 225, 173, 222, 12, 237, 230, 18, 76, 189,\n\t\t93, 45, 129, 89, 139, 149, 150, 31, 205, 183, 42, 103, 183,\n\t\t220, 99, 22, 124, 242, 247, 136, 68, 126, 143, 177, 88, 236,\n\t\t127, 154, 72, 228, 105, 129, 9, 155, 140, 49, 246, 60, 249,\n\t\t87, 222, 123, 45, 59, 78, 110, 183, 49, 182, 5, 193, 194,\n\t\t248, 118, 254, 99, 9, 111, 18, 72, 23, 227, 46, 225, 121,\n\t\t0, 183, 99, 252, 56, 33, 143, 3, 76, 175, 72, 64, 57, 132,\n\t\t224, 63, 194, 83, 124, 135, 191, 140, 54, 174, 237, 54, 198,\n\t\t67, 158, 90, 201, 149, 99, 193, 146, 112, 183, 40, 173, 220,\n\t\t78, 211, 204, 149, 183, 119, 171, 229, 86, 17, 114, 229, 221,\n\t\t106, 25, 158, 75, 231, 243, 233, 119, 191, 251, 202, 83, 27,\n\t\t249, 244, 198, 66, 229, 22, 184, 233, 101, 27, 55, 159, 183,\n\t\t223, 186, 49, 126, 8, 158, 202, 167, 175, 124, 53, 157, 223,\n\t\t128, 115, 183, 220, 146, 206, 95, 121, 174, 50, 15, 239, 129,\n\t\t151, 238, 213, 247, 158, 130, 103, 236, 135, 198, 156, 111,\n\t\t125, 3, 94, 7, 31, 65, 243, 232, 4, 189, 30, 161, 140, 89,\n\t\t62, 71, 117, 40, 177, 114, 39, 71, 179, 58, 44, 138, 153,\n\t\t42, 55, 107, 212, 49, 223, 238, 108, 183, 182, 119, 27, 80,\n\t\t219, 106, 208, 154, 142, 89, 117, 170, 86, 214, 118, 219,\n\t\t157, 139, 66, 187, 57, 245, 69, 186, 203, 15, 67, 155, 75,\n\t\t208, 44, 82, 238, 86, 67, 103, 177, 192, 223, 225, 246, 146,\n\t\t205, 90, 3, 78, 193, 146, 51, 90, 130, 73, 2, 55, 91, 26,\n\t\t1, 192, 131, 106, 169, 144, 160, 42, 24, 114, 78, 201, 44,\n\t\t80, 43, 35, 75, 9, 85, 147, 40, 16, 41, 171, 73, 75, 237,\n\t\t108, 70, 86, 64, 87, 21, 75, 79, 202, 50, 21, 5, 130, 41,\n\t\t102, 249, 220, 178, 120, 43, 24, 44, 37, 235, 146, 4, 138,\n\t\t32, 2, 86, 245, 84, 42, 101, 168, 2, 73, 175, 221, 77, 4,\n\t\t121, 73, 20, 49, 89, 131, 27, 77, 0, 240, 1, 8, 17, 5, 137,\n\t\t37, 180, 236, 149, 207, 47, 110, 67, 158, 2, 97, 146, 150,\n\t\t88, 200, 72, 153, 185, 152, 41, 138, 76, 209, 153, 150, 47,\n\t\t16, 32, 153, 172, 177, 209, 72, 38, 210, 83, 59, 61, 154,\n\t\t89, 179, 12, 170, 42, 68, 156, 87, 9, 136, 130, 172, 26, 74,\n\t\t251, 248, 214, 76, 209, 76, 41, 140, 64, 230, 223, 115, 147,\n\t\t18, 150, 20, 145, 128, 216, 213, 111, 192, 95, 194, 179, 104,\n\t\t29, 221, 141, 78, 209, 211, 8, 101, 218, 59, 177, 102, 60,\n\t\t251, 52, 210, 226, 238, 243, 102, 94, 148, 102, 55, 113, 62,\n\t\t255, 168, 18, 43, 32, 59, 205, 142, 217, 236, 20, 161, 83,\n\t\t132, 44, 101, 116, 153, 75, 11, 102, 187, 99, 54, 105, 73,\n\t\t23, 153, 14, 69, 178, 179, 7, 45, 179, 147, 53, 173, 139,\n\t\t176, 71, 118, 171, 181, 6, 229, 135, 144, 74, 172, 17, 11,\n\t\t210, 181, 92, 182, 86, 218, 110, 177, 61, 232, 220, 189, 252,\n\t\t62, 247, 193, 228, 246, 82, 42, 87, 44, 172, 23, 116, 75,\n\t\t215, 45, 189, 176, 94, 40, 230, 82, 75, 219, 239, 98, 5, 29,\n\t\t160, 156, 74, 222, 158, 146, 87, 85, 32, 170, 122, 233, 202,\n\t\t247, 110, 212, 21, 66, 212, 85, 57, 117, 187, 145, 75, 27,\n\t\t138, 38, 242, 128, 12, 98, 66, 145, 139, 229, 23, 190, 176,\n\t\t92, 100, 146, 66, 25, 38, 4, 171, 162, 166, 24, 233, 156,\n\t\t150, 150, 205, 243, 166, 156, 126, 193, 121, 169, 96, 89,\n\t\t5, 50, 175, 193, 7, 9, 145, 47, 40, 185, 236, 82, 49, 155,\n\t\t45, 22, 179, 137, 184, 210, 68, 12, 101, 139, 75, 217, 156,\n\t\t114, 225, 103, 180, 84, 161, 80, 72, 38, 133, 204, 11, 30,\n\t\t127, 64, 213, 117, 253, 213, 251, 69, 193, 72, 21, 242, 82,\n\t\t38, 89, 74, 175, 75, 73, 51, 33, 19, 128, 74, 62, 145, 200,\n\t\t87, 98, 38, 174, 36, 210, 154, 180, 158, 46, 37, 51, 18, 200,\n\t\t10, 33, 138, 188, 185, 174, 67, 30, 32, 15, 116, 81, 69, 8,\n\t\t25, 87, 255, 250, 234, 55, 240, 83, 92, 191, 53, 80, 30, 221,\n\t\t137, 14, 208, 51, 232, 221, 232, 55, 209, 31, 131, 2, 38,\n\t\t108, 193, 253, 112, 8, 62, 66, 157, 114, 187, 185, 211, 230,\n\t\t198, 93, 220, 171, 46, 107, 91, 57, 90, 139, 135, 190, 146,\n\t\t141, 209, 185, 166, 227, 6, 174, 209, 6, 110, 119, 170, 123,\n\t\t120, 167, 105, 242, 157, 87, 106, 181, 139, 88, 220, 173,\n\t\t85, 91, 109, 211, 106, 182, 182, 218, 59, 173, 45, 174, 46,\n\t\t90, 83, 59, 177, 170, 1, 217, 237, 88, 220, 42, 177, 236,\n\t\t118, 118, 219, 50, 183, 119, 182, 98, 81, 192, 140, 69, 120,\n\t\t30, 183, 138, 91, 84, 53, 160, 179, 187, 1, 165, 2, 100, 47,\n\t\t65, 179, 213, 225, 167, 188, 226, 50, 98, 57, 173, 85, 219,\n\t\t45, 211, 114, 169, 181, 211, 108, 109, 221, 8, 13, 176, 154,\n\t\t211, 24, 86, 59, 77, 235, 18, 212, 182, 218, 219, 113, 141,\n\t\t92, 85, 154, 213, 185, 187, 93, 202, 177, 236, 142, 25, 23,\n\t\t185, 27, 11, 137, 173, 78, 147, 219, 235, 243, 200, 196, 151,\n\t\t96, 230, 220, 149, 109, 209, 109, 186, 195, 253, 205, 119,\n\t\t118, 154, 45, 139, 87, 58, 59, 50, 86, 101, 173, 31, 180,\n\t\t231, 166, 184, 20, 171, 217, 106, 119, 90, 91, 214, 38, 208,\n\t\t114, 105, 119, 167, 185, 221, 180, 204, 86, 187, 213, 46,\n\t\t243, 237, 166, 248, 165, 237, 179, 102, 111, 103, 127, 180,\n\t\t217, 173, 27, 113, 3, 154, 86, 249, 47, 231, 97, 238, 173,\n\t\t186, 174, 18, 144, 132, 111, 83, 195, 160, 4, 254, 194, 185,\n\t\t69, 169, 182, 151, 148, 242, 122, 125, 173, 36, 149, 47, 46,\n\t\t201, 139, 5, 93, 46, 94, 40, 229, 47, 26, 165, 77, 41, 169,\n\t\t235, 9, 85, 145, 133, 242, 157, 23, 74, 223, 255, 110, 74,\n\t\t135, 20, 195, 24, 64, 94, 78, 39, 100, 85, 2, 192, 146, 145,\n\t\t91, 214, 99, 197, 84, 144, 68, 74, 77, 131, 37, 242, 4, 212,\n\t\t85, 80, 0, 20, 184, 192, 84, 157, 81, 198, 146, 9, 17, 8,\n\t\t72, 82, 178, 2, 64, 74, 102, 58, 33, 201, 18, 63, 101, 42,\n\t\t105, 178, 154, 210, 21, 69, 142, 225, 135, 64, 19, 65, 5,\n\t\t2, 96, 40, 34, 145, 0, 99, 73, 198, 152, 200, 211, 99, 211,\n\t\t178, 44, 9, 88, 214, 112, 155, 102, 178, 162, 32, 208, 76,\n\t\t78, 16, 206, 25, 108, 90, 145, 32, 202, 128, 97, 19, 99, 129,\n\t\t165, 146, 64, 185, 207, 217, 164, 150, 44, 72, 12, 218, 98,\n\t\t58, 39, 224, 226, 180, 5, 44, 85, 1, 88, 157, 131, 249, 127,\n\t\t166, 67, 46, 171, 9, 130, 162, 204, 137, 36, 69, 4, 34, 128,\n\t\t48, 127, 219, 163, 122, 102, 65, 53, 172, 21, 29, 146, 101,\n\t\t139, 229, 183, 111, 184, 152, 42, 238, 53, 151, 11, 217, 50,\n\t\t22, 168, 36, 171, 26, 77, 42, 229, 155, 239, 208, 68, 74,\n\t\t24, 8, 192, 0, 24, 213, 53, 81, 20, 24, 5, 144, 128, 221,\n\t\t196, 205, 211, 48, 22, 100, 172, 200, 32, 139, 50, 3, 40,\n\t\t137, 76, 201, 1, 60, 8, 208, 100, 50, 211, 117, 38, 145, 248,\n\t\t33, 146, 2, 34, 82, 214, 76, 243, 194, 196, 184, 44, 81, 145,\n\t\t174, 43, 235, 34, 72, 98, 12, 80, 133, 234, 32, 193, 46, 137,\n\t\t107, 195, 132, 16, 133, 182, 65, 74, 167, 53, 45, 157, 214,\n\t\t10, 60, 220, 198, 5, 128, 69, 141, 76, 45, 243, 90, 12, 112,\n\t\t13, 0, 68, 2, 162, 40, 101, 139, 4, 214, 146, 105, 42, 66,\n\t\t225, 172, 86, 110, 250, 38, 233, 179, 239, 75, 104, 25, 35,\n\t\t120, 21, 90, 70, 23, 227, 21, 24, 107, 50, 177, 146, 199,\n\t\t55, 129, 178, 215, 160, 105, 110, 187, 26, 107, 124, 59, 205,\n\t\t61, 184, 9, 118, 171, 27, 208, 222, 173, 113, 111, 96, 49,\n\t\t185, 252, 106, 176, 126, 233, 210, 250, 155, 146, 115, 115,\n\t\t201, 167, 179, 89, 126, 243, 201, 148, 101, 165, 126, 67,\n\t\t83, 213, 187, 211, 69, 114, 171, 40, 139, 170, 116, 100, 24,\n\t\t207, 172, 52, 114, 171, 230, 251, 46, 61, 114, 201, 42, 89,\n\t\t107, 211, 36, 155, 61, 209, 54, 115, 162, 76, 79, 36, 45,\n\t\t213, 72, 109, 174, 60, 107, 86, 114, 211, 246, 73, 87, 191,\n\t\t0, 223, 229, 251, 21, 79, 253, 96, 151, 162, 178, 7, 181,\n\t\t221, 42, 59, 7, 58, 101, 91, 13, 194, 93, 100, 20, 69, 30,\n\t\t166, 143, 7, 170, 227, 182, 25, 86, 172, 159, 109, 66, 53,\n\t\t86, 222, 176, 53, 213, 17, 98, 170, 222, 105, 87, 89, 137,\n\t\t90, 83, 127, 204, 184, 179, 27, 83, 235, 61, 220, 106, 87,\n\t\t89, 54, 22, 155, 107, 123, 226, 78, 59, 103, 210, 92, 214,\n\t\t124, 255, 116, 43, 227, 181, 138, 2, 249, 44, 38, 170, 108,\n\t\t36, 12, 93, 167, 70, 194, 202, 46, 36, 146, 52, 67, 100, 34,\n\t\t98, 12, 108, 33, 131, 5, 44, 24, 89, 65, 72, 231, 139, 219,\n\t\t2, 153, 75, 24, 9, 53, 167, 36, 211, 162, 34, 41, 233, 148,\n\t\t166, 96, 17, 168, 166, 38, 229, 36, 88, 233, 218, 74, 202,\n\t\t138, 177, 34, 189, 148, 86, 160, 72, 40, 136, 201, 130, 64,\n\t\t36, 166, 25, 138, 6, 76, 157, 109, 125, 0, 24, 82, 34, 9,\n\t\t152, 72, 74, 50, 91, 72, 233, 138, 38, 136, 114, 226, 92,\n\t\t158, 200, 132, 9, 84, 36, 22, 21, 85, 96, 162, 150, 36, 90,\n\t\t162, 200, 148, 249, 57, 115, 81, 55, 146, 9, 145, 168, 41,\n\t\t97, 101, 123, 119, 87, 151, 177, 40, 210, 2, 24, 170, 158,\n\t\t2, 168, 101, 59, 181, 85, 28, 55, 86, 84, 117, 150, 198, 186,\n\t\t160, 80, 81, 17, 76, 189, 108, 100, 37, 144, 176, 38, 74,\n\t\t50, 18, 249, 25, 54, 12, 207, 162, 42, 143, 50, 253, 48, 234,\n\t\t79, 191, 16, 154, 124, 179, 237, 28, 169, 197, 92, 177, 220,\n\t\t128, 153, 150, 21, 75, 19, 49, 21, 38, 123, 184, 211, 158,\n\t\t6, 11, 213, 133, 178, 105, 181, 99, 133, 96, 39, 38, 177,\n\t\t220, 197, 41, 109, 243, 43, 171, 182, 121, 192, 230, 88, 228,\n\t\t228, 81, 53, 74, 85, 248, 142, 186, 183, 167, 44, 45, 228,\n\t\t138, 128, 205, 185, 57, 1, 138, 57, 128, 249, 130, 116, 115,\n\t\t69, 214, 147, 169, 164, 64, 136, 124, 219, 99, 91, 47, 124,\n\t\t77, 148, 171, 22, 153, 145, 109, 61, 116, 254, 22, 79, 195,\n\t\t68, 208, 22, 114, 165, 27, 211, 77, 77, 185, 155, 210, 133,\n\t\t68, 250, 3, 243, 249, 252, 227, 249, 249, 249, 119, 97, 77,\n\t\t199, 100, 53, 159, 47, 11, 36, 79, 196, 198, 218, 242, 206,\n\t\t119, 110, 9, 138, 249, 122, 33, 11, 185, 2, 156, 203, 155,\n\t\t219, 137, 66, 54, 223, 52, 234, 247, 212, 94, 117, 229, 175,\n\t\t229, 226, 186, 217, 120, 209, 94, 229, 129, 75, 234, 185,\n\t\t226, 114, 178, 158, 77, 201, 38, 104, 201, 79, 173, 232, 250,\n\t\t74, 34, 193, 175, 235, 146, 44, 72, 169, 5, 128, 124, 74,\n\t\t163, 154, 185, 6, 149, 169, 252, 93, 184, 122, 21, 254, 3,\n\t\t188, 14, 233, 168, 136, 182, 208, 75, 16, 130, 88, 51, 227,\n\t\t241, 148, 167, 1, 253, 103, 254, 120, 107, 220, 171, 120,\n\t\t219, 236, 112, 121, 28, 88, 169, 129, 227, 145, 187, 8, 149,\n\t\t169, 207, 208, 37, 216, 57, 123, 131, 240, 243, 32, 181, 233,\n\t\t38, 229, 214, 78, 44, 201, 117, 224, 99, 231, 30, 146, 164,\n\t\t87, 102, 248, 193, 255, 132, 36, 81, 133, 17, 2, 56, 243,\n\t\t74, 73, 122, 232, 81, 73, 17, 101, 49, 87, 63, 183, 136, 133,\n\t\t35, 19, 240, 149, 7, 65, 87, 13, 246, 48, 60, 64, 147, 138,\n\t\t14, 94, 178, 90, 3, 85, 163, 178, 38, 3, 99, 102, 94, 133,\n\t\t53, 107, 133, 138, 247, 240, 15, 30, 234, 55, 153, 202, 195,\n\t\t188, 168, 119, 83, 113, 197, 195, 9, 73, 84, 40, 96, 145,\n\t\t137, 82, 250, 109, 130, 160, 24, 250, 151, 254, 185, 161,\n\t\t203, 2, 185, 242, 159, 206, 85, 49, 214, 168, 156, 128, 133,\n\t\t101, 132, 208, 34, 188, 4, 113, 23, 183, 252, 84, 123, 123,\n\t\t6, 3, 42, 160, 183, 207, 96, 140, 24, 250, 71, 51, 152, 160,\n\t\t50, 168, 51, 88, 64, 5, 56, 156, 193, 34, 170, 192, 87, 102,\n\t\t48, 69, 243, 120, 123, 6, 43, 232, 60, 254, 216, 12, 86, 145,\n\t\t69, 200, 12, 78, 162, 28, 121, 193, 12, 78, 33, 70, 70, 51,\n\t\t56, 141, 10, 228, 239, 207, 224, 28, 202, 145, 239, 205, 96,\n\t\t19, 49, 97, 5, 17, 4, 130, 140, 16, 218, 229, 45, 137, 97,\n\t\t64, 23, 209, 195, 51, 24, 35, 29, 125, 98, 6, 19, 116, 23,\n\t\t250, 252, 12, 22, 208, 69, 216, 156, 193, 34, 186, 23, 158,\n\t\t153, 193, 20, 237, 194, 247, 102, 176, 130, 94, 134, 239,\n\t\t159, 193, 42, 106, 224, 127, 53, 131, 147, 232, 28, 89, 152,\n\t\t193, 41, 164, 147, 87, 204, 224, 52, 186, 72, 38, 51, 56,\n\t\t135, 206, 145, 127, 49, 131, 77, 164, 11, 41, 116, 59, 242,\n\t\t209, 24, 157, 162, 0, 185, 104, 128, 14, 80, 132, 150, 209,\n\t\t26, 234, 161, 117, 180, 140, 238, 66, 62, 242, 120, 206, 173,\n\t\t232, 24, 57, 40, 68, 62, 26, 33, 7, 161, 219, 253, 241, 105,\n\t\t224, 14, 14, 162, 229, 181, 222, 250, 242, 93, 190, 23, 45,\n\t\t223, 122, 236, 132, 254, 200, 65, 63, 241, 165, 101, 212,\n\t\t66, 203, 232, 54, 20, 32, 27, 121, 168, 143, 66, 180, 140,\n\t\t30, 65, 14, 26, 160, 9, 26, 34, 27, 5, 8, 93, 95, 208, 114,\n\t\t107, 249, 182, 192, 246, 250, 225, 242, 35, 206, 96, 50, 180,\n\t\t3, 244, 163, 79, 95, 203, 255, 255, 94, 99, 29, 181, 80, 3,\n\t\t93, 64, 13, 180, 253, 55, 212, 94, 111, 53, 46, 52, 182, 255,\n\t\t255, 212, 245, 55, 245, 110, 7, 53, 209, 13, 168, 129, 58,\n\t\t60, 141, 39, 225, 39, 215, 117, 132, 28, 20, 160, 16, 185,\n\t\t252, 137, 139, 188, 246, 179, 126, 172, 35, 180, 211, 188,\n\t\t161, 209, 105, 222, 176, 188, 246, 67, 85, 30, 57, 65, 232,\n\t\t250, 222, 197, 101, 222, 149, 245, 31, 244, 229, 135, 75,\n\t\t111, 253, 80, 47, 234, 207, 215, 139, 89, 137, 173, 105, 23,\n\t\t234, 215, 186, 240, 40, 58, 224, 205, 139, 139, 235, 162,\n\t\t26, 31, 132, 17, 242, 81, 200, 59, 49, 230, 152, 118, 86,\n\t\t208, 50, 114, 81, 143, 55, 96, 25, 133, 200, 225, 79, 76,\n\t\t43, 93, 70, 17, 242, 145, 143, 134, 232, 16, 185, 40, 66,\n\t\t13, 132, 30, 61, 112, 150, 143, 157, 110, 45, 92, 30, 249,\n\t\t97, 180, 60, 246, 199, 113, 133, 203, 110, 207, 247, 150,\n\t\t67, 39, 90, 182, 189, 254, 114, 228, 251, 195, 67, 55, 106,\n\t\t32, 142, 196, 17, 26, 163, 16, 93, 68, 155, 104, 19, 237,\n\t\t207, 250, 105, 255, 80, 63, 27, 188, 250, 17, 66, 7, 81, 52,\n\t\t14, 47, 110, 110, 238, 251, 94, 100, 79, 123, 214, 232, 249,\n\t\t163, 191, 205, 92, 63, 255, 220, 254, 215, 192, 216, 191,\n\t\t9, 139, 254, 223, 151, 252, 183, 109, 51, 151, 213, 16, 66,\n\t\t87, 63, 135, 242, 232, 121, 254, 193, 167, 56, 45, 158, 250,\n\t\t167, 17, 64, 4, 10, 12, 36, 144, 65, 1, 21, 52, 72, 240, 216,\n\t\t37, 73, 72, 65, 26, 50, 144, 133, 28, 152, 96, 193, 28, 228,\n\t\t97, 30, 22, 96, 17, 10, 232, 203, 60, 12, 202, 50, 172, 64,\n\t\t9, 202, 176, 10, 21, 168, 66, 13, 214, 96, 29, 206, 193, 6,\n\t\t156, 135, 58, 15, 105, 178, 5, 219, 208, 132, 29, 216, 133,\n\t\t22, 180, 161, 3, 23, 224, 6, 184, 8, 151, 224, 70, 184, 137,\n\t\t71, 162, 190, 5, 110, 133, 219, 224, 118, 184, 3, 238, 132,\n\t\t187, 224, 5, 112, 55, 220, 3, 247, 194, 125, 112, 63, 60,\n\t\t0, 47, 132, 7, 225, 33, 120, 24, 30, 129, 23, 193, 163, 240,\n\t\t98, 120, 9, 188, 20, 94, 6, 143, 193, 79, 193, 227, 240, 114,\n\t\t120, 5, 252, 52, 188, 18, 94, 5, 54, 116, 161, 7, 125, 112,\n\t\t96, 31, 6, 112, 0, 46, 92, 134, 67, 24, 194, 8, 60, 240, 97,\n\t\t12, 79, 64, 0, 33, 68, 48, 129, 35, 56, 134, 19, 56, 133,\n\t\t39, 225, 213, 240, 26, 248, 25, 120, 45, 252, 44, 60, 5, 175,\n\t\t131, 215, 195, 27, 224, 141, 240, 38, 120, 51, 60, 13, 111,\n\t\t129, 103, 224, 173, 240, 115, 240, 54, 120, 59, 188, 3, 254,\n\t\t14, 252, 60, 188, 19, 126, 1, 126, 17, 222, 5, 239, 134, 247,\n\t\t192, 123, 225, 125, 240, 126, 248, 0, 252, 18, 252, 50, 124,\n\t\t16, 126, 5, 126, 21, 158, 133, 15, 193, 135, 225, 35, 240,\n\t\t119, 225, 163, 240, 49, 248, 56, 252, 26, 252, 61, 248, 117,\n\t\t248, 4, 124, 18, 62, 5, 191, 1, 255, 13, 124, 26, 254, 62,\n\t\t252, 183, 240, 155, 240, 15, 224, 191, 131, 223, 130, 223,\n\t\t134, 127, 8, 159, 129, 223, 129, 127, 4, 255, 24, 62, 11,\n\t\t255, 4, 254, 123, 120, 14, 62, 7, 191, 11, 159, 135, 127,\n\t\t10, 191, 7, 191, 15, 255, 3, 124, 1, 190, 8, 255, 12, 254,\n\t\t57, 252, 1, 124, 9, 254, 16, 254, 5, 252, 17, 252, 75, 248,\n\t\t50, 252, 43, 248, 215, 240, 21, 248, 42, 252, 27, 248, 26,\n\t\t252, 91, 248, 31, 225, 127, 130, 63, 134, 175, 195, 191, 131,\n\t\t111, 192, 55, 225, 79, 224, 223, 195, 127, 128, 111, 193,\n\t\t255, 12, 255, 11, 252, 41, 252, 175, 240, 191, 193, 159, 193,\n\t\t127, 132, 255, 29, 254, 15, 248, 63, 225, 63, 193, 159, 195,\n\t\t183, 225, 63, 195, 127, 129, 255, 11, 254, 2, 190, 3, 255,\n\t\t55, 124, 23, 254, 18, 254, 10, 190, 7, 127, 13, 223, 135,\n\t\t43, 112, 21, 199, 8, 128, 185, 99, 5, 17, 83, 110, 250, 41,\n\t\t99, 5, 171, 88, 195, 9, 172, 99, 3, 39, 113, 10, 167, 113,\n\t\t6, 103, 113, 14, 155, 216, 194, 115, 56, 143, 231, 241, 2,\n\t\t94, 196, 5, 92, 196, 75, 120, 25, 175, 224, 18, 46, 227, 85,\n\t\t92, 193, 85, 92, 195, 107, 120, 29, 159, 195, 27, 248, 60,\n\t\t174, 227, 6, 222, 196, 91, 120, 27, 55, 241, 14, 90, 194,\n\t\t187, 184, 133, 219, 184, 131, 47, 224, 27, 240, 69, 124, 9,\n\t\t223, 136, 111, 194, 123, 248, 102, 124, 11, 190, 21, 223,\n\t\t134, 111, 199, 119, 224, 59, 241, 93, 248, 5, 248, 110, 124,\n\t\t15, 190, 23, 223, 135, 239, 199, 15, 224, 23, 226, 7, 241,\n\t\t67, 248, 97, 252, 8, 126, 17, 126, 20, 191, 24, 191, 4, 191,\n\t\t20, 191, 12, 63, 134, 127, 10, 63, 142, 95, 142, 95, 129,\n\t\t127, 26, 191, 18, 191, 10, 219, 184, 139, 123, 184, 143, 29,\n\t\t188, 143, 7, 248, 0, 187, 248, 50, 62, 196, 67, 60, 194, 30,\n\t\t246, 241, 24, 63, 129, 3, 28, 226, 8, 79, 240, 17, 62, 198,\n\t\t39, 248, 20, 63, 137, 95, 141, 95, 131, 127, 6, 191, 22, 255,\n\t\t44, 126, 10, 191, 14, 191, 30, 191, 1, 191, 17, 191, 9, 191,\n\t\t25, 63, 141, 223, 130, 159, 193, 111, 197, 63, 135, 223, 134,\n\t\t223, 142, 223, 129, 255, 14, 254, 121, 252, 78, 252, 11, 248,\n\t\t23, 241, 187, 240, 187, 241, 123, 240, 123, 241, 251, 240,\n\t\t251, 241, 7, 240, 47, 225, 95, 198, 31, 196, 191, 130, 127,\n\t\t21, 63, 139, 63, 132, 63, 140, 63, 130, 255, 46, 254, 40,\n\t\t254, 24, 254, 56, 254, 53, 252, 247, 244, 232, 216, 141, 34,\n\t\t39, 168, 135, 79, 76, 236, 192, 49, 246, 237, 158, 211, 245,\n\t\t253, 195, 217, 189, 52, 116, 189, 67, 167, 239, 122, 137,\n\t\t129, 27, 29, 76, 186, 179, 108, 54, 123, 75, 58, 123, 156,\n\t\t78, 255, 44, 143, 93, 47, 114, 2, 39, 140, 146, 215, 160,\n\t\t217, 43, 233, 129, 239, 15, 134, 78, 125, 60, 156, 132, 179,\n\t\t172, 196, 245, 89, 3, 245, 172, 170, 186, 235, 41, 179, 218,\n\t\t236, 97, 68, 71, 246, 73, 175, 239, 137, 7, 209, 104, 216,\n\t\t18, 122, 97, 184, 67, 186, 81, 143, 157, 250, 147, 104, 210,\n\t\t117, 132, 19, 215, 27, 168, 241, 229, 172, 101, 253, 192,\n\t\t31, 119, 253, 19, 61, 140, 236, 222, 97, 221, 63, 114, 130,\n\t\t253, 161, 127, 44, 187, 94, 24, 217, 131, 192, 30, 209, 253,\n\t\t161, 219, 59, 12, 136, 221, 247, 228, 174, 27, 117, 39, 189,\n\t\t67, 39, 162, 209, 100, 212, 29, 6, 137, 105, 114, 86, 212,\n\t\t177, 235, 245, 253, 227, 144, 217, 94, 63, 240, 221, 190,\n\t\t56, 116, 189, 201, 137, 212, 15, 220, 110, 183, 59, 116, 196,\n\t\t240, 240, 116, 236, 40, 251, 254, 36, 152, 62, 79, 163, 192,\n\t\t25, 14, 125, 105, 16, 216, 145, 59, 182, 79, 241, 209, 161,\n\t\t120, 236, 184, 93, 159, 6, 142, 23, 56, 158, 60, 182, 7, 206,\n\t\t208, 245, 156, 112, 214, 56, 231, 164, 119, 96, 123, 3, 71,\n\t\t59, 114, 71, 142, 63, 171, 85, 12, 135, 118, 239, 80, 62,\n\t\t246, 131, 254, 56, 112, 194, 144, 250, 99, 199, 115, 251,\n\t\t226, 169, 125, 224, 251, 116, 58, 98, 52, 112, 250, 125, 55,\n\t\t74, 76, 147, 179, 1, 14, 121, 235, 157, 201, 216, 247, 234,\n\t\t61, 55, 232, 13, 29, 245, 186, 44, 185, 239, 12, 221, 158,\n\t\t235, 79, 66, 161, 239, 14, 6, 137, 177, 235, 244, 235, 99,\n\t\t119, 236, 4, 245, 241, 88, 191, 238, 46, 30, 243, 126, 48,\n\t\t25, 219, 67, 122, 217, 247, 71, 67, 155, 117, 157, 3, 219,\n\t\t235, 57, 250, 44, 189, 214, 208, 200, 177, 71, 26, 191, 158,\n\t\t141, 88, 56, 246, 35, 119, 255, 84, 233, 59, 71, 174, 237,\n\t\t69, 118, 16, 41, 161, 63, 241, 250, 189, 161, 63, 233, 11,\n\t\t71, 174, 231, 176, 158, 223, 119, 198, 142, 39, 93, 14, 247,\n\t\t221, 126, 127, 232, 136, 129, 211, 117, 134, 212, 25, 141,\n\t\t221, 192, 137, 231, 125, 86, 22, 25, 184, 145, 122, 96, 247,\n\t\t14, 157, 160, 238, 57, 199, 97, 34, 114, 188, 158, 227, 69,\n\t\t117, 62, 164, 248, 137, 39, 232, 177, 227, 158, 184, 158,\n\t\t18, 14, 221, 190, 19, 30, 240, 9, 56, 118, 163, 222, 129,\n\t\t112, 234, 12, 199, 116, 108, 159, 142, 237, 225, 25, 138,\n\t\t29, 219, 195, 161, 19, 177, 94, 175, 126, 228, 134, 118, 162,\n\t\t215, 171, 143, 236, 48, 114, 130, 158, 29, 244, 213, 94, 175,\n\t\t222, 119, 195, 94, 140, 43, 241, 19, 246, 200, 57, 145, 123,\n\t\t189, 250, 180, 132, 24, 10, 163, 192, 29, 59, 116, 104, 135,\n\t\t209, 254, 40, 49, 77, 206, 186, 236, 250, 39, 7, 126, 24,\n\t\t201, 241, 68, 14, 135, 110, 24, 41, 221, 201, 105, 232, 12,\n\t\t135, 118, 63, 212, 123, 190, 231, 57, 189, 168, 239, 28, 57,\n\t\t67, 127, 44, 245, 237, 240, 160, 55, 233, 58, 210, 190, 31,\n\t\t76, 70, 93, 199, 97, 67, 199, 246, 198, 147, 46, 141, 95,\n\t\t8, 79, 181, 240, 192, 13, 162, 208, 245, 186, 147, 225, 161,\n\t\t26, 186, 163, 241, 240, 180, 59, 113, 135, 145, 20, 30, 158,\n\t\t218, 209, 208, 14, 213, 31, 44, 171, 177, 116, 124, 96, 71,\n\t\t161, 61, 30, 179, 35, 215, 238, 249, 174, 71, 71, 78, 223,\n\t\t157, 140, 180, 211, 122, 207, 31, 117, 93, 207, 142, 252,\n\t\t32, 225, 143, 35, 215, 171, 143, 124, 47, 238, 174, 20, 35,\n\t\t83, 207, 14, 34, 205, 57, 25, 59, 125, 55, 114, 250, 97, 56,\n\t\t164, 189, 94, 253, 114, 175, 171, 243, 113, 240, 156, 32,\n\t\t172, 247, 134, 147, 110, 178, 23, 56, 118, 228, 30, 57, 113,\n\t\t105, 241, 251, 120, 48, 144, 7, 131, 51, 212, 138, 135, 196,\n\t\t238, 31, 185, 97, 92, 71, 223, 243, 15, 135, 118, 24, 122,\n\t\t238, 161, 155, 253, 161, 187, 217, 48, 41, 3, 39, 170, 143,\n\t\t253, 120, 173, 169, 199, 238, 161, 27, 87, 110, 215, 143,\n\t\t105, 104, 239, 219, 129, 75, 123, 7, 129, 63, 114, 216, 190,\n\t\t27, 56, 251, 254, 137, 232, 143, 157, 192, 78, 241, 158, 122,\n\t\t78, 84, 119, 78, 198, 67, 63, 112, 2, 218, 139, 229, 40, 95,\n\t\t108, 109, 109, 141, 79, 168, 61, 178, 159, 244, 61, 241, 192,\n\t\t159, 60, 249, 36, 155, 174, 160, 35, 185, 27, 47, 158, 122,\n\t\t228, 58, 114, 44, 115, 197, 82, 92, 168, 205, 86, 137, 61,\n\t\t116, 29, 79, 112, 250, 3, 71, 234, 249, 125, 215, 25, 187,\n\t\t142, 48, 242, 251, 39, 218, 190, 31, 68, 245, 153, 120, 70,\n\t\t38, 97, 87, 27, 7, 126, 127, 210, 139, 234, 7, 19, 47, 146,\n\t\t70, 238, 9, 199, 94, 26, 246, 2, 183, 219, 151, 187, 195,\n\t\t137, 19, 249, 126, 116, 160, 94, 131, 234, 221, 152, 252,\n\t\t13, 237, 174, 114, 60, 238, 58, 3, 215, 243, 156, 128, 29,\n\t\t143, 247, 253, 96, 20, 82, 199, 59, 114, 3, 91, 28, 196, 88,\n\t\t202, 248, 181, 62, 160, 71, 174, 221, 119, 252, 196, 52, 57,\n\t\t35, 181, 161, 103, 143, 123, 7, 118, 164, 159, 1, 245, 65,\n\t\t140, 89, 198, 181, 219, 217, 80, 254, 96, 173, 170, 251, 110,\n\t\t16, 70, 117, 63, 232, 59, 129, 120, 234, 219, 97, 36, 71,\n\t\t7, 206, 200, 113, 195, 161, 163, 94, 71, 92, 181, 120, 48,\n\t\t206, 186, 72, 135, 174, 231, 247, 29, 241, 137, 137, 31, 216,\n\t\t250, 126, 224, 196, 19, 220, 119, 234, 61, 123, 52, 150, 34,\n\t\t103, 232, 196, 84, 82, 234, 218, 94, 63, 206, 17, 6, 129,\n\t\t125, 36, 56, 81, 120, 42, 184, 163, 126, 151, 5, 246, 145,\n\t\t51, 12, 78, 165, 24, 97, 123, 118, 24, 169, 225, 100, 236,\n\t\t4, 99, 255, 216, 9, 66, 229, 120, 124, 109, 170, 70, 142,\n\t\t19, 77, 198, 201, 235, 43, 142, 41, 139, 97, 247, 122, 78,\n\t\t24, 186, 221, 161, 83, 143, 103, 71, 178, 123, 189, 73, 232,\n\t\t239, 71, 146, 221, 143, 181, 8, 123, 168, 219, 251, 251, 238,\n\t\t208, 181, 35, 135, 119, 133, 217, 195, 129, 63, 116, 109,\n\t\t106, 143, 226, 220, 132, 237, 13, 130, 211, 51, 204, 148,\n\t\t237, 241, 184, 30, 70, 126, 224, 36, 174, 65, 117, 215, 15,\n\t\t69, 123, 60, 118, 2, 197, 14, 79, 71, 35, 39, 10, 220, 67,\n\t\t102, 79, 250, 113, 157, 204, 142, 233, 146, 115, 66, 236,\n\t\t227, 80, 238, 186, 35, 191, 123, 217, 233, 69, 172, 235, 70,\n\t\t241, 250, 17, 186, 110, 116, 170, 112, 20, 234, 58, 65, 112,\n\t\t202, 186, 67, 127, 48, 112, 2, 121, 150, 214, 187, 201, 238,\n\t\t36, 240, 71, 126, 215, 25, 198, 235, 39, 136, 28, 37, 38,\n\t\t73, 78, 16, 15, 160, 194, 209, 36, 236, 217, 195, 51, 112,\n\t\t228, 70, 7, 26, 7, 185, 130, 180, 127, 74, 123, 99, 219, 115,\n\t\t134, 82, 204, 197, 226, 209, 80, 122, 147, 40, 26, 58, 251,\n\t\t110, 120, 192, 250, 117, 219, 235, 215, 251, 114, 223, 25,\n\t\t15, 253, 211, 190, 63, 96, 125, 39, 60, 28, 7, 126, 162, 239,\n\t\t14, 220, 200, 30, 214, 253, 158, 99, 123, 140, 83, 170, 160,\n\t\t47, 243, 116, 18, 132, 14, 237, 251, 189, 131, 73, 55, 78,\n\t\t14, 157, 32, 209, 15, 236, 253, 168, 57, 123, 199, 56, 99,\n\t\t86, 51, 220, 161, 253, 83, 123, 232, 15, 20, 199, 14, 134,\n\t\t167, 93, 55, 232, 135, 212, 9, 134, 182, 55, 80, 174, 241,\n\t\t253, 253, 244, 53, 112, 228, 132, 161, 227, 13, 156, 64, 225,\n\t\t120, 198, 75, 214, 174, 173, 171, 250, 190, 155, 188, 126,\n\t\t233, 196, 29, 98, 49, 58, 117, 195, 190, 60, 112, 163, 195,\n\t\t192, 62, 116, 60, 58, 240, 247, 253, 192, 145, 7, 190, 223,\n\t\t15, 28, 187, 31, 170, 215, 160, 250, 64, 155, 225, 104, 63,\n\t\t112, 143, 174, 67, 88, 251, 84, 26, 4, 238, 56, 166, 6, 226,\n\t\t32, 152, 120, 145, 48, 152, 12, 199, 233, 235, 152, 193, 153,\n\t\t0, 113, 224, 6, 78, 221, 174, 31, 56, 195, 177, 19, 208, 3,\n\t\t63, 186, 108, 7, 236, 96, 210, 141, 249, 16, 117, 163, 137,\n\t\t231, 132, 234, 52, 169, 123, 126, 228, 176, 203, 142, 119,\n\t\t232, 122, 161, 120, 217, 31, 56, 17, 190, 28, 202, 151, 207,\n\t\t138, 162, 135, 206, 105, 175, 239, 169, 135, 110, 239, 48,\n\t\t140, 25, 151, 19, 36, 174, 131, 235, 135, 108, 104, 115, 220,\n\t\t23, 98, 14, 46, 12, 79, 247, 35, 54, 178, 7, 142, 23, 249,\n\t\t108, 228, 244, 237, 241, 56, 148, 166, 228, 183, 62, 18, 71,\n\t\t78, 63, 136, 228, 145, 219, 11, 252, 24, 183, 201, 200, 61,\n\t\t161, 35, 247, 201, 137, 231, 210, 145, 239, 57, 129, 207,\n\t\t60, 123, 28, 211, 99, 22, 175, 196, 250, 229, 144, 120, 227,\n\t\t17, 241, 194, 11, 170, 55, 137, 2, 55, 114, 125, 207, 61,\n\t\t17, 99, 113, 97, 151, 142, 237, 225, 190, 211, 103, 99, 59,\n\t\t10, 28, 223, 147, 199, 78, 16, 79, 252, 216, 81, 199, 7, 118,\n\t\t55, 112, 123, 49, 145, 79, 141, 15, 124, 199, 115, 79, 234,\n\t\t251, 129, 61, 114, 142, 253, 224, 80, 141, 71, 49, 140, 236,\n\t\t184, 40, 58, 158, 132, 7, 78, 159, 142, 79, 163, 3, 223, 147,\n\t\t3, 167, 95, 143, 199, 59, 38, 81, 177, 128, 17, 208, 192,\n\t\t25, 15, 79, 251, 114, 224, 132, 254, 240, 200, 245, 6, 74,\n\t\t192, 9, 117, 76, 115, 88, 12, 198, 100, 44, 236, 29, 12, 221,\n\t\t19, 53, 116, 236, 160, 119, 224, 120, 3, 215, 211, 66, 39,\n\t\t56, 114, 123, 14, 151, 101, 88, 232, 198, 76, 242, 68, 225,\n\t\t210, 75, 253, 192, 14, 15, 88, 56, 118, 236, 67, 123, 172,\n\t\t132, 145, 125, 58, 149, 237, 206, 132, 133, 211, 81, 215,\n\t\t31, 106, 97, 228, 242, 9, 29, 77, 134, 142, 22, 70, 147, 190,\n\t\t235, 31, 185, 94, 204, 14, 194, 201, 120, 60, 116, 244, 51,\n\t\t98, 20, 163, 132, 231, 8, 147, 174, 19, 136, 19, 247, 208,\n\t\t141, 212, 137, 231, 6, 206, 32, 174, 242, 148, 77, 188, 200,\n\t\t30, 143, 251, 210, 36, 12, 39, 158, 103, 31, 208, 35, 219,\n\t\t238, 187, 158, 120, 228, 198, 207, 115, 198, 64, 142, 188,\n\t\t35, 227, 140, 91, 158, 137, 47, 199, 7, 163, 94, 152, 188,\n\t\t38, 103, 213, 57, 187, 117, 132, 147, 174, 127, 66, 79, 109,\n\t\t175, 239, 156, 100, 167, 73, 125, 202, 136, 248, 88, 218,\n\t\t195, 152, 230, 196, 88, 106, 159, 106, 177, 172, 112, 118,\n\t\t67, 246, 135, 167, 134, 23, 63, 233, 245, 253, 122, 56, 21,\n\t\t68, 226, 217, 37, 126, 232, 138, 129, 99, 247, 34, 205, 158,\n\t\t68, 254, 56, 112, 246, 221, 19, 39, 16, 66, 59, 12, 197, 163,\n\t\t137, 115, 57, 150, 47, 185, 34, 76, 99, 226, 20, 249, 162,\n\t\t51, 234, 58, 65, 234, 135, 40, 231, 254, 208, 30, 196, 60,\n\t\t38, 114, 2, 241, 192, 247, 135, 46, 13, 163, 192, 62, 178,\n\t\t233, 84, 50, 145, 166, 73, 61, 20, 163, 211, 177, 191, 163,\n\t\t76, 89, 99, 220, 172, 4, 151, 103, 206, 238, 164, 152, 166,\n\t\t6, 206, 100, 68, 15, 253, 224, 104, 226, 200, 206, 208, 25,\n\t\t197, 40, 28, 232, 51, 121, 122, 54, 56, 242, 254, 208, 29,\n\t\t119, 125, 59, 232, 11, 7, 238, 56, 36, 227, 131, 177, 252,\n\t\t196, 196, 245, 194, 158, 61, 142, 165, 79, 187, 63, 114, 132,\n\t\t203, 246, 145, 125, 189, 224, 120, 96, 71, 153, 31, 149, 25,\n\t\t234, 221, 211, 31, 207, 243, 122, 230, 243, 228, 213, 157,\n\t\t201, 243, 102, 95, 30, 63, 79, 9, 253, 31, 207, 27, 247, 173,\n\t\t231, 201, 139, 169, 210, 143, 23, 27, 56, 35, 247, 228, 199,\n\t\t139, 8, 237, 252, 243, 228, 141, 198, 67, 215, 27, 20, 127,\n\t\t226, 95, 56, 139, 253, 241, 58, 184, 72, 154, 251, 177, 236,\n\t\t39, 157, 192, 23, 156, 174, 125, 202, 14, 157, 211, 174, 29,\n\t\t58, 82, 44, 137, 250, 253, 120, 101, 214, 199, 129, 31, 51,\n\t\t36, 45, 112, 166, 11, 109, 96, 71, 142, 28, 175, 25, 190,\n\t\t150, 140, 235, 216, 253, 148, 218, 78, 134, 189, 96, 50, 74,\n\t\t13, 236, 161, 221, 139, 220, 94, 61, 112, 198, 147, 238, 208,\n\t\t237, 25, 215, 114, 66, 199, 179, 35, 71, 185, 236, 244, 221,\n\t\t233, 139, 234, 200, 246, 250, 246, 208, 15, 92, 219, 211,\n\t\t252, 97, 255, 218, 59, 201, 51, 34, 18, 163, 64, 63, 240,\n\t\t61, 33, 116, 163, 131, 100, 20, 216, 125, 167, 190, 239, 244,\n\t\t157, 128, 175, 128, 204, 177, 63, 220, 175, 143, 227, 85,\n\t\t222, 181, 163, 200, 30, 186, 190, 39, 29, 248, 129, 215, 117,\n\t\t135, 67, 121, 100, 187, 195, 222, 129, 59, 26, 75, 35, 103,\n\t\t96, 143, 253, 32, 162, 158, 27, 235, 84, 36, 112, 142, 164,\n\t\t240, 192, 31, 31, 219, 129, 163, 78, 177, 44, 28, 219, 61,\n\t\t135, 113, 54, 223, 243, 233, 177, 227, 116, 135, 167, 228,\n\t\t216, 61, 17, 98, 53, 74, 153, 146, 251, 192, 246, 14, 233,\n\t\t161, 61, 24, 12, 227, 129, 10, 14, 251, 254, 177, 39, 120,\n\t\t142, 31, 138, 79, 30, 184, 7, 19, 106, 15, 99, 85, 75, 139,\n\t\t14, 156, 122, 76, 216, 78, 157, 200, 205, 219, 189, 39, 38,\n\t\t110, 200, 201, 104, 88, 119, 189, 158, 31, 140, 253, 192,\n\t\t142, 156, 126, 162, 23, 19, 215, 158, 61, 172, 7, 254, 208,\n\t\t209, 103, 44, 183, 222, 117, 78, 125, 175, 79, 250, 206, 81,\n\t\t118, 63, 214, 90, 194, 211, 250, 254, 208, 29, 28, 68, 245,\n\t\t129, 61, 114, 66, 109, 236, 120, 222, 105, 221, 14, 122, 118,\n\t\t223, 201, 30, 187, 79, 218, 65, 63, 172, 251, 251, 245, 184,\n\t\t210, 94, 44, 117, 169, 209, 129, 235, 29, 214, 227, 57, 10,\n\t\t85, 190, 214, 157, 73, 224, 143, 29, 209, 238, 251, 93, 71,\n\t\t177, 131, 104, 70, 138, 101, 46, 196, 135, 174, 237, 101,\n\t\t122, 182, 103, 247, 93, 219, 171, 143, 236, 152, 132, 12,\n\t\t29, 123, 159, 198, 194, 132, 31, 42, 61, 223, 219, 31, 78,\n\t\t98, 117, 135, 244, 15, 134, 82, 223, 181, 195, 184, 3, 98,\n\t\t60, 9, 39, 116, 223, 233, 243, 27, 119, 48, 178, 37, 119,\n\t\t42, 125, 140, 36, 215, 59, 114, 67, 215, 247, 132, 203, 110,\n\t\t96, 75, 35, 199, 235, 59, 67, 231, 84, 11, 236, 112, 204,\n\t\t101, 153, 250, 216, 141, 181, 198, 3, 59, 162, 33, 167, 237,\n\t\t177, 98, 22, 244, 156, 40, 112, 28, 33, 156, 132, 14, 157,\n\t\t116, 39, 94, 52, 33, 147, 113, 40, 76, 194, 113, 40, 156,\n\t\t218, 129, 71, 109, 55, 232, 122, 93, 37, 158, 233, 161, 83,\n\t\t247, 156, 72, 238, 250, 126, 20, 19, 159, 49, 237, 78, 246,\n\t\t247, 157, 64, 153, 202, 238, 177, 44, 40, 57, 71, 78, 192,\n\t\t249, 108, 76, 253, 234, 174, 175, 132, 246, 208, 9, 247, 253,\n\t\t160, 231, 104, 28, 131, 157, 160, 222, 119, 98, 110, 113,\n\t\t58, 218, 247, 189, 83, 225, 216, 126, 210, 161, 167, 246,\n\t\t104, 228, 4, 179, 173, 190, 171, 87, 17, 230, 95, 59, 52,\n\t\t254, 189, 3, 241, 59, 2, 159, 68, 152, 71, 114, 195, 103,\n\t\t91, 130, 241, 229, 107, 175, 90, 31, 242, 244, 51, 159, 190,\n\t\t101, 150, 222, 249, 255, 4, 0, 0, 255, 255, 80, 75, 7, 8,\n\t\t189, 133, 202, 163, 90, 88, 1, 0, 76, 250, 1, 0, 80, 75, 3,\n\t\t4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 27, 0, 9, 0, 119, 101, 98, 102, 111, 110,\n\t\t116, 115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115, 45,\n\t\t52, 48, 48, 46, 119, 111, 102, 102, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 108, 147, 83, 108, 37, 14, 163, 196, 79, 109,\n\t\t219, 182, 237, 173, 141, 173, 109, 219, 182, 113, 106, 27,\n\t\t91, 109, 109, 27, 91, 219, 182, 109, 235, 230, 255, 61, 223,\n\t\t73, 126, 153, 204, 195, 188, 76, 50, 30, 191, 37, 36, 0, 32,\n\t\t0, 0, 0, 68, 61, 18, 128, 240, 159, 191, 203, 129, 72, 119,\n\t\t228, 3, 254, 31, 73, 72, 168, 202, 3, 0, 32, 204, 0, 0, 0,\n\t\t23, 0, 0, 224, 71, 45, 68, 221, 75, 138, 137, 75, 0, 0, 32,\n\t\t114, 0, 0, 128, 240, 127, 208, 130, 52, 254, 86, 97, 98, 5,\n\t\t0, 64, 108, 1, 0, 192, 111, 0, 0, 96, 40, 130, 124, 20, 111,\n\t\t98, 103, 228, 8, 0, 128, 116, 1, 0, 96, 208, 0, 0, 132, 55,\n\t\t234, 37, 122, 166, 133, 145, 139, 35, 0, 0, 254, 15, 0, 0,\n\t\t64, 255, 199, 207, 15, 0, 204, 194, 214, 203, 28, 0, 0, 159,\n\t\t4, 128, 240, 159, 0, 64, 102, 132, 52, 106, 105, 78, 45, 205,\n\t\t140, 76, 1, 32, 194, 77, 0, 0, 128, 13, 0, 0, 112, 162, 43,\n\t\t232, 180, 90, 90, 154, 25, 1, 64, 132, 79, 1, 0, 0, 9, 0,\n\t\t0, 32, 7, 231, 4, 219, 180, 180, 115, 245, 4, 128, 136, 192,\n\t\t3, 0, 160, 6, 0, 0, 100, 13, 61, 26, 196, 172, 173, 131, 137,\n\t\t17, 0, 68, 204, 22, 0, 0, 211, 253, 15, 1, 182, 154, 103,\n\t\t59, 35, 79, 71, 0, 136, 228, 40, 0, 0, 32, 2, 0, 0, 196, 160,\n\t\t152, 96, 191, 237, 141, 236, 204, 0, 32, 146, 167, 0, 0, 40,\n\t\t26, 0, 0, 17, 16, 234, 227, 64, 238, 232, 224, 226, 10, 0,\n\t\t145, 254, 4, 0, 224, 163, 0, 0, 116, 8, 251, 24, 130, 17,\n\t\t207, 28, 19, 67, 67, 67, 83, 64, 48, 30, 76, 22, 143, 161,\n\t\t247, 9, 36, 20, 245, 21, 44, 64, 172, 20, 114, 249, 191, 237,\n\t\t0, 0, 0, 60, 0, 0, 192, 4, 0, 0, 160, 0, 16, 0, 24, 72, 21,\n\t\t0, 20, 0, 254, 191, 4, 0, 0, 254, 235, 26, 249, 142, 113,\n\t\t7, 5, 165, 6, 5, 205, 69, 176, 196, 6, 5, 245, 19, 200, 4,\n\t\t152, 37, 152, 90, 26, 25, 26, 26, 27, 154, 153, 7, 130, 72,\n\t\t128, 64, 130, 67, 75, 185, 200, 27, 89, 190, 206, 190, 14,\n\t\t6, 221, 245, 253, 128, 193, 123, 199, 88, 96, 139, 224, 6,\n\t\t90, 247, 193, 86, 99, 167, 131, 210, 64, 64, 74, 0, 194, 105,\n\t\t16, 59, 1, 158, 57, 87, 11, 118, 150, 105, 102, 232, 80, 183,\n\t\t31, 107, 132, 122, 47, 126, 2, 39, 252, 27, 41, 202, 138,\n\t\t204, 57, 138, 192, 61, 245, 55, 222, 191, 145, 243, 80, 104,\n\t\t114, 164, 6, 101, 167, 162, 137, 181, 131, 142, 115, 236,\n\t\t6, 45, 103, 101, 111, 193, 188, 59, 222, 232, 127, 141, 226,\n\t\t218, 199, 51, 171, 217, 231, 73, 200, 145, 120, 75, 21, 92,\n\t\t96, 89, 155, 151, 228, 192, 13, 174, 93, 166, 253, 182, 86,\n\t\t116, 231, 23, 134, 14, 34, 47, 147, 243, 47, 101, 3, 184,\n\t\t161, 190, 29, 253, 184, 63, 119, 157, 241, 169, 22, 188, 184,\n\t\t193, 114, 34, 183, 20, 154, 254, 181, 72, 117, 72, 22, 53,\n\t\t226, 83, 37, 217, 200, 166, 37, 95, 104, 188, 94, 124, 89,\n\t\t7, 164, 239, 28, 123, 40, 18, 225, 74, 135, 177, 71, 28, 43,\n\t\t177, 248, 9, 81, 52, 37, 141, 91, 33, 216, 21, 84, 63, 226,\n\t\t92, 21, 226, 86, 252, 37, 91, 20, 99, 112, 205, 180, 159,\n\t\t211, 155, 207, 25, 99, 36, 19, 156, 130, 224, 7, 70, 191,\n\t\t170, 249, 103, 99, 57, 178, 48, 29, 167, 234, 246, 219, 120,\n\t\t209, 81, 181, 165, 33, 57, 147, 17, 29, 145, 27, 236, 217,\n\t\t124, 70, 119, 209, 16, 141, 195, 210, 36, 203, 188, 169, 114,\n\t\t142, 35, 174, 209, 248, 28, 194, 241, 208, 143, 28, 133, 230,\n\t\t164, 168, 204, 147, 86, 207, 51, 174, 148, 168, 216, 79, 8,\n\t\t160, 180, 51, 5, 64, 118, 131, 66, 231, 33, 64, 66, 189, 245,\n\t\t55, 25, 74, 48, 179, 101, 16, 52, 65, 112, 5, 127, 116, 212,\n\t\t214, 44, 115, 120, 231, 215, 44, 68, 60, 121, 116, 72, 83,\n\t\t185, 69, 255, 250, 43, 141, 183, 69, 48, 60, 184, 233, 40,\n\t\t194, 77, 179, 73, 192, 25, 58, 101, 36, 187, 106, 95, 72,\n\t\t185, 211, 101, 38, 51, 53, 82, 58, 175, 154, 137, 96, 222,\n\t\t40, 157, 225, 48, 217, 122, 156, 33, 157, 149, 63, 69, 177,\n\t\t96, 228, 127, 129, 187, 195, 193, 146, 234, 140, 223, 203,\n\t\t111, 151, 116, 203, 244, 152, 17, 211, 72, 121, 179, 0, 170,\n\t\t45, 39, 107, 73, 147, 170, 149, 92, 209, 52, 166, 96, 211,\n\t\t144, 142, 123, 134, 205, 161, 66, 183, 85, 204, 119, 232,\n\t\t2, 41, 56, 212, 183, 150, 227, 32, 63, 124, 175, 106, 115,\n\t\t143, 200, 212, 64, 57, 209, 30, 179, 114, 139, 185, 61, 253,\n\t\t241, 6, 32, 106, 160, 164, 106, 143, 173, 45, 149, 63, 150,\n\t\t41, 175, 74, 90, 90, 54, 205, 181, 77, 11, 189, 76, 155, 41,\n\t\t81, 199, 173, 30, 251, 157, 148, 98, 110, 227, 220, 159, 229,\n\t\t58, 122, 227, 188, 146, 101, 105, 147, 132, 98, 10, 193, 179,\n\t\t108, 58, 42, 40, 199, 27, 146, 189, 238, 35, 151, 188, 32,\n\t\t64, 73, 54, 79, 57, 225, 45, 199, 153, 73, 80, 218, 159, 245,\n\t\t185, 106, 226, 188, 149, 213, 181, 200, 65, 146, 10, 212,\n\t\t248, 151, 62, 44, 187, 63, 116, 55, 119, 183, 247, 10, 168,\n\t\t221, 165, 248, 4, 233, 29, 174, 189, 149, 173, 26, 209, 222,\n\t\t140, 255, 112, 68, 162, 116, 228, 179, 31, 100, 208, 140,\n\t\t85, 211, 140, 154, 184, 37, 203, 137, 190, 217, 235, 228,\n\t\t134, 51, 24, 89, 113, 228, 141, 251, 7, 138, 31, 228, 181,\n\t\t10, 229, 194, 2, 213, 88, 143, 37, 193, 130, 246, 29, 104,\n\t\t223, 6, 229, 177, 203, 185, 25, 108, 51, 11, 107, 177, 7,\n\t\t63, 25, 168, 97, 8, 43, 23, 46, 205, 140, 2, 52, 228, 71,\n\t\t31, 208, 196, 6, 43, 50, 66, 239, 130, 103, 18, 1, 57, 28,\n\t\t132, 99, 198, 15, 239, 87, 244, 36, 204, 11, 33, 73, 128,\n\t\t10, 49, 36, 134, 15, 252, 158, 69, 202, 139, 18, 136, 116,\n\t\t27, 10, 206, 248, 39, 99, 242, 96, 242, 96, 220, 168, 214,\n\t\t201, 91, 59, 93, 182, 112, 30, 106, 173, 188, 83, 9, 169,\n\t\t86, 123, 190, 72, 85, 33, 146, 90, 30, 102, 221, 67, 171,\n\t\t28, 182, 93, 187, 237, 117, 83, 230, 241, 175, 242, 97, 188,\n\t\t155, 171, 203, 72, 63, 46, 253, 202, 204, 75, 137, 105, 191,\n\t\t116, 211, 254, 37, 124, 227, 76, 223, 141, 169, 227, 239,\n\t\t102, 241, 198, 33, 161, 7, 86, 59, 28, 209, 119, 249, 207,\n\t\t131, 37, 105, 119, 110, 175, 17, 41, 142, 187, 217, 231, 71,\n\t\t63, 218, 175, 83, 193, 81, 131, 182, 138, 51, 141, 255, 158,\n\t\t247, 243, 3, 0, 245, 204, 201, 233, 130, 201, 209, 147, 244,\n\t\t162, 242, 174, 56, 207, 169, 104, 188, 153, 216, 106, 117,\n\t\t105, 221, 182, 247, 216, 185, 122, 44, 181, 47, 239, 52, 27,\n\t\t107, 33, 151, 101, 24, 139, 166, 247, 226, 186, 15, 142, 189,\n\t\t27, 176, 71, 30, 30, 54, 172, 171, 15, 105, 68, 150, 99, 38,\n\t\t9, 49, 146, 10, 214, 130, 250, 4, 93, 69, 163, 36, 201, 20,\n\t\t242, 140, 247, 242, 31, 11, 5, 167, 202, 36, 39, 103, 234,\n\t\t245, 50, 29, 0, 191, 79, 178, 154, 210, 56, 217, 78, 163,\n\t\t232, 255, 220, 190, 121, 177, 127, 17, 104, 85, 200, 117,\n\t\t57, 95, 188, 95, 122, 249, 234, 45, 145, 233, 11, 118, 124,\n\t\t198, 120, 36, 245, 86, 175, 11, 53, 19, 22, 218, 98, 118,\n\t\t244, 197, 213, 176, 153, 10, 90, 32, 122, 46, 54, 18, 193,\n\t\t249, 225, 60, 192, 141, 205, 98, 192, 125, 165, 0, 239, 13,\n\t\t34, 146, 104, 82, 19, 17, 192, 93, 209, 54, 170, 237, 4, 66,\n\t\t250, 61, 22, 27, 80, 191, 110, 204, 220, 147, 101, 61, 201,\n\t\t205, 192, 153, 10, 62, 194, 30, 113, 242, 241, 42, 154, 170,\n\t\t180, 76, 41, 155, 174, 55, 97, 46, 90, 160, 47, 75, 99, 214,\n\t\t230, 9, 205, 228, 249, 236, 66, 246, 222, 42, 45, 164, 215,\n\t\t163, 156, 25, 51, 107, 164, 186, 235, 212, 224, 182, 161,\n\t\t143, 81, 171, 164, 67, 63, 55, 66, 168, 106, 243, 114, 146,\n\t\t193, 40, 142, 185, 184, 217, 247, 193, 168, 122, 192, 34,\n\t\t120, 75, 243, 159, 214, 22, 154, 177, 239, 114, 48, 20, 114,\n\t\t159, 66, 220, 181, 161, 44, 217, 71, 234, 211, 191, 142, 104,\n\t\t164, 116, 23, 218, 45, 134, 56, 251, 184, 175, 212, 252, 212,\n\t\t61, 168, 187, 34, 213, 246, 91, 112, 253, 101, 23, 213, 34,\n\t\t105, 76, 222, 154, 154, 137, 99, 68, 223, 85, 11, 246, 212,\n\t\t255, 121, 21, 17, 198, 254, 116, 37, 242, 234, 22, 198, 135,\n\t\t239, 28, 244, 111, 148, 240, 59, 141, 64, 12, 199, 173, 195,\n\t\t102, 245, 1, 107, 219, 100, 216, 35, 21, 153, 193, 205, 179,\n\t\t176, 205, 223, 27, 89, 176, 28, 44, 23, 83, 162, 16, 235,\n\t\t44, 215, 155, 18, 83, 11, 119, 119, 88, 77, 180, 151, 197,\n\t\t22, 232, 116, 65, 11, 62, 120, 206, 76, 55, 248, 30, 41, 195,\n\t\t23, 63, 186, 10, 240, 38, 86, 161, 211, 238, 209, 242, 125,\n\t\t139, 179, 149, 126, 98, 248, 226, 44, 203, 118, 214, 223,\n\t\t170, 65, 175, 193, 176, 199, 180, 199, 186, 70, 217, 166,\n\t\t230, 167, 230, 191, 103, 179, 30, 139, 136, 124, 65, 32, 234,\n\t\t64, 78, 2, 67, 91, 226, 45, 91, 178, 157, 106, 126, 23, 24,\n\t\t149, 9, 151, 142, 128, 127, 151, 102, 195, 9, 55, 99, 191,\n\t\t148, 168, 228, 134, 213, 194, 126, 165, 12, 55, 1, 129, 240,\n\t\t79, 230, 244, 17, 93, 142, 183, 9, 218, 185, 224, 180, 170,\n\t\t228, 137, 209, 30, 164, 44, 82, 90, 197, 109, 217, 229, 178,\n\t\t29, 64, 10, 235, 82, 143, 181, 200, 251, 141, 20, 176, 180,\n\t\t229, 118, 176, 221, 253, 87, 189, 147, 119, 96, 145, 69, 126,\n\t\t128, 157, 114, 3, 168, 210, 223, 112, 97, 193, 161, 163, 100,\n\t\t85, 60, 250, 157, 194, 100, 173, 85, 49, 30, 151, 247, 160,\n\t\t119, 69, 45, 42, 182, 40, 254, 138, 157, 17, 153, 65, 13,\n\t\t237, 13, 141, 22, 254, 38, 89, 12, 110, 18, 44, 30, 202, 34,\n\t\t2, 110, 32, 37, 189, 97, 145, 83, 153, 52, 165, 242, 151,\n\t\t51, 185, 18, 191, 170, 16, 8, 223, 90, 6, 164, 98, 9, 190,\n\t\t44, 52, 99, 161, 207, 44, 97, 118, 253, 164, 87, 39, 127,\n\t\t53, 44, 221, 151, 219, 133, 52, 26, 75, 169, 67, 205, 64,\n\t\t147, 218, 138, 37, 39, 71, 9, 46, 15, 37, 14, 67, 57, 98,\n\t\t90, 64, 62, 36, 150, 150, 222, 153, 36, 198, 34, 225, 47,\n\t\t29, 33, 50, 6, 17, 160, 153, 236, 151, 94, 55, 41, 210, 74,\n\t\t92, 204, 58, 251, 13, 117, 35, 98, 180, 24, 58, 125, 148,\n\t\t76, 69, 1, 180, 228, 175, 159, 13, 16, 187, 146, 189, 233,\n\t\t61, 60, 151, 229, 120, 152, 47, 241, 44, 168, 0, 90, 153,\n\t\t103, 25, 101, 228, 54, 107, 215, 238, 196, 122, 200, 187,\n\t\t141, 63, 53, 232, 211, 165, 138, 44, 98, 166, 246, 95, 105,\n\t\t32, 88, 204, 77, 138, 225, 160, 148, 179, 167, 14, 65, 86,\n\t\t208, 163, 55, 60, 200, 138, 173, 252, 85, 175, 156, 180, 3,\n\t\t47, 84, 122, 251, 225, 18, 148, 187, 218, 166, 48, 19, 109,\n\t\t120, 253, 180, 156, 98, 96, 232, 174, 202, 44, 13, 207, 83,\n\t\t100, 120, 60, 125, 238, 174, 120, 202, 198, 243, 245, 191,\n\t\t28, 200, 45, 191, 30, 118, 184, 135, 115, 204, 156, 65, 194,\n\t\t217, 126, 210, 123, 20, 125, 52, 11, 130, 161, 156, 76, 208,\n\t\t9, 235, 12, 133, 10, 4, 37, 194, 12, 253, 23, 127, 86, 176,\n\t\t131, 55, 79, 50, 139, 98, 71, 161, 199, 205, 217, 109, 15,\n\t\t67, 29, 37, 98, 93, 7, 10, 190, 166, 141, 17, 132, 206, 243,\n\t\t166, 8, 199, 97, 83, 21, 18, 228, 204, 157, 76, 130, 98, 70,\n\t\t105, 221, 194, 107, 137, 185, 84, 136, 74, 91, 132, 122, 93,\n\t\t67, 66, 228, 157, 46, 66, 249, 72, 130, 131, 1, 135, 20, 239,\n\t\t95, 4, 55, 157, 157, 159, 80, 38, 86, 41, 182, 127, 176, 18,\n\t\t94, 159, 50, 219, 51, 245, 193, 165, 160, 199, 72, 167, 144,\n\t\t81, 238, 83, 138, 24, 96, 61, 53, 59, 225, 35, 147, 180, 161,\n\t\t72, 47, 192, 186, 165, 205, 201, 28, 137, 171, 170, 122, 14,\n\t\t194, 241, 49, 73, 94, 120, 106, 33, 50, 156, 64, 74, 212,\n\t\t118, 125, 103, 37, 247, 58, 138, 6, 209, 35, 164, 104, 140,\n\t\t16, 45, 148, 90, 88, 134, 252, 157, 232, 77, 170, 8, 143,\n\t\t106, 22, 67, 156, 173, 4, 95, 117, 49, 121, 237, 195, 25,\n\t\t223, 67, 23, 109, 6, 92, 254, 132, 69, 183, 8, 191, 10, 78,\n\t\t175, 31, 71, 48, 30, 5, 22, 70, 102, 137, 227, 30, 217, 54,\n\t\t207, 34, 6, 221, 63, 42, 162, 187, 73, 178, 33, 55, 136, 165,\n\t\t143, 117, 48, 144, 22, 207, 144, 208, 30, 92, 118, 198, 109,\n\t\t63, 127, 95, 157, 12, 223, 104, 24, 97, 2, 64, 246, 105, 187,\n\t\t178, 251, 86, 72, 146, 34, 235, 147, 226, 62, 184, 22, 234,\n\t\t219, 224, 37, 134, 79, 170, 188, 218, 194, 3, 165, 61, 34,\n\t\t78, 228, 191, 76, 49, 40, 102, 119, 104, 48, 156, 181, 197,\n\t\t133, 32, 199, 104, 33, 123, 194, 230, 117, 100, 140, 1, 126,\n\t\t191, 139, 154, 146, 59, 79, 35, 126, 231, 218, 15, 227, 88,\n\t\t47, 0, 211, 117, 189, 159, 242, 192, 52, 48, 68, 134, 255,\n\t\t130, 147, 94, 215, 232, 91, 208, 148, 65, 233, 83, 27, 231,\n\t\t42, 203, 62, 57, 51, 19, 237, 50, 193, 169, 88, 239, 168,\n\t\t253, 246, 195, 107, 238, 249, 74, 89, 158, 102, 188, 120,\n\t\t230, 240, 113, 183, 211, 235, 214, 214, 85, 133, 25, 66, 65,\n\t\t145, 86, 205, 94, 111, 228, 214, 187, 194, 122, 168, 209,\n\t\t158, 169, 4, 86, 47, 58, 23, 14, 100, 64, 51, 252, 186, 178,\n\t\t224, 123, 107, 37, 226, 253, 90, 244, 114, 237, 106, 22, 29,\n\t\t57, 120, 214, 237, 155, 72, 250, 190, 181, 224, 138, 124,\n\t\t32, 183, 68, 98, 36, 83, 1, 77, 115, 79, 228, 126, 253, 155,\n\t\t160, 221, 180, 207, 153, 86, 161, 113, 213, 206, 111, 135,\n\t\t33, 143, 183, 148, 171, 5, 187, 63, 27, 38, 97, 69, 159, 221,\n\t\t122, 152, 210, 47, 21, 14, 94, 29, 126, 177, 162, 75, 205,\n\t\t121, 142, 210, 84, 227, 55, 118, 88, 67, 166, 81, 141, 137,\n\t\t201, 62, 128, 28, 67, 18, 85, 161, 210, 137, 85, 74, 247,\n\t\t37, 50, 189, 180, 223, 165, 140, 58, 20, 124, 164, 162, 7,\n\t\t66, 137, 74, 238, 47, 142, 68, 0, 150, 75, 101, 50, 234, 229,\n\t\t235, 43, 35, 229, 15, 121, 115, 12, 182, 26, 76, 51, 177,\n\t\t145, 22, 7, 199, 156, 16, 234, 17, 72, 196, 9, 169, 59, 127,\n\t\t123, 182, 137, 151, 51, 227, 116, 147, 143, 187, 123, 129,\n\t\t41, 77, 114, 130, 158, 227, 205, 104, 114, 2, 87, 29, 117,\n\t\t100, 70, 142, 241, 118, 66, 106, 255, 166, 51, 104, 165, 85,\n\t\t163, 5, 241, 247, 244, 16, 87, 157, 177, 181, 171, 185, 43,\n\t\t117, 91, 3, 189, 174, 0, 14, 180, 135, 40, 23, 229, 94, 68,\n\t\t22, 25, 215, 247, 91, 88, 178, 148, 99, 183, 160, 47, 116,\n\t\t13, 158, 222, 30, 250, 82, 28, 52, 14, 85, 200, 12, 178, 91,\n\t\t24, 73, 64, 76, 191, 209, 237, 53, 207, 7, 209, 224, 215,\n\t\t105, 58, 111, 106, 177, 243, 152, 175, 7, 245, 86, 216, 181,\n\t\t190, 166, 166, 84, 82, 216, 13, 207, 242, 220, 198, 141, 215,\n\t\t115, 158, 125, 171, 166, 86, 153, 251, 11, 2, 28, 158, 109,\n\t\t80, 128, 167, 129, 208, 135, 129, 24, 147, 200, 56, 234, 122,\n\t\t240, 108, 116, 174, 190, 205, 227, 0, 106, 112, 191, 248,\n\t\t157, 230, 0, 40, 146, 75, 193, 92, 101, 164, 236, 234, 110,\n\t\t154, 202, 95, 94, 163, 18, 212, 44, 173, 137, 241, 194, 214,\n\t\t220, 1, 231, 93, 213, 34, 21, 170, 132, 245, 242, 69, 115,\n\t\t82, 8, 121, 121, 213, 82, 58, 243, 150, 140, 230, 150, 128,\n\t\t175, 147, 28, 98, 7, 133, 225, 223, 162, 165, 6, 240, 148,\n\t\t199, 21, 229, 57, 17, 47, 61, 160, 87, 170, 97, 121, 142,\n\t\t66, 220, 148, 208, 162, 219, 243, 115, 244, 9, 129, 88, 82,\n\t\t119, 228, 231, 145, 57, 211, 168, 223, 87, 225, 40, 55, 96,\n\t\t158, 2, 174, 48, 112, 56, 127, 37, 37, 108, 170, 81, 180,\n\t\t210, 70, 89, 207, 107, 246, 205, 185, 30, 105, 84, 191, 33,\n\t\t102, 150, 8, 142, 135, 44, 231, 212, 238, 209, 82, 201, 85,\n\t\t168, 53, 7, 39, 229, 74, 137, 63, 146, 27, 112, 102, 44, 168,\n\t\t44, 168, 178, 215, 222, 178, 40, 90, 221, 91, 109, 222, 93,\n\t\t153, 177, 228, 112, 154, 91, 52, 50, 108, 205, 143, 101, 92,\n\t\t26, 219, 117, 140, 103, 162, 191, 70, 178, 220, 4, 139, 188,\n\t\t220, 156, 218, 175, 143, 236, 194, 0, 72, 243, 151, 85, 91,\n\t\t10, 207, 147, 102, 13, 74, 115, 207, 106, 67, 173, 64, 37,\n\t\t206, 243, 46, 150, 188, 162, 208, 217, 118, 238, 13, 120,\n\t\t248, 196, 55, 21, 141, 229, 236, 39, 111, 182, 84, 181, 96,\n\t\t112, 210, 187, 234, 96, 168, 34, 28, 170, 193, 99, 116, 210,\n\t\t122, 172, 193, 86, 181, 43, 208, 19, 177, 157, 142, 250, 223,\n\t\t182, 62, 254, 71, 195, 71, 69, 116, 92, 53, 147, 5, 31, 26,\n\t\t23, 8, 162, 239, 146, 27, 27, 223, 124, 232, 247, 55, 8, 108,\n\t\t108, 157, 161, 40, 246, 252, 96, 236, 116, 176, 65, 196, 220,\n\t\t106, 3, 218, 212, 81, 69, 121, 16, 240, 124, 140, 69, 219,\n\t\t184, 64, 157, 83, 185, 207, 196, 120, 98, 201, 119, 168, 47,\n\t\t30, 94, 108, 96, 227, 163, 185, 107, 209, 91, 87, 100, 222,\n\t\t86, 79, 239, 14, 212, 242, 179, 75, 101, 233, 26, 127, 194,\n\t\t204, 207, 231, 167, 103, 77, 111, 210, 52, 8, 136, 176, 145,\n\t\t116, 188, 184, 77, 89, 214, 173, 224, 227, 248, 245, 77, 239,\n\t\t161, 195, 216, 75, 239, 198, 198, 119, 87, 44, 162, 245, 70,\n\t\t190, 75, 65, 2, 21, 18, 81, 143, 191, 177, 247, 251, 112,\n\t\t117, 63, 166, 34, 28, 207, 7, 169, 55, 246, 105, 41, 217,\n\t\t229, 94, 209, 10, 180, 176, 63, 115, 193, 136, 118, 14, 97,\n\t\t146, 61, 19, 248, 52, 215, 41, 177, 122, 52, 148, 17, 235,\n\t\t41, 132, 40, 241, 98, 1, 57, 168, 47, 76, 199, 94, 221, 132,\n\t\t184, 146, 100, 113, 21, 94, 205, 60, 59, 70, 209, 158, 176,\n\t\t196, 75, 245, 140, 69, 172, 215, 145, 117, 42, 243, 200, 44,\n\t\t74, 20, 16, 149, 199, 252, 150, 191, 86, 249, 17, 65, 172,\n\t\t55, 150, 159, 131, 89, 64, 175, 8, 120, 113, 200, 96, 24,\n\t\t156, 152, 215, 44, 186, 96, 168, 189, 171, 118, 5, 251, 158,\n\t\t214, 201, 145, 129, 201, 197, 197, 201, 153, 142, 156, 116,\n\t\t36, 216, 130, 115, 78, 230, 58, 68, 226, 122, 11, 59, 233,\n\t\t202, 229, 192, 68, 208, 25, 52, 129, 166, 197, 129, 177, 251,\n\t\t67, 204, 51, 219, 235, 168, 79, 70, 91, 81, 141, 155, 7, 137,\n\t\t26, 134, 132, 247, 200, 19, 169, 187, 9, 129, 91, 253, 208,\n\t\t30, 41, 83, 28, 233, 187, 45, 243, 10, 165, 63, 19, 102, 6,\n\t\t71, 141, 166, 13, 243, 35, 148, 77, 65, 78, 193, 176, 73,\n\t\t30, 152, 197, 78, 115, 226, 237, 33, 247, 59, 192, 187, 161,\n\t\t36, 152, 218, 247, 105, 113, 202, 238, 231, 26, 234, 87, 32,\n\t\t231, 147, 183, 174, 114, 42, 154, 138, 130, 194, 254, 74,\n\t\t115, 120, 43, 138, 89, 77, 166, 179, 228, 95, 229, 107, 40,\n\t\t29, 73, 112, 95, 247, 143, 203, 151, 57, 81, 102, 137, 22,\n\t\t228, 16, 223, 124, 147, 190, 68, 155, 41, 14, 64, 162, 40,\n\t\t241, 75, 89, 127, 97, 194, 201, 100, 161, 90, 206, 109, 206,\n\t\t237, 65, 250, 232, 57, 33, 237, 94, 247, 66, 232, 188, 0,\n\t\t238, 232, 28, 85, 45, 5, 170, 222, 202, 170, 180, 234, 182,\n\t\t96, 255, 162, 27, 237, 215, 74, 235, 25, 240, 49, 13, 44,\n\t\t169, 208, 224, 77, 48, 47, 228, 224, 239, 237, 45, 193, 135,\n\t\t219, 17, 105, 143, 38, 202, 113, 0, 166, 1, 248, 236, 58,\n\t\t40, 108, 205, 28, 43, 104, 212, 150, 141, 163, 115, 184, 21,\n\t\t52, 70, 208, 10, 152, 42, 111, 62, 89, 94, 74, 9, 143, 110,\n\t\t226, 33, 98, 25, 218, 145, 87, 194, 150, 84, 216, 32, 125,\n\t\t178, 126, 200, 10, 133, 23, 102, 232, 243, 187, 184, 239,\n\t\t29, 198, 17, 183, 52, 58, 45, 98, 45, 234, 217, 4, 169, 218,\n\t\t175, 223, 219, 224, 22, 14, 252, 35, 141, 245, 8, 110, 38,\n\t\t193, 195, 39, 168, 198, 40, 200, 118, 116, 78, 73, 145, 8,\n\t\t187, 92, 193, 46, 228, 130, 190, 119, 80, 4, 220, 254, 151,\n\t\t216, 159, 68, 27, 254, 239, 175, 119, 38, 59, 129, 224, 130,\n\t\t104, 224, 176, 221, 31, 176, 222, 124, 41, 146, 243, 168,\n\t\t12, 212, 108, 72, 170, 147, 218, 54, 145, 119, 243, 187, 88,\n\t\t136, 132, 179, 206, 224, 170, 58, 97, 76, 192, 212, 157, 180,\n\t\t128, 156, 15, 197, 103, 134, 231, 244, 28, 201, 109, 77, 47,\n\t\t147, 159, 108, 65, 91, 135, 128, 178, 175, 237, 101, 177,\n\t\t74, 21, 127, 139, 179, 228, 39, 147, 88, 164, 95, 217, 94,\n\t\t238, 31, 124, 87, 207, 123, 92, 2, 31, 151, 217, 158, 221,\n\t\t37, 141, 22, 123, 2, 76, 127, 226, 251, 117, 232, 73, 64,\n\t\t245, 61, 254, 18, 183, 153, 112, 98, 196, 165, 102, 24, 121,\n\t\t67, 210, 10, 101, 36, 97, 201, 91, 193, 33, 101, 249, 157,\n\t\t218, 191, 30, 164, 136, 171, 223, 1, 51, 42, 144, 8, 248,\n\t\t163, 246, 165, 39, 111, 76, 40, 33, 5, 254, 4, 202, 22, 240,\n\t\t136, 81, 116, 133, 122, 203, 102, 20, 197, 158, 56, 172, 174,\n\t\t182, 25, 29, 172, 158, 63, 62, 158, 63, 230, 107, 255, 177,\n\t\t139, 160, 10, 234, 226, 114, 63, 34, 26, 191, 169, 192, 229,\n\t\t4, 120, 43, 87, 151, 90, 224, 177, 1, 30, 235, 165, 30, 27,\n\t\t114, 98, 67, 96, 98, 54, 140, 114, 82, 39, 120, 15, 73, 233,\n\t\t141, 139, 216, 199, 41, 171, 217, 241, 158, 56, 61, 199, 28,\n\t\t114, 143, 41, 126, 104, 153, 86, 112, 75, 75, 12, 245, 11,\n\t\t245, 105, 222, 222, 34, 96, 233, 150, 112, 37, 109, 240, 54,\n\t\t2, 96, 102, 194, 237, 202, 221, 106, 254, 61, 108, 147, 97,\n\t\t118, 43, 35, 55, 228, 218, 30, 128, 174, 71, 135, 222, 255,\n\t\t94, 200, 227, 187, 174, 204, 253, 197, 151, 63, 207, 136,\n\t\t195, 142, 27, 50, 204, 53, 127, 32, 78, 254, 116, 18, 203,\n\t\t206, 245, 181, 243, 167, 8, 197, 124, 144, 216, 11, 95, 248,\n\t\t182, 176, 237, 215, 181, 127, 237, 144, 183, 52, 211, 251,\n\t\t88, 94, 196, 236, 190, 202, 142, 255, 121, 185, 195, 12, 255,\n\t\t151, 107, 249, 243, 24, 238, 248, 230, 163, 183, 255, 251,\n\t\t226, 51, 86, 239, 207, 151, 63, 81, 94, 49, 51, 211, 143,\n\t\t1, 246, 66, 228, 66, 140, 198, 213, 179, 12, 249, 45, 24,\n\t\t168, 35, 72, 197, 6, 169, 95, 130, 81, 14, 79, 196, 105, 103,\n\t\t36, 152, 122, 87, 20, 122, 199, 23, 40, 219, 108, 105, 48,\n\t\t238, 90, 60, 250, 108, 99, 159, 29, 160, 107, 255, 234, 130,\n\t\t2, 167, 244, 140, 13, 155, 197, 236, 227, 8, 201, 31, 249,\n\t\t149, 21, 172, 167, 3, 220, 215, 13, 52, 146, 106, 136, 168,\n\t\t96, 242, 95, 179, 30, 181, 25, 187, 111, 26, 150, 48, 40,\n\t\t24, 89, 214, 190, 20, 49, 200, 173, 158, 4, 9, 238, 121, 200,\n\t\t249, 161, 245, 88, 134, 90, 243, 24, 167, 240, 50, 197, 57,\n\t\t139, 154, 0, 166, 6, 134, 210, 192, 31, 77, 150, 46, 17, 11,\n\t\t94, 111, 229, 173, 69, 113, 151, 110, 163, 202, 151, 114,\n\t\t157, 115, 178, 55, 161, 8, 37, 243, 206, 37, 148, 90, 159,\n\t\t230, 159, 0, 72, 82, 17, 230, 214, 108, 252, 29, 14, 143,\n\t\t254, 141, 63, 172, 5, 251, 143, 146, 42, 68, 129, 65, 189,\n\t\t49, 220, 215, 23, 110, 76, 204, 210, 25, 216, 145, 232, 142,\n\t\t222, 200, 207, 52, 87, 11, 86, 16, 81, 15, 49, 105, 166, 181,\n\t\t153, 249, 93, 150, 41, 121, 195, 85, 8, 138, 232, 19, 225,\n\t\t46, 232, 246, 91, 191, 151, 32, 34, 234, 104, 188, 7, 232,\n\t\t209, 117, 203, 240, 130, 190, 253, 145, 207, 213, 143, 161,\n\t\t75, 246, 36, 133, 62, 57, 24, 95, 77, 198, 255, 130, 63, 114,\n\t\t246, 129, 9, 149, 251, 226, 206, 98, 158, 146, 119, 85, 138,\n\t\t52, 181, 200, 26, 84, 100, 16, 140, 100, 46, 13, 188, 21,\n\t\t218, 94, 95, 105, 194, 169, 194, 15, 20, 246, 104, 158, 50,\n\t\t168, 226, 26, 43, 57, 116, 28, 62, 216, 12, 29, 27, 29, 118,\n\t\t244, 245, 14, 140, 45, 175, 83, 244, 237, 99, 192, 242, 202,\n\t\t157, 93, 83, 90, 105, 200, 17, 53, 51, 53, 201, 94, 222, 194,\n\t\t245, 75, 3, 2, 64, 12, 118, 63, 131, 132, 222, 39, 12, 190,\n\t\t27, 126, 200, 94, 11, 178, 157, 243, 63, 158, 12, 60, 9, 3,\n\t\t174, 5, 255, 24, 148, 119, 211, 59, 234, 171, 240, 124, 8,\n\t\t96, 223, 27, 64, 216, 106, 96, 165, 133, 201, 239, 213, 57,\n\t\t10, 220, 62, 4, 46, 16, 60, 82, 140, 204, 117, 33, 35, 182,\n\t\t237, 1, 180, 238, 94, 161, 2, 221, 54, 13, 40, 250, 92, 146,\n\t\t89, 113, 37, 124, 155, 24, 0, 135, 83, 115, 114, 167, 119,\n\t\t229, 204, 193, 130, 204, 212, 40, 187, 28, 216, 176, 113,\n\t\t152, 94, 153, 84, 151, 49, 23, 231, 89, 69, 223, 255, 150,\n\t\t190, 68, 122, 50, 153, 94, 59, 62, 146, 3, 74, 179, 174, 108,\n\t\t8, 169, 153, 191, 29, 79, 67, 148, 67, 186, 140, 175, 118,\n\t\t148, 195, 148, 149, 188, 201, 48, 196, 37, 200, 73, 183, 105,\n\t\t241, 96, 3, 22, 223, 230, 190, 58, 236, 46, 94, 108, 90, 190,\n\t\t202, 153, 124, 133, 61, 220, 219, 75, 207, 174, 215, 143,\n\t\t52, 29, 93, 253, 13, 102, 32, 123, 196, 77, 50, 122, 159,\n\t\t228, 74, 25, 81, 229, 140, 109, 118, 39, 98, 198, 82, 6, 148,\n\t\t192, 89, 86, 205, 32, 55, 104, 64, 223, 133, 49, 82, 26, 13,\n\t\t196, 13, 196, 152, 132, 127, 204, 130, 144, 122, 244, 60,\n\t\t149, 95, 139, 111, 17, 138, 11, 97, 154, 64, 30, 168, 237,\n\t\t159, 188, 224, 252, 44, 65, 42, 17, 60, 59, 100, 181, 236,\n\t\t252, 227, 188, 141, 250, 188, 8, 168, 56, 13, 3, 209, 107,\n\t\t130, 135, 103, 126, 243, 98, 79, 103, 147, 217, 145, 31, 165,\n\t\t50, 95, 79, 177, 131, 172, 47, 209, 30, 75, 97, 44, 110, 160,\n\t\t130, 118, 64, 107, 97, 151, 4, 132, 14, 212, 243, 92, 166,\n\t\t6, 134, 19, 35, 229, 85, 215, 227, 198, 134, 187, 16, 171,\n\t\t161, 213, 48, 12, 30, 148, 39, 66, 112, 91, 51, 201, 225,\n\t\t48, 99, 61, 226, 219, 47, 143, 214, 241, 100, 65, 209, 188,\n\t\t28, 105, 227, 149, 245, 160, 88, 244, 14, 130, 244, 186, 37,\n\t\t108, 35, 102, 118, 147, 172, 212, 235, 232, 38, 67, 46, 110,\n\t\t31, 54, 43, 224, 37, 164, 45, 178, 138, 123, 98, 158, 243,\n\t\t208, 146, 84, 227, 199, 14, 74, 8, 218, 33, 165, 76, 229,\n\t\t231, 156, 28, 125, 124, 242, 58, 96, 82, 202, 19, 223, 121,\n\t\t181, 53, 174, 200, 103, 227, 184, 189, 13, 226, 135, 125,\n\t\t210, 28, 87, 225, 178, 155, 226, 163, 78, 183, 180, 203, 188,\n\t\t10, 224, 225, 40, 31, 206, 50, 231, 67, 93, 169, 59, 48, 155,\n\t\t151, 119, 140, 118, 217, 106, 33, 178, 46, 38, 145, 135, 131,\n\t\t76, 202, 132, 211, 144, 202, 163, 171, 217, 140, 67, 201,\n\t\t36, 84, 91, 115, 86, 96, 179, 10, 145, 232, 45, 85, 134, 155,\n\t\t56, 118, 34, 157, 70, 50, 73, 107, 134, 7, 200, 208, 240,\n\t\t23, 35, 203, 166, 70, 187, 80, 46, 25, 37, 17, 195, 22, 209,\n\t\t43, 23, 71, 160, 163, 17, 184, 218, 86, 28, 215, 209, 201,\n\t\t164, 89, 70, 149, 214, 232, 48, 55, 217, 93, 86, 118, 208,\n\t\t154, 132, 41, 138, 30, 168, 130, 82, 36, 217, 234, 205, 184,\n\t\t78, 68, 123, 121, 202, 52, 72, 235, 38, 144, 175, 35, 83,\n\t\t240, 48, 177, 14, 170, 148, 145, 183, 107, 133, 104, 97, 91,\n\t\t103, 58, 37, 14, 196, 42, 36, 81, 94, 172, 10, 101, 118, 49,\n\t\t134, 7, 38, 148, 165, 115, 176, 147, 226, 210, 22, 150, 82,\n\t\t131, 172, 173, 179, 43, 227, 199, 168, 22, 72, 164, 202, 104,\n\t\t167, 220, 165, 202, 56, 170, 31, 198, 146, 119, 212, 116,\n\t\t106, 70, 64, 70, 11, 101, 247, 152, 103, 129, 95, 29, 117,\n\t\t80, 72, 132, 122, 232, 85, 56, 236, 95, 245, 186, 121, 49,\n\t\t112, 228, 30, 49, 79, 163, 162, 164, 168, 180, 89, 71, 47,\n\t\t162, 120, 209, 0, 49, 165, 90, 232, 89, 97, 102, 241, 251,\n\t\t49, 199, 208, 249, 186, 69, 68, 43, 76, 109, 18, 175, 48,\n\t\t132, 25, 216, 224, 90, 214, 226, 168, 240, 186, 116, 199,\n\t\t234, 231, 10, 75, 141, 10, 53, 71, 213, 10, 166, 20, 76, 101,\n\t\t209, 178, 66, 139, 145, 149, 32, 242, 184, 186, 49, 164, 211,\n\t\t112, 150, 197, 76, 131, 42, 42, 85, 232, 141, 134, 54, 191,\n\t\t139, 57, 145, 47, 250, 56, 48, 108, 145, 165, 65, 113, 89,\n\t\t244, 206, 199, 152, 217, 202, 41, 60, 8, 206, 33, 156, 133,\n\t\t145, 44, 251, 151, 229, 119, 156, 187, 184, 7, 31, 223, 224,\n\t\t25, 53, 248, 244, 212, 130, 211, 73, 23, 68, 10, 248, 209,\n\t\t24, 178, 31, 30, 140, 219, 117, 207, 194, 202, 242, 238, 108,\n\t\t53, 184, 244, 100, 213, 92, 149, 234, 197, 87, 40, 209, 89,\n\t\t16, 162, 181, 198, 150, 97, 139, 113, 112, 64, 134, 19, 143,\n\t\t79, 169, 195, 223, 96, 189, 129, 64, 179, 95, 21, 114, 170,\n\t\t106, 211, 39, 166, 9, 169, 130, 210, 118, 242, 113, 9, 104,\n\t\t214, 129, 79, 17, 3, 227, 149, 175, 37, 253, 242, 169, 115,\n\t\t204, 251, 82, 216, 168, 149, 109, 67, 108, 73, 148, 15, 36,\n\t\t185, 128, 169, 86, 223, 12, 64, 2, 179, 18, 123, 232, 229,\n\t\t173, 104, 57, 182, 248, 140, 162, 3, 141, 122, 138, 44, 147,\n\t\t228, 135, 118, 235, 99, 233, 121, 243, 191, 183, 135, 121,\n\t\t221, 84, 125, 15, 155, 175, 21, 84, 139, 182, 222, 254, 197,\n\t\t149, 237, 238, 165, 246, 94, 11, 85, 119, 189, 135, 21, 168,\n\t\t169, 230, 110, 241, 199, 35, 85, 210, 116, 225, 32, 182, 47,\n\t\t197, 102, 166, 13, 96, 227, 251, 126, 248, 246, 227, 250,\n\t\t241, 163, 49, 198, 209, 75, 151, 143, 77, 73, 211, 172, 146,\n\t\t94, 107, 240, 88, 175, 93, 198, 92, 127, 209, 247, 81, 238,\n\t\t55, 140, 1, 223, 103, 133, 175, 15, 204, 171, 135, 62, 183,\n\t\t183, 66, 173, 189, 147, 61, 143, 50, 179, 10, 158, 145, 245,\n\t\t172, 97, 249, 51, 146, 29, 105, 200, 47, 141, 224, 118, 67,\n\t\t28, 199, 56, 56, 223, 180, 126, 211, 223, 249, 114, 106, 198,\n\t\t200, 125, 167, 42, 115, 222, 127, 181, 96, 7, 15, 28, 80,\n\t\t103, 74, 252, 61, 204, 15, 180, 165, 93, 228, 36, 179, 30,\n\t\t27, 243, 134, 93, 41, 237, 244, 155, 35, 168, 27, 42, 77,\n\t\t151, 26, 14, 79, 37, 134, 93, 224, 194, 255, 102, 45, 247,\n\t\t252, 149, 157, 154, 246, 38, 239, 57, 243, 68, 206, 149, 221,\n\t\t226, 99, 171, 199, 238, 43, 198, 204, 156, 20, 217, 72, 68,\n\t\t143, 53, 27, 191, 130, 153, 226, 80, 75, 101, 29, 72, 16,\n\t\t99, 23, 111, 149, 243, 12, 73, 116, 40, 181, 251, 64, 237,\n\t\t32, 242, 83, 131, 14, 107, 86, 117, 215, 25, 37, 55, 57, 219,\n\t\t92, 119, 162, 47, 174, 35, 8, 125, 199, 221, 55, 31, 99, 132,\n\t\t66, 43, 231, 204, 2, 70, 171, 229, 156, 207, 128, 53, 41,\n\t\t61, 174, 225, 99, 98, 140, 112, 195, 134, 126, 40, 12, 122,\n\t\t52, 106, 21, 88, 101, 126, 193, 168, 220, 114, 200, 205, 49,\n\t\t166, 102, 64, 179, 193, 84, 94, 134, 22, 162, 72, 99, 222,\n\t\t16, 163, 39, 76, 106, 208, 45, 5, 168, 154, 102, 163, 220,\n\t\t63, 164, 77, 146, 62, 242, 252, 245, 196, 89, 96, 239, 248,\n\t\t194, 195, 238, 85, 15, 199, 137, 30, 132, 92, 112, 29, 66,\n\t\t54, 139, 194, 187, 105, 219, 10, 42, 94, 205, 152, 80, 197,\n\t\t122, 204, 118, 73, 251, 70, 1, 226, 62, 170, 140, 157, 10,\n\t\t207, 60, 0, 67, 76, 233, 238, 172, 145, 146, 149, 194, 163,\n\t\t166, 143, 10, 94, 196, 212, 232, 44, 236, 4, 137, 212, 42,\n\t\t231, 14, 90, 220, 85, 27, 205, 114, 251, 239, 40, 116, 248,\n\t\t64, 81, 161, 21, 226, 44, 11, 120, 84, 139, 174, 78, 246,\n\t\t122, 172, 31, 207, 160, 54, 148, 220, 62, 184, 90, 132, 107,\n\t\t172, 54, 28, 151, 252, 47, 208, 206, 200, 126, 223, 62, 102,\n\t\t168, 247, 240, 180, 212, 31, 27, 148, 184, 91, 97, 128, 145,\n\t\t157, 152, 43, 43, 92, 83, 130, 238, 62, 45, 70, 230, 221,\n\t\t144, 163, 206, 55, 151, 85, 92, 200, 235, 213, 138, 83, 214,\n\t\t21, 172, 196, 195, 60, 71, 154, 66, 253, 169, 162, 41, 13,\n\t\t146, 83, 153, 91, 148, 249, 247, 43, 37, 235, 87, 193, 20,\n\t\t198, 166, 36, 23, 52, 212, 94, 104, 52, 164, 96, 214, 65,\n\t\t7, 75, 83, 181, 168, 132, 122, 108, 253, 85, 68, 37, 168,\n\t\t95, 205, 150, 120, 185, 149, 19, 214, 126, 104, 102, 28, 137,\n\t\t171, 48, 150, 105, 63, 238, 126, 29, 178, 198, 152, 24, 130,\n\t\t146, 117, 219, 31, 11, 148, 52, 3, 243, 62, 15, 191, 230,\n\t\t171, 51, 210, 134, 135, 70, 174, 69, 27, 182, 210, 222, 42,\n\t\t43, 227, 186, 137, 82, 212, 211, 33, 57, 211, 125, 154, 13,\n\t\t151, 238, 142, 66, 102, 15, 158, 16, 198, 70, 78, 31, 41,\n\t\t144, 234, 213, 41, 49, 28, 30, 186, 10, 239, 50, 206, 169,\n\t\t138, 234, 243, 117, 145, 94, 151, 171, 156, 243, 178, 225,\n\t\t26, 60, 244, 3, 218, 5, 13, 85, 165, 98, 99, 207, 222, 3,\n\t\t72, 186, 30, 40, 230, 172, 59, 78, 35, 8, 63, 101, 230, 208,\n\t\t82, 102, 170, 42, 216, 116, 152, 145, 208, 228, 132, 177,\n\t\t48, 26, 169, 101, 146, 86, 36, 118, 105, 59, 250, 242, 246,\n\t\t209, 3, 47, 118, 12, 255, 24, 196, 5, 70, 8, 115, 150, 199,\n\t\t112, 98, 54, 43, 54, 28, 1, 201, 249, 237, 99, 208, 218, 80,\n\t\t207, 147, 16, 102, 3, 241, 169, 98, 30, 212, 152, 83, 44,\n\t\t171, 229, 37, 87, 105, 187, 103, 215, 125, 28, 3, 129, 239,\n\t\t217, 160, 47, 186, 5, 240, 127, 73, 205, 206, 229, 80, 73,\n\t\t86, 122, 228, 157, 92, 31, 227, 79, 157, 30, 68, 169, 123,\n\t\t117, 173, 62, 93, 86, 11, 144, 110, 140, 178, 174, 201, 246,\n\t\t167, 62, 180, 37, 163, 204, 234, 50, 169, 159, 83, 214, 82,\n\t\t229, 135, 146, 188, 208, 168, 180, 52, 186, 86, 92, 91, 193,\n\t\t208, 85, 184, 19, 209, 110, 169, 216, 27, 63, 7, 125, 53,\n\t\t177, 96, 31, 226, 243, 172, 126, 242, 227, 88, 39, 194, 49,\n\t\t111, 33, 253, 170, 39, 207, 69, 2, 18, 92, 111, 32, 221, 74,\n\t\t87, 57, 25, 15, 174, 14, 117, 37, 40, 84, 171, 223, 33, 198,\n\t\t194, 42, 144, 111, 190, 10, 105, 62, 82, 41, 24, 75, 42, 102,\n\t\t59, 30, 145, 85, 145, 133, 133, 206, 122, 166, 255, 12, 122,\n\t\t137, 169, 11, 252, 210, 0, 32, 111, 0, 184, 215, 85, 74, 253,\n\t\t106, 8, 73, 0, 35, 251, 89, 130, 94, 228, 198, 173, 193, 182,\n\t\t182, 1, 174, 126, 43, 123, 125, 11, 115, 99, 169, 149, 13,\n\t\t219, 24, 95, 197, 160, 186, 231, 19, 158, 98, 211, 147, 148,\n\t\t217, 77, 148, 94, 235, 141, 90, 235, 151, 242, 158, 212, 95,\n\t\t151, 98, 197, 142, 245, 243, 106, 130, 156, 215, 200, 167,\n\t\t213, 49, 52, 102, 112, 230, 25, 127, 162, 92, 97, 131, 125,\n\t\t119, 189, 221, 181, 64, 163, 54, 227, 185, 19, 115, 49, 52,\n\t\t16, 82, 45, 113, 128, 145, 103, 199, 114, 162, 182, 168, 125,\n\t\t31, 1, 34, 175, 105, 6, 192, 187, 1, 217, 50, 227, 75, 173,\n\t\t30, 47, 211, 20, 19, 124, 144, 22, 102, 14, 167, 146, 79,\n\t\t208, 36, 235, 8, 15, 203, 205, 239, 90, 106, 206, 102, 82,\n\t\t65, 231, 168, 88, 201, 61, 99, 136, 249, 169, 75, 23, 189,\n\t\t157, 183, 230, 229, 0, 224, 138, 63, 71, 175, 157, 132, 197,\n\t\t21, 4, 33, 85, 104, 100, 230, 92, 31, 33, 147, 140, 86, 58,\n\t\t6, 111, 204, 158, 61, 86, 52, 133, 169, 110, 214, 210, 33,\n\t\t216, 184, 105, 82, 200, 186, 192, 90, 134, 11, 238, 237, 135,\n\t\t219, 22, 71, 189, 225, 191, 198, 101, 249, 199, 246, 148,\n\t\t35, 222, 242, 233, 157, 217, 66, 78, 161, 217, 13, 204, 108,\n\t\t79, 62, 206, 108, 162, 10, 36, 9, 229, 32, 42, 188, 76, 50,\n\t\t107, 220, 169, 3, 236, 125, 193, 66, 40, 96, 30, 66, 231,\n\t\t214, 171, 150, 114, 9, 93, 171, 17, 68, 114, 184, 13, 151,\n\t\t29, 114, 169, 96, 9, 33, 186, 108, 188, 189, 39, 58, 207,\n\t\t234, 184, 187, 50, 111, 134, 107, 142, 109, 163, 181, 192,\n\t\t226, 249, 48, 123, 163, 149, 253, 225, 37, 98, 104, 57, 10,\n\t\t173, 122, 127, 242, 238, 192, 131, 72, 240, 187, 243, 74,\n\t\t4, 27, 115, 29, 235, 76, 250, 43, 255, 168, 23, 2, 192, 37,\n\t\t71, 195, 139, 1, 228, 72, 174, 163, 126, 146, 150, 48, 185,\n\t\t116, 15, 2, 186, 102, 184, 174, 176, 169, 167, 18, 11, 230,\n\t\t215, 15, 141, 22, 185, 27, 98, 100, 98, 68, 50, 123, 96, 100,\n\t\t20, 232, 27, 153, 207, 92, 195, 185, 149, 24, 104, 138, 30,\n\t\t38, 20, 134, 186, 155, 53, 60, 102, 137, 96, 78, 196, 37,\n\t\t22, 229, 149, 140, 132, 89, 47, 95, 18, 108, 224, 126, 68,\n\t\t74, 184, 165, 252, 129, 2, 14, 160, 47, 186, 234, 181, 233,\n\t\t182, 1, 63, 34, 149, 213, 60, 112, 196, 11, 110, 194, 117,\n\t\t245, 2, 129, 62, 229, 207, 112, 22, 49, 46, 188, 140, 40,\n\t\t220, 8, 207, 228, 121, 99, 51, 58, 181, 231, 52, 66, 145,\n\t\t166, 255, 16, 61, 254, 152, 170, 162, 10, 198, 214, 210, 177,\n\t\t195, 65, 56, 112, 38, 59, 96, 192, 86, 127, 86, 229, 71, 252,\n\t\t171, 130, 210, 114, 184, 133, 149, 48, 44, 216, 246, 90, 17,\n\t\t32, 91, 100, 234, 42, 218, 21, 112, 158, 123, 251, 25, 1,\n\t\t83, 60, 124, 110, 101, 244, 44, 73, 56, 215, 226, 243, 20,\n\t\t71, 53, 23, 142, 222, 34, 211, 165, 197, 71, 9, 229, 223,\n\t\t151, 48, 27, 107, 85, 164, 51, 163, 101, 185, 77, 172, 195,\n\t\t122, 110, 251, 162, 22, 168, 29, 218, 44, 35, 88, 82, 142,\n\t\t66, 188, 140, 180, 73, 12, 68, 224, 159, 14, 192, 9, 124,\n\t\t255, 142, 243, 27, 38, 208, 33, 86, 119, 32, 168, 41, 210,\n\t\t185, 186, 21, 146, 144, 144, 97, 208, 5, 140, 167, 177, 119,\n\t\t243, 250, 48, 23, 25, 242, 32, 150, 235, 118, 49, 242, 116,\n\t\t192, 145, 209, 65, 111, 190, 220, 8, 83, 215, 164, 203, 8,\n\t\t78, 51, 76, 93, 213, 107, 40, 255, 185, 189, 126, 241, 59,\n\t\t240, 187, 249, 128, 4, 182, 252, 48, 122, 120, 187, 149, 30,\n\t\t63, 190, 124, 97, 72, 32, 66, 21, 2, 131, 107, 253, 126, 118,\n\t\t138, 169, 22, 190, 194, 70, 27, 108, 74, 74, 102, 200, 170,\n\t\t232, 202, 248, 178, 233, 183, 84, 95, 171, 221, 245, 86, 36,\n\t\t90, 34, 127, 223, 178, 110, 183, 134, 216, 249, 67, 31, 124,\n\t\t153, 2, 231, 67, 33, 101, 99, 79, 165, 19, 222, 97, 73, 169,\n\t\t156, 146, 48, 13, 235, 132, 177, 41, 70, 183, 187, 206, 131,\n\t\t58, 227, 40, 125, 144, 24, 237, 252, 159, 245, 98, 149, 125,\n\t\t28, 152, 90, 232, 238, 151, 7, 118, 35, 121, 75, 232, 23,\n\t\t179, 101, 225, 9, 42, 237, 243, 189, 186, 78, 59, 109, 101,\n\t\t24, 125, 136, 255, 130, 102, 252, 206, 15, 127, 83, 5, 156,\n\t\t71, 181, 97, 166, 0, 146, 119, 139, 39, 65, 12, 6, 208, 30,\n\t\t13, 134, 164, 148, 88, 11, 213, 199, 84, 239, 49, 54, 64,\n\t\t39, 181, 120, 170, 233, 103, 222, 211, 46, 180, 98, 45, 122,\n\t\t168, 128, 59, 15, 152, 84, 201, 153, 250, 228, 192, 232, 252,\n\t\t6, 251, 182, 66, 70, 224, 87, 61, 209, 75, 246, 41, 20, 179,\n\t\t62, 68, 205, 82, 239, 249, 201, 105, 65, 125, 54, 152, 62,\n\t\t50, 18, 96, 228, 123, 55, 145, 239, 183, 224, 211, 226, 25,\n\t\t222, 139, 189, 106, 13, 79, 70, 206, 42, 1, 149, 89, 4, 255,\n\t\t247, 203, 62, 156, 71, 23, 84, 135, 241, 76, 94, 131, 186,\n\t\t192, 234, 150, 11, 43, 208, 102, 57, 149, 36, 230, 27, 145,\n\t\t96, 180, 15, 44, 45, 8, 54, 14, 110, 32, 65, 133, 131, 234,\n\t\t148, 192, 230, 183, 170, 201, 148, 58, 106, 44, 188, 204,\n\t\t108, 149, 250, 130, 72, 81, 91, 116, 130, 143, 216, 32, 202,\n\t\t37, 216, 54, 52, 90, 214, 68, 25, 174, 6, 59, 79, 206, 17,\n\t\t118, 98, 220, 241, 104, 0, 172, 28, 90, 7, 143, 156, 228,\n\t\t18, 243, 146, 247, 138, 86, 32, 188, 74, 227, 42, 35, 140,\n\t\t207, 86, 135, 241, 26, 97, 243, 237, 31, 35, 255, 158, 107,\n\t\t50, 195, 208, 17, 113, 165, 164, 28, 48, 196, 93, 159, 185,\n\t\t85, 104, 246, 111, 254, 165, 252, 58, 213, 165, 134, 207,\n\t\t145, 249, 196, 47, 81, 142, 104, 164, 179, 44, 171, 183, 52,\n\t\t43, 82, 111, 138, 233, 138, 204, 134, 201, 67, 119, 99, 179,\n\t\t11, 194, 209, 43, 231, 99, 127, 106, 113, 87, 252, 154, 119,\n\t\t236, 211, 172, 71, 163, 84, 43, 93, 72, 217, 147, 227, 30,\n\t\t16, 94, 119, 48, 197, 37, 132, 114, 59, 127, 221, 47, 100,\n\t\t110, 197, 9, 162, 63, 250, 113, 238, 146, 177, 56, 185, 148,\n\t\t39, 108, 13, 214, 92, 166, 7, 136, 50, 74, 35, 63, 133, 209,\n\t\t225, 69, 132, 34, 94, 179, 107, 45, 186, 150, 41, 166, 215,\n\t\t92, 37, 149, 182, 242, 141, 244, 242, 141, 181, 4, 95, 171,\n\t\t51, 249, 51, 253, 246, 44, 205, 203, 179, 58, 144, 117, 67,\n\t\t32, 25, 12, 181, 178, 171, 68, 156, 28, 19, 8, 25, 177, 241,\n\t\t12, 12, 68, 67, 156, 112, 250, 100, 50, 53, 112, 67, 210,\n\t\t165, 52, 83, 241, 178, 245, 30, 192, 175, 241, 202, 48, 140,\n\t\t95, 165, 199, 115, 78, 104, 196, 45, 24, 235, 152, 170, 55,\n\t\t232, 211, 54, 237, 21, 244, 116, 201, 116, 116, 201, 180,\n\t\t201, 149, 237, 46, 206, 105, 7, 237, 225, 117, 158, 61, 95,\n\t\t24, 25, 250, 41, 197, 187, 254, 255, 224, 84, 22, 100, 51,\n\t\t10, 171, 252, 217, 185, 34, 71, 40, 113, 151, 113, 81, 192,\n\t\t113, 105, 152, 127, 12, 173, 149, 236, 188, 221, 180, 155,\n\t\t23, 75, 206, 156, 189, 222, 195, 40, 164, 150, 10, 207, 26,\n\t\t136, 62, 76, 54, 53, 212, 180, 10, 42, 148, 172, 172, 27,\n\t\t30, 181, 181, 212, 142, 50, 21, 188, 188, 43, 124, 169, 124,\n\t\t252, 44, 226, 202, 105, 179, 213, 154, 215, 238, 83, 136,\n\t\t254, 186, 188, 208, 191, 179, 240, 130, 165, 240, 34, 145,\n\t\t113, 248, 27, 165, 128, 231, 48, 123, 56, 65, 13, 182, 57,\n\t\t151, 235, 253, 229, 162, 148, 155, 142, 85, 137, 139, 245,\n\t\t239, 242, 183, 238, 94, 142, 24, 238, 157, 1, 86, 61, 173,\n\t\t77, 191, 167, 182, 80, 150, 203, 109, 182, 185, 23, 253, 148,\n\t\t200, 242, 94, 248, 240, 166, 175, 62, 255, 218, 118, 248,\n\t\t72, 31, 239, 26, 204, 191, 186, 212, 186, 209, 109, 208, 104,\n\t\t20, 26, 149, 34, 202, 215, 218, 16, 80, 105, 149, 224, 63,\n\t\t252, 40, 247, 95, 68, 246, 182, 82, 29, 138, 196, 109, 243,\n\t\t11, 3, 155, 69, 145, 23, 163, 129, 142, 117, 167, 167, 217,\n\t\t196, 24, 167, 91, 129, 43, 24, 153, 93, 97, 38, 50, 147, 225,\n\t\t128, 48, 17, 129, 33, 34, 146, 1, 57, 11, 121, 103, 116, 150,\n\t\t228, 21, 41, 193, 202, 183, 128, 253, 41, 108, 149, 142, 137,\n\t\t39, 33, 101, 29, 14, 100, 163, 33, 146, 129, 111, 117, 196,\n\t\t194, 59, 21, 32, 93, 251, 222, 125, 96, 162, 133, 239, 33,\n\t\t243, 130, 212, 212, 2, 84, 209, 131, 40, 59, 135, 2, 76, 181,\n\t\t49, 206, 121, 64, 34, 173, 102, 101, 25, 30, 157, 102, 119,\n\t\t163, 182, 137, 21, 136, 167, 32, 139, 146, 213, 1, 59, 250,\n\t\t231, 85, 177, 173, 222, 241, 182, 169, 115, 223, 146, 132,\n\t\t107, 235, 235, 180, 1, 112, 254, 227, 71, 6, 215, 131, 80,\n\t\t111, 80, 223, 71, 108, 55, 191, 220, 206, 183, 4, 179, 168,\n\t\t229, 114, 120, 57, 238, 112, 94, 195, 22, 160, 188, 215, 102,\n\t\t160, 177, 38, 169, 226, 230, 140, 255, 192, 37, 169, 58, 170,\n\t\t108, 57, 245, 121, 169, 209, 126, 121, 190, 239, 175, 145,\n\t\t221, 181, 247, 235, 125, 210, 35, 38, 9, 195, 196, 126, 166,\n\t\t222, 66, 89, 48, 135, 238, 56, 35, 196, 178, 76, 173, 142,\n\t\t132, 196, 179, 143, 247, 120, 5, 9, 60, 230, 7, 113, 90, 247,\n\t\t92, 76, 62, 78, 238, 100, 208, 42, 37, 226, 26, 149, 215,\n\t\t110, 152, 169, 50, 72, 238, 151, 122, 250, 100, 124, 127,\n\t\t158, 123, 45, 236, 182, 90, 208, 25, 145, 41, 246, 84, 63,\n\t\t23, 151, 60, 33, 222, 79, 66, 11, 130, 89, 157, 242, 185,\n\t\t63, 211, 121, 162, 188, 114, 65, 196, 154, 180, 214, 209,\n\t\t248, 74, 123, 10, 191, 102, 221, 18, 5, 101, 55, 170, 115,\n\t\t217, 129, 34, 125, 103, 64, 104, 202, 103, 241, 139, 153,\n\t\t167, 2, 174, 101, 131, 9, 139, 15, 57, 254, 217, 76, 10, 195,\n\t\t75, 22, 84, 101, 214, 25, 10, 1, 38, 2, 123, 230, 73, 88,\n\t\t32, 114, 123, 139, 209, 149, 70, 179, 154, 154, 131, 147,\n\t\t190, 29, 251, 170, 53, 116, 121, 142, 33, 107, 83, 42, 171,\n\t\t254, 36, 146, 216, 75, 118, 183, 204, 34, 238, 236, 106, 203,\n\t\t207, 227, 182, 112, 87, 16, 43, 25, 239, 147, 226, 166, 65,\n\t\t203, 14, 57, 255, 19, 106, 121, 28, 240, 218, 33, 191, 139,\n\t\t15, 148, 113, 85, 242, 206, 97, 14, 99, 93, 148, 205, 224,\n\t\t156, 76, 144, 37, 91, 83, 211, 91, 59, 249, 197, 151, 121,\n\t\t21, 109, 38, 106, 81, 81, 134, 154, 107, 88, 252, 59, 159,\n\t\t146, 181, 78, 58, 216, 245, 248, 155, 200, 82, 107, 42, 72,\n\t\t1, 231, 119, 165, 125, 193, 162, 76, 232, 70, 19, 122, 226,\n\t\t253, 43, 165, 80, 6, 174, 78, 178, 82, 170, 146, 219, 250,\n\t\t94, 67, 190, 241, 187, 190, 188, 233, 248, 7, 75, 26, 5, 66,\n\t\t255, 163, 114, 49, 79, 149, 145, 27, 179, 236, 20, 204, 32,\n\t\t103, 157, 133, 108, 226, 69, 7, 164, 146, 56, 90, 187, 251,\n\t\t42, 45, 102, 55, 19, 157, 216, 142, 77, 218, 23, 6, 102, 7,\n\t\t175, 178, 221, 132, 68, 47, 82, 194, 238, 11, 186, 142, 71,\n\t\t194, 223, 201, 81, 222, 121, 49, 80, 214, 160, 12, 103, 177,\n\t\t72, 146, 34, 230, 124, 139, 138, 97, 248, 185, 68, 145, 196,\n\t\t213, 204, 228, 53, 246, 50, 153, 134, 58, 234, 183, 252, 8,\n\t\t111, 187, 222, 9, 70, 157, 26, 208, 142, 94, 183, 215, 123,\n\t\t140, 235, 156, 127, 240, 199, 232, 71, 148, 244, 21, 216,\n\t\t5, 165, 210, 236, 181, 9, 180, 162, 13, 169, 51, 232, 50,\n\t\t164, 230, 24, 180, 229, 109, 224, 212, 120, 230, 41, 229,\n\t\t239, 154, 88, 71, 254, 35, 170, 106, 228, 44, 125, 219, 238,\n\t\t242, 160, 169, 2, 181, 204, 42, 67, 168, 226, 225, 68, 39,\n\t\t92, 172, 135, 141, 198, 51, 93, 136, 81, 154, 251, 144, 98,\n\t\t252, 13, 46, 26, 129, 219, 249, 16, 222, 51, 208, 118, 70,\n\t\t81, 62, 238, 40, 30, 246, 49, 18, 201, 31, 56, 123, 241, 108,\n\t\t32, 76, 8, 194, 33, 155, 90, 179, 211, 69, 142, 163, 118,\n\t\t252, 5, 137, 78, 101, 112, 101, 21, 75, 85, 119, 141, 170,\n\t\t241, 71, 10, 126, 132, 109, 0, 124, 19, 140, 193, 80, 225,\n\t\t206, 84, 57, 54, 159, 153, 63, 162, 47, 39, 89, 16, 37, 118,\n\t\t158, 197, 198, 86, 42, 225, 224, 100, 251, 75, 12, 215, 128,\n\t\t84, 41, 199, 54, 26, 31, 82, 144, 102, 45, 37, 150, 126, 244,\n\t\t172, 132, 110, 86, 86, 250, 236, 179, 115, 70, 249, 106, 121,\n\t\t136, 204, 85, 211, 210, 21, 155, 223, 180, 231, 248, 188,\n\t\t212, 97, 11, 62, 58, 58, 173, 91, 110, 197, 245, 60, 56, 210,\n\t\t127, 204, 135, 229, 83, 223, 54, 12, 18, 196, 66, 229, 33,\n\t\t85, 69, 116, 59, 164, 109, 101, 76, 51, 108, 72, 147, 108,\n\t\t73, 223, 219, 88, 112, 70, 147, 51, 109, 107, 212, 53, 228,\n\t\t57, 198, 11, 222, 30, 46, 63, 137, 66, 158, 103, 66, 16, 125,\n\t\t232, 110, 51, 18, 131, 252, 177, 89, 226, 190, 199, 161, 119,\n\t\t97, 52, 164, 249, 54, 75, 33, 188, 105, 70, 226, 104, 148,\n\t\t225, 181, 162, 59, 75, 219, 184, 216, 99, 219, 247, 175, 236,\n\t\t131, 112, 19, 28, 67, 89, 162, 81, 107, 206, 156, 59, 157,\n\t\t162, 35, 42, 75, 64, 91, 51, 197, 10, 158, 93, 50, 115, 10,\n\t\t184, 209, 212, 134, 246, 14, 155, 84, 160, 23, 117, 74, 125,\n\t\t212, 54, 184, 76, 5, 95, 166, 233, 228, 29, 50, 40, 154, 169,\n\t\t209, 210, 69, 124, 204, 215, 97, 101, 179, 188, 247, 103,\n\t\t6, 148, 115, 56, 26, 17, 199, 24, 223, 23, 220, 73, 22, 237,\n\t\t51, 219, 213, 237, 119, 216, 87, 230, 55, 96, 234, 247, 100,\n\t\t114, 30, 166, 206, 172, 84, 150, 198, 207, 57, 112, 59, 40,\n\t\t240, 176, 192, 252, 156, 215, 67, 35, 28, 50, 175, 151, 109,\n\t\t29, 50, 208, 42, 87, 136, 184, 246, 48, 186, 200, 61, 239,\n\t\t6, 38, 225, 153, 36, 5, 238, 180, 149, 99, 27, 234, 81, 112,\n\t\t27, 112, 226, 136, 218, 212, 173, 200, 244, 217, 133, 48,\n\t\t4, 166, 33, 213, 88, 50, 195, 179, 57, 228, 59, 181, 79, 50,\n\t\t116, 144, 217, 187, 240, 4, 136, 45, 251, 12, 26, 250, 50,\n\t\t125, 116, 7, 40, 141, 42, 92, 120, 186, 237, 119, 193, 176,\n\t\t174, 17, 223, 157, 22, 143, 8, 139, 10, 64, 98, 120, 238,\n\t\t181, 248, 147, 254, 74, 223, 168, 209, 15, 120, 231, 104,\n\t\t251, 215, 89, 252, 236, 174, 228, 251, 124, 221, 24, 176,\n\t\t240, 41, 166, 99, 198, 21, 97, 229, 249, 58, 131, 248, 149,\n\t\t104, 207, 147, 198, 87, 97, 42, 212, 92, 118, 186, 90, 89,\n\t\t29, 132, 125, 20, 235, 183, 220, 235, 121, 4, 212, 198, 219,\n\t\t247, 116, 120, 156, 158, 170, 126, 220, 152, 251, 112, 125,\n\t\t137, 126, 234, 73, 215, 44, 154, 202, 118, 222, 55, 164, 30,\n\t\t133, 68, 192, 73, 71, 45, 176, 243, 141, 12, 210, 20, 144,\n\t\t78, 15, 233, 40, 78, 124, 233, 226, 237, 39, 122, 111, 45,\n\t\t159, 82, 157, 75, 20, 64, 127, 162, 195, 130, 102, 14, 188,\n\t\t87, 27, 105, 123, 213, 176, 196, 51, 4, 245, 45, 36, 101,\n\t\t176, 117, 10, 215, 254, 136, 120, 149, 170, 24, 183, 151,\n\t\t187, 223, 237, 129, 106, 137, 78, 51, 229, 205, 76, 230, 11,\n\t\t186, 90, 210, 78, 87, 231, 113, 171, 217, 126, 25, 251, 85,\n\t\t87, 119, 120, 117, 218, 172, 68, 86, 46, 218, 191, 57, 182,\n\t\t228, 139, 177, 177, 81, 44, 124, 31, 61, 104, 190, 133, 108,\n\t\t243, 81, 169, 146, 177, 189, 24, 27, 85, 176, 114, 104, 213,\n\t\t63, 228, 113, 210, 85, 178, 200, 90, 185, 152, 166, 87, 4,\n\t\t227, 107, 239, 39, 149, 177, 192, 246, 90, 199, 202, 137,\n\t\t10, 89, 15, 178, 232, 27, 202, 47, 203, 208, 168, 192, 130,\n\t\t228, 79, 21, 146, 96, 173, 150, 91, 24, 113, 207, 63, 251,\n\t\t118, 28, 72, 125, 237, 189, 251, 225, 141, 16, 33, 214, 166,\n\t\t103, 181, 239, 147, 243, 46, 235, 75, 33, 82, 78, 224, 252,\n\t\t160, 188, 69, 101, 43, 8, 54, 127, 93, 168, 207, 49, 79, 2,\n\t\t111, 222, 128, 151, 77, 96, 26, 111, 23, 250, 69, 115, 54,\n\t\t182, 205, 66, 68, 19, 189, 109, 78, 59, 239, 213, 26, 77,\n\t\t172, 169, 229, 243, 176, 218, 150, 205, 225, 131, 152, 29,\n\t\t168, 56, 99, 8, 72, 130, 79, 92, 170, 76, 24, 229, 32, 66,\n\t\t147, 47, 27, 113, 244, 157, 14, 101, 47, 23, 79, 254, 125,\n\t\t205, 45, 199, 97, 78, 61, 162, 70, 24, 204, 29, 204, 53, 22,\n\t\t48, 37, 75, 49, 34, 55, 106, 91, 184, 0, 148, 155, 219, 104,\n\t\t188, 209, 51, 9, 124, 174, 136, 216, 172, 65, 63, 163, 124,\n\t\t168, 91, 93, 103, 189, 153, 150, 236, 60, 50, 172, 169, 252,\n\t\t75, 203, 205, 21, 228, 86, 195, 19, 157, 83, 224, 112, 129,\n\t\t135, 149, 3, 137, 43, 81, 32, 227, 203, 137, 117, 115, 187,\n\t\t231, 218, 132, 57, 30, 207, 150, 96, 10, 147, 34, 65, 134,\n\t\t109, 163, 213, 216, 36, 136, 161, 243, 214, 180, 102, 79,\n\t\t143, 145, 217, 164, 187, 19, 200, 19, 222, 147, 126, 109,\n\t\t92, 156, 161, 201, 181, 137, 255, 222, 140, 245, 167, 151,\n\t\t160, 198, 204, 145, 238, 214, 138, 135, 111, 24, 223, 243,\n\t\t96, 213, 44, 10, 231, 116, 35, 73, 156, 237, 132, 109, 104,\n\t\t30, 15, 241, 111, 9, 30, 124, 252, 152, 135, 129, 31, 241,\n\t\t227, 213, 85, 79, 32, 237, 57, 66, 60, 30, 235, 224, 249,\n\t\t70, 220, 60, 176, 202, 10, 202, 225, 108, 122, 173, 35, 102,\n\t\t169, 217, 99, 114, 204, 109, 55, 83, 199, 65, 239, 134, 47,\n\t\t92, 102, 49, 245, 55, 226, 41, 118, 130, 255, 239, 63, 184,\n\t\t122, 244, 104, 201, 180, 220, 43, 24, 43, 28, 107, 134, 108,\n\t\t225, 166, 19, 184, 45, 185, 193, 158, 125, 138, 12, 94, 211,\n\t\t105, 186, 75, 255, 106, 244, 8, 195, 44, 132, 249, 244, 197,\n\t\t58, 65, 248, 94, 173, 186, 32, 10, 168, 225, 166, 234, 61,\n\t\t19, 154, 12, 81, 107, 247, 8, 215, 253, 208, 58, 159, 77,\n\t\t134, 155, 156, 207, 209, 59, 239, 113, 92, 100, 218, 97, 182,\n\t\t62, 189, 158, 98, 156, 229, 120, 158, 32, 194, 126, 160, 249,\n\t\t131, 37, 176, 119, 217, 78, 157, 119, 145, 80, 38, 187, 112,\n\t\t118, 17, 179, 7, 72, 102, 101, 8, 145, 167, 161, 137, 208,\n\t\t127, 209, 250, 226, 34, 195, 88, 166, 77, 70, 148, 47, 202,\n\t\t188, 207, 174, 218, 59, 94, 95, 126, 178, 95, 221, 23, 160,\n\t\t73, 213, 252, 97, 231, 24, 39, 232, 241, 30, 161, 206, 220,\n\t\t70, 142, 99, 11, 186, 114, 246, 49, 169, 157, 240, 68, 20,\n\t\t202, 88, 52, 27, 190, 9, 220, 100, 244, 107, 198, 47, 231,\n\t\t219, 215, 220, 156, 78, 140, 121, 245, 59, 232, 242, 104,\n\t\t157, 246, 49, 121, 181, 254, 190, 160, 198, 16, 255, 62, 82,\n\t\t160, 249, 166, 81, 178, 63, 73, 42, 254, 43, 78, 8, 2, 119,\n\t\t46, 139, 72, 54, 140, 188, 107, 148, 85, 18, 131, 242, 61,\n\t\t177, 43, 122, 22, 0, 149, 66, 71, 199, 255, 10, 18, 205, 13,\n\t\t183, 159, 110, 56, 32, 32, 31, 24, 20, 229, 153, 63, 76, 116,\n\t\t66, 241, 167, 85, 131, 47, 247, 60, 64, 253, 80, 142, 177,\n\t\t93, 164, 161, 229, 39, 220, 169, 22, 64, 66, 0, 20, 67, 185,\n\t\t211, 56, 145, 27, 13, 218, 196, 122, 185, 196, 24, 234, 246,\n\t\t249, 7, 115, 246, 220, 157, 212, 244, 226, 78, 67, 38, 208,\n\t\t68, 35, 157, 141, 36, 205, 149, 192, 77, 121, 59, 149, 52,\n\t\t36, 46, 135, 137, 25, 37, 193, 185, 2, 163, 181, 147, 50,\n\t\t74, 145, 93, 216, 230, 53, 214, 173, 249, 190, 105, 175, 85,\n\t\t163, 250, 43, 186, 173, 21, 86, 150, 200, 192, 56, 20, 170,\n\t\t55, 233, 41, 254, 14, 251, 22, 222, 239, 7, 178, 4, 239, 198,\n\t\t32, 163, 90, 149, 79, 234, 205, 66, 34, 69, 54, 194, 86, 220,\n\t\t255, 134, 80, 107, 251, 65, 63, 80, 251, 183, 29, 115, 203,\n\t\t29, 58, 218, 218, 1, 255, 221, 107, 134, 251, 55, 188, 64,\n\t\t104, 30, 74, 105, 155, 186, 168, 9, 90, 43, 175, 113, 165,\n\t\t198, 190, 178, 11, 190, 178, 150, 72, 81, 134, 73, 193, 83,\n\t\t61, 219, 145, 220, 175, 236, 110, 99, 214, 197, 123, 149,\n\t\t216, 14, 239, 204, 122, 126, 14, 21, 123, 57, 138, 198, 43,\n\t\t158, 212, 10, 128, 145, 105, 187, 33, 47, 148, 254, 249, 194,\n\t\t247, 88, 140, 48, 219, 68, 122, 239, 215, 125, 231, 54, 87,\n\t\t134, 254, 19, 226, 148, 199, 139, 92, 21, 125, 24, 116, 165,\n\t\t196, 175, 203, 67, 86, 217, 104, 19, 190, 85, 7, 144, 186,\n\t\t119, 137, 10, 54, 211, 176, 96, 69, 148, 243, 64, 235, 210,\n\t\t54, 127, 48, 90, 12, 203, 232, 198, 179, 192, 218, 63, 70,\n\t\t56, 16, 74, 243, 198, 40, 196, 155, 228, 184, 77, 171, 184,\n\t\t251, 84, 12, 105, 240, 216, 239, 84, 106, 95, 124, 122, 63,\n\t\t157, 143, 101, 250, 1, 183, 241, 254, 95, 187, 79, 6, 178,\n\t\t132, 221, 223, 187, 189, 130, 174, 167, 179, 12, 103, 48,\n\t\t21, 138, 95, 56, 185, 191, 200, 38, 102, 46, 201, 211, 126,\n\t\t215, 62, 93, 119, 214, 182, 114, 182, 85, 221, 161, 146, 187,\n\t\t20, 88, 119, 177, 243, 30, 249, 35, 41, 182, 61, 23, 68, 20,\n\t\t112, 166, 195, 222, 4, 126, 211, 144, 64, 74, 165, 47, 80,\n\t\t190, 32, 253, 221, 107, 238, 195, 59, 86, 14, 100, 89, 110,\n\t\t229, 46, 197, 189, 117, 228, 217, 182, 72, 46, 50, 140, 65,\n\t\t87, 20, 51, 98, 194, 119, 245, 193, 15, 140, 205, 255, 141,\n\t\t112, 86, 206, 196, 207, 209, 241, 112, 123, 101, 100, 221,\n\t\t17, 217, 22, 223, 17, 162, 130, 206, 202, 106, 94, 208, 216,\n\t\t220, 64, 250, 30, 214, 65, 244, 115, 103, 166, 224, 167, 181,\n\t\t84, 72, 42, 222, 180, 148, 147, 218, 120, 181, 222, 63, 245,\n\t\t15, 153, 34, 133, 9, 82, 133, 22, 214, 186, 113, 203, 104,\n\t\t17, 17, 80, 104, 140, 195, 97, 83, 47, 23, 83, 104, 113, 204,\n\t\t21, 112, 149, 126, 85, 110, 86, 159, 58, 230, 125, 95, 162,\n\t\t94, 110, 170, 76, 167, 210, 92, 39, 87, 198, 136, 179, 96,\n\t\t148, 65, 181, 36, 65, 211, 106, 239, 197, 32, 159, 10, 231,\n\t\t6, 53, 166, 169, 254, 111, 221, 151, 242, 65, 207, 161, 241,\n\t\t90, 141, 20, 108, 215, 238, 47, 166, 131, 88, 33, 187, 1,\n\t\t181, 231, 190, 216, 161, 244, 154, 145, 168, 213, 4, 81, 181,\n\t\t193, 149, 172, 182, 213, 234, 40, 45, 16, 165, 69, 188, 44,\n\t\t154, 200, 76, 59, 237, 178, 58, 93, 67, 72, 167, 139, 169,\n\t\t162, 237, 50, 16, 247, 232, 201, 122, 91, 20, 82, 189, 238,\n\t\t31, 250, 140, 81, 85, 166, 93, 135, 240, 225, 141, 134, 235,\n\t\t210, 129, 240, 59, 162, 114, 66, 177, 76, 99, 30, 127, 238,\n\t\t124, 41, 236, 231, 91, 47, 88, 64, 15, 38, 122, 151, 54, 46,\n\t\t195, 124, 46, 23, 204, 203, 107, 237, 62, 199, 172, 6, 175,\n\t\t39, 230, 157, 212, 107, 177, 216, 120, 228, 199, 39, 26, 161,\n\t\t51, 106, 149, 140, 13, 52, 42, 230, 190, 161, 187, 175, 131,\n\t\t247, 142, 35, 128, 86, 78, 42, 209, 241, 29, 12, 188, 150,\n\t\t92, 234, 177, 33, 75, 69, 17, 108, 100, 25, 3, 126, 28, 154,\n\t\t20, 53, 172, 156, 144, 198, 26, 5, 192, 125, 218, 37, 85,\n\t\t228, 106, 174, 61, 135, 12, 9, 50, 70, 61, 32, 78, 86, 156,\n\t\t84, 165, 28, 194, 219, 98, 98, 29, 42, 180, 18, 158, 21, 222,\n\t\t80, 210, 18, 63, 235, 131, 233, 191, 215, 146, 186, 97, 194,\n\t\t178, 129, 87, 115, 162, 134, 176, 10, 51, 40, 54, 37, 129,\n\t\t179, 131, 74, 49, 133, 85, 2, 171, 196, 1, 161, 26, 221, 64,\n\t\t250, 210, 225, 168, 74, 33, 110, 14, 240, 87, 18, 127, 52,\n\t\t91, 203, 59, 231, 169, 8, 22, 147, 128, 153, 190, 210, 202,\n\t\t225, 146, 143, 217, 252, 252, 60, 94, 212, 187, 193, 26, 190,\n\t\t208, 150, 184, 151, 137, 224, 97, 5, 185, 247, 20, 109, 211,\n\t\t229, 166, 221, 36, 239, 66, 226, 173, 196, 9, 121, 134, 93,\n\t\t109, 29, 250, 25, 140, 228, 163, 6, 180, 176, 218, 3, 64,\n\t\t243, 176, 159, 65, 137, 121, 250, 90, 164, 161, 83, 247, 21,\n\t\t162, 11, 32, 87, 50, 216, 229, 58, 109, 103, 33, 48, 152,\n\t\t218, 87, 253, 207, 131, 218, 194, 109, 127, 221, 181, 155,\n\t\t161, 94, 215, 150, 244, 6, 166, 102, 235, 82, 201, 145, 250,\n\t\t39, 234, 128, 122, 181, 59, 62, 122, 37, 50, 0, 105, 91, 58,\n\t\t93, 77, 198, 212, 213, 60, 140, 87, 12, 216, 204, 79, 30,\n\t\t90, 228, 200, 212, 252, 106, 15, 181, 100, 185, 48, 236, 180,\n\t\t60, 168, 210, 212, 150, 24, 183, 218, 14, 215, 231, 107, 96,\n\t\t84, 87, 204, 58, 61, 23, 146, 142, 250, 199, 46, 148, 121,\n\t\t94, 71, 77, 118, 60, 47, 235, 29, 54, 187, 30, 76, 197, 142,\n\t\t78, 224, 217, 44, 112, 181, 42, 111, 104, 59, 97, 214, 170,\n\t\t219, 252, 248, 76, 78, 211, 172, 176, 113, 62, 186, 248, 31,\n\t\t177, 239, 110, 247, 115, 140, 109, 212, 37, 127, 18, 77, 104,\n\t\t182, 134, 134, 188, 32, 216, 147, 68, 218, 85, 125, 77, 204,\n\t\t93, 231, 152, 175, 180, 216, 139, 214, 198, 55, 73, 159, 165,\n\t\t36, 110, 114, 32, 16, 204, 115, 242, 190, 26, 9, 6, 25, 84,\n\t\t119, 89, 92, 213, 94, 182, 189, 134, 92, 53, 235, 85, 25,\n\t\t153, 55, 190, 23, 33, 73, 240, 146, 248, 8, 76, 69, 5, 138,\n\t\t34, 214, 12, 215, 83, 253, 121, 47, 248, 233, 39, 14, 96,\n\t\t38, 206, 164, 8, 176, 174, 33, 97, 96, 165, 248, 142, 149,\n\t\t216, 190, 140, 70, 85, 98, 163, 157, 232, 99, 179, 173, 62,\n\t\t253, 1, 244, 100, 216, 253, 192, 122, 212, 188, 117, 158,\n\t\t8, 27, 234, 112, 255, 235, 126, 238, 39, 201, 196, 235, 217,\n\t\t31, 39, 193, 168, 65, 98, 196, 142, 238, 55, 20, 68, 28, 69,\n\t\t66, 224, 178, 79, 0, 141, 1, 37, 73, 164, 170, 235, 173, 111,\n\t\t217, 7, 210, 31, 21, 93, 55, 120, 4, 156, 37, 117, 255, 223,\n\t\t41, 72, 242, 108, 139, 81, 114, 88, 27, 208, 205, 137, 224,\n\t\t227, 101, 48, 59, 92, 156, 187, 255, 80, 16, 248, 78, 240,\n\t\t128, 246, 92, 246, 78, 2, 43, 157, 59, 44, 240, 84, 15, 159,\n\t\t94, 204, 175, 250, 107, 52, 43, 83, 168, 208, 243, 89, 49,\n\t\t77, 198, 156, 248, 188, 121, 224, 190, 0, 52, 42, 19, 150,\n\t\t12, 81, 142, 183, 238, 138, 119, 205, 153, 214, 171, 62, 90,\n\t\t177, 24, 243, 10, 155, 33, 216, 104, 171, 38, 170, 39, 136,\n\t\t213, 217, 223, 51, 162, 130, 67, 125, 55, 80, 3, 40, 123,\n\t\t232, 43, 71, 73, 191, 144, 114, 165, 65, 199, 149, 83, 25,\n\t\t32, 238, 187, 90, 185, 149, 144, 2, 239, 16, 133, 42, 101,\n\t\t211, 117, 132, 227, 111, 175, 165, 17, 230, 148, 19, 120,\n\t\t63, 61, 246, 112, 193, 234, 118, 206, 231, 10, 176, 216, 77,\n\t\t252, 177, 126, 97, 53, 32, 230, 138, 15, 82, 19, 62, 235,\n\t\t108, 31, 138, 176, 168, 40, 179, 215, 235, 63, 211, 77, 221,\n\t\t71, 29, 59, 14, 15, 165, 225, 233, 45, 101, 89, 79, 167, 192,\n\t\t175, 176, 204, 218, 217, 131, 96, 135, 158, 214, 193, 107,\n\t\t11, 9, 212, 162, 242, 222, 60, 203, 15, 169, 251, 46, 176,\n\t\t10, 233, 51, 24, 126, 98, 45, 225, 140, 205, 118, 132, 90,\n\t\t90, 123, 133, 3, 103, 121, 216, 243, 121, 20, 227, 168, 232,\n\t\t139, 103, 88, 197, 168, 242, 39, 205, 30, 50, 35, 172, 75,\n\t\t169, 128, 121, 90, 23, 211, 65, 155, 19, 157, 26, 100, 236,\n\t\t26, 74, 77, 243, 248, 29, 45, 192, 127, 198, 101, 188, 64,\n\t\t140, 30, 5, 159, 49, 118, 131, 69, 166, 200, 27, 138, 64,\n\t\t37, 63, 66, 241, 107, 213, 100, 232, 69, 108, 251, 105, 171,\n\t\t33, 165, 89, 81, 38, 251, 27, 196, 239, 7, 20, 69, 9, 142,\n\t\t24, 12, 76, 175, 216, 65, 179, 199, 203, 231, 235, 0, 28,\n\t\t127, 79, 243, 22, 161, 146, 217, 204, 74, 191, 83, 215, 115,\n\t\t23, 232, 105, 127, 132, 92, 72, 91, 75, 176, 82, 180, 192,\n\t\t55, 167, 246, 37, 124, 113, 197, 89, 204, 39, 137, 222, 41,\n\t\t35, 244, 56, 204, 193, 12, 236, 107, 144, 203, 102, 224, 75,\n\t\t17, 169, 114, 146, 88, 109, 202, 224, 185, 243, 222, 244,\n\t\t203, 101, 247, 89, 181, 36, 189, 121, 205, 182, 147, 103,\n\t\t125, 189, 182, 73, 77, 217, 122, 31, 141, 14, 212, 9, 189,\n\t\t173, 254, 79, 253, 144, 111, 45, 174, 218, 196, 182, 159,\n\t\t229, 67, 105, 119, 132, 189, 219, 63, 208, 250, 86, 78, 76,\n\t\t164, 21, 172, 151, 161, 134, 242, 166, 218, 77, 46, 182, 129,\n\t\t138, 203, 203, 149, 57, 141, 130, 95, 122, 194, 101, 42, 211,\n\t\t125, 70, 190, 178, 161, 120, 61, 111, 54, 42, 179, 70, 243,\n\t\t234, 177, 178, 43, 74, 2, 237, 79, 176, 127, 152, 148, 245,\n\t\t86, 196, 146, 38, 198, 211, 232, 208, 46, 174, 185, 123, 38,\n\t\t74, 49, 4, 179, 69, 51, 198, 250, 196, 64, 98, 89, 82, 213,\n\t\t198, 18, 171, 201, 116, 138, 97, 199, 64, 231, 233, 179, 101,\n\t\t214, 200, 137, 85, 231, 40, 112, 12, 115, 206, 65, 173, 71,\n\t\t73, 149, 84, 220, 194, 72, 29, 106, 146, 4, 156, 183, 178,\n\t\t119, 92, 191, 18, 109, 205, 236, 15, 211, 89, 167, 253, 137,\n\t\t102, 239, 27, 203, 5, 27, 16, 62, 221, 136, 226, 133, 133,\n\t\t203, 59, 163, 224, 252, 56, 17, 133, 96, 138, 204, 47, 116,\n\t\t13, 137, 46, 174, 229, 196, 96, 86, 13, 108, 70, 248, 80,\n\t\t27, 92, 57, 166, 185, 191, 67, 109, 196, 249, 162, 93, 0,\n\t\t130, 221, 46, 55, 8, 170, 169, 221, 111, 242, 55, 179, 221,\n\t\t146, 207, 221, 250, 26, 215, 75, 94, 200, 5, 70, 252, 83,\n\t\t26, 233, 86, 53, 209, 254, 46, 11, 184, 45, 91, 178, 246,\n\t\t109, 123, 73, 79, 217, 63, 161, 86, 41, 138, 106, 198, 188,\n\t\t137, 171, 23, 187, 255, 84, 51, 107, 138, 38, 163, 182, 122,\n\t\t226, 83, 214, 157, 157, 29, 111, 16, 34, 210, 230, 250, 160,\n\t\t17, 94, 243, 241, 190, 248, 27, 43, 5, 53, 84, 227, 127, 57,\n\t\t62, 106, 166, 142, 176, 6, 73, 205, 225, 96, 209, 59, 130,\n\t\t34, 233, 120, 87, 252, 20, 52, 254, 32, 230, 134, 213, 239,\n\t\t242, 159, 163, 238, 117, 104, 60, 229, 239, 189, 114, 201,\n\t\t248, 21, 159, 189, 215, 155, 134, 33, 90, 79, 181, 9, 133,\n\t\t204, 89, 37, 163, 33, 32, 69, 202, 189, 97, 198, 91, 153,\n\t\t150, 147, 52, 143, 55, 255, 234, 227, 16, 168, 25, 191, 231,\n\t\t11, 239, 93, 175, 92, 241, 121, 98, 186, 53, 57, 248, 205,\n\t\t158, 59, 244, 33, 51, 168, 221, 25, 21, 25, 172, 212, 168,\n\t\t135, 151, 246, 50, 34, 7, 69, 30, 11, 192, 207, 89, 6, 35,\n\t\t163, 227, 123, 126, 118, 176, 200, 185, 127, 15, 189, 25,\n\t\t171, 0, 210, 109, 31, 82, 90, 171, 183, 131, 106, 200, 199,\n\t\t71, 55, 148, 200, 167, 233, 47, 212, 90, 159, 147, 23, 102,\n\t\t157, 181, 229, 201, 153, 206, 184, 49, 204, 130, 83, 177,\n\t\t87, 175, 11, 234, 229, 128, 138, 71, 21, 236, 192, 0, 37,\n\t\t76, 191, 227, 158, 220, 54, 52, 186, 54, 101, 57, 165, 84,\n\t\t181, 82, 31, 176, 117, 186, 190, 104, 39, 27, 153, 74, 56,\n\t\t15, 80, 238, 209, 187, 42, 6, 141, 123, 36, 150, 18, 33, 213,\n\t\t254, 98, 145, 119, 11, 39, 212, 144, 225, 54, 205, 161, 33,\n\t\t233, 54, 183, 57, 83, 121, 123, 126, 92, 80, 97, 222, 216,\n\t\t58, 52, 25, 245, 124, 173, 64, 97, 98, 205, 205, 91, 24, 108,\n\t\t127, 103, 15, 13, 9, 122, 2, 126, 5, 131, 251, 189, 187, 61,\n\t\t34, 158, 170, 104, 148, 193, 8, 156, 46, 209, 181, 47, 163,\n\t\t43, 3, 234, 55, 1, 179, 114, 88, 164, 0, 44, 25, 187, 26,\n\t\t98, 80, 108, 11, 121, 22, 87, 42, 161, 141, 69, 79, 155, 82,\n\t\t88, 57, 58, 233, 21, 217, 1, 21, 249, 54, 6, 189, 166, 89,\n\t\t108, 202, 173, 237, 81, 28, 120, 71, 207, 217, 252, 142, 33,\n\t\t242, 103, 27, 22, 37, 64, 70, 249, 170, 225, 124, 151, 12,\n\t\t211, 2, 176, 16, 102, 125, 124, 81, 175, 193, 97, 107, 26,\n\t\t157, 62, 93, 56, 113, 113, 13, 6, 126, 52, 124, 211, 202,\n\t\t107, 156, 22, 108, 157, 43, 122, 163, 151, 75, 51, 124, 36,\n\t\t38, 203, 25, 239, 109, 154, 191, 50, 146, 167, 120, 34, 75,\n\t\t159, 134, 229, 168, 183, 159, 192, 86, 118, 229, 106, 133,\n\t\t38, 252, 211, 158, 141, 110, 201, 115, 47, 105, 107, 153,\n\t\t252, 137, 137, 66, 65, 6, 149, 86, 154, 231, 65, 59, 246,\n\t\t28, 205, 96, 70, 38, 252, 157, 64, 163, 190, 135, 90, 41,\n\t\t250, 33, 187, 209, 98, 230, 155, 198, 27, 222, 15, 95, 59,\n\t\t128, 167, 117, 243, 22, 91, 230, 186, 66, 129, 127, 251, 146,\n\t\t228, 165, 238, 161, 13, 69, 221, 38, 139, 123, 111, 222, 62,\n\t\t41, 131, 244, 246, 109, 78, 158, 249, 204, 203, 150, 255,\n\t\t40, 106, 229, 14, 163, 134, 127, 253, 213, 89, 90, 98, 66,\n\t\t42, 25, 238, 163, 209, 109, 66, 141, 202, 175, 213, 55, 93,\n\t\t119, 25, 255, 185, 168, 131, 176, 7, 135, 69, 78, 152, 131,\n\t\t140, 63, 114, 109, 147, 33, 168, 7, 131, 4, 67, 173, 9, 168,\n\t\t231, 220, 216, 50, 24, 66, 18, 32, 13, 223, 48, 164, 43, 246,\n\t\t230, 61, 248, 97, 26, 198, 68, 130, 146, 75, 87, 90, 11, 66,\n\t\t200, 104, 29, 127, 188, 114, 179, 55, 183, 163, 218, 37, 211,\n\t\t100, 90, 254, 232, 15, 17, 45, 215, 24, 220, 117, 176, 158,\n\t\t243, 163, 92, 144, 200, 4, 22, 91, 38, 68, 242, 182, 152,\n\t\t142, 2, 58, 106, 229, 236, 161, 157, 239, 22, 52, 236, 181,\n\t\t122, 90, 151, 254, 232, 9, 252, 40, 196, 241, 24, 42, 166,\n\t\t19, 252, 197, 74, 125, 161, 223, 2, 207, 236, 172, 144, 150,\n\t\t52, 96, 119, 132, 65, 42, 19, 191, 243, 228, 126, 162, 255,\n\t\t100, 119, 84, 229, 130, 243, 36, 204, 211, 37, 33, 233, 19,\n\t\t71, 116, 57, 189, 179, 201, 33, 147, 185, 78, 43, 112, 27,\n\t\t222, 137, 4, 28, 95, 234, 125, 187, 17, 12, 154, 236, 52,\n\t\t112, 25, 137, 141, 23, 112, 94, 243, 79, 140, 123, 69, 51,\n\t\t208, 169, 231, 139, 197, 26, 45, 246, 79, 253, 42, 194, 110,\n\t\t167, 86, 56, 246, 244, 156, 19, 87, 4, 165, 96, 57, 48, 170,\n\t\t99, 129, 155, 40, 131, 162, 42, 32, 226, 130, 98, 102, 153,\n\t\t160, 198, 97, 80, 2, 155, 10, 157, 152, 212, 34, 196, 128,\n\t\t150, 17, 165, 171, 209, 42, 227, 146, 243, 70, 241, 214, 146,\n\t\t80, 195, 163, 245, 199, 218, 13, 151, 161, 189, 48, 184, 131,\n\t\t219, 208, 184, 201, 179, 142, 18, 114, 235, 84, 58, 92, 218,\n\t\t201, 182, 179, 232, 85, 140, 86, 52, 205, 44, 52, 253, 208,\n\t\t95, 19, 126, 2, 48, 122, 162, 186, 193, 30, 45, 31, 164, 2,\n\t\t41, 170, 229, 88, 23, 211, 191, 219, 198, 74, 201, 113, 4,\n\t\t221, 9, 173, 87, 191, 35, 144, 118, 80, 174, 23, 80, 254,\n\t\t172, 23, 17, 125, 59, 114, 157, 88, 54, 4, 97, 87, 176, 146,\n\t\t153, 152, 235, 169, 5, 181, 227, 77, 148, 101, 124, 212, 221,\n\t\t133, 82, 73, 16, 183, 181, 237, 192, 173, 127, 43, 37, 68,\n\t\t201, 88, 19, 28, 214, 163, 234, 244, 53, 218, 163, 16, 98,\n\t\t253, 162, 247, 149, 240, 84, 122, 77, 187, 149, 28, 48, 128,\n\t\t17, 68, 255, 134, 208, 140, 10, 50, 159, 37, 237, 0, 55, 141,\n\t\t49, 184, 208, 232, 4, 16, 180, 209, 241, 40, 204, 171, 46,\n\t\t34, 28, 159, 118, 9, 26, 224, 253, 112, 156, 104, 204, 250,\n\t\t246, 174, 228, 223, 76, 245, 27, 112, 11, 142, 236, 182, 10,\n\t\t10, 142, 48, 68, 133, 148, 157, 232, 45, 214, 26, 195, 214,\n\t\t183, 97, 199, 218, 160, 16, 195, 156, 63, 12, 237, 108, 238,\n\t\t140, 191, 238, 63, 99, 12, 16, 208, 8, 65, 39, 252, 171, 52,\n\t\t205, 145, 219, 55, 132, 170, 161, 112, 92, 142, 128, 153,\n\t\t92, 161, 117, 14, 196, 122, 37, 214, 30, 48, 170, 21, 7, 105,\n\t\t200, 213, 105, 57, 141, 144, 118, 168, 114, 160, 98, 24, 23,\n\t\t45, 31, 166, 59, 41, 66, 238, 41, 162, 218, 3, 101, 226, 146,\n\t\t23, 249, 83, 187, 157, 116, 28, 199, 74, 18, 194, 244, 47,\n\t\t254, 61, 228, 216, 215, 133, 177, 102, 106, 200, 149, 16,\n\t\t151, 232, 245, 193, 159, 9, 60, 156, 85, 144, 43, 7, 111,\n\t\t122, 6, 196, 171, 105, 31, 160, 205, 87, 65, 208, 84, 242,\n\t\t175, 57, 252, 26, 249, 203, 172, 233, 11, 88, 106, 229, 224,\n\t\t156, 240, 2, 24, 221, 133, 154, 245, 202, 103, 143, 193, 249,\n\t\t51, 193, 88, 128, 186, 55, 186, 111, 154, 83, 96, 196, 223,\n\t\t254, 26, 212, 111, 232, 24, 91, 18, 120, 105, 86, 72, 255,\n\t\t176, 212, 158, 194, 236, 25, 46, 137, 57, 206, 214, 240, 175,\n\t\t109, 70, 13, 243, 200, 221, 20, 212, 36, 138, 84, 7, 53, 85,\n\t\t46, 198, 109, 48, 193, 108, 205, 229, 62, 174, 202, 28, 35,\n\t\t81, 91, 182, 130, 124, 130, 150, 19, 1, 114, 165, 177, 97,\n\t\t20, 146, 117, 202, 180, 76, 87, 246, 97, 140, 60, 199, 140,\n\t\t100, 72, 52, 113, 22, 130, 136, 37, 22, 63, 156, 11, 216,\n\t\t165, 236, 219, 60, 114, 184, 159, 248, 6, 253, 75, 42, 177,\n\t\t136, 250, 197, 90, 86, 89, 112, 33, 234, 65, 234, 145, 227,\n\t\t133, 32, 202, 156, 48, 127, 250, 211, 115, 127, 46, 42, 74,\n\t\t114, 199, 144, 69, 113, 17, 87, 12, 228, 151, 76, 93, 197,\n\t\t224, 221, 146, 41, 88, 19, 159, 100, 81, 82, 105, 164, 24,\n\t\t121, 10, 176, 130, 222, 40, 74, 39, 7, 27, 236, 87, 137, 213,\n\t\t228, 92, 20, 154, 85, 3, 5, 93, 95, 2, 176, 144, 158, 19,\n\t\t52, 19, 121, 38, 145, 124, 88, 8, 79, 201, 148, 86, 77, 44,\n\t\t243, 47, 122, 57, 9, 141, 99, 102, 20, 249, 189, 41, 5, 18,\n\t\t206, 205, 110, 101, 243, 142, 187, 112, 231, 246, 52, 25,\n\t\t220, 174, 139, 111, 148, 134, 51, 37, 47, 232, 167, 176, 224,\n\t\t8, 81, 25, 114, 105, 139, 139, 189, 207, 47, 218, 77, 26,\n\t\t126, 226, 46, 45, 79, 170, 21, 84, 60, 50, 52, 111, 103, 39,\n\t\t110, 116, 170, 164, 178, 17, 140, 110, 196, 204, 195, 232,\n\t\t221, 133, 163, 138, 79, 190, 48, 210, 105, 94, 247, 180, 199,\n\t\t166, 44, 243, 142, 112, 112, 118, 248, 184, 48, 210, 180,\n\t\t36, 70, 131, 202, 188, 188, 82, 83, 28, 167, 144, 185, 209,\n\t\t234, 172, 233, 2, 238, 4, 72, 226, 165, 138, 45, 35, 48, 246,\n\t\t116, 215, 37, 63, 172, 137, 52, 114, 45, 103, 235, 59, 2,\n\t\t165, 105, 44, 91, 252, 119, 30, 164, 69, 100, 209, 134, 116,\n\t\t115, 96, 152, 200, 157, 62, 85, 218, 133, 125, 219, 230, 232,\n\t\t17, 110, 251, 197, 101, 240, 223, 246, 68, 115, 117, 186,\n\t\t229, 88, 94, 181, 88, 171, 165, 69, 2, 45, 206, 139, 32, 137,\n\t\t163, 149, 240, 196, 107, 188, 185, 102, 206, 119, 227, 27,\n\t\t162, 157, 224, 188, 194, 241, 231, 226, 66, 102, 89, 244,\n\t\t234, 0, 142, 134, 94, 215, 158, 231, 135, 158, 106, 107, 14,\n\t\t202, 95, 169, 194, 172, 182, 153, 127, 206, 178, 70, 226,\n\t\t40, 100, 121, 190, 81, 203, 244, 134, 231, 253, 48, 84, 102,\n\t\t216, 5, 86, 88, 45, 212, 150, 84, 68, 212, 82, 201, 199, 35,\n\t\t171, 112, 42, 76, 216, 148, 210, 99, 171, 170, 125, 206, 151,\n\t\t151, 151, 177, 242, 42, 54, 9, 105, 4, 205, 121, 50, 17, 65,\n\t\t172, 242, 195, 190, 119, 192, 190, 110, 96, 120, 254, 144,\n\t\t145, 207, 254, 248, 132, 134, 148, 99, 60, 53, 221, 170, 239,\n\t\t93, 89, 18, 234, 1, 237, 197, 60, 254, 112, 253, 225, 42,\n\t\t178, 152, 149, 20, 150, 129, 29, 181, 32, 158, 63, 192, 216,\n\t\t236, 159, 213, 154, 61, 208, 227, 116, 238, 3, 36, 223, 79,\n\t\t185, 50, 239, 99, 30, 76, 103, 132, 82, 84, 47, 138, 19, 138,\n\t\t129, 165, 197, 216, 227, 90, 20, 219, 187, 70, 197, 2, 113,\n\t\t159, 248, 248, 106, 203, 212, 249, 13, 157, 224, 198, 65,\n\t\t44, 193, 38, 115, 211, 151, 76, 186, 211, 82, 106, 68, 224,\n\t\t220, 229, 94, 114, 238, 34, 148, 28, 0, 59, 106, 215, 154,\n\t\t132, 174, 62, 191, 4, 245, 36, 62, 69, 102, 143, 86, 100,\n\t\t132, 16, 152, 243, 136, 85, 94, 91, 57, 5, 141, 189, 8, 156,\n\t\t146, 228, 140, 198, 9, 236, 89, 184, 216, 254, 109, 22, 50,\n\t\t239, 167, 138, 171, 30, 188, 200, 25, 207, 234, 189, 230,\n\t\t182, 45, 231, 252, 187, 189, 69, 103, 149, 174, 152, 116,\n\t\t132, 226, 100, 106, 22, 196, 119, 77, 6, 77, 152, 128, 221,\n\t\t103, 130, 76, 131, 81, 237, 8, 183, 62, 27, 166, 5, 65, 150,\n\t\t31, 72, 237, 166, 92, 1, 164, 43, 245, 225, 45, 23, 23, 177,\n\t\t239, 120, 144, 29, 142, 179, 35, 47, 43, 64, 221, 125, 91,\n\t\t34, 248, 184, 108, 17, 34, 83, 183, 170, 61, 130, 246, 225,\n\t\t144, 223, 166, 207, 149, 129, 121, 30, 246, 183, 73, 10, 225,\n\t\t196, 23, 112, 17, 131, 93, 45, 113, 224, 161, 209, 118, 184,\n\t\t211, 25, 44, 54, 1, 82, 176, 51, 250, 22, 251, 212, 4, 53,\n\t\t119, 0, 140, 215, 237, 104, 79, 239, 4, 107, 28, 106, 8, 77,\n\t\t234, 141, 107, 50, 168, 174, 103, 14, 54, 21, 8, 46, 219,\n\t\t194, 69, 17, 159, 72, 107, 56, 116, 131, 43, 252, 237, 37,\n\t\t114, 36, 68, 239, 111, 127, 201, 8, 252, 210, 205, 1, 241,\n\t\t64, 50, 235, 25, 147, 57, 180, 49, 128, 170, 224, 116, 214,\n\t\t54, 24, 189, 141, 222, 131, 39, 101, 29, 241, 166, 5, 106,\n\t\t158, 165, 172, 43, 112, 22, 118, 204, 199, 27, 175, 0, 207,\n\t\t40, 105, 216, 86, 90, 144, 129, 165, 234, 79, 156, 152, 34,\n\t\t222, 198, 124, 228, 22, 144, 93, 61, 69, 113, 121, 111, 30,\n\t\t67, 51, 5, 155, 67, 213, 64, 189, 154, 2, 28, 30, 52, 10,\n\t\t221, 196, 215, 53, 186, 34, 240, 243, 68, 177, 184, 217, 244,\n\t\t83, 24, 40, 165, 87, 239, 155, 200, 139, 161, 154, 136, 176,\n\t\t49, 169, 90, 171, 44, 183, 49, 170, 58, 241, 73, 165, 161,\n\t\t228, 53, 129, 137, 137, 9, 162, 69, 210, 51, 204, 217, 100,\n\t\t87, 117, 75, 33, 137, 189, 70, 159, 76, 115, 8, 84, 40, 157,\n\t\t196, 58, 240, 92, 2, 243, 118, 141, 63, 40, 136, 129, 121,\n\t\t152, 12, 204, 38, 15, 110, 244, 145, 101, 109, 84, 8, 213,\n\t\t189, 16, 234, 179, 120, 9, 223, 155, 125, 113, 155, 80, 196,\n\t\t188, 23, 75, 204, 125, 57, 45, 181, 186, 238, 46, 50, 150,\n\t\t41, 180, 58, 71, 13, 131, 2, 222, 246, 237, 145, 248, 210,\n\t\t219, 220, 188, 191, 95, 218, 118, 222, 246, 146, 4, 255, 190,\n\t\t133, 249, 128, 82, 85, 42, 11, 199, 232, 153, 139, 74, 91,\n\t\t10, 20, 80, 14, 35, 73, 12, 229, 37, 163, 18, 16, 71, 48,\n\t\t5, 195, 54, 29, 71, 117, 75, 55, 149, 42, 96, 85, 178, 61,\n\t\t247, 120, 176, 16, 28, 92, 163, 84, 104, 165, 237, 143, 84,\n\t\t158, 78, 64, 233, 138, 223, 85, 145, 3, 11, 83, 58, 182, 41,\n\t\t176, 61, 197, 133, 96, 71, 9, 217, 197, 128, 228, 154, 207,\n\t\t49, 86, 130, 169, 204, 114, 104, 241, 234, 234, 170, 128,\n\t\t192, 4, 35, 41, 180, 254, 179, 20, 46, 65, 236, 114, 227,\n\t\t54, 42, 60, 58, 203, 0, 119, 254, 79, 76, 80, 203, 32, 63,\n\t\t127, 103, 227, 70, 71, 157, 97, 25, 238, 170, 59, 184, 32,\n\t\t247, 96, 144, 31, 179, 132, 88, 14, 12, 171, 77, 187, 77,\n\t\t195, 83, 245, 21, 99, 111, 97, 0, 107, 225, 84, 65, 193, 13,\n\t\t112, 161, 179, 185, 11, 214, 180, 117, 34, 204, 231, 159,\n\t\t245, 90, 14, 192, 232, 241, 71, 122, 4, 244, 37, 219, 148,\n\t\t9, 234, 14, 156, 213, 128, 210, 108, 98, 243, 229, 82, 83,\n\t\t217, 248, 179, 200, 188, 135, 204, 109, 157, 237, 239, 24,\n\t\t198, 65, 81, 254, 197, 74, 86, 122, 62, 237, 81, 107, 10,\n\t\t61, 97, 98, 252, 183, 67, 67, 222, 205, 97, 88, 52, 162, 189,\n\t\t101, 168, 187, 130, 229, 186, 196, 137, 254, 129, 72, 200,\n\t\t113, 56, 49, 203, 134, 129, 21, 214, 32, 245, 125, 10, 58,\n\t\t215, 219, 185, 156, 150, 16, 43, 246, 59, 152, 37, 73, 12,\n\t\t38, 44, 211, 164, 38, 50, 227, 234, 88, 119, 97, 25, 217,\n\t\t73, 172, 138, 211, 29, 45, 126, 55, 39, 92, 92, 67, 149, 3,\n\t\t189, 111, 109, 100, 254, 68, 74, 40, 97, 180, 159, 135, 64,\n\t\t64, 130, 128, 233, 66, 179, 37, 235, 23, 7, 66, 235, 90, 130,\n\t\t72, 250, 90, 23, 173, 129, 10, 188, 44, 75, 69, 146, 245,\n\t\t113, 253, 241, 241, 157, 232, 137, 244, 53, 18, 86, 241, 74,\n\t\t36, 123, 132, 244, 112, 194, 82, 151, 69, 7, 47, 136, 111,\n\t\t175, 78, 215, 25, 57, 0, 116, 222, 26, 104, 92, 31, 19, 29,\n\t\t186, 57, 117, 67, 54, 244, 112, 29, 98, 61, 232, 167, 150,\n\t\t184, 9, 57, 234, 74, 168, 111, 88, 206, 75, 252, 147, 123,\n\t\t103, 90, 174, 225, 221, 234, 168, 201, 13, 50, 250, 64, 185,\n\t\t247, 196, 92, 42, 2, 22, 106, 181, 105, 32, 94, 197, 135,\n\t\t72, 181, 171, 36, 129, 5, 179, 90, 54, 83, 253, 187, 96, 24,\n\t\t97, 216, 71, 244, 86, 103, 111, 154, 120, 139, 12, 20, 156,\n\t\t97, 163, 126, 195, 137, 232, 188, 96, 172, 94, 211, 129, 249,\n\t\t16, 68, 5, 70, 55, 122, 152, 47, 245, 246, 210, 20, 249, 222,\n\t\t72, 65, 158, 163, 8, 35, 172, 188, 185, 54, 236, 91, 95, 253,\n\t\t34, 233, 222, 187, 66, 89, 47, 236, 237, 219, 166, 118, 124,\n\t\t121, 226, 222, 107, 203, 205, 118, 6, 254, 201, 119, 219,\n\t\t21, 116, 37, 254, 222, 231, 193, 201, 144, 143, 117, 108,\n\t\t19, 118, 191, 70, 87, 195, 99, 233, 226, 169, 51, 68, 100,\n\t\t174, 213, 85, 183, 28, 175, 55, 113, 6, 187, 135, 102, 131,\n\t\t135, 42, 24, 202, 229, 149, 137, 67, 17, 73, 188, 74, 19,\n\t\t120, 84, 15, 242, 241, 254, 6, 250, 148, 47, 252, 81, 42,\n\t\t87, 174, 52, 180, 64, 128, 69, 89, 166, 159, 28, 2, 86, 210,\n\t\t224, 91, 139, 33, 5, 33, 18, 67, 88, 206, 170, 225, 115, 219,\n\t\t230, 180, 16, 130, 228, 95, 48, 10, 140, 87, 163, 43, 201,\n\t\t42, 245, 21, 177, 167, 19, 208, 162, 93, 86, 163, 50, 129,\n\t\t20, 87, 161, 25, 239, 95, 205, 167, 153, 52, 1, 209, 3, 105,\n\t\t148, 144, 146, 115, 162, 186, 47, 32, 143, 197, 252, 112,\n\t\t10, 201, 103, 223, 94, 61, 92, 154, 226, 44, 76, 74, 210,\n\t\t134, 214, 33, 224, 212, 183, 89, 35, 168, 249, 211, 43, 180,\n\t\t248, 100, 226, 225, 230, 231, 226, 177, 56, 42, 94, 58, 245,\n\t\t138, 218, 110, 88, 88, 23, 93, 214, 80, 121, 92, 60, 149,\n\t\t154, 121, 177, 202, 154, 201, 170, 187, 244, 232, 40, 60,\n\t\t30, 44, 98, 47, 181, 175, 195, 184, 102, 131, 6, 38, 214,\n\t\t109, 245, 230, 237, 53, 80, 222, 148, 13, 116, 6, 151, 174,\n\t\t152, 100, 92, 107, 59, 36, 94, 32, 253, 139, 98, 46, 199,\n\t\t67, 251, 97, 86, 49, 134, 106, 96, 104, 81, 59, 217, 196,\n\t\t104, 194, 194, 166, 182, 112, 12, 183, 0, 168, 28, 15, 63,\n\t\t43, 151, 12, 119, 145, 217, 160, 175, 36, 44, 105, 236, 254,\n\t\t52, 61, 29, 29, 135, 184, 59, 251, 27, 48, 204, 171, 191,\n\t\t45, 225, 213, 147, 57, 47, 199, 154, 85, 162, 212, 74, 254,\n\t\t87, 108, 65, 105, 154, 129, 50, 12, 179, 101, 90, 220, 60,\n\t\t197, 82, 21, 149, 41, 82, 7, 11, 9, 217, 112, 188, 195, 18,\n\t\t141, 105, 244, 200, 73, 79, 151, 150, 179, 52, 82, 230, 79,\n\t\t79, 97, 164, 83, 163, 9, 25, 132, 189, 162, 217, 130, 107,\n\t\t243, 115, 10, 214, 201, 38, 107, 73, 150, 193, 45, 43, 79,\n\t\t188, 211, 52, 172, 45, 42, 218, 18, 44, 227, 54, 238, 145,\n\t\t135, 143, 170, 70, 1, 54, 33, 59, 244, 184, 1, 245, 180, 57,\n\t\t28, 2, 195, 86, 16, 240, 150, 98, 65, 63, 2, 221, 146, 156,\n\t\t167, 80, 102, 116, 211, 245, 207, 89, 101, 146, 38, 204, 120,\n\t\t187, 140, 52, 186, 219, 241, 24, 143, 180, 11, 65, 108, 236,\n\t\t178, 215, 1, 219, 233, 132, 136, 146, 38, 230, 115, 137, 64,\n\t\t255, 87, 39, 159, 141, 245, 190, 210, 237, 123, 220, 86, 236,\n\t\t147, 206, 210, 98, 143, 58, 193, 205, 56, 154, 218, 194, 104,\n\t\t143, 245, 58, 78, 236, 182, 130, 161, 111, 64, 164, 195, 129,\n\t\t196, 101, 208, 227, 226, 25, 152, 3, 157, 125, 78, 58, 227,\n\t\t252, 85, 250, 27, 205, 248, 97, 141, 14, 247, 59, 64, 60,\n\t\t249, 211, 246, 3, 234, 108, 237, 217, 163, 103, 112, 230,\n\t\t21, 68, 77, 110, 39, 166, 225, 111, 62, 111, 139, 23, 163,\n\t\t147, 40, 37, 216, 217, 218, 16, 84, 220, 53, 249, 117, 40,\n\t\t209, 43, 212, 191, 45, 158, 15, 210, 119, 158, 71, 210, 221,\n\t\t107, 45, 35, 225, 85, 56, 207, 143, 185, 69, 147, 54, 180,\n\t\t228, 230, 70, 79, 6, 132, 153, 115, 167, 193, 254, 138, 140,\n\t\t243, 112, 76, 160, 242, 12, 237, 3, 153, 98, 127, 182, 21,\n\t\t241, 78, 251, 105, 167, 121, 83, 214, 245, 51, 59, 169, 179,\n\t\t61, 0, 40, 81, 35, 94, 195, 21, 140, 186, 97, 187, 180, 159,\n\t\t208, 75, 76, 19, 117, 242, 204, 38, 83, 36, 167, 77, 98, 48,\n\t\t17, 81, 83, 29, 222, 106, 224, 53, 246, 36, 208, 126, 57,\n\t\t254, 78, 191, 132, 223, 157, 24, 40, 231, 113, 69, 109, 241,\n\t\t58, 183, 103, 109, 167, 222, 216, 187, 253, 103, 72, 219,\n\t\t116, 66, 83, 117, 149, 81, 182, 208, 229, 135, 18, 75, 113,\n\t\t169, 167, 20, 22, 119, 169, 155, 180, 165, 238, 210, 171,\n\t\t33, 125, 201, 17, 207, 68, 45, 166, 107, 222, 87, 200, 174,\n\t\t148, 53, 138, 154, 96, 168, 129, 195, 194, 196, 124, 6, 57,\n\t\t33, 74, 249, 83, 199, 171, 198, 235, 201, 143, 10, 11, 107,\n\t\t74, 209, 221, 228, 44, 177, 240, 56, 243, 158, 138, 60, 212,\n\t\t39, 118, 77, 151, 132, 218, 103, 101, 46, 66, 87, 135, 190,\n\t\t71, 154, 188, 213, 94, 234, 53, 192, 162, 226, 20, 63, 81,\n\t\t252, 226, 16, 46, 108, 80, 182, 1, 230, 60, 127, 81, 2, 68,\n\t\t202, 220, 186, 201, 183, 189, 130, 185, 203, 22, 243, 57,\n\t\t84, 166, 160, 140, 88, 97, 177, 217, 219, 205, 248, 153, 173,\n\t\t167, 152, 205, 59, 40, 23, 255, 47, 139, 188, 111, 124, 96,\n\t\t244, 22, 13, 46, 80, 154, 41, 74, 63, 179, 3, 213, 234, 4,\n\t\t237, 54, 239, 98, 70, 55, 224, 74, 0, 135, 253, 238, 114,\n\t\t39, 199, 33, 213, 19, 81, 222, 190, 215, 247, 170, 121, 115,\n\t\t219, 48, 231, 75, 116, 83, 52, 31, 131, 17, 12, 188, 151,\n\t\t66, 151, 169, 75, 162, 77, 175, 13, 143, 251, 27, 108, 64,\n\t\t39, 212, 163, 127, 245, 23, 9, 63, 131, 175, 148, 167, 196,\n\t\t107, 198, 173, 244, 158, 215, 158, 236, 128, 70, 104, 45,\n\t\t204, 14, 126, 181, 102, 211, 236, 52, 201, 211, 211, 112,\n\t\t74, 128, 164, 216, 236, 58, 79, 96, 177, 221, 244, 160, 83,\n\t\t83, 120, 17, 222, 83, 248, 103, 118, 205, 230, 173, 86, 74,\n\t\t141, 131, 24, 191, 76, 90, 88, 223, 157, 81, 28, 91, 254,\n\t\t201, 140, 120, 2, 88, 22, 223, 139, 135, 44, 24, 38, 5, 230,\n\t\t121, 115, 18, 230, 193, 115, 174, 58, 232, 9, 241, 47, 237,\n\t\t205, 125, 180, 230, 125, 234, 32, 172, 70, 98, 171, 160, 221,\n\t\t223, 185, 199, 194, 3, 66, 173, 39, 217, 84, 0, 17, 72, 118,\n\t\t164, 214, 126, 157, 21, 69, 124, 132, 21, 199, 156, 199, 118,\n\t\t188, 238, 153, 202, 145, 64, 103, 71, 149, 21, 180, 226, 151,\n\t\t196, 209, 149, 252, 45, 154, 204, 121, 130, 64, 6, 140, 197,\n\t\t21, 165, 194, 11, 209, 98, 122, 226, 40, 131, 118, 19, 87,\n\t\t8, 101, 203, 160, 113, 207, 15, 180, 133, 5, 54, 203, 14,\n\t\t201, 127, 191, 180, 145, 125, 22, 218, 216, 98, 175, 187,\n\t\t173, 60, 62, 213, 4, 230, 145, 136, 4, 124, 99, 31, 56, 59,\n\t\t180, 124, 118, 79, 229, 61, 97, 206, 246, 169, 48, 151, 54,\n\t\t188, 127, 27, 48, 158, 59, 128, 198, 69, 204, 254, 195, 160,\n\t\t163, 123, 122, 207, 157, 86, 143, 169, 233, 198, 73, 140,\n\t\t112, 16, 92, 227, 247, 42, 42, 235, 157, 234, 190, 1, 151,\n\t\t80, 192, 15, 31, 69, 169, 21, 203, 229, 22, 58, 68, 170, 255,\n\t\t147, 124, 1, 179, 60, 6, 19, 179, 183, 85, 72, 46, 13, 203,\n\t\t92, 100, 19, 25, 71, 98, 192, 197, 28, 233, 173, 214, 149,\n\t\t120, 27, 157, 226, 44, 174, 251, 239, 16, 50, 12, 213, 233,\n\t\t227, 135, 151, 248, 229, 152, 89, 155, 111, 109, 132, 234,\n\t\t117, 127, 15, 239, 150, 237, 3, 164, 33, 114, 41, 117, 130,\n\t\t237, 148, 3, 111, 166, 187, 88, 82, 71, 131, 136, 239, 12,\n\t\t253, 185, 251, 190, 165, 210, 1, 67, 220, 21, 142, 148, 174,\n\t\t115, 155, 31, 95, 198, 50, 95, 80, 76, 50, 78, 129, 192, 160,\n\t\t243, 70, 168, 177, 243, 82, 255, 45, 98, 37, 95, 40, 82, 55,\n\t\t160, 251, 95, 220, 192, 7, 176, 19, 192, 208, 217, 111, 211,\n\t\t174, 117, 7, 52, 128, 91, 152, 178, 170, 219, 5, 49, 120,\n\t\t69, 216, 133, 131, 116, 228, 38, 65, 208, 193, 171, 61, 194,\n\t\t127, 238, 42, 88, 193, 181, 178, 177, 58, 245, 140, 124, 238,\n\t\t54, 159, 253, 100, 154, 234, 47, 224, 249, 146, 249, 93, 127,\n\t\t56, 130, 48, 35, 170, 177, 211, 226, 215, 197, 194, 181, 242,\n\t\t90, 169, 222, 240, 37, 207, 238, 73, 23, 105, 184, 243, 26,\n\t\t184, 23, 187, 159, 254, 141, 126, 250, 67, 70, 51, 77, 127,\n\t\t223, 237, 224, 158, 17, 19, 133, 91, 16, 226, 68, 102, 134,\n\t\t234, 189, 169, 151, 104, 95, 145, 158, 51, 81, 244, 168, 71,\n\t\t197, 182, 150, 124, 35, 249, 215, 224, 71, 151, 3, 77, 245,\n\t\t103, 74, 224, 173, 195, 134, 234, 235, 121, 114, 56, 155,\n\t\t70, 224, 91, 81, 119, 122, 201, 255, 173, 233, 91, 147, 209,\n\t\t227, 94, 79, 249, 235, 14, 175, 50, 191, 99, 133, 110, 235,\n\t\t65, 119, 105, 227, 123, 163, 93, 109, 97, 166, 1, 106, 197,\n\t\t226, 58, 134, 168, 71, 121, 209, 254, 67, 138, 33, 127, 90,\n\t\t60, 35, 145, 185, 204, 2, 92, 197, 50, 112, 155, 174, 128,\n\t\t218, 190, 148, 146, 133, 9, 129, 230, 121, 158, 160, 96, 30,\n\t\t222, 178, 151, 11, 145, 45, 142, 189, 41, 57, 27, 119, 106,\n\t\t126, 214, 228, 145, 81, 86, 39, 35, 87, 75, 123, 149, 250,\n\t\t247, 204, 85, 86, 206, 171, 81, 119, 26, 188, 58, 21, 165,\n\t\t58, 84, 160, 230, 220, 225, 121, 207, 86, 114, 114, 231, 75,\n\t\t117, 225, 250, 101, 194, 9, 162, 133, 205, 208, 185, 175,\n\t\t185, 145, 187, 59, 137, 190, 152, 228, 55, 14, 6, 28, 68,\n\t\t104, 119, 121, 212, 213, 204, 250, 90, 84, 84, 85, 172, 194,\n\t\t208, 144, 113, 215, 23, 65, 10, 76, 214, 148, 225, 7, 84,\n\t\t71, 13, 122, 180, 59, 46, 155, 2, 200, 74, 55, 196, 43, 212,\n\t\t200, 41, 29, 243, 204, 239, 220, 131, 213, 37, 167, 195, 19,\n\t\t79, 247, 184, 16, 201, 18, 13, 141, 246, 240, 19, 6, 103,\n\t\t129, 159, 207, 165, 185, 79, 45, 174, 221, 129, 127, 187,\n\t\t243, 215, 207, 162, 91, 178, 58, 24, 168, 45, 133, 206, 195,\n\t\t93, 238, 86, 55, 83, 27, 249, 170, 150, 153, 52, 176, 116,\n\t\t42, 71, 184, 82, 206, 37, 80, 136, 84, 129, 214, 30, 13, 181,\n\t\t202, 150, 137, 22, 131, 123, 157, 231, 195, 170, 14, 63, 223,\n\t\t250, 126, 67, 243, 143, 101, 56, 16, 112, 31, 14, 219, 23,\n\t\t1, 103, 110, 159, 211, 43, 119, 62, 132, 191, 60, 94, 185,\n\t\t83, 0, 146, 121, 159, 46, 21, 21, 142, 138, 232, 10, 84, 22,\n\t\t1, 120, 167, 199, 149, 39, 87, 229, 131, 30, 82, 52, 127,\n\t\t81, 210, 85, 136, 123, 189, 69, 64, 231, 61, 229, 87, 1, 81,\n\t\t190, 138, 220, 121, 235, 241, 132, 224, 81, 207, 246, 123,\n\t\t126, 3, 80, 161, 72, 176, 189, 212, 190, 154, 175, 101, 183,\n\t\t78, 123, 60, 179, 22, 191, 200, 124, 245, 95, 61, 6, 52, 194,\n\t\t210, 193, 131, 28, 134, 208, 40, 80, 66, 12, 224, 40, 14,\n\t\t0, 119, 166, 41, 199, 43, 163, 171, 233, 3, 189, 221, 15,\n\t\t61, 124, 39, 155, 223, 137, 224, 248, 240, 15, 15, 142, 151,\n\t\t17, 214, 177, 77, 62, 215, 1, 120, 19, 98, 188, 3, 226, 221,\n\t\t137, 24, 120, 139, 175, 65, 224, 47, 92, 187, 233, 170, 4,\n\t\t203, 214, 220, 106, 84, 247, 144, 75, 255, 7, 0, 64, 255,\n\t\t191, 212, 12, 16, 141, 203, 228, 119, 180, 248, 119, 188,\n\t\t83, 16, 27, 167, 199, 235, 18, 198, 103, 183, 136, 101, 81,\n\t\t150, 74, 226, 19, 37, 177, 244, 94, 169, 36, 253, 60, 164,\n\t\t191, 88, 146, 202, 211, 101, 169, 124, 111, 89, 44, 127, 165,\n\t\t102, 192, 223, 103, 170, 103, 106, 71, 106, 187, 170, 159,\n\t\t169, 109, 191, 164, 29, 169, 213, 181, 218, 151, 15, 12, 135,\n\t\t7, 6, 239, 203, 20, 51, 213, 130, 172, 120, 5, 175, 146, 45,\n\t\t102, 75, 121, 5, 201, 69, 75, 247, 157, 55, 107, 232, 70,\n\t\t109, 251, 163, 218, 36, 122, 241, 47, 254, 12, 125, 124, 251,\n\t\t45, 47, 253, 135, 237, 183, 100, 52, 77, 59, 83, 67, 4, 126,\n\t\t190, 90, 253, 46, 28, 159, 168, 30, 169, 61, 16, 213, 102,\n\t\t107, 77, 213, 84, 69, 213, 80, 243, 128, 36, 3, 72, 175, 171,\n\t\t166, 146, 53, 84, 67, 134, 243, 85, 83, 53, 208, 105, 245,\n\t\t162, 207, 246, 119, 106, 181, 63, 130, 34, 162, 154, 246,\n\t\t95, 6, 7, 6, 131, 3, 75, 0, 227, 37, 217, 178, 92, 221, 116,\n\t\t108, 19, 19, 102, 25, 182, 46, 90, 151, 214, 106, 127, 88,\n\t\t171, 29, 172, 86, 209, 220, 246, 29, 55, 221, 228, 33, 115,\n\t\t251, 191, 29, 71, 103, 150, 151, 31, 170, 86, 167, 170, 213,\n\t\t135, 52, 237, 227, 105, 226, 77, 154, 118, 176, 86, 123, 8,\n\t\t238, 134, 66, 181, 90, 164, 213, 106, 154, 54, 218, 151, 7,\n\t\t184, 14, 250, 87, 152, 231, 124, 159, 129, 201, 159, 66, 174,\n\t\t64, 228, 220, 21, 152, 238, 240, 138, 47, 222, 10, 232, 207,\n\t\t211, 149, 220, 171, 252, 120, 7, 211, 217, 11, 150, 246, 63,\n\t\t146, 22, 136, 175, 127, 77, 143, 232, 140, 165, 109, 127,\n\t\t129, 175, 128, 65, 7, 52, 11, 174, 183, 219, 154, 181, 253,\n\t\t189, 86, 122, 49, 253, 31, 235, 6, 34, 224, 197, 183, 9, 215,\n\t\t140, 215, 162, 117, 40, 39, 130, 84, 15, 26, 27, 219, 211,\n\t\t181, 13, 227, 153, 91, 162, 220, 241, 154, 130, 197, 17, 76,\n\t\t30, 105, 78, 163, 27, 70, 97, 240, 240, 0, 103, 59, 248, 204,\n\t\t102, 183, 56, 108, 79, 84, 39, 90, 131, 226, 228, 162, 97,\n\t\t174, 76, 109, 44, 35, 198, 237, 6, 212, 173, 28, 109, 239,\n\t\t62, 49, 113, 201, 100, 117, 101, 122, 186, 214, 106, 116,\n\t\t178, 5, 80, 7, 26, 57, 165, 42, 129, 186, 181, 209, 205, 180,\n\t\t35, 184, 75, 110, 238, 46, 245, 26, 1, 114, 221, 206, 250,\n\t\t27, 231, 215, 195, 120, 102, 118, 186, 30, 76, 175, 174, 78,\n\t\t79, 34, 38, 193, 76, 148, 237, 66, 109, 107, 109, 114, 111,\n\t\t51, 168, 77, 207, 78, 215, 194, 226, 196, 68, 81, 83, 40,\n\t\t205, 208, 238, 30, 215, 99, 32, 194, 166, 131, 70, 175, 168,\n\t\t43, 210, 234, 78, 92, 231, 239, 160, 51, 232, 5, 208, 56,\n\t\t133, 212, 81, 159, 70, 164, 183, 76, 154, 46, 19, 75, 23,\n\t\t32, 167, 173, 136, 56, 90, 62, 183, 20, 110, 172, 211, 159,\n\t\t91, 47, 246, 7, 151, 222, 233, 213, 119, 53, 253, 182, 66,\n\t\t52, 162, 48, 195, 210, 248, 234, 29, 35, 15, 138, 120, 201,\n\t\t85, 114, 121, 47, 211, 244, 148, 61, 131, 149, 195, 145, 66,\n\t\t131, 169, 183, 162, 23, 78, 94, 90, 223, 92, 170, 121, 142,\n\t\t62, 109, 148, 140, 76, 104, 97, 50, 167, 228, 247, 222, 166,\n\t\t120, 149, 57, 219, 8, 117, 215, 187, 220, 243, 178, 149, 238,\n\t\t124, 216, 95, 58, 180, 18, 77, 35, 57, 191, 58, 119, 248,\n\t\t150, 139, 247, 37, 219, 63, 218, 243, 245, 124, 191, 57, 129,\n\t\t217, 203, 247, 113, 25, 133, 36, 37, 81, 248, 106, 172, 253,\n\t\t200, 51, 10, 247, 112, 100, 60, 15, 153, 56, 141, 131, 27,\n\t\t45, 65, 71, 15, 110, 60, 124, 114, 113, 254, 13, 149, 210,\n\t\t67, 39, 79, 158, 60, 112, 55, 90, 28, 254, 210, 93, 69, 209,\n\t\t187, 132, 77, 253, 146, 138, 8, 35, 89, 37, 55, 49, 63, 19,\n\t\t121, 76, 150, 137, 66, 28, 144, 250, 58, 198, 38, 76, 69,\n\t\t17, 84, 57, 0, 177, 215, 111, 156, 56, 249, 80, 190, 124,\n\t\t95, 111, 229, 228, 67, 219, 183, 223, 117, 224, 178, 133,\n\t\t225, 107, 15, 12, 102, 216, 166, 43, 230, 222, 39, 97, 26,\n\t\t200, 14, 18, 221, 96, 173, 156, 203, 134, 84, 153, 160, 162,\n\t\t98, 96, 154, 203, 153, 162, 100, 49, 74, 200, 185, 245, 196,\n\t\t124, 95, 191, 144, 35, 77, 196, 128, 111, 164, 95, 30, 98,\n\t\t155, 126, 123, 192, 143, 72, 18, 163, 51, 115, 115, 155, 230,\n\t\t214, 233, 107, 174, 57, 189, 101, 110, 206, 205, 237, 62,\n\t\t114, 221, 145, 51, 249, 33, 122, 246, 158, 185, 202, 220,\n\t\t119, 190, 3, 135, 123, 94, 124, 113, 251, 59, 187, 47, 88,\n\t\t163, 76, 248, 126, 73, 60, 202, 3, 32, 31, 215, 241, 161,\n\t\t87, 2, 190, 4, 167, 55, 104, 53, 147, 212, 39, 227, 159, 59,\n\t\t107, 38, 60, 248, 3, 221, 127, 116, 121, 243, 170, 2, 223,\n\t\t197, 181, 114, 162, 34, 161, 43, 148, 13, 156, 121, 67, 134,\n\t\t239, 232, 197, 227, 64, 208, 149, 210, 211, 79, 75, 53, 145,\n\t\t62, 194, 104, 83, 146, 154, 148, 221, 247, 233, 79, 191, 87,\n\t\t196, 25, 73, 138, 136, 248, 41, 145, 8, 23, 189, 159, 239,\n\t\t46, 8, 21, 240, 146, 24, 180, 139, 89, 180, 19, 99, 242, 247,\n\t\t135, 170, 29, 70, 245, 153, 248, 64, 41, 45, 246, 197, 179,\n\t\t194, 207, 93, 107, 26, 249, 107, 159, 188, 78, 16, 50, 103,\n\t\t183, 207, 126, 11, 175, 131, 238, 246, 184, 240, 75, 194,\n\t\t175, 166, 182, 173, 175, 11, 191, 39, 252, 159, 194, 43, 194,\n\t\t255, 45, 252, 4, 97, 212, 66, 11, 232, 82, 116, 45, 186, 27,\n\t\t189, 5, 189, 19, 61, 129, 158, 65, 159, 68, 95, 64, 95, 79,\n\t\t87, 58, 134, 124, 211, 11, 254, 151, 134, 61, 54, 135, 92,\n\t\t91, 129, 111, 31, 18, 209, 32, 221, 129, 57, 141, 140, 140,\n\t\t186, 81, 119, 216, 227, 46, 213, 254, 160, 153, 198, 92, 134,\n\t\t145, 95, 194, 67, 144, 9, 233, 35, 44, 141, 19, 105, 165,\n\t\t113, 243, 75, 104, 85, 28, 172, 142, 118, 17, 162, 44, 224,\n\t\t75, 60, 186, 97, 143, 71, 34, 140, 183, 22, 130, 121, 239,\n\t\t7, 240, 88, 24, 132, 60, 178, 129, 31, 90, 105, 200, 102,\n\t\t7, 81, 30, 116, 204, 194, 113, 113, 160, 84, 69, 221, 100,\n\t\t216, 148, 82, 8, 208, 76, 195, 55, 35, 30, 243, 192, 215,\n\t\t82, 1, 146, 178, 208, 128, 111, 108, 48, 82, 212, 70, 122,\n\t\t90, 51, 30, 173, 28, 95, 69, 240, 52, 223, 46, 1, 158, 239,\n\t\t179, 97, 191, 53, 137, 104, 108, 166, 251, 34, 208, 241, 54,\n\t\t179, 252, 61, 160, 254, 241, 61, 144, 58, 163, 13, 146, 120,\n\t\t193, 124, 193, 73, 218, 37, 163, 109, 136, 134, 3, 190, 60,\n\t\t11, 116, 57, 2, 29, 48, 82, 230, 248, 77, 225, 104, 67, 35,\n\t\t169, 35, 182, 118, 30, 12, 6, 124, 158, 196, 195, 65, 234,\n\t\t120, 134, 10, 143, 171, 153, 110, 127, 4, 92, 97, 21, 145,\n\t\t14, 98, 171, 124, 251, 177, 48, 221, 221, 40, 133, 54, 160,\n\t\t50, 114, 199, 77, 107, 152, 70, 88, 245, 71, 81, 168, 124,\n\t\t61, 252, 8, 1, 141, 34, 92, 185, 19, 208, 79, 107, 52, 196,\n\t\t187, 0, 215, 246, 162, 146, 241, 149, 15, 155, 197, 168, 199,\n\t\t93, 107, 50, 240, 52, 139, 41, 134, 104, 107, 204, 115, 177,\n\t\t92, 69, 138, 4, 10, 157, 8, 124, 70, 20, 153, 219, 182, 108,\n\t\t57, 128, 174, 74, 55, 136, 229, 94, 49, 195, 212, 170, 133,\n\t\t98, 171, 97, 204, 126, 236, 88, 206, 150, 53, 89, 34, 220,\n\t\t123, 104, 49, 79, 146, 28, 171, 229, 1, 142, 135, 71, 137,\n\t\t43, 170, 146, 130, 2, 190, 227, 92, 73, 215, 108, 209, 80,\n\t\t82, 163, 13, 145, 241, 161, 80, 70, 76, 38, 92, 219, 80, 3,\n\t\t217, 149, 1, 189, 247, 101, 81, 39, 18, 149, 148, 237, 195,\n\t\t114, 72, 100, 202, 160, 88, 151, 249, 170, 152, 39, 164, 43,\n\t\t218, 146, 170, 27, 76, 254, 106, 16, 251, 51, 107, 211, 211,\n\t\t199, 104, 141, 151, 138, 65, 230, 14, 138, 128, 18, 137, 28,\n\t\t203, 228, 50, 130, 88, 228, 203, 124, 3, 235, 250, 141, 146,\n\t\t110, 201, 124, 171, 33, 103, 65, 50, 46, 63, 50, 123, 249,\n\t\t164, 10, 74, 177, 74, 84, 95, 163, 152, 144, 160, 8, 186,\n\t\t48, 83, 231, 41, 202, 152, 84, 194, 118, 17, 17, 213, 100,\n\t\t110, 23, 75, 166, 237, 48, 51, 162, 22, 30, 12, 166, 18, 68,\n\t\t145, 204, 247, 89, 130, 217, 121, 212, 240, 51, 97, 86, 247,\n\t\t67, 40, 210, 93, 92, 248, 192, 103, 49, 244, 135, 40, 106,\n\t\t208, 121, 72, 36, 201, 124, 242, 113, 220, 117, 85, 79, 202,\n\t\t218, 102, 253, 115, 249, 245, 170, 190, 210, 223, 254, 35,\n\t\t77, 151, 176, 110, 75, 134, 223, 248, 171, 76, 69, 82, 27,\n\t\t78, 118, 174, 252, 35, 205, 4, 69, 6, 83, 141, 89, 232, 179,\n\t\t70, 195, 55, 148, 72, 20, 117, 141, 69, 200, 162, 6, 176,\n\t\t176, 60, 19, 163, 9, 132, 179, 32, 77, 64, 147, 138, 168,\n\t\t196, 24, 97, 204, 145, 37, 81, 67, 148, 40, 190, 236, 104,\n\t\t53, 83, 84, 49, 95, 214, 198, 119, 236, 134, 143, 227, 238,\n\t\t179, 68, 208, 217, 0, 165, 32, 110, 29, 199, 186, 140, 164,\n\t\t130, 229, 137, 146, 86, 219, 23, 53, 128, 147, 200, 88, 197,\n\t\t140, 73, 102, 173, 238, 57, 0, 84, 48, 193, 138, 142, 17,\n\t\t140, 142, 163, 105, 142, 7, 29, 139, 41, 210, 68, 73, 132,\n\t\t94, 167, 132, 253, 88, 201, 171, 85, 153, 7, 164, 203, 6,\n\t\t176, 154, 150, 40, 139, 98, 27, 151, 171, 200, 173, 27, 121,\n\t\t5, 202, 65, 146, 92, 109, 202, 98, 43, 3, 125, 218, 150, 156,\n\t\t90, 17, 137, 18, 202, 22, 208, 199, 97, 120, 42, 51, 51, 149,\n\t\t242, 204, 103, 144, 155, 113, 96, 190, 184, 172, 130, 69,\n\t\t34, 21, 59, 180, 169, 34, 181, 46, 137, 104, 104, 87, 0, 202,\n\t\t138, 109, 25, 85, 100, 233, 138, 188, 209, 159, 20, 249, 206,\n\t\t195, 85, 10, 195, 111, 48, 12, 226, 151, 2, 47, 180, 51, 6,\n\t\t211, 100, 21, 255, 166, 40, 26, 161, 131, 105, 19, 8, 94,\n\t\t161, 200, 190, 34, 159, 45, 219, 209, 16, 241, 125, 178, 128,\n\t\t161, 147, 104, 139, 105, 186, 170, 136, 10, 223, 179, 89,\n\t\t182, 107, 8, 81, 55, 159, 13, 124, 12, 61, 201, 253, 5, 8,\n\t\t247, 178, 78, 35, 108, 82, 82, 241, 28, 31, 5, 232, 177, 162,\n\t\t225, 21, 172, 202, 246, 207, 161, 72, 145, 52, 21, 137, 170,\n\t\t162, 151, 62, 27, 103, 109, 213, 113, 36, 181, 144, 11, 10,\n\t\t255, 40, 106, 10, 66, 166, 4, 99, 199, 246, 163, 146, 174,\n\t\t168, 34, 118, 153, 18, 77, 33, 23, 6, 3, 67, 190, 57, 182,\n\t\t89, 252, 49, 126, 24, 61, 151, 198, 92, 205, 241, 248, 132,\n\t\t81, 188, 85, 109, 28, 113, 5, 248, 73, 52, 9, 227, 59, 120,\n\t\t192, 164, 165, 29, 218, 42, 97, 244, 92, 174, 153, 207, 55,\n\t\t127, 204, 15, 57, 116, 164, 181, 220, 46, 201, 212, 213, 91,\n\t\t153, 124, 175, 160, 247, 154, 126, 116, 245, 145, 165, 27,\n\t\t215, 23, 203, 37, 221, 35, 147, 183, 254, 74, 174, 153, 75,\n\t\t239, 135, 35, 154, 192, 50, 117, 180, 156, 13, 50, 101, 58,\n\t\t27, 46, 52, 90, 60, 140, 91, 214, 35, 183, 228, 84, 164, 233,\n\t\t9, 115, 103, 221, 213, 206, 58, 152, 24, 176, 255, 154, 112,\n\t\t133, 112, 21, 223, 249, 110, 39, 26, 44, 138, 83, 111, 0,\n\t\t223, 127, 8, 165, 155, 215, 141, 78, 82, 32, 21, 93, 164,\n\t\t225, 180, 184, 31, 142, 111, 131, 200, 119, 62, 245, 217,\n\t\t248, 108, 180, 166, 31, 143, 203, 219, 217, 35, 242, 217,\n\t\t231, 31, 124, 240, 249, 7, 239, 71, 138, 171, 100, 27, 245,\n\t\t156, 226, 40, 139, 237, 220, 76, 238, 255, 209, 216, 79, 184,\n\t\t207, 28, 14, 63, 145, 248, 30, 44, 210, 227, 14, 220, 226,\n\t\t6, 165, 241, 202, 251, 15, 125, 237, 209, 71, 191, 246, 40,\n\t\t250, 249, 7, 249, 243, 114, 94, 81, 242, 81, 69, 150, 43,\n\t\t17, 79, 181, 23, 115, 51, 127, 253, 4, 95, 187, 253, 4, 148,\n\t\t241, 228, 35, 162, 248, 136, 52, 8, 212, 178, 162, 148, 213,\n\t\t192, 12, 2, 100, 164, 225, 197, 219, 159, 127, 148, 23, 114,\n\t\t65, 76, 141, 13, 168, 101, 89, 56, 36, 220, 12, 242, 105,\n\t\t208, 155, 231, 72, 178, 198, 183, 250, 164, 241, 160, 251,\n\t\t83, 94, 153, 216, 15, 249, 170, 215, 90, 43, 40, 225, 110,\n\t\t47, 234, 174, 138, 125, 224, 230, 104, 100, 219, 7, 189, 207,\n\t\t68, 48, 170, 97, 25, 245, 129, 81, 167, 129, 128, 168, 53,\n\t\t90, 152, 134, 158, 111, 26, 6, 146, 76, 19, 183, 219, 183,\n\t\t93, 224, 60, 121, 195, 34, 143, 95, 48, 213, 124, 73, 14,\n\t\t108, 75, 20, 221, 188, 171, 83, 140, 62, 151, 77, 122, 213,\n\t\t218, 112, 16, 101, 230, 107, 181, 249, 204, 151, 137, 200,\n\t\t20, 21, 24, 14, 76, 194, 7, 200, 91, 221, 204, 31, 84, 136,\n\t\t97, 98, 159, 20, 49, 138, 191, 124, 158, 49, 235, 97, 173,\n\t\t226, 68, 154, 38, 89, 5, 190, 59, 63, 165, 182, 158, 119,\n\t\t26, 148, 97, 165, 154, 203, 255, 79, 202, 222, 3, 94, 211,\n\t\t171, 170, 23, 126, 247, 126, 202, 126, 122, 47, 111, 239,\n\t\t229, 244, 243, 246, 247, 156, 57, 51, 231, 156, 233, 51, 103,\n\t\t106, 146, 201, 180, 100, 50, 233, 147, 94, 73, 72, 32, 9,\n\t\t147, 6, 132, 26, 64, 64, 17, 48, 42, 69, 69, 69, 228, 42,\n\t\t161, 73, 144, 34, 222, 79, 17, 5, 81, 64, 37, 130, 162, 94,\n\t\t245, 234, 245, 167, 126, 92, 145, 51, 119, 173, 253, 188,\n\t\t103, 74, 192, 251, 253, 190, 115, 222, 246, 244, 182, 247,\n\t\t90, 235, 191, 246, 90, 255, 5, 221, 84, 206, 155, 34, 40,\n\t\t87, 209, 220, 34, 42, 76, 198, 56, 9, 87, 7, 97, 70, 206,\n\t\t122, 231, 243, 169, 199, 99, 30, 38, 160, 195, 86, 106, 120,\n\t\t81, 123, 128, 171, 11, 80, 129, 97, 184, 64, 235, 165, 99,\n\t\t29, 132, 235, 67, 206, 253, 132, 54, 233, 7, 223, 122, 230,\n\t\t204, 91, 207, 188, 182, 60, 49, 113, 79, 105, 130, 25, 94,\n\t\t100, 124, 255, 162, 81, 255, 236, 161, 135, 95, 126, 217,\n\t\t85, 131, 227, 253, 251, 14, 145, 123, 206, 188, 229, 150,\n\t\t91, 222, 242, 145, 175, 24, 139, 187, 22, 76, 115, 161, 102,\n\t\t229, 226, 192, 17, 31, 186, 196, 239, 124, 237, 189, 7, 142,\n\t\t220, 213, 62, 185, 112, 240, 158, 196, 255, 241, 59, 188,\n\t\t221, 6, 169, 201, 212, 66, 106, 7, 230, 74, 67, 163, 12, 64,\n\t\t11, 199, 60, 20, 248, 194, 16, 193, 75, 230, 181, 206, 91,\n\t\t211, 104, 69, 251, 23, 17, 193, 255, 123, 69, 243, 42, 149,\n\t\t72, 45, 134, 51, 90, 148, 117, 102, 243, 115, 63, 95, 81,\n\t\t125, 156, 83, 138, 166, 245, 40, 227, 204, 230, 230, 30, 190,\n\t\t245, 205, 147, 59, 79, 182, 111, 126, 235, 202, 253, 187,\n\t\t46, 123, 197, 131, 87, 30, 125, 224, 229, 127, 231, 6, 199,\n\t\t67, 187, 37, 91, 213, 120, 162, 81, 223, 152, 168, 164, 39,\n\t\t26, 31, 122, 246, 150, 225, 53, 43, 141, 183, 156, 217, 118,\n\t\t223, 142, 245, 45, 247, 31, 191, 242, 193, 87, 92, 118, 197,\n\t\t67, 99, 251, 43, 101, 208, 20, 121, 25, 207, 185, 74, 141,\n\t\t1, 51, 207, 103, 73, 126, 163, 39, 142, 181, 62, 122, 230,\n\t\t204, 71, 63, 58, 155, 245, 207, 158, 237, 31, 248, 232, 249,\n\t\t95, 153, 51, 223, 60, 115, 51, 76, 101, 112, 106, 255, 71,\n\t\t207, 255, 202, 158, 193, 8, 41, 232, 207, 255, 155, 247, 103,\n\t\t31, 57, 90, 207, 63, 183, 100, 135, 201, 142, 71, 231, 15,\n\t\t196, 222, 197, 123, 213, 239, 172, 29, 72, 15, 114, 7, 14,\n\t\t232, 153, 218, 99, 47, 62, 246, 24, 78, 101, 15, 30, 212,\n\t\t211, 227, 196, 180, 239, 237, 59, 152, 25, 100, 97, 113, 186,\n\t\t254, 216, 35, 143, 61, 118, 126, 42, 149, 210, 206, 125, 63,\n\t\t101, 211, 221, 228, 118, 30, 35, 215, 131, 62, 132, 62, 131,\n\t\t83, 169, 219, 120, 197, 3, 140, 1, 36, 181, 4, 203, 55, 146,\n\t\t33, 50, 156, 136, 229, 102, 139, 181, 18, 214, 168, 102, 139,\n\t\t211, 149, 227, 127, 20, 247, 192, 118, 145, 235, 99, 224,\n\t\t136, 214, 18, 130, 55, 252, 7, 99, 174, 72, 69, 236, 98, 208,\n\t\t193, 206, 179, 131, 140, 241, 28, 55, 195, 26, 23, 142, 36,\n\t\t143, 119, 240, 1, 80, 152, 170, 109, 251, 22, 81, 49, 112,\n\t\t54, 176, 172, 27, 231, 95, 222, 40, 21, 235, 247, 207, 183,\n\t\t189, 154, 234, 159, 172, 223, 61, 141, 229, 2, 38, 239, 172,\n\t\t95, 235, 107, 53, 123, 253, 247, 182, 159, 222, 177, 227,\n\t\t244, 181, 226, 225, 81, 238, 96, 145, 10, 132, 22, 15, 231,\n\t\t242, 221, 70, 154, 88, 149, 163, 39, 39, 42, 199, 78, 172,\n\t\t255, 209, 212, 210, 212, 212, 146, 155, 11, 140, 200, 200,\n\t\t181, 114, 100, 83, 80, 14, 10, 48, 103, 50, 157, 195, 100,\n\t\t203, 15, 202, 112, 28, 223, 178, 44, 60, 178, 5, 191, 94,\n\t\t223, 176, 231, 231, 231, 102, 237, 106, 237, 193, 118, 41,\n\t\t135, 100, 236, 217, 210, 252, 3, 165, 211, 219, 225, 72, 143,\n\t\t141, 246, 83, 221, 117, 140, 168, 214, 153, 62, 49, 193, 143,\n\t\t240, 74, 220, 251, 212, 30, 226, 231, 140, 200, 244, 115,\n\t\t57, 223, 175, 248, 120, 196, 14, 207, 228, 76, 48, 56, 57,\n\t\t247, 73, 178, 153, 188, 0, 168, 161, 143, 216, 16, 122, 117,\n\t\t137, 36, 89, 163, 160, 49, 192, 144, 235, 140, 154, 27, 108,\n\t\t92, 20, 199, 136, 134, 17, 79, 215, 108, 140, 169, 129, 240,\n\t\t222, 141, 198, 118, 43, 222, 60, 226, 87, 22, 195, 253, 166,\n\t\t81, 178, 131, 197, 253, 102, 77, 53, 246, 135, 75, 229, 156,\n\t\t163, 202, 185, 80, 116, 58, 253, 182, 166, 135, 57, 38, 80,\n\t\t195, 90, 255, 225, 254, 97, 109, 115, 109, 255, 29, 251, 183,\n\t\t53, 251, 205, 102, 214, 45, 186, 247, 133, 114, 136, 219,\n\t\t232, 184, 41, 236, 225, 0, 32, 81, 47, 246, 76, 102, 9, 154,\n\t\t99, 41, 204, 98, 166, 110, 56, 250, 231, 134, 251, 107, 75,\n\t\t245, 193, 254, 253, 131, 108, 163, 145, 205, 53, 220, 194,\n\t\t197, 185, 165, 140, 115, 9, 67, 255, 29, 142, 35, 143, 95,\n\t\t42, 110, 197, 177, 19, 33, 158, 35, 227, 100, 246, 132, 99,\n\t\t12, 172, 114, 36, 223, 140, 86, 48, 107, 125, 56, 79, 49,\n\t\t155, 234, 249, 116, 57, 157, 46, 255, 243, 37, 98, 227, 15,\n\t\t230, 119, 204, 207, 239, 120, 149, 232, 88, 81, 195, 41, 50,\n\t\t217, 114, 192, 152, 82, 141, 160, 97, 182, 205, 188, 217,\n\t\t174, 27, 240, 57, 111, 214, 66, 87, 91, 175, 164, 211, 149,\n\t\t248, 153, 139, 228, 232, 21, 176, 233, 246, 246, 47, 43, 162,\n\t\t226, 169, 162, 4, 95, 204, 82, 192, 192, 49, 200, 188, 89,\n\t\t72, 54, 181, 218, 134, 104, 234, 246, 197, 28, 63, 232, 7,\n\t\t157, 230, 222, 145, 139, 184, 94, 123, 62, 158, 95, 34, 106,\n\t\t144, 89, 180, 53, 30, 196, 226, 44, 29, 93, 242, 147, 110,\n\t\t252, 228, 169, 83, 79, 166, 221, 223, 79, 87, 39, 109, 207,\n\t\t208, 156, 42, 60, 253, 124, 217, 209, 76, 207, 158, 170, 166,\n\t\t213, 52, 57, 155, 118, 95, 115, 234, 201, 39, 79, 189, 198,\n\t\t77, 175, 255, 107, 92, 110, 121, 186, 225, 25, 149, 172, 231,\n\t\t231, 74, 6, 82, 193, 78, 148, 99, 149, 243, 136, 253, 47,\n\t\t122, 150, 188, 57, 181, 31, 206, 0, 41, 89, 5, 86, 107, 33,\n\t\t22, 104, 118, 120, 78, 60, 219, 76, 6, 189, 144, 99, 18, 228,\n\t\t6, 226, 172, 169, 231, 103, 96, 234, 25, 169, 193, 26, 155,\n\t\t104, 15, 173, 119, 152, 229, 195, 140, 1, 61, 219, 114, 229,\n\t\t233, 102, 215, 179, 46, 103, 107, 158, 29, 95, 23, 107, 109,\n\t\t239, 231, 188, 178, 204, 110, 51, 89, 161, 34, 75, 75, 138,\n\t\t62, 251, 38, 199, 151, 213, 162, 90, 240, 37, 57, 112, 221,\n\t\t205, 147, 82, 51, 88, 18, 86, 233, 43, 164, 162, 65, 222,\n\t\t104, 144, 9, 243, 134, 147, 247, 79, 126, 214, 122, 83, 131,\n\t\t144, 209, 55, 23, 162, 54, 1, 3, 211, 36, 208, 43, 255, 61,\n\t\t111, 46, 108, 49, 181, 215, 64, 79, 53, 137, 105, 4, 219,\n\t\t252, 209, 156, 102, 202, 184, 152, 22, 95, 169, 190, 89, 36,\n\t\t89, 219, 180, 82, 23, 113, 6, 89, 128, 196, 139, 32, 99, 238,\n\t\t225, 217, 34, 244, 66, 141, 139, 250, 75, 178, 152, 70, 1,\n\t\t38, 37, 245, 107, 213, 18, 225, 165, 63, 58, 125, 46, 48,\n\t\t154, 45, 192, 103, 53, 158, 38, 149, 164, 216, 144, 218, 112,\n\t\t4, 143, 97, 158, 135, 91, 203, 152, 54, 130, 57, 77, 152,\n\t\t101, 130, 177, 216, 12, 35, 249, 91, 112, 63, 134, 163, 127,\n\t\t164, 34, 216, 214, 186, 168, 72, 178, 78, 116, 46, 28, 31,\n\t\t124, 252, 249, 199, 31, 127, 126, 209, 153, 222, 135, 33,\n\t\t203, 98, 16, 140, 218, 6, 210, 33, 108, 243, 124, 65, 244,\n\t\t197, 162, 71, 4, 166, 145, 217, 125, 34, 97, 176, 212, 93,\n\t\t108, 3, 0, 208, 87, 93, 91, 16, 29, 177, 128, 153, 167, 98,\n\t\t229, 25, 114, 237, 107, 201, 103, 68, 89, 18, 84, 38, 41,\n\t\t146, 122, 119, 146, 133, 244, 203, 184, 227, 199, 31, 161,\n\t\t218, 86, 207, 195, 93, 21, 2, 81, 209, 201, 244, 1, 145, 200,\n\t\t162, 239, 195, 142, 224, 48, 242, 86, 215, 199, 96, 138, 162,\n\t\t3, 159, 120, 10, 130, 24, 248, 11, 243, 68, 18, 255, 233,\n\t\t113, 242, 220, 171, 232, 56, 215, 249, 243, 0, 182, 62, 14,\n\t\t218, 60, 157, 170, 166, 102, 224, 174, 241, 196, 115, 104,\n\t\t122, 173, 166, 69, 99, 238, 45, 227, 106, 162, 193, 145, 57,\n\t\t146, 67, 0, 250, 27, 113, 146, 170, 209, 83, 7, 106, 55, 143,\n\t\t182, 111, 90, 173, 252, 126, 52, 89, 203, 101, 226, 102, 92,\n\t\t235, 116, 118, 117, 200, 82, 101, 243, 225, 213, 181, 123,\n\t\t50, 66, 254, 203, 193, 129, 169, 149, 147, 15, 77, 124, 239,\n\t\t193, 153, 118, 165, 177, 13, 110, 76, 88, 89, 130, 245, 96,\n\t\t173, 206, 35, 87, 124, 120, 174, 33, 254, 74, 253, 120, 229,\n\t\t137, 214, 164, 242, 168, 245, 250, 171, 215, 150, 199, 125,\n\t\t229, 119, 200, 139, 228, 99, 169, 239, 165, 254, 30, 125,\n\t\t2, 5, 34, 179, 54, 207, 47, 96, 128, 164, 16, 190, 227, 224,\n\t\t127, 171, 29, 117, 56, 178, 5, 108, 11, 64, 149, 215, 7, 26,\n\t\t142, 144, 157, 176, 87, 128, 78, 53, 10, 10, 4, 103, 4, 49,\n\t\t134, 175, 129, 254, 136, 226, 14, 122, 6, 0, 232, 243, 119,\n\t\t21, 86, 199, 65, 211, 54, 42, 22, 88, 30, 6, 33, 167, 236,\n\t\t77, 168, 129, 113, 148, 14, 209, 56, 116, 70, 88, 132, 7,\n\t\t105, 119, 248, 112, 9, 18, 254, 214, 90, 201, 27, 185, 12,\n\t\t209, 15, 5, 64, 184, 106, 73, 136, 186, 231, 73, 24, 37, 76,\n\t\t113, 232, 209, 138, 98, 44, 128, 129, 57, 51, 43, 4, 67, 170,\n\t\t19, 230, 141, 13, 250, 157, 120, 20, 52, 228, 176, 61, 36,\n\t\t127, 65, 105, 30, 35, 180, 178, 142, 143, 245, 154, 4, 70,\n\t\t100, 63, 61, 17, 215, 171, 84, 18, 242, 153, 149, 98, 36,\n\t\t136, 130, 163, 200, 170, 7, 80, 134, 106, 132, 23, 211, 81,\n\t\t68, 142, 158, 225, 37, 231, 115, 130, 40, 171, 186, 65, 80,\n\t\t116, 65, 51, 163, 145, 42, 250, 13, 2, 192, 24, 139, 62, 25,\n\t\t26, 231, 199, 69, 126, 18, 120, 252, 60, 147, 153, 211, 251,\n\t\t192, 149, 168, 20, 64, 43, 46, 80, 28, 221, 145, 114, 174,\n\t\t132, 237, 77, 144, 4, 89, 84, 104, 174, 192, 24, 181, 124,\n\t\t211, 50, 204, 185, 85, 162, 149, 93, 81, 115, 149, 52, 45,\n\t\t154, 140, 152, 22, 64, 246, 82, 1, 153, 121, 165, 16, 144,\n\t\t58, 156, 25, 38, 59, 175, 127, 157, 144, 63, 214, 117, 161,\n\t\t63, 35, 16, 93, 47, 122, 150, 2, 135, 101, 136, 76, 85, 104,\n\t\t226, 148, 168, 110, 115, 91, 123, 96, 25, 179, 147, 134, 89,\n\t\t45, 105, 76, 148, 210, 49, 158, 62, 168, 82, 34, 18, 85, 2,\n\t\t227, 23, 83, 169, 101, 73, 210, 68, 184, 46, 6, 23, 136, 97,\n\t\t180, 72, 41, 100, 101, 60, 65, 0, 24, 71, 117, 60, 93, 152,\n\t\t35, 201, 9, 237, 47, 102, 78, 11, 156, 61, 25, 75, 91, 193,\n\t\t186, 178, 129, 25, 60, 200, 26, 66, 0, 205, 35, 99, 175, 172,\n\t\t241, 178, 83, 2, 149, 8, 136, 13, 28, 225, 198, 16, 221, 173,\n\t\t179, 153, 200, 47, 235, 190, 199, 124, 10, 40, 166, 89, 205,\n\t\t40, 204, 46, 100, 137, 101, 70, 190, 146, 97, 0, 196, 13,\n\t\t228, 31, 144, 133, 83, 176, 233, 134, 252, 254, 10, 249, 95,\n\t\t160, 91, 99, 94, 37, 42, 225, 67, 193, 32, 43, 48, 65, 120,\n\t\t6, 25, 226, 154, 166, 47, 227, 56, 90, 31, 63, 0, 33, 144,\n\t\t77, 91, 174, 157, 50, 155, 91, 142, 13, 230, 118, 157, 86,\n\t\t196, 27, 158, 121, 203, 25, 114, 205, 174, 217, 118, 105,\n\t\t119, 113, 106, 52, 156, 46, 237, 46, 29, 34, 63, 179, 118,\n\t\t251, 99, 237, 125, 197, 21, 233, 205, 55, 158, 121, 203, 74,\n\t\t113, 253, 126, 95, 8, 157, 235, 31, 187, 222, 9, 5, 127, 237,\n\t\t27, 188, 127, 254, 22, 32, 241, 255, 158, 170, 164, 166, 82,\n\t\t93, 100, 239, 37, 17, 171, 112, 44, 193, 203, 219, 180, 44,\n\t\t146, 208, 197, 97, 129, 44, 56, 42, 186, 109, 36, 48, 133,\n\t\t40, 210, 147, 244, 146, 34, 69, 208, 236, 198, 100, 70, 228,\n\t\t187, 77, 125, 253, 99, 243, 43, 59, 252, 135, 211, 47, 95,\n\t\t219, 85, 174, 46, 15, 74, 89, 111, 241, 208, 96, 167, 255,\n\t\t204, 101, 215, 221, 179, 190, 215, 51, 213, 184, 54, 25, 239,\n\t\t61, 241, 7, 197, 249, 236, 212, 150, 143, 109, 159, 181, 173,\n\t\t140, 157, 35, 229, 29, 123, 235, 61, 39, 93, 222, 113, 208,\n\t\t118, 93, 161, 89, 43, 95, 86, 62, 179, 43, 58, 116, 229, 237,\n\t\t210, 116, 102, 177, 245, 15, 141, 197, 138, 79, 13, 115, 234,\n\t\t183, 114, 51, 233, 225, 219, 178, 107, 205, 162, 147, 182,\n\t\t54, 238, 219, 183, 193, 150, 197, 220, 169, 46, 200, 150,\n\t\t34, 220, 238, 141, 17, 1, 164, 212, 46, 146, 70, 2, 19, 166,\n\t\t201, 176, 197, 249, 110, 185, 38, 74, 120, 184, 193, 90, 153,\n\t\t213, 181, 124, 112, 216, 10, 2, 107, 83, 232, 152, 8, 128,\n\t\t201, 243, 56, 213, 95, 150, 158, 17, 70, 181, 216, 10, 45,\n\t\t141, 9, 146, 89, 31, 230, 159, 9, 202, 111, 158, 159, 218,\n\t\t138, 210, 254, 17, 43, 240, 51, 65, 187, 182, 156, 251, 135,\n\t\t192, 90, 127, 202, 10, 182, 156, 41, 46, 235, 138, 111, 244,\n\t\t118, 206, 47, 197, 122, 142, 25, 163, 66, 175, 146, 112, 61,\n\t\t148, 206, 125, 150, 252, 60, 200, 154, 53, 64, 182, 247, 166,\n\t\t222, 136, 99, 165, 112, 108, 232, 166, 131, 13, 102, 24, 158,\n\t\t208, 196, 245, 51, 170, 204, 60, 13, 49, 13, 123, 76, 239,\n\t\t192, 106, 176, 56, 65, 181, 200, 232, 223, 91, 230, 201, 58,\n\t\t22, 157, 35, 62, 40, 31, 164, 141, 76, 8, 149, 208, 129, 230,\n\t\t243, 116, 110, 238, 63, 139, 194, 162, 48, 108, 225, 136,\n\t\t63, 151, 181, 163, 97, 100, 67, 131, 225, 140, 198, 9, 197,\n\t\t193, 25, 137, 2, 68, 51, 45, 178, 56, 49, 177, 233, 80, 87,\n\t\t81, 149, 66, 61, 61, 181, 224, 35, 63, 80, 235, 100, 153,\n\t\t135, 152, 54, 109, 153, 200, 150, 165, 253, 139, 162, 188,\n\t\t72, 26, 55, 93, 185, 212, 88, 220, 179, 99, 115, 219, 43,\n\t\t52, 102, 102, 231, 124, 17, 91, 126, 212, 104, 111, 175, 201,\n\t\t234, 119, 229, 64, 234, 60, 126, 247, 17, 149, 216, 182, 54,\n\t\t216, 123, 249, 229, 111, 11, 64, 105, 96, 196, 158, 7, 138,\n\t\t198, 115, 37, 93, 162, 1, 8, 17, 65, 148, 164, 91, 52, 85,\n\t\t20, 228, 162, 115, 77, 99, 180, 56, 209, 89, 178, 133, 188,\n\t\t160, 22, 179, 133, 38, 137, 100, 213, 54, 114, 209, 188, 159,\n\t\t54, 202, 205, 59, 91, 205, 166, 173, 106, 130, 168, 124, 82,\n\t\t43, 62, 61, 225, 87, 47, 27, 76, 237, 108, 153, 86, 135, 76,\n\t\t73, 10, 60, 16, 35, 227, 139, 154, 226, 134, 46, 53, 5, 111,\n\t\t253, 19, 114, 32, 119, 178, 205, 211, 43, 18, 44, 106, 175,\n\t\t53, 148, 226, 27, 4, 56, 3, 133, 5, 158, 228, 72, 158, 43,\n\t\t155, 112, 116, 77, 146, 82, 227, 188, 154, 79, 66, 123, 153,\n\t\t5, 100, 121, 48, 117, 35, 180, 247, 205, 194, 28, 22, 19,\n\t\t178, 40, 104, 235, 113, 125, 192, 0, 16, 52, 136, 102, 188,\n\t\t207, 0, 212, 132, 120, 192, 153, 31, 161, 201, 32, 118, 227,\n\t\t119, 184, 27, 23, 69, 238, 187, 68, 45, 47, 163, 207, 152,\n\t\t151, 63, 88, 22, 184, 192, 70, 145, 0, 54, 155, 42, 83, 201,\n\t\t54, 109, 113, 109, 239, 114, 105, 46, 173, 59, 138, 178, 216,\n\t\t100, 230, 92, 119, 182, 144, 109, 244, 26, 222, 145, 124,\n\t\t193, 213, 94, 203, 234, 71, 230, 219, 215, 244, 28, 16, 59,\n\t\t52, 29, 141, 154, 171, 139, 107, 45, 65, 174, 171, 134, 40,\n\t\t129, 112, 19, 229, 41, 147, 74, 138, 166, 75, 77, 133, 138,\n\t\t164, 32, 218, 204, 4, 129, 8, 162, 70, 86, 3, 139, 77, 172,\n\t\t122, 249, 140, 254, 54, 51, 203, 216, 66, 93, 15, 51, 212,\n\t\t153, 46, 23, 102, 210, 182, 116, 108, 82, 24, 21, 84, 45,\n\t\t107, 191, 94, 205, 149, 38, 39, 125, 81, 2, 225, 147, 213,\n\t\t208, 97, 10, 194, 143, 133, 32, 4, 37, 189, 137, 100, 71,\n\t\t2, 242, 169, 17, 81, 19, 115, 124, 236, 199, 29, 231, 197,\n\t\t170, 88, 143, 40, 196, 154, 78, 146, 91, 35, 193, 173, 239,\n\t\t186, 147, 116, 223, 253, 192, 219, 201, 11, 183, 28, 93, 95,\n\t\t231, 99, 68, 255, 73, 62, 79, 158, 76, 97, 17, 163, 113, 163,\n\t\t106, 205, 9, 24, 43, 184, 44, 142, 184, 91, 124, 5, 187, 25,\n\t\t114, 134, 197, 17, 121, 65, 56, 113, 213, 74, 43, 7, 182,\n\t\t175, 225, 218, 170, 84, 12, 181, 137, 176, 24, 169, 125, 35,\n\t\t237, 57, 85, 80, 79, 52, 44, 216, 149, 83, 59, 73, 115, 235,\n\t\t125, 47, 223, 235, 215, 102, 39, 219, 110, 152, 83, 26, 94,\n\t\t90, 35, 210, 254, 119, 58, 246, 128, 206, 198, 161, 47, 200,\n\t\t119, 8, 244, 146, 241, 3, 45, 25, 191, 104, 180, 160, 175,\n\t\t178, 152, 143, 80, 108, 94, 93, 125, 126, 117, 245, 106, 28,\n\t\t55, 120, 229, 243, 71, 143, 62, 127, 226, 165, 245, 25, 102,\n\t\t82, 43, 240, 228, 249, 118, 188, 252, 221, 40, 65, 35, 188,\n\t\t8, 95, 151, 243, 62, 36, 67, 30, 253, 45, 152, 189, 212, 31,\n\t\t33, 84, 143, 97, 78, 181, 143, 164, 211, 53, 22, 39, 228,\n\t\t16, 43, 164, 197, 227, 184, 25, 31, 108, 230, 163, 35, 159,\n\t\t148, 153, 208, 171, 21, 179, 21, 47, 15, 198, 76, 248, 228,\n\t\t140, 72, 22, 244, 29, 160, 42, 175, 56, 227, 8, 135, 89, 6,\n\t\t230, 93, 22, 137, 128, 112, 156, 156, 24, 169, 172, 92, 98,\n\t\t124, 116, 163, 39, 106, 170, 92, 138, 172, 82, 38, 108, 8,\n\t\t119, 51, 66, 179, 25, 17, 35, 68, 238, 109, 80, 154, 214,\n\t\t52, 246, 47, 25, 174, 167, 126, 178, 8, 218, 238, 14, 153,\n\t\t8, 127, 147, 214, 242, 121, 45, 93, 81, 92, 87, 225, 215,\n\t\t102, 193, 181, 253, 11, 249, 57, 144, 224, 139, 169, 221,\n\t\t188, 218, 18, 32, 81, 22, 133, 27, 233, 199, 96, 106, 243,\n\t\t200, 7, 78, 100, 49, 236, 37, 164, 116, 205, 1, 230, 235,\n\t\t15, 165, 139, 198, 239, 144, 135, 29, 155, 113, 53, 97, 143,\n\t\t232, 142, 46, 174, 236, 70, 158, 207, 21, 213, 180, 240, 202,\n\t\t227, 139, 215, 45, 8, 25, 181, 152, 139, 156, 197, 67, 37,\n\t\t170, 94, 103, 196, 110, 28, 187, 78, 124, 60, 127, 120, 209,\n\t\t89, 255, 118, 218, 81, 108, 77, 142, 29, 221, 211, 255, 4,\n\t\t185, 76, 194, 219, 193, 240, 97, 44, 247, 112, 14, 230, 164,\n\t\t29, 39, 142, 255, 181, 217, 49, 116, 107, 229, 196, 228, 206,\n\t\t41, 83, 55, 219, 45, 103, 66, 120, 157, 74, 163, 40, 174,\n\t\t196, 177, 19, 60, 42, 180, 236, 91, 157, 88, 214, 45, 197,\n\t\t141, 117, 239, 22, 220, 56, 12, 145, 20, 37, 127, 185, 230,\n\t\t233, 110, 140, 251, 72, 100, 127, 6, 108, 242, 191, 1, 219,\n\t\t146, 242, 24, 148, 118, 71, 10, 43, 168, 152, 0, 81, 32, 211,\n\t\t197, 0, 237, 182, 222, 112, 142, 242, 196, 0, 46, 109, 227,\n\t\t40, 75, 126, 111, 253, 139, 100, 249, 216, 213, 197, 204,\n\t\t193, 235, 91, 253, 29, 244, 21, 89, 229, 215, 4, 191, 88,\n\t\t210, 141, 221, 247, 214, 141, 87, 220, 176, 122, 75, 177,\n\t\t240, 103, 78, 127, 118, 168, 250, 209, 173, 118, 104, 7, 215,\n\t\t15, 159, 92, 172, 204, 21, 167, 3, 157, 208, 221, 253, 83,\n\t\t175, 90, 26, 246, 55, 234, 196, 252, 41, 231, 16, 141, 48,\n\t\t195, 25, 239, 56, 79, 164, 224, 34, 162, 57, 14, 27, 140,\n\t\t47, 68, 73, 198, 220, 161, 144, 100, 239, 146, 15, 216, 38,\n\t\t128, 211, 236, 177, 112, 235, 241, 46, 50, 151, 238, 190,\n\t\t167, 246, 137, 119, 109, 153, 62, 180, 124, 236, 216, 242,\n\t\t158, 217, 165, 210, 169, 209, 85, 143, 63, 126, 213, 166,\n\t\t235, 255, 45, 155, 155, 185, 238, 29, 115, 219, 155, 96, 146,\n\t\t239, 221, 122, 231, 93, 165, 61, 199, 150, 151, 143, 173,\n\t\t212, 230, 7, 143, 255, 230, 227, 75, 252, 217, 43, 227, 60,\n\t\t193, 243, 117, 71, 26, 113, 216, 242, 19, 151, 206, 192, 31,\n\t\t177, 26, 185, 177, 241, 244, 127, 187, 226, 93, 241, 163,\n\t\t255, 49, 55, 245, 31, 143, 126, 253, 203, 233, 175, 31, 33,\n\t\t91, 95, 125, 109, 243, 205, 155, 138, 95, 95, 255, 143, 77,\n\t\t191, 11, 91, 122, 231, 94, 32, 255, 147, 124, 46, 117, 34,\n\t\t117, 19, 232, 40, 184, 22, 158, 206, 193, 121, 148, 106, 156,\n\t\t91, 156, 143, 172, 191, 244, 187, 55, 64, 87, 99, 192, 66,\n\t\t188, 86, 78, 225, 7, 253, 162, 134, 133, 87, 88, 248, 95,\n\t\t108, 209, 224, 113, 226, 137, 39, 119, 116, 209, 111, 242,\n\t\t119, 210, 199, 170, 83, 213, 143, 73, 57, 169, 62, 126, 55,\n\t\t116, 213, 1, 4, 170, 203, 145, 36, 185, 84, 204, 129, 136,\n\t\t215, 109, 163, 33, 230, 197, 6, 95, 99, 253, 7, 240, 5, 175,\n\t\t183, 37, 95, 207, 137, 127, 118, 109, 182, 80, 200, 94, 251,\n\t\t103, 162, 88, 254, 117, 120, 151, 249, 251, 30, 228, 183,\n\t\t8, 144, 103, 90, 20, 55, 43, 162, 216, 220, 88, 32, 254, 122,\n\t\t89, 148, 86, 69, 113, 85, 74, 62, 199, 227, 222, 255, 73,\n\t\t159, 32, 79, 225, 24, 127, 61, 224, 153, 179, 168, 124, 107,\n\t\t69, 186, 68, 198, 23, 145, 184, 149, 81, 227, 78, 147, 177,\n\t\t211, 7, 31, 116, 55, 90, 150, 70, 160, 39, 186, 27, 245, 239,\n\t\t198, 188, 91, 216, 165, 24, 242, 72, 151, 8, 125, 66, 58,\n\t\t129, 236, 130, 210, 255, 84, 178, 145, 153, 83, 79, 168, 240,\n\t\t202, 101, 90, 65, 214, 186, 73, 110, 102, 10, 83, 83, 133,\n\t\t76, 83, 150, 92, 201, 16, 85, 80, 28, 86, 152, 241, 2, 38,\n\t\t202, 57, 87, 15, 44, 213, 78, 219, 110, 78, 46, 154, 81, 86,\n\t\t37, 67, 85, 58, 241, 5, 77, 24, 96, 37, 137, 186, 185, 185,\n\t\t154, 195, 29, 169, 185, 153, 225, 76, 92, 156, 218, 52, 85,\n\t\t4, 171, 151, 72, 10, 216, 214, 165, 170, 45, 16, 39, 80, 173,\n\t\t64, 183, 50, 86, 96, 87, 54, 155, 53, 73, 22, 134, 137, 47,\n\t\t231, 2, 231, 169, 141, 35, 203, 245, 164, 44, 105, 119, 131,\n\t\t139, 35, 66, 87, 42, 166, 103, 117, 201, 174, 200, 222, 181,\n\t\t203, 254, 18, 7, 156, 110, 175, 254, 80, 119, 87, 253, 223,\n\t\t74, 209, 90, 129, 3, 197, 255, 119, 79, 239, 251, 107, 60,\n\t\t167, 123, 28, 31, 225, 167, 70, 169, 93, 200, 168, 219, 72,\n\t\t74, 33, 140, 35, 154, 120, 247, 99, 137, 160, 105, 113, 94,\n\t\t159, 209, 216, 249, 201, 198, 204, 99, 73, 231, 168, 115,\n\t\t14, 166, 38, 55, 128, 64, 236, 202, 151, 78, 146, 95, 8, 171,\n\t\t193, 66, 107, 253, 47, 230, 183, 141, 166, 220, 227, 195,\n\t\t173, 215, 90, 186, 111, 169, 190, 77, 69, 49, 237, 74, 242,\n\t\t90, 191, 177, 98, 23, 35, 77, 9, 245, 176, 128, 183, 148,\n\t\t154, 88, 86, 192, 96, 197, 162, 98, 68, 106, 53, 39, 235,\n\t\t166, 193, 130, 128, 25, 161, 250, 87, 98, 174, 21, 181, 22,\n\t\t182, 207, 77, 175, 200, 189, 149, 227, 95, 129, 91, 166, 59,\n\t\t57, 217, 52, 13, 209, 49, 131, 160, 191, 54, 89, 81, 34, 53,\n\t\t150, 149, 112, 114, 105, 242, 161, 215, 44, 168, 145, 62,\n\t\t123, 199, 172, 30, 82, 125, 239, 117, 19, 48, 145, 223, 83,\n\t\t208, 34, 162, 37, 54, 232, 87, 201, 19, 228, 87, 82, 57, 140,\n\t\t64, 75, 130, 14, 134, 96, 155, 65, 39, 108, 50, 148, 157,\n\t\t220, 38, 224, 67, 156, 188, 46, 87, 77, 70, 198, 24, 198,\n\t\t137, 187, 6, 125, 158, 213, 142, 195, 207, 83, 233, 107, 246,\n\t\t86, 55, 15, 220, 160, 215, 200, 45, 108, 159, 220, 93, 168,\n\t\t196, 62, 241, 163, 221, 100, 66, 51, 41, 139, 156, 254, 229,\n\t\t119, 94, 110, 111, 169, 85, 86, 15, 159, 206, 210, 66, 21,\n\t\t236, 255, 169, 66, 243, 115, 133, 222, 222, 195, 196, 44,\n\t\t25, 246, 158, 116, 171, 65, 166, 106, 105, 149, 133, 254,\n\t\t208, 143, 165, 192, 168, 79, 77, 79, 218, 51, 100, 175, 181,\n\t\t39, 223, 106, 111, 149, 229, 180, 162, 68, 94, 174, 48, 65,\n\t\t9, 231, 113, 4, 109, 8, 120, 131, 166, 164, 84, 150, 107,\n\t\t113, 214, 114, 65, 143, 5, 136, 125, 231, 104, 63, 41, 143,\n\t\t195, 70, 173, 176, 181, 161, 225, 26, 211, 132, 76, 61, 162,\n\t\t167, 139, 51, 115, 197, 185, 237, 139, 133, 194, 104, 199,\n\t\t236, 204, 182, 94, 246, 189, 135, 30, 93, 203, 157, 58, 149,\n\t\t91, 163, 175, 34, 225, 244, 209, 245, 255, 125, 116, 250,\n\t\t68, 239, 208, 168, 25, 170, 209, 240, 230, 183, 223, 186,\n\t\t144, 78, 47, 158, 217, 119, 252, 53, 31, 217, 155, 189, 230,\n\t\t234, 220, 222, 95, 58, 203, 219, 95, 6, 142, 223, 130, 227,\n\t\t235, 41, 11, 235, 108, 113, 135, 48, 22, 108, 139, 7, 128,\n\t\t125, 11, 116, 244, 249, 235, 127, 66, 56, 90, 186, 227, 142,\n\t\t210, 209, 183, 246, 187, 221, 79, 157, 121, 251, 23, 143,\n\t\t150, 239, 184, 163, 124, 244, 203, 239, 233, 222, 120, 219,\n\t\t141, 93, 94, 59, 237, 63, 207, 253, 17, 216, 68, 191, 154,\n\t\t146, 249, 94, 124, 30, 139, 27, 117, 106, 163, 97, 87, 24,\n\t\t249, 112, 87, 123, 66, 3, 12, 95, 191, 21, 227, 172, 91, 23,\n\t\t159, 90, 16, 172, 155, 11, 223, 249, 190, 254, 254, 79, 93,\n\t\t147, 58, 39, 234, 223, 255, 206, 194, 194, 83, 139, 240, 72,\n\t\t62, 248, 225, 15, 179, 245, 127, 57, 190, 254, 205, 231, 213,\n\t\t155, 214, 191, 249, 101, 83, 125, 158, 52, 63, 12, 243, 176,\n\t\t93, 7, 32, 95, 255, 1, 228, 43, 114, 202, 78, 114, 73, 95,\n\t\t76, 122, 126, 107, 138, 212, 146, 2, 160, 72, 30, 177, 76,\n\t\t177, 152, 80, 163, 55, 168, 129, 177, 216, 108, 133, 69, 210,\n\t\t130, 223, 228, 15, 2, 49, 59, 170, 21, 71, 182, 20, 72, 246,\n\t\t168, 88, 27, 101, 197, 32, 150, 42, 91, 78, 222, 124, 114,\n\t\t75, 69, 90, 127, 251, 212, 212, 55, 102, 111, 154, 108, 222,\n\t\t113, 231, 7, 62, 240, 88, 122, 97, 190, 148, 77, 167, 179,\n\t\t165, 249, 133, 116, 243, 200, 218, 82, 173, 182, 180, 118,\n\t\t100, 118, 211, 179, 177, 227, 149, 51, 85, 239, 182, 77, 99,\n\t\t46, 158, 111, 159, 143, 117, 73, 216, 170, 48, 110, 110, 200,\n\t\t99, 31, 95, 226, 189, 20, 92, 144, 176, 120, 91, 107, 85,\n\t\t128, 64, 48, 135, 140, 3, 211, 86, 72, 77, 186, 240, 19, 139,\n\t\t216, 145, 23, 50, 222, 250, 59, 188, 76, 198, 35, 183, 121,\n\t\t153, 134, 172, 222, 189, 101, 203, 221, 170, 44, 147, 219,\n\t\t228, 245, 31, 236, 221, 187, 247, 200, 240, 65, 226, 125,\n\t\t254, 243, 159, 191, 103, 245, 193, 215, 221, 64, 30, 184,\n\t\t176, 106, 102, 253, 41, 88, 103, 95, 183, 187, 79, 94, 127,\n\t\t7, 216, 189, 141, 198, 90, 179, 249, 182, 153, 7, 198, 223,\n\t\t235, 255, 222, 104, 92, 26, 243, 145, 65, 30, 99, 23, 71,\n\t\t27, 73, 8, 79, 186, 10, 54, 54, 82, 127, 197, 77, 25, 107,\n\t\t10, 163, 221, 136, 177, 58, 104, 76, 138, 71, 159, 62, 60,\n\t\t8, 1, 3, 93, 150, 221, 37, 231, 226, 74, 185, 209, 244, 179,\n\t\t181, 180, 149, 221, 17, 83, 77, 141, 234, 182, 183, 123, 111,\n\t\t147, 152, 38, 107, 12, 45, 163, 144, 153, 32, 207, 229, 103,\n\t\t150, 183, 236, 236, 180, 165, 203, 119, 75, 2, 224, 143, 192,\n\t\t14, 231, 182, 46, 222, 33, 104, 34, 160, 239, 153, 124, 229,\n\t\t153, 146, 67, 136, 170, 200, 185, 51, 217, 112, 38, 83, 58,\n\t\t95, 55, 112, 124, 63, 75, 169, 91, 177, 198, 66, 82, 56, 137,\n\t\t11, 45, 144, 237, 47, 245, 8, 203, 152, 114, 90, 67, 119,\n\t\t12, 31, 94, 195, 108, 24, 206, 178, 209, 235, 134, 50, 214,\n\t\t100, 154, 39, 128, 23, 58, 23, 167, 201, 128, 236, 19, 121,\n\t\t152, 3, 216, 0, 63, 4, 217, 78, 76, 199, 242, 125, 69, 54,\n\t\t63, 119, 177, 171, 120, 53, 18, 37, 81, 194, 164, 51, 17,\n\t\t9, 175, 172, 29, 153, 233, 172, 101, 68, 101, 172, 243, 66,\n\t\t88, 1, 208, 129, 172, 40, 114, 129, 41, 166, 34, 154, 105,\n\t\t167, 218, 83, 113, 144, 0, 51, 204, 42, 25, 169, 76, 166,\n\t\t53, 103, 102, 66, 202, 123, 153, 182, 38, 246, 46, 114, 34,\n\t\t127, 85, 169, 162, 135, 131, 98, 225, 118, 194, 86, 220, 149,\n\t\t116, 99, 106, 178, 28, 26, 132, 108, 214, 101, 75, 100, 38,\n\t\t214, 15, 50, 52, 199, 101, 78, 198, 90, 168, 203, 6, 76, 99,\n\t\t66, 178, 43, 225, 51, 67, 25, 129, 181, 95, 247, 164, 174,\n\t\t27, 71, 168, 214, 80, 187, 163, 123, 157, 156, 231, 229, 4,\n\t\t93, 39, 38, 232, 104, 212, 175, 94, 8, 128, 227, 101, 165,\n\t\t227, 101, 214, 235, 242, 244, 94, 138, 219, 241, 65, 74, 36,\n\t\t90, 160, 188, 54, 71, 141, 117, 213, 137, 1, 77, 106, 82,\n\t\t9, 34, 181, 47, 31, 78, 204, 21, 98, 99, 30, 75, 147, 200,\n\t\t126, 62, 114, 100, 170, 110, 219, 219, 184, 124, 88, 111,\n\t\t103, 34, 48, 129, 93, 217, 198, 88, 68, 38, 127, 64, 34, 130,\n\t\t202, 116, 189, 84, 82, 98, 143, 200, 152, 255, 71, 204, 127,\n\t\t164, 35, 38, 41, 57, 36, 195, 149, 101, 205, 112, 181, 133,\n\t\t19, 157, 86, 102, 232, 43, 68, 4, 29, 224, 170, 1, 37, 83,\n\t\t197, 89, 113, 247, 182, 217, 227, 91, 131, 217, 122, 254,\n\t\t102, 141, 80, 85, 84, 4, 137, 210, 195, 89, 87, 86, 85, 81,\n\t\t118, 15, 76, 120, 197, 12, 134, 141, 172, 96, 253, 153, 245,\n\t\t115, 159, 33, 159, 134, 235, 151, 160, 205, 238, 66, 159,\n\t\t118, 179, 197, 61, 213, 152, 104, 44, 163, 137, 201, 209,\n\t\t181, 204, 54, 170, 172, 197, 203, 194, 160, 223, 74, 130,\n\t\t240, 225, 162, 253, 98, 226, 249, 29, 13, 121, 4, 52, 167,\n\t\t82, 34, 65, 102, 174, 212, 168, 71, 129, 41, 100, 114, 189,\n\t\t247, 246, 38, 156, 230, 137, 165, 74, 65, 167, 113, 118, 211,\n\t\t193, 124, 175, 82, 235, 196, 42, 241, 239, 20, 151, 14, 93,\n\t\t159, 161, 243, 205, 124, 110, 95, 70, 38, 246, 182, 134, 17,\n\t\t152, 237, 41, 50, 69, 214, 14, 4, 199, 223, 39, 154, 165,\n\t\t237, 107, 133, 133, 133, 169, 123, 174, 217, 166, 135, 145,\n\t\t122, 100, 83, 117, 169, 37, 91, 91, 175, 60, 208, 74, 27,\n\t\t163, 197, 103, 118, 16, 114, 249, 82, 145, 148, 234, 55, 236,\n\t\t205, 78, 78, 155, 172, 210, 85, 252, 160, 24, 24, 86, 230,\n\t\t165, 109, 126, 21, 53, 245, 143, 169, 77, 223, 74, 224, 67,\n\t\t171, 135, 161, 58, 24, 17, 20, 197, 1, 47, 61, 191, 193, 102,\n\t\t52, 76, 130, 96, 121, 188, 81, 119, 216, 228, 49, 68, 208,\n\t\t10, 160, 157, 243, 120, 166, 139, 211, 129, 254, 46, 163,\n\t\t25, 166, 197, 58, 13, 186, 67, 167, 90, 96, 22, 28, 217, 42,\n\t\t69, 197, 86, 167, 238, 192, 86, 126, 208, 88, 72, 235, 233,\n\t\t242, 13, 155, 211, 5, 226, 40, 217, 34, 180, 240, 120, 82,\n\t\t21, 157, 57, 231, 37, 185, 63, 63, 159, 219, 147, 101, 130,\n\t\t19, 52, 122, 100, 250, 202, 122, 149, 184, 181, 138, 218,\n\t\t153, 99, 118, 102, 126, 56, 161, 202, 237, 114, 125, 32, 91,\n\t\t38, 155, 92, 218, 149, 173, 253, 230, 220, 114, 236, 219,\n\t\t42, 51, 125, 83, 151, 74, 129, 168, 228, 178, 206, 37, 117,\n\t\t123, 110, 185, 136, 115, 115, 136, 204, 131, 181, 132, 4,\n\t\t100, 76, 191, 201, 224, 169, 181, 160, 205, 182, 171, 157,\n\t\t170, 197, 107, 160, 163, 41, 200, 153, 43, 144, 201, 141,\n\t\t33, 187, 72, 24, 241, 223, 9, 119, 117, 52, 226, 228, 198,\n\t\t60, 16, 11, 26, 247, 152, 139, 243, 231, 4, 197, 76, 91, 38,\n\t\t186, 81, 41, 117, 69, 226, 106, 138, 172, 32, 117, 34, 83,\n\t\t114, 101, 79, 86, 220, 92, 134, 41, 34, 14, 172, 131, 92,\n\t\t16, 2, 162, 162, 243, 84, 36, 162, 97, 199, 166, 76, 102,\n\t\t146, 148, 123, 70, 93, 230, 249, 249, 48, 202, 249, 158, 226,\n\t\t80, 198, 169, 15, 90, 227, 209, 209, 223, 86, 41, 181, 76,\n\t\t143, 9, 10, 122, 110, 152, 166, 96, 156, 17, 161, 155, 93,\n\t\t47, 109, 8, 90, 218, 117, 55, 83, 152, 35, 139, 58, 67, 254,\n\t\t104, 42, 41, 2, 243, 44, 147, 18, 102, 193, 12, 73, 162, 178,\n\t\t96, 249, 132, 248, 150, 32, 83, 69, 34, 50, 31, 195, 249,\n\t\t125, 232, 145, 31, 73, 221, 193, 199, 247, 130, 132, 22, 38,\n\t\t25, 57, 226, 65, 115, 60, 162, 21, 41, 223, 161, 81, 180,\n\t\t177, 73, 203, 163, 54, 72, 108, 44, 74, 132, 3, 127, 156,\n\t\t162, 162, 143, 33, 177, 237, 46, 74, 1, 12, 100, 24, 83, 153,\n\t\t242, 72, 55, 244, 112, 7, 157, 162, 200, 201, 5, 149, 205,\n\t\t88, 103, 78, 21, 211, 186, 31, 120, 19, 213, 226, 148, 23,\n\t\t248, 90, 86, 192, 74, 202, 212, 73, 231, 137, 106, 193, 53,\n\t\t235, 42, 22, 236, 1, 137, 15, 16, 93, 160, 49, 8, 0, 16, 81,\n\t\t138, 209, 152, 200, 26, 42, 201, 205, 79, 26, 138, 32, 74,\n\t\t32, 48, 116, 59, 75, 165, 140, 40, 200, 68, 246, 195, 186,\n\t\t47, 73, 35, 79, 37, 138, 46, 170, 146, 106, 20, 168, 80, 52,\n\t\t224, 135, 96, 40, 132, 202, 182, 74, 84, 34, 232, 182, 103,\n\t\t131, 128, 33, 58, 147, 152, 32, 18, 195, 81, 53, 81, 166,\n\t\t233, 189, 126, 182, 110, 75, 94, 35, 231, 239, 77, 163, 183,\n\t\t88, 50, 45, 157, 16, 69, 99, 58, 17, 245, 108, 24, 10, 68,\n\t\t125, 73, 157, 151, 187, 126, 92, 61, 204, 214, 156, 60, 248,\n\t\t113, 109, 138, 188, 164, 77, 225, 253, 192, 124, 217, 11,\n\t\t109, 138, 254, 23, 109, 234, 146, 12, 187, 147, 130, 162,\n\t\t121, 96, 215, 50, 250, 35, 77, 203, 152, 203, 93, 220, 178,\n\t\t36, 155, 8, 129, 165, 92, 218, 174, 232, 127, 217, 172, 46,\n\t\t237, 114, 95, 80, 145, 183, 8, 238, 173, 64, 95, 218, 192,\n\t\t178, 249, 141, 246, 37, 48, 25, 238, 161, 36, 92, 210, 184,\n\t\t36, 229, 71, 218, 214, 133, 26, 107, 26, 175, 87, 204, 144,\n\t\t57, 187, 130, 13, 140, 56, 29, 188, 121, 88, 41, 153, 242,\n\t\t151, 52, 42, 151, 201, 174, 14, 217, 189, 243, 181, 157, 19,\n\t\t228, 248, 174, 206, 250, 199, 204, 94, 168, 207, 215, 76,\n\t\t47, 29, 42, 74, 169, 218, 168, 228, 148, 194, 102, 178, 167,\n\t\t179, 43, 58, 185, 120, 51, 177, 215, 63, 214, 217, 229, 54,\n\t\t117, 41, 240, 13, 175, 191, 199, 13, 38, 203, 133, 208, 17,\n\t\t145, 187, 70, 4, 29, 246, 41, 144, 225, 41, 158, 83, 112,\n\t\t5, 96, 187, 27, 48, 99, 160, 27, 51, 28, 102, 187, 240, 134,\n\t\t214, 217, 194, 1, 187, 11, 239, 106, 107, 132, 148, 131, 23,\n\t\t222, 200, 108, 136, 236, 131, 23, 222, 177, 203, 141, 230,\n\t\t22, 11, 227, 145, 16, 135, 128, 184, 235, 220, 87, 130, 67,\n\t\t220, 230, 87, 13, 77, 140, 66, 191, 48, 235, 154, 221, 45,\n\t\t154, 188, 10, 82, 121, 251, 170, 172, 111, 233, 26, 222, 108,\n\t\t193, 141, 35, 81, 143, 116, 92, 161, 56, 235, 90, 189, 45,\n\t\t134, 132, 43, 236, 88, 149, 140, 45, 61, 211, 155, 45, 250,\n\t\t97, 36, 104, 223, 251, 214, 183, 190, 245, 223, 249, 223,\n\t\t167, 62, 245, 41, 66, 94, 119, 253, 245, 175, 187, 254, 91,\n\t\t79, 93, 180, 150, 7, 187, 81, 77, 83, 29, 31, 8, 246, 163,\n\t\t203, 91, 119, 110, 236, 199, 240, 103, 139, 65, 24, 137, 166,\n\t\t170, 235, 98, 28, 4, 252, 72, 203, 58, 30, 169, 116, 46, 117,\n\t\t246, 44, 73, 157, 125, 221, 3, 15, 252, 253, 131, 15, 146,\n\t\t195, 119, 126, 235, 174, 187, 190, 185, 116, 253, 174, 157,\n\t\t55, 220, 176, 115, 87, 162, 35, 190, 6, 237, 251, 151, 193,\n\t\t170, 158, 67, 198, 110, 191, 199, 106, 73, 180, 85, 47, 76,\n\t\t134, 149, 145, 157, 219, 82, 161, 93, 15, 192, 16, 26, 161,\n\t\t89, 212, 234, 197, 35, 183, 54, 28, 245, 220, 126, 107, 20,\n\t\t93, 245, 9, 246, 209, 194, 244, 244, 164, 209, 24, 166, 167,\n\t\t214, 183, 251, 19, 233, 172, 237, 104, 154, 170, 178, 98,\n\t\t187, 82, 34, 90, 62, 235, 47, 119, 191, 247, 117, 141, 126,\n\t\t172, 195, 182, 144, 151, 249, 147, 133, 47, 23, 38, 253, 65,\n\t\t227, 247, 211, 147, 233, 133, 238, 173, 171, 59, 155, 19,\n\t\t97, 104, 26, 114, 137, 246, 164, 185, 52, 209, 115, 187, 183,\n\t\t118, 222, 243, 204, 250, 215, 45, 137, 196, 115, 174, 23,\n\t\t240, 252, 232, 23, 104, 10, 158, 173, 150, 58, 14, 79, 245,\n\t\t129, 212, 83, 169, 183, 166, 222, 155, 250, 165, 212, 239,\n\t\t166, 254, 20, 228, 59, 162, 216, 4, 136, 75, 129, 204, 139,\n\t\t114, 143, 19, 227, 18, 206, 183, 196, 55, 150, 40, 232, 102,\n\t\t43, 26, 241, 80, 240, 36, 27, 136, 71, 0, 119, 184, 114, 231,\n\t\t29, 49, 96, 188, 168, 124, 50, 81, 79, 30, 47, 74, 194, 184,\n\t\t63, 26, 167, 0, 36, 153, 148, 114, 147, 141, 203, 113, 112,\n\t\t58, 234, 193, 40, 25, 31, 193, 187, 198, 167, 154, 63, 254,\n\t\t247, 56, 32, 104, 196, 135, 228, 185, 114, 77, 94, 60, 1,\n\t\t40, 33, 197, 225, 233, 4, 69, 194, 134, 95, 209, 28, 176,\n\t\t89, 36, 133, 52, 125, 215, 61, 152, 37, 160, 45, 29, 85, 45,\n\t\t171, 74, 89, 85, 29, 213, 100, 217, 82, 53, 107, 219, 229,\n\t\t160, 94, 26, 90, 76, 245, 234, 177, 43, 131, 21, 47, 147,\n\t\t48, 179, 187, 165, 41, 110, 38, 118, 193, 254, 148, 102, 13,\n\t\t166, 153, 118, 118, 253, 83, 94, 222, 87, 108, 205, 42, 43,\n\t\t62, 11, 102, 139, 229, 188, 24, 74, 74, 127, 52, 105, 184,\n\t\t134, 32, 51, 81, 53, 58, 146, 38, 161, 207, 214, 232, 232,\n\t\t46, 124, 233, 93, 3, 67, 48, 141, 3, 206, 252, 74, 101, 215,\n\t\t73, 185, 216, 168, 170, 46, 30, 95, 81, 241, 248, 174, 82,\n\t\t110, 26, 189, 201, 217, 234, 228, 229, 114, 49, 140, 21, 97,\n\t\t150, 156, 118, 77, 176, 49, 85, 246, 186, 242, 33, 223, 155,\n\t\t133, 179, 180, 20, 139, 255, 97, 62, 89, 76, 36, 53, 167,\n\t\t248, 163, 138, 83, 12, 187, 131, 186, 173, 48, 56, 211, 106,\n\t\t185, 73, 60, 135, 138, 22, 70, 47, 78, 236, 80, 172, 232,\n\t\t101, 133, 56, 182, 85, 71, 127, 99, 166, 82, 216, 54, 172,\n\t\t129, 52, 139, 168, 150, 253, 3, 56, 47, 181, 44, 49, 25, 154,\n\t\t119, 89, 86, 101, 152, 192, 158, 80, 230, 179, 47, 253, 245,\n\t\t185, 226, 92, 238, 214, 61, 153, 76, 119, 121, 238, 104, 193,\n\t\t181, 249, 159, 147, 59, 248, 230, 169, 149, 250, 51, 160,\n\t\t20, 3, 127, 242, 210, 218, 207, 88, 7, 166, 115, 81, 252,\n\t\t18, 119, 131, 98, 106, 124, 50, 216, 50, 246, 231, 37, 30,\n\t\t139, 198, 5, 234, 164, 94, 162, 246, 63, 82, 27, 21, 232,\n\t\t3, 187, 132, 201, 172, 147, 15, 141, 217, 114, 49, 168, 84,\n\t\t59, 189, 189, 123, 73, 182, 86, 171, 195, 223, 88, 117, 127,\n\t\t183, 52, 170, 233, 218, 116, 186, 96, 134, 121, 167, 60, 231,\n\t\t87, 202, 123, 111, 222, 123, 91, 29, 214, 169, 93, 170, 95,\n\t\t182, 252, 24, 253, 194, 41, 145, 107, 213, 241, 32, 209, 96,\n\t\t56, 46, 64, 25, 143, 211, 249, 135, 91, 200, 176, 187, 161,\n\t\t60, 134, 228, 77, 65, 177, 24, 172, 191, 15, 63, 201, 156,\n\t\t66, 38, 76, 69, 106, 164, 243, 85, 42, 152, 65, 222, 55, 13,\n\t\t197, 70, 186, 51, 210, 44, 184, 83, 102, 84, 102, 228, 185,\n\t\t243, 43, 95, 29, 20, 215, 255, 234, 13, 160, 30, 144, 18,\n\t\t214, 87, 93, 0, 46, 150, 163, 125, 75, 49, 44, 66, 196, 89,\n\t\t128, 9, 174, 37, 0, 246, 214, 64, 198, 254, 38, 244, 195,\n\t\t109, 96, 37, 175, 165, 14, 166, 46, 79, 29, 77, 157, 132,\n\t\t30, 121, 38, 117, 119, 234, 126, 30, 117, 31, 212, 16, 26,\n\t\t141, 191, 98, 252, 170, 53, 59, 8, 243, 48, 19, 149, 127,\n\t\t206, 19, 248, 236, 246, 192, 76, 136, 49, 53, 185, 11, 18,\n\t\t21, 9, 195, 18, 242, 101, 28, 190, 26, 9, 24, 56, 22, 207,\n\t\t19, 31, 222, 37, 2, 187, 193, 196, 209, 120, 208, 194, 213,\n\t\t163, 21, 194, 98, 78, 202, 28, 161, 103, 222, 38, 228, 55,\n\t\t136, 70, 70, 148, 130, 209, 191, 29, 199, 191, 201, 17, 184,\n\t\t196, 173, 212, 38, 212, 203, 133, 68, 200, 53, 73, 142, 8,\n\t\t175, 164, 228, 36, 149, 105, 181, 78, 73, 141, 208, 52, 33,\n\t\t75, 148, 236, 34, 191, 119, 147, 117, 149, 241, 112, 112,\n\t\t219, 39, 246, 250, 135, 23, 87, 205, 93, 211, 155, 180, 229,\n\t\t131, 135, 196, 43, 175, 206, 21, 73, 148, 166, 167, 197, 109,\n\t\t228, 184, 188, 74, 38, 1, 180, 172, 41, 61, 233, 47, 200,\n\t\t30, 10, 42, 213, 170, 208, 33, 165, 233, 57, 186, 157, 144,\n\t\t157, 228, 32, 216, 21, 25, 114, 35, 165, 102, 129, 62, 77,\n\t\t73, 107, 134, 208, 167, 40, 113, 51, 180, 22, 18, 226, 148,\n\t\t9, 169, 19, 210, 164, 210, 226, 117, 91, 136, 59, 255, 234,\n\t\t145, 184, 248, 116, 103, 253, 159, 182, 92, 179, 233, 15,\n\t\t183, 236, 216, 252, 228, 242, 174, 45, 51, 241, 142, 152,\n\t\t17, 59, 0, 149, 49, 191, 99, 109, 251, 68, 49, 71, 104, 53,\n\t\t183, 82, 223, 202, 109, 15, 6, 109, 227, 19, 208, 54, 178,\n\t\t88, 99, 174, 17, 89, 60, 68, 100, 108, 153, 115, 73, 197,\n\t\t61, 250, 173, 11, 209, 133, 208, 10, 146, 177, 25, 158, 232,\n\t\t248, 60, 145, 156, 137, 252, 82, 99, 211, 203, 246, 61, 116,\n\t\t240, 208, 203, 215, 226, 172, 98, 50, 233, 62, 119, 176, 176,\n\t\t208, 235, 45, 248, 22, 51, 220, 208, 212, 21, 51, 55, 93,\n\t\t153, 220, 162, 230, 170, 241, 178, 51, 113, 227, 214, 43,\n\t\t239, 185, 251, 232, 233, 77, 117, 89, 211, 164, 77, 141, 149,\n\t\t195, 7, 15, 30, 62, 116, 80, 50, 189, 64, 19, 211, 113, 46,\n\t\t53, 246, 69, 255, 144, 46, 144, 71, 83, 121, 176, 175, 31,\n\t\t79, 189, 9, 180, 134, 140, 70, 242, 184, 34, 106, 34, 93,\n\t\t249, 248, 37, 72, 112, 146, 36, 69, 33, 51, 92, 18, 181, 192,\n\t\t73, 85, 155, 163, 110, 204, 133, 54, 147, 17, 71, 114, 150,\n\t\t251, 54, 207, 42, 2, 21, 188, 25, 167, 81, 162, 38, 105, 70,\n\t\t8, 58, 113, 101, 63, 113, 184, 114, 183, 59, 154, 16, 36,\n\t\t33, 133, 18, 144, 241, 182, 50, 198, 163, 59, 139, 180, 160,\n\t\t248, 166, 6, 146, 179, 84, 203, 100, 42, 37, 176, 85, 36,\n\t\t59, 251, 137, 66, 125, 19, 92, 186, 144, 214, 98, 79, 2, 204,\n\t\t8, 214, 33, 115, 202, 118, 108, 27, 150, 173, 128, 253, 100,\n\t\t57, 0, 76, 45, 89, 80, 102, 52, 102, 136, 159, 85, 75, 213,\n\t\t116, 186, 92, 209, 68, 213, 242, 105, 41, 40, 180, 60, 173,\n\t\t105, 24, 235, 63, 144, 85, 216, 27, 105, 15, 30, 237, 26,\n\t\t105, 195, 148, 36, 37, 223, 57, 56, 221, 218, 59, 151, 199,\n\t\t104, 7, 167, 240, 215, 218, 124, 33, 125, 34, 54, 34, 17,\n\t\t171, 27, 75, 122, 165, 88, 49, 132, 80, 38, 110, 181, 29,\n\t\t214, 51, 72, 48, 102, 103, 44, 207, 212, 192, 38, 21, 52,\n\t\t74, 60, 193, 18, 101, 73, 134, 30, 167, 43, 78, 211, 137,\n\t\t109, 93, 2, 163, 149, 76, 20, 58, 7, 167, 26, 123, 218, 5,\n\t\t133, 185, 129, 208, 186, 249, 206, 73, 95, 150, 148, 245,\n\t\t79, 59, 142, 202, 68, 38, 93, 90, 151, 180, 112, 49, 190,\n\t\t105, 34, 35, 117, 137, 135, 146, 216, 180, 187, 130, 249,\n\t\t77, 99, 128, 114, 31, 213, 149, 127, 50, 137, 190, 229, 77,\n\t\t24, 39, 113, 63, 8, 211, 226, 178, 39, 142, 5, 84, 198, 208,\n\t\t133, 83, 162, 33, 248, 39, 68, 88, 120, 203, 138, 92, 152,\n\t\t211, 130, 151, 212, 63, 213, 47, 58, 206, 168, 198, 198, 187,\n\t\t157, 184, 242, 55, 174, 28, 239, 228, 55, 222, 253, 238, 36,\n\t\t214, 123, 195, 223, 172, 131, 69, 145, 227, 149, 130, 151,\n\t\t83, 191, 142, 173, 55, 161, 89, 135, 110, 30, 243, 210, 236,\n\t\t88, 76, 141, 23, 84, 107, 97, 92, 51, 38, 226, 20, 101, 11,\n\t\t139, 127, 142, 154, 73, 9, 153, 13, 166, 80, 159, 231, 207,\n\t\t48, 172, 116, 218, 231, 65, 17, 3, 68, 218, 77, 132, 105,\n\t\t156, 225, 60, 230, 185, 60, 205, 86, 21, 135, 126, 144, 130,\n\t\t176, 202, 250, 29, 172, 76, 198, 44, 1, 111, 72, 204, 71,\n\t\t110, 209, 109, 209, 198, 24, 172, 94, 132, 69, 189, 90, 32,\n\t\t170, 192, 56, 175, 89, 18, 207, 94, 230, 140, 232, 152, 45,\n\t\t70, 102, 225, 49, 41, 138, 206, 192, 2, 86, 3, 41, 161, 241,\n\t\t47, 193, 39, 254, 58, 232, 104, 118, 182, 130, 185, 12, 84,\n\t\t228, 148, 110, 234, 100, 69, 212, 69, 81, 214, 148, 39, 248,\n\t\t77, 56, 68, 50, 32, 14, 124, 201, 16, 68, 13, 33, 93, 86,\n\t\t164, 133, 88, 15, 93, 73, 165, 154, 165, 154, 177, 168, 184,\n\t\t146, 96, 233, 146, 41, 10, 130, 24, 201, 160, 119, 153, 44,\n\t\t59, 0, 28, 197, 76, 87, 162, 2, 160, 27, 39, 54, 1, 226, 181,\n\t\t48, 114, 164, 64, 48, 8, 7, 107, 238, 42, 178, 136, 53, 85,\n\t\t231, 99, 255, 148, 53, 231, 121, 19, 173, 127, 128, 147, 84,\n\t\t85, 77, 197, 83, 85, 177, 222, 0, 156, 158, 142, 167, 8, 127,\n\t\t190, 81, 15, 138, 37, 25, 196, 29, 19, 16, 241, 120, 198,\n\t\t72, 146, 116, 73, 145, 25, 77, 34, 190, 254, 92, 179, 104,\n\t\t96, 195, 25, 24, 6, 52, 39, 9, 36, 90, 33, 110, 8, 68, 50,\n\t\t85, 43, 15, 243, 137, 103, 23, 203, 96, 228, 51, 70, 76, 69,\n\t\t53, 8, 91, 10, 69, 89, 176, 29, 71, 146, 213, 158, 47, 9,\n\t\t130, 164, 135, 76, 15, 224, 226, 137, 171, 106, 121, 51, 95,\n\t\t145, 144, 174, 135, 90, 134, 235, 122, 158, 98, 41, 3, 67,\n\t\t187, 107, 42, 223, 168, 101, 226, 241, 88, 75, 146, 215, 118,\n\t\t156, 227, 204, 38, 88, 145, 10, 192, 200, 254, 156, 210, 26,\n\t\t136, 35, 86, 155, 83, 146, 232, 254, 81, 119, 89, 25, 245,\n\t\t228, 32, 174, 205, 65, 139, 72, 18, 2, 0, 114, 146, 179, 154,\n\t\t252, 161, 47, 72, 46, 242, 79, 9, 2, 86, 67, 192, 192, 38,\n\t\t9, 58, 140, 68, 132, 91, 20, 48, 44, 4, 228, 193, 83, 53,\n\t\t249, 25, 38, 28, 199, 251, 48, 142, 225, 201, 8, 52, 75, 224,\n\t\t57, 137, 138, 202, 194, 237, 179, 39, 12, 223, 180, 100, 67,\n\t\t178, 133, 27, 55, 239, 145, 229, 44, 119, 150, 1, 134, 100,\n\t\t210, 87, 238, 131, 187, 128, 108, 37, 200, 208, 151, 81, 140,\n\t\t199, 196, 64, 245, 192, 192, 2, 172, 40, 191, 79, 72, 210,\n\t\t144, 76, 197, 147, 247, 25, 123, 165, 80, 1, 240, 6, 234,\n\t\t224, 245, 45, 145, 154, 82, 90, 173, 99, 169, 189, 139, 234,\n\t\t108, 218, 188, 214, 40, 242, 178, 110, 79, 93, 134, 172, 242,\n\t\t47, 213, 231, 44, 230, 12, 138, 53, 214, 228, 4, 60, 156,\n\t\t13, 177, 139, 5, 77, 250, 40, 241, 64, 178, 77, 99, 194, 3,\n\t\t47, 23, 134, 43, 98, 228, 96, 43, 12, 194, 60, 193, 28, 1,\n\t\t148, 168, 241, 152, 165, 186, 215, 189, 24, 38, 230, 246,\n\t\t87, 222, 58, 205, 100, 97, 186, 96, 132, 198, 132, 164, 205,\n\t\t217, 152, 98, 100, 25, 2, 73, 63, 71, 144, 141, 184, 84, 36,\n\t\t170, 17, 61, 0, 205, 67, 36, 87, 98, 181, 117, 249, 82, 0,\n\t\t248, 133, 171, 206, 158, 61, 187, 121, 210, 63, 123, 229,\n\t\t149, 199, 142, 89, 83, 174, 230, 129, 248, 39, 55, 212, 117,\n\t\t93, 213, 166, 206, 42, 218, 213, 29, 244, 34, 72, 71, 68,\n\t\t81, 162, 185, 138, 37, 77, 153, 227, 24, 254, 239, 128, 192,\n\t\t122, 62, 53, 3, 86, 212, 38, 192, 93, 247, 96, 149, 40, 194,\n\t\t249, 67, 120, 12, 78, 117, 236, 62, 151, 35, 80, 237, 49,\n\t\t50, 228, 99, 24, 28, 175, 29, 197, 255, 25, 198, 218, 33,\n\t\t123, 40, 46, 146, 25, 244, 229, 42, 250, 104, 154, 241, 120,\n\t\t56, 26, 211, 84, 64, 160, 97, 97, 49, 28, 61, 194, 113, 237,\n\t\t164, 76, 112, 11, 9, 249, 35, 242, 206, 225, 130, 44, 202,\n\t\t238, 168, 103, 40, 94, 164, 170, 187, 238, 244, 176, 91, 66,\n\t\t179, 165, 122, 190, 44, 208, 29, 202, 36, 168, 251, 80, 171,\n\t\t48, 147, 153, 175, 252, 160, 14, 221, 165, 72, 132, 73, 89,\n\t\t33, 36, 32, 206, 21, 35, 192, 212, 70, 41, 91, 96, 210, 223,\n\t\t182, 151, 238, 61, 188, 54, 84, 196, 244, 222, 76, 58, 34,\n\t\t75, 107, 117, 213, 107, 159, 78, 199, 62, 21, 205, 222, 106,\n\t\t101, 86, 171, 86, 74, 154, 90, 39, 79, 228, 239, 92, 174,\n\t\t248, 253, 29, 121, 5, 176, 238, 149, 219, 252, 190, 235, 8,\n\t\t174, 189, 53, 155, 201, 26, 145, 164, 52, 170, 221, 137, 66,\n\t\t218, 148, 23, 223, 229, 132, 186, 124, 179, 109, 50, 127,\n\t\t214, 52, 131, 131, 253, 53, 84, 55, 153, 220, 100, 68, 238,\n\t\t72, 95, 179, 112, 248, 190, 142, 149, 241, 93, 48, 196, 114,\n\t\t82, 174, 116, 176, 76, 179, 182, 101, 121, 105, 57, 173, 74,\n\t\t36, 221, 138, 29, 65, 144, 55, 124, 119, 136, 161, 157, 212,\n\t\t136, 215, 79, 198, 199, 127, 113, 83, 242, 184, 88, 236, 244,\n\t\t145, 244, 23, 131, 9, 121, 189, 156, 57, 82, 109, 163, 174,\n\t\t69, 58, 96, 238, 169, 141, 64, 122, 86, 109, 210, 228, 149,\n\t\t10, 72, 47, 104, 243, 56, 102, 44, 198, 134, 193, 184, 157,\n\t\t46, 198, 6, 131, 225, 120, 93, 118, 38, 179, 208, 90, 95,\n\t\t111, 45, 44, 180, 62, 57, 21, 213, 69, 9, 132, 143, 31, 122,\n\t\t170, 22, 152, 233, 249, 0, 90, 141, 4, 178, 75, 116, 84, 203,\n\t\t115, 193, 166, 121, 132, 89, 17, 152, 150, 151, 77, 134, 13,\n\t\t17, 23, 193, 154, 126, 104, 36, 43, 138, 146, 173, 83, 242,\n\t\t92, 102, 38, 155, 236, 142, 208, 214, 194, 250, 207, 236,\n\t\t189, 44, 20, 208, 249, 171, 3, 118, 151, 140, 249, 73, 211,\n\t\t224, 147, 208, 61, 115, 46, 58, 116, 224, 129, 104, 70, 168,\n\t\t43, 65, 180, 231, 194, 154, 218, 133, 21, 153, 126, 113, 60,\n\t\t136, 135, 89, 7, 132, 241, 220, 94, 144, 226, 35, 158, 202,\n\t\t185, 12, 168, 41, 209, 10, 152, 7, 57, 36, 47, 28, 91, 145,\n\t\t197, 211, 59, 107, 39, 79, 214, 142, 173, 72, 226, 181, 59,\n\t\t219, 191, 218, 23, 15, 111, 110, 237, 152, 161, 194, 225,\n\t\t205, 75, 39, 201, 115, 199, 150, 143, 238, 186, 73, 149, 12,\n\t\t93, 58, 182, 229, 24, 252, 146, 227, 191, 90, 58, 46, 210,\n\t\t234, 106, 107, 243, 49, 81, 56, 184, 193, 137, 155, 96, 79,\n\t\t198, 251, 118, 194, 97, 144, 74, 109, 232, 166, 141, 4, 244,\n\t\t70, 204, 90, 37, 130, 76, 138, 73, 206, 195, 56, 215, 130,\n\t\t166, 222, 241, 181, 119, 188, 227, 107, 15, 62, 249, 137,\n\t\t39, 225, 181, 254, 217, 99, 141, 99, 111, 155, 183, 187, 29,\n\t\t171, 23, 201, 59, 228, 252, 206, 226, 142, 59, 113, 192, 109,\n\t\t10, 87, 122, 199, 185, 212, 213, 79, 225, 138, 47, 54, 142,\n\t\t53, 46, 191, 230, 198, 27, 111, 215, 172, 130, 253, 72, 113,\n\t\t71, 33, 27, 143, 80, 150, 26, 231, 214, 207, 125, 130, 122,\n\t\t228, 179, 96, 129, 25, 188, 162, 111, 43, 213, 6, 212, 176,\n\t\t35, 117, 32, 117, 103, 234, 163, 169, 79, 167, 82, 195, 72,\n\t\t110, 142, 226, 177, 90, 165, 92, 205, 130, 34, 196, 166, 129,\n\t\t42, 182, 46, 99, 16, 41, 225, 227, 176, 60, 54, 174, 72, 36,\n\t\t172, 40, 196, 171, 20, 55, 145, 183, 3, 55, 27, 54, 135, 220,\n\t\t239, 61, 71, 248, 18, 204, 161, 104, 203, 161, 204, 135, 106,\n\t\t8, 102, 210, 142, 120, 120, 32, 166, 110, 242, 8, 169, 22,\n\t\t170, 94, 148, 217, 205, 36, 207, 26, 159, 137, 24, 114, 133,\n\t\t155, 132, 181, 50, 100, 216, 143, 120, 69, 65, 172, 192, 19,\n\t\t36, 145, 245, 69, 138, 137, 178, 227, 83, 185, 78, 12, 68,\n\t\t237, 167, 13, 69, 49, 116, 149, 173, 196, 2, 5, 133, 69, 94,\n\t\t103, 11, 154, 103, 131, 220, 33, 29, 219, 19, 37, 209, 113,\n\t\t37, 233, 139, 186, 165, 128, 244, 178, 24, 185, 83, 2, 21,\n\t\t11, 242, 30, 62, 169, 60, 45, 104, 58, 96, 128, 35, 134, 173,\n\t\t10, 160, 81, 21, 33, 112, 74, 153, 146, 186, 43, 39, 20, 119,\n\t\t134, 96, 19, 53, 197, 116, 88, 107, 5, 55, 79, 245, 142, 136,\n\t\t37, 243, 26, 58, 65, 232, 52, 17, 139, 166, 194, 36, 131,\n\t\t153, 150, 37, 219, 170, 226, 131, 110, 214, 116, 85, 97, 233,\n\t\t192, 81, 233, 36, 149, 84, 133, 230, 65, 59, 6, 50, 177, 93,\n\t\t232, 79, 178, 74, 27, 148, 130, 154, 148, 130, 208, 18, 21,\n\t\t48, 202, 4, 199, 215, 197, 153, 80, 12, 233, 97, 128, 160,\n\t\t160, 44, 13, 242, 13, 104, 77, 168, 166, 190, 166, 123, 182,\n\t\t168, 123, 10, 251, 85, 64, 241, 24, 216, 175, 40, 251, 21,\n\t\t106, 88, 96, 25, 234, 191, 74, 24, 216, 160, 120, 242, 160,\n\t\t121, 22, 85, 129, 106, 154, 184, 89, 21, 76, 7, 180, 144,\n\t\t249, 242, 202, 190, 208, 35, 245, 48, 13, 93, 194, 44, 132,\n\t\t89, 169, 187, 18, 213, 214, 228, 110, 189, 236, 110, 29, 104,\n\t\t171, 215, 106, 178, 238, 94, 111, 22, 160, 211, 129, 149,\n\t\t97, 24, 2, 67, 69, 174, 200, 249, 106, 62, 71, 3, 56, 93,\n\t\t71, 188, 157, 106, 146, 168, 75, 187, 4, 29, 214, 165, 165,\n\t\t106, 145, 42, 186, 180, 79, 209, 2, 7, 205, 22, 245, 10, 25,\n\t\t206, 5, 206, 219, 14, 46, 29, 35, 152, 133, 150, 116, 128,\n\t\t107, 172, 113, 125, 36, 46, 127, 65, 17, 179, 48, 201, 47,\n\t\t72, 114, 236, 112, 154, 35, 78, 238, 189, 252, 145, 220, 44,\n\t\t23, 196, 118, 5, 160, 136, 11, 88, 164, 210, 29, 146, 43,\n\t\t64, 146, 176, 98, 100, 78, 184, 217, 22, 6, 211, 90, 138,\n\t\t97, 250, 57, 223, 32, 2, 88, 231, 85, 153, 153, 205, 205,\n\t\t23, 97, 214, 219, 20, 121, 253, 125, 56, 254, 69, 174, 6,\n\t\t33, 29, 138, 194, 107, 208, 52, 119, 201, 12, 200, 0, 203,\n\t\t80, 190, 166, 57, 88, 38, 211, 85, 61, 106, 154, 130, 243,\n\t\t250, 75, 224, 235, 125, 184, 13, 110, 15, 207, 13, 175, 43,\n\t\t125, 238, 147, 228, 151, 160, 223, 78, 2, 118, 218, 137, 213,\n\t\t144, 45, 52, 62, 185, 131, 167, 149, 48, 54, 48, 44, 118,\n\t\t193, 51, 90, 184, 94, 233, 20, 1, 78, 66, 127, 105, 38, 193,\n\t\t30, 168, 109, 133, 46, 86, 47, 225, 197, 49, 98, 52, 53, 201,\n\t\t47, 152, 180, 84, 32, 218, 164, 51, 213, 10, 148, 168, 83,\n\t\t106, 21, 90, 181, 185, 253, 211, 61, 187, 204, 204, 29, 142,\n\t\t255, 6, 67, 210, 55, 221, 102, 249, 179, 83, 197, 98, 104,\n\t\t197, 214, 247, 138, 217, 86, 97, 215, 214, 97, 165, 50, 225,\n\t\t208, 244, 252, 11, 239, 241, 77, 207, 127, 5, 45, 215, 151,\n\t\t103, 91, 241, 230, 110, 45, 219, 42, 43, 71, 51, 115, 166,\n\t\t89, 178, 182, 88, 250, 101, 74, 217, 216, 46, 147, 224, 13,\n\t\t197, 169, 34, 108, 28, 174, 159, 117, 39, 98, 203, 107, 109,\n\t\t109, 14, 166, 90, 233, 133, 57, 44, 98, 39, 156, 59, 119,\n\t\t238, 159, 232, 211, 228, 45, 128, 9, 59, 156, 157, 187, 109,\n\t\t145, 14, 47, 15, 6, 143, 73, 78, 252, 244, 189, 18, 96, 78,\n\t\t236, 172, 221, 30, 143, 90, 217, 96, 65, 104, 142, 18, 137,\n\t\t9, 87, 84, 131, 87, 115, 208, 28, 181, 81, 15, 119, 65, 151,\n\t\t174, 144, 34, 37, 219, 230, 102, 78, 49, 114, 31, 241, 40,\n\t\t121, 240, 97, 133, 201, 18, 37, 189, 231, 132, 191, 131, 103,\n\t\t8, 6, 231, 166, 77, 190, 193, 220, 207, 216, 10, 189, 87,\n\t\t96, 246, 179, 154, 66, 95, 1, 125, 196, 150, 61, 34, 252,\n\t\t212, 59, 137, 72, 140, 183, 9, 146, 202, 150, 22, 125, 247,\n\t\t65, 201, 55, 63, 63, 53, 89, 21, 100, 146, 22, 26, 50, 146,\n\t\t46, 190, 236, 33, 44, 58, 67, 182, 61, 44, 144, 105, 30, 108,\n\t\t45, 170, 225, 119, 125, 17, 212, 190, 36, 168, 96, 67, 236,\n\t\t79, 226, 176, 73, 181, 10, 102, 152, 56, 132, 166, 162, 173,\n\t\t69, 74, 159, 32, 147, 64, 146, 67, 153, 226, 246, 21, 50,\n\t\t93, 62, 146, 122, 109, 234, 189, 63, 106, 91, 197, 60, 249,\n\t\t156, 39, 153, 140, 203, 28, 21, 225, 113, 226, 109, 104, 109,\n\t\t166, 104, 85, 32, 233, 3, 106, 6, 16, 75, 82, 191, 57, 197,\n\t\t211, 190, 248, 88, 15, 86, 19, 168, 116, 65, 138, 251, 131,\n\t\t62, 155, 162, 220, 147, 55, 71, 184, 239, 30, 195, 204, 224,\n\t\t31, 249, 241, 225, 86, 14, 90, 88, 167, 138, 143, 127, 128,\n\t\t232, 108, 55, 171, 115, 210, 128, 251, 254, 145, 130, 59,\n\t\t146, 201, 119, 60, 195, 240, 214, 151, 60, 221, 112, 223,\n\t\t14, 176, 174, 181, 100, 135, 33, 21, 58, 219, 243, 10, 70,\n\t\t146, 75, 53, 64, 160, 50, 142, 186, 82, 73, 209, 149, 213,\n\t\t45, 106, 164, 88, 204, 145, 21, 65, 29, 145, 158, 40, 168,\n\t\t228, 139, 95, 36, 170, 0, 42, 84, 84, 9, 121, 61, 193, 32,\n\t\t124, 139, 192, 116, 32, 199, 83, 133, 140, 41, 102, 84, 185,\n\t\t60, 57, 27, 192, 173, 146, 4, 16, 46, 130, 210, 87, 27, 53,\n\t\t53, 78, 27, 3, 199, 34, 235, 95, 149, 5, 38, 200, 32, 96,\n\t\t160, 227, 236, 4, 139, 188, 73, 158, 131, 147, 121, 196, 215,\n\t\t117, 143, 188, 218, 53, 62, 165, 129, 52, 82, 152, 222, 138,\n\t\t74, 21, 193, 147, 65, 193, 131, 24, 2, 219, 217, 170, 102,\n\t\t109, 181, 100, 101, 116, 87, 85, 197, 108, 73, 202, 230, 100,\n\t\t48, 134, 5, 150, 182, 255, 17, 193, 1, 66, 10, 12, 52, 34,\n\t\t39, 161, 119, 48, 127, 183, 201, 20, 215, 85, 187, 221, 202,\n\t\t156, 143, 89, 222, 20, 35, 84, 173, 165, 216, 177, 253, 94,\n\t\t55, 75, 99, 127, 207, 44, 82, 93, 139, 146, 44, 134, 18, 168,\n\t\t29, 68, 48, 153, 42, 242, 246, 127, 31, 158, 33, 92, 21, 232,\n\t\t209, 52, 96, 73, 184, 143, 203, 52, 146, 54, 114, 106, 56,\n\t\t105, 20, 60, 154, 47, 30, 184, 114, 38, 13, 111, 82, 33, 123,\n\t\t31, 93, 219, 114, 71, 115, 112, 52, 99, 214, 71, 63, 77, 148,\n\t\t219, 251, 149, 235, 111, 235, 151, 175, 49, 141, 125, 143,\n\t\t173, 245, 103, 173, 93, 157, 94, 92, 57, 146, 180, 141, 113,\n\t\t142, 151, 11, 150, 55, 246, 245, 3, 23, 121, 244, 184, 118,\n\t\t42, 144, 96, 229, 71, 236, 167, 184, 135, 241, 58, 40, 199,\n\t\t48, 213, 24, 65, 8, 195, 170, 158, 81, 98, 153, 130, 165,\n\t\t90, 101, 27, 196, 50, 47, 172, 245, 251, 107, 253, 159, 4,\n\t\t137, 60, 41, 136, 239, 118, 114, 78, 45, 189, 254, 155, 233,\n\t\t90, 45, 253, 42, 34, 248, 65, 224, 131, 0, 158, 85, 140, 35,\n\t\t178, 172, 80, 10, 183, 88, 3, 132, 34, 59, 242, 182, 91, 215,\n\t\t214, 110, 93, 35, 106, 31, 183, 134, 231, 95, 167, 194, 118,\n\t\t145, 254, 79, 216, 60, 217, 152, 172, 165, 107, 87, 218, 73,\n\t\t129, 56, 91, 49, 140, 89, 9, 154, 2, 21, 84, 69, 97, 88, 118,\n\t\t86, 90, 95, 195, 29, 112, 28, 142, 53, 108, 62, 2, 215, 216,\n\t\t195, 250, 136, 73, 61, 68, 86, 77, 130, 214, 184, 167, 82,\n\t\t24, 108, 166, 203, 34, 170, 219, 113, 69, 16, 174, 208, 81,\n\t\t251, 251, 200, 140, 109, 201, 121, 154, 212, 8, 249, 231,\n\t\t235, 78, 75, 194, 234, 64, 102, 165, 227, 213, 82, 59, 3,\n\t\t32, 10, 30, 160, 198, 162, 159, 218, 65, 245, 116, 56, 113,\n\t\t52, 39, 2, 22, 149, 5, 109, 255, 123, 75, 59, 3, 1, 177, 20,\n\t\t150, 48, 200, 122, 19, 228, 185, 189, 43, 235, 127, 2, 39,\n\t\t70, 148, 140, 155, 241, 178, 165, 136, 17, 199, 8, 108, 31,\n\t\t64, 134, 90, 84, 155, 128, 76, 212, 130, 39, 10, 12, 11, 66,\n\t\t140, 214, 223, 119, 187, 16, 232, 160, 163, 0, 128, 98, 217,\n\t\t89, 208, 154, 142, 150, 210, 207, 253, 48, 213, 166, 103,\n\t\t201, 65, 94, 13, 99, 119, 234, 104, 234, 116, 234, 134, 212,\n\t\t205, 169, 15, 164, 62, 156, 250, 124, 234, 119, 64, 150, 217,\n\t\t116, 132, 47, 2, 47, 204, 34, 101, 32, 175, 165, 150, 141,\n\t\t132, 22, 114, 82, 157, 171, 40, 117, 80, 86, 175, 144, 100,\n\t\t77, 100, 125, 194, 15, 91, 128, 181, 90, 0, 46, 249, 128,\n\t\t27, 60, 194, 21, 138, 206, 144, 238, 50, 141, 97, 219, 81,\n\t\t139, 205, 195, 6, 176, 46, 127, 49, 28, 100, 43, 50, 190,\n\t\t35, 56, 10, 223, 87, 43, 194, 196, 85, 56, 146, 5, 66, 148,\n\t\t239, 43, 105, 6, 88, 233, 60, 105, 17, 108, 133, 98, 225,\n\t\t133, 26, 31, 217, 132, 93, 210, 179, 66, 141, 214, 224, 93,\n\t\t21, 86, 141, 249, 114, 186, 100, 150, 31, 50, 243, 230, 250,\n\t\t183, 124, 49, 47, 132, 245, 108, 133, 210, 70, 65, 49, 145,\n\t\t24, 89, 20, 90, 13, 73, 216, 42, 212, 161, 9, 52, 224, 127,\n\t\t152, 46, 171, 145, 176, 79, 72, 107, 155, 196, 9, 229, 151,\n\t\t114, 170, 139, 53, 51, 8, 177, 109, 199, 204, 45, 17, 195,\n\t\t22, 24, 211, 68, 12, 44, 126, 143, 98, 191, 13, 86, 41, 47,\n\t\t166, 75, 90, 174, 41, 23, 68, 89, 45, 122, 176, 178, 2, 182,\n\t\t7, 244, 178, 86, 86, 151, 202, 102, 92, 154, 150, 10, 146,\n\t\t67, 171, 217, 6, 30, 27, 45, 117, 69, 183, 212, 73, 75, 204,\n\t\t52, 229, 63, 179, 101, 6, 143, 80, 118, 239, 81, 76, 38, 43,\n\t\t172, 42, 172, 144, 18, 22, 106, 209, 117, 176, 210, 63, 155,\n\t\t86, 254, 40, 47, 120, 66, 129, 6, 52, 43, 222, 123, 63, 125,\n\t\t144, 30, 190, 226, 236, 67, 244, 33, 175, 222, 36, 133, 42,\n\t\t37, 229, 92, 122, 130, 98, 78, 145, 36, 151, 168, 144, 203,\n\t\t137, 121, 234, 209, 156, 16, 8, 225, 3, 244, 238, 163, 52,\n\t\t47, 229, 233, 213, 130, 77, 157, 101, 234, 18, 89, 211, 101,\n\t\t211, 39, 196, 35, 77, 85, 36, 121, 34, 176, 109, 155, 61,\n\t\t213, 104, 78, 28, 112, 169, 15, 186, 226, 230, 91, 232, 202,\n\t\t54, 58, 105, 152, 33, 230, 209, 32, 163, 158, 40, 0, 72, 51,\n\t\t12, 58, 61, 71, 15, 206, 210, 217, 233, 186, 213, 162, 141,\n\t\t22, 45, 19, 69, 82, 192, 56, 18, 166, 38, 96, 139, 67, 32,\n\t\t1, 21, 5, 176, 255, 42, 22, 214, 144, 84, 154, 22, 13, 10,\n\t\t16, 150, 40, 154, 109, 185, 164, 121, 113, 206, 94, 6, 36,\n\t\t192, 40, 181, 130, 149, 65, 8, 47, 153, 103, 243, 104, 196,\n\t\t49, 201, 231, 40, 49, 126, 109, 110, 13, 99, 208, 250, 152,\n\t\t206, 19, 109, 208, 230, 184, 226, 94, 212, 220, 240, 114,\n\t\t93, 112, 169, 14, 73, 74, 21, 93, 75, 146, 142, 173, 216,\n\t\t54, 251, 56, 142, 54, 244, 183, 5, 146, 100, 185, 226, 46,\n\t\t95, 194, 76, 122, 59, 253, 241, 1, 206, 46, 4, 34, 206, 117,\n\t\t187, 138, 206, 116, 99, 236, 36, 251, 202, 171, 78, 156, 124,\n\t\t12, 223, 100, 183, 195, 36, 213, 81, 222, 153, 55, 13, 215,\n\t\t184, 191, 174, 56, 170, 196, 254, 71, 149, 207, 203, 176,\n\t\t105, 152, 87, 229, 179, 74, 71, 173, 184, 161, 134, 159, 224,\n\t\t219, 159, 73, 182, 125, 85, 234, 210, 90, 169, 233, 84, 119,\n\t\t204, 102, 122, 105, 68, 199, 8, 26, 172, 204, 21, 32, 136,\n\t\t52, 204, 180, 4, 36, 216, 154, 227, 110, 65, 150, 4, 94, 86,\n\t\t80, 168, 77, 195, 5, 39, 233, 152, 152, 123, 54, 79, 46, 118,\n\t\t38, 28, 242, 237, 180, 13, 215, 225, 188, 153, 217, 246, 242,\n\t\t81, 184, 58, 71, 4, 213, 224, 88, 162, 24, 108, 237, 129,\n\t\t160, 82, 72, 26, 63, 251, 206, 52, 92, 165, 218, 179, 96,\n\t\t145, 36, 6, 47, 25, 81, 126, 174, 226, 43, 105, 197, 81, 196,\n\t\t45, 102, 238, 237, 12, 190, 97, 103, 200, 80, 197, 106, 247,\n\t\t37, 35, 76, 249, 53, 165, 30, 59, 199, 211, 10, 204, 84, 42,\n\t\t227, 250, 115, 169, 163, 32, 31, 82, 169, 10, 231, 180, 62,\n\t\t144, 186, 46, 117, 87, 234, 117, 169, 159, 72, 125, 8, 235,\n\t\t154, 97, 41, 32, 140, 182, 98, 181, 126, 34, 183, 11, 164,\n\t\t134, 53, 171, 146, 0, 165, 13, 10, 99, 94, 215, 130, 245,\n\t\t146, 212, 195, 177, 33, 219, 170, 133, 181, 209, 69, 207,\n\t\t19, 86, 248, 47, 151, 39, 145, 92, 73, 237, 207, 2, 210, 249,\n\t\t36, 115, 6, 189, 141, 162, 161, 99, 114, 100, 44, 224, 14,\n\t\t199, 73, 28, 241, 97, 173, 63, 246, 87, 192, 38, 83, 174,\n\t\t41, 34, 92, 33, 164, 41, 171, 141, 25, 77, 108, 81, 34, 40,\n\t\t150, 30, 123, 65, 75, 99, 138, 225, 42, 39, 155, 96, 252,\n\t\t219, 78, 168, 67, 147, 73, 219, 160, 2, 90, 151, 41, 88, 145,\n\t\t2, 76, 220, 77, 77, 194, 96, 137, 102, 194, 18, 199, 22, 198,\n\t\t75, 176, 114, 131, 50, 48, 141, 74, 57, 189, 31, 123, 55,\n\t\t72, 58, 173, 214, 52, 140, 3, 128, 151, 100, 114, 10, 14,\n\t\t160, 6, 174, 85, 19, 101, 13, 182, 248, 67, 89, 141, 29, 232,\n\t\t41, 162, 39, 27, 190, 106, 239, 247, 21, 69, 116, 3, 223,\n\t\t109, 75, 136, 118, 20, 233, 116, 104, 42, 170, 222, 152, 48,\n\t\t53, 213, 216, 117, 71, 104, 232, 94, 104, 26, 135, 126, 100,\n\t\t166, 109, 202, 70, 84, 211, 245, 116, 89, 167, 130, 162, 33,\n\t\t145, 139, 163, 154, 134, 222, 163, 84, 197, 4, 193, 57, 80,\n\t\t124, 105, 16, 237, 20, 128, 143, 168, 238, 24, 251, 139, 255,\n\t\t149, 110, 37, 111, 79, 205, 67, 47, 68, 111, 95, 92, 107,\n\t\t225, 199, 72, 70, 92, 220, 228, 57, 149, 92, 126, 70, 177,\n\t\t31, 39, 62, 92, 238, 225, 1, 43, 43, 68, 79, 80, 139, 129,\n\t\t25, 74, 229, 48, 191, 247, 230, 185, 76, 161, 242, 218, 184,\n\t\t94, 137, 110, 170, 238, 36, 83, 75, 55, 23, 42, 157, 226,\n\t\t180, 209, 253, 173, 119, 250, 206, 222, 77, 247, 221, 126,\n\t\t223, 145, 99, 39, 255, 252, 218, 225, 129, 38, 249, 183, 92,\n\t\t238, 208, 205, 149, 122, 229, 245, 145, 119, 215, 110, 77,\n\t\t25, 52, 192, 134, 236, 229, 71, 147, 83, 91, 202, 90, 152,\n\t\t169, 204, 93, 17, 145, 226, 119, 109, 231, 224, 107, 93, 183,\n\t\t100, 205, 116, 231, 44, 165, 53, 170, 44, 190, 65, 49, 94,\n\t\t241, 51, 68, 30, 112, 31, 214, 127, 64, 155, 123, 53, 252,\n\t\t66, 46, 245, 169, 164, 78, 169, 212, 24, 72, 35, 204, 5, 103,\n\t\t181, 36, 200, 45, 150, 54, 152, 30, 90, 242, 56, 197, 128,\n\t\t33, 171, 147, 68, 207, 174, 191, 176, 254, 2, 89, 125, 108,\n\t\t248, 139, 59, 192, 92, 46, 92, 53, 168, 109, 27, 248, 235,\n\t\t255, 90, 219, 188, 185, 54, 87, 237, 151, 126, 194, 10, 39,\n\t\t159, 62, 112, 224, 233, 201, 14, 233, 188, 245, 189, 228,\n\t\t109, 223, 31, 126, 233, 75, 195, 47, 157, 221, 29, 46, 136,\n\t\t116, 170, 27, 79, 230, 59, 157, 78, 161, 125, 183, 30, 173,\n\t\t236, 221, 187, 82, 36, 59, 182, 6, 71, 120, 28, 229, 185,\n\t\t31, 128, 189, 36, 241, 190, 222, 78, 80, 153, 96, 97, 241,\n\t\t171, 164, 208, 145, 63, 154, 39, 203, 66, 7, 139, 120, 34,\n\t\t157, 150, 13, 221, 91, 102, 72, 211, 202, 171, 38, 146, 47,\n\t\t20, 170, 210, 162, 212, 41, 172, 127, 105, 227, 135, 124,\n\t\t26, 99, 0, 153, 76, 45, 79, 178, 125, 233, 140, 234, 239,\n\t\t12, 67, 99, 147, 211, 159, 244, 34, 55, 115, 63, 121, 110,\n\t\t178, 176, 254, 123, 200, 23, 71, 250, 133, 201, 245, 247,\n\t\t43, 47, 103, 146, 38, 75, 146, 231, 128, 152, 243, 196, 123,\n\t\t165, 194, 141, 133, 200, 44, 57, 237, 45, 230, 170, 238, 220,\n\t\t5, 54, 249, 185, 31, 158, 59, 7, 56, 228, 113, 64, 33, 203,\n\t\t160, 195, 127, 62, 245, 60, 178, 211, 142, 56, 241, 56, 70,\n\t\t212, 99, 105, 82, 236, 155, 29, 44, 45, 131, 44, 91, 131,\n\t\t33, 168, 103, 28, 14, 76, 10, 84, 37, 221, 207, 70, 14, 203,\n\t\t225, 160, 89, 107, 202, 88, 55, 143, 23, 158, 170, 98, 8,\n\t\t254, 144, 15, 99, 244, 198, 95, 155, 72, 132, 73, 181, 45,\n\t\t12, 168, 134, 47, 137, 91, 62, 253, 56, 161, 187, 106, 205,\n\t\t201, 24, 166, 212, 28, 38, 97, 72, 152, 155, 128, 54, 16,\n\t\t134, 101, 198, 69, 153, 251, 11, 173, 196, 214, 199, 4, 188,\n\t\t34, 225, 188, 153, 195, 104, 216, 76, 140, 138, 177, 255,\n\t\t99, 244, 223, 192, 100, 53, 41, 168, 85, 93, 150, 195, 180,\n\t\t70, 252, 73, 74, 103, 242, 97, 86, 200, 68, 97, 70, 70, 27,\n\t\t102, 34, 20, 196, 92, 228, 145, 163, 81, 90, 160, 129, 111,\n\t\t3, 218, 118, 63, 174, 9, 93, 208, 175, 177, 70, 235, 21, 170,\n\t\t187, 58, 173, 52, 168, 238, 131, 126, 35, 125, 170, 123, 48,\n\t\t9, 115, 83, 231, 42, 105, 69, 245, 181, 90, 164, 10, 12, 115,\n\t\t105, 53, 176, 14, 153, 29, 145, 86, 73, 9, 99, 145, 74, 212,\n\t\t10, 13, 81, 183, 213, 162, 24, 72, 166, 168, 74, 66, 96, 123,\n\t\t122, 239, 141, 219, 41, 217, 247, 252, 72, 146, 229, 45, 31,\n\t\t223, 69, 250, 111, 154, 215, 64, 249, 239, 5, 99, 209, 239,\n\t\t55, 37, 22, 101, 68, 70, 255, 77, 115, 116, 42, 82, 149, 154,\n\t\t134, 98, 42, 36, 91, 202, 87, 169, 236, 4, 89, 28, 93, 242,\n\t\t69, 201, 116, 131, 156, 32, 220, 228, 235, 138, 47, 17, 219,\n\t\t51, 189, 136, 232, 239, 199, 252, 113, 162, 191, 241, 141,\n\t\t96, 188, 235, 111, 126, 179, 142, 22, 250, 47, 24, 132, 24,\n\t\t207, 60, 3, 106, 213, 16, 21, 93, 21, 20, 202, 12, 41, 102,\n\t\t88, 78, 7, 131, 201, 136, 146, 117, 163, 42, 150, 120, 19,\n\t\t53, 198, 205, 85, 93, 245, 21, 34, 19, 184, 39, 178, 144,\n\t\t41, 213, 110, 105, 78, 238, 238, 138, 138, 80, 235, 128, 2,\n\t\t180, 156, 88, 37, 76, 4, 139, 70, 82, 15, 132, 130, 32, 94,\n\t\t18, 135, 88, 195, 145, 204, 31, 51, 202, 141, 6, 56, 214,\n\t\t69, 195, 76, 132, 13, 158, 31, 36, 178, 157, 35, 72, 108,\n\t\t0, 51, 34, 242, 28, 98, 255, 245, 179, 248, 73, 86, 39, 86,\n\t\t221, 85, 153, 172, 174, 18, 115, 209, 133, 9, 43, 61, 7, 183,\n\t\t44, 140, 231, 210, 22, 121, 238, 252, 90, 240, 185, 126, 174,\n\t\t54, 53, 209, 218, 247, 183, 181, 214, 196, 158, 216, 183,\n\t\t37, 199, 10, 2, 219, 78, 198, 48, 55, 242, 34, 86, 82, 151,\n\t\t35, 71, 250, 134, 79, 15, 48, 195, 136, 215, 32, 133, 15,\n\t\t104, 110, 237, 110, 145, 118, 59, 17, 216, 129, 189, 118,\n\t\t181, 133, 46, 174, 14, 139, 139, 66, 143, 241, 146, 164, 240,\n\t\t129, 102, 226, 144, 89, 2, 152, 225, 53, 180, 80, 71, 150,\n\t\t8, 192, 144, 182, 224, 183, 76, 190, 207, 149, 184, 192, 182,\n\t\t232, 57, 29, 116, 64, 78, 55, 228, 6, 163, 96, 251, 80, 139,\n\t\t152, 88, 57, 200, 19, 212, 192, 172, 81, 89, 148, 168, 158,\n\t\t51, 52, 29, 62, 170, 61, 221, 158, 40, 44, 18, 89, 213, 76,\n\t\t205, 98, 38, 116, 111, 79, 243, 52, 157, 55, 30, 0, 226, 76,\n\t\t147, 85, 208, 232, 6, 51, 177, 98, 31, 105, 113, 51, 227,\n\t\t143, 167, 194, 89, 121, 154, 10, 51, 108, 22, 4, 116, 1, 243,\n\t\t18, 141, 30, 33, 123, 20, 42, 149, 84, 132, 156, 179, 108,\n\t\t134, 10, 179, 242, 172, 234, 20, 102, 67, 54, 148, 20, 94,\n\t\t101, 90, 216, 140, 131, 32, 170, 121, 25, 70, 125, 97, 74,\n\t\t52, 37, 67, 129, 98, 62, 180, 158, 146, 206, 253, 211, 185,\n\t\t63, 1, 220, 253, 217, 148, 201, 43, 147, 13, 82, 135, 0, 125,\n\t\t192, 13, 226, 105, 28, 85, 116, 156, 248, 156, 5, 36, 66,\n\t\t137, 94, 36, 242, 72, 230, 206, 65, 204, 75, 197, 100, 118,\n\t\t188, 159, 248, 244, 224, 105, 99, 53, 210, 139, 136, 42, 160,\n\t\t55, 243, 138, 133, 244, 224, 238, 47, 237, 149, 37, 71, 89,\n\t\t249, 213, 101, 230, 138, 183, 94, 123, 125, 134, 186, 38,\n\t\t141, 174, 60, 162, 137, 230, 235, 85, 67, 208, 14, 93, 238,\n\t\t9, 150, 75, 195, 107, 126, 90, 49, 84, 213, 80, 119, 59, 206,\n\t\t206, 78, 103, 167, 227, 16, 106, 53, 170, 21, 64, 12, 228,\n\t\t209, 237, 187, 97, 91, 182, 101, 19, 147, 237, 245, 155, 10,\n\t\t191, 114, 173, 6, 141, 239, 200, 59, 179, 130, 107, 74, 130,\n\t\t225, 9, 217, 183, 94, 166, 25, 162, 118, 234, 23, 58, 72,\n\t\t83, 187, 7, 63, 190, 160, 193, 109, 220, 221, 158, 158, 110,\n\t\t239, 198, 95, 149, 78, 197, 117, 202, 221, 49, 87, 85, 202,\n\t\t132, 107, 190, 63, 165, 0, 74, 201, 240, 92, 128, 46, 198,\n\t\t220, 251, 65, 82, 35, 38, 26, 141, 43, 132, 143, 88, 151,\n\t\t215, 132, 25, 245, 198, 223, 141, 241, 119, 204, 93, 71, 201,\n\t\t10, 12, 191, 63, 80, 109, 238, 14, 119, 20, 50, 143, 21, 50,\n\t\t149, 198, 46, 239, 53, 249, 236, 222, 93, 225, 247, 243, 217,\n\t\t221, 187, 192, 90, 46, 100, 118, 237, 242, 38, 130, 140, 10,\n\t\t95, 15, 231, 179, 100, 23, 204, 220, 23, 20, 78, 100, 50,\n\t\t25, 27, 190, 158, 204, 216, 157, 19, 248, 30, 226, 199, 235,\n\t\t44, 87, 133, 159, 105, 167, 115, 98, 108, 15, 126, 155, 124,\n\t\t150, 252, 108, 202, 73, 149, 64, 10, 95, 11, 242, 119, 153,\n\t\t118, 55, 12, 27, 140, 91, 198, 2, 138, 17, 114, 29, 32, 93,\n\t\t203, 80, 66, 116, 196, 19, 56, 155, 173, 141, 82, 129, 163,\n\t\t97, 153, 15, 30, 132, 65, 43, 177, 129, 113, 40, 62, 113,\n\t\t233, 34, 139, 193, 134, 27, 133, 59, 115, 127, 14, 208, 169,\n\t\t102, 230, 69, 133, 9, 139, 130, 34, 110, 159, 180, 69, 153,\n\t\t50, 181, 221, 23, 145, 51, 143, 196, 212, 140, 44, 229, 253,\n\t\t239, 103, 208, 140, 101, 6, 146, 84, 202, 129, 220, 217, 43,\n\t\t87, 108, 137, 30, 5, 147, 61, 39, 42, 25, 63, 146, 170, 93,\n\t\t119, 26, 132, 143, 200, 26, 33, 123, 80, 45, 132, 24, 155,\n\t\t249, 159, 0, 44, 41, 175, 106, 69, 168, 123, 156, 10, 146,\n\t\t131, 145, 42, 130, 43, 73, 79, 90, 177, 139, 88, 135, 49,\n\t\t85, 51, 216, 7, 63, 192, 252, 172, 68, 8, 43, 234, 229, 103,\n\t\t126, 238, 35, 10, 70, 220, 138, 86, 41, 235, 1, 200, 97, 206,\n\t\t156, 188, 105, 183, 21, 149, 113, 108, 86, 140, 156, 152,\n\t\t93, 145, 248, 203, 146, 123, 212, 228, 245, 54, 83, 156, 125,\n\t\t130, 179, 20, 86, 147, 20, 241, 193, 48, 25, 60, 232, 37,\n\t\t100, 10, 252, 138, 163, 134, 156, 100, 229, 243, 144, 78,\n\t\t100, 188, 71, 53, 67, 56, 176, 78, 50, 94, 201, 103, 224,\n\t\t200, 90, 198, 200, 20, 28, 235, 51, 122, 117, 73, 199, 51,\n\t\t87, 103, 203, 94, 171, 191, 192, 26, 133, 9, 232, 157, 51,\n\t\t130, 182, 254, 130, 170, 24, 242, 236, 172, 100, 152, 242,\n\t\t92, 221, 253, 132, 46, 168, 114, 122, 251, 182, 172, 172,\n\t\t81, 106, 178, 35, 7, 254, 82, 122, 181, 209, 200, 152, 46,\n\t\t76, 82, 214, 107, 216, 179, 251, 175, 209, 106, 3, 19, 185,\n\t\t8, 244, 226, 36, 52, 31, 196, 231, 93, 53, 47, 162, 1, 105,\n\t\t195, 45, 253, 178, 156, 81, 48, 116, 88, 51, 45, 73, 64, 2,\n\t\t112, 247, 162, 124, 215, 255, 47, 174, 229, 148, 219, 3, 59,\n\t\t23, 75, 126, 188, 228, 91, 250, 255, 49, 255, 236, 217, 135,\n\t\t238, 249, 201, 243, 31, 235, 207, 255, 223, 166, 201, 115,\n\t\t103, 149, 123, 238, 121, 232, 252, 199, 196, 127, 61, 185,\n\t\t193, 59, 244, 219, 228, 7, 228, 147, 156, 175, 167, 150, 74,\n\t\t213, 45, 62, 80, 21, 9, 115, 52, 121, 70, 24, 51, 43, 3, 170,\n\t\t17, 16, 188, 68, 67, 178, 95, 158, 28, 84, 224, 189, 176,\n\t\t251, 254, 5, 85, 217, 183, 48, 127, 243, 137, 61, 32, 3, 223,\n\t\t189, 71, 41, 14, 246, 45, 229, 167, 221, 108, 239, 205, 95,\n\t\t30, 84, 164, 41, 88, 107, 253, 15, 197, 195, 143, 237, 90,\n\t\t189, 41, 23, 137, 245, 229, 83, 253, 59, 223, 249, 241, 234,\n\t\t246, 238, 92, 78, 155, 252, 196, 3, 198, 210, 69, 216, 10,\n\t\t239, 29, 214, 88, 72, 145, 33, 226, 71, 144, 109, 160, 21,\n\t\t56, 137, 0, 182, 131, 113, 142, 167, 60, 108, 202, 27, 72,\n\t\t241, 60, 253, 240, 50, 8, 104, 186, 159, 106, 74, 236, 42,\n\t\t154, 153, 205, 213, 91, 35, 66, 246, 15, 102, 91, 87, 6, 65,\n\t\t176, 151, 143, 0, 189, 247, 169, 107, 174, 121, 234, 26, 210,\n\t\t196, 248, 144, 227, 150, 166, 184, 177, 162, 145, 32, 179,\n\t\t48, 165, 234, 195, 131, 213, 123, 97, 189, 111, 243, 161,\n\t\t162, 31, 94, 131, 43, 158, 143, 193, 56, 0, 122, 74, 75, 149,\n\t\t145, 145, 248, 60, 3, 85, 11, 209, 138, 60, 78, 206, 24, 38,\n\t\t33, 65, 129, 76, 246, 71, 173, 184, 218, 237, 238, 236, 28,\n\t\t169, 206, 181, 119, 119, 186, 213, 218, 228, 160, 86, 155,\n\t\t157, 205, 143, 185, 82, 254, 112, 182, 86, 157, 155, 171,\n\t\t214, 6, 147, 181, 106, 23, 102, 140, 199, 184, 206, 209, 123,\n\t\t201, 19, 32, 235, 142, 167, 110, 73, 61, 144, 122, 60, 245,\n\t\t44, 200, 146, 177, 176, 94, 34, 201, 96, 60, 106, 226, 90,\n\t\t50, 166, 147, 20, 217, 180, 48, 47, 10, 75, 7, 22, 9, 159,\n\t\t59, 79, 160, 111, 13, 121, 229, 121, 28, 236, 149, 185, 47,\n\t\t86, 137, 65, 39, 128, 180, 31, 241, 90, 27, 27, 202, 28, 117,\n\t\t65, 107, 204, 226, 199, 45, 182, 209, 69, 121, 151, 44, 188,\n\t\t192, 97, 15, 51, 223, 222, 145, 24, 19, 231, 65, 0, 171, 146,\n\t\t237, 229, 244, 185, 169, 96, 52, 152, 215, 135, 93, 67, 219,\n\t\t221, 173, 223, 219, 88, 186, 236, 207, 229, 197, 66, 97, 134,\n\t\t41, 158, 70, 50, 233, 146, 50, 170, 47, 247, 47, 15, 172,\n\t\t97, 219, 203, 149, 145, 203, 67, 210, 36, 93, 210, 137, 100,\n\t\t68, 166, 210, 92, 158, 216, 241, 247, 19, 72, 85, 62, 193,\n\t\t84, 245, 81, 77, 203, 3, 104, 122, 66, 141, 84, 120, 221,\n\t\t195, 196, 44, 40, 62, 49, 99, 60, 203, 164, 9, 56, 168, 35,\n\t\t169, 82, 232, 219, 234, 204, 0, 32, 152, 61, 93, 114, 79,\n\t\t116, 166, 23, 27, 180, 42, 44, 207, 52, 242, 178, 60, 89,\n\t\t104, 86, 131, 96, 78, 175, 173, 206, 139, 106, 95, 217, 30,\n\t\t103, 169, 108, 245, 10, 0, 227, 96, 247, 0, 120, 73, 180,\n\t\t104, 69, 189, 186, 109, 22, 127, 0, 0, 64, 255, 191, 22, 14,\n\t\t199, 143, 41, 107, 19, 90, 94, 147, 197, 188, 150, 225, 135,\n\t\t60, 146, 134, 195, 72, 240, 193, 199, 26, 207, 253, 32, 245,\n\t\t42, 250, 56, 49, 1, 135, 116, 83, 87, 164, 174, 73, 189, 60,\n\t\t245, 211, 240, 28, 34, 139, 34, 150, 231, 86, 17, 216, 73,\n\t\t188, 160, 19, 39, 194, 166, 172, 42, 71, 156, 17, 59, 68,\n\t\t31, 199, 8, 67, 100, 64, 192, 131, 134, 2, 11, 156, 27, 79,\n\t\t201, 28, 248, 153, 20, 95, 26, 226, 109, 93, 225, 84, 25,\n\t\t248, 244, 0, 228, 98, 81, 161, 100, 229, 230, 128, 251, 12,\n\t\t146, 66, 169, 43, 36, 238, 109, 252, 90, 166, 248, 144, 248,\n\t\t74, 252, 176, 201, 110, 96, 250, 143, 4, 201, 138, 204, 178,\n\t\t44, 232, 186, 10, 24, 209, 6, 187, 83, 207, 212, 4, 189, 161,\n\t\t186, 166, 246, 46, 184, 9, 6, 24, 167, 68, 49, 50, 101, 38,\n\t\t229, 189, 9, 89, 48, 254, 218, 118, 5, 75, 242, 23, 13, 71,\n\t\t16, 29, 163, 45, 10, 122, 40, 138, 53, 17, 163, 244, 55, 49,\n\t\t76, 116, 122, 23, 88, 216, 98, 198, 169, 83, 229, 27, 110,\n\t\t214, 144, 84, 170, 248, 130, 168, 11, 6, 192, 91, 248, 9,\n\t\t166, 107, 246, 109, 123, 37, 81, 223, 102, 99, 225, 23, 221,\n\t\t81, 231, 225, 135, 32, 250, 3, 65, 208, 35, 116, 172, 75,\n\t\t21, 70, 20, 250, 87, 122, 236, 155, 105, 221, 82, 173, 211,\n\t\t250, 19, 186, 172, 219, 13, 223, 7, 51, 57, 59, 145, 9, 194,\n\t\t88, 175, 197, 86, 223, 179, 60, 223, 52, 117, 69, 46, 201,\n\t\t58, 179, 170, 146, 112, 131, 237, 63, 173, 212, 188, 146,\n\t\t83, 81, 36, 97, 66, 181, 87, 225, 235, 250, 181, 80, 143,\n\t\t173, 9, 197, 98, 145, 101, 120, 166, 14, 182, 176, 92, 148,\n\t\t47, 230, 106, 22, 209, 151, 237, 86, 4, 214, 34, 181, 184,\n\t\t103, 147, 184, 19, 219, 100, 158, 212, 74, 100, 5, 238, 46,\n\t\t57, 91, 123, 207, 123, 72, 244, 47, 242, 43, 217, 61, 226,\n\t\t7, 196, 225, 64, 232, 200, 55, 92, 111, 222, 13, 104, 107,\n\t\t253, 101, 253, 62, 217, 60, 47, 204, 131, 125, 107, 155, 205,\n\t\t181, 66, 225, 173, 93, 30, 43, 243, 37, 242, 97, 232, 235,\n\t\t89, 94, 117, 245, 162, 188, 99, 172, 125, 55, 78, 42, 95,\n\t\t38, 228, 120, 180, 181, 118, 122, 128, 249, 228, 131, 211,\n\t\t181, 173, 145, 57, 44, 76, 45, 47, 79, 249, 205, 226, 155,\n\t\t46, 175, 53, 167, 193, 24, 156, 110, 214, 46, 143, 75, 203,\n\t\t71, 150, 121, 34, 144, 156, 138, 206, 125, 146, 78, 145, 207,\n\t\t165, 230, 82, 15, 167, 62, 68, 12, 242, 14, 242, 110, 176,\n\t\t104, 154, 35, 206, 53, 28, 15, 19, 26, 7, 198, 11, 236, 113,\n\t\t175, 49, 126, 242, 4, 142, 80, 142, 219, 5, 130, 1, 82, 77,\n\t\t169, 29, 55, 89, 66, 43, 214, 68, 94, 163, 0, 185, 190, 186,\n\t\t253, 14, 31, 64, 26, 85, 185, 99, 180, 205, 218, 128, 63,\n\t\t163, 142, 140, 104, 13, 211, 25, 196, 81, 183, 211, 227, 166,\n\t\t196, 216, 175, 30, 35, 23, 82, 66, 44, 140, 37, 171, 96, 247,\n\t\t157, 13, 230, 165, 33, 14, 63, 227, 9, 177, 97, 204, 245,\n\t\t44, 234, 223, 209, 176, 195, 89, 188, 147, 104, 146, 104,\n\t\t20, 112, 255, 65, 179, 213, 70, 13, 80, 109, 33, 103, 14,\n\t\t250, 17, 48, 43, 5, 119, 217, 66, 78, 99, 88, 31, 0, 227,\n\t\t88, 159, 183, 187, 241, 56, 215, 34, 194, 40, 155, 40, 4,\n\t\t193, 85, 101, 48, 197, 13, 213, 214, 176, 129, 220, 206, 205,\n\t\t13, 66, 165, 62, 146, 27, 55, 147, 49, 157, 209, 6, 191, 210,\n\t\t6, 57, 20, 94, 217, 6, 237, 18, 88, 70, 156, 135, 9, 12, 9,\n\t\t188, 91, 67, 188, 95, 200, 234, 5, 215, 217, 29, 246, 120,\n\t\t193, 84, 144, 141, 120, 49, 227, 96, 53, 198, 89, 164, 71,\n\t\t40, 22, 241, 113, 246, 151, 105, 146, 254, 200, 170, 53, 244,\n\t\t71, 199, 40, 33, 47, 7, 171, 94, 80, 171, 34, 9, 227, 48,\n\t\t92, 176, 152, 173, 26, 128, 213, 242, 42, 165, 6, 165, 154,\n\t\t94, 210, 29, 192, 91, 101, 221, 4, 93, 243, 53, 234, 229,\n\t\t108, 29, 192, 30, 109, 100, 114, 1, 161, 89, 149, 84, 39,\n\t\t179, 89, 129, 26, 36, 95, 2, 251, 156, 56, 147, 56, 114, 4,\n\t\t150, 188, 44, 152, 12, 68, 15, 114, 60, 153, 148, 23, 70,\n\t\t197, 172, 231, 248, 155, 148, 204, 236, 153, 174, 21, 61,\n\t\t76, 47, 84, 137, 203, 140, 64, 55, 237, 73, 172, 43, 149,\n\t\t107, 104, 36, 142, 203, 56, 208, 83, 198, 194, 106, 84, 254,\n\t\t195, 50, 178, 28, 166, 43, 132, 164, 115, 18, 113, 179, 197,\n\t\t54, 35, 106, 66, 242, 235, 120, 112, 16, 44, 25, 110, 75,\n\t\t22, 28, 66, 1, 136, 66, 28, 69, 244, 137, 44, 226, 89, 19,\n\t\t170, 232, 130, 174, 170, 126, 26, 236, 55, 211, 22, 0, 187,\n\t\t48, 2, 198, 90, 236, 24, 96, 11, 153, 198, 250, 235, 101,\n\t\t39, 118, 53, 137, 185, 114, 85, 134, 125, 50, 71, 144, 68,\n\t\t12, 206, 18, 92, 37, 235, 203, 2, 145, 61, 195, 21, 49, 44,\n\t\t18, 236, 45, 47, 70, 202, 91, 133, 18, 77, 5, 40, 196, 12,\n\t\t153, 250, 52, 212, 181, 160, 44, 59, 96, 21, 201, 96, 44,\n\t\t17, 65, 23, 73, 217, 0, 115, 31, 49, 168, 108, 59, 182, 174,\n\t\t198, 134, 225, 231, 164, 176, 170, 137, 126, 185, 152, 212,\n\t\t98, 117, 85, 192, 13, 204, 15, 101, 229, 17, 2, 103, 164,\n\t\t144, 83, 69, 207, 84, 38, 211, 186, 236, 137, 0, 155, 151,\n\t\t138, 13, 223, 129, 59, 159, 3, 187, 44, 140, 29, 205, 32,\n\t\t186, 151, 21, 72, 20, 192, 229, 214, 243, 217, 224, 56, 197,\n\t\t28, 78, 2, 87, 170, 228, 139, 179, 88, 193, 80, 32, 115, 25,\n\t\t27, 206, 218, 53, 93, 74, 102, 11, 176, 45, 224, 46, 16, 111,\n\t\t146, 12, 198, 168, 42, 32, 83, 51, 220, 88, 162, 170, 159,\n\t\t37, 194, 81, 147, 57, 102, 140, 233, 158, 154, 161, 146, 176,\n\t\t212, 25, 200, 250, 244, 148, 32, 149, 204, 188, 227, 68, 145,\n\t\t82, 41, 213, 115, 57, 221, 43, 130, 17, 172, 231, 221, 134,\n\t\t17, 80, 23, 80, 55, 177, 37, 169, 88, 102, 172, 100, 19, 150,\n\t\t243, 156, 162, 134, 101, 66, 69, 221, 66, 74, 17, 196, 240,\n\t\t166, 235, 193, 131, 52, 144, 107, 25, 76, 97, 197, 241, 225,\n\t\t170, 2, 19, 7, 238, 180, 138, 169, 129, 61, 169, 228, 116,\n\t\t89, 166, 31, 212, 53, 34, 121, 161, 163, 139, 96, 43, 104,\n\t\t112, 158, 182, 6, 102, 118, 32, 233, 162, 144, 247, 148, 140,\n\t\t167, 136, 240, 68, 117, 71, 100, 142, 5, 219, 216, 81, 40,\n\t\t82, 215, 178, 145, 83, 26, 228, 45, 243, 92, 83, 72, 195,\n\t\t97, 2, 138, 92, 89, 30, 1, 16, 73, 29, 10, 86, 143, 234, 17,\n\t\t5, 201, 185, 36, 197, 137, 225, 74, 35, 67, 20, 12, 184, 47,\n\t\t134, 14, 237, 57, 7, 235, 138, 20, 25, 215, 136, 192, 116,\n\t\t184, 37, 158, 162, 203, 196, 229, 118, 7, 10, 83, 114, 22,\n\t\t240, 75, 30, 100, 211, 166, 212, 90, 234, 36, 216, 93, 88,\n\t\t50, 131, 199, 50, 241, 212, 92, 100, 96, 188, 64, 37, 217,\n\t\t218, 88, 72, 47, 93, 200, 197, 99, 227, 162, 200, 131, 129,\n\t\t219, 111, 182, 94, 234, 103, 120, 172, 223, 183, 102, 237,\n\t\t32, 29, 7, 214, 156, 189, 234, 21, 124, 31, 218, 173, 242,\n\t\t68, 191, 111, 206, 89, 102, 96, 196, 33, 44, 93, 245, 243,\n\t\t190, 226, 168, 150, 79, 118, 92, 112, 35, 248, 102, 182, 217,\n\t\t204, 174, 159, 197, 79, 178, 240, 207, 161, 43, 43, 106, 51,\n\t\t19, 183, 84, 69, 114, 54, 89, 126, 96, 154, 129, 102, 191,\n\t\t139, 207, 151, 195, 130, 115, 209, 2, 197, 214, 130, 79, 251,\n\t\t230, 185, 20, 223, 21, 124, 150, 155, 217, 115, 41, 190, 31,\n\t\t248, 76, 137, 60, 247, 244, 69, 192, 216, 233, 84, 1, 240,\n\t\t201, 254, 84, 10, 227, 227, 150, 165, 36, 32, 176, 213, 75,\n\t\t10, 182, 143, 106, 163, 158, 220, 10, 177, 154, 232, 156,\n\t\t48, 224, 241, 94, 24, 105, 13, 86, 211, 136, 27, 2, 97, 128,\n\t\t65, 213, 60, 145, 63, 6, 211, 244, 203, 165, 216, 194, 148,\n\t\t95, 74, 45, 65, 144, 133, 67, 154, 218, 175, 234, 207, 189,\n\t\t220, 253, 181, 220, 201, 181, 138, 108, 71, 6, 195, 128, 43,\n\t\t33, 190, 202, 168, 52, 51, 196, 190, 156, 8, 102, 96, 5, 206,\n\t\t145, 230, 48, 163, 61, 189, 202, 210, 245, 213, 38, 244, 95,\n\t\t93, 55, 53, 21, 154, 57, 40, 107, 38, 244, 50, 225, 180, 68,\n\t\t126, 161, 84, 122, 241, 23, 71, 134, 29, 168, 130, 70, 181,\n\t\t90, 100, 164, 231, 75, 127, 236, 64, 131, 11, 28, 77, 203,\n\t\t185, 153, 201, 250, 90, 49, 42, 9, 99, 255, 10, 180, 128,\n\t\t207, 114, 92, 82, 197, 152, 41, 172, 138, 130, 143, 143, 199,\n\t\t177, 15, 58, 93, 14, 169, 120, 178, 101, 13, 164, 33, 200,\n\t\t95, 161, 83, 27, 244, 142, 173, 189, 118, 121, 153, 124, 53,\n\t\t204, 108, 187, 109, 115, 239, 112, 222, 213, 103, 139, 163,\n\t\t83, 155, 175, 29, 94, 245, 224, 234, 194, 21, 223, 60, 125,\n\t\t186, 186, 182, 246, 154, 45, 127, 179, 250, 224, 85, 195,\n\t\t107, 55, 159, 26, 21, 103, 117, 55, 127, 89, 119, 243, 109,\n\t\t219, 50, 161, 119, 197, 250, 95, 158, 222, 224, 0, 74, 242,\n\t\t153, 205, 84, 152, 106, 96, 213, 157, 250, 6, 67, 14, 70,\n\t\t166, 111, 80, 97, 55, 220, 102, 43, 190, 56, 141, 190, 223,\n\t\t156, 39, 115, 2, 216, 64, 69, 130, 33, 137, 200, 197, 8, 56,\n\t\t216, 162, 97, 145, 246, 80, 116, 207, 3, 0, 233, 112, 52,\n\t\t44, 179, 184, 11, 98, 155, 76, 218, 58, 51, 152, 200, 192,\n\t\t194, 188, 63, 178, 109, 176, 146, 38, 54, 109, 177, 214, 255,\n\t\t60, 44, 149, 66, 114, 60, 44, 237, 245, 52, 85, 139, 93, 75,\n\t\t20, 5, 191, 44, 203, 51, 183, 76, 219, 225, 28, 173, 53, 68,\n\t\t35, 164, 250, 68, 70, 99, 86, 12, 125, 87, 18, 171, 87, 76,\n\t\t219, 150, 89, 113, 157, 156, 107, 210, 111, 164, 93, 5, 30,\n\t\t158, 166, 136, 78, 218, 117, 211, 191, 190, 62, 232, 45, 182,\n\t\t75, 17, 57, 25, 149, 74, 235, 223, 175, 239, 243, 125, 69,\n\t\t151, 4, 81, 6, 116, 156, 161, 190, 18, 88, 66, 78, 201, 30,\n\t\t170, 131, 125, 171, 107, 162, 13, 98, 80, 160, 62, 115, 37,\n\t\t45, 212, 2, 204, 7, 187, 40, 110, 78, 67, 30, 96, 63, 25,\n\t\t245, 130, 6, 54, 244, 19, 232, 18, 6, 152, 24, 247, 157, 171,\n\t\t159, 120, 226, 234, 239, 188, 250, 228, 96, 223, 190, 219,\n\t\t246, 217, 241, 229, 25, 242, 220, 83, 31, 123, 250, 69, 241,\n\t\t170, 199, 215, 159, 131, 57, 251, 6, 149, 252, 190, 192, 24,\n\t\t99, 146, 207, 144, 103, 57, 167, 68, 0, 253, 181, 54, 192,\n\t\t177, 244, 105, 226, 2, 48, 194, 202, 187, 240, 61, 32, 111,\n\t\t122, 83, 251, 218, 175, 126, 250, 211, 158, 107, 123, 167,\n\t\t79, 223, 75, 202, 111, 248, 229, 199, 126, 155, 166, 132,\n\t\t35, 116, 253, 195, 55, 166, 144, 211, 247, 7, 231, 190, 77,\n\t\t207, 94, 130, 91, 103, 83, 157, 212, 32, 181, 136, 121, 48,\n\t\t13, 44, 13, 61, 102, 46, 216, 168, 162, 35, 161, 122, 109,\n\t\t241, 196, 46, 80, 250, 21, 172, 144, 142, 33, 238, 241, 48,\n\t\t106, 92, 84, 235, 7, 215, 38, 215, 108, 219, 182, 237, 217,\n\t\t109, 39, 225, 77, 142, 153, 74, 102, 251, 228, 47, 62, 120,\n\t\t215, 66, 46, 150, 201, 71, 243, 161, 45, 130, 93, 216, 144,\n\t\t252, 233, 117, 3, 150, 63, 187, 205, 216, 246, 181, 165, 183,\n\t\t108, 217, 242, 150, 165, 165, 61, 155, 225, 239, 70, 80, 13,\n\t\t115, 228, 134, 91, 183, 85, 78, 182, 244, 244, 166, 200, 210,\n\t\t114, 117, 65, 12, 150, 248, 31, 172, 113, 126, 28, 238, 69,\n\t\t242, 179, 128, 18, 209, 55, 180, 23, 163, 139, 6, 21, 238,\n\t\t35, 193, 176, 27, 236, 177, 227, 100, 136, 230, 216, 115,\n\t\t82, 20, 120, 209, 106, 153, 245, 224, 146, 70, 27, 236, 195,\n\t\t172, 135, 182, 65, 18, 20, 11, 182, 15, 121, 241, 217, 245,\n\t\t95, 59, 177, 71, 144, 195, 56, 16, 196, 118, 137, 249, 160,\n\t\t119, 12, 86, 73, 231, 170, 162, 104, 85, 246, 228, 38, 39,\n\t\t210, 177, 34, 216, 158, 232, 86, 15, 92, 85, 157, 95, 255,\n\t\t107, 211, 179, 44, 175, 117, 255, 201, 166, 67, 53, 181, 214,\n\t\t6, 81, 211, 25, 118, 47, 95, 61, 117, 185, 192, 210, 249,\n\t\t121, 47, 142, 13, 193, 145, 137, 110, 251, 122, 92, 157, 202,\n\t\t100, 226, 190, 13, 74, 89, 117, 152, 224, 204, 45, 23, 150,\n\t\t143, 111, 29, 13, 115, 223, 5, 59, 216, 55, 63, 127, 253,\n\t\t142, 74, 207, 182, 235, 212, 72, 247, 183, 108, 187, 36, 166,\n\t\t89, 134, 94, 20, 1, 26, 159, 132, 167, 179, 21, 175, 117,\n\t\t196, 99, 53, 228, 17, 90, 130, 195, 8, 71, 211, 97, 170, 57,\n\t\t2, 75, 168, 57, 104, 131, 133, 133, 86, 101, 204, 23, 194,\n\t\t175, 38, 107, 190, 148, 89, 129, 142, 175, 254, 36, 155, 40,\n\t\t100, 51, 219, 223, 31, 117, 227, 124, 101, 245, 237, 74, 126,\n\t\t46, 27, 42, 229, 125, 59, 211, 115, 53, 163, 182, 99, 47,\n\t\t107, 205, 78, 168, 93, 214, 234, 167, 139, 100, 190, 45, 127,\n\t\t234, 18, 18, 5, 14, 143, 255, 172, 212, 179, 234, 51, 238,\n\t\t190, 146, 55, 221, 96, 206, 223, 218, 229, 162, 58, 234, 88,\n\t\t234, 147, 172, 80, 15, 38, 250, 160, 166, 66, 43, 195, 204,\n\t\t77, 213, 185, 27, 163, 114, 163, 13, 54, 202, 187, 47, 46,\n\t\t197, 247, 31, 28, 138, 111, 212, 193, 121, 145, 60, 199, 107,\n\t\t175, 164, 220, 196, 125, 134, 144, 107, 208, 27, 51, 141,\n\t\t135, 181, 15, 221, 183, 115, 185, 188, 249, 244, 166, 15,\n\t\t125, 232, 232, 233, 27, 47, 187, 125, 149, 60, 183, 107, 229,\n\t\t170, 169, 195, 171, 205, 213, 235, 86, 86, 175, 29, 193, 253,\n\t\t130, 246, 252, 59, 228, 47, 57, 255, 105, 38, 85, 79, 205,\n\t\t164, 126, 35, 245, 197, 212, 55, 82, 127, 11, 187, 95, 38,\n\t\t49, 10, 230, 166, 69, 155, 181, 164, 192, 72, 36, 207, 209,\n\t\t40, 97, 231, 66, 161, 116, 126, 204, 89, 110, 201, 44, 232,\n\t\t117, 193, 56, 197, 72, 203, 54, 167, 207, 197, 118, 131, 37,\n\t\t70, 34, 28, 61, 97, 137, 95, 181, 57, 96, 65, 117, 32, 3,\n\t\t56, 3, 149, 216, 217, 136, 87, 235, 53, 49, 177, 34, 9, 173,\n\t\t6, 131, 152, 7, 131, 209, 222, 178, 192, 101, 23, 142, 134,\n\t\t143, 247, 198, 109, 93, 4, 141, 81, 136, 59, 195, 105, 22,\n\t\t52, 146, 177, 36, 57, 9, 144, 162, 88, 80, 22, 125, 188, 56,\n\t\t222, 218, 229, 168, 99, 212, 76, 106, 179, 227, 214, 208,\n\t\t4, 200, 34, 73, 27, 68, 214, 68, 170, 58, 150, 46, 255, 174,\n\t\t20, 200, 102, 22, 20, 129, 225, 184, 159, 49, 85, 158, 169,\n\t\t242, 14, 83, 211, 76, 149, 28, 212, 7, 193, 109, 84, 177,\n\t\t42, 171, 138, 44, 80, 69, 19, 68, 11, 43, 4, 49, 110, 33,\n\t\t169, 116, 118, 118, 15, 161, 57, 193, 180, 73, 94, 142, 192,\n\t\t52, 43, 56, 10, 252, 17, 187, 108, 95, 239, 46, 234, 114,\n\t\t186, 170, 241, 40, 36, 74, 105, 12, 246, 133, 76, 168, 83,\n\t\t10, 195, 250, 44, 35, 34, 213, 13, 42, 168, 56, 76, 33, 13,\n\t\t167, 170, 19, 2, 97, 18, 37, 145, 132, 17, 201, 150, 106,\n\t\t96, 90, 244, 250, 63, 17, 51, 42, 216, 45, 166, 120, 38, 219,\n\t\t173, 138, 76, 236, 201, 18, 218, 102, 96, 5, 195, 137, 91,\n\t\t72, 160, 244, 70, 121, 34, 172, 69, 138, 164, 238, 145, 141,\n\t\t144, 60, 171, 137, 146, 192, 143, 6, 104, 79, 48, 136, 196,\n\t\t157, 146, 34, 189, 67, 181, 84, 17, 48, 189, 10, 223, 170,\n\t\t245, 174, 92, 254, 22, 48, 186, 53, 217, 55, 192, 218, 145,\n\t\t100, 56, 7, 221, 193, 168, 29, 232, 108, 26, 53, 44, 217,\n\t\t82, 21, 166, 75, 150, 165, 49, 3, 11, 90, 24, 96, 27, 101,\n\t\t78, 21, 242, 118, 54, 98, 96, 176, 49, 71, 15, 152, 152, 51,\n\t\t16, 177, 234, 22, 163, 19, 170, 18, 0, 84, 54, 20, 17, 7,\n\t\t91, 76, 81, 154, 35, 152, 81, 77, 4, 3, 12, 122, 64, 211,\n\t\t190, 168, 202, 170, 204, 152, 194, 126, 198, 241, 225, 220,\n\t\t136, 105, 31, 98, 96, 62, 74, 217, 124, 135, 6, 232, 221,\n\t\t135, 115, 146, 84, 73, 185, 18, 41, 69, 252, 208, 158, 99,\n\t\t26, 96, 213, 67, 99, 89, 245, 111, 32, 103, 95, 207, 251,\n\t\t177, 149, 42, 98, 174, 22, 200, 251, 154, 43, 1, 172, 172,\n\t\t45, 147, 70, 167, 135, 169, 188, 45, 4, 127, 131, 74, 127,\n\t\t48, 60, 182, 245, 224, 141, 100, 103, 109, 150, 252, 146,\n\t\t208, 35, 218, 145, 203, 202, 217, 107, 183, 30, 219, 189,\n\t\t131, 60, 32, 144, 215, 29, 186, 247, 241, 43, 200, 79, 168,\n\t\t115, 141, 250, 188, 186, 126, 123, 117, 190, 125, 43, 33,\n\t\t183, 157, 112, 148, 211, 188, 15, 189, 0, 182, 231, 11, 160,\n\t\t113, 83, 62, 103, 217, 235, 49, 94, 139, 109, 208, 75, 92,\n\t\t102, 225, 159, 122, 161, 124, 165, 177, 247, 154, 3, 7, 86,\n\t\t7, 211, 57, 114, 187, 225, 89, 43, 87, 253, 245, 95, 95, 181,\n\t\t103, 113, 69, 188, 236, 2, 119, 204, 111, 241, 152, 247, 104,\n\t\t163, 34, 21, 105, 177, 193, 28, 93, 22, 252, 17, 107, 177,\n\t\t209, 139, 87, 63, 113, 197, 211, 187, 246, 85, 39, 53, 163,\n\t\t57, 60, 176, 237, 225, 187, 22, 31, 190, 139, 60, 247, 240,\n\t\t209, 29, 183, 79, 251, 83, 135, 178, 219, 119, 238, 218, 210,\n\t\t206, 175, 255, 143, 179, 91, 54, 63, 190, 60, 182, 3, 206,\n\t\t114, 238, 161, 48, 149, 67, 143, 34, 86, 187, 71, 69, 129,\n\t\t255, 88, 94, 41, 249, 29, 243, 31, 164, 18, 242, 165, 228,\n\t\t236, 234, 217, 23, 62, 112, 246, 100, 54, 139, 95, 217, 213,\n\t\t236, 250, 55, 201, 217, 179, 60, 137, 250, 108, 246, 236,\n\t\t217, 213, 119, 193, 231, 106, 118, 245, 36, 249, 0, 204, 220,\n\t\t136, 161, 253, 115, 56, 206, 27, 65, 70, 110, 198, 216, 147,\n\t\t17, 94, 58, 96, 231, 18, 47, 56, 135, 233, 70, 40, 76, 198,\n\t\t89, 123, 108, 131, 133, 16, 174, 45, 32, 227, 229, 243, 100,\n\t\t212, 195, 45, 162, 18, 88, 101, 99, 130, 164, 222, 168, 23,\n\t\t247, 226, 251, 78, 217, 7, 136, 188, 244, 209, 130, 170, 20,\n\t\t155, 131, 193, 212, 252, 78, 205, 196, 54, 69, 136, 253, 198,\n\t\t188, 174, 85, 212, 187, 8, 21, 162, 162, 161, 77, 77, 107,\n\t\t70, 81, 106, 134, 102, 216, 148, 94, 236, 189, 151, 2, 250,\n\t\t147, 171, 53, 129, 104, 239, 22, 122, 133, 238, 92, 105, 10,\n\t\t211, 226, 44, 171, 140, 129, 150, 235, 63, 4, 144, 169, 254,\n\t\t132, 34, 168, 19, 95, 65, 190, 91, 192, 1, 139, 179, 90, 20,\n\t\t105, 179, 13, 173, 217, 180, 82, 23, 143, 143, 233, 169, 152,\n\t\t92, 70, 176, 170, 248, 121, 90, 180, 139, 41, 210, 250, 156,\n\t\t189, 154, 255, 183, 131, 14, 131, 55, 79, 87, 193, 9, 57,\n\t\t153, 19, 6, 44, 79, 194, 106, 208, 150, 97, 62, 188, 58, 1,\n\t\t11, 96, 146, 59, 9, 2, 214, 70, 74, 79, 155, 132, 114, 8,\n\t\t242, 45, 143, 245, 45, 96, 5, 153, 117, 96, 89, 7, 38, 218,\n\t\t12, 151, 99, 252, 57, 204, 13, 107, 50, 107, 79, 81, 121,\n\t\t138, 118, 228, 218, 148, 208, 65, 210, 126, 30, 198, 217,\n\t\t174, 118, 248, 247, 20, 173, 181, 167, 72, 115, 74, 234, 52,\n\t\t113, 138, 192, 23, 204, 111, 182, 218, 3, 238, 110, 168, 181,\n\t\t49, 173, 112, 192, 179, 38, 6, 200, 196, 140, 112, 191, 207,\n\t\t255, 7, 173, 106, 115, 51, 24, 120, 237, 38, 22, 69, 110,\n\t\t245, 177, 28, 84, 181, 143, 191, 97, 118, 19, 127, 192, 23,\n\t\t188, 64, 195, 181, 250, 157, 86, 27, 231, 192, 7, 102, 42,\n\t\t14, 248, 175, 126, 50, 9, 155, 225, 188, 11, 41, 46, 201,\n\t\t63, 231, 193, 110, 71, 29, 238, 59, 16, 198, 132, 120, 181,\n\t\t31, 253, 174, 13, 146, 92, 94, 116, 181, 86, 199, 49, 216,\n\t\t152, 244, 91, 197, 204, 159, 31, 191, 9, 255, 78, 28, 21,\n\t\t3, 62, 202, 198, 15, 248, 21, 81, 140, 68, 241, 13, 252, 243,\n\t\t93, 115, 228, 255, 242, 199, 105, 128, 40, 255, 95, 186, 41,\n\t\t249, 30, 51, 245, 240, 79, 20, 67, 72, 172, 44, 242, 25, 231,\n\t\t255, 105, 194, 73, 132, 203, 111, 220, 76, 47, 236, 77, 16,\n\t\t233, 143, 63, 12, 254, 205, 97, 36, 23, 122, 36, 24, 19, 232,\n\t\t84, 47, 157, 205, 100, 122, 211, 162, 34, 123, 182, 32, 195,\n\t\t137, 22, 54, 222, 128, 139, 37, 71, 138, 0, 212, 138, 162,\n\t\t135, 161, 178, 89, 69, 43, 92, 180, 130, 21, 148, 38, 194,\n\t\t104, 102, 38, 10, 39, 74, 193, 87, 197, 190, 32, 244, 197,\n\t\t228, 243, 209, 173, 135, 248, 9, 240, 156, 145, 228, 76, 5,\n\t\t116, 30, 208, 141, 153, 231, 207, 31, 151, 140, 151, 163,\n\t\t219, 128, 147, 59, 243, 183, 194, 115, 164, 137, 176, 49,\n\t\t125, 212, 77, 78, 222, 189, 98, 60, 99, 227, 75, 84, 200,\n\t\t133, 173, 198, 7, 160, 100, 60, 136, 202, 167, 47, 28, 46,\n\t\t225, 216, 150, 199, 231, 132, 169, 131, 148, 38, 43, 99, 223,\n\t\t59, 180, 85, 148, 192, 218, 71, 106, 13, 153, 146, 162, 46,\n\t\t73, 90, 73, 144, 37, 199, 23, 214, 255, 125, 143, 40, 102,\n\t\t159, 133, 119, 150, 191, 139, 0, 231, 58, 130, 128, 169, 107,\n\t\t24, 23, 36, 156, 220, 88, 32, 62, 11, 239, 61, 177, 95, 114,\n\t\t85, 105, 127, 62, 142, 243, 251, 37, 213, 45, 249, 41, 225,\n\t\t220, 63, 159, 251, 46, 249, 127, 200, 47, 167, 84, 176, 177,\n\t\t39, 184, 53, 130, 206, 52, 128, 150, 96, 162, 141, 134, 210,\n\t\t16, 187, 175, 188, 193, 230, 132, 118, 155, 204, 7, 252, 72,\n\t\t219, 190, 179, 56, 176, 213, 70, 205, 250, 120, 59, 223, 9,\n\t\t3, 242, 168, 44, 229, 30, 251, 232, 99, 155, 110, 88, 234,\n\t\t207, 171, 0, 45, 44, 247, 128, 173, 144, 107, 237, 65, 241,\n\t\t78, 91, 181, 106, 141, 70, 177, 115, 101, 24, 252, 148, 166,\n\t\t118, 22, 79, 188, 234, 85, 39, 150, 110, 216, 148, 145, 100,\n\t\t33, 159, 174, 244, 109, 133, 243, 16, 126, 158, 238, 1, 89,\n\t\t124, 71, 234, 229, 169, 39, 199, 181, 251, 216, 0, 64, 45,\n\t\t39, 46, 229, 41, 43, 104, 92, 64, 191, 12, 199, 224, 158,\n\t\t71, 173, 243, 121, 60, 2, 127, 78, 192, 1, 129, 81, 183, 199,\n\t\t75, 4, 89, 2, 39, 46, 98, 33, 79, 21, 227, 249, 164, 156,\n\t\t135, 16, 118, 9, 243, 40, 79, 49, 30, 202, 231, 35, 186, 250,\n\t\t99, 74, 66, 180, 60, 233, 208, 251, 217, 251, 13, 227, 254,\n\t\t159, 245, 36, 0, 76, 238, 83, 215, 235, 198, 224, 72, 103,\n\t\t231, 34, 222, 247, 254, 242, 193, 101, 166, 51, 79, 176, 109,\n\t\t227, 198, 130, 40, 22, 110, 84, 116, 67, 23, 60, 75, 135,\n\t\t5, 125, 77, 146, 244, 230, 66, 249, 214, 203, 12, 125, 245,\n\t\t214, 45, 174, 168, 233, 31, 15, 44, 166, 49, 205, 122, 159,\n\t\t164, 202, 34, 150, 255, 32, 107, 157, 193, 203, 62, 40, 190,\n\t\t149, 144, 183, 138, 31, 124, 217, 160, 163, 131, 5, 49, 219,\n\t\t185, 241, 237, 230, 35, 84, 188, 197, 220, 113, 195, 194,\n\t\t142, 251, 202, 178, 174, 73, 133, 51, 203, 59, 239, 206, 92,\n\t\t45, 168, 150, 18, 104, 185, 178, 162, 42, 118, 241, 105, 74,\n\t\t159, 46, 218, 178, 194, 140, 66, 164, 5, 134, 39, 94, 157,\n\t\t185, 103, 231, 150, 51, 5, 73, 211, 229, 112, 245, 138, 217,\n\t\t163, 79, 249, 183, 136, 244, 17, 101, 237, 190, 237, 237,\n\t\t89, 48, 84, 126, 209, 212, 120, 209, 145, 170, 40, 171, 146,\n\t\t198, 235, 132, 39, 58, 244, 89, 206, 191, 86, 69, 134, 207,\n\t\t34, 141, 47, 80, 147, 178, 102, 226, 67, 30, 13, 70, 56, 236,\n\t\t2, 166, 237, 128, 236, 240, 243, 150, 76, 118, 156, 57, 117,\n\t\t246, 241, 171, 175, 218, 186, 210, 188, 235, 224, 193, 81,\n\t\t191, 73, 26, 189, 116, 255, 193, 179, 78, 54, 54, 47, 127,\n\t\t234, 234, 83, 79, 110, 91, 105, 29, 188, 231, 96, 189, 122,\n\t\t239, 160, 93, 156, 58, 113, 113, 222, 8, 86, 53, 194, 58,\n\t\t16, 17, 207, 44, 72, 202, 130, 160, 53, 250, 82, 179, 159,\n\t\t245, 7, 181, 176, 186, 49, 138, 26, 114, 24, 221, 30, 181,\n\t\t123, 121, 146, 240, 5, 161, 251, 118, 154, 103, 169, 65, 227,\n\t\t155, 17, 64, 40, 56, 83, 102, 54, 166, 194, 76, 33, 174, 248,\n\t\t239, 172, 196, 235, 191, 22, 87, 42, 49, 57, 28, 87, 30, 44,\n\t\t16, 162, 76, 228, 155, 125, 77, 38, 155, 251, 115, 49, 154,\n\t\t157, 149, 92, 182, 38, 211, 28, 97, 238, 161, 202, 118, 66,\n\t\t130, 70, 69, 215, 41, 51, 7, 229, 169, 217, 160, 122, 232,\n\t\t194, 182, 149, 239, 87, 63, 54, 65, 188, 252, 84, 61, 76,\n\t\t111, 218, 76, 233, 12, 21, 179, 98, 198, 47, 195, 41, 104,\n\t\t101, 226, 26, 5, 95, 115, 185, 45, 146, 7, 140, 123, 3, 249,\n\t\t108, 170, 157, 90, 65, 141, 142, 196, 111, 81, 82, 48, 114,\n\t\t48, 4, 125, 253, 127, 88, 123, 19, 48, 73, 174, 234, 76, 52,\n\t\t238, 189, 17, 247, 198, 190, 47, 185, 175, 149, 153, 181,\n\t\t111, 89, 153, 89, 221, 93, 93, 85, 189, 74, 116, 107, 105,\n\t\t181, 182, 238, 150, 212, 106, 45, 173, 5, 45, 104, 99, 95,\n\t\t212, 18, 2, 75, 24, 4, 102, 25, 27, 47, 66, 108, 54, 139,\n\t\t237, 193, 192, 227, 67, 172, 178, 193, 254, 48, 99, 48, 230,\n\t\t27, 192, 230, 97, 91, 198, 99, 108, 143, 25, 27, 108, 108,\n\t\t99, 143, 169, 126, 231, 220, 200, 106, 53, 50, 243, 198, 111,\n\t\t190, 215, 93, 153, 25, 25, 25, 17, 153, 17, 113, 239, 57,\n\t\t255, 185, 247, 156, 255, 7, 111, 132, 3, 51, 128, 146, 87,\n\t\t198, 39, 12, 31, 14, 250, 145, 44, 156, 234, 117, 163, 214,\n\t\t57, 44, 141, 215, 100, 134, 150, 28, 102, 14, 122, 211, 203,\n\t\t161, 37, 7, 32, 71, 173, 254, 69, 51, 0, 157, 47, 221, 85,\n\t\t89, 174, 233, 4, 185, 122, 110, 233, 60, 239, 64, 96, 189,\n\t\t105, 102, 191, 202, 90, 147, 241, 158, 66, 171, 44, 196, 218,\n\t\t28, 91, 244, 44, 195, 90, 170, 244, 196, 180, 20, 95, 108,\n\t\t180, 41, 237, 93, 182, 171, 211, 24, 109, 102, 181, 128, 145,\n\t\t221, 91, 31, 125, 172, 40, 192, 7, 68, 228, 177, 3, 123, 150,\n\t\t46, 139, 44, 22, 100, 87, 206, 175, 110, 142, 239, 145, 172,\n\t\t155, 200, 99, 108, 165, 195, 250, 145, 214, 20, 205, 40, 99,\n\t\t61, 114, 249, 123, 222, 245, 238, 173, 175, 147, 225, 101,\n\t\t91, 95, 108, 94, 254, 139, 151, 189, 134, 148, 183, 254, 34,\n\t\t123, 156, 252, 210, 227, 91, 223, 127, 28, 253, 63, 242, 54,\n\t\t254, 149, 140, 241, 13, 184, 199, 17, 236, 221, 211, 58, 6,\n\t\t193, 251, 169, 225, 156, 81, 111, 68, 70, 25, 57, 240, 45,\n\t\t82, 216, 250, 117, 66, 182, 206, 166, 228, 179, 46, 113, 215,\n\t\t246, 236, 217, 250, 189, 111, 173, 125, 253, 143, 223, 249,\n\t\t235, 103, 149, 179, 138, 85, 32, 159, 40, 124, 195, 156, 52,\n\t\t91, 155, 155, 91, 95, 250, 227, 53, 201, 53, 247, 5, 178,\n\t\t9, 184, 98, 90, 185, 76, 230, 139, 229, 92, 72, 208, 6, 144,\n\t\t38, 64, 142, 235, 73, 114, 181, 188, 212, 95, 210, 245, 112,\n\t\t136, 112, 6, 178, 75, 75, 86, 110, 21, 108, 193, 34, 190,\n\t\t93, 128, 144, 230, 30, 74, 57, 213, 169, 69, 153, 227, 218,\n\t\t129, 118, 105, 82, 72, 106, 179, 51, 53, 162, 134, 97, 115,\n\t\t178, 249, 101, 186, 143, 169, 13, 205, 205, 12, 82, 169, 16,\n\t\t201, 128, 77, 89, 20, 7, 76, 141, 246, 191, 69, 179, 0, 162,\n\t\t59, 200, 20, 161, 134, 113, 205, 46, 166, 212, 211, 234, 171,\n\t\t97, 113, 58, 107, 172, 47, 45, 14, 138, 16, 5, 100, 179, 73,\n\t\t121, 199, 212, 208, 115, 236, 125, 7, 233, 156, 206, 147,\n\t\t149, 48, 240, 221, 217, 42, 227, 186, 97, 105, 186, 94, 110,\n\t\t76, 123, 166, 16, 226, 136, 18, 42, 20, 174, 215, 171, 160,\n\t\t189, 116, 149, 57, 229, 82, 229, 42, 229, 102, 229, 239, 193,\n\t\t180, 7, 164, 77, 22, 165, 46, 229, 175, 147, 79, 64, 127,\n\t\t249, 18, 249, 6, 249, 11, 204, 162, 145, 154, 146, 53, 178,\n\t\t129, 73, 49, 169, 11, 191, 98, 8, 6, 24, 83, 47, 100, 243,\n\t\t1, 227, 12, 120, 101, 36, 5, 29, 187, 25, 156, 62, 114, 146,\n\t\t99, 164, 22, 115, 143, 72, 94, 85, 154, 171, 53, 214, 201,\n\t\t60, 69, 189, 71, 172, 126, 92, 150, 51, 43, 50, 189, 99, 216,\n\t\t31, 213, 104, 206, 194, 149, 19, 118, 99, 82, 14, 138, 216,\n\t\t228, 84, 12, 242, 50, 143, 86, 134, 75, 195, 1, 206, 130,\n\t\t140, 198, 130, 23, 3, 252, 160, 221, 27, 195, 149, 97, 31,\n\t\t98, 201, 197, 88, 18, 225, 97, 2, 68, 63, 147, 245, 51, 18,\n\t\t205, 64, 240, 152, 9, 228, 188, 5, 96, 150, 197, 9, 110, 158,\n\t\t142, 11, 47, 179, 115, 196, 14, 109, 180, 222, 217, 144, 229,\n\t\t186, 24, 57, 10, 146, 116, 114, 25, 70, 178, 233, 152, 126,\n\t\t167, 179, 60, 90, 206, 63, 30, 73, 198, 69, 33, 39, 92, 218,\n\t\t227, 9, 153, 33, 238, 43, 242, 143, 33, 14, 150, 226, 8, 189,\n\t\t252, 112, 227, 177, 21, 217, 16, 22, 225, 10, 225, 110, 82,\n\t\t145, 67, 206, 171, 96, 50, 46, 150, 115, 225, 65, 229, 215,\n\t\t213, 201, 246, 106, 153, 195, 177, 50, 64, 239, 130, 67, 124,\n\t\t88, 43, 43, 53, 114, 68, 218, 71, 122, 2, 212, 193, 204, 167,\n\t\t125, 90, 168, 209, 217, 147, 181, 33, 178, 231, 243, 54, 31,\n\t\t229, 148, 121, 82, 67, 118, 185, 135, 66, 65, 82, 188, 33,\n\t\t147, 85, 207, 219, 215, 126, 183, 44, 159, 236, 136, 80, 227,\n\t\t16, 255, 50, 44, 46, 207, 189, 190, 81, 8, 52, 27, 241, 1,\n\t\t171, 130, 35, 15, 99, 251, 110, 195, 137, 130, 206, 60, 108,\n\t\t158, 75, 107, 80, 139, 65, 0, 45, 114, 240, 64, 53, 125, 163,\n\t\t97, 71, 161, 96, 143, 97, 185, 142, 161, 57, 26, 132, 219,\n\t\t92, 124, 147, 153, 182, 42, 38, 227, 133, 194, 228, 100, 182,\n\t\t144, 68, 5, 85, 181, 0, 81, 165, 12, 39, 26, 28, 199, 243,\n\t\t41, 242, 56, 4, 26, 179, 116, 91, 106, 86, 120, 38, 177, 245,\n\t\t176, 98, 219, 229, 12, 208, 81, 162, 19, 198, 212, 54, 52,\n\t\t225, 0, 126, 25, 132, 156, 154, 154, 149, 109, 219, 201, 76,\n\t\t216, 220, 116, 17, 232, 217, 186, 148, 125, 161, 82, 53, 131,\n\t\t16, 223, 115, 28, 129, 252, 109, 201, 100, 18, 64, 96, 193,\n\t\t184, 235, 248, 26, 224, 21, 219, 49, 28, 11, 249, 20, 85,\n\t\t13, 41, 201, 200, 214, 95, 171, 154, 111, 123, 28, 98, 84,\n\t\t22, 36, 186, 225, 216, 218, 146, 106, 232, 54, 2, 44, 6, 155,\n\t\t20, 67, 66, 53, 175, 160, 210, 192, 224, 1, 231, 15, 8, 45,\n\t\t224, 150, 71, 213, 130, 7, 129, 111, 40, 136, 105, 90, 6,\n\t\t94, 8, 27, 224, 13, 33, 16, 31, 115, 112, 107, 81, 169, 11,\n\t\t232, 176, 174, 5, 141, 43, 26, 129, 214, 72, 84, 222, 45,\n\t\t69, 46, 114, 150, 66, 124, 78, 116, 70, 197, 24, 116, 234,\n\t\t158, 199, 147, 112, 82, 88, 68, 99, 187, 93, 141, 12, 156,\n\t\t144, 115, 227, 150, 245, 76, 227, 60, 122, 81, 100, 107, 217,\n\t\t27, 67, 199, 52, 248, 65, 157, 104, 238, 26, 196, 71, 150,\n\t\t152, 122, 61, 7, 140, 233, 184, 174, 227, 46, 193, 249, 170,\n\t\t38, 92, 99, 67, 197, 97, 6, 184, 152, 16, 212, 207, 24, 112,\n\t\t239, 116, 75, 51, 176, 38, 7, 128, 36, 215, 225, 110, 26,\n\t\t84, 215, 156, 132, 155, 132, 153, 156, 23, 52, 199, 14, 203,\n\t\t150, 110, 70, 51, 82, 191, 82, 131, 253, 12, 145, 56, 12,\n\t\t107, 189, 224, 15, 252, 63, 21, 193, 74, 24, 218, 142, 86,\n\t\t120, 134, 171, 166, 9, 7, 128, 31, 127, 154, 153, 157, 100,\n\t\t210, 155, 83, 227, 88, 157, 19, 229, 36, 153, 16, 162, 20,\n\t\t150, 219, 166, 139, 201, 78, 122, 104, 249, 150, 36, 184,\n\t\t172, 210, 24, 126, 57, 206, 228, 201, 66, 57, 60, 122, 168,\n\t\t234, 117, 26, 86, 137, 41, 192, 172, 217, 65, 172, 3, 16,\n\t\t53, 98, 65, 104, 93, 71, 193, 73, 147, 50, 131, 83, 131, 193,\n\t\t23, 171, 220, 214, 99, 131, 210, 42, 34, 79, 219, 55, 35,\n\t\t93, 168, 204, 53, 219, 229, 144, 44, 241, 18, 54, 49, 27,\n\t\t46, 56, 163, 90, 34, 132, 7, 231, 79, 180, 162, 70, 28, 98,\n\t\t88, 114, 104, 162, 196, 153, 70, 103, 60, 228, 158, 131, 211,\n\t\t132, 179, 127, 191, 89, 40, 246, 57, 180, 244, 69, 119, 6,\n\t\t98, 138, 249, 153, 96, 142, 11, 194, 251, 197, 130, 137, 215,\n\t\t204, 225, 22, 74, 102, 130, 73, 173, 22, 67, 44, 178, 247,\n\t\t80, 212, 148, 235, 53, 149, 55, 93, 110, 120, 158, 193, 221,\n\t\t38, 87, 107, 56, 12, 4, 183, 29, 110, 24, 15, 139, 78, 10,\n\t\t191, 19, 135, 45, 132, 101, 56, 186, 250, 230, 106, 108, 19,\n\t\t0, 194, 211, 116, 102, 71, 168, 27, 222, 226, 166, 175, 11,\n\t\t207, 223, 44, 232, 33, 245, 214, 220, 25, 58, 141, 245, 192,\n\t\t118, 252, 79, 6, 150, 185, 132, 223, 129, 109, 77, 29, 30,\n\t\t208, 6, 177, 42, 250, 236, 211, 202, 63, 145, 207, 41, 142,\n\t\t242, 251, 202, 159, 43, 223, 3, 255, 226, 145, 241, 32, 27,\n\t\t116, 212, 101, 6, 238, 56, 55, 137, 3, 153, 218, 133, 115,\n\t\t220, 98, 204, 232, 133, 161, 40, 126, 130, 150, 112, 108,\n\t\t14, 183, 173, 133, 224, 121, 162, 220, 179, 239, 199, 27,\n\t\t14, 123, 139, 237, 174, 216, 158, 171, 230, 233, 40, 6, 179,\n\t\t128, 176, 70, 226, 214, 156, 41, 117, 184, 114, 46, 8, 204,\n\t\t98, 9, 113, 177, 152, 200, 165, 45, 156, 78, 200, 167, 184,\n\t\t49, 205, 46, 95, 146, 16, 21, 237, 209, 184, 212, 32, 175,\n\t\t159, 238, 47, 143, 7, 149, 71, 49, 31, 3, 185, 156, 8, 33,\n\t\t193, 244, 164, 149, 158, 136, 33, 14, 199, 57, 231, 229, 175,\n\t\t186, 90, 167, 20, 84, 3, 238, 213, 111, 255, 229, 236, 99,\n\t\t153, 7, 118, 2, 101, 110, 28, 110, 11, 25, 197, 225, 176,\n\t\t22, 241, 145, 194, 66, 152, 108, 44, 232, 163, 209, 34, 4,\n\t\t129, 2, 54, 147, 97, 137, 12, 133, 176, 126, 143, 97, 211,\n\t\t135, 118, 163, 65, 135, 135, 214, 47, 92, 157, 185, 208, 59,\n\t\t109, 161, 19, 164, 151, 144, 70, 13, 110, 175, 170, 169, 170,\n\t\t73, 53, 215, 81, 133, 99, 145, 116, 102, 110, 58, 133, 78,\n\t\t169, 25, 54, 147, 2, 170, 146, 150, 18, 254, 171, 26, 209,\n\t\t84, 195, 132, 91, 15, 61, 200, 55, 44, 56, 62, 180, 183, 208,\n\t\t132, 251, 255, 71, 15, 60, 176, 31, 80, 142, 179, 27, 218,\n\t\t61, 219, 97, 238, 63, 72, 73, 74, 212, 202, 142, 226, 17,\n\t\t129, 99, 110, 71, 138, 14, 49, 29, 98, 63, 106, 65, 115, 228,\n\t\t190, 64, 185, 12, 20, 129, 85, 161, 143, 162, 135, 229, 106,\n\t\t72, 51, 129, 245, 22, 96, 6, 180, 77, 76, 107, 213, 117, 102,\n\t\t81, 13, 203, 36, 193, 134, 66, 23, 54, 52, 79, 10, 105, 160,\n\t\t16, 176, 231, 194, 110, 196, 208, 152, 206, 154, 121, 12,\n\t\t134, 33, 32, 17, 170, 14, 54, 69, 96, 61, 181, 22, 49, 212,\n\t\t54, 178, 175, 167, 186, 16, 58, 61, 66, 109, 170, 38, 240,\n\t\t251, 169, 206, 99, 221, 195, 130, 107, 138, 178, 196, 38,\n\t\t19, 142, 91, 229, 186, 37, 12, 97, 170, 188, 17, 188, 22,\n\t\t115, 73, 193, 44, 44, 109, 130, 203, 163, 100, 109, 74, 245,\n\t\t72, 46, 153, 68, 212, 231, 242, 177, 34, 106, 254, 9, 236,\n\t\t32, 88, 207, 34, 230, 89, 79, 234, 99, 159, 79, 240, 241,\n\t\t205, 203, 218, 133, 204, 162, 96, 90, 178, 168, 115, 164,\n\t\t254, 28, 246, 142, 225, 47, 204, 45, 84, 184, 150, 6, 139,\n\t\t173, 183, 223, 42, 99, 128, 156, 179, 192, 151, 145, 22, 132,\n\t\t0, 1, 210, 211, 3, 8, 8, 160, 69, 145, 229, 110, 27, 17, 65,\n\t\t78, 237, 55, 236, 110, 15, 52, 32, 63, 165, 6, 112, 11, 124,\n\t\t183, 204, 29, 26, 96, 76, 168, 45, 157, 191, 129, 140, 188,\n\t\t176, 253, 183, 56, 196, 84, 56, 80, 177, 34, 193, 5, 66, 55,\n\t\t153, 215, 5, 205, 59, 207, 208, 136, 229, 231, 228, 147, 52,\n\t\t170, 133, 229, 30, 221, 122, 189, 214, 171, 84, 166, 24, 185,\n\t\t132, 131, 237, 213, 193, 148, 89, 6, 103, 106, 152, 132, 126,\n\t\t224, 131, 215, 226, 12, 111, 43, 222, 133, 187, 177, 213,\n\t\t128, 75, 18, 104, 61, 25, 124, 10, 219, 160, 195, 241, 152,\n\t\t166, 131, 77, 231, 97, 52, 145, 128, 223, 138, 225, 67, 162,\n\t\t107, 247, 104, 210, 153, 37, 170, 26, 36, 19, 17, 121, 58,\n\t\t172, 199, 108, 235, 113, 54, 89, 46, 119, 85, 114, 63, 155,\n\t\t170, 108, 221, 1, 198, 219, 88, 58, 120, 218, 116, 225, 158,\n\t\t154, 112, 1, 169, 84, 108, 177, 197, 78, 139, 112, 164, 204,\n\t\t179, 118, 10, 91, 215, 208, 235, 25, 184, 1, 115, 189, 211,\n\t\t7, 151, 12, 67, 195, 139, 13, 166, 78, 171, 87, 102, 56, 214,\n\t\t63, 241, 153, 74, 93, 227, 152, 247, 128, 122, 103, 228, 236,\n\t\t15, 206, 126, 133, 252, 54, 92, 227, 137, 156, 243, 68, 42,\n\t\t79, 0, 52, 145, 129, 12, 178, 109, 72, 49, 241, 117, 201,\n\t\t108, 82, 83, 201, 59, 50, 215, 178, 47, 221, 89, 118, 26,\n\t\t237, 70, 189, 216, 173, 36, 208, 165, 156, 23, 180, 138, 211,\n\t\t235, 19, 77, 238, 27, 166, 81, 187, 226, 194, 75, 72, 109,\n\t\t242, 250, 185, 249, 163, 97, 247, 212, 33, 125, 52, 215, 230,\n\t\t106, 221, 170, 238, 41, 250, 23, 175, 221, 58, 93, 220, 185,\n\t\t52, 109, 219, 96, 135, 155, 107, 82, 15, 227, 105, 242, 151,\n\t\t240, 221, 67, 101, 15, 226, 114, 62, 78, 9, 132, 155, 39,\n\t\t209, 218, 224, 217, 82, 125, 73, 207, 12, 182, 68, 140, 83,\n\t\t130, 187, 99, 74, 187, 193, 202, 179, 211, 230, 49, 177, 222,\n\t\t237, 184, 73, 189, 62, 83, 167, 213, 135, 205, 56, 173, 148,\n\t\t225, 102, 45, 108, 92, 52, 156, 109, 47, 83, 219, 110, 89,\n\t\t118, 22, 8, 177, 92, 58, 189, 99, 42, 170, 71, 213, 201, 239,\n\t\t222, 47, 106, 51, 245, 58, 56, 141, 244, 122, 64, 10, 187,\n\t\t237, 58, 182, 196, 186, 189, 46, 158, 183, 56, 188, 168, 180,\n\t\t172, 137, 192, 178, 109, 171, 149, 209, 229, 214, 236, 234,\n\t\t43, 39, 171, 176, 215, 212, 142, 31, 211, 99, 28, 40, 7, 16,\n\t\t255, 63, 91, 167, 59, 88, 17, 45, 156, 225, 72, 182, 21, 200,\n\t\t183, 131, 45, 57, 150, 38, 203, 171, 207, 173, 141, 242, 4,\n\t\t194, 237, 28, 193, 126, 180, 12, 208, 121, 156, 32, 245, 246,\n\t\t55, 156, 190, 249, 241, 211, 255, 147, 24, 228, 62, 166, 74,\n\t\t66, 94, 94, 211, 45, 211, 151, 108, 56, 226, 152, 10, 190,\n\t\t31, 86, 232, 224, 227, 146, 116, 97, 102, 109, 109, 230, 239,\n\t\t241, 233, 165, 43, 199, 251, 253, 227, 43, 71, 238, 189, 151,\n\t\t220, 115, 250, 13, 167, 79, 191, 225, 167, 213, 119, 155,\n\t\t36, 65, 34, 161, 87, 163, 1, 213, 205, 26, 195, 124, 21, 126,\n\t\t175, 32, 62, 24, 130, 168, 216, 130, 134, 44, 244, 20, 44,\n\t\t148, 74, 86, 198, 71, 129, 167, 173, 155, 87, 142, 221, 126,\n\t\t108, 229, 222, 119, 220, 139, 109, 228, 135, 103, 191, 73,\n\t\t30, 34, 239, 146, 51, 154, 136, 136, 101, 116, 76, 229, 140,\n\t\t32, 222, 35, 79, 202, 249, 38, 169, 88, 68, 17, 69, 114, 238,\n\t\t211, 33, 205, 249, 100, 251, 120, 222, 208, 33, 201, 171,\n\t\t180, 106, 50, 157, 5, 52, 208, 75, 65, 209, 66, 83, 23, 60,\n\t\t165, 3, 70, 225, 5, 167, 235, 52, 162, 84, 47, 227, 106, 153,\n\t\t100, 194, 197, 119, 88, 72, 215, 226, 130, 170, 135, 222,\n\t\t172, 167, 3, 220, 160, 96, 33, 87, 250, 93, 143, 181, 137,\n\t\t208, 71, 135, 110, 178, 72, 217, 70, 65, 181, 181, 68, 55,\n\t\t193, 164, 106, 66, 57, 171, 99, 251, 38, 209, 229, 119, 190,\n\t\t78, 39, 74, 166, 100, 208, 190, 254, 154, 124, 30, 226, 250,\n\t\t155, 148, 251, 149, 167, 148, 47, 41, 127, 164, 252, 153,\n\t\t242, 55, 202, 191, 42, 63, 2, 123, 217, 32, 203, 96, 69, 142,\n\t\t144, 19, 228, 86, 56, 187, 247, 145, 223, 36, 95, 36, 127,\n\t\t64, 190, 45, 249, 255, 184, 104, 226, 208, 41, 230, 99, 173,\n\t\t147, 60, 88, 206, 147, 202, 198, 39, 183, 34, 229, 90, 214,\n\t\t53, 89, 52, 159, 201, 105, 81, 153, 142, 141, 25, 165, 140,\n\t\t228, 242, 45, 195, 116, 76, 15, 139, 116, 140, 40, 80, 51,\n\t\t76, 147, 229, 161, 44, 241, 233, 201, 244, 235, 108, 40, 115,\n\t\t178, 48, 171, 43, 47, 210, 69, 255, 136, 178, 17, 88, 9, 132,\n\t\t199, 67, 194, 19, 1, 144, 158, 143, 19, 217, 82, 153, 223,\n\t\t237, 210, 4, 171, 140, 48, 154, 192, 1, 94, 36, 42, 73, 19,\n\t\t8, 171, 176, 248, 220, 165, 189, 184, 149, 7, 248, 152, 222,\n\t\t214, 3, 139, 134, 67, 100, 169, 232, 47, 230, 233, 240, 242,\n\t\t184, 16, 54, 44, 141, 250, 240, 110, 180, 6, 191, 166, 13,\n\t\t251, 173, 145, 129, 4, 253, 16, 26, 197, 227, 122, 164, 108,\n\t\t196, 177, 158, 9, 153, 178, 211, 172, 191, 178, 156, 236,\n\t\t34, 112, 196, 17, 114, 94, 201, 140, 7, 76, 25, 203, 144,\n\t\t62, 37, 67, 213, 26, 38, 185, 4, 68, 87, 32, 233, 17, 196,\n\t\t52, 203, 75, 152, 248, 135, 161, 12, 108, 16, 215, 88, 60,\n\t\t102, 110, 88, 174, 201, 45, 225, 148, 241, 218, 16, 228, 210,\n\t\t167, 3, 128, 20, 99, 38, 97, 158, 184, 84, 230, 179, 203,\n\t\t202, 167, 10, 77, 80, 246, 22, 191, 9, 126, 147, 134, 35,\n\t\t125, 235, 12, 130, 196, 52, 225, 221, 44, 111, 106, 20, 127,\n\t\t117, 191, 70, 134, 96, 72, 76, 157, 111, 157, 144, 86, 23,\n\t\t5, 243, 98, 102, 206, 151, 41, 0, 112, 65, 138, 174, 165,\n\t\t11, 57, 56, 74, 105, 131, 25, 102, 104, 165, 154, 85, 237,\n\t\t220, 90, 19, 129, 231, 170, 17, 197, 100, 3, 29, 224, 88,\n\t\t128, 176, 64, 108, 253, 101, 101, 197, 80, 67, 48, 169, 4,\n\t\t105, 174, 113, 134, 15, 192, 3, 187, 195, 85, 227, 105, 240,\n\t\t214, 96, 168, 45, 209, 242, 141, 192, 27, 242, 154, 95, 40,\n\t\t145, 32, 104, 39, 115, 67, 17, 206, 106, 84, 136, 134, 67,\n\t\t13, 223, 164, 88, 249, 171, 11, 173, 114, 176, 190, 207, 71,\n\t\t46, 33, 148, 142, 79, 68, 136, 89, 69, 229, 80, 115, 145,\n\t\t126, 76, 35, 127, 6, 13, 61, 173, 2, 160, 208, 120, 148, 48,\n\t\t102, 26, 94, 196, 92, 141, 151, 93, 155, 250, 166, 79, 153,\n\t\t165, 9, 114, 26, 220, 56, 64, 146, 214, 47, 125, 148, 10,\n\t\t50, 237, 17, 48, 158, 83, 187, 245, 127, 214, 13, 164, 150,\n\t\t0, 124, 235, 169, 220, 135, 24, 22, 67, 45, 136, 117, 172,\n\t\t76, 164, 59, 8, 7, 87, 228, 34, 10, 130, 47, 14, 236, 108,\n\t\t194, 77, 200, 229, 26, 17, 14, 1, 124, 12, 152, 130, 166,\n\t\t28, 188, 59, 78, 183, 85, 196, 247, 181, 138, 13, 125, 191,\n\t\t29, 25, 159, 81, 83, 36, 123, 11, 84, 154, 70, 167, 98, 141,\n\t\t88, 72, 159, 128, 209, 8, 115, 234, 58, 229, 146, 57, 174,\n\t\t138, 62, 71, 4, 78, 128, 129, 25, 19, 196, 177, 192, 27, 89,\n\t\t19, 4, 201, 32, 184, 27, 54, 125, 78, 63, 15, 39, 166, 226,\n\t\t92, 12, 64, 37, 252, 79, 88, 7, 62, 156, 78, 154, 112, 36,\n\t\t223, 244, 30, 203, 86, 105, 101, 225, 42, 136, 39, 58, 30,\n\t\t64, 26, 212, 48, 116, 121, 163, 147, 137, 102, 41, 193, 16,\n\t\t77, 117, 77, 136, 92, 44, 131, 138, 50, 132, 127, 166, 77,\n\t\t61, 79, 77, 130, 185, 20, 7, 228, 17, 14, 109, 120, 70, 96,\n\t\t1, 12, 84, 81, 110, 41, 211, 188, 32, 20, 147, 175, 88, 76,\n\t\t44, 234, 154, 220, 118, 9, 197, 88, 226, 213, 122, 43, 33,\n\t\t28, 35, 85, 203, 99, 232, 126, 177, 254, 235, 164, 191, 98,\n\t\t199, 169, 202, 53, 131, 122, 7, 29, 246, 204, 68, 49, 86,\n\t\t93, 193, 75, 213, 184, 16, 87, 132, 215, 83, 75, 27, 39, 151,\n\t\t29, 215, 134, 224, 81, 214, 206, 25, 2, 76, 11, 152, 255,\n\t\t102, 199, 44, 132, 37, 195, 168, 195, 143, 5, 156, 149, 250,\n\t\t209, 20, 92, 120, 85, 104, 112, 126, 143, 82, 192, 75, 68,\n\t\t248, 86, 198, 152, 238, 130, 155, 5, 43, 20, 50, 180, 207,\n\t\t128, 231, 136, 221, 208, 144, 92, 90, 163, 186, 204, 33, 3,\n\t\t136, 25, 236, 18, 169, 27, 155, 158, 67, 252, 133, 160, 4,\n\t\t56, 149, 37, 4, 204, 46, 167, 82, 46, 203, 176, 85, 162, 59,\n\t\t62, 244, 122, 68, 167, 106, 148, 58, 208, 0, 133, 132, 117,\n\t\t154, 224, 60, 49, 121, 35, 101, 170, 110, 18, 100, 220, 19,\n\t\t156, 89, 221, 70, 164, 26, 152, 30, 64, 78, 216, 9, 206, 226,\n\t\t234, 83, 116, 1, 142, 84, 54, 219, 28, 144, 156, 81, 119,\n\t\t73, 89, 147, 244, 112, 26, 124, 57, 180, 101, 59, 207, 26,\n\t\t220, 79, 49, 190, 81, 53, 64, 157, 16, 110, 235, 196, 119,\n\t\t235, 174, 106, 81, 82, 232, 1, 208, 36, 90, 64, 13, 83, 167,\n\t\t90, 24, 16, 184, 13, 26, 210, 145, 19, 173, 172, 75, 90, 185,\n\t\t84, 79, 248, 196, 36, 65, 178, 7, 174, 195, 205, 209, 192,\n\t\t242, 215, 12, 84, 169, 132, 243, 135, 35, 155, 158, 75, 20,\n\t\t69, 61, 251, 183, 103, 63, 6, 109, 7, 231, 220, 90, 202, 186,\n\t\t228, 143, 27, 83, 55, 225, 8, 99, 52, 28, 225, 108, 188, 171,\n\t\t214, 232, 82, 46, 13, 218, 3, 75, 54, 206, 212, 69, 110, 37,\n\t\t169, 103, 138, 198, 14, 236, 73, 130, 35, 27, 235, 106, 31,\n\t\t137, 75, 112, 116, 105, 17, 71, 80, 200, 203, 142, 45, 220,\n\t\t249, 133, 255, 188, 48, 108, 223, 187, 113, 240, 30, 157,\n\t\t211, 11, 250, 251, 66, 203, 51, 48, 46, 64, 159, 109, 140,\n\t\t110, 248, 96, 255, 35, 198, 96, 116, 248, 87, 23, 102, 60,\n\t\t45, 238, 30, 156, 155, 98, 128, 126, 35, 51, 240, 120, 208,\n\t\t252, 182, 105, 146, 249, 15, 180, 234, 90, 108, 121, 54, 242,\n\t\t130, 168, 154, 102, 65, 224, 97, 248, 27, 228, 45, 67, 56,\n\t\t238, 157, 95, 184, 122, 117, 125, 235, 231, 176, 61, 233,\n\t\t16, 233, 2, 50, 182, 85, 43, 44, 146, 225, 107, 137, 186,\n\t\t254, 194, 214, 252, 212, 225, 3, 71, 226, 238, 66, 3, 112,\n\t\t157, 33, 160, 201, 65, 83, 140, 203, 67, 6, 65, 70, 70, 173,\n\t\t132, 57, 2, 162, 91, 198, 57, 92, 243, 22, 37, 70, 243, 199,\n\t\t49, 51, 3, 52, 59, 204, 213, 220, 176, 22, 37, 150, 160, 6,\n\t\t46, 66, 94, 248, 189, 32, 213, 43, 115, 17, 196, 156, 175,\n\t\t183, 78, 198, 57, 56, 176, 25, 106, 182, 253, 96, 26, 194,\n\t\t161, 86, 56, 87, 109, 221, 84, 239, 149, 171, 166, 7, 192,\n\t\t144, 7, 102, 51, 154, 170, 180, 74, 69, 164, 83, 100, 190,\n\t\t83, 244, 161, 11, 60, 185, 181, 121, 211, 27, 223, 88, 74,\n\t\t226, 94, 163, 81, 175, 20, 43, 96, 70, 76, 67, 211, 181, 48,\n\t\t105, 53, 22, 171, 38, 196, 59, 66, 135, 248, 166, 20, 207,\n\t\t252, 56, 166, 175, 40, 123, 127, 66, 69, 254, 255, 231, 223,\n\t\t122, 30, 236, 255, 252, 127, 252, 55, 255, 184, 130, 194,\n\t\t127, 244, 231, 99, 189, 219, 217, 47, 64, 172, 240, 113, 165,\n\t\t160, 204, 43, 251, 149, 107, 101, 253, 199, 139, 144, 57,\n\t\t29, 189, 25, 206, 30, 128, 163, 88, 70, 205, 244, 124, 22,\n\t\t65, 250, 248, 197, 116, 9, 92, 88, 140, 120, 18, 11, 142,\n\t\t135, 61, 88, 155, 229, 156, 255, 56, 169, 52, 194, 60, 148,\n\t\t117, 146, 118, 242, 20, 151, 158, 76, 25, 239, 97, 146, 249,\n\t\t72, 206, 51, 9, 217, 42, 243, 118, 13, 62, 82, 244, 37, 131,\n\t\t45, 160, 230, 209, 230, 218, 210, 37, 11, 61, 102, 232, 100,\n\t\t105, 215, 190, 62, 153, 96, 162, 90, 72, 202, 83, 228, 101,\n\t\t53, 74, 22, 10, 158, 165, 135, 69, 56, 231, 185, 13, 136,\n\t\t16, 183, 254, 111, 139, 205, 123, 122, 143, 146, 4, 208, 32,\n\t\t157, 47, 193, 167, 36, 40, 146, 251, 162, 74, 37, 178, 180,\n\t\t13, 60, 80, 130, 71, 153, 162, 78, 250, 57, 97, 236, 186,\n\t\t208, 61, 249, 194, 11, 133, 184, 76, 37, 117, 235, 144, 213,\n\t\t104, 21, 10, 173, 157, 189, 93, 123, 161, 255, 50, 195, 0,\n\t\t80, 67, 103, 218, 44, 235, 85, 226, 82, 229, 7, 75, 163, 253,\n\t\t131, 34, 181, 140, 98, 96, 88, 222, 226, 242, 161, 233, 201,\n\t\t87, 90, 222, 146, 101, 206, 238, 154, 237, 166, 75, 171, 251,\n\t\t7, 101, 248, 176, 16, 146, 137, 106, 175, 66, 215, 246, 80,\n\t\t146, 193, 45, 164, 51, 61, 161, 59, 169, 115, 59, 209, 175,\n\t\t123, 225, 243, 188, 235, 118, 13, 15, 190, 120, 194, 95, 89,\n\t\t9, 218, 69, 48, 226, 205, 197, 31, 227, 122, 94, 86, 20, 237,\n\t\t188, 201, 17, 108, 50, 44, 167, 110, 217, 38, 21, 223, 77,\n\t\t242, 68, 155, 5, 153, 224, 142, 163, 2, 228, 77, 231, 229,\n\t\t47, 125, 75, 152, 158, 30, 37, 154, 233, 27, 97, 186, 102,\n\t\t54, 33, 246, 214, 151, 38, 117, 106, 217, 93, 123, 182, 49,\n\t\t222, 72, 182, 9, 50, 111, 5, 22, 47, 69, 191, 96, 4, 182,\n\t\t200, 210, 233, 139, 44, 98, 91, 53, 115, 99, 167, 89, 53,\n\t\t29, 26, 110, 202, 220, 141, 63, 37, 15, 3, 78, 173, 43, 74,\n\t\t148, 228, 236, 70, 94, 206, 254, 134, 74, 196, 185, 136, 96,\n\t\t144, 43, 56, 191, 229, 242, 244, 96, 10, 46, 224, 240, 53,\n\t\t30, 139, 10, 235, 225, 61, 147, 141, 137, 94, 208, 202, 26,\n\t\t83, 228, 146, 11, 94, 212, 80, 179, 104, 16, 222, 113, 127,\n\t\t56, 140, 51, 154, 188, 238, 162, 233, 233, 133, 14, 41, 103,\n\t\t19, 233, 52, 230, 20, 156, 253, 215, 179, 255, 141, 190, 134,\n\t\t252, 34, 156, 253, 126, 229, 10, 169, 53, 147, 74, 84, 149,\n\t\t230, 140, 145, 93, 57, 240, 205, 243, 36, 254, 225, 104, 167,\n\t\t212, 6, 151, 242, 225, 168, 51, 129, 195, 229, 26, 18, 243,\n\t\t200, 120, 52, 75, 195, 4, 115, 237, 53, 68, 114, 158, 108,\n\t\t172, 57, 118, 238, 229, 172, 2, 188, 78, 134, 244, 85, 220,\n\t\t18, 71, 14, 163, 60, 130, 120, 218, 176, 61, 97, 110, 220,\n\t\t81, 206, 76, 178, 177, 135, 25, 193, 169, 38, 150, 188, 178,\n\t\t159, 255, 45, 190, 74, 133, 79, 43, 181, 50, 181, 13, 190,\n\t\t103, 235, 93, 154, 250, 38, 48, 217, 183, 1, 92, 161, 15,\n\t\t129, 135, 190, 135, 244, 215, 193, 42, 125, 122, 167, 166,\n\t\t114, 122, 205, 181, 146, 22, 110, 137, 51, 109, 177, 160,\n\t\t178, 29, 7, 190, 44, 24, 77, 79, 107, 2, 128, 201, 126, 112,\n\t\t23, 166, 115, 95, 69, 104, 9, 125, 236, 245, 122, 76, 117,\n\t\t20, 226, 216, 58, 59, 111, 92, 138, 245, 216, 26, 86, 248,\n\t\t242, 163, 135, 137, 246, 175, 16, 73, 176, 173, 127, 2, 15,\n\t\t83, 222, 65, 174, 0, 7, 189, 116, 51, 215, 25, 169, 215, 9,\n\t\t249, 105, 202, 118, 3, 160, 50, 25, 81, 47, 9, 242, 154, 160,\n\t\t237, 250, 197, 162, 210, 1, 251, 119, 84, 185, 81, 121, 9,\n\t\t50, 20, 96, 246, 197, 130, 172, 51, 29, 39, 100, 212, 115,\n\t\t233, 186, 246, 121, 153, 25, 98, 188, 220, 221, 78, 217, 24,\n\t\t167, 112, 228, 242, 151, 207, 190, 230, 105, 28, 255, 110,\n\t\t190, 174, 155, 107, 199, 131, 55, 169, 16, 153, 20, 6, 30,\n\t\t196, 103, 224, 240, 154, 204, 82, 209, 241, 53, 192, 103,\n\t\t31, 5, 84, 7, 246, 156, 169, 115, 200, 217, 168, 126, 129,\n\t\t177, 122, 61, 127, 204, 51, 246, 174, 197, 214, 214, 159,\n\t\t183, 22, 22, 91, 164, 218, 90, 88, 191, 254, 167, 78, 93,\n\t\t178, 203, 1, 36, 40, 184, 57, 191, 195, 111, 253, 224, 2,\n\t\t70, 102, 167, 85, 85, 190, 48, 118, 1, 254, 173, 193, 209,\n\t\t8, 133, 197, 29, 107, 112, 240, 252, 191, 133, 31, 92, 253,\n\t\t236, 129, 22, 127, 113, 120, 201, 37, 195, 165, 67, 58, 3,\n\t\t220, 135, 217, 231, 106, 101, 54, 236, 73, 91, 172, 112, 176,\n\t\t101, 47, 84, 12, 101, 90, 185, 80, 214, 59, 198, 25, 214,\n\t\t42, 15, 58, 40, 103, 144, 23, 147, 119, 161, 135, 97, 230,\n\t\t15, 132, 195, 189, 60, 37, 39, 195, 164, 100, 36, 248, 192,\n\t\t182, 55, 144, 3, 120, 174, 218, 69, 138, 129, 62, 230, 85,\n\t\t95, 82, 182, 103, 11, 69, 242, 29, 207, 170, 44, 84, 74, 165,\n\t\t94, 175, 152, 212, 214, 166, 59, 171, 122, 169, 176, 245,\n\t\t205, 139, 167, 219, 221, 201, 66, 210, 192, 225, 114, 11,\n\t\t252, 217, 220, 197, 5, 242, 130, 63, 152, 9, 193, 48, 199,\n\t\t189, 150, 233, 93, 12, 251, 92, 236, 187, 174, 159, 93, 44,\n\t\t122, 113, 168, 126, 100, 102, 109, 190, 125, 241, 197, 228,\n\t\t195, 147, 67, 33, 236, 131, 38, 101, 41, 65, 61, 109, 64,\n\t\t46, 43, 143, 220, 107, 89, 121, 30, 20, 61, 251, 89, 242,\n\t\t25, 136, 239, 13, 156, 119, 35, 129, 8, 122, 34, 234, 5, 163,\n\t\t40, 200, 117, 40, 130, 140, 124, 102, 243, 137, 119, 144,\n\t\t205, 63, 105, 108, 92, 127, 253, 70, 131, 108, 158, 85, 38,\n\t\t148, 179, 215, 94, 123, 86, 233, 16, 229, 204, 214, 181, 202,\n\t\t217, 137, 179, 202, 104, 68, 20, 120, 9, 199, 121, 80, 155,\n\t\t112, 60, 204, 86, 221, 171, 60, 128, 57, 156, 106, 31, 108,\n\t\t187, 228, 233, 102, 9, 166, 59, 167, 46, 193, 84, 103, 209,\n\t\t130, 208, 45, 87, 32, 159, 70, 3, 157, 181, 91, 82, 147, 88,\n\t\t140, 95, 71, 82, 208, 111, 132, 83, 116, 178, 121, 228, 74,\n\t\t94, 57, 219, 84, 62, 121, 151, 139, 29, 231, 4, 176, 47, 194,\n\t\t148, 8, 85, 14, 253, 195, 147, 10, 152, 82, 85, 181, 2, 192,\n\t\t8, 225, 153, 6, 145, 164, 187, 76, 85, 153, 193, 116, 166,\n\t\t49, 97, 150, 76, 237, 13, 143, 250, 254, 163, 254, 228, 49,\n\t\t223, 63, 230, 135, 36, 244, 168, 208, 245, 154, 231, 28, 190,\n\t\t237, 176, 227, 213, 144, 25, 203, 11, 137, 208, 12, 207, 247,\n\t\t188, 153, 67, 51, 123, 79, 122, 158, 239, 235, 218, 87, 169,\n\t\t165, 235, 42, 177, 67, 77, 159, 111, 56, 105, 148, 230, 105,\n\t\t29, 56, 36, 24, 112, 194, 45, 219, 227, 123, 140, 136, 187,\n\t\t6, 101, 236, 75, 141, 198, 102, 163, 241, 184, 165, 129, 57,\n\t\t119, 253, 165, 242, 100, 220, 191, 240, 194, 126, 60, 89,\n\t\t94, 242, 189, 89, 195, 210, 204, 158, 25, 20, 202, 149, 133,\n\t\t194, 244, 5, 211, 215, 108, 22, 22, 42, 229, 146, 103, 130,\n\t\t141, 116, 225, 78, 252, 61, 57, 131, 227, 61, 209, 202, 2,\n\t\t25, 244, 179, 81, 63, 1, 135, 23, 60, 155, 230, 197, 218,\n\t\t236, 92, 210, 87, 239, 66, 49, 247, 250, 187, 174, 127, 109,\n\t\t15, 179, 23, 187, 159, 233, 169, 119, 122, 15, 18, 189, 255,\n\t\t166, 190, 65, 201, 178, 33, 134, 250, 223, 254, 173, 222,\n\t\t81, 197, 214, 247, 132, 218, 209, 245, 174, 42, 190, 181,\n\t\t245, 93, 18, 63, 101, 27, 235, 186, 190, 110, 216, 219, 121,\n\t\t236, 95, 160, 51, 224, 155, 93, 165, 170, 204, 96, 245, 125,\n\t\t136, 65, 237, 185, 233, 124, 142, 2, 78, 105, 78, 95, 132,\n\t\t138, 85, 44, 39, 243, 204, 249, 178, 71, 217, 118, 239, 62,\n\t\t215, 199, 207, 217, 138, 115, 41, 92, 247, 221, 125, 121,\n\t\t165, 118, 235, 155, 223, 124, 107, 173, 114, 249, 39, 119,\n\t\t118, 171, 129, 59, 95, 126, 245, 19, 11, 142, 62, 255, 232,\n\t\t59, 71, 15, 117, 91, 238, 180, 107, 151, 27, 55, 46, 209,\n\t\t231, 79, 234, 58, 252, 45, 202, 103, 185, 64, 202, 31, 123,\n\t\t212, 21, 63, 115, 235, 173, 63, 35, 220, 173, 167, 166, 94,\n\t\t187, 203, 143, 246, 190, 227, 100, 101, 111, 148, 44, 24,\n\t\t164, 54, 101, 47, 205, 221, 55, 211, 189, 178, 61, 221, 112,\n\t\t200, 221, 231, 239, 151, 47, 60, 87, 171, 119, 172, 105, 42,\n\t\t43, 148, 225, 33, 198, 175, 223, 248, 198, 95, 111, 255, 145,\n\t\t39, 191, 241, 141, 111, 132, 240, 144, 254, 234, 251, 176,\n\t\t223, 25, 64, 92, 128, 7, 161, 223, 118, 101, 191, 22, 201,\n\t\t152, 113, 0, 139, 172, 112, 237, 128, 60, 61, 59, 59, 61,\n\t\t195, 106, 19, 181, 98, 163, 194, 102, 103, 201, 153, 223,\n\t\t43, 103, 105, 165, 80, 206, 226, 210, 3, 73, 150, 37, 255,\n\t\t57, 46, 208, 56, 250, 187, 114, 154, 149, 198, 215, 123, 204,\n\t\t119, 238, 43, 101, 188, 211, 231, 198, 167, 242, 230, 30,\n\t\t12, 71, 99, 185, 84, 188, 252, 65, 190, 152, 230, 60, 79,\n\t\t239, 203, 90, 89, 243, 87, 224, 41, 142, 227, 215, 195, 203,\n\t\t194, 152, 24, 253, 247, 159, 65, 213, 220, 173, 239, 53, 74,\n\t\t95, 199, 133, 175, 179, 221, 196, 199, 133, 103, 252, 237,\n\t\t156, 199, 252, 59, 109, 248, 70, 165, 211, 151, 124, 70, 189,\n\t\t254, 32, 27, 105, 237, 115, 195, 120, 237, 129, 232, 145,\n\t\t83, 119, 38, 123, 142, 206, 238, 189, 183, 121, 231, 109,\n\t\t183, 109, 253, 240, 176, 3, 71, 119, 14, 191, 243, 29, 155,\n\t\t19, 195, 218, 158, 209, 153, 219, 111, 63, 210, 155, 194,\n\t\t146, 192, 169, 222, 87, 222, 241, 14, 69, 128, 223, 248, 93,\n\t\t242, 125, 240, 27, 170, 146, 128, 95, 199, 218, 119, 196,\n\t\t118, 146, 131, 187, 55, 234, 182, 224, 25, 123, 239, 58, 221,\n\t\t77, 56, 198, 17, 114, 106, 22, 39, 95, 229, 82, 130, 114,\n\t\t175, 46, 67, 215, 187, 50, 194, 185, 223, 180, 191, 24, 187,\n\t\t16, 78, 181, 123, 203, 253, 97, 141, 101, 114, 82, 153, 35,\n\t\t5, 11, 128, 64, 156, 89, 30, 165, 100, 58, 173, 84, 147, 55,\n\t\t77, 223, 54, 83, 239, 78, 236, 60, 120, 112, 231, 68, 239,\n\t\t239, 76, 115, 246, 230, 89, 211, 92, 124, 228, 117, 197, 226,\n\t\t250, 199, 215, 11, 165, 217, 89, 177, 126, 213, 77, 87, 110,\n\t\t240, 217, 217, 111, 24, 237, 157, 66, 205, 5, 180, 1, 198,\n\t\t124, 94, 21, 165, 180, 98, 89, 234, 4, 244, 55, 77, 142, 200,\n\t\t146, 247, 3, 206, 91, 129, 24, 150, 119, 187, 234, 161, 196,\n\t\t48, 227, 47, 212, 106, 37, 243, 157, 115, 7, 59, 65, 48, 113,\n\t\t193, 220, 59, 205, 134, 198, 179, 140, 243, 185, 140, 136,\n\t\t3, 7, 4, 57, 80, 185, 181, 66, 118, 94, 209, 37, 221, 43,\n\t\t119, 193, 226, 103, 38, 125, 2, 129, 26, 135, 144, 148, 241,\n\t\t1, 244, 67, 59, 9, 32, 224, 102, 184, 66, 103, 226, 229, 170,\n\t\t230, 56, 28, 34, 226, 49, 183, 240, 231, 161, 77, 253, 150,\n\t\t178, 75, 121, 190, 162, 164, 224, 91, 229, 252, 178, 100,\n\t\t198, 204, 51, 52, 145, 89, 11, 186, 12, 172, 25, 158, 235,\n\t\t63, 208, 23, 225, 3, 120, 155, 171, 87, 72, 189, 232, 17,\n\t\t174, 149, 190, 24, 25, 151, 151, 7, 43, 96, 81, 183, 181,\n\t\t68, 228, 160, 229, 182, 180, 1, 124, 252, 223, 99, 99, 221,\n\t\t212, 61, 135, 178, 5, 198, 158, 162, 236, 227, 12, 255, 150,\n\t\t147, 130, 150, 241, 106, 41, 42, 44, 70, 209, 83, 240, 23,\n\t\t199, 79, 61, 188, 56, 123, 35, 207, 32, 44, 45, 182, 71, 16,\n\t\t238, 22, 195, 114, 43, 158, 157, 188, 138, 51, 86, 80, 137,\n\t\t90, 172, 44, 166, 83, 243, 221, 53, 173, 131, 204, 237, 168,\n\t\t131, 65, 159, 79, 213, 175, 49, 120, 134, 63, 246, 53, 149,\n\t\t212, 116, 199, 253, 42, 231, 95, 45, 215, 237, 138, 149, 125,\n\t\t45, 181, 238, 176, 224, 47, 253, 90, 102, 221, 241, 165, 90,\n\t\t115, 191, 166, 198, 65, 21, 201, 238, 193, 90, 155, 16, 217,\n\t\t215, 55, 25, 83, 35, 175, 100, 26, 156, 23, 114, 174, 111,\n\t\t101, 147, 110, 146, 134, 194, 36, 179, 63, 162, 17, 89, 165,\n\t\t209, 73, 154, 50, 203, 55, 147, 212, 45, 73, 127, 36, 95,\n\t\t71, 227, 119, 248, 32, 141, 70, 131, 52, 182, 158, 57, 243,\n\t\t228, 147, 103, 192, 242, 194, 211, 230, 51, 79, 195, 2, 44,\n\t\t110, 110, 62, 221, 104, 60, 221, 56, 115, 234, 212, 153, 39,\n\t\t27, 103, 224, 229, 212, 169, 220, 46, 40, 35, 250, 106, 114,\n\t\t1, 248, 191, 253, 202, 37, 202, 213, 185, 42, 17, 114, 72,\n\t\t245, 51, 228, 111, 168, 145, 237, 33, 172, 1, 206, 148, 141,\n\t\t242, 66, 81, 156, 167, 239, 142, 211, 45, 69, 62, 83, 39,\n\t\t201, 126, 228, 128, 184, 84, 27, 232, 109, 231, 228, 108,\n\t\t115, 79, 125, 114, 110, 113, 71, 191, 62, 183, 180, 52, 34,\n\t\t127, 201, 166, 42, 46, 115, 163, 75, 59, 94, 230, 51, 34,\n\t\t172, 244, 167, 173, 7, 1, 121, 32, 231, 220, 177, 130, 163,\n\t\t153, 194, 72, 173, 183, 153, 175, 177, 100, 10, 31, 87, 143,\n\t\t85, 181, 230, 110, 99, 119, 167, 123, 187, 106, 45, 197, 161,\n\t\t145, 197, 157, 82, 193, 50, 153, 157, 88, 16, 76, 60, 249,\n\t\t252, 231, 63, 121, 223, 253, 81, 137, 103, 195, 74, 183, 103,\n\t\t168, 126, 193, 195, 82, 64, 58, 41, 132, 206, 152, 227, 79,\n\t\t88, 14, 192, 39, 193, 12, 240, 81, 193, 132, 77, 106, 109,\n\t\t193, 31, 206, 138, 60, 137, 166, 85, 86, 186, 77, 229, 220,\n\t\t167, 154, 109, 42, 104, 19, 193, 62, 188, 137, 60, 37, 213,\n\t\t118, 47, 81, 174, 82, 78, 42, 183, 40, 119, 67, 132, 246,\n\t\t42, 229, 181, 202, 227, 202, 127, 82, 158, 80, 126, 89, 249,\n\t\t16, 92, 33, 64, 203, 88, 86, 170, 166, 25, 116, 212, 222,\n\t\t202, 186, 54, 106, 225, 0, 224, 188, 218, 171, 169, 89, 60,\n\t\t79, 72, 62, 254, 63, 24, 147, 167, 169, 219, 204, 213, 207,\n\t\t121, 77, 255, 127, 90, 191, 157, 119, 49, 92, 62, 70, 121,\n\t\t24, 100, 81, 108, 115, 74, 133, 25, 196, 181, 128, 114, 195,\n\t\t13, 11, 30, 213, 184, 229, 68, 38, 213, 162, 176, 100, 19,\n\t\t0, 115, 237, 132, 89, 165, 56, 0, 32, 75, 118, 52, 246, 254,\n\t\t222, 222, 198, 228, 222, 147, 39, 247, 78, 110, 253, 149,\n\t\t95, 240, 127, 252, 239, 216, 255, 209, 26, 240, 60, 235, 239,\n\t\t89, 23, 198, 165, 239, 34, 31, 39, 84, 24, 240, 91, 66, 162,\n\t\t121, 150, 205, 153, 32, 154, 111, 249, 40, 135, 160, 218,\n\t\t166, 99, 8, 184, 237, 122, 230, 171, 78, 179, 148, 82, 162,\n\t\t250, 233, 100, 145, 233, 187, 182, 254, 237, 210, 193, 226,\n\t\t226, 224, 210, 189, 123, 151, 150, 246, 126, 76, 30, 244,\n\t\t242, 204, 247, 179, 32, 127, 126, 224, 255, 104, 205, 254,\n\t\t94, 208, 104, 248, 147, 112, 163, 205, 115, 190, 192, 0, 111,\n\t\t128, 57, 87, 37, 165, 173, 44, 40, 59, 148, 61, 168, 245,\n\t\t158, 229, 117, 30, 25, 233, 15, 218, 224, 220, 185, 24, 37,\n\t\t189, 44, 87, 240, 30, 129, 139, 8, 106, 12, 149, 104, 147,\n\t\t118, 254, 200, 48, 155, 184, 133, 106, 220, 40, 90, 54, 232,\n\t\t13, 70, 189, 156, 92, 73, 86, 37, 225, 12, 21, 196, 152, 63,\n\t\t68, 135, 81, 175, 109, 253, 227, 151, 223, 246, 182, 83, 47,\n\t\t152, 58, 184, 35, 33, 186, 255, 242, 236, 161, 230, 234, 84,\n\t\t250, 232, 1, 23, 211, 34, 246, 151, 146, 228, 0, 217, 191,\n\t\t223, 117, 213, 9, 215, 18, 150, 231, 27, 166, 173, 211, 40,\n\t\t44, 6, 171, 224, 129, 244, 173, 71, 27, 95, 251, 199, 141,\n\t\t218, 95, 250, 250, 188, 101, 234, 206, 202, 104, 137, 92,\n\t\t236, 46, 236, 188, 240, 208, 98, 179, 86, 107, 254, 181, 85,\n\t\t44, 21, 189, 91, 107, 118, 45, 224, 37, 126, 85, 217, 182,\n\t\t179, 138, 105, 26, 181, 226, 236, 88, 155, 250, 25, 186, 10,\n\t\t62, 202, 84, 250, 202, 93, 200, 110, 145, 171, 116, 33, 163,\n\t\t16, 150, 167, 201, 188, 26, 201, 15, 54, 64, 153, 205, 174,\n\t\t152, 207, 181, 5, 242, 156, 206, 124, 66, 30, 90, 58, 221,\n\t\t69, 215, 181, 254, 8, 19, 236, 177, 26, 18, 66, 113, 8, 108,\n\t\t0, 253, 192, 2, 64, 250, 25, 34, 48, 105, 170, 217, 154, 7,\n\t\t87, 135, 28, 20, 61, 242, 208, 176, 234, 82, 194, 210, 169,\n\t\t198, 231, 186, 49, 215, 136, 7, 157, 147, 205, 159, 188, 116,\n\t\t149, 70, 134, 65, 102, 119, 152, 129, 89, 224, 60, 0, 232,\n\t\t250, 25, 29, 28, 146, 90, 133, 6, 80, 204, 34, 206, 43, 150,\n\t\t166, 93, 165, 91, 132, 84, 110, 76, 234, 1, 138, 222, 193,\n\t\t185, 100, 169, 101, 111, 61, 227, 132, 134, 150, 213, 96,\n\t\t221, 86, 119, 39, 95, 120, 158, 206, 162, 147, 132, 133, 179,\n\t\t238, 167, 7, 158, 7, 177, 129, 51, 185, 102, 93, 179, 115,\n\t\t165, 19, 88, 168, 114, 159, 93, 88, 119, 34, 59, 137, 84,\n\t\t114, 212, 242, 132, 138, 58, 52, 154, 74, 34, 221, 32, 134,\n\t\t166, 70, 135, 67, 211, 128, 3, 125, 51, 130, 166, 103, 56,\n\t\t142, 166, 126, 51, 52, 183, 177, 194, 23, 33, 190, 249, 24,\n\t\t92, 47, 119, 124, 181, 114, 126, 0, 18, 244, 3, 170, 220,\n\t\t121, 209, 69, 119, 226, 99, 75, 57, 241, 35, 88, 250, 185,\n\t\t187, 238, 218, 122, 136, 124, 119, 107, 204, 243, 141, 218,\n\t\t239, 191, 14, 49, 64, 168, 180, 148, 65, 158, 127, 43, 92,\n\t\t38, 89, 209, 164, 111, 98, 121, 130, 108, 78, 130, 72, 163,\n\t\t60, 109, 98, 56, 202, 203, 107, 123, 195, 26, 33, 247, 173,\n\t\t29, 21, 73, 111, 210, 45, 28, 108, 92, 254, 242, 171, 46,\n\t\t191, 220, 221, 189, 190, 112, 215, 225, 35, 119, 47, 108,\n\t\t108, 62, 184, 119, 110, 98, 71, 73, 75, 202, 157, 82, 185,\n\t\t179, 183, 75, 206, 108, 92, 125, 249, 221, 70, 113, 166, 178,\n\t\t49, 125, 215, 21, 199, 94, 181, 21, 238, 184, 236, 150, 201,\n\t\t35, 15, 60, 112, 100, 242, 150, 203, 118, 144, 250, 236, 158,\n\t\t137, 193, 158, 114, 88, 46, 135, 85, 219, 40, 75, 125, 123,\n\t\t192, 43, 103, 1, 175, 60, 52, 230, 126, 196, 154, 186, 76,\n\t\t180, 69, 34, 122, 109, 177, 64, 81, 72, 123, 128, 37, 17,\n\t\t3, 104, 249, 163, 58, 93, 78, 50, 15, 32, 159, 20, 101, 195,\n\t\t2, 180, 56, 207, 190, 74, 186, 136, 87, 36, 95, 243, 64, 133,\n\t\t166, 131, 182, 136, 236, 75, 244, 154, 17, 167, 78, 28, 35,\n\t\t47, 150, 145, 200, 183, 137, 43, 223, 154, 201, 92, 92, 10,\n\t\t72, 228, 24, 174, 248, 221, 32, 56, 73, 86, 159, 88, 157,\n\t\t90, 13, 130, 141, 6, 44, 108, 125, 251, 248, 171, 78, 156,\n\t\t120, 213, 241, 79, 36, 177, 209, 208, 11, 5, 189, 105, 16,\n\t\t26, 39, 14, 188, 173, 234, 73, 98, 84, 13, 18, 39, 170, 29,\n\t\t146, 8, 14, 97, 184, 243, 254, 162, 127, 61, 89, 29, 145,\n\t\t233, 85, 88, 218, 104, 194, 210, 239, 30, 39, 176, 255, 241,\n\t\t177, 158, 243, 95, 208, 51, 228, 151, 192, 138, 95, 172, 220,\n\t\t169, 188, 70, 249, 37, 229, 227, 202, 31, 40, 127, 163, 156,\n\t\t5, 103, 199, 243, 12, 61, 201, 6, 32, 233, 245, 165, 110,\n\t\t102, 127, 113, 121, 105, 60, 107, 216, 27, 11, 56, 200, 140,\n\t\t217, 177, 239, 195, 209, 182, 26, 95, 226, 152, 213, 194,\n\t\t69, 26, 201, 32, 108, 144, 207, 65, 201, 201, 37, 158, 167,\n\t\t208, 73, 134, 5, 158, 115, 60, 36, 173, 100, 101, 128, 189,\n\t\t8, 111, 251, 72, 50, 232, 101, 146, 51, 183, 55, 88, 148,\n\t\t243, 117, 235, 24, 207, 45, 38, 88, 28, 1, 230, 27, 17, 95,\n\t\t175, 187, 132, 193, 191, 138, 217, 46, 189, 101, 41, 133,\n\t\t58, 218, 137, 248, 183, 47, 117, 144, 123, 93, 109, 123, 58,\n\t\t105, 184, 52, 204, 106, 208, 9, 216, 162, 72, 241, 78, 192,\n\t\t10, 248, 205, 60, 73, 191, 214, 186, 204, 209, 8, 53, 231,\n\t\t13, 3, 103, 70, 202, 135, 91, 237, 213, 169, 222, 74, 77,\n\t\t117, 32, 0, 44, 26, 213, 140, 149, 13, 59, 101, 149, 98, 245,\n\t\t104, 129, 144, 112, 163, 156, 78, 118, 93, 119, 130, 66, 164,\n\t\t231, 216, 200, 210, 161, 61, 97, 22, 9, 56, 134, 223, 174,\n\t\t239, 47, 184, 90, 43, 233, 180, 117, 223, 18, 36, 86, 205,\n\t\t64, 63, 24, 9, 86, 118, 220, 254, 187, 166, 139, 169, 169,\n\t\t17, 13, 90, 224, 238, 125, 40, 34, 92, 106, 245, 222, 100,\n\t\t69, 126, 171, 80, 138, 76, 71, 8, 223, 9, 154, 81, 20, 24,\n\t\t165, 184, 229, 18, 87, 197, 59, 62, 89, 34, 65, 209, 81, 67,\n\t\t3, 98, 200, 169, 191, 101, 205, 68, 184, 134, 167, 121, 9,\n\t\t149, 83, 169, 212, 118, 39, 58, 21, 114, 173, 154, 6, 26,\n\t\t18, 136, 133, 36, 43, 200, 116, 23, 78, 85, 67, 227, 255,\n\t\t149, 84, 195, 168, 74, 192, 177, 27, 58, 152, 15, 77, 187,\n\t\t141, 140, 86, 226, 21, 119, 63, 78, 16, 145, 56, 100, 172,\n\t\t181, 176, 208, 209, 112, 166, 134, 128, 55, 207, 96, 167,\n\t\t234, 172, 31, 232, 38, 73, 203, 140, 117, 23, 13, 195, 12,\n\t\t109, 207, 244, 77, 129, 185, 7, 36, 51, 53, 36, 123, 216,\n\t\t122, 39, 105, 151, 61, 157, 36, 220, 114, 49, 201, 133, 170,\n\t\t170, 161, 171, 154, 207, 53, 212, 117, 254, 55, 199, 52, 74,\n\t\t14, 102, 149, 68, 177, 97, 84, 43, 56, 61, 18, 11, 113, 187,\n\t\t159, 164, 26, 7, 151, 5, 184, 214, 119, 113, 242, 196, 34,\n\t\t0, 11, 117, 130, 50, 37, 42, 209, 28, 130, 195, 36, 150, 6,\n\t\t33, 50, 127, 140, 234, 168, 168, 140, 35, 82, 132, 19, 128,\n\t\t120, 223, 128, 208, 155, 10, 155, 9, 74, 92, 76, 166, 192,\n\t\t243, 67, 190, 130, 215, 193, 241, 226, 20, 29, 33, 0, 116,\n\t\t77, 103, 58, 225, 146, 127, 254, 95, 206, 254, 57, 224, 192,\n\t\t39, 149, 76, 153, 4, 172, 172, 116, 92, 230, 209, 129, 36,\n\t\t211, 240, 144, 75, 11, 71, 233, 226, 30, 166, 223, 67, 184,\n\t\t212, 11, 114, 106, 49, 174, 201, 177, 222, 13, 138, 180, 51,\n\t\t72, 159, 149, 112, 186, 139, 89, 166, 1, 225, 248, 207, 58,\n\t\t204, 44, 214, 79, 119, 122, 7, 118, 39, 233, 119, 66, 221,\n\t\t58, 57, 188, 104, 215, 194, 238, 173, 247, 54, 130, 64, 47,\n\t\t25, 198, 107, 111, 128, 13, 74, 245, 249, 35, 23, 169, 82,\n\t\t7, 233, 121, 195, 161, 106, 51, 195, 110, 175, 58, 170, 158,\n\t\t137, 48, 184, 242, 167, 235, 26, 115, 157, 173, 247, 86, 201,\n\t\t59, 204, 98, 178, 182, 99, 52, 125, 167, 209, 182, 184, 205,\n\t\t212, 133, 97, 91, 110, 27, 44, 121, 82, 71, 254, 71, 103,\n\t\t255, 132, 252, 95, 228, 221, 74, 0, 191, 190, 10, 191, 127,\n\t\t78, 206, 176, 128, 125, 238, 246, 88, 119, 56, 234, 12, 83,\n\t\t164, 126, 206, 0, 29, 106, 217, 8, 206, 32, 130, 102, 223,\n\t\t139, 192, 244, 13, 23, 136, 32, 63, 27, 216, 246, 223, 180,\n\t\t245, 182, 118, 59, 115, 44, 226, 187, 169, 238, 154, 159,\n\t\t254, 141, 128, 170, 91, 255, 253, 137, 27, 254, 69, 213, 30,\n\t\t32, 170, 165, 27, 244, 193, 203, 225, 194, 70, 220, 120, 254,\n\t\t9, 114, 132, 212, 157, 191, 188, 204, 81, 125, 114, 173, 155,\n\t\t208, 57, 154, 5, 205, 165, 186, 63, 169, 170, 163, 31, 124,\n\t\t39, 35, 124, 235, 73, 106, 20, 162, 68, 253, 237, 173, 255,\n\t\t1, 56, 115, 55, 103, 198, 215, 148, 241, 56, 233, 31, 146,\n\t\t47, 144, 247, 130, 255, 239, 72, 158, 108, 28, 39, 197, 172,\n\t\t156, 68, 178, 208, 246, 182, 153, 145, 32, 14, 233, 47, 211,\n\t\t109, 90, 24, 184, 230, 178, 174, 76, 154, 116, 201, 5, 4,\n\t\t176, 124, 5, 39, 134, 198, 121, 59, 16, 187, 109, 231, 73,\n\t\t160, 137, 39, 31, 247, 60, 35, 75, 159, 188, 99, 48, 28, 12,\n\t\t27, 233, 29, 165, 201, 201, 201, 87, 195, 41, 234, 220, 208,\n\t\t94, 23, 214, 195, 78, 90, 225, 174, 203, 39, 10, 111, 185,\n\t\t131, 9, 43, 114, 251, 171, 105, 189, 158, 222, 7, 159, 106,\n\t\t6, 215, 81, 55, 242, 135, 27, 243, 149, 146, 59, 213, 245,\n\t\t61, 207, 239, 222, 146, 54, 166, 202, 139, 91, 91, 118, 96,\n\t\t115, 248, 252, 125, 97, 61, 88, 170, 22, 135, 163, 98, 213,\n\t\t153, 50, 93, 128, 84, 204, 48, 212, 122, 2, 155, 61, 206,\n\t\t13, 11, 90, 187, 174, 66, 144, 247, 239, 181, 217, 23, 126,\n\t\t2, 179, 63, 192, 119, 172, 197, 149, 163, 227, 240, 154, 61,\n\t\t187, 188, 155, 192, 103, 228, 6, 20, 154, 201, 229, 102, 150,\n\t\t137, 111, 172, 198, 213, 159, 55, 221, 184, 250, 161, 241,\n\t\t43, 172, 34, 79, 110, 111, 128, 122, 52, 239, 55, 124, 82,\n\t\t141, 93, 243, 231, 171, 177, 63, 126, 93, 133, 85, 207, 209,\n\t\t60, 187, 242, 124, 109, 53, 36, 16, 21, 146, 213, 166, 191,\n\t\t44, 144, 222, 84, 190, 205, 71, 195, 134, 219, 111, 249, 56,\n\t\t254, 232, 158, 91, 49, 54, 194, 184, 23, 230, 66, 228, 175,\n\t\t99, 98, 232, 119, 171, 198, 43, 32, 50, 101, 174, 106, 172,\n\t\t249, 6, 163, 186, 51, 112, 116, 86, 195, 18, 36, 74, 10, 170,\n\t\t201, 122, 76, 163, 85, 20, 139, 211, 141, 138, 131, 156, 35,\n\t\t109, 232, 155, 122, 61, 18, 148, 209, 162, 96, 218, 252, 53,\n\t\t156, 214, 153, 174, 238, 49, 212, 96, 60, 218, 224, 194, 165,\n\t\t175, 131, 65, 18, 7, 25, 210, 21, 177, 129, 161, 238, 197,\n\t\t108, 170, 48, 217, 168, 170, 130, 135, 7, 103, 124, 77, 101,\n\t\t101, 161, 106, 7, 168, 208, 187, 231, 241, 231, 123, 224,\n\t\t121, 55, 161, 181, 73, 221, 42, 237, 185, 92, 93, 121, 234,\n\t\t99, 91, 98, 72, 28, 226, 171, 231, 57, 138, 93, 20, 14, 31,\n\t\t142, 41, 3, 159, 213, 32, 28, 142, 186, 169, 100, 206, 205,\n\t\t107, 111, 186, 99, 234, 162, 124, 137, 108, 62, 61, 56, 124,\n\t\t120, 128, 79, 31, 5, 75, 164, 235, 128, 185, 43, 19, 212,\n\t\t129, 8, 235, 37, 154, 97, 216, 161, 79, 46, 167, 68, 211,\n\t\t132, 110, 154, 102, 163, 93, 111, 249, 174, 167, 79, 90, 164,\n\t\t79, 92, 247, 90, 219, 52, 29, 199, 52, 237, 237, 215, 70,\n\t\t126, 32, 124, 250, 125, 198, 53, 43, 250, 233, 19, 186, 201,\n\t\t14, 50, 149, 133, 129, 64, 113, 53, 203, 194, 75, 220, 233,\n\t\t180, 122, 112, 21, 110, 241, 61, 55, 208, 108, 59, 182, 172,\n\t\t151, 216, 118, 100, 89, 99, 45, 208, 239, 75, 204, 221, 193,\n\t\t250, 168, 142, 232, 141, 134, 40, 87, 197, 217, 242, 56, 121,\n\t\t106, 129, 104, 163, 5, 50, 86, 5, 64, 51, 183, 78, 88, 119,\n\t\t64, 138, 191, 83, 249, 212, 100, 73, 179, 52, 127, 239, 254,\n\t\t251, 246, 190, 249, 150, 3, 59, 51, 82, 95, 52, 191, 117,\n\t\t221, 68, 177, 109, 155, 238, 98, 107, 238, 79, 226, 215, 190,\n\t\t188, 251, 129, 29, 55, 14, 45, 17, 244, 124, 8, 53, 246, 222,\n\t\t191, 239, 150, 55, 183, 143, 116, 156, 86, 185, 108, 102,\n\t\t205, 169, 206, 162, 174, 58, 155, 151, 223, 177, 245, 234,\n\t\t245, 131, 185, 158, 214, 211, 116, 15, 96, 180, 182, 178,\n\t\t83, 57, 160, 28, 25, 207, 0, 75, 81, 219, 30, 206, 151, 245,\n\t\t214, 85, 112, 181, 57, 105, 192, 58, 69, 234, 3, 118, 142,\n\t\t193, 33, 21, 139, 200, 161, 132, 99, 49, 125, 204, 76, 239,\n\t\t141, 41, 55, 115, 234, 77, 41, 179, 147, 61, 187, 150, 124,\n\t\t103, 118, 126, 126, 118, 244, 214, 221, 205, 139, 214, 39,\n\t\t45, 84, 120, 182, 212, 176, 100, 21, 234, 90, 45, 12, 173,\n\t\t201, 141, 195, 205, 245, 183, 60, 118, 253, 79, 253, 212,\n\t\t103, 94, 187, 226, 84, 41, 41, 23, 99, 63, 158, 153, 37, 119,\n\t\t187, 49, 105, 181, 227, 181, 102, 155, 184, 128, 161, 222,\n\t\t152, 191, 37, 87, 84, 142, 92, 118, 164, 50, 81, 112, 26,\n\t\t21, 110, 66, 71, 47, 151, 219, 126, 180, 188, 126, 176, 94,\n\t\t220, 25, 4, 194, 228, 213, 186, 83, 216, 250, 200, 213, 47,\n\t\t187, 250, 234, 221, 131, 169, 217, 17, 88, 113, 199, 242,\n\t\t35, 235, 222, 200, 77, 195, 32, 129, 67, 53, 229, 171, 19,\n\t\t170, 106, 152, 156, 91, 169, 60, 167, 63, 150, 159, 237, 143,\n\t\t4, 177, 133, 20, 105, 240, 72, 31, 7, 169, 121, 157, 140,\n\t\t123, 213, 219, 78, 31, 74, 99, 247, 9, 179, 101, 190, 245,\n\t\t196, 149, 87, 28, 78, 67, 231, 158, 113, 223, 216, 250, 31,\n\t\t47, 38, 100, 50, 120, 202, 113, 126, 237, 166, 155, 166, 60,\n\t\t164, 215, 131, 40, 75, 57, 251, 93, 104, 255, 47, 249, 223,\n\t\t242, 39, 42, 40, 73, 160, 141, 164, 176, 147, 148, 39, 216,\n\t\t126, 21, 248, 58, 74, 80, 64, 96, 131, 228, 178, 79, 27, 4,\n\t\t37, 160, 160, 205, 224, 187, 12, 30, 184, 130, 156, 28, 30,\n\t\t186, 228, 172, 50, 223, 26, 157, 104, 4, 157, 182, 81, 117,\n\t\t87, 11, 70, 185, 170, 102, 124, 53, 97, 105, 53, 78, 214,\n\t\t42, 164, 56, 83, 215, 202, 205, 41, 189, 61, 147, 204, 187,\n\t\t175, 184, 160, 48, 154, 155, 169, 244, 211, 221, 131, 35,\n\t\t193, 190, 189, 199, 73, 107, 190, 55, 171, 85, 90, 181, 106,\n\t\t90, 201, 118, 181, 195, 246, 222, 176, 16, 46, 85, 188, 74,\n\t\t195, 105, 65, 135, 232, 26, 169, 177, 96, 121, 206, 148, 251,\n\t\t139, 124, 211, 188, 112, 135, 59, 252, 186, 122, 74, 255,\n\t\t213, 116, 46, 93, 142, 174, 182, 222, 91, 221, 91, 26, 143,\n\t\t185, 126, 133, 124, 5, 250, 187, 166, 196, 208, 223, 247,\n\t\t43, 74, 36, 6, 24, 74, 230, 201, 104, 105, 38, 235, 241, 134,\n\t\t10, 7, 180, 55, 175, 225, 60, 0, 135, 95, 159, 23, 217, 13,\n\t\t112, 150, 90, 32, 159, 150, 154, 165, 75, 124, 165, 21, 255,\n\t\t241, 254, 225, 208, 39, 94, 189, 187, 48, 177, 243, 226, 75,\n\t\t201, 67, 53, 119, 77, 7, 7, 2, 248, 33, 152, 50, 186, 179,\n\t\t212, 159, 152, 27, 204, 212, 71, 147, 89, 213, 115, 187, 44,\n\t\t0, 56, 39, 102, 99, 159, 172, 127, 245, 213, 197, 207, 222,\n\t\t255, 10, 117, 96, 143, 90, 189, 93, 98, 168, 95, 179, 182,\n\t\t118, 98, 235, 88, 77, 155, 229, 150, 110, 114, 135, 117, 93,\n\t\t175, 196, 196, 146, 177, 179, 51, 189, 174, 174, 208, 242,\n\t\t244, 142, 198, 226, 180, 57, 25, 96, 154, 174, 99, 174, 69,\n\t\t190, 159, 183, 13, 184, 43, 223, 35, 103, 20, 29, 171, 206,\n\t\t113, 178, 186, 185, 78, 123, 128, 80, 219, 243, 172, 55, 60,\n\t\t54, 247, 170, 23, 187, 91, 47, 89, 190, 152, 59, 83, 247,\n\t\t220, 127, 210, 61, 101, 12, 14, 28, 104, 209, 191, 226, 59,\n\t\t238, 90, 83, 47, 62, 253, 69, 190, 126, 234, 77, 23, 205,\n\t\t93, 177, 49, 231, 92, 118, 190, 14, 47, 114, 198, 40, 154,\n\t\t56, 63, 169, 146, 111, 51, 60, 62, 93, 123, 243, 252, 218,\n\t\t254, 27, 111, 124, 236, 198, 198, 39, 159, 127, 248, 162,\n\t\t219, 47, 34, 245, 183, 118, 111, 122, 253, 77, 55, 29, 28,\n\t\t205, 214, 47, 194, 216, 43, 231, 238, 62, 123, 246, 143, 201,\n\t\t231, 32, 174, 189, 24, 115, 28, 59, 41, 127, 118, 50, 85,\n\t\t228, 117, 50, 120, 89, 177, 143, 118, 215, 233, 6, 233, 141,\n\t\t23, 9, 44, 118, 113, 150, 45, 69, 30, 111, 36, 114, 168, 81,\n\t\t228, 191, 174, 33, 137, 127, 134, 175, 40, 101, 65, 62, 163,\n\t\t185, 238, 156, 175, 58, 174, 95, 82, 253, 147, 62, 3, 40,\n\t\t235, 149, 52, 127, 5, 140, 31, 166, 15, 89, 98, 174, 54, 128,\n\t\t101, 198, 84, 219, 156, 243, 229, 26, 175, 172, 250, 215,\n\t\t121, 176, 159, 112, 29, 147, 250, 115, 110, 217, 112, 220,\n\t\t249, 250, 156, 25, 122, 255, 243, 100, 253, 186, 15, 195,\n\t\t231, 222, 2, 28, 68, 243, 156, 133, 198, 188, 25, 185, 76,\n\t\t115, 157, 197, 144, 184, 166, 240, 108, 147, 122, 39, 2, 226,\n\t\t88, 168, 197, 229, 45, 200, 21, 112, 164, 133, 58, 238, 128,\n\t\t137, 252, 98, 193, 211, 156, 106, 89, 243, 78, 120, 140, 57,\n\t\t59, 26, 39, 234, 242, 222, 168, 103, 191, 69, 62, 13, 24,\n\t\t6, 245, 235, 148, 81, 23, 99, 146, 188, 242, 6, 51, 218, 186,\n\t\t209, 104, 156, 184, 82, 163, 152, 112, 220, 147, 9, 18, 233,\n\t\t58, 27, 12, 207, 205, 34, 109, 174, 153, 175, 249, 240, 139,\n\t\t141, 125, 102, 51, 37, 234, 236, 203, 30, 251, 64, 175, 186,\n\t\t48, 53, 34, 164, 230, 44, 148, 137, 231, 139, 122, 48, 217,\n\t\t90, 230, 126, 163, 16, 145, 170, 179, 80, 12, 93, 94, 90,\n\t\t221, 251, 145, 23, 27, 143, 124, 120, 205, 136, 145, 30, 53,\n\t\t210, 102, 136, 58, 85, 34, 100, 166, 59, 17, 9, 207, 119,\n\t\t1, 197, 147, 194, 116, 147, 16, 195, 107, 101, 221, 16, 5,\n\t\t170, 77, 135, 74, 174, 245, 207, 144, 79, 145, 207, 67, 175,\n\t\t199, 76, 77, 148, 22, 118, 201, 2, 237, 230, 131, 186, 27,\n\t\t136, 254, 186, 99, 237, 82, 184, 31, 99, 33, 83, 120, 198,\n\t\t161, 96, 212, 44, 134, 240, 84, 110, 156, 145, 7, 103, 133,\n\t\t254, 59, 170, 65, 233, 31, 112, 125, 78, 231, 63, 39, 196,\n\t\t117, 186, 184, 130, 123, 98, 63, 23, 59, 5, 255, 192, 138,\n\t\t192, 213, 239, 228, 250, 181, 130, 95, 207, 125, 190, 67,\n\t\t232, 98, 89, 23, 31, 156, 225, 250, 151, 13, 253, 23, 167,\n\t\t57, 74, 78, 82, 242, 121, 8, 208, 56, 127, 43, 231, 135, 56,\n\t\t63, 202, 109, 190, 135, 243, 89, 141, 255, 202, 85, 156, 79,\n\t\t112, 254, 14, 193, 47, 228, 252, 90, 88, 61, 226, 156, 247,\n\t\t56, 127, 47, 236, 246, 46, 161, 201, 190, 125, 86, 206, 139,\n\t\t8, 165, 161, 44, 43, 235, 231, 113, 90, 131, 31, 19, 185,\n\t\t168, 245, 2, 25, 100, 195, 108, 92, 179, 200, 165, 106, 193,\n\t\t182, 118, 96, 111, 219, 71, 75, 75, 208, 95, 38, 175, 159,\n\t\t232, 183, 219, 253, 99, 251, 22, 238, 98, 75, 77, 183, 146,\n\t\t122, 108, 231, 13, 89, 245, 2, 178, 119, 161, 62, 168, 253,\n\t\t227, 68, 153, 139, 82, 228, 123, 221, 72, 77, 120, 216, 41,\n\t\t255, 195, 108, 35, 158, 136, 231, 234, 13, 50, 137, 187, 77,\n\t\t172, 47, 236, 187, 180, 57, 107, 134, 69, 55, 187, 163, 231,\n\t\t210, 211, 11, 123, 107, 131, 191, 95, 233, 80, 83, 239, 118,\n\t\t125, 157, 24, 180, 245, 71, 27, 179, 113, 59, 169, 207, 229,\n\t\t125, 230, 179, 210, 247, 41, 202, 127, 197, 156, 230, 154,\n\t\t26, 203, 186, 80, 148, 150, 91, 35, 50, 179, 177, 39, 53,\n\t\t153, 48, 90, 69, 78, 38, 89, 110, 154, 228, 34, 22, 139, 185,\n\t\t216, 240, 82, 78, 235, 11, 32, 172, 59, 157, 39, 157, 118,\n\t\t1, 157, 32, 22, 94, 25, 174, 12, 160, 9, 34, 64, 30, 199,\n\t\t206, 82, 221, 105, 177, 150, 167, 84, 98, 241, 49, 150, 165,\n\t\t226, 92, 49, 120, 200, 124, 104, 121, 69, 166, 29, 12, 186,\n\t\t173, 1, 74, 72, 205, 231, 105, 187, 169, 28, 145, 90, 151,\n\t\t185, 172, 235, 0, 142, 164, 208, 68, 138, 5, 32, 139, 72,\n\t\t182, 146, 34, 101, 1, 26, 72, 70, 151, 185, 138, 20, 219,\n\t\t2, 30, 142, 133, 42, 63, 154, 229, 48, 172, 5, 83, 137, 30,\n\t\t70, 162, 104, 64, 104, 199, 116, 78, 4, 67, 85, 54, 140, 177,\n\t\t184, 84, 219, 169, 98, 60, 70, 165, 194, 9, 18, 123, 48, 186,\n\t\t93, 115, 174, 206, 116, 170, 113, 213, 35, 186, 207, 72, 16,\n\t\t83, 129, 229, 16, 16, 175, 33, 193, 169, 84, 193, 195, 80,\n\t\t144, 203, 10, 118, 142, 105, 238, 121, 93, 186, 170, 73, 90,\n\t\t76, 192, 83, 81, 84, 92, 31, 240, 202, 142, 216, 40, 80, 90,\n\t\t155, 181, 253, 170, 239, 128, 31, 206, 11, 213, 53, 192, 152,\n\t\t2, 213, 188, 52, 134, 213, 229, 236, 135, 151, 216, 161, 129,\n\t\t20, 206, 170, 35, 8, 165, 22, 64, 72, 172, 79, 215, 100, 205,\n\t\t135, 70, 141, 82, 209, 104, 248, 204, 181, 137, 209, 139,\n\t\t121, 129, 234, 211, 38, 210, 208, 155, 121, 221, 61, 62, 152,\n\t\t141, 82, 173, 58, 156, 199, 4, 113, 107, 12, 171, 63, 132,\n\t\t110, 197, 26, 67, 97, 73, 216, 15, 211, 56, 39, 102, 244,\n\t\t116, 78, 152, 242, 236, 152, 163, 35, 99, 5, 70, 188, 140,\n\t\t152, 50, 23, 149, 207, 6, 85, 3, 191, 157, 195, 22, 19, 211,\n\t\t186, 173, 85, 3, 55, 245, 125, 11, 126, 52, 87, 29, 174, 83,\n\t\t82, 108, 114, 19, 246, 47, 90, 22, 252, 56, 106, 112, 22,\n\t\t20, 225, 217, 181, 12, 170, 75, 94, 31, 28, 243, 250, 91,\n\t\t57, 239, 173, 144, 44, 241, 56, 132, 18, 35, 143, 161, 10,\n\t\t16, 5, 83, 58, 234, 101, 249, 255, 5, 2, 79, 35, 240, 218,\n\t\t117, 176, 207, 16, 93, 63, 163, 22, 123, 171, 71, 32, 84,\n\t\t15, 105, 188, 239, 186, 213, 84, 36, 34, 62, 190, 195, 125,\n\t\t165, 247, 107, 71, 127, 249, 254, 91, 126, 84, 127, 197, 27,\n\t\t195, 165, 249, 207, 205, 220, 105, 39, 106, 183, 106, 11,\n\t\t240, 72, 128, 96, 43, 179, 151, 236, 239, 22, 108, 117, 147,\n\t\t244, 202, 19, 21, 122, 72, 115, 230, 251, 251, 179, 112, 104,\n\t\t190, 60, 188, 243, 193, 238, 161, 155, 186, 225, 21, 47, 91,\n\t\t189, 193, 8, 58, 86, 81, 150, 101, 161, 158, 227, 89, 229,\n\t\t0, 61, 67, 110, 0, 212, 81, 3, 95, 124, 137, 114, 66, 185,\n\t\t65, 185, 75, 121, 64, 121, 157, 242, 62, 229, 67, 168, 231,\n\t\t152, 243, 253, 246, 150, 37, 19, 81, 175, 70, 58, 113, 54,\n\t\t150, 255, 206, 186, 109, 104, 251, 35, 169, 166, 189, 173,\n\t\t8, 158, 83, 72, 180, 48, 184, 203, 147, 118, 122, 200, 42,\n\t\t34, 231, 68, 101, 38, 67, 134, 108, 44, 57, 251, 87, 50, 192,\n\t\t29, 81, 109, 246, 39, 172, 146, 116, 37, 56, 189, 37, 167,\n\t\t138, 37, 183, 87, 107, 36, 55, 28, 51, 78, 36, 50, 129, 226,\n\t\t252, 79, 37, 249, 22, 206, 217, 226, 172, 120, 123, 0, 145,\n\t\t66, 210, 166, 103, 246, 220, 179, 175, 61, 97, 219, 167, 31,\n\t\t239, 207, 15, 126, 244, 33, 120, 122, 252, 116, 167, 229,\n\t\t152, 167, 31, 95, 51, 12, 203, 137, 99, 223, 70, 242, 32,\n\t\t199, 241, 28, 223, 209, 61, 246, 34, 47, 172, 69, 254, 68,\n\t\t75, 239, 217, 190, 111, 123, 88, 150, 183, 3, 150, 61, 207,\n\t\t246, 108, 215, 181, 119, 48, 205, 51, 104, 68, 61, 163, 163,\n\t\t111, 232, 43, 186, 203, 162, 74, 133, 69, 204, 213, 123, 250,\n\t\t46, 44, 81, 226, 178, 124, 9, 139, 122, 62, 209, 24, 214,\n\t\t181, 67, 131, 153, 182, 191, 196, 103, 91, 254, 82, 101, 241,\n\t\t128, 70, 200, 161, 235, 44, 211, 228, 134, 107, 153, 174,\n\t\t110, 32, 153, 143, 38, 184, 109, 90, 174, 96, 23, 143, 220,\n\t\t48, 116, 71, 163, 32, 168, 95, 232, 250, 5, 191, 54, 227,\n\t\t185, 23, 158, 91, 218, 216, 77, 93, 125, 29, 142, 239, 24,\n\t\t198, 134, 171, 59, 26, 77, 157, 68, 190, 189, 146, 128, 83,\n\t\t211, 80, 226, 74, 211, 20, 2, 54, 236, 223, 192, 239, 63,\n\t\t130, 8, 2, 186, 37, 106, 85, 180, 193, 45, 96, 200, 208, 203,\n\t\t135, 23, 200, 103, 247, 235, 213, 91, 151, 77, 75, 255, 44,\n\t\t68, 39, 226, 187, 183, 4, 52, 38, 111, 240, 66, 114, 221,\n\t\t214, 111, 181, 252, 139, 22, 205, 219, 127, 21, 90, 188, 246,\n\t\t182, 134, 22, 139, 159, 215, 2, 229, 199, 114, 198, 38, 255,\n\t\t125, 100, 28, 202, 234, 242, 22, 242, 138, 157, 79, 202, 210,\n\t\t78, 201, 19, 110, 28, 187, 91, 143, 224, 243, 91, 239, 185,\n\t\t128, 107, 151, 220, 118, 137, 118, 82, 236, 23, 240, 119,\n\t\t146, 147, 39, 183, 63, 35, 175, 112, 227, 173, 183, 216, 87,\n\t\t175, 174, 28, 60, 184, 18, 227, 167, 34, 94, 29, 227, 238,\n\t\t167, 193, 39, 62, 157, 207, 203, 147, 64, 244, 6, 89, 146,\n\t\t225, 32, 44, 178, 211, 144, 79, 125, 251, 155, 199, 94, 243,\n\t\t232, 233, 171, 91, 199, 174, 58, 142, 233, 39, 103, 206, 124,\n\t\t125, 238, 133, 135, 15, 255, 236, 206, 65, 50, 88, 0, 135,\n\t\t159, 157, 227, 200, 197, 249, 194, 224, 223, 97, 106, 100,\n\t\t121, 219, 3, 49, 206, 243, 148, 75, 149, 203, 149, 171, 149,\n\t\t235, 148, 155, 148, 59, 148, 23, 224, 204, 107, 175, 223,\n\t\t67, 65, 29, 104, 90, 200, 114, 8, 109, 56, 127, 198, 172,\n\t\t138, 241, 35, 27, 63, 182, 151, 181, 225, 168, 207, 225, 7,\n\t\t246, 19, 129, 28, 131, 99, 158, 65, 214, 237, 53, 185, 96,\n\t\t227, 181, 154, 124, 215, 59, 183, 229, 248, 43, 146, 255,\n\t\t249, 162, 197, 175, 127, 254, 214, 91, 99, 55, 122, 29, 87,\n\t\t111, 100, 252, 110, 74, 111, 185, 245, 252, 127, 196, 225,\n\t\t236, 118, 194, 110, 220, 126, 255, 95, 98, 135, 116, 220,\n\t\t176, 8, 139, 91, 191, 162, 218, 228, 114, 221, 124, 32, 114,\n\t\t30, 16, 244, 42, 88, 211, 104, 188, 83, 133, 184, 219, 57,\n\t\t232, 27, 182, 211, 182, 45, 203, 62, 16, 4, 191, 166, 105,\n\t\t109, 74, 15, 232, 250, 109, 158, 119, 192, 52, 219, 182, 253,\n\t\t78, 44, 143, 249, 132, 105, 118, 108, 251, 144, 174, 95, 76,\n\t\t183, 110, 245, 0, 158, 144, 251, 53, 237, 173, 158, 247, 9,\n\t\t45, 243, 156, 142, 225, 199, 218, 81, 199, 161, 26, 107, 5,\n\t\t1, 142, 145, 136, 179, 159, 166, 47, 37, 191, 169, 204, 193,\n\t\t53, 187, 27, 238, 136, 171, 121, 136, 11, 243, 209, 97, 104,\n\t\t101, 0, 210, 85, 44, 26, 25, 245, 86, 100, 249, 54, 194, 148,\n\t\t44, 6, 63, 54, 204, 85, 87, 179, 229, 49, 201, 175, 44, 138,\n\t\t104, 195, 122, 34, 5, 19, 185, 12, 106, 71, 43, 184, 183,\n\t\t28, 190, 213, 50, 242, 51, 97, 29, 197, 19, 136, 198, 172,\n\t\t183, 58, 73, 109, 197, 49, 236, 183, 89, 126, 21, 194, 233,\n\t\t100, 208, 2, 7, 128, 162, 112, 46, 242, 157, 194, 54, 31,\n\t\t22, 170, 43, 107, 107, 40, 49, 125, 74, 227, 132, 18, 219,\n\t\t68, 222, 81, 242, 106, 219, 208, 107, 157, 56, 129, 125, 209,\n\t\t169, 80, 97, 132, 22, 88, 120, 29, 25, 182, 24, 170, 19, 105,\n\t\t58, 35, 143, 119, 118, 213, 51, 83, 215, 154, 161, 247, 149,\n\t\t128, 170, 221, 114, 20, 124, 197, 51, 60, 198, 131, 194, 168,\n\t\t165, 227, 248, 167, 105, 90, 178, 64, 143, 154, 140, 66, 255,\n\t\t213, 145, 67, 204, 167, 44, 78, 41, 45, 196, 56, 178, 185,\n\t\t245, 120, 16, 133, 181, 144, 81, 216, 51, 244, 93, 6, 230,\n\t\t213, 111, 197, 240, 149, 134, 138, 10, 118, 212, 96, 58, 244,\n\t\t208, 124, 12, 62, 175, 139, 51, 148, 87, 42, 175, 81, 222,\n\t\t160, 188, 93, 121, 175, 242, 27, 196, 34, 21, 64, 168, 216,\n\t\t200, 0, 57, 44, 197, 26, 23, 89, 239, 223, 61, 218, 2, 46,\n\t\t155, 24, 253, 196, 199, 96, 5, 186, 5, 92, 248, 236, 39, 62,\n\t\t192, 221, 44, 103, 35, 145, 254, 164, 7, 56, 28, 132, 57,\n\t\t25, 223, 158, 61, 29, 227, 53, 172, 8, 205, 228, 184, 202,\n\t\t128, 247, 206, 91, 62, 127, 125, 6, 102, 157, 183, 83, 217,\n\t\t231, 187, 121, 81, 58, 158, 131, 100, 9, 128, 165, 121, 50,\n\t\t94, 92, 106, 203, 106, 127, 41, 17, 26, 139, 238, 140, 212,\n\t\t120, 24, 45, 114, 177, 130, 7, 196, 65, 14, 140, 72, 160,\n\t\t105, 96, 226, 22, 138, 162, 141, 6, 249, 97, 113, 36, 7, 145,\n\t\t208, 47, 105, 152, 197, 14, 40, 101, 150, 137, 153, 57, 221,\n\t\t110, 117, 108, 191, 88, 245, 99, 63, 138, 83, 97, 165, 112,\n\t\t31, 210, 212, 18, 105, 28, 121, 81, 80, 41, 250, 206, 68,\n\t\t203, 214, 231, 102, 116, 214, 239, 211, 209, 42, 229, 59,\n\t\t119, 113, 99, 180, 203, 176, 151, 134, 182, 59, 57, 239, 250,\n\t\t229, 22, 24, 247, 40, 8, 84, 53, 240, 99, 59, 240, 90, 101,\n\t\t207, 155, 159, 116, 237, 225, 146, 109, 236, 90, 53, 248,\n\t\t218, 78, 78, 87, 87, 73, 255, 208, 173, 111, 190, 237, 182,\n\t\t55, 95, 122, 252, 193, 227, 199, 31, 124, 133, 138, 85, 168,\n\t\t204, 156, 26, 191, 70, 227, 215, 47, 129, 49, 54, 180, 16,\n\t\t16, 129, 161, 82, 78, 12, 161, 33, 98, 0, 0, 64, 255, 191,\n\t\t98, 196, 192, 58, 6, 67, 37, 36, 164, 156, 65, 24, 67, 124,\n\t\t102, 91, 156, 162, 232, 165, 133, 245, 29, 38, 197, 58, 207,\n\t\t117, 213, 178, 181, 59, 120, 193, 17, 166, 109, 219, 200,\n\t\t105, 75, 194, 119, 123, 66, 14, 242, 23, 227, 56, 139, 226,\n\t\t160, 94, 14, 189, 86, 195, 179, 58, 19, 22, 4, 195, 188, 219,\n\t\t37, 96, 72, 52, 179, 221, 177, 220, 122, 203, 11, 74, 181,\n\t\t48, 142, 178, 56, 54, 92, 7, 0, 9, 99, 81, 228, 155, 65, 80,\n\t\t43, 250, 238, 108, 207, 49, 87, 87, 76, 125, 207, 134, 80,\n\t\t47, 56, 200, 200, 133, 23, 170, 7, 47, 80, 197, 198, 30, 221,\n\t\t92, 89, 181, 236, 222, 172, 235, 23, 107, 65, 104, 249, 17,\n\t\t68, 106, 66, 128, 127, 107, 226, 233, 222, 250, 119, 56, 229,\n\t\t116, 226, 165, 152, 47, 167, 35, 92, 84, 77, 255, 188, 101,\n\t\t246, 236, 178, 117, 130, 57, 247, 68, 137, 216, 20, 218, 4,\n\t\t181, 25, 11, 212, 200, 193, 84, 73, 2, 55, 43, 96, 184, 6,\n\t\t58, 161, 111, 194, 166, 129, 174, 150, 193, 47, 38, 21, 23,\n\t\t60, 21, 71, 142, 102, 226, 0, 92, 34, 14, 51, 109, 33, 124,\n\t\t238, 232, 205, 211, 97, 42, 246, 218, 186, 196, 130, 98, 123,\n\t\t220, 229, 135, 210, 239, 236, 194, 24, 54, 90, 103, 121, 218,\n\t\t152, 228, 126, 24, 23, 223, 161, 194, 18, 180, 29, 112, 69,\n\t\t93, 196, 32, 227, 68, 211, 117, 146, 111, 33, 121, 105, 195,\n\t\t150, 164, 249, 70, 109, 38, 140, 100, 81, 140, 15, 16, 242,\n\t\t51, 132, 25, 169, 119, 83, 195, 54, 184, 201, 155, 173, 155,\n\t\t177, 26, 134, 184, 161, 75, 152, 239, 156, 110, 1, 166, 131,\n\t\t15, 26, 55, 249, 137, 193, 162, 9, 125, 105, 201, 8, 195,\n\t\t196, 216, 183, 207, 72, 194, 208, 32, 55, 144, 190, 233, 196,\n\t\t102, 106, 27, 14, 236, 220, 105, 212, 84, 3, 64, 52, 197,\n\t\t209, 64, 64, 190, 166, 81, 107, 116, 96, 61, 252, 217, 169,\n\t\t21, 57, 91, 159, 244, 201, 149, 87, 2, 2, 141, 95, 244, 162,\n\t\t184, 230, 146, 15, 16, 201, 135, 110, 67, 188, 247, 175, 96,\n\t\t75, 251, 128, 184, 78, 43, 247, 43, 103, 148, 95, 27, 87,\n\t\t113, 138, 182, 139, 204, 72, 46, 107, 129, 97, 101, 208, 173,\n\t\t219, 243, 66, 2, 255, 93, 88, 70, 139, 153, 117, 180, 55,\n\t\t45, 165, 97, 69, 202, 49, 59, 30, 122, 213, 6, 73, 81, 155,\n\t\t114, 93, 235, 197, 72, 43, 214, 130, 179, 149, 133, 25, 184,\n\t\t80, 195, 217, 231, 110, 38, 11, 183, 33, 176, 90, 201, 175,\n\t\t64, 239, 92, 77, 28, 24, 223, 49, 253, 122, 30, 117, 86, 73,\n\t\t77, 205, 150, 101, 121, 119, 150, 146, 79, 53, 43, 22, 115,\n\t\t252, 36, 74, 221, 128, 136, 214, 161, 14, 92, 18, 83, 53,\n\t\t84, 64, 219, 92, 222, 171, 100, 34, 139, 12, 89, 102, 189,\n\t\t88, 187, 121, 162, 189, 114, 101, 163, 96, 102, 21, 81, 123,\n\t\t222, 172, 26, 204, 77, 45, 122, 83, 128, 197, 205, 96, 178,\n\t\t74, 116, 117, 127, 125, 179, 198, 73, 224, 164, 65, 104, 63,\n\t\t234, 208, 186, 10, 45, 99, 38, 37, 147, 29, 21, 128, 247,\n\t\t52, 14, 243, 44, 112, 113, 96, 133, 243, 157, 23, 89, 102,\n\t\t197, 13, 54, 210, 66, 228, 99, 124, 76, 180, 36, 128, 208,\n\t\t153, 11, 228, 115, 192, 138, 27, 39, 168, 71, 134, 102, 154,\n\t\t126, 5, 236, 249, 227, 213, 87, 94, 155, 117, 203, 169, 99,\n\t\t98, 126, 167, 80, 51, 147, 89, 240, 11, 25, 28, 15, 16, 217,\n\t\t10, 79, 74, 245, 70, 171, 81, 179, 239, 90, 44, 151, 72, 18,\n\t\t253, 211, 37, 119, 21, 132, 239, 19, 38, 34, 111, 242, 154,\n\t\t112, 106, 97, 170, 173, 95, 42, 4, 211, 46, 69, 37, 89, 85,\n\t\t51, 131, 172, 125, 139, 224, 13, 184, 192, 116, 181, 57, 139,\n\t\t162, 83, 43, 93, 21, 77, 57, 52, 250, 93, 251, 156, 195, 239,\n\t\t10, 18, 77, 107, 5, 81, 33, 41, 6, 21, 174, 185, 21, 83, 88,\n\t\t158, 48, 221, 192, 52, 40, 102, 153, 26, 69, 156, 11, 179,\n\t\t29, 195, 15, 76, 69, 121, 110, 206, 253, 115, 241, 147, 134,\n\t\t213, 126, 195, 115, 94, 17, 235, 103, 178, 109, 201, 100,\n\t\t28, 199, 38, 111, 137, 74, 165, 104, 235, 231, 241, 153, 92,\n\t\t196, 150, 247, 21, 188, 38, 35, 113, 217, 182, 3, 163, 35,\n\t\t252, 196, 171, 193, 147, 106, 135, 129, 96, 113, 101, 126,\n\t\t239, 38, 121, 242, 220, 214, 183, 68, 165, 183, 109, 18, 122,\n\t\t137, 97, 164, 65, 99, 218, 245, 110, 91, 133, 192, 47, 112,\n\t\t74, 60, 246, 22, 214, 139, 238, 202, 85, 71, 149, 92, 207,\n\t\t89, 57, 69, 31, 134, 102, 57, 171, 92, 169, 60, 8, 126, 168,\n\t\t213, 93, 160, 243, 20, 27, 220, 114, 141, 213, 101, 154, 198,\n\t\t6, 93, 87, 165, 6, 3, 141, 93, 134, 191, 125, 129, 118, 127,\n\t\t226, 199, 174, 218, 238, 45, 167, 117, 154, 98, 1, 183, 154,\n\t\t167, 202, 203, 157, 164, 146, 3, 108, 214, 191, 221, 203,\n\t\t84, 109, 68, 100, 165, 104, 19, 163, 81, 8, 195, 184, 39,\n\t\t44, 74, 39, 8, 146, 129, 176, 166, 1, 65, 222, 42, 186, 88,\n\t\t147, 220, 6, 27, 171, 171, 86, 242, 99, 27, 146, 14, 193,\n\t\t82, 254, 124, 195, 17, 145, 91, 254, 182, 220, 208, 140, 155,\n\t\t104, 148, 193, 252, 118, 52, 95, 128, 157, 237, 104, 72, 47,\n\t\t210, 52, 241, 136, 176, 161, 17, 24, 167, 60, 93, 220, 67,\n\t\t40, 166, 153, 33, 197, 199, 97, 71, 48, 118, 152, 232, 72,\n\t\t198, 169, 169, 247, 16, 213, 212, 5, 110, 17, 254, 47, 63,\n\t\t125, 50, 255, 24, 62, 231, 63, 241, 243, 31, 207, 43, 245,\n\t\t149, 189, 202, 81, 172, 51, 8, 37, 41, 141, 28, 203, 135,\n\t\t192, 15, 250, 162, 20, 6, 30, 87, 10, 200, 222, 40, 9, 30,\n\t\t228, 52, 182, 156, 232, 73, 226, 108, 177, 38, 228, 92, 122,\n\t\t244, 220, 138, 30, 25, 139, 157, 163, 77, 126, 255, 93, 189,\n\t\t201, 75, 70, 19, 117, 109, 217, 97, 241, 87, 85, 74, 4, 180,\n\t\t63, 104, 176, 140, 199, 153, 37, 3, 120, 136, 194, 145, 125,\n\t\t128, 65, 152, 238, 6, 12, 229, 182, 76, 211, 225, 181, 144,\n\t\t135, 167, 159, 45, 245, 249, 208, 222, 147, 139, 243, 143,\n\t\t92, 151, 164, 87, 180, 201, 129, 222, 228, 96, 120, 113, 200,\n\t\t156, 69, 173, 209, 29, 189, 192, 213, 144, 233, 4, 34, 102,\n\t\t83, 5, 207, 23, 106, 196, 132, 227, 99, 141, 30, 39, 154,\n\t\t23, 198, 9, 50, 97, 64, 60, 35, 152, 3, 107, 73, 237, 199,\n\t\t42, 129, 94, 125, 221, 158, 205, 165, 249, 235, 246, 204,\n\t\t116, 142, 166, 209, 120, 174, 237, 79, 229, 181, 89, 80, 118,\n\t\t42, 15, 67, 143, 240, 112, 172, 58, 87, 191, 109, 47, 224,\n\t\t248, 53, 226, 251, 5, 50, 216, 144, 18, 188, 82, 32, 183,\n\t\t15, 182, 59, 31, 199, 6, 188, 34, 103, 26, 187, 121, 213,\n\t\t82, 242, 31, 217, 57, 67, 241, 93, 185, 109, 34, 198, 3, 75,\n\t\t152, 167, 35, 15, 187, 65, 123, 228, 233, 42, 77, 172, 170,\n\t\t48, 146, 4, 64, 132, 176, 163, 88, 23, 53, 51, 102, 16, 218,\n\t\t197, 86, 69, 215, 227, 200, 134, 213, 86, 18, 9, 81, 197,\n\t\t213, 47, 246, 74, 126, 107, 161, 217, 60, 181, 48, 82, 123,\n\t\t241, 208, 13, 122, 189, 196, 153, 118, 210, 137, 142, 231,\n\t\t142, 226, 174, 54, 28, 242, 94, 50, 240, 188, 206, 68, 102,\n\t\t79, 219, 25, 87, 45, 166, 5, 5, 78, 38, 22, 214, 103, 59,\n\t\t59, 117, 71, 80, 141, 6, 26, 143, 193, 128, 214, 241, 219,\n\t\t12, 189, 98, 39, 172, 90, 101, 137, 93, 214, 69, 24, 219,\n\t\t186, 252, 54, 221, 40, 91, 9, 50, 235, 37, 242, 71, 196, 150,\n\t\t177, 23, 190, 56, 107, 54, 23, 154, 129, 59, 233, 0, 210,\n\t\t242, 189, 149, 108, 146, 227, 215, 165, 203, 129, 215, 238,\n\t\t166, 238, 148, 23, 247, 38, 92, 127, 37, 238, 241, 149, 121,\n\t\t78, 121, 196, 213, 144, 192, 171, 163, 239, 236, 206, 172,\n\t\t47, 180, 69, 33, 208, 152, 173, 114, 229, 124, 205, 90, 33,\n\t\t71, 156, 55, 149, 67, 231, 101, 27, 3, 126, 99, 60, 90, 30,\n\t\t225, 128, 113, 26, 101, 185, 12, 213, 118, 216, 143, 180,\n\t\t75, 203, 253, 145, 180, 90, 25, 92, 108, 233, 111, 242, 247,\n\t\t145, 156, 5, 70, 152, 247, 118, 57, 25, 82, 60, 176, 227,\n\t\t142, 232, 79, 187, 19, 132, 236, 223, 87, 223, 56, 146, 5,\n\t\t81, 154, 250, 132, 110, 94, 221, 189, 96, 71, 172, 243, 53,\n\t\t131, 24, 182, 123, 116, 177, 85, 208, 84, 141, 119, 18, 249,\n\t\t126, 127, 127, 173, 76, 182, 167, 19, 111, 221, 115, 103,\n\t\t133, 76, 204, 108, 125, 223, 33, 244, 147, 191, 101, 144,\n\t\t11, 254, 238, 208, 48, 172, 53, 218, 129, 95, 32, 187, 138,\n\t\t115, 117, 0, 76, 132, 146, 239, 191, 249, 122, 102, 24, 76,\n\t\t190, 217, 250, 122, 237, 150, 221, 59, 150, 45, 187, 51, 147,\n\t\t247, 69, 126, 246, 115, 228, 95, 200, 167, 148, 8, 34, 191,\n\t\t61, 249, 120, 184, 44, 246, 145, 238, 79, 74, 144, 101, 53,\n\t\t132, 170, 128, 64, 199, 58, 27, 235, 12, 87, 98, 225, 114,\n\t\t158, 215, 35, 248, 64, 150, 245, 140, 153, 167, 58, 56, 65,\n\t\t151, 181, 186, 82, 18, 100, 158, 146, 251, 46, 8, 248, 174,\n\t\t242, 210, 202, 174, 126, 226, 28, 47, 12, 85, 113, 197, 147,\n\t\t39, 234, 190, 64, 169, 139, 166, 14, 221, 206, 242, 225, 230,\n\t\t233, 86, 121, 168, 146, 29, 96, 54, 28, 219, 1, 19, 101, 149,\n\t\t79, 205, 164, 169, 171, 86, 218, 91, 79, 26, 209, 198, 75,\n\t\t151, 205, 120, 169, 26, 19, 82, 172, 79, 61, 124, 117, 195,\n\t\t154, 48, 60, 141, 55, 93, 207, 94, 184, 190, 184, 72, 200,\n\t\t209, 183, 222, 117, 229, 92, 36, 52, 102, 44, 95, 16, 77,\n\t\t249, 173, 70, 213, 54, 192, 213, 44, 169, 123, 130, 53, 128,\n\t\t136, 229, 0, 194, 159, 176, 117, 244, 37, 147, 142, 91, 219,\n\t\t60, 67, 204, 138, 81, 167, 14, 160, 78, 219, 177, 198, 245,\n\t\t28, 79, 43, 91, 16, 119, 216, 200, 151, 62, 66, 45, 84, 201,\n\t\t151, 17, 180, 7, 129, 156, 51, 221, 69, 222, 126, 245, 230,\n\t\t169, 195, 87, 110, 30, 29, 85, 187, 203, 199, 170, 143, 124,\n\t\t254, 171, 221, 91, 47, 190, 98, 75, 249, 60, 113, 87, 119,\n\t\t221, 117, 110, 44, 107, 30, 142, 161, 35, 147, 62, 235, 103,\n\t\t81, 159, 37, 15, 223, 179, 122, 244, 228, 202, 75, 55, 127,\n\t\t153, 76, 127, 135, 164, 91, 239, 121, 15, 68, 137, 255, 166,\n\t\t172, 209, 51, 100, 63, 180, 171, 5, 192, 110, 251, 148, 107,\n\t\t149, 91, 149, 151, 34, 235, 111, 174, 96, 2, 33, 193, 98,\n\t\t27, 2, 195, 26, 82, 172, 142, 121, 61, 218, 146, 152, 96,\n\t\t56, 90, 206, 197, 111, 251, 249, 196, 39, 242, 94, 143, 146,\n\t\t124, 68, 24, 41, 200, 86, 54, 136, 164, 202, 105, 231, 53,\n\t\t30, 56, 20, 4, 59, 226, 20, 188, 144, 44, 139, 89, 171, 61,\n\t\t128, 190, 13, 93, 191, 159, 245, 71, 125, 184, 201, 47, 116,\n\t\t67, 234, 218, 17, 165, 37, 135, 100, 82, 243, 89, 197, 162,\n\t\t98, 43, 244, 68, 12, 125, 138, 123, 145, 103, 218, 94, 133,\n\t\t67, 248, 200, 42, 119, 63, 47, 170, 6, 157, 234, 116, 173,\n\t\t214, 142, 211, 52, 62, 147, 148, 135, 221, 106, 81, 45, 67,\n\t\t175, 43, 213, 43, 196, 201, 188, 164, 85, 21, 246, 221, 58,\n\t\t211, 212, 136, 179, 126, 125, 130, 180, 235, 3, 163, 64, 90,\n\t\t1, 13, 60, 143, 132, 77, 26, 121, 69, 205, 20, 66, 195, 2,\n\t\t108, 215, 47, 233, 58, 169, 164, 59, 0, 118, 104, 154, 213,\n\t\t246, 171, 81, 101, 98, 239, 251, 47, 142, 59, 241, 7, 179,\n\t\t168, 171, 82, 171, 16, 59, 177, 85, 76, 110, 200, 138, 89,\n\t\t232, 128, 95, 139, 184, 161, 29, 42, 144, 216, 120, 252, 254,\n\t\t251, 223, 86, 138, 114, 14, 244, 63, 163, 155, 228, 157, 208,\n\t\t91, 61, 169, 10, 182, 95, 57, 162, 60, 95, 121, 5, 142, 171,\n\t\t227, 16, 89, 6, 151, 36, 23, 176, 127, 110, 241, 148, 134,\n\t\t60, 2, 216, 166, 81, 75, 70, 82, 13, 224, 149, 206, 211, 143,\n\t\t199, 204, 41, 72, 14, 132, 220, 226, 253, 1, 38, 111, 100,\n\t\t50, 47, 3, 204, 35, 42, 10, 87, 199, 87, 20, 54, 194, 132,\n\t\t106, 156, 118, 207, 240, 94, 181, 19, 105, 59, 201, 124, 181,\n\t\t80, 184, 56, 206, 184, 45, 194, 111, 131, 181, 111, 72, 107,\n\t\t255, 12, 88, 251, 77, 219, 52, 136, 99, 152, 235, 17, 9, 204,\n\t\t128, 91, 38, 132, 2, 90, 2, 110, 209, 114, 76, 213, 181, 93,\n\t\t13, 96, 220, 235, 139, 113, 63, 169, 58, 137, 125, 194, 12,\n\t\t109, 43, 180, 34, 22, 196, 165, 174, 225, 25, 153, 17, 223,\n\t\t146, 22, 72, 49, 157, 160, 170, 11, 209, 158, 240, 3, 8, 22,\n\t\t70, 163, 19, 14, 150, 243, 154, 252, 15, 207, 171, 62, 124,\n\t\t29, 177, 44, 135, 152, 214, 213, 70, 18, 88, 46, 33, 170,\n\t\t42, 72, 24, 77, 122, 17, 231, 161, 177, 55, 46, 60, 186, 96,\n\t\t37, 56, 202, 38, 92, 195, 13, 116, 194, 202, 186, 43, 2, 255,\n\t\t166, 203, 46, 187, 137, 187, 62, 64, 125, 201, 47, 248, 89,\n\t\t114, 39, 96, 112, 31, 174, 235, 188, 178, 138, 58, 87, 162,\n\t\t66, 150, 228, 149, 146, 89, 20, 203, 81, 110, 40, 68, 59,\n\t\t215, 247, 201, 243, 150, 89, 224, 74, 218, 7, 172, 119, 193,\n\t\t244, 226, 223, 105, 17, 146, 250, 97, 74, 72, 131, 81, 245,\n\t\t177, 186, 105, 94, 223, 199, 146, 107, 173, 50, 211, 175,\n\t\t51, 122, 229, 116, 111, 178, 51, 243, 202, 114, 203, 164,\n\t\t218, 151, 157, 254, 122, 9, 218, 225, 158, 155, 226, 90, 76,\n\t\t168, 27, 36, 94, 84, 129, 40, 233, 150, 193, 218, 194, 75,\n\t\t150, 112, 20, 188, 60, 191, 119, 79, 245, 134, 185, 192, 139,\n\t\t183, 62, 71, 14, 178, 229, 29, 229, 11, 71, 243, 39, 157,\n\t\t240, 80, 239, 130, 151, 222, 172, 104, 231, 106, 241, 18,\n\t\t165, 11, 191, 248, 10, 229, 70, 169, 135, 153, 38, 21, 28,\n\t\t233, 235, 142, 167, 13, 208, 120, 13, 242, 236, 143, 56, 159,\n\t\t93, 232, 143, 11, 115, 198, 218, 139, 185, 188, 208, 178,\n\t\t252, 12, 9, 62, 144, 123, 42, 47, 128, 108, 97, 201, 71, 150,\n\t\t207, 139, 145, 188, 152, 241, 148, 184, 7, 48, 252, 142, 29,\n\t\t162, 208, 41, 96, 226, 217, 210, 139, 38, 102, 221, 30, 74,\n\t\t161, 251, 69, 87, 239, 118, 47, 10, 106, 140, 250, 30, 55,\n\t\t12, 1, 112, 136, 122, 198, 251, 201, 101, 122, 97, 18, 69,\n\t\t18, 85, 194, 84, 103, 161, 202, 15, 83, 114, 83, 208, 192,\n\t\t210, 171, 70, 144, 26, 156, 235, 228, 9, 170, 126, 235, 237,\n\t\t7, 36, 10, 44, 118, 50, 227, 190, 135, 130, 230, 220, 31,\n\t\t126, 138, 123, 211, 226, 187, 220, 43, 6, 88, 122, 177, 161,\n\t\t38, 161, 87, 2, 0, 199, 93, 110, 36, 142, 126, 146, 80, 181,\n\t\t56, 89, 16, 47, 163, 234, 181, 109, 192, 53, 186, 94, 4, 36,\n\t\t76, 254, 244, 79, 191, 168, 133, 129, 227, 4, 161, 202, 51,\n\t\t215, 203, 208, 230, 187, 208, 111, 254, 13, 108, 208, 107,\n\t\t192, 254, 156, 146, 163, 122, 15, 41, 63, 165, 124, 80, 249,\n\t\t188, 242, 117, 229, 223, 32, 198, 105, 145, 9, 210, 3, 23,\n\t\t56, 174, 177, 88, 254, 223, 212, 88, 252, 132, 18, 11, 62,\n\t\t138, 199, 37, 22, 137, 28, 0, 199, 203, 190, 93, 93, 49, 232,\n\t\t110, 23, 87, 140, 158, 21, 203, 195, 185, 234, 17, 94, 92,\n\t\t52, 106, 208, 225, 192, 67, 194, 230, 93, 57, 148, 221, 129,\n\t\t59, 144, 127, 67, 158, 79, 192, 243, 175, 24, 127, 165, 172,\n\t\t172, 76, 59, 82, 212, 248, 252, 223, 129, 177, 112, 29, 243,\n\t\t148, 151, 0, 48, 10, 172, 177, 234, 103, 233, 96, 180, 56,\n\t\t24, 9, 222, 125, 206, 185, 60, 119, 95, 88, 43, 70, 203, 75,\n\t\t152, 188, 189, 232, 145, 197, 54, 42, 225, 45, 138, 56, 225,\n\t\t207, 217, 46, 1, 75, 218, 75, 200, 26, 99, 17, 163, 200, 250,\n\t\t2, 61, 109, 167, 252, 219, 65, 8, 242, 178, 9, 26, 112, 8,\n\t\t224, 249, 206, 252, 143, 206, 84, 235, 84, 39, 20, 226, 229,\n\t\t98, 169, 140, 116, 74, 20, 154, 134, 112, 92, 123, 196, 56,\n\t\t22, 193, 26, 130, 70, 174, 228, 84, 64, 67, 44, 137, 138,\n\t\t183, 254, 65, 37, 29, 166, 250, 128, 254, 125, 166, 66, 215,\n\t\t87, 119, 203, 9, 153, 117, 70, 46, 101, 187, 225, 157, 252,\n\t\t243, 84, 70, 59, 108, 62, 129, 136, 19, 255, 210, 175, 194,\n\t\t134, 20, 12, 59, 252, 173, 83, 218, 81, 243, 45, 225, 249,\n\t\t50, 155, 160, 152, 48, 252, 255, 17, 129, 183, 108, 125, 124,\n\t\t132, 195, 228, 34, 36, 236, 151, 236, 200, 58, 33, 77, 66,\n\t\t246, 202, 231, 124, 1, 201, 234, 224, 101, 111, 8, 113, 158,\n\t\t216, 43, 212, 166, 10, 127, 98, 47, 50, 116, 237, 149, 3,\n\t\t138, 200, 242, 239, 69, 224, 159, 137, 165, 203, 161, 196,\n\t\t41, 166, 49, 140, 243, 221, 48, 66, 210, 18, 77, 6, 166, 12,\n\t\t226, 129, 55, 93, 15, 198, 63, 161, 234, 172, 70, 145, 230,\n\t\t139, 106, 179, 42, 77, 8, 165, 215, 171, 16, 225, 144, 9,\n\t\t122, 243, 111, 192, 2, 68, 59, 84, 189, 64, 101, 109, 156,\n\t\t40, 83, 79, 130, 185, 72, 232, 107, 136, 227, 144, 2, 197,\n\t\t95, 79, 11, 184, 71, 136, 105, 148, 56, 92, 148, 82, 218,\n\t\t134, 206, 148, 192, 11, 238, 53, 222, 61, 80, 33, 194, 69,\n\t\t158, 25, 120, 154, 198, 44, 201, 54, 126, 174, 29, 220, 254,\n\t\t124, 248, 48, 234, 115, 82, 192, 121, 95, 2, 99, 250, 41,\n\t\t101, 14, 243, 248, 36, 163, 219, 88, 206, 44, 151, 20, 203,\n\t\t9, 57, 115, 207, 48, 14, 67, 231, 249, 74, 119, 180, 136,\n\t\t74, 101, 219, 252, 54, 35, 169, 143, 147, 243, 228, 102, 99,\n\t\t98, 164, 156, 19, 78, 167, 47, 59, 113, 203, 59, 2, 255, 170,\n\t\t163, 142, 86, 46, 105, 118, 135, 147, 110, 185, 58, 167, 170,\n\t\t89, 6, 43, 202, 170, 117, 108, 70, 149, 14, 17, 46, 10, 209,\n\t\t246, 237, 82, 105, 154, 17, 117, 145, 145, 185, 205, 106,\n\t\t84, 38, 218, 164, 10, 95, 66, 213, 81, 115, 96, 153, 111,\n\t\t190, 233, 232, 125, 31, 187, 233, 49, 219, 121, 209, 169,\n\t\t227, 63, 215, 228, 206, 193, 3, 182, 22, 244, 52, 94, 158,\n\t\t166, 172, 93, 41, 204, 152, 176, 234, 160, 165, 181, 174,\n\t\t212, 125, 15, 208, 141, 195, 109, 22, 104, 171, 55, 86, 169,\n\t\t182, 115, 151, 202, 106, 171, 141, 69, 51, 48, 23, 32, 250,\n\t\t153, 43, 82, 117, 215, 78, 141, 150, 230, 159, 119, 236, 154,\n\t\t151, 56, 230, 43, 243, 58, 150, 111, 82, 133, 252, 178, 178,\n\t\t6, 72, 247, 168, 114, 66, 185, 23, 80, 9, 218, 133, 183, 41,\n\t\t239, 81, 62, 162, 124, 82, 249, 47, 202, 55, 149, 111, 203,\n\t\t81, 24, 89, 136, 43, 198, 140, 162, 121, 77, 120, 78, 142,\n\t\t132, 212, 156, 99, 85, 168, 145, 164, 215, 26, 230, 76, 160,\n\t\t57, 133, 14, 236, 210, 59, 71, 53, 42, 175, 105, 62, 24, 138,\n\t\t124, 161, 146, 62, 52, 59, 23, 214, 231, 251, 231, 5, 42,\n\t\t60, 227, 82, 155, 141, 203, 149, 176, 65, 15, 5, 232, 186,\n\t\t82, 97, 52, 103, 37, 93, 154, 39, 76, 110, 129, 225, 75, 206,\n\t\t180, 158, 239, 255, 44, 75, 213, 8, 77, 123, 42, 131, 202,\n\t\t252, 183, 215, 232, 54, 157, 95, 47, 255, 21, 203, 221, 220,\n\t\t18, 197, 228, 93, 211, 43, 163, 57, 156, 235, 229, 212, 115,\n\t\t226, 93, 77, 93, 3, 168, 185, 17, 67, 224, 65, 169, 102, 204,\n\t\t12, 150, 167, 49, 77, 218, 176, 227, 120, 179, 5, 126, 149,\n\t\t55, 119, 197, 9, 142, 168, 235, 15, 114, 192, 109, 77, 240,\n\t\t119, 186, 112, 156, 197, 55, 114, 221, 228, 105, 1, 194, 47,\n\t\t131, 235, 66, 47, 112, 11, 92, 114, 150, 21, 82, 215, 68,\n\t\t25, 105, 88, 158, 207, 96, 241, 131, 134, 40, 100, 2, 162,\n\t\t67, 147, 39, 5, 161, 243, 235, 125, 183, 86, 115, 31, 177,\n\t\t145, 249, 166, 213, 132, 8, 182, 186, 210, 49, 93, 215, 52,\n\t\t69, 123, 154, 250, 133, 158, 120, 153, 166, 21, 162, 86, 11,\n\t\t2, 86, 1, 86, 189, 190, 236, 59, 174, 239, 121, 222, 91, 192,\n\t\t195, 211, 102, 59, 202, 116, 45, 104, 23, 13, 47, 46, 244,\n\t\t146, 217, 54, 28, 214, 245, 76, 246, 202, 110, 185, 220, 45,\n\t\t19, 207, 155, 202, 178, 89, 48, 48, 16, 170, 45, 78, 8, 43,\n\t\t46, 195, 185, 105, 213, 196, 178, 214, 225, 156, 8, 243, 102,\n\t\t211, 116, 218, 101, 76, 55, 166, 55, 108, 43, 173, 195, 217,\n\t\t105, 213, 216, 178, 246, 205, 9, 149, 30, 213, 120, 177, 194,\n\t\t116, 149, 247, 134, 186, 136, 255, 206, 246, 10, 137, 70,\n\t\t205, 71, 211, 212, 6, 224, 194, 14, 165, 81, 28, 129, 233,\n\t\t137, 226, 56, 141, 34, 48, 59, 113, 148, 28, 244, 77, 166,\n\t\t101, 137, 183, 39, 77, 53, 230, 56, 230, 13, 178, 34, 227,\n\t\t18, 209, 159, 48, 53, 193, 42, 69, 81, 74, 182, 190, 215,\n\t\t170, 215, 155, 140, 217, 13, 55, 178, 66, 135, 222, 172, 106,\n\t\t165, 10, 133, 104, 121, 98, 73, 8, 221, 94, 12, 67, 66, 226,\n\t\t249, 86, 131, 115, 216, 161, 164, 51, 63, 82, 85, 251, 65,\n\t\t61, 77, 77, 167, 105, 83, 218, 172, 53, 234, 65, 25, 79, 110,\n\t\t123, 92, 225, 43, 224, 215, 62, 164, 112, 89, 129, 17, 66,\n\t\t107, 141, 0, 155, 97, 93, 90, 175, 173, 137, 94, 134, 201,\n\t\t131, 100, 253, 61, 23, 23, 95, 82, 188, 228, 165, 87, 76,\n\t\t81, 178, 231, 137, 248, 125, 91, 107, 241, 19, 38, 249, 208,\n\t\t86, 227, 178, 203, 94, 247, 240, 111, 24, 171, 190, 191, 106,\n\t\t212, 149, 92, 119, 85, 25, 193, 241, 158, 167, 76, 1, 174,\n\t\t124, 88, 249, 128, 242, 25, 229, 115, 56, 231, 155, 37, 249,\n\t\t96, 61, 151, 178, 17, 121, 192, 13, 184, 66, 210, 186, 73,\n\t\t65, 154, 129, 172, 177, 230, 34, 205, 209, 103, 111, 52, 246,\n\t\t130, 232, 7, 177, 166, 59, 19, 210, 9, 214, 52, 109, 185,\n\t\t143, 245, 194, 187, 243, 156, 95, 201, 8, 135, 59, 194, 226,\n\t\t46, 112, 132, 173, 252, 128, 109, 204, 224, 204, 35, 146,\n\t\t36, 30, 73, 241, 155, 255, 183, 99, 246, 242, 146, 84, 236,\n\t\t72, 89, 206, 173, 217, 29, 38, 125, 136, 12, 232, 233, 114,\n\t\t153, 69, 72, 0, 40, 24, 201, 50, 194, 45, 14, 55, 139, 61,\n\t\t127, 198, 173, 197, 173, 82, 146, 68, 73, 149, 146, 105, 195,\n\t\t203, 156, 74, 25, 137, 255, 144, 117, 82, 53, 182, 126, 129,\n\t\t129, 37, 119, 103, 92, 83, 224, 78, 208, 78, 113, 39, 121,\n\t\t164, 195, 223, 155, 49, 252, 130, 223, 44, 159, 219, 215,\n\t\t79, 157, 106, 9, 128, 73, 8, 136, 147, 107, 198, 219, 27,\n\t\t109, 122, 61, 111, 7, 129, 95, 170, 101, 237, 132, 204, 237,\n\t\t40, 23, 255, 34, 37, 21, 146, 154, 77, 187, 24, 23, 137, 106,\n\t\t24, 70, 211, 108, 104, 84, 107, 152, 45, 0, 163, 133, 184,\n\t\t104, 55, 167, 221, 150, 155, 185, 105, 61, 112, 13, 48, 240,\n\t\t126, 13, 26, 134, 136, 43, 14, 4, 33, 42, 50, 30, 173, 181,\n\t\t212, 225, 127, 50, 28, 189, 101, 192, 126, 188, 110, 182,\n\t\t116, 199, 44, 196, 37, 171, 105, 100, 112, 96, 163, 5, 7,\n\t\t254, 176, 179, 203, 109, 89, 161, 171, 255, 47, 15, 178, 127,\n\t\t166, 41, 236, 182, 89, 14, 163, 110, 177, 51, 191, 55, 191,\n\t\t223, 103, 127, 116, 246, 139, 244, 97, 242, 20, 44, 255, 55,\n\t\t229, 7, 68, 64, 152, 93, 132, 251, 61, 90, 30, 71, 196, 8,\n\t\t29, 113, 76, 42, 77, 198, 174, 96, 116, 206, 206, 136, 177,\n\t\t123, 24, 175, 29, 158, 247, 9, 160, 139, 1, 6, 114, 27, 168,\n\t\t184, 75, 115, 117, 44, 172, 8, 65, 5, 141, 244, 89, 211, 137,\n\t\t42, 157, 8, 163, 135, 163, 177, 4, 209, 246, 56, 52, 14, 63,\n\t\t231, 44, 229, 146, 62, 8, 181, 129, 226, 108, 69, 14, 122,\n\t\t163, 236, 235, 176, 191, 8, 11, 88, 21, 226, 50, 216, 37,\n\t\t93, 66, 251, 153, 44, 14, 22, 199, 210, 86, 152, 212, 12,\n\t\t159, 225, 20, 82, 156, 141, 197, 46, 146, 101, 212, 241, 64,\n\t\t59, 169, 13, 123, 139, 188, 133, 167, 135, 176, 93, 58, 51,\n\t\t169, 191, 77, 48, 96, 92, 94, 103, 56, 153, 181, 196, 61,\n\t\t154, 202, 49, 14, 228, 65, 158, 255, 151, 41, 192, 226, 40,\n\t\t125, 173, 121, 90, 173, 211, 46, 107, 164, 96, 218, 208, 148,\n\t\t44, 189, 132, 89, 38, 94, 44, 213, 32, 99, 211, 50, 92, 11,\n\t\t115, 102, 42, 92, 165, 170, 141, 248, 197, 247, 76, 212, 28,\n\t\t180, 0, 2, 233, 96, 72, 44, 110, 106, 134, 77, 168, 112, 77,\n\t\t93, 53, 152, 31, 172, 213, 28, 215, 242, 47, 198, 100, 26,\n\t\t99, 174, 221, 80, 89, 214, 220, 113, 114, 239, 139, 45, 115,\n\t\t215, 66, 231, 66, 211, 139, 48, 247, 69, 139, 231, 46, 188,\n\t\t218, 183, 110, 59, 220, 90, 66, 69, 71, 82, 223, 9, 183, 55,\n\t\t14, 224, 246, 195, 183, 75, 232, 4, 192, 3, 117, 53, 85, 201,\n\t\t9, 133, 16, 10, 76, 22, 150, 106, 100, 14, 145, 44, 103, 250,\n\t\t4, 170, 101, 100, 46, 82, 84, 1, 116, 41, 111, 221, 87, 151,\n\t\t60, 86, 58, 45, 55, 12, 83, 111, 189, 37, 209, 0, 188, 185,\n\t\t136, 99, 24, 90, 89, 77, 220, 83, 212, 56, 152, 174, 107,\n\t\t74, 212, 225, 198, 129, 171, 103, 203, 65, 44, 25, 147, 205,\n\t\t250, 132, 170, 66, 232, 150, 134, 2, 229, 38, 171, 25, 116,\n\t\t93, 199, 105, 84, 137, 234, 219, 69, 143, 171, 154, 100, 163,\n\t\t98, 45, 48, 94, 90, 25, 44, 224, 100, 163, 230, 35, 118, 139,\n\t\t74, 142, 19, 249, 16, 17, 104, 122, 199, 47, 5, 96, 132, 25,\n\t\t113, 214, 11, 229, 162, 174, 118, 106, 19, 93, 156, 227, 105,\n\t\t20, 167, 226, 96, 84, 27, 180, 10, 165, 233, 169, 171, 80,\n\t\t128, 67, 11, 144, 175, 141, 39, 170, 113, 162, 85, 98, 173,\n\t\t160, 93, 170, 64, 251, 238, 205, 32, 249, 21, 92, 106, 48,\n\t\t199, 150, 133, 48, 2, 172, 183, 235, 7, 66, 51, 225, 218,\n\t\t227, 53, 208, 157, 171, 76, 213, 129, 243, 48, 28, 205, 240,\n\t\t133, 183, 51, 48, 141, 241, 27, 94, 112, 126, 166, 133, 250,\n\t\t152, 26, 241, 235, 93, 77, 179, 159, 223, 135, 219, 162, 251,\n\t\t69, 61, 244, 28, 1, 77, 194, 14, 151, 225, 118, 10, 145, 48,\n\t\t232, 177, 69, 204, 144, 10, 207, 229, 117, 98, 30, 27, 87,\n\t\t108, 212, 131, 180, 72, 63, 27, 137, 50, 105, 139, 30, 57,\n\t\t125, 205, 51, 207, 124, 104, 113, 245, 153, 247, 189, 111,\n\t\t120, 223, 125, 228, 204, 214, 25, 114, 230, 248, 241, 198,\n\t\t214, 51, 164, 241, 59, 191, 35, 199, 55, 253, 179, 207, 144,\n\t\t15, 145, 39, 17, 121, 33, 234, 216, 192, 220, 30, 38, 122,\n\t\t56, 52, 138, 138, 58, 159, 232, 118, 187, 95, 105, 124, 232,\n\t\t67, 13, 114, 244, 225, 135, 23, 203, 119, 151, 62, 122, 237,\n\t\t181, 223, 61, 180, 245, 221, 27, 111, 36, 241, 214, 15, 200,\n\t\t196, 214, 183, 246, 238, 205, 235, 181, 148, 99, 96, 155,\n\t\t39, 225, 55, 24, 50, 43, 184, 172, 44, 66, 252, 255, 148,\n\t\t242, 89, 48, 218, 210, 230, 103, 61, 1, 240, 28, 19, 94, 80,\n\t\t217, 112, 148, 107, 29, 37, 105, 140, 220, 190, 52, 103, 253,\n\t\t149, 83, 238, 25, 31, 107, 105, 185, 20, 27, 125, 186, 44,\n\t\t89, 143, 198, 162, 27, 163, 1, 88, 228, 184, 37, 95, 251,\n\t\t227, 218, 205, 254, 64, 50, 147, 159, 247, 30, 89, 120, 158,\n\t\t125, 215, 27, 239, 209, 75, 158, 61, 74, 15, 71, 26, 224,\n\t\t121, 165, 143, 101, 54, 242, 231, 225, 168, 1, 214, 114, 141,\n\t\t32, 188, 132, 120, 67, 244, 250, 163, 172, 223, 187, 35, 90,\n\t\t137, 130, 245, 245, 245, 168, 119, 221, 122, 48, 55, 23, 68,\n\t\t222, 111, 133, 83, 55, 191, 214, 12, 11, 149, 66, 104, 154,\n\t\t134, 230, 219, 21, 27, 133, 175, 45, 48, 151, 102, 98, 24,\n\t\t174, 174, 187, 134, 145, 152, 134, 123, 181, 137, 82, 23,\n\t\t71, 204, 162, 89, 69, 82, 59, 173, 171, 34, 225, 56, 14, 234,\n\t\t88, 122, 151, 35, 211, 93, 213, 44, 24, 71, 44, 29, 182, 58,\n\t\t254, 15, 132, 236, 217, 3, 189, 145, 115, 82, 8, 195, 141,\n\t\t245, 32, 42, 144, 140, 109, 110, 18, 242, 15, 199, 127, 55,\n\t\t132, 24, 37, 126, 207, 244, 244, 35, 143, 220, 52, 179, 246,\n\t\t200, 169, 83, 103, 206, 156, 121, 224, 129, 7, 108, 187, 35,\n\t\t127, 67, 148, 85, 10, 134, 38, 211, 106, 12, 187, 147, 70,\n\t\t46, 116, 54, 213, 141, 210, 48, 95, 216, 79, 44, 20, 205,\n\t\t182, 8, 55, 52, 26, 199, 84, 99, 5, 87, 160, 144, 162, 38,\n\t\t80, 8, 2, 154, 153, 160, 182, 154, 225, 186, 2, 203, 183,\n\t\t48, 248, 246, 62, 128, 87, 84, 166, 50, 104, 233, 58, 248,\n\t\t247, 210, 212, 171, 95, 61, 85, 226, 240, 115, 228, 156, 170,\n\t\t107, 94, 54, 57, 57, 131, 113, 190, 242, 82, 250, 16, 121,\n\t\t169, 242, 231, 202, 119, 149, 31, 2, 198, 47, 201, 106, 75,\n\t\t143, 32, 199, 34, 235, 13, 218, 112, 43, 145, 75, 70, 82,\n\t\t46, 226, 204, 153, 204, 236, 197, 65, 180, 13, 210, 230, 178,\n\t\t82, 135, 75, 190, 125, 220, 16, 17, 107, 15, 117, 212, 198,\n\t\t50, 194, 24, 219, 97, 112, 218, 151, 38, 57, 195, 228, 224,\n\t\t197, 156, 241, 9, 211, 172, 229, 76, 227, 80, 174, 205, 16,\n\t\t245, 47, 167, 216, 20, 50, 84, 225, 134, 155, 41, 22, 1, 127,\n\t\t226, 134, 168, 16, 138, 207, 178, 172, 93, 178, 53, 97, 246,\n\t\t240, 202, 32, 79, 81, 196, 189, 107, 72, 159, 73, 199, 135,\n\t\t172, 147, 254, 58, 195, 99, 72, 177, 111, 176, 195, 176, 175,\n\t\t150, 43, 32, 187, 164, 195, 197, 186, 138, 51, 33, 105, 206,\n\t\t86, 59, 79, 93, 86, 193, 137, 72, 58, 28, 165, 146, 128, 170,\n\t\t139, 85, 91, 244, 12, 118, 126, 179, 104, 112, 3, 11, 214,\n\t\t98, 162, 90, 22, 167, 70, 197, 119, 99, 149, 37, 59, 237,\n\t\t148, 107, 97, 106, 72, 171, 232, 8, 134, 67, 17, 152, 206,\n\t\t71, 169, 109, 218, 186, 208, 56, 241, 9, 199, 226, 11, 95,\n\t\t13, 44, 136, 61, 85, 142, 83, 122, 148, 187, 229, 196, 210,\n\t\t139, 126, 64, 145, 249, 17, 240, 41, 177, 24, 129, 40, 206,\n\t\t200, 197, 116, 32, 100, 241, 132, 228, 33, 132, 55, 21, 130,\n\t\t115, 159, 16, 211, 50, 205, 132, 80, 79, 67, 146, 106, 12,\n\t\t138, 69, 144, 10, 107, 209, 117, 66, 8, 112, 53, 8, 134, 69,\n\t\t77, 77, 144, 46, 210, 113, 9, 117, 12, 238, 152, 152, 67,\n\t\t9, 55, 219, 39, 50, 173, 16, 43, 242, 152, 41, 36, 103, 34,\n\t\t247, 84, 213, 252, 209, 103, 185, 11, 198, 76, 117, 108, 18,\n\t\t248, 224, 91, 60, 75, 167, 106, 72, 176, 202, 6, 147, 47,\n\t\t153, 161, 155, 240, 53, 154, 109, 222, 236, 155, 72, 14, 105,\n\t\t32, 1, 235, 111, 170, 16, 197, 82, 14, 144, 221, 180, 109,\n\t\t85, 221, 201, 208, 224, 193, 9, 225, 4, 153, 3, 97, 169, 13,\n\t\t103, 161, 154, 166, 39, 26, 142, 93, 42, 152, 22, 177, 245,\n\t\t178, 237, 20, 10, 137, 212, 3, 134, 142, 131, 131, 51, 118,\n\t\t136, 44, 135, 170, 42, 243, 42, 35, 167, 65, 188, 164, 5,\n\t\t70, 24, 14, 131, 66, 51, 67, 156, 229, 49, 212, 130, 105,\n\t\t208, 9, 198, 45, 98, 249, 146, 88, 127, 14, 89, 49, 153, 53,\n\t\t72, 193, 65, 50, 186, 115, 193, 196, 89, 90, 8, 143, 77, 161,\n\t\t215, 231, 118, 187, 186, 61, 233, 185, 176, 155, 202, 73,\n\t\t39, 99, 154, 29, 71, 128, 2, 113, 26, 142, 35, 159, 191, 189,\n\t\t36, 144, 89, 82, 51, 113, 206, 28, 185, 33, 61, 33, 234, 4,\n\t\t89, 58, 85, 31, 142, 16, 193, 150, 233, 93, 35, 159, 153,\n\t\t149, 172, 196, 211, 89, 246, 214, 200, 55, 115, 53, 2, 102,\n\t\t133, 129, 49, 94, 108, 129, 255, 114, 24, 179, 98, 195, 103,\n\t\t114, 108, 154, 157, 125, 154, 124, 154, 60, 173, 204, 99,\n\t\t63, 25, 143, 42, 99, 186, 241, 54, 117, 216, 179, 124, 196,\n\t\t203, 200, 73, 136, 163, 152, 136, 96, 201, 167, 156, 81, 39,\n\t\t189, 176, 186, 188, 23, 194, 235, 216, 117, 227, 172, 181,\n\t\t208, 202, 136, 229, 101, 89, 213, 233, 28, 49, 179, 125, 148,\n\t\t27, 199, 117, 158, 85, 170, 132, 92, 226, 71, 128, 116, 94,\n\t\t28, 84, 178, 86, 43, 171, 250, 13, 13, 186, 157, 86, 169,\n\t\t232, 200, 251, 238, 195, 247, 223, 3, 223, 127, 142, 71, 102,\n\t\t212, 14, 250, 89, 0, 79, 248, 0, 163, 185, 119, 121, 249,\n\t\t116, 255, 231, 250, 63, 187, 252, 42, 178, 247, 162, 173,\n\t\t139, 200, 71, 241, 241, 207, 255, 44, 107, 238, 149, 139,\n\t\t192, 206, 79, 193, 190, 198, 184, 246, 99, 67, 185, 64, 249,\n\t\t5, 229, 221, 202, 7, 225, 56, 131, 20, 115, 44, 121, 111,\n\t\t52, 209, 58, 119, 18, 82, 103, 116, 148, 244, 106, 20, 85,\n\t\t207, 80, 179, 76, 224, 12, 43, 242, 150, 173, 12, 86, 176,\n\t\t228, 14, 186, 176, 24, 172, 224, 160, 208, 178, 220, 170,\n\t\t194, 92, 13, 139, 173, 123, 227, 109, 0, 187, 37, 121, 194,\n\t\t102, 183, 151, 151, 233, 131, 101, 144, 161, 37, 28, 121,\n\t\t94, 149, 150, 32, 27, 37, 50, 182, 101, 125, 8, 43, 71, 216,\n\t\t5, 83, 164, 248, 146, 7, 125, 19, 4, 67, 221, 238, 212, 48,\n\t\t34, 239, 45, 4, 65, 209, 223, 185, 243, 145, 157, 199, 1,\n\t\t117, 51, 157, 107, 174, 99, 169, 172, 17, 34, 6, 71, 79, 107,\n\t\t52, 146, 52, 189, 3, 223, 33, 103, 187, 202, 206, 251, 220,\n\t\t104, 239, 113, 74, 81, 82, 43, 91, 150, 218, 76, 194, 196,\n\t\t48, 119, 6, 37, 87, 200, 28, 144, 229, 169, 116, 179, 203,\n\t\t182, 183, 254, 97, 117, 62, 100, 52, 76, 255, 60, 77, 79,\n\t\t65, 131, 224, 142, 21, 146, 151, 4, 182, 237, 56, 182, 253,\n\t\t216, 221, 119, 191, 175, 252, 185, 23, 115, 91, 74, 91, 0,\n\t\t56, 176, 57, 210, 61, 145, 80, 228, 107, 44, 43, 244, 13,\n\t\t122, 98, 210, 178, 38, 157, 43, 242, 173, 12, 48, 183, 200,\n\t\t180, 206, 169, 166, 99, 182, 112, 36, 87, 215, 220, 82, 99,\n\t\t152, 166, 254, 73, 59, 92, 242, 162, 42, 43, 23, 234, 190,\n\t\t47, 120, 245, 144, 95, 77, 67, 7, 66, 98, 143, 120, 102, 82,\n\t\t175, 49, 150, 239, 85, 115, 3, 143, 57, 189, 194, 14, 121,\n\t\t104, 137, 27, 4, 180, 131, 151, 66, 59, 208, 80, 237, 6, 240,\n\t\t66, 79, 180, 155, 125, 112, 124, 217, 19, 63, 123, 124, 125,\n\t\t253, 56, 153, 223, 247, 130, 123, 247, 207, 145, 167, 183,\n\t\t190, 245, 192, 3, 223, 250, 214, 177, 177, 159, 207, 231,\n\t\t75, 2, 153, 161, 184, 174, 28, 85, 142, 43, 183, 41, 247,\n\t\t43, 47, 70, 46, 60, 153, 231, 154, 46, 3, 224, 229, 178, 34,\n\t\t46, 27, 102, 73, 87, 160, 23, 30, 37, 98, 160, 201, 68, 91,\n\t\t25, 129, 13, 242, 68, 220, 49, 205, 75, 2, 237, 95, 27, 199,\n\t\t72, 201, 88, 228, 83, 38, 191, 244, 101, 5, 156, 140, 160,\n\t\t112, 196, 192, 195, 73, 132, 49, 43, 36, 230, 225, 167, 216,\n\t\t182, 222, 219, 106, 25, 182, 9, 189, 43, 46, 61, 98, 23, 19,\n\t\t103, 182, 123, 253, 236, 214, 217, 164, 148, 248, 149, 168,\n\t\t152, 149, 178, 0, 22, 155, 229, 66, 156, 100, 30, 189, 156,\n\t\t92, 205, 26, 176, 88, 77, 27, 81, 167, 94, 107, 29, 155, 119,\n\t\t12, 211, 189, 183, 56, 209, 46, 249, 30, 153, 237, 81, 223,\n\t\t192, 244, 89, 87, 39, 250, 125, 179, 100, 161, 219, 221, 48,\n\t\t76, 136, 251, 121, 33, 126, 124, 58, 53, 166, 132, 127, 235,\n\t\t219, 119, 77, 152, 19, 39, 133, 33, 178, 208, 75, 225, 66,\n\t\t122, 150, 48, 245, 36, 200, 202, 250, 180, 53, 99, 136, 146,\n\t\t209, 180, 131, 137, 82, 123, 126, 62, 114, 61, 175, 63, 211,\n\t\t153, 156, 180, 151, 205, 47, 89, 238, 203, 193, 171, 103,\n\t\t250, 94, 163, 249, 246, 183, 231, 26, 170, 214, 217, 207,\n\t\t146, 23, 193, 181, 111, 193, 117, 139, 193, 4, 231, 9, 200,\n\t\t227, 235, 162, 62, 123, 93, 126, 161, 185, 184, 99, 177, 113,\n\t\t231, 181, 173, 107, 234, 87, 92, 56, 106, 224, 155, 219, 143,\n\t\t93, 180, 119, 255, 161, 37, 210, 113, 83, 183, 80, 219, 53,\n\t\t121, 248, 210, 200, 121, 104, 190, 237, 23, 188, 66, 117,\n\t\t181, 115, 248, 170, 210, 107, 39, 148, 241, 253, 125, 134,\n\t\t60, 5, 216, 46, 65, 45, 199, 72, 122, 205, 145, 172, 106,\n\t\t144, 19, 137, 116, 196, 71, 203, 249, 253, 144, 55, 226, 35,\n\t\t149, 169, 126, 108, 139, 238, 209, 242, 196, 241, 93, 134,\n\t\t179, 243, 224, 132, 251, 242, 215, 85, 58, 78, 216, 169, 66,\n\t\t220, 127, 95, 241, 248, 213, 155, 116, 237, 210, 87, 61, 185,\n\t\t146, 185, 94, 37, 82, 173, 112, 165, 119, 108, 117, 118, 247,\n\t\t129, 98, 234, 130, 29, 113, 21, 66, 239, 35, 15, 130, 77,\n\t\t187, 70, 185, 87, 249, 168, 242, 101, 162, 144, 29, 96, 17,\n\t\t198, 201, 58, 178, 166, 51, 87, 176, 25, 139, 191, 200, 255,\n\t\t173, 25, 210, 106, 35, 191, 190, 172, 232, 95, 233, 69, 203,\n\t\t125, 169, 250, 183, 29, 187, 245, 146, 120, 9, 103, 114, 186,\n\t\t131, 197, 113, 125, 37, 68, 77, 113, 63, 47, 190, 7, 247,\n\t\t190, 24, 47, 97, 45, 95, 63, 143, 135, 100, 130, 194, 104,\n\t\t25, 45, 166, 252, 202, 100, 17, 122, 63, 54, 40, 228, 189,\n\t\t232, 181, 18, 89, 175, 32, 227, 65, 212, 221, 145, 26, 132,\n\t\t114, 196, 73, 206, 153, 110, 235, 16, 246, 1, 134, 254, 63,\n\t\t204, 189, 119, 156, 101, 87, 125, 39, 248, 78, 184, 231, 220,\n\t\t156, 195, 203, 177, 234, 221, 202, 225, 197, 86, 117, 133,\n\t\t14, 82, 7, 73, 173, 208, 173, 156, 37, 164, 22, 2, 73, 128,\n\t\t0, 73, 38, 103, 16, 209, 4, 27, 6, 15, 24, 118, 103, 24, 3,\n\t\t30, 131, 19, 48, 24, 47, 24, 27, 140, 141, 205, 216, 224,\n\t\t157, 89, 207, 46, 56, 176, 131, 237, 53, 51, 139, 61, 182,\n\t\t23, 28, 74, 251, 251, 157, 251, 170, 213, 66, 216, 159, 253,\n\t\t115, 187, 186, 94, 221, 247, 222, 189, 231, 158, 123, 210,\n\t\t47, 156, 239, 239, 251, 219, 38, 42, 163, 224, 12, 220, 128,\n\t\t27, 19, 51, 199, 149, 150, 108, 92, 168, 122, 127, 170, 206,\n\t\t207, 103, 247, 237, 22, 79, 51, 238, 111, 142, 46, 74, 98,\n\t\t152, 230, 27, 217, 198, 30, 50, 254, 79, 14, 211, 129, 156,\n\t\t109, 208, 230, 200, 44, 179, 77, 178, 45, 48, 234, 138, 76,\n\t\t22, 164, 96, 98, 28, 247, 49, 228, 21, 106, 158, 130, 245,\n\t\t88, 103, 59, 199, 218, 237, 133, 5, 41, 203, 141, 222, 157,\n\t\t29, 220, 13, 4, 225, 183, 124, 201, 124, 191, 86, 69, 97,\n\t\t79, 184, 172, 86, 22, 243, 238, 245, 53, 254, 65, 65, 205,\n\t\t150, 131, 30, 92, 175, 209, 173, 97, 6, 5, 203, 212, 152,\n\t\t166, 18, 140, 128, 88, 12, 146, 101, 18, 69, 29, 131, 107,\n\t\t122, 165, 156, 146, 223, 213, 57, 149, 32, 236, 125, 148,\n\t\t234, 24, 80, 10, 226, 116, 197, 135, 37, 75, 24, 152, 215,\n\t\t220, 39, 166, 29, 196, 90, 36, 133, 203, 64, 56, 210, 30,\n\t\t124, 13, 183, 54, 116, 7, 237, 53, 83, 26, 113, 136, 187,\n\t\t37, 68, 134, 2, 57, 133, 161, 16, 16, 233, 68, 234, 210, 141,\n\t\t65, 250, 179, 34, 121, 31, 40, 16, 101, 199, 21, 194, 50,\n\t\t245, 215, 18, 189, 7, 170, 4, 137, 225, 154, 222, 28, 215,\n\t\t156, 170, 1, 55, 133, 15, 64, 53, 209, 44, 141, 32, 14, 189,\n\t\t217, 0, 195, 80, 247, 56, 21, 241, 75, 5, 247, 104, 83, 145,\n\t\t203, 48, 94, 65, 255, 59, 136, 103, 214, 12, 109, 129, 218,\n\t\t18, 7, 51, 104, 88, 38, 120, 149, 104, 197, 141, 74, 220,\n\t\t208, 100, 74, 200, 105, 48, 114, 53, 250, 117, 141, 73, 56,\n\t\t96, 152, 85, 101, 113, 105, 9, 158, 203, 161, 77, 59, 138,\n\t\t220, 50, 46, 135, 11, 80, 9, 51, 1, 13, 251, 57, 72, 162,\n\t\t69, 13, 130, 89, 41, 210, 192, 9, 165, 218, 253, 129, 135,\n\t\t52, 29, 140, 170, 208, 160, 113, 84, 14, 14, 248, 240, 85,\n\t\t204, 36, 30, 60, 34, 227, 22, 152, 112, 8, 212, 162, 14, 121,\n\t\t101, 168, 211, 46, 140, 209, 34, 49, 98, 211, 243, 12, 253,\n\t\t32, 251, 99, 145, 190, 208, 46, 168, 244, 95, 76, 211, 123,\n\t\t9, 82, 89, 50, 118, 203, 205, 166, 145, 98, 176, 137, 10,\n\t\t61, 97, 22, 7, 19, 82, 156, 62, 133, 29, 234, 209, 113, 145,\n\t\t63, 90, 241, 4, 132, 165, 133, 210, 161, 210, 35, 165, 95,\n\t\t44, 125, 27, 36, 37, 198, 130, 225, 200, 159, 209, 81, 196,\n\t\t197, 208, 201, 10, 15, 69, 134, 154, 65, 131, 212, 25, 238,\n\t\t148, 206, 255, 48, 31, 101, 145, 17, 170, 216, 18, 20, 189,\n\t\t13, 88, 74, 226, 131, 169, 82, 36, 176, 194, 52, 160, 93,\n\t\t25, 139, 4, 78, 64, 150, 139, 34, 36, 89, 101, 148, 66, 207,\n\t\t195, 102, 154, 168, 56, 108, 53, 243, 10, 82, 119, 164, 140,\n\t\t218, 84, 3, 56, 193, 52, 116, 179, 137, 148, 38, 117, 154,\n\t\t108, 36, 221, 205, 3, 124, 16, 110, 210, 169, 43, 71, 59,\n\t\t100, 163, 72, 241, 2, 195, 31, 11, 200, 151, 201, 134, 40,\n\t\t74, 144, 27, 232, 68, 195, 18, 181, 254, 133, 217, 94, 96,\n\t\t140, 102, 78, 99, 152, 162, 195, 13, 152, 241, 155, 23, 50,\n\t\t194, 244, 167, 23, 64, 72, 178, 184, 7, 54, 194, 108, 61,\n\t\t217, 140, 211, 225, 193, 153, 163, 151, 147, 48, 78, 36, 24,\n\t\t46, 117, 207, 39, 63, 5, 131, 141, 89, 134, 205, 93, 232,\n\t\t37, 207, 215, 73, 247, 226, 93, 224, 223, 131, 190, 159, 51,\n\t\t85, 98, 23, 14, 150, 56, 232, 201, 96, 40, 165, 160, 116,\n\t\t199, 57, 124, 227, 107, 148, 52, 24, 23, 9, 142, 116, 110,\n\t\t75, 246, 10, 152, 18, 243, 30, 106, 131, 18, 116, 67, 234,\n\t\t74, 48, 172, 168, 73, 93, 139, 218, 154, 112, 181, 208, 53,\n\t\t64, 221, 117, 29, 223, 14, 164, 120, 27, 38, 194, 160, 105,\n\t\t163, 108, 27, 68, 183, 42, 148, 131, 32, 15, 188, 34, 197,\n\t\t137, 48, 36, 121, 11, 211, 142, 158, 74, 147, 133, 133, 90,\n\t\t245, 146, 1, 45, 99, 142, 142, 201, 165, 237, 94, 146, 8,\n\t\t208, 30, 104, 154, 181, 91, 235, 115, 120, 223, 53, 176, 249,\n\t\t205, 192, 143, 145, 133, 7, 134, 105, 104, 33, 46, 21, 244,\n\t\t101, 149, 128, 70, 167, 158, 32, 228, 239, 230, 96, 150, 218,\n\t\t96, 103, 88, 129, 103, 86, 169, 69, 29, 230, 235, 38, 134,\n\t\t59, 81, 204, 202, 140, 244, 163, 111, 185, 104, 67, 122, 133,\n\t\t81, 227, 230, 178, 134, 240, 26, 156, 176, 186, 202, 61, 19,\n\t\t233, 114, 112, 31, 106, 61, 240, 116, 215, 233, 48, 78, 189,\n\t\t109, 79, 232, 252, 57, 161, 33, 5, 40, 232, 240, 5, 189, 89,\n\t\t19, 1, 134, 219, 67, 61, 112, 158, 104, 10, 34, 140, 190,\n\t\t121, 208, 49, 164, 161, 170, 7, 19, 212, 186, 238, 19, 84,\n\t\t185, 115, 182, 73, 36, 180, 178, 159, 148, 67, 220, 96, 165,\n\t\t102, 49, 69, 56, 17, 255, 55, 161, 53, 36, 55, 209, 184, 112,\n\t\t43, 196, 1, 187, 147, 147, 141, 138, 133, 110, 126, 48, 87,\n\t\t188, 10, 178, 176, 55, 184, 178, 39, 152, 169, 242, 131, 170,\n\t\t4, 163, 158, 237, 101, 56, 229, 136, 206, 162, 58, 19, 154,\n\t\t218, 47, 250, 2, 57, 52, 211, 101, 49, 26, 61, 10, 192, 116,\n\t\t39, 135, 222, 167, 254, 253, 202, 237, 183, 19, 109, 255,\n\t\t213, 183, 125, 243, 155, 23, 120, 19, 62, 79, 62, 8, 26, 111,\n\t\t90, 106, 252, 8, 222, 4, 133, 30, 24, 71, 67, 21, 182, 79,\n\t\t94, 83, 233, 245, 202, 251, 255, 1, 94, 43, 181, 207, 93,\n\t\t251, 188, 221, 99, 143, 222, 244, 133, 187, 200, 7, 123, 149,\n\t\t253, 207, 226, 55, 228, 100, 165, 119, 227, 235, 94, 247,\n\t\t162, 23, 237, 127, 239, 181, 175, 125, 164, 224, 124, 187,\n\t\t128, 157, 60, 136, 138, 254, 145, 252, 214, 72, 59, 53, 157,\n\t\t253, 146, 143, 25, 142, 99, 236, 63, 136, 175, 111, 95, 248,\n\t\t202, 227, 248, 143, 124, 232, 224, 19, 242, 30, 195, 217,\n\t\t255, 220, 87, 190, 178, 176, 112, 141, 250, 127, 17, 247,\n\t\t3, 133, 149, 98, 128, 56, 124, 249, 140, 153, 95, 36, 153,\n\t\t129, 153, 165, 60, 135, 32, 2, 49, 194, 14, 1, 146, 133, 3,\n\t\t242, 87, 238, 188, 147, 104, 23, 163, 222, 150, 116, 81, 181,\n\t\t79, 54, 27, 143, 212, 171, 130, 243, 167, 189, 249, 187, 201,\n\t\t228, 59, 23, 13, 155, 223, 56, 220, 152, 157, 226, 172, 248,\n\t\t222, 118, 113, 190, 172, 216, 43, 254, 211, 176, 163, 24,\n\t\t195, 162, 152, 199, 201, 184, 19, 96, 242, 104, 36, 20, 39,\n\t\t231, 247, 255, 230, 230, 91, 144, 45, 156, 56, 55, 227, 225,\n\t\t129, 79, 95, 167, 175, 35, 143, 195, 21, 235, 160, 57, 60,\n\t\t92, 122, 9, 162, 236, 162, 139, 136, 122, 101, 122, 129, 149,\n\t\t119, 178, 78, 186, 46, 43, 222, 194, 211, 170, 253, 110, 16,\n\t\t179, 26, 170, 11, 61, 133, 22, 64, 37, 161, 216, 179, 42,\n\t\t194, 52, 80, 8, 227, 166, 184, 218, 187, 66, 154, 130, 124,\n\t\t198, 177, 125, 112, 3, 244, 25, 92, 72, 236, 146, 30, 100,\n\t\t150, 255, 71, 182, 200, 224, 255, 93, 117, 90, 23, 38, 41,\n\t\t103, 78, 172, 195, 104, 198, 207, 104, 86, 155, 35, 255, 143,\n\t\t174, 25, 115, 196, 77, 43, 153, 199, 104, 165, 211, 2, 83,\n\t\t126, 12, 6, 86, 61, 233, 215, 107, 148, 119, 150, 65, 162,\n\t\t138, 173, 202, 15, 214, 246, 142, 172, 118, 42, 112, 89, 214,\n\t\t107, 187, 213, 57, 191, 17, 84, 231, 230, 222, 0, 22, 72,\n\t\t57, 32, 221, 223, 98, 236, 183, 152, 19, 247, 222, 196, 12,\n\t\t249, 210, 80, 128, 52, 176, 40, 125, 19, 76, 88, 24, 224,\n\t\t215, 90, 175, 138, 226, 158, 197, 117, 205, 239, 194, 96,\n\t\t143, 92, 71, 47, 187, 141, 86, 230, 153, 116, 85, 99, 142,\n\t\t100, 38, 171, 88, 15, 236, 221, 186, 23, 221, 204, 216, 103,\n\t\t26, 203, 169, 241, 241, 249, 106, 80, 15, 230, 135, 243, 63,\n\t\t8, 176, 124, 156, 11, 165, 12, 244, 244, 7, 224, 8, 153, 202,\n\t\t247, 74, 231, 75, 47, 45, 189, 13, 62, 157, 177, 206, 205,\n\t\t15, 154, 152, 81, 91, 169, 130, 187, 92, 78, 182, 201, 26,\n\t\t95, 34, 61, 185, 69, 119, 53, 57, 69, 21, 4, 198, 142, 214,\n\t\t237, 193, 177, 28, 76, 6, 152, 121, 132, 185, 92, 246, 138,\n\t\t4, 157, 108, 137, 247, 100, 111, 126, 50, 90, 211, 102, 23,\n\t\t241, 11, 23, 241, 174, 128, 203, 200, 255, 242, 143, 63, 255,\n\t\t243, 255, 248, 243, 251, 191, 127, 227, 187, 111, 184, 225,\n\t\t221, 63, 247, 238, 27, 178, 197, 195, 39, 207, 110, 129, 233,\n\t\t172, 107, 182, 240, 152, 75, 49, 61, 5, 250, 17, 30, 239,\n\t\t156, 108, 187, 174, 30, 131, 240, 213, 35, 81, 101, 198, 79,\n\t\t204, 27, 60, 52, 92, 3, 67, 87, 148, 127, 4, 172, 48, 54,\n\t\t207, 52, 169, 50, 1, 114, 13, 134, 159, 201, 163, 249, 210,\n\t\t147, 248, 205, 65, 105, 177, 230, 129, 42, 33, 138, 194, 140,\n\t\t136, 155, 210, 17, 161, 200, 152, 65, 110, 186, 245, 37, 183,\n\t\t222, 250, 146, 231, 174, 158, 185, 237, 204, 234, 234, 153,\n\t\t181, 108, 101, 174, 157, 216, 239, 215, 12, 169, 40, 51, 79,\n\t\t98, 194, 4, 105, 221, 247, 51, 190, 63, 9, 53, 228, 22, 34,\n\t\t43, 255, 235, 170, 210, 154, 192, 200, 135, 117, 207, 136,\n\t\t188, 26, 88, 216, 93, 15, 57, 142, 200, 93, 123, 23, 46, 68,\n\t\t95, 180, 125, 175, 186, 142, 163, 163, 129, 20, 28, 109, 246,\n\t\t147, 95, 33, 127, 71, 62, 3, 235, 11, 34, 160, 74, 154, 34,\n\t\t160, 125, 42, 54, 190, 159, 79, 20, 109, 185, 194, 43, 77,\n\t\t147, 201, 1, 65, 195, 150, 201, 186, 61, 66, 238, 123, 199,\n\t\t59, 190, 250, 142, 152, 26, 60, 93, 218, 235, 30, 187, 125,\n\t\t249, 244, 50, 153, 63, 187, 181, 117, 118, 171, 102, 82, 19,\n\t\t190, 122, 199, 249, 225, 26, 179, 187, 71, 55, 154, 183, 31,\n\t\t197, 47, 201, 71, 183, 240, 107, 197, 75, 255, 223, 65, 127,\n\t\t120, 87, 169, 83, 90, 45, 93, 162, 178, 5, 221, 94, 122, 64,\n\t\t237, 15, 207, 194, 15, 20, 227, 215, 26, 61, 200, 2, 132,\n\t\t8, 104, 100, 42, 61, 200, 174, 93, 132, 39, 254, 232, 99,\n\t\t237, 255, 195, 57, 212, 199, 85, 226, 150, 211, 187, 72, 203,\n\t\t164, 215, 119, 6, 183, 224, 251, 183, 206, 29, 210, 245, 67,\n\t\t115, 239, 98, 31, 102, 236, 67, 252, 226, 87, 130, 47, 252,\n\t\t67, 79, 123, 37, 239, 34, 245, 248, 111, 227, 122, 111, 129,\n\t\t210, 90, 43, 168, 199, 127, 23, 53, 214, 122, 189, 181, 253,\n\t\t191, 203, 24, 203, 216, 145, 167, 94, 249, 163, 25, 231, 120,\n\t\t92, 188, 226, 39, 32, 9, 254, 250, 201, 207, 145, 39, 20,\n\t\t103, 91, 94, 218, 41, 93, 13, 118, 233, 163, 176, 154, 188,\n\t\t11, 89, 92, 149, 218, 143, 206, 194, 13, 132, 4, 236, 161,\n\t\t247, 129, 161, 183, 0, 212, 115, 212, 145, 154, 116, 234,\n\t\t82, 69, 255, 133, 206, 192, 93, 166, 214, 142, 72, 233, 44,\n\t\t82, 209, 132, 40, 147, 68, 189, 206, 76, 136, 129, 202, 202,\n\t\t25, 23, 41, 107, 215, 139, 98, 167, 42, 133, 14, 156, 140,\n\t\t222, 69, 101, 108, 192, 183, 179, 207, 160, 124, 76, 154,\n\t\t73, 210, 171, 207, 95, 2, 13, 20, 47, 88, 230, 98, 99, 126,\n\t\t241, 236, 25, 231, 46, 63, 77, 12, 34, 173, 141, 249, 84,\n\t\t154, 201, 217, 44, 17, 118, 250, 88, 123, 62, 160, 210, 64,\n\t\t216, 178, 231, 129, 98, 204, 185, 220, 185, 175, 26, 31, 55,\n\t\t69, 138, 145, 207, 92, 235, 196, 113, 37, 129, 219, 214, 242,\n\t\t147, 111, 26, 12, 150, 171, 149, 142, 197, 165, 213, 164,\n\t\t218, 226, 239, 174, 185, 58, 251, 182, 70, 147, 209, 196,\n\t\t245, 46, 59, 49, 71, 201, 87, 91, 125, 16, 165, 239, 59, 55,\n\t\t138, 23, 158, 112, 12, 251, 230, 43, 230, 96, 213, 2, 49,\n\t\t108, 152, 199, 222, 152, 24, 154, 13, 154, 132, 97, 59, 80,\n\t\t172, 37, 42, 94, 90, 77, 51, 211, 95, 168, 15, 26, 254, 244,\n\t\t72, 212, 109, 102, 205, 143, 132, 141, 56, 115, 28, 70, 147,\n\t\t182, 105, 18, 110, 219, 129, 126, 114, 96, 239, 255, 160,\n\t\t215, 139, 81, 233, 213, 168, 93, 206, 234, 169, 67, 182, 109,\n\t\t191, 46, 152, 46, 131, 16, 163, 204, 12, 70, 125, 10, 51,\n\t\t156, 173, 10, 208, 166, 77, 93, 107, 6, 186, 99, 220, 130,\n\t\t46, 196, 70, 38, 152, 169, 147, 247, 26, 188, 234, 73, 199,\n\t\t208, 17, 224, 174, 21, 113, 52, 200, 85, 252, 191, 193, 186,\n\t\t245, 51, 165, 147, 24, 179, 199, 85, 216, 58, 5, 141, 177,\n\t\t239, 10, 57, 69, 182, 78, 84, 40, 49, 140, 175, 175, 200,\n\t\t183, 9, 2, 153, 138, 224, 124, 150, 97, 154, 91, 48, 107,\n\t\t233, 171, 178, 110, 108, 233, 204, 149, 90, 101, 206, 105,\n\t\t196, 253, 122, 30, 173, 216, 99, 177, 236, 110, 85, 134, 249,\n\t\t118, 143, 74, 62, 214, 140, 197, 123, 142, 93, 95, 239, 108,\n\t\t250, 180, 127, 116, 124, 126, 202, 204, 90, 90, 214, 234,\n\t\t65, 216, 13, 179, 65, 149, 252, 59, 175, 81, 9, 2, 162, 29,\n\t\t115, 204, 56, 54, 166, 176, 206, 120, 162, 44, 219, 60, 208,\n\t\t202, 134, 139, 153, 255, 184, 184, 75, 135, 89, 106, 161,\n\t\t15, 148, 82, 239, 252, 77, 208, 127, 213, 96, 179, 211, 29,\n\t\t165, 205, 5, 247, 98, 110, 100, 183, 20, 151, 218, 200, 156,\n\t\t53, 159, 40, 162, 201, 34, 243, 27, 216, 133, 35, 176, 189,\n\t\t187, 211, 153, 107, 3, 157, 101, 217, 140, 14, 72, 237, 95,\n\t\t147, 195, 245, 51, 13, 83, 156, 135, 150, 57, 127, 217, 101,\n\t\t189, 7, 222, 241, 158, 123, 207, 191, 235, 237, 207, 185,\n\t\t225, 197, 143, 93, 55, 186, 125, 235, 209, 253, 243, 143,\n\t\t63, 126, 94, 152, 154, 118, 73, 175, 215, 253, 192, 143, 63,\n\t\t251, 185, 111, 123, 231, 253, 247, 189, 123, 245, 37, 215,\n\t\t158, 123, 124, 112, 199, 225, 235, 31, 61, 224, 137, 42, 234,\n\t\t96, 149, 22, 49, 215, 70, 116, 209, 205, 228, 236, 94, 26,\n\t\t114, 91, 162, 135, 166, 155, 79, 155, 100, 138, 65, 252, 93,\n\t\t137, 169, 149, 112, 111, 38, 147, 152, 78, 10, 196, 166, 50,\n\t\t174, 191, 63, 171, 196, 13, 214, 227, 231, 42, 235, 221, 86,\n\t\t20, 112, 122, 187, 200, 203, 141, 197, 110, 183, 178, 131,\n\t\t172, 247, 207, 57, 114, 167, 156, 139, 27, 221, 122, 187,\n\t\t87, 247, 141, 141, 213, 87, 138, 195, 135, 201, 103, 222,\n\t\t241, 192, 115, 223, 246, 174, 243, 247, 189, 251, 151, 91,\n\t\t115, 231, 30, 179, 130, 114, 148, 9, 190, 88, 169, 211, 126,\n\t\t191, 217, 77, 73, 197, 20, 246, 183, 110, 95, 78, 19, 146,\n\t\t231, 36, 233, 86, 60, 221, 73, 226, 75, 170, 181, 27, 182,\n\t\t182, 75, 79, 111, 199, 205, 210, 176, 116, 102, 246, 20, 138,\n\t\t137, 17, 30, 35, 26, 236, 178, 233, 104, 51, 191, 176, 189,\n\t\t222, 207, 123, 227, 225, 54, 82, 121, 13, 115, 149, 61, 178,\n\t\t55, 205, 14, 220, 69, 133, 77, 46, 11, 110, 166, 108, 152,\n\t\t192, 3, 85, 55, 118, 47, 239, 99, 195, 118, 182, 231, 187,\n\t\t166, 246, 170, 91, 237, 67, 181, 216, 172, 207, 175, 158,\n\t\t212, 107, 89, 198, 143, 90, 143, 31, 39, 87, 189, 73, 60,\n\t\t122, 253, 131, 187, 215, 74, 217, 223, 234, 214, 173, 114,\n\t\t218, 137, 56, 175, 159, 192, 7, 91, 190, 106, 123, 37, 195,\n\t\t103, 219, 223, 73, 42, 61, 79, 39, 135, 6, 214, 154, 63, 222,\n\t\t104, 26, 6, 105, 54, 90, 189, 115, 143, 127, 62, 218, 174,\n\t\t212, 175, 127, 244, 246, 57, 203, 88, 178, 55, 204, 84, 51,\n\t\t156, 230, 211, 158, 203, 130, 21, 123, 190, 180, 245, 244,\n\t\t222, 137, 6, 211, 124, 54, 92, 134, 227, 252, 194, 179, 228,\n\t\t50, 57, 120, 26, 24, 253, 89, 142, 129, 6, 67, 57, 60, 232,\n\t\t152, 231, 60, 120, 233, 217, 35, 59, 71, 142, 136, 173, 250,\n\t\t43, 141, 199, 63, 62, 101, 71, 238, 211, 31, 189, 190, 189,\n\t\t181, 212, 180, 174, 173, 29, 91, 200, 150, 143, 237, 245,\n\t\t201, 103, 112, 176, 20, 85, 126, 214, 220, 220, 161, 67, 121,\n\t\t104, 231, 135, 234, 237, 115, 143, 191, 185, 44, 194, 225,\n\t\t106, 189, 117, 253, 163, 65, 171, 21, 205, 13, 111, 48, 239,\n\t\t122, 209, 211, 234, 89, 46, 213, 49, 11, 99, 244, 207, 13,\n\t\t217, 131, 48, 227, 239, 255, 240, 96, 53, 126, 233, 151, 126,\n\t\t169, 184, 239, 211, 7, 233, 143, 47, 47, 95, 179, 180, 116,\n\t\t209, 56, 149, 165, 30, 178, 159, 28, 224, 250, 49, 79, 29,\n\t\t88, 124, 5, 178, 87, 97, 39, 48, 48, 51, 23, 176, 88, 111,\n\t\t12, 139, 102, 16, 42, 254, 8, 250, 84, 200, 130, 207, 232,\n\t\t251, 243, 151, 141, 67, 242, 135, 86, 37, 76, 188, 185, 206,\n\t\t90, 220, 207, 203, 252, 234, 40, 26, 222, 244, 183, 68, 62,\n\t\t118, 110, 116, 115, 237, 242, 206, 165, 107, 237, 5, 119,\n\t\t195, 57, 96, 57, 250, 143, 181, 245, 22, 185, 43, 104, 103,\n\t\t193, 74, 195, 174, 141, 122, 129, 223, 219, 184, 235, 202,\n\t\t141, 159, 172, 86, 207, 61, 54, 88, 234, 140, 234, 139, 62,\n\t\t47, 207, 116, 213, 139, 218, 162, 9, 118, 250, 8, 25, 253,\n\t\t158, 222, 111, 170, 37, 10, 244, 72, 52, 64, 212, 115, 166,\n\t\t252, 156, 203, 36, 201, 209, 215, 70, 21, 160, 18, 84, 78,\n\t\t132, 50, 95, 104, 40, 108, 164, 235, 161, 181, 254, 213, 137,\n\t\t19, 227, 73, 215, 240, 132, 22, 221, 49, 96, 102, 37, 170,\n\t\t117, 247, 28, 219, 118, 235, 79, 181, 222, 254, 142, 106,\n\t\t58, 108, 67, 18, 60, 241, 196, 131, 185, 23, 10, 114, 245,\n\t\t131, 107, 194, 14, 173, 149, 39, 142, 39, 241, 226, 15, 213,\n\t\t115, 101, 198, 200, 244, 207, 247, 91, 139, 36, 42, 81, 56,\n\t\t201, 101, 62, 158, 142, 198, 211, 44, 145, 48, 240, 242, 36,\n\t\t219, 67, 118, 191, 177, 76, 158, 209, 163, 103, 52, 214, 110,\n\t\t82, 182, 117, 169, 113, 100, 239, 240, 241, 247, 37, 228,\n\t\t5, 47, 208, 23, 230, 243, 155, 87, 127, 84, 55, 255, 71, 118,\n\t\t2, 12, 226, 114, 157, 215, 234, 71, 202, 228, 68, 99, 119,\n\t\t247, 252, 10, 93, 91, 93, 223, 242, 253, 96, 188, 28, 45,\n\t\t255, 240, 90, 85, 46, 109, 255, 11, 181, 149, 187, 12, 22,\n\t\t251, 153, 31, 25, 234, 60, 76, 21, 217, 195, 26, 44, 8, 114,\n\t\t40, 243, 103, 84, 245, 215, 121, 109, 174, 238, 246, 198,\n\t\t53, 187, 182, 189, 148, 46, 231, 218, 46, 27, 165, 115, 22,\n\t\t104, 244, 218, 64, 132, 155, 155, 63, 170, 198, 63, 211, 88,\n\t\t10, 101, 109, 121, 57, 237, 28, 94, 240, 214, 230, 214, 22,\n\t\t150, 65, 255, 211, 201, 202, 230, 230, 51, 235, 250, 194,\n\t\t127, 169, 174, 240, 69, 54, 197, 133, 62, 83, 48, 15, 120,\n\t\t69, 28, 209, 108, 255, 83, 57, 37, 15, 254, 196, 221, 49,\n\t\t204, 113, 124, 179, 209, 31, 171, 79, 215, 137, 194, 51, 21,\n\t\t244, 70, 163, 226, 242, 34, 90, 20, 203, 121, 198, 115, 94,\n\t\t11, 106, 177, 134, 206, 45, 195, 180, 65, 201, 222, 26, 70,\n\t\t204, 7, 197, 1, 222, 130, 113, 78, 97, 61, 18, 80, 188, 58,\n\t\t128, 247, 196, 212, 41, 232, 11, 163, 85, 100, 163, 196, 93,\n\t\t16, 83, 147, 42, 255, 49, 210, 98, 254, 136, 6, 25, 107, 226,\n\t\t193, 109, 211, 164, 215, 28, 49, 141, 187, 29, 153, 174, 128,\n\t\t240, 107, 223, 6, 218, 192, 149, 167, 160, 192, 27, 239, 180,\n\t\t237, 27, 175, 35, 240, 150, 220, 124, 137, 97, 92, 169, 39,\n\t\t117, 73, 245, 248, 30, 46, 236, 203, 110, 67, 110, 80, 77,\n\t\t187, 230, 30, 243, 135, 214, 146, 59, 255, 197, 150, 195,\n\t\t28, 35, 179, 102, 234, 170, 151, 49, 54, 209, 83, 111, 159,\n\t\t214, 56, 19, 12, 150, 29, 169, 136, 89, 108, 36, 220, 191,\n\t\t157, 189, 149, 3, 228, 230, 192, 77, 160, 94, 55, 70, 184,\n\t\t22, 168, 172, 207, 104, 185, 244, 240, 48, 100, 160, 179,\n\t\t8, 76, 163, 171, 145, 84, 211, 82, 162, 113, 162, 94, 18,\n\t\t98, 49, 57, 92, 118, 89, 64, 137, 14, 239, 184, 40, 206, 17,\n\t\t248, 149, 166, 37, 208, 138, 244, 132, 174, 39, 126, 130,\n\t\t47, 63, 170, 233, 126, 55, 91, 209, 153, 158, 157, 179, 172,\n\t\t35, 91, 150, 117, 234, 90, 203, 58, 125, 194, 178, 174, 90,\n\t\t182, 204, 211, 34, 131, 118, 50, 236, 91, 76, 243, 146, 107,\n\t\t44, 235, 248, 117, 150, 117, 199, 170, 73, 172, 203, 134,\n\t\t150, 121, 187, 161, 139, 162, 76, 124, 41, 124, 11, 79, 181,\n\t\t221, 8, 102, 200, 145, 127, 169, 245, 46, 78, 248, 217, 83,\n\t\t76, 206, 163, 105, 17, 137, 140, 204, 23, 211, 33, 242, 93,\n\t\t39, 195, 103, 180, 132, 47, 116, 93, 188, 81, 211, 39, 152,\n\t\t12, 219, 126, 130, 73, 246, 198, 69, 123, 250, 224, 39, 31,\n\t\t124, 240, 71, 61, 217, 235, 116, 241, 41, 188, 96, 2, 22,\n\t\t20, 253, 180, 197, 184, 224, 147, 23, 222, 103, 211, 133,\n\t\t227, 255, 250, 135, 234, 187, 0, 178, 251, 146, 127, 161,\n\t\t190, 2, 38, 244, 12, 7, 178, 75, 178, 174, 154, 46, 121, 63,\n\t\t3, 139, 29, 157, 136, 207, 168, 230, 35, 91, 75, 169, 97,\n\t\t164, 75, 197, 159, 147, 43, 116, 162, 91, 218, 252, 142, 225,\n\t\t59, 43, 63, 170, 158, 219, 213, 229, 245, 201, 250, 114, 181,\n\t\t248, 83, 191, 57, 118, 239, 117, 12, 178, 246, 128, 227, 222,\n\t\t92, 41, 205, 184, 250, 247, 64, 231, 60, 170, 152, 195, 207,\n\t\t148, 238, 6, 91, 185, 68, 134, 178, 55, 205, 177, 25, 179,\n\t\t94, 127, 92, 84, 90, 237, 157, 228, 49, 24, 193, 200, 132,\n\t\t161, 182, 100, 99, 176, 13, 6, 195, 34, 206, 7, 5, 81, 62,\n\t\t204, 248, 140, 253, 108, 58, 238, 30, 132, 165, 76, 230, 145,\n\t\t5, 169, 200, 85, 113, 64, 61, 147, 99, 214, 13, 122, 71, 247,\n\t\t89, 115, 245, 29, 13, 81, 188, 139, 141, 54, 17, 11, 181,\n\t\t60, 38, 109, 218, 142, 251, 205, 53, 106, 30, 15, 203, 139,\n\t\t29, 218, 229, 199, 55, 124, 107, 126, 186, 255, 169, 213,\n\t\t122, 125, 181, 246, 15, 101, 127, 93, 250, 118, 165, 182,\n\t\t127, 47, 89, 92, 22, 29, 86, 105, 4, 75, 139, 75, 139, 115,\n\t\t203, 93, 178, 186, 202, 9, 253, 226, 228, 69, 166, 123, 204,\n\t\t179, 12, 171, 90, 141, 52, 94, 110, 86, 12, 51, 181, 62, 122,\n\t\t77, 121, 97, 206, 208, 59, 148, 119, 210, 229, 106, 252, 144,\n\t\t215, 220, 104, 54, 55, 66, 70, 72, 89, 90, 122, 53, 169, 149,\n\t\t237, 192, 79, 245, 197, 206, 220, 82, 191, 175, 39, 213, 52,\n\t\t169, 161, 111, 166, 20, 60, 249, 199, 228, 19, 42, 7, 109,\n\t\t88, 186, 185, 116, 95, 233, 177, 210, 123, 75, 191, 86, 250,\n\t\t82, 169, 52, 227, 94, 216, 162, 233, 44, 101, 184, 162, 85,\n\t\t223, 69, 230, 197, 130, 121, 10, 20, 118, 169, 40, 22, 228,\n\t\t54, 221, 85, 112, 225, 169, 130, 35, 143, 167, 10, 31, 137,\n\t\t187, 181, 153, 80, 238, 91, 104, 70, 48, 141, 230, 145, 25,\n\t\t20, 65, 147, 18, 131, 0, 50, 140, 23, 80, 48, 187, 222, 6,\n\t\t180, 186, 200, 176, 49, 85, 0, 239, 30, 41, 210, 142, 34,\n\t\t24, 3, 47, 46, 12, 186, 172, 192, 247, 205, 156, 228, 69,\n\t\t162, 9, 220, 57, 86, 187, 199, 202, 9, 62, 153, 162, 1, 55,\n\t\t157, 204, 131, 206, 244, 235, 166, 103, 154, 222, 93, 174,\n\t\t101, 73, 77, 215, 62, 148, 214, 2, 91, 218, 155, 149, 238,\n\t\t222, 210, 122, 26, 10, 26, 45, 200, 114, 195, 147, 101, 2,\n\t\t131, 218, 176, 3, 179, 177, 96, 177, 216, 9, 41, 49, 92, 157,\n\t\t214, 92, 67, 139, 18, 79, 120, 65, 218, 20, 235, 115, 151,\n\t\t236, 255, 159, 26, 44, 179, 21, 220, 166, 29, 232, 110, 47,\n\t\t212, 61, 46, 245, 158, 69, 2, 209, 127, 54, 88, 72, 72, 45,\n\t\t69, 35, 129, 220, 26, 205, 42, 166, 226, 38, 145, 129, 17,\n\t\t175, 230, 43, 26, 43, 22, 216, 94, 109, 105, 57, 190, 141,\n\t\t20, 59, 130, 72, 90, 9, 250, 67, 184, 209, 250, 241, 198,\n\t\t141, 15, 247, 195, 112, 255, 127, 16, 143, 84, 176, 174, 248,\n\t\t159, 27, 92, 95, 59, 188, 82, 191, 170, 158, 120, 186, 73,\n\t\t101, 234, 58, 26, 221, 94, 206, 59, 229, 90, 133, 46, 200,\n\t\t158, 213, 244, 170, 97, 98, 182, 252, 164, 66, 72, 228, 16,\n\t\t82, 213, 93, 131, 18, 83, 214, 108, 204, 197, 188, 156, 250,\n\t\t174, 55, 127, 248, 231, 61, 215, 165, 122, 77, 39, 123, 142,\n\t\t12, 125, 223, 114, 250, 102, 228, 120, 219, 247, 251, 88,\n\t\t81, 4, 103, 74, 77, 99, 124, 190, 197, 48, 223, 102, 74, 144,\n\t\t127, 132, 233, 115, 139, 17, 110, 99, 228, 134, 233, 26, 150,\n\t\t48, 77, 11, 81, 30, 186, 5, 230, 137, 239, 140, 170, 115,\n\t\t147, 193, 201, 59, 214, 219, 86, 165, 252, 53, 111, 150, 167,\n\t\t197, 125, 242, 155, 228, 23, 200, 135, 97, 173, 186, 11, 217,\n\t\t211, 11, 196, 102, 140, 124, 216, 131, 93, 62, 29, 102, 42,\n\t\t144, 88, 20, 0, 0, 186, 71, 48, 190, 135, 203, 109, 134, 144,\n\t\t75, 176, 192, 21, 186, 146, 213, 105, 130, 203, 21, 244, 26,\n\t\t18, 243, 207, 14, 200, 207, 19, 83, 59, 186, 120, 254, 12,\n\t\t161, 126, 35, 139, 245, 192, 115, 209, 83, 68, 234, 195, 205,\n\t\t73, 220, 74, 61, 83, 80, 39, 138, 132, 92, 251, 210, 58, 211,\n\t\t211, 192, 189, 2, 76, 84, 161, 133, 151, 6, 96, 184, 94, 26,\n\t\t10, 144, 129, 235, 229, 178, 205, 215, 170, 153, 197, 137,\n\t\t115, 106, 80, 94, 209, 236, 72, 202, 32, 51, 213, 174, 21,\n\t\t52, 194, 188, 199, 192, 114, 141, 154, 245, 213, 214, 180,\n\t\t209, 176, 69, 109, 173, 22, 49, 158, 36, 84, 139, 171, 107,\n\t\t239, 11, 87, 203, 13, 55, 180, 192, 18, 39, 181, 56, 174,\n\t\t210, 84, 88, 161, 211, 206, 70, 241, 35, 208, 198, 21, 203,\n\t\t217, 219, 155, 131, 133, 75, 183, 31, 185, 16, 91, 77, 47,\n\t\t131, 249, 19, 149, 6, 165, 203, 74, 87, 40, 196, 71, 214,\n\t\t131, 145, 138, 208, 133, 98, 159, 187, 73, 180, 56, 205, 198,\n\t\t195, 45, 130, 251, 192, 152, 126, 50, 45, 104, 75, 84, 18,\n\t\t241, 65, 58, 192, 244, 81, 232, 158, 19, 61, 153, 12, 166,\n\t\t253, 30, 189, 236, 166, 227, 207, 95, 232, 204, 63, 235, 252,\n\t\t19, 31, 123, 252, 234, 55, 92, 181, 191, 122, 217, 161, 223,\n\t\t164, 50, 10, 18, 207, 12, 43, 85, 195, 8, 77, 198, 79, 188,\n\t\t232, 174, 91, 95, 243, 39, 122, 197, 137, 12, 147, 83, 77,\n\t\t179, 12, 207, 78, 116, 82, 207, 28, 235, 155, 103, 47, 121,\n\t\t228, 10, 131, 239, 238, 218, 15, 158, 188, 246, 145, 209,\n\t\t45, 199, 243, 163, 254, 239, 113, 225, 132, 141, 176, 60,\n\t\t31, 90, 74, 67, 96, 189, 83, 199, 142, 95, 117, 59, 1, 185,\n\t\t104, 233, 66, 87, 89, 90, 95, 149, 178, 232, 233, 121, 136,\n\t\t182, 65, 142, 63, 80, 248, 122, 231, 85, 102, 223, 3, 253,\n\t\t55, 79, 160, 222, 176, 170, 43, 65, 20, 187, 188, 151, 12,\n\t\t134, 176, 80, 118, 215, 180, 209, 14, 193, 237, 217, 38, 82,\n\t\t64, 176, 109, 178, 9, 130, 40, 70, 200, 181, 90, 23, 81, 114,\n\t\t43, 95, 44, 242, 169, 200, 110, 142, 104, 89, 144, 25, 202,\n\t\t127, 44, 28, 55, 139, 130, 180, 85, 161, 219, 6, 157, 109,\n\t\t243, 49, 138, 155, 117, 77, 30, 132, 212, 80, 28, 112, 194,\n\t\t203, 34, 107, 174, 170, 219, 82, 163, 205, 48, 13, 29, 41,\n\t\t76, 74, 77, 230, 91, 65, 224, 223, 107, 154, 194, 159, 87,\n\t\t25, 43, 31, 145, 94, 165, 195, 235, 126, 90, 166, 68, 37,\n\t\t29, 229, 146, 63, 164, 9, 206, 85, 46, 90, 93, 97, 85, 53,\n\t\t228, 225, 94, 74, 28, 241, 86, 170, 107, 160, 2, 152, 181,\n\t\t172, 6, 131, 31, 225, 112, 154, 25, 89, 109, 55, 92, 37, 151,\n\t\t145, 158, 31, 23, 109, 242, 57, 90, 34, 127, 12, 118, 106,\n\t\t175, 116, 107, 233, 126, 100, 169, 159, 249, 138, 138, 224,\n\t\t92, 100, 114, 156, 197, 241, 142, 48, 100, 23, 30, 108, 26,\n\t\t43, 6, 189, 49, 38, 71, 206, 251, 93, 197, 208, 135, 204,\n\t\t122, 24, 16, 117, 176, 229, 53, 219, 174, 70, 47, 213, 140,\n\t\t159, 62, 149, 57, 38, 26, 24, 224, 108, 16, 127, 195, 34,\n\t\t107, 216, 112, 83, 201, 171, 126, 125, 174, 247, 219, 22,\n\t\t241, 61, 127, 225, 252, 136, 12, 86, 46, 155, 15, 52, 194,\n\t\t97, 106, 177, 118, 104, 176, 123, 23, 110, 187, 234, 176,\n\t\t218, 155, 37, 86, 214, 32, 44, 213, 136, 209, 196, 76, 127,\n\t\t43, 91, 63, 254, 144, 98, 50, 119, 50, 78, 180, 234, 79, 143,\n\t\t92, 47, 236, 16, 126, 45, 37, 157, 251, 2, 201, 25, 77, 187,\n\t\t11, 161, 163, 187, 157, 206, 188, 94, 206, 230, 92, 187, 197,\n\t\t113, 231, 139, 53, 87, 154, 46, 255, 177, 53, 17, 166, 140,\n\t\t217, 70, 183, 97, 191, 112, 154, 206, 159, 92, 115, 90, 203,\n\t\t185, 69, 106, 89, 82, 45, 155, 76, 219, 92, 214, 96, 45, 220,\n\t\t12, 87, 30, 32, 182, 69, 120, 48, 77, 57, 117, 62, 172, 115,\n\t\t191, 238, 208, 246, 82, 117, 254, 34, 61, 65, 150, 188, 82,\n\t\t86, 106, 149, 158, 245, 148, 253, 23, 206, 36, 233, 15, 191,\n\t\t159, 23, 50, 207, 46, 252, 118, 243, 41, 166, 104, 122, 234,\n\t\t119, 52, 205, 242, 201, 197, 191, 3, 228, 29, 184, 248, 55,\n\t\t150, 121, 97, 45, 254, 196, 151, 223, 246, 182, 47, 191, 237,\n\t\t39, 62, 245, 234, 87, 127, 234, 213, 175, 251, 228, 203, 94,\n\t\t246, 201, 151, 145, 183, 11, 247, 242, 29, 63, 153, 206, 101,\n\t\t149, 186, 230, 84, 29, 94, 171, 102, 115, 147, 212, 223, 189,\n\t\t220, 21, 103, 206, 82, 122, 238, 170, 167, 78, 168, 113, 56,\n\t\t65, 171, 87, 178, 185, 105, 226, 239, 92, 238, 200, 171, 206,\n\t\t17, 114, 246, 192, 176, 252, 232, 219, 176, 116, 178, 247,\n\t\t106, 44, 126, 255, 247, 95, 134, 229, 231, 7, 231, 186, 226,\n\t\t170, 115, 179, 194, 118, 131, 127, 254, 110, 103, 207, 224,\n\t\t9, 126, 58, 233, 165, 213, 226, 110, 37, 21, 11, 250, 5, 146,\n\t\t171, 61, 47, 75, 181, 90, 41, 66, 14, 221, 68, 102, 201, 58,\n\t\t217, 163, 153, 71, 198, 45, 16, 27, 227, 233, 93, 115, 189,\n\t\t222, 117, 139, 139, 241, 112, 120, 111, 111, 110, 238, 186,\n\t\t100, 56, 76, 22, 73, 125, 101, 101, 249, 199, 190, 177, 186,\n\t\t250, 141, 47, 111, 109, 117, 151, 151, 87, 24, 30, 124, 249,\n\t\t27, 171, 184, 103, 115, 81, 95, 164, 96, 237, 95, 90, 186,\n\t\t178, 116, 182, 116, 83, 233, 142, 210, 189, 152, 229, 137,\n\t\t207, 66, 114, 232, 108, 15, 33, 135, 198, 68, 4, 100, 130,\n\t\t68, 97, 25, 250, 139, 166, 153, 84, 233, 1, 5, 114, 28, 168,\n\t\t37, 174, 143, 12, 7, 202, 41, 51, 65, 126, 3, 164, 91, 206,\n\t\t122, 107, 52, 159, 135, 206, 235, 77, 228, 16, 125, 76, 243,\n\t\t200, 49, 54, 209, 210, 44, 129, 254, 131, 207, 199, 19, 114,\n\t\t167, 234, 158, 247, 125, 225, 141, 111, 252, 194, 27, 191,\n\t\t122, 104, 53, 244, 54, 163, 67, 107, 243, 225, 234, 165, 109,\n\t\t215, 57, 156, 30, 54, 216, 217, 179, 204, 128, 3, 199, 253,\n\t\t161, 15, 108, 239, 51, 93, 189, 66, 77, 79, 223, 255, 98,\n\t\t88, 151, 21, 93, 175, 200, 122, 216, 37, 175, 173, 232, 221,\n\t\t176, 190, 255, 71, 243, 107, 135, 86, 191, 23, 174, 30, 90,\n\t\t59, 164, 58, 137, 92, 245, 70, 188, 199, 35, 240, 165, 29,\n\t\t179, 138, 58, 119, 249, 160, 232, 150, 119, 80, 52, 215, 159,\n\t\t118, 175, 209, 234, 33, 187, 221, 48, 195, 16, 74, 123, 62,\n\t\t86, 235, 16, 84, 113, 254, 74, 188, 93, 55, 12, 225, 254,\n\t\t202, 151, 137, 123, 250, 223, 134, 53, 225, 167, 75, 85, 88,\n\t\t251, 47, 7, 123, 231, 165, 165, 215, 150, 222, 82, 250, 4,\n\t\t230, 103, 194, 104, 181, 254, 108, 99, 189, 8, 171, 2, 189,\n\t\t101, 151, 78, 139, 173, 112, 80, 131, 38, 83, 104, 98, 12,\n\t\t226, 7, 213, 17, 255, 96, 154, 243, 116, 246, 103, 0, 127,\n\t\t186, 82, 229, 20, 83, 33, 159, 41, 202, 144, 12, 186, 1, 150,\n\t\t78, 21, 23, 171, 242, 154, 99, 64, 215, 120, 183, 200, 141,\n\t\t154, 30, 36, 27, 154, 77, 165, 201, 236, 189, 68, 61, 108,\n\t\t8, 5, 14, 11, 231, 24, 92, 131, 37, 36, 80, 4, 34, 2, 48,\n\t\t237, 217, 228, 239, 65, 57, 33, 17, 46, 182, 184, 126, 48,\n\t\t18, 35, 69, 110, 149, 145, 190, 238, 212, 109, 151, 25, 86,\n\t\t34, 45, 203, 9, 244, 208, 38, 210, 185, 26, 145, 234, 118,\n\t\t168, 7, 14, 168, 86, 137, 101, 48, 215, 174, 59, 122, 159,\n\t\t44, 218, 59, 157, 133, 254, 158, 231, 70, 230, 214, 66, 103,\n\t\t211, 176, 203, 182, 168, 244, 211, 133, 45, 51, 114, 189,\n\t\t189, 254, 66, 103, 39, 195, 12, 179, 229, 105, 61, 138, 234,\n\t\t209, 74, 234, 251, 169, 255, 118, 204, 51, 71, 116, 95, 39,\n\t\t213, 44, 173, 197, 200, 163, 235, 180, 150, 132, 223, 246,\n\t\t197, 82, 203, 113, 53, 106, 146, 159, 174, 121, 143, 95, 83,\n\t\t77, 3, 93, 231, 42, 251, 131, 174, 7, 105, 117, 124, 235,\n\t\t142, 249, 99, 157, 60, 90, 4, 107, 45, 6, 233, 44, 67, 199,\n\t\t182, 100, 106, 131, 210, 37, 236, 84, 90, 182, 3, 31, 97,\n\t\t176, 141, 224, 139, 81, 191, 18, 7, 173, 35, 4, 84, 34, 40,\n\t\t166, 76, 178, 128, 49, 43, 180, 203, 80, 12, 117, 93, 114,\n\t\t164, 21, 92, 89, 198, 138, 249, 17, 86, 204, 241, 177, 98,\n\t\t67, 179, 129, 169, 18, 27, 38, 141, 76, 78, 150, 91, 152,\n\t\t101, 189, 181, 76, 184, 25, 209, 3, 31, 246, 183, 200, 175,\n\t\t145, 143, 148, 64, 5, 152, 135, 62, 197, 76, 112, 189, 53,\n\t\t109, 157, 96, 226, 200, 53, 138, 234, 142, 91, 28, 147, 98,\n\t\t163, 0, 143, 225, 149, 181, 96, 93, 47, 136, 54, 195, 29,\n\t\t146, 140, 147, 56, 154, 194, 68, 2, 205, 54, 195, 29, 9, 252,\n\t\t109, 130, 26, 183, 203, 70, 121, 19, 172, 213, 183, 51, 179,\n\t\t102, 82, 59, 232, 173, 156, 88, 226, 75, 151, 173, 118, 145,\n\t\t46, 206, 42, 235, 50, 206, 160, 105, 76, 206, 109, 18, 36,\n\t\t186, 209, 48, 27, 125, 223, 175, 133, 110, 98, 154, 129, 101,\n\t\t36, 181, 204, 0, 241, 214, 45, 239, 237, 197, 45, 93, 111,\n\t\t197, 123, 123, 229, 38, 194, 110, 86, 42, 180, 204, 157, 154,\n\t\t25, 212, 152, 221, 44, 167, 210, 79, 185, 85, 113, 109, 102,\n\t\t4, 44, 187, 156, 26, 11, 176, 252, 244, 123, 203, 205, 148,\n\t\t144, 164, 147, 231, 29, 211, 172, 229, 66, 84, 198, 43, 75,\n\t\t237, 138, 144, 229, 241, 98, 207, 48, 54, 110, 221, 221, 176,\n\t\t172, 120, 178, 177, 236, 216, 157, 237, 213, 188, 26, 113,\n\t\t30, 92, 58, 183, 97, 24, 211, 53, 178, 134, 212, 170, 76,\n\t\t236, 127, 99, 109, 10, 103, 182, 249, 245, 204, 90, 218, 188,\n\t\t102, 85, 243, 55, 87, 167, 49, 232, 163, 173, 205, 225, 165,\n\t\t61, 230, 192, 152, 173, 104, 254, 104, 116, 57, 200, 134,\n\t\t218, 147, 159, 39, 31, 1, 77, 227, 165, 228, 61, 228, 147,\n\t\t228, 75, 228, 63, 151, 74, 89, 31, 177, 36, 211, 109, 146,\n\t\t143, 198, 42, 214, 10, 126, 250, 227, 2, 64, 133, 225, 64,\n\t\t189, 2, 159, 21, 163, 81, 145, 8, 5, 229, 23, 8, 171, 82,\n\t\t114, 116, 134, 212, 146, 73, 1, 166, 201, 82, 197, 175, 92,\n\t\t152, 12, 234, 116, 161, 226, 125, 138, 226, 198, 120, 242,\n\t\t58, 129, 91, 141, 17, 228, 61, 82, 248, 50, 21, 144, 190,\n\t\t87, 176, 81, 141, 14, 128, 94, 10, 175, 150, 196, 7, 64, 183,\n\t\t76, 225, 80, 224, 116, 172, 89, 63, 127, 218, 207, 58, 25,\n\t\t231, 106, 187, 34, 83, 92, 29, 120, 95, 149, 49, 86, 36, 25,\n\t\t242, 27, 168, 205, 163, 129, 162, 37, 68, 152, 28, 252, 223,\n\t\t35, 202, 224, 105, 18, 21, 142, 137, 129, 78, 137, 72, 84,\n\t\t104, 124, 114, 0, 68, 19, 179, 104, 120, 85, 141, 162, 42,\n\t\t233, 12, 106, 119, 0, 135, 81, 127, 212, 19, 38, 45, 104,\n\t\t152, 44, 41, 46, 243, 40, 66, 121, 226, 205, 2, 32, 160, 144,\n\t\t200, 82, 149, 142, 228, 90, 248, 64, 9, 50, 95, 160, 215,\n\t\t192, 165, 211, 126, 17, 55, 94, 164, 68, 67, 136, 142, 170,\n\t\t124, 65, 7, 52, 202, 103, 223, 141, 134, 96, 181, 97, 56,\n\t\t30, 150, 78, 54, 24, 50, 159, 103, 42, 179, 92, 145, 180,\n\t\t7, 116, 150, 130, 154, 4, 191, 112, 73, 255, 207, 113, 7,\n\t\t73, 65, 167, 96, 70, 105, 82, 1, 72, 96, 106, 9, 187, 0, 145,\n\t\t41, 188, 8, 81, 177, 220, 186, 142, 176, 118, 130, 212, 69,\n\t\t51, 138, 223, 2, 106, 101, 241, 11, 208, 43, 138, 17, 55,\n\t\t112, 181, 66, 136, 72, 211, 181, 169, 58, 7, 62, 128, 178,\n\t\t52, 1, 26, 35, 66, 242, 57, 156, 20, 8, 93, 161, 213, 145,\n\t\t107, 8, 145, 243, 136, 239, 198, 155, 40, 254, 96, 41, 117,\n\t\t197, 178, 139, 60, 192, 154, 4, 77, 152, 88, 18, 116, 114,\n\t\t10, 134, 16, 212, 132, 171, 136, 53, 161, 34, 57, 76, 75,\n\t\t67, 250, 74, 117, 46, 97, 146, 8, 196, 186, 35, 167, 170,\n\t\t162, 232, 69, 206, 49, 90, 212, 148, 98, 37, 153, 226, 89,\n\t\t80, 220, 167, 24, 20, 160, 162, 145, 212, 175, 176, 97, 106,\n\t\t64, 225, 82, 22, 101, 33, 234, 133, 23, 101, 106, 62, 18,\n\t\t32, 171, 15, 165, 108, 98, 113, 200, 4, 76, 11, 4, 206, 105,\n\t\t245, 133, 106, 38, 67, 237, 78, 19, 114, 35, 66, 212, 56,\n\t\t139, 248, 165, 186, 75, 23, 59, 230, 105, 207, 165, 253, 31,\n\t\t44, 55, 171, 181, 121, 173, 82, 233, 7, 160, 219, 147, 74,\n\t\t111, 254, 136, 12, 83, 1, 182, 105, 157, 107, 126, 164, 49,\n\t\t48, 81, 185, 150, 153, 146, 233, 45, 77, 135, 87, 208, 131,\n\t\t13, 100, 176, 50, 144, 15, 18, 116, 98, 213, 82, 96, 4, 122,\n\t\t96, 189, 162, 242, 135, 116, 148, 54, 51, 13, 195, 67, 124,\n\t\t62, 2, 242, 53, 91, 23, 214, 33, 193, 194, 42, 244, 2, 183,\n\t\t107, 6, 243, 98, 159, 35, 105, 161, 109, 81, 102, 217, 185,\n\t\t110, 128, 106, 109, 72, 208, 2, 41, 65, 62, 99, 12, 83, 160,\n\t\t96, 55, 67, 7, 200, 12, 91, 83, 216, 2, 52, 107, 204, 88,\n\t\t227, 19, 98, 171, 254, 55, 144, 12, 138, 123, 132, 219, 14,\n\t\t71, 34, 100, 69, 205, 44, 49, 9, 37, 238, 211, 23, 220, 205,\n\t\t12, 41, 180, 184, 197, 8, 139, 113, 19, 94, 115, 69, 193,\n\t\t208, 76, 10, 44, 158, 234, 100, 67, 40, 62, 77, 236, 61, 74,\n\t\t28, 94, 12, 3, 213, 116, 72, 205, 73, 85, 138, 75, 21, 151,\n\t\t131, 17, 18, 4, 172, 29, 69, 234, 204, 165, 157, 130, 81,\n\t\t160, 35, 124, 90, 19, 186, 196, 204, 66, 24, 176, 96, 66,\n\t\t63, 187, 186, 16, 148, 35, 6, 11, 13, 198, 64, 179, 19, 104,\n\t\t3, 43, 16, 134, 139, 100, 136, 126, 210, 23, 76, 234, 81,\n\t\t132, 116, 214, 171, 196, 5, 67, 19, 148, 107, 205, 87, 131,\n\t\t71, 250, 182, 173, 199, 109, 131, 207, 107, 56, 122, 4, 243,\n\t\t53, 56, 171, 12, 149, 20, 194, 208, 165, 211, 66, 13, 29,\n\t\t62, 166, 200, 68, 127, 137, 91, 91, 1, 1, 192, 42, 201, 214,\n\t\t149, 239, 214, 14, 229, 141, 188, 94, 9, 86, 218, 243, 182,\n\t\t172, 204, 187, 24, 75, 96, 60, 249, 228, 147, 95, 34, 127,\n\t\t69, 62, 93, 122, 101, 233, 27, 164, 70, 238, 160, 119, 208,\n\t\t247, 211, 175, 179, 144, 93, 129, 254, 54, 68, 191, 100, 233,\n\t\t1, 28, 22, 195, 155, 102, 150, 8, 46, 37, 56, 73, 235, 68,\n\t\t60, 109, 29, 41, 180, 15, 116, 67, 119, 243, 37, 88, 77, 11,\n\t\t104, 238, 197, 63, 24, 249, 218, 199, 149, 109, 4, 43, 227,\n\t\t100, 140, 191, 147, 205, 34, 176, 241, 194, 122, 51, 64, 16,\n\t\t237, 102, 177, 67, 126, 240, 51, 67, 190, 94, 188, 76, 206,\n\t\t126, 182, 200, 16, 51, 147, 79, 127, 196, 15, 220, 109, 243,\n\t\t169, 91, 119, 123, 200, 62, 55, 117, 47, 192, 135, 179, 98,\n\t\t225, 42, 30, 9, 33, 137, 240, 63, 45, 14, 144, 107, 177, 91,\n\t\t240, 135, 40, 92, 163, 162, 85, 60, 64, 255, 34, 177, 207,\n\t\t236, 202, 100, 6, 171, 124, 10, 145, 156, 111, 192, 194, 142,\n\t\t15, 54, 251, 63, 186, 232, 193, 46, 164, 110, 201, 55, 176,\n\t\t38, 207, 120, 34, 5, 139, 132, 15, 154, 68, 65, 17, 71, 23,\n\t\t74, 153, 20, 135, 172, 40, 112, 52, 174, 147, 77, 184, 45,\n\t\t212, 21, 126, 211, 167, 10, 24, 108, 166, 211, 209, 193, 189,\n\t\t134, 147, 25, 104, 26, 179, 148, 192, 74, 189, 113, 80, 199,\n\t\t89, 21, 14, 132, 205, 172, 222, 189, 66, 31, 44, 136, 159,\n\t\t102, 17, 173, 23, 48, 149, 248, 69, 193, 220, 142, 160, 209,\n\t\t141, 34, 175, 206, 176, 192, 102, 199, 7, 49, 250, 7, 194,\n\t\t98, 164, 4, 108, 81, 85, 124, 121, 170, 3, 242, 11, 149, 219,\n\t\t140, 17, 90, 189, 209, 3, 153, 5, 178, 184, 171, 18, 248,\n\t\t192, 207, 104, 115, 151, 108, 98, 95, 14, 71, 99, 165, 133,\n\t\t142, 160, 233, 55, 161, 135, 39, 233, 116, 99, 128, 137, 10,\n\t\t166, 3, 84, 125, 227, 116, 51, 69, 26, 174, 193, 112, 35,\n\t\t1, 77, 22, 126, 225, 233, 18, 24, 173, 80, 63, 44, 86, 21,\n\t\t135, 57, 117, 65, 42, 117, 55, 71, 160, 40, 203, 9, 226, 70,\n\t\t147, 139, 7, 206, 133, 113, 29, 39, 23, 200, 98, 46, 122,\n\t\t224, 241, 134, 106, 139, 109, 149, 230, 126, 126, 54, 254,\n\t\t159, 214, 215, 72, 66, 211, 93, 39, 163, 167, 15, 186, 25,\n\t\t138, 116, 84, 244, 246, 119, 77, 27, 68, 135, 131, 40, 106,\n\t\t211, 13, 195, 133, 86, 43, 100, 24, 137, 205, 14, 214, 24,\n\t\t97, 151, 151, 171, 45, 204, 100, 101, 97, 158, 39, 174, 99,\n\t\t74, 40, 132, 183, 16, 11, 68, 134, 229, 5, 142, 70, 125, 127,\n\t\t156, 105, 140, 204, 86, 38, 170, 153, 132, 217, 97, 115, 217,\n\t\t49, 65, 191, 53, 145, 123, 85, 167, 174, 237, 153, 118, 18,\n\t\t5, 174, 206, 117, 41, 151, 93, 181, 64, 33, 53, 107, 98, 135,\n\t\t229, 150, 3, 146, 37, 8, 136, 128, 97, 77, 76, 102, 192, 239,\n\t\t66, 167, 28, 194, 42, 138, 233, 192, 21, 129, 19, 97, 150,\n\t\t225, 196, 213, 124, 221, 114, 96, 157, 179, 94, 28, 85, 136,\n\t\t164, 160, 133, 43, 104, 146, 5, 210, 192, 162, 32, 25, 80,\n\t\t30, 249, 190, 41, 13, 248, 193, 250, 40, 90, 76, 88, 225,\n\t\t205, 192, 248, 21, 204, 77, 145, 180, 12, 110, 226, 146, 206,\n\t\t133, 102, 121, 32, 27, 132, 18, 53, 220, 49, 132, 141, 139,\n\t\t46, 72, 5, 161, 123, 49, 63, 79, 149, 120, 68, 57, 203, 81,\n\t\t168, 161, 68, 98, 133, 180, 45, 4, 23, 202, 60, 81, 192, 183,\n\t\t48, 21, 27, 102, 99, 18, 174, 132, 82, 29, 219, 16, 1, 210,\n\t\t232, 195, 186, 10, 237, 5, 150, 131, 195, 37, 69, 247, 168,\n\t\t6, 139, 42, 98, 188, 152, 19, 180, 187, 82, 90, 220, 15, 130,\n\t\t154, 165, 17, 144, 51, 146, 33, 107, 191, 212, 77, 219, 210,\n\t\t36, 72, 3, 89, 172, 237, 196, 115, 93, 139, 72, 162, 27, 146,\n\t\t234, 32, 111, 65, 56, 168, 5, 191, 16, 152, 76, 9, 92, 245,\n\t\t150, 74, 129, 101, 99, 16, 25, 200, 238, 126, 161, 47, 112,\n\t\t170, 60, 126, 68, 101, 123, 83, 150, 13, 71, 192, 25, 51,\n\t\t225, 116, 188, 94, 20, 143, 34, 64, 172, 43, 49, 139, 81,\n\t\t118, 200, 15, 10, 207, 139, 141, 89, 124, 251, 89, 37, 236,\n\t\t109, 104, 45, 67, 130, 138, 34, 13, 162, 83, 93, 5, 244, 88,\n\t\t134, 166, 187, 190, 4, 1, 168, 49, 199, 224, 79, 137, 37,\n\t\t28, 0, 228, 69, 40, 196, 109, 20, 67, 210, 114, 34, 195, 48,\n\t\t117, 19, 30, 14, 97, 232, 200, 213, 200, 64, 129, 183, 76,\n\t\t207, 230, 208, 55, 42, 246, 14, 47, 254, 84, 17, 65, 173,\n\t\t25, 97, 171, 149, 11, 40, 63, 138, 160, 81, 133, 225, 35,\n\t\t46, 31, 26, 195, 230, 245, 202, 160, 151, 58, 138, 170, 134,\n\t\t30, 232, 78, 216, 208, 24, 206, 100, 218, 43, 71, 29, 87,\n\t\t216, 180, 208, 57, 172, 80, 32, 145, 169, 138, 14, 176, 171,\n\t\t41, 60, 108, 53, 233, 87, 36, 55, 149, 34, 81, 86, 48, 92,\n\t\t105, 34, 44, 145, 136, 213, 109, 199, 177, 61, 219, 208, 29,\n\t\t155, 246, 90, 81, 144, 249, 24, 202, 140, 2, 188, 152, 1,\n\t\t86, 37, 204, 56, 142, 40, 17, 194, 248, 13, 51, 106, 52, 171,\n\t\t89, 220, 72, 90, 22, 86, 99, 224, 232, 240, 84, 160, 141,\n\t\t161, 69, 40, 227, 200, 115, 48, 125, 3, 244, 39, 180, 186,\n\t\t9, 106, 13, 54, 4, 179, 145, 142, 6, 20, 39, 140, 98, 133,\n\t\t6, 17, 216, 115, 110, 96, 178, 114, 230, 88, 73, 96, 212,\n\t\t49, 130, 220, 108, 70, 58, 73, 43, 154, 17, 4, 48, 29, 116,\n\t\t223, 178, 113, 14, 10, 40, 134, 43, 76, 14, 51, 153, 14, 29,\n\t\t172, 155, 82, 58, 30, 104, 116, 186, 101, 35, 117, 164, 103,\n\t\t211, 45, 84, 4, 145, 102, 65, 99, 150, 9, 42, 22, 222, 81,\n\t\t204, 189, 103, 158, 41, 152, 159, 2, 23, 107, 152, 2, 194,\n\t\t134, 10, 112, 157, 82, 167, 248, 203, 224, 61, 168, 23, 160,\n\t\t142, 98, 22, 6, 24, 234, 184, 45, 22, 233, 186, 112, 13, 165,\n\t\t159, 81, 211, 97, 42, 2, 0, 25, 117, 112, 14, 193, 217, 66,\n\t\t247, 109, 28, 187, 74, 247, 131, 225, 4, 141, 175, 66, 223,\n\t\t65, 247, 193, 72, 6, 174, 217, 152, 195, 91, 227, 18, 57,\n\t\t66, 213, 140, 129, 73, 225, 36, 194, 33, 69, 95, 248, 69,\n\t\t206, 71, 168, 18, 198, 176, 107, 69, 76, 37, 101, 38, 12,\n\t\t175, 4, 38, 17, 169, 224, 40, 70, 22, 30, 6, 227, 84, 7, 179,\n\t\t22, 190, 65, 189, 153, 10, 156, 26, 38, 140, 89, 173, 15,\n\t\t39, 232, 133, 94, 72, 46, 26, 116, 179, 145, 135, 86, 152,\n\t\t62, 211, 179, 103, 39, 21, 103, 42, 224, 55, 225, 125, 109,\n\t\t69, 152, 142, 233, 180, 171, 166, 116, 37, 86, 30, 67, 60,\n\t\t132, 4, 157, 4, 167, 63, 118, 187, 208, 53, 230, 198, 166,\n\t\t212, 145, 67, 90, 232, 134, 45, 80, 55, 51, 165, 95, 6, 27,\n\t\t152, 55, 154, 154, 13, 195, 190, 28, 198, 150, 192, 5, 135,\n\t\t168, 168, 13, 152, 29, 74, 141, 100, 160, 86, 193, 52, 117,\n\t\t35, 11, 250, 223, 146, 142, 116, 20, 110, 248, 75, 112, 222,\n\t\t103, 75, 207, 41, 61, 31, 25, 194, 178, 73, 214, 47, 80, 119,\n\t\t96, 5, 29, 136, 250, 3, 34, 154, 201, 184, 8, 50, 72, 85,\n\t\t142, 205, 3, 57, 39, 11, 78, 238, 25, 213, 15, 42, 40, 105,\n\t\t17, 251, 128, 86, 16, 114, 60, 22, 50, 66, 30, 100, 14, 29,\n\t\t239, 18, 77, 93, 124, 215, 233, 219, 150, 86, 22, 58, 199,\n\t\t214, 184, 221, 168, 103, 243, 115, 114, 210, 201, 192, 194,\n\t\t181, 61, 77, 75, 178, 24, 103, 75, 16, 245, 106, 73, 32, 44,\n\t\t219, 176, 249, 210, 250, 102, 103, 149, 6, 25, 113, 220, 166,\n\t\t238, 97, 210, 180, 234, 70, 167, 5, 26, 45, 78, 37, 65, 156,\n\t\t140, 81, 191, 41, 180, 202, 194, 153, 195, 111, 152, 86, 198,\n\t\t110, 202, 216, 144, 32, 219, 40, 9, 201, 171, 47, 129, 222,\n\t\t133, 81, 57, 36, 26, 44, 127, 48, 0, 130, 213, 78, 183, 109,\n\t\t163, 231, 213, 182, 113, 223, 197, 212, 44, 24, 193, 160,\n\t\t56, 234, 38, 107, 103, 25, 201, 169, 223, 160, 186, 217, 243,\n\t\t58, 173, 138, 105, 9, 107, 117, 105, 194, 12, 201, 231, 42,\n\t\t97, 5, 148, 54, 111, 61, 242, 220, 133, 185, 245, 237, 40,\n\t\t30, 173, 158, 238, 213, 245, 174, 183, 85, 93, 217, 108, 141,\n\t\t238, 216, 64, 85, 221, 188, 56, 79, 96, 167, 180, 88, 218,\n\t\t44, 149, 130, 44, 199, 116, 245, 83, 137, 63, 169, 44, 178,\n\t\t121, 136, 92, 189, 157, 246, 71, 72, 190, 254, 67, 110, 162,\n\t\t199, 236, 91, 157, 170, 115, 171, 253, 216, 137, 195, 39,\n\t\t52, 13, 94, 224, 131, 106, 181, 120, 207, 216, 137, 195, 191,\n\t\t123, 255, 169, 211, 231, 79, 127, 232, 212, 104, 116, 106,\n\t\t68, 62, 52, 251, 240, 226, 147, 14, 46, 82, 165, 68, 167,\n\t\t238, 63, 125, 250, 252, 252, 8, 79, 7, 221, 213, 129, 250,\n\t\t253, 230, 5, 127, 99, 163, 180, 92, 26, 151, 246, 74, 167,\n\t\t75, 231, 74, 183, 150, 30, 40, 189, 160, 244, 250, 210, 59,\n\t\t158, 233, 11, 158, 239, 169, 32, 195, 222, 184, 151, 15, 199,\n\t\t67, 137, 248, 40, 120, 151, 169, 220, 233, 249, 20, 158, 73,\n\t\t249, 79, 14, 254, 162, 67, 242, 194, 225, 133, 163, 131, 167,\n\t\t211, 158, 126, 181, 74, 11, 49, 236, 83, 197, 87, 155, 60,\n\t\t117, 31, 208, 240, 246, 200, 193, 197, 133, 223, 248, 189,\n\t\t95, 124, 243, 155, 191, 248, 102, 242, 134, 119, 93, 119,\n\t\t221, 198, 163, 243, 63, 245, 197, 211, 231, 222, 249, 179,\n\t\t63, 30, 191, 172, 118, 238, 127, 74, 61, 47, 181, 105, 150,\n\t\t209, 192, 112, 36, 113, 93, 162, 219, 255, 218, 152, 29, 202,\n\t\t199, 61, 47, 177, 72, 154, 82, 251, 187, 159, 123, 253, 235,\n\t\t63, 247, 122, 114, 236, 186, 119, 125, 249, 3, 11, 47, 30,\n\t\t93, 119, 231, 137, 231, 39, 31, 248, 202, 222, 47, 126, 242,\n\t\t229, 155, 80, 230, 145, 23, 174, 24, 239, 204, 2, 47, 113,\n\t\t120, 25, 150, 226, 79, 23, 254, 228, 159, 123, 51, 222, 245,\n\t\t243, 189, 245, 223, 248, 210, 218, 217, 219, 14, 149, 175,\n\t\t41, 127, 249, 203, 183, 27, 97, 104, 196, 101, 77, 148, 169,\n\t\t41, 28, 15, 4, 181, 45, 62, 128, 217, 34, 93, 198, 93, 251,\n\t\t108, 16, 24, 113, 166, 105, 89, 252, 239, 94, 143, 55, 236,\n\t\t180, 134, 103, 7, 95, 250, 141, 223, 57, 123, 244, 236, 209,\n\t\t253, 235, 95, 126, 211, 153, 237, 97, 180, 247, 27, 95, 58,\n\t\t212, 104, 223, 116, 194, 8, 34, 43, 41, 11, 94, 46, 89, 165,\n\t\t250, 147, 95, 32, 255, 149, 124, 161, 244, 147, 165, 159,\n\t\t42, 125, 184, 244, 145, 210, 207, 150, 126, 161, 244, 233,\n\t\t210, 175, 150, 190, 88, 250, 74, 233, 107, 42, 219, 23, 252,\n\t\t36, 107, 60, 31, 193, 239, 4, 119, 87, 51, 1, 77, 13, 63,\n\t\t234, 27, 152, 126, 147, 169, 236, 79, 229, 168, 64, 139, 131,\n\t\t234, 73, 208, 55, 9, 90, 119, 139, 230, 178, 69, 166, 152,\n\t\t56, 6, 19, 200, 40, 132, 17, 6, 230, 31, 156, 80, 248, 49,\n\t\t154, 52, 201, 83, 153, 99, 42, 191, 4, 11, 204, 85, 225, 147,\n\t\t124, 138, 36, 253, 25, 198, 6, 115, 57, 198, 254, 128, 9,\n\t\t60, 69, 55, 231, 4, 15, 17, 126, 11, 135, 57, 58, 28, 70,\n\t\t18, 245, 99, 117, 136, 251, 45, 179, 67, 56, 61, 129, 51,\n\t\t192, 188, 180, 44, 77, 67, 62, 4, 144, 234, 204, 242, 154,\n\t\t32, 148, 42, 45, 217, 12, 181, 186, 8, 141, 168, 106, 84,\n\t\t100, 21, 20, 157, 42, 183, 210, 60, 11, 114, 74, 179, 48,\n\t\t38, 32, 141, 4, 209, 111, 214, 182, 216, 115, 101, 176, 226,\n\t\t215, 121, 210, 238, 36, 172, 238, 175, 132, 242, 65, 190,\n\t\t197, 111, 214, 193, 140, 4, 17, 16, 135, 101, 66, 243, 192,\n\t\t107, 4, 169, 205, 171, 154, 70, 171, 178, 162, 215, 98, 61,\n\t\t18, 53, 45, 108, 138, 86, 213, 246, 226, 134, 143, 145, 57,\n\t\t40, 203, 117, 80, 107, 46, 243, 77, 131, 84, 9, 241, 132,\n\t\t190, 80, 6, 185, 197, 170, 188, 98, 75, 218, 113, 114, 237,\n\t\t191, 97, 248, 252, 138, 171, 107, 62, 169, 104, 186, 5, 214,\n\t\t154, 85, 229, 117, 170, 229, 110, 57, 73, 60, 91, 54, 169,\n\t\t159, 165, 117, 193, 154, 126, 27, 116, 196, 133, 5, 150, 52,\n\t\t245, 62, 232, 211, 178, 35, 147, 186, 214, 115, 89, 61, 172,\n\t\t26, 90, 60, 111, 198, 243, 148, 180, 35, 175, 161, 249, 221,\n\t\t136, 235, 157, 157, 250, 224, 158, 252, 246, 109, 9, 171,\n\t\t253, 230, 227, 62, 252, 123, 124, 19, 196, 134, 220, 190,\n\t\t61, 191, 103, 80, 223, 233, 232, 60, 234, 250, 90, 195, 139,\n\t\t218, 4, 201, 81, 204, 249, 88, 51, 170, 97, 157, 185, 61,\n\t\t173, 158, 64, 217, 112, 135, 190, 222, 76, 216, 194, 130,\n\t\t211, 42, 183, 253, 38, 19, 141, 164, 236, 209, 166, 180, 31,\n\t\t182, 132, 8, 86, 98, 155, 51, 29, 22, 119, 215, 219, 13, 114,\n\t\t131, 122, 87, 242, 178, 77, 205, 183, 136, 64, 136, 60, 0,\n\t\t69, 205, 118, 97, 237, 114, 46, 111, 122, 196, 204, 247, 218,\n\t\t38, 181, 203, 197, 94, 41, 121, 242, 243, 228, 73, 242, 107,\n\t\t165, 94, 233, 12, 204, 255, 119, 35, 199, 101, 82, 184, 171,\n\t\t193, 144, 93, 35, 163, 93, 190, 135, 123, 100, 202, 49, 54,\n\t\t220, 34, 155, 9, 50, 248, 162, 243, 20, 1, 7, 200, 182, 147,\n\t\t108, 196, 73, 175, 63, 237, 42, 156, 133, 10, 157, 71, 235,\n\t\t78, 67, 4, 62, 230, 236, 242, 144, 220, 65, 37, 198, 234,\n\t\t117, 229, 24, 164, 204, 44, 68, 221, 37, 108, 115, 48, 131,\n\t\t49, 228, 253, 177, 171, 120, 29, 224, 30, 42, 105, 21, 152,\n\t\t64, 155, 195, 244, 74, 146, 182, 211, 212, 103, 212, 118,\n\t\t64, 171, 11, 92, 206, 245, 178, 94, 105, 132, 238, 153, 69,\n\t\t194, 95, 60, 215, 218, 89, 233, 233, 0, 0, 64, 255, 191, 198,\n\t\t173, 86, 232, 217, 166, 160, 115, 163, 148, 76, 64, 209, 78,\n\t\t65, 218, 25, 166, 102, 198, 32, 69, 55, 64, 59, 164, 101,\n\t\t153, 53, 29, 215, 136, 108, 35, 43, 187, 238, 153, 156, 232,\n\t\t207, 63, 69, 178, 86, 42, 204, 199, 125, 40, 93, 184, 22,\n\t\t99, 237, 221, 213, 57, 40, 202, 78, 60, 208, 151, 231, 39,\n\t\t17, 189, 10, 132, 74, 154, 182, 50, 18, 206, 53, 155, 89,\n\t\t226, 195, 57, 183, 185, 213, 192, 226, 125, 248, 146, 188,\n\t\t60, 225, 229, 134, 227, 24, 190, 171, 185, 229, 216, 134,\n\t\t66, 41, 121, 236, 100, 234, 107, 166, 14, 218, 176, 3, 178,\n\t\t135, 62, 193, 218, 123, 107, 115, 70, 81, 166, 206, 230, 71,\n\t\t36, 35, 155, 170, 80, 188, 227, 254, 223, 171, 10, 128, 222,\n\t\t149, 10, 168, 157, 163, 67, 237, 202, 88, 187, 5, 162, 61,\n\t\t84, 228, 124, 228, 32, 71, 62, 77, 254, 13, 72, 148, 94, 233,\n\t\t242, 210, 85, 165, 179, 165, 27, 96, 133, 254, 72, 233, 27,\n\t\t165, 63, 35, 54, 249, 9, 242, 94, 242, 65, 242, 239, 201,\n\t\t167, 145, 53, 23, 102, 43, 166, 188, 22, 42, 11, 83, 138,\n\t\t102, 228, 168, 95, 184, 12, 51, 180, 240, 210, 105, 31, 45,\n\t\t181, 205, 238, 129, 229, 60, 219, 35, 29, 32, 143, 43, 90,\n\t\t115, 137, 232, 33, 20, 14, 19, 136, 226, 246, 94, 218, 159,\n\t\t164, 82, 5, 225, 246, 148, 3, 23, 148, 128, 129, 242, 133,\n\t\t34, 187, 8, 135, 254, 210, 48, 60, 24, 25, 155, 242, 254,\n\t\t46, 250, 207, 139, 32, 20, 101, 221, 23, 230, 110, 147, 128,\n\t\t105, 137, 232, 146, 38, 5, 195, 174, 135, 14, 119, 232, 91,\n\t\t40, 112, 243, 130, 103, 66, 165, 39, 27, 162, 38, 145, 75,\n\t\t69, 38, 58, 64, 50, 218, 145, 34, 88, 82, 49, 145, 32, 20,\n\t\t149, 119, 57, 195, 124, 5, 138, 33, 111, 19, 94, 49, 94, 29,\n\t\t255, 168, 109, 147, 193, 16, 150, 46, 109, 130, 216, 98, 197,\n\t\t203, 132, 149, 198, 197, 12, 140, 221, 93, 190, 57, 28, 32,\n\t\t96, 121, 19, 57, 239, 48, 109, 31, 153, 138, 77, 151, 170,\n\t\t244, 235, 147, 194, 194, 239, 99, 78, 146, 66, 55, 25, 247,\n\t\t103, 217, 99, 93, 166, 0, 174, 2, 238, 215, 164, 42, 10, 58,\n\t\t205, 84, 66, 183, 56, 75, 166, 176, 222, 194, 255, 89, 122,\n\t\t53, 33, 193, 236, 78, 37, 166, 44, 86, 205, 123, 16, 123,\n\t\t172, 146, 153, 98, 16, 121, 175, 255, 23, 176, 214, 61, 31,\n\t\t181, 84, 208, 51, 36, 26, 50, 14, 53, 149, 126, 138, 129,\n\t\t143, 194, 37, 179, 56, 27, 229, 173, 4, 221, 62, 197, 248,\n\t\t61, 88, 124, 208, 217, 72, 200, 157, 130, 50, 143, 8, 231,\n\t\t81, 71, 115, 54, 193, 58, 146, 74, 87, 229, 104, 214, 233,\n\t\t140, 124, 0, 21, 68, 42, 170, 157, 237, 185, 116, 185, 93,\n\t\t143, 92, 80, 233, 77, 179, 156, 26, 97, 236, 14, 143, 29,\n\t\t75, 130, 188, 149, 193, 172, 9, 165, 102, 43, 87, 166, 228,\n\t\t129, 233, 24, 72, 67, 111, 239, 63, 76, 76, 157, 24, 54, 177,\n\t\t39, 157, 86, 153, 118, 148, 130, 10, 250, 181, 151, 216, 141,\n\t\t158, 176, 186, 9, 169, 70, 149, 110, 217, 168, 220, 214, 94,\n\t\t189, 33, 169, 97, 72, 14, 104, 198, 96, 43, 69, 213, 234,\n\t\t21, 73, 179, 119, 153, 69, 68, 192, 168, 229, 34, 101, 18,\n\t\t62, 4, 2, 104, 192, 66, 75, 77, 139, 68, 45, 129, 42, 187,\n\t\t193, 152, 116, 106, 189, 124, 198, 65, 37, 3, 152, 188, 22,\n\t\t130, 32, 157, 160, 98, 19, 195, 96, 174, 144, 181, 75, 42,\n\t\t240, 204, 237, 97, 185, 108, 26, 186, 171, 209, 43, 86, 208,\n\t\t238, 49, 34, 152, 190, 104, 75, 89, 232, 1, 133, 142, 48,\n\t\t109, 61, 224, 126, 133, 42, 207, 174, 141, 4, 222, 96, 132,\n\t\t17, 105, 42, 195, 94, 3, 29, 25, 249, 51, 109, 107, 113, 152,\n\t\t232, 182, 142, 214, 242, 123, 118, 169, 1, 58, 243, 142, 23,\n\t\t128, 134, 172, 131, 9, 143, 76, 12, 116, 1, 236, 94, 164,\n\t\t19, 33, 143, 129, 233, 245, 3, 116, 66, 50, 204, 145, 101,\n\t\t161, 137, 9, 246, 47, 87, 252, 45, 240, 198, 80, 230, 41,\n\t\t147, 22, 38, 31, 65, 119, 114, 5, 170, 13, 6, 18, 234, 211,\n\t\t127, 69, 133, 209, 32, 220, 250, 117, 105, 8, 212, 232, 121,\n\t\t97, 52, 208, 109, 225, 128, 109, 17, 45, 183, 107, 86, 144,\n\t\t36, 129, 5, 138, 247, 70, 217, 245, 78, 93, 113, 105, 213,\n\t\t117, 203, 142, 55, 108, 72, 219, 136, 68, 232, 51, 212, 17,\n\t\t89, 6, 10, 167, 73, 87, 169, 46, 28, 217, 63, 83, 207, 18,\n\t\t187, 134, 166, 186, 148, 110, 88, 75, 73, 111, 65, 88, 53,\n\t\t207, 231, 52, 78, 184, 56, 49, 58, 245, 234, 110, 138, 48,\n\t\t16, 215, 129, 49, 169, 241, 250, 66, 253, 163, 213, 36, 181,\n\t\t44, 2, 22, 39, 142, 3, 229, 20, 129, 198, 49, 41, 136, 170,\n\t\t166, 249, 1, 221, 193, 120, 77, 199, 39, 42, 20, 84, 61, 2,\n\t\t244, 159, 128, 34, 48, 65, 81, 57, 230, 96, 56, 34, 69, 169,\n\t\t109, 53, 232, 152, 235, 208, 148, 48, 156, 50, 206, 106, 130,\n\t\t225, 115, 162, 107, 34, 14, 66, 139, 113, 35, 192, 212, 236,\n\t\t68, 119, 117, 110, 233, 18, 198, 95, 224, 59, 176, 208, 250,\n\t\t150, 41, 29, 95, 128, 89, 105, 194, 144, 122, 182, 67, 49,\n\t\t141, 0, 92, 38, 145, 242, 134, 145, 182, 206, 124, 131, 138,\n\t\t139, 241, 186, 26, 232, 156, 185, 226, 184, 74, 100, 78, 15,\n\t\t66, 175, 198, 57, 254, 200, 4, 127, 178, 41, 194, 159, 103,\n\t\t175, 255, 169, 219, 233, 116, 47, 43, 210, 228, 62, 113, 120,\n\t\t187, 90, 221, 62, 92, 173, 118, 186, 213, 106, 183, 83, 253,\n\t\t239, 221, 238, 177, 78, 135, 216, 133, 106, 246, 63, 110,\n\t\t60, 124, 211, 246, 21, 81, 116, 197, 246, 77, 135, 111, 140,\n\t\t227, 163, 157, 206, 209, 217, 171, 146, 107, 46, 232, 83,\n\t\t143, 128, 62, 133, 24, 186, 78, 105, 165, 84, 58, 8, 251,\n\t\t18, 7, 242, 7, 230, 172, 2, 53, 35, 61, 85, 144, 97, 18, 133,\n\t\t11, 105, 3, 254, 50, 243, 253, 204, 127, 142, 159, 121, 210,\n\t\t214, 173, 189, 185, 99, 235, 141, 7, 222, 253, 236, 213, 228,\n\t\t154, 246, 220, 78, 239, 204, 195, 87, 93, 245, 19, 240, 149,\n\t\t151, 101, 112, 154, 165, 219, 242, 139, 245, 245, 99, 189,\n\t\t203, 239, 191, 255, 114, 114, 245, 183, 59, 189, 253, 223,\n\t\t233, 237, 204, 77, 206, 156, 121, 232, 12, 98, 178, 34, 88,\n\t\t199, 127, 14, 236, 1, 83, 101, 110, 126, 138, 238, 55, 75,\n\t\t122, 5, 79, 232, 56, 147, 99, 204, 57, 208, 36, 234, 254,\n\t\t176, 28, 129, 102, 70, 186, 97, 51, 172, 245, 251, 147, 252,\n\t\t45, 95, 63, 247, 226, 231, 93, 243, 208, 67, 219, 231, 150,\n\t\t78, 95, 127, 106, 41, 234, 196, 107, 205, 229, 127, 31, 54,\n\t\t3, 248, 46, 79, 191, 78, 31, 63, 119, 237, 163, 162, 191,\n\t\t183, 183, 32, 110, 217, 89, 58, 189, 4, 255, 179, 209, 138,\n\t\t83, 45, 223, 162, 226, 116, 127, 147, 252, 0, 250, 160, 139,\n\t\t88, 116, 205, 85, 168, 62, 37, 216, 149, 136, 238, 245, 241,\n\t\t61, 194, 37, 25, 46, 92, 138, 86, 113, 230, 210, 91, 211,\n\t\t198, 51, 46, 107, 242, 158, 250, 13, 29, 114, 255, 59, 223,\n\t\t121, 255, 194, 93, 77, 76, 33, 72, 238, 125, 73, 218, 152,\n\t\t206, 119, 143, 166, 228, 30, 18, 224, 148, 106, 28, 137, 163,\n\t\t182, 31, 74, 210, 15, 43, 167, 78, 19, 208, 130, 160, 131,\n\t\t230, 107, 56, 4, 175, 189, 188, 61, 234, 116, 124, 167, 18,\n\t\t16, 246, 77, 203, 94, 95, 6, 115, 172, 44, 117, 215, 242,\n\t\t67, 179, 235, 200, 29, 82, 228, 146, 127, 242, 201, 191, 129,\n\t\t114, 222, 90, 74, 102, 49, 100, 37, 196, 166, 41, 74, 226,\n\t\t110, 62, 69, 27, 4, 143, 160, 226, 179, 143, 84, 182, 208,\n\t\t20, 51, 208, 72, 252, 88, 1, 217, 36, 26, 81, 197, 101, 96,\n\t\t112, 22, 159, 97, 127, 231, 234, 226, 207, 126, 160, 113,\n\t\t118, 171, 241, 152, 183, 232, 190, 223, 107, 44, 122, 31,\n\t\t144, 137, 251, 55, 158, 252, 96, 253, 108, 67, 247, 98, 221,\n\t\t197, 79, 254, 175, 103, 156, 33, 255, 91, 113, 138, 116, 103,\n\t\t167, 60, 240, 129, 198, 214, 89, 56, 199, 123, 191, 183, 208,\n\t\t112, 63, 0, 151, 62, 238, 197, 242, 131, 141, 134, 30, 123,\n\t\t186, 11, 31, 220, 249, 180, 239, 241, 186, 231, 63, 253, 4,\n\t\t21, 51, 248, 171, 96, 31, 126, 17, 158, 181, 93, 90, 47, 77,\n\t\t224, 121, 79, 148, 174, 68, 11, 188, 69, 154, 180, 160, 117,\n\t\t94, 39, 200, 220, 5, 67, 35, 91, 34, 61, 69, 190, 62, 233,\n\t\t103, 57, 242, 46, 206, 222, 103, 195, 124, 144, 34, 24, 123,\n\t\t246, 103, 10, 98, 15, 33, 249, 125, 1, 239, 187, 253, 175,\n\t\t134, 225, 231, 53, 93, 11, 63, 31, 134, 255, 65, 55, 77, 253,\n\t\t65, 189, 173, 71, 141, 44, 138, 94, 220, 10, 237, 40, 197,\n\t\t119, 97, 51, 91, 178, 12, 195, 106, 28, 55, 13, 195, 108,\n\t\t255, 73, 185, 78, 234, 149, 78, 173, 54, 89, 10, 130, 165,\n\t\t128, 124, 198, 52, 31, 100, 166, 45, 254, 48, 49, 31, 50,\n\t\t205, 135, 120, 104, 252, 161, 17, 242, 219, 206, 55, 231,\n\t\t230, 238, 235, 241, 118, 131, 156, 239, 118, 175, 243, 131,\n\t\t14, 137, 162, 126, 212, 89, 232, 140, 199, 97, 111, 110, 110,\n\t\t198, 139, 135, 99, 2, 57, 73, 206, 21, 145, 216, 113, 145,\n\t\t200, 20, 241, 164, 168, 53, 200, 209, 12, 142, 155, 33, 76,\n\t\t2, 20, 6, 16, 241, 179, 96, 96, 143, 244, 84, 119, 245, 102,\n\t\t105, 218, 103, 200, 211, 161, 242, 67, 144, 143, 246, 55,\n\t\t205, 134, 52, 60, 89, 61, 190, 83, 169, 236, 28, 175, 26,\n\t\t137, 237, 72, 9, 34, 113, 56, 223, 92, 213, 141, 185, 154,\n\t\t99, 198, 213, 76, 232, 107, 135, 116, 51, 176, 26, 114, 133,\n\t\t172, 154, 91, 230, 42, 89, 145, 13, 63, 213, 143, 186, 237,\n\t\t142, 149, 147, 5, 179, 219, 118, 201, 43, 214, 231, 156, 246,\n\t\t85, 81, 182, 28, 157, 152, 76, 46, 171, 129, 242, 26, 39,\n\t\t22, 172, 115, 90, 123, 181, 215, 168, 182, 36, 183, 235, 113,\n\t\t163, 247, 194, 50, 183, 124, 189, 241, 214, 39, 218, 237,\n\t\t39, 222, 218, 8, 108, 39, 253, 196, 124, 247, 197, 47, 238,\n\t\t206, 43, 236, 153, 194, 47, 31, 131, 213, 101, 171, 116, 61,\n\t\t104, 206, 37, 178, 129, 139, 138, 162, 197, 67, 27, 140, 14,\n\t\t134, 18, 30, 173, 216, 171, 69, 214, 117, 36, 215, 83, 36,\n\t\t147, 100, 153, 228, 10, 67, 143, 228, 149, 240, 167, 49, 203,\n\t\t158, 222, 27, 111, 51, 204, 43, 129, 10, 48, 88, 107, 98,\n\t\t182, 113, 14, 211, 22, 108, 224, 201, 204, 209, 130, 64, 123,\n\t\t242, 4, 113, 29, 220, 199, 3, 49, 40, 97, 229, 125, 132, 183,\n\t\t163, 99, 137, 101, 219, 130, 121, 54, 1, 233, 75, 108, 143,\n\t\t9, 219, 214, 124, 161, 29, 139, 218, 188, 87, 23, 233, 98,\n\t\t42, 234, 63, 41, 44, 13, 68, 21, 202, 11, 6, 61, 2, 146, 150,\n\t\t252, 219, 115, 115, 161, 181, 36, 228, 178, 161, 215, 76,\n\t\t227, 220, 185, 94, 96, 45, 75, 177, 98, 201, 42, 216, 71,\n\t\t219, 96, 8, 5, 232, 16, 131, 181, 27, 117, 146, 94, 20, 210,\n\t\t239, 131, 230, 18, 148, 237, 157, 77, 220, 248, 221, 220,\n\t\t181, 202, 129, 160, 244, 251, 52, 140, 94, 255, 80, 37, 203,\n\t\t42, 15, 189, 202, 120, 111, 26, 160, 55, 244, 125, 160, 18,\n\t\t224, 222, 42, 43, 54, 135, 5, 61, 247, 82, 238, 153, 59, 166,\n\t\t185, 139, 25, 208, 94, 250, 50, 225, 27, 123, 166, 185, 135,\n\t\t111, 200, 211, 115, 168, 55, 158, 242, 64, 104, 5, 73, 50,\n\t\t38, 240, 42, 184, 164, 65, 247, 26, 76, 102, 89, 212, 223,\n\t\t132, 124, 97, 38, 177, 192, 176, 182, 136, 137, 97, 20, 206,\n\t\t53, 231, 175, 153, 33, 193, 222, 170, 89, 4, 190, 207, 135,\n\t\t195, 92, 192, 29, 76, 177, 185, 183, 167, 198, 103, 6, 114,\n\t\t225, 47, 64, 46, 4, 56, 235, 72, 122, 16, 210, 210, 31, 21,\n\t\t217, 134, 41, 232, 161, 253, 222, 168, 191, 77, 166, 35, 220,\n\t\t93, 73, 210, 4, 161, 231, 131, 41, 170, 153, 174, 182, 153,\n\t\t14, 19, 80, 250, 192, 16, 26, 14, 198, 253, 241, 48, 6, 229,\n\t\t57, 1, 197, 145, 124, 203, 76, 126, 53, 117, 239, 191, 91,\n\t\t90, 233, 231, 224, 239, 61, 31, 20, 243, 72, 231, 70, 53,\n\t\t7, 100, 238, 53, 120, 52, 207, 136, 166, 235, 96, 106, 82,\n\t\t159, 130, 161, 11, 226, 157, 94, 67, 212, 10, 122, 36, 250,\n\t\t47, 253, 135, 198, 123, 118, 241, 103, 255, 63, 205, 81, 170,\n\t\t151, 107, 55, 28, 211, 180, 249, 245, 7, 208, 173, 63, 199,\n\t\t133, 14, 131, 147, 178, 23, 221, 45, 68, 109, 21, 244, 148,\n\t\t13, 48, 144, 11, 220, 139, 11, 246, 219, 0, 158, 7, 90, 77,\n\t\t203, 48, 252, 96, 29, 86, 224, 167, 130, 245, 147, 96, 170,\n\t\t194, 142, 61, 66, 54, 64, 235, 60, 46, 180, 135, 91, 250,\n\t\t80, 135, 255, 175, 3, 43, 88, 99, 236, 173, 19, 201, 180,\n\t\t183, 53, 31, 212, 117, 242, 61, 93, 223, 255, 218, 27, 132,\n\t\t65, 223, 168, 228, 247, 63, 208, 87, 147, 215, 151, 188, 82,\n\t\t13, 249, 146, 126, 152, 83, 129, 140, 123, 82, 81, 54, 100,\n\t\t83, 16, 221, 138, 246, 145, 158, 141, 106, 181, 232, 159,\n\t\t254, 15, 124, 37, 115, 59, 187, 59, 187, 187, 187, 59, 95,\n\t\t186, 109, 119, 103, 135, 188, 190, 22, 237, 127, 93, 125,\n\t\t190, 22, 213, 246, 191, 254, 245, 51, 103, 190, 254, 248,\n\t\t153, 51, 143, 179, 7, 31, 120, 0, 99, 1, 14, 124, 31, 142,\n\t\t66, 192, 245, 84, 12, 119, 47, 79, 100, 47, 64, 226, 202,\n\t\t233, 48, 32, 193, 116, 28, 13, 167, 61, 18, 33, 165, 164,\n\t\t140, 8, 146, 166, 129, 233, 17, 72, 242, 211, 119, 62, 120,\n\t\t195, 61, 11, 15, 189, 244, 198, 187, 247, 143, 159, 250, 207,\n\t\t215, 143, 174, 218, 255, 141, 209, 53, 87, 159, 110, 147,\n\t\t201, 185, 107, 254, 232, 173, 167, 78, 29, 249, 169, 219,\n\t\t246, 200, 159, 54, 63, 249, 130, 189, 253, 1, 249, 248, 254,\n\t\t112, 252, 131, 253, 223, 201, 201, 23, 247, 179, 195, 247,\n\t\t61, 242, 205, 49, 249, 203, 253, 19, 228, 179, 251, 191, 78,\n\t\t118, 126, 249, 60, 73, 199, 138, 27, 97, 25, 158, 251, 90,\n\t\t56, 114, 74, 39, 75, 215, 149, 238, 66, 155, 56, 194, 208,\n\t\t152, 188, 135, 228, 17, 195, 108, 154, 171, 204, 34, 2, 129,\n\t\t141, 77, 234, 194, 162, 157, 227, 164, 23, 57, 152, 58, 208,\n\t\t214, 147, 49, 82, 195, 72, 149, 33, 102, 8, 246, 77, 145,\n\t\t135, 36, 150, 243, 57, 206, 94, 4, 28, 137, 28, 95, 101, 142,\n\t\t124, 137, 203, 179, 236, 28, 57, 38, 139, 0, 107, 108, 130,\n\t\t193, 35, 253, 117, 50, 196, 72, 6, 248, 16, 83, 103, 41, 177,\n\t\t7, 43, 104, 178, 49, 156, 124, 252, 37, 155, 75, 122, 118,\n\t\t247, 105, 91, 171, 223, 194, 248, 14, 21, 158, 94, 47, 246,\n\t\t4, 38, 34, 20, 96, 250, 28, 145, 199, 184, 61, 162, 168, 168,\n\t\t86, 133, 133, 156, 37, 190, 20, 186, 118, 147, 198, 135, 148,\n\t\t252, 94, 212, 20, 20, 99, 153, 65, 159, 45, 127, 156, 170,\n\t\t112, 255, 104, 145, 106, 254, 159, 17, 243, 37, 102, 236,\n\t\t57, 142, 45, 181, 192, 17, 150, 251, 160, 233, 16, 250, 134,\n\t\t168, 191, 168, 59, 172, 249, 162, 149, 229, 12, 89, 108, 183,\n\t\t125, 73, 159, 71, 86, 254, 75, 181, 90, 254, 216, 199, 194,\n\t\t240, 14, 75, 136, 56, 177, 141, 14, 147, 186, 132, 225, 73,\n\t\t142, 166, 80, 233, 200, 216, 188, 50, 203, 134, 204, 142,\n\t\t152, 93, 15, 67, 10, 102, 65, 18, 91, 66, 203, 123, 212, 93,\n\t\t80, 57, 159, 209, 189, 222, 238, 80, 203, 177, 57, 119, 183,\n\t\t192, 170, 185, 178, 124, 218, 77, 44, 41, 61, 212, 76, 205,\n\t\t147, 182, 38, 238, 5, 173, 150, 251, 6, 215, 56, 84, 31, 119,\n\t\t138, 238, 35, 23, 113, 93, 140, 49, 111, 56, 193, 118, 133,\n\t\t153, 139, 214, 165, 114, 42, 226, 24, 84, 14, 196, 33, 34,\n\t\t234, 186, 8, 221, 197, 84, 36, 10, 3, 124, 97, 220, 178, 190,\n\t\t130, 220, 245, 186, 228, 37, 141, 197, 242, 189, 21, 244,\n\t\t19, 220, 244, 208, 67, 195, 135, 31, 190, 237, 23, 204, 224,\n\t\t218, 181, 173, 85, 206, 214, 54, 86, 207, 84, 175, 184, 59,\n\t\t106, 71, 251, 191, 211, 88, 92, 108, 100, 164, 183, 218, 189,\n\t\t98, 186, 119, 156, 124, 104, 177, 241, 151, 250, 156, 17,\n\t\t175, 58, 78, 43, 26, 14, 163, 86, 208, 108, 86, 214, 123,\n\t\t141, 245, 213, 185, 238, 4, 206, 95, 108, 144, 81, 99, 113,\n\t\t255, 155, 97, 167, 125, 186, 228, 61, 249, 79, 48, 174, 255,\n\t\t9, 198, 245, 189, 48, 134, 62, 72, 122, 228, 97, 88, 121,\n\t\t190, 75, 246, 41, 88, 76, 52, 167, 155, 244, 122, 250, 92,\n\t\t250, 86, 204, 54, 132, 188, 153, 96, 193, 42, 150, 12, 220,\n\t\t235, 31, 203, 62, 152, 145, 155, 235, 100, 151, 169, 157,\n\t\t81, 169, 114, 119, 14, 145, 243, 29, 237, 122, 220, 56, 30,\n\t\t202, 73, 230, 50, 169, 188, 108, 32, 75, 89, 147, 100, 117,\n\t\t158, 198, 152, 30, 19, 73, 138, 16, 189, 212, 195, 111, 251,\n\t\t82, 165, 237, 75, 179, 97, 191, 184, 80, 14, 178, 73, 79,\n\t\t130, 201, 219, 219, 192, 236, 96, 24, 210, 65, 123, 233, 96,\n\t\t42, 51, 92, 58, 102, 123, 210, 121, 31, 83, 140, 170, 243,\n\t\t51, 184, 145, 108, 202, 12, 6, 109, 6, 163, 19, 141, 241,\n\t\t117, 158, 98, 230, 172, 37, 10, 21, 232, 93, 180, 67, 143,\n\t\t28, 31, 66, 66, 225, 208, 35, 211, 110, 191, 55, 158, 14,\n\t\t82, 229, 100, 200, 176, 86, 211, 188, 139, 193, 142, 147,\n\t\t41, 26, 216, 50, 207, 146, 174, 226, 62, 130, 162, 240, 253,\n\t\t30, 145, 8, 196, 36, 187, 4, 97, 3, 162, 135, 53, 131, 103,\n\t\t18, 121, 38, 215, 88, 79, 228, 138, 55, 67, 57, 2, 70, 202,\n\t\t231, 136, 17, 254, 249, 176, 41, 38, 200, 24, 157, 21, 142,\n\t\t71, 12, 76, 206, 242, 65, 6, 243, 103, 143, 32, 7, 57, 52,\n\t\t28, 52, 108, 15, 76, 15, 144, 189, 83, 153, 96, 120, 204,\n\t\t36, 3, 105, 140, 16, 216, 60, 91, 195, 116, 96, 114, 138,\n\t\t168, 216, 28, 247, 168, 49, 60, 8, 84, 146, 65, 186, 1, 13,\n\t\t137, 118, 255, 20, 33, 243, 57, 2, 108, 81, 5, 201, 155, 122,\n\t\t146, 195, 13, 64, 253, 202, 16, 87, 11, 143, 178, 142, 78,\n\t\t106, 133, 182, 194, 245, 0, 253, 5, 57, 198, 220, 164, 133,\n\t\t147, 5, 241, 100, 42, 9, 130, 72, 160, 13, 5, 44, 149, 74,\n\t\t168, 227, 8, 4, 81, 6, 195, 114, 154, 143, 85, 186, 172, 222,\n\t\t88, 34, 200, 180, 55, 25, 130, 102, 160, 136, 173, 113, 215,\n\t\t94, 41, 224, 137, 84, 73, 180, 214, 24, 84, 83, 41, 68, 195,\n\t\t13, 68, 203, 97, 147, 171, 61, 26, 137, 201, 91, 123, 24,\n\t\t51, 62, 20, 5, 19, 122, 225, 157, 133, 5, 6, 17, 96, 19, 242,\n\t\t231, 26, 26, 105, 142, 33, 95, 115, 251, 109, 199, 142, 146,\n\t\t88, 46, 144, 6, 163, 182, 97, 11, 203, 71, 52, 16, 241, 91,\n\t\t29, 158, 85, 21, 78, 70, 215, 26, 212, 94, 29, 51, 7, 140,\n\t\t154, 186, 40, 167, 172, 215, 225, 129, 112, 76, 15, 236, 68,\n\t\t219, 141, 44, 12, 105, 164, 26, 60, 179, 241, 188, 88, 183,\n\t\t225, 51, 77, 226, 118, 154, 75, 179, 118, 88, 141, 113, 127,\n\t\t18, 67, 111, 96, 210, 218, 166, 203, 165, 35, 51, 30, 104,\n\t\t11, 152, 66, 155, 41, 222, 161, 253, 239, 88, 212, 33, 38,\n\t\t181, 108, 144, 229, 174, 197, 76, 220, 117, 69, 159, 132,\n\t\t182, 152, 174, 87, 93, 18, 232, 44, 196, 165, 172, 162, 211,\n\t\t76, 130, 57, 138, 187, 56, 96, 185, 106, 204, 53, 18, 211,\n\t\t100, 76, 56, 96, 93, 194, 227, 88, 184, 43, 142, 36, 95, 4,\n\t\t105, 73, 153, 109, 181, 194, 100, 161, 141, 1, 5, 212, 3,\n\t\t41, 235, 232, 6, 34, 225, 168, 8, 37, 247, 221, 136, 155,\n\t\t154, 67, 117, 74, 98, 68, 158, 53, 169, 73, 2, 139, 59, 142,\n\t\t85, 134, 179, 65, 28, 211, 67, 91, 204, 108, 214, 230, 220,\n\t\t108, 67, 58, 96, 203, 28, 114, 124, 46, 34, 16, 203, 90, 24,\n\t\t54, 234, 121, 63, 243, 50, 203, 163, 129, 21, 198, 205, 104,\n\t\t133, 32, 64, 233, 213, 134, 99, 218, 142, 91, 35, 101, 63,\n\t\t8, 221, 69, 135, 99, 150, 15, 151, 219, 46, 234, 25, 150,\n\t\t177, 30, 132, 237, 73, 194, 92, 74, 237, 149, 178, 108, 114,\n\t\t102, 164, 154, 176, 138, 10, 71, 109, 195, 129, 234, 8, 220,\n\t\t74, 36, 190, 229, 25, 41, 53, 79, 175, 84, 161, 92, 179, 217,\n\t\t242, 253, 142, 176, 12, 169, 34, 129, 36, 137, 140, 132, 114,\n\t\t204, 158, 177, 220, 95, 174, 51, 22, 121, 255, 32, 45, 132,\n\t\t200, 217, 66, 55, 144, 18, 173, 17, 74, 138, 156, 89, 182,\n\t\t235, 194, 5, 190, 197, 68, 68, 25, 166, 78, 133, 149, 115,\n\t\t202, 81, 195, 80, 89, 253, 56, 207, 121, 42, 44, 155, 146,\n\t\t19, 132, 123, 208, 14, 32, 13, 76, 196, 237, 26, 110, 1, 50,\n\t\t115, 44, 220, 123, 181, 28, 205, 198, 52, 154, 18, 61, 80,\n\t\t66, 71, 234, 122, 93, 231, 11, 12, 116, 98, 155, 98, 98, 79,\n\t\t163, 29, 148, 145, 235, 85, 64, 19, 7, 136, 3, 51, 13, 246,\n\t\t53, 33, 131, 128, 120, 174, 117, 219, 227, 219, 59, 183, 192,\n\t\t141, 211, 213, 158, 66, 21, 106, 156, 167, 161, 17, 112, 98,\n\t\t244, 27, 174, 16, 210, 134, 95, 41, 147, 114, 186, 90, 243,\n\t\t152, 35, 117, 10, 226, 34, 198, 13, 125, 19, 55, 165, 133,\n\t\t134, 244, 93, 184, 119, 107, 130, 122, 31, 152, 196, 119,\n\t\t195, 44, 125, 179, 163, 89, 134, 109, 114, 211, 177, 8, 211,\n\t\t109, 203, 244, 245, 216, 10, 116, 147, 72, 41, 66, 83, 226,\n\t\t174, 63, 17, 60, 104, 219, 102, 130, 153, 31, 169, 33, 219,\n\t\t157, 37, 173, 22, 88, 18, 70, 140, 208, 116, 5, 50, 68, 230,\n\t\t26, 202, 170, 86, 40, 82, 228, 21, 83, 56, 55, 168, 122, 216,\n\t\t10, 5, 114, 208, 240, 180, 236, 186, 141, 58, 24, 103, 216,\n\t\t110, 208, 12, 92, 179, 24, 57, 192, 50, 240, 132, 68, 84,\n\t\t147, 142, 157, 130, 242, 213, 152, 195, 143, 5, 210, 154,\n\t\t247, 137, 169, 217, 204, 102, 251, 191, 100, 135, 177, 94,\n\t\t227, 166, 71, 52, 196, 13, 88, 89, 198, 116, 207, 20, 65,\n\t\t29, 6, 79, 228, 111, 103, 208, 41, 178, 209, 202, 68, 66,\n\t\t153, 229, 50, 17, 56, 145, 105, 65, 31, 165, 94, 133, 235,\n\t\t229, 74, 28, 44, 134, 112, 19, 243, 155, 78, 135, 5, 94, 134,\n\t\t126, 65, 39, 14, 125, 28, 210, 53, 119, 110, 197, 247, 25,\n\t\t41, 123, 96, 62, 17, 45, 245, 120, 217, 39, 43, 85, 102, 24,\n\t\t24, 56, 236, 114, 141, 32, 69, 38, 129, 25, 161, 29, 108,\n\t\t54, 235, 178, 86, 79, 253, 229, 117, 1, 149, 64, 19, 32, 65,\n\t\t136, 160, 64, 148, 7, 204, 246, 122, 205, 229, 220, 103, 210,\n\t\t174, 183, 55, 140, 83, 208, 60, 142, 48, 53, 226, 224, 158,\n\t\t59, 115, 196, 163, 154, 49, 111, 217, 158, 191, 49, 180, 116,\n\t\t211, 169, 248, 156, 39, 182, 196, 125, 113, 205, 51, 9, 147,\n\t\t46, 82, 242, 193, 144, 24, 48, 234, 10, 182, 73, 53, 102,\n\t\t248, 18, 218, 222, 182, 145, 7, 25, 179, 249, 194, 221, 131,\n\t\t114, 96, 33, 117, 160, 149, 137, 88, 48, 162, 27, 48, 252,\n\t\t45, 211, 102, 208, 45, 199, 97, 81, 39, 232, 236, 202, 12,\n\t\t46, 3, 203, 132, 49, 106, 42, 242, 101, 88, 62, 96, 200, 161,\n\t\t78, 142, 121, 227, 30, 2, 57, 249, 252, 210, 155, 64, 243,\n\t\t131, 85, 191, 211, 85, 142, 103, 100, 152, 84, 16, 215, 28,\n\t\t214, 98, 208, 188, 123, 248, 33, 130, 117, 209, 123, 44, 71,\n\t\t184, 233, 140, 168, 37, 84, 223, 135, 29, 16, 159, 24, 236,\n\t\t169, 200, 173, 103, 94, 232, 12, 221, 219, 189, 241, 96, 56,\n\t\t200, 55, 102, 28, 118, 73, 90, 87, 9, 82, 64, 43, 235, 99,\n\t\t144, 151, 74, 82, 0, 18, 100, 153, 40, 15, 54, 232, 25, 26,\n\t\t217, 255, 132, 64, 74, 181, 71, 116, 15, 94, 23, 169, 0, 115,\n\t\t166, 251, 66, 104, 14, 211, 215, 168, 108, 54, 113, 3, 137,\n\t\t41, 255, 99, 197, 241, 166, 45, 77, 225, 85, 206, 21, 168,\n\t\t215, 13, 119, 197, 134, 199, 150, 77, 39, 172, 58, 46, 137,\n\t\t8, 123, 17, 238, 71, 65, 183, 11, 47, 197, 148, 0, 206, 189,\n\t\t130, 253, 162, 1, 150, 183, 129, 32, 90, 31, 233, 112, 161,\n\t\t41, 116, 107, 1, 86, 223, 152, 183, 12, 97, 54, 96, 144, 137,\n\t\t224, 185, 41, 88, 92, 176, 112, 57, 26, 171, 199, 154, 202,\n\t\t147, 124, 250, 148, 21, 59, 46, 168, 231, 2, 234, 104, 155,\n\t\t213, 128, 33, 154, 209, 50, 17, 41, 227, 155, 201, 165, 173,\n\t\t213, 237, 148, 136, 164, 198, 43, 162, 96, 83, 174, 28, 201,\n\t\t73, 12, 53, 253, 45, 196, 86, 98, 55, 45, 154, 122, 150, 100,\n\t\t122, 253, 217, 80, 89, 220, 99, 40, 65, 187, 127, 94, 217,\n\t\t14, 31, 46, 125, 151, 84, 200, 45, 228, 127, 38, 223, 166,\n\t\t140, 246, 233, 73, 250, 247, 208, 69, 85, 214, 97, 171, 108,\n\t\t19, 244, 223, 180, 72, 3, 134, 98, 180, 183, 198, 199, 24,\n\t\t58, 166, 178, 136, 161, 200, 6, 73, 188, 1, 230, 123, 178,\n\t\t177, 75, 54, 161, 115, 112, 207, 95, 241, 20, 229, 5, 58,\n\t\t76, 217, 80, 8, 49, 147, 75, 24, 29, 10, 166, 211, 76, 124,\n\t\t117, 123, 253, 169, 34, 18, 220, 136, 55, 155, 84, 117, 23,\n\t\t20, 171, 36, 237, 32, 217, 72, 49, 229, 32, 232, 191, 120,\n\t\t10, 221, 28, 11, 137, 251, 0, 184, 23, 1, 114, 187, 143, 55,\n\t\t204, 85, 111, 227, 104, 24, 32, 202, 90, 193, 36, 243, 46,\n\t\t92, 184, 25, 23, 16, 181, 34, 242, 107, 50, 133, 82, 39, 133,\n\t\t49, 135, 24, 134, 25, 17, 41, 86, 161, 167, 130, 162, 49,\n\t\t209, 81, 3, 164, 49, 12, 18, 80, 207, 233, 48, 85, 0, 246,\n\t\t238, 142, 74, 115, 161, 40, 64, 208, 81, 145, 108, 36, 46,\n\t\t141, 197, 166, 139, 31, 79, 50, 120, 180, 93, 133, 42, 204,\n\t\t187, 227, 233, 140, 13, 17, 13, 244, 65, 241, 25, 70, 126,\n\t\t203, 30, 110, 182, 196, 120, 176, 84, 40, 248, 253, 37, 130,\n\t\t8, 80, 212, 63, 231, 5, 102, 57, 199, 22, 64, 104, 182, 170,\n\t\t92, 15, 119, 71, 226, 20, 249, 142, 54, 224, 171, 2, 157,\n\t\t57, 26, 40, 196, 228, 112, 86, 238, 116, 3, 25, 122, 161,\n\t\t69, 113, 16, 43, 114, 57, 217, 205, 49, 26, 122, 130, 190,\n\t\t187, 184, 139, 113, 128, 125, 228, 106, 142, 17, 82, 151,\n\t\t196, 208, 51, 160, 231, 245, 17, 104, 95, 167, 233, 16, 41,\n\t\t38, 49, 175, 88, 140, 247, 131, 153, 52, 158, 228, 72, 36,\n\t\t185, 41, 186, 216, 31, 179, 132, 110, 163, 241, 36, 139, 101,\n\t\t145, 110, 17, 20, 73, 133, 210, 47, 54, 80, 38, 73, 42, 144,\n\t\t110, 181, 175, 174, 196, 199, 132, 206, 204, 225, 121, 138,\n\t\t242, 160, 62, 147, 162, 154, 61, 181, 197, 2, 207, 1, 77,\n\t\t32, 24, 216, 202, 112, 241, 242, 219, 160, 111, 234, 36, 69,\n\t\t148, 104, 129, 146, 220, 132, 230, 223, 28, 77, 71, 203, 208,\n\t\t234, 80, 10, 86, 78, 5, 230, 196, 72, 55, 43, 250, 208, 67,\n\t\t98, 150, 11, 9, 244, 185, 110, 172, 252, 91, 120, 26, 242,\n\t\t102, 98, 211, 130, 194, 252, 167, 127, 0, 162, 198, 184, 255,\n\t\t1, 202, 210, 157, 67, 48, 136, 152, 245, 85, 97, 220, 125,\n\t\t119, 75, 103, 182, 67, 218, 109, 162, 147, 181, 148, 208,\n\t\t95, 161, 194, 177, 13, 221, 165, 30, 45, 146, 221, 54, 121,\n\t\t1, 171, 65, 239, 191, 182, 1, 138, 140, 143, 203, 93, 2, 242,\n\t\t31, 196, 166, 64, 24, 209, 103, 23, 22, 17, 167, 199, 242,\n\t\t158, 127, 139, 66, 202, 63, 107, 244, 227, 55, 154, 180, 191,\n\t\t192, 249, 82, 14, 203, 217, 242, 157, 172, 128, 98, 153, 53,\n\t\t88, 29, 185, 6, 203, 49, 247, 157, 186, 224, 142, 169, 192,\n\t\t73, 34, 50, 11, 246, 68, 170, 117, 224, 44, 35, 150, 154,\n\t\t194, 253, 69, 159, 17, 166, 165, 59, 106, 63, 129, 179, 74,\n\t\t215, 100, 245, 170, 109, 34, 230, 16, 255, 45, 175, 49, 154,\n\t\t220, 23, 169, 157, 13, 206, 82, 144, 146, 152, 78, 79, 231,\n\t\t2, 228, 53, 139, 52, 174, 68, 43, 136, 246, 68, 51, 80, 78,\n\t\t113, 5, 65, 35, 36, 96, 116, 89, 206, 164, 22, 10, 61, 132,\n\t\t57, 225, 134, 9, 110, 220, 84, 213, 166, 18, 102, 64, 37,\n\t\t42, 65, 27, 168, 130, 105, 65, 237, 136, 8, 26, 122, 63, 254,\n\t\t237, 96, 109, 144, 74, 0, 78, 242, 10, 72, 161, 141, 200,\n\t\t126, 5, 235, 211, 186, 197, 238, 20, 110, 148, 132, 158, 198,\n\t\t67, 137, 16, 68, 145, 88, 30, 49, 28, 196, 91, 33, 8, 76,\n\t\t42, 240, 61, 161, 125, 133, 179, 67, 112, 37, 9, 235, 130,\n\t\t82, 87, 87, 248, 196, 162, 37, 98, 124, 76, 70, 80, 144, 202,\n\t\t79, 233, 11, 228, 255, 71, 255, 84, 203, 57, 152, 86, 141,\n\t\t208, 79, 147, 155, 239, 187, 1, 4, 57, 211, 64, 184, 89, 244,\n\t\t57, 4, 134, 146, 197, 60, 198, 145, 98, 223, 176, 65, 45,\n\t\t226, 236, 122, 42, 4, 76, 249, 63, 64, 180, 229, 23, 94, 10,\n\t\t141, 244, 242, 87, 128, 140, 220, 218, 38, 78, 175, 93, 71,\n\t\t151, 206, 159, 214, 24, 21, 47, 98, 241, 161, 169, 13, 171,\n\t\t181, 246, 157, 67, 83, 184, 197, 213, 208, 60, 6, 113, 76,\n\t\t232, 224, 154, 192, 206, 84, 161, 207, 206, 113, 91, 193,\n\t\t18, 100, 45, 82, 4, 158, 21, 24, 39, 150, 218, 19, 172, 18,\n\t\t114, 226, 36, 180, 230, 241, 157, 239, 104, 61, 236, 234,\n\t\t188, 121, 238, 189, 132, 29, 61, 41, 196, 229, 199, 46, 159,\n\t\t170, 22, 85, 74, 47, 33, 47, 65, 188, 165, 35, 61, 23, 133,\n\t\t82, 12, 29, 119, 106, 19, 179, 49, 115, 195, 80, 161, 10,\n\t\t169, 78, 97, 200, 24, 168, 59, 32, 121, 46, 41, 240, 110,\n\t\t4, 198, 20, 118, 22, 60, 91, 83, 154, 113, 7, 20, 48, 19,\n\t\t122, 8, 3, 114, 5, 207, 26, 73, 247, 44, 142, 124, 11, 3,\n\t\t175, 224, 124, 87, 50, 110, 35, 37, 35, 159, 87, 196, 252,\n\t\t8, 91, 163, 12, 51, 40, 32, 110, 17, 183, 31, 85, 75, 170,\n\t\t180, 239, 90, 145, 250, 29, 148, 29, 109, 17, 15, 214, 57,\n\t\t229, 116, 1, 137, 81, 225, 186, 28, 198, 26, 191, 108, 22,\n\t\t192, 161, 171, 177, 79, 125, 21, 26, 128, 206, 49, 134, 240,\n\t\t66, 220, 181, 66, 13, 12, 198, 58, 122, 16, 233, 240, 97,\n\t\t68, 193, 194, 195, 74, 170, 165, 142, 137, 119, 192, 175,\n\t\t65, 51, 20, 122, 75, 184, 47, 192, 146, 59, 58, 130, 252,\n\t\t48, 227, 2, 198, 251, 215, 99, 248, 108, 11, 138, 209, 124,\n\t\t87, 233, 116, 216, 162, 124, 255, 203, 218, 253, 96, 52, 232,\n\t\t8, 237, 67, 228, 105, 139, 210, 150, 166, 17, 179, 79, 201,\n\t\t112, 235, 179, 152, 180, 207, 170, 224, 140, 168, 122, 101,\n\t\t144, 159, 124, 142, 105, 125, 1, 186, 75, 77, 124, 217, 211,\n\t\t229, 125, 48, 133, 37, 65, 110, 21, 154, 249, 194, 44, 37,\n\t\t165, 82, 233, 22, 250, 42, 210, 47, 117, 75, 121, 233, 214,\n\t\t210, 35, 165, 87, 148, 94, 91, 122, 127, 233, 79, 75, 223,\n\t\t41, 253, 35, 201, 224, 57, 183, 201, 229, 228, 38, 114, 39,\n\t\t121, 144, 188, 137, 188, 143, 124, 156, 252, 30, 216, 250,\n\t\t42, 25, 85, 156, 245, 167, 57, 40, 48, 123, 36, 141, 193,\n\t\t54, 156, 162, 125, 136, 196, 27, 83, 180, 120, 39, 177, 156,\n\t\t228, 176, 2, 230, 233, 20, 86, 65, 220, 138, 30, 77, 208,\n\t\t253, 185, 77, 224, 210, 88, 33, 176, 49, 245, 55, 58, 159,\n\t\t96, 53, 196, 28, 163, 233, 116, 4, 118, 35, 90, 158, 72, 184,\n\t\t48, 216, 37, 67, 185, 177, 71, 192, 178, 148, 240, 147, 161,\n\t\t15, 30, 147, 101, 141, 209, 137, 60, 30, 201, 249, 28, 25,\n\t\t63, 80, 14, 244, 55, 39, 202, 81, 130, 247, 16, 217, 36, 31,\n\t\t246, 177, 2, 200, 71, 22, 167, 73, 129, 220, 143, 83, 153,\n\t\t38, 131, 105, 42, 39, 125, 57, 134, 226, 51, 49, 76, 134,\n\t\t162, 7, 107, 115, 79, 229, 165, 159, 130, 252, 129, 251, 224,\n\t\t118, 252, 100, 179, 47, 119, 169, 202, 101, 55, 221, 152,\n\t\t38, 253, 158, 236, 247, 208, 12, 30, 111, 76, 208, 9, 144,\n\t\t129, 98, 167, 84, 8, 190, 68, 123, 80, 153, 33, 252, 199,\n\t\t170, 169, 168, 245, 93, 164, 75, 193, 0, 74, 185, 197, 118,\n\t\t57, 50, 182, 173, 81, 56, 45, 75, 144, 18, 4, 78, 68, 234,\n\t\t20, 137, 219, 117, 5, 107, 18, 214, 127, 210, 239, 138, 52,\n\t\t79, 50, 245, 61, 66, 155, 134, 136, 207, 87, 137, 158, 104,\n\t\t50, 25, 10, 220, 175, 23, 203, 152, 128, 4, 181, 138, 100,\n\t\t99, 139, 238, 82, 40, 181, 11, 114, 110, 40, 113, 243, 237,\n\t\t224, 90, 120, 228, 113, 62, 99, 55, 154, 228, 131, 217, 173,\n\t\t19, 120, 184, 97, 17, 112, 128, 10, 104, 74, 182, 52, 132,\n\t\t93, 91, 2, 217, 247, 208, 137, 165, 83, 206, 117, 6, 22, 36,\n\t\t204, 32, 99, 14, 62, 3, 43, 2, 44, 223, 88, 211, 148, 246,\n\t\t136, 139, 38, 83, 48, 79, 77, 77, 107, 174, 21, 112, 102,\n\t\t77, 211, 115, 203, 177, 12, 5, 23, 213, 168, 66, 118, 234,\n\t\t154, 99, 104, 127, 85, 235, 28, 46, 215, 117, 189, 166, 175,\n\t\t175, 239, 255, 61, 7, 3, 43, 208, 116, 134, 246, 49, 174,\n\t\t194, 106, 94, 72, 69, 22, 193, 25, 119, 149, 48, 161, 5, 173,\n\t\t113, 129, 4, 69, 224, 53, 88, 200, 12, 35, 183, 152, 66, 177,\n\t\t114, 40, 23, 140, 57, 24, 175, 48, 106, 121, 21, 110, 191,\n\t\t132, 11, 63, 104, 179, 154, 130, 89, 227, 46, 192, 254, 183,\n\t\t77, 48, 37, 52, 205, 144, 174, 157, 25, 186, 101, 233, 135,\n\t\t220, 236, 18, 24, 242, 24, 133, 174, 75, 157, 97, 8, 150,\n\t\t96, 138, 21, 24, 55, 169, 193, 174, 186, 111, 219, 189, 86,\n\t\t202, 211, 238, 104, 222, 253, 188, 95, 118, 132, 176, 43,\n\t\t126, 218, 16, 178, 145, 68, 174, 215, 243, 188, 203, 229,\n\t\t146, 92, 89, 197, 112, 180, 165, 211, 58, 145, 157, 138, 196,\n\t\t120, 33, 97, 34, 60, 219, 235, 193, 218, 18, 105, 76, 137,\n\t\t38, 133, 185, 254, 175, 185, 76, 233, 10, 149, 185, 148, 45,\n\t\t186, 200, 30, 241, 2, 202, 67, 79, 26, 17, 218, 47, 42, 0,\n\t\t9, 76, 85, 161, 152, 65, 117, 42, 191, 198, 145, 21, 156,\n\t\t152, 62, 130, 57, 21, 158, 156, 97, 94, 16, 176, 254, 66,\n\t\t11, 230, 126, 88, 193, 39, 5, 251, 26, 86, 11, 161, 48, 250,\n\t\t26, 104, 177, 10, 208, 139, 98, 241, 96, 161, 199, 39, 199,\n\t\t199, 131, 233, 142, 141, 227, 122, 32, 198, 117, 164, 98,\n\t\t42, 240, 198, 122, 153, 15, 107, 233, 38, 213, 175, 210, 233,\n\t\t149, 162, 211, 214, 238, 149, 76, 55, 20, 142, 148, 155, 176,\n\t\t56, 98, 196, 148, 197, 138, 250, 115, 42, 185, 230, 160, 182,\n\t\t141, 221, 130, 124, 165, 84, 162, 174, 205, 17, 169, 193,\n\t\t181, 66, 195, 80, 49, 0, 76, 73, 70, 5, 5, 134, 62, 103, 10,\n\t\t220, 28, 170, 33, 0, 218, 59, 172, 116, 15, 98, 214, 117,\n\t\t91, 97, 20, 136, 209, 246, 26, 134, 229, 250, 229, 4, 91,\n\t\t157, 169, 138, 109, 171, 245, 148, 114, 133, 250, 247, 19,\n\t\t227, 140, 158, 120, 201, 182, 21, 38, 73, 104, 37, 141, 70,\n\t\t114, 85, 29, 254, 25, 145, 97, 68, 199, 100, 191, 47, 175,\n\t\t23, 6, 207, 20, 131, 179, 0, 211, 19, 204, 55, 184, 52, 215,\n\t\t120, 23, 157, 60, 18, 155, 226, 106, 227, 122, 185, 2, 202,\n\t\t143, 113, 165, 193, 115, 125, 233, 1, 226, 219, 154, 230,\n\t\t248, 134, 30, 112, 89, 224, 76, 24, 114, 59, 64, 171, 67,\n\t\t73, 23, 241, 44, 27, 165, 74, 169, 87, 120, 96, 39, 51, 198,\n\t\t163, 241, 112, 254, 25, 140, 203, 69, 222, 104, 208, 97, 199,\n\t\t51, 98, 9, 36, 64, 82, 94, 218, 108, 138, 174, 116, 208, 53,\n\t\t31, 177, 109, 17, 4, 100, 33, 172, 86, 195, 253, 247, 225,\n\t\t235, 195, 89, 121, 99, 189, 146, 221, 183, 103, 88, 182, 177,\n\t\t59, 110, 183, 63, 208, 239, 52, 154, 237, 190, 222, 248, 27,\n\t\t67, 63, 97, 232, 207, 254, 217, 131, 51, 201, 179, 195, 234,\n\t\t254, 63, 157, 12, 154, 255, 182, 241, 156, 166, 109, 188,\n\t\t28, 116, 184, 70, 191, 217, 127, 225, 59, 31, 121, 228, 157,\n\t\t17, 43, 184, 155, 190, 64, 75, 42, 94, 191, 83, 58, 89, 186,\n\t\t2, 119, 149, 73, 38, 243, 33, 186, 52, 97, 198, 171, 220,\n\t\t116, 5, 77, 4, 232, 207, 42, 226, 9, 189, 105, 147, 233, 26,\n\t\t71, 99, 19, 65, 143, 8, 86, 58, 224, 115, 207, 139, 12, 153,\n\t\t233, 132, 25, 20, 119, 0, 72, 233, 143, 254, 232, 143, 166,\n\t\t105, 180, 197, 69, 69, 120, 137, 89, 165, 212, 110, 59, 250,\n\t\t98, 5, 195, 124, 235, 149, 163, 205, 203, 255, 224, 210, 14,\n\t\t168, 110, 160, 45, 200, 114, 98, 72, 16, 234, 117, 4, 192,\n\t\t103, 48, 56, 156, 142, 43, 250, 70, 109, 28, 39, 59, 75, 164,\n\t\t244, 36, 252, 248, 223, 251, 222, 247, 200, 79, 67, 137, 73,\n\t\t124, 9, 20, 40, 189, 216, 172, 50, 106, 51, 83, 244, 171,\n\t\t6, 235, 39, 177, 222, 188, 226, 101, 80, 158, 174, 202, 203,\n\t\t160, 188, 170, 70, 102, 229, 113, 102, 19, 75, 155, 55, 106,\n\t\t19, 199, 53, 200, 43, 177, 56, 82, 130, 242, 10, 142, 37,\n\t\t131, 190, 134, 60, 94, 226, 37, 175, 52, 128, 54, 184, 3,\n\t\t119, 188, 50, 57, 41, 72, 85, 209, 9, 59, 153, 199, 180, 7,\n\t\t160, 196, 171, 96, 30, 208, 179, 71, 8, 73, 80, 249, 20, 73,\n\t\t54, 11, 180, 149, 42, 63, 83, 193, 9, 132, 230, 30, 226, 123,\n\t\t167, 72, 49, 160, 94, 241, 3, 76, 4, 133, 152, 210, 76, 146,\n\t\t143, 240, 100, 193, 253, 221, 4, 137, 207, 164, 89, 214, 50,\n\t\t114, 227, 61, 228, 121, 191, 248, 60, 203, 120, 140, 91, 62,\n\t\t225, 166, 78, 175, 189, 225, 109, 103, 53, 247, 234, 75, 204,\n\t\t80, 251, 107, 167, 9, 15, 164, 215, 98, 98, 221, 52, 152,\n\t\t227, 137, 21, 243, 23, 242, 132, 110, 124, 243, 33, 158, 28,\n\t\t223, 185, 156, 7, 157, 132, 191, 128, 71, 124, 75, 120, 164,\n\t\t110, 172, 89, 187, 235, 90, 16, 91, 8, 141, 95, 19, 173, 205,\n\t\t67, 249, 33, 43, 53, 125, 214, 114, 173, 21, 74, 64, 97, 11,\n\t\t87, 7, 115, 195, 72, 58, 60, 241, 152, 97, 252, 30, 139, 44,\n\t\t103, 174, 147, 149, 29, 115, 69, 123, 161, 182, 210, 92, 21,\n\t\t101, 199, 106, 172, 138, 119, 250, 241, 10, 127, 133, 88,\n\t\t105, 230, 90, 232, 185, 188, 84, 69, 126, 57, 250, 106, 242,\n\t\t242, 146, 40, 213, 75, 243, 165, 27, 75, 119, 151, 158, 93,\n\t\t122, 103, 233, 163, 165, 63, 132, 217, 184, 68, 118, 200,\n\t\t245, 228, 46, 242, 74, 242, 126, 242, 203, 228, 203, 228,\n\t\t207, 233, 141, 244, 54, 122, 15, 253, 49, 250, 58, 250, 86,\n\t\t250, 158, 34, 219, 134, 20, 125, 173, 200, 146, 139, 174,\n\t\t228, 131, 116, 27, 221, 205, 141, 124, 180, 71, 138, 152,\n\t\t167, 1, 122, 137, 193, 118, 67, 164, 154, 202, 208, 83, 64,\n\t\t228, 209, 87, 171, 40, 173, 102, 212, 138, 61, 132, 65, 238,\n\t\t114, 134, 194, 85, 109, 119, 98, 14, 55, 104, 221, 108, 23,\n\t\t141, 96, 24, 150, 48, 163, 112, 44, 66, 137, 24, 35, 151,\n\t\t77, 161, 95, 192, 56, 6, 253, 161, 201, 64, 228, 141, 209,\n\t\t73, 14, 6, 220, 56, 71, 62, 136, 33, 110, 106, 166, 50, 217,\n\t\t152, 22, 48, 183, 105, 87, 38, 131, 22, 193, 120, 237, 209,\n\t\t58, 25, 119, 49, 193, 116, 19, 44, 73, 149, 92, 118, 180,\n\t\t70, 54, 161, 195, 49, 193, 15, 118, 124, 15, 70, 5, 122, 226,\n\t\t39, 217, 104, 178, 217, 195, 27, 194, 225, 16, 238, 10, 135,\n\t\t41, 94, 150, 193, 77, 135, 211, 9, 130, 254, 135, 138, 134,\n\t\t6, 76, 57, 180, 11, 215, 112, 227, 33, 195, 70, 81, 240, 80,\n\t\t52, 138, 179, 109, 178, 57, 86, 9, 132, 167, 227, 13, 80,\n\t\t106, 208, 113, 144, 38, 82, 109, 80, 76, 149, 157, 57, 93,\n\t\t3, 97, 54, 237, 247, 138, 180, 233, 125, 149, 226, 17, 110,\n\t\t184, 217, 237, 231, 13, 2, 189, 63, 200, 210, 205, 49, 94,\n\t\t6, 226, 61, 129, 135, 104, 194, 252, 84, 70, 233, 38, 22,\n\t\t209, 199, 253, 118, 120, 4, 153, 122, 4, 196, 251, 116, 188,\n\t\t70, 138, 168, 236, 110, 127, 218, 67, 56, 96, 193, 233, 50,\n\t\t192, 83, 115, 212, 85, 60, 170, 156, 236, 233, 30, 102, 18,\n\t\t43, 140, 126, 145, 143, 198, 185, 68, 192, 162, 74, 52, 154,\n\t\t161, 27, 96, 58, 4, 149, 164, 143, 121, 233, 212, 222, 69,\n\t\t182, 1, 246, 58, 34, 175, 113, 83, 1, 119, 108, 100, 134,\n\t\t223, 73, 117, 212, 87, 169, 213, 112, 58, 128, 14, 180, 161,\n\t\t32, 54, 216, 109, 184, 73, 152, 203, 13, 244, 50, 192, 124,\n\t\t202, 193, 236, 93, 167, 48, 3, 97, 186, 8, 137, 172, 175,\n\t\t57, 110, 72, 52, 217, 124, 54, 25, 98, 169, 187, 200, 150,\n\t\t222, 100, 152, 188, 116, 92, 232, 67, 170, 163, 53, 84, 123,\n\t\t212, 106, 37, 211, 34, 189, 102, 54, 70, 173, 177, 219, 255,\n\t\t223, 45, 203, 52, 173, 148, 220, 198, 47, 89, 190, 251, 70,\n\t\t84, 128, 111, 126, 214, 218, 22, 58, 97, 255, 13, 110, 167,\n\t\t81, 67, 31, 62, 239, 163, 22, 67, 129, 143, 9, 39, 125, 219,\n\t\t5, 195, 82, 227, 210, 174, 167, 167, 47, 185, 236, 101, 43,\n\t\t164, 254, 200, 132, 232, 149, 227, 167, 159, 183, 20, 216,\n\t\t78, 8, 118, 130, 240, 45, 202, 221, 138, 109, 25, 10, 67,\n\t\t134, 1, 186, 74, 79, 7, 3, 71, 20, 33, 78, 129, 129, 172,\n\t\t15, 32, 68, 14, 225, 22, 59, 194, 170, 51, 20, 109, 28, 44,\n\t\t168, 233, 44, 246, 132, 170, 188, 4, 136, 210, 195, 60, 118,\n\t\t24, 115, 173, 44, 65, 10, 230, 55, 218, 20, 125, 101, 111,\n\t\t33, 46, 17, 85, 115, 88, 51, 29, 20, 206, 174, 165, 226, 198,\n\t\t144, 13, 203, 2, 253, 41, 44, 2, 178, 241, 150, 110, 226,\n\t\t104, 204, 117, 192, 66, 149, 210, 64, 3, 69, 216, 218, 178,\n\t\t5, 90, 64, 12, 21, 14, 65, 245, 178, 144, 204, 152, 68, 33,\n\t\t216, 87, 154, 97, 163, 199, 152, 121, 196, 117, 44, 176, 119,\n\t\t132, 112, 65, 13, 130, 21, 29, 53, 49, 161, 171, 60, 109,\n\t\t42, 0, 25, 195, 197, 65, 160, 187, 168, 207, 185, 232, 18,\n\t\t71, 47, 29, 147, 62, 24, 25, 58, 45, 39, 24, 236, 67, 121,\n\t\t97, 102, 163, 53, 172, 194, 146, 64, 17, 73, 9, 166, 70, 67,\n\t\t233, 136, 154, 151, 198, 26, 58, 242, 51, 163, 243, 83, 37,\n\t\t91, 195, 180, 10, 22, 119, 36, 168, 22, 96, 14, 123, 167,\n\t\t174, 156, 63, 126, 52, 233, 98, 52, 29, 7, 67, 210, 135, 213,\n\t\t43, 178, 178, 195, 90, 64, 89, 163, 25, 184, 246, 157, 208,\n\t\t106, 160, 156, 45, 68, 118, 80, 53, 153, 206, 107, 45, 40,\n\t\t9, 84, 27, 110, 119, 230, 234, 118, 125, 78, 91, 106, 178,\n\t\t46, 205, 160, 31, 88, 152, 16, 168, 81, 100, 210, 29, 39,\n\t\t171, 161, 182, 147, 54, 231, 121, 229, 214, 235, 143, 31,\n\t\t91, 189, 98, 57, 219, 127, 8, 51, 213, 190, 197, 74, 89, 96,\n\t\t213, 142, 62, 124, 122, 152, 17, 178, 114, 230, 133, 199,\n\t\t182, 7, 68, 119, 167, 196, 227, 82, 165, 20, 52, 133, 121,\n\t\t4, 186, 14, 236, 66, 222, 198, 196, 42, 236, 188, 225, 123,\n\t\t186, 209, 186, 212, 149, 149, 5, 38, 174, 177, 76, 122, 210,\n\t\t210, 86, 26, 182, 254, 41, 93, 90, 53, 38, 201, 135, 95, 120,\n\t\t150, 50, 11, 145, 251, 210, 244, 235, 38, 177, 227, 138, 175,\n\t\t155, 201, 162, 33, 189, 172, 30, 71, 245, 214, 230, 201, 75,\n\t\t206, 61, 224, 82, 163, 50, 232, 55, 247, 191, 229, 249, 145,\n\t\t35, 98, 41, 217, 219, 117, 173, 214, 16, 39, 223, 88, 56,\n\t\t55, 116, 180, 206, 48, 151, 168, 65, 138, 0, 72, 4, 91, 74,\n\t\t140, 224, 183, 49, 56, 188, 13, 189, 239, 169, 152, 46, 19,\n\t\t213, 14, 218, 164, 36, 133, 182, 78, 20, 44, 147, 27, 170,\n\t\t23, 80, 19, 134, 38, 100, 69, 220, 160, 80, 92, 84, 6, 104,\n\t\t94, 122, 225, 221, 68, 69, 87, 221, 75, 160, 206, 88, 208,\n\t\t1, 48, 48, 104, 65, 245, 94, 85, 186, 29, 198, 240, 187, 146,\n\t\t196, 212, 96, 134, 78, 124, 230, 34, 112, 17, 29, 45, 34,\n\t\t48, 44, 208, 197, 96, 128, 75, 3, 123, 82, 232, 194, 54, 249,\n\t\t53, 132, 77, 165, 134, 202, 165, 215, 144, 194, 194, 254,\n\t\t181, 66, 249, 99, 204, 19, 22, 213, 60, 77, 151, 96, 243,\n\t\t86, 241, 54, 166, 89, 80, 2, 112, 213, 113, 132, 220, 236,\n\t\t205, 171, 232, 71, 184, 167, 221, 148, 186, 47, 193, 228,\n\t\t209, 68, 213, 36, 183, 41, 22, 107, 134, 211, 72, 83, 137,\n\t\t110, 64, 65, 196, 38, 240, 81, 163, 164, 194, 82, 72, 25,\n\t\t93, 167, 75, 208, 6, 96, 31, 88, 134, 97, 128, 190, 15, 207,\n\t\t226, 226, 104, 243, 64, 50, 98, 76, 38, 212, 114, 253, 88,\n\t\t141, 204, 239, 28, 77, 96, 156, 54, 118, 64, 105, 135, 185,\n\t\t103, 47, 195, 24, 246, 157, 57, 99, 73, 107, 192, 51, 151,\n\t\t157, 150, 121, 216, 14, 107, 142, 144, 50, 42, 227, 102, 7,\n\t\t49, 155, 157, 138, 126, 199, 178, 115, 211, 9, 227, 82, 237,\n\t\t48, 14, 84, 132, 148, 8, 62, 213, 244, 249, 101, 193, 107,\n\t\t52, 33, 215, 24, 126, 148, 24, 57, 33, 173, 245, 222, 61,\n\t\t80, 131, 133, 126, 96, 91, 244, 101, 173, 193, 206, 225, 154,\n\t\t207, 204, 133, 107, 142, 44, 184, 208, 143, 238, 199, 124,\n\t\t159, 121, 102, 153, 192, 116, 183, 29, 74, 29, 167, 12, 141,\n\t\t110, 21, 56, 158, 12, 244, 174, 69, 133, 187, 116, 192, 218,\n\t\t181, 72, 94, 35, 211, 161, 86, 35, 61, 24, 74, 191, 255, 181,\n\t\t223, 105, 127, 247, 107, 211, 246, 254, 137, 159, 252, 110,\n\t\t231, 171, 143, 230, 228, 238, 253, 15, 17, 242, 222, 253,\n\t\t15, 222, 249, 28, 66, 247, 159, 75, 110, 255, 109, 196, 180,\n\t\t84, 75, 244, 201, 207, 211, 163, 228, 43, 42, 219, 221, 160,\n\t\t116, 85, 233, 190, 210, 67, 165, 215, 148, 94, 95, 250, 87,\n\t\t165, 79, 149, 190, 88, 250, 237, 210, 159, 148, 254, 162,\n\t\t244, 247, 152, 242, 135, 92, 11, 182, 245, 43, 201, 159, 146,\n\t\t31, 192, 64, 113, 232, 6, 221, 66, 236, 160, 202, 34, 138,\n\t\t161, 86, 211, 131, 35, 89, 216, 192, 96, 8, 34, 181, 25, 130,\n\t\t99, 138, 36, 117, 42, 216, 122, 50, 148, 131, 34, 191, 5,\n\t\t26, 138, 195, 226, 56, 57, 248, 155, 35, 70, 163, 11, 242,\n\t\t244, 162, 244, 24, 152, 220, 2, 233, 249, 19, 228, 72, 158,\n\t\t125, 45, 227, 101, 218, 221, 43, 178, 103, 192, 82, 94, 156,\n\t\t220, 123, 234, 130, 101, 146, 61, 117, 23, 252, 136, 62, 237,\n\t\t46, 79, 125, 55, 204, 14, 210, 242, 253, 51, 119, 46, 82,\n\t\t0, 36, 211, 131, 138, 94, 116, 157, 42, 81, 14, 139, 192,\n\t\t169, 225, 30, 193, 0, 12, 148, 24, 200, 209, 13, 90, 3, 186,\n\t\t12, 80, 244, 102, 46, 67, 113, 53, 93, 99, 168, 237, 41, 164,\n\t\t167, 138, 70, 199, 15, 17, 65, 143, 148, 114, 232, 86, 152,\n\t\t199, 116, 176, 124, 179, 136, 221, 7, 3, 95, 69, 132, 244,\n\t\t186, 100, 162, 208, 246, 24, 2, 132, 128, 5, 69, 21, 141,\n\t\t18, 120, 173, 80, 147, 139, 111, 250, 74, 185, 65, 106, 193,\n\t\t34, 157, 87, 113, 186, 84, 26, 79, 15, 55, 116, 80, 241, 6,\n\t\t57, 137, 169, 11, 37, 110, 232, 15, 166, 179, 148, 101, 72,\n\t\t102, 80, 220, 111, 138, 215, 140, 65, 206, 231, 195, 167,\n\t\t183, 29, 65, 82, 217, 209, 240, 194, 147, 42, 202, 30, 60,\n\t\t218, 163, 69, 195, 118, 119, 232, 232, 48, 28, 147, 77, 232,\n\t\t150, 100, 214, 3, 52, 153, 141, 6, 184, 226, 31, 40, 88, 211,\n\t\t12, 38, 169, 216, 82, 41, 50, 117, 56, 186, 155, 145, 0, 254,\n\t\t129, 185, 102, 219, 148, 94, 197, 121, 10, 171, 61, 231, 174,\n\t\t197, 185, 85, 215, 113, 169, 208, 21, 157, 132, 27, 216, 2,\n\t\t172, 252, 107, 44, 220, 94, 165, 182, 202, 84, 69, 44, 88,\n\t\t96, 109, 67, 187, 30, 249, 221, 56, 175, 112, 46, 191, 79,\n\t\t105, 166, 254, 71, 32, 168, 252, 203, 61, 143, 120, 158, 149,\n\t\t36, 107, 42, 133, 144, 101, 161, 168, 115, 61, 31, 228, 247,\n\t\t93, 240, 185, 114, 5, 150, 77, 248, 247, 91, 88, 41, 193,\n\t\t160, 122, 223, 89, 93, 149, 59, 135, 42, 21, 175, 221, 189,\n\t\t103, 176, 186, 224, 90, 17, 213, 178, 202, 82, 38, 180, 168,\n\t\t215, 168, 38, 70, 217, 241, 220, 250, 102, 235, 232, 180,\n\t\t92, 246, 219, 221, 187, 135, 203, 75, 142, 25, 49, 153, 86,\n\t\t22, 51, 77, 91, 56, 61, 180, 220, 112, 255, 23, 208, 23, 140,\n\t\t171, 232, 210, 114, 86, 211, 180, 52, 174, 213, 226, 120,\n\t\t237, 166, 70, 153, 244, 147, 116, 126, 35, 171, 107, 90, 22,\n\t\t85, 225, 179, 213, 155, 154, 89, 114, 93, 10, 203, 173, 61,\n\t\t215, 12, 66, 77, 10, 144, 88, 186, 104, 47, 132, 1, 60, 143,\n\t\t174, 121, 102, 165, 210, 110, 133, 129, 128, 133, 212, 11,\n\t\t23, 218, 184, 144, 107, 166, 212, 70, 91, 252, 146, 45, 140,\n\t\t33, 71, 79, 134, 152, 155, 11, 124, 204, 85, 20, 196, 149,\n\t\t74, 171, 21, 250, 32, 116, 152, 23, 204, 205, 9, 3, 214, 100,\n\t\t41, 31, 66, 159, 133, 135, 190, 96, 106, 227, 99, 106, 216,\n\t\t11, 245, 11, 71, 186, 106, 174, 20, 165, 67, 164, 118, 106,\n\t\t125, 155, 29, 124, 249, 93, 201, 165, 196, 166, 157, 253,\n\t\t157, 112, 211, 117, 23, 92, 215, 54, 133, 152, 67, 108, 63,\n\t\t216, 201, 33, 74, 130, 109, 244, 138, 51, 76, 148, 29, 71,\n\t\t101, 206, 50, 48, 185, 14, 115, 215, 54, 44, 67, 36, 181,\n\t\t195, 96, 46, 217, 140, 31, 102, 75, 141, 1, 99, 147, 130,\n\t\t192, 106, 140, 171, 246, 17, 229, 25, 128, 5, 157, 214, 246,\n\t\t176, 220, 5, 119, 52, 103, 219, 115, 86, 165, 70, 73, 173,\n\t\t134, 223, 99, 22, 117, 75, 90, 141, 142, 107, 186, 234, 131,\n\t\t76, 183, 154, 195, 89, 149, 94, 29, 108, 108, 172, 251, 183,\n\t\t46, 215, 79, 157, 224, 198, 222, 17, 12, 44, 48, 106, 169,\n\t\t166, 133, 85, 87, 99, 154, 123, 213, 46, 179, 210, 185, 184,\n\t\t57, 240, 224, 148, 147, 39, 185, 177, 123, 20, 149, 20, 60,\n\t\t35, 111, 214, 175, 61, 204, 95, 5, 166, 112, 20, 96, 154,\n\t\t84, 139, 119, 155, 154, 86, 169, 83, 178, 123, 100, 127, 146,\n\t\t95, 103, 106, 79, 189, 255, 96, 57, 231, 34, 139, 106, 150,\n\t\t228, 81, 140, 97, 193, 105, 10, 42, 67, 3, 153, 38, 205, 204,\n\t\t163, 172, 218, 194, 221, 202, 122, 141, 27, 9, 180, 162, 22,\n\t\t68, 222, 242, 234, 170, 31, 199, 132, 164, 137, 206, 171,\n\t\t13, 144, 142, 205, 26, 156, 214, 128, 46, 106, 84, 224, 172,\n\t\t4, 249, 8, 194, 59, 201, 200, 117, 71, 132, 12, 44, 107, 64,\n\t\t174, 159, 61, 145, 75, 138, 3, 34, 202, 170, 105, 246, 148,\n\t\t50, 166, 26, 232, 222, 89, 71, 32, 206, 191, 2, 54, 229, 159,\n\t\t145, 87, 193, 202, 175, 97, 166, 82, 50, 12, 8, 11, 192, 198,\n\t\t200, 123, 100, 251, 99, 251, 223, 250, 216, 119, 30, 188,\n\t\t188, 121, 117, 145, 4, 27, 127, 223, 254, 215, 103, 10, 62,\n\t\t111, 250, 228, 31, 131, 226, 247, 33, 176, 185, 188, 82, 8,\n\t\t86, 84, 39, 235, 192, 34, 53, 143, 64, 69, 92, 141, 100, 15,\n\t\t84, 201, 195, 135, 247, 191, 237, 212, 4, 249, 173, 32, 90,\n\t\t220, 127, 242, 38, 56, 220, 249, 179, 23, 157, 188, 63, 176,\n\t\t206, 215, 218, 39, 201, 23, 124, 235, 111, 191, 130, 152,\n\t\t206, 39, 255, 9, 228, 5, 35, 191, 86, 178, 49, 251, 211, 20,\n\t\t109, 47, 220, 165, 82, 137, 133, 39, 131, 44, 66, 140, 116,\n\t\t55, 95, 211, 118, 201, 251, 6, 205, 6, 55, 62, 161, 27, 252,\n\t\t229, 220, 187, 71, 248, 252, 123, 96, 163, 255, 156, 161,\n\t\t25, 121, 210, 178, 13, 163, 242, 7, 147, 159, 58, 172, 187,\n\t\t250, 63, 232, 228, 91, 186, 190, 223, 132, 195, 240, 242,\n\t\t165, 83, 195, 147, 219, 167, 21, 214, 242, 0, 59, 186, 7,\n\t\t146, 205, 37, 45, 220, 10, 76, 178, 30, 24, 12, 30, 186, 25,\n\t\t145, 184, 106, 178, 142, 60, 162, 72, 184, 151, 94, 116, 184,\n\t\t135, 140, 47, 23, 14, 165, 104, 129, 230, 248, 42, 24, 178,\n\t\t230, 157, 102, 36, 154, 34, 122, 0, 163, 77, 196, 3, 129,\n\t\t165, 37, 27, 38, 76, 181, 17, 104, 69, 180, 214, 52, 45, 177,\n\t\t220, 215, 132, 181, 80, 131, 217, 50, 117, 168, 166, 111,\n\t\t133, 76, 179, 130, 251, 239, 210, 184, 211, 139, 97, 249,\n\t\t120, 193, 253, 166, 139, 240, 64, 135, 107, 183, 75, 205,\n\t\t57, 110, 50, 106, 182, 183, 169, 38, 245, 215, 192, 12, 182,\n\t\t175, 57, 165, 219, 50, 123, 28, 163, 210, 118, 107, 154, 73,\n\t\t157, 109, 233, 104, 242, 150, 82, 177, 247, 123, 192, 39,\n\t\t90, 176, 64, 214, 74, 189, 210, 242, 140, 183, 254, 248, 204,\n\t\t99, 114, 99, 233, 78, 229, 53, 25, 131, 37, 132, 200, 167,\n\t\t94, 34, 243, 177, 71, 122, 112, 156, 252, 191, 117, 125, 9,\n\t\t176, 36, 87, 117, 101, 222, 124, 153, 239, 229, 190, 47, 181,\n\t\t102, 237, 85, 127, 173, 250, 85, 245, 171, 234, 171, 127,\n\t\t247, 239, 69, 221, 82, 183, 212, 155, 26, 161, 165, 27, 16,\n\t\t96, 33, 217, 141, 144, 65, 102, 36, 108, 1, 110, 16, 66, 72,\n\t\t6, 194, 44, 2, 219, 51, 182, 49, 140, 151, 48, 194, 225, 8,\n\t\t79, 216, 198, 49, 76, 128, 49, 14, 99, 27, 130, 33, 108, 204,\n\t\t68, 24, 131, 61, 68, 120, 194, 19, 225, 49, 51, 97, 2, 51,\n\t\t248, 247, 220, 251, 234, 127, 225, 241, 48, 221, 85, 89, 89,\n\t\t249, 179, 50, 171, 50, 223, 123, 247, 220, 251, 238, 61, 103,\n\t\t74, 21, 29, 248, 167, 206, 96, 49, 157, 245, 102, 56, 174,\n\t\t166, 157, 65, 47, 29, 160, 227, 178, 24, 48, 74, 89, 158,\n\t\t45, 26, 144, 118, 240, 117, 154, 47, 82, 242, 153, 58, 51,\n\t\t65, 111, 196, 96, 74, 165, 30, 131, 156, 98, 65, 211, 20,\n\t\t218, 141, 243, 143, 55, 55, 59, 139, 157, 77, 219, 142, 236,\n\t\t27, 59, 59, 55, 174, 158, 111, 158, 218, 185, 97, 89, 55,\n\t\t246, 63, 121, 185, 121, 45, 184, 10, 181, 230, 85, 255, 106,\n\t\t227, 193, 205, 230, 133, 159, 106, 157, 255, 210, 197, 6,\n\t\t190, 107, 54, 207, 143, 26, 155, 31, 104, 189, 238, 250, 206,\n\t\t98, 195, 182, 127, 162, 121, 185, 117, 53, 128, 87, 52, 46,\n\t\t60, 210, 104, 60, 242, 248, 142, 252, 248, 175, 89, 155, 120,\n\t\t84, 235, 66, 115, 51, 93, 108, 90, 246, 102, 233, 98, 227,\n\t\t154, 127, 109, 120, 177, 137, 203, 198, 254, 31, 52, 207,\n\t\t223, 142, 71, 124, 240, 82, 243, 106, 112, 237, 26, 174, 93,\n\t\t111, 62, 50, 106, 110, 126, 112, 177, 184, 97, 219, 55, 214,\n\t\t154, 151, 240, 212, 146, 87, 247, 230, 119, 111, 126, 86,\n\t\t229, 240, 41, 188, 66, 183, 145, 191, 191, 216, 211, 151,\n\t\t249, 5, 62, 44, 229, 45, 135, 26, 101, 184, 143, 160, 15,\n\t\t82, 139, 105, 89, 85, 38, 5, 114, 165, 197, 85, 23, 91, 139,\n\t\t121, 3, 50, 132, 92, 94, 184, 210, 61, 122, 252, 222, 173,\n\t\t197, 20, 251, 233, 132, 185, 220, 205, 7, 237, 237, 184, 229,\n\t\t149, 66, 215, 240, 174, 123, 68, 94, 224, 70, 114, 159, 241,\n\t\t248, 22, 68, 133, 83, 218, 167, 52, 93, 61, 146, 182, 211,\n\t\t16, 76, 247, 186, 215, 213, 140, 172, 50, 44, 151, 32, 41,\n\t\t85, 74, 204, 225, 143, 17, 224, 229, 118, 28, 36, 26, 88,\n\t\t73, 53, 245, 140, 83, 6, 220, 182, 220, 169, 156, 228, 165,\n\t\t10, 30, 225, 49, 60, 27, 119, 74, 73, 164, 133, 141, 58, 184,\n\t\t230, 73, 99, 89, 11, 174, 188, 95, 189, 161, 252, 189, 108,\n\t\t3, 75, 245, 180, 117, 101, 164, 108, 43, 59, 146, 235, 252,\n\t\t236, 178, 18, 99, 42, 122, 20, 132, 159, 98, 39, 162, 89,\n\t\t109, 146, 61, 196, 119, 58, 221, 231, 185, 220, 132, 93, 150,\n\t\t156, 83, 85, 96, 35, 152, 206, 199, 184, 160, 214, 66, 25,\n\t\t179, 242, 149, 62, 43, 166, 104, 120, 17, 132, 44, 254, 62,\n\t\t219, 205, 246, 255, 226, 30, 237, 202, 39, 78, 103, 157, 7,\n\t\t87, 167, 56, 188, 88, 26, 220, 182, 183, 178, 183, 127, 65,\n\t\t187, 246, 69, 93, 188, 62, 253, 55, 105, 32, 188, 77, 19,\n\t\t209, 177, 246, 133, 139, 250, 119, 241, 3, 31, 211, 175, 158,\n\t\t59, 119, 193, 212, 174, 124, 247, 200, 224, 167, 87, 142,\n\t\t100, 149, 157, 167, 179, 87, 132, 174, 248, 64, 81, 68, 60,\n\t\t42, 22, 58, 120, 186, 152, 29, 229, 188, 202, 171, 101, 43,\n\t\t210, 209, 135, 93, 112, 94, 20, 248, 36, 134, 171, 139, 179,\n\t\t89, 81, 20, 222, 129, 214, 77, 233, 230, 215, 225, 191, 193,\n\t\t47, 145, 14, 244, 162, 205, 199, 237, 254, 108, 107, 78, 69,\n\t\t55, 125, 130, 60, 227, 9, 190, 27, 207, 39, 164, 218, 186,\n\t\t7, 227, 2, 182, 184, 216, 202, 210, 45, 210, 114, 252, 30,\n\t\t220, 7, 247, 220, 123, 242, 118, 21, 154, 112, 150, 104, 192,\n\t\t30, 150, 158, 228, 153, 51, 208, 120, 55, 188, 228, 30, 184,\n\t\t255, 229, 79, 28, 133, 183, 34, 172, 1, 120, 13, 148, 74,\n\t\t234, 243, 0, 23, 47, 150, 114, 120, 104, 11, 126, 2, 142,\n\t\t191, 101, 169, 187, 70, 243, 69, 77, 121, 133, 143, 99, 15,\n\t\t187, 66, 17, 185, 94, 78, 26, 192, 179, 206, 82, 72, 133,\n\t\t2, 165, 158, 100, 209, 166, 66, 120, 153, 205, 154, 146, 94,\n\t\t186, 228, 175, 155, 46, 55, 96, 175, 209, 167, 67, 32, 174,\n\t\t74, 154, 189, 57, 136, 171, 74, 133, 187, 105, 74, 34, 38,\n\t\t13, 152, 14, 150, 81, 86, 49, 85, 239, 152, 159, 200, 179,\n\t\t63, 3, 39, 43, 181, 213, 123, 58, 246, 154, 123, 98, 166,\n\t\t142, 199, 175, 59, 186, 112, 166, 19, 147, 23, 105, 230, 194,\n\t\t135, 119, 158, 200, 178, 189, 125, 103, 164, 245, 223, 209,\n\t\t114, 17, 148, 120, 159, 219, 217, 89, 236, 60, 48, 222, 153,\n\t\t76, 118, 158, 171, 174, 12, 55, 251, 149, 202, 202, 112, 216,\n\t\t255, 247, 199, 202, 101, 39, 110, 231, 145, 19, 180, 130,\n\t\t94, 199, 50, 46, 252, 238, 106, 165, 148, 6, 232, 8, 150,\n\t\t253, 243, 227, 160, 84, 90, 143, 225, 76, 179, 209, 152, 22,\n\t\t27, 181, 118, 227, 87, 87, 134, 183, 220, 178, 209, 46, 182,\n\t\t39, 245, 250, 116, 74, 215, 63, 187, 121, 19, 175, 255, 103,\n\t\t240, 250, 219, 56, 234, 151, 148, 186, 210, 85, 214, 148,\n\t\t45, 101, 142, 45, 238, 148, 114, 14, 91, 220, 75, 149, 103,\n\t\t149, 247, 42, 207, 203, 42, 248, 95, 85, 62, 161, 252, 150,\n\t\t242, 73, 89, 15, 64, 101, 19, 82, 143, 78, 223, 30, 17, 121,\n\t\t249, 32, 35, 46, 71, 138, 71, 18, 26, 205, 251, 56, 234, 28,\n\t\t132, 88, 126, 208, 178, 63, 35, 130, 115, 82, 50, 161, 192,\n\t\t210, 8, 228, 230, 133, 148, 4, 105, 47, 245, 235, 246, 150,\n\t\t85, 179, 36, 218, 69, 202, 5, 156, 210, 43, 100, 124, 155,\n\t\t148, 194, 169, 62, 43, 147, 201, 217, 68, 169, 74, 97, 98,\n\t\t138, 255, 252, 224, 179, 37, 148, 17, 74, 172, 146, 243, 25,\n\t\t110, 121, 199, 239, 61, 5, 79, 189, 252, 215, 243, 6, 192,\n\t\t115, 108, 129, 120, 3, 22, 162, 253, 183, 134, 97, 80, 94,\n\t\t51, 66, 139, 130, 235, 29, 33, 102, 92, 107, 235, 124, 172,\n\t\t179, 46, 211, 134, 140, 13, 128, 13, 85, 117, 155, 143, 217,\n\t\t130, 237, 240, 118, 196, 96, 247, 132, 198, 207, 170, 255,\n\t\t236, 187, 174, 223, 54, 214, 115, 129, 88, 196, 180, 44, 88,\n\t\t223, 91, 11, 92, 55, 104, 49, 222, 202, 117, 131, 33, 34,\n\t\t226, 195, 75, 167, 76, 195, 100, 129, 193, 171, 84, 155, 133,\n\t\t224, 72, 55, 231, 186, 222, 209, 245, 45, 157, 38, 52, 135,\n\t\t26, 91, 97, 147, 185, 128, 85, 132, 62, 120, 84, 248, 200,\n\t\t59, 62, 249, 84, 51, 251, 248, 203, 42, 182, 189, 3, 194,\n\t\t104, 105, 124, 30, 247, 222, 71, 228, 41, 136, 169, 170, 156,\n\t\t56, 68, 240, 115, 106, 77, 195, 99, 104, 57, 215, 186, 82,\n\t\t242, 98, 197, 16, 9, 55, 230, 174, 7, 142, 181, 3, 136, 19,\n\t\t227, 158, 161, 233, 47, 59, 161, 179, 115, 230, 70, 169, 108,\n\t\t142, 234, 13, 68, 109, 142, 97, 122, 160, 30, 219, 216, 41,\n\t\t149, 57, 27, 229, 45, 21, 60, 203, 242, 172, 189, 233, 14,\n\t\t168, 36, 239, 206, 106, 47, 30, 191, 174, 107, 29, 157, 33,\n\t\t112, 61, 60, 190, 161, 207, 28, 111, 205, 112, 76, 227, 36,\n\t\t215, 150, 252, 230, 9, 218, 223, 215, 162, 253, 173, 97, 171,\n\t\t81, 160, 19, 30, 212, 169, 47, 23, 178, 154, 110, 23, 150,\n\t\t181, 125, 237, 195, 66, 195, 244, 165, 147, 219, 39, 147,\n\t\t78, 7, 159, 232, 16, 78, 58, 31, 239, 76, 242, 193, 145, 219,\n\t\t38, 147, 219, 38, 144, 222, 84, 112, 251, 237, 180, 158, 175,\n\t\t228, 180, 75, 9, 119, 161, 191, 201, 58, 173, 67, 93, 201,\n\t\t92, 170, 202, 141, 148, 147, 216, 62, 127, 128, 126, 165,\n\t\t116, 69, 218, 226, 255, 243, 170, 83, 228, 188, 45, 100, 33,\n\t\t154, 39, 97, 193, 226, 192, 189, 131, 119, 229, 173, 86, 190,\n\t\t255, 155, 180, 252, 102, 81, 220, 41, 31, 119, 20, 5, 220,\n\t\t170, 169, 154, 176, 180, 173, 223, 158, 104, 150, 192, 245,\n\t\t35, 95, 56, 138, 91, 63, 114, 184, 47, 92, 206, 91, 87, 254,\n\t\t200, 243, 254, 200, 55, 190, 234, 251, 95, 245, 51, 185, 190,\n\t\t249, 78, 223, 127, 167, 255, 191, 240, 19, 92, 91, 93, 213,\n\t\t56, 29, 0, 222, 35, 55, 30, 234, 167, 28, 254, 158, 10, 122,\n\t\t212, 255, 239, 239, 216, 238, 31, 138, 67, 228, 19, 108, 202,\n\t\t20, 238, 93, 204, 135, 8, 188, 113, 32, 153, 210, 168, 79,\n\t\t67, 146, 152, 202, 20, 165, 5, 14, 241, 75, 125, 54, 143,\n\t\t21, 42, 124, 56, 44, 149, 194, 253, 247, 211, 242, 153, 106,\n\t\t21, 49, 187, 237, 252, 124, 223, 143, 108, 199, 4, 79, 136,\n\t\t74, 209, 118, 204, 211, 86, 51, 113, 43, 81, 235, 130, 217,\n\t\t204, 161, 61, 244, 141, 205, 138, 89, 78, 137, 210, 200, 96,\n\t\t58, 19, 17, 124, 228, 240, 8, 240, 104, 88, 122, 44, 116,\n\t\t221, 208, 14, 152, 247, 181, 109, 81, 128, 195, 103, 229,\n\t\t126, 132, 104, 99, 165, 123, 169, 208, 152, 103, 188, 189,\n\t\t251, 114, 59, 207, 130, 114, 243, 225, 174, 198, 18, 203,\n\t\t97, 21, 175, 236, 7, 134, 114, 160, 135, 249, 105, 248, 7,\n\t\t89, 223, 147, 82, 102, 125, 226, 195, 113, 149, 146, 220,\n\t\t41, 222, 139, 200, 112, 49, 16, 240, 119, 156, 159, 67, 44,\n\t\t251, 66, 237, 43, 156, 95, 248, 229, 254, 175, 127, 233, 252,\n\t\t249, 243, 95, 228, 1, 191, 3, 241, 237, 11, 245, 63, 199,\n\t\t53, 218, 250, 102, 220, 74, 216, 82, 177, 212, 183, 195, 143,\n\t\t33, 38, 186, 66, 199, 163, 236, 66, 25, 74, 167, 0, 61, 145,\n\t\t225, 165, 25, 31, 240, 254, 98, 182, 124, 159, 209, 91, 34,\n\t\t213, 32, 61, 58, 202, 244, 46, 216, 148, 178, 12, 41, 143,\n\t\t10, 29, 94, 93, 202, 168, 211, 24, 35, 69, 42, 212, 55, 4,\n\t\t170, 231, 117, 26, 37, 80, 69, 62, 94, 223, 28, 7, 144, 172,\n\t\t12, 6, 43, 105, 52, 94, 223, 24, 199, 16, 172, 118, 107, 53,\n\t\t102, 151, 107, 141, 192, 138, 102, 179, 242, 106, 82, 247,\n\t\t189, 44, 70, 40, 48, 155, 69, 54, 154, 242, 253, 111, 214,\n\t\t219, 189, 10, 84, 122, 110, 145, 60, 25, 237, 58, 158, 97,\n\t\t213, 146, 48, 216, 202, 226, 32, 218, 192, 238, 223, 56, 137,\n\t\t126, 74, 19, 54, 227, 48, 74, 71, 42, 180, 119, 117, 182,\n\t\t177, 73, 41, 14, 147, 173, 205, 123, 160, 220, 40, 7, 116,\n\t\t197, 239, 217, 220, 154, 160, 191, 178, 146, 87, 122, 189,\n\t\t138, 87, 163, 188, 6, 239, 230, 62, 94, 199, 159, 133, 223,\n\t\t87, 30, 81, 222, 168, 188, 89, 249, 67, 229, 203, 80, 70,\n\t\t195, 183, 6, 115, 132, 53, 119, 194, 189, 240, 67, 240, 58,\n\t\t188, 30, 196, 33, 194, 15, 244, 142, 9, 100, 31, 80, 253,\n\t\t224, 21, 56, 14, 219, 82, 73, 138, 166, 217, 14, 254, 207,\n\t\t115, 162, 191, 163, 229, 132, 200, 250, 16, 229, 207, 115,\n\t\t57, 31, 71, 41, 237, 57, 21, 117, 78, 200, 212, 209, 46, 147,\n\t\t124, 78, 161, 238, 229, 127, 58, 69, 1, 233, 96, 190, 12,\n\t\t235, 115, 234, 82, 216, 151, 24, 245, 39, 138, 41, 20, 108,\n\t\t65, 17, 11, 25, 45, 104, 15, 150, 81, 3, 46, 159, 219, 203,\n\t\t149, 118, 167, 61, 91, 244, 69, 159, 50, 227, 183, 137, 211,\n\t\t78, 174, 209, 115, 198, 41, 69, 130, 90, 62, 73, 146, 206,\n\t\t151, 37, 7, 34, 147, 7, 35, 163, 219, 151, 116, 4, 36, 33,\n\t\t153, 29, 60, 183, 50, 226, 51, 193, 53, 145, 103, 29, 210,\n\t\t25, 148, 69, 10, 217, 242, 73, 225, 13, 218, 152, 247, 73,\n\t\t153, 112, 46, 164, 102, 134, 144, 223, 83, 22, 176, 113, 162,\n\t\t41, 236, 103, 203, 31, 64, 148, 7, 219, 203, 179, 23, 176,\n\t\t144, 149, 199, 52, 81, 58, 153, 231, 114, 10, 68, 206, 254,\n\t\t72, 126, 221, 101, 203, 130, 55, 250, 41, 139, 17, 46, 245,\n\t\t188, 106, 185, 214, 133, 110, 173, 92, 115, 123, 154, 5, 49,\n\t\t75, 125, 205, 139, 60, 95, 197, 255, 96, 51, 75, 67, 188,\n\t\t111, 58, 60, 214, 28, 195, 167, 220, 104, 14, 232, 175, 169,\n\t\t182, 205, 51, 203, 204, 4, 152, 142, 201, 4, 24, 26, 215,\n\t\t60, 195, 214, 99, 202, 61, 192, 65, 216, 98, 54, 200, 35,\n\t\t100, 37, 236, 107, 189, 220, 89, 31, 29, 233, 241, 250, 176,\n\t\t203, 107, 104, 87, 212, 96, 245, 216, 233, 10, 11, 179, 128,\n\t\t134, 237, 4, 253, 149, 4, 63, 159, 104, 38, 216, 134, 129,\n\t\t103, 53, 152, 163, 154, 216, 138, 85, 225, 115, 51, 68, 247,\n\t\t197, 2, 238, 90, 76, 55, 45, 141, 89, 92, 101, 158, 218, 141,\n\t\t219, 69, 169, 84, 135, 238, 123, 244, 132, 104, 54, 243, 26,\n\t\t43, 159, 62, 182, 234, 51, 223, 68, 171, 192, 84, 110, 49,\n\t\t13, 93, 116, 28, 59, 56, 88, 142, 96, 161, 197, 169, 14, 0,\n\t\t232, 123, 105, 2, 124, 38, 12, 27, 76, 45, 102, 2, 63, 191,\n\t\t232, 140, 85, 24, 174, 191, 222, 196, 211, 105, 70, 234, 89,\n\t\t15, 83, 89, 122, 11, 157, 252, 96, 179, 215, 27, 214, 121,\n\t\t111, 88, 123, 107, 210, 135, 94, 28, 175, 4, 181, 115, 157,\n\t\t113, 27, 31, 87, 92, 213, 76, 251, 158, 109, 25, 89, 209,\n\t\t113, 44, 47, 53, 152, 225, 155, 95, 181, 122, 147, 212, 168,\n\t\t213, 187, 44, 53, 107, 53, 51, 101, 221, 122, 205, 72, 39,\n\t\t61, 139, 103, 205, 208, 212, 76, 205, 177, 76, 202, 23, 178,\n\t\t108, 195, 67, 59, 167, 26, 148, 9, 71, 201, 252, 150, 219,\n\t\t104, 184, 52, 197, 161, 201, 252, 54, 221, 160, 188, 121,\n\t\t188, 162, 150, 137, 103, 48, 45, 7, 63, 234, 118, 154, 106,\n\t\t222, 246, 52, 181, 55, 120, 69, 62, 90, 119, 75, 163, 53,\n\t\t104, 88, 229, 66, 180, 146, 78, 213, 246, 137, 21, 141, 201,\n\t\t164, 56, 4, 250, 22, 37, 31, 24, 128, 119, 0, 237, 178, 201,\n\t\t1, 12, 139, 106, 45, 24, 229, 50, 16, 225, 26, 19, 148, 208,\n\t\t128, 103, 33, 94, 220, 71, 32, 183, 236, 8, 2, 219, 205, 220,\n\t\t37, 243, 156, 26, 248, 181, 118, 210, 18, 69, 217, 194, 139,\n\t\t69, 83, 24, 184, 51, 222, 103, 169, 205, 78, 89, 38, 12, 205,\n\t\t49, 17, 63, 0, 55, 233, 12, 190, 10, 134, 0, 208, 44, 85,\n\t\t227, 172, 204, 251, 93, 111, 165, 247, 219, 90, 210, 107,\n\t\t122, 96, 175, 118, 31, 49, 214, 130, 208, 23, 250, 32, 206,\n\t\t221, 159, 202, 221, 245, 97, 201, 93, 255, 187, 138, 105,\n\t\t218, 0, 158, 169, 5, 238, 91, 33, 107, 52, 51, 90, 164, 241,\n\t\t166, 17, 172, 5, 67, 75, 83, 131, 251, 173, 238, 170, 163,\n\t\t186, 141, 65, 34, 231, 223, 191, 134, 3, 208, 199, 16, 229,\n\t\t61, 170, 252, 138, 242, 31, 149, 255, 76, 163, 231, 50, 241,\n\t\t83, 112, 154, 192, 162, 106, 214, 137, 186, 20, 104, 149,\n\t\t121, 182, 169, 44, 20, 246, 216, 172, 63, 125, 145, 91, 26,\n\t\t77, 250, 172, 47, 107, 230, 17, 146, 117, 164, 74, 133, 76,\n\t\t247, 38, 82, 177, 131, 78, 146, 72, 214, 17, 33, 21, 112,\n\t\t40, 212, 184, 78, 232, 153, 10, 71, 185, 60, 15, 246, 64,\n\t\t170, 190, 21, 109, 79, 197, 15, 248, 192, 41, 213, 152, 62,\n\t\t208, 238, 112, 57, 54, 121, 178, 80, 134, 56, 146, 39, 84,\n\t\t40, 197, 165, 4, 214, 80, 70, 14, 168, 216, 116, 49, 39, 90,\n\t\t107, 41, 18, 182, 61, 166, 222, 76, 137, 179, 176, 67, 233,\n\t\t34, 166, 141, 198, 150, 169, 154, 111, 211, 212, 196, 71,\n\t\t255, 236, 67, 171, 235, 109, 108, 10, 142, 225, 186, 52, 217,\n\t\t134, 151, 23, 111, 38, 21, 57, 80, 6, 142, 112, 153, 230,\n\t\t51, 205, 163, 59, 173, 53, 189, 160, 206, 117, 3, 123, 165,\n\t\t97, 216, 54, 222, 118, 83, 213, 117, 202, 104, 9, 177, 225,\n\t\t219, 186, 158, 228, 145, 11, 95, 210, 218, 109, 61, 148, 133,\n\t\t51, 58, 215, 253, 80, 228, 43, 120, 3, 93, 223, 156, 91, 54,\n\t\t211, 45, 108, 167, 1, 51, 5, 222, 18, 247, 142, 74, 215, 205,\n\t\t59, 57, 211, 183, 238, 155, 220, 245, 238, 191, 14, 53, 102,\n\t\t154, 133, 65, 83, 116, 148, 65, 100, 226, 55, 21, 209, 25,\n\t\t39, 54, 34, 199, 64, 83, 203, 154, 0, 230, 72, 70, 112, 40,\n\t\t255, 133, 83, 145, 7, 49, 15, 255, 216, 135, 174, 223, 121,\n\t\t194, 242, 40, 83, 5, 219, 29, 216, 254, 146, 243, 24, 82,\n\t\t77, 119, 53, 87, 104, 1, 64, 76, 252, 133, 148, 94, 163, 67,\n\t\t133, 24, 34, 85, 230, 211, 140, 154, 39, 12, 139, 34, 168,\n\t\t68, 37, 172, 169, 169, 106, 13, 214, 174, 63, 152, 181, 140,\n\t\t4, 219, 51, 17, 16, 39, 81, 191, 37, 114, 107, 153, 89, 218,\n\t\t223, 212, 61, 215, 215, 121, 144, 210, 197, 203, 253, 172,\n\t\t162, 106, 174, 29, 142, 71, 126, 185, 245, 89, 202, 88, 82,\n\t\t77, 226, 121, 6, 151, 75, 238, 191, 21, 10, 67, 113, 74, 167,\n\t\t226, 22, 122, 118, 146, 227, 223, 68, 44, 243, 29, 25, 187,\n\t\t224, 138, 165, 120, 104, 235, 51, 68, 53, 133, 162, 196, 11,\n\t\t209, 233, 209, 132, 57, 155, 30, 135, 6, 58, 207, 113, 222,\n\t\t25, 129, 126, 28, 132, 206, 70, 80, 187, 200, 175, 193, 83,\n\t\t226, 153, 127, 247, 228, 95, 95, 115, 223, 123, 236, 46, 239,\n\t\t234, 55, 158, 189, 239, 42, 135, 253, 191, 84, 223, 246, 46,\n\t\t232, 190, 239, 161, 117, 40, 174, 63, 245, 158, 167, 63, 240,\n\t\t123, 255, 128, 189, 228, 231, 78, 221, 103, 238, 127, 23,\n\t\t158, 126, 252, 13, 81, 127, 203, 251, 64, 184, 255, 205, 207,\n\t\t191, 4, 241, 69, 138, 118, 241, 5, 248, 12, 250, 203, 5, 241,\n\t\t57, 112, 4, 122, 7, 162, 95, 18, 128, 78, 50, 29, 71, 243,\n\t\t3, 34, 9, 248, 248, 149, 93, 131, 191, 146, 27, 187, 87, 158,\n\t\t248, 181, 39, 246, 191, 85, 91, 89, 173, 173, 79, 215, 255,\n\t\t241, 216, 27, 226, 135, 72, 197, 235, 161, 248, 13, 199, 238,\n\t\t126, 226, 137, 187, 43, 29, 195, 232, 84, 154, 189, 158, 162,\n\t\t33, 222, 40, 212, 183, 192, 171, 149, 215, 42, 79, 40, 239,\n\t\t82, 222, 141, 72, 77, 198, 197, 41, 245, 94, 210, 207, 78,\n\t\t73, 193, 73, 44, 211, 224, 36, 1, 95, 103, 168, 145, 187,\n\t\t34, 21, 30, 100, 14, 247, 50, 143, 250, 64, 6, 107, 15, 150,\n\t\t185, 225, 210, 187, 164, 140, 125, 74, 77, 240, 212, 193,\n\t\t33, 47, 239, 30, 35, 173, 81, 196, 116, 104, 217, 72, 225,\n\t\t82, 138, 163, 118, 14, 213, 165, 208, 82, 243, 201, 118, 27,\n\t\t254, 2, 174, 245, 163, 80, 115, 227, 246, 86, 195, 130, 69,\n\t\t181, 92, 166, 56, 120, 188, 93, 183, 234, 65, 136, 237, 43,\n\t\t31, 171, 142, 25, 148, 130, 82, 174, 170, 67, 179, 215, 143,\n\t\t230, 243, 212, 90, 235, 155, 126, 92, 178, 2, 201, 228, 200,\n\t\t64, 119, 92, 195, 240, 43, 144, 185, 221, 36, 11, 56, 175,\n\t\t116, 179, 105, 213, 209, 77, 175, 114, 71, 247, 244, 116,\n\t\t26, 30, 63, 119, 116, 216, 141, 202, 248, 237, 44, 222, 199,\n\t\t198, 231, 219, 194, 17, 190, 13, 34, 207, 225, 126, 112, 51,\n\t\t235, 40, 181, 99, 150, 164, 37, 168, 99, 199, 10, 100, 81,\n\t\t141, 170, 218, 102, 169, 169, 85, 220, 208, 168, 21, 86, 115,\n\t\t148, 49, 243, 76, 63, 141, 184, 19, 111, 170, 96, 74, 150,\n\t\t70, 26, 86, 109, 198, 242, 184, 236, 27, 96, 123, 91, 105,\n\t\t84, 177, 85, 109, 37, 140, 187, 157, 189, 173, 172, 138, 141,\n\t\t88, 45, 109, 87, 72, 232, 142, 91, 110, 20, 88, 216, 240,\n\t\t133, 99, 88, 65, 157, 130, 63, 226, 255, 210, 231, 168, 75,\n\t\t78, 191, 61, 229, 142, 239, 87, 168, 119, 57, 221, 109, 52,\n\t\t237, 47, 42, 154, 211, 117, 167, 185, 127, 34, 247, 67, 64,\n\t\t144, 28, 88, 123, 26, 238, 72, 166, 75, 80, 61, 193, 113,\n\t\t2, 22, 52, 126, 33, 204, 57, 168, 102, 159, 186, 34, 47, 123,\n\t\t34, 255, 182, 23, 161, 85, 114, 113, 209, 115, 215, 75, 131,\n\t\t65, 105, 221, 13, 62, 143, 14, 95, 57, 23, 110, 175, 167,\n\t\t13, 181, 43, 235, 249, 104, 162, 198, 21, 99, 168, 245, 146,\n\t\t30, 155, 140, 242, 245, 67, 249, 147, 227, 89, 133, 142, 226,\n\t\t126, 33, 118, 77, 207, 148, 11, 54, 169, 175, 84, 95, 81,\n\t\t93, 169, 79, 188, 245, 15, 187, 116, 144, 74, 118, 166, 187,\n\t\t13, 163, 81, 178, 154, 123, 94, 162, 191, 6, 182, 187, 70,\n\t\t150, 122, 249, 106, 186, 69, 49, 10, 226, 157, 122, 51, 124,\n\t\t20, 123, 213, 64, 217, 85, 110, 83, 94, 130, 45, 81, 33, 101,\n\t\t90, 79, 54, 242, 41, 14, 212, 115, 4, 91, 232, 247, 32, 182,\n\t\t31, 26, 179, 214, 140, 84, 129, 37, 137, 200, 158, 46, 231,\n\t\t141, 168, 236, 32, 237, 44, 136, 202, 139, 114, 24, 208, 43,\n\t\t70, 255, 58, 197, 6, 137, 67, 47, 197, 203, 102, 120, 0, 220,\n\t\t254, 112, 203, 40, 58, 229, 150, 231, 61, 112, 199, 151, 175,\n\t\t113, 35, 113, 91, 225, 70, 82, 169, 100, 107, 113, 195, 75,\n\t\t16, 101, 60, 52, 120, 217, 221, 247, 247, 252, 116, 188, 177,\n\t\t214, 30, 108, 230, 169, 241, 101, 187, 217, 173, 140, 202,\n\t\t173, 22, 211, 93, 203, 16, 166, 35, 180, 75, 187, 169, 219,\n\t\t129, 48, 13, 176, 77, 250, 93, 8, 226, 240, 125, 79, 190,\n\t\t87, 55, 42, 149, 135, 127, 216, 179, 217, 223, 174, 104, 27,\n\t\t95, 11, 17, 117, 4, 169, 157, 152, 142, 109, 37, 118, 138,\n\t\t128, 183, 8, 191, 202, 53, 127, 189, 245, 147, 149, 149, 90,\n\t\t35, 139, 252, 184, 156, 213, 219, 111, 227, 92, 31, 180, 167,\n\t\t29, 227, 204, 3, 148, 128, 87, 138, 163, 220, 194, 225, 202,\n\t\t171, 39, 97, 221, 3, 188, 33, 86, 41, 108, 36, 97, 225, 169,\n\t\t161, 233, 155, 217, 210, 167, 170, 42, 77, 181, 7, 175, 196,\n\t\t215, 153, 114, 118, 169, 120, 61, 219, 227, 216, 10, 250,\n\t\t148, 60, 67, 38, 140, 252, 81, 65, 50, 202, 147, 105, 23,\n\t\t71, 104, 154, 124, 19, 158, 214, 107, 177, 86, 119, 177, 39,\n\t\t39, 225, 164, 57, 131, 63, 93, 38, 100, 31, 144, 187, 138,\n\t\t81, 161, 121, 49, 142, 221, 213, 76, 188, 221, 173, 244, 106,\n\t\t71, 6, 247, 55, 182, 107, 219, 160, 168, 127, 80, 244, 30,\n\t\t106, 87, 1, 172, 48, 111, 237, 127, 11, 254, 240, 244, 254,\n\t\t253, 240, 126, 29, 116, 75, 7, 174, 197, 117, 184, 235, 157,\n\t\t103, 191, 40, 201, 250, 137, 90, 93, 206, 253, 72, 66, 126,\n\t\t77, 53, 162, 153, 110, 5, 110, 61, 222, 8, 190, 13, 165, 151,\n\t\t135, 29, 202, 161, 38, 102, 219, 143, 238, 127, 250, 23, 84,\n\t\t85, 196, 65, 76, 133, 74, 89, 237, 69, 127, 113, 217, 238,\n\t\t239, 82, 238, 87, 62, 72, 241, 110, 245, 144, 8, 91, 54, 223,\n\t\t17, 28, 40, 43, 45, 150, 254, 78, 127, 49, 148, 156, 207,\n\t\t84, 244, 158, 19, 156, 167, 18, 247, 133, 204, 1, 106, 75,\n\t\t238, 56, 62, 158, 100, 82, 239, 36, 59, 16, 177, 155, 196,\n\t\t67, 144, 149, 242, 243, 193, 114, 196, 34, 47, 173, 221, 111,\n\t\t31, 158, 72, 80, 94, 178, 36, 158, 147, 42, 223, 135, 84,\n\t\t164, 216, 123, 224, 185, 160, 222, 205, 153, 72, 183, 34,\n\t\t74, 134, 212, 100, 137, 3, 37, 194, 33, 40, 226, 248, 171,\n\t\t133, 43, 70, 170, 142, 102, 84, 179, 53, 43, 23, 130, 170,\n\t\t224, 53, 42, 49, 244, 93, 42, 61, 52, 241, 254, 122, 148,\n\t\t154, 169, 242, 200, 174, 70, 14, 123, 153, 236, 60, 167, 84,\n\t\t223, 206, 26, 104, 40, 154, 17, 29, 131, 251, 8, 194, 84,\n\t\t78, 53, 168, 90, 45, 86, 13, 75, 96, 143, 68, 219, 78, 117,\n\t\t149, 94, 41, 177, 146, 81, 197, 16, 109, 244, 182, 132, 169,\n\t\t61, 172, 133, 137, 160, 4, 3, 4, 168, 130, 152, 148, 40, 23,\n\t\t196, 177, 152, 99, 115, 15, 141, 108, 80, 179, 103, 45, 213,\n\t\t44, 25, 46, 85, 138, 152, 144, 83, 225, 156, 73, 214, 185,\n\t\t50, 176, 19, 27, 127, 112, 226, 57, 213, 0, 209, 101, 152,\n\t\t252, 39, 57, 26, 236, 127, 202, 114, 201, 216, 142, 154, 149,\n\t\t106, 176, 233, 217, 136, 180, 41, 31, 211, 53, 209, 184, 50,\n\t\t45, 78, 75, 237, 177, 83, 203, 60, 22, 10, 215, 66, 120, 173,\n\t\t59, 161, 167, 129, 105, 211, 125, 99, 55, 191, 14, 159, 146,\n\t\t121, 154, 99, 82, 62, 91, 22, 115, 75, 158, 214, 61, 233,\n\t\t153, 49, 28, 229, 15, 180, 43, 100, 237, 27, 149, 234, 20,\n\t\t216, 73, 179, 197, 22, 165, 130, 29, 240, 180, 44, 149, 219,\n\t\t241, 47, 218, 55, 122, 134, 211, 41, 74, 153, 41, 126, 179,\n\t\t154, 88, 197, 75, 77, 30, 6, 14, 183, 13, 19, 155, 39, 162,\n\t\t201, 235, 166, 55, 194, 163, 110, 88, 230, 234, 106, 210,\n\t\t78, 213, 90, 113, 234, 65, 211, 136, 118, 199, 139, 91, 110,\n\t\t89, 140, 119, 35, 251, 122, 212, 109, 248, 94, 57, 234, 175,\n\t\t220, 57, 236, 109, 6, 94, 18, 119, 187, 111, 178, 39, 229,\n\t\t59, 126, 57, 118, 50, 65, 245, 111, 14, 15, 24, 252, 151,\n\t\t82, 111, 87, 215, 166, 59, 27, 171, 187, 65, 123, 120, 107,\n\t\t239, 220, 47, 198, 177, 58, 185, 188, 183, 119, 121, 210,\n\t\t252, 243, 94, 87, 141, 235, 103, 94, 74, 249, 140, 7, 121,\n\t\t157, 191, 175, 28, 87, 110, 151, 51, 20, 255, 22, 209, 229,\n\t\t111, 40, 191, 163, 252, 46, 121, 163, 170, 212, 33, 68, 47,\n\t\t108, 201, 75, 78, 193, 249, 5, 63, 176, 116, 36, 43, 79, 237,\n\t\t167, 63, 95, 18, 175, 231, 135, 20, 236, 153, 116, 47, 137,\n\t\t178, 129, 204, 162, 212, 243, 192, 157, 249, 34, 91, 38, 125,\n\t\t138, 249, 178, 70, 75, 154, 225, 161, 218, 153, 28, 102, 143,\n\t\t138, 68, 102, 239, 241, 84, 182, 255, 193, 193, 193, 36, 121,\n\t\t110, 54, 217, 35, 182, 185, 78, 22, 15, 85, 66, 158, 98, 78,\n\t\t141, 91, 80, 70, 190, 12, 2, 77, 22, 253, 28, 62, 147, 22,\n\t\t14, 47, 63, 217, 232, 13, 74, 148, 210, 84, 173, 55, 183,\n\t\t53, 17, 108, 119, 66, 132, 6, 102, 63, 211, 238, 45, 107,\n\t\t94, 111, 71, 37, 1, 65, 40, 217, 65, 156, 213, 90, 219, 171,\n\t\t235, 68, 122, 92, 105, 213, 77, 243, 145, 86, 15, 61, 174,\n\t\t145, 250, 201, 32, 11, 171, 182, 229, 127, 190, 162, 178,\n\t\t134, 109, 135, 207, 141, 187, 85, 245, 244, 15, 169, 73, 178,\n\t\t187, 35, 82, 23, 152, 91, 50, 93, 123, 251, 228, 86, 171,\n\t\t173, 123, 56, 180, 18, 109, 76, 18, 179, 90, 214, 62, 125,\n\t\t146, 91, 182, 55, 24, 10, 219, 54, 137, 184, 80, 5, 167, 17,\n\t\t27, 93, 45, 168, 27, 220, 181, 5, 116, 207, 10, 35, 101, 105,\n\t\t170, 214, 73, 209, 144, 175, 119, 251, 191, 243, 87, 110,\n\t\t173, 148, 138, 158, 190, 94, 57, 155, 48, 166, 213, 70, 169,\n\t\t134, 55, 183, 110, 104, 126, 208, 232, 239, 78, 54, 44, 244,\n\t\t82, 212, 254, 16, 77, 234, 145, 138, 171, 170, 89, 117, 79,\n\t\t143, 78, 55, 133, 215, 29, 135, 107, 142, 123, 93, 117, 28,\n\t\t163, 94, 95, 255, 145, 10, 99, 126, 148, 56, 31, 131, 32,\n\t\t138, 227, 200, 248, 84, 115, 182, 58, 24, 68, 6, 66, 100,\n\t\t59, 241, 115, 83, 207, 194, 48, 168, 50, 150, 92, 122, 64,\n\t\t229, 119, 92, 170, 55, 84, 175, 137, 109, 228, 200, 145, 245,\n\t\t104, 112, 65, 51, 2, 127, 216, 151, 116, 205, 82, 155, 196,\n\t\t138, 193, 227, 89, 13, 204, 168, 136, 115, 221, 1, 117, 10,\n\t\t241, 79, 87, 7, 22, 184, 81, 146, 191, 168, 7, 40, 99, 95,\n\t\t142, 82, 94, 170, 178, 247, 164, 42, 244, 140, 90, 62, 201,\n\t\t100, 145, 190, 47, 105, 161, 46, 254, 101, 68, 172, 133, 35,\n\t\t247, 246, 96, 70, 170, 4, 67, 182, 14, 225, 17, 54, 39, 109,\n\t\t236, 57, 116, 237, 216, 212, 239, 186, 203, 79, 132, 58, 185,\n\t\t243, 206, 32, 214, 76, 28, 78, 254, 116, 163, 177, 255, 149,\n\t\t198, 198, 70, 3, 214, 26, 27, 143, 142, 209, 47, 15, 106,\n\t\t241, 79, 198, 195, 188, 234, 248, 134, 169, 205, 222, 229,\n\t\t199, 28, 238, 50, 3, 235, 244, 89, 199, 51, 17, 98, 104, 239,\n\t\t248, 254, 254, 27, 255, 243, 22, 11, 130, 21, 141, 199, 174,\n\t\t111, 32, 230, 196, 223, 21, 80, 95, 118, 240, 123, 255, 7,\n\t\t248, 37, 37, 85, 214, 73, 203, 181, 39, 69, 120, 251, 196,\n\t\t109, 213, 128, 37, 219, 21, 190, 14, 200, 105, 249, 215, 219,\n\t\t243, 222, 225, 91, 201, 152, 5, 47, 124, 142, 25, 236, 115,\n\t\t66, 16, 236, 127, 6, 87, 159, 193, 215, 145, 192, 127, 63,\n\t\t96, 251, 254, 135, 95, 220, 76, 47, 183, 190, 74, 85, 95,\n\t\t165, 81, 50, 249, 173, 242, 145, 107, 79, 107, 236, 213, 170,\n\t\t250, 106, 38, 183, 1, 224, 182, 107, 140, 93, 3, 88, 46, 241,\n\t\t122, 167, 136, 90, 255, 59, 220, 144, 17, 126, 154, 85, 60,\n\t\t140, 54, 210, 37, 15, 91, 105, 135, 128, 37, 147, 180, 40,\n\t\t179, 148, 106, 64, 58, 227, 237, 126, 103, 134, 55, 129, 164,\n\t\t11, 224, 211, 81, 185, 28, 61, 255, 252, 254, 141, 245, 114,\n\t\t180, 94, 237, 157, 128, 99, 247, 173, 31, 223, 120, 213, 115,\n\t\t235, 175, 191, 12, 55, 202, 209, 254, 87, 162, 242, 58, 172,\n\t\t157, 56, 17, 149, 247, 63, 221, 171, 192, 135, 224, 222, 189,\n\t\t205, 189, 27, 240, 236, 171, 46, 191, 94, 218, 173, 175, 195,\n\t\t219, 208, 239, 172, 40, 111, 82, 222, 78, 149, 171, 157, 53,\n\t\t142, 208, 69, 116, 22, 41, 71, 147, 85, 211, 227, 190, 44,\n\t\t107, 244, 84, 25, 238, 156, 207, 198, 52, 251, 179, 53, 228,\n\t\t148, 246, 221, 231, 7, 130, 27, 243, 197, 17, 13, 111, 183,\n\t\t228, 34, 221, 150, 201, 208, 136, 146, 39, 5, 151, 180, 26,\n\t\t158, 32, 192, 191, 144, 245, 146, 19, 180, 126, 63, 14, 185,\n\t\t25, 59, 174, 160, 202, 48, 28, 252, 95, 135, 54, 252, 146,\n\t\t221, 174, 187, 220, 70, 224, 144, 90, 113, 149, 231, 177,\n\t\t105, 184, 182, 131, 168, 134, 25, 137, 99, 52, 230, 73, 108,\n\t\t90, 224, 217, 86, 238, 5, 166, 73, 101, 35, 42, 186, 248,\n\t\t229, 180, 169, 159, 4, 95, 132, 166, 103, 24, 96, 161, 15,\n\t\t164, 218, 94, 24, 134, 190, 173, 177, 104, 229, 44, 211, 204,\n\t\t6, 149, 67, 173, 192, 81, 74, 145, 248, 81, 74, 70, 212, 53,\n\t\t67, 184, 78, 178, 255, 217, 218, 24, 202, 120, 116, 97, 56,\n\t\t110, 53, 54, 226, 18, 25, 69, 93, 88, 158, 112, 202, 117,\n\t\t6, 44, 78, 252, 245, 97, 224, 70, 203, 58, 61, 30, 175, 228,\n\t\t62, 183, 45, 52, 64, 104, 138, 116, 116, 100, 125, 107, 254,\n\t\t196, 201, 184, 200, 66, 98, 190, 143, 255, 70, 150, 148, 136,\n\t\t64, 199, 123, 41, 240, 122, 254, 19, 246, 157, 85, 68, 56,\n\t\t63, 174, 60, 67, 76, 101, 83, 242, 140, 15, 166, 70, 102,\n\t\t146, 62, 239, 128, 69, 233, 224, 13, 109, 151, 147, 42, 228,\n\t\t128, 80, 134, 15, 213, 53, 45, 136, 89, 88, 240, 166, 68,\n\t\t11, 36, 170, 54, 225, 109, 98, 21, 134, 130, 77, 241, 34,\n\t\t103, 139, 132, 84, 73, 246, 216, 54, 90, 19, 46, 147, 144,\n\t\t218, 98, 72, 64, 122, 144, 38, 131, 246, 120, 70, 89, 232,\n\t\t103, 155, 63, 243, 35, 151, 130, 113, 35, 76, 139, 250, 106,\n\t\t221, 67, 252, 154, 123, 184, 82, 164, 97, 99, 252, 65, 129,\n\t\t56, 13, 58, 97, 112, 107, 104, 118, 109, 96, 182, 189, 187,\n\t\t255, 191, 143, 122, 22, 99, 118, 215, 12, 111, 245, 211, 200,\n\t\t183, 28, 93, 10, 50, 32, 124, 52, 139, 206, 197, 139, 157,\n\t\t2, 253, 86, 74, 3, 98, 170, 173, 59, 150, 31, 165, 78, 100,\n\t\t102, 27, 153, 25, 221, 190, 97, 212, 243, 188, 206, 42, 14,\n\t\t252, 60, 58, 208, 59, 86, 154, 52, 138, 36, 41, 138, 196,\n\t\t165, 147, 186, 180, 150, 20, 141, 36, 181, 118, 222, 226,\n\t\t132, 245, 122, 61, 8, 180, 248, 246, 107, 23, 108, 207, 243,\n\t\t158, 124, 168, 208, 252, 176, 94, 54, 226, 160, 29, 173, 26,\n\t\t65, 230, 82, 250, 98, 175, 236, 186, 229, 30, 25, 113, 116,\n\t\t50, 28, 99, 53, 106, 7, 49, 9, 133, 51, 102, 153, 163, 85,\n\t\t15, 202, 128, 15, 94, 67, 19, 174, 248, 55, 191, 119, 243,\n\t\t235, 234, 13, 233, 223, 250, 56, 98, 157, 81, 126, 88, 121,\n\t\t86, 121, 94, 249, 45, 229, 47, 193, 130, 12, 182, 224, 60,\n\t\t188, 22, 126, 20, 109, 123, 103, 62, 161, 42, 223, 37, 105,\n\t\t204, 124, 34, 16, 102, 163, 181, 195, 75, 143, 126, 41, 54,\n\t\t103, 124, 160, 79, 200, 135, 42, 154, 39, 170, 97, 206, 100,\n\t\t228, 149, 231, 243, 66, 213, 73, 59, 106, 78, 117, 208, 91,\n\t\t243, 41, 137, 118, 72, 98, 216, 229, 161, 124, 72, 198, 4,\n\t\t183, 218, 34, 25, 39, 227, 60, 27, 79, 183, 8, 10, 100, 4,\n\t\t225, 165, 110, 149, 172, 168, 26, 2, 85, 238, 210, 76, 6,\n\t\t98, 220, 217, 66, 102, 121, 209, 49, 8, 167, 205, 6, 219,\n\t\t52, 157, 137, 3, 235, 108, 139, 170, 214, 240, 52, 82, 171,\n\t\t10, 27, 206, 46, 246, 181, 249, 152, 206, 40, 93, 165, 131,\n\t\t115, 110, 143, 73, 129, 120, 154, 209, 33, 183, 9, 36, 206,\n\t\t176, 99, 81, 189, 190, 84, 38, 222, 133, 3, 114, 87, 177,\n\t\t197, 199, 124, 42, 249, 230, 23, 184, 79, 46, 79, 122, 144,\n\t\t50, 214, 23, 179, 239, 127, 31, 210, 222, 158, 83, 145, 247,\n\t\t98, 182, 149, 163, 99, 71, 213, 206, 36, 142, 147, 225, 112,\n\t\t62, 239, 200, 112, 19, 125, 104, 124, 248, 181, 199, 201,\n\t\t191, 254, 218, 179, 163, 234, 16, 38, 121, 231, 159, 42, 80,\n\t\t122, 142, 184, 74, 192, 208, 190, 197, 125, 31, 209, 221,\n\t\t63, 190, 230, 132, 213, 159, 55, 172, 206, 234, 230, 74, 219,\n\t\t232, 28, 105, 152, 53, 52, 144, 197, 78, 187, 124, 196, 111,\n\t\t143, 140, 192, 243, 92, 219, 50, 181, 206, 153, 157, 246,\n\t\t63, 127, 39, 244, 32, 36, 142, 20, 48, 155, 17, 41, 40, 80,\n\t\t186, 179, 159, 54, 61, 114, 76, 53, 4, 147, 60, 243, 133,\n\t\t91, 102, 96, 119, 241, 222, 226, 99, 71, 216, 30, 254, 88,\n\t\t17, 184, 84, 59, 100, 24, 65, 15, 187, 121, 59, 139, 92, 131,\n\t\t20, 228, 104, 147, 99, 218, 161, 103, 33, 140, 196, 245, 203,\n\t\t224, 232, 64, 185, 70, 224, 91, 58, 213, 82, 170, 134, 137,\n\t\t118, 209, 92, 166, 77, 155, 166, 161, 169, 166, 163, 206,\n\t\t121, 156, 32, 108, 224, 113, 170, 105, 107, 190, 88, 158,\n\t\t72, 211, 17, 61, 192, 136, 10, 169, 194, 128, 146, 103, 41,\n\t\t239, 218, 65, 211, 47, 96, 174, 71, 169, 166, 22, 203, 111,\n\t\t32, 66, 252, 6, 221, 18, 84, 254, 152, 38, 65, 29, 68, 31,\n\t\t86, 73, 103, 33, 149, 80, 129, 86, 57, 117, 183, 23, 87, 109,\n\t\t63, 111, 121, 16, 116, 114, 81, 30, 223, 114, 36, 44, 246,\n\t\t38, 205, 122, 210, 81, 53, 110, 152, 54, 130, 59, 171, 115,\n\t\t252, 180, 131, 176, 153, 84, 20, 4, 122, 227, 220, 115, 40,\n\t\t216, 69, 33, 78, 16, 199, 100, 121, 26, 126, 11, 83, 197,\n\t\t159, 100, 234, 148, 19, 220, 198, 129, 43, 197, 49, 20, 96,\n\t\t34, 76, 225, 121, 84, 134, 134, 59, 177, 16, 152, 206, 197,\n\t\t36, 146, 7, 163, 124, 111, 116, 123, 140, 127, 113, 172, 35,\n\t\t96, 80, 162, 57, 16, 29, 11, 190, 108, 51, 58, 27, 85, 197,\n\t\t89, 124, 14, 70, 20, 57, 14, 62, 235, 82, 110, 99, 7, 160,\n\t\t230, 176, 101, 101, 222, 12, 207, 63, 160, 236, 112, 70, 197,\n\t\t121, 232, 200, 194, 74, 16, 225, 5, 169, 31, 158, 85, 150,\n\t\t190, 25, 222, 193, 252, 18, 250, 124, 10, 250, 124, 77, 229,\n\t\t8, 245, 64, 242, 100, 200, 201, 147, 65, 160, 228, 197, 181,\n\t\t229, 214, 121, 159, 60, 62, 10, 194, 96, 131, 236, 175, 195,\n\t\t124, 123, 32, 217, 192, 104, 184, 252, 202, 99, 171, 187,\n\t\t187, 171, 79, 163, 63, 26, 60, 147, 36, 242, 205, 11, 97,\n\t\t158, 135, 191, 225, 216, 246, 217, 168, 96, 39, 117, 83, 183,\n\t\t141, 199, 125, 255, 217, 214, 48, 237, 102, 63, 179, 123,\n\t\t101, 55, 111, 231, 43, 203, 151, 36, 121, 147, 51, 74, 117,\n\t\t147, 191, 201, 112, 194, 97, 56, 106, 125, 36, 235, 165, 203,\n\t\t239, 103, 160, 223, 246, 29, 25, 175, 184, 241, 253, 40, 69,\n\t\t15, 177, 255, 118, 95, 172, 33, 82, 18, 91, 67, 38, 41, 50,\n\t\t10, 93, 202, 244, 73, 161, 58, 89, 155, 65, 115, 147, 115,\n\t\t196, 17, 228, 188, 169, 249, 210, 71, 160, 81, 29, 255, 44,\n\t\t218, 60, 95, 242, 49, 171, 196, 76, 52, 203, 208, 181, 199,\n\t\t173, 9, 193, 230, 193, 158, 62, 37, 102, 0, 52, 167, 63, 187,\n\t\t12, 101, 188, 213, 178, 160, 156, 168, 204, 54, 125, 215,\n\t\t247, 60, 238, 187, 121, 82, 117, 3, 30, 51, 147, 81, 237,\n\t\t36, 85, 58, 107, 170, 230, 39, 154, 22, 149, 139, 177, 198,\n\t\t74, 174, 239, 218, 169, 21, 68, 120, 63, 173, 40, 116, 44,\n\t\t149, 4, 218, 236, 192, 12, 32, 143, 6, 173, 48, 167, 86, 17,\n\t\t53, 34, 11, 72, 131, 81, 15, 234, 26, 51, 4, 105, 247, 128,\n\t\t176, 15, 66, 31, 216, 3, 12, 55, 160, 114, 3, 43, 72, 234,\n\t\t216, 65, 28, 108, 224, 238, 90, 25, 79, 73, 10, 56, 44, 231,\n\t\t186, 13, 66, 119, 2, 230, 184, 133, 176, 42, 165, 172, 230,\n\t\t249, 216, 201, 152, 29, 106, 173, 241, 246, 182, 71, 17, 88,\n\t\t94, 7, 31, 45, 46, 192, 32, 89, 12, 186, 148, 202, 143, 110,\n\t\t164, 39, 34, 213, 211, 44, 174, 91, 90, 230, 117, 252, 196,\n\t\t0, 67, 117, 116, 195, 84, 116, 153, 195, 166, 226, 56, 221,\n\t\t151, 42, 211, 0, 92, 22, 163, 233, 119, 41, 15, 46, 103, 8,\n\t\t51, 25, 108, 91, 99, 3, 178, 138, 232, 223, 31, 120, 89, 132,\n\t\t38, 104, 20, 102, 184, 50, 95, 138, 133, 122, 90, 7, 7, 101,\n\t\t114, 8, 166, 52, 196, 74, 138, 83, 62, 151, 75, 209, 159,\n\t\t75, 193, 102, 130, 156, 82, 85, 163, 221, 135, 111, 219, 123,\n\t\t123, 86, 163, 154, 22, 160, 102, 165, 146, 6, 5, 246, 146,\n\t\t74, 221, 56, 222, 51, 189, 32, 12, 16, 124, 152, 167, 238,\n\t\t223, 186, 248, 230, 55, 166, 253, 66, 248, 201, 236, 242,\n\t\t198, 137, 71, 29, 244, 23, 157, 106, 218, 62, 26, 77, 28,\n\t\t235, 44, 231, 85, 55, 250, 185, 74, 185, 124, 173, 92, 169,\n\t\t124, 80, 117, 60, 149, 117, 203, 229, 142, 198, 202, 76, 31,\n\t\t174, 52, 167, 223, 62, 241, 88, 81, 222, 172, 39, 144, 214,\n\t\t97, 173, 156, 141, 221, 122, 82, 158, 248, 155, 231, 6, 175,\n\t\t220, 255, 158, 89, 172, 102, 195, 151, 236, 245, 46, 236,\n\t\t218, 107, 69, 51, 216, 76, 66, 51, 3, 39, 248, 68, 203, 243,\n\t\t90, 174, 43, 151, 171, 136, 116, 141, 176, 138, 166, 44, 116,\n\t\t184, 147, 173, 64, 111, 137, 191, 235, 55, 111, 194, 127,\n\t\t133, 183, 41, 158, 82, 40, 91, 202, 61, 136, 7, 201, 51, 147,\n\t\t122, 202, 178, 4, 88, 28, 240, 241, 14, 36, 171, 248, 60,\n\t\t91, 72, 60, 142, 63, 153, 66, 154, 243, 233, 17, 232, 45,\n\t\t57, 67, 27, 48, 61, 252, 4, 147, 249, 32, 131, 101, 144, 114,\n\t\t139, 84, 173, 230, 11, 248, 149, 181, 203, 134, 241, 64, 44,\n\t\t19, 255, 93, 195, 224, 22, 85, 58, 170, 241, 3, 134, 113,\n\t\t249, 110, 195, 194, 14, 149, 110, 174, 213, 84, 237, 241,\n\t\t12, 212, 253, 75, 8, 191, 124, 113, 23, 92, 192, 1, 202, 131,\n\t\t71, 131, 254, 0, 112, 176, 50, 29, 19, 132, 200, 202, 54,\n\t\t172, 228, 45, 174, 159, 147, 19, 30, 246, 55, 136, 122, 9,\n\t\t199, 24, 251, 44, 215, 91, 143, 170, 174, 161, 91, 84, 6,\n\t\t44, 116, 35, 122, 55, 14, 136, 190, 247, 133, 63, 241, 61,\n\t\t83, 99, 251, 255, 99, 173, 175, 170, 120, 20, 23, 170, 205,\n\t\t255, 3, 219, 103, 209, 43, 0, 120, 156, 99, 96, 100, 96, 96,\n\t\t244, 220, 53, 63, 180, 252, 113, 94, 60, 191, 205, 87, 6,\n\t\t110, 38, 6, 16, 184, 177, 115, 131, 3, 148, 118, 253, 255,\n\t\t238, 255, 54, 166, 86, 198, 7, 64, 46, 7, 3, 88, 26, 0, 184,\n\t\t246, 15, 137, 0, 120, 156, 99, 96, 100, 96, 96, 60, 240, 255,\n\t\t0, 3, 3, 83, 195, 255, 119, 255, 63, 50, 181, 50, 0, 69, 144,\n\t\t1, 227, 42, 0, 185, 186, 8, 20, 0, 0, 0, 120, 156, 149, 84,\n\t\t49, 146, 19, 49, 16, 28, 201, 46, 123, 207, 248, 92, 198,\n\t\t135, 241, 185, 206, 20, 251, 2, 222, 160, 132, 140, 128, 103,\n\t\t16, 242, 4, 61, 129, 140, 148, 152, 136, 240, 34, 202, 15,\n\t\t224, 1, 132, 14, 201, 88, 138, 34, 48, 103, 78, 180, 90, 35,\n\t\t173, 214, 92, 194, 86, 77, 105, 180, 51, 26, 245, 244, 204,\n\t\t200, 138, 126, 31, 69, 204, 126, 40, 86, 84, 239, 84, 242,\n\t\t127, 47, 115, 234, 7, 245, 241, 101, 29, 89, 39, 11, 227,\n\t\t67, 160, 223, 146, 255, 108, 137, 217, 209, 111, 98, 156,\n\t\t76, 185, 135, 191, 218, 90, 200, 5, 108, 13, 247, 111, 43,\n\t\t127, 39, 171, 24, 155, 54, 207, 255, 143, 43, 124, 141, 234,\n\t\t107, 243, 173, 218, 119, 210, 100, 236, 101, 77, 119, 182,\n\t\t170, 247, 121, 229, 213, 49, 175, 146, 75, 244, 193, 58, 171,\n\t\t242, 94, 42, 230, 53, 214, 41, 236, 151, 176, 27, 232, 51,\n\t\t252, 51, 138, 109, 194, 115, 15, 137, 20, 238, 226, 250, 66,\n\t\t113, 92, 98, 189, 82, 125, 2, 219, 68, 49, 143, 51, 22, 189,\n\t\t179, 231, 222, 133, 64, 91, 215, 199, 86, 94, 163, 92, 192,\n\t\t126, 68, 46, 166, 170, 85, 226, 165, 75, 245, 170, 124, 163,\n\t\t253, 121, 196, 92, 115, 170, 247, 47, 32, 91, 243, 149, 251,\n\t\t200, 229, 42, 199, 177, 125, 174, 45, 238, 217, 90, 9, 127,\n\t\t240, 255, 201, 89, 239, 128, 231, 212, 3, 249, 190, 202, 54,\n\t\t46, 117, 233, 185, 157, 41, 167, 77, 238, 181, 170, 222, 131,\n\t\t243, 9, 187, 198, 222, 203, 181, 245, 229, 223, 49, 215, 201,\n\t\t250, 112, 159, 123, 129, 118, 151, 121, 8, 167, 104, 43, 189,\n\t\t211, 133, 238, 12, 155, 104, 77, 197, 188, 130, 254, 38, 158,\n\t\t11, 39, 226, 184, 101, 156, 167, 244, 63, 160, 6, 125, 239,\n\t\t137, 249, 160, 126, 135, 126, 15, 159, 19, 235, 212, 84, 53,\n\t\t204, 181, 216, 135, 31, 246, 53, 214, 119, 197, 182, 211,\n\t\t154, 108, 161, 183, 156, 25, 73, 51, 150, 240, 133, 95, 180,\n\t\t209, 55, 28, 161, 111, 128, 253, 251, 63, 115, 234, 137, 227,\n\t\t174, 250, 103, 141, 211, 122, 182, 85, 158, 157, 12, 102,\n\t\t58, 243, 67, 60, 169, 175, 242, 252, 172, 184, 39, 135, 225,\n\t\t183, 249, 20, 185, 75, 241, 235, 217, 201, 61, 200, 253, 151,\n\t\t225, 91, 193, 122, 223, 130, 155, 124, 143, 246, 210, 160,\n\t\t95, 136, 27, 245, 151, 146, 207, 188, 154, 149, 50, 235, 124,\n\t\t59, 132, 57, 33, 6, 250, 206, 241, 236, 182, 238, 115, 242,\n\t\t232, 179, 164, 90, 167, 158, 40, 241, 70, 56, 179, 212, 249,\n\t\t154, 234, 250, 136, 253, 231, 193, 147, 227, 91, 208, 152,\n\t\t207, 103, 125, 225, 203, 29, 243, 116, 111, 248, 153, 231,\n\t\t240, 127, 69, 113, 196, 153, 91, 216, 151, 85, 13, 211, 59,\n\t\t180, 61, 155, 153, 155, 193, 62, 233, 59, 237, 211, 49, 207,\n\t\t0, 119, 124, 71, 114, 254, 101, 78, 124, 241, 223, 32, 238,\n\t\t66, 241, 239, 50, 175, 152, 135, 123, 156, 93, 213, 92, 15,\n\t\t248, 115, 178, 129, 216, 216, 123, 16, 27, 253, 25, 43, 157,\n\t\t189, 211, 120, 215, 165, 78, 190, 122, 7, 58, 229, 255, 61,\n\t\t103, 133, 111, 83, 124, 167, 249, 47, 97, 30, 35, 246, 141,\n\t\t246, 202, 168, 202, 119, 14, 125, 173, 179, 50, 101, 157,\n\t\t97, 147, 6, 219, 103, 127, 1, 233, 226, 38, 1, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 90, 0, 144, 0, 222, 1, 162, 1, 234, 2, 32,\n\t\t2, 230, 3, 78, 3, 194, 4, 16, 4, 72, 4, 132, 4, 248, 5, 28,\n\t\t5, 68, 5, 100, 5, 214, 6, 22, 6, 78, 6, 156, 6, 196, 6, 248,\n\t\t7, 140, 7, 192, 7, 226, 8, 16, 8, 76, 8, 154, 8, 220, 8, 250,\n\t\t9, 126, 11, 86, 11, 188, 12, 42, 12, 134, 12, 210, 13, 4,\n\t\t13, 108, 14, 6, 14, 58, 14, 176, 14, 224, 15, 50, 15, 174,\n\t\t16, 42, 16, 88, 16, 134, 16, 178, 17, 48, 17, 186, 18, 8,\n\t\t18, 76, 18, 154, 18, 216, 19, 56, 20, 80, 20, 208, 21, 104,\n\t\t21, 186, 22, 30, 22, 132, 22, 242, 23, 86, 23, 120, 24, 116,\n\t\t24, 182, 25, 2, 25, 194, 26, 74, 27, 32, 27, 180, 28, 62,\n\t\t28, 100, 28, 172, 28, 250, 29, 114, 29, 242, 30, 28, 30, 156,\n\t\t31, 4, 31, 74, 31, 200, 33, 90, 34, 26, 36, 30, 37, 6, 37,\n\t\t190, 38, 48, 38, 180, 39, 24, 39, 210, 40, 0, 41, 36, 41,\n\t\t82, 41, 152, 41, 242, 42, 110, 43, 140, 43, 204, 44, 66, 44,\n\t\t154, 45, 8, 45, 50, 45, 114, 45, 146, 48, 44, 48, 118, 48,\n\t\t244, 49, 128, 49, 210, 50, 50, 50, 94, 50, 150, 51, 78, 51,\n\t\t178, 52, 28, 52, 94, 52, 204, 53, 104, 53, 178, 54, 252, 55,\n\t\t56, 55, 152, 55, 232, 56, 176, 57, 64, 57, 84, 57, 146, 57,\n\t\t172, 58, 26, 58, 150, 58, 212, 59, 24, 59, 58, 59, 190, 60,\n\t\t52, 60, 92, 60, 218, 61, 52, 61, 116, 61, 150, 61, 200, 62,\n\t\t16, 62, 108, 62, 184, 63, 70, 63, 198, 64, 50, 64, 174, 65,\n\t\t64, 65, 212, 66, 110, 66, 168, 67, 68, 67, 150, 68, 190, 69,\n\t\t4, 69, 90, 70, 18, 70, 94, 71, 30, 71, 82, 71, 108, 72, 116,\n\t\t72, 230, 73, 98, 74, 16, 74, 154, 74, 212, 75, 26, 76, 68,\n\t\t76, 176, 77, 28, 77, 150, 78, 120, 78, 164, 79, 22, 79, 122,\n\t\t80, 166, 81, 26, 81, 138, 82, 106, 82, 196, 83, 16, 83, 96,\n\t\t84, 118, 84, 192, 85, 82, 85, 204, 86, 34, 86, 180, 87, 36,\n\t\t87, 138, 87, 200, 88, 20, 88, 70, 89, 10, 89, 222, 90, 10,\n\t\t90, 54, 92, 130, 93, 4, 93, 112, 93, 174, 94, 54, 94, 94,\n\t\t94, 128, 94, 222, 95, 80, 95, 198, 95, 232, 97, 52, 97, 104,\n\t\t97, 138, 97, 178, 97, 230, 98, 80, 100, 52, 100, 120, 101,\n\t\t44, 101, 96, 101, 208, 102, 50, 102, 80, 102, 124, 102, 232,\n\t\t105, 170, 106, 250, 107, 46, 107, 224, 108, 30, 108, 122,\n\t\t108, 242, 109, 78, 112, 10, 112, 148, 112, 228, 113, 68, 113,\n\t\t250, 114, 70, 114, 122, 115, 20, 115, 170, 116, 14, 116, 54,\n\t\t116, 216, 117, 18, 117, 130, 117, 158, 117, 202, 118, 4, 118,\n\t\t48, 118, 200, 119, 88, 119, 142, 120, 20, 121, 10, 121, 130,\n\t\t122, 26, 122, 56, 122, 136, 122, 248, 124, 92, 124, 186, 125,\n\t\t14, 125, 134, 125, 204, 126, 68, 126, 196, 127, 10, 127, 148,\n\t\t127, 196, 128, 60, 128, 162, 128, 200, 128, 238, 129, 112,\n\t\t129, 198, 130, 42, 130, 136, 131, 178, 132, 2, 132, 234, 133,\n\t\t20, 133, 80, 133, 112, 134, 24, 134, 186, 136, 80, 136, 190,\n\t\t137, 180, 138, 4, 138, 174, 139, 60, 140, 0, 140, 116, 140,\n\t\t246, 141, 24, 141, 44, 141, 210, 142, 128, 142, 218, 143,\n\t\t110, 144, 244, 145, 120, 146, 218, 147, 2, 147, 250, 149,\n\t\t142, 149, 172, 149, 208, 150, 206, 152, 102, 152, 166, 152,\n\t\t196, 153, 170, 153, 196, 154, 104, 154, 154, 154, 208, 156,\n\t\t112, 158, 12, 158, 34, 158, 82, 158, 132, 158, 210, 158, 236,\n\t\t159, 152, 160, 84, 160, 144, 161, 18, 161, 244, 162, 88, 162,\n\t\t154, 162, 252, 163, 104, 163, 188, 163, 238, 164, 66, 164,\n\t\t150, 164, 240, 165, 70, 165, 226, 166, 128, 166, 216, 167,\n\t\t46, 167, 188, 168, 216, 169, 92, 169, 198, 170, 80, 170, 236,\n\t\t171, 134, 171, 178, 172, 90, 173, 86, 173, 250, 176, 140,\n\t\t180, 238, 181, 154, 181, 234, 182, 182, 183, 242, 184, 190,\n\t\t187, 30, 187, 94, 187, 162, 187, 224, 188, 52, 188, 170, 189,\n\t\t26, 189, 142, 190, 54, 190, 106, 190, 210, 190, 254, 191,\n\t\t52, 191, 122, 192, 72, 192, 160, 196, 52, 196, 240, 200, 144,\n\t\t203, 6, 203, 94, 203, 224, 204, 116, 208, 26, 208, 60, 211,\n\t\t18, 211, 46, 211, 84, 211, 136, 211, 238, 212, 132, 212, 240,\n\t\t213, 106, 213, 168, 214, 42, 215, 72, 215, 126, 215, 230,\n\t\t216, 90, 216, 130, 216, 254, 219, 30, 220, 76, 220, 138, 220,\n\t\t186, 221, 130, 221, 250, 222, 144, 222, 254, 223, 218, 224,\n\t\t74, 225, 100, 225, 192, 226, 28, 226, 90, 227, 2, 227, 188,\n\t\t229, 138, 229, 218, 230, 144, 231, 36, 231, 160, 120, 156,\n\t\t99, 96, 100, 96, 96, 92, 203, 236, 195, 160, 206, 0, 2, 76,\n\t\t64, 204, 8, 132, 12, 12, 14, 96, 62, 3, 0, 31, 207, 1, 106,\n\t\t0, 120, 156, 181, 146, 65, 107, 19, 65, 20, 199, 255, 179,\n\t\t155, 54, 216, 64, 104, 10, 169, 80, 13, 60, 17, 105, 34, 102,\n\t\t67, 98, 99, 155, 189, 181, 133, 8, 226, 197, 82, 196, 139,\n\t\t135, 52, 221, 38, 75, 178, 153, 101, 119, 210, 208, 143, 224,\n\t\t193, 175, 225, 197, 147, 103, 143, 126, 0, 15, 226, 167, 233,\n\t\t197, 183, 147, 215, 106, 164, 165, 40, 100, 151, 221, 249,\n\t\t205, 188, 183, 239, 255, 254, 59, 3, 224, 161, 122, 11, 133,\n\t\t249, 181, 133, 23, 194, 10, 21, 124, 20, 118, 144, 199, 87,\n\t\t97, 23, 143, 85, 65, 56, 135, 138, 26, 9, 175, 224, 137, 250,\n\t\t41, 188, 138, 45, 167, 41, 188, 134, 103, 206, 39, 225, 2,\n\t\t238, 187, 174, 240, 58, 202, 238, 75, 225, 18, 242, 110, 36,\n\t\t188, 129, 138, 251, 69, 184, 204, 57, 151, 194, 155, 200,\n\t\t231, 30, 177, 186, 202, 221, 227, 217, 142, 237, 36, 99, 5,\n\t\t31, 111, 132, 29, 20, 241, 89, 216, 69, 23, 223, 132, 115,\n\t\t240, 85, 67, 120, 5, 175, 212, 7, 225, 85, 236, 168, 75, 225,\n\t\t53, 188, 115, 94, 11, 23, 224, 57, 63, 132, 215, 241, 212,\n\t\t125, 32, 92, 66, 209, 125, 47, 188, 1, 223, 157, 10, 151,\n\t\t57, 231, 187, 240, 38, 138, 185, 18, 14, 161, 17, 227, 2,\n\t\t9, 66, 12, 48, 132, 1, 161, 138, 62, 106, 60, 118, 57, 54,\n\t\t177, 43, 251, 152, 33, 64, 202, 243, 136, 71, 28, 234, 248,\n\t\t34, 9, 7, 67, 67, 213, 126, 141, 186, 122, 98, 104, 127, 22,\n\t\t164, 58, 226, 216, 109, 31, 17, 218, 252, 28, 176, 80, 143,\n\t\t227, 167, 188, 78, 56, 226, 245, 1, 166, 24, 243, 90, 194,\n\t\t159, 254, 81, 136, 218, 116, 144, 244, 38, 167, 41, 29, 5,\n\t\t131, 233, 184, 199, 225, 191, 178, 175, 215, 255, 95, 177,\n\t\t206, 25, 30, 246, 248, 105, 222, 161, 94, 111, 123, 123, 94,\n\t\t115, 153, 238, 158, 163, 133, 14, 119, 178, 107, 199, 108,\n\t\t19, 110, 215, 58, 231, 119, 194, 243, 208, 102, 248, 86, 253,\n\t\t202, 71, 141, 75, 181, 58, 222, 110, 171, 67, 213, 5, 201,\n\t\t243, 32, 73, 67, 61, 241, 201, 90, 169, 253, 246, 178, 88,\n\t\t189, 189, 224, 162, 126, 147, 11, 169, 216, 158, 91, 168,\n\t\t95, 91, 56, 230, 243, 147, 181, 151, 149, 59, 193, 182, 253,\n\t\t9, 17, 151, 77, 173, 137, 216, 158, 180, 171, 66, 196, 205,\n\t\t247, 109, 3, 196, 241, 192, 102, 204, 69, 137, 89, 243, 61,\n\t\t198, 136, 115, 12, 155, 194, 241, 48, 160, 89, 112, 178, 157,\n\t\t82, 164, 83, 67, 177, 142, 51, 65, 10, 251, 122, 66, 105,\n\t\t96, 136, 219, 32, 163, 245, 120, 20, 26, 206, 206, 14, 177,\n\t\t97, 169, 148, 255, 76, 131, 239, 51, 241, 217, 91, 240, 233,\n\t\t89, 249, 136, 211, 141, 137, 83, 191, 209, 56, 99, 103, 189,\n\t\t185, 51, 175, 175, 163, 127, 217, 235, 155, 247, 118, 25,\n\t\t39, 246, 174, 83, 180, 180, 158, 127, 1, 161, 188, 3, 237,\n\t\t0, 120, 156, 117, 87, 5, 152, 228, 184, 153, 157, 255, 175,\n\t\t42, 187, 176, 187, 103, 118, 118, 55, 19, 216, 13, 179, 147,\n\t\t205, 66, 178, 97, 102, 102, 6, 217, 150, 109, 117, 217, 150,\n\t\t71, 146, 171, 202, 29, 102, 102, 102, 166, 187, 203, 49, 115,\n\t\t142, 25, 114, 204, 204, 12, 201, 241, 37, 79, 5, 157, 206,\n\t\t205, 92, 127, 253, 217, 146, 202, 214, 47, 253, 122, 255,\n\t\t123, 207, 167, 248, 212, 250, 239, 203, 159, 63, 117, 238,\n\t\t212, 69, 254, 232, 115, 254, 114, 138, 137, 169, 71, 125,\n\t\t26, 80, 64, 33, 13, 105, 68, 99, 154, 208, 148, 102, 180,\n\t\t71, 251, 116, 64, 167, 233, 12, 93, 66, 103, 233, 82, 186,\n\t\t140, 46, 167, 27, 208, 57, 186, 33, 221, 136, 110, 76, 55,\n\t\t57, 245, 5, 186, 130, 174, 164, 155, 210, 205, 232, 230, 116,\n\t\t11, 186, 37, 221, 138, 110, 77, 183, 161, 219, 210, 237, 232,\n\t\t246, 116, 7, 186, 35, 69, 116, 39, 186, 51, 93, 69, 119, 161,\n\t\t171, 233, 26, 186, 150, 174, 163, 187, 210, 221, 232, 122,\n\t\t186, 59, 221, 131, 238, 73, 247, 162, 123, 211, 125, 232,\n\t\t190, 116, 63, 186, 63, 61, 128, 30, 72, 15, 162, 7, 211, 67,\n\t\t232, 161, 244, 48, 122, 56, 61, 130, 30, 73, 143, 162, 71,\n\t\t211, 99, 232, 177, 244, 56, 122, 60, 61, 129, 158, 72, 79,\n\t\t162, 39, 211, 83, 232, 169, 244, 52, 122, 58, 61, 131, 158,\n\t\t73, 207, 162, 103, 211, 115, 232, 185, 244, 60, 18, 20, 83,\n\t\t66, 41, 73, 202, 40, 167, 130, 20, 29, 210, 156, 74, 170,\n\t\t168, 38, 77, 13, 157, 39, 67, 150, 28, 181, 180, 160, 37,\n\t\t173, 168, 163, 35, 122, 62, 189, 128, 94, 72, 47, 162, 23,\n\t\t211, 75, 232, 165, 244, 50, 122, 57, 189, 130, 94, 73, 175,\n\t\t162, 87, 211, 107, 232, 181, 244, 58, 122, 61, 189, 129, 222,\n\t\t72, 111, 162, 55, 211, 91, 232, 173, 244, 54, 122, 59, 189,\n\t\t131, 222, 73, 239, 162, 119, 211, 123, 232, 189, 244, 62,\n\t\t122, 63, 125, 128, 62, 72, 31, 162, 15, 211, 71, 232, 163,\n\t\t244, 49, 250, 56, 125, 130, 62, 73, 159, 162, 79, 211, 103,\n\t\t232, 179, 244, 117, 244, 245, 244, 13, 244, 57, 250, 70, 250,\n\t\t38, 250, 102, 250, 22, 250, 86, 250, 54, 250, 118, 250, 14,\n\t\t250, 78, 250, 46, 250, 110, 250, 30, 250, 94, 250, 62, 250,\n\t\t126, 250, 1, 250, 65, 250, 33, 250, 97, 250, 60, 253, 8, 253,\n\t\t40, 253, 24, 253, 56, 253, 4, 253, 36, 253, 20, 253, 52, 253,\n\t\t12, 253, 44, 253, 28, 253, 60, 253, 2, 253, 34, 253, 18, 253,\n\t\t50, 125, 129, 126, 133, 126, 149, 126, 141, 126, 157, 126,\n\t\t131, 126, 147, 126, 139, 126, 155, 126, 135, 126, 151, 126,\n\t\t143, 126, 159, 254, 128, 254, 144, 254, 136, 254, 152, 254,\n\t\t132, 254, 148, 254, 140, 254, 156, 254, 130, 254, 146, 254,\n\t\t138, 254, 154, 254, 134, 254, 150, 254, 142, 254, 158, 254,\n\t\t129, 254, 145, 254, 137, 254, 153, 254, 133, 254, 149, 190,\n\t\t72, 95, 162, 127, 163, 127, 167, 255, 160, 255, 164, 255,\n\t\t162, 255, 166, 255, 161, 255, 165, 47, 179, 7, 0, 115, 143,\n\t\t251, 60, 224, 128, 67, 30, 242, 136, 199, 60, 225, 41, 207,\n\t\t120, 143, 247, 249, 128, 79, 243, 25, 190, 132, 207, 242,\n\t\t165, 124, 25, 95, 206, 55, 224, 115, 124, 67, 190, 17, 223,\n\t\t152, 111, 194, 87, 240, 149, 124, 83, 190, 25, 223, 156, 111,\n\t\t193, 183, 228, 91, 241, 173, 249, 54, 124, 91, 190, 29, 223,\n\t\t158, 239, 192, 119, 228, 136, 239, 196, 119, 230, 171, 248,\n\t\t46, 124, 53, 95, 115, 234, 74, 190, 150, 175, 227, 187, 242,\n\t\t221, 248, 122, 190, 59, 223, 131, 239, 201, 247, 226, 123,\n\t\t243, 125, 248, 190, 124, 63, 190, 63, 63, 128, 31, 200, 15,\n\t\t226, 7, 243, 67, 248, 161, 252, 48, 126, 56, 63, 130, 31,\n\t\t201, 143, 226, 71, 243, 99, 248, 177, 252, 56, 126, 60, 63,\n\t\t129, 159, 200, 79, 226, 39, 243, 83, 248, 169, 252, 52, 126,\n\t\t58, 63, 131, 159, 201, 207, 226, 103, 243, 115, 248, 185,\n\t\t252, 60, 22, 28, 115, 194, 41, 75, 206, 56, 231, 130, 21,\n\t\t31, 242, 156, 75, 174, 184, 102, 205, 13, 159, 103, 195, 150,\n\t\t29, 183, 188, 224, 37, 175, 184, 227, 35, 126, 62, 191, 128,\n\t\t95, 200, 47, 226, 23, 243, 75, 248, 165, 252, 50, 126, 57,\n\t\t191, 130, 95, 201, 175, 226, 87, 243, 107, 248, 181, 252,\n\t\t58, 126, 61, 191, 129, 223, 200, 111, 226, 55, 243, 91, 248,\n\t\t173, 252, 54, 126, 59, 191, 131, 223, 201, 239, 226, 119,\n\t\t243, 123, 248, 189, 252, 62, 126, 63, 127, 128, 63, 200, 31,\n\t\t226, 15, 243, 71, 248, 163, 252, 49, 254, 56, 127, 130, 63,\n\t\t201, 159, 226, 79, 243, 103, 248, 179, 123, 110, 169, 156,\n\t\t147, 38, 178, 231, 91, 97, 228, 126, 38, 18, 25, 107, 61,\n\t\t223, 246, 135, 165, 170, 231, 50, 85, 245, 44, 87, 174, 104,\n\t\t227, 237, 112, 184, 125, 107, 184, 123, 60, 216, 252, 60,\n\t\t106, 84, 141, 97, 105, 221, 193, 113, 107, 251, 202, 153,\n\t\t92, 235, 188, 148, 81, 83, 182, 118, 59, 52, 59, 57, 148,\n\t\t79, 118, 161, 34, 85, 143, 183, 209, 68, 233, 130, 74, 172,\n\t\t146, 180, 30, 20, 174, 42, 175, 235, 39, 214, 94, 211, 139,\n\t\t93, 18, 118, 186, 117, 109, 44, 251, 43, 85, 231, 19, 127,\n\t\t217, 173, 44, 53, 186, 137, 245, 106, 207, 58, 145, 204, 35,\n\t\t189, 144, 38, 43, 245, 114, 164, 106, 12, 228, 70, 84, 65,\n\t\t86, 170, 100, 110, 122, 34, 173, 71, 177, 114, 113, 155, 204,\n\t\t165, 11, 92, 91, 197, 165, 153, 109, 110, 187, 169, 150, 170,\n\t\t78, 245, 210, 134, 162, 198, 164, 42, 29, 96, 129, 237, 106,\n\t\t152, 26, 21, 199, 113, 41, 7, 118, 222, 53, 114, 156, 233,\n\t\t214, 108, 158, 15, 156, 145, 101, 169, 135, 136, 226, 84,\n\t\t35, 58, 94, 204, 7, 75, 169, 98, 29, 24, 89, 227, 127, 212,\n\t\t136, 92, 98, 14, 105, 183, 139, 147, 171, 164, 16, 117, 46,\n\t\t167, 11, 85, 73, 189, 141, 58, 176, 37, 126, 27, 45, 181,\n\t\t73, 27, 164, 207, 6, 186, 145, 53, 130, 119, 162, 208, 58,\n\t\t216, 100, 12, 19, 166, 169, 114, 179, 205, 109, 151, 96, 187,\n\t\t94, 189, 108, 27, 93, 71, 137, 50, 73, 41, 39, 39, 134, 70,\n\t\t41, 98, 39, 74, 183, 182, 159, 170, 60, 159, 53, 74, 166,\n\t\t81, 163, 26, 28, 125, 211, 236, 157, 232, 249, 156, 167, 166,\n\t\t109, 68, 25, 28, 106, 93, 149, 34, 140, 37, 150, 153, 200,\n\t\t189, 237, 253, 120, 161, 78, 138, 106, 186, 190, 238, 50,\n\t\t102, 27, 237, 84, 214, 141, 83, 185, 80, 162, 118, 194, 184,\n\t\t177, 213, 109, 157, 38, 165, 110, 211, 254, 2, 123, 15, 19,\n\t\t157, 74, 236, 104, 120, 104, 51, 149, 166, 72, 163, 145, 177,\n\t\t44, 3, 89, 53, 202, 72, 127, 238, 219, 185, 122, 104, 78,\n\t\t10, 164, 2, 75, 170, 229, 210, 206, 156, 68, 236, 218, 69,\n\t\t235, 148, 242, 249, 243, 1, 26, 56, 248, 177, 45, 85, 42,\n\t\t109, 177, 62, 0, 160, 50, 41, 250, 157, 44, 155, 0, 7, 128,\n\t\t45, 236, 32, 182, 20, 101, 41, 93, 152, 36, 209, 66, 89, 49,\n\t\t195, 189, 18, 88, 185, 73, 132, 73, 39, 232, 165, 202, 38,\n\t\t30, 43, 254, 9, 81, 201, 213, 8, 247, 205, 12, 190, 101, 157,\n\t\t65, 106, 130, 18, 175, 100, 213, 108, 115, 219, 109, 89, 233,\n\t\t85, 161, 173, 27, 249, 131, 44, 75, 101, 221, 56, 110, 59,\n\t\t139, 166, 72, 237, 94, 162, 235, 90, 38, 14, 233, 144, 165,\n\t\t110, 134, 169, 176, 69, 2, 212, 14, 51, 109, 112, 48, 82,\n\t\t134, 165, 20, 117, 211, 198, 129, 127, 193, 118, 83, 91, 40,\n\t\t227, 172, 170, 227, 182, 156, 79, 172, 170, 154, 178, 139,\n\t\t91, 85, 186, 33, 176, 38, 28, 2, 79, 190, 90, 86, 205, 112,\n\t\t89, 8, 103, 69, 211, 132, 72, 118, 162, 85, 29, 84, 40, 159,\n\t\t182, 154, 118, 81, 162, 171, 88, 213, 194, 105, 51, 211, 141,\n\t\t67, 73, 85, 186, 246, 219, 29, 122, 48, 97, 207, 110, 42,\n\t\t87, 13, 30, 118, 50, 181, 182, 12, 176, 197, 195, 36, 222,\n\t\t91, 231, 161, 150, 198, 70, 73, 217, 198, 7, 137, 145, 0,\n\t\t242, 66, 250, 217, 252, 251, 156, 231, 163, 60, 223, 65, 203,\n\t\t167, 68, 164, 200, 166, 143, 145, 214, 122, 142, 213, 217,\n\t\t90, 205, 213, 217, 175, 233, 109, 211, 52, 206, 37, 86, 172,\n\t\t125, 173, 77, 150, 24, 246, 193, 69, 180, 12, 172, 200, 132,\n\t\t81, 65, 82, 24, 93, 201, 48, 3, 4, 50, 189, 26, 96, 149, 70,\n\t\t156, 94, 239, 180, 198, 123, 88, 107, 169, 141, 52, 1, 210,\n\t\t233, 132, 30, 92, 119, 213, 85, 205, 42, 16, 149, 56, 210,\n\t\t224, 5, 221, 30, 29, 133, 155, 10, 90, 140, 98, 95, 60, 145,\n\t\t83, 114, 148, 225, 89, 133, 23, 236, 116, 91, 37, 162, 84,\n\t\t178, 238, 203, 52, 151, 67, 96, 80, 73, 64, 190, 95, 233,\n\t\t116, 53, 197, 97, 224, 215, 165, 180, 88, 66, 175, 181, 241,\n\t\t180, 49, 58, 109, 19, 23, 21, 109, 237, 134, 149, 90, 173,\n\t\t209, 27, 216, 4, 133, 159, 34, 66, 43, 157, 214, 174, 152,\n\t\t28, 183, 162, 216, 211, 95, 41, 226, 241, 178, 137, 101, 174,\n\t\t112, 230, 38, 92, 54, 152, 183, 178, 129, 172, 23, 202, 136,\n\t\t65, 238, 81, 26, 174, 175, 81, 30, 224, 192, 82, 169, 103,\n\t\t155, 219, 142, 106, 109, 45, 26, 16, 130, 219, 219, 53, 162,\n\t\t220, 35, 107, 255, 184, 187, 77, 229, 87, 107, 117, 130, 132,\n\t\t1, 9, 160, 10, 105, 6, 157, 6, 46, 71, 174, 144, 149, 84,\n\t\t22, 7, 116, 130, 92, 167, 62, 25, 187, 45, 6, 160, 32, 212,\n\t\t224, 224, 124, 171, 141, 216, 203, 140, 244, 7, 140, 85, 37,\n\t\t162, 106, 134, 78, 150, 210, 179, 228, 48, 6, 233, 249, 145,\n\t\t62, 122, 139, 190, 116, 182, 235, 171, 42, 141, 67, 244, 100,\n\t\t105, 186, 161, 7, 108, 130, 128, 19, 219, 98, 33, 141, 94,\n\t\t2, 54, 216, 254, 241, 81, 85, 82, 186, 182, 57, 56, 25, 216,\n\t\t51, 203, 190, 72, 18, 144, 154, 2, 41, 69, 254, 116, 134,\n\t\t232, 183, 86, 103, 110, 8, 44, 97, 10, 81, 238, 137, 44, 83,\n\t\t165, 18, 78, 174, 183, 18, 138, 50, 215, 232, 226, 184, 253,\n\t\t232, 12, 101, 102, 186, 29, 50, 71, 0, 63, 138, 19, 1, 103,\n\t\t199, 173, 72, 105, 59, 64, 79, 154, 177, 176, 93, 85, 73,\n\t\t0, 117, 30, 138, 54, 245, 49, 67, 225, 121, 73, 174, 122,\n\t\t98, 105, 193, 254, 149, 142, 15, 81, 158, 33, 116, 192, 215,\n\t\t79, 31, 247, 110, 188, 134, 80, 44, 141, 233, 194, 184, 212,\n\t\t121, 46, 205, 104, 123, 143, 226, 131, 184, 5, 80, 53, 8,\n\t\t203, 215, 143, 113, 114, 236, 41, 9, 52, 130, 4, 142, 215,\n\t\t48, 177, 137, 40, 119, 205, 10, 34, 54, 93, 55, 253, 214,\n\t\t192, 139, 65, 210, 32, 122, 57, 244, 42, 230, 179, 49, 78,\n\t\t90, 231, 74, 153, 41, 91, 132, 105, 132, 140, 71, 41, 104,\n\t\t26, 25, 236, 82, 157, 135, 96, 181, 57, 160, 56, 3, 93, 43,\n\t\t39, 202, 72, 39, 32, 139, 112, 205, 84, 6, 207, 249, 59, 164,\n\t\t71, 6, 169, 78, 160, 149, 254, 6, 174, 156, 165, 70, 100,\n\t\t238, 234, 237, 59, 251, 59, 177, 218, 98, 39, 72, 59, 129,\n\t\t189, 140, 165, 48, 96, 22, 101, 82, 224, 211, 148, 200, 233,\n\t\t248, 88, 247, 179, 51, 199, 205, 10, 39, 37, 65, 107, 102,\n\t\t188, 198, 217, 122, 230, 233, 113, 93, 69, 153, 58, 56, 89,\n\t\t58, 126, 67, 161, 135, 83, 108, 211, 17, 162, 207, 141, 152,\n\t\t203, 26, 138, 133, 135, 228, 8, 104, 76, 113, 106, 169, 157,\n\t\t28, 183, 162, 124, 186, 197, 40, 86, 185, 56, 1, 88, 209,\n\t\t65, 67, 85, 227, 217, 96, 144, 27, 20, 97, 63, 111, 203, 230,\n\t\t204, 9, 49, 216, 25, 8, 208, 37, 226, 70, 5, 8, 31, 152, 43,\n\t\t180, 59, 20, 38, 68, 50, 188, 14, 5, 202, 181, 208, 218, 201,\n\t\t230, 22, 213, 218, 201, 240, 80, 214, 115, 56, 129, 193, 161,\n\t\t6, 31, 241, 161, 29, 29, 238, 166, 10, 230, 178, 131, 205,\n\t\t152, 204, 97, 14, 172, 23, 46, 164, 242, 68, 59, 154, 135,\n\t\t165, 88, 99, 191, 239, 21, 188, 95, 118, 153, 11, 43, 232,\n\t\t121, 237, 116, 8, 218, 5, 224, 236, 112, 67, 191, 81, 53,\n\t\t64, 195, 184, 81, 165, 18, 163, 61, 182, 123, 224, 144, 160,\n\t\t82, 71, 109, 173, 2, 16, 169, 52, 58, 68, 73, 123, 62, 14,\n\t\t125, 37, 70, 135, 182, 87, 55, 85, 175, 182, 215, 79, 234,\n\t\t22, 112, 117, 74, 215, 106, 53, 240, 118, 225, 90, 232, 88,\n\t\t153, 201, 52, 108, 4, 220, 5, 84, 28, 251, 244, 7, 223, 200,\n\t\t73, 83, 136, 216, 168, 196, 147, 252, 233, 166, 208, 48, 9,\n\t\t171, 40, 67, 233, 74, 88, 135, 249, 196, 103, 17, 107, 247,\n\t\t83, 5, 77, 107, 11, 153, 6, 77, 231, 10, 204, 0, 58, 140,\n\t\t124, 190, 61, 69, 121, 131, 97, 224, 38, 160, 51, 41, 126,\n\t\t176, 186, 132, 70, 231, 99, 179, 38, 106, 207, 57, 161, 111,\n\t\t122, 26, 179, 73, 81, 170, 213, 196, 2, 57, 73, 1, 80, 168,\n\t\t122, 106, 165, 89, 40, 84, 179, 247, 50, 161, 85, 94, 36,\n\t\t87, 227, 181, 123, 137, 10, 8, 29, 204, 128, 20, 115, 209,\n\t\t140, 241, 64, 183, 241, 118, 59, 179, 208, 85, 177, 46, 209,\n\t\t81, 235, 3, 173, 218, 82, 162, 131, 10, 213, 136, 238, 229,\n\t\t0, 156, 210, 148, 114, 111, 71, 70, 30, 18, 200, 57, 132,\n\t\t211, 12, 90, 136, 135, 155, 32, 147, 6, 68, 139, 144, 93,\n\t\t8, 124, 32, 251, 233, 176, 181, 182, 173, 107, 81, 4, 11,\n\t\t33, 32, 99, 131, 133, 242, 207, 175, 133, 161, 183, 168, 23,\n\t\t251, 59, 181, 220, 217, 151, 101, 81, 37, 246, 224, 216, 103,\n\t\t69, 107, 185, 133, 161, 132, 121, 12, 58, 212, 162, 92, 157,\n\t\t221, 220, 162, 141, 16, 173, 115, 9, 63, 32, 252, 218, 188,\n\t\t57, 152, 122, 175, 176, 235, 244, 178, 178, 219, 175, 253,\n\t\t147, 240, 140, 145, 221, 24, 17, 127, 186, 61, 109, 21, 60,\n\t\t142, 72, 220, 84, 180, 78, 35, 86, 166, 86, 210, 244, 45,\n\t\t4, 114, 176, 104, 229, 161, 247, 151, 192, 183, 48, 129, 39,\n\t\t39, 167, 7, 18, 206, 192, 156, 254, 26, 230, 204, 74, 145,\n\t\t123, 141, 193, 58, 32, 120, 224, 195, 0, 91, 23, 11, 17, 108,\n\t\t156, 201, 112, 115, 139, 236, 192, 117, 141, 190, 102, 188,\n\t\t145, 70, 191, 172, 217, 218, 207, 236, 122, 67, 207, 169,\n\t\t70, 182, 85, 48, 215, 6, 177, 71, 72, 112, 229, 33, 108, 246,\n\t\t182, 126, 122, 155, 156, 17, 76, 50, 92, 52, 204, 81, 191,\n\t\t80, 141, 237, 53, 69, 51, 58, 223, 162, 114, 18, 209, 120,\n\t\t247, 41, 210, 74, 246, 15, 177, 128, 147, 198, 17, 249, 189,\n\t\t228, 255, 122, 134, 40, 238, 46, 28, 171, 147, 203, 46, 50,\n\t\t22, 201, 246, 162, 195, 135, 205, 69, 102, 72, 47, 28, 107,\n\t\t210, 203, 47, 50, 230, 89, 233, 194, 105, 141, 68, 73, 94,\n\t\t56, 133, 21, 231, 46, 50, 6, 88, 160, 40, 174, 248, 127, 127,\n\t\t89, 75, 236, 133, 49, 214, 150, 244, 210, 11, 134, 143, 80,\n\t\t254, 125, 25, 139, 46, 4, 227, 196, 194, 202, 161, 119, 162,\n\t\t58, 245, 149, 25, 129, 238, 189, 32, 193, 178, 108, 10, 45,\n\t\t135, 12, 142, 124, 205, 172, 107, 105, 255, 132, 220, 111,\n\t\t216, 182, 45, 19, 24, 201, 211, 185, 64, 213, 161, 154, 176,\n\t\t47, 152, 73, 216, 252, 253, 227, 17, 16, 56, 230, 24, 31,\n\t\t130, 154, 54, 47, 78, 42, 128, 26, 34, 96, 32, 132, 83, 93,\n\t\t166, 199, 239, 28, 236, 72, 196, 67, 0, 31, 60, 117, 223,\n\t\t66, 191, 14, 128, 51, 80, 20, 40, 72, 154, 117, 5, 92, 178,\n\t\t212, 101, 6, 48, 161, 202, 99, 225, 160, 49, 24, 27, 22, 218,\n\t\t212, 177, 42, 203, 81, 37, 84, 153, 20, 168, 36, 144, 97,\n\t\t46, 26, 200, 67, 80, 43, 255, 77, 213, 51, 114, 49, 180, 133,\n\t\t110, 150, 200, 202, 100, 131, 50, 139, 89, 240, 41, 233, 101,\n\t\t62, 209, 176, 243, 50, 46, 187, 222, 82, 173, 250, 254, 51,\n\t\t106, 188, 161, 123, 35, 234, 121, 48, 23, 57, 148, 1, 137,\n\t\t50, 115, 124, 144, 213, 253, 90, 66, 227, 143, 10, 85, 180,\n\t\t1, 226, 251, 82, 196, 36, 145, 39, 182, 78, 58, 117, 78, 36,\n\t\t192, 170, 93, 211, 168, 69, 241, 66, 46, 177, 16, 100, 33,\n\t\t157, 37, 158, 92, 161, 208, 145, 209, 224, 151, 173, 228,\n\t\t70, 177, 236, 116, 157, 246, 224, 210, 207, 102, 254, 171,\n\t\t197, 118, 40, 56, 149, 23, 48, 96, 160, 83, 59, 133, 103,\n\t\t174, 187, 8, 231, 129, 76, 156, 93, 170, 35, 148, 133, 141,\n\t\t116, 22, 249, 160, 137, 119, 93, 19, 87, 128, 223, 34, 127,\n\t\t70, 118, 178, 174, 117, 9, 159, 208, 200, 129, 72, 225, 21,\n\t\t198, 80, 144, 45, 21, 143, 214, 38, 222, 34, 245, 151, 36,\n\t\t162, 6, 77, 9, 88, 115, 225, 41, 4, 31, 2, 89, 224, 205, 132,\n\t\t182, 99, 168, 107, 6, 111, 137, 207, 157, 94, 90, 148, 67,\n\t\t60, 101, 253, 6, 6, 254, 16, 86, 1, 174, 235, 142, 202, 43,\n\t\t49, 84, 27, 247, 81, 161, 1, 43, 142, 8, 253, 67, 184, 77,\n\t\t36, 31, 196, 85, 202, 110, 106, 240, 234, 218, 203, 160, 70,\n\t\t253, 87, 35, 106, 52, 176, 107, 110, 247, 31, 102, 38, 129,\n\t\t59, 146, 178, 111, 91, 216, 136, 54, 6, 147, 182, 189, 182,\n\t\t177, 253, 214, 226, 210, 9, 83, 7, 66, 153, 184, 142, 199,\n\t\t254, 164, 177, 72, 152, 241, 17, 156, 129, 243, 228, 211,\n\t\t4, 113, 155, 101, 240, 6, 27, 239, 238, 189, 224, 16, 159,\n\t\t57, 102, 173, 179, 158, 253, 96, 196, 198, 240, 115, 210,\n\t\t66, 255, 19, 16, 188, 207, 14, 112, 155, 74, 175, 22, 93,\n\t\t5, 126, 235, 250, 75, 113, 36, 65, 182, 112, 105, 230, 43,\n\t\t57, 12, 224, 228, 0, 0, 0, 1, 0, 0, 255, 255, 80, 75, 7, 8,\n\t\t140, 117, 150, 125, 168, 86, 1, 0, 136, 86, 1, 0, 80, 75,\n\t\t3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 28, 0, 9, 0, 119, 101, 98, 102, 111,\n\t\t110, 116, 115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115,\n\t\t45, 52, 48, 48, 46, 119, 111, 102, 102, 50, 85, 84, 5, 0,\n\t\t1, 127, 106, 41, 96, 0, 21, 64, 234, 191, 119, 79, 70, 50,\n\t\t0, 1, 0, 0, 0, 1, 36, 16, 0, 13, 0, 0, 0, 1, 250, 76, 0, 1,\n\t\t35, 182, 1, 73, 186, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 70, 70, 84, 77, 28, 26, 30,\n\t\t6, 96, 0, 138, 122, 17, 8, 10, 135, 158, 64, 133, 212, 99,\n\t\t1, 54, 2, 36, 3, 141, 46, 11, 134, 92, 0, 4, 32, 5, 138, 127,\n\t\t7, 168, 5, 91, 42, 145, 113, 167, 234, 34, 236, 10, 242, 204,\n\t\t173, 110, 34, 2, 176, 211, 119, 169, 154, 24, 251, 71, 152,\n\t\t137, 208, 237, 0, 165, 66, 139, 9, 5, 236, 88, 27, 224, 60,\n\t\t128, 82, 144, 253, 221, 217, 255, 255, 255, 255, 142, 4, 255,\n\t\t33, 114, 254, 187, 182, 239, 146, 36, 85, 173, 2, 27, 6, 179,\n\t\t137, 8, 147, 148, 139, 50, 170, 145, 170, 154, 198, 141, 198,\n\t\t92, 67, 101, 82, 43, 166, 108, 219, 60, 21, 45, 147, 74, 201,\n\t\t164, 109, 219, 40, 239, 252, 230, 54, 187, 238, 53, 173, 58,\n\t\t56, 97, 112, 48, 56, 116, 57, 158, 246, 90, 200, 206, 98,\n\t\t207, 93, 206, 135, 82, 87, 173, 186, 12, 247, 171, 170, 212,\n\t\t106, 114, 247, 111, 159, 222, 142, 211, 18, 67, 157, 253,\n\t\t184, 122, 183, 112, 239, 104, 198, 92, 132, 153, 205, 94,\n\t\t97, 102, 7, 91, 237, 214, 111, 51, 206, 207, 227, 78, 88,\n\t\t20, 92, 236, 51, 80, 178, 161, 32, 108, 216, 241, 213, 115,\n\t\t118, 153, 195, 9, 220, 37, 194, 188, 58, 211, 207, 244, 166,\n\t\t56, 132, 16, 28, 176, 73, 32, 132, 7, 6, 4, 46, 194, 230,\n\t\t115, 218, 162, 252, 162, 166, 112, 114, 40, 64, 208, 232,\n\t\t43, 232, 2, 78, 161, 165, 0, 147, 109, 8, 31, 97, 193, 128,\n\t\t193, 6, 6, 7, 39, 12, 17, 104, 215, 101, 179, 71, 147, 125,\n\t\t28, 171, 151, 148, 189, 95, 225, 198, 0, 110, 222, 103, 189,\n\t\t174, 249, 207, 126, 252, 58, 204, 119, 191, 244, 247, 223,\n\t\t188, 88, 99, 28, 205, 84, 139, 143, 79, 127, 244, 240, 167,\n\t\t197, 57, 61, 221, 196, 80, 86, 216, 148, 225, 94, 162, 209,\n\t\t209, 243, 55, 11, 21, 238, 253, 205, 94, 242, 74, 203, 47,\n\t\t53, 191, 17, 161, 40, 10, 137, 172, 205, 105, 132, 198, 72,\n\t\t164, 194, 40, 28, 216, 80, 33, 11, 55, 251, 255, 109, 170,\n\t\t43, 170, 4, 241, 40, 129, 55, 16, 60, 22, 129, 245, 232, 27,\n\t\t162, 181, 53, 123, 81, 1, 151, 84, 221, 17, 125, 13, 71, 94,\n\t\t144, 121, 180, 68, 26, 72, 43, 152, 132, 133, 9, 218, 88,\n\t\t88, 141, 24, 157, 111, 245, 151, 14, 79, 211, 249, 239, 221,\n\t\t121, 244, 46, 218, 164, 105, 155, 120, 155, 10, 177, 138,\n\t\t65, 180, 162, 169, 43, 84, 128, 138, 33, 27, 21, 160, 45,\n\t\t166, 195, 229, 3, 101, 204, 128, 207, 128, 137, 1, 67, 116,\n\t\t138, 206, 152, 192, 68, 97, 131, 255, 255, 191, 55, 207, 61,\n\t\t83, 113, 38, 33, 11, 14, 189, 96, 186, 104, 176, 251, 37,\n\t\t12, 85, 139, 5, 223, 242, 52, 139, 254, 80, 169, 23, 108,\n\t\t223, 231, 95, 206, 134, 42, 170, 116, 42, 229, 127, 23, 161,\n\t\t78, 9, 106, 143, 42, 47, 48, 39, 194, 235, 83, 130, 250, 41,\n\t\t87, 250, 73, 241, 77, 138, 111, 106, 105, 60, 182, 131, 3,\n\t\t230, 0, 146, 29, 11, 108, 231, 179, 255, 255, 185, 92, 171,\n\t\t246, 88, 181, 203, 15, 4, 61, 211, 6, 65, 195, 64, 38, 110,\n\t\t24, 244, 4, 108, 78, 184, 97, 1, 79, 235, 127, 78, 85, 65,\n\t\t236, 177, 88, 73, 43, 119, 121, 178, 206, 227, 185, 0, 226,\n\t\t161, 229, 245, 181, 178, 0, 71, 29, 216, 182, 189, 201, 106,\n\t\t237, 120, 120, 124, 253, 25, 143, 25, 48, 112, 217, 88, 243,\n\t\t60, 161, 2, 137, 110, 173, 249, 99, 109, 106, 116, 128, 0,\n\t\t192, 127, 40, 65, 54, 145, 118, 246, 105, 216, 76, 233, 93,\n\t\t146, 7, 183, 96, 110, 27, 161, 38, 114, 154, 2, 255, 136,\n\t\t91, 155, 250, 237, 219, 210, 255, 63, 231, 6, 204, 148, 180,\n\t\t125, 127, 154, 22, 59, 255, 97, 222, 109, 133, 45, 64, 197,\n\t\t72, 126, 146, 72, 67, 109, 76, 193, 198, 169, 227, 143, 3,\n\t\t234, 25, 137, 42, 20, 36, 214, 143, 7, 251, 218, 107, 169,\n\t\t87, 203, 222, 172, 140, 164, 175, 203, 1, 32, 243, 152, 20,\n\t\t46, 160, 203, 197, 13, 200, 111, 218, 77, 103, 230, 157, 190,\n\t\t238, 242, 106, 181, 206, 25, 165, 226, 27, 28, 144, 1, 242,\n\t\t189, 107, 245, 255, 111, 38, 213, 73, 37, 169, 36, 149, 6,\n\t\t154, 30, 160, 157, 157, 189, 8, 236, 62, 177, 66, 176, 100,\n\t\t44, 29, 143, 66, 125, 33, 209, 61, 249, 213, 59, 151, 64,\n\t\t77, 213, 58, 82, 211, 51, 5, 82, 247, 241, 107, 58, 40, 36,\n\t\t116, 195, 2, 195, 254, 88, 24, 156, 23, 242, 136, 131, 64,\n\t\t144, 177, 49, 42, 244, 63, 229, 210, 190, 122, 215, 170, 61,\n\t\t62, 104, 248, 159, 27, 2, 159, 120, 1, 168, 213, 74, 226,\n\t\t165, 164, 119, 54, 199, 165, 195, 69, 186, 74, 215, 2, 73,\n\t\t109, 24, 80, 75, 13, 134, 1, 199, 118, 236, 192, 135, 65,\n\t\t8, 44, 2, 252, 247, 63, 247, 254, 233, 149, 55, 149, 12, 66,\n\t\t119, 213, 2, 202, 135, 198, 85, 216, 61, 54, 177, 51, 129,\n\t\t226, 7, 64, 227, 11, 71, 254, 52, 127, 70, 250, 56, 35, 119,\n\t\t2, 31, 177, 100, 29, 48, 250, 118, 118, 4, 141, 101, 37, 81,\n\t\t121, 191, 40, 119, 219, 221, 246, 129, 100, 37, 108, 8, 129,\n\t\t243, 25, 171, 128, 236, 15, 124, 255, 151, 166, 126, 95, 53,\n\t\t179, 171, 250, 203, 91, 85, 29, 24, 100, 11, 104, 116, 80,\n\t\t176, 158, 40, 82, 84, 176, 28, 148, 159, 157, 17, 108, 115,\n\t\t99, 153, 103, 70, 63, 79, 90, 108, 26, 219, 198, 249, 187,\n\t\t10, 29, 24, 28, 58, 147, 18, 109, 137, 20, 197, 236, 44, 91,\n\t\t33, 2, 141, 9, 187, 153, 179, 255, 243, 218, 180, 79, 122,\n\t\t215, 73, 237, 120, 198, 128, 107, 192, 36, 11, 142, 33, 4,\n\t\t166, 5, 18, 36, 235, 38, 206, 252, 125, 62, 130, 162, 25,\n\t\t183, 158, 43, 23, 17, 4, 135, 240, 243, 252, 116, 254, 145,\n\t\t123, 159, 37, 77, 158, 196, 106, 240, 146, 212, 240, 164,\n\t\t138, 110, 177, 10, 182, 166, 138, 88, 29, 152, 253, 22, 124,\n\t\t138, 77, 188, 51, 71, 39, 10, 83, 24, 76, 216, 62, 19, 69,\n\t\t198, 23, 81, 38, 202, 151, 6, 160, 123, 67, 27, 1, 131, 231,\n\t\t200, 38, 228, 81, 245, 12, 129, 249, 215, 153, 174, 118, 208,\n\t\t97, 167, 140, 151, 2, 191, 61, 99, 199, 44, 83, 95, 231, 78,\n\t\t250, 246, 229, 42, 217, 71, 242, 133, 124, 23, 176, 239, 2,\n\t\t182, 47, 96, 157, 3, 118, 129, 121, 36, 152, 250, 58, 125,\n\t\t201, 1, 57, 168, 111, 231, 82, 41, 248, 21, 148, 125, 5, 41,\n\t\t40, 21, 105, 74, 50, 21, 128, 199, 116, 236, 176, 116, 28,\n\t\t165, 178, 83, 94, 215, 174, 19, 109, 101, 168, 230, 66, 29,\n\t\t42, 172, 41, 219, 229, 225, 24, 150, 211, 37, 132, 234, 18,\n\t\t94, 85, 70, 245, 231, 85, 181, 106, 73, 123, 130, 188, 151,\n\t\t236, 185, 148, 236, 139, 218, 139, 46, 202, 77, 69, 183, 69,\n\t\t121, 77, 131, 247, 255, 39, 197, 255, 63, 32, 9, 0, 41, 11,\n\t\t0, 169, 17, 8, 202, 35, 144, 146, 71, 0, 40, 141, 64, 200,\n\t\t51, 148, 102, 118, 87, 150, 55, 120, 179, 47, 111, 136, 129,\n\t\t0, 36, 91, 36, 229, 89, 129, 244, 120, 76, 217, 27, 36, 123,\n\t\t83, 46, 154, 80, 93, 8, 185, 40, 183, 169, 174, 40, 154, 107,\n\t\t155, 131, 135, 254, 84, 77, 54, 209, 35, 138, 218, 90, 231,\n\t\t185, 0, 229, 62, 197, 150, 165, 107, 99, 65, 42, 158, 11,\n\t\t149, 107, 213, 162, 149, 107, 16, 196, 2, 22, 184, 240, 230,\n\t\t62, 180, 121, 67, 251, 215, 83, 109, 3, 108, 54, 73, 79, 202,\n\t\t155, 95, 111, 99, 210, 118, 175, 99, 120, 164, 87, 120, 164,\n\t\t65, 130, 136, 184, 34, 34, 249, 248, 220, 227, 26, 228, 180,\n\t\t36, 180, 189, 219, 34, 34, 84, 130, 32, 71, 140, 94, 189,\n\t\t238, 253, 123, 242, 231, 234, 13, 77, 247, 170, 123, 104,\n\t\t39, 2, 66, 36, 161, 212, 132, 132, 20, 65, 157, 247, 251,\n\t\t134, 216, 86, 61, 130, 209, 176, 136, 9, 200, 80, 105, 80,\n\t\t33, 51, 3, 162, 254, 237, 15, 103, 255, 246, 77, 123, 186,\n\t\t19, 155, 123, 13, 72, 32, 129, 64, 183, 164, 128, 4, 126,\n\t\t254, 192, 151, 182, 246, 70, 79, 229, 213, 15, 51, 233, 133,\n\t\t165, 0, 166, 116, 70, 63, 211, 213, 213, 7, 62, 46, 83, 43,\n\t\t68, 187, 217, 192, 101, 25, 237, 31, 133, 58, 133, 233, 54,\n\t\t130, 207, 157, 104, 161, 126, 79, 205, 190, 70, 240, 89, 224,\n\t\t222, 26, 27, 239, 56, 246, 188, 13, 74, 216, 159, 86, 117,\n\t\t128, 84, 75, 220, 89, 188, 27, 215, 248, 51, 238, 193, 84,\n\t\t119, 66, 140, 99, 160, 181, 64, 165, 103, 13, 199, 36, 101,\n\t\t247, 223, 155, 117, 49, 146, 148, 43, 180, 6, 179, 215, 31,\n\t\t130, 165, 48, 216, 60, 149, 169, 141, 151, 87, 159, 254, 72,\n\t\t246, 157, 53, 26, 79, 137, 15, 254, 132, 17, 67, 22, 101,\n\t\t76, 160, 138, 169, 180, 67, 161, 96, 146, 209, 97, 196, 140,\n\t\t11, 119, 121, 200, 99, 51, 172, 183, 217, 86, 81, 9, 121,\n\t\t117, 45, 125, 19, 7, 174, 221, 121, 220, 211, 158, 247, 178,\n\t\t247, 125, 228, 115, 223, 249, 81, 221, 81, 119, 158, 235,\n\t\t186, 92, 77, 75, 90, 222, 21, 91, 150, 74, 174, 212, 186,\n\t\t81, 47, 234, 239, 126, 236, 254, 246, 58, 238, 162, 7, 61,\n\t\t238, 77, 95, 250, 124, 95, 234, 207, 157, 222, 207, 205, 164,\n\t\t19, 62, 154, 89, 54, 221, 121, 204, 249, 185, 31, 68, 246,\n\t\t36, 51, 77, 153, 156, 174, 144, 97, 35, 198, 76, 63, 195,\n\t\t172, 114, 201, 181, 220, 204, 147, 60, 219, 134, 110, 85,\n\t\t23, 54, 193, 142, 181, 205, 205, 143, 61, 152, 173, 103, 153,\n\t\t74, 111, 114, 248, 29, 141, 73, 187, 133, 30, 24, 89, 121,\n\t\t120, 241, 238, 87, 121, 141, 21, 136, 131, 241, 62, 218, 7,\n\t\t17, 221, 62, 135, 138, 84, 83, 104, 5, 65, 70, 35, 165, 164,\n\t\t119, 108, 121, 226, 6, 15, 58, 44, 182, 201, 22, 59, 216,\n\t\t105, 69, 77, 93, 67, 51, 71, 199, 230, 199, 60, 233, 89, 251,\n\t\t213, 205, 159, 248, 210, 15, 246, 222, 124, 85, 170, 98, 199,\n\t\t242, 189, 226, 121, 189, 106, 92, 211, 123, 227, 221, 77,\n\t\t39, 109, 46, 68, 79, 183, 233, 210, 254, 200, 169, 220, 134,\n\t\t127, 231, 188, 185, 215, 249, 255, 190, 30, 233, 153, 139,\n\t\t3, 85, 171, 81, 171, 100, 82, 49, 159, 73, 163, 146, 73, 72,\n\t\t168, 111, 141, 138, 21, 42, 144, 34, 129, 153, 137, 31, 27,\n\t\t11, 61, 49, 17, 22, 3, 15, 62, 56, 144, 46, 99, 123, 239,\n\t\t157, 191, 60, 116, 217, 69, 23, 88, 164, 242, 241, 114, 115,\n\t\t154, 44, 89, 146, 4, 241, 226, 196, 138, 102, 103, 99, 21,\n\t\t37, 82, 56, 179, 48, 161, 12, 244, 212, 130, 168, 40, 4, 144,\n\t\t239, 217, 146, 5, 243, 87, 95, 235, 90, 86, 214, 103, 93,\n\t\t233, 66, 103, 26, 235, 240, 164, 91, 21, 56, 4, 124, 214,\n\t\t218, 228, 90, 146, 244, 253, 215, 43, 79, 47, 6, 255, 216,\n\t\t117, 118, 102, 178, 245, 173, 154, 220, 251, 247, 235, 222,\n\t\t174, 81, 131, 90, 173, 251, 170, 60, 79, 159, 40, 75, 159,\n\t\t127, 204, 238, 190, 41, 61, 59, 108, 185, 67, 191, 248, 201,\n\t\t167, 244, 108, 168, 158, 172, 126, 224, 252, 224, 113, 217,\n\t\t190, 79, 219, 239, 251, 177, 231, 251, 87, 73, 117, 188, 61,\n\t\t211, 84, 20, 227, 114, 6, 66, 42, 99, 117, 122, 181, 67, 83,\n\t\t155, 6, 186, 171, 188, 91, 75, 159, 169, 210, 55, 252, 111,\n\t\t98, 104, 117, 22, 117, 1, 31, 118, 53, 228, 7, 122, 219, 169,\n\t\t184, 56, 85, 222, 83, 191, 51, 9, 109, 146, 202, 112, 190,\n\t\t200, 151, 181, 88, 9, 4, 239, 184, 226, 61, 255, 139, 151,\n\t\t200, 205, 31, 65, 66, 21, 49, 195, 82, 162, 59, 95, 225, 98,\n\t\t230, 148, 7, 171, 37, 238, 58, 73, 87, 154, 186, 254, 52,\n\t\t167, 209, 45, 118, 154, 73, 87, 96, 149, 179, 57, 176, 132,\n\t\t126, 157, 189, 211, 164, 174, 206, 84, 235, 10, 31, 182, 52,\n\t\t179, 212, 146, 114, 54, 75, 58, 146, 225, 69, 82, 162, 107,\n\t\t172, 241, 115, 109, 105, 119, 42, 222, 121, 186, 179, 54,\n\t\t148, 124, 242, 5, 227, 81, 115, 235, 32, 196, 89, 177, 21,\n\t\t232, 105, 241, 136, 240, 23, 91, 152, 195, 132, 241, 102,\n\t\t234, 235, 176, 203, 33, 96, 148, 186, 62, 112, 179, 123, 94,\n\t\t243, 238, 91, 164, 85, 152, 4, 66, 105, 120, 217, 70, 151,\n\t\t252, 24, 9, 19, 136, 213, 132, 101, 250, 146, 225, 153, 250,\n\t\t153, 118, 108, 170, 83, 117, 150, 149, 30, 91, 134, 238, 30,\n\t\t61, 169, 120, 79, 19, 116, 243, 48, 200, 17, 170, 209, 118,\n\t\t235, 240, 96, 156, 15, 148, 226, 16, 208, 158, 51, 74, 200,\n\t\t71, 36, 237, 6, 64, 246, 178, 147, 87, 104, 108, 223, 224,\n\t\t4, 27, 190, 148, 160, 84, 74, 226, 158, 13, 84, 242, 14, 146,\n\t\t86, 148, 186, 118, 143, 85, 100, 161, 64, 141, 93, 55, 152,\n\t\t39, 145, 119, 101, 217, 82, 196, 140, 99, 68, 40, 23, 176,\n\t\t99, 202, 238, 48, 35, 10, 84, 53, 108, 241, 230, 68, 131,\n\t\t150, 37, 87, 87, 154, 2, 249, 187, 153, 168, 238, 46, 142,\n\t\t149, 104, 52, 18, 202, 238, 112, 181, 206, 98, 138, 249, 77,\n\t\t223, 24, 79, 6, 141, 177, 247, 28, 128, 225, 165, 38, 237,\n\t\t1, 47, 201, 45, 52, 136, 169, 30, 14, 53, 110, 243, 84, 35,\n\t\t37, 222, 134, 163, 60, 78, 55, 188, 132, 18, 5, 24, 195, 129,\n\t\t21, 237, 132, 175, 0, 184, 134, 211, 182, 233, 58, 3, 82,\n\t\t10, 202, 202, 243, 49, 80, 49, 139, 136, 188, 66, 139, 105,\n\t\t129, 141, 82, 27, 178, 38, 45, 108, 70, 100, 183, 167, 0,\n\t\t2, 112, 244, 114, 121, 240, 185, 99, 71, 0, 49, 172, 217,\n\t\t156, 23, 104, 26, 212, 142, 16, 122, 28, 135, 251, 10, 99,\n\t\t124, 36, 196, 67, 181, 65, 128, 239, 75, 68, 204, 124, 109,\n\t\t173, 244, 154, 29, 140, 45, 72, 144, 83, 207, 36, 215, 62,\n\t\t143, 206, 26, 179, 53, 56, 33, 167, 56, 146, 194, 88, 27,\n\t\t64, 147, 171, 92, 11, 69, 189, 84, 229, 226, 15, 117, 77,\n\t\t182, 55, 23, 96, 140, 230, 162, 106, 201, 142, 51, 72, 60,\n\t\t100, 3, 16, 202, 39, 92, 58, 10, 166, 77, 212, 238, 184, 20,\n\t\t172, 174, 137, 196, 41, 145, 8, 72, 52, 40, 153, 136, 68,\n\t\t161, 20, 137, 241, 108, 204, 125, 30, 170, 98, 200, 28, 25,\n\t\t252, 18, 39, 228, 84, 73, 18, 20, 4, 3, 196, 167, 103, 152,\n\t\t221, 172, 4, 44, 129, 126, 109, 141, 54, 141, 145, 172, 117,\n\t\t102, 25, 99, 154, 145, 114, 158, 200, 34, 78, 177, 99, 98,\n\t\t68, 141, 60, 200, 10, 148, 134, 67, 81, 4, 42, 10, 227, 88,\n\t\t236, 8, 83, 68, 103, 113, 205, 23, 100, 92, 134, 225, 141,\n\t\t32, 227, 117, 233, 173, 49, 255, 77, 106, 63, 211, 104, 138,\n\t\t209, 181, 66, 212, 237, 212, 117, 105, 86, 160, 96, 157, 133,\n\t\t109, 193, 59, 177, 212, 190, 2, 136, 246, 148, 232, 41, 162,\n\t\t201, 23, 33, 116, 99, 33, 10, 34, 33, 212, 96, 197, 202, 17,\n\t\t32, 112, 252, 129, 4, 4, 180, 53, 66, 174, 94, 105, 136, 237,\n\t\t5, 239, 41, 240, 205, 231, 185, 198, 54, 189, 75, 114, 100,\n\t\t102, 242, 129, 181, 55, 109, 26, 60, 209, 56, 224, 136, 120,\n\t\t231, 57, 208, 204, 66, 3, 194, 160, 29, 94, 111, 248, 88,\n\t\t34, 16, 98, 134, 248, 181, 39, 12, 193, 71, 246, 102, 71,\n\t\t162, 221, 58, 174, 150, 153, 67, 13, 22, 32, 65, 212, 70,\n\t\t59, 165, 39, 23, 205, 78, 230, 45, 27, 7, 213, 140, 247, 86,\n\t\t11, 42, 49, 162, 137, 105, 196, 253, 101, 10, 123, 131, 6,\n\t\t113, 90, 23, 162, 213, 5, 18, 235, 182, 152, 217, 130, 114,\n\t\t215, 153, 106, 55, 74, 175, 125, 143, 167, 123, 221, 230,\n\t\t137, 130, 57, 143, 120, 56, 43, 124, 109, 70, 173, 214, 88,\n\t\t87, 99, 12, 227, 217, 106, 112, 14, 11, 228, 6, 153, 58, 64,\n\t\t180, 229, 214, 46, 118, 20, 134, 229, 212, 54, 139, 36, 31,\n\t\t236, 186, 182, 183, 238, 231, 50, 82, 74, 204, 77, 178, 149,\n\t\t0, 12, 18, 143, 124, 216, 58, 145, 130, 230, 105, 109, 164,\n\t\t221, 2, 131, 82, 218, 73, 100, 172, 60, 89, 252, 89, 204,\n\t\t2, 136, 61, 46, 163, 36, 35, 113, 43, 11, 68, 31, 147, 179,\n\t\t145, 205, 231, 109, 61, 4, 70, 222, 190, 39, 0, 128, 80, 74,\n\t\t108, 91, 173, 212, 76, 249, 95, 167, 206, 206, 207, 145, 84,\n\t\t194, 25, 239, 255, 146, 59, 238, 113, 252, 234, 50, 214, 226,\n\t\t78, 166, 147, 55, 42, 230, 98, 206, 67, 19, 68, 50, 74, 147,\n\t\t198, 184, 118, 213, 104, 21, 169, 234, 134, 224, 54, 56, 114,\n\t\t52, 101, 89, 147, 235, 241, 124, 178, 47, 101, 215, 82, 236,\n\t\t184, 52, 211, 145, 49, 251, 16, 247, 46, 67, 240, 11, 48,\n\t\t159, 208, 33, 106, 171, 93, 72, 162, 169, 98, 65, 199, 119,\n\t\t1, 162, 36, 115, 204, 232, 195, 1, 53, 20, 99, 4, 8, 165,\n\t\t201, 96, 102, 215, 71, 45, 100, 156, 13, 95, 161, 120, 73,\n\t\t141, 155, 122, 208, 180, 121, 29, 179, 84, 74, 155, 12, 236,\n\t\t44, 48, 5, 241, 38, 139, 198, 202, 108, 214, 137, 69, 101,\n\t\t79, 27, 243, 49, 95, 68, 216, 14, 218, 121, 188, 9, 113, 53,\n\t\t25, 97, 147, 82, 239, 159, 251, 56, 204, 60, 41, 143, 185,\n\t\t28, 161, 43, 185, 33, 0, 148, 114, 186, 40, 180, 161, 82,\n\t\t34, 236, 236, 150, 230, 107, 136, 36, 181, 62, 141, 73, 229,\n\t\t254, 149, 245, 110, 7, 207, 119, 172, 183, 226, 94, 14, 187,\n\t\t237, 101, 148, 184, 205, 228, 117, 201, 14, 53, 110, 18, 54,\n\t\t54, 149, 134, 113, 72, 109, 26, 43, 101, 202, 152, 118, 254,\n\t\t248, 210, 66, 42, 23, 77, 186, 145, 230, 125, 177, 115, 125,\n\t\t194, 35, 86, 136, 210, 135, 128, 156, 185, 162, 0, 96, 107,\n\t\t181, 119, 51, 79, 122, 255, 226, 204, 160, 146, 66, 42, 37,\n\t\t36, 96, 145, 127, 93, 254, 75, 83, 73, 187, 234, 100, 51,\n\t\t115, 106, 129, 247, 17, 165, 76, 13, 140, 115, 21, 44, 204,\n\t\t75, 191, 107, 71, 121, 174, 181, 29, 201, 74, 62, 122, 102,\n\t\t119, 248, 26, 128, 149, 154, 1, 100, 42, 120, 2, 72, 139,\n\t\t237, 25, 33, 198, 50, 174, 138, 116, 212, 199, 25, 233, 152,\n\t\t179, 162, 76, 27, 79, 124, 57, 72, 114, 52, 106, 194, 188,\n\t\t223, 82, 9, 5, 57, 0, 236, 114, 114, 210, 144, 34, 151, 43,\n\t\t0, 114, 139, 97, 123, 70, 93, 18, 208, 29, 178, 82, 89, 227,\n\t\t81, 164, 60, 65, 123, 137, 210, 201, 22, 28, 216, 158, 143,\n\t\t51, 9, 71, 230, 38, 20, 135, 9, 245, 224, 121, 64, 112, 34,\n\t\t74, 110, 162, 4, 193, 65, 93, 175, 249, 244, 22, 95, 253,\n\t\t56, 47, 170, 138, 244, 187, 247, 35, 207, 125, 68, 143, 31,\n\t\t62, 125, 164, 77, 206, 100, 253, 222, 27, 24, 135, 30, 115,\n\t\t243, 155, 68, 218, 43, 109, 233, 139, 173, 197, 12, 38, 43,\n\t\t0, 200, 78, 236, 200, 151, 63, 235, 171, 96, 36, 182, 104,\n\t\t131, 181, 163, 121, 83, 166, 192, 99, 71, 123, 29, 203, 93,\n\t\t203, 108, 115, 208, 97, 153, 30, 27, 49, 41, 175, 165, 2,\n\t\t165, 142, 58, 218, 119, 80, 127, 216, 197, 253, 209, 181,\n\t\t201, 34, 213, 169, 55, 139, 114, 250, 229, 58, 248, 135, 215,\n\t\t220, 93, 87, 78, 79, 116, 211, 63, 184, 76, 17, 204, 147,\n\t\t253, 21, 37, 213, 101, 40, 7, 92, 120, 175, 92, 199, 217,\n\t\t210, 176, 73, 53, 140, 54, 0, 18, 59, 111, 50, 85, 234, 189,\n\t\t70, 173, 235, 221, 235, 205, 172, 182, 227, 193, 32, 206,\n\t\t190, 152, 200, 202, 162, 230, 148, 52, 102, 220, 85, 88, 136,\n\t\t124, 72, 88, 97, 68, 115, 97, 32, 126, 87, 113, 204, 220,\n\t\t8, 145, 40, 45, 92, 118, 26, 0, 155, 2, 80, 15, 248, 28, 139,\n\t\t57, 0, 1, 48, 36, 207, 81, 106, 215, 1, 80, 100, 34, 14, 153,\n\t\t184, 76, 64, 74, 246, 247, 195, 114, 136, 140, 112, 154, 82,\n\t\t100, 187, 63, 133, 243, 225, 243, 136, 87, 233, 146, 50, 132,\n\t\t142, 200, 100, 207, 15, 203, 138, 185, 35, 103, 2, 144, 219,\n\t\t207, 81, 4, 68, 47, 30, 107, 104, 114, 235, 234, 174, 205,\n\t\t238, 226, 49, 179, 217, 158, 110, 145, 133, 197, 162, 238,\n\t\t57, 199, 77, 89, 250, 76, 90, 28, 188, 52, 91, 227, 61, 30,\n\t\t200, 108, 159, 79, 105, 180, 222, 73, 109, 55, 134, 105, 139,\n\t\t223, 94, 133, 72, 153, 5, 78, 253, 0, 166, 112, 51, 26, 168,\n\t\t228, 250, 122, 61, 12, 97, 205, 175, 152, 107, 43, 249, 220,\n\t\t194, 162, 218, 132, 187, 159, 30, 111, 1, 68, 163, 36, 226,\n\t\t134, 184, 53, 4, 158, 108, 153, 239, 8, 249, 174, 163, 84,\n\t\t67, 220, 252, 18, 187, 35, 43, 161, 55, 193, 36, 92, 150,\n\t\t31, 86, 41, 3, 3, 229, 117, 158, 253, 56, 80, 142, 124, 153,\n\t\t145, 96, 221, 61, 159, 174, 179, 101, 242, 140, 233, 151,\n\t\t170, 19, 205, 251, 104, 9, 238, 111, 70, 223, 50, 82, 165,\n\t\t83, 202, 64, 253, 165, 176, 248, 17, 98, 12, 72, 154, 8, 172,\n\t\t9, 89, 102, 222, 115, 202, 165, 227, 104, 97, 45, 135, 69,\n\t\t41, 145, 21, 32, 159, 230, 185, 67, 181, 94, 52, 100, 211,\n\t\t82, 146, 105, 33, 234, 117, 61, 64, 68, 53, 210, 70, 59, 118,\n\t\t153, 0, 73, 136, 160, 210, 150, 201, 144, 107, 52, 2, 67,\n\t\t206, 156, 210, 202, 27, 148, 12, 255, 169, 85, 184, 234, 208,\n\t\t155, 25, 114, 177, 66, 16, 125, 164, 250, 80, 61, 245, 59,\n\t\t126, 81, 110, 31, 130, 45, 217, 155, 197, 76, 127, 45, 231,\n\t\t137, 176, 87, 88, 71, 7, 149, 250, 233, 202, 105, 14, 143,\n\t\t167, 77, 166, 117, 218, 36, 80, 177, 32, 25, 131, 198, 122,\n\t\t32, 4, 224, 207, 68, 196, 214, 91, 58, 145, 37, 201, 4, 148,\n\t\t229, 194, 56, 10, 85, 239, 116, 179, 55, 144, 95, 66, 206,\n\t\t38, 104, 29, 157, 110, 109, 64, 221, 19, 172, 103, 155, 136,\n\t\t197, 213, 157, 197, 16, 50, 208, 110, 122, 212, 101, 183,\n\t\t102, 99, 131, 106, 170, 179, 200, 197, 171, 46, 42, 36, 143,\n\t\t21, 68, 186, 160, 184, 64, 156, 222, 121, 254, 112, 78, 211,\n\t\t255, 239, 192, 111, 147, 30, 50, 189, 154, 127, 88, 117, 140,\n\t\t90, 118, 193, 15, 67, 20, 220, 138, 204, 219, 153, 29, 88,\n\t\t47, 0, 223, 15, 118, 167, 97, 159, 151, 231, 0, 237, 53, 87,\n\t\t21, 106, 235, 81, 211, 177, 55, 30, 207, 69, 116, 169, 32,\n\t\t131, 231, 220, 103, 238, 157, 242, 41, 190, 178, 10, 101,\n\t\t6, 128, 143, 106, 245, 175, 139, 194, 22, 229, 127, 196, 12,\n\t\t19, 18, 95, 65, 112, 203, 224, 164, 143, 0, 216, 82, 7, 241,\n\t\t236, 232, 144, 240, 185, 243, 213, 54, 9, 169, 123, 77, 198,\n\t\t254, 168, 251, 116, 196, 81, 201, 229, 143, 79, 38, 133, 255,\n\t\t113, 5, 144, 96, 189, 10, 88, 102, 143, 83, 80, 74, 25, 194,\n\t\t200, 76, 69, 190, 24, 134, 68, 53, 117, 74, 234, 112, 63,\n\t\t99, 161, 111, 86, 77, 211, 168, 162, 195, 129, 199, 59, 70,\n\t\t91, 7, 59, 234, 201, 185, 144, 91, 170, 74, 188, 150, 223,\n\t\t20, 71, 226, 254, 113, 253, 234, 9, 196, 218, 235, 167, 110,\n\t\t53, 107, 94, 193, 184, 0, 194, 242, 250, 183, 236, 128, 234,\n\t\t84, 231, 1, 206, 59, 50, 179, 227, 202, 125, 205, 169, 188,\n\t\t54, 234, 15, 252, 222, 184, 181, 186, 115, 199, 164, 184,\n\t\t121, 113, 244, 196, 189, 152, 236, 103, 135, 233, 204, 210,\n\t\t188, 169, 189, 69, 93, 127, 48, 59, 21, 207, 239, 28, 218,\n\t\t179, 183, 101, 236, 96, 27, 9, 120, 251, 245, 203, 91, 73,\n\t\t32, 172, 74, 59, 7, 17, 45, 148, 55, 75, 160, 37, 157, 218,\n\t\t69, 92, 127, 66, 46, 196, 196, 32, 12, 100, 151, 236, 100,\n\t\t164, 75, 19, 196, 164, 238, 64, 17, 155, 88, 166, 13, 43,\n\t\t116, 149, 91, 82, 235, 85, 73, 23, 125, 35, 118, 66, 30, 218,\n\t\t80, 208, 180, 92, 131, 230, 235, 73, 232, 73, 218, 212, 73,\n\t\t91, 253, 94, 186, 184, 83, 42, 49, 22, 247, 7, 121, 92, 164,\n\t\t137, 54, 253, 137, 116, 228, 55, 229, 100, 182, 50, 174, 210,\n\t\t114, 189, 246, 80, 12, 254, 34, 178, 234, 93, 32, 30, 180,\n\t\t68, 126, 102, 76, 138, 236, 188, 43, 169, 229, 226, 161, 185,\n\t\t251, 148, 187, 231, 81, 189, 214, 89, 76, 172, 199, 53, 241,\n\t\t32, 233, 49, 87, 42, 115, 35, 15, 216, 48, 52, 2, 133, 234,\n\t\t48, 28, 222, 52, 210, 60, 193, 118, 65, 197, 224, 145, 10,\n\t\t188, 188, 191, 217, 159, 12, 138, 126, 197, 99, 242, 120,\n\t\t224, 125, 251, 63, 7, 66, 65, 134, 146, 63, 232, 63, 92, 233,\n\t\t136, 190, 234, 73, 247, 113, 250, 32, 187, 151, 60, 117, 118,\n\t\t100, 62, 13, 121, 148, 84, 59, 23, 226, 185, 54, 239, 245,\n\t\t198, 4, 53, 43, 232, 194, 254, 229, 11, 187, 87, 170, 104,\n\t\t120, 93, 46, 112, 107, 47, 221, 218, 187, 21, 167, 133, 81,\n\t\t52, 157, 101, 154, 180, 60, 174, 49, 207, 64, 125, 59, 73,\n\t\t20, 149, 42, 91, 80, 98, 99, 231, 78, 158, 27, 213, 43, 60,\n\t\t109, 165, 106, 136, 244, 119, 113, 217, 98, 173, 173, 128,\n\t\t158, 151, 36, 94, 187, 139, 161, 225, 107, 124, 165, 59, 21,\n\t\t41, 111, 216, 160, 113, 34, 31, 218, 157, 230, 115, 33, 134,\n\t\t121, 38, 34, 233, 37, 127, 32, 62, 188, 116, 8, 12, 55, 54,\n\t\t47, 6, 105, 164, 187, 20, 36, 255, 40, 196, 223, 241, 173,\n\t\t239, 50, 67, 246, 88, 7, 110, 115, 43, 231, 247, 105, 78,\n\t\t144, 119, 193, 56, 114, 143, 39, 110, 7, 184, 112, 21, 30,\n\t\t27, 162, 233, 122, 27, 171, 187, 70, 243, 226, 90, 61, 78,\n\t\t168, 109, 205, 251, 122, 227, 229, 53, 255, 34, 70, 90, 214,\n\t\t127, 98, 245, 148, 144, 174, 15, 220, 98, 75, 211, 139, 21,\n\t\t222, 25, 47, 252, 237, 12, 8, 144, 97, 143, 69, 59, 87, 33,\n\t\t154, 147, 25, 230, 170, 239, 25, 117, 58, 25, 113, 179, 2,\n\t\t174, 168, 236, 97, 65, 24, 198, 150, 111, 41, 162, 149, 19,\n\t\t90, 212, 142, 62, 106, 62, 34, 68, 66, 142, 117, 126, 82,\n\t\t189, 93, 153, 77, 220, 198, 234, 237, 210, 228, 104, 167,\n\t\t145, 167, 149, 83, 153, 68, 77, 208, 222, 178, 170, 94, 160,\n\t\t186, 171, 154, 122, 160, 240, 85, 211, 18, 79, 63, 38, 175,\n\t\t39, 200, 132, 118, 141, 108, 183, 44, 71, 28, 238, 161, 146,\n\t\t106, 161, 179, 149, 151, 169, 219, 48, 185, 156, 103, 78,\n\t\t200, 8, 8, 25, 44, 205, 55, 222, 237, 76, 202, 102, 181, 55,\n\t\t63, 53, 26, 148, 59, 219, 4, 13, 71, 59, 227, 203, 99, 200,\n\t\t128, 153, 197, 47, 224, 216, 51, 25, 83, 26, 168, 0, 89, 150,\n\t\t163, 218, 183, 212, 2, 113, 200, 212, 146, 50, 1, 9, 165,\n\t\t249, 181, 20, 57, 148, 108, 74, 31, 83, 65, 28, 114, 241,\n\t\t19, 130, 250, 140, 127, 54, 79, 92, 45, 0, 137, 223, 54, 75,\n\t\t32, 102, 20, 17, 70, 197, 3, 248, 254, 131, 124, 134, 23,\n\t\t2, 36, 59, 85, 128, 157, 77, 103, 185, 197, 178, 98, 248,\n\t\t67, 135, 72, 119, 108, 229, 117, 68, 65, 58, 230, 5, 50, 26,\n\t\t135, 58, 8, 193, 56, 211, 62, 153, 193, 82, 38, 102, 170,\n\t\t216, 34, 139, 0, 164, 204, 75, 78, 77, 226, 142, 54, 151,\n\t\t57, 133, 215, 52, 51, 238, 122, 98, 137, 83, 85, 120, 165,\n\t\t189, 65, 66, 43, 40, 12, 169, 156, 218, 202, 164, 43, 112,\n\t\t38, 39, 228, 68, 245, 95, 44, 27, 250, 239, 22, 147, 236,\n\t\t132, 142, 217, 213, 209, 220, 215, 116, 240, 236, 60, 203,\n\t\t119, 127, 24, 28, 241, 49, 17, 31, 119, 94, 233, 114, 154,\n\t\t27, 50, 225, 237, 36, 107, 199, 236, 150, 160, 19, 126, 135,\n\t\t140, 236, 150, 80, 164, 101, 34, 149, 17, 68, 94, 180, 111,\n\t\t95, 170, 168, 18, 128, 171, 83, 8, 159, 120, 169, 29, 0, 80,\n\t\t117, 86, 70, 83, 3, 27, 137, 240, 114, 195, 185, 133, 85,\n\t\t161, 66, 185, 222, 68, 83, 164, 89, 87, 36, 12, 58, 249, 41,\n\t\t95, 106, 147, 90, 123, 0, 112, 161, 80, 154, 15, 152, 187,\n\t\t27, 164, 74, 78, 68, 198, 124, 89, 65, 178, 201, 136, 121,\n\t\t13, 230, 141, 99, 7, 184, 19, 247, 82, 248, 234, 181, 94,\n\t\t15, 251, 128, 232, 185, 3, 115, 25, 253, 131, 152, 129, 224,\n\t\t151, 20, 223, 52, 185, 217, 54, 232, 212, 97, 51, 175, 184,\n\t\t92, 71, 88, 103, 186, 55, 80, 30, 45, 131, 127, 73, 226, 39,\n\t\t6, 84, 73, 170, 149, 128, 147, 81, 126, 66, 235, 107, 190,\n\t\t138, 47, 81, 32, 164, 230, 104, 230, 234, 232, 16, 4, 77,\n\t\t81, 209, 90, 178, 169, 3, 203, 154, 222, 171, 234, 176, 136,\n\t\t68, 116, 181, 243, 75, 96, 127, 43, 208, 233, 102, 54, 28,\n\t\t128, 158, 203, 224, 69, 16, 218, 254, 90, 171, 93, 119, 48,\n\t\t169, 15, 198, 49, 3, 226, 174, 92, 9, 138, 70, 209, 11, 239,\n\t\t13, 181, 82, 115, 215, 132, 148, 245, 155, 237, 155, 251,\n\t\t198, 131, 241, 189, 254, 149, 209, 28, 52, 231, 215, 226,\n\t\t56, 85, 222, 233, 103, 143, 146, 197, 15, 83, 106, 35, 52,\n\t\t22, 237, 188, 186, 170, 107, 184, 4, 207, 137, 152, 40, 206,\n\t\t94, 116, 253, 108, 184, 190, 149, 70, 22, 146, 234, 45, 222,\n\t\t127, 249, 76, 65, 211, 2, 6, 159, 175, 63, 126, 113, 203,\n\t\t116, 191, 143, 17, 67, 163, 116, 77, 190, 126, 242, 224, 51,\n\t\t213, 131, 155, 103, 87, 212, 152, 4, 153, 53, 219, 207, 233,\n\t\t186, 234, 13, 126, 187, 123, 150, 106, 203, 184, 234, 195,\n\t\t221, 23, 174, 246, 246, 118, 182, 209, 169, 86, 149, 153,\n\t\t121, 104, 219, 124, 88, 255, 254, 236, 152, 221, 133, 49,\n\t\t54, 23, 167, 175, 241, 189, 224, 118, 181, 27, 164, 176, 15,\n\t\t165, 77, 193, 188, 239, 178, 113, 79, 105, 178, 221, 215,\n\t\t214, 3, 119, 241, 214, 229, 49, 225, 141, 14, 20, 151, 134,\n\t\t211, 116, 56, 80, 114, 233, 126, 112, 95, 143, 74, 237, 148,\n\t\t159, 78, 216, 26, 85, 48, 225, 162, 175, 64, 205, 116, 192,\n\t\t175, 100, 101, 10, 42, 112, 245, 22, 253, 200, 237, 2, 216,\n\t\t210, 126, 20, 173, 22, 253, 70, 48, 63, 136, 32, 154, 228,\n\t\t85, 212, 216, 70, 182, 120, 142, 8, 78, 190, 246, 171, 237,\n\t\t63, 43, 136, 27, 226, 144, 239, 239, 51, 77, 236, 146, 23,\n\t\t50, 233, 76, 161, 19, 75, 39, 249, 84, 190, 135, 42, 194,\n\t\t190, 226, 104, 203, 13, 82, 22, 177, 101, 225, 179, 91, 136,\n\t\t184, 18, 45, 99, 60, 152, 146, 217, 31, 25, 184, 230, 72,\n\t\t215, 246, 53, 21, 157, 27, 191, 53, 31, 147, 206, 239, 209,\n\t\t130, 218, 115, 195, 105, 115, 212, 124, 33, 240, 150, 9, 173,\n\t\t168, 121, 231, 240, 27, 153, 119, 78, 103, 205, 227, 84, 15,\n\t\t157, 239, 21, 95, 217, 166, 132, 199, 243, 223, 29, 9, 225,\n\t\t68, 60, 186, 124, 89, 44, 147, 71, 105, 159, 106, 166, 114,\n\t\t151, 40, 128, 132, 84, 193, 230, 229, 232, 134, 83, 121, 72,\n\t\t189, 38, 188, 173, 193, 255, 181, 114, 182, 250, 37, 193,\n\t\t99, 17, 15, 238, 95, 6, 112, 110, 173, 39, 162, 211, 110,\n\t\t214, 174, 144, 56, 233, 9, 215, 180, 137, 113, 93, 16, 102,\n\t\t113, 191, 58, 18, 246, 133, 212, 69, 35, 133, 64, 130, 231,\n\t\t196, 61, 117, 186, 31, 7, 147, 124, 11, 206, 172, 239, 14,\n\t\t239, 220, 97, 41, 184, 96, 121, 45, 63, 93, 59, 149, 182,\n\t\t103, 176, 26, 19, 85, 222, 209, 70, 224, 246, 140, 14, 192,\n\t\t188, 39, 3, 56, 66, 61, 190, 215, 45, 239, 28, 205, 140, 135,\n\t\t170, 208, 78, 220, 66, 205, 243, 128, 89, 244, 122, 172, 162,\n\t\t14, 210, 160, 113, 20, 25, 217, 91, 152, 79, 93, 9, 116, 48,\n\t\t72, 25, 10, 137, 113, 193, 130, 50, 85, 173, 49, 173, 8, 39,\n\t\t107, 100, 31, 253, 204, 36, 68, 34, 87, 160, 69, 179, 5, 220,\n\t\t132, 130, 4, 253, 83, 138, 169, 126, 229, 13, 186, 178, 5,\n\t\t31, 46, 20, 0, 253, 7, 94, 47, 185, 201, 84, 30, 203, 160,\n\t\t235, 154, 173, 66, 255, 162, 33, 145, 184, 125, 174, 105,\n\t\t89, 198, 45, 76, 19, 195, 76, 134, 88, 213, 32, 200, 67, 21,\n\t\t204, 240, 40, 107, 78, 41, 65, 73, 183, 106, 247, 153, 7,\n\t\t219, 40, 78, 176, 195, 189, 176, 145, 8, 143, 24, 246, 250,\n\t\t40, 131, 220, 220, 62, 241, 100, 102, 72, 148, 4, 201, 17,\n\t\t149, 2, 218, 129, 131, 204, 86, 58, 88, 92, 134, 245, 51,\n\t\t44, 71, 234, 25, 138, 61, 197, 16, 116, 84, 138, 67, 244,\n\t\t171, 41, 67, 145, 7, 80, 1, 52, 96, 1, 139, 137, 15, 123,\n\t\t113, 86, 68, 90, 7, 100, 163, 127, 17, 108, 64, 213, 192,\n\t\t55, 145, 251, 169, 253, 25, 58, 170, 10, 49, 103, 38, 20,\n\t\t50, 170, 216, 64, 158, 108, 91, 165, 183, 27, 171, 131, 213,\n\t\t196, 222, 80, 246, 197, 9, 203, 51, 189, 214, 20, 220, 202,\n\t\t237, 34, 125, 39, 29, 220, 127, 60, 12, 157, 144, 62, 62,\n\t\t47, 91, 162, 154, 92, 102, 184, 117, 157, 13, 7, 133, 240,\n\t\t89, 193, 45, 169, 149, 50, 104, 11, 32, 70, 107, 220, 131,\n\t\t176, 102, 170, 69, 197, 100, 35, 71, 132, 143, 17, 183, 77,\n\t\t7, 121, 123, 71, 217, 185, 238, 223, 39, 253, 83, 91, 211,\n\t\t222, 195, 86, 247, 230, 248, 139, 221, 218, 50, 161, 224,\n\t\t220, 203, 71, 102, 251, 219, 126, 121, 59, 154, 88, 157, 7,\n\t\t73, 35, 57, 106, 79, 177, 58, 184, 120, 238, 101, 19, 174,\n\t\t149, 128, 30, 44, 221, 18, 51, 123, 97, 119, 205, 249, 239,\n\t\t185, 87, 84, 180, 73, 57, 188, 144, 120, 118, 220, 237, 93,\n\t\t220, 190, 12, 245, 90, 252, 52, 96, 109, 124, 233, 194, 75,\n\t\t178, 202, 224, 198, 196, 138, 170, 60, 238, 69, 34, 16, 190,\n\t\t193, 17, 131, 76, 118, 17, 14, 125, 66, 22, 7, 22, 243, 205,\n\t\t244, 90, 177, 27, 182, 51, 86, 66, 236, 55, 9, 251, 177, 32,\n\t\t142, 28, 95, 63, 188, 195, 158, 206, 90, 220, 27, 25, 94,\n\t\t27, 201, 248, 233, 10, 155, 197, 113, 39, 166, 247, 118, 52,\n\t\t86, 11, 163, 73, 11, 218, 154, 56, 249, 113, 142, 220, 94,\n\t\t89, 48, 218, 50, 58, 232, 69, 27, 175, 32, 94, 246, 191, 0,\n\t\t245, 151, 173, 48, 205, 77, 94, 194, 201, 91, 227, 185, 158,\n\t\t26, 191, 82, 178, 122, 54, 42, 115, 147, 254, 163, 244, 97,\n\t\t126, 63, 121, 244, 52, 43, 61, 189, 167, 45, 110, 31, 59,\n\t\t23, 207, 170, 57, 129, 170, 155, 164, 121, 173, 137, 117,\n\t\t30, 251, 21, 243, 31, 142, 59, 126, 3, 74, 53, 182, 144, 113,\n\t\t1, 109, 0, 124, 76, 128, 171, 230, 196, 132, 98, 16, 42, 33,\n\t\t78, 173, 47, 186, 41, 171, 238, 247, 94, 204, 63, 107, 119,\n\t\t101, 19, 111, 250, 21, 106, 80, 217, 132, 96, 153, 90, 37,\n\t\t38, 215, 84, 208, 72, 140, 35, 196, 83, 245, 84, 199, 53,\n\t\t130, 214, 87, 188, 182, 177, 235, 57, 56, 38, 107, 112, 100,\n\t\t91, 37, 98, 15, 30, 146, 49, 47, 115, 98, 87, 216, 75, 36,\n\t\t23, 228, 12, 105, 202, 182, 71, 84, 15, 108, 12, 176, 167,\n\t\t39, 86, 252, 227, 67, 2, 128, 144, 83, 34, 173, 197, 208,\n\t\t136, 152, 17, 184, 73, 54, 214, 163, 21, 123, 87, 123, 134,\n\t\t81, 145, 241, 113, 113, 140, 191, 42, 118, 221, 52, 210, 5,\n\t\t190, 19, 119, 117, 125, 88, 36, 159, 197, 119, 82, 52, 252,\n\t\t177, 82, 204, 158, 200, 233, 221, 147, 155, 44, 16, 183, 247,\n\t\t220, 179, 29, 144, 39, 156, 97, 200, 130, 184, 164, 139, 72,\n\t\t128, 47, 121, 72, 190, 159, 200, 176, 7, 81, 160, 214, 136,\n\t\t26, 120, 36, 104, 141, 6, 224, 104, 226, 253, 254, 143, 228,\n\t\t117, 185, 191, 60, 214, 178, 99, 187, 254, 211, 240, 98, 154,\n\t\t103, 126, 233, 236, 214, 172, 100, 171, 123, 54, 149, 95,\n\t\t67, 232, 47, 140, 183, 58, 26, 33, 220, 221, 121, 112, 254,\n\t\t250, 139, 196, 250, 17, 144, 89, 230, 121, 243, 244, 250,\n\t\t56, 66, 51, 246, 173, 209, 29, 40, 250, 173, 31, 223, 215,\n\t\t44, 211, 200, 108, 23, 97, 161, 92, 157, 26, 170, 38, 43,\n\t\t140, 89, 228, 83, 124, 27, 30, 158, 221, 42, 181, 18, 79,\n\t\t177, 217, 207, 150, 214, 39, 151, 64, 34, 104, 217, 189, 86,\n\t\t220, 138, 212, 136, 95, 78, 55, 106, 156, 251, 47, 62, 251,\n\t\t56, 139, 157, 69, 80, 91, 241, 76, 107, 94, 85, 158, 93, 61,\n\t\t100, 183, 162, 86, 241, 84, 51, 77, 118, 223, 125, 59, 169,\n\t\t163, 193, 171, 78, 226, 149, 100, 31, 29, 185, 240, 92, 23,\n\t\t59, 174, 189, 249, 174, 108, 37, 61, 118, 141, 93, 131, 223,\n\t\t31, 252, 72, 134, 70, 162, 75, 196, 126, 39, 7, 28, 205, 103,\n\t\t246, 47, 251, 35, 230, 220, 193, 56, 89, 147, 48, 91, 71,\n\t\t100, 131, 76, 135, 246, 126, 175, 6, 61, 197, 230, 247, 190,\n\t\t0, 112, 215, 210, 186, 17, 96, 223, 175, 99, 127, 52, 162,\n\t\t182, 26, 207, 153, 209, 153, 126, 48, 57, 81, 161, 223, 16,\n\t\t237, 181, 234, 215, 92, 147, 159, 107, 97, 228, 230, 53, 247,\n\t\t189, 164, 198, 81, 55, 247, 225, 48, 247, 129, 14, 229, 253,\n\t\t86, 229, 163, 150, 19, 26, 42, 230, 119, 178, 159, 12, 178,\n\t\t239, 170, 42, 190, 87, 47, 126, 92, 15, 52, 130, 16, 35, 144,\n\t\t189, 197, 121, 195, 121, 238, 220, 38, 39, 31, 252, 1, 24,\n\t\t144, 1, 11, 100, 116, 105, 216, 50, 194, 24, 54, 13, 69, 209,\n\t\t149, 130, 108, 206, 226, 19, 66, 200, 178, 41, 124, 225, 41,\n\t\t131, 37, 222, 180, 229, 133, 197, 65, 101, 136, 212, 192,\n\t\t53, 140, 132, 9, 132, 216, 88, 253, 193, 27, 73, 237, 24,\n\t\t0, 136, 216, 29, 228, 136, 206, 157, 85, 145, 254, 135, 16,\n\t\t51, 102, 185, 44, 230, 212, 133, 151, 128, 52, 12, 223, 15,\n\t\t52, 155, 186, 80, 220, 48, 76, 219, 241, 10, 20, 29, 192,\n\t\t180, 61, 183, 1, 21, 176, 76, 80, 188, 255, 238, 156, 209,\n\t\t212, 149, 206, 178, 95, 30, 36, 30, 139, 67, 222, 179, 183,\n\t\t80, 82, 81, 122, 127, 181, 64, 106, 86, 135, 95, 177, 2, 96,\n\t\t73, 219, 60, 214, 91, 211, 187, 198, 118, 241, 71, 110, 216,\n\t\t214, 211, 218, 28, 163, 22, 93, 95, 24, 105, 241, 248, 137,\n\t\t24, 64, 153, 241, 74, 170, 163, 255, 222, 177, 235, 106, 217,\n\t\t173, 126, 127, 9, 213, 194, 33, 212, 190, 211, 173, 49, 173,\n\t\t140, 219, 119, 32, 175, 2, 172, 154, 123, 253, 44, 24, 79,\n\t\t118, 87, 28, 249, 146, 197, 219, 42, 6, 100, 129, 240, 178,\n\t\t127, 108, 18, 244, 198, 200, 87, 237, 100, 161, 244, 197,\n\t\t137, 236, 135, 224, 162, 155, 194, 61, 120, 125, 93, 119,\n\t\t161, 73, 28, 15, 234, 36, 243, 132, 134, 165, 180, 4, 237,\n\t\t120, 246, 63, 187, 15, 147, 123, 217, 131, 244, 233, 113,\n\t\t243, 136, 21, 110, 187, 163, 77, 219, 211, 253, 73, 185, 253,\n\t\t5, 160, 214, 109, 148, 186, 153, 234, 190, 249, 11, 31, 79,\n\t\t144, 81, 225, 220, 236, 191, 106, 167, 84, 218, 234, 196,\n\t\t253, 210, 235, 161, 175, 244, 58, 185, 141, 87, 12, 89, 102,\n\t\t235, 141, 167, 237, 189, 5, 67, 143, 9, 169, 216, 195, 82,\n\t\t129, 225, 41, 35, 64, 224, 87, 85, 210, 58, 242, 122, 156,\n\t\t102, 194, 200, 179, 49, 242, 20, 162, 109, 58, 170, 239, 226,\n\t\t188, 228, 155, 128, 86, 40, 80, 179, 42, 172, 78, 40, 52,\n\t\t186, 34, 213, 171, 249, 114, 136, 210, 145, 138, 225, 173,\n\t\t91, 119, 235, 154, 74, 41, 177, 206, 241, 101, 4, 162, 190,\n\t\t133, 180, 85, 15, 90, 62, 195, 153, 48, 117, 111, 186, 5,\n\t\t109, 36, 133, 33, 81, 93, 91, 219, 120, 195, 29, 34, 90, 135,\n\t\t108, 65, 221, 163, 29, 201, 2, 129, 163, 109, 104, 247, 56,\n\t\t223, 244, 51, 193, 115, 35, 122, 225, 141, 241, 106, 110,\n\t\t85, 233, 47, 104, 54, 162, 214, 26, 35, 99, 102, 124, 246,\n\t\t182, 71, 0, 119, 204, 66, 223, 201, 20, 231, 23, 152, 117,\n\t\t191, 55, 65, 84, 79, 155, 191, 140, 200, 108, 244, 53, 183,\n\t\t156, 37, 59, 160, 129, 40, 245, 103, 74, 28, 52, 88, 109,\n\t\t114, 152, 110, 225, 82, 181, 179, 5, 114, 194, 130, 59, 214,\n\t\t177, 245, 78, 20, 82, 0, 159, 142, 133, 189, 239, 185, 211,\n\t\t79, 127, 74, 85, 205, 240, 169, 235, 177, 162, 243, 217, 145,\n\t\t70, 38, 161, 197, 252, 38, 175, 11, 77, 10, 156, 118, 54,\n\t\t45, 24, 112, 132, 208, 7, 68, 28, 24, 43, 252, 89, 69, 18,\n\t\t255, 135, 35, 177, 206, 254, 160, 55, 110, 18, 122, 63, 246,\n\t\t54, 124, 231, 16, 73, 8, 228, 219, 166, 5, 236, 183, 216,\n\t\t24, 49, 148, 2, 122, 146, 48, 117, 137, 12, 190, 203, 9, 26,\n\t\t79, 249, 46, 32, 34, 79, 243, 214, 229, 21, 53, 118, 84, 207,\n\t\t52, 9, 54, 126, 29, 87, 115, 157, 171, 182, 100, 54, 111,\n\t\t71, 92, 169, 127, 155, 240, 219, 232, 13, 37, 62, 201, 4,\n\t\t145, 197, 191, 90, 112, 1, 252, 77, 247, 217, 11, 49, 216,\n\t\t209, 21, 24, 227, 0, 32, 30, 87, 92, 67, 205, 80, 103, 156,\n\t\t113, 139, 192, 45, 45, 145, 209, 38, 58, 13, 128, 192, 42,\n\t\t87, 137, 129, 21, 70, 71, 124, 86, 62, 253, 189, 92, 183,\n\t\t88, 45, 254, 74, 55, 216, 48, 152, 225, 32, 146, 214, 1, 62,\n\t\t177, 194, 21, 154, 207, 50, 187, 132, 132, 62, 163, 97, 138,\n\t\t61, 252, 101, 255, 76, 178, 202, 55, 233, 148, 218, 114, 57,\n\t\t100, 33, 38, 220, 3, 244, 200, 175, 173, 213, 216, 4, 208,\n\t\t45, 237, 213, 36, 181, 238, 181, 81, 217, 137, 94, 225, 1,\n\t\t76, 166, 11, 244, 240, 143, 130, 236, 141, 230, 22, 86, 17,\n\t\t74, 176, 236, 166, 0, 68, 202, 94, 41, 175, 107, 135, 176,\n\t\t88, 212, 116, 84, 137, 116, 205, 108, 41, 52, 154, 169, 187,\n\t\t181, 70, 243, 163, 74, 89, 211, 157, 3, 193, 250, 173, 52,\n\t\t162, 189, 1, 191, 130, 220, 51, 184, 40, 58, 23, 107, 159,\n\t\t118, 218, 89, 194, 195, 244, 56, 88, 85, 114, 40, 98, 169,\n\t\t229, 194, 67, 212, 231, 141, 189, 72, 167, 67, 16, 195, 36,\n\t\t241, 113, 46, 108, 100, 182, 233, 51, 142, 171, 218, 24, 105,\n\t\t11, 115, 250, 91, 69, 213, 23, 218, 89, 4, 25, 247, 243, 10,\n\t\t179, 137, 152, 181, 24, 172, 93, 78, 73, 134, 154, 9, 224,\n\t\t86, 96, 1, 77, 58, 211, 149, 74, 36, 194, 97, 25, 228, 67,\n\t\t25, 156, 225, 39, 138, 128, 13, 88, 101, 131, 115, 65, 222,\n\t\t35, 13, 72, 8, 150, 67, 101, 216, 51, 2, 85, 66, 139, 55,\n\t\t106, 8, 181, 32, 3, 136, 215, 88, 99, 232, 204, 3, 104, 2,\n\t\t115, 189, 195, 50, 74, 254, 177, 224, 20, 121, 220, 218, 53,\n\t\t135, 78, 60, 154, 205, 41, 34, 179, 47, 112, 10, 199, 46,\n\t\t53, 184, 189, 170, 160, 233, 88, 139, 156, 62, 130, 54, 116,\n\t\t80, 180, 194, 240, 166, 104, 200, 64, 234, 36, 228, 50, 70,\n\t\t190, 86, 67, 166, 108, 242, 51, 22, 46, 78, 107, 63, 95, 224,\n\t\t133, 184, 22, 190, 164, 41, 138, 253, 161, 201, 85, 49, 90,\n\t\t137, 199, 147, 217, 87, 12, 162, 112, 81, 158, 40, 30, 14,\n\t\t189, 104, 84, 218, 1, 142, 77, 232, 131, 141, 172, 81, 82,\n\t\t114, 138, 138, 1, 129, 195, 213, 67, 230, 41, 194, 93, 130,\n\t\t93, 216, 228, 81, 63, 88, 10, 35, 84, 209, 157, 102, 90, 169,\n\t\t236, 77, 152, 104, 229, 20, 245, 185, 208, 90, 244, 30, 61,\n\t\t241, 195, 6, 64, 101, 155, 68, 168, 240, 248, 64, 26, 235,\n\t\t5, 163, 40, 113, 197, 36, 60, 190, 105, 52, 161, 11, 38, 184,\n\t\t156, 233, 25, 39, 230, 158, 73, 160, 241, 13, 65, 92, 3, 220,\n\t\t214, 228, 49, 253, 20, 198, 134, 0, 164, 183, 139, 98, 92,\n\t\t204, 26, 57, 38, 176, 52, 23, 73, 89, 215, 199, 90, 186, 188,\n\t\t177, 120, 69, 103, 149, 93, 100, 11, 148, 152, 203, 114, 141,\n\t\t41, 223, 73, 61, 211, 188, 55, 95, 125, 116, 206, 42, 212,\n\t\t112, 145, 9, 205, 193, 4, 32, 155, 29, 166, 37, 95, 125, 75,\n\t\t205, 18, 250, 43, 206, 47, 196, 123, 41, 74, 112, 97, 91,\n\t\t109, 160, 73, 114, 246, 25, 108, 175, 115, 95, 113, 74, 63,\n\t\t127, 193, 47, 62, 177, 97, 21, 10, 33, 5, 229, 40, 247, 196,\n\t\t203, 189, 77, 192, 18, 29, 165, 202, 149, 206, 81, 96, 124,\n\t\t47, 254, 123, 173, 18, 171, 253, 93, 194, 74, 102, 5, 157,\n\t\t6, 147, 22, 20, 109, 141, 250, 62, 119, 111, 40, 223, 255,\n\t\t240, 51, 135, 154, 221, 139, 170, 172, 127, 240, 132, 157,\n\t\t95, 182, 31, 68, 137, 83, 179, 222, 173, 185, 24, 187, 242,\n\t\t1, 65, 51, 98, 151, 208, 86, 104, 141, 60, 100, 124, 119,\n\t\t239, 168, 208, 171, 29, 40, 92, 255, 68, 10, 65, 232, 10,\n\t\t143, 237, 112, 100, 128, 171, 228, 124, 61, 101, 228, 17,\n\t\t213, 234, 44, 147, 70, 40, 44, 7, 186, 121, 73, 193, 202,\n\t\t33, 95, 85, 44, 42, 147, 240, 205, 235, 138, 148, 190, 230,\n\t\t40, 95, 122, 172, 210, 221, 128, 159, 17, 23, 62, 93, 150,\n\t\t15, 212, 79, 24, 139, 114, 46, 32, 99, 235, 210, 215, 206,\n\t\t81, 139, 85, 158, 165, 8, 240, 119, 110, 105, 53, 185, 5,\n\t\t62, 153, 153, 142, 133, 150, 26, 133, 46, 89, 38, 43, 139,\n\t\t217, 236, 115, 74, 101, 58, 4, 145, 221, 233, 207, 152, 78,\n\t\t225, 139, 41, 218, 199, 217, 132, 140, 93, 156, 28, 50, 118,\n\t\t105, 116, 184, 133, 87, 176, 223, 67, 227, 91, 47, 211, 105,\n\t\t195, 219, 110, 208, 253, 54, 248, 171, 103, 216, 84, 226,\n\t\t113, 255, 137, 165, 39, 215, 147, 212, 38, 198, 189, 217,\n\t\t0, 62, 186, 16, 124, 98, 224, 210, 91, 136, 155, 214, 101,\n\t\t37, 168, 208, 171, 109, 201, 112, 30, 197, 17, 73, 46, 142,\n\t\t190, 75, 246, 121, 113, 36, 19, 132, 85, 235, 224, 54, 140,\n\t\t248, 60, 40, 184, 199, 200, 195, 83, 248, 169, 169, 114, 25,\n\t\t120, 118, 50, 172, 15, 125, 37, 6, 241, 176, 77, 219, 67,\n\t\t97, 39, 1, 105, 151, 39, 154, 183, 62, 95, 126, 237, 70, 107,\n\t\t125, 106, 194, 235, 65, 248, 72, 89, 24, 52, 185, 25, 208,\n\t\t239, 43, 155, 132, 238, 103, 63, 161, 58, 191, 251, 185, 154,\n\t\t190, 131, 120, 238, 42, 225, 213, 46, 241, 46, 171, 210, 217,\n\t\t184, 202, 251, 103, 58, 63, 246, 230, 78, 159, 233, 109, 190,\n\t\t225, 24, 191, 253, 170, 55, 127, 101, 235, 61, 173, 253, 146,\n\t\t38, 23, 98, 148, 210, 101, 102, 185, 24, 240, 229, 75, 205,\n\t\t85, 206, 42, 248, 25, 184, 107, 122, 54, 48, 223, 14, 28,\n\t\t102, 185, 71, 234, 3, 234, 93, 233, 20, 64, 97, 233, 11, 109,\n\t\t10, 89, 79, 202, 89, 56, 253, 66, 90, 15, 31, 223, 108, 210,\n\t\t255, 214, 251, 238, 126, 117, 152, 232, 152, 226, 49, 124,\n\t\t170, 67, 213, 3, 116, 235, 17, 212, 158, 217, 222, 50, 97,\n\t\t187, 158, 26, 132, 61, 100, 152, 63, 210, 142, 6, 55, 220,\n\t\t246, 139, 165, 130, 116, 23, 129, 0, 225, 22, 114, 40, 145,\n\t\t110, 253, 45, 217, 79, 52, 146, 185, 102, 150, 112, 224, 119,\n\t\t250, 98, 117, 16, 149, 74, 28, 146, 121, 15, 138, 217, 6,\n\t\t75, 249, 23, 100, 254, 122, 171, 194, 254, 154, 95, 148, 135,\n\t\t143, 182, 208, 246, 15, 124, 124, 228, 232, 123, 88, 31, 234,\n\t\t32, 5, 171, 57, 255, 7, 87, 249, 243, 225, 214, 113, 215,\n\t\t104, 103, 111, 119, 56, 248, 58, 195, 242, 150, 142, 173,\n\t\t222, 95, 6, 20, 177, 139, 80, 190, 170, 128, 39, 77, 162,\n\t\t137, 179, 39, 75, 28, 174, 30, 44, 216, 194, 106, 136, 122,\n\t\t141, 23, 9, 249, 172, 20, 99, 166, 42, 225, 93, 44, 254, 166,\n\t\t118, 94, 121, 225, 77, 38, 191, 53, 145, 210, 159, 17, 196,\n\t\t238, 226, 138, 117, 221, 215, 79, 153, 201, 253, 153, 78,\n\t\t225, 222, 150, 95, 82, 92, 255, 209, 154, 27, 84, 182, 2,\n\t\t100, 152, 129, 62, 230, 103, 238, 204, 180, 49, 42, 76, 69,\n\t\t197, 150, 113, 1, 144, 78, 201, 214, 251, 85, 193, 62, 134,\n\t\t55, 125, 6, 154, 246, 159, 200, 88, 66, 222, 216, 96, 89,\n\t\t88, 91, 199, 200, 51, 133, 50, 192, 184, 89, 56, 160, 192,\n\t\t136, 239, 24, 178, 241, 96, 38, 204, 123, 38, 56, 56, 4, 165,\n\t\t103, 132, 78, 246, 249, 223, 148, 138, 162, 100, 18, 152,\n\t\t246, 137, 0, 63, 75, 33, 121, 252, 9, 165, 221, 144, 197,\n\t\t133, 242, 41, 12, 65, 134, 88, 164, 62, 149, 39, 133, 153,\n\t\t47, 99, 244, 197, 25, 206, 59, 167, 189, 11, 99, 42, 167,\n\t\t130, 196, 223, 228, 210, 52, 205, 138, 132, 18, 11, 0, 80,\n\t\t59, 210, 84, 199, 217, 154, 161, 233, 9, 109, 141, 99, 148,\n\t\t7, 171, 119, 8, 67, 197, 248, 66, 49, 158, 50, 20, 0, 104,\n\t\t101, 130, 6, 67, 69, 31, 53, 236, 184, 175, 91, 148, 73, 83,\n\t\t42, 118, 135, 48, 108, 90, 100, 121, 137, 73, 91, 69, 90,\n\t\t173, 53, 86, 53, 57, 114, 241, 178, 34, 243, 113, 45, 178,\n\t\t165, 191, 200, 198, 199, 193, 105, 132, 133, 79, 163, 189,\n\t\t88, 33, 158, 143, 225, 181, 70, 30, 192, 193, 113, 22, 3,\n\t\t117, 127, 95, 177, 151, 63, 4, 236, 71, 68, 230, 217, 121,\n\t\t157, 151, 151, 127, 75, 145, 220, 88, 18, 237, 20, 78, 56,\n\t\t100, 85, 171, 117, 94, 32, 220, 152, 198, 64, 82, 107, 201,\n\t\t175, 34, 140, 232, 32, 157, 36, 65, 106, 169, 239, 89, 192,\n\t\t137, 131, 149, 115, 40, 23, 94, 51, 227, 2, 193, 173, 92,\n\t\t198, 181, 89, 113, 249, 216, 135, 116, 91, 144, 238, 77, 147,\n\t\t236, 221, 250, 230, 39, 0, 160, 222, 249, 152, 241, 13, 234,\n\t\t2, 153, 243, 172, 209, 101, 225, 218, 58, 3, 39, 60, 203,\n\t\t91, 25, 118, 0, 47, 64, 253, 161, 255, 159, 26, 183, 105,\n\t\t246, 52, 1, 253, 142, 24, 152, 216, 185, 209, 30, 85, 178,\n\t\t7, 111, 127, 224, 134, 3, 40, 10, 186, 128, 157, 88, 221,\n\t\t238, 227, 38, 36, 191, 110, 75, 209, 159, 72, 48, 0, 100,\n\t\t52, 61, 195, 43, 214, 110, 216, 187, 169, 245, 41, 28, 160,\n\t\t112, 99, 145, 204, 127, 67, 233, 249, 60, 195, 195, 63, 3,\n\t\t233, 109, 253, 219, 205, 147, 165, 91, 218, 123, 203, 75,\n\t\t223, 101, 178, 87, 143, 47, 175, 159, 144, 107, 74, 189, 59,\n\t\t119, 174, 90, 243, 78, 34, 17, 34, 149, 90, 74, 192, 131,\n\t\t176, 249, 149, 211, 59, 43, 245, 66, 126, 137, 110, 225, 70,\n\t\t81, 46, 162, 77, 13, 199, 7, 5, 88, 149, 60, 97, 125, 165,\n\t\t203, 250, 74, 249, 234, 159, 38, 101, 252, 209, 213, 166,\n\t\t126, 140, 109, 50, 166, 8, 80, 217, 154, 235, 11, 182, 168,\n\t\t244, 44, 176, 92, 35, 41, 172, 80, 233, 193, 198, 142, 203,\n\t\t205, 157, 188, 137, 54, 132, 121, 186, 27, 151, 191, 191,\n\t\t120, 0, 216, 123, 237, 117, 218, 204, 127, 189, 215, 187,\n\t\t120, 45, 25, 84, 211, 1, 230, 22, 64, 55, 140, 195, 141, 173,\n\t\t44, 126, 131, 185, 248, 163, 243, 148, 86, 191, 192, 225,\n\t\t95, 241, 186, 225, 168, 156, 199, 134, 115, 222, 3, 0, 223,\n\t\t117, 118, 186, 73, 88, 53, 202, 207, 174, 18, 118, 155, 93,\n\t\t62, 192, 121, 189, 15, 184, 127, 188, 143, 138, 226, 98, 221,\n\t\t34, 213, 65, 73, 124, 160, 104, 103, 215, 133, 250, 140, 145,\n\t\t167, 147, 225, 23, 155, 13, 181, 143, 101, 100, 113, 98, 212,\n\t\t214, 159, 212, 173, 86, 154, 23, 193, 162, 160, 52, 103, 155,\n\t\t98, 170, 117, 45, 37, 61, 253, 213, 184, 78, 67, 238, 102,\n\t\t149, 31, 147, 188, 94, 162, 237, 209, 196, 177, 99, 187, 241,\n\t\t196, 213, 209, 100, 90, 182, 183, 82, 44, 230, 172, 164, 106,\n\t\t55, 51, 59, 241, 191, 208, 147, 6, 126, 57, 173, 151, 35,\n\t\t68, 66, 137, 19, 233, 82, 240, 63, 149, 18, 66, 74, 253, 47,\n\t\t189, 123, 209, 195, 60, 50, 253, 176, 94, 230, 205, 55, 51,\n\t\t177, 186, 212, 31, 169, 247, 95, 196, 23, 191, 8, 171, 124,\n\t\t182, 126, 241, 176, 167, 22, 106, 110, 127, 226, 39, 247,\n\t\t42, 153, 192, 139, 191, 207, 181, 155, 125, 238, 13, 81, 189,\n\t\t230, 222, 22, 175, 215, 33, 84, 214, 222, 146, 41, 214, 147,\n\t\t167, 128, 189, 196, 79, 164, 57, 205, 254, 242, 169, 29, 230,\n\t\t5, 103, 177, 86, 8, 202, 129, 244, 65, 22, 145, 198, 38, 82,\n\t\t204, 116, 124, 232, 209, 81, 113, 202, 169, 158, 131, 129,\n\t\t188, 178, 199, 112, 133, 95, 230, 155, 78, 101, 202, 97, 89,\n\t\t204, 31, 22, 181, 203, 239, 157, 221, 109, 205, 117, 189,\n\t\t252, 153, 102, 177, 93, 110, 43, 172, 45, 27, 63, 187, 81,\n\t\t194, 232, 239, 141, 213, 35, 16, 107, 186, 96, 133, 201, 26,\n\t\t76, 104, 248, 98, 180, 58, 221, 31, 200, 16, 18, 44, 246,\n\t\t9, 19, 31, 223, 253, 137, 69, 35, 51, 37, 87, 63, 150, 180,\n\t\t41, 105, 113, 229, 56, 235, 70, 35, 4, 181, 223, 244, 86,\n\t\t139, 190, 74, 60, 159, 17, 167, 76, 13, 83, 188, 5, 54, 250,\n\t\t111, 116, 170, 27, 23, 108, 72, 166, 67, 66, 182, 175, 77,\n\t\t120, 6, 17, 220, 73, 90, 245, 200, 230, 77, 168, 79, 45, 96,\n\t\t28, 47, 106, 160, 39, 235, 61, 190, 79, 69, 60, 221, 211,\n\t\t103, 1, 69, 24, 243, 123, 234, 212, 142, 181, 209, 8, 113,\n\t\t4, 36, 9, 241, 135, 134, 159, 90, 145, 255, 139, 52, 199,\n\t\t15, 124, 79, 195, 229, 245, 179, 253, 175, 87, 233, 253, 188,\n\t\t112, 190, 244, 191, 217, 35, 65, 190, 99, 209, 71, 163, 65,\n\t\t255, 86, 82, 118, 46, 245, 240, 238, 249, 20, 233, 217, 17,\n\t\t41, 85, 64, 92, 4, 203, 129, 108, 50, 83, 23, 222, 159, 105,\n\t\t169, 160, 242, 178, 252, 3, 91, 57, 12, 32, 39, 1, 26, 21,\n\t\t22, 82, 100, 121, 219, 0, 51, 34, 144, 26, 177, 103, 172,\n\t\t54, 6, 19, 33, 186, 89, 217, 82, 228, 102, 72, 129, 172, 153,\n\t\t174, 8, 186, 145, 73, 236, 30, 51, 4, 74, 169, 36, 225, 166,\n\t\t158, 116, 20, 10, 48, 85, 226, 200, 140, 84, 202, 150, 120,\n\t\t152, 113, 32, 152, 147, 183, 220, 155, 205, 80, 133, 32, 85,\n\t\t9, 37, 19, 230, 129, 173, 213, 53, 238, 162, 196, 118, 55,\n\t\t119, 78, 225, 34, 215, 42, 81, 115, 237, 215, 220, 158, 72,\n\t\t151, 247, 160, 29, 114, 169, 101, 179, 149, 100, 113, 96,\n\t\t169, 129, 227, 52, 243, 170, 95, 209, 96, 230, 182, 138, 133,\n\t\t28, 127, 145, 96, 13, 17, 137, 117, 109, 111, 56, 69, 111,\n\t\t243, 243, 230, 40, 55, 72, 123, 170, 212, 73, 179, 35, 167,\n\t\t59, 34, 247, 186, 159, 94, 234, 188, 157, 252, 236, 194, 250,\n\t\t31, 175, 46, 169, 106, 204, 79, 248, 45, 50, 209, 116, 82,\n\t\t50, 146, 151, 190, 198, 104, 170, 157, 142, 199, 220, 118,\n\t\t210, 212, 158, 243, 17, 109, 232, 207, 75, 24, 44, 44, 62,\n\t\t206, 178, 130, 32, 9, 45, 138, 23, 182, 159, 43, 103, 249,\n\t\t66, 207, 254, 21, 243, 95, 191, 216, 45, 211, 157, 233, 226,\n\t\t183, 115, 201, 102, 110, 174, 138, 238, 28, 139, 116, 22,\n\t\t91, 41, 201, 108, 80, 142, 218, 196, 53, 106, 145, 222, 220,\n\t\t0, 246, 95, 205, 0, 157, 74, 118, 86, 255, 211, 252, 110,\n\t\t248, 115, 87, 9, 207, 1, 88, 192, 169, 40, 244, 86, 181, 3,\n\t\t255, 34, 165, 97, 57, 62, 8, 245, 173, 45, 103, 242, 157,\n\t\t59, 225, 247, 58, 164, 213, 28, 158, 159, 63, 42, 66, 243,\n\t\t58, 15, 240, 39, 161, 212, 10, 50, 78, 221, 36, 106, 171,\n\t\t153, 172, 28, 209, 38, 24, 149, 142, 26, 133, 135, 52, 86,\n\t\t52, 203, 128, 126, 231, 111, 74, 19, 31, 205, 221, 172, 89,\n\t\t91, 96, 152, 32, 167, 183, 86, 165, 34, 170, 65, 181, 143,\n\t\t246, 121, 124, 255, 213, 91, 151, 202, 138, 29, 222, 184,\n\t\t77, 205, 175, 1, 118, 81, 97, 15, 238, 199, 171, 65, 63, 249,\n\t\t201, 228, 84, 116, 222, 186, 249, 242, 181, 30, 101, 149,\n\t\t124, 59, 6, 208, 194, 203, 76, 83, 160, 3, 237, 149, 1, 195,\n\t\t250, 204, 162, 44, 57, 122, 5, 26, 124, 77, 140, 236, 221,\n\t\t79, 39, 22, 151, 14, 43, 205, 226, 17, 115, 176, 217, 180,\n\t\t114, 147, 142, 146, 248, 174, 183, 150, 207, 134, 53, 78,\n\t\t232, 168, 124, 225, 238, 91, 37, 49, 114, 118, 119, 163, 114,\n\t\t234, 216, 151, 158, 248, 146, 171, 54, 104, 68, 2, 102, 144,\n\t\t141, 39, 51, 33, 177, 241, 54, 146, 194, 148, 38, 68, 54,\n\t\t86, 67, 8, 98, 139, 166, 247, 168, 62, 174, 46, 168, 112,\n\t\t50, 77, 83, 228, 52, 198, 88, 165, 36, 230, 163, 91, 207,\n\t\t14, 48, 87, 72, 41, 93, 148, 75, 53, 158, 250, 31, 121, 148,\n\t\t179, 160, 229, 216, 189, 4, 135, 48, 53, 147, 245, 252, 165,\n\t\t96, 25, 224, 188, 206, 138, 152, 147, 211, 115, 5, 0, 107,\n\t\t69, 177, 238, 229, 37, 168, 222, 219, 38, 150, 248, 26, 148,\n\t\t94, 121, 33, 117, 222, 200, 227, 234, 120, 87, 5, 119, 249,\n\t\t210, 152, 157, 221, 94, 55, 108, 13, 197, 148, 109, 198, 179,\n\t\t106, 109, 94, 55, 10, 48, 101, 74, 222, 143, 93, 182, 52,\n\t\t9, 222, 216, 93, 139, 145, 250, 246, 39, 250, 26, 118, 132,\n\t\t246, 97, 63, 135, 194, 174, 177, 135, 60, 247, 44, 62, 171,\n\t\t134, 250, 17, 66, 49, 182, 179, 179, 54, 225, 229, 60, 92,\n\t\t43, 202, 178, 48, 184, 4, 13, 166, 42, 49, 19, 234, 206, 187,\n\t\t132, 93, 77, 48, 6, 230, 215, 245, 125, 82, 37, 175, 15, 158,\n\t\t213, 255, 239, 224, 158, 64, 45, 49, 74, 127, 56, 48, 131,\n\t\t147, 234, 216, 77, 97, 255, 229, 67, 237, 40, 5, 113, 223,\n\t\t2, 167, 235, 78, 160, 33, 156, 187, 215, 218, 118, 168, 105,\n\t\t160, 207, 5, 20, 5, 60, 45, 124, 200, 150, 90, 125, 17, 247,\n\t\t154, 222, 80, 80, 142, 192, 56, 83, 22, 187, 215, 100, 239,\n\t\t219, 42, 205, 245, 243, 197, 214, 129, 226, 185, 137, 82,\n\t\t124, 85, 190, 130, 11, 43, 189, 112, 167, 81, 70, 81, 108,\n\t\t55, 162, 58, 55, 60, 14, 22, 37, 172, 215, 220, 13, 180, 191,\n\t\t228, 190, 249, 223, 153, 2, 194, 166, 172, 134, 95, 161, 86,\n\t\t75, 67, 167, 240, 242, 158, 78, 120, 133, 71, 116, 146, 47,\n\t\t252, 183, 191, 189, 61, 153, 244, 207, 28, 127, 74, 84, 12,\n\t\t112, 6, 165, 214, 215, 151, 154, 35, 27, 23, 119, 182, 247,\n\t\t241, 59, 180, 205, 220, 96, 246, 220, 19, 172, 128, 49, 172,\n\t\t110, 185, 157, 151, 7, 195, 193, 205, 23, 253, 191, 209, 11,\n\t\t65, 53, 190, 114, 225, 172, 189, 128, 126, 243, 42, 253, 190,\n\t\t237, 148, 124, 149, 36, 178, 96, 235, 158, 219, 8, 60, 45,\n\t\t166, 91, 153, 153, 192, 111, 122, 88, 104, 22, 180, 93, 175,\n\t\t59, 129, 174, 121, 116, 45, 106, 219, 44, 176, 143, 43, 5,\n\t\t127, 206, 138, 184, 60, 107, 125, 179, 143, 105, 85, 245,\n\t\t171, 154, 190, 123, 180, 47, 29, 191, 186, 50, 178, 16, 81,\n\t\t109, 196, 178, 141, 36, 184, 58, 26, 49, 118, 18, 118, 217,\n\t\t112, 96, 20, 135, 239, 241, 196, 205, 236, 99, 75, 1, 37,\n\t\t119, 197, 254, 62, 50, 1, 251, 50, 250, 136, 122, 79, 233,\n\t\t118, 155, 98, 76, 228, 215, 171, 242, 200, 1, 53, 32, 27,\n\t\t82, 248, 3, 106, 78, 206, 71, 237, 253, 39, 199, 20, 45, 37,\n\t\t213, 58, 123, 229, 151, 71, 180, 135, 131, 19, 223, 244, 211,\n\t\t230, 225, 250, 124, 75, 64, 125, 236, 174, 33, 232, 231, 11,\n\t\t102, 170, 76, 45, 121, 212, 187, 196, 68, 114, 230, 170, 107,\n\t\t190, 3, 84, 224, 196, 109, 75, 101, 12, 21, 114, 252, 200,\n\t\t2, 238, 34, 178, 58, 160, 171, 46, 131, 187, 232, 175, 34,\n\t\t76, 3, 208, 41, 91, 84, 246, 121, 85, 232, 47, 34, 191, 35,\n\t\t94, 133, 79, 86, 129, 23, 98, 3, 166, 114, 215, 104, 11, 100,\n\t\t4, 125, 15, 180, 139, 227, 217, 164, 172, 233, 83, 40, 108,\n\t\t24, 177, 81, 35, 8, 194, 124, 198, 200, 207, 92, 6, 26, 52,\n\t\t99, 71, 82, 43, 108, 12, 244, 36, 151, 111, 26, 107, 172,\n\t\t149, 208, 202, 73, 18, 145, 249, 169, 191, 229, 234, 200,\n\t\t104, 197, 142, 51, 37, 251, 115, 250, 189, 225, 65, 170, 6,\n\t\t8, 190, 134, 112, 29, 196, 71, 167, 185, 229, 68, 32, 150,\n\t\t39, 67, 44, 234, 113, 49, 173, 27, 189, 224, 205, 11, 194,\n\t\t160, 241, 94, 234, 183, 218, 104, 207, 75, 182, 246, 238,\n\t\t19, 102, 186, 116, 200, 107, 227, 2, 177, 240, 236, 254, 160,\n\t\t220, 231, 146, 162, 22, 13, 136, 158, 255, 4, 87, 100, 118,\n\t\t57, 138, 245, 218, 243, 189, 184, 93, 35, 32, 88, 181, 211,\n\t\t23, 16, 159, 70, 146, 208, 224, 156, 186, 190, 242, 108, 145,\n\t\t96, 135, 233, 10, 131, 19, 0, 40, 126, 57, 151, 14, 27, 141,\n\t\t26, 60, 52, 40, 84, 248, 107, 39, 161, 67, 90, 229, 54, 210,\n\t\t110, 66, 0, 89, 88, 19, 243, 113, 234, 13, 62, 210, 109, 187,\n\t\t229, 20, 149, 3, 8, 184, 40, 122, 141, 249, 248, 98, 249,\n\t\t139, 143, 127, 119, 123, 176, 62, 157, 159, 41, 79, 200, 34,\n\t\t65, 12, 112, 216, 26, 36, 134, 224, 94, 187, 209, 202, 100,\n\t\t68, 0, 82, 230, 82, 140, 172, 235, 71, 164, 97, 63, 59, 56,\n\t\t109, 13, 34, 163, 173, 251, 221, 164, 218, 153, 44, 99, 245,\n\t\t92, 25, 192, 246, 163, 76, 96, 109, 181, 186, 235, 165, 135,\n\t\t163, 5, 234, 212, 245, 244, 121, 97, 213, 54, 222, 254, 242,\n\t\t74, 16, 108, 249, 237, 17, 125, 233, 80, 121, 116, 46, 76,\n\t\t113, 255, 107, 177, 105, 216, 253, 27, 220, 178, 209, 122,\n\t\t252, 44, 205, 59, 23, 210, 185, 251, 52, 144, 173, 61, 110,\n\t\t209, 69, 43, 81, 16, 153, 127, 178, 99, 63, 250, 110, 39,\n\t\t251, 225, 95, 71, 217, 119, 131, 20, 1, 225, 181, 97, 230,\n\t\t253, 247, 135, 214, 235, 39, 218, 86, 232, 32, 252, 98, 188,\n\t\t209, 45, 60, 241, 86, 55, 247, 201, 213, 133, 220, 7, 110,\n\t\t134, 33, 130, 235, 227, 252, 123, 31, 140, 157, 215, 254,\n\t\t210, 115, 30, 243, 141, 119, 143, 177, 69, 21, 107, 64, 180,\n\t\t35, 96, 44, 62, 175, 161, 51, 55, 202, 168, 246, 52, 141,\n\t\t250, 9, 236, 41, 47, 97, 65, 57, 29, 219, 31, 199, 254, 76,\n\t\t28, 56, 80, 20, 214, 98, 115, 202, 28, 172, 193, 200, 55,\n\t\t167, 227, 213, 118, 160, 5, 202, 133, 189, 199, 95, 223, 255,\n\t\t231, 159, 123, 187, 235, 137, 43, 110, 136, 56, 211, 140,\n\t\t19, 214, 171, 60, 135, 235, 237, 9, 181, 135, 45, 194, 50,\n\t\t139, 178, 220, 171, 252, 18, 198, 194, 119, 175, 60, 60, 184,\n\t\t156, 108, 100, 21, 127, 152, 174, 220, 29, 42, 27, 171, 24,\n\t\t40, 109, 199, 99, 145, 210, 250, 207, 138, 57, 97, 68, 63,\n\t\t22, 79, 78, 54, 227, 171, 15, 141, 42, 140, 65, 8, 215, 222,\n\t\t17, 74, 76, 6, 138, 227, 175, 246, 131, 223, 144, 31, 15,\n\t\t255, 173, 50, 27, 238, 190, 201, 205, 67, 29, 150, 149, 106,\n\t\t102, 63, 185, 70, 43, 37, 229, 77, 185, 203, 156, 27, 98,\n\t\t245, 218, 69, 217, 217, 53, 79, 138, 250, 209, 117, 98, 52,\n\t\t202, 37, 140, 238, 186, 250, 109, 148, 94, 217, 46, 227, 46,\n\t\t176, 237, 223, 107, 31, 54, 200, 165, 81, 235, 154, 188, 79,\n\t\t56, 5, 96, 230, 194, 40, 175, 21, 25, 125, 0, 132, 186, 229,\n\t\t81, 58, 210, 227, 150, 145, 195, 243, 232, 10, 242, 90, 194,\n\t\t231, 198, 170, 100, 156, 240, 35, 227, 251, 89, 82, 241, 52,\n\t\t115, 89, 204, 15, 49, 119, 100, 155, 15, 20, 69, 116, 146,\n\t\t162, 129, 131, 103, 103, 35, 180, 124, 214, 176, 217, 124,\n\t\t40, 62, 49, 44, 80, 174, 255, 84, 129, 29, 102, 197, 218,\n\t\t246, 147, 148, 240, 89, 23, 124, 72, 3, 31, 113, 48, 83, 82,\n\t\t65, 164, 208, 78, 31, 78, 207, 42, 56, 16, 28, 126, 207, 237,\n\t\t167, 245, 109, 31, 149, 222, 185, 166, 172, 156, 21, 128,\n\t\t187, 172, 46, 156, 154, 126, 100, 192, 149, 177, 4, 37, 98,\n\t\t147, 48, 189, 226, 210, 250, 173, 47, 146, 85, 56, 112, 52,\n\t\t41, 192, 21, 192, 52, 24, 2, 82, 234, 114, 25, 165, 29, 123,\n\t\t78, 33, 154, 76, 56, 58, 84, 220, 234, 46, 80, 97, 228, 72,\n\t\t232, 236, 50, 98, 97, 137, 128, 81, 12, 186, 56, 17, 32, 158,\n\t\t117, 153, 114, 50, 20, 114, 237, 92, 112, 43, 118, 21, 12,\n\t\t99, 166, 60, 167, 81, 236, 38, 32, 190, 224, 190, 16, 157,\n\t\t206, 55, 178, 154, 170, 137, 182, 94, 235, 154, 70, 64, 92,\n\t\t67, 48, 77, 69, 208, 227, 210, 232, 75, 73, 239, 5, 57, 67,\n\t\t240, 15, 69, 226, 232, 251, 157, 124, 15, 57, 162, 128, 134,\n\t\t130, 35, 185, 171, 133, 103, 216, 156, 60, 128, 42, 201, 162,\n\t\t236, 47, 9, 104, 169, 223, 153, 133, 179, 3, 214, 98, 188,\n\t\t254, 203, 36, 105, 132, 163, 9, 253, 184, 103, 238, 114, 218,\n\t\t29, 176, 49, 201, 115, 54, 169, 135, 102, 37, 159, 221, 30,\n\t\t81, 170, 120, 35, 245, 210, 17, 13, 57, 173, 16, 87, 192,\n\t\t198, 140, 60, 167, 26, 74, 156, 191, 233, 114, 86, 125, 22,\n\t\t157, 246, 115, 159, 96, 188, 94, 26, 82, 229, 165, 246, 250,\n\t\t91, 90, 90, 96, 158, 183, 198, 132, 18, 181, 118, 185, 66,\n\t\t215, 84, 18, 241, 175, 146, 69, 26, 217, 58, 190, 60, 187,\n\t\t49, 127, 193, 29, 19, 179, 156, 184, 47, 192, 30, 131, 226,\n\t\t23, 123, 54, 255, 143, 251, 4, 184, 103, 129, 205, 210, 40,\n\t\t154, 108, 241, 92, 236, 161, 67, 173, 30, 121, 46, 225, 11,\n\t\t100, 201, 239, 60, 15, 123, 32, 191, 58, 22, 139, 96, 153,\n\t\t182, 191, 154, 59, 48, 217, 212, 34, 149, 249, 204, 118, 161,\n\t\t221, 113, 145, 184, 156, 136, 216, 118, 56, 94, 75, 9, 250,\n\t\t134, 67, 84, 173, 182, 221, 158, 243, 192, 88, 96, 20, 213,\n\t\t205, 219, 50, 90, 207, 124, 17, 55, 106, 62, 168, 200, 187,\n\t\t94, 166, 106, 250, 238, 55, 221, 154, 202, 150, 35, 255, 244,\n\t\t200, 220, 56, 229, 45, 31, 191, 124, 33, 203, 179, 152, 16,\n\t\t200, 112, 213, 190, 98, 79, 53, 151, 216, 237, 187, 23, 147,\n\t\t121, 197, 73, 175, 215, 135, 61, 242, 182, 80, 132, 3, 248,\n\t\t8, 50, 157, 52, 57, 219, 201, 220, 16, 149, 81, 182, 151,\n\t\t166, 231, 123, 217, 4, 110, 205, 117, 167, 147, 189, 187,\n\t\t11, 170, 109, 220, 44, 78, 121, 82, 183, 232, 203, 128, 132,\n\t\t189, 194, 127, 107, 53, 66, 26, 80, 11, 242, 117, 174, 14,\n\t\t145, 21, 139, 251, 199, 35, 210, 89, 154, 122, 166, 54, 78,\n\t\t213, 89, 81, 97, 177, 49, 199, 77, 194, 156, 237, 88, 200,\n\t\t42, 42, 211, 134, 170, 180, 181, 209, 92, 101, 186, 225, 116,\n\t\t136, 10, 84, 117, 143, 254, 19, 191, 233, 127, 65, 134, 130,\n\t\t116, 99, 81, 140, 94, 242, 137, 230, 131, 148, 92, 30, 213,\n\t\t250, 241, 147, 224, 133, 100, 254, 186, 254, 63, 47, 49, 99,\n\t\t26, 183, 215, 203, 129, 177, 34, 100, 13, 233, 94, 225, 129,\n\t\t207, 63, 73, 239, 28, 190, 158, 238, 61, 81, 101, 246, 53,\n\t\t229, 223, 79, 132, 189, 190, 21, 13, 119, 238, 181, 181, 175,\n\t\t132, 255, 107, 199, 41, 166, 86, 88, 16, 198, 59, 118, 105,\n\t\t87, 178, 187, 169, 20, 131, 18, 65, 51, 153, 240, 203, 195,\n\t\t200, 189, 39, 32, 36, 214, 124, 180, 156, 205, 58, 11, 245,\n\t\t56, 39, 165, 106, 8, 154, 105, 174, 252, 185, 252, 69, 211,\n\t\t178, 102, 203, 234, 93, 25, 45, 190, 153, 208, 61, 78, 211,\n\t\t40, 5, 101, 68, 33, 149, 19, 249, 65, 10, 169, 185, 162, 218,\n\t\t183, 121, 116, 78, 45, 183, 116, 19, 177, 1, 170, 21, 110,\n\t\t29, 205, 133, 169, 94, 43, 13, 247, 182, 139, 18, 34, 215,\n\t\t36, 171, 219, 198, 207, 111, 107, 133, 134, 128, 156, 240,\n\t\t158, 230, 105, 32, 23, 110, 216, 47, 168, 77, 80, 71, 84,\n\t\t16, 42, 90, 244, 209, 120, 197, 72, 181, 137, 43, 9, 139,\n\t\t106, 30, 149, 18, 159, 113, 101, 250, 209, 204, 252, 97, 123,\n\t\t221, 143, 166, 26, 136, 115, 47, 175, 124, 247, 242, 251,\n\t\t136, 197, 151, 119, 102, 162, 51, 239, 201, 110, 37, 145,\n\t\t177, 71, 176, 52, 208, 15, 242, 193, 147, 0, 146, 125, 83,\n\t\t124, 166, 43, 47, 245, 99, 245, 73, 65, 92, 120, 169, 254,\n\t\t245, 193, 221, 153, 220, 189, 7, 227, 4, 209, 80, 247, 104,\n\t\t3, 67, 112, 170, 119, 211, 55, 36, 118, 32, 217, 191, 155,\n\t\t164, 67, 110, 254, 192, 82, 212, 242, 18, 128, 216, 0, 29,\n\t\t99, 251, 95, 162, 244, 190, 209, 117, 164, 80, 197, 85, 200,\n\t\t212, 98, 161, 47, 5, 239, 56, 145, 234, 56, 0, 189, 203, 36,\n\t\t205, 192, 250, 171, 70, 190, 218, 77, 158, 232, 60, 20, 219,\n\t\t2, 55, 132, 57, 45, 205, 89, 14, 124, 228, 57, 249, 78, 3,\n\t\t250, 5, 1, 3, 70, 178, 7, 29, 169, 51, 224, 9, 215, 115, 84,\n\t\t229, 194, 145, 220, 121, 216, 50, 61, 40, 201, 78, 82, 233,\n\t\t205, 189, 122, 89, 224, 23, 175, 45, 220, 186, 123, 250, 12,\n\t\t250, 143, 8, 85, 107, 132, 223, 25, 174, 159, 244, 190, 60,\n\t\t153, 61, 240, 37, 201, 146, 212, 153, 207, 182, 135, 206,\n\t\t225, 128, 149, 2, 117, 187, 255, 44, 196, 35, 93, 234, 221,\n\t\t142, 223, 212, 166, 136, 163, 137, 155, 122, 205, 197, 217,\n\t\t239, 245, 159, 209, 146, 200, 30, 101, 190, 50, 173, 144,\n\t\t16, 209, 13, 51, 146, 219, 165, 126, 211, 181, 137, 60, 97,\n\t\t0, 42, 129, 20, 16, 195, 149, 229, 9, 84, 41, 124, 35, 102,\n\t\t17, 119, 117, 13, 71, 152, 36, 106, 193, 167, 105, 65, 244,\n\t\t38, 250, 182, 45, 11, 182, 215, 85, 5, 208, 248, 60, 120,\n\t\t62, 72, 149, 114, 111, 158, 29, 227, 12, 104, 166, 28, 137,\n\t\t201, 162, 185, 24, 39, 224, 83, 42, 137, 85, 40, 183, 48,\n\t\t250, 135, 169, 169, 204, 204, 77, 178, 139, 129, 217, 237,\n\t\t59, 94, 96, 116, 159, 251, 229, 193, 49, 43, 191, 58, 149,\n\t\t111, 151, 202, 164, 113, 142, 251, 64, 56, 120, 106, 51, 187,\n\t\t63, 24, 148, 6, 218, 232, 110, 97, 140, 229, 94, 172, 78,\n\t\t129, 111, 53, 45, 247, 118, 107, 104, 8, 231, 231, 63, 52,\n\t\t26, 167, 34, 163, 200, 232, 225, 186, 21, 77, 140, 249, 185,\n\t\t169, 140, 165, 121, 124, 223, 219, 121, 200, 152, 49, 155,\n\t\t49, 43, 55, 201, 142, 61, 230, 58, 227, 199, 29, 119, 204,\n\t\t154, 156, 88, 156, 58, 62, 229, 176, 40, 179, 73, 253, 213,\n\t\t196, 91, 241, 29, 87, 87, 191, 72, 150, 191, 46, 130, 79,\n\t\t230, 175, 8, 75, 115, 34, 176, 207, 149, 220, 249, 137, 57,\n\t\t97, 122, 206, 161, 79, 99, 3, 29, 149, 87, 214, 131, 218,\n\t\t132, 5, 249, 71, 164, 244, 94, 246, 247, 2, 151, 228, 163,\n\t\t28, 72, 165, 109, 184, 61, 50, 211, 101, 73, 70, 85, 79, 83,\n\t\t73, 186, 113, 170, 138, 7, 14, 53, 173, 41, 169, 92, 240,\n\t\t89, 242, 105, 174, 189, 69, 135, 115, 21, 75, 199, 93, 38,\n\t\t8, 36, 23, 244, 184, 22, 46, 248, 176, 208, 197, 36, 30, 21,\n\t\t2, 159, 8, 120, 65, 156, 172, 147, 33, 75, 198, 80, 101, 17,\n\t\t41, 111, 34, 64, 82, 230, 0, 43, 63, 171, 217, 71, 41, 100,\n\t\t197, 246, 52, 91, 21, 69, 228, 13, 46, 209, 108, 25, 164,\n\t\t254, 36, 154, 145, 145, 125, 132, 95, 16, 193, 127, 123, 252,\n\t\t116, 64, 73, 238, 221, 4, 36, 14, 162, 26, 200, 89, 220, 35,\n\t\t209, 88, 145, 81, 53, 20, 40, 127, 32, 3, 168, 111, 255, 236,\n\t\t237, 98, 64, 236, 162, 245, 26, 57, 180, 58, 125, 140, 188,\n\t\t177, 134, 94, 239, 229, 87, 158, 159, 190, 85, 216, 78, 154,\n\t\t159, 201, 138, 152, 40, 54, 38, 195, 214, 170, 254, 175, 203,\n\t\t167, 224, 153, 91, 57, 161, 251, 249, 204, 27, 255, 0, 115,\n\t\t243, 216, 211, 53, 69, 0, 248, 232, 29, 147, 143, 217, 63,\n\t\t252, 130, 245, 246, 179, 251, 132, 62, 20, 191, 21, 119, 152,\n\t\t126, 183, 58, 82, 162, 243, 121, 220, 235, 156, 169, 63, 14,\n\t\t237, 43, 251, 159, 181, 158, 225, 203, 53, 159, 91, 85, 146,\n\t\t52, 125, 131, 80, 116, 125, 40, 122, 165, 62, 188, 15, 239,\n\t\t191, 189, 175, 58, 108, 4, 129, 115, 172, 34, 247, 251, 107,\n\t\t158, 161, 93, 107, 226, 232, 216, 107, 122, 48, 212, 182,\n\t\t153, 13, 7, 202, 2, 82, 67, 225, 77, 35, 170, 82, 246, 214,\n\t\t197, 143, 86, 132, 241, 38, 169, 237, 46, 12, 34, 246, 227,\n\t\t165, 136, 65, 83, 206, 130, 32, 103, 247, 126, 29, 57, 229,\n\t\t46, 112, 75, 22, 136, 71, 11, 106, 5, 194, 230, 89, 193, 122,\n\t\t14, 183, 184, 236, 22, 232, 178, 134, 238, 192, 168, 179,\n\t\t32, 68, 130, 56, 205, 49, 107, 2, 33, 233, 17, 221, 64, 173,\n\t\t204, 146, 251, 157, 64, 197, 103, 227, 22, 50, 244, 189, 196,\n\t\t41, 190, 162, 210, 218, 245, 132, 130, 119, 21, 20, 15, 198,\n\t\t190, 243, 137, 210, 57, 183, 175, 61, 140, 249, 124, 202,\n\t\t252, 138, 30, 227, 96, 106, 88, 204, 89, 215, 29, 180, 39,\n\t\t26, 83, 165, 150, 183, 113, 253, 254, 194, 152, 230, 183,\n\t\t179, 79, 103, 194, 200, 169, 107, 14, 5, 30, 80, 20, 53, 246,\n\t\t37, 47, 241, 62, 237, 204, 97, 14, 237, 153, 84, 108, 228,\n\t\t219, 120, 16, 104, 156, 169, 62, 130, 17, 46, 158, 138, 250,\n\t\t100, 36, 21, 40, 49, 140, 112, 174, 53, 193, 15, 215, 164,\n\t\t232, 150, 249, 183, 11, 235, 150, 127, 233, 111, 130, 174,\n\t\t191, 62, 86, 156, 123, 14, 135, 146, 98, 195, 198, 160, 231,\n\t\t50, 209, 140, 204, 130, 70, 130, 81, 225, 177, 49, 241, 50,\n\t\t35, 111, 28, 246, 13, 151, 30, 174, 191, 217, 185, 107, 180,\n\t\t57, 127, 97, 75, 220, 215, 174, 28, 7, 5, 12, 110, 49, 115,\n\t\t36, 239, 113, 251, 206, 62, 151, 42, 131, 116, 61, 132, 227,\n\t\t154, 107, 52, 63, 188, 61, 53, 166, 102, 164, 171, 87, 197,\n\t\t153, 226, 213, 9, 223, 128, 250, 114, 111, 38, 87, 161, 24,\n\t\t34, 91, 25, 243, 255, 163, 94, 22, 151, 212, 23, 179, 238,\n\t\t60, 182, 220, 46, 208, 180, 178, 186, 99, 112, 72, 216, 27,\n\t\t59, 39, 86, 85, 225, 60, 167, 54, 198, 70, 189, 8, 253, 218,\n\t\t108, 185, 255, 18, 191, 34, 1, 236, 89, 141, 95, 210, 213,\n\t\t166, 249, 205, 211, 43, 237, 188, 38, 24, 62, 48, 227, 43,\n\t\t104, 24, 165, 156, 85, 96, 157, 237, 40, 76, 208, 238, 17,\n\t\t3, 201, 30, 12, 162, 34, 3, 33, 127, 35, 109, 63, 183, 230,\n\t\t58, 69, 61, 63, 242, 224, 245, 71, 199, 31, 190, 182, 48,\n\t\t86, 221, 95, 233, 218, 142, 182, 130, 236, 216, 72, 240, 198,\n\t\t235, 159, 171, 123, 151, 218, 142, 233, 117, 221, 101, 229,\n\t\t208, 87, 0, 181, 117, 42, 236, 239, 169, 134, 200, 12, 56,\n\t\t115, 126, 120, 254, 220, 50, 239, 202, 150, 10, 128, 40, 201,\n\t\t159, 105, 183, 118, 128, 169, 93, 197, 110, 246, 62, 82, 192,\n\t\t15, 238, 102, 126, 114, 158, 240, 0, 36, 213, 164, 186, 38,\n\t\t44, 163, 205, 147, 149, 211, 248, 165, 92, 253, 246, 242,\n\t\t161, 175, 82, 40, 199, 8, 126, 243, 137, 94, 83, 124, 225,\n\t\t207, 116, 117, 208, 111, 28, 155, 110, 172, 14, 86, 191, 125,\n\t\t191, 116, 99, 211, 136, 166, 15, 111, 36, 242, 239, 187, 152,\n\t\t5, 41, 253, 110, 28, 127, 115, 255, 181, 50, 63, 132, 140,\n\t\t21, 83, 16, 11, 114, 106, 95, 67, 188, 11, 201, 12, 211, 19,\n\t\t221, 67, 60, 219, 103, 67, 128, 245, 162, 214, 190, 233, 226,\n\t\t48, 76, 196, 141, 2, 211, 117, 125, 199, 185, 137, 170, 151,\n\t\t46, 242, 30, 230, 136, 186, 221, 207, 86, 76, 154, 78, 200,\n\t\t44, 14, 240, 129, 186, 113, 185, 154, 83, 152, 180, 152, 97,\n\t\t12, 33, 137, 70, 241, 230, 35, 165, 250, 73, 223, 140, 186,\n\t\t113, 28, 148, 120, 96, 106, 216, 3, 75, 58, 28, 190, 201,\n\t\t60, 75, 230, 60, 12, 229, 254, 96, 44, 109, 128, 142, 121,\n\t\t172, 118, 214, 132, 103, 22, 69, 152, 146, 30, 169, 103, 209,\n\t\t22, 118, 204, 56, 14, 188, 82, 129, 186, 95, 251, 19, 186,\n\t\t141, 173, 214, 198, 135, 36, 125, 232, 135, 123, 195, 88,\n\t\t155, 155, 173, 52, 143, 172, 113, 22, 88, 199, 169, 236, 235,\n\t\t177, 100, 44, 6, 210, 220, 230, 36, 178, 92, 205, 118, 58,\n\t\t206, 10, 52, 103, 37, 210, 155, 137, 179, 223, 237, 27, 146,\n\t\t149, 22, 0, 0, 241, 126, 177, 121, 196, 169, 226, 58, 100,\n\t\t29, 194, 175, 103, 43, 71, 11, 69, 54, 138, 121, 70, 130,\n\t\t228, 141, 179, 136, 51, 82, 69, 80, 9, 152, 26, 26, 39, 187,\n\t\t10, 41, 13, 19, 85, 118, 225, 34, 12, 73, 119, 186, 44, 75,\n\t\t237, 33, 51, 137, 237, 252, 146, 231, 46, 157, 4, 104, 92,\n\t\t64, 136, 89, 103, 6, 50, 29, 123, 41, 83, 47, 181, 168, 156,\n\t\t78, 133, 113, 9, 138, 108, 178, 128, 205, 105, 69, 222, 119,\n\t\t132, 196, 220, 202, 183, 123, 146, 67, 157, 20, 87, 164, 14,\n\t\t251, 220, 68, 105, 16, 163, 74, 254, 88, 159, 79, 108, 29,\n\t\t57, 19, 178, 162, 200, 104, 175, 117, 86, 36, 234, 212, 98,\n\t\t137, 11, 138, 69, 84, 128, 116, 41, 98, 139, 147, 243, 87,\n\t\t196, 43, 251, 102, 232, 54, 110, 169, 109, 208, 80, 57, 225,\n\t\t46, 239, 90, 51, 41, 97, 73, 87, 153, 81, 153, 32, 210, 112,\n\t\t229, 68, 92, 6, 151, 145, 205, 109, 16, 12, 209, 98, 63, 234,\n\t\t133, 197, 172, 64, 133, 140, 151, 109, 212, 44, 70, 174, 68,\n\t\t27, 147, 17, 74, 160, 207, 44, 0, 118, 200, 131, 26, 100,\n\t\t142, 61, 49, 14, 117, 143, 17, 237, 188, 40, 43, 20, 202,\n\t\t45, 109, 1, 138, 68, 175, 21, 246, 80, 177, 146, 222, 180,\n\t\t129, 112, 184, 206, 229, 109, 228, 177, 184, 65, 39, 1, 140,\n\t\t69, 67, 77, 105, 167, 93, 126, 7, 26, 86, 95, 93, 218, 107,\n\t\t246, 103, 29, 122, 237, 228, 6, 166, 47, 182, 214, 252, 176,\n\t\t23, 184, 215, 172, 184, 229, 15, 245, 182, 138, 24, 52, 229,\n\t\t30, 60, 219, 34, 19, 63, 46, 66, 96, 53, 185, 233, 27, 116,\n\t\t57, 91, 239, 173, 242, 80, 219, 180, 80, 178, 212, 189, 243,\n\t\t195, 190, 41, 133, 109, 71, 149, 2, 162, 230, 119, 7, 91,\n\t\t255, 121, 241, 224, 228, 189, 241, 240, 56, 50, 25, 220, 162,\n\t\t244, 63, 65, 217, 218, 134, 49, 213, 168, 194, 101, 163, 59,\n\t\t66, 128, 236, 83, 197, 53, 111, 203, 5, 147, 144, 159, 59,\n\t\t123, 160, 27, 226, 12, 252, 246, 106, 185, 75, 138, 172, 74,\n\t\t103, 247, 124, 185, 229, 32, 150, 75, 101, 131, 206, 169,\n\t\t187, 141, 215, 94, 126, 80, 187, 175, 109, 143, 42, 206, 202,\n\t\t140, 91, 59, 13, 245, 71, 32, 212, 93, 19, 130, 186, 236,\n\t\t42, 53, 194, 247, 201, 40, 139, 120, 234, 48, 4, 91, 145,\n\t\t207, 82, 150, 42, 114, 143, 1, 49, 70, 219, 27, 4, 100, 253,\n\t\t96, 233, 166, 133, 194, 224, 136, 127, 147, 163, 109, 16,\n\t\t241, 2, 71, 124, 131, 144, 208, 156, 150, 44, 239, 197, 211,\n\t\t171, 72, 244, 201, 143, 30, 240, 71, 94, 25, 69, 246, 106,\n\t\t39, 253, 174, 239, 177, 173, 241, 106, 227, 22, 59, 7, 105,\n\t\t12, 235, 27, 44, 173, 115, 22, 157, 149, 163, 23, 118, 181,\n\t\t1, 180, 17, 49, 125, 255, 174, 230, 126, 63, 203, 127, 203,\n\t\t97, 80, 59, 46, 22, 142, 240, 214, 179, 151, 190, 34, 54,\n\t\t94, 129, 115, 255, 25, 114, 251, 93, 96, 62, 177, 215, 121,\n\t\t227, 91, 118, 247, 167, 49, 187, 246, 209, 144, 103, 191,\n\t\t164, 151, 143, 14, 121, 243, 234, 202, 177, 193, 111, 132,\n\t\t87, 46, 198, 107, 175, 229, 35, 158, 223, 191, 215, 185, 138,\n\t\t17, 194, 14, 199, 217, 193, 169, 11, 239, 45, 250, 119, 243,\n\t\t203, 227, 253, 41, 66, 159, 165, 127, 208, 18, 203, 63, 74,\n\t\t209, 131, 157, 229, 191, 8, 39, 2, 118, 188, 47, 3, 26, 228,\n\t\t61, 210, 74, 71, 145, 100, 23, 175, 107, 79, 184, 67, 40,\n\t\t189, 111, 30, 171, 150, 120, 87, 176, 209, 121, 183, 153,\n\t\t79, 111, 198, 215, 135, 68, 80, 209, 175, 175, 80, 51, 136,\n\t\t84, 142, 120, 88, 206, 89, 228, 141, 244, 15, 106, 170, 235,\n\t\t214, 84, 155, 133, 244, 48, 112, 53, 200, 93, 241, 106, 109,\n\t\t11, 202, 171, 41, 181, 48, 253, 87, 53, 63, 173, 60, 144,\n\t\t73, 22, 36, 181, 98, 29, 74, 32, 103, 176, 219, 214, 252,\n\t\t58, 99, 226, 186, 240, 229, 99, 95, 31, 239, 109, 116, 181,\n\t\t114, 42, 80, 91, 16, 11, 152, 228, 210, 29, 146, 91, 220,\n\t\t108, 26, 236, 2, 36, 30, 76, 251, 86, 200, 127, 40, 199, 6,\n\t\t213, 80, 49, 229, 154, 8, 95, 141, 105, 186, 92, 31, 92, 97,\n\t\t64, 194, 196, 226, 180, 61, 4, 120, 86, 177, 23, 247, 62,\n\t\t109, 53, 158, 217, 38, 23, 232, 163, 227, 97, 76, 38, 213,\n\t\t190, 199, 123, 109, 228, 252, 148, 10, 35, 40, 128, 114, 151,\n\t\t188, 109, 112, 139, 194, 4, 243, 241, 199, 35, 165, 159, 127,\n\t\t214, 80, 37, 199, 172, 209, 62, 1, 243, 4, 228, 137, 195,\n\t\t252, 204, 143, 60, 40, 47, 77, 237, 5, 66, 148, 183, 147,\n\t\t225, 144, 179, 183, 36, 248, 190, 82, 9, 79, 50, 245, 204,\n\t\t216, 82, 253, 186, 235, 89, 86, 9, 105, 147, 103, 122, 149,\n\t\t249, 211, 147, 84, 243, 227, 81, 52, 251, 197, 56, 156, 57,\n\t\t205, 39, 143, 9, 250, 8, 31, 231, 154, 90, 144, 86, 89, 147,\n\t\t76, 79, 103, 19, 37, 178, 8, 153, 86, 133, 1, 198, 59, 71,\n\t\t16, 131, 237, 208, 129, 71, 128, 168, 170, 178, 154, 90, 17,\n\t\t60, 83, 224, 193, 192, 179, 93, 89, 128, 96, 153, 133, 65,\n\t\t25, 1, 154, 2, 18, 0, 78, 227, 86, 34, 26, 8, 204, 40, 6,\n\t\t239, 34, 244, 5, 42, 127, 77, 100, 77, 212, 98, 13, 50, 33,\n\t\t229, 12, 72, 88, 85, 115, 135, 52, 162, 16, 1, 62, 62, 25,\n\t\t24, 158, 85, 168, 65, 228, 36, 168, 233, 93, 38, 113, 229,\n\t\t82, 123, 141, 144, 73, 131, 69, 17, 109, 114, 137, 193, 240,\n\t\t16, 153, 208, 4, 157, 192, 220, 144, 0, 56, 0, 20, 134, 62,\n\t\t68, 113, 239, 226, 14, 56, 32, 204, 55, 62, 132, 173, 140,\n\t\t71, 88, 145, 41, 185, 67, 195, 202, 92, 41, 91, 87, 234, 161,\n\t\t181, 235, 85, 169, 128, 221, 36, 125, 102, 179, 59, 95, 110,\n\t\t171, 150, 195, 229, 20, 159, 69, 218, 0, 48, 144, 202, 106,\n\t\t147, 71, 210, 63, 58, 220, 158, 174, 212, 154, 45, 108, 83,\n\t\t238, 220, 85, 122, 235, 108, 85, 58, 55, 57, 61, 43, 12, 184,\n\t\t247, 96, 119, 186, 254, 198, 56, 223, 185, 193, 98, 45, 216,\n\t\t18, 91, 101, 162, 102, 1, 202, 122, 119, 57, 177, 248, 95,\n\t\t164, 28, 196, 76, 184, 49, 6, 119, 58, 201, 12, 97, 9, 145,\n\t\t80, 51, 227, 198, 13, 177, 146, 174, 29, 243, 91, 177, 82,\n\t\t198, 205, 76, 54, 192, 73, 155, 123, 0, 214, 210, 154, 46,\n\t\t147, 67, 40, 104, 139, 78, 129, 168, 163, 17, 89, 101, 69,\n\t\t139, 4, 179, 141, 23, 114, 162, 38, 24, 55, 53, 128, 30, 163,\n\t\t198, 98, 227, 42, 159, 78, 108, 181, 56, 215, 121, 192, 76,\n\t\t119, 202, 146, 172, 170, 69, 239, 228, 207, 191, 133, 95,\n\t\t48, 163, 248, 2, 232, 11, 113, 28, 140, 96, 126, 26, 172,\n\t\t115, 31, 104, 214, 64, 93, 62, 223, 65, 92, 89, 68, 246, 227,\n\t\t222, 68, 98, 135, 192, 211, 109, 68, 227, 13, 199, 232, 249,\n\t\t139, 250, 224, 184, 20, 146, 182, 85, 69, 38, 158, 202, 11,\n\t\t253, 156, 36, 62, 98, 173, 164, 60, 153, 116, 124, 181, 187,\n\t\t185, 212, 155, 185, 185, 38, 195, 17, 178, 91, 149, 170, 31,\n\t\t60, 189, 134, 132, 87, 100, 30, 199, 210, 247, 231, 89, 31,\n\t\t10, 211, 110, 87, 0, 232, 232, 117, 211, 62, 204, 169, 152,\n\t\t92, 72, 170, 69, 154, 223, 74, 195, 151, 94, 218, 231, 184,\n\t\t61, 55, 101, 74, 93, 105, 217, 190, 237, 205, 247, 230, 150,\n\t\t221, 176, 249, 13, 92, 196, 15, 125, 125, 65, 159, 168, 83,\n\t\t217, 143, 169, 96, 137, 79, 81, 148, 6, 224, 183, 242, 85,\n\t\t1, 119, 127, 242, 184, 125, 189, 39, 28, 28, 40, 126, 124,\n\t\t240, 132, 35, 194, 5, 204, 219, 16, 45, 16, 3, 252, 28, 166,\n\t\t105, 19, 32, 100, 246, 13, 215, 125, 184, 157, 164, 205, 130,\n\t\t248, 224, 60, 118, 196, 171, 74, 93, 0, 214, 79, 129, 9, 67,\n\t\t72, 153, 56, 116, 27, 166, 28, 128, 212, 126, 12, 13, 42,\n\t\t156, 212, 83, 26, 150, 149, 221, 83, 104, 200, 132, 166, 89,\n\t\t205, 99, 0, 245, 213, 48, 0, 40, 170, 105, 93, 253, 113, 51,\n\t\t83, 56, 220, 154, 104, 2, 25, 214, 0, 162, 140, 153, 165,\n\t\t106, 167, 83, 159, 90, 154, 130, 95, 216, 253, 99, 229, 176,\n\t\t87, 167, 183, 188, 70, 41, 11, 73, 160, 92, 15, 242, 142,\n\t\t108, 128, 49, 90, 220, 174, 119, 148, 165, 96, 60, 70, 128,\n\t\t159, 18, 175, 155, 218, 10, 21, 43, 74, 76, 187, 21, 145,\n\t\t85, 231, 40, 155, 137, 179, 220, 51, 195, 68, 22, 132, 172,\n\t\t227, 84, 123, 117, 156, 154, 134, 154, 180, 8, 200, 153, 64,\n\t\t213, 68, 198, 186, 128, 54, 142, 176, 120, 2, 98, 146, 100,\n\t\t137, 157, 237, 124, 145, 23, 21, 52, 198, 194, 8, 112, 179,\n\t\t68, 152, 85, 112, 120, 87, 223, 18, 254, 74, 11, 221, 77,\n\t\t19, 237, 194, 100, 33, 224, 251, 196, 137, 192, 208, 36, 153,\n\t\t221, 170, 88, 240, 16, 218, 44, 86, 69, 253, 136, 188, 72,\n\t\t220, 202, 68, 50, 142, 172, 18, 151, 242, 153, 20, 66, 62,\n\t\t192, 177, 30, 40, 140, 114, 105, 94, 32, 64, 164, 13, 39,\n\t\t66, 43, 63, 237, 136, 53, 135, 10, 229, 121, 24, 20, 71, 107,\n\t\t124, 155, 147, 218, 225, 173, 100, 200, 36, 158, 103, 160,\n\t\t142, 142, 17, 0, 142, 68, 40, 66, 183, 69, 59, 225, 25, 113,\n\t\t35, 12, 139, 127, 152, 216, 196, 149, 167, 79, 214, 190, 219,\n\t\t6, 73, 107, 65, 149, 7, 146, 3, 94, 230, 250, 69, 149, 127,\n\t\t108, 92, 50, 218, 87, 154, 93, 69, 37, 98, 15, 215, 126, 31,\n\t\t211, 110, 117, 93, 179, 219, 192, 116, 99, 39, 186, 81, 164,\n\t\t105, 223, 18, 200, 177, 238, 68, 245, 69, 4, 135, 16, 46,\n\t\t60, 87, 66, 76, 40, 56, 47, 91, 187, 0, 185, 91, 129, 47,\n\t\t44, 2, 158, 100, 126, 138, 112, 133, 84, 193, 213, 49, 73,\n\t\t42, 143, 77, 49, 55, 40, 17, 10, 138, 49, 15, 212, 165, 130,\n\t\t61, 157, 50, 105, 158, 229, 98, 2, 98, 4, 160, 209, 151, 237,\n\t\t227, 236, 164, 225, 208, 136, 135, 69, 12, 130, 61, 138, 249,\n\t\t147, 23, 221, 3, 98, 68, 226, 173, 130, 192, 155, 112, 234,\n\t\t34, 244, 59, 81, 53, 62, 153, 53, 246, 240, 167, 160, 191,\n\t\t5, 96, 156, 220, 156, 16, 201, 157, 106, 13, 140, 19, 68,\n\t\t4, 203, 175, 21, 252, 22, 50, 24, 13, 86, 195, 123, 242, 221,\n\t\t206, 189, 213, 53, 186, 167, 249, 20, 245, 151, 72, 235, 202,\n\t\t233, 91, 48, 239, 67, 160, 120, 187, 128, 156, 146, 36, 201,\n\t\t249, 38, 8, 105, 23, 92, 23, 226, 220, 100, 231, 64, 95, 159,\n\t\t0, 42, 37, 190, 70, 0, 37, 141, 122, 249, 194, 40, 228, 146,\n\t\t83, 51, 221, 51, 183, 130, 44, 38, 5, 130, 5, 213, 94, 109,\n\t\t110, 47, 39, 193, 122, 220, 88, 77, 85, 105, 237, 200, 82,\n\t\t141, 96, 23, 80, 127, 236, 27, 179, 47, 211, 141, 91, 191,\n\t\t28, 59, 196, 174, 234, 60, 214, 140, 29, 38, 68, 168, 96,\n\t\t49, 208, 74, 60, 149, 195, 129, 172, 40, 44, 131, 201, 61,\n\t\t197, 51, 39, 53, 113, 240, 167, 91, 236, 244, 109, 140, 164,\n\t\t46, 201, 135, 148, 136, 17, 11, 92, 60, 99, 128, 114, 21,\n\t\t0, 242, 196, 176, 216, 66, 140, 70, 79, 99, 11, 12, 49, 177,\n\t\t24, 129, 110, 58, 148, 209, 169, 230, 82, 199, 34, 207, 145,\n\t\t19, 19, 48, 213, 235, 98, 170, 123, 74, 89, 235, 228, 184,\n\t\t223, 41, 194, 85, 46, 141, 185, 215, 134, 247, 62, 90, 240,\n\t\t4, 195, 242, 165, 84, 160, 7, 67, 162, 214, 202, 77, 165,\n\t\t171, 221, 216, 200, 122, 147, 238, 225, 21, 177, 57, 32, 230,\n\t\t113, 44, 206, 220, 75, 92, 98, 173, 165, 193, 180, 194, 103,\n\t\t43, 28, 211, 42, 47, 115, 233, 210, 163, 79, 73, 131, 135,\n\t\t39, 14, 183, 66, 171, 164, 56, 131, 119, 78, 181, 178, 164,\n\t\t219, 133, 243, 27, 195, 185, 69, 232, 122, 196, 95, 229, 143,\n\t\t189, 220, 51, 161, 68, 7, 98, 83, 58, 6, 170, 11, 175, 85,\n\t\t91, 170, 50, 150, 237, 14, 169, 217, 245, 22, 74, 201, 37,\n\t\t182, 169, 220, 206, 161, 167, 221, 189, 15, 185, 242, 45,\n\t\t187, 20, 145, 230, 200, 4, 162, 236, 250, 184, 61, 74, 12,\n\t\t131, 216, 40, 10, 20, 13, 130, 194, 98, 129, 250, 24, 223,\n\t\t26, 179, 49, 69, 86, 172, 114, 15, 20, 22, 54, 115, 217, 180,\n\t\t1, 244, 130, 168, 97, 80, 102, 35, 208, 182, 44, 106, 42,\n\t\t178, 152, 48, 62, 53, 0, 190, 52, 80, 187, 158, 97, 107, 98,\n\t\t123, 158, 242, 77, 174, 180, 199, 238, 123, 137, 39, 241,\n\t\t136, 137, 171, 188, 108, 29, 42, 241, 227, 178, 16, 200, 203,\n\t\t2, 73, 218, 147, 200, 34, 67, 135, 87, 126, 211, 147, 90,\n\t\t87, 201, 68, 71, 68, 102, 203, 72, 21, 188, 96, 65, 144, 113,\n\t\t121, 127, 248, 240, 195, 131, 171, 198, 147, 12, 42, 2, 176,\n\t\t179, 47, 120, 133, 80, 97, 255, 8, 121, 220, 147, 84, 104,\n\t\t252, 49, 131, 118, 51, 109, 11, 108, 144, 88, 171, 9, 114,\n\t\t125, 21, 209, 60, 30, 180, 44, 149, 112, 173, 138, 6, 65,\n\t\t11, 84, 16, 76, 160, 238, 252, 135, 114, 93, 37, 201, 10,\n\t\t83, 115, 234, 133, 73, 96, 104, 189, 110, 138, 11, 131, 152,\n\t\t109, 116, 241, 198, 210, 20, 105, 81, 193, 73, 113, 5, 209,\n\t\t171, 123, 17, 68, 55, 33, 6, 104, 36, 45, 157, 211, 219, 35,\n\t\t41, 132, 82, 188, 85, 113, 209, 231, 44, 84, 252, 2, 210,\n\t\t206, 57, 13, 6, 243, 18, 82, 165, 236, 58, 189, 60, 218, 48,\n\t\t22, 100, 72, 179, 181, 135, 79, 203, 3, 0, 128, 54, 19, 134,\n\t\t205, 173, 24, 21, 26, 207, 186, 155, 161, 71, 12, 88, 42,\n\t\t46, 149, 60, 31, 134, 140, 197, 143, 222, 172, 173, 145, 192,\n\t\t17, 230, 158, 189, 69, 181, 19, 101, 30, 48, 28, 185, 209,\n\t\t81, 54, 83, 246, 133, 219, 132, 247, 147, 213, 176, 118, 204,\n\t\t114, 217, 215, 218, 96, 241, 51, 121, 120, 215, 135, 167,\n\t\t39, 180, 119, 246, 246, 4, 111, 213, 198, 27, 244, 46, 38,\n\t\t171, 240, 240, 167, 121, 103, 182, 118, 104, 56, 37, 7, 16,\n\t\t12, 171, 203, 140, 73, 188, 252, 138, 55, 142, 253, 73, 193,\n\t\t107, 18, 182, 15, 213, 143, 30, 186, 115, 120, 50, 123, 68,\n\t\t114, 106, 109, 22, 51, 1, 136, 190, 78, 142, 88, 255, 244,\n\t\t145, 71, 243, 163, 245, 175, 104, 140, 86, 59, 209, 236, 250,\n\t\t26, 107, 140, 95, 78, 201, 130, 253, 0, 125, 8, 19, 240, 117,\n\t\t71, 249, 238, 239, 255, 209, 228, 65, 238, 55, 110, 200, 166,\n\t\t161, 203, 149, 232, 13, 53, 155, 178, 73, 186, 209, 144, 79,\n\t\t246, 233, 187, 121, 147, 105, 189, 243, 234, 28, 232, 123,\n\t\t105, 182, 245, 77, 199, 247, 70, 29, 155, 138, 191, 231, 66,\n\t\t29, 0, 0, 64, 255, 191, 13, 204, 64, 88, 161, 222, 189, 191,\n\t\t70, 0, 119, 228, 20, 227, 241, 79, 197, 31, 14, 107, 180,\n\t\t237, 72, 153, 169, 51, 41, 235, 200, 57, 58, 27, 100, 163,\n\t\t154, 20, 220, 83, 114, 19, 12, 147, 37, 230, 161, 38, 140,\n\t\t17, 25, 254, 27, 8, 161, 211, 142, 148, 101, 96, 70, 136,\n\t\t224, 84, 91, 28, 48, 255, 69, 228, 237, 90, 192, 130, 212,\n\t\t174, 203, 95, 200, 95, 86, 238, 85, 118, 252, 126, 61, 169,\n\t\t231, 75, 199, 158, 71, 181, 250, 159, 49, 7, 70, 164, 166,\n\t\t86, 155, 4, 107, 215, 202, 176, 161, 187, 235, 100, 30, 85,\n\t\t71, 84, 93, 16, 222, 249, 32, 176, 251, 183, 9, 92, 9, 214,\n\t\t71, 237, 170, 58, 101, 122, 97, 24, 60, 219, 119, 107, 165,\n\t\t133, 12, 14, 213, 135, 53, 32, 249, 73, 136, 47, 207, 163,\n\t\t182, 168, 31, 139, 221, 105, 179, 112, 170, 188, 148, 116,\n\t\t217, 115, 31, 75, 117, 138, 224, 78, 225, 62, 90, 35, 15,\n\t\t139, 218, 198, 7, 56, 31, 213, 71, 133, 134, 154, 145, 215,\n\t\t20, 85, 18, 47, 139, 0, 10, 116, 81, 209, 161, 154, 146, 54,\n\t\t67, 168, 91, 172, 95, 117, 98, 95, 230, 136, 187, 181, 90,\n\t\t227, 37, 32, 193, 95, 133, 234, 47, 180, 55, 141, 161, 237,\n\t\t165, 33, 248, 238, 124, 15, 230, 126, 231, 197, 242, 37, 194,\n\t\t113, 148, 13, 47, 242, 52, 151, 54, 119, 149, 232, 237, 19,\n\t\t192, 66, 209, 137, 1, 230, 36, 127, 29, 179, 40, 211, 231,\n\t\t37, 187, 39, 237, 94, 66, 22, 94, 202, 177, 181, 168, 3, 9,\n\t\t59, 37, 120, 208, 211, 156, 255, 135, 35, 105, 174, 226, 54,\n\t\t216, 195, 197, 31, 245, 234, 34, 27, 149, 174, 137, 165, 185,\n\t\t157, 100, 219, 143, 114, 122, 39, 30, 107, 140, 6, 87, 70,\n\t\t115, 158, 183, 65, 71, 54, 235, 200, 238, 25, 49, 195, 48,\n\t\t112, 10, 172, 100, 218, 142, 226, 20, 184, 251, 231, 114,\n\t\t51, 219, 103, 29, 67, 24, 199, 26, 54, 203, 78, 135, 38, 106,\n\t\t60, 38, 102, 20, 211, 79, 130, 135, 58, 189, 165, 242, 246,\n\t\t124, 47, 254, 158, 183, 185, 142, 238, 25, 27, 69, 231, 40,\n\t\t128, 104, 242, 5, 25, 179, 76, 99, 251, 111, 91, 101, 57,\n\t\t218, 174, 125, 175, 61, 109, 136, 228, 163, 212, 159, 53,\n\t\t180, 85, 31, 217, 86, 244, 125, 22, 87, 107, 147, 194, 158,\n\t\t184, 180, 114, 140, 141, 234, 247, 140, 11, 113, 28, 137,\n\t\t95, 177, 25, 254, 116, 176, 188, 105, 10, 69, 213, 102, 143,\n\t\t134, 64, 166, 145, 174, 58, 11, 87, 118, 85, 129, 220, 3,\n\t\t125, 164, 17, 178, 188, 54, 98, 225, 109, 204, 96, 210, 55,\n\t\t63, 214, 53, 16, 235, 57, 37, 34, 211, 244, 178, 161, 6, 95,\n\t\t34, 193, 222, 235, 244, 150, 221, 209, 215, 44, 60, 223, 229,\n\t\t59, 156, 168, 103, 7, 157, 185, 110, 249, 65, 252, 33, 7,\n\t\t241, 68, 50, 8, 15, 212, 71, 229, 189, 196, 47, 192, 95, 67,\n\t\t75, 25, 71, 229, 197, 35, 58, 223, 238, 109, 205, 44, 228,\n\t\t62, 148, 140, 110, 46, 246, 3, 3, 88, 219, 228, 142, 220,\n\t\t24, 93, 54, 14, 238, 126, 89, 250, 163, 251, 131, 228, 155,\n\t\t206, 82, 92, 162, 110, 197, 132, 51, 228, 228, 168, 74, 68,\n\t\t98, 82, 161, 16, 147, 115, 16, 247, 213, 188, 146, 43, 103,\n\t\t82, 204, 238, 94, 49, 23, 158, 13, 247, 220, 44, 119, 45,\n\t\t211, 92, 28, 22, 59, 113, 165, 81, 230, 146, 212, 116, 180,\n\t\t160, 135, 173, 202, 178, 35, 141, 213, 182, 139, 225, 58,\n\t\t202, 215, 53, 35, 239, 0, 66, 43, 74, 215, 245, 18, 73, 239,\n\t\t174, 207, 71, 168, 22, 171, 131, 174, 248, 253, 219, 118,\n\t\t241, 198, 176, 207, 190, 196, 8, 154, 74, 133, 209, 63, 192,\n\t\t27, 254, 180, 125, 119, 249, 191, 225, 113, 167, 205, 226,\n\t\t197, 220, 157, 126, 3, 198, 38, 46, 69, 105, 119, 176, 255,\n\t\t76, 145, 84, 248, 151, 36, 130, 189, 227, 68, 215, 64, 32,\n\t\t222, 176, 246, 124, 254, 228, 41, 9, 50, 235, 63, 150, 18,\n\t\t221, 19, 142, 130, 214, 128, 96, 21, 61, 187, 78, 15, 46,\n\t\t173, 107, 54, 197, 149, 245, 149, 209, 218, 76, 60, 71, 228,\n\t\t141, 160, 218, 92, 77, 36, 198, 193, 120, 24, 67, 21, 132,\n\t\t241, 3, 252, 117, 83, 114, 69, 131, 186, 8, 153, 245, 152,\n\t\t151, 248, 196, 249, 172, 64, 132, 254, 120, 48, 58, 150, 183,\n\t\t90, 143, 25, 177, 233, 13, 252, 215, 158, 106, 200, 142, 158,\n\t\t29, 7, 84, 171, 246, 209, 178, 12, 247, 173, 57, 255, 77,\n\t\t117, 189, 7, 179, 20, 134, 28, 131, 169, 77, 242, 195, 30,\n\t\t46, 12, 190, 0, 184, 208, 191, 119, 38, 81, 24, 28, 123, 97,\n\t\t93, 240, 74, 7, 117, 232, 242, 107, 91, 115, 229, 233, 53,\n\t\t157, 7, 48, 247, 179, 48, 72, 158, 218, 135, 51, 196, 129,\n\t\t153, 50, 57, 180, 119, 130, 183, 249, 116, 5, 31, 217, 68,\n\t\t61, 156, 111, 208, 163, 123, 178, 44, 66, 243, 197, 169, 112,\n\t\t88, 47, 35, 31, 172, 29, 113, 81, 29, 12, 141, 14, 141, 221,\n\t\t140, 159, 127, 82, 134, 227, 95, 135, 126, 117, 55, 155, 255,\n\t\t149, 18, 4, 12, 242, 238, 104, 69, 250, 45, 143, 75, 224,\n\t\t106, 15, 162, 147, 14, 247, 158, 60, 124, 248, 94, 18, 149,\n\t\t65, 4, 185, 221, 161, 190, 167, 33, 83, 187, 56, 24, 182,\n\t\t146, 180, 20, 146, 110, 253, 145, 42, 247, 31, 20, 30, 163,\n\t\t32, 12, 212, 22, 242, 23, 216, 147, 220, 194, 207, 243, 81,\n\t\t142, 184, 89, 109, 226, 51, 80, 214, 130, 28, 192, 198, 36,\n\t\t141, 76, 226, 77, 78, 191, 242, 193, 192, 113, 54, 42, 145,\n\t\t225, 118, 65, 57, 175, 169, 220, 65, 72, 214, 58, 213, 243,\n\t\t84, 187, 56, 27, 228, 133, 58, 181, 38, 184, 167, 234, 184,\n\t\t45, 81, 93, 46, 109, 214, 240, 164, 117, 116, 11, 132, 151,\n\t\t61, 25, 76, 230, 155, 241, 37, 215, 212, 70, 191, 163, 163,\n\t\t96, 68, 51, 86, 54, 207, 148, 55, 192, 189, 130, 60, 76, 5,\n\t\t198, 171, 158, 136, 132, 145, 157, 78, 16, 189, 129, 38, 77,\n\t\t49, 94, 206, 181, 161, 226, 31, 198, 251, 53, 235, 184, 88,\n\t\t115, 195, 165, 229, 227, 31, 204, 76, 154, 197, 32, 153, 154,\n\t\t190, 64, 82, 37, 91, 252, 29, 189, 253, 20, 240, 120, 169,\n\t\t188, 61, 230, 158, 120, 1, 50, 137, 164, 194, 121, 1, 13,\n\t\t187, 69, 3, 125, 55, 185, 199, 231, 116, 75, 206, 155, 65,\n\t\t231, 192, 235, 174, 119, 200, 232, 191, 8, 212, 102, 242,\n\t\t58, 155, 249, 88, 32, 225, 231, 169, 186, 77, 247, 208, 237,\n\t\t191, 49, 22, 247, 181, 3, 131, 187, 120, 173, 118, 35, 204,\n\t\t4, 139, 83, 21, 57, 254, 171, 8, 65, 168, 9, 0, 95, 245, 151,\n\t\t74, 57, 188, 236, 15, 28, 206, 118, 76, 66, 194, 227, 210,\n\t\t146, 155, 243, 69, 76, 50, 89, 79, 181, 172, 75, 133, 47,\n\t\t126, 251, 109, 253, 130, 141, 83, 158, 100, 134, 242, 122,\n\t\t164, 68, 117, 88, 63, 121, 166, 6, 110, 98, 112, 197, 18,\n\t\t18, 2, 100, 128, 138, 202, 41, 11, 124, 204, 215, 184, 79,\n\t\t248, 36, 183, 86, 104, 201, 242, 87, 242, 172, 191, 71, 196,\n\t\t238, 18, 0, 195, 1, 161, 1, 75, 76, 96, 180, 243, 171, 55,\n\t\t28, 135, 74, 138, 243, 35, 44, 16, 130, 11, 31, 110, 241,\n\t\t155, 176, 98, 198, 3, 3, 173, 214, 236, 217, 140, 45, 113,\n\t\t196, 208, 69, 239, 46, 227, 188, 235, 65, 227, 157, 134, 197,\n\t\t45, 179, 35, 248, 69, 214, 6, 126, 220, 108, 230, 91, 253,\n\t\t65, 167, 123, 80, 213, 111, 196, 149, 117, 34, 126, 16, 246,\n\t\t78, 77, 0, 218, 86, 118, 39, 238, 91, 154, 238, 79, 249, 169,\n\t\t94, 248, 6, 222, 249, 145, 191, 6, 168, 124, 39, 106, 235,\n\t\t241, 171, 91, 38, 155, 205, 102, 143, 219, 119, 158, 127,\n\t\t154, 207, 238, 92, 57, 98, 54, 135, 22, 18, 50, 186, 128,\n\t\t125, 247, 241, 254, 194, 27, 82, 98, 229, 84, 226, 232, 6,\n\t\t149, 175, 134, 12, 93, 25, 244, 127, 191, 253, 54, 162, 94,\n\t\t55, 85, 212, 33, 187, 206, 62, 127, 219, 195, 117, 184, 92,\n\t\t235, 133, 186, 134, 62, 85, 161, 176, 74, 193, 205, 135, 42,\n\t\t230, 220, 249, 171, 126, 179, 116, 250, 173, 137, 202, 184,\n\t\t95, 201, 22, 223, 200, 57, 217, 171, 206, 184, 101, 57, 104,\n\t\t230, 154, 53, 225, 204, 176, 11, 188, 169, 215, 103, 130,\n\t\t19, 43, 210, 243, 237, 45, 123, 238, 232, 213, 19, 127, 245,\n\t\t76, 71, 240, 206, 93, 131, 183, 21, 108, 249, 80, 251, 71,\n\t\t192, 79, 195, 198, 141, 44, 96, 254, 191, 103, 76, 249, 129,\n\t\t190, 209, 109, 101, 218, 189, 63, 229, 29, 222, 252, 5, 226,\n\t\t101, 201, 44, 60, 64, 173, 35, 181, 197, 89, 59, 176, 159,\n\t\t190, 134, 91, 97, 150, 196, 61, 116, 163, 125, 239, 77, 173,\n\t\t217, 113, 86, 82, 235, 213, 145, 234, 75, 147, 206, 33, 127,\n\t\t151, 112, 230, 65, 253, 232, 208, 178, 104, 99, 29, 159, 28,\n\t\t223, 217, 208, 229, 251, 220, 35, 183, 95, 93, 127, 152, 170,\n\t\t203, 148, 176, 242, 207, 248, 127, 105, 139, 226, 19, 239,\n\t\t102, 185, 67, 7, 3, 244, 150, 176, 125, 246, 193, 25, 211,\n\t\t41, 141, 83, 239, 240, 117, 224, 38, 145, 53, 79, 215, 180,\n\t\t150, 82, 16, 152, 45, 152, 128, 245, 88, 181, 95, 25, 78,\n\t\t247, 31, 7, 235, 37, 220, 88, 160, 144, 150, 85, 249, 197,\n\t\t61, 90, 76, 219, 30, 193, 195, 50, 221, 107, 0, 189, 96, 52,\n\t\t255, 146, 2, 95, 161, 193, 245, 181, 120, 197, 176, 160, 168,\n\t\t133, 25, 147, 194, 244, 39, 229, 32, 133, 23, 103, 160, 66,\n\t\t192, 167, 12, 157, 82, 224, 188, 39, 146, 223, 212, 170, 38,\n\t\t216, 255, 135, 152, 121, 68, 140, 198, 47, 63, 38, 140, 54,\n\t\t240, 251, 88, 86, 236, 104, 249, 21, 154, 122, 85, 196, 71,\n\t\t35, 18, 86, 26, 117, 57, 156, 177, 244, 10, 251, 99, 90, 70,\n\t\t255, 16, 250, 152, 243, 196, 167, 179, 166, 0, 184, 212, 155,\n\t\t240, 13, 218, 78, 67, 127, 137, 198, 26, 157, 185, 208, 129,\n\t\t58, 87, 35, 84, 36, 213, 124, 213, 66, 79, 12, 57, 20, 116,\n\t\t230, 194, 78, 182, 12, 209, 20, 54, 105, 72, 161, 182, 2,\n\t\t171, 245, 227, 81, 217, 157, 131, 170, 186, 213, 125, 140,\n\t\t199, 101, 33, 68, 137, 65, 49, 1, 164, 104, 91, 79, 94, 154,\n\t\t217, 97, 226, 38, 101, 218, 1, 181, 6, 15, 150, 0, 145, 205,\n\t\t74, 50, 167, 234, 189, 54, 143, 157, 55, 82, 158, 171, 224,\n\t\t149, 135, 194, 189, 220, 153, 104, 25, 41, 75, 72, 221, 7,\n\t\t117, 165, 94, 40, 99, 5, 220, 236, 237, 125, 232, 152, 171,\n\t\t221, 214, 1, 238, 210, 211, 234, 222, 175, 67, 32, 236, 224,\n\t\t83, 53, 155, 252, 192, 138, 183, 61, 232, 249, 7, 174, 251,\n\t\t114, 85, 106, 229, 201, 153, 18, 131, 82, 51, 255, 192, 110,\n\t\t82, 167, 181, 93, 36, 240, 65, 239, 197, 47, 197, 251, 253,\n\t\t151, 229, 208, 14, 167, 136, 108, 11, 234, 41, 42, 140, 110,\n\t\t19, 183, 143, 64, 190, 156, 57, 15, 17, 240, 43, 113, 68,\n\t\t21, 61, 172, 14, 207, 60, 139, 22, 178, 115, 40, 28, 65, 229,\n\t\t11, 113, 121, 43, 62, 113, 8, 140, 198, 240, 78, 236, 130,\n\t\t42, 134, 43, 230, 123, 100, 190, 232, 138, 120, 115, 15, 26,\n\t\t80, 32, 182, 169, 198, 181, 218, 34, 57, 150, 201, 5, 107,\n\t\t208, 122, 185, 16, 190, 151, 144, 153, 230, 156, 192, 247,\n\t\t151, 91, 227, 108, 120, 237, 104, 183, 31, 144, 214, 43, 46,\n\t\t141, 250, 34, 26, 148, 34, 191, 113, 179, 194, 222, 29, 5,\n\t\t68, 209, 234, 89, 215, 215, 73, 127, 196, 14, 233, 52, 81,\n\t\t198, 146, 218, 22, 241, 72, 49, 46, 227, 31, 142, 216, 59,\n\t\t37, 251, 188, 180, 151, 11, 27, 32, 244, 22, 207, 184, 251,\n\t\t22, 183, 150, 249, 94, 176, 206, 117, 48, 231, 178, 220, 94,\n\t\t101, 171, 39, 236, 120, 160, 204, 248, 163, 97, 240, 254,\n\t\t247, 203, 194, 90, 60, 80, 7, 191, 167, 115, 127, 254, 52,\n\t\t31, 25, 49, 111, 204, 124, 243, 201, 36, 211, 16, 110, 72,\n\t\t117, 176, 172, 112, 36, 19, 62, 225, 224, 13, 138, 236, 3,\n\t\t95, 179, 8, 60, 205, 17, 153, 219, 127, 151, 100, 226, 126,\n\t\t1, 234, 201, 133, 58, 71, 162, 246, 118, 250, 168, 207, 172,\n\t\t242, 227, 157, 123, 22, 5, 35, 134, 4, 227, 246, 70, 156,\n\t\t121, 238, 204, 205, 73, 112, 188, 44, 173, 131, 199, 218,\n\t\t39, 79, 180, 201, 161, 173, 221, 194, 129, 201, 244, 177,\n\t\t95, 125, 232, 184, 206, 61, 123, 182, 217, 242, 205, 43, 25,\n\t\t6, 126, 225, 214, 56, 255, 246, 165, 26, 246, 254, 181, 92,\n\t\t124, 252, 254, 208, 235, 111, 31, 10, 183, 241, 86, 156, 200,\n\t\t139, 44, 114, 151, 216, 27, 110, 90, 169, 183, 134, 62, 121,\n\t\t111, 216, 7, 87, 71, 217, 119, 46, 42, 111, 93, 76, 96, 19,\n\t\t111, 197, 180, 205, 12, 27, 166, 70, 4, 67, 86, 22, 92, 140,\n\t\t243, 244, 243, 147, 90, 94, 143, 176, 13, 201, 124, 103, 69,\n\t\t101, 19, 0, 200, 18, 102, 165, 252, 200, 196, 83, 201, 62,\n\t\t165, 0, 67, 214, 81, 49, 162, 161, 128, 148, 248, 70, 126,\n\t\t168, 148, 40, 53, 100, 208, 202, 169, 229, 214, 192, 16, 108,\n\t\t173, 84, 35, 108, 125, 124, 146, 150, 50, 18, 172, 221, 185,\n\t\t57, 54, 243, 86, 187, 33, 98, 16, 152, 241, 66, 104, 66, 22,\n\t\t114, 153, 225, 121, 152, 252, 139, 106, 56, 121, 19, 186,\n\t\t131, 234, 206, 157, 210, 253, 99, 223, 148, 35, 5, 235, 138,\n\t\t81, 54, 8, 122, 135, 153, 8, 49, 200, 143, 186, 144, 120,\n\t\t161, 88, 214, 181, 173, 117, 94, 127, 84, 42, 74, 12, 155,\n\t\t89, 173, 35, 4, 154, 93, 164, 220, 94, 175, 171, 221, 68,\n\t\t158, 96, 50, 217, 73, 113, 250, 157, 60, 75, 39, 42, 71, 221,\n\t\t39, 37, 149, 117, 36, 62, 195, 109, 55, 89, 216, 57, 184,\n\t\t63, 28, 2, 148, 68, 157, 7, 167, 45, 221, 11, 109, 190, 214,\n\t\t109, 42, 106, 208, 21, 148, 14, 230, 235, 19, 141, 253, 239,\n\t\t60, 56, 126, 10, 10, 233, 191, 205, 226, 186, 163, 22, 26,\n\t\t57, 236, 238, 115, 249, 52, 215, 46, 215, 24, 235, 216, 213,\n\t\t43, 99, 246, 124, 108, 0, 71, 74, 165, 80, 175, 55, 63, 68,\n\t\t90, 120, 134, 21, 37, 148, 77, 77, 197, 191, 137, 147, 127,\n\t\t105, 10, 38, 110, 125, 253, 155, 162, 186, 41, 183, 32, 204,\n\t\t187, 192, 251, 215, 226, 64, 81, 25, 241, 116, 96, 144, 40,\n\t\t162, 227, 74, 58, 242, 126, 159, 207, 118, 179, 175, 195,\n\t\t114, 209, 52, 118, 168, 230, 73, 222, 10, 194, 128, 194, 152,\n\t\t28, 7, 166, 133, 224, 17, 234, 90, 243, 175, 59, 190, 19,\n\t\t13, 216, 116, 47, 78, 242, 153, 199, 99, 78, 188, 244, 26,\n\t\t169, 3, 94, 14, 123, 132, 68, 99, 200, 9, 215, 118, 230, 17,\n\t\t37, 169, 178, 119, 152, 10, 135, 123, 91, 50, 223, 181, 20,\n\t\t226, 157, 171, 34, 8, 95, 20, 63, 248, 209, 205, 25, 40, 101,\n\t\t10, 144, 181, 202, 144, 33, 211, 213, 98, 33, 207, 173, 92,\n\t\t133, 23, 240, 124, 173, 156, 183, 69, 206, 41, 137, 60, 221,\n\t\t87, 169, 216, 25, 230, 100, 139, 204, 118, 67, 253, 208, 192,\n\t\t15, 95, 176, 251, 209, 83, 232, 205, 233, 243, 71, 46, 195,\n\t\t137, 211, 111, 90, 135, 200, 67, 123, 207, 157, 57, 156, 187,\n\t\t120, 236, 66, 238, 50, 190, 181, 233, 205, 227, 151, 196,\n\t\t235, 103, 207, 59, 135, 233, 193, 189, 28, 50, 192, 74, 104,\n\t\t6, 144, 179, 254, 35, 232, 122, 98, 62, 139, 216, 54, 95,\n\t\t140, 149, 15, 56, 92, 17, 142, 224, 122, 51, 64, 192, 250,\n\t\t57, 247, 254, 231, 122, 134, 120, 232, 46, 205, 5, 250, 25,\n\t\t70, 121, 5, 99, 185, 59, 255, 130, 24, 127, 200, 104, 250,\n\t\t98, 222, 64, 128, 32, 176, 251, 5, 121, 141, 83, 14, 132,\n\t\t253, 5, 17, 71, 206, 39, 25, 120, 156, 168, 122, 238, 219,\n\t\t134, 82, 3, 130, 206, 51, 15, 38, 108, 72, 234, 89, 228, 196,\n\t\t191, 97, 233, 36, 47, 207, 55, 194, 134, 138, 143, 241, 70,\n\t\t82, 237, 196, 76, 24, 224, 209, 120, 98, 204, 118, 157, 138,\n\t\t246, 18, 208, 150, 93, 231, 115, 140, 59, 168, 238, 171, 137,\n\t\t156, 171, 110, 115, 18, 251, 164, 222, 178, 159, 158, 111,\n\t\t16, 22, 41, 60, 7, 208, 36, 216, 97, 233, 114, 11, 186, 195,\n\t\t66, 42, 216, 73, 198, 138, 172, 36, 27, 89, 161, 50, 21, 178,\n\t\t87, 182, 91, 179, 173, 115, 57, 69, 136, 196, 105, 229, 140,\n\t\t122, 177, 29, 59, 43, 73, 197, 42, 144, 2, 127, 66, 178, 163,\n\t\t158, 132, 33, 224, 202, 51, 88, 18, 102, 44, 217, 242, 192,\n\t\t13, 40, 101, 164, 97, 89, 175, 128, 29, 95, 68, 40, 23, 41,\n\t\t98, 41, 85, 222, 139, 59, 65, 57, 204, 111, 242, 255, 14,\n\t\t114, 100, 241, 206, 188, 143, 204, 218, 193, 254, 157, 80,\n\t\t48, 7, 0, 175, 196, 157, 67, 5, 82, 142, 236, 234, 141, 76,\n\t\t188, 72, 9, 149, 201, 45, 146, 57, 176, 155, 4, 26, 86, 123,\n\t\t243, 72, 106, 175, 110, 98, 85, 145, 83, 33, 109, 173, 91,\n\t\t18, 59, 230, 13, 91, 201, 144, 37, 41, 75, 66, 210, 11, 128,\n\t\t183, 31, 109, 101, 68, 21, 4, 254, 125, 146, 85, 88, 232,\n\t\t185, 181, 174, 88, 142, 77, 0, 22, 241, 55, 234, 110, 68,\n\t\t249, 199, 124, 139, 234, 212, 198, 103, 123, 22, 127, 60,\n\t\t226, 27, 241, 198, 168, 214, 74, 130, 67, 50, 105, 123, 248,\n\t\t56, 170, 8, 228, 119, 243, 231, 12, 40, 253, 10, 207, 55,\n\t\t158, 81, 147, 2, 116, 199, 160, 74, 73, 245, 18, 132, 167,\n\t\t236, 115, 43, 131, 46, 214, 217, 115, 62, 220, 9, 14, 56,\n\t\t162, 222, 144, 183, 190, 139, 8, 196, 2, 10, 0, 136, 119,\n\t\t7, 80, 211, 21, 195, 43, 251, 29, 96, 201, 96, 92, 229, 153,\n\t\t167, 55, 20, 159, 211, 130, 133, 102, 53, 37, 62, 129, 54,\n\t\t82, 31, 31, 254, 240, 71, 107, 202, 24, 132, 220, 151, 24,\n\t\t148, 85, 246, 145, 127, 172, 64, 33, 16, 200, 6, 242, 99,\n\t\t17, 163, 32, 82, 132, 17, 13, 5, 87, 234, 117, 20, 161, 250,\n\t\t125, 65, 129, 170, 77, 179, 68, 236, 207, 68, 6, 115, 35,\n\t\t64, 51, 161, 249, 110, 158, 7, 39, 249, 121, 203, 49, 29,\n\t\t90, 113, 228, 178, 240, 172, 156, 30, 44, 97, 123, 120, 30,\n\t\t188, 150, 89, 4, 1, 160, 80, 155, 140, 215, 149, 248, 76,\n\t\t32, 167, 124, 79, 235, 79, 167, 248, 172, 199, 179, 225, 32,\n\t\t88, 42, 204, 172, 134, 242, 145, 50, 171, 105, 52, 188, 248,\n\t\t237, 92, 47, 194, 195, 136, 100, 224, 132, 164, 9, 210, 47,\n\t\t239, 10, 228, 147, 7, 45, 213, 33, 75, 21, 245, 63, 208, 39,\n\t\t146, 86, 104, 27, 248, 152, 145, 216, 154, 228, 23, 173, 90,\n\t\t185, 219, 169, 9, 23, 16, 62, 34, 89, 111, 169, 31, 203, 134,\n\t\t122, 158, 52, 81, 92, 57, 201, 124, 243, 112, 118, 240, 70,\n\t\t246, 195, 177, 253, 67, 253, 52, 176, 181, 19, 40, 238, 78,\n\t\t78, 216, 88, 145, 161, 232, 246, 158, 0, 30, 23, 75, 177,\n\t\t176, 133, 109, 204, 31, 142, 16, 7, 88, 111, 80, 71, 126,\n\t\t251, 89, 22, 196, 251, 79, 33, 158, 149, 79, 3, 45, 126, 55,\n\t\t174, 254, 172, 34, 99, 177, 245, 40, 89, 36, 65, 0, 244, 1,\n\t\t90, 165, 222, 41, 22, 88, 50, 187, 163, 251, 19, 226, 113,\n\t\t166, 176, 201, 79, 178, 44, 88, 228, 94, 146, 101, 65, 65,\n\t\t229, 100, 121, 67, 106, 111, 230, 202, 218, 32, 246, 50, 175,\n\t\t137, 179, 143, 105, 14, 130, 44, 95, 22, 144, 161, 31, 103,\n\t\t42, 59, 245, 225, 235, 79, 35, 27, 204, 116, 42, 132, 63,\n\t\t120, 184, 208, 200, 167, 19, 0, 221, 251, 170, 171, 141, 247,\n\t\t130, 30, 139, 118, 185, 63, 13, 80, 255, 134, 10, 167, 250,\n\t\t48, 203, 135, 179, 176, 196, 107, 228, 136, 119, 167, 154,\n\t\t69, 28, 187, 22, 194, 65, 181, 243, 242, 121, 229, 119, 136,\n\t\t215, 51, 73, 86, 143, 220, 79, 55, 151, 220, 62, 75, 150,\n\t\t12, 41, 91, 234, 153, 163, 222, 87, 135, 253, 252, 63, 84,\n\t\t109, 35, 71, 44, 42, 95, 94, 142, 154, 174, 177, 4, 176, 82,\n\t\t241, 101, 138, 60, 71, 70, 105, 113, 97, 210, 11, 0, 54, 202,\n\t\t71, 7, 251, 23, 220, 141, 140, 200, 84, 169, 116, 168, 171,\n\t\t114, 194, 220, 252, 11, 77, 15, 79, 57, 214, 108, 145, 149,\n\t\t154, 101, 20, 6, 65, 78, 52, 77, 182, 32, 11, 13, 98, 43,\n\t\t51, 160, 43, 215, 138, 11, 76, 125, 14, 237, 215, 14, 83,\n\t\t189, 167, 0, 107, 129, 202, 217, 215, 39, 237, 194, 97, 15,\n\t\t14, 84, 225, 9, 231, 163, 248, 164, 124, 213, 13, 129, 75,\n\t\t193, 173, 195, 239, 244, 45, 68, 93, 177, 138, 241, 229, 179,\n\t\t74, 202, 137, 199, 2, 3, 89, 194, 1, 196, 33, 79, 236, 248,\n\t\t51, 65, 192, 64, 61, 19, 131, 0, 7, 131, 78, 220, 115, 76,\n\t\t161, 100, 43, 47, 201, 93, 5, 149, 182, 192, 229, 235, 78,\n\t\t171, 74, 24, 45, 245, 27, 1, 11, 45, 104, 59, 230, 155, 233,\n\t\t221, 159, 254, 53, 252, 121, 66, 11, 113, 165, 27, 11, 172,\n\t\t220, 82, 193, 172, 53, 51, 209, 225, 116, 68, 214, 31, 159,\n\t\t217, 99, 49, 190, 245, 158, 71, 87, 73, 58, 149, 195, 59,\n\t\t121, 137, 142, 161, 48, 33, 39, 100, 50, 68, 54, 8, 210, 129,\n\t\t4, 11, 35, 104, 243, 168, 152, 88, 101, 8, 42, 5, 47, 2, 19,\n\t\t236, 219, 128, 42, 57, 12, 85, 210, 42, 247, 103, 171, 47,\n\t\t87, 39, 164, 204, 112, 25, 200, 251, 219, 132, 155, 241, 21,\n\t\t211, 197, 204, 64, 61, 153, 140, 107, 163, 208, 121, 84, 97,\n\t\t224, 12, 135, 64, 5, 167, 20, 55, 227, 155, 118, 43, 171,\n\t\t79, 166, 166, 221, 37, 99, 85, 197, 74, 203, 216, 206, 139,\n\t\t157, 22, 171, 148, 121, 144, 28, 163, 217, 248, 126, 58, 65,\n\t\t32, 164, 130, 12, 202, 51, 210, 96, 226, 84, 139, 80, 157,\n\t\t13, 187, 144, 241, 34, 151, 144, 213, 217, 76, 20, 156, 75,\n\t\t149, 75, 48, 18, 54, 19, 73, 113, 167, 48, 125, 72, 171, 217,\n\t\t225, 212, 12, 72, 66, 189, 77, 60, 158, 72, 116, 94, 95, 156,\n\t\t241, 167, 191, 73, 123, 7, 190, 32, 132, 9, 216, 161, 100,\n\t\t184, 114, 94, 79, 195, 136, 151, 159, 191, 61, 209, 65, 218,\n\t\t183, 148, 149, 232, 248, 186, 3, 1, 145, 107, 121, 219, 22,\n\t\t122, 226, 89, 85, 162, 35, 235, 105, 64, 31, 103, 211, 58,\n\t\t156, 88, 222, 131, 189, 117, 116, 217, 109, 95, 4, 142, 90,\n\t\t188, 86, 77, 241, 72, 156, 1, 169, 61, 169, 116, 75, 155,\n\t\t26, 214, 79, 134, 134, 134, 153, 133, 176, 36, 128, 189, 170,\n\t\t80, 60, 195, 80, 137, 157, 137, 204, 209, 44, 89, 197, 153,\n\t\t48, 180, 146, 246, 128, 142, 239, 132, 141, 73, 178, 11, 234,\n\t\t232, 176, 227, 70, 58, 105, 229, 51, 149, 137, 23, 85, 100,\n\t\t15, 132, 232, 25, 212, 137, 247, 221, 36, 183, 98, 231, 70,\n\t\t26, 167, 202, 46, 188, 197, 172, 88, 68, 135, 106, 29, 226,\n\t\t135, 21, 238, 45, 186, 73, 31, 29, 165, 188, 232, 1, 144,\n\t\t185, 37, 58, 72, 7, 23, 112, 59, 135, 78, 157, 33, 79, 253,\n\t\t223, 72, 242, 172, 201, 98, 118, 1, 48, 171, 8, 78, 143, 64,\n\t\t178, 127, 183, 247, 236, 231, 229, 214, 22, 69, 146, 40, 133,\n\t\t228, 16, 171, 163, 6, 224, 206, 128, 164, 243, 85, 232, 229,\n\t\t89, 143, 232, 130, 212, 189, 104, 8, 185, 181, 160, 207, 187,\n\t\t160, 216, 168, 106, 227, 20, 106, 167, 4, 43, 197, 82, 106,\n\t\t68, 69, 150, 194, 14, 177, 109, 128, 80, 113, 201, 158, 223,\n\t\t160, 95, 93, 159, 255, 47, 93, 50, 122, 242, 34, 145, 209,\n\t\t235, 239, 129, 77, 85, 153, 132, 188, 145, 144, 62, 175, 246,\n\t\t197, 50, 233, 138, 231, 196, 76, 130, 61, 158, 86, 92, 211,\n\t\t151, 68, 52, 24, 208, 89, 128, 31, 136, 9, 221, 12, 90, 22,\n\t\t155, 190, 81, 26, 175, 40, 189, 41, 99, 193, 97, 51, 219,\n\t\t101, 163, 176, 145, 25, 22, 70, 59, 165, 242, 254, 247, 60,\n\t\t24, 158, 71, 183, 171, 182, 225, 173, 131, 25, 174, 248, 243,\n\t\t219, 22, 200, 131, 203, 193, 228, 55, 223, 58, 75, 214, 208,\n\t\t20, 27, 203, 210, 53, 74, 93, 42, 15, 98, 64, 112, 23, 154,\n\t\t140, 109, 163, 4, 54, 67, 86, 56, 142, 255, 224, 58, 139,\n\t\t85, 1, 118, 79, 193, 44, 242, 221, 6, 252, 7, 13, 97, 132,\n\t\t255, 71, 128, 149, 80, 57, 134, 18, 194, 200, 241, 28, 24,\n\t\t237, 77, 108, 156, 11, 23, 59, 189, 237, 106, 242, 7, 166,\n\t\t176, 93, 201, 61, 221, 2, 52, 53, 33, 80, 247, 164, 190, 235,\n\t\t182, 238, 188, 117, 247, 42, 81, 95, 79, 153, 35, 75, 43,\n\t\t195, 147, 183, 239, 137, 119, 185, 60, 99, 13, 113, 174, 181,\n\t\t248, 52, 150, 248, 74, 178, 194, 201, 143, 116, 25, 2, 173,\n\t\t157, 61, 25, 130, 1, 196, 189, 244, 98, 102, 5, 187, 77, 11,\n\t\t187, 71, 69, 87, 206, 32, 45, 71, 197, 1, 17, 96, 253, 106,\n\t\t119, 42, 183, 20, 241, 64, 42, 217, 44, 244, 167, 251, 163,\n\t\t156, 228, 159, 69, 180, 224, 144, 132, 170, 129, 128, 204,\n\t\t119, 17, 55, 4, 206, 242, 5, 12, 218, 247, 56, 19, 30, 148,\n\t\t194, 4, 169, 156, 23, 67, 100, 85, 232, 57, 86, 208, 175,\n\t\t243, 140, 193, 211, 66, 105, 65, 160, 151, 220, 52, 104, 226,\n\t\t66, 134, 4, 50, 218, 64, 46, 185, 66, 175, 214, 97, 249, 144,\n\t\t8, 40, 63, 11, 73, 147, 216, 100, 205, 58, 4, 227, 103, 68,\n\t\t154, 52, 162, 136, 152, 51, 79, 216, 85, 224, 85, 128, 176,\n\t\t85, 112, 108, 136, 111, 48, 249, 30, 0, 72, 248, 148, 22,\n\t\t41, 50, 193, 150, 230, 200, 154, 5, 53, 49, 174, 151, 144,\n\t\t113, 228, 29, 214, 163, 35, 125, 201, 100, 62, 10, 13, 4,\n\t\t77, 99, 84, 140, 239, 0, 113, 65, 113, 194, 8, 73, 71, 164,\n\t\t237, 41, 48, 71, 249, 123, 17, 87, 26, 198, 160, 124, 15,\n\t\t156, 71, 248, 217, 16, 4, 145, 129, 243, 30, 217, 137, 84,\n\t\t173, 106, 76, 64, 191, 98, 157, 1, 34, 66, 131, 131, 165,\n\t\t196, 135, 13, 177, 48, 242, 156, 187, 85, 21, 12, 233, 50,\n\t\t207, 226, 74, 192, 66, 210, 8, 55, 3, 33, 85, 63, 1, 137,\n\t\t235, 29, 108, 52, 150, 208, 77, 24, 110, 10, 227, 130, 224,\n\t\t86, 188, 185, 101, 158, 42, 28, 85, 90, 115, 60, 41, 25, 49,\n\t\t171, 8, 22, 149, 47, 47, 8, 44, 67, 37, 78, 178, 163, 2, 120,\n\t\t142, 142, 12, 167, 42, 80, 0, 77, 188, 200, 165, 30, 183,\n\t\t45, 203, 75, 80, 6, 134, 80, 17, 109, 226, 225, 6, 221, 10,\n\t\t57, 183, 186, 158, 247, 81, 184, 209, 162, 2, 129, 129, 236,\n\t\t123, 90, 156, 42, 108, 77, 29, 127, 242, 202, 137, 46, 8,\n\t\t139, 85, 213, 63, 77, 196, 64, 54, 136, 240, 197, 58, 187,\n\t\t194, 244, 126, 228, 200, 0, 110, 149, 81, 150, 69, 230, 187,\n\t\t133, 114, 222, 183, 221, 130, 174, 13, 7, 60, 107, 172, 54,\n\t\t27, 216, 102, 155, 204, 154, 254, 128, 226, 229, 32, 217,\n\t\t9, 208, 155, 23, 44, 102, 147, 82, 25, 132, 33, 26, 117, 14,\n\t\t86, 158, 129, 5, 37, 178, 137, 141, 9, 78, 49, 128, 249, 101,\n\t\t136, 62, 247, 182, 75, 5, 70, 198, 174, 141, 249, 148, 219,\n\t\t114, 39, 47, 24, 23, 230, 106, 109, 43, 242, 6, 76, 197, 138,\n\t\t175, 253, 150, 234, 70, 130, 139, 86, 180, 128, 120, 20, 249,\n\t\t13, 181, 168, 4, 23, 222, 143, 168, 180, 162, 16, 102, 107,\n\t\t36, 120, 191, 134, 160, 32, 130, 204, 127, 35, 112, 10, 177,\n\t\t60, 254, 149, 107, 23, 109, 164, 15, 0, 205, 120, 35, 210,\n\t\t147, 24, 104, 226, 255, 35, 31, 129, 222, 178, 78, 164, 35,\n\t\t196, 201, 57, 180, 246, 176, 164, 9, 199, 213, 153, 207, 50,\n\t\t61, 142, 49, 234, 244, 48, 137, 194, 28, 255, 58, 206, 207,\n\t\t229, 106, 155, 233, 67, 74, 55, 199, 94, 238, 204, 152, 180,\n\t\t182, 240, 28, 90, 156, 111, 68, 97, 96, 25, 61, 167, 199,\n\t\t164, 249, 152, 86, 127, 93, 213, 82, 108, 70, 240, 94, 51,\n\t\t35, 77, 208, 112, 153, 120, 99, 52, 68, 33, 182, 57, 205,\n\t\t224, 17, 76, 252, 28, 165, 223, 57, 29, 80, 183, 198, 179,\n\t\t160, 198, 233, 240, 109, 228, 73, 79, 16, 132, 252, 101, 27,\n\t\t207, 240, 37, 25, 152, 103, 7, 63, 63, 167, 55, 122, 151,\n\t\t231, 135, 236, 70, 20, 206, 109, 114, 11, 252, 84, 126, 170,\n\t\t23, 68, 137, 79, 195, 117, 53, 23, 62, 184, 120, 165, 39,\n\t\t217, 154, 219, 92, 45, 203, 85, 220, 188, 191, 44, 33, 12,\n\t\t86, 47, 236, 4, 57, 42, 30, 243, 234, 243, 42, 17, 43, 100,\n\t\t11, 50, 139, 193, 90, 156, 197, 230, 20, 191, 93, 76, 89,\n\t\t214, 166, 214, 175, 116, 102, 52, 83, 144, 131, 96, 189, 140,\n\t\t46, 161, 225, 48, 4, 176, 175, 215, 145, 13, 89, 95, 176,\n\t\t87, 109, 138, 87, 215, 52, 147, 234, 165, 252, 253, 184, 3,\n\t\t218, 109, 226, 104, 244, 187, 252, 254, 178, 40, 148, 199,\n\t\t6, 244, 207, 32, 191, 81, 174, 215, 222, 229, 153, 125, 211,\n\t\t120, 193, 60, 58, 253, 250, 246, 203, 97, 169, 160, 128, 47,\n\t\t121, 63, 198, 72, 168, 135, 94, 217, 74, 48, 41, 234, 32,\n\t\t7, 216, 170, 251, 68, 184, 118, 244, 147, 124, 231, 217, 105,\n\t\t59, 97, 27, 201, 45, 223, 23, 250, 50, 82, 212, 98, 221, 192,\n\t\t197, 40, 13, 88, 124, 93, 13, 49, 106, 127, 168, 146, 248,\n\t\t203, 228, 230, 197, 70, 90, 144, 16, 74, 150, 220, 176, 48,\n\t\t156, 121, 101, 240, 91, 64, 242, 50, 80, 110, 48, 222, 25,\n\t\t155, 54, 124, 94, 58, 150, 95, 61, 152, 109, 204, 6, 45, 140,\n\t\t79, 126, 17, 135, 204, 76, 160, 253, 162, 126, 116, 255, 113,\n\t\t16, 137, 167, 244, 6, 149, 115, 176, 45, 229, 12, 91, 38,\n\t\t251, 16, 56, 102, 173, 215, 185, 165, 250, 80, 94, 254, 199,\n\t\t11, 114, 177, 75, 101, 31, 232, 18, 22, 1, 102, 169, 49, 55,\n\t\t247, 45, 234, 32, 76, 63, 55, 86, 29, 113, 230, 253, 50, 58,\n\t\t253, 253, 207, 208, 31, 119, 206, 116, 130, 191, 208, 96,\n\t\t79, 64, 13, 119, 151, 48, 11, 161, 102, 161, 13, 239, 162,\n\t\t78, 63, 231, 201, 23, 101, 209, 243, 47, 221, 239, 87, 65,\n\t\t95, 166, 38, 195, 213, 68, 69, 46, 233, 120, 191, 19, 113,\n\t\t33, 248, 5, 171, 244, 162, 94, 239, 44, 78, 179, 187, 212,\n\t\t108, 235, 170, 30, 169, 17, 19, 96, 84, 135, 152, 194, 249,\n\t\t162, 22, 83, 210, 98, 171, 58, 62, 194, 57, 82, 107, 40, 52,\n\t\t241, 223, 192, 135, 202, 124, 247, 58, 222, 243, 120, 38,\n\t\t96, 144, 208, 130, 236, 154, 153, 62, 237, 225, 211, 163,\n\t\t201, 36, 75, 242, 216, 243, 195, 84, 124, 255, 174, 215, 173,\n\t\t7, 159, 177, 23, 194, 181, 248, 82, 80, 255, 171, 56, 102,\n\t\t159, 156, 29, 82, 214, 202, 252, 233, 48, 82, 236, 97, 134,\n\t\t10, 13, 106, 129, 4, 180, 63, 209, 60, 29, 87, 105, 66, 250,\n\t\t247, 30, 87, 131, 233, 215, 224, 69, 89, 195, 116, 251, 49,\n\t\t62, 148, 196, 145, 55, 229, 138, 246, 5, 225, 176, 64, 98,\n\t\t112, 242, 247, 56, 208, 124, 73, 241, 216, 15, 117, 237, 26,\n\t\t63, 116, 72, 90, 9, 38, 43, 28, 242, 47, 10, 199, 228, 56,\n\t\t67, 59, 84, 11, 76, 68, 15, 6, 97, 68, 166, 185, 35, 53, 216,\n\t\t102, 122, 228, 214, 32, 5, 194, 184, 58, 212, 174, 34, 225,\n\t\t208, 173, 55, 17, 92, 4, 54, 59, 226, 83, 70, 114, 94, 216,\n\t\t9, 170, 128, 121, 1, 181, 42, 125, 62, 191, 137, 38, 9, 193,\n\t\t62, 195, 196, 215, 12, 205, 100, 123, 255, 172, 94, 214, 117,\n\t\t55, 221, 59, 138, 20, 130, 69, 134, 211, 121, 95, 34, 18,\n\t\t174, 127, 177, 13, 29, 179, 14, 168, 204, 138, 134, 98, 13,\n\t\t1, 34, 161, 69, 140, 0, 43, 195, 198, 240, 30, 53, 239, 42,\n\t\t141, 64, 83, 68, 233, 172, 6, 85, 118, 154, 6, 255, 77, 125,\n\t\t50, 19, 155, 1, 160, 157, 149, 43, 183, 146, 173, 211, 190,\n\t\t13, 253, 102, 94, 80, 53, 205, 84, 218, 107, 118, 110, 201,\n\t\t38, 235, 91, 151, 7, 138, 12, 16, 136, 35, 86, 39, 245, 199,\n\t\t191, 166, 250, 191, 223, 184, 83, 15, 0, 158, 56, 183, 120,\n\t\t212, 74, 115, 135, 182, 147, 123, 97, 238, 46, 243, 141, 116,\n\t\t102, 210, 252, 156, 30, 2, 240, 65, 210, 90, 140, 141, 140,\n\t\t43, 179, 117, 166, 109, 176, 160, 161, 119, 254, 231, 101,\n\t\t22, 76, 26, 163, 125, 207, 85, 217, 41, 197, 228, 230, 176,\n\t\t102, 150, 57, 189, 167, 65, 200, 191, 162, 51, 18, 165, 137,\n\t\t163, 18, 243, 76, 9, 230, 43, 101, 241, 12, 109, 160, 166,\n\t\t56, 75, 120, 222, 109, 52, 129, 31, 167, 122, 230, 57, 64,\n\t\t56, 10, 4, 155, 184, 44, 116, 159, 123, 151, 14, 125, 203,\n\t\t253, 117, 218, 171, 116, 190, 242, 168, 51, 72, 162, 113,\n\t\t156, 65, 42, 130, 13, 21, 205, 135, 49, 43, 236, 32, 246,\n\t\t193, 69, 8, 53, 47, 97, 105, 254, 124, 125, 219, 94, 222,\n\t\t108, 196, 235, 100, 227, 68, 181, 90, 237, 76, 36, 141, 131,\n\t\t241, 27, 218, 113, 102, 42, 55, 28, 101, 242, 161, 92, 210,\n\t\t166, 42, 208, 215, 68, 136, 20, 46, 121, 184, 212, 133, 115,\n\t\t3, 178, 171, 83, 134, 133, 194, 39, 94, 185, 36, 146, 121,\n\t\t147, 153, 39, 91, 151, 165, 98, 117, 89, 163, 211, 97, 200,\n\t\t142, 95, 131, 234, 206, 34, 140, 66, 117, 24, 168, 245, 24,\n\t\t162, 147, 146, 72, 111, 117, 24, 120, 251, 88, 229, 233, 181,\n\t\t240, 87, 211, 208, 42, 119, 226, 201, 30, 69, 84, 255, 197,\n\t\t186, 23, 169, 168, 5, 244, 175, 76, 193, 82, 250, 113, 9,\n\t\t55, 162, 117, 120, 211, 20, 28, 216, 85, 208, 220, 144, 53,\n\t\t78, 137, 144, 37, 39, 78, 154, 95, 218, 51, 162, 31, 199,\n\t\t22, 92, 46, 115, 43, 147, 89, 143, 138, 243, 59, 30, 102,\n\t\t197, 130, 197, 117, 255, 134, 41, 175, 12, 126, 70, 4, 106,\n\t\t150, 7, 2, 226, 254, 136, 48, 212, 10, 118, 217, 102, 237,\n\t\t145, 8, 66, 125, 103, 214, 200, 198, 16, 140, 227, 61, 192,\n\t\t229, 227, 204, 73, 124, 187, 118, 66, 37, 67, 0, 150, 252,\n\t\t208, 69, 86, 184, 111, 103, 58, 55, 210, 196, 36, 244, 137,\n\t\t129, 181, 68, 74, 215, 124, 253, 96, 59, 206, 132, 31, 15,\n\t\t173, 79, 61, 225, 161, 148, 59, 44, 250, 232, 221, 220, 105,\n\t\t55, 21, 1, 149, 242, 135, 130, 79, 134, 78, 249, 169, 224,\n\t\t246, 70, 228, 7, 75, 182, 255, 233, 82, 246, 100, 48, 202,\n\t\t250, 65, 90, 197, 112, 238, 252, 155, 23, 2, 116, 254, 60,\n\t\t10, 103, 159, 234, 165, 243, 231, 92, 44, 79, 30, 27, 188,\n\t\t244, 191, 74, 191, 224, 252, 73, 33, 249, 250, 99, 215, 199,\n\t\t15, 233, 135, 169, 247, 209, 234, 233, 35, 7, 158, 13, 41,\n\t\t59, 93, 250, 72, 49, 219, 160, 4, 78, 21, 63, 145, 96, 88,\n\t\t152, 241, 147, 229, 79, 53, 183, 76, 206, 197, 167, 149, 143,\n\t\t141, 136, 246, 94, 179, 168, 89, 241, 159, 74, 171, 99, 214,\n\t\t101, 215, 126, 229, 232, 161, 253, 121, 251, 245, 115, 71,\n\t\t214, 190, 220, 128, 99, 239, 52, 17, 149, 118, 47, 154, 63,\n\t\t152, 179, 33, 77, 104, 27, 59, 253, 9, 147, 61, 204, 16, 197,\n\t\t203, 233, 113, 203, 95, 24, 91, 191, 95, 225, 149, 44, 242,\n\t\t24, 133, 138, 51, 7, 59, 251, 48, 14, 144, 65, 221, 181, 82,\n\t\t100, 255, 235, 146, 75, 146, 85, 160, 248, 226, 153, 197,\n\t\t237, 92, 161, 227, 187, 218, 120, 205, 99, 196, 197, 244,\n\t\t33, 250, 234, 15, 47, 212, 152, 134, 39, 154, 247, 150, 237,\n\t\t156, 201, 15, 110, 99, 189, 130, 54, 73, 117, 32, 189, 94,\n\t\t243, 226, 167, 196, 162, 232, 144, 78, 180, 221, 178, 109,\n\t\t140, 196, 174, 74, 113, 54, 139, 129, 72, 247, 110, 219, 128,\n\t\t26, 155, 93, 188, 93, 10, 40, 199, 243, 104, 179, 193, 132,\n\t\t220, 222, 191, 119, 246, 168, 104, 245, 71, 143, 30, 29, 238,\n\t\t178, 219, 184, 69, 181, 225, 157, 221, 189, 249, 92, 188,\n\t\t79, 98, 128, 192, 127, 123, 116, 253, 177, 120, 253, 239,\n\t\t119, 38, 240, 217, 199, 131, 59, 88, 173, 168, 214, 10, 94,\n\t\t60, 126, 249, 202, 209, 163, 255, 1, 13, 16, 220, 231, 143,\n\t\t188, 113, 233, 226, 129, 33, 15, 76, 239, 225, 43, 79, 6,\n\t\t217, 188, 178, 247, 242, 149, 4, 100, 190, 244, 220, 163,\n\t\t130, 29, 246, 94, 218, 67, 69, 122, 41, 229, 51, 188, 16,\n\t\t30, 60, 102, 199, 9, 207, 139, 184, 195, 190, 6, 30, 193,\n\t\t198, 107, 168, 249, 56, 136, 30, 123, 48, 89, 2, 128, 123,\n\t\t97, 130, 18, 94, 167, 21, 128, 140, 161, 252, 107, 12, 229,\n\t\t17, 246, 13, 8, 184, 128, 64, 173, 58, 211, 244, 25, 179,\n\t\t66, 152, 169, 210, 195, 93, 17, 134, 96, 216, 243, 116, 135,\n\t\t48, 5, 80, 133, 215, 153, 232, 92, 96, 43, 118, 82, 19, 137,\n\t\t32, 133, 21, 28, 167, 44, 112, 131, 75, 60, 211, 213, 87,\n\t\t21, 23, 187, 53, 18, 174, 82, 69, 175, 25, 128, 194, 12, 152,\n\t\t68, 211, 45, 240, 60, 150, 153, 22, 172, 27, 164, 96, 238,\n\t\t16, 143, 106, 225, 29, 185, 157, 99, 164, 9, 152, 50, 0, 33,\n\t\t215, 212, 130, 63, 60, 15, 100, 62, 240, 204, 71, 124, 4,\n\t\t212, 188, 188, 199, 27, 99, 177, 81, 99, 72, 48, 99, 24, 65,\n\t\t176, 44, 35, 112, 75, 34, 207, 232, 132, 25, 179, 171, 49,\n\t\t67, 112, 2, 163, 163, 107, 118, 31, 39, 53, 37, 165, 126,\n\t\t149, 220, 140, 248, 70, 17, 236, 229, 116, 53, 215, 177, 200,\n\t\t39, 205, 146, 119, 246, 135, 38, 88, 13, 1, 194, 130, 25,\n\t\t112, 194, 47, 236, 71, 161, 108, 104, 196, 139, 119, 191,\n\t\t27, 143, 252, 233, 183, 105, 106, 223, 119, 191, 210, 126,\n\t\t51, 171, 180, 246, 86, 59, 142, 146, 213, 227, 147, 45, 77,\n\t\t197, 52, 67, 237, 183, 190, 176, 55, 74, 173, 163, 82, 122,\n\t\t20, 185, 128, 133, 69, 170, 168, 46, 212, 253, 153, 47, 206,\n\t\t53, 173, 101, 182, 73, 38, 228, 204, 177, 154, 215, 196, 162,\n\t\t5, 132, 242, 3, 227, 184, 244, 11, 67, 51, 83, 200, 48, 80,\n\t\t206, 0, 129, 23, 121, 222, 233, 149, 213, 179, 181, 240, 32,\n\t\t11, 109, 76, 68, 160, 144, 149, 124, 110, 25, 120, 84, 224,\n\t\t25, 143, 193, 206, 132, 174, 238, 70, 169, 101, 239, 214,\n\t\t122, 91, 71, 102, 233, 232, 117, 90, 25, 156, 237, 84, 30,\n\t\t27, 179, 124, 38, 178, 156, 212, 208, 146, 188, 99, 187, 188,\n\t\t57, 77, 92, 145, 38, 115, 43, 7, 36, 142, 47, 67, 71, 231,\n\t\t234, 23, 23, 122, 104, 169, 170, 226, 1, 246, 23, 160, 210,\n\t\t199, 63, 140, 64, 123, 168, 57, 226, 105, 222, 90, 86, 73,\n\t\t222, 224, 172, 61, 232, 34, 234, 216, 2, 153, 229, 206, 89,\n\t\t8, 24, 50, 132, 149, 202, 94, 175, 199, 30, 109, 89, 242,\n\t\t208, 162, 130, 212, 19, 22, 230, 239, 4, 195, 43, 60, 91,\n\t\t36, 34, 250, 231, 200, 240, 133, 48, 180, 179, 227, 179, 129,\n\t\t219, 42, 168, 165, 138, 162, 138, 41, 80, 50, 252, 25, 141,\n\t\t139, 144, 51, 226, 52, 160, 4, 143, 103, 105, 149, 247, 132,\n\t\t4, 185, 123, 50, 171, 148, 153, 38, 163, 238, 86, 243, 169,\n\t\t85, 229, 133, 230, 94, 201, 208, 205, 253, 129, 191, 231,\n\t\t73, 51, 170, 25, 24, 202, 128, 59, 133, 255, 1, 35, 138, 78,\n\t\t77, 123, 54, 79, 11, 131, 166, 224, 190, 145, 35, 173, 168,\n\t\t184, 108, 217, 51, 140, 91, 68, 250, 140, 64, 179, 12, 217,\n\t\t97, 152, 3, 227, 0, 14, 3, 90, 24, 20, 88, 188, 79, 214, 248,\n\t\t11, 98, 69, 38, 148, 200, 136, 102, 167, 107, 20, 54, 150,\n\t\t161, 24, 19, 56, 27, 168, 4, 197, 194, 138, 163, 164, 134,\n\t\t76, 91, 137, 39, 21, 104, 193, 0, 153, 160, 2, 16, 116, 151,\n\t\t241, 221, 134, 231, 53, 242, 119, 196, 143, 92, 20, 199, 111,\n\t\t118, 46, 121, 238, 14, 31, 59, 211, 156, 133, 20, 242, 174,\n\t\t56, 127, 232, 171, 18, 57, 168, 242, 153, 120, 143, 103, 36,\n\t\t64, 217, 175, 77, 155, 189, 40, 56, 31, 228, 149, 66, 227,\n\t\t220, 132, 14, 78, 245, 167, 134, 83, 145, 59, 186, 58, 213,\n\t\t133, 91, 99, 75, 99, 177, 141, 84, 66, 91, 48, 174, 208, 106,\n\t\t81, 46, 20, 14, 211, 55, 40, 91, 103, 239, 150, 183, 33, 47,\n\t\t2, 192, 42, 214, 179, 137, 93, 56, 131, 11, 171, 175, 75,\n\t\t157, 194, 253, 172, 23, 21, 234, 28, 209, 43, 198, 196, 242,\n\t\t107, 2, 61, 59, 50, 36, 183, 212, 134, 242, 165, 127, 229,\n\t\t117, 243, 114, 218, 177, 251, 211, 146, 255, 237, 100, 167,\n\t\t103, 34, 138, 14, 5, 238, 45, 51, 202, 4, 151, 197, 238, 240,\n\t\t219, 5, 255, 176, 27, 92, 215, 44, 148, 240, 210, 122, 201,\n\t\t41, 41, 77, 121, 237, 210, 155, 80, 88, 142, 19, 210, 69,\n\t\t230, 38, 21, 143, 1, 212, 96, 245, 94, 163, 221, 151, 201,\n\t\t22, 50, 249, 130, 147, 179, 24, 7, 193, 5, 103, 194, 131,\n\t\t167, 209, 160, 203, 88, 54, 174, 77, 102, 196, 59, 174, 104,\n\t\t33, 38, 251, 135, 172, 253, 193, 213, 16, 159, 24, 179, 88,\n\t\t124, 117, 136, 8, 230, 139, 67, 182, 184, 145, 201, 1, 7,\n\t\t68, 186, 146, 198, 178, 73, 70, 173, 71, 141, 137, 188, 223,\n\t\t153, 93, 29, 159, 103, 218, 21, 115, 214, 132, 21, 54, 211,\n\t\t185, 204, 52, 39, 103, 66, 4, 239, 215, 207, 78, 143, 134,\n\t\t163, 98, 113, 137, 180, 244, 66, 127, 68, 63, 18, 91, 182,\n\t\t207, 139, 19, 158, 101, 207, 20, 130, 147, 236, 130, 195,\n\t\t221, 224, 209, 58, 79, 190, 217, 70, 26, 238, 141, 243, 62,\n\t\t198, 91, 67, 28, 172, 212, 206, 98, 102, 78, 53, 146, 66,\n\t\t237, 140, 21, 50, 101, 123, 146, 208, 150, 143, 205, 219,\n\t\t54, 84, 31, 159, 45, 10, 91, 96, 96, 191, 255, 104, 186, 229,\n\t\t128, 27, 17, 31, 143, 129, 56, 207, 204, 25, 129, 135, 91,\n\t\t227, 37, 103, 191, 151, 237, 130, 116, 41, 135, 236, 229,\n\t\t6, 3, 160, 130, 20, 200, 194, 243, 86, 86, 227, 100, 140,\n\t\t234, 233, 44, 64, 148, 166, 213, 18, 75, 151, 154, 112, 30,\n\t\t40, 136, 231, 182, 235, 171, 197, 112, 33, 193, 138, 160,\n\t\t247, 117, 187, 243, 224, 238, 93, 170, 249, 186, 107, 157,\n\t\t138, 195, 110, 12, 172, 170, 242, 26, 87, 70, 64, 38, 14,\n\t\t232, 240, 14, 33, 226, 6, 80, 50, 188, 234, 53, 236, 163,\n\t\t19, 244, 90, 190, 105, 120, 113, 132, 8, 230, 132, 10, 109,\n\t\t85, 164, 189, 102, 122, 98, 96, 122, 214, 77, 108, 253, 122,\n\t\t239, 30, 187, 94, 163, 19, 230, 115, 25, 164, 16, 33, 164,\n\t\t73, 27, 192, 117, 1, 25, 175, 212, 228, 154, 150, 211, 85,\n\t\t212, 21, 137, 204, 228, 204, 8, 65, 126, 116, 163, 204, 167,\n\t\t112, 110, 224, 72, 29, 77, 131, 106, 237, 147, 33, 114, 210,\n\t\t214, 160, 81, 206, 69, 86, 130, 155, 236, 218, 237, 126, 5,\n\t\t228, 228, 164, 108, 223, 29, 149, 208, 202, 217, 8, 37, 58,\n\t\t178, 190, 127, 246, 38, 226, 189, 181, 244, 202, 131, 99,\n\t\t142, 242, 118, 127, 174, 155, 18, 197, 228, 236, 14, 192,\n\t\t131, 97, 86, 169, 81, 97, 155, 13, 148, 112, 86, 191, 194,\n\t\t162, 112, 51, 171, 145, 142, 30, 45, 243, 217, 26, 0, 114,\n\t\t232, 203, 52, 51, 98, 237, 161, 112, 189, 181, 203, 202, 201,\n\t\t79, 31, 129, 110, 188, 114, 72, 245, 90, 15, 16, 180, 57,\n\t\t64, 202, 151, 118, 63, 89, 197, 157, 222, 167, 97, 30, 133,\n\t\t107, 1, 25, 113, 196, 92, 59, 176, 144, 22, 86, 90, 182, 102,\n\t\t57, 104, 26, 14, 228, 63, 26, 149, 46, 144, 28, 172, 110,\n\t\t38, 200, 100, 80, 243, 209, 73, 210, 94, 76, 81, 198, 253,\n\t\t9, 39, 71, 134, 116, 249, 232, 188, 5, 56, 195, 188, 108,\n\t\t163, 228, 212, 34, 60, 123, 179, 172, 181, 199, 144, 56, 163,\n\t\t123, 132, 187, 0, 66, 160, 115, 13, 122, 191, 19, 59, 169,\n\t\t54, 28, 244, 92, 40, 12, 229, 119, 37, 100, 120, 117, 246,\n\t\t55, 167, 24, 110, 188, 113, 218, 11, 196, 78, 204, 245, 221,\n\t\t59, 81, 72, 253, 66, 102, 249, 31, 18, 220, 55, 76, 254, 180,\n\t\t52, 78, 213, 132, 164, 86, 131, 167, 208, 139, 111, 166, 9,\n\t\t208, 182, 155, 179, 204, 143, 207, 212, 209, 73, 173, 81,\n\t\t193, 50, 153, 59, 41, 13, 255, 95, 247, 40, 250, 166, 17,\n\t\t232, 36, 57, 41, 80, 218, 154, 124, 212, 242, 80, 124, 246,\n\t\t28, 242, 154, 166, 108, 209, 151, 184, 207, 71, 134, 140,\n\t\t120, 141, 155, 98, 48, 85, 47, 151, 198, 235, 165, 238, 60,\n\t\t24, 189, 48, 72, 58, 205, 24, 129, 6, 238, 202, 34, 130, 108,\n\t\t10, 65, 141, 253, 195, 193, 123, 55, 135, 183, 172, 26, 210,\n\t\t249, 145, 173, 203, 174, 255, 238, 190, 214, 84, 240, 96,\n\t\t38, 217, 142, 22, 68, 239, 165, 53, 158, 140, 47, 107, 28,\n\t\t53, 83, 10, 39, 183, 79, 159, 238, 116, 208, 255, 228, 180,\n\t\t63, 12, 57, 97, 36, 145, 17, 152, 31, 247, 242, 209, 184,\n\t\t236, 203, 234, 106, 238, 139, 92, 130, 195, 93, 61, 209, 13,\n\t\t166, 195, 130, 209, 172, 54, 87, 217, 129, 34, 50, 109, 110,\n\t\t249, 237, 66, 168, 155, 96, 190, 37, 65, 3, 98, 91, 112, 92,\n\t\t59, 140, 78, 244, 90, 235, 209, 235, 152, 3, 28, 70, 85, 104,\n\t\t71, 27, 161, 250, 186, 81, 195, 234, 246, 129, 209, 221, 151,\n\t\t223, 116, 47, 238, 103, 135, 183, 245, 19, 64, 125, 18, 215,\n\t\t183, 59, 67, 196, 191, 124, 81, 113, 126, 122, 103, 119, 183,\n\t\t170, 188, 79, 125, 4, 0, 125, 175, 155, 181, 145, 160, 182,\n\t\t49, 35, 59, 136, 154, 79, 168, 215, 204, 248, 196, 46, 220,\n\t\t225, 56, 217, 129, 108, 176, 72, 53, 25, 209, 123, 235, 243,\n\t\t16, 225, 200, 92, 128, 78, 216, 18, 150, 59, 55, 227, 241,\n\t\t202, 208, 135, 184, 89, 61, 250, 246, 121, 115, 162, 252,\n\t\t245, 179, 24, 43, 87, 181, 219, 149, 1, 6, 150, 178, 146,\n\t\t239, 41, 120, 4, 0, 37, 182, 204, 100, 112, 249, 32, 55, 255,\n\t\t164, 18, 120, 171, 5, 122, 135, 224, 43, 3, 218, 186, 81,\n\t\t255, 7, 54, 190, 141, 226, 91, 139, 123, 196, 145, 198, 228,\n\t\t77, 90, 191, 248, 194, 164, 17, 36, 93, 124, 130, 86, 55,\n\t\t169, 238, 59, 87, 12, 51, 13, 133, 178, 168, 252, 233, 139,\n\t\t143, 137, 160, 153, 166, 49, 121, 105, 66, 116, 131, 242,\n\t\t58, 180, 40, 120, 95, 0, 249, 38, 160, 208, 222, 132, 8, 170,\n\t\t200, 8, 119, 56, 57, 165, 174, 81, 9, 112, 163, 118, 230,\n\t\t1, 231, 20, 209, 103, 49, 93, 130, 64, 9, 253, 127, 249, 126,\n\t\t231, 51, 226, 173, 100, 42, 50, 99, 160, 132, 96, 251, 230,\n\t\t0, 61, 178, 96, 168, 120, 142, 3, 84, 46, 188, 84, 80, 108,\n\t\t243, 35, 122, 169, 173, 8, 106, 209, 125, 145, 139, 84, 232,\n\t\t136, 20, 159, 53, 6, 58, 189, 49, 102, 145, 197, 27, 154,\n\t\t62, 143, 211, 30, 102, 60, 117, 148, 194, 232, 119, 95, 195,\n\t\t225, 42, 58, 253, 194, 175, 220, 26, 211, 52, 198, 158, 64,\n\t\t108, 49, 216, 189, 108, 204, 104, 152, 177, 7, 182, 221, 216,\n\t\t249, 194, 218, 21, 105, 200, 51, 223, 247, 219, 178, 245,\n\t\t14, 81, 137, 18, 226, 46, 175, 32, 39, 142, 157, 220, 20,\n\t\t131, 239, 56, 217, 165, 102, 152, 234, 74, 248, 117, 90, 126,\n\t\t198, 81, 85, 116, 16, 166, 85, 210, 243, 116, 15, 30, 240,\n\t\t190, 245, 102, 148, 202, 214, 196, 35, 77, 237, 193, 74, 31,\n\t\t22, 199, 255, 184, 69, 67, 178, 103, 148, 14, 141, 104, 172,\n\t\t202, 90, 13, 216, 165, 79, 121, 85, 189, 33, 226, 124, 41,\n\t\t194, 118, 184, 4, 193, 107, 231, 143, 33, 52, 156, 123, 245,\n\t\t130, 52, 112, 166, 106, 232, 29, 204, 34, 207, 121, 135, 139,\n\t\t229, 202, 211, 180, 178, 11, 99, 63, 102, 179, 138, 125, 224,\n\t\t39, 151, 128, 112, 96, 193, 230, 6, 12, 155, 130, 245, 130,\n\t\t162, 144, 24, 245, 231, 18, 167, 26, 81, 49, 221, 32, 84,\n\t\t86, 239, 123, 39, 27, 118, 129, 124, 217, 179, 98, 54, 133,\n\t\t130, 172, 114, 102, 34, 59, 35, 131, 5, 92, 9, 16, 44, 115,\n\t\t204, 201, 222, 82, 151, 72, 102, 88, 45, 247, 188, 165, 178,\n\t\t18, 119, 87, 250, 178, 62, 86, 203, 55, 24, 139, 26, 24, 230,\n\t\t168, 86, 144, 92, 181, 181, 184, 59, 204, 112, 62, 42, 207,\n\t\t113, 98, 190, 147, 221, 95, 22, 141, 185, 201, 104, 121, 152,\n\t\t99, 167, 198, 16, 167, 62, 184, 1, 96, 57, 153, 240, 136,\n\t\t23, 180, 182, 90, 84, 37, 6, 27, 186, 176, 135, 202, 92, 173,\n\t\t232, 98, 47, 23, 170, 142, 0, 211, 227, 72, 105, 14, 37, 197,\n\t\t246, 36, 192, 17, 79, 128, 144, 74, 246, 23, 211, 74, 125,\n\t\t5, 27, 100, 88, 238, 114, 84, 4, 229, 125, 160, 233, 235,\n\t\t211, 127, 182, 64, 102, 205, 57, 175, 205, 18, 151, 162, 117,\n\t\t237, 142, 185, 79, 242, 178, 96, 163, 90, 45, 12, 191, 48,\n\t\t216, 134, 134, 190, 226, 217, 220, 160, 116, 228, 214, 172,\n\t\t54, 253, 77, 208, 198, 181, 137, 136, 165, 252, 136, 112,\n\t\t52, 113, 172, 157, 206, 49, 224, 164, 6, 83, 114, 97, 27,\n\t\t61, 64, 49, 236, 63, 189, 98, 151, 15, 79, 153, 9, 115, 150,\n\t\t206, 204, 234, 46, 186, 194, 18, 18, 44, 230, 2, 0, 202, 46,\n\t\t9, 51, 169, 203, 93, 234, 18, 71, 32, 139, 206, 81, 182, 152,\n\t\t148, 143, 204, 130, 98, 197, 100, 226, 121, 245, 169, 95,\n\t\t181, 32, 74, 57, 155, 186, 21, 46, 216, 230, 217, 173, 227,\n\t\t174, 111, 49, 95, 49, 173, 72, 6, 111, 206, 200, 16, 65, 141,\n\t\t1, 178, 101, 0, 78, 203, 253, 117, 186, 113, 218, 69, 64,\n\t\t13, 115, 36, 243, 16, 92, 246, 104, 239, 69, 12, 36, 9, 105,\n\t\t127, 217, 197, 154, 17, 33, 49, 227, 100, 64, 7, 109, 114,\n\t\t69, 50, 224, 92, 12, 213, 130, 7, 77, 53, 50, 49, 132, 248,\n\t\t26, 125, 200, 128, 107, 37, 10, 225, 171, 208, 15, 0, 128,\n\t\t231, 24, 225, 49, 66, 22, 100, 237, 188, 80, 82, 75, 79, 6,\n\t\t32, 206, 118, 13, 164, 87, 248, 6, 54, 232, 222, 128, 120,\n\t\t23, 221, 177, 24, 239, 234, 26, 159, 6, 5, 17, 105, 143, 198,\n\t\t66, 82, 227, 55, 159, 114, 151, 189, 208, 187, 73, 3, 203,\n\t\t174, 102, 77, 119, 77, 38, 218, 79, 64, 200, 234, 91, 147,\n\t\t124, 5, 32, 41, 241, 146, 163, 107, 13, 210, 180, 100, 45,\n\t\t51, 82, 121, 19, 71, 0, 88, 128, 186, 106, 162, 186, 18, 111,\n\t\t69, 61, 217, 233, 22, 101, 134, 88, 228, 181, 187, 24, 203,\n\t\t26, 186, 200, 112, 110, 228, 225, 128, 117, 3, 136, 133, 97,\n\t\t149, 79, 223, 189, 59, 7, 137, 77, 167, 239, 59, 181, 166,\n\t\t98, 50, 43, 185, 212, 94, 247, 252, 221, 87, 32, 152, 70,\n\t\t247, 5, 176, 195, 92, 69, 149, 20, 167, 28, 17, 162, 14, 5,\n\t\t211, 85, 84, 81, 102, 165, 104, 29, 180, 174, 233, 42, 52,\n\t\t195, 70, 71, 86, 161, 104, 1, 181, 20, 105, 12, 6, 34, 67,\n\t\t52, 178, 134, 130, 166, 53, 118, 73, 194, 48, 121, 10, 45,\n\t\t113, 21, 174, 92, 82, 5, 119, 88, 112, 212, 70, 202, 244,\n\t\t76, 21, 145, 236, 81, 173, 6, 200, 205, 216, 250, 145, 66,\n\t\t150, 192, 214, 120, 136, 151, 22, 243, 28, 181, 68, 99, 91,\n\t\t143, 231, 163, 150, 68, 224, 136, 129, 247, 148, 198, 11,\n\t\t12, 146, 160, 82, 32, 136, 128, 52, 95, 165, 242, 243, 33,\n\t\t213, 20, 56, 132, 169, 228, 84, 237, 103, 0, 209, 31, 251,\n\t\t120, 48, 66, 38, 208, 41, 177, 144, 215, 207, 123, 233, 90,\n\t\t100, 5, 206, 230, 46, 84, 184, 194, 35, 75, 101, 29, 32, 67,\n\t\t161, 223, 59, 66, 177, 53, 88, 122, 21, 38, 142, 146, 210,\n\t\t92, 237, 90, 166, 2, 93, 69, 51, 152, 7, 232, 19, 15, 164,\n\t\t10, 246, 54, 214, 179, 22, 102, 156, 65, 168, 64, 71, 144,\n\t\t196, 131, 208, 70, 86, 133, 140, 8, 111, 221, 19, 50, 201,\n\t\t33, 33, 45, 133, 150, 210, 140, 195, 105, 138, 130, 93, 197,\n\t\t89, 104, 26, 68, 0, 68, 13, 160, 117, 181, 129, 9, 196, 211,\n\t\t64, 72, 150, 184, 146, 42, 149, 1, 237, 118, 166, 24, 225,\n\t\t72, 19, 178, 205, 29, 154, 192, 79, 125, 4, 202, 144, 245,\n\t\t121, 120, 89, 39, 236, 24, 185, 86, 48, 1, 44, 20, 131, 61,\n\t\t141, 149, 48, 100, 12, 8, 31, 10, 153, 105, 15, 122, 161,\n\t\t44, 114, 190, 92, 108, 20, 125, 67, 80, 141, 173, 144, 226,\n\t\t26, 81, 73, 85, 70, 255, 159, 3, 36, 201, 200, 63, 211, 145,\n\t\t137, 212, 178, 50, 79, 64, 86, 77, 28, 174, 224, 5, 200, 0,\n\t\t79, 49, 80, 22, 156, 148, 196, 211, 68, 50, 177, 153, 118,\n\t\t110, 50, 213, 80, 120, 34, 43, 164, 135, 135, 56, 47, 10,\n\t\t70, 68, 52, 57, 172, 85, 141, 140, 127, 164, 70, 79, 161,\n\t\t222, 221, 1, 60, 87, 194, 249, 154, 246, 80, 171, 68, 194,\n\t\t133, 208, 136, 167, 170, 86, 53, 130, 213, 24, 52, 116, 237,\n\t\t26, 21, 197, 59, 9, 50, 175, 85, 37, 163, 128, 46, 100, 70,\n\t\t92, 26, 76, 210, 105, 186, 230, 173, 241, 59, 131, 96, 242,\n\t\t92, 44, 190, 112, 134, 81, 33, 10, 201, 89, 125, 135, 5, 1,\n\t\t11, 39, 50, 193, 12, 188, 240, 34, 70, 64, 25, 242, 244, 150,\n\t\t130, 176, 224, 97, 119, 197, 235, 97, 76, 253, 137, 135, 38,\n\t\t208, 19, 110, 32, 28, 90, 83, 146, 13, 46, 96, 204, 109, 114,\n\t\t188, 94, 114, 18, 66, 169, 180, 93, 201, 133, 66, 68, 149,\n\t\t64, 96, 141, 38, 1, 51, 160, 61, 78, 72, 96, 150, 113, 187,\n\t\t162, 20, 103, 70, 160, 25, 0, 43, 9, 250, 120, 134, 196, 241,\n\t\t148, 23, 10, 131, 200, 32, 35, 5, 128, 155, 210, 152, 160,\n\t\t98, 127, 240, 128, 65, 68, 42, 179, 245, 8, 93, 254, 59, 75,\n\t\t119, 20, 215, 141, 168, 46, 129, 32, 167, 251, 180, 230, 33,\n\t\t237, 74, 86, 193, 223, 34, 173, 214, 4, 120, 122, 8, 121,\n\t\t31, 157, 208, 167, 112, 213, 178, 72, 226, 161, 87, 243, 13,\n\t\t170, 109, 247, 89, 81, 78, 141, 10, 241, 48, 228, 242, 129,\n\t\t227, 156, 134, 25, 71, 170, 172, 148, 138, 86, 13, 205, 104,\n\t\t86, 50, 32, 158, 11, 7, 138, 182, 33, 39, 142, 199, 28, 227,\n\t\t109, 100, 151, 193, 202, 246, 121, 212, 199, 225, 50, 238,\n\t\t145, 25, 166, 29, 167, 144, 181, 14, 174, 103, 111, 247, 50,\n\t\t96, 202, 158, 45, 0, 36, 39, 142, 169, 131, 233, 119, 70,\n\t\t238, 123, 244, 19, 66, 47, 78, 16, 74, 226, 213, 143, 74,\n\t\t51, 185, 14, 81, 50, 150, 154, 118, 221, 183, 2, 99, 249,\n\t\t157, 210, 175, 22, 14, 136, 43, 84, 166, 230, 13, 124, 231,\n\t\t59, 66, 107, 248, 165, 140, 240, 168, 14, 233, 100, 146, 104,\n\t\t198, 125, 132, 22, 209, 144, 1, 111, 249, 197, 225, 24, 7,\n\t\t13, 111, 66, 241, 231, 100, 241, 96, 155, 21, 113, 162, 118,\n\t\t144, 30, 125, 242, 59, 183, 202, 242, 2, 251, 183, 238, 235,\n\t\t205, 143, 192, 77, 44, 152, 144, 56, 68, 212, 124, 95, 136,\n\t\t97, 100, 58, 54, 210, 32, 148, 197, 164, 206, 29, 242, 205,\n\t\t138, 240, 242, 238, 90, 131, 208, 189, 86, 60, 232, 120, 86,\n\t\t255, 43, 211, 202, 205, 120, 220, 164, 255, 43, 249, 239,\n\t\t176, 107, 229, 175, 48, 144, 97, 111, 3, 195, 155, 140, 241,\n\t\t180, 52, 38, 86, 206, 189, 215, 144, 193, 39, 94, 0, 133,\n\t\t225, 75, 182, 97, 56, 169, 190, 78, 40, 0, 130, 37, 249, 222,\n\t\t64, 64, 142, 238, 64, 214, 28, 35, 206, 207, 23, 59, 182,\n\t\t23, 223, 148, 181, 166, 106, 174, 89, 169, 77, 246, 177, 80,\n\t\t241, 212, 130, 58, 161, 138, 107, 60, 83, 18, 190, 119, 24,\n\t\t164, 146, 237, 153, 133, 73, 28, 192, 34, 110, 178, 96, 230,\n\t\t213, 156, 182, 69, 48, 188, 77, 92, 86, 157, 99, 208, 210,\n\t\t137, 152, 233, 82, 14, 53, 42, 77, 48, 115, 48, 228, 95, 137,\n\t\t19, 217, 40, 20, 24, 154, 213, 136, 124, 84, 53, 23, 43, 208,\n\t\t72, 108, 223, 1, 44, 136, 75, 237, 97, 148, 139, 154, 98,\n\t\t6, 207, 176, 176, 64, 190, 117, 5, 147, 6, 220, 62, 56, 255,\n\t\t184, 77, 220, 100, 168, 167, 129, 28, 196, 244, 104, 142,\n\t\t171, 15, 125, 88, 224, 196, 165, 144, 45, 8, 78, 186, 214,\n\t\t131, 202, 122, 1, 154, 97, 16, 124, 66, 207, 202, 16, 44,\n\t\t19, 36, 233, 136, 41, 5, 116, 133, 77, 140, 104, 77, 146,\n\t\t193, 146, 189, 225, 253, 229, 168, 247, 232, 228, 53, 153,\n\t\t92, 78, 194, 128, 0, 202, 125, 155, 240, 2, 83, 179, 97, 56,\n\t\t56, 17, 67, 108, 181, 220, 136, 102, 18, 109, 66, 149, 155,\n\t\t194, 162, 41, 38, 192, 32, 53, 136, 101, 105, 118, 16, 226,\n\t\t142, 130, 41, 221, 142, 60, 76, 26, 185, 62, 169, 230, 197,\n\t\t2, 20, 106, 136, 147, 28, 57, 167, 56, 63, 57, 5, 225, 122,\n\t\t136, 130, 199, 237, 205, 91, 91, 150, 185, 128, 75, 220, 148,\n\t\t47, 225, 129, 209, 4, 48, 4, 1, 207, 208, 94, 125, 187, 68,\n\t\t187, 228, 9, 55, 39, 120, 13, 166, 95, 11, 73, 21, 174, 108,\n\t\t227, 220, 251, 185, 30, 197, 102, 142, 89, 227, 16, 0, 135,\n\t\t44, 148, 167, 78, 232, 114, 91, 139, 199, 251, 197, 154, 145,\n\t\t147, 36, 149, 250, 254, 206, 243, 11, 61, 15, 65, 226, 9,\n\t\t33, 60, 129, 18, 171, 177, 203, 93, 201, 233, 47, 46, 127,\n\t\t127, 236, 25, 156, 134, 186, 21, 213, 166, 106, 101, 235,\n\t\t96, 183, 228, 225, 197, 91, 53, 67, 27, 25, 43, 155, 158,\n\t\t155, 54, 14, 179, 16, 0, 150, 233, 71, 10, 34, 94, 180, 50,\n\t\t110, 222, 236, 212, 87, 234, 5, 183, 8, 63, 66, 194, 235,\n\t\t246, 37, 147, 5, 160, 82, 207, 206, 181, 246, 206, 125, 174,\n\t\t60, 183, 62, 6, 117, 140, 214, 56, 245, 42, 212, 169, 240,\n\t\t75, 143, 21, 55, 82, 202, 14, 151, 167, 210, 124, 8, 209,\n\t\t14, 35, 157, 23, 5, 51, 22, 117, 216, 136, 9, 61, 148, 97,\n\t\t38, 171, 128, 47, 224, 0, 73, 195, 73, 252, 162, 24, 212,\n\t\t224, 193, 110, 199, 26, 114, 202, 20, 196, 195, 227, 211,\n\t\t99, 246, 180, 52, 70, 212, 44, 38, 183, 145, 196, 151, 91,\n\t\t61, 139, 245, 182, 139, 116, 124, 222, 158, 157, 31, 204,\n\t\t150, 240, 88, 154, 98, 83, 100, 123, 72, 231, 231, 40, 239,\n\t\t218, 192, 222, 129, 81, 79, 183, 246, 182, 223, 157, 27, 21,\n\t\t98, 194, 17, 235, 79, 95, 248, 102, 136, 106, 209, 94, 92,\n\t\t69, 214, 188, 95, 215, 13, 151, 163, 56, 117, 223, 254, 182,\n\t\t88, 210, 250, 120, 40, 163, 74, 104, 239, 212, 229, 81, 138,\n\t\t116, 86, 159, 93, 34, 190, 155, 126, 218, 85, 41, 190, 234,\n\t\t144, 73, 203, 73, 213, 193, 183, 51, 171, 198, 88, 17, 43,\n\t\t201, 241, 141, 66, 252, 187, 85, 100, 43, 93, 210, 164, 116,\n\t\t42, 24, 136, 67, 95, 203, 164, 193, 100, 136, 205, 188, 58,\n\t\t31, 149, 133, 56, 3, 64, 60, 203, 151, 211, 173, 210, 73,\n\t\t80, 160, 226, 146, 208, 106, 22, 63, 58, 81, 233, 90, 73,\n\t\t214, 73, 186, 220, 181, 15, 7, 62, 190, 233, 21, 42, 169,\n\t\t4, 210, 187, 153, 222, 169, 118, 142, 212, 89, 171, 132, 97,\n\t\t174, 116, 242, 235, 63, 161, 184, 56, 152, 73, 115, 44, 76,\n\t\t164, 115, 223, 222, 136, 10, 17, 217, 180, 204, 249, 221,\n\t\t172, 85, 18, 34, 191, 137, 213, 128, 7, 67, 99, 58, 193, 159,\n\t\t32, 216, 34, 167, 9, 180, 50, 10, 253, 188, 70, 27, 210, 42,\n\t\t138, 144, 37, 157, 146, 44, 252, 81, 249, 252, 160, 232, 255,\n\t\t61, 199, 14, 249, 68, 245, 11, 25, 7, 150, 27, 31, 8, 229,\n\t\t172, 226, 239, 39, 79, 71, 151, 212, 49, 117, 92, 219, 32,\n\t\t233, 224, 200, 44, 209, 128, 214, 33, 44, 191, 37, 88, 115,\n\t\t232, 24, 30, 110, 48, 20, 251, 95, 120, 240, 156, 30, 200,\n\t\t81, 178, 156, 126, 33, 6, 206, 145, 211, 141, 175, 135, 119,\n\t\t190, 7, 96, 179, 113, 215, 70, 110, 208, 228, 25, 102, 125,\n\t\t66, 96, 152, 248, 102, 16, 91, 172, 192, 202, 27, 32, 38,\n\t\t36, 179, 198, 90, 134, 156, 17, 32, 107, 195, 12, 33, 228,\n\t\t185, 22, 205, 168, 197, 115, 114, 221, 174, 105, 145, 41,\n\t\t135, 58, 147, 58, 137, 140, 172, 147, 110, 154, 101, 180,\n\t\t42, 96, 157, 73, 85, 101, 104, 252, 220, 102, 68, 182, 242,\n\t\t240, 226, 157, 119, 147, 119, 119, 187, 137, 10, 125, 148,\n\t\t72, 166, 194, 230, 189, 183, 79, 221, 178, 203, 101, 7, 71,\n\t\t168, 255, 5, 32, 30, 32, 32, 245, 166, 213, 186, 211, 162,\n\t\t149, 220, 31, 66, 251, 246, 221, 183, 167, 239, 111, 174,\n\t\t74, 193, 44, 80, 193, 81, 122, 104, 158, 150, 41, 226, 183,\n\t\t137, 95, 227, 8, 0, 48, 127, 236, 62, 87, 38, 166, 230, 196,\n\t\t155, 172, 27, 56, 69, 148, 192, 197, 76, 46, 115, 199, 187,\n\t\t121, 246, 194, 20, 121, 185, 77, 47, 171, 173, 213, 249, 61,\n\t\t174, 175, 73, 163, 22, 67, 226, 5, 170, 176, 59, 41, 221,\n\t\t45, 37, 148, 96, 14, 70, 228, 30, 211, 48, 186, 149, 164,\n\t\t39, 12, 153, 0, 139, 17, 70, 191, 58, 149, 226, 253, 202,\n\t\t52, 36, 220, 239, 89, 98, 67, 236, 250, 175, 159, 32, 68,\n\t\t202, 94, 32, 224, 135, 162, 245, 190, 108, 197, 136, 217,\n\t\t111, 254, 40, 141, 38, 253, 3, 47, 220, 123, 236, 238, 175,\n\t\t52, 235, 81, 67, 245, 189, 192, 35, 134, 167, 179, 64, 210,\n\t\t160, 175, 95, 163, 250, 12, 121, 237, 242, 151, 71, 242, 66,\n\t\t80, 206, 254, 233, 215, 59, 146, 127, 138, 28, 220, 167, 216,\n\t\t169, 230, 254, 4, 160, 102, 56, 192, 97, 141, 71, 123, 37,\n\t\t188, 100, 196, 251, 119, 119, 61, 223, 235, 41, 141, 159,\n\t\t115, 236, 20, 246, 226, 253, 198, 222, 144, 120, 248, 113,\n\t\t46, 66, 25, 56, 139, 247, 85, 99, 103, 136, 92, 3, 153, 73,\n\t\t56, 243, 28, 40, 139, 21, 115, 69, 197, 53, 180, 206, 118,\n\t\t199, 227, 95, 167, 208, 184, 171, 43, 25, 139, 35, 138, 57,\n\t\t182, 17, 47, 75, 120, 239, 238, 238, 231, 28, 85, 120, 235,\n\t\t147, 148, 57, 25, 96, 60, 77, 224, 115, 82, 176, 10, 228,\n\t\t191, 227, 91, 109, 251, 16, 246, 56, 153, 95, 105, 245, 44,\n\t\t115, 24, 60, 12, 41, 18, 31, 55, 47, 74, 109, 210, 126, 44,\n\t\t55, 217, 120, 159, 225, 118, 237, 247, 168, 102, 173, 163,\n\t\t239, 53, 47, 150, 214, 12, 223, 155, 153, 248, 110, 125, 38,\n\t\t43, 131, 68, 250, 240, 92, 157, 84, 28, 135, 179, 165, 117,\n\t\t115, 214, 185, 159, 28, 96, 127, 104, 229, 24, 193, 73, 27,\n\t\t26, 2, 203, 165, 60, 69, 163, 215, 186, 108, 76, 2, 212, 189,\n\t\t220, 185, 197, 12, 171, 232, 11, 53, 186, 67, 159, 66, 153,\n\t\t240, 157, 239, 152, 185, 205, 179, 209, 215, 8, 235, 195,\n\t\t243, 181, 23, 171, 215, 55, 167, 110, 133, 4, 51, 90, 113,\n\t\t169, 251, 115, 222, 20, 222, 174, 211, 183, 6, 16, 221, 252,\n\t\t88, 42, 111, 239, 73, 199, 174, 190, 251, 204, 74, 138, 151,\n\t\t91, 171, 149, 81, 111, 179, 185, 24, 235, 164, 80, 255, 97,\n\t\t88, 125, 217, 128, 167, 232, 151, 46, 162, 152, 27, 31, 131,\n\t\t245, 65, 38, 222, 197, 166, 213, 4, 92, 185, 92, 150, 105,\n\t\t191, 151, 242, 246, 183, 71, 226, 133, 173, 141, 52, 86, 75,\n\t\t174, 76, 67, 76, 89, 224, 156, 82, 206, 68, 228, 46, 30, 187,\n\t\t200, 102, 142, 141, 182, 187, 76, 78, 218, 4, 9, 131, 153,\n\t\t78, 225, 155, 185, 74, 195, 54, 197, 45, 181, 211, 186, 125,\n\t\t50, 128, 243, 59, 241, 253, 195, 143, 100, 103, 219, 7, 55,\n\t\t160, 94, 210, 238, 95, 135, 25, 236, 44, 156, 16, 231, 222,\n\t\t78, 171, 132, 98, 129, 167, 10, 104, 137, 242, 161, 157, 34,\n\t\t196, 163, 204, 34, 1, 64, 97, 0, 78, 18, 159, 208, 101, 64,\n\t\t183, 188, 175, 24, 12, 117, 15, 98, 123, 138, 29, 2, 192,\n\t\t94, 43, 109, 255, 246, 56, 183, 42, 150, 149, 185, 24, 221,\n\t\t137, 101, 169, 172, 58, 5, 74, 168, 41, 82, 24, 32, 51, 18,\n\t\t255, 116, 2, 208, 6, 242, 229, 184, 214, 127, 28, 194, 11,\n\t\t187, 46, 230, 27, 57, 130, 124, 97, 39, 226, 37, 78, 239,\n\t\t33, 84, 187, 201, 198, 147, 187, 183, 143, 118, 207, 143,\n\t\t247, 35, 189, 195, 242, 222, 160, 92, 87, 168, 69, 220, 236,\n\t\t95, 123, 182, 242, 139, 40, 91, 226, 242, 28, 44, 16, 118,\n\t\t218, 184, 44, 233, 29, 17, 196, 227, 201, 252, 122, 80, 57,\n\t\t53, 191, 136, 133, 247, 168, 110, 3, 183, 0, 111, 245, 207,\n\t\t196, 68, 84, 231, 127, 4, 236, 188, 133, 74, 23, 214, 246,\n\t\t154, 1, 180, 32, 68, 206, 161, 53, 165, 174, 92, 170, 205,\n\t\t135, 19, 32, 220, 131, 25, 73, 130, 53, 54, 214, 75, 155,\n\t\t105, 168, 9, 57, 241, 87, 49, 110, 100, 251, 223, 137, 45,\n\t\t103, 116, 193, 185, 47, 160, 77, 183, 167, 148, 84, 184, 231,\n\t\t27, 193, 3, 82, 185, 59, 195, 66, 149, 58, 66, 21, 201, 163,\n\t\t212, 102, 190, 92, 175, 49, 254, 119, 196, 204, 145, 102,\n\t\t26, 160, 56, 109, 171, 101, 87, 27, 4, 190, 172, 114, 63,\n\t\t136, 157, 139, 55, 138, 230, 50, 132, 21, 39, 75, 133, 38,\n\t\t230, 126, 121, 248, 73, 138, 53, 210, 225, 154, 122, 82, 161,\n\t\t103, 186, 66, 118, 227, 151, 147, 129, 219, 107, 89, 219,\n\t\t119, 113, 131, 113, 198, 255, 124, 174, 95, 94, 185, 36, 110,\n\t\t221, 57, 61, 10, 211, 76, 118, 219, 75, 170, 197, 9, 1, 208,\n\t\t62, 62, 191, 146, 176, 219, 120, 229, 212, 164, 32, 230, 85,\n\t\t196, 174, 175, 45, 198, 165, 166, 127, 16, 4, 162, 67, 73,\n\t\t86, 186, 127, 62, 186, 33, 6, 146, 173, 83, 249, 38, 81, 54,\n\t\t162, 168, 24, 52, 249, 219, 4, 132, 195, 158, 116, 120, 115,\n\t\t88, 44, 118, 226, 254, 241, 232, 198, 96, 154, 91, 156, 188,\n\t\t18, 108, 165, 175, 95, 39, 175, 211, 83, 110, 235, 225, 225,\n\t\t40, 149, 4, 255, 233, 218, 79, 150, 58, 182, 212, 24, 213,\n\t\t243, 52, 131, 157, 213, 127, 239, 185, 200, 162, 83, 205,\n\t\t36, 110, 53, 178, 37, 250, 219, 23, 103, 31, 217, 14, 127,\n\t\t250, 196, 253, 67, 88, 125, 44, 119, 99, 117, 81, 198, 187,\n\t\t135, 159, 94, 136, 71, 142, 109, 93, 225, 149, 54, 126, 230,\n\t\t219, 55, 243, 237, 222, 141, 202, 241, 157, 132, 55, 64, 155,\n\t\t241, 203, 223, 70, 133, 233, 68, 83, 195, 213, 139, 165, 61,\n\t\t171, 237, 30, 148, 221, 243, 102, 237, 191, 54, 162, 244,\n\t\t17, 119, 149, 141, 253, 59, 102, 174, 183, 238, 86, 7, 59,\n\t\t23, 189, 139, 21, 238, 125, 241, 63, 102, 119, 100, 88, 154,\n\t\t170, 16, 230, 84, 202, 155, 182, 24, 132, 143, 178, 6, 173,\n\t\t43, 239, 44, 74, 213, 254, 145, 51, 113, 179, 39, 117, 179,\n\t\t158, 1, 39, 28, 89, 140, 247, 186, 174, 215, 44, 77, 43, 194,\n\t\t206, 26, 3, 56, 238, 88, 191, 121, 71, 36, 162, 136, 238,\n\t\t249, 172, 224, 39, 105, 185, 72, 36, 235, 184, 181, 183, 85,\n\t\t122, 110, 89, 108, 132, 138, 19, 197, 108, 202, 198, 54, 244,\n\t\t207, 6, 0, 249, 84, 30, 137, 194, 242, 52, 119, 3, 64, 118,\n\t\t40, 144, 0, 78, 122, 46, 151, 46, 144, 174, 172, 195, 51,\n\t\t61, 51, 244, 1, 238, 81, 84, 19, 141, 49, 168, 91, 139, 42,\n\t\t44, 249, 26, 22, 164, 90, 233, 216, 157, 13, 53, 47, 47, 146,\n\t\t214, 176, 96, 127, 163, 220, 201, 243, 18, 19, 56, 167, 212,\n\t\t252, 67, 32, 14, 226, 90, 38, 206, 110, 191, 150, 94, 170,\n\t\t18, 179, 194, 57, 111, 169, 217, 65, 165, 114, 88, 143, 39,\n\t\t222, 157, 108, 76, 151, 197, 230, 248, 130, 87, 221, 237,\n\t\t141, 89, 170, 215, 13, 27, 126, 254, 44, 66, 236, 173, 255,\n\t\t84, 30, 188, 251, 77, 120, 241, 23, 172, 141, 131, 157, 71,\n\t\t133, 17, 151, 141, 82, 125, 143, 17, 63, 249, 9, 113, 180,\n\t\t38, 11, 86, 15, 140, 212, 106, 245, 88, 218, 197, 160, 76,\n\t\t112, 201, 95, 250, 193, 82, 27, 197, 137, 183, 143, 53, 127,\n\t\t53, 41, 127, 171, 84, 114, 142, 198, 187, 95, 78, 40, 203,\n\t\t201, 134, 43, 139, 107, 132, 217, 203, 149, 126, 217, 55,\n\t\t208, 122, 251, 122, 117, 18, 64, 168, 191, 177, 113, 11, 193,\n\t\t29, 108, 6, 78, 207, 44, 184, 177, 93, 120, 245, 245, 84,\n\t\t240, 180, 28, 103, 10, 247, 238, 236, 234, 196, 152, 73, 81,\n\t\t216, 215, 155, 94, 3, 187, 204, 110, 38, 238, 12, 32, 215,\n\t\t32, 60, 128, 49, 107, 162, 59, 231, 42, 11, 23, 79, 44, 207,\n\t\t118, 114, 62, 3, 176, 125, 14, 147, 88, 221, 46, 200, 178,\n\t\t214, 243, 57, 106, 174, 81, 201, 162, 232, 108, 185, 196,\n\t\t203, 67, 218, 78, 221, 120, 193, 17, 70, 63, 189, 233, 157,\n\t\t119, 245, 250, 188, 47, 42, 29, 231, 166, 109, 44, 190, 123,\n\t\t158, 44, 230, 90, 245, 178, 249, 3, 140, 200, 98, 55, 218,\n\t\t11, 145, 246, 134, 60, 4, 185, 105, 243, 74, 189, 90, 188,\n\t\t96, 34, 10, 44, 84, 239, 92, 68, 207, 41, 31, 161, 147, 250,\n\t\t39, 125, 47, 6, 93, 178, 149, 26, 216, 105, 23, 75, 64, 184,\n\t\t101, 151, 32, 7, 174, 140, 192, 49, 17, 229, 94, 66, 39, 199,\n\t\t122, 63, 66, 87, 71, 132, 217, 114, 107, 51, 180, 34, 72,\n\t\t170, 240, 164, 85, 187, 158, 254, 146, 212, 137, 205, 13,\n\t\t69, 71, 20, 239, 180, 111, 174, 71, 13, 125, 61, 58, 67, 125,\n\t\t137, 212, 126, 59, 87, 78, 44, 114, 217, 18, 189, 208, 56,\n\t\t122, 101, 10, 204, 188, 249, 81, 10, 34, 21, 75, 193, 115,\n\t\t49, 17, 232, 110, 221, 187, 31, 165, 44, 250, 118, 12, 173,\n\t\t112, 53, 205, 233, 222, 150, 147, 174, 240, 2, 248, 68, 97,\n\t\t113, 12, 108, 23, 41, 116, 171, 23, 184, 211, 50, 243, 175,\n\t\t40, 14, 140, 60, 94, 73, 98, 226, 134, 36, 49, 223, 97, 92,\n\t\t251, 125, 141, 70, 15, 59, 122, 179, 223, 138, 138, 172, 46,\n\t\t236, 118, 177, 141, 185, 177, 160, 149, 102, 117, 0, 59, 92,\n\t\t236, 13, 49, 24, 212, 34, 188, 114, 169, 218, 245, 85, 147,\n\t\t217, 250, 220, 234, 250, 138, 118, 216, 28, 18, 5, 133, 109,\n\t\t119, 190, 34, 17, 201, 35, 19, 190, 188, 248, 12, 159, 42,\n\t\t19, 102, 70, 19, 193, 144, 29, 238, 161, 22, 223, 127, 53,\n\t\t21, 239, 30, 159, 156, 60, 232, 117, 31, 94, 59, 246, 202,\n\t\t213, 244, 187, 87, 222, 193, 250, 211, 23, 77, 73, 22, 160,\n\t\t65, 242, 241, 233, 207, 101, 161, 137, 57, 166, 51, 168, 149,\n\t\t230, 57, 181, 21, 54, 78, 208, 15, 78, 21, 23, 170, 147, 234,\n\t\t32, 216, 24, 166, 88, 211, 159, 145, 82, 111, 200, 87, 162,\n\t\t3, 29, 173, 255, 105, 194, 191, 248, 110, 83, 53, 153, 56,\n\t\t174, 94, 220, 120, 146, 9, 101, 65, 4, 25, 222, 255, 162,\n\t\t111, 38, 185, 116, 3, 221, 174, 122, 189, 34, 143, 118, 148,\n\t\t153, 157, 95, 98, 162, 169, 42, 45, 129, 121, 184, 161, 28,\n\t\t134, 239, 183, 5, 0, 86, 39, 158, 196, 85, 193, 242, 154,\n\t\t148, 144, 105, 82, 5, 122, 88, 185, 252, 252, 2, 97, 47, 232,\n\t\t119, 132, 42, 207, 103, 9, 60, 16, 100, 193, 62, 11, 132,\n\t\t48, 229, 219, 46, 151, 194, 9, 12, 55, 241, 171, 129, 131,\n\t\t84, 79, 226, 111, 202, 155, 153, 97, 20, 160, 53, 231, 25,\n\t\t127, 247, 156, 228, 100, 69, 164, 226, 73, 233, 114, 177,\n\t\t88, 117, 139, 229, 81, 201, 5, 97, 45, 106, 85, 81, 181, 214,\n\t\t79, 214, 225, 209, 218, 199, 97, 143, 78, 140, 126, 245, 49,\n\t\t114, 81, 100, 140, 161, 2, 210, 224, 98, 94, 32, 30, 198,\n\t\t73, 237, 155, 166, 70, 88, 184, 140, 25, 122, 239, 200, 89,\n\t\t10, 105, 132, 53, 192, 61, 24, 22, 143, 2, 89, 185, 222, 29,\n\t\t99, 163, 90, 81, 253, 208, 133, 239, 7, 229, 137, 95, 184,\n\t\t137, 74, 146, 24, 116, 121, 177, 59, 119, 247, 62, 43, 29,\n\t\t236, 184, 236, 181, 1, 22, 93, 20, 202, 33, 20, 50, 131, 147,\n\t\t92, 54, 129, 162, 0, 179, 102, 23, 227, 70, 172, 74, 185,\n\t\t167, 104, 7, 199, 125, 77, 130, 89, 160, 220, 153, 65, 204,\n\t\t215, 90, 243, 23, 164, 33, 56, 88, 93, 168, 118, 142, 250,\n\t\t95, 54, 49, 17, 227, 104, 184, 236, 179, 168, 245, 207, 215,\n\t\t58, 191, 249, 48, 50, 209, 51, 26, 245, 78, 47, 146, 250,\n\t\t233, 221, 77, 77, 200, 56, 74, 182, 198, 213, 78, 159, 59,\n\t\t24, 239, 126, 75, 61, 237, 174, 199, 38, 165, 105, 45, 154,\n\t\t61, 31, 185, 80, 11, 193, 211, 109, 111, 57, 178, 56, 225,\n\t\t24, 176, 81, 221, 59, 105, 100, 42, 88, 209, 173, 197, 98,\n\t\t133, 5, 84, 211, 219, 112, 102, 97, 87, 27, 100, 121, 169,\n\t\t128, 158, 162, 253, 182, 251, 255, 176, 140, 91, 176, 26,\n\t\t114, 240, 23, 194, 99, 171, 251, 53, 71, 113, 86, 95, 112,\n\t\t129, 94, 21, 50, 175, 214, 130, 200, 93, 70, 195, 173, 187,\n\t\t82, 255, 233, 22, 20, 185, 86, 112, 245, 179, 149, 35, 77,\n\t\t140, 164, 123, 62, 247, 15, 44, 137, 15, 45, 136, 196, 225,\n\t\t245, 202, 175, 252, 149, 37, 78, 132, 96, 178, 62, 87, 238,\n\t\t204, 63, 137, 250, 36, 119, 72, 232, 143, 46, 62, 201, 222,\n\t\t228, 137, 19, 74, 223, 54, 88, 177, 130, 168, 229, 111, 129,\n\t\t255, 131, 15, 205, 131, 110, 106, 111, 82, 190, 136, 154,\n\t\t67, 154, 213, 197, 33, 83, 232, 245, 1, 121, 207, 72, 1, 114,\n\t\t244, 34, 24, 228, 188, 169, 45, 229, 62, 103, 243, 190, 243,\n\t\t216, 241, 86, 129, 26, 26, 205, 194, 248, 188, 133, 146, 84,\n\t\t28, 235, 173, 205, 208, 235, 51, 50, 116, 254, 201, 197, 204,\n\t\t4, 14, 250, 53, 211, 207, 94, 189, 227, 148, 183, 27, 216,\n\t\t224, 212, 153, 229, 132, 127, 131, 251, 88, 199, 210, 205,\n\t\t44, 214, 147, 142, 69, 230, 226, 206, 58, 101, 184, 195, 186,\n\t\t183, 199, 188, 176, 14, 146, 202, 254, 191, 76, 73, 221, 207,\n\t\t36, 141, 131, 70, 251, 148, 90, 12, 77, 156, 248, 21, 27,\n\t\t109, 20, 56, 198, 16, 89, 34, 96, 8, 232, 169, 208, 214, 180,\n\t\t50, 34, 17, 203, 56, 74, 181, 44, 91, 183, 135, 24, 192, 34,\n\t\t0, 106, 22, 124, 104, 130, 235, 182, 250, 58, 22, 71, 38,\n\t\t213, 250, 26, 82, 34, 61, 134, 72, 198, 165, 210, 200, 229,\n\t\t189, 88, 210, 213, 186, 204, 52, 46, 172, 178, 245, 99, 128,\n\t\t224, 117, 78, 85, 224, 23, 62, 33, 252, 130, 171, 199, 99,\n\t\t191, 39, 59, 25, 215, 238, 103, 131, 35, 211, 230, 224, 30,\n\t\t226, 187, 182, 4, 97, 220, 90, 87, 124, 214, 107, 162, 62,\n\t\t84, 109, 239, 248, 191, 171, 79, 144, 54, 104, 203, 77, 252,\n\t\t231, 248, 101, 58, 4, 247, 30, 172, 241, 201, 38, 16, 50,\n\t\t143, 163, 5, 65, 77, 46, 39, 28, 77, 247, 33, 241, 107, 33,\n\t\t71, 167, 204, 211, 213, 134, 187, 103, 234, 172, 25, 237,\n\t\t81, 156, 206, 81, 20, 60, 87, 162, 230, 183, 119, 135, 26,\n\t\t110, 9, 232, 175, 61, 60, 124, 189, 95, 117, 106, 239, 55,\n\t\t234, 219, 90, 94, 206, 240, 243, 195, 211, 196, 170, 91, 76,\n\t\t225, 124, 245, 57, 249, 128, 246, 223, 222, 52, 183, 90, 63,\n\t\t107, 114, 195, 21, 7, 255, 196, 41, 221, 178, 218, 90, 130,\n\t\t16, 149, 107, 58, 163, 57, 85, 195, 214, 226, 89, 51, 93,\n\t\t83, 88, 237, 183, 227, 211, 142, 83, 69, 26, 72, 81, 43, 35,\n\t\t178, 219, 69, 218, 94, 178, 7, 37, 50, 157, 70, 147, 6, 62,\n\t\t26, 47, 246, 174, 40, 114, 48, 247, 151, 254, 147, 254, 71,\n\t\t236, 159, 86, 170, 14, 45, 201, 83, 199, 36, 37, 135, 5, 189,\n\t\t158, 154, 135, 132, 77, 8, 26, 147, 105, 195, 147, 156, 246,\n\t\t168, 151, 220, 196, 158, 36, 169, 184, 220, 170, 120, 57,\n\t\t13, 71, 175, 248, 6, 231, 172, 228, 33, 52, 37, 132, 58, 16,\n\t\t34, 205, 158, 200, 88, 3, 175, 248, 133, 184, 162, 222, 222,\n\t\t139, 35, 141, 164, 31, 214, 164, 55, 233, 127, 68, 242, 245,\n\t\t34, 189, 57, 185, 216, 175, 142, 78, 74, 10, 83, 189, 150,\n\t\t150, 135, 130, 93, 168, 194, 23, 172, 38, 252, 99, 31, 247,\n\t\t245, 110, 34, 79, 184, 76, 84, 102, 85, 238, 44, 197, 6, 143,\n\t\t172, 122, 59, 149, 65, 120, 34, 82, 136, 185, 119, 181, 149,\n\t\t120, 28, 188, 234, 178, 113, 236, 176, 71, 148, 39, 172, 214,\n\t\t227, 234, 139, 160, 194, 213, 218, 248, 168, 83, 60, 234,\n\t\t49, 2, 171, 116, 40, 3, 254, 221, 176, 207, 209, 249, 160,\n\t\t101, 4, 145, 23, 100, 194, 193, 208, 61, 17, 185, 163, 169,\n\t\t216, 98, 170, 172, 28, 74, 134, 166, 104, 181, 247, 103, 30,\n\t\t162, 153, 127, 136, 109, 190, 20, 111, 91, 81, 102, 133, 182,\n\t\t2, 21, 7, 168, 88, 100, 2, 113, 160, 49, 211, 181, 234, 54,\n\t\t235, 79, 196, 31, 25, 233, 166, 111, 132, 175, 231, 204, 177,\n\t\t102, 246, 83, 25, 179, 179, 169, 154, 22, 221, 154, 76, 215,\n\t\t242, 48, 120, 251, 103, 34, 201, 219, 197, 115, 197, 224,\n\t\t141, 30, 7, 169, 136, 199, 43, 185, 98, 157, 46, 14, 157,\n\t\t33, 30, 30, 153, 251, 43, 175, 74, 160, 18, 182, 119, 159,\n\t\t109, 217, 219, 226, 31, 235, 218, 214, 200, 149, 127, 38,\n\t\t37, 111, 223, 224, 233, 82, 58, 66, 210, 126, 207, 230, 246,\n\t\t77, 15, 239, 211, 205, 211, 242, 94, 116, 123, 185, 247, 16,\n\t\t181, 243, 116, 10, 195, 137, 165, 86, 142, 37, 248, 247, 103,\n\t\t139, 27, 18, 165, 58, 99, 35, 216, 141, 224, 2, 214, 107,\n\t\t255, 217, 243, 103, 138, 53, 81, 90, 151, 32, 45, 32, 4, 60,\n\t\t17, 53, 61, 97, 73, 89, 23, 192, 80, 171, 100, 230, 82, 197,\n\t\t248, 186, 165, 112, 91, 159, 226, 87, 238, 203, 140, 205,\n\t\t244, 157, 132, 207, 173, 231, 193, 30, 37, 255, 142, 99, 94,\n\t\t224, 203, 109, 83, 42, 191, 136, 31, 139, 167, 87, 231, 55,\n\t\t213, 186, 46, 112, 165, 213, 102, 147, 243, 178, 87, 199,\n\t\t81, 242, 128, 239, 133, 24, 42, 209, 86, 104, 112, 117, 161,\n\t\t94, 171, 71, 193, 207, 90, 189, 116, 233, 6, 56, 9, 111, 188,\n\t\t70, 222, 241, 180, 157, 69, 114, 109, 1, 24, 203, 245, 206,\n\t\t25, 36, 102, 91, 115, 53, 191, 159, 243, 62, 75, 94, 116,\n\t\t209, 154, 3, 169, 87, 48, 175, 74, 247, 108, 200, 196, 242,\n\t\t182, 40, 145, 187, 238, 246, 130, 127, 96, 237, 177, 214,\n\t\t47, 214, 219, 103, 42, 113, 252, 221, 25, 142, 240, 204, 19,\n\t\t4, 229, 158, 112, 143, 136, 111, 232, 139, 15, 170, 6, 25,\n\t\t178, 22, 236, 88, 196, 198, 197, 165, 243, 52, 8, 55, 17,\n\t\t80, 118, 80, 29, 124, 187, 96, 12, 6, 188, 154, 147, 55, 199,\n\t\t4, 86, 190, 7, 250, 201, 147, 113, 46, 34, 77, 226, 157, 229,\n\t\t154, 169, 47, 37, 92, 220, 54, 170, 104, 249, 127, 105, 107,\n\t\t101, 145, 132, 155, 219, 86, 177, 30, 122, 20, 49, 213, 41,\n\t\t181, 13, 231, 38, 210, 218, 31, 49, 61, 132, 106, 153, 84,\n\t\t40, 250, 61, 18, 19, 133, 151, 139, 31, 121, 37, 137, 163,\n\t\t49, 253, 180, 141, 58, 133, 108, 105, 218, 78, 83, 247, 71,\n\t\t98, 38, 97, 117, 98, 87, 31, 64, 103, 142, 36, 116, 88, 245,\n\t\t66, 66, 91, 41, 81, 238, 130, 94, 241, 241, 231, 34, 145,\n\t\t96, 32, 233, 158, 54, 238, 212, 240, 195, 125, 249, 162, 214,\n\t\t217, 19, 215, 125, 221, 85, 128, 232, 236, 111, 88, 241, 51,\n\t\t245, 82, 120, 58, 157, 118, 250, 24, 223, 228, 52, 84, 52,\n\t\t228, 212, 4, 182, 250, 228, 104, 52, 90, 141, 117, 82, 216,\n\t\t1, 164, 141, 251, 195, 172, 143, 172, 63, 178, 223, 172, 116,\n\t\t95, 220, 48, 206, 77, 163, 57, 58, 220, 62, 60, 14, 206, 253,\n\t\t169, 96, 240, 218, 249, 174, 0, 58, 63, 212, 62, 52, 174,\n\t\t209, 184, 9, 28, 3, 104, 44, 39, 164, 137, 69, 11, 112, 60,\n\t\t252, 182, 166, 67, 204, 116, 134, 33, 78, 44, 113, 71, 205,\n\t\t219, 195, 209, 128, 59, 32, 38, 164, 19, 37, 190, 172, 139,\n\t\t247, 222, 91, 162, 142, 199, 243, 110, 224, 107, 244, 118,\n\t\t190, 58, 212, 245, 152, 204, 77, 0, 63, 217, 170, 220, 246,\n\t\t128, 170, 233, 186, 179, 21, 112, 139, 26, 120, 56, 248, 236,\n\t\t232, 235, 233, 128, 185, 226, 26, 132, 136, 124, 20, 12, 248,\n\t\t81, 66, 59, 132, 152, 142, 50, 160, 207, 162, 60, 75, 96,\n\t\t16, 186, 91, 230, 204, 233, 95, 198, 239, 7, 190, 246, 7,\n\t\t53, 98, 151, 123, 15, 206, 177, 123, 61, 113, 28, 29, 97,\n\t\t213, 50, 71, 181, 140, 44, 52, 224, 112, 181, 9, 147, 180,\n\t\t240, 64, 36, 116, 241, 101, 248, 17, 111, 21, 43, 59, 176,\n\t\t46, 99, 37, 182, 81, 89, 183, 224, 106, 145, 58, 34, 131,\n\t\t106, 85, 162, 8, 139, 140, 28, 26, 115, 195, 210, 254, 32,\n\t\t15, 237, 138, 34, 236, 210, 72, 147, 93, 205, 124, 23, 16,\n\t\t182, 61, 252, 252, 174, 192, 248, 79, 164, 43, 84, 234, 19,\n\t\t188, 31, 58, 81, 127, 199, 49, 92, 167, 191, 76, 238, 70,\n\t\t33, 12, 41, 39, 70, 59, 247, 184, 251, 87, 124, 215, 248,\n\t\t95, 58, 100, 165, 56, 130, 188, 61, 220, 237, 123, 55, 45,\n\t\t216, 59, 234, 189, 253, 219, 245, 95, 17, 156, 71, 124, 243,\n\t\t27, 56, 251, 181, 142, 240, 103, 218, 158, 208, 131, 71, 32,\n\t\t151, 140, 93, 191, 243, 215, 78, 30, 133, 32, 9, 165, 29,\n\t\t218, 76, 11, 117, 8, 165, 110, 57, 116, 114, 200, 32, 48,\n\t\t63, 207, 252, 77, 72, 89, 253, 53, 108, 141, 68, 170, 246,\n\t\t86, 36, 39, 43, 44, 117, 98, 22, 197, 62, 150, 60, 46, 166,\n\t\t186, 245, 110, 173, 75, 200, 13, 82, 235, 22, 98, 72, 112,\n\t\t89, 154, 197, 64, 82, 123, 123, 9, 122, 157, 87, 29, 200,\n\t\t55, 165, 31, 126, 161, 67, 76, 4, 51, 233, 50, 163, 213, 54,\n\t\t212, 252, 110, 210, 226, 137, 168, 13, 172, 102, 208, 123,\n\t\t172, 207, 4, 236, 41, 117, 41, 62, 41, 117, 120, 248, 52,\n\t\t12, 29, 213, 231, 160, 159, 246, 109, 67, 84, 74, 187, 30,\n\t\t215, 106, 107, 76, 79, 35, 163, 10, 24, 158, 104, 12, 45,\n\t\t51, 30, 191, 238, 3, 29, 241, 241, 95, 250, 126, 101, 176,\n\t\t12, 25, 130, 233, 124, 73, 86, 176, 191, 156, 175, 129, 136,\n\t\t196, 3, 43, 14, 161, 199, 177, 111, 83, 36, 153, 90, 224,\n\t\t21, 62, 22, 16, 197, 171, 214, 112, 166, 162, 76, 102, 39,\n\t\t72, 215, 46, 126, 188, 160, 69, 248, 141, 148, 178, 63, 1,\n\t\t0, 239, 82, 227, 87, 159, 158, 131, 180, 153, 137, 219, 211,\n\t\t19, 216, 142, 187, 197, 103, 107, 81, 189, 203, 41, 140, 144,\n\t\t232, 23, 222, 207, 189, 111, 19, 120, 239, 33, 58, 25, 87,\n\t\t71, 87, 44, 219, 214, 215, 68, 157, 37, 73, 56, 190, 202,\n\t\t79, 46, 20, 51, 243, 252, 229, 29, 202, 93, 83, 217, 62, 143,\n\t\t187, 86, 38, 96, 248, 174, 186, 239, 174, 158, 7, 98, 145,\n\t\t214, 56, 47, 77, 205, 58, 132, 237, 156, 104, 186, 25, 25,\n\t\t71, 153, 125, 180, 228, 57, 69, 93, 64, 105, 182, 3, 211,\n\t\t69, 84, 31, 92, 218, 134, 218, 253, 244, 139, 164, 121, 43,\n\t\t119, 121, 89, 35, 52, 241, 102, 215, 217, 71, 183, 56, 7,\n\t\t16, 55, 33, 225, 216, 71, 10, 117, 184, 79, 225, 167, 164,\n\t\t210, 54, 56, 7, 2, 243, 194, 121, 124, 248, 218, 164, 152,\n\t\t213, 185, 213, 126, 51, 62, 69, 255, 150, 40, 36, 144, 30,\n\t\t232, 196, 251, 8, 4, 46, 117, 15, 69, 6, 16, 77, 182, 218,\n\t\t64, 188, 224, 142, 4, 44, 218, 51, 70, 126, 244, 91, 98, 151,\n\t\t44, 29, 116, 239, 232, 138, 196, 70, 145, 129, 209, 96, 206,\n\t\t203, 231, 184, 174, 151, 106, 248, 133, 176, 199, 142, 15,\n\t\t254, 197, 152, 50, 65, 1, 79, 170, 90, 213, 101, 41, 35, 38,\n\t\t71, 184, 27, 115, 251, 202, 236, 43, 32, 184, 121, 195, 245,\n\t\t90, 162, 3, 33, 203, 222, 114, 44, 37, 234, 133, 123, 140,\n\t\t130, 88, 246, 76, 135, 19, 196, 131, 245, 3, 21, 14, 30, 106,\n\t\t181, 135, 195, 77, 43, 43, 177, 177, 49, 145, 233, 199, 91,\n\t\t206, 201, 106, 119, 141, 155, 115, 96, 26, 67, 53, 12, 191,\n\t\t134, 74, 69, 179, 92, 24, 115, 69, 120, 114, 103, 113, 20,\n\t\t154, 163, 181, 75, 86, 57, 58, 227, 53, 179, 39, 114, 187,\n\t\t166, 245, 191, 84, 33, 182, 159, 197, 242, 166, 210, 105,\n\t\t135, 198, 220, 113, 130, 199, 196, 64, 131, 28, 104, 14, 10,\n\t\t195, 115, 60, 191, 112, 252, 231, 162, 136, 86, 132, 132,\n\t\t214, 58, 239, 162, 63, 139, 189, 157, 58, 139, 11, 140, 168,\n\t\t73, 232, 123, 232, 69, 40, 43, 140, 154, 82, 86, 212, 137,\n\t\t55, 34, 11, 124, 161, 232, 2, 214, 98, 116, 26, 118, 35, 150,\n\t\t136, 112, 212, 213, 32, 74, 225, 22, 141, 12, 14, 166, 175,\n\t\t96, 3, 182, 137, 252, 215, 114, 178, 201, 245, 111, 108, 118,\n\t\t34, 204, 89, 150, 223, 248, 63, 220, 129, 195, 255, 163, 38,\n\t\t239, 70, 67, 255, 47, 39, 205, 225, 234, 180, 161, 79, 149,\n\t\t161, 231, 4, 109, 230, 83, 194, 138, 225, 246, 249, 88, 106,\n\t\t146, 197, 35, 118, 173, 43, 197, 28, 58, 104, 58, 116, 136,\n\t\t83, 122, 103, 69, 146, 161, 106, 17, 16, 25, 61, 156, 180,\n\t\t52, 144, 130, 73, 5, 23, 168, 201, 14, 175, 28, 139, 249,\n\t\t193, 232, 213, 251, 150, 248, 14, 214, 211, 9, 201, 98, 50,\n\t\t135, 240, 79, 160, 103, 182, 191, 66, 232, 150, 246, 8, 199,\n\t\t50, 130, 241, 7, 66, 98, 66, 178, 41, 168, 52, 98, 50, 177,\n\t\t182, 169, 4, 129, 240, 205, 71, 100, 82, 88, 117, 84, 58,\n\t\t85, 22, 220, 209, 158, 67, 11, 230, 128, 5, 68, 243, 76, 250,\n\t\t240, 33, 77, 95, 178, 211, 14, 103, 201, 249, 131, 176, 196,\n\t\t182, 232, 80, 109, 116, 116, 68, 196, 142, 237, 14, 196, 2,\n\t\t151, 231, 251, 35, 5, 34, 150, 194, 162, 166, 43, 101, 255,\n\t\t104, 221, 21, 197, 24, 75, 150, 207, 143, 239, 22, 45, 154,\n\t\t170, 75, 215, 192, 77, 112, 151, 167, 254, 177, 68, 91, 16,\n\t\t70, 115, 233, 246, 203, 9, 26, 197, 65, 21, 255, 159, 219,\n\t\t5, 103, 207, 238, 187, 245, 115, 101, 61, 24, 72, 78, 73,\n\t\t213, 4, 22, 237, 176, 230, 180, 39, 71, 118, 12, 68, 26, 193,\n\t\t13, 150, 197, 220, 169, 182, 15, 212, 165, 133, 250, 22, 103,\n\t\t234, 6, 157, 222, 134, 55, 159, 11, 51, 109, 222, 60, 97,\n\t\t231, 42, 166, 38, 147, 44, 19, 152, 49, 206, 203, 48, 94,\n\t\t125, 79, 70, 26, 104, 153, 246, 130, 5, 125, 112, 235, 230,\n\t\t251, 156, 136, 64, 66, 0, 193, 98, 10, 26, 119, 208, 190,\n\t\t62, 248, 242, 93, 161, 241, 57, 162, 237, 89, 25, 197, 68,\n\t\t23, 13, 20, 85, 210, 15, 211, 67, 124, 93, 227, 66, 162, 197,\n\t\t116, 159, 187, 199, 158, 233, 157, 221, 82, 163, 34, 210,\n\t\t99, 32, 46, 26, 241, 29, 251, 208, 178, 80, 234, 128, 184,\n\t\t210, 219, 117, 229, 74, 241, 113, 233, 185, 164, 180, 18,\n\t\t64, 173, 93, 202, 18, 38, 241, 233, 73, 169, 105, 163, 252,\n\t\t36, 161, 123, 226, 210, 196, 37, 21, 246, 3, 161, 58, 201,\n\t\t79, 22, 176, 150, 178, 4, 201, 252, 249, 94, 246, 226, 231,\n\t\t123, 80, 212, 48, 118, 236, 107, 140, 129, 60, 101, 67, 51,\n\t\t185, 48, 184, 88, 140, 250, 195, 249, 238, 76, 225, 211, 56,\n\t\t4, 122, 201, 246, 153, 85, 197, 161, 18, 129, 187, 202, 26,\n\t\t110, 6, 153, 157, 140, 253, 14, 251, 29, 15, 208, 61, 167,\n\t\t210, 55, 58, 92, 13, 244, 3, 142, 27, 233, 30, 62, 140, 141,\n\t\t14, 108, 95, 207, 87, 244, 253, 130, 235, 79, 39, 190, 19,\n\t\t77, 244, 241, 144, 188, 34, 58, 177, 114, 39, 177, 247, 1,\n\t\t229, 184, 159, 14, 66, 89, 5, 204, 84, 181, 45, 204, 189,\n\t\t64, 76, 253, 202, 52, 68, 63, 175, 174, 2, 173, 84, 86, 181,\n\t\t41, 50, 0, 185, 131, 32, 74, 243, 152, 25, 243, 178, 186,\n\t\t149, 82, 37, 102, 161, 168, 115, 153, 10, 127, 235, 41, 24,\n\t\t36, 27, 200, 20, 181, 112, 102, 160, 106, 59, 128, 194, 101,\n\t\t118, 183, 127, 120, 47, 247, 15, 10, 204, 253, 87, 117, 224,\n\t\t167, 140, 112, 114, 188, 27, 212, 149, 122, 124, 198, 12,\n\t\t11, 63, 32, 11, 181, 246, 73, 232, 58, 115, 128, 111, 185,\n\t\t201, 130, 117, 45, 214, 249, 203, 28, 98, 2, 23, 36, 104,\n\t\t69, 173, 163, 179, 218, 5, 218, 43, 13, 174, 58, 180, 135,\n\t\t4, 252, 187, 4, 189, 151, 143, 197, 214, 238, 105, 95, 249,\n\t\t107, 226, 143, 77, 63, 255, 120, 70, 167, 208, 127, 217, 214,\n\t\t207, 9, 202, 246, 136, 83, 60, 163, 209, 159, 105, 193, 171,\n\t\t125, 165, 157, 211, 203, 138, 74, 192, 81, 148, 171, 83, 105,\n\t\t84, 191, 83, 112, 49, 34, 191, 24, 31, 117, 106, 186, 74,\n\t\t106, 123, 10, 69, 205, 78, 122, 231, 11, 174, 205, 102, 62,\n\t\t196, 113, 30, 174, 115, 48, 152, 61, 85, 98, 35, 92, 34, 109,\n\t\t8, 160, 82, 98, 39, 227, 31, 8, 111, 150, 135, 120, 97, 197,\n\t\t5, 21, 147, 150, 72, 13, 232, 33, 83, 28, 179, 94, 177, 48,\n\t\t161, 177, 126, 126, 124, 82, 156, 130, 142, 33, 95, 198, 57,\n\t\t38, 212, 42, 20, 58, 45, 136, 1, 90, 157, 66, 113, 94, 3,\n\t\t24, 41, 248, 28, 197, 224, 200, 180, 221, 128, 87, 168, 213,\n\t\t81, 45, 84, 157, 86, 169, 123, 16, 249, 64, 151, 228, 133,\n\t\t255, 151, 139, 255, 16, 219, 199, 202, 63, 29, 178, 3, 24,\n\t\t251, 239, 243, 248, 104, 111, 78, 251, 179, 228, 15, 145,\n\t\t54, 148, 154, 104, 9, 155, 209, 147, 236, 139, 18, 255, 91,\n\t\t246, 135, 107, 78, 85, 147, 84, 76, 122, 134, 57, 109, 132,\n\t\t76, 51, 230, 252, 100, 99, 205, 214, 224, 160, 96, 75, 176,\n\t\t11, 78, 246, 51, 199, 56, 59, 148, 233, 147, 136, 116, 0,\n\t\t205, 44, 225, 178, 237, 246, 135, 237, 179, 43, 199, 12, 146,\n\t\t7, 49, 238, 65, 30, 246, 7, 236, 237, 247, 219, 151, 161,\n\t\t247, 85, 1, 143, 32, 47, 180, 32, 140, 246, 228, 150, 122,\n\t\t118, 153, 12, 169, 15, 248, 177, 43, 101, 30, 39, 37, 83,\n\t\t173, 242, 48, 216, 135, 71, 224, 63, 176, 126, 227, 35, 103,\n\t\t4, 218, 227, 127, 98, 127, 196, 111, 247, 80, 171, 60, 19,\n\t\t130, 30, 134, 36, 125, 101, 51, 66, 14, 216, 2, 145, 187,\n\t\t220, 53, 97, 233, 154, 112, 119, 89, 24, 56, 52, 153, 129,\n\t\t174, 244, 72, 80, 166, 149, 211, 169, 84, 105, 170, 43, 138,\n\t\t157, 92, 51, 92, 45, 166, 248, 0, 31, 169, 152, 78, 135, 35,\n\t\t194, 242, 209, 177, 177, 81, 116, 55, 218, 65, 6, 102, 122,\n\t\t140, 226, 223, 174, 163, 230, 174, 76, 251, 204, 136, 174,\n\t\t174, 111, 93, 97, 22, 129, 197, 236, 244, 210, 243, 188, 211,\n\t\t86, 232, 177, 19, 139, 28, 172, 83, 42, 148, 92, 229, 86,\n\t\t37, 56, 47, 178, 103, 17, 185, 249, 186, 124, 60, 209, 80,\n\t\t76, 148, 219, 59, 16, 185, 214, 159, 211, 58, 53, 220, 112,\n\t\t70, 66, 141, 219, 111, 17, 177, 148, 12, 6, 13, 19, 121, 209,\n\t\t89, 113, 125, 83, 0, 0, 64, 255, 191, 160, 102, 179, 29, 202,\n\t\t98, 185, 144, 116, 101, 105, 160, 98, 39, 197, 30, 124, 61,\n\t\t179, 11, 1, 223, 129, 64, 206, 58, 13, 159, 54, 55, 61, 7,\n\t\t72, 138, 203, 215, 165, 179, 113, 186, 72, 88, 233, 84, 86,\n\t\t191, 176, 209, 79, 226, 51, 107, 97, 21, 11, 157, 194, 115,\n\t\t105, 56, 179, 223, 182, 84, 209, 43, 219, 37, 165, 145, 95,\n\t\t115, 77, 183, 113, 224, 157, 85, 85, 121, 98, 196, 25, 24,\n\t\t162, 128, 126, 101, 12, 95, 109, 135, 65, 83, 86, 44, 39,\n\t\t121, 223, 246, 28, 157, 103, 199, 136, 199, 68, 241, 237,\n\t\t68, 20, 10, 141, 58, 205, 39, 81, 226, 75, 119, 64, 145, 40,\n\t\t44, 97, 101, 206, 235, 58, 20, 31, 131, 2, 116, 109, 242,\n\t\t242, 253, 84, 84, 106, 112, 133, 149, 154, 212, 109, 143,\n\t\t199, 10, 145, 184, 182, 153, 66, 6, 179, 78, 61, 12, 65, 249,\n\t\t16, 54, 246, 111, 24, 158, 222, 23, 141, 192, 60, 67, 9, 102,\n\t\t147, 112, 103, 62, 29, 71, 227, 12, 249, 31, 87, 1, 141, 70,\n\t\t61, 227, 176, 56, 224, 38, 81, 241, 25, 137, 50, 149, 31,\n\t\t27, 119, 217, 163, 193, 58, 110, 215, 141, 94, 123, 26, 26,\n\t\t156, 153, 99, 165, 18, 48, 0, 91, 253, 229, 233, 103, 8, 132,\n\t\t199, 116, 214, 167, 115, 116, 142, 150, 202, 162, 184, 184,\n\t\t218, 114, 179, 156, 171, 77, 221, 221, 89, 127, 214, 93, 242,\n\t\t253, 175, 181, 171, 8, 209, 58, 5, 69, 236, 46, 35, 175, 211,\n\t\t104, 145, 145, 18, 117, 60, 82, 174, 173, 241, 244, 149, 76,\n\t\t191, 75, 164, 231, 179, 164, 148, 132, 74, 141, 150, 155,\n\t\t72, 207, 61, 254, 215, 183, 34, 2, 238, 204, 112, 240, 70,\n\t\t120, 63, 147, 19, 118, 37, 255, 142, 187, 115, 223, 250, 86,\n\t\t220, 19, 0, 26, 184, 218, 0, 57, 175, 182, 98, 195, 1, 162,\n\t\t202, 23, 188, 49, 63, 255, 128, 24, 250, 255, 227, 39, 38,\n\t\t42, 86, 180, 102, 37, 38, 60, 144, 102, 140, 202, 133, 242,\n\t\t0, 173, 66, 126, 217, 250, 243, 252, 193, 159, 4, 137, 193,\n\t\t7, 7, 83, 83, 31, 148, 89, 46, 179, 185, 90, 133, 224, 70,\n\t\t60, 98, 116, 182, 239, 129, 255, 69, 8, 249, 249, 231, 210,\n\t\t210, 154, 26, 115, 193, 159, 230, 3, 141, 21, 238, 191, 206,\n\t\t36, 37, 174, 106, 73, 87, 40, 110, 30, 56, 253, 72, 176, 120,\n\t\t196, 126, 49, 25, 82, 146, 55, 130, 87, 87, 85, 212, 72, 69,\n\t\t132, 194, 119, 83, 254, 186, 234, 20, 197, 153, 88, 107, 188,\n\t\t167, 171, 147, 47, 246, 219, 32, 79, 69, 64, 98, 222, 190,\n\t\t79, 189, 186, 94, 255, 171, 72, 114, 159, 8, 10, 198, 79,\n\t\t245, 112, 9, 227, 39, 102, 132, 24, 140, 33, 193, 145, 49,\n\t\t65, 65, 154, 248, 125, 252, 90, 131, 130, 251, 63, 216, 88,\n\t\t204, 181, 119, 87, 122, 216, 217, 216, 60, 87, 119, 39, 97,\n\t\t135, 155, 192, 61, 156, 40, 92, 48, 56, 226, 104, 114, 235,\n\t\t148, 56, 122, 156, 75, 171, 179, 243, 82, 142, 87, 88, 218,\n\t\t88, 166, 176, 108, 129, 139, 40, 40, 124, 162, 136, 178, 152,\n\t\t54, 66, 241, 249, 45, 113, 228, 98, 181, 210, 2, 52, 248,\n\t\t120, 68, 171, 174, 169, 81, 107, 19, 59, 10, 152, 113, 89,\n\t\t14, 17, 217, 60, 225, 98, 162, 53, 184, 170, 209, 209, 177,\n\t\t48, 182, 208, 17, 74, 72, 172, 10, 233, 244, 67, 215, 204,\n\t\t238, 200, 155, 19, 33, 91, 95, 190, 56, 119, 225, 252, 141,\n\t\t255, 252, 29, 3, 58, 106, 209, 85, 17, 236, 182, 23, 245,\n\t\t10, 173, 82, 139, 43, 205, 12, 199, 57, 47, 193, 114, 5, 219,\n\t\t99, 247, 111, 188, 113, 143, 197, 114, 252, 254, 61, 203,\n\t\t17, 213, 113, 238, 198, 207, 204, 138, 73, 170, 78, 145, 121,\n\t\t176, 15, 81, 248, 69, 132, 56, 127, 149, 86, 46, 147, 24,\n\t\t37, 50, 40, 214, 100, 22, 212, 121, 14, 199, 5, 233, 15, 188,\n\t\t168, 232, 190, 139, 189, 86, 209, 123, 100, 61, 242, 65, 26,\n\t\t225, 229, 224, 69, 189, 129, 50, 238, 161, 198, 80, 248, 249,\n\t\t217, 1, 179, 236, 198, 73, 68, 19, 26, 214, 55, 153, 107,\n\t\t241, 182, 218, 171, 49, 35, 24, 226, 218, 24, 183, 2, 159,\n\t\t255, 190, 81, 48, 39, 49, 176, 190, 143, 83, 41, 255, 214,\n\t\t74, 163, 177, 247, 113, 194, 83, 102, 207, 201, 154, 112,\n\t\t132, 8, 119, 17, 135, 246, 109, 91, 71, 142, 179, 130, 240,\n\t\t188, 220, 237, 37, 233, 173, 195, 167, 93, 173, 160, 59, 51,\n\t\t51, 99, 71, 113, 82, 235, 210, 219, 46, 214, 238, 60, 48,\n\t\t65, 150, 55, 241, 148, 204, 9, 147, 216, 180, 76, 117, 18,\n\t\t22, 74, 41, 86, 137, 156, 132, 68, 179, 138, 85, 242, 199,\n\t\t132, 20, 91, 177, 172, 84, 120, 50, 123, 67, 240, 219, 107,\n\t\t48, 202, 100, 72, 240, 66, 186, 7, 161, 85, 171, 144, 152,\n\t\t23, 44, 228, 235, 9, 86, 178, 74, 154, 77, 53, 201, 180, 204,\n\t\t238, 32, 89, 105, 84, 178, 66, 21, 50, 43, 27, 191, 28, 177,\n\t\t74, 62, 48, 133, 210, 116, 109, 236, 88, 222, 15, 69, 204,\n\t\t18, 180, 197, 138, 211, 238, 48, 146, 163, 54, 139, 24, 50,\n\t\t165, 113, 39, 192, 163, 174, 88, 19, 246, 72, 113, 3, 150,\n\t\t145, 82, 81, 54, 110, 113, 195, 11, 177, 209, 95, 169, 163,\n\t\t191, 212, 252, 108, 16, 251, 29, 217, 181, 169, 168, 225,\n\t\t188, 150, 198, 63, 5, 204, 80, 53, 190, 22, 77, 105, 170,\n\t\t166, 81, 138, 174, 165, 126, 76, 40, 60, 138, 102, 202, 161,\n\t\t168, 108, 60, 74, 222, 46, 80, 249, 70, 52, 163, 2, 192, 171,\n\t\t226, 70, 48, 239, 172, 99, 159, 98, 36, 167, 226, 238, 202,\n\t\t61, 251, 70, 100, 25, 241, 203, 245, 76, 37, 42, 138, 80,\n\t\t30, 52, 99, 245, 185, 247, 26, 151, 88, 111, 31, 63, 149,\n\t\t167, 211, 175, 37, 101, 243, 77, 159, 185, 83, 38, 177, 60,\n\t\t4, 36, 154, 19, 20, 29, 0, 190, 219, 207, 39, 44, 37, 204,\n\t\t255, 107, 201, 158, 61, 115, 223, 62, 100, 113, 81, 86, 88,\n\t\t140, 207, 173, 154, 141, 53, 155, 184, 99, 14, 41, 163, 10,\n\t\t166, 141, 5, 171, 143, 114, 99, 21, 232, 20, 249, 99, 209,\n\t\t121, 17, 248, 125, 149, 102, 167, 237, 240, 9, 223, 29, 194,\n\t\t16, 221, 137, 2, 94, 155, 251, 86, 178, 52, 39, 173, 8, 83,\n\t\t89, 250, 83, 80, 219, 221, 64, 139, 65, 104, 57, 133, 199,\n\t\t3, 34, 208, 188, 229, 199, 24, 201, 171, 230, 225, 137, 122,\n\t\t198, 107, 78, 74, 121, 125, 4, 93, 129, 68, 234, 128, 149,\n\t\t229, 216, 224, 113, 106, 156, 166, 126, 184, 81, 183, 10,\n\t\t130, 45, 166, 12, 5, 213, 248, 85, 114, 184, 226, 134, 200,\n\t\t232, 191, 110, 222, 189, 103, 122, 83, 3, 222, 81, 155, 196,\n\t\t9, 187, 35, 199, 71, 147, 146, 214, 112, 229, 144, 247, 230,\n\t\t128, 58, 226, 181, 107, 201, 202, 190, 186, 157, 10, 0, 6,\n\t\t40, 117, 61, 74, 59, 88, 255, 100, 240, 199, 191, 104, 206,\n\t\t124, 88, 17, 63, 184, 56, 15, 2, 10, 167, 246, 53, 20, 245,\n\t\t254, 193, 40, 232, 203, 43, 11, 169, 146, 137, 77, 40, 71,\n\t\t109, 22, 157, 17, 148, 223, 49, 239, 82, 222, 157, 197, 77,\n\t\t52, 26, 225, 72, 74, 242, 248, 182, 89, 91, 48, 56, 70, 83,\n\t\t227, 180, 2, 43, 160, 92, 58, 102, 77, 142, 104, 89, 108,\n\t\t25, 75, 197, 124, 66, 111, 174, 145, 136, 207, 208, 84, 183,\n\t\t215, 207, 52, 8, 65, 109, 119, 171, 232, 90, 28, 40, 159,\n\t\t62, 19, 216, 247, 124, 161, 209, 251, 114, 2, 30, 253, 90,\n\t\t177, 209, 110, 246, 185, 23, 95, 115, 38, 252, 26, 142, 15,\n\t\t28, 250, 53, 53, 219, 182, 196, 222, 110, 105, 119, 67, 132,\n\t\t132, 44, 238, 203, 13, 184, 244, 107, 202, 33, 251, 57, 65,\n\t\t110, 139, 87, 252, 122, 148, 19, 208, 71, 167, 125, 137, 56,\n\t\t55, 91, 250, 251, 208, 220, 95, 151, 114, 89, 7, 89, 123,\n\t\t142, 57, 19, 30, 76, 13, 131, 58, 83, 143, 247, 244, 88, 66,\n\t\t243, 146, 134, 107, 134, 126, 53, 155, 108, 75, 237, 236,\n\t\t151, 216, 178, 91, 214, 174, 39, 104, 174, 242, 174, 46, 97,\n\t\t157, 79, 130, 25, 221, 223, 93, 57, 174, 223, 187, 37, 193,\n\t\t159, 235, 8, 154, 237, 100, 210, 248, 247, 169, 234, 62, 71,\n\t\t197, 1, 157, 111, 71, 163, 243, 237, 231, 253, 5, 235, 166,\n\t\t102, 100, 80, 57, 76, 118, 204, 214, 185, 74, 46, 62, 85,\n\t\t39, 83, 199, 30, 202, 72, 252, 99, 208, 110, 232, 20, 196,\n\t\t17, 114, 11, 249, 106, 63, 106, 222, 234, 20, 44, 241, 202,\n\t\t85, 211, 30, 50, 218, 177, 218, 220, 230, 132, 30, 199, 58,\n\t\t97, 23, 105, 24, 143, 112, 156, 71, 171, 39, 122, 110, 224,\n\t\t203, 217, 168, 80, 100, 0, 85, 140, 224, 131, 112, 225, 31,\n\t\t37, 227, 164, 180, 139, 64, 97, 171, 229, 128, 246, 68, 188,\n\t\t180, 238, 60, 231, 174, 79, 251, 202, 32, 92, 72, 200, 11,\n\t\t5, 149, 248, 172, 232, 13, 39, 38, 205, 33, 75, 234, 124,\n\t\t17, 10, 180, 123, 9, 73, 75, 146, 230, 58, 242, 184, 174,\n\t\t14, 124, 142, 91, 155, 157, 132, 116, 158, 14, 63, 79, 210,\n\t\t22, 121, 123, 113, 5, 244, 89, 35, 65, 180, 20, 136, 154,\n\t\t227, 197, 17, 97, 226, 112, 193, 10, 47, 145, 40, 93, 204,\n\t\t162, 118, 193, 133, 190, 36, 250, 239, 65, 154, 124, 120,\n\t\t132, 132, 9, 60, 48, 70, 140, 19, 142, 241, 193, 208, 152,\n\t\t44, 157, 241, 207, 29, 95, 211, 98, 233, 148, 9, 27, 153,\n\t\t140, 174, 156, 74, 177, 60, 126, 81, 145, 61, 136, 240, 36,\n\t\t157, 35, 82, 89, 126, 67, 197, 251, 191, 216, 179, 0, 91,\n\t\t188, 101, 123, 105, 205, 116, 173, 62, 55, 87, 31, 55, 169,\n\t\t192, 68, 121, 86, 118, 245, 81, 137, 89, 27, 24, 31, 31, 40,\n\t\t191, 198, 65, 165, 208, 252, 151, 81, 2, 138, 48, 137, 14,\n\t\t134, 24, 55, 176, 147, 111, 218, 127, 120, 171, 175, 140,\n\t\t187, 160, 179, 230, 5, 103, 178, 236, 213, 4, 169, 180, 226,\n\t\t103, 234, 103, 191, 206, 5, 92, 64, 47, 157, 56, 179, 169,\n\t\t80, 4, 183, 85, 174, 40, 22, 153, 96, 153, 166, 38, 139, 217,\n\t\t220, 8, 203, 18, 153, 138, 87, 84, 130, 86, 182, 62, 59, 85,\n\t\t197, 176, 246, 98, 232, 24, 143, 216, 37, 214, 47, 86, 95,\n\t\t157, 109, 142, 168, 138, 221, 223, 90, 173, 36, 168, 88, 2,\n\t\t2, 247, 60, 235, 252, 128, 39, 254, 51, 214, 125, 60, 151,\n\t\t135, 111, 94, 18, 170, 85, 124, 92, 211, 100, 76, 164, 165,\n\t\t212, 88, 234, 147, 174, 65, 147, 103, 189, 43, 66, 239, 43,\n\t\t69, 162, 21, 69, 171, 144, 228, 97, 18, 171, 240, 213, 87,\n\t\t190, 102, 66, 254, 28, 167, 30, 22, 158, 2, 195, 114, 133,\n\t\t197, 98, 181, 91, 45, 47, 139, 92, 35, 186, 44, 159, 4, 172,\n\t\t59, 92, 234, 156, 18, 20, 212, 84, 64, 153, 93, 134, 133,\n\t\t138, 199, 103, 137, 196, 20, 111, 67, 40, 71, 36, 18, 122,\n\t\t21, 212, 22, 207, 166, 20, 4, 55, 167, 10, 204, 45, 103, 214,\n\t\t65, 110, 112, 82, 186, 137, 94, 196, 203, 122, 151, 244, 246,\n\t\t156, 55, 41, 181, 20, 147, 28, 128, 20, 157, 251, 168, 38,\n\t\t14, 73, 68, 253, 27, 22, 242, 62, 211, 87, 106, 73, 160, 114,\n\t\t219, 28, 90, 93, 79, 114, 119, 72, 96, 91, 194, 200, 232,\n\t\t77, 53, 183, 60, 126, 172, 236, 124, 189, 83, 175, 7, 103,\n\t\t29, 184, 124, 156, 239, 117, 211, 243, 107, 25, 151, 65, 245,\n\t\t15, 208, 134, 215, 221, 194, 58, 141, 150, 137, 167, 11, 8,\n\t\t116, 119, 186, 121, 227, 57, 10, 252, 98, 250, 51, 44, 209,\n\t\t163, 237, 93, 205, 1, 15, 139, 197, 117, 75, 208, 120, 96,\n\t\t222, 215, 119, 19, 176, 188, 213, 101, 79, 25, 223, 109, 245,\n\t\t192, 87, 40, 106, 13, 122, 232, 60, 59, 52, 173, 149, 64,\n\t\t119, 125, 122, 218, 239, 112, 228, 106, 8, 26, 31, 226, 142,\n\t\t211, 56, 203, 138, 118, 202, 80, 126, 184, 120, 33, 194, 17,\n\t\t151, 20, 31, 131, 35, 205, 197, 251, 241, 132, 46, 114, 63,\n\t\t165, 74, 5, 92, 203, 125, 250, 64, 47, 61, 46, 48, 184, 180,\n\t\t29, 162, 126, 51, 132, 182, 254, 50, 45, 8, 159, 150, 206,\n\t\t156, 5, 145, 164, 152, 86, 145, 78, 138, 21, 116, 163, 81,\n\t\t130, 20, 94, 130, 37, 203, 22, 99, 56, 232, 114, 63, 251,\n\t\t101, 141, 55, 231, 27, 206, 159, 231, 137, 192, 3, 42, 101,\n\t\t97, 112, 214, 132, 136, 83, 127, 79, 32, 36, 99, 207, 49,\n\t\t190, 152, 204, 192, 222, 105, 118, 211, 19, 179, 116, 113,\n\t\t248, 141, 37, 21, 205, 155, 41, 71, 107, 176, 123, 230, 16,\n\t\t131, 167, 55, 151, 114, 106, 153, 113, 99, 39, 50, 93, 156,\n\t\t138, 70, 99, 139, 120, 224, 244, 237, 122, 148, 230, 111,\n\t\t192, 144, 195, 11, 199, 167, 162, 146, 199, 83, 19, 160, 2,\n\t\t215, 145, 166, 108, 116, 117, 104, 137, 230, 55, 133, 63,\n\t\t81, 193, 154, 204, 186, 133, 61, 156, 197, 78, 81, 96, 135,\n\t\t55, 143, 105, 165, 120, 225, 187, 55, 189, 84, 191, 51, 196,\n\t\t223, 163, 125, 90, 50, 157, 22, 132, 197, 38, 119, 62, 250,\n\t\t88, 72, 249, 18, 174, 253, 70, 17, 121, 94, 226, 82, 151,\n\t\t60, 212, 145, 2, 158, 90, 216, 10, 168, 185, 97, 46, 252,\n\t\t253, 128, 74, 57, 61, 36, 47, 204, 243, 132, 123, 20, 16,\n\t\t129, 50, 136, 128, 15, 140, 99, 192, 79, 138, 245, 40, 18,\n\t\t248, 16, 54, 78, 43, 189, 172, 106, 130, 254, 20, 214, 154,\n\t\t76, 129, 102, 99, 59, 152, 149, 238, 104, 142, 95, 246, 35,\n\t\t114, 122, 100, 36, 165, 212, 127, 251, 66, 208, 7, 15, 162,\n\t\t218, 15, 184, 68, 161, 19, 153, 166, 211, 190, 92, 147, 20,\n\t\t138, 115, 36, 253, 150, 34, 193, 139, 127, 67, 56, 175, 240,\n\t\t247, 241, 247, 136, 7, 18, 252, 142, 126, 39, 192, 159, 93,\n\t\t54, 189, 51, 248, 190, 159, 240, 185, 3, 11, 190, 42, 149,\n\t\t253, 217, 70, 167, 156, 69, 167, 167, 48, 210, 236, 19, 37,\n\t\t17, 127, 143, 225, 118, 94, 51, 230, 91, 244, 187, 205, 3,\n\t\t17, 249, 163, 5, 181, 219, 68, 87, 217, 31, 54, 198, 92, 61,\n\t\t192, 247, 93, 219, 31, 61, 208, 170, 137, 5, 253, 216, 77,\n\t\t11, 165, 22, 184, 35, 45, 158, 95, 189, 93, 187, 142, 114,\n\t\t22, 108, 42, 190, 54, 13, 215, 212, 43, 36, 142, 90, 20, 168,\n\t\t94, 250, 237, 221, 131, 92, 72, 75, 113, 240, 11, 205, 113,\n\t\t242, 229, 196, 14, 74, 225, 32, 11, 226, 206, 233, 131, 106,\n\t\t91, 234, 40, 55, 222, 187, 124, 30, 212, 179, 124, 161, 44,\n\t\t148, 126, 245, 161, 44, 28, 34, 110, 58, 7, 119, 204, 176,\n\t\t80, 196, 48, 63, 163, 95, 194, 64, 153, 234, 45, 99, 72, 38,\n\t\t200, 226, 78, 10, 98, 9, 72, 42, 154, 144, 212, 69, 149, 88,\n\t\t49, 82, 43, 45, 105, 131, 124, 16, 25, 37, 147, 254, 99, 151,\n\t\t137, 204, 91, 197, 205, 93, 67, 127, 64, 20, 211, 126, 191,\n\t\t207, 241, 32, 148, 13, 142, 239, 101, 225, 54, 92, 223, 137,\n\t\t66, 195, 26, 39, 221, 15, 164, 82, 12, 171, 210, 27, 203,\n\t\t8, 172, 98, 10, 225, 120, 32, 81, 110, 73, 183, 80, 44, 59,\n\t\t119, 244, 121, 126, 41, 158, 200, 234, 67, 117, 223, 248,\n\t\t49, 77, 57, 189, 112, 175, 147, 177, 122, 204, 15, 57, 182,\n\t\t224, 249, 93, 100, 190, 137, 232, 34, 160, 205, 195, 68, 10,\n\t\t198, 103, 10, 188, 216, 124, 10, 120, 130, 66, 94, 164, 146,\n\t\t17, 85, 141, 245, 67, 40, 62, 133, 53, 49, 41, 110, 189, 214,\n\t\t215, 103, 208, 137, 195, 120, 101, 194, 50, 254, 106, 42,\n\t\t110, 209, 83, 156, 174, 25, 65, 150, 115, 141, 137, 80, 33,\n\t\t32, 205, 74, 65, 131, 47, 54, 173, 101, 220, 158, 180, 119,\n\t\t53, 73, 96, 242, 100, 121, 30, 193, 82, 202, 26, 93, 152,\n\t\t71, 1, 225, 61, 185, 148, 152, 94, 97, 111, 204, 169, 31,\n\t\t91, 30, 95, 110, 151, 230, 34, 197, 233, 76, 241, 242, 115,\n\t\t138, 111, 55, 201, 15, 95, 61, 137, 138, 24, 191, 233, 178,\n\t\t46, 30, 50, 83, 115, 33, 48, 56, 213, 153, 90, 94, 231, 193,\n\t\t169, 165, 104, 51, 122, 174, 85, 80, 232, 41, 200, 232, 143,\n\t\t137, 133, 183, 88, 5, 34, 219, 181, 161, 11, 154, 236, 113,\n\t\t75, 171, 156, 150, 69, 19, 130, 149, 75, 93, 134, 98, 231,\n\t\t32, 93, 37, 77, 55, 229, 246, 72, 143, 106, 74, 239, 202,\n\t\t185, 189, 246, 163, 200, 228, 224, 236, 10, 174, 114, 190,\n\t\t138, 158, 161, 216, 112, 71, 49, 37, 190, 3, 215, 67, 218,\n\t\t126, 103, 157, 165, 180, 74, 51, 145, 86, 243, 5, 70, 64,\n\t\t83, 238, 20, 78, 199, 218, 108, 29, 212, 118, 89, 182, 213,\n\t\t177, 172, 189, 251, 190, 169, 197, 177, 132, 166, 170, 225,\n\t\t71, 40, 83, 169, 52, 84, 93, 35, 100, 189, 224, 246, 124,\n\t\t24, 157, 161, 171, 242, 55, 150, 186, 162, 133, 150, 235,\n\t\t115, 53, 69, 30, 101, 126, 202, 13, 68, 162, 190, 238, 74,\n\t\t93, 145, 39, 159, 156, 241, 4, 35, 81, 255, 88, 93, 21, 39,\n\t\t252, 112, 168, 200, 245, 223, 221, 68, 200, 254, 138, 130,\n\t\t30, 223, 212, 198, 169, 83, 151, 129, 10, 132, 195, 4, 80,\n\t\t176, 228, 127, 166, 191, 241, 57, 212, 104, 198, 81, 68, 192,\n\t\t84, 55, 52, 202, 91, 89, 209, 27, 86, 171, 49, 242, 123, 71,\n\t\t236, 226, 216, 114, 39, 26, 139, 207, 245, 28, 150, 207, 172,\n\t\t180, 26, 45, 56, 116, 8, 123, 132, 99, 250, 245, 15, 105,\n\t\t115, 181, 235, 217, 161, 8, 10, 104, 115, 136, 93, 219, 176,\n\t\t67, 218, 116, 226, 31, 15, 77, 122, 154, 121, 115, 177, 64,\n\t\t91, 37, 133, 127, 144, 133, 35, 229, 52, 138, 73, 33, 49,\n\t\t180, 177, 195, 107, 11, 117, 181, 105, 223, 39, 22, 88, 62,\n\t\t243, 73, 132, 5, 91, 34, 248, 48, 86, 214, 123, 238, 18, 68,\n\t\t193, 14, 219, 119, 237, 161, 99, 182, 16, 240, 192, 22, 104,\n\t\t30, 115, 168, 235, 206, 233, 249, 140, 82, 112, 144, 105,\n\t\t38, 198, 132, 80, 64, 91, 111, 145, 229, 92, 191, 35, 244,\n\t\t155, 247, 227, 232, 217, 175, 32, 204, 254, 149, 200, 188,\n\t\t95, 206, 78, 84, 216, 85, 235, 167, 146, 241, 1, 120, 252,\n\t\t148, 186, 143, 87, 166, 205, 217, 222, 1, 149, 123, 170, 105,\n\t\t255, 115, 28, 99, 168, 174, 123, 207, 153, 105, 67, 209, 244,\n\t\t111, 237, 221, 251, 80, 170, 215, 214, 98, 95, 209, 125, 11,\n\t\t159, 227, 89, 187, 246, 163, 116, 159, 53, 55, 22, 14, 132,\n\t\t247, 122, 51, 199, 20, 143, 173, 92, 227, 207, 153, 214, 35,\n\t\t82, 39, 144, 212, 16, 21, 5, 48, 177, 95, 31, 207, 190, 89,\n\t\t150, 184, 52, 36, 119, 255, 177, 208, 44, 157, 35, 244, 19,\n\t\t86, 244, 48, 71, 69, 118, 71, 25, 228, 147, 28, 209, 90, 127,\n\t\t167, 211, 155, 124, 48, 184, 112, 21, 135, 24, 127, 185, 145,\n\t\t196, 252, 111, 25, 203, 198, 4, 253, 164, 243, 24, 224, 137,\n\t\t9, 36, 112, 253, 29, 104, 97, 106, 189, 214, 160, 141, 81,\n\t\t177, 13, 139, 109, 151, 191, 21, 54, 198, 178, 27, 226, 58,\n\t\t4, 161, 246, 40, 243, 194, 58, 102, 255, 60, 181, 150, 28,\n\t\t226, 190, 219, 61, 11, 101, 92, 43, 113, 37, 202, 150, 225,\n\t\t72, 143, 164, 148, 93, 170, 105, 249, 1, 201, 231, 99, 125,\n\t\t112, 121, 147, 12, 58, 223, 63, 161, 167, 66, 15, 79, 188,\n\t\t250, 194, 151, 16, 50, 71, 193, 199, 254, 22, 106, 154, 222,\n\t\t189, 111, 203, 16, 240, 184, 24, 5, 42, 156, 51, 93, 185,\n\t\t203, 251, 171, 72, 10, 116, 20, 6, 143, 207, 84, 132, 5, 9,\n\t\t35, 5, 242, 17, 120, 159, 185, 90, 109, 246, 241, 161, 51,\n\t\t224, 98, 7, 143, 255, 97, 51, 153, 211, 148, 189, 181, 119,\n\t\t174, 210, 240, 161, 91, 221, 4, 114, 41, 143, 246, 87, 130,\n\t\t117, 171, 82, 64, 159, 202, 19, 45, 163, 163, 223, 234, 152,\n\t\t105, 200, 115, 156, 200, 112, 233, 123, 28, 117, 18, 20, 217,\n\t\t227, 62, 103, 60, 192, 69, 27, 184, 91, 91, 215, 191, 40,\n\t\t102, 178, 85, 160, 213, 134, 106, 5, 217, 156, 100, 23, 193,\n\t\t141, 13, 88, 158, 25, 16, 96, 173, 171, 179, 190, 84, 121,\n\t\t150, 94, 54, 220, 228, 247, 50, 144, 246, 26, 93, 227, 144,\n\t\t82, 92, 147, 100, 200, 74, 15, 12, 116, 175, 199, 208, 158,\n\t\t210, 48, 39, 60, 58, 133, 248, 252, 205, 211, 23, 205, 43,\n\t\t143, 217, 195, 0, 80, 244, 235, 132, 65, 162, 164, 77, 26,\n\t\t146, 43, 82, 87, 73, 163, 134, 104, 20, 174, 121, 6, 30, 20,\n\t\t217, 95, 48, 46, 46, 144, 185, 127, 173, 134, 46, 35, 174,\n\t\t110, 65, 176, 73, 126, 33, 190, 0, 19, 78, 169, 216, 189,\n\t\t111, 9, 35, 190, 108, 225, 255, 41, 100, 13, 181, 14, 197,\n\t\t171, 58, 1, 2, 241, 7, 250, 77, 198, 222, 136, 133, 12, 204,\n\t\t78, 26, 132, 64, 39, 15, 49, 102, 181, 137, 131, 45, 78, 95,\n\t\t202, 183, 226, 193, 60, 36, 186, 3, 227, 252, 10, 235, 255,\n\t\t98, 59, 198, 29, 21, 233, 138, 62, 146, 207, 56, 52, 237,\n\t\t4, 120, 20, 234, 178, 45, 9, 247, 213, 138, 102, 72, 149,\n\t\t146, 229, 60, 24, 222, 138, 153, 105, 236, 114, 32, 191, 180,\n\t\t141, 207, 123, 46, 38, 11, 65, 26, 213, 158, 10, 17, 81, 223,\n\t\t128, 145, 53, 109, 94, 146, 183, 85, 135, 38, 174, 37, 16,\n\t\t174, 25, 191, 2, 8, 213, 87, 147, 138, 127, 32, 58, 29, 2,\n\t\t224, 140, 196, 230, 32, 136, 104, 74, 21, 170, 107, 245, 145,\n\t\t124, 83, 18, 26, 235, 143, 193, 136, 26, 106, 136, 1, 2, 117,\n\t\t202, 66, 179, 34, 94, 83, 92, 130, 240, 181, 74, 169, 6, 203,\n\t\t81, 1, 148, 176, 161, 6, 120, 219, 54, 69, 30, 129, 128, 16,\n\t\t95, 14, 113, 205, 232, 100, 195, 222, 166, 112, 183, 118,\n\t\t239, 193, 177, 3, 242, 221, 241, 102, 75, 114, 188, 53, 37,\n\t\t29, 76, 73, 215, 26, 196, 95, 214, 77, 126, 87, 54, 183, 128,\n\t\t142, 225, 180, 6, 176, 29, 177, 39, 113, 22, 118, 96, 154,\n\t\t124, 181, 111, 180, 131, 183, 17, 68, 88, 229, 16, 192, 111,\n\t\t157, 17, 151, 112, 56, 184, 38, 203, 215, 154, 216, 6, 243,\n\t\t138, 36, 151, 160, 197, 213, 249, 105, 64, 52, 2, 107, 169,\n\t\t200, 114, 136, 145, 115, 149, 188, 75, 9, 54, 191, 59, 53,\n\t\t157, 2, 120, 17, 178, 18, 4, 160, 163, 168, 13, 6, 145, 39,\n\t\t229, 104, 119, 233, 129, 8, 164, 36, 23, 22, 109, 148, 199,\n\t\t27, 31, 58, 196, 27, 30, 57, 26, 140, 225, 177, 240, 55, 178,\n\t\t201, 244, 178, 111, 48, 55, 241, 117, 252, 91, 248, 90, 128,\n\t\t143, 151, 241, 42, 135, 219, 51, 56, 243, 211, 165, 139, 103,\n\t\t217, 114, 170, 68, 123, 215, 139, 170, 187, 98, 69, 51, 119,\n\t\t175, 173, 20, 237, 148, 178, 66, 158, 87, 40, 6, 222, 213,\n\t\t76, 105, 82, 103, 32, 91, 11, 37, 67, 29, 18, 172, 18, 159,\n\t\t45, 22, 63, 184, 92, 157, 54, 241, 126, 208, 110, 34, 253,\n\t\t226, 86, 189, 59, 23, 20, 160, 225, 219, 65, 199, 189, 66,\n\t\t23, 119, 127, 140, 147, 217, 23, 251, 134, 117, 119, 135,\n\t\t249, 22, 123, 74, 160, 176, 140, 171, 17, 170, 165, 75, 85,\n\t\t17, 87, 129, 167, 152, 253, 220, 47, 172, 171, 43, 204, 239,\n\t\t185, 152, 125, 14, 79, 113, 2, 222, 189, 11, 144, 206, 5,\n\t\t252, 171, 61, 74, 141, 171, 34, 50, 194, 103, 170, 207, 18,\n\t\t165, 144, 149, 253, 118, 33, 200, 19, 109, 108, 251, 186,\n\t\t91, 105, 17, 65, 250, 188, 60, 61, 35, 121, 87, 37, 186, 27,\n\t\t101, 63, 157, 232, 74, 148, 205, 62, 152, 130, 236, 68, 5,\n\t\t0, 232, 76, 43, 83, 145, 171, 90, 20, 196, 183, 70, 173, 98,\n\t\t38, 33, 159, 160, 198, 81, 66, 157, 122, 2, 108, 66, 129,\n\t\t32, 95, 30, 248, 62, 176, 214, 120, 63, 112, 54, 239, 65,\n\t\t224, 131, 110, 134, 241, 129, 113, 158, 122, 213, 47, 96,\n\t\t39, 231, 190, 241, 221, 158, 247, 198, 247, 213, 161, 239,\n\t\t3, 223, 237, 181, 225, 36, 56, 62, 12, 31, 197, 137, 113,\n\t\t131, 148, 202, 3, 84, 178, 111, 63, 26, 61, 217, 83, 130,\n\t\t215, 154, 110, 17, 194, 39, 176, 241, 90, 130, 175, 61, 139,\n\t\t73, 64, 40, 186, 152, 25, 129, 228, 57, 71, 235, 48, 100,\n\t\t177, 96, 106, 155, 171, 128, 254, 63, 245, 64, 80, 170, 118,\n\t\t52, 217, 142, 63, 11, 106, 57, 71, 230, 41, 72, 3, 145, 153,\n\t\t124, 57, 23, 109, 9, 49, 98, 188, 198, 217, 115, 108, 193,\n\t\t147, 220, 7, 185, 43, 105, 164, 133, 164, 177, 132, 227, 45,\n\t\t193, 211, 130, 217, 109, 145, 212, 8, 166, 91, 218, 114, 239,\n\t\t138, 172, 228, 152, 7, 27, 241, 98, 252, 213, 152, 76, 52,\n\t\t110, 200, 166, 103, 95, 100, 169, 188, 216, 202, 30, 49, 187,\n\t\t124, 234, 73, 159, 9, 30, 183, 224, 127, 115, 99, 112, 201,\n\t\t56, 29, 87, 41, 122, 119, 25, 218, 105, 191, 19, 254, 71,\n\t\t252, 51, 157, 191, 13, 117, 253, 215, 193, 213, 26, 104, 105,\n\t\t240, 214, 170, 125, 132, 137, 53, 179, 72, 53, 255, 226, 6,\n\t\t157, 208, 188, 248, 194, 131, 3, 225, 218, 3, 192, 150, 96,\n\t\t133, 225, 221, 24, 53, 246, 31, 139, 56, 212, 89, 102, 14,\n\t\t55, 135, 122, 125, 114, 179, 230, 196, 182, 3, 118, 101, 174,\n\t\t27, 92, 65, 229, 88, 119, 12, 143, 54, 164, 114, 15, 65, 44,\n\t\t32, 108, 110, 167, 79, 64, 103, 125, 122, 221, 225, 248, 166,\n\t\t10, 149, 157, 222, 235, 22, 242, 180, 128, 40, 202, 149, 12,\n\t\t62, 122, 35, 189, 52, 221, 40, 19, 121, 226, 207, 57, 48,\n\t\t186, 6, 93, 55, 186, 205, 46, 63, 245, 98, 139, 6, 138, 77,\n\t\t161, 139, 121, 57, 229, 212, 128, 85, 34, 175, 220, 207, 152,\n\t\t51, 105, 116, 69, 134, 88, 188, 159, 206, 169, 209, 12, 178,\n\t\t148, 206, 248, 232, 164, 220, 236, 16, 121, 27, 164, 174,\n\t\t39, 164, 255, 243, 50, 205, 206, 7, 83, 178, 52, 154, 180,\n\t\t140, 142, 182, 140, 64, 206, 250, 224, 144, 174, 171, 33,\n\t\t25, 67, 191, 106, 203, 72, 95, 16, 83, 81, 30, 3, 140, 211,\n\t\t19, 23, 149, 151, 197, 248, 94, 240, 163, 121, 124, 212, 134,\n\t\t3, 11, 103, 204, 131, 12, 141, 166, 193, 214, 129, 54, 196,\n\t\t165, 9, 60, 133, 161, 137, 162, 88, 175, 162, 160, 92, 28,\n\t\t119, 154, 202, 188, 131, 125, 181, 91, 121, 201, 224, 219,\n\t\t213, 5, 90, 86, 120, 86, 90, 44, 222, 47, 45, 94, 83, 75,\n\t\t47, 13, 120, 145, 87, 254, 151, 58, 47, 203, 164, 153, 78,\n\t\t211, 145, 172, 212, 180, 120, 30, 245, 219, 228, 195, 81,\n\t\t155, 136, 44, 72, 88, 173, 29, 72, 70, 78, 120, 144, 11, 8,\n\t\t223, 111, 200, 114, 252, 55, 31, 170, 59, 103, 4, 235, 62,\n\t\t216, 131, 96, 251, 241, 190, 78, 208, 162, 143, 163, 90, 240,\n\t\t230, 10, 217, 159, 32, 222, 254, 97, 250, 196, 238, 229, 211,\n\t\t51, 246, 187, 165, 233, 50, 151, 103, 217, 129, 36, 165, 12,\n\t\t85, 170, 106, 175, 156, 222, 139, 111, 196, 111, 141, 229,\n\t\t56, 201, 113, 81, 47, 235, 138, 105, 182, 124, 93, 208, 129,\n\t\t63, 235, 251, 101, 61, 3, 93, 201, 40, 59, 249, 232, 117,\n\t\t174, 254, 16, 106, 44, 186, 19, 181, 89, 91, 25, 136, 195,\n\t\t119, 63, 163, 83, 114, 172, 47, 208, 164, 129, 10, 202, 53,\n\t\t133, 5, 222, 31, 221, 26, 194, 78, 93, 202, 211, 30, 127,\n\t\t51, 164, 177, 166, 44, 248, 86, 133, 167, 50, 106, 57, 212,\n\t\t73, 249, 83, 129, 187, 203, 3, 187, 155, 3, 23, 183, 90, 109,\n\t\t232, 46, 52, 84, 148, 184, 82, 213, 131, 72, 179, 40, 149,\n\t\t150, 171, 132, 2, 245, 209, 167, 190, 103, 241, 219, 27, 107,\n\t\t245, 172, 126, 67, 151, 44, 251, 247, 148, 73, 216, 218, 126,\n\t\t73, 157, 13, 213, 46, 180, 175, 140, 104, 160, 247, 235, 196,\n\t\t114, 43, 37, 94, 83, 35, 243, 174, 142, 173, 132, 217, 165,\n\t\t14, 164, 28, 46, 44, 170, 90, 211, 72, 111, 142, 93, 169,\n\t\t88, 239, 40, 99, 172, 207, 84, 3, 59, 161, 247, 203, 170,\n\t\t14, 174, 100, 202, 108, 18, 245, 133, 240, 131, 34, 251, 211,\n\t\t214, 45, 38, 137, 85, 206, 96, 228, 238, 89, 169, 22, 170,\n\t\t136, 177, 154, 110, 93, 151, 62, 40, 61, 210, 96, 164, 213,\n\t\t176, 133, 42, 68, 115, 35, 94, 57, 209, 185, 111, 190, 172,\n\t\t229, 160, 97, 57, 152, 23, 113, 60, 42, 206, 196, 251, 62,\n\t\t74, 177, 97, 128, 229, 53, 216, 11, 95, 17, 189, 42, 157,\n\t\t22, 97, 116, 157, 123, 206, 172, 175, 237, 69, 212, 144, 115,\n\t\t111, 166, 69, 112, 159, 10, 254, 7, 199, 38, 174, 189, 156,\n\t\t203, 148, 22, 82, 62, 255, 133, 172, 21, 204, 196, 115, 190,\n\t\t227, 196, 229, 174, 45, 4, 102, 168, 79, 108, 56, 46, 209,\n\t\t16, 249, 121, 39, 131, 38, 151, 117, 239, 8, 72, 98, 24, 44,\n\t\t188, 188, 26, 130, 55, 227, 199, 88, 222, 55, 144, 8, 88,\n\t\t29, 59, 124, 153, 61, 0, 178, 104, 234, 169, 218, 157, 50,\n\t\t5, 26, 95, 229, 169, 97, 71, 40, 151, 149, 219, 122, 54, 169,\n\t\t9, 200, 225, 51, 225, 142, 211, 183, 239, 142, 100, 156, 252,\n\t\t91, 197, 67, 142, 5, 98, 121, 177, 207, 71, 57, 95, 34, 87,\n\t\t24, 169, 84, 196, 248, 191, 60, 230, 219, 175, 95, 16, 35,\n\t\t183, 189, 76, 153, 140, 244, 213, 185, 47, 71, 35, 198, 98,\n\t\t9, 216, 192, 99, 109, 185, 126, 1, 187, 71, 114, 114, 145,\n\t\t200, 151, 230, 227, 209, 140, 76, 176, 150, 235, 48, 232,\n\t\t176, 193, 97, 196, 225, 39, 166, 54, 248, 243, 216, 228, 228,\n\t\t56, 220, 120, 163, 42, 141, 123, 36, 175, 110, 173, 235, 222,\n\t\t93, 142, 9, 126, 182, 100, 130, 9, 244, 230, 160, 213, 248,\n\t\t105, 79, 30, 140, 122, 202, 150, 20, 56, 45, 35, 130, 21,\n\t\t243, 70, 167, 76, 177, 10, 214, 162, 33, 62, 150, 166, 49,\n\t\t249, 236, 185, 17, 254, 43, 216, 175, 118, 42, 187, 83, 183,\n\t\t19, 239, 204, 210, 15, 47, 230, 160, 55, 160, 127, 233, 196,\n\t\t101, 31, 201, 100, 228, 231, 220, 5, 8, 36, 22, 129, 232,\n\t\t66, 34, 176, 200, 89, 74, 38, 54, 36, 219, 13, 217, 115, 153,\n\t\t36, 175, 157, 178, 135, 176, 131, 103, 208, 162, 152, 195,\n\t\t211, 166, 89, 43, 23, 216, 122, 78, 228, 0, 198, 137, 130,\n\t\t163, 144, 231, 170, 240, 10, 197, 73, 234, 84, 180, 103, 149,\n\t\t81, 117, 61, 29, 129, 120, 33, 21, 149, 48, 233, 58, 46, 240,\n\t\t161, 160, 70, 243, 153, 140, 240, 162, 173, 97, 30, 73, 231,\n\t\t81, 17, 19, 200, 105, 185, 78, 128, 199, 167, 36, 107, 10,\n\t\t5, 83, 224, 44, 31, 22, 124, 238, 158, 16, 132, 201, 175,\n\t\t176, 163, 79, 117, 229, 19, 30, 55, 27, 53, 84, 15, 111, 157,\n\t\t76, 171, 6, 107, 43, 251, 109, 182, 62, 91, 81, 63, 43, 87,\n\t\t223, 244, 209, 203, 255, 54, 25, 26, 43, 9, 239, 26, 165,\n\t\t164, 214, 221, 244, 236, 29, 63, 27, 215, 246, 230, 60, 119,\n\t\t69, 124, 83, 85, 108, 66, 67, 133, 57, 221, 55, 217, 83, 145,\n\t\t26, 16, 87, 93, 25, 15, 190, 191, 6, 3, 52, 113, 138, 152,\n\t\t213, 249, 208, 224, 134, 43, 90, 246, 153, 237, 116, 92, 224,\n\t\t177, 82, 10, 58, 232, 130, 93, 124, 72, 114, 197, 23, 205,\n\t\t254, 196, 193, 204, 247, 104, 26, 41, 153, 51, 183, 216, 207,\n\t\t41, 83, 23, 150, 42, 243, 178, 245, 245, 22, 105, 194, 170,\n\t\t107, 180, 250, 113, 243, 196, 154, 148, 196, 250, 250, 196,\n\t\t164, 186, 137, 102, 107, 67, 35, 216, 126, 199, 166, 22, 133,\n\t\t219, 215, 63, 191, 72, 210, 114, 57, 138, 152, 232, 237, 219,\n\t\t249, 75, 247, 216, 108, 96, 112, 191, 49, 203, 201, 23, 198,\n\t\t168, 152, 216, 38, 221, 134, 24, 184, 171, 145, 233, 210,\n\t\t230, 230, 71, 147, 155, 11, 5, 229, 131, 177, 155, 0, 214,\n\t\t8, 214, 172, 69, 165, 173, 65, 99, 223, 211, 157, 240, 0,\n\t\t195, 71, 175, 73, 67, 99, 87, 158, 136, 87, 186, 249, 51,\n\t\t158, 55, 144, 226, 62, 60, 8, 169, 33, 61, 249, 66, 173, 247,\n\t\t156, 227, 146, 230, 59, 193, 222, 245, 124, 186, 212, 206,\n\t\t229, 246, 190, 57, 206, 203, 61, 72, 61, 10, 187, 108, 141,\n\t\t38, 91, 107, 205, 81, 109, 118, 118, 179, 95, 124, 116, 238,\n\t\t72, 44, 197, 14, 134, 66, 48, 187, 120, 242, 70, 1, 83, 83,\n\t\t69, 116, 17, 165, 36, 58, 166, 138, 28, 19, 69, 169, 73, 142,\n\t\t41, 34, 247, 73, 193, 131, 8, 66, 137, 128, 232, 35, 12, 66,\n\t\t197, 46, 226, 217, 175, 227, 72, 32, 141, 238, 245, 133, 33,\n\t\t140, 172, 233, 169, 114, 28, 129, 41, 0, 173, 26, 209, 165,\n\t\t139, 142, 62, 191, 253, 245, 27, 69, 55, 21, 230, 58, 231,\n\t\t112, 116, 12, 208, 174, 249, 54, 252, 123, 91, 229, 218, 88,\n\t\t159, 191, 201, 202, 255, 23, 22, 255, 218, 114, 23, 254, 145,\n\t\t187, 176, 243, 126, 209, 209, 126, 210, 237, 46, 50, 223,\n\t\t34, 203, 179, 11, 181, 146, 151, 160, 76, 224, 241, 31, 47,\n\t\t234, 101, 2, 216, 243, 191, 184, 81, 212, 40, 110, 16, 125,\n\t\t236, 94, 225, 10, 120, 89, 116, 31, 70, 78, 180, 31, 117,\n\t\t83, 55, 250, 127, 189, 101, 150, 83, 110, 231, 39, 220, 250,\n\t\t234, 159, 148, 57, 125, 79, 136, 246, 28, 244, 239, 133, 131,\n\t\t231, 255, 40, 14, 156, 63, 112, 225, 227, 57, 105, 12, 110,\n\t\t57, 88, 216, 66, 45, 162, 78, 207, 108, 111, 207, 196, 70,\n\t\t153, 78, 109, 164, 158, 199, 247, 217, 79, 123, 130, 231,\n\t\t81, 9, 156, 127, 153, 13, 98, 201, 254, 223, 255, 226, 136,\n\t\t84, 2, 247, 241, 66, 251, 134, 110, 14, 104, 153, 69, 200,\n\t\t65, 103, 184, 228, 201, 83, 189, 107, 56, 164, 188, 177, 10,\n\t\t227, 108, 6, 116, 23, 216, 114, 238, 20, 205, 255, 195, 192,\n\t\t56, 176, 149, 68, 202, 215, 204, 138, 146, 239, 231, 202,\n\t\t79, 17, 42, 141, 65, 211, 166, 174, 116, 39, 45, 35, 126,\n\t\t138, 72, 239, 16, 170, 219, 79, 186, 27, 51, 124, 169, 18,\n\t\t47, 16, 106, 136, 51, 146, 111, 14, 13, 154, 228, 20, 62,\n\t\t135, 62, 145, 27, 119, 159, 32, 0, 239, 162, 126, 6, 147,\n\t\t58, 234, 81, 242, 49, 18, 111, 232, 193, 137, 199, 56, 51,\n\t\t90, 126, 80, 189, 117, 111, 107, 171, 181, 223, 128, 201,\n\t\t200, 95, 102, 103, 6, 213, 218, 114, 74, 86, 219, 37, 177,\n\t\t207, 118, 0, 4, 74, 11, 90, 33, 151, 153, 205, 210, 169, 9,\n\t\t17, 183, 137, 227, 191, 228, 65, 204, 52, 184, 22, 138, 112,\n\t\t102, 80, 108, 80, 229, 164, 157, 141, 127, 190, 21, 134, 9,\n\t\t218, 245, 55, 37, 227, 1, 92, 88, 246, 47, 236, 226, 184,\n\t\t75, 160, 32, 31, 194, 220, 31, 187, 7, 65, 246, 138, 233,\n\t\t83, 33, 176, 253, 69, 76, 189, 107, 211, 164, 88, 207, 138,\n\t\t111, 34, 215, 5, 92, 126, 145, 108, 104, 6, 187, 176, 152,\n\t\t173, 3, 41, 154, 138, 131, 230, 168, 243, 19, 143, 196, 187,\n\t\t255, 106, 132, 207, 60, 220, 1, 43, 57, 118, 161, 45, 38,\n\t\t38, 116, 125, 216, 148, 50, 98, 255, 162, 140, 168, 102, 240,\n\t\t224, 58, 15, 207, 206, 41, 64, 131, 211, 51, 166, 247, 253,\n\t\t239, 200, 0, 68, 99, 108, 130, 69, 230, 129, 62, 182, 94,\n\t\t1, 24, 224, 18, 189, 222, 250, 66, 168, 174, 145, 37, 135,\n\t\t71, 254, 57, 57, 163, 205, 46, 181, 24, 129, 133, 215, 65,\n\t\t98, 231, 114, 45, 36, 100, 168, 234, 225, 39, 1, 79, 254,\n\t\t56, 196, 242, 66, 176, 115, 131, 212, 7, 98, 247, 8, 4, 247,\n\t\t29, 135, 108, 121, 126, 172, 205, 98, 3, 72, 213, 152, 183,\n\t\t196, 141, 67, 164, 162, 62, 13, 3, 19, 249, 234, 19, 243,\n\t\t169, 148, 236, 138, 153, 98, 84, 169, 176, 169, 173, 40, 219,\n\t\t154, 252, 60, 0, 196, 172, 58, 223, 80, 209, 150, 210, 5,\n\t\t99, 122, 26, 96, 0, 213, 221, 79, 87, 126, 83, 173, 70, 250,\n\t\t90, 114, 1, 66, 237, 212, 228, 91, 123, 152, 195, 39, 114,\n\t\t115, 171, 33, 78, 184, 158, 184, 186, 157, 31, 53, 197, 25,\n\t\t73, 221, 249, 51, 57, 97, 21, 100, 182, 105, 168, 161, 222,\n\t\t28, 47, 64, 30, 189, 157, 156, 20, 246, 238, 12, 20, 25, 35,\n\t\t223, 30, 17, 105, 144, 210, 39, 165, 183, 105, 226, 201, 122,\n\t\t184, 115, 198, 223, 105, 149, 126, 224, 242, 208, 108, 163,\n\t\t115, 41, 161, 57, 59, 36, 42, 217, 247, 129, 62, 44, 27, 131,\n\t\t200, 67, 116, 207, 41, 216, 214, 49, 46, 148, 165, 15, 187,\n\t\t224, 57, 235, 169, 1, 118, 125, 133, 95, 238, 84, 223, 220,\n\t\t173, 207, 13, 176, 167, 113, 198, 59, 224, 169, 189, 92, 139,\n\t\t139, 52, 202, 158, 126, 212, 178, 61, 39, 178, 181, 13, 177,\n\t\t81, 134, 223, 148, 203, 154, 23, 82, 17, 215, 100, 31, 96,\n\t\t139, 211, 235, 117, 113, 180, 132, 238, 82, 19, 34, 199, 165,\n\t\t146, 19, 232, 184, 251, 45, 227, 116, 107, 158, 120, 102,\n\t\t121, 164, 115, 202, 161, 75, 252, 123, 175, 120, 46, 39, 118,\n\t\t247, 107, 184, 110, 198, 23, 118, 148, 91, 179, 201, 124,\n\t\t224, 54, 103, 203, 32, 95, 165, 52, 145, 20, 164, 185, 120,\n\t\t20, 9, 154, 95, 199, 30, 73, 42, 210, 246, 188, 13, 152, 168,\n\t\t227, 62, 162, 185, 91, 232, 94, 234, 152, 119, 79, 67, 212,\n\t\t45, 47, 117, 136, 58, 235, 151, 190, 187, 91, 224, 243, 9,\n\t\t252, 181, 200, 200, 89, 181, 82, 127, 225, 81, 22, 98, 154,\n\t\t147, 211, 34, 39, 239, 184, 32, 187, 154, 153, 53, 194, 128,\n\t\t102, 158, 112, 126, 149, 92, 159, 18, 199, 231, 179, 60, 233,\n\t\t69, 169, 248, 63, 82, 145, 84, 232, 239, 159, 248, 33, 5,\n\t\t74, 189, 122, 13, 115, 10, 135, 251, 66, 217, 97, 238, 118,\n\t\t65, 17, 5, 180, 4, 113, 144, 201, 215, 69, 166, 155, 22, 65,\n\t\t208, 18, 71, 61, 157, 145, 242, 147, 154, 157, 231, 110, 75,\n\t\t20, 169, 11, 97, 144, 73, 247, 73, 3, 185, 89, 218, 158, 234,\n\t\t19, 21, 122, 208, 202, 157, 32, 183, 102, 205, 65, 188, 124,\n\t\t138, 220, 166, 52, 70, 202, 204, 104, 179, 176, 127, 38, 92,\n\t\t65, 149, 248, 79, 131, 193, 206, 231, 189, 242, 143, 131,\n\t\t10, 244, 155, 144, 48, 133, 34, 177, 7, 142, 208, 233, 0,\n\t\t80, 33, 132, 104, 34, 146, 163, 212, 87, 183, 161, 96, 200,\n\t\t23, 167, 159, 133, 26, 81, 78, 145, 225, 97, 246, 87, 38,\n\t\t175, 199, 15, 16, 255, 238, 107, 152, 110, 45, 61, 126, 155,\n\t\t122, 233, 172, 72, 184, 36, 194, 67, 71, 77, 114, 182, 194,\n\t\t252, 133, 123, 207, 96, 183, 78, 159, 81, 28, 100, 181, 243,\n\t\t244, 202, 116, 114, 250, 34, 69, 224, 148, 230, 140, 146,\n\t\t212, 127, 166, 165, 211, 114, 69, 38, 180, 95, 231, 62, 133,\n\t\t134, 145, 182, 198, 55, 105, 96, 140, 166, 173, 29, 88, 169,\n\t\t178, 78, 164, 7, 1, 122, 93, 201, 252, 197, 99, 21, 197, 222,\n\t\t137, 176, 165, 224, 136, 28, 230, 76, 169, 78, 107, 8, 119,\n\t\t228, 69, 90, 218, 15, 238, 37, 63, 198, 226, 215, 163, 22,\n\t\t214, 169, 111, 165, 182, 42, 241, 153, 236, 5, 246, 191, 25,\n\t\t212, 131, 44, 134, 102, 252, 133, 168, 44, 3, 166, 131, 214,\n\t\t215, 162, 131, 39, 133, 239, 9, 79, 220, 27, 162, 43, 210,\n\t\t83, 66, 34, 247, 251, 160, 26, 156, 177, 6, 123, 185, 29,\n\t\t143, 24, 204, 101, 10, 228, 44, 20, 90, 137, 206, 81, 243,\n\t\t58, 184, 59, 188, 96, 210, 109, 117, 192, 106, 29, 12, 226,\n\t\t224, 20, 13, 150, 207, 69, 220, 47, 112, 24, 4, 135, 22, 153,\n\t\t42, 186, 204, 168, 114, 84, 142, 198, 244, 50, 57, 144, 255,\n\t\t47, 246, 223, 192, 192, 228, 214, 162, 79, 143, 139, 192,\n\t\t158, 175, 252, 27, 173, 147, 93, 72, 83, 38, 165, 164, 4,\n\t\t230, 56, 249, 235, 92, 136, 230, 89, 115, 111, 242, 89, 127,\n\t\t70, 227, 96, 118, 61, 156, 182, 28, 230, 46, 54, 213, 38,\n\t\t182, 81, 41, 54, 74, 50, 157, 63, 37, 30, 54, 237, 183, 168,\n\t\t152, 210, 64, 193, 60, 90, 156, 137, 161, 218, 40, 120, 229,\n\t\t240, 205, 162, 66, 91, 5, 117, 101, 186, 164, 229, 17, 124,\n\t\t227, 68, 158, 25, 207, 29, 198, 83, 27, 40, 148, 162, 44,\n\t\t65, 54, 192, 189, 7, 192, 71, 100, 71, 16, 225, 70, 18, 38,\n\t\t157, 118, 163, 100, 78, 44, 35, 111, 130, 66, 155, 235, 7,\n\t\t13, 79, 12, 232, 109, 30, 117, 119, 185, 246, 102, 136, 96,\n\t\t128, 170, 12, 10, 124, 229, 196, 169, 249, 170, 162, 160,\n\t\t27, 199, 192, 154, 111, 228, 51, 251, 41, 248, 8, 94, 110,\n\t\t210, 252, 88, 149, 38, 89, 238, 115, 42, 200, 216, 35, 42,\n\t\t35, 37, 170, 125, 229, 131, 21, 23, 93, 34, 226, 195, 146,\n\t\t146, 194, 48, 44, 242, 226, 202, 15, 25, 74, 255, 244, 214,\n\t\t214, 221, 45, 34, 61, 40, 55, 8, 228, 95, 136, 184, 217, 105,\n\t\t221, 161, 178, 116, 13, 102, 23, 78, 153, 243, 119, 224, 131,\n\t\t155, 206, 200, 61, 35, 83, 78, 223, 4, 175, 87, 32, 17, 247,\n\t\t247, 228, 240, 4, 46, 2, 94, 206, 158, 251, 8, 156, 143, 196,\n\t\t68, 178, 237, 180, 137, 200, 38, 31, 27, 183, 170, 131, 241,\n\t\t243, 39, 99, 0, 57, 142, 39, 172, 72, 228, 105, 227, 73, 66,\n\t\t48, 129, 40, 59, 138, 251, 204, 129, 144, 88, 133, 9, 16,\n\t\t208, 37, 237, 217, 158, 169, 10, 129, 80, 49, 180, 10, 73,\n\t\t142, 181, 10, 76, 49, 104, 59, 142, 115, 167, 40, 69, 48,\n\t\t132, 162, 70, 202, 62, 76, 89, 98, 38, 242, 249, 88, 58, 213,\n\t\t34, 248, 192, 224, 150, 249, 46, 33, 21, 38, 101, 114, 133,\n\t\t131, 65, 131, 66, 110, 102, 18, 18, 168, 70, 149, 211, 155,\n\t\t219, 51, 30, 170, 231, 208, 188, 208, 88, 246, 42, 42, 62,\n\t\t238, 65, 7, 158, 244, 186, 153, 76, 93, 149, 101, 71, 244,\n\t\t47, 153, 229, 39, 69, 46, 208, 164, 248, 2, 253, 55, 251,\n\t\t68, 178, 33, 202, 64, 62, 37, 152, 221, 155, 54, 229, 71,\n\t\t164, 68, 214, 244, 203, 39, 202, 32, 3, 235, 158, 105, 121,\n\t\t126, 44, 199, 70, 71, 137, 167, 90, 227, 225, 58, 97, 62,\n\t\t44, 57, 204, 79, 157, 157, 76, 188, 132, 55, 61, 104, 199,\n\t\t83, 92, 94, 8, 66, 130, 107, 201, 49, 86, 134, 210, 104, 84,\n\t\t202, 95, 63, 190, 149, 184, 168, 65, 191, 78, 39, 20, 46,\n\t\t10, 94, 36, 36, 244, 79, 143, 40, 198, 19, 118, 149, 222,\n\t\t47, 191, 63, 105, 167, 121, 134, 56, 50, 119, 93, 10, 158,\n\t\t184, 171, 52, 56, 50, 164, 100, 151, 170, 7, 56, 143, 79,\n\t\t81, 24, 51, 227, 141, 148, 131, 113, 248, 48, 159, 136, 136,\n\t\t181, 117, 26, 224, 108, 112, 150, 114, 78, 163, 26, 37, 72,\n\t\t109, 146, 1, 225, 72, 95, 114, 140, 91, 154, 242, 59, 216,\n\t\t82, 14, 204, 145, 239, 67, 34, 92, 81, 255, 61, 206, 230,\n\t\t170, 152, 168, 128, 83, 236, 68, 111, 92, 208, 194, 163, 38,\n\t\t32, 99, 140, 128, 68, 116, 103, 125, 241, 228, 20, 5, 46,\n\t\t167, 225, 198, 206, 219, 118, 30, 26, 102, 151, 160, 112,\n\t\t190, 160, 184, 72, 203, 118, 119, 83, 179, 157, 184, 182,\n\t\t101, 81, 113, 201, 83, 166, 109, 51, 70, 110, 200, 200, 204,\n\t\t72, 31, 49, 70, 66, 27, 166, 182, 128, 99, 7, 114, 109, 3,\n\t\t243, 96, 39, 18, 19, 63, 150, 153, 228, 199, 11, 211, 197,\n\t\t190, 165, 74, 106, 65, 105, 1, 21, 20, 175, 13, 216, 2, 58,\n\t\t253, 183, 56, 144, 154, 136, 130, 228, 39, 242, 159, 123,\n\t\t246, 175, 46, 56, 152, 41, 255, 125, 33, 100, 253, 43, 112,\n\t\t79, 238, 191, 197, 88, 58, 3, 182, 176, 72, 224, 98, 179,\n\t\t191, 255, 242, 9, 82, 187, 146, 87, 72, 9, 242, 235, 18, 59,\n\t\t233, 132, 229, 254, 254, 133, 8, 171, 200, 120, 54, 85, 98,\n\t\t203, 19, 127, 86, 100, 68, 88, 75, 221, 92, 130, 92, 110,\n\t\t207, 101, 95, 42, 160, 206, 229, 154, 203, 168, 229, 37, 107,\n\t\t131, 214, 130, 35, 117, 165, 180, 110, 26, 134, 200, 38, 151,\n\t\t162, 80, 216, 9, 81, 71, 143, 86, 53, 22, 133, 42, 5, 113,\n\t\t8, 32, 55, 202, 35, 141, 14, 99, 213, 201, 218, 159, 222,\n\t\t64, 173, 147, 31, 151, 31, 51, 58, 28, 119, 168, 236, 255,\n\t\t183, 161, 7, 43, 207, 151, 131, 161, 164, 78, 126, 188, 107,\n\t\t108, 12, 74, 103, 170, 68, 154, 204, 60, 189, 1, 181, 58,\n\t\t15, 246, 53, 205, 234, 49, 207, 157, 173, 186, 205, 45, 211,\n\t\t194, 74, 232, 11, 167, 101, 5, 191, 165, 24, 186, 35, 237,\n\t\t178, 33, 112, 250, 84, 97, 148, 175, 237, 206, 206, 115, 221,\n\t\t83, 193, 127, 221, 110, 153, 57, 231, 46, 110, 68, 240, 205,\n\t\t79, 105, 220, 73, 97, 221, 4, 255, 77, 159, 149, 155, 191,\n\t\t162, 132, 95, 197, 180, 89, 220, 24, 190, 101, 216, 188, 198,\n\t\t235, 20, 0, 196, 23, 212, 112, 175, 98, 223, 188, 59, 206,\n\t\t71, 18, 254, 101, 66, 18, 8, 208, 118, 246, 187, 59, 170,\n\t\t46, 237, 175, 183, 2, 228, 71, 104, 237, 189, 22, 47, 210,\n\t\t124, 191, 153, 162, 53, 141, 48, 93, 201, 32, 202, 96, 2,\n\t\t160, 192, 191, 4, 11, 222, 153, 29, 72, 169, 134, 233, 170,\n\t\t12, 134, 65, 48, 136, 23, 134, 91, 20, 95, 155, 83, 252, 66,\n\t\t47, 59, 114, 223, 97, 19, 126, 135, 193, 254, 117, 251, 151,\n\t\t152, 176, 18, 205, 177, 212, 255, 51, 16, 136, 158, 73, 51,\n\t\t104, 220, 245, 37, 121, 42, 63, 253, 47, 179, 100, 2, 105,\n\t\t147, 2, 104, 168, 142, 175, 107, 174, 247, 93, 65, 43, 251,\n\t\t114, 141, 84, 66, 171, 26, 65, 115, 247, 221, 181, 139, 9,\n\t\t21, 189, 48, 141, 6, 21, 145, 82, 139, 144, 143, 1, 61, 12,\n\t\t70, 210, 35, 179, 30, 200, 146, 117, 187, 172, 33, 151, 96,\n\t\t153, 128, 244, 195, 142, 203, 29, 39, 10, 103, 26, 170, 74,\n\t\t213, 193, 154, 15, 87, 75, 139, 149, 9, 217, 5, 65, 218, 147,\n\t\t14, 200, 73, 22, 167, 172, 144, 202, 50, 5, 112, 43, 226,\n\t\t199, 203, 181, 94, 219, 227, 204, 193, 193, 117, 193, 35,\n\t\t80, 125, 84, 154, 81, 117, 32, 202, 105, 81, 6, 234, 174,\n\t\t218, 59, 245, 56, 195, 206, 254, 209, 255, 139, 246, 109,\n\t\t126, 132, 120, 157, 49, 3, 155, 250, 198, 201, 171, 149, 12,\n\t\t3, 146, 66, 60, 230, 34, 253, 14, 136, 89, 229, 117, 122,\n\t\t236, 127, 180, 176, 176, 250, 198, 171, 148, 27, 149, 34,\n\t\t61, 86, 198, 220, 16, 150, 27, 37, 134, 129, 217, 56, 223,\n\t\t172, 47, 249, 193, 175, 112, 46, 16, 191, 238, 90, 126, 187,\n\t\t225, 60, 157, 120, 73, 227, 156, 14, 68, 236, 223, 119, 78,\n\t\t213, 252, 203, 209, 240, 57, 167, 234, 115, 205, 247, 143,\n\t\t58, 192, 176, 82, 34, 197, 146, 80, 49, 180, 219, 59, 205,\n\t\t181, 57, 112, 54, 188, 182, 115, 221, 191, 52, 64, 0, 13,\n\t\t121, 124, 52, 167, 42, 88, 131, 169, 219, 173, 109, 245, 8,\n\t\t115, 12, 24, 54, 39, 80, 37, 177, 72, 253, 196, 251, 242,\n\t\t163, 38, 52, 255, 37, 0, 195, 4, 74, 149, 72, 181, 35, 143,\n\t\t171, 76, 43, 221, 105, 212, 231, 8, 41, 49, 140, 193, 32,\n\t\t248, 29, 211, 249, 58, 36, 55, 163, 85, 180, 88, 199, 21,\n\t\t199, 5, 206, 101, 175, 46, 11, 12, 16, 115, 238, 64, 233,\n\t\t42, 100, 130, 28, 126, 214, 123, 24, 3, 144, 222, 114, 117,\n\t\t36, 138, 122, 100, 174, 28, 2, 44, 55, 74, 214, 181, 95, 3,\n\t\t231, 38, 113, 90, 186, 111, 224, 148, 164, 41, 189, 107, 159,\n\t\t118, 234, 60, 2, 208, 97, 241, 189, 206, 147, 53, 70, 71,\n\t\t43, 110, 188, 184, 102, 245, 115, 162, 239, 62, 70, 53, 26,\n\t\t232, 80, 14, 1, 151, 135, 121, 29, 90, 231, 57, 248, 15, 100,\n\t\t106, 66, 104, 231, 10, 246, 190, 3, 37, 165, 180, 1, 60, 143,\n\t\t55, 238, 241, 13, 191, 251, 37, 210, 56, 247, 245, 30, 154,\n\t\t113, 198, 16, 114, 35, 173, 255, 254, 129, 8, 111, 159, 207,\n\t\t59, 213, 203, 28, 77, 197, 148, 54, 37, 147, 210, 1, 191,\n\t\t40, 164, 159, 149, 71, 237, 126, 38, 57, 71, 173, 149, 164,\n\t\t118, 212, 190, 182, 143, 193, 142, 118, 3, 194, 39, 87, 59,\n\t\t120, 43, 80, 79, 141, 206, 245, 194, 56, 225, 168, 224, 66,\n\t\t95, 241, 119, 45, 156, 42, 40, 208, 50, 232, 111, 133, 43,\n\t\t207, 11, 70, 133, 227, 231, 113, 131, 82, 39, 234, 221, 206,\n\t\t26, 146, 217, 213, 103, 227, 248, 147, 110, 23, 118, 120,\n\t\t3, 60, 221, 99, 236, 168, 223, 61, 59, 46, 184, 141, 1, 125,\n\t\t224, 162, 171, 129, 121, 86, 188, 176, 3, 159, 204, 51, 176,\n\t\t3, 103, 122, 62, 168, 163, 253, 219, 51, 245, 5, 226, 15,\n\t\t148, 223, 59, 48, 29, 114, 23, 4, 45, 202, 205, 53, 232, 115,\n\t\t243, 14, 60, 79, 111, 0, 105, 181, 251, 243, 118, 8, 215,\n\t\t11, 47, 78, 21, 59, 211, 121, 229, 133, 134, 139, 156, 166,\n\t\t245, 255, 251, 123, 52, 166, 105, 243, 184, 222, 71, 63, 231,\n\t\t205, 155, 53, 179, 240, 225, 103, 5, 246, 79, 14, 224, 110,\n\t\t12, 52, 40, 156, 234, 201, 214, 205, 47, 186, 205, 55, 151,\n\t\t73, 246, 176, 61, 64, 221, 49, 112, 169, 154, 186, 153, 50,\n\t\t11, 67, 76, 237, 195, 169, 242, 113, 17, 45, 7, 129, 243,\n\t\t35, 214, 67, 106, 250, 242, 247, 48, 230, 210, 217, 162, 217,\n\t\t205, 201, 238, 108, 10, 246, 221, 9, 216, 213, 33, 146, 117,\n\t\t143, 159, 255, 10, 138, 189, 159, 116, 185, 210, 78, 58, 196,\n\t\t80, 200, 217, 234, 146, 36, 144, 8, 212, 96, 174, 65, 110,\n\t\t226, 12, 67, 133, 92, 136, 226, 163, 111, 104, 36, 247, 30,\n\t\t62, 59, 21, 199, 255, 231, 124, 79, 237, 1, 59, 249, 141,\n\t\t66, 253, 202, 239, 112, 190, 177, 75, 184, 85, 17, 68, 58,\n\t\t250, 188, 157, 232, 229, 80, 76, 72, 138, 143, 196, 183, 132,\n\t\t94, 194, 30, 102, 15, 96, 213, 120, 69, 81, 3, 130, 62, 66,\n\t\t11, 149, 150, 181, 72, 58, 64, 188, 40, 182, 215, 83, 127,\n\t\t146, 5, 254, 77, 216, 144, 84, 212, 70, 64, 61, 37, 18, 158,\n\t\t117, 254, 255, 247, 111, 196, 134, 178, 226, 72, 110, 233,\n\t\t149, 48, 15, 125, 145, 106, 144, 74, 89, 54, 71, 52, 53, 196,\n\t\t94, 209, 20, 234, 188, 191, 229, 217, 220, 101, 102, 143,\n\t\t176, 72, 113, 232, 152, 5, 117, 93, 93, 80, 43, 121, 127,\n\t\t50, 17, 59, 122, 95, 58, 225, 93, 41, 190, 176, 55, 60, 197,\n\t\t180, 132, 71, 57, 173, 59, 64, 17, 93, 20, 217, 217, 64, 136,\n\t\t213, 158, 150, 102, 235, 205, 185, 45, 58, 189, 142, 214,\n\t\t235, 241, 222, 131, 165, 43, 24, 15, 24, 25, 6, 112, 15, 92,\n\t\t130, 161, 240, 74, 62, 149, 206, 230, 168, 130, 88, 181, 248,\n\t\t125, 42, 169, 90, 165, 21, 152, 31, 220, 195, 28, 166, 132,\n\t\t179, 32, 136, 72, 128, 128, 188, 144, 93, 65, 148, 61, 207,\n\t\t3, 59, 31, 0, 108, 42, 2, 47, 96, 152, 100, 6, 193, 76, 52,\n\t\t203, 190, 38, 132, 97, 135, 27, 64, 12, 112, 234, 40, 130,\n\t\t249, 144, 81, 238, 135, 36, 13, 80, 115, 56, 3, 82, 206, 135,\n\t\t212, 179, 39, 96, 216, 162, 112, 6, 145, 219, 17, 134, 137,\n\t\t67, 100, 236, 50, 192, 204, 19, 66, 216, 67, 1, 62, 57, 252,\n\t\t0, 49, 16, 199, 239, 41, 15, 225, 154, 3, 81, 226, 5, 37,\n\t\t126, 111, 192, 211, 226, 68, 243, 227, 189, 226, 152, 103,\n\t\t132, 42, 95, 160, 249, 242, 82, 218, 243, 105, 108, 123, 92,\n\t\t40, 218, 88, 24, 82, 17, 190, 87, 119, 19, 13, 203, 107, 41,\n\t\t213, 0, 238, 118, 121, 0, 79, 178, 17, 233, 254, 131, 184,\n\t\t136, 129, 172, 116, 229, 139, 58, 44, 5, 246, 132, 96, 230,\n\t\t60, 109, 16, 36, 102, 111, 171, 117, 204, 104, 80, 39, 54,\n\t\t86, 198, 197, 55, 76, 72, 202, 54, 6, 54, 40, 169, 99, 37,\n\t\t198, 86, 130, 97, 231, 250, 29, 217, 113, 113, 182, 108, 127,\n\t\t252, 248, 45, 29, 39, 190, 94, 190, 13, 158, 206, 231, 174,\n\t\t125, 111, 109, 184, 120, 17, 208, 121, 94, 135, 46, 59, 55,\n\t\t217, 241, 163, 165, 56, 190, 17, 167, 254, 46, 226, 100, 135,\n\t\t155, 2, 210, 248, 143, 49, 220, 231, 133, 19, 255, 94, 250,\n\t\t198, 243, 51, 97, 194, 128, 248, 82, 57, 239, 88, 190, 6,\n\t\t102, 236, 94, 83, 74, 201, 246, 227, 120, 94, 94, 135, 51,\n\t\t228, 153, 167, 135, 165, 15, 138, 95, 237, 225, 32, 191, 122,\n\t\t77, 178, 231, 206, 66, 0, 68, 199, 163, 198, 137, 79, 16,\n\t\t234, 19, 74, 192, 240, 57, 138, 9, 47, 161, 152, 87, 40, 236,\n\t\t173, 165, 59, 189, 96, 202, 27, 142, 216, 127, 80, 216, 217,\n\t\t102, 131, 60, 245, 63, 222, 22, 215, 144, 151, 165, 180, 175,\n\t\t232, 133, 170, 246, 105, 52, 66, 222, 109, 208, 240, 24, 134,\n\t\t39, 149, 107, 73, 172, 162, 17, 255, 145, 63, 137, 213, 156,\n\t\t192, 131, 53, 31, 50, 142, 225, 119, 159, 159, 93, 106, 149,\n\t\t0, 182, 107, 106, 28, 186, 232, 179, 7, 92, 69, 154, 160,\n\t\t227, 206, 132, 37, 191, 182, 135, 4, 224, 246, 184, 177, 113,\n\t\t176, 169, 105, 67, 113, 209, 96, 227, 244, 0, 93, 161, 78,\n\t\t151, 168, 215, 189, 209, 235, 19, 188, 39, 42, 33, 150, 246,\n\t\t207, 192, 179, 101, 2, 216, 197, 250, 216, 24, 68, 17, 33,\n\t\t209, 208, 76, 148, 99, 119, 144, 178, 100, 109, 67, 27, 148,\n\t\t147, 117, 196, 73, 232, 155, 224, 174, 101, 82, 205, 113,\n\t\t56, 230, 189, 31, 37, 164, 64, 120, 48, 132, 245, 118, 222,\n\t\t144, 142, 144, 182, 148, 63, 240, 176, 227, 108, 110, 216,\n\t\t11, 66, 175, 86, 176, 55, 229, 36, 194, 229, 87, 198, 201,\n\t\t42, 32, 168, 95, 180, 51, 63, 209, 242, 251, 209, 37, 153,\n\t\t239, 24, 77, 131, 139, 180, 222, 141, 59, 127, 148, 30, 3,\n\t\t226, 78, 124, 26, 105, 177, 208, 70, 201, 225, 115, 0, 25,\n\t\t235, 176, 49, 16, 47, 111, 171, 50, 121, 195, 240, 82, 244,\n\t\t195, 50, 231, 202, 233, 119, 238, 49, 104, 3, 205, 160, 37,\n\t\t127, 9, 50, 245, 32, 242, 109, 100, 145, 19, 233, 56, 174,\n\t\t206, 151, 24, 74, 245, 127, 130, 24, 25, 154, 178, 232, 116,\n\t\t117, 174, 225, 234, 47, 42, 46, 162, 174, 228, 146, 151, 203,\n\t\t209, 108, 168, 43, 174, 178, 120, 90, 63, 106, 156, 212, 17,\n\t\t123, 75, 96, 120, 222, 63, 251, 120, 57, 16, 71, 200, 173,\n\t\t82, 5, 50, 135, 7, 91, 148, 88, 78, 158, 108, 239, 27, 202,\n\t\t81, 107, 103, 58, 186, 151, 241, 116, 231, 238, 39, 236, 137,\n\t\t124, 230, 48, 115, 214, 21, 239, 237, 232, 180, 86, 113, 107,\n\t\t127, 171, 107, 89, 169, 36, 124, 80, 152, 200, 45, 148, 114,\n\t\t187, 75, 156, 112, 99, 242, 15, 88, 139, 99, 75, 21, 244,\n\t\t113, 2, 99, 100, 91, 158, 140, 107, 60, 198, 225, 93, 103,\n\t\t182, 31, 180, 67, 95, 199, 147, 245, 84, 120, 67, 150, 50,\n\t\t135, 23, 226, 118, 84, 82, 167, 82, 35, 80, 168, 204, 204,\n\t\t151, 10, 220, 213, 150, 238, 223, 94, 229, 149, 143, 198,\n\t\t120, 194, 95, 171, 97, 230, 209, 116, 83, 123, 2, 213, 5,\n\t\t101, 64, 251, 173, 170, 185, 180, 161, 195, 246, 170, 176,\n\t\t0, 143, 98, 206, 2, 25, 58, 224, 90, 137, 110, 127, 175, 252,\n\t\t196, 164, 128, 189, 131, 91, 235, 22, 215, 11, 155, 4, 17,\n\t\t11, 45, 83, 8, 188, 26, 144, 253, 213, 98, 44, 130, 129, 232,\n\t\t171, 175, 23, 191, 95, 168, 122, 85, 246, 51, 168, 42, 206,\n\t\t223, 81, 109, 138, 50, 53, 7, 116, 165, 81, 6, 171, 77, 184,\n\t\t221, 233, 188, 201, 212, 252, 144, 167, 89, 220, 23, 167,\n\t\t187, 179, 177, 239, 56, 254, 66, 156, 93, 40, 67, 253, 187,\n\t\t127, 216, 23, 212, 174, 224, 237, 157, 201, 131, 173, 224,\n\t\t22, 225, 92, 159, 204, 113, 78, 147, 250, 29, 54, 23, 128,\n\t\t96, 210, 102, 246, 41, 231, 207, 11, 190, 216, 244, 46, 88,\n\t\t99, 133, 128, 46, 91, 55, 26, 251, 119, 235, 93, 59, 44, 66,\n\t\t205, 28, 186, 237, 58, 107, 82, 170, 214, 196, 12, 77, 149,\n\t\t248, 189, 62, 86, 136, 144, 150, 174, 10, 203, 60, 99, 184,\n\t\t50, 7, 221, 95, 141, 176, 59, 198, 209, 147, 146, 222, 35,\n\t\t187, 80, 95, 117, 129, 14, 163, 47, 227, 150, 113, 244, 197,\n\t\t197, 239, 16, 221, 168, 175, 38, 48, 35, 191, 253, 143, 165,\n\t\t120, 16, 20, 95, 178, 35, 87, 43, 126, 147, 229, 154, 91,\n\t\t188, 99, 101, 106, 44, 248, 19, 118, 125, 254, 90, 107, 15,\n\t\t245, 127, 42, 219, 59, 246, 183, 183, 7, 195, 30, 37, 201,\n\t\t178, 34, 201, 86, 153, 61, 170, 132, 214, 6, 75, 131, 192,\n\t\t214, 90, 150, 169, 21, 84, 7, 206, 89, 239, 38, 61, 15, 186,\n\t\t93, 177, 93, 37, 22, 228, 184, 58, 236, 142, 149, 139, 227,\n\t\t247, 78, 158, 188, 103, 253, 204, 178, 176, 219, 5, 174, 202,\n\t\t157, 170, 58, 196, 248, 181, 55, 226, 229, 244, 249, 231,\n\t\t168, 136, 20, 175, 255, 189, 166, 251, 167, 90, 255, 132,\n\t\t167, 166, 158, 136, 94, 119, 101, 178, 187, 39, 255, 74, 105,\n\t\t249, 102, 213, 2, 4, 190, 200, 175, 154, 143, 68, 67, 133,\n\t\t251, 157, 250, 135, 185, 92, 123, 65, 226, 235, 79, 103, 77,\n\t\t178, 22, 124, 158, 2, 235, 179, 8, 231, 60, 108, 187, 219,\n\t\t225, 99, 236, 3, 98, 120, 74, 71, 200, 186, 142, 253, 131,\n\t\t57, 172, 215, 45, 73, 111, 242, 110, 210, 109, 19, 89, 157,\n\t\t202, 111, 47, 101, 102, 115, 123, 57, 140, 185, 142, 151,\n\t\t116, 153, 184, 174, 65, 119, 0, 125, 254, 222, 61, 203, 203,\n\t\t142, 46, 9, 183, 217, 176, 105, 120, 230, 36, 88, 195, 28,\n\t\t175, 39, 115, 233, 78, 173, 108, 250, 252, 90, 30, 94, 236,\n\t\t67, 56, 63, 245, 77, 131, 63, 66, 255, 132, 22, 16, 116, 17,\n\t\t94, 150, 33, 87, 120, 62, 238, 116, 41, 156, 183, 225, 237,\n\t\t189, 210, 146, 84, 201, 223, 210, 35, 10, 144, 207, 192, 178,\n\t\t200, 40, 86, 255, 57, 139, 120, 37, 171, 172, 5, 176, 8, 20,\n\t\t113, 150, 64, 59, 76, 93, 63, 67, 33, 198, 2, 181, 124, 235,\n\t\t117, 26, 20, 141, 80, 40, 84, 249, 36, 127, 69, 226, 162,\n\t\t153, 123, 76, 201, 210, 12, 84, 63, 1, 124, 248, 0, 85, 10,\n\t\t172, 59, 66, 216, 44, 122, 119, 20, 166, 111, 30, 250, 35,\n\t\t11, 219, 108, 243, 155, 147, 7, 11, 49, 125, 96, 243, 188,\n\t\t21, 157, 184, 222, 253, 221, 127, 19, 46, 104, 67, 158, 187,\n\t\t44, 54, 129, 61, 241, 27, 3, 53, 45, 200, 203, 82, 183, 197,\n\t\t46, 15, 108, 229, 76, 210, 69, 55, 73, 193, 71, 45, 118, 43,\n\t\t138, 78, 234, 137, 78, 182, 88, 237, 52, 70, 211, 27, 254,\n\t\t96, 191, 240, 3, 80, 31, 3, 119, 94, 7, 25, 226, 122, 2, 170,\n\t\t60, 162, 135, 65, 20, 29, 208, 91, 219, 212, 216, 80, 104,\n\t\t81, 83, 96, 181, 107, 91, 147, 228, 27, 23, 69, 10, 209, 69,\n\t\t113, 70, 19, 232, 47, 23, 35, 206, 220, 127, 90, 75, 233,\n\t\t136, 82, 55, 222, 159, 75, 173, 236, 165, 204, 202, 164, 184,\n\t\t134, 30, 155, 232, 208, 125, 73, 188, 64, 12, 37, 17, 122,\n\t\t30, 244, 251, 138, 92, 131, 232, 3, 113, 70, 3, 185, 222,\n\t\t238, 212, 157, 7, 79, 182, 137, 14, 208, 58, 233, 251, 105,\n\t\t39, 104, 35, 180, 105, 212, 3, 212, 121, 7, 238, 80, 209,\n\t\t67, 251, 94, 70, 25, 152, 81, 192, 13, 155, 232, 85, 2, 49,\n\t\t72, 145, 53, 122, 228, 85, 26, 218, 167, 143, 21, 104, 69,\n\t\t206, 129, 245, 181, 127, 159, 251, 168, 215, 73, 55, 242,\n\t\t63, 155, 107, 28, 70, 39, 248, 124, 143, 172, 69, 117, 124,\n\t\t251, 36, 180, 69, 173, 196, 69, 173, 101, 16, 90, 12, 7, 49,\n\t\t7, 186, 8, 10, 143, 67, 44, 48, 80, 44, 78, 109, 95, 112,\n\t\t170, 245, 108, 64, 91, 155, 233, 255, 246, 163, 65, 128, 97,\n\t\t241, 178, 232, 29, 84, 184, 230, 155, 190, 48, 222, 99, 56,\n\t\t175, 122, 159, 250, 199, 85, 16, 225, 22, 1, 252, 240, 58,\n\t\t77, 190, 93, 47, 197, 68, 206, 226, 229, 59, 117, 24, 161,\n\t\t214, 6, 78, 144, 243, 90, 19, 20, 199, 216, 185, 89, 37, 103,\n\t\t218, 222, 20, 101, 242, 120, 115, 211, 154, 167, 24, 163,\n\t\t66, 219, 236, 149, 217, 137, 250, 214, 113, 191, 156, 141,\n\t\t86, 112, 4, 147, 97, 135, 169, 214, 195, 25, 88, 51, 4, 71,\n\t\t179, 152, 117, 211, 123, 202, 214, 61, 134, 189, 3, 180, 1,\n\t\t152, 253, 197, 66, 72, 40, 92, 189, 68, 162, 87, 99, 254,\n\t\t22, 39, 35, 169, 111, 129, 91, 33, 83, 212, 79, 21, 77, 235,\n\t\t47, 90, 32, 22, 79, 45, 164, 20, 186, 254, 47, 49, 26, 45,\n\t\t29, 130, 143, 219, 234, 178, 34, 195, 195, 200, 52, 234, 140,\n\t\t206, 171, 197, 40, 238, 38, 115, 180, 33, 79, 123, 126, 235,\n\t\t209, 208, 228, 241, 24, 119, 213, 146, 188, 148, 69, 66, 45,\n\t\t101, 148, 138, 247, 54, 49, 67, 139, 84, 59, 20, 227, 14,\n\t\t254, 213, 145, 107, 163, 253, 182, 164, 151, 61, 213, 209,\n\t\t19, 212, 94, 157, 81, 66, 8, 85, 74, 146, 51, 143, 14, 210,\n\t\t156, 192, 188, 43, 174, 18, 86, 27, 161, 17, 179, 97, 191,\n\t\t224, 59, 162, 186, 158, 178, 123, 239, 17, 90, 67, 242, 251,\n\t\t91, 8, 253, 19, 101, 117, 122, 86, 23, 125, 204, 77, 109,\n\t\t93, 65, 86, 202, 83, 207, 97, 142, 14, 52, 38, 201, 162, 65,\n\t\t84, 157, 59, 202, 197, 137, 134, 91, 89, 171, 210, 45, 118,\n\t\t75, 162, 123, 58, 237, 103, 80, 69, 121, 174, 25, 88, 184,\n\t\t252, 213, 216, 244, 254, 176, 234, 150, 13, 161, 195, 173,\n\t\t0, 253, 74, 79, 26, 146, 240, 244, 241, 167, 163, 67, 107,\n\t\t48, 59, 30, 187, 162, 107, 251, 253, 152, 234, 244, 220, 200,\n\t\t165, 248, 250, 87, 253, 49, 94, 213, 53, 159, 3, 38, 86, 219,\n\t\t21, 98, 139, 134, 179, 144, 234, 163, 1, 233, 179, 174, 83,\n\t\t114, 182, 181, 215, 38, 232, 100, 116, 26, 240, 204, 235,\n\t\t219, 24, 253, 249, 108, 197, 19, 151, 216, 152, 163, 49, 255,\n\t\t208, 133, 11, 212, 50, 191, 109, 158, 32, 66, 217, 88, 191,\n\t\t230, 26, 118, 248, 142, 127, 91, 134, 6, 185, 23, 247, 216,\n\t\t146, 143, 70, 251, 88, 64, 101, 120, 211, 88, 142, 165, 174,\n\t\t152, 234, 248, 12, 127, 175, 208, 59, 15, 53, 180, 110, 131,\n\t\t29, 241, 44, 165, 170, 30, 252, 49, 204, 245, 67, 220, 142,\n\t\t143, 72, 90, 16, 78, 126, 92, 190, 111, 101, 46, 67, 165,\n\t\t186, 70, 17, 17, 127, 27, 17, 163, 255, 75, 108, 248, 246,\n\t\t58, 220, 255, 117, 195, 94, 23, 223, 232, 74, 161, 183, 127,\n\t\t247, 94, 144, 172, 137, 205, 107, 11, 214, 239, 236, 221,\n\t\t183, 156, 28, 197, 37, 91, 218, 212, 230, 212, 180, 230, 169,\n\t\t169, 244, 112, 22, 46, 89, 139, 203, 22, 61, 109, 124, 229,\n\t\t31, 127, 235, 235, 156, 164, 242, 55, 228, 201, 137, 243,\n\t\t252, 194, 95, 125, 245, 155, 51, 199, 239, 235, 173, 112,\n\t\t63, 31, 85, 181, 34, 187, 160, 94, 97, 15, 96, 2, 168, 195,\n\t\t236, 126, 140, 227, 31, 151, 244, 125, 249, 107, 231, 250,\n\t\t36, 223, 218, 215, 174, 225, 120, 127, 11, 8, 187, 76, 61,\n\t\t17, 192, 102, 68, 88, 202, 134, 113, 133, 168, 104, 177, 220,\n\t\t109, 85, 0, 121, 158, 73, 4, 43, 251, 175, 225, 195, 140,\n\t\t68, 108, 153, 201, 105, 164, 200, 117, 60, 150, 167, 173,\n\t\t43, 203, 114, 192, 112, 233, 215, 20, 230, 254, 253, 114,\n\t\t167, 211, 61, 28, 242, 95, 130, 161, 38, 147, 191, 141, 57,\n\t\t135, 207, 191, 68, 36, 157, 43, 224, 93, 26, 159, 99, 196,\n\t\t46, 76, 108, 245, 210, 217, 78, 41, 223, 184, 26, 70, 56,\n\t\t179, 151, 230, 95, 234, 147, 126, 184, 95, 35, 234, 87, 115,\n\t\t231, 33, 168, 54, 173, 155, 226, 14, 82, 70, 196, 156, 182,\n\t\t89, 234, 112, 106, 127, 140, 15, 66, 250, 122, 30, 183, 139,\n\t\t194, 150, 70, 154, 196, 112, 187, 132, 122, 149, 131, 148,\n\t\t113, 132, 188, 13, 132, 81, 133, 234, 57, 19, 192, 23, 249,\n\t\t182, 69, 86, 216, 220, 83, 198, 79, 33, 174, 109, 84, 128,\n\t\t188, 66, 154, 55, 144, 24, 183, 97, 83, 161, 253, 7, 8, 237,\n\t\t248, 102, 110, 254, 95, 47, 39, 117, 193, 83, 143, 63, 105,\n\t\t177, 129, 163, 213, 148, 86, 166, 51, 184, 128, 95, 28, 94,\n\t\t102, 253, 204, 61, 155, 95, 146, 229, 80, 172, 161, 190, 188,\n\t\t3, 24, 60, 110, 98, 225, 114, 224, 139, 193, 149, 63, 253,\n\t\t166, 188, 103, 96, 227, 106, 110, 241, 77, 217, 207, 208,\n\t\t198, 122, 88, 248, 94, 154, 119, 180, 206, 37, 75, 11, 231,\n\t\t38, 212, 73, 73, 234, 207, 236, 149, 33, 171, 39, 220, 213,\n\t\t207, 233, 140, 140, 141, 157, 83, 58, 135, 8, 18, 158, 149,\n\t\t170, 101, 244, 126, 43, 56, 190, 45, 136, 147, 21, 103, 207,\n\t\t162, 130, 226, 92, 83, 120, 158, 150, 156, 213, 224, 215,\n\t\t248, 65, 125, 1, 72, 160, 126, 201, 208, 253, 32, 214, 54,\n\t\t87, 117, 186, 233, 26, 98, 244, 7, 151, 255, 9, 159, 37, 200,\n\t\t230, 44, 239, 170, 0, 59, 190, 225, 114, 203, 97, 88, 242,\n\t\t125, 42, 156, 232, 169, 138, 228, 152, 70, 28, 4, 119, 220,\n\t\t142, 63, 177, 141, 57, 159, 34, 29, 183, 48, 199, 205, 72,\n\t\t167, 88, 236, 157, 203, 68, 69, 177, 95, 28, 136, 82, 87,\n\t\t35, 171, 203, 44, 23, 59, 196, 119, 15, 67, 30, 30, 148, 246,\n\t\t186, 120, 239, 134, 99, 136, 66, 132, 87, 240, 164, 75, 68,\n\t\t179, 120, 67, 212, 33, 158, 104, 153, 108, 78, 241, 209, 33,\n\t\t138, 99, 88, 179, 143, 63, 68, 27, 226, 139, 198, 6, 131,\n\t\t63, 252, 27, 169, 153, 211, 212, 31, 7, 244, 109, 166, 62,\n\t\t135, 244, 249, 14, 54, 214, 154, 175, 89, 101, 254, 102, 206,\n\t\t121, 149, 74, 197, 123, 67, 168, 76, 179, 175, 8, 51, 84,\n\t\t105, 94, 215, 17, 176, 157, 15, 102, 208, 226, 91, 94, 190,\n\t\t206, 183, 189, 59, 245, 146, 184, 31, 105, 184, 149, 134,\n\t\t37, 78, 90, 4, 206, 125, 205, 144, 171, 77, 182, 140, 239,\n\t\t181, 24, 160, 99, 169, 224, 217, 192, 210, 71, 172, 72, 202,\n\t\t73, 216, 195, 227, 138, 188, 197, 204, 172, 249, 62, 121,\n\t\t226, 91, 83, 188, 128, 206, 5, 58, 115, 191, 147, 234, 44,\n\t\t134, 50, 157, 175, 85, 82, 248, 118, 32, 213, 217, 31, 158,\n\t\t42, 23, 127, 193, 241, 16, 6, 142, 146, 36, 146, 28, 121,\n\t\t84, 192, 23, 224, 167, 113, 220, 183, 76, 216, 167, 37, 199,\n\t\t55, 237, 25, 169, 190, 186, 113, 239, 166, 109, 230, 200,\n\t\t114, 0, 115, 58, 213, 48, 112, 138, 251, 38, 5, 2, 2, 86,\n\t\t170, 105, 72, 9, 46, 133, 82, 252, 22, 23, 114, 120, 239,\n\t\t129, 190, 149, 155, 214, 28, 228, 120, 30, 126, 87, 119, 178,\n\t\t11, 43, 25, 233, 39, 174, 184, 154, 59, 14, 253, 29, 114,\n\t\t86, 49, 23, 172, 119, 67, 229, 37, 209, 133, 157, 85, 189,\n\t\t232, 85, 254, 54, 112, 3, 62, 87, 119, 44, 127, 183, 67, 20,\n\t\t136, 157, 98, 208, 156, 142, 52, 36, 169, 190, 54, 188, 219,\n\t\t114, 199, 134, 156, 60, 109, 99, 182, 160, 238, 48, 39, 91,\n\t\t129, 126, 192, 97, 22, 20, 46, 176, 114, 87, 121, 157, 159,\n\t\t129, 13, 159, 18, 247, 199, 113, 243, 86, 82, 77, 97, 159,\n\t\t194, 11, 37, 149, 85, 235, 22, 123, 161, 54, 241, 198, 136,\n\t\t52, 98, 140, 64, 83, 222, 198, 125, 243, 7, 165, 90, 188,\n\t\t102, 132, 189, 189, 167, 207, 43, 130, 19, 10, 40, 151, 85,\n\t\t18, 113, 252, 71, 42, 88, 19, 197, 16, 56, 68, 48, 82, 116,\n\t\t194, 238, 102, 14, 105, 144, 25, 4, 131, 129, 154, 50, 173,\n\t\t93, 176, 136, 236, 109, 52, 48, 82, 126, 185, 140, 8, 3, 45,\n\t\t5, 248, 38, 208, 222, 6, 35, 198, 177, 135, 49, 187, 21, 219,\n\t\t175, 110, 242, 21, 44, 140, 0, 113, 106, 26, 254, 151, 42,\n\t\t110, 197, 17, 5, 222, 181, 56, 76, 129, 56, 80, 84, 237, 165,\n\t\t73, 118, 126, 226, 147, 96, 159, 223, 250, 73, 233, 93, 35,\n\t\t42, 80, 178, 218, 133, 39, 77, 87, 171, 215, 172, 201, 221,\n\t\t190, 96, 109, 74, 137, 43, 107, 221, 90, 150, 102, 131, 76,\n\t\t101, 52, 161, 222, 71, 217, 247, 172, 76, 28, 101, 91, 40,\n\t\t67, 62, 181, 164, 151, 190, 196, 73, 42, 138, 15, 234, 232,\n\t\t102, 36, 54, 34, 180, 48, 94, 155, 83, 15, 90, 143, 233, 255,\n\t\t36, 177, 128, 5, 28, 126, 140, 0, 93, 174, 243, 186, 15, 182,\n\t\t158, 249, 124, 229, 200, 48, 107, 229, 234, 56, 65, 12, 200,\n\t\t228, 182, 31, 255, 143, 149, 167, 172, 202, 141, 186, 208,\n\t\t4, 177, 118, 23, 140, 138, 231, 133, 123, 119, 79, 222, 97,\n\t\t114, 119, 215, 236, 33, 145, 79, 90, 60, 100, 208, 27, 23,\n\t\t214, 56, 77, 79, 172, 214, 106, 250, 172, 131, 2, 225, 241,\n\t\t60, 43, 136, 1, 96, 123, 171, 156, 141, 232, 170, 211, 89,\n\t\t216, 232, 157, 245, 17, 142, 9, 209, 32, 250, 66, 66, 171,\n\t\t14, 59, 85, 168, 247, 247, 48, 192, 107, 226, 253, 155, 49,\n\t\t250, 150, 168, 130, 73, 47, 10, 225, 41, 210, 136, 80, 151,\n\t\t12, 58, 172, 125, 201, 130, 136, 189, 213, 66, 141, 58, 202,\n\t\t125, 100, 223, 122, 202, 62, 110, 157, 235, 156, 32, 16, 42,\n\t\t151, 228, 178, 232, 209, 201, 194, 193, 70, 54, 96, 55, 14,\n\t\t142, 13, 172, 151, 57, 22, 97, 49, 120, 191, 232, 88, 95,\n\t\t247, 220, 132, 42, 197, 232, 30, 249, 112, 149, 113, 152,\n\t\t253, 203, 254, 235, 172, 202, 180, 42, 65, 116, 254, 192,\n\t\t63, 207, 72, 128, 150, 73, 97, 124, 192, 122, 89, 114, 95,\n\t\t42, 121, 30, 65, 212, 234, 36, 240, 143, 73, 37, 46, 157,\n\t\t238, 172, 97, 12, 204, 155, 235, 141, 28, 194, 67, 231, 162,\n\t\t142, 77, 34, 77, 177, 132, 216, 145, 134, 148, 138, 133, 99,\n\t\t246, 111, 188, 190, 52, 54, 63, 231, 205, 22, 191, 119, 233,\n\t\t177, 197, 134, 0, 155, 163, 3, 186, 118, 154, 66, 63, 115,\n\t\t77, 88, 124, 226, 196, 222, 246, 122, 234, 106, 248, 210,\n\t\t217, 79, 91, 38, 40, 110, 43, 204, 164, 216, 125, 51, 245,\n\t\t51, 243, 127, 95, 4, 228, 164, 138, 244, 65, 253, 58, 237,\n\t\t90, 160, 223, 155, 121, 162, 198, 250, 112, 138, 86, 248,\n\t\t221, 80, 40, 234, 94, 66, 163, 201, 235, 40, 227, 186, 185,\n\t\t142, 28, 163, 4, 250, 177, 46, 204, 25, 188, 53, 128, 69,\n\t\t235, 192, 255, 131, 2, 78, 45, 170, 149, 216, 16, 78, 69,\n\t\t41, 120, 112, 226, 129, 139, 225, 106, 6, 81, 93, 98, 230,\n\t\t122, 244, 167, 3, 220, 133, 1, 69, 181, 153, 91, 168, 29,\n\t\t90, 26, 45, 167, 229, 251, 203, 55, 200, 8, 183, 173, 34,\n\t\t112, 41, 137, 210, 102, 158, 226, 143, 98, 237, 78, 154, 83,\n\t\t177, 153, 247, 7, 9, 89, 153, 116, 77, 77, 143, 231, 253,\n\t\t87, 99, 123, 70, 176, 36, 153, 185, 65, 76, 19, 113, 76, 222,\n\t\t140, 163, 211, 201, 235, 101, 238, 27, 196, 240, 90, 180,\n\t\t168, 126, 242, 48, 69, 58, 159, 141, 249, 137, 132, 186, 242,\n\t\t112, 124, 43, 27, 227, 8, 24, 143, 134, 30, 198, 74, 132,\n\t\t254, 2, 196, 106, 145, 194, 186, 85, 70, 163, 46, 136, 155,\n\t\t17, 18, 179, 214, 59, 110, 254, 129, 157, 36, 148, 179, 194,\n\t\t173, 226, 232, 8, 51, 55, 132, 18, 10, 25, 37, 229, 229, 210,\n\t\t91, 109, 204, 43, 102, 226, 207, 89, 147, 243, 42, 61, 146,\n\t\t193, 30, 16, 82, 157, 37, 183, 226, 179, 235, 5, 117, 42,\n\t\t222, 173, 51, 107, 188, 65, 201, 108, 166, 217, 41, 49, 84,\n\t\t155, 163, 15, 88, 144, 190, 79, 173, 26, 156, 90, 105, 222,\n\t\t187, 89, 66, 243, 231, 9, 15, 92, 232, 85, 183, 129, 57, 131,\n\t\t120, 133, 80, 57, 198, 14, 194, 211, 13, 90, 221, 148, 187,\n\t\t21, 207, 219, 223, 4, 10, 112, 178, 135, 74, 61, 193, 178,\n\t\t223, 176, 241, 241, 200, 83, 35, 28, 118, 233, 0, 132, 255,\n\t\t191, 124, 46, 85, 113, 45, 25, 80, 197, 187, 159, 173, 102,\n\t\t172, 191, 81, 82, 23, 111, 14, 129, 16, 204, 181, 237, 68,\n\t\t127, 165, 99, 203, 251, 225, 12, 15, 159, 187, 155, 113, 25,\n\t\t64, 0, 158, 45, 1, 64, 7, 27, 96, 0, 19, 29, 218, 15, 11,\n\t\t230, 15, 152, 32, 192, 16, 222, 21, 209, 244, 106, 167, 250,\n\t\t183, 49, 175, 128, 105, 119, 198, 40, 176, 9, 69, 169, 132,\n\t\t189, 147, 238, 179, 32, 75, 7, 245, 98, 0, 198, 0, 98, 198,\n\t\t49, 229, 154, 179, 111, 122, 108, 136, 229, 188, 67, 185,\n\t\t43, 144, 77, 83, 63, 77, 168, 197, 113, 92, 70, 185, 82, 72,\n\t\t3, 133, 151, 201, 223, 31, 202, 233, 124, 91, 11, 201, 202,\n\t\t134, 247, 66, 94, 64, 90, 115, 253, 255, 74, 128, 90, 24,\n\t\t188, 5, 2, 8, 191, 86, 194, 177, 201, 7, 172, 247, 22, 126,\n\t\t175, 189, 235, 14, 215, 245, 245, 140, 189, 0, 62, 235, 240,\n\t\t214, 66, 37, 129, 28, 8, 228, 0, 121, 7, 192, 171, 183, 79,\n\t\t155, 238, 89, 211, 52, 29, 119, 246, 153, 27, 132, 3, 112,\n\t\t131, 191, 28, 106, 1, 80, 221, 223, 123, 92, 102, 36, 158,\n\t\t216, 214, 179, 54, 237, 239, 28, 196, 74, 111, 37, 174, 64,\n\t\t92, 4, 122, 32, 49, 188, 248, 47, 49, 154, 178, 99, 227, 209,\n\t\t88, 56, 220, 248, 146, 56, 89, 7, 106, 168, 39, 201, 118,\n\t\t98, 108, 21, 128, 56, 48, 89, 218, 104, 103, 153, 233, 47,\n\t\t218, 65, 184, 29, 55, 220, 202, 178, 214, 158, 182, 76, 2,\n\t\t89, 113, 237, 234, 243, 254, 106, 161, 116, 229, 65, 146,\n\t\t18, 15, 196, 194, 41, 136, 186, 203, 138, 249, 236, 216, 158,\n\t\t192, 222, 54, 80, 224, 95, 243, 213, 167, 199, 107, 22, 148,\n\t\t237, 216, 238, 58, 172, 82, 241, 55, 122, 73, 254, 188, 11,\n\t\t99, 148, 27, 69, 142, 129, 91, 238, 195, 112, 200, 156, 81,\n\t\t88, 63, 153, 74, 158, 191, 214, 84, 5, 48, 104, 246, 87, 126,\n\t\t82, 50, 47, 159, 120, 21, 80, 207, 101, 219, 2, 110, 93, 255,\n\t\t248, 55, 137, 38, 148, 18, 249, 82, 18, 231, 175, 169, 109,\n\t\t131, 9, 172, 99, 55, 110, 157, 80, 30, 164, 176, 109, 145,\n\t\t183, 142, 119, 28, 18, 193, 126, 168, 169, 127, 99, 73, 82,\n\t\t237, 193, 37, 76, 9, 88, 210, 0, 26, 190, 196, 75, 228, 1,\n\t\t92, 210, 10, 84, 10, 46, 132, 191, 200, 185, 145, 127, 118,\n\t\t82, 6, 151, 131, 132, 136, 71, 18, 105, 146, 36, 94, 177,\n\t\t168, 51, 136, 49, 180, 98, 93, 35, 105, 116, 75, 234, 163,\n\t\t13, 81, 40, 20, 57, 253, 112, 62, 7, 78, 123, 99, 181, 133,\n\t\t233, 4, 124, 242, 28, 210, 13, 202, 99, 11, 4, 31, 243, 187,\n\t\t70, 193, 73, 112, 129, 159, 18, 28, 82, 186, 7, 58, 141, 255,\n\t\t23, 78, 245, 1, 73, 226, 40, 97, 159, 62, 45, 44, 52, 236,\n\t\t234, 203, 120, 78, 189, 58, 173, 196, 55, 36, 7, 40, 226,\n\t\t131, 249, 25, 168, 205, 231, 239, 230, 100, 240, 131, 77,\n\t\t62, 57, 33, 190, 37, 105, 234, 122, 206, 183, 106, 139, 229,\n\t\t142, 29, 200, 46, 92, 192, 233, 54, 231, 49, 158, 220, 83,\n\t\t142, 65, 5, 22, 13, 32, 241, 181, 172, 143, 156, 199, 172,\n\t\t199, 28, 199, 109, 231, 250, 79, 63, 146, 50, 63, 176, 210,\n\t\t88, 31, 152, 41, 100, 55, 18, 45, 163, 70, 245, 183, 47, 44,\n\t\t69, 92, 69, 96, 82, 249, 167, 132, 132, 189, 69, 208, 202,\n\t\t87, 218, 7, 52, 105, 148, 255, 62, 70, 156, 140, 177, 177,\n\t\t158, 187, 184, 228, 218, 4, 95, 37, 69, 227, 13, 104, 22,\n\t\t212, 208, 243, 59, 199, 177, 40, 101, 61, 238, 44, 125, 27,\n\t\t39, 147, 140, 182, 142, 61, 109, 157, 25, 79, 31, 35, 42,\n\t\t10, 184, 160, 53, 53, 219, 55, 35, 163, 212, 194, 234, 171,\n\t\t121, 204, 138, 202, 163, 47, 6, 179, 237, 231, 204, 242, 220,\n\t\t152, 51, 117, 252, 218, 33, 112, 136, 6, 235, 188, 71, 203,\n\t\t206, 203, 174, 46, 0, 153, 215, 52, 193, 238, 149, 161, 154,\n\t\t228, 229, 189, 205, 76, 44, 75, 13, 113, 39, 173, 192, 50,\n\t\t20, 55, 156, 158, 10, 91, 234, 6, 78, 245, 251, 139, 27, 38,\n\t\t248, 187, 182, 179, 82, 139, 119, 8, 162, 190, 14, 188, 49,\n\t\t251, 78, 148, 86, 178, 235, 43, 93, 178, 100, 5, 240, 112,\n\t\t51, 252, 46, 9, 190, 180, 206, 53, 171, 76, 41, 25, 17, 102,\n\t\t73, 113, 106, 89, 152, 38, 230, 247, 183, 121, 158, 248, 78,\n\t\t229, 225, 60, 188, 28, 70, 2, 21, 113, 113, 55, 225, 205,\n\t\t130, 93, 67, 147, 155, 42, 27, 36, 63, 9, 67, 121, 165, 89,\n\t\t37, 233, 106, 86, 204, 119, 188, 167, 244, 243, 180, 251,\n\t\t244, 251, 52, 135, 183, 106, 83, 115, 229, 158, 39, 180, 173,\n\t\t115, 164, 159, 223, 46, 180, 19, 234, 92, 32, 245, 222, 132,\n\t\t154, 11, 3, 139, 53, 148, 221, 81, 224, 178, 168, 165, 59,\n\t\t81, 127, 146, 87, 83, 143, 60, 88, 100, 168, 250, 63, 10,\n\t\t163, 107, 111, 184, 47, 221, 225, 168, 4, 112, 168, 133, 34,\n\t\t25, 21, 197, 39, 167, 244, 80, 43, 28, 242, 125, 91, 174,\n\t\t147, 191, 251, 158, 121, 96, 201, 241, 153, 99, 34, 231, 236,\n\t\t26, 26, 218, 88, 163, 211, 63, 76, 119, 177, 143, 63, 146,\n\t\t37, 15, 218, 168, 218, 152, 148, 149, 19, 174, 202, 207, 54,\n\t\t151, 249, 171, 64, 192, 92, 108, 237, 78, 200, 50, 79, 73,\n\t\t109, 251, 124, 117, 56, 225, 140, 38, 216, 116, 124, 0, 139,\n\t\t46, 216, 246, 21, 58, 92, 70, 236, 38, 117, 163, 17, 249,\n\t\t17, 8, 244, 124, 12, 113, 17, 105, 17, 159, 103, 198, 14,\n\t\t38, 208, 72, 52, 125, 106, 11, 29, 146, 230, 195, 239, 122,\n\t\t45, 174, 12, 232, 152, 47, 243, 189, 57, 172, 193, 77, 105,\n\t\t238, 132, 185, 98, 13, 131, 176, 15, 207, 68, 64, 220, 210,\n\t\t61, 238, 216, 119, 94, 226, 133, 175, 68, 176, 168, 24, 31,\n\t\t200, 158, 251, 4, 48, 179, 120, 179, 40, 248, 155, 207, 228,\n\t\t186, 0, 166, 114, 201, 198, 172, 137, 204, 117, 90, 44, 213,\n\t\t148, 203, 19, 203, 26, 2, 121, 54, 112, 154, 32, 229, 243,\n\t\t151, 106, 102, 236, 251, 69, 240, 4, 118, 215, 1, 182, 116,\n\t\t126, 46, 69, 30, 225, 41, 92, 70, 105, 214, 194, 30, 39, 36,\n\t\t226, 233, 237, 136, 55, 206, 130, 100, 111, 119, 189, 94,\n\t\t216, 224, 103, 34, 205, 173, 228, 243, 9, 71, 159, 228, 148,\n\t\t79, 165, 230, 188, 155, 111, 0, 61, 202, 146, 68, 53, 210,\n\t\t145, 230, 5, 40, 6, 109, 9, 77, 150, 208, 63, 129, 48, 215,\n\t\t63, 43, 33, 163, 74, 37, 202, 151, 10, 47, 79, 233, 137, 128,\n\t\t10, 95, 97, 196, 129, 164, 30, 85, 92, 117, 91, 172, 165,\n\t\t96, 158, 14, 163, 187, 136, 120, 66, 231, 65, 107, 208, 57,\n\t\t223, 252, 121, 121, 182, 167, 115, 90, 18, 48, 0, 109, 73,\n\t\t106, 61, 133, 162, 229, 224, 86, 43, 45, 51, 143, 52, 165,\n\t\t136, 91, 158, 254, 34, 235, 69, 108, 122, 108, 100, 224, 191,\n\t\t190, 225, 187, 204, 224, 209, 152, 40, 83, 83, 146, 206, 82,\n\t\t218, 233, 162, 23, 101, 132, 229, 42, 66, 221, 180, 151, 235,\n\t\t171, 204, 142, 225, 187, 164, 3, 243, 42, 66, 22, 55, 181,\n\t\t86, 132, 130, 121, 127, 156, 139, 117, 255, 24, 111, 45, 233,\n\t\t151, 182, 130, 183, 216, 39, 238, 161, 85, 78, 94, 185, 97,\n\t\t79, 171, 41, 35, 168, 126, 148, 249, 52, 118, 57, 12, 229,\n\t\t252, 30, 201, 14, 233, 120, 43, 103, 51, 74, 141, 177, 27,\n\t\t131, 108, 217, 209, 230, 31, 93, 116, 164, 120, 51, 145, 119,\n\t\t40, 136, 228, 66, 77, 38, 31, 221, 164, 221, 49, 132, 93,\n\t\t67, 173, 162, 70, 103, 92, 134, 9, 52, 213, 5, 65, 113, 167,\n\t\t7, 231, 175, 25, 60, 120, 221, 232, 224, 227, 251, 140, 217,\n\t\t224, 210, 212, 117, 47, 107, 15, 158, 69, 72, 112, 173, 16,\n\t\t55, 234, 113, 247, 206, 141, 76, 181, 10, 194, 6, 231, 25,\n\t\t254, 188, 120, 133, 145, 3, 131, 145, 173, 74, 120, 71, 113,\n\t\t10, 98, 152, 34, 133, 23, 78, 78, 145, 0, 228, 112, 56, 115,\n\t\t45, 16, 198, 133, 134, 184, 75, 109, 160, 128, 197, 4, 45,\n\t\t196, 233, 93, 3, 38, 144, 138, 31, 34, 48, 83, 4, 30, 41,\n\t\t219, 68, 129, 34, 76, 233, 5, 94, 193, 195, 105, 40, 245,\n\t\t24, 24, 39, 97, 191, 57, 163, 29, 208, 186, 0, 240, 26, 172,\n\t\t28, 74, 141, 55, 168, 206, 92, 141, 68, 32, 249, 75, 221,\n\t\t41, 18, 172, 94, 164, 24, 240, 37, 40, 221, 4, 4, 198, 163,\n\t\t114, 48, 73, 23, 197, 170, 68, 108, 26, 236, 90, 30, 129,\n\t\t173, 147, 82, 241, 218, 205, 27, 107, 106, 59, 99, 3, 131,\n\t\t81, 243, 65, 115, 79, 81, 225, 142, 176, 35, 192, 6, 235,\n\t\t11, 199, 254, 78, 43, 245, 22, 209, 140, 253, 68, 81, 233,\n\t\t40, 109, 94, 244, 36, 27, 99, 158, 163, 229, 231, 184, 76,\n\t\t73, 178, 160, 55, 49, 97, 75, 109, 23, 246, 82, 212, 96, 136,\n\t\t60, 34, 85, 147, 134, 75, 231, 2, 77, 123, 21, 136, 188, 233,\n\t\t243, 161, 42, 50, 33, 70, 176, 123, 183, 32, 38, 33, 178,\n\t\t234, 131, 15, 240, 204, 254, 80, 174, 124, 160, 44, 255, 208,\n\t\t29, 43, 185, 190, 87, 246, 255, 168, 37, 65, 167, 152, 178,\n\t\t40, 53, 114, 40, 48, 181, 121, 234, 142, 136, 79, 13, 14,\n\t\t204, 203, 11, 12, 86, 190, 238, 156, 239, 51, 243, 22, 136,\n\t\t81, 124, 104, 4, 190, 70, 138, 111, 221, 208, 218, 26, 120,\n\t\t255, 232, 104, 255, 38, 110, 69, 235, 124, 41, 81, 171, 7,\n\t\t2, 9, 214, 130, 142, 121, 185, 132, 41, 195, 59, 138, 99,\n\t\t172, 90, 175, 188, 0, 157, 174, 122, 238, 154, 40, 227, 188,\n\t\t144, 80, 91, 152, 62, 118, 194, 237, 140, 188, 245, 21, 24,\n\t\t6, 215, 229, 227, 171, 189, 24, 178, 93, 126, 231, 81, 4,\n\t\t118, 148, 44, 216, 145, 137, 198, 181, 7, 54, 201, 185, 12,\n\t\t194, 149, 85, 25, 183, 99, 43, 245, 161, 161, 182, 144, 121,\n\t\t198, 168, 53, 9, 45, 246, 22, 247, 164, 226, 14, 19, 173,\n\t\t120, 199, 240, 148, 159, 197, 198, 144, 106, 173, 23, 33,\n\t\t126, 224, 119, 58, 240, 51, 238, 227, 150, 124, 108, 104,\n\t\t220, 3, 198, 170, 221, 208, 136, 145, 219, 139, 2, 112, 29,\n\t\t32, 81, 64, 219, 66, 127, 243, 78, 18, 193, 147, 87, 148,\n\t\t217, 210, 145, 145, 217, 218, 158, 145, 174, 82, 127, 72,\n\t\t154, 16, 27, 91, 149, 217, 225, 239, 40, 208, 130, 14, 185,\n\t\t222, 18, 60, 203, 209, 87, 6, 92, 129, 174, 144, 249, 238,\n\t\t159, 190, 147, 75, 27, 237, 195, 78, 11, 217, 104, 116, 93,\n\t\t220, 77, 110, 14, 137, 77, 168, 247, 167, 228, 53, 161, 19,\n\t\t132, 145, 201, 2, 99, 252, 234, 4, 14, 125, 216, 122, 165,\n\t\t12, 64, 0, 177, 34, 172, 176, 254, 77, 212, 158, 117, 206,\n\t\t217, 16, 41, 6, 109, 132, 28, 17, 157, 97, 192, 97, 152, 146,\n\t\t207, 252, 112, 78, 233, 34, 30, 229, 144, 35, 106, 60, 2,\n\t\t40, 130, 254, 62, 86, 147, 105, 52, 251, 149, 134, 229, 63,\n\t\t226, 194, 19, 85, 178, 207, 171, 96, 96, 86, 4, 200, 4, 221,\n\t\t133, 156, 148, 52, 160, 19, 243, 118, 47, 239, 118, 213, 122,\n\t\t225, 78, 181, 198, 223, 21, 228, 68, 58, 100, 202, 194, 233,\n\t\t69, 71, 128, 165, 115, 21, 111, 229, 74, 158, 179, 44, 198,\n\t\t191, 212, 79, 180, 217, 50, 123, 9, 233, 1, 3, 186, 27, 247,\n\t\t238, 179, 135, 204, 155, 193, 31, 67, 203, 57, 39, 57, 135,\n\t\t111, 222, 65, 255, 116, 155, 51, 188, 202, 237, 182, 143,\n\t\t63, 209, 30, 0, 149, 253, 72, 165, 172, 92, 50, 151, 61, 2,\n\t\t177, 186, 115, 215, 14, 241, 20, 56, 157, 135, 135, 228, 196,\n\t\t186, 6, 140, 108, 245, 231, 163, 71, 175, 115, 145, 34, 41,\n\t\t11, 148, 6, 82, 155, 240, 139, 164, 18, 94, 214, 173, 23,\n\t\t3, 236, 25, 229, 187, 158, 79, 99, 151, 19, 79, 157, 134,\n\t\t96, 44, 58, 54, 78, 137, 107, 149, 192, 60, 133, 246, 27,\n\t\t21, 49, 70, 79, 46, 8, 65, 180, 246, 58, 243, 221, 168, 98,\n\t\t186, 43, 15, 243, 33, 86, 84, 197, 198, 176, 44, 64, 164,\n\t\t184, 70, 236, 140, 85, 163, 189, 167, 17, 6, 26, 237, 176,\n\t\t119, 228, 142, 133, 170, 196, 137, 10, 30, 253, 62, 102, 28,\n\t\t50, 231, 19, 115, 158, 25, 131, 71, 68, 80, 171, 144, 28,\n\t\t150, 236, 254, 6, 107, 146, 32, 210, 16, 14, 155, 210, 241,\n\t\t236, 243, 54, 87, 65, 163, 105, 236, 17, 170, 17, 141, 31,\n\t\t215, 18, 61, 47, 5, 48, 139, 200, 59, 5, 146, 13, 59, 149,\n\t\t69, 47, 134, 60, 168, 117, 10, 109, 120, 16, 227, 48, 219,\n\t\t225, 216, 101, 179, 57, 231, 153, 117, 156, 155, 52, 98, 247,\n\t\t187, 167, 158, 224, 205, 191, 33, 6, 216, 144, 114, 158, 133,\n\t\t102, 194, 119, 215, 142, 194, 80, 193, 154, 101, 248, 166,\n\t\t31, 78, 12, 80, 85, 188, 231, 247, 77, 240, 70, 112, 94, 7,\n\t\t192, 17, 85, 234, 196, 112, 127, 247, 116, 52, 150, 96, 227,\n\t\t60, 50, 167, 117, 198, 190, 29, 4, 254, 170, 117, 208, 172,\n\t\t9, 104, 213, 109, 95, 42, 77, 1, 140, 188, 107, 247, 184,\n\t\t178, 11, 74, 169, 44, 175, 28, 198, 32, 156, 101, 56, 191,\n\t\t59, 117, 50, 31, 210, 46, 197, 233, 18, 92, 38, 139, 143,\n\t\t102, 212, 86, 77, 197, 39, 167, 41, 200, 132, 219, 181, 147,\n\t\t72, 255, 16, 127, 245, 194, 176, 196, 104, 87, 173, 44, 64,\n\t\t15, 100, 60, 145, 98, 94, 127, 147, 174, 161, 48, 106, 186,\n\t\t177, 11, 203, 127, 193, 133, 155, 188, 176, 129, 192, 2, 131,\n\t\t92, 239, 172, 147, 7, 236, 231, 162, 35, 238, 71, 85, 126,\n\t\t82, 225, 77, 229, 68, 63, 209, 67, 58, 249, 229, 219, 223,\n\t\t49, 253, 58, 30, 105, 56, 100, 97, 3, 152, 55, 127, 19, 138,\n\t\t123, 53, 0, 12, 44, 129, 175, 37, 57, 117, 18, 20, 192, 25,\n\t\t23, 100, 155, 27, 39, 40, 95, 159, 105, 245, 245, 255, 160,\n\t\t199, 252, 91, 248, 27, 227, 123, 174, 242, 45, 168, 90, 40,\n\t\t39, 233, 237, 121, 72, 243, 25, 0, 40, 98, 36, 84, 213, 164,\n\t\t183, 179, 60, 144, 133, 246, 225, 233, 127, 188, 178, 50,\n\t\t86, 10, 156, 26, 14, 1, 157, 236, 252, 29, 53, 46, 237, 28,\n\t\t59, 165, 26, 219, 52, 105, 242, 204, 220, 228, 36, 122, 159,\n\t\t248, 76, 124, 229, 28, 54, 251, 92, 31, 93, 237, 11, 126,\n\t\t129, 227, 186, 179, 93, 175, 4, 224, 80, 190, 243, 226, 239,\n\t\t168, 247, 149, 138, 247, 72, 190, 119, 174, 120, 189, 48,\n\t\t37, 48, 226, 215, 235, 136, 222, 241, 0, 120, 35, 1, 78, 196,\n\t\t221, 70, 180, 146, 105, 74, 246, 45, 180, 144, 173, 223, 188,\n\t\t43, 89, 131, 109, 127, 5, 148, 145, 70, 79, 250, 20, 64, 148,\n\t\t176, 241, 99, 180, 232, 156, 40, 148, 176, 8, 11, 129, 166,\n\t\t40, 20, 58, 0, 60, 33, 17, 233, 212, 33, 235, 140, 12, 49,\n\t\t4, 102, 25, 40, 3, 203, 225, 54, 117, 61, 101, 66, 230, 64,\n\t\t9, 43, 103, 18, 1, 4, 69, 67, 90, 129, 55, 42, 34, 146, 23,\n\t\t165, 26, 0, 93, 134, 56, 99, 189, 68, 66, 250, 174, 136, 188,\n\t\t218, 13, 1, 4, 156, 200, 107, 4, 176, 187, 16, 145, 201, 90,\n\t\t88, 17, 4, 148, 137, 77, 85, 113, 190, 24, 219, 58, 58, 60,\n\t\t119, 21, 174, 28, 245, 206, 251, 8, 183, 28, 150, 236, 117,\n\t\t95, 144, 12, 145, 173, 26, 92, 63, 172, 81, 52, 162, 56, 32,\n\t\t34, 194, 210, 2, 121, 181, 12, 227, 106, 23, 154, 19, 51,\n\t\t54, 136, 66, 109, 99, 82, 242, 179, 174, 117, 105, 126, 168,\n\t\t18, 33, 10, 87, 159, 200, 86, 221, 238, 226, 116, 147, 227,\n\t\t105, 203, 81, 178, 180, 69, 184, 243, 236, 37, 73, 97, 159,\n\t\t24, 222, 240, 146, 22, 238, 19, 64, 19, 32, 50, 4, 49, 1,\n\t\t69, 201, 97, 169, 195, 189, 44, 93, 91, 39, 143, 80, 61, 174,\n\t\t209, 106, 118, 22, 241, 122, 50, 10, 119, 212, 110, 239, 118,\n\t\t141, 93, 131, 226, 200, 79, 155, 34, 69, 41, 77, 184, 165,\n\t\t123, 218, 204, 206, 152, 237, 18, 49, 208, 68, 171, 92, 192,\n\t\t36, 110, 112, 164, 6, 146, 211, 57, 40, 7, 177, 25, 88, 19,\n\t\t14, 141, 233, 100, 113, 170, 163, 65, 227, 7, 106, 39, 84,\n\t\t2, 200, 233, 14, 27, 151, 119, 245, 61, 121, 48, 69, 148,\n\t\t54, 112, 29, 105, 40, 182, 70, 239, 98, 49, 61, 17, 227, 211,\n\t\t71, 169, 56, 138, 216, 132, 119, 224, 3, 24, 97, 148, 68,\n\t\t233, 163, 83, 44, 180, 176, 92, 122, 13, 216, 42, 44, 226,\n\t\t87, 31, 62, 20, 103, 238, 91, 67, 168, 9, 73, 55, 253, 254,\n\t\t174, 189, 104, 71, 156, 75, 59, 116, 190, 63, 129, 172, 201,\n\t\t90, 236, 108, 187, 19, 128, 205, 255, 53, 115, 73, 235, 13,\n\t\t43, 59, 85, 157, 157, 8, 56, 143, 87, 118, 157, 36, 5, 127,\n\t\t112, 253, 224, 180, 153, 232, 208, 59, 109, 213, 11, 131,\n\t\t44, 201, 167, 236, 25, 135, 28, 15, 48, 236, 79, 133, 189,\n\t\t12, 139, 180, 156, 161, 44, 99, 68, 24, 43, 33, 173, 147,\n\t\t7, 36, 27, 247, 75, 108, 44, 217, 203, 174, 116, 11, 104,\n\t\t156, 27, 56, 42, 164, 71, 221, 167, 11, 7, 226, 193, 75, 149,\n\t\t179, 11, 10, 102, 231, 23, 204, 33, 111, 216, 127, 102, 192,\n\t\t119, 113, 6, 97, 167, 4, 173, 214, 96, 8, 219, 68, 52, 255,\n\t\t245, 198, 13, 203, 190, 192, 110, 239, 138, 64, 142, 144,\n\t\t181, 37, 100, 75, 39, 37, 86, 192, 70, 255, 245, 134, 70,\n\t\t228, 194, 253, 90, 171, 135, 61, 252, 148, 235, 23, 28, 215,\n\t\t180, 73, 153, 98, 183, 149, 180, 132, 56, 33, 135, 191, 163,\n\t\t106, 5, 249, 56, 104, 14, 246, 188, 167, 93, 152, 75, 10,\n\t\t20, 108, 220, 0, 31, 217, 161, 87, 192, 90, 164, 66, 72, 7,\n\t\t181, 85, 197, 152, 216, 12, 144, 231, 2, 96, 249, 156, 147,\n\t\t137, 71, 191, 187, 22, 246, 111, 128, 205, 223, 161, 51, 128,\n\t\t223, 36, 213, 81, 132, 126, 228, 2, 55, 197, 5, 237, 51, 216,\n\t\t16, 252, 73, 134, 26, 157, 149, 176, 22, 192, 32, 58, 217,\n\t\t241, 17, 152, 118, 126, 156, 102, 221, 221, 173, 136, 56,\n\t\t108, 14, 156, 33, 24, 185, 62, 52, 183, 16, 72, 196, 144,\n\t\t213, 48, 58, 230, 95, 167, 193, 197, 130, 53, 233, 218, 53,\n\t\t103, 99, 109, 232, 155, 5, 164, 187, 87, 252, 28, 225, 165,\n\t\t63, 37, 68, 65, 47, 164, 35, 79, 241, 129, 245, 134, 173,\n\t\t152, 51, 188, 199, 187, 211, 139, 73, 192, 46, 224, 181, 104,\n\t\t170, 68, 219, 212, 67, 131, 105, 45, 18, 107, 173, 122, 164,\n\t\t8, 94, 205, 130, 215, 224, 162, 10, 153, 204, 105, 108, 167,\n\t\t9, 127, 221, 65, 61, 176, 102, 222, 252, 62, 113, 41, 156,\n\t\t228, 9, 41, 151, 146, 242, 185, 103, 16, 85, 108, 251, 244,\n\t\t127, 207, 176, 103, 126, 233, 163, 78, 242, 53, 37, 53, 20,\n\t\t170, 71, 245, 184, 199, 26, 209, 175, 129, 100, 50, 157, 162,\n\t\t175, 32, 75, 157, 57, 212, 167, 133, 100, 228, 49, 86, 117,\n\t\t7, 25, 55, 122, 125, 48, 244, 55, 211, 33, 205, 93, 103, 13,\n\t\t100, 110, 147, 219, 226, 152, 173, 9, 133, 183, 205, 127,\n\t\t34, 150, 124, 170, 0, 0, 64, 255, 191, 49, 173, 189, 188,\n\t\t3, 34, 120, 118, 219, 55, 97, 196, 14, 85, 1, 212, 88, 134,\n\t\t254, 145, 148, 250, 156, 79, 33, 179, 57, 104, 39, 96, 53,\n\t\t241, 87, 127, 11, 189, 118, 26, 204, 189, 88, 245, 131, 11,\n\t\t97, 29, 22, 216, 240, 14, 136, 9, 220, 199, 211, 220, 247,\n\t\t134, 24, 149, 111, 51, 243, 115, 138, 4, 66, 169, 62, 29,\n\t\t74, 217, 81, 150, 111, 233, 34, 248, 255, 134, 171, 111, 170,\n\t\t1, 85, 4, 28, 41, 44, 225, 85, 194, 250, 235, 70, 100, 126,\n\t\t136, 15, 193, 86, 126, 0, 180, 250, 66, 105, 95, 47, 173,\n\t\t188, 40, 187, 31, 62, 134, 0, 84, 53, 62, 73, 141, 222, 57,\n\t\t154, 219, 227, 235, 24, 58, 116, 200, 195, 219, 111, 219,\n\t\t136, 45, 113, 20, 45, 43, 211, 213, 80, 147, 179, 193, 72,\n\t\t2, 100, 99, 197, 136, 68, 90, 175, 126, 235, 245, 100, 152,\n\t\t223, 105, 66, 151, 106, 129, 7, 42, 99, 156, 181, 240, 183,\n\t\t49, 9, 29, 17, 210, 78, 5, 151, 254, 247, 5, 169, 67, 137,\n\t\t224, 163, 49, 80, 167, 22, 96, 126, 228, 54, 23, 253, 89,\n\t\t33, 245, 45, 138, 40, 35, 13, 129, 36, 37, 168, 46, 117, 236,\n\t\t84, 198, 178, 86, 214, 6, 12, 169, 122, 124, 156, 46, 21,\n\t\t144, 208, 225, 95, 231, 191, 234, 166, 219, 58, 25, 194, 253,\n\t\t63, 36, 10, 67, 243, 118, 169, 95, 104, 26, 103, 3, 192, 30,\n\t\t32, 85, 63, 87, 129, 137, 253, 201, 190, 81, 239, 149, 109,\n\t\t57, 229, 177, 165, 236, 186, 131, 248, 38, 153, 58, 146, 167,\n\t\t164, 204, 44, 154, 156, 9, 75, 1, 98, 55, 41, 221, 245, 215,\n\t\t244, 4, 84, 177, 56, 3, 228, 98, 182, 211, 177, 181, 209,\n\t\t7, 187, 68, 219, 225, 75, 29, 117, 117, 81, 238, 135, 156,\n\t\t60, 50, 204, 94, 65, 174, 199, 183, 218, 103, 127, 190, 125,\n\t\t18, 231, 85, 170, 243, 58, 220, 15, 201, 112, 206, 111, 125,\n\t\t251, 23, 66, 232, 143, 54, 64, 229, 67, 77, 200, 222, 215,\n\t\t219, 113, 60, 237, 246, 245, 185, 215, 0, 49, 200, 107, 253,\n\t\t245, 248, 100, 216, 108, 124, 205, 155, 235, 50, 151, 199,\n\t\t22, 190, 32, 102, 69, 6, 133, 212, 135, 132, 204, 80, 41,\n\t\t14, 157, 31, 248, 106, 3, 141, 55, 207, 71, 177, 43, 17, 154,\n\t\t48, 85, 136, 101, 115, 207, 188, 142, 142, 5, 142, 72, 253,\n\t\t44, 95, 241, 87, 13, 14, 123, 174, 115, 150, 31, 203, 200,\n\t\t67, 43, 63, 78, 122, 169, 179, 161, 187, 69, 146, 177, 38,\n\t\t64, 222, 238, 134, 204, 176, 90, 219, 252, 46, 135, 121, 136,\n\t\t193, 91, 60, 241, 235, 101, 22, 240, 60, 7, 77, 224, 201,\n\t\t193, 1, 46, 163, 24, 91, 236, 113, 233, 9, 52, 155, 46, 209,\n\t\t207, 61, 232, 113, 249, 205, 196, 50, 30, 183, 177, 104, 12,\n\t\t141, 217, 235, 139, 99, 83, 161, 225, 150, 78, 169, 248, 180,\n\t\t227, 1, 58, 62, 253, 216, 75, 149, 99, 165, 77, 79, 122, 18,\n\t\t178, 144, 133, 41, 56, 150, 49, 94, 140, 30, 220, 23, 145,\n\t\t65, 236, 169, 138, 172, 35, 93, 43, 89, 105, 161, 73, 15,\n\t\t239, 67, 127, 90, 149, 177, 234, 147, 84, 193, 116, 116, 80,\n\t\t182, 129, 185, 246, 27, 144, 242, 221, 115, 199, 247, 108,\n\t\t124, 129, 113, 210, 197, 155, 176, 206, 77, 63, 176, 162,\n\t\t98, 153, 57, 49, 115, 35, 56, 119, 144, 63, 75, 48, 107, 150,\n\t\t224, 192, 65, 243, 182, 35, 160, 63, 54, 226, 22, 26, 214,\n\t\t171, 135, 23, 219, 28, 87, 162, 74, 211, 106, 158, 200, 165,\n\t\t125, 87, 24, 149, 227, 49, 46, 179, 212, 250, 25, 134, 64,\n\t\t57, 26, 148, 171, 199, 65, 243, 133, 164, 149, 185, 241, 204,\n\t\t140, 70, 165, 209, 81, 95, 127, 68, 219, 190, 243, 73, 201,\n\t\t210, 176, 234, 86, 254, 222, 130, 121, 208, 228, 49, 213,\n\t\t76, 199, 14, 168, 134, 132, 82, 201, 177, 250, 13, 224, 104,\n\t\t100, 74, 108, 142, 168, 229, 41, 229, 196, 181, 213, 200,\n\t\t196, 162, 68, 149, 57, 51, 74, 165, 92, 254, 55, 13, 197,\n\t\t149, 20, 228, 114, 209, 32, 22, 82, 27, 58, 83, 105, 139,\n\t\t131, 179, 10, 68, 186, 188, 211, 94, 129, 13, 62, 255, 124,\n\t\t166, 60, 184, 34, 152, 113, 82, 139, 58, 105, 188, 5, 122,\n\t\t231, 95, 53, 94, 186, 184, 108, 47, 5, 8, 127, 73, 133, 163,\n\t\t30, 2, 143, 25, 99, 143, 16, 205, 40, 198, 236, 247, 172,\n\t\t25, 101, 47, 183, 163, 168, 216, 77, 60, 103, 221, 136, 152,\n\t\t4, 77, 36, 24, 17, 60, 237, 189, 224, 248, 75, 240, 88, 222,\n\t\t88, 10, 210, 121, 39, 63, 71, 237, 42, 22, 106, 255, 149,\n\t\t204, 174, 63, 73, 116, 125, 135, 46, 241, 203, 202, 158, 158,\n\t\t29, 235, 103, 205, 78, 95, 55, 238, 225, 131, 146, 210, 155,\n\t\t55, 112, 111, 230, 83, 22, 152, 25, 119, 197, 117, 120, 223,\n\t\t246, 150, 14, 199, 23, 98, 220, 191, 240, 243, 85, 143, 15,\n\t\t171, 98, 153, 45, 203, 40, 108, 83, 182, 137, 172, 28, 81,\n\t\t95, 219, 17, 126, 192, 69, 254, 66, 23, 47, 59, 192, 144,\n\t\t5, 179, 143, 59, 205, 119, 72, 154, 99, 152, 168, 254, 34,\n\t\t7, 76, 65, 254, 170, 161, 203, 213, 231, 148, 157, 177, 213,\n\t\t248, 0, 46, 188, 26, 14, 126, 249, 111, 89, 250, 242, 116,\n\t\t240, 231, 87, 15, 230, 217, 239, 250, 243, 12, 100, 249, 153,\n\t\t4, 39, 187, 159, 65, 253, 21, 104, 188, 92, 110, 71, 220,\n\t\t204, 58, 153, 60, 50, 23, 67, 151, 250, 124, 162, 97, 186,\n\t\t171, 183, 23, 106, 184, 139, 219, 130, 90, 162, 25, 36, 104,\n\t\t78, 156, 108, 160, 82, 161, 93, 134, 236, 80, 210, 184, 117,\n\t\t149, 102, 214, 249, 110, 70, 196, 232, 52, 174, 45, 41, 58,\n\t\t0, 252, 212, 217, 56, 198, 27, 110, 89, 115, 203, 229, 55,\n\t\t167, 24, 138, 168, 136, 226, 44, 228, 10, 198, 169, 55, 151,\n\t\t91, 166, 150, 113, 222, 48, 176, 205, 198, 214, 87, 255, 188,\n\t\t253, 192, 113, 113, 49, 24, 157, 93, 53, 153, 105, 42, 206,\n\t\t135, 183, 255, 252, 61, 213, 8, 34, 188, 177, 205, 39, 48,\n\t\t75, 202, 223, 103, 189, 159, 134, 41, 208, 162, 40, 40, 79,\n\t\t2, 230, 48, 166, 80, 129, 254, 172, 140, 78, 126, 145, 190,\n\t\t15, 223, 228, 142, 89, 129, 113, 239, 230, 131, 106, 222,\n\t\t238, 138, 233, 22, 226, 110, 187, 162, 190, 222, 34, 160,\n\t\t136, 221, 110, 11, 113, 191, 97, 145, 188, 235, 44, 249, 170,\n\t\t187, 154, 183, 188, 61, 115, 25, 223, 67, 61, 94, 247, 112,\n\t\t58, 102, 72, 88, 220, 138, 55, 9, 136, 157, 139, 111, 224,\n\t\t11, 87, 254, 157, 107, 79, 96, 74, 42, 156, 48, 148, 23, 141,\n\t\t157, 142, 136, 219, 3, 12, 221, 146, 239, 245, 77, 187, 148,\n\t\t234, 61, 201, 160, 117, 236, 60, 127, 247, 46, 1, 135, 191,\n\t\t96, 149, 115, 29, 243, 166, 236, 38, 115, 43, 99, 250, 231,\n\t\t29, 218, 143, 252, 93, 187, 121, 39, 8, 133, 215, 93, 124,\n\t\t76, 181, 45, 77, 107, 41, 228, 189, 220, 155, 48, 246, 166,\n\t\t15, 131, 49, 51, 132, 210, 99, 62, 254, 8, 178, 195, 203,\n\t\t181, 135, 145, 33, 66, 55, 77, 149, 10, 85, 222, 90, 84, 236,\n\t\t65, 232, 248, 232, 147, 206, 187, 108, 163, 156, 79, 70, 95,\n\t\t30, 90, 46, 97, 192, 217, 152, 176, 247, 140, 118, 238, 169,\n\t\t101, 197, 155, 255, 74, 29, 118, 151, 234, 231, 233, 41, 45,\n\t\t120, 64, 106, 112, 31, 46, 249, 96, 63, 111, 254, 238, 130,\n\t\t221, 243, 231, 255, 215, 57, 206, 106, 157, 22, 170, 219,\n\t\t27, 148, 134, 94, 253, 129, 162, 3, 80, 73, 168, 53, 81, 158,\n\t\t7, 18, 228, 97, 9, 105, 188, 60, 55, 15, 77, 247, 12, 202,\n\t\t65, 0, 52, 130, 102, 250, 25, 234, 53, 243, 41, 199, 148,\n\t\t8, 178, 215, 180, 115, 227, 106, 47, 89, 239, 227, 249, 154,\n\t\t122, 131, 31, 51, 102, 54, 193, 120, 108, 182, 88, 44, 173,\n\t\t93, 42, 227, 93, 139, 23, 39, 225, 175, 193, 129, 29, 215,\n\t\t215, 212, 60, 124, 151, 141, 254, 93, 19, 61, 216, 194, 138,\n\t\t211, 104, 244, 229, 22, 13, 150, 198, 167, 49, 183, 180, 249,\n\t\t50, 223, 73, 66, 134, 21, 229, 100, 224, 199, 74, 231, 210,\n\t\t179, 227, 195, 167, 101, 227, 15, 182, 154, 181, 80, 66, 232,\n\t\t180, 124, 250, 81, 201, 208, 133, 224, 51, 110, 125, 57, 169,\n\t\t132, 37, 199, 183, 232, 98, 75, 165, 88, 255, 195, 17, 234,\n\t\t78, 69, 108, 160, 228, 181, 208, 226, 21, 28, 227, 136, 224,\n\t\t234, 155, 85, 150, 34, 99, 89, 22, 46, 184, 145, 12, 236,\n\t\t183, 137, 84, 234, 144, 41, 103, 69, 162, 65, 209, 208, 216,\n\t\t138, 144, 214, 86, 85, 142, 200, 35, 217, 214, 210, 58, 164,\n\t\t18, 57, 191, 108, 25, 227, 93, 192, 20, 193, 73, 123, 247,\n\t\t73, 219, 2, 125, 90, 130, 91, 34, 45, 219, 188, 253, 58, 191,\n\t\t170, 145, 140, 239, 186, 41, 191, 39, 143, 51, 166, 61, 168,\n\t\t252, 233, 129, 41, 253, 219, 205, 51, 215, 181, 224, 141,\n\t\t70, 146, 98, 248, 194, 128, 11, 241, 3, 165, 179, 204, 67,\n\t\t243, 87, 116, 225, 141, 72, 4, 58, 126, 172, 52, 200, 137,\n\t\t126, 4, 221, 116, 222, 144, 88, 220, 230, 183, 30, 233, 16,\n\t\t141, 231, 251, 164, 43, 166, 118, 175, 153, 239, 185, 77,\n\t\t183, 177, 7, 36, 239, 129, 17, 38, 28, 10, 181, 188, 156,\n\t\t73, 133, 129, 25, 27, 241, 209, 87, 81, 24, 168, 89, 244,\n\t\t136, 85, 247, 16, 114, 50, 203, 54, 157, 118, 232, 133, 57,\n\t\t181, 242, 117, 71, 224, 17, 119, 157, 229, 46, 245, 174, 21,\n\t\t190, 104, 141, 155, 19, 226, 208, 214, 95, 213, 158, 23, 18,\n\t\t255, 107, 188, 198, 209, 229, 242, 170, 174, 158, 49, 38,\n\t\t151, 252, 21, 142, 150, 248, 3, 253, 228, 124, 182, 115, 10,\n\t\t249, 39, 247, 211, 148, 92, 27, 61, 33, 71, 109, 67, 213,\n\t\t163, 213, 143, 42, 167, 199, 145, 86, 130, 159, 254, 35, 21,\n\t\t94, 251, 91, 184, 254, 139, 162, 249, 243, 174, 103, 127,\n\t\t171, 156, 163, 23, 6, 188, 164, 68, 16, 49, 120, 28, 5, 195,\n\t\t159, 164, 240, 207, 105, 139, 37, 78, 237, 97, 70, 76, 55,\n\t\t234, 189, 72, 26, 82, 176, 73, 226, 230, 245, 188, 230, 225,\n\t\t21, 76, 38, 143, 171, 39, 3, 155, 86, 72, 136, 174, 168, 55,\n\t\t120, 55, 224, 69, 50, 62, 137, 135, 47, 91, 75, 166, 204,\n\t\t28, 220, 215, 36, 116, 162, 113, 241, 160, 245, 127, 135,\n\t\t84, 33, 73, 74, 66, 34, 147, 219, 191, 140, 103, 66, 112,\n\t\t90, 122, 40, 242, 180, 142, 244, 225, 137, 62, 145, 232, 24,\n\t\t114, 55, 51, 45, 72, 25, 39, 171, 226, 57, 76, 155, 134, 216,\n\t\t29, 16, 97, 79, 92, 133, 199, 113, 18, 44, 112, 10, 12, 59,\n\t\t100, 198, 79, 93, 187, 10, 129, 16, 134, 253, 200, 154, 89,\n\t\t32, 69, 249, 5, 116, 204, 126, 21, 50, 105, 137, 68, 192,\n\t\t233, 130, 60, 70, 148, 61, 85, 140, 165, 168, 146, 94, 172,\n\t\t29, 235, 14, 61, 113, 120, 84, 68, 12, 152, 21, 131, 68, 188,\n\t\t81, 118, 145, 76, 240, 231, 63, 186, 172, 44, 6, 251, 23,\n\t\t149, 149, 59, 248, 203, 255, 76, 125, 151, 246, 14, 84, 183,\n\t\t28, 78, 182, 154, 43, 138, 35, 75, 39, 147, 56, 250, 176,\n\t\t191, 45, 229, 9, 41, 147, 154, 147, 172, 150, 247, 164, 247,\n\t\t67, 77, 30, 133, 78, 166, 242, 218, 104, 83, 69, 173, 201,\n\t\t233, 37, 107, 152, 233, 215, 84, 59, 55, 181, 202, 93, 214,\n\t\t49, 15, 161, 138, 162, 141, 200, 23, 211, 132, 27, 35, 213,\n\t\t188, 52, 160, 217, 167, 171, 181, 235, 22, 249, 39, 19, 253,\n\t\t253, 41, 221, 99, 208, 200, 38, 20, 8, 68, 11, 253, 117, 36,\n\t\t101, 128, 224, 146, 4, 173, 214, 29, 35, 88, 123, 97, 88,\n\t\t17, 113, 240, 118, 197, 105, 119, 178, 133, 92, 149, 5, 26,\n\t\t151, 55, 64, 61, 141, 186, 239, 199, 79, 6, 84, 120, 58, 37,\n\t\t165, 25, 164, 166, 78, 77, 77, 153, 250, 53, 213, 224, 122,\n\t\t17, 197, 228, 119, 76, 11, 23, 98, 61, 183, 91, 91, 97, 16,\n\t\t0, 187, 162, 168, 52, 73, 245, 156, 9, 202, 235, 94, 99, 176,\n\t\t99, 185, 252, 51, 90, 79, 84, 138, 215, 182, 237, 72, 113,\n\t\t59, 48, 119, 204, 140, 158, 8, 20, 132, 210, 55, 43, 151,\n\t\t151, 26, 184, 125, 59, 144, 138, 159, 97, 188, 180, 239, 228,\n\t\t170, 106, 19, 80, 47, 99, 13, 118, 226, 189, 224, 224, 120,\n\t\t214, 99, 173, 100, 210, 195, 8, 136, 161, 143, 114, 175, 249,\n\t\t188, 178, 30, 82, 40, 22, 161, 107, 245, 8, 207, 66, 25, 0,\n\t\t251, 198, 46, 59, 12, 255, 187, 116, 60, 101, 48, 134, 12,\n\t\t1, 85, 106, 180, 139, 214, 135, 106, 4, 233, 84, 0, 105, 6,\n\t\t88, 182, 185, 197, 120, 207, 111, 29, 194, 236, 89, 43, 130,\n\t\t224, 182, 147, 182, 194, 63, 23, 137, 222, 168, 154, 3, 56,\n\t\t188, 30, 0, 187, 246, 22, 184, 101, 59, 209, 118, 45, 167,\n\t\t110, 41, 0, 200, 208, 187, 222, 188, 249, 63, 191, 126, 175,\n\t\t235, 125, 55, 16, 107, 82, 235, 111, 79, 251, 78, 243, 151,\n\t\t26, 134, 167, 96, 25, 213, 4, 175, 92, 86, 104, 206, 164,\n\t\t223, 244, 73, 64, 92, 235, 14, 248, 44, 160, 2, 48, 189, 81,\n\t\t148, 111, 243, 218, 139, 88, 219, 124, 149, 9, 92, 27, 7,\n\t\t208, 121, 186, 252, 93, 0, 58, 158, 170, 59, 234, 116, 201,\n\t\t146, 84, 232, 3, 65, 153, 186, 125, 243, 59, 68, 226, 11,\n\t\t145, 126, 235, 124, 143, 185, 246, 119, 191, 45, 144, 196,\n\t\t101, 53, 232, 208, 239, 26, 204, 84, 104, 47, 18, 102, 218,\n\t\t51, 106, 54, 19, 211, 51, 5, 43, 82, 163, 57, 171, 223, 6,\n\t\t250, 159, 73, 43, 251, 5, 195, 213, 47, 105, 239, 232, 242,\n\t\t240, 203, 145, 72, 235, 101, 209, 219, 203, 222, 241, 36,\n\t\t176, 32, 30, 28, 62, 248, 230, 165, 196, 52, 69, 26, 95, 156,\n\t\t238, 126, 124, 152, 236, 118, 37, 169, 234, 114, 239, 65,\n\t\t187, 81, 50, 154, 174, 96, 250, 45, 251, 154, 243, 226, 23,\n\t\t203, 75, 95, 155, 13, 5, 172, 171, 233, 164, 79, 61, 110,\n\t\t161, 193, 252, 180, 144, 196, 246, 18, 76, 234, 117, 176,\n\t\t231, 231, 135, 247, 51, 75, 88, 67, 164, 50, 103, 135, 248,\n\t\t172, 184, 108, 7, 27, 235, 143, 44, 136, 50, 229, 64, 160,\n\t\t37, 52, 116, 24, 98, 79, 89, 78, 12, 113, 85, 26, 138, 186,\n\t\t110, 31, 237, 137, 29, 213, 106, 144, 157, 78, 185, 113, 51,\n\t\t37, 36, 96, 53, 177, 45, 140, 51, 169, 125, 191, 195, 85,\n\t\t167, 166, 130, 15, 76, 155, 236, 39, 86, 245, 82, 169, 71,\n\t\t137, 79, 159, 143, 162, 14, 83, 88, 101, 97, 3, 200, 89, 113,\n\t\t118, 160, 11, 167, 176, 238, 199, 252, 39, 2, 24, 23, 24,\n\t\t139, 113, 159, 227, 238, 163, 167, 220, 74, 102, 168, 128,\n\t\t152, 67, 47, 81, 32, 43, 249, 113, 244, 101, 36, 81, 110,\n\t\t250, 98, 104, 105, 38, 67, 87, 74, 168, 130, 58, 190, 86,\n\t\t17, 228, 19, 33, 35, 14, 41, 178, 142, 131, 4, 224, 80, 71,\n\t\t56, 78, 23, 168, 33, 217, 42, 135, 234, 206, 195, 231, 233,\n\t\t126, 72, 76, 138, 32, 152, 213, 118, 122, 151, 74, 134, 148,\n\t\t54, 195, 38, 69, 70, 165, 163, 24, 118, 58, 152, 3, 6, 83,\n\t\t99, 253, 145, 32, 220, 126, 236, 40, 200, 113, 248, 218, 106,\n\t\t216, 113, 177, 29, 141, 175, 175, 139, 130, 124, 4, 51, 101,\n\t\t105, 236, 51, 56, 178, 189, 81, 175, 233, 104, 39, 208, 62,\n\t\t131, 211, 44, 52, 142, 162, 68, 69, 217, 234, 251, 251, 113,\n\t\t34, 153, 92, 242, 82, 66, 185, 254, 172, 193, 177, 112, 43,\n\t\t73, 65, 188, 76, 170, 64, 28, 192, 225, 206, 49, 206, 150,\n\t\t111, 127, 147, 215, 136, 174, 60, 224, 108, 56, 17, 192, 207,\n\t\t61, 224, 59, 105, 129, 106, 109, 252, 103, 53, 66, 87, 173,\n\t\t86, 215, 104, 109, 125, 125, 54, 125, 63, 43, 222, 78, 246,\n\t\t95, 223, 167, 188, 12, 94, 224, 52, 209, 222, 121, 143, 126,\n\t\t210, 207, 63, 8, 167, 91, 186, 74, 39, 77, 201, 52, 128, 23,\n\t\t214, 3, 238, 241, 230, 96, 60, 144, 63, 192, 62, 79, 206,\n\t\t228, 223, 152, 184, 86, 178, 104, 18, 110, 101, 56, 173, 111,\n\t\t51, 91, 255, 33, 242, 14, 133, 178, 118, 226, 139, 40, 1,\n\t\t233, 179, 126, 118, 119, 76, 246, 180, 164, 73, 37, 195, 225,\n\t\t174, 164, 80, 223, 128, 115, 39, 1, 29, 12, 207, 10, 250,\n\t\t99, 27, 113, 131, 166, 87, 145, 124, 136, 50, 170, 136, 9,\n\t\t9, 20, 163, 44, 136, 94, 27, 239, 138, 66, 123, 101, 14, 35,\n\t\t234, 208, 195, 217, 196, 231, 209, 10, 26, 140, 0, 248, 253,\n\t\t47, 47, 219, 187, 84, 178, 116, 96, 83, 90, 66, 158, 53, 47,\n\t\t154, 197, 185, 88, 217, 1, 50, 197, 153, 70, 135, 88, 215,\n\t\t63, 216, 207, 169, 21, 169, 130, 239, 120, 131, 75, 251, 209,\n\t\t171, 254, 234, 234, 233, 195, 99, 193, 19, 210, 91, 98, 196,\n\t\t233, 231, 2, 29, 34, 119, 237, 37, 205, 216, 242, 46, 114,\n\t\t179, 104, 73, 87, 139, 179, 75, 68, 228, 131, 27, 147, 111,\n\t\t24, 224, 236, 236, 34, 183, 141, 107, 14, 202, 205, 227, 202,\n\t\t164, 120, 28, 101, 181, 70, 160, 86, 167, 112, 193, 253, 80,\n\t\t237, 149, 142, 20, 223, 195, 181, 228, 201, 240, 231, 111,\n\t\t147, 36, 142, 111, 252, 252, 22, 198, 164, 133, 132, 196,\n\t\t165, 182, 174, 123, 112, 29, 28, 168, 223, 223, 152, 42, 143,\n\t\t129, 33, 103, 207, 73, 221, 206, 250, 20, 112, 70, 238, 18,\n\t\t187, 74, 249, 164, 116, 98, 177, 200, 235, 204, 95, 183, 76,\n\t\t34, 148, 231, 212, 193, 146, 3, 192, 135, 34, 252, 32, 249,\n\t\t213, 137, 230, 128, 134, 242, 123, 221, 244, 152, 24, 100,\n\t\t1, 225, 76, 87, 101, 104, 77, 118, 230, 92, 98, 116, 206,\n\t\t44, 165, 85, 23, 166, 115, 19, 64, 126, 112, 4, 60, 236, 27,\n\t\t184, 17, 162, 203, 205, 155, 21, 91, 79, 93, 131, 255, 191,\n\t\t251, 131, 75, 163, 174, 86, 38, 75, 104, 136, 114, 112, 104,\n\t\t91, 220, 221, 107, 23, 127, 135, 157, 185, 254, 109, 121,\n\t\t210, 239, 76, 251, 255, 157, 125, 46, 180, 63, 95, 22, 243,\n\t\t199, 91, 133, 119, 15, 100, 145, 42, 54, 228, 94, 20, 166,\n\t\t170, 84, 120, 55, 23, 103, 239, 195, 253, 23, 127, 7, 77,\n\t\t242, 249, 230, 208, 223, 25, 118, 31, 226, 238, 92, 207, 187,\n\t\t114, 98, 49, 235, 247, 197, 235, 155, 102, 157, 189, 254,\n\t\t208, 46, 245, 98, 63, 237, 221, 63, 1, 153, 246, 118, 169,\n\t\t25, 118, 224, 103, 176, 26, 187, 189, 179, 97, 27, 166, 161,\n\t\t3, 179, 77, 19, 188, 8, 158, 137, 128, 123, 109, 159, 136,\n\t\t232, 118, 217, 0, 47, 62, 243, 184, 181, 20, 9, 191, 122,\n\t\t242, 195, 86, 34, 238, 237, 215, 28, 123, 244, 44, 138, 143,\n\t\t233, 211, 175, 169, 98, 54, 242, 220, 169, 247, 179, 73, 56,\n\t\t193, 21, 148, 18, 76, 93, 178, 175, 176, 254, 196, 42, 159,\n\t\t86, 42, 229, 242, 177, 164, 250, 163, 245, 137, 11, 7, 10,\n\t\t11, 51, 140, 245, 133, 86, 115, 226, 219, 66, 173, 42, 177,\n\t\t112, 73, 65, 226, 134, 181, 138, 196, 194, 250, 99, 245, 137,\n\t\t67, 203, 147, 234, 211, 35, 10, 19, 179, 210, 19, 255, 77,\n\t\t156, 86, 229, 133, 44, 84, 61, 178, 122, 67, 98, 253, 133,\n\t\t225, 105, 117, 96, 166, 163, 194, 71, 33, 81, 72, 21, 201,\n\t\t161, 158, 26, 141, 103, 121, 156, 8, 175, 33, 189, 97, 126,\n\t\t237, 190, 160, 44, 199, 161, 226, 168, 161, 128, 164, 86,\n\t\t123, 218, 199, 94, 255, 246, 89, 169, 228, 163, 234, 6, 29,\n\t\t191, 191, 200, 118, 244, 138, 52, 83, 229, 252, 47, 183, 195,\n\t\t15, 136, 24, 10, 31, 166, 253, 121, 123, 33, 93, 72, 126,\n\t\t131, 204, 158, 49, 50, 181, 130, 100, 60, 113, 97, 189, 139,\n\t\t71, 119, 4, 33, 146, 155, 179, 185, 189, 111, 107, 162, 137,\n\t\t164, 85, 139, 155, 10, 171, 86, 221, 178, 156, 150, 60, 3,\n\t\t171, 54, 116, 200, 149, 84, 89, 56, 13, 183, 179, 96, 234,\n\t\t108, 228, 116, 30, 162, 54, 66, 178, 52, 150, 153, 16, 8,\n\t\t144, 98, 70, 85, 68, 185, 29, 78, 42, 37, 14, 160, 80, 53,\n\t\t195, 17, 36, 246, 58, 223, 178, 127, 244, 24, 116, 253, 90,\n\t\t6, 60, 61, 60, 248, 20, 48, 206, 182, 192, 141, 66, 236, 136,\n\t\t162, 137, 103, 12, 100, 176, 170, 251, 218, 8, 117, 19, 70,\n\t\t10, 157, 224, 68, 235, 198, 0, 25, 32, 6, 9, 4, 102, 199,\n\t\t169, 30, 49, 207, 44, 104, 156, 50, 229, 250, 43, 89, 121,\n\t\t47, 142, 132, 44, 232, 103, 205, 159, 28, 219, 245, 247, 25,\n\t\t243, 40, 52, 223, 69, 200, 48, 88, 72, 24, 230, 94, 113, 83,\n\t\t19, 204, 61, 248, 26, 6, 45, 242, 72, 115, 40, 107, 2, 95,\n\t\t162, 51, 84, 139, 29, 98, 99, 61, 185, 114, 242, 210, 213,\n\t\t246, 176, 132, 219, 88, 169, 236, 174, 200, 101, 164, 55,\n\t\t134, 148, 70, 14, 19, 61, 115, 89, 247, 54, 69, 155, 233,\n\t\t61, 179, 107, 168, 77, 109, 255, 77, 125, 49, 217, 56, 39,\n\t\t143, 9, 39, 21, 156, 159, 184, 174, 44, 103, 175, 74, 89,\n\t\t254, 254, 142, 166, 201, 167, 6, 64, 203, 62, 145, 42, 122,\n\t\t102, 176, 71, 231, 224, 121, 7, 151, 26, 125, 195, 181, 95,\n\t\t170, 226, 145, 17, 154, 173, 13, 129, 101, 169, 174, 80, 46,\n\t\t57, 139, 27, 0, 179, 141, 193, 149, 139, 122, 62, 88, 103,\n\t\t228, 225, 19, 214, 124, 118, 232, 255, 79, 244, 160, 172,\n\t\t211, 201, 63, 254, 253, 142, 182, 159, 157, 248, 159, 217,\n\t\t215, 175, 135, 67, 62, 142, 166, 254, 16, 31, 138, 139, 56,\n\t\t186, 140, 126, 69, 171, 61, 73, 23, 70, 219, 156, 15, 222,\n\t\t187, 195, 151, 194, 107, 124, 90, 127, 218, 136, 120, 232,\n\t\t215, 39, 250, 34, 241, 65, 227, 201, 126, 63, 11, 186, 12,\n\t\t78, 235, 37, 254, 239, 20, 250, 253, 136, 206, 39, 125, 145,\n\t\t149, 157, 235, 10, 42, 70, 244, 165, 119, 26, 87, 120, 244,\n\t\t190, 232, 169, 94, 95, 246, 31, 246, 243, 92, 168, 126, 146,\n\t\t215, 60, 73, 94, 54, 8, 14, 103, 104, 67, 171, 47, 217, 162,\n\t\t237, 7, 241, 232, 226, 195, 27, 109, 57, 230, 130, 183, 243,\n\t\t10, 237, 17, 98, 191, 89, 131, 207, 41, 96, 217, 138, 203,\n\t\t150, 139, 48, 108, 117, 121, 37, 222, 144, 148, 172, 141,\n\t\t213, 23, 143, 157, 104, 179, 24, 104, 82, 167, 70, 70, 86,\n\t\t50, 56, 16, 14, 158, 180, 220, 105, 185, 153, 236, 86, 223,\n\t\t25, 53, 61, 106, 97, 65, 96, 146, 146, 145, 172, 76, 244,\n\t\t72, 241, 3, 255, 216, 55, 252, 185, 121, 108, 8, 1, 47, 130,\n\t\t33, 137, 69, 116, 253, 35, 167, 25, 233, 33, 185, 18, 215,\n\t\t180, 9, 60, 126, 161, 142, 90, 68, 181, 109, 66, 22, 33, 109,\n\t\t18, 216, 84, 152, 77, 135, 41, 194, 216, 138, 200, 78, 199,\n\t\t166, 195, 21, 225, 108, 18, 194, 84, 2, 97, 40, 205, 181,\n\t\t4, 239, 146, 187, 47, 96, 151, 249, 108, 198, 20, 220, 49,\n\t\t69, 176, 162, 179, 139, 194, 46, 202, 31, 9, 57, 53, 89, 169,\n\t\t129, 12, 200, 41, 251, 148, 187, 173, 83, 151, 214, 202, 156,\n\t\t46, 213, 229, 51, 18, 205, 196, 34, 34, 12, 89, 4, 151, 20,\n\t\t32, 47, 232, 157, 205, 120, 67, 122, 215, 232, 136, 112, 138,\n\t\t183, 12, 92, 26, 83, 95, 243, 61, 219, 62, 58, 239, 210, 150,\n\t\t95, 23, 167, 163, 37, 241, 83, 132, 129, 42, 71, 50, 16, 21,\n\t\t194, 243, 211, 191, 92, 96, 171, 240, 24, 8, 58, 64, 215,\n\t\t35, 9, 119, 238, 16, 88, 229, 94, 132, 188, 247, 63, 42, 205,\n\t\t238, 99, 225, 203, 171, 1, 228, 70, 136, 109, 157, 163, 169,\n\t\t126, 160, 246, 113, 125, 93, 223, 26, 207, 72, 212, 145, 182,\n\t\t45, 167, 174, 130, 137, 180, 3, 118, 175, 214, 173, 177, 6,\n\t\t228, 191, 166, 107, 144, 129, 205, 43, 227, 48, 50, 145, 84,\n\t\t236, 0, 88, 120, 128, 174, 97, 239, 120, 237, 168, 93, 212,\n\t\t196, 239, 182, 75, 191, 131, 126, 149, 38, 20, 54, 175, 73,\n\t\t100, 73, 165, 254, 194, 53, 182, 132, 64, 237, 67, 23, 226,\n\t\t107, 67, 191, 199, 2, 133, 19, 181, 227, 107, 187, 165, 161,\n\t\t145, 42, 190, 162, 245, 117, 209, 242, 183, 109, 48, 181,\n\t\t86, 172, 159, 123, 8, 95, 124, 250, 78, 227, 181, 59, 63,\n\t\t121, 206, 224, 223, 191, 114, 138, 200, 135, 0, 78, 117, 128,\n\t\t253, 133, 238, 251, 35, 15, 250, 149, 29, 207, 249, 245, 95,\n\t\t215, 26, 239, 30, 40, 198, 255, 127, 249, 250, 230, 86, 243,\n\t\t254, 21, 22, 90, 87, 23, 154, 244, 22, 76, 74, 87, 175, 178,\n\t\t21, 245, 23, 233, 187, 176, 245, 199, 125, 152, 154, 146,\n\t\t218, 226, 34, 143, 114, 114, 19, 220, 234, 214, 199, 162,\n\t\t28, 215, 97, 247, 46, 247, 59, 210, 202, 114, 223, 133, 212,\n\t\t26, 98, 199, 121, 228, 14, 210, 73, 226, 182, 228, 45, 234,\n\t\t76, 31, 154, 31, 165, 251, 178, 96, 139, 180, 52, 88, 9, 117,\n\t\t204, 35, 97, 51, 129, 33, 128, 72, 82, 19, 134, 10, 62, 142,\n\t\t17, 247, 33, 40, 126, 137, 242, 158, 172, 66, 226, 33, 224,\n\t\t3, 80, 44, 2, 79, 65, 18, 9, 2, 15, 208, 74, 18, 141, 41,\n\t\t147, 177, 103, 137, 211, 169, 101, 168, 142, 166, 163, 232,\n\t\t59, 73, 55, 239, 53, 30, 207, 98, 44, 106, 32, 3, 95, 218,\n\t\t176, 19, 71, 82, 201, 13, 106, 25, 79, 63, 66, 19, 119, 150,\n\t\t161, 12, 106, 126, 172, 145, 123, 45, 133, 77, 32, 233, 191,\n\t\t160, 221, 199, 33, 106, 227, 254, 36, 54, 105, 249, 174, 129,\n\t\t88, 180, 150, 176, 160, 12, 197, 11, 169, 27, 152, 140, 97,\n\t\t55, 154, 87, 63, 15, 90, 10, 189, 11, 184, 52, 136, 38, 29,\n\t\t209, 212, 91, 76, 7, 147, 22, 180, 20, 228, 108, 128, 192,\n\t\t225, 217, 108, 141, 192, 159, 130, 75, 119, 56, 241, 143,\n\t\t222, 45, 245, 58, 28, 230, 49, 141, 40, 173, 161, 71, 178,\n\t\t88, 209, 141, 24, 160, 121, 37, 178, 80, 8, 4, 135, 244, 202,\n\t\t18, 143, 185, 185, 100, 34, 30, 42, 255, 115, 55, 159, 43,\n\t\t147, 122, 37, 48, 190, 176, 191, 99, 99, 89, 229, 123, 108,\n\t\t143, 34, 201, 163, 8, 234, 248, 180, 47, 31, 166, 67, 105,\n\t\t16, 103, 57, 166, 230, 20, 136, 67, 163, 107, 148, 218, 184,\n\t\t39, 223, 110, 152, 33, 248, 241, 84, 192, 218, 62, 189, 16,\n\t\t77, 68, 217, 63, 65, 24, 125, 17, 59, 146, 193, 100, 13, 130,\n\t\t37, 71, 172, 122, 134, 196, 44, 121, 175, 241, 27, 30, 17,\n\t\t172, 211, 40, 81, 124, 84, 80, 116, 20, 110, 184, 119, 231,\n\t\t117, 196, 61, 83, 141, 227, 183, 219, 189, 231, 152, 136,\n\t\t236, 104, 236, 205, 197, 135, 147, 74, 154, 91, 207, 236,\n\t\t21, 179, 224, 8, 204, 233, 52, 226, 145, 12, 235, 91, 178,\n\t\t244, 215, 17, 102, 3, 232, 95, 65, 31, 164, 219, 180, 152,\n\t\t232, 121, 158, 20, 13, 244, 179, 18, 108, 160, 195, 67, 135,\n\t\t41, 69, 211, 181, 57, 206, 59, 133, 95, 89, 8, 118, 196, 105,\n\t\t238, 10, 129, 135, 58, 177, 43, 174, 56, 155, 60, 193, 223,\n\t\t224, 87, 9, 32, 28, 97, 69, 137, 225, 86, 5, 45, 2, 72, 163,\n\t\t50, 200, 232, 181, 52, 218, 133, 4, 252, 105, 10, 53, 92,\n\t\t140, 77, 99, 208, 253, 43, 33, 250, 196, 133, 63, 112, 197,\n\t\t169, 73, 191, 183, 211, 24, 102, 166, 116, 192, 244, 27, 69,\n\t\t192, 180, 222, 32, 55, 55, 232, 114, 124, 69, 167, 69, 31,\n\t\t3, 46, 150, 210, 228, 64, 22, 21, 67, 65, 239, 133, 209, 46,\n\t\t26, 138, 80, 187, 38, 76, 140, 3, 105, 63, 82, 77, 71, 97,\n\t\t193, 122, 93, 133, 173, 209, 215, 47, 54, 198, 95, 246, 68,\n\t\t35, 184, 36, 11, 119, 240, 191, 50, 33, 148, 1, 242, 210,\n\t\t85, 22, 153, 172, 71, 106, 9, 204, 27, 70, 128, 30, 57, 141,\n\t\t6, 130, 178, 104, 76, 19, 28, 137, 210, 61, 164, 49, 16, 64,\n\t\t38, 77, 46, 154, 190, 104, 225, 73, 203, 125, 154, 137, 87,\n\t\t32, 220, 21, 9, 219, 58, 69, 147, 153, 161, 86, 125, 122,\n\t\t208, 153, 113, 212, 224, 170, 99, 154, 173, 76, 9, 56, 98,\n\t\t119, 146, 175, 89, 117, 186, 104, 102, 180, 110, 101, 57,\n\t\t171, 124, 187, 44, 120, 82, 209, 205, 62, 133, 235, 30, 214,\n\t\t110, 23, 229, 202, 61, 77, 147, 130, 100, 59, 74, 88, 37,\n\t\t171, 116, 46, 101, 69, 167, 6, 20, 46, 123, 27, 212, 228,\n\t\t229, 127, 83, 216, 20, 79, 224, 15, 207, 108, 202, 123, 167,\n\t\t114, 191, 60, 223, 236, 135, 240, 230, 34, 253, 9, 151, 19,\n\t\t137, 126, 250, 39, 151, 39, 248, 36, 234, 51, 157, 179, 172,\n\t\t54, 109, 236, 199, 103, 90, 191, 194, 29, 46, 135, 10, 205,\n\t\t190, 43, 229, 90, 8, 170, 55, 163, 8, 254, 127, 57, 184, 62,\n\t\t112, 147, 47, 175, 33, 162, 89, 17, 48, 160, 179, 4, 91, 153,\n\t\t143, 40, 104, 120, 142, 77, 173, 43, 155, 89, 42, 117, 121,\n\t\t72, 50, 134, 0, 200, 179, 95, 115, 244, 117, 152, 33, 254,\n\t\t3, 203, 136, 164, 217, 121, 90, 168, 148, 100, 10, 196, 252,\n\t\t147, 236, 96, 224, 204, 10, 195, 16, 219, 91, 161, 214, 109,\n\t\t151, 205, 159, 60, 251, 196, 89, 53, 200, 128, 72, 148, 134,\n\t\t25, 52, 59, 173, 179, 123, 112, 97, 104, 224, 48, 142, 32,\n\t\t199, 129, 234, 54, 67, 18, 57, 109, 213, 122, 146, 114, 141,\n\t\t40, 246, 34, 97, 82, 74, 86, 83, 182, 87, 142, 213, 188, 98,\n\t\t32, 181, 220, 46, 225, 191, 60, 150, 76, 18, 9, 161, 13, 180,\n\t\t20, 207, 225, 63, 73, 27, 187, 171, 87, 174, 55, 41, 2, 84,\n\t\t94, 33, 162, 172, 179, 251, 199, 36, 144, 76, 60, 204, 51,\n\t\t103, 55, 174, 203, 200, 36, 33, 14, 121, 102, 183, 180, 58,\n\t\t191, 109, 194, 216, 225, 172, 132, 139, 129, 0, 90, 252, 110,\n\t\t6, 88, 212, 145, 116, 76, 149, 125, 37, 74, 94, 20, 155, 96,\n\t\t85, 89, 128, 255, 113, 82, 144, 3, 59, 184, 34, 69, 8, 218,\n\t\t194, 215, 86, 58, 7, 152, 95, 100, 50, 149, 77, 233, 171,\n\t\t65, 157, 248, 50, 149, 242, 240, 176, 104, 253, 206, 216,\n\t\t55, 14, 160, 25, 24, 36, 215, 193, 79, 167, 80, 139, 41, 192,\n\t\t125, 43, 151, 76, 250, 99, 40, 127, 212, 93, 215, 23, 139,\n\t\t246, 255, 53, 138, 186, 190, 19, 14, 223, 95, 33, 49, 210,\n\t\t47, 17, 196, 2, 173, 208, 69, 99, 39, 92, 31, 43, 101, 88,\n\t\t229, 86, 70, 203, 8, 115, 45, 221, 193, 106, 198, 115, 132,\n\t\t92, 5, 159, 248, 96, 49, 133, 247, 154, 153, 43, 96, 67, 239,\n\t\t219, 200, 106, 34, 158, 58, 70, 71, 77, 219, 89, 97, 196,\n\t\t192, 57, 42, 4, 221, 234, 228, 51, 219, 94, 90, 3, 73, 106,\n\t\t236, 149, 243, 122, 106, 128, 59, 240, 23, 114, 252, 57, 49,\n\t\t169, 68, 175, 92, 12, 42, 117, 23, 154, 246, 228, 214, 253,\n\t\t49, 243, 232, 158, 209, 197, 51, 8, 99, 61, 139, 67, 147,\n\t\t156, 152, 0, 183, 5, 152, 86, 13, 192, 96, 40, 164, 170, 175,\n\t\t166, 104, 203, 56, 14, 187, 65, 184, 129, 228, 108, 75, 153,\n\t\t169, 102, 76, 103, 40, 186, 153, 158, 66, 98, 198, 206, 84,\n\t\t28, 110, 25, 155, 192, 101, 109, 198, 210, 221, 169, 12, 42,\n\t\t102, 133, 133, 143, 89, 250, 146, 210, 116, 120, 11, 35, 25,\n\t\t236, 11, 133, 243, 24, 201, 135, 226, 125, 193, 89, 62, 18,\n\t\t38, 168, 102, 65, 27, 28, 163, 151, 50, 18, 20, 228, 77, 187,\n\t\t211, 71, 103, 181, 166, 184, 182, 233, 225, 166, 229, 89,\n\t\t253, 174, 105, 50, 228, 78, 254, 207, 199, 53, 38, 53, 17,\n\t\t123, 58, 39, 142, 154, 66, 207, 219, 51, 55, 169, 105, 55,\n\t\t251, 146, 18, 107, 254, 40, 230, 35, 219, 178, 95, 172, 100,\n\t\t165, 43, 216, 148, 218, 212, 215, 15, 43, 182, 212, 117, 56,\n\t\t191, 216, 160, 7, 230, 180, 45, 181, 189, 45, 235, 186, 35,\n\t\t107, 182, 90, 6, 121, 235, 127, 124, 90, 22, 113, 122, 198,\n\t\t56, 241, 15, 124, 242, 183, 173, 215, 58, 253, 21, 115, 207,\n\t\t225, 79, 53, 99, 190, 123, 222, 70, 235, 253, 199, 166, 27,\n\t\t244, 192, 63, 70, 215, 103, 130, 182, 206, 181, 155, 238,\n\t\t78, 37, 46, 33, 177, 148, 166, 35, 84, 54, 188, 123, 247,\n\t\t188, 63, 147, 224, 215, 143, 234, 63, 192, 62, 115, 38, 205,\n\t\t76, 125, 198, 69, 87, 87, 85, 111, 128, 25, 204, 209, 241,\n\t\t81, 51, 85, 141, 240, 99, 0, 70, 1, 204, 32, 169, 0, 91, 92,\n\t\t212, 191, 228, 53, 138, 12, 146, 74, 152, 177, 45, 165, 239,\n\t\t219, 14, 50, 163, 118, 140, 22, 88, 4, 18, 181, 246, 81, 214,\n\t\t156, 14, 148, 142, 13, 18, 105, 136, 197, 182, 173, 171, 233,\n\t\t173, 66, 167, 168, 216, 65, 192, 244, 162, 138, 76, 191, 198,\n\t\t125, 71, 175, 188, 90, 140, 150, 181, 179, 24, 52, 6, 245,\n\t\t193, 82, 219, 113, 78, 33, 132, 226, 37, 201, 94, 33, 153,\n\t\t92, 34, 174, 96, 164, 33, 213, 123, 75, 13, 146, 132, 156,\n\t\t70, 76, 148, 201, 111, 129, 48, 191, 21, 203, 137, 34, 89,\n\t\t107, 38, 105, 133, 72, 190, 197, 64, 24, 156, 18, 159, 215,\n\t\t127, 0, 139, 190, 101, 77, 130, 42, 154, 69, 245, 155, 214,\n\t\t228, 95, 172, 98, 57, 197, 204, 92, 116, 210, 14, 8, 243,\n\t\t32, 106, 92, 17, 194, 185, 128, 75, 128, 78, 200, 51, 134,\n\t\t109, 50, 199, 155, 128, 147, 66, 100, 157, 100, 132, 153,\n\t\t75, 70, 223, 4, 32, 59, 21, 125, 142, 182, 68, 94, 190, 4,\n\t\t97, 244, 64, 31, 236, 10, 0, 221, 242, 255, 140, 131, 162,\n\t\t52, 145, 232, 73, 171, 108, 122, 6, 207, 57, 16, 115, 234,\n\t\t112, 238, 86, 0, 65, 125, 17, 246, 109, 190, 182, 140, 59,\n\t\t232, 125, 168, 151, 89, 225, 95, 216, 117, 119, 158, 250,\n\t\t88, 150, 178, 177, 48, 55, 55, 178, 59, 85, 73, 8, 20, 63,\n\t\t117, 120, 124, 60, 216, 191, 180, 36, 130, 176, 217, 6, 173,\n\t\t78, 22, 187, 36, 248, 87, 198, 133, 8, 185, 2, 20, 87, 3,\n\t\t0, 158, 170, 201, 221, 228, 205, 72, 45, 133, 251, 252, 239,\n\t\t72, 254, 248, 239, 49, 231, 45, 44, 36, 30, 211, 228, 13,\n\t\t111, 77, 101, 120, 151, 16, 149, 145, 184, 100, 108, 90, 95,\n\t\t99, 30, 193, 140, 173, 158, 2, 134, 73, 203, 3, 216, 236,\n\t\t178, 11, 102, 17, 11, 85, 105, 255, 236, 100, 208, 42, 92,\n\t\t163, 78, 151, 64, 120, 30, 20, 116, 104, 34, 135, 163, 106,\n\t\t223, 18, 205, 98, 113, 151, 181, 183, 179, 49, 227, 135, 131,\n\t\t131, 190, 219, 41, 20, 182, 4, 194, 170, 160, 40, 188, 102,\n\t\t41, 10, 94, 61, 213, 156, 144, 88, 28, 12, 147, 195, 241,\n\t\t134, 194, 83, 39, 191, 206, 249, 49, 125, 234, 194, 132, 132,\n\t\t234, 18, 135, 233, 133, 93, 233, 205, 101, 205, 53, 72, 227,\n\t\t154, 149, 171, 198, 115, 216, 28, 211, 245, 254, 29, 3, 175,\n\t\t59, 246, 202, 241, 92, 143, 220, 107, 253, 59, 71, 244, 115,\n\t\t75, 106, 10, 108, 157, 83, 81, 170, 249, 137, 186, 154, 242,\n\t\t41, 169, 89, 57, 159, 174, 94, 190, 124, 181, 35, 118, 119,\n\t\t94, 62, 23, 33, 131, 37, 22, 219, 192, 25, 165, 140, 188,\n\t\t242, 225, 195, 222, 254, 60, 215, 21, 36, 218, 63, 213, 229,\n\t\t185, 19, 243, 181, 186, 137, 174, 84, 54, 155, 99, 205, 57,\n\t\t137, 146, 191, 181, 255, 124, 244, 50, 133, 124, 247, 89,\n\t\t191, 187, 119, 37, 146, 137, 210, 186, 150, 52, 106, 200,\n\t\t146, 142, 142, 183, 244, 169, 141, 133, 122, 28, 113, 212,\n\t\t181, 58, 183, 247, 193, 199, 229, 240, 41, 20, 135, 17, 16,\n\t\t15, 66, 183, 174, 122, 20, 203, 49, 53, 133, 63, 174, 169,\n\t\t39, 193, 169, 13, 166, 26, 93, 134, 241, 95, 71, 62, 70, 142,\n\t\t189, 52, 186, 28, 20, 60, 103, 13, 9, 134, 88, 176, 56, 174,\n\t\t183, 48, 30, 10, 20, 42, 168, 246, 87, 233, 58, 24, 238, 0,\n\t\t13, 184, 6, 170, 190, 133, 30, 37, 18, 8, 197, 11, 189, 238,\n\t\t234, 113, 79, 107, 5, 63, 250, 92, 18, 187, 51, 199, 233,\n\t\t4, 125, 250, 251, 12, 60, 108, 199, 221, 250, 125, 51, 191,\n\t\t100, 79, 166, 202, 180, 188, 76, 53, 209, 190, 228, 182, 198,\n\t\t137, 128, 189, 237, 118, 193, 132, 250, 187, 4, 198, 170,\n\t\t2, 13, 117, 53, 142, 193, 177, 27, 106, 5, 171, 13, 70, 145,\n\t\t199, 213, 195, 197, 37, 182, 164, 163, 143, 113, 238, 115,\n\t\t252, 127, 39, 60, 173, 229, 110, 125, 222, 200, 68, 247, 169,\n\t\t221, 236, 89, 18, 191, 244, 246, 150, 254, 153, 179, 157,\n\t\t119, 88, 243, 93, 237, 139, 180, 34, 179, 134, 44, 174, 201,\n\t\t151, 178, 244, 247, 43, 237, 216, 90, 159, 2, 251, 72, 19,\n\t\t24, 18, 168, 0, 145, 222, 63, 147, 156, 185, 6, 116, 228,\n\t\t170, 96, 72, 230, 219, 184, 107, 90, 233, 193, 24, 28, 62,\n\t\t178, 110, 199, 106, 147, 226, 112, 195, 188, 1, 102, 136,\n\t\t234, 167, 16, 32, 174, 225, 82, 231, 172, 93, 213, 121, 121,\n\t\t200, 147, 224, 36, 154, 72, 244, 19, 57, 78, 194, 146, 84,\n\t\t127, 252, 121, 191, 2, 2, 132, 207, 113, 185, 155, 121, 170,\n\t\t174, 121, 1, 165, 123, 81, 156, 220, 232, 78, 178, 162, 246,\n\t\t214, 188, 30, 31, 8, 55, 186, 255, 196, 189, 126, 235, 216,\n\t\t245, 205, 191, 196, 200, 1, 3, 225, 234, 75, 78, 191, 20,\n\t\t234, 102, 254, 252, 42, 177, 75, 222, 167, 56, 176, 40, 40,\n\t\t241, 94, 92, 4, 108, 237, 67, 145, 131, 73, 163, 246, 57,\n\t\t222, 138, 192, 20, 151, 125, 222, 80, 4, 203, 208, 48, 200,\n\t\t117, 143, 221, 209, 242, 79, 139, 15, 65, 16, 48, 129, 122,\n\t\t240, 8, 90, 185, 134, 199, 99, 210, 177, 52, 184, 155, 79,\n\t\t130, 72, 242, 20, 11, 33, 116, 1, 100, 64, 38, 119, 157, 0,\n\t\t136, 173, 52, 22, 133, 137, 35, 144, 114, 57, 95, 129, 170,\n\t\t36, 76, 155, 66, 94, 17, 111, 161, 167, 74, 229, 2, 21, 167,\n\t\t38, 225, 218, 88, 252, 229, 195, 179, 123, 159, 28, 4, 84,\n\t\t8, 102, 15, 115, 244, 119, 215, 188, 58, 254, 170, 18, 77,\n\t\t4, 252, 81, 209, 163, 38, 71, 141, 176, 196, 200, 32, 221,\n\t\t211, 163, 115, 43, 189, 151, 49, 32, 104, 74, 146, 33, 176,\n\t\t152, 185, 129, 139, 12, 124, 152, 209, 6, 10, 90, 210, 31,\n\t\t181, 120, 87, 163, 158, 41, 177, 165, 95, 218, 175, 115, 250,\n\t\t117, 190, 179, 57, 216, 183, 67, 158, 94, 240, 241, 37, 163,\n\t\t189, 248, 104, 46, 177, 3, 121, 220, 33, 29, 169, 188, 148,\n\t\t174, 25, 92, 23, 40, 93, 229, 172, 12, 99, 147, 71, 180, 80,\n\t\t158, 217, 84, 153, 120, 245, 160, 186, 213, 32, 156, 21, 205,\n\t\t27, 36, 15, 158, 171, 173, 163, 245, 132, 241, 6, 120, 11,\n\t\t244, 130, 245, 212, 137, 170, 89, 162, 117, 8, 237, 214, 253,\n\t\t216, 41, 216, 249, 67, 215, 29, 189, 154, 149, 247, 121, 199,\n\t\t106, 102, 71, 199, 131, 26, 86, 231, 237, 28, 97, 14, 136,\n\t\t74, 210, 246, 226, 241, 33, 78, 51, 206, 29, 37, 114, 41,\n\t\t252, 86, 9, 87, 178, 18, 121, 158, 131, 242, 41, 170, 236,\n\t\t56, 159, 12, 23, 56, 22, 138, 68, 244, 240, 10, 169, 3, 8,\n\t\t175, 84, 119, 205, 177, 178, 19, 0, 161, 35, 231, 165, 147,\n\t\t113, 36, 67, 200, 92, 138, 216, 201, 197, 55, 168, 96, 144,\n\t\t165, 244, 207, 124, 212, 92, 47, 69, 58, 225, 207, 69, 234,\n\t\t225, 60, 51, 54, 32, 64, 52, 121, 56, 180, 157, 234, 20, 64,\n\t\t15, 106, 0, 124, 250, 71, 17, 17, 252, 57, 191, 148, 126,\n\t\t223, 68, 35, 195, 162, 4, 48, 111, 12, 17, 102, 128, 102,\n\t\t237, 244, 54, 115, 79, 48, 31, 21, 52, 13, 153, 122, 120,\n\t\t117, 10, 2, 181, 22, 238, 255, 124, 57, 196, 215, 144, 189,\n\t\t105, 52, 201, 162, 229, 150, 45, 243, 35, 123, 61, 248, 94,\n\t\t145, 115, 43, 138, 252, 38, 24, 93, 20, 174, 66, 94, 94, 191,\n\t\t179, 54, 71, 149, 2, 71, 191, 133, 249, 15, 46, 195, 178,\n\t\t255, 120, 131, 221, 106, 140, 78, 236, 40, 212, 12, 121, 193,\n\t\t237, 202, 47, 135, 164, 91, 234, 218, 126, 160, 1, 137, 69,\n\t\t157, 56, 181, 185, 177, 14, 183, 199, 0, 235, 67, 209, 45,\n\t\t20, 90, 169, 8, 128, 89, 196, 247, 93, 14, 210, 28, 18, 37,\n\t\t149, 176, 240, 8, 144, 174, 241, 106, 199, 53, 2, 150, 68,\n\t\t141, 223, 161, 21, 183, 228, 96, 109, 185, 85, 70, 63, 136,\n\t\t171, 137, 146, 25, 155, 254, 123, 112, 138, 239, 63, 99, 186,\n\t\t234, 151, 213, 138, 130, 3, 55, 125, 116, 109, 112, 228, 233,\n\t\t183, 175, 67, 206, 219, 109, 196, 59, 243, 23, 136, 169, 220,\n\t\t253, 50, 250, 19, 24, 134, 129, 244, 88, 31, 128, 24, 237,\n\t\t234, 92, 15, 66, 57, 231, 178, 233, 185, 143, 207, 106, 21,\n\t\t57, 239, 206, 2, 119, 130, 247, 91, 187, 152, 242, 223, 201,\n\t\t162, 178, 199, 107, 103, 49, 163, 3, 17, 123, 117, 158, 125,\n\t\t152, 145, 5, 64, 61, 88, 179, 88, 237, 69, 171, 132, 144,\n\t\t26, 237, 207, 23, 63, 89, 110, 32, 136, 68, 139, 86, 69, 134,\n\t\t35, 112, 56, 5, 243, 142, 77, 46, 75, 13, 12, 178, 185, 84,\n\t\t192, 2, 207, 99, 108, 2, 95, 141, 112, 99, 173, 64, 206, 78,\n\t\t98, 229, 65, 51, 213, 112, 239, 35, 91, 225, 113, 98, 121,\n\t\t110, 32, 39, 236, 14, 68, 148, 107, 8, 144, 110, 246, 113,\n\t\t219, 26, 51, 119, 42, 118, 46, 194, 194, 22, 254, 244, 249,\n\t\t3, 204, 205, 166, 132, 197, 24, 42, 141, 139, 204, 162, 221,\n\t\t141, 28, 192, 163, 188, 240, 25, 211, 61, 109, 108, 66, 208,\n\t\t140, 249, 235, 23, 31, 75, 105, 40, 44, 19, 225, 94, 100,\n\t\t77, 159, 52, 167, 72, 119, 115, 124, 24, 67, 207, 176, 205,\n\t\t225, 201, 241, 24, 35, 255, 141, 97, 232, 207, 36, 101, 161,\n\t\t220, 16, 183, 138, 31, 106, 45, 144, 100, 213, 73, 35, 197,\n\t\t150, 217, 163, 53, 222, 91, 210, 85, 234, 167, 52, 209, 60,\n\t\t31, 179, 212, 89, 21, 18, 243, 14, 143, 238, 99, 170, 63,\n\t\t29, 182, 146, 61, 30, 39, 200, 198, 105, 14, 9, 201, 93, 56,\n\t\t95, 24, 148, 33, 220, 124, 35, 151, 64, 33, 92, 76, 89, 150,\n\t\t202, 252, 55, 83, 162, 253, 226, 168, 126, 110, 185, 120,\n\t\t217, 78, 162, 146, 149, 220, 15, 40, 35, 14, 108, 57, 178,\n\t\t64, 154, 154, 220, 109, 190, 50, 15, 207, 140, 123, 85, 247,\n\t\t116, 110, 37, 96, 181, 135, 131, 182, 12, 49, 133, 190, 142,\n\t\t183, 82, 45, 217, 195, 96, 172, 103, 204, 233, 112, 222, 213,\n\t\t237, 108, 248, 184, 200, 109, 131, 67, 86, 130, 254, 13, 25,\n\t\t168, 66, 167, 173, 51, 208, 132, 95, 157, 164, 115, 91, 67,\n\t\t183, 178, 169, 92, 117, 246, 122, 29, 85, 206, 41, 14, 136,\n\t\t53, 103, 200, 133, 237, 102, 90, 89, 16, 166, 14, 136, 211,\n\t\t100, 6, 201, 158, 72, 149, 186, 236, 144, 224, 160, 18, 81,\n\t\t148, 224, 99, 172, 241, 171, 42, 31, 69, 130, 33, 212, 164,\n\t\t100, 30, 95, 72, 68, 156, 60, 228, 57, 6, 248, 36, 194, 43,\n\t\t26, 237, 37, 65, 208, 8, 212, 77, 213, 162, 65, 183, 65, 176,\n\t\t88, 70, 194, 255, 31, 125, 254, 143, 83, 116, 89, 92, 134,\n\t\t36, 141, 246, 174, 205, 234, 30, 233, 47, 165, 252, 252, 61,\n\t\t253, 217, 79, 121, 116, 113, 98, 74, 140, 154, 59, 77, 43,\n\t\t141, 242, 6, 219, 171, 185, 252, 20, 167, 36, 79, 6, 161,\n\t\t46, 221, 28, 199, 151, 165, 52, 7, 173, 80, 178, 103, 95,\n\t\t92, 162, 167, 41, 238, 78, 162, 206, 80, 58, 242, 147, 35,\n\t\t136, 180, 232, 243, 84, 29, 151, 37, 4, 196, 217, 242, 252,\n\t\t195, 226, 11, 106, 242, 143, 95, 235, 156, 208, 100, 213,\n\t\t184, 52, 139, 67, 116, 121, 169, 156, 20, 10, 205, 230, 182,\n\t\t232, 196, 85, 106, 89, 1, 195, 32, 98, 66, 29, 29, 153, 86,\n\t\t17, 216, 89, 253, 40, 172, 125, 16, 87, 232, 86, 240, 232,\n\t\t226, 8, 65, 219, 254, 253, 219, 178, 125, 0, 204, 70, 64,\n\t\t10, 143, 145, 146, 64, 39, 241, 152, 244, 168, 10, 73, 68,\n\t\t136, 185, 224, 77, 63, 6, 204, 176, 225, 144, 96, 162, 131,\n\t\t55, 37, 138, 157, 249, 27, 183, 118, 84, 195, 135, 142, 154,\n\t\t160, 30, 58, 58, 255, 111, 153, 84, 0, 207, 71, 98, 161, 105,\n\t\t82, 80, 4, 113, 242, 75, 127, 114, 203, 205, 165, 91, 99,\n\t\t174, 91, 206, 124, 61, 171, 23, 238, 72, 227, 129, 9, 88,\n\t\t77, 170, 172, 87, 37, 5, 217, 219, 78, 169, 127, 47, 0, 138,\n\t\t93, 201, 6, 250, 137, 48, 150, 98, 161, 175, 121, 43, 65,\n\t\t24, 162, 234, 246, 250, 65, 171, 10, 248, 10, 27, 84, 236,\n\t\t13, 118, 119, 89, 46, 69, 11, 230, 123, 53, 108, 178, 166,\n\t\t245, 142, 244, 28, 183, 186, 250, 176, 139, 66, 103, 2, 32,\n\t\t176, 204, 179, 181, 231, 5, 74, 126, 231, 170, 234, 225, 30,\n\t\t128, 176, 94, 219, 47, 46, 15, 200, 72, 19, 204, 20, 91, 20,\n\t\t95, 56, 173, 229, 216, 10, 236, 200, 176, 38, 141, 20, 73,\n\t\t32, 150, 27, 0, 83, 59, 163, 224, 91, 90, 76, 105, 80, 154,\n\t\t42, 85, 132, 213, 24, 151, 95, 4, 170, 17, 7, 152, 251, 29,\n\t\t200, 116, 8, 20, 91, 92, 13, 65, 172, 112, 220, 172, 9, 242,\n\t\t223, 112, 35, 175, 43, 151, 29, 182, 179, 125, 20, 113, 21,\n\t\t166, 251, 203, 139, 82, 8, 252, 219, 231, 42, 241, 162, 85,\n\t\t108, 172, 151, 92, 97, 56, 85, 87, 186, 158, 193, 64, 230,\n\t\t138, 99, 135, 77, 104, 144, 130, 48, 77, 168, 249, 65, 164,\n\t\t127, 103, 132, 131, 213, 216, 8, 161, 16, 96, 2, 92, 12, 145,\n\t\t90, 82, 96, 138, 135, 184, 60, 51, 139, 105, 18, 99, 94, 149,\n\t\t47, 111, 17, 127, 115, 83, 255, 22, 0, 25, 194, 172, 170,\n\t\t169, 208, 168, 12, 199, 205, 91, 249, 195, 144, 31, 225, 16,\n\t\t28, 223, 201, 236, 80, 33, 17, 196, 157, 191, 166, 162, 93,\n\t\t105, 245, 41, 41, 86, 117, 26, 170, 108, 39, 207, 126, 218,\n\t\t129, 154, 94, 62, 203, 186, 21, 150, 59, 173, 235, 117, 163,\n\t\t105, 102, 25, 40, 249, 39, 234, 246, 204, 101, 162, 71, 14,\n\t\t116, 194, 44, 136, 6, 46, 128, 223, 54, 83, 225, 99, 44, 114,\n\t\t42, 21, 93, 189, 254, 71, 145, 218, 201, 75, 165, 242, 156,\n\t\t85, 117, 171, 230, 207, 230, 80, 230, 186, 101, 72, 28, 212,\n\t\t104, 57, 127, 203, 221, 46, 20, 10, 36, 66, 32, 159, 247,\n\t\t237, 175, 15, 1, 86, 86, 43, 255, 12, 222, 87, 215, 11, 190,\n\t\t216, 238, 172, 139, 130, 175, 75, 196, 24, 179, 29, 89, 231,\n\t\t39, 133, 79, 94, 7, 1, 98, 17, 147, 233, 23, 221, 79, 135,\n\t\t225, 18, 26, 78, 46, 204, 64, 5, 16, 243, 214, 167, 47, 188,\n\t\t31, 13, 218, 150, 113, 37, 138, 148, 217, 58, 32, 245, 137,\n\t\t84, 40, 139, 231, 31, 52, 117, 84, 134, 118, 247, 168, 201,\n\t\t125, 37, 237, 99, 29, 181, 53, 96, 195, 10, 236, 5, 236, 29,\n\t\t90, 232, 38, 207, 105, 167, 211, 233, 223, 20, 218, 159, 107,\n\t\t135, 192, 201, 239, 89, 190, 227, 180, 176, 63, 158, 197,\n\t\t114, 211, 156, 143, 5, 79, 41, 155, 191, 195, 0, 15, 14, 234,\n\t\t122, 109, 126, 106, 72, 34, 35, 156, 57, 39, 224, 92, 144,\n\t\t18, 236, 62, 15, 40, 80, 72, 40, 227, 5, 82, 150, 150, 6,\n\t\t254, 213, 124, 0, 231, 113, 229, 38, 104, 43, 120, 47, 235,\n\t\t186, 225, 72, 9, 113, 15, 57, 7, 246, 214, 19, 163, 123, 19,\n\t\t32, 233, 32, 201, 17, 70, 26, 22, 161, 182, 86, 190, 254,\n\t\t247, 150, 26, 109, 123, 16, 116, 138, 197, 157, 250, 144,\n\t\t34, 65, 92, 102, 88, 108, 95, 149, 197, 78, 125, 30, 147,\n\t\t181, 59, 206, 65, 117, 0, 134, 76, 194, 171, 121, 19, 250,\n\t\t220, 216, 252, 151, 102, 252, 42, 246, 248, 49, 253, 183,\n\t\t187, 102, 56, 85, 1, 207, 193, 160, 82, 195, 159, 196, 131,\n\t\t74, 165, 146, 253, 103, 140, 122, 134, 178, 59, 22, 252, 226,\n\t\t0, 20, 245, 255, 228, 255, 70, 211, 38, 197, 69, 226, 60,\n\t\t90, 75, 250, 221, 18, 179, 50, 32, 142, 103, 139, 167, 21,\n\t\t15, 121, 219, 200, 86, 3, 35, 143, 27, 191, 1, 65, 171, 57,\n\t\t93, 167, 115, 20, 37, 228, 130, 38, 68, 132, 31, 87, 247,\n\t\t235, 147, 130, 250, 27, 69, 251, 34, 68, 95, 62, 170, 247,\n\t\t246, 174, 59, 86, 45, 242, 43, 209, 27, 214, 92, 151, 207,\n\t\t66, 48, 244, 241, 214, 85, 53, 18, 145, 157, 144, 30, 173,\n\t\t250, 220, 169, 229, 103, 136, 74, 169, 35, 233, 1, 163, 182,\n\t\t224, 66, 83, 12, 97, 215, 24, 254, 13, 195, 116, 165, 86,\n\t\t221, 1, 37, 248, 111, 213, 107, 12, 233, 141, 249, 6, 164,\n\t\t75, 163, 88, 91, 112, 212, 76, 243, 203, 73, 14, 2, 149, 27,\n\t\t196, 92, 29, 196, 193, 101, 115, 206, 89, 156, 54, 69, 178,\n\t\t104, 177, 55, 211, 185, 237, 189, 68, 179, 251, 33, 153, 57,\n\t\t45, 205, 37, 28, 64, 253, 126, 203, 32, 98, 2, 242, 74, 203,\n\t\t1, 198, 247, 182, 97, 77, 75, 191, 186, 7, 98, 120, 201, 153,\n\t\t49, 159, 52, 150, 255, 7, 253, 52, 99, 150, 172, 185, 171,\n\t\t166, 89, 182, 18, 43, 71, 121, 87, 0, 57, 191, 157, 152, 211,\n\t\t183, 99, 21, 200, 122, 231, 186, 177, 48, 42, 118, 162, 78,\n\t\t224, 74, 7, 82, 0, 152, 127, 128, 224, 194, 56, 70, 19, 53,\n\t\t63, 17, 182, 54, 126, 128, 203, 129, 27, 206, 235, 58, 205,\n\t\t200, 44, 206, 59, 217, 156, 127, 19, 141, 93, 168, 150, 163,\n\t\t63, 163, 205, 229, 96, 133, 193, 28, 94, 239, 202, 220, 157,\n\t\t217, 176, 230, 115, 12, 92, 214, 190, 68, 2, 237, 253, 233,\n\t\t175, 191, 128, 98, 78, 162, 101, 106, 82, 74, 163, 247, 38,\n\t\t58, 42, 163, 93, 101, 53, 35, 156, 78, 179, 210, 197, 141,\n\t\t141, 89, 172, 127, 7, 254, 61, 84, 105, 224, 143, 34, 69,\n\t\t242, 189, 189, 109, 0, 111, 35, 119, 221, 228, 192, 211, 203,\n\t\t207, 67, 191, 188, 62, 81, 114, 223, 13, 248, 88, 174, 232,\n\t\t178, 91, 207, 117, 66, 31, 19, 171, 162, 222, 79, 125, 145,\n\t\t165, 208, 169, 214, 179, 44, 184, 45, 190, 127, 12, 16, 214,\n\t\t141, 237, 72, 225, 102, 8, 98, 34, 2, 70, 1, 53, 26, 223,\n\t\t177, 66, 141, 2, 87, 174, 157, 32, 136, 219, 94, 5, 233, 249,\n\t\t233, 118, 99, 135, 2, 188, 255, 174, 151, 245, 248, 4, 249,\n\t\t107, 187, 227, 173, 67, 215, 23, 142, 185, 231, 29, 107, 37,\n\t\t33, 160, 193, 215, 81, 147, 218, 214, 157, 11, 119, 113, 10,\n\t\t185, 199, 52, 224, 63, 68, 88, 42, 156, 2, 71, 83, 83, 178,\n\t\t63, 58, 186, 55, 109, 162, 106, 20, 0, 86, 44, 157, 46, 223,\n\t\t2, 130, 158, 219, 4, 3, 217, 77, 194, 102, 98, 3, 49, 185,\n\t\t188, 222, 194, 0, 157, 79, 167, 245, 105, 55, 223, 43, 184,\n\t\t186, 108, 96, 86, 193, 125, 130, 7, 21, 206, 238, 47, 113,\n\t\t187, 59, 240, 248, 19, 148, 149, 214, 248, 170, 196, 162,\n\t\t222, 122, 240, 243, 181, 146, 57, 115, 74, 82, 180, 232, 179,\n\t\t221, 194, 137, 59, 183, 200, 172, 253, 13, 86, 238, 119, 148,\n\t\t87, 18, 84, 157, 184, 50, 180, 180, 173, 218, 33, 200, 24,\n\t\t22, 196, 46, 24, 195, 24, 131, 167, 192, 131, 214, 240, 202,\n\t\t106, 151, 38, 135, 197, 20, 100, 98, 78, 124, 118, 58, 243,\n\t\t115, 214, 183, 99, 83, 3, 202, 2, 139, 15, 108, 84, 117, 32,\n\t\t87, 69, 246, 63, 247, 140, 44, 163, 58, 249, 75, 198, 197,\n\t\t59, 35, 105, 91, 35, 32, 112, 165, 127, 197, 68, 0, 63, 97,\n\t\t203, 17, 185, 123, 138, 99, 94, 96, 176, 156, 214, 49, 28,\n\t\t140, 165, 84, 71, 164, 214, 254, 70, 205, 97, 40, 91, 52,\n\t\t26, 156, 162, 170, 85, 134, 137, 229, 161, 149, 126, 105,\n\t\t235, 180, 212, 32, 237, 169, 173, 19, 89, 26, 131, 35, 238,\n\t\t180, 193, 78, 117, 209, 0, 117, 86, 139, 88, 174, 205, 51,\n\t\t75, 245, 206, 184, 228, 56, 167, 201, 41, 170, 72, 48, 169,\n\t\t94, 140, 93, 44, 202, 139, 99, 164, 167, 72, 46, 250, 185,\n\t\t192, 109, 78, 72, 103, 5, 138, 86, 44, 127, 184, 210, 47,\n\t\t221, 169, 113, 44, 106, 113, 169, 113, 135, 117, 27, 159,\n\t\t142, 80, 227, 220, 71, 204, 242, 240, 157, 174, 59, 226, 93,\n\t\t78, 184, 28, 120, 124, 59, 251, 233, 101, 240, 42, 115, 130,\n\t\t193, 237, 26, 234, 209, 105, 52, 230, 221, 96, 194, 100, 73,\n\t\t69, 107, 173, 148, 157, 146, 163, 157, 36, 170, 177, 101,\n\t\t150, 120, 254, 58, 31, 64, 45, 202, 130, 190, 6, 171, 178,\n\t\t212, 122, 192, 40, 66, 115, 81, 255, 52, 61, 250, 122, 170,\n\t\t200, 178, 241, 162, 138, 110, 224, 252, 106, 125, 17, 197,\n\t\t48, 110, 240, 29, 247, 45, 211, 154, 132, 91, 31, 153, 144,\n\t\t226, 220, 170, 50, 159, 40, 98, 194, 202, 25, 116, 126, 132,\n\t\t118, 60, 76, 195, 63, 241, 50, 73, 21, 86, 253, 87, 243, 49,\n\t\t23, 53, 6, 209, 243, 251, 48, 190, 219, 195, 31, 249, 231,\n\t\t173, 106, 29, 148, 226, 22, 172, 15, 13, 147, 52, 69, 64,\n\t\t26, 142, 140, 236, 136, 154, 53, 47, 62, 39, 69, 25, 126,\n\t\t222, 85, 213, 171, 243, 241, 117, 73, 27, 188, 119, 147, 116,\n\t\t25, 7, 247, 179, 196, 7, 247, 184, 176, 142, 84, 104, 195,\n\t\t34, 29, 178, 216, 112, 249, 142, 139, 254, 85, 184, 173, 66,\n\t\t4, 128, 146, 217, 96, 82, 98, 235, 8, 252, 130, 76, 156, 148,\n\t\t67, 178, 181, 6, 75, 27, 186, 167, 39, 203, 129, 154, 46,\n\t\t179, 135, 155, 158, 98, 166, 144, 75, 130, 252, 40, 231, 98,\n\t\t169, 1, 180, 174, 161, 236, 198, 171, 121, 82, 222, 9, 97,\n\t\t5, 80, 65, 235, 213, 61, 0, 196, 23, 166, 97, 56, 90, 132,\n\t\t51, 55, 150, 172, 149, 70, 126, 234, 240, 132, 45, 37, 123,\n\t\t177, 34, 156, 227, 21, 57, 162, 2, 247, 90, 144, 68, 33, 142,\n\t\t181, 226, 117, 116, 109, 248, 153, 23, 130, 217, 246, 64,\n\t\t147, 136, 172, 192, 219, 57, 50, 206, 185, 233, 139, 149,\n\t\t43, 154, 49, 63, 87, 198, 17, 45, 168, 47, 40, 65, 204, 79,\n\t\t224, 4, 105, 163, 197, 64, 214, 200, 195, 63, 117, 128, 34,\n\t\t92, 117, 17, 45, 165, 167, 226, 173, 201, 235, 113, 6, 43,\n\t\t88, 105, 184, 114, 89, 18, 157, 226, 96, 57, 55, 94, 170,\n\t\t224, 44, 141, 147, 251, 112, 202, 164, 130, 82, 120, 228,\n\t\t235, 194, 32, 143, 16, 253, 196, 171, 216, 49, 138, 63, 203,\n\t\t199, 196, 160, 105, 155, 20, 121, 153, 123, 124, 28, 222,\n\t\t96, 192, 234, 23, 214, 56, 55, 241, 38, 98, 157, 218, 143,\n\t\t106, 202, 151, 150, 171, 26, 69, 117, 112, 194, 134, 180,\n\t\t57, 126, 115, 210, 6, 41, 191, 129, 31, 81, 38, 9, 138, 110,\n\t\t152, 187, 94, 21, 27, 50, 109, 201, 255, 196, 247, 59, 168,\n\t\t2, 84, 65, 218, 250, 115, 178, 93, 33, 181, 233, 36, 183,\n\t\t144, 51, 134, 242, 204, 14, 11, 250, 139, 142, 243, 130, 23,\n\t\t248, 166, 56, 90, 119, 165, 220, 199, 213, 166, 88, 99, 240,\n\t\t45, 25, 54, 188, 66, 3, 137, 2, 176, 104, 152, 70, 170, 77,\n\t\t240, 88, 254, 90, 37, 247, 107, 79, 39, 69, 254, 223, 235,\n\t\t144, 251, 102, 175, 127, 168, 104, 228, 201, 99, 14, 250,\n\t\t252, 63, 8, 138, 3, 75, 24, 184, 107, 14, 153, 196, 147, 22,\n\t\t156, 162, 186, 140, 137, 101, 27, 156, 101, 123, 28, 48, 1,\n\t\t250, 216, 241, 32, 112, 62, 128, 124, 47, 50, 197, 90, 193,\n\t\t1, 225, 1, 18, 95, 155, 134, 160, 30, 142, 12, 174, 8, 228,\n\t\t122, 116, 110, 108, 217, 78, 210, 116, 238, 147, 5, 47, 50,\n\t\t5, 9, 84, 215, 73, 182, 42, 225, 171, 210, 38, 152, 19, 26,\n\t\t113, 9, 205, 234, 217, 134, 24, 188, 216, 178, 218, 201, 107,\n\t\t140, 70, 132, 16, 23, 189, 244, 54, 6, 25, 190, 220, 99, 112,\n\t\t137, 254, 144, 64, 70, 38, 221, 101, 81, 50, 63, 40, 103,\n\t\t240, 71, 227, 154, 137, 216, 54, 8, 139, 225, 97, 58, 236,\n\t\t166, 220, 164, 121, 218, 79, 122, 231, 91, 82, 227, 134, 7,\n\t\t16, 155, 149, 94, 100, 11, 167, 194, 32, 52, 131, 2, 131,\n\t\t20, 207, 36, 165, 78, 34, 189, 190, 156, 102, 146, 211, 128,\n\t\t28, 26, 213, 38, 72, 36, 11, 155, 165, 167, 183, 175, 222,\n\t\t33, 241, 249, 81, 140, 35, 173, 63, 251, 125, 223, 182, 240,\n\t\t137, 51, 146, 113, 72, 120, 17, 30, 197, 232, 36, 103, 72,\n\t\t207, 208, 153, 79, 52, 6, 65, 102, 146, 71, 133, 125, 26,\n\t\t135, 77, 184, 72, 18, 146, 193, 40, 1, 68, 244, 69, 168, 92,\n\t\t59, 11, 241, 49, 52, 52, 65, 249, 113, 38, 207, 11, 3, 158,\n\t\t92, 233, 171, 22, 193, 176, 195, 18, 168, 74, 249, 52, 243,\n\t\t237, 210, 44, 150, 80, 72, 32, 248, 23, 92, 36, 150, 252,\n\t\t235, 39, 158, 139, 235, 172, 216, 7, 81, 11, 105, 238, 28,\n\t\t33, 145, 141, 74, 213, 51, 181, 0, 247, 242, 14, 172, 22,\n\t\t98, 38, 166, 169, 5, 34, 182, 146, 225, 89, 99, 95, 87, 191,\n\t\t55, 136, 56, 197, 35, 92, 182, 160, 112, 141, 63, 161, 11,\n\t\t232, 238, 91, 146, 3, 52, 213, 85, 142, 81, 24, 109, 88, 126,\n\t\t88, 33, 190, 187, 44, 194, 188, 161, 186, 41, 190, 75, 17,\n\t\t155, 122, 85, 227, 168, 83, 181, 92, 62, 5, 35, 165, 200,\n\t\t172, 39, 75, 105, 91, 223, 224, 234, 196, 57, 199, 156, 39,\n\t\t242, 209, 75, 34, 53, 181, 154, 156, 244, 182, 216, 199, 25,\n\t\t152, 86, 162, 168, 125, 126, 16, 134, 96, 235, 181, 195, 109,\n\t\t100, 130, 10, 3, 90, 88, 130, 188, 113, 252, 74, 147, 220,\n\t\t200, 78, 52, 241, 97, 177, 8, 94, 65, 97, 189, 226, 194, 38,\n\t\t90, 49, 176, 92, 152, 25, 146, 32, 8, 68, 5, 18, 137, 144,\n\t\t82, 85, 148, 28, 24, 198, 14, 193, 210, 48, 72, 43, 197, 68,\n\t\t141, 252, 125, 5, 233, 97, 34, 151, 200, 54, 249, 114, 103,\n\t\t98, 182, 21, 233, 132, 112, 22, 216, 225, 68, 124, 22, 141,\n\t\t205, 199, 126, 136, 38, 230, 211, 105, 11, 97, 178, 191, 241,\n\t\t84, 24, 87, 68, 122, 218, 224, 134, 91, 161, 55, 81, 228,\n\t\t82, 138, 22, 124, 45, 16, 57, 172, 146, 28, 189, 97, 46, 242,\n\t\t94, 250, 243, 144, 69, 116, 70, 182, 14, 205, 254, 250, 254,\n\t\t223, 169, 133, 112, 31, 20, 73, 223, 174, 19, 70, 19, 99,\n\t\t225, 8, 88, 88, 147, 7, 82, 243, 157, 214, 78, 192, 74, 132,\n\t\t4, 164, 38, 223, 175, 62, 35, 86, 22, 100, 104, 118, 35, 113,\n\t\t80, 56, 124, 206, 89, 54, 19, 107, 74, 213, 32, 90, 239, 42,\n\t\t165, 126, 69, 163, 125, 115, 93, 203, 139, 1, 248, 116, 18,\n\t\t144, 142, 217, 124, 225, 174, 165, 203, 135, 252, 175, 125,\n\t\t228, 19, 160, 183, 201, 158, 139, 197, 206, 39, 233, 151,\n\t\t116, 114, 214, 44, 171, 106, 94, 216, 238, 219, 5, 187, 192,\n\t\t214, 29, 30, 163, 147, 39, 75, 158, 237, 144, 114, 211, 40,\n\t\t61, 249, 45, 190, 92, 106, 172, 232, 226, 199, 34, 44, 71,\n\t\t121, 71, 225, 249, 188, 216, 249, 21, 82, 99, 166, 233, 91,\n\t\t76, 138, 155, 41, 49, 124, 51, 66, 192, 19, 88, 224, 177,\n\t\t188, 212, 64, 245, 137, 239, 241, 21, 146, 235, 243, 98, 224,\n\t\t230, 8, 34, 143, 31, 211, 5, 228, 139, 255, 126, 194, 40,\n\t\t57, 81, 18, 203, 179, 192, 9, 60, 66, 30, 2, 100, 119, 20,\n\t\t63, 49, 220, 92, 48, 112, 109, 214, 146, 107, 244, 19, 206,\n\t\t206, 13, 26, 115, 66, 98, 1, 114, 141, 225, 19, 243, 82, 215,\n\t\t102, 129, 44, 255, 138, 14, 90, 152, 61, 54, 109, 161, 37,\n\t\t241, 108, 117, 227, 81, 234, 91, 120, 108, 64, 113, 51, 154,\n\t\t122, 78, 235, 162, 206, 191, 122, 122, 164, 104, 100, 150,\n\t\t187, 37, 36, 63, 106, 137, 55, 244, 233, 171, 22, 81, 254,\n\t\t181, 83, 97, 2, 79, 36, 192, 178, 247, 233, 30, 187, 160,\n\t\t95, 17, 184, 237, 221, 196, 80, 150, 61, 81, 193, 237, 39,\n\t\t103, 42, 166, 159, 160, 10, 134, 253, 185, 253, 42, 246, 132,\n\t\t40, 58, 243, 102, 233, 249, 220, 71, 42, 245, 92, 35, 247,\n\t\t38, 248, 123, 43, 33, 112, 43, 177, 31, 196, 59, 203, 88,\n\t\t170, 18, 197, 24, 21, 131, 92, 73, 90, 178, 120, 76, 46, 62,\n\t\t92, 194, 29, 80, 19, 237, 3, 199, 4, 10, 218, 69, 146, 119,\n\t\t172, 97, 150, 14, 175, 61, 74, 152, 195, 219, 141, 44, 59,\n\t\t17, 7, 123, 122, 162, 12, 185, 155, 55, 153, 112, 116, 237,\n\t\t112, 41, 115, 77, 135, 156, 244, 138, 224, 88, 147, 5, 217,\n\t\t77, 96, 80, 237, 47, 137, 157, 76, 239, 223, 195, 238, 200,\n\t\t123, 23, 58, 1, 212, 224, 118, 206, 246, 180, 182, 116, 150,\n\t\t211, 194, 94, 249, 29, 216, 167, 36, 38, 39, 241, 37, 123,\n\t\t42, 43, 90, 210, 136, 214, 172, 20, 72, 214, 60, 200, 250,\n\t\t163, 231, 217, 62, 252, 212, 242, 1, 168, 138, 82, 5, 13,\n\t\t148, 167, 242, 25, 125, 52, 227, 53, 226, 221, 197, 89, 200,\n\t\t47, 234, 47, 200, 172, 197, 143, 137, 215, 140, 180, 62, 48,\n\t\t219, 40, 94, 180, 110, 49, 66, 176, 11, 230, 114, 72, 207,\n\t\t236, 69, 244, 234, 24, 99, 44, 214, 16, 150, 59, 210, 80,\n\t\t95, 24, 80, 16, 205, 93, 177, 200, 215, 111, 15, 2, 163, 105,\n\t\t234, 190, 132, 45, 191, 144, 253, 207, 63, 171, 164, 143,\n\t\t162, 150, 46, 1, 27, 103, 25, 54, 228, 117, 212, 2, 224, 161,\n\t\t183, 188, 126, 237, 247, 30, 29, 137, 68, 33, 8, 142, 66,\n\t\t187, 189, 247, 251, 171, 205, 150, 71, 10, 168, 208, 18, 180,\n\t\t175, 21, 138, 159, 162, 188, 52, 180, 20, 181, 74, 188, 231,\n\t\t238, 84, 83, 30, 89, 107, 241, 217, 212, 117, 211, 119, 175,\n\t\t108, 46, 92, 202, 50, 130, 87, 225, 44, 106, 161, 84, 28,\n\t\t11, 75, 88, 154, 20, 32, 157, 72, 200, 122, 67, 161, 230,\n\t\t139, 3, 106, 5, 169, 2, 161, 174, 227, 32, 138, 18, 170, 36,\n\t\t59, 112, 193, 108, 1, 34, 83, 248, 188, 58, 42, 189, 111,\n\t\t216, 224, 148, 217, 14, 122, 237, 235, 210, 226, 252, 65,\n\t\t7, 192, 97, 33, 3, 197, 154, 98, 132, 21, 182, 117, 11, 159,\n\t\t176, 7, 22, 105, 236, 115, 252, 12, 150, 227, 60, 121, 144,\n\t\t42, 50, 188, 149, 154, 86, 227, 88, 17, 213, 235, 1, 236,\n\t\t49, 126, 121, 138, 34, 10, 9, 27, 177, 54, 140, 64, 16, 87,\n\t\t154, 186, 236, 118, 17, 44, 150, 138, 136, 213, 237, 97, 88,\n\t\t127, 126, 184, 120, 2, 155, 96, 178, 30, 97, 66, 113, 14,\n\t\t196, 139, 75, 110, 239, 42, 132, 172, 13, 164, 236, 14, 7,\n\t\t73, 129, 119, 112, 104, 173, 106, 88, 160, 0, 32, 54, 219,\n\t\t156, 237, 203, 240, 120, 194, 221, 13, 82, 249, 91, 24, 184,\n\t\t188, 46, 77, 233, 132, 112, 221, 132, 233, 230, 221, 104,\n\t\t42, 153, 49, 60, 153, 164, 107, 181, 4, 169, 160, 72, 34,\n\t\t58, 32, 16, 151, 110, 223, 131, 4, 135, 101, 185, 54, 130,\n\t\t9, 177, 100, 167, 9, 22, 152, 146, 130, 1, 167, 214, 9, 176,\n\t\t84, 202, 200, 28, 175, 54, 246, 101, 192, 151, 222, 94, 188,\n\t\t56, 26, 107, 98, 181, 58, 167, 177, 148, 170, 90, 147, 213,\n\t\t53, 162, 238, 87, 210, 141, 80, 55, 63, 60, 56, 104, 101,\n\t\t21, 4, 118, 176, 250, 90, 150, 240, 252, 123, 180, 216, 13,\n\t\t40, 111, 249, 111, 181, 34, 2, 231, 6, 101, 176, 125, 20,\n\t\t116, 28, 50, 135, 250, 127, 1, 4, 225, 34, 46, 8, 59, 101,\n\t\t166, 204, 102, 153, 66, 231, 122, 139, 213, 128, 191, 138,\n\t\t91, 202, 68, 145, 16, 164, 208, 20, 137, 10, 71, 208, 186,\n\t\t214, 71, 72, 93, 83, 188, 62, 104, 237, 116, 115, 50, 87,\n\t\t217, 52, 73, 183, 117, 242, 32, 109, 64, 243, 93, 254, 52,\n\t\t212, 130, 72, 216, 235, 235, 92, 121, 244, 175, 254, 221,\n\t\t183, 22, 108, 50, 68, 119, 183, 166, 147, 87, 227, 81, 152,\n\t\t78, 119, 13, 120, 187, 11, 71, 64, 154, 96, 99, 0, 174, 134,\n\t\t86, 94, 101, 112, 170, 63, 124, 208, 240, 50, 40, 135, 233,\n\t\t85, 125, 49, 57, 72, 50, 104, 166, 230, 101, 100, 194, 98,\n\t\t94, 114, 176, 115, 231, 218, 119, 187, 107, 134, 152, 157,\n\t\t67, 166, 142, 3, 216, 176, 215, 59, 172, 36, 48, 139, 208,\n\t\t93, 200, 72, 98, 247, 67, 226, 109, 55, 243, 221, 191, 231,\n\t\t178, 212, 188, 73, 178, 152, 4, 34, 251, 71, 195, 86, 152,\n\t\t152, 49, 179, 9, 193, 236, 181, 176, 28, 15, 73, 110, 236,\n\t\t63, 185, 186, 100, 13, 88, 1, 229, 209, 212, 128, 126, 204,\n\t\t251, 237, 138, 237, 186, 48, 229, 167, 189, 182, 245, 131,\n\t\t56, 248, 212, 167, 17, 37, 30, 191, 87, 83, 75, 38, 224, 182,\n\t\t156, 227, 76, 223, 191, 223, 25, 94, 165, 194, 8, 21, 74,\n\t\t39, 113, 84, 61, 8, 86, 138, 102, 107, 35, 161, 248, 170,\n\t\t166, 169, 245, 229, 91, 221, 150, 82, 75, 33, 13, 38, 61,\n\t\t190, 240, 88, 210, 29, 51, 190, 219, 121, 20, 145, 137, 157,\n\t\t61, 214, 137, 215, 128, 6, 70, 255, 232, 80, 70, 70, 81, 72,\n\t\t9, 236, 126, 241, 51, 230, 49, 214, 30, 171, 11, 144, 74,\n\t\t6, 146, 138, 40, 136, 189, 88, 4, 51, 49, 17, 154, 95, 207,\n\t\t43, 88, 216, 188, 168, 221, 128, 100, 17, 46, 51, 117, 82,\n\t\t187, 103, 78, 191, 3, 140, 237, 231, 51, 109, 123, 26, 210,\n\t\t255, 57, 236, 15, 239, 164, 132, 110, 37, 102, 78, 93, 220,\n\t\t252, 236, 119, 255, 72, 82, 121, 97, 130, 2, 164, 144, 240,\n\t\t49, 74, 100, 131, 53, 164, 120, 195, 123, 11, 147, 78, 207,\n\t\t136, 15, 75, 205, 51, 35, 212, 178, 104, 243, 191, 18, 33,\n\t\t57, 56, 205, 66, 132, 70, 89, 136, 37, 25, 171, 107, 163,\n\t\t144, 110, 176, 170, 149, 178, 59, 12, 40, 162, 77, 49, 50,\n\t\t177, 60, 135, 36, 22, 242, 50, 169, 172, 17, 21, 80, 155,\n\t\t160, 152, 103, 178, 96, 20, 32, 115, 31, 175, 64, 84, 88,\n\t\t8, 140, 133, 195, 193, 89, 11, 237, 154, 199, 125, 90, 199,\n\t\t236, 203, 8, 172, 100, 90, 228, 79, 214, 98, 138, 124, 227,\n\t\t68, 135, 149, 126, 131, 181, 185, 28, 154, 231, 221, 80, 220,\n\t\t247, 196, 174, 19, 231, 44, 189, 102, 123, 50, 27, 203, 109,\n\t\t232, 232, 232, 1, 134, 232, 187, 196, 127, 89, 85, 245, 36,\n\t\t206, 192, 177, 39, 247, 106, 193, 104, 103, 135, 77, 27, 239,\n\t\t72, 183, 247, 142, 140, 78, 172, 213, 54, 29, 121, 59, 250,\n\t\t66, 112, 192, 140, 197, 224, 223, 183, 111, 239, 128, 122,\n\t\t16, 52, 93, 165, 97, 87, 180, 165, 251, 154, 226, 101, 24,\n\t\t64, 155, 44, 0, 180, 199, 141, 143, 132, 202, 136, 37, 70,\n\t\t20, 20, 88, 247, 68, 193, 108, 144, 86, 108, 132, 110, 133,\n\t\t46, 160, 179, 187, 23, 19, 36, 39, 76, 15, 84, 44, 234, 2,\n\t\t64, 89, 65, 114, 64, 10, 3, 50, 160, 32, 131, 47, 207, 143,\n\t\t5, 112, 129, 122, 205, 187, 6, 48, 93, 72, 184, 132, 137,\n\t\t79, 160, 128, 54, 123, 244, 48, 146, 8, 180, 243, 148, 234,\n\t\t49, 0, 242, 48, 175, 63, 131, 84, 213, 136, 188, 109, 192,\n\t\t131, 4, 116, 27, 140, 32, 72, 242, 140, 108, 181, 72, 200,\n\t\t226, 18, 235, 28, 84, 200, 67, 225, 6, 40, 244, 234, 5, 99,\n\t\t15, 149, 165, 60, 189, 208, 214, 189, 214, 236, 221, 6, 71,\n\t\t104, 77, 227, 208, 120, 91, 18, 238, 25, 82, 81, 190, 47,\n\t\t235, 173, 47, 238, 211, 105, 63, 26, 9, 148, 133, 219, 239,\n\t\t155, 5, 72, 85, 243, 72, 20, 12, 122, 168, 117, 109, 24, 156,\n\t\t105, 206, 17, 62, 72, 239, 148, 16, 175, 220, 245, 150, 249,\n\t\t170, 225, 129, 234, 21, 156, 253, 187, 32, 72, 32, 71, 234,\n\t\t43, 59, 98, 105, 243, 214, 157, 3, 47, 79, 41, 97, 119, 237,\n\t\t131, 245, 102, 65, 74, 145, 90, 160, 120, 97, 80, 43, 90,\n\t\t35, 3, 42, 144, 21, 111, 54, 34, 93, 228, 85, 175, 157, 231,\n\t\t183, 213, 105, 253, 234, 253, 132, 90, 40, 156, 251, 26, 25,\n\t\t79, 185, 203, 131, 79, 81, 241, 41, 128, 213, 155, 15, 104,\n\t\t208, 249, 123, 247, 76, 223, 231, 179, 226, 37, 10, 222, 102,\n\t\t201, 23, 194, 247, 238, 92, 157, 250, 56, 204, 73, 193, 185,\n\t\t243, 111, 194, 183, 76, 184, 166, 138, 83, 28, 113, 28, 222,\n\t\t137, 95, 154, 32, 9, 22, 84, 253, 242, 48, 157, 46, 241, 44,\n\t\t113, 140, 204, 146, 28, 234, 66, 215, 45, 51, 222, 73, 23,\n\t\t133, 232, 108, 85, 228, 164, 206, 174, 118, 180, 2, 144, 103,\n\t\t168, 65, 191, 63, 77, 63, 206, 27, 79, 187, 226, 27, 244,\n\t\t250, 134, 141, 250, 52, 163, 113, 18, 199, 219, 16, 121, 138,\n\t\t121, 243, 12, 191, 27, 207, 13, 196, 156, 167, 21, 69, 68,\n\t\t20, 221, 114, 184, 214, 182, 66, 22, 169, 64, 231, 0, 189,\n\t\t187, 151, 210, 131, 22, 152, 199, 123, 122, 44, 5, 187, 14,\n\t\t247, 75, 19, 60, 19, 142, 123, 157, 104, 136, 93, 98, 25,\n\t\t143, 76, 183, 6, 244, 113, 54, 153, 122, 253, 167, 156, 228,\n\t\t159, 180, 14, 103, 164, 60, 121, 146, 178, 131, 93, 80, 200,\n\t\t134, 198, 79, 148, 147, 174, 94, 35, 204, 217, 181, 100, 233,\n\t\t140, 158, 227, 101, 196, 87, 61, 136, 109, 141, 230, 199,\n\t\t143, 35, 87, 161, 18, 18, 88, 59, 222, 174, 61, 216, 217,\n\t\t9, 164, 169, 69, 9, 246, 253, 138, 147, 150, 101, 213, 245,\n\t\t39, 148, 199, 19, 178, 206, 25, 42, 205, 12, 213, 50, 203,\n\t\t233, 48, 213, 246, 145, 7, 47, 73, 72, 137, 197, 43, 250,\n\t\t233, 9, 225, 9, 199, 85, 39, 106, 247, 204, 18, 165, 244,\n\t\t234, 139, 193, 211, 168, 227, 254, 245, 237, 243, 243, 4,\n\t\t94, 190, 115, 245, 150, 104, 131, 157, 121, 174, 129, 233,\n\t\t138, 68, 221, 61, 183, 190, 122, 232, 246, 234, 84, 251, 243,\n\t\t138, 91, 76, 245, 110, 51, 171, 213, 97, 222, 204, 206, 188,\n\t\t101, 112, 62, 205, 152, 50, 79, 177, 58, 149, 81, 144, 11,\n\t\t42, 105, 118, 229, 140, 112, 8, 25, 112, 52, 17, 38, 167,\n\t\t120, 35, 234, 22, 192, 50, 74, 131, 109, 240, 93, 223, 70,\n\t\t209, 198, 248, 63, 228, 86, 88, 227, 232, 183, 93, 98, 91,\n\t\t89, 48, 188, 114, 1, 60, 55, 197, 123, 50, 193, 228, 56, 0,\n\t\t163, 134, 51, 166, 144, 104, 149, 224, 241, 56, 150, 159,\n\t\t186, 83, 49, 47, 210, 72, 227, 195, 183, 228, 117, 78, 94,\n\t\t237, 87, 229, 96, 94, 171, 102, 222, 202, 124, 222, 191, 231,\n\t\t85, 200, 197, 159, 43, 38, 185, 195, 112, 129, 44, 98, 170,\n\t\t217, 206, 144, 174, 171, 248, 103, 254, 2, 176, 4, 142, 127,\n\t\t102, 105, 156, 212, 176, 180, 57, 203, 189, 215, 175, 123,\n\t\t219, 4, 40, 26, 126, 170, 76, 141, 123, 55, 131, 73, 233,\n\t\t90, 179, 251, 114, 163, 230, 43, 126, 54, 61, 174, 121, 19,\n\t\t223, 72, 204, 26, 26, 244, 59, 108, 143, 115, 149, 221, 2,\n\t\t209, 29, 18, 11, 67, 204, 34, 117, 81, 72, 49, 131, 154, 19,\n\t\t199, 236, 154, 111, 126, 35, 127, 226, 227, 67, 46, 121, 97,\n\t\t98, 235, 89, 250, 141, 24, 223, 48, 40, 192, 233, 129, 186,\n\t\t185, 15, 143, 237, 137, 152, 178, 36, 13, 115, 52, 232, 249,\n\t\t161, 245, 86, 126, 178, 61, 203, 4, 16, 24, 2, 125, 190, 41,\n\t\t8, 52, 139, 24, 124, 92, 108, 243, 252, 126, 36, 103, 102,\n\t\t108, 44, 77, 83, 198, 106, 48, 8, 93, 57, 163, 226, 218, 233,\n\t\t219, 152, 197, 225, 39, 230, 84, 52, 94, 189, 30, 163, 48,\n\t\t193, 97, 249, 76, 16, 225, 85, 30, 103, 83, 72, 17, 67, 44,\n\t\t219, 216, 136, 4, 102, 113, 63, 241, 244, 6, 189, 3, 249,\n\t\t213, 141, 147, 161, 234, 111, 78, 244, 241, 204, 215, 183,\n\t\t138, 66, 179, 163, 179, 66, 79, 91, 148, 224, 224, 133, 240,\n\t\t151, 6, 183, 57, 225, 7, 223, 66, 198, 90, 75, 234, 3, 164,\n\t\t46, 144, 142, 42, 145, 145, 239, 2, 90, 193, 86, 117, 20,\n\t\t44, 147, 161, 165, 236, 228, 93, 50, 166, 34, 25, 107, 242,\n\t\t200, 0, 130, 105, 215, 200, 150, 133, 132, 9, 65, 180, 37,\n\t\t197, 43, 153, 180, 20, 203, 159, 180, 73, 171, 254, 1, 10,\n\t\t62, 236, 61, 255, 110, 218, 59, 209, 9, 106, 95, 2, 33, 30,\n\t\t77, 244, 254, 95, 97, 138, 145, 40, 62, 144, 40, 157, 24,\n\t\t136, 135, 218, 239, 19, 190, 162, 151, 61, 241, 100, 167,\n\t\t236, 114, 43, 0, 50, 110, 31, 168, 185, 38, 104, 114, 65,\n\t\t115, 245, 156, 116, 54, 93, 56, 191, 96, 229, 216, 240, 145,\n\t\t75, 93, 170, 161, 185, 7, 109, 184, 229, 167, 190, 106, 245,\n\t\t222, 243, 11, 39, 130, 88, 67, 225, 129, 149, 110, 240, 238,\n\t\t94, 120, 227, 171, 208, 139, 209, 89, 158, 63, 245, 4, 26,\n\t\t8, 22, 100, 189, 27, 186, 127, 121, 47, 227, 21, 248, 166,\n\t\t169, 235, 9, 101, 14, 62, 172, 27, 18, 247, 108, 95, 144,\n\t\t238, 251, 98, 98, 115, 215, 22, 233, 14, 131, 33, 78, 228,\n\t\t155, 25, 10, 86, 220, 209, 205, 113, 238, 15, 221, 148, 177,\n\t\t63, 253, 186, 33, 103, 60, 1, 113, 169, 136, 57, 143, 94,\n\t\t5, 32, 139, 124, 125, 21, 1, 123, 237, 237, 52, 25, 209, 206,\n\t\t187, 185, 56, 254, 159, 101, 224, 129, 162, 8, 157, 93, 255,\n\t\t5, 31, 31, 246, 172, 69, 18, 137, 26, 6, 234, 133, 51, 116,\n\t\t109, 103, 59, 128, 216, 113, 12, 223, 206, 67, 208, 183, 154,\n\t\t175, 250, 201, 157, 163, 29, 10, 0, 115, 254, 140, 15, 227,\n\t\t240, 253, 139, 166, 8, 36, 205, 193, 23, 116, 37, 10, 94,\n\t\t31, 170, 78, 246, 87, 134, 152, 199, 239, 179, 97, 108, 230,\n\t\t135, 58, 239, 156, 168, 2, 194, 220, 206, 104, 166, 183, 59,\n\t\t218, 254, 81, 160, 102, 196, 71, 135, 193, 212, 45, 38, 180,\n\t\t72, 85, 145, 154, 220, 21, 23, 226, 205, 129, 185, 175, 28,\n\t\t152, 230, 150, 187, 254, 200, 236, 214, 105, 33, 190, 157,\n\t\t1, 179, 86, 150, 108, 197, 185, 154, 222, 125, 136, 183, 161,\n\t\t216, 112, 53, 87, 166, 215, 148, 217, 230, 149, 218, 154,\n\t\t91, 232, 54, 5, 73, 194, 233, 247, 44, 102, 192, 204, 189,\n\t\t106, 240, 211, 63, 82, 55, 33, 121, 36, 229, 64, 116, 127,\n\t\t127, 244, 129, 148, 145, 228, 129, 1, 53, 160, 168, 137, 131,\n\t\t2, 152, 224, 205, 60, 246, 31, 249, 111, 68, 151, 176, 92,\n\t\t140, 31, 241, 84, 217, 110, 12, 62, 236, 168, 76, 205, 255,\n\t\t32, 80, 75, 163, 138, 109, 3, 69, 182, 168, 120, 183, 167,\n\t\t170, 120, 137, 189, 66, 54, 238, 38, 243, 139, 137, 153, 16,\n\t\t27, 83, 17, 145, 64, 188, 137, 38, 188, 76, 227, 39, 250,\n\t\t37, 249, 217, 102, 48, 175, 94, 181, 64, 117, 141, 86, 243,\n\t\t132, 250, 120, 164, 67, 121, 88, 195, 157, 118, 89, 82, 67,\n\t\t93, 156, 35, 35, 157, 19, 35, 156, 79, 61, 92, 216, 82, 124,\n\t\t210, 157, 91, 46, 169, 96, 0, 181, 51, 145, 47, 6, 208, 5,\n\t\t71, 89, 117, 202, 150, 221, 5, 16, 134, 216, 33, 0, 80, 227,\n\t\t68, 83, 148, 200, 58, 150, 19, 47, 80, 113, 76, 0, 94, 119,\n\t\t31, 199, 243, 196, 33, 48, 8, 92, 250, 233, 231, 248, 255,\n\t\t63, 246, 185, 56, 40, 131, 197, 141, 140, 12, 1, 224, 141,\n\t\t226, 165, 75, 207, 239, 237, 21, 123, 190, 161, 225, 131,\n\t\t243, 195, 193, 193, 15, 78, 231, 157, 223, 47, 93, 90, 196,\n\t\t124, 200, 248, 218, 248, 129, 97, 91, 182, 236, 160, 229,\n\t\t124, 35, 227, 174, 104, 124, 32, 58, 189, 191, 178, 36, 135,\n\t\t183, 49, 31, 48, 138, 222, 85, 118, 214, 41, 98, 60, 132,\n\t\t131, 179, 123, 184, 220, 195, 101, 154, 137, 209, 168, 59,\n\t\t204, 7, 89, 254, 54, 77, 155, 142, 94, 47, 175, 237, 195,\n\t\t222, 193, 222, 218, 93, 150, 142, 81, 83, 67, 226, 224, 32,\n\t\t185, 78, 215, 211, 248, 148, 126, 196, 205, 20, 208, 130,\n\t\t86, 116, 133, 237, 92, 192, 93, 62, 136, 15, 210, 184, 1,\n\t\t110, 120, 24, 167, 54, 222, 165, 113, 142, 161, 143, 41, 196,\n\t\t187, 87, 155, 93, 16, 30, 143, 194, 99, 205, 14, 130, 50,\n\t\t254, 195, 170, 216, 250, 105, 111, 242, 184, 62, 79, 232,\n\t\t130, 174, 80, 173, 194, 187, 200, 176, 109, 60, 191, 192,\n\t\t101, 35, 24, 139, 116, 35, 12, 193, 231, 167, 244, 132, 173,\n\t\t37, 114, 106, 54, 149, 89, 167, 92, 245, 175, 233, 71, 112,\n\t\t31, 38, 185, 165, 237, 225, 139, 161, 136, 177, 21, 65, 43,\n\t\t22, 9, 61, 213, 90, 46, 100, 252, 60, 254, 122, 231, 150,\n\t\t235, 34, 241, 14, 135, 58, 104, 234, 89, 41, 17, 93, 7, 221,\n\t\t193, 0, 161, 141, 227, 199, 85, 117, 16, 35, 111, 92, 35,\n\t\t202, 173, 69, 35, 35, 90, 219, 83, 177, 235, 15, 213, 234,\n\t\t93, 163, 201, 174, 223, 143, 66, 51, 61, 30, 238, 255, 193,\n\t\t37, 249, 216, 46, 245, 103, 20, 158, 254, 67, 252, 212, 71,\n\t\t59, 159, 95, 94, 154, 228, 92, 92, 122, 176, 174, 109, 193,\n\t\t174, 151, 153, 118, 107, 142, 170, 16, 47, 33, 28, 86, 49,\n\t\t160, 177, 169, 153, 134, 60, 177, 181, 9, 238, 206, 183, 76,\n\t\t82, 4, 31, 88, 154, 90, 178, 185, 187, 97, 53, 110, 240, 247,\n\t\t254, 177, 76, 150, 11, 31, 59, 82, 146, 122, 120, 189, 109,\n\t\t94, 239, 213, 40, 208, 233, 139, 25, 105, 126, 243, 124, 228,\n\t\t94, 167, 79, 126, 96, 123, 145, 107, 252, 170, 84, 228, 217,\n\t\t248, 176, 230, 202, 4, 124, 62, 165, 255, 174, 254, 96, 57,\n\t\t75, 48, 228, 168, 157, 220, 182, 243, 110, 226, 1, 127, 182,\n\t\t213, 77, 222, 226, 140, 202, 178, 44, 67, 169, 197, 197, 208,\n\t\t133, 227, 5, 1, 76, 138, 41, 126, 56, 13, 162, 38, 180, 60,\n\t\t40, 204, 246, 54, 54, 38, 201, 230, 70, 152, 112, 45, 172,\n\t\t37, 112, 37, 136, 41, 74, 81, 164, 31, 34, 232, 175, 100,\n\t\t161, 5, 38, 69, 203, 16, 153, 37, 188, 211, 103, 189, 47,\n\t\t199, 80, 53, 237, 61, 67, 16, 170, 71, 186, 244, 40, 31, 30,\n\t\t170, 89, 60, 13, 152, 59, 233, 35, 116, 15, 92, 34, 163, 156,\n\t\t210, 200, 171, 161, 161, 89, 73, 89, 147, 175, 134, 53, 105,\n\t\t113, 3, 199, 97, 75, 218, 194, 90, 146, 253, 141, 9, 108,\n\t\t13, 207, 110, 91, 156, 145, 24, 86, 127, 191, 185, 98, 210,\n\t\t214, 234, 164, 176, 186, 75, 7, 15, 94, 136, 80, 254, 117,\n\t\t83, 145, 24, 147, 147, 120, 78, 241, 58, 62, 168, 41, 167,\n\t\t250, 65, 164, 50, 228, 59, 223, 125, 214, 253, 166, 208, 47,\n\t\t66, 102, 238, 140, 40, 100, 165, 58, 192, 65, 215, 73, 159,\n\t\t120, 15, 78, 100, 215, 202, 15, 26, 71, 8, 174, 137, 212,\n\t\t76, 120, 2, 161, 204, 18, 23, 62, 110, 26, 165, 177, 72, 69,\n\t\t17, 132, 117, 206, 34, 106, 113, 145, 230, 246, 39, 84, 166,\n\t\t219, 143, 87, 43, 179, 7, 33, 51, 118, 246, 167, 111, 204,\n\t\t53, 67, 97, 127, 163, 253, 61, 218, 20, 100, 2, 33, 107, 76,\n\t\t162, 143, 161, 73, 183, 82, 168, 46, 167, 201, 199, 10, 192,\n\t\t188, 17, 17, 117, 209, 210, 201, 82, 113, 228, 56, 69, 243,\n\t\t243, 203, 104, 52, 231, 146, 116, 210, 154, 4, 114, 193, 219,\n\t\t187, 103, 168, 0, 145, 216, 249, 41, 174, 185, 29, 247, 17,\n\t\t34, 184, 176, 128, 158, 63, 88, 125, 204, 211, 174, 155, 122,\n\t\t121, 119, 190, 133, 98, 148, 77, 108, 255, 132, 110, 2, 176,\n\t\t25, 0, 204, 90, 33, 236, 22, 190, 109, 204, 151, 142, 13,\n\t\t132, 168, 64, 105, 200, 116, 241, 116, 187, 212, 25, 226,\n\t\t25, 33, 149, 236, 241, 101, 68, 127, 64, 84, 194, 37, 31,\n\t\t183, 47, 188, 220, 179, 34, 86, 71, 137, 107, 163, 197, 147,\n\t\t126, 166, 59, 210, 187, 176, 4, 150, 22, 186, 145, 218, 140,\n\t\t144, 152, 180, 41, 30, 240, 234, 162, 158, 229, 87, 171, 47,\n\t\t205, 110, 205, 104, 107, 60, 57, 212, 202, 131, 157, 73, 229,\n\t\t16, 193, 186, 246, 46, 8, 194, 27, 58, 202, 137, 142, 29,\n\t\t168, 61, 79, 57, 206, 110, 128, 249, 237, 123, 162, 24, 92,\n\t\t235, 23, 108, 32, 212, 138, 230, 158, 136, 19, 176, 35, 31,\n\t\t198, 73, 46, 52, 236, 201, 221, 147, 212, 96, 149, 105, 56,\n\t\t73, 186, 237, 173, 254, 71, 93, 56, 45, 5, 34, 90, 240, 208,\n\t\t77, 167, 45, 216, 65, 218, 31, 146, 13, 235, 154, 187, 38,\n\t\t244, 132, 212, 157, 196, 4, 190, 161, 45, 17, 32, 6, 218,\n\t\t183, 248, 165, 127, 217, 43, 99, 237, 112, 142, 154, 210,\n\t\t117, 64, 50, 36, 117, 197, 27, 39, 22, 220, 70, 244, 240,\n\t\t107, 155, 20, 172, 115, 94, 240, 95, 59, 59, 164, 84, 12,\n\t\t91, 98, 20, 33, 219, 185, 199, 113, 163, 202, 181, 59, 160,\n\t\t214, 27, 215, 215, 169, 7, 68, 22, 141, 91, 231, 16, 79, 104,\n\t\t122, 210, 158, 204, 191, 1, 33, 251, 135, 53, 33, 64, 159,\n\t\t109, 227, 213, 118, 117, 77, 16, 41, 135, 59, 107, 186, 20,\n\t\t176, 125, 169, 238, 130, 210, 79, 59, 114, 22, 206, 23, 193,\n\t\t149, 55, 224, 159, 45, 129, 185, 197, 133, 7, 17, 34, 152,\n\t\t168, 218, 106, 127, 10, 186, 112, 132, 92, 184, 127, 199,\n\t\t51, 134, 42, 244, 103, 42, 30, 138, 72, 68, 254, 232, 136,\n\t\t110, 186, 80, 11, 209, 189, 126, 50, 164, 54, 105, 173, 253,\n\t\t191, 79, 229, 94, 27, 116, 231, 104, 147, 69, 226, 204, 64,\n\t\t86, 66, 78, 199, 126, 10, 123, 8, 32, 14, 76, 62, 119, 108,\n\t\t164, 207, 193, 38, 127, 113, 86, 34, 172, 99, 147, 168, 207,\n\t\t110, 181, 207, 163, 178, 31, 149, 103, 225, 202, 135, 191,\n\t\t27, 78, 124, 243, 206, 55, 243, 209, 246, 49, 170, 243, 251,\n\t\t90, 205, 121, 47, 11, 183, 188, 166, 163, 31, 13, 80, 92,\n\t\t118, 218, 6, 89, 234, 94, 78, 109, 189, 63, 235, 44, 238,\n\t\t185, 179, 15, 215, 34, 157, 191, 80, 69, 232, 47, 58, 206,\n\t\t133, 139, 10, 57, 133, 200, 39, 161, 59, 238, 197, 147, 17,\n\t\t188, 251, 72, 215, 115, 184, 249, 107, 98, 156, 244, 150,\n\t\t61, 229, 212, 190, 154, 226, 219, 222, 146, 209, 196, 88,\n\t\t235, 106, 24, 152, 202, 65, 19, 132, 253, 220, 126, 28, 113,\n\t\t171, 211, 4, 179, 0, 53, 116, 193, 31, 123, 223, 204, 44,\n\t\t178, 223, 24, 233, 241, 202, 130, 221, 48, 203, 170, 219,\n\t\t246, 148, 159, 17, 254, 93, 29, 5, 133, 90, 131, 56, 26, 94,\n\t\t136, 132, 47, 138, 133, 217, 27, 190, 132, 109, 56, 148, 190,\n\t\t245, 136, 19, 172, 89, 243, 221, 63, 200, 246, 61, 37, 243,\n\t\t40, 208, 145, 188, 41, 237, 88, 140, 241, 77, 65, 33, 236,\n\t\t157, 31, 153, 48, 114, 224, 225, 163, 120, 141, 203, 31, 27,\n\t\t220, 82, 38, 137, 117, 210, 182, 98, 0, 211, 2, 60, 184, 197,\n\t\t34, 146, 101, 19, 168, 195, 160, 9, 162, 193, 82, 103, 67,\n\t\t66, 85, 123, 54, 224, 210, 107, 180, 192, 218, 251, 167, 97,\n\t\t87, 50, 205, 254, 94, 95, 66, 177, 89, 11, 175, 254, 196,\n\t\t178, 136, 28, 59, 128, 239, 13, 201, 41, 31, 202, 134, 198,\n\t\t181, 251, 79, 50, 225, 141, 245, 107, 25, 230, 10, 11, 154,\n\t\t72, 144, 60, 211, 18, 243, 59, 155, 252, 76, 110, 195, 222,\n\t\t170, 156, 61, 176, 27, 4, 101, 136, 254, 19, 237, 83, 155,\n\t\t57, 170, 220, 82, 230, 39, 250, 10, 134, 121, 200, 125, 96,\n\t\t72, 4, 26, 233, 232, 121, 84, 30, 129, 235, 51, 9, 117, 4,\n\t\t212, 190, 160, 130, 86, 22, 158, 168, 27, 103, 100, 100, 201,\n\t\t68, 90, 85, 183, 14, 99, 57, 250, 4, 41, 153, 25, 148, 22,\n\t\t148, 154, 81, 155, 17, 43, 15, 133, 65, 40, 192, 59, 206,\n\t\t23, 54, 132, 164, 3, 24, 166, 116, 40, 49, 81, 68, 107, 34,\n\t\t33, 216, 127, 172, 247, 136, 115, 65, 144, 231, 146, 96, 201,\n\t\t137, 203, 144, 131, 151, 245, 4, 42, 113, 233, 128, 253, 76,\n\t\t89, 222, 131, 4, 51, 138, 74, 153, 32, 87, 159, 47, 64, 169,\n\t\t143, 159, 110, 167, 135, 119, 90, 63, 94, 20, 230, 79, 103,\n\t\t83, 95, 161, 205, 17, 209, 158, 52, 21, 105, 212, 117, 224,\n\t\t201, 155, 215, 38, 169, 189, 240, 203, 95, 68, 88, 22, 216,\n\t\t2, 167, 37, 50, 232, 210, 243, 45, 248, 203, 16, 17, 254,\n\t\t142, 15, 143, 238, 57, 91, 107, 233, 200, 241, 175, 141, 121,\n\t\t92, 127, 54, 166, 134, 23, 142, 195, 63, 129, 63, 190, 22,\n\t\t14, 35, 78, 58, 175, 11, 232, 48, 130, 122, 190, 192, 123,\n\t\t227, 172, 171, 172, 159, 208, 80, 120, 11, 42, 76, 26, 147,\n\t\t32, 89, 17, 10, 139, 188, 89, 111, 10, 24, 163, 153, 196,\n\t\t186, 151, 56, 159, 3, 2, 136, 199, 161, 165, 233, 40, 68,\n\t\t15, 153, 41, 69, 105, 35, 2, 29, 145, 94, 49, 249, 170, 154,\n\t\t48, 79, 80, 94, 145, 153, 8, 127, 250, 150, 170, 69, 36, 27,\n\t\t81, 244, 85, 204, 186, 37, 191, 248, 174, 21, 52, 80, 158,\n\t\t170, 108, 170, 171, 27, 55, 187, 34, 141, 168, 141, 159, 189,\n\t\t188, 158, 93, 162, 0, 90, 136, 36, 110, 221, 14, 33, 240,\n\t\t102, 64, 76, 166, 239, 82, 17, 231, 252, 119, 108, 127, 74,\n\t\t210, 91, 171, 96, 132, 216, 108, 34, 178, 226, 220, 38, 209,\n\t\t179, 22, 41, 47, 71, 128, 36, 53, 194, 29, 180, 103, 234,\n\t\t202, 198, 130, 14, 139, 176, 0, 209, 121, 153, 106, 27, 221,\n\t\t94, 117, 14, 79, 144, 35, 16, 132, 130, 147, 183, 137, 183,\n\t\t24, 57, 129, 253, 43, 71, 7, 177, 196, 156, 129, 98, 225,\n\t\t66, 33, 247, 220, 140, 8, 164, 7, 218, 28, 2, 76, 9, 79, 169,\n\t\t112, 5, 70, 67, 195, 61, 23, 117, 219, 53, 55, 244, 219, 243,\n\t\t68, 162, 92, 113, 153, 92, 71, 86, 99, 66, 84, 8, 146, 194,\n\t\t38, 25, 148, 250, 51, 58, 128, 66, 32, 73, 67, 81, 150, 77,\n\t\t125, 156, 185, 147, 68, 66, 19, 16, 185, 156, 136, 89, 8,\n\t\t19, 2, 229, 148, 200, 187, 9, 11, 168, 136, 72, 212, 7, 34,\n\t\t128, 4, 48, 57, 110, 73, 33, 168, 138, 243, 28, 131, 16, 161,\n\t\t41, 9, 197, 74, 36, 66, 159, 227, 12, 229, 24, 145, 16, 21,\n\t\t0, 200, 42, 50, 113, 66, 73, 16, 146, 73, 240, 27, 200, 101,\n\t\t45, 104, 3, 137, 127, 63, 32, 136, 5, 179, 73, 59, 53, 98,\n\t\t36, 146, 176, 202, 24, 18, 83, 130, 72, 92, 228, 114, 78,\n\t\t2, 204, 174, 218, 27, 248, 99, 86, 124, 176, 55, 21, 64, 180,\n\t\t216, 147, 207, 236, 251, 90, 112, 213, 69, 208, 129, 144,\n\t\t155, 161, 168, 198, 60, 90, 139, 129, 35, 101, 57, 82, 5,\n\t\t18, 165, 209, 195, 156, 71, 38, 180, 15, 97, 10, 160, 125,\n\t\t154, 205, 137, 36, 76, 159, 135, 93, 68, 19, 219, 230, 151,\n\t\t11, 23, 208, 37, 142, 79, 67, 194, 129, 23, 155, 123, 170,\n\t\t208, 140, 16, 34, 200, 255, 213, 161, 102, 84, 20, 132, 31,\n\t\t67, 124, 13, 72, 36, 130, 33, 137, 94, 6, 165, 182, 129, 105,\n\t\t93, 135, 80, 30, 249, 173, 113, 206, 170, 221, 106, 174, 133,\n\t\t171, 11, 253, 170, 60, 240, 14, 198, 188, 215, 240, 72, 45,\n\t\t140, 230, 58, 227, 42, 238, 49, 202, 175, 137, 134, 138, 206,\n\t\t1, 73, 249, 46, 21, 249, 223, 64, 30, 233, 148, 108, 69, 112,\n\t\t26, 76, 251, 8, 239, 175, 198, 152, 128, 199, 179, 161, 37,\n\t\t154, 44, 19, 144, 185, 108, 141, 45, 106, 147, 155, 162, 154,\n\t\t182, 24, 58, 193, 214, 0, 50, 21, 112, 254, 138, 175, 207,\n\t\t103, 147, 229, 213, 122, 46, 219, 38, 88, 169, 30, 176, 108,\n\t\t166, 106, 100, 118, 209, 69, 32, 4, 72, 49, 80, 93, 131, 213,\n\t\t89, 138, 170, 209, 173, 132, 76, 165, 54, 92, 244, 204, 217,\n\t\t237, 61, 236, 30, 198, 104, 150, 226, 96, 230, 181, 166, 53,\n\t\t185, 119, 70, 181, 79, 170, 139, 141, 80, 114, 70, 228, 64,\n\t\t127, 206, 198, 93, 228, 220, 63, 106, 220, 63, 224, 253, 245,\n\t\t172, 222, 51, 72, 101, 180, 198, 141, 16, 31, 39, 185, 142,\n\t\t29, 206, 4, 227, 6, 181, 169, 22, 219, 251, 16, 145, 172,\n\t\t168, 145, 191, 64, 184, 211, 2, 182, 197, 191, 48, 19, 9,\n\t\t149, 118, 170, 118, 5, 221, 174, 102, 28, 150, 92, 166, 184,\n\t\t12, 148, 169, 141, 103, 56, 77, 110, 117, 106, 36, 71, 102,\n\t\t62, 39, 128, 122, 32, 99, 189, 19, 113, 249, 118, 0, 76, 219,\n\t\t228, 84, 140, 114, 109, 125, 115, 6, 196, 184, 96, 171, 228,\n\t\t130, 219, 22, 35, 20, 239, 157, 140, 43, 181, 165, 86, 224,\n\t\t13, 235, 155, 220, 103, 184, 165, 155, 166, 250, 206, 247,\n\t\t153, 215, 72, 225, 176, 210, 147, 140, 51, 9, 103, 184, 71,\n\t\t99, 15, 105, 66, 113, 19, 174, 69, 132, 130, 156, 100, 74,\n\t\t149, 26, 14, 144, 25, 213, 164, 235, 230, 226, 216, 34, 227,\n\t\t117, 37, 185, 252, 250, 225, 68, 202, 236, 115, 9, 9, 219,\n\t\t102, 80, 88, 111, 103, 148, 31, 103, 196, 138, 63, 125, 43,\n\t\t125, 251, 214, 136, 17, 79, 51, 79, 19, 135, 187, 34, 139,\n\t\t125, 190, 197, 230, 180, 194, 122, 76, 131, 70, 209, 12, 196,\n\t\t26, 27, 116, 137, 59, 5, 90, 41, 254, 168, 80, 103, 177, 177,\n\t\t88, 37, 30, 215, 2, 28, 85, 98, 54, 25, 21, 178, 105, 9, 215,\n\t\t249, 48, 206, 113, 90, 17, 75, 118, 138, 225, 53, 245, 241,\n\t\t70, 207, 42, 182, 23, 47, 116, 116, 233, 156, 246, 152, 92,\n\t\t140, 203, 153, 33, 194, 85, 163, 116, 42, 166, 84, 219, 112,\n\t\t150, 40, 18, 106, 13, 186, 173, 8, 210, 170, 181, 84, 180,\n\t\t55, 160, 1, 84, 127, 221, 139, 73, 161, 95, 35, 216, 105,\n\t\t172, 233, 16, 109, 144, 86, 140, 177, 85, 32, 169, 236, 244,\n\t\t0, 203, 30, 79, 110, 123, 99, 137, 221, 20, 250, 73, 250,\n\t\t5, 234, 212, 96, 152, 48, 218, 168, 14, 86, 27, 55, 215, 200,\n\t\t87, 136, 5, 157, 65, 157, 234, 43, 166, 102, 28, 252, 217,\n\t\t250, 208, 196, 230, 159, 160, 123, 73, 145, 56, 150, 244,\n\t\t65, 59, 56, 72, 163, 158, 250, 114, 166, 190, 171, 167, 9,\n\t\t66, 32, 120, 162, 67, 133, 254, 220, 24, 117, 109, 178, 86,\n\t\t11, 20, 163, 141, 53, 237, 138, 230, 62, 93, 183, 173, 39,\n\t\t129, 2, 78, 41, 168, 218, 162, 102, 137, 78, 251, 17, 184,\n\t\t91, 152, 208, 61, 162, 15, 201, 126, 223, 121, 234, 127, 90,\n\t\t171, 248, 168, 3, 176, 134, 31, 144, 61, 251, 193, 121, 15,\n\t\t157, 223, 26, 101, 201, 237, 175, 143, 45, 76, 178, 171, 179,\n\t\t196, 17, 23, 199, 30, 199, 205, 144, 114, 158, 29, 110, 176,\n\t\t195, 60, 255, 229, 36, 34, 168, 61, 212, 69, 245, 71, 216,\n\t\t244, 69, 182, 37, 52, 51, 33, 86, 204, 181, 56, 198, 156,\n\t\t126, 78, 228, 231, 75, 227, 87, 39, 77, 81, 84, 173, 101,\n\t\t0, 136, 155, 204, 22, 4, 6, 235, 112, 53, 202, 224, 26, 97,\n\t\t136, 158, 253, 223, 125, 92, 187, 128, 124, 72, 211, 123,\n\t\t201, 72, 15, 134, 171, 155, 245, 193, 85, 66, 63, 153, 247,\n\t\t242, 204, 103, 224, 110, 225, 250, 173, 203, 23, 174, 207,\n\t\t74, 215, 134, 162, 21, 211, 87, 230, 32, 147, 226, 33, 156,\n\t\t17, 74, 49, 228, 225, 174, 47, 17, 224, 99, 33, 0, 118, 237,\n\t\t194, 216, 222, 224, 16, 22, 182, 195, 103, 168, 114, 125,\n\t\t13, 206, 44, 182, 224, 16, 16, 138, 83, 215, 16, 72, 17, 252,\n\t\t13, 29, 96, 112, 31, 249, 59, 39, 68, 6, 216, 14, 179, 0,\n\t\t251, 35, 4, 220, 5, 59, 44, 2, 251, 72, 175, 64, 253, 100,\n\t\t195, 94, 136, 111, 169, 46, 206, 132, 154, 186, 53, 222, 145,\n\t\t242, 9, 66, 103, 49, 233, 205, 113, 65, 61, 221, 144, 244,\n\t\t5, 55, 155, 173, 188, 59, 107, 23, 206, 128, 153, 70, 7, 96,\n\t\t173, 6, 4, 179, 185, 33, 155, 71, 194, 232, 122, 156, 10,\n\t\t216, 213, 230, 154, 0, 54, 162, 118, 53, 116, 237, 250, 75,\n\t\t227, 229, 64, 87, 34, 154, 203, 150, 227, 109, 106, 88, 134,\n\t\t171, 51, 18, 41, 147, 196, 143, 32, 194, 32, 67, 84, 139,\n\t\t132, 180, 21, 18, 87, 33, 196, 242, 177, 35, 121, 13, 49,\n\t\t206, 152, 135, 132, 107, 204, 146, 138, 193, 32, 192, 54,\n\t\t17, 136, 176, 76, 46, 32, 66, 122, 147, 65, 41, 176, 199,\n\t\t37, 2, 52, 135, 253, 236, 190, 169, 69, 66, 60, 190, 3, 50,\n\t\t137, 11, 11, 137, 241, 11, 242, 112, 3, 226, 56, 38, 75, 1,\n\t\t200, 62, 5, 29, 210, 40, 242, 99, 39, 191, 53, 246, 203, 247,\n\t\t11, 163, 173, 129, 190, 237, 218, 162, 196, 212, 197, 251,\n\t\t241, 93, 240, 85, 13, 251, 126, 231, 20, 207, 88, 135, 16,\n\t\t108, 14, 22, 23, 254, 158, 211, 154, 226, 38, 69, 21, 49,\n\t\t71, 108, 21, 204, 187, 250, 149, 17, 160, 93, 235, 254, 13,\n\t\t254, 136, 111, 108, 58, 57, 57, 184, 184, 237, 211, 28, 73,\n\t\t120, 232, 167, 0, 209, 1, 211, 38, 210, 162, 205, 81, 50,\n\t\t77, 190, 49, 18, 56, 128, 237, 160, 90, 136, 110, 130, 23,\n\t\t62, 84, 40, 48, 211, 22, 132, 78, 91, 157, 248, 132, 167,\n\t\t101, 166, 21, 21, 67, 255, 117, 6, 130, 155, 11, 135, 3, 75,\n\t\t98, 88, 54, 42, 22, 213, 149, 19, 138, 90, 68, 7, 157, 157,\n\t\t98, 125, 109, 5, 0, 199, 86, 112, 245, 85, 58, 204, 42, 95,\n\t\t108, 66, 7, 130, 13, 205, 209, 247, 102, 33, 117, 7, 39, 34,\n\t\t56, 85, 83, 49, 146, 31, 41, 98, 142, 206, 183, 170, 247,\n\t\t97, 71, 133, 98, 128, 212, 190, 140, 196, 96, 55, 78, 218,\n\t\t31, 35, 212, 209, 60, 131, 27, 168, 100, 89, 26, 231, 252,\n\t\t92, 71, 52, 121, 250, 60, 128, 254, 56, 232, 66, 209, 239,\n\t\t42, 27, 81, 19, 197, 147, 46, 92, 195, 252, 116, 103, 181,\n\t\t32, 30, 121, 43, 34, 100, 235, 68, 151, 83, 208, 198, 205,\n\t\t242, 134, 152, 157, 175, 244, 64, 92, 207, 0, 136, 29, 226,\n\t\t91, 94, 223, 195, 207, 76, 200, 10, 43, 9, 242, 133, 106,\n\t\t60, 18, 208, 138, 102, 221, 122, 121, 10, 182, 82, 74, 55,\n\t\t174, 97, 31, 63, 91, 184, 10, 231, 194, 24, 105, 110, 112,\n\t\t218, 148, 225, 52, 70, 33, 229, 54, 186, 192, 88, 134, 221,\n\t\t145, 188, 254, 92, 167, 58, 108, 116, 145, 227, 26, 147, 43,\n\t\t103, 151, 114, 178, 171, 2, 181, 90, 35, 90, 3, 25, 4, 141,\n\t\t170, 240, 220, 172, 240, 46, 147, 59, 41, 8, 110, 188, 6,\n\t\t93, 36, 56, 48, 165, 210, 134, 106, 99, 232, 187, 253, 189,\n\t\t63, 170, 93, 35, 134, 218, 220, 66, 254, 128, 162, 117, 28,\n\t\t36, 23, 92, 54, 94, 200, 57, 151, 253, 233, 237, 130, 139,\n\t\t185, 126, 213, 234, 55, 74, 230, 67, 143, 231, 105, 206, 102,\n\t\t212, 159, 1, 255, 60, 102, 89, 73, 153, 145, 236, 56, 228,\n\t\t234, 4, 41, 153, 140, 242, 56, 106, 125, 81, 54, 124, 22,\n\t\t43, 168, 178, 19, 189, 130, 133, 161, 120, 149, 50, 12, 65,\n\t\t18, 108, 33, 243, 89, 140, 85, 46, 66, 212, 204, 196, 92,\n\t\t153, 95, 229, 115, 184, 180, 128, 39, 112, 188, 145, 142,\n\t\t51, 120, 3, 46, 71, 69, 48, 56, 3, 99, 95, 118, 86, 253, 21,\n\t\t154, 80, 100, 16, 87, 90, 149, 7, 69, 33, 193, 197, 188, 98,\n\t\t40, 76, 5, 88, 166, 42, 14, 209, 89, 133, 222, 93, 2, 178,\n\t\t158, 90, 65, 44, 10, 127, 121, 199, 164, 234, 55, 14, 132,\n\t\t16, 41, 140, 96, 138, 0, 51, 72, 142, 146, 137, 96, 18, 153,\n\t\t129, 233, 147, 133, 213, 171, 240, 163, 206, 178, 71, 79,\n\t\t8, 242, 202, 184, 193, 219, 139, 197, 81, 132, 79, 112, 3,\n\t\t33, 238, 44, 241, 62, 191, 79, 247, 156, 225, 114, 213, 36,\n\t\t26, 165, 53, 106, 161, 207, 240, 249, 19, 220, 105, 192, 107,\n\t\t212, 6, 138, 107, 24, 99, 134, 239, 93, 159, 6, 160, 11, 28,\n\t\t154, 194, 208, 143, 90, 207, 94, 170, 188, 216, 194, 41, 95,\n\t\t244, 86, 36, 169, 75, 245, 246, 189, 213, 244, 112, 171, 153,\n\t\t226, 174, 237, 94, 92, 152, 160, 19, 135, 93, 156, 231, 238,\n\t\t108, 38, 100, 255, 112, 117, 63, 254, 128, 97, 231, 180, 206,\n\t\t144, 151, 207, 254, 87, 164, 173, 77, 241, 73, 217, 181, 232,\n\t\t2, 54, 101, 86, 215, 203, 70, 103, 20, 114, 104, 157, 174,\n\t\t33, 82, 232, 138, 243, 223, 165, 199, 182, 248, 122, 81, 232,\n\t\t20, 123, 119, 46, 11, 44, 94, 149, 187, 89, 167, 75, 9, 30,\n\t\t230, 51, 188, 30, 36, 135, 11, 57, 242, 51, 6, 166, 213, 248,\n\t\t45, 247, 144, 78, 87, 236, 218, 39, 176, 93, 184, 99, 217,\n\t\t177, 25, 203, 172, 236, 36, 58, 19, 117, 60, 232, 46, 74,\n\t\t172, 201, 55, 201, 36, 222, 245, 137, 63, 107, 121, 132, 58,\n\t\t165, 114, 146, 241, 229, 242, 54, 174, 232, 41, 151, 148,\n\t\t231, 139, 112, 191, 229, 213, 254, 74, 232, 2, 192, 139, 203,\n\t\t209, 132, 45, 14, 153, 181, 194, 154, 15, 32, 84, 68, 65,\n\t\t245, 38, 248, 43, 176, 207, 40, 31, 10, 32, 38, 180, 113,\n\t\t237, 159, 114, 255, 67, 43, 196, 162, 119, 24, 123, 64, 66,\n\t\t167, 72, 12, 25, 208, 117, 229, 89, 16, 12, 82, 14, 63, 247,\n\t\t76, 130, 3, 242, 193, 75, 240, 54, 8, 193, 39, 52, 131, 71,\n\t\t59, 94, 116, 57, 148, 227, 245, 204, 97, 54, 54, 125, 144,\n\t\t13, 131, 225, 142, 135, 197, 184, 111, 254, 87, 204, 187,\n\t\t77, 48, 232, 246, 231, 227, 27, 28, 190, 100, 230, 32, 184,\n\t\t101, 164, 85, 220, 178, 161, 165, 245, 197, 236, 178, 207,\n\t\t81, 194, 152, 120, 0, 165, 4, 7, 217, 132, 196, 237, 105,\n\t\t167, 11, 113, 158, 78, 6, 112, 36, 133, 184, 53, 45, 228,\n\t\t219, 171, 218, 83, 96, 225, 53, 166, 112, 241, 89, 127, 236,\n\t\t81, 204, 108, 255, 41, 255, 248, 63, 206, 125, 144, 76, 241,\n\t\t255, 248, 196, 127, 54, 102, 11, 54, 162, 205, 193, 104, 180,\n\t\t139, 216, 142, 49, 204, 228, 68, 130, 150, 236, 4, 184, 160,\n\t\t63, 139, 222, 39, 38, 225, 85, 118, 200, 102, 28, 73, 92,\n\t\t204, 212, 198, 9, 224, 133, 197, 25, 168, 213, 49, 12, 205,\n\t\t223, 253, 157, 198, 143, 193, 226, 130, 221, 108, 94, 219,\n\t\t149, 121, 107, 211, 93, 226, 229, 17, 17, 233, 107, 27, 120,\n\t\t141, 56, 246, 238, 130, 138, 179, 12, 99, 245, 82, 190, 67,\n\t\t204, 106, 148, 45, 21, 136, 51, 63, 68, 199, 148, 215, 219,\n\t\t253, 118, 47, 151, 212, 23, 53, 186, 183, 110, 216, 208, 74,\n\t\t93, 55, 105, 247, 6, 63, 62, 21, 27, 29, 243, 199, 93, 205,\n\t\t104, 248, 18, 50, 184, 184, 213, 221, 192, 142, 51, 253, 78,\n\t\t75, 35, 83, 82, 211, 248, 238, 113, 127, 118, 57, 153, 60,\n\t\t208, 62, 228, 7, 187, 255, 201, 138, 158, 97, 112, 39, 103,\n\t\t198, 92, 202, 143, 143, 251, 152, 154, 74, 17, 73, 180, 79,\n\t\t115, 255, 147, 25, 227, 81, 242, 209, 189, 188, 223, 131,\n\t\t28, 89, 81, 50, 208, 96, 115, 107, 29, 25, 105, 157, 232,\n\t\t252, 199, 31, 31, 251, 109, 129, 66, 1, 116, 105, 196, 13,\n\t\t236, 11, 1, 123, 30, 39, 209, 127, 150, 56, 90, 162, 229,\n\t\t222, 213, 144, 252, 152, 229, 68, 105, 158, 189, 66, 10, 238,\n\t\t212, 226, 142, 55, 223, 42, 81, 223, 130, 251, 164, 17, 39,\n\t\t184, 205, 1, 123, 195, 147, 232, 40, 178, 199, 18, 194, 244,\n\t\t169, 150, 31, 183, 156, 152, 236, 216, 209, 167, 165, 196,\n\t\t17, 0, 88, 114, 186, 68, 117, 11, 188, 239, 207, 12, 206,\n\t\t116, 162, 38, 249, 90, 54, 81, 117, 153, 210, 130, 105, 10,\n\t\t180, 3, 44, 83, 234, 81, 97, 117, 97, 219, 131, 125, 211,\n\t\t81, 23, 120, 122, 116, 85, 84, 61, 243, 87, 201, 21, 119,\n\t\t172, 3, 114, 248, 158, 247, 67, 229, 232, 255, 201, 4, 193,\n\t\t153, 171, 244, 105, 168, 72, 161, 17, 21, 59, 211, 215, 130,\n\t\t250, 59, 59, 168, 160, 183, 46, 40, 147, 215, 220, 149, 153,\n\t\t69, 189, 96, 3, 255, 102, 64, 201, 13, 0, 42, 10, 134, 64,\n\t\t82, 51, 76, 197, 52, 176, 40, 192, 190, 0, 68, 176, 35, 217,\n\t\t247, 96, 102, 174, 1, 96, 42, 5, 202, 70, 58, 131, 116, 108,\n\t\t29, 11, 128, 224, 66, 48, 211, 19, 128, 252, 137, 16, 72,\n\t\t12, 131, 64, 202, 20, 96, 92, 149, 161, 42, 78, 185, 78, 128,\n\t\t219, 89, 28, 42, 43, 137, 230, 186, 213, 101, 236, 143, 78,\n\t\t138, 147, 123, 199, 122, 239, 173, 112, 14, 225, 249, 115,\n\t\t118, 122, 178, 102, 90, 111, 51, 89, 23, 161, 172, 133, 222,\n\t\t1, 148, 198, 228, 228, 176, 175, 46, 158, 62, 166, 14, 157,\n\t\t248, 210, 67, 50, 243, 240, 184, 143, 93, 128, 91, 128, 192,\n\t\t95, 18, 96, 159, 189, 14, 29, 224, 193, 225, 252, 49, 145,\n\t\t30, 241, 102, 167, 107, 71, 29, 150, 46, 117, 186, 122, 213,\n\t\t1, 116, 172, 216, 223, 222, 1, 246, 182, 183, 103, 142, 176,\n\t\t63, 178, 54, 130, 244, 30, 46, 222, 92, 4, 161, 253, 41, 82,\n\t\t100, 83, 30, 227, 101, 111, 85, 117, 147, 195, 167, 220, 252,\n\t\t17, 38, 154, 188, 102, 209, 74, 243, 114, 163, 173, 74, 154,\n\t\t206, 138, 210, 75, 21, 114, 229, 117, 185, 188, 8, 237, 112,\n\t\t141, 201, 246, 205, 32, 1, 66, 88, 17, 132, 145, 183, 88,\n\t\t24, 108, 41, 34, 33, 253, 143, 210, 18, 17, 201, 249, 207,\n\t\t149, 252, 222, 105, 178, 22, 67, 123, 10, 183, 20, 228, 222,\n\t\t152, 137, 193, 110, 110, 237, 195, 65, 174, 247, 221, 2, 92,\n\t\t40, 31, 53, 71, 17, 195, 139, 224, 158, 108, 192, 70, 118,\n\t\t194, 123, 31, 224, 56, 15, 80, 119, 226, 66, 21, 1, 154, 214,\n\t\t234, 233, 242, 79, 213, 150, 141, 76, 20, 121, 204, 98, 85,\n\t\t104, 218, 50, 116, 90, 137, 78, 243, 67, 167, 84, 200, 117,\n\t\t215, 125, 229, 141, 24, 71, 70, 66, 25, 177, 199, 209, 149,\n\t\t131, 153, 162, 242, 181, 2, 6, 35, 17, 72, 169, 17, 144, 148,\n\t\t30, 210, 176, 66, 108, 91, 17, 91, 10, 181, 17, 199, 112,\n\t\t108, 182, 32, 3, 21, 117, 254, 149, 2, 15, 9, 161, 207, 204,\n\t\t167, 73, 193, 164, 247, 201, 193, 81, 232, 219, 139, 34, 131,\n\t\t174, 81, 204, 80, 123, 163, 219, 52, 0, 234, 169, 249, 162,\n\t\t224, 250, 21, 226, 20, 191, 118, 7, 40, 112, 77, 126, 92,\n\t\t197, 138, 243, 32, 120, 86, 204, 181, 131, 5, 43, 168, 141,\n\t\t212, 9, 64, 155, 211, 170, 169, 155, 54, 81, 241, 255, 149,\n\t\t120, 229, 161, 165, 247, 29, 158, 177, 54, 19, 90, 9, 200,\n\t\t235, 197, 133, 125, 151, 89, 59, 167, 235, 6, 68, 244, 184,\n\t\t11, 3, 52, 18, 37, 106, 139, 237, 16, 177, 50, 112, 108, 230,\n\t\t163, 215, 45, 238, 92, 91, 71, 135, 198, 234, 28, 12, 155,\n\t\t229, 30, 233, 81, 201, 6, 127, 93, 72, 164, 36, 70, 26, 1,\n\t\t128, 135, 54, 30, 188, 113, 157, 73, 18, 19, 179, 122, 117,\n\t\t226, 134, 13, 151, 38, 71, 155, 42, 0, 85, 147, 62, 243, 238,\n\t\t61, 112, 252, 107, 50, 156, 82, 89, 137, 92, 121, 9, 250,\n\t\t7, 1, 177, 197, 201, 38, 103, 109, 78, 75, 60, 164, 66, 118,\n\t\t78, 32, 162, 32, 126, 182, 72, 185, 253, 128, 219, 72, 247,\n\t\t246, 199, 159, 87, 8, 148, 69, 209, 131, 221, 97, 167, 201,\n\t\t190, 21, 166, 84, 198, 25, 253, 47, 133, 234, 40, 116, 119,\n\t\t156, 15, 130, 228, 114, 165, 87, 9, 117, 99, 9, 62, 184, 206,\n\t\t0, 221, 183, 254, 210, 137, 245, 228, 253, 73, 218, 171, 171,\n\t\t199, 14, 200, 160, 178, 83, 221, 59, 199, 181, 33, 155, 208,\n\t\t122, 141, 247, 91, 95, 214, 151, 148, 219, 207, 56, 207, 248,\n\t\t127, 97, 30, 13, 91, 28, 48, 177, 53, 98, 246, 104, 50, 61,\n\t\t122, 162, 241, 185, 15, 130, 82, 249, 80, 45, 214, 192, 236,\n\t\t216, 128, 170, 220, 58, 39, 3, 13, 96, 124, 59, 52, 130, 214,\n\t\t194, 46, 139, 223, 122, 189, 113, 88, 79, 79, 61, 59, 59,\n\t\t181, 116, 98, 192, 70, 231, 117, 152, 111, 249, 10, 190, 149,\n\t\t101, 212, 136, 88, 162, 55, 59, 127, 219, 234, 151, 129, 153,\n\t\t41, 89, 103, 239, 251, 103, 189, 1, 11, 222, 112, 91, 248,\n\t\t163, 245, 152, 86, 178, 209, 133, 212, 249, 180, 202, 12,\n\t\t99, 172, 110, 39, 45, 218, 78, 36, 227, 237, 131, 96, 109,\n\t\t99, 21, 245, 71, 104, 141, 22, 57, 40, 109, 5, 236, 22, 132,\n\t\t244, 99, 215, 16, 66, 219, 116, 108, 0, 130, 93, 224, 232,\n\t\t58, 173, 97, 120, 145, 82, 186, 38, 153, 74, 70, 191, 160,\n\t\t72, 219, 212, 50, 142, 231, 68, 21, 231, 99, 188, 183, 110,\n\t\t9, 193, 109, 101, 144, 182, 237, 185, 71, 60, 102, 106, 197,\n\t\t111, 181, 126, 229, 254, 186, 71, 6, 190, 208, 160, 173, 146,\n\t\t53, 82, 229, 254, 246, 36, 201, 222, 109, 32, 17, 192, 86,\n\t\t77, 20, 74, 176, 91, 139, 0, 119, 150, 28, 172, 144, 175,\n\t\t135, 108, 245, 240, 71, 113, 78, 255, 90, 208, 170, 112, 214,\n\t\t144, 217, 104, 17, 168, 98, 57, 82, 76, 188, 181, 186, 114,\n\t\t87, 71, 254, 243, 236, 208, 170, 168, 219, 3, 182, 178, 133,\n\t\t37, 151, 62, 145, 118, 119, 58, 174, 252, 113, 94, 54, 195,\n\t\t112, 255, 108, 102, 196, 253, 253, 205, 127, 49, 82, 49, 216,\n\t\t40, 145, 168, 25, 139, 248, 243, 211, 200, 102, 136, 229,\n\t\t225, 109, 207, 34, 114, 155, 25, 227, 130, 233, 241, 169,\n\t\t143, 54, 15, 214, 154, 31, 73, 82, 246, 13, 220, 142, 174,\n\t\t118, 155, 250, 178, 3, 248, 123, 104, 253, 232, 138, 105,\n\t\t107, 11, 76, 94, 114, 90, 208, 171, 181, 90, 177, 18, 218,\n\t\t81, 243, 88, 196, 72, 105, 244, 220, 13, 194, 99, 51, 98,\n\t\t96, 136, 237, 85, 103, 47, 2, 106, 109, 249, 59, 115, 32,\n\t\t128, 15, 233, 178, 195, 244, 165, 44, 184, 31, 177, 15, 203,\n\t\t122, 111, 193, 197, 31, 242, 152, 211, 8, 115, 53, 2, 251,\n\t\t82, 240, 228, 131, 148, 200, 6, 159, 58, 209, 139, 189, 235,\n\t\t86, 230, 54, 163, 168, 235, 216, 8, 159, 119, 189, 20, 133,\n\t\t126, 49, 230, 145, 233, 120, 185, 232, 93, 151, 210, 143,\n\t\t243, 125, 25, 185, 135, 100, 32, 182, 196, 100, 22, 168, 95,\n\t\t0, 155, 109, 34, 180, 170, 243, 232, 227, 182, 138, 249, 155,\n\t\t100, 177, 155, 195, 142, 239, 250, 79, 214, 149, 191, 18,\n\t\t130, 71, 141, 172, 173, 190, 103, 114, 165, 237, 102, 231,\n\t\t147, 100, 143, 96, 127, 192, 98, 209, 227, 113, 170, 191,\n\t\t126, 168, 237, 74, 147, 79, 143, 78, 239, 156, 43, 55, 210,\n\t\t182, 99, 4, 205, 122, 77, 199, 164, 13, 24, 17, 226, 105,\n\t\t189, 0, 6, 28, 124, 220, 175, 16, 130, 59, 0, 63, 40, 187,\n\t\t5, 57, 92, 209, 62, 11, 53, 127, 97, 255, 146, 125, 147, 62,\n\t\t62, 70, 46, 121, 127, 246, 134, 16, 181, 63, 249, 118, 218,\n\t\t35, 228, 181, 243, 147, 235, 211, 144, 29, 80, 103, 8, 25,\n\t\t36, 142, 174, 146, 82, 86, 240, 11, 223, 119, 177, 128, 145,\n\t\t111, 161, 121, 29, 43, 109, 168, 126, 162, 22, 151, 155, 30,\n\t\t108, 43, 223, 66, 161, 9, 13, 13, 235, 123, 33, 36, 89, 121,\n\t\t219, 27, 167, 111, 231, 137, 86, 43, 86, 131, 155, 41, 32,\n\t\t141, 144, 200, 197, 35, 138, 211, 14, 180, 175, 207, 23, 130,\n\t\t114, 126, 235, 28, 239, 112, 177, 196, 37, 84, 136, 59, 255,\n\t\t25, 154, 193, 241, 175, 244, 166, 239, 155, 245, 169, 145,\n\t\t194, 41, 19, 114, 61, 230, 198, 37, 210, 82, 124, 117, 250,\n\t\t121, 125, 137, 51, 159, 186, 85, 247, 254, 194, 34, 147, 212,\n\t\t219, 122, 52, 228, 60, 240, 244, 225, 56, 94, 131, 33, 47,\n\t\t128, 113, 179, 78, 121, 5, 101, 254, 73, 48, 15, 6, 153, 165,\n\t\t235, 70, 53, 29, 87, 151, 25, 61, 125, 181, 60, 7, 9, 116,\n\t\t47, 146, 189, 131, 119, 205, 219, 174, 21, 64, 228, 141, 193,\n\t\t12, 51, 254, 35, 14, 66, 248, 15, 120, 114, 119, 25, 6, 247,\n\t\t17, 15, 203, 217, 20, 246, 49, 136, 76, 124, 194, 78, 148,\n\t\t148, 79, 187, 89, 92, 254, 253, 60, 73, 68, 164, 155, 95,\n\t\t99, 249, 142, 41, 107, 142, 110, 106, 44, 205, 42, 109, 220,\n\t\t116, 244, 127, 215, 211, 11, 202, 139, 111, 78, 43, 47, 57,\n\t\t33, 211, 105, 21, 151, 195, 204, 30, 171, 138, 95, 10, 133,\n\t\t210, 121, 232, 130, 203, 10, 173, 191, 94, 38, 124, 89, 188,\n\t\t218, 236, 9, 108, 189, 147, 197, 115, 234, 110, 73, 123, 120,\n\t\t69, 226, 98, 210, 221, 171, 89, 47, 141, 142, 87, 224, 229,\n\t\t174, 15, 168, 153, 141, 254, 151, 16, 156, 29, 1, 75, 22,\n\t\t167, 14, 184, 60, 127, 228, 223, 152, 73, 181, 221, 46, 76,\n\t\t135, 91, 73, 41, 46, 170, 22, 222, 171, 104, 210, 174, 62,\n\t\t187, 188, 211, 133, 49, 213, 87, 90, 215, 124, 87, 46, 144,\n\t\t40, 158, 78, 215, 139, 69, 89, 34, 213, 216, 162, 70, 58,\n\t\t205, 214, 179, 45, 215, 43, 142, 40, 92, 165, 18, 94, 16,\n\t\t145, 41, 130, 241, 39, 149, 212, 48, 100, 247, 222, 27, 96,\n\t\t255, 13, 69, 130, 115, 23, 232, 16, 128, 32, 3, 110, 66, 11,\n\t\t49, 68, 133, 234, 158, 92, 241, 134, 174, 72, 213, 141, 112,\n\t\t62, 43, 183, 77, 121, 124, 48, 254, 224, 210, 188, 20, 215,\n\t\t143, 138, 239, 2, 229, 31, 32, 63, 46, 204, 80, 21, 74, 168,\n\t\t67, 8, 208, 7, 43, 192, 144, 134, 79, 106, 195, 215, 245,\n\t\t45, 83, 67, 134, 254, 120, 88, 130, 82, 44, 196, 249, 153,\n\t\t93, 252, 8, 18, 232, 177, 125, 29, 83, 216, 164, 57, 186,\n\t\t79, 148, 0, 58, 202, 224, 179, 199, 227, 141, 71, 129, 133,\n\t\t7, 74, 14, 148, 206, 223, 108, 53, 248, 133, 151, 157, 45,\n\t\t120, 76, 141, 92, 23, 17, 227, 181, 74, 57, 88, 140, 206,\n\t\t1, 107, 75, 45, 192, 47, 210, 31, 38, 122, 126, 166, 129,\n\t\t87, 91, 58, 27, 130, 166, 93, 139, 141, 198, 121, 2, 152,\n\t\t159, 189, 102, 136, 70, 208, 165, 31, 26, 234, 154, 80, 107,\n\t\t184, 239, 240, 254, 167, 249, 106, 143, 63, 138, 168, 240,\n\t\t144, 138, 180, 103, 29, 86, 0, 203, 67, 214, 212, 79, 9, 216,\n\t\t38, 163, 214, 12, 228, 213, 189, 82, 131, 3, 147, 245, 153,\n\t\t18, 202, 205, 41, 129, 131, 12, 207, 249, 213, 5, 252, 209,\n\t\t80, 120, 109, 119, 16, 120, 20, 21, 91, 119, 208, 243, 193,\n\t\t142, 80, 133, 243, 183, 54, 142, 120, 47, 18, 26, 19, 86,\n\t\t183, 167, 35, 127, 240, 80, 43, 107, 166, 235, 39, 203, 91,\n\t\t96, 160, 228, 246, 244, 235, 111, 18, 242, 175, 238, 89, 210,\n\t\t61, 195, 153, 97, 175, 22, 242, 53, 215, 213, 145, 249, 203,\n\t\t65, 123, 13, 140, 26, 20, 239, 237, 63, 123, 182, 191, 247,\n\t\t245, 89, 76, 221, 90, 114, 157, 161, 176, 39, 95, 105, 23,\n\t\t200, 117, 142, 9, 96, 236, 65, 204, 189, 61, 204, 164, 206,\n\t\t73, 136, 55, 70, 135, 136, 90, 184, 197, 71, 177, 241, 226,\n\t\t55, 69, 88, 197, 175, 16, 71, 120, 117, 203, 212, 174, 52,\n\t\t115, 112, 114, 143, 223, 213, 200, 106, 102, 230, 231, 43,\n\t\t175, 176, 179, 54, 125, 22, 39, 238, 39, 42, 219, 92, 180,\n\t\t241, 126, 161, 3, 189, 224, 204, 204, 89, 101, 37, 80, 244,\n\t\t76, 180, 224, 29, 111, 111, 241, 223, 22, 216, 150, 225, 129,\n\t\t183, 167, 87, 246, 218, 139, 159, 174, 28, 70, 247, 28, 36,\n\t\t43, 215, 179, 180, 14, 121, 84, 140, 202, 71, 49, 82, 59,\n\t\t193, 112, 26, 66, 143, 215, 183, 142, 109, 13, 82, 193, 190,\n\t\t160, 241, 226, 44, 245, 13, 59, 35, 49, 46, 196, 30, 10, 170,\n\t\t92, 225, 35, 114, 222, 151, 70, 213, 58, 168, 98, 172, 11,\n\t\t183, 62, 172, 184, 145, 131, 31, 106, 171, 206, 187, 147,\n\t\t3, 110, 232, 245, 191, 232, 53, 82, 98, 244, 247, 115, 85,\n\t\t168, 211, 195, 21, 48, 191, 8, 68, 89, 149, 90, 194, 84, 209,\n\t\t4, 115, 239, 78, 227, 130, 12, 87, 111, 235, 110, 22, 144,\n\t\t78, 39, 175, 148, 183, 34, 205, 90, 238, 228, 128, 74, 174,\n\t\t183, 54, 58, 50, 154, 226, 26, 138, 229, 206, 153, 118, 13,\n\t\t249, 81, 135, 139, 253, 1, 123, 140, 161, 226, 115, 32, 22,\n\t\t198, 59, 33, 8, 159, 165, 191, 247, 136, 91, 80, 116, 15,\n\t\t54, 127, 148, 92, 221, 230, 21, 15, 54, 106, 142, 231, 136,\n\t\t49, 154, 149, 144, 159, 255, 210, 27, 109, 157, 166, 97, 8,\n\t\t128, 183, 159, 151, 249, 168, 206, 252, 188, 227, 185, 49,\n\t\t109, 114, 243, 214, 20, 97, 212, 140, 226, 180, 188, 188,\n\t\t227, 105, 92, 233, 113, 151, 9, 142, 180, 208, 186, 105, 46,\n\t\t120, 63, 243, 93, 231, 187, 180, 170, 92, 85, 44, 75, 56,\n\t\t95, 199, 131, 156, 11, 32, 40, 244, 23, 206, 96, 117, 5, 238,\n\t\t239, 221, 90, 115, 64, 79, 119, 174, 235, 47, 187, 203, 106,\n\t\t2, 77, 193, 72, 57, 86, 76, 224, 163, 49, 115, 128, 186, 112,\n\t\t0, 181, 79, 128, 192, 230, 20, 18, 6, 77, 36, 48, 226, 66,\n\t\t54, 82, 198, 136, 165, 107, 192, 211, 105, 24, 66, 12, 238,\n\t\t80, 157, 129, 0, 38, 191, 72, 10, 218, 170, 142, 173, 222,\n\t\t61, 49, 19, 229, 218, 20, 178, 189, 234, 169, 69, 225, 49,\n\t\t99, 25, 153, 120, 101, 8, 199, 38, 49, 216, 65, 148, 218,\n\t\t75, 66, 73, 164, 57, 177, 201, 68, 105, 143, 230, 155, 81,\n\t\t133, 131, 158, 230, 32, 58, 110, 79, 154, 138, 157, 15, 111,\n\t\t64, 168, 32, 218, 230, 27, 0, 75, 60, 29, 66, 192, 105, 53,\n\t\t17, 79, 228, 94, 29, 79, 85, 72, 150, 103, 29, 136, 88, 250,\n\t\t101, 81, 75, 28, 236, 23, 137, 99, 50, 62, 80, 143, 13, 39,\n\t\t50, 46, 56, 95, 96, 16, 111, 86, 144, 126, 18, 171, 151, 200,\n\t\t168, 128, 241, 128, 73, 253, 192, 96, 226, 200, 129, 41, 101,\n\t\t99, 36, 8, 73, 9, 207, 60, 132, 185, 225, 171, 96, 48, 67,\n\t\t58, 46, 102, 100, 51, 242, 208, 3, 236, 108, 88, 161, 251,\n\t\t170, 176, 86, 130, 246, 53, 147, 253, 116, 197, 54, 245, 122,\n\t\t118, 184, 60, 36, 114, 188, 23, 123, 89, 198, 141, 37, 216,\n\t\t242, 184, 178, 203, 104, 170, 207, 82, 200, 37, 106, 92, 217,\n\t\t235, 213, 219, 86, 60, 101, 51, 71, 57, 61, 22, 55, 75, 15,\n\t\t199, 224, 177, 183, 121, 140, 11, 213, 178, 1, 119, 76, 190,\n\t\t100, 63, 248, 117, 134, 71, 12, 152, 113, 153, 201, 32, 113,\n\t\t93, 225, 24, 110, 34, 226, 147, 60, 225, 41, 245, 169, 85,\n\t\t130, 128, 136, 111, 10, 77, 129, 245, 255, 254, 242, 180,\n\t\t15, 11, 68, 179, 199, 90, 104, 13, 14, 139, 30, 119, 239,\n\t\t27, 123, 48, 251, 74, 139, 132, 187, 244, 25, 205, 19, 243,\n\t\t244, 218, 141, 83, 235, 23, 171, 104, 166, 239, 164, 156,\n\t\t190, 102, 140, 154, 245, 138, 211, 168, 2, 253, 8, 66, 8,\n\t\t17, 224, 234, 239, 36, 94, 224, 135, 152, 170, 123, 214, 3,\n\t\t132, 17, 54, 8, 131, 255, 33, 53, 34, 196, 81, 96, 79, 83,\n\t\t114, 68, 42, 29, 122, 219, 95, 105, 4, 125, 224, 221, 133,\n\t\t34, 24, 147, 202, 227, 14, 136, 6, 98, 107, 71, 238, 145,\n\t\t33, 143, 111, 85, 183, 207, 55, 180, 210, 44, 200, 0, 86,\n\t\t32, 174, 209, 76, 171, 28, 17, 88, 202, 10, 43, 100, 123,\n\t\t3, 199, 80, 85, 211, 215, 33, 2, 84, 0, 16, 186, 142, 167,\n\t\t63, 78, 121, 197, 167, 152, 106, 24, 87, 65, 64, 172, 68,\n\t\t220, 208, 58, 173, 34, 94, 45, 7, 30, 22, 31, 252, 113, 80,\n\t\t31, 169, 33, 134, 145, 180, 237, 34, 153, 171, 35, 2, 132,\n\t\t0, 113, 219, 112, 77, 124, 240, 42, 30, 225, 130, 54, 39,\n\t\t144, 158, 49, 163, 99, 131, 201, 25, 15, 60, 104, 193, 171,\n\t\t225, 157, 154, 73, 112, 43, 148, 120, 171, 115, 91, 33, 58,\n\t\t140, 240, 7, 150, 153, 84, 173, 74, 19, 65, 73, 1, 6, 24,\n\t\t240, 203, 19, 63, 25, 99, 74, 181, 62, 128, 5, 185, 118, 48,\n\t\t25, 148, 8, 165, 99, 36, 183, 82, 45, 110, 68, 18, 98, 101,\n\t\t54, 4, 240, 139, 192, 141, 245, 93, 191, 164, 241, 200, 156,\n\t\t187, 40, 13, 218, 62, 102, 148, 225, 36, 233, 189, 155, 190,\n\t\t71, 239, 147, 125, 132, 176, 107, 87, 68, 35, 255, 11, 153,\n\t\t26, 159, 159, 134, 26, 160, 14, 81, 125, 119, 61, 30, 247,\n\t\t104, 30, 138, 135, 88, 58, 135, 236, 123, 209, 124, 3, 108,\n\t\t6, 189, 203, 209, 252, 91, 44, 48, 222, 53, 252, 234, 204,\n\t\t199, 107, 247, 77, 224, 253, 7, 101, 138, 221, 167, 255, 75,\n\t\t117, 210, 142, 73, 12, 98, 41, 78, 67, 123, 100, 60, 88, 47,\n\t\t73, 252, 201, 39, 56, 41, 104, 225, 29, 108, 131, 97, 206,\n\t\t197, 15, 151, 54, 121, 251, 255, 161, 120, 86, 84, 13, 208,\n\t\t137, 7, 57, 72, 26, 43, 124, 101, 211, 39, 236, 191, 28, 65,\n\t\t15, 83, 75, 160, 67, 11, 243, 97, 136, 32, 235, 33, 111, 25,\n\t\t26, 158, 112, 71, 44, 194, 189, 127, 29, 243, 117, 239, 154,\n\t\t177, 227, 21, 110, 63, 5, 47, 192, 169, 199, 192, 247, 223,\n\t\t62, 10, 173, 254, 124, 209, 247, 124, 230, 103, 112, 10, 5,\n\t\t4, 88, 176, 95, 48, 33, 28, 253, 160, 233, 133, 106, 214,\n\t\t125, 10, 245, 151, 0, 77, 212, 18, 117, 100, 138, 131, 37,\n\t\t103, 78, 118, 45, 60, 173, 234, 118, 225, 123, 186, 37, 59,\n\t\t94, 22, 225, 156, 30, 179, 159, 231, 156, 252, 230, 86, 166,\n\t\t224, 101, 10, 231, 149, 222, 72, 84, 197, 81, 162, 104, 195,\n\t\t38, 241, 178, 217, 226, 89, 105, 4, 205, 210, 101, 226, 165,\n\t\t3, 78, 236, 215, 175, 177, 69, 9, 131, 173, 78, 94, 14, 112,\n\t\t237, 114, 213, 223, 170, 18, 201, 192, 26, 199, 5, 241, 162,\n\t\t250, 186, 172, 72, 23, 24, 16, 193, 57, 23, 176, 92, 244,\n\t\t163, 134, 9, 73, 157, 143, 134, 139, 32, 198, 37, 43, 226,\n\t\t51, 114, 188, 200, 90, 81, 189, 20, 131, 52, 118, 169, 152,\n\t\t71, 231, 237, 102, 248, 215, 83, 89, 16, 50, 58, 51, 216,\n\t\t174, 95, 138, 212, 18, 76, 231, 161, 172, 179, 89, 20, 220,\n\t\t231, 88, 12, 86, 65, 249, 59, 209, 17, 226, 110, 51, 207,\n\t\t68, 97, 15, 98, 1, 84, 139, 102, 205, 216, 10, 0, 166, 186,\n\t\t224, 113, 91, 27, 66, 22, 84, 139, 157, 8, 237, 71, 166, 197,\n\t\t62, 77, 17, 21, 110, 186, 83, 54, 47, 31, 149, 20, 151, 141,\n\t\t221, 185, 247, 242, 111, 185, 229, 14, 191, 38, 28, 160, 53,\n\t\t31, 195, 127, 147, 195, 113, 42, 119, 127, 31, 244, 98, 103,\n\t\t181, 114, 48, 126, 40, 136, 109, 68, 87, 253, 137, 91, 51,\n\t\t227, 165, 186, 161, 161, 133, 151, 107, 81, 142, 168, 47,\n\t\t72, 172, 96, 94, 33, 215, 39, 175, 106, 72, 67, 211, 68, 203,\n\t\t192, 16, 196, 146, 37, 133, 29, 90, 161, 16, 164, 79, 37,\n\t\t178, 75, 177, 64, 54, 38, 221, 3, 38, 104, 147, 38, 176, 161,\n\t\t208, 162, 217, 251, 58, 36, 67, 252, 73, 120, 159, 20, 187,\n\t\t174, 80, 243, 12, 37, 111, 51, 165, 139, 42, 117, 11, 232,\n\t\t204, 84, 143, 252, 192, 173, 190, 162, 53, 34, 100, 109, 16,\n\t\t128, 109, 214, 174, 101, 228, 213, 122, 113, 235, 177, 150,\n\t\t20, 187, 130, 204, 64, 110, 224, 72, 206, 84, 125, 170, 38,\n\t\t100, 192, 157, 180, 54, 37, 136, 211, 26, 241, 47, 51, 233,\n\t\t132, 51, 67, 7, 216, 244, 82, 27, 81, 86, 190, 146, 148, 172,\n\t\t11, 91, 88, 245, 121, 236, 246, 34, 159, 227, 215, 117, 232,\n\t\t67, 15, 125, 95, 244, 134, 206, 150, 76, 232, 144, 202, 8,\n\t\t157, 15, 71, 188, 155, 72, 133, 220, 139, 144, 25, 172, 118,\n\t\t208, 84, 49, 86, 30, 53, 255, 92, 43, 99, 178, 115, 36, 176,\n\t\t143, 104, 107, 155, 33, 73, 169, 57, 89, 40, 131, 60, 185,\n\t\t36, 50, 114, 222, 140, 41, 236, 174, 85, 210, 101, 90, 37,\n\t\t216, 91, 220, 6, 106, 63, 204, 46, 92, 241, 77, 122, 100,\n\t\t208, 156, 151, 27, 203, 210, 79, 218, 44, 217, 32, 11, 82,\n\t\t238, 159, 167, 67, 70, 188, 170, 121, 216, 188, 69, 2, 124,\n\t\t22, 107, 124, 50, 208, 134, 103, 176, 18, 167, 101, 211, 178,\n\t\t53, 186, 222, 213, 225, 118, 130, 52, 75, 28, 17, 34, 51,\n\t\t134, 212, 72, 232, 202, 89, 76, 139, 6, 31, 45, 12, 144, 131,\n\t\t94, 107, 254, 114, 12, 211, 159, 201, 71, 245, 114, 102, 255,\n\t\t24, 68, 5, 121, 92, 108, 25, 90, 23, 162, 227, 219, 22, 242,\n\t\t72, 20, 247, 118, 168, 85, 215, 190, 124, 243, 144, 182, 204,\n\t\t225, 85, 86, 142, 173, 106, 0, 81, 50, 170, 166, 14, 169,\n\t\t143, 61, 163, 2, 198, 208, 161, 181, 52, 236, 147, 200, 230,\n\t\t252, 107, 183, 126, 53, 189, 66, 27, 179, 195, 26, 9, 29,\n\t\t181, 40, 117, 225, 96, 176, 234, 146, 234, 229, 253, 83, 58,\n\t\t131, 175, 172, 135, 154, 250, 185, 224, 212, 106, 5, 187,\n\t\t108, 109, 214, 165, 116, 164, 24, 163, 160, 161, 108, 60,\n\t\t180, 117, 217, 127, 9, 170, 151, 30, 14, 165, 161, 115, 6,\n\t\t89, 132, 104, 178, 235, 171, 232, 128, 177, 199, 89, 151,\n\t\t220, 131, 173, 128, 115, 243, 10, 209, 24, 84, 55, 163, 230,\n\t\t149, 135, 5, 20, 24, 175, 92, 250, 111, 140, 85, 246, 195,\n\t\t68, 109, 28, 181, 147, 173, 58, 176, 252, 145, 219, 224, 88,\n\t\t212, 105, 227, 177, 149, 242, 220, 44, 212, 177, 252, 45,\n\t\t243, 173, 33, 131, 147, 19, 134, 68, 229, 4, 14, 130, 175,\n\t\t91, 220, 128, 194, 183, 241, 85, 52, 43, 211, 126, 233, 150,\n\t\t47, 95, 15, 66, 45, 210, 30, 64, 143, 74, 186, 62, 109, 175,\n\t\t88, 146, 105, 129, 34, 36, 179, 102, 180, 38, 169, 153, 167,\n\t\t71, 230, 145, 47, 65, 151, 43, 63, 89, 13, 206, 12, 194, 44,\n\t\t164, 173, 178, 157, 146, 94, 208, 224, 14, 184, 195, 206,\n\t\t72, 151, 205, 119, 144, 226, 168, 165, 103, 126, 117, 80,\n\t\t206, 175, 165, 255, 165, 26, 65, 109, 126, 165, 96, 101, 90,\n\t\t154, 158, 145, 55, 205, 237, 173, 152, 250, 231, 189, 65,\n\t\t18, 34, 159, 224, 68, 55, 184, 240, 178, 76, 120, 25, 202,\n\t\t138, 113, 55, 106, 117, 173, 17, 52, 236, 136, 133, 203, 117,\n\t\t218, 66, 27, 71, 215, 232, 123, 204, 30, 237, 195, 216, 108,\n\t\t118, 189, 59, 216, 105, 184, 27, 236, 127, 241, 40, 95, 79,\n\t\t76, 213, 110, 150, 27, 68, 86, 99, 82, 159, 91, 14, 8, 50,\n\t\t137, 28, 185, 233, 165, 46, 19, 233, 88, 130, 196, 142, 12,\n\t\t69, 48, 136, 147, 196, 51, 121, 50, 1, 245, 162, 149, 103,\n\t\t191, 158, 240, 172, 89, 28, 91, 10, 65, 99, 174, 102, 234,\n\t\t176, 172, 138, 226, 72, 14, 220, 60, 236, 118, 90, 20, 208,\n\t\t123, 148, 241, 202, 40, 26, 37, 74, 119, 231, 166, 112, 216,\n\t\t178, 119, 51, 8, 1, 95, 166, 126, 141, 117, 89, 127, 145,\n\t\t45, 199, 28, 150, 17, 183, 60, 14, 135, 86, 176, 10, 142,\n\t\t105, 91, 137, 191, 71, 72, 155, 134, 151, 15, 23, 118, 177,\n\t\t214, 223, 50, 166, 22, 236, 170, 242, 44, 48, 42, 91, 185,\n\t\t235, 211, 11, 180, 47, 124, 220, 90, 237, 137, 179, 66, 171,\n\t\t150, 251, 36, 191, 34, 131, 88, 90, 74, 231, 95, 136, 61,\n\t\t16, 159, 197, 33, 209, 214, 223, 231, 37, 187, 49, 161, 70,\n\t\t24, 242, 79, 217, 58, 128, 127, 65, 56, 206, 215, 10, 65,\n\t\t7, 160, 214, 75, 97, 18, 245, 241, 176, 188, 73, 185, 107,\n\t\t254, 75, 174, 127, 68, 183, 199, 27, 248, 22, 234, 103, 193,\n\t\t244, 36, 21, 100, 71, 63, 152, 122, 105, 152, 143, 101, 59,\n\t\t238, 204, 8, 234, 128, 225, 139, 235, 49, 163, 59, 92, 181,\n\t\t50, 24, 21, 148, 146, 131, 96, 10, 212, 24, 212, 253, 250,\n\t\t35, 108, 169, 153, 254, 111, 177, 105, 13, 105, 214, 79, 164,\n\t\t17, 120, 221, 110, 17, 23, 253, 84, 141, 146, 61, 210, 8,\n\t\t159, 148, 158, 154, 52, 101, 43, 111, 48, 162, 131, 89, 127,\n\t\t177, 180, 154, 165, 177, 220, 244, 34, 188, 50, 99, 48, 80,\n\t\t160, 22, 36, 201, 226, 229, 202, 195, 158, 99, 178, 45, 141,\n\t\t116, 44, 33, 61, 72, 179, 167, 249, 210, 84, 41, 119, 212,\n\t\t203, 200, 240, 53, 217, 110, 180, 97, 188, 174, 104, 51, 150,\n\t\t218, 152, 52, 51, 35, 245, 170, 164, 17, 46, 92, 197, 7, 175,\n\t\t154, 113, 85, 212, 29, 201, 93, 101, 103, 134, 251, 87, 7,\n\t\t131, 24, 251, 103, 106, 131, 41, 197, 58, 235, 28, 74, 241,\n\t\t129, 69, 195, 202, 12, 243, 216, 20, 83, 160, 255, 89, 174,\n\t\t230, 241, 152, 247, 164, 201, 86, 169, 181, 147, 72, 60, 183,\n\t\t188, 94, 189, 74, 100, 103, 104, 75, 221, 90, 210, 25, 76,\n\t\t75, 61, 58, 109, 186, 42, 6, 120, 150, 241, 181, 108, 90,\n\t\t49, 30, 137, 205, 239, 244, 112, 71, 150, 132, 159, 241, 104,\n\t\t23, 118, 8, 203, 21, 18, 248, 61, 240, 37, 246, 226, 97, 136,\n\t\t93, 9, 93, 96, 214, 253, 111, 15, 115, 224, 121, 89, 104,\n\t\t238, 95, 214, 7, 27, 231, 118, 178, 141, 169, 199, 210, 206,\n\t\t143, 90, 12, 42, 229, 69, 132, 124, 17, 105, 234, 194, 49,\n\t\t174, 223, 225, 165, 25, 86, 241, 112, 59, 163, 60, 37, 172,\n\t\t207, 175, 185, 69, 250, 117, 37, 216, 86, 227, 6, 149, 231,\n\t\t172, 53, 88, 10, 137, 84, 54, 59, 124, 218, 179, 132, 242,\n\t\t50, 95, 216, 70, 168, 87, 229, 38, 27, 63, 92, 54, 120, 216,\n\t\t19, 216, 235, 123, 167, 87, 112, 100, 98, 180, 58, 42, 88,\n\t\t242, 133, 170, 188, 174, 239, 115, 50, 146, 115, 188, 55,\n\t\t56, 232, 129, 117, 117, 37, 167, 152, 150, 140, 68, 83, 130,\n\t\t39, 124, 18, 159, 73, 28, 70, 168, 138, 46, 104, 207, 196,\n\t\t71, 26, 239, 162, 103, 80, 129, 238, 13, 53, 117, 44, 70,\n\t\t34, 11, 69, 233, 57, 39, 230, 103, 240, 153, 122, 174, 179,\n\t\t29, 118, 113, 112, 144, 127, 100, 7, 109, 20, 243, 114, 238,\n\t\t182, 39, 79, 210, 46, 162, 220, 227, 151, 166, 16, 104, 166,\n\t\t125, 36, 35, 99, 137, 157, 95, 5, 35, 72, 31, 221, 89, 250,\n\t\t126, 76, 171, 8, 83, 155, 87, 91, 167, 53, 171, 243, 132,\n\t\t25, 68, 102, 88, 76, 67, 214, 164, 156, 234, 174, 53, 148,\n\t\t115, 231, 123, 30, 89, 207, 57, 39, 39, 48, 105, 248, 226,\n\t\t154, 200, 45, 122, 51, 186, 94, 86, 221, 225, 163, 90, 231,\n\t\t121, 4, 16, 204, 9, 87, 61, 150, 64, 215, 168, 51, 94, 234,\n\t\t45, 125, 26, 157, 7, 149, 0, 2, 12, 91, 119, 167, 238, 45,\n\t\t193, 110, 5, 87, 42, 130, 250, 107, 74, 16, 74, 225, 38, 8,\n\t\t84, 56, 12, 67, 28, 61, 8, 40, 197, 11, 144, 80, 142, 167,\n\t\t81, 160, 136, 146, 24, 48, 145, 30, 193, 3, 97, 102, 76, 8,\n\t\t114, 51, 22, 168, 124, 17, 54, 148, 242, 129, 40, 152, 172,\n\t\t159, 149, 66, 163, 34, 10, 12, 40, 116, 0, 168, 173, 132,\n\t\t109, 129, 48, 29, 218, 32, 240, 193, 147, 48, 52, 129, 183,\n\t\t16, 48, 29, 167, 32, 97, 14, 188, 14, 5, 106, 241, 44, 6,\n\t\t44, 68, 230, 225, 129, 201, 116, 10, 19, 198, 115, 49, 22,\n\t\t248, 120, 25, 182, 186, 181, 103, 125, 244, 181, 244, 75,\n\t\t210, 239, 75, 244, 162, 111, 196, 121, 8, 44, 205, 72, 32,\n\t\t51, 224, 224, 15, 217, 66, 213, 79, 55, 82, 244, 62, 222,\n\t\t74, 98, 223, 119, 143, 96, 181, 73, 200, 6, 142, 63, 218,\n\t\t18, 62, 111, 50, 210, 42, 217, 3, 247, 161, 0, 95, 130, 206,\n\t\t102, 20, 173, 230, 137, 164, 93, 44, 235, 171, 128, 97, 121,\n\t\t67, 20, 248, 10, 221, 54, 70, 156, 164, 190, 44, 93, 96, 136,\n\t\t65, 220, 138, 10, 171, 62, 43, 8, 181, 127, 200, 107, 193,\n\t\t95, 246, 185, 16, 181, 120, 109, 88, 247, 221, 155, 134, 80,\n\t\t29, 237, 30, 152, 179, 152, 232, 10, 68, 16, 217, 196, 164,\n\t\t45, 216, 111, 66, 141, 99, 239, 111, 141, 168, 230, 37, 178,\n\t\t252, 186, 87, 25, 162, 165, 173, 69, 61, 214, 184, 219, 227,\n\t\t109, 22, 13, 176, 124, 246, 156, 180, 240, 204, 231, 226,\n\t\t204, 148, 205, 198, 85, 244, 246, 45, 32, 86, 36, 214, 32,\n\t\t113, 76, 230, 99, 17, 96, 13, 185, 231, 16, 61, 59, 209, 205,\n\t\t177, 132, 132, 190, 159, 91, 204, 172, 68, 96, 231, 73, 220,\n\t\t100, 191, 143, 88, 41, 38, 56, 114, 185, 13, 192, 14, 180,\n\t\t33, 202, 132, 50, 140, 32, 17, 45, 179, 77, 130, 81, 112,\n\t\t51, 113, 162, 86, 110, 103, 234, 247, 102, 103, 37, 34, 239,\n\t\t193, 21, 51, 37, 23, 219, 60, 87, 86, 218, 57, 55, 19, 3,\n\t\t173, 127, 231, 24, 214, 201, 49, 235, 66, 12, 52, 209, 234,\n\t\t122, 51, 137, 232, 127, 113, 96, 151, 237, 195, 187, 1, 216,\n\t\t14, 208, 50, 43, 170, 166, 27, 166, 245, 191, 190, 250, 151,\n\t\t92, 207, 231, 23, 0, 8, 193, 8, 138, 225, 4, 73, 209, 204,\n\t\t126, 0, 199, 11, 132, 34, 177, 68, 42, 147, 43, 148, 42, 181,\n\t\t70, 171, 211, 27, 140, 38, 179, 197, 106, 179, 59, 156, 46,\n\t\t183, 199, 235, 243, 3, 32, 4, 35, 40, 134, 19, 36, 69, 51,\n\t\t44, 199, 11, 162, 36, 43, 170, 166, 27, 166, 101, 59, 174,\n\t\t231, 7, 97, 20, 39, 105, 150, 23, 101, 85, 55, 109, 215, 15,\n\t\t227, 52, 47, 235, 182, 31, 231, 117, 63, 239, 247, 3, 33,\n\t\t24, 65, 49, 156, 32, 41, 154, 97, 57, 94, 16, 37, 89, 81,\n\t\t53, 221, 48, 45, 219, 113, 61, 63, 8, 163, 56, 73, 179, 188,\n\t\t40, 171, 186, 105, 59, 221, 94, 127, 48, 28, 141, 39, 211,\n\t\t217, 124, 177, 92, 173, 55, 207, 200, 191, 0, 34, 76, 40,\n\t\t227, 66, 42, 109, 172, 243, 33, 166, 92, 106, 235, 99, 174,\n\t\t125, 174, 251, 121, 191, 223, 194, 167, 231, 151, 215, 183,\n\t\t247, 143, 207, 175, 239, 159, 223, 191, 205, 63, 86, 79, 182,\n\t\t187, 253, 225, 120, 58, 95, 16, 164, 149, 82, 194, 127, 89,\n\t\t255, 191, 143, 166, 27, 166, 101, 119, 56, 93, 110, 15, 0,\n\t\t66, 48, 130, 98, 56, 65, 82, 52, 195, 114, 188, 64, 40, 18,\n\t\t75, 164, 50, 185, 66, 169, 82, 107, 180, 58, 189, 193, 104,\n\t\t218, 220, 108, 177, 218, 236, 14, 167, 203, 237, 241, 250,\n\t\t252, 0, 8, 193, 8, 138, 225, 4, 73, 209, 12, 203, 241, 130,\n\t\t40, 201, 138, 170, 233, 134, 105, 217, 142, 235, 249, 65,\n\t\t24, 197, 73, 154, 229, 69, 89, 213, 77, 219, 245, 195, 56,\n\t\t205, 203, 186, 237, 199, 121, 221, 207, 251, 253, 128, 32,\n\t\t48, 4, 10, 131, 35, 144, 40, 52, 6, 139, 195, 19, 136, 36,\n\t\t50, 133, 74, 163, 51, 152, 44, 54, 135, 203, 227, 11, 132,\n\t\t34, 177, 68, 42, 147, 43, 148, 151, 235, 150, 14, 185, 163,\n\t\t70, 251, 249, 4, 197, 247, 74, 9, 103, 145, 29, 190, 98, 63,\n\t\t152, 119, 204, 196, 143, 135, 125, 59, 231, 40, 169, 203,\n\t\t48, 218, 167, 21, 195, 189, 241, 65, 129, 168, 251, 208, 252,\n\t\t227, 156, 73, 191, 229, 47, 86, 145, 181, 96, 172, 229, 180,\n\t\t219, 39, 123, 76, 172, 83, 62, 51, 145, 120, 252, 58, 40,\n\t\t40, 30, 38, 189, 82, 230, 182, 237, 163, 252, 167, 201, 110,\n\t\t255, 186, 165, 157, 186, 43, 167, 159, 51, 54, 127, 204, 235,\n\t\t180, 203, 86, 42, 121, 49, 169, 179, 188, 222, 124, 67, 218,\n\t\t163, 60, 81, 151, 34, 95, 3, 175, 155, 155, 95, 21, 142, 80,\n\t\t7, 165, 93, 111, 84, 120, 72, 236, 243, 153, 118, 244, 176,\n\t\t227, 152, 139, 62, 14, 89, 60, 203, 15, 115, 150, 47, 235,\n\t\t136, 237, 84, 40, 183, 131, 249, 124, 245, 197, 104, 214,\n\t\t230, 5, 91, 239, 87, 197, 177, 202, 169, 168, 131, 133, 109,\n\t\t88, 138, 244, 143, 129, 83, 133, 235, 199, 215, 219, 3, 154,\n\t\t37, 24, 248, 223, 22, 131, 210, 138, 133, 24, 173, 100, 87,\n\t\t192, 87, 218, 128, 87, 188, 127, 124, 160, 20, 168, 181, 62,\n\t\t226, 219, 13, 71, 52, 87, 69, 179, 32, 138, 156, 115, 221,\n\t\t165, 77, 36, 116, 214, 138, 96, 200, 153, 252, 113, 200, 182,\n\t\t46, 183, 138, 127, 235, 120, 86, 225, 152, 72, 83, 193, 233,\n\t\t246, 159, 120, 40, 40, 148, 72, 78, 107, 10, 175, 235, 67,\n\t\t25, 115, 172, 84, 81, 99, 173, 111, 16, 234, 238, 199, 88,\n\t\t236, 172, 80, 194, 43, 114, 20, 232, 18, 54, 224, 132, 111,\n\t\t199, 145, 82, 214, 54, 194, 113, 223, 103, 59, 235, 58, 92,\n\t\t197, 105, 185, 198, 130, 39, 1, 59, 168, 143, 46, 39, 231,\n\t\t84, 56, 144, 220, 124, 204, 216, 101, 201, 88, 145, 251, 215,\n\t\t23, 202, 185, 96, 107, 152, 177, 4, 204, 74, 138, 67, 158,\n\t\t33, 67, 111, 151, 254, 166, 70, 105, 71, 141, 140, 95, 246,\n\t\t216, 224, 132, 236, 177, 61, 205, 31, 191, 191, 225, 52, 251,\n\t\t34, 30, 157, 84, 230, 91, 235, 79, 30, 114, 28, 205, 69, 169,\n\t\t1, 76, 85, 40, 244, 213, 238, 11, 74, 65, 239, 114, 142, 79,\n\t\t50, 120, 28, 195, 14, 48, 71, 77, 160, 121, 130, 202, 153,\n\t\t44, 177, 9, 74, 60, 1, 7, 190, 6, 146, 25, 157, 119, 48, 87,\n\t\t170, 24, 6, 153, 47, 199, 227, 144, 173, 111, 3, 203, 107,\n\t\t19, 243, 161, 23, 67, 74, 33, 243, 49, 197, 101, 151, 131,\n\t\t133, 108, 111, 89, 152, 49, 121, 198, 39, 22, 169, 125, 33,\n\t\t219, 210, 57, 99, 95, 69, 207, 99, 70, 236, 6, 128, 235, 57,\n\t\t135, 212, 187, 180, 235, 238, 141, 212, 141, 120, 62, 203,\n\t\t62, 57, 31, 181, 92, 124, 107, 84, 188, 247, 126, 129, 23,\n\t\t176, 105, 76, 29, 120, 237, 79, 3, 55, 168, 181, 251, 24,\n\t\t146, 16, 135, 137, 76, 231, 113, 191, 63, 73, 142, 153, 24,\n\t\t92, 244, 33, 234, 196, 241, 16, 174, 107, 210, 94, 20, 57,\n\t\t129, 250, 29, 127, 21, 51, 57, 102, 179, 18, 60, 235, 51,\n\t\t205, 111, 93, 208, 3, 163, 90, 76, 229, 156, 63, 146, 34,\n\t\t56, 61, 145, 16, 202, 58, 253, 227, 121, 134, 100, 233, 10,\n\t\t181, 71, 21, 242, 147, 140, 252, 183, 95, 88, 246, 2, 102,\n\t\t76, 59, 253, 10, 202, 180, 145, 123, 124, 224, 177, 10, 159,\n\t\t201, 211, 137, 66, 57, 223, 48, 196, 175, 224, 180, 128, 82,\n\t\t200, 77, 229, 192, 174, 178, 226, 34, 175, 86, 20, 21, 126,\n\t\t106, 228, 16, 227, 237, 192, 87, 45, 162, 168, 33, 11, 59,\n\t\t72, 251, 207, 242, 247, 250, 10, 52, 225, 91, 184, 109, 114,\n\t\t126, 127, 119, 220, 163, 63, 135, 52, 114, 66, 162, 19, 14,\n\t\t85, 216, 41, 117, 193, 238, 28, 50, 16, 20, 66, 110, 80, 86,\n\t\t236, 179, 100, 194, 74, 216, 76, 201, 175, 123, 21, 77, 32,\n\t\t154, 74, 127, 183, 240, 249, 174, 38, 249, 76, 30, 183, 147,\n\t\t189, 159, 252, 98, 92, 103, 240, 172, 52, 103, 226, 15, 57,\n\t\t209, 69, 124, 155, 206, 74, 156, 69, 95, 251, 2, 243, 120,\n\t\t116, 198, 149, 152, 81, 187, 163, 36, 187, 30, 22, 176, 158,\n\t\t164, 208, 62, 131, 50, 118, 251, 77, 226, 26, 62, 134, 140,\n\t\t242, 112, 179, 98, 246, 193, 190, 160, 166, 13, 252, 237,\n\t\t164, 196, 149, 169, 198, 222, 131, 153, 118, 108, 226, 211,\n\t\t127, 218, 169, 178, 154, 71, 209, 140, 218, 94, 1, 243, 97,\n\t\t55, 60, 144, 172, 224, 36, 88, 161, 126, 119, 115, 162, 48,\n\t\t152, 37, 99, 251, 27, 162, 240, 86, 13, 49, 38, 184, 151,\n\t\t152, 224, 168, 253, 70, 193, 85, 225, 232, 19, 113, 94, 211,\n\t\t230, 87, 232, 179, 193, 182, 171, 225, 153, 231, 110, 149,\n\t\t28, 139, 94, 189, 163, 148, 4, 230, 147, 71, 69, 173, 242,\n\t\t133, 106, 117, 31, 233, 167, 183, 55, 129, 126, 214, 143,\n\t\t92, 59, 70, 40, 254, 78, 57, 161, 25, 205, 5, 227, 192, 208,\n\t\t30, 238, 251, 52, 89, 188, 167, 242, 68, 53, 40, 111, 84,\n\t\t23, 42, 4, 142, 245, 176, 59, 26, 171, 252, 208, 3, 205, 152,\n\t\t37, 15, 90, 171, 94, 76, 121, 185, 129, 180, 70, 115, 81,\n\t\t124, 156, 237, 72, 98, 45, 212, 25, 117, 36, 191, 142, 3,\n\t\t93, 105, 239, 40, 114, 113, 131, 118, 244, 17, 48, 190, 110,\n\t\t116, 108, 72, 124, 200, 252, 137, 201, 187, 196, 158, 132,\n\t\t184, 57, 170, 215, 72, 63, 87, 152, 81, 245, 234, 210, 144,\n\t\t117, 69, 29, 128, 51, 206, 31, 243, 169, 146, 33, 9, 22, 124,\n\t\t85, 84, 199, 49, 131, 29, 53, 73, 190, 32, 26, 57, 109, 9,\n\t\t10, 248, 249, 131, 124, 187, 227, 185, 81, 196, 114, 133,\n\t\t172, 192, 88, 122, 5, 246, 69, 139, 80, 124, 204, 225, 94,\n\t\t112, 33, 219, 186, 242, 3, 156, 99, 30, 10, 106, 145, 43,\n\t\t203, 218, 21, 216, 94, 85, 30, 133, 87, 114, 40, 81, 18, 2,\n\t\t119, 147, 20, 85, 20, 116, 140, 58, 213, 48, 20, 73, 219,\n\t\t57, 59, 91, 236, 168, 143, 98, 176, 248, 63, 209, 71, 223,\n\t\t37, 85, 134, 109, 62, 137, 80, 46, 20, 89, 71, 144, 150, 107,\n\t\t38, 205, 22, 96, 5, 120, 29, 85, 254, 169, 229, 23, 151, 152,\n\t\t3, 205, 144, 87, 212, 145, 197, 48, 209, 177, 59, 79, 189,\n\t\t92, 92, 232, 99, 220, 160, 218, 36, 235, 170, 33, 206, 150,\n\t\t135, 135, 125, 87, 216, 145, 195, 35, 41, 46, 139, 195, 35,\n\t\t146, 21, 33, 219, 116, 46, 197, 245, 206, 158, 47, 155, 149,\n\t\t158, 212, 250, 87, 13, 87, 255, 24, 213, 133, 20, 219, 199,\n\t\t78, 246, 230, 137, 82, 127, 33, 9, 178, 218, 195, 109, 105,\n\t\t172, 24, 33, 110, 88, 42, 106, 104, 226, 159, 160, 93, 139,\n\t\t217, 170, 120, 224, 125, 50, 218, 116, 184, 230, 200, 226,\n\t\t216, 189, 224, 157, 216, 218, 87, 86, 244, 31, 175, 15, 47,\n\t\t158, 191, 210, 208, 113, 165, 204, 83, 231, 180, 155, 131,\n\t\t58, 234, 227, 90, 139, 123, 55, 136, 237, 111, 166, 25, 204,\n\t\t216, 140, 187, 120, 55, 105, 69, 118, 233, 38, 50, 212, 106,\n\t\t189, 232, 213, 226, 209, 158, 62, 37, 234, 195, 228, 164,\n\t\t98, 178, 248, 109, 242, 43, 76, 254, 62, 153, 194, 20, 70,\n\t\t149, 110, 81, 53, 175, 150, 221, 146, 140, 241, 211, 110,\n\t\t75, 143, 249, 121, 246, 255, 79, 43, 92, 201, 73, 152, 94,\n\t\t173, 210, 138, 255, 14, 74, 101, 193, 220, 41, 185, 162, 240,\n\t\t160, 80, 178, 36, 21, 39, 109, 48, 43, 37, 112, 209, 159,\n\t\t234, 38, 152, 62, 42, 46, 10, 7, 126, 137, 238, 83, 7, 234,\n\t\t230, 128, 39, 52, 104, 216, 134, 57, 232, 245, 45, 115, 217,\n\t\t144, 99, 87, 35, 241, 20, 170, 104, 166, 193, 80, 203, 149,\n\t\t35, 131, 38, 229, 73, 188, 142, 38, 164, 171, 105, 3, 239,\n\t\t46, 147, 122, 24, 253, 231, 173, 208, 107, 114, 128, 166,\n\t\t13, 121, 37, 190, 59, 244, 73, 9, 205, 152, 96, 231, 108,\n\t\t174, 244, 26, 13, 151, 171, 136, 27, 216, 214, 185, 34, 236,\n\t\t80, 71, 223, 112, 153, 117, 89, 77, 193, 190, 142, 89, 74,\n\t\t128, 83, 111, 154, 199, 89, 16, 92, 195, 153, 73, 158, 196,\n\t\t160, 20, 60, 106, 45, 248, 38, 136, 114, 145, 222, 128, 177,\n\t\t137, 132, 218, 6, 239, 228, 83, 44, 82, 92, 243, 219, 211,\n\t\t213, 197, 114, 168, 53, 247, 225, 118, 50, 195, 22, 62, 130,\n\t\t76, 220, 126, 140, 138, 165, 194, 153, 219, 183, 158, 239,\n\t\t138, 50, 171, 187, 60, 224, 180, 35, 217, 135, 137, 197, 163,\n\t\t172, 221, 1, 155, 191, 36, 175, 112, 137, 51, 190, 126, 117,\n\t\t16, 163, 20, 194, 221, 168, 64, 153, 110, 46, 83, 48, 86,\n\t\t184, 238, 57, 199, 128, 235, 86, 199, 245, 190, 144, 230,\n\t\t56, 75, 52, 45, 228, 214, 45, 201, 120, 19, 167, 214, 0, 201,\n\t\t239, 20, 46, 85, 113, 161, 23, 106, 227, 100, 214, 126, 129,\n\t\t159, 214, 209, 154, 3, 255, 49, 3, 125, 4, 46, 45, 230, 140,\n\t\t250, 211, 164, 89, 94, 10, 172, 234, 165, 163, 163, 182, 77,\n\t\t164, 80, 240, 173, 240, 132, 195, 79, 81, 197, 126, 101, 180,\n\t\t118, 223, 42, 255, 26, 229, 34, 42, 19, 50, 114, 154, 160,\n\t\t143, 167, 199, 222, 80, 241, 60, 66, 23, 125, 158, 56, 96,\n\t\t224, 129, 236, 162, 111, 166, 116, 166, 101, 254, 251, 12,\n\t\t117, 80, 157, 5, 52, 55, 141, 171, 221, 180, 213, 225, 55,\n\t\t136, 45, 65, 197, 96, 128, 124, 96, 243, 210, 19, 180, 198,\n\t\t87, 184, 129, 255, 210, 92, 248, 93, 226, 124, 133, 159, 30,\n\t\t167, 223, 252, 238, 17, 207, 175, 23, 246, 89, 51, 159, 39,\n\t\t91, 79, 175, 230, 223, 190, 146, 8, 197, 113, 254, 22, 138,\n\t\t7, 189, 126, 55, 131, 223, 131, 119, 221, 81, 11, 241, 250,\n\t\t151, 88, 44, 95, 31, 134, 60, 214, 71, 55, 254, 53, 232, 249,\n\t\t27, 85, 26, 36, 184, 186, 142, 107, 6, 195, 126, 146, 185,\n\t\t100, 174, 244, 255, 84, 149, 79, 76, 126, 247, 240, 40, 11,\n\t\t174, 224, 56, 108, 192, 193, 71, 235, 223, 101, 61, 153, 104,\n\t\t31, 127, 148, 164, 231, 241, 211, 10, 5, 146, 83, 138, 138,\n\t\t245, 156, 11, 165, 247, 208, 102, 134, 12, 142, 227, 139,\n\t\t76, 15, 125, 204, 105, 18, 103, 40, 162, 4, 124, 151, 145,\n\t\t209, 71, 63, 4, 8, 234, 255, 254, 178, 10, 55, 206, 190, 125,\n\t\t184, 66, 198, 184, 96, 70, 101, 126, 251, 151, 95, 82, 150,\n\t\t141, 63, 237, 113, 6, 119, 40, 225, 219, 223, 55, 81, 158,\n\t\t169, 148, 97, 18, 149, 180, 209, 81, 251, 137, 21, 170, 168,\n\t\t135, 197, 199, 92, 244, 102, 120, 246, 222, 164, 126, 129,\n\t\t226, 196, 96, 30, 171, 144, 176, 147, 241, 87, 147, 36, 28,\n\t\t224, 92, 174, 219, 225, 87, 131, 81, 100, 20, 245, 17, 10,\n\t\t188, 135, 78, 235, 90, 90, 169, 55, 221, 179, 124, 113, 179,\n\t\t32, 214, 254, 111, 180, 157, 129, 6, 141, 195, 126, 118, 195,\n\t\t168, 152, 227, 133, 78, 191, 135, 244, 243, 73, 38, 66, 219,\n\t\t91, 36, 78, 162, 85, 20, 28, 243, 35, 91, 204, 217, 9, 74,\n\t\t84, 41, 248, 38, 111, 191, 112, 113, 198, 75, 56, 223, 10,\n\t\t158, 191, 90, 128, 29, 236, 138, 75, 161, 117, 243, 184, 194,\n\t\t129, 118, 87, 48, 95, 17, 52, 65, 198, 95, 125, 209, 55, 104,\n\t\t182, 40, 75, 204, 49, 50, 9, 152, 79, 187, 17, 239, 113, 120,\n\t\t84, 155, 248, 252, 138, 120, 170, 84, 108, 169, 200, 140,\n\t\t35, 153, 139, 97, 62, 104, 240, 33, 70, 192, 191, 76, 192,\n\t\t144, 79, 7, 20, 15, 168, 5, 99, 65, 88, 66, 6, 187, 216, 152,\n\t\t133, 151, 114, 34, 39, 188, 149, 86, 250, 194, 96, 165, 103,\n\t\t109, 15, 200, 175, 176, 199, 129, 58, 94, 15, 232, 217, 240,\n\t\t160, 199, 169, 255, 39, 25, 9, 55, 47, 43, 244, 19, 156, 177,\n\t\t224, 117, 55, 178, 106, 198, 196, 198, 74, 193, 144, 55, 240,\n\t\t224, 211, 250, 228, 232, 66, 242, 132, 174, 136, 141, 135,\n\t\t97, 136, 116, 178, 159, 183, 80, 107, 194, 119, 145, 151,\n\t\t148, 3, 177, 206, 60, 143, 131, 124, 213, 5, 35, 163, 15,\n\t\t73, 196, 205, 21, 106, 72, 177, 44, 168, 163, 217, 30, 76,\n\t\t96, 222, 227, 67, 85, 177, 219, 240, 78, 91, 36, 25, 157,\n\t\t10, 218, 130, 145, 240, 206, 188, 85, 212, 152, 81, 81, 244,\n\t\t112, 143, 69, 248, 106, 14, 125, 99, 184, 116, 28, 168, 0,\n\t\t1, 0, 0, 255, 255, 80, 75, 7, 8, 124, 212, 233, 161, 46, 36,\n\t\t1, 0, 16, 36, 1, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219,\n\t\t146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 9,\n\t\t0, 119, 101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45,\n\t\t114, 101, 103, 117, 108, 97, 114, 45, 52, 48, 48, 46, 101,\n\t\t111, 116, 85, 84, 5, 0, 1, 127, 106, 41, 96, 220, 253, 121,\n\t\t120, 100, 87, 117, 40, 138, 239, 117, 134, 189, 207, 57, 117,\n\t\t234, 156, 26, 206, 80, 146, 74, 165, 26, 84, 85, 26, 75, 234,\n\t\t26, 187, 91, 45, 181, 122, 112, 119, 219, 61, 9, 187, 109,\n\t\t140, 71, 169, 91, 213, 45, 217, 106, 73, 104, 112, 219, 198,\n\t\t128, 2, 141, 99, 192, 144, 182, 241, 245, 37, 190, 228, 34,\n\t\t38, 95, 126, 96, 146, 254, 1, 225, 26, 51, 68, 144, 4, 28,\n\t\t2, 92, 51, 92, 30, 31, 143, 151, 244, 7, 73, 30, 225, 146,\n\t\t68, 221, 224, 4, 8, 148, 222, 183, 247, 57, 85, 170, 210,\n\t\t208, 118, 146, 251, 199, 251, 158, 190, 210, 217, 67, 237,\n\t\t179, 207, 90, 107, 175, 189, 246, 90, 107, 175, 125, 234,\n\t\t212, 163, 8, 245, 188, 13, 33, 64, 28, 162, 127, 28, 18, 121,\n\t\t150, 65, 128, 46, 1, 77, 143, 141, 128, 83, 225, 67, 168,\n\t\t250, 13, 90, 162, 233, 44, 30, 30, 70, 155, 254, 138, 232,\n\t\t16, 154, 65, 211, 104, 1, 69, 209, 62, 116, 1, 149, 209, 60,\n\t\t154, 65, 231, 81, 25, 69, 81, 1, 69, 209, 33, 52, 135, 202,\n\t\t172, 116, 51, 42, 163, 115, 104, 17, 77, 161, 49, 52, 135,\n\t\t16, 210, 54, 213, 220, 132, 114, 40, 139, 118, 161, 12, 42,\n\t\t177, 52, 138, 58, 174, 211, 251, 3, 168, 140, 230, 208, 60,\n\t\t154, 100, 45, 118, 179, 231, 101, 208, 78, 148, 65, 59, 80,\n\t\t231, 127, 8, 50, 7, 105, 228, 69, 75, 136, 71, 35, 135, 14,\n\t\t157, 58, 254, 246, 239, 188, 253, 26, 66, 111, 163, 52, 9,\n\t\t31, 62, 120, 195, 33, 212, 133, 150, 17, 186, 184, 138, 16,\n\t\t138, 156, 188, 165, 47, 187, 239, 61, 63, 110, 65, 8, 110,\n\t\t71, 8, 141, 158, 57, 63, 54, 251, 213, 229, 23, 127, 129,\n\t\t144, 160, 34, 196, 255, 224, 220, 216, 252, 236, 218, 26,\n\t\t226, 17, 186, 248, 19, 132, 144, 116, 110, 234, 161, 179,\n\t\t83, 45, 98, 43, 66, 114, 20, 161, 233, 63, 155, 40, 143, 141,\n\t\t27, 39, 238, 252, 16, 66, 232, 135, 20, 236, 137, 137, 242,\n\t\t152, 80, 224, 190, 133, 16, 24, 8, 161, 246, 137, 243, 11,\n\t\t15, 6, 46, 163, 5, 132, 224, 121, 132, 184, 83, 83, 51, 103,\n\t\t198, 126, 114, 195, 95, 62, 134, 16, 249, 9, 66, 80, 60, 63,\n\t\t246, 224, 44, 250, 41, 250, 35, 132, 96, 39, 66, 40, 58, 61,\n\t\t118, 190, 220, 145, 223, 245, 167, 8, 93, 248, 27, 132, 196,\n\t\t91, 103, 103, 230, 23, 126, 115, 114, 223, 231, 16, 122, 227,\n\t\t30, 132, 200, 199, 41, 110, 112, 227, 11, 239, 31, 30, 198,\n\t\t179, 247, 234, 123, 94, 70, 30, 135, 23, 190, 255, 217, 203,\n\t\t251, 220, 244, 224, 218, 207, 214, 62, 203, 253, 46, 252,\n\t\t5, 133, 215, 101, 21, 70, 19, 88, 89, 91, 65, 136, 91, 90,\n\t\t251, 25, 66, 220, 239, 34, 216, 192, 12, 151, 88, 205, 51,\n\t\t232, 57, 164, 177, 50, 199, 238, 162, 117, 85, 206, 17, 224,\n\t\t31, 224, 18, 18, 17, 130, 99, 112, 22, 33, 116, 216, 77, 95,\n\t\t70, 77, 232, 98, 61, 63, 210, 59, 125, 117, 93, 143, 156,\n\t\t189, 97, 28, 45, 173, 10, 47, 191, 200, 96, 200, 192, 215,\n\t\t209, 169, 37, 103, 156, 16, 236, 134, 143, 80, 204, 17, 84,\n\t\t65, 69, 31, 163, 125, 173, 253, 43, 55, 140, 116, 88, 97,\n\t\t128, 72, 92, 21, 160, 37, 39, 229, 134, 107, 245, 206, 63,\n\t\t45, 211, 46, 89, 251, 181, 223, 212, 181, 65, 220, 240, 218,\n\t\t111, 104, 95, 28, 90, 251, 45, 171, 171, 214, 35, 167, 253,\n\t\t198, 127, 86, 63, 186, 169, 78, 130, 85, 132, 170, 255, 180,\n\t\t143, 90, 125, 181, 205, 176, 251, 125, 125, 127, 75, 117,\n\t\t48, 175, 255, 219, 13, 247, 46, 189, 242, 191, 131, 231, 218,\n\t\t26, 172, 174, 253, 131, 131, 235, 218, 175, 235, 233, 82,\n\t\t7, 79, 237, 121, 176, 178, 246, 219, 122, 58, 208, 50, 172,\n\t\t172, 253, 107, 61, 204, 245, 176, 187, 125, 57, 244, 92, 90,\n\t\t167, 79, 13, 175, 165, 70, 218, 185, 125, 254, 107, 173, 205,\n\t\t210, 134, 49, 97, 227, 178, 86, 225, 106, 248, 175, 253, 166,\n\t\t158, 134, 175, 230, 223, 193, 217, 29, 219, 237, 218, 253,\n\t\t210, 73, 183, 249, 227, 221, 255, 176, 195, 111, 220, 119,\n\t\t17, 207, 114, 97, 36, 112, 207, 51, 110, 91, 66, 24, 117,\n\t\t173, 138, 171, 100, 213, 94, 141, 175, 182, 175, 102, 86,\n\t\t135, 86, 15, 174, 190, 110, 117, 122, 117, 118, 117, 126,\n\t\t117, 113, 245, 145, 213, 165, 213, 71, 87, 223, 190, 250,\n\t\t212, 234, 31, 172, 46, 175, 254, 183, 213, 63, 95, 125, 113,\n\t\t245, 202, 234, 255, 90, 253, 249, 234, 47, 87, 43, 87, 253,\n\t\t87, 155, 175, 134, 175, 230, 174, 30, 188, 122, 232, 234,\n\t\t77, 87, 79, 92, 189, 249, 234, 93, 87, 203, 87, 31, 189, 250,\n\t\t228, 213, 79, 92, 253, 139, 171, 223, 184, 250, 253, 171,\n\t\t63, 190, 250, 211, 171, 255, 124, 245, 87, 215, 148, 107,\n\t\t55, 94, 59, 126, 237, 206, 107, 119, 95, 91, 184, 246, 240,\n\t\t181, 119, 94, 123, 215, 181, 207, 92, 251, 236, 181, 207,\n\t\t93, 251, 194, 181, 47, 95, 251, 246, 181, 31, 94, 251, 135,\n\t\t159, 115, 63, 239, 248, 249, 157, 63, 255, 200, 207, 191,\n\t\t245, 11, 223, 47, 62, 241, 139, 31, 188, 124, 219, 203, 231,\n\t\t94, 126, 248, 229, 199, 95, 126, 223, 203, 31, 121, 249, 211,\n\t\t47, 63, 255, 242, 151, 95, 126, 113, 109, 13, 161, 85, 97,\n\t\t3, 172, 175, 173, 193, 250, 134, 6, 88, 63, 188, 250, 231,\n\t\t171, 95, 109, 128, 53, 84, 7, 235, 241, 171, 35, 87, 239,\n\t\t188, 58, 126, 245, 109, 87, 159, 184, 250, 137, 171, 95, 218,\n\t\t0, 235, 225, 107, 199, 175, 157, 186, 118, 247, 181, 215,\n\t\t95, 123, 136, 193, 250, 199, 46, 172, 95, 186, 246, 82, 13,\n\t\t214, 219, 55, 192, 250, 208, 203, 111, 126, 249, 233, 151,\n\t\t63, 252, 242, 167, 170, 176, 234, 107, 122, 69, 255, 39, 253,\n\t\t111, 245, 191, 209, 255, 79, 253, 235, 250, 87, 245, 63, 214,\n\t\t63, 160, 47, 235, 255, 85, 255, 3, 253, 189, 250, 127, 210,\n\t\t47, 233, 239, 214, 47, 234, 143, 232, 15, 235, 23, 244, 59,\n\t\t244, 215, 233, 251, 245, 157, 250, 14, 189, 87, 239, 208,\n\t\t45, 221, 167, 235, 218, 175, 180, 191, 215, 126, 162, 253,\n\t\t173, 246, 99, 237, 71, 218, 15, 180, 239, 104, 159, 214, 62,\n\t\t166, 93, 210, 222, 168, 61, 172, 205, 106, 103, 181, 81, 237,\n\t\t86, 237, 22, 237, 128, 70, 52, 193, 91, 241, 254, 214, 251,\n\t\t83, 239, 223, 121, 191, 231, 253, 159, 222, 63, 244, 62, 231,\n\t\t253, 184, 247, 99, 222, 255, 230, 125, 198, 251, 132, 247,\n\t\t119, 188, 231, 189, 71, 188, 77, 234, 75, 234, 71, 212, 115,\n\t\t158, 191, 244, 188, 223, 211, 238, 49, 60, 188, 178, 166,\n\t\t252, 179, 242, 79, 202, 143, 148, 191, 86, 190, 167, 124,\n\t\t107, 147, 52, 252, 127, 245, 31, 96, 84, 3, 24, 170, 83, 177,\n\t\t161, 193, 22, 55, 253, 127, 247, 111, 24, 61, 130, 254, 12,\n\t\t253, 18, 166, 225, 139, 240, 35, 174, 139, 187, 200, 125,\n\t\t147, 23, 248, 211, 252, 115, 66, 179, 240, 65, 225, 138, 168,\n\t\t138, 71, 196, 207, 224, 46, 124, 2, 127, 157, 52, 147, 211,\n\t\t228, 71, 210, 105, 233, 71, 242, 61, 242, 243, 138, 166, 236,\n\t\t86, 30, 83, 126, 226, 217, 237, 249, 166, 26, 82, 139, 234,\n\t\t91, 212, 151, 188, 134, 247, 239, 180, 136, 118, 66, 123,\n\t\t76, 251, 138, 126, 80, 191, 168, 127, 217, 135, 124, 67, 190,\n\t\t105, 223, 11, 254, 157, 254, 207, 4, 58, 2, 103, 3, 31, 14,\n\t\t124, 51, 120, 44, 248, 77, 227, 160, 241, 81, 19, 153, 199,\n\t\t204, 47, 90, 97, 107, 202, 250, 27, 59, 99, 79, 217, 47, 134,\n\t\t14, 134, 158, 13, 253, 162, 233, 108, 211, 106, 243, 123,\n\t\t155, 191, 214, 98, 180, 220, 209, 242, 179, 240, 68, 248,\n\t\t167, 173, 7, 91, 255, 42, 242, 116, 91, 115, 219, 68, 219,\n\t\t23, 163, 66, 116, 34, 250, 66, 76, 137, 221, 20, 187, 20,\n\t\t251, 114, 252, 108, 252, 31, 19, 39, 18, 43, 237, 190, 246,\n\t\t251, 218, 191, 215, 94, 73, 90, 201, 145, 212, 254, 212, 179,\n\t\t105, 37, 61, 146, 126, 52, 253, 249, 244, 181, 142, 142, 142,\n\t\t169, 142, 175, 119, 182, 119, 190, 165, 243, 175, 186, 78,\n\t\t116, 125, 165, 187, 216, 253, 166, 238, 74, 207, 77, 61, 207,\n\t\t246, 6, 122, 159, 201, 72, 153, 179, 125, 82, 223, 99, 253,\n\t\t61, 253, 239, 219, 17, 221, 241, 153, 172, 154, 157, 205,\n\t\t174, 230, 46, 229, 190, 159, 223, 157, 127, 42, 255, 179,\n\t\t66, 180, 240, 100, 145, 43, 222, 81, 124, 177, 132, 75, 167,\n\t\t41, 183, 172, 253, 122, 237, 175, 57, 12, 31, 65, 1, 212,\n\t\t142, 16, 68, 0, 235, 128, 227, 125, 144, 129, 98, 169, 104,\n\t\t217, 67, 96, 23, 243, 233, 20, 214, 33, 157, 1, 130, 141,\n\t\t54, 176, 74, 240, 181, 246, 144, 213, 242, 71, 190, 30, 223,\n\t\t31, 181, 88, 161, 246, 238, 197, 174, 174, 69, 163, 181, 61,\n\t\t114, 50, 156, 72, 132, 79, 70, 218, 91, 47, 243, 60, 44, 181,\n\t\t221, 122, 34, 252, 73, 159, 239, 147, 225, 147, 167, 218,\n\t\t218, 229, 174, 46, 249, 74, 228, 181, 241, 16, 110, 77, 36,\n\t\t90, 113, 40, 254, 218, 200, 39, 5, 129, 113, 171, 190, 246,\n\t\t2, 183, 3, 190, 132, 66, 40, 206, 158, 175, 131, 109, 225,\n\t\t62, 32, 56, 181, 23, 210, 169, 226, 94, 174, 152, 109, 227,\n\t\t74, 125, 180, 158, 148, 108, 206, 103, 168, 218, 125, 77,\n\t\t124, 212, 255, 214, 183, 250, 163, 124, 211, 125, 154, 106,\n\t\t60, 185, 79, 238, 144, 247, 145, 241, 119, 14, 13, 189, 115,\n\t\t220, 126, 228, 17, 48, 184, 148, 118, 238, 201, 160, 45, 31,\n\t\t60, 168, 132, 130, 79, 158, 211, 82, 156, 117, 49, 16, 184,\n\t\t248, 193, 211, 198, 155, 222, 100, 156, 126, 231, 254, 253,\n\t\t72, 64, 104, 109, 5, 86, 96, 5, 5, 81, 28, 117, 161, 44, 66,\n\t\t201, 172, 213, 10, 6, 78, 196, 226, 169, 65, 200, 23, 115,\n\t\t89, 43, 91, 180, 11, 249, 84, 34, 142, 19, 113, 122, 109,\n\t\t133, 98, 60, 149, 47, 102, 45, 35, 21, 199, 134, 149, 45,\n\t\t230, 97, 119, 233, 100, 216, 168, 44, 27, 225, 147, 37, 111,\n\t\t46, 159, 63, 157, 75, 240, 187, 34, 145, 93, 124, 34, 247,\n\t\t179, 7, 79, 157, 122, 240, 212, 196, 200, 206, 157, 35, 59,\n\t\t47, 157, 44, 53, 27, 225, 176, 209, 92, 58, 233, 243, 45,\n\t\t55, 39, 114, 62, 95, 46, 209, 124, 249, 20, 109, 242, 190,\n\t\t157, 180, 9, 226, 145, 180, 246, 34, 252, 18, 158, 71, 4,\n\t\t233, 168, 13, 161, 64, 214, 50, 112, 60, 149, 15, 100, 139,\n\t\t121, 250, 56, 49, 77, 161, 26, 128, 108, 43, 216, 150, 14,\n\t\t248, 247, 191, 249, 196, 19, 223, 124, 226, 35, 207, 46, 46,\n\t\t62, 187, 8, 248, 86, 81, 141, 170, 7, 100, 18, 32, 240, 252,\n\t\t19, 244, 155, 202, 183, 22, 233, 87, 222, 33, 1, 127, 88,\n\t\t85, 223, 221, 79, 148, 102, 5, 49, 45, 16, 173, 93, 225, 16,\n\t\t44, 35, 29, 181, 160, 52, 202, 161, 189, 232, 48, 58, 137,\n\t\t94, 139, 16, 100, 45, 211, 239, 224, 95, 240, 231, 139, 57,\n\t\t200, 22, 252, 249, 68, 44, 110, 250, 141, 92, 210, 52, 186,\n\t\t33, 238, 0, 80, 216, 38, 143, 25, 188, 69, 23, 238, 245, 20,\n\t\t94, 162, 184, 87, 70, 233, 21, 158, 193, 184, 50, 133, 49,\n\t\t220, 167, 190, 168, 110, 248, 252, 198, 140, 152, 141, 31,\n\t\t88, 118, 136, 27, 54, 96, 212, 8, 87, 102, 49, 156, 194, 184,\n\t\t242, 28, 190, 43, 164, 170, 33, 245, 84, 221, 85, 102, 119,\n\t\t44, 214, 93, 29, 73, 184, 182, 194, 33, 248, 50, 234, 64,\n\t\t59, 41, 126, 165, 34, 29, 97, 226, 12, 39, 49, 13, 220, 13,\n\t\t20, 215, 84, 33, 95, 180, 35, 96, 27, 166, 65, 232, 176, 7,\n\t\t11, 213, 22, 180, 148, 203, 194, 72, 207, 190, 80, 183, 53,\n\t\t120, 32, 121, 206, 218, 183, 87, 38, 62, 34, 135, 34, 166,\n\t\t191, 153, 227, 210, 157, 201, 115, 79, 223, 48, 16, 57, 27,\n\t\t217, 213, 155, 63, 70, 19, 152, 13, 43, 225, 230, 213, 102,\n\t\t173, 35, 218, 122, 11, 145, 101, 2, 79, 107, 97, 51, 12, 16,\n\t\t242, 243, 188, 68, 244, 232, 26, 90, 141, 70, 163, 63, 9,\n\t\t69, 93, 248, 96, 9, 86, 144, 130, 130, 46, 253, 211, 132,\n\t\t145, 222, 37, 124, 9, 70, 140, 240, 202, 74, 216, 128, 40,\n\t\t174, 252, 12, 95, 130, 149, 176, 81, 233, 159, 157, 165, 36,\n\t\t173, 156, 130, 7, 48, 174, 188, 227, 20, 229, 101, 218, 25,\n\t\t44, 177, 49, 77, 160, 204, 245, 199, 178, 58, 50, 118, 161,\n\t\t84, 108, 3, 250, 111, 110, 53, 68, 187, 226, 182, 29, 183,\n\t\t165, 14, 73, 234, 120, 80, 146, 110, 135, 165, 176, 81, 185,\n\t\t194, 26, 68, 141, 112, 229, 50, 6, 3, 83, 152, 126, 105, 211,\n\t\t118, 255, 255, 254, 106, 187, 17, 228, 204, 45, 110, 31, 124,\n\t\t9, 133, 81, 23, 234, 67, 37, 132, 146, 14, 233, 215, 1, 138,\n\t\t101, 41, 19, 119, 131, 63, 86, 200, 151, 156, 201, 14, 197,\n\t\t108, 27, 88, 6, 73, 235, 80, 10, 166, 83, 58, 216, 165, 34,\n\t\t60, 25, 21, 148, 26, 19, 4, 68, 65, 136, 114, 252, 53, 24,\n\t\t125, 127, 229, 87, 119, 24, 97, 78, 1, 226, 239, 15, 116,\n\t\t251, 23, 118, 191, 64, 246, 253, 107, 183, 68, 218, 118, 183,\n\t\t145, 115, 81, 65, 192, 79, 84, 185, 70, 17, 162, 92, 101,\n\t\t121, 142, 255, 122, 229, 87, 10, 23, 54, 238, 0, 226, 247,\n\t\t119, 251, 119, 244, 239, 126, 97, 31, 1, 165, 155, 176, 91,\n\t\t208, 134, 249, 215, 189, 121, 254, 37, 9, 155, 118, 84, 48,\n\t\t245, 1, 19, 77, 123, 193, 37, 159, 213, 48, 23, 51, 67, 67,\n\t\t146, 100, 75, 242, 208, 144, 44, 217, 146, 212, 80, 106, 156,\n\t\t156, 79, 108, 213, 196, 45, 33, 180, 17, 166, 58, 153, 208,\n\t\t238, 138, 31, 226, 64, 84, 133, 196, 118, 224, 128, 163, 12,\n\t\t144, 61, 178, 252, 156, 44, 221, 41, 203, 182, 36, 15, 188,\n\t\t91, 146, 221, 103, 143, 57, 114, 65, 150, 62, 46, 203, 119,\n\t\t178, 7, 14, 190, 75, 146, 145, 208, 240, 172, 157, 212, 206,\n\t\t219, 68, 1, 67, 227, 232, 24, 210, 73, 51, 8, 249, 33, 174,\n\t\t52, 196, 51, 241, 168, 57, 52, 41, 209, 217, 82, 21, 2, 13,\n\t\t36, 201, 89, 97, 139, 136, 25, 145, 72, 1, 69, 149, 36, 153,\n\t\t111, 210, 61, 126, 85, 38, 114, 88, 198, 201, 225, 212, 222,\n\t\t125, 77, 241, 166, 166, 120, 35, 113, 222, 97, 71, 53, 159,\n\t\t132, 69, 66, 68, 89, 53, 124, 4, 139, 34, 145, 68, 213, 71,\n\t\t84, 143, 76, 76, 162, 20, 243, 159, 163, 55, 53, 185, 26,\n\t\t61, 226, 134, 97, 9, 249, 81, 2, 245, 49, 238, 167, 96, 20,\n\t\t242, 37, 43, 151, 45, 22, 242, 233, 162, 104, 25, 68, 131,\n\t\t68, 60, 3, 233, 84, 190, 52, 4, 89, 139, 100, 139, 165, 12,\n\t\t196, 49, 137, 112, 16, 237, 219, 183, 239, 238, 125, 130,\n\t\t87, 179, 99, 68, 135, 94, 158, 239, 122, 239, 157, 123, 102,\n\t\t110, 11, 211, 204, 103, 222, 251, 243, 155, 222, 156, 76,\n\t\t190, 249, 169, 55, 39, 67, 55, 221, 9, 253, 251, 238, 222,\n\t\t183, 47, 227, 211, 73, 204, 214, 188, 226, 24, 241, 145, 145,\n\t\t177, 222, 147, 5, 150, 142, 253, 211, 241, 3, 7, 142, 31,\n\t\t63, 208, 179, 47, 129, 196, 181, 181, 181, 21, 238, 119, 216,\n\t\t250, 210, 132, 218, 80, 14, 29, 66, 72, 180, 76, 67, 7, 156,\n\t\t136, 167, 33, 85, 200, 239, 133, 98, 46, 107, 139, 148, 106,\n\t\t54, 147, 73, 233, 82, 156, 164, 139, 185, 108, 4, 108, 203,\n\t\t32, 152, 164, 41, 132, 124, 182, 100, 179, 47, 83, 249, 82,\n\t\t177, 100, 99, 18, 1, 238, 97, 44, 40, 130, 132, 133, 223,\n\t\t126, 204, 205, 128, 232, 81, 123, 247, 113, 175, 99, 215,\n\t\t217, 150, 182, 190, 66, 222, 129, 223, 106, 75, 53, 7, 146,\n\t\t111, 190, 137, 85, 221, 249, 222, 174, 90, 141, 45, 18, 44,\n\t\t170, 88, 128, 239, 184, 153, 119, 115, 123, 123, 231, 184,\n\t\t189, 189, 79, 145, 246, 160, 131, 80, 103, 60, 210, 18, 59,\n\t\t112, 188, 114, 133, 180, 7, 199, 70, 214, 43, 216, 26, 226,\n\t\t172, 157, 30, 100, 51, 138, 15, 160, 195, 232, 28, 154, 65,\n\t\t168, 148, 136, 87, 87, 41, 163, 180, 190, 52, 152, 118, 93,\n\t\t158, 108, 147, 175, 111, 83, 170, 19, 94, 3, 80, 112, 122,\n\t\t204, 85, 211, 172, 197, 251, 99, 126, 35, 23, 203, 62, 213,\n\t\t161, 170, 29, 234, 168, 186, 125, 178, 226, 150, 170, 66,\n\t\t164, 95, 237, 80, 151, 212, 14, 181, 223, 8, 247, 87, 150,\n\t\t233, 138, 178, 236, 180, 80, 85, 55, 237, 80, 213, 199, 234,\n\t\t242, 206, 231, 135, 235, 235, 80, 94, 85, 243, 244, 63, 92,\n\t\t121, 18, 186, 42, 223, 195, 136, 91, 251, 87, 119, 77, 13,\n\t\t162, 148, 59, 111, 18, 241, 52, 29, 181, 210, 16, 87, 74,\n\t\t21, 242, 162, 51, 133, 76, 163, 13, 8, 38, 197, 189, 96, 91,\n\t\t79, 127, 247, 233, 167, 239, 235, 203, 236, 187, 201, 167,\n\t\t42, 156, 110, 147, 2, 160, 219, 30, 126, 248, 185, 135, 59,\n\t\t12, 69, 82, 35, 45, 134, 157, 130, 229, 135, 159, 123, 88,\n\t\t203, 180, 122, 56, 127, 50, 176, 243, 208, 109, 255, 124,\n\t\t207, 197, 123, 238, 217, 159, 235, 178, 194, 134, 169, 24,\n\t\t94, 162, 162, 170, 182, 207, 100, 127, 16, 181, 48, 206, 175,\n\t\t23, 179, 3, 144, 109, 131, 96, 33, 17, 239, 131, 132, 191,\n\t\t94, 200, 191, 199, 43, 151, 86, 190, 234, 149, 75, 143, 195,\n\t\t112, 216, 168, 137, 117, 185, 84, 89, 189, 34, 151, 42, 87,\n\t\t220, 57, 117, 4, 150, 144, 137, 226, 20, 171, 36, 19, 216,\n\t\t235, 29, 219, 57, 250, 168, 164, 89, 42, 230, 98, 133, 124,\n\t\t55, 164, 19, 113, 40, 197, 8, 231, 11, 135, 245, 17, 173,\n\t\t165, 50, 75, 251, 92, 30, 94, 54, 194, 149, 145, 189, 90,\n\t\t11, 132, 240, 31, 14, 63, 138, 225, 210, 72, 229, 109, 199,\n\t\t175, 236, 8, 45, 217, 206, 19, 135, 195, 70, 255, 125, 127,\n\t\t63, 97, 119, 225, 225, 202, 149, 165, 37, 36, 214, 173, 101,\n\t\t109, 168, 15, 29, 68, 167, 16, 74, 58, 26, 217, 128, 139,\n\t\t157, 43, 128, 106, 229, 68, 110, 67, 217, 222, 68, 5, 203,\n\t\t244, 151, 54, 52, 130, 119, 137, 146, 36, 90, 244, 242, 189,\n\t\t90, 238, 166, 90, 238, 19, 116, 241, 174, 244, 123, 131, 108,\n\t\t189, 31, 172, 213, 143, 74, 226, 223, 209, 148, 93, 190, 82,\n\t\t187, 60, 234, 94, 250, 89, 243, 160, 23, 70, 216, 253, 43,\n\t\t253, 146, 120, 136, 126, 117, 72, 148, 16, 207, 248, 228,\n\t\t6, 88, 70, 9, 84, 68, 199, 17, 74, 70, 56, 219, 170, 178,\n\t\t74, 58, 229, 112, 76, 145, 50, 12, 19, 10, 17, 48, 141, 164,\n\t\t77, 69, 88, 61, 243, 148, 196, 98, 33, 159, 74, 91, 166, 161,\n\t\t1, 177, 114, 89, 202, 76, 118, 170, 15, 56, 131, 4, 61, 160,\n\t\t168, 250, 190, 61, 145, 200, 240, 185, 144, 174, 13, 236,\n\t\t215, 85, 197, 244, 247, 60, 124, 219, 240, 68, 232, 104, 185,\n\t\t114, 212, 8, 53, 237, 187, 247, 222, 183, 220, 27, 9, 233,\n\t\t130, 96, 153, 240, 96, 100, 120, 7, 244, 221, 156, 221, 113,\n\t\t115, 83, 200, 240, 155, 150, 32, 232, 67, 90, 139, 23, 60,\n\t\t225, 52, 41, 246, 112, 124, 58, 236, 49, 18, 221, 165, 253,\n\t\t247, 20, 123, 228, 215, 237, 41, 237, 16, 240, 254, 187, 246,\n\t\t239, 207, 36, 90, 67, 81, 66, 136, 214, 215, 154, 104, 31,\n\t\t240, 72, 92, 199, 13, 61, 98, 22, 11, 30, 141, 16, 18, 101,\n\t\t22, 167, 190, 246, 2, 68, 153, 236, 67, 73, 179, 78, 147,\n\t\t207, 153, 84, 139, 135, 104, 189, 234, 110, 80, 165, 125,\n\t\t111, 233, 160, 108, 27, 79, 156, 211, 82, 188, 121, 49, 112,\n\t\t144, 42, 233, 8, 241, 107, 191, 89, 251, 60, 39, 192, 159,\n\t\t161, 4, 218, 135, 94, 131, 16, 138, 0, 209, 192, 210, 112,\n\t\t10, 19, 156, 225, 74, 67, 144, 26, 194, 86, 177, 84, 180,\n\t\t139, 41, 162, 65, 74, 19, 44, 76, 176, 85, 26, 2, 43, 59,\n\t\t4, 165, 33, 46, 85, 76, 89, 152, 104, 244, 174, 12, 148, 134,\n\t\t160, 84, 132, 255, 209, 229, 241, 10, 156, 36, 40, 233, 161,\n\t\t131, 59, 119, 118, 36, 37, 171, 184, 169, 166, 160, 244, 248,\n\t\t253, 185, 226, 158, 67, 7, 163, 60, 6, 143, 210, 227, 215,\n\t\t187, 58, 114, 217, 129, 214, 56, 45, 47, 115, 138, 220, 57,\n\t\t42, 130, 215, 175, 0, 89, 40, 73, 240, 217, 174, 162, 37,\n\t\t37, 59, 118, 238, 60, 56, 148, 242, 8, 18, 39, 120, 61, 155,\n\t\t106, 38, 3, 221, 138, 7, 48, 31, 61, 120, 104, 79, 49, 231,\n\t\t15, 116, 43, 178, 128, 73, 44, 28, 103, 69, 191, 23, 196,\n\t\t209, 78, 89, 225, 188, 82, 105, 129, 80, 139, 93, 100, 122,\n\t\t250, 48, 44, 35, 31, 10, 161, 40, 234, 113, 52, 216, 8, 52,\n\t\t168, 117, 118, 188, 21, 98, 133, 124, 194, 159, 29, 132, 152,\n\t\t105, 228, 74, 117, 234, 184, 93, 151, 231, 124, 94, 203, 27,\n\t\t54, 42, 81, 58, 41, 49, 134, 43, 24, 87, 162, 248, 29, 234,\n\t\t17, 85, 61, 162, 174, 80, 113, 247, 152, 10, 203, 94, 203,\n\t\t187, 46, 229, 250, 113, 87, 23, 174, 44, 227, 143, 125, 12,\n\t\t143, 215, 9, 66, 228, 192, 230, 174, 183, 38, 106, 66, 173,\n\t\t40, 137, 122, 17, 74, 214, 27, 79, 123, 97, 8, 168, 138, 103,\n\t\t139, 36, 150, 14, 22, 98, 102, 187, 171, 22, 84, 213, 3, 174,\n\t\t36, 59, 224, 200, 147, 216, 86, 64, 83, 108, 92, 249, 203,\n\t\t19, 240, 177, 19, 147, 149, 40, 172, 4, 155, 131, 193, 230,\n\t\t227, 236, 250, 93, 85, 127, 59, 5, 233, 237, 186, 250, 159,\n\t\t101, 85, 149, 91, 102, 103, 169, 156, 56, 78, 191, 115, 63,\n\t\t84, 86, 185, 242, 55, 139, 110, 69, 119, 59, 218, 175, 161,\n\t\t113, 221, 128, 137, 69, 52, 160, 242, 162, 27, 234, 197, 134,\n\t\t157, 203, 150, 118, 20, 75, 67, 124, 142, 182, 36, 54, 85,\n\t\t18, 82, 221, 144, 47, 22, 242, 142, 58, 67, 48, 49, 35, 220,\n\t\t0, 100, 211, 67, 64, 63, 56, 239, 152, 124, 240, 137, 248,\n\t\t14, 175, 29, 241, 183, 115, 88, 48, 160, 144, 49, 227, 183,\n\t\t40, 188, 236, 29, 246, 6, 131, 222, 97, 175, 204, 203, 166,\n\t\t95, 22, 2, 106, 179, 175, 43, 203, 221, 166, 153, 166, 246,\n\t\t254, 150, 30, 65, 241, 137, 30, 35, 218, 226, 239, 234, 10,\n\t\t154, 131, 138, 42, 75, 26, 40, 191, 214, 12, 77, 51, 160,\n\t\t184, 35, 238, 143, 216, 94, 85, 137, 183, 118, 228, 58, 36,\n\t\t191, 250, 119, 170, 95, 10, 5, 53, 220, 30, 12, 244, 181,\n\t\t171, 158, 7, 76, 77, 51, 73, 143, 145, 240, 183, 73, 1, 171,\n\t\t93, 184, 204, 25, 129, 65, 18, 213, 189, 41, 229, 29, 180,\n\t\t3, 205, 209, 19, 215, 241, 191, 13, 221, 131, 80, 129, 34,\n\t\t233, 72, 17, 42, 97, 236, 29, 214, 0, 80, 180, 35, 85, 253,\n\t\t45, 157, 136, 51, 114, 164, 83, 165, 84, 154, 10, 29, 195,\n\t\t26, 0, 108, 217, 244, 51, 0, 217, 98, 169, 64, 197, 81, 134,\n\t\t75, 196, 77, 195, 50, 19, 113, 141, 19, 92, 149, 115, 71,\n\t\t252, 54, 46, 219, 229, 107, 86, 3, 130, 236, 55, 101, 138,\n\t\t59, 241, 200, 162, 131, 189, 114, 75, 220, 204, 20, 192, 16,\n\t\t48, 215, 30, 223, 209, 111, 106, 119, 42, 160, 73, 178, 170,\n\t\t12, 154, 161, 99, 70, 75, 212, 240, 136, 62, 69, 232, 105,\n\t\t121, 63, 241, 202, 24, 158, 97, 8, 252, 56, 190, 195, 163,\n\t\t182, 247, 5, 130, 237, 88, 11, 134, 36, 145, 120, 48, 165,\n\t\t65, 71, 174, 163, 53, 174, 168, 59, 226, 154, 169, 164, 188,\n\t\t122, 148, 12, 166, 184, 203, 66, 187, 21, 144, 218, 252, 9,\n\t\t163, 135, 136, 138, 247, 73, 70, 66, 23, 127, 71, 31, 201,\n\t\t57, 227, 31, 100, 152, 67, 43, 88, 54, 53, 236, 40, 210, 173,\n\t\t64, 249, 211, 225, 133, 65, 200, 151, 10, 249, 244, 142, 84,\n\t\t58, 35, 48, 34, 217, 165, 188, 99, 223, 83, 171, 207, 52,\n\t\t168, 254, 101, 91, 118, 110, 8, 6, 33, 79, 50, 64, 63, 150,\n\t\t139, 255, 125, 59, 226, 86, 218, 170, 142, 151, 228, 149,\n\t\t220, 1, 35, 205, 254, 160, 178, 245, 136, 165, 26, 6, 12,\n\t\t206, 199, 119, 88, 105, 107, 35, 3, 201, 154, 92, 199, 65,\n\t\t94, 69, 55, 189, 91, 176, 144, 113, 44, 180, 129, 131, 80,\n\t\t3, 254, 59, 208, 45, 232, 78, 132, 108, 138, 35, 93, 76, 10,\n\t\t249, 33, 190, 84, 44, 237, 40, 14, 66, 253, 226, 71, 76, 131,\n\t\t205, 86, 130, 211, 152, 154, 193, 233, 108, 113, 16, 172,\n\t\t98, 137, 126, 6, 33, 159, 74, 39, 232, 4, 208, 56, 211, 200,\n\t\t101, 139, 57, 211, 176, 2, 12, 247, 84, 252, 11, 206, 96,\n\t\t41, 65, 127, 51, 161, 163, 229, 240, 235, 43, 141, 149, 249,\n\t\t251, 12, 212, 97, 135, 119, 188, 166, 174, 120, 107, 204,\n\t\t83, 157, 56, 175, 154, 117, 52, 211, 101, 28, 84, 231, 195,\n\t\t105, 65, 93, 104, 23, 218, 143, 16, 48, 179, 183, 27, 106,\n\t\t182, 189, 163, 62, 178, 57, 207, 103, 7, 33, 65, 41, 147,\n\t\t112, 92, 26, 141, 197, 96, 33, 223, 7, 169, 110, 48, 225,\n\t\t147, 90, 216, 24, 113, 149, 162, 145, 176, 241, 156, 161,\n\t\t45, 224, 81, 35, 124, 19, 166, 202, 226, 237, 138, 118, 31,\n\t\t198, 63, 224, 250, 57, 78, 129, 55, 105, 70, 229, 23, 70,\n\t\t184, 159, 201, 204, 97, 150, 209, 42, 67, 184, 43, 108, 92,\n\t\t193, 149, 175, 227, 81, 252, 53, 77, 185, 157, 230, 0, 41,\n\t\t28, 215, 207, 13, 187, 114, 29, 86, 96, 25, 249, 145, 137,\n\t\t186, 81, 14, 13, 84, 161, 174, 179, 141, 109, 146, 48, 115,\n\t\t65, 106, 179, 247, 85, 81, 169, 194, 89, 181, 222, 45, 215,\n\t\t42, 99, 224, 186, 98, 91, 53, 180, 19, 75, 75, 15, 99, 238,\n\t\t132, 166, 92, 86, 180, 46, 140, 31, 61, 146, 207, 31, 201,\n\t\t31, 102, 166, 60, 12, 57, 224, 58, 242, 93, 139, 143, 84,\n\t\t86, 49, 8, 28, 119, 98, 92, 209, 52, 101, 2, 87, 158, 195,\n\t\t47, 230, 105, 251, 99, 204, 164, 119, 252, 19, 14, 172, 186,\n\t\t171, 91, 110, 235, 83, 128, 75, 76, 183, 116, 192, 184, 131,\n\t\t57, 105, 240, 118, 222, 27, 87, 183, 116, 116, 188, 40, 202,\n\t\t110, 238, 89, 140, 153, 150, 109, 68, 184, 92, 118, 136, 43,\n\t\t20, 75, 98, 172, 128, 137, 38, 196, 51, 124, 58, 149, 110,\n\t\t112, 85, 44, 87, 70, 19, 227, 97, 205, 150, 36, 91, 11, 143,\n\t\t39, 42, 163, 176, 156, 56, 196, 53, 105, 205, 161, 80, 83,\n\t\t147, 214, 196, 29, 74, 52, 186, 45, 250, 59, 195, 39, 192,\n\t\t166, 235, 136, 13, 39, 194, 255, 242, 66, 184, 4, 150, 162,\n\t\t19, 226, 83, 76, 40, 133, 215, 231, 210, 40, 172, 32, 29,\n\t\t181, 82, 142, 10, 58, 218, 60, 54, 29, 139, 178, 200, 23,\n\t\t114, 204, 136, 235, 134, 120, 31, 164, 130, 108, 253, 208,\n\t\t128, 36, 168, 117, 86, 116, 188, 133, 166, 65, 229, 135, 153,\n\t\t200, 112, 105, 122, 199, 101, 170, 9, 54, 167, 100, 77, 222,\n\t\t217, 177, 204, 135, 68, 249, 132, 44, 134, 248, 145, 27, 207,\n\t\t245, 104, 109, 164, 159, 11, 118, 71, 143, 22, 242, 199, 162,\n\t\t221, 65, 174, 95, 12, 26, 82, 79, 25, 102, 101, 77, 78, 53,\n\t\t211, 219, 58, 118, 86, 222, 214, 221, 45, 10, 73, 66, 146,\n\t\t2, 188, 116, 238, 198, 253, 89, 95, 193, 38, 100, 112, 71,\n\t\t123, 127, 225, 232, 77, 197, 254, 246, 29, 131, 132, 248,\n\t\t146, 173, 74, 118, 255, 225, 73, 10, 63, 181, 59, 225, 75,\n\t\t176, 130, 146, 40, 135, 118, 209, 117, 217, 100, 148, 205,\n\t\t64, 129, 130, 56, 196, 21, 242, 197, 82, 33, 95, 164, 130,\n\t\t32, 194, 57, 194, 78, 140, 165, 10, 249, 29, 76, 201, 236,\n\t\t55, 13, 43, 158, 42, 228, 12, 248, 239, 114, 64, 171, 44,\n\t\t201, 186, 36, 3, 167, 251, 141, 35, 59, 131, 205, 193, 228,\n\t\t238, 152, 225, 215, 185, 202, 187, 97, 103, 207, 254, 187,\n\t\t246, 191, 35, 159, 90, 186, 77, 81, 189, 65, 89, 151, 84,\n\t\t5, 120, 61, 116, 160, 103, 247, 109, 30, 147, 78, 106, 147,\n\t\t244, 236, 79, 245, 28, 8, 233, 60, 25, 24, 135, 204, 254,\n\t\t253, 25, 24, 255, 203, 100, 75, 11, 66, 136, 108, 178, 31,\n\t\t143, 162, 49, 244, 70, 132, 74, 174, 129, 71, 21, 151, 220,\n\t\t186, 33, 153, 104, 176, 18, 235, 234, 109, 51, 70, 239, 168,\n\t\t155, 228, 22, 179, 14, 77, 127, 46, 155, 172, 89, 139, 254,\n\t\t196, 250, 20, 42, 37, 168, 173, 18, 111, 133, 68, 188, 21,\n\t\t140, 1, 48, 141, 1, 200, 14, 66, 46, 59, 8, 249, 37, 71, 195,\n\t\t121, 156, 105, 58, 11, 78, 225, 24, 43, 60, 94, 25, 86, 13,\n\t\t77, 185, 93, 83, 102, 21, 237, 118, 69, 51, 212, 202, 165,\n\t\t89, 181, 67, 157, 29, 102, 53, 195, 47, 52, 99, 3, 55, 99,\n\t\t236, 36, 95, 175, 83, 151, 78, 177, 52, 239, 20, 30, 105,\n\t\t111, 87, 225, 13, 178, 218, 65, 231, 91, 135, 42, 87, 222,\n\t\t6, 7, 84, 245, 0, 220, 27, 162, 21, 161, 254, 90, 15, 44,\n\t\t113, 215, 117, 54, 255, 90, 80, 55, 243, 162, 81, 149, 206,\n\t\t85, 235, 92, 67, 187, 102, 18, 151, 26, 37, 136, 197, 215,\n\t\t230, 102, 44, 11, 163, 234, 237, 106, 84, 189, 93, 117, 147,\n\t\t209, 250, 137, 217, 239, 76, 214, 83, 248, 165, 186, 22, 234,\n\t\t237, 79, 173, 183, 160, 134, 174, 59, 117, 17, 215, 224, 39,\n\t\t218, 228, 35, 106, 112, 251, 52, 248, 115, 92, 157, 246, 69,\n\t\t88, 117, 239, 181, 153, 125, 183, 169, 135, 170, 139, 221,\n\t\t114, 83, 50, 4, 17, 32, 56, 158, 78, 13, 129, 101, 91, 217,\n\t\t39, 234, 158, 240, 54, 166, 255, 189, 139, 93, 195, 216, 208,\n\t\t57, 220, 247, 84, 31, 230, 116, 3, 199, 206, 54, 62, 253,\n\t\t76, 112, 93, 97, 188, 75, 226, 188, 6, 217, 181, 139, 24,\n\t\t94, 78, 74, 111, 9, 87, 255, 246, 112, 85, 229, 47, 206, 218,\n\t\t212, 216, 72, 165, 83, 113, 199, 186, 216, 12, 216, 60, 187,\n\t\t206, 188, 169, 19, 115, 68, 50, 112, 243, 205, 205, 12, 198,\n\t\t173, 32, 235, 101, 215, 243, 59, 136, 129, 9, 39, 181, 181,\n\t\t49, 16, 209, 150, 176, 109, 225, 155, 220, 8, 155, 77, 83,\n\t\t202, 241, 249, 98, 110, 59, 176, 24, 19, 94, 166, 151, 237,\n\t\t225, 121, 163, 86, 211, 49, 181, 154, 206, 191, 190, 111,\n\t\t112, 20, 189, 22, 157, 65, 51, 232, 13, 232, 119, 209, 123,\n\t\t208, 251, 209, 199, 183, 88, 35, 234, 184, 48, 185, 141, 175,\n\t\t103, 187, 188, 184, 77, 254, 223, 218, 207, 118, 190, 39,\n\t\t206, 199, 86, 18, 102, 19, 193, 79, 164, 74, 84, 146, 224,\n\t\t138, 84, 121, 82, 13, 171, 106, 88, 29, 221, 42, 169, 92,\n\t\t118, 82, 88, 114, 203, 75, 215, 105, 236, 38, 167, 213, 239,\n\t\t171, 234, 247, 213, 141, 254, 115, 136, 74, 82, 229, 138,\n\t\t244, 14, 213, 105, 181, 241, 51, 93, 151, 127, 108, 155, 54,\n\t\t206, 231, 5, 85, 245, 169, 85, 95, 144, 43, 87, 219, 80, 122,\n\t\t211, 88, 108, 114, 163, 81, 253, 34, 182, 97, 237, 174, 122,\n\t\t199, 152, 233, 199, 64, 222, 228, 246, 162, 11, 57, 115, 123,\n\t\t213, 249, 167, 85, 100, 160, 48, 93, 107, 232, 202, 152, 161,\n\t\t106, 115, 209, 22, 92, 83, 79, 112, 117, 71, 88, 80, 213,\n\t\t203, 178, 207, 19, 82, 33, 95, 207, 112, 223, 38, 97, 82,\n\t\t22, 120, 175, 252, 146, 166, 17, 171, 142, 91, 235, 228, 159,\n\t\t135, 241, 28, 42, 213, 201, 254, 235, 201, 187, 41, 85, 253,\n\t\t137, 170, 78, 109, 41, 229, 62, 172, 70, 85, 53, 170, 126,\n\t\t125, 107, 241, 86, 247, 76, 29, 5, 81, 98, 43, 142, 142, 249,\n\t\t147, 164, 206, 235, 222, 6, 86, 131, 246, 51, 90, 89, 134,\n\t\t61, 13, 158, 119, 75, 222, 168, 10, 209, 70, 215, 214, 29,\n\t\t240, 143, 203, 178, 37, 187, 186, 7, 183, 15, 254, 2, 133,\n\t\t81, 22, 189, 142, 234, 133, 148, 158, 169, 65, 208, 192, 176,\n\t\t45, 156, 118, 215, 112, 182, 126, 219, 124, 41, 109, 198,\n\t\t53, 193, 52, 236, 12, 12, 137, 37, 187, 184, 97, 139, 197,\n\t\t161, 19, 53, 101, 187, 193, 165, 203, 32, 228, 185, 172, 166,\n\t\t93, 178, 7, 118, 116, 75, 158, 98, 184, 163, 183, 61, 82,\n\t\t232, 191, 113, 192, 142, 95, 186, 20, 235, 223, 211, 149,\n\t\t10, 14, 17, 65, 242, 53, 183, 117, 118, 54, 55, 121, 20, 172,\n\t\t86, 161, 190, 168, 74, 70, 128, 231, 111, 99, 20, 132, 184,\n\t\t214, 161, 93, 178, 155, 162, 69, 33, 24, 13, 69, 59, 253,\n\t\t77, 71, 123, 7, 58, 98, 126, 157, 223, 21, 13, 89, 149, 47,\n\t\t94, 186, 52, 193, 75, 254, 166, 206, 230, 125, 105, 43, 25,\n\t\t182, 116, 133, 112, 240, 121, 30, 11, 132, 116, 87, 41, 160,\n\t\t10, 50, 47, 41, 28, 27, 147, 102, 153, 242, 174, 80, 147,\n\t\t115, 94, 100, 50, 159, 2, 130, 162, 165, 179, 221, 104, 74,\n\t\t233, 146, 229, 136, 58, 139, 219, 32, 251, 224, 46, 213, 192,\n\t\t251, 69, 207, 37, 39, 217, 197, 100, 252, 29, 245, 203, 208,\n\t\t16, 54, 212, 75, 30, 113, 191, 147, 220, 229, 44, 3, 16, 106,\n\t\t92, 156, 214, 199, 93, 65, 205, 40, 133, 80, 41, 151, 117,\n\t\t119, 87, 138, 201, 235, 176, 218, 27, 191, 34, 97, 124, 70,\n\t\t146, 206, 96, 12, 71, 183, 100, 184, 85, 93, 164, 223, 139,\n\t\t250, 210, 54, 44, 183, 249, 217, 201, 68, 220, 225, 46, 11,\n\t\t95, 119, 89, 63, 176, 254, 240, 197, 45, 159, 125, 169, 250,\n\t\t236, 43, 175, 250, 217, 148, 183, 218, 128, 162, 158, 130,\n\t\t235, 60, 251, 114, 181, 103, 240, 109, 249, 228, 187, 235,\n\t\t232, 210, 114, 157, 185, 182, 2, 75, 240, 37, 228, 71, 6,\n\t\t106, 221, 104, 7, 49, 231, 117, 218, 228, 99, 126, 199, 76,\n\t\t131, 57, 173, 42, 66, 191, 110, 104, 153, 99, 47, 65, 116,\n\t\t66, 209, 150, 225, 30, 205, 168, 124, 218, 49, 7, 140, 176,\n\t\t54, 119, 236, 24, 21, 174, 154, 50, 193, 214, 78, 103, 127,\n\t\t149, 234, 153, 157, 168, 7, 21, 92, 29, 202, 149, 35, 196,\n\t\t213, 53, 7, 33, 159, 75, 110, 124, 178, 149, 54, 115, 65,\n\t\t247, 209, 126, 136, 170, 31, 85, 233, 135, 93, 192, 168, 3,\n\t\t228, 148, 182, 116, 76, 160, 128, 188, 200, 228, 241, 41,\n\t\t71, 44, 127, 190, 14, 164, 83, 218, 158, 42, 76, 149, 209,\n\t\t26, 222, 87, 96, 5, 101, 208, 41, 116, 23, 149, 155, 196,\n\t\t34, 26, 151, 232, 98, 59, 84, 137, 154, 151, 162, 56, 0, 67,\n\t\t92, 105, 136, 115, 188, 84, 185, 108, 4, 76, 170, 15, 165,\n\t\t235, 220, 85, 25, 62, 161, 1, 209, 248, 110, 48, 179, 150,\n\t\t227, 175, 18, 170, 190, 170, 111, 19, 159, 104, 129, 157,\n\t\t75, 241, 62, 190, 247, 134, 62, 63, 239, 247, 48, 123, 251,\n\t\t140, 20, 106, 81, 120, 181, 181, 165, 55, 39, 183, 135, 58,\n\t\t172, 163, 58, 120, 136, 110, 249, 38, 90, 65, 148, 131, 154,\n\t\t164, 249, 72, 216, 106, 81, 60, 77, 231, 83, 201, 97, 69,\n\t\t85, 42, 159, 99, 122, 192, 7, 98, 145, 246, 182, 112, 87,\n\t\t147, 97, 40, 90, 208, 187, 234, 13, 146, 104, 66, 22, 118,\n\t\t247, 229, 11, 182, 221, 148, 182, 154, 79, 232, 157, 74, 72,\n\t\t211, 66, 129, 93, 65, 197, 19, 80, 36, 233, 176, 143, 36,\n\t\t91, 67, 47, 164, 246, 147, 248, 173, 85, 69, 162, 30, 247,\n\t\t34, 186, 211, 181, 79, 186, 129, 89, 41, 241, 12, 164, 51,\n\t\t144, 78, 108, 112, 213, 13, 65, 110, 55, 85, 235, 109, 139,\n\t\t88, 66, 53, 28, 34, 59, 4, 212, 218, 42, 166, 210, 244, 211,\n\t\t13, 113, 156, 48, 217, 214, 89, 4, 108, 106, 54, 230, 83,\n\t\t5, 248, 182, 150, 109, 111, 151, 115, 189, 45, 173, 42, 239,\n\t\t233, 87, 136, 18, 112, 252, 13, 170, 236, 209, 51, 135, 123,\n\t\t121, 31, 191, 115, 39, 88, 162, 175, 114, 183, 227, 154, 57,\n\t\t173, 4, 20, 157, 120, 64, 151, 20, 85, 25, 78, 166, 206, 55,\n\t\t121, 212, 120, 135, 228, 211, 36, 191, 41, 113, 173, 127,\n\t\t29, 106, 142, 231, 109, 187, 144, 239, 219, 45, 120, 246,\n\t\t202, 62, 70, 4, 201, 48, 114, 61, 109, 237, 145, 9, 70, 163,\n\t\t54, 79, 64, 214, 66, 74, 167, 238, 139, 147, 253, 169, 23,\n\t\t18, 69, 201, 119, 88, 82, 12, 205, 27, 220, 21, 112, 247,\n\t\t197, 1, 190, 196, 226, 17, 134, 209, 17, 119, 197, 180, 45,\n\t\t194, 246, 149, 227, 181, 168, 151, 60, 115, 152, 211, 213,\n\t\t37, 75, 47, 150, 206, 149, 210, 37, 146, 38, 105, 155, 216,\n\t\t164, 100, 151, 236, 212, 70, 47, 192, 63, 6, 2, 123, 52, 65,\n\t\t215, 205, 195, 29, 222, 110, 181, 227, 176, 25, 17, 180, 61,\n\t\t172, 46, 98, 30, 238, 80, 123, 220, 170, 194, 241, 227, 129,\n\t\t59, 243, 249, 59, 3, 110, 250, 194, 109, 131, 131, 183, 13,\n\t\t190, 38, 19, 139, 101, 98, 63, 82, 187, 213, 206, 195, 166,\n\t\t174, 215, 238, 180, 14, 117, 58, 117, 180, 51, 191, 223, 233,\n\t\t236, 205, 133, 218, 237, 119, 209, 244, 95, 6, 105, 31, 103,\n\t\t98, 180, 15, 170, 131, 216, 107, 43, 240, 11, 88, 65, 22,\n\t\t149, 38, 34, 211, 65, 179, 118, 4, 48, 209, 192, 52, 172,\n\t\t82, 209, 34, 26, 240, 148, 65, 115, 217, 98, 9, 83, 3, 185,\n\t\t148, 2, 251, 190, 167, 159, 190, 47, 100, 155, 150, 28, 108,\n\t\t75, 142, 13, 197, 226, 102, 251, 196, 192, 109, 15, 63, 124,\n\t\t91, 255, 173, 173, 167, 46, 102, 187, 130, 195, 79, 127, 247,\n\t\t105, 65, 72, 116, 40, 129, 161, 246, 189, 35, 42, 222, 213,\n\t\t220, 155, 133, 151, 30, 126, 238, 225, 206, 118, 223, 249,\n\t\t91, 179, 167, 66, 252, 22, 178, 12, 76, 195, 93, 168, 173,\n\t\t235, 202, 81, 95, 85, 152, 93, 222, 82, 150, 65, 98, 93, 152,\n\t\t221, 176, 173, 44, 171, 183, 139, 108, 132, 144, 235, 48,\n\t\t108, 175, 141, 148, 147, 194, 45, 108, 85, 170, 124, 139,\n\t\t45, 81, 255, 199, 254, 190, 190, 253, 125, 240, 24, 91, 133,\n\t\t62, 194, 150, 36, 187, 143, 214, 85, 99, 117, 54, 239, 179,\n\t\t190, 14, 149, 17, 10, 110, 103, 41, 215, 229, 255, 109, 22,\n\t\t52, 37, 202, 6, 187, 57, 217, 96, 17, 127, 148, 93, 111, 223,\n\t\t214, 58, 134, 145, 58, 195, 184, 114, 5, 122, 234, 204, 224,\n\t\t81, 245, 186, 54, 241, 243, 212, 12, 169, 28, 113, 172, 225,\n\t\t255, 10, 235, 184, 175, 175, 13, 37, 52, 136, 14, 162, 155,\n\t\t208, 107, 94, 105, 149, 8, 58, 27, 106, 4, 167, 83, 76, 85,\n\t\t74, 149, 138, 76, 112, 216, 69, 98, 12, 65, 9, 151, 226, 134,\n\t\t101, 23, 243, 164, 88, 74, 165, 177, 93, 76, 145, 8, 148,\n\t\t182, 89, 89, 126, 173, 40, 254, 166, 54, 189, 152, 110, 81,\n\t\t57, 49, 227, 51, 188, 152, 111, 231, 69, 69, 109, 202, 125,\n\t\t150, 232, 82, 243, 9, 14, 120, 62, 210, 171, 4, 84, 239, 131,\n\t\t162, 105, 106, 65, 110, 219, 165, 168, 178, 42, 181, 249,\n\t\t121, 255, 65, 63, 241, 90, 161, 112, 166, 63, 168, 115, 65,\n\t\t173, 171, 77, 39, 119, 130, 232, 215, 154, 62, 173, 25, 24,\n\t\t199, 31, 243, 115, 94, 59, 161, 243, 24, 176, 0, 85, 157,\n\t\t168, 158, 6, 55, 191, 18, 238, 54, 91, 34, 28, 141, 47, 157,\n\t\t234, 3, 215, 79, 149, 206, 112, 233, 20, 147, 165, 150, 105,\n\t\t216, 249, 146, 147, 181, 195, 176, 163, 88, 42, 110, 131,\n\t\t251, 15, 125, 2, 230, 148, 38, 78, 9, 41, 28, 241, 240, 124,\n\t\t128, 147, 155, 20, 142, 247, 106, 60, 39, 137, 126, 133, 11,\n\t\t66, 136, 151, 189, 10, 103, 3, 24, 219, 227, 253, 146, 64,\n\t\t132, 212, 105, 89, 110, 237, 246, 75, 242, 17, 89, 246, 148,\n\t\t118, 106, 88, 86, 70, 121, 224, 241, 105, 89, 30, 163, 233,\n\t\t152, 178, 21, 174, 251, 95, 17, 215, 172, 69, 48, 177, 45,\n\t\t7, 215, 180, 131, 180, 179, 209, 232, 160, 87, 44, 21, 115,\n\t\t219, 32, 247, 93, 66, 132, 132, 39, 35, 16, 210, 74, 120,\n\t\t174, 69, 245, 243, 164, 149, 16, 33, 227, 212, 8, 114, 80,\n\t\t54, 120, 178, 45, 82, 151, 85, 60, 232, 63, 129, 85, 204,\n\t\t151, 90, 218, 176, 138, 79, 208, 124, 160, 195, 106, 199,\n\t\t174, 189, 94, 143, 71, 17, 13, 189, 18, 38, 206, 92, 182,\n\t\t76, 67, 195, 93, 224, 250, 170, 74, 108, 211, 183, 27, 182,\n\t\t65, 224, 136, 122, 67, 56, 33, 96, 143, 172, 43, 62, 73, 231,\n\t\t136, 24, 82, 251, 67, 30, 175, 215, 19, 218, 158, 5, 223,\n\t\t247, 81, 53, 217, 234, 9, 120, 61, 88, 228, 160, 79, 36, 103,\n\t\t116, 91, 219, 12, 111, 7, 234, 127, 101, 120, 107, 113, 99,\n\t\t213, 101, 104, 27, 48, 163, 29, 146, 212, 113, 187, 36, 133,\n\t\t254, 172, 35, 28, 238, 8, 111, 15, 219, 165, 225, 106, 203,\n\t\t165, 213, 48, 109, 139, 148, 26, 92, 60, 34, 200, 131, 116,\n\t\t20, 67, 237, 104, 7, 26, 70, 199, 208, 8, 66, 193, 156, 153,\n\t\t40, 153, 137, 2, 201, 153, 137, 156, 153, 40, 148, 54, 66,\n\t\t108, 147, 117, 237, 205, 76, 20, 18, 254, 146, 109, 105, 192,\n\t\t244, 234, 66, 206, 204, 101, 49, 213, 161, 50, 16, 167, 139,\n\t\t18, 237, 104, 41, 26, 29, 142, 70, 233, 229, 219, 245, 168,\n\t\t68, 152, 106, 215, 31, 29, 121, 50, 192, 123, 155, 125, 77,\n\t\t109, 98, 48, 106, 41, 189, 45, 65, 89, 15, 104, 242, 112,\n\t\t20, 162, 209, 165, 40, 251, 139, 52, 224, 150, 170, 162, 230,\n\t\t243, 85, 70, 191, 242, 90, 95, 107, 32, 29, 26, 139, 70, 31,\n\t\t245, 121, 136, 151, 16, 47, 241, 124, 38, 26, 173, 211, 79,\n\t\t29, 218, 247, 161, 193, 87, 164, 61, 93, 208, 18, 85, 229,\n\t\t168, 84, 180, 76, 22, 158, 59, 228, 68, 12, 101, 182, 227,\n\t\t151, 75, 186, 216, 30, 22, 9, 17, 195, 237, 162, 222, 73,\n\t\t136, 34, 135, 84, 195, 240, 52, 111, 207, 228, 149, 231, 36,\n\t\t140, 219, 137, 184, 83, 144, 218, 49, 150, 94, 71, 12, 162,\n\t\t180, 96, 197, 220, 109, 122, 164, 80, 221, 124, 93, 169, 201,\n\t\t231, 87, 154, 175, 142, 117, 90, 183, 159, 81, 117, 216, 110,\n\t\t3, 243, 223, 18, 195, 32, 5, 85, 154, 144, 84, 118, 217, 22,\n\t\t212, 111, 72, 146, 103, 214, 35, 73, 249, 164, 219, 82, 149,\n\t\t146, 8, 215, 248, 39, 128, 218, 81, 26, 245, 163, 61, 232,\n\t\t56, 66, 37, 22, 196, 18, 175, 90, 239, 166, 165, 195, 117,\n\t\t89, 135, 178, 77, 45, 198, 206, 118, 141, 50, 86, 81, 72,\n\t\t237, 133, 167, 49, 246, 243, 2, 207, 239, 34, 100, 23, 193,\n\t\t126, 140, 99, 191, 221, 204, 60, 203, 31, 12, 201, 124, 137,\n\t\t147, 217, 53, 134, 177, 31, 147, 245, 246, 103, 48, 9, 240,\n\t\t124, 17, 227, 34, 33, 1, 192, 184, 245, 175, 182, 102, 163,\n\t\t202, 232, 175, 9, 39, 127, 94, 230, 233, 85, 58, 137, 73,\n\t\t128, 144, 186, 187, 16, 194, 117, 250, 135, 134, 44, 212,\n\t\t138, 218, 81, 55, 66, 130, 235, 25, 20, 173, 108, 41, 141,\n\t\t211, 174, 13, 157, 165, 76, 67, 44, 146, 78, 197, 137, 93,\n\t\t180, 9, 54, 236, 82, 170, 4, 231, 152, 74, 82, 249, 64, 223,\n\t\t108, 95, 33, 155, 125, 11, 211, 67, 222, 209, 218, 90, 48,\n\t\t77, 221, 169, 250, 191, 88, 97, 39, 83, 83, 14, 178, 252,\n\t\t173, 76, 127, 177, 235, 191, 118, 219, 178, 189, 136, 202,\n\t\t218, 23, 57, 17, 254, 2, 153, 40, 132, 98, 204, 162, 39, 60,\n\t\t38, 108, 0, 136, 6, 169, 65, 170, 238, 151, 236, 82, 218,\n\t\t14, 138, 54, 85, 115, 1, 158, 111, 206, 10, 123, 4, 195, 163,\n\t\t42, 242, 108, 183, 214, 25, 157, 11, 11, 205, 31, 77, 38,\n\t\t255, 231, 64, 101, 116, 234, 59, 30, 83, 122, 28, 94, 208,\n\t\t98, 145, 202, 35, 182, 7, 243, 153, 1, 191, 16, 182, 78, 245,\n\t\t123, 246, 232, 63, 200, 234, 237, 240, 214, 213, 222, 207,\n\t\t202, 65, 245, 107, 116, 61, 193, 107, 63, 91, 123, 145, 19,\n\t\t224, 121, 228, 67, 77, 40, 138, 210, 40, 67, 173, 63, 176,\n\t\t176, 19, 106, 151, 162, 203, 67, 54, 2, 132, 234, 8, 105,\n\t\t29, 236, 82, 42, 77, 76, 187, 148, 198, 164, 13, 74, 5, 190,\n\t\t212, 7, 196, 106, 3, 107, 47, 164, 19, 4, 254, 38, 122, 207,\n\t\t88, 42, 125, 242, 98, 19, 75, 243, 247, 30, 217, 173, 138,\n\t\t38, 164, 15, 55, 245, 228, 147, 131, 125, 195, 135, 191, 183,\n\t\t39, 165, 28, 30, 190, 187, 59, 116, 56, 13, 201, 242, 238,\n\t\t97, 171, 231, 100, 55, 120, 79, 255, 247, 168, 122, 207, 113,\n\t\t122, 237, 58, 241, 178, 79, 233, 234, 75, 90, 199, 6, 175,\n\t\t229, 141, 230, 155, 250, 172, 55, 26, 249, 130, 213, 119,\n\t\t83, 229, 202, 208, 77, 118, 114, 111, 254, 198, 96, 176, 127,\n\t\t112, 16, 33, 36, 215, 252, 172, 78, 220, 96, 183, 171, 245,\n\t\t221, 130, 238, 221, 194, 163, 55, 4, 57, 222, 200, 82, 219,\n\t\t216, 31, 243, 27, 164, 222, 63, 150, 54, 115, 5, 82, 167,\n\t\t37, 214, 239, 173, 212, 90, 117, 67, 220, 172, 171, 231, 152,\n\t\t83, 184, 226, 179, 99, 154, 210, 45, 54, 233, 195, 62, 31,\n\t\t92, 169, 140, 194, 32, 243, 65, 78, 141, 60, 232, 68, 138,\n\t\t172, 168, 19, 234, 134, 15, 44, 105, 74, 229, 178, 162, 197,\n\t\t108, 240, 41, 154, 22, 168, 60, 47, 73, 191, 92, 67, 16, 173,\n\t\t252, 68, 16, 30, 84, 71, 85, 117, 84, 29, 233, 232, 120, 156,\n\t\t5, 107, 59, 159, 247, 177, 235, 30, 118, 69, 72, 88, 251,\n\t\t21, 59, 169, 248, 85, 228, 65, 17, 39, 254, 84, 164, 19, 45,\n\t\t237, 204, 188, 96, 206, 142, 177, 128, 206, 98, 105, 72, 40,\n\t\t216, 152, 69, 74, 214, 111, 99, 217, 105, 103, 11, 139, 103,\n\t\t155, 87, 26, 112, 15, 171, 138, 162, 168, 191, 253, 24, 75,\n\t\t150, 62, 51, 84, 249, 137, 22, 144, 129, 147, 100, 159, 44,\n\t\t103, 228, 71, 226, 173, 169, 182, 148, 179, 163, 165, 13,\n\t\t240, 251, 51, 205, 169, 37, 127, 196, 86, 188, 170, 170, 192,\n\t\t119, 88, 82, 121, 170, 63, 232, 85, 21, 224, 100, 165, 185,\n\t\t185, 43, 148, 56, 248, 183, 193, 214, 38, 105, 125, 111, 171,\n\t\t148, 234, 179, 45, 200, 236, 175, 140, 38, 91, 252, 17, 255,\n\t\t38, 27, 32, 191, 69, 12, 191, 187, 39, 15, 57, 166, 138, 81,\n\t\t244, 88, 248, 172, 73, 141, 161, 82, 145, 242, 155, 217, 184,\n\t\t133, 146, 235, 220, 59, 120, 178, 125, 184, 99, 32, 37, 112,\n\t\t1, 226, 9, 199, 66, 237, 129, 174, 246, 246, 136, 160, 8,\n\t\t6, 215, 232, 184, 247, 117, 190, 102, 79, 122, 56, 153, 16,\n\t\t68, 158, 111, 245, 200, 150, 153, 180, 226, 217, 22, 1, 132,\n\t\t22, 65, 16, 54, 196, 136, 231, 208, 209, 235, 239, 231, 150,\n\t\t168, 149, 70, 109, 51, 139, 201, 191, 116, 10, 51, 219, 173,\n\t\t13, 182, 174, 183, 183, 10, 32, 255, 18, 47, 52, 223, 60,\n\t\t188, 239, 230, 38, 158, 243, 11, 56, 50, 60, 216, 38, 10,\n\t\t223, 230, 249, 22, 167, 14, 2, 130, 216, 54, 60, 20, 193,\n\t\t194, 118, 145, 229, 183, 9, 66, 88, 44, 246, 101, 242, 124,\n\t\t19, 207, 71, 176, 16, 50, 227, 73, 187, 69, 196, 45, 219,\n\t\t212, 211, 185, 227, 198, 193, 208, 89, 147, 67, 37, 52, 128,\n\t\t78, 162, 51, 78, 100, 42, 36, 252, 185, 26, 251, 199, 214,\n\t\t157, 64, 254, 245, 136, 213, 88, 117, 42, 208, 185, 19, 51,\n\t\t115, 5, 127, 33, 97, 198, 10, 9, 51, 205, 26, 177, 155, 88,\n\t\t39, 177, 66, 62, 151, 174, 117, 182, 222, 1, 189, 207, 46,\n\t\t36, 216, 46, 29, 252, 66, 85, 85, 245, 136, 90, 89, 81, 143,\n\t\t168, 170, 147, 135, 97, 245, 136, 58, 28, 173, 12, 71, 163,\n\t\t176, 18, 149, 84, 250, 165, 170, 210, 234, 144, 170, 190,\n\t\t72, 13, 163, 23, 213, 231, 47, 141, 238, 84, 143, 193, 240,\n\t\t26, 170, 187, 175, 46, 207, 180, 148, 10, 83, 58, 134, 1,\n\t\t209, 186, 53, 118, 93, 161, 6, 90, 158, 93, 66, 179, 179,\n\t\t151, 103, 143, 169, 116, 153, 102, 122, 148, 19, 71, 118,\n\t\t0, 29, 70, 71, 209, 73, 116, 11, 58, 135, 238, 71, 191, 139,\n\t\t222, 137, 126, 15, 161, 100, 194, 92, 167, 74, 98, 157, 42,\n\t\t133, 134, 124, 13, 193, 220, 186, 176, 48, 115, 245, 212,\n\t\t226, 205, 92, 65, 44, 36, 204, 96, 33, 97, 218, 236, 27, 118,\n\t\t151, 67, 138, 92, 214, 164, 84, 73, 186, 85, 245, 15, 204,\n\t\t57, 157, 230, 108, 247, 94, 46, 239, 96, 121, 133, 33, 124,\n\t\t251, 58, 218, 235, 21, 87, 40, 254, 43, 20, 253, 43, 244,\n\t\t43, 118, 89, 138, 194, 78, 102, 155, 170, 71, 232, 245, 138,\n\t\t154, 143, 70, 163, 87, 150, 215, 111, 15, 177, 235, 230, 138,\n\t\t104, 116, 13, 49, 245, 13, 80, 52, 250, 125, 85, 93, 166,\n\t\t223, 46, 171, 79, 69, 163, 195, 203, 213, 231, 211, 166, 148,\n\t\t236, 180, 73, 157, 143, 193, 245, 89, 38, 141, 186, 176, 88,\n\t\t102, 68, 243, 165, 68, 48, 230, 207, 177, 13, 105, 88, 209,\n\t\t78, 213, 71, 93, 44, 29, 59, 54, 82, 89, 190, 162, 41, 19,\n\t\t227, 134, 118, 74, 115, 29, 9, 70, 229, 195, 199, 192, 87,\n\t\t89, 158, 80, 106, 241, 92, 43, 28, 130, 21, 212, 132, 58,\n\t\t168, 28, 113, 103, 42, 11, 107, 169, 223, 206, 41, 230, 130,\n\t\t27, 99, 90, 234, 66, 50, 216, 148, 236, 15, 27, 149, 21, 55,\n\t\t243, 3, 124, 197, 8, 119, 97, 12, 79, 97, 92, 249, 58, 198,\n\t\t236, 52, 201, 74, 99, 252, 74, 165, 191, 46, 124, 5, 242,\n\t\t172, 33, 170, 243, 213, 174, 160, 36, 234, 70, 59, 16, 2,\n\t\t3, 147, 8, 56, 131, 153, 136, 57, 28, 146, 47, 150, 50, 46,\n\t\t187, 228, 98, 206, 23, 134, 149, 45, 22, 252, 44, 180, 0,\n\t\t102, 179, 125, 125, 89, 65, 85, 43, 239, 85, 85, 193, 205,\n\t\t195, 132, 170, 86, 190, 126, 244, 190, 163, 71, 239, 59, 10,\n\t\t151, 246, 206, 71, 34, 243, 123, 157, 245, 161, 62, 127, 108,\n\t\t106, 234, 88, 101, 148, 94, 171, 251, 92, 116, 158, 127, 0,\n\t\t117, 162, 89, 166, 85, 180, 50, 83, 183, 26, 244, 179, 71,\n\t\t76, 229, 83, 125, 78, 196, 19, 59, 192, 150, 181, 139, 150,\n\t\t93, 200, 167, 240, 186, 238, 153, 194, 117, 145, 196, 91,\n\t\t20, 152, 142, 88, 45, 181, 129, 197, 216, 116, 47, 20, 225,\n\t\t247, 219, 15, 200, 221, 66, 208, 251, 27, 111, 16, 0, 78,\n\t\t167, 119, 38, 184, 27, 219, 173, 97, 43, 180, 251, 72, 115,\n\t\t179, 76, 8, 145, 55, 39, 88, 36, 98, 115, 179, 61, 102, 252,\n\t\t80, 234, 22, 225, 245, 190, 158, 142, 185, 144, 57, 46, 199,\n\t\t232, 90, 34, 72, 162, 200, 243, 28, 0, 220, 26, 207, 239,\n\t\t74, 244, 72, 157, 29, 134, 109, 107, 222, 255, 49, 231, 243,\n\t\t122, 117, 22, 58, 226, 247, 122, 125, 45, 44, 26, 196, 167,\n\t\t121, 125, 157, 181, 186, 5, 34, 11, 88, 144, 58, 105, 195,\n\t\t93, 17, 227, 86, 127, 179, 66, 140, 192, 184, 179, 23, 184,\n\t\t246, 155, 181, 63, 129, 21, 248, 18, 106, 101, 59, 73, 46,\n\t\t141, 152, 107, 185, 15, 168, 246, 99, 23, 92, 234, 88, 38,\n\t\t163, 205, 245, 233, 209, 80, 232, 131, 12, 104, 148, 44, 185,\n\t\t82, 17, 22, 91, 51, 98, 132, 247, 171, 127, 229, 87, 46, 248,\n\t\t36, 171, 53, 150, 139, 6, 70, 140, 182, 124, 75, 32, 40, 19,\n\t\t76, 228, 96, 64, 38, 4, 43, 129, 128, 130, 9, 45, 89, 164,\n\t\t69, 80, 21, 34, 204, 127, 173, 69, 128, 147, 98, 103, 228,\n\t\t162, 109, 189, 213, 163, 121, 255, 127, 86, 201, 103, 170,\n\t\t111, 138, 117, 72, 237, 92, 82, 234, 140, 125, 235, 162, 170,\n\t\t40, 222, 99, 20, 219, 103, 84, 143, 162, 254, 23, 154, 251,\n\t\t60, 205, 125, 129, 230, 126, 159, 230, 190, 169, 18, 57, 133,\n\t\t121, 65, 86, 241, 7, 47, 248, 235, 121, 227, 89, 20, 69, 119,\n\t\t51, 255, 99, 41, 3, 165, 4, 115, 67, 218, 233, 12, 12, 65,\n\t\t27, 211, 225, 41, 26, 116, 226, 166, 115, 217, 189, 80, 28,\n\t\t132, 124, 31, 164, 170, 166, 1, 193, 182, 229, 54, 233, 134,\n\t\t56, 182, 234, 226, 206, 215, 11, 137, 56, 182, 0, 197, 59,\n\t\t20, 159, 159, 191, 189, 173, 187, 187, 237, 158, 147, 173,\n\t\t33, 107, 103, 235, 19, 221, 59, 78, 199, 91, 237, 11, 68,\n\t\t58, 116, 136, 227, 46, 232, 242, 105, 93, 177, 68, 194, 243,\n\t\t207, 218, 138, 39, 200, 115, 239, 83, 100, 242, 25, 159, 166,\n\t\t249, 62, 67, 177, 8, 171, 138, 162, 134, 105, 78, 85, 148,\n\t\t104, 49, 170, 36, 140, 238, 61, 221, 114, 208, 179, 115, 103,\n\t\t200, 179, 179, 16, 46, 5, 211, 223, 176, 147, 98, 11, 215,\n\t\t15, 45, 188, 254, 13, 143, 88, 146, 212, 22, 12, 195, 178,\n\t\t97, 170, 192, 13, 8, 30, 21, 43, 77, 77, 140, 178, 53, 114,\n\t\t187, 52, 160, 50, 63, 140, 246, 57, 145, 185, 137, 66, 58,\n\t\t197, 230, 6, 51, 27, 93, 3, 50, 23, 203, 218, 78, 216, 91,\n\t\t34, 22, 111, 5, 131, 225, 166, 131, 198, 81, 68, 89, 100,\n\t\t76, 27, 68, 160, 21, 184, 222, 224, 149, 113, 65, 184, 104,\n\t\t199, 242, 237, 115, 129, 63, 139, 245, 197, 108, 72, 165,\n\t\t205, 7, 212, 39, 137, 183, 242, 3, 41, 232, 253, 159, 65,\n\t\t139, 132, 4, 45, 32, 207, 249, 109, 233, 162, 215, 123, 70,\n\t\t243, 255, 65, 107, 251, 35, 71, 82, 92, 204, 110, 207, 247,\n\t\t247, 197, 36, 59, 22, 171, 60, 113, 204, 12, 252, 200, 35,\n\t\t73, 222, 96, 91, 96, 88, 214, 36, 219, 47, 137, 105, 49, 164,\n\t\t135, 28, 126, 93, 91, 251, 19, 14, 195, 159, 163, 14, 52,\n\t\t137, 80, 137, 133, 107, 219, 84, 77, 31, 2, 166, 25, 209,\n\t\t98, 4, 108, 182, 41, 183, 206, 202, 233, 20, 118, 216, 144,\n\t\t5, 29, 23, 83, 216, 241, 120, 81, 157, 49, 3, 113, 92, 141,\n\t\t211, 202, 0, 110, 3, 139, 33, 230, 22, 12, 135, 143, 83, 166,\n\t\t193, 5, 3, 5, 179, 141, 164, 163, 208, 106, 181, 244, 97,\n\t\t203, 143, 251, 91, 140, 102, 33, 218, 41, 69, 65, 140, 242,\n\t\t126, 229, 31, 189, 242, 157, 30, 252, 200, 15, 195, 60, 223,\n\t\t198, 251, 76, 174, 133, 247, 42, 68, 225, 82, 28, 86, 60,\n\t\t10, 215, 197, 123, 189, 94, 190, 151, 55, 252, 124, 23, 112,\n\t\t2, 17, 36, 47, 31, 225, 77, 31, 151, 8, 74, 5, 188, 63, 184,\n\t\t211, 8, 10, 254, 199, 218, 178, 96, 197, 69, 220, 218, 114,\n\t\t113, 178, 165, 149, 136, 145, 96, 46, 250, 54, 140, 147, 126,\n\t\t223, 253, 138, 87, 254, 130, 170, 227, 197, 81, 89, 73, 170,\n\t\t158, 71, 61, 154, 168, 190, 94, 85, 165, 247, 18, 85, 36,\n\t\t228, 99, 170, 250, 231, 170, 168, 121, 254, 88, 32, 152, 87,\n\t\t31, 165, 217, 167, 57, 238, 6, 143, 68, 178, 34, 66, 226,\n\t\t218, 111, 92, 255, 112, 4, 221, 131, 102, 209, 18, 122, 124,\n\t\t219, 153, 78, 153, 182, 104, 23, 45, 49, 165, 65, 27, 208,\n\t\t145, 118, 216, 158, 202, 196, 218, 126, 83, 109, 170, 179,\n\t\t45, 124, 86, 218, 240, 93, 218, 174, 197, 89, 177, 0, 235,\n\t\t120, 170, 180, 94, 129, 221, 114, 205, 158, 128, 179, 177,\n\t\t93, 92, 139, 152, 180, 63, 25, 55, 206, 51, 217, 144, 46,\n\t\t165, 99, 182, 217, 91, 249, 21, 49, 9, 62, 143, 229, 79, 234,\n\t\t124, 11, 4, 130, 2, 17, 171, 146, 66, 144, 132, 64, 64, 36,\n\t\t130, 43, 43, 14, 74, 24, 99, 137, 19, 68, 30, 99, 233, 152,\n\t\t132, 177, 40, 203, 34, 198, 210, 81, 13, 107, 26, 214, 192,\n\t\t171, 118, 36, 78, 73, 228, 130, 221, 26, 126, 134, 9, 144,\n\t\t15, 132, 211, 233, 240, 77, 98, 72, 241, 92, 80, 132, 128,\n\t\t242, 140, 164, 95, 224, 184, 83, 116, 154, 9, 146, 32, 19,\n\t\t147, 230, 76, 34, 11, 146, 144, 160, 217, 4, 171, 253, 35,\n\t\t154, 189, 170, 18, 249, 230, 81, 58, 23, 71, 121, 44, 240,\n\t\t50, 113, 242, 236, 226, 243, 141, 250, 216, 89, 105, 135,\n\t\t222, 9, 116, 15, 165, 52, 11, 45, 94, 39, 117, 137, 89, 149,\n\t\t17, 104, 131, 180, 75, 240, 87, 183, 234, 84, 249, 147, 89,\n\t\t4, 181, 193, 129, 251, 204, 142, 38, 70, 189, 111, 164, 131,\n\t\t165, 112, 97, 167, 39, 20, 54, 146, 109, 36, 40, 119, 239,\n\t\t233, 54, 18, 253, 141, 226, 149, 10, 1, 213, 35, 12, 224,\n\t\t112, 16, 15, 3, 110, 81, 165, 146, 232, 249, 6, 165, 46, 32,\n\t\t162, 37, 172, 67, 140, 70, 241, 211, 59, 186, 159, 104, 221,\n\t\t233, 33, 98, 83, 240, 228, 61, 84, 106, 221, 206, 251, 159,\n\t\t62, 68, 177, 111, 148, 70, 85, 9, 165, 188, 79, 231, 45, 223,\n\t\t179, 60, 79, 68, 75, 209, 79, 203, 250, 5, 14, 109, 56, 43,\n\t\t200, 118, 85, 55, 89, 58, 150, 225, 82, 37, 209, 232, 239,\n\t\t49, 13, 98, 165, 179, 133, 124, 6, 186, 193, 108, 48, 117,\n\t\t138, 28, 143, 249, 110, 194, 247, 71, 137, 152, 22, 36, 73,\n\t\t56, 121, 182, 131, 219, 29, 21, 3, 190, 150, 70, 67, 39, 193,\n\t\t19, 145, 199, 119, 156, 18, 9, 17, 127, 41, 146, 91, 115,\n\t\t22, 223, 25, 83, 188, 210, 112, 99, 44, 116, 11, 26, 64, 7,\n\t\t94, 125, 204, 220, 245, 78, 153, 193, 136, 122, 140, 106,\n\t\t33, 170, 155, 204, 110, 127, 152, 236, 125, 117, 205, 212,\n\t\t99, 31, 189, 206, 169, 177, 122, 88, 61, 44, 18, 120, 219,\n\t\t248, 150, 235, 193, 246, 8, 59, 61, 253, 200, 246, 16, 61,\n\t\t232, 168, 80, 223, 191, 46, 40, 91, 208, 141, 108, 125, 214,\n\t\t85, 7, 219, 122, 181, 176, 193, 78, 191, 44, 21, 139, 146,\n\t\t236, 151, 104, 34, 53, 148, 150, 182, 7, 249, 198, 173, 218,\n\t\t187, 165, 202, 171, 197, 163, 13, 165, 153, 87, 242, 85, 70,\n\t\t65, 93, 47, 166, 167, 49, 42, 170, 237, 221, 178, 116, 148,\n\t\t5, 247, 244, 204, 176, 224, 158, 235, 134, 73, 253, 197, 187,\n\t\t37, 249, 40, 11, 243, 233, 157, 118, 194, 124, 152, 239, 212,\n\t\t89, 159, 99, 40, 201, 78, 72, 187, 80, 106, 224, 170, 32,\n\t\t204, 71, 85, 240, 231, 135, 128, 29, 18, 165, 32, 137, 126,\n\t\t219, 15, 165, 156, 159, 136, 126, 146, 240, 115, 253, 88,\n\t\t17, 21, 241, 189, 138, 162, 40, 207, 125, 140, 231, 27, 74,\n\t\t149, 79, 45, 85, 94, 122, 51, 44, 193, 149, 55, 3, 44, 203,\n\t\t164, 242, 44, 86, 21, 174, 192, 243, 131, 123, 65, 38, 112,\n\t\t199, 122, 105, 119, 229, 71, 25, 136, 84, 254, 174, 15, 34,\n\t\t61, 21, 136, 245, 85, 126, 132, 234, 206, 205, 175, 32, 11,\n\t\t117, 213, 89, 31, 20, 42, 102, 110, 84, 67, 251, 168, 222,\n\t\t128, 77, 63, 85, 28, 204, 189, 144, 203, 22, 97, 165, 57,\n\t\t149, 106, 190, 244, 70, 94, 80, 71, 105, 14, 46, 201, 164,\n\t\t178, 68, 5, 202, 165, 3, 222, 101, 34, 195, 74, 170, 185,\n\t\t114, 165, 57, 117, 15, 167, 158, 74, 53, 67, 180, 57, 85,\n\t\t89, 134, 40, 59, 41, 119, 133, 200, 123, 178, 138, 27, 11,\n\t\t212, 120, 238, 121, 139, 40, 209, 228, 6, 47, 50, 217, 80,\n\t\t110, 144, 44, 29, 50, 233, 167, 207, 232, 39, 242, 236, 122,\n\t\t182, 81, 168, 124, 104, 153, 86, 55, 94, 208, 86, 103, 176,\n\t\t209, 134, 176, 54, 123, 195, 147, 225, 151, 245, 221, 126,\n\t\t106, 189, 59, 72, 215, 193, 244, 96, 253, 67, 68, 132, 214,\n\t\t214, 184, 37, 88, 66, 9, 212, 141, 142, 161, 179, 104, 26,\n\t\t33, 200, 249, 41, 165, 19, 152, 174, 47, 105, 182, 167, 153,\n\t\t234, 131, 4, 19, 171, 254, 156, 179, 135, 135, 170, 210, 182,\n\t\t232, 248, 83, 211, 169, 226, 94, 72, 196, 113, 130, 36, 204,\n\t\t156, 109, 177, 115, 166, 206, 127, 33, 193, 244, 63, 29, 176,\n\t\t193, 234, 171, 51, 217, 174, 6, 16, 112, 228, 161, 97, 111,\n\t\t112, 55, 47, 53, 171, 9, 127, 48, 98, 5, 237, 1, 251, 86,\n\t\t89, 214, 228, 225, 7, 250, 125, 246, 143, 109, 127, 229, 53,\n\t\t26, 45, 194, 211, 34, 158, 146, 3, 189, 173, 178, 193, 89,\n\t\t233, 93, 192, 195, 80, 87, 120, 76, 141, 41, 190, 164, 44,\n\t\t71, 66, 88, 188, 216, 59, 200, 243, 167, 116, 117, 159, 68,\n\t\t176, 73, 74, 170, 199, 227, 81, 189, 231, 4, 97, 218, 185,\n\t\t125, 120, 13, 5, 189, 94, 37, 170, 203, 36, 228, 243, 115,\n\t\t193, 99, 180, 18, 245, 251, 124, 149, 85, 197, 43, 203, 94,\n\t\t158, 136, 175, 37, 126, 94, 151, 173, 1, 51, 193, 13, 45,\n\t\t221, 174, 8, 222, 96, 148, 40, 237, 65, 17, 223, 184, 52,\n\t\t196, 121, 246, 96, 67, 34, 128, 115, 30, 85, 85, 21, 245,\n\t\t22, 65, 232, 103, 247, 53, 218, 205, 173, 168, 128, 70, 55,\n\t\t236, 72, 148, 138, 165, 33, 49, 27, 17, 108, 43, 88, 200,\n\t\t167, 83, 233, 120, 134, 139, 107, 92, 2, 19, 186, 12, 231,\n\t\t98, 217, 180, 69, 48, 209, 196, 132, 115, 204, 128, 121, 29,\n\t\t45, 59, 203, 14, 33, 8, 37, 170, 69, 193, 63, 249, 29, 23,\n\t\t87, 160, 227, 94, 62, 160, 154, 126, 203, 176, 2, 134, 26,\n\t\t224, 199, 69, 238, 53, 121, 104, 209, 108, 159, 173, 181,\n\t\t64, 223, 109, 28, 181, 176, 163, 146, 82, 242, 57, 205, 20,\n\t\t181, 169, 73, 107, 6, 95, 73, 145, 116, 73, 46, 249, 104,\n\t\t83, 9, 123, 85, 221, 227, 229, 125, 37, 89, 162, 229, 202,\n\t\t175, 153, 0, 33, 150, 30, 59, 202, 235, 138, 38, 97, 44, 233,\n\t\t178, 206, 159, 172, 124, 161, 194, 113, 251, 59, 109, 69,\n\t\t85, 229, 80, 242, 16, 240, 21, 252, 101, 133, 244, 170, 78,\n\t\t35, 226, 83, 76, 78, 237, 37, 74, 64, 38, 61, 94, 91, 81,\n\t\t69, 226, 145, 84, 206, 219, 67, 228, 250, 243, 49, 105, 182,\n\t\t190, 28, 65, 104, 221, 253, 82, 75, 27, 227, 34, 168, 252,\n\t\t110, 5, 131, 74, 240, 106, 84, 49, 113, 173, 133, 172, 149,\n\t\t203, 22, 115, 213, 211, 179, 159, 54, 12, 85, 101, 255, 85,\n\t\t15, 3, 12, 27, 97, 67, 29, 169, 172, 188, 144, 79, 165, 242,\n\t\t169, 103, 100, 111, 58, 44, 52, 235, 122, 179, 16, 78, 123,\n\t\t101, 136, 14, 171, 29, 234, 176, 35, 231, 157, 237, 13, 71,\n\t\t176, 86, 94, 130, 229, 202, 232, 75, 41, 122, 211, 179, 30,\n\t\t41, 24, 138, 75, 82, 60, 20, 148, 60, 236, 156, 128, 35, 39,\n\t\t117, 118, 186, 185, 31, 237, 65, 71, 208, 169, 173, 99, 50,\n\t\t175, 11, 109, 131, 99, 124, 155, 124, 67, 56, 240, 149, 74,\n\t\t116, 75, 44, 134, 36, 105, 182, 241, 179, 85, 104, 231, 229,\n\t\t205, 200, 12, 75, 62, 73, 242, 73, 141, 201, 22, 241, 221,\n\t\t241, 122, 191, 113, 117, 114, 166, 106, 210, 175, 148, 114,\n\t\t68, 1, 73, 22, 11, 206, 161, 96, 219, 121, 81, 77, 46, 251,\n\t\t18, 123, 213, 204, 49, 182, 211, 90, 98, 162, 230, 15, 159,\n\t\t218, 25, 202, 68, 34, 173, 109, 189, 77, 144, 76, 46, 62,\n\t\t187, 152, 236, 28, 230, 147, 237, 73, 126, 24, 110, 103, 111,\n\t\t157, 185, 157, 237, 181, 126, 215, 21, 88, 253, 41, 78, 81,\n\t\t32, 221, 158, 31, 190, 101, 113, 241, 150, 225, 124, 94, 81,\n\t\t80, 221, 30, 37, 29, 3, 186, 166, 238, 217, 154, 254, 65,\n\t\t74, 255, 1, 246, 230, 133, 4, 190, 46, 231, 140, 48, 58, 187,\n\t\t14, 223, 202, 149, 117, 45, 219, 218, 146, 111, 86, 214, 79,\n\t\t251, 24, 225, 74, 63, 101, 22, 24, 149, 153, 52, 217, 130,\n\t\t206, 108, 239, 167, 142, 111, 218, 93, 174, 25, 217, 26, 234,\n\t\t156, 123, 214, 218, 129, 207, 220, 176, 133, 178, 77, 190,\n\t\t138, 222, 70, 142, 137, 193, 58, 224, 176, 107, 19, 167, 84,\n\t\t24, 122, 155, 248, 37, 90, 185, 34, 4, 28, 248, 3, 194, 200,\n\t\t86, 108, 50, 202, 208, 92, 247, 109, 44, 59, 17, 70, 155,\n\t\t240, 41, 196, 76, 166, 117, 109, 56, 33, 69, 165, 209, 134,\n\t\t167, 62, 240, 211, 159, 58, 175, 13, 163, 253, 161, 40, 242,\n\t\t32, 36, 198, 152, 143, 36, 70, 7, 16, 174, 84, 88, 160, 28,\n\t\t172, 120, 131, 193, 168, 123, 202, 182, 209, 47, 217, 202,\n\t\t226, 171, 182, 247, 75, 22, 98, 102, 210, 31, 51, 217, 160,\n\t\t111, 246, 68, 94, 169, 172, 192, 114, 101, 229, 138, 17, 222,\n\t\t218, 7, 249, 210, 75, 163, 48, 76, 219, 33, 96, 54, 215, 87,\n\t\t96, 5, 125, 16, 161, 100, 4, 216, 222, 171, 109, 49, 77, 41,\n\t\t213, 199, 153, 238, 246, 108, 109, 17, 102, 90, 92, 126, 47,\n\t\t20, 232, 178, 73, 13, 171, 189, 64, 232, 194, 73, 181, 88,\n\t\t90, 24, 130, 54, 40, 165, 157, 170, 98, 77, 179, 101, 11,\n\t\t103, 209, 106, 227, 10, 110, 69, 205, 168, 117, 117, 94, 211,\n\t\t185, 147, 62, 223, 217, 167, 209, 193, 166, 5, 250, 12, 98,\n\t\t59, 85, 88, 7, 120, 30, 243, 188, 36, 105, 105, 25, 56, 44,\n\t\t232, 88, 229, 204, 35, 3, 30, 143, 234, 241, 52, 201, 216,\n\t\t71, 228, 38, 143, 199, 35, 8, 187, 143, 152, 156, 7, 235,\n\t\t4, 115, 114, 26, 123, 89, 251, 56, 38, 156, 192, 121, 240,\n\t\t200, 145, 35, 35, 216, 195, 9, 28, 193, 241, 180, 38, 177,\n\t\t174, 56, 76, 116, 172, 130, 121, 100, 247, 134, 158, 60, 158,\n\t\t186, 158, 58, 196, 237, 123, 186, 91, 80, 177, 166, 73, 118,\n\t\t92, 148, 48, 208, 154, 215, 116, 157, 26, 80, 61, 30, 85,\n\t\t109, 202, 208, 137, 151, 105, 246, 120, 84, 65, 19, 246, 156,\n\t\t234, 122, 141, 123, 123, 194, 230, 121, 118, 143, 204, 121,\n\t\t136, 78, 48, 88, 93, 93, 22, 96, 162, 19, 15, 39, 219, 146,\n\t\t198, 186, 35, 78, 255, 91, 245, 230, 241, 188, 218, 206, 170,\n\t\t50, 198, 177, 131, 250, 209, 78, 54, 95, 81, 178, 110, 194,\n\t\t5, 171, 238, 133, 26, 187, 175, 135, 64, 12, 193, 0, 100,\n\t\t153, 205, 77, 114, 76, 199, 9, 250, 99, 254, 250, 89, 12,\n\t\t142, 11, 255, 113, 10, 154, 207, 17, 60, 62, 154, 191, 57,\n\t\t142, 67, 234, 184, 228, 211, 132, 248, 39, 3, 143, 7, 56,\n\t\t254, 30, 254, 203, 149, 43, 199, 88, 227, 168, 123, 102, 99,\n\t\t132, 189, 205, 161, 114, 153, 49, 167, 83, 216, 37, 107, 216,\n\t\t131, 119, 181, 182, 182, 242, 149, 81, 24, 169, 92, 238, 119,\n\t\t218, 54, 156, 217, 15, 161, 118, 148, 71, 123, 208, 97, 102,\n\t\t127, 214, 205, 13, 147, 157, 59, 99, 161, 248, 193, 88, 45,\n\t\t155, 47, 108, 152, 202, 213, 87, 103, 145, 90, 164, 77, 12,\n\t\t174, 132, 141, 202, 18, 5, 196, 167, 96, 12, 11, 248, 142,\n\t\t202, 227, 44, 101, 147, 157, 125, 241, 32, 59, 183, 185, 163,\n\t\t67, 146, 58, 38, 36, 233, 72, 229, 74, 148, 9, 40, 64, 70,\n\t\t184, 31, 255, 2, 99, 5, 70, 104, 242, 11, 220, 31, 54, 214,\n\t\t80, 245, 171, 123, 217, 225, 208, 199, 170, 119, 141, 212,\n\t\t251, 250, 77, 212, 202, 124, 253, 27, 109, 40, 42, 254, 204,\n\t\t234, 75, 208, 130, 254, 124, 157, 133, 237, 134, 84, 214,\n\t\t9, 249, 145, 84, 62, 85, 100, 1, 182, 15, 226, 46, 245, 163,\n\t\t106, 23, 198, 96, 108, 56, 92, 66, 141, 133, 16, 139, 160,\n\t\t173, 76, 193, 41, 220, 174, 170, 237, 78, 96, 101, 163, 254,\n\t\t29, 223, 108, 9, 148, 106, 86, 167, 27, 173, 63, 0, 245, 202,\n\t\t255, 71, 213, 14, 245, 128, 132, 197, 113, 73, 26, 23, 177,\n\t\t116, 160, 81, 235, 255, 170, 170, 46, 232, 206, 119, 250,\n\t\t22, 207, 42, 186, 111, 49, 107, 119, 195, 38, 74, 142, 47,\n\t\t161, 26, 83, 74, 159, 42, 177, 238, 160, 143, 117, 215, 187,\n\t\t222, 219, 130, 250, 186, 58, 40, 126, 216, 8, 196, 38, 187,\n\t\t34, 190, 217, 174, 96, 123, 247, 235, 177, 248, 148, 180,\n\t\t141, 166, 69, 195, 195, 26, 140, 139, 141, 79, 219, 244, 172,\n\t\t106, 84, 8, 87, 125, 143, 148, 107, 215, 185, 103, 14, 40,\n\t\t142, 110, 48, 136, 211, 225, 167, 27, 59, 220, 89, 143, 243,\n\t\t119, 234, 193, 64, 136, 172, 253, 118, 237, 79, 184, 3, 174,\n\t\t190, 96, 163, 22, 20, 97, 145, 91, 136, 133, 212, 19, 192,\n\t\t113, 103, 71, 63, 39, 38, 236, 92, 146, 228, 210, 9, 146,\n\t\t43, 17, 59, 157, 179, 75, 164, 148, 128, 151, 176, 48, 46,\n\t\t226, 202, 207, 120, 149, 175, 252, 12, 139, 227, 60, 129,\n\t\t227, 187, 242, 7, 43, 255, 146, 255, 114, 254, 107, 123, 15,\n\t\t230, 199, 31, 60, 152, 27, 27, 243, 63, 152, 135, 21, 241,\n\t\t41, 66, 42, 31, 23, 4, 184, 149, 144, 167, 196, 254, 81, 246,\n\t\t119, 105, 121, 249, 231, 63, 95, 94, 70, 238, 126, 55, 181,\n\t\t169, 8, 74, 162, 2, 186, 1, 33, 84, 123, 239, 89, 190, 27,\n\t\t216, 49, 80, 182, 103, 212, 6, 86, 46, 91, 50, 221, 3, 161,\n\t\t217, 224, 166, 85, 53, 158, 42, 196, 12, 156, 48, 179, 150,\n\t\t25, 203, 23, 33, 196, 244, 172, 199, 36, 159, 164, 17, 172,\n\t\t11, 156, 196, 11, 60, 231, 147, 164, 97, 233, 151, 116, 205,\n\t\t252, 45, 93, 51, 189, 92, 127, 75, 178, 50, 154, 108, 105,\n\t\t73, 194, 114, 18, 250, 247, 223, 181, 127, 255, 93, 103, 125,\n\t\t210, 237, 146, 160, 240, 2, 199, 105, 60, 148, 36, 159, 4,\n\t\t40, 232, 173, 176, 246, 48, 236, 13, 86, 86, 151, 233, 13,\n\t\t236, 82, 247, 78, 7, 29, 181, 108, 225, 199, 104, 56, 89,\n\t\t151, 190, 206, 187, 201, 26, 181, 1, 231, 229, 123, 79, 225,\n\t\t169, 193, 65, 89, 182, 36, 121, 112, 80, 150, 44, 89, 110,\n\t\t40, 109, 212, 21, 220, 32, 231, 127, 216, 170, 173, 91, 66,\n\t\t72, 172, 189, 3, 201, 209, 99, 187, 209, 16, 66, 155, 223,\n\t\t5, 232, 164, 169, 87, 245, 134, 164, 183, 50, 189, 163, 254,\n\t\t250, 194, 43, 190, 51, 105, 181, 238, 156, 167, 243, 249,\n\t\t211, 87, 126, 137, 82, 163, 14, 78, 117, 220, 93, 155, 229,\n\t\t76, 123, 195, 41, 212, 82, 49, 229, 226, 83, 202, 90, 236,\n\t\t125, 149, 41, 202, 77, 20, 155, 39, 26, 156, 154, 13, 103,\n\t\t82, 99, 248, 15, 24, 84, 75, 70, 146, 7, 29, 43, 158, 148,\n\t\t42, 99, 29, 184, 96, 115, 163, 88, 106, 175, 59, 159, 154,\n\t\t150, 246, 49, 60, 58, 67, 1, 73, 18, 101, 89, 150, 69, 73,\n\t\t82, 13, 101, 19, 220, 81, 199, 194, 219, 116, 54, 116, 195,\n\t\t57, 213, 189, 224, 190, 26, 205, 221, 12, 163, 104, 21, 169,\n\t\t238, 98, 57, 39, 220, 41, 138, 220, 94, 40, 214, 163, 241,\n\t\t158, 251, 226, 206, 17, 214, 224, 80, 144, 29, 97, 77, 7,\n\t\t155, 131, 98, 88, 86, 176, 95, 25, 145, 21, 94, 252, 36, 86,\n\t\t228, 176, 24, 108, 14, 6, 68, 142, 19, 136, 56, 178, 225,\n\t\t80, 105, 75, 167, 115, 176, 213, 178, 216, 193, 214, 215,\n\t\t83, 150, 151, 36, 153, 247, 7, 21, 62, 196, 251, 21, 255,\n\t\t112, 208, 207, 75, 178, 68, 235, 253, 162, 44, 17, 8, 241,\n\t\t27, 241, 235, 102, 239, 169, 220, 140, 159, 115, 108, 34,\n\t\t238, 156, 153, 200, 59, 7, 38, 178, 206, 177, 138, 162, 147,\n\t\t24, 91, 53, 193, 110, 63, 245, 120, 62, 167, 250, 112, 32,\n\t\t128, 125, 42, 189, 214, 231, 159, 218, 84, 227, 228, 223,\n\t\t226, 168, 244, 13, 184, 222, 191, 77, 219, 99, 219, 117, 126,\n\t\t209, 85, 239, 89, 252, 74, 227, 89, 223, 52, 123, 123, 226,\n\t\t94, 116, 116, 11, 126, 220, 96, 35, 214, 230, 150, 59, 211,\n\t\t240, 134, 250, 237, 206, 4, 3, 97, 33, 124, 123, 152, 221,\n\t\t152, 98, 203, 244, 237, 44, 242, 175, 80, 87, 195, 2, 244,\n\t\t151, 54, 31, 22, 254, 83, 214, 242, 53, 204, 140, 236, 97,\n\t\t203, 183, 205, 122, 91, 170, 171, 121, 75, 237, 16, 241, 230,\n\t\t179, 204, 189, 91, 140, 167, 3, 255, 110, 174, 122, 204, 154,\n\t\t78, 47, 202, 188, 56, 85, 106, 96, 202, 247, 178, 105, 241,\n\t\t40, 155, 80, 39, 246, 12, 138, 224, 149, 119, 228, 119, 200,\n\t\t94, 16, 27, 97, 188, 180, 46, 11, 238, 142, 183, 200, 42,\n\t\t175, 235, 188, 42, 183, 176, 223, 5, 216, 124, 30, 189, 136,\n\t\t6, 209, 62, 116, 3, 186, 17, 29, 71, 167, 208, 157, 175, 226,\n\t\t124, 122, 227, 59, 201, 88, 36, 139, 97, 229, 74, 5, 246,\n\t\t66, 25, 90, 42, 21, 18, 102, 125, 154, 203, 178, 141, 183,\n\t\t110, 48, 183, 59, 203, 206, 212, 54, 102, 43, 133, 58, 100,\n\t\t18, 10, 17, 121, 162, 191, 191, 127, 182, 191, 191, 127, 162,\n\t\t35, 68, 117, 215, 208, 246, 167, 219, 19, 97, 131, 25, 164,\n\t\t81, 35, 60, 26, 146, 136, 220, 17, 146, 137, 212, 17, 10,\n\t\t213, 62, 33, 41, 36, 183, 73, 68, 14, 109, 33, 247, 182, 242,\n\t\t180, 178, 3, 59, 206, 155, 19, 139, 182, 149, 77, 109, 192,\n\t\t191, 129, 151, 178, 68, 229, 196, 227, 157, 205, 197, 14,\n\t\t158, 83, 73, 231, 91, 46, 214, 33, 213, 8, 114, 156, 87, 164,\n\t\t120, 198, 72, 89, 146, 194, 123, 79, 212, 193, 223, 192, 39,\n\t\t94, 246, 62, 211, 110, 42, 143, 75, 84, 248, 166, 139, 37,\n\t\t42, 207, 108, 108, 55, 148, 82, 91, 194, 204, 162, 60, 109,\n\t\t43, 251, 162, 104, 82, 211, 76, 119, 146, 215, 55, 148, 190,\n\t\t178, 25, 250, 155, 143, 139, 12, 246, 23, 101, 217, 138, 199,\n\t\t173, 77, 215, 31, 108, 70, 35, 19, 167, 88, 108, 162, 103,\n\t\t158, 106, 29, 175, 68, 207, 116, 170, 52, 36, 228, 234, 23,\n\t\t145, 82, 138, 189, 160, 114, 189, 226, 186, 36, 254, 83, 2,\n\t\t32, 121, 52, 157, 4, 19, 28, 120, 121, 217, 155, 242, 202,\n\t\t252, 51, 4, 184, 68, 170, 174, 226, 58, 196, 191, 141, 35,\n\t\t170, 21, 80, 73, 103, 132, 8, 216, 111, 89, 126, 204, 113,\n\t\t36, 210, 185, 94, 172, 225, 245, 85, 118, 174, 170, 27, 221,\n\t\t128, 238, 64, 8, 57, 225, 152, 182, 101, 26, 124, 13, 25,\n\t\t231, 116, 87, 177, 10, 120, 218, 197, 164, 228, 172, 45, 236,\n\t\t36, 24, 38, 169, 132, 163, 118, 22, 242, 233, 108, 123, 181,\n\t\t89, 141, 4, 240, 205, 158, 182, 12, 33, 153, 151, 155, 139,\n\t\t105, 129, 97, 216, 201, 48, 30, 173, 162, 130, 93, 220, 198,\n\t\t85, 138, 210, 185, 3, 187, 53, 62, 187, 251, 22, 74, 27, 79,\n\t\t115, 229, 103, 110, 139, 6, 146, 64, 52, 222, 20, 190, 193,\n\t\t227, 185, 33, 220, 84, 249, 71, 35, 105, 83, 172, 189, 188,\n\t\t135, 196, 51, 31, 227, 197, 122, 140, 123, 146, 29, 231, 40,\n\t\t169, 227, 225, 64, 148, 18, 234, 150, 88, 27, 239, 124, 91,\n\t\t71, 161, 70, 254, 108, 99, 118, 222, 65, 132, 26, 121, 174,\n\t\t207, 121, 223, 92, 53, 108, 129, 142, 42, 93, 99, 177, 179,\n\t\t33, 79, 205, 213, 82, 49, 194, 109, 228, 91, 56, 221, 192,\n\t\t129, 179, 135, 124, 154, 40, 54, 107, 132, 19, 66, 154, 207,\n\t\t47, 24, 220, 31, 139, 154, 239, 144, 196, 25, 130, 223, 39,\n\t\t7, 84, 158, 35, 88, 83, 149, 107, 117, 236, 241, 123, 117,\n\t\t252, 56, 20, 16, 90, 117, 47, 109, 165, 249, 56, 190, 217,\n\t\t119, 72, 58, 168, 183, 10, 1, 78, 58, 228, 107, 230, 1, 107,\n\t\t50, 225, 0, 176, 114, 185, 225, 32, 244, 70, 30, 238, 65,\n\t\t187, 95, 153, 135, 169, 86, 193, 206, 43, 210, 245, 54, 199,\n\t\t142, 47, 22, 109, 182, 191, 112, 125, 222, 253, 188, 151,\n\t\t196, 98, 68, 147, 70, 48, 30, 249, 27, 122, 145, 49, 161,\n\t\t53, 222, 235, 176, 107, 159, 46, 117, 116, 72, 186, 216, 207,\n\t\t107, 124, 63, 187, 136, 68, 98, 85, 136, 172, 85, 214, 254,\n\t\t132, 227, 224, 75, 200, 195, 78, 83, 12, 160, 155, 208, 235,\n\t\t208, 4, 66, 148, 45, 49, 83, 0, 74, 197, 18, 38, 78, 236,\n\t\t183, 195, 137, 68, 131, 100, 177, 228, 68, 133, 167, 139,\n\t\t37, 106, 10, 12, 65, 26, 179, 179, 99, 84, 186, 99, 193, 121,\n\t\t79, 113, 170, 143, 203, 192, 94, 46, 206, 84, 235, 156, 213,\n\t\t198, 209, 65, 45, 210, 209, 181, 52, 142, 237, 251, 47, 138,\n\t\t4, 212, 160, 175, 47, 238, 11, 118, 182, 24, 109, 225, 210,\n\t\t145, 115, 123, 10, 68, 236, 43, 222, 178, 59, 99, 192, 27,\n\t\t90, 141, 246, 208, 174, 27, 207, 229, 250, 9, 238, 236, 189,\n\t\t101, 247, 14, 223, 129, 245, 246, 149, 127, 84, 56, 155, 147,\n\t\t65, 1, 49, 175, 112, 202, 29, 121, 153, 23, 57, 155, 83, 220,\n\t\t114, 42, 19, 20, 116, 33, 104, 236, 62, 213, 134, 129, 164,\n\t\t134, 129, 136, 55, 7, 125, 241, 62, 95, 176, 136, 201, 193,\n\t\t247, 22, 111, 108, 49, 195, 225, 129, 222, 55, 95, 196, 248,\n\t\t134, 15, 238, 186, 209, 12, 134, 141, 129, 254, 183, 159,\n\t\t90, 111, 54, 175, 144, 59, 100, 80, 242, 34, 24, 156, 109,\n\t\t241, 226, 122, 105, 182, 47, 73, 0, 183, 157, 218, 109, 26,\n\t\t130, 46, 24, 27, 215, 232, 86, 84, 68, 35, 219, 141, 127,\n\t\t149, 215, 211, 165, 218, 107, 218, 235, 223, 222, 158, 116,\n\t\t10, 204, 67, 86, 255, 46, 119, 216, 130, 37, 170, 28, 255,\n\t\t57, 220, 204, 243, 98, 66, 231, 20, 78, 79, 136, 60, 223,\n\t\t140, 65, 18, 218, 218, 4, 9, 4, 167, 196, 99, 158, 21, 235,\n\t\t218, 109, 197, 43, 206, 4, 56, 156, 8, 9, 50, 136, 109, 162,\n\t\t216, 38, 130, 44, 132, 18, 162, 200, 249, 124, 156, 120, 130,\n\t\t21, 120, 17, 128, 150, 196, 245, 86, 136, 218, 175, 107, 107,\n\t\t47, 114, 191, 3, 207, 179, 51, 151, 212, 114, 60, 128, 78,\n\t\t177, 136, 164, 58, 30, 18, 41, 57, 210, 14, 250, 196, 178,\n\t\t25, 41, 138, 165, 8, 100, 139, 201, 20, 25, 226, 178, 17,\n\t\t176, 83, 36, 3, 113, 108, 85, 105, 196, 238, 222, 36, 23,\n\t\t83, 155, 164, 95, 29, 19, 113, 199, 217, 216, 169, 116, 24,\n\t\t167, 60, 129, 196, 212, 155, 166, 18, 1, 79, 211, 189, 115,\n\t\t247, 86, 62, 228, 73, 227, 27, 206, 191, 233, 252, 13, 56,\n\t\t165, 122, 102, 159, 154, 253, 113, 149, 126, 76, 84, 6, 55,\n\t\t74, 202, 63, 223, 74, 40, 174, 172, 179, 135, 243, 188, 155,\n\t\t233, 163, 71, 162, 122, 118, 96, 32, 171, 71, 119, 12, 12,\n\t\t124, 2, 164, 161, 179, 3, 3, 103, 247, 202, 112, 100, 116,\n\t\t244, 151, 14, 77, 153, 220, 124, 164, 81, 108, 198, 175, 43,\n\t\t35, 9, 106, 101, 17, 5, 117, 58, 172, 88, 96, 191, 40, 224,\n\t\t252, 204, 128, 238, 132, 191, 15, 129, 205, 78, 116, 83, 27,\n\t\t208, 178, 83, 131, 80, 79, 57, 98, 214, 246, 64, 138, 13,\n\t\t122, 59, 236, 12, 120, 76, 142, 231, 52, 142, 227, 77, 79,\n\t\t32, 217, 28, 136, 248, 195, 59, 6, 22, 159, 93, 28, 216, 33,\n\t\t216, 235, 235, 135, 96, 127, 129, 233, 23, 159, 170, 87, 69,\n\t\t214, 122, 100, 209, 227, 81, 9, 81, 61, 30, 81, 238, 110,\n\t\t78, 251, 91, 73, 211, 189, 187, 110, 89, 92, 188, 101, 215,\n\t\t189, 77, 154, 167, 199, 8, 85, 81, 14, 25, 61, 158, 159, 215,\n\t\t107, 41, 27, 241, 59, 130, 110, 253, 143, 225, 23, 176, 220,\n\t\t169, 67, 165, 39, 113, 94, 252, 193, 38, 141, 253, 111, 197,\n\t\t180, 89, 99, 50, 84, 166, 2, 245, 41, 42, 84, 93, 41, 251,\n\t\t239, 195, 26, 2, 155, 5, 174, 91, 131, 220, 119, 121, 57,\n\t\t116, 240, 163, 38, 20, 67, 157, 104, 7, 58, 204, 78, 40, 179,\n\t\t215, 88, 215, 27, 198, 219, 25, 44, 255, 1, 162, 189, 215,\n\t\t219, 28, 228, 28, 75, 218, 163, 96, 29, 248, 228, 135, 54,\n\t\t89, 51, 239, 255, 55, 146, 15, 84, 197, 80, 93, 83, 27, 203,\n\t\t82, 32, 148, 223, 100, 228, 124, 241, 223, 67, 200, 250, 57,\n\t\t161, 51, 217, 210, 139, 10, 204, 43, 85, 79, 166, 98, 149,\n\t\t199, 237, 6, 25, 187, 233, 173, 39, 249, 142, 170, 11, 193,\n\t\t65, 252, 14, 198, 152, 207, 52, 72, 211, 143, 214, 11, 90,\n\t\t53, 20, 144, 100, 204, 144, 146, 228, 64, 59, 227, 226, 83,\n\t\t117, 194, 210, 181, 248, 183, 210, 3, 232, 152, 238, 66, 251,\n\t\t214, 249, 219, 54, 8, 213, 232, 72, 194, 89, 14, 243, 14,\n\t\t211, 178, 180, 84, 180, 35, 252, 70, 104, 171, 182, 234, 127,\n\t\t97, 64, 126, 52, 145, 232, 140, 0, 230, 0, 251, 77, 211, 47,\n\t\t8, 244, 138, 129, 195, 190, 150, 128, 231, 253, 245, 32, 123,\n\t\t156, 201, 234, 99, 176, 190, 222, 210, 52, 203, 215, 2, 24,\n\t\t243, 68, 110, 146, 9, 231, 225, 136, 220, 44, 73, 28, 33,\n\t\t0, 178, 170, 67, 178, 30, 254, 15, 109, 182, 37, 130, 204,\n\t\t150, 184, 129, 206, 211, 96, 214, 178, 141, 58, 214, 20, 54,\n\t\t25, 16, 175, 128, 96, 177, 177, 131, 226, 71, 131, 9, 78,\n\t\t229, 21, 149, 10, 90, 175, 35, 103, 125, 245, 152, 160, 235,\n\t\t160, 44, 166, 234, 239, 229, 160, 163, 166, 121, 139, 188,\n\t\t35, 83, 47, 213, 99, 214, 246, 10, 116, 248, 79, 245, 183,\n\t\t71, 92, 252, 127, 3, 207, 163, 24, 211, 84, 79, 162, 41, 132,\n\t\t174, 139, 94, 46, 194, 151, 170, 132, 225, 115, 174, 249,\n\t\t237, 138, 93, 177, 170, 196, 86, 131, 114, 139, 116, 253,\n\t\t195, 78, 120, 53, 219, 63, 77, 37, 82, 105, 103, 107, 154,\n\t\t206, 95, 232, 191, 14, 226, 135, 92, 222, 229, 84, 159, 161,\n\t\t56, 30, 177, 95, 178, 97, 131, 59, 136, 63, 112, 139, 194,\n\t\t219, 60, 9, 168, 254, 176, 192, 75, 190, 182, 15, 120, 184,\n\t\t190, 252, 185, 39, 158, 56, 119, 238, 9, 191, 71, 34, 186,\n\t\t194, 244, 243, 222, 199, 45, 93, 179, 244, 22, 14, 19, 78,\n\t\t170, 81, 163, 73, 38, 116, 185, 147, 85, 253, 152, 162, 200,\n\t\t162, 36, 201, 62, 15, 102, 238, 51, 181, 37, 24, 108, 9, 124,\n\t\t48, 16, 19, 45, 78, 190, 69, 181, 125, 28, 23, 244, 201, 156,\n\t\t168, 239, 232, 32, 204, 26, 63, 151, 233, 225, 189, 158, 182,\n\t\t40, 179, 39, 182, 126, 255, 90, 157, 207, 2, 185, 231, 41,\n\t\t139, 27, 124, 156, 118, 182, 250, 218, 225, 116, 170, 234,\n\t\t109, 129, 163, 180, 203, 197, 203, 117, 203, 208, 7, 137,\n\t\t4, 248, 134, 140, 150, 185, 1, 131, 180, 225, 135, 91, 22,\n\t\t127, 82, 183, 218, 220, 34, 227, 222, 61, 123, 122, 177, 188,\n\t\t217, 87, 201, 206, 12, 111, 132, 39, 176, 129, 61, 9, 118,\n\t\t21, 14, 167, 146, 92, 7, 190, 75, 141, 220, 248, 30, 122,\n\t\t73, 176, 58, 170, 83, 252, 232, 122, 16, 67, 127, 103, 132,\n\t\t56, 154, 1, 101, 189, 4, 189, 116, 86, 171, 142, 175, 163,\n\t\t176, 1, 135, 48, 234, 68, 165, 205, 56, 4, 107, 139, 33, 123,\n\t\t13, 84, 170, 102, 97, 92, 15, 250, 79, 85, 173, 9, 73, 35,\n\t\t63, 151, 215, 173, 139, 167, 174, 11, 183, 80, 91, 222, 68,\n\t\t93, 58, 45, 214, 173, 119, 55, 215, 160, 110, 132, 57, 182,\n\t\t53, 204, 129, 141, 107, 30, 188, 10, 142, 120, 186, 185, 182,\n\t\t134, 185, 222, 224, 169, 87, 230, 14, 104, 95, 95, 164, 152,\n\t\t63, 56, 187, 129, 81, 132, 77, 124, 187, 133, 103, 120, 43,\n\t\t141, 202, 145, 88, 247, 111, 214, 150, 26, 36, 107, 205, 87,\n\t\t67, 54, 60, 135, 174, 21, 7, 182, 242, 211, 214, 249, 43,\n\t\t11, 249, 180, 235, 108, 206, 151, 176, 105, 84, 61, 150, 196,\n\t\t216, 248, 221, 182, 62, 75, 110, 79, 87, 215, 158, 174, 82,\n\t\t220, 14, 112, 154, 161, 113, 129, 225, 46, 90, 113, 200, 174,\n\t\t85, 172, 108, 227, 176, 252, 156, 219, 208, 111, 168, 130,\n\t\t64, 191, 22, 4, 213, 240, 247, 177, 238, 142, 248, 237, 134,\n\t\t250, 167, 170, 142, 203, 250, 177, 143, 161, 220, 6, 93, 182,\n\t\t22, 136, 227, 70, 217, 91, 89, 231, 92, 170, 153, 170, 87,\n\t\t126, 168, 32, 45, 110, 92, 234, 27, 85, 217, 199, 118, 46,\n\t\t62, 187, 184, 83, 51, 180, 222, 179, 189, 154, 161, 125, 74,\n\t\t199, 178, 234, 74, 200, 96, 179, 215, 72, 242, 179, 27, 214,\n\t\t252, 33, 246, 218, 30, 23, 193, 171, 187, 71, 168, 230, 49,\n\t\t178, 123, 142, 130, 255, 159, 155, 154, 254, 51, 77, 179,\n\t\t238, 146, 47, 75, 170, 161, 132, 2, 93, 245, 155, 8, 129,\n\t\t131, 174, 227, 25, 55, 140, 97, 4, 165, 80, 102, 171, 29,\n\t\t144, 82, 109, 39, 129, 201, 251, 170, 35, 176, 202, 62, 132,\n\t\t249, 130, 216, 200, 213, 143, 213, 75, 123, 82, 132, 147,\n\t\t164, 32, 14, 165, 20, 77, 219, 199, 56, 199, 121, 3, 229,\n\t\t163, 24, 183, 55, 197, 155, 54, 4, 119, 103, 36, 3, 99, 142,\n\t\t180, 106, 134, 54, 204, 152, 204, 121, 21, 229, 136, 36, 237,\n\t\t8, 250, 67, 33, 127, 112, 179, 12, 220, 218, 207, 182, 225,\n\t\t189, 161, 105, 130, 55, 184, 218, 26, 134, 35, 189, 193, 187,\n\t\t12, 27, 223, 39, 250, 161, 205, 38, 148, 55, 181, 92, 239,\n\t\t99, 163, 230, 86, 35, 50, 205, 13, 111, 26, 125, 215, 70,\n\t\t43, 201, 74, 54, 250, 220, 182, 94, 111, 210, 215, 153, 185,\n\t\t206, 181, 234, 43, 175, 135, 255, 15, 217, 206, 132, 175,\n\t\t206, 71, 222, 8, 218, 0, 27, 251, 55, 52, 111, 237, 119, 173,\n\t\t202, 229, 157, 91, 204, 227, 122, 59, 5, 27, 117, 162, 185,\n\t\t206, 85, 159, 129, 13, 212, 60, 224, 93, 183, 73, 222, 189,\n\t\t110, 146, 140, 112, 71, 14, 136, 160, 144, 196, 92, 66, 144,\n\t\t196, 141, 158, 251, 47, 215, 91, 30, 185, 58, 195, 163, 255,\n\t\t166, 98, 154, 57, 242, 57, 65, 193, 105, 132, 80, 24, 110,\n\t\t171, 253, 206, 97, 51, 42, 186, 121, 64, 45, 232, 237, 110,\n\t\t158, 67, 4, 253, 177, 155, 231, 81, 12, 192, 205, 11, 168,\n\t\t5, 238, 116, 243, 34, 74, 194, 159, 186, 121, 140, 66, 92,\n\t\t139, 155, 87, 80, 15, 247, 110, 55, 239, 65, 54, 247, 191,\n\t\t220, 188, 15, 5, 249, 110, 55, 239, 71, 132, 63, 233, 230,\n\t\t3, 168, 133, 255, 61, 55, 111, 162, 32, 255, 29, 55, 111,\n\t\t33, 194, 255, 11, 226, 17, 8, 116, 21, 204, 51, 72, 104, 30,\n\t\t80, 17, 189, 198, 205, 115, 72, 67, 31, 113, 243, 60, 218,\n\t\t143, 190, 224, 230, 5, 84, 132, 132, 155, 23, 209, 77, 112,\n\t\t193, 205, 99, 212, 15, 127, 239, 230, 21, 116, 59, 151, 119,\n\t\t243, 30, 148, 225, 62, 231, 230, 125, 40, 197, 243, 110, 222,\n\t\t143, 52, 126, 175, 155, 15, 160, 34, 255, 90, 55, 111, 162,\n\t\t20, 255, 113, 55, 111, 33, 141, 255, 191, 209, 1, 52, 131,\n\t\t102, 209, 67, 104, 14, 77, 162, 115, 104, 130, 253, 252, 114,\n\t\t7, 58, 131, 58, 217, 79, 46, 111, 253, 131, 204, 232, 192,\n\t\t204, 236, 67, 115, 147, 231, 38, 22, 162, 29, 103, 58, 163,\n\t\t135, 102, 166, 23, 162, 251, 46, 148, 231, 103, 206, 151,\n\t\t209, 191, 247, 87, 156, 235, 59, 137, 22, 162, 135, 230, 202,\n\t\t229, 232, 205, 229, 115, 139, 83, 99, 115, 104, 99, 219, 90,\n\t\t253, 191, 239, 89, 189, 117, 191, 60, 125, 189, 231, 246,\n\t\t22, 50, 59, 51, 59, 254, 189, 79, 185, 62, 70, 255, 27, 127,\n\t\t57, 59, 151, 221, 149, 41, 101, 119, 69, 59, 26, 30, 248,\n\t\t64, 121, 110, 126, 114, 102, 122, 119, 148, 33, 209, 185,\n\t\t142, 69, 99, 239, 133, 26, 252, 189, 91, 193, 239, 246, 86,\n\t\t160, 192, 247, 214, 128, 63, 133, 38, 24, 96, 180, 163, 211,\n\t\t40, 141, 230, 81, 20, 157, 71, 51, 104, 158, 129, 63, 203,\n\t\t56, 170, 218, 77, 20, 77, 178, 183, 7, 79, 163, 40, 154, 71,\n\t\t101, 214, 98, 12, 77, 163, 113, 20, 69, 11, 104, 6, 205, 160,\n\t\t41, 116, 63, 154, 68, 11, 40, 131, 208, 169, 137, 114, 244,\n\t\t66, 249, 116, 122, 62, 122, 126, 102, 126, 33, 58, 59, 51,\n\t\t75, 31, 24, 157, 60, 51, 51, 29, 157, 47, 47, 68, 199, 166,\n\t\t199, 163, 11, 51, 51, 83, 247, 79, 46, 100, 16, 99, 214, 5,\n\t\t52, 139, 230, 209, 110, 212, 135, 250, 208, 89, 23, 195, 177,\n\t\t6, 12, 51, 236, 241, 231, 17, 154, 88, 88, 152, 157, 223,\n\t\t221, 215, 119, 118, 102, 122, 97, 204, 193, 43, 115, 102,\n\t\t230, 252, 171, 29, 223, 173, 198, 243, 127, 55, 103, 94, 159,\n\t\t103, 94, 93, 159, 255, 54, 56, 215, 127, 73, 118, 237, 75,\n\t\t168, 9, 109, 245, 247, 12, 147, 177, 28, 112, 192, 131, 0,\n\t\t34, 96, 32, 32, 129, 12, 10, 120, 64, 5, 47, 104, 160, 131,\n\t\t15, 252, 16, 128, 32, 24, 96, 130, 5, 54, 132, 160, 9, 154,\n\t\t161, 5, 194, 208, 10, 17, 104, 131, 40, 196, 32, 14, 9, 104,\n\t\t135, 36, 164, 32, 13, 29, 208, 9, 93, 208, 13, 61, 208, 11,\n\t\t25, 232, 131, 126, 216, 1, 89, 200, 65, 30, 10, 80, 132, 18,\n\t\t236, 132, 93, 176, 27, 6, 96, 15, 12, 194, 16, 236, 133, 97,\n\t\t216, 7, 251, 225, 0, 28, 132, 27, 224, 16, 28, 134, 35, 112,\n\t\t35, 220, 132, 222, 9, 71, 225, 24, 28, 135, 19, 112, 18, 70,\n\t\t224, 53, 112, 51, 220, 2, 167, 224, 86, 184, 13, 94, 139,\n\t\t222, 1, 183, 195, 235, 224, 14, 184, 19, 238, 130, 187, 225,\n\t\t30, 184, 23, 70, 97, 12, 78, 195, 25, 24, 135, 50, 156, 133,\n\t\t115, 48, 1, 147, 112, 31, 220, 15, 83, 112, 30, 166, 97, 6,\n\t\t102, 225, 245, 48, 7, 243, 176, 0, 139, 240, 0, 92, 128, 7,\n\t\t225, 33, 120, 24, 222, 0, 143, 192, 27, 225, 77, 240, 102,\n\t\t88, 130, 223, 129, 183, 192, 91, 225, 34, 188, 13, 30, 133,\n\t\t223, 133, 199, 224, 237, 240, 14, 120, 39, 60, 14, 239, 130,\n\t\t119, 195, 239, 193, 37, 120, 2, 158, 132, 247, 192, 83, 240,\n\t\t159, 224, 105, 113, 162, 60, 54, 183, 32, 204, 47, 140, 205,\n\t\t9, 139, 243, 229, 57, 241, 204, 212, 204, 153, 251, 165, 169,\n\t\t201, 249, 133, 222, 177, 169, 5, 225, 236, 212, 216, 57, 233,\n\t\t244, 204, 204, 253, 231, 199, 230, 238, 23, 39, 207, 143,\n\t\t157, 43, 11, 229, 241, 201, 5, 117, 97, 242, 124, 121, 190,\n\t\t247, 204, 228, 220, 153, 169, 178, 122, 102, 162, 124, 230,\n\t\t126, 183, 160, 191, 126, 177, 60, 191, 48, 57, 51, 237, 150,\n\t\t249, 242, 67, 101, 185, 252, 80, 185, 119, 126, 106, 108,\n\t\t126, 66, 61, 51, 54, 85, 158, 30, 31, 155, 163, 189, 147,\n\t\t51, 51, 231, 207, 151, 167, 23, 240, 217, 153, 169, 241, 242,\n\t\t156, 199, 73, 122, 103, 102, 203, 211, 242, 153, 137, 177,\n\t\t185, 133, 222, 211, 99, 115, 146, 219, 104, 94, 166, 64, 246,\n\t\t78, 140, 77, 157, 21, 167, 202, 231, 103, 166, 61, 103, 230,\n\t\t40, 36, 189, 103, 198, 230, 198, 249, 137, 241, 113, 223,\n\t\t196, 216, 244, 120, 239, 236, 204, 228, 244, 66, 47, 19, 250,\n\t\t122, 93, 197, 84, 249, 236, 130, 183, 174, 188, 56, 91, 255,\n\t\t237, 248, 204, 133, 105, 225, 204, 204, 236, 67, 194, 252,\n\t\t216, 3, 101, 60, 255, 250, 197, 177, 185, 178, 84, 158, 126,\n\t\t160, 60, 53, 51, 91, 150, 167, 104, 111, 167, 23, 167, 78,\n\t\t11, 167, 203, 83, 83, 210, 196, 204, 252, 236, 228, 194, 216,\n\t\t148, 103, 118, 106, 113, 190, 215, 105, 140, 29, 100, 197,\n\t\t249, 243, 147, 83, 101, 241, 236, 220, 204, 133, 105, 254,\n\t\t124, 121, 66, 186, 191, 252, 208, 233, 153, 177, 185, 113,\n\t\t169, 138, 183, 103, 118, 106, 236, 161, 42, 221, 206, 79,\n\t\t78, 215, 122, 112, 137, 232, 22, 230, 39, 198, 230, 202, 110,\n\t\t129, 146, 105, 118, 108, 126, 222, 127, 102, 108, 174, 188,\n\t\t224, 86, 50, 152, 245, 134, 154, 197, 217, 64, 67, 153, 17,\n\t\t65, 56, 59, 57, 85, 150, 232, 133, 82, 92, 94, 152, 88, 60,\n\t\t127, 122, 190, 119, 113, 214, 227, 230, 104, 55, 252, 252,\n\t\t226, 180, 112, 126, 102, 102, 186, 241, 9, 148, 102, 202,\n\t\t248, 204, 130, 11, 173, 116, 122, 113, 114, 106, 124, 114,\n\t\t250, 156, 211, 219, 236, 248, 89, 153, 101, 46, 204, 204,\n\t\t141, 43, 44, 87, 126, 240, 76, 121, 74, 119, 190, 157, 185,\n\t\t80, 158, 99, 196, 117, 190, 98, 156, 163, 58, 96, 204, 157,\n\t\t153, 152, 124, 160, 236, 212, 143, 45, 142, 79, 206, 56, 217,\n\t\t7, 38, 199, 203, 51, 78, 151, 103, 102, 198, 41, 213, 207,\n\t\t82, 28, 166, 207, 121, 102, 199, 102, 203, 115, 189, 179,\n\t\t83, 99, 211, 101, 124, 118, 113, 225, 244, 204, 148, 60, 93,\n\t\t190, 48, 207, 170, 21, 58, 36, 14, 111, 249, 207, 76, 205,\n\t\t204, 151, 199, 123, 207, 140, 205, 82, 254, 155, 156, 62,\n\t\t167, 206, 156, 190, 175, 124, 102, 161, 247, 220, 220, 204,\n\t\t226, 172, 230, 22, 22, 167, 89, 209, 51, 191, 48, 121, 230,\n\t\t254, 135, 122, 167, 103, 22, 202, 148, 235, 167, 203, 242,\n\t\t196, 204, 226, 220, 185, 169, 177, 249, 121, 153, 241, 198,\n\t\t220, 204, 153, 251, 21, 135, 75, 232, 147, 28, 246, 153, 63,\n\t\t51, 57, 63, 63, 51, 55, 239, 97, 165, 169, 201, 135, 199,\n\t\t230, 198, 157, 70, 243, 179, 51, 103, 238, 87, 215, 185, 170,\n\t\t60, 231, 222, 92, 30, 59, 83, 246, 214, 248, 158, 50, 141,\n\t\t86, 43, 49, 14, 88, 47, 178, 89, 181, 94, 100, 44, 193, 159,\n\t\t31, 155, 245, 184, 147, 128, 142, 161, 58, 59, 182, 56, 95,\n\t\t118, 7, 197, 51, 191, 48, 51, 235, 230, 25, 212, 243, 19,\n\t\t99, 247, 151, 189, 85, 214, 101, 115, 73, 29, 27, 31, 159,\n\t\t43, 207, 207, 247, 210, 121, 92, 43, 208, 105, 227, 161, 83,\n\t\t190, 58, 188, 147, 227, 189, 167, 199, 198, 207, 149, 201,\n\t\t228, 56, 251, 82, 191, 48, 57, 61, 62, 115, 161, 247, 252,\n\t\t216, 131, 147, 231, 39, 31, 46, 215, 202, 147, 211, 172, 172,\n\t\t185, 229, 185, 242, 252, 194, 204, 92, 89, 158, 159, 158,\n\t\t185, 112, 118, 106, 236, 254, 178, 188, 48, 55, 54, 63, 65,\n\t\t65, 197, 108, 216, 231, 229, 51, 83, 147, 179, 108, 26, 152,\n\t\t99, 115, 115, 51, 23, 232, 87, 238, 83, 25, 255, 109, 174,\n\t\t165, 172, 103, 109, 170, 101, 12, 29, 220, 84, 189, 56, 203,\n\t\t159, 43, 159, 215, 206, 207, 76, 151, 31, 234, 61, 61, 57,\n\t\t53, 197, 168, 228, 66, 199, 120, 66, 173, 146, 111, 124, 102,\n\t\t97, 94, 97, 115, 180, 247, 194, 228, 244, 253, 226, 216, 244,\n\t\t185, 185, 135, 196, 241, 201, 135, 31, 126, 136, 156, 157,\n\t\t90, 156, 159, 40, 143, 43, 108, 242, 50, 194, 145, 115, 115,\n\t\t147, 231, 199, 206, 148, 133, 115, 115, 147, 211, 18, 189,\n\t\t176, 57, 196, 50, 167, 203, 99, 231, 245, 90, 174, 119, 254,\n\t\t66, 121, 108, 193, 195, 202, 76, 162, 206, 59, 249, 249, 215,\n\t\t47, 78, 78, 47, 248, 235, 242, 189, 11, 229, 177, 185, 121,\n\t\t197, 169, 89, 168, 101, 89, 173, 115, 207, 194, 204, 244,\n\t\t185, 197, 114, 160, 46, 239, 222, 234, 171, 175, 162, 224,\n\t\t59, 144, 208, 156, 112, 255, 228, 252, 188, 76, 47, 14, 96,\n\t\t44, 71, 191, 112, 160, 17, 167, 198, 22, 207, 77, 40, 236,\n\t\t202, 26, 168, 78, 214, 233, 215, 173, 103, 61, 158, 47, 79,\n\t\t244, 158, 158, 26, 155, 190, 223, 71, 115, 115, 51, 83, 83,\n\t\t147, 211, 231, 122, 203, 15, 149, 231, 201, 252, 216, 120,\n\t\t239, 153, 185, 135, 36, 154, 82, 112, 93, 58, 210, 238, 164,\n\t\t249, 197, 185, 217, 185, 201, 249, 178, 184, 48, 57, 87, 30,\n\t\t167, 171, 49, 172, 173, 33, 142, 89, 26, 42, 179, 53, 216,\n\t\t235, 158, 16, 143, 126, 31, 113, 72, 168, 251, 93, 120, 102,\n\t\t139, 124, 127, 180, 115, 138, 165, 159, 189, 188, 207, 77,\n\t\t15, 254, 63, 1, 0, 0, 255, 255, 80, 75, 7, 8, 211, 92, 216,\n\t\t143, 143, 66, 0, 0, 84, 134, 0, 0, 80, 75, 3, 4, 20, 0, 8,\n\t\t0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 27, 0, 9, 0, 119, 101, 98, 102, 111, 110, 116, 115, 47,\n\t\t102, 97, 45, 114, 101, 103, 117, 108, 97, 114, 45, 52, 48,\n\t\t48, 46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t236, 253, 253, 143, 100, 55, 146, 24, 138, 254, 158, 127,\n\t\t5, 159, 30, 240, 96, 227, 153, 20, 35, 24, 252, 26, 143, 214,\n\t\t247, 122, 214, 107, 44, 176, 117, 109, 216, 107, 95, 248,\n\t\t199, 210, 233, 146, 178, 239, 164, 186, 229, 174, 86, 206,\n\t\t76, 253, 245, 23, 241, 117, 78, 86, 102, 85, 102, 73, 45,\n\t\t141, 215, 192, 64, 170, 206, 60, 76, 30, 50, 72, 6, 131, 17,\n\t\t193, 248, 248, 253, 191, 251, 243, 15, 135, 112, 124, 248,\n\t\t244, 248, 254, 227, 135, 111, 190, 130, 148, 191, 10, 143,\n\t\t159, 239, 63, 188, 187, 63, 124, 252, 240, 240, 205, 87, 31,\n\t\t62, 126, 245, 239, 254, 110, 247, 251, 255, 79, 140, 187,\n\t\t127, 248, 248, 225, 115, 248, 63, 255, 244, 240, 248, 241,\n\t\t135, 135, 240, 15, 159, 30, 30, 66, 77, 35, 65, 248, 246,\n\t\t47, 225, 255, 248, 238, 227, 135, 207, 247, 246, 83, 12, 251,\n\t\t207, 159, 127, 124, 252, 221, 215, 95, 159, 148, 166, 229,\n\t\t227, 15, 187, 127, 122, 191, 60, 124, 120, 188, 82, 227, 235,\n\t\t131, 214, 248, 250, 59, 110, 254, 95, 253, 227, 242, 241,\n\t\t195, 227, 239, 194, 31, 254, 16, 254, 253, 255, 8, 148, 242,\n\t\t191, 9, 12, 195, 227, 239, 194, 127, 253, 199, 127, 10, 255,\n\t\t233, 31, 254, 41, 64, 130, 127, 19, 254, 240, 241, 221, 195,\n\t\t239, 194, 221, 63, 254, 115, 176, 246, 255, 245, 46, 70, 134,\n\t\t249, 239, 255, 211, 31, 254, 249, 127, 252, 231, 255, 16,\n\t\t30, 143, 223, 135, 255, 252, 223, 254, 253, 63, 253, 227,\n\t\t31, 194, 87, 241, 235, 175, 255, 239, 242, 135, 175, 191,\n\t\t254, 251, 127, 254, 251, 240, 95, 255, 251, 127, 228, 22,\n\t\t190, 254, 250, 63, 252, 95, 95, 133, 175, 24, 164, 223, 125,\n\t\t253, 245, 159, 254, 244, 167, 244, 167, 146, 62, 126, 250,\n\t\t254, 235, 255, 248, 233, 254, 199, 253, 251, 229, 241, 235,\n\t\t255, 250, 223, 255, 227, 215, 92, 241, 239, 255, 249, 239,\n\t\t191, 126, 60, 126, 15, 144, 222, 125, 126, 247, 85, 248, 187,\n\t\t221, 239, 185, 233, 63, 255, 112, 248, 240, 248, 205, 11,\n\t\t239, 99, 206, 153, 235, 127, 165, 85, 126, 247, 231, 195,\n\t\t251, 15, 127, 124, 169, 34, 204, 57, 191, 150, 95, 191, 58,\n\t\t93, 10, 248, 234, 239, 118, 191, 255, 225, 225, 243, 253,\n\t\t187, 251, 207, 247, 127, 183, 251, 195, 167, 135, 251, 207,\n\t\t15, 239, 120, 190, 121, 26, 254, 225, 227, 167, 239, 31, 2,\n\t\t102, 152, 25, 0, 195, 253, 231, 240, 207, 251, 159, 194, 221,\n\t\t253, 167, 128, 16, 160, 253, 14, 230, 239, 50, 200, 239, 187,\n\t\t240, 239, 255, 18, 254, 203, 199, 111, 31, 62, 125, 14, 119,\n\t\t247, 239, 62, 30, 30, 118, 127, 248, 248, 227, 95, 62, 189,\n\t\t255, 126, 255, 57, 252, 171, 229, 95, 135, 211, 149, 221,\n\t\t253, 254, 235, 173, 203, 223, 191, 123, 248, 238, 241, 239,\n\t\t118, 191, 231, 101, 10, 239, 223, 125, 243, 21, 215, 180,\n\t\t138, 149, 81, 32, 254, 151, 135, 239, 127, 58, 220, 127, 250,\n\t\t42, 236, 63, 126, 122, 255, 20, 239, 223, 29, 227, 159, 191,\n\t\t249, 170, 2, 242, 244, 132, 32, 111, 198, 239, 238, 151, 135,\n\t\t176, 11, 33, 4, 123, 252, 225, 253, 225, 47, 218, 216, 138,\n\t\t80, 85, 81, 202, 219, 219, 106, 255, 233, 129, 225, 252, 230,\n\t\t43, 202, 249, 164, 244, 241, 243, 167, 135, 207, 203, 158,\n\t\t17, 244, 211, 15, 247, 7, 253, 229, 167, 15, 239, 63, 63,\n\t\t198, 31, 31, 62, 197, 135, 31, 20, 8, 41, 254, 241, 254, 195,\n\t\t199, 199, 135, 8, 223, 124, 133, 33, 135, 26, 74, 200, 219,\n\t\t127, 90, 229, 254, 113, 121, 248, 192, 157, 208, 208, 130,\n\t\t119, 15, 86, 18, 27, 105, 201, 183, 223, 126, 252, 243, 55,\n\t\t95, 197, 156, 114, 107, 133, 242, 8, 177, 17, 127, 199, 208,\n\t\t40, 167, 12, 129, 104, 36, 112, 64, 222, 61, 124, 58, 188,\n\t\t255, 240, 16, 63, 239, 223, 47, 127, 252, 240, 240, 248, 248,\n\t\t205, 87, 88, 207, 127, 252, 241, 227, 227, 251, 207, 178,\n\t\t216, 177, 174, 111, 190, 95, 62, 190, 123, 136, 159, 238,\n\t\t63, 124, 255, 240, 205, 87, 255, 237, 255, 159, 51, 230, 248,\n\t\t15, 245, 15, 2, 215, 215, 127, 39, 149, 126, 255, 195, 251,\n\t\t199, 199, 247, 31, 190, 143, 223, 31, 254, 242, 227, 126,\n\t\t45, 213, 39, 249, 55, 126, 184, 255, 225, 225, 155, 175, 246,\n\t\t15, 247, 159, 62, 127, 229, 141, 126, 243, 213, 255, 239,\n\t\t255, 251, 231, 239, 114, 166, 127, 251, 85, 216, 189, 251,\n\t\t230, 171, 59, 170, 35, 81, 40, 163, 164, 190, 244, 154, 112,\n\t\t78, 30, 85, 73, 148, 51, 5, 30, 221, 156, 45, 68, 104, 45,\n\t\t181, 12, 1, 114, 170, 82, 128, 8, 169, 28, 34, 244, 154, 40,\n\t\t68, 232, 35, 245, 37, 66, 14, 17, 114, 194, 156, 49, 68, 44,\n\t\t214, 24, 212, 212, 229, 75, 233, 246, 178, 149, 44, 17, 72,\n\t\t43, 231, 16, 209, 126, 172, 169, 205, 137, 184, 213, 134,\n\t\t154, 198, 156, 228, 125, 89, 87, 181, 88, 117, 74, 93, 186,\n\t\t107, 228, 213, 123, 154, 43, 156, 12, 38, 238, 150, 218, 211,\n\t\t200, 121, 4, 26, 90, 27, 168, 39, 224, 229, 2, 133, 17, 51,\n\t\t202, 48, 234, 82, 109, 10, 106, 211, 79, 32, 74, 45, 52, 235,\n\t\t77, 235, 65, 125, 186, 163, 66, 105, 4, 152, 45, 225, 82,\n\t\t154, 142, 162, 52, 129, 52, 80, 209, 1, 67, 238, 169, 135,\n\t\t216, 173, 165, 154, 211, 88, 98, 49, 16, 10, 218, 100, 76,\n\t\t43, 192, 158, 38, 207, 121, 132, 210, 82, 149, 137, 228, 10,\n\t\t135, 88, 106, 136, 165, 74, 37, 121, 176, 239, 187, 101, 157,\n\t\t162, 50, 108, 170, 167, 21, 80, 73, 48, 39, 122, 91, 220,\n\t\t212, 18, 43, 216, 202, 240, 175, 57, 55, 249, 162, 43, 3,\n\t\t80, 184, 203, 190, 174, 88, 78, 253, 192, 243, 93, 230, 244,\n\t\t213, 69, 70, 137, 50, 67, 244, 47, 116, 94, 208, 120, 146,\n\t\t251, 8, 249, 233, 171, 43, 248, 248, 248, 153, 73, 197, 25,\n\t\t58, 214, 127, 123, 78, 61, 122, 51, 4, 173, 200, 7, 12, 246,\n\t\t150, 234, 130, 54, 211, 209, 0, 47, 205, 86, 191, 52, 69,\n\t\t84, 232, 86, 80, 201, 102, 15, 114, 229, 69, 128, 92, 14,\n\t\t200, 179, 74, 53, 213, 133, 120, 180, 216, 82, 97, 164, 96,\n\t\t76, 213, 217, 162, 106, 75, 64, 141, 71, 78, 33, 150, 98,\n\t\t243, 14, 37, 167, 30, 218, 120, 246, 24, 237, 121, 17, 100,\n\t\t151, 126, 1, 109, 14, 121, 181, 185, 137, 46, 45, 193, 214,\n\t\t166, 55, 137, 53, 8, 48, 14, 34, 228, 178, 91, 34, 204, 0,\n\t\t131, 161, 227, 127, 120, 25, 4, 117, 108, 84, 62, 40, 160,\n\t\t198, 83, 162, 200, 123, 104, 134, 178, 80, 48, 209, 2, 160,\n\t\t239, 96, 49, 100, 172, 134, 94, 190, 97, 186, 110, 237, 188,\n\t\t190, 23, 229, 197, 167, 187, 50, 70, 106, 1, 24, 189, 14,\n\t\t144, 179, 236, 247, 57, 120, 172, 51, 160, 238, 234, 67, 108,\n\t\t168, 3, 5, 108, 219, 67, 148, 39, 16, 92, 176, 138, 222, 64,\n\t\t228, 22, 176, 216, 170, 64, 25, 137, 14, 128, 148, 74, 176,\n\t\t238, 119, 246, 24, 237, 249, 42, 238, 252, 244, 248, 112,\n\t\t137, 59, 253, 28, 119, 152, 128, 43, 238, 20, 40, 60, 36,\n\t\t162, 165, 175, 148, 6, 10, 241, 94, 111, 70, 167, 236, 81,\n\t\t62, 142, 17, 171, 204, 210, 146, 5, 61, 24, 73, 128, 255,\n\t\t165, 225, 127, 251, 88, 42, 175, 55, 255, 152, 165, 112, 173,\n\t\t65, 227, 184, 189, 238, 253, 61, 239, 230, 228, 223, 5, 135,\n\t\t46, 84, 14, 132, 178, 223, 91, 24, 211, 9, 100, 123, 108,\n\t\t89, 113, 241, 164, 24, 218, 211, 29, 101, 166, 177, 205, 123,\n\t\t218, 45, 57, 80, 79, 77, 182, 115, 177, 22, 71, 211, 37, 142,\n\t\t254, 197, 62, 133, 222, 50, 117, 101, 200, 75, 87, 252, 224,\n\t\t126, 227, 73, 199, 74, 39, 20, 176, 216, 107, 56, 253, 153,\n\t\t127, 245, 222, 242, 214, 252, 218, 113, 60, 239, 121, 157,\n\t\t208, 125, 169, 248, 116, 135, 200, 227, 201, 75, 236, 83,\n\t\t167, 15, 72, 206, 152, 170, 223, 128, 232, 81, 158, 236, 65,\n\t\t10, 248, 51, 174, 165, 92, 111, 247, 24, 183, 119, 214, 127,\n\t\t180, 117, 202, 121, 137, 21, 117, 234, 114, 136, 83, 169,\n\t\t156, 30, 98, 250, 247, 120, 250, 108, 69, 74, 50, 165, 84,\n\t\t254, 127, 140, 39, 143, 90, 239, 42, 94, 46, 135, 143, 203,\n\t\t31, 207, 17, 19, 186, 159, 177, 88, 91, 32, 202, 11, 148,\n\t\t30, 114, 64, 18, 138, 11, 250, 5, 105, 60, 202, 83, 244, 71,\n\t\t43, 227, 111, 107, 57, 151, 248, 43, 246, 247, 36, 205, 198,\n\t\t177, 0, 147, 119, 110, 55, 103, 65, 21, 249, 130, 57, 63,\n\t\t198, 245, 41, 174, 69, 242, 36, 229, 209, 127, 120, 220, 30,\n\t\t189, 232, 233, 174, 64, 79, 35, 76, 93, 198, 67, 28, 164,\n\t\t216, 210, 64, 16, 136, 207, 30, 62, 67, 234, 12, 200, 68,\n\t\t180, 243, 222, 224, 73, 47, 51, 84, 251, 92, 11, 166, 108,\n\t\t254, 35, 52, 74, 184, 228, 208, 4, 33, 32, 84, 59, 53, 0,\n\t\t245, 255, 125, 193, 197, 127, 203, 92, 20, 79, 106, 68, 192,\n\t\t99, 4, 130, 212, 15, 173, 25, 178, 209, 208, 205, 230, 213,\n\t\t98, 177, 14, 245, 248, 4, 69, 69, 100, 116, 173, 124, 138,\n\t\t233, 123, 135, 8, 67, 153, 1, 198, 205, 41, 219, 66, 73, 37,\n\t\t112, 143, 70, 17, 193, 232, 191, 54, 229, 61, 234, 145, 13,\n\t\t79, 187, 107, 184, 112, 120, 255, 248, 57, 222, 31, 46, 88,\n\t\t46, 196, 149, 229, 106, 20, 8, 26, 159, 102, 53, 43, 5, 24,\n\t\t66, 105, 104, 102, 12, 74, 103, 142, 66, 103, 140, 12, 229,\n\t\t121, 242, 251, 51, 98, 196, 205, 196, 173, 29, 163, 71, 107,\n\t\t61, 26, 71, 109, 198, 171, 156, 116, 34, 255, 239, 73, 136,\n\t\t74, 29, 188, 183, 75, 42, 0, 149, 169, 67, 227, 105, 27, 131,\n\t\t70, 104, 161, 29, 11, 229, 37, 7, 255, 53, 110, 63, 197, 22,\n\t\t218, 62, 146, 78, 161, 191, 27, 219, 86, 133, 191, 183, 99,\n\t\t44, 148, 153, 80, 173, 149, 78, 126, 230, 10, 123, 202, 244,\n\t\t116, 71, 208, 2, 228, 113, 140, 72, 92, 183, 165, 134, 109,\n\t\t86, 94, 147, 210, 75, 230, 101, 64, 255, 219, 51, 142, 46,\n\t\t107, 149, 44, 229, 167, 245, 0, 143, 210, 138, 215, 240, 223,\n\t\t86, 92, 227, 247, 183, 215, 21, 217, 214, 42, 17, 80, 193,\n\t\t65, 161, 96, 191, 6, 56, 187, 95, 5, 158, 146, 243, 175, 4,\n\t\t207, 23, 131, 3, 141, 2, 142, 193, 160, 192, 76, 99, 192,\n\t\t144, 125, 2, 48, 132, 27, 243, 191, 221, 35, 127, 57, 253,\n\t\t161, 180, 71, 127, 148, 39, 46, 40, 109, 123, 89, 223, 211,\n\t\t14, 96, 226, 173, 14, 190, 168, 125, 61, 232, 127, 139, 230,\n\t\t175, 17, 136, 239, 14, 247, 223, 95, 16, 135, 85, 30, 43,\n\t\t165, 37, 232, 20, 74, 27, 75, 169, 137, 90, 227, 141, 221,\n\t\t75, 202, 48, 121, 250, 83, 155, 64, 188, 81, 18, 75, 73, 204,\n\t\t27, 247, 217, 151, 2, 169, 81, 102, 238, 45, 181, 10, 20,\n\t\t90, 75, 51, 83, 9, 113, 166, 86, 59, 150, 173, 128, 40, 1,\n\t\t52, 60, 70, 44, 51, 77, 152, 50, 3, 45, 193, 172, 133, 153,\n\t\t78, 168, 92, 169, 64, 42, 185, 118, 33, 58, 29, 144, 137,\n\t\t121, 78, 208, 10, 40, 177, 233, 141, 177, 160, 167, 210, 184,\n\t\t114, 103, 113, 120, 242, 91, 51, 205, 1, 124, 28, 227, 72,\n\t\t149, 247, 183, 149, 44, 204, 40, 183, 60, 228, 72, 6, 192,\n\t\t212, 7, 132, 194, 109, 52, 72, 19, 74, 40, 124, 162, 212,\n\t\t150, 106, 235, 82, 103, 204, 52, 185, 123, 128, 132, 35, 23,\n\t\t110, 177, 167, 129, 76, 89, 70, 170, 181, 181, 99, 28, 37,\n\t\t17, 21, 217, 11, 35, 141, 210, 38, 176, 252, 2, 173, 228,\n\t\t169, 60, 141, 254, 237, 133, 165, 241, 26, 50, 214, 112, 90,\n\t\t13, 218, 145, 114, 75, 84, 84, 26, 45, 132, 35, 184, 52, 133,\n\t\t196, 92, 115, 159, 125, 202, 119, 130, 84, 27, 84, 166, 166,\n\t\t61, 85, 30, 49, 115, 253, 132, 24, 104, 166, 14, 65, 228,\n\t\t43, 64, 230, 199, 198, 108, 117, 183, 32, 166, 217, 42, 35,\n\t\t150, 16, 221, 194, 45, 140, 38, 115, 55, 19, 117, 232, 129,\n\t\t40, 209, 224, 77, 73, 152, 74, 233, 115, 201, 9, 122, 239,\n\t\t133, 231, 48, 85, 36, 130, 144, 83, 65, 192, 33, 231, 41,\n\t\t31, 180, 167, 37, 53, 85, 130, 41, 75, 72, 169, 100, 232,\n\t\t60, 228, 4, 185, 48, 153, 6, 253, 38, 226, 89, 147, 234, 80,\n\t\t19, 12, 106, 12, 23, 1, 15, 179, 141, 90, 43, 67, 207, 173,\n\t\t176, 160, 13, 109, 132, 145, 83, 199, 220, 237, 113, 217,\n\t\t86, 206, 23, 46, 22, 12, 190, 112, 177, 48, 105, 226, 173,\n\t\t42, 52, 37, 51, 99, 0, 169, 234, 129, 75, 169, 149, 194, 92,\n\t\t33, 165, 90, 169, 203, 139, 219, 74, 22, 92, 98, 101, 20,\n\t\t4, 93, 151, 12, 105, 182, 113, 134, 22, 75, 36, 72, 84, 154,\n\t\t80, 177, 145, 19, 245, 166, 155, 173, 14, 94, 21, 200, 152,\n\t\t176, 9, 72, 140, 208, 200, 251, 128, 168, 151, 0, 44, 41,\n\t\t181, 30, 6, 37, 106, 194, 47, 5, 239, 24, 105, 217, 186, 245,\n\t\t94, 207, 198, 180, 108, 189, 74, 167, 194, 7, 107, 159, 222,\n\t\t101, 193, 171, 155, 252, 219, 143, 31, 255, 248, 195, 253,\n\t\t167, 11, 166, 16, 31, 206, 165, 149, 50, 104, 219, 250, 129,\n\t\t104, 220, 224, 11, 168, 209, 33, 194, 68, 158, 114, 253, 194,\n\t\t91, 234, 72, 141, 174, 157, 243, 56, 198, 147, 116, 0, 51,\n\t\t213, 158, 203, 177, 116, 74, 186, 127, 248, 84, 46, 210, 147,\n\t\t33, 68, 77, 115, 54, 222, 31, 205, 191, 238, 35, 246, 118,\n\t\t235, 144, 151, 6, 15, 204, 143, 15, 186, 58, 55, 239, 127,\n\t\t184, 255, 254, 225, 124, 98, 202, 195, 41, 123, 84, 6, 221,\n\t\t152, 6, 59, 124, 190, 148, 61, 210, 102, 110, 179, 71, 52,\n\t\t94, 101, 143, 120, 106, 190, 136, 61, 194, 222, 110, 179,\n\t\t71, 128, 35, 224, 148, 205, 155, 103, 150, 89, 201, 66, 132,\n\t\t103, 158, 40, 223, 41, 63, 174, 207, 81, 11, 180, 144, 114,\n\t\t56, 45, 167, 252, 120, 242, 154, 252, 255, 116, 39, 50, 206,\n\t\t145, 198, 161, 204, 84, 89, 78, 145, 79, 106, 11, 165, 54,\n\t\t122, 13, 252, 209, 42, 51, 7, 9, 71, 197, 237, 185, 165, 201,\n\t\t148, 44, 31, 236, 5, 33, 250, 252, 229, 0, 32, 95, 130, 126,\n\t\t214, 221, 219, 155, 26, 221, 154, 178, 47, 199, 56, 242, 62,\n\t\t22, 188, 174, 88, 122, 120, 247, 254, 130, 233, 38, 122, 93,\n\t\t177, 68, 25, 83, 9, 144, 75, 130, 67, 65, 38, 54, 53, 84,\n\t\t62, 65, 85, 69, 152, 182, 239, 209, 148, 146, 71, 81, 31,\n\t\t209, 47, 213, 14, 108, 172, 184, 22, 111, 155, 179, 151, 84,\n\t\t151, 46, 18, 167, 82, 37, 235, 119, 172, 178, 146, 235, 79,\n\t\t92, 13, 136, 74, 64, 165, 117, 249, 71, 20, 120, 171, 242,\n\t\t201, 234, 235, 243, 62, 34, 159, 93, 34, 82, 176, 32, 190,\n\t\t59, 138, 190, 143, 97, 241, 46, 69, 192, 201, 188, 54, 90,\n\t\t96, 13, 85, 19, 120, 238, 106, 29, 105, 134, 146, 41, 205,\n\t\t67, 196, 134, 170, 219, 177, 47, 135, 56, 179, 201, 75, 144,\n\t\t101, 244, 166, 1, 118, 177, 138, 37, 53, 38, 60, 166, 126,\n\t\t172, 170, 65, 176, 207, 3, 228, 96, 239, 31, 188, 101, 251,\n\t\t100, 100, 23, 177, 211, 63, 235, 124, 254, 60, 208, 244, 25,\n\t\t7, 42, 155, 114, 19, 69, 59, 138, 166, 5, 136, 254, 101, 45,\n\t\t104, 57, 100, 145, 94, 7, 163, 24, 202, 216, 249, 20, 203,\n\t\t162, 103, 164, 67, 172, 67, 133, 127, 251, 100, 145, 177,\n\t\t38, 62, 199, 135, 232, 162, 15, 171, 162, 212, 116, 86, 171,\n\t\t42, 77, 203, 159, 238, 42, 18, 79, 87, 45, 169, 31, 28, 162,\n\t\t96, 159, 75, 36, 19, 157, 125, 178, 35, 152, 158, 111, 43,\n\t\t32, 211, 13, 29, 98, 49, 61, 144, 127, 57, 56, 112, 14, 229,\n\t\t193, 107, 20, 213, 56, 238, 22, 10, 166, 124, 162, 224, 45,\n\t\t199, 44, 117, 243, 36, 62, 26, 185, 250, 213, 173, 244, 249,\n\t\t253, 15, 15, 143, 113, 121, 255, 105, 57, 92, 16, 234, 250,\n\t\t191, 181, 90, 163, 246, 52, 2, 86, 74, 39, 186, 76, 255, 114,\n\t\t56, 47, 96, 146, 165, 27, 201, 62, 253, 209, 181, 188, 66,\n\t\t129, 15, 140, 97, 126, 43, 162, 42, 137, 120, 246, 222, 166,\n\t\t22, 94, 11, 152, 206, 173, 16, 56, 0, 23, 32, 189, 185, 37,\n\t\t7, 225, 28, 130, 179, 215, 55, 192, 161, 31, 94, 237, 125,\n\t\t29, 254, 91, 90, 57, 239, 249, 249, 43, 94, 213, 31, 25, 216,\n\t\t87, 231, 221, 7, 125, 187, 137, 139, 25, 127, 203, 66, 93,\n\t\t87, 225, 237, 31, 150, 63, 190, 134, 242, 227, 18, 229, 91,\n\t\t98, 254, 114, 67, 251, 148, 75, 121, 142, 250, 82, 242, 10,\n\t\t250, 111, 191, 217, 22, 88, 95, 127, 182, 13, 202, 100, 26,\n\t\t207, 27, 129, 102, 48, 124, 103, 52, 167, 214, 199, 134, 233,\n\t\t34, 194, 89, 165, 103, 63, 174, 21, 182, 38, 108, 55, 73,\n\t\t29, 171, 178, 48, 107, 175, 191, 199, 211, 159, 188, 137,\n\t\t167, 221, 93, 153, 76, 211, 41, 96, 131, 212, 75, 225, 147,\n\t\t188, 181, 57, 117, 186, 107, 230, 181, 105, 165, 117, 157,\n\t\t240, 146, 75, 23, 130, 211, 122, 25, 168, 114, 53, 31, 236,\n\t\t135, 8, 29, 83, 21, 73, 164, 179, 172, 68, 203, 250, 126,\n\t\t228, 22, 251, 236, 214, 0, 118, 41, 177, 38, 121, 170, 103,\n\t\t15, 220, 226, 40, 117, 146, 156, 55, 125, 0, 134, 9, 204,\n\t\t89, 8, 182, 235, 235, 220, 94, 19, 129, 202, 222, 150, 230,\n\t\t232, 228, 101, 103, 51, 24, 133, 58, 140, 33, 120, 91, 26,\n\t\t232, 94, 183, 177, 200, 224, 28, 18, 110, 170, 118, 125, 145,\n\t\t225, 136, 42, 239, 150, 58, 15, 117, 166, 206, 92, 85, 203,\n\t\t9, 123, 103, 230, 23, 82, 169, 44, 126, 228, 132, 208, 158,\n\t\t53, 201, 224, 157, 54, 217, 251, 243, 22, 101, 178, 174, 162,\n\t\t232, 255, 252, 233, 225, 241, 243, 251, 143, 31, 94, 195,\n\t\t210, 249, 34, 150, 214, 231, 88, 58, 54, 44, 21, 188, 225,\n\t\t42, 50, 239, 252, 35, 93, 65, 216, 188, 33, 44, 99, 12, 191,\n\t\t7, 61, 248, 107, 175, 82, 240, 246, 12, 235, 102, 63, 199,\n\t\t58, 84, 172, 171, 121, 60, 199, 58, 195, 123, 28, 167, 120,\n\t\t95, 51, 205, 13, 239, 119, 43, 226, 183, 87, 16, 255, 233,\n\t\t174, 52, 150, 209, 41, 32, 117, 209, 62, 199, 214, 83, 174,\n\t\t48, 66, 236, 152, 8, 69, 202, 25, 137, 5, 220, 173, 96, 98,\n\t\t26, 173, 148, 99, 108, 169, 148, 54, 225, 182, 190, 141, 89,\n\t\t25, 234, 245, 134, 206, 109, 164, 86, 39, 240, 236, 149, 154,\n\t\t58, 85, 230, 54, 244, 38, 182, 230, 148, 11, 137, 234, 160,\n\t\t246, 9, 161, 41, 94, 239, 22, 232, 162, 115, 8, 51, 13, 145,\n\t\t107, 113, 164, 130, 36, 188, 114, 37, 88, 31, 113, 202, 123,\n\t\t139, 48, 250, 72, 204, 66, 32, 164, 57, 39, 215, 104, 179,\n\t\t144, 112, 229, 125, 16, 122, 129, 92, 89, 194, 24, 2, 106,\n\t\t41, 105, 76, 209, 98, 229, 52, 89, 216, 101, 142, 109, 18,\n\t\t50, 243, 52, 5, 69, 121, 135, 229, 218, 26, 241, 4, 0, 76,\n\t\t209, 242, 64, 98, 30, 189, 165, 220, 115, 1, 217, 167, 173,\n\t\t137, 116, 3, 72, 124, 156, 136, 192, 93, 144, 153, 221, 60,\n\t\t71, 219, 45, 252, 110, 238, 132, 161, 164, 33, 58, 134, 216,\n\t\t18, 138, 224, 197, 88, 212, 42, 137, 104, 68, 196, 59, 168,\n\t\t165, 210, 74, 89, 176, 164, 134, 61, 20, 210, 97, 48, 71,\n\t\t133, 208, 67, 37, 81, 101, 4, 200, 57, 213, 94, 253, 121,\n\t\t161, 153, 114, 135, 98, 146, 61, 85, 185, 155, 18, 130, 228,\n\t\t207, 99, 24, 191, 135, 115, 132, 33, 180, 147, 103, 162, 138,\n\t\t28, 61, 210, 16, 171, 14, 66, 255, 123, 228, 207, 211, 114,\n\t\t194, 71, 127, 148, 39, 46, 160, 147, 119, 245, 181, 235, 130,\n\t\t202, 95, 46, 246, 110, 187, 80, 11, 108, 114, 10, 142, 193,\n\t\t156, 247, 194, 44, 28, 138, 114, 136, 249, 87, 36, 2, 81,\n\t\t15, 229, 156, 103, 111, 181, 97, 200, 138, 174, 116, 90, 184,\n\t\t52, 72, 173, 145, 72, 21, 0, 169, 131, 220, 76, 103, 106,\n\t\t115, 125, 214, 79, 197, 114, 174, 92, 188, 142, 40, 113, 158,\n\t\t85, 242, 207, 71, 127, 246, 182, 252, 89, 63, 150, 28, 70,\n\t\t234, 162, 163, 130, 52, 235, 152, 74, 101, 251, 128, 64, 182,\n\t\t37, 152, 105, 173, 204, 98, 180, 52, 75, 102, 180, 41, 105,\n\t\t202, 136, 96, 166, 140, 189, 136, 54, 111, 80, 237, 1, 213,\n\t\t134, 130, 50, 150, 133, 95, 3, 228, 209, 212, 22, 176, 166,\n\t\t60, 250, 228, 175, 124, 6, 228, 148, 107, 149, 177, 246, 52,\n\t\t59, 106, 155, 56, 7, 83, 60, 87, 81, 90, 59, 1, 251, 50, 18,\n\t\t97, 225, 223, 82, 67, 198, 69, 213, 138, 49, 87, 62, 26, 150,\n\t\t80, 64, 170, 134, 250, 116, 87, 249, 216, 194, 128, 185, 165,\n\t\t182, 64, 154, 66, 36, 74, 234, 210, 116, 73, 212, 39, 137,\n\t\t46, 74, 84, 120, 39, 5, 148, 234, 164, 190, 123, 100, 1, 173,\n\t\t142, 58, 141, 209, 175, 242, 246, 243, 74, 75, 100, 12, 86,\n\t\t147, 141, 92, 83, 151, 169, 102, 42, 32, 135, 101, 79, 44,\n\t\t69, 225, 160, 36, 138, 61, 121, 126, 140, 88, 114, 194, 25,\n\t\t58, 36, 153, 97, 255, 93, 126, 102, 201, 80, 224, 116, 48,\n\t\t215, 30, 29, 204, 173, 64, 33, 120, 116, 32, 29, 198, 179,\n\t\t223, 23, 7, 208, 225, 51, 240, 12, 186, 211, 206, 97, 247,\n\t\t104, 176, 69, 7, 238, 25, 236, 79, 130, 210, 52, 150, 57,\n\t\t82, 107, 122, 41, 63, 102, 130, 80, 107, 192, 210, 211, 44,\n\t\t114, 101, 207, 68, 104, 20, 222, 165, 60, 9, 101, 38, 236,\n\t\t122, 7, 188, 213, 121, 140, 252, 34, 47, 71, 173, 107, 121,\n\t\t228, 151, 253, 221, 200, 56, 40, 239, 78, 189, 43, 62, 169,\n\t\t116, 107, 147, 198, 199, 195, 253, 227, 254, 124, 171, 246,\n\t\t124, 190, 85, 27, 101, 219, 170, 173, 8, 120, 162, 42, 234,\n\t\t69, 85, 106, 162, 77, 105, 137, 55, 100, 103, 137, 94, 9,\n\t\t222, 90, 0, 152, 104, 14, 85, 255, 64, 38, 193, 137, 84, 123,\n\t\t7, 177, 199, 225, 201, 35, 17, 238, 85, 65, 15, 57, 101, 16,\n\t\t86, 42, 219, 171, 98, 125, 146, 90, 69, 33, 242, 174, 132,\n\t\t26, 9, 169, 11, 129, 93, 171, 133, 40, 26, 60, 215, 49, 72,\n\t\t227, 57, 143, 192, 189, 33, 138, 137, 76, 40, 169, 50, 84,\n\t\t135, 88, 153, 223, 110, 61, 209, 220, 169, 242, 138, 71, 227,\n\t\t131, 137, 14, 188, 15, 102, 45, 88, 7, 227, 99, 241, 161,\n\t\t248, 72, 124, 32, 62, 14, 200, 193, 71, 225, 131, 240, 49,\n\t\t248, 16, 154, 215, 8, 109, 217, 192, 119, 232, 163, 131, 15,\n\t\t50, 131, 2, 62, 211, 246, 150, 120, 43, 102, 72, 181, 44,\n\t\t124, 140, 211, 108, 129, 121, 51, 150, 187, 161, 165, 94,\n\t\t144, 2, 38, 170, 35, 131, 168, 241, 129, 159, 218, 236, 101,\n\t\t183, 180, 172, 74, 121, 62, 67, 102, 226, 99, 145, 122, 154,\n\t\t192, 162, 7, 48, 58, 243, 76, 245, 52, 234, 211, 93, 33, 121,\n\t\t115, 240, 171, 75, 244, 110, 34, 164, 66, 165, 219, 197, 113,\n\t\t17, 148, 72, 68, 141, 247, 131, 118, 197, 207, 42, 165, 113,\n\t\t95, 194, 219, 114, 163, 51, 149, 26, 188, 175, 104, 157, 73,\n\t\t95, 244, 116, 87, 48, 135, 82, 218, 34, 215, 85, 125, 138,\n\t\t56, 192, 120, 45, 215, 35, 104, 82, 126, 29, 9, 97, 10, 189,\n\t\t148, 137, 58, 68, 106, 137, 64, 109, 211, 112, 238, 150, 130,\n\t\t105, 138, 174, 31, 210, 200, 179, 133, 214, 211, 68, 102,\n\t\t76, 135, 62, 67, 102, 214, 212, 31, 23, 64, 228, 205, 146,\n\t\t195, 139, 251, 185, 219, 126, 102, 154, 168, 180, 235, 205,\n\t\t68, 81, 105, 162, 222, 241, 188, 78, 19, 229, 48, 225, 225,\n\t\t48, 175, 94, 197, 132, 176, 42, 145, 142, 181, 37, 18, 133,\n\t\t166, 27, 123, 196, 206, 140, 73, 166, 67, 44, 61, 117, 166,\n\t\t220, 204, 20, 237, 22, 160, 84, 74, 9, 80, 83, 6, 150, 168,\n\t\t40, 9, 98, 18, 164, 57, 42, 5, 34, 55, 209, 121, 137, 222,\n\t\t204, 115, 130, 163, 235, 64, 99, 145, 75, 195, 217, 66, 14,\n\t\t190, 8, 182, 6, 190, 4, 61, 101, 198, 248, 131, 47, 64, 228,\n\t\t21, 24, 185, 44, 209, 215, 64, 134, 39, 163, 242, 85, 136,\n\t\t190, 12, 209, 214, 193, 11, 150, 40, 43, 161, 134, 146, 188,\n\t\t20, 227, 140, 236, 131, 82, 222, 221, 111, 64, 247, 101, 17,\n\t\t154, 156, 224, 189, 182, 17, 100, 9, 0, 130, 172, 0, 80, 168,\n\t\t168, 51, 193, 243, 159, 115, 59, 248, 244, 51, 235, 88, 237,\n\t\t82, 173, 117, 185, 125, 202, 192, 36, 137, 151, 96, 0, 132,\n\t\t200, 107, 208, 89, 84, 32, 94, 20, 153, 136, 156, 96, 102,\n\t\t165, 222, 178, 149, 126, 41, 245, 94, 238, 15, 15, 31, 222,\n\t\t221, 127, 122, 201, 16, 163, 151, 215, 13, 198, 128, 165,\n\t\t157, 150, 247, 145, 228, 2, 221, 173, 81, 148, 153, 55, 51,\n\t\t19, 101, 230, 197, 38, 226, 85, 91, 22, 202, 55, 108, 89,\n\t\t228, 245, 181, 135, 120, 218, 120, 244, 59, 118, 22, 163,\n\t\t160, 227, 173, 138, 191, 2, 176, 187, 155, 208, 62, 221, 21,\n\t\t57, 222, 255, 26, 208, 188, 1, 24, 158, 26, 185, 118, 249,\n\t\t114, 88, 118, 95, 12, 12, 180, 252, 107, 1, 243, 197, 176,\n\t\t240, 42, 189, 13, 150, 221, 111, 15, 12, 209, 224, 51, 235,\n\t\t153, 45, 211, 175, 118, 105, 66, 227, 88, 175, 218, 147, 221,\n\t\t70, 235, 138, 123, 192, 219, 205, 220, 110, 197, 46, 109,\n\t\t183, 171, 202, 106, 247, 148, 110, 176, 153, 143, 56, 117,\n\t\t160, 199, 136, 206, 238, 169, 233, 185, 105, 42, 237, 174,\n\t\t175, 80, 94, 138, 235, 44, 155, 255, 218, 194, 13, 251, 195,\n\t\t143, 63, 252, 240, 240, 225, 146, 210, 213, 103, 26, 33, 104,\n\t\t11, 16, 36, 150, 31, 69, 67, 51, 205, 198, 81, 30, 48, 139,\n\t\t214, 146, 146, 126, 15, 209, 75, 229, 192, 50, 75, 213, 216,\n\t\t40, 84, 83, 222, 78, 59, 120, 129, 4, 220, 133, 233, 189,\n\t\t94, 76, 160, 59, 9, 116, 55, 248, 167, 182, 154, 26, 51, 159,\n\t\t239, 207, 75, 156, 39, 24, 56, 252, 206, 201, 238, 174, 208,\n\t\t76, 186, 137, 143, 145, 98, 182, 229, 110, 105, 138, 1, 88,\n\t\t84, 211, 183, 177, 237, 22, 185, 44, 208, 149, 1, 22, 222,\n\t\t170, 24, 90, 139, 222, 216, 140, 82, 187, 223, 191, 148, 194,\n\t\t135, 152, 93, 162, 216, 40, 250, 240, 171, 62, 31, 22, 182,\n\t\t84, 68, 73, 69, 105, 6, 157, 24, 158, 23, 158, 22, 204, 166,\n\t\t228, 98, 70, 0, 40, 137, 134, 45, 203, 153, 172, 182, 215,\n\t\t89, 78, 145, 71, 158, 97, 53, 205, 110, 89, 103, 85, 74, 101,\n\t\t122, 189, 174, 62, 65, 147, 243, 128, 76, 17, 142, 96, 208,\n\t\t116, 115, 192, 40, 211, 106, 79, 245, 204, 216, 29, 48, 155,\n\t\t213, 47, 130, 219, 53, 174, 37, 122, 49, 180, 196, 170, 86,\n\t\t178, 242, 239, 170, 48, 31, 102, 252, 15, 118, 151, 22, 201,\n\t\t248, 31, 183, 16, 239, 54, 171, 238, 68, 0, 67, 103, 164,\n\t\t118, 222, 131, 243, 0, 211, 174, 70, 185, 87, 180, 27, 56,\n\t\t150, 172, 165, 145, 106, 70, 245, 35, 84, 216, 148, 240, 50,\n\t\t136, 62, 116, 33, 188, 224, 186, 149, 212, 199, 195, 187,\n\t\t75, 99, 239, 254, 237, 51, 43, 1, 204, 183, 172, 4, 144, 254,\n\t\t10, 86, 2, 64, 45, 117, 90, 134, 153, 249, 100, 150, 48, 26,\n\t\t78, 97, 182, 74, 207, 128, 204, 60, 105, 193, 212, 130, 67,\n\t\t37, 43, 176, 47, 123, 152, 102, 73, 195, 221, 33, 237, 35,\n\t\t176, 116, 140, 187, 37, 110, 205, 70, 111, 215, 155, 141,\n\t\t222, 174, 55, 235, 205, 5, 111, 54, 2, 229, 196, 84, 10, 135,\n\t\t90, 51, 220, 158, 243, 248, 241, 199, 135, 15, 23, 19, 191,\n\t\t92, 243, 208, 232, 105, 6, 158, 234, 210, 221, 190, 188, 101,\n\t\t195, 11, 18, 98, 232, 79, 93, 209, 247, 16, 187, 99, 31, 224,\n\t\t224, 33, 154, 31, 138, 251, 27, 33, 249, 29, 178, 227, 45,\n\t\t229, 141, 46, 112, 9, 31, 97, 249, 117, 67, 252, 117, 193,\n\t\t206, 78, 13, 104, 249, 208, 196, 162, 156, 191, 190, 66, 181,\n\t\t143, 140, 22, 164, 254, 56, 79, 119, 114, 136, 229, 99, 196,\n\t\t82, 18, 29, 154, 211, 135, 76, 9, 119, 203, 48, 119, 37, 32,\n\t\t197, 109, 36, 35, 235, 126, 233, 11, 70, 99, 245, 121, 143,\n\t\t35, 31, 9, 69, 66, 54, 35, 51, 167, 240, 106, 45, 2, 189,\n\t\t164, 121, 96, 58, 219, 24, 7, 10, 37, 88, 226, 122, 32, 168,\n\t\t241, 136, 31, 24, 177, 233, 17, 75, 227, 48, 248, 104, 226,\n\t\t3, 166, 143, 52, 14, 76, 120, 209, 182, 222, 216, 151, 126,\n\t\t227, 240, 216, 223, 127, 250, 28, 191, 189, 244, 202, 25,\n\t\t121, 53, 74, 156, 77, 172, 193, 69, 200, 149, 59, 125, 85,\n\t\t63, 200, 170, 181, 141, 111, 48, 119, 21, 253, 60, 178, 164,\n\t\t162, 102, 166, 250, 78, 91, 15, 206, 103, 245, 252, 115, 143,\n\t\t226, 72, 68, 203, 214, 135, 215, 136, 231, 175, 122, 95, 199,\n\t\t232, 157, 172, 144, 197, 11, 120, 46, 190, 236, 163, 117,\n\t\t245, 116, 135, 153, 100, 100, 187, 159, 55, 52, 222, 156,\n\t\t191, 249, 208, 188, 147, 95, 56, 180, 146, 243, 47, 26, 154,\n\t\t120, 167, 252, 214, 67, 179, 78, 126, 225, 208, 88, 54, 164,\n\t\t177, 168, 188, 46, 182, 137, 77, 173, 63, 179, 152, 116, 138,\n\t\t135, 76, 4, 181, 170, 242, 74, 235, 239, 207, 172, 67, 169,\n\t\t209, 18, 161, 39, 185, 241, 203, 106, 7, 72, 169, 148, 172,\n\t\t118, 142, 5, 143, 165, 52, 209, 103, 107, 43, 39, 157, 200,\n\t\t255, 123, 104, 55, 192, 40, 152, 247, 196, 156, 32, 228, 241,\n\t\t11, 54, 81, 207, 58, 189, 63, 123, 65, 118, 63, 111, 69, 182,\n\t\t126, 126, 217, 154, 188, 129, 61, 125, 188, 32, 48, 237, 202,\n\t\t161, 82, 48, 52, 101, 109, 22, 112, 191, 140, 98, 135, 64,\n\t\t49, 39, 54, 113, 243, 227, 39, 5, 170, 170, 217, 204, 226,\n\t\t220, 166, 121, 7, 234, 21, 116, 61, 113, 88, 20, 134, 82,\n\t\t201, 232, 72, 126, 151, 71, 114, 6, 24, 221, 164, 205, 197,\n\t\t84, 220, 136, 180, 54, 102, 231, 99, 177, 38, 12, 230, 247,\n\t\t36, 94, 123, 145, 124, 214, 184, 7, 247, 24, 169, 115, 157,\n\t\t120, 254, 228, 211, 220, 172, 163, 120, 237, 235, 76, 147,\n\t\t207, 70, 227, 138, 38, 164, 18, 102, 183, 54, 167, 153, 59,\n\t\t56, 68, 102, 62, 229, 11, 128, 198, 76, 153, 151, 205, 34,\n\t\t150, 209, 194, 69, 43, 19, 216, 157, 251, 90, 157, 179, 20,\n\t\t230, 184, 2, 61, 133, 189, 83, 72, 86, 231, 91, 149, 207,\n\t\t148, 239, 163, 117, 150, 180, 105, 115, 175, 113, 70, 221,\n\t\t7, 140, 149, 185, 111, 227, 188, 213, 144, 11, 196, 218, 202,\n\t\t15, 68, 105, 173, 108, 62, 140, 124, 240, 47, 226, 240, 27,\n\t\t208, 15, 42, 18, 223, 162, 245, 251, 28, 202, 78, 230, 48,\n\t\t108, 156, 46, 172, 48, 43, 109, 156, 244, 50, 218, 106, 135,\n\t\t210, 114, 42, 194, 36, 212, 192, 243, 56, 196, 175, 86, 184,\n\t\t224, 57, 157, 13, 5, 245, 251, 129, 222, 120, 30, 186, 249,\n\t\t219, 218, 163, 248, 13, 47, 234, 24, 231, 62, 207, 226, 19,\n\t\t107, 7, 56, 67, 21, 13, 172, 167, 59, 81, 74, 5, 168, 148,\n\t\t96, 199, 12, 177, 206, 48, 75, 42, 32, 215, 78, 202, 20, 20,\n\t\t113, 236, 171, 206, 79, 207, 245, 59, 67, 222, 21, 11, 120,\n\t\t60, 238, 113, 199, 223, 1, 240, 145, 217, 36, 45, 16, 196,\n\t\t244, 82, 145, 34, 188, 174, 62, 1, 168, 96, 237, 126, 205,\n\t\t110, 122, 87, 221, 255, 217, 7, 223, 232, 128, 228, 168, 67,\n\t\t226, 117, 42, 139, 93, 192, 100, 5, 220, 212, 5, 106, 157,\n\t\t182, 57, 67, 101, 147, 24, 148, 65, 227, 57, 20, 181, 170,\n\t\t97, 140, 185, 129, 153, 189, 68, 30, 171, 39, 29, 194, 74,\n\t\t173, 7, 35, 118, 91, 196, 203, 24, 204, 183, 220, 65, 43,\n\t\t214, 143, 63, 139, 29, 51, 173, 198, 130, 134, 108, 83, 45,\n\t\t29, 153, 236, 4, 200, 109, 209, 141, 152, 235, 42, 71, 11,\n\t\t101, 128, 89, 55, 197, 199, 86, 2, 34, 92, 13, 183, 164, 235,\n\t\t50, 144, 46, 13, 246, 201, 120, 3, 117, 164, 178, 91, 54,\n\t\t9, 118, 234, 46, 234, 110, 232, 71, 190, 27, 11, 8, 158, 233,\n\t\t227, 2, 202, 62, 150, 18, 124, 115, 208, 116, 163, 73, 70,\n\t\t139, 169, 59, 84, 60, 208, 14, 176, 34, 22, 200, 132, 46,\n\t\t43, 183, 59, 221, 234, 114, 152, 187, 153, 238, 47, 247, 83,\n\t\t68, 245, 70, 147, 123, 30, 193, 43, 183, 110, 170, 182, 3,\n\t\t125, 145, 71, 48, 195, 65, 91, 93, 91, 220, 155, 238, 216,\n\t\t113, 127, 127, 248, 238, 130, 56, 207, 235, 87, 210, 77, 25,\n\t\t209, 35, 83, 93, 212, 62, 87, 167, 104, 158, 60, 177, 48,\n\t\t48, 171, 208, 75, 167, 104, 115, 202, 123, 131, 83, 244, 207,\n\t\t246, 137, 22, 139, 178, 103, 62, 209, 238, 146, 200, 20, 128,\n\t\t123, 3, 119, 201, 183, 131, 99, 221, 62, 221, 14, 195, 230,\n\t\t134, 159, 167, 30, 206, 187, 183, 187, 56, 95, 157, 241, 195,\n\t\t195, 15, 31, 47, 228, 171, 185, 5, 100, 24, 148, 120, 223,\n\t\t19, 230, 4, 0, 11, 11, 236, 40, 151, 70, 252, 69, 84, 23,\n\t\t147, 10, 169, 221, 138, 140, 106, 166, 140, 80, 197, 251,\n\t\t63, 87, 234, 50, 241, 185, 118, 51, 197, 30, 196, 115, 6,\n\t\t164, 94, 74, 37, 21, 230, 133, 6, 166, 82, 196, 10, 115, 214,\n\t\t52, 218, 34, 62, 224, 194, 244, 240, 23, 156, 170, 255, 73,\n\t\t84, 170, 156, 97, 98, 56, 165, 117, 107, 215, 183, 113, 130,\n\t\t170, 124, 200, 156, 43, 39, 232, 218, 79, 4, 145, 115, 1,\n\t\t8, 155, 1, 213, 155, 66, 153, 235, 110, 137, 62, 160, 117,\n\t\t96, 62, 34, 25, 16, 78, 57, 235, 100, 68, 62, 32, 25, 79,\n\t\t19, 45, 136, 222, 163, 251, 128, 116, 60, 45, 200, 112, 50,\n\t\t4, 27, 141, 14, 70, 87, 191, 228, 25, 100, 40, 185, 7, 30,\n\t\t9, 9, 85, 228, 106, 168, 175, 161, 108, 123, 18, 242, 171,\n\t\t192, 243, 32, 74, 238, 97, 138, 217, 74, 81, 48, 74, 55, 184,\n\t\t10, 83, 52, 230, 76, 114, 15, 133, 122, 66, 232, 59, 161,\n\t\t108, 208, 76, 204, 43, 32, 225, 44, 122, 237, 35, 180, 146,\n\t\t122, 97, 214, 162, 230, 68, 99, 20, 94, 11, 154, 128, 75,\n\t\t148, 136, 26, 88, 237, 64, 22, 46, 171, 213, 212, 72, 12,\n\t\t163, 253, 106, 167, 165, 60, 64, 212, 64, 131, 106, 95, 34,\n\t\t96, 78, 36, 30, 207, 242, 165, 106, 228, 3, 185, 53, 70, 113,\n\t\t42, 66, 171, 76, 221, 95, 231, 181, 77, 149, 44, 34, 7, 117,\n\t\t177, 58, 26, 192, 239, 54, 62, 168, 170, 193, 84, 112, 5,\n\t\t114, 183, 8, 112, 185, 41, 135, 67, 51, 8, 104, 114, 21, 90,\n\t\t237, 96, 225, 182, 123, 11, 210, 25, 142, 197, 1, 115, 184,\n\t\t28, 44, 135, 202, 129, 82, 152, 158, 238, 144, 15, 105, 106,\n\t\t161, 240, 118, 25, 176, 128, 107, 52, 32, 167, 217, 148, 245,\n\t\t44, 12, 18, 102, 115, 5, 115, 119, 51, 100, 228, 235, 32,\n\t\t22, 19, 67, 110, 150, 90, 26, 234, 95, 36, 177, 11, 250, 20,\n\t\t191, 129, 62, 196, 134, 130, 80, 225, 182, 47, 114, 65, 230,\n\t\t70, 89, 57, 233, 21, 153, 120, 251, 242, 174, 128, 225, 247,\n\t\t181, 220, 199, 137, 147, 219, 162, 96, 229, 25, 54, 56, 185,\n\t\t46, 15, 24, 82, 105, 117, 171, 26, 236, 221, 101, 38, 104,\n\t\t8, 32, 106, 199, 81, 81, 20, 6, 208, 122, 128, 54, 18, 35,\n\t\t55, 116, 121, 193, 63, 23, 238, 161, 22, 224, 30, 218, 16,\n\t\t231, 211, 52, 107, 51, 46, 28, 11, 133, 231, 64, 149, 114,\n\t\t157, 229, 254, 244, 240, 238, 253, 231, 184, 220, 127, 122,\n\t\t119, 65, 106, 222, 221, 82, 229, 184, 115, 178, 114, 191,\n\t\t52, 182, 115, 168, 110, 79, 103, 62, 202, 207, 245, 250, 107,\n\t\t157, 125, 164, 62, 211, 200, 230, 57, 104, 252, 180, 87, 240,\n\t\t87, 244, 233, 53, 109, 191, 255, 186, 183, 166, 158, 238,\n\t\t170, 171, 69, 219, 184, 162, 29, 57, 70, 66, 127, 231, 138,\n\t\t210, 101, 199, 82, 96, 183, 134, 17, 210, 84, 95, 232, 23,\n\t\t116, 240, 71, 232, 121, 29, 208, 49, 66, 207, 175, 43, 242,\n\t\t215, 38, 213, 85, 171, 189, 229, 202, 111, 31, 59, 126, 209,\n\t\t173, 76, 191, 238, 66, 255, 116, 199, 196, 223, 128, 217,\n\t\t221, 134, 6, 74, 251, 34, 112, 248, 253, 171, 240, 92, 195,\n\t\t224, 253, 187, 11, 204, 189, 191, 48, 189, 57, 193, 220, 198,\n\t\t50, 97, 9, 200, 108, 104, 29, 11, 211, 169, 214, 6, 51, 13,\n\t\t153, 218, 24, 44, 195, 104, 1, 75, 251, 0, 101, 43, 192, 158,\n\t\t8, 144, 23, 180, 180, 52, 169, 189, 65, 99, 60, 242, 13, 141,\n\t\t241, 214, 212, 224, 35, 168, 246, 80, 210, 168, 32, 151, 7,\n\t\t74, 221, 189, 123, 235, 253, 192, 12, 15, 159, 89, 21, 248,\n\t\t180, 217, 45, 44, 158, 52, 230, 135, 140, 192, 96, 77, 181,\n\t\t78, 123, 127, 76, 62, 12, 73, 140, 198, 245, 121, 127, 98,\n\t\t244, 183, 199, 54, 211, 40, 227, 180, 140, 143, 168, 65, 133,\n\t\t193, 45, 12, 42, 83, 199, 153, 16, 75, 43, 107, 83, 209, 218,\n\t\t122, 186, 131, 90, 228, 228, 41, 165, 137, 54, 113, 130, 88,\n\t\t120, 2, 238, 9, 107, 106, 141, 182, 82, 16, 135, 115, 237,\n\t\t144, 55, 144, 14, 31, 117, 150, 142, 162, 129, 164, 145, 85,\n\t\t103, 99, 226, 10, 175, 64, 71, 181, 244, 96, 90, 30, 204,\n\t\t159, 137, 255, 118, 143, 174, 131, 241, 31, 10, 62, 250, 163,\n\t\t60, 113, 129, 120, 137, 110, 133, 234, 134, 154, 243, 91,\n\t\t58, 248, 165, 237, 95, 197, 213, 251, 15, 239, 226, 143, 31,\n\t\t223, 127, 248, 28, 37, 162, 218, 5, 226, 110, 220, 29, 142,\n\t\t52, 66, 129, 156, 104, 33, 187, 132, 202, 97, 184, 247, 82,\n\t\t25, 9, 50, 180, 173, 192, 190, 200, 229, 80, 77, 13, 154,\n\t\t70, 198, 234, 77, 220, 227, 206, 106, 173, 95, 246, 204, 83,\n\t\t169, 69, 50, 36, 130, 38, 116, 41, 149, 214, 85, 81, 49, 197,\n\t\t15, 79, 4, 141, 42, 87, 55, 19, 103, 155, 122, 229, 214, 168,\n\t\t46, 152, 170, 58, 71, 113, 65, 86, 219, 156, 154, 113, 170,\n\t\t251, 184, 90, 8, 67, 77, 115, 72, 108, 22, 76, 125, 130, 28,\n\t\t172, 64, 185, 233, 21, 26, 49, 223, 196, 128, 234, 193, 58,\n\t\t249, 55, 230, 56, 230, 76, 147, 242, 86, 178, 23, 149, 203,\n\t\t28, 67, 76, 161, 114, 43, 162, 204, 159, 35, 85, 128, 174,\n\t\t30, 142, 216, 19, 6, 202, 123, 150, 126, 248, 80, 95, 98,\n\t\t77, 93, 141, 219, 40, 205, 42, 156, 47, 115, 56, 133, 201,\n\t\t216, 16, 152, 1, 153, 147, 29, 251, 232, 202, 61, 198, 5,\n\t\t83, 238, 161, 153, 58, 23, 49, 133, 238, 167, 122, 106, 30,\n\t\t18, 15, 192, 23, 222, 35, 244, 108, 85, 247, 141, 82, 206,\n\t\t176, 91, 70, 170, 98, 42, 36, 87, 61, 165, 139, 157, 77, 166,\n\t\t62, 106, 56, 233, 222, 1, 110, 105, 182, 50, 58, 87, 54, 227,\n\t\t210, 150, 96, 150, 210, 66, 201, 9, 228, 172, 47, 169, 181,\n\t\t49, 15, 57, 1, 142, 153, 91, 96, 254, 150, 119, 43, 151, 148,\n\t\t204, 60, 47, 151, 212, 154, 69, 233, 89, 27, 213, 48, 211,\n\t\t20, 186, 0, 67, 28, 250, 153, 14, 8, 72, 200, 76, 58, 179,\n\t\t110, 133, 87, 119, 46, 204, 168, 228, 10, 220, 151, 112, 127,\n\t\t37, 167, 194, 51, 208, 135, 26, 132, 247, 42, 172, 172, 61,\n\t\t46, 149, 153, 224, 206, 192, 138, 65, 87, 77, 56, 26, 200,\n\t\t119, 195, 173, 221, 49, 230, 148, 69, 227, 105, 218, 66, 132,\n\t\t222, 197, 137, 97, 118, 106, 234, 87, 159, 16, 228, 78, 37,\n\t\t129, 112, 193, 194, 80, 65, 165, 253, 104, 9, 122, 27, 79,\n\t\t182, 15, 96, 34, 195, 39, 86, 64, 98, 21, 143, 174, 197, 64,\n\t\t230, 13, 237, 217, 62, 121, 133, 252, 150, 22, 90, 234, 189,\n\t\t210, 90, 37, 158, 213, 221, 171, 72, 47, 190, 241, 204, 46,\n\t\t137, 145, 188, 203, 154, 85, 53, 82, 254, 220, 85, 103, 165,\n\t\t124, 135, 170, 226, 48, 39, 38, 189, 107, 235, 180, 246, 180,\n\t\t211, 203, 170, 162, 54, 254, 202, 244, 138, 203, 120, 234,\n\t\t192, 155, 171, 80, 154, 88, 135, 24, 168, 169, 98, 101, 166,\n\t\t220, 9, 149, 158, 212, 94, 85, 149, 87, 81, 236, 202, 122,\n\t\t66, 185, 102, 103, 193, 121, 14, 13, 152, 48, 100, 215, 182,\n\t\t4, 121, 42, 75, 90, 186, 6, 34, 27, 69, 118, 98, 75, 173,\n\t\t160, 170, 22, 179, 52, 199, 82, 209, 108, 157, 249, 145, 150,\n\t\t122, 45, 11, 241, 142, 20, 99, 188, 134, 157, 57, 111, 113,\n\t\t174, 224, 122, 173, 215, 193, 44, 250, 250, 176, 183, 237,\n\t\t183, 91, 40, 43, 80, 57, 212, 158, 0, 133, 221, 132, 217,\n\t\t69, 56, 16, 81, 160, 65, 42, 88, 113, 1, 242, 227, 147, 207,\n\t\t150, 33, 10, 190, 10, 34, 194, 79, 222, 0, 128, 105, 34, 141,\n\t\t80, 11, 207, 225, 2, 51, 57, 154, 202, 162, 130, 177, 230,\n\t\t44, 249, 143, 60, 3, 137, 29, 56, 183, 206, 50, 216, 126,\n\t\t66, 202, 88, 233, 233, 110, 12, 213, 4, 1, 163, 177, 153,\n\t\t18, 170, 207, 4, 105, 100, 6, 122, 228, 143, 181, 56, 106,\n\t\t249, 227, 233, 179, 21, 161, 250, 65, 218, 203, 120, 93, 58,\n\t\t63, 33, 229, 135, 135, 239, 46, 41, 249, 106, 82, 145, 3,\n\t\t162, 250, 148, 8, 29, 31, 34, 44, 137, 162, 204, 169, 241,\n\t\t217, 167, 34, 127, 29, 34, 130, 40, 21, 152, 66, 236, 215,\n\t\t109, 194, 132, 167, 211, 246, 204, 187, 70, 49, 83, 172, 66,\n\t\t9, 196, 110, 161, 99, 89, 155, 158, 107, 235, 124, 154, 20,\n\t\t16, 250, 89, 123, 114, 221, 89, 45, 29, 116, 135, 51, 117,\n\t\t148, 61, 94, 113, 233, 44, 186, 20, 213, 226, 51, 239, 33,\n\t\t146, 239, 148, 73, 43, 178, 79, 87, 34, 18, 141, 138, 236,\n\t\t54, 66, 20, 157, 18, 109, 212, 42, 58, 185, 90, 160, 166,\n\t\t130, 80, 228, 4, 166, 78, 42, 16, 171, 9, 167, 144, 56, 165,\n\t\t120, 76, 127, 245, 121, 165, 145, 78, 211, 157, 164, 59, 69,\n\t\t31, 43, 65, 101, 226, 187, 108, 196, 92, 99, 73, 40, 49, 23,\n\t\t57, 209, 136, 249, 118, 33, 232, 228, 124, 99, 2, 156, 160,\n\t\t199, 147, 23, 248, 144, 144, 77, 237, 4, 61, 26, 69, 119,\n\t\t130, 30, 55, 0, 182, 35, 8, 71, 106, 230, 60, 211, 122, 130,\n\t\t194, 98, 232, 118, 90, 69, 57, 174, 214, 131, 13, 69, 252,\n\t\t214, 115, 77, 52, 208, 101, 164, 86, 7, 110, 199, 161, 157,\n\t\t134, 139, 44, 200, 0, 209, 80, 13, 94, 76, 222, 255, 36, 42,\n\t\t191, 44, 75, 183, 157, 187, 122, 236, 46, 17, 147, 186, 245,\n\t\t214, 52, 0, 85, 251, 41, 224, 64, 77, 109, 170, 27, 133, 158,\n\t\t238, 118, 184, 27, 107, 208, 234, 110, 97, 142, 130, 74, 213,\n\t\t216, 26, 134, 80, 165, 139, 198, 40, 158, 225, 174, 220, 130,\n\t\t59, 190, 71, 39, 217, 78, 168, 207, 169, 239, 90, 160, 219,\n\t\t153, 72, 6, 54, 74, 83, 142, 140, 143, 58, 249, 66, 160, 161,\n\t\t79, 6, 74, 24, 0, 33, 4, 209, 40, 129, 88, 255, 42, 117, 132,\n\t\t41, 0, 135, 8, 22, 41, 64, 88, 33, 9, 233, 161, 164, 38, 42,\n\t\t173, 81, 139, 54, 131, 104, 38, 16, 251, 221, 156, 178, 120,\n\t\t83, 24, 249, 82, 114, 198, 155, 206, 10, 156, 2, 242, 254,\n\t\t161, 9, 188, 78, 189, 39, 148, 173, 166, 252, 45, 138, 141,\n\t\t111, 235, 109, 28, 149, 194, 226, 18, 177, 38, 44, 179, 4,\n\t\t158, 125, 13, 206, 98, 177, 94, 184, 53, 177, 166, 119, 242,\n\t\t108, 212, 89, 135, 211, 69, 67, 146, 26, 77, 189, 108, 234,\n\t\t12, 43, 158, 222, 110, 241, 41, 160, 135, 192, 78, 108, 103,\n\t\t5, 27, 120, 87, 14, 62, 98, 177, 37, 40, 32, 209, 73, 85,\n\t\t192, 246, 227, 102, 61, 109, 184, 106, 87, 139, 8, 94, 69,\n\t\t191, 152, 160, 117, 73, 68, 98, 181, 101, 242, 19, 144, 231,\n\t\t79, 128, 93, 11, 236, 76, 220, 142, 81, 65, 68, 158, 235,\n\t\t147, 215, 237, 134, 228, 124, 209, 213, 40, 97, 168, 226,\n\t\t9, 221, 115, 245, 77, 164, 122, 119, 65, 171, 31, 47, 233,\n\t\t254, 91, 201, 247, 79, 63, 94, 16, 239, 139, 251, 198, 19,\n\t\t203, 223, 92, 83, 11, 165, 81, 26, 78, 210, 167, 145, 116,\n\t\t120, 149, 164, 47, 206, 147, 159, 178, 240, 198, 157, 159,\n\t\t243, 228, 71, 223, 120, 203, 202, 137, 59, 111, 238, 140,\n\t\t184, 115, 230, 182, 85, 215, 189, 187, 56, 31, 206, 140, 121,\n\t\t27, 20, 86, 46, 220, 249, 114, 165, 6, 43, 117, 216, 45, 43,\n\t\t15, 238, 92, 249, 202, 130, 59, 83, 126, 206, 147, 31, 87,\n\t\t138, 149, 195, 202, 140, 11, 81, 115, 118, 124, 163, 112,\n\t\t199, 149, 18, 174, 44, 184, 19, 240, 177, 113, 227, 27, 51,\n\t\t126, 140, 141, 158, 203, 101, 39, 108, 248, 41, 89, 222, 27,\n\t\t249, 94, 137, 119, 222, 126, 190, 32, 227, 5, 143, 76, 187,\n\t\t89, 196, 86, 226, 237, 36, 219, 40, 248, 122, 118, 28, 29,\n\t\t218, 28, 156, 23, 143, 206, 130, 59, 75, 110, 7, 210, 116,\n\t\t158, 252, 176, 30, 106, 193, 207, 185, 195, 122, 244, 5, 63,\n\t\t13, 153, 189, 83, 54, 220, 217, 242, 232, 124, 184, 243, 229,\n\t\t126, 132, 250, 153, 186, 68, 231, 196, 157, 51, 143, 206,\n\t\t138, 59, 107, 30, 159, 243, 230, 60, 68, 103, 203, 79, 24,\n\t\t242, 141, 7, 216, 111, 12, 185, 115, 227, 34, 152, 40, 19,\n\t\t190, 242, 229, 198, 132, 175, 252, 197, 113, 229, 198, 17,\n\t\t105, 69, 125, 39, 238, 241, 156, 13, 63, 167, 242, 66, 19,\n\t\t236, 22, 243, 25, 77, 16, 206, 252, 130, 44, 28, 79, 104,\n\t\t137, 113, 228, 250, 222, 51, 102, 220, 41, 143, 23, 236, 68,\n\t\t207, 66, 22, 206, 115, 109, 211, 24, 244, 120, 194, 161, 171,\n\t\t173, 135, 178, 230, 43, 59, 238, 12, 250, 57, 193, 92, 86,\n\t\t102, 220, 217, 243, 149, 23, 119, 238, 92, 169, 240, 74, 149,\n\t\t23, 231, 196, 157, 53, 95, 25, 113, 103, 205, 141, 210, 175,\n\t\t164, 127, 239, 252, 184, 49, 226, 202, 150, 59, 23, 238, 108,\n\t\t249, 9, 87, 126, 92, 153, 241, 28, 156, 29, 143, 43, 27, 174,\n\t\t92, 249, 243, 115, 44, 75, 108, 51, 229, 195, 157, 47, 143,\n\t\t206, 136, 59, 99, 110, 167, 163, 159, 150, 178, 108, 202,\n\t\t138, 27, 107, 30, 157, 23, 119, 222, 220, 207, 96, 59, 147,\n\t\t143, 43, 83, 94, 248, 140, 160, 95, 64, 216, 127, 77, 186,\n\t\t254, 238, 227, 159, 46, 174, 207, 238, 175, 4, 1, 134, 193,\n\t\t162, 166, 232, 2, 156, 83, 63, 101, 120, 220, 30, 246, 140,\n\t\t180, 31, 87, 110, 125, 101, 211, 141, 109, 143, 231, 108,\n\t\t122, 52, 62, 125, 45, 89, 162, 243, 235, 167, 29, 25, 235,\n\t\t30, 183, 125, 171, 7, 141, 112, 237, 206, 171, 27, 239, 110,\n\t\t156, 186, 17, 128, 197, 249, 116, 103, 220, 157, 77, 119,\n\t\t190, 253, 140, 196, 8, 183, 254, 156, 80, 29, 46, 168, 217,\n\t\t226, 44, 186, 243, 236, 198, 161, 59, 199, 254, 156, 97, 95,\n\t\t73, 232, 170, 116, 89, 181, 48, 35, 156, 168, 95, 156, 226,\n\t\t170, 236, 102, 228, 254, 132, 79, 223, 104, 247, 94, 41, 253,\n\t\t70, 232, 241, 196, 10, 244, 153, 254, 69, 162, 187, 185, 230,\n\t\t69, 118, 185, 146, 251, 85, 231, 226, 44, 123, 60, 61, 113,\n\t\t54, 154, 191, 114, 235, 116, 194, 174, 159, 158, 101, 39,\n\t\t231, 158, 242, 234, 113, 227, 208, 61, 88, 236, 249, 113,\n\t\t41, 84, 204, 120, 116, 99, 218, 227, 198, 164, 27, 215, 30,\n\t\t207, 206, 229, 37, 58, 155, 238, 108, 123, 92, 249, 116, 103,\n\t\t220, 227, 249, 233, 127, 220, 56, 118, 213, 2, 10, 207, 30,\n\t\t207, 57, 245, 139, 47, 79, 142, 249, 208, 222, 174, 100, 57,\n\t\t58, 199, 190, 241, 233, 198, 185, 59, 159, 238, 140, 251,\n\t\t115, 26, 177, 108, 76, 186, 177, 237, 198, 163, 175, 76, 251,\n\t\t25, 21, 114, 6, 125, 101, 217, 157, 176, 57, 199, 126, 198,\n\t\t176, 239, 142, 219, 50, 57, 171, 30, 157, 71, 87, 142, 61,\n\t\t26, 155, 206, 180, 116, 31, 55, 94, 221, 121, 116, 103, 218,\n\t\t227, 202, 164, 59, 215, 30, 207, 105, 183, 8, 44, 202, 166,\n\t\t59, 223, 30, 87, 62, 221, 25, 247, 120, 126, 68, 196, 149,\n\t\t81, 119, 206, 61, 174, 7, 143, 179, 238, 241, 226, 40, 210,\n\t\t8, 4, 204, 181, 159, 176, 235, 39, 7, 219, 110, 241, 135,\n\t\t28, 206, 25, 245, 179, 211, 242, 120, 162, 246, 90, 57, 246,\n\t\t231, 92, 250, 37, 183, 206, 135, 88, 25, 202, 159, 25, 93,\n\t\t255, 101, 4, 252, 69, 133, 204, 13, 195, 192, 31, 255, 114,\n\t\t78, 202, 151, 139, 92, 0, 27, 41, 167, 34, 81, 2, 66, 25,\n\t\t152, 114, 157, 75, 79, 189, 138, 23, 181, 127, 1, 74, 171,\n\t\t230, 90, 86, 118, 45, 144, 55, 133, 203, 109, 204, 152, 189,\n\t\t33, 120, 224, 200, 199, 72, 111, 168, 135, 124, 34, 94, 143,\n\t\t193, 140, 249, 154, 251, 192, 200, 71, 186, 230, 95, 176,\n\t\t219, 67, 71, 129, 25, 148, 151, 11, 82, 23, 134, 69, 208,\n\t\t80, 151, 219, 98, 154, 117, 27, 241, 211, 29, 106, 168, 204,\n\t\t87, 227, 22, 18, 238, 227, 188, 233, 249, 128, 180, 143, 253,\n\t\t86, 4, 195, 146, 205, 165, 233, 229, 0, 134, 40, 87, 143,\n\t\t147, 194, 200, 175, 71, 81, 204, 184, 143, 204, 251, 156,\n\t\t49, 23, 207, 81, 241, 56, 198, 62, 66, 190, 25, 139, 242,\n\t\t13, 240, 80, 22, 135, 234, 227, 76, 173, 192, 160, 227, 233,\n\t\t93, 89, 150, 123, 126, 137, 80, 146, 133, 37, 18, 143, 90,\n\t\t212, 93, 15, 226, 7, 43, 65, 214, 8, 97, 30, 34, 141, 84,\n\t\t218, 224, 245, 146, 79, 185, 9, 193, 202, 44, 89, 50, 90,\n\t\t175, 158, 237, 254, 98, 228, 55, 11, 52, 47, 216, 71, 131,\n\t\t97, 199, 199, 220, 190, 93, 223, 51, 143, 247, 199, 139, 240,\n\t\t33, 203, 21, 246, 103, 221, 51, 48, 126, 251, 61, 179, 122,\n\t\t242, 189, 190, 23, 174, 199, 35, 247, 158, 126, 30, 166, 119,\n\t\t12, 165, 49, 102, 224, 144, 88, 145, 252, 57, 242, 78, 145,\n\t\t238, 202, 22, 192, 202, 51, 143, 95, 176, 246, 125, 240, 90,\n\t\t10, 195, 198, 159, 199, 8, 57, 251, 84, 93, 168, 174, 141,\n\t\t36, 242, 159, 156, 79, 55, 112, 29, 50, 237, 35, 225, 45,\n\t\t92, 191, 17, 92, 189, 136, 191, 44, 183, 8, 109, 97, 54, 19,\n\t\t37, 130, 140, 221, 8, 72, 64, 93, 254, 62, 198, 227, 250,\n\t\t28, 181, 64, 11, 85, 70, 89, 203, 199, 120, 60, 121, 77, 254,\n\t\t215, 230, 199, 16, 53, 69, 149, 120, 83, 22, 114, 148, 69,\n\t\t47, 141, 56, 26, 79, 30, 45, 8, 105, 244, 0, 166, 114, 131,\n\t\t98, 193, 74, 79, 159, 181, 232, 250, 102, 248, 159, 63, 221,\n\t\t127, 186, 220, 14, 227, 202, 118, 200, 121, 181, 111, 121,\n\t\t201, 243, 231, 183, 112, 85, 149, 228, 23, 43, 42, 190, 100,\n\t\t88, 226, 33, 246, 95, 244, 9, 226, 31, 175, 89, 185, 232,\n\t\t203, 175, 59, 148, 94, 143, 115, 242, 225, 248, 112, 248,\n\t\t248, 227, 197, 28, 62, 228, 127, 185, 241, 120, 25, 160, 210,\n\t\t164, 185, 35, 51, 221, 35, 83, 151, 168, 214, 26, 230, 108,\n\t\t36, 100, 121, 187, 106, 108, 116, 17, 111, 37, 204, 12, 20,\n\t\t74, 117, 72, 200, 137, 38, 145, 77, 160, 165, 33, 177, 182,\n\t\t45, 142, 119, 205, 9, 69, 33, 195, 114, 98, 111, 24, 122,\n\t\t73, 36, 150, 15, 68, 169, 103, 16, 31, 73, 20, 197, 66, 78,\n\t\t165, 139, 26, 160, 182, 36, 1, 214, 11, 36, 170, 4, 235, 43,\n\t\t254, 70, 111, 26, 177, 162, 138, 129, 196, 148, 40, 218, 208,\n\t\t106, 24, 35, 161, 4, 212, 55, 160, 20, 166, 163, 141, 70,\n\t\t244, 237, 58, 222, 35, 140, 42, 193, 80, 133, 62, 131, 222,\n\t\t9, 8, 35, 94, 61, 24, 6, 149, 52, 36, 0, 58, 100, 74, 147,\n\t\t212, 66, 147, 207, 156, 157, 188, 84, 73, 12, 118, 122, 234,\n\t\t164, 49, 22, 138, 220, 36, 214, 154, 160, 235, 116, 148, 148,\n\t\t107, 17, 255, 137, 73, 189, 44, 194, 23, 163, 222, 233, 98,\n\t\t81, 177, 103, 128, 206, 77, 225, 99, 195, 222, 105, 98, 126,\n\t\t59, 107, 101, 177, 112, 166, 138, 179, 136, 197, 224, 96,\n\t\t17, 138, 89, 52, 212, 252, 46, 101, 82, 53, 224, 202, 144,\n\t\t160, 173, 84, 235, 49, 234, 192, 174, 91, 86, 28, 222, 127,\n\t\t191, 255, 252, 237, 79, 135, 111, 47, 240, 243, 219, 139,\n\t\t64, 218, 21, 93, 226, 239, 106, 26, 118, 205, 49, 231, 241,\n\t\t37, 127, 160, 69, 47, 188, 179, 56, 91, 54, 218, 12, 235,\n\t\t163, 250, 12, 46, 55, 252, 137, 30, 61, 188, 188, 151, 67,\n\t\t91, 114, 168, 168, 7, 22, 241, 52, 123, 138, 153, 48, 219,\n\t\t211, 221, 108, 90, 34, 38, 225, 109, 206, 67, 204, 41, 155,\n\t\t39, 5, 21, 65, 223, 189, 120, 137, 52, 144, 159, 106, 150,\n\t\t176, 135, 209, 126, 219, 73, 208, 43, 15, 255, 21, 75, 130,\n\t\t50, 89, 4, 203, 105, 242, 148, 23, 189, 156, 23, 233, 146,\n\t\t165, 97, 177, 241, 48, 240, 15, 226, 5, 32, 59, 181, 52, 41,\n\t\t18, 65, 201, 124, 45, 53, 60, 141, 72, 160, 254, 197, 108,\n\t\t59, 160, 164, 130, 185, 172, 37, 123, 62, 1, 7, 169, 183,\n\t\t177, 134, 215, 201, 26, 246, 165, 102, 61, 107, 37, 184, 151,\n\t\t191, 102, 111, 109, 189, 175, 157, 243, 201, 42, 177, 184,\n\t\t212, 175, 213, 94, 172, 169, 13, 65, 30, 47, 48, 240, 159,\n\t\t118, 178, 200, 68, 99, 153, 221, 133, 35, 137, 127, 223, 93,\n\t\t91, 44, 193, 240, 53, 20, 2, 145, 88, 109, 138, 158, 128,\n\t\t228, 146, 105, 144, 5, 24, 161, 146, 170, 132, 30, 1, 73,\n\t\t74, 39, 55, 239, 146, 73, 65, 47, 185, 166, 94, 80, 105, 64,\n\t\t147, 58, 228, 94, 189, 162, 198, 203, 143, 147, 119, 114,\n\t\t70, 177, 135, 160, 201, 219, 118, 207, 164, 112, 13, 181,\n\t\t187, 100, 49, 208, 22, 43, 46, 74, 89, 94, 202, 105, 78, 241,\n\t\t230, 133, 156, 136, 6, 31, 215, 186, 66, 64, 226, 61, 177,\n\t\t91, 170, 173, 20, 159, 132, 99, 138, 61, 233, 148, 232, 71,\n\t\t6, 114, 115, 191, 248, 60, 19, 181, 5, 179, 198, 151, 145,\n\t\t116, 123, 76, 133, 90, 205, 18, 39, 143, 241, 105, 125, 30,\n\t\t36, 184, 177, 100, 150, 24, 37, 232, 81, 172, 221, 194, 254,\n\t\t75, 136, 78, 100, 169, 121, 72, 162, 6, 199, 127, 192, 145,\n\t\t68, 179, 79, 169, 52, 117, 219, 102, 124, 144, 31, 120, 104,\n\t\t99, 138, 62, 73, 2, 19, 79, 137, 142, 36, 145, 0, 133, 194,\n\t\t116, 241, 193, 111, 32, 185, 160, 180, 239, 29, 139, 252,\n\t\t26, 32, 137, 200, 60, 202, 155, 193, 50, 33, 13, 238, 162,\n\t\t161, 130, 45, 193, 144, 90, 95, 32, 145, 90, 38, 81, 170,\n\t\t45, 87, 70, 16, 67, 241, 105, 105, 135, 48, 65, 85, 123, 68,\n\t\t146, 222, 121, 49, 0, 51, 192, 186, 22, 117, 214, 158, 203,\n\t\t194, 60, 182, 96, 80, 41, 54, 156, 82, 83, 231, 161, 118,\n\t\t222, 76, 217, 22, 22, 243, 12, 182, 174, 226, 162, 164, 170,\n\t\t222, 172, 6, 225, 130, 45, 188, 95, 59, 88, 80, 31, 47, 16,\n\t\t236, 17, 197, 237, 44, 41, 23, 109, 85, 98, 23, 49, 30, 218,\n\t\t223, 245, 132, 1, 15, 135, 195, 57, 141, 251, 238, 74, 164,\n\t\t26, 226, 217, 156, 97, 212, 212, 97, 81, 131, 105, 202, 84,\n\t\t130, 132, 84, 19, 234, 67, 50, 10, 46, 176, 60, 16, 18, 154,\n\t\t239, 36, 18, 180, 108, 7, 119, 200, 55, 103, 26, 177, 117,\n\t\t115, 5, 5, 238, 99, 25, 69, 173, 119, 97, 74, 220, 71, 209,\n\t\t194, 131, 98, 38, 152, 45, 248, 250, 70, 193, 101, 219, 11,\n\t\t161, 235, 206, 66, 235, 31, 106, 18, 161, 200, 225, 81, 112,\n\t\t96, 166, 2, 83, 172, 24, 37, 22, 18, 159, 105, 109, 246, 80,\n\t\t65, 145, 202, 159, 65, 188, 76, 120, 130, 251, 230, 248, 65,\n\t\t188, 63, 161, 204, 52, 37, 187, 195, 44, 51, 0, 159, 106,\n\t\t44, 77, 42, 89, 81, 29, 164, 68, 115, 37, 165, 64, 5, 131,\n\t\t192, 159, 171, 216, 249, 217, 215, 232, 78, 159, 107, 129,\n\t\t100, 148, 176, 86, 248, 76, 111, 162, 170, 83, 177, 206, 250,\n\t\t138, 189, 115, 249, 250, 168, 125, 11, 231, 47, 161, 229,\n\t\t75, 99, 228, 20, 254, 162, 164, 90, 214, 177, 68, 29, 204,\n\t\t211, 93, 235, 169, 50, 174, 140, 188, 47, 188, 4, 101, 242,\n\t\t129, 13, 166, 127, 237, 201, 246, 138, 108, 211, 110, 240,\n\t\t115, 129, 28, 180, 124, 46, 136, 81, 179, 184, 163, 192, 172,\n\t\t97, 69, 246, 192, 220, 137, 200, 74, 167, 69, 85, 34, 104,\n\t\t44, 57, 52, 219, 109, 226, 70, 81, 212, 44, 83, 140, 59, 205,\n\t\t205, 12, 112, 251, 41, 250, 111, 60, 172, 23, 122, 138, 47,\n\t\t116, 21, 189, 47, 57, 159, 32, 79, 9, 134, 54, 170, 144, 12,\n\t\t85, 118, 105, 144, 171, 162, 33, 57, 125, 68, 81, 135, 164,\n\t\t226, 132, 232, 235, 75, 213, 65, 103, 241, 85, 144, 88, 185,\n\t\t56, 148, 162, 173, 5, 141, 246, 182, 2, 118, 181, 173, 52,\n\t\t134, 235, 137, 254, 174, 157, 212, 141, 55, 100, 235, 253,\n\t\t199, 199, 31, 223, 127, 190, 191, 220, 136, 87, 4, 10, 73,\n\t\t204, 144, 201, 77, 161, 95, 201, 168, 68, 215, 19, 42, 109,\n\t\t214, 225, 87, 195, 204, 222, 200, 234, 244, 116, 135, 77,\n\t\t141, 234, 174, 7, 162, 253, 98, 80, 119, 111, 129, 213, 76,\n\t\t223, 85, 21, 115, 171, 242, 111, 13, 177, 78, 141, 58, 95,\n\t\t127, 65, 63, 187, 155, 29, 189, 101, 176, 106, 33, 17, 145,\n\t\t197, 77, 22, 99, 88, 118, 108, 215, 58, 134, 153, 234, 177,\n\t\t244, 145, 102, 171, 18, 147, 38, 53, 232, 184, 41, 100, 33,\n\t\t101, 189, 154, 243, 175, 251, 49, 82, 213, 209, 156, 235,\n\t\t116, 85, 165, 139, 180, 231, 77, 189, 233, 31, 78, 85, 183,\n\t\t170, 162, 224, 209, 72, 59, 187, 179, 106, 51, 145, 8, 86,\n\t\t168, 70, 44, 89, 162, 26, 25, 116, 2, 234, 141, 220, 97, 146,\n\t\t253, 49, 66, 101, 8, 82, 61, 182, 254, 69, 107, 219, 186,\n\t\t181, 83, 42, 236, 37, 51, 164, 231, 72, 187, 161, 127, 1,\n\t\t188, 161, 127, 65, 218, 121, 131, 165, 130, 42, 84, 203, 160,\n\t\t125, 196, 118, 196, 171, 57, 95, 48, 223, 74, 249, 194, 149,\n\t\t110, 105, 49, 49, 95, 85, 98, 74, 51, 87, 107, 92, 209, 182,\n\t\t242, 251, 87, 116, 177, 187, 215, 71, 119, 149, 128, 254,\n\t\t120, 248, 233, 49, 190, 172, 148, 249, 238, 34, 196, 241,\n\t\t73, 158, 86, 9, 175, 203, 219, 225, 13, 241, 229, 198, 56,\n\t\t70, 187, 173, 187, 90, 175, 220, 242, 165, 25, 131, 27, 187,\n\t\t81, 169, 92, 13, 14, 54, 198, 81, 64, 121, 181, 194, 141,\n\t\t164, 150, 59, 30, 202, 126, 140, 27, 110, 59, 18, 72, 173,\n\t\t253, 118, 218, 169, 171, 209, 203, 16, 191, 88, 61, 181, 187,\n\t\t170, 159, 250, 37, 1, 207, 94, 138, 128, 15, 0, 255, 251,\n\t\t166, 38, 185, 170, 229, 252, 225, 253, 11, 131, 189, 228,\n\t\t73, 230, 234, 159, 205, 43, 251, 27, 12, 159, 235, 234, 240,\n\t\t203, 54, 124, 89, 176, 211, 25, 88, 11, 46, 39, 161, 155,\n\t\t245, 206, 54, 15, 91, 201, 22, 180, 95, 194, 141, 138, 231,\n\t\t106, 223, 12, 140, 208, 35, 205, 157, 56, 237, 160, 185, 103,\n\t\t200, 255, 59, 247, 218, 241, 82, 113, 246, 57, 125, 41, 186,\n\t\t171, 80, 193, 95, 210, 193, 207, 104, 159, 27, 43, 53, 209,\n\t\t50, 52, 253, 186, 218, 56, 121, 106, 169, 211, 232, 116, 22,\n\t\t210, 120, 89, 243, 230, 203, 27, 224, 161, 220, 44, 6, 137,\n\t\t103, 219, 141, 246, 218, 110, 137, 37, 107, 146, 202, 78,\n\t\t102, 192, 82, 205, 103, 87, 124, 131, 231, 250, 252, 24, 167,\n\t\t5, 62, 88, 67, 198, 105, 5, 251, 125, 137, 195, 194, 8, 172,\n\t\t32, 120, 38, 42, 191, 241, 246, 222, 173, 115, 134, 85, 228,\n\t\t189, 97, 100, 10, 215, 244, 71, 250, 158, 143, 205, 195, 77,\n\t\t47, 232, 105, 136, 176, 90, 194, 3, 205, 89, 53, 85, 254,\n\t\t28, 180, 126, 127, 108, 102, 197, 224, 1, 181, 6, 5, 251,\n\t\t233, 122, 232, 178, 79, 151, 86, 65, 0, 23, 33, 12, 254, 182,\n\t\t69, 222, 140, 194, 188, 69, 58, 46, 91, 251, 111, 124, 245,\n\t\t241, 13, 112, 232, 60, 73, 156, 246, 236, 218, 187, 174, 174,\n\t\t153, 186, 67, 114, 73, 234, 71, 204, 216, 191, 140, 245, 72,\n\t\t182, 218, 221, 183, 195, 26, 110, 208, 35, 131, 139, 53, 158,\n\t\t232, 209, 226, 73, 22, 181, 21, 249, 236, 232, 113, 190, 97,\n\t\t219, 132, 210, 158, 106, 255, 24, 63, 145, 207, 79, 209, 6,\n\t\t168, 97, 151, 164, 79, 205, 228, 5, 143, 44, 31, 235, 0, 101,\n\t\t51, 175, 191, 199, 226, 177, 58, 52, 148, 135, 239, 40, 223,\n\t\t199, 86, 253, 100, 131, 120, 199, 86, 83, 95, 3, 115, 178,\n\t\t47, 158, 217, 125, 219, 88, 58, 56, 30, 138, 0, 110, 1, 53,\n\t\t154, 181, 111, 51, 102, 19, 104, 79, 87, 55, 206, 15, 15,\n\t\t231, 17, 238, 1, 238, 255, 182, 109, 254, 133, 110, 27, 177,\n\t\t88, 198, 33, 2, 153, 54, 239, 114, 219, 20, 87, 44, 158, 226,\n\t\t199, 245, 249, 229, 251, 102, 27, 54, 158, 100, 135, 83, 243,\n\t\t157, 147, 102, 76, 66, 236, 237, 122, 174, 243, 63, 62, 252,\n\t\t229, 219, 143, 151, 33, 6, 0, 174, 70, 139, 28, 191, 218,\n\t\t117, 226, 77, 55, 236, 91, 215, 137, 35, 63, 221, 213, 210,\n\t\t182, 170, 36, 193, 205, 197, 159, 179, 142, 49, 196, 158,\n\t\t125, 4, 239, 203, 127, 205, 98, 106, 232, 85, 248, 251, 6,\n\t\t178, 215, 57, 249, 149, 127, 223, 113, 103, 203, 214, 192,\n\t\t8, 91, 15, 227, 233, 14, 122, 14, 208, 223, 160, 42, 17, 37,\n\t\t253, 213, 204, 222, 227, 106, 102, 239, 113, 67, 156, 198,\n\t\t161, 130, 238, 175, 5, 204, 238, 139, 161, 41, 13, 127, 53,\n\t\t104, 190, 24, 24, 73, 149, 255, 54, 96, 118, 191, 61, 52,\n\t\t128, 104, 73, 204, 111, 1, 243, 219, 195, 82, 115, 147, 96,\n\t\t147, 255, 34, 128, 225, 137, 193, 246, 6, 101, 220, 23, 3,\n\t\t115, 75, 35, 40, 251, 9, 198, 95, 9, 154, 55, 0, 83, 128,\n\t\t126, 53, 96, 190, 124, 115, 19, 228, 95, 13, 154, 47, 6, 70,\n\t\t174, 172, 223, 6, 204, 95, 97, 115, 83, 30, 1, 50, 190, 1,\n\t\t26, 184, 165, 214, 134, 171, 218, 101, 126, 255, 58, 56, 55,\n\t\t226, 70, 123, 182, 141, 115, 54, 160, 92, 187, 191, 204, 121,\n\t\t101, 3, 254, 90, 118, 88, 111, 72, 25, 112, 59, 214, 255,\n\t\t23, 103, 12, 216, 89, 202, 0, 53, 9, 139, 175, 218, 132, 189,\n\t\t61, 99, 192, 13, 149, 236, 253, 95, 94, 206, 24, 9, 180, 134,\n\t\t37, 41, 29, 82, 15, 8, 121, 1, 119, 196, 154, 171, 159, 128,\n\t\t62, 23, 11, 124, 45, 97, 234, 15, 81, 237, 43, 228, 102, 184,\n\t\t154, 236, 179, 186, 107, 152, 156, 181, 134, 148, 92, 11,\n\t\t224, 136, 114, 29, 4, 150, 16, 122, 122, 32, 72, 225, 114,\n\t\t215, 90, 188, 19, 73, 238, 177, 68, 139, 175, 217, 41, 127,\n\t\t182, 84, 241, 120, 33, 157, 60, 221, 213, 198, 205, 110, 137,\n\t\t35, 195, 165, 38, 238, 17, 127, 161, 86, 239, 186, 152, 245,\n\t\t254, 195, 107, 154, 113, 160, 171, 110, 169, 35, 64, 163,\n\t\t47, 82, 82, 227, 13, 37, 244, 219, 212, 238, 88, 254, 10,\n\t\t138, 232, 221, 111, 173, 137, 254, 213, 21, 209, 146, 54,\n\t\t248, 149, 117, 189, 148, 163, 95, 52, 67, 125, 93, 10, 58,\n\t\t153, 229, 223, 208, 230, 90, 204, 83, 37, 122, 82, 227, 170,\n\t\t70, 116, 44, 89, 60, 243, 223, 148, 160, 180, 128, 181, 167,\n\t\t142, 116, 153, 198, 119, 119, 150, 199, 87, 45, 120, 126,\n\t\t113, 30, 95, 126, 253, 180, 189, 45, 143, 111, 209, 151, 37,\n\t\t247, 238, 107, 121, 124, 175, 166, 241, 149, 150, 126, 110,\n\t\t26, 223, 126, 61, 53, 240, 69, 155, 58, 54, 3, 71, 115, 151,\n\t\t177, 196, 240, 44, 103, 114, 147, 92, 251, 167, 57, 147, 233,\n\t\t244, 237, 224, 57, 147, 175, 95, 11, 236, 239, 63, 61, 188,\n\t\t134, 123, 215, 130, 252, 53, 16, 67, 76, 28, 51, 77, 146,\n\t\t0, 65, 85, 3, 26, 82, 150, 64, 45, 146, 1, 118, 138, 169,\n\t\t94, 80, 151, 185, 49, 242, 60, 68, 160, 146, 84, 233, 69,\n\t\t36, 193, 63, 103, 231, 21, 94, 191, 12, 240, 232, 78, 41,\n\t\t87, 201, 225, 233, 37, 238, 73, 80, 77, 131, 204, 39, 71,\n\t\t18, 7, 149, 46, 222, 101, 32, 126, 117, 234, 210, 11, 102,\n\t\t128, 39, 113, 80, 53, 94, 175, 216, 6, 45, 64, 9, 113, 84,\n\t\t177, 186, 202, 99, 168, 54, 156, 186, 40, 193, 103, 18, 34,\n\t\t223, 33, 105, 200, 223, 90, 101, 52, 187, 37, 86, 72, 109,\n\t\t34, 5, 137, 5, 42, 209, 75, 41, 141, 158, 33, 140, 98, 62,\n\t\t238, 94, 0, 68, 73, 12, 6, 197, 80, 45, 75, 68, 117, 205,\n\t\t229, 102, 22, 128, 165, 169, 145, 208, 20, 235, 51, 77, 2,\n\t\t87, 116, 71, 201, 39, 89, 234, 179, 50, 212, 208, 103, 160,\n\t\t230, 242, 163, 41, 54, 60, 75, 105, 169, 227, 20, 245, 62,\n\t\t149, 89, 67, 31, 106, 9, 227, 46, 197, 128, 57, 137, 169,\n\t\t152, 216, 87, 29, 107, 79, 48, 135, 120, 137, 98, 154, 165,\n\t\t86, 177, 138, 194, 42, 81, 69, 103, 37, 8, 103, 211, 235,\n\t\t241, 253, 240, 0, 68, 60, 156, 221, 33, 218, 183, 163, 152,\n\t\t223, 230, 169, 105, 149, 135, 196, 108, 153, 22, 97, 147,\n\t\t212, 98, 83, 2, 152, 218, 19, 143, 172, 138, 239, 100, 85,\n\t\t147, 59, 113, 169, 158, 98, 197, 35, 182, 99, 13, 221, 136,\n\t\t135, 155, 109, 139, 248, 194, 65, 215, 49, 52, 241, 103, 157,\n\t\t98, 117, 5, 105, 194, 144, 32, 151, 141, 31, 75, 26, 2, 75,\n\t\t145, 164, 134, 148, 25, 233, 2, 118, 137, 107, 176, 52, 241,\n\t\t81, 221, 28, 101, 160, 166, 74, 18, 81, 121, 106, 170, 214,\n\t\t156, 38, 47, 247, 148, 221, 167, 49, 242, 122, 171, 109, 139,\n\t\t26, 51, 212, 59, 62, 230, 52, 176, 50, 34, 172, 37, 192, 91,\n\t\t185, 204, 99, 36, 102, 75, 106, 255, 43, 208, 85, 144, 115,\n\t\t247, 26, 95, 77, 18, 164, 161, 168, 218, 104, 170, 233, 35,\n\t\t166, 57, 120, 235, 204, 164, 201, 124, 99, 79, 85, 83, 56,\n\t\t3, 136, 67, 183, 186, 72, 245, 140, 114, 82, 151, 2, 204,\n\t\t231, 139, 3, 96, 53, 221, 113, 145, 200, 118, 195, 146, 234,\n\t\t49, 179, 53, 36, 18, 156, 197, 59, 220, 2, 117, 81, 34, 119,\n\t\t109, 238, 26, 138, 64, 146, 20, 74, 54, 208, 212, 123, 47,\n\t\t180, 143, 163, 105, 180, 234, 155, 94, 40, 215, 76, 17, 244,\n\t\t112, 125, 205, 9, 71, 220, 142, 150, 44, 146, 73, 6, 12, 69,\n\t\t179, 96, 67, 86, 235, 104, 37, 76, 69, 238, 205, 8, 118, 183,\n\t\t82, 13, 252, 120, 255, 120, 158, 105, 0, 232, 210, 248, 96,\n\t\t85, 105, 23, 234, 105, 146, 248, 71, 1, 49, 255, 219, 234,\n\t\t196, 208, 205, 76, 81, 84, 238, 26, 164, 187, 106, 220, 242,\n\t\t102, 137, 122, 237, 203, 33, 182, 106, 212, 159, 9, 72, 33,\n\t\t9, 202, 211, 149, 162, 87, 65, 88, 89, 77, 77, 114, 9, 37,\n\t\t137, 117, 55, 115, 205, 93, 68, 58, 251, 114, 240, 183, 131,\n\t\t183, 167, 183, 17, 85, 147, 43, 153, 13, 167, 67, 51, 205,\n\t\t106, 217, 129, 113, 88, 28, 20, 107, 107, 183, 56, 36, 14,\n\t\t136, 193, 225, 96, 56, 20, 246, 249, 116, 135, 98, 31, 28,\n\t\t160, 137, 113, 33, 160, 89, 95, 158, 125, 22, 76, 109, 138,\n\t\t44, 64, 85, 172, 76, 31, 163, 23, 121, 149, 104, 191, 132,\n\t\t252, 24, 215, 178, 237, 61, 255, 249, 209, 139, 214, 74, 235,\n\t\t123, 79, 39, 151, 13, 124, 26, 62, 75, 99, 95, 158, 95, 57,\n\t\t164, 124, 158, 185, 126, 119, 146, 186, 190, 60, 147, 17,\n\t\t252, 229, 151, 46, 31, 36, 221, 188, 223, 62, 192, 150, 173,\n\t\t94, 111, 31, 188, 224, 133, 219, 7, 141, 113, 117, 122, 251,\n\t\t176, 150, 188, 73, 62, 88, 238, 63, 61, 124, 182, 179, 252,\n\t\t165, 8, 7, 80, 47, 98, 159, 158, 154, 32, 214, 196, 82, 78,\n\t\t222, 195, 148, 168, 179, 11, 100, 79, 196, 4, 238, 110, 172,\n\t\t17, 79, 37, 36, 70, 61, 196, 105, 73, 189, 36, 165, 129, 156,\n\t\t200, 30, 84, 222, 63, 193, 67, 159, 175, 5, 118, 199, 149,\n\t\t229, 109, 185, 118, 90, 95, 182, 219, 14, 137, 169, 111, 193,\n\t\t222, 81, 196, 43, 207, 17, 145, 83, 253, 213, 164, 135, 221,\n\t\t255, 50, 59, 150, 95, 93, 122, 56, 93, 245, 139, 120, 69,\n\t\t80, 225, 138, 201, 20, 98, 146, 244, 180, 251, 232, 139, 30,\n\t\t183, 85, 143, 190, 236, 80, 212, 162, 64, 86, 221, 23, 221,\n\t\t151, 205, 86, 214, 62, 124, 193, 253, 113, 93, 110, 95, 237,\n\t\t21, 87, 108, 181, 163, 100, 240, 240, 201, 228, 229, 94, 77,\n\t\t9, 226, 223, 22, 252, 246, 130, 191, 20, 42, 22, 42, 94, 217,\n\t\t231, 189, 121, 30, 148, 163, 47, 122, 14, 190, 234, 80, 214,\n\t\t205, 110, 123, 79, 86, 92, 135, 110, 75, 191, 156, 237, 242,\n\t\t243, 205, 158, 215, 109, 126, 136, 167, 239, 106, 202, 22,\n\t\t217, 222, 125, 189, 88, 61, 217, 236, 241, 116, 183, 255,\n\t\t109, 221, 47, 205, 83, 94, 48, 224, 170, 151, 30, 108, 131,\n\t\t124, 119, 183, 153, 102, 40, 53, 39, 88, 102, 136, 226, 190,\n\t\t176, 6, 97, 151, 206, 215, 130, 66, 199, 88, 10, 38, 184,\n\t\t54, 209, 40, 209, 41, 94, 158, 104, 18, 237, 240, 229, 60,\n\t\t75, 251, 123, 204, 148, 128, 25, 129, 158, 237, 190, 217,\n\t\t14, 142, 186, 217, 36, 104, 129, 65, 36, 214, 79, 9, 66, 193,\n\t\t124, 136, 221, 16, 210, 62, 143, 94, 176, 183, 79, 241, 115,\n\t\t140, 208, 246, 56, 228, 6, 118, 183, 103, 129, 66, 239, 169,\n\t\t109, 121, 236, 158, 90, 113, 110, 243, 139, 134, 150, 143,\n\t\t241, 102, 66, 195, 247, 135, 135, 23, 82, 64, 67, 189, 184,\n\t\t159, 222, 166, 30, 7, 159, 93, 249, 24, 241, 13, 54, 166,\n\t\t208, 110, 217, 143, 226, 85, 243, 80, 104, 183, 76, 63, 177,\n\t\t235, 141, 255, 117, 5, 222, 175, 2, 235, 238, 54, 176, 42,\n\t\t97, 22, 22, 88, 127, 35, 172, 251, 249, 8, 119, 24, 94, 96,\n\t\t95, 22, 113, 115, 180, 148, 47, 167, 251, 38, 171, 93, 153,\n\t\t237, 27, 173, 252, 180, 19, 171, 206, 50, 101, 72, 23, 232,\n\t\t89, 52, 109, 10, 227, 230, 207, 70, 77, 70, 234, 171, 232,\n\t\t249, 121, 255, 211, 15, 223, 62, 190, 112, 240, 183, 45, 94,\n\t\t120, 107, 9, 123, 128, 6, 169, 192, 66, 169, 137, 15, 47,\n\t\t162, 6, 219, 97, 73, 158, 36, 220, 48, 145, 137, 125, 35,\n\t\t205, 49, 177, 73, 232, 161, 57, 102, 89, 48, 205, 234, 126,\n\t\t55, 163, 13, 161, 253, 89, 35, 195, 209, 72, 181, 85, 210,\n\t\t140, 18, 18, 81, 169, 53, 113, 187, 90, 88, 70, 172, 234,\n\t\t226, 86, 107, 154, 185, 107, 192, 152, 129, 5, 67, 156, 213,\n\t\t18, 228, 1, 96, 18, 190, 64, 11, 150, 216, 5, 175, 196, 63,\n\t\t104, 245, 74, 69, 83, 162, 108, 101, 98, 155, 133, 169, 107,\n\t\t4, 56, 40, 60, 161, 226, 56, 44, 177, 219, 34, 116, 62, 217,\n\t\t36, 42, 189, 6, 90, 42, 171, 0, 92, 82, 239, 77, 181, 99,\n\t\t89, 66, 179, 22, 11, 26, 90, 178, 5, 68, 180, 146, 23, 67,\n\t\t127, 63, 139, 249, 126, 68, 245, 142, 240, 16, 85, 103, 17,\n\t\t224, 247, 211, 149, 78, 83, 66, 105, 9, 59, 84, 139, 196,\n\t\t45, 206, 80, 186, 36, 56, 173, 165, 132, 166, 245, 194, 176,\n\t\t196, 188, 11, 148, 212, 90, 15, 254, 145, 19, 112, 53, 200,\n\t\t35, 137, 223, 96, 111, 185, 235, 211, 82, 187, 186, 63, 230,\n\t\t48, 107, 210, 251, 189, 2, 170, 232, 89, 11, 32, 83, 234,\n\t\t162, 32, 128, 145, 40, 75, 76, 110, 15, 215, 94, 138, 170,\n\t\t147, 162, 122, 224, 106, 94, 229, 90, 38, 236, 75, 19, 223,\n\t\t184, 133, 134, 230, 152, 201, 97, 240, 226, 137, 251, 24,\n\t\t232, 154, 175, 5, 163, 10, 20, 210, 197, 52, 135, 53, 114,\n\t\t191, 223, 66, 234, 134, 39, 83, 47, 23, 138, 52, 211, 160,\n\t\t44, 39, 45, 37, 9, 215, 212, 19, 141, 221, 194, 155, 120,\n\t\t128, 112, 250, 101, 20, 9, 127, 40, 92, 73, 5, 141, 102, 85,\n\t\t19, 138, 142, 171, 213, 212, 96, 194, 50, 19, 145, 102, 159,\n\t\t67, 212, 252, 66, 48, 84, 91, 198, 8, 195, 99, 47, 61, 13,\n\t\t200, 85, 92, 10, 205, 215, 212, 171, 72, 148, 65, 241, 69,\n\t\t215, 49, 248, 23, 251, 220, 139, 130, 105, 142, 201, 60, 0,\n\t\t183, 50, 75, 192, 161, 189, 212, 42, 122, 149, 245, 121, 146,\n\t\t76, 25, 211, 162, 146, 36, 114, 106, 109, 62, 212, 174, 128,\n\t\t88, 193, 78, 34, 231, 89, 255, 254, 101, 186, 171, 116, 107,\n\t\t22, 109, 96, 5, 138, 91, 182, 200, 64, 213, 34, 64, 169, 123,\n\t\t220, 90, 117, 138, 255, 160, 86, 180, 167, 189, 100, 154,\n\t\t129, 57, 143, 17, 36, 2, 221, 82, 139, 198, 245, 99, 70, 143,\n\t\t247, 16, 108, 93, 64, 135, 196, 219, 193, 135, 109, 159, 75,\n\t\t169, 26, 176, 83, 210, 240, 90, 77, 141, 97, 92, 139, 126,\n\t\t54, 189, 179, 219, 73, 106, 197, 44, 118, 135, 234, 180, 46,\n\t\t4, 153, 209, 167, 136, 107, 165, 110, 73, 70, 212, 158, 139,\n\t\t4, 229, 22, 178, 253, 215, 14, 202, 109, 132, 242, 37, 185,\n\t\t184, 213, 51, 82, 137, 146, 146, 122, 25, 174, 209, 2, 210,\n\t\t80, 214, 43, 6, 151, 108, 154, 138, 51, 148, 94, 212, 83,\n\t\t60, 131, 132, 246, 146, 196, 78, 99, 221, 30, 242, 229, 217,\n\t\t134, 217, 199, 117, 151, 201, 130, 41, 23, 45, 218, 153, 117,\n\t\t63, 74, 138, 171, 57, 195, 249, 6, 229, 174, 58, 106, 106,\n\t\t37, 238, 170, 141, 109, 175, 11, 57, 61, 221, 252, 187, 37,\n\t\t54, 72, 45, 119, 209, 155, 84, 230, 203, 202, 96, 188, 157,\n\t\t5, 45, 209, 227, 70, 83, 228, 186, 129, 26, 4, 249, 100, 106,\n\t\t71, 51, 53, 96, 66, 213, 18, 145, 4, 154, 123, 78, 177, 246,\n\t\t177, 167, 92, 197, 58, 176, 166, 42, 26, 225, 153, 106, 3,\n\t\t11, 54, 61, 154, 184, 253, 55, 77, 105, 165, 185, 202, 191,\n\t\t156, 186, 54, 90, 70, 2, 40, 162, 111, 1, 70, 87, 82, 51,\n\t\t87, 172, 101, 50, 67, 0, 181, 22, 177, 154, 131, 44, 137,\n\t\t163, 22, 202, 105, 206, 206, 196, 178, 151, 4, 179, 234, 249,\n\t\t32, 126, 231, 189, 165, 62, 252, 113, 233, 230, 80, 47, 237,\n\t\t158, 157, 60, 225, 242, 48, 90, 122, 79, 0, 93, 84, 37, 0,\n\t\t105, 14, 141, 235, 70, 136, 26, 171, 227, 244, 124, 131, 146,\n\t\t10, 88, 162, 40, 137, 53, 34, 249, 64, 187, 70, 224, 144,\n\t\t92, 102, 23, 7, 233, 76, 163, 22, 15, 9, 88, 185, 6, 159,\n\t\t11, 44, 33, 83, 78, 133, 112, 132, 243, 3, 251, 233, 174,\n\t\t81, 0, 22, 126, 158, 121, 221, 253, 162, 224, 107, 47, 108,\n\t\t60, 177, 58, 72, 48, 196, 63, 1, 59, 211, 109, 185, 101, 17,\n\t\t74, 169, 202, 105, 163, 109, 103, 68, 117, 121, 78, 134, 221,\n\t\t111, 124, 173, 162, 106, 232, 51, 218, 13, 69, 179, 158, 1,\n\t\t37, 73, 209, 37, 129, 26, 51, 4, 170, 9, 75, 21, 166, 238,\n\t\t217, 177, 176, 99, 198, 175, 182, 44, 76, 33, 20, 73, 184,\n\t\t133, 130, 250, 114, 135, 98, 39, 209, 41, 81, 114, 101, 4,\n\t\t13, 245, 230, 23, 180, 204, 131, 156, 196, 73, 248, 211, 83,\n\t\t154, 183, 119, 114, 185, 240, 214, 177, 196, 28, 17, 96, 164,\n\t\t44, 209, 92, 157, 124, 159, 17, 87, 167, 199, 123, 163, 207,\n\t\t11, 31, 32, 77, 38, 174, 117, 243, 25, 239, 57, 141, 49, 91,\n\t\t56, 37, 232, 187, 181, 98, 244, 47, 235, 225, 209, 171, 165,\n\t\t115, 127, 126, 100, 248, 185, 35, 97, 255, 117, 58, 205, 63,\n\t\t255, 236, 68, 210, 171, 42, 187, 54, 240, 243, 173, 185, 234,\n\t\t241, 249, 1, 183, 183, 35, 241, 250, 141, 226, 79, 23, 244,\n\t\t117, 108, 244, 117, 82, 226, 29, 212, 152, 61, 135, 213, 85,\n\t\t68, 133, 5, 79, 165, 24, 209, 124, 67, 160, 155, 210, 168,\n\t\t104, 54, 84, 53, 229, 80, 159, 142, 216, 44, 145, 101, 196,\n\t\t166, 70, 255, 106, 55, 82, 82, 61, 108, 41, 115, 41, 167,\n\t\t122, 0, 207, 171, 216, 97, 145, 108, 170, 110, 193, 28, 193,\n\t\t115, 72, 98, 179, 16, 157, 150, 87, 83, 34, 154, 148, 156,\n\t\t199, 35, 163, 163, 101, 153, 95, 13, 238, 61, 55, 48, 104,\n\t\t110, 204, 131, 44, 154, 36, 133, 180, 20, 148, 113, 77, 200,\n\t\t91, 167, 29, 146, 170, 248, 0, 207, 4, 235, 67, 124, 14, 249,\n\t\t250, 248, 200, 163, 178, 252, 174, 250, 11, 116, 83, 169,\n\t\t120, 211, 85, 179, 223, 75, 231, 22, 243, 84, 123, 23, 241,\n\t\t194, 99, 201, 154, 48, 135, 150, 76, 120, 29, 176, 143, 193,\n\t\t198, 251, 232, 47, 51, 7, 147, 221, 203, 64, 3, 50, 104, 77,\n\t\t158, 69, 97, 198, 58, 108, 243, 203, 211, 187, 91, 214, 170,\n\t\t253, 100, 4, 226, 254, 224, 223, 121, 4, 143, 46, 19, 98,\n\t\t11, 167, 229, 60, 129, 167, 237, 29, 226, 214, 147, 164, 43,\n\t\t21, 128, 125, 201, 96, 109, 196, 52, 140, 27, 148, 114, 157,\n\t\t58, 83, 13, 211, 235, 148, 224, 77, 157, 14, 119, 78, 60,\n\t\t156, 206, 25, 87, 56, 156, 205, 42, 243, 52, 170, 5, 51, 229,\n\t\t84, 5, 51, 52, 178, 231, 214, 67, 222, 29, 78, 151, 89, 22,\n\t\t227, 4, 17, 4, 97, 161, 4, 31, 1, 174, 174, 85, 6, 94, 241,\n\t\t68, 187, 54, 6, 129, 61, 58, 240, 43, 210, 162, 143, 220,\n\t\t81, 167, 104, 196, 141, 109, 158, 98, 7, 150, 169, 33, 169,\n\t\t181, 65, 61, 116, 91, 237, 138, 142, 159, 107, 193, 65, 72,\n\t\t91, 110, 18, 186, 61, 231, 118, 136, 114, 145, 164, 133, 135,\n\t\t232, 195, 236, 174, 192, 171, 96, 19, 101, 77, 236, 228, 5,\n\t\t203, 245, 124, 240, 156, 207, 113, 90, 206, 212, 181, 167,\n\t\t88, 241, 112, 250, 61, 158, 86, 149, 37, 152, 121, 77, 164,\n\t\t170, 56, 96, 93, 199, 222, 15, 231, 96, 156, 192, 168, 14,\n\t\t148, 56, 69, 244, 49, 33, 90, 110, 248, 201, 49, 66, 14, 149,\n\t\t76, 143, 107, 73, 244, 34, 43, 231, 111, 207, 126, 227, 210,\n\t\t211, 215, 237, 79, 187, 130, 210, 118, 75, 201, 110, 184,\n\t\t86, 37, 217, 130, 172, 68, 229, 255, 31, 227, 201, 99, 180,\n\t\t34, 254, 234, 197, 81, 203, 31, 79, 159, 181, 232, 186, 177,\n\t\t215, 199, 139, 4, 175, 32, 185, 206, 85, 193, 212, 103, 146,\n\t\t184, 193, 194, 68, 17, 48, 43, 33, 218, 4, 6, 24, 72, 14,\n\t\t29, 153, 167, 42, 172, 182, 84, 168, 246, 11, 4, 251, 69,\n\t\t126, 133, 146, 114, 214, 27, 93, 137, 203, 81, 0, 213, 20,\n\t\t128, 36, 240, 255, 20, 41, 131, 39, 71, 142, 90, 18, 227,\n\t\t22, 90, 152, 199, 197, 44, 98, 35, 148, 60, 26, 11, 5, 189,\n\t\t53, 149, 97, 36, 142, 24, 111, 32, 9, 234, 63, 248, 164, 26,\n\t\t115, 97, 169, 81, 67, 94, 23, 139, 38, 214, 122, 34, 209,\n\t\t141, 52, 77, 95, 119, 82, 2, 204, 53, 22, 75, 190, 95, 52,\n\t\t222, 96, 215, 43, 124, 230, 198, 153, 105, 174, 1, 234, 72,\n\t\t40, 198, 47, 18, 60, 23, 23, 42, 202, 149, 143, 84, 16, 80,\n\t\t226, 157, 84, 96, 102, 140, 80, 196, 127, 30, 135, 154, 120,\n\t\t104, 238, 119, 137, 177, 61, 26, 20, 97, 137, 103, 135, 30,\n\t\t196, 175, 81, 82, 29, 77, 178, 32, 244, 48, 153, 245, 166,\n\t\t181, 228, 105, 157, 125, 202, 153, 137, 31, 73, 4, 95, 185,\n\t\t160, 227, 247, 138, 69, 236, 204, 114, 146, 141, 199, 211,\n\t\t2, 47, 220, 45, 173, 74, 88, 52, 209, 197, 21, 22, 149, 66,\n\t\t201, 41, 23, 222, 249, 13, 82, 237, 53, 244, 238, 121, 79,\n\t\t36, 86, 3, 168, 254, 169, 74, 182, 65, 9, 35, 35, 241, 156,\n\t\t36, 47, 224, 90, 0, 189, 167, 73, 44, 235, 183, 158, 42, 96,\n\t\t103, 42, 35, 60, 62, 200, 237, 190, 152, 73, 137, 34, 4, 152,\n\t\t247, 169, 154, 46, 70, 35, 101, 39, 236, 173, 116, 69, 92,\n\t\t193, 130, 68, 22, 133, 127, 164, 12, 173, 121, 193, 219, 47,\n\t\t39, 94, 72, 126, 4, 243, 202, 125, 20, 47, 38, 206, 156, 88,\n\t\t112, 93, 175, 38, 214, 27, 169, 40, 57, 129, 218, 118, 128,\n\t\t106, 54, 231, 237, 146, 193, 239, 39, 206, 47, 38, 206, 238,\n\t\t166, 178, 95, 75, 29, 78, 94, 20, 162, 207, 231, 151, 177,\n\t\t130, 210, 252, 233, 45, 100, 252, 219, 197, 196, 107, 107,\n\t\t254, 238, 227, 231, 87, 140, 131, 39, 158, 58, 211, 151, 137,\n\t\t106, 58, 228, 209, 50, 236, 226, 155, 154, 4, 192, 183, 43,\n\t\t238, 213, 174, 150, 102, 120, 246, 227, 90, 97, 107, 194,\n\t\t110, 217, 165, 142, 85, 145, 208, 38, 250, 123, 60, 253, 201,\n\t\t155, 120, 58, 241, 235, 111, 105, 182, 51, 147, 128, 75, 155,\n\t\t128, 115, 163, 128, 83, 155, 128, 11, 163, 128, 231, 86, 1,\n\t\t170, 22, 198, 142, 76, 47, 97, 160, 164, 105, 212, 0, 67,\n\t\t98, 231, 52, 36, 163, 252, 227, 250, 28, 181, 64, 11, 135,\n\t\t196, 89, 95, 203, 71, 126, 60, 121, 77, 254, 191, 30, 11,\n\t\t236, 167, 247, 135, 119, 239, 63, 124, 127, 190, 36, 247,\n\t\t23, 70, 125, 207, 195, 16, 149, 156, 111, 100, 100, 189, 105,\n\t\t224, 254, 150, 36, 181, 26, 173, 231, 245, 123, 4, 141, 181,\n\t\t131, 55, 67, 107, 124, 49, 168, 111, 72, 97, 43, 97, 136,\n\t\t40, 123, 80, 164, 223, 18, 154, 183, 1, 115, 18, 161, 233,\n\t\t11, 128, 217, 253, 74, 208, 60, 139, 208, 244, 37, 107, 126,\n\t\t19, 226, 155, 0, 159, 70, 104, 186, 218, 207, 238, 11, 59,\n\t\t122, 203, 96, 95, 143, 208, 244, 74, 191, 18, 161, 137, 214,\n\t\t128, 75, 34, 175, 216, 213, 208, 234, 78, 91, 74, 95, 182,\n\t\t219, 35, 87, 215, 88, 21, 13, 184, 36, 38, 60, 44, 151, 93,\n\t\t191, 20, 124, 57, 130, 210, 47, 157, 146, 53, 130, 18, 1,\n\t\t29, 34, 14, 113, 206, 184, 125, 175, 250, 227, 187, 239, 206,\n\t\t9, 212, 114, 193, 32, 252, 237, 74, 251, 23, 92, 105, 223,\n\t\t33, 115, 55, 18, 88, 176, 47, 226, 166, 18, 213, 89, 69, 248,\n\t\t57, 147, 125, 68, 96, 183, 71, 73, 21, 215, 173, 245, 98,\n\t\t134, 59, 171, 4, 103, 177, 2, 160, 75, 112, 65, 143, 40, 96,\n\t\t27, 64, 2, 27, 174, 172, 196, 72, 107, 2, 84, 17, 107, 99,\n\t\t117, 93, 199, 240, 88, 145, 221, 130, 118, 68, 234, 97, 157,\n\t\t140, 88, 84, 136, 220, 45, 20, 48, 135, 34, 233, 243, 68,\n\t\t68, 172, 114, 101, 198, 191, 233, 72, 96, 88, 198, 138, 170,\n\t\t159, 149, 11, 139, 61, 116, 178, 232, 9, 221, 237, 198, 134,\n\t\t11, 222, 22, 137, 65, 210, 101, 49, 131, 44, 54, 169, 228,\n\t\t35, 51, 77, 129, 129, 143, 22, 156, 129, 208, 222, 174, 122,\n\t\t27, 188, 144, 235, 157, 160, 218, 32, 4, 105, 202, 92, 17,\n\t\t192, 168, 65, 109, 203, 48, 100, 216, 208, 115, 154, 20, 92,\n\t\t60, 248, 130, 207, 48, 169, 134, 98, 39, 41, 117, 4, 0, 229,\n\t\t86, 171, 127, 166, 202, 236, 190, 235, 190, 234, 211, 157,\n\t\t68, 137, 15, 164, 253, 46, 18, 90, 177, 107, 104, 69, 0, 173,\n\t\t231, 160, 22, 83, 83, 148, 186, 248, 48, 24, 206, 250, 60,\n\t\t31, 137, 5, 193, 112, 149, 70, 225, 46, 134, 184, 116, 81,\n\t\t78, 117, 137, 168, 219, 4, 79, 116, 102, 50, 98, 216, 116,\n\t\t109, 93, 45, 194, 180, 7, 195, 178, 106, 88, 66, 171, 202,\n\t\t101, 213, 245, 240, 231, 211, 29, 75, 34, 69, 162, 77, 204,\n\t\t221, 226, 142, 96, 205, 183, 17, 73, 118, 53, 89, 54, 95,\n\t\t169, 41, 10, 4, 81, 59, 201, 157, 201, 176, 56, 174, 18, 157,\n\t\t212, 24, 118, 27, 131, 97, 94, 169, 60, 128, 182, 161, 189,\n\t\t9, 20, 154, 2, 71, 193, 66, 23, 23, 170, 78, 219, 211, 29,\n\t\t83, 177, 41, 119, 34, 115, 113, 92, 199, 213, 56, 205, 180,\n\t\t50, 217, 93, 219, 186, 78, 160, 54, 183, 136, 167, 64, 30,\n\t\t155, 214, 208, 127, 143, 253, 197, 231, 219, 164, 242, 79,\n\t\t31, 47, 99, 36, 44, 23, 134, 94, 127, 163, 149, 191, 136,\n\t\t86, 182, 145, 128, 89, 170, 163, 135, 39, 221, 67, 21, 141,\n\t\t240, 210, 157, 38, 66, 81, 203, 53, 215, 35, 234, 62, 6, 90,\n\t\t101, 78, 211, 9, 247, 85, 17, 43, 168, 228, 51, 172, 122,\n\t\t231, 182, 68, 155, 252, 88, 29, 147, 28, 213, 227, 244, 47,\n\t\t107, 235, 86, 178, 119, 228, 220, 201, 253, 90, 80, 161, 88,\n\t\t154, 113, 157, 180, 71, 123, 178, 55, 184, 158, 203, 174,\n\t\t54, 181, 54, 144, 174, 170, 52, 217, 81, 93, 233, 196, 33,\n\t\t162, 91, 186, 232, 240, 150, 40, 231, 133, 211, 6, 120, 166,\n\t\t185, 214, 235, 17, 81, 9, 175, 13, 69, 107, 73, 210, 18, 235,\n\t\t94, 60, 25, 158, 197, 217, 57, 29, 158, 146, 212, 109, 120,\n\t\t107, 98, 236, 122, 194, 183, 217, 214, 242, 201, 228, 215,\n\t\t120, 219, 174, 67, 20, 116, 107, 78, 198, 178, 197, 252, 209,\n\t\t235, 2, 125, 212, 249, 214, 113, 243, 17, 33, 208, 66, 240,\n\t\t131, 14, 192, 52, 3, 250, 188, 7, 37, 198, 75, 93, 215, 60,\n\t\t175, 42, 4, 133, 29, 156, 216, 77, 37, 173, 75, 221, 66, 2,\n\t\t129, 31, 124, 83, 35, 236, 48, 161, 210, 41, 155, 115, 183,\n\t\t100, 157, 24, 16, 250, 39, 251, 64, 207, 9, 88, 3, 248, 4,\n\t\t153, 116, 210, 115, 46, 167, 161, 213, 25, 238, 181, 42, 57,\n\t\t171, 103, 29, 228, 194, 135, 187, 205, 180, 45, 151, 90, 241,\n\t\t175, 211, 20, 206, 166, 109, 15, 69, 53, 229, 219, 76, 111,\n\t\t52, 108, 157, 22, 165, 143, 234, 190, 187, 160, 111, 207,\n\t\t233, 209, 115, 208, 19, 154, 145, 29, 196, 30, 100, 104, 10,\n\t\t227, 169, 184, 41, 174, 227, 62, 214, 186, 5, 32, 90, 143,\n\t\t41, 219, 51, 75, 22, 72, 50, 159, 24, 94, 67, 70, 68, 193,\n\t\t22, 2, 65, 134, 90, 23, 176, 10, 114, 24, 134, 105, 81, 206,\n\t\t116, 116, 245, 54, 9, 125, 248, 243, 242, 112, 30, 151, 23,\n\t\t150, 11, 7, 243, 191, 209, 208, 95, 70, 67, 115, 64, 164,\n\t\t101, 174, 90, 54, 97, 57, 3, 172, 81, 174, 198, 226, 54, 0,\n\t\t85, 124, 55, 148, 198, 117, 15, 123, 69, 126, 173, 214, 199,\n\t\t129, 86, 78, 145, 249, 9, 99, 51, 133, 20, 25, 49, 129, 33,\n\t\t4, 194, 24, 48, 153, 90, 221, 187, 145, 140, 255, 202, 102,\n\t\t180, 190, 10, 103, 158, 131, 222, 248, 44, 49, 128, 99, 212,\n\t\t33, 223, 211, 126, 159, 162, 0, 162, 133, 193, 170, 221, 216,\n\t\t99, 223, 48, 39, 172, 174, 243, 82, 176, 26, 52, 219, 75,\n\t\t113, 125, 11, 215, 168, 123, 70, 124, 54, 130, 184, 94, 35,\n\t\t202, 246, 208, 39, 25, 136, 158, 40, 115, 157, 123, 191, 140,\n\t\t130, 188, 13, 26, 100, 146, 148, 229, 24, 135, 184, 125, 231,\n\t\t25, 80, 64, 37, 121, 148, 222, 158, 137, 36, 105, 239, 237,\n\t\t246, 184, 26, 114, 43, 229, 200, 230, 213, 225, 50, 93, 182,\n\t\t65, 40, 72, 11, 130, 83, 65, 111, 131, 182, 225, 106, 168,\n\t\t179, 243, 97, 55, 111, 170, 174, 114, 172, 86, 84, 216, 86,\n\t\t158, 220, 235, 163, 99, 177, 77, 146, 159, 137, 109, 125,\n\t\t189, 218, 247, 189, 45, 244, 237, 221, 254, 227, 199, 63,\n\t\t61, 124, 146, 116, 159, 23, 91, 158, 254, 182, 229, 127, 141,\n\t\t45, 15, 152, 3, 209, 17, 218, 85, 147, 223, 102, 199, 72,\n\t\t105, 62, 18, 201, 104, 41, 60, 119, 223, 190, 55, 195, 182,\n\t\t44, 225, 40, 117, 103, 180, 53, 117, 138, 204, 238, 20, 153,\n\t\t133, 191, 31, 197, 176, 46, 231, 183, 196, 28, 32, 229, 253,\n\t\t95, 215, 7, 61, 237, 238, 160, 137, 194, 162, 64, 162, 61,\n\t\t150, 165, 219, 198, 22, 174, 79, 239, 125, 61, 190, 229, 176,\n\t\t105, 213, 83, 86, 98, 115, 78, 61, 171, 183, 80, 150, 67,\n\t\t206, 108, 222, 122, 163, 137, 97, 6, 159, 183, 145, 108, 51,\n\t\t174, 244, 108, 90, 47, 93, 8, 136, 236, 172, 190, 23, 19,\n\t\t91, 73, 195, 88, 37, 39, 179, 230, 89, 184, 141, 237, 239,\n\t\t127, 184, 255, 254, 66, 255, 126, 153, 7, 241, 111, 136, 254,\n\t\t75, 16, 125, 100, 77, 20, 126, 40, 204, 115, 240, 63, 47,\n\t\t248, 61, 77, 73, 100, 170, 143, 61, 100, 173, 43, 89, 65,\n\t\t15, 131, 79, 20, 254, 231, 13, 175, 161, 200, 25, 252, 239,\n\t\t49, 2, 106, 110, 200, 39, 205, 16, 208, 95, 187, 26, 122,\n\t\t188, 88, 143, 199, 179, 37, 216, 61, 62, 155, 248, 219, 248,\n\t\t116, 255, 105, 217, 191, 191, 200, 18, 8, 203, 69, 156, 145,\n\t\t13, 163, 0, 71, 42, 1, 199, 216, 23, 137, 7, 178, 143, 5,\n\t\t143, 5, 69, 67, 156, 74, 40, 131, 78, 74, 247, 242, 131, 188,\n\t\t33, 81, 34, 94, 124, 3, 243, 249, 27, 255, 194, 176, 118,\n\t\t247, 243, 208, 246, 215, 246, 18, 32, 189, 192, 60, 138, 61,\n\t\t101, 193, 35, 127, 116, 101, 210, 55, 239, 129, 59, 16, 163,\n\t\t43, 24, 152, 202, 193, 68, 183, 16, 199, 217, 73, 29, 139,\n\t\t39, 160, 94, 229, 152, 134, 126, 170, 203, 164, 216, 227,\n\t\t110, 89, 229, 43, 49, 37, 93, 181, 75, 92, 77, 190, 52, 141,\n\t\t242, 115, 0, 19, 23, 166, 198, 244, 213, 37, 148, 5, 69, 84,\n\t\t221, 219, 169, 160, 165, 34, 199, 11, 130, 86, 215, 60, 196,\n\t\t45, 39, 201, 96, 46, 156, 139, 89, 67, 73, 104, 76, 227, 73,\n\t\t214, 252, 49, 166, 62, 235, 98, 248, 224, 182, 91, 44, 127,\n\t\t163, 122, 15, 251, 207, 171, 244, 154, 79, 7, 143, 110, 255,\n\t\t181, 230, 227, 238, 26, 234, 199, 86, 87, 90, 226, 131, 235,\n\t\t164, 130, 227, 43, 214, 118, 134, 175, 183, 183, 217, 79,\n\t\t239, 222, 127, 188, 216, 100, 23, 169, 56, 207, 200, 54, 129,\n\t\t108, 129, 95, 154, 138, 83, 118, 197, 91, 82, 113, 174, 187,\n\t\t227, 213, 240, 5, 219, 30, 121, 57, 21, 39, 111, 146, 159,\n\t\t155, 138, 211, 192, 227, 237, 191, 19, 250, 14, 48, 48, 216,\n\t\t231, 209, 11, 246, 246, 121, 78, 223, 79, 54, 207, 245, 172,\n\t\t152, 39, 124, 204, 196, 208, 178, 90, 91, 184, 193, 1, 40,\n\t\t50, 72, 168, 12, 177, 58, 32, 209, 121, 230, 68, 163, 74,\n\t\t156, 42, 26, 181, 212, 67, 44, 102, 120, 92, 170, 140, 240,\n\t\t13, 65, 230, 234, 245, 64, 106, 99, 119, 88, 219, 108, 154,\n\t\t75, 175, 91, 230, 42, 255, 116, 40, 48, 161, 68, 129, 57,\n\t\t135, 234, 24, 129, 193, 145, 124, 19, 178, 87, 65, 92, 44,\n\t\t160, 178, 116, 38, 9, 224, 2, 11, 23, 109, 240, 167, 100,\n\t\t220, 145, 68, 255, 98, 73, 189, 101, 49, 229, 149, 161, 50,\n\t\t170, 72, 74, 64, 83, 140, 223, 122, 213, 83, 171, 144, 152,\n\t\t137, 34, 137, 142, 86, 179, 243, 113, 253, 1, 180, 160, 198,\n\t\t28, 17, 73, 79, 150, 22, 187, 101, 60, 236, 152, 136, 168,\n\t\t60, 235, 69, 178, 157, 82, 6, 77, 91, 212, 37, 183, 54, 166,\n\t\t50, 106, 151, 240, 227, 147, 154, 36, 58, 147, 92, 245, 81,\n\t\t186, 106, 107, 87, 183, 247, 215, 241, 253, 187, 135, 203,\n\t\t253, 117, 17, 246, 254, 111, 251, 235, 183, 220, 95, 216,\n\t\t91, 106, 163, 7, 152, 53, 149, 92, 36, 246, 123, 214, 116,\n\t\t50, 242, 137, 61, 21, 40, 44, 171, 207, 217, 115, 95, 159,\n\t\t229, 198, 6, 4, 159, 1, 210, 212, 68, 124, 18, 208, 216, 132,\n\t\t110, 148, 120, 24, 8, 73, 131, 208, 156, 189, 118, 136, 21,\n\t\t37, 113, 124, 224, 207, 94, 198, 81, 180, 244, 157, 44, 118,\n\t\t155, 237, 233, 161, 113, 112, 34, 102, 255, 243, 33, 90, 13,\n\t\t45, 63, 169, 134, 153, 71, 168, 73, 116, 164, 134, 253, 38,\n\t\t63, 5, 204, 123, 254, 117, 123, 27, 243, 218, 137, 182, 239,\n\t\t112, 220, 70, 95, 70, 218, 11, 236, 189, 136, 72, 127, 194,\n\t\t130, 17, 179, 71, 110, 8, 85, 84, 237, 166, 26, 217, 226,\n\t\t247, 86, 238, 214, 184, 106, 217, 36, 108, 134, 90, 148, 246,\n\t\t141, 7, 168, 114, 119, 183, 26, 12, 131, 9, 57, 81, 204, 138,\n\t\t237, 251, 202, 60, 88, 201, 18, 55, 31, 240, 85, 15, 163,\n\t\t221, 65, 136, 205, 149, 49, 7, 215, 19, 4, 83, 144, 47, 209,\n\t\t148, 188, 101, 229, 70, 140, 117, 48, 224, 115, 0, 213, 57,\n\t\t30, 206, 222, 220, 45, 254, 138, 49, 75, 242, 197, 120, 107,\n\t\t101, 75, 92, 123, 122, 56, 31, 221, 97, 205, 69, 182, 102,\n\t\t37, 91, 220, 50, 124, 187, 239, 113, 54, 68, 203, 245, 210,\n\t\t74, 137, 185, 180, 118, 136, 101, 149, 102, 117, 218, 15,\n\t\t231, 5, 191, 9, 215, 186, 251, 18, 182, 245, 127, 45, 215,\n\t\t250, 204, 183, 245, 14, 243, 76, 45, 96, 161, 3, 250, 245,\n\t\t166, 69, 75, 19, 165, 191, 54, 214, 29, 47, 204, 102, 90,\n\t\t130, 70, 233, 108, 199, 186, 214, 29, 131, 165, 242, 237,\n\t\t138, 133, 28, 121, 219, 234, 105, 176, 41, 3, 149, 49, 108,\n\t\t146, 70, 84, 101, 111, 157, 128, 213, 124, 208, 91, 241, 151,\n\t\t188, 145, 22, 188, 107, 239, 89, 58, 94, 245, 240, 86, 104,\n\t\t213, 251, 166, 84, 211, 40, 251, 124, 38, 83, 2, 49, 192,\n\t\t228, 67, 175, 200, 197, 132, 221, 154, 248, 38, 245, 61, 26,\n\t\t215, 77, 234, 123, 212, 145, 216, 119, 232, 201, 246, 150,\n\t\t177, 250, 155, 101, 149, 48, 101, 112, 235, 38, 240, 253,\n\t\t227, 119, 83, 139, 95, 175, 108, 251, 72, 159, 183, 173, 23,\n\t\t125, 239, 197, 139, 151, 163, 145, 24, 180, 77, 162, 40, 180,\n\t\t101, 82, 56, 239, 126, 183, 209, 24, 223, 132, 167, 25, 1,\n\t\t109, 19, 70, 219, 133, 171, 129, 129, 109, 40, 87, 45, 251,\n\t\t30, 244, 45, 232, 27, 206, 55, 96, 60, 43, 184, 74, 103, 15,\n\t\t239, 191, 123, 136, 159, 94, 176, 148, 91, 222, 157, 26, 47,\n\t\t198, 42, 161, 239, 221, 100, 240, 205, 70, 128, 143, 63, 203,\n\t\t184, 240, 233, 14, 248, 172, 82, 3, 212, 14, 179, 47, 173,\n\t\t152, 19, 97, 25, 234, 56, 6, 36, 161, 173, 182, 2, 204, 45,\n\t\t245, 217, 67, 62, 196, 90, 36, 54, 124, 176, 207, 37, 22,\n\t\t72, 131, 154, 94, 73, 74, 116, 179, 216, 70, 130, 166, 202,\n\t\t238, 170, 215, 114, 211, 88, 7, 203, 12, 160, 161, 77, 137,\n\t\t249, 10, 44, 106, 171, 56, 122, 55, 91, 197, 96, 150, 137,\n\t\t107, 177, 155, 43, 158, 62, 91, 145, 25, 48, 218, 203, 35,\n\t\t63, 221, 17, 51, 130, 35, 140, 145, 90, 134, 182, 248, 0,\n\t\t124, 136, 231, 35, 204, 62, 180, 109, 96, 254, 101, 89, 199,\n\t\t227, 35, 148, 241, 208, 92, 7, 152, 215, 145, 61, 221, 149,\n\t\t58, 83, 153, 61, 20, 238, 73, 194, 46, 115, 143, 109, 235,\n\t\t49, 106, 151, 39, 5, 218, 115, 11, 249, 112, 209, 181, 244,\n\t\t88, 181, 71, 6, 65, 58, 220, 0, 144, 94, 139, 204, 231, 32,\n\t\t139, 247, 196, 124, 207, 28, 203, 186, 100, 241, 98, 85, 227,\n\t\t54, 232, 232, 163, 190, 88, 77, 239, 241, 217, 170, 242, 34,\n\t\t174, 99, 246, 33, 95, 13, 230, 123, 255, 227, 195, 167, 248,\n\t\t227, 225, 254, 195, 5, 107, 241, 110, 172, 142, 90, 196, 56,\n\t\t0, 169, 46, 197, 84, 246, 30, 106, 183, 187, 35, 199, 240,\n\t\t11, 101, 61, 122, 156, 26, 187, 105, 79, 25, 93, 169, 177,\n\t\t135, 119, 81, 201, 121, 243, 128, 114, 3, 8, 83, 120, 234,\n\t\t37, 249, 226, 55, 236, 171, 186, 116, 179, 179, 113, 2, 188,\n\t\t222, 54, 154, 77, 80, 244, 43, 207, 188, 158, 202, 193, 125,\n\t\t203, 192, 76, 188, 141, 148, 28, 100, 223, 141, 57, 221, 160,\n\t\t232, 32, 137, 207, 5, 142, 58, 141, 163, 16, 208, 20, 34,\n\t\t191, 155, 26, 205, 239, 251, 187, 213, 246, 18, 187, 250,\n\t\t56, 14, 114, 30, 10, 40, 21, 241, 178, 147, 235, 40, 55, 240,\n\t\t241, 59, 156, 72, 89, 53, 12, 77, 108, 138, 132, 156, 14,\n\t\t181, 115, 82, 65, 52, 66, 59, 20, 107, 156, 102, 98, 17, 211,\n\t\t158, 172, 137, 163, 228, 19, 84, 205, 102, 166, 212, 130,\n\t\t29, 230, 7, 159, 122, 158, 249, 114, 224, 19, 150, 105, 74,\n\t\t62, 176, 236, 103, 225, 29, 152, 224, 162, 228, 143, 129,\n\t\t65, 169, 236, 36, 30, 102, 62, 209, 68, 22, 63, 131, 61, 144,\n\t\t242, 234, 134, 228, 30, 62, 18, 208, 148, 145, 20, 83, 185,\n\t\t206, 192, 254, 244, 249, 219, 143, 23, 215, 173, 15, 151,\n\t\t241, 188, 215, 40, 122, 52, 74, 26, 1, 219, 72, 109, 161,\n\t\t21, 109, 138, 164, 190, 10, 17, 249, 175, 231, 4, 154, 228,\n\t\t149, 143, 44, 93, 237, 37, 162, 92, 12, 120, 172, 161, 234,\n\t\t39, 247, 26, 126, 172, 55, 183, 248, 65, 67, 25, 200, 100,\n\t\t230, 76, 25, 82, 15, 205, 215, 23, 75, 77, 93, 156, 226, 73,\n\t\t82, 216, 43, 115, 102, 32, 32, 139, 42, 89, 206, 110, 238,\n\t\t223, 187, 151, 222, 173, 115, 239, 219, 187, 246, 158, 237,\n\t\t121, 183, 120, 199, 218, 111, 244, 142, 181, 95, 113, 24,\n\t\t149, 152, 150, 51, 149, 208, 205, 182, 196, 47, 12, 215, 28,\n\t\t91, 166, 163, 130, 102, 30, 84, 134, 98, 22, 192, 111, 177,\n\t\t52, 224, 140, 154, 82, 79, 184, 192, 58, 148, 31, 84, 132,\n\t\t155, 182, 152, 197, 194, 114, 173, 62, 101, 221, 253, 31,\n\t\t77, 69, 39, 236, 145, 110, 134, 94, 213, 113, 139, 220, 237,\n\t\t172, 101, 99, 111, 21, 220, 194, 82, 58, 239, 30, 210, 212,\n\t\t100, 134, 71, 110, 6, 182, 90, 71, 156, 27, 159, 144, 221,\n\t\t125, 48, 63, 139, 162, 185, 236, 106, 136, 112, 104, 134,\n\t\t156, 226, 242, 46, 62, 123, 130, 146, 248, 116, 199, 216,\n\t\t59, 67, 25, 144, 52, 108, 168, 113, 172, 206, 136, 116, 101,\n\t\t75, 228, 86, 115, 250, 142, 237, 160, 62, 122, 144, 61, 217,\n\t\t25, 106, 171, 182, 242, 184, 246, 199, 221, 29, 13, 136, 167,\n\t\t59, 40, 66, 96, 43, 15, 188, 134, 166, 83, 40, 243, 162, 172,\n\t\t169, 126, 238, 182, 185, 67, 244, 217, 157, 171, 183, 222,\n\t\t162, 22, 53, 219, 174, 178, 201, 48, 195, 149, 210, 87, 255,\n\t\t211, 154, 10, 143, 175, 39, 113, 118, 92, 218, 42, 41, 248,\n\t\t229, 43, 8, 178, 155, 126, 20, 120, 73, 67, 62, 160, 209,\n\t\t61, 99, 243, 15, 188, 219, 5, 60, 131, 87, 114, 236, 43, 191,\n\t\t69, 43, 249, 212, 159, 174, 110, 226, 15, 15, 127, 122, 148,\n\t\t3, 227, 98, 31, 95, 4, 166, 62, 9, 14, 92, 81, 226, 242, 95,\n\t\t207, 12, 91, 74, 51, 135, 222, 43, 25, 86, 73, 152, 204, 156,\n\t\t38, 118, 97, 187, 204, 253, 174, 51, 107, 34, 142, 116, 71,\n\t\t236, 120, 45, 67, 45, 137, 206, 106, 105, 169, 101, 113, 30,\n\t\t31, 169, 33, 243, 97, 169, 12, 209, 22, 139, 27, 57, 141,\n\t\t80, 112, 79, 98, 179, 61, 66, 213, 132, 255, 47, 231, 224,\n\t\t121, 124, 150, 116, 231, 136, 44, 142, 65, 59, 70, 245, 247,\n\t\t168, 56, 44, 15, 208, 158, 233, 239, 49, 226, 16, 91, 113,\n\t\t76, 29, 212, 201, 14, 179, 133, 196, 17, 21, 151, 136, 167,\n\t\t181, 15, 113, 16, 27, 123, 130, 198, 79, 79, 119, 146, 153,\n\t\t183, 221, 210, 36, 206, 235, 9, 127, 203, 173, 148, 12, 111,\n\t\t73, 251, 2, 133, 37, 150, 44, 78, 50, 154, 205, 55, 31, 41,\n\t\t239, 227, 144, 76, 88, 57, 64, 230, 73, 184, 154, 196, 227,\n\t\t54, 32, 154, 107, 247, 38, 32, 215, 167, 227, 73, 82, 192,\n\t\t42, 60, 87, 193, 17, 146, 250, 197, 224, 136, 83, 247, 109,\n\t\t120, 176, 226, 95, 11, 158, 183, 128, 3, 35, 255, 10, 224,\n\t\t188, 33, 67, 207, 109, 120, 174, 122, 47, 61, 28, 14, 241,\n\t\t241, 112, 255, 120, 145, 88, 238, 187, 139, 11, 200, 70, 217,\n\t\t232, 78, 43, 37, 9, 167, 80, 36, 130, 247, 210, 210, 212,\n\t\t208, 196, 53, 85, 204, 21, 194, 144, 114, 201, 18, 159, 234,\n\t\t228, 35, 50, 105, 192, 9, 154, 194, 218, 40, 3, 73, 211, 204,\n\t\t125, 52, 248, 124, 147, 128, 12, 26, 101, 87, 163, 96, 13,\n\t\t137, 252, 209, 215, 55, 197, 116, 102, 102, 44, 204, 254,\n\t\t142, 64, 226, 123, 185, 172, 230, 65, 222, 123, 244, 238,\n\t\t189, 119, 127, 45, 56, 4, 32, 122, 46, 254, 186, 91, 252,\n\t\t45, 111, 197, 123, 247, 206, 189, 111, 107, 131, 119, 99,\n\t\t73, 181, 132, 145, 247, 48, 48, 13, 58, 52, 207, 60, 40, 42,\n\t\t163, 62, 83, 147, 44, 129, 83, 67, 89, 100, 141, 20, 37, 209,\n\t\t79, 220, 22, 171, 24, 103, 81, 36, 122, 87, 166, 57, 50, 245,\n\t\t208, 53, 80, 48, 90, 0, 97, 113, 53, 21, 64, 244, 153, 79,\n\t\t32, 88, 96, 104, 84, 14, 152, 26, 191, 188, 130, 70, 42, 162,\n\t\t169, 62, 185, 149, 52, 190, 57, 179, 143, 132, 7, 170, 30,\n\t\t206, 183, 74, 235, 178, 151, 44, 4, 78, 37, 11, 195, 129,\n\t\t100, 81, 109, 198, 176, 88, 197, 228, 67, 18, 31, 191, 241,\n\t\t116, 87, 144, 165, 76, 92, 120, 205, 37, 105, 191, 132, 5,\n\t\t14, 177, 39, 232, 18, 224, 170, 161, 171, 191, 167, 241, 27,\n\t\t101, 104, 184, 11, 180, 144, 61, 48, 83, 27, 185, 75, 252,\n\t\t226, 62, 75, 160, 162, 209, 76, 68, 64, 153, 45, 180, 169,\n\t\t1, 120, 10, 138, 52, 119, 196, 44, 35, 177, 208, 52, 18, 202,\n\t\t159, 82, 145, 16, 38, 204, 19, 106, 148, 141, 130, 143, 254,\n\t\t149, 5, 31, 137, 117, 182, 22, 20, 222, 68, 218, 202, 110,\n\t\t233, 69, 2, 56, 249, 172, 2, 246, 36, 234, 237, 46, 129, 157,\n\t\t214, 71, 168, 53, 129, 30, 76, 160, 33, 64, 90, 202, 138,\n\t\t160, 93, 85, 5, 2, 134, 4, 142, 153, 40, 177, 130, 68, 24,\n\t\t171, 168, 126, 207, 85, 140, 115, 155, 56, 107, 67, 73, 83,\n\t\t29, 67, 37, 188, 17, 14, 13, 57, 34, 106, 22, 102, 49, 168,\n\t\t74, 80, 176, 37, 135, 19, 221, 140, 220, 19, 229, 18, 114,\n\t\t42, 93, 46, 22, 78, 139, 170, 170, 127, 51, 179, 27, 67, 2,\n\t\t149, 212, 172, 49, 223, 65, 8, 2, 239, 120, 33, 65, 200, 132,\n\t\t131, 41, 103, 169, 58, 103, 89, 132, 97, 9, 56, 141, 35, 53,\n\t\t9, 29, 230, 5, 141, 246, 54, 254, 69, 85, 14, 178, 194, 98,\n\t\t117, 70, 162, 188, 59, 169, 27, 219, 13, 199, 228, 143, 63,\n\t\t254, 229, 197, 96, 169, 223, 205, 203, 132, 207, 191, 181,\n\t\t99, 232, 179, 36, 208, 191, 212, 147, 245, 21, 95, 218, 241,\n\t\t115, 124, 105, 159, 118, 119, 165, 149, 84, 42, 72, 80, 216,\n\t\t70, 117, 137, 18, 235, 9, 245, 234, 29, 112, 76, 181, 213,\n\t\t100, 52, 210, 237, 215, 170, 71, 236, 167, 181, 100, 137,\n\t\t3, 19, 225, 212, 56, 56, 188, 197, 7, 49, 46, 144, 206, 160,\n\t\t21, 128, 4, 142, 235, 75, 14, 125, 74, 24, 250, 32, 217, 50,\n\t\t42, 5, 40, 51, 233, 191, 189, 21, 125, 90, 170, 80, 96, 201,\n\t\t115, 56, 82, 47, 189, 136, 132, 208, 152, 118, 205, 158, 234,\n\t\t148, 72, 59, 148, 122, 31, 101, 193, 4, 165, 116, 185, 166,\n\t\t152, 141, 97, 46, 105, 180, 42, 76, 98, 154, 121, 224, 246,\n\t\t60, 210, 200, 189, 89, 250, 158, 52, 107, 205, 194, 150, 173,\n\t\t49, 16, 211, 16, 242, 197, 191, 105, 132, 188, 38, 119, 177,\n\t\t245, 16, 97, 36, 168, 84, 52, 34, 23, 148, 178, 196, 146,\n\t\t6, 129, 216, 186, 107, 4, 65, 224, 222, 155, 168, 140, 113,\n\t\t32, 170, 165, 60, 89, 64, 126, 204, 83, 50, 186, 206, 218,\n\t\t67, 75, 93, 125, 237, 11, 164, 1, 84, 53, 241, 200, 0, 227,\n\t\t201, 135, 63, 47, 145, 134, 229, 44, 17, 130, 48, 65, 93,\n\t\t135, 52, 116, 162, 23, 140, 156, 178, 164, 120, 144, 192,\n\t\t124, 99, 72, 172, 17, 211, 198, 21, 77, 92, 209, 71, 66, 137,\n\t\t122, 104, 5, 187, 165, 96, 106, 85, 66, 86, 213, 150, 6, 161,\n\t\t154, 171, 151, 41, 49, 142, 58, 182, 38, 183, 182, 88, 219,\n\t\t162, 145, 196, 74, 160, 52, 106, 35, 137, 232, 38, 131, 32,\n\t\t174, 158, 53, 74, 15, 76, 137, 22, 209, 203, 192, 113, 128,\n\t\t41, 147, 45, 42, 30, 166, 180, 11, 72, 254, 4, 173, 65, 21,\n\t\t248, 204, 42, 170, 251, 241, 176, 103, 107, 65, 79, 121, 116,\n\t\t9, 186, 199, 212, 8, 37, 238, 61, 216, 181, 183, 24, 252,\n\t\t199, 146, 104, 32, 201, 61, 22, 241, 10, 93, 223, 245, 135,\n\t\t143, 143, 15, 239, 226, 114, 255, 227, 231, 247, 31, 63, 92,\n\t\t42, 121, 49, 223, 111, 161, 223, 232, 106, 50, 177, 147, 108,\n\t\t162, 47, 93, 201, 16, 180, 87, 111, 100, 182, 12, 162, 103,\n\t\t206, 254, 114, 59, 74, 149, 191, 191, 150, 192, 75, 147, 137,\n\t\t152, 92, 123, 230, 235, 111, 145, 45, 253, 186, 229, 194,\n\t\t215, 95, 95, 126, 197, 215, 159, 52, 110, 41, 181, 52, 3,\n\t\t20, 117, 36, 240, 136, 74, 126, 103, 33, 50, 171, 95, 162,\n\t\t136, 4, 187, 26, 67, 187, 16, 89, 221, 129, 13, 58, 38, 9,\n\t\t114, 87, 204, 18, 103, 45, 105, 102, 180, 147, 121, 223, 226,\n\t\t38, 181, 2, 136, 5, 127, 103, 38, 172, 155, 179, 224, 106,\n\t\t46, 141, 202, 155, 249, 101, 158, 43, 164, 14, 238, 180, 40,\n\t\t46, 105, 224, 54, 213, 235, 133, 131, 171, 2, 35, 157, 58,\n\t\t156, 200, 171, 187, 197, 93, 212, 36, 135, 238, 116, 189,\n\t\t166, 95, 128, 121, 1, 111, 74, 176, 104, 83, 44, 13, 130,\n\t\t156, 176, 53, 76, 180, 164, 13, 69, 93, 2, 23, 191, 6, 21,\n\t\t248, 13, 110, 135, 127, 187, 47, 20, 8, 233, 233, 142, 138,\n\t\t184, 185, 217, 76, 155, 82, 237, 77, 19, 109, 70, 88, 174,\n\t\t139, 148, 105, 61, 159, 102, 159, 228, 221, 27, 103, 217,\n\t\t102, 230, 141, 179, 60, 253, 82, 118, 157, 101, 211, 203,\n\t\t92, 76, 178, 204, 177, 168, 50, 108, 142, 5, 75, 78, 231,\n\t\t216, 124, 71, 95, 157, 99, 187, 127, 93, 231, 88, 85, 91,\n\t\t50, 197, 217, 174, 100, 95, 153, 226, 171, 105, 134, 63, 126,\n\t\t251, 255, 60, 44, 159, 227, 247, 159, 62, 94, 132, 202, 69,\n\t\t234, 78, 4, 106, 206, 161, 136, 1, 0, 179, 104, 181, 237,\n\t\t225, 86, 250, 149, 254, 134, 228, 138, 29, 111, 229, 86, 20,\n\t\t155, 177, 124, 140, 240, 107, 180, 214, 241, 170, 124, 135,\n\t\t71, 30, 88, 4, 188, 149, 127, 242, 122, 59, 253, 214, 204,\n\t\t0, 238, 121, 76, 240, 101, 173, 220, 158, 95, 139, 200, 98,\n\t\t214, 165, 106, 122, 103, 121, 180, 95, 42, 109, 20, 242, 177,\n\t\t224, 78, 172, 244, 162, 153, 149, 210, 200, 82, 250, 188,\n\t\t144, 114, 104, 228, 179, 245, 107, 46, 225, 155, 177, 235,\n\t\t77, 115, 40, 83, 192, 2, 75, 125, 73, 207, 130, 44, 218, 120,\n\t\t115, 109, 172, 162, 187, 88, 90, 189, 8, 157, 240, 150, 151,\n\t\t131, 229, 134, 108, 176, 21, 247, 113, 188, 40, 223, 159,\n\t\t84, 114, 183, 0, 237, 234, 2, 106, 238, 229, 58, 180, 21,\n\t\t247, 131, 158, 238, 36, 111, 220, 224, 153, 229, 177, 18,\n\t\t29, 65, 166, 144, 232, 233, 174, 244, 22, 32, 91, 73, 21,\n\t\t219, 239, 55, 140, 175, 139, 186, 142, 155, 186, 202, 59,\n\t\t24, 197, 248, 233, 195, 203, 52, 227, 194, 134, 236, 52, 57,\n\t\t26, 5, 148, 124, 233, 50, 231, 249, 246, 58, 223, 198, 242,\n\t\t55, 236, 123, 89, 59, 164, 183, 161, 224, 205, 214, 110, 83,\n\t\t17, 218, 199, 49, 142, 66, 72, 254, 10, 221, 241, 60, 222,\n\t\t222, 134, 95, 78, 179, 120, 6, 111, 209, 172, 91, 9, 155,\n\t\t223, 178, 156, 170, 73, 219, 143, 113, 179, 183, 47, 238,\n\t\t76, 85, 127, 47, 81, 72, 177, 230, 28, 47, 144, 72, 53, 215,\n\t\t62, 165, 134, 204, 30, 87, 188, 160, 156, 146, 31, 166, 189,\n\t\t97, 214, 222, 188, 132, 63, 11, 141, 223, 188, 195, 36, 164,\n\t\t16, 210, 37, 149, 175, 153, 152, 202, 191, 21, 182, 157, 34,\n\t\t253, 24, 183, 187, 188, 189, 48, 111, 216, 23, 92, 137, 59,\n\t\t100, 130, 117, 171, 195, 55, 97, 47, 79, 68, 165, 151, 38,\n\t\t130, 228, 8, 57, 43, 190, 26, 234, 245, 243, 251, 229, 143,\n\t\t127, 137, 31, 62, 126, 62, 183, 36, 64, 186, 48, 82, 60, 201,\n\t\t91, 74, 35, 204, 153, 198, 180, 11, 32, 179, 93, 93, 45, 86,\n\t\t89, 140, 210, 224, 230, 231, 166, 181, 7, 150, 95, 199, 96,\n\t\t201, 95, 190, 128, 166, 141, 90, 13, 116, 37, 202, 239, 106,\n\t\t152, 171, 175, 207, 237, 245, 181, 100, 31, 197, 227, 31,\n\t\t110, 89, 223, 150, 10, 105, 174, 194, 219, 107, 137, 79, 111,\n\t\t36, 96, 149, 174, 114, 123, 218, 137, 246, 11, 116, 224, 135,\n\t\t51, 179, 219, 125, 60, 183, 191, 213, 112, 111, 165, 141,\n\t\t53, 151, 170, 192, 162, 43, 172, 214, 167, 175, 221, 121,\n\t\t241, 145, 136, 88, 184, 250, 45, 233, 248, 194, 6, 4, 233,\n\t\t221, 169, 68, 76, 52, 110, 229, 151, 197, 188, 220, 52, 116,\n\t\t150, 187, 163, 55, 24, 68, 115, 99, 55, 150, 68, 186, 123,\n\t\t117, 57, 104, 28, 233, 250, 122, 97, 126, 186, 43, 26, 143,\n\t\t252, 181, 116, 130, 187, 35, 41, 13, 186, 1, 139, 156, 241,\n\t\t132, 183, 210, 26, 102, 203, 188, 253, 74, 90, 67, 73, 132,\n\t\t80, 71, 24, 175, 167, 55, 212, 38, 252, 215, 184, 253, 100,\n\t\t49, 255, 242, 248, 114, 24, 174, 33, 202, 254, 227, 79, 159,\n\t\t190, 63, 92, 230, 68, 196, 122, 213, 147, 118, 72, 132, 204,\n\t\t172, 26, 42, 23, 173, 199, 20, 115, 39, 13, 214, 45, 215,\n\t\t243, 186, 215, 49, 143, 165, 81, 154, 147, 169, 25, 177, 172,\n\t\t93, 40, 172, 191, 2, 246, 68, 165, 133, 211, 234, 251, 219,\n\t\t23, 85, 183, 9, 112, 105, 47, 50, 187, 39, 20, 248, 250, 117,\n\t\t153, 72, 220, 62, 190, 2, 110, 145, 161, 163, 115, 104, 121,\n\t\t108, 209, 7, 231, 99, 91, 135, 238, 99, 139, 39, 213, 247,\n\t\t241, 198, 245, 217, 13, 176, 120, 88, 95, 62, 57, 36, 199,\n\t\t62, 101, 141, 146, 7, 25, 82, 67, 8, 181, 167, 146, 91, 11,\n\t\t81, 140, 245, 80, 92, 251, 233, 145, 191, 12, 76, 165, 75,\n\t\t110, 227, 17, 96, 208, 158, 133, 28, 83, 250, 107, 206, 7,\n\t\t105, 65, 220, 196, 75, 102, 222, 93, 80, 65, 43, 63, 202,\n\t\t151, 232, 77, 68, 111, 120, 143, 55, 34, 229, 238, 239, 63,\n\t\t188, 139, 159, 62, 46, 127, 188, 64, 206, 45, 236, 120, 30,\n\t\t105, 48, 3, 211, 70, 154, 52, 22, 26, 105, 32, 72, 50, 216,\n\t\t94, 53, 184, 4, 20, 189, 132, 17, 211, 130, 181, 160, 245,\n\t\t52, 1, 224, 40, 86, 93, 68, 154, 68, 165, 90, 154, 84, 201,\n\t\t32, 60, 186, 168, 73, 68, 19, 26, 167, 68, 121, 68, 181, 181,\n\t\t106, 157, 14, 140, 200, 163, 84, 205, 76, 92, 27, 46, 145,\n\t\t204, 199, 65, 194, 153, 72, 174, 226, 52, 85, 159, 9, 35,\n\t\t169, 69, 192, 90, 66, 40, 119, 106, 210, 169, 101, 65, 136,\n\t\t167, 57, 18, 236, 143, 167, 89, 18, 226, 92, 73, 166, 192,\n\t\t36, 177, 171, 222, 24, 18, 16, 180, 128, 51, 97, 6, 49, 252,\n\t\t5, 205, 82, 138, 146, 205, 247, 192, 104, 216, 33, 140, 154,\n\t\t242, 0, 16, 123, 30, 65, 106, 132, 212, 52, 59, 201, 84, 52,\n\t\t173, 152, 52, 235, 128, 23, 140, 154, 90, 41, 227, 88, 53,\n\t\t207, 205, 34, 193, 231, 9, 123, 15, 68, 106, 51, 57, 80, 163,\n\t\t2, 79, 115, 142, 232, 32, 222, 42, 11, 36, 113, 115, 14, 181,\n\t\t202, 130, 180, 146, 42, 228, 30, 70, 79, 50, 159, 0, 57, 181,\n\t\t14, 146, 138, 36, 215, 190, 91, 144, 103, 122, 138, 37, 100,\n\t\t238, 80, 66, 31, 122, 237, 84, 64, 19, 84, 64, 30, 169, 20,\n\t\t177, 174, 144, 60, 69, 68, 75, 193, 36, 183, 93, 48, 82, 27,\n\t\t36, 254, 194, 18, 116, 24, 178, 94, 243, 205, 145, 134, 120,\n\t\t143, 96, 73, 117, 244, 249, 36, 231, 31, 136, 157, 31, 75,\n\t\t152, 188, 254, 18, 45, 159, 18, 175, 67, 21, 255, 40, 77,\n\t\t102, 196, 84, 55, 181, 222, 186, 100, 160, 141, 35, 89, 2,\n\t\t238, 158, 160, 149, 60, 53, 245, 133, 254, 237, 99, 95, 164,\n\t\t66, 155, 234, 140, 46, 174, 228, 154, 172, 26, 90, 128, 118,\n\t\t196, 198, 83, 176, 211, 158, 72, 188, 160, 164, 43, 65, 154,\n\t\t147, 158, 142, 145, 201, 6, 142, 254, 229, 93, 82, 78, 164,\n\t\t217, 115, 11, 165, 82, 25, 43, 109, 120, 0, 117, 237, 180,\n\t\t247, 66, 199, 72, 140, 62, 202, 184, 61, 235, 212, 155, 59,\n\t\t239, 180, 170, 131, 229, 173, 113, 102, 185, 171, 209, 129,\n\t\t118, 162, 179, 145, 130, 216, 197, 128, 119, 42, 121, 14,\n\t\t184, 57, 61, 26, 214, 78, 229, 16, 204, 173, 73, 143, 35,\n\t\t101, 40, 173, 7, 72, 189, 73, 50, 226, 44, 9, 162, 67, 73,\n\t\t154, 176, 61, 118, 137, 50, 65, 93, 46, 114, 114, 65, 148,\n\t\t88, 237, 148, 155, 134, 55, 156, 5, 90, 24, 41, 235, 141,\n\t\t154, 23, 0, 166, 220, 58, 29, 243, 145, 32, 33, 118, 199,\n\t\t8, 201, 133, 101, 147, 54, 106, 63, 155, 52, 219, 16, 74,\n\t\t69, 121, 155, 87, 49, 24, 236, 36, 186, 235, 150, 70, 87,\n\t\t231, 58, 85, 170, 78, 62, 13, 234, 65, 183, 97, 148, 125,\n\t\t152, 197, 101, 131, 244, 150, 41, 219, 77, 250, 52, 115, 4,\n\t\t108, 137, 196, 75, 206, 11, 152, 232, 64, 147, 28, 217, 114,\n\t\t243, 178, 71, 204, 199, 158, 114, 111, 208, 141, 111, 4, 30,\n\t\t171, 100, 106, 193, 150, 114, 159, 16, 186, 48, 214, 16, 202,\n\t\t72, 88, 15, 70, 183, 132, 108, 85, 73, 0, 38, 9, 117, 121,\n\t\t205, 202, 148, 88, 67, 114, 193, 5, 35, 97, 238, 235, 35,\n\t\t214, 84, 91, 169, 199, 156, 50, 73, 107, 183, 9, 247, 75,\n\t\t198, 101, 88, 47, 140, 60, 78, 146, 150, 118, 76, 181, 135,\n\t\t82, 106, 42, 117, 46, 98, 252, 215, 248, 116, 108, 133, 193,\n\t\t239, 85, 239, 33, 37, 44, 83, 153, 101, 43, 104, 77, 146,\n\t\t89, 28, 35, 20, 72, 181, 209, 114, 26, 242, 92, 130, 186,\n\t\t72, 0, 243, 245, 42, 170, 148, 132, 72, 98, 61, 34, 149, 228,\n\t\t30, 180, 181, 118, 96, 122, 15, 67, 206, 139, 146, 211, 172,\n\t\t202, 124, 145, 220, 252, 1, 105, 176, 242, 8, 45, 97, 31,\n\t\t106, 196, 160, 230, 93, 133, 105, 157, 218, 228, 74, 9, 115,\n\t\t152, 76, 65, 251, 110, 225, 131, 35, 23, 101, 222, 248, 76,\n\t\t234, 179, 48, 114, 66, 175, 186, 188, 185, 129, 220, 187,\n\t\t81, 129, 118, 144, 204, 234, 204, 54, 180, 145, 8, 170, 184,\n\t\t77, 34, 99, 18, 78, 79, 59, 66, 73, 13, 55, 32, 21, 62, 81,\n\t\t24, 40, 154, 35, 204, 34, 137, 196, 36, 91, 191, 222, 186,\n\t\t106, 26, 20, 230, 72, 36, 79, 74, 211, 84, 52, 13, 83, 30,\n\t\t37, 140, 52, 58, 228, 121, 4, 150, 199, 138, 58, 5, 136, 17,\n\t\t29, 211, 0, 172, 60, 179, 18, 200, 125, 96, 162, 92, 75, 96,\n\t\t6, 103, 20, 90, 196, 160, 27, 91, 160, 145, 96, 182, 18, 38,\n\t\t166, 82, 75, 13, 53, 39, 164, 14, 1, 36, 57, 189, 248, 113,\n\t\t80, 207, 125, 183, 16, 106, 156, 118, 96, 218, 66, 85, 178,\n\t\t234, 139, 199, 24, 66, 154, 133, 218, 86, 208, 184, 203, 54,\n\t\t5, 179, 249, 140, 124, 186, 43, 115, 242, 137, 26, 160, 48,\n\t\t19, 213, 15, 167, 139, 170, 11, 205, 144, 35, 165, 73, 114,\n\t\t119, 99, 9, 180, 24, 83, 229, 234, 215, 11, 162, 58, 253,\n\t\t102, 13, 32, 81, 242, 88, 73, 28, 147, 205, 151, 233, 106,\n\t\t211, 27, 209, 151, 168, 171, 215, 133, 118, 132, 74, 9, 134,\n\t\t240, 137, 220, 107, 134, 19, 40, 90, 42, 173, 148, 173, 96,\n\t\t3, 130, 223, 26, 66, 94, 126, 29, 32, 198, 224, 99, 238, 21,\n\t\t24, 42, 213, 23, 97, 208, 139, 216, 95, 161, 255, 221, 17,\n\t\t106, 121, 9, 0, 80, 0, 138, 229, 36, 145, 130, 13, 0, 204,\n\t\t45, 209, 36, 227, 186, 116, 157, 48, 39, 217, 42, 130, 28,\n\t\t146, 204, 14, 103, 202, 69, 82, 223, 36, 28, 5, 15, 114, 239,\n\t\t140, 125, 50, 41, 99, 210, 38, 145, 77, 75, 215, 196, 114,\n\t\t208, 179, 230, 90, 26, 98, 164, 193, 92, 130, 216, 148, 76,\n\t\t245, 97, 150, 168, 80, 153, 234, 1, 128, 183, 189, 140, 17,\n\t\t82, 155, 125, 143, 25, 210, 196, 3, 115, 81, 18, 105, 31,\n\t\t70, 170, 85, 178, 163, 155, 81, 13, 36, 130, 206, 199, 75,\n\t\t163, 33, 33, 209, 36, 255, 148, 63, 23, 146, 131, 225, 54,\n\t\t65, 124, 92, 222, 63, 62, 126, 252, 116, 41, 106, 245, 103,\n\t\t238, 72, 133, 121, 73, 74, 179, 106, 80, 155, 222, 53, 19,\n\t\t20, 149, 132, 114, 220, 53, 18, 127, 118, 241, 45, 168, 69,\n\t\t169, 132, 0, 2, 69, 142, 149, 66, 41, 67, 109, 60, 71, 124,\n\t\t44, 40, 19, 75, 121, 132, 86, 37, 33, 196, 62, 142, 158, 90,\n\t\t161, 97, 55, 122, 102, 131, 64, 204, 38, 106, 158, 166, 78,\n\t\t146, 70, 139, 50, 239, 20, 202, 169, 224, 20, 239, 65, 217,\n\t\t243, 252, 75, 153, 45, 88, 165, 50, 219, 65, 178, 96, 73,\n\t\t125, 60, 196, 174, 233, 204, 132, 27, 235, 131, 73, 96, 25,\n\t\t38, 19, 80, 234, 132, 42, 36, 100, 98, 97, 131, 132, 245,\n\t\t33, 72, 147, 144, 194, 172, 226, 153, 36, 25, 90, 138, 230,\n\t\t141, 162, 94, 52, 148, 84, 165, 41, 44, 228, 200, 133, 235,\n\t\t53, 230, 115, 249, 156, 206, 128, 7, 224, 217, 18, 206, 141,\n\t\t121, 204, 54, 22, 166, 9, 181, 66, 40, 57, 213, 218, 164,\n\t\t129, 193, 11, 73, 37, 205, 89, 80, 238, 34, 161, 15, 166,\n\t\t29, 189, 32, 241, 121, 60, 89, 48, 225, 141, 89, 177, 46,\n\t\t232, 122, 43, 0, 61, 105, 120, 74, 197, 5, 137, 153, 0, 230,\n\t\t220, 214, 130, 218, 197, 8, 142, 17, 186, 166, 158, 85, 97,\n\t\t94, 178, 13, 20, 153, 105, 21, 155, 169, 158, 106, 237, 26,\n\t\t112, 163, 75, 78, 176, 70, 169, 86, 166, 106, 140, 110, 210,\n\t\t187, 48, 125, 77, 194, 9, 77, 181, 41, 102, 162, 217, 72,\n\t\t227, 136, 229, 49, 196, 8, 166, 163, 164, 133, 147, 204, 124,\n\t\t5, 214, 18, 203, 104, 194, 71, 11, 246, 67, 207, 154, 245,\n\t\t195, 179, 152, 65, 66, 161, 70, 98, 111, 0, 189, 247, 144,\n\t\t19, 98, 173, 60, 39, 137, 16, 71, 13, 204, 67, 49, 113, 61,\n\t\t240, 25, 148, 51, 4, 84, 6, 127, 183, 140, 84, 53, 75, 160,\n\t\t36, 209, 212, 51, 167, 55, 148, 64, 3, 160, 49, 22, 229, 25,\n\t\t122, 234, 131, 197, 87, 153, 9, 16, 25, 150, 70, 47, 226,\n\t\t251, 136, 192, 167, 16, 166, 74, 154, 22, 81, 178, 59, 74,\n\t\t36, 78, 234, 135, 56, 135, 88, 17, 86, 37, 54, 32, 150, 72,\n\t\t60, 63, 85, 101, 209, 196, 7, 48, 74, 10, 48, 49, 30, 183,\n\t\t102, 41, 213, 220, 7, 28, 36, 186, 64, 35, 77, 162, 216, 168,\n\t\t75, 68, 219, 86, 237, 98, 27, 197, 46, 37, 50, 59, 35, 110,\n\t\t101, 53, 141, 62, 166, 122, 48, 22, 17, 114, 172, 100, 39,\n\t\t102, 116, 194, 37, 138, 145, 184, 72, 23, 33, 75, 106, 12,\n\t\t13, 171, 219, 169, 73, 206, 177, 220, 122, 25, 135, 8, 173,\n\t\t137, 253, 149, 24, 242, 139, 162, 134, 187, 165, 34, 227,\n\t\t100, 94, 53, 214, 108, 60, 111, 225, 57, 146, 0, 157, 51,\n\t\t33, 242, 46, 166, 38, 134, 227, 7, 168, 204, 237, 116, 113,\n\t\t82, 234, 163, 226, 194, 156, 136, 152, 182, 98, 226, 149,\n\t\t146, 16, 9, 146, 247, 142, 201, 112, 99, 54, 99, 45, 248,\n\t\t127, 217, 123, 243, 228, 184, 141, 103, 93, 244, 127, 172,\n\t\t2, 27, 64, 157, 154, 135, 136, 19, 103, 7, 92, 4, 5, 241,\n\t\t231, 86, 92, 72, 242, 83, 219, 237, 119, 184, 250, 27, 249,\n\t\t101, 102, 1, 61, 176, 187, 73, 139, 182, 172, 235, 176, 21,\n\t\t108, 20, 128, 170, 66, 13, 89, 57, 126, 233, 56, 203, 223,\n\t\t1, 22, 52, 112, 73, 183, 137, 186, 171, 36, 80, 146, 52, 192,\n\t\t153, 77, 136, 69, 7, 19, 69, 103, 120, 101, 183, 61, 249,\n\t\t185, 115, 213, 207, 43, 237, 167, 26, 180, 74, 174, 237, 208,\n\t\t143, 136, 155, 205, 250, 138, 88, 30, 164, 193, 179, 96, 225,\n\t\t92, 210, 83, 59, 115, 238, 66, 249, 185, 243, 245, 66, 163,\n\t\t222, 185, 163, 70, 83, 44, 183, 26, 29, 164, 69, 219, 91,\n\t\t204, 246, 98, 139, 183, 41, 247, 242, 233, 249, 241, 12, 163,\n\t\t215, 167, 107, 134, 194, 148, 77, 166, 179, 131, 168, 92,\n\t\t170, 196, 227, 103, 76, 179, 107, 38, 86, 102, 233, 131, 163,\n\t\t99, 41, 122, 97, 2, 181, 32, 19, 207, 93, 220, 97, 114, 62,\n\t\t26, 87, 28, 219, 76, 138, 163, 109, 184, 0, 169, 51, 129,\n\t\t151, 47, 149, 211, 104, 149, 26, 60, 45, 74, 230, 16, 105,\n\t\t239, 193, 249, 69, 14, 175, 169, 210, 25, 231, 139, 22, 236,\n\t\t152, 73, 78, 30, 193, 23, 180, 240, 199, 30, 124, 225, 60,\n\t\t162, 33, 51, 199, 73, 196, 202, 12, 111, 104, 38, 150, 156,\n\t\t199, 90, 249, 255, 157, 3, 10, 110, 91, 28, 73, 226, 97, 68,\n\t\t156, 68, 203, 198, 70, 56, 226, 72, 120, 41, 7, 149, 30, 7,\n\t\t143, 30, 32, 136, 82, 171, 165, 245, 246, 146, 164, 91, 218,\n\t\t249, 22, 76, 115, 101, 246, 28, 70, 21, 139, 177, 172, 68,\n\t\t50, 190, 248, 52, 102, 43, 209, 154, 116, 76, 249, 230, 158,\n\t\t17, 146, 225, 242, 161, 100, 28, 253, 16, 77, 74, 77, 172,\n\t\t142, 114, 156, 231, 18, 28, 190, 99, 14, 218, 23, 112, 239,\n\t\t14, 58, 0, 164, 198, 243, 113, 65, 202, 161, 144, 234, 232,\n\t\t73, 170, 32, 158, 27, 218, 160, 144, 199, 140, 179, 128, 223,\n\t\t128, 94, 199, 89, 62, 166, 136, 79, 97, 249, 147, 11, 118,\n\t\t147, 244, 124, 152, 123, 104, 137, 5, 166, 229, 38, 192, 100,\n\t\t170, 135, 169, 170, 186, 135, 56, 97, 98, 92, 18, 116, 77,\n\t\t200, 122, 9, 236, 36, 146, 3, 138, 155, 129, 121, 139, 125,\n\t\t18, 189, 201, 62, 11, 152, 55, 0, 63, 144, 17, 112, 138, 21,\n\t\t199, 16, 66, 149, 82, 114, 21, 199, 137, 175, 206, 207, 72,\n\t\t215, 137, 84, 207, 174, 66, 244, 231, 172, 63, 37, 112, 26,\n\t\t100, 166, 155, 226, 176, 45, 5, 187, 73, 38, 20, 112, 48,\n\t\t54, 37, 240, 3, 145, 251, 202, 217, 162, 34, 10, 230, 151,\n\t\t99, 103, 134, 157, 172, 170, 157, 69, 186, 208, 84, 234, 92,\n\t\t76, 140, 14, 24, 148, 142, 132, 32, 216, 111, 140, 67, 162,\n\t\t39, 18, 124, 144, 229, 210, 212, 22, 82, 90, 176, 168, 61,\n\t\t3, 214, 215, 10, 151, 115, 150, 119, 139, 161, 195, 9, 56,\n\t\t231, 217, 66, 133, 19, 241, 196, 90, 16, 233, 12, 207, 225,\n\t\t192, 202, 29, 191, 115, 254, 134, 194, 27, 156, 216, 175,\n\t\t151, 148, 138, 171, 187, 176, 227, 228, 75, 57, 27, 239, 96,\n\t\t41, 0, 162, 142, 79, 38, 84, 199, 232, 15, 16, 119, 114, 145,\n\t\t85, 230, 89, 158, 26, 91, 52, 197, 98, 5, 3, 38, 7, 75, 42,\n\t\t224, 128, 240, 212, 105, 122, 47, 148, 48, 54, 7, 79, 199,\n\t\t49, 153, 226, 233, 12, 32, 1, 18, 41, 103, 97, 146, 32, 153,\n\t\t49, 212, 80, 26, 24, 28, 34, 201, 196, 70, 208, 146, 172,\n\t\t14, 199, 59, 14, 28, 98, 167, 171, 51, 53, 134, 58, 211, 98,\n\t\t143, 46, 114, 80, 188, 228, 49, 205, 180, 169, 162, 137, 205,\n\t\t193, 99, 191, 82, 199, 179, 51, 196, 43, 12, 115, 200, 56,\n\t\t226, 171, 241, 56, 218, 138, 39, 137, 52, 51, 2, 139, 167,\n\t\t173, 110, 217, 55, 21, 39, 65, 75, 109, 129, 134, 16, 156,\n\t\t8, 34, 11, 22, 228, 89, 114, 113, 116, 54, 25, 159, 230, 102,\n\t\t44, 112, 131, 2, 235, 93, 198, 152, 88, 89, 7, 84, 1, 239,\n\t\t168, 163, 62, 33, 9, 103, 154, 189, 234, 152, 179, 169, 190,\n\t\t184, 4, 159, 116, 139, 81, 68, 238, 173, 50, 34, 227, 46,\n\t\t28, 227, 136, 95, 243, 200, 254, 37, 60, 138, 119, 158, 206,\n\t\t238, 66, 28, 96, 144, 144, 91, 164, 175, 21, 129, 117, 170,\n\t\t222, 36, 31, 35, 134, 148, 211, 95, 187, 16, 76, 164, 195,\n\t\t221, 154, 22, 106, 36, 98, 20, 76, 195, 202, 156, 136, 177,\n\t\t135, 226, 138, 24, 64, 6, 76, 209, 18, 231, 141, 141, 177,\n\t\t29, 160, 196, 9, 181, 29, 192, 80, 101, 168, 189, 104, 35,\n\t\t40, 247, 67, 107, 58, 134, 196, 75, 147, 109, 146, 180, 68,\n\t\t147, 227, 160, 139, 150, 101, 126, 225, 12, 60, 57, 91, 76,\n\t\t112, 80, 22, 91, 161, 71, 180, 108, 19, 180, 10, 80, 140,\n\t\t194, 198, 105, 105, 211, 209, 18, 175, 155, 146, 221, 228,\n\t\t67, 49, 25, 91, 28, 182, 83, 136, 99, 166, 6, 199, 232, 170,\n\t\t89, 108, 120, 162, 222, 202, 173, 250, 248, 60, 60, 164, 96,\n\t\t92, 70, 108, 105, 53, 150, 150, 115, 15, 160, 40, 38, 99,\n\t\t52, 105, 38, 216, 255, 217, 53, 40, 182, 70, 107, 170, 11,\n\t\t24, 42, 159, 161, 186, 94, 28, 115, 93, 68, 13, 161, 237,\n\t\t219, 121, 156, 87, 110, 241, 213, 68, 215, 26, 49, 229, 53,\n\t\t187, 48, 59, 252, 9, 99, 150, 164, 99, 158, 88, 188, 12, 222,\n\t\t15, 202, 143, 126, 221, 76, 240, 213, 29, 100, 120, 231, 45,\n\t\t112, 20, 241, 141, 54, 210, 145, 197, 201, 122, 29, 119, 98,\n\t\t228, 48, 141, 0, 9, 44, 123, 183, 208, 28, 195, 76, 138, 152,\n\t\t212, 50, 204, 137, 70, 195, 166, 17, 157, 109, 129, 53, 51,\n\t\t145, 1, 172, 60, 11, 194, 176, 31, 87, 83, 105, 248, 23, 108,\n\t\t109, 15, 229, 187, 11, 6, 233, 196, 157, 201, 14, 238, 228,\n\t\t25, 7, 44, 98, 123, 132, 212, 33, 146, 90, 152, 111, 248,\n\t\t75, 107, 201, 14, 160, 225, 49, 196, 153, 65, 124, 11, 7,\n\t\t172, 87, 67, 243, 216, 76, 105, 136, 114, 166, 183, 188, 199,\n\t\t65, 95, 75, 107, 75, 168, 36, 203, 142, 46, 121, 147, 224,\n\t\t0, 64, 159, 15, 32, 221, 64, 123, 145, 132, 136, 108, 11,\n\t\t136, 126, 104, 156, 29, 178, 102, 84, 8, 22, 126, 97, 35,\n\t\t130, 167, 101, 156, 155, 161, 109, 77, 157, 47, 180, 81, 38,\n\t\t98, 62, 32, 244, 86, 181, 2, 57, 111, 156, 3, 219, 43, 221,\n\t\t208, 146, 29, 226, 52, 93, 174, 7, 139, 165, 21, 2, 247, 62,\n\t\t34, 164, 105, 164, 79, 197, 211, 201, 164, 22, 16, 254, 28,\n\t\t29, 53, 158, 140, 135, 75, 87, 163, 125, 92, 231, 41, 225,\n\t\t92, 67, 0, 102, 202, 116, 112, 71, 241, 67, 119, 9, 38, 0,\n\t\t36, 82, 176, 129, 253, 187, 153, 113, 143, 14, 60, 61, 13,\n\t\t149, 51, 14, 202, 72, 65, 75, 33, 129, 199, 1, 155, 195, 4,\n\t\t87, 144, 26, 176, 153, 84, 195, 218, 15, 41, 216, 209, 23,\n\t\t218, 144, 252, 176, 59, 146, 120, 232, 75, 162, 96, 44, 71,\n\t\t72, 155, 38, 21, 249, 124, 36, 189, 135, 210, 53, 186, 133,\n\t\t77, 60, 144, 158, 131, 41, 169, 32, 60, 44, 249, 130, 15,\n\t\t65, 158, 115, 254, 16, 139, 104, 108, 72, 192, 248, 144, 20,\n\t\t11, 59, 170, 219, 182, 132, 200, 113, 68, 147, 75, 214, 184,\n\t\t226, 103, 107, 124, 14, 25, 9, 12, 133, 47, 165, 70, 244,\n\t\t172, 8, 200, 249, 188, 150, 4, 147, 98, 106, 135, 137, 102,\n\t\t177, 32, 56, 7, 105, 140, 225, 254, 236, 178, 228, 42, 132,\n\t\t42, 16, 88, 88, 89, 125, 32, 156, 201, 201, 135, 1, 24, 26,\n\t\t214, 57, 38, 156, 45, 128, 66, 240, 34, 166, 173, 138, 252,\n\t\t191, 180, 177, 67, 41, 96, 106, 48, 122, 158, 57, 119, 248,\n\t\t216, 58, 127, 29, 97, 157, 181, 185, 95, 63, 125, 249, 237,\n\t\t130, 62, 247, 44, 88, 120, 163, 207, 77, 213, 56, 58, 6, 115,\n\t\t165, 37, 76, 100, 28, 230, 81, 151, 161, 126, 24, 107, 51,\n\t\t149, 237, 132, 137, 147, 157, 247, 130, 236, 145, 122, 249,\n\t\t0, 87, 196, 35, 72, 185, 136, 125, 76, 98, 21, 180, 213, 0,\n\t\t157, 200, 192, 35, 55, 197, 115, 82, 199, 132, 72, 220, 133,\n\t\t229, 105, 152, 17, 88, 194, 70, 28, 26, 155, 223, 2, 29, 107,\n\t\t153, 229, 121, 80, 16, 150, 203, 179, 202, 229, 57, 247, 146,\n\t\t221, 228, 74, 53, 190, 102, 214, 198, 166, 202, 30, 3, 206,\n\t\t132, 92, 145, 36, 68, 130, 126, 3, 109, 115, 18, 154, 137,\n\t\t49, 27, 150, 201, 89, 36, 18, 24, 93, 138, 116, 214, 206,\n\t\t125, 2, 125, 211, 160, 138, 107, 186, 92, 15, 93, 46, 172,\n\t\t52, 136, 233, 74, 200, 87, 227, 232, 12, 118, 25, 58, 249,\n\t\t173, 46, 215, 219, 114, 112, 217, 209, 42, 36, 14, 59, 51,\n\t\t219, 230, 27, 88, 163, 49, 51, 39, 83, 51, 113, 44, 123, 253,\n\t\t137, 20, 42, 41, 173, 247, 166, 92, 16, 160, 159, 67, 168,\n\t\t179, 167, 15, 11, 142, 200, 117, 42, 17, 80, 234, 28, 99,\n\t\t68, 103, 39, 177, 112, 9, 214, 51, 22, 104, 232, 24, 25, 24,\n\t\t28, 48, 0, 207, 8, 24, 38, 217, 178, 189, 55, 33, 148, 206,\n\t\t143, 133, 232, 158, 103, 25, 216, 182, 10, 240, 93, 211, 106,\n\t\t138, 208, 119, 7, 27, 160, 205, 99, 12, 79, 43, 176, 130,\n\t\t29, 194, 195, 155, 0, 27, 198, 137, 58, 47, 165, 133, 6, 186,\n\t\t64, 207, 159, 226, 28, 76, 12, 176, 172, 69, 12, 114, 28,\n\t\t171, 105, 36, 76, 225, 176, 99, 49, 40, 210, 143, 208, 11,\n\t\t118, 60, 189, 105, 174, 38, 54, 239, 128, 12, 157, 88, 43,\n\t\t150, 132, 41, 128, 98, 195, 119, 69, 199, 162, 11, 75, 52,\n\t\t37, 200, 0, 193, 150, 5, 103, 98, 204, 190, 117, 101, 202,\n\t\t232, 77, 67, 127, 122, 129, 168, 91, 14, 53, 178, 190, 116,\n\t\t149, 73, 161, 48, 85, 25, 172, 43, 76, 111, 155, 0, 175, 104,\n\t\t105, 183, 54, 57, 247, 98, 123, 91, 141, 173, 61, 76, 222,\n\t\t221, 215, 102, 11, 117, 184, 209, 104, 72, 103, 141, 218,\n\t\t211, 70, 45, 26, 13, 233, 190, 70, 75, 244, 55, 218, 116,\n\t\t229, 188, 209, 151, 190, 148, 22, 117, 11, 175, 211, 65, 63,\n\t\t15, 15, 142, 36, 206, 72, 130, 47, 199, 233, 107, 127, 178,\n\t\t241, 185, 166, 52, 82, 71, 104, 81, 239, 242, 92, 160, 96,\n\t\t68, 206, 132, 205, 103, 129, 209, 204, 26, 165, 223, 117,\n\t\t24, 244, 126, 97, 80, 82, 162, 14, 242, 213, 240, 131, 147,\n\t\t74, 168, 116, 29, 27, 106, 227, 249, 193, 35, 30, 215, 93,\n\t\t236, 13, 213, 118, 210, 27, 98, 67, 239, 238, 13, 125, 205,\n\t\t113, 111, 134, 91, 221, 9, 190, 220, 219, 149, 247, 29, 152,\n\t\t219, 39, 218, 211, 227, 124, 230, 35, 151, 62, 92, 57, 207,\n\t\t50, 241, 250, 72, 174, 108, 172, 143, 48, 110, 53, 218, 245,\n\t\t129, 145, 158, 68, 33, 207, 4, 46, 111, 11, 68, 101, 15, 19,\n\t\t150, 115, 197, 213, 138, 168, 24, 156, 11, 247, 31, 111, 91,\n\t\t197, 239, 162, 234, 226, 227, 227, 141, 29, 80, 136, 165,\n\t\t193, 225, 14, 67, 191, 77, 167, 199, 27, 145, 237, 126, 188,\n\t\t117, 197, 53, 224, 154, 98, 100, 233, 95, 2, 31, 93, 144,\n\t\t197, 47, 122, 110, 86, 124, 167, 182, 168, 174, 124, 100,\n\t\t221, 57, 130, 207, 61, 216, 85, 34, 225, 136, 245, 134, 25,\n\t\t207, 147, 144, 236, 179, 43, 170, 108, 87, 229, 251, 162,\n\t\t218, 250, 145, 213, 247, 21, 212, 31, 60, 90, 40, 166, 214,\n\t\t92, 198, 32, 71, 122, 181, 38, 59, 23, 84, 223, 175, 250,\n\t\t255, 153, 164, 33, 218, 249, 64, 79, 2, 22, 153, 225, 245,\n\t\t66, 103, 24, 73, 47, 98, 80, 232, 22, 134, 69, 108, 18, 163,\n\t\t26, 41, 134, 69, 237, 22, 35, 164, 58, 181, 135, 4, 146, 82,\n\t\t142, 108, 28, 99, 137, 123, 177, 137, 96, 88, 187, 41, 132,\n\t\t197, 199, 120, 232, 70, 21, 159, 161, 114, 30, 3, 75, 204,\n\t\t128, 13, 98, 48, 210, 12, 221, 135, 88, 97, 186, 89, 70, 12,\n\t\t157, 181, 140, 206, 251, 229, 104, 57, 20, 123, 74, 202, 114,\n\t\t137, 199, 164, 12, 154, 204, 91, 154, 208, 157, 170, 76, 133,\n\t\t96, 139, 210, 239, 220, 150, 8, 5, 242, 153, 110, 86, 245,\n\t\t182, 107, 131, 135, 233, 30, 85, 243, 93, 246, 195, 131, 67,\n\t\t128, 235, 153, 26, 90, 52, 212, 171, 90, 250, 48, 241, 147,\n\t\t183, 244, 219, 172, 8, 63, 88, 196, 64, 89, 232, 218, 44,\n\t\t59, 1, 16, 163, 23, 73, 122, 160, 122, 69, 119, 174, 202,\n\t\t244, 133, 245, 239, 145, 196, 21, 40, 228, 145, 62, 27, 51,\n\t\t15, 197, 150, 99, 24, 49, 143, 39, 136, 203, 240, 185, 235,\n\t\t240, 187, 86, 127, 161, 125, 14, 189, 149, 152, 6, 102, 11,\n\t\t61, 86, 132, 98, 33, 5, 71, 114, 7, 91, 15, 24, 5, 13, 184,\n\t\t53, 90, 32, 246, 5, 214, 178, 57, 214, 1, 16, 31, 140, 232,\n\t\t231, 102, 74, 36, 238, 228, 204, 124, 177, 168, 209, 99, 84,\n\t\t51, 8, 72, 180, 83, 223, 191, 42, 30, 137, 50, 20, 36, 80,\n\t\t4, 32, 204, 137, 245, 164, 219, 83, 22, 236, 104, 120, 180,\n\t\t33, 100, 149, 4, 24, 222, 197, 213, 1, 174, 85, 43, 218, 216,\n\t\t110, 136, 211, 146, 130, 157, 154, 125, 42, 116, 78, 238,\n\t\t37, 62, 202, 157, 240, 81, 165, 243, 81, 111, 96, 163, 174,\n\t\t18, 249, 111, 79, 191, 124, 218, 255, 246, 244, 237, 233,\n\t\t92, 113, 255, 241, 255, 117, 96, 128, 108, 98, 244, 35, 128,\n\t\t176, 220, 76, 20, 27, 48, 203, 68, 202, 177, 200, 28, 188,\n\t\t19, 189, 228, 150, 115, 236, 98, 5, 237, 20, 23, 236, 224,\n\t\t136, 100, 91, 134, 208, 141, 181, 6, 95, 171, 86, 82, 146,\n\t\t252, 76, 197, 37, 18, 253, 64, 102, 165, 2, 68, 12, 155, 64,\n\t\t226, 58, 176, 193, 18, 73, 248, 181, 153, 96, 125, 217, 1,\n\t\t178, 36, 213, 3, 226, 216, 51, 92, 12, 167, 108, 178, 43,\n\t\t188, 232, 133, 251, 63, 242, 239, 173, 160, 70, 115, 127,\n\t\t204, 170, 51, 109, 127, 22, 206, 180, 36, 91, 40, 140, 17,\n\t\t158, 211, 39, 214, 64, 156, 106, 114, 46, 115, 33, 249, 142,\n\t\t211, 166, 17, 99, 200, 145, 184, 5, 110, 248, 114, 93, 145,\n\t\t139, 127, 102, 128, 149, 140, 163, 133, 206, 99, 118, 17,\n\t\t107, 42, 83, 54, 214, 238, 146, 44, 229, 74, 162, 205, 100,\n\t\t249, 145, 168, 29, 85, 227, 43, 192, 231, 104, 196, 83, 48,\n\t\t208, 133, 78, 45, 27, 91, 19, 86, 139, 105, 180, 132, 108,\n\t\t53, 182, 69, 152, 164, 73, 30, 227, 180, 8, 193, 22, 36, 42,\n\t\t116, 149, 211, 34, 4, 215, 255, 210, 135, 186, 102, 18, 244,\n\t\t233, 217, 36, 231, 11, 81, 48, 248, 70, 4, 146, 134, 154,\n\t\t94, 239, 128, 134, 88, 10, 80, 7, 233, 28, 219, 17, 187, 80,\n\t\t174, 111, 170, 249, 113, 121, 250, 242, 241, 241, 219, 244,\n\t\t235, 242, 251, 153, 35, 67, 57, 75, 240, 187, 97, 158, 2,\n\t\t29, 212, 121, 245, 78, 190, 150, 217, 167, 192, 87, 231, 246,\n\t\t115, 62, 222, 200, 7, 93, 50, 85, 118, 227, 33, 241, 183,\n\t\t78, 151, 147, 28, 149, 124, 40, 249, 218, 3, 62, 94, 205,\n\t\t160, 60, 208, 167, 236, 74, 190, 145, 180, 25, 145, 174, 33,\n\t\t147, 40, 132, 5, 246, 18, 26, 1, 67, 226, 92, 70, 35, 224,\n\t\t87, 47, 161, 17, 212, 67, 242, 127, 42, 11, 116, 130, 101,\n\t\t229, 102, 45, 183, 50, 143, 39, 191, 147, 176, 147, 115, 32,\n\t\t6, 14, 139, 153, 156, 61, 248, 166, 161, 49, 190, 73, 116,\n\t\t195, 37, 156, 131, 16, 237, 101, 108, 133, 251, 86, 240, 231,\n\t\t79, 95, 46, 44, 225, 179, 188, 171, 219, 36, 250, 113, 116,\n\t\t254, 86, 170, 243, 235, 171, 137, 99, 99, 175, 13, 209, 61,\n\t\t251, 131, 200, 248, 95, 176, 98, 254, 92, 46, 245, 59, 151,\n\t\t204, 237, 90, 126, 152, 21, 243, 219, 167, 207, 79, 231, 43,\n\t\t230, 28, 246, 116, 37, 122, 206, 153, 66, 199, 172, 151, 164,\n\t\t170, 116, 128, 118, 24, 242, 254, 87, 33, 90, 215, 2, 197,\n\t\t124, 102, 128, 77, 1, 205, 236, 5, 192, 232, 64, 162, 228,\n\t\t59, 107, 114, 101, 220, 180, 219, 243, 92, 159, 228, 170,\n\t\t178, 163, 3, 52, 177, 54, 74, 79, 29, 247, 130, 97, 32, 180,\n\t\t150, 163, 166, 183, 149, 12, 11, 55, 120, 59, 37, 214, 246,\n\t\t139, 0, 79, 113, 218, 218, 237, 42, 100, 80, 79, 186, 115,\n\t\t58, 32, 176, 102, 243, 199, 48, 146, 172, 140, 105, 82, 200,\n\t\t211, 181, 65, 205, 134, 160, 21, 201, 117, 175, 73, 211, 191,\n\t\t77, 174, 28, 111, 194, 225, 125, 118, 225, 159, 221, 62, 127,\n\t\t213, 38, 28, 254, 162, 93, 56, 239, 158, 206, 141, 247, 229,\n\t\t44, 92, 109, 19, 149, 106, 109, 199, 255, 185, 18, 237, 184,\n\t\t82, 209, 43, 81, 140, 58, 139, 87, 2, 75, 253, 141, 40, 198,\n\t\t116, 53, 136, 55, 222, 138, 238, 58, 158, 209, 23, 107, 185,\n\t\t21, 200, 142, 41, 125, 126, 8, 128, 220, 123, 49, 94, 242,\n\t\t210, 148, 190, 16, 104, 24, 237, 243, 67, 136, 206, 56, 68,\n\t\t226, 68, 3, 96, 173, 232, 13, 156, 20, 169, 60, 55, 166, 29,\n\t\t137, 225, 161, 178, 88, 166, 188, 97, 172, 187, 200, 22, 42,\n\t\t18, 80, 161, 197, 178, 44, 23, 251, 186, 76, 37, 193, 193,\n\t\t14, 102, 255, 214, 224, 101, 36, 175, 111, 235, 163, 183,\n\t\t181, 182, 254, 242, 40, 213, 45, 222, 11, 98, 187, 55, 41,\n\t\t100, 55, 235, 155, 90, 147, 190, 73, 21, 101, 96, 180, 10,\n\t\t250, 28, 85, 197, 113, 37, 49, 194, 151, 31, 62, 39, 36, 169,\n\t\t47, 144, 243, 10, 7, 49, 185, 234, 239, 170, 19, 10, 58, 170,\n\t\t19, 170, 238, 69, 186, 3, 115, 70, 113, 165, 14, 115, 31,\n\t\t153, 77, 109, 98, 75, 212, 161, 234, 175, 243, 104, 229, 118,\n\t\t221, 249, 248, 243, 227, 25, 198, 69, 57, 11, 226, 222, 98,\n\t\t92, 88, 67, 75, 214, 101, 146, 229, 147, 100, 252, 21, 128,\n\t\t195, 108, 42, 139, 232, 90, 0, 151, 211, 150, 14, 83, 136,\n\t\t217, 32, 26, 141, 193, 210, 44, 231, 5, 135, 163, 20, 252,\n\t\t151, 10, 61, 237, 173, 232, 174, 124, 51, 197, 45, 147, 75,\n\t\t206, 84, 196, 7, 65, 81, 57, 211, 50, 133, 182, 16, 144, 99,\n\t\t129, 227, 186, 25, 216, 51, 136, 95, 232, 228, 154, 232, 50,\n\t\t165, 132, 94, 2, 136, 28, 219, 122, 161, 240, 116, 240, 28,\n\t\t102, 125, 190, 79, 158, 115, 200, 72, 34, 28, 100, 4, 67,\n\t\t227, 197, 26, 203, 233, 239, 24, 176, 113, 98, 212, 204, 192,\n\t\t201, 96, 152, 237, 138, 108, 195, 21, 176, 209, 198, 136,\n\t\t77, 82, 50, 79, 52, 64, 141, 177, 41, 105, 68, 26, 2, 105,\n\t\t120, 132, 122, 129, 142, 144, 14, 144, 177, 214, 51, 2, 29,\n\t\t13, 20, 224, 142, 172, 203, 112, 192, 243, 185, 230, 81, 199,\n\t\t136, 135, 72, 70, 72, 7, 40, 155, 8, 243, 151, 135, 162, 9,\n\t\t62, 223, 120, 88, 71, 199, 53, 214, 92, 202, 245, 48, 39,\n\t\t209, 145, 31, 69, 79, 68, 197, 164, 54, 17, 10, 44, 26, 37,\n\t\t96, 227, 5, 227, 171, 245, 101, 161, 81, 154, 50, 163, 79,\n\t\t238, 172, 81, 141, 228, 34, 67, 38, 35, 54, 3, 246, 50, 150,\n\t\t177, 15, 87, 28, 117, 176, 116, 172, 228, 154, 33, 26, 66,\n\t\t42, 6, 241, 109, 53, 153, 86, 22, 4, 130, 198, 4, 101, 215,\n\t\t129, 203, 0, 211, 236, 27, 180, 207, 139, 35, 1, 53, 179,\n\t\t39, 160, 117, 139, 133, 35, 68, 172, 144, 159, 91, 108, 254,\n\t\t224, 107, 54, 126, 225, 128, 210, 24, 1, 42, 8, 56, 55, 211,\n\t\t74, 19, 204, 230, 204, 65, 86, 7, 46, 93, 38, 169, 115, 162,\n\t\t74, 115, 11, 203, 212, 107, 157, 120, 16, 66, 164, 42, 178,\n\t\t113, 55, 240, 231, 190, 126, 254, 252, 244, 229, 183, 233,\n\t\t113, 57, 197, 157, 244, 101, 69, 158, 35, 162, 31, 235, 28,\n\t\t82, 63, 238, 34, 220, 199, 248, 196, 3, 208, 101, 199, 159,\n\t\t211, 135, 250, 125, 70, 193, 196, 63, 160, 226, 44, 240, 8,\n\t\t109, 72, 67, 159, 144, 163, 197, 43, 38, 90, 207, 227, 124,\n\t\t10, 244, 54, 149, 14, 8, 198, 37, 179, 66, 124, 177, 240,\n\t\t18, 21, 1, 140, 133, 151, 26, 119, 19, 112, 185, 211, 138,\n\t\t61, 7, 191, 178, 222, 161, 28, 5, 244, 78, 31, 217, 124, 13,\n\t\t254, 223, 133, 26, 159, 7, 132, 88, 182, 44, 207, 74, 66,\n\t\t137, 169, 8, 26, 153, 90, 235, 118, 19, 157, 203, 154, 111,\n\t\t130, 213, 195, 250, 208, 164, 238, 190, 50, 60, 154, 148,\n\t\t98, 189, 43, 42, 95, 23, 227, 97, 202, 118, 201, 114, 43,\n\t\t49, 156, 250, 226, 122, 110, 25, 176, 54, 59, 151, 237, 220,\n\t\t91, 130, 30, 90, 59, 115, 195, 90, 244, 235, 227, 239, 251,\n\t\t167, 105, 254, 244, 109, 94, 206, 236, 69, 245, 195, 185,\n\t\t42, 113, 171, 70, 60, 86, 33, 190, 164, 62, 60, 82, 29, 190,\n\t\t172, 54, 92, 149, 134, 73, 53, 134, 251, 169, 95, 77, 189,\n\t\t72, 53, 131, 105, 85, 11, 238, 215, 203, 174, 8, 100, 20,\n\t\t235, 194, 56, 43, 155, 33, 62, 153, 1, 214, 171, 71, 182,\n\t\t246, 110, 38, 234, 104, 38, 14, 92, 197, 241, 36, 241, 28,\n\t\t185, 76, 204, 227, 118, 228, 143, 215, 193, 243, 131, 143,\n\t\t246, 21, 253, 120, 175, 110, 92, 199, 67, 249, 250, 235, 75,\n\t\t43, 224, 227, 10, 49, 23, 71, 199, 200, 119, 180, 8, 222,\n\t\t52, 225, 251, 179, 133, 243, 252, 144, 114, 175, 22, 171,\n\t\t224, 124, 42, 247, 111, 93, 22, 175, 91, 3, 46, 219, 63, 177,\n\t\t8, 78, 247, 223, 43, 134, 127, 247, 248, 229, 227, 126, 247,\n\t\t248, 127, 206, 6, 255, 195, 89, 26, 236, 21, 51, 60, 57, 164,\n\t\t242, 160, 227, 116, 231, 188, 53, 116, 238, 36, 112, 144,\n\t\t187, 41, 199, 153, 129, 16, 89, 149, 203, 9, 23, 162, 162,\n\t\t64, 58, 198, 52, 12, 12, 155, 185, 155, 18, 39, 182, 152,\n\t\t53, 53, 195, 84, 149, 238, 42, 201, 118, 89, 33, 27, 173,\n\t\t224, 33, 122, 246, 46, 236, 152, 135, 30, 57, 99, 92, 82,\n\t\t76, 205, 166, 8, 222, 2, 44, 33, 153, 78, 50, 243, 116, 133,\n\t\t159, 70, 178, 11, 167, 25, 76, 66, 79, 104, 1, 228, 111, 169,\n\t\t201, 199, 1, 245, 90, 225, 67, 52, 99, 191, 102, 125, 163,\n\t\t22, 172, 36, 153, 1, 88, 103, 255, 96, 246, 113, 64, 90, 54,\n\t\t21, 151, 189, 147, 212, 61, 206, 38, 147, 193, 87, 176, 234,\n\t\t161, 10, 132, 102, 201, 232, 247, 78, 209, 33, 231, 105, 43,\n\t\t15, 27, 54, 172, 73, 148, 173, 19, 209, 90, 199, 115, 234,\n\t\t3, 10, 236, 61, 158, 10, 231, 234, 18, 37, 241, 80, 44, 12,\n\t\t13, 137, 85, 238, 56, 65, 218, 232, 133, 89, 113, 156, 69,\n\t\t126, 12, 77, 144, 39, 249, 122, 216, 121, 159, 77, 61, 88,\n\t\t100, 190, 171, 142, 14, 54, 26, 40, 184, 56, 22, 48, 204,\n\t\t1, 121, 189, 121, 122, 248, 37, 112, 25, 77, 242, 119, 28,\n\t\t159, 9, 60, 104, 88, 177, 87, 14, 174, 253, 133, 147, 74,\n\t\t108, 147, 208, 22, 156, 157, 82, 207, 15, 49, 84, 160, 79,\n\t\t132, 89, 4, 94, 77, 203, 38, 192, 152, 149, 115, 127, 112,\n\t\t59, 78, 53, 70, 182, 26, 15, 176, 4, 100, 105, 235, 235, 174,\n\t\t152, 196, 160, 167, 50, 212, 121, 205, 93, 36, 122, 15, 167,\n\t\t44, 158, 133, 168, 206, 9, 102, 32, 187, 226, 1, 164, 220,\n\t\t73, 99, 17, 135, 171, 168, 9, 104, 172, 51, 97, 9, 114, 164,\n\t\t135, 100, 210, 14, 56, 176, 80, 252, 28, 37, 73, 84, 197,\n\t\t141, 0, 156, 202, 242, 145, 110, 103, 157, 250, 236, 48, 240,\n\t\t59, 88, 224, 173, 5, 244, 87, 53, 206, 186, 157, 103, 24,\n\t\t212, 165, 245, 180, 213, 117, 152, 215, 109, 196, 128, 164,\n\t\t112, 59, 99, 104, 84, 90, 18, 73, 182, 91, 102, 60, 213, 5,\n\t\t190, 156, 22, 9, 172, 144, 150, 69, 51, 50, 209, 66, 75, 115,\n\t\t216, 160, 176, 130, 53, 18, 180, 253, 170, 41, 255, 151, 0,\n\t\t95, 185, 180, 244, 60, 85, 178, 43, 57, 189, 166, 239, 201,\n\t\t255, 113, 161, 19, 35, 22, 74, 76, 4, 67, 107, 57, 18, 12,\n\t\t15, 200, 232, 30, 121, 35, 45, 154, 129, 101, 204, 72, 179,\n\t\t153, 33, 91, 200, 16, 51, 44, 43, 95, 168, 186, 142, 246,\n\t\t190, 14, 94, 85, 149, 212, 154, 53, 207, 89, 144, 219, 166,\n\t\t16, 171, 58, 220, 2, 126, 176, 76, 57, 105, 230, 23, 193,\n\t\t129, 149, 236, 218, 43, 61, 199, 0, 130, 114, 104, 2, 45,\n\t\t73, 7, 57, 247, 140, 132, 77, 59, 149, 36, 141, 142, 46, 3,\n\t\t129, 118, 181, 75, 74, 157, 197, 194, 70, 205, 52, 41, 130,\n\t\t212, 171, 100, 10, 159, 162, 249, 197, 221, 176, 116, 138,\n\t\t232, 4, 71, 54, 51, 220, 115, 18, 218, 198, 253, 118, 226,\n\t\t208, 103, 51, 113, 185, 184, 197, 3, 182, 56, 235, 225, 72,\n\t\t73, 227, 130, 253, 218, 115, 148, 202, 224, 117, 13, 121,\n\t\t148, 158, 104, 42, 67, 254, 187, 203, 188, 58, 158, 31, 82,\n\t\t243, 127, 241, 166, 191, 138, 91, 251, 244, 229, 240, 180,\n\t\t124, 253, 245, 105, 250, 250, 235, 211, 151, 179, 131, 45,\n\t\t119, 25, 162, 69, 67, 228, 213, 211, 247, 215, 56, 55, 49,\n\t\t60, 22, 211, 96, 102, 116, 197, 112, 48, 131, 143, 200, 43,\n\t\t177, 22, 132, 140, 112, 215, 195, 228, 179, 55, 177, 185,\n\t\t219, 234, 173, 14, 117, 253, 50, 48, 86, 246, 38, 185, 52,\n\t\t35, 157, 69, 34, 177, 181, 152, 10, 128, 4, 223, 56, 52, 155,\n\t\t78, 1, 164, 184, 46, 198, 150, 226, 230, 72, 242, 151, 173,\n\t\t99, 48, 33, 197, 216, 24, 241, 165, 194, 251, 151, 143, 165,\n\t\t144, 140, 75, 192, 117, 73, 177, 13, 179, 247, 146, 87, 171,\n\t\t26, 23, 125, 38, 97, 29, 206, 213, 41, 153, 154, 90, 100,\n\t\t26, 26, 146, 94, 207, 49, 0, 84, 99, 180, 136, 50, 9, 14,\n\t\t9, 234, 16, 245, 213, 31, 157, 244, 89, 31, 76, 242, 240,\n\t\t34, 175, 64, 93, 113, 136, 16, 142, 140, 122, 143, 88, 75,\n\t\t146, 106, 18, 236, 213, 213, 228, 148, 25, 42, 6, 22, 134,\n\t\t20, 76, 14, 254, 128, 196, 198, 64, 192, 160, 49, 16, 167,\n\t\t114, 107, 26, 163, 220, 4, 147, 115, 22, 74, 8, 136, 243,\n\t\t104, 114, 66, 196, 165, 75, 166, 230, 128, 216, 80, 134, 150,\n\t\t161, 22, 74, 11, 68, 220, 217, 88, 235, 130, 55, 33, 231,\n\t\t209, 217, 108, 2, 77, 4, 141, 100, 98, 151, 85, 206, 101,\n\t\t27, 27, 251, 155, 196, 100, 2, 34, 18, 74, 96, 247, 99, 41,\n\t\t152, 57, 129, 158, 3, 31, 64, 123, 21, 73, 151, 16, 229, 69,\n\t\t27, 72, 159, 158, 182, 143, 195, 25, 18, 227, 17, 224, 148,\n\t\t236, 16, 151, 15, 25, 51, 22, 142, 159, 161, 110, 97, 16,\n\t\t232, 240, 12, 32, 101, 209, 54, 199, 1, 202, 172, 147, 241,\n\t\t176, 104, 115, 186, 96, 142, 154, 235, 37, 209, 228, 156,\n\t\t16, 33, 77, 35, 152, 194, 53, 37, 98, 68, 106, 227, 139, 154,\n\t\t72, 58, 64, 189, 177, 150, 22, 24, 109, 236, 56, 71, 227,\n\t\t121, 101, 194, 95, 201, 209, 10, 139, 136, 131, 135, 179,\n\t\t15, 59, 203, 9, 42, 61, 212, 100, 213, 197, 25, 137, 123,\n\t\t17, 218, 237, 3, 123, 81, 195, 110, 143, 72, 28, 112, 33,\n\t\t153, 179, 110, 52, 95, 57, 73, 121, 205, 30, 153, 207, 188,\n\t\t166, 153, 171, 0, 201, 1, 161, 101, 159, 127, 90, 91, 153,\n\t\t143, 168, 205, 106, 203, 196, 104, 209, 210, 76, 28, 240,\n\t\t74, 107, 179, 22, 198, 96, 65, 194, 131, 237, 50, 206, 146,\n\t\t147, 26, 200, 182, 85, 50, 13, 68, 142, 234, 66, 190, 53,\n\t\t23, 156, 116, 43, 195, 243, 186, 230, 24, 102, 98, 62, 249,\n\t\t144, 52, 174, 194, 85, 138, 182, 187, 3, 94, 129, 228, 40,\n\t\t144, 207, 151, 175, 95, 144, 137, 164, 84, 36, 104, 245, 53,\n\t\t12, 115, 148, 16, 99, 128, 99, 121, 248, 20, 32, 100, 35,\n\t\t153, 202, 158, 57, 153, 131, 118, 156, 41, 52, 153, 179, 175,\n\t\t38, 187, 202, 137, 26, 173, 117, 72, 61, 151, 19, 143, 29,\n\t\t220, 102, 11, 237, 39, 193, 52, 167, 149, 53, 235, 26, 238,\n\t\t241, 36, 186, 134, 117, 17, 142, 103, 171, 114, 93, 195, 88,\n\t\t194, 217, 141, 186, 130, 79, 151, 187, 115, 28, 37, 209, 76,\n\t\t10, 137, 1, 1, 90, 12, 145, 134, 12, 222, 188, 212, 155, 236,\n\t\t19, 124, 213, 115, 141, 195, 12, 71, 54, 91, 104, 196, 92,\n\t\t246, 200, 183, 135, 166, 130, 129, 123, 17, 62, 183, 242,\n\t\t192, 249, 124, 3, 156, 236, 241, 227, 199, 111, 79, 251, 253,\n\t\t244, 225, 235, 215, 51, 107, 196, 135, 107, 24, 153, 0, 61,\n\t\t174, 59, 100, 11, 207, 113, 231, 111, 25, 95, 56, 240, 242,\n\t\t150, 65, 248, 251, 214, 21, 175, 102, 68, 232, 88, 142, 23,\n\t\t108, 89, 47, 229, 168, 30, 118, 244, 214, 101, 19, 18, 181,\n\t\t247, 61, 250, 254, 12, 100, 194, 201, 101, 234, 133, 128,\n\t\t118, 211, 47, 32, 67, 122, 98, 219, 154, 191, 174, 219, 218,\n\t\t159, 106, 179, 246, 231, 10, 187, 253, 37, 5, 221, 243, 131,\n\t\t115, 213, 208, 27, 195, 188, 230, 70, 230, 60, 82, 244, 179,\n\t\t106, 183, 181, 64, 120, 214, 131, 252, 157, 237, 168, 98,\n\t\t89, 16, 200, 193, 36, 82, 81, 215, 107, 241, 245, 44, 140,\n\t\t17, 44, 173, 194, 183, 214, 145, 24, 79, 102, 163, 105, 140,\n\t\t69, 22, 12, 113, 92, 239, 212, 57, 20, 230, 235, 108, 175,\n\t\t18, 80, 74, 224, 168, 181, 64, 26, 57, 76, 107, 191, 136,\n\t\t117, 20, 38, 141, 153, 80, 121, 85, 179, 176, 75, 201, 176,\n\t\t155, 92, 105, 196, 23, 223, 181, 109, 230, 11, 1, 245, 31,\n\t\t206, 156, 175, 55, 86, 9, 95, 97, 146, 120, 105, 5, 221, 112,\n\t\t130, 136, 245, 229, 37, 123, 197, 252, 106, 123, 148, 121,\n\t\t72, 30, 181, 160, 37, 190, 243, 206, 43, 106, 232, 75, 234,\n\t\t167, 90, 81, 195, 253, 75, 106, 93, 81, 15, 33, 19, 81, 0,\n\t\t56, 10, 111, 123, 68, 216, 247, 52, 226, 117, 172, 7, 16,\n\t\t30, 189, 173, 119, 42, 253, 183, 115, 206, 207, 235, 139,\n\t\t28, 153, 47, 183, 167, 122, 16, 54, 94, 31, 152, 54, 181,\n\t\t226, 255, 221, 196, 25, 174, 168, 11, 236, 116, 241, 182,\n\t\t46, 12, 223, 167, 15, 62, 229, 183, 247, 225, 79, 119, 225,\n\t\t218, 222, 254, 125, 255, 244, 237, 5, 45, 233, 135, 143, 47,\n\t\t39, 7, 246, 177, 142, 33, 198, 57, 133, 209, 142, 8, 160,\n\t\t14, 248, 211, 242, 158, 126, 78, 252, 155, 175, 137, 221,\n\t\t225, 162, 150, 247, 252, 28, 254, 127, 70, 45, 222, 110, 143,\n\t\t152, 117, 51, 239, 183, 180, 2, 215, 157, 126, 8, 133, 216,\n\t\t111, 8, 2, 123, 53, 120, 216, 110, 190, 191, 62, 63, 2, 47,\n\t\t97, 142, 34, 160, 219, 177, 137, 238, 78, 19, 90, 35, 39,\n\t\t241, 24, 57, 171, 46, 162, 34, 24, 164, 19, 56, 12, 188, 81,\n\t\t57, 255, 109, 22, 173, 86, 104, 38, 205, 64, 151, 195, 126,\n\t\t5, 5, 140, 170, 43, 108, 154, 123, 38, 67, 1, 32, 151, 251,\n\t\t41, 52, 213, 66, 241, 222, 195, 109, 185, 59, 79, 126, 77,\n\t\t193, 2, 229, 128, 227, 220, 125, 34, 222, 110, 27, 159, 208,\n\t\t122, 224, 148, 50, 32, 6, 213, 246, 228, 132, 66, 152, 240,\n\t\t65, 122, 249, 60, 60, 68, 103, 77, 25, 75, 150, 148, 53, 65,\n\t\t62, 74, 245, 98, 162, 17, 42, 39, 215, 206, 37, 211, 196,\n\t\t67, 58, 64, 145, 205, 154, 172, 139, 58, 110, 81, 144, 108,\n\t\t156, 162, 163, 166, 194, 9, 154, 249, 91, 10, 180, 254, 137,\n\t\t27, 224, 36, 199, 162, 119, 202, 162, 247, 73, 162, 194, 116,\n\t\t54, 25, 71, 140, 47, 95, 207, 142, 61, 120, 71, 28, 31, 86,\n\t\t6, 156, 183, 141, 18, 91, 45, 24, 230, 192, 202, 48, 198,\n\t\t54, 65, 245, 167, 207, 202, 245, 28, 145, 27, 205, 246, 175,\n\t\t128, 58, 148, 91, 158, 164, 233, 171, 27, 241, 211, 199, 233,\n\t\t195, 227, 199, 95, 206, 118, 225, 124, 230, 160, 187, 1, 117,\n\t\t14, 185, 99, 130, 95, 100, 209, 152, 60, 188, 116, 192, 250,\n\t\t90, 95, 205, 19, 238, 124, 173, 207, 104, 184, 243, 108, 190,\n\t\t114, 83, 124, 203, 69, 98, 230, 243, 53, 155, 195, 254, 212,\n\t\t204, 208, 242, 21, 43, 195, 254, 130, 93, 99, 216, 77, 68,\n\t\t63, 92, 163, 135, 236, 123, 157, 230, 15, 206, 122, 19, 145,\n\t\t127, 243, 111, 61, 204, 135, 239, 123, 154, 191, 229, 48,\n\t\t191, 177, 114, 47, 113, 134, 243, 153, 91, 238, 143, 195,\n\t\t25, 114, 74, 232, 138, 160, 168, 186, 11, 94, 141, 55, 35,\n\t\t17, 146, 35, 141, 185, 204, 113, 47, 146, 33, 186, 127, 114,\n\t\t135, 91, 179, 251, 93, 38, 151, 71, 107, 228, 174, 88, 232,\n\t\t197, 139, 208, 204, 245, 107, 164, 239, 59, 239, 163, 169,\n\t\t204, 152, 180, 119, 227, 75, 134, 59, 24, 19, 230, 207, 104,\n\t\t3, 191, 79, 31, 238, 237, 2, 146, 11, 188, 181, 11, 223, 129,\n\t\t69, 4, 29, 35, 78, 249, 125, 232, 216, 181, 205, 251, 199,\n\t\t167, 47, 31, 191, 254, 49, 125, 126, 252, 255, 63, 125, 254,\n\t\t244, 124, 118, 250, 124, 180, 71, 249, 39, 254, 196, 150,\n\t\t189, 146, 145, 241, 229, 45, 235, 68, 155, 235, 253, 193,\n\t\t135, 168, 89, 220, 67, 156, 175, 37, 82, 124, 131, 163, 170,\n\t\t142, 194, 167, 47, 151, 71, 193, 245, 81, 168, 150, 65, 222,\n\t\t233, 216, 69, 100, 149, 101, 191, 28, 198, 120, 103, 166,\n\t\t4, 240, 96, 123, 189, 100, 176, 48, 100, 180, 175, 243, 250,\n\t\t6, 244, 201, 235, 35, 83, 240, 251, 105, 91, 131, 252, 187,\n\t\t167, 219, 223, 158, 246, 191, 125, 253, 118, 222, 107, 127,\n\t\t41, 119, 200, 197, 185, 91, 179, 134, 92, 38, 183, 127, 70,\n\t\t187, 180, 230, 8, 57, 247, 148, 142, 47, 164, 226, 148, 188,\n\t\t32, 172, 24, 66, 2, 6, 40, 134, 232, 23, 110, 209, 7, 85,\n\t\t123, 64, 114, 64, 86, 25, 33, 21, 203, 240, 114, 190, 80,\n\t\t31, 119, 241, 58, 202, 216, 254, 203, 215, 63, 254, 179, 92,\n\t\t112, 88, 248, 56, 95, 203, 158, 67, 124, 114, 147, 3, 164,\n\t\t40, 227, 190, 218, 102, 197, 44, 71, 51, 139, 67, 65, 198,\n\t\t175, 192, 226, 88, 52, 99, 166, 11, 226, 173, 208, 41, 133,\n\t\t26, 196, 28, 27, 82, 197, 203, 12, 195, 154, 152, 191, 95,\n\t\t136, 141, 71, 165, 62, 44, 61, 241, 99, 96, 150, 127, 133,\n\t\t229, 17, 83, 168, 248, 152, 185, 149, 113, 86, 179, 45, 51,\n\t\t176, 11, 71, 169, 67, 169, 203, 117, 193, 109, 132, 63, 99,\n\t\t90, 65, 126, 216, 240, 54, 122, 53, 81, 54, 101, 244, 197,\n\t\t18, 234, 249, 199, 88, 221, 50, 21, 225, 192, 35, 115, 228,\n\t\t7, 120, 36, 44, 169, 170, 1, 181, 193, 48, 59, 103, 205, 50,\n\t\t170, 233, 66, 123, 129, 203, 122, 114, 78, 98, 158, 92, 54,\n\t\t29, 119, 226, 160, 145, 245, 219, 115, 231, 19, 229, 145,\n\t\t188, 242, 53, 248, 97, 151, 53, 127, 66, 66, 213, 135, 41,\n\t\t242, 195, 195, 145, 35, 141, 240, 153, 169, 139, 79, 59, 189,\n\t\t152, 213, 194, 106, 215, 251, 157, 63, 149, 107, 98, 140,\n\t\t217, 113, 99, 109, 143, 78, 110, 22, 14, 55, 159, 219, 187,\n\t\t203, 139, 228, 66, 119, 157, 227, 123, 103, 31, 171, 207,\n\t\t230, 110, 8, 85, 6, 85, 109, 178, 169, 178, 221, 59, 241,\n\t\t20, 29, 48, 248, 125, 78, 38, 153, 148, 97, 157, 178, 169,\n\t\t2, 155, 82, 126, 195, 158, 219, 237, 192, 154, 247, 84, 231,\n\t\t123, 90, 221, 29, 100, 217, 68, 117, 46, 169, 178, 132, 181,\n\t\t38, 23, 250, 18, 145, 189, 160, 223, 196, 182, 241, 165, 201,\n\t\t128, 132, 40, 225, 43, 161, 243, 163, 97, 158, 224, 160, 162,\n\t\t251, 9, 235, 151, 7, 77, 166, 10, 91, 162, 239, 136, 162,\n\t\t14, 3, 65, 242, 175, 78, 66, 81, 75, 223, 0, 242, 3, 142,\n\t\t47, 73, 115, 198, 178, 67, 207, 18, 26, 139, 134, 62, 44,\n\t\t128, 100, 102, 249, 142, 7, 126, 253, 44, 221, 10, 23, 190,\n\t\t139, 149, 2, 242, 93, 81, 167, 38, 153, 52, 203, 104, 84,\n\t\t246, 146, 97, 193, 84, 6, 245, 116, 15, 149, 46, 10, 11, 157,\n\t\t56, 217, 71, 103, 27, 107, 153, 78, 95, 57, 222, 187, 50,\n\t\t15, 183, 182, 238, 81, 127, 251, 150, 175, 112, 115, 232,\n\t\t131, 166, 175, 28, 125, 233, 58, 86, 168, 1, 51, 40, 3, 9,\n\t\t96, 43, 76, 111, 148, 21, 229, 36, 7, 173, 240, 175, 235,\n\t\t20, 96, 195, 108, 102, 16, 20, 81, 9, 162, 208, 67, 88, 136,\n\t\t229, 224, 223, 206, 252, 102, 201, 48, 64, 132, 174, 40, 222,\n\t\t179, 155, 209, 23, 142, 96, 243, 41, 186, 24, 65, 95, 78,\n\t\t151, 115, 237, 94, 31, 60, 28, 58, 138, 147, 12, 227, 217,\n\t\t134, 216, 236, 166, 229, 116, 179, 201, 30, 220, 236, 76,\n\t\t16, 192, 205, 166, 22, 95, 161, 205, 174, 22, 2, 168, 244,\n\t\t207, 209, 87, 75, 91, 67, 39, 157, 66, 13, 148, 146, 200,\n\t\t229, 74, 71, 188, 166, 252, 85, 178, 39, 84, 111, 227, 249,\n\t\t7, 81, 188, 19, 176, 157, 227, 184, 141, 185, 83, 187, 78,\n\t\t12, 85, 56, 95, 137, 227, 97, 82, 114, 167, 237, 40, 177,\n\t\t59, 161, 86, 74, 152, 207, 250, 119, 74, 212, 135, 249, 148,\n\t\t168, 247, 235, 149, 208, 173, 222, 39, 219, 35, 5, 180, 142,\n\t\t79, 154, 34, 126, 122, 186, 77, 212, 83, 174, 186, 147, 237,\n\t\t200, 105, 162, 94, 216, 142, 167, 231, 226, 124, 186, 179,\n\t\t148, 16, 108, 137, 117, 63, 91, 185, 131, 219, 227, 25, 52,\n\t\t110, 221, 32, 195, 92, 86, 103, 175, 81, 233, 155, 144, 183,\n\t\t227, 3, 95, 247, 198, 36, 228, 109, 86, 118, 81, 169, 155,\n\t\t186, 148, 179, 87, 95, 90, 73, 36, 168, 219, 150, 174, 246,\n\t\t45, 59, 9, 125, 83, 242, 214, 247, 189, 11, 234, 86, 184,\n\t\t126, 149, 208, 57, 253, 170, 216, 207, 105, 161, 24, 199,\n\t\t71, 135, 248, 103, 189, 116, 116, 12, 43, 217, 90, 25, 34,\n\t\t245, 172, 212, 41, 43, 74, 231, 123, 193, 241, 43, 155, 253,\n\t\t201, 115, 113, 107, 123, 198, 190, 142, 152, 42, 223, 207,\n\t\t37, 241, 55, 159, 140, 219, 85, 142, 242, 183, 111, 143, 251,\n\t\t221, 165, 104, 131, 167, 115, 205, 122, 231, 40, 125, 174,\n\t\t208, 56, 101, 147, 17, 223, 209, 17, 18, 74, 66, 143, 56,\n\t\t96, 217, 101, 9, 37, 139, 118, 189, 121, 28, 222, 174, 175,\n\t\t107, 36, 153, 60, 193, 1, 203, 78, 34, 245, 249, 161, 105,\n\t\t91, 253, 38, 82, 31, 14, 28, 99, 200, 140, 238, 237, 129,\n\t\t52, 238, 4, 221, 27, 185, 210, 88, 11, 184, 250, 84, 189,\n\t\t152, 12, 104, 135, 231, 66, 200, 26, 112, 201, 16, 19, 180,\n\t\t190, 177, 234, 46, 169, 37, 241, 200, 42, 79, 232, 115, 36,\n\t\t82, 4, 84, 56, 79, 107, 183, 38, 65, 169, 209, 118, 225, 217,\n\t\t44, 120, 86, 244, 196, 166, 203, 172, 115, 172, 30, 142, 9,\n\t\t216, 8, 0, 205, 20, 151, 201, 98, 10, 92, 51, 156, 7, 42,\n\t\t42, 73, 39, 46, 21, 218, 169, 188, 38, 16, 46, 183, 94, 239,\n\t\t214, 216, 160, 157, 179, 214, 84, 192, 41, 123, 31, 179, 109,\n\t\t195, 236, 72, 24, 9, 193, 196, 80, 121, 79, 224, 135, 86,\n\t\t49, 73, 29, 75, 136, 163, 186, 108, 106, 191, 158, 31, 28,\n\t\t109, 134, 56, 134, 70, 75, 26, 57, 224, 57, 227, 144, 111,\n\t\t136, 35, 218, 57, 218, 206, 222, 241, 29, 100, 16, 163, 98,\n\t\t96, 230, 230, 84, 137, 24, 100, 11, 196, 211, 96, 0, 246,\n\t\t49, 122, 211, 156, 196, 68, 49, 252, 173, 20, 236, 54, 48,\n\t\t185, 187, 137, 254, 89, 68, 55, 33, 90, 202, 153, 90, 100,\n\t\t25, 70, 227, 10, 112, 249, 28, 144, 134, 221, 90, 209, 36,\n\t\t53, 173, 50, 27, 205, 180, 104, 134, 105, 178, 88, 51, 156,\n\t\t242, 143, 179, 178, 175, 42, 52, 63, 63, 254, 114, 22, 52,\n\t\t30, 236, 21, 125, 102, 172, 36, 208, 235, 70, 184, 238, 176,\n\t\t135, 240, 153, 235, 14, 123, 41, 95, 139, 71, 197, 129, 91,\n\t\t119, 147, 179, 55, 242, 76, 250, 24, 175, 121, 110, 133, 226,\n\t\t95, 140, 33, 117, 22, 161, 166, 201, 123, 73, 122, 90, 144,\n\t\t130, 224, 157, 90, 227, 87, 95, 200, 168, 249, 124, 164, 45,\n\t\t190, 146, 217, 53, 125, 175, 193, 31, 174, 166, 44, 173, 241,\n\t\t249, 193, 231, 56, 6, 104, 129, 129, 191, 222, 108, 21, 133,\n\t\t107, 243, 138, 188, 78, 255, 246, 244, 119, 91, 30, 237, 94,\n\t\t47, 113, 69, 5, 138, 218, 46, 133, 83, 180, 172, 16, 244,\n\t\t182, 18, 155, 192, 142, 153, 252, 119, 142, 38, 215, 156,\n\t\t0, 7, 128, 191, 206, 51, 188, 85, 191, 206, 166, 21, 132,\n\t\t216, 227, 141, 192, 249, 1, 233, 213, 197, 217, 96, 18, 156,\n\t\t54, 241, 119, 120, 69, 93, 197, 73, 93, 248, 17, 243, 97,\n\t\t170, 150, 55, 247, 13, 149, 202, 188, 124, 250, 245, 195,\n\t\t215, 115, 219, 64, 240, 103, 105, 24, 142, 141, 90, 26, 250,\n\t\t253, 6, 69, 227, 53, 163, 214, 139, 138, 198, 106, 175, 68,\n\t\t199, 93, 208, 179, 238, 170, 76, 82, 180, 28, 243, 129, 23,\n\t\t173, 56, 107, 119, 35, 32, 50, 159, 236, 183, 215, 82, 228,\n\t\t33, 198, 48, 35, 67, 133, 195, 126, 218, 92, 243, 131, 106,\n\t\t101, 179, 135, 0, 55, 42, 229, 50, 187, 74, 147, 211, 205,\n\t\t70, 127, 152, 194, 29, 184, 59, 46, 215, 27, 40, 40, 33, 107,\n\t\t254, 92, 253, 154, 220, 91, 211, 204, 181, 236, 208, 117,\n\t\t89, 245, 234, 75, 126, 131, 234, 245, 241, 219, 183, 175,\n\t\t127, 16, 147, 36, 94, 8, 211, 199, 175, 127, 156, 186, 86,\n\t\t7, 164, 237, 248, 167, 134, 236, 33, 138, 22, 41, 127, 223,\n\t\t142, 230, 224, 92, 30, 118, 185, 204, 186, 74, 236, 184, 198,\n\t\t93, 120, 150, 185, 152, 133, 69, 104, 65, 107, 227, 212, 218,\n\t\t221, 80, 35, 173, 141, 244, 52, 9, 13, 165, 27, 53, 69, 68,\n\t\t67, 240, 26, 62, 221, 164, 93, 46, 7, 119, 35, 236, 235, 108,\n\t\t58, 151, 167, 255, 156, 242, 191, 97, 77, 219, 80, 37, 76,\n\t\t142, 166, 243, 102, 88, 221, 125, 147, 251, 252, 16, 123,\n\t\t244, 29, 207, 231, 219, 39, 239, 44, 72, 239, 249, 33, 212,\n\t\t56, 250, 251, 124, 27, 119, 52, 109, 135, 41, 23, 245, 159,\n\t\t234, 179, 32, 90, 181, 44, 142, 2, 36, 126, 244, 105, 184,\n\t\t141, 213, 178, 240, 147, 58, 87, 250, 23, 85, 109, 231, 141,\n\t\t170, 165, 230, 119, 206, 221, 128, 178, 122, 213, 140, 126,\n\t\t251, 244, 203, 238, 124, 74, 31, 255, 209, 33, 149, 72, 123,\n\t\t92, 252, 1, 147, 250, 226, 54, 165, 233, 228, 217, 212, 201,\n\t\t212, 185, 116, 185, 111, 149, 69, 118, 223, 125, 232, 54,\n\t\t186, 85, 251, 198, 91, 119, 32, 71, 255, 168, 200, 46, 181,\n\t\t31, 114, 193, 178, 186, 78, 203, 95, 55, 161, 191, 159, 98,\n\t\t77, 132, 116, 20, 34, 61, 37, 18, 4, 56, 231, 220, 235, 103,\n\t\t238, 210, 174, 101, 130, 27, 154, 23, 116, 196, 81, 38, 232,\n\t\t13, 59, 242, 194, 28, 63, 63, 248, 146, 199, 28, 119, 180,\n\t\t71, 175, 159, 121, 14, 160, 167, 101, 152, 167, 149, 178,\n\t\t66, 124, 212, 61, 170, 180, 79, 246, 220, 109, 108, 35, 153,\n\t\t208, 179, 249, 60, 154, 200, 169, 19, 235, 29, 32, 220, 157,\n\t\t187, 121, 130, 95, 157, 210, 95, 158, 62, 159, 78, 225, 227,\n\t\t89, 152, 237, 70, 92, 17, 123, 160, 42, 67, 236, 88, 84, 87,\n\t\t68, 43, 155, 207, 21, 233, 195, 210, 154, 146, 171, 88, 140,\n\t\t107, 109, 246, 170, 134, 138, 93, 37, 46, 221, 238, 230, 46,\n\t\t140, 37, 226, 95, 68, 209, 187, 76, 30, 9, 50, 162, 53, 112,\n\t\t8, 229, 214, 210, 70, 161, 117, 90, 34, 33, 177, 150, 223,\n\t\t148, 23, 85, 6, 7, 94, 48, 116, 79, 77, 94, 236, 45, 106,\n\t\t131, 206, 218, 81, 122, 60, 204, 50, 248, 26, 190, 153, 215,\n\t\t173, 109, 245, 231, 46, 36, 64, 250, 69, 83, 198, 104, 45,\n\t\t199, 80, 2, 110, 74, 3, 35, 91, 222, 101, 241, 135, 123, 240,\n\t\t209, 155, 76, 207, 45, 83, 18, 23, 49, 186, 239, 90, 68, 1,\n\t\t150, 67, 203, 187, 169, 241, 170, 122, 126, 112, 193, 153,\n\t\t192, 47, 100, 229, 228, 214, 10, 123, 35, 244, 142, 52, 252,\n\t\t252, 80, 69, 173, 233, 83, 70, 138, 63, 104, 54, 168, 2, 245,\n\t\t58, 204, 212, 77, 39, 93, 114, 205, 25, 143, 103, 155, 198,\n\t\t84, 250, 24, 76, 24, 250, 53, 46, 119, 147, 107, 193, 136,\n\t\t168, 222, 184, 226, 220, 171, 10, 173, 93, 151, 141, 63, 127,\n\t\t253, 242, 244, 191, 211, 135, 79, 203, 114, 65, 177, 21, 62,\n\t\t158, 57, 171, 173, 177, 221, 193, 91, 200, 76, 200, 124, 1,\n\t\t140, 35, 172, 50, 203, 136, 189, 172, 252, 5, 121, 207, 206,\n\t\t212, 98, 29, 124, 74, 169, 140, 61, 73, 233, 230, 180, 190,\n\t\t75, 101, 244, 46, 157, 54, 244, 155, 223, 165, 87, 51, 27,\n\t\t70, 224, 242, 66, 111, 243, 77, 241, 53, 9, 185, 123, 115,\n\t\t72, 224, 184, 73, 8, 117, 131, 67, 70, 133, 154, 10, 216,\n\t\t21, 47, 63, 128, 2, 119, 148, 186, 4, 118, 38, 139, 124, 89,\n\t\t72, 51, 212, 138, 71, 22, 68, 83, 45, 167, 67, 12, 134, 19,\n\t\t187, 69, 99, 131, 245, 5, 86, 51, 164, 127, 135, 109, 215,\n\t\t181, 2, 28, 27, 228, 241, 129, 118, 165, 37, 164, 60, 74,\n\t\t140, 255, 27, 25, 8, 103, 83, 146, 57, 93, 52, 14, 67, 19,\n\t\t24, 168, 217, 100, 235, 0, 72, 30, 76, 0, 138, 183, 51, 33,\n\t\t2, 55, 57, 34, 218, 206, 47, 213, 84, 228, 212, 68, 127, 156,\n\t\t77, 51, 53, 85, 161, 192, 229, 0, 166, 179, 134, 164, 157,\n\t\t94, 48, 204, 189, 185, 81, 155, 177, 72, 206, 18, 218, 40,\n\t\t205, 160, 221, 88, 194, 98, 77, 228, 252, 13, 22, 173, 197,\n\t\t114, 152, 82, 66, 114, 77, 86, 222, 233, 16, 195, 225, 166,\n\t\t143, 243, 116, 226, 56, 131, 71, 54, 55, 225, 54, 147, 97,\n\t\t24, 146, 183, 235, 184, 206, 81, 125, 126, 200, 182, 66, 126,\n\t\t116, 5, 73, 44, 86, 87, 11, 12, 56, 123, 85, 116, 151, 7,\n\t\t125, 168, 223, 63, 202, 228, 159, 74, 150, 76, 254, 92, 145,\n\t\t102, 242, 215, 7, 131, 23, 239, 6, 125, 100, 211, 10, 251,\n\t\t124, 164, 146, 57, 136, 213, 209, 97, 35, 174, 138, 72, 114,\n\t\t219, 93, 124, 144, 167, 134, 93, 124, 118, 234, 177, 169,\n\t\t15, 77, 219, 251, 147, 130, 207, 80, 61, 107, 53, 34, 157,\n\t\t226, 49, 145, 78, 185, 22, 125, 100, 115, 19, 255, 223, 227,\n\t\t82, 50, 47, 95, 247, 167, 142, 16, 209, 253, 48, 206, 64,\n\t\t215, 37, 98, 0, 38, 188, 81, 136, 125, 217, 127, 104, 120,\n\t\t8, 9, 189, 74, 193, 68, 68, 139, 179, 175, 164, 252, 88, 78,\n\t\t11, 230, 168, 199, 162, 254, 232, 5, 206, 243, 25, 11, 94,\n\t\t131, 79, 25, 24, 253, 249, 107, 20, 120, 34, 174, 222, 36,\n\t\t235, 123, 124, 190, 174, 37, 66, 218, 237, 218, 33, 237, 207,\n\t\t89, 15, 231, 233, 172, 71, 189, 39, 23, 106, 28, 214, 62,\n\t\t109, 186, 164, 95, 114, 210, 53, 237, 25, 228, 82, 124, 208,\n\t\t139, 221, 57, 235, 205, 89, 175, 214, 225, 209, 202, 78, 59,\n\t\t18, 87, 155, 242, 81, 243, 253, 186, 15, 203, 139, 211, 36,\n\t\t127, 135, 249, 180, 27, 218, 250, 121, 93, 103, 83, 180, 178,\n\t\t248, 218, 157, 206, 227, 203, 104, 232, 112, 222, 133, 75,\n\t\t245, 241, 235, 111, 167, 90, 231, 248, 216, 161, 106, 92,\n\t\t140, 163, 143, 246, 245, 46, 100, 251, 59, 156, 211, 152,\n\t\t33, 127, 199, 234, 137, 219, 120, 83, 245, 195, 125, 245,\n\t\t67, 47, 228, 242, 236, 162, 51, 176, 151, 147, 220, 210, 4,\n\t\t146, 2, 23, 222, 66, 20, 137, 134, 127, 143, 147, 150, 34,\n\t\t9, 112, 105, 221, 237, 82, 237, 189, 77, 101, 187, 40, 171,\n\t\t223, 55, 53, 46, 106, 164, 70, 209, 128, 129, 40, 72, 39,\n\t\t147, 11, 13, 129, 19, 89, 222, 105, 27, 233, 67, 216, 182,\n\t\t142, 188, 33, 11, 205, 69, 32, 131, 132, 142, 93, 209, 89,\n\t\t241, 117, 129, 251, 60, 67, 76, 98, 94, 213, 33, 193, 193,\n\t\t24, 132, 107, 142, 98, 18, 47, 28, 29, 49, 79, 33, 16, 241,\n\t\t23, 54, 94, 190, 162, 168, 99, 168, 22, 56, 159, 77, 128,\n\t\t142, 36, 154, 54, 242, 192, 208, 184, 96, 33, 88, 17, 209,\n\t\t98, 157, 233, 14, 116, 109, 182, 142, 106, 142, 69, 24, 93,\n\t\t182, 123, 26, 97, 101, 69, 121, 84, 81, 138, 225, 237, 166,\n\t\t91, 92, 1, 135, 200, 118, 59, 174, 218, 111, 129, 99, 131,\n\t\t142, 6, 229, 228, 27, 99, 70, 44, 94, 93, 212, 189, 19, 18,\n\t\t217, 157, 214, 125, 101, 239, 133, 137, 1, 41, 216, 179, 68,\n\t\t241, 43, 0, 86, 34, 118, 106, 49, 38, 91, 30, 23, 47, 166,\n\t\t104, 21, 201, 144, 220, 140, 97, 11, 48, 34, 169, 16, 121,\n\t\t111, 139, 35, 129, 82, 68, 146, 165, 135, 145, 23, 169, 36,\n\t\t137, 93, 28, 121, 66, 250, 126, 199, 55, 20, 137, 158, 209,\n\t\t130, 235, 254, 134, 159, 63, 45, 79, 211, 31, 159, 190, 156,\n\t\t134, 34, 199, 143, 231, 9, 218, 142, 2, 175, 222, 67, 255,\n\t\t25, 171, 234, 63, 195, 170, 255, 44, 86, 130, 117, 84, 206,\n\t\t238, 5, 183, 162, 119, 246, 71, 37, 171, 158, 37, 228, 100,\n\t\t234, 232, 66, 53, 8, 196, 225, 141, 86, 217, 165, 69, 230,\n\t\t54, 240, 143, 160, 206, 5, 129, 243, 137, 209, 14, 65, 254,\n\t\t103, 44, 25, 158, 225, 164, 48, 75, 206, 91, 211, 250, 245,\n\t\t158, 196, 46, 246, 67, 177, 71, 15, 200, 253, 213, 57, 170,\n\t\t119, 65, 241, 68, 116, 118, 181, 117, 105, 124, 86, 169, 184,\n\t\t174, 120, 43, 88, 247, 250, 158, 110, 197, 73, 94, 156, 123,\n\t\t104, 151, 151, 141, 152, 192, 227, 4, 193, 144, 170, 177,\n\t\t255, 222, 103, 141, 114, 138, 253, 158, 220, 66, 34, 247,\n\t\t222, 73, 93, 190, 58, 84, 218, 166, 52, 249, 252, 192, 176,\n\t\t144, 175, 245, 75, 222, 223, 73, 136, 159, 31, 130, 175, 163,\n\t\t207, 149, 182, 128, 84, 159, 82, 87, 101, 202, 22, 210, 105,\n\t\t143, 188, 3, 102, 37, 2, 91, 47, 57, 161, 148, 85, 198, 222,\n\t\t233, 206, 119, 86, 48, 147, 26, 235, 186, 6, 142, 164, 179,\n\t\t156, 175, 73, 156, 112, 212, 149, 168, 7, 193, 57, 168, 176,\n\t\t69, 169, 130, 169, 101, 151, 142, 210, 221, 116, 48, 242,\n\t\t28, 225, 230, 56, 184, 133, 235, 228, 230, 102, 206, 150,\n\t\t3, 49, 67, 188, 210, 164, 243, 244, 53, 234, 103, 119, 115,\n\t\t59, 63, 126, 249, 229, 219, 255, 158, 236, 228, 148, 242,\n\t\t79, 187, 147, 209, 147, 144, 231, 32, 171, 210, 142, 89, 15,\n\t\t78, 167, 17, 44, 170, 135, 144, 200, 198, 97, 245, 50, 210,\n\t\t53, 93, 116, 151, 119, 178, 26, 186, 171, 148, 108, 189, 149,\n\t\t236, 87, 117, 151, 214, 5, 72, 114, 48, 123, 236, 244, 189,\n\t\t48, 79, 10, 62, 230, 181, 223, 37, 173, 191, 155, 204, 189,\n\t\t157, 187, 155, 18, 139, 249, 190, 187, 41, 241, 62, 237, 251,\n\t\t121, 143, 18, 112, 17, 66, 153, 122, 23, 59, 101, 242, 250,\n\t\t132, 184, 92, 37, 89, 156, 26, 209, 169, 3, 33, 215, 207,\n\t\t15, 60, 148, 154, 92, 188, 232, 168, 233, 150, 147, 163, 155,\n\t\t247, 29, 46, 46, 48, 65, 80, 84, 179, 191, 224, 138, 116,\n\t\t133, 163, 42, 233, 153, 140, 214, 22, 228, 190, 182, 12, 87,\n\t\t134, 72, 182, 204, 34, 181, 108, 58, 57, 37, 87, 207, 90,\n\t\t49, 44, 249, 38, 62, 180, 242, 164, 190, 216, 253, 72, 173,\n\t\t62, 162, 182, 168, 165, 66, 65, 60, 235, 147, 147, 190, 169,\n\t\t7, 113, 247, 110, 83, 219, 149, 84, 48, 175, 179, 174, 16,\n\t\t114, 0, 132, 225, 254, 116, 151, 174, 208, 47, 144, 128, 107,\n\t\t244, 217, 155, 54, 247, 15, 209, 23, 84, 203, 71, 18, 166,\n\t\t208, 156, 77, 123, 76, 97, 116, 72, 38, 144, 153, 222, 186,\n\t\t194, 81, 117, 140, 64, 233, 205, 6, 51, 48, 73, 180, 213,\n\t\t165, 121, 187, 194, 18, 207, 221, 139, 159, 3, 238, 48, 110,\n\t\t138, 252, 230, 131, 142, 234, 60, 173, 163, 141, 123, 29,\n\t\t113, 78, 190, 229, 100, 118, 104, 200, 121, 196, 5, 176, 137,\n\t\t217, 51, 253, 240, 254, 118, 91, 233, 244, 77, 74, 246, 241,\n\t\t211, 243, 243, 25, 37, 203, 229, 231, 165, 100, 52, 83, 163,\n\t\t183, 205, 52, 228, 225, 18, 13, 116, 255, 193, 26, 251, 245,\n\t\t82, 153, 60, 197, 122, 91, 56, 195, 18, 123, 31, 10, 167,\n\t\t170, 250, 116, 249, 129, 188, 135, 40, 232, 138, 118, 169,\n\t\t84, 174, 68, 52, 64, 58, 103, 69, 38, 211, 23, 196, 65, 90,\n\t\t44, 211, 252, 228, 162, 161, 132, 18, 230, 135, 38, 181, 128,\n\t\t67, 73, 238, 171, 104, 152, 229, 254, 209, 237, 126, 161,\n\t\t253, 90, 78, 191, 104, 209, 248, 66, 249, 187, 86, 195, 43,\n\t\t144, 107, 225, 223, 90, 201, 254, 232, 227, 109, 255, 236,\n\t\t101, 13, 86, 212, 207, 217, 22, 20, 14, 173, 57, 26, 191,\n\t\t23, 106, 122, 126, 8, 133, 38, 51, 88, 111, 28, 62, 141, 79,\n\t\t128, 254, 146, 76, 255, 26, 86, 194, 240, 140, 151, 123, 32,\n\t\t31, 76, 141, 87, 229, 41, 142, 198, 234, 180, 249, 187, 167,\n\t\t249, 123, 46, 153, 225, 222, 169, 254, 110, 107, 230, 59,\n\t\t44, 153, 114, 119, 53, 194, 105, 148, 60, 92, 133, 228, 190,\n\t\t24, 249, 184, 191, 35, 138, 242, 42, 41, 252, 207, 242, 251,\n\t\t126, 119, 150, 140, 46, 157, 67, 241, 255, 52, 196, 48, 68,\n\t\t246, 108, 139, 194, 10, 219, 177, 178, 62, 26, 83, 69, 191,\n\t\t171, 221, 247, 235, 137, 11, 232, 223, 176, 167, 31, 219,\n\t\t27, 213, 238, 55, 239, 225, 127, 174, 223, 149, 252, 221,\n\t\t32, 63, 2, 180, 98, 117, 94, 125, 176, 182, 46, 88, 226, 110,\n\t\t117, 234, 146, 197, 133, 27, 39, 44, 246, 184, 218, 31, 249,\n\t\t100, 193, 5, 203, 7, 143, 232, 96, 11, 176, 122, 102, 25,\n\t\t222, 250, 241, 251, 243, 145, 124, 126, 112, 201, 127, 215,\n\t\t241, 128, 235, 229, 251, 141, 7, 82, 17, 16, 83, 168, 242,\n\t\t215, 90, 127, 131, 133, 113, 173, 159, 169, 84, 175, 127,\n\t\t55, 33, 194, 121, 125, 79, 219, 211, 231, 164, 61, 169, 6,\n\t\t255, 239, 156, 191, 174, 57, 253, 207, 183, 175, 127, 124,\n\t\t185, 4, 198, 153, 202, 207, 171, 67, 193, 85, 180, 111, 96,\n\t\t66, 135, 123, 132, 127, 145, 243, 139, 127, 189, 174, 246,\n\t\t78, 85, 45, 18, 226, 195, 132, 37, 146, 99, 237, 58, 79, 81,\n\t\t14, 52, 221, 73, 217, 137, 214, 13, 130, 25, 151, 245, 96,\n\t\t26, 21, 187, 228, 100, 116, 172, 21, 28, 128, 150, 141, 69,\n\t\t166, 202, 87, 132, 154, 226, 160, 83, 70, 190, 168, 140, 196,\n\t\t127, 247, 180, 187, 69, 95, 170, 60, 67, 231, 249, 147, 156,\n\t\t237, 34, 25, 118, 233, 194, 155, 52, 170, 218, 151, 241, 94,\n\t\t68, 45, 89, 198, 160, 12, 190, 136, 185, 89, 59, 164, 240,\n\t\t13, 124, 125, 221, 167, 227, 219, 167, 207, 231, 217, 174,\n\t\t83, 249, 207, 79, 187, 176, 223, 166, 191, 26, 94, 169, 192,\n\t\t122, 117, 3, 175, 168, 63, 178, 235, 219, 203, 113, 246, 215,\n\t\t172, 162, 0, 42, 123, 49, 136, 254, 5, 132, 70, 215, 16, 42,\n\t\t146, 145, 184, 3, 30, 79, 135, 233, 122, 238, 13, 34, 227,\n\t\t244, 130, 11, 252, 134, 191, 153, 205, 163, 238, 162, 229,\n\t\t140, 15, 218, 72, 61, 76, 28, 80, 143, 82, 173, 105, 83, 28,\n\t\t108, 188, 240, 112, 64, 212, 235, 121, 113, 182, 176, 143,\n\t\t87, 238, 190, 143, 59, 127, 138, 246, 44, 106, 3, 78, 87,\n\t\t47, 142, 28, 117, 184, 154, 166, 196, 71, 110, 192, 222, 218,\n\t\t101, 103, 103, 71, 181, 63, 237, 22, 11, 41, 152, 60, 186,\n\t\t24, 160, 127, 31, 85, 241, 225, 154, 104, 223, 146, 1, 24,\n\t\t181, 28, 42, 172, 147, 27, 230, 169, 50, 92, 44, 219, 188,\n\t\t122, 128, 43, 60, 234, 2, 128, 189, 236, 30, 80, 92, 64, 4,\n\t\t19, 57, 10, 119, 170, 157, 53, 209, 77, 19, 1, 90, 5, 31,\n\t\t69, 26, 211, 200, 94, 110, 108, 246, 80, 244, 177, 14, 55,\n\t\t71, 85, 6, 5, 209, 126, 216, 100, 114, 191, 220, 107, 48,\n\t\t160, 232, 27, 249, 174, 220, 252, 231, 147, 147, 91, 203,\n\t\t246, 130, 3, 86, 170, 231, 233, 124, 215, 165, 107, 105, 113,\n\t\t33, 37, 53, 103, 125, 80, 211, 184, 143, 221, 74, 50, 78,\n\t\t10, 233, 102, 103, 78, 87, 78, 167, 102, 93, 23, 4, 235, 201,\n\t\t203, 122, 54, 178, 198, 17, 230, 73, 64, 15, 245, 167, 133,\n\t\t1, 237, 80, 112, 235, 163, 26, 17, 174, 29, 240, 221, 157,\n\t\t114, 92, 91, 119, 29, 139, 170, 246, 5, 34, 252, 247, 90,\n\t\t35, 119, 43, 209, 153, 223, 219, 239, 47, 168, 135, 199, 180,\n\t\t237, 174, 190, 129, 217, 251, 231, 12, 199, 240, 186, 241,\n\t\t120, 195, 112, 252, 96, 132, 109, 248, 43, 40, 219, 43, 9,\n\t\t155, 100, 231, 56, 37, 108, 206, 126, 71, 154, 54, 92, 39,\n\t\t106, 55, 105, 194, 135, 167, 199, 83, 87, 224, 84, 207, 19,\n\t\t36, 255, 123, 158, 221, 63, 237, 47, 156, 103, 152, 118, 201,\n\t\t163, 241, 231, 231, 253, 214, 89, 70, 85, 143, 222, 101, 131,\n\t\t164, 253, 66, 48, 212, 120, 150, 87, 135, 44, 217, 210, 170,\n\t\t220, 85, 135, 105, 113, 72, 10, 98, 41, 42, 66, 106, 82, 214,\n\t\t159, 251, 164, 230, 19, 47, 33, 243, 137, 199, 6, 190, 90,\n\t\t108, 186, 144, 28, 50, 24, 44, 175, 66, 88, 89, 243, 42, 241,\n\t\t251, 170, 10, 93, 77, 58, 157, 59, 179, 26, 54, 63, 74, 234,\n\t\t96, 216, 109, 93, 153, 21, 238, 200, 245, 20, 53, 10, 109,\n\t\t164, 34, 30, 28, 94, 228, 106, 63, 249, 176, 42, 40, 217,\n\t\t36, 136, 251, 42, 17, 14, 98, 16, 118, 236, 87, 203, 242,\n\t\t154, 26, 140, 85, 180, 140, 93, 156, 20, 178, 136, 166, 159,\n\t\t31, 124, 121, 203, 80, 255, 125, 35, 61, 252, 173, 67, 253,\n\t\t39, 70, 250, 46, 90, 54, 237, 255, 120, 122, 60, 103, 115,\n\t\t206, 19, 120, 119, 138, 22, 163, 29, 57, 8, 180, 177, 40,\n\t\t149, 212, 211, 83, 133, 117, 45, 72, 124, 50, 146, 100, 5,\n\t\t248, 88, 140, 71, 33, 146, 161, 94, 6, 146, 233, 8, 201, 133,\n\t\t84, 99, 32, 54, 93, 189, 148, 12, 100, 118, 102, 55, 36, 113,\n\t\t86, 234, 53, 76, 69, 99, 68, 180, 64, 235, 4, 179, 168, 44,\n\t\t71, 143, 127, 232, 94, 90, 122, 90, 75, 137, 28, 208, 52,\n\t\t219, 10, 108, 139, 72, 168, 100, 194, 155, 105, 20, 186, 193,\n\t\t52, 10, 109, 109, 73, 20, 104, 227, 74, 162, 96, 131, 126,\n\t\t137, 68, 65, 233, 1, 234, 203, 50, 88, 147, 175, 74, 43, 168,\n\t\t73, 39, 192, 76, 27, 78, 232, 47, 183, 122, 68, 127, 159,\n\t\t31, 66, 1, 127, 70, 251, 112, 187, 196, 25, 87, 196, 197,\n\t\t117, 165, 27, 77, 102, 246, 131, 47, 248, 87, 80, 147, 191,\n\t\t145, 112, 63, 63, 196, 74, 103, 170, 207, 205, 248, 25, 39,\n\t\t190, 172, 116, 93, 172, 73, 148, 90, 189, 160, 136, 107, 220,\n\t\t159, 137, 248, 27, 230, 216, 189, 138, 234, 198, 141, 142,\n\t\t61, 158, 124, 50, 30, 224, 57, 104, 103, 147, 177, 79, 167,\n\t\t208, 193, 19, 48, 116, 72, 53, 85, 97, 68, 69, 109, 83, 149,\n\t\t160, 215, 16, 165, 44, 30, 0, 61, 211, 157, 179, 85, 47, 56,\n\t\t42, 45, 108, 163, 210, 100, 136, 175, 178, 35, 251, 11, 108,\n\t\t14, 176, 4, 60, 43, 14, 37, 223, 174, 106, 26, 85, 219, 157,\n\t\t163, 16, 4, 245, 80, 178, 163, 239, 190, 147, 157, 154, 176,\n\t\t232, 193, 59, 93, 100, 219, 84, 77, 158, 183, 1, 133, 155,\n\t\t165, 203, 127, 255, 159, 90, 185, 239, 121, 14, 222, 62, 172,\n\t\t118, 79, 143, 223, 206, 220, 183, 83, 61, 207, 113, 223, 15,\n\t\t170, 183, 240, 174, 175, 100, 93, 175, 73, 44, 127, 21, 235,\n\t\t234, 173, 53, 8, 243, 54, 97, 88, 166, 162, 196, 131, 189,\n\t\t116, 231, 110, 140, 87, 117, 123, 16, 8, 40, 95, 64, 122,\n\t\t112, 184, 114, 24, 159, 159, 243, 138, 67, 199, 123, 140,\n\t\t11, 70, 205, 144, 24, 21, 220, 209, 47, 221, 177, 140, 171,\n\t\t115, 139, 87, 95, 205, 89, 179, 108, 74, 23, 104, 123, 226,\n\t\t173, 32, 84, 37, 98, 222, 197, 173, 193, 235, 233, 164, 122,\n\t\t255, 160, 131, 225, 197, 30, 232, 85, 5, 25, 1, 238, 214,\n\t\t79, 191, 172, 254, 83, 147, 206, 18, 24, 132, 173, 126, 21,\n\t\t102, 139, 252, 252, 16, 106, 35, 138, 155, 138, 201, 243,\n\t\t198, 73, 193, 109, 157, 168, 144, 92, 138, 247, 129, 38, 61,\n\t\t149, 117, 176, 14, 170, 250, 84, 110, 98, 71, 52, 115, 160,\n\t\t130, 154, 137, 211, 91, 26, 243, 218, 213, 172, 94, 88, 73,\n\t\t236, 37, 94, 92, 149, 138, 124, 179, 166, 35, 213, 79, 165,\n\t\t47, 157, 187, 98, 3, 9, 25, 169, 5, 190, 199, 36, 135, 135,\n\t\t111, 88, 86, 223, 218, 62, 37, 50, 35, 179, 58, 128, 138,\n\t\t186, 35, 168, 75, 150, 98, 161, 197, 14, 157, 233, 127, 56,\n\t\t245, 196, 75, 114, 234, 240, 130, 160, 122, 147, 124, 236,\n\t\t255, 191, 223, 63, 125, 57, 231, 115, 207, 130, 120, 255,\n\t\t149, 220, 95, 65, 254, 126, 24, 77, 180, 171, 166, 141, 174,\n\t\t70, 227, 215, 56, 143, 142, 105, 170, 140, 129, 3, 119, 43,\n\t\t204, 44, 49, 52, 75, 16, 143, 211, 200, 251, 113, 88, 166,\n\t\t147, 146, 89, 243, 138, 70, 179, 230, 119, 117, 110, 60, 170,\n\t\t102, 14, 66, 235, 53, 94, 91, 157, 94, 49, 196, 10, 122, 99,\n\t\t18, 220, 55, 35, 132, 29, 177, 175, 242, 134, 236, 182, 88,\n\t\t153, 162, 158, 15, 153, 251, 176, 239, 24, 5, 85, 143, 223,\n\t\t147, 39, 150, 73, 106, 94, 227, 218, 149, 239, 112, 61, 132,\n\t\t98, 157, 105, 237, 207, 243, 67, 200, 142, 142, 142, 234,\n\t\t76, 25, 80, 73, 196, 23, 11, 145, 58, 102, 93, 242, 73, 227,\n\t\t218, 187, 158, 170, 247, 168, 243, 218, 51, 174, 51, 9, 101,\n\t\t242, 125, 38, 104, 100, 244, 162, 231, 248, 231, 161, 100,\n\t\t207, 47, 100, 28, 81, 46, 106, 59, 226, 96, 69, 215, 137,\n\t\t154, 100, 166, 150, 211, 130, 89, 249, 14, 174, 73, 190, 126,\n\t\t187, 4, 80, 211, 176, 126, 240, 20, 59, 45, 23, 193, 36, 157,\n\t\t12, 26, 117, 241, 94, 82, 51, 253, 246, 244, 248, 237, 156,\n\t\t95, 233, 57, 76, 157, 43, 198, 141, 89, 144, 38, 179, 236,\n\t\t131, 46, 125, 245, 137, 139, 27, 68, 91, 101, 204, 231, 53,\n\t\t221, 109, 95, 10, 90, 130, 200, 135, 30, 150, 97, 173, 105,\n\t\t243, 68, 188, 156, 87, 232, 199, 84, 54, 204, 61, 109, 104,\n\t\t38, 8, 154, 213, 6, 137, 29, 3, 159, 242, 42, 61, 11, 151,\n\t\t156, 86, 207, 76, 233, 101, 149, 141, 51, 187, 44, 158, 110,\n\t\t18, 167, 80, 36, 42, 195, 203, 53, 160, 251, 90, 35, 30, 32,\n\t\t99, 203, 150, 164, 55, 18, 152, 236, 53, 143, 175, 10, 133,\n\t\t107, 198, 93, 89, 120, 177, 40, 98, 166, 103, 118, 5, 128,\n\t\t155, 212, 177, 214, 179, 128, 107, 200, 87, 195, 28, 142,\n\t\t72, 228, 30, 231, 88, 97, 211, 21, 30, 223, 57, 211, 198,\n\t\t162, 162, 79, 33, 90, 38, 87, 115, 168, 42, 250, 151, 178,\n\t\t114, 234, 188, 233, 3, 137, 72, 158, 179, 212, 12, 243, 20,\n\t\t123, 63, 192, 31, 243, 108, 84, 54, 106, 196, 206, 48, 219,\n\t\t78, 250, 120, 204, 51, 56, 31, 89, 85, 22, 128, 2, 124, 137,\n\t\t216, 251, 168, 106, 7, 27, 56, 138, 78, 39, 23, 65, 119, 83,\n\t\t98, 204, 134, 89, 83, 72, 115, 46, 105, 196, 235, 240, 242,\n\t\t116, 84, 7, 114, 189, 178, 127, 184, 247, 197, 84, 235, 158,\n\t\t31, 162, 175, 212, 84, 11, 198, 207, 202, 124, 232, 72, 171,\n\t\t80, 87, 71, 12, 19, 18, 46, 104, 30, 141, 166, 249, 128, 188,\n\t\t178, 10, 204, 83, 197, 212, 191, 184, 154, 108, 221, 60, 225,\n\t\t221, 73, 199, 120, 226, 65, 158, 74, 79, 122, 140, 97, 214,\n\t\t235, 25, 219, 87, 98, 211, 179, 230, 54, 26, 167, 38, 29,\n\t\t151, 176, 162, 57, 138, 32, 226, 58, 145, 97, 218, 165, 7,\n\t\t137, 239, 236, 43, 184, 50, 223, 51, 39, 235, 130, 237, 225,\n\t\t51, 194, 60, 213, 172, 146, 47, 23, 12, 243, 58, 234, 60,\n\t\t232, 58, 230, 60, 228, 58, 226, 89, 172, 73, 89, 17, 201,\n\t\t149, 204, 229, 76, 75, 26, 191, 1, 89, 65, 131, 29, 90, 52,\n\t\t141, 147, 236, 207, 147, 110, 236, 141, 94, 69, 183, 182,\n\t\t2, 54, 203, 62, 224, 157, 45, 219, 88, 247, 181, 110, 235,\n\t\t10, 246, 153, 87, 44, 246, 180, 247, 138, 170, 61, 234, 134,\n\t\t198, 126, 214, 237, 220, 179, 84, 33, 123, 176, 112, 212,\n\t\t178, 161, 117, 63, 79, 186, 161, 215, 190, 85, 61, 247, 116,\n\t\t67, 247, 200, 163, 73, 183, 244, 164, 123, 122, 210, 77, 61,\n\t\t245, 93, 237, 109, 49, 109, 244, 206, 153, 58, 135, 113, 10,\n\t\t163, 206, 224, 84, 116, 209, 201, 53, 29, 1, 203, 212, 147,\n\t\t98, 211, 14, 230, 36, 186, 32, 248, 170, 217, 234, 144, 237,\n\t\t221, 39, 169, 211, 69, 41, 217, 245, 129, 29, 230, 14, 118,\n\t\t109, 59, 23, 158, 214, 247, 20, 136, 120, 153, 162, 60, 150,\n\t\t0, 79, 91, 151, 41, 173, 56, 51, 248, 120, 25, 124, 173, 70,\n\t\t229, 39, 217, 181, 66, 233, 144, 231, 95, 194, 69, 53, 225,\n\t\t183, 230, 48, 119, 221, 65, 74, 184, 46, 65, 151, 110, 150,\n\t\t51, 129, 99, 199, 203, 113, 227, 198, 30, 181, 163, 30, 239,\n\t\t221, 84, 41, 231, 56, 113, 141, 133, 22, 103, 200, 240, 161,\n\t\t95, 211, 208, 0, 212, 70, 198, 202, 233, 217, 169, 9, 113,\n\t\t100, 176, 231, 41, 140, 161, 159, 110, 69, 23, 164, 106, 19,\n\t\t37, 110, 91, 167, 2, 51, 161, 19, 161, 203, 125, 84, 42, 200,\n\t\t136, 208, 250, 93, 179, 158, 62, 150, 15, 41, 128, 34, 203,\n\t\t23, 187, 62, 84, 75, 135, 163, 145, 116, 238, 105, 133, 73,\n\t\t67, 143, 79, 171, 81, 237, 166, 108, 254, 53, 89, 250, 176,\n\t\t234, 112, 166, 212, 15, 10, 29, 61, 231, 132, 28, 183, 46,\n\t\t155, 242, 55, 61, 63, 248, 6, 16, 150, 88, 77, 156, 125, 19,\n\t\t177, 84, 162, 141, 83, 24, 147, 36, 110, 203, 18, 36, 85,\n\t\t89, 38, 156, 53, 92, 69, 133, 187, 158, 146, 140, 139, 53,\n\t\t75, 155, 64, 37, 119, 194, 174, 167, 200, 154, 103, 193, 102,\n\t\t211, 182, 199, 114, 12, 166, 236, 145, 97, 155, 119, 161,\n\t\t144, 111, 42, 238, 187, 9, 24, 243, 184, 209, 65, 123, 10,\n\t\t59, 193, 97, 10, 100, 31, 120, 205, 0, 31, 251, 12, 165, 49,\n\t\t201, 136, 7, 209, 200, 87, 73, 230, 159, 25, 54, 252, 14,\n\t\t22, 230, 183, 75, 188, 203, 207, 27, 162, 242, 87, 8, 75,\n\t\t63, 130, 174, 200, 209, 185, 66, 223, 109, 218, 162, 12, 125,\n\t\t136, 66, 22, 5, 187, 126, 244, 81, 215, 223, 41, 12, 68, 215,\n\t\t107, 174, 192, 92, 94, 78, 41, 68, 121, 72, 85, 99, 90, 160,\n\t\t47, 14, 28, 72, 219, 1, 173, 244, 76, 91, 165, 4, 201, 59,\n\t\t104, 23, 209, 47, 243, 11, 84, 15, 111, 249, 52, 119, 200,\n\t\t126, 215, 93, 209, 170, 104, 169, 58, 215, 35, 173, 107, 10,\n\t\t16, 104, 112, 80, 15, 16, 177, 208, 165, 121, 115, 150, 244,\n\t\t195, 197, 201, 63, 9, 61, 34, 241, 79, 38, 209, 101, 17, 172,\n\t\t66, 143, 166, 85, 192, 129, 164, 154, 159, 85, 25, 186, 1,\n\t\t134, 119, 163, 84, 246, 252, 16, 42, 77, 188, 47, 193, 228,\n\t\t227, 175, 16, 186, 165, 249, 237, 214, 220, 27, 155, 239,\n\t\t232, 42, 176, 171, 223, 209, 9, 223, 209, 119, 160, 215, 88,\n\t\t183, 47, 126, 198, 176, 234, 162, 110, 124, 199, 146, 95,\n\t\t92, 32, 127, 219, 250, 184, 77, 191, 46, 203, 94, 103, 160,\n\t\t184, 43, 120, 22, 75, 99, 174, 57, 211, 254, 225, 178, 216,\n\t\t107, 69, 177, 225, 249, 33, 251, 96, 104, 177, 56, 19, 102,\n\t\t239, 214, 30, 161, 26, 238, 89, 82, 137, 96, 205, 118, 87,\n\t\t5, 245, 97, 218, 246, 141, 215, 109, 239, 92, 231, 52, 171,\n\t\t166, 88, 210, 238, 206, 157, 177, 236, 156, 166, 63, 233,\n\t\t176, 30, 132, 218, 227, 121, 253, 86, 157, 162, 200, 200,\n\t\t6, 66, 72, 205, 54, 236, 124, 152, 251, 124, 172, 60, 116,\n\t\t159, 154, 115, 214, 53, 182, 98, 252, 216, 152, 19, 152, 213,\n\t\t23, 173, 59, 115, 41, 204, 192, 20, 53, 6, 84, 79, 237, 152,\n\t\t137, 117, 141, 234, 212, 150, 251, 42, 240, 144, 228, 0, 87,\n\t\t226, 45, 35, 105, 208, 213, 126, 114, 217, 154, 54, 198, 14,\n\t\t175, 132, 155, 184, 215, 35, 101, 189, 218, 131, 164, 54,\n\t\t101, 105, 180, 85, 106, 116, 152, 67, 80, 93, 184, 28, 240,\n\t\t14, 46, 136, 147, 179, 196, 45, 186, 66, 95, 196, 23, 123,\n\t\t58, 219, 42, 181, 201, 159, 143, 91, 184, 67, 135, 130, 167,\n\t\t67, 193, 7, 78, 50, 193, 68, 101, 53, 15, 165, 17, 230, 181,\n\t\t8, 227, 86, 230, 149, 217, 199, 135, 14, 20, 218, 32, 213,\n\t\t56, 212, 64, 196, 33, 155, 202, 191, 247, 62, 68, 146, 250,\n\t\t32, 28, 81, 233, 36, 141, 68, 161, 11, 77, 41, 88, 100, 48,\n\t\t129, 238, 77, 141, 198, 128, 26, 41, 108, 119, 83, 13, 76,\n\t\t83, 165, 98, 230, 248, 242, 86, 76, 224, 139, 253, 228, 170,\n\t\t167, 193, 46, 93, 249, 133, 155, 19, 238, 62, 3, 31, 15, 58,\n\t\t178, 31, 209, 188, 63, 124, 127, 251, 126, 76, 86, 237, 251,\n\t\t63, 162, 121, 127, 120, 79, 43, 233, 223, 103, 36, 101, 143,\n\t\t125, 152, 142, 135, 31, 205, 118, 252, 157, 70, 101, 120,\n\t\t195, 176, 252, 189, 182, 227, 223, 190, 126, 249, 229, 247,\n\t\t179, 72, 159, 250, 215, 71, 153, 6, 231, 199, 104, 119, 93,\n\t\t126, 63, 200, 105, 130, 80, 97, 104, 152, 152, 201, 5, 225,\n\t\t195, 28, 245, 148, 135, 188, 92, 92, 7, 228, 80, 22, 217,\n\t\t101, 40, 82, 250, 161, 131, 170, 137, 142, 203, 98, 208, 156,\n\t\t68, 221, 157, 185, 23, 200, 201, 6, 32, 58, 81, 29, 244, 215,\n\t\t187, 34, 35, 170, 220, 34, 24, 19, 62, 118, 94, 116, 228,\n\t\t166, 59, 117, 226, 174, 31, 166, 40, 217, 26, 57, 26, 147,\n\t\t231, 173, 142, 83, 166, 195, 58, 11, 105, 156, 114, 154, 67,\n\t\t146, 186, 97, 46, 213, 204, 86, 66, 103, 245, 58, 199, 231,\n\t\t135, 16, 173, 129, 219, 63, 214, 123, 142, 99, 80, 193, 219,\n\t\t22, 98, 92, 112, 232, 201, 239, 82, 4, 116, 235, 197, 132,\n\t\t232, 47, 122, 62, 83, 135, 75, 25, 99, 7, 188, 136, 193, 52,\n\t\t169, 119, 226, 138, 167, 19, 107, 71, 71, 147, 200, 102, 221,\n\t\t12, 130, 93, 68, 115, 155, 230, 158, 153, 178, 123, 243, 248,\n\t\t40, 90, 184, 34, 134, 92, 222, 147, 145, 21, 96, 235, 185,\n\t\t195, 21, 255, 233, 99, 231, 101, 135, 103, 251, 106, 183,\n\t\t50, 175, 36, 221, 149, 181, 185, 21, 79, 69, 191, 5, 204,\n\t\t208, 97, 194, 247, 111, 178, 62, 186, 46, 37, 232, 49, 223,\n\t\t169, 71, 18, 218, 9, 183, 155, 239, 20, 25, 121, 30, 140,\n\t\t249, 222, 145, 151, 119, 210, 161, 151, 108, 209, 127, 125,\n\t\t68, 237, 191, 228, 232, 95, 114, 244, 47, 57, 122, 153, 28,\n\t\t133, 82, 72, 174, 105, 201, 212, 173, 101, 58, 136, 174, 255,\n\t\t126, 235, 244, 240, 86, 243, 244, 107, 173, 211, 239, 106,\n\t\t197, 31, 195, 203, 150, 251, 14, 243, 67, 82, 199, 240, 195,\n\t\t248, 56, 108, 221, 65, 210, 43, 92, 65, 222, 230, 9, 50, 108,\n\t\t92, 65, 82, 79, 164, 122, 226, 6, 114, 247, 49, 113, 1, 186,\n\t\t50, 213, 15, 47, 31, 18, 128, 166, 184, 13, 31, 200, 91, 66,\n\t\t40, 235, 170, 206, 73, 155, 241, 179, 235, 68, 77, 66, 40,\n\t\t230, 190, 220, 86, 70, 94, 125, 223, 54, 177, 112, 58, 48,\n\t\t60, 253, 29, 105, 112, 238, 152, 117, 247, 2, 13, 14, 29,\n\t\t169, 171, 19, 255, 46, 248, 108, 244, 56, 186, 139, 231, 190,\n\t\t45, 85, 129, 49, 101, 153, 138, 178, 22, 88, 53, 198, 69,\n\t\t54, 181, 138, 25, 103, 69, 39, 4, 225, 216, 160, 19, 162,\n\t\t3, 138, 78, 8, 238, 33, 120, 251, 122, 236, 150, 123, 208,\n\t\t75, 184, 122, 215, 252, 240, 221, 176, 74, 24, 79, 50, 190,\n\t\t23, 86, 201, 251, 48, 37, 195, 143, 201, 149, 188, 15, 83,\n\t\t50, 252, 168, 92, 201, 219, 153, 146, 225, 159, 200, 149,\n\t\t124, 55, 166, 100, 120, 127, 174, 228, 230, 241, 113, 241,\n\t\t220, 152, 175, 248, 201, 175, 176, 179, 185, 65, 49, 154,\n\t\t146, 169, 5, 89, 27, 178, 105, 174, 53, 34, 133, 146, 50,\n\t\t196, 27, 231, 173, 155, 157, 41, 190, 69, 54, 186, 219, 218,\n\t\t196, 233, 32, 193, 249, 166, 34, 31, 42, 111, 7, 205, 193,\n\t\t81, 67, 99, 220, 217, 136, 172, 208, 177, 180, 216, 24, 125,\n\t\t214, 217, 196, 246, 33, 26, 214, 152, 141, 203, 124, 40, 112,\n\t\t65, 182, 166, 21, 91, 228, 100, 136, 32, 159, 250, 118, 53,\n\t\t129, 173, 179, 157, 194, 19, 5, 172, 22, 103, 123, 40, 173,\n\t\t214, 176, 118, 66, 250, 64, 39, 116, 171, 54, 22, 44, 64,\n\t\t26, 223, 16, 141, 203, 173, 141, 242, 101, 248, 84, 73, 113,\n\t\t66, 215, 199, 48, 7, 47, 230, 169, 216, 159, 102, 166, 80,\n\t\t20, 130, 77, 82, 140, 253, 116, 33, 9, 6, 219, 158, 83, 130,\n\t\t241, 57, 100, 0, 33, 195, 115, 35, 180, 156, 96, 128, 110,\n\t\t150, 147, 5, 37, 203, 142, 249, 142, 45, 208, 17, 22, 232,\n\t\t98, 144, 26, 23, 234, 96, 23, 105, 129, 23, 103, 130, 107,\n\t\t208, 1, 27, 73, 17, 228, 131, 193, 86, 224, 2, 54, 73, 7,\n\t\t232, 189, 121, 82, 229, 1, 185, 63, 131, 126, 218, 24, 198,\n\t\t198, 99, 95, 76, 65, 126, 91, 218, 102, 116, 205, 157, 144,\n\t\t62, 208, 170, 105, 190, 21, 88, 168, 157, 77, 233, 120, 171,\n\t\t101, 154, 93, 155, 232, 3, 245, 154, 246, 90, 166, 145, 142,\n\t\t166, 164, 86, 138, 222, 151, 219, 219, 115, 37, 155, 182,\n\t\t61, 90, 140, 13, 253, 116, 25, 246, 90, 242, 194, 9, 211,\n\t\t111, 201, 33, 163, 47, 251, 11, 190, 5, 190, 110, 156, 11,\n\t\t92, 43, 199, 206, 5, 90, 112, 129, 54, 210, 173, 99, 231,\n\t\t130, 94, 226, 239, 113, 77, 255, 63, 159, 246, 103, 102, 202,\n\t\t118, 5, 211, 248, 123, 234, 71, 46, 169, 71, 128, 198, 207,\n\t\t200, 87, 1, 19, 38, 212, 88, 105, 86, 71, 189, 15, 236, 72,\n\t\t55, 247, 64, 42, 53, 202, 7, 97, 166, 38, 31, 214, 223, 156,\n\t\t63, 211, 53, 189, 165, 254, 137, 28, 203, 80, 152, 111, 65,\n\t\t94, 100, 230, 251, 184, 42, 58, 106, 186, 33, 76, 213, 230,\n\t\t204, 53, 110, 76, 129, 122, 184, 200, 81, 94, 58, 29, 183,\n\t\t240, 191, 242, 200, 85, 85, 196, 178, 52, 107, 222, 177, 196,\n\t\t105, 199, 138, 112, 160, 235, 5, 145, 144, 253, 212, 141,\n\t\t76, 171, 19, 166, 135, 195, 90, 55, 170, 74, 55, 242, 154,\n\t\t156, 75, 115, 251, 139, 101, 204, 142, 194, 242, 174, 173,\n\t\t15, 223, 177, 121, 245, 236, 146, 214, 217, 72, 43, 23, 93,\n\t\t66, 58, 26, 133, 149, 215, 151, 33, 83, 119, 245, 44, 67,\n\t\t44, 94, 172, 50, 194, 177, 91, 0, 76, 26, 121, 138, 188, 156,\n\t\t142, 58, 97, 55, 89, 192, 225, 141, 60, 224, 95, 231, 247,\n\t\t243, 174, 250, 192, 225, 214, 214, 191, 136, 38, 209, 174,\n\t\t184, 89, 97, 255, 183, 60, 171, 49, 201, 142, 231, 134, 26,\n\t\t21, 51, 174, 216, 176, 142, 204, 52, 178, 124, 87, 59, 141,\n\t\t58, 173, 125, 111, 59, 13, 35, 188, 192, 191, 1, 230, 176,\n\t\t42, 135, 247, 109, 51, 97, 61, 242, 88, 236, 110, 158, 61,\n\t\t205, 106, 91, 125, 26, 139, 152, 196, 116, 91, 56, 181, 131,\n\t\t169, 92, 222, 13, 99, 252, 196, 107, 45, 99, 55, 215, 252,\n\t\t159, 91, 242, 195, 95, 176, 230, 255, 37, 242, 119, 83, 217,\n\t\t127, 137, 124, 20, 34, 217, 242, 240, 47, 213, 249, 251, 168,\n\t\t206, 205, 147, 132, 132, 62, 142, 145, 62, 59, 79, 206, 220,\n\t\t222, 146, 237, 185, 224, 1, 24, 216, 88, 4, 253, 187, 168,\n\t\t193, 187, 18, 131, 239, 185, 29, 223, 64, 13, 190, 99, 235,\n\t\t175, 39, 6, 195, 187, 80, 131, 18, 17, 195, 16, 94, 175, 211,\n\t\t157, 81, 241, 164, 222, 255, 29, 241, 191, 167, 117, 187,\n\t\t162, 212, 21, 21, 240, 170, 212, 237, 5, 93, 169, 27, 144,\n\t\t209, 103, 163, 213, 69, 31, 54, 57, 103, 176, 201, 54, 90,\n\t\t93, 56, 76, 119, 202, 117, 73, 71, 142, 16, 250, 187, 116,\n\t\t228, 1, 248, 238, 177, 107, 34, 244, 71, 235, 86, 162, 147,\n\t\t143, 148, 111, 124, 126, 112, 33, 143, 94, 246, 96, 215, 96,\n\t\t189, 17, 211, 240, 82, 50, 183, 231, 135, 100, 157, 113, 99,\n\t\t76, 38, 205, 170, 215, 244, 226, 89, 219, 71, 120, 138, 170,\n\t\t218, 242, 112, 172, 75, 73, 136, 110, 13, 76, 30, 231, 141,\n\t\t223, 116, 255, 161, 177, 48, 58, 132, 94, 221, 248, 176, 53,\n\t\t17, 223, 131, 102, 170, 198, 125, 105, 6, 102, 31, 213, 157,\n\t\t59, 74, 34, 226, 16, 233, 84, 193, 83, 30, 9, 73, 145, 62,\n\t\t204, 74, 74, 35, 60, 18, 145, 173, 106, 209, 245, 35, 185,\n\t\t162, 134, 69, 227, 103, 152, 124, 246, 108, 49, 186, 57, 98,\n\t\t79, 213, 38, 20, 35, 169, 82, 206, 179, 125, 228, 249, 33,\n\t\t132, 238, 229, 219, 101, 129, 41, 199, 213, 217, 55, 72, 202,\n\t\t50, 30, 162, 200, 249, 102, 16, 223, 151, 54, 68, 19, 176,\n\t\t249, 250, 74, 235, 3, 170, 142, 194, 111, 72, 241, 93, 76,\n\t\t99, 73, 10, 138, 98, 29, 103, 245, 0, 207, 170, 84, 116, 69,\n\t\t134, 170, 89, 34, 80, 172, 5, 215, 76, 112, 58, 57, 50, 208,\n\t\t226, 109, 189, 122, 178, 55, 85, 151, 59, 49, 121, 57, 86,\n\t\t186, 74, 172, 143, 231, 29, 53, 11, 6, 132, 230, 86, 209,\n\t\t56, 157, 40, 137, 167, 244, 90, 178, 109, 189, 77, 189, 124,\n\t\t153, 103, 29, 102, 141, 177, 179, 61, 101, 148, 48, 9, 53,\n\t\t83, 135, 202, 45, 184, 171, 229, 241, 247, 95, 118, 103, 7,\n\t\t227, 223, 224, 255, 85, 155, 137, 99, 146, 240, 198, 32, 84,\n\t\t63, 20, 230, 74, 36, 218, 112, 172, 235, 79, 132, 33, 238,\n\t\t251, 153, 32, 129, 161, 71, 119, 231, 73, 223, 215, 250, 166,\n\t\t77, 5, 211, 81, 32, 227, 254, 70, 104, 233, 128, 202, 248,\n\t\t142, 214, 218, 91, 163, 106, 167, 227, 122, 247, 107, 61,\n\t\t168, 247, 248, 238, 220, 171, 208, 74, 183, 53, 28, 183, 188,\n\t\t191, 18, 126, 41, 44, 168, 143, 239, 133, 4, 203, 114, 181,\n\t\t143, 195, 187, 53, 16, 178, 55, 17, 168, 236, 85, 120, 96,\n\t\t48, 11, 196, 10, 49, 59, 48, 185, 36, 56, 169, 73, 105, 116,\n\t\t170, 106, 189, 178, 216, 206, 180, 209, 64, 116, 19, 103,\n\t\t201, 102, 130, 234, 59, 183, 236, 176, 127, 65, 239, 148,\n\t\t28, 243, 43, 206, 166, 121, 114, 99, 29, 147, 112, 172, 46,\n\t\t113, 163, 46, 237, 188, 175, 8, 17, 190, 185, 123, 46, 235,\n\t\t42, 254, 6, 159, 165, 127, 183, 208, 219, 183, 208, 171, 85,\n\t\t71, 146, 244, 191, 39, 115, 147, 158, 106, 252, 138, 83, 8,\n\t\t153, 104, 210, 112, 151, 128, 38, 81, 254, 34, 160, 113, 24,\n\t\t209, 101, 1, 77, 189, 160, 85, 64, 67, 36, 212, 234, 38, 29,\n\t\t85, 200, 234, 172, 160, 75, 234, 98, 211, 249, 50, 177, 143,\n\t\t70, 32, 75, 220, 43, 107, 61, 56, 95, 70, 207, 225, 219, 234,\n\t\t116, 179, 109, 132, 191, 41, 226, 55, 59, 12, 176, 231, 199,\n\t\t105, 253, 144, 124, 206, 235, 63, 158, 1, 9, 212, 191, 232,\n\t\t123, 78, 247, 92, 91, 7, 95, 172, 204, 155, 193, 87, 30, 46,\n\t\t189, 113, 236, 143, 220, 245, 47, 13, 248, 125, 148, 107,\n\t\t248, 193, 73, 215, 101, 135, 203, 118, 197, 151, 230, 95,\n\t\t226, 245, 99, 17, 175, 136, 155, 201, 159, 251, 209, 241,\n\t\t35, 44, 140, 48, 191, 221, 29, 243, 84, 120, 165, 141, 202,\n\t\t183, 92, 21, 7, 185, 161, 167, 255, 82, 225, 83, 37, 112,\n\t\t214, 217, 64, 1, 139, 154, 197, 249, 77, 147, 194, 74, 166,\n\t\t73, 143, 0, 26, 222, 105, 107, 229, 36, 204, 69, 67, 60, 114,\n\t\t48, 5, 9, 77, 184, 175, 154, 167, 211, 71, 245, 87, 209, 62,\n\t\t203, 187, 174, 222, 225, 128, 166, 95, 234, 58, 128, 135,\n\t\t116, 69, 24, 242, 181, 46, 118, 149, 235, 169, 231, 84, 192,\n\t\t46, 235, 112, 200, 55, 106, 166, 237, 251, 182, 249, 15, 190,\n\t\t203, 47, 249, 61, 180, 43, 126, 15, 255, 238, 241, 31, 107,\n\t\t143, 19, 131, 82, 227, 45, 247, 69, 62, 124, 223, 158, 253,\n\t\t120, 56, 118, 74, 228, 144, 209, 187, 21, 88, 239, 153, 253,\n\t\t88, 165, 144, 247, 18, 66, 134, 127, 246, 38, 255, 252, 180,\n\t\t155, 62, 44, 143, 231, 123, 252, 241, 10, 6, 232, 59, 237,\n\t\t113, 255, 23, 217, 167, 223, 236, 239, 113, 73, 17, 248, 67,\n\t\t197, 195, 208, 108, 126, 251, 186, 44, 159, 190, 252, 50,\n\t\t61, 253, 239, 211, 153, 23, 204, 227, 79, 140, 204, 24, 50,\n\t\t36, 177, 208, 84, 14, 40, 24, 83, 17, 72, 128, 105, 190, 239,\n\t\t215, 83, 233, 255, 134, 61, 253, 216, 222, 40, 180, 251, 251,\n\t\t123, 248, 159, 235, 119, 68, 72, 133, 206, 216, 49, 218, 142,\n\t\t64, 22, 233, 106, 182, 163, 211, 124, 220, 167, 241, 237,\n\t\t186, 20, 2, 171, 89, 103, 248, 240, 11, 227, 33, 159, 211,\n\t\t157, 31, 229, 90, 172, 89, 48, 33, 41, 249, 189, 203, 169,\n\t\t120, 182, 99, 24, 187, 144, 169, 214, 20, 254, 211, 193, 247,\n\t\t59, 95, 215, 97, 93, 187, 207, 101, 79, 20, 163, 37, 218,\n\t\t105, 187, 129, 130, 83, 136, 5, 124, 57, 253, 57, 202, 58,\n\t\t169, 147, 112, 105, 188, 239, 25, 238, 253, 249, 220, 145,\n\t\t0, 105, 181, 254, 151, 187, 177, 63, 157, 149, 225, 159, 51,\n\t\t45, 111, 154, 21, 142, 55, 67, 172, 251, 15, 145, 220, 114,\n\t\t255, 248, 113, 154, 191, 157, 101, 226, 254, 112, 37, 247,\n\t\t193, 59, 81, 158, 208, 252, 152, 228, 44, 13, 2, 36, 17, 132,\n\t\t249, 73, 121, 172, 194, 191, 167, 60, 186, 80, 77, 124, 155,\n\t\t110, 125, 230, 84, 13, 252, 188, 226, 139, 57, 75, 28, 65,\n\t\t130, 39, 116, 53, 241, 224, 92, 52, 81, 22, 34, 115, 66, 39,\n\t\t163, 186, 63, 159, 177, 195, 228, 18, 113, 130, 108, 56, 114,\n\t\t146, 117, 82, 83, 50, 246, 116, 79, 48, 184, 240, 239, 125,\n\t\t38, 30, 163, 81, 145, 148, 28, 184, 138, 215, 182, 75, 189,\n\t\t125, 126, 240, 54, 153, 58, 122, 23, 216, 74, 37, 251, 89,\n\t\t215, 229, 26, 165, 162, 202, 172, 151, 162, 84, 134, 203,\n\t\t38, 77, 48, 111, 47, 114, 132, 55, 162, 84, 88, 191, 179,\n\t\t49, 104, 170, 169, 170, 7, 165, 40, 86, 110, 47, 16, 20, 231,\n\t\t30, 165, 194, 15, 92, 225, 34, 89, 142, 21, 150, 216, 139,\n\t\t22, 140, 189, 184, 89, 99, 180, 178, 207, 92, 32, 207, 14,\n\t\t215, 76, 155, 43, 132, 26, 43, 197, 144, 8, 248, 39, 143,\n\t\t46, 226, 87, 255, 166, 232, 34, 207, 105, 184, 103, 133, 73,\n\t\t183, 216, 150, 154, 78, 155, 126, 35, 11, 183, 30, 8, 153,\n\t\t228, 42, 41, 76, 121, 205, 194, 157, 50, 178, 112, 203, 99,\n\t\t25, 155, 251, 70, 22, 110, 34, 132, 191, 61, 61, 126, 59,\n\t\t163, 132, 63, 47, 99, 237, 137, 150, 198, 56, 135, 170, 60,\n\t\t82, 225, 133, 140, 57, 105, 12, 102, 154, 101, 151, 168, 254,\n\t\t149, 207, 120, 93, 160, 94, 192, 2, 215, 37, 27, 88, 121,\n\t\t141, 195, 145, 21, 63, 61, 239, 174, 46, 239, 220, 67, 147,\n\t\t68, 209, 45, 142, 79, 115, 15, 90, 116, 138, 43, 164, 242,\n\t\t116, 199, 191, 87, 212, 87, 223, 195, 159, 94, 115, 28, 254,\n\t\t85, 249, 26, 223, 77, 154, 120, 112, 44, 189, 22, 128, 216,\n\t\t242, 199, 41, 178, 83, 15, 201, 101, 250, 32, 64, 144, 118,\n\t\t238, 56, 154, 58, 186, 65, 1, 96, 147, 76, 81, 47, 200, 156,\n\t\t173, 96, 16, 166, 77, 232, 118, 207, 61, 32, 8, 253, 83, 244,\n\t\t253, 98, 79, 23, 26, 123, 68, 191, 165, 156, 253, 56, 210,\n\t\t232, 211, 152, 4, 246, 79, 91, 145, 70, 174, 239, 198, 207,\n\t\t159, 150, 167, 139, 214, 182, 15, 103, 158, 92, 63, 205, 126,\n\t\t12, 180, 0, 66, 50, 17, 155, 77, 1, 212, 189, 112, 195, 136,\n\t\t58, 14, 65, 231, 28, 219, 109, 152, 117, 71, 194, 62, 210,\n\t\t117, 173, 250, 78, 247, 40, 148, 247, 230, 41, 208, 122, 207,\n\t\t128, 75, 102, 101, 81, 90, 241, 130, 173, 105, 253, 122, 63,\n\t\t53, 33, 193, 222, 30, 61, 32, 247, 103, 245, 60, 25, 123,\n\t\t15, 148, 40, 120, 93, 102, 210, 184, 182, 173, 15, 118, 79,\n\t\t21, 121, 78, 223, 11, 235, 105, 36, 31, 215, 149, 110, 94,\n\t\t98, 28, 19, 244, 76, 65, 156, 74, 106, 236, 191, 247, 89,\n\t\t89, 166, 216, 239, 201, 45, 56, 23, 209, 74, 12, 229, 58,\n\t\t192, 208, 234, 136, 133, 54, 255, 69, 24, 122, 37, 170, 213,\n\t\t125, 230, 213, 127, 240, 7, 190, 29, 159, 106, 120, 151, 229,\n\t\t115, 157, 130, 254, 254, 237, 215, 111, 159, 246, 103, 128,\n\t\t79, 243, 207, 155, 167, 19, 61, 201, 117, 14, 66, 88, 236,\n\t\t152, 227, 202, 60, 230, 40, 204, 163, 50, 137, 57, 234, 191,\n\t\t97, 79, 63, 182, 55, 136, 123, 92, 223, 203, 28, 93, 140,\n\t\t214, 36, 104, 160, 11, 250, 111, 59, 200, 47, 240, 19, 239,\n\t\t205, 58, 92, 91, 44, 191, 125, 250, 246, 244, 241, 108, 165,\n\t\t252, 196, 39, 237, 219, 48, 77, 134, 59, 83, 110, 8, 37, 184,\n\t\t137, 105, 50, 174, 14, 28, 127, 35, 160, 201, 205, 132, 36,\n\t\t207, 195, 131, 247, 125, 233, 171, 55, 200, 159, 4, 43, 225,\n\t\t71, 149, 2, 190, 27, 90, 9, 40, 169, 185, 142, 86, 34, 15,\n\t\t245, 188, 53, 124, 80, 125, 151, 188, 53, 171, 68, 27, 197,\n\t\t50, 109, 57, 119, 1, 0, 210, 61, 79, 7, 112, 3, 26, 147, 253,\n\t\t153, 221, 86, 21, 128, 182, 116, 39, 20, 94, 54, 160, 60,\n\t\t236, 72, 43, 8, 250, 163, 174, 240, 36, 56, 231, 43, 124,\n\t\t131, 63, 42, 32, 34, 39, 16, 239, 128, 242, 238, 247, 21,\n\t\t240, 129, 88, 186, 14, 235, 44, 139, 176, 108, 240, 219, 5,\n\t\t255, 187, 113, 170, 22, 94, 174, 41, 141, 89, 252, 157, 229,\n\t\t3, 228, 123, 228, 74, 169, 206, 127, 255, 215, 127, 190, 126,\n\t\t249, 237, 127, 134, 255, 254, 175, 143, 79, 255, 217, 255,\n\t\t207, 127, 255, 215, 254, 240, 203, 255, 12, 255, 55, 0, 0,\n\t\t255, 255, 80, 75, 7, 8, 202, 125, 76, 77, 231, 143, 0, 0,\n\t\t67, 52, 2, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 9, 0, 119,\n\t\t101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 114, 101,\n\t\t103, 117, 108, 97, 114, 45, 52, 48, 48, 46, 116, 116, 102,\n\t\t85, 84, 5, 0, 1, 127, 106, 41, 96, 220, 189, 123, 124, 36,\n\t\t71, 117, 48, 90, 167, 31, 85, 221, 61, 61, 221, 243, 232,\n\t\t199, 72, 26, 141, 230, 161, 153, 209, 99, 53, 210, 206, 115,\n\t\t119, 181, 210, 106, 31, 222, 93, 123, 95, 194, 94, 27, 227,\n\t\t167, 180, 171, 89, 73, 182, 86, 18, 122, 120, 109, 99, 64,\n\t\t129, 197, 49, 96, 200, 218, 248, 243, 71, 252, 145, 15, 241,\n\t\t242, 199, 5, 147, 236, 5, 194, 103, 204, 35, 130, 36, 224,\n\t\t16, 224, 51, 143, 112, 249, 113, 185, 201, 254, 32, 201, 37,\n\t\t124, 36, 209, 46, 56, 1, 2, 163, 251, 171, 234, 158, 209,\n\t\t140, 30, 107, 39, 223, 253, 227, 254, 238, 254, 70, 221, 85,\n\t\t213, 213, 213, 231, 156, 58, 117, 234, 156, 83, 167, 106,\n\t\t17, 32, 132, 188, 104, 9, 241, 104, 248, 240, 225, 211, 39,\n\t\t222, 254, 157, 183, 95, 67, 232, 109, 62, 132, 80, 248, 200,\n\t\t161, 27, 14, 163, 46, 180, 140, 208, 197, 85, 132, 80, 228,\n\t\t212, 45, 189, 217, 253, 239, 249, 113, 11, 66, 112, 59, 66,\n\t\t104, 228, 236, 249, 209, 217, 175, 46, 191, 248, 11, 132,\n\t\t4, 21, 33, 254, 7, 227, 163, 243, 179, 107, 107, 136, 71,\n\t\t232, 226, 79, 16, 66, 210, 248, 212, 67, 231, 166, 90, 196,\n\t\t86, 132, 228, 40, 66, 211, 127, 54, 81, 30, 29, 51, 78, 222,\n\t\t249, 33, 132, 208, 15, 17, 66, 197, 137, 137, 242, 168, 80,\n\t\t224, 190, 133, 16, 24, 8, 161, 246, 137, 243, 11, 15, 6, 46,\n\t\t163, 5, 132, 224, 121, 132, 184, 211, 83, 51, 103, 71, 127,\n\t\t114, 195, 95, 62, 134, 16, 249, 9, 66, 80, 60, 63, 250, 224,\n\t\t44, 250, 41, 250, 35, 132, 96, 23, 66, 40, 58, 61, 122, 190,\n\t\t220, 145, 223, 253, 167, 8, 93, 248, 91, 132, 196, 91, 103,\n\t\t103, 230, 23, 126, 115, 106, 255, 231, 16, 122, 227, 94, 132,\n\t\t200, 199, 41, 110, 112, 227, 11, 239, 31, 26, 250, 239, 31,\n\t\t190, 87, 223, 251, 50, 242, 112, 136, 254, 251, 254, 103,\n\t\t47, 239, 119, 239, 135, 214, 126, 182, 246, 89, 238, 119,\n\t\t225, 47, 40, 188, 200, 121, 140, 216, 123, 43, 107, 43, 8,\n\t\t113, 75, 107, 63, 67, 136, 251, 93, 70, 165, 250, 127, 151,\n\t\t88, 201, 51, 232, 57, 164, 177, 60, 199, 222, 162, 101, 67,\n\t\t110, 13, 1, 254, 17, 46, 33, 17, 33, 56, 14, 231, 16, 66,\n\t\t71, 220, 251, 203, 168, 9, 93, 164, 47, 136, 124, 173, 53,\n\t\t240, 213, 53, 61, 124, 238, 134, 49, 180, 180, 42, 188, 252,\n\t\t34, 131, 33, 3, 95, 71, 167, 151, 144, 3, 1, 236, 129, 143,\n\t\t80, 204, 17, 84, 65, 69, 31, 163, 109, 173, 253, 27, 55, 132,\n\t\t116, 88, 97, 128, 72, 92, 21, 160, 37, 231, 206, 13, 213,\n\t\t202, 157, 63, 154, 167, 77, 178, 250, 107, 191, 169, 171,\n\t\t131, 184, 161, 181, 223, 208, 182, 56, 180, 246, 91, 86, 86,\n\t\t45, 71, 78, 253, 141, 127, 172, 124, 100, 83, 153, 4, 171,\n\t\t8, 85, 255, 104, 27, 181, 242, 106, 157, 33, 247, 121, 125,\n\t\t123, 75, 117, 48, 175, 255, 217, 13, 239, 46, 189, 242, 159,\n\t\t131, 231, 218, 26, 172, 174, 253, 163, 131, 235, 218, 175,\n\t\t235, 233, 82, 7, 79, 237, 123, 176, 178, 246, 219, 122, 58,\n\t\t208, 60, 172, 172, 253, 91, 61, 204, 245, 176, 187, 109, 57,\n\t\t244, 92, 90, 167, 79, 13, 175, 165, 70, 218, 185, 109, 254,\n\t\t91, 173, 206, 210, 134, 62, 97, 253, 178, 86, 225, 106, 248,\n\t\t175, 253, 166, 158, 134, 175, 230, 207, 193, 217, 237, 219,\n\t\t237, 234, 253, 210, 185, 111, 243, 143, 119, 255, 194, 14,\n\t\t191, 113, 223, 69, 60, 75, 133, 145, 192, 61, 207, 184, 109,\n\t\t9, 97, 212, 181, 42, 174, 146, 85, 123, 53, 190, 218, 190,\n\t\t154, 89, 29, 92, 61, 180, 250, 186, 213, 233, 213, 217, 213,\n\t\t249, 213, 197, 213, 71, 86, 151, 86, 31, 93, 125, 251, 234,\n\t\t83, 171, 127, 176, 186, 188, 250, 223, 86, 255, 124, 245,\n\t\t197, 213, 43, 171, 255, 115, 245, 231, 171, 191, 92, 173,\n\t\t92, 245, 95, 109, 190, 26, 190, 154, 187, 122, 232, 234, 225,\n\t\t171, 55, 93, 61, 121, 245, 230, 171, 119, 93, 45, 95, 125,\n\t\t244, 234, 147, 87, 63, 113, 245, 47, 174, 126, 227, 234, 247,\n\t\t175, 254, 248, 234, 79, 175, 254, 203, 213, 95, 93, 83, 174,\n\t\t221, 120, 237, 196, 181, 59, 175, 221, 125, 109, 225, 218,\n\t\t195, 215, 222, 121, 237, 93, 215, 62, 115, 237, 179, 215,\n\t\t62, 119, 237, 11, 215, 190, 124, 237, 219, 215, 126, 120,\n\t\t237, 31, 127, 206, 253, 188, 227, 231, 119, 254, 252, 35,\n\t\t63, 255, 214, 47, 124, 191, 248, 196, 47, 126, 240, 242, 109,\n\t\t47, 143, 191, 252, 240, 203, 143, 191, 252, 190, 151, 63,\n\t\t242, 242, 167, 95, 126, 254, 229, 47, 191, 252, 226, 218,\n\t\t26, 66, 171, 194, 6, 88, 95, 91, 131, 245, 13, 13, 176, 126,\n\t\t120, 245, 207, 87, 191, 218, 0, 107, 168, 14, 214, 19, 87,\n\t\t135, 175, 222, 121, 117, 236, 234, 219, 174, 62, 113, 245,\n\t\t19, 87, 191, 180, 1, 214, 35, 215, 78, 92, 59, 125, 237, 238,\n\t\t107, 175, 191, 246, 16, 131, 245, 143, 93, 88, 191, 116, 237,\n\t\t165, 26, 172, 183, 111, 128, 245, 161, 151, 223, 252, 242,\n\t\t211, 47, 127, 248, 229, 79, 85, 97, 213, 215, 244, 138, 254,\n\t\t207, 250, 223, 233, 127, 171, 255, 159, 250, 215, 245, 175,\n\t\t234, 127, 172, 127, 64, 95, 214, 255, 171, 254, 7, 250, 123,\n\t\t245, 255, 164, 95, 210, 223, 173, 95, 212, 31, 209, 31, 214,\n\t\t47, 232, 119, 232, 175, 211, 15, 232, 187, 244, 157, 122,\n\t\t143, 222, 161, 91, 186, 79, 215, 181, 95, 105, 255, 160, 253,\n\t\t68, 251, 59, 237, 199, 218, 143, 180, 31, 104, 223, 209, 62,\n\t\t173, 125, 76, 187, 164, 189, 81, 123, 88, 155, 213, 206, 105,\n\t\t35, 218, 173, 218, 45, 218, 65, 141, 104, 130, 183, 226, 253,\n\t\t173, 247, 167, 222, 191, 247, 126, 207, 251, 87, 222, 63,\n\t\t244, 62, 231, 253, 184, 247, 99, 222, 255, 230, 125, 198,\n\t\t251, 132, 247, 119, 188, 231, 189, 71, 189, 77, 234, 75, 234,\n\t\t71, 212, 113, 207, 95, 122, 222, 239, 105, 247, 24, 30, 94,\n\t\t89, 83, 254, 69, 249, 103, 229, 71, 202, 223, 40, 223, 83,\n\t\t190, 181, 73, 26, 254, 127, 250, 31, 96, 84, 3, 24, 170, 67,\n\t\t177, 161, 194, 22, 47, 253, 255, 247, 223, 16, 122, 4, 253,\n\t\t25, 250, 37, 76, 195, 23, 225, 71, 92, 23, 119, 145, 251,\n\t\t38, 47, 240, 103, 248, 231, 132, 102, 225, 131, 194, 21, 81,\n\t\t21, 143, 138, 159, 193, 93, 248, 36, 254, 58, 105, 38, 103,\n\t\t200, 143, 164, 51, 210, 143, 228, 123, 228, 231, 21, 77, 217,\n\t\t163, 60, 166, 252, 196, 179, 199, 243, 77, 53, 164, 22, 213,\n\t\t183, 168, 47, 121, 13, 239, 223, 107, 17, 237, 164, 246, 152,\n\t\t246, 21, 253, 144, 126, 81, 255, 178, 15, 249, 6, 125, 211,\n\t\t190, 23, 252, 187, 252, 159, 9, 116, 4, 206, 5, 62, 28, 248,\n\t\t102, 240, 120, 240, 155, 198, 33, 227, 163, 38, 50, 143, 155,\n\t\t95, 180, 194, 214, 148, 245, 183, 118, 198, 158, 178, 95,\n\t\t12, 29, 10, 61, 27, 250, 69, 211, 185, 166, 213, 230, 247,\n\t\t54, 127, 173, 197, 104, 185, 163, 229, 103, 225, 137, 240,\n\t\t79, 91, 15, 181, 254, 117, 228, 233, 182, 230, 182, 137, 182,\n\t\t47, 70, 133, 232, 68, 244, 133, 152, 18, 187, 41, 118, 41,\n\t\t246, 229, 248, 185, 248, 63, 37, 78, 38, 86, 218, 125, 237,\n\t\t247, 181, 127, 175, 189, 146, 180, 146, 195, 169, 3, 169,\n\t\t103, 211, 74, 122, 56, 253, 104, 250, 243, 233, 107, 29, 29,\n\t\t29, 83, 29, 95, 239, 108, 239, 124, 75, 231, 95, 119, 157,\n\t\t236, 250, 74, 119, 177, 251, 77, 221, 149, 29, 55, 237, 120,\n\t\t182, 39, 208, 243, 76, 70, 202, 156, 235, 149, 122, 31, 235,\n\t\t219, 209, 247, 190, 157, 209, 157, 159, 201, 170, 217, 217,\n\t\t236, 106, 238, 82, 238, 251, 249, 61, 249, 167, 242, 63, 43,\n\t\t68, 11, 79, 22, 185, 226, 29, 197, 23, 75, 184, 116, 134,\n\t\t114, 203, 218, 175, 215, 254, 134, 195, 240, 17, 20, 64, 237,\n\t\t8, 65, 4, 176, 14, 56, 222, 11, 25, 40, 150, 138, 150, 61,\n\t\t8, 118, 49, 159, 78, 97, 29, 210, 25, 32, 216, 104, 3, 171,\n\t\t4, 95, 107, 15, 89, 45, 127, 228, 219, 225, 251, 163, 22,\n\t\t43, 212, 222, 189, 216, 213, 181, 104, 180, 182, 71, 78, 133,\n\t\t19, 137, 240, 169, 72, 123, 235, 101, 158, 135, 165, 182,\n\t\t91, 79, 134, 63, 233, 243, 125, 50, 124, 234, 116, 91, 187,\n\t\t220, 213, 37, 95, 137, 188, 54, 30, 194, 173, 137, 68, 43,\n\t\t14, 197, 95, 27, 249, 164, 32, 48, 110, 213, 215, 94, 224,\n\t\t118, 194, 151, 80, 8, 197, 217, 247, 117, 176, 45, 220, 11,\n\t\t4, 167, 246, 65, 58, 85, 220, 199, 21, 179, 109, 92, 169,\n\t\t151, 150, 147, 146, 205, 249, 12, 85, 187, 175, 137, 143,\n\t\t250, 223, 250, 86, 127, 148, 111, 186, 79, 83, 141, 39, 247,\n\t\t203, 29, 242, 126, 50, 246, 206, 193, 193, 119, 142, 217,\n\t\t143, 60, 2, 6, 151, 210, 198, 159, 12, 218, 242, 161, 67,\n\t\t74, 40, 248, 228, 184, 150, 226, 172, 139, 129, 192, 197,\n\t\t15, 158, 49, 222, 244, 38, 227, 204, 59, 15, 28, 64, 2, 66,\n\t\t107, 43, 176, 2, 43, 40, 136, 226, 168, 11, 101, 17, 74, 102,\n\t\t173, 86, 48, 112, 34, 22, 79, 13, 64, 190, 152, 203, 90, 217,\n\t\t162, 93, 200, 167, 18, 113, 156, 136, 211, 107, 43, 20, 227,\n\t\t169, 124, 49, 107, 25, 169, 56, 54, 172, 108, 49, 15, 123,\n\t\t74, 167, 194, 70, 101, 217, 8, 159, 42, 121, 115, 249, 252,\n\t\t153, 92, 130, 223, 29, 137, 236, 230, 19, 185, 159, 61, 120,\n\t\t250, 244, 131, 167, 39, 134, 119, 237, 26, 222, 117, 233,\n\t\t84, 169, 217, 8, 135, 141, 230, 210, 41, 159, 111, 185, 57,\n\t\t145, 243, 249, 114, 137, 230, 203, 167, 105, 149, 247, 237,\n\t\t162, 85, 16, 143, 164, 181, 23, 225, 151, 240, 60, 34, 72,\n\t\t71, 109, 8, 5, 178, 150, 129, 227, 169, 124, 32, 91, 204,\n\t\t211, 207, 137, 105, 10, 85, 63, 100, 91, 193, 182, 116, 192,\n\t\t191, 255, 205, 39, 158, 248, 230, 19, 31, 121, 118, 113, 241,\n\t\t217, 69, 192, 183, 138, 106, 84, 61, 40, 147, 0, 129, 231,\n\t\t159, 160, 79, 42, 223, 90, 164, 143, 188, 131, 2, 254, 176,\n\t\t170, 190, 187, 143, 40, 205, 10, 98, 90, 32, 90, 187, 194,\n\t\t33, 88, 70, 58, 106, 65, 105, 148, 67, 251, 208, 17, 116,\n\t\t10, 189, 22, 33, 200, 90, 166, 223, 193, 191, 224, 207, 23,\n\t\t115, 144, 45, 248, 243, 137, 88, 220, 244, 27, 185, 164, 105,\n\t\t116, 67, 220, 1, 160, 176, 77, 26, 51, 120, 139, 46, 220,\n\t\t235, 119, 120, 137, 226, 94, 25, 161, 87, 120, 6, 227, 202,\n\t\t20, 198, 112, 159, 250, 162, 186, 225, 247, 27, 51, 98, 54,\n\t\t254, 96, 217, 33, 110, 216, 128, 17, 35, 92, 153, 197, 112,\n\t\t26, 227, 202, 115, 248, 174, 144, 170, 134, 212, 211, 117,\n\t\t87, 153, 189, 177, 88, 119, 117, 36, 225, 218, 10, 135, 224,\n\t\t203, 168, 3, 237, 162, 248, 149, 138, 180, 135, 137, 211,\n\t\t157, 196, 52, 112, 55, 80, 92, 83, 133, 124, 209, 142, 128,\n\t\t109, 152, 6, 161, 221, 30, 44, 84, 107, 208, 92, 46, 11, 195,\n\t\t59, 246, 135, 186, 173, 129, 131, 201, 113, 107, 255, 62,\n\t\t153, 248, 136, 28, 138, 152, 254, 102, 142, 75, 119, 38, 199,\n\t\t159, 190, 161, 63, 114, 46, 178, 187, 39, 127, 156, 222, 96,\n\t\t54, 172, 132, 155, 87, 155, 181, 142, 104, 235, 45, 68, 150,\n\t\t9, 60, 173, 133, 205, 48, 64, 200, 207, 243, 18, 209, 163,\n\t\t107, 104, 53, 26, 141, 254, 36, 20, 117, 225, 131, 37, 88,\n\t\t65, 10, 10, 186, 244, 79, 19, 70, 122, 151, 240, 37, 24, 54,\n\t\t194, 43, 43, 97, 3, 162, 184, 242, 51, 124, 9, 86, 194, 70,\n\t\t165, 111, 118, 150, 146, 180, 114, 26, 30, 192, 184, 242,\n\t\t142, 211, 148, 151, 105, 99, 176, 196, 250, 52, 129, 50, 215,\n\t\t239, 203, 106, 207, 216, 133, 82, 177, 13, 232, 159, 185,\n\t\t85, 23, 237, 142, 219, 118, 220, 150, 58, 36, 169, 227, 65,\n\t\t73, 186, 29, 150, 194, 70, 229, 10, 171, 16, 53, 194, 149,\n\t\t203, 24, 12, 76, 97, 250, 165, 77, 235, 253, 239, 125, 213,\n\t\t122, 195, 200, 25, 91, 220, 126, 248, 18, 10, 163, 46, 212,\n\t\t139, 74, 8, 37, 29, 210, 175, 3, 20, 203, 82, 38, 238, 6,\n\t\t127, 172, 144, 47, 57, 131, 29, 138, 217, 54, 176, 12, 146,\n\t\t214, 161, 20, 76, 167, 116, 176, 75, 69, 120, 50, 42, 40,\n\t\t53, 38, 8, 136, 130, 16, 229, 248, 107, 48, 242, 254, 202,\n\t\t175, 238, 48, 194, 156, 2, 196, 223, 23, 232, 246, 47, 236,\n\t\t121, 129, 236, 255, 183, 110, 137, 180, 237, 105, 35, 227,\n\t\t81, 65, 192, 79, 84, 185, 70, 17, 162, 92, 101, 121, 142,\n\t\t255, 122, 229, 87, 10, 23, 54, 238, 0, 226, 247, 119, 251,\n\t\t119, 246, 237, 121, 97, 63, 1, 165, 155, 176, 87, 208, 134,\n\t\t241, 215, 189, 121, 252, 37, 9, 27, 118, 84, 48, 245, 2, 19,\n\t\t77, 251, 192, 37, 159, 213, 48, 22, 51, 131, 131, 146, 100,\n\t\t75, 242, 224, 160, 44, 217, 146, 212, 144, 107, 28, 156, 79,\n\t\t108, 85, 197, 205, 33, 180, 17, 166, 58, 153, 208, 238, 138,\n\t\t31, 226, 64, 84, 133, 196, 118, 224, 128, 99, 12, 144, 189,\n\t\t178, 252, 156, 44, 221, 41, 203, 182, 36, 247, 191, 91, 146,\n\t\t221, 111, 143, 58, 114, 65, 150, 62, 46, 203, 119, 178, 15,\n\t\t14, 188, 75, 146, 145, 208, 240, 173, 93, 212, 206, 219, 68,\n\t\t1, 67, 227, 104, 31, 210, 65, 51, 0, 249, 65, 174, 52, 200,\n\t\t51, 241, 168, 57, 52, 41, 209, 209, 82, 21, 2, 13, 36, 201,\n\t\t89, 97, 139, 136, 25, 145, 72, 1, 69, 149, 36, 153, 111, 210,\n\t\t61, 126, 85, 38, 114, 88, 198, 201, 161, 212, 190, 253, 77,\n\t\t241, 166, 166, 120, 35, 113, 222, 97, 71, 53, 159, 132, 69,\n\t\t66, 68, 89, 53, 124, 4, 139, 34, 145, 68, 213, 71, 84, 143,\n\t\t76, 76, 162, 20, 243, 159, 163, 47, 53, 185, 26, 61, 226,\n\t\t134, 96, 9, 249, 81, 2, 245, 50, 238, 167, 96, 20, 242, 37,\n\t\t43, 151, 45, 22, 242, 233, 162, 104, 25, 68, 131, 68, 60,\n\t\t3, 233, 84, 190, 52, 8, 89, 139, 100, 139, 165, 12, 196, 49,\n\t\t137, 112, 16, 237, 221, 191, 255, 238, 253, 130, 87, 179,\n\t\t99, 68, 135, 30, 158, 239, 122, 239, 157, 123, 103, 110, 11,\n\t\t211, 196, 103, 222, 251, 243, 155, 222, 156, 76, 190, 249,\n\t\t169, 55, 39, 67, 55, 221, 9, 125, 251, 239, 222, 191, 63,\n\t\t227, 211, 73, 204, 214, 188, 226, 40, 241, 145, 225, 209,\n\t\t158, 83, 5, 118, 31, 253, 231, 19, 7, 15, 158, 56, 113, 112,\n\t\t199, 254, 4, 18, 215, 214, 214, 86, 184, 223, 97, 243, 75,\n\t\t19, 106, 67, 57, 116, 24, 33, 209, 50, 13, 29, 112, 34, 158,\n\t\t134, 84, 33, 191, 15, 138, 185, 172, 45, 82, 170, 217, 76,\n\t\t38, 165, 75, 113, 146, 46, 230, 178, 17, 176, 45, 131, 96,\n\t\t146, 166, 16, 242, 217, 146, 205, 30, 166, 242, 165, 98, 201,\n\t\t198, 36, 2, 220, 195, 88, 80, 4, 9, 11, 191, 253, 152, 155,\n\t\t0, 209, 163, 246, 236, 231, 94, 199, 174, 179, 45, 109, 189,\n\t\t133, 188, 3, 191, 213, 150, 106, 14, 36, 223, 124, 19, 43,\n\t\t186, 243, 189, 93, 181, 18, 91, 36, 88, 84, 177, 0, 223, 113,\n\t\t19, 239, 230, 246, 245, 204, 113, 251, 122, 158, 34, 237,\n\t\t65, 7, 161, 206, 120, 164, 37, 118, 240, 68, 229, 10, 105,\n\t\t15, 142, 14, 175, 23, 176, 57, 196, 153, 59, 61, 200, 102,\n\t\t20, 239, 71, 71, 208, 56, 154, 65, 168, 148, 136, 87, 103,\n\t\t41, 163, 180, 62, 53, 152, 118, 93, 154, 108, 147, 174, 175,\n\t\t83, 170, 19, 94, 253, 80, 112, 90, 204, 85, 239, 89, 139,\n\t\t247, 199, 252, 70, 46, 150, 125, 170, 67, 85, 59, 212, 17,\n\t\t117, 251, 219, 138, 155, 171, 10, 145, 62, 181, 67, 93, 82,\n\t\t59, 212, 62, 35, 220, 87, 89, 166, 51, 202, 178, 83, 67, 85,\n\t\t221, 123, 135, 170, 62, 86, 151, 118, 126, 63, 92, 159, 135,\n\t\t242, 170, 154, 167, 127, 225, 202, 147, 208, 85, 249, 30,\n\t\t70, 220, 218, 191, 185, 115, 106, 16, 165, 220, 113, 147,\n\t\t136, 167, 105, 175, 149, 6, 185, 82, 170, 144, 23, 157, 33,\n\t\t100, 26, 109, 64, 48, 41, 238, 3, 219, 122, 250, 187, 79,\n\t\t63, 125, 95, 111, 102, 255, 77, 62, 85, 225, 116, 155, 20,\n\t\t0, 221, 246, 240, 195, 207, 61, 220, 97, 40, 146, 26, 105,\n\t\t49, 236, 20, 44, 63, 252, 220, 195, 90, 166, 213, 195, 249,\n\t\t147, 129, 93, 135, 111, 251, 151, 123, 46, 222, 115, 207,\n\t\t129, 92, 151, 21, 54, 76, 197, 240, 18, 21, 85, 181, 125,\n\t\t38, 251, 131, 168, 133, 113, 126, 189, 152, 237, 135, 108,\n\t\t27, 4, 11, 137, 120, 47, 36, 252, 245, 66, 254, 61, 94, 185,\n\t\t180, 242, 85, 175, 92, 122, 28, 134, 194, 70, 77, 172, 203,\n\t\t165, 202, 234, 21, 185, 84, 185, 226, 142, 169, 163, 176,\n\t\t132, 76, 20, 167, 88, 37, 153, 192, 94, 111, 216, 206, 209,\n\t\t79, 37, 205, 82, 49, 23, 43, 228, 187, 33, 157, 136, 67, 41,\n\t\t70, 56, 95, 56, 172, 15, 107, 45, 149, 89, 218, 230, 242,\n\t\t208, 178, 17, 174, 12, 239, 211, 90, 32, 132, 255, 112, 232,\n\t\t81, 12, 151, 134, 43, 111, 59, 113, 101, 103, 104, 201, 118,\n\t\t190, 56, 20, 54, 250, 238, 251, 135, 9, 187, 11, 15, 85, 174,\n\t\t44, 45, 33, 177, 110, 46, 107, 67, 189, 232, 16, 58, 141,\n\t\t80, 210, 209, 200, 250, 93, 236, 92, 1, 84, 203, 39, 114,\n\t\t27, 242, 246, 38, 42, 88, 166, 191, 180, 161, 18, 188, 75,\n\t\t148, 36, 209, 162, 151, 239, 213, 82, 55, 213, 82, 159, 160,\n\t\t147, 119, 165, 207, 27, 100, 243, 253, 64, 173, 124, 68, 18,\n\t\t255, 158, 222, 217, 229, 43, 181, 203, 163, 238, 165, 143,\n\t\t85, 15, 122, 97, 152, 189, 191, 210, 39, 137, 135, 233, 163,\n\t\t195, 162, 132, 120, 198, 39, 55, 192, 50, 74, 160, 34, 58,\n\t\t129, 80, 50, 194, 217, 86, 149, 85, 210, 41, 135, 99, 138,\n\t\t148, 97, 152, 80, 136, 128, 105, 36, 109, 42, 194, 234, 153,\n\t\t167, 36, 22, 11, 249, 84, 218, 50, 13, 13, 136, 149, 203,\n\t\t82, 102, 178, 83, 189, 192, 25, 36, 232, 1, 69, 213, 247,\n\t\t239, 141, 68, 134, 198, 67, 186, 214, 127, 64, 87, 21, 211,\n\t\t191, 227, 225, 219, 134, 38, 66, 199, 202, 149, 99, 70, 168,\n\t\t105, 255, 189, 247, 190, 229, 222, 72, 72, 23, 4, 203, 132,\n\t\t7, 35, 67, 59, 161, 247, 230, 236, 206, 155, 155, 66, 134,\n\t\t223, 180, 4, 65, 31, 212, 90, 188, 224, 9, 167, 73, 113, 7,\n\t\t199, 167, 195, 30, 35, 209, 93, 58, 112, 79, 113, 135, 252,\n\t\t186, 189, 165, 157, 2, 62, 112, 215, 129, 3, 153, 68, 107,\n\t\t40, 74, 8, 209, 122, 91, 19, 237, 253, 30, 137, 235, 184,\n\t\t97, 135, 152, 197, 130, 71, 35, 132, 68, 153, 197, 169, 175,\n\t\t189, 0, 81, 38, 251, 80, 210, 172, 211, 228, 115, 38, 213,\n\t\t226, 33, 90, 175, 186, 27, 84, 105, 223, 87, 58, 36, 219,\n\t\t198, 19, 227, 90, 138, 55, 47, 6, 14, 81, 37, 29, 33, 126,\n\t\t237, 55, 107, 159, 231, 4, 248, 51, 148, 64, 251, 209, 107,\n\t\t16, 66, 17, 32, 26, 88, 26, 78, 97, 130, 51, 92, 105, 16,\n\t\t82, 131, 216, 42, 150, 138, 118, 49, 69, 52, 72, 105, 130,\n\t\t133, 9, 182, 74, 131, 96, 101, 7, 161, 52, 200, 165, 138,\n\t\t41, 11, 19, 141, 190, 149, 129, 210, 32, 148, 138, 240, 63,\n\t\t186, 60, 94, 129, 147, 4, 37, 61, 120, 104, 215, 174, 142,\n\t\t164, 100, 21, 55, 149, 20, 148, 29, 126, 127, 174, 184, 247,\n\t\t240, 161, 40, 143, 193, 163, 236, 240, 235, 93, 29, 185, 108,\n\t\t127, 107, 156, 230, 151, 57, 69, 238, 28, 17, 193, 235, 87,\n\t\t128, 44, 148, 36, 248, 108, 87, 209, 146, 146, 29, 187, 118,\n\t\t29, 26, 76, 121, 4, 137, 19, 188, 158, 77, 37, 147, 129, 110,\n\t\t197, 3, 152, 143, 30, 58, 188, 183, 152, 243, 7, 186, 21,\n\t\t89, 192, 36, 22, 142, 179, 172, 223, 11, 226, 72, 167, 172,\n\t\t112, 94, 169, 180, 64, 168, 197, 46, 50, 61, 125, 8, 150,\n\t\t145, 15, 133, 80, 20, 237, 112, 52, 216, 8, 52, 168, 117,\n\t\t118, 188, 21, 98, 133, 124, 194, 159, 29, 128, 152, 105, 228,\n\t\t74, 117, 234, 184, 93, 151, 230, 124, 94, 203, 27, 54, 42,\n\t\t81, 58, 40, 49, 134, 43, 24, 87, 162, 248, 29, 234, 81, 85,\n\t\t61, 170, 174, 80, 113, 247, 152, 10, 203, 94, 203, 187, 46,\n\t\t229, 250, 112, 87, 23, 174, 44, 227, 143, 125, 12, 143, 213,\n\t\t9, 66, 228, 192, 230, 206, 183, 38, 106, 66, 173, 40, 137,\n\t\t122, 16, 74, 214, 27, 79, 251, 96, 16, 168, 138, 103, 139,\n\t\t36, 150, 14, 22, 98, 102, 187, 171, 22, 84, 213, 3, 174, 36,\n\t\t59, 224, 200, 147, 216, 86, 64, 83, 108, 92, 249, 203, 147,\n\t\t240, 177, 147, 147, 149, 40, 172, 4, 155, 131, 193, 230, 19,\n\t\t236, 250, 93, 85, 127, 59, 5, 233, 237, 186, 250, 159, 101,\n\t\t85, 149, 91, 102, 103, 169, 156, 56, 65, 159, 185, 63, 42,\n\t\t171, 92, 249, 155, 69, 183, 162, 187, 29, 237, 215, 208, 184,\n\t\t110, 192, 196, 34, 26, 80, 121, 209, 13, 245, 98, 195, 206,\n\t\t101, 75, 59, 139, 165, 65, 62, 71, 107, 18, 155, 42, 9, 169,\n\t\t110, 200, 23, 11, 121, 71, 157, 33, 152, 152, 17, 174, 31,\n\t\t178, 233, 65, 160, 63, 156, 119, 76, 62, 248, 68, 124, 167,\n\t\t215, 142, 248, 219, 57, 44, 24, 80, 200, 152, 241, 91, 20,\n\t\t94, 246, 14, 121, 131, 65, 239, 144, 87, 230, 101, 211, 47,\n\t\t11, 1, 181, 217, 215, 149, 229, 110, 211, 76, 83, 123, 127,\n\t\t203, 14, 65, 241, 137, 30, 35, 218, 226, 239, 234, 10, 154,\n\t\t3, 138, 42, 75, 26, 40, 191, 214, 12, 77, 51, 160, 184, 51,\n\t\t238, 143, 216, 94, 85, 137, 183, 118, 228, 58, 36, 191, 250,\n\t\t247, 170, 95, 10, 5, 53, 220, 30, 12, 244, 182, 171, 158,\n\t\t7, 76, 77, 51, 201, 14, 35, 225, 111, 147, 2, 86, 187, 112,\n\t\t153, 51, 2, 3, 36, 170, 123, 83, 202, 59, 104, 3, 154, 163,\n\t\t39, 174, 227, 127, 27, 186, 7, 161, 2, 69, 210, 145, 34, 84,\n\t\t194, 216, 59, 173, 126, 160, 104, 71, 170, 250, 91, 58, 17,\n\t\t103, 228, 72, 167, 74, 169, 52, 21, 58, 134, 213, 15, 216,\n\t\t178, 233, 175, 31, 178, 197, 82, 129, 138, 163, 12, 151, 136,\n\t\t155, 134, 101, 38, 226, 26, 39, 184, 42, 231, 206, 248, 109,\n\t\t92, 182, 203, 215, 172, 6, 4, 217, 111, 202, 20, 119, 226,\n\t\t145, 69, 7, 123, 229, 150, 184, 153, 41, 128, 33, 96, 174,\n\t\t61, 190, 179, 207, 212, 238, 84, 64, 147, 100, 85, 25, 48,\n\t\t67, 199, 141, 150, 168, 225, 17, 125, 138, 176, 163, 229,\n\t\t253, 196, 43, 99, 120, 134, 33, 240, 227, 248, 78, 143, 218,\n\t\t222, 27, 8, 182, 99, 45, 24, 146, 68, 226, 193, 148, 6, 29,\n\t\t185, 142, 214, 184, 162, 238, 140, 107, 166, 146, 242, 234,\n\t\t81, 50, 144, 226, 46, 11, 237, 86, 64, 106, 243, 39, 140,\n\t\t29, 68, 84, 188, 79, 50, 18, 186, 248, 59, 250, 72, 206, 233,\n\t\t255, 32, 195, 28, 90, 193, 178, 169, 97, 71, 145, 110, 5,\n\t\t202, 159, 14, 47, 12, 64, 190, 84, 200, 167, 119, 166, 210,\n\t\t25, 129, 17, 201, 46, 229, 29, 251, 158, 90, 125, 166, 65,\n\t\t245, 47, 219, 178, 115, 131, 48, 0, 121, 146, 1, 250, 179,\n\t\t92, 252, 239, 219, 25, 183, 210, 86, 181, 191, 36, 175, 228,\n\t\t118, 24, 105, 246, 7, 149, 173, 123, 44, 213, 208, 97, 112,\n\t\t62, 190, 211, 74, 91, 27, 25, 72, 214, 228, 58, 14, 242, 42,\n\t\t186, 233, 221, 130, 133, 140, 227, 161, 13, 28, 132, 26, 240,\n\t\t223, 137, 110, 65, 119, 34, 100, 83, 28, 233, 100, 82, 200,\n\t\t15, 242, 165, 98, 105, 103, 113, 0, 234, 39, 63, 98, 26, 108,\n\t\t180, 18, 156, 198, 212, 12, 78, 103, 139, 3, 96, 21, 75, 244,\n\t\t55, 0, 249, 84, 58, 65, 7, 128, 198, 153, 70, 46, 91, 204,\n\t\t153, 134, 21, 96, 184, 167, 226, 95, 112, 58, 75, 9, 250,\n\t\t155, 9, 237, 45, 135, 95, 95, 169, 175, 204, 223, 103, 160,\n\t\t14, 57, 188, 227, 53, 117, 197, 91, 99, 158, 234, 192, 121,\n\t\t213, 172, 163, 153, 46, 227, 160, 58, 31, 78, 11, 234, 66,\n\t\t187, 209, 1, 132, 128, 153, 189, 221, 80, 179, 237, 29, 245,\n\t\t145, 141, 121, 62, 59, 0, 9, 74, 153, 132, 227, 210, 104,\n\t\t204, 6, 11, 249, 94, 72, 117, 131, 9, 159, 212, 194, 198,\n\t\t176, 171, 20, 13, 135, 141, 231, 12, 109, 1, 143, 24, 225,\n\t\t155, 48, 85, 22, 111, 87, 180, 251, 48, 254, 1, 215, 199,\n\t\t113, 10, 188, 73, 51, 42, 191, 48, 194, 125, 76, 102, 14,\n\t\t177, 132, 86, 25, 196, 93, 97, 227, 10, 174, 124, 29, 143,\n\t\t224, 175, 105, 202, 237, 52, 5, 72, 225, 184, 62, 110, 200,\n\t\t149, 235, 176, 2, 203, 200, 143, 76, 212, 141, 114, 168, 191,\n\t\t10, 117, 157, 109, 108, 147, 132, 153, 11, 82, 155, 189, 183,\n\t\t138, 74, 21, 206, 170, 245, 110, 185, 86, 25, 3, 215, 21,\n\t\t219, 170, 161, 157, 92, 90, 122, 24, 115, 39, 53, 229, 178,\n\t\t162, 117, 97, 252, 232, 209, 124, 254, 104, 254, 8, 51, 229,\n\t\t97, 208, 1, 215, 145, 239, 90, 124, 184, 178, 138, 65, 224,\n\t\t184, 147, 99, 138, 166, 41, 19, 184, 242, 28, 126, 49, 79,\n\t\t235, 31, 103, 38, 189, 227, 159, 112, 96, 213, 93, 221, 114,\n\t\t91, 159, 2, 92, 98, 186, 165, 3, 198, 29, 204, 73, 131, 183,\n\t\t243, 222, 184, 186, 165, 163, 227, 69, 81, 118, 115, 203,\n\t\t98, 204, 180, 108, 35, 194, 229, 178, 131, 92, 161, 88, 18,\n\t\t99, 5, 76, 52, 33, 158, 225, 211, 169, 116, 131, 171, 98,\n\t\t185, 50, 146, 24, 11, 107, 182, 36, 217, 90, 120, 44, 81,\n\t\t25, 129, 229, 196, 97, 174, 73, 107, 14, 133, 154, 154, 180,\n\t\t38, 238, 112, 162, 209, 109, 209, 215, 25, 62, 9, 54, 157,\n\t\t71, 108, 56, 25, 254, 215, 23, 194, 37, 176, 20, 157, 16,\n\t\t159, 98, 66, 41, 188, 62, 150, 70, 96, 5, 233, 168, 149, 114,\n\t\t84, 208, 209, 230, 177, 233, 88, 148, 69, 190, 144, 99, 70,\n\t\t92, 55, 196, 123, 33, 21, 100, 243, 135, 6, 36, 65, 173, 179,\n\t\t162, 227, 45, 52, 13, 42, 63, 204, 68, 134, 75, 211, 55, 46,\n\t\t83, 77, 176, 57, 37, 107, 242, 174, 142, 101, 62, 36, 202,\n\t\t39, 101, 49, 196, 15, 223, 56, 190, 67, 107, 35, 125, 92,\n\t\t176, 59, 122, 172, 144, 63, 30, 237, 14, 114, 125, 98, 208,\n\t\t144, 118, 148, 97, 86, 214, 228, 84, 51, 125, 173, 99, 87,\n\t\t229, 109, 221, 221, 162, 144, 36, 36, 41, 192, 75, 227, 55,\n\t\t30, 200, 250, 10, 54, 33, 3, 59, 219, 251, 10, 199, 110, 42,\n\t\t246, 181, 239, 28, 32, 196, 151, 108, 85, 178, 7, 142, 76,\n\t\t82, 248, 169, 221, 9, 95, 130, 21, 148, 68, 57, 180, 155,\n\t\t206, 203, 38, 163, 108, 6, 10, 20, 196, 65, 174, 144, 47,\n\t\t150, 10, 249, 34, 21, 4, 17, 206, 17, 118, 98, 44, 85, 200,\n\t\t239, 100, 74, 102, 159, 105, 88, 241, 84, 33, 103, 192, 127,\n\t\t151, 3, 90, 101, 73, 214, 37, 25, 56, 221, 111, 28, 221, 21,\n\t\t108, 14, 38, 247, 196, 12, 191, 206, 85, 222, 13, 187, 118,\n\t\t28, 184, 235, 192, 59, 242, 169, 165, 219, 20, 213, 27, 148,\n\t\t117, 73, 85, 128, 215, 67, 7, 119, 236, 185, 205, 99, 210,\n\t\t65, 109, 146, 29, 7, 82, 59, 14, 134, 116, 158, 244, 143,\n\t\t65, 230, 192, 129, 12, 140, 253, 101, 178, 165, 5, 33, 68,\n\t\t54, 217, 143, 199, 208, 40, 122, 35, 66, 37, 215, 192, 163,\n\t\t138, 75, 110, 221, 144, 76, 52, 88, 137, 117, 229, 182, 25,\n\t\t163, 111, 212, 13, 114, 139, 89, 135, 166, 63, 151, 77, 214,\n\t\t172, 69, 127, 98, 125, 8, 149, 18, 212, 86, 137, 183, 66,\n\t\t34, 222, 10, 70, 63, 152, 70, 63, 100, 7, 32, 151, 29, 128,\n\t\t252, 146, 163, 225, 60, 206, 52, 157, 5, 39, 115, 156, 101,\n\t\t30, 175, 12, 169, 134, 166, 220, 174, 41, 179, 138, 118, 187,\n\t\t162, 25, 106, 229, 210, 172, 218, 161, 206, 14, 177, 146,\n\t\t161, 23, 154, 177, 129, 155, 49, 118, 110, 95, 175, 83, 151,\n\t\t78, 179, 123, 222, 201, 60, 210, 222, 174, 194, 27, 100, 181,\n\t\t131, 142, 183, 14, 85, 174, 188, 13, 14, 170, 234, 65, 184,\n\t\t55, 68, 11, 66, 125, 181, 22, 216, 205, 157, 215, 217, 248,\n\t\t107, 65, 221, 204, 139, 70, 85, 58, 87, 173, 115, 13, 237,\n\t\t154, 73, 92, 106, 148, 32, 22, 95, 27, 155, 177, 44, 140,\n\t\t168, 183, 171, 81, 245, 118, 213, 189, 141, 212, 15, 204,\n\t\t62, 103, 176, 158, 198, 47, 213, 213, 80, 111, 127, 106, 189,\n\t\t6, 53, 116, 221, 161, 139, 184, 6, 63, 209, 38, 31, 81, 131,\n\t\t219, 167, 193, 159, 227, 234, 180, 47, 194, 170, 251, 174,\n\t\t205, 236, 187, 77, 45, 84, 93, 236, 150, 123, 39, 131, 16,\n\t\t1, 130, 227, 233, 212, 32, 88, 182, 149, 125, 162, 238, 11,\n\t\t111, 99, 250, 223, 187, 216, 53, 140, 13, 157, 195, 189, 79,\n\t\t245, 98, 78, 55, 112, 236, 92, 227, 215, 207, 6, 215, 21,\n\t\t198, 187, 36, 206, 107, 144, 221, 187, 137, 225, 229, 164,\n\t\t244, 150, 112, 245, 109, 15, 87, 85, 254, 226, 172, 77, 141,\n\t\t141, 84, 58, 21, 119, 172, 139, 205, 128, 205, 179, 235, 204,\n\t\t155, 58, 49, 71, 36, 3, 55, 223, 220, 204, 96, 220, 10, 178,\n\t\t30, 118, 61, 191, 147, 24, 152, 112, 82, 91, 27, 3, 17, 109,\n\t\t9, 219, 22, 190, 201, 141, 176, 217, 244, 78, 57, 62, 95,\n\t\t204, 109, 7, 22, 99, 194, 203, 244, 178, 61, 60, 111, 212,\n\t\t106, 58, 166, 86, 211, 249, 215, 215, 13, 142, 161, 215, 162,\n\t\t179, 104, 6, 189, 1, 253, 46, 122, 15, 122, 63, 250, 248,\n\t\t22, 115, 68, 29, 23, 38, 183, 241, 245, 108, 151, 22, 183,\n\t\t73, 255, 123, 219, 217, 206, 247, 196, 249, 216, 76, 194,\n\t\t108, 34, 248, 137, 84, 137, 74, 18, 92, 145, 42, 79, 170,\n\t\t97, 85, 13, 171, 35, 91, 221, 42, 151, 157, 59, 44, 185, 249,\n\t\t165, 235, 84, 118, 111, 103, 212, 239, 171, 234, 247, 213,\n\t\t141, 254, 115, 136, 74, 82, 229, 138, 244, 14, 213, 169, 181,\n\t\t241, 55, 93, 151, 126, 108, 155, 58, 206, 239, 5, 85, 245,\n\t\t169, 85, 95, 144, 43, 87, 219, 80, 122, 83, 95, 108, 114,\n\t\t163, 81, 253, 34, 182, 97, 238, 174, 122, 199, 152, 233, 199,\n\t\t64, 222, 228, 246, 162, 19, 57, 115, 123, 213, 249, 167, 85,\n\t\t100, 160, 48, 157, 107, 232, 204, 152, 161, 106, 115, 209,\n\t\t22, 92, 83, 79, 112, 117, 71, 88, 80, 213, 203, 178, 207,\n\t\t19, 82, 33, 95, 207, 112, 223, 38, 97, 82, 22, 120, 175, 252,\n\t\t146, 166, 17, 171, 142, 91, 235, 228, 159, 135, 241, 28, 42,\n\t\t213, 201, 254, 235, 201, 187, 41, 85, 253, 137, 170, 78, 109,\n\t\t41, 229, 62, 172, 70, 85, 53, 170, 126, 125, 107, 241, 86,\n\t\t247, 77, 29, 5, 81, 98, 43, 142, 142, 249, 147, 164, 206,\n\t\t235, 222, 6, 86, 131, 246, 51, 82, 89, 134, 189, 13, 158,\n\t\t119, 75, 222, 168, 10, 209, 74, 215, 214, 29, 240, 143, 203,\n\t\t178, 37, 187, 186, 7, 183, 31, 254, 2, 133, 81, 22, 189, 142,\n\t\t234, 133, 148, 158, 169, 1, 208, 192, 176, 45, 156, 118, 231,\n\t\t112, 54, 127, 219, 124, 41, 109, 198, 53, 193, 52, 236, 12,\n\t\t12, 138, 37, 187, 184, 97, 137, 197, 161, 19, 53, 101, 187,\n\t\t193, 165, 203, 0, 228, 185, 172, 166, 93, 178, 251, 119, 118,\n\t\t75, 158, 98, 184, 163, 167, 61, 82, 232, 187, 177, 223, 142,\n\t\t95, 186, 20, 235, 219, 219, 149, 10, 14, 18, 65, 242, 53,\n\t\t183, 117, 118, 54, 55, 121, 20, 172, 86, 161, 190, 168, 74,\n\t\t70, 128, 231, 111, 99, 20, 132, 184, 214, 161, 93, 178, 155,\n\t\t162, 69, 33, 24, 13, 69, 59, 253, 77, 199, 122, 250, 59, 98,\n\t\t126, 157, 223, 29, 13, 89, 149, 47, 94, 186, 52, 193, 75,\n\t\t254, 166, 206, 230, 253, 105, 43, 25, 182, 116, 133, 112,\n\t\t240, 121, 30, 11, 132, 116, 87, 41, 160, 10, 50, 47, 41, 28,\n\t\t235, 147, 102, 153, 242, 174, 80, 147, 115, 94, 100, 50, 159,\n\t\t2, 130, 162, 165, 179, 213, 104, 74, 233, 146, 229, 136, 58,\n\t\t139, 219, 32, 251, 224, 46, 213, 192, 7, 68, 207, 37, 231,\n\t\t182, 155, 201, 248, 59, 234, 167, 161, 65, 108, 168, 151,\n\t\t60, 226, 1, 231, 118, 151, 51, 13, 64, 168, 113, 114, 90,\n\t\t239, 119, 5, 53, 163, 20, 66, 165, 92, 214, 93, 93, 41, 38,\n\t\t175, 195, 106, 111, 252, 138, 132, 241, 89, 73, 58, 139, 49,\n\t\t28, 219, 146, 225, 86, 117, 145, 62, 23, 245, 165, 109, 88,\n\t\t110, 243, 183, 147, 137, 184, 195, 93, 22, 190, 238, 180,\n\t\t126, 112, 253, 227, 139, 91, 126, 251, 82, 245, 219, 87, 94,\n\t\t245, 183, 41, 111, 181, 1, 69, 61, 5, 215, 249, 246, 229,\n\t\t106, 203, 224, 219, 242, 203, 119, 215, 209, 165, 229, 58,\n\t\t99, 109, 5, 150, 224, 75, 200, 143, 12, 212, 186, 209, 14,\n\t\t98, 206, 235, 180, 201, 199, 252, 142, 153, 6, 115, 90, 85,\n\t\t132, 126, 221, 208, 50, 199, 95, 130, 232, 132, 162, 45, 195,\n\t\t61, 154, 81, 249, 180, 99, 14, 24, 97, 109, 238, 248, 113,\n\t\t42, 92, 53, 101, 130, 205, 157, 206, 250, 42, 213, 51, 59,\n\t\t209, 14, 84, 112, 117, 40, 87, 142, 16, 87, 215, 28, 128,\n\t\t124, 46, 185, 241, 203, 86, 218, 204, 5, 221, 79, 251, 33,\n\t\t170, 126, 84, 165, 63, 118, 1, 163, 14, 144, 211, 218, 210,\n\t\t113, 129, 2, 242, 34, 147, 199, 167, 29, 177, 252, 249, 58,\n\t\t144, 78, 107, 123, 171, 48, 85, 70, 106, 120, 95, 129, 21,\n\t\t148, 65, 167, 209, 93, 84, 110, 18, 139, 104, 92, 162, 139,\n\t\t173, 80, 37, 106, 94, 138, 98, 63, 12, 114, 165, 65, 206,\n\t\t241, 82, 229, 178, 17, 48, 169, 62, 148, 174, 115, 87, 101,\n\t\t248, 132, 6, 68, 227, 187, 193, 204, 90, 142, 191, 74, 168,\n\t\t250, 170, 190, 77, 124, 162, 5, 118, 46, 197, 251, 248, 158,\n\t\t27, 122, 253, 188, 223, 195, 236, 237, 179, 82, 168, 69, 225,\n\t\t213, 214, 150, 158, 156, 220, 30, 234, 176, 142, 233, 224,\n\t\t33, 186, 229, 155, 104, 5, 81, 14, 106, 146, 230, 35, 97,\n\t\t171, 69, 241, 52, 157, 79, 37, 135, 20, 85, 169, 124, 142,\n\t\t233, 1, 31, 136, 69, 218, 219, 194, 93, 77, 134, 161, 104,\n\t\t65, 239, 170, 55, 72, 162, 9, 89, 216, 211, 155, 47, 216,\n\t\t118, 83, 218, 106, 62, 169, 119, 42, 33, 77, 11, 5, 118, 7,\n\t\t21, 79, 64, 145, 164, 35, 62, 146, 108, 13, 189, 144, 58,\n\t\t64, 226, 183, 86, 21, 137, 122, 220, 139, 232, 78, 215, 62,\n\t\t233, 6, 102, 165, 196, 51, 144, 206, 64, 58, 177, 193, 85,\n\t\t55, 8, 185, 61, 84, 173, 183, 45, 98, 9, 213, 112, 136, 236,\n\t\t32, 80, 107, 171, 152, 74, 211, 95, 55, 196, 113, 194, 100,\n\t\t75, 103, 17, 176, 169, 217, 152, 79, 21, 224, 219, 90, 182,\n\t\t189, 93, 206, 245, 180, 180, 170, 188, 167, 79, 33, 74, 192,\n\t\t241, 55, 168, 178, 71, 207, 28, 233, 225, 125, 252, 174, 93,\n\t\t96, 137, 190, 202, 221, 142, 107, 230, 140, 18, 80, 116, 226,\n\t\t1, 93, 82, 84, 101, 40, 153, 58, 223, 228, 81, 227, 29, 146,\n\t\t79, 147, 252, 166, 196, 181, 254, 77, 168, 57, 158, 183, 237,\n\t\t66, 190, 119, 143, 224, 217, 39, 251, 24, 17, 36, 195, 200,\n\t\t237, 104, 107, 143, 76, 48, 26, 181, 121, 2, 178, 22, 82,\n\t\t58, 117, 95, 156, 28, 72, 189, 144, 40, 74, 190, 35, 146,\n\t\t98, 104, 222, 224, 238, 128, 187, 46, 14, 240, 37, 22, 143,\n\t\t48, 132, 142, 186, 51, 166, 109, 17, 182, 174, 28, 175, 69,\n\t\t189, 228, 153, 195, 156, 206, 46, 89, 122, 177, 116, 174,\n\t\t148, 46, 145, 52, 73, 219, 196, 38, 37, 187, 100, 167, 54,\n\t\t122, 1, 254, 41, 16, 216, 171, 9, 186, 110, 30, 233, 240,\n\t\t118, 171, 29, 71, 204, 136, 160, 237, 101, 101, 17, 243, 72,\n\t\t135, 186, 195, 45, 42, 156, 56, 17, 184, 51, 159, 191, 51,\n\t\t224, 222, 95, 184, 109, 96, 224, 182, 129, 215, 100, 98, 177,\n\t\t76, 236, 71, 106, 183, 218, 121, 196, 212, 245, 218, 155,\n\t\t214, 225, 78, 167, 140, 54, 230, 247, 59, 141, 189, 185, 80,\n\t\t123, 253, 46, 122, 255, 215, 1, 218, 198, 217, 24, 109, 131,\n\t\t234, 32, 246, 218, 10, 252, 2, 86, 144, 69, 165, 137, 200,\n\t\t116, 208, 172, 29, 1, 76, 52, 48, 13, 171, 84, 180, 136, 6,\n\t\t60, 101, 208, 92, 182, 88, 194, 212, 64, 46, 165, 192, 190,\n\t\t239, 233, 167, 239, 11, 217, 166, 37, 7, 219, 146, 163, 131,\n\t\t177, 184, 217, 62, 209, 127, 219, 195, 15, 223, 214, 119,\n\t\t107, 235, 233, 139, 217, 174, 224, 208, 211, 223, 125, 90,\n\t\t16, 18, 29, 74, 96, 176, 125, 223, 176, 138, 119, 55, 247,\n\t\t100, 225, 165, 135, 159, 123, 184, 179, 221, 119, 254, 214,\n\t\t236, 233, 16, 191, 133, 44, 3, 211, 112, 39, 106, 235, 186,\n\t\t114, 212, 87, 21, 102, 151, 183, 148, 101, 144, 88, 23, 102,\n\t\t55, 108, 43, 203, 234, 237, 34, 27, 33, 228, 58, 12, 219,\n\t\t107, 61, 229, 220, 225, 22, 54, 43, 85, 190, 197, 166, 168,\n\t\t255, 227, 64, 111, 239, 129, 94, 120, 140, 205, 66, 31, 97,\n\t\t83, 146, 221, 75, 203, 170, 177, 58, 155, 215, 89, 95, 135,\n\t\t202, 8, 5, 183, 179, 148, 235, 210, 255, 62, 11, 154, 18,\n\t\t101, 131, 221, 156, 108, 176, 136, 63, 202, 174, 183, 111,\n\t\t107, 29, 195, 112, 157, 97, 92, 185, 2, 59, 234, 204, 224,\n\t\t17, 245, 186, 54, 241, 243, 212, 12, 169, 28, 117, 172, 225,\n\t\t255, 10, 235, 184, 175, 207, 13, 37, 52, 128, 14, 161, 155,\n\t\t208, 107, 94, 105, 150, 8, 58, 11, 106, 4, 167, 83, 76, 85,\n\t\t74, 149, 138, 76, 112, 216, 69, 98, 12, 66, 9, 151, 226, 134,\n\t\t101, 23, 243, 164, 88, 74, 165, 177, 93, 76, 145, 8, 148,\n\t\t182, 153, 89, 126, 173, 40, 254, 166, 54, 189, 152, 110, 81,\n\t\t57, 49, 227, 51, 188, 152, 111, 231, 69, 69, 109, 202, 125,\n\t\t150, 232, 82, 243, 73, 14, 120, 62, 210, 163, 4, 84, 239,\n\t\t131, 162, 105, 106, 65, 110, 219, 169, 168, 178, 42, 181,\n\t\t249, 121, 255, 33, 63, 241, 90, 161, 112, 166, 47, 168, 115,\n\t\t65, 173, 171, 77, 39, 119, 130, 232, 215, 154, 62, 173, 25,\n\t\t24, 199, 31, 243, 115, 94, 59, 161, 243, 24, 176, 0, 85, 157,\n\t\t168, 158, 6, 55, 191, 18, 238, 54, 155, 34, 28, 141, 47, 157,\n\t\t234, 5, 215, 79, 149, 206, 112, 233, 20, 147, 165, 150, 105,\n\t\t216, 249, 146, 147, 180, 195, 176, 179, 88, 42, 110, 131,\n\t\t251, 15, 125, 2, 230, 148, 38, 78, 9, 41, 28, 241, 240, 124,\n\t\t128, 147, 155, 20, 142, 247, 106, 60, 39, 137, 126, 133, 11,\n\t\t66, 136, 151, 189, 10, 103, 3, 24, 219, 227, 253, 146, 64,\n\t\t132, 212, 25, 89, 110, 237, 246, 75, 242, 81, 89, 246, 148,\n\t\t118, 105, 88, 86, 70, 120, 224, 241, 25, 89, 30, 165, 247,\n\t\t81, 101, 43, 92, 15, 188, 34, 174, 89, 139, 96, 98, 91, 14,\n\t\t174, 105, 7, 105, 103, 161, 209, 65, 175, 88, 42, 230, 182,\n\t\t65, 238, 187, 132, 8, 9, 79, 70, 32, 164, 149, 240, 92, 139,\n\t\t234, 231, 73, 43, 33, 66, 198, 41, 17, 228, 160, 108, 240,\n\t\t100, 91, 164, 46, 171, 120, 192, 127, 18, 171, 152, 47, 181,\n\t\t180, 97, 21, 159, 164, 233, 64, 135, 213, 142, 93, 123, 189,\n\t\t30, 143, 34, 26, 124, 37, 76, 156, 177, 108, 153, 134, 134,\n\t\t187, 192, 245, 85, 149, 216, 162, 111, 55, 108, 131, 192,\n\t\t81, 245, 134, 112, 66, 192, 30, 89, 87, 124, 146, 206, 17,\n\t\t49, 164, 246, 133, 60, 94, 175, 39, 180, 61, 11, 190, 239,\n\t\t163, 106, 178, 213, 19, 240, 122, 176, 200, 65, 175, 72, 206,\n\t\t234, 182, 182, 25, 222, 14, 212, 247, 202, 240, 214, 226,\n\t\t198, 170, 211, 208, 54, 96, 70, 59, 36, 169, 227, 118, 73,\n\t\t10, 253, 89, 71, 56, 220, 17, 222, 30, 182, 75, 67, 213, 154,\n\t\t75, 171, 97, 90, 23, 41, 53, 184, 120, 68, 144, 7, 233, 40,\n\t\t134, 218, 209, 78, 52, 132, 142, 163, 97, 132, 130, 57, 51,\n\t\t81, 50, 19, 5, 146, 51, 19, 57, 51, 81, 40, 109, 132, 216,\n\t\t38, 235, 218, 155, 153, 40, 36, 252, 37, 219, 210, 128, 233,\n\t\t213, 133, 156, 153, 203, 98, 170, 67, 101, 32, 78, 39, 37,\n\t\t218, 208, 82, 52, 58, 20, 141, 210, 203, 183, 235, 81, 137,\n\t\t48, 213, 174, 47, 58, 252, 100, 128, 247, 54, 251, 154, 218,\n\t\t196, 96, 212, 82, 122, 90, 130, 178, 30, 208, 228, 161, 40,\n\t\t68, 163, 75, 81, 246, 47, 210, 128, 91, 170, 138, 154, 207,\n\t\t87, 25, 249, 202, 107, 125, 173, 129, 116, 104, 52, 26, 125,\n\t\t212, 231, 33, 94, 66, 188, 196, 243, 153, 104, 180, 78, 63,\n\t\t117, 104, 223, 139, 6, 94, 145, 246, 116, 66, 75, 84, 149,\n\t\t163, 82, 209, 50, 89, 120, 238, 160, 19, 49, 148, 217, 142,\n\t\t95, 46, 233, 98, 123, 88, 36, 68, 12, 183, 139, 122, 39, 33,\n\t\t138, 28, 82, 13, 195, 211, 188, 61, 147, 87, 158, 147, 48,\n\t\t110, 39, 226, 46, 65, 106, 199, 88, 122, 29, 49, 136, 210,\n\t\t130, 21, 115, 143, 233, 145, 66, 117, 227, 117, 165, 38, 159,\n\t\t95, 105, 188, 58, 214, 105, 221, 122, 70, 213, 97, 187, 13,\n\t\t204, 127, 71, 12, 131, 20, 84, 105, 66, 82, 217, 101, 91,\n\t\t80, 191, 33, 73, 158, 89, 143, 36, 229, 147, 110, 77, 85,\n\t\t74, 34, 92, 227, 159, 0, 106, 71, 105, 212, 135, 246, 162,\n\t\t19, 8, 149, 88, 16, 75, 188, 106, 189, 155, 150, 14, 215,\n\t\t101, 29, 202, 54, 181, 24, 59, 219, 53, 202, 88, 65, 33, 181,\n\t\t15, 158, 198, 216, 207, 11, 60, 191, 155, 144, 221, 4, 251,\n\t\t49, 142, 253, 118, 51, 243, 44, 127, 48, 36, 243, 37, 78,\n\t\t102, 215, 24, 198, 126, 76, 214, 235, 159, 197, 36, 192, 243,\n\t\t69, 140, 139, 132, 4, 0, 227, 214, 191, 222, 154, 141, 42,\n\t\t35, 191, 38, 156, 252, 121, 153, 167, 87, 233, 20, 38, 1,\n\t\t66, 234, 222, 66, 8, 215, 233, 31, 26, 178, 80, 43, 106, 71,\n\t\t221, 8, 9, 174, 103, 80, 180, 178, 165, 52, 78, 187, 54, 116,\n\t\t150, 50, 13, 177, 72, 58, 21, 39, 118, 209, 38, 216, 176,\n\t\t75, 169, 18, 140, 51, 149, 164, 242, 129, 222, 217, 222, 66,\n\t\t54, 251, 22, 166, 135, 188, 163, 181, 181, 96, 154, 186, 83,\n\t\t244, 127, 177, 204, 46, 166, 166, 28, 98, 233, 91, 153, 254,\n\t\t98, 215, 63, 118, 235, 178, 181, 136, 202, 218, 23, 57, 17,\n\t\t254, 2, 153, 40, 132, 98, 204, 162, 39, 60, 38, 172, 3, 136,\n\t\t6, 169, 1, 170, 238, 151, 236, 82, 218, 14, 138, 54, 85, 115,\n\t\t1, 158, 111, 206, 10, 123, 5, 195, 163, 42, 242, 108, 183,\n\t\t214, 25, 157, 11, 11, 205, 31, 77, 38, 255, 170, 191, 50,\n\t\t50, 245, 29, 143, 41, 61, 14, 47, 104, 177, 72, 229, 17, 219,\n\t\t131, 249, 76, 191, 95, 8, 91, 167, 251, 60, 123, 245, 31,\n\t\t100, 245, 118, 120, 235, 106, 207, 103, 229, 160, 250, 53,\n\t\t58, 159, 224, 181, 159, 173, 189, 200, 9, 240, 60, 242, 161,\n\t\t38, 20, 69, 105, 148, 161, 214, 31, 88, 216, 9, 181, 75, 209,\n\t\t233, 33, 27, 1, 66, 117, 132, 180, 14, 118, 41, 149, 38, 166,\n\t\t93, 74, 99, 210, 6, 165, 2, 95, 234, 5, 98, 181, 129, 181,\n\t\t15, 210, 9, 2, 127, 27, 189, 103, 52, 149, 62, 117, 177, 137,\n\t\t221, 243, 247, 30, 221, 163, 138, 38, 164, 143, 52, 237, 200,\n\t\t39, 7, 122, 135, 142, 124, 111, 111, 74, 57, 50, 116, 119,\n\t\t119, 232, 72, 26, 146, 229, 61, 67, 214, 142, 83, 221, 224,\n\t\t61, 243, 223, 163, 234, 61, 39, 232, 181, 235, 228, 203, 62,\n\t\t165, 171, 55, 105, 29, 31, 184, 150, 55, 154, 111, 234, 181,\n\t\t222, 104, 228, 11, 86, 239, 77, 149, 43, 131, 55, 217, 201,\n\t\t125, 249, 27, 131, 193, 190, 129, 1, 132, 144, 92, 243, 179,\n\t\t58, 113, 131, 221, 174, 214, 119, 11, 186, 119, 11, 143, 222,\n\t\t32, 228, 120, 35, 75, 109, 99, 127, 204, 111, 144, 122, 255,\n\t\t88, 218, 204, 21, 72, 157, 150, 88, 191, 182, 82, 171, 213,\n\t\t13, 113, 179, 174, 156, 99, 78, 225, 138, 207, 142, 105, 74,\n\t\t183, 216, 164, 15, 249, 124, 112, 165, 50, 2, 3, 204, 7, 57,\n\t\t53, 252, 160, 19, 41, 178, 162, 78, 168, 27, 126, 176, 164,\n\t\t41, 149, 203, 138, 22, 179, 193, 167, 104, 90, 160, 242, 188,\n\t\t36, 253, 114, 13, 65, 180, 242, 19, 65, 120, 80, 29, 81, 213,\n\t\t17, 117, 184, 163, 227, 113, 22, 172, 237, 252, 222, 199,\n\t\t174, 123, 217, 21, 33, 97, 237, 87, 108, 167, 226, 87, 145,\n\t\t7, 69, 156, 248, 83, 145, 14, 180, 180, 51, 242, 130, 57,\n\t\t59, 198, 2, 58, 139, 165, 65, 161, 96, 99, 22, 41, 89, 191,\n\t\t140, 101, 167, 157, 37, 44, 158, 45, 94, 105, 192, 61, 172,\n\t\t42, 138, 162, 254, 246, 99, 236, 182, 244, 153, 193, 202,\n\t\t79, 180, 128, 12, 156, 36, 251, 100, 57, 35, 63, 18, 111,\n\t\t77, 181, 165, 156, 21, 45, 173, 159, 63, 144, 105, 78, 45,\n\t\t249, 35, 182, 226, 85, 85, 5, 190, 195, 110, 149, 167, 250,\n\t\t130, 94, 85, 1, 78, 86, 154, 155, 187, 66, 137, 67, 127, 23,\n\t\t108, 109, 146, 214, 215, 182, 74, 169, 94, 219, 130, 204,\n\t\t129, 202, 72, 178, 197, 31, 241, 111, 178, 1, 242, 91, 196,\n\t\t240, 187, 107, 242, 144, 99, 170, 24, 69, 143, 133, 207, 154,\n\t\t212, 24, 42, 21, 41, 191, 153, 141, 75, 40, 185, 206, 125,\n\t\t3, 167, 218, 135, 58, 250, 83, 2, 23, 32, 158, 112, 44, 212,\n\t\t30, 232, 106, 111, 143, 8, 138, 96, 112, 141, 142, 123, 95,\n\t\t231, 107, 246, 166, 135, 146, 9, 65, 228, 249, 86, 143, 108,\n\t\t153, 73, 43, 158, 109, 17, 64, 104, 17, 4, 97, 67, 140, 120,\n\t\t14, 29, 187, 254, 122, 110, 137, 90, 105, 212, 54, 179, 152,\n\t\t252, 75, 167, 48, 179, 221, 218, 96, 235, 114, 123, 171, 0,\n\t\t242, 47, 241, 66, 243, 205, 67, 251, 111, 110, 226, 57, 191,\n\t\t128, 35, 67, 3, 109, 162, 240, 109, 158, 111, 113, 202, 32,\n\t\t32, 136, 109, 67, 131, 17, 44, 108, 23, 89, 126, 155, 32,\n\t\t132, 197, 98, 111, 38, 207, 55, 241, 124, 4, 11, 33, 51, 158,\n\t\t180, 91, 68, 220, 178, 77, 57, 29, 59, 110, 28, 12, 29, 53,\n\t\t57, 84, 66, 253, 232, 20, 58, 235, 68, 166, 66, 194, 159,\n\t\t171, 177, 127, 108, 221, 9, 228, 95, 143, 88, 141, 85, 135,\n\t\t2, 29, 59, 49, 51, 87, 240, 23, 18, 102, 172, 144, 48, 211,\n\t\t172, 18, 123, 137, 53, 18, 43, 228, 115, 233, 90, 99, 235,\n\t\t13, 208, 247, 236, 66, 130, 173, 210, 193, 47, 84, 85, 85,\n\t\t143, 170, 149, 21, 245, 168, 170, 58, 105, 24, 82, 143, 170,\n\t\t67, 209, 202, 80, 52, 10, 43, 81, 73, 165, 15, 85, 149, 22,\n\t\t135, 84, 245, 69, 106, 24, 189, 168, 62, 127, 105, 100, 151,\n\t\t122, 28, 134, 214, 80, 221, 123, 117, 105, 166, 165, 84, 152,\n\t\t210, 49, 4, 136, 150, 173, 177, 235, 10, 53, 208, 242, 236,\n\t\t18, 154, 157, 189, 60, 123, 92, 165, 211, 52, 211, 163, 156,\n\t\t56, 178, 131, 232, 8, 58, 134, 78, 161, 91, 208, 56, 186,\n\t\t31, 253, 46, 122, 39, 250, 61, 132, 146, 9, 115, 157, 42,\n\t\t137, 117, 170, 20, 26, 210, 53, 4, 115, 235, 194, 194, 204,\n\t\t213, 83, 139, 55, 115, 5, 177, 144, 48, 131, 133, 132, 105,\n\t\t179, 39, 236, 45, 135, 20, 185, 172, 73, 169, 146, 116, 139,\n\t\t234, 63, 152, 115, 26, 205, 217, 238, 187, 92, 222, 193, 242,\n\t\t10, 67, 248, 246, 117, 180, 215, 11, 174, 80, 252, 87, 40,\n\t\t250, 87, 232, 35, 118, 89, 138, 194, 46, 102, 155, 170, 71,\n\t\t233, 245, 138, 154, 143, 70, 163, 87, 150, 215, 95, 15, 177,\n\t\t235, 230, 130, 104, 116, 13, 49, 245, 13, 80, 52, 250, 125,\n\t\t85, 93, 166, 79, 151, 213, 167, 162, 209, 161, 229, 234, 247,\n\t\t105, 85, 74, 118, 90, 165, 206, 199, 224, 250, 44, 147, 70,\n\t\t93, 88, 44, 51, 162, 249, 82, 34, 24, 243, 231, 216, 130,\n\t\t52, 172, 104, 167, 235, 163, 46, 150, 142, 31, 31, 174, 44,\n\t\t95, 209, 148, 137, 49, 67, 59, 173, 185, 142, 4, 163, 242,\n\t\t225, 227, 224, 171, 44, 79, 40, 181, 120, 174, 21, 14, 193,\n\t\t10, 106, 66, 29, 84, 142, 184, 35, 149, 133, 181, 212, 47,\n\t\t231, 20, 115, 193, 141, 49, 45, 117, 33, 25, 108, 72, 246,\n\t\t133, 141, 202, 138, 155, 248, 1, 190, 98, 132, 187, 48, 134,\n\t\t167, 48, 174, 124, 29, 99, 182, 155, 100, 165, 49, 126, 165,\n\t\t210, 87, 23, 190, 2, 121, 86, 17, 213, 249, 106, 87, 80, 18,\n\t\t117, 163, 157, 8, 129, 129, 73, 4, 156, 206, 76, 196, 28,\n\t\t14, 201, 23, 75, 25, 151, 93, 114, 49, 231, 129, 97, 101,\n\t\t139, 5, 63, 11, 45, 128, 217, 108, 111, 111, 86, 80, 213,\n\t\t202, 123, 85, 85, 112, 211, 48, 161, 170, 149, 175, 31, 187,\n\t\t239, 216, 177, 251, 142, 193, 165, 125, 243, 145, 200, 252,\n\t\t62, 103, 126, 168, 79, 31, 159, 154, 58, 94, 25, 161, 215,\n\t\t234, 58, 23, 29, 231, 31, 64, 157, 104, 150, 105, 21, 173,\n\t\t204, 212, 173, 6, 253, 236, 21, 83, 249, 84, 175, 19, 241,\n\t\t196, 54, 176, 101, 237, 162, 101, 23, 242, 41, 188, 174, 123,\n\t\t166, 112, 93, 36, 241, 22, 25, 166, 35, 86, 115, 109, 96,\n\t\t49, 54, 221, 7, 69, 248, 253, 246, 131, 114, 183, 16, 244,\n\t\t254, 198, 27, 4, 128, 51, 233, 93, 9, 238, 198, 118, 107,\n\t\t200, 10, 237, 57, 218, 220, 44, 19, 66, 228, 205, 55, 44,\n\t\t18, 177, 185, 217, 30, 53, 126, 40, 117, 139, 240, 122, 223,\n\t\t142, 142, 185, 144, 57, 38, 199, 232, 92, 34, 72, 162, 200,\n\t\t243, 28, 0, 220, 26, 207, 239, 78, 236, 144, 58, 59, 12, 219,\n\t\t214, 188, 255, 99, 206, 231, 245, 234, 44, 116, 196, 239,\n\t\t245, 250, 90, 88, 52, 136, 79, 243, 250, 58, 107, 101, 11,\n\t\t68, 22, 176, 32, 117, 210, 138, 187, 35, 198, 173, 254, 102,\n\t\t133, 24, 129, 49, 103, 45, 112, 237, 55, 107, 127, 2, 43,\n\t\t240, 37, 212, 202, 86, 146, 92, 26, 49, 215, 114, 47, 80,\n\t\t237, 199, 46, 184, 212, 177, 76, 70, 155, 235, 211, 163, 33,\n\t\t211, 11, 25, 208, 40, 89, 114, 165, 34, 44, 182, 102, 196,\n\t\t8, 239, 87, 255, 218, 175, 92, 240, 73, 86, 107, 44, 23, 13,\n\t\t12, 27, 109, 249, 150, 64, 80, 38, 152, 200, 193, 128, 76,\n\t\t8, 86, 2, 1, 5, 19, 154, 179, 72, 139, 160, 42, 68, 152, 255,\n\t\t90, 139, 0, 167, 196, 206, 200, 69, 219, 122, 171, 71, 243,\n\t\t254, 111, 86, 201, 103, 170, 111, 138, 117, 72, 237, 92, 82,\n\t\t234, 140, 125, 235, 162, 170, 40, 222, 227, 20, 219, 103,\n\t\t84, 143, 162, 254, 23, 154, 250, 60, 77, 125, 129, 166, 126,\n\t\t159, 166, 190, 169, 18, 57, 133, 121, 65, 86, 241, 7, 47,\n\t\t248, 235, 121, 227, 89, 20, 69, 119, 51, 255, 99, 41, 3, 165,\n\t\t4, 115, 67, 218, 233, 12, 12, 66, 27, 211, 225, 41, 26, 116,\n\t\t224, 166, 115, 217, 125, 80, 28, 128, 124, 47, 164, 170, 166,\n\t\t1, 193, 182, 229, 86, 233, 134, 56, 182, 234, 226, 206, 215,\n\t\t51, 137, 56, 182, 0, 197, 59, 20, 159, 159, 191, 189, 173,\n\t\t187, 187, 237, 158, 83, 173, 33, 107, 87, 235, 19, 221, 59,\n\t\t207, 196, 91, 237, 11, 68, 58, 124, 152, 227, 46, 232, 242,\n\t\t25, 93, 177, 68, 194, 243, 207, 218, 138, 39, 200, 115, 239,\n\t\t83, 100, 242, 25, 159, 166, 249, 62, 67, 177, 8, 171, 138,\n\t\t162, 134, 105, 74, 85, 148, 104, 49, 170, 36, 140, 238, 189,\n\t\t221, 114, 208, 179, 107, 87, 200, 179, 171, 16, 46, 5, 211,\n\t\t223, 176, 147, 98, 11, 215, 7, 45, 188, 254, 13, 143, 88,\n\t\t146, 212, 22, 12, 67, 178, 97, 170, 192, 245, 11, 30, 21,\n\t\t43, 77, 77, 140, 178, 53, 114, 187, 52, 160, 50, 63, 140,\n\t\t246, 59, 145, 185, 137, 66, 58, 197, 198, 6, 51, 27, 93, 3,\n\t\t50, 23, 203, 218, 78, 216, 91, 34, 22, 111, 5, 131, 225, 166,\n\t\t131, 198, 81, 68, 89, 100, 76, 27, 68, 160, 21, 184, 158,\n\t\t224, 149, 49, 65, 184, 104, 199, 242, 237, 115, 129, 63, 139,\n\t\t245, 198, 108, 72, 165, 205, 7, 212, 39, 137, 183, 242, 3,\n\t\t41, 232, 253, 171, 160, 69, 66, 130, 22, 144, 231, 252, 182,\n\t\t116, 209, 235, 61, 171, 249, 255, 160, 181, 253, 145, 163,\n\t\t41, 46, 102, 183, 231, 251, 122, 99, 146, 29, 139, 85, 158,\n\t\t56, 110, 6, 126, 228, 145, 36, 111, 176, 45, 48, 36, 107,\n\t\t146, 237, 151, 196, 180, 24, 210, 67, 14, 191, 174, 173, 253,\n\t\t9, 135, 225, 207, 81, 7, 154, 68, 168, 196, 194, 181, 109,\n\t\t170, 166, 15, 2, 211, 140, 104, 54, 2, 54, 91, 148, 91, 103,\n\t\t229, 116, 10, 59, 108, 200, 130, 142, 139, 41, 236, 120, 188,\n\t\t168, 206, 152, 129, 56, 174, 198, 105, 101, 0, 183, 129, 197,\n\t\t16, 115, 51, 134, 195, 199, 41, 211, 224, 130, 129, 130, 217,\n\t\t70, 210, 81, 104, 181, 90, 122, 177, 229, 199, 125, 45, 70,\n\t\t179, 16, 237, 148, 162, 32, 70, 121, 191, 242, 79, 94, 249,\n\t\t78, 15, 126, 228, 135, 97, 158, 111, 227, 125, 38, 215, 194,\n\t\t123, 21, 162, 112, 41, 14, 43, 30, 133, 235, 226, 189, 94,\n\t\t47, 223, 195, 27, 126, 190, 11, 56, 129, 8, 146, 151, 143,\n\t\t240, 166, 143, 75, 4, 165, 2, 62, 16, 220, 101, 4, 5, 255,\n\t\t99, 109, 89, 176, 226, 34, 110, 109, 185, 56, 217, 210, 74,\n\t\t196, 72, 48, 23, 125, 27, 198, 73, 191, 239, 126, 197, 43,\n\t\t127, 65, 213, 241, 226, 136, 172, 36, 85, 207, 163, 30, 77,\n\t\t84, 95, 175, 170, 210, 123, 137, 42, 18, 242, 49, 85, 253,\n\t\t115, 85, 212, 60, 127, 44, 16, 204, 171, 143, 210, 228, 211,\n\t\t28, 119, 131, 71, 34, 89, 17, 33, 113, 237, 55, 174, 127,\n\t\t56, 130, 238, 65, 179, 104, 9, 61, 190, 237, 72, 167, 76,\n\t\t91, 180, 139, 150, 152, 210, 160, 13, 104, 79, 59, 108, 79,\n\t\t101, 98, 109, 189, 169, 54, 212, 217, 18, 62, 203, 109, 120,\n\t\t150, 182, 107, 113, 86, 44, 192, 58, 158, 42, 173, 23, 96,\n\t\t55, 95, 179, 39, 224, 92, 108, 55, 215, 34, 38, 237, 79, 198,\n\t\t141, 243, 76, 54, 164, 75, 233, 152, 109, 246, 84, 126, 69,\n\t\t76, 130, 207, 99, 249, 147, 58, 223, 2, 129, 160, 64, 196,\n\t\t170, 164, 16, 36, 33, 16, 16, 137, 224, 202, 138, 67, 18,\n\t\t198, 88, 226, 4, 145, 199, 88, 58, 46, 97, 44, 202, 178, 136,\n\t\t177, 116, 76, 195, 154, 134, 53, 240, 170, 29, 137, 211, 18,\n\t\t185, 96, 183, 134, 159, 97, 2, 228, 3, 225, 116, 58, 124,\n\t\t147, 24, 82, 60, 23, 20, 33, 160, 60, 35, 233, 23, 56, 238,\n\t\t52, 29, 102, 130, 36, 200, 196, 164, 41, 147, 200, 130, 36,\n\t\t36, 104, 50, 193, 74, 255, 136, 38, 175, 170, 68, 190, 121,\n\t\t132, 142, 197, 17, 30, 11, 188, 76, 156, 52, 187, 248, 124,\n\t\t35, 62, 182, 87, 218, 161, 119, 2, 221, 67, 41, 205, 66, 139,\n\t\t215, 73, 93, 98, 86, 101, 4, 218, 32, 237, 18, 252, 213, 205,\n\t\t58, 85, 254, 100, 22, 65, 173, 115, 224, 62, 179, 163, 137,\n\t\t81, 239, 27, 233, 96, 41, 92, 216, 229, 9, 133, 141, 100,\n\t\t27, 9, 202, 221, 123, 187, 141, 68, 95, 163, 120, 165, 66,\n\t\t64, 245, 8, 253, 56, 28, 196, 67, 128, 91, 84, 169, 36, 122,\n\t\t190, 65, 169, 11, 136, 104, 9, 235, 48, 163, 81, 252, 204,\n\t\t206, 238, 39, 90, 119, 121, 136, 216, 20, 60, 117, 15, 149,\n\t\t90, 183, 243, 254, 167, 15, 83, 236, 27, 165, 81, 85, 66,\n\t\t41, 239, 211, 121, 203, 247, 44, 207, 19, 209, 82, 244, 51,\n\t\t178, 126, 129, 67, 27, 246, 10, 178, 85, 213, 77, 150, 142,\n\t\t101, 184, 84, 73, 52, 250, 123, 76, 131, 88, 233, 108, 33,\n\t\t159, 129, 110, 48, 27, 76, 157, 34, 199, 99, 190, 155, 240,\n\t\t125, 81, 34, 166, 5, 73, 18, 78, 157, 235, 224, 246, 68, 197,\n\t\t128, 175, 165, 209, 208, 73, 240, 68, 228, 241, 29, 167, 69,\n\t\t66, 196, 95, 138, 228, 214, 156, 197, 119, 198, 20, 175, 52,\n\t\t212, 24, 11, 221, 130, 250, 209, 193, 87, 31, 51, 119, 189,\n\t\t93, 102, 48, 172, 30, 167, 90, 136, 234, 222, 102, 183, 223,\n\t\t76, 246, 190, 186, 106, 234, 241, 143, 94, 103, 215, 88, 61,\n\t\t172, 30, 22, 9, 188, 109, 124, 203, 245, 96, 123, 132, 237,\n\t\t158, 126, 100, 123, 136, 30, 116, 84, 168, 239, 95, 23, 148,\n\t\t45, 232, 70, 182, 222, 235, 170, 131, 109, 189, 90, 216, 96,\n\t\t151, 95, 150, 138, 69, 73, 246, 75, 244, 38, 53, 228, 150,\n\t\t182, 7, 249, 198, 173, 234, 187, 185, 202, 171, 197, 163,\n\t\t13, 165, 153, 87, 242, 85, 70, 65, 93, 47, 166, 167, 49, 42,\n\t\t170, 237, 221, 178, 116, 140, 5, 247, 236, 152, 97, 193, 61,\n\t\t215, 13, 147, 250, 139, 119, 75, 242, 49, 22, 230, 211, 51,\n\t\t237, 132, 249, 48, 223, 169, 51, 63, 199, 80, 146, 237, 144,\n\t\t118, 161, 212, 192, 85, 65, 152, 143, 170, 224, 207, 15, 2,\n\t\t219, 36, 74, 65, 18, 253, 182, 31, 74, 57, 63, 17, 253, 36,\n\t\t225, 231, 250, 176, 34, 42, 226, 123, 21, 69, 81, 158, 251,\n\t\t24, 207, 55, 228, 42, 159, 90, 170, 188, 244, 102, 88, 130,\n\t\t43, 111, 6, 88, 150, 73, 229, 89, 172, 42, 92, 129, 231, 7,\n\t\t246, 129, 76, 224, 142, 245, 220, 158, 202, 143, 50, 16, 169,\n\t\t252, 125, 47, 68, 118, 84, 32, 214, 91, 249, 17, 170, 219,\n\t\t55, 191, 130, 44, 212, 85, 103, 125, 80, 168, 152, 185, 81,\n\t\t13, 237, 163, 122, 3, 54, 253, 84, 113, 48, 247, 65, 46, 91,\n\t\t132, 149, 230, 84, 170, 249, 210, 27, 121, 65, 29, 161, 41,\n\t\t184, 36, 147, 202, 18, 21, 40, 151, 14, 122, 151, 137, 12,\n\t\t43, 169, 230, 202, 149, 230, 212, 61, 156, 122, 58, 213, 12,\n\t\t209, 230, 84, 101, 25, 162, 108, 167, 220, 21, 34, 239, 205,\n\t\t42, 110, 44, 80, 227, 190, 231, 45, 162, 68, 147, 27, 188,\n\t\t200, 100, 67, 190, 65, 178, 116, 200, 164, 143, 126, 163,\n\t\t143, 200, 179, 235, 201, 70, 161, 242, 161, 101, 90, 220,\n\t\t120, 65, 91, 237, 193, 70, 27, 194, 218, 236, 13, 95, 134,\n\t\t95, 214, 55, 251, 169, 245, 230, 32, 93, 7, 211, 131, 245,\n\t\t31, 17, 17, 90, 91, 227, 150, 96, 9, 37, 80, 55, 58, 142,\n\t\t206, 161, 105, 132, 32, 231, 167, 148, 78, 96, 58, 191, 164,\n\t\t217, 154, 102, 170, 23, 18, 76, 172, 250, 115, 206, 26, 30,\n\t\t170, 74, 219, 162, 227, 79, 77, 167, 138, 251, 32, 17, 199,\n\t\t9, 146, 48, 115, 182, 197, 246, 153, 58, 127, 133, 4, 211,\n\t\t255, 116, 192, 6, 43, 175, 142, 100, 187, 26, 64, 192, 145,\n\t\t135, 134, 188, 193, 61, 188, 212, 172, 38, 252, 193, 136,\n\t\t21, 180, 251, 237, 91, 101, 89, 147, 135, 30, 232, 243, 217,\n\t\t63, 182, 253, 149, 215, 104, 52, 11, 79, 139, 120, 74, 14,\n\t\t244, 180, 202, 6, 103, 165, 119, 3, 15, 131, 93, 225, 81,\n\t\t53, 166, 248, 146, 178, 28, 9, 97, 241, 98, 207, 0, 207, 159,\n\t\t214, 213, 253, 18, 193, 38, 41, 169, 30, 143, 71, 245, 142,\n\t\t11, 194, 180, 243, 250, 208, 26, 10, 122, 189, 74, 84, 151,\n\t\t73, 200, 231, 231, 130, 199, 105, 33, 234, 243, 249, 42, 171,\n\t\t138, 87, 150, 189, 60, 17, 95, 75, 252, 188, 46, 91, 253,\n\t\t102, 130, 27, 92, 186, 93, 17, 188, 193, 40, 81, 218, 131,\n\t\t34, 190, 113, 105, 144, 243, 236, 197, 134, 68, 0, 231, 60,\n\t\t170, 170, 42, 234, 45, 130, 208, 199, 222, 107, 180, 155,\n\t\t91, 81, 1, 141, 108, 88, 145, 40, 21, 75, 131, 98, 54, 34,\n\t\t216, 86, 176, 144, 79, 167, 210, 241, 12, 23, 215, 184, 4,\n\t\t38, 116, 26, 206, 197, 178, 105, 139, 96, 162, 137, 9, 103,\n\t\t155, 1, 243, 58, 90, 118, 150, 109, 66, 16, 74, 84, 139, 130,\n\t\t127, 246, 59, 46, 174, 64, 199, 189, 124, 64, 53, 253, 150,\n\t\t97, 5, 12, 53, 192, 143, 137, 220, 107, 242, 208, 162, 217,\n\t\t62, 91, 107, 129, 222, 219, 56, 106, 97, 71, 37, 165, 228,\n\t\t115, 170, 41, 106, 83, 147, 214, 12, 190, 146, 34, 233, 146,\n\t\t92, 242, 209, 170, 18, 246, 170, 186, 199, 203, 251, 74, 178,\n\t\t68, 243, 149, 95, 51, 1, 66, 44, 61, 118, 140, 215, 21, 77,\n\t\t194, 88, 210, 101, 157, 63, 85, 249, 66, 133, 227, 14, 116,\n\t\t218, 138, 170, 202, 161, 228, 97, 224, 43, 248, 203, 10, 233,\n\t\t81, 157, 74, 196, 167, 152, 156, 218, 67, 148, 128, 76, 118,\n\t\t120, 109, 69, 21, 137, 71, 82, 57, 239, 14, 34, 215, 239,\n\t\t143, 73, 179, 249, 229, 40, 66, 235, 238, 151, 218, 189, 49,\n\t\t46, 130, 202, 239, 86, 48, 168, 4, 175, 70, 21, 19, 215, 90,\n\t\t200, 90, 185, 108, 49, 87, 221, 61, 251, 105, 195, 80, 85,\n\t\t246, 87, 245, 48, 192, 144, 17, 54, 212, 225, 202, 202, 11,\n\t\t249, 84, 42, 159, 122, 70, 246, 166, 195, 66, 179, 174, 55,\n\t\t11, 225, 180, 87, 134, 232, 144, 218, 161, 14, 57, 114, 222,\n\t\t89, 222, 112, 4, 107, 229, 37, 88, 174, 140, 188, 148, 162,\n\t\t47, 61, 235, 145, 130, 161, 184, 36, 197, 67, 65, 201, 195,\n\t\t246, 9, 56, 114, 82, 103, 187, 155, 251, 208, 94, 116, 20,\n\t\t157, 222, 58, 38, 243, 186, 208, 54, 56, 198, 183, 73, 55,\n\t\t132, 3, 95, 169, 68, 183, 196, 98, 80, 146, 102, 27, 127,\n\t\t91, 133, 118, 94, 222, 140, 204, 144, 228, 147, 36, 159, 212,\n\t\t120, 219, 34, 190, 59, 94, 239, 55, 174, 14, 206, 84, 77,\n\t\t250, 149, 82, 142, 40, 32, 201, 98, 193, 217, 20, 108, 59,\n\t\t7, 213, 228, 178, 47, 177, 163, 102, 142, 179, 149, 214, 18,\n\t\t19, 53, 127, 248, 212, 174, 80, 38, 18, 105, 109, 235, 105,\n\t\t130, 100, 114, 241, 217, 197, 100, 231, 16, 159, 108, 79,\n\t\t242, 67, 112, 59, 59, 117, 230, 118, 182, 214, 250, 93, 87,\n\t\t96, 245, 165, 56, 69, 129, 116, 123, 126, 232, 150, 197, 197,\n\t\t91, 134, 242, 121, 69, 65, 117, 107, 148, 180, 15, 232, 156,\n\t\t186, 119, 107, 250, 7, 41, 253, 251, 217, 201, 11, 9, 124,\n\t\t93, 206, 25, 102, 116, 118, 29, 190, 149, 43, 235, 90, 182,\n\t\t181, 37, 223, 172, 172, 239, 246, 49, 194, 149, 62, 202, 44,\n\t\t48, 34, 51, 105, 178, 5, 157, 217, 218, 79, 29, 223, 180,\n\t\t187, 92, 51, 188, 53, 212, 57, 119, 175, 181, 3, 159, 185,\n\t\t97, 9, 101, 155, 116, 21, 189, 141, 28, 19, 131, 117, 192,\n\t\t97, 247, 38, 78, 169, 48, 244, 54, 241, 75, 180, 114, 69,\n\t\t8, 56, 240, 7, 132, 225, 173, 216, 100, 132, 161, 185, 238,\n\t\t219, 88, 118, 34, 140, 54, 225, 83, 136, 153, 76, 235, 218,\n\t\t176, 67, 138, 74, 163, 13, 95, 125, 224, 167, 63, 117, 142,\n\t\t13, 163, 237, 161, 40, 242, 32, 36, 198, 152, 143, 36, 70,\n\t\t59, 16, 174, 84, 88, 160, 28, 172, 120, 131, 193, 168, 187,\n\t\t203, 182, 209, 47, 217, 202, 226, 171, 182, 247, 75, 22, 98,\n\t\t102, 210, 31, 51, 89, 167, 111, 246, 68, 94, 169, 172, 192,\n\t\t114, 101, 229, 138, 17, 222, 218, 7, 249, 210, 75, 35, 48,\n\t\t68, 235, 33, 96, 54, 215, 87, 96, 5, 125, 16, 161, 100, 4,\n\t\t216, 218, 171, 109, 49, 77, 41, 213, 203, 153, 238, 242, 108,\n\t\t109, 18, 102, 90, 92, 126, 31, 20, 232, 180, 73, 13, 171,\n\t\t125, 64, 232, 196, 73, 181, 88, 154, 25, 132, 54, 40, 165,\n\t\t157, 162, 98, 77, 179, 101, 19, 103, 209, 106, 227, 10, 110,\n\t\t65, 205, 168, 117, 117, 94, 211, 121, 147, 126, 223, 89, 167,\n\t\t209, 193, 166, 25, 250, 13, 98, 59, 69, 88, 7, 120, 30, 243,\n\t\t188, 36, 105, 105, 25, 56, 44, 232, 88, 229, 204, 163, 253,\n\t\t30, 143, 234, 241, 52, 201, 216, 71, 228, 38, 143, 199, 35,\n\t\t8, 123, 142, 154, 156, 7, 235, 4, 115, 114, 26, 123, 89, 253,\n\t\t56, 38, 156, 192, 121, 240, 240, 209, 163, 195, 216, 195,\n\t\t9, 28, 193, 241, 180, 38, 177, 166, 56, 76, 116, 172, 130,\n\t\t121, 116, 207, 134, 150, 60, 158, 186, 150, 58, 196, 237,\n\t\t91, 186, 91, 80, 177, 166, 73, 118, 92, 148, 48, 208, 146,\n\t\t215, 116, 157, 238, 87, 61, 30, 85, 109, 202, 208, 129, 151,\n\t\t105, 246, 120, 84, 65, 19, 246, 158, 238, 122, 141, 251, 122,\n\t\t194, 230, 121, 246, 142, 204, 121, 136, 78, 48, 88, 93, 93,\n\t\t22, 96, 162, 19, 15, 39, 219, 146, 198, 154, 35, 78, 251,\n\t\t91, 181, 230, 241, 188, 218, 198, 170, 50, 198, 177, 131,\n\t\t250, 208, 46, 54, 94, 81, 178, 110, 192, 5, 171, 238, 133,\n\t\t26, 187, 175, 135, 64, 12, 66, 63, 100, 153, 205, 77, 114,\n\t\t76, 199, 9, 250, 99, 254, 250, 81, 12, 142, 11, 255, 113,\n\t\t10, 154, 207, 17, 60, 62, 154, 190, 57, 142, 67, 234, 152,\n\t\t228, 211, 132, 248, 39, 3, 143, 7, 56, 254, 30, 254, 203,\n\t\t149, 43, 199, 89, 229, 168, 187, 103, 99, 152, 157, 230, 80,\n\t\t185, 204, 152, 211, 201, 236, 150, 53, 236, 193, 187, 91,\n\t\t91, 91, 249, 202, 8, 12, 87, 46, 247, 57, 117, 27, 246, 236,\n\t\t135, 80, 59, 202, 163, 189, 232, 8, 179, 63, 235, 198, 134,\n\t\t201, 246, 157, 177, 80, 252, 96, 172, 150, 204, 23, 54, 12,\n\t\t229, 234, 209, 89, 164, 22, 105, 19, 131, 43, 97, 163, 178,\n\t\t68, 1, 241, 41, 24, 195, 2, 190, 163, 242, 56, 187, 179, 193,\n\t\t206, 30, 60, 200, 246, 109, 238, 236, 144, 164, 142, 9, 73,\n\t\t58, 90, 185, 18, 101, 2, 10, 144, 17, 238, 195, 191, 192,\n\t\t88, 129, 97, 122, 251, 5, 238, 11, 27, 107, 168, 250, 232,\n\t\t94, 182, 57, 244, 177, 234, 91, 195, 245, 190, 126, 19, 181,\n\t\t50, 95, 255, 70, 27, 138, 138, 63, 179, 122, 8, 90, 208, 159,\n\t\t175, 179, 176, 221, 144, 202, 58, 33, 63, 156, 202, 167, 138,\n\t\t44, 192, 246, 65, 220, 165, 126, 84, 237, 194, 24, 140, 13,\n\t\t155, 75, 168, 177, 16, 98, 17, 180, 149, 41, 56, 141, 219,\n\t\t85, 181, 221, 9, 172, 108, 212, 191, 227, 155, 45, 129, 82,\n\t\t205, 234, 116, 163, 245, 251, 161, 94, 249, 255, 168, 218,\n\t\t161, 30, 148, 176, 56, 38, 73, 99, 34, 150, 14, 54, 106, 253,\n\t\t95, 85, 213, 5, 221, 121, 166, 111, 241, 173, 162, 123, 138,\n\t\t89, 187, 27, 54, 81, 114, 124, 9, 213, 152, 82, 250, 85, 137,\n\t\t53, 7, 189, 172, 185, 158, 245, 214, 22, 212, 215, 213, 65,\n\t\t241, 195, 70, 32, 54, 217, 21, 241, 205, 118, 5, 91, 187,\n\t\t95, 143, 197, 167, 164, 109, 52, 45, 26, 62, 214, 96, 92,\n\t\t108, 252, 218, 166, 111, 85, 163, 66, 184, 234, 57, 82, 174,\n\t\t93, 231, 238, 57, 160, 56, 186, 193, 32, 78, 131, 159, 110,\n\t\t108, 112, 87, 61, 206, 223, 169, 7, 3, 33, 178, 246, 219,\n\t\t181, 63, 225, 14, 186, 250, 130, 141, 90, 80, 132, 69, 110,\n\t\t33, 22, 82, 79, 0, 199, 157, 21, 253, 156, 152, 176, 115,\n\t\t73, 146, 75, 39, 72, 174, 68, 236, 116, 206, 46, 145, 82,\n\t\t2, 94, 194, 194, 152, 136, 43, 63, 227, 85, 190, 242, 51,\n\t\t44, 142, 241, 4, 78, 236, 206, 31, 170, 252, 107, 254, 203,\n\t\t249, 175, 237, 59, 148, 31, 123, 240, 80, 110, 116, 212, 255,\n\t\t96, 30, 86, 196, 167, 8, 169, 124, 92, 16, 224, 86, 66, 158,\n\t\t18, 251, 70, 216, 191, 75, 203, 203, 63, 255, 249, 242, 50,\n\t\t114, 215, 187, 169, 77, 69, 80, 18, 21, 208, 13, 8, 161, 218,\n\t\t185, 103, 249, 110, 96, 219, 64, 217, 154, 81, 27, 88, 185,\n\t\t108, 201, 116, 55, 132, 102, 131, 155, 102, 213, 120, 170,\n\t\t16, 51, 112, 194, 204, 90, 102, 44, 95, 132, 16, 211, 179,\n\t\t30, 147, 124, 146, 70, 176, 46, 112, 18, 47, 240, 156, 79,\n\t\t146, 134, 164, 95, 210, 57, 243, 183, 116, 206, 244, 114,\n\t\t125, 45, 201, 202, 72, 178, 165, 37, 9, 203, 73, 232, 59,\n\t\t112, 215, 129, 3, 119, 157, 243, 73, 183, 75, 130, 194, 11,\n\t\t28, 167, 241, 80, 146, 124, 18, 160, 160, 183, 194, 234, 195,\n\t\t144, 55, 88, 89, 93, 166, 47, 176, 75, 221, 153, 14, 58, 106,\n\t\t217, 194, 143, 209, 176, 179, 46, 125, 157, 179, 201, 26,\n\t\t181, 1, 231, 240, 189, 167, 240, 212, 192, 128, 44, 91, 146,\n\t\t60, 48, 32, 75, 150, 44, 55, 228, 54, 234, 10, 110, 144, 243,\n\t\t63, 110, 85, 215, 205, 33, 36, 214, 206, 64, 114, 244, 216,\n\t\t110, 52, 136, 208, 230, 179, 0, 157, 123, 234, 85, 157, 144,\n\t\t244, 86, 166, 119, 212, 95, 95, 120, 197, 51, 147, 86, 235,\n\t\t246, 121, 58, 191, 63, 125, 229, 67, 148, 26, 117, 112, 170,\n\t\t227, 238, 222, 44, 103, 218, 27, 118, 161, 150, 138, 41, 23,\n\t\t159, 82, 214, 98, 231, 85, 166, 40, 55, 81, 108, 158, 104,\n\t\t112, 106, 54, 236, 73, 141, 225, 63, 96, 80, 45, 25, 73, 30,\n\t\t116, 172, 120, 82, 170, 140, 117, 224, 130, 205, 141, 98,\n\t\t169, 189, 110, 127, 106, 90, 218, 207, 240, 232, 12, 5, 36,\n\t\t73, 148, 101, 89, 22, 37, 73, 53, 148, 77, 112, 71, 29, 11,\n\t\t111, 211, 222, 208, 13, 251, 84, 247, 129, 123, 52, 154, 187,\n\t\t24, 70, 209, 42, 82, 221, 197, 114, 118, 184, 83, 20, 185,\n\t\t125, 80, 172, 71, 227, 61, 247, 197, 157, 45, 172, 193, 193,\n\t\t32, 219, 194, 154, 14, 54, 7, 197, 176, 172, 96, 191, 50,\n\t\t44, 43, 188, 248, 73, 172, 200, 97, 49, 216, 28, 12, 136,\n\t\t28, 39, 16, 113, 120, 195, 166, 210, 150, 78, 103, 99, 171,\n\t\t101, 177, 141, 173, 175, 167, 44, 47, 73, 50, 239, 15, 42,\n\t\t124, 136, 247, 43, 254, 161, 160, 159, 151, 100, 137, 150,\n\t\t251, 69, 89, 34, 16, 226, 55, 226, 215, 205, 206, 169, 220,\n\t\t140, 159, 179, 109, 34, 238, 236, 153, 200, 59, 27, 38, 178,\n\t\t206, 182, 138, 162, 115, 51, 182, 170, 130, 221, 118, 234,\n\t\t241, 124, 78, 245, 225, 64, 0, 251, 84, 122, 173, 79, 63,\n\t\t181, 169, 196, 73, 191, 197, 81, 233, 27, 112, 189, 127, 155,\n\t\t186, 199, 183, 107, 252, 162, 171, 222, 179, 248, 149, 198,\n\t\t189, 190, 105, 118, 122, 226, 62, 116, 108, 11, 126, 220,\n\t\t96, 35, 214, 198, 150, 59, 210, 240, 134, 242, 237, 246, 4,\n\t\t3, 97, 33, 124, 123, 153, 221, 152, 98, 211, 244, 237, 44,\n\t\t242, 175, 80, 87, 194, 2, 244, 151, 54, 111, 22, 254, 83,\n\t\t86, 243, 53, 204, 140, 220, 193, 166, 111, 155, 181, 182,\n\t\t84, 87, 242, 150, 218, 38, 226, 205, 123, 153, 123, 182, 232,\n\t\t79, 7, 254, 61, 92, 117, 155, 53, 29, 94, 148, 121, 113, 170,\n\t\t212, 192, 148, 239, 101, 195, 226, 81, 54, 160, 78, 238, 29,\n\t\t16, 193, 43, 239, 204, 239, 148, 189, 32, 54, 194, 120, 105,\n\t\t93, 22, 220, 29, 111, 145, 85, 94, 215, 121, 85, 110, 97,\n\t\t255, 47, 192, 230, 253, 232, 69, 52, 128, 246, 163, 27, 208,\n\t\t141, 232, 4, 58, 141, 238, 124, 21, 251, 211, 27, 207, 36,\n\t\t99, 145, 44, 134, 149, 43, 21, 216, 129, 50, 52, 87, 42, 36,\n\t\t204, 250, 123, 46, 203, 22, 222, 186, 193, 220, 110, 47, 59,\n\t\t83, 219, 152, 173, 20, 234, 144, 73, 40, 68, 228, 137, 190,\n\t\t190, 190, 217, 190, 190, 190, 137, 142, 16, 213, 93, 67, 219,\n\t\t239, 110, 79, 132, 13, 102, 144, 70, 141, 240, 72, 72, 34,\n\t\t114, 71, 72, 38, 82, 71, 40, 84, 251, 133, 164, 144, 220,\n\t\t38, 17, 57, 180, 133, 220, 219, 202, 211, 202, 54, 236, 56,\n\t\t39, 39, 22, 109, 43, 155, 218, 128, 127, 3, 47, 101, 137,\n\t\t202, 137, 39, 58, 155, 139, 29, 60, 167, 146, 206, 183, 92,\n\t\t172, 67, 170, 17, 228, 56, 175, 72, 241, 140, 145, 178, 36,\n\t\t133, 247, 158, 172, 131, 191, 129, 79, 188, 236, 60, 211,\n\t\t110, 42, 143, 75, 84, 248, 166, 139, 37, 42, 207, 108, 108,\n\t\t55, 228, 82, 91, 194, 204, 162, 60, 109, 43, 251, 162, 104,\n\t\t82, 211, 76, 119, 110, 175, 111, 200, 125, 101, 51, 244, 55,\n\t\t159, 16, 25, 236, 47, 202, 178, 21, 143, 91, 155, 174, 63,\n\t\t216, 140, 70, 38, 78, 177, 216, 68, 207, 60, 213, 58, 94,\n\t\t137, 158, 233, 84, 105, 80, 200, 213, 79, 34, 165, 20, 59,\n\t\t160, 114, 189, 224, 186, 36, 254, 83, 2, 32, 121, 52, 157,\n\t\t4, 19, 28, 120, 121, 217, 155, 242, 202, 252, 51, 4, 184,\n\t\t68, 170, 174, 224, 58, 196, 191, 141, 35, 170, 21, 80, 73,\n\t\t103, 132, 8, 216, 111, 89, 126, 204, 113, 36, 210, 185, 158,\n\t\t173, 225, 245, 85, 182, 175, 170, 27, 221, 128, 238, 64, 8,\n\t\t57, 225, 152, 182, 101, 26, 124, 13, 25, 103, 119, 87, 177,\n\t\t10, 120, 218, 197, 164, 228, 204, 45, 108, 39, 24, 38, 169,\n\t\t132, 163, 118, 22, 242, 233, 108, 123, 181, 90, 141, 4, 240,\n\t\t205, 29, 109, 25, 66, 50, 47, 55, 23, 211, 2, 195, 176, 147,\n\t\t97, 60, 82, 69, 5, 187, 184, 141, 169, 20, 165, 241, 131,\n\t\t123, 52, 62, 187, 231, 22, 74, 27, 79, 115, 229, 103, 110,\n\t\t141, 6, 146, 64, 52, 222, 20, 190, 193, 227, 185, 33, 220,\n\t\t84, 249, 39, 35, 105, 83, 172, 189, 188, 135, 196, 51, 31,\n\t\t227, 197, 122, 140, 119, 36, 59, 198, 41, 169, 227, 225, 64,\n\t\t148, 18, 234, 150, 88, 27, 239, 60, 173, 163, 80, 35, 127,\n\t\t182, 49, 59, 239, 16, 66, 141, 60, 215, 235, 156, 55, 87,\n\t\t13, 91, 160, 189, 74, 231, 88, 236, 44, 200, 83, 115, 181,\n\t\t84, 140, 112, 27, 249, 22, 206, 52, 112, 224, 236, 97, 159,\n\t\t38, 138, 205, 26, 225, 132, 144, 230, 243, 11, 6, 247, 199,\n\t\t162, 230, 59, 44, 113, 134, 224, 247, 201, 1, 149, 231, 8,\n\t\t214, 84, 229, 90, 29, 123, 252, 94, 29, 63, 14, 6, 132, 86,\n\t\t221, 75, 107, 105, 62, 142, 111, 246, 29, 150, 14, 233, 173,\n\t\t66, 128, 147, 14, 251, 154, 121, 192, 154, 76, 56, 0, 172,\n\t\t92, 110, 216, 8, 189, 145, 135, 119, 160, 61, 175, 204, 195,\n\t\t84, 171, 96, 251, 21, 233, 124, 155, 99, 219, 23, 139, 54,\n\t\t91, 95, 184, 62, 239, 126, 222, 75, 98, 49, 162, 73, 195,\n\t\t24, 15, 255, 45, 189, 200, 152, 208, 18, 239, 117, 216, 181,\n\t\t87, 151, 58, 58, 36, 93, 236, 227, 53, 190, 143, 93, 68, 34,\n\t\t177, 34, 68, 214, 42, 107, 127, 194, 113, 240, 37, 228, 97,\n\t\t187, 41, 250, 209, 77, 232, 117, 104, 2, 33, 202, 150, 152,\n\t\t41, 0, 165, 98, 9, 19, 39, 246, 219, 225, 68, 162, 65, 178,\n\t\t88, 114, 162, 194, 211, 197, 18, 53, 5, 6, 33, 141, 217, 222,\n\t\t49, 42, 221, 177, 224, 156, 83, 156, 234, 229, 50, 176, 143,\n\t\t139, 51, 213, 58, 103, 181, 113, 180, 83, 139, 180, 119, 45,\n\t\t141, 99, 235, 254, 139, 34, 1, 53, 232, 235, 141, 251, 130,\n\t\t157, 45, 70, 91, 184, 116, 116, 124, 111, 129, 136, 189, 197,\n\t\t91, 246, 100, 12, 120, 67, 171, 209, 30, 218, 125, 227, 120,\n\t\t174, 143, 224, 206, 158, 91, 246, 236, 244, 29, 92, 175, 95,\n\t\t249, 39, 133, 179, 57, 25, 20, 16, 243, 10, 167, 220, 145,\n\t\t151, 121, 145, 179, 57, 197, 205, 167, 50, 65, 65, 23, 130,\n\t\t198, 158, 211, 109, 24, 72, 106, 8, 136, 120, 115, 208, 23,\n\t\t239, 245, 5, 139, 152, 28, 122, 111, 241, 198, 22, 51, 28,\n\t\t238, 239, 121, 243, 69, 140, 111, 248, 224, 238, 27, 205,\n\t\t96, 216, 232, 239, 123, 251, 233, 245, 106, 243, 10, 185,\n\t\t67, 6, 37, 47, 130, 193, 217, 22, 47, 174, 231, 102, 123,\n\t\t147, 4, 112, 219, 233, 61, 166, 33, 232, 130, 177, 113, 142,\n\t\t110, 69, 69, 52, 188, 93, 255, 87, 121, 61, 93, 170, 29, 211,\n\t\t94, 127, 122, 123, 210, 201, 48, 15, 89, 253, 89, 238, 176,\n\t\t5, 75, 84, 57, 254, 115, 184, 153, 231, 197, 132, 206, 41,\n\t\t156, 158, 16, 121, 190, 25, 131, 36, 180, 181, 9, 18, 8, 78,\n\t\t142, 199, 60, 203, 214, 213, 219, 138, 87, 156, 1, 112, 36,\n\t\t17, 18, 100, 16, 219, 68, 177, 77, 4, 89, 8, 37, 68, 145,\n\t\t243, 249, 56, 241, 36, 203, 240, 34, 0, 205, 137, 235, 181,\n\t\t16, 181, 95, 215, 214, 94, 228, 126, 7, 158, 103, 123, 46,\n\t\t169, 229, 120, 16, 157, 102, 17, 73, 117, 60, 36, 82, 114,\n\t\t164, 29, 244, 137, 101, 51, 82, 20, 75, 17, 200, 22, 147,\n\t\t41, 50, 200, 101, 35, 96, 167, 72, 6, 226, 216, 170, 210,\n\t\t136, 189, 189, 73, 46, 166, 54, 73, 191, 58, 38, 226, 78,\n\t\t176, 190, 83, 105, 55, 78, 121, 2, 137, 169, 55, 77, 37, 2,\n\t\t158, 166, 123, 231, 238, 173, 124, 200, 147, 198, 55, 156,\n\t\t127, 211, 249, 27, 112, 74, 245, 204, 62, 53, 251, 227, 42,\n\t\t253, 152, 168, 12, 110, 148, 148, 127, 190, 149, 80, 92, 89,\n\t\t103, 15, 231, 123, 55, 211, 79, 15, 71, 245, 108, 127, 127,\n\t\t86, 143, 238, 236, 239, 255, 4, 72, 131, 231, 250, 251, 207,\n\t\t237, 147, 225, 232, 200, 200, 47, 29, 154, 50, 185, 249, 72,\n\t\t163, 216, 140, 95, 87, 70, 18, 212, 202, 34, 10, 234, 116,\n\t\t88, 177, 192, 254, 71, 1, 231, 191, 25, 208, 157, 240, 247,\n\t\t65, 176, 217, 142, 110, 106, 3, 90, 118, 106, 0, 234, 41,\n\t\t71, 204, 218, 26, 72, 177, 65, 111, 135, 93, 1, 143, 201,\n\t\t241, 156, 198, 113, 188, 233, 9, 36, 155, 3, 17, 127, 120,\n\t\t103, 255, 226, 179, 139, 253, 59, 5, 123, 125, 254, 16, 236,\n\t\t47, 48, 253, 226, 83, 245, 170, 200, 218, 14, 89, 244, 120,\n\t\t84, 66, 84, 143, 71, 148, 187, 155, 211, 254, 86, 210, 116,\n\t\t239, 238, 91, 22, 23, 111, 217, 125, 111, 147, 230, 217, 97,\n\t\t132, 170, 40, 135, 140, 29, 158, 159, 215, 107, 41, 27, 241,\n\t\t59, 138, 110, 253, 95, 195, 47, 96, 185, 67, 135, 74, 79,\n\t\t226, 28, 252, 193, 6, 141, 253, 239, 197, 180, 89, 99, 50,\n\t\t84, 166, 2, 245, 41, 42, 84, 93, 41, 251, 31, 195, 26, 2,\n\t\t155, 5, 174, 91, 130, 220, 179, 188, 28, 58, 248, 81, 19,\n\t\t138, 161, 78, 180, 19, 29, 97, 59, 148, 217, 49, 214, 245,\n\t\t134, 241, 118, 6, 203, 255, 2, 209, 222, 235, 109, 14, 114,\n\t\t142, 37, 237, 81, 176, 14, 124, 242, 67, 155, 172, 153, 247,\n\t\t255, 59, 201, 7, 170, 98, 168, 174, 169, 141, 101, 41, 16,\n\t\t202, 111, 50, 114, 190, 248, 31, 33, 100, 253, 152, 208, 153,\n\t\t108, 233, 65, 5, 230, 149, 170, 39, 83, 177, 202, 227, 118,\n\t\t131, 140, 221, 116, 234, 73, 190, 163, 234, 66, 112, 16, 191,\n\t\t131, 49, 230, 51, 13, 210, 244, 163, 245, 130, 86, 13, 5,\n\t\t36, 25, 51, 164, 36, 57, 208, 206, 184, 248, 116, 157, 176,\n\t\t116, 45, 254, 173, 244, 0, 218, 167, 187, 209, 254, 117, 254,\n\t\t182, 13, 66, 53, 58, 146, 112, 166, 195, 188, 195, 180, 236,\n\t\t94, 42, 218, 17, 126, 35, 180, 85, 91, 245, 191, 48, 32, 63,\n\t\t154, 72, 116, 70, 0, 115, 128, 253, 166, 233, 23, 4, 122,\n\t\t197, 192, 97, 95, 75, 192, 243, 254, 122, 144, 61, 206, 96,\n\t\t245, 49, 88, 95, 111, 105, 154, 229, 107, 1, 140, 121, 34,\n\t\t55, 201, 132, 243, 112, 68, 110, 150, 36, 142, 16, 0, 89,\n\t\t213, 33, 89, 15, 255, 135, 54, 219, 18, 65, 102, 75, 220,\n\t\t64, 199, 105, 48, 107, 217, 70, 29, 107, 10, 155, 12, 136,\n\t\t87, 64, 176, 216, 216, 64, 241, 163, 193, 4, 167, 242, 138,\n\t\t74, 5, 173, 215, 145, 179, 190, 122, 76, 208, 117, 80, 22,\n\t\t83, 245, 239, 114, 208, 81, 211, 188, 69, 222, 145, 169, 151,\n\t\t234, 49, 107, 123, 5, 58, 252, 167, 250, 215, 35, 46, 254,\n\t\t191, 129, 231, 81, 140, 105, 170, 167, 208, 20, 66, 215, 69,\n\t\t47, 23, 225, 75, 85, 194, 240, 57, 215, 252, 118, 197, 174,\n\t\t88, 85, 98, 171, 65, 185, 69, 58, 255, 97, 39, 188, 154, 173,\n\t\t159, 166, 18, 169, 180, 179, 52, 77, 199, 47, 244, 93, 7,\n\t\t241, 195, 46, 239, 114, 170, 207, 80, 28, 143, 216, 47, 89,\n\t\t183, 193, 29, 196, 31, 184, 69, 225, 109, 158, 4, 84, 127,\n\t\t88, 224, 37, 95, 219, 7, 60, 92, 111, 126, 252, 137, 39, 198,\n\t\t199, 159, 240, 123, 36, 162, 43, 76, 63, 239, 121, 220, 210,\n\t\t53, 75, 111, 225, 48, 225, 164, 26, 53, 154, 100, 66, 167,\n\t\t59, 89, 213, 143, 43, 138, 44, 74, 146, 236, 243, 96, 230,\n\t\t62, 83, 91, 130, 193, 150, 192, 7, 3, 49, 209, 226, 228, 91,\n\t\t84, 219, 199, 113, 65, 159, 204, 137, 250, 206, 14, 194, 172,\n\t\t241, 241, 204, 14, 222, 235, 105, 139, 50, 123, 98, 235, 243,\n\t\t215, 234, 124, 22, 200, 221, 79, 89, 220, 224, 227, 180, 179,\n\t\t213, 99, 135, 211, 169, 170, 183, 5, 142, 209, 38, 23, 47,\n\t\t215, 77, 67, 31, 36, 18, 224, 27, 50, 90, 230, 6, 12, 210,\n\t\t134, 255, 184, 101, 241, 39, 117, 179, 205, 45, 50, 238, 217,\n\t\t187, 183, 7, 203, 155, 125, 149, 108, 207, 240, 70, 120, 2,\n\t\t27, 216, 147, 96, 87, 225, 112, 10, 201, 117, 224, 187, 212,\n\t\t200, 141, 239, 161, 151, 4, 43, 163, 58, 197, 143, 174, 7,\n\t\t49, 244, 117, 70, 136, 163, 25, 80, 214, 75, 208, 75, 103,\n\t\t181, 232, 196, 58, 10, 27, 112, 8, 163, 78, 84, 218, 140,\n\t\t67, 176, 54, 25, 178, 99, 160, 82, 53, 11, 227, 122, 208,\n\t\t127, 170, 106, 77, 72, 26, 249, 185, 188, 110, 93, 60, 117,\n\t\t93, 184, 133, 218, 244, 38, 234, 210, 25, 177, 110, 190, 187,\n\t\t185, 6, 117, 35, 204, 177, 173, 97, 14, 108, 156, 243, 224,\n\t\t85, 112, 196, 211, 205, 181, 57, 204, 245, 6, 79, 189, 50,\n\t\t119, 64, 251, 250, 36, 197, 252, 193, 217, 13, 140, 34, 108,\n\t\t226, 219, 45, 60, 195, 91, 105, 84, 142, 196, 186, 127, 179,\n\t\t182, 212, 32, 89, 107, 190, 26, 178, 225, 59, 116, 174, 56,\n\t\t184, 149, 159, 182, 206, 95, 89, 200, 167, 93, 103, 115, 190,\n\t\t132, 77, 163, 234, 177, 36, 198, 198, 103, 219, 250, 44, 185,\n\t\t189, 93, 93, 123, 187, 74, 113, 59, 192, 105, 134, 198, 5,\n\t\t134, 186, 104, 193, 97, 187, 86, 176, 178, 141, 195, 242,\n\t\t115, 110, 69, 191, 161, 10, 2, 125, 44, 8, 170, 225, 239,\n\t\t101, 205, 29, 245, 219, 13, 229, 79, 85, 29, 151, 245, 125,\n\t\t31, 67, 185, 13, 186, 108, 45, 16, 199, 141, 178, 183, 178,\n\t\t206, 190, 84, 51, 85, 175, 252, 80, 65, 90, 220, 56, 213,\n\t\t55, 170, 178, 143, 237, 90, 124, 118, 113, 151, 102, 104,\n\t\t61, 231, 122, 52, 67, 251, 148, 142, 101, 213, 149, 144, 193,\n\t\t102, 175, 145, 228, 103, 55, 204, 249, 131, 236, 216, 30,\n\t\t23, 193, 171, 123, 134, 169, 230, 49, 188, 103, 142, 130,\n\t\t255, 159, 155, 154, 254, 51, 189, 103, 221, 41, 95, 150, 84,\n\t\t67, 9, 5, 186, 234, 23, 17, 2, 135, 92, 199, 51, 110, 232,\n\t\t195, 8, 74, 161, 204, 86, 43, 32, 165, 218, 74, 2, 147, 247,\n\t\t85, 71, 96, 149, 125, 8, 243, 5, 177, 158, 171, 239, 171,\n\t\t151, 246, 166, 8, 39, 73, 65, 28, 74, 41, 154, 182, 159, 113,\n\t\t142, 115, 2, 229, 163, 24, 183, 55, 197, 155, 54, 4, 119,\n\t\t103, 36, 3, 99, 142, 180, 106, 134, 54, 196, 152, 204, 57,\n\t\t138, 114, 88, 146, 118, 6, 253, 161, 144, 63, 184, 89, 6,\n\t\t110, 237, 103, 219, 112, 110, 104, 154, 224, 13, 174, 182,\n\t\t134, 238, 72, 111, 240, 46, 195, 198, 243, 68, 63, 180, 217,\n\t\t132, 242, 166, 150, 235, 125, 108, 212, 220, 106, 68, 166,\n\t\t185, 225, 164, 209, 119, 109, 180, 146, 172, 100, 163, 207,\n\t\t109, 235, 249, 38, 125, 157, 145, 235, 92, 171, 190, 242,\n\t\t122, 248, 255, 144, 173, 76, 248, 234, 124, 228, 141, 160,\n\t\t245, 179, 190, 127, 67, 243, 214, 126, 215, 170, 92, 222,\n\t\t181, 197, 56, 174, 183, 83, 176, 81, 39, 154, 235, 92, 245,\n\t\t25, 216, 64, 205, 131, 222, 117, 155, 228, 221, 235, 38, 201,\n\t\t48, 119, 244, 160, 8, 10, 73, 204, 37, 4, 73, 220, 232, 185,\n\t\t255, 114, 189, 229, 145, 171, 51, 60, 250, 110, 42, 166, 153,\n\t\t35, 159, 19, 20, 156, 70, 8, 133, 225, 182, 218, 255, 115,\n\t\t216, 140, 138, 110, 26, 80, 11, 122, 187, 155, 230, 16, 65,\n\t\t127, 236, 166, 121, 20, 3, 112, 211, 2, 106, 129, 59, 221,\n\t\t180, 136, 146, 240, 167, 110, 26, 163, 16, 215, 226, 166,\n\t\t21, 180, 131, 123, 183, 155, 246, 32, 155, 251, 159, 110,\n\t\t218, 135, 130, 124, 183, 155, 246, 35, 194, 159, 114, 211,\n\t\t1, 212, 194, 255, 158, 155, 54, 81, 144, 255, 142, 155, 182,\n\t\t16, 225, 255, 21, 241, 8, 4, 58, 11, 230, 25, 36, 52, 13,\n\t\t168, 136, 94, 227, 166, 57, 164, 161, 143, 184, 105, 30, 29,\n\t\t64, 95, 112, 211, 2, 42, 66, 194, 77, 139, 232, 38, 184, 224,\n\t\t166, 49, 234, 131, 127, 112, 211, 10, 186, 157, 203, 187,\n\t\t105, 15, 202, 112, 159, 115, 211, 62, 148, 226, 121, 55, 237,\n\t\t71, 26, 191, 207, 77, 7, 80, 145, 127, 173, 155, 54, 81, 138,\n\t\t255, 184, 155, 182, 144, 198, 255, 223, 232, 32, 154, 65,\n\t\t179, 232, 33, 52, 135, 38, 209, 56, 154, 64, 11, 40, 138,\n\t\t58, 208, 89, 212, 137, 162, 232, 48, 154, 65, 211, 172, 100,\n\t\t63, 186, 128, 202, 104, 30, 205, 160, 243, 212, 234, 59, 56,\n\t\t51, 251, 208, 220, 228, 248, 196, 66, 180, 227, 108, 103,\n\t\t244, 240, 204, 244, 66, 116, 255, 133, 242, 252, 204, 249,\n\t\t50, 218, 246, 165, 40, 42, 176, 38, 231, 80, 153, 229, 110,\n\t\t70, 101, 52, 142, 22, 209, 20, 26, 69, 115, 8, 213, 55, 18,\n\t\t45, 68, 15, 207, 149, 203, 209, 155, 203, 227, 139, 83, 163,\n\t\t115, 104, 99, 221, 90, 249, 127, 236, 91, 212, 32, 203, 160,\n\t\t93, 40, 131, 118, 94, 247, 187, 61, 133, 204, 174, 204, 206,\n\t\t255, 232, 87, 174, 143, 81, 14, 101, 209, 110, 148, 65, 37,\n\t\t118, 167, 36, 223, 254, 43, 15, 160, 50, 154, 67, 243, 104,\n\t\t146, 213, 216, 195, 190, 91, 133, 191, 19, 161, 92, 118, 119,\n\t\t166, 148, 221, 29, 237, 104, 248, 224, 3, 229, 185, 249, 201,\n\t\t153, 233, 61, 81, 134, 68, 231, 58, 22, 141, 173, 23, 106,\n\t\t240, 247, 108, 5, 191, 219, 90, 129, 2, 223, 83, 3, 254, 52,\n\t\t154, 96, 128, 209, 134, 206, 160, 52, 154, 71, 81, 116, 30,\n\t\t205, 160, 121, 6, 254, 44, 227, 168, 106, 51, 81, 52, 201,\n\t\t78, 15, 158, 70, 81, 52, 143, 202, 172, 198, 40, 154, 70,\n\t\t99, 40, 138, 22, 208, 12, 154, 65, 83, 232, 126, 52, 137,\n\t\t22, 80, 6, 161, 211, 19, 229, 232, 133, 242, 153, 244, 124,\n\t\t244, 252, 204, 252, 66, 116, 118, 102, 150, 126, 48, 58, 121,\n\t\t118, 102, 58, 58, 95, 94, 136, 142, 78, 143, 69, 23, 102,\n\t\t102, 166, 238, 159, 92, 200, 32, 198, 172, 11, 104, 22, 205,\n\t\t163, 61, 168, 23, 245, 162, 115, 46, 134, 163, 13, 24, 102,\n\t\t216, 231, 207, 35, 52, 177, 176, 48, 59, 191, 167, 183, 247,\n\t\t220, 204, 244, 194, 168, 131, 87, 230, 236, 204, 249, 87,\n\t\t219, 191, 91, 245, 231, 255, 219, 156, 121, 125, 158, 121,\n\t\t117, 109, 254, 251, 224, 92, 255, 159, 100, 215, 190, 132,\n\t\t154, 208, 86, 255, 158, 97, 50, 150, 3, 14, 120, 16, 64, 4,\n\t\t12, 4, 36, 144, 65, 1, 15, 168, 224, 5, 13, 116, 240, 129,\n\t\t31, 2, 16, 4, 3, 76, 176, 192, 134, 16, 52, 65, 51, 180, 64,\n\t\t24, 90, 33, 2, 109, 16, 133, 24, 196, 33, 1, 237, 144, 132,\n\t\t20, 164, 161, 3, 58, 161, 11, 186, 97, 7, 244, 64, 6, 122,\n\t\t161, 15, 118, 66, 22, 114, 144, 135, 2, 20, 161, 4, 187, 96,\n\t\t55, 236, 129, 126, 216, 11, 3, 48, 8, 251, 96, 8, 246, 195,\n\t\t1, 56, 8, 135, 224, 6, 56, 12, 71, 224, 40, 220, 8, 55, 161,\n\t\t119, 194, 49, 56, 14, 39, 224, 36, 156, 130, 97, 120, 13,\n\t\t220, 12, 183, 192, 105, 184, 21, 110, 131, 215, 162, 119,\n\t\t192, 237, 240, 58, 184, 3, 238, 132, 187, 224, 110, 184, 7,\n\t\t238, 133, 17, 24, 133, 51, 112, 22, 198, 160, 12, 231, 96,\n\t\t28, 38, 96, 18, 238, 131, 251, 97, 10, 206, 195, 52, 204,\n\t\t192, 44, 188, 30, 230, 96, 30, 22, 96, 17, 30, 128, 11, 240,\n\t\t32, 60, 4, 15, 195, 27, 224, 17, 120, 35, 188, 9, 222, 12,\n\t\t75, 240, 59, 240, 22, 120, 43, 92, 132, 183, 193, 163, 240,\n\t\t187, 240, 24, 188, 29, 222, 1, 239, 132, 199, 225, 93, 240,\n\t\t110, 248, 61, 184, 4, 79, 192, 147, 240, 30, 120, 10, 254,\n\t\t19, 60, 45, 78, 148, 71, 231, 22, 132, 249, 133, 209, 57,\n\t\t97, 113, 190, 60, 39, 158, 157, 154, 57, 123, 191, 52, 53,\n\t\t57, 191, 208, 51, 58, 181, 32, 156, 155, 26, 29, 151, 206,\n\t\t204, 204, 220, 127, 126, 116, 238, 126, 113, 242, 252, 232,\n\t\t120, 89, 40, 143, 77, 46, 168, 11, 147, 231, 203, 243, 61,\n\t\t103, 39, 231, 206, 78, 149, 213, 179, 19, 229, 179, 247, 187,\n\t\t25, 253, 245, 139, 229, 249, 133, 201, 153, 105, 55, 207,\n\t\t151, 31, 42, 203, 229, 135, 202, 61, 243, 83, 163, 243, 19,\n\t\t234, 217, 209, 169, 242, 244, 216, 232, 28, 109, 157, 156,\n\t\t157, 57, 127, 190, 60, 189, 128, 207, 205, 76, 141, 149, 231,\n\t\t60, 206, 173, 103, 102, 182, 60, 45, 159, 157, 24, 157, 91,\n\t\t232, 57, 51, 58, 39, 185, 149, 230, 101, 10, 100, 207, 196,\n\t\t232, 212, 57, 113, 170, 124, 126, 102, 218, 115, 118, 142,\n\t\t66, 210, 115, 118, 116, 110, 140, 159, 24, 27, 243, 77, 140,\n\t\t78, 143, 245, 204, 206, 76, 78, 47, 244, 48, 161, 175, 215,\n\t\t21, 76, 149, 207, 45, 120, 235, 242, 139, 179, 245, 79, 199,\n\t\t102, 46, 76, 11, 103, 103, 102, 31, 18, 230, 71, 31, 40, 227,\n\t\t249, 215, 47, 142, 206, 149, 165, 242, 244, 3, 229, 169, 153,\n\t\t217, 178, 60, 69, 91, 59, 179, 56, 117, 70, 56, 83, 158, 154,\n\t\t146, 38, 102, 230, 103, 39, 23, 70, 167, 60, 179, 83, 139,\n\t\t243, 61, 78, 101, 236, 32, 43, 206, 159, 159, 156, 42, 139,\n\t\t231, 230, 102, 46, 76, 243, 231, 203, 19, 210, 253, 229, 135,\n\t\t206, 204, 140, 206, 141, 73, 85, 188, 61, 179, 83, 163, 15,\n\t\t85, 233, 118, 126, 114, 186, 214, 130, 75, 68, 55, 51, 63,\n\t\t49, 58, 87, 118, 51, 148, 76, 179, 163, 243, 243, 254, 179,\n\t\t163, 115, 229, 5, 183, 144, 193, 172, 55, 148, 44, 206, 6,\n\t\t26, 242, 140, 8, 194, 185, 201, 169, 178, 68, 47, 148, 226,\n\t\t242, 194, 196, 226, 249, 51, 243, 61, 139, 179, 30, 55, 69,\n\t\t155, 225, 231, 23, 167, 133, 243, 51, 51, 211, 141, 95, 160,\n\t\t52, 83, 198, 102, 22, 92, 104, 165, 51, 139, 147, 83, 99,\n\t\t147, 211, 227, 78, 107, 179, 99, 231, 100, 150, 184, 48, 51,\n\t\t55, 166, 176, 84, 249, 193, 179, 229, 41, 221, 121, 58, 115,\n\t\t161, 60, 199, 136, 235, 60, 98, 156, 163, 58, 96, 204, 157,\n\t\t157, 152, 124, 160, 236, 148, 143, 46, 142, 77, 206, 56, 201,\n\t\t7, 38, 199, 202, 51, 78, 147, 103, 103, 198, 40, 213, 207,\n\t\t81, 28, 166, 199, 61, 179, 163, 179, 229, 185, 158, 217, 169,\n\t\t209, 233, 50, 62, 183, 184, 112, 102, 102, 74, 158, 46, 95,\n\t\t152, 103, 197, 10, 237, 18, 135, 183, 252, 103, 167, 102,\n\t\t230, 203, 99, 61, 103, 71, 103, 41, 255, 77, 78, 143, 171,\n\t\t51, 103, 238, 43, 159, 93, 232, 25, 159, 155, 89, 156, 213,\n\t\t220, 204, 226, 52, 203, 122, 230, 23, 38, 207, 222, 255, 80,\n\t\t207, 244, 204, 66, 153, 114, 253, 116, 89, 158, 152, 89, 156,\n\t\t27, 159, 26, 157, 159, 151, 25, 111, 204, 205, 156, 189, 95,\n\t\t113, 184, 132, 126, 201, 97, 159, 249, 179, 147, 243, 243,\n\t\t51, 115, 243, 30, 150, 155, 154, 124, 120, 116, 110, 204,\n\t\t169, 52, 63, 59, 115, 246, 126, 117, 157, 171, 202, 115, 238,\n\t\t203, 229, 209, 179, 101, 111, 141, 239, 41, 211, 104, 181,\n\t\t28, 227, 128, 245, 44, 27, 85, 235, 89, 198, 18, 252, 249,\n\t\t209, 89, 143, 59, 8, 104, 31, 170, 179, 163, 139, 243, 101,\n\t\t183, 83, 60, 243, 11, 51, 179, 110, 154, 65, 61, 63, 49, 122,\n\t\t127, 217, 91, 101, 93, 54, 150, 212, 209, 177, 177, 185, 242,\n\t\t252, 124, 15, 29, 199, 181, 12, 29, 54, 30, 58, 228, 171,\n\t\t221, 59, 57, 214, 115, 102, 116, 108, 188, 76, 38, 199, 216,\n\t\t67, 253, 194, 228, 244, 216, 204, 133, 158, 243, 163, 15,\n\t\t78, 158, 159, 124, 184, 92, 203, 79, 78, 179, 188, 230, 230,\n\t\t231, 202, 243, 11, 51, 115, 101, 121, 126, 122, 230, 194,\n\t\t185, 169, 209, 251, 203, 242, 194, 220, 232, 252, 4, 5, 21,\n\t\t179, 110, 159, 151, 207, 78, 77, 206, 178, 97, 96, 142, 206,\n\t\t205, 205, 92, 160, 143, 220, 175, 50, 254, 219, 92, 74, 89,\n\t\t207, 218, 84, 202, 24, 58, 184, 169, 120, 113, 150, 31, 47,\n\t\t159, 215, 206, 207, 76, 151, 31, 234, 57, 51, 57, 53, 197,\n\t\t168, 228, 66, 199, 120, 66, 173, 146, 111, 108, 102, 97, 94,\n\t\t97, 99, 180, 231, 194, 228, 244, 253, 226, 232, 244, 248,\n\t\t220, 67, 226, 216, 228, 195, 15, 63, 68, 206, 77, 45, 206,\n\t\t79, 148, 199, 20, 54, 120, 25, 225, 200, 248, 220, 228, 249,\n\t\t209, 179, 101, 97, 124, 110, 114, 90, 162, 23, 54, 134, 88,\n\t\t226, 76, 121, 244, 188, 94, 75, 245, 204, 95, 40, 143, 46,\n\t\t120, 88, 158, 73, 212, 121, 39, 61, 255, 250, 197, 201, 233,\n\t\t5, 127, 93, 186, 103, 161, 60, 58, 55, 175, 56, 37, 11, 181,\n\t\t36, 43, 117, 222, 89, 152, 153, 30, 95, 44, 7, 234, 210, 238,\n\t\t171, 190, 250, 34, 10, 190, 3, 9, 77, 9, 247, 79, 206, 207,\n\t\t203, 244, 226, 0, 198, 82, 244, 129, 3, 141, 56, 53, 186,\n\t\t56, 62, 161, 176, 43, 171, 160, 58, 73, 167, 93, 183, 156,\n\t\t181, 120, 190, 60, 209, 115, 102, 106, 116, 250, 126, 31,\n\t\t77, 205, 205, 76, 77, 77, 78, 143, 247, 148, 31, 42, 207,\n\t\t147, 249, 209, 177, 158, 179, 115, 15, 73, 244, 78, 193, 117,\n\t\t233, 72, 155, 147, 230, 23, 231, 102, 231, 38, 231, 203, 226,\n\t\t194, 228, 92, 121, 140, 206, 198, 176, 182, 134, 56, 102,\n\t\t105, 168, 204, 214, 96, 199, 61, 33, 30, 253, 62, 226, 144,\n\t\t80, 247, 255, 194, 51, 91, 228, 251, 35, 157, 83, 236, 254,\n\t\t217, 203, 251, 221, 251, 161, 255, 39, 0, 0, 255, 255, 80,\n\t\t75, 7, 8, 32, 129, 29, 216, 85, 66, 0, 0, 44, 133, 0, 0, 80,\n\t\t75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 9, 0, 119, 101, 98, 102, 111,\n\t\t110, 116, 115, 47, 102, 97, 45, 114, 101, 103, 117, 108, 97,\n\t\t114, 45, 52, 48, 48, 46, 119, 111, 102, 102, 85, 84, 5, 0,\n\t\t1, 127, 106, 41, 96, 108, 155, 67, 140, 46, 208, 214, 109,\n\t\t191, 178, 109, 219, 182, 109, 219, 182, 205, 83, 182, 117,\n\t\t138, 167, 108, 219, 182, 109, 219, 182, 253, 114, 239, 67,\n\t\t94, 227, 223, 201, 204, 206, 74, 214, 232, 172, 204, 238,\n\t\t240, 80, 16, 23, 7, 0, 1, 0, 0, 128, 80, 17, 0, 238, 63, 127,\n\t\t40, 45, 144, 84, 71, 46, 224, 127, 120, 226, 226, 170, 114,\n\t\t0, 0, 16, 35, 0, 0, 192, 6, 0, 0, 184, 145, 139, 145, 15,\n\t\t18, 162, 98, 226, 0, 0, 144, 44, 0, 0, 192, 255, 111, 168,\n\t\t1, 121, 10, 42, 12, 204, 0, 0, 144, 45, 0, 0, 80, 0, 0, 0,\n\t\t134, 66, 73, 135, 56, 38, 118, 70, 142, 0, 0, 80, 23, 0, 0,\n\t\t180, 5, 0, 128, 108, 140, 230, 141, 61, 89, 24, 185, 56, 2,\n\t\t0, 32, 255, 0, 0, 0, 228, 127, 242, 251, 11, 0, 177, 176,\n\t\t253, 99, 14, 0, 128, 228, 1, 0, 108, 226, 0, 128, 253, 144,\n\t\t45, 14, 24, 158, 165, 153, 145, 41, 0, 192, 121, 6, 0, 0,\n\t\t88, 0, 0, 0, 59, 170, 188, 78, 161, 165, 165, 153, 17, 0,\n\t\t192, 133, 11, 0, 0, 8, 0, 0, 0, 41, 40, 27, 240, 188, 165,\n\t\t157, 171, 39, 0, 192, 197, 11, 0, 0, 106, 0, 0, 96, 85, 228,\n\t\t58, 128, 171, 173, 131, 201, 127, 246, 174, 0, 0, 32, 246,\n\t\t255, 228, 76, 108, 50, 194, 206, 200, 211, 17, 0, 224, 33,\n\t\t253, 63, 44, 33, 224, 2, 80, 107, 111, 100, 103, 6, 0, 240,\n\t\t136, 2, 0, 192, 72, 0, 0, 152, 26, 37, 43, 215, 160, 163,\n\t\t131, 139, 43, 0, 192, 167, 9, 0, 128, 74, 1, 0, 16, 149, 95,\n\t\t10, 66, 157, 158, 89, 38, 134, 134, 134, 166, 128, 32, 28,\n\t\t168, 12, 46, 67, 175, 83, 112, 9, 202, 107, 96, 128, 104,\n\t\t13, 248, 10, 0, 240, 223, 59, 194, 2, 0, 0, 116, 0, 0, 0,\n\t\t12, 0, 2, 128, 0, 210, 1, 192, 0, 208, 255, 78, 0, 0, 224,\n\t\t63, 172, 145, 207, 36, 103, 96, 96, 74, 96, 224, 124, 56,\n\t\t83, 108, 96, 96, 63, 158, 180, 191, 89, 130, 169, 165, 145,\n\t\t161, 161, 177, 161, 153, 121, 0, 144, 56, 16, 56, 40, 164,\n\t\t164, 139, 156, 145, 229, 91, 223, 195, 51, 232, 97, 224, 47,\n\t\t4, 230, 19, 230, 44, 99, 8, 43, 96, 57, 0, 77, 155, 137, 30,\n\t\t76, 25, 26, 54, 6, 16, 30, 1, 63, 10, 240, 204, 90, 94, 152,\n\t\t150, 73, 118, 66, 132, 184, 219, 229, 183, 135, 158, 109,\n\t\t100, 49, 65, 236, 222, 167, 226, 149, 84, 68, 212, 227, 118,\n\t\t99, 60, 135, 139, 57, 219, 110, 233, 19, 57, 47, 103, 164,\n\t\t30, 154, 30, 203, 11, 57, 3, 139, 141, 138, 160, 5, 193, 48,\n\t\t154, 164, 183, 194, 220, 23, 34, 82, 165, 158, 211, 39, 165,\n\t\t165, 244, 41, 140, 113, 52, 207, 249, 150, 194, 223, 184,\n\t\t22, 178, 25, 255, 6, 137, 2, 55, 15, 99, 152, 218, 119, 193,\n\t\t52, 145, 141, 75, 191, 4, 70, 129, 46, 113, 218, 1, 165, 98,\n\t\t205, 28, 148, 183, 168, 67, 41, 153, 57, 202, 72, 233, 10,\n\t\t120, 244, 132, 170, 221, 19, 214, 159, 190, 108, 15, 153,\n\t\t124, 163, 212, 184, 119, 226, 31, 111, 214, 29, 125, 246,\n\t\t9, 172, 117, 66, 225, 112, 161, 17, 56, 228, 255, 25, 50,\n\t\t88, 63, 189, 205, 74, 12, 109, 208, 133, 54, 173, 78, 30,\n\t\t19, 95, 167, 222, 52, 13, 199, 77, 24, 84, 102, 208, 40, 150,\n\t\t251, 56, 46, 238, 74, 82, 74, 79, 182, 74, 87, 210, 104, 181,\n\t\t44, 23, 127, 206, 203, 153, 251, 167, 191, 52, 249, 161, 153,\n\t\t123, 166, 114, 189, 128, 239, 91, 76, 240, 148, 121, 251,\n\t\t38, 230, 183, 20, 255, 25, 60, 254, 101, 170, 227, 188, 118,\n\t\t83, 159, 194, 110, 206, 176, 190, 201, 110, 191, 105, 87,\n\t\t122, 93, 239, 123, 222, 196, 132, 59, 211, 112, 51, 173, 169,\n\t\t48, 221, 216, 2, 186, 178, 243, 103, 165, 216, 95, 83, 198,\n\t\t172, 83, 244, 56, 33, 43, 109, 164, 111, 35, 219, 108, 27,\n\t\t85, 211, 3, 108, 197, 68, 155, 197, 230, 250, 205, 236, 122,\n\t\t37, 48, 198, 205, 32, 181, 121, 36, 167, 158, 195, 54, 218,\n\t\t247, 105, 83, 218, 74, 122, 30, 53, 118, 17, 179, 187, 20,\n\t\t99, 73, 6, 207, 53, 62, 227, 28, 158, 109, 94, 174, 67, 30,\n\t\t206, 53, 116, 70, 137, 110, 184, 44, 227, 69, 5, 11, 109,\n\t\t145, 91, 91, 164, 178, 44, 2, 93, 133, 31, 105, 102, 15, 227,\n\t\t43, 230, 144, 51, 138, 132, 51, 166, 182, 30, 15, 101, 45,\n\t\t160, 148, 41, 76, 77, 51, 240, 184, 13, 199, 227, 0, 124,\n\t\t106, 144, 177, 104, 15, 66, 118, 0, 20, 182, 95, 199, 19,\n\t\t18, 97, 143, 159, 52, 15, 205, 94, 136, 36, 43, 148, 164,\n\t\t14, 43, 85, 12, 156, 248, 94, 178, 248, 117, 171, 243, 18,\n\t\t205, 43, 186, 11, 151, 227, 90, 190, 83, 229, 38, 226, 115,\n\t\t30, 207, 25, 226, 212, 239, 208, 191, 92, 177, 102, 60, 64,\n\t\t68, 158, 49, 235, 42, 184, 23, 246, 3, 226, 25, 229, 211,\n\t\t143, 69, 229, 63, 109, 250, 253, 5, 0, 123, 102, 21, 251,\n\t\t66, 37, 147, 74, 184, 25, 138, 227, 35, 253, 81, 83, 55, 83,\n\t\t83, 55, 119, 115, 115, 115, 219, 94, 246, 208, 88, 93, 103,\n\t\t241, 149, 157, 45, 255, 123, 98, 109, 165, 61, 120, 102, 47,\n\t\t21, 44, 14, 9, 5, 78, 20, 168, 14, 185, 20, 38, 148, 42, 180,\n\t\t247, 247, 95, 74, 104, 76, 26, 184, 109, 142, 122, 234, 181,\n\t\t86, 32, 19, 100, 29, 132, 109, 112, 12, 208, 100, 64, 183,\n\t\t31, 239, 74, 78, 120, 252, 232, 71, 189, 38, 120, 23, 58,\n\t\t173, 234, 109, 252, 88, 85, 69, 213, 197, 5, 190, 81, 124,\n\t\t5, 11, 11, 49, 9, 201, 239, 239, 253, 161, 193, 61, 201, 240,\n\t\t61, 142, 192, 246, 27, 15, 126, 225, 238, 193, 128, 110, 220,\n\t\t161, 34, 242, 62, 225, 64, 186, 21, 107, 232, 69, 108, 199,\n\t\t53, 45, 113, 169, 62, 29, 122, 94, 3, 103, 40, 100, 75, 216,\n\t\t223, 109, 65, 131, 241, 225, 171, 254, 93, 24, 185, 16, 63,\n\t\t135, 185, 184, 227, 145, 91, 2, 156, 206, 93, 236, 9, 178,\n\t\t120, 178, 134, 245, 161, 122, 83, 251, 179, 32, 194, 188,\n\t\t230, 125, 155, 120, 242, 28, 132, 208, 28, 5, 92, 29, 172,\n\t\t25, 42, 19, 147, 137, 226, 35, 27, 102, 38, 222, 228, 105,\n\t\t248, 125, 205, 19, 182, 241, 83, 177, 191, 135, 156, 57, 48,\n\t\t246, 93, 125, 179, 121, 12, 142, 76, 244, 131, 59, 4, 162,\n\t\t113, 177, 165, 251, 122, 161, 122, 101, 154, 101, 183, 7,\n\t\t151, 199, 70, 61, 76, 114, 151, 82, 131, 251, 34, 169, 246,\n\t\t91, 108, 132, 69, 83, 30, 221, 147, 178, 80, 32, 30, 88, 29,\n\t\t207, 67, 246, 102, 162, 235, 114, 242, 221, 30, 78, 247, 221,\n\t\t165, 89, 225, 248, 194, 232, 6, 140, 242, 2, 72, 78, 201,\n\t\t190, 159, 75, 154, 71, 145, 139, 226, 129, 173, 179, 97, 131,\n\t\t22, 2, 94, 153, 207, 113, 30, 154, 173, 221, 30, 179, 248,\n\t\t240, 59, 221, 78, 72, 253, 254, 186, 160, 59, 60, 35, 41,\n\t\t92, 244, 6, 45, 225, 9, 161, 141, 231, 178, 70, 64, 106, 151,\n\t\t41, 13, 122, 53, 60, 205, 214, 68, 153, 253, 235, 176, 124,\n\t\t240, 249, 94, 37, 138, 213, 105, 118, 149, 9, 253, 232, 91,\n\t\t213, 5, 217, 177, 38, 80, 149, 237, 246, 100, 113, 108, 192,\n\t\t41, 214, 207, 45, 210, 234, 107, 127, 101, 111, 16, 27, 82,\n\t\t110, 5, 234, 26, 30, 250, 38, 178, 39, 27, 27, 39, 27, 79,\n\t\t227, 216, 14, 212, 137, 141, 134, 113, 70, 133, 243, 159,\n\t\t61, 91, 144, 161, 213, 26, 238, 97, 104, 154, 198, 195, 205,\n\t\t173, 80, 228, 247, 142, 98, 49, 230, 105, 206, 22, 113, 247,\n\t\t131, 182, 24, 71, 67, 247, 217, 48, 245, 49, 194, 86, 231,\n\t\t86, 165, 196, 160, 151, 113, 169, 17, 128, 124, 13, 35, 248,\n\t\t223, 158, 71, 9, 126, 63, 14, 123, 159, 239, 63, 111, 127,\n\t\t223, 190, 33, 13, 104, 206, 169, 124, 107, 133, 7, 64, 125,\n\t\t63, 156, 188, 74, 223, 211, 94, 23, 117, 2, 197, 144, 126,\n\t\t75, 106, 122, 123, 69, 151, 218, 160, 143, 78, 76, 251, 62,\n\t\t145, 103, 243, 221, 60, 39, 9, 53, 142, 168, 183, 232, 111,\n\t\t160, 111, 48, 95, 177, 243, 124, 215, 227, 50, 232, 127, 216,\n\t\t80, 238, 36, 204, 56, 133, 160, 168, 105, 222, 203, 216, 226,\n\t\t152, 233, 1, 205, 116, 53, 76, 193, 173, 55, 253, 219, 92,\n\t\t133, 105, 148, 55, 211, 106, 94, 162, 10, 38, 91, 93, 56,\n\t\t38, 174, 105, 63, 5, 59, 143, 159, 90, 172, 88, 215, 63, 249,\n\t\t110, 105, 109, 119, 184, 188, 219, 188, 193, 243, 208, 188,\n\t\t63, 184, 61, 76, 37, 151, 76, 190, 195, 30, 170, 107, 40,\n\t\t175, 159, 113, 49, 173, 134, 49, 64, 171, 12, 206, 36, 91,\n\t\t180, 195, 8, 152, 216, 226, 255, 218, 6, 165, 10, 208, 193,\n\t\t215, 128, 86, 133, 171, 181, 61, 18, 199, 234, 11, 208, 243,\n\t\t7, 241, 203, 155, 181, 231, 148, 139, 99, 82, 41, 220, 71,\n\t\t71, 174, 67, 187, 223, 23, 95, 110, 244, 160, 161, 144, 200,\n\t\t82, 99, 50, 156, 114, 24, 226, 78, 20, 4, 218, 253, 233, 255,\n\t\t72, 56, 143, 154, 62, 51, 242, 229, 179, 64, 177, 33, 249,\n\t\t115, 217, 199, 20, 133, 197, 161, 136, 17, 157, 73, 145, 32,\n\t\t201, 17, 162, 178, 128, 9, 145, 247, 47, 129, 191, 58, 83,\n\t\t167, 124, 232, 211, 30, 247, 135, 175, 4, 64, 168, 237, 9,\n\t\t167, 253, 136, 13, 72, 222, 34, 245, 4, 166, 86, 15, 13, 71,\n\t\t7, 248, 67, 115, 244, 198, 207, 18, 181, 217, 166, 206, 100,\n\t\t229, 147, 218, 213, 228, 181, 2, 216, 118, 26, 133, 255, 164,\n\t\t187, 135, 173, 172, 253, 51, 111, 47, 191, 30, 109, 96, 99,\n\t\t150, 175, 86, 34, 16, 127, 98, 216, 112, 136, 112, 55, 197,\n\t\t165, 56, 28, 35, 105, 224, 125, 8, 160, 205, 21, 181, 153,\n\t\t219, 67, 182, 73, 8, 74, 51, 232, 99, 84, 163, 148, 173, 229,\n\t\t108, 218, 254, 165, 108, 222, 160, 115, 185, 217, 58, 240,\n\t\t24, 204, 146, 239, 155, 202, 56, 193, 102, 108, 213, 93, 240,\n\t\t0, 72, 167, 81, 161, 196, 147, 176, 232, 85, 178, 111, 141,\n\t\t199, 25, 22, 144, 108, 18, 15, 19, 90, 139, 70, 129, 253,\n\t\t187, 141, 229, 246, 34, 38, 171, 176, 35, 135, 148, 41, 248,\n\t\t119, 16, 74, 80, 176, 140, 192, 225, 239, 220, 157, 178, 167,\n\t\t38, 58, 165, 236, 185, 213, 229, 112, 10, 99, 250, 250, 139,\n\t\t147, 54, 126, 55, 99, 228, 204, 77, 22, 245, 118, 143, 190,\n\t\t90, 118, 39, 234, 242, 173, 191, 95, 57, 157, 91, 230, 51,\n\t\t208, 129, 159, 195, 56, 58, 157, 190, 48, 131, 225, 142, 82,\n\t\t20, 135, 242, 2, 185, 202, 242, 59, 194, 49, 219, 203, 107,\n\t\t180, 24, 7, 93, 98, 53, 36, 186, 72, 127, 244, 119, 246, 38,\n\t\t35, 90, 37, 58, 186, 225, 106, 108, 226, 160, 0, 152, 162,\n\t\t189, 114, 137, 143, 139, 224, 118, 117, 136, 102, 158, 104,\n\t\t91, 153, 252, 136, 247, 94, 68, 55, 66, 59, 129, 147, 30,\n\t\t247, 12, 17, 196, 84, 95, 41, 71, 229, 8, 7, 21, 172, 35,\n\t\t199, 187, 183, 202, 243, 182, 103, 57, 5, 38, 234, 107, 51,\n\t\t202, 25, 196, 123, 127, 224, 211, 20, 108, 100, 234, 183,\n\t\t70, 203, 190, 28, 1, 140, 54, 184, 212, 68, 146, 2, 110, 234,\n\t\t77, 172, 167, 158, 146, 241, 222, 178, 141, 213, 106, 110,\n\t\t125, 1, 25, 88, 143, 180, 124, 13, 42, 83, 82, 5, 249, 239,\n\t\t96, 5, 253, 100, 20, 35, 226, 146, 172, 30, 145, 180, 112,\n\t\t255, 123, 241, 64, 205, 54, 72, 122, 96, 160, 44, 135, 211,\n\t\t206, 97, 81, 76, 66, 12, 153, 48, 169, 88, 171, 48, 168, 204,\n\t\t93, 91, 81, 120, 68, 13, 21, 169, 244, 146, 215, 115, 227,\n\t\t83, 62, 144, 56, 197, 196, 175, 76, 223, 47, 185, 227, 47,\n\t\t235, 161, 31, 52, 184, 35, 250, 212, 142, 87, 181, 118, 149,\n\t\t76, 159, 6, 248, 132, 121, 137, 225, 86, 69, 172, 152, 165,\n\t\t224, 196, 243, 8, 234, 132, 97, 226, 145, 146, 181, 215, 235,\n\t\t77, 166, 123, 52, 208, 160, 84, 18, 97, 6, 106, 72, 125, 169,\n\t\t253, 63, 255, 195, 72, 208, 238, 183, 37, 21, 129, 142, 139,\n\t\t125, 159, 159, 253, 71, 132, 83, 19, 141, 237, 0, 233, 57,\n\t\t199, 87, 85, 74, 201, 133, 56, 164, 4, 123, 48, 173, 58, 159,\n\t\t203, 163, 122, 108, 158, 221, 15, 6, 137, 151, 27, 62, 103,\n\t\t211, 219, 161, 27, 90, 10, 59, 219, 62, 220, 55, 178, 18,\n\t\t3, 112, 195, 43, 234, 45, 160, 184, 164, 171, 50, 48, 146,\n\t\t212, 105, 84, 36, 0, 68, 161, 58, 21, 15, 114, 113, 198, 160,\n\t\t169, 114, 253, 95, 34, 49, 202, 32, 74, 96, 71, 38, 93, 144,\n\t\t16, 225, 246, 253, 186, 76, 128, 7, 30, 189, 20, 242, 61,\n\t\t130, 177, 18, 154, 25, 237, 207, 151, 214, 45, 176, 84, 6,\n\t\t127, 123, 102, 111, 28, 222, 44, 44, 188, 194, 106, 5, 253,\n\t\t215, 139, 35, 17, 254, 140, 128, 15, 90, 101, 199, 126, 121,\n\t\t189, 123, 44, 9, 144, 152, 155, 231, 67, 230, 206, 240, 231,\n\t\t187, 94, 210, 235, 192, 238, 159, 196, 232, 54, 200, 88, 243,\n\t\t196, 224, 243, 110, 137, 140, 180, 188, 147, 149, 99, 121,\n\t\t176, 69, 162, 154, 155, 37, 206, 112, 37, 31, 120, 215, 49,\n\t\t171, 155, 88, 220, 213, 49, 115, 109, 237, 9, 107, 87, 85,\n\t\t145, 165, 123, 189, 36, 186, 154, 111, 59, 108, 254, 125,\n\t\t182, 112, 107, 251, 248, 148, 149, 118, 91, 24, 115, 108,\n\t\t82, 173, 14, 31, 63, 209, 85, 137, 39, 53, 223, 203, 69, 177,\n\t\t218, 37, 100, 98, 50, 202, 170, 126, 131, 113, 233, 228, 140,\n\t\t75, 213, 194, 170, 78, 58, 215, 109, 158, 193, 91, 165, 221,\n\t\t230, 207, 79, 121, 9, 4, 53, 183, 110, 233, 95, 228, 105,\n\t\t138, 57, 205, 199, 90, 166, 81, 135, 47, 1, 133, 82, 241,\n\t\t182, 32, 14, 7, 195, 152, 243, 50, 54, 195, 212, 62, 69, 153,\n\t\t27, 212, 168, 160, 119, 208, 67, 237, 93, 48, 144, 175, 163,\n\t\t214, 28, 159, 135, 154, 243, 242, 109, 141, 80, 215, 20, 4,\n\t\t238, 162, 176, 54, 20, 4, 254, 183, 173, 96, 146, 84, 234,\n\t\t203, 113, 161, 73, 170, 60, 55, 74, 108, 21, 17, 108, 135,\n\t\t147, 193, 70, 8, 249, 175, 221, 204, 217, 29, 159, 199, 156,\n\t\t137, 127, 217, 117, 5, 21, 104, 132, 29, 52, 47, 58, 13, 2,\n\t\t192, 13, 185, 206, 61, 6, 83, 192, 237, 97, 74, 69, 169, 96,\n\t\t222, 244, 54, 31, 161, 95, 16, 192, 210, 135, 7, 105, 251,\n\t\t119, 152, 218, 210, 154, 118, 245, 53, 172, 25, 12, 6, 65,\n\t\t131, 100, 14, 242, 120, 33, 126, 133, 134, 4, 104, 255, 220,\n\t\t68, 181, 90, 183, 235, 85, 242, 107, 39, 36, 140, 86, 130,\n\t\t33, 9, 36, 134, 109, 193, 217, 22, 66, 16, 200, 144, 251,\n\t\t205, 76, 234, 254, 132, 189, 180, 247, 128, 170, 218, 208,\n\t\t223, 50, 131, 43, 193, 254, 222, 44, 144, 96, 102, 235, 216,\n\t\t247, 124, 142, 21, 167, 175, 101, 28, 246, 32, 237, 232, 119,\n\t\t92, 250, 239, 158, 199, 236, 23, 159, 20, 55, 179, 201, 63,\n\t\t156, 55, 24, 237, 85, 249, 110, 65, 119, 109, 54, 143, 157,\n\t\t240, 94, 241, 2, 45, 209, 91, 208, 240, 153, 89, 160, 160,\n\t\t9, 226, 176, 123, 97, 231, 191, 74, 53, 208, 174, 63, 221,\n\t\t173, 94, 87, 86, 110, 104, 244, 138, 164, 120, 52, 162, 70,\n\t\t48, 250, 246, 206, 213, 24, 164, 20, 251, 23, 88, 184, 191,\n\t\t41, 127, 222, 69, 120, 80, 214, 159, 252, 5, 104, 155, 207,\n\t\t26, 208, 142, 47, 0, 121, 193, 192, 103, 245, 189, 153, 10,\n\t\t220, 73, 165, 86, 186, 72, 0, 106, 73, 17, 90, 106, 70, 169,\n\t\t135, 131, 38, 153, 220, 38, 24, 101, 41, 73, 149, 150, 38,\n\t\t120, 84, 67, 222, 211, 75, 137, 2, 69, 105, 80, 133, 146,\n\t\t3, 182, 66, 51, 147, 211, 179, 6, 88, 15, 232, 144, 231, 19,\n\t\t42, 32, 60, 102, 41, 146, 100, 74, 77, 132, 76, 236, 21, 20,\n\t\t53, 10, 79, 134, 130, 41, 82, 111, 98, 240, 188, 236, 30,\n\t\t19, 208, 112, 214, 124, 39, 233, 110, 187, 200, 176, 96, 162,\n\t\t10, 240, 196, 16, 72, 211, 204, 231, 158, 216, 142, 211, 109,\n\t\t192, 141, 83, 177, 154, 197, 152, 218, 44, 97, 193, 19, 82,\n\t\t41, 19, 63, 64, 25, 80, 81, 50, 82, 240, 28, 174, 218, 219,\n\t\t249, 243, 117, 57, 118, 255, 33, 221, 231, 224, 188, 94, 165,\n\t\t79, 192, 15, 43, 135, 32, 154, 120, 81, 102, 102, 46, 154,\n\t\t250, 153, 254, 134, 168, 142, 20, 152, 11, 146, 253, 99, 195,\n\t\t45, 96, 231, 147, 102, 90, 31, 61, 46, 228, 151, 233, 65,\n\t\t46, 86, 231, 149, 126, 151, 243, 136, 198, 190, 238, 196,\n\t\t254, 68, 29, 245, 194, 165, 117, 35, 242, 98, 239, 138, 199,\n\t\t62, 39, 92, 229, 240, 107, 185, 231, 210, 23, 245, 7, 126,\n\t\t218, 152, 214, 131, 227, 163, 64, 146, 116, 218, 236, 3, 147,\n\t\t189, 67, 61, 35, 80, 213, 28, 98, 127, 163, 146, 239, 6, 112,\n\t\t64, 135, 89, 14, 194, 225, 92, 92, 63, 16, 7, 181, 107, 148,\n\t\t97, 228, 141, 228, 41, 200, 9, 97, 185, 146, 126, 68, 51,\n\t\t209, 17, 62, 52, 148, 161, 99, 188, 78, 207, 196, 29, 153,\n\t\t117, 246, 148, 151, 148, 200, 255, 51, 47, 230, 247, 55, 52,\n\t\t144, 238, 147, 12, 86, 118, 180, 45, 82, 206, 193, 153, 152,\n\t\t123, 224, 174, 165, 46, 172, 68, 134, 254, 103, 232, 183,\n\t\t181, 154, 48, 111, 49, 114, 209, 146, 69, 144, 158, 189, 221,\n\t\t170, 57, 39, 154, 142, 1, 178, 81, 146, 177, 26, 58, 170,\n\t\t6, 103, 68, 212, 124, 219, 231, 211, 109, 44, 44, 133, 196,\n\t\t36, 69, 193, 92, 101, 9, 158, 208, 196, 93, 81, 230, 35, 104,\n\t\t191, 37, 129, 104, 72, 205, 196, 227, 11, 229, 73, 6, 154,\n\t\t163, 20, 149, 233, 72, 167, 105, 8, 213, 171, 117, 106, 26,\n\t\t134, 56, 213, 83, 165, 165, 47, 120, 94, 166, 102, 245, 54,\n\t\t229, 52, 234, 49, 29, 14, 236, 14, 56, 241, 139, 146, 151,\n\t\t174, 235, 97, 8, 60, 79, 29, 184, 157, 71, 184, 184, 235,\n\t\t148, 28, 222, 46, 228, 214, 14, 103, 199, 163, 210, 24, 48,\n\t\t49, 193, 4, 61, 106, 156, 61, 80, 225, 23, 26, 107, 175, 251,\n\t\t243, 193, 14, 221, 97, 23, 49, 233, 146, 196, 56, 227, 119,\n\t\t106, 133, 161, 45, 186, 52, 4, 66, 151, 68, 47, 110, 125,\n\t\t110, 57, 195, 2, 163, 125, 2, 180, 171, 168, 235, 152, 188,\n\t\t106, 36, 33, 22, 118, 177, 119, 146, 75, 32, 54, 139, 239,\n\t\t171, 135, 242, 70, 142, 28, 47, 122, 32, 177, 118, 175, 227,\n\t\t117, 167, 65, 41, 217, 139, 188, 228, 47, 55, 239, 102, 118,\n\t\t55, 133, 69, 77, 17, 55, 231, 189, 19, 63, 65, 173, 240, 147,\n\t\t218, 110, 211, 158, 169, 123, 137, 17, 147, 226, 20, 18, 9,\n\t\t39, 162, 112, 60, 204, 249, 16, 13, 135, 168, 31, 155, 206,\n\t\t189, 198, 128, 182, 145, 200, 185, 36, 25, 64, 174, 198, 217,\n\t\t126, 2, 251, 133, 33, 247, 48, 215, 208, 22, 113, 134, 160,\n\t\t161, 151, 134, 240, 45, 111, 78, 190, 71, 58, 141, 27, 47,\n\t\t6, 179, 92, 82, 144, 126, 88, 145, 7, 154, 10, 252, 23, 18,\n\t\t23, 85, 40, 50, 35, 10, 115, 229, 48, 191, 158, 217, 127,\n\t\t32, 66, 60, 22, 1, 65, 62, 194, 90, 114, 161, 106, 41, 143,\n\t\t139, 29, 61, 146, 190, 172, 131, 24, 71, 242, 187, 220, 8,\n\t\t43, 44, 244, 130, 5, 139, 229, 28, 212, 149, 141, 133, 85,\n\t\t25, 235, 175, 220, 119, 174, 171, 74, 156, 24, 108, 86, 116,\n\t\t72, 169, 75, 199, 75, 106, 153, 145, 232, 120, 72, 10, 91,\n\t\t248, 113, 93, 54, 10, 195, 157, 186, 103, 96, 81, 80, 96,\n\t\t208, 7, 254, 70, 224, 254, 70, 36, 222, 151, 130, 35, 135,\n\t\t139, 110, 44, 241, 185, 52, 18, 181, 81, 22, 150, 55, 188,\n\t\t82, 83, 18, 221, 39, 92, 8, 27, 137, 68, 253, 28, 37, 106,\n\t\t249, 92, 125, 30, 88, 11, 222, 71, 176, 251, 179, 120, 108,\n\t\t84, 33, 21, 127, 102, 164, 182, 59, 170, 228, 64, 116, 206,\n\t\t56, 87, 18, 87, 127, 218, 168, 176, 19, 31, 45, 181, 185,\n\t\t106, 126, 27, 138, 220, 95, 221, 171, 229, 195, 244, 51, 85,\n\t\t56, 45, 226, 19, 151, 244, 116, 229, 165, 54, 160, 48, 117,\n\t\t117, 87, 55, 34, 108, 30, 91, 184, 18, 90, 57, 232, 242, 131,\n\t\t161, 189, 112, 41, 193, 254, 51, 171, 176, 190, 93, 11, 115,\n\t\t86, 62, 14, 188, 184, 163, 58, 164, 200, 113, 228, 121, 198,\n\t\t98, 32, 69, 19, 202, 194, 11, 22, 44, 146, 10, 116, 224, 126,\n\t\t84, 45, 202, 59, 140, 161, 44, 188, 212, 240, 233, 42, 54,\n\t\t33, 82, 182, 59, 80, 146, 252, 240, 94, 155, 120, 213, 173,\n\t\t251, 120, 198, 169, 121, 196, 6, 188, 139, 53, 165, 162, 125,\n\t\t108, 121, 122, 6, 0, 10, 107, 31, 101, 22, 16, 172, 152, 56,\n\t\t105, 169, 146, 219, 183, 247, 197, 179, 24, 157, 181, 127,\n\t\t191, 127, 138, 24, 40, 221, 56, 106, 129, 192, 230, 224, 111,\n\t\t77, 122, 140, 94, 147, 206, 33, 25, 132, 169, 67, 159, 228,\n\t\t86, 76, 217, 183, 68, 213, 28, 155, 225, 89, 206, 20, 236,\n\t\t211, 220, 164, 96, 84, 254, 27, 39, 101, 30, 120, 97, 32,\n\t\t63, 173, 41, 94, 220, 179, 35, 226, 106, 232, 47, 172, 71,\n\t\t86, 103, 224, 33, 110, 20, 137, 26, 121, 243, 69, 1, 0, 218,\n\t\t172, 164, 39, 224, 107, 2, 65, 215, 128, 93, 7, 138, 222,\n\t\t248, 2, 28, 99, 114, 14, 112, 68, 249, 45, 196, 98, 8, 197,\n\t\t13, 4, 139, 79, 42, 141, 101, 218, 98, 22, 142, 117, 19, 58,\n\t\t117, 186, 221, 175, 76, 98, 158, 53, 55, 239, 252, 254, 236,\n\t\t108, 130, 246, 77, 8, 226, 54, 126, 156, 45, 200, 90, 6, 190,\n\t\t49, 181, 152, 193, 89, 155, 225, 22, 83, 54, 202, 153, 197,\n\t\t16, 198, 2, 233, 119, 2, 111, 143, 48, 229, 115, 242, 18,\n\t\t87, 216, 226, 112, 155, 17, 111, 59, 3, 67, 72, 218, 152,\n\t\t204, 172, 197, 81, 52, 175, 23, 179, 84, 177, 55, 216, 151,\n\t\t116, 246, 135, 196, 136, 206, 91, 28, 41, 43, 183, 49, 230,\n\t\t147, 17, 114, 168, 146, 145, 13, 93, 161, 98, 68, 15, 211,\n\t\t63, 147, 225, 126, 207, 167, 103, 176, 46, 67, 0, 92, 105,\n\t\t220, 244, 4, 185, 147, 49, 35, 218, 19, 22, 127, 100, 186,\n\t\t246, 64, 237, 11, 77, 132, 79, 170, 22, 177, 244, 225, 110,\n\t\t44, 145, 98, 21, 232, 196, 237, 78, 173, 96, 207, 66, 189,\n\t\t207, 253, 37, 239, 229, 125, 4, 126, 92, 156, 6, 233, 162,\n\t\t81, 161, 85, 209, 170, 127, 253, 97, 199, 110, 150, 198, 100,\n\t\t207, 203, 88, 167, 53, 166, 208, 198, 6, 193, 248, 167, 44,\n\t\t95, 95, 49, 150, 41, 134, 128, 75, 179, 26, 191, 74, 191,\n\t\t95, 247, 79, 211, 89, 208, 229, 132, 7, 73, 227, 150, 15,\n\t\t22, 201, 223, 211, 248, 28, 101, 56, 145, 238, 36, 112, 117,\n\t\t253, 170, 133, 151, 240, 116, 153, 219, 17, 10, 93, 205, 224,\n\t\t28, 187, 118, 51, 89, 160, 108, 147, 150, 98, 152, 145, 103,\n\t\t90, 201, 224, 214, 168, 29, 207, 150, 98, 155, 195, 98, 203,\n\t\t163, 234, 86, 11, 42, 188, 102, 60, 154, 113, 141, 137, 104,\n\t\t31, 56, 216, 28, 87, 184, 54, 165, 41, 89, 40, 194, 228, 14,\n\t\t97, 180, 203, 233, 229, 171, 242, 16, 32, 249, 42, 19, 82,\n\t\t121, 179, 204, 74, 75, 62, 239, 0, 2, 198, 131, 250, 181,\n\t\t190, 0, 166, 62, 130, 49, 247, 112, 58, 233, 194, 200, 194,\n\t\t177, 124, 175, 33, 33, 9, 148, 223, 31, 225, 130, 64, 91,\n\t\t54, 73, 73, 201, 216, 2, 241, 2, 150, 52, 245, 192, 210, 160,\n\t\t188, 245, 128, 66, 226, 26, 54, 132, 19, 140, 71, 202, 75,\n\t\t225, 234, 129, 44, 78, 76, 148, 189, 52, 200, 69, 130, 60,\n\t\t166, 134, 37, 158, 202, 206, 249, 129, 50, 177, 99, 9, 86,\n\t\t158, 97, 140, 115, 20, 140, 50, 50, 76, 134, 62, 216, 92,\n\t\t60, 45, 12, 227, 68, 103, 213, 191, 198, 3, 15, 41, 165, 20,\n\t\t49, 70, 202, 7, 36, 135, 229, 34, 205, 23, 251, 75, 158, 33,\n\t\t12, 82, 72, 50, 57, 158, 116, 220, 32, 118, 48, 78, 31, 107,\n\t\t99, 182, 143, 219, 135, 135, 137, 255, 40, 72, 25, 10, 210,\n\t\t228, 13, 218, 75, 113, 43, 184, 66, 104, 167, 142, 164, 155,\n\t\t69, 52, 150, 101, 218, 211, 193, 0, 2, 2, 69, 169, 175, 186,\n\t\t247, 220, 208, 2, 207, 60, 243, 24, 128, 31, 222, 187, 21,\n\t\t248, 138, 180, 194, 152, 6, 21, 70, 56, 128, 40, 161, 37,\n\t\t218, 16, 15, 220, 44, 92, 62, 233, 45, 52, 15, 21, 156, 227,\n\t\t12, 35, 73, 35, 104, 35, 222, 93, 149, 230, 25, 66, 114, 221,\n\t\t188, 174, 74, 80, 67, 208, 91, 158, 21, 94, 22, 152, 90, 230,\n\t\t110, 122, 203, 20, 225, 174, 143, 64, 70, 54, 64, 229, 142,\n\t\t111, 121, 96, 3, 74, 13, 2, 135, 139, 242, 146, 26, 57, 168,\n\t\t190, 27, 133, 71, 193, 82, 137, 187, 92, 8, 252, 134, 74,\n\t\t246, 42, 22, 12, 140, 217, 3, 90, 46, 112, 61, 66, 254, 251,\n\t\t143, 31, 226, 91, 4, 73, 230, 215, 168, 200, 86, 245, 214,\n\t\t102, 191, 247, 19, 46, 175, 117, 155, 42, 119, 156, 105, 203,\n\t\t164, 204, 211, 50, 207, 60, 171, 239, 0, 199, 184, 221, 9,\n\t\t158, 248, 180, 52, 215, 238, 11, 250, 180, 173, 5, 52, 91,\n\t\t195, 146, 6, 80, 37, 21, 140, 255, 10, 174, 44, 189, 101,\n\t\t35, 96, 86, 176, 212, 166, 38, 244, 17, 179, 209, 245, 198,\n\t\t5, 38, 92, 107, 191, 254, 4, 89, 150, 238, 185, 40, 63, 71,\n\t\t9, 46, 1, 144, 186, 195, 235, 1, 110, 159, 165, 101, 204,\n\t\t38, 195, 48, 212, 95, 19, 105, 114, 149, 211, 115, 193, 146,\n\t\t166, 190, 214, 126, 129, 142, 63, 113, 236, 250, 196, 46,\n\t\t70, 144, 255, 104, 39, 170, 145, 113, 43, 238, 237, 230, 203,\n\t\t208, 65, 38, 78, 99, 92, 236, 142, 112, 117, 116, 238, 198,\n\t\t254, 11, 46, 164, 60, 71, 137, 205, 118, 206, 219, 56, 227,\n\t\t210, 180, 73, 239, 84, 168, 19, 20, 16, 190, 149, 145, 121,\n\t\t206, 172, 189, 172, 112, 65, 245, 246, 40, 95, 249, 19, 169,\n\t\t229, 76, 113, 9, 237, 55, 190, 42, 44, 240, 167, 103, 49,\n\t\t136, 187, 99, 103, 41, 212, 234, 50, 30, 197, 46, 10, 201,\n\t\t45, 212, 183, 227, 128, 43, 71, 238, 147, 216, 107, 221, 123,\n\t\t197, 232, 103, 187, 4, 95, 155, 200, 125, 147, 39, 73, 12,\n\t\t84, 93, 96, 6, 21, 198, 112, 153, 199, 253, 221, 105, 23,\n\t\t103, 103, 250, 170, 247, 181, 222, 4, 88, 71, 8, 95, 33, 55,\n\t\t119, 196, 103, 110, 224, 156, 167, 99, 215, 207, 187, 200,\n\t\t132, 113, 135, 242, 17, 40, 250, 106, 77, 168, 10, 192, 128,\n\t\t241, 57, 160, 182, 129, 93, 147, 250, 53, 108, 22, 206, 141,\n\t\t99, 72, 97, 166, 123, 107, 204, 98, 232, 96, 62, 202, 209,\n\t\t99, 130, 250, 40, 26, 230, 212, 77, 62, 99, 120, 5, 177, 78,\n\t\t202, 179, 195, 34, 34, 72, 245, 248, 112, 199, 8, 242, 247,\n\t\t18, 70, 39, 119, 205, 148, 193, 22, 158, 79, 37, 14, 66, 125,\n\t\t13, 154, 118, 36, 4, 227, 204, 200, 198, 115, 199, 190, 201,\n\t\t78, 182, 208, 238, 209, 99, 5, 14, 222, 169, 118, 223, 254,\n\t\t116, 103, 172, 59, 246, 211, 236, 6, 100, 43, 188, 125, 247,\n\t\t166, 144, 196, 71, 247, 223, 46, 241, 74, 227, 114, 115, 211,\n\t\t240, 51, 195, 198, 172, 122, 61, 5, 255, 16, 43, 212, 99,\n\t\t228, 220, 235, 145, 185, 116, 234, 60, 89, 251, 123, 72, 206,\n\t\t220, 126, 235, 198, 237, 82, 215, 94, 206, 124, 134, 134,\n\t\t254, 102, 73, 189, 71, 135, 220, 47, 14, 158, 95, 247, 189,\n\t\t11, 104, 173, 141, 126, 226, 110, 97, 103, 181, 151, 191,\n\t\t195, 157, 158, 64, 135, 24, 206, 235, 107, 80, 77, 248, 147,\n\t\t58, 237, 88, 82, 229, 32, 163, 112, 183, 73, 61, 85, 140,\n\t\t248, 117, 180, 107, 252, 141, 189, 216, 232, 191, 203, 81,\n\t\t193, 29, 212, 151, 130, 168, 172, 208, 110, 159, 123, 171,\n\t\t236, 198, 54, 208, 101, 54, 85, 22, 121, 165, 198, 246, 155,\n\t\t136, 156, 74, 10, 175, 22, 146, 14, 133, 85, 6, 74, 34, 186,\n\t\t146, 194, 138, 220, 253, 30, 33, 228, 163, 230, 2, 68, 69,\n\t\t125, 102, 88, 227, 207, 182, 101, 138, 95, 214, 17, 23, 221,\n\t\t65, 138, 207, 214, 36, 15, 143, 203, 143, 87, 215, 239, 155,\n\t\t30, 229, 27, 14, 161, 158, 254, 219, 202, 239, 225, 204, 219,\n\t\t108, 33, 122, 224, 142, 114, 4, 137, 210, 105, 222, 123, 177,\n\t\t237, 240, 191, 219, 102, 223, 85, 236, 171, 243, 62, 26, 71,\n\t\t219, 234, 94, 114, 68, 27, 103, 225, 217, 128, 47, 19, 232,\n\t\t166, 123, 91, 4, 63, 142, 15, 150, 60, 179, 244, 206, 184,\n\t\t141, 208, 228, 156, 188, 86, 88, 80, 114, 48, 122, 47, 238,\n\t\t172, 115, 7, 9, 75, 212, 66, 44, 17, 80, 19, 19, 104, 58,\n\t\t105, 184, 210, 157, 198, 161, 131, 133, 200, 142, 134, 190,\n\t\t7, 122, 189, 0, 47, 159, 117, 198, 25, 46, 23, 150, 195, 6,\n\t\t117, 133, 24, 217, 147, 196, 230, 133, 20, 23, 249, 147, 173,\n\t\t118, 87, 43, 191, 42, 68, 45, 210, 2, 220, 40, 132, 248, 184,\n\t\t17, 8, 86, 180, 75, 186, 178, 217, 139, 6, 52, 244, 16, 148,\n\t\t152, 32, 74, 147, 24, 65, 2, 144, 242, 14, 76, 169, 97, 229,\n\t\t194, 147, 190, 252, 241, 246, 191, 77, 88, 168, 238, 69, 198,\n\t\t238, 143, 8, 179, 217, 157, 42, 9, 211, 129, 243, 111, 55,\n\t\t5, 217, 10, 107, 66, 41, 119, 103, 46, 192, 232, 80, 88, 14,\n\t\t74, 130, 24, 104, 66, 234, 127, 216, 201, 157, 66, 31, 106,\n\t\t214, 82, 93, 128, 234, 162, 173, 100, 3, 69, 220, 176, 157,\n\t\t138, 64, 1, 210, 193, 14, 7, 29, 123, 62, 241, 87, 34, 28,\n\t\t23, 232, 59, 36, 86, 167, 91, 139, 240, 228, 135, 181, 175,\n\t\t149, 249, 98, 182, 231, 167, 172, 86, 241, 222, 29, 243, 106,\n\t\t32, 148, 43, 213, 89, 220, 135, 53, 206, 78, 216, 183, 182,\n\t\t170, 19, 59, 23, 210, 124, 189, 112, 149, 221, 223, 50, 204,\n\t\t35, 173, 147, 15, 215, 130, 25, 34, 190, 88, 55, 199, 121,\n\t\t162, 183, 50, 253, 205, 116, 154, 246, 143, 157, 143, 123,\n\t\t105, 140, 55, 13, 247, 45, 214, 190, 14, 167, 199, 175, 175,\n\t\t190, 175, 237, 43, 157, 12, 221, 23, 30, 42, 59, 65, 24, 42,\n\t\t13, 133, 118, 59, 190, 249, 203, 44, 208, 207, 190, 143, 114,\n\t\t252, 29, 176, 246, 44, 171, 103, 31, 167, 24, 125, 24, 13,\n\t\t134, 83, 222, 95, 132, 232, 93, 244, 226, 161, 77, 231, 29,\n\t\t86, 103, 250, 133, 100, 194, 189, 214, 88, 42, 225, 6, 194,\n\t\t229, 60, 106, 38, 120, 219, 176, 246, 211, 20, 122, 30, 128,\n\t\t173, 12, 111, 4, 130, 146, 1, 52, 92, 236, 18, 158, 237, 103,\n\t\t53, 107, 139, 56, 103, 20, 221, 233, 198, 124, 94, 46, 97,\n\t\t94, 29, 20, 233, 20, 159, 219, 204, 107, 226, 54, 195, 157,\n\t\t74, 185, 228, 133, 220, 249, 243, 120, 188, 132, 99, 16, 211,\n\t\t97, 77, 30, 90, 101, 65, 125, 211, 7, 207, 97, 180, 201, 220,\n\t\t199, 192, 38, 227, 169, 86, 67, 235, 154, 150, 123, 240, 10,\n\t\t23, 149, 45, 104, 15, 146, 148, 76, 86, 249, 97, 139, 209,\n\t\t53, 104, 181, 22, 188, 98, 128, 224, 25, 53, 206, 173, 120,\n\t\t185, 165, 36, 137, 244, 117, 126, 1, 131, 46, 27, 153, 169,\n\t\t149, 167, 10, 160, 179, 206, 182, 243, 158, 186, 30, 173,\n\t\t242, 3, 28, 74, 138, 221, 153, 26, 140, 136, 84, 246, 38,\n\t\t151, 29, 76, 197, 228, 231, 229, 218, 217, 86, 17, 237, 41,\n\t\t191, 127, 60, 42, 49, 58, 118, 45, 60, 72, 146, 68, 136, 199,\n\t\t245, 20, 49, 49, 57, 130, 8, 135, 40, 177, 14, 66, 205, 110,\n\t\t47, 71, 216, 79, 106, 121, 249, 196, 34, 29, 239, 238, 175,\n\t\t43, 51, 71, 22, 38, 78, 29, 237, 114, 4, 168, 62, 188, 168,\n\t\t36, 117, 101, 4, 79, 105, 37, 219, 40, 22, 229, 198, 125,\n\t\t97, 191, 18, 155, 57, 102, 253, 93, 92, 68, 69, 168, 154,\n\t\t86, 15, 177, 232, 131, 72, 61, 6, 180, 183, 228, 201, 70,\n\t\t42, 209, 254, 104, 183, 188, 9, 218, 148, 0, 150, 196, 148,\n\t\t76, 254, 164, 203, 221, 228, 75, 200, 5, 186, 146, 25, 5,\n\t\t219, 37, 30, 97, 210, 154, 116, 120, 128, 246, 133, 221, 50,\n\t\t140, 216, 71, 48, 4, 99, 219, 148, 235, 57, 172, 223, 146,\n\t\t93, 21, 186, 245, 25, 142, 56, 87, 154, 10, 117, 82, 176,\n\t\t72, 71, 94, 138, 106, 65, 216, 182, 103, 112, 141, 101, 127,\n\t\t57, 13, 121, 32, 109, 99, 227, 88, 170, 240, 116, 230, 214,\n\t\t220, 148, 157, 53, 102, 151, 16, 28, 152, 89, 159, 23, 149,\n\t\t65, 155, 133, 224, 34, 11, 137, 243, 88, 194, 116, 217, 20,\n\t\t194, 183, 30, 109, 78, 57, 183, 124, 53, 119, 183, 202, 146,\n\t\t59, 21, 145, 56, 232, 122, 3, 53, 202, 96, 251, 81, 118, 140,\n\t\t248, 160, 182, 38, 147, 241, 133, 37, 99, 50, 145, 55, 52,\n\t\t131, 233, 165, 243, 25, 180, 86, 115, 140, 160, 169, 196,\n\t\t154, 14, 134, 68, 223, 45, 137, 109, 232, 115, 94, 41, 19,\n\t\t16, 67, 75, 77, 150, 149, 69, 183, 170, 86, 95, 150, 117,\n\t\t26, 51, 223, 154, 80, 143, 146, 109, 2, 49, 21, 119, 8, 121,\n\t\t63, 107, 150, 176, 3, 234, 30, 196, 254, 93, 23, 17, 120,\n\t\t240, 60, 141, 56, 240, 225, 199, 24, 218, 124, 145, 229, 84,\n\t\t99, 7, 169, 234, 57, 138, 190, 218, 245, 216, 223, 59, 184,\n\t\t229, 11, 56, 163, 219, 175, 129, 200, 208, 80, 20, 24, 13,\n\t\t133, 226, 69, 149, 243, 219, 139, 195, 143, 51, 180, 121,\n\t\t195, 186, 239, 34, 95, 195, 165, 234, 194, 236, 244, 146,\n\t\t205, 245, 193, 230, 151, 67, 142, 133, 199, 94, 134, 57, 126,\n\t\t123, 133, 69, 254, 50, 184, 131, 190, 183, 31, 204, 145, 213,\n\t\t146, 5, 81, 99, 118, 75, 44, 240, 208, 176, 253, 254, 86,\n\t\t80, 211, 61, 225, 60, 88, 109, 170, 85, 156, 127, 220, 99,\n\t\t177, 192, 206, 55, 94, 15, 227, 157, 198, 242, 75, 234, 196,\n\t\t131, 239, 58, 24, 66, 19, 71, 55, 89, 60, 247, 123, 193, 20,\n\t\t210, 171, 240, 213, 89, 116, 241, 98, 169, 57, 95, 43, 73,\n\t\t5, 255, 240, 148, 6, 163, 219, 245, 38, 185, 119, 144, 114,\n\t\t105, 11, 211, 240, 125, 110, 250, 231, 117, 207, 114, 108,\n\t\t38, 105, 152, 242, 227, 105, 11, 235, 81, 52, 148, 54, 55,\n\t\t39, 230, 21, 101, 254, 233, 157, 209, 76, 42, 182, 144, 76,\n\t\t189, 56, 80, 77, 126, 249, 253, 5, 97, 211, 239, 99, 92, 197,\n\t\t167, 122, 141, 137, 99, 169, 94, 250, 146, 41, 41, 248, 57,\n\t\t205, 57, 63, 231, 91, 60, 83, 42, 9, 245, 139, 46, 39, 181,\n\t\t200, 88, 105, 118, 118, 99, 175, 109, 212, 31, 237, 78, 61,\n\t\t36, 214, 249, 51, 209, 115, 105, 48, 21, 92, 34, 122, 126,\n\t\t159, 249, 168, 135, 127, 207, 114, 229, 233, 44, 115, 139,\n\t\t73, 247, 137, 123, 120, 66, 198, 186, 239, 18, 172, 241, 108,\n\t\t231, 123, 160, 160, 194, 81, 244, 103, 238, 57, 236, 23, 231,\n\t\t98, 111, 103, 30, 14, 206, 62, 112, 115, 84, 79, 76, 35, 176,\n\t\t101, 21, 25, 201, 67, 40, 118, 207, 56, 48, 93, 26, 44, 99,\n\t\t24, 60, 104, 176, 28, 197, 6, 137, 205, 145, 196, 164, 223,\n\t\t45, 165, 47, 155, 184, 228, 82, 92, 106, 105, 77, 184, 241,\n\t\t75, 85, 109, 58, 112, 223, 176, 155, 179, 236, 113, 65, 117,\n\t\t12, 218, 144, 136, 66, 178, 130, 95, 241, 29, 22, 106, 226,\n\t\t190, 144, 23, 57, 228, 168, 8, 123, 5, 4, 65, 114, 190, 12,\n\t\t105, 191, 85, 85, 108, 58, 237, 216, 8, 177, 247, 83, 22,\n\t\t185, 206, 36, 178, 92, 153, 116, 76, 34, 166, 126, 159, 176,\n\t\t29, 72, 170, 132, 233, 78, 106, 112, 128, 243, 177, 108, 28,\n\t\t34, 203, 86, 177, 15, 50, 186, 204, 12, 229, 221, 202, 113,\n\t\t250, 216, 209, 227, 95, 148, 35, 93, 143, 177, 17, 246, 31,\n\t\t167, 10, 98, 56, 81, 38, 45, 104, 229, 21, 32, 152, 68, 61,\n\t\t110, 40, 86, 16, 208, 13, 224, 215, 219, 16, 209, 169, 74,\n\t\t144, 46, 108, 149, 63, 5, 80, 194, 255, 52, 192, 85, 245,\n\t\t33, 49, 129, 25, 100, 74, 38, 130, 129, 200, 40, 129, 82,\n\t\t60, 16, 27, 90, 70, 62, 201, 254, 70, 132, 110, 162, 154,\n\t\t89, 110, 37, 167, 4, 71, 21, 176, 153, 195, 85, 149, 85, 2,\n\t\t35, 51, 170, 238, 74, 207, 182, 86, 124, 59, 110, 187, 104,\n\t\t233, 78, 18, 178, 65, 105, 14, 195, 174, 22, 68, 55, 117,\n\t\t206, 157, 21, 64, 180, 169, 181, 8, 222, 232, 132, 68, 104,\n\t\t217, 65, 211, 46, 16, 17, 223, 5, 119, 80, 245, 129, 33, 149,\n\t\t110, 97, 43, 69, 82, 166, 10, 182, 136, 94, 4, 197, 97, 76,\n\t\t21, 106, 142, 10, 155, 56, 98, 202, 75, 156, 187, 121, 14,\n\t\t205, 24, 205, 26, 188, 30, 42, 157, 162, 51, 76, 214, 219,\n\t\t14, 204, 163, 209, 192, 130, 7, 224, 84, 90, 215, 137, 237,\n\t\t58, 53, 129, 1, 67, 60, 127, 71, 86, 69, 176, 145, 149, 133,\n\t\t29, 17, 42, 20, 253, 211, 143, 178, 10, 12, 64, 223, 204,\n\t\t0, 19, 120, 138, 201, 33, 88, 24, 0, 130, 147, 225, 205, 72,\n\t\t29, 187, 22, 26, 93, 131, 189, 133, 140, 245, 213, 133, 223,\n\t\t113, 223, 209, 148, 129, 179, 3, 50, 143, 34, 15, 205, 78,\n\t\t62, 94, 203, 141, 33, 69, 38, 137, 172, 54, 226, 105, 93,\n\t\t178, 110, 127, 113, 14, 106, 1, 131, 218, 9, 146, 1, 68, 86,\n\t\t4, 202, 202, 185, 112, 217, 131, 55, 157, 24, 217, 99, 29,\n\t\t25, 144, 101, 216, 137, 54, 178, 1, 91, 188, 45, 99, 119,\n\t\t35, 242, 20, 153, 116, 247, 127, 87, 173, 59, 218, 102, 0,\n\t\t64, 113, 149, 43, 3, 242, 3, 202, 225, 216, 192, 106, 96,\n\t\t207, 32, 55, 230, 181, 169, 155, 147, 165, 231, 7, 57, 190,\n\t\t202, 72, 211, 173, 52, 164, 233, 4, 144, 208, 129, 239, 231,\n\t\t250, 234, 80, 165, 214, 47, 142, 12, 69, 161, 194, 224, 204,\n\t\t168, 66, 149, 203, 155, 81, 63, 211, 174, 6, 170, 231, 132,\n\t\t233, 80, 173, 107, 252, 206, 217, 242, 243, 29, 153, 220,\n\t\t109, 168, 159, 37, 37, 73, 128, 128, 5, 174, 85, 202, 147,\n\t\t103, 249, 221, 172, 4, 224, 152, 111, 156, 155, 74, 161, 233,\n\t\t54, 153, 227, 4, 155, 196, 180, 188, 110, 10, 50, 153, 88,\n\t\t155, 209, 122, 3, 8, 18, 100, 230, 84, 43, 68, 229, 161, 227,\n\t\t144, 11, 168, 153, 182, 27, 154, 222, 86, 100, 119, 124, 224,\n\t\t85, 245, 227, 36, 27, 11, 178, 6, 53, 123, 226, 52, 69, 241,\n\t\t134, 172, 93, 45, 84, 147, 76, 122, 222, 189, 234, 233, 114,\n\t\t25, 56, 12, 244, 110, 151, 90, 115, 230, 161, 215, 236, 129,\n\t\t30, 5, 144, 39, 137, 217, 244, 122, 84, 86, 214, 141, 100,\n\t\t20, 123, 201, 39, 55, 176, 228, 82, 43, 255, 212, 22, 211,\n\t\t159, 114, 109, 157, 16, 100, 172, 234, 130, 214, 228, 148,\n\t\t98, 97, 192, 165, 14, 37, 90, 253, 185, 85, 162, 180, 159,\n\t\t228, 78, 182, 219, 224, 114, 143, 59, 77, 174, 143, 194, 70,\n\t\t205, 25, 90, 67, 21, 21, 90, 19, 26, 131, 15, 146, 139, 89,\n\t\t20, 216, 157, 226, 189, 36, 136, 165, 18, 14, 214, 88, 99,\n\t\t130, 83, 48, 92, 176, 242, 231, 33, 223, 211, 88, 101, 170,\n\t\t65, 65, 22, 199, 68, 248, 182, 243, 103, 183, 174, 249, 73,\n\t\t190, 155, 56, 69, 13, 196, 63, 54, 185, 67, 37, 234, 41, 229,\n\t\t236, 107, 53, 241, 199, 52, 244, 134, 3, 90, 57, 100, 148,\n\t\t213, 55, 85, 108, 152, 140, 37, 166, 247, 226, 119, 77, 103,\n\t\t134, 107, 195, 101, 117, 63, 95, 194, 11, 162, 131, 120, 34,\n\t\t229, 158, 150, 77, 60, 145, 40, 153, 149, 93, 157, 56, 246,\n\t\t96, 230, 57, 226, 19, 17, 105, 182, 100, 61, 83, 255, 102,\n\t\t80, 255, 103, 102, 62, 193, 239, 238, 75, 215, 104, 128, 251,\n\t\t107, 87, 75, 167, 19, 109, 105, 255, 69, 196, 144, 47, 0,\n\t\t18, 207, 15, 254, 152, 230, 245, 36, 218, 23, 2, 7, 152, 94,\n\t\t213, 204, 59, 225, 255, 215, 40, 70, 65, 204, 181, 52, 37,\n\t\t118, 182, 120, 223, 192, 201, 160, 157, 81, 67, 109, 49, 18,\n\t\t59, 191, 212, 13, 197, 244, 35, 203, 255, 171, 225, 50, 189,\n\t\t220, 217, 91, 46, 118, 60, 58, 7, 35, 206, 189, 238, 51, 54,\n\t\t95, 199, 200, 102, 17, 5, 229, 93, 92, 52, 13, 209, 171, 7,\n\t\t127, 50, 215, 169, 159, 243, 21, 131, 60, 223, 43, 252, 12,\n\t\t181, 243, 246, 51, 18, 221, 5, 249, 4, 233, 4, 162, 11, 205,\n\t\t105, 24, 229, 229, 63, 54, 98, 95, 161, 23, 88, 1, 49, 151,\n\t\t26, 178, 1, 41, 150, 97, 163, 77, 153, 72, 25, 16, 4, 53,\n\t\t214, 146, 49, 7, 128, 180, 195, 180, 81, 164, 212, 10, 250,\n\t\t33, 114, 123, 172, 14, 61, 168, 111, 4, 185, 210, 237, 62,\n\t\t222, 147, 215, 139, 42, 56, 64, 3, 65, 89, 254, 26, 120, 90,\n\t\t64, 243, 231, 51, 80, 172, 213, 236, 176, 226, 117, 23, 67,\n\t\t58, 54, 232, 116, 25, 207, 225, 100, 143, 3, 110, 253, 22,\n\t\t146, 238, 125, 135, 228, 139, 195, 251, 110, 77, 224, 102,\n\t\t207, 110, 69, 96, 248, 170, 179, 30, 174, 205, 104, 217, 181,\n\t\t87, 179, 121, 121, 82, 155, 150, 137, 214, 224, 122, 215,\n\t\t91, 166, 33, 249, 187, 0, 60, 229, 39, 111, 53, 170, 181,\n\t\t221, 213, 239, 52, 123, 193, 51, 179, 189, 64, 81, 0, 145,\n\t\t243, 215, 112, 222, 77, 22, 59, 165, 33, 66, 128, 31, 124,\n\t\t199, 38, 246, 173, 74, 244, 119, 67, 186, 19, 45, 22, 246,\n\t\t253, 226, 15, 58, 170, 125, 88, 86, 83, 126, 156, 12, 72,\n\t\t127, 177, 34, 164, 158, 117, 77, 1, 24, 122, 112, 151, 247,\n\t\t59, 16, 135, 202, 81, 129, 95, 233, 206, 163, 136, 205, 221,\n\t\t22, 216, 178, 36, 15, 37, 168, 111, 72, 102, 110, 234, 177,\n\t\t6, 59, 103, 178, 181, 159, 2, 42, 1, 224, 19, 193, 111, 146,\n\t\t132, 36, 190, 222, 212, 238, 245, 149, 200, 61, 203, 66, 194,\n\t\t112, 41, 54, 215, 214, 39, 236, 215, 236, 201, 44, 225, 89,\n\t\t138, 227, 87, 181, 0, 165, 250, 108, 166, 75, 114, 88, 170,\n\t\t49, 100, 198, 203, 68, 169, 138, 235, 159, 153, 244, 71, 90,\n\t\t125, 86, 65, 103, 8, 89, 221, 48, 13, 200, 61, 194, 69, 69,\n\t\t197, 133, 128, 127, 106, 246, 10, 127, 243, 218, 87, 14, 146,\n\t\t58, 34, 3, 13, 145, 88, 186, 50, 254, 4, 44, 90, 24, 204,\n\t\t77, 84, 42, 19, 197, 85, 122, 20, 198, 202, 84, 81, 33, 184,\n\t\t171, 158, 216, 174, 105, 233, 201, 187, 50, 41, 128, 76, 95,\n\t\t233, 240, 190, 94, 211, 125, 87, 64, 60, 12, 252, 104, 102,\n\t\t67, 189, 144, 241, 122, 205, 210, 90, 193, 133, 77, 192, 146,\n\t\t124, 90, 142, 95, 176, 89, 1, 190, 183, 149, 28, 97, 166,\n\t\t234, 176, 36, 8, 93, 235, 195, 54, 153, 91, 164, 239, 119,\n\t\t112, 9, 238, 102, 38, 11, 111, 187, 217, 145, 182, 149, 149,\n\t\t89, 3, 241, 157, 113, 30, 249, 92, 147, 158, 55, 117, 146,\n\t\t76, 76, 13, 180, 177, 146, 198, 145, 0, 187, 219, 171, 167,\n\t\t45, 121, 54, 42, 145, 16, 214, 42, 10, 111, 122, 51, 253,\n\t\t33, 47, 98, 72, 72, 9, 213, 219, 121, 136, 102, 43, 255, 122,\n\t\t213, 5, 103, 73, 166, 176, 39, 125, 250, 200, 160, 62, 32,\n\t\t253, 22, 28, 240, 82, 237, 241, 65, 150, 224, 47, 132, 120,\n\t\t184, 74, 123, 221, 99, 46, 184, 39, 135, 68, 145, 134, 30,\n\t\t70, 118, 143, 19, 196, 120, 182, 146, 95, 71, 9, 199, 64,\n\t\t71, 222, 191, 178, 77, 220, 248, 21, 66, 73, 94, 244, 241,\n\t\t164, 170, 134, 9, 224, 193, 137, 174, 183, 36, 191, 133, 149,\n\t\t246, 116, 140, 246, 226, 246, 232, 226, 197, 228, 182, 161,\n\t\t206, 75, 58, 105, 51, 217, 186, 182, 55, 167, 30, 123, 144,\n\t\t206, 252, 94, 204, 38, 76, 88, 31, 215, 148, 107, 45, 1, 206,\n\t\t230, 177, 122, 99, 177, 209, 186, 139, 111, 152, 39, 182,\n\t\t25, 194, 55, 206, 22, 28, 148, 174, 223, 214, 42, 5, 249,\n\t\t200, 2, 185, 62, 167, 198, 251, 96, 130, 67, 199, 91, 202,\n\t\t196, 176, 74, 77, 241, 142, 77, 221, 171, 75, 182, 14, 42,\n\t\t14, 164, 47, 17, 84, 234, 151, 123, 131, 88, 102, 234, 0,\n\t\t50, 14, 197, 231, 247, 181, 119, 83, 23, 136, 73, 101, 231,\n\t\t220, 117, 233, 177, 49, 47, 102, 77, 159, 175, 7, 125, 190,\n\t\t115, 8, 198, 99, 80, 134, 168, 158, 128, 175, 103, 177, 160,\n\t\t207, 226, 170, 82, 97, 155, 190, 162, 228, 136, 183, 101,\n\t\t144, 252, 43, 34, 24, 127, 40, 24, 191, 234, 210, 59, 213,\n\t\t157, 246, 169, 134, 109, 21, 227, 94, 150, 120, 173, 88, 188,\n\t\t226, 182, 45, 94, 183, 128, 132, 62, 31, 149, 171, 13, 252,\n\t\t37, 117, 167, 8, 250, 131, 235, 30, 206, 119, 156, 88, 0,\n\t\t204, 79, 177, 116, 218, 77, 253, 11, 67, 99, 95, 138, 54,\n\t\t234, 157, 90, 219, 161, 169, 111, 12, 153, 123, 149, 183,\n\t\t93, 222, 38, 122, 223, 43, 57, 223, 43, 234, 80, 63, 168,\n\t\t13, 61, 205, 188, 139, 122, 147, 91, 228, 166, 214, 230, 111,\n\t\t213, 253, 232, 25, 131, 199, 161, 81, 164, 140, 131, 203,\n\t\t178, 139, 152, 245, 35, 30, 142, 206, 205, 151, 21, 190, 179,\n\t\t170, 115, 91, 42, 71, 181, 110, 133, 98, 16, 211, 31, 173,\n\t\t117, 66, 103, 160, 77, 235, 82, 16, 42, 206, 158, 200, 78,\n\t\t99, 43, 132, 173, 199, 170, 254, 165, 133, 97, 19, 142, 192,\n\t\t192, 177, 202, 16, 40, 46, 32, 70, 18, 174, 79, 216, 111,\n\t\t253, 115, 98, 132, 106, 93, 19, 220, 60, 55, 35, 4, 224, 239,\n\t\t129, 196, 54, 12, 153, 64, 114, 40, 105, 104, 66, 255, 117,\n\t\t150, 239, 70, 62, 159, 182, 186, 47, 54, 173, 163, 210, 10,\n\t\t154, 97, 240, 194, 216, 29, 97, 156, 28, 97, 20, 63, 101,\n\t\t146, 147, 238, 183, 229, 24, 31, 190, 249, 74, 49, 31, 79,\n\t\t235, 9, 170, 168, 50, 162, 96, 48, 142, 61, 70, 139, 9, 198,\n\t\t155, 153, 127, 202, 39, 117, 134, 64, 217, 25, 227, 44, 146,\n\t\t70, 89, 209, 115, 7, 146, 174, 195, 97, 5, 7, 102, 156, 95,\n\t\t2, 118, 45, 225, 229, 211, 67, 15, 188, 204, 93, 112, 155,\n\t\t239, 20, 207, 227, 207, 48, 224, 115, 93, 37, 122, 203, 119,\n\t\t233, 220, 201, 146, 237, 249, 147, 86, 73, 240, 181, 26, 126,\n\t\t219, 243, 233, 232, 146, 130, 175, 115, 169, 235, 154, 227,\n\t\t31, 130, 115, 60, 195, 88, 105, 28, 209, 222, 81, 93, 148,\n\t\t251, 167, 92, 17, 236, 54, 45, 253, 159, 45, 8, 206, 26, 15,\n\t\t251, 246, 120, 40, 79, 139, 5, 208, 39, 115, 228, 39, 234,\n\t\t191, 216, 53, 106, 184, 197, 163, 122, 232, 201, 53, 9, 130,\n\t\t169, 107, 181, 145, 97, 201, 61, 139, 64, 72, 225, 179, 150,\n\t\t3, 219, 212, 94, 102, 11, 134, 245, 250, 108, 136, 67, 167,\n\t\t80, 196, 2, 91, 126, 163, 72, 201, 251, 54, 151, 202, 103,\n\t\t188, 63, 186, 194, 14, 208, 114, 49, 91, 56, 209, 57, 202,\n\t\t11, 170, 105, 17, 13, 160, 192, 153, 225, 61, 53, 211, 170,\n\t\t30, 166, 20, 71, 243, 72, 147, 78, 49, 125, 6, 91, 56, 208,\n\t\t160, 65, 180, 110, 67, 176, 160, 194, 193, 180, 56, 164, 166,\n\t\t160, 194, 133, 215, 29, 159, 17, 196, 198, 74, 248, 197, 112,\n\t\t30, 164, 213, 54, 211, 109, 210, 85, 119, 84, 30, 116, 142,\n\t\t135, 22, 56, 254, 160, 62, 31, 96, 123, 243, 151, 220, 172,\n\t\t198, 249, 102, 29, 37, 243, 121, 58, 155, 186, 23, 1, 8, 74,\n\t\t157, 180, 124, 29, 208, 174, 30, 121, 66, 227, 202, 86, 75,\n\t\t243, 223, 34, 42, 202, 202, 140, 207, 189, 108, 203, 173,\n\t\t97, 166, 222, 148, 122, 82, 161, 105, 213, 251, 23, 134, 156,\n\t\t192, 255, 80, 200, 144, 193, 185, 13, 217, 112, 213, 153,\n\t\t242, 201, 50, 97, 163, 58, 164, 135, 56, 252, 193, 146, 23,\n\t\t153, 172, 88, 255, 172, 212, 239, 22, 99, 5, 254, 218, 115,\n\t\t8, 43, 125, 227, 157, 35, 113, 141, 158, 30, 207, 63, 25,\n\t\t228, 128, 45, 227, 113, 202, 214, 251, 106, 175, 170, 126,\n\t\t175, 158, 47, 159, 158, 45, 159, 158, 47, 67, 156, 47, 175,\n\t\t186, 21, 160, 214, 17, 82, 115, 255, 156, 233, 200, 9, 56,\n\t\t248, 224, 218, 246, 100, 106, 126, 33, 105, 54, 252, 53, 51,\n\t\t146, 132, 168, 154, 22, 99, 157, 178, 245, 140, 2, 207, 110,\n\t\t19, 203, 16, 212, 131, 152, 10, 160, 164, 91, 13, 48, 28,\n\t\t125, 201, 152, 107, 107, 184, 158, 228, 185, 69, 109, 112,\n\t\t140, 109, 155, 138, 192, 102, 14, 77, 26, 60, 60, 28, 228,\n\t\t32, 192, 137, 90, 111, 20, 137, 143, 159, 221, 74, 197, 114,\n\t\t222, 145, 62, 2, 129, 240, 252, 169, 22, 58, 110, 201, 179,\n\t\t150, 17, 69, 228, 191, 41, 211, 22, 221, 19, 40, 162, 62,\n\t\t82, 33, 26, 132, 244, 141, 50, 254, 11, 192, 125, 6, 237,\n\t\t14, 138, 86, 229, 43, 54, 175, 190, 127, 119, 34, 43, 152,\n\t\t158, 25, 105, 90, 215, 46, 64, 162, 242, 155, 30, 151, 9,\n\t\t246, 129, 130, 131, 238, 175, 181, 82, 22, 89, 129, 96, 210,\n\t\t86, 174, 42, 139, 123, 227, 82, 90, 172, 231, 102, 236, 163,\n\t\t220, 36, 111, 149, 0, 161, 126, 68, 217, 178, 231, 96, 225,\n\t\t208, 161, 65, 95, 219, 50, 180, 47, 60, 21, 92, 16, 101, 225,\n\t\t184, 134, 35, 103, 220, 27, 114, 4, 193, 223, 167, 42, 160,\n\t\t101, 49, 199, 156, 191, 146, 242, 99, 118, 62, 79, 166, 204,\n\t\t113, 91, 88, 222, 234, 222, 23, 144, 82, 8, 78, 209, 160,\n\t\t20, 223, 45, 16, 16, 2, 158, 118, 152, 252, 219, 103, 32,\n\t\t102, 139, 140, 210, 223, 211, 177, 234, 122, 212, 24, 216,\n\t\t119, 29, 246, 142, 35, 210, 30, 14, 143, 254, 214, 148, 84,\n\t\t153, 90, 178, 216, 144, 36, 207, 65, 32, 128, 11, 231, 143,\n\t\t241, 213, 36, 104, 202, 217, 85, 132, 217, 96, 50, 161, 172,\n\t\t20, 5, 102, 66, 223, 107, 111, 251, 133, 20, 63, 159, 27,\n\t\t52, 228, 141, 247, 102, 69, 171, 183, 153, 111, 206, 61, 189,\n\t\t17, 182, 159, 39, 134, 189, 81, 106, 46, 17, 158, 210, 15,\n\t\t112, 90, 79, 32, 195, 91, 61, 231, 87, 99, 128, 87, 45, 205,\n\t\t244, 214, 254, 163, 173, 2, 57, 24, 192, 60, 212, 21, 116,\n\t\t252, 224, 68, 100, 125, 255, 215, 145, 142, 91, 54, 138, 138,\n\t\t213, 20, 65, 222, 100, 115, 168, 88, 136, 134, 190, 68, 252,\n\t\t24, 53, 81, 57, 168, 252, 135, 48, 111, 43, 111, 63, 188,\n\t\t39, 9, 49, 196, 136, 8, 245, 24, 34, 52, 64, 90, 181, 167,\n\t\t207, 68, 77, 229, 157, 137, 8, 17, 18, 50, 41, 200, 12, 218,\n\t\t36, 2, 35, 146, 18, 34, 164, 8, 17, 238, 126, 61, 66, 119,\n\t\t208, 155, 184, 81, 93, 148, 149, 0, 143, 158, 132, 135, 100,\n\t\t63, 191, 191, 177, 22, 7, 151, 88, 153, 89, 89, 170, 27, 231,\n\t\t176, 11, 203, 171, 27, 91, 145, 191, 22, 226, 254, 187, 50,\n\t\t42, 99, 181, 89, 130, 85, 100, 97, 23, 20, 255, 74, 69, 20,\n\t\t194, 255, 91, 75, 239, 87, 69, 143, 185, 105, 23, 3, 10, 253,\n\t\t73, 226, 236, 56, 137, 183, 215, 32, 73, 74, 11, 248, 36,\n\t\t140, 235, 102, 36, 60, 105, 107, 154, 16, 106, 181, 109, 180,\n\t\t37, 235, 60, 217, 234, 146, 113, 181, 56, 8, 136, 37, 32,\n\t\t174, 105, 242, 69, 149, 188, 101, 53, 115, 67, 37, 155, 110,\n\t\t191, 81, 121, 182, 187, 96, 113, 166, 209, 24, 106, 133, 177,\n\t\t155, 27, 109, 141, 166, 245, 27, 202, 85, 194, 11, 66, 128,\n\t\t242, 56, 251, 148, 101, 133, 79, 150, 29, 21, 103, 184, 9,\n\t\t37, 219, 246, 39, 68, 20, 170, 7, 130, 102, 22, 34, 84, 8,\n\t\t53, 46, 66, 212, 90, 10, 90, 9, 125, 208, 40, 50, 34, 167,\n\t\t106, 141, 194, 36, 198, 12, 63, 70, 155, 19, 47, 44, 168,\n\t\t136, 18, 89, 23, 159, 185, 14, 72, 0, 117, 78, 162, 129, 134,\n\t\t249, 79, 37, 75, 178, 103, 6, 84, 66, 60, 105, 212, 240, 144,\n\t\t154, 178, 236, 242, 78, 69, 148, 209, 179, 21, 215, 155, 122,\n\t\t142, 65, 254, 34, 172, 151, 186, 100, 178, 190, 152, 144,\n\t\t227, 132, 113, 170, 190, 185, 214, 245, 237, 252, 164, 63,\n\t\t152, 145, 243, 52, 117, 118, 116, 37, 48, 58, 24, 103, 189,\n\t\t141, 59, 100, 168, 186, 8, 238, 54, 205, 245, 2, 143, 76,\n\t\t99, 149, 82, 118, 49, 186, 135, 228, 182, 161, 190, 25, 242,\n\t\t153, 206, 19, 228, 207, 69, 147, 124, 180, 64, 186, 196, 28,\n\t\t62, 174, 171, 134, 171, 105, 128, 210, 173, 205, 176, 36,\n\t\t137, 82, 230, 178, 49, 20, 141, 128, 44, 49, 180, 36, 36,\n\t\t141, 206, 5, 122, 173, 42, 228, 89, 6, 103, 56, 10, 82, 87,\n\t\t200, 93, 30, 61, 7, 233, 181, 77, 114, 71, 4, 137, 248, 10,\n\t\t127, 159, 101, 114, 187, 157, 249, 215, 125, 190, 86, 172,\n\t\t36, 200, 95, 19, 14, 149, 114, 55, 101, 198, 92, 94, 193,\n\t\t250, 219, 84, 113, 58, 168, 98, 63, 74, 202, 181, 252, 120,\n\t\t24, 224, 191, 182, 108, 158, 153, 192, 67, 71, 94, 47, 208,\n\t\t13, 106, 203, 114, 57, 113, 118, 127, 84, 199, 221, 71, 189,\n\t\t11, 208, 235, 163, 205, 176, 189, 64, 108, 74, 38, 151, 203,\n\t\t31, 129, 209, 71, 34, 21, 165, 145, 202, 41, 39, 26, 60, 175,\n\t\t226, 144, 252, 44, 164, 161, 195, 193, 59, 241, 178, 105,\n\t\t1, 36, 123, 151, 26, 150, 188, 151, 104, 145, 186, 58, 245,\n\t\t161, 243, 77, 216, 9, 105, 29, 46, 249, 16, 253, 31, 187,\n\t\t159, 23, 46, 39, 45, 155, 102, 97, 169, 207, 131, 75, 208,\n\t\t243, 221, 139, 233, 213, 28, 73, 190, 99, 171, 178, 2, 95,\n\t\t83, 236, 157, 35, 95, 117, 214, 180, 40, 158, 147, 95, 169,\n\t\t215, 134, 222, 17, 215, 57, 126, 150, 54, 17, 248, 142, 114,\n\t\t101, 189, 235, 232, 201, 252, 174, 36, 223, 175, 29, 11, 199,\n\t\t19, 26, 114, 173, 90, 42, 127, 47, 221, 180, 152, 204, 188,\n\t\t18, 59, 165, 109, 116, 130, 125, 204, 122, 95, 244, 203, 223,\n\t\t173, 239, 243, 184, 20, 99, 53, 114, 193, 154, 245, 228, 21,\n\t\t60, 212, 151, 238, 62, 209, 222, 17, 101, 110, 210, 61, 73,\n\t\t100, 110, 214, 217, 229, 46, 102, 119, 24, 104, 194, 53, 51,\n\t\t102, 143, 112, 182, 88, 9, 208, 121, 220, 158, 93, 176, 171,\n\t\t206, 153, 28, 70, 169, 5, 173, 8, 103, 65, 141, 152, 168,\n\t\t1, 30, 72, 245, 114, 5, 168, 164, 227, 174, 178, 75, 101,\n\t\t255, 68, 153, 165, 86, 142, 100, 52, 83, 84, 207, 169, 208,\n\t\t126, 248, 94, 171, 8, 93, 83, 50, 114, 53, 109, 122, 158,\n\t\t24, 49, 47, 211, 240, 197, 45, 245, 136, 166, 227, 77, 244,\n\t\t142, 109, 130, 234, 234, 96, 168, 64, 245, 118, 169, 174,\n\t\t109, 253, 60, 160, 201, 50, 127, 89, 99, 19, 81, 228, 146,\n\t\t115, 236, 253, 90, 179, 37, 70, 190, 16, 112, 242, 46, 61,\n\t\t9, 80, 169, 79, 236, 155, 148, 63, 203, 182, 3, 246, 241,\n\t\t37, 171, 206, 232, 49, 223, 184, 59, 48, 25, 80, 15, 78, 119,\n\t\t232, 35, 62, 168, 187, 133, 79, 247, 174, 109, 84, 243, 178,\n\t\t54, 113, 52, 41, 160, 59, 52, 35, 56, 24, 134, 97, 56, 30,\n\t\t63, 160, 183, 228, 134, 97, 166, 221, 146, 141, 121, 142,\n\t\t233, 145, 204, 122, 170, 188, 218, 5, 183, 63, 115, 62, 77,\n\t\t35, 79, 188, 11, 198, 138, 74, 183, 200, 180, 196, 81, 149,\n\t\t11, 110, 3, 6, 211, 103, 204, 90, 21, 223, 215, 184, 171,\n\t\t111, 248, 159, 182, 131, 167, 159, 139, 154, 185, 248, 28,\n\t\t196, 107, 223, 58, 191, 69, 75, 121, 84, 159, 250, 159, 2,\n\t\t126, 201, 92, 241, 12, 131, 13, 68, 108, 242, 52, 70, 218,\n\t\t7, 183, 240, 182, 112, 2, 46, 208, 176, 131, 106, 204, 152,\n\t\t150, 25, 196, 90, 74, 160, 248, 229, 82, 35, 213, 26, 15,\n\t\t106, 246, 157, 232, 172, 116, 60, 14, 203, 93, 147, 240, 10,\n\t\t114, 43, 243, 54, 33, 112, 51, 175, 89, 220, 126, 173, 181,\n\t\t204, 127, 129, 188, 181, 170, 122, 216, 146, 178, 213, 129,\n\t\t129, 20, 126, 38, 149, 9, 27, 84, 18, 14, 189, 86, 98, 72,\n\t\t175, 35, 88, 78, 117, 43, 41, 195, 26, 158, 82, 149, 199,\n\t\t222, 189, 71, 109, 245, 237, 230, 136, 189, 148, 7, 60, 104,\n\t\t246, 199, 137, 134, 15, 174, 15, 224, 73, 243, 134, 235, 135,\n\t\t170, 189, 180, 225, 142, 209, 200, 176, 6, 23, 214, 199, 193,\n\t\t132, 52, 161, 46, 58, 205, 130, 10, 139, 242, 109, 50, 74,\n\t\t32, 228, 163, 15, 112, 182, 70, 211, 216, 219, 36, 9, 243,\n\t\t74, 130, 160, 35, 67, 101, 249, 157, 255, 169, 59, 23, 43,\n\t\t150, 189, 51, 107, 10, 75, 3, 76, 63, 109, 34, 168, 64, 209,\n\t\t188, 233, 51, 142, 49, 86, 229, 43, 140, 9, 19, 137, 173,\n\t\t233, 137, 247, 105, 86, 209, 255, 216, 225, 235, 48, 11, 181,\n\t\t21, 4, 170, 212, 92, 140, 138, 213, 15, 229, 92, 190, 100,\n\t\t134, 11, 82, 84, 191, 84, 73, 206, 205, 229, 171, 202, 71,\n\t\t197, 193, 177, 59, 212, 43, 78, 201, 222, 99, 5, 151, 242,\n\t\t232, 9, 110, 5, 213, 81, 47, 60, 139, 138, 76, 116, 108, 194,\n\t\t106, 46, 205, 187, 79, 216, 162, 4, 73, 106, 36, 226, 61,\n\t\t49, 148, 224, 28, 64, 199, 111, 17, 135, 60, 151, 89, 45,\n\t\t198, 50, 121, 105, 114, 146, 221, 107, 104, 204, 231, 237,\n\t\t135, 224, 154, 32, 202, 229, 238, 149, 135, 103, 39, 46, 139,\n\t\t143, 217, 149, 92, 128, 128, 136, 227, 134, 98, 87, 224, 38,\n\t\t167, 136, 71, 176, 167, 56, 9, 34, 88, 3, 17, 45, 41, 154,\n\t\t106, 219, 255, 36, 67, 33, 26, 67, 44, 134, 135, 228, 89,\n\t\t7, 20, 147, 64, 164, 228, 57, 86, 189, 191, 147, 207, 222,\n\t\t98, 185, 169, 234, 105, 24, 191, 131, 72, 90, 30, 48, 84,\n\t\t152, 42, 123, 224, 204, 103, 195, 116, 241, 75, 169, 214,\n\t\t1, 147, 3, 207, 73, 18, 103, 84, 61, 6, 66, 21, 188, 189,\n\t\t142, 162, 166, 251, 113, 73, 22, 26, 86, 223, 201, 124, 110,\n\t\t101, 99, 8, 29, 115, 44, 169, 64, 237, 76, 80, 147, 95, 223,\n\t\t230, 207, 109, 11, 86, 111, 55, 230, 54, 209, 234, 89, 248,\n\t\t87, 67, 130, 196, 18, 106, 126, 56, 63, 30, 192, 44, 3, 115,\n\t\t238, 41, 208, 4, 26, 11, 199, 64, 4, 59, 49, 41, 193, 82,\n\t\t82, 54, 131, 34, 187, 142, 167, 60, 222, 60, 132, 209, 104,\n\t\t102, 50, 204, 219, 225, 50, 160, 157, 137, 16, 172, 30, 73,\n\t\t210, 146, 76, 166, 107, 138, 174, 172, 241, 3, 105, 200, 131,\n\t\t175, 223, 152, 119, 132, 185, 36, 220, 64, 220, 164, 37, 181,\n\t\t211, 53, 233, 5, 222, 211, 213, 116, 46, 4, 50, 176, 169,\n\t\t248, 214, 107, 38, 31, 179, 108, 247, 250, 149, 103, 99, 176,\n\t\t147, 52, 146, 134, 155, 190, 185, 229, 126, 28, 121, 88, 124,\n\t\t57, 29, 174, 28, 209, 54, 21, 27, 20, 238, 69, 1, 39, 150,\n\t\t82, 25, 218, 86, 70, 126, 230, 103, 72, 191, 147, 189, 148,\n\t\t167, 15, 218, 22, 55, 247, 139, 78, 223, 230, 228, 198, 202,\n\t\t145, 37, 137, 12, 38, 129, 80, 230, 66, 148, 39, 17, 232,\n\t\t33, 63, 180, 119, 213, 133, 200, 55, 212, 206, 100, 153, 218,\n\t\t84, 239, 62, 128, 170, 151, 247, 85, 82, 83, 159, 84, 200,\n\t\t140, 222, 246, 254, 190, 41, 55, 87, 84, 100, 57, 196, 38,\n\t\t198, 1, 45, 151, 63, 126, 159, 19, 228, 63, 229, 154, 24,\n\t\t232, 143, 29, 216, 113, 89, 164, 207, 175, 195, 188, 177,\n\t\t51, 184, 85, 217, 118, 50, 236, 234, 94, 93, 189, 228, 239,\n\t\t83, 77, 208, 90, 170, 25, 45, 20, 33, 100, 175, 111, 196,\n\t\t199, 59, 56, 227, 175, 210, 190, 134, 119, 28, 92, 55, 187,\n\t\t239, 71, 191, 208, 230, 219, 58, 109, 11, 215, 166, 153, 44,\n\t\t148, 129, 112, 110, 212, 71, 170, 100, 192, 118, 203, 125,\n\t\t1, 147, 34, 14, 210, 127, 25, 57, 181, 19, 100, 86, 49, 179,\n\t\t242, 212, 199, 186, 113, 12, 90, 162, 240, 179, 117, 128,\n\t\t113, 234, 221, 108, 19, 137, 21, 43, 205, 234, 236, 62, 204,\n\t\t254, 198, 156, 243, 219, 173, 16, 164, 1, 127, 38, 37, 45,\n\t\t208, 138, 39, 150, 128, 64, 142, 213, 137, 114, 185, 34, 197,\n\t\t81, 57, 164, 217, 121, 232, 58, 71, 28, 107, 216, 225, 165,\n\t\t129, 106, 62, 152, 115, 79, 128, 251, 186, 144, 62, 40, 63,\n\t\t18, 11, 186, 35, 121, 230, 249, 195, 62, 20, 167, 169, 207,\n\t\t35, 219, 141, 18, 157, 184, 248, 66, 237, 188, 43, 117, 24,\n\t\t224, 215, 55, 107, 116, 36, 43, 160, 168, 150, 190, 151, 181,\n\t\t242, 110, 170, 15, 76, 69, 85, 6, 13, 20, 90, 39, 113, 171,\n\t\t119, 90, 202, 103, 219, 12, 47, 0, 199, 254, 178, 70, 217,\n\t\t171, 117, 219, 173, 51, 15, 107, 181, 134, 191, 103, 104,\n\t\t204, 187, 91, 243, 101, 114, 92, 240, 75, 237, 222, 214, 44,\n\t\t130, 90, 177, 14, 248, 66, 56, 109, 81, 203, 166, 49, 212,\n\t\t19, 142, 53, 40, 169, 34, 198, 15, 19, 174, 188, 159, 245,\n\t\t115, 41, 6, 100, 176, 231, 237, 33, 42, 129, 11, 226, 68,\n\t\t29, 204, 4, 43, 233, 15, 10, 5, 253, 41, 142, 0, 169, 242,\n\t\t5, 71, 209, 15, 153, 56, 14, 134, 72, 171, 7, 79, 115, 29,\n\t\t141, 38, 106, 172, 241, 148, 205, 163, 64, 229, 107, 107,\n\t\t44, 165, 144, 123, 124, 102, 37, 182, 219, 94, 148, 43, 128,\n\t\t223, 105, 184, 50, 37, 77, 191, 121, 35, 121, 187, 168, 79,\n\t\t225, 58, 147, 94, 133, 40, 57, 27, 202, 140, 26, 108, 182,\n\t\t140, 120, 164, 49, 209, 240, 142, 183, 192, 99, 164, 62, 103,\n\t\t129, 174, 69, 242, 4, 106, 24, 29, 177, 5, 77, 64, 140, 133,\n\t\t88, 92, 53, 220, 70, 106, 253, 245, 235, 182, 218, 168, 188,\n\t\t174, 34, 51, 209, 21, 40, 27, 154, 110, 120, 159, 56, 246,\n\t\t69, 161, 95, 128, 102, 104, 90, 239, 78, 2, 174, 143, 56,\n\t\t27, 49, 191, 112, 73, 130, 110, 116, 34, 102, 172, 254, 110,\n\t\t196, 108, 39, 250, 26, 165, 180, 36, 210, 184, 11, 57, 123,\n\t\t102, 195, 194, 93, 84, 24, 39, 18, 153, 226, 37, 240, 163,\n\t\t157, 130, 225, 128, 49, 176, 213, 231, 158, 194, 46, 237,\n\t\t226, 195, 153, 188, 178, 129, 159, 134, 137, 225, 218, 30,\n\t\t128, 31, 238, 195, 222, 97, 98, 101, 37, 13, 32, 212, 182,\n\t\t215, 167, 108, 183, 235, 124, 185, 26, 21, 188, 81, 5, 138,\n\t\t167, 249, 247, 123, 158, 137, 163, 212, 114, 27, 83, 124,\n\t\t32, 177, 112, 61, 105, 93, 109, 65, 221, 202, 159, 45, 182,\n\t\t145, 206, 110, 229, 10, 101, 104, 80, 24, 16, 162, 26, 51,\n\t\t239, 251, 246, 113, 98, 114, 53, 69, 206, 211, 121, 15, 216,\n\t\t108, 229, 18, 81, 177, 186, 73, 62, 14, 158, 150, 161, 34,\n\t\t207, 67, 148, 112, 193, 242, 143, 169, 143, 74, 61, 63, 31,\n\t\t197, 52, 95, 1, 95, 237, 112, 131, 217, 196, 253, 176, 188,\n\t\t44, 55, 243, 175, 202, 53, 63, 152, 125, 186, 207, 47, 123,\n\t\t139, 110, 225, 15, 66, 103, 170, 228, 71, 216, 148, 41, 127,\n\t\t130, 122, 55, 67, 52, 112, 75, 53, 252, 4, 224, 47, 230, 206,\n\t\t159, 67, 135, 44, 55, 182, 135, 112, 195, 48, 165, 10, 109,\n\t\t118, 225, 224, 246, 101, 213, 156, 110, 13, 77, 216, 127,\n\t\t242, 52, 174, 163, 88, 54, 117, 203, 51, 232, 248, 195, 191,\n\t\t199, 254, 90, 244, 13, 172, 209, 152, 156, 39, 211, 230, 38,\n\t\t214, 117, 181, 110, 94, 252, 54, 212, 236, 98, 184, 222, 130,\n\t\t125, 118, 85, 222, 248, 14, 211, 158, 22, 203, 177, 110, 105,\n\t\t10, 211, 148, 38, 247, 168, 153, 111, 231, 91, 173, 108, 155,\n\t\t150, 182, 126, 62, 93, 250, 40, 250, 148, 226, 68, 200, 249,\n\t\t137, 153, 55, 26, 244, 175, 220, 240, 180, 191, 37, 55, 109,\n\t\t215, 136, 173, 78, 118, 100, 69, 239, 180, 218, 121, 105,\n\t\t208, 208, 132, 56, 248, 74, 76, 60, 94, 118, 241, 65, 160,\n\t\t74, 48, 96, 13, 93, 223, 37, 109, 227, 205, 124, 56, 253,\n\t\t148, 16, 192, 198, 145, 224, 8, 236, 190, 145, 248, 213, 90,\n\t\t48, 112, 26, 54, 147, 105, 157, 160, 143, 42, 95, 244, 59,\n\t\t206, 182, 209, 124, 160, 81, 93, 6, 204, 234, 81, 153, 75,\n\t\t21, 11, 101, 25, 15, 91, 37, 136, 163, 119, 135, 136, 121,\n\t\t138, 61, 126, 6, 209, 179, 246, 34, 56, 160, 66, 114, 55,\n\t\t20, 118, 212, 190, 223, 46, 51, 168, 247, 54, 216, 24, 60,\n\t\t47, 129, 124, 82, 183, 238, 88, 243, 43, 138, 97, 20, 63,\n\t\t134, 176, 250, 235, 160, 206, 55, 135, 100, 165, 73, 87, 94,\n\t\t237, 182, 63, 63, 19, 124, 91, 250, 102, 63, 174, 116, 150,\n\t\t43, 136, 245, 141, 214, 56, 125, 230, 175, 253, 220, 96, 221,\n\t\t209, 108, 130, 79, 172, 196, 0, 170, 160, 99, 170, 90, 137,\n\t\t154, 112, 215, 139, 212, 246, 137, 225, 208, 148, 218, 254,\n\t\t214, 172, 40, 197, 172, 107, 197, 7, 233, 179, 67, 194, 71,\n\t\t117, 209, 70, 0, 35, 120, 121, 73, 249, 133, 94, 76, 229,\n\t\t170, 100, 99, 237, 201, 4, 255, 201, 192, 100, 252, 39, 113,\n\t\t249, 71, 181, 32, 87, 174, 253, 62, 46, 193, 71, 25, 93, 77,\n\t\t232, 232, 143, 136, 32, 220, 25, 32, 144, 97, 201, 244, 26,\n\t\t233, 108, 243, 100, 242, 242, 9, 200, 253, 206, 119, 49, 176,\n\t\t102, 213, 33, 206, 196, 245, 186, 138, 198, 254, 209, 174,\n\t\t193, 222, 166, 239, 251, 109, 231, 143, 207, 235, 64, 80,\n\t\t193, 90, 3, 48, 197, 186, 122, 114, 141, 114, 109, 245, 30,\n\t\t25, 215, 111, 174, 159, 93, 55, 114, 172, 88, 107, 79, 224,\n\t\t209, 70, 253, 33, 235, 173, 211, 99, 43, 96, 219, 101, 95,\n\t\t205, 151, 232, 92, 111, 234, 230, 142, 192, 160, 237, 138,\n\t\t35, 73, 255, 229, 250, 209, 213, 223, 223, 231, 61, 158, 210,\n\t\t109, 115, 111, 105, 100, 187, 94, 107, 230, 168, 195, 61,\n\t\t159, 253, 2, 12, 33, 23, 124, 59, 77, 112, 92, 190, 61, 210,\n\t\t248, 209, 83, 67, 177, 209, 70, 193, 26, 251, 23, 60, 216,\n\t\t122, 122, 2, 134, 50, 66, 173, 58, 143, 198, 144, 237, 238,\n\t\t175, 103, 171, 230, 196, 251, 75, 41, 250, 241, 54, 108, 252,\n\t\t188, 166, 102, 42, 25, 216, 143, 84, 67, 149, 206, 5, 121,\n\t\t155, 74, 77, 120, 171, 149, 131, 229, 44, 255, 178, 222, 216,\n\t\t39, 107, 70, 43, 166, 248, 124, 133, 202, 230, 176, 187, 71,\n\t\t155, 10, 234, 31, 67, 2, 1, 108, 130, 54, 154, 67, 123, 163,\n\t\t88, 90, 241, 53, 244, 21, 226, 0, 82, 50, 84, 180, 204, 139,\n\t\t134, 2, 232, 133, 71, 77, 53, 100, 100, 213, 48, 178, 28,\n\t\t140, 200, 166, 173, 198, 114, 87, 199, 165, 237, 53, 235,\n\t\t77, 91, 147, 203, 76, 202, 201, 197, 219, 190, 116, 36, 181,\n\t\t8, 168, 18, 107, 122, 49, 89, 33, 117, 83, 109, 7, 105, 104,\n\t\t206, 55, 214, 220, 94, 156, 94, 167, 151, 236, 137, 233, 183,\n\t\t246, 77, 114, 230, 155, 156, 200, 138, 78, 163, 130, 43, 251,\n\t\t202, 178, 78, 138, 74, 3, 148, 171, 231, 195, 209, 71, 46,\n\t\t190, 144, 65, 35, 220, 133, 243, 121, 127, 95, 63, 149, 88,\n\t\t239, 111, 249, 213, 162, 219, 129, 231, 103, 157, 38, 190,\n\t\t46, 181, 83, 11, 190, 199, 156, 227, 90, 215, 219, 103, 186,\n\t\t134, 90, 138, 133, 236, 150, 204, 247, 250, 81, 9, 219, 217,\n\t\t234, 149, 52, 119, 175, 139, 214, 13, 148, 24, 72, 153, 253,\n\t\t76, 11, 63, 147, 192, 242, 243, 36, 218, 199, 218, 147, 74,\n\t\t35, 168, 15, 155, 76, 14, 152, 95, 38, 155, 63, 108, 46, 36,\n\t\t20, 255, 62, 220, 53, 29, 108, 122, 50, 60, 90, 56, 144, 28,\n\t\t118, 38, 121, 215, 45, 120, 245, 222, 60, 30, 170, 237, 86,\n\t\t92, 189, 148, 78, 66, 199, 151, 135, 147, 21, 234, 173, 238,\n\t\t33, 51, 21, 37, 78, 49, 72, 81, 21, 205, 43, 88, 164, 1, 82,\n\t\t219, 140, 57, 151, 99, 65, 153, 204, 193, 81, 244, 160, 193,\n\t\t65, 53, 115, 183, 136, 160, 31, 87, 18, 181, 46, 48, 91, 246,\n\t\t115, 232, 26, 206, 18, 109, 104, 29, 2, 231, 13, 159, 139,\n\t\t157, 189, 82, 35, 204, 90, 180, 157, 11, 101, 245, 8, 19,\n\t\t115, 202, 193, 39, 67, 111, 51, 41, 204, 58, 158, 32, 116,\n\t\t157, 203, 250, 238, 230, 45, 76, 6, 84, 236, 5, 9, 154, 49,\n\t\t148, 30, 169, 210, 197, 44, 119, 30, 167, 146, 49, 27, 53,\n\t\t245, 213, 30, 173, 22, 40, 232, 46, 146, 251, 117, 216, 73,\n\t\t145, 204, 200, 42, 17, 188, 200, 209, 205, 254, 76, 92, 37,\n\t\t176, 131, 177, 154, 4, 237, 171, 12, 11, 19, 236, 87, 109,\n\t\t6, 242, 85, 193, 71, 52, 79, 123, 187, 195, 50, 102, 5, 143,\n\t\t11, 127, 231, 61, 125, 69, 247, 220, 152, 63, 102, 26, 249,\n\t\t139, 58, 132, 102, 32, 43, 178, 210, 27, 160, 91, 170, 160,\n\t\t3, 11, 249, 223, 58, 223, 72, 251, 122, 44, 184, 229, 143,\n\t\t157, 130, 161, 119, 141, 187, 133, 142, 211, 131, 179, 107,\n\t\t148, 243, 25, 166, 104, 39, 81, 8, 253, 148, 162, 148, 87,\n\t\t105, 207, 114, 118, 150, 212, 62, 22, 204, 207, 106, 185,\n\t\t136, 153, 214, 12, 64, 135, 83, 199, 215, 50, 227, 118, 119,\n\t\t98, 70, 84, 195, 140, 235, 35, 115, 212, 172, 221, 116, 227,\n\t\t114, 196, 230, 176, 140, 135, 107, 69, 177, 193, 94, 2, 39,\n\t\t228, 135, 91, 72, 127, 76, 130, 18, 170, 176, 132, 144, 199,\n\t\t31, 40, 9, 41, 3, 133, 5, 145, 114, 200, 35, 102, 209, 125,\n\t\t208, 54, 17, 127, 65, 21, 92, 121, 96, 245, 200, 34, 35, 228,\n\t\t54, 217, 153, 102, 147, 142, 44, 75, 215, 70, 46, 39, 109,\n\t\t13, 150, 57, 13, 221, 248, 182, 119, 135, 22, 152, 172, 240,\n\t\t11, 231, 196, 71, 182, 183, 213, 28, 128, 244, 159, 24, 173,\n\t\t218, 58, 66, 175, 65, 7, 67, 252, 136, 67, 139, 193, 212,\n\t\t162, 143, 117, 43, 181, 50, 65, 207, 46, 81, 6, 85, 66, 100,\n\t\t191, 117, 186, 244, 81, 177, 194, 10, 97, 15, 151, 209, 169,\n\t\t215, 6, 175, 147, 229, 149, 184, 187, 61, 74, 137, 146, 61,\n\t\t240, 75, 155, 230, 15, 166, 111, 189, 233, 58, 36, 131, 148,\n\t\t211, 3, 135, 252, 228, 54, 115, 49, 45, 127, 250, 38, 120,\n\t\t80, 47, 3, 242, 254, 78, 45, 53, 6, 29, 141, 122, 18, 11,\n\t\t56, 103, 36, 114, 39, 65, 150, 82, 230, 199, 149, 134, 131,\n\t\t189, 214, 196, 11, 111, 127, 113, 77, 125, 117, 249, 238,\n\t\t157, 186, 221, 111, 53, 125, 118, 183, 171, 111, 0, 227, 169,\n\t\t85, 152, 212, 119, 18, 42, 108, 171, 113, 62, 116, 251, 68,\n\t\t219, 95, 30, 244, 177, 64, 8, 135, 145, 14, 195, 57, 22, 152,\n\t\t136, 143, 161, 210, 253, 188, 146, 145, 184, 10, 158, 208,\n\t\t205, 195, 82, 25, 233, 1, 118, 55, 231, 150, 9, 62, 214, 14,\n\t\t53, 124, 191, 218, 48, 209, 195, 131, 128, 54, 38, 32, 239,\n\t\t133, 113, 241, 183, 48, 112, 145, 7, 187, 124, 8, 81, 49,\n\t\t16, 217, 81, 7, 72, 66, 150, 97, 244, 112, 242, 189, 255,\n\t\t120, 6, 109, 254, 249, 131, 95, 162, 14, 182, 89, 43, 249,\n\t\t108, 23, 106, 103, 80, 197, 99, 235, 107, 228, 189, 243, 173,\n\t\t27, 80, 180, 56, 148, 144, 198, 164, 255, 3, 225, 165, 200,\n\t\t152, 207, 22, 104, 183, 230, 198, 77, 25, 31, 51, 38, 84,\n\t\t78, 138, 41, 28, 137, 71, 74, 220, 72, 125, 199, 151, 177,\n\t\t231, 125, 119, 6, 147, 53, 226, 174, 50, 229, 164, 225, 180,\n\t\t234, 228, 17, 116, 85, 182, 184, 198, 63, 156, 167, 228, 0,\n\t\t0, 105, 216, 114, 72, 67, 1, 138, 247, 233, 222, 55, 15, 13,\n\t\t230, 205, 175, 1, 124, 111, 225, 108, 242, 136, 23, 243, 160,\n\t\t111, 223, 162, 98, 148, 252, 233, 75, 156, 101, 92, 236, 48,\n\t\t70, 120, 116, 85, 180, 114, 142, 50, 193, 225, 213, 121, 237,\n\t\t53, 32, 150, 140, 15, 41, 97, 201, 31, 59, 203, 99, 203, 178,\n\t\t196, 229, 229, 51, 32, 89, 112, 253, 126, 155, 161, 130, 233,\n\t\t182, 27, 155, 24, 118, 215, 253, 211, 161, 76, 236, 233, 250,\n\t\t240, 54, 147, 62, 183, 35, 255, 121, 130, 160, 186, 179, 143,\n\t\t86, 68, 92, 94, 241, 112, 241, 172, 38, 150, 144, 39, 252,\n\t\t60, 17, 90, 30, 129, 137, 74, 178, 50, 147, 98, 20, 35, 105,\n\t\t4, 133, 116, 158, 33, 73, 201, 130, 23, 181, 196, 180, 254,\n\t\t170, 250, 61, 209, 111, 73, 204, 196, 241, 126, 167, 21, 243,\n\t\t234, 239, 58, 154, 50, 47, 57, 144, 65, 243, 61, 33, 93, 186,\n\t\t158, 169, 230, 204, 247, 164, 159, 146, 48, 204, 211, 66,\n\t\t232, 38, 109, 81, 242, 184, 151, 4, 87, 123, 21, 163, 125,\n\t\t7, 93, 169, 33, 177, 248, 45, 51, 169, 19, 235, 31, 189, 26,\n\t\t29, 251, 98, 177, 241, 109, 224, 48, 219, 9, 134, 78, 244,\n\t\t232, 63, 137, 247, 108, 20, 137, 62, 234, 143, 62, 10, 38,\n\t\t52, 1, 254, 135, 241, 182, 49, 145, 112, 136, 41, 113, 120,\n\t\t223, 72, 73, 188, 64, 7, 185, 174, 47, 170, 199, 253, 219,\n\t\t115, 56, 27, 160, 97, 106, 82, 16, 84, 100, 4, 229, 39, 137,\n\t\t100, 162, 37, 117, 32, 66, 164, 207, 61, 1, 29, 20, 130, 72,\n\t\t39, 149, 173, 254, 180, 41, 138, 131, 131, 195, 240, 208,\n\t\t11, 250, 182, 200, 151, 182, 228, 178, 5, 227, 222, 119, 217,\n\t\t241, 71, 178, 224, 136, 178, 227, 12, 101, 211, 168, 168,\n\t\t140, 35, 177, 76, 119, 22, 99, 140, 88, 193, 131, 8, 3, 114,\n\t\t90, 160, 65, 135, 213, 88, 193, 33, 49, 58, 84, 110, 97, 118,\n\t\t84, 244, 11, 137, 221, 157, 27, 111, 164, 179, 217, 241, 229,\n\t\t198, 99, 43, 27, 206, 6, 164, 117, 203, 91, 230, 209, 68,\n\t\t27, 233, 182, 247, 20, 239, 245, 106, 20, 76, 143, 199, 229,\n\t\t103, 106, 183, 245, 108, 84, 212, 172, 72, 67, 249, 199, 74,\n\t\t32, 223, 179, 126, 16, 255, 230, 179, 38, 191, 86, 95, 30,\n\t\t108, 210, 197, 229, 216, 208, 218, 220, 254, 198, 35, 161,\n\t\t203, 115, 116, 107, 11, 175, 19, 213, 213, 209, 237, 25, 45,\n\t\t173, 68, 214, 158, 127, 137, 142, 157, 101, 115, 66, 18, 88,\n\t\t87, 148, 5, 218, 135, 189, 74, 213, 228, 87, 2, 232, 213,\n\t\t159, 5, 209, 117, 113, 215, 136, 188, 30, 111, 123, 9, 2,\n\t\t116, 130, 150, 80, 224, 88, 178, 169, 27, 92, 249, 182, 97,\n\t\t115, 222, 86, 51, 250, 1, 216, 225, 174, 11, 113, 121, 224,\n\t\t221, 147, 211, 138, 220, 252, 36, 0, 237, 196, 92, 180, 180,\n\t\t80, 64, 244, 244, 113, 170, 231, 45, 100, 23, 117, 253, 159,\n\t\t34, 169, 220, 34, 212, 60, 155, 156, 242, 200, 161, 152, 75,\n\t\t4, 236, 86, 67, 112, 141, 223, 85, 155, 89, 223, 28, 121,\n\t\t149, 38, 204, 241, 63, 182, 252, 239, 49, 135, 226, 167, 3,\n\t\t143, 132, 206, 23, 129, 112, 131, 181, 151, 18, 248, 148,\n\t\t156, 161, 239, 59, 136, 76, 214, 25, 134, 40, 42, 74, 88,\n\t\t106, 17, 52, 106, 197, 89, 149, 252, 11, 169, 245, 95, 204,\n\t\t21, 202, 46, 173, 61, 47, 182, 172, 87, 58, 134, 52, 120,\n\t\t114, 142, 190, 226, 118, 37, 123, 240, 47, 214, 14, 145, 116,\n\t\t223, 145, 141, 91, 76, 135, 227, 186, 47, 138, 136, 23, 85,\n\t\t66, 252, 125, 61, 5, 109, 149, 125, 35, 162, 223, 122, 185,\n\t\t157, 169, 112, 127, 161, 7, 34, 189, 102, 215, 217, 229, 145,\n\t\t40, 220, 56, 53, 14, 46, 46, 255, 55, 2, 162, 34, 127, 121,\n\t\t208, 116, 219, 244, 162, 116, 21, 93, 143, 175, 188, 157,\n\t\t3, 167, 82, 153, 17, 251, 143, 11, 41, 183, 34, 52, 97, 71,\n\t\t164, 222, 28, 166, 147, 69, 189, 133, 39, 172, 222, 188, 101,\n\t\t19, 35, 172, 187, 124, 201, 113, 105, 206, 209, 54, 207, 97,\n\t\t10, 90, 190, 248, 222, 92, 60, 193, 81, 87, 136, 105, 82,\n\t\t187, 251, 86, 19, 36, 235, 249, 191, 85, 149, 240, 149, 244,\n\t\t139, 13, 44, 154, 33, 82, 249, 24, 27, 169, 181, 31, 151,\n\t\t176, 99, 22, 13, 235, 243, 164, 3, 188, 3, 230, 172, 214,\n\t\t81, 196, 124, 198, 67, 135, 115, 134, 154, 159, 117, 4, 166,\n\t\t211, 217, 85, 68, 224, 151, 153, 182, 131, 117, 34, 193, 144,\n\t\t38, 129, 148, 32, 134, 157, 150, 188, 74, 7, 13, 83, 40, 136,\n\t\t182, 81, 248, 162, 239, 53, 174, 113, 211, 61, 162, 33, 239,\n\t\t200, 159, 231, 188, 177, 128, 105, 58, 2, 155, 168, 76, 220,\n\t\t136, 73, 66, 205, 219, 155, 188, 31, 88, 72, 53, 61, 69, 55,\n\t\t106, 75, 144, 154, 44, 184, 119, 166, 253, 22, 33, 45, 234,\n\t\t183, 220, 227, 121, 201, 205, 135, 84, 80, 141, 146, 156,\n\t\t71, 19, 118, 31, 44, 238, 47, 141, 223, 67, 41, 132, 223,\n\t\t92, 160, 31, 43, 243, 114, 252, 195, 155, 18, 111, 244, 22,\n\t\t161, 218, 68, 84, 108, 186, 1, 72, 180, 217, 239, 151, 161,\n\t\t154, 37, 102, 99, 29, 169, 118, 183, 138, 223, 186, 76, 253,\n\t\t233, 21, 5, 24, 45, 197, 80, 54, 14, 125, 125, 170, 194, 5,\n\t\t246, 8, 130, 59, 207, 180, 85, 145, 212, 11, 241, 33, 125,\n\t\t163, 193, 176, 26, 10, 243, 183, 54, 106, 78, 96, 168, 75,\n\t\t115, 97, 212, 163, 185, 59, 9, 86, 191, 14, 232, 145, 247,\n\t\t243, 197, 248, 204, 12, 217, 32, 234, 198, 89, 10, 130, 198,\n\t\t224, 48, 60, 220, 35, 43, 199, 114, 57, 56, 78, 21, 55, 136,\n\t\t33, 206, 170, 10, 86, 221, 146, 16, 214, 169, 1, 139, 15,\n\t\t67, 82, 102, 204, 31, 75, 78, 186, 245, 46, 103, 93, 15, 97,\n\t\t94, 2, 40, 170, 46, 212, 44, 44, 162, 41, 28, 1, 62, 54, 34,\n\t\t208, 166, 125, 212, 71, 138, 15, 127, 255, 105, 140, 198,\n\t\t189, 174, 239, 228, 103, 89, 143, 152, 164, 27, 57, 15, 20,\n\t\t11, 163, 23, 175, 121, 116, 215, 8, 247, 63, 191, 96, 185,\n\t\t216, 31, 148, 64, 34, 230, 191, 201, 76, 205, 4, 83, 89, 57,\n\t\t191, 78, 147, 223, 187, 143, 86, 153, 135, 208, 57, 89, 185,\n\t\t185, 67, 19, 39, 154, 100, 155, 44, 91, 48, 10, 109, 225,\n\t\t124, 86, 87, 33, 88, 184, 246, 100, 235, 224, 61, 46, 219,\n\t\t91, 111, 64, 94, 99, 13, 220, 214, 42, 62, 30, 60, 17, 74,\n\t\t80, 154, 179, 205, 176, 148, 151, 102, 231, 70, 77, 106, 110,\n\t\t69, 193, 194, 8, 240, 80, 9, 12, 177, 211, 156, 162, 27, 19,\n\t\t9, 190, 224, 21, 115, 47, 140, 45, 193, 63, 40, 116, 14, 194,\n\t\t236, 99, 241, 201, 113, 30, 78, 126, 58, 109, 195, 45, 94,\n\t\t32, 211, 238, 153, 71, 139, 30, 171, 77, 249, 55, 97, 92,\n\t\t219, 4, 39, 142, 181, 51, 34, 181, 65, 36, 57, 49, 173, 110,\n\t\t255, 48, 224, 122, 62, 31, 182, 2, 157, 241, 200, 134, 15,\n\t\t250, 143, 241, 197, 145, 56, 238, 237, 114, 199, 28, 5, 162,\n\t\t39, 82, 52, 107, 119, 109, 233, 220, 164, 86, 220, 171, 194,\n\t\t158, 186, 194, 47, 162, 186, 191, 15, 154, 122, 60, 201, 56,\n\t\t127, 244, 235, 218, 55, 0, 195, 59, 81, 154, 200, 149, 175,\n\t\t59, 169, 76, 50, 126, 126, 182, 182, 126, 85, 127, 157, 6,\n\t\t120, 41, 77, 249, 187, 88, 197, 105, 224, 57, 175, 163, 162,\n\t\t117, 64, 105, 5, 46, 217, 88, 233, 244, 80, 207, 237, 148,\n\t\t150, 232, 92, 50, 220, 60, 230, 92, 59, 46, 102, 91, 129,\n\t\t211, 126, 234, 21, 92, 82, 240, 117, 90, 178, 35, 14, 205,\n\t\t214, 131, 221, 148, 93, 86, 37, 190, 71, 16, 208, 138, 158,\n\t\t245, 213, 118, 237, 38, 248, 185, 97, 8, 103, 6, 112, 40,\n\t\t110, 255, 133, 28, 82, 4, 105, 206, 243, 65, 97, 69, 66, 8,\n\t\t10, 230, 156, 207, 191, 71, 95, 53, 242, 225, 7, 253, 118,\n\t\t184, 164, 107, 227, 79, 242, 220, 22, 239, 253, 110, 244,\n\t\t245, 213, 206, 187, 172, 171, 188, 67, 235, 49, 71, 132, 142,\n\t\t126, 69, 67, 238, 251, 234, 239, 97, 121, 196, 26, 37, 210,\n\t\t56, 170, 124, 171, 11, 98, 95, 167, 128, 146, 223, 234, 4,\n\t\t246, 161, 127, 34, 162, 195, 24, 147, 156, 18, 84, 166, 157,\n\t\t192, 16, 102, 30, 67, 198, 161, 1, 242, 182, 123, 24, 20,\n\t\t249, 131, 156, 236, 9, 89, 230, 146, 182, 248, 200, 116, 48,\n\t\t31, 77, 33, 41, 235, 142, 62, 81, 143, 27, 104, 103, 69, 167,\n\t\t52, 167, 98, 108, 83, 3, 191, 15, 109, 249, 118, 225, 232,\n\t\t144, 183, 80, 172, 47, 177, 227, 140, 21, 92, 177, 158, 253,\n\t\t20, 158, 76, 50, 245, 202, 4, 141, 182, 9, 76, 10, 111, 212,\n\t\t57, 152, 239, 107, 24, 98, 123, 106, 87, 101, 26, 30, 183,\n\t\t153, 90, 127, 62, 74, 218, 166, 167, 174, 227, 82, 62, 247,\n\t\t127, 245, 90, 152, 145, 30, 134, 199, 58, 133, 50, 77, 76,\n\t\t126, 91, 232, 14, 106, 232, 218, 121, 55, 45, 240, 63, 191,\n\t\t81, 109, 223, 69, 27, 25, 84, 5, 66, 189, 202, 218, 57, 230,\n\t\t238, 165, 118, 118, 157, 164, 82, 223, 131, 189, 201, 138,\n\t\t18, 175, 186, 181, 148, 82, 189, 72, 94, 13, 158, 188, 241,\n\t\t209, 114, 15, 149, 58, 42, 244, 77, 3, 125, 244, 85, 157,\n\t\t238, 127, 65, 204, 149, 27, 51, 254, 183, 123, 103, 106, 104,\n\t\t248, 180, 197, 182, 219, 31, 88, 77, 152, 179, 123, 66, 3,\n\t\t194, 129, 2, 2, 185, 181, 214, 222, 143, 36, 221, 249, 229,\n\t\t255, 232, 79, 161, 194, 115, 40, 69, 152, 22, 12, 68, 11,\n\t\t7, 8, 69, 128, 151, 255, 191, 12, 239, 221, 47, 0, 4, 68,\n\t\t101, 240, 151, 67, 176, 33, 27, 136, 50, 8, 152, 28, 0, 136,\n\t\t63, 5, 135, 2, 120, 102, 197, 42, 245, 195, 13, 48, 194, 186,\n\t\t62, 92, 196, 83, 92, 186, 162, 138, 223, 243, 202, 206, 135,\n\t\t38, 124, 136, 130, 50, 158, 174, 73, 225, 65, 7, 73, 82, 140,\n\t\t166, 85, 218, 228, 178, 188, 115, 161, 152, 37, 38, 90, 112,\n\t\t23, 137, 221, 178, 2, 97, 83, 213, 139, 117, 177, 237, 228,\n\t\t113, 237, 200, 50, 188, 230, 9, 137, 198, 105, 239, 17, 164,\n\t\t216, 240, 166, 255, 224, 165, 8, 92, 183, 81, 85, 183, 241,\n\t\t52, 137, 159, 102, 154, 191, 188, 106, 198, 139, 204, 226,\n\t\t196, 13, 182, 126, 225, 176, 151, 74, 106, 31, 27, 55, 78,\n\t\t208, 125, 32, 127, 156, 255, 202, 192, 156, 192, 241, 91,\n\t\t194, 39, 175, 185, 92, 109, 219, 164, 231, 118, 189, 47, 158,\n\t\t30, 204, 243, 212, 106, 117, 132, 89, 109, 73, 109, 71, 243,\n\t\t234, 208, 109, 203, 60, 221, 17, 172, 77, 245, 108, 58, 116,\n\t\t84, 14, 43, 156, 130, 101, 103, 233, 108, 255, 127, 34, 167,\n\t\t32, 192, 7, 48, 4, 120, 3, 178, 7, 234, 1, 58, 0, 166, 6,\n\t\t14, 1, 158, 1, 1, 5, 49, 6, 169, 2, 197, 6, 45, 0, 221, 3,\n\t\t131, 5, 147, 4, 107, 1, 167, 6, 151, 7, 159, 130, 192, 134,\n\t\t48, 134, 56, 128, 52, 134, 60, 128, 210, 135, 106, 131, 134,\n\t\t135, 230, 134, 142, 128, 62, 131, 225, 134, 153, 129, 197,\n\t\t132, 101, 135, 13, 130, 157, 131, 67, 133, 59, 129, 199, 135,\n\t\t151, 135, 143, 128, 31, 65, 16, 69, 8, 65, 24, 64, 4, 32,\n\t\t242, 35, 218, 35, 118, 32, 113, 34, 181, 32, 83, 34, 155,\n\t\t35, 23, 33, 207, 160, 200, 162, 204, 160, 138, 162, 150, 161,\n\t\t1, 208, 100, 209, 122, 208, 113, 209, 109, 209, 143, 48, 232,\n\t\t49, 108, 49, 198, 48, 69, 49, 75, 48, 159, 176, 204, 177,\n\t\t238, 176, 255, 97, 79, 224, 160, 226, 104, 227, 92, 225, 90,\n\t\t226, 94, 224, 137, 226, 237, 224, 167, 18, 96, 19, 88, 18,\n\t\t244, 16, 130, 18, 90, 18, 118, 16, 65, 19, 73, 19, 37, 16,\n\t\t13, 16, 155, 19, 223, 144, 200, 147, 244, 145, 34, 146, 90,\n\t\t147, 174, 144, 254, 144, 161, 147, 41, 146, 11, 147, 151,\n\t\t80, 64, 83, 40, 82, 132, 81, 116, 81, 60, 80, 82, 82, 218,\n\t\t82, 78, 81, 145, 82, 5, 81, 237, 80, 203, 83, 143, 208, 176,\n\t\t211, 248, 209, 252, 208, 74, 211, 150, 208, 33, 211, 101,\n\t\t208, 67, 210, 155, 51, 64, 50, 68, 48, 210, 50, 102, 49, 17,\n\t\t50, 181, 48, 195, 50, 59, 50, 223, 177, 36, 176, 172, 177,\n\t\t114, 179, 38, 179, 94, 177, 17, 178, 37, 178, 3, 179, 107,\n\t\t179, 143, 113, 128, 115, 24, 255, 191, 238, 252, 27, 174,\n\t\t11, 11, 140, 7, 2, 253, 23, 240, 239, 47, 16, 233, 9, 224,\n\t\t132, 5, 0, 32, 13, 5, 202, 0, 120, 102, 53, 39, 246, 203,\n\t\t163, 40, 161, 134, 253, 242, 168, 16, 10, 10, 3, 64, 48, 47,\n\t\t15, 48, 11, 155, 230, 229, 139, 153, 67, 221, 77, 18, 138,\n\t\t96, 56, 196, 133, 151, 134, 150, 25, 97, 175, 67, 220, 111,\n\t\t76, 79, 132, 7, 73, 218, 230, 75, 29, 143, 55, 82, 156, 142,\n\t\t73, 222, 16, 71, 222, 0, 246, 124, 46, 92, 170, 54, 1, 152,\n\t\t36, 217, 174, 51, 30, 183, 239, 167, 89, 191, 83, 186, 0,\n\t\t142, 101, 23, 202, 172, 31, 251, 60, 170, 42, 197, 17, 27,\n\t\t35, 8, 149, 55, 194, 171, 131, 84, 229, 1, 178, 228, 101,\n\t\t154, 125, 168, 45, 165, 220, 80, 10, 167, 109, 42, 152, 217,\n\t\t189, 158, 71, 113, 79, 116, 154, 25, 143, 253, 63, 186, 46,\n\t\t183, 80, 12, 134, 19, 190, 212, 93, 17, 13, 159, 234, 158,\n\t\t145, 108, 6, 33, 105, 90, 143, 193, 157, 149, 11, 172, 181,\n\t\t43, 213, 73, 65, 104, 60, 126, 228, 87, 134, 240, 183, 33,\n\t\t122, 188, 35, 20, 251, 200, 25, 23, 45, 119, 160, 57, 101,\n\t\t249, 119, 164, 248, 101, 14, 3, 44, 158, 231, 85, 48, 179,\n\t\t3, 46, 252, 208, 179, 135, 53, 151, 208, 12, 134, 51, 190,\n\t\t164, 93, 17, 37, 159, 194, 158, 145, 108, 183, 161, 105, 90,\n\t\t143, 104, 155, 115, 146, 78, 65, 176, 76, 29, 103, 253, 1,\n\t\t138, 66, 17, 212, 163, 240, 167, 200, 157, 141, 161, 68, 196,\n\t\t71, 93, 248, 142, 67, 45, 242, 10, 13, 109, 155, 44, 170,\n\t\t80, 149, 75, 243, 145, 249, 213, 70, 201, 151, 64, 167, 244,\n\t\t94, 17, 123, 155, 137, 88, 46, 245, 27, 251, 222, 24, 18,\n\t\t103, 36, 123, 124, 95, 250, 33, 62, 23, 166, 74, 162, 60,\n\t\t74, 175, 101, 4, 142, 15, 8, 215, 150, 191, 187, 94, 203,\n\t\t156, 151, 70, 73, 191, 54, 105, 47, 213, 239, 59, 37, 173,\n\t\t238, 108, 40, 124, 162, 32, 116, 238, 117, 70, 38, 247, 19,\n\t\t12, 55, 206, 83, 175, 49, 171, 245, 106, 77, 118, 187, 44,\n\t\t191, 106, 244, 203, 150, 127, 112, 98, 209, 213, 70, 176,\n\t\t241, 37, 180, 240, 47, 139, 228, 220, 35, 46, 106, 169, 70,\n\t\t42, 63, 73, 126, 155, 31, 191, 100, 216, 122, 25, 13, 112,\n\t\t210, 119, 143, 93, 148, 49, 105, 160, 175, 141, 82, 162, 145,\n\t\t48, 22, 113, 97, 62, 203, 249, 148, 44, 204, 34, 236, 194,\n\t\t91, 216, 156, 248, 27, 162, 2, 52, 62, 113, 225, 110, 109,\n\t\t86, 240, 26, 70, 238, 56, 215, 174, 197, 88, 99, 94, 212,\n\t\t93, 176, 207, 182, 20, 43, 22, 11, 136, 134, 243, 229, 41,\n\t\t227, 97, 193, 198, 249, 177, 170, 63, 195, 235, 141, 220,\n\t\t156, 52, 225, 90, 39, 222, 179, 151, 222, 185, 19, 160, 130,\n\t\t235, 161, 248, 54, 253, 250, 156, 77, 22, 186, 244, 106, 9,\n\t\t238, 116, 251, 207, 117, 245, 203, 32, 252, 63, 125, 103,\n\t\t63, 115, 126, 63, 77, 245, 253, 204, 107, 250, 78, 21, 238,\n\t\t7, 222, 202, 255, 235, 250, 218, 169, 90, 120, 28, 178, 35,\n\t\t46, 101, 145, 102, 38, 155, 78, 190, 28, 211, 183, 63, 237,\n\t\t164, 239, 120, 223, 118, 191, 130, 146, 106, 144, 202, 19,\n\t\t10, 129, 228, 153, 113, 117, 83, 120, 156, 95, 139, 252, 200,\n\t\t249, 105, 1, 7, 52, 217, 10, 72, 220, 66, 109, 105, 5, 76,\n\t\t246, 27, 131, 103, 147, 224, 253, 126, 190, 230, 206, 68,\n\t\t206, 252, 126, 255, 180, 248, 187, 198, 237, 65, 118, 156,\n\t\t229, 199, 147, 209, 146, 8, 70, 0, 133, 97, 26, 129, 85, 98,\n\t\t154, 192, 93, 174, 245, 41, 101, 5, 154, 112, 198, 177, 56,\n\t\t161, 203, 239, 217, 102, 5, 187, 56, 225, 207, 140, 130, 181,\n\t\t33, 98, 236, 27, 235, 6, 201, 56, 97, 209, 143, 162, 181,\n\t\t33, 107, 236, 91, 235, 6, 219, 32, 237, 115, 235, 198, 227,\n\t\t56, 146, 216, 15, 76, 183, 129, 181, 30, 176, 111, 197, 241,\n\t\t56, 82, 220, 12, 108, 183, 65, 188, 30, 240, 111, 197, 67,\n\t\t220, 17, 226, 15, 12, 122, 130, 198, 31, 48, 241, 198, 81,\n\t\t220, 145, 230, 92, 100, 141, 44, 122, 130, 207, 30, 112, 241,\n\t\t198, 99, 220, 17, 235, 15, 76, 122, 130, 213, 30, 176, 117,\n\t\t237, 112, 133, 114, 220, 145, 239, 12, 108, 122, 66, 220,\n\t\t30, 240, 117, 197, 35, 244, 33, 146, 8, 65, 15, 128, 98, 57,\n\t\t59, 102, 13, 161, 2, 131, 73, 75, 170, 174, 133, 4, 133, 9,\n\t\t197, 210, 77, 213, 197, 114, 185, 223, 17, 241, 15, 140, 190,\n\t\t129, 230, 30, 176, 248, 196, 49, 220, 145, 245, 12, 172, 190,\n\t\t129, 239, 30, 240, 248, 196, 171, 112, 198, 18, 220, 145,\n\t\t248, 13, 204, 190, 129, 245, 30, 112, 124, 197, 9, 220, 81,\n\t\t252, 92, 156, 14, 37, 159, 91, 13, 170, 214, 174, 20, 125,\n\t\t68, 38, 140, 179, 34, 234, 102, 70, 64, 45, 102, 66, 166,\n\t\t130, 213, 39, 47, 6, 149, 91, 229, 98, 208, 22, 226, 23, 111,\n\t\t197, 192, 50, 72, 74, 64, 105, 68, 230, 41, 37, 170, 48, 219,\n\t\t245, 123, 54, 146, 219, 181, 209, 234, 108, 21, 115, 133,\n\t\t190, 16, 88, 245, 187, 242, 75, 255, 203, 99, 54, 155, 80,\n\t\t51, 144, 55, 85, 82, 180, 74, 37, 87, 46, 42, 10, 155, 38,\n\t\t73, 68, 75, 49, 74, 212, 209, 87, 154, 82, 157, 163, 95, 200,\n\t\t39, 193, 58, 150, 149, 253, 8, 130, 214, 130, 71, 57, 254,\n\t\t39, 10, 165, 98, 197, 161, 176, 216, 156, 149, 98, 165, 42,\n\t\t165, 159, 33, 121, 79, 203, 113, 232, 11, 37, 132, 210, 216,\n\t\t128, 176, 186, 252, 179, 174, 58, 51, 161, 79, 92, 249, 71,\n\t\t161, 145, 78, 123, 33, 147, 77, 5, 85, 177, 93, 108, 32, 17,\n\t\t42, 180, 18, 125, 149, 248, 102, 152, 84, 52, 65, 70, 207,\n\t\t105, 112, 168, 14, 185, 57, 46, 99, 88, 102, 218, 252, 179,\n\t\t99, 207, 61, 139, 82, 167, 78, 71, 17, 95, 214, 10, 95, 70,\n\t\t134, 113, 109, 187, 213, 55, 114, 218, 227, 83, 253, 206,\n\t\t89, 41, 223, 206, 24, 166, 105, 155, 191, 185, 175, 185, 220,\n\t\t88, 187, 118, 51, 59, 209, 42, 41, 231, 241, 77, 176, 164,\n\t\t134, 29, 222, 112, 55, 100, 103, 8, 25, 122, 107, 143, 27,\n\t\t63, 163, 139, 222, 216, 46, 13, 126, 115, 44, 229, 252, 162,\n\t\t227, 10, 77, 57, 21, 162, 119, 207, 139, 93, 178, 216, 106,\n\t\t29, 220, 105, 90, 108, 98, 178, 170, 92, 189, 56, 105, 14,\n\t\t130, 165, 124, 33, 48, 222, 146, 135, 136, 201, 222, 252,\n\t\t56, 38, 217, 193, 158, 229, 56, 133, 197, 218, 178, 140, 244,\n\t\t84, 103, 233, 72, 43, 219, 121, 61, 68, 135, 151, 108, 61,\n\t\t89, 214, 244, 162, 131, 223, 201, 155, 178, 209, 104, 152,\n\t\t154, 6, 102, 179, 45, 49, 149, 188, 57, 178, 24, 82, 38, 195,\n\t\t42, 23, 191, 141, 196, 170, 169, 217, 190, 185, 146, 170,\n\t\t57, 168, 44, 235, 231, 42, 147, 4, 43, 183, 104, 72, 52, 61,\n\t\t209, 173, 121, 35, 168, 227, 201, 209, 82, 44, 67, 246, 84,\n\t\t137, 10, 142, 107, 57, 13, 245, 164, 65, 61, 189, 186, 72,\n\t\t164, 22, 206, 44, 155, 209, 82, 245, 160, 103, 105, 76, 130,\n\t\t66, 215, 166, 252, 105, 142, 164, 223, 227, 106, 159, 61,\n\t\t218, 213, 108, 53, 254, 69, 213, 172, 157, 45, 64, 83, 152,\n\t\t6, 102, 155, 103, 254, 127, 1, 76, 1, 179, 254, 172, 46, 144,\n\t\t87, 192, 30, 244, 174, 218, 131, 94, 18, 221, 130, 85, 195,\n\t\t214, 4, 238, 12, 71, 21, 179, 78, 109, 15, 197, 238, 66, 86,\n\t\t109, 236, 89, 91, 225, 76, 105, 101, 87, 186, 222, 75, 35,\n\t\t150, 166, 138, 180, 142, 156, 143, 23, 192, 217, 102, 232,\n\t\t44, 191, 123, 188, 60, 181, 118, 75, 51, 90, 230, 169, 159,\n\t\t28, 207, 120, 105, 213, 17, 21, 108, 155, 23, 124, 135, 22,\n\t\t152, 151, 30, 175, 182, 216, 86, 51, 82, 81, 168, 75, 57,\n\t\t179, 215, 197, 148, 66, 163, 236, 105, 56, 170, 75, 254, 216,\n\t\t117, 152, 8, 94, 121, 27, 28, 99, 202, 90, 195, 77, 181, 95,\n\t\t245, 250, 59, 156, 117, 210, 59, 126, 40, 235, 5, 125, 244,\n\t\t80, 186, 174, 186, 25, 21, 171, 246, 74, 160, 121, 20, 115,\n\t\t43, 7, 215, 165, 150, 157, 215, 196, 104, 183, 125, 86, 205,\n\t\t122, 224, 61, 26, 217, 249, 105, 159, 89, 45, 204, 251, 41,\n\t\t223, 217, 153, 47, 79, 236, 193, 228, 100, 165, 236, 204,\n\t\t235, 27, 183, 156, 41, 187, 129, 132, 122, 246, 89, 6, 110,\n\t\t240, 30, 242, 65, 76, 172, 24, 47, 162, 72, 207, 136, 153,\n\t\t161, 199, 254, 70, 213, 77, 108, 157, 100, 149, 176, 190,\n\t\t47, 142, 140, 157, 214, 131, 38, 99, 22, 161, 207, 54, 239,\n\t\t24, 89, 102, 53, 109, 236, 139, 219, 87, 215, 246, 167, 28,\n\t\t253, 134, 137, 139, 122, 83, 171, 202, 208, 13, 13, 49, 31,\n\t\t185, 137, 134, 77, 95, 176, 58, 203, 7, 126, 244, 11, 70,\n\t\t77, 216, 212, 109, 243, 190, 162, 189, 179, 162, 216, 26,\n\t\t109, 186, 230, 34, 37, 133, 176, 54, 138, 236, 245, 173, 151,\n\t\t53, 179, 186, 80, 243, 192, 61, 29, 221, 182, 143, 174, 92,\n\t\t160, 107, 85, 41, 174, 169, 111, 184, 189, 148, 255, 3, 92,\n\t\t36, 129, 118, 0, 0, 0, 1, 0, 0, 255, 255, 80, 75, 7, 8, 212,\n\t\t44, 149, 100, 149, 65, 0, 0, 164, 65, 0, 0, 80, 75, 3, 4,\n\t\t20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 29, 0, 9, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 114, 101, 103, 117, 108, 97, 114, 45,\n\t\t52, 48, 48, 46, 119, 111, 102, 102, 50, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 0, 240, 52, 15, 203, 119, 79, 70, 50, 0, 1, 0,\n\t\t0, 0, 0, 52, 240, 0, 13, 0, 0, 0, 0, 133, 44, 0, 0, 52, 149,\n\t\t1, 73, 186, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 63, 70, 70, 84, 77, 28, 26, 30, 6, 96, 0,\n\t\t135, 90, 17, 8, 10, 129, 221, 68, 129, 173, 81, 1, 54, 2,\n\t\t36, 3, 132, 84, 11, 130, 54, 0, 4, 32, 5, 138, 85, 7, 143,\n\t\t43, 27, 26, 107, 53, 227, 88, 139, 128, 243, 160, 128, 208,\n\t\t196, 15, 37, 138, 18, 78, 202, 206, 254, 255, 239, 73, 199,\n\t\t24, 142, 169, 3, 192, 172, 222, 141, 4, 151, 228, 36, 16,\n\t\t38, 11, 129, 202, 66, 239, 66, 85, 183, 201, 203, 147, 68,\n\t\t120, 144, 240, 29, 144, 81, 141, 184, 91, 153, 179, 68, 12,\n\t\t233, 228, 42, 91, 195, 247, 243, 254, 210, 6, 138, 222, 57,\n\t\t146, 52, 169, 79, 63, 45, 125, 86, 112, 145, 45, 159, 37,\n\t\t104, 86, 215, 103, 220, 92, 72, 38, 4, 19, 52, 172, 121, 141,\n\t\t38, 127, 63, 55, 11, 30, 84, 75, 61, 179, 124, 250, 33, 73,\n\t\t209, 132, 231, 113, 46, 223, 79, 210, 222, 141, 16, 21, 162,\n\t\t156, 28, 27, 157, 33, 216, 157, 26, 145, 157, 100, 161, 209,\n\t\t72, 64, 215, 225, 121, 183, 245, 88, 255, 127, 224, 195, 22,\n\t\t16, 76, 166, 138, 11, 52, 64, 27, 150, 40, 142, 13, 10, 56,\n\t\t22, 56, 66, 211, 58, 205, 84, 52, 43, 199, 194, 198, 169,\n\t\t141, 51, 211, 75, 236, 242, 154, 119, 141, 43, 47, 181, 187,\n\t\t230, 208, 186, 198, 242, 178, 181, 172, 91, 83, 162, 231,\n\t\t47, 54, 251, 254, 5, 20, 36, 22, 68, 156, 167, 89, 18, 65,\n\t\t198, 89, 70, 233, 73, 146, 44, 20, 253, 158, 27, 149, 36,\n\t\t106, 77, 137, 113, 119, 223, 191, 25, 10, 203, 154, 182, 180,\n\t\t213, 234, 141, 249, 249, 241, 125, 68, 136, 146, 51, 16, 46,\n\t\t129, 174, 161, 156, 90, 51, 215, 223, 76, 251, 19, 56, 73,\n\t\t225, 192, 24, 234, 46, 23, 8, 36, 77, 123, 249, 52, 245, 222,\n\t\t249, 181, 252, 248, 72, 95, 205, 151, 108, 171, 101, 219,\n\t\t178, 173, 64, 41, 13, 58, 46, 131, 96, 17, 116, 110, 197,\n\t\t42, 37, 102, 90, 213, 177, 185, 217, 224, 240, 251, 125, 186,\n\t\t181, 85, 249, 59, 178, 200, 4, 184, 139, 118, 167, 175, 167,\n\t\t232, 34, 19, 177, 89, 195, 16, 100, 232, 72, 15, 79, 55, 205,\n\t\t7, 135, 134, 129, 121, 230, 60, 129, 151, 48, 56, 47, 228,\n\t\t17, 7, 97, 253, 207, 145, 127, 127, 220, 110, 82, 225, 136,\n\t\t220, 61, 95, 32, 125, 199, 201, 63, 224, 20, 36, 10, 147,\n\t\t177, 51, 54, 77, 132, 43, 9, 133, 178, 66, 2, 73, 180, 208,\n\t\t173, 44, 7, 147, 103, 19, 38, 10, 126, 242, 234, 149, 105,\n\t\t81, 21, 207, 63, 216, 238, 239, 162, 77, 111, 110, 68, 146,\n\t\t82, 159, 210, 197, 100, 93, 4, 204, 191, 78, 171, 214, 158,\n\t\t185, 5, 4, 29, 150, 84, 47, 210, 235, 239, 245, 91, 148, 250,\n\t\t255, 75, 114, 190, 190, 100, 71, 118, 148, 68, 81, 200, 246,\n\t\t144, 227, 144, 12, 19, 240, 102, 158, 37, 43, 25, 217, 241,\n\t\t204, 115, 28, 24, 88, 96, 50, 36, 243, 226, 12, 173, 147,\n\t\t5, 166, 246, 136, 168, 232, 247, 93, 123, 93, 115, 69, 75,\n\t\t237, 21, 109, 115, 58, 166, 72, 180, 123, 118, 133, 0, 174,\n\t\t202, 142, 118, 144, 211, 186, 88, 55, 86, 53, 37, 122, 164,\n\t\t4, 33, 65, 172, 176, 219, 253, 115, 17, 207, 131, 154, 220,\n\t\t57, 133, 190, 162, 128, 0, 188, 89, 53, 163, 29, 70, 14, 132,\n\t\t145, 8, 98, 169, 80, 32, 30, 64, 33, 104, 118, 1, 49, 216,\n\t\t93, 1, 35, 239, 211, 197, 1, 25, 136, 13, 116, 131, 85, 254,\n\t\t72, 210, 2, 10, 71, 131, 205, 9, 36, 210, 93, 27, 153, 137,\n\t\t44, 4, 246, 29, 191, 11, 183, 19, 245, 113, 206, 21, 87, 43,\n\t\t66, 140, 52, 103, 8, 100, 170, 162, 134, 66, 42, 217, 175,\n\t\t158, 172, 253, 255, 247, 82, 225, 213, 81, 112, 129, 197,\n\t\t165, 120, 39, 0, 195, 69, 130, 12, 5, 11, 137, 32, 131, 79,\n\t\t40, 103, 57, 85, 172, 164, 129, 54, 58, 216, 196, 231, 56,\n\t\t217, 201, 89, 46, 48, 197, 91, 126, 225, 195, 207, 167, 124,\n\t\t221, 84, 25, 97, 148, 113, 38, 153, 98, 182, 139, 108, 115,\n\t\t131, 95, 121, 209, 171, 222, 245, 169, 111, 252, 221, 111,\n\t\t247, 98, 75, 44, 171, 156, 42, 91, 209, 218, 214, 55, 220,\n\t\t72, 99, 125, 215, 169, 110, 244, 176, 247, 7, 123, 228, 39,\n\t\t235, 12, 157, 235, 23, 253, 250, 234, 186, 191, 212, 21, 109,\n\t\t197, 214, 173, 127, 67, 59, 188, 163, 59, 181, 11, 127, 1,\n\t\t239, 155, 152, 27, 165, 29, 184, 206, 190, 227, 192, 231,\n\t\t15, 200, 203, 151, 168, 193, 44, 11, 109, 181, 251, 233, 160,\n\t\t78, 218, 163, 237, 166, 237, 150, 85, 187, 193, 145, 157,\n\t\t78, 54, 113, 80, 233, 159, 88, 187, 250, 125, 182, 29, 147,\n\t\t123, 189, 130, 255, 119, 164, 231, 185, 103, 30, 184, 226,\n\t\t188, 35, 6, 57, 109, 243, 185, 45, 54, 235, 242, 169, 22,\n\t\t43, 173, 96, 151, 41, 67, 184, 57, 2, 249, 147, 227, 160,\n\t\t163, 89, 126, 126, 245, 243, 159, 254, 228, 251, 255, 240,\n\t\t225, 247, 220, 245, 170, 87, 92, 190, 109, 235, 230, 141,\n\t\t235, 134, 109, 109, 54, 221, 94, 116, 187, 91, 125, 221, 190,\n\t\t246, 182, 167, 157, 109, 173, 187, 198, 150, 22, 19, 215,\n\t\t21, 157, 64, 135, 208, 34, 242, 101, 242, 0, 89, 70, 102,\n\t\t147, 113, 164, 25, 255, 157, 244, 129, 244, 132, 244, 136,\n\t\t116, 155, 20, 253, 122, 191, 248, 187, 8, 154, 196, 5, 133,\n\t\t149, 69, 141, 34, 125, 232, 63, 60, 108, 176, 140, 3, 166,\n\t\t210, 36, 224, 221, 184, 86, 223, 117, 228, 237, 128, 146,\n\t\t127, 184, 213, 40, 68, 205, 57, 13, 154, 81, 239, 61, 124,\n\t\t38, 105, 137, 237, 135, 42, 201, 249, 137, 52, 96, 76, 92,\n\t\t159, 27, 4, 94, 144, 6, 105, 213, 245, 18, 24, 14, 140, 194,\n\t\t164, 17, 139, 172, 110, 59, 23, 72, 139, 175, 162, 148, 105,\n\t\t226, 132, 228, 208, 227, 66, 226, 77, 229, 10, 83, 108, 33,\n\t\t57, 190, 12, 6, 63, 212, 178, 248, 136, 115, 30, 77, 38, 36,\n\t\t20, 141, 161, 98, 62, 241, 1, 174, 7, 131, 64, 92, 144, 179,\n\t\t116, 128, 225, 43, 76, 76, 123, 244, 221, 94, 172, 177, 217,\n\t\t134, 20, 224, 236, 125, 202, 74, 211, 91, 77, 118, 161, 224,\n\t\t145, 8, 252, 69, 224, 189, 196, 162, 136, 65, 54, 57, 86,\n\t\t136, 33, 34, 27, 69, 187, 99, 137, 7, 161, 137, 7, 51, 29,\n\t\t32, 146, 149, 2, 238, 247, 245, 65, 7, 120, 216, 224, 110,\n\t\t90, 99, 93, 107, 175, 50, 64, 161, 243, 180, 135, 71, 182,\n\t\t72, 238, 29, 243, 56, 102, 129, 84, 158, 59, 144, 20, 60,\n\t\t15, 161, 168, 234, 10, 198, 223, 141, 138, 83, 62, 182, 64,\n\t\t125, 69, 217, 250, 252, 174, 150, 93, 222, 235, 35, 92, 227,\n\t\t240, 148, 64, 195, 32, 152, 30, 105, 188, 15, 169, 237, 139,\n\t\t210, 1, 194, 143, 208, 126, 40, 117, 216, 41, 21, 212, 38,\n\t\t224, 119, 77, 45, 86, 157, 246, 54, 22, 14, 106, 179, 56,\n\t\t148, 78, 243, 67, 242, 174, 118, 186, 4, 149, 221, 76, 84,\n\t\t109, 232, 129, 144, 67, 74, 219, 94, 36, 12, 198, 168, 240,\n\t\t237, 184, 213, 200, 230, 190, 234, 190, 150, 163, 162, 56,\n\t\t251, 179, 33, 235, 151, 233, 240, 244, 195, 105, 33, 93, 14,\n\t\t158, 128, 73, 143, 43, 84, 1, 88, 180, 135, 114, 163, 22,\n\t\t139, 38, 214, 52, 128, 249, 15, 176, 238, 49, 183, 231, 39,\n\t\t10, 137, 79, 76, 221, 7, 42, 79, 37, 7, 200, 40, 135, 144,\n\t\t94, 233, 127, 57, 132, 146, 78, 136, 42, 35, 165, 43, 108,\n\t\t49, 179, 175, 216, 229, 214, 152, 41, 201, 168, 226, 72, 40,\n\t\t68, 120, 192, 133, 4, 140, 47, 140, 138, 26, 153, 216, 87,\n\t\t119, 89, 10, 77, 23, 106, 114, 143, 181, 65, 197, 152, 92,\n\t\t69, 215, 39, 235, 83, 180, 98, 172, 72, 187, 162, 38, 136,\n\t\t200, 219, 245, 34, 150, 214, 37, 228, 89, 163, 83, 50, 134,\n\t\t57, 116, 8, 185, 241, 155, 60, 129, 29, 197, 77, 64, 152,\n\t\t242, 144, 200, 221, 38, 198, 8, 62, 75, 30, 251, 128, 23,\n\t\t244, 254, 13, 131, 39, 169, 0, 27, 124, 47, 141, 169, 157,\n\t\t201, 30, 206, 70, 97, 222, 96, 174, 102, 181, 227, 100, 125,\n\t\t55, 218, 216, 77, 204, 192, 217, 212, 14, 243, 27, 242, 81,\n\t\t136, 243, 11, 118, 193, 228, 250, 215, 245, 179, 138, 97,\n\t\t86, 154, 89, 203, 168, 181, 251, 136, 37, 206, 231, 8, 241,\n\t\t104, 143, 105, 246, 115, 105, 25, 134, 105, 16, 179, 72, 35,\n\t\t144, 221, 68, 53, 219, 208, 144, 96, 221, 167, 15, 77, 136,\n\t\t55, 136, 247, 16, 31, 32, 190, 2, 37, 140, 157, 132, 70, 118,\n\t\t236, 190, 178, 95, 211, 183, 206, 247, 79, 56, 244, 239, 252,\n\t\t45, 77, 156, 64, 104, 143, 90, 34, 153, 13, 79, 8, 50, 185,\n\t\t146, 103, 37, 218, 2, 131, 157, 166, 66, 128, 239, 83, 27,\n\t\t96, 32, 32, 18, 247, 96, 64, 206, 184, 233, 64, 87, 27, 218,\n\t\t77, 183, 237, 4, 57, 24, 160, 114, 74, 148, 248, 179, 32,\n\t\t59, 253, 12, 49, 70, 220, 3, 6, 70, 63, 67, 1, 171, 23, 16,\n\t\t65, 166, 222, 234, 177, 1, 101, 26, 43, 50, 225, 231, 72,\n\t\t101, 13, 120, 138, 121, 176, 10, 227, 233, 12, 49, 88, 35,\n\t\t237, 82, 64, 245, 155, 90, 217, 117, 54, 225, 205, 89, 221,\n\t\t72, 162, 139, 9, 250, 1, 201, 155, 8, 210, 186, 27, 149, 51,\n\t\t6, 121, 110, 12, 228, 147, 186, 253, 182, 44, 5, 180, 176,\n\t\t177, 101, 27, 199, 12, 131, 140, 108, 18, 74, 254, 232, 128,\n\t\t108, 166, 186, 226, 145, 163, 105, 106, 181, 99, 71, 98, 239,\n\t\t126, 161, 31, 63, 182, 247, 128, 84, 143, 30, 175, 46, 112,\n\t\t58, 252, 59, 13, 142, 104, 35, 119, 112, 197, 96, 154, 21,\n\t\t9, 4, 48, 230, 211, 110, 55, 107, 53, 208, 0, 90, 131, 231,\n\t\t75, 93, 110, 98, 32, 26, 136, 53, 166, 112, 239, 184, 139,\n\t\t245, 58, 172, 61, 244, 54, 37, 132, 206, 177, 186, 16, 154,\n\t\t28, 229, 182, 18, 214, 148, 38, 126, 79, 56, 122, 34, 225,\n\t\t128, 65, 19, 18, 115, 206, 101, 140, 71, 209, 167, 28, 80,\n\t\t20, 102, 138, 246, 149, 72, 160, 209, 37, 150, 58, 186, 243,\n\t\t70, 43, 12, 246, 214, 178, 146, 184, 233, 77, 141, 43, 69,\n\t\t239, 178, 200, 59, 54, 184, 46, 88, 29, 199, 39, 104, 110,\n\t\t227, 163, 16, 108, 241, 90, 100, 114, 245, 218, 230, 96, 20,\n\t\t145, 86, 61, 3, 200, 38, 109, 156, 9, 166, 123, 72, 54, 93,\n\t\t116, 210, 46, 43, 49, 184, 57, 80, 17, 181, 78, 44, 169, 243,\n\t\t128, 27, 53, 145, 130, 248, 17, 28, 167, 170, 75, 111, 178,\n\t\t239, 13, 132, 217, 92, 5, 129, 141, 133, 84, 57, 229, 15,\n\t\t228, 50, 83, 210, 63, 96, 223, 132, 144, 122, 244, 36, 116,\n\t\t106, 199, 80, 126, 68, 175, 166, 140, 114, 48, 94, 101, 157,\n\t\t27, 116, 26, 20, 15, 55, 6, 228, 107, 22, 252, 31, 89, 186,\n\t\t81, 108, 242, 11, 74, 28, 226, 50, 136, 195, 15, 42, 196,\n\t\t22, 49, 60, 25, 82, 182, 177, 28, 99, 26, 143, 120, 139, 171,\n\t\t188, 140, 120, 168, 134, 24, 15, 11, 237, 89, 21, 212, 96,\n\t\t245, 226, 208, 92, 69, 52, 20, 69, 192, 233, 76, 29, 87, 198,\n\t\t86, 200, 197, 20, 63, 55, 26, 64, 188, 217, 197, 237, 75,\n\t\t10, 195, 29, 175, 177, 114, 185, 76, 61, 35, 180, 222, 34,\n\t\t24, 246, 110, 156, 70, 252, 163, 251, 119, 231, 98, 138, 157,\n\t\t57, 123, 225, 66, 248, 42, 188, 119, 239, 230, 13, 165, 246,\n\t\t96, 241, 82, 159, 60, 127, 238, 242, 229, 228, 109, 242, 240,\n\t\t225, 212, 180, 238, 155, 222, 98, 186, 118, 239, 193, 189,\n\t\t144, 191, 170, 23, 46, 94, 72, 149, 59, 57, 57, 61, 69, 31,\n\t\t190, 28, 232, 38, 151, 47, 93, 142, 43, 76, 185, 17, 46, 103,\n\t\t172, 33, 244, 203, 201, 110, 249, 53, 173, 87, 62, 124, 39,\n\t\t9, 106, 164, 5, 89, 208, 106, 100, 226, 50, 182, 173, 166,\n\t\t107, 249, 124, 68, 105, 12, 58, 145, 254, 235, 68, 117, 245,\n\t\t148, 177, 172, 59, 9, 235, 244, 187, 211, 198, 117, 222, 82,\n\t\t175, 129, 114, 179, 134, 124, 84, 206, 230, 207, 188, 66,\n\t\t239, 192, 5, 54, 76, 138, 218, 239, 13, 135, 233, 0, 12, 116,\n\t\t57, 233, 5, 88, 207, 1, 197, 164, 1, 68, 27, 57, 38, 33, 16,\n\t\t203, 101, 165, 156, 31, 75, 131, 250, 236, 44, 14, 253, 91,\n\t\t122, 154, 60, 175, 133, 142, 112, 153, 205, 41, 196, 91, 28,\n\t\t19, 196, 75, 172, 86, 101, 92, 229, 5, 216, 194, 33, 19, 129,\n\t\t11, 168, 113, 106, 200, 13, 109, 205, 155, 149, 237, 85, 66,\n\t\t211, 165, 205, 118, 248, 189, 27, 207, 170, 172, 162, 94,\n\t\t192, 161, 36, 7, 27, 195, 237, 94, 81, 173, 34, 2, 227, 96,\n\t\t33, 35, 249, 149, 177, 34, 157, 145, 231, 82, 154, 29, 7,\n\t\t113, 117, 186, 48, 245, 26, 100, 135, 46, 176, 157, 172, 240,\n\t\t221, 117, 232, 244, 195, 182, 38, 26, 84, 170, 16, 163, 182,\n\t\t144, 74, 156, 54, 98, 19, 228, 206, 49, 187, 107, 245, 186,\n\t\t90, 47, 204, 246, 96, 47, 129, 134, 29, 162, 161, 136, 155,\n\t\t74, 196, 185, 183, 233, 190, 129, 54, 34, 222, 153, 3, 104,\n\t\t74, 186, 172, 131, 6, 104, 83, 157, 192, 94, 238, 85, 128,\n\t\t29, 217, 154, 87, 31, 52, 63, 98, 138, 46, 109, 162, 161,\n\t\t101, 60, 159, 214, 185, 175, 223, 135, 134, 184, 23, 149,\n\t\t215, 52, 211, 108, 58, 137, 133, 53, 143, 211, 208, 250, 158,\n\t\t171, 95, 184, 37, 46, 87, 193, 171, 239, 24, 123, 168, 169,\n\t\t253, 39, 40, 52, 193, 5, 159, 219, 145, 119, 67, 209, 183,\n\t\t64, 104, 155, 4, 242, 148, 60, 110, 230, 212, 170, 6, 74,\n\t\t177, 69, 177, 26, 205, 26, 54, 76, 130, 175, 234, 111, 122,\n\t\t109, 191, 114, 223, 56, 17, 13, 156, 182, 219, 180, 167, 105,\n\t\t67, 114, 217, 71, 75, 211, 59, 211, 110, 241, 58, 150, 47,\n\t\t3, 248, 237, 234, 169, 101, 246, 214, 96, 205, 50, 149, 231,\n\t\t54, 26, 162, 173, 197, 235, 70, 40, 183, 25, 226, 2, 192,\n\t\t92, 33, 239, 208, 19, 48, 210, 160, 12, 102, 95, 158, 54,\n\t\t44, 70, 104, 4, 108, 97, 87, 82, 200, 209, 175, 111, 159,\n\t\t132, 136, 223, 242, 2, 67, 183, 223, 229, 96, 153, 38, 218,\n\t\t90, 237, 214, 39, 69, 222, 97, 55, 17, 162, 66, 186, 20, 36,\n\t\t1, 190, 221, 16, 65, 45, 43, 83, 207, 35, 61, 208, 82, 249,\n\t\t169, 101, 116, 4, 14, 80, 252, 248, 22, 114, 23, 97, 12, 100,\n\t\t88, 32, 8, 38, 22, 12, 137, 67, 208, 198, 56, 222, 168, 174,\n\t\t5, 245, 12, 1, 133, 3, 32, 224, 102, 254, 8, 157, 198, 123,\n\t\t25, 149, 163, 207, 91, 144, 225, 225, 6, 29, 183, 181, 113,\n\t\t108, 43, 104, 4, 148, 151, 109, 121, 108, 88, 14, 232, 76,\n\t\t65, 202, 6, 96, 82, 46, 127, 89, 108, 26, 79, 117, 12, 223,\n\t\t73, 210, 50, 27, 90, 118, 116, 253, 170, 50, 164, 207, 43,\n\t\t202, 45, 119, 155, 240, 100, 93, 237, 80, 167, 28, 145, 253,\n\t\t218, 10, 233, 86, 94, 86, 88, 67, 107, 187, 121, 86, 19, 85,\n\t\t125, 73, 204, 242, 187, 170, 78, 225, 72, 252, 172, 106, 196,\n\t\t199, 58, 157, 211, 100, 196, 212, 243, 128, 231, 1, 175, 1,\n\t\t13, 194, 20, 89, 51, 172, 170, 134, 20, 12, 54, 6, 184, 208,\n\t\t246, 220, 86, 12, 38, 214, 126, 248, 234, 175, 104, 80, 19,\n\t\t250, 11, 71, 176, 124, 236, 146, 186, 97, 186, 196, 140, 219,\n\t\t12, 240, 55, 185, 231, 38, 234, 10, 252, 235, 80, 238, 101,\n\t\t243, 9, 180, 79, 111, 237, 158, 202, 179, 254, 185, 24, 98,\n\t\t243, 228, 254, 105, 2, 241, 180, 112, 130, 88, 128, 55, 94,\n\t\t123, 204, 140, 1, 7, 171, 231, 60, 80, 185, 74, 211, 211,\n\t\t57, 83, 234, 124, 16, 138, 135, 162, 212, 210, 91, 54, 92,\n\t\t13, 52, 148, 100, 43, 254, 96, 30, 209, 214, 137, 212, 163,\n\t\t102, 156, 173, 245, 93, 161, 54, 16, 44, 14, 103, 164, 178,\n\t\t152, 14, 111, 17, 81, 248, 113, 142, 85, 147, 179, 204, 214,\n\t\t17, 8, 107, 136, 182, 116, 75, 91, 35, 32, 178, 69, 132, 105,\n\t\t129, 205, 101, 85, 227, 209, 177, 167, 162, 209, 76, 225,\n\t\t36, 101, 239, 188, 141, 91, 32, 182, 198, 223, 140, 220, 159,\n\t\t77, 157, 205, 151, 199, 30, 33, 186, 136, 241, 28, 26, 107,\n\t\t20, 169, 215, 28, 76, 234, 242, 242, 36, 166, 92, 36, 133,\n\t\t255, 37, 6, 205, 169, 162, 30, 85, 178, 93, 47, 45, 170, 162,\n\t\t129, 198, 80, 97, 99, 205, 38, 242, 164, 104, 53, 215, 146,\n\t\t231, 127, 233, 135, 23, 43, 192, 43, 228, 231, 171, 202, 137,\n\t\t75, 154, 184, 163, 81, 188, 192, 124, 130, 69, 3, 15, 174,\n\t\t104, 45, 175, 252, 130, 177, 3, 204, 30, 165, 254, 50, 80,\n\t\t69, 243, 57, 237, 80, 42, 65, 206, 16, 165, 80, 231, 182,\n\t\t202, 35, 213, 120, 102, 18, 226, 26, 236, 235, 118, 250, 128,\n\t\t89, 81, 88, 214, 218, 82, 118, 123, 183, 177, 10, 249, 14,\n\t\t53, 156, 220, 97, 171, 26, 100, 204, 237, 162, 194, 222, 91,\n\t\t137, 223, 74, 45, 32, 22, 49, 44, 39, 166, 204, 64, 195, 21,\n\t\t67, 116, 104, 215, 89, 116, 23, 236, 209, 10, 58, 29, 172,\n\t\t76, 125, 252, 76, 186, 121, 11, 136, 118, 79, 223, 206, 47,\n\t\t132, 255, 229, 100, 87, 131, 149, 172, 14, 99, 136, 100, 125,\n\t\t163, 4, 134, 234, 119, 138, 137, 228, 197, 40, 254, 205, 0,\n\t\t139, 191, 85, 150, 91, 42, 162, 29, 123, 193, 93, 116, 70,\n\t\t192, 51, 254, 57, 144, 160, 154, 186, 129, 210, 37, 56, 174,\n\t\t29, 252, 22, 103, 230, 237, 103, 123, 66, 222, 250, 119, 6,\n\t\t111, 189, 183, 250, 92, 159, 156, 234, 225, 203, 43, 153,\n\t\t135, 134, 45, 61, 189, 73, 92, 187, 162, 74, 199, 152, 215,\n\t\t27, 189, 103, 76, 217, 72, 243, 186, 30, 88, 76, 139, 197,\n\t\t57, 120, 13, 2, 84, 87, 93, 217, 219, 242, 225, 67, 18, 151,\n\t\t10, 154, 151, 14, 35, 34, 64, 117, 200, 224, 218, 81, 109,\n\t\t27, 206, 68, 250, 247, 145, 148, 43, 183, 82, 38, 247, 137,\n\t\t247, 202, 249, 9, 64, 185, 96, 45, 174, 149, 202, 144, 183,\n\t\t90, 226, 44, 34, 100, 4, 59, 64, 153, 237, 100, 215, 165,\n\t\t49, 110, 130, 107, 215, 168, 144, 187, 101, 69, 167, 134,\n\t\t2, 136, 113, 118, 222, 17, 156, 188, 0, 183, 43, 1, 252, 144,\n\t\t221, 138, 107, 203, 96, 123, 186, 223, 201, 205, 115, 49,\n\t\t121, 185, 137, 56, 209, 71, 96, 164, 80, 72, 125, 8, 33, 92,\n\t\t198, 0, 95, 250, 19, 249, 124, 155, 105, 155, 24, 242, 239,\n\t\t33, 55, 103, 14, 166, 116, 52, 225, 249, 106, 203, 206, 179,\n\t\t70, 53, 247, 110, 178, 172, 131, 236, 154, 118, 140, 173,\n\t\t39, 68, 238, 83, 168, 29, 147, 222, 96, 218, 78, 57, 87, 214,\n\t\t100, 66, 205, 37, 131, 225, 248, 108, 149, 23, 76, 232, 117,\n\t\t115, 69, 252, 107, 131, 66, 95, 255, 171, 108, 29, 115, 106,\n\t\t150, 174, 63, 246, 104, 95, 210, 146, 238, 103, 135, 154,\n\t\t147, 206, 240, 145, 171, 239, 88, 115, 238, 154, 163, 79,\n\t\t247, 26, 99, 246, 208, 241, 107, 239, 151, 252, 231, 169,\n\t\t19, 229, 116, 200, 160, 169, 78, 121, 163, 13, 173, 107, 92,\n\t\t202, 153, 219, 63, 50, 71, 78, 153, 4, 110, 11, 150, 162,\n\t\t208, 184, 129, 24, 91, 113, 66, 4, 225, 199, 46, 50, 164,\n\t\t62, 185, 106, 147, 97, 108, 37, 119, 246, 173, 1, 7, 137,\n\t\t245, 104, 203, 191, 204, 195, 112, 115, 187, 101, 109, 184,\n\t\t184, 213, 124, 188, 127, 245, 54, 116, 235, 107, 202, 167,\n\t\t118, 38, 44, 74, 37, 5, 230, 0, 111, 218, 20, 154, 31, 17,\n\t\t163, 36, 133, 222, 92, 176, 3, 97, 27, 77, 208, 74, 158, 7,\n\t\t132, 7, 4, 129, 79, 185, 162, 48, 17, 18, 76, 124, 234, 73,\n\t\t188, 136, 34, 196, 53, 125, 106, 210, 243, 206, 195, 235,\n\t\t159, 137, 155, 95, 23, 124, 204, 60, 169, 43, 14, 85, 183,\n\t\t228, 4, 203, 148, 189, 217, 84, 56, 148, 88, 64, 140, 33,\n\t\t238, 190, 196, 218, 200, 129, 169, 79, 107, 35, 82, 41, 205,\n\t\t109, 172, 1, 201, 233, 90, 250, 128, 107, 4, 229, 23, 219,\n\t\t12, 223, 64, 36, 81, 129, 123, 12, 62, 2, 30, 15, 144, 142,\n\t\t196, 70, 203, 149, 80, 78, 161, 165, 78, 169, 165, 74, 177,\n\t\t115, 89, 106, 3, 199, 64, 88, 125, 84, 178, 249, 143, 249,\n\t\t158, 206, 165, 11, 103, 182, 229, 234, 124, 138, 115, 29,\n\t\t106, 129, 176, 22, 186, 209, 25, 210, 35, 148, 162, 58, 128,\n\t\t27, 60, 29, 238, 44, 24, 209, 113, 3, 84, 74, 96, 27, 56,\n\t\t132, 158, 202, 177, 166, 197, 30, 152, 16, 192, 12, 70, 37,\n\t\t246, 159, 186, 37, 231, 163, 184, 234, 141, 244, 248, 40,\n\t\t30, 83, 71, 130, 131, 160, 157, 165, 153, 37, 229, 114, 57,\n\t\t139, 39, 206, 102, 229, 1, 222, 18, 14, 226, 24, 247, 54,\n\t\t59, 92, 51, 27, 69, 40, 212, 233, 0, 228, 1, 240, 31, 76,\n\t\t150, 132, 230, 39, 164, 1, 30, 152, 121, 232, 69, 239, 233,\n\t\t8, 100, 167, 12, 38, 134, 16, 236, 190, 105, 194, 17, 154,\n\t\t181, 8, 13, 47, 63, 60, 159, 172, 13, 104, 193, 191, 111,\n\t\t66, 52, 106, 141, 54, 169, 161, 36, 73, 248, 210, 68, 77,\n\t\t27, 171, 5, 179, 149, 237, 136, 62, 34, 75, 126, 39, 52, 92,\n\t\t155, 104, 53, 171, 122, 57, 23, 124, 24, 198, 173, 154, 153,\n\t\t76, 134, 252, 231, 96, 250, 26, 191, 192, 53, 217, 226, 69,\n\t\t18, 140, 217, 170, 137, 139, 103, 186, 119, 250, 196, 68,\n\t\t31, 114, 23, 157, 46, 110, 173, 198, 181, 235, 79, 51, 230,\n\t\t221, 189, 230, 44, 200, 30, 75, 27, 12, 117, 88, 58, 145,\n\t\t208, 160, 89, 2, 106, 250, 90, 141, 84, 57, 195, 85, 147,\n\t\t15, 50, 203, 21, 173, 67, 252, 11, 24, 245, 252, 188, 5, 66,\n\t\t214, 9, 20, 52, 146, 105, 249, 133, 27, 182, 112, 180, 141,\n\t\t134, 78, 66, 244, 254, 150, 106, 246, 99, 90, 56, 212, 74,\n\t\t189, 195, 82, 71, 154, 130, 2, 240, 29, 120, 156, 30, 105,\n\t\t95, 26, 8, 30, 22, 172, 234, 221, 156, 55, 153, 243, 103,\n\t\t123, 76, 226, 205, 107, 216, 220, 244, 118, 222, 243, 85,\n\t\t5, 132, 16, 33, 78, 141, 32, 133, 247, 42, 81, 35, 91, 188,\n\t\t120, 214, 11, 151, 77, 65, 252, 165, 70, 45, 200, 106, 198,\n\t\t6, 54, 38, 216, 152, 213, 47, 74, 211, 207, 253, 218, 164,\n\t\t60, 227, 236, 207, 223, 252, 93, 218, 1, 77, 23, 252, 169,\n\t\t83, 162, 86, 118, 231, 196, 168, 64, 69, 154, 96, 28, 55,\n\t\t54, 202, 111, 171, 169, 88, 97, 140, 83, 17, 125, 141, 14,\n\t\t188, 206, 80, 244, 167, 198, 19, 162, 12, 91, 215, 88, 160,\n\t\t147, 92, 207, 249, 83, 173, 30, 211, 74, 206, 232, 253, 217,\n\t\t122, 5, 83, 104, 107, 50, 120, 201, 145, 116, 99, 8, 147,\n\t\t185, 141, 142, 20, 136, 194, 124, 254, 1, 214, 240, 67, 20,\n\t\t66, 52, 144, 39, 153, 205, 172, 70, 204, 156, 196, 96, 214,\n\t\t121, 58, 69, 45, 37, 86, 52, 152, 3, 226, 125, 96, 196, 29,\n\t\t135, 84, 242, 190, 141, 12, 53, 66, 149, 7, 140, 224, 89,\n\t\t35, 96, 5, 41, 115, 16, 214, 207, 156, 68, 158, 250, 71, 187,\n\t\t228, 30, 193, 213, 198, 168, 2, 40, 63, 164, 29, 167, 219,\n\t\t46, 32, 87, 161, 57, 17, 227, 187, 146, 32, 22, 99, 204, 198,\n\t\t55, 131, 227, 72, 69, 199, 84, 33, 107, 68, 220, 83, 25, 239,\n\t\t169, 254, 22, 190, 82, 153, 86, 222, 175, 113, 246, 181, 228,\n\t\t99, 41, 47, 184, 145, 109, 34, 134, 255, 65, 191, 133, 74,\n\t\t181, 174, 138, 155, 214, 213, 153, 63, 248, 241, 210, 82,\n\t\t179, 148, 230, 141, 134, 214, 190, 60, 176, 25, 185, 12, 173,\n\t\t140, 202, 106, 249, 180, 222, 183, 150, 235, 171, 11, 92,\n\t\t39, 208, 215, 4, 114, 102, 217, 103, 171, 220, 103, 46, 250,\n\t\t168, 92, 81, 76, 174, 70, 238, 51, 75, 117, 100, 106, 114,\n\t\t93, 34, 125, 169, 237, 169, 164, 117, 46, 224, 117, 53, 58,\n\t\t137, 226, 90, 124, 200, 109, 139, 134, 91, 99, 77, 244, 177,\n\t\t157, 230, 192, 141, 44, 174, 60, 83, 88, 205, 233, 41, 32,\n\t\t53, 72, 17, 113, 72, 232, 125, 82, 125, 174, 82, 93, 9, 47,\n\t\t7, 117, 186, 60, 76, 230, 54, 72, 142, 171, 1, 147, 46, 0,\n\t\t35, 88, 188, 252, 55, 220, 229, 167, 29, 219, 64, 133, 210,\n\t\t197, 10, 196, 237, 227, 54, 114, 118, 54, 67, 207, 164, 79,\n\t\t243, 182, 147, 214, 89, 12, 51, 207, 84, 191, 84, 67, 174,\n\t\t184, 36, 189, 135, 39, 62, 170, 33, 126, 206, 141, 193, 226,\n\t\t93, 149, 203, 205, 183, 245, 46, 214, 20, 157, 198, 114, 48,\n\t\t217, 81, 29, 144, 80, 35, 44, 213, 207, 105, 24, 26, 147,\n\t\t29, 35, 238, 200, 204, 128, 139, 192, 56, 33, 72, 63, 170,\n\t\t52, 26, 253, 96, 114, 119, 164, 118, 147, 154, 2, 135, 117,\n\t\t253, 146, 186, 129, 249, 65, 69, 206, 85, 5, 214, 173, 224,\n\t\t140, 221, 194, 132, 102, 89, 96, 245, 211, 213, 95, 67, 11,\n\t\t94, 25, 53, 77, 56, 250, 113, 184, 97, 176, 135, 87, 232,\n\t\t171, 214, 56, 194, 26, 223, 137, 63, 122, 137, 209, 165, 84,\n\t\t77, 98, 25, 159, 187, 74, 253, 227, 117, 138, 186, 118, 229,\n\t\t34, 70, 151, 92, 53, 77, 184, 182, 112, 21, 32, 147, 12, 212,\n\t\t199, 150, 35, 160, 16, 121, 247, 114, 101, 249, 122, 91, 224,\n\t\t211, 179, 230, 195, 184, 96, 214, 86, 61, 38, 25, 156, 145,\n\t\t41, 31, 20, 51, 239, 220, 193, 184, 142, 141, 163, 13, 213,\n\t\t221, 149, 126, 192, 121, 185, 186, 213, 202, 227, 254, 9,\n\t\t57, 79, 230, 177, 14, 165, 201, 61, 26, 88, 229, 86, 151,\n\t\t70, 208, 118, 150, 62, 178, 1, 230, 43, 215, 113, 228, 50,\n\t\t186, 113, 82, 215, 112, 132, 64, 93, 252, 180, 168, 203, 159,\n\t\t92, 2, 160, 53, 161, 252, 114, 18, 136, 227, 20, 23, 42, 142,\n\t\t111, 252, 187, 26, 186, 191, 155, 214, 71, 148, 180, 25, 78,\n\t\t206, 133, 54, 13, 113, 136, 96, 128, 56, 167, 174, 128, 97,\n\t\t113, 114, 128, 248, 157, 232, 43, 24, 9, 224, 20, 31, 48,\n\t\t48, 119, 137, 58, 109, 249, 132, 185, 218, 255, 127, 221,\n\t\t1, 124, 132, 90, 124, 108, 224, 14, 109, 224, 98, 152, 22,\n\t\t110, 171, 129, 160, 255, 177, 109, 49, 33, 144, 31, 87, 73,\n\t\t69, 97, 128, 170, 114, 44, 93, 45, 40, 139, 32, 97, 131, 19,\n\t\t95, 189, 79, 32, 23, 97, 61, 44, 160, 164, 14, 88, 209, 45,\n\t\t169, 213, 210, 181, 58, 177, 56, 21, 157, 225, 117, 41, 196,\n\t\t157, 50, 134, 57, 157, 252, 187, 34, 177, 97, 179, 140, 53,\n\t\t129, 45, 132, 206, 246, 240, 202, 12, 83, 118, 145, 66, 151,\n\t\t129, 239, 105, 37, 9, 221, 168, 84, 228, 73, 18, 122, 64,\n\t\t232, 89, 81, 245, 252, 60, 44, 82, 81, 202, 73, 165, 172,\n\t\t164, 57, 248, 233, 103, 175, 144, 212, 197, 216, 151, 242,\n\t\t153, 171, 245, 231, 153, 43, 28, 125, 160, 95, 56, 146, 170,\n\t\t133, 1, 73, 185, 173, 228, 51, 202, 92, 6, 181, 205, 197,\n\t\t80, 101, 97, 156, 30, 214, 136, 3, 48, 119, 151, 122, 85,\n\t\t133, 19, 27, 172, 172, 75, 195, 161, 78, 217, 105, 156, 44,\n\t\t182, 118, 187, 168, 38, 149, 127, 142, 18, 229, 129, 187,\n\t\t99, 178, 68, 158, 158, 86, 92, 254, 15, 140, 211, 36, 33,\n\t\t217, 163, 55, 199, 11, 134, 200, 64, 111, 248, 230, 66, 119,\n\t\t85, 66, 114, 113, 214, 2, 121, 34, 162, 95, 54, 201, 149,\n\t\t51, 33, 226, 147, 197, 94, 33, 213, 41, 26, 71, 227, 38, 76,\n\t\t179, 113, 227, 231, 251, 36, 85, 43, 43, 206, 152, 111, 131,\n\t\t199, 193, 168, 110, 188, 114, 210, 175, 72, 10, 89, 66, 151,\n\t\t158, 39, 37, 86, 39, 219, 218, 222, 170, 155, 74, 49, 50,\n\t\t79, 234, 126, 244, 252, 219, 157, 128, 32, 82, 141, 232, 150,\n\t\t195, 29, 249, 216, 31, 103, 98, 45, 106, 46, 234, 201, 89,\n\t\t208, 84, 35, 177, 14, 150, 83, 79, 80, 99, 108, 131, 232,\n\t\t165, 191, 217, 209, 135, 102, 16, 215, 222, 150, 37, 170,\n\t\t186, 244, 85, 245, 196, 115, 37, 40, 38, 117, 16, 193, 68,\n\t\t75, 160, 203, 58, 255, 89, 193, 185, 36, 177, 78, 221, 56,\n\t\t47, 189, 66, 223, 188, 233, 238, 53, 185, 173, 180, 118, 183,\n\t\t112, 32, 65, 203, 149, 13, 27, 57, 35, 246, 94, 192, 48, 207,\n\t\t220, 69, 71, 15, 182, 215, 210, 113, 114, 60, 193, 218, 91,\n\t\t78, 205, 33, 30, 89, 8, 139, 126, 46, 10, 143, 132, 136, 235,\n\t\t188, 190, 89, 172, 227, 47, 19, 139, 9, 61, 25, 144, 180,\n\t\t99, 43, 205, 95, 56, 135, 238, 155, 180, 127, 239, 106, 30,\n\t\t234, 126, 87, 3, 21, 239, 115, 245, 95, 59, 87, 95, 245, 70,\n\t\t119, 181, 148, 106, 43, 124, 21, 246, 11, 169, 207, 127, 95,\n\t\t70, 110, 107, 149, 13, 254, 227, 242, 228, 123, 232, 192,\n\t\t4, 249, 21, 156, 105, 217, 52, 19, 197, 23, 102, 108, 213,\n\t\t237, 232, 18, 221, 227, 83, 110, 47, 184, 90, 219, 10, 230,\n\t\t97, 71, 70, 37, 115, 43, 116, 227, 109, 126, 223, 213, 136,\n\t\t38, 167, 197, 7, 151, 147, 132, 70, 209, 191, 110, 42, 113,\n\t\t236, 134, 81, 100, 168, 232, 140, 71, 131, 198, 229, 195,\n\t\t197, 251, 174, 143, 194, 75, 83, 77, 81, 152, 171, 105, 162,\n\t\t161, 164, 129, 221, 193, 10, 130, 204, 211, 132, 99, 184,\n\t\t130, 104, 175, 128, 246, 166, 102, 92, 84, 57, 15, 236, 24,\n\t\t198, 22, 91, 48, 194, 247, 197, 69, 180, 194, 19, 12, 53,\n\t\t63, 83, 168, 23, 28, 161, 245, 150, 10, 103, 167, 200, 155,\n\t\t79, 64, 98, 113, 69, 157, 226, 111, 156, 41, 123, 97, 211,\n\t\t76, 54, 139, 49, 245, 119, 21, 147, 237, 118, 233, 101, 127,\n\t\t48, 5, 204, 164, 81, 21, 137, 206, 249, 78, 54, 43, 156, 171,\n\t\t87, 151, 42, 231, 64, 13, 61, 109, 240, 59, 30, 41, 3, 167,\n\t\t93, 74, 108, 185, 24, 86, 255, 37, 35, 1, 167, 72, 2, 24,\n\t\t177, 87, 116, 60, 11, 59, 9, 113, 160, 89, 229, 227, 108,\n\t\t147, 56, 181, 190, 166, 59, 90, 145, 179, 65, 41, 180, 120,\n\t\t190, 238, 183, 154, 100, 68, 221, 56, 171, 206, 160, 70, 31,\n\t\t27, 1, 131, 2, 77, 154, 135, 200, 38, 59, 194, 56, 72, 248,\n\t\t115, 228, 140, 48, 169, 3, 125, 179, 40, 88, 192, 117, 74,\n\t\t236, 48, 213, 247, 241, 150, 13, 86, 85, 217, 31, 253, 240,\n\t\t232, 26, 169, 47, 25, 146, 143, 32, 30, 232, 87, 132, 6, 21,\n\t\t106, 20, 50, 72, 104, 28, 225, 52, 81, 221, 19, 209, 175,\n\t\t185, 16, 89, 222, 149, 218, 166, 215, 128, 23, 235, 149, 25,\n\t\t118, 203, 56, 225, 90, 30, 125, 91, 79, 125, 71, 33, 36, 111,\n\t\t8, 116, 160, 204, 61, 249, 39, 236, 176, 216, 82, 38, 213,\n\t\t214, 12, 109, 117, 17, 162, 143, 162, 73, 21, 119, 29, 206,\n\t\t49, 164, 122, 155, 218, 27, 123, 74, 85, 236, 182, 28, 196,\n\t\t194, 33, 43, 84, 221, 132, 162, 12, 170, 81, 88, 54, 73, 134,\n\t\t116, 57, 1, 91, 19, 15, 3, 214, 112, 228, 51, 67, 26, 225,\n\t\t205, 59, 118, 211, 253, 128, 9, 161, 247, 205, 100, 224, 98,\n\t\t253, 66, 174, 201, 37, 113, 239, 215, 7, 103, 252, 102, 108,\n\t\t44, 115, 237, 117, 73, 226, 26, 23, 126, 81, 137, 244, 246,\n\t\t70, 78, 214, 163, 171, 105, 129, 119, 146, 8, 199, 36, 146,\n\t\t99, 117, 71, 239, 4, 166, 93, 221, 127, 80, 42, 5, 52, 86,\n\t\t224, 145, 201, 197, 54, 94, 183, 228, 119, 164, 73, 231, 181,\n\t\t196, 63, 36, 157, 115, 177, 109, 242, 72, 96, 183, 139, 182,\n\t\t185, 81, 222, 152, 221, 160, 193, 130, 188, 53, 172, 5, 171,\n\t\t6, 93, 244, 110, 230, 172, 169, 11, 27, 121, 193, 220, 206,\n\t\t224, 164, 164, 96, 62, 123, 140, 109, 133, 60, 223, 83, 146,\n\t\t162, 84, 135, 230, 13, 240, 165, 18, 41, 174, 211, 221, 189,\n\t\t19, 231, 68, 241, 223, 238, 175, 49, 26, 183, 254, 162, 62,\n\t\t131, 221, 140, 2, 91, 190, 189, 214, 213, 5, 168, 29, 138,\n\t\t47, 43, 43, 115, 16, 80, 211, 2, 29, 180, 3, 69, 69, 54, 193,\n\t\t167, 225, 202, 182, 197, 174, 139, 193, 248, 0, 127, 209,\n\t\t137, 22, 244, 118, 66, 144, 105, 144, 77, 86, 167, 197, 89,\n\t\t60, 20, 189, 0, 4, 210, 49, 185, 254, 127, 16, 247, 8, 51,\n\t\t43, 187, 210, 41, 31, 232, 203, 252, 180, 130, 218, 189, 252,\n\t\t143, 252, 156, 243, 58, 15, 155, 144, 19, 246, 206, 8, 59,\n\t\t96, 58, 236, 249, 217, 42, 55, 151, 7, 90, 208, 67, 255, 77,\n\t\t64, 133, 243, 137, 119, 200, 234, 54, 207, 124, 132, 133,\n\t\t243, 221, 23, 9, 221, 231, 142, 191, 10, 78, 80, 187, 3, 253,\n\t\t113, 246, 24, 123, 226, 120, 153, 227, 9, 208, 73, 184, 183,\n\t\t26, 130, 216, 210, 84, 119, 26, 193, 120, 253, 129, 40, 42,\n\t\t246, 44, 17, 209, 147, 201, 38, 203, 63, 231, 15, 137, 205,\n\t\t156, 11, 31, 8, 176, 111, 38, 74, 75, 51, 128, 110, 219, 140,\n\t\t106, 35, 212, 93, 81, 8, 127, 251, 99, 18, 230, 170, 102,\n\t\t28, 238, 103, 171, 181, 2, 183, 237, 50, 4, 101, 16, 3, 199,\n\t\t88, 196, 12, 8, 2, 1, 244, 61, 32, 112, 185, 178, 119, 100,\n\t\t4, 210, 106, 161, 191, 137, 123, 170, 109, 211, 189, 211,\n\t\t182, 218, 237, 238, 223, 53, 57, 89, 99, 183, 217, 219, 151,\n\t\t189, 61, 185, 6, 211, 167, 56, 66, 156, 181, 251, 49, 71,\n\t\t251, 222, 61, 142, 154, 204, 204, 31, 136, 121, 201, 246,\n\t\t173, 95, 103, 119, 112, 207, 59, 187, 131, 107, 249, 206,\n\t\t130, 64, 4, 27, 65, 1, 31, 40, 17, 93, 46, 252, 236, 72, 101,\n\t\t101, 155, 23, 1, 237, 164, 145, 161, 177, 53, 197, 109, 135,\n\t\t219, 50, 34, 181, 158, 79, 181, 163, 18, 135, 25, 14, 132,\n\t\t74, 165, 86, 155, 179, 125, 40, 10, 250, 194, 115, 84, 46,\n\t\t224, 82, 151, 60, 243, 179, 122, 210, 61, 189, 245, 61, 214,\n\t\t172, 144, 79, 252, 204, 73, 135, 177, 138, 97, 116, 254, 121,\n\t\t58, 110, 117, 130, 44, 124, 210, 197, 111, 114, 238, 73, 93,\n\t\t172, 54, 83, 2, 106, 57, 38, 24, 82, 247, 105, 16, 72, 101,\n\t\t190, 241, 60, 14, 126, 253, 32, 234, 175, 93, 232, 150, 190,\n\t\t12, 117, 45, 219, 40, 120, 241, 52, 92, 205, 174, 37, 253,\n\t\t113, 206, 86, 58, 23, 79, 172, 48, 240, 66, 89, 61, 86, 111,\n\t\t189, 182, 16, 216, 56, 32, 71, 209, 109, 134, 133, 236, 174,\n\t\t128, 90, 188, 244, 180, 218, 137, 201, 199, 227, 100, 62,\n\t\t176, 74, 213, 19, 160, 126, 151, 213, 13, 168, 87, 0, 123,\n\t\t76, 185, 212, 199, 234, 211, 175, 59, 131, 205, 3, 55, 55,\n\t\t215, 238, 211, 29, 44, 81, 78, 106, 253, 227, 232, 199, 182,\n\t\t50, 166, 10, 243, 162, 163, 82, 103, 126, 83, 107, 115, 90,\n\t\t204, 182, 239, 155, 25, 174, 170, 213, 244, 45, 63, 124, 239,\n\t\t139, 16, 91, 22, 24, 15, 101, 143, 177, 167, 186, 90, 143,\n\t\t141, 20, 135, 237, 56, 109, 234, 188, 189, 234, 117, 34, 64,\n\t\t123, 228, 118, 224, 165, 190, 254, 182, 160, 171, 71, 242,\n\t\t51, 207, 61, 3, 246, 47, 126, 189, 176, 232, 182, 128, 151,\n\t\t97, 25, 95, 207, 180, 205, 78, 161, 190, 190, 46, 161, 30,\n\t\t172, 179, 16, 236, 132, 23, 80, 228, 32, 251, 109, 241, 28,\n\t\t14, 129, 61, 78, 108, 3, 16, 200, 251, 148, 99, 166, 109,\n\t\t130, 34, 161, 24, 92, 73, 59, 78, 20, 163, 40, 32, 122, 86,\n\t\t0, 107, 193, 82, 159, 125, 96, 235, 24, 45, 108, 248, 182,\n\t\t187, 214, 166, 169, 123, 124, 227, 203, 112, 218, 216, 86,\n\t\t29, 118, 52, 56, 188, 54, 39, 85, 91, 164, 169, 139, 67, 10,\n\t\t211, 67, 130, 15, 7, 168, 170, 92, 195, 114, 195, 178, 101,\n\t\t107, 186, 215, 10, 233, 67, 251, 135, 160, 160, 212, 68, 187,\n\t\t226, 161, 84, 246, 55, 9, 198, 202, 21, 17, 201, 190, 108,\n\t\t76, 138, 107, 149, 138, 148, 152, 250, 92, 240, 3, 16, 46,\n\t\t12, 110, 210, 33, 191, 75, 121, 93, 179, 215, 54, 179, 187,\n\t\t217, 213, 236, 136, 57, 235, 59, 13, 92, 59, 218, 59, 116,\n\t\t54, 152, 109, 15, 238, 241, 212, 77, 234, 60, 86, 44, 183,\n\t\t135, 45, 207, 206, 244, 151, 163, 46, 238, 30, 37, 146, 68,\n\t\t230, 67, 145, 66, 157, 78, 24, 233, 107, 198, 58, 95, 62,\n\t\t234, 213, 198, 42, 21, 199, 121, 153, 241, 80, 6, 232, 244,\n\t\t254, 134, 22, 139, 37, 6, 185, 136, 233, 135, 109, 203, 151,\n\t\t219, 202, 1, 109, 128, 146, 125, 150, 98, 149, 0, 68, 1, 11,\n\t\t4, 249, 76, 213, 106, 133, 21, 91, 239, 153, 218, 19, 214,\n\t\t81, 32, 71, 209, 24, 57, 211, 37, 29, 39, 235, 196, 225, 233,\n\t\t227, 64, 65, 208, 15, 107, 105, 29, 201, 38, 239, 160, 173,\n\t\t45, 254, 44, 189, 148, 68, 37, 149, 166, 171, 249, 137, 101,\n\t\t123, 20, 91, 44, 108, 152, 106, 56, 158, 192, 151, 152, 114,\n\t\t2, 211, 121, 12, 192, 62, 141, 4, 72, 24, 87, 109, 15, 25,\n\t\t50, 65, 70, 96, 8, 28, 174, 112, 145, 164, 120, 145, 112,\n\t\t237, 20, 45, 69, 132, 190, 64, 69, 90, 153, 237, 56, 98, 52,\n\t\t192, 174, 215, 176, 14, 117, 211, 125, 220, 101, 40, 223,\n\t\t92, 69, 141, 160, 170, 15, 120, 0, 222, 203, 150, 250, 225,\n\t\t187, 254, 143, 30, 212, 252, 242, 197, 1, 204, 198, 110, 150,\n\t\t203, 130, 254, 225, 206, 213, 15, 9, 189, 127, 117, 176, 39,\n\t\t85, 9, 60, 229, 62, 101, 42, 31, 149, 185, 251, 208, 187,\n\t\t15, 177, 52, 235, 177, 32, 154, 104, 180, 195, 59, 218, 226,\n\t\t32, 80, 146, 148, 226, 37, 113, 81, 132, 195, 33, 129, 25,\n\t\t2, 153, 4, 252, 164, 61, 29, 89, 189, 132, 135, 171, 59, 135,\n\t\t251, 23, 184, 240, 226, 61, 2, 15, 124, 241, 139, 102, 48,\n\t\t250, 255, 46, 188, 159, 148, 189, 23, 30, 128, 207, 116, 100,\n\t\t247, 118, 63, 75, 139, 151, 232, 249, 56, 139, 82, 57, 178,\n\t\t131, 155, 89, 167, 203, 101, 37, 216, 216, 43, 197, 86, 211,\n\t\t76, 92, 117, 1, 129, 29, 123, 183, 106, 112, 196, 74, 32,\n\t\t186, 91, 208, 79, 84, 108, 162, 248, 60, 150, 161, 131, 85,\n\t\t230, 207, 89, 163, 57, 137, 31, 42, 249, 198, 208, 121, 7,\n\t\t88, 30, 241, 60, 251, 196, 139, 165, 127, 190, 188, 106, 232,\n\t\t237, 248, 203, 125, 44, 84, 183, 13, 22, 126, 236, 67, 217,\n\t\t164, 32, 246, 23, 220, 21, 129, 74, 162, 210, 72, 193, 162,\n\t\t154, 66, 242, 74, 81, 63, 68, 86, 126, 154, 181, 249, 224,\n\t\t108, 225, 135, 24, 174, 190, 252, 179, 244, 98, 33, 143, 120,\n\t\t214, 129, 121, 161, 70, 126, 229, 7, 226, 147, 109, 116, 30,\n\t\t53, 98, 75, 175, 49, 193, 193, 85, 147, 108, 148, 61, 198,\n\t\t54, 4, 180, 161, 83, 235, 137, 217, 199, 158, 92, 126, 18,\n\t\t130, 124, 186, 197, 135, 198, 65, 144, 26, 130, 140, 225,\n\t\t151, 210, 73, 147, 164, 244, 146, 239, 241, 239, 205, 144,\n\t\t176, 140, 25, 135, 37, 105, 193, 193, 5, 60, 68, 43, 44, 3,\n\t\t101, 79, 38, 138, 27, 12, 13, 181, 52, 8, 194, 99, 25, 137,\n\t\t137, 133, 73, 240, 1, 64, 138, 231, 136, 32, 212, 122, 62,\n\t\t70, 101, 202, 81, 241, 171, 201, 242, 160, 115, 32, 45, 132,\n\t\t66, 198, 130, 201, 108, 19, 44, 74, 147, 15, 40, 157, 222,\n\t\t190, 5, 137, 152, 225, 187, 165, 8, 82, 122, 119, 24, 211,\n\t\t119, 196, 119, 224, 119, 231, 168, 111, 100, 16, 189, 245,\n\t\t222, 182, 106, 94, 91, 231, 189, 22, 250, 167, 168, 47, 216,\n\t\t95, 6, 59, 168, 14, 152, 111, 230, 163, 119, 161, 220, 238,\n\t\t181, 194, 215, 233, 75, 144, 86, 70, 17, 147, 136, 81, 149,\n\t\t82, 253, 120, 172, 205, 22, 27, 126, 240, 209, 51, 91, 0,\n\t\t204, 241, 115, 254, 18, 160, 137, 139, 211, 168, 227, 99,\n\t\t131, 2, 126, 113, 250, 113, 224, 0, 189, 44, 164, 246, 96,\n\t\t120, 116, 97, 49, 24, 54, 119, 160, 20, 38, 181, 129, 248,\n\t\t106, 53, 130, 118, 0, 230, 52, 204, 10, 247, 155, 23, 109,\n\t\t94, 225, 66, 145, 240, 37, 20, 151, 168, 62, 81, 152, 167,\n\t\t31, 43, 28, 158, 102, 46, 131, 230, 140, 22, 98, 128, 34,\n\t\t44, 44, 91, 95, 164, 2, 96, 10, 59, 46, 169, 77, 130, 6, 1,\n\t\t168, 191, 60, 49, 91, 215, 105, 71, 92, 110, 60, 98, 188,\n\t\t106, 239, 181, 117, 178, 19, 50, 45, 187, 142, 248, 128, 148,\n\t\t46, 175, 67, 92, 14, 139, 202, 211, 73, 15, 136, 117, 108,\n\t\t180, 12, 148, 235, 40, 218, 116, 229, 22, 45, 47, 36, 140,\n\t\t167, 29, 81, 242, 249, 11, 118, 66, 59, 6, 88, 198, 69, 40,\n\t\t154, 158, 126, 204, 98, 12, 86, 98, 217, 104, 149, 195, 9,\n\t\t148, 75, 77, 230, 214, 208, 145, 128, 174, 64, 185, 37, 127,\n\t\t216, 59, 215, 141, 255, 175, 77, 65, 86, 90, 224, 59, 86,\n\t\t234, 171, 77, 175, 82, 89, 239, 2, 211, 32, 91, 186, 45, 42,\n\t\t252, 138, 127, 178, 100, 117, 67, 42, 107, 81, 117, 96, 218,\n\t\t182, 148, 109, 44, 6, 234, 61, 232, 181, 146, 52, 201, 238,\n\t\t134, 192, 170, 6, 180, 14, 181, 193, 84, 167, 151, 122, 17,\n\t\t130, 76, 9, 41, 237, 75, 59, 80, 212, 13, 140, 222, 34, 240,\n\t\t28, 81, 191, 244, 72, 245, 130, 165, 220, 206, 73, 15, 54,\n\t\t206, 27, 177, 221, 37, 116, 107, 101, 160, 179, 126, 168,\n\t\t24, 174, 201, 110, 239, 206, 145, 11, 222, 190, 9, 96, 249,\n\t\t245, 97, 183, 225, 253, 133, 205, 63, 239, 35, 78, 80, 87,\n\t\t13, 171, 92, 106, 234, 8, 138, 29, 42, 40, 253, 162, 245,\n\t\t201, 43, 107, 228, 165, 151, 191, 141, 71, 106, 173, 165,\n\t\t211, 202, 161, 243, 127, 58, 226, 122, 12, 215, 214, 56, 204,\n\t\t14, 16, 40, 158, 148, 79, 118, 118, 218, 118, 137, 130, 112,\n\t\t219, 69, 246, 253, 233, 7, 106, 252, 226, 252, 231, 7, 79,\n\t\t104, 255, 143, 193, 206, 21, 237, 92, 36, 14, 235, 4, 63,\n\t\t204, 98, 241, 207, 223, 118, 165, 203, 249, 97, 183, 23, 169,\n\t\t235, 126, 219, 246, 186, 173, 177, 139, 55, 182, 125, 179,\n\t\t113, 24, 246, 205, 98, 85, 45, 40, 138, 39, 86, 4, 187, 138,\n\t\t113, 169, 130, 172, 133, 79, 4, 89, 11, 142, 168, 178, 194,\n\t\t58, 227, 118, 116, 134, 57, 85, 115, 178, 100, 125, 74, 36,\n\t\t25, 220, 142, 154, 99, 229, 135, 115, 72, 174, 41, 63, 223,\n\t\t110, 143, 115, 110, 202, 141, 171, 47, 235, 144, 240, 206,\n\t\t152, 199, 188, 242, 209, 198, 251, 179, 55, 127, 30, 249,\n\t\t201, 71, 62, 167, 241, 47, 184, 44, 103, 146, 157, 48, 173,\n\t\t21, 190, 194, 158, 244, 95, 22, 31, 159, 48, 174, 23, 137,\n\t\t138, 39, 203, 24, 39, 16, 158, 119, 67, 209, 93, 242, 159,\n\t\t187, 11, 37, 27, 29, 104, 101, 99, 141, 37, 235, 107, 52,\n\t\t78, 214, 207, 79, 72, 192, 233, 245, 251, 228, 4, 215, 157,\n\t\t214, 255, 116, 185, 228, 197, 114, 79, 28, 29, 231, 31, 193,\n\t\t122, 202, 240, 166, 144, 181, 20, 9, 229, 35, 124, 217, 11,\n\t\t170, 235, 183, 111, 145, 142, 92, 19, 248, 75, 53, 220, 54,\n\t\t25, 175, 38, 149, 195, 143, 75, 156, 70, 118, 195, 47, 169,\n\t\t212, 52, 122, 49, 243, 2, 139, 68, 10, 235, 240, 162, 218,\n\t\t41, 81, 51, 182, 195, 217, 59, 73, 228, 81, 215, 37, 30, 158,\n\t\t30, 90, 98, 216, 112, 119, 132, 105, 9, 185, 187, 215, 127,\n\t\t188, 195, 151, 176, 100, 178, 54, 174, 70, 234, 47, 184, 54,\n\t\t34, 221, 243, 255, 22, 120, 128, 153, 69, 79, 45, 218, 78,\n\t\t166, 253, 16, 197, 242, 207, 190, 207, 156, 10, 114, 174,\n\t\t238, 191, 237, 69, 201, 158, 221, 60, 119, 18, 191, 155, 72,\n\t\t125, 9, 239, 70, 166, 235, 187, 135, 137, 97, 90, 15, 207,\n\t\t37, 30, 174, 163, 100, 148, 89, 101, 159, 161, 68, 217, 25,\n\t\t177, 203, 103, 81, 88, 23, 152, 224, 253, 99, 129, 175, 224,\n\t\t40, 37, 74, 61, 61, 173, 139, 162, 212, 157, 244, 61, 88,\n\t\t183, 162, 116, 147, 26, 74, 228, 209, 64, 126, 82, 219, 238,\n\t\t128, 223, 1, 172, 62, 200, 177, 58, 65, 157, 160, 98, 100,\n\t\t102, 50, 84, 179, 34, 225, 162, 55, 80, 26, 85, 140, 44, 220,\n\t\t63, 242, 123, 234, 21, 115, 119, 67, 190, 2, 116, 226, 132,\n\t\t150, 108, 222, 124, 83, 247, 162, 132, 87, 160, 75, 105, 247,\n\t\t126, 156, 40, 11, 181, 234, 31, 16, 120, 177, 33, 69, 129,\n\t\t243, 198, 83, 107, 107, 247, 217, 183, 32, 53, 192, 36, 63,\n\t\t109, 164, 53, 47, 49, 207, 14, 52, 246, 72, 0, 77, 210, 214,\n\t\t199, 124, 127, 68, 70, 74, 123, 247, 203, 80, 236, 232, 150,\n\t\t254, 219, 156, 240, 105, 243, 148, 128, 122, 223, 165, 225,\n\t\t136, 59, 45, 75, 47, 125, 205, 8, 28, 37, 77, 146, 12, 90,\n\t\t242, 209, 149, 226, 212, 110, 19, 130, 174, 247, 55, 236,\n\t\t95, 180, 158, 109, 12, 215, 169, 39, 6, 79, 157, 115, 216,\n\t\t45, 242, 206, 63, 11, 198, 83, 20, 129, 146, 196, 222, 239,\n\t\t63, 245, 60, 154, 137, 41, 156, 90, 181, 37, 241, 27, 44,\n\t\t21, 231, 225, 33, 153, 213, 126, 162, 219, 109, 248, 148,\n\t\t157, 26, 30, 169, 189, 37, 165, 51, 206, 251, 96, 156, 142,\n\t\t55, 114, 240, 155, 121, 121, 60, 146, 249, 187, 237, 146,\n\t\t61, 34, 68, 206, 136, 230, 17, 93, 73, 60, 159, 115, 119,\n\t\t252, 93, 106, 8, 12, 146, 43, 211, 130, 195, 96, 33, 110,\n\t\t158, 156, 72, 33, 241, 56, 86, 44, 6, 7, 8, 44, 171, 235,\n\t\t103, 89, 63, 236, 135, 75, 53, 126, 78, 255, 68, 77, 41, 60,\n\t\t11, 246, 96, 126, 57, 74, 245, 112, 230, 150, 106, 252, 19,\n\t\t253, 123, 107, 26, 189, 90, 85, 253, 229, 83, 94, 116, 193,\n\t\t46, 20, 141, 116, 147, 205, 34, 7, 102, 239, 105, 125, 214,\n\t\t253, 17, 161, 97, 149, 231, 138, 159, 171, 60, 84, 153, 207,\n\t\t35, 95, 227, 94, 37, 243, 56, 212, 11, 203, 180, 103, 204,\n\t\t96, 23, 108, 56, 253, 65, 62, 102, 54, 131, 122, 161, 136,\n\t\t82, 104, 189, 130, 103, 160, 93, 155, 253, 250, 44, 54, 150,\n\t\t91, 131, 186, 156, 0, 186, 136, 110, 112, 118, 159, 101, 164,\n\t\t42, 175, 116, 211, 93, 95, 68, 51, 173, 244, 165, 57, 36,\n\t\t191, 86, 129, 146, 12, 175, 123, 193, 188, 189, 14, 38, 135,\n\t\t30, 241, 247, 87, 28, 169, 211, 216, 119, 37, 149, 91, 53,\n\t\t190, 231, 206, 193, 23, 17, 220, 84, 145, 207, 17, 121, 186,\n\t\t141, 109, 235, 93, 83, 53, 162, 158, 167, 222, 211, 83, 196,\n\t\t224, 139, 125, 118, 165, 40, 152, 92, 78, 14, 46, 210, 121,\n\t\t32, 99, 72, 49, 156, 212, 3, 108, 206, 55, 167, 98, 36, 120,\n\t\t156, 164, 117, 209, 162, 86, 219, 185, 134, 49, 102, 51, 250,\n\t\t239, 100, 213, 138, 57, 157, 131, 127, 85, 55, 202, 131, 198,\n\t\t120, 77, 182, 194, 21, 37, 37, 207, 76, 181, 25, 203, 1, 91,\n\t\t240, 208, 153, 32, 87, 247, 174, 252, 93, 4, 155, 221, 104,\n\t\t26, 66, 227, 116, 112, 174, 149, 95, 139, 8, 11, 163, 62,\n\t\t12, 172, 122, 72, 197, 95, 102, 240, 237, 200, 231, 244, 5,\n\t\t243, 155, 131, 230, 13, 161, 164, 166, 50, 255, 61, 19, 205,\n\t\t255, 112, 76, 203, 148, 163, 243, 183, 237, 188, 23, 150,\n\t\t116, 83, 58, 175, 105, 224, 67, 169, 223, 141, 163, 187, 194,\n\t\t235, 214, 94, 4, 79, 81, 97, 94, 206, 176, 85, 152, 229, 165,\n\t\t111, 206, 225, 37, 188, 228, 87, 231, 122, 71, 39, 206, 253,\n\t\t245, 120, 108, 44, 181, 48, 234, 60, 161, 219, 49, 213, 79,\n\t\t186, 211, 175, 227, 254, 255, 46, 184, 181, 242, 27, 227,\n\t\t166, 117, 87, 255, 143, 203, 22, 126, 197, 141, 141, 226,\n\t\t20, 82, 117, 133, 49, 27, 126, 182, 28, 211, 239, 3, 94, 245,\n\t\t67, 48, 240, 145, 11, 184, 116, 101, 166, 190, 137, 141, 180,\n\t\t208, 104, 132, 142, 252, 73, 127, 52, 35, 114, 242, 240, 184,\n\t\t16, 59, 138, 90, 47, 174, 128, 21, 83, 170, 151, 27, 228,\n\t\t246, 181, 60, 28, 1, 233, 56, 89, 39, 197, 158, 229, 139,\n\t\t209, 126, 237, 128, 33, 224, 134, 66, 248, 72, 127, 95, 223,\n\t\t136, 249, 134, 250, 35, 169, 47, 29, 126, 196, 163, 50, 41,\n\t\t104, 7, 96, 212, 116, 252, 213, 209, 193, 187, 129, 232, 234,\n\t\t158, 73, 78, 101, 191, 74, 59, 97, 13, 6, 223, 250, 218, 147,\n\t\t115, 170, 170, 248, 15, 240, 143, 82, 79, 33, 131, 50, 113,\n\t\t179, 228, 119, 20, 154, 35, 116, 65, 146, 33, 196, 43, 244,\n\t\t87, 249, 252, 20, 21, 1, 199, 116, 43, 217, 117, 68, 204,\n\t\t83, 179, 57, 146, 110, 153, 236, 190, 170, 75, 53, 143, 133,\n\t\t199, 223, 72, 250, 225, 159, 48, 75, 85, 125, 201, 248, 223,\n\t\t148, 10, 173, 42, 25, 235, 144, 48, 41, 26, 227, 157, 95,\n\t\t37, 30, 231, 222, 68, 104, 174, 243, 165, 210, 189, 228, 125,\n\t\t176, 179, 52, 186, 151, 69, 110, 223, 55, 105, 192, 47, 161,\n\t\t40, 64, 207, 72, 193, 107, 6, 170, 253, 73, 72, 128, 131,\n\t\t201, 126, 66, 108, 64, 124, 125, 12, 20, 230, 66, 247, 30,\n\t\t238, 241, 213, 212, 118, 161, 70, 109, 2, 223, 140, 111, 185,\n\t\t229, 93, 229, 150, 253, 229, 115, 18, 80, 52, 129, 7, 84,\n\t\t143, 80, 39, 107, 203, 212, 123, 6, 47, 93, 239, 87, 100,\n\t\t237, 163, 1, 17, 121, 97, 113, 106, 66, 133, 123, 254, 78,\n\t\t60, 148, 204, 133, 42, 82, 253, 70, 162, 39, 56, 52, 192,\n\t\t154, 206, 188, 58, 157, 23, 199, 25, 154, 86, 5, 199, 11,\n\t\t22, 125, 253, 217, 151, 84, 159, 53, 50, 131, 122, 154, 213,\n\t\t58, 165, 55, 128, 241, 227, 103, 118, 114, 64, 128, 227, 240,\n\t\t184, 239, 141, 95, 236, 3, 5, 94, 240, 219, 212, 158, 141,\n\t\t22, 155, 217, 118, 3, 101, 157, 161, 129, 21, 239, 223, 135,\n\t\t28, 138, 239, 91, 208, 26, 20, 31, 176, 64, 157, 16, 87, 90,\n\t\t34, 57, 193, 137, 202, 0, 91, 202, 67, 195, 125, 229, 21,\n\t\t188, 22, 159, 130, 57, 98, 138, 132, 242, 47, 124, 140, 240,\n\t\t8, 129, 128, 195, 97, 48, 0, 128, 41, 79, 61, 87, 90, 231,\n\t\t197, 139, 241, 82, 165, 106, 83, 87, 245, 71, 95, 171, 160,\n\t\t247, 247, 211, 96, 7, 12, 63, 85, 242, 25, 45, 211, 5, 250,\n\t\t214, 114, 250, 231, 73, 222, 68, 123, 101, 8, 164, 91, 164,\n\t\t67, 188, 233, 159, 199, 185, 238, 5, 86, 83, 0, 159, 244,\n\t\t16, 102, 47, 243, 41, 136, 7, 149, 73, 103, 238, 186, 183,\n\t\t112, 35, 103, 53, 249, 80, 208, 31, 25, 253, 213, 187, 126,\n\t\t171, 182, 156, 33, 175, 22, 123, 253, 193, 210, 99, 212, 47,\n\t\t231, 136, 249, 19, 45, 168, 171, 55, 37, 129, 5, 128, 33,\n\t\t91, 81, 31, 87, 180, 143, 121, 65, 104, 11, 124, 12, 229,\n\t\t187, 162, 223, 193, 91, 160, 156, 248, 94, 226, 179, 124,\n\t\t13, 77, 45, 30, 210, 28, 218, 88, 140, 106, 42, 6, 47, 241,\n\t\t171, 3, 192, 140, 147, 84, 13, 252, 133, 149, 166, 11, 247,\n\t\t132, 236, 17, 230, 32, 73, 204, 75, 246, 52, 251, 165, 174,\n\t\t224, 29, 228, 188, 32, 166, 215, 85, 238, 153, 194, 106, 126,\n\t\t30, 18, 169, 140, 194, 210, 239, 39, 232, 9, 237, 42, 185,\n\t\t37, 47, 232, 101, 95, 102, 36, 140, 19, 13, 133, 22, 111,\n\t\t220, 225, 43, 98, 244, 205, 219, 72, 70, 161, 14, 120, 152,\n\t\t126, 247, 46, 125, 24, 238, 200, 43, 202, 13, 237, 222, 128,\n\t\t186, 21, 169, 36, 186, 161, 27, 248, 245, 251, 201, 86, 78,\n\t\t197, 20, 120, 4, 226, 91, 38, 141, 60, 50, 149, 172, 66, 120,\n\t\t70, 60, 45, 70, 60, 147, 120, 122, 105, 171, 62, 73, 112,\n\t\t57, 216, 253, 184, 132, 226, 137, 16, 212, 238, 187, 239,\n\t\t22, 43, 55, 175, 126, 206, 36, 151, 88, 193, 176, 49, 16,\n\t\t164, 133, 114, 38, 223, 243, 38, 76, 227, 1, 118, 216, 108,\n\t\t174, 148, 169, 211, 186, 183, 127, 146, 247, 145, 112, 210,\n\t\t52, 244, 46, 211, 165, 153, 94, 156, 249, 239, 151, 234, 207,\n\t\t103, 139, 154, 234, 133, 45, 4, 200, 131, 161, 23, 150, 120,\n\t\t163, 164, 105, 138, 35, 243, 216, 94, 154, 185, 174, 242,\n\t\t161, 192, 34, 39, 121, 160, 62, 238, 173, 62, 255, 69, 8,\n\t\t248, 229, 190, 20, 18, 220, 199, 245, 232, 225, 100, 109,\n\t\t34, 127, 198, 241, 222, 237, 75, 193, 11, 226, 235, 119, 198,\n\t\t87, 77, 241, 241, 62, 140, 227, 104, 242, 241, 8, 197, 119,\n\t\t86, 171, 111, 196, 127, 124, 201, 102, 44, 54, 146, 236, 85,\n\t\t29, 102, 2, 139, 80, 114, 187, 212, 132, 112, 248, 213, 81,\n\t\t9, 220, 67, 146, 249, 75, 122, 101, 49, 249, 160, 155, 45,\n\t\t216, 230, 22, 135, 47, 138, 189, 4, 85, 47, 214, 229, 101,\n\t\t188, 229, 73, 35, 30, 162, 41, 248, 213, 24, 172, 169, 109,\n\t\t246, 69, 241, 193, 5, 132, 173, 93, 80, 239, 89, 46, 83, 224,\n\t\t151, 7, 227, 165, 168, 171, 43, 42, 197, 71, 23, 224, 159,\n\t\t249, 253, 100, 252, 19, 232, 164, 75, 182, 194, 53, 16, 123,\n\t\t212, 192, 86, 156, 139, 42, 28, 183, 247, 196, 67, 135, 27,\n\t\t19, 28, 10, 236, 32, 24, 182, 184, 32, 157, 10, 81, 233, 86,\n\t\t31, 176, 120, 38, 106, 85, 19, 39, 74, 164, 25, 93, 245, 18,\n\t\t7, 229, 29, 136, 11, 238, 218, 103, 31, 13, 138, 120, 149,\n\t\t207, 76, 66, 114, 36, 27, 146, 62, 91, 164, 220, 28, 37, 10,\n\t\t219, 38, 188, 219, 155, 232, 214, 83, 188, 195, 244, 245,\n\t\t235, 37, 71, 99, 166, 40, 121, 238, 188, 190, 220, 67, 30,\n\t\t150, 208, 33, 44, 14, 54, 13, 141, 172, 14, 202, 139, 33,\n\t\t95, 45, 139, 185, 105, 180, 132, 70, 194, 132, 101, 41, 56,\n\t\t95, 216, 67, 153, 33, 50, 173, 191, 15, 212, 11, 95, 77, 248,\n\t\t147, 80, 141, 215, 219, 204, 170, 42, 230, 22, 145, 152, 148,\n\t\t192, 165, 11, 180, 64, 223, 199, 67, 209, 132, 132, 81, 102,\n\t\t108, 143, 77, 217, 206, 235, 179, 114, 157, 253, 254, 2, 180,\n\t\t198, 166, 238, 78, 154, 66, 193, 49, 160, 221, 110, 54, 219,\n\t\t219, 65, 141, 157, 92, 131, 141, 77, 253, 127, 60, 6, 232,\n\t\t172, 53, 198, 253, 194, 250, 245, 237, 53, 113, 113, 23, 146,\n\t\t219, 29, 251, 100, 169, 164, 28, 168, 239, 175, 92, 38, 20,\n\t\t223, 27, 214, 163, 222, 64, 34, 109, 216, 27, 178, 123, 161,\n\t\t8, 231, 207, 149, 48, 215, 189, 222, 223, 93, 233, 186, 90,\n\t\t129, 185, 119, 245, 125, 244, 159, 88, 11, 142, 31, 231, 155,\n\t\t249, 34, 216, 183, 107, 101, 142, 24, 143, 162, 38, 43, 174,\n\t\t237, 180, 136, 96, 7, 220, 0, 32, 186, 38, 187, 66, 194, 3,\n\t\t47, 58, 225, 199, 5, 146, 215, 246, 8, 9, 14, 80, 89, 53,\n\t\t91, 25, 116, 112, 10, 192, 31, 158, 151, 216, 13, 135, 236,\n\t\t78, 10, 86, 109, 1, 80, 104, 45, 184, 76, 122, 213, 207, 243,\n\t\t171, 29, 248, 94, 14, 121, 185, 115, 148, 214, 193, 124, 83,\n\t\t60, 145, 184, 254, 46, 81, 11, 170, 103, 102, 216, 83, 46,\n\t\t237, 107, 26, 181, 131, 226, 160, 58, 40, 155, 177, 81, 166,\n\t\t210, 212, 54, 250, 169, 107, 14, 13, 223, 148, 63, 23, 35,\n\t\t198, 76, 250, 52, 184, 89, 211, 70, 112, 253, 63, 235, 219,\n\t\t58, 126, 168, 48, 69, 54, 199, 52, 248, 95, 21, 227, 76, 180,\n\t\t81, 237, 252, 42, 118, 81, 170, 118, 81, 254, 232, 94, 246,\n\t\t25, 185, 108, 75, 81, 169, 150, 42, 185, 68, 129, 105, 62,\n\t\t133, 11, 173, 205, 143, 43, 204, 113, 47, 207, 141, 147, 184,\n\t\t143, 36, 194, 102, 182, 153, 187, 240, 168, 187, 164, 32,\n\t\t9, 31, 254, 63, 150, 97, 8, 155, 131, 249, 242, 94, 41, 189,\n\t\t244, 238, 78, 204, 51, 115, 36, 29, 247, 255, 242, 29, 33,\n\t\t60, 89, 251, 217, 146, 127, 104, 37, 18, 122, 163, 173, 208,\n\t\t38, 204, 63, 75, 62, 171, 125, 92, 211, 86, 250, 239, 219,\n\t\t12, 16, 232, 204, 240, 155, 157, 151, 197, 255, 150, 182,\n\t\t213, 128, 111, 132, 108, 45, 91, 182, 14, 196, 45, 66, 162,\n\t\t19, 144, 0, 82, 172, 94, 233, 212, 58, 71, 198, 213, 102,\n\t\t243, 110, 247, 14, 17, 47, 33, 44, 94, 158, 27, 190, 135,\n\t\t70, 235, 193, 187, 229, 241, 88, 200, 37, 34, 160, 221, 120,\n\t\t216, 96, 202, 246, 232, 156, 79, 89, 71, 246, 167, 32, 143,\n\t\t254, 203, 5, 41, 183, 70, 84, 22, 234, 105, 0, 227, 105, 247,\n\t\t251, 228, 248, 180, 19, 243, 140, 160, 31, 90, 113, 245, 95,\n\t\t41, 54, 213, 87, 93, 191, 231, 62, 235, 245, 137, 54, 153,\n\t\t84, 167, 53, 202, 115, 60, 163, 86, 215, 172, 197, 197, 202,\n\t\t98, 113, 218, 199, 106, 86, 231, 41, 79, 184, 112, 220, 41,\n\t\t114, 90, 44, 183, 29, 137, 213, 26, 91, 151, 253, 101, 187,\n\t\t18, 209, 148, 72, 140, 99, 82, 157, 123, 38, 110, 142, 190,\n\t\t50, 242, 127, 150, 156, 18, 60, 146, 220, 119, 160, 227, 141,\n\t\t243, 141, 31, 60, 18, 158, 56, 13, 68, 150, 233, 19, 133,\n\t\t34, 143, 198, 39, 180, 19, 3, 22, 173, 54, 224, 120, 225,\n\t\t190, 128, 111, 179, 141, 190, 30, 171, 86, 221, 177, 53, 226,\n\t\t185, 230, 128, 167, 201, 195, 46, 108, 67, 180, 183, 105,\n\t\t207, 222, 61, 125, 237, 9, 112, 40, 96, 7, 68, 135, 29, 176,\n\t\t162, 99, 207, 158, 189, 42, 170, 170, 207, 20, 237, 205, 54,\n\t\t184, 124, 153, 252, 52, 47, 211, 165, 201, 150, 114, 42, 89,\n\t\t78, 94, 114, 9, 103, 33, 103, 200, 160, 119, 137, 246, 118,\n\t\t186, 36, 195, 144, 55, 172, 36, 153, 103, 187, 179, 138, 171,\n\t\t194, 201, 204, 211, 102, 19, 14, 110, 43, 45, 131, 183, 99,\n\t\t81, 29, 174, 2, 178, 240, 10, 26, 225, 89, 242, 90, 253, 93,\n\t\t31, 153, 110, 144, 152, 108, 160, 251, 126, 152, 41, 188,\n\t\t244, 85, 104, 33, 242, 219, 125, 13, 239, 160, 155, 219, 58,\n\t\t55, 38, 46, 23, 119, 114, 192, 32, 50, 196, 43, 19, 131, 154,\n\t\t195, 244, 20, 184, 1, 218, 65, 39, 122, 0, 9, 130, 126, 149,\n\t\t173, 114, 30, 41, 67, 95, 233, 210, 37, 6, 132, 114, 177,\n\t\t100, 123, 238, 109, 111, 37, 160, 221, 190, 169, 44, 42, 138,\n\t\t133, 162, 163, 13, 34, 160, 159, 29, 55, 16, 73, 6, 126, 219,\n\t\t201, 252, 180, 235, 37, 225, 246, 141, 38, 8, 242, 145, 157,\n\t\t162, 10, 178, 107, 233, 105, 178, 175, 200, 122, 118, 158,\n\t\t27, 105, 221, 43, 117, 72, 110, 68, 65, 129, 221, 30, 215,\n\t\t68, 68, 46, 162, 3, 112, 250, 196, 84, 229, 247, 32, 230,\n\t\t134, 207, 109, 207, 71, 86, 137, 206, 99, 102, 62, 117, 231,\n\t\t101, 186, 130, 12, 243, 205, 13, 3, 168, 185, 199, 143, 67,\n\t\t234, 130, 141, 81, 169, 44, 147, 20, 149, 102, 101, 106, 212,\n\t\t95, 14, 25, 156, 160, 156, 171, 178, 68, 32, 22, 84, 156,\n\t\t82, 229, 165, 133, 135, 174, 238, 5, 157, 246, 1, 221, 128,\n\t\t202, 250, 179, 87, 210, 7, 70, 55, 53, 224, 42, 13, 193, 97,\n\t\t217, 130, 106, 137, 246, 69, 116, 4, 161, 167, 35, 8, 21,\n\t\t54, 190, 158, 125, 199, 1, 175, 186, 216, 116, 211, 131, 3,\n\t\t104, 249, 180, 200, 31, 51, 87, 161, 226, 225, 137, 42, 105,\n\t\t78, 65, 132, 32, 225, 208, 112, 220, 177, 167, 171, 103, 233,\n\t\t187, 43, 87, 28, 237, 230, 26, 135, 126, 230, 26, 115, 187,\n\t\t3, 107, 0, 77, 31, 174, 46, 103, 109, 98, 58, 99, 56, 114,\n\t\t234, 113, 104, 90, 93, 39, 9, 201, 210, 155, 229, 115, 161,\n\t\t180, 126, 45, 247, 239, 102, 245, 114, 118, 180, 24, 126,\n\t\t105, 218, 178, 203, 243, 168, 195, 244, 18, 22, 72, 123, 57,\n\t\t204, 217, 192, 47, 225, 221, 56, 223, 206, 99, 161, 135, 199,\n\t\t179, 124, 212, 207, 16, 137, 62, 218, 212, 149, 66, 220, 160,\n\t\t231, 54, 117, 121, 107, 15, 134, 166, 116, 53, 125, 27, 131,\n\t\t4, 127, 150, 49, 181, 108, 94, 176, 77, 171, 231, 110, 96,\n\t\t121, 115, 247, 150, 140, 209, 205, 12, 134, 153, 110, 143,\n\t\t116, 99, 124, 72, 117, 99, 243, 212, 100, 138, 175, 12, 157,\n\t\t58, 163, 151, 231, 27, 102, 99, 49, 107, 24, 200, 105, 28,\n\t\t226, 81, 169, 235, 61, 223, 54, 222, 220, 39, 13, 150, 57,\n\t\t174, 114, 79, 103, 227, 137, 109, 232, 235, 85, 98, 118, 200,\n\t\t201, 56, 228, 114, 19, 85, 77, 109, 186, 140, 196, 61, 204,\n\t\t16, 127, 30, 171, 226, 9, 37, 31, 215, 194, 147, 35, 176,\n\t\t3, 182, 243, 120, 150, 22, 41, 242, 226, 5, 240, 254, 128,\n\t\t206, 50, 199, 87, 196, 69, 228, 100, 94, 72, 49, 50, 30, 47,\n\t\t155, 111, 203, 64, 113, 254, 8, 55, 44, 193, 223, 155, 111,\n\t\t172, 242, 224, 142, 228, 175, 107, 106, 78, 204, 120, 28,\n\t\t112, 254, 124, 140, 75, 250, 115, 12, 230, 185, 61, 180, 220,\n\t\t197, 59, 138, 179, 247, 216, 86, 164, 136, 132, 189, 13, 84,\n\t\t1, 126, 184, 167, 204, 121, 16, 185, 106, 240, 193, 11, 152,\n\t\t37, 159, 5, 157, 246, 104, 56, 235, 121, 182, 193, 163, 23,\n\t\t147, 7, 205, 146, 123, 250, 114, 129, 171, 66, 191, 199, 174,\n\t\t110, 254, 17, 37, 37, 17, 227, 230, 250, 43, 131, 111, 44,\n\t\t12, 74, 237, 93, 151, 63, 202, 97, 55, 199, 178, 251, 148,\n\t\t44, 158, 152, 156, 174, 189, 192, 247, 176, 188, 168, 8, 139,\n\t\t20, 233, 186, 31, 136, 133, 243, 140, 197, 136, 50, 138, 191,\n\t\t230, 179, 176, 113, 245, 153, 175, 12, 228, 125, 90, 150,\n\t\t123, 89, 182, 32, 146, 241, 203, 195, 164, 132, 190, 27, 121,\n\t\t156, 5, 245, 215, 127, 38, 134, 178, 34, 185, 135, 117, 73,\n\t\t15, 127, 137, 100, 44, 227, 246, 215, 203, 80, 226, 207, 13,\n\t\t46, 223, 201, 57, 121, 134, 137, 35, 189, 63, 237, 127, 160,\n\t\t149, 160, 57, 38, 25, 83, 92, 43, 130, 225, 162, 31, 43, 245,\n\t\t202, 20, 106, 74, 138, 207, 80, 93, 75, 106, 17, 233, 79,\n\t\t237, 26, 168, 12, 213, 218, 240, 228, 100, 201, 204, 53, 67,\n\t\t57, 179, 105, 29, 10, 114, 215, 9, 122, 22, 69, 199, 20, 133,\n\t\t196, 21, 198, 191, 13, 50, 110, 125, 200, 90, 189, 162, 249,\n\t\t172, 70, 26, 193, 29, 116, 196, 196, 20, 169, 126, 205, 207,\n\t\t106, 246, 55, 110, 165, 209, 28, 225, 198, 100, 211, 100,\n\t\t84, 244, 114, 56, 25, 60, 34, 166, 139, 168, 83, 119, 177,\n\t\t186, 51, 56, 26, 162, 36, 226, 80, 36, 105, 223, 195, 60,\n\t\t202, 126, 148, 5, 77, 105, 20, 44, 99, 175, 145, 253, 212,\n\t\t72, 45, 48, 150, 194, 209, 100, 15, 104, 52, 42, 165, 71,\n\t\t42, 215, 202, 166, 217, 36, 246, 180, 76, 43, 151, 246, 164,\n\t\t224, 43, 3, 63, 124, 8, 172, 196, 37, 98, 62, 172, 204, 32,\n\t\t210, 173, 120, 154, 21, 64, 229, 113, 225, 170, 18, 152, 104,\n\t\t50, 114, 50, 222, 166, 77, 38, 151, 234, 247, 187, 139, 75,\n\t\t231, 173, 214, 7, 139, 221, 247, 55, 228, 206, 171, 232, 150,\n\t\t189, 207, 89, 148, 19, 177, 104, 201, 3, 13, 122, 117, 203,\n\t\t77, 63, 64, 138, 46, 179, 108, 66, 205, 147, 63, 10, 129,\n\t\t186, 71, 86, 102, 157, 49, 252, 25, 177, 236, 117, 85, 123,\n\t\t72, 193, 255, 251, 241, 118, 196, 241, 125, 57, 84, 142, 192,\n\t\t39, 110, 7, 207, 151, 31, 197, 103, 78, 160, 195, 200, 188,\n\t\t220, 185, 167, 107, 21, 115, 79, 23, 100, 1, 217, 175, 32,\n\t\t56, 155, 168, 224, 2, 63, 242, 177, 159, 199, 147, 235, 208,\n\t\t192, 90, 252, 60, 85, 87, 198, 143, 242, 23, 91, 250, 131,\n\t\t176, 209, 22, 91, 122, 11, 6, 127, 170, 95, 223, 43, 21, 76,\n\t\t224, 183, 212, 174, 45, 230, 87, 176, 56, 122, 187, 106, 206,\n\t\t91, 214, 219, 190, 19, 198, 11, 84, 100, 249, 146, 81, 245,\n\t\t202, 156, 91, 219, 75, 68, 156, 33, 45, 111, 182, 94, 99,\n\t\t111, 24, 201, 78, 205, 192, 144, 183, 210, 226, 255, 118,\n\t\t176, 179, 156, 227, 239, 207, 161, 175, 153, 192, 64, 46,\n\t\t132, 20, 40, 198, 53, 6, 10, 36, 7, 66, 49, 252, 104, 56,\n\t\t25, 226, 24, 62, 238, 18, 124, 189, 77, 198, 64, 38, 109,\n\t\t215, 20, 176, 211, 75, 142, 1, 248, 27, 143, 174, 35, 173,\n\t\t91, 37, 59, 165, 141, 128, 214, 153, 100, 116, 51, 238, 185,\n\t\t173, 136, 223, 228, 201, 43, 223, 44, 160, 92, 203, 81, 248,\n\t\t115, 104, 107, 174, 39, 216, 9, 74, 134, 1, 242, 165, 16,\n\t\t56, 16, 208, 68, 198, 239, 246, 220, 189, 101, 9, 109, 229,\n\t\t29, 255, 91, 67, 90, 85, 149, 63, 200, 130, 194, 61, 96, 129,\n\t\t152, 159, 49, 152, 7, 216, 41, 46, 221, 114, 78, 138, 175,\n\t\t77, 120, 16, 115, 40, 84, 190, 236, 215, 105, 103, 192, 78,\n\t\t206, 51, 117, 209, 43, 46, 178, 111, 168, 72, 65, 222, 142,\n\t\t44, 121, 179, 77, 52, 101, 37, 251, 119, 161, 154, 56, 69,\n\t\t25, 206, 178, 178, 114, 255, 203, 238, 150, 107, 48, 5, 174,\n\t\t33, 100, 71, 204, 87, 80, 21, 121, 14, 179, 9, 53, 112, 66,\n\t\t119, 167, 178, 124, 91, 29, 146, 185, 55, 72, 44, 65, 78,\n\t\t128, 99, 102, 108, 30, 39, 48, 202, 60, 132, 155, 185, 174,\n\t\t164, 242, 199, 162, 159, 243, 90, 102, 179, 177, 217, 152,\n\t\t204, 165, 105, 179, 148, 223, 149, 217, 211, 145, 209, 151,\n\t\t6, 86, 76, 215, 190, 35, 47, 217, 62, 16, 117, 241, 252, 152,\n\t\t209, 144, 94, 51, 54, 40, 82, 98, 99, 176, 5, 44, 252, 178,\n\t\t31, 133, 103, 9, 216, 140, 255, 131, 207, 42, 50, 154, 97,\n\t\t123, 30, 209, 241, 141, 167, 8, 115, 219, 63, 214, 26, 198,\n\t\t142, 106, 168, 173, 136, 10, 246, 92, 176, 93, 232, 217, 71,\n\t\t28, 10, 124, 101, 118, 28, 29, 164, 224, 68, 11, 83, 122,\n\t\t72, 99, 153, 183, 252, 8, 140, 223, 213, 115, 180, 226, 5,\n\t\t58, 5, 65, 77, 128, 230, 196, 45, 56, 46, 9, 201, 41, 98,\n\t\t85, 85, 137, 83, 87, 122, 178, 204, 170, 13, 253, 85, 133,\n\t\t207, 186, 86, 125, 90, 90, 0, 139, 209, 46, 105, 103, 176,\n\t\t88, 100, 19, 184, 254, 34, 197, 48, 219, 215, 205, 140, 103,\n\t\t58, 235, 57, 32, 91, 147, 225, 60, 106, 142, 155, 252, 213,\n\t\t188, 211, 177, 108, 180, 21, 71, 71, 230, 226, 175, 24, 126,\n\t\t242, 218, 220, 54, 100, 253, 108, 141, 222, 47, 48, 38, 54,\n\t\t38, 92, 19, 133, 244, 229, 43, 42, 20, 129, 203, 3, 23, 75,\n\t\t136, 146, 248, 186, 12, 252, 44, 76, 254, 174, 151, 13, 48,\n\t\t246, 0, 192, 171, 62, 10, 8, 51, 36, 194, 27, 141, 192, 156,\n\t\t196, 243, 0, 242, 136, 246, 9, 203, 201, 170, 88, 99, 78,\n\t\t20, 157, 10, 32, 123, 79, 182, 72, 72, 43, 17, 145, 64, 212,\n\t\t198, 78, 178, 10, 127, 17, 201, 26, 120, 96, 12, 176, 157,\n\t\t170, 252, 26, 197, 145, 6, 76, 41, 89, 246, 251, 32, 96, 46,\n\t\t54, 59, 18, 237, 57, 15, 160, 8, 225, 251, 237, 30, 119, 66,\n\t\t52, 220, 21, 29, 159, 197, 237, 39, 182, 57, 209, 177, 234,\n\t\t68, 197, 4, 4, 75, 131, 31, 85, 97, 122, 71, 9, 72, 239, 123,\n\t\t32, 96, 11, 84, 126, 163, 133, 252, 144, 7, 22, 108, 116,\n\t\t255, 80, 219, 163, 200, 39, 226, 34, 248, 9, 83, 5, 254, 9,\n\t\t246, 77, 167, 108, 99, 80, 203, 255, 0, 120, 203, 29, 133,\n\t\t47, 62, 122, 225, 97, 222, 34, 132, 186, 17, 252, 255, 65,\n\t\t184, 74, 44, 2, 100, 142, 196, 64, 136, 3, 149, 161, 205,\n\t\t244, 58, 26, 32, 128, 3, 62, 128, 68, 198, 207, 1, 1, 90,\n\t\t67, 136, 148, 212, 99, 254, 109, 252, 242, 145, 85, 96, 122,\n\t\t135, 202, 69, 139, 45, 81, 58, 94, 86, 43, 110, 28, 76, 78,\n\t\t72, 183, 132, 22, 48, 85, 140, 240, 4, 153, 121, 95, 205,\n\t\t33, 173, 38, 137, 23, 197, 145, 23, 148, 163, 174, 9, 32,\n\t\t14, 101, 170, 19, 87, 39, 54, 203, 135, 105, 74, 71, 250,\n\t\t248, 42, 165, 176, 205, 198, 242, 115, 33, 58, 149, 149, 7,\n\t\t132, 141, 218, 146, 15, 148, 137, 174, 249, 250, 173, 50,\n\t\t213, 101, 229, 106, 138, 70, 248, 71, 137, 55, 171, 18, 32,\n\t\t192, 21, 225, 80, 92, 228, 7, 95, 172, 218, 148, 154, 212,\n\t\t126, 216, 144, 44, 200, 165, 132, 20, 29, 148, 194, 199, 53,\n\t\t165, 201, 10, 134, 50, 164, 36, 139, 114, 200, 203, 105, 202,\n\t\t37, 113, 4, 84, 48, 165, 243, 41, 21, 66, 194, 188, 165, 34,\n\t\t177, 150, 47, 21, 5, 214, 122, 42, 154, 96, 117, 226, 184,\n\t\t232, 13, 126, 176, 199, 23, 251, 3, 104, 196, 16, 1, 212,\n\t\t10, 1, 21, 74, 168, 151, 76, 41, 194, 57, 166, 52, 109, 220,\n\t\t80, 134, 250, 72, 41, 135, 62, 177, 83, 46, 149, 121, 77,\n\t\t5, 51, 170, 212, 84, 8, 229, 51, 70, 69, 242, 92, 56, 42,\n\t\t10, 85, 135, 82, 209, 130, 214, 235, 18, 156, 148, 13, 2,\n\t\t123, 126, 34, 190, 116, 132, 241, 230, 140, 122, 131, 0, 34,\n\t\t13, 13, 254, 137, 205, 167, 253, 242, 196, 188, 241, 83, 111,\n\t\t197, 148, 238, 97, 222, 110, 236, 135, 128, 168, 209, 248,\n\t\t151, 45, 224, 235, 201, 94, 86, 86, 9, 84, 72, 216, 169, 14,\n\t\t99, 95, 202, 13, 235, 221, 45, 42, 142, 98, 240, 101, 69,\n\t\t130, 127, 199, 140, 27, 247, 247, 165, 114, 138, 206, 65,\n\t\t90, 12, 249, 104, 79, 18, 36, 135, 233, 95, 242, 252, 39,\n\t\t120, 74, 40, 167, 75, 101, 98, 85, 174, 10, 36, 67, 176, 190,\n\t\t77, 230, 160, 60, 176, 161, 122, 99, 36, 41, 243, 228, 68,\n\t\t239, 166, 41, 213, 165, 160, 44, 134, 34, 202, 44, 246, 193,\n\t\t206, 143, 178, 149, 40, 129, 69, 235, 6, 134, 43, 17, 253,\n\t\t96, 79, 172, 198, 39, 198, 70, 39, 213, 100, 40, 148, 253,\n\t\t169, 212, 118, 207, 10, 172, 234, 108, 79, 76, 111, 226, 88,\n\t\t4, 97, 212, 100, 27, 4, 143, 35, 243, 85, 54, 45, 8, 68, 85,\n\t\t22, 243, 231, 116, 3, 162, 76, 119, 198, 147, 235, 157, 199,\n\t\t42, 62, 192, 136, 201, 108, 166, 24, 27, 217, 224, 57, 160,\n\t\t218, 90, 4, 145, 101, 30, 3, 169, 142, 138, 195, 71, 192,\n\t\t43, 197, 166, 216, 85, 238, 192, 21, 161, 172, 215, 184, 82,\n\t\t197, 207, 96, 124, 25, 199, 157, 108, 161, 170, 210, 121,\n\t\t66, 141, 172, 178, 77, 40, 203, 247, 84, 175, 236, 71, 127,\n\t\t121, 207, 137, 200, 174, 226, 23, 59, 243, 225, 106, 195,\n\t\t111, 5, 255, 42, 233, 30, 33, 149, 54, 45, 219, 113, 125,\n\t\t124, 61, 94, 63, 127, 0, 17, 38, 148, 113, 33, 149, 54, 214,\n\t\t249, 32, 140, 226, 36, 205, 242, 162, 172, 234, 166, 237,\n\t\t250, 97, 156, 230, 101, 221, 246, 227, 188, 238, 231, 253,\n\t\t126, 0, 16, 4, 134, 64, 97, 112, 4, 114, 136, 66, 99, 176,\n\t\t56, 60, 129, 232, 223, 52, 252, 239, 65, 161, 210, 6, 117,\n\t\t6, 147, 197, 230, 112, 121, 124, 129, 80, 36, 150, 72, 101,\n\t\t114, 133, 82, 69, 85, 77, 93, 67, 83, 75, 91, 71, 87, 79,\n\t\t223, 192, 208, 200, 216, 196, 212, 204, 220, 194, 114, 181,\n\t\t222, 108, 119, 251, 195, 241, 116, 190, 92, 111, 247, 199,\n\t\t243, 245, 254, 124, 127, 127, 155, 238, 136, 160, 181, 179,\n\t\t10, 218, 53, 67, 237, 61, 139, 223, 7, 38, 171, 14, 184, 118,\n\t\t43, 195, 54, 44, 34, 123, 2, 221, 123, 74, 176, 97, 135, 129,\n\t\t234, 92, 41, 161, 57, 79, 234, 25, 103, 31, 209, 239, 158,\n\t\t190, 111, 255, 13, 173, 146, 228, 215, 192, 51, 222, 112,\n\t\t132, 83, 57, 99, 176, 56, 123, 96, 204, 1, 148, 243, 26, 143,\n\t\t94, 82, 194, 92, 15, 171, 112, 64, 157, 236, 181, 58, 41,\n\t\t152, 71, 31, 65, 171, 91, 64, 135, 24, 110, 27, 11, 56, 133,\n\t\t139, 192, 107, 207, 152, 36, 79, 94, 133, 152, 153, 243, 160,\n\t\t225, 57, 134, 240, 30, 33, 7, 87, 132, 114, 117, 179, 189,\n\t\t245, 237, 224, 130, 140, 107, 125, 209, 134, 180, 18, 113,\n\t\t191, 131, 92, 114, 231, 165, 220, 58, 131, 51, 30, 236, 191,\n\t\t129, 226, 128, 249, 140, 44, 5, 71, 230, 116, 167, 151, 198,\n\t\t75, 183, 32, 243, 16, 197, 10, 85, 224, 169, 112, 51, 23,\n\t\t83, 56, 148, 212, 219, 91, 34, 75, 90, 149, 217, 58, 158,\n\t\t19, 198, 97, 199, 219, 34, 160, 97, 168, 50, 72, 80, 13, 183,\n\t\t38, 107, 74, 148, 83, 179, 53, 200, 122, 36, 139, 22, 11,\n\t\t96, 29, 105, 10, 152, 125, 120, 32, 214, 0, 36, 110, 242,\n\t\t219, 215, 138, 173, 124, 26, 168, 6, 66, 186, 149, 24, 135,\n\t\t29, 108, 108, 237, 88, 99, 75, 139, 197, 19, 167, 61, 100,\n\t\t113, 83, 158, 173, 229, 46, 137, 100, 238, 176, 185, 230,\n\t\t158, 130, 84, 65, 79, 58, 44, 141, 56, 80, 222, 56, 249, 75,\n\t\t88, 71, 39, 120, 17, 13, 39, 61, 2, 175, 30, 249, 45, 194,\n\t\t47, 23, 212, 154, 101, 190, 80, 175, 33, 51, 136, 4, 245,\n\t\t145, 206, 248, 210, 10, 45, 144, 252, 180, 158, 41, 160, 176,\n\t\t171, 244, 2, 223, 200, 180, 138, 255, 0, 242, 54, 21, 40,\n\t\t168, 174, 48, 100, 60, 172, 173, 46, 194, 99, 198, 139, 5,\n\t\t241, 167, 246, 96, 250, 85, 169, 15, 207, 98, 24, 156, 135,\n\t\t82, 73, 114, 170, 181, 204, 178, 252, 161, 175, 110, 83, 105,\n\t\t229, 213, 227, 105, 249, 57, 255, 100, 149, 252, 126, 115,\n\t\t89, 42, 246, 74, 241, 140, 99, 148, 166, 27, 131, 217, 216,\n\t\t47, 130, 42, 126, 63, 237, 81, 46, 76, 215, 249, 104, 243,\n\t\t100, 38, 106, 147, 151, 233, 14, 21, 103, 136, 184, 208, 90,\n\t\t230, 30, 37, 163, 38, 236, 64, 240, 248, 210, 231, 97, 135,\n\t\t113, 189, 98, 72, 250, 113, 239, 104, 68, 197, 1, 244, 217,\n\t\t246, 156, 160, 76, 3, 0, 202, 47, 106, 46, 208, 12, 91, 4,\n\t\t84, 64, 150, 226, 34, 129, 23, 178, 8, 59, 190, 116, 91, 52,\n\t\t142, 122, 207, 16, 130, 162, 153, 27, 195, 14, 15, 28, 50,\n\t\t237, 83, 51, 212, 182, 237, 73, 193, 45, 16, 54, 60, 58, 48,\n\t\t100, 189, 111, 23, 202, 65, 46, 46, 193, 149, 18, 221, 17,\n\t\t223, 140, 242, 6, 175, 57, 20, 173, 138, 226, 104, 25, 133,\n\t\t86, 134, 29, 199, 170, 96, 177, 152, 228, 208, 230, 97, 54,\n\t\t122, 166, 50, 4, 188, 63, 160, 26, 31, 4, 179, 57, 162, 190,\n\t\t151, 128, 0, 187, 93, 234, 95, 128, 58, 115, 234, 175, 247,\n\t\t213, 183, 242, 188, 97, 122, 77, 146, 241, 230, 22, 98, 110,\n\t\t32, 86, 48, 212, 31, 156, 115, 221, 5, 131, 84, 59, 141, 79,\n\t\t236, 162, 202, 218, 123, 200, 155, 222, 250, 64, 247, 251,\n\t\t237, 184, 114, 179, 136, 221, 24, 14, 92, 84, 107, 61, 143,\n\t\t155, 82, 2, 143, 29, 114, 231, 97, 135, 198, 15, 114, 58,\n\t\t22, 132, 244, 166, 135, 59, 187, 32, 212, 9, 71, 179, 169,\n\t\t96, 238, 137, 219, 127, 163, 92, 63, 34, 93, 69, 80, 59, 249,\n\t\t92, 245, 13, 17, 24, 250, 43, 174, 146, 183, 134, 159, 46,\n\t\t155, 44, 233, 253, 16, 22, 157, 17, 2, 238, 67, 186, 157,\n\t\t204, 198, 29, 83, 40, 164, 192, 64, 70, 144, 240, 158, 161,\n\t\t109, 241, 100, 161, 80, 97, 254, 97, 120, 178, 36, 196, 77,\n\t\t74, 24, 90, 201, 0, 254, 125, 63, 61, 21, 102, 202, 155, 195,\n\t\t27, 218, 209, 32, 56, 175, 183, 1, 193, 162, 178, 77, 8, 89,\n\t\t77, 53, 88, 211, 162, 100, 216, 87, 82, 12, 0, 0, 1, 0, 0,\n\t\t255, 255, 80, 75, 7, 8, 141, 169, 245, 12, 250, 52, 0, 0,\n\t\t240, 52, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146,\n\t\t78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 9, 0, 119,\n\t\t101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 115, 111,\n\t\t108, 105, 100, 45, 57, 48, 48, 46, 101, 111, 116, 85, 84,\n\t\t5, 0, 1, 127, 106, 41, 96, 236, 252, 123, 124, 92, 85, 189,\n\t\t55, 142, 191, 63, 123, 102, 239, 53, 123, 102, 95, 102, 50,\n\t\t183, 92, 38, 201, 100, 38, 153, 73, 155, 52, 73, 51, 147,\n\t\t153, 148, 166, 233, 208, 134, 18, 218, 66, 131, 4, 108, 161,\n\t\t66, 128, 64, 11, 20, 8, 80, 165, 64, 197, 0, 197, 83, 20,\n\t\t181, 64, 133, 122, 68, 136, 88, 177, 98, 197, 170, 136, 229,\n\t\t38, 3, 167, 74, 125, 44, 88, 181, 98, 149, 138, 85, 65, 171,\n\t\t7, 207, 153, 164, 105, 18, 160, 204, 252, 94, 251, 50, 147,\n\t\t153, 180, 197, 227, 243, 60, 175, 223, 63, 223, 39, 153, 189,\n\t\t247, 186, 237, 181, 62, 107, 173, 207, 250, 220, 214, 103,\n\t\t237, 181, 191, 229, 176, 252, 32, 7, 2, 7, 237, 143, 3, 111,\n\t\t209, 3, 32, 108, 210, 67, 203, 251, 200, 72, 112, 2, 249,\n\t\t28, 12, 107, 207, 193, 61, 127, 251, 56, 78, 248, 107, 199,\n\t\t18, 92, 143, 235, 176, 30, 65, 156, 142, 155, 113, 5, 110,\n\t\t194, 245, 184, 22, 87, 32, 136, 14, 4, 177, 4, 55, 226, 10,\n\t\t61, 118, 30, 174, 199, 58, 92, 133, 65, 0, 246, 146, 216,\n\t\t82, 196, 208, 142, 121, 104, 65, 82, 127, 6, 209, 248, 33,\n\t\t181, 126, 2, 87, 224, 70, 220, 132, 171, 244, 18, 167, 233,\n\t\t237, 180, 160, 19, 45, 152, 139, 89, 255, 219, 16, 25, 29,\n\t\t133, 140, 97, 88, 208, 183, 100, 73, 255, 217, 247, 252, 234,\n\t\t158, 49, 112, 7, 219, 0, 4, 206, 236, 57, 99, 9, 102, 91,\n\t\t190, 11, 238, 160, 54, 46, 53, 43, 206, 107, 109, 95, 124,\n\t\t215, 219, 15, 3, 180, 18, 192, 192, 229, 215, 94, 58, 148,\n\t\t26, 59, 107, 17, 224, 28, 4, 28, 101, 107, 46, 189, 105, 40,\n\t\t151, 131, 5, 220, 65, 27, 0, 219, 154, 117, 183, 92, 121,\n\t\t254, 252, 51, 46, 7, 102, 55, 130, 187, 173, 119, 237, 21,\n\t\t151, 14, 122, 86, 95, 244, 53, 0, 135, 0, 36, 214, 174, 189,\n\t\t226, 82, 235, 98, 254, 29, 128, 60, 0, 234, 215, 94, 187,\n\t\t126, 67, 39, 227, 246, 1, 180, 27, 80, 118, 174, 187, 254,\n\t\t242, 75, 173, 115, 231, 30, 0, 170, 54, 0, 202, 174, 107,\n\t\t47, 221, 48, 100, 149, 161, 149, 239, 4, 16, 188, 238, 210,\n\t\t107, 175, 88, 252, 131, 196, 1, 112, 95, 31, 2, 248, 134,\n\t\t161, 235, 111, 90, 95, 45, 111, 57, 2, 238, 137, 109, 192,\n\t\t156, 107, 181, 190, 209, 89, 207, 62, 250, 241, 191, 237,\n\t\t25, 188, 68, 237, 58, 6, 135, 49, 255, 7, 159, 217, 149, 50,\n\t\t159, 103, 228, 222, 201, 61, 197, 125, 145, 94, 213, 224,\n\t\t5, 7, 202, 143, 9, 165, 115, 105, 128, 27, 206, 189, 3, 112,\n\t\t95, 52, 211, 11, 127, 150, 111, 105, 41, 150, 111, 225, 111,\n\t\t8, 234, 9, 156, 254, 150, 86, 42, 101, 22, 177, 210, 148,\n\t\t101, 19, 120, 128, 150, 211, 149, 0, 206, 52, 159, 199, 80,\n\t\t129, 77, 197, 56, 168, 189, 233, 44, 170, 187, 239, 202, 51,\n\t\t6, 49, 156, 193, 84, 183, 14, 67, 11, 237, 67, 255, 176, 49,\n\t\t79, 160, 211, 232, 235, 90, 207, 65, 92, 190, 248, 19, 90,\n\t\t93, 185, 247, 57, 19, 8, 14, 185, 44, 151, 130, 74, 233, 124,\n\t\t188, 244, 162, 129, 146, 56, 227, 134, 81, 206, 1, 78, 46,\n\t\t165, 199, 109, 92, 42, 119, 92, 207, 75, 153, 249, 249, 247,\n\t\t210, 102, 190, 137, 50, 52, 108, 148, 41, 105, 103, 216, 136,\n\t\t235, 121, 69, 239, 209, 48, 108, 148, 130, 207, 40, 159, 123,\n\t\t79, 79, 43, 186, 140, 114, 70, 186, 217, 110, 190, 14, 155,\n\t\t14, 175, 209, 78, 170, 164, 206, 116, 105, 219, 90, 62, 165,\n\t\t115, 83, 148, 66, 149, 118, 153, 176, 158, 236, 50, 234, 157,\n\t\t174, 131, 215, 174, 153, 245, 154, 117, 187, 11, 239, 164,\n\t\t114, 217, 124, 159, 57, 253, 153, 123, 151, 75, 229, 114,\n\t\t211, 48, 228, 114, 102, 29, 70, 125, 195, 176, 228, 251, 82,\n\t\t120, 22, 198, 41, 247, 190, 246, 174, 62, 79, 195, 197, 249,\n\t\t185, 15, 180, 171, 208, 126, 106, 250, 105, 148, 201, 101,\n\t\t11, 253, 29, 158, 30, 163, 226, 139, 50, 133, 186, 222, 231,\n\t\t96, 206, 165, 57, 55, 211, 115, 148, 59, 54, 179, 175, 165,\n\t\t227, 105, 180, 51, 115, 110, 245, 119, 83, 96, 218, 133, 52,\n\t\t252, 200, 207, 93, 10, 114, 254, 42, 238, 39, 77, 143, 149,\n\t\t62, 78, 218, 92, 206, 152, 51, 109, 44, 140, 121, 47, 129,\n\t\t175, 228, 42, 215, 175, 148, 81, 31, 1, 229, 250, 101, 198,\n\t\t243, 243, 161, 151, 157, 57, 206, 230, 120, 228, 47, 110,\n\t\t122, 172, 109, 70, 127, 180, 121, 208, 251, 123, 156, 155,\n\t\t198, 57, 237, 89, 174, 245, 13, 105, 56, 75, 234, 75, 153,\n\t\t235, 103, 56, 143, 195, 198, 156, 159, 128, 99, 249, 254,\n\t\t26, 115, 97, 131, 209, 135, 153, 120, 103, 212, 151, 153,\n\t\t209, 223, 124, 63, 131, 185, 15, 244, 231, 48, 220, 133, 181,\n\t\t102, 206, 57, 165, 115, 89, 237, 50, 230, 201, 8, 27, 113,\n\t\t19, 126, 128, 199, 244, 56, 87, 149, 140, 119, 126, 13, 15,\n\t\t79, 143, 155, 190, 254, 135, 167, 231, 128, 10, 107, 184,\n\t\t8, 127, 12, 220, 52, 112, 124, 56, 119, 60, 95, 230, 159,\n\t\t93, 102, 123, 172, 104, 156, 156, 148, 134, 202, 97, 38, 206,\n\t\t21, 214, 38, 138, 215, 89, 9, 142, 148, 174, 225, 233, 119,\n\t\t131, 26, 108, 69, 235, 100, 6, 253, 225, 82, 39, 212, 103,\n\t\t206, 91, 46, 71, 65, 19, 214, 252, 243, 240, 140, 249, 206,\n\t\t231, 29, 54, 159, 65, 20, 240, 148, 27, 46, 197, 215, 226,\n\t\t180, 162, 245, 162, 211, 203, 66, 125, 233, 233, 247, 79,\n\t\t50, 86, 40, 204, 99, 106, 58, 78, 233, 220, 7, 92, 126, 44,\n\t\t79, 92, 31, 70, 57, 29, 174, 220, 123, 69, 180, 198, 150,\n\t\t199, 183, 124, 187, 122, 61, 90, 90, 1, 207, 115, 199, 166,\n\t\t215, 157, 65, 47, 140, 242, 185, 119, 139, 113, 161, 128,\n\t\t167, 121, 60, 196, 137, 215, 9, 115, 82, 146, 102, 240, 39,\n\t\t26, 49, 224, 42, 90, 11, 197, 235, 139, 77, 247, 91, 155,\n\t\t31, 227, 34, 64, 46, 244, 53, 31, 206, 195, 6, 157, 222, 204,\n\t\t88, 123, 165, 99, 156, 95, 243, 164, 209, 239, 148, 206, 27,\n\t\t141, 241, 30, 40, 162, 79, 26, 126, 77, 227, 140, 179, 4,\n\t\t103, 242, 125, 40, 166, 35, 208, 249, 89, 190, 111, 199, 201,\n\t\t152, 103, 173, 47, 66, 97, 93, 101, 10, 253, 45, 193, 199,\n\t\t252, 122, 45, 164, 21, 243, 187, 162, 53, 94, 192, 213, 84,\n\t\t17, 174, 204, 132, 43, 53, 93, 118, 230, 187, 211, 235, 185,\n\t\t128, 59, 160, 195, 102, 187, 195, 197, 227, 99, 142, 245,\n\t\t112, 238, 189, 105, 56, 117, 222, 100, 180, 19, 44, 148, 203,\n\t\t154, 120, 146, 213, 121, 225, 52, 237, 43, 140, 79, 161, 190,\n\t\t252, 152, 6, 115, 199, 75, 232, 251, 140, 171, 56, 125, 58,\n\t\t108, 192, 65, 197, 60, 33, 117, 242, 247, 75, 219, 157, 174,\n\t\t231, 84, 87, 73, 91, 152, 57, 142, 90, 159, 138, 224, 79,\n\t\t21, 141, 121, 17, 92, 39, 192, 143, 220, 84, 1, 39, 75, 198,\n\t\t127, 122, 29, 83, 49, 14, 12, 23, 225, 194, 90, 109, 253,\n\t\t21, 203, 110, 70, 251, 5, 220, 202, 20, 173, 221, 225, 233,\n\t\t185, 43, 94, 3, 133, 43, 85, 76, 171, 167, 219, 42, 200, 3,\n\t\t169, 82, 92, 43, 208, 88, 204, 160, 65, 169, 162, 186, 243,\n\t\t107, 81, 227, 103, 5, 220, 207, 189, 95, 188, 22, 78, 184,\n\t\t166, 74, 214, 73, 97, 126, 78, 40, 55, 147, 95, 7, 75, 231,\n\t\t250, 100, 245, 209, 76, 62, 62, 77, 43, 178, 133, 252, 162,\n\t\t113, 41, 165, 69, 5, 188, 204, 209, 240, 140, 186, 52, 28,\n\t\t45, 145, 15, 114, 199, 10, 239, 149, 155, 235, 91, 43, 159,\n\t\t43, 158, 127, 227, 29, 74, 231, 38, 166, 231, 52, 119, 92,\n\t\t195, 121, 26, 214, 100, 56, 253, 250, 7, 87, 52, 150, 5, 222,\n\t\t82, 132, 99, 5, 56, 135, 75, 231, 173, 208, 135, 195, 121,\n\t\t184, 13, 156, 42, 89, 223, 48, 249, 75, 186, 52, 173, 100,\n\t\t14, 75, 113, 171, 84, 79, 8, 22, 209, 20, 228, 198, 139, 199,\n\t\t191, 24, 95, 11, 115, 152, 46, 194, 189, 225, 19, 198, 247,\n\t\t253, 66, 127, 246, 231, 222, 47, 173, 195, 148, 27, 138, 240,\n\t\t185, 0, 191, 198, 147, 242, 115, 126, 184, 72, 158, 30, 54,\n\t\t121, 250, 73, 240, 179, 240, 238, 112, 49, 46, 152, 52, 124,\n\t\t56, 55, 86, 60, 71, 92, 158, 239, 232, 240, 154, 116, 46,\n\t\t165, 95, 57, 110, 38, 157, 193, 244, 248, 113, 121, 156, 73,\n\t\t205, 24, 183, 84, 41, 93, 62, 97, 222, 76, 90, 98, 148, 45,\n\t\t232, 4, 121, 90, 145, 45, 150, 225, 13, 24, 76, 58, 106, 206,\n\t\t175, 206, 243, 242, 107, 7, 8, 26, 50, 88, 137, 158, 241,\n\t\t129, 1, 67, 110, 146, 67, 9, 30, 7, 205, 252, 119, 11, 227,\n\t\t149, 214, 250, 159, 239, 3, 138, 248, 170, 57, 30, 195, 197,\n\t\t120, 98, 182, 81, 220, 191, 146, 177, 40, 193, 169, 96, 209,\n\t\t59, 193, 153, 227, 55, 147, 230, 106, 10, 179, 121, 5, 12,\n\t\t61, 214, 46, 193, 162, 135, 2, 176, 138, 26, 244, 27, 116,\n\t\t57, 121, 67, 134, 203, 240, 25, 37, 227, 206, 120, 51, 21,\n\t\t153, 64, 166, 38, 211, 157, 233, 201, 156, 147, 185, 40, 115,\n\t\t113, 230, 186, 204, 198, 204, 112, 230, 211, 153, 123, 50,\n\t\t159, 203, 220, 151, 249, 98, 102, 91, 230, 145, 204, 87, 51,\n\t\t79, 102, 190, 151, 121, 45, 243, 139, 204, 155, 153, 195,\n\t\t153, 63, 103, 254, 51, 51, 158, 201, 142, 58, 70, 149, 81,\n\t\t215, 104, 96, 180, 102, 52, 52, 218, 50, 58, 119, 180, 99,\n\t\t244, 180, 209, 238, 209, 158, 209, 37, 163, 203, 70, 207,\n\t\t25, 93, 53, 122, 241, 232, 21, 163, 119, 141, 110, 30, 125,\n\t\t96, 244, 139, 163, 15, 141, 126, 105, 244, 43, 163, 79, 142,\n\t\t238, 26, 253, 254, 232, 115, 163, 63, 29, 125, 109, 244, 224,\n\t\t232, 239, 70, 223, 28, 253, 203, 232, 59, 163, 19, 163, 217,\n\t\t49, 26, 99, 99, 142, 177, 242, 177, 154, 177, 57, 99, 137,\n\t\t177, 121, 99, 103, 141, 157, 51, 246, 177, 177, 117, 99, 55,\n\t\t143, 221, 58, 246, 217, 177, 207, 141, 221, 63, 246, 197,\n\t\t177, 127, 31, 123, 100, 108, 251, 216, 142, 177, 167, 199,\n\t\t158, 25, 123, 110, 236, 133, 177, 151, 199, 94, 27, 251, 229,\n\t\t216, 161, 177, 183, 199, 254, 58, 246, 247, 177, 127, 140,\n\t\t141, 141, 77, 140, 189, 59, 150, 61, 202, 31, 149, 142, 214,\n\t\t28, 109, 60, 218, 121, 244, 162, 163, 31, 59, 58, 112, 244,\n\t\t178, 163, 119, 30, 253, 250, 209, 23, 143, 190, 116, 244,\n\t\t199, 71, 127, 122, 244, 213, 163, 191, 56, 250, 251, 163,\n\t\t135, 143, 190, 125, 244, 31, 71, 223, 59, 250, 193, 209, 220,\n\t\t184, 48, 238, 28, 143, 143, 39, 198, 79, 27, 239, 26, 95,\n\t\t56, 126, 250, 248, 226, 241, 51, 198, 207, 28, 95, 54, 126,\n\t\t206, 120, 223, 248, 121, 227, 43, 199, 63, 54, 126, 201, 248,\n\t\t101, 227, 87, 142, 95, 59, 126, 227, 248, 250, 241, 91, 198,\n\t\t63, 53, 126, 231, 248, 191, 141, 127, 118, 252, 243, 227,\n\t\t91, 199, 31, 26, 127, 100, 252, 219, 227, 223, 31, 127, 118,\n\t\t252, 71, 227, 233, 241, 151, 199, 247, 140, 191, 54, 254,\n\t\t171, 241, 55, 198, 255, 48, 254, 231, 99, 226, 177, 251, 142,\n\t\t125, 229, 216, 99, 199, 190, 113, 236, 187, 199, 158, 58,\n\t\t182, 251, 216, 11, 199, 126, 124, 236, 103, 199, 94, 59, 246,\n\t\t203, 99, 191, 57, 246, 187, 99, 135, 142, 253, 225, 216, 31,\n\t\t143, 189, 117, 236, 175, 199, 254, 243, 216, 127, 29, 251,\n\t\t96, 194, 57, 225, 158, 168, 152, 168, 157, 168, 155, 104,\n\t\t155, 72, 78, 116, 77, 156, 62, 209, 51, 113, 230, 196, 210,\n\t\t137, 21, 19, 231, 78, 156, 63, 177, 114, 226, 226, 137, 203,\n\t\t38, 174, 156, 184, 102, 226, 218, 137, 235, 39, 214, 79, 124,\n\t\t98, 226, 150, 137, 141, 19, 159, 154, 216, 52, 113, 207, 196,\n\t\t131, 19, 95, 158, 248, 234, 196, 55, 38, 190, 57, 241, 237,\n\t\t137, 31, 78, 60, 55, 241, 163, 137, 244, 196, 158, 137, 159,\n\t\t79, 252, 98, 226, 87, 19, 191, 158, 248, 205, 196, 111, 39,\n\t\t222, 156, 248, 243, 196, 95, 38, 142, 76, 252, 99, 98, 108,\n\t\t226, 189, 137, 227, 147, 152, 148, 38, 149, 73, 239, 164,\n\t\t127, 178, 102, 50, 52, 57, 107, 178, 117, 114, 193, 100, 106,\n\t\t114, 241, 228, 153, 147, 103, 79, 158, 55, 121, 193, 228,\n\t\t69, 147, 151, 76, 94, 53, 121, 205, 228, 77, 147, 159, 156,\n\t\t188, 99, 114, 211, 228, 230, 201, 123, 39, 183, 78, 62, 56,\n\t\t249, 240, 228, 200, 228, 99, 147, 143, 79, 126, 107, 242,\n\t\t201, 201, 167, 39, 159, 157, 124, 97, 50, 61, 249, 242, 228,\n\t\t143, 39, 255, 215, 228, 107, 147, 251, 39, 127, 57, 249, 187,\n\t\t201, 191, 76, 190, 51, 249, 223, 147, 99, 147, 199, 38, 39,\n\t\t39, 223, 159, 98, 83, 206, 169, 178, 41, 223, 84, 249, 212,\n\t\t236, 169, 214, 169, 238, 92, 14, 200, 32, 99, 205, 176, 140,\n\t\t51, 227, 205, 248, 117, 204, 171, 203, 156, 158, 233, 205,\n\t\t244, 101, 46, 206, 12, 100, 134, 50, 195, 153, 187, 76, 204,\n\t\t123, 32, 179, 45, 243, 112, 102, 36, 243, 181, 204, 174, 76,\n\t\t58, 179, 63, 243, 122, 230, 112, 230, 79, 153, 191, 102, 50,\n\t\t153, 169, 81, 140, 202, 163, 206, 209, 242, 209, 154, 209,\n\t\t224, 104, 253, 104, 219, 104, 108, 52, 57, 186, 96, 52, 53,\n\t\t186, 100, 116, 233, 232, 217, 163, 125, 163, 23, 141, 14,\n\t\t140, 222, 57, 122, 247, 232, 125, 38, 230, 61, 60, 250, 173,\n\t\t209, 93, 163, 223, 27, 221, 61, 154, 30, 125, 85, 199, 188,\n\t\t67, 163, 135, 71, 255, 62, 58, 49, 58, 53, 134, 49, 235, 152,\n\t\t125, 204, 63, 86, 57, 86, 55, 22, 27, 235, 28, 75, 141, 157,\n\t\t61, 118, 238, 216, 186, 177, 27, 198, 110, 209, 49, 111, 139,\n\t\t142, 121, 95, 25, 27, 25, 251, 198, 216, 15, 76, 204, 123,\n\t\t105, 236, 149, 177, 253, 99, 111, 20, 48, 111, 116, 236, 152,\n\t\t142, 121, 220, 81, 81, 199, 188, 228, 209, 149, 38, 230, 221,\n\t\t113, 244, 235, 71, 127, 244, 161, 152, 23, 27, 79, 140, 207,\n\t\t59, 5, 230, 173, 30, 191, 100, 252, 210, 241, 43, 199, 215,\n\t\t142, 15, 141, 175, 31, 191, 121, 252, 147, 227, 119, 140,\n\t\t111, 26, 255, 236, 248, 231, 198, 183, 140, 63, 104, 98, 222,\n\t\t238, 241, 23, 76, 204, 123, 117, 252, 87, 227, 175, 143, 191,\n\t\t57, 254, 167, 241, 247, 142, 249, 143, 61, 112, 236, 209,\n\t\t99, 219, 143, 61, 113, 236, 251, 199, 158, 62, 246, 236, 177,\n\t\t23, 143, 189, 114, 236, 213, 99, 251, 77, 204, 123, 179, 8,\n\t\t243, 142, 23, 97, 94, 203, 68, 114, 98, 126, 9, 230, 157,\n\t\t55, 177, 114, 226, 99, 19, 151, 77, 12, 78, 92, 85, 192, 188,\n\t\t13, 19, 183, 77, 124, 106, 226, 142, 137, 127, 155, 120, 112,\n\t\t98, 219, 196, 136, 137, 121, 79, 155, 152, 247, 31, 37, 152,\n\t\t247, 251, 137, 63, 233, 152, 247, 206, 68, 70, 195, 188, 137,\n\t\t220, 164, 99, 82, 153, 244, 152, 152, 215, 56, 217, 50, 57,\n\t\t191, 4, 243, 46, 156, 188, 88, 199, 188, 27, 39, 55, 78, 14,\n\t\t79, 222, 53, 249, 233, 201, 123, 39, 31, 208, 49, 239, 209,\n\t\t201, 199, 38, 183, 79, 126, 115, 242, 219, 147, 63, 152, 124,\n\t\t102, 242, 133, 201, 23, 39, 95, 158, 220, 51, 249, 211, 201,\n\t\t125, 58, 230, 253, 102, 242, 173, 18, 204, 227, 167, 212,\n\t\t169, 178, 41, 239, 84, 249, 212, 44, 3, 243, 156, 22, 39,\n\t\t231, 36, 39, 212, 156, 154, 85, 143, 171, 239, 171, 239, 170,\n\t\t147, 234, 184, 122, 84, 29, 85, 51, 234, 127, 171, 239, 168,\n\t\t127, 87, 143, 168, 111, 171, 127, 82, 255, 168, 254, 65, 61,\n\t\t164, 190, 161, 254, 78, 253, 173, 186, 79, 253, 153, 250,\n\t\t138, 250, 19, 245, 199, 234, 203, 234, 143, 212, 231, 212,\n\t\t103, 213, 103, 212, 221, 234, 247, 212, 239, 170, 187, 212,\n\t\t239, 168, 79, 170, 223, 86, 119, 170, 79, 168, 223, 84, 119,\n\t\t168, 95, 87, 183, 171, 95, 83, 31, 83, 191, 170, 222, 173,\n\t\t110, 82, 55, 170, 183, 169, 183, 170, 183, 168, 55, 171, 87,\n\t\t171, 87, 169, 107, 213, 65, 117, 64, 253, 152, 218, 175, 158,\n\t\t167, 126, 68, 61, 87, 61, 71, 61, 67, 237, 81, 23, 171, 167,\n\t\t171, 11, 213, 184, 26, 83, 231, 170, 205, 106, 147, 218, 160,\n\t\t134, 212, 160, 90, 166, 42, 170, 172, 124, 160, 28, 87, 222,\n\t\t83, 166, 148, 113, 101, 76, 25, 85, 254, 91, 249, 179, 242,\n\t\t71, 229, 176, 242, 7, 229, 144, 114, 80, 249, 141, 242, 115,\n\t\t229, 21, 229, 39, 202, 30, 229, 101, 229, 69, 229, 5, 229,\n\t\t57, 229, 135, 202, 83, 202, 119, 149, 17, 229, 33, 229, 30,\n\t\t229, 106, 229, 42, 101, 141, 114, 165, 210, 171, 68, 20, 69,\n\t\t145, 21, 187, 194, 20, 171, 66, 242, 132, 60, 46, 103, 228,\n\t\t191, 201, 191, 151, 223, 144, 127, 39, 31, 144, 127, 38, 127,\n\t\t83, 222, 33, 63, 46, 127, 93, 254, 154, 252, 152, 252, 85,\n\t\t121, 68, 126, 84, 126, 88, 254, 119, 249, 75, 242, 67, 242,\n\t\t3, 242, 22, 249, 11, 242, 231, 229, 207, 202, 159, 145, 55,\n\t\t203, 255, 38, 223, 45, 223, 41, 223, 33, 15, 203, 159, 148,\n\t\t55, 202, 183, 201, 183, 202, 235, 229, 43, 229, 75, 229, 143,\n\t\t201, 23, 201, 23, 202, 171, 228, 149, 114, 159, 188, 92, 94,\n\t\t42, 247, 202, 75, 228, 54, 57, 44, 135, 228, 58, 57, 40, 215,\n\t\t200, 213, 114, 64, 174, 146, 43, 229, 10, 185, 92, 246, 203,\n\t\t110, 217, 37, 59, 101, 85, 86, 100, 73, 182, 203, 76, 230,\n\t\t165, 41, 233, 47, 210, 91, 210, 31, 164, 223, 73, 191, 149,\n\t\t94, 149, 94, 145, 246, 72, 105, 233, 71, 210, 243, 210, 179,\n\t\t210, 211, 210, 15, 164, 167, 164, 239, 73, 79, 74, 223, 146,\n\t\t158, 144, 118, 72, 223, 144, 30, 151, 30, 147, 190, 42, 141,\n\t\t72, 143, 74, 95, 145, 30, 150, 254, 93, 250, 188, 244, 57,\n\t\t233, 30, 105, 147, 116, 151, 52, 44, 109, 144, 62, 46, 221,\n\t\t36, 221, 40, 13, 73, 87, 74, 87, 72, 131, 210, 229, 210, 101,\n\t\t210, 165, 210, 197, 210, 69, 210, 42, 105, 165, 116, 190,\n\t\t116, 158, 180, 92, 90, 38, 157, 37, 45, 148, 186, 165, 121,\n\t\t82, 167, 212, 46, 181, 74, 179, 165, 136, 84, 37, 85, 72,\n\t\t126, 201, 35, 169, 146, 93, 178, 73, 188, 100, 113, 188, 231,\n\t\t120, 215, 113, 212, 241, 159, 142, 191, 57, 142, 56, 254,\n\t\t234, 120, 203, 241, 166, 227, 247, 142, 131, 142, 215, 29,\n\t\t191, 118, 28, 112, 252, 210, 241, 11, 199, 207, 28, 63, 117,\n\t\t188, 226, 248, 137, 227, 199, 142, 61, 142, 151, 28, 105,\n\t\t199, 139, 142, 31, 57, 158, 117, 124, 215, 177, 211, 241,\n\t\t132, 99, 135, 227, 113, 199, 215, 29, 143, 57, 190, 228, 184,\n\t\t223, 113, 159, 227, 11, 142, 207, 59, 110, 119, 220, 234,\n\t\t88, 55, 211, 158, 253, 255, 254, 254, 223, 223, 255, 191,\n\t\t254, 72, 64, 1, 253, 40, 47, 50, 150, 20, 56, 201, 75, 255,\n\t\t95, 248, 91, 14, 96, 135, 177, 25, 68, 43, 1, 122, 10, 224,\n\t\t36, 192, 178, 26, 176, 218, 0, 126, 24, 16, 180, 107, 31,\n\t\t192, 82, 0, 123, 11, 176, 173, 5, 68, 39, 32, 30, 1, 236,\n\t\t207, 3, 142, 141, 128, 99, 31, 32, 109, 6, 228, 56, 32, 111,\n\t\t3, 148, 46, 64, 13, 0, 234, 17, 192, 217, 3, 56, 119, 3, 174,\n\t\t20, 224, 218, 8, 184, 50, 64, 217, 17, 192, 189, 22, 240,\n\t\t196, 1, 207, 102, 192, 43, 1, 222, 29, 128, 247, 0, 224, 91,\n\t\t15, 248, 198, 1, 255, 38, 160, 60, 8, 148, 111, 6, 42, 122,\n\t\t129, 74, 27, 80, 249, 60, 80, 181, 14, 8, 4, 129, 192, 126,\n\t\t160, 122, 63, 80, 51, 2, 212, 174, 7, 106, 247, 1, 193, 20,\n\t\t16, 220, 12, 4, 159, 7, 234, 234, 129, 186, 3, 64, 168, 28,\n\t\t8, 173, 7, 66, 123, 129, 208, 113, 32, 188, 26, 8, 111, 5,\n\t\t194, 71, 128, 250, 94, 160, 126, 11, 80, 255, 14, 208, 208,\n\t\t9, 52, 108, 2, 26, 222, 2, 34, 245, 64, 100, 4, 136, 76, 1,\n\t\t209, 45, 64, 35, 128, 198, 183, 128, 89, 157, 192, 172, 135,\n\t\t129, 217, 0, 102, 15, 0, 179, 247, 0, 77, 141, 64, 211, 126,\n\t\t160, 121, 3, 208, 124, 16, 152, 227, 4, 230, 164, 129, 150,\n\t\t32, 208, 114, 8, 104, 237, 7, 90, 119, 3, 109, 61, 192, 220,\n\t\t32, 48, 247, 94, 160, 93, 2, 98, 1, 32, 182, 23, 136, 59,\n\t\t129, 248, 243, 64, 135, 13, 232, 232, 7, 18, 229, 64, 98,\n\t\t4, 72, 28, 2, 146, 189, 64, 103, 61, 208, 57, 5, 204, 91,\n\t\t15, 204, 159, 2, 186, 134, 129, 174, 231, 129, 5, 157, 192,\n\t\t130, 113, 160, 123, 59, 176, 176, 15, 88, 184, 3, 72, 197,\n\t\t129, 212, 8, 112, 122, 0, 56, 125, 39, 176, 168, 11, 88, 180,\n\t\t31, 88, 188, 21, 232, 89, 14, 156, 1, 224, 140, 221, 192,\n\t\t146, 117, 192, 146, 195, 192, 153, 253, 192, 153, 123, 129,\n\t\t222, 46, 224, 44, 27, 112, 214, 102, 96, 233, 22, 96, 233,\n\t\t126, 96, 89, 47, 176, 44, 3, 44, 127, 30, 56, 123, 7, 112,\n\t\t14, 128, 115, 214, 1, 43, 60, 192, 138, 173, 64, 95, 28, 232,\n\t\t219, 5, 244, 29, 1, 206, 29, 2, 62, 210, 5, 156, 183, 23,\n\t\t232, 223, 2, 156, 223, 5, 156, 191, 29, 184, 32, 5, 92, 240,\n\t\t14, 240, 209, 245, 192, 71, 119, 0, 31, 61, 4, 172, 116, 2,\n\t\t43, 83, 192, 202, 173, 192, 202, 35, 192, 170, 114, 96, 85,\n\t\t47, 176, 42, 3, 92, 184, 14, 184, 168, 28, 184, 104, 8, 88,\n\t\t221, 11, 124, 76, 2, 62, 182, 19, 184, 184, 19, 184, 164,\n\t\t25, 24, 176, 2, 3, 67, 192, 64, 6, 184, 116, 29, 112, 217,\n\t\t6, 224, 242, 213, 192, 96, 61, 48, 56, 2, 92, 209, 3, 92,\n\t\t177, 31, 184, 178, 7, 184, 114, 31, 176, 102, 37, 176, 230,\n\t\t45, 96, 237, 90, 96, 237, 83, 192, 218, 227, 192, 85, 189,\n\t\t192, 85, 91, 128, 171, 1, 92, 189, 1, 184, 122, 47, 112, 77,\n\t\t57, 112, 205, 78, 96, 93, 15, 176, 46, 3, 92, 235, 1, 174,\n\t\t221, 6, 92, 231, 1, 174, 219, 0, 92, 95, 14, 12, 109, 3, 110,\n\t\t216, 6, 220, 40, 1, 55, 238, 0, 110, 234, 2, 110, 218, 8,\n\t\t172, 247, 0, 235, 143, 3, 31, 223, 11, 124, 98, 53, 240, 137,\n\t\t189, 192, 205, 30, 96, 67, 35, 112, 75, 39, 112, 203, 86,\n\t\t224, 214, 65, 224, 54, 43, 112, 219, 62, 96, 99, 15, 176,\n\t\t113, 10, 248, 228, 22, 224, 147, 25, 224, 246, 62, 224, 246,\n\t\t93, 192, 167, 60, 192, 167, 142, 0, 195, 67, 192, 240, 65,\n\t\t224, 142, 70, 224, 142, 13, 192, 157, 245, 192, 157, 67, 192,\n\t\t157, 123, 129, 187, 226, 192, 93, 105, 96, 211, 70, 96, 211,\n\t\t17, 224, 238, 30, 224, 238, 135, 129, 187, 167, 128, 79, 239,\n\t\t6, 254, 173, 7, 248, 183, 227, 192, 230, 205, 192, 61, 65,\n\t\t224, 158, 17, 224, 51, 207, 3, 159, 117, 2, 159, 125, 10,\n\t\t184, 119, 4, 248, 220, 189, 192, 231, 135, 128, 47, 244, 3,\n\t\t91, 122, 129, 251, 186, 128, 251, 1, 220, 191, 23, 120, 160,\n\t\t19, 120, 96, 4, 216, 218, 15, 108, 221, 1, 124, 209, 3, 124,\n\t\t241, 0, 240, 96, 27, 240, 224, 58, 224, 161, 56, 240, 208,\n\t\t1, 96, 219, 122, 224, 75, 141, 192, 151, 210, 192, 191, 175,\n\t\t4, 190, 188, 17, 120, 120, 4, 248, 202, 22, 224, 17, 9, 120,\n\t\t228, 0, 240, 104, 23, 240, 104, 6, 24, 201, 0, 95, 157, 2,\n\t\t30, 219, 11, 124, 109, 37, 240, 181, 61, 192, 246, 221, 192,\n\t\t215, 135, 129, 199, 227, 192, 227, 135, 128, 111, 172, 5,\n\t\t118, 116, 1, 223, 116, 2, 223, 220, 1, 60, 241, 20, 240, 173,\n\t\t20, 240, 173, 93, 192, 78, 27, 176, 115, 39, 240, 237, 181,\n\t\t192, 183, 247, 2, 79, 30, 0, 190, 211, 3, 124, 231, 48, 176,\n\t\t107, 63, 240, 221, 1, 224, 251, 78, 224, 251, 123, 129, 167,\n\t\t122, 128, 31, 4, 129, 31, 60, 5, 60, 125, 16, 248, 225, 38,\n\t\t224, 135, 25, 96, 247, 86, 224, 153, 213, 192, 51, 7, 128,\n\t\t103, 251, 129, 231, 58, 129, 231, 182, 2, 207, 75, 192, 243,\n\t\t59, 128, 23, 108, 192, 11, 203, 129, 31, 173, 7, 94, 236,\n\t\t7, 210, 229, 64, 250, 41, 224, 165, 237, 192, 203, 67, 192,\n\t\t127, 180, 1, 123, 218, 128, 31, 15, 2, 63, 41, 7, 126, 50,\n\t\t2, 188, 226, 1, 94, 217, 8, 236, 141, 3, 123, 247, 3, 63,\n\t\t221, 3, 252, 175, 237, 192, 207, 54, 1, 251, 86, 3, 251, 142,\n\t\t3, 175, 110, 1, 94, 43, 7, 94, 91, 7, 188, 182, 3, 248, 249,\n\t\t110, 96, 255, 32, 240, 11, 39, 240, 139, 205, 192, 47, 203,\n\t\t129, 95, 190, 5, 252, 170, 31, 248, 213, 30, 224, 64, 28,\n\t\t56, 48, 2, 252, 218, 10, 252, 186, 31, 120, 221, 9, 188, 158,\n\t\t6, 126, 179, 21, 248, 205, 17, 224, 96, 31, 240, 219, 65,\n\t\t224, 183, 25, 224, 119, 91, 128, 55, 2, 192, 27, 219, 128,\n\t\t67, 41, 224, 208, 33, 224, 247, 131, 192, 239, 15, 0, 111,\n\t\t110, 2, 254, 208, 8, 252, 97, 39, 112, 120, 61, 112, 56, 3,\n\t\t252, 113, 53, 240, 39, 39, 240, 167, 237, 192, 159, 215, 3,\n\t\t111, 5, 129, 183, 180, 231, 1, 224, 237, 13, 192, 219, 7,\n\t\t129, 191, 4, 129, 191, 108, 5, 254, 114, 24, 248, 235, 106,\n\t\t224, 72, 23, 240, 55, 27, 240, 183, 109, 192, 223, 215, 3,\n\t\t255, 217, 5, 188, 99, 3, 254, 97, 3, 254, 171, 30, 248, 239,\n\t\t46, 32, 179, 23, 24, 125, 10, 24, 59, 2, 28, 77, 3, 227, 123,\n\t\t129, 99, 91, 128, 137, 30, 96, 210, 3, 76, 110, 4, 166, 2,\n\t\t192, 212, 113, 224, 221, 93, 192, 123, 131, 192, 251, 229,\n\t\t192, 251, 251, 128, 227, 235, 128, 108, 16, 200, 30, 6, 114,\n\t\t71, 64, 232, 4, 97, 8, 132, 119, 64, 92, 23, 200, 218, 8,\n\t\t178, 110, 0, 241, 141, 32, 126, 4, 36, 172, 5, 49, 15, 136,\n\t\t61, 12, 178, 213, 131, 108, 59, 64, 98, 0, 36, 102, 64, 246,\n\t\t45, 32, 71, 16, 164, 73, 154, 142, 183, 64, 82, 61, 72, 26,\n\t\t4, 73, 59, 65, 82, 6, 36, 63, 12, 82, 60, 32, 101, 8, 164,\n\t\t236, 5, 169, 65, 144, 186, 30, 164, 238, 5, 57, 3, 32, 231,\n\t\t110, 144, 171, 25, 228, 218, 5, 42, 235, 2, 149, 237, 3, 185,\n\t\t187, 64, 238, 45, 32, 247, 91, 32, 79, 31, 200, 179, 11, 228,\n\t\t29, 6, 121, 223, 1, 249, 158, 7, 249, 151, 131, 252, 251,\n\t\t64, 229, 113, 80, 249, 195, 160, 10, 9, 84, 105, 5, 85, 222,\n\t\t11, 170, 124, 11, 84, 181, 30, 20, 144, 64, 129, 167, 64,\n\t\t213, 1, 80, 205, 106, 80, 77, 6, 20, 28, 2, 5, 223, 1, 213,\n\t\t109, 5, 133, 60, 160, 208, 126, 80, 120, 29, 168, 62, 5, 106,\n\t\t232, 3, 69, 156, 160, 72, 31, 40, 10, 80, 52, 0, 138, 142,\n\t\t128, 26, 215, 131, 102, 237, 4, 205, 94, 9, 154, 253, 20,\n\t\t168, 105, 53, 168, 41, 3, 106, 142, 131, 154, 247, 130, 230,\n\t\t172, 4, 181, 244, 130, 90, 87, 130, 218, 82, 160, 185, 86,\n\t\t208, 220, 167, 64, 237, 61, 160, 246, 195, 160, 216, 58, 80,\n\t\t124, 27, 40, 62, 5, 234, 120, 24, 148, 232, 3, 37, 142, 131,\n\t\t146, 27, 117, 215, 22, 234, 220, 2, 154, 215, 15, 58, 173,\n\t\t7, 52, 191, 25, 52, 127, 10, 212, 181, 21, 180, 32, 0, 90,\n\t\t176, 17, 212, 93, 15, 234, 62, 0, 90, 184, 14, 148, 26, 1,\n\t\t157, 222, 9, 58, 61, 13, 90, 212, 5, 90, 116, 16, 180, 56,\n\t\t3, 234, 185, 23, 212, 115, 28, 116, 198, 14, 208, 146, 52,\n\t\t232, 204, 123, 65, 189, 61, 160, 222, 67, 160, 165, 141, 160,\n\t\t101, 229, 160, 101, 59, 64, 203, 215, 130, 150, 63, 15, 58,\n\t\t187, 13, 116, 246, 94, 208, 57, 109, 160, 115, 14, 128, 86,\n\t\t140, 128, 250, 234, 65, 125, 195, 160, 190, 12, 232, 220,\n\t\t227, 160, 143, 108, 2, 157, 231, 1, 245, 15, 129, 206, 183,\n\t\t129, 206, 223, 1, 186, 160, 31, 116, 193, 20, 232, 163, 235,\n\t\t65, 31, 61, 14, 90, 185, 29, 180, 170, 28, 180, 234, 0, 232,\n\t\t194, 56, 232, 162, 131, 160, 213, 155, 65, 171, 143, 131,\n\t\t46, 238, 2, 93, 188, 23, 116, 73, 27, 232, 146, 189, 160,\n\t\t129, 245, 160, 75, 235, 65, 151, 110, 6, 93, 22, 4, 93, 182,\n\t\t15, 116, 249, 110, 208, 224, 0, 104, 112, 28, 116, 69, 15,\n\t\t232, 74, 43, 232, 202, 97, 208, 149, 111, 129, 214, 244, 128,\n\t\t214, 236, 0, 173, 109, 4, 173, 221, 12, 186, 10, 160, 171,\n\t\t210, 160, 171, 55, 130, 174, 217, 2, 186, 230, 8, 104, 221,\n\t\t90, 208, 181, 229, 160, 107, 183, 129, 174, 235, 7, 93, 183,\n\t\t19, 116, 125, 35, 232, 250, 119, 64, 67, 7, 64, 55, 60, 12,\n\t\t186, 209, 3, 186, 241, 0, 232, 166, 41, 208, 250, 123, 65,\n\t\t31, 111, 3, 125, 124, 39, 232, 19, 229, 160, 79, 236, 0, 221,\n\t\t188, 30, 180, 161, 11, 180, 97, 10, 116, 203, 14, 208, 173,\n\t\t109, 160, 91, 183, 131, 110, 91, 9, 186, 109, 39, 104, 227,\n\t\t114, 208, 198, 12, 232, 147, 123, 65, 183, 15, 130, 110, 63,\n\t\t4, 250, 212, 32, 232, 142, 109, 160, 59, 87, 131, 238, 60,\n\t\t8, 186, 235, 121, 208, 166, 102, 208, 221, 229, 160, 187,\n\t\t71, 64, 159, 222, 12, 218, 44, 129, 54, 111, 7, 221, 179,\n\t\t29, 244, 153, 126, 208, 103, 210, 160, 207, 238, 1, 221, 155,\n\t\t6, 125, 110, 57, 232, 115, 251, 65, 159, 239, 5, 125, 65,\n\t\t2, 125, 97, 47, 104, 75, 31, 232, 190, 126, 208, 253, 141,\n\t\t160, 7, 0, 122, 96, 15, 104, 235, 58, 208, 214, 67, 160, 47,\n\t\t30, 4, 61, 56, 8, 122, 112, 10, 244, 208, 189, 160, 109, 131,\n\t\t160, 47, 109, 6, 253, 251, 32, 232, 203, 203, 65, 95, 62,\n\t\t8, 122, 120, 53, 232, 225, 227, 160, 71, 118, 128, 30, 13,\n\t\t128, 30, 221, 9, 26, 105, 6, 141, 108, 2, 125, 117, 7, 232,\n\t\t177, 35, 160, 237, 30, 208, 246, 119, 64, 95, 95, 11, 122,\n\t\t220, 9, 122, 124, 47, 232, 27, 207, 131, 118, 12, 131, 190,\n\t\t89, 15, 122, 162, 23, 244, 173, 102, 208, 206, 65, 208, 183,\n\t\t83, 160, 39, 83, 160, 239, 244, 131, 190, 147, 1, 237, 122,\n\t\t11, 244, 221, 195, 160, 239, 221, 11, 250, 126, 15, 232, 251,\n\t\t59, 65, 79, 29, 6, 61, 189, 18, 244, 195, 46, 208, 15, 15,\n\t\t131, 118, 63, 15, 122, 230, 45, 208, 179, 171, 65, 207, 149,\n\t\t131, 158, 123, 30, 244, 124, 63, 232, 133, 102, 208, 11, 123,\n\t\t64, 63, 26, 2, 253, 232, 45, 208, 139, 91, 64, 47, 30, 6,\n\t\t165, 215, 131, 210, 83, 160, 151, 54, 130, 94, 6, 232, 229,\n\t\t195, 160, 255, 88, 14, 250, 143, 125, 160, 61, 155, 64, 63,\n\t\t246, 128, 126, 188, 19, 244, 147, 94, 208, 43, 65, 208, 43,\n\t\t187, 64, 123, 87, 130, 126, 234, 1, 253, 116, 47, 232, 127,\n\t\t109, 1, 253, 44, 0, 250, 217, 86, 208, 190, 97, 208, 190,\n\t\t227, 160, 87, 135, 65, 175, 117, 130, 94, 27, 1, 253, 124,\n\t\t57, 104, 127, 31, 232, 23, 131, 160, 95, 28, 0, 253, 114,\n\t\t35, 232, 87, 245, 160, 95, 237, 1, 29, 216, 14, 250, 117,\n\t\t57, 232, 215, 195, 160, 215, 27, 65, 175, 31, 0, 29, 180,\n\t\t130, 14, 30, 4, 253, 118, 0, 244, 187, 245, 160, 55, 6, 65,\n\t\t135, 130, 160, 55, 1, 122, 115, 23, 232, 15, 123, 64, 135,\n\t\t187, 64, 127, 92, 14, 250, 83, 35, 232, 79, 123, 65, 127,\n\t\t222, 4, 122, 171, 11, 244, 214, 30, 208, 219, 113, 208, 219,\n\t\t135, 64, 127, 109, 6, 29, 217, 14, 250, 91, 6, 244, 247, 221,\n\t\t160, 127, 180, 129, 254, 11, 160, 255, 58, 8, 250, 239, 213,\n\t\t160, 140, 19, 148, 217, 3, 26, 27, 4, 29, 237, 3, 141, 15,\n\t\t129, 198, 15, 128, 38, 54, 129, 38, 7, 65, 147, 123, 65, 83,\n\t\t43, 65, 239, 174, 4, 189, 183, 1, 244, 126, 23, 232, 184,\n\t\t7, 244, 65, 15, 40, 123, 8, 148, 59, 2, 142, 86, 130, 163,\n\t\t12, 56, 110, 15, 56, 235, 86, 112, 252, 16, 56, 225, 32, 56,\n\t\t219, 126, 112, 98, 23, 56, 113, 47, 56, 251, 6, 112, 142,\n\t\t70, 112, 142, 157, 224, 164, 45, 224, 228, 141, 224, 148,\n\t\t77, 224, 212, 56, 56, 245, 0, 56, 231, 189, 224, 92, 157,\n\t\t224, 92, 71, 192, 149, 61, 5, 206, 61, 14, 206, 243, 48, 56,\n\t\t239, 58, 112, 62, 128, 243, 173, 7, 231, 239, 7, 87, 62, 8,\n\t\t174, 252, 32, 184, 138, 135, 193, 85, 198, 193, 85, 190, 5,\n\t\t174, 234, 32, 184, 192, 1, 112, 213, 203, 193, 85, 143, 131,\n\t\t171, 217, 15, 174, 118, 0, 92, 221, 114, 112, 161, 181, 224,\n\t\t194, 91, 192, 213, 215, 131, 171, 223, 9, 46, 114, 16, 92,\n\t\t116, 16, 92, 99, 31, 184, 89, 18, 184, 89, 25, 112, 179, 183,\n\t\t128, 107, 218, 12, 174, 185, 28, 92, 243, 58, 112, 115, 150,\n\t\t131, 107, 9, 130, 107, 25, 6, 215, 218, 7, 174, 117, 47, 184,\n\t\t182, 29, 224, 218, 14, 131, 107, 95, 13, 46, 214, 9, 46, 126,\n\t\t47, 184, 142, 30, 112, 29, 251, 192, 37, 246, 129, 75, 166,\n\t\t192, 117, 118, 130, 155, 183, 1, 220, 105, 125, 224, 230,\n\t\t111, 4, 183, 0, 224, 186, 71, 192, 165, 172, 224, 82, 187,\n\t\t193, 157, 190, 15, 220, 162, 237, 224, 22, 111, 5, 119, 134,\n\t\t21, 220, 25, 123, 193, 45, 217, 4, 238, 204, 20, 184, 51,\n\t\t223, 1, 119, 214, 16, 184, 165, 113, 112, 75, 167, 192, 45,\n\t\t95, 14, 238, 236, 0, 184, 179, 159, 2, 119, 206, 114, 112,\n\t\t43, 218, 192, 173, 216, 3, 238, 220, 245, 224, 62, 178, 30,\n\t\t220, 121, 157, 224, 250, 151, 131, 235, 223, 15, 238, 130,\n\t\t0, 184, 11, 198, 193, 125, 180, 23, 220, 202, 189, 224, 86,\n\t\t53, 130, 91, 181, 25, 220, 133, 205, 224, 46, 220, 12, 238,\n\t\t162, 189, 224, 86, 15, 129, 91, 189, 31, 220, 199, 54, 130,\n\t\t251, 216, 91, 224, 46, 222, 1, 238, 146, 62, 112, 3, 30, 112,\n\t\t151, 90, 193, 93, 186, 31, 220, 101, 91, 193, 93, 118, 4,\n\t\t220, 229, 155, 193, 13, 14, 129, 187, 98, 57, 184, 43, 59,\n\t\t193, 93, 57, 14, 110, 109, 35, 184, 171, 26, 193, 93, 253,\n\t\t48, 184, 107, 246, 129, 91, 87, 15, 110, 221, 30, 112, 215,\n\t\t110, 5, 119, 221, 114, 112, 215, 237, 6, 119, 253, 110, 112,\n\t\t67, 253, 224, 134, 182, 131, 27, 58, 2, 238, 134, 157, 224,\n\t\t110, 108, 6, 119, 227, 94, 112, 55, 78, 129, 187, 233, 41,\n\t\t112, 235, 7, 192, 173, 223, 7, 238, 227, 135, 192, 125, 162,\n\t\t11, 220, 39, 222, 1, 119, 243, 48, 184, 13, 30, 112, 27, 210,\n\t\t224, 110, 25, 0, 119, 43, 192, 221, 186, 31, 220, 109, 189,\n\t\t160, 220, 123, 185, 52, 39, 80, 26, 126, 128, 152, 55, 214,\n\t\t238, 243, 122, 154, 40, 212, 17, 79, 204, 167, 142, 104, 36,\n\t\t17, 171, 107, 247, 209, 196, 235, 157, 46, 191, 45, 99, 243,\n\t\t187, 58, 95, 119, 186, 252, 244, 188, 223, 69, 159, 126, 61,\n\t\t237, 119, 217, 108, 46, 127, 250, 117, 231, 108, 77, 91, 211,\n\t\t52, 252, 92, 154, 3, 237, 65, 0, 32, 151, 71, 8, 69, 226,\n\t\t137, 88, 187, 191, 131, 247, 22, 194, 174, 120, 178, 33, 225,\n\t\t227, 208, 217, 215, 217, 217, 168, 186, 114, 249, 128, 143,\n\t\t82, 206, 74, 26, 201, 142, 84, 53, 52, 36, 26, 172, 207, 44,\n\t\t251, 187, 17, 32, 193, 207, 46, 230, 221, 224, 128, 220, 139,\n\t\t28, 40, 141, 10, 212, 1, 13, 62, 143, 74, 66, 168, 149, 34,\n\t\t11, 72, 8, 107, 117, 107, 112, 179, 88, 187, 63, 210, 158,\n\t\t136, 71, 66, 130, 135, 222, 101, 44, 192, 60, 108, 144, 117,\n\t\t246, 94, 112, 235, 173, 59, 111, 109, 118, 218, 217, 123,\n\t\t87, 47, 91, 118, 245, 50, 158, 121, 88, 128, 177, 65, 102,\n\t\t119, 54, 223, 186, 243, 214, 91, 47, 232, 237, 100, 108, 153,\n\t\t150, 5, 80, 238, 131, 220, 97, 206, 66, 219, 81, 6, 80, 13,\n\t\t153, 173, 36, 146, 9, 95, 45, 37, 187, 137, 94, 107, 21, 154,\n\t\t94, 178, 87, 218, 95, 106, 18, 90, 103, 93, 19, 241, 120,\n\t\t34, 215, 208, 29, 141, 27, 155, 246, 218, 237, 123, 155, 54,\n\t\t54, 134, 197, 168, 199, 19, 21, 65, 80, 115, 207, 114, 115,\n\t\t233, 37, 148, 3, 148, 104, 175, 229, 180, 186, 252, 62, 161,\n\t\t149, 152, 16, 89, 72, 209, 72, 98, 33, 145, 69, 108, 20, 79,\n\t\t191, 223, 35, 41, 87, 87, 88, 130, 174, 187, 238, 114, 5,\n\t\t45, 21, 87, 43, 146, 231, 126, 122, 178, 172, 108, 147, 143,\n\t\t139, 40, 107, 238, 119, 251, 197, 158, 30, 123, 185, 251,\n\t\t254, 53, 74, 68, 91, 169, 186, 101, 37, 151, 166, 52, 165,\n\t\t193, 80, 5, 212, 27, 221, 247, 176, 118, 95, 53, 121, 132,\n\t\t112, 93, 40, 178, 128, 180, 233, 243, 181, 39, 201, 171, 247,\n\t\t56, 146, 92, 17, 240, 100, 71, 60, 129, 21, 73, 87, 120, 121,\n\t\t56, 173, 119, 246, 154, 21, 201, 217, 158, 64, 192, 51, 59,\n\t\t185, 194, 169, 123, 170, 138, 70, 229, 52, 140, 86, 204, 199,\n\t\t153, 56, 15, 151, 224, 26, 220, 140, 187, 240, 5, 128, 218,\n\t\t125, 94, 151, 71, 104, 162, 142, 120, 19, 133, 170, 169, 206,\n\t\t124, 134, 67, 145, 14, 151, 214, 154, 215, 51, 159, 218, 23,\n\t\t80, 157, 249, 204, 151, 51, 98, 39, 15, 243, 167, 40, 227,\n\t\t255, 31, 188, 75, 71, 236, 138, 98, 183, 73, 141, 82, 54,\n\t\t45, 53, 74, 182, 124, 140, 82, 90, 210, 176, 212, 40, 205,\n\t\t248, 145, 83, 218, 43, 21, 126, 67, 39, 41, 48, 172, 216,\n\t\t179, 187, 236, 138, 71, 146, 60, 218, 165, 216, 169, 111,\n\t\t58, 150, 221, 167, 23, 90, 87, 116, 223, 51, 32, 73, 3, 210,\n\t\t83, 250, 253, 222, 19, 114, 1, 43, 144, 59, 204, 129, 70,\n\t\t160, 162, 22, 173, 88, 8, 80, 204, 152, 164, 38, 50, 38, 41,\n\t\t92, 26, 141, 89, 180, 145, 156, 78, 235, 224, 243, 115, 105,\n\t\t206, 45, 53, 166, 181, 142, 106, 183, 37, 249, 128, 189, 220,\n\t\t124, 166, 237, 10, 53, 22, 82, 105, 68, 177, 143, 104, 129,\n\t\t146, 91, 118, 170, 16, 43, 159, 78, 213, 231, 190, 0, 107,\n\t\t16, 109, 88, 132, 143, 224, 50, 220, 136, 59, 53, 197, 213,\n\t\t237, 157, 6, 81, 3, 197, 239, 81, 168, 56, 238, 77, 206, 0,\n\t\t59, 236, 81, 184, 146, 2, 108, 70, 63, 217, 140, 23, 26, 102,\n\t\t244, 147, 205, 136, 55, 204, 40, 255, 69, 197, 126, 133, 6,\n\t\t251, 21, 118, 229, 105, 230, 16, 174, 212, 194, 87, 218, 149,\n\t\t224, 116, 114, 208, 202, 108, 124, 62, 253, 53, 51, 81, 239,\n\t\t116, 190, 4, 221, 85, 72, 157, 190, 101, 95, 213, 95, 208,\n\t\t111, 180, 185, 79, 11, 105, 183, 247, 152, 67, 48, 66, 198,\n\t\t152, 233, 33, 94, 20, 172, 102, 112, 179, 249, 236, 179, 43,\n\t\t187, 11, 249, 69, 137, 35, 211, 193, 181, 133, 124, 109, 185,\n\t\t9, 39, 224, 200, 10, 92, 2, 36, 103, 140, 248, 204, 241, 114,\n\t\t207, 24, 79, 183, 249, 172, 203, 227, 73, 81, 184, 46, 20,\n\t\t233, 240, 207, 200, 47, 26, 191, 162, 224, 39, 11, 195, 240,\n\t\t3, 237, 70, 85, 249, 17, 49, 67, 111, 219, 149, 242, 233,\n\t\t140, 35, 133, 209, 121, 162, 208, 37, 218, 49, 221, 209, 108,\n\t\t106, 58, 76, 59, 10, 69, 118, 79, 167, 154, 86, 97, 226, 64,\n\t\t159, 130, 7, 72, 70, 35, 241, 133, 26, 177, 164, 164, 118,\n\t\t243, 121, 24, 9, 161, 39, 191, 193, 88, 3, 243, 218, 134,\n\t\t50, 54, 47, 107, 96, 44, 251, 91, 230, 19, 31, 103, 62, 86,\n\t\t111, 211, 210, 108, 245, 204, 199, 178, 191, 179, 105, 245,\n\t\t228, 114, 80, 233, 82, 186, 1, 97, 32, 233, 207, 179, 8, 166,\n\t\t83, 240, 184, 70, 115, 103, 212, 126, 116, 80, 20, 125, 246,\n\t\t74, 113, 112, 80, 172, 180, 251, 68, 237, 89, 18, 79, 159,\n\t\t34, 61, 31, 55, 188, 31, 76, 190, 84, 133, 14, 44, 0, 72,\n\t\t99, 159, 58, 11, 93, 64, 225, 208, 2, 138, 207, 167, 142,\n\t\t248, 124, 106, 175, 166, 88, 187, 155, 157, 140, 101, 105,\n\t\t160, 68, 116, 158, 229, 107, 167, 54, 169, 83, 10, 74, 157,\n\t\t146, 249, 248, 233, 9, 44, 108, 144, 237, 232, 27, 234, 235,\n\t\t27, 34, 20, 21, 147, 58, 179, 191, 153, 201, 209, 6, 153,\n\t\t231, 53, 173, 96, 95, 17, 140, 14, 52, 96, 142, 9, 163, 1,\n\t\t219, 255, 12, 166, 29, 146, 180, 227, 159, 192, 34, 5, 165,\n\t\t15, 131, 129, 3, 203, 189, 66, 83, 148, 198, 44, 204, 211,\n\t\t57, 171, 215, 35, 132, 67, 45, 212, 17, 239, 38, 157, 185,\n\t\t250, 4, 166, 88, 188, 30, 95, 172, 61, 209, 17, 143, 68, 91,\n\t\t104, 33, 117, 19, 43, 93, 6, 94, 218, 210, 214, 121, 223,\n\t\t154, 197, 55, 46, 174, 108, 9, 138, 94, 222, 105, 181, 50,\n\t\t103, 133, 203, 126, 217, 146, 51, 46, 175, 15, 50, 171, 213,\n\t\t201, 123, 47, 81, 236, 65, 13, 191, 130, 118, 133, 62, 19,\n\t\t186, 102, 193, 154, 251, 22, 221, 216, 51, 107, 121, 183,\n\t\t95, 224, 197, 128, 173, 140, 151, 170, 67, 81, 239, 25, 151,\n\t\t95, 118, 102, 244, 204, 114, 190, 204, 22, 16, 249, 131, 90,\n\t\t241, 140, 177, 34, 121, 148, 231, 210, 220, 90, 74, 23, 173,\n\t\t71, 36, 103, 82, 175, 25, 241, 134, 60, 111, 52, 120, 97,\n\t\t44, 249, 79, 226, 7, 153, 40, 178, 54, 237, 214, 87, 8, 81,\n\t\t91, 33, 184, 235, 36, 161, 17, 145, 165, 181, 103, 154, 137,\n\t\t3, 34, 27, 208, 130, 3, 76, 76, 139, 44, 123, 88, 127, 59,\n\t\t168, 167, 103, 135, 245, 200, 176, 17, 9, 234, 145, 195, 76,\n\t\t212, 217, 186, 51, 247, 18, 101, 232, 69, 116, 161, 71, 147,\n\t\t159, 152, 192, 132, 86, 18, 152, 215, 195, 132, 104, 100,\n\t\t1, 69, 162, 218, 51, 26, 89, 72, 145, 120, 50, 26, 73, 38,\n\t\t146, 137, 90, 74, 36, 59, 226, 201, 132, 223, 87, 77, 62,\n\t\t191, 246, 244, 251, 84, 242, 49, 33, 47, 98, 253, 85, 180,\n\t\t184, 34, 130, 173, 169, 42, 36, 38, 19, 246, 80, 213, 108,\n\t\t81, 136, 184, 44, 226, 108, 139, 101, 182, 158, 35, 206, 214,\n\t\t114, 146, 226, 116, 142, 32, 188, 185, 168, 181, 117, 81,\n\t\t235, 38, 171, 189, 99, 22, 179, 86, 248, 165, 185, 118, 78,\n\t\t146, 56, 251, 92, 201, 95, 97, 101, 179, 58, 68, 190, 194,\n\t\t85, 239, 170, 208, 179, 249, 242, 19, 178, 237, 214, 138,\n\t\t112, 120, 78, 171, 86, 7, 192, 229, 114, 185, 195, 220, 233,\n\t\t52, 130, 26, 173, 79, 250, 210, 158, 166, 155, 45, 26, 139,\n\t\t18, 166, 231, 169, 193, 231, 213, 8, 66, 88, 195, 246, 80,\n\t\t62, 208, 97, 82, 132, 142, 60, 125, 165, 114, 171, 205, 186,\n\t\t91, 100, 67, 76, 180, 218, 172, 41, 109, 4, 135, 152, 72,\n\t\t135, 172, 150, 10, 43, 207, 91, 254, 211, 106, 179, 254, 167,\n\t\t197, 42, 88, 43, 44, 214, 15, 148, 144, 124, 33, 227, 59,\n\t\t121, 70, 205, 28, 183, 109, 59, 19, 237, 194, 128, 213, 102,\n\t\t21, 217, 128, 96, 23, 217, 246, 185, 86, 193, 106, 169, 229,\n\t\t45, 47, 115, 220, 203, 22, 190, 86, 123, 107, 191, 195, 177,\n\t\t244, 44, 158, 49, 254, 179, 134, 168, 101, 203, 237, 165,\n\t\t41, 218, 13, 166, 73, 223, 101, 237, 62, 93, 76, 230, 125,\n\t\t11, 41, 209, 90, 144, 159, 252, 95, 122, 237, 190, 251, 94,\n\t\t187, 143, 230, 218, 89, 128, 137, 41, 169, 77, 226, 105, 247,\n\t\t125, 90, 218, 171, 76, 140, 218, 89, 203, 103, 36, 105, 135,\n\t\t96, 213, 104, 81, 238, 125, 128, 59, 131, 134, 17, 210, 57,\n\t\t56, 26, 124, 66, 19, 69, 227, 145, 38, 10, 41, 228, 101, 225,\n\t\t80, 36, 233, 78, 204, 39, 230, 241, 205, 167, 246, 68, 71,\n\t\t52, 214, 238, 87, 73, 208, 35, 173, 164, 149, 242, 183, 119,\n\t\t83, 135, 241, 130, 224, 101, 158, 26, 138, 113, 11, 88, 153,\n\t\t107, 143, 67, 100, 61, 86, 198, 59, 246, 184, 202, 216, 189,\n\t\t54, 247, 101, 22, 222, 82, 99, 225, 45, 151, 185, 109, 223,\n\t\t182, 18, 19, 26, 5, 70, 86, 98, 141, 44, 105, 181, 89, 5,\n\t\t81, 104, 17, 68, 193, 106, 179, 206, 113, 86, 95, 38, 216,\n\t\t172, 130, 245, 178, 106, 39, 165, 220, 126, 43, 207, 91, 253,\n\t\t238, 120, 51, 111, 179, 241, 205, 108, 23, 111, 227, 219,\n\t\t4, 155, 77, 104, 227, 109, 188, 46, 43, 165, 117, 26, 229,\n\t\t69, 19, 98, 152, 15, 184, 117, 89, 41, 214, 238, 203, 203,\n\t\t224, 26, 37, 77, 232, 116, 163, 32, 226, 250, 125, 237, 11,\n\t\t181, 34, 130, 73, 171, 18, 230, 243, 96, 159, 93, 89, 41,\n\t\t219, 197, 109, 130, 83, 216, 38, 218, 229, 149, 10, 181, 43,\n\t\t246, 108, 155, 182, 200, 31, 152, 171, 206, 86, 231, 62, 96,\n\t\t87, 54, 74, 78, 73, 114, 46, 215, 239, 148, 86, 236, 59, 42,\n\t\t196, 109, 130, 176, 77, 172, 216, 97, 87, 178, 155, 135, 180,\n\t\t178, 67, 118, 101, 174, 170, 206, 85, 174, 214, 202, 152,\n\t\t63, 99, 103, 147, 75, 209, 48, 124, 168, 209, 70, 185, 72,\n\t\t236, 94, 72, 221, 156, 198, 101, 253, 60, 139, 249, 99, 201,\n\t\t88, 148, 235, 180, 5, 60, 217, 160, 39, 96, 187, 218, 42,\n\t\t59, 25, 73, 14, 191, 144, 61, 112, 254, 109, 193, 161, 224,\n\t\t109, 231, 239, 147, 212, 59, 52, 17, 252, 14, 85, 122, 148,\n\t\t183, 11, 178, 173, 105, 56, 149, 26, 54, 116, 41, 150, 219,\n\t\t203, 17, 165, 209, 165, 203, 222, 37, 244, 166, 45, 230, 111,\n\t\t161, 176, 214, 209, 88, 123, 34, 153, 208, 201, 181, 215,\n\t\t195, 20, 139, 65, 80, 19, 177, 246, 26, 242, 71, 227, 115,\n\t\t227, 137, 24, 141, 107, 232, 182, 87, 187, 209, 21, 190, 243,\n\t\t163, 103, 173, 89, 115, 86, 160, 199, 99, 181, 242, 214, 144,\n\t\t197, 170, 204, 154, 211, 226, 89, 124, 211, 162, 251, 175,\n\t\t172, 61, 235, 116, 143, 149, 241, 148, 54, 11, 183, 242, 140,\n\t\t15, 182, 172, 185, 127, 77, 101, 153, 197, 26, 178, 240, 130,\n\t\t69, 46, 119, 217, 23, 221, 216, 115, 229, 253, 254, 89, 254,\n\t\t143, 16, 207, 76, 61, 68, 159, 179, 217, 232, 7, 72, 107,\n\t\t80, 231, 116, 69, 160, 26, 128, 50, 131, 246, 197, 59, 186,\n\t\t73, 135, 205, 162, 129, 173, 19, 116, 15, 83, 52, 21, 34,\n\t\t234, 247, 204, 213, 223, 42, 145, 250, 162, 53, 68, 207, 48,\n\t\t190, 85, 50, 129, 186, 210, 119, 126, 244, 180, 65, 153, 179,\n\t\t207, 229, 153, 235, 158, 11, 53, 152, 95, 152, 55, 168, 232,\n\t\t113, 114, 222, 115, 97, 219, 117, 181, 214, 226, 226, 222,\n\t\t11, 232, 251, 196, 51, 169, 168, 71, 43, 58, 69, 198, 19,\n\t\t125, 244, 38, 255, 44, 127, 246, 59, 133, 88, 172, 254, 35,\n\t\t51, 10, 2, 96, 69, 178, 153, 31, 181, 136, 34, 134, 133, 88,\n\t\t6, 240, 117, 38, 33, 175, 51, 8, 59, 76, 220, 19, 102, 60,\n\t\t147, 69, 122, 140, 247, 20, 97, 218, 159, 29, 208, 80, 128,\n\t\t70, 60, 129, 64, 246, 219, 33, 191, 191, 244, 55, 85, 172,\n\t\t181, 24, 191, 96, 192, 67, 250, 59, 154, 70, 71, 107, 245,\n\t\t114, 103, 21, 221, 31, 213, 185, 113, 127, 209, 189, 88, 103,\n\t\t212, 122, 130, 134, 153, 186, 98, 135, 198, 250, 171, 41,\n\t\t220, 161, 45, 160, 106, 162, 45, 249, 250, 3, 158, 242, 85,\n\t\t183, 175, 234, 155, 221, 53, 251, 112, 192, 147, 214, 226,\n\t\t105, 79, 160, 119, 225, 170, 85, 11, 123, 123, 107, 102, 207,\n\t\t174, 233, 213, 112, 213, 166, 227, 193, 75, 136, 106, 184,\n\t\t154, 76, 104, 117, 51, 77, 158, 8, 135, 152, 55, 207, 247,\n\t\t34, 29, 241, 132, 191, 134, 252, 30, 175, 135, 37, 218, 125,\n\t\t116, 113, 219, 25, 106, 141, 50, 127, 97, 253, 218, 202, 238,\n\t\t184, 98, 119, 218, 149, 242, 80, 185, 175, 150, 172, 117,\n\t\t103, 174, 165, 143, 5, 89, 89, 217, 81, 151, 56, 43, 236,\n\t\t191, 88, 151, 43, 239, 116, 85, 151, 215, 17, 213, 120, 57,\n\t\t206, 110, 151, 194, 186, 173, 193, 152, 155, 185, 58, 229,\n\t\t212, 122, 163, 82, 137, 90, 226, 55, 251, 82, 34, 57, 183,\n\t\t82, 11, 45, 160, 248, 131, 7, 30, 180, 219, 20, 238, 244,\n\t\t57, 186, 60, 91, 222, 90, 119, 195, 35, 55, 212, 181, 26,\n\t\t145, 57, 167, 115, 138, 205, 78, 35, 15, 94, 221, 102, 115,\n\t\t89, 217, 156, 133, 138, 125, 151, 93, 9, 113, 43, 110, 184,\n\t\t97, 5, 23, 210, 35, 11, 231, 48, 171, 203, 214, 118, 181,\n\t\t97, 243, 56, 78, 160, 77, 112, 1, 238, 132, 142, 14, 173,\n\t\t26, 70, 27, 64, 252, 198, 81, 83, 227, 88, 101, 40, 20, 116,\n\t\t139, 67, 114, 102, 119, 57, 37, 199, 42, 197, 190, 197, 174,\n\t\t232, 115, 242, 30, 221, 161, 191, 27, 62, 217, 219, 254, 26,\n\t\t242, 8, 76, 104, 161, 68, 50, 17, 143, 182, 80, 119, 73, 125,\n\t\t7, 188, 21, 21, 94, 155, 71, 228, 69, 175, 87, 228, 69, 15,\n\t\t109, 40, 173, 223, 45, 205, 106, 155, 37, 241, 130, 203, 205,\n\t\t75, 45, 18, 239, 118, 9, 48, 116, 210, 215, 184, 20, 125,\n\t\t15, 46, 68, 209, 141, 190, 147, 181, 219, 48, 221, 110, 55,\n\t\t103, 8, 99, 221, 228, 211, 146, 34, 209, 136, 150, 22, 111,\n\t\t33, 61, 205, 239, 99, 31, 10, 34, 45, 234, 234, 233, 233,\n\t\t178, 121, 28, 86, 177, 174, 181, 114, 222, 92, 209, 234, 240,\n\t\t52, 206, 153, 37, 186, 121, 222, 42, 186, 171, 85, 181, 218,\n\t\t45, 90, 237, 30, 219, 172, 75, 103, 246, 101, 198, 88, 221,\n\t\t27, 189, 253, 243, 183, 71, 5, 222, 233, 225, 125, 11, 150,\n\t\t70, 231, 175, 173, 227, 61, 78, 254, 229, 129, 243, 42, 4,\n\t\t222, 38, 186, 5, 169, 190, 185, 165, 185, 94, 18, 220, 46,\n\t\t94, 168, 72, 156, 164, 227, 186, 126, 75, 105, 26, 129, 5,\n\t\t12, 14, 168, 112, 195, 143, 48, 162, 104, 2, 22, 80, 204,\n\t\t27, 245, 198, 58, 146, 49, 111, 56, 217, 17, 246, 82, 135,\n\t\t17, 111, 136, 121, 195, 29, 97, 111, 184, 35, 230, 213, 254,\n\t\t195, 209, 152, 55, 156, 30, 78, 13, 167, 211, 195, 169, 172,\n\t\t118, 163, 96, 112, 32, 152, 26, 72, 5, 131, 169, 96, 240,\n\t\t176, 150, 146, 74, 165, 83, 41, 45, 83, 15, 15, 7, 7, 210,\n\t\t193, 225, 96, 48, 104, 156, 64, 215, 109, 43, 197, 237, 87,\n\t\t161, 214, 132, 161, 21, 49, 36, 49, 31, 11, 129, 185, 174,\n\t\t216, 255, 209, 127, 153, 40, 150, 137, 245, 98, 85, 89, 149,\n\t\t168, 253, 85, 150, 85, 149, 105, 127, 98, 89, 149, 150, 80,\n\t\t70, 195, 217, 225, 255, 147, 171, 152, 238, 187, 80, 161,\n\t\t141, 158, 190, 220, 52, 149, 33, 207, 169, 77, 250, 23, 240,\n\t\t236, 243, 40, 7, 20, 101, 159, 210, 168, 28, 80, 54, 53, 6,\n\t\t2, 141, 129, 61, 251, 60, 1, 229, 128, 210, 168, 236, 83,\n\t\t148, 3, 202, 254, 128, 150, 88, 208, 163, 134, 205, 58, 103,\n\t\t149, 90, 248, 140, 229, 156, 23, 59, 121, 38, 132, 162, 201,\n\t\t68, 188, 149, 12, 61, 133, 198, 242, 45, 232, 237, 189, 172,\n\t\t55, 195, 181, 107, 73, 79, 86, 86, 254, 120, 174, 6, 194,\n\t\t155, 249, 6, 61, 90, 243, 247, 235, 173, 62, 182, 79, 81,\n\t\t158, 172, 90, 90, 181, 71, 3, 7, 230, 218, 200, 211, 200,\n\t\t48, 90, 209, 9, 52, 120, 152, 224, 241, 79, 235, 209, 121,\n\t\t162, 207, 123, 79, 110, 155, 114, 71, 146, 117, 58, 95, 166,\n\t\t180, 104, 177, 136, 138, 61, 187, 187, 177, 179, 179, 145,\n\t\t122, 237, 74, 54, 45, 28, 16, 10, 191, 15, 44, 150, 236, 159,\n\t\t101, 183, 91, 94, 41, 49, 71, 220, 97, 115, 56, 237, 74, 103,\n\t\t35, 165, 26, 59, 21, 251, 117, 30, 65, 240, 8, 75, 244, 123,\n\t\t14, 193, 160, 187, 210, 109, 216, 86, 73, 27, 31, 59, 224,\n\t\t45, 240, 158, 104, 192, 67, 65, 79, 32, 157, 162, 253, 58,\n\t\t193, 110, 27, 202, 247, 67, 159, 31, 13, 183, 218, 180, 126,\n\t\t20, 40, 96, 65, 122, 50, 23, 123, 172, 67, 175, 74, 19, 32,\n\t\t44, 29, 117, 222, 134, 14, 61, 61, 236, 181, 230, 101, 252,\n\t\t116, 85, 131, 200, 218, 220, 114, 54, 45, 187, 219, 152, 216,\n\t\t80, 229, 150, 201, 45, 139, 45, 98, 42, 7, 66, 27, 19, 211,\n\t\t20, 241, 40, 138, 71, 33, 52, 84, 13, 49, 113, 64, 235, 212,\n\t\t128, 200, 134, 170, 26, 70, 100, 183, 216, 34, 202, 217, 207,\n\t\t13, 12, 28, 30, 16, 89, 219, 72, 175, 162, 149, 212, 231,\n\t\t218, 160, 221, 149, 8, 97, 182, 97, 43, 206, 15, 239, 124,\n\t\t74, 118, 115, 26, 197, 174, 45, 145, 235, 12, 3, 114, 59,\n\t\t135, 128, 199, 224, 151, 43, 37, 171, 92, 102, 191, 93, 45,\n\t\t23, 164, 149, 158, 192, 230, 37, 131, 75, 150, 12, 70, 226,\n\t\t189, 241, 120, 47, 181, 101, 15, 235, 28, 53, 232, 9, 212,\n\t\t137, 138, 205, 165, 212, 5, 94, 215, 178, 151, 60, 172, 101,\n\t\t199, 117, 252, 53, 104, 65, 19, 218, 11, 188, 112, 154, 115,\n\t\t68, 195, 44, 54, 51, 205, 173, 163, 160, 59, 26, 139, 70,\n\t\t162, 2, 35, 93, 49, 219, 172, 221, 252, 149, 159, 169, 42,\n\t\t47, 196, 170, 238, 176, 74, 189, 146, 245, 142, 191, 94, 62,\n\t\t75, 224, 44, 124, 80, 100, 186, 18, 22, 100, 226, 185, 231,\n\t\t78, 135, 233, 227, 14, 71, 246, 179, 91, 55, 186, 92, 46,\n\t\t151, 142, 251, 182, 220, 97, 218, 64, 35, 8, 161, 25, 73,\n\t\t160, 65, 215, 142, 89, 81, 243, 174, 240, 52, 91, 211, 51,\n\t\t163, 94, 93, 79, 142, 70, 194, 238, 110, 234, 208, 36, 118,\n\t\t111, 172, 157, 230, 214, 69, 218, 163, 85, 141, 123, 180,\n\t\t118, 234, 234, 180, 251, 179, 237, 53, 193, 250, 192, 243,\n\t\t103, 87, 4, 42, 20, 255, 28, 167, 59, 84, 125, 254, 185, 158,\n\t\t125, 142, 206, 104, 243, 98, 135, 205, 0, 102, 161, 200, 234,\n\t\t152, 40, 73, 157, 245, 181, 177, 59, 110, 168, 173, 172, 151,\n\t\t89, 246, 231, 66, 200, 91, 29, 186, 67, 227, 111, 190, 220,\n\t\t97, 154, 77, 35, 8, 234, 122, 176, 74, 58, 84, 11, 53, 174,\n\t\t234, 214, 196, 205, 133, 6, 127, 213, 211, 45, 175, 50, 59,\n\t\t39, 112, 242, 163, 54, 145, 24, 39, 55, 118, 135, 120, 155,\n\t\t85, 11, 141, 24, 9, 179, 186, 131, 18, 11, 202, 218, 69, 41,\n\t\t94, 228, 141, 96, 54, 109, 218, 180, 127, 203, 45, 166, 111,\n\t\t96, 14, 206, 4, 220, 117, 197, 19, 16, 118, 157, 48, 31, 174,\n\t\t112, 145, 133, 140, 247, 107, 138, 142, 215, 80, 21, 76, 77,\n\t\t33, 172, 3, 233, 36, 125, 204, 195, 76, 76, 134, 180, 192,\n\t\t22, 237, 22, 74, 234, 41, 34, 253, 169, 207, 102, 115, 180,\n\t\t181, 57, 108, 182, 62, 135, 163, 40, 76, 35, 166, 138, 221,\n\t\t150, 77, 23, 205, 90, 170, 205, 84, 187, 249, 62, 230, 57,\n\t\t236, 97, 125, 146, 148, 15, 128, 203, 189, 155, 251, 61, 189,\n\t\t66, 35, 39, 133, 223, 123, 2, 252, 29, 197, 240, 147, 6, 183,\n\t\t94, 78, 99, 195, 26, 220, 154, 226, 163, 201, 75, 78, 26,\n\t\t49, 225, 191, 185, 8, 254, 155, 77, 248, 191, 55, 13, 128,\n\t\t25, 152, 134, 124, 120, 26, 240, 225, 60, 220, 217, 111, 149,\n\t\t116, 115, 58, 108, 208, 140, 67, 148, 166, 237, 69, 182, 234,\n\t\t34, 77, 75, 163, 54, 252, 12, 155, 226, 76, 155, 99, 180,\n\t\t84, 166, 140, 81, 80, 100, 57, 232, 54, 8, 48, 49, 123, 88,\n\t\t100, 70, 103, 178, 3, 76, 116, 234, 201, 122, 84, 191, 153,\n\t\t229, 182, 54, 106, 15, 237, 246, 111, 249, 0, 203, 102, 204,\n\t\t64, 35, 19, 247, 78, 7, 113, 74, 152, 139, 13, 70, 252, 12,\n\t\t24, 233, 228, 48, 23, 212, 21, 26, 16, 153, 110, 80, 57, 204,\n\t\t196, 236, 174, 105, 32, 179, 3, 211, 225, 1, 51, 191, 4, 222,\n\t\t23, 167, 33, 203, 225, 20, 0, 159, 4, 94, 119, 71, 233, 160,\n\t\t178, 127, 2, 111, 195, 140, 248, 136, 49, 184, 198, 0, 110,\n\t\t57, 57, 188, 211, 115, 32, 50, 90, 87, 128, 248, 158, 147,\n\t\t67, 60, 92, 50, 196, 39, 131, 217, 53, 3, 230, 153, 182, 229,\n\t\t127, 6, 243, 41, 240, 160, 24, 228, 226, 240, 191, 6, 178,\n\t\t0, 228, 50, 28, 104, 75, 169, 61, 125, 230, 56, 207, 132,\n\t\t249, 20, 120, 114, 202, 253, 136, 153, 241, 97, 145, 145,\n\t\t14, 115, 118, 36, 223, 169, 66, 180, 16, 214, 215, 99, 234,\n\t\t84, 55, 90, 94, 232, 231, 55, 167, 59, 52, 50, 29, 164, 248,\n\t\t116, 241, 145, 147, 6, 1, 240, 185, 119, 103, 204, 215, 210,\n\t\t83, 206, 216, 244, 174, 210, 204, 85, 49, 35, 191, 193, 36,\n\t\t73, 30, 33, 90, 60, 67, 251, 89, 126, 33, 20, 207, 215, 225,\n\t\t233, 212, 243, 37, 105, 128, 121, 60, 255, 218, 20, 174, 114,\n\t\t56, 6, 108, 54, 71, 90, 39, 75, 224, 79, 192, 191, 83, 247,\n\t\t231, 127, 140, 129, 13, 38, 189, 141, 39, 252, 197, 253, 49,\n\t\t214, 59, 102, 118, 168, 120, 253, 100, 127, 246, 191, 211,\n\t\t165, 235, 75, 186, 84, 100, 63, 82, 53, 249, 217, 220, 89,\n\t\t45, 200, 151, 124, 94, 31, 235, 160, 62, 93, 168, 51, 164,\n\t\t153, 55, 157, 161, 176, 122, 29, 13, 23, 18, 130, 158, 64,\n\t\t196, 225, 242, 228, 224, 113, 57, 150, 61, 98, 158, 196, 52,\n\t\t116, 12, 21, 126, 132, 128, 89, 116, 114, 59, 5, 171, 235,\n\t\t136, 70, 84, 210, 174, 82, 243, 195, 215, 90, 234, 234, 90,\n\t\t234, 214, 210, 240, 74, 155, 109, 115, 167, 205, 214, 107,\n\t\t52, 99, 52, 73, 189, 117, 90, 246, 95, 135, 242, 153, 249,\n\t\t61, 255, 23, 117, 185, 212, 15, 248, 91, 132, 14, 99, 11,\n\t\t65, 209, 132, 244, 157, 229, 11, 42, 67, 14, 217, 50, 52,\n\t\t50, 100, 145, 29, 161, 202, 5, 229, 172, 50, 17, 94, 89, 223,\n\t\t225, 11, 85, 184, 250, 134, 134, 250, 92, 21, 33, 95, 71,\n\t\t253, 202, 176, 189, 212, 22, 42, 3, 9, 125, 71, 91, 8, 37,\n\t\t53, 49, 52, 108, 211, 205, 157, 107, 150, 175, 91, 183, 124,\n\t\t149, 110, 12, 77, 173, 219, 182, 46, 111, 211, 24, 160, 151,\n\t\t224, 66, 29, 224, 174, 177, 232, 126, 6, 29, 241, 110, 46,\n\t\t153, 104, 183, 232, 175, 106, 209, 72, 72, 240, 122, 124,\n\t\t175, 58, 19, 205, 117, 107, 238, 95, 83, 55, 167, 195, 201,\n\t\t230, 248, 181, 169, 169, 107, 21, 21, 113, 17, 61, 17, 191,\n\t\t36, 113, 86, 100, 233, 218, 181, 75, 35, 189, 157, 23, 199,\n\t\t125, 217, 148, 168, 136, 173, 186, 248, 212, 178, 200, 212,\n\t\t77, 210, 92, 138, 210, 144, 80, 169, 201, 103, 228, 247, 169,\n\t\t156, 208, 66, 11, 185, 68, 82, 87, 83, 12, 166, 221, 238,\n\t\t183, 196, 243, 11, 165, 88, 91, 208, 101, 35, 87, 29, 61,\n\t\t112, 33, 99, 111, 172, 22, 28, 2, 217, 223, 96, 223, 116,\n\t\t56, 234, 25, 187, 144, 177, 122, 71, 80, 218, 100, 109, 228,\n\t\t213, 188, 189, 133, 106, 108, 130, 208, 104, 225, 255, 66,\n\t\t41, 186, 86, 123, 197, 78, 130, 67, 88, 253, 6, 115, 74, 65,\n\t\t41, 172, 191, 19, 150, 164, 236, 247, 120, 75, 163, 32, 216,\n\t\t30, 209, 95, 25, 240, 4, 84, 190, 209, 170, 139, 82, 32, 164,\n\t\t114, 191, 163, 97, 122, 28, 94, 192, 239, 50, 118, 159, 146,\n\t\t121, 172, 210, 247, 126, 82, 82, 155, 180, 71, 109, 104, 80,\n\t\t247, 72, 109, 146, 135, 118, 72, 210, 174, 31, 200, 101, 158,\n\t\t236, 176, 167, 76, 126, 234, 59, 146, 49, 175, 239, 113, 160,\n\t\t79, 163, 22, 232, 152, 174, 163, 164, 162, 124, 109, 82, 163,\n\t\t180, 83, 109, 216, 169, 213, 183, 179, 65, 221, 41, 53, 74,\n\t\t18, 173, 149, 164, 109, 95, 145, 203, 60, 155, 180, 91, 54,\n\t\t237, 41, 147, 31, 190, 75, 187, 61, 36, 25, 118, 15, 189,\n\t\t110, 135, 134, 53, 73, 125, 91, 78, 175, 52, 90, 28, 150,\n\t\t36, 41, 173, 85, 153, 50, 159, 223, 176, 215, 216, 71, 242,\n\t\t149, 141, 20, 71, 76, 60, 220, 77, 47, 209, 94, 56, 116, 221,\n\t\t145, 241, 130, 62, 254, 126, 218, 81, 94, 158, 29, 241, 207,\n\t\t141, 121, 255, 166, 36, 148, 253, 74, 85, 128, 70, 106, 42,\n\t\t148, 188, 31, 197, 31, 41, 77, 95, 213, 105, 11, 252, 5, 87,\n\t\t6, 99, 181, 52, 76, 239, 216, 232, 73, 91, 244, 133, 162,\n\t\t221, 200, 124, 106, 183, 218, 98, 99, 92, 91, 126, 50, 2,\n\t\t30, 19, 38, 67, 207, 80, 79, 92, 229, 197, 22, 54, 26, 41,\n\t\t132, 6, 60, 129, 153, 227, 99, 104, 194, 70, 111, 88, 81,\n\t\t152, 198, 103, 12, 208, 111, 205, 49, 161, 84, 209, 0, 233,\n\t\t145, 25, 243, 73, 46, 99, 255, 143, 105, 68, 144, 25, 213,\n\t\t233, 123, 32, 181, 198, 94, 37, 135, 19, 103, 148, 214, 103,\n\t\t183, 21, 79, 169, 94, 111, 97, 74, 75, 113, 174, 168, 254,\n\t\t124, 213, 243, 169, 157, 134, 139, 145, 142, 182, 102, 87,\n\t\t154, 88, 71, 5, 172, 3, 184, 220, 100, 238, 48, 253, 84, 31,\n\t\t179, 42, 160, 97, 134, 12, 218, 160, 75, 245, 154, 186, 42,\n\t\t132, 41, 237, 150, 179, 195, 154, 186, 73, 195, 178, 59, 59,\n\t\t84, 91, 225, 221, 165, 204, 86, 118, 121, 43, 106, 83, 41,\n\t\t45, 89, 187, 197, 230, 249, 211, 78, 103, 218, 63, 79, 159,\n\t\t143, 170, 220, 219, 212, 64, 95, 134, 7, 48, 170, 49, 157,\n\t\t114, 76, 75, 67, 60, 252, 50, 243, 48, 31, 35, 246, 229, 47,\n\t\t51, 98, 62, 230, 97, 47, 219, 126, 241, 50, 211, 67, 95, 254,\n\t\t178, 158, 199, 94, 102, 158, 153, 117, 53, 232, 123, 168,\n\t\t154, 46, 164, 187, 245, 24, 187, 203, 84, 125, 146, 202, 190,\n\t\t115, 178, 202, 138, 105, 95, 184, 104, 31, 168, 35, 94, 240,\n\t\t182, 9, 27, 86, 6, 211, 234, 16, 107, 55, 247, 132, 54, 75,\n\t\t171, 165, 78, 105, 181, 100, 62, 204, 125, 161, 187, 138,\n\t\t146, 164, 213, 165, 245, 187, 167, 235, 247, 215, 181, 47,\n\t\t160, 120, 184, 78, 171, 218, 168, 111, 61, 217, 36, 41, 59,\n\t\t149, 175, 231, 11, 198, 6, 243, 41, 225, 139, 38, 19, 173,\n\t\t100, 242, 17, 161, 150, 152, 80, 75, 190, 133, 228, 247, 45,\n\t\t164, 132, 9, 223, 141, 139, 22, 217, 108, 141, 54, 241, 244,\n\t\t211, 69, 91, 163, 205, 86, 18, 51, 27, 217, 113, 178, 60,\n\t\t51, 118, 226, 30, 25, 76, 59, 128, 165, 180, 105, 31, 77,\n\t\t233, 149, 109, 218, 45, 73, 62, 201, 241, 224, 18, 135, 228,\n\t\t147, 164, 181, 14, 138, 234, 112, 100, 239, 222, 237, 112,\n\t\t248, 29, 90, 186, 246, 88, 43, 25, 58, 119, 190, 222, 38,\n\t\t196, 166, 107, 102, 33, 189, 31, 201, 110, 78, 119, 133, 19,\n\t\t152, 194, 21, 12, 60, 186, 49, 52, 111, 220, 55, 155, 28,\n\t\t88, 218, 36, 136, 97, 145, 57, 100, 143, 236, 170, 86, 93,\n\t\t101, 46, 143, 212, 41, 85, 214, 86, 246, 6, 35, 85, 85, 145,\n\t\t42, 19, 132, 143, 164, 68, 86, 201, 68, 89, 182, 187, 21,\n\t\t135, 108, 183, 75, 53, 110, 171, 36, 145, 88, 230, 140, 84,\n\t\t206, 238, 154, 170, 210, 202, 2, 165, 112, 169, 136, 78, 143,\n\t\t118, 189, 217, 172, 191, 8, 43, 52, 140, 48, 49, 35, 143,\n\t\t17, 98, 168, 162, 34, 84, 161, 72, 146, 148, 146, 244, 191,\n\t\t149, 249, 217, 12, 87, 104, 89, 111, 151, 75, 131, 146, 84,\n\t\t46, 165, 164, 114, 9, 5, 222, 6, 74, 163, 17, 125, 88, 9,\n\t\t52, 180, 87, 147, 167, 137, 20, 142, 153, 78, 2, 45, 20, 53,\n\t\t253, 24, 186, 41, 105, 186, 50, 212, 144, 159, 117, 83, 210,\n\t\t76, 111, 161, 168, 89, 86, 33, 22, 51, 222, 175, 33, 191,\n\t\t94, 214, 27, 55, 199, 85, 163, 86, 53, 44, 118, 78, 139, 212,\n\t\t40, 45, 185, 194, 81, 35, 73, 53, 142, 43, 150, 24, 145, 167,\n\t\t155, 23, 218, 103, 73, 210, 44, 251, 194, 102, 169, 81, 42,\n\t\t137, 184, 43, 221, 238, 202, 195, 82, 163, 212, 114, 78, 140,\n\t\t149, 188, 100, 70, 126, 112, 146, 151, 140, 200, 45, 218,\n\t\t171, 238, 25, 99, 42, 23, 175, 0, 107, 11, 49, 74, 88, 107,\n\t\t40, 73, 130, 57, 126, 79, 12, 108, 142, 19, 69, 178, 247,\n\t\t13, 108, 142, 103, 115, 17, 115, 236, 188, 3, 142, 72, 54,\n\t\t23, 15, 12, 56, 34, 68, 113, 24, 190, 38, 185, 183, 41, 77,\n\t\t95, 70, 117, 126, 253, 231, 189, 75, 52, 114, 82, 16, 78,\n\t\t253, 53, 68, 156, 95, 91, 251, 250, 98, 103, 126, 70, 108,\n\t\t3, 213, 234, 238, 52, 127, 220, 192, 200, 98, 16, 1, 102,\n\t\t210, 133, 155, 116, 191, 133, 155, 116, 18, 163, 211, 236,\n\t\t183, 233, 37, 163, 13, 183, 233, 180, 146, 55, 177, 46, 164,\n\t\t2, 89, 140, 182, 208, 143, 102, 54, 145, 253, 163, 190, 109,\n\t\t82, 187, 129, 17, 125, 242, 67, 219, 224, 115, 135, 233, 57,\n\t\t250, 170, 214, 198, 180, 255, 141, 193, 102, 90, 169, 224,\n\t\t181, 192, 20, 10, 159, 162, 154, 71, 138, 218, 246, 217, 74,\n\t\t219, 214, 235, 255, 3, 61, 71, 35, 250, 56, 21, 124, 114,\n\t\t12, 54, 95, 75, 5, 118, 155, 236, 38, 250, 202, 41, 26, 248,\n\t\t211, 135, 140, 95, 126, 156, 14, 113, 68, 95, 71, 13, 96,\n\t\t130, 190, 128, 20, 139, 199, 239, 19, 162, 186, 135, 137,\n\t\t37, 217, 161, 49, 204, 41, 155, 109, 151, 20, 152, 219, 211,\n\t\t238, 151, 173, 94, 71, 184, 173, 166, 125, 121, 95, 60, 32,\n\t\t17, 199, 124, 108, 155, 93, 86, 87, 146, 163, 98, 118, 170,\n\t\t73, 82, 108, 21, 231, 55, 55, 47, 154, 85, 33, 82, 159, 42,\n\t\t219, 243, 122, 176, 193, 203, 157, 168, 67, 59, 22, 27, 90,\n\t\t136, 177, 221, 105, 58, 252, 52, 196, 77, 141, 201, 116, 254,\n\t\t233, 240, 231, 247, 66, 77, 55, 160, 24, 243, 152, 150, 6,\n\t\t211, 33, 200, 171, 216, 55, 74, 82, 191, 198, 94, 131, 210,\n\t\t70, 187, 34, 53, 74, 253, 210, 86, 201, 76, 125, 167, 144,\n\t\t68, 31, 150, 89, 72, 58, 5, 156, 166, 169, 215, 108, 178,\n\t\t154, 60, 13, 197, 48, 105, 107, 212, 85, 226, 174, 212, 238,\n\t\t243, 250, 61, 211, 91, 177, 122, 127, 232, 169, 124, 107,\n\t\t217, 195, 5, 152, 245, 184, 6, 70, 90, 106, 52, 97, 32, 20,\n\t\t114, 203, 205, 23, 36, 141, 207, 247, 231, 75, 24, 213, 20,\n\t\t203, 70, 225, 34, 11, 108, 193, 122, 83, 48, 119, 78, 59,\n\t\t102, 140, 104, 44, 125, 139, 91, 14, 202, 238, 45, 211, 193,\n\t\t204, 204, 4, 35, 168, 251, 149, 109, 161, 52, 50, 154, 236,\n\t\t213, 48, 211, 50, 165, 215, 101, 200, 14, 70, 5, 250, 205,\n\t\t192, 37, 119, 46, 77, 255, 160, 52, 18, 186, 29, 86, 37, 133,\n\t\t90, 73, 183, 47, 106, 162, 7, 211, 22, 133, 182, 248, 76,\n\t\t255, 164, 90, 138, 70, 186, 201, 48, 128, 154, 94, 76, 42,\n\t\t209, 155, 34, 207, 187, 121, 143, 237, 179, 22, 82, 28, 17,\n\t\t135, 66, 150, 207, 218, 60, 188, 155, 231, 197, 207, 127,\n\t\t126, 58, 139, 57, 88, 105, 222, 141, 188, 91, 12, 137, 188,\n\t\t208, 255, 152, 67, 81, 28, 143, 245, 11, 188, 24, 18, 221,\n\t\t252, 57, 231, 20, 210, 153, 131, 21, 103, 156, 192, 47, 170,\n\t\t167, 249, 24, 103, 242, 139, 168, 95, 227, 14, 29, 73, 195,\n\t\t169, 195, 100, 90, 253, 58, 107, 186, 208, 38, 181, 73, 54,\n\t\t198, 167, 120, 150, 103, 148, 175, 235, 140, 40, 189, 217,\n\t\t225, 216, 44, 48, 102, 234, 223, 134, 173, 94, 128, 140, 22,\n\t\t204, 211, 48, 42, 214, 17, 243, 134, 67, 17, 190, 35, 166,\n\t\t137, 103, 238, 210, 209, 157, 79, 17, 221, 5, 193, 231, 239,\n\t\t38, 157, 133, 178, 186, 88, 11, 133, 67, 10, 25, 206, 93,\n\t\t154, 82, 166, 16, 11, 166, 71, 100, 55, 33, 173, 143, 188,\n\t\t97, 28, 113, 203, 205, 246, 120, 125, 77, 75, 85, 85, 75,\n\t\t77, 125, 220, 158, 125, 235, 130, 112, 93, 153, 163, 204,\n\t\t225, 255, 131, 203, 239, 119, 73, 174, 96, 197, 240, 136,\n\t\t219, 61, 50, 44, 187, 41, 229, 150, 117, 215, 169, 62, 217,\n\t\t237, 246, 214, 199, 131, 245, 245, 193, 120, 189, 199, 211,\n\t\t81, 229, 40, 115, 184, 252, 254, 144, 159, 213, 55, 232, 190,\n\t\t220, 47, 112, 41, 115, 95, 90, 103, 230, 66, 36, 42, 48, 133,\n\t\t90, 40, 217, 109, 53, 97, 97, 17, 3, 199, 18, 73, 109, 208,\n\t\t106, 30, 250, 120, 231, 69, 85, 29, 110, 190, 162, 220, 193,\n\t\t139, 193, 212, 185, 159, 60, 83, 107, 231, 155, 31, 231, 134,\n\t\t250, 250, 90, 87, 148, 243, 110, 122, 122, 209, 57, 119, 61,\n\t\t35, 10, 45, 13, 205, 45, 146, 195, 94, 33, 121, 91, 187, 219,\n\t\t66, 162, 34, 246, 43, 66, 223, 80, 235, 44, 91, 97, 175, 102,\n\t\t143, 174, 149, 122, 10, 106, 169, 177, 49, 110, 56, 184, 181,\n\t\t88, 19, 201, 132, 239, 96, 120, 238, 220, 240, 13, 143, 220,\n\t\t144, 116, 212, 52, 84, 86, 69, 220, 149, 213, 110, 193, 91,\n\t\t105, 15, 209, 142, 64, 123, 115, 251, 217, 173, 43, 110, 184,\n\t\t97, 197, 57, 243, 36, 201, 117, 126, 85, 164, 161, 202, 21,\n\t\t172, 12, 132, 102, 47, 104, 80, 237, 121, 93, 63, 69, 195,\n\t\t112, 161, 10, 115, 12, 157, 71, 161, 112, 168, 133, 162, 145,\n\t\t120, 178, 155, 218, 125, 76, 119, 164, 211, 208, 32, 105,\n\t\t240, 187, 142, 120, 210, 104, 60, 154, 224, 22, 88, 44, 179,\n\t\t183, 93, 212, 117, 253, 5, 1, 45, 240, 244, 182, 163, 93,\n\t\t253, 253, 27, 250, 251, 187, 26, 59, 59, 87, 204, 179, 74,\n\t\t78, 79, 64, 148, 126, 206, 156, 172, 239, 210, 57, 43, 58,\n\t\t244, 231, 165, 255, 221, 223, 165, 23, 202, 116, 174, 152,\n\t\t55, 47, 42, 75, 98, 192, 227, 148, 172, 133, 189, 187, 59,\n\t\t116, 61, 60, 134, 165, 218, 122, 75, 250, 133, 112, 40, 162,\n\t\t65, 146, 72, 250, 107, 56, 62, 239, 123, 21, 53, 93, 174,\n\t\t98, 237, 181, 164, 75, 88, 126, 29, 108, 22, 213, 64, 13,\n\t\t135, 4, 230, 215, 193, 211, 240, 166, 205, 235, 97, 148, 146,\n\t\t229, 248, 172, 134, 139, 182, 205, 182, 88, 20, 255, 85, 150,\n\t\t104, 138, 46, 17, 44, 30, 222, 198, 91, 63, 248, 190, 25,\n\t\t24, 46, 235, 72, 122, 245, 18, 114, 155, 247, 44, 165, 191,\n\t\t203, 155, 112, 158, 197, 137, 178, 28, 237, 228, 219, 44,\n\t\t179, 236, 151, 246, 49, 39, 171, 172, 62, 183, 97, 65, 248,\n\t\t52, 222, 198, 243, 21, 130, 133, 94, 49, 3, 151, 59, 92, 70,\n\t\t126, 121, 87, 217, 188, 234, 218, 174, 126, 183, 50, 143,\n\t\t231, 157, 146, 181, 51, 74, 170, 170, 203, 71, 185, 169, 92,\n\t\t154, 235, 165, 151, 224, 128, 219, 56, 121, 160, 99, 122,\n\t\t210, 157, 104, 247, 159, 124, 141, 113, 167, 201, 85, 129,\n\t\t108, 48, 80, 37, 103, 148, 78, 197, 63, 115, 169, 217, 202,\n\t\t219, 218, 202, 105, 164, 188, 60, 251, 244, 140, 197, 70,\n\t\t185, 172, 105, 103, 152, 173, 235, 139, 26, 49, 100, 38, 225,\n\t\t9, 231, 3, 209, 136, 177, 217, 26, 139, 70, 244, 125, 178,\n\t\t90, 162, 195, 53, 139, 22, 213, 220, 120, 21, 47, 46, 178,\n\t\t137, 220, 220, 53, 77, 188, 38, 72, 83, 48, 72, 154, 40, 205,\n\t\t55, 173, 153, 75, 196, 11, 214, 69, 34, 127, 21, 33, 218,\n\t\t30, 221, 109, 147, 217, 206, 211, 4, 201, 182, 110, 157, 77,\n\t\t18, 78, 219, 105, 177, 9, 22, 219, 110, 253, 75, 217, 249,\n\t\t253, 79, 17, 94, 212, 97, 14, 230, 225, 12, 156, 139, 235,\n\t\t1, 175, 171, 206, 84, 94, 27, 78, 177, 243, 25, 253, 23, 211,\n\t\t117, 162, 94, 215, 81, 66, 227, 99, 211, 212, 62, 109, 122,\n\t\t183, 164, 138, 61, 244, 135, 79, 25, 161, 62, 79, 32, 155,\n\t\t10, 120, 218, 140, 13, 15, 253, 238, 36, 103, 54, 227, 9,\n\t\t4, 14, 234, 37, 12, 7, 253, 245, 167, 8, 147, 246, 110, 155,\n\t\t39, 96, 56, 97, 26, 119, 29, 175, 223, 208, 229, 10, 55, 106,\n\t\t49, 191, 160, 137, 107, 236, 169, 149, 146, 126, 125, 135,\n\t\t166, 193, 100, 154, 181, 196, 162, 117, 198, 44, 233, 9, 73,\n\t\t163, 99, 121, 81, 170, 131, 222, 101, 172, 207, 81, 51, 159,\n\t\t183, 46, 233, 232, 8, 214, 56, 178, 151, 75, 210, 245, 122,\n\t\t132, 130, 193, 67, 86, 254, 122, 73, 234, 63, 100, 229, 231,\n\t\t215, 56, 250, 244, 130, 171, 152, 135, 245, 57, 36, 103, 163,\n\t\t117, 217, 105, 243, 26, 157, 146, 99, 141, 212, 41, 105, 225,\n\t\t119, 172, 82, 167, 244, 142, 85, 75, 234, 51, 203, 192, 192,\n\t\t29, 131, 78, 123, 76, 249, 54, 28, 138, 26, 107, 176, 155,\n\t\t75, 70, 58, 226, 15, 30, 120, 240, 193, 171, 59, 99, 167,\n\t\t47, 231, 172, 196, 49, 87, 64, 152, 71, 35, 183, 238, 188,\n\t\t213, 29, 179, 112, 60, 243, 206, 245, 205, 91, 122, 65, 94,\n\t\t31, 248, 21, 7, 218, 9, 39, 106, 245, 29, 138, 112, 137, 49,\n\t\t88, 161, 134, 18, 63, 45, 47, 211, 214, 170, 224, 247, 40,\n\t\t164, 251, 158, 21, 102, 80, 91, 24, 90, 161, 237, 219, 120,\n\t\t230, 85, 215, 170, 94, 139, 64, 171, 24, 191, 77, 210, 35,\n\t\t90, 42, 209, 57, 235, 111, 91, 191, 130, 241, 219, 120, 214,\n\t\t222, 213, 206, 168, 153, 241, 125, 170, 215, 171, 246, 89,\n\t\t4, 139, 196, 51, 73, 143, 108, 100, 124, 179, 216, 187, 126,\n\t\t254, 252, 245, 103, 242, 115, 121, 198, 248, 248, 156, 120,\n\t\t124, 78, 156, 103, 186, 236, 138, 249, 244, 28, 157, 161,\n\t\t245, 217, 173, 203, 150, 26, 179, 54, 120, 180, 46, 200, 142,\n\t\t158, 168, 110, 211, 130, 147, 168, 229, 51, 234, 50, 228,\n\t\t96, 141, 187, 27, 60, 93, 23, 90, 127, 126, 98, 93, 139, 79,\n\t\t90, 21, 56, 88, 114, 199, 185, 79, 210, 38, 212, 105, 220,\n\t\t178, 84, 59, 232, 8, 155, 190, 140, 237, 186, 45, 77, 151,\n\t\t181, 121, 83, 190, 88, 64, 165, 138, 132, 41, 44, 123, 99,\n\t\t237, 220, 39, 174, 96, 30, 118, 5, 99, 14, 230, 101, 141,\n\t\t207, 139, 54, 167, 67, 114, 142, 219, 149, 70, 230, 101, 14,\n\t\t150, 205, 148, 68, 89, 105, 217, 181, 131, 140, 13, 50, 143,\n\t\t150, 209, 244, 52, 115, 58, 106, 20, 251, 155, 77, 90, 174,\n\t\t199, 87, 28, 97, 197, 197, 204, 179, 92, 139, 40, 141, 22,\n\t\t160, 65, 83, 100, 116, 67, 166, 47, 207, 202, 194, 133, 144,\n\t\t165, 8, 65, 106, 53, 197, 135, 113, 78, 171, 59, 251, 134,\n\t\t64, 178, 67, 225, 132, 96, 93, 75, 157, 235, 151, 174, 186,\n\t\t150, 186, 192, 18, 253, 200, 202, 26, 155, 204, 137, 116,\n\t\t143, 164, 88, 30, 112, 7, 203, 28, 21, 106, 216, 95, 87, 231,\n\t\t47, 119, 58, 203, 181, 103, 208, 69, 31, 213, 157, 193, 28,\n\t\t182, 57, 101, 14, 243, 171, 49, 186, 77, 219, 85, 240, 98,\n\t\t152, 118, 21, 240, 155, 110, 15, 186, 197, 109, 36, 165, 173,\n\t\t226, 130, 109, 60, 101, 218, 217, 123, 116, 123, 120, 80,\n\t\t155, 7, 133, 180, 87, 181, 153, 53, 108, 73, 10, 169, 134,\n\t\t6, 226, 215, 247, 103, 185, 5, 103, 177, 58, 53, 59, 164,\n\t\t40, 76, 11, 208, 22, 69, 201, 246, 187, 130, 21, 226, 25,\n\t\t90, 229, 35, 158, 192, 195, 27, 101, 119, 185, 164, 221, 58,\n\t\t37, 175, 250, 9, 242, 121, 2, 26, 221, 128, 33, 39, 21, 108,\n\t\t239, 198, 62, 69, 63, 48, 243, 84, 75, 108, 70, 188, 238,\n\t\t159, 228, 251, 103, 246, 87, 211, 148, 232, 108, 222, 102,\n\t\t227, 35, 218, 237, 180, 66, 40, 251, 236, 73, 18, 127, 175,\n\t\t239, 88, 180, 105, 226, 149, 70, 20, 109, 252, 167, 181, 84,\n\t\t253, 246, 151, 194, 109, 73, 225, 246, 19, 243, 150, 210,\n\t\t139, 187, 101, 210, 37, 172, 236, 254, 146, 51, 42, 1, 204,\n\t\t209, 207, 57, 156, 109, 236, 113, 23, 155, 52, 253, 186, 183,\n\t\t181, 65, 224, 195, 188, 118, 215, 216, 161, 106, 216, 174,\n\t\t98, 101, 166, 67, 73, 194, 212, 189, 125, 154, 32, 146, 48,\n\t\t101, 48, 193, 235, 105, 211, 119, 32, 204, 169, 100, 162,\n\t\t176, 94, 16, 40, 37, 136, 236, 3, 11, 87, 243, 25, 65, 216,\n\t\t161, 59, 112, 244, 235, 14, 28, 117, 138, 232, 150, 53, 216,\n\t\t42, 35, 165, 150, 211, 160, 200, 236, 130, 224, 17, 6, 132,\n\t\t165, 76, 180, 204, 17, 234, 133, 236, 148, 238, 24, 242, 25,\n\t\t221, 49, 36, 46, 50, 217, 45, 42, 98, 164, 146, 21, 124, 152,\n\t\t94, 50, 61, 80, 116, 122, 201, 242, 42, 200, 244, 46, 242,\n\t\t66, 77, 96, 209, 5, 217, 188, 123, 49, 135, 53, 103, 185,\n\t\t156, 229, 204, 209, 160, 216, 27, 117, 15, 97, 246, 152, 216,\n\t\t122, 110, 219, 89, 107, 118, 233, 110, 69, 228, 60, 107, 141,\n\t\t165, 202, 214, 104, 87, 244, 179, 88, 231, 216, 217, 99, 85,\n\t\t129, 182, 115, 91, 215, 240, 186, 99, 18, 0, 33, 247, 94,\n\t\t238, 71, 220, 157, 244, 31, 152, 143, 197, 184, 27, 247, 225,\n\t\t85, 252, 26, 160, 130, 3, 126, 52, 28, 138, 70, 52, 6, 146,\n\t\t152, 246, 196, 159, 246, 191, 247, 199, 218, 253, 62, 13,\n\t\t84, 129, 249, 243, 110, 252, 81, 95, 55, 69, 35, 10, 77, 167,\n\t\t48, 93, 220, 141, 182, 80, 137, 107, 127, 137, 103, 127, 34,\n\t\t153, 240, 183, 215, 112, 165, 206, 253, 221, 212, 66, 154,\n\t\t136, 92, 67, 9, 254, 255, 2, 64, 28, 108, 188, 189, 76, 177,\n\t\t241, 54, 187, 224, 116, 144, 213, 74, 14, 167, 96, 183, 241,\n\t\t54, 165, 204, 206, 219, 156, 206, 15, 205, 173, 44, 139, 136,\n\t\t114, 89, 68, 92, 19, 114, 49, 177, 78, 118, 213, 148, 215,\n\t\t72, 182, 72, 68, 116, 212, 150, 87, 187, 228, 160, 157, 185,\n\t\t234, 4, 161, 174, 204, 102, 15, 74, 101, 213, 21, 53, 14,\n\t\t49, 18, 177, 50, 193, 82, 83, 94, 99, 228, 134, 132, 219,\n\t\t92, 86, 95, 184, 205, 167, 223, 73, 252, 191, 0, 10, 145,\n\t\t34, 90, 152, 196, 68, 69, 82, 29, 101, 110, 187, 42, 169,\n\t\t162, 32, 49, 171, 168, 90, 44, 170, 104, 21, 100, 65, 84,\n\t\t37, 213, 238, 46, 115, 168, 146, 98, 23, 36, 102, 17, 21,\n\t\t75, 183, 34, 133, 61, 138, 20, 126, 210, 101, 119, 87, 54,\n\t\t170, 118, 151, 215, 17, 178, 41, 196, 24, 41, 182, 144, 195,\n\t\t235, 178, 171, 209, 42, 183, 221, 21, 172, 117, 217, 221,\n\t\t85, 81, 213, 238, 244, 218, 67, 162, 76, 140, 241, 130, 205,\n\t\t26, 114, 120, 156, 14, 103, 36, 224, 182, 187, 106, 59, 124,\n\t\t109, 97, 31, 239, 210, 239, 143, 207, 0, 68, 86, 68, 38, 9,\n\t\t5, 64, 180, 28, 57, 15, 136, 200, 74, 1, 1, 56, 93, 94, 88,\n\t\t68, 35, 112, 163, 73, 215, 26, 11, 242, 66, 50, 161, 201,\n\t\t11, 137, 118, 183, 207, 239, 43, 164, 154, 138, 67, 13, 121,\n\t\t61, 52, 114, 235, 5, 93, 177, 166, 22, 77, 144, 176, 120,\n\t\t213, 200, 173, 59, 199, 85, 175, 197, 202, 183, 52, 197, 186,\n\t\t82, 107, 203, 203, 148, 203, 63, 71, 243, 122, 105, 209, 166,\n\t\t139, 43, 42, 44, 28, 111, 245, 132, 102, 197, 22, 93, 156,\n\t\t221, 20, 242, 88, 237, 21, 21, 137, 102, 238, 134, 21, 14,\n\t\t177, 236, 220, 185, 49, 67, 223, 86, 115, 207, 82, 144, 210,\n\t\t144, 1, 114, 21, 206, 198, 114, 9, 10, 78, 31, 135, 61, 93,\n\t\t164, 116, 182, 183, 71, 244, 123, 238, 91, 163, 68, 44, 222,\n\t\t77, 101, 211, 123, 143, 119, 80, 26, 205, 154, 174, 206, 153,\n\t\t75, 183, 224, 54, 168, 111, 254, 37, 22, 22, 92, 221, 10,\n\t\t62, 57, 52, 187, 34, 226, 87, 236, 155, 169, 156, 179, 115,\n\t\t229, 180, 217, 174, 180, 69, 164, 217, 186, 209, 202, 169,\n\t\t221, 103, 255, 93, 10, 206, 169, 176, 43, 107, 57, 174, 205,\n\t\t106, 109, 227, 184, 181, 138, 189, 190, 171, 236, 19, 138,\n\t\t93, 63, 64, 208, 102, 87, 138, 246, 4, 231, 98, 30, 78, 207,\n\t\t243, 38, 13, 251, 153, 233, 237, 19, 174, 51, 165, 164, 142,\n\t\t22, 78, 91, 71, 5, 131, 134, 1, 8, 239, 243, 71, 162, 97,\n\t\t175, 167, 161, 35, 44, 176, 68, 50, 193, 53, 218, 149, 238,\n\t\t182, 238, 218, 134, 182, 170, 6, 41, 123, 80, 106, 168, 106,\n\t\t179, 42, 245, 90, 146, 98, 95, 107, 64, 150, 253, 154, 219,\n\t\t239, 208, 26, 77, 113, 14, 191, 59, 76, 195, 138, 189, 179,\n\t\t115, 78, 136, 197, 125, 189, 53, 149, 146, 36, 73, 149, 53,\n\t\t189, 156, 61, 82, 206, 66, 115, 58, 59, 77, 250, 211, 120,\n\t\t135, 108, 155, 53, 199, 233, 247, 59, 231, 204, 178, 201,\n\t\t149, 40, 241, 15, 244, 162, 21, 73, 77, 202, 107, 8, 155,\n\t\t86, 151, 188, 9, 83, 167, 129, 201, 146, 179, 22, 94, 227,\n\t\t216, 200, 130, 147, 157, 183, 160, 198, 19, 14, 92, 188, 150,\n\t\t63, 111, 177, 185, 206, 223, 231, 175, 219, 92, 122, 222,\n\t\t34, 85, 122, 220, 194, 150, 63, 109, 97, 211, 132, 0, 219,\n\t\t140, 243, 22, 185, 227, 185, 231, 57, 43, 237, 65, 24, 73,\n\t\t0, 53, 196, 20, 242, 41, 66, 68, 96, 66, 11, 151, 236, 166,\n\t\t72, 183, 224, 75, 36, 19, 58, 237, 210, 180, 73, 79, 13, 231,\n\t\t111, 143, 181, 39, 187, 137, 14, 134, 68, 209, 198, 49, 206,\n\t\t30, 93, 180, 228, 180, 249, 115, 154, 100, 181, 233, 132,\n\t\t148, 103, 4, 102, 113, 176, 248, 213, 10, 89, 120, 11, 199,\n\t\t73, 86, 251, 197, 244, 108, 168, 73, 149, 155, 230, 204, 63,\n\t\t109, 201, 162, 168, 157, 99, 156, 77, 20, 79, 72, 185, 156,\n\t\t115, 200, 140, 148, 171, 227, 22, 198, 91, 73, 106, 190, 88,\n\t\t151, 195, 143, 155, 103, 224, 253, 134, 205, 1, 186, 188,\n\t\t183, 144, 18, 181, 212, 77, 73, 141, 154, 38, 252, 244, 15,\n\t\t119, 54, 147, 118, 91, 203, 121, 247, 144, 83, 154, 59, 255,\n\t\t162, 170, 46, 133, 181, 217, 220, 244, 13, 171, 59, 157, 205,\n\t\t184, 215, 186, 109, 109, 76, 233, 170, 90, 125, 90, 187, 195,\n\t\t53, 84, 198, 155, 123, 149, 249, 189, 196, 150, 19, 119, 19,\n\t\t221, 218, 234, 108, 165, 80, 56, 164, 146, 224, 245, 212,\n\t\t146, 192, 162, 17, 51, 226, 245, 251, 138, 55, 27, 91, 54,\n\t\t60, 33, 157, 78, 156, 221, 90, 67, 66, 67, 120, 89, 45, 207,\n\t\t44, 150, 37, 162, 106, 41, 101, 165, 217, 225, 39, 54, 72,\n\t\t22, 85, 92, 98, 177, 48, 190, 118, 89, 184, 65, 160, 26, 171,\n\t\t157, 163, 211, 77, 219, 157, 166, 39, 190, 132, 200, 169,\n\t\t79, 18, 20, 56, 168, 198, 222, 103, 30, 40, 248, 228, 133,\n\t\t186, 109, 183, 169, 166, 122, 118, 58, 224, 209, 19, 71, 60,\n\t\t129, 43, 83, 23, 174, 90, 168, 47, 64, 103, 205, 236, 166,\n\t\t154, 53, 5, 123, 38, 151, 162, 17, 83, 39, 213, 189, 181,\n\t\t235, 76, 188, 76, 22, 233, 150, 172, 40, 76, 222, 58, 115,\n\t\t153, 113, 41, 227, 240, 77, 90, 218, 44, 73, 155, 165, 97,\n\t\t169, 87, 146, 122, 37, 14, 31, 164, 3, 30, 58, 236, 9, 56,\n\t\t119, 237, 242, 4, 2, 43, 75, 142, 137, 107, 122, 96, 32, 175,\n\t\t11, 253, 129, 94, 162, 175, 234, 231, 236, 231, 2, 121, 47,\n\t\t84, 191, 105, 21, 111, 33, 211, 83, 38, 86, 67, 39, 73, 179,\n\t\t12, 55, 116, 68, 34, 29, 191, 214, 143, 240, 9, 55, 247, 11,\n\t\t162, 157, 173, 223, 254, 144, 17, 253, 217, 22, 45, 122, 193,\n\t\t87, 110, 90, 50, 95, 43, 212, 112, 61, 179, 139, 66, 255,\n\t\t205, 130, 158, 203, 182, 175, 215, 162, 91, 126, 102, 68,\n\t\t45, 103, 222, 248, 21, 99, 44, 10, 126, 35, 53, 136, 232,\n\t\t146, 249, 140, 253, 209, 104, 93, 136, 37, 141, 19, 72, 181,\n\t\t84, 216, 170, 202, 175, 213, 252, 104, 24, 125, 111, 203,\n\t\t6, 157, 234, 165, 133, 67, 73, 151, 170, 49, 125, 195, 228,\n\t\t38, 253, 62, 189, 217, 221, 37, 220, 167, 31, 77, 186, 79,\n\t\t24, 208, 55, 99, 140, 95, 126, 255, 220, 160, 129, 205, 136,\n\t\t3, 245, 30, 166, 159, 233, 212, 143, 146, 9, 94, 143, 161,\n\t\t212, 68, 117, 109, 161, 32, 216, 234, 182, 31, 95, 53, 49,\n\t\t23, 19, 194, 222, 118, 63, 151, 10, 58, 157, 14, 241, 252,\n\t\t69, 231, 7, 172, 149, 142, 50, 247, 50, 143, 173, 130, 11,\n\t\t85, 53, 52, 84, 165, 207, 95, 116, 190, 232, 112, 58, 83,\n\t\t117, 253, 215, 92, 211, 127, 108, 105, 217, 151, 236, 62,\n\t\t214, 211, 225, 116, 54, 133, 156, 97, 87, 199, 105, 78, 103,\n\t\t67, 213, 64, 85, 67, 71, 15, 243, 217, 191, 180, 135, 42,\n\t\t43, 23, 15, 44, 134, 105, 243, 179, 232, 178, 21, 26, 244,\n\t\t173, 93, 227, 163, 11, 5, 205, 208, 96, 49, 133, 205, 218,\n\t\t104, 36, 161, 127, 216, 193, 212, 245, 146, 9, 159, 74, 254,\n\t\t26, 98, 244, 179, 22, 187, 77, 94, 88, 102, 245, 40, 221,\n\t\t78, 75, 64, 156, 51, 71, 12, 88, 156, 221, 138, 199, 90, 182,\n\t\t80, 182, 217, 91, 102, 230, 218, 171, 138, 114, 211, 69, 81,\n\t\t133, 105, 133, 153, 146, 47, 92, 101, 159, 83, 154, 219, 218,\n\t\t90, 84, 85, 149, 125, 218, 143, 231, 14, 68, 77, 234, 172,\n\t\t225, 150, 79, 96, 218, 79, 161, 240, 108, 253, 196, 148, 126,\n\t\t142, 37, 217, 77, 73, 109, 64, 153, 160, 233, 225, 252, 12,\n\t\t239, 199, 60, 149, 230, 80, 85, 54, 40, 83, 153, 93, 82, 172,\n\t\t206, 112, 37, 41, 20, 62, 179, 204, 38, 5, 106, 207, 176,\n\t\t73, 129, 202, 128, 157, 23, 191, 88, 86, 149, 29, 152, 102,\n\t\t111, 1, 157, 242, 78, 185, 42, 229, 38, 181, 172, 193, 86,\n\t\t30, 84, 235, 45, 36, 139, 59, 107, 101, 121, 142, 187, 186,\n\t\t169, 92, 146, 43, 203, 10, 31, 34, 120, 214, 160, 210, 197,\n\t\t112, 71, 144, 64, 55, 224, 142, 69, 162, 145, 68, 172, 221,\n\t\t95, 67, 134, 15, 61, 203, 67, 159, 108, 33, 237, 103, 112,\n\t\t104, 126, 134, 119, 108, 30, 101, 231, 124, 81, 228, 237,\n\t\t129, 202, 128, 100, 59, 163, 54, 32, 217, 202, 206, 12, 147,\n\t\t66, 141, 81, 65, 145, 236, 101, 36, 15, 150, 85, 85, 209,\n\t\t87, 242, 16, 43, 149, 58, 20, 84, 47, 75, 229, 77, 213, 238,\n\t\t57, 178, 92, 187, 83, 148, 201, 82, 95, 31, 182, 53, 148,\n\t\t169, 77, 114, 165, 171, 172, 210, 51, 253, 161, 132, 3, 122,\n\t\t15, 1, 75, 46, 103, 250, 213, 155, 99, 173, 91, 179, 19, 62,\n\t\t191, 254, 243, 6, 116, 71, 108, 227, 115, 7, 209, 22, 138,\n\t\t234, 135, 152, 124, 254, 142, 120, 194, 61, 19, 104, 115,\n\t\t141, 109, 206, 15, 90, 184, 190, 222, 194, 236, 194, 135,\n\t\t141, 25, 165, 11, 243, 34, 68, 27, 141, 105, 225, 237, 252,\n\t\t63, 155, 23, 195, 46, 153, 135, 219, 28, 107, 127, 135, 192,\n\t\t4, 109, 173, 117, 147, 113, 180, 206, 95, 67, 6, 248, 81,\n\t\t133, 180, 159, 190, 54, 35, 238, 105, 3, 141, 14, 122, 158,\n\t\t56, 172, 254, 151, 198, 205, 253, 175, 207, 204, 140, 189,\n\t\t252, 6, 192, 154, 255, 110, 73, 52, 166, 155, 138, 34, 77,\n\t\t164, 159, 234, 208, 79, 231, 122, 106, 201, 167, 17, 139,\n\t\t56, 173, 209, 119, 38, 222, 88, 254, 67, 173, 190, 31, 46,\n\t\t55, 108, 21, 155, 24, 219, 164, 219, 42, 58, 245, 253, 12,\n\t\t234, 213, 109, 6, 189, 134, 249, 227, 110, 230, 97, 119, 235,\n\t\t230, 143, 19, 218, 204, 239, 252, 38, 253, 58, 87, 210, 36,\n\t\t26, 54, 221, 86, 190, 237, 47, 125, 104, 147, 230, 158, 240,\n\t\t255, 184, 205, 188, 47, 91, 52, 89, 144, 160, 252, 165, 237,\n\t\t105, 237, 219, 62, 180, 210, 85, 31, 10, 209, 137, 99, 155,\n\t\t223, 5, 242, 179, 14, 195, 40, 93, 77, 209, 210, 113, 213,\n\t\t218, 54, 119, 131, 78, 213, 168, 185, 41, 116, 202, 86, 69,\n\t\t32, 183, 151, 50, 180, 27, 188, 190, 175, 94, 129, 16, 154,\n\t\t48, 23, 73, 253, 59, 8, 225, 110, 157, 2, 37, 99, 62, 15,\n\t\t11, 55, 132, 35, 209, 26, 106, 16, 88, 184, 155, 120, 159,\n\t\t215, 195, 194, 137, 120, 148, 121, 252, 225, 72, 60, 25, 19,\n\t\t252, 49, 133, 66, 17, 127, 34, 25, 83, 168, 33, 230, 243,\n\t\t183, 16, 245, 237, 114, 180, 157, 214, 246, 109, 203, 179,\n\t\t22, 203, 179, 180, 104, 157, 26, 238, 56, 47, 251, 247, 122,\n\t\t101, 157, 239, 60, 186, 70, 20, 111, 180, 88, 62, 176, 220,\n\t\t168, 61, 27, 245, 114, 91, 245, 156, 236, 163, 122, 57, 10,\n\t\t246, 244, 247, 239, 209, 207, 100, 141, 172, 110, 119, 46,\n\t\t187, 168, 125, 117, 108, 217, 35, 193, 96, 48, 88, 215, 93,\n\t\t151, 170, 9, 213, 117, 215, 213, 125, 170, 167, 191, 127,\n\t\t169, 150, 126, 187, 86, 2, 198, 89, 242, 23, 57, 158, 126,\n\t\t140, 0, 234, 53, 201, 77, 163, 85, 81, 166, 141, 226, 66,\n\t\t138, 36, 146, 221, 26, 83, 80, 13, 46, 129, 252, 217, 152,\n\t\t227, 162, 167, 170, 166, 47, 242, 107, 119, 71, 131, 251,\n\t\t215, 114, 89, 117, 213, 210, 122, 102, 225, 151, 58, 122,\n\t\t150, 241, 114, 182, 203, 56, 21, 115, 94, 253, 89, 129, 234,\n\t\t50, 249, 215, 238, 134, 14, 247, 235, 13, 231, 86, 87, 121,\n\t\t68, 78, 230, 151, 245, 56, 150, 242, 150, 236, 231, 141, 3,\n\t\t49, 166, 77, 32, 195, 129, 30, 55, 237, 71, 73, 244, 98, 21,\n\t\t48, 211, 199, 126, 166, 159, 242, 204, 120, 189, 137, 223,\n\t\t238, 130, 83, 162, 6, 113, 45, 249, 84, 174, 52, 174, 251,\n\t\t238, 26, 135, 35, 166, 191, 32, 48, 35, 220, 213, 24, 8, 52,\n\t\t86, 127, 174, 87, 21, 197, 86, 81, 84, 69, 155, 63, 101, 19,\n\t\t93, 54, 113, 102, 2, 117, 157, 212, 95, 185, 40, 216, 111,\n\t\t88, 70, 206, 236, 117, 138, 98, 155, 77, 84, 69, 209, 183,\n\t\t80, 20, 157, 226, 14, 163, 42, 155, 211, 102, 211, 18, 92,\n\t\t54, 80, 238, 253, 220, 243, 28, 79, 105, 56, 117, 41, 87,\n\t\t37, 221, 215, 48, 178, 64, 99, 212, 49, 58, 226, 148, 28,\n\t\t207, 84, 74, 125, 246, 103, 28, 146, 147, 210, 53, 142, 103,\n\t\t178, 239, 169, 178, 173, 211, 38, 189, 246, 140, 163, 198,\n\t\t148, 217, 12, 91, 149, 219, 56, 219, 215, 96, 108, 82, 234,\n\t\t50, 82, 204, 92, 128, 201, 147, 236, 61, 132, 59, 194, 94,\n\t\t74, 165, 171, 221, 217, 1, 119, 117, 90, 247, 242, 223, 226,\n\t\t174, 206, 162, 218, 221, 87, 237, 30, 113, 87, 167, 134, 135,\n\t\t218, 182, 184, 171, 171, 221, 91, 218, 152, 40, 254, 166,\n\t\t218, 221, 215, 231, 174, 110, 211, 18, 218, 130, 65, 195,\n\t\t31, 228, 69, 221, 158, 52, 191, 96, 241, 205, 31, 243, 200,\n\t\t187, 59, 84, 83, 172, 163, 84, 197, 138, 21, 237, 16, 152,\n\t\t199, 68, 104, 96, 5, 243, 176, 21, 14, 201, 25, 187, 162,\n\t\t90, 90, 193, 216, 10, 169, 250, 138, 152, 83, 150, 78, 158,\n\t\t236, 43, 4, 37, 135, 94, 66, 146, 75, 75, 148, 36, 231, 191,\n\t\t55, 51, 76, 35, 250, 126, 177, 38, 69, 158, 134, 94, 32, 97,\n\t\t210, 98, 107, 233, 183, 164, 154, 168, 133, 139, 38, 98, 179,\n\t\t233, 212, 95, 152, 138, 42, 196, 166, 197, 187, 91, 227, 145,\n\t\t72, 60, 66, 255, 174, 63, 130, 149, 17, 183, 188, 200, 226,\n\t\t9, 122, 220, 149, 247, 175, 94, 180, 104, 245, 162, 112, 219,\n\t\t98, 195, 151, 120, 113, 155, 88, 183, 164, 238, 55, 53, 141,\n\t\t252, 34, 217, 29, 169, 76, 85, 30, 142, 232, 175, 232, 191,\n\t\t37, 145, 202, 160, 236, 246, 207, 174, 115, 184, 23, 105,\n\t\t175, 93, 182, 184, 173, 90, 147, 70, 171, 219, 22, 59, 157,\n\t\t178, 243, 180, 176, 91, 14, 86, 70, 242, 107, 86, 27, 243,\n\t\t6, 44, 203, 123, 126, 132, 140, 177, 54, 76, 83, 74, 158,\n\t\t210, 106, 250, 119, 135, 238, 197, 158, 48, 70, 219, 48, 108,\n\t\t117, 231, 169, 162, 86, 220, 235, 51, 50, 180, 247, 233, 204,\n\t\t230, 230, 158, 230, 219, 87, 53, 71, 152, 155, 72, 180, 48,\n\t\t217, 75, 94, 111, 151, 119, 177, 215, 203, 243, 140, 36, 159,\n\t\t232, 187, 250, 195, 50, 237, 218, 235, 196, 230, 220, 222,\n\t\t220, 211, 188, 234, 246, 230, 8, 179, 217, 171, 42, 69, 166,\n\t\t120, 231, 123, 125, 222, 197, 222, 46, 47, 111, 181, 218,\n\t\t202, 36, 175, 221, 185, 235, 195, 179, 69, 189, 10, 211, 95,\n\t\t66, 159, 183, 64, 222, 214, 161, 43, 127, 241, 68, 50, 110,\n\t\t110, 183, 235, 187, 166, 30, 174, 178, 186, 165, 106, 89,\n\t\t71, 118, 75, 87, 127, 98, 246, 197, 139, 154, 151, 122, 203,\n\t\t171, 27, 59, 127, 207, 215, 39, 106, 58, 150, 245, 119, 181,\n\t\t46, 85, 121, 203, 162, 139, 155, 235, 157, 157, 141, 101,\n\t\t58, 221, 27, 207, 165, 105, 159, 254, 253, 154, 134, 194,\n\t\t238, 230, 66, 234, 40, 221, 246, 209, 144, 149, 197, 162,\n\t\t198, 25, 37, 70, 63, 240, 53, 206, 206, 190, 54, 187, 209,\n\t\t247, 113, 253, 187, 91, 251, 181, 155, 237, 233, 157, 109,\n\t\t66, 74, 104, 14, 159, 117, 86, 248, 133, 135, 116, 142, 162,\n\t\t223, 30, 186, 234, 28, 155, 125, 100, 196, 110, 51, 214, 38,\n\t\t253, 152, 70, 16, 213, 41, 156, 38, 159, 235, 43, 133, 249,\n\t\t166, 63, 16, 151, 140, 22, 125, 136, 198, 159, 76, 180, 251,\n\t\t125, 44, 127, 24, 49, 111, 67, 38, 223, 227, 162, 88, 190,\n\t\t164, 124, 125, 5, 211, 63, 31, 199, 132, 186, 58, 129, 53,\n\t\t118, 118, 246, 117, 178, 138, 245, 229, 75, 202, 69, 49, 251,\n\t\t208, 180, 174, 226, 78, 63, 46, 218, 42, 42, 110, 170, 112,\n\t\t149, 233, 101, 168, 174, 142, 244, 247, 202, 92, 21, 55, 85,\n\t\t84, 216, 196, 37, 122, 177, 236, 63, 76, 205, 198, 82, 216,\n\t\t7, 117, 33, 140, 102, 32, 175, 111, 26, 70, 120, 151, 199,\n\t\t23, 115, 107, 132, 164, 228, 212, 162, 95, 167, 33, 177, 118,\n\t\t63, 165, 20, 123, 86, 255, 154, 76, 111, 157, 127, 135, 110,\n\t\t187, 49, 162, 59, 110, 97, 3, 130, 157, 233, 86, 25, 26, 178,\n\t\t43, 217, 131, 254, 58, 90, 153, 255, 36, 151, 150, 114, 22,\n\t\t179, 11, 3, 204, 160, 37, 244, 18, 189, 132, 118, 192, 111,\n\t\t120, 148, 250, 243, 104, 155, 208, 105, 184, 134, 170, 186,\n\t\t163, 101, 220, 68, 96, 29, 205, 141, 244, 80, 83, 19, 53,\n\t\t255, 34, 116, 113, 93, 93, 221, 15, 125, 41, 159, 151, 124,\n\t\t95, 144, 28, 126, 135, 99, 139, 40, 218, 216, 15, 85, 85,\n\t\t105, 84, 127, 89, 25, 235, 173, 216, 169, 167, 238, 156, 115,\n\t\t123, 217, 156, 79, 205, 249, 77, 40, 20, 186, 164, 238, 57,\n\t\t63, 249, 125, 11, 125, 15, 56, 28, 62, 201, 241, 128, 40,\n\t\t218, 108, 207, 58, 103, 171, 170, 250, 122, 213, 178, 142,\n\t\t202, 93, 146, 228, 115, 72, 187, 230, 152, 243, 152, 166,\n\t\t17, 253, 172, 110, 163, 110, 231, 112, 149, 184, 188, 251,\n\t\t57, 115, 166, 220, 113, 227, 195, 34, 198, 198, 64, 7, 125,\n\t\t79, 41, 24, 25, 36, 143, 242, 165, 68, 67, 67, 162, 97, 196,\n\t\t106, 177, 90, 223, 150, 164, 35, 18, 117, 43, 158, 236, 120,\n\t\t222, 4, 161, 100, 63, 223, 160, 21, 32, 201, 106, 181, 88,\n\t\t165, 181, 146, 244, 127, 224, 83, 109, 209, 207, 233, 167,\n\t\t105, 147, 201, 95, 255, 101, 206, 250, 63, 57, 169, 244, 79,\n\t\t249, 32, 138, 206, 39, 49, 253, 148, 134, 166, 117, 156, 9,\n\t\t148, 153, 242, 154, 80, 216, 29, 49, 249, 248, 191, 8, 229,\n\t\t128, 206, 104, 27, 245, 157, 6, 227, 103, 28, 10, 59, 241,\n\t\t48, 82, 81, 152, 214, 235, 37, 71, 244, 23, 54, 25, 172, 218,\n\t\t246, 207, 187, 2, 65, 255, 86, 34, 116, 223, 190, 5, 88, 139,\n\t\t13, 216, 140, 109, 128, 59, 62, 159, 58, 146, 97, 125, 31,\n\t\t192, 56, 40, 154, 119, 60, 107, 162, 80, 7, 139, 119, 83,\n\t\t71, 60, 28, 210, 115, 147, 6, 205, 154, 118, 27, 13, 117,\n\t\t232, 219, 10, 177, 118, 221, 195, 85, 123, 159, 235, 40, 108,\n\t\t169, 107, 69, 212, 252, 151, 163, 162, 145, 127, 117, 108,\n\t\t44, 146, 74, 196, 17, 179, 9, 54, 209, 203, 108, 146, 164,\n\t\t74, 210, 98, 137, 42, 43, 68, 158, 183, 217, 108, 162, 160,\n\t\t84, 150, 85, 149, 151, 83, 84, 146, 122, 36, 43, 47, 216,\n\t\t25, 83, 157, 188, 205, 74, 214, 255, 31, 109, 127, 2, 102,\n\t\t199, 85, 222, 9, 227, 231, 212, 118, 234, 84, 157, 170, 91,\n\t\t247, 214, 118, 247, 190, 75, 223, 165, 247, 219, 119, 171,\n\t\t150, 212, 234, 190, 106, 75, 178, 228, 182, 165, 150, 105,\n\t\t45, 6, 99, 55, 182, 177, 132, 17, 166, 89, 109, 204, 214,\n\t\t38, 1, 4, 120, 64, 134, 252, 61, 134, 144, 113, 147, 16, 226,\n\t\t201, 31, 6, 195, 48, 64, 152, 0, 13, 201, 12, 254, 24, 66,\n\t\t196, 192, 16, 18, 152, 140, 152, 143, 228, 113, 242, 229,\n\t\t73, 68, 66, 18, 51, 9, 87, 223, 83, 231, 84, 221, 165, 187,\n\t\t37, 236, 144, 79, 143, 186, 234, 212, 169, 186, 85, 103, 95,\n\t\t222, 247, 247, 254, 94, 73, 34, 130, 172, 17, 178, 151, 72,\n\t\t81, 61, 146, 136, 91, 134, 252, 92, 138, 181, 73, 170, 10,\n\t\t7, 101, 44, 201, 178, 37, 145, 85, 34, 19, 242, 107, 118,\n\t\t38, 34, 202, 130, 44, 33, 36, 155, 150, 101, 196, 53, 158,\n\t\t96, 85, 125, 191, 130, 37, 94, 198, 50, 135, 100, 164, 65,\n\t\t206, 143, 18, 100, 201, 18, 76, 18, 75, 98, 4, 111, 254, 249,\n\t\t149, 225, 183, 239, 239, 114, 0, 254, 22, 149, 15, 222, 12,\n\t\t64, 41, 63, 156, 125, 212, 240, 11, 90, 232, 15, 235, 89,\n\t\t216, 3, 35, 85, 138, 12, 178, 149, 229, 183, 201, 237, 108,\n\t\t203, 129, 87, 250, 60, 82, 248, 79, 223, 168, 168, 78, 102,\n\t\t116, 220, 89, 184, 29, 163, 41, 17, 9, 181, 76, 113, 236,\n\t\t216, 195, 218, 234, 13, 246, 88, 41, 101, 96, 52, 45, 41,\n\t\t133, 108, 186, 148, 217, 236, 91, 159, 26, 78, 198, 46, 103,\n\t\t93, 93, 110, 215, 76, 74, 170, 196, 57, 78, 38, 81, 120, 125,\n\t\t60, 191, 191, 35, 233, 177, 164, 145, 245, 31, 228, 52, 203,\n\t\t141, 59, 201, 1, 158, 146, 58, 88, 2, 192, 43, 12, 130, 1,\n\t\t123, 83, 145, 213, 168, 47, 192, 93, 111, 232, 16, 229, 135,\n\t\t87, 41, 151, 111, 60, 153, 145, 20, 69, 122, 183, 127, 200,\n\t\t220, 28, 47, 196, 210, 254, 7, 223, 69, 47, 171, 135, 187,\n\t\t3, 253, 120, 254, 216, 209, 79, 244, 19, 254, 137, 227, 209,\n\t\t209, 212, 199, 7, 174, 107, 135, 243, 243, 253, 203, 65, 108,\n\t\t92, 159, 205, 97, 167, 100, 182, 85, 180, 189, 86, 209, 22,\n\t\t131, 243, 160, 198, 250, 169, 205, 205, 77, 184, 225, 31,\n\t\t182, 201, 94, 215, 214, 54, 195, 255, 1, 6, 143, 201, 235,\n\t\t195, 49, 99, 2, 0, 115, 6, 46, 194, 17, 24, 129, 236, 140,\n\t\t196, 48, 204, 88, 243, 252, 53, 167, 231, 207, 27, 200, 171,\n\t\t160, 203, 70, 46, 103, 24, 185, 220, 102, 170, 213, 74, 165,\n\t\t90, 45, 120, 40, 8, 220, 133, 113, 247, 87, 112, 82, 57, 137,\n\t\t49, 60, 143, 147, 202, 190, 211, 141, 83, 112, 141, 62, 107,\n\t\t24, 107, 244, 145, 84, 234, 63, 5, 231, 127, 84, 146, 254,\n\t\t211, 248, 164, 146, 244, 159, 198, 95, 61, 213, 56, 29, 232,\n\t\t18, 152, 252, 196, 159, 211, 231, 7, 208, 156, 20, 32, 80,\n\t\t100, 199, 190, 53, 84, 134, 209, 54, 100, 96, 56, 171, 135,\n\t\t103, 175, 85, 41, 218, 220, 186, 95, 188, 181, 185, 149, 185,\n\t\t141, 185, 149, 57, 131, 22, 73, 199, 74, 79, 90, 250, 61,\n\t\t122, 119, 146, 142, 83, 240, 118, 122, 218, 184, 103, 114,\n\t\t141, 86, 68, 117, 110, 174, 234, 255, 177, 39, 211, 86, 77,\n\t\t191, 71, 183, 206, 175, 167, 251, 131, 224, 103, 200, 61,\n\t\t235, 140, 107, 17, 0, 110, 131, 202, 79, 45, 202, 35, 91,\n\t\t246, 75, 114, 71, 141, 53, 154, 229, 98, 171, 222, 110, 21,\n\t\t67, 65, 148, 216, 42, 72, 126, 229, 89, 14, 71, 233, 13, 126,\n\t\t182, 229, 31, 141, 78, 41, 149, 42, 117, 254, 134, 18, 154,\n\t\t193, 181, 84, 169, 211, 41, 193, 13, 198, 148, 96, 106, 176,\n\t\t163, 153, 221, 167, 82, 165, 205, 82, 234, 138, 191, 216,\n\t\t88, 57, 215, 41, 165, 46, 119, 82, 37, 202, 237, 4, 78, 195,\n\t\t61, 16, 0, 149, 105, 209, 67, 76, 247, 8, 228, 52, 5, 63,\n\t\t44, 25, 210, 195, 88, 129, 32, 129, 31, 150, 164, 135, 113,\n\t\t130, 233, 186, 16, 88, 131, 123, 32, 166, 246, 77, 249, 254,\n\t\t46, 2, 230, 187, 221, 254, 143, 214, 134, 127, 227, 183, 149,\n\t\t45, 120, 27, 253, 78, 180, 191, 17, 217, 10, 159, 130, 7,\n\t\t6, 127, 28, 232, 212, 64, 5, 252, 123, 246, 27, 102, 188,\n\t\t195, 86, 30, 225, 79, 22, 7, 211, 56, 184, 223, 98, 125, 96,\n\t\t103, 105, 70, 139, 209, 124, 180, 24, 29, 110, 247, 112, 99,\n\t\t71, 155, 135, 224, 42, 240, 255, 0, 224, 128, 118, 245, 89,\n\t\t216, 128, 23, 2, 251, 176, 1, 10, 176, 82, 8, 196, 109, 215,\n\t\t221, 177, 191, 54, 136, 250, 0, 178, 208, 3, 42, 129, 17,\n\t\t149, 24, 225, 245, 102, 86, 125, 0, 161, 7, 212, 236, 203,\n\t\t212, 44, 13, 210, 124, 209, 119, 130, 77, 63, 95, 131, 111,\n\t\t28, 124, 75, 239, 135, 244, 121, 112, 25, 54, 105, 26, 168,\n\t\t118, 172, 87, 222, 238, 192, 15, 46, 247, 126, 192, 245, 240,\n\t\t31, 35, 96, 47, 0, 3, 86, 128, 254, 24, 228, 58, 110, 86,\n\t\t104, 212, 23, 4, 175, 141, 10, 211, 92, 49, 208, 6, 6, 99,\n\t\t51, 146, 80, 65, 231, 224, 63, 240, 136, 21, 16, 226, 243,\n\t\t111, 224, 92, 221, 177, 21, 28, 51, 98, 196, 224, 95, 255,\n\t\t223, 101, 87, 79, 193, 135, 154, 152, 25, 106, 226, 217, 55,\n\t\t195, 148, 238, 66, 200, 11, 194, 55, 252, 18, 252, 134, 192,\n\t\t115, 137, 51, 92, 12, 107, 146, 136, 8, 38, 252, 201, 151,\n\t\t170, 216, 190, 173, 138, 136, 233, 223, 54, 9, 42, 191, 200,\n\t\t198, 106, 176, 126, 122, 26, 254, 20, 110, 249, 45, 223, 27,\n\t\t64, 134, 47, 192, 70, 22, 234, 208, 159, 88, 23, 33, 157,\n\t\t130, 25, 50, 35, 164, 194, 248, 206, 211, 34, 34, 53, 82,\n\t\t124, 73, 251, 236, 69, 248, 232, 217, 59, 111, 84, 112, 65,\n\t\t198, 245, 165, 163, 103, 207, 30, 157, 184, 41, 113, 151,\n\t\t136, 208, 101, 36, 62, 77, 200, 177, 202, 4, 124, 244, 15,\n\t\t30, 237, 96, 92, 144, 229, 201, 179, 239, 63, 91, 201, 35,\n\t\t177, 198, 240, 90, 32, 216, 175, 121, 131, 252, 46, 205, 69,\n\t\t88, 65, 195, 150, 1, 245, 17, 232, 85, 118, 96, 161, 232,\n\t\t110, 0, 254, 20, 161, 55, 201, 38, 114, 17, 146, 170, 39,\n\t\t36, 140, 95, 131, 83, 120, 154, 157, 164, 19, 85, 145, 218,\n\t\t8, 160, 55, 51, 140, 150, 248, 42, 255, 250, 167, 200, 66,\n\t\t111, 70, 200, 69, 22, 18, 253, 159, 164, 240, 107, 48, 158,\n\t\t102, 39, 233, 68, 85, 242, 111, 153, 242, 155, 130, 39, 94,\n\t\t37, 50, 44, 230, 213, 171, 91, 240, 32, 229, 155, 246, 219,\n\t\t52, 226, 37, 218, 8, 24, 229, 5, 99, 40, 137, 64, 88, 213,\n\t\t117, 244, 20, 210, 137, 206, 79, 63, 128, 136, 4, 115, 16,\n\t\t41, 210, 69, 162, 243, 227, 48, 23, 39, 221, 75, 36, 70, 190,\n\t\t42, 19, 116, 69, 82, 68, 83, 125, 91, 79, 247, 186, 65, 249,\n\t\t37, 91, 224, 16, 56, 185, 147, 93, 210, 179, 139, 76, 52,\n\t\t177, 115, 122, 107, 132, 146, 138, 98, 203, 221, 246, 171,\n\t\t252, 182, 107, 10, 110, 167, 163, 213, 145, 154, 27, 249,\n\t\t122, 213, 15, 209, 184, 234, 215, 35, 110, 109, 171, 118,\n\t\t164, 119, 31, 174, 244, 130, 107, 225, 89, 51, 87, 106, 123,\n\t\t35, 110, 167, 127, 221, 113, 35, 123, 107, 181, 218, 74, 63,\n\t\t166, 127, 0, 12, 79, 192, 240, 98, 83, 20, 243, 70, 45, 47,\n\t\t36, 36, 21, 42, 181, 105, 68, 25, 224, 10, 44, 162, 236, 81,\n\t\t51, 34, 170, 35, 204, 66, 209, 223, 242, 49, 201, 116, 165,\n\t\t188, 0, 29, 218, 238, 90, 92, 7, 18, 57, 217, 242, 18, 2,\n\t\t225, 5, 65, 150, 85, 61, 18, 195, 35, 85, 139, 39, 66, 194,\n\t\t107, 166, 100, 2, 237, 247, 221, 110, 38, 205, 219, 223, 215,\n\t\t253, 31, 145, 168, 97, 204, 228, 19, 227, 178, 72, 18, 174,\n\t\t40, 168, 8, 255, 150, 172, 160, 180, 86, 156, 64, 8, 201,\n\t\t68, 37, 138, 44, 86, 10, 8, 77, 140, 234, 105, 164, 200, 119,\n\t\t63, 164, 196, 252, 84, 199, 148, 135, 30, 212, 245, 183, 229,\n\t\t103, 50, 113, 45, 142, 9, 81, 49, 26, 224, 255, 177, 65, 134,\n\t\t241, 255, 152, 118, 207, 40, 180, 93, 103, 40, 177, 98, 65,\n\t\t10, 249, 141, 220, 134, 61, 104, 35, 106, 91, 142, 95, 119,\n\t\t116, 122, 219, 160, 52, 191, 39, 98, 55, 197, 78, 40, 250,\n\t\t5, 55, 63, 78, 165, 129, 155, 231, 2, 162, 209, 11, 250, 171,\n\t\t253, 189, 224, 18, 130, 242, 51, 140, 103, 58, 151, 243, 55,\n\t\t140, 111, 160, 2, 193, 191, 124, 154, 238, 8, 107, 148, 44,\n\t\t184, 44, 173, 161, 37, 20, 234, 35, 191, 76, 237, 157, 53,\n\t\t202, 209, 12, 220, 86, 131, 194, 29, 216, 82, 153, 111, 178,\n\t\t213, 52, 146, 80, 205, 46, 54, 103, 203, 149, 178, 215, 131,\n\t\t87, 49, 184, 213, 218, 166, 24, 85, 162, 11, 81, 28, 19, 215,\n\t\t238, 89, 190, 233, 236, 100, 41, 178, 25, 41, 77, 82, 195,\n\t\t247, 233, 37, 172, 227, 25, 169, 92, 86, 228, 164, 174, 39,\n\t\t101, 152, 187, 241, 101, 103, 143, 46, 213, 39, 106, 16, 214,\n\t\t38, 234, 239, 199, 58, 94, 154, 70, 212, 106, 26, 12, 238,\n\t\t145, 253, 53, 201, 201, 62, 11, 185, 20, 90, 110, 211, 245,\n\t\t101, 111, 4, 244, 108, 138, 255, 103, 220, 174, 45, 199, 117,\n\t\t234, 94, 157, 70, 102, 160, 69, 205, 6, 41, 227, 165, 63,\n\t\t106, 6, 102, 132, 84, 35, 80, 9, 248, 203, 159, 165, 197,\n\t\t242, 245, 246, 77, 73, 179, 251, 33, 51, 217, 169, 69, 221,\n\t\t252, 116, 222, 137, 17, 53, 189, 55, 3, 5, 152, 30, 213, 71,\n\t\t100, 40, 64, 217, 172, 213, 76, 26, 200, 105, 163, 105, 70,\n\t\t115, 254, 51, 90, 242, 79, 112, 199, 90, 83, 102, 50, 105,\n\t\t78, 205, 46, 203, 39, 196, 140, 233, 230, 243, 174, 153, 17,\n\t\t111, 229, 120, 69, 129, 112, 90, 156, 204, 76, 234, 156, 0,\n\t\t145, 33, 115, 124, 42, 151, 72, 100, 211, 2, 39, 27, 8, 34,\n\t\t78, 27, 207, 76, 138, 125, 125, 39, 128, 95, 5, 75, 224, 38,\n\t\t127, 84, 240, 183, 34, 40, 104, 189, 84, 29, 215, 102, 86,\n\t\t77, 142, 20, 9, 140, 29, 246, 7, 134, 34, 220, 8, 100, 229,\n\t\t129, 178, 28, 141, 246, 187, 65, 184, 188, 128, 95, 142, 101,\n\t\t163, 185, 179, 71, 111, 60, 203, 121, 71, 85, 121, 81, 49,\n\t\t56, 158, 83, 241, 200, 158, 106, 101, 110, 68, 81, 57, 1,\n\t\t202, 4, 45, 202, 234, 81, 143, 203, 54, 50, 211, 75, 121,\n\t\t8, 71, 45, 29, 99, 29, 195, 149, 104, 38, 86, 138, 189, 234,\n\t\t208, 221, 119, 30, 84, 111, 219, 243, 171, 88, 227, 8, 167,\n\t\t98, 67, 49, 56, 233, 141, 213, 185, 189, 149, 135, 36, 206,\n\t\t80, 12, 73, 17, 160, 198, 105, 248, 87, 247, 156, 33, 169,\n\t\t233, 228, 254, 137, 87, 197, 202, 201, 210, 10, 246, 223,\n\t\t1, 6, 121, 202, 49, 208, 128, 11, 242, 212, 106, 60, 128,\n\t\t27, 242, 118, 163, 229, 82, 51, 176, 104, 163, 238, 244, 233,\n\t\t222, 55, 168, 202, 126, 107, 99, 139, 1, 167, 187, 107, 212,\n\t\t246, 185, 150, 11, 246, 224, 235, 112, 35, 151, 91, 185, 10,\n\t\t172, 52, 92, 75, 119, 127, 55, 109, 65, 96, 165, 3, 57, 251,\n\t\t22, 252, 10, 220, 2, 162, 63, 3, 57, 133, 114, 171, 97, 121,\n\t\t14, 19, 176, 76, 195, 86, 211, 99, 156, 115, 237, 222, 24,\n\t\t193, 217, 86, 22, 186, 206, 255, 105, 150, 55, 254, 45, 142,\n\t\t233, 221, 13, 28, 145, 49, 228, 34, 81, 235, 200, 156, 153,\n\t\t52, 75, 123, 243, 86, 52, 194, 249, 107, 177, 87, 41, 68,\n\t\t51, 113, 68, 38, 10, 228, 35, 241, 27, 38, 247, 158, 82, 109,\n\t\t191, 175, 219, 104, 114, 169, 60, 121, 67, 60, 194, 3, 192,\n\t\t95, 253, 105, 32, 71, 139, 130, 4, 168, 4, 59, 12, 54, 126,\n\t\t178, 53, 107, 209, 44, 218, 116, 242, 51, 243, 20, 244, 214,\n\t\t200, 215, 145, 132, 164, 173, 234, 156, 174, 192, 11, 173,\n\t\t229, 229, 86, 110, 174, 186, 145, 203, 37, 203, 101, 167,\n\t\t11, 242, 4, 107, 28, 207, 29, 137, 8, 98, 82, 238, 204, 85,\n\t\t159, 81, 244, 229, 251, 150, 171, 115, 48, 183, 81, 110, 150,\n\t\t187, 27, 185, 56, 130, 110, 6, 83, 213, 40, 234, 245, 153,\n\t\t20, 229, 146, 100, 28, 251, 175, 4, 64, 180, 243, 173, 230,\n\t\t62, 6, 69, 237, 131, 225, 253, 210, 111, 212, 249, 98, 31,\n\t\t54, 143, 26, 125, 32, 189, 235, 199, 55, 168, 110, 189, 127,\n\t\t191, 15, 178, 111, 85, 26, 61, 99, 97, 250, 155, 65, 67, 98,\n\t\t184, 213, 237, 16, 75, 87, 206, 80, 200, 205, 25, 69, 183,\n\t\t2, 24, 252, 103, 66, 96, 124, 167, 57, 136, 177, 87, 146,\n\t\t146, 37, 37, 37, 137, 157, 38, 45, 139, 192, 115, 138, 126,\n\t\t132, 202, 184, 116, 165, 251, 56, 204, 177, 231, 58, 33, 50,\n\t\t127, 117, 149, 172, 5, 136, 10, 122, 248, 73, 239, 199, 244,\n\t\t212, 219, 211, 132, 251, 134, 101, 240, 2, 102, 123, 250,\n\t\t252, 118, 14, 222, 117, 44, 164, 157, 231, 185, 171, 216,\n\t\t146, 231, 228, 154, 60, 39, 7, 167, 15, 63, 247, 61, 198,\n\t\t15, 6, 126, 38, 207, 93, 233, 239, 56, 250, 251, 67, 141,\n\t\t90, 233, 148, 192, 81, 191, 103, 245, 173, 28, 26, 215, 236,\n\t\t93, 98, 179, 60, 1, 123, 170, 187, 158, 174, 114, 0, 130,\n\t\t213, 110, 173, 229, 104, 23, 204, 93, 246, 251, 160, 97, 88,\n\t\t233, 110, 135, 230, 204, 128, 57, 140, 152, 33, 4, 51, 100,\n\t\t8, 131, 57, 24, 116, 210, 238, 230, 110, 189, 243, 226, 246,\n\t\t231, 105, 16, 12, 202, 158, 103, 216, 186, 141, 43, 162, 70,\n\t\t221, 154, 128, 173, 70, 171, 136, 138, 149, 86, 163, 213,\n\t\t104, 85, 90, 94, 171, 216, 42, 182, 188, 134, 219, 104, 249,\n\t\t147, 160, 53, 1, 221, 134, 203, 229, 214, 214, 54, 106, 241,\n\t\t215, 85, 109, 251, 53, 70, 237, 134, 130, 42, 215, 58, 157,\n\t\t154, 172, 22, 110, 168, 25, 175, 177, 237, 234, 235, 226,\n\t\t181, 203, 182, 99, 27, 198, 175, 16, 242, 209, 21, 245, 144,\n\t\t193, 203, 227, 50, 111, 28, 82, 87, 62, 74, 200, 175, 24,\n\t\t3, 246, 140, 9, 80, 0, 211, 116, 109, 205, 90, 73, 4, 218,\n\t\t195, 52, 27, 25, 232, 50, 34, 52, 175, 45, 49, 133, 50, 163,\n\t\t127, 30, 8, 195, 245, 252, 76, 210, 62, 17, 74, 100, 161,\n\t\t161, 232, 29, 140, 106, 30, 254, 28, 29, 78, 79, 179, 65,\n\t\t117, 109, 38, 255, 112, 188, 162, 140, 50, 68, 224, 69, 138,\n\t\t162, 251, 214, 195, 8, 127, 62, 33, 28, 26, 228, 183, 9, 14,\n\t\t67, 216, 172, 198, 48, 155, 157, 159, 46, 68, 171, 175, 216,\n\t\t171, 205, 94, 29, 246, 106, 179, 89, 14, 237, 93, 216, 102,\n\t\t104, 189, 103, 195, 50, 96, 206, 130, 225, 122, 255, 137,\n\t\t244, 65, 140, 86, 86, 122, 137, 232, 5, 135, 210, 178, 203,\n\t\t222, 246, 122, 156, 2, 67, 210, 211, 206, 54, 102, 129, 161,\n\t\t205, 218, 63, 15, 19, 12, 112, 32, 14, 70, 224, 191, 135,\n\t\t47, 1, 54, 24, 15, 153, 21, 232, 130, 61, 11, 123, 212, 10,\n\t\t104, 104, 37, 207, 86, 251, 149, 203, 23, 216, 58, 125, 109,\n\t\t77, 228, 121, 209, 65, 22, 186, 128, 126, 7, 161, 94, 44,\n\t\t179, 184, 248, 214, 5, 182, 52, 95, 91, 19, 137, 38, 184,\n\t\t244, 126, 138, 62, 27, 68, 179, 53, 127, 144, 142, 39, 225,\n\t\t75, 128, 69, 119, 55, 59, 137, 255, 29, 203, 27, 218, 118,\n\t\t48, 51, 143, 186, 227, 94, 222, 246, 201, 29, 201, 16, 48,\n\t\t198, 252, 39, 183, 125, 113, 183, 116, 240, 130, 192, 7, 243,\n\t\t220, 179, 240, 0, 188, 16, 164, 101, 167, 55, 130, 118, 189,\n\t\t50, 104, 228, 129, 116, 202, 78, 91, 110, 122, 159, 250, 57,\n\t\t95, 161, 73, 113, 17, 218, 186, 110, 154, 5, 158, 23, 252,\n\t\t216, 109, 105, 25, 219, 197, 203, 130, 159, 0, 119, 104, 239,\n\t\t21, 248, 71, 120, 223, 115, 200, 239, 207, 75, 7, 139, 3,\n\t\t208, 175, 27, 240, 23, 180, 141, 92, 163, 133, 228, 118, 105,\n\t\t12, 187, 85, 125, 240, 174, 103, 104, 61, 239, 94, 203, 59,\n\t\t171, 115, 151, 170, 163, 254, 34, 206, 192, 3, 176, 218, 183,\n\t\t31, 218, 86, 67, 187, 84, 5, 204, 237, 120, 55, 8, 124, 79,\n\t\t156, 129, 29, 246, 174, 93, 75, 120, 151, 194, 92, 219, 249,\n\t\t170, 62, 166, 110, 4, 20, 7, 188, 238, 248, 123, 15, 214,\n\t\t143, 253, 233, 193, 11, 103, 69, 24, 205, 71, 57, 58, 234,\n\t\t111, 25, 116, 62, 14, 52, 79, 6, 101, 106, 134, 151, 186,\n\t\t29, 58, 178, 108, 89, 233, 26, 93, 66, 235, 53, 54, 131, 117,\n\t\t55, 97, 174, 123, 185, 199, 255, 192, 248, 155, 242, 84, 3,\n\t\t88, 223, 166, 227, 13, 84, 230, 102, 52, 31, 140, 103, 188,\n\t\t255, 205, 117, 132, 203, 201, 46, 72, 150, 49, 250, 27, 75,\n\t\t219, 175, 199, 224, 87, 187, 128, 73, 39, 58, 221, 141, 28,\n\t\t70, 70, 178, 92, 78, 26, 8, 171, 118, 52, 2, 215, 187, 79,\n\t\t81, 46, 171, 238, 15, 152, 132, 103, 144, 143, 58, 178, 155,\n\t\t212, 168, 167, 233, 27, 24, 147, 126, 131, 234, 242, 104,\n\t\t126, 122, 148, 85, 221, 92, 160, 179, 99, 239, 235, 108, 123,\n\t\t95, 184, 55, 235, 191, 143, 150, 21, 181, 17, 186, 251, 122,\n\t\t175, 99, 227, 40, 157, 187, 211, 96, 207, 46, 28, 161, 189,\n\t\t107, 127, 104, 191, 222, 77, 38, 247, 218, 176, 210, 119,\n\t\t44, 49, 31, 69, 201, 242, 206, 152, 45, 122, 157, 182, 174,\n\t\t44, 221, 65, 49, 83, 229, 100, 103, 103, 204, 246, 52, 193,\n\t\t29, 159, 109, 247, 105, 93, 119, 166, 105, 224, 166, 159,\n\t\t166, 254, 199, 41, 201, 216, 230, 142, 24, 127, 200, 191,\n\t\t110, 122, 104, 76, 111, 93, 59, 32, 159, 30, 9, 245, 187,\n\t\t61, 91, 244, 64, 155, 21, 218, 254, 228, 194, 171, 144, 219,\n\t\t36, 56, 131, 224, 12, 107, 3, 106, 172, 191, 162, 199, 238,\n\t\t22, 141, 178, 153, 4, 120, 137, 197, 253, 3, 187, 250, 40,\n\t\t187, 98, 186, 175, 191, 98, 63, 245, 99, 62, 48, 32, 2, 134,\n\t\t75, 140, 105, 24, 14, 224, 164, 122, 104, 176, 128, 251, 131,\n\t\t225, 186, 216, 126, 136, 225, 154, 88, 126, 198, 6, 24, 67,\n\t\t182, 33, 106, 221, 118, 51, 16, 115, 76, 67, 29, 90, 174,\n\t\t83, 127, 148, 189, 235, 36, 109, 93, 255, 145, 30, 127, 67,\n\t\t144, 176, 34, 20, 239, 47, 10, 10, 150, 132, 169, 71, 130,\n\t\t15, 185, 3, 112, 218, 127, 43, 168, 72, 228, 196, 241, 113,\n\t\t145, 19, 145, 42, 180, 119, 164, 161, 116, 157, 52, 80, 83,\n\t\t155, 2, 146, 178, 254, 112, 179, 203, 247, 223, 141, 98, 162,\n\t\t56, 245, 200, 148, 132, 162, 168, 120, 255, 46, 95, 255, 154,\n\t\t44, 24, 114, 187, 141, 162, 60, 26, 7, 59, 243, 63, 210, 255,\n\t\t118, 136, 114, 116, 235, 254, 26, 194, 106, 180, 131, 116,\n\t\t176, 175, 254, 39, 6, 29, 54, 140, 45, 195, 8, 122, 235, 224,\n\t\t199, 62, 145, 203, 109, 132, 253, 75, 0, 0, 228, 184, 13,\n\t\t184, 70, 215, 41, 212, 223, 3, 12, 172, 86, 139, 12, 0, 208,\n\t\t112, 159, 195, 234, 62, 252, 62, 188, 188, 116, 199, 29, 75,\n\t\t55, 204, 220, 62, 115, 131, 31, 88, 35, 77, 82, 37, 77, 18,\n\t\t156, 88, 3, 57, 207, 90, 203, 218, 29, 191, 124, 71, 173,\n\t\t118, 199, 47, 223, 241, 153, 129, 39, 72, 115, 142, 182, 143,\n\t\t102, 200, 71, 173, 13, 96, 173, 83, 61, 230, 255, 211, 224,\n\t\t110, 240, 74, 240, 70, 240, 78, 240, 1, 240, 196, 78, 126,\n\t\t189, 65, 159, 103, 222, 243, 12, 139, 207, 225, 153, 107,\n\t\t61, 95, 186, 198, 51, 156, 209, 71, 123, 167, 187, 183, 179,\n\t\t29, 217, 218, 117, 78, 221, 167, 158, 195, 77, 152, 35, 207,\n\t\t16, 242, 76, 24, 61, 68, 17, 56, 104, 147, 189, 243, 255,\n\t\t234, 115, 142, 7, 66, 207, 167, 0, 2, 211, 160, 233, 239,\n\t\t14, 205, 44, 116, 237, 105, 88, 185, 174, 127, 1, 206, 117,\n\t\t80, 187, 238, 52, 234, 168, 37, 33, 187, 93, 242, 143, 82,\n\t\t165, 85, 174, 216, 101, 22, 227, 217, 109, 215, 118, 220,\n\t\t150, 227, 217, 109, 175, 37, 161, 86, 251, 239, 112, 61, 130,\n\t\t235, 145, 255, 101, 80, 111, 4, 47, 75, 244, 189, 17, 232,\n\t\t241, 8, 132, 98, 254, 198, 115, 201, 218, 143, 10, 213, 34,\n\t\t188, 165, 82, 44, 150, 201, 66, 185, 104, 122, 211, 233, 106,\n\t\t94, 93, 44, 23, 75, 165, 220, 120, 10, 114, 92, 148, 63, 200,\n\t\t69, 249, 47, 7, 94, 11, 10, 206, 144, 215, 2, 221, 213, 53,\n\t\t149, 20, 255, 239, 35, 124, 228, 176, 246, 238, 27, 163, 210,\n\t\t17, 9, 31, 228, 172, 131, 170, 120, 35, 180, 15, 71, 133,\n\t\t195, 60, 98, 151, 71, 132, 248, 97, 75, 186, 81, 8, 125, 219,\n\t\t108, 80, 126, 177, 209, 65, 27, 226, 129, 85, 142, 56, 140,\n\t\t253, 183, 33, 199, 24, 114, 208, 135, 62, 196, 150, 26, 95,\n\t\t69, 240, 1, 93, 233, 94, 10, 165, 137, 187, 176, 143, 125,\n\t\t73, 209, 3, 127, 73, 0, 240, 87, 255, 207, 213, 47, 114, 239,\n\t\t128, 191, 7, 84, 144, 242, 87, 173, 98, 165, 236, 153, 237,\n\t\t17, 232, 32, 94, 170, 244, 240, 131, 142, 191, 126, 71, 34,\n\t\t187, 174, 4, 113, 8, 186, 251, 137, 112, 129, 39, 254, 81,\n\t\t120, 179, 140, 47, 42, 202, 69, 44, 79, 96, 252, 162, 23,\n\t\t97, 12, 211, 189, 224, 4, 189, 213, 137, 241, 4, 126, 151,\n\t\t240, 49, 158, 116, 199, 201, 107, 177, 252, 78, 140, 223,\n\t\t41, 227, 105, 44, 175, 172, 200, 120, 166, 23, 154, 166, 119,\n\t\t130, 53, 236, 15, 184, 14, 252, 77, 144, 4, 53, 202, 134,\n\t\t228, 100, 32, 101, 214, 64, 82, 217, 107, 151, 43, 1, 206,\n\t\t14, 133, 80, 59, 164, 67, 123, 214, 114, 168, 71, 160, 202,\n\t\t133, 167, 72, 186, 113, 108, 33, 95, 43, 170, 182, 144, 222,\n\t\t179, 154, 38, 79, 201, 15, 82, 50, 160, 87, 200, 170, 42,\n\t\t191, 34, 77, 32, 247, 184, 162, 69, 94, 32, 216, 99, 135,\n\t\t103, 38, 79, 38, 100, 157, 188, 240, 86, 101, 53, 162, 41,\n\t\t143, 35, 39, 19, 208, 3, 25, 119, 160, 184, 170, 198, 209,\n\t\t29, 6, 35, 5, 130, 87, 255, 233, 234, 23, 57, 12, 255, 47,\n\t\t138, 69, 105, 59, 136, 215, 169, 119, 137, 98, 161, 220, 246,\n\t\t224, 23, 211, 51, 228, 203, 114, 46, 235, 62, 149, 72, 41,\n\t\t46, 252, 93, 50, 147, 238, 174, 69, 117, 41, 25, 123, 170,\n\t\t52, 165, 130, 158, 191, 76, 4, 191, 70, 245, 33, 125, 29,\n\t\t118, 208, 160, 81, 131, 9, 159, 183, 115, 225, 216, 81, 175,\n\t\t216, 106, 48, 84, 39, 180, 153, 31, 196, 42, 157, 148, 63,\n\t\t240, 154, 103, 66, 171, 175, 224, 250, 219, 251, 40, 19, 218,\n\t\t62, 134, 33, 103, 208, 163, 212, 7, 214, 116, 5, 202, 253,\n\t\t152, 238, 159, 125, 96, 109, 31, 37, 78, 219, 247, 119, 61,\n\t\t251, 48, 138, 45, 111, 131, 5, 112, 24, 28, 163, 246, 177,\n\t\t72, 66, 58, 71, 237, 219, 40, 2, 131, 242, 108, 66, 175, 53,\n\t\t13, 3, 202, 79, 218, 185, 22, 56, 175, 237, 77, 115, 52, 42,\n\t\t100, 44, 11, 177, 64, 177, 144, 56, 109, 35, 27, 135, 182,\n\t\t54, 149, 75, 215, 13, 69, 116, 211, 51, 75, 51, 122, 210,\n\t\t72, 140, 204, 44, 205, 140, 36, 226, 123, 226, 241, 44, 82,\n\t\t97, 52, 25, 153, 89, 154, 233, 254, 17, 221, 145, 187, 244,\n\t\t248, 143, 108, 119, 94, 75, 142, 203, 227, 73, 195, 148, 56,\n\t\t81, 22, 101, 60, 150, 200, 207, 204, 228, 99, 35, 142, 248,\n\t\t52, 26, 79, 249, 225, 212, 56, 186, 168, 74, 28, 175, 98,\n\t\t45, 46, 58, 185, 88, 126, 102, 102, 134, 138, 58, 187, 239,\n\t\t162, 39, 232, 5, 130, 79, 158, 226, 7, 33, 252, 10, 112, 25,\n\t\t179, 49, 229, 133, 101, 0, 66, 6, 165, 98, 176, 42, 55, 160,\n\t\t247, 28, 160, 250, 108, 82, 212, 149, 41, 21, 42, 193, 78,\n\t\t193, 165, 122, 247, 26, 198, 83, 147, 111, 185, 109, 114,\n\t\t138, 146, 216, 77, 217, 227, 243, 246, 148, 44, 27, 213, 221,\n\t\t162, 255, 55, 178, 80, 247, 70, 214, 81, 225, 239, 32, 52,\n\t\t46, 227, 169, 201, 219, 222, 50, 57, 133, 49, 125, 104, 126,\n\t\t220, 255, 237, 15, 170, 187, 69, 119, 63, 130, 252, 223, 208,\n\t\t206, 222, 189, 209, 223, 95, 113, 32, 126, 117, 11, 62, 68,\n\t\t253, 171, 205, 82, 43, 6, 219, 210, 7, 225, 28, 11, 156, 71,\n\t\t137, 226, 41, 249, 142, 14, 103, 224, 52, 244, 218, 225, 180,\n\t\t254, 245, 165, 251, 147, 165, 82, 82, 87, 142, 40, 186, 54,\n\t\t98, 154, 41, 103, 50, 97, 102, 172, 136, 100, 202, 19, 50,\n\t\t47, 45, 30, 222, 91, 173, 238, 173, 194, 173, 23, 118, 114,\n\t\t179, 41, 203, 86, 37, 191, 217, 40, 78, 33, 69, 212, 136,\n\t\t29, 113, 210, 154, 25, 149, 121, 41, 47, 153, 242, 139, 186,\n\t\t239, 25, 219, 51, 54, 182, 167, 183, 198, 7, 254, 26, 63,\n\t\t11, 202, 0, 120, 141, 97, 141, 214, 54, 3, 138, 48, 45, 150,\n\t\t101, 201, 132, 200, 235, 50, 161, 231, 199, 101, 66, 218,\n\t\t243, 227, 227, 243, 227, 241, 139, 68, 174, 249, 81, 223,\n\t\t9, 206, 53, 153, 192, 39, 199, 253, 123, 128, 250, 55, 219,\n\t\t2, 79, 209, 53, 168, 219, 183, 212, 10, 252, 105, 218, 124,\n\t\t208, 169, 158, 162, 174, 195, 206, 233, 138, 63, 62, 235,\n\t\t202, 146, 162, 207, 50, 245, 253, 141, 74, 36, 226, 111, 158,\n\t\t52, 77, 25, 88, 103, 239, 3, 247, 14, 172, 179, 145, 219,\n\t\t79, 242, 12, 44, 87, 164, 128, 12, 159, 101, 201, 171, 244,\n\t\t115, 55, 2, 29, 183, 189, 8, 219, 13, 177, 247, 131, 138,\n\t\t223, 95, 68, 90, 1, 12, 250, 20, 178, 35, 249, 61, 10, 82,\n\t\t116, 89, 186, 181, 207, 241, 207, 11, 88, 156, 230, 4, 158,\n\t\t159, 20, 49, 101, 118, 78, 238, 105, 81, 140, 204, 33, 44,\n\t\t84, 5, 142, 231, 199, 4, 12, 71, 253, 136, 39, 117, 14, 106,\n\t\t118, 34, 105, 107, 154, 22, 211, 177, 150, 213, 176, 62, 59,\n\t\t82, 217, 151, 140, 20, 243, 2, 4, 84, 108, 116, 243, 42, 61,\n\t\t201, 71, 4, 73, 18, 142, 48, 202, 255, 23, 220, 194, 226,\n\t\t14, 32, 94, 20, 15, 4, 6, 255, 186, 42, 219, 165, 164, 19,\n\t\t141, 68, 144, 162, 199, 136, 108, 99, 205, 73, 79, 143, 143,\n\t\t102, 12, 215, 34, 67, 101, 114, 247, 47, 86, 38, 112, 184,\n\t\t76, 248, 127, 245, 34, 137, 23, 139, 137, 221, 10, 100, 243,\n\t\t185, 22, 72, 119, 35, 44, 145, 204, 76, 214, 117, 204, 157,\n\t\t197, 17, 204, 207, 0, 126, 4, 216, 32, 233, 207, 207, 20,\n\t\t192, 86, 204, 247, 128, 55, 254, 4, 93, 66, 110, 195, 131,\n\t\t127, 251, 222, 139, 132, 116, 63, 108, 233, 107, 186, 14,\n\t\t129, 94, 213, 55, 245, 238, 239, 189, 105, 229, 213, 7, 255,\n\t\t195, 123, 73, 149, 232, 107, 122, 213, 143, 214, 55, 245,\n\t\t234, 236, 155, 87, 110, 8, 237, 154, 169, 12, 96, 217, 159,\n\t\t23, 2, 192, 27, 237, 185, 206, 8, 44, 232, 28, 29, 96, 131,\n\t\t190, 108, 91, 89, 10, 123, 42, 207, 192, 104, 205, 117, 90,\n\t\t205, 128, 125, 203, 182, 36, 255, 214, 2, 183, 8, 107, 72,\n\t\t106, 212, 219, 28, 138, 165, 72, 38, 105, 205, 70, 163, 49,\n\t\t40, 240, 188, 146, 207, 141, 142, 36, 244, 209, 98, 42, 154,\n\t\t137, 90, 86, 169, 213, 52, 99, 157, 245, 92, 37, 157, 44,\n\t\t142, 218, 197, 241, 241, 130, 170, 70, 205, 49, 92, 127, 194,\n\t\t204, 68, 83, 197, 209, 68, 177, 168, 17, 129, 23, 56, 201,\n\t\t208, 162, 53, 59, 145, 33, 201, 88, 108, 196, 197, 150, 5,\n\t\t5, 65, 128, 183, 40, 106, 29, 215, 221, 100, 54, 147, 180,\n\t\t106, 177, 104, 140, 23, 136, 42, 8, 135, 94, 62, 2, 250, 60,\n\t\t205, 91, 64, 5, 243, 20, 107, 238, 55, 9, 218, 10, 2, 221,\n\t\t55, 218, 197, 65, 2, 83, 168, 133, 100, 50, 174, 67, 217,\n\t\t100, 26, 223, 91, 153, 155, 91, 153, 235, 32, 124, 250, 192,\n\t\t28, 10, 189, 7, 204, 29, 56, 141, 145, 129, 240, 210, 236,\n\t\t158, 85, 140, 214, 230, 170, 155, 213, 57, 255, 112, 14, 163,\n\t\t218, 210, 221, 184, 64, 111, 210, 67, 1, 191, 236, 32, 5,\n\t\t205, 141, 55, 142, 9, 210, 45, 115, 53, 132, 1, 245, 221,\n\t\t240, 59, 220, 59, 225, 215, 64, 9, 28, 6, 64, 244, 71, 254,\n\t\t74, 176, 216, 9, 188, 169, 249, 11, 78, 183, 61, 144, 160,\n\t\t200, 142, 221, 55, 77, 48, 93, 128, 122, 174, 132, 108, 238,\n\t\t33, 130, 45, 133, 252, 236, 63, 210, 211, 127, 156, 171, 38,\n\t\t39, 147, 98, 82, 165, 169, 176, 110, 30, 76, 122, 83, 26,\n\t\t153, 73, 33, 189, 30, 51, 20, 69, 75, 16, 12, 191, 70, 79,\n\t\t239, 158, 170, 206, 37, 39, 147, 155, 186, 97, 197, 147, 76,\n\t\t26, 63, 94, 222, 24, 206, 10, 26, 75, 78, 102, 56, 8, 43,\n\t\t18, 87, 24, 148, 169, 104, 20, 33, 150, 175, 15, 200, 84,\n\t\t74, 3, 246, 232, 1, 23, 96, 207, 47, 169, 99, 19, 248, 36,\n\t\t9, 24, 151, 182, 72, 247, 12, 73, 91, 181, 64, 253, 83, 179,\n\t\t210, 16, 144, 238, 63, 211, 125, 132, 64, 38, 9, 25, 181,\n\t\t210, 254, 134, 201, 255, 163, 52, 199, 76, 247, 79, 191, 59,\n\t\t7, 58, 61, 236, 203, 12, 44, 183, 138, 246, 16, 164, 176,\n\t\t237, 181, 198, 57, 93, 100, 4, 108, 109, 175, 76, 45, 23,\n\t\t27, 77, 175, 231, 80, 242, 211, 146, 44, 75, 79, 42, 213,\n\t\t72, 202, 84, 169, 223, 167, 177, 17, 33, 43, 197, 165, 24,\n\t\t210, 176, 200, 155, 49, 89, 200, 206, 171, 249, 108, 186,\n\t\t32, 239, 85, 30, 102, 203, 129, 143, 65, 89, 124, 173, 40,\n\t\t195, 52, 103, 164, 132, 88, 124, 196, 160, 104, 234, 127,\n\t\t204, 183, 228, 20, 199, 75, 138, 102, 18, 44, 35, 19, 223,\n\t\t28, 73, 205, 78, 165, 12, 46, 22, 204, 253, 204, 159, 56,\n\t\t164, 92, 91, 245, 144, 29, 206, 182, 36, 202, 82, 54, 72,\n\t\t196, 67, 77, 20, 23, 225, 2, 220, 7, 253, 225, 201, 117, 122,\n\t\t137, 253, 41, 58, 56, 111, 168, 119, 137, 146, 162, 59, 74,\n\t\t82, 105, 96, 236, 158, 83, 116, 126, 86, 76, 146, 115, 229,\n\t\t151, 30, 105, 228, 148, 11, 212, 131, 27, 252, 68, 190, 126,\n\t\t228, 158, 202, 57, 45, 33, 206, 242, 186, 114, 206, 197, 184,\n\t\t161, 36, 21, 71, 87, 36, 241, 110, 197, 216, 127, 3, 226,\n\t\t158, 160, 126, 219, 192, 54, 59, 174, 116, 223, 70, 174, 212,\n\t\t179, 24, 27, 48, 145, 11, 76, 227, 186, 143, 93, 64, 22, 50,\n\t\t100, 249, 165, 47, 149, 101, 67, 54, 209, 133, 192, 42, 238,\n\t\t212, 59, 217, 245, 189, 247, 178, 251, 239, 68, 214, 246,\n\t\t247, 247, 185, 124, 67, 235, 176, 1, 115, 184, 64, 44, 114,\n\t\t223, 142, 215, 7, 187, 250, 231, 240, 254, 208, 246, 205,\n\t\t236, 189, 118, 192, 244, 77, 190, 214, 91, 110, 187, 214,\n\t\t135, 119, 148, 207, 0, 31, 112, 80, 44, 3, 102, 110, 129,\n\t\t121, 219, 46, 31, 8, 233, 14, 119, 150, 28, 24, 192, 178,\n\t\t124, 133, 233, 249, 189, 66, 176, 199, 145, 24, 173, 109,\n\t\t232, 213, 151, 174, 124, 153, 55, 158, 129, 241, 203, 166,\n\t\t188, 184, 253, 95, 232, 176, 80, 174, 132, 196, 251, 154,\n\t\t44, 137, 7, 101, 249, 160, 40, 201, 69, 253, 214, 26, 237,\n\t\t66, 163, 123, 170, 85, 111, 52, 221, 164, 220, 86, 181, 91,\n\t\t245, 98, 255, 153, 156, 241, 222, 223, 126, 175, 1, 1, 21,\n\t\t165, 172, 69, 88, 116, 164, 50, 43, 125, 137, 84, 137, 168,\n\t\t212, 71, 170, 123, 32, 156, 171, 140, 212, 21, 17, 137, 85,\n\t\t17, 125, 73, 154, 173, 132, 79, 29, 61, 125, 250, 40, 204,\n\t\t13, 219, 106, 7, 54, 251, 245, 231, 108, 181, 31, 186, 208,\n\t\t243, 19, 127, 77, 11, 254, 117, 230, 168, 240, 58, 134, 252,\n\t\t143, 215, 162, 174, 27, 245, 15, 215, 147, 45, 237, 194, 16,\n\t\t52, 32, 91, 250, 248, 227, 231, 207, 63, 126, 254, 151, 40,\n\t\t28, 228, 94, 102, 101, 196, 90, 97, 247, 135, 231, 253, 91,\n\t\t223, 160, 96, 143, 215, 81, 3, 34, 198, 139, 9, 30, 132, 207,\n\t\t66, 57, 248, 14, 24, 101, 45, 101, 47, 55, 44, 114, 132, 71,\n\t\t232, 2, 242, 181, 116, 133, 217, 253, 58, 61, 253, 41, 61,\n\t\t14, 252, 167, 239, 139, 95, 125, 26, 60, 217, 75, 119, 152,\n\t\t234, 121, 142, 37, 151, 11, 26, 250, 210, 246, 223, 66, 121,\n\t\t231, 7, 134, 120, 90, 153, 132, 113, 223, 181, 101, 224, 110,\n\t\t189, 77, 89, 5, 252, 122, 160, 68, 3, 212, 121, 235, 80, 204,\n\t\t144, 229, 3, 211, 103, 127, 83, 64, 226, 235, 94, 32, 34,\n\t\t117, 254, 164, 160, 190, 91, 64, 226, 167, 222, 34, 34, 245,\n\t\t222, 247, 11, 234, 118, 224, 37, 19, 145, 34, 241, 5, 175,\n\t\t19, 145, 80, 84, 133, 147, 243, 42, 18, 223, 252, 105, 118,\n\t\t241, 254, 123, 213, 161, 62, 103, 15, 140, 25, 11, 176, 89,\n\t\t158, 129, 101, 218, 62, 188, 96, 176, 56, 47, 73, 146, 244,\n\t\t20, 137, 199, 67, 218, 233, 183, 242, 132, 16, 254, 229, 72,\n\t\t215, 47, 233, 250, 176, 174, 52, 181, 11, 90, 116, 128, 147,\n\t\t124, 40, 79, 33, 51, 249, 112, 218, 159, 13, 24, 202, 135,\n\t\t249, 49, 70, 118, 122, 232, 172, 108, 231, 11, 191, 56, 160,\n\t\t75, 253, 225, 54, 214, 240, 33, 255, 154, 119, 125, 158, 198,\n\t\t62, 118, 152, 62, 115, 78, 13, 109, 12, 131, 111, 165, 193,\n\t\t248, 206, 175, 241, 17, 104, 101, 97, 131, 130, 154, 202,\n\t\t30, 27, 145, 24, 168, 169, 57, 244, 225, 207, 94, 144, 120,\n\t\t196, 239, 185, 32, 8, 158, 120, 54, 235, 111, 231, 252, 144,\n\t\t224, 162, 97, 15, 159, 211, 23, 246, 240, 136, 151, 46, 8,\n\t\t194, 156, 128, 179, 8, 185, 130, 232, 9, 130, 75, 9, 156,\n\t\t153, 190, 232, 0, 252, 47, 32, 75, 231, 94, 74, 233, 95, 208,\n\t\t185, 1, 238, 227, 208, 200, 16, 53, 41, 172, 211, 27, 118,\n\t\t80, 225, 175, 103, 16, 245, 53, 22, 205, 115, 115, 23, 213,\n\t\t204, 212, 98, 205, 38, 130, 133, 71, 38, 210, 83, 135, 111,\n\t\t154, 201, 168, 23, 229, 45, 89, 18, 69, 66, 36, 37, 44, 252,\n\t\t55, 96, 81, 206, 218, 130, 216, 128, 29, 24, 185, 160, 18,\n\t\t227, 136, 226, 86, 246, 85, 137, 134, 226, 199, 199, 198,\n\t\t23, 202, 14, 62, 98, 16, 245, 2, 178, 190, 37, 202, 16, 10,\n\t\t28, 146, 110, 11, 51, 29, 19, 35, 78, 224, 167, 130, 31, 26,\n\t\t11, 178, 0, 44, 64, 214, 180, 66, 125, 129, 216, 158, 134,\n\t\t17, 170, 32, 244, 203, 206, 251, 30, 147, 87, 223, 200, 90,\n\t\t218, 235, 5, 164, 227, 139, 170, 184, 36, 89, 228, 162, 42,\n\t\t254, 1, 21, 101, 67, 145, 54, 58, 94, 54, 68, 126, 73, 84,\n\t\t47, 18, 75, 90, 18, 213, 109, 237, 35, 185, 83, 71, 47, 82,\n\t\t99, 42, 70, 145, 59, 164, 138, 239, 126, 248, 77, 178, 252,\n\t\t38, 81, 146, 255, 65, 150, 134, 20, 240, 155, 52, 158, 146,\n\t\t132, 110, 123, 247, 96, 75, 240, 191, 81, 162, 141, 142, 106,\n\t\t209, 134, 170, 245, 158, 254, 155, 141, 126, 244, 192, 139,\n\t\t183, 189, 119, 59, 223, 154, 73, 219, 52, 237, 125, 181, 93,\n\t\t126, 191, 173, 171, 12, 228, 3, 244, 236, 168, 150, 224, 38,\n\t\t56, 20, 216, 225, 21, 11, 229, 74, 136, 7, 46, 247, 144, 193,\n\t\t116, 205, 147, 229, 252, 21, 113, 136, 6, 166, 59, 60, 201,\n\t\t13, 67, 89, 222, 111, 83, 208, 195, 156, 154, 29, 185, 101,\n\t\t221, 204, 138, 136, 216, 144, 115, 68, 68, 242, 206, 43, 143,\n\t\t36, 82, 130, 200, 65, 194, 171, 118, 180, 186, 96, 188, 91,\n\t\t66, 80, 226, 148, 15, 112, 220, 59, 88, 232, 213, 114, 124,\n\t\t164, 108, 59, 46, 41, 76, 170, 188, 124, 234, 48, 18, 211,\n\t\t196, 114, 144, 152, 37, 157, 21, 17, 10, 136, 159, 84, 57,\n\t\t161, 90, 196, 82, 70, 49, 93, 44, 165, 177, 153, 115, 52,\n\t\t137, 11, 210, 223, 129, 155, 148, 167, 185, 222, 163, 91,\n\t\t162, 176, 217, 128, 218, 186, 237, 47, 215, 130, 148, 235,\n\t\t66, 207, 6, 137, 90, 221, 54, 96, 147, 144, 238, 247, 8, 25,\n\t\t77, 19, 146, 62, 190, 223, 155, 193, 40, 131, 112, 54, 133,\n\t\t163, 186, 138, 132, 85, 66, 86, 223, 136, 196, 53, 114, 142,\n\t\t4, 235, 224, 37, 239, 198, 34, 82, 70, 101, 201, 20, 100,\n\t\t69, 211, 229, 14, 169, 146, 183, 54, 68, 20, 114, 254, 192,\n\t\t113, 184, 5, 14, 0, 224, 81, 118, 34, 212, 99, 226, 40, 80,\n\t\t0, 96, 219, 101, 46, 183, 155, 51, 112, 154, 81, 184, 246,\n\t\t64, 64, 117, 106, 88, 46, 85, 152, 211, 109, 203, 113, 191,\n\t\t53, 57, 101, 144, 189, 163, 12, 133, 83, 150, 56, 169, 160,\n\t\t40, 17, 115, 73, 139, 218, 103, 11, 211, 130, 112, 96, 150,\n\t\t219, 121, 139, 224, 63, 210, 86, 167, 242, 149, 192, 139,\n\t\t124, 86, 212, 197, 2, 70, 74, 84, 115, 164, 172, 210, 44,\n\t\t204, 222, 184, 61, 30, 27, 252, 64, 25, 54, 1, 128, 69, 199,\n\t\t13, 10, 136, 210, 200, 5, 27, 250, 80, 121, 24, 114, 253,\n\t\t151, 131, 245, 65, 35, 239, 63, 11, 155, 71, 177, 184, 143,\n\t\t144, 150, 120, 243, 158, 127, 43, 73, 242, 11, 68, 254, 55,\n\t\t5, 36, 174, 142, 84, 196, 39, 8, 121, 191, 53, 118, 82, 68,\n\t\t4, 86, 9, 92, 139, 68, 73, 149, 204, 29, 230, 222, 35, 69,\n\t\t248, 15, 242, 98, 75, 68, 185, 20, 169, 146, 20, 18, 167,\n\t\t168, 188, 31, 2, 243, 234, 101, 120, 63, 220, 12, 16, 62,\n\t\t145, 176, 182, 252, 165, 85, 159, 98, 189, 71, 82, 222, 10,\n\t\t157, 18, 4, 124, 184, 92, 131, 201, 22, 238, 68, 136, 95,\n\t\t217, 75, 200, 25, 235, 60, 33, 231, 201, 28, 241, 79, 214,\n\t\t25, 66, 246, 174, 240, 8, 29, 144, 121, 47, 197, 145, 136,\n\t\t199, 203, 112, 147, 72, 143, 145, 28, 41, 165, 72, 142, 161,\n\t\t89, 114, 36, 85, 34, 57, 242, 152, 68, 208, 171, 142, 148,\n\t\t138, 175, 66, 160, 215, 183, 55, 224, 38, 24, 243, 215, 77,\n\t\t94, 177, 159, 28, 105, 40, 61, 197, 193, 205, 149, 211, 115,\n\t\t208, 88, 46, 254, 205, 237, 31, 33, 228, 35, 72, 220, 71,\n\t\t216, 174, 9, 137, 77, 242, 27, 157, 19, 39, 62, 124, 203,\n\t\t104, 181, 90, 220, 200, 145, 42, 105, 138, 136, 234, 161,\n\t\t114, 100, 74, 68, 127, 72, 142, 111, 156, 248, 254, 99, 99,\n\t\t197, 66, 21, 132, 246, 218, 29, 218, 79, 143, 129, 91, 193,\n\t\t11, 193, 61, 224, 156, 95, 91, 161, 197, 28, 98, 21, 85, 12,\n\t\t207, 65, 169, 12, 151, 14, 108, 120, 131, 231, 176, 116, 69,\n\t\t175, 56, 2, 27, 245, 5, 184, 8, 139, 174, 255, 112, 165, 40,\n\t\t33, 215, 43, 186, 89, 110, 214, 47, 207, 162, 203, 53, 23,\n\t\t209, 97, 66, 78, 142, 115, 202, 30, 204, 77, 120, 236, 60,\n\t\t182, 74, 200, 97, 121, 129, 144, 90, 12, 34, 105, 92, 225,\n\t\t162, 175, 176, 56, 60, 169, 112, 214, 253, 58, 167, 76, 75,\n\t\t8, 154, 53, 210, 125, 144, 148, 85, 9, 66, 200, 103, 229,\n\t\t19, 210, 219, 146, 28, 207, 17, 142, 127, 152, 84, 8, 207,\n\t\t67, 200, 101, 209, 9, 4, 129, 159, 251, 207, 97, 252, 57,\n\t\t255, 143, 22, 64, 149, 156, 16, 49, 62, 117, 138, 253, 137,\n\t\t39, 72, 149, 60, 214, 110, 207, 144, 248, 195, 185, 28, 86,\n\t\t9, 81, 223, 218, 110, 171, 113, 226, 188, 47, 151, 11, 214,\n\t\t180, 204, 103, 172, 63, 62, 238, 180, 201, 13, 209, 216, 151,\n\t\t117, 229, 130, 174, 116, 159, 242, 151, 164, 79, 111, 110,\n\t\t72, 10, 186, 11, 193, 57, 69, 239, 126, 158, 74, 196, 47,\n\t\t41, 250, 67, 210, 6, 186, 11, 5, 184, 196, 224, 157, 25, 48,\n\t\t6, 90, 148, 199, 102, 199, 155, 205, 214, 118, 62, 227, 0,\n\t\t118, 57, 16, 244, 118, 253, 122, 135, 60, 73, 182, 253, 95,\n\t\t219, 45, 65, 221, 71, 100, 66, 100, 114, 51, 61, 174, 250,\n\t\t7, 18, 166, 81, 184, 250, 179, 171, 127, 12, 127, 27, 110,\n\t\t130, 50, 216, 7, 94, 0, 78, 49, 41, 209, 192, 234, 125, 17,\n\t\t214, 218, 179, 195, 230, 3, 17, 88, 147, 102, 43, 3, 30, 50,\n\t\t123, 8, 223, 146, 163, 115, 3, 109, 40, 48, 217, 116, 81,\n\t\t163, 2, 31, 229, 69, 1, 137, 111, 19, 17, 127, 3, 183, 71,\n\t\t144, 101, 225, 45, 52, 248, 209, 1, 247, 145, 116, 44, 130,\n\t\t85, 8, 121, 145, 31, 197, 28, 158, 144, 57, 60, 42, 33, 110,\n\t\t15, 47, 87, 101, 190, 172, 35, 155, 151, 248, 140, 191, 185,\n\t\t113, 4, 254, 78, 30, 137, 52, 108, 11, 252, 26, 191, 47, 116,\n\t\t92, 9, 169, 76, 175, 187, 181, 201, 75, 2, 143, 211, 105,\n\t\t172, 72, 79, 202, 242, 75, 92, 192, 242, 122, 25, 254, 54,\n\t\t252, 45, 96, 133, 121, 53, 233, 224, 212, 67, 119, 176, 205,\n\t\t22, 124, 110, 5, 224, 93, 51, 175, 47, 239, 231, 38, 112,\n\t\t2, 58, 187, 123, 230, 87, 175, 157, 85, 248, 171, 43, 200,\n\t\t234, 110, 249, 153, 129, 29, 63, 115, 221, 251, 175, 153,\n\t\t249, 239, 239, 204, 171, 232, 215, 107, 192, 225, 60, 10,\n\t\t154, 224, 32, 88, 165, 248, 166, 109, 245, 213, 168, 59, 59,\n\t\t76, 95, 183, 177, 250, 216, 219, 174, 183, 193, 82, 202, 255,\n\t\t121, 168, 246, 106, 170, 60, 133, 250, 46, 238, 174, 96, 68,\n\t\t179, 64, 15, 125, 255, 132, 27, 193, 161, 53, 92, 103, 22,\n\t\t28, 237, 35, 21, 215, 195, 0, 254, 105, 47, 244, 206, 94,\n\t\t8, 4, 121, 188, 76, 237, 84, 7, 242, 104, 122, 193, 102, 121,\n\t\t176, 82, 189, 95, 48, 143, 226, 246, 60, 254, 221, 115, 207,\n\t\t35, 92, 102, 153, 236, 213, 101, 250, 249, 228, 177, 223,\n\t\t63, 179, 160, 9, 14, 248, 109, 150, 233, 73, 119, 213, 123,\n\t\t236, 131, 45, 9, 133, 34, 219, 158, 249, 149, 39, 77, 67,\n\t\t207, 223, 133, 219, 254, 78, 162, 238, 213, 119, 237, 186,\n\t\t176, 101, 201, 120, 66, 16, 71, 68, 148, 244, 91, 214, 43,\n\t\t252, 67, 66, 169, 148, 70, 114, 181, 250, 184, 19, 85, 120,\n\t\t133, 39, 113, 221, 44, 88, 47, 142, 98, 141, 35, 42, 129,\n\t\t240, 247, 118, 116, 222, 99, 54, 150, 199, 120, 36, 190, 53,\n\t\t104, 159, 25, 17, 237, 197, 127, 158, 28, 171, 77, 142, 119,\n\t\t144, 160, 100, 137, 128, 53, 62, 154, 135, 134, 109, 136,\n\t\t88, 225, 133, 237, 221, 54, 204, 243, 255, 164, 253, 244,\n\t\t95, 49, 207, 165, 1, 57, 74, 175, 105, 252, 75, 242, 220,\n\t\t253, 181, 95, 52, 211, 63, 10, 51, 29, 54, 137, 30, 118, 14,\n\t\t6, 152, 179, 131, 59, 45, 185, 122, 6, 30, 22, 93, 56, 219,\n\t\t22, 42, 6, 44, 110, 136, 14, 67, 254, 194, 180, 28, 178, 184,\n\t\t121, 237, 70, 61, 203, 81, 179, 161, 21, 255, 144, 101, 252,\n\t\t65, 103, 114, 240, 165, 137, 162, 9, 101, 65, 147, 20, 34,\n\t\t17, 101, 60, 159, 225, 107, 71, 138, 81, 17, 9, 86, 203, 208,\n\t\t85, 221, 82, 237, 68, 228, 114, 96, 88, 116, 69, 209, 153,\n\t\t177, 12, 124, 67, 98, 17, 21, 221, 172, 25, 157, 142, 90,\n\t\t99, 122, 50, 166, 235, 92, 206, 64, 226, 119, 69, 222, 190,\n\t\t37, 18, 153, 220, 43, 70, 70, 119, 228, 225, 48, 0, 209, 225,\n\t\t94, 212, 106, 7, 88, 35, 63, 181, 149, 105, 46, 48, 92, 172,\n\t\t211, 117, 4, 69, 91, 100, 161, 255, 191, 225, 208, 5, 17,\n\t\t213, 69, 112, 65, 14, 86, 20, 189, 202, 210, 194, 89, 186,\n\t\t170, 235, 233, 17, 67, 64, 98, 180, 120, 164, 198, 219, 137,\n\t\t209, 184, 236, 231, 70, 210, 4, 25, 154, 197, 196, 75, 97,\n\t\t46, 146, 176, 225, 133, 32, 15, 186, 82, 167, 217, 239, 62,\n\t\t179, 119, 50, 162, 85, 39, 162, 188, 248, 93, 17, 25, 57,\n\t\t40, 106, 106, 44, 169, 143, 89, 209, 233, 168, 153, 117, 139,\n\t\t104, 49, 145, 24, 141, 136, 254, 58, 77, 188, 186, 5, 254,\n\t\t137, 234, 255, 70, 251, 50, 10, 211, 217, 230, 85, 134, 73,\n\t\t114, 29, 175, 81, 119, 220, 151, 82, 250, 137, 207, 241, 58,\n\t\t153, 163, 194, 172, 57, 162, 243, 53, 78, 147, 213, 82, 73,\n\t\t149, 53, 14, 110, 81, 250, 137, 238, 239, 145, 24, 173, 149,\n\t\t115, 49, 178, 133, 212, 104, 52, 224, 219, 10, 117, 155, 67,\n\t\t223, 235, 89, 229, 237, 244, 100, 227, 120, 135, 232, 247,\n\t\t214, 173, 180, 174, 24, 186, 210, 81, 116, 67, 209, 211, 150,\n\t\t90, 42, 5, 95, 122, 121, 218, 186, 160, 232, 180, 8, 46, 232,\n\t\t202, 5, 43, 29, 141, 14, 232, 168, 17, 195, 212, 245, 164,\n\t\t47, 12, 71, 45, 5, 120, 213, 128, 56, 183, 25, 18, 26, 50,\n\t\t240, 169, 63, 100, 4, 64, 49, 166, 56, 129, 167, 20, 229,\n\t\t142, 60, 31, 81, 238, 169, 9, 142, 56, 115, 143, 98, 8, 249,\n\t\t59, 252, 40, 33, 162, 222, 51, 35, 134, 81, 119, 47, 47, 223,\n\t\t183, 188, 12, 115, 212, 112, 57, 46, 94, 231, 73, 22, 101,\n\t\t40, 247, 124, 153, 202, 223, 150, 65, 224, 27, 111, 11, 62,\n\t\t3, 183, 64, 28, 0, 145, 90, 245, 48, 18, 64, 68, 109, 192,\n\t\t188, 182, 223, 252, 97, 234, 208, 235, 15, 61, 118, 95, 220,\n\t\t149, 121, 52, 227, 189, 255, 197, 178, 44, 198, 23, 110, 234,\n\t\t28, 122, 221, 225, 251, 30, 19, 56, 67, 76, 222, 209, 190,\n\t\t227, 13, 49, 46, 34, 101, 199, 221, 33, 94, 39, 12, 108, 80,\n\t\t2, 160, 209, 243, 72, 49, 200, 2, 186, 221, 211, 79, 46, 116,\n\t\t18, 184, 233, 239, 228, 206, 17, 56, 224, 108, 6, 230, 186,\n\t\t151, 53, 211, 252, 33, 93, 97, 109, 153, 26, 219, 34, 105,\n\t\t102, 192, 43, 228, 247, 137, 69, 186, 59, 102, 245, 137, 92,\n\t\t191, 224, 103, 160, 84, 12, 22, 121, 133, 30, 61, 88, 72,\n\t\t53, 236, 111, 75, 202, 205, 54, 91, 103, 83, 184, 128, 221,\n\t\t168, 59, 160, 238, 216, 197, 38, 7, 44, 205, 211, 247, 99,\n\t\t51, 169, 180, 171, 13, 18, 39, 141, 106, 91, 73, 154, 120,\n\t\t191, 238, 105, 150, 169, 205, 205, 208, 59, 127, 78, 227,\n\t\t102, 230, 52, 179, 251, 237, 219, 151, 46, 63, 161, 197, 140,\n\t\t92, 102, 222, 143, 243, 114, 63, 33, 228, 39, 57, 207, 127,\n\t\t108, 62, 147, 51, 98, 154, 110, 238, 155, 166, 119, 104, 220,\n\t\t244, 62, 19, 154, 75, 211, 211, 59, 229, 17, 59, 164, 83,\n\t\t212, 194, 142, 153, 29, 92, 220, 69, 162, 145, 187, 150, 148,\n\t\t98, 187, 126, 34, 50, 128, 73, 12, 208, 136, 129, 20, 240,\n\t\t8, 85, 179, 7, 18, 192, 11, 84, 195, 222, 147, 85, 113, 240,\n\t\t43, 129, 141, 40, 115, 188, 88, 158, 161, 116, 150, 20, 78,\n\t\t226, 102, 161, 107, 233, 131, 74, 101, 63, 68, 91, 114, 197,\n\t\t213, 131, 82, 246, 28, 55, 244, 37, 228, 193, 43, 58, 47,\n\t\t72, 7, 72, 82, 90, 120, 132, 196, 184, 92, 108, 36, 150, 40,\n\t\t66, 61, 97, 136, 111, 243, 107, 243, 13, 226, 47, 203, 81,\n\t\t97, 79, 73, 34, 159, 77, 218, 167, 91, 71, 207, 238, 175,\n\t\t11, 98, 98, 100, 105, 122, 124, 81, 90, 72, 75, 26, 159, 151,\n\t\t48, 121, 135, 161, 254, 80, 136, 101, 163, 16, 142, 38, 140,\n\t\t76, 140, 203, 211, 9, 34, 167, 162, 55, 154, 156, 144, 246,\n\t\t102, 246, 158, 61, 234, 221, 102, 166, 42, 145, 198, 200,\n\t\t244, 146, 55, 22, 202, 78, 30, 102, 123, 213, 82, 221, 177,\n\t\t41, 61, 100, 224, 78, 179, 185, 8, 91, 189, 192, 128, 219,\n\t\t84, 191, 49, 244, 2, 140, 251, 30, 190, 86, 68, 194, 27, 95,\n\t\t186, 66, 102, 37, 140, 61, 122, 32, 115, 228, 97, 9, 227,\n\t\t119, 210, 195, 225, 187, 144, 184, 133, 196, 123, 214, 201,\n\t\t87, 84, 136, 164, 49, 133, 35, 217, 48, 112, 136, 144, 70,\n\t\t134, 133, 179, 217, 48, 240, 196, 45, 71, 4, 20, 98, 151,\n\t\t253, 61, 107, 131, 242, 49, 56, 22, 146, 138, 121, 9, 53,\n\t\t116, 161, 216, 42, 218, 84, 42, 225, 111, 225, 91, 236, 216,\n\t\t108, 55, 236, 70, 171, 158, 229, 221, 162, 227, 230, 235,\n\t\t168, 222, 46, 83, 184, 37, 119, 98, 102, 166, 121, 168, 251,\n\t\t191, 17, 254, 102, 117, 105, 98, 220, 43, 24, 86, 58, 151,\n\t\t203, 229, 210, 150, 81, 240, 198, 39, 150, 170, 223, 196,\n\t\t8, 102, 15, 181, 34, 132, 68, 228, 43, 78, 211, 137, 43, 146,\n\t\t92, 28, 45, 58, 27, 27, 165, 84, 39, 94, 141, 27, 241, 106,\n\t\t188, 147, 42, 109, 108, 56, 197, 209, 162, 44, 41, 235, 213,\n\t\t170, 220, 145, 135, 229, 167, 37, 202, 21, 184, 77, 10, 236,\n\t\t214, 179, 92, 125, 129, 107, 180, 61, 127, 3, 157, 47, 72,\n\t\t25, 232, 136, 18, 210, 133, 194, 52, 95, 41, 87, 252, 186,\n\t\t207, 215, 219, 173, 65, 1, 241, 219, 96, 84, 142, 40, 17,\n\t\t57, 10, 111, 170, 50, 20, 124, 21, 198, 157, 163, 208, 192,\n\t\t70, 196, 136, 24, 114, 20, 30, 117, 152, 193, 207, 176, 92,\n\t\t236, 207, 117, 127, 242, 215, 91, 185, 132, 63, 236, 38, 114,\n\t\t56, 218, 130, 68, 194, 130, 128, 37, 2, 91, 209, 247, 50,\n\t\t100, 156, 159, 102, 227, 234, 101, 120, 5, 110, 82, 44, 238,\n\t\t30, 234, 105, 222, 31, 21, 168, 212, 137, 110, 182, 3, 84,\n\t\t30, 79, 91, 110, 160, 107, 109, 120, 126, 209, 6, 127, 117,\n\t\t202, 57, 183, 15, 194, 43, 114, 220, 223, 29, 199, 101, 241,\n\t\t25, 40, 192, 103, 196, 184, 162, 203, 221, 154, 172, 43, 115,\n\t\t29, 255, 223, 40, 233, 174, 145, 81, 216, 49, 100, 66, 8,\n\t\t145, 13, 145, 59, 3, 225, 25, 174, 251, 223, 116, 197, 144,\n\t\t101, 67, 209, 175, 108, 249, 255, 136, 69, 113, 8, 180, 83,\n\t\t62, 12, 127, 25, 20, 41, 47, 52, 245, 124, 59, 3, 37, 68,\n\t\t233, 179, 66, 182, 4, 234, 124, 202, 171, 148, 155, 94, 201,\n\t\t159, 28, 92, 10, 223, 242, 92, 135, 187, 63, 22, 235, 254,\n\t\t133, 235, 254, 190, 201, 25, 122, 18, 98, 121, 78, 198, 48,\n\t\t169, 27, 48, 90, 139, 197, 160, 235, 186, 202, 163, 250, 250,\n\t\t230, 186, 254, 104, 30, 86, 164, 130, 116, 82, 150, 231, 117,\n\t\t87, 137, 26, 202, 107, 16, 33, 232, 53, 138, 17, 195, 73,\n\t\t59, 194, 238, 252, 227, 228, 171, 82, 165, 82, 234, 85, 147,\n\t\t180, 188, 196, 30, 190, 87, 4, 17, 112, 16, 28, 3, 47, 5,\n\t\t192, 115, 139, 139, 208, 41, 133, 181, 29, 221, 197, 26, 73,\n\t\t66, 229, 74, 57, 194, 73, 174, 227, 74, 204, 17, 167, 223,\n\t\t223, 157, 69, 216, 174, 148, 43, 109, 175, 81, 47, 249, 3,\n\t\t89, 212, 111, 41, 158, 148, 133, 148, 81, 184, 193, 132, 107,\n\t\t140, 105, 10, 61, 174, 150, 85, 89, 132, 223, 166, 200, 182,\n\t\t103, 32, 32, 29, 98, 144, 14, 33, 175, 198, 54, 150, 17, 70,\n\t\t72, 69, 138, 74, 116, 69, 146, 37, 53, 22, 53, 44, 63, 160,\n\t\t104, 90, 78, 85, 201, 207, 158, 210, 21, 24, 239, 62, 163,\n\t\t232, 251, 32, 39, 9, 46, 230, 241, 60, 230, 177, 75, 247,\n\t\t120, 56, 135, 249, 239, 148, 203, 121, 123, 131, 181, 47,\n\t\t216, 121, 208, 96, 4, 229, 6, 177, 29, 69, 197, 146, 32, 32,\n\t\t69, 211, 48, 150, 20, 93, 69, 170, 174, 17, 164, 250, 159,\n\t\t81, 138, 197, 243, 138, 222, 221, 210, 149, 57, 1, 137, 120,\n\t\t100, 4, 43, 210, 191, 151, 229, 65, 220, 188, 223, 15, 24,\n\t\t27, 192, 75, 193, 253, 12, 189, 53, 104, 189, 32, 14, 247,\n\t\t15, 6, 166, 177, 249, 29, 22, 101, 195, 215, 238, 207, 185,\n\t\t239, 49, 56, 86, 209, 238, 4, 254, 239, 76, 13, 82, 234, 18,\n\t\t70, 96, 242, 119, 26, 158, 198, 91, 253, 125, 79, 255, 176,\n\t\t177, 91, 164, 145, 67, 248, 18, 236, 12, 210, 159, 228, 76,\n\t\t141, 206, 176, 244, 181, 120, 26, 107, 221, 95, 219, 101,\n\t\t199, 244, 134, 93, 226, 30, 88, 195, 40, 119, 17, 12, 249,\n\t\t164, 10, 229, 49, 251, 193, 81, 112, 18, 188, 4, 0, 49, 236,\n\t\t80, 189, 185, 13, 94, 195, 215, 148, 219, 143, 99, 168, 242,\n\t\t66, 6, 122, 215, 144, 224, 12, 134, 225, 103, 8, 51, 148,\n\t\t133, 43, 138, 222, 189, 60, 8, 80, 110, 210, 243, 107, 183,\n\t\t251, 161, 98, 255, 115, 126, 223, 132, 212, 136, 191, 59,\n\t\t7, 127, 133, 198, 157, 167, 199, 77, 246, 192, 230, 42, 33,\n\t\t171, 31, 31, 136, 103, 199, 158, 158, 118, 131, 174, 43, 199,\n\t\t0, 136, 5, 106, 69, 202, 90, 24, 237, 173, 41, 123, 24, 209,\n\t\t254, 114, 227, 65, 170, 102, 252, 111, 38, 190, 211, 212,\n\t\t12, 205, 52, 232, 241, 78, 127, 101, 112, 234, 222, 83, 10,\n\t\t124, 33, 85, 60, 174, 152, 73, 229, 142, 238, 223, 251, 117,\n\t\t178, 190, 78, 107, 70, 189, 195, 95, 66, 156, 62, 141, 233,\n\t\t222, 252, 159, 174, 94, 230, 68, 248, 155, 32, 6, 50, 160,\n\t\t74, 49, 239, 160, 61, 128, 63, 146, 216, 4, 92, 118, 36, 36,\n\t\t77, 83, 207, 135, 142, 52, 13, 219, 94, 59, 11, 93, 199, 205,\n\t\t66, 230, 88, 143, 67, 211, 112, 1, 250, 171, 61, 254, 79,\n\t\t110, 190, 125, 161, 92, 72, 220, 108, 198, 110, 73, 20, 202,\n\t\t11, 9, 195, 114, 244, 172, 43, 202, 214, 228, 191, 155, 153,\n\t\t138, 89, 241, 200, 72, 66, 194, 127, 237, 88, 198, 248, 164,\n\t\t37, 139, 110, 246, 189, 113, 43, 54, 53, 99, 97, 33, 106,\n\t\t199, 47, 223, 112, 103, 57, 153, 77, 36, 178, 201, 242, 157,\n\t\t247, 53, 167, 68, 94, 77, 68, 147, 83, 74, 134, 148, 15, 120,\n\t\t146, 16, 201, 217, 249, 17, 113, 170, 153, 81, 166, 146, 209,\n\t\t132, 154, 151, 188, 3, 101, 226, 229, 141, 84, 20, 5, 254,\n\t\t232, 0, 252, 10, 229, 164, 205, 0, 96, 182, 3, 243, 123, 182,\n\t\t131, 222, 79, 13, 245, 145, 237, 122, 45, 222, 107, 161, 191,\n\t\t137, 70, 47, 233, 209, 212, 37, 219, 185, 148, 140, 234, 63,\n\t\t220, 218, 218, 218, 220, 220, 132, 95, 144, 164, 99, 82, 60,\n\t\t242, 195, 172, 118, 78, 85, 207, 105, 217, 31, 70, 226, 146,\n\t\t113, 132, 59, 118, 140, 235, 254, 104, 229, 29, 75, 161, 221,\n\t\t203, 247, 57, 0, 127, 3, 100, 64, 158, 178, 50, 205, 128,\n\t\t6, 227, 54, 9, 191, 133, 130, 239, 249, 107, 1, 182, 149,\n\t\t205, 64, 212, 66, 118, 197, 255, 120, 133, 111, 33, 219, 171,\n\t\t32, 87, 12, 206, 240, 47, 92, 235, 30, 195, 56, 119, 206,\n\t\t48, 238, 177, 220, 151, 184, 247, 104, 218, 61, 110, 225,\n\t\t228, 3, 247, 222, 123, 111, 236, 228, 201, 123, 239, 189,\n\t\t23, 158, 162, 167, 255, 138, 19, 247, 59, 74, 93, 150, 155,\n\t\t77, 89, 174, 43, 206, 253, 9, 60, 122, 62, 129, 203, 162,\n\t\t88, 198, 137, 243, 240, 232, 232, 161, 247, 193, 177, 49,\n\t\t88, 238, 126, 110, 185, 114, 252, 87, 43, 149, 241, 195, 193,\n\t\t25, 0, 254, 234, 63, 95, 253, 34, 45, 155, 52, 152, 163, 236,\n\t\t35, 108, 11, 225, 132, 158, 62, 11, 125, 55, 214, 142, 235,\n\t\t81, 213, 101, 0, 127, 13, 54, 20, 12, 59, 186, 8, 93, 135,\n\t\t210, 98, 51, 220, 117, 64, 111, 74, 7, 97, 127, 47, 255, 59,\n\t\t92, 12, 87, 27, 74, 204, 108, 18, 210, 28, 109, 227, 88, 99,\n\t\t12, 243, 234, 253, 18, 129, 111, 194, 163, 56, 38, 169, 5,\n\t\t5, 197, 210, 247, 165, 199, 171, 56, 198, 39, 56, 85, 186,\n\t\t95, 229, 113, 245, 19, 145, 248, 84, 106, 45, 220, 105, 175,\n\t\t153, 49, 37, 133, 148, 130, 130, 190, 160, 104, 82, 226, 132,\n\t\t145, 39, 85, 82, 59, 80, 56, 145, 20, 109, 62, 193, 33, 116,\n\t\t52, 18, 201, 40, 146, 35, 41, 153, 169, 169, 165, 132, 164,\n\t\t41, 247, 35, 196, 37, 120, 91, 76, 126, 216, 109, 77, 164,\n\t\t107, 3, 123, 254, 188, 49, 169, 32, 91, 82, 128, 112, 181,\n\t\t11, 0, 199, 193, 13, 224, 129, 3, 96, 197, 31, 71, 96, 160,\n\t\t200, 242, 43, 173, 175, 183, 201, 247, 66, 116, 135, 30, 122,\n\t\t237, 242, 22, 248, 125, 212, 209, 85, 9, 229, 43, 211, 254,\n\t\t186, 79, 66, 123, 185, 5, 62, 240, 180, 152, 175, 183, 123,\n\t\t176, 60, 126, 47, 132, 63, 145, 16, 148, 120, 108, 57, 6,\n\t\t29, 97, 175, 2, 122, 50, 28, 11, 243, 18, 68, 210, 124, 84,\n\t\t178, 83, 185, 232, 70, 97, 15, 137, 118, 127, 96, 65, 96,\n\t\t137, 9, 125, 67, 79, 236, 225, 52, 73, 149, 16, 95, 72, 199,\n\t\t98, 240, 152, 30, 139, 233, 216, 53, 120, 36, 169, 146, 6,\n\t\t13, 44, 197, 177, 153, 169, 197, 99, 109, 58, 110, 211, 129,\n\t\t187, 29, 139, 215, 50, 38, 142, 75, 120, 60, 146, 138, 41,\n\t\t229, 220, 120, 172, 94, 215, 162, 209, 79, 66, 142, 151, 132,\n\t\t72, 62, 150, 142, 197, 210, 49, 195, 197, 130, 196, 115, 112,\n\t\t136, 243, 97, 22, 236, 97, 56, 151, 18, 131, 185, 93, 163,\n\t\t4, 218, 108, 231, 60, 72, 79, 224, 246, 236, 240, 131, 162,\n\t\t232, 17, 117, 194, 111, 58, 233, 220, 96, 142, 115, 105, 199,\n\t\t65, 19, 41, 149, 114, 208, 168, 169, 9, 212, 253, 85, 170,\n\t\t203, 109, 65, 39, 10, 21, 225, 187, 132, 135, 26, 141, 248,\n\t\t166, 80, 116, 107, 163, 230, 88, 63, 107, 99, 177, 82, 205,\n\t\t45, 10, 39, 83, 5, 230, 167, 181, 144, 250, 61, 170, 7, 126,\n\t\t241, 13, 162, 172, 127, 58, 4, 184, 192, 171, 255, 116, 245,\n\t\t203, 240, 237, 240, 43, 204, 70, 221, 223, 177, 245, 86, 63,\n\t\t173, 128, 185, 135, 30, 24, 237, 171, 95, 131, 212, 101, 17,\n\t\t125, 8, 62, 164, 144, 200, 187, 178, 2, 198, 107, 24, 11,\n\t\t217, 119, 69, 136, 178, 50, 18, 33, 248, 120, 38, 34, 73,\n\t\t202, 253, 188, 36, 73, 252, 253, 138, 36, 69, 50, 199, 49,\n\t\t137, 140, 28, 86, 83, 241, 89, 57, 18, 145, 103, 227, 41,\n\t\t245, 133, 73, 245, 69, 186, 166, 190, 142, 231, 56, 254, 117,\n\t\t170, 166, 191, 72, 77, 130, 33, 126, 148, 8, 72, 80, 75, 78,\n\t\t58, 136, 50, 80, 99, 128, 40, 148, 252, 178, 117, 114, 174,\n\t\t29, 134, 224, 214, 47, 189, 120, 255, 217, 121, 118, 248,\n\t\t194, 47, 221, 8, 235, 55, 178, 19, 124, 96, 58, 59, 97, 229,\n\t\t45, 122, 124, 227, 217, 236, 196, 68, 246, 236, 236, 43, 131,\n\t\t115, 192, 43, 225, 207, 25, 18, 32, 192, 2, 101, 176, 4, 150,\n\t\t193, 113, 0, 188, 105, 216, 108, 212, 45, 228, 175, 165, 218,\n\t\t168, 237, 233, 130, 217, 24, 90, 71, 216, 150, 227, 150, 43,\n\t\t109, 198, 204, 227, 74, 72, 135, 12, 33, 64, 253, 132, 86,\n\t\t202, 94, 200, 105, 106, 74, 149, 246, 103, 57, 142, 147, 36,\n\t\t221, 38, 13, 237, 184, 48, 34, 17, 89, 226, 127, 189, 175,\n\t\t214, 208, 185, 140, 78, 68, 222, 118, 56, 73, 119, 99, 153,\n\t\t50, 145, 245, 196, 232, 66, 116, 52, 109, 41, 138, 113, 28,\n\t\t109, 72, 10, 138, 75, 165, 137, 45, 228, 70, 171, 237, 100,\n\t\t132, 179, 226, 167, 212, 140, 18, 193, 34, 132, 164, 175,\n\t\t244, 184, 160, 232, 31, 143, 141, 206, 68, 117, 85, 86, 28,\n\t\t175, 157, 211, 203, 134, 178, 96, 241, 102, 1, 71, 190, 143,\n\t\t20, 105, 3, 117, 159, 64, 6, 236, 151, 47, 211, 211, 204,\n\t\t251, 187, 244, 93, 116, 52, 5, 36, 217, 101, 170, 87, 69,\n\t\t116, 89, 233, 119, 214, 17, 232, 143, 116, 94, 219, 107, 56,\n\t\t116, 213, 184, 8, 219, 211, 176, 184, 187, 170, 102, 143,\n\t\t2, 29, 46, 205, 225, 140, 194, 165, 57, 104, 114, 74, 66,\n\t\t66, 92, 137, 83, 74, 152, 143, 67, 40, 216, 60, 46, 43, 92,\n\t\t25, 242, 146, 112, 124, 55, 13, 206, 85, 160, 188, 52, 29,\n\t\t121, 13, 198, 175, 145, 83, 119, 42, 88, 122, 18, 227, 187,\n\t\t137, 123, 6, 227, 39, 5, 36, 188, 35, 208, 229, 12, 230, 163,\n\t\t233, 239, 133, 118, 209, 98, 181, 153, 31, 181, 102, 152,\n\t\t3, 54, 90, 179, 133, 49, 91, 248, 238, 158, 254, 121, 1, 161,\n\t\t34, 226, 75, 37, 30, 21, 17, 18, 230, 131, 235, 2, 31, 53,\n\t\t5, 22, 179, 171, 42, 236, 111, 37, 34, 29, 130, 7, 37, 77,\n\t\t122, 241, 29, 18, 145, 246, 203, 249, 81, 137, 72, 119, 124,\n\t\t55, 72, 241, 160, 125, 8, 2, 6, 40, 248, 169, 246, 24, 123,\n\t\t74, 171, 215, 98, 208, 206, 234, 160, 171, 79, 234, 77, 63,\n\t\t88, 142, 238, 229, 22, 132, 175, 106, 122, 68, 75, 125, 155,\n\t\t54, 16, 111, 48, 241, 173, 106, 254, 4, 39, 242, 28, 18, 71,\n\t\t68, 4, 45, 226, 26, 38, 145, 63, 21, 77, 69, 247, 127, 140,\n\t\t182, 132, 135, 135, 148, 101, 223, 206, 79, 114, 188, 200,\n\t\t61, 237, 111, 230, 246, 112, 146, 26, 77, 12, 165, 83, 6,\n\t\t73, 80, 0, 83, 126, 47, 12, 10, 10, 237, 232, 8, 82, 207,\n\t\t193, 126, 37, 0, 10, 217, 112, 131, 149, 207, 133, 129, 118,\n\t\t126, 95, 37, 157, 174, 100, 54, 171, 50, 62, 91, 149, 229,\n\t\t42, 60, 76, 139, 165, 54, 212, 134, 13, 10, 169, 250, 206,\n\t\t122, 85, 150, 207, 249, 15, 213, 6, 245, 138, 50, 176, 192,\n\t\t56, 152, 246, 251, 39, 12, 75, 139, 171, 247, 108, 106, 218,\n\t\t222, 142, 146, 243, 183, 143, 200, 110, 180, 184, 96, 143,\n\t\t211, 162, 4, 27, 236, 207, 46, 218, 141, 224, 15, 73, 240,\n\t\t13, 180, 28, 159, 136, 70, 176, 153, 50, 241, 3, 3, 229, 121,\n\t\t46, 215, 217, 200, 37, 234, 35, 66, 140, 83, 156, 92, 255,\n\t\t159, 41, 194, 211, 172, 103, 125, 14, 105, 72, 53, 12, 21,\n\t\t105, 127, 56, 88, 180, 244, 169, 238, 70, 57, 113, 90, 25,\n\t\t248, 89, 238, 37, 241, 97, 93, 105, 30, 204, 128, 253, 224,\n\t\t240, 110, 237, 215, 159, 27, 35, 225, 254, 206, 117, 218,\n\t\t30, 53, 84, 109, 86, 202, 254, 104, 99, 121, 236, 196, 172,\n\t\t87, 155, 215, 208, 153, 70, 68, 10, 211, 24, 21, 35, 121,\n\t\t5, 199, 137, 101, 169, 73, 132, 209, 113, 37, 37, 225, 84,\n\t\t74, 85, 226, 234, 88, 103, 87, 29, 234, 249, 11, 178, 36,\n\t\t141, 146, 57, 50, 42, 73, 115, 106, 82, 194, 246, 62, 75,\n\t\t149, 227, 4, 153, 247, 43, 114, 156, 164, 143, 165, 213, 164,\n\t\t136, 199, 95, 247, 68, 175, 109, 243, 67, 109, 166, 57, 216,\n\t\t98, 118, 107, 209, 17, 184, 99, 147, 229, 58, 237, 86, 216,\n\t\t112, 54, 7, 115, 177, 150, 85, 61, 74, 184, 67, 15, 158, 154,\n\t\t13, 218, 78, 124, 40, 201, 207, 24, 68, 245, 202, 193, 67,\n\t\t186, 82, 246, 152, 127, 87, 113, 40, 93, 13, 112, 35, 88,\n\t\t187, 110, 107, 70, 30, 5, 155, 176, 35, 243, 4, 101, 141,\n\t\t64, 167, 81, 119, 107, 141, 250, 34, 108, 250, 209, 53, 63,\n\t\t218, 178, 45, 151, 129, 103, 123, 190, 163, 16, 61, 250, 19,\n\t\t193, 110, 29, 224, 53, 22, 228, 170, 85, 14, 90, 144, 231,\n\t\t224, 1, 142, 59, 0, 57, 190, 5, 5, 184, 32, 164, 233, 241,\n\t\t119, 89, 20, 28, 124, 108, 215, 94, 242, 99, 155, 227, 120,\n\t\t56, 58, 10, 121, 142, 179, 33, 220, 207, 9, 220, 126, 56,\n\t\t43, 124, 27, 66, 1, 202, 236, 116, 150, 198, 193, 225, 7,\n\t\t129, 52, 32, 131, 212, 128, 13, 82, 116, 245, 221, 147, 69,\n\t\t150, 202, 21, 127, 198, 11, 150, 34, 21, 9, 185, 109, 15,\n\t\t249, 107, 217, 138, 219, 246, 42, 18, 10, 100, 148, 31, 179,\n\t\t146, 139, 233, 232, 99, 84, 44, 158, 75, 90, 157, 104, 250,\n\t\t21, 52, 230, 175, 105, 56, 144, 93, 38, 232, 197, 71, 168,\n\t\t28, 252, 187, 3, 183, 217, 163, 140, 151, 243, 234, 215, 224,\n\t\t179, 240, 51, 116, 142, 15, 240, 192, 84, 82, 89, 105, 182,\n\t\t3, 75, 213, 1, 230, 179, 114, 11, 230, 98, 228, 196, 203,\n\t\t150, 94, 125, 195, 217, 71, 225, 203, 78, 168, 102, 108, 239,\n\t\t205, 231, 31, 63, 127, 243, 222, 24, 252, 32, 209, 121, 251,\n\t\t237, 167, 110, 120, 245, 13, 23, 207, 158, 122, 135, 205,\n\t\t235, 36, 26, 19, 141, 187, 22, 111, 62, 127, 254, 230, 197,\n\t\t187, 12, 49, 22, 240, 76, 92, 253, 207, 28, 15, 255, 11, 112,\n\t\t122, 54, 135, 51, 76, 242, 104, 182, 203, 72, 172, 76, 67,\n\t\t15, 254, 64, 75, 112, 71, 56, 91, 121, 115, 71, 201, 253,\n\t\t152, 151, 133, 238, 15, 239, 211, 57, 13, 126, 17, 69, 35,\n\t\t221, 21, 149, 136, 205, 91, 52, 53, 122, 2, 150, 68, 196,\n\t\t255, 108, 82, 202, 134, 254, 67, 190, 6, 127, 10, 63, 15,\n\t\t74, 129, 229, 126, 177, 16, 248, 184, 239, 113, 65, 162, 158,\n\t\t155, 218, 102, 123, 4, 182, 27, 117, 250, 237, 222, 138, 144,\n\t\t122, 77, 122, 246, 209, 179, 103, 14, 202, 80, 86, 37, 19,\n\t\t213, 59, 126, 210, 143, 182, 26, 72, 86, 31, 69, 216, 66,\n\t\t245, 35, 119, 159, 29, 149, 44, 249, 0, 53, 176, 29, 147,\n\t\t57, 9, 86, 254, 224, 253, 30, 178, 101, 85, 130, 98, 245,\n\t\t252, 227, 231, 235, 13, 100, 97, 244, 168, 42, 163, 250, 161,\n\t\t238, 23, 100, 94, 106, 92, 96, 163, 151, 100, 201, 0, 246,\n\t\t100, 112, 203, 212, 34, 145, 145, 38, 109, 211, 43, 22, 119,\n\t\t154, 146, 68, 119, 33, 82, 28, 52, 69, 179, 225, 21, 140,\n\t\t74, 37, 20, 218, 100, 148, 191, 81, 238, 133, 119, 141, 134,\n\t\t235, 8, 119, 7, 68, 35, 27, 3, 18, 17, 216, 217, 37, 158,\n\t\t249, 57, 188, 12, 159, 130, 155, 32, 55, 96, 61, 213, 215,\n\t\t119, 247, 246, 246, 212, 244, 29, 62, 174, 48, 35, 206, 156,\n\t\t162, 231, 232, 113, 233, 142, 59, 111, 128, 155, 52, 216,\n\t\t125, 146, 118, 162, 51, 236, 124, 238, 142, 95, 190, 99, 72,\n\t\t63, 82, 4, 55, 130, 151, 15, 32, 188, 119, 106, 162, 122,\n\t\t53, 182, 221, 230, 116, 63, 236, 153, 19, 247, 158, 241, 174,\n\t\t173, 209, 234, 123, 235, 190, 66, 21, 193, 79, 209, 220, 50,\n\t\t191, 252, 172, 44, 6, 194, 93, 74, 50, 8, 87, 250, 207, 92,\n\t\t162, 193, 75, 253, 32, 43, 57, 102, 223, 50, 16, 220, 124,\n\t\t94, 209, 160, 239, 159, 110, 43, 224, 51, 97, 19, 107, 232,\n\t\t88, 160, 81, 119, 153, 127, 75, 198, 54, 128, 28, 11, 185,\n\t\t109, 184, 70, 61, 3, 112, 247, 38, 11, 213, 185, 185, 106,\n\t\t33, 121, 47, 71, 61, 4, 248, 1, 238, 222, 228, 6, 189, 80,\n\t\t149, 142, 61, 183, 50, 103, 119, 20, 149, 62, 109, 119, 20,\n\t\t71, 233, 216, 67, 250, 150, 214, 46, 252, 79, 5, 84, 105,\n\t\t55, 43, 30, 235, 70, 5, 201, 182, 92, 84, 46, 250, 171, 141,\n\t\t70, 221, 115, 25, 55, 227, 118, 6, 168, 139, 142, 113, 144,\n\t\t227, 14, 26, 142, 155, 207, 79, 231, 131, 128, 235, 71, 230,\n\t\t167, 243, 249, 33, 32, 234, 95, 69, 198, 144, 142, 198, 34,\n\t\t254, 13, 23, 177, 64, 100, 12, 33, 250, 203, 1, 25, 99, 159,\n\t\t151, 99, 145, 174, 61, 24, 229, 234, 160, 231, 5, 127, 139,\n\t\t191, 8, 235, 214, 4, 44, 52, 27, 229, 122, 6, 90, 133, 253,\n\t\t208, 149, 232, 230, 62, 194, 244, 138, 142, 191, 128, 166,\n\t\t40, 4, 113, 208, 121, 175, 83, 111, 195, 207, 55, 83, 8, 69,\n\t\t99, 15, 125, 252, 161, 135, 78, 77, 141, 69, 145, 133, 146,\n\t\t205, 91, 8, 137, 19, 82, 139, 199, 167, 229, 24, 142, 202,\n\t\t81, 249, 164, 127, 136, 226, 232, 190, 224, 220, 125, 162,\n\t\t156, 244, 171, 173, 58, 135, 117, 12, 207, 53, 83, 200, 66,\n\t\t209, 177, 169, 83, 15, 61, 244, 241, 135, 98, 81, 132, 82,\n\t\t77, 18, 143, 207, 251, 47, 137, 79, 224, 152, 28, 245, 255,\n\t\t162, 244, 93, 177, 68, 20, 71, 253, 243, 86, 178, 140, 117,\n\t\t60, 87, 101, 224, 11, 126, 200, 15, 210, 248, 160, 39, 164,\n\t\t138, 231, 150, 43, 254, 73, 66, 158, 139, 42, 150, 235, 141,\n\t\t64, 228, 120, 149, 69, 232, 182, 253, 155, 40, 176, 23, 121,\n\t\t73, 114, 49, 90, 168, 44, 232, 203, 203, 250, 66, 165, 104,\n\t\t44, 38, 203, 242, 201, 82, 118, 97, 33, 91, 58, 41, 151, 159,\n\t\t205, 30, 59, 150, 13, 204, 71, 158, 117, 246, 174, 242, 109,\n\t\t115, 100, 124, 124, 196, 108, 243, 171, 123, 157, 165, 102,\n\t\t65, 189, 37, 102, 89, 177, 91, 212, 66, 83, 184, 125, 110,\n\t\t238, 118, 160, 209, 242, 23, 225, 31, 12, 248, 211, 127, 49,\n\t\t120, 25, 120, 29, 120, 24, 252, 27, 240, 65, 240, 155, 224,\n\t\t83, 0, 152, 148, 249, 148, 154, 30, 205, 192, 114, 171, 57,\n\t\t235, 149, 145, 91, 163, 212, 158, 65, 140, 107, 245, 72, 240,\n\t\t237, 231, 27, 22, 159, 195, 51, 215, 122, 254, 90, 191, 21,\n\t\t15, 126, 238, 115, 7, 21, 121, 66, 84, 121, 254, 180, 42,\n\t\t173, 173, 73, 234, 105, 158, 87, 197, 9, 254, 122, 244, 18,\n\t\t191, 0, 203, 4, 60, 115, 112, 118, 246, 160, 162, 29, 146,\n\t\t97, 81, 208, 224, 124, 177, 56, 15, 53, 161, 8, 229, 67, 162,\n\t\t40, 127, 109, 187, 0, 118, 232, 255, 133, 231, 28, 15, 6,\n\t\t57, 221, 49, 200, 130, 6, 216, 79, 125, 187, 6, 140, 188,\n\t\t117, 71, 164, 203, 171, 98, 111, 44, 92, 16, 74, 89, 222,\n\t\t237, 15, 141, 45, 127, 107, 79, 135, 85, 255, 23, 13, 179,\n\t\t213, 176, 225, 230, 26, 69, 23, 117, 55, 77, 109, 45, 71,\n\t\t249, 114, 161, 22, 139, 105, 240, 97, 104, 186, 22, 164, 17,\n\t\t185, 53, 172, 227, 238, 21, 132, 215, 48, 90, 239, 192, 139,\n\t\t181, 26, 194, 248, 1, 205, 220, 220, 212, 76, 83, 155, 28,\n\t\t221, 55, 86, 154, 74, 142, 236, 25, 187, 113, 114, 210, 143,\n\t\t216, 220, 196, 250, 3, 24, 249, 79, 93, 5, 155, 155, 195,\n\t\t235, 86, 4, 138, 148, 249, 45, 176, 232, 25, 68, 36, 32, 187,\n\t\t216, 154, 238, 243, 230, 55, 188, 34, 179, 221, 135, 192,\n\t\t76, 154, 84, 253, 109, 28, 245, 58, 222, 81, 58, 146, 174,\n\t\t119, 204, 164, 9, 107, 84, 76, 188, 206, 70, 216, 220, 222,\n\t\t51, 234, 221, 119, 171, 103, 246, 230, 216, 128, 75, 239,\n\t\t81, 57, 104, 192, 149, 98, 129, 36, 181, 47, 90, 0, 55, 81,\n\t\t4, 208, 118, 189, 133, 95, 38, 92, 125, 63, 44, 218, 222,\n\t\t128, 72, 62, 63, 16, 174, 92, 35, 222, 235, 219, 133, 52,\n\t\t184, 170, 162, 167, 173, 110, 213, 205, 211, 57, 178, 106,\n\t\t24, 63, 33, 228, 113, 66, 224, 57, 122, 154, 27, 188, 120,\n\t\t156, 144, 174, 127, 181, 161, 43, 221, 167, 173, 116, 222,\n\t\t133, 134, 162, 203, 138, 222, 125, 74, 126, 246, 89, 153,\n\t\t80, 221, 63, 251, 191, 54, 124, 17, 8, 228, 121, 106, 231,\n\t\t251, 48, 252, 36, 136, 129, 36, 152, 12, 189, 12, 85, 202,\n\t\t57, 42, 218, 109, 122, 11, 208, 9, 205, 21, 74, 193, 173,\n\t\t66, 112, 171, 93, 231, 222, 40, 138, 5, 85, 189, 191, 251,\n\t\t221, 251, 85, 181, 32, 138, 167, 127, 244, 163, 171, 20, 4,\n\t\t2, 85, 122, 99, 241, 201, 69, 22, 255, 12, 44, 9, 186, 31,\n\t\t115, 207, 61, 126, 132, 46, 156, 216, 179, 167, 251, 151,\n\t\t20, 21, 242, 6, 81, 23, 11, 138, 210, 110, 43, 74, 65, 212,\n\t\t197, 155, 7, 121, 68, 67, 95, 243, 199, 193, 157, 224, 149,\n\t\t187, 249, 30, 248, 197, 52, 68, 219, 239, 71, 123, 234, 88,\n\t\t166, 129, 133, 212, 33, 86, 119, 211, 63, 174, 4, 78, 231,\n\t\t135, 14, 27, 63, 55, 178, 251, 39, 254, 17, 150, 69, 25, 6,\n\t\t190, 183, 50, 38, 220, 52, 51, 221, 91, 122, 207, 188, 189,\n\t\t23, 122, 227, 110, 113, 31, 243, 67, 254, 1, 138, 247, 250,\n\t\t65, 255, 192, 120, 94, 153, 77, 111, 145, 225, 102, 134, 172,\n\t\t122, 251, 236, 178, 144, 177, 203, 186, 254, 60, 56, 91, 114,\n\t\t139, 140, 131, 118, 129, 115, 41, 49, 173, 14, 135, 205, 120,\n\t\t31, 45, 237, 55, 147, 230, 220, 17, 43, 26, 225, 32, 134,\n\t\t221, 183, 252, 143, 191, 197, 17, 25, 235, 196, 249, 173,\n\t\t100, 121, 35, 154, 29, 50, 224, 93, 159, 213, 24, 253, 172,\n\t\t122, 106, 47, 101, 159, 133, 10, 129, 252, 133, 143, 82, 134,\n\t\t218, 136, 94, 255, 179, 82, 42, 154, 141, 14, 113, 161, 81,\n\t\t238, 93, 56, 140, 97, 217, 7, 3, 236, 54, 228, 243, 60, 69,\n\t\t26, 148, 33, 93, 75, 49, 215, 51, 15, 98, 20, 121, 117, 4,\n\t\t225, 238, 207, 108, 184, 97, 195, 180, 249, 15, 102, 26, 14,\n\t\t184, 223, 48, 53, 205, 236, 222, 2, 95, 208, 253, 132, 153,\n\t\t76, 14, 227, 55, 230, 6, 208, 68, 129, 105, 2, 162, 30, 66,\n\t\t2, 211, 137, 246, 34, 108, 183, 154, 149, 105, 137, 206, 241,\n\t\t89, 138, 20, 15, 54, 79, 175, 224, 185, 4, 79, 120, 40, 106,\n\t\t186, 163, 22, 43, 213, 194, 104, 82, 80, 121, 135, 227, 33,\n\t\t175, 170, 49, 43, 169, 45, 220, 58, 122, 195, 88, 110, 46,\n\t\t26, 236, 163, 190, 46, 8, 2, 95, 16, 160, 0, 69, 44, 75, 181,\n\t\t92, 126, 34, 46, 112, 66, 145, 231, 69, 1, 242, 50, 194, 146,\n\t\t112, 235, 254, 177, 165, 114, 220, 24, 198, 152, 236, 5, 135,\n\t\t89, 171, 166, 178, 83, 174, 18, 66, 64, 26, 117, 55, 192,\n\t\t177, 75, 142, 27, 208, 90, 176, 245, 20, 163, 95, 70, 108,\n\t\t169, 103, 50, 4, 62, 243, 99, 2, 238, 123, 239, 77, 55, 71,\n\t\t12, 87, 231, 181, 113, 107, 178, 121, 98, 207, 120, 12, 146,\n\t\t41, 162, 115, 113, 94, 36, 201, 220, 125, 199, 252, 205, 74,\n\t\t123, 74, 142, 73, 10, 18, 240, 254, 155, 206, 62, 250, 232,\n\t\t9, 187, 20, 139, 186, 163, 22, 252, 252, 155, 238, 89, 92,\n\t\t133, 82, 132, 68, 157, 61, 179, 75, 167, 28, 18, 37, 111,\n\t\t208, 12, 200, 215, 71, 110, 58, 117, 254, 241, 243, 25, 145,\n\t\t71, 4, 219, 82, 245, 209, 111, 62, 218, 189, 52, 54, 98, 58,\n\t\t99, 57, 211, 14, 240, 46, 16, 126, 5, 168, 254, 238, 112,\n\t\t17, 186, 72, 154, 128, 168, 226, 181, 154, 96, 128, 5, 115,\n\t\t144, 119, 177, 241, 150, 141, 183, 152, 169, 169, 185, 92,\n\t\t14, 62, 57, 151, 190, 69, 67, 104, 12, 89, 232, 215, 217,\n\t\t73, 187, 37, 253, 26, 255, 126, 46, 55, 55, 149, 130, 107,\n\t\t115, 43, 254, 3, 22, 26, 67, 232, 215, 217, 73, 187, 37, 13,\n\t\t66, 142, 101, 186, 230, 51, 253, 17, 203, 115, 107, 172, 0,\n\t\t203, 173, 172, 64, 109, 117, 40, 20, 209, 47, 75, 186, 182,\n\t\t88, 64, 94, 251, 183, 206, 192, 195, 123, 59, 29, 142, 104,\n\t\t186, 202, 171, 66, 18, 222, 231, 228, 244, 147, 43, 211, 10,\n\t\t233, 96, 40, 203, 150, 85, 41, 45, 102, 99, 239, 185, 9, 113,\n\t\t115, 157, 51, 55, 112, 24, 99, 73, 57, 8, 247, 166, 29, 51,\n\t\t245, 196, 75, 248, 150, 105, 97, 221, 32, 110, 172, 56, 50,\n\t\t151, 50, 2, 89, 133, 223, 158, 139, 160, 9, 22, 193, 77, 224,\n\t\t36, 0, 165, 66, 185, 32, 133, 74, 196, 130, 20, 80, 220, 15,\n\t\t194, 35, 168, 79, 190, 122, 187, 238, 176, 191, 70, 221, 105,\n\t\t64, 90, 219, 45, 191, 145, 54, 118, 13, 194, 45, 82, 153,\n\t\t169, 196, 43, 113, 183, 170, 106, 149, 153, 10, 73, 91, 6,\n\t\t5, 81, 80, 58, 220, 120, 37, 78, 239, 206, 84, 52, 181, 18,\n\t\t239, 110, 106, 102, 78, 113, 98, 175, 30, 58, 117, 152, 60,\n\t\t107, 197, 74, 95, 164, 255, 210, 214, 165, 53, 22, 5, 59,\n\t\t166, 166, 167, 157, 82, 217, 222, 126, 6, 33, 238, 2, 4, 252,\n\t\t96, 61, 11, 164, 86, 148, 46, 143, 162, 37, 191, 29, 230,\n\t\t91, 212, 175, 48, 252, 9, 33, 221, 56, 93, 196, 180, 4, 149,\n\t\t123, 97, 119, 227, 52, 175, 9, 39, 41, 89, 178, 63, 75, 117,\n\t\t191, 113, 89, 224, 197, 223, 61, 247, 168, 8, 197, 87, 211,\n\t\t185, 252, 234, 63, 95, 253, 18, 151, 135, 95, 1, 50, 48, 253,\n\t\t150, 83, 98, 38, 122, 51, 208, 163, 66, 86, 234, 111, 90,\n\t\t116, 253, 102, 142, 168, 75, 48, 175, 237, 216, 156, 129,\n\t\t20, 72, 246, 171, 234, 19, 127, 138, 209, 101, 5, 221, 182,\n\t\t209, 253, 243, 15, 139, 80, 154, 95, 94, 187, 200, 243, 15,\n\t\t188, 16, 169, 155, 42, 122, 193, 94, 69, 253, 119, 7, 144,\n\t\t114, 25, 97, 105, 227, 67, 31, 22, 35, 194, 4, 132, 239, 90,\n\t\t187, 253, 223, 16, 136, 229, 129, 60, 89, 219, 108, 132, 91,\n\t\t125, 196, 49, 139, 236, 161, 14, 251, 186, 65, 234, 159, 145,\n\t\t109, 4, 107, 154, 201, 246, 127, 23, 17, 206, 170, 185, 53,\n\t\t37, 169, 28, 157, 166, 102, 148, 7, 253, 224, 209, 156, 74,\n\t\t140, 78, 48, 58, 177, 61, 98, 247, 18, 204, 97, 244, 122,\n\t\t131, 168, 185, 53, 140, 111, 154, 166, 198, 150, 135, 48,\n\t\t190, 233, 166, 28, 117, 235, 24, 248, 22, 246, 215, 24, 42,\n\t\t48, 65, 38, 96, 139, 155, 96, 219, 229, 144, 15, 207, 244,\n\t\t143, 19, 148, 137, 103, 99, 101, 125, 125, 101, 203, 63, 108,\n\t\t80, 96, 226, 223, 183, 150, 151, 91, 179, 179, 179, 112, 99,\n\t\t125, 115, 125, 125, 115, 253, 61, 20, 173, 120, 21, 44, 223,\n\t\t183, 236, 189, 223, 11, 235, 51, 124, 255, 208, 219, 123,\n\t\t220, 145, 253, 119, 178, 95, 135, 239, 234, 50, 162, 121,\n\t\t32, 94, 189, 122, 245, 42, 247, 48, 220, 0, 115, 96, 30, 44,\n\t\t131, 19, 224, 44, 243, 29, 161, 67, 106, 138, 233, 85, 16,\n\t\t53, 8, 239, 141, 97, 204, 255, 241, 2, 12, 52, 106, 67, 100,\n\t\t41, 109, 17, 53, 202, 136, 26, 94, 149, 23, 33, 27, 223, 22,\n\t\t97, 17, 249, 227, 27, 27, 213, 80, 15, 63, 39, 185, 89, 200,\n\t\t193, 214, 50, 132, 203, 173, 230, 242, 88, 228, 20, 210, 154,\n\t\t234, 161, 201, 214, 242, 205, 77, 215, 202, 206, 42, 58, 82,\n\t\t209, 105, 132, 95, 29, 105, 248, 101, 221, 209, 208, 49, 167,\n\t\t251, 237, 248, 132, 112, 83, 188, 138, 79, 232, 186, 60, 37,\n\t\t227, 252, 204, 204, 239, 223, 180, 17, 31, 149, 126, 86, 168,\n\t\t207, 228, 21, 101, 138, 231, 37, 77, 210, 248, 41, 11, 194,\n\t\t73, 8, 110, 105, 181, 110, 130, 112, 185, 57, 87, 142, 191,\n\t\t71, 29, 111, 47, 183, 155, 203, 114, 77, 87, 36, 21, 97, 100,\n\t\t196, 41, 31, 133, 250, 102, 249, 166, 178, 243, 250, 164,\n\t\t147, 32, 71, 185, 153, 165, 153, 181, 7, 171, 185, 218, 26,\n\t\t87, 43, 228, 103, 184, 35, 146, 198, 99, 158, 151, 110, 140,\n\t\t143, 140, 76, 6, 62, 48, 252, 241, 169, 9, 230, 193, 205,\n\t\t96, 117, 64, 34, 98, 15, 139, 26, 250, 102, 116, 219, 4, 15,\n\t\t254, 243, 160, 167, 126, 100, 75, 151, 112, 105, 210, 211,\n\t\t66, 82, 106, 44, 89, 39, 18, 213, 65, 110, 209, 163, 102,\n\t\t50, 150, 203, 183, 253, 238, 219, 186, 191, 68, 85, 142, 53,\n\t\t8, 252, 105, 250, 170, 127, 132, 6, 163, 45, 236, 80, 244,\n\t\t242, 199, 212, 72, 174, 175, 136, 204, 153, 218, 38, 141,\n\t\t174, 21, 166, 167, 11, 181, 238, 21, 166, 134, 12, 220, 106,\n\t\t108, 104, 230, 122, 223, 127, 96, 111, 108, 168, 128, 197,\n\t\t93, 240, 109, 18, 243, 35, 189, 8, 169, 234, 205, 182, 156,\n\t\t54, 181, 229, 188, 86, 252, 160, 239, 156, 223, 30, 217, 223,\n\t\t201, 74, 66, 148, 227, 19, 183, 30, 88, 124, 65, 82, 224,\n\t\t45, 225, 119, 178, 11, 157, 17, 81, 136, 65, 63, 174, 115,\n\t\t107, 138, 231, 77, 1, 110, 48, 74, 62, 70, 207, 119, 57, 229,\n\t\t150, 10, 118, 92, 144, 178, 60, 159, 224, 155, 211, 51, 109,\n\t\t49, 45, 8, 41, 73, 188, 70, 252, 128, 76, 131, 114, 141, 82,\n\t\t229, 205, 0, 36, 105, 8, 34, 190, 13, 174, 20, 234, 135, 219,\n\t\t52, 175, 207, 230, 221, 117, 234, 196, 94, 87, 158, 156, 91,\n\t\t161, 161, 207, 35, 188, 50, 247, 164, 162, 211, 139, 117,\n\t\t55, 143, 17, 140, 187, 249, 192, 117, 218, 227, 138, 190,\n\t\t50, 247, 36, 13, 214, 48, 234, 126, 111, 110, 69, 87, 96,\n\t\t220, 191, 190, 156, 119, 33, 245, 117, 230, 167, 237, 75,\n\t\t212, 215, 72, 3, 156, 6, 160, 148, 119, 169, 15, 37, 39, 244,\n\t\t35, 226, 21, 253, 96, 101, 26, 86, 154, 11, 208, 227, 7, 93,\n\t\t158, 141, 64, 230, 110, 169, 82, 188, 62, 185, 58, 5, 199,\n\t\t254, 180, 251, 125, 9, 106, 170, 206, 73, 185, 124, 220, 201,\n\t\t65, 24, 251, 239, 209, 98, 220, 30, 129, 146, 134, 15, 31,\n\t\t246, 91, 209, 89, 81, 65, 16, 195, 119, 17, 157, 159, 17,\n\t\t94, 91, 163, 253, 32, 36, 78, 15, 130, 27, 185, 152, 154,\n\t\t136, 20, 221, 124, 206, 73, 68, 141, 120, 60, 15, 225, 136,\n\t\t173, 90, 17, 9, 158, 166, 82, 80, 17, 139, 83, 49, 245, 146,\n\t\t249, 56, 243, 229, 70, 127, 55, 16, 12, 109, 16, 195, 252,\n\t\t30, 254, 151, 231, 55, 128, 217, 5, 150, 232, 207, 59, 123,\n\t\t111, 152, 32, 113, 50, 209, 35, 167, 120, 174, 249, 218, 152,\n\t\t39, 100, 62, 36, 165, 8, 49, 192, 254, 62, 117, 30, 28, 164,\n\t\t152, 131, 64, 92, 91, 44, 84, 232, 226, 118, 26, 86, 164,\n\t\t112, 127, 90, 111, 123, 20, 137, 50, 236, 169, 183, 17, 10,\n\t\t155, 75, 54, 21, 89, 181, 224, 143, 245, 253, 147, 126, 122,\n\t\t207, 120, 106, 45, 187, 97, 21, 83, 200, 59, 227, 95, 79,\n\t\t46, 104, 135, 137, 28, 29, 55, 181, 14, 101, 147, 233, 104,\n\t\t230, 120, 84, 38, 221, 119, 189, 94, 84, 196, 215, 47, 23,\n\t\t198, 104, 74, 247, 37, 243, 145, 84, 116, 31, 147, 73, 23,\n\t\t14, 107, 69, 81, 127, 68, 51, 25, 141, 158, 169, 61, 162,\n\t\t139, 69, 237, 147, 103, 202, 28, 87, 62, 211, 211, 41, 110,\n\t\t193, 175, 130, 58, 104, 131, 189, 212, 246, 110, 155, 167,\n\t\t19, 106, 115, 89, 110, 49, 204, 165, 191, 0, 112, 66, 135,\n\t\t180, 182, 133, 44, 102, 65, 237, 205, 64, 215, 139, 64, 175,\n\t\t233, 181, 252, 156, 219, 181, 134, 99, 59, 110, 22, 214, 219,\n\t\t94, 187, 238, 102, 97, 219, 107, 195, 141, 76, 145, 185, 59,\n\t\t41, 101, 19, 130, 34, 239, 141, 117, 14, 235, 41, 228, 40,\n\t\t105, 93, 79, 43, 14, 74, 233, 135, 59, 177, 125, 178, 194,\n\t\t63, 147, 139, 215, 223, 61, 94, 143, 223, 36, 77, 54, 235,\n\t\t211, 254, 2, 91, 208, 45, 75, 226, 116, 14, 101, 28, 73, 126,\n\t\t36, 182, 191, 200, 60, 159, 140, 46, 196, 230, 101, 125, 36,\n\t\t175, 153, 150, 54, 91, 192, 162, 168, 35, 164, 139, 34, 46,\n\t\t204, 106, 150, 169, 229, 71, 116, 249, 47, 31, 172, 230, 182,\n\t\t182, 114, 213, 79, 243, 188, 42, 73, 42, 207, 39, 100, 94,\n\t\t138, 70, 37, 201, 142, 136, 18, 211, 143, 245, 230, 184, 35,\n\t\t224, 52, 120, 5, 27, 219, 28, 169, 194, 36, 172, 58, 231,\n\t\t58, 225, 20, 71, 141, 90, 92, 143, 26, 12, 179, 186, 115,\n\t\t135, 103, 56, 111, 96, 20, 113, 219, 226, 240, 84, 87, 106,\n\t\t15, 207, 112, 182, 229, 120, 11, 144, 131, 205, 101, 120,\n\t\t115, 187, 185, 60, 165, 153, 73, 2, 97, 68, 89, 85, 15, 77,\n\t\t182, 151, 33, 60, 82, 119, 76, 98, 228, 230, 252, 90, 155,\n\t\t59, 52, 242, 33, 107, 137, 138, 158, 117, 228, 148, 145, 58,\n\t\t229, 199, 222, 154, 179, 187, 255, 63, 54, 225, 161, 49, 17,\n\t\t229, 103, 102, 224, 143, 185, 90, 65, 150, 103, 131, 169,\n\t\t174, 238, 212, 11, 35, 19, 16, 44, 55, 219, 55, 195, 229,\n\t\t230, 190, 138, 29, 25, 155, 138, 43, 145, 241, 246, 45, 237,\n\t\t198, 17, 14, 74, 86, 66, 87, 20, 189, 154, 163, 29, 147, 148,\n\t\t199, 101, 42, 142, 247, 208, 165, 148, 29, 39, 203, 112, 102,\n\t\t105, 230, 230, 66, 157, 59, 33, 106, 130, 204, 243, 210, 173,\n\t\t110, 174, 80, 227, 184, 137, 208, 198, 198, 159, 239, 210,\n\t\t96, 20, 116, 104, 139, 233, 105, 123, 29, 215, 214, 185, 190,\n\t\t103, 156, 118, 57, 244, 192, 28, 150, 148, 83, 247, 194, 46,\n\t\t18, 194, 254, 224, 250, 129, 227, 143, 125, 231, 177, 227,\n\t\t7, 100, 57, 223, 72, 63, 244, 241, 135, 246, 55, 228, 91,\n\t\t168, 92, 97, 67, 51, 211, 22, 137, 150, 163, 196, 74, 155,\n\t\t154, 169, 117, 52, 243, 245, 100, 58, 77, 93, 87, 76, 19,\n\t\t44, 184, 98, 196, 84, 221, 124, 222, 53, 82, 200, 21, 190,\n\t\t77, 5, 12, 127, 102, 106, 107, 86, 90, 150, 211, 214, 154,\n\t\t102, 174, 49, 145, 14, 229, 192, 185, 204, 113, 240, 35, 64,\n\t\t3, 99, 0, 148, 220, 6, 93, 240, 53, 60, 215, 169, 123, 102,\n\t\t22, 162, 98, 165, 199, 182, 83, 100, 46, 106, 169, 213, 137,\n\t\t11, 59, 206, 43, 62, 43, 69, 196, 207, 222, 145, 221, 35,\n\t\t88, 194, 55, 70, 133, 252, 3, 105, 193, 18, 102, 247, 138,\n\t\t182, 48, 122, 111, 94, 24, 229, 203, 247, 87, 210, 233, 202,\n\t\t253, 229, 111, 76, 126, 65, 146, 190, 112, 228, 173, 24, 67,\n\t\t173, 244, 178, 170, 135, 241, 93, 111, 195, 202, 169, 234,\n\t\t203, 74, 92, 181, 154, 206, 84, 42, 61, 91, 134, 28, 220,\n\t\t4, 121, 63, 29, 1, 87, 216, 110, 6, 225, 1, 17, 101, 184,\n\t\t22, 132, 185, 197, 217, 81, 66, 70, 73, 149, 248, 167, 217,\n\t\t197, 213, 7, 87, 47, 51, 179, 4, 163, 113, 76, 109, 6, 241,\n\t\t164, 74, 154, 234, 177, 198, 252, 234, 106, 42, 52, 83, 96,\n\t\t107, 65, 184, 1, 55, 64, 156, 105, 107, 130, 21, 239, 144,\n\t\t151, 226, 114, 187, 17, 18, 91, 194, 215, 146, 136, 24, 61,\n\t\t225, 172, 62, 184, 186, 58, 63, 94, 92, 137, 138, 146, 252,\n\t\t89, 70, 43, 184, 65, 142, 203, 146, 24, 93, 41, 142, 207,\n\t\t175, 174, 62, 184, 234, 156, 136, 138, 145, 238, 22, 77, 70,\n\t\t184, 239, 207, 193, 45, 176, 143, 218, 67, 92, 63, 111, 30,\n\t\t245, 89, 77, 251, 17, 117, 159, 212, 102, 253, 135, 146, 229,\n\t\t93, 59, 215, 13, 129, 47, 139, 16, 73, 85, 133, 19, 162, 238,\n\t\t97, 55, 42, 112, 74, 85, 66, 80, 44, 11, 124, 131, 149, 199,\n\t\t149, 157, 197, 113, 195, 4, 207, 231, 102, 68, 89, 49, 35,\n\t\t150, 21, 49, 21, 89, 156, 201, 9, 220, 68, 129, 21, 81, 31,\n\t\t163, 58, 203, 120, 200, 7, 202, 231, 186, 181, 115, 173, 130,\n\t\t219, 94, 83, 219, 10, 113, 171, 87, 136, 141, 99, 106, 154,\n\t\t84, 73, 154, 16, 122, 162, 21, 183, 91, 153, 94, 134, 91,\n\t\t96, 5, 156, 121, 174, 105, 227, 216, 218, 156, 17, 218, 50,\n\t\t227, 13, 38, 93, 112, 3, 150, 85, 183, 189, 61, 229, 223,\n\t\t217, 37, 229, 185, 70, 198, 49, 44, 44, 167, 49, 54, 205,\n\t\t168, 24, 241, 147, 45, 69, 45, 19, 203, 25, 89, 182, 140,\n\t\t226, 234, 115, 203, 21, 170, 238, 43, 140, 23, 13, 75, 150,\n\t\t51, 50, 125, 145, 36, 31, 247, 191, 102, 178, 24, 203, 112,\n\t\t134, 179, 60, 160, 251, 243, 251, 200, 233, 231, 211, 75,\n\t\t196, 107, 60, 86, 174, 180, 189, 158, 218, 183, 92, 9, 44,\n\t\t53, 175, 211, 167, 242, 3, 241, 35, 73, 91, 117, 11, 249,\n\t\t153, 153, 124, 193, 85, 237, 74, 125, 126, 117, 241, 186,\n\t\t125, 238, 7, 131, 55, 144, 149, 28, 137, 207, 44, 205, 196,\n\t\t115, 137, 145, 213, 249, 198, 49, 48, 56, 126, 38, 64, 158,\n\t\t178, 209, 210, 90, 221, 225, 56, 124, 160, 126, 130, 189,\n\t\t107, 248, 72, 209, 95, 86, 180, 61, 43, 24, 103, 167, 97,\n\t\t177, 86, 152, 245, 199, 94, 182, 107, 93, 37, 72, 225, 163,\n\t\t179, 97, 7, 174, 249, 69, 254, 24, 171, 165, 207, 136, 40,\n\t\t184, 55, 95, 90, 172, 8, 249, 236, 204, 210, 140, 93, 114,\n\t\t248, 8, 159, 207, 208, 231, 252, 122, 20, 17, 31, 173, 133,\n\t\t93, 124, 214, 175, 27, 86, 42, 39, 144, 216, 191, 87, 216,\n\t\t55, 202, 71, 32, 231, 23, 139, 83, 178, 179, 121, 62, 230,\n\t\t63, 217, 147, 221, 83, 190, 199, 50, 56, 2, 86, 182, 231,\n\t\t175, 88, 216, 81, 25, 44, 221, 66, 253, 231, 245, 184, 208,\n\t\t0, 149, 107, 134, 57, 156, 175, 87, 134, 43, 39, 200, 110,\n\t\t247, 149, 15, 174, 110, 171, 220, 87, 246, 218, 105, 47, 15,\n\t\t35, 137, 28, 173, 155, 145, 228, 8, 205, 103, 199, 175, 161,\n\t\t29, 245, 250, 72, 191, 47, 2, 0, 253, 181, 194, 4, 245, 139,\n\t\t211, 19, 29, 184, 204, 148, 57, 168, 61, 127, 7, 204, 178,\n\t\t68, 101, 179, 219, 70, 8, 17, 69, 196, 104, 76, 199, 56, 141,\n\t\t101, 61, 230, 87, 81, 101, 169, 50, 94, 140, 69, 104, 103,\n\t\t208, 163, 131, 131, 45, 18, 105, 143, 139, 233, 180, 15, 234,\n\t\t49, 90, 37, 243, 149, 165, 138, 19, 211, 101, 76, 163, 182,\n\t\t143, 21, 151, 97, 30, 254, 62, 152, 4, 77, 0, 60, 38, 10,\n\t\t245, 66, 195, 136, 102, 224, 131, 177, 103, 130, 60, 64, 242,\n\t\t230, 132, 102, 149, 255, 48, 190, 250, 224, 234, 120, 182,\n\t\t106, 137, 8, 137, 86, 92, 150, 164, 57, 89, 158, 147, 36,\n\t\t57, 206, 98, 170, 21, 63, 105, 51, 223, 29, 127, 112, 117,\n\t\t245, 193, 241, 12, 78, 82, 162, 182, 120, 132, 61, 166, 39,\n\t\t232, 101, 18, 127, 123, 38, 152, 125, 252, 50, 171, 193, 63,\n\t\t131, 43, 160, 10, 106, 1, 35, 49, 219, 8, 179, 202, 149, 80,\n\t\t160, 206, 116, 220, 70, 159, 199, 177, 237, 134, 233, 129,\n\t\t63, 192, 120, 78, 140, 196, 253, 129, 4, 103, 194, 175, 250,\n\t\t227, 74, 60, 34, 254, 29, 77, 203, 211, 97, 2, 9, 177, 170,\n\t\t217, 48, 253, 132, 208, 212, 95, 156, 233, 143, 241, 108,\n\t\t222, 141, 82, 15, 152, 148, 29, 145, 38, 33, 28, 65, 194,\n\t\t26, 202, 45, 206, 146, 42, 161, 99, 193, 167, 88, 61, 248,\n\t\t125, 253, 113, 66, 30, 103, 125, 60, 108, 13, 97, 222, 114,\n\t\t112, 37, 176, 29, 12, 253, 24, 4, 50, 104, 246, 235, 71, 252,\n\t\t36, 175, 66, 131, 254, 234, 149, 126, 143, 124, 208, 255,\n\t\t45, 6, 125, 63, 179, 46, 213, 122, 48, 61, 246, 105, 112,\n\t\t39, 0, 112, 155, 175, 235, 242, 118, 15, 9, 191, 224, 125,\n\t\t120, 185, 219, 233, 153, 199, 52, 168, 97, 242, 49, 122, 60,\n\t\t243, 60, 227, 97, 142, 46, 201, 232, 225, 12, 115, 200, 194,\n\t\t28, 62, 62, 175, 104, 48, 228, 183, 165, 8, 38, 40, 119, 245,\n\t\t115, 192, 105, 132, 108, 146, 104, 187, 134, 193, 169, 123,\n\t\t204, 69, 26, 147, 202, 117, 250, 193, 238, 159, 81, 81, 87,\n\t\t217, 59, 206, 224, 9, 199, 189, 104, 241, 230, 226, 149, 237,\n\t\t143, 177, 96, 141, 202, 193, 94, 126, 220, 27, 183, 210, 105,\n\t\t107, 220, 59, 110, 24, 253, 180, 190, 147, 250, 189, 43, 82,\n\t\t251, 136, 112, 0, 24, 226, 144, 167, 115, 45, 186, 110, 26,\n\t\t143, 77, 17, 226, 170, 234, 244, 180, 170, 186, 132, 76, 13,\n\t\t93, 117, 63, 180, 91, 74, 47, 237, 246, 104, 112, 181, 176,\n\t\t75, 114, 153, 28, 208, 95, 251, 33, 48, 65, 185, 106, 25,\n\t\t255, 102, 125, 0, 83, 148, 183, 119, 8, 59, 252, 197, 205,\n\t\t183, 130, 214, 63, 189, 196, 74, 14, 244, 149, 48, 151, 49,\n\t\t98, 131, 206, 137, 165, 105, 202, 31, 64, 21, 188, 129, 159,\n\t\t248, 75, 23, 17, 30, 192, 139, 187, 20, 165, 193, 80, 36,\n\t\t174, 67, 11, 96, 113, 224, 99, 104, 155, 14, 46, 132, 173,\n\t\t194, 173, 99, 205, 69, 129, 151, 186, 151, 36, 94, 88, 108,\n\t\t30, 59, 62, 187, 85, 63, 86, 27, 100, 255, 255, 224, 116,\n\t\t62, 63, 157, 135, 107, 87, 65, 101, 79, 157, 87, 85, 190,\n\t\t190, 167, 2, 65, 101, 207, 158, 79, 134, 152, 68, 189, 157,\n\t\t247, 159, 1, 61, 188, 97, 152, 30, 191, 175, 221, 120, 253,\n\t\t52, 13, 91, 150, 13, 95, 135, 105, 28, 189, 94, 90, 159, 213,\n\t\t21, 102, 102, 175, 232, 79, 247, 131, 140, 156, 176, 251,\n\t\t163, 192, 119, 199, 117, 210, 222, 63, 76, 15, 248, 125, 9,\n\t\t101, 199, 204, 22, 17, 49, 31, 71, 48, 111, 231, 91, 141,\n\t\t86, 209, 171, 15, 82, 83, 216, 3, 118, 227, 162, 157, 111,\n\t\t113, 185, 110, 14, 94, 206, 229, 12, 43, 205, 68, 134, 105,\n\t\t171, 11, 44, 230, 86, 105, 13, 230, 182, 58, 157, 141, 180,\n\t\t101, 80, 193, 66, 232, 85, 104, 109, 99, 227, 255, 139, 239,\n\t\t173, 119, 183, 254, 213, 191, 87, 188, 206, 247, 140, 203,\n\t\t215, 251, 220, 191, 228, 123, 238, 245, 190, 247, 212, 198,\n\t\t181, 63, 199, 13, 125, 235, 57, 124, 233, 218, 185, 218, 245,\n\t\t27, 32, 192, 139, 125, 9, 30, 132, 191, 15, 108, 0, 74, 197,\n\t\t158, 208, 1, 73, 180, 133, 187, 208, 145, 224, 244, 125, 115,\n\t\t188, 132, 102, 145, 198, 183, 78, 203, 142, 139, 96, 70, 198,\n\t\t15, 92, 64, 58, 239, 112, 34, 122, 248, 54, 172, 16, 248,\n\t\t31, 8, 150, 187, 223, 151, 93, 198, 223, 13, 1, 252, 10, 56,\n\t\t66, 103, 78, 234, 169, 51, 92, 163, 121, 161, 184, 107, 26,\n\t\t86, 116, 174, 39, 233, 234, 175, 219, 154, 136, 89, 137, 44,\n\t\t112, 141, 122, 22, 186, 254, 201, 177, 33, 64, 226, 170, 191,\n\t\t198, 90, 245, 87, 21, 110, 118, 42, 22, 155, 206, 58, 126,\n\t\t152, 197, 242, 18, 207, 241, 2, 223, 191, 1, 31, 17, 81, 109,\n\t\t157, 84, 201, 250, 44, 164, 107, 12, 62, 22, 141, 197, 56,\n\t\t26, 12, 227, 121, 137, 175, 114, 34, 207, 133, 183, 192, 208,\n\t\t94, 98, 18, 204, 177, 62, 31, 36, 189, 64, 7, 190, 16, 2,\n\t\t20, 13, 146, 27, 218, 96, 178, 103, 196, 190, 5, 165, 77,\n\t\t141, 123, 3, 113, 254, 62, 88, 135, 151, 45, 10, 239, 161,\n\t\t230, 146, 22, 13, 67, 22, 238, 110, 48, 26, 44, 216, 33, 171,\n\t\t186, 114, 132, 134, 152, 177, 101, 240, 88, 167, 31, 254,\n\t\t12, 133, 237, 60, 115, 129, 28, 81, 244, 102, 143, 247, 147,\n\t\t242, 163, 77, 128, 23, 3, 224, 245, 83, 216, 218, 53, 133,\n\t\t118, 63, 55, 158, 189, 107, 206, 90, 131, 126, 25, 41, 216,\n\t\t190, 247, 227, 142, 212, 148, 164, 100, 82, 146, 154, 18,\n\t\t204, 245, 195, 91, 244, 216, 189, 76, 99, 46, 80, 102, 15,\n\t\t93, 145, 207, 209, 203, 13, 246, 196, 192, 195, 52, 216, 217,\n\t\t236, 199, 28, 161, 237, 180, 163, 232, 71, 232, 229, 32, 127,\n\t\t3, 229, 53, 43, 249, 3, 233, 16, 135, 3, 53, 87, 243, 211,\n\t\t73, 225, 238, 148, 240, 26, 94, 84, 116, 116, 23, 82, 164,\n\t\t141, 13, 138, 57, 103, 110, 43, 187, 207, 122, 119, 161, 13,\n\t\t73, 9, 229, 174, 204, 214, 56, 191, 83, 35, 17, 109, 216,\n\t\t219, 0, 228, 129, 206, 129, 106, 16, 46, 133, 129, 218, 12,\n\t\t133, 41, 246, 212, 10, 129, 215, 95, 63, 120, 137, 186, 133,\n\t\t166, 58, 48, 182, 46, 177, 65, 28, 52, 129, 7, 238, 166, 146,\n\t\t141, 66, 185, 85, 107, 53, 219, 30, 149, 111, 58, 20, 37,\n\t\t93, 65, 13, 145, 65, 165, 217, 173, 5, 97, 224, 94, 163, 98,\n\t\t110, 95, 0, 68, 203, 125, 241, 97, 232, 140, 219, 111, 94,\n\t\t18, 138, 66, 176, 124, 223, 178, 146, 77, 154, 218, 188, 102,\n\t\t37, 51, 202, 198, 145, 139, 240, 243, 133, 125, 197, 214,\n\t\t178, 146, 21, 69, 85, 86, 197, 224, 198, 211, 23, 143, 24,\n\t\t125, 236, 196, 83, 101, 153, 210, 68, 92, 76, 28, 75, 92,\n\t\t244, 3, 111, 147, 203, 235, 254, 214, 8, 202, 238, 124, 179,\n\t\t156, 76, 86, 91, 123, 28, 12, 55, 47, 26, 78, 201, 102, 177,\n\t\t138, 98, 27, 142, 26, 222, 49, 46, 118, 175, 12, 64, 127,\n\t\t43, 198, 24, 195, 73, 49, 124, 212, 152, 209, 253, 99, 48,\n\t\t100, 211, 59, 238, 175, 233, 67, 124, 135, 69, 61, 169, 12,\n\t\t231, 178, 209, 164, 238, 83, 130, 11, 234, 182, 212, 134,\n\t\t116, 46, 60, 216, 106, 29, 164, 85, 250, 20, 187, 42, 122,\n\t\t35, 180, 222, 141, 253, 167, 246, 195, 45, 42, 188, 190, 225,\n\t\t229, 177, 216, 203, 111, 160, 193, 240, 154, 204, 29, 159,\n\t\t162, 225, 110, 103, 223, 201, 147, 251, 6, 113, 98, 126, 90,\n\t\t218, 207, 43, 53, 211, 176, 32, 33, 179, 221, 42, 90, 238,\n\t\t245, 211, 36, 106, 245, 249, 186, 246, 5, 245, 146, 250, 92,\n\t\t82, 182, 49, 58, 57, 57, 10, 65, 182, 80, 200, 238, 44, 171,\n\t\t159, 159, 44, 182, 102, 215, 97, 221, 79, 24, 60, 119, 173,\n\t\t52, 173, 40, 186, 254, 63, 79, 237, 191, 4, 55, 174, 151,\n\t\t24, 122, 184, 120, 114, 223, 62, 208, 195, 17, 179, 180, 60,\n\t\t247, 148, 72, 215, 79, 195, 115, 248, 126, 248, 237, 255,\n\t\t69, 253, 75, 80, 253, 97, 104, 189, 76, 115, 26, 32, 219,\n\t\t3, 75, 102, 166, 14, 105, 5, 129, 198, 206, 64, 179, 13, 191,\n\t\t165, 217, 154, 92, 147, 37, 21, 93, 81, 116, 99, 61, 151,\n\t\t177, 204, 180, 188, 253, 0, 215, 117, 71, 123, 187, 21, 123,\n\t\t109, 204, 228, 145, 42, 233, 10, 178, 245, 123, 50, 19, 75,\n\t\t86, 58, 99, 213, 208, 5, 255, 52, 82, 243, 143, 51, 57, 26,\n\t\t166, 147, 39, 188, 250, 179, 128, 87, 124, 110, 32, 157, 44,\n\t\t141, 51, 176, 188, 0, 157, 17, 200, 54, 248, 44, 77, 126,\n\t\t40, 203, 109, 75, 39, 252, 160, 98, 42, 98, 138, 79, 25, 255,\n\t\t85, 113, 165, 55, 43, 98, 42, 143, 115, 138, 169, 68, 227,\n\t\t178, 98, 42, 178, 161, 74, 178, 107, 68, 227, 114, 28, 118,\n\t\t212, 152, 250, 152, 107, 191, 202, 176, 137, 252, 113, 61,\n\t\t111, 138, 218, 228, 95, 169, 49, 53, 30, 253, 228, 247, 212,\n\t\t152, 42, 169, 134, 252, 71, 159, 50, 226, 241, 232, 83, 167,\n\t\t163, 241, 192, 111, 49, 128, 31, 5, 211, 0, 56, 205, 54, 5,\n\t\t253, 135, 187, 122, 122, 174, 76, 115, 84, 67, 67, 15, 76,\n\t\t141, 195, 252, 151, 124, 207, 141, 230, 162, 174, 27, 205,\n\t\t209, 81, 240, 210, 167, 137, 193, 11, 242, 168, 249, 165,\n\t\t4, 206, 104, 235, 50, 137, 234, 23, 4, 113, 37, 138, 11, 174,\n\t\t236, 22, 92, 57, 93, 77, 235, 135, 68, 43, 161, 197, 12, 180,\n\t\t60, 66, 68, 212, 17, 45, 229, 138, 238, 240, 57, 8, 122, 254,\n\t\t147, 59, 148, 175, 17, 136, 212, 32, 167, 111, 156, 80, 111,\n\t\t7, 196, 195, 189, 54, 228, 154, 78, 6, 194, 13, 117, 157,\n\t\t232, 31, 80, 244, 82, 234, 77, 114, 140, 119, 120, 69, 249,\n\t\t115, 55, 175, 43, 240, 152, 18, 151, 126, 35, 146, 219, 175,\n\t\t163, 27, 145, 174, 200, 169, 18, 145, 27, 216, 200, 187, 134,\n\t\t162, 107, 184, 251, 51, 55, 253, 90, 106, 35, 178, 197, 241,\n\t\t240, 171, 212, 146, 131, 178, 203, 246, 107, 101, 6, 78, 67,\n\t\t63, 183, 173, 74, 121, 129, 163, 112, 169, 6, 69, 144, 100,\n\t\t225, 8, 108, 120, 11, 208, 127, 188, 225, 181, 225, 183, 114,\n\t\t49, 97, 148, 23, 146, 98, 194, 248, 99, 83, 127, 59, 129,\n\t\t78, 158, 236, 175, 112, 188, 172, 201, 70, 90, 40, 42, 53,\n\t\t33, 102, 168, 86, 132, 107, 70, 106, 66, 38, 23, 21, 38, 213,\n\t\t17, 1, 222, 45, 167, 141, 15, 170, 234, 184, 174, 221, 22,\n\t\t49, 181, 183, 168, 249, 56, 84, 247, 172, 252, 255, 101, 67,\n\t\t195, 156, 16, 51, 62, 248, 135, 70, 90, 224, 164, 136, 250,\n\t\t195, 175, 26, 81, 57, 99, 252, 135, 135, 233, 254, 80, 8,\n\t\t218, 208, 22, 152, 2, 179, 160, 69, 253, 109, 218, 253, 244,\n\t\t178, 70, 20, 101, 58, 255, 70, 107, 219, 217, 63, 137, 69,\n\t\t187, 225, 5, 127, 112, 11, 230, 120, 71, 191, 100, 145, 13,\n\t\t214, 142, 220, 160, 146, 130, 191, 171, 64, 150, 207, 208,\n\t\t255, 151, 214, 68, 225, 130, 30, 53, 158, 98, 237, 8, 90,\n\t\t126, 133, 63, 93, 245, 143, 213, 184, 127, 244, 15, 47, 89,\n\t\t243, 255, 133, 28, 191, 44, 141, 96, 148, 118, 244, 32, 129,\n\t\t211, 112, 6, 150, 219, 139, 140, 14, 97, 100, 151, 4, 194,\n\t\t119, 22, 92, 154, 166, 43, 146, 78, 248, 14, 18, 201, 200,\n\t\t50, 50, 74, 163, 242, 33, 127, 119, 67, 211, 245, 140, 27,\n\t\t93, 161, 137, 17, 21, 113, 93, 203, 224, 196, 151, 204, 209,\n\t\t136, 17, 251, 52, 107, 125, 172, 37, 70, 131, 181, 240, 195,\n\t\t112, 13, 36, 232, 202, 172, 158, 13, 120, 134, 183, 109, 249,\n\t\t27, 208, 161, 5, 215, 42, 6, 173, 121, 134, 43, 58, 129, 95,\n\t\t30, 207, 108, 247, 233, 114, 247, 193, 186, 11, 69, 94, 20,\n\t\t32, 18, 79, 34, 177, 45, 162, 147, 34, 34, 220, 107, 161,\n\t\t214, 86, 33, 134, 42, 202, 242, 184, 142, 185, 145, 24, 228,\n\t\t56, 12, 213, 182, 132, 96, 28, 170, 7, 48, 63, 97, 64, 44,\n\t\t79, 240, 248, 128, 10, 225, 26, 47, 241, 19, 34, 250, 177,\n\t\t191, 24, 253, 49, 18, 39, 72, 247, 15, 52, 245, 237, 237,\n\t\t130, 117, 18, 161, 147, 237, 108, 252, 237, 170, 44, 194,\n\t\t170, 42, 191, 181, 149, 179, 223, 42, 171, 219, 48, 250, 17,\n\t\t127, 108, 45, 81, 95, 226, 117, 39, 244, 218, 100, 150, 43,\n\t\t109, 170, 175, 30, 244, 150, 205, 108, 93, 97, 38, 157, 117,\n\t\t109, 253, 251, 20, 85, 40, 76, 192, 242, 125, 55, 226, 72,\n\t\t4, 187, 138, 158, 156, 68, 122, 92, 215, 127, 156, 153, 35,\n\t\t129, 119, 135, 205, 227, 92, 188, 126, 155, 174, 80, 24, 200,\n\t\t145, 23, 104, 113, 48, 168, 127, 30, 246, 175, 107, 15, 249,\n\t\t215, 109, 13, 249, 215, 165, 238, 80, 255, 31, 10, 197, 238,\n\t\t82, 172, 199, 230, 223, 251, 49, 156, 209, 5, 161, 119, 93,\n\t\t230, 104, 193, 204, 13, 121, 215, 237, 239, 233, 51, 96, 130,\n\t\t214, 216, 181, 61, 176, 100, 160, 37, 14, 249, 107, 17, 175,\n\t\t237, 252, 178, 5, 63, 179, 221, 69, 75, 247, 230, 190, 3,\n\t\t151, 35, 100, 158, 84, 201, 60, 9, 78, 48, 55, 236, 177, 101,\n\t\t148, 228, 250, 238, 92, 30, 233, 63, 71, 230, 201, 144, 221,\n\t\t186, 159, 102, 239, 121, 166, 121, 0, 176, 125, 253, 52, 206,\n\t\t19, 242, 121, 114, 253, 164, 109, 133, 16, 236, 95, 176, 28,\n\t\t135, 153, 255, 17, 131, 63, 48, 140, 205, 245, 211, 168, 213,\n\t\t48, 78, 203, 184, 86, 163, 210, 228, 218, 208, 213, 117, 83,\n\t\t190, 185, 219, 47, 130, 43, 176, 35, 63, 251, 158, 103, 126,\n\t\t42, 3, 110, 12, 22, 97, 251, 250, 121, 184, 45, 45, 227, 251,\n\t\t166, 169, 236, 251, 86, 44, 191, 239, 250, 233, 94, 75, 99,\n\t\t249, 190, 25, 89, 78, 99, 121, 85, 150, 223, 139, 251, 115,\n\t\t23, 160, 254, 247, 1, 108, 111, 231, 33, 114, 2, 118, 51,\n\t\t248, 125, 146, 208, 149, 110, 45, 16, 193, 188, 135, 36, 96,\n\t\t90, 214, 245, 192, 205, 62, 221, 139, 252, 254, 25, 89, 215,\n\t\t15, 246, 243, 159, 131, 91, 0, 83, 86, 31, 224, 57, 117, 207,\n\t\t166, 250, 229, 16, 74, 239, 213, 155, 20, 182, 91, 111, 53,\n\t\t219, 235, 209, 108, 212, 17, 136, 224, 164, 169, 104, 248,\n\t\t34, 33, 229, 118, 188, 250, 75, 60, 255, 107, 121, 81, 204,\n\t\t195, 63, 161, 50, 98, 57, 222, 46, 19, 18, 200, 123, 174,\n\t\t254, 148, 250, 85, 220, 2, 73, 48, 74, 53, 148, 212, 182,\n\t\t38, 191, 67, 30, 218, 168, 187, 188, 191, 141, 162, 35, 99,\n\t\t127, 191, 193, 48, 141, 116, 39, 8, 255, 137, 144, 9, 172,\n\t\t119, 223, 234, 231, 224, 73, 186, 170, 255, 160, 142, 175,\n\t\t48, 161, 39, 29, 87, 186, 111, 213, 241, 4, 125, 232, 131,\n\t\t29, 248, 114, 85, 157, 196, 20, 35, 22, 216, 165, 117, 247,\n\t\t172, 175, 35, 140, 161, 75, 35, 241, 164, 127, 63, 151, 11,\n\t\t202, 224, 79, 185, 14, 252, 8, 80, 128, 238, 239, 242, 162,\n\t\t205, 5, 184, 8, 163, 72, 42, 183, 188, 168, 27, 53, 219, 89,\n\t\t104, 71, 45, 29, 70, 160, 63, 41, 60, 242, 110, 89, 223, 218,\n\t\t250, 109, 9, 35, 255, 2, 222, 36, 17, 133, 155, 235, 110,\n\t\t44, 242, 138, 92, 131, 27, 157, 238, 6, 252, 50, 199, 203,\n\t\t82, 247, 99, 244, 6, 220, 160, 245, 246, 69, 186, 223, 179,\n\t\t7, 70, 57, 170, 219, 236, 141, 109, 91, 201, 114, 57, 121,\n\t\t241, 205, 146, 182, 230, 7, 224, 86, 57, 217, 189, 156, 44,\n\t\t223, 33, 32, 180, 90, 78, 194, 92, 178, 188, 109, 172, 118,\n\t\t7, 173, 108, 183, 219, 6, 108, 151, 249, 49, 160, 248, 51,\n\t\t20, 227, 197, 128, 94, 253, 96, 0, 10, 255, 28, 69, 124, 13,\n\t\t31, 192, 54, 142, 65, 119, 0, 163, 190, 235, 23, 224, 153,\n\t\t254, 175, 119, 188, 183, 143, 215, 217, 162, 122, 12, 134,\n\t\t33, 232, 27, 75, 179, 73, 218, 46, 218, 13, 202, 223, 18,\n\t\t202, 252, 123, 186, 141, 181, 181, 153, 124, 247, 114, 126,\n\t\t102, 109, 249, 190, 229, 173, 141, 114, 179, 252, 24, 21,\n\t\t193, 127, 58, 16, 230, 119, 175, 208, 205, 162, 145, 107,\n\t\t45, 47, 183, 114, 185, 100, 185, 252, 254, 65, 49, 189, 16,\n\t\t172, 251, 126, 29, 140, 131, 54, 88, 2, 199, 232, 186, 198,\n\t\t175, 6, 157, 243, 191, 63, 211, 23, 209, 135, 11, 175, 112,\n\t\t17, 81, 119, 196, 1, 215, 59, 222, 64, 184, 50, 16, 254, 127,\n\t\t169, 123, 15, 48, 73, 174, 250, 94, 244, 156, 10, 231, 84,\n\t\t238, 234, 174, 212, 121, 58, 76, 87, 79, 236, 238, 237, 84,\n\t\t179, 105, 166, 119, 54, 74, 155, 70, 105, 119, 149, 7, 197,\n\t\t21, 10, 140, 130, 133, 88, 210, 32, 1, 150, 76, 90, 140, 128,\n\t\t53, 190, 87, 119, 236, 107, 223, 43, 97, 108, 132, 140, 141,\n\t\t144, 49, 140, 16, 209, 247, 98, 235, 33, 158, 141, 77, 184,\n\t\t123, 253, 28, 48, 207, 214, 21, 6, 115, 49, 70, 61, 239, 171,\n\t\t115, 170, 186, 171, 103, 119, 37, 184, 247, 125, 223, 251,\n\t\t158, 180, 83, 225, 84, 117, 213, 169, 170, 19, 254, 241, 247,\n\t\t99, 122, 154, 36, 164, 25, 213, 82, 250, 143, 38, 50, 108,\n\t\t154, 24, 18, 118, 223, 46, 164, 109, 78, 88, 250, 199, 37,\n\t\t129, 179, 211, 194, 237, 187, 37, 173, 79, 33, 97, 181, 21,\n\t\t186, 58, 75, 87, 223, 211, 37, 237, 83, 178, 33, 59, 137,\n\t\t79, 17, 181, 227, 3, 50, 167, 167, 229, 59, 239, 148, 211,\n\t\t58, 39, 127, 64, 123, 230, 60, 150, 213, 225, 2, 4, 113, 230,\n\t\t103, 225, 179, 112, 13, 236, 38, 163, 178, 255, 100, 33, 43,\n\t\t68, 8, 175, 61, 192, 217, 46, 7, 96, 219, 222, 96, 35, 136,\n\t\t224, 143, 64, 210, 219, 49, 232, 149, 49, 252, 52, 35, 29,\n\t\t117, 14, 242, 2, 20, 160, 180, 20, 163, 241, 10, 218, 13,\n\t\t58, 148, 38, 17, 134, 177, 131, 8, 67, 252, 170, 103, 60,\n\t\t227, 220, 232, 64, 73, 90, 21, 249, 9, 233, 152, 36, 242,\n\t\t151, 146, 133, 191, 119, 78, 209, 83, 171, 171, 0, 240, 68,\n\t\t190, 251, 66, 132, 195, 124, 118, 104, 253, 15, 253, 64, 246,\n\t\t38, 102, 34, 163, 213, 180, 113, 32, 87, 193, 238, 99, 215,\n\t\t44, 46, 94, 179, 120, 13, 49, 60, 63, 24, 217, 62, 89, 208,\n\t\t52, 161, 255, 126, 172, 148, 52, 77, 132, 43, 248, 236, 162,\n\t\t127, 240, 58, 98, 158, 254, 66, 100, 27, 254, 86, 90, 233,\n\t\t55, 164, 180, 2, 159, 151, 0, 63, 34, 35, 249, 245, 217, 15,\n\t\t64, 72, 35, 21, 146, 23, 133, 76, 73, 221, 208, 143, 53, 15,\n\t\t107, 16, 163, 82, 213, 213, 160, 237, 216, 4, 74, 19, 145,\n\t\t96, 50, 175, 101, 59, 121, 56, 15, 171, 53, 166, 211, 133,\n\t\t199, 62, 118, 234, 212, 199, 78, 245, 191, 74, 58, 208, 227,\n\t\t36, 134, 249, 207, 242, 150, 149, 183, 46, 69, 152, 149, 241,\n\t\t129, 67, 7, 176, 204, 98, 212, 201, 137, 72, 98, 144, 166,\n\t\t178, 9, 78, 226, 18, 172, 170, 33, 70, 66, 98, 14, 158, 62,\n\t\t229, 95, 224, 55, 73, 103, 187, 146, 196, 64, 239, 177, 252,\n\t\t223, 31, 134, 138, 138, 153, 120, 156, 193, 170, 204, 40,\n\t\t92, 125, 151, 145, 196, 26, 143, 80, 173, 88, 172, 33, 196,\n\t\t107, 56, 105, 236, 170, 115, 164, 95, 252, 49, 209, 171, 101,\n\t\t96, 128, 12, 88, 4, 128, 39, 137, 142, 93, 207, 177, 45, 179,\n\t\t234, 216, 132, 206, 48, 17, 60, 33, 9, 116, 119, 9, 64, 129,\n\t\t101, 142, 65, 139, 208, 199, 45, 192, 14, 166, 241, 143, 59,\n\t\t105, 75, 114, 224, 155, 24, 134, 103, 222, 44, 240, 111, 129,\n\t\t63, 88, 224, 229, 100, 138, 31, 231, 198, 211, 233, 241, 244,\n\t\t235, 16, 35, 96, 19, 223, 2, 25, 14, 142, 45, 114, 201, 148,\n\t\t194, 119, 117, 77, 146, 180, 157, 88, 41, 40, 120, 1, 114,\n\t\t127, 202, 226, 231, 25, 134, 127, 238, 35, 74, 74, 146, 149,\n\t\t19, 112, 71, 218, 255, 225, 115, 130, 137, 16, 35, 188, 141,\n\t\t225, 24, 88, 189, 227, 15, 20, 69, 76, 170, 31, 124, 183,\n\t\t233, 43, 241, 242, 245, 71, 69, 145, 96, 28, 210, 56, 95,\n\t\t4, 52, 144, 7, 158, 255, 141, 60, 167, 236, 117, 61, 219,\n\t\t107, 218, 150, 47, 213, 122, 155, 137, 102, 170, 20, 204,\n\t\t5, 229, 153, 8, 118, 225, 60, 244, 218, 20, 76, 42, 28, 220,\n\t\t254, 163, 152, 22, 25, 134, 121, 220, 78, 213, 181, 47, 134,\n\t\t177, 191, 112, 205, 204, 246, 255, 101, 43, 35, 142, 11, 236,\n\t\t86, 2, 67, 159, 19, 89, 161, 45, 176, 98, 142, 67, 236, 167,\n\t\t146, 179, 249, 173, 4, 0, 165, 214, 249, 63, 242, 121, 36,\n\t\t73, 233, 84, 114, 203, 13, 215, 15, 205, 117, 217, 31, 61,\n\t\t46, 8, 143, 19, 224, 249, 124, 94, 228, 241, 229, 249, 105,\n\t\t7, 243, 143, 243, 184, 13, 184, 141, 31, 109, 172, 195, 183,\n\t\t193, 47, 129, 34, 104, 129, 221, 224, 50, 0, 28, 2, 237, 54,\n\t\t6, 237, 32, 17, 181, 92, 69, 142, 215, 36, 120, 19, 65, 137,\n\t\t97, 155, 132, 74, 214, 37, 112, 30, 11, 176, 107, 123, 182,\n\t\t73, 169, 60, 131, 2, 188, 105, 255, 53, 189, 217, 218, 130,\n\t\t164, 244, 4, 88, 224, 20, 8, 231, 10, 133, 57, 8, 21, 174,\n\t\t0, 133, 30, 207, 227, 247, 139, 34, 43, 243, 8, 113, 28, 199,\n\t\t33, 196, 203, 215, 207, 206, 10, 18, 47, 10, 149, 138, 32,\n\t\t242, 146, 155, 201, 8, 18, 18, 176, 105, 98, 1, 73, 219, 123,\n\t\t191, 243, 59, 61, 73, 152, 224, 37, 150, 189, 68, 70, 87,\n\t\t93, 133, 228, 75, 88, 86, 226, 39, 88, 248, 27, 122, 73, 231,\n\t\t33, 135, 144, 128, 117, 44, 32, 196, 193, 99, 221, 119, 119,\n\t\t37, 17, 9, 194, 236, 125, 179, 130, 128, 68, 175, 124, 162,\n\t\t44, 137, 8, 11, 233, 197, 180, 128, 145, 8, 128, 18, 248,\n\t\t253, 214, 6, 253, 45, 204, 149, 222, 31, 122, 153, 67, 237,\n\t\t4, 53, 67, 190, 178, 112, 52, 24, 93, 15, 48, 113, 47, 80,\n\t\t126, 161, 243, 87, 73, 52, 222, 4, 81, 36, 120, 18, 205, 247,\n\t\t194, 144, 162, 63, 40, 129, 198, 57, 69, 209, 147, 232, 191,\n\t\t111, 145, 242, 117, 178, 3, 239, 37, 87, 253, 117, 178, 243,\n\t\t158, 95, 164, 232, 178, 1, 119, 28, 10, 108, 199, 207, 2,\n\t\t131, 48, 60, 30, 0, 203, 224, 38, 0, 188, 32, 132, 177, 25,\n\t\t134, 113, 184, 37, 228, 82, 222, 97, 218, 51, 73, 4, 111,\n\t\t167, 61, 207, 116, 104, 218, 59, 57, 41, 124, 234, 240, 45,\n\t\t82, 219, 112, 123, 39, 172, 193, 106, 13, 122, 243, 44, 193,\n\t\t0, 230, 113, 213, 251, 166, 158, 212, 235, 139, 117, 61, 169,\n\t\t107, 166, 182, 229, 87, 111, 141, 89, 86, 108, 97, 86, 209,\n\t\t117, 197, 206, 59, 25, 123, 223, 77, 251, 244, 164, 126, 25,\n\t\t121, 226, 59, 201, 146, 1, 122, 82, 135, 151, 244, 100, 137,\n\t\t101, 4, 81, 225, 47, 185, 5, 246, 127, 173, 180, 84, 250,\n\t\t140, 255, 27, 127, 166, 246, 215, 146, 166, 253, 167, 91,\n\t\t47, 202, 76, 167, 77, 67, 156, 93, 208, 147, 122, 222, 78,\n\t\t85, 12, 55, 213, 220, 183, 175, 233, 31, 191, 232, 29, 228,\n\t\t185, 239, 36, 203, 63, 243, 75, 24, 8, 247, 188, 206, 230,\n\t\t44, 153, 23, 57, 200, 100, 222, 125, 140, 253, 131, 210, 82,\n\t\t137, 216, 45, 126, 186, 241, 37, 230, 157, 240, 25, 208, 4,\n\t\t187, 192, 125, 224, 65, 0, 160, 139, 155, 142, 141, 202, 36,\n\t\t233, 163, 92, 165, 227, 214, 2, 67, 236, 43, 8, 35, 220, 245,\n\t\t186, 182, 63, 188, 249, 155, 20, 16, 27, 187, 131, 236, 58,\n\t\t175, 219, 114, 43, 118, 140, 33, 232, 138, 254, 160, 77, 211,\n\t\t123, 8, 56, 60, 34, 47, 7, 58, 182, 87, 170, 186, 221, 22,\n\t\t9, 175, 109, 57, 254, 213, 112, 9, 163, 178, 77, 64, 58, 58,\n\t\t109, 23, 150, 11, 197, 157, 73, 172, 107, 154, 142, 229, 233,\n\t\t244, 117, 187, 177, 198, 206, 8, 177, 109, 147, 210, 62, 193,\n\t\t214, 24, 193, 84, 75, 19, 114, 2, 66, 94, 193, 142, 53, 59,\n\t\t45, 97, 158, 183, 42, 146, 29, 51, 37, 93, 180, 37, 28, 143,\n\t\t195, 149, 77, 103, 139, 230, 232, 217, 98, 244, 6, 217, 107,\n\t\t252, 27, 124, 154, 252, 18, 251, 151, 177, 32, 171, 43, 45,\n\t\t53, 149, 82, 157, 172, 88, 228, 120, 116, 101, 76, 44, 94,\n\t\t124, 213, 86, 204, 196, 109, 28, 55, 28, 158, 209, 100, 172,\n\t\t138, 144, 81, 37, 139, 183, 36, 9, 239, 178, 172, 152, 20,\n\t\t23, 204, 24, 108, 235, 194, 232, 153, 170, 50, 114, 38, 63,\n\t\t122, 225, 253, 102, 12, 198, 76, 43, 22, 51, 169, 13, 233,\n\t\t223, 72, 158, 253, 23, 73, 27, 221, 3, 46, 249, 95, 109, 159,\n\t\t21, 123, 128, 120, 232, 64, 18, 167, 16, 232, 3, 63, 87, 115,\n\t\t132, 159, 17, 197, 227, 130, 152, 21, 132, 227, 162, 208,\n\t\t255, 106, 86, 20, 31, 229, 36, 214, 95, 9, 191, 88, 43, 252,\n\t\t117, 65, 60, 78, 52, 177, 227, 162, 232, 95, 71, 120, 148,\n\t\t227, 178, 130, 248, 168, 24, 196, 96, 127, 46, 136, 65, 95,\n\t\t0, 183, 3, 224, 12, 108, 22, 231, 108, 120, 254, 70, 149,\n\t\t154, 252, 236, 161, 125, 211, 245, 104, 218, 216, 24, 68,\n\t\t246, 24, 244, 204, 45, 102, 12, 18, 195, 36, 14, 203, 189,\n\t\t115, 54, 136, 108, 106, 93, 29, 87, 231, 223, 162, 196, 227,\n\t\t242, 91, 63, 162, 196, 227, 202, 71, 222, 172, 36, 160, 174,\n\t\t60, 49, 38, 113, 90, 82, 124, 147, 22, 83, 150, 116, 253,\n\t\t118, 69, 191, 168, 130, 89, 81, 76, 10, 170, 202, 104, 242,\n\t\t255, 84, 119, 38, 222, 104, 89, 109, 204, 138, 146, 131, 143,\n\t\t112, 215, 9, 172, 36, 58, 248, 122, 254, 48, 217, 16, 110,\n\t\t133, 48, 238, 36, 198, 149, 56, 138, 43, 138, 142, 226, 138,\n\t\t28, 39, 11, 27, 39, 13, 22, 93, 37, 37, 222, 163, 24, 140,\n\t\t193, 233, 47, 214, 36, 7, 11, 172, 20, 151, 203, 146, 192,\n\t\t192, 184, 212, 136, 219, 202, 85, 49, 109, 183, 152, 20, 48,\n\t\t43, 221, 200, 190, 65, 74, 98, 204, 138, 167, 184, 27, 232,\n\t\t198, 59, 92, 37, 14, 117, 226, 39, 220, 248, 201, 198, 103,\n\t\t153, 30, 252, 60, 152, 37, 152, 238, 254, 188, 20, 134, 151,\n\t\t87, 89, 132, 13, 95, 0, 97, 16, 118, 220, 170, 235, 5, 105,\n\t\t7, 254, 67, 19, 138, 218, 48, 223, 170, 235, 132, 93, 181,\n\t\t219, 177, 17, 102, 182, 98, 188, 229, 248, 52, 207, 10, 170,\n\t\t96, 162, 159, 153, 137, 207, 38, 226, 182, 61, 249, 122, 93,\n\t\t125, 243, 221, 59, 98, 177, 225, 161, 206, 196, 212, 149,\n\t\t31, 124, 184, 180, 52, 151, 78, 26, 83, 110, 34, 37, 155,\n\t\t74, 34, 165, 241, 137, 111, 202, 105, 249, 242, 233, 109,\n\t\t130, 201, 75, 60, 43, 192, 155, 69, 181, 255, 3, 134, 221,\n\t\t246, 59, 113, 227, 169, 137, 91, 146, 201, 225, 161, 3, 210,\n\t\t241, 63, 170, 182, 230, 150, 196, 172, 106, 166, 18, 138,\n\t\t161, 164, 18, 233, 157, 169, 112, 108, 126, 153, 196, 171,\n\t\t164, 64, 1, 76, 144, 57, 235, 184, 175, 241, 141, 65, 203,\n\t\t173, 67, 175, 75, 34, 180, 45, 127, 28, 105, 123, 29, 175,\n\t\t219, 114, 90, 113, 191, 125, 108, 131, 84, 132, 229, 169,\n\t\t231, 47, 148, 112, 121, 95, 11, 33, 136, 66, 254, 194, 255,\n\t\t43, 119, 124, 241, 10, 107, 208, 201, 195, 5, 8, 127, 95,\n\t\t21, 61, 142, 251, 213, 180, 34, 241, 42, 191, 164, 150, 36,\n\t\t73, 189, 65, 84, 159, 91, 238, 169, 198, 36, 33, 228, 125,\n\t\t121, 125, 217, 80, 69, 202, 205, 251, 91, 18, 43, 138, 66,\n\t\t70, 226, 11, 226, 152, 146, 136, 119, 204, 171, 19, 158, 168,\n\t\t94, 126, 169, 205, 152, 230, 118, 39, 15, 87, 69, 239, 243,\n\t\t60, 123, 127, 82, 86, 120, 238, 34, 40, 49, 178, 82, 148,\n\t\t225, 85, 66, 111, 3, 4, 151, 152, 132, 224, 172, 106, 244,\n\t\t200, 182, 36, 164, 101, 69, 98, 69, 206, 85, 56, 73, 183,\n\t\t80, 252, 210, 179, 158, 120, 208, 220, 97, 91, 172, 153, 25,\n\t\t248, 55, 159, 5, 105, 194, 225, 60, 144, 186, 188, 174, 215,\n\t\t32, 174, 116, 102, 139, 237, 216, 22, 118, 49, 194, 13, 141,\n\t\t41, 83, 40, 113, 151, 64, 94, 57, 182, 147, 231, 154, 243,\n\t\t172, 215, 245, 186, 157, 118, 149, 1, 84, 224, 74, 76, 190,\n\t\t41, 171, 57, 130, 224, 104, 217, 55, 77, 38, 22, 57, 92, 222,\n\t\t239, 239, 99, 61, 174, 38, 152, 253, 101, 204, 137, 12, 59,\n\t\t190, 143, 177, 53, 199, 50, 45, 71, 179, 153, 125, 227, 44,\n\t\t67, 2, 11, 32, 78, 106, 133, 171, 44, 81, 150, 69, 235, 170,\n\t\t130, 150, 92, 68, 92, 166, 101, 137, 50, 146, 69, 13, 182,\n\t\t50, 28, 210, 24, 134, 99, 211, 77, 38, 46, 169, 8, 169, 82,\n\t\t156, 105, 166, 89, 142, 97, 162, 182, 33, 95, 254, 216, 3,\n\t\t0, 28, 50, 142, 13, 153, 199, 162, 18, 101, 16, 91, 48, 136,\n\t\t101, 35, 90, 50, 42, 85, 203, 37, 13, 134, 210, 36, 252, 164,\n\t\t105, 82, 23, 186, 73, 237, 149, 212, 78, 105, 42, 127, 78,\n\t\t152, 84, 27, 213, 44, 111, 76, 25, 124, 98, 44, 161, 138,\n\t\t159, 20, 85, 88, 232, 41, 19, 74, 143, 154, 147, 168, 216,\n\t\t73, 45, 76, 5, 66, 175, 250, 101, 35, 89, 18, 132, 88, 70,\n\t\t55, 4, 89, 30, 225, 40, 243, 37, 167, 105, 224, 129, 221,\n\t\t4, 97, 102, 147, 143, 217, 62, 183, 134, 81, 235, 193, 171,\n\t\t162, 49, 211, 87, 219, 247, 229, 88, 243, 35, 35, 245, 206,\n\t\t86, 73, 181, 207, 10, 167, 133, 77, 255, 70, 193, 222, 151,\n\t\t35, 213, 47, 37, 253, 218, 239, 212, 5, 65, 23, 14, 68, 150,\n\t\t129, 109, 102, 200, 75, 25, 97, 168, 13, 227, 151, 152, 166,\n\t\t87, 131, 229, 18, 209, 180, 202, 37, 132, 41, 67, 45, 204,\n\t\t30, 104, 183, 15, 180, 63, 241, 212, 86, 173, 93, 96, 57,\n\t\t107, 194, 226, 216, 66, 91, 11, 140, 18, 91, 218, 254, 209,\n\t\t254, 183, 247, 100, 138, 16, 99, 88, 204, 68, 241, 9, 99,\n\t\t97, 100, 220, 57, 153, 130, 254, 29, 253, 23, 212, 118, 203,\n\t\t232, 21, 222, 31, 92, 26, 122, 235, 137, 107, 155, 44, 236,\n\t\t243, 189, 37, 98, 178, 30, 168, 19, 5, 218, 85, 87, 207, 121,\n\t\t51, 1, 190, 49, 253, 174, 34, 48, 192, 24, 249, 178, 11, 224,\n\t\t210, 192, 103, 92, 236, 180, 187, 45, 118, 192, 194, 81, 185,\n\t\t0, 246, 118, 116, 59, 108, 163, 20, 192, 178, 75, 64, 99,\n\t\t131, 150, 234, 127, 220, 151, 215, 179, 102, 131, 233, 209,\n\t\t111, 12, 151, 207, 253, 154, 31, 34, 207, 243, 187, 140, 36,\n\t\t60, 35, 72, 12, 42, 89, 130, 49, 101, 8, 90, 42, 225, 127,\n\t\t102, 93, 55, 179, 253, 21, 216, 232, 63, 111, 102, 179, 63,\n\t\t59, 231, 187, 210, 39, 252, 79, 88, 85, 4, 35, 37, 8, 178,\n\t\t73, 231, 209, 117, 8, 224, 58, 72, 16, 157, 7, 24, 22, 137,\n\t\t183, 110, 144, 9, 148, 66, 68, 176, 36, 94, 28, 133, 86, 23,\n\t\t13, 147, 241, 63, 16, 45, 66, 20, 9, 251, 108, 225, 96, 7,\n\t\t118, 46, 46, 204, 45, 205, 45, 23, 235, 12, 131, 88, 204,\n\t\t10, 48, 59, 145, 133, 2, 139, 89, 196, 48, 86, 197, 218, 85,\n\t\t233, 86, 10, 70, 218, 40, 192, 229, 255, 82, 105, 116, 14,\n\t\t30, 234, 52, 198, 255, 203, 196, 220, 92, 255, 100, 189, 136,\n\t\t20, 81, 70, 34, 39, 194, 239, 248, 223, 229, 59, 80, 98, 69,\n\t\t36, 139, 50, 182, 42, 246, 82, 166, 82, 201, 84, 18, 255,\n\t\t160, 26, 134, 250, 15, 137, 72, 157, 99, 160, 228, 215, 121,\n\t\t115, 85, 188, 115, 30, 193, 98, 207, 121, 0, 255, 237, 175,\n\t\t135, 245, 41, 12, 43, 175, 159, 191, 234, 176, 88, 239, 209,\n\t\t106, 60, 225, 87, 227, 137, 68, 35, 250, 0, 19, 253, 179,\n\t\t175, 80, 255, 58, 248, 255, 186, 206, 183, 249, 117, 190,\n\t\t237, 255, 95, 117, 158, 164, 200, 199, 255, 171, 117, 198,\n\t\t32, 13, 182, 15, 53, 214, 95, 168, 174, 149, 238, 222, 159,\n\t\t167, 162, 87, 19, 37, 211, 250, 69, 42, 168, 143, 228, 169,\n\t\t108, 1, 91, 193, 46, 112, 17, 184, 4, 92, 9, 94, 3, 110, 3,\n\t\t119, 131, 55, 128, 183, 129, 71, 192, 251, 193, 175, 17, 30,\n\t\t99, 130, 139, 225, 213, 160, 71, 20, 164, 120, 57, 78, 97,\n\t\t63, 108, 135, 208, 108, 152, 40, 180, 128, 5, 86, 176, 129,\n\t\t118, 78, 215, 33, 207, 119, 115, 180, 248, 220, 211, 207,\n\t\t255, 243, 129, 129, 13, 109, 90, 195, 119, 62, 134, 77, 172,\n\t\t96, 156, 98, 146, 134, 93, 168, 245, 46, 219, 238, 77, 166,\n\t\t183, 217, 164, 48, 16, 90, 200, 242, 56, 89, 126, 152, 44,\n\t\t155, 100, 140, 93, 142, 148, 68, 207, 121, 125, 100, 155,\n\t\t46, 47, 34, 75, 39, 178, 132, 115, 143, 97, 172, 96, 19, 231,\n\t\t143, 142, 41, 181, 66, 255, 79, 97, 115, 251, 101, 21, 65,\n\t\t78, 144, 210, 3, 228, 250, 78, 100, 73, 101, 49, 242, 47,\n\t\t178, 31, 61, 195, 59, 255, 217, 193, 54, 93, 142, 248, 127,\n\t\t246, 141, 196, 152, 95, 0, 38, 60, 26, 115, 238, 127, 45,\n\t\t135, 230, 79, 17, 19, 80, 240, 41, 115, 48, 200, 203, 47,\n\t\t16, 171, 243, 6, 32, 171, 2, 13, 214, 172, 23, 167, 146, 227,\n\t\t89, 65, 80, 4, 225, 122, 209, 95, 234, 156, 42, 38, 84, 131,\n\t\t134, 17, 21, 166, 115, 5, 114, 26, 57, 185, 144, 155, 166,\n\t\t151, 56, 93, 172, 151, 164, 180, 255, 35, 241, 122, 242, 211,\n\t\t120, 221, 136, 25, 42, 225, 143, 24, 218, 255, 101, 48, 77,\n\t\t218, 26, 224, 81, 137, 192, 49, 52, 45, 19, 85, 73, 254, 92,\n\t\t213, 165, 76, 254, 142, 237, 111, 251, 10, 64, 167, 237, 250,\n\t\t186, 57, 74, 208, 20, 27, 228, 146, 84, 222, 78, 187, 198,\n\t\t82, 52, 25, 199, 182, 236, 144, 97, 59, 180, 104, 64, 25,\n\t\t93, 140, 176, 182, 170, 253, 18, 143, 52, 204, 241, 181, 227,\n\t\t59, 183, 94, 10, 153, 6, 207, 97, 13, 241, 185, 237, 147,\n\t\t149, 14, 195, 240, 207, 60, 180, 111, 142, 69, 144, 131, 149,\n\t\t153, 68, 113, 186, 155, 189, 232, 214, 169, 113, 22, 114,\n\t\t16, 177, 91, 247, 126, 145, 244, 169, 73, 199, 73, 93, 225,\n\t\t204, 204, 56, 87, 124, 156, 231, 164, 152, 128, 166, 231,\n\t\t119, 94, 193, 48, 151, 108, 221, 53, 131, 132, 152, 196, 241,\n\t\t185, 137, 201, 173, 12, 211, 169, 76, 67, 246, 161, 107, 23,\n\t\t239, 200, 48, 28, 151, 49, 147, 71, 106, 185, 206, 76, 33,\n\t\t113, 235, 129, 217, 35, 73, 134, 53, 82, 28, 199, 100, 238,\n\t\t88, 188, 54, 71, 186, 116, 16, 39, 25, 230, 79, 156, 35, 103,\n\t\t240, 29, 10, 174, 21, 69, 26, 128, 167, 149, 254, 153, 77,\n\t\t140, 235, 132, 184, 34, 226, 23, 4, 203, 32, 54, 130, 20,\n\t\t66, 35, 197, 34, 87, 89, 206, 154, 68, 98, 43, 208, 88, 219,\n\t\t97, 46, 87, 60, 240, 198, 16, 199, 20, 17, 105, 58, 1, 94,\n\t\t226, 102, 252, 68, 42, 70, 180, 124, 177, 188, 81, 47, 62,\n\t\t79, 109, 153, 35, 240, 6, 123, 148, 191, 81, 126, 6, 79, 251,\n\t\t5, 207, 23, 235, 190, 208, 250, 104, 196, 234, 217, 80, 148,\n\t\t118, 152, 67, 18, 198, 64, 70, 113, 179, 222, 10, 222, 23,\n\t\t214, 99, 232, 216, 116, 172, 32, 165, 170, 211, 106, 70, 194,\n\t\t119, 127, 238, 253, 74, 203, 42, 71, 178, 177, 218, 222, 47,\n\t\t184, 239, 191, 119, 242, 8, 103, 205, 236, 50, 74, 160, 169,\n\t\t41, 148, 64, 23, 90, 247, 243, 175, 120, 24, 37, 224, 233,\n\t\t161, 200, 151, 61, 162, 32, 132, 26, 8, 221, 114, 129, 181,\n\t\t210, 64, 8, 249, 219, 203, 23, 222, 32, 109, 96, 227, 167,\n\t\t27, 235, 240, 75, 112, 29, 252, 103, 146, 211, 76, 250, 121,\n\t\t24, 61, 205, 88, 3, 120, 163, 193, 0, 129, 67, 176, 163, 206,\n\t\t144, 70, 34, 204, 1, 161, 88, 179, 99, 208, 11, 140, 102,\n\t\t221, 65, 94, 72, 213, 157, 135, 11, 176, 155, 135, 99, 76,\n\t\t135, 48, 220, 117, 199, 134, 46, 92, 143, 206, 6, 49, 104,\n\t\t209, 159, 251, 181, 8, 147, 54, 7, 186, 172, 19, 192, 66,\n\t\t197, 32, 124, 26, 177, 172, 142, 181, 34, 98, 16, 138, 33,\n\t\t5, 26, 11, 29, 158, 151, 121, 149, 51, 37, 84, 192, 162, 201,\n\t\t171, 156, 194, 243, 221, 5, 131, 145, 81, 12, 33, 136, 139,\n\t\t26, 214, 5, 173, 148, 198, 136, 225, 160, 140, 247, 245, 122,\n\t\t251, 176, 12, 57, 6, 225, 116, 73, 19, 232, 165, 88, 158,\n\t\t139, 113, 2, 130, 198, 66, 151, 227, 20, 89, 54, 137, 123,\n\t\t216, 228, 52, 78, 225, 184, 238, 130, 1, 21, 255, 90, 12,\n\t\t242, 175, 133, 213, 243, 94, 235, 86, 86, 229, 51, 42, 54,\n\t\t211, 72, 102, 56, 6, 163, 253, 227, 71, 58, 188, 202, 203,\n\t\t60, 111, 80, 52, 8, 131, 86, 179, 123, 100, 124, 63, 194,\n\t\t12, 7, 21, 148, 54, 177, 154, 81, 5, 3, 147, 170, 98, 198,\n\t\t168, 84, 12, 6, 163, 24, 146, 25, 108, 8, 42, 185, 154, 95,\n\t\t43, 14, 50, 136, 11, 175, 167, 40, 35, 215, 227, 59, 193,\n\t\t245, 24, 249, 21, 175, 71, 98, 202, 62, 199, 136, 240, 171,\n\t\t192, 4, 0, 218, 8, 107, 176, 58, 248, 156, 174, 63, 56, 194,\n\t\t179, 19, 102, 99, 252, 68, 101, 93, 112, 196, 150, 32, 254,\n\t\t133, 165, 142, 111, 121, 4, 174, 77, 61, 178, 101, 92, 181,\n\t\t254, 66, 20, 90, 162, 35, 172, 87, 78, 140, 55, 204, 97, 76,\n\t\t236, 26, 124, 22, 76, 129, 29, 0, 24, 100, 152, 29, 48, 54,\n\t\t144, 140, 220, 110, 211, 177, 236, 166, 55, 207, 116, 186,\n\t\t65, 202, 115, 167, 219, 52, 106, 144, 70, 196, 7, 221, 213,\n\t\t123, 94, 175, 20, 84, 24, 147, 122, 82, 12, 170, 214, 88,\n\t\t92, 103, 102, 24, 168, 65, 200, 177, 254, 6, 134, 26, 100,\n\t\t102, 222, 48, 83, 50, 166, 182, 18, 134, 175, 57, 89, 131,\n\t\t240, 19, 215, 151, 92, 79, 121, 81, 138, 197, 164, 23, 133,\n\t\t220, 84, 186, 116, 125, 76, 127, 47, 195, 200, 251, 183, 67,\n\t\t93, 23, 222, 201, 48, 239, 213, 251, 47, 148, 143, 29, 90,\n\t\t116, 105, 76, 131, 46, 1, 72, 252, 113, 255, 10, 63, 13, 92,\n\t\t26, 121, 21, 37, 46, 109, 53, 187, 94, 215, 197, 104, 19,\n\t\t64, 50, 4, 187, 239, 217, 253, 254, 91, 175, 223, 47, 137,\n\t\t19, 130, 208, 88, 216, 247, 26, 8, 111, 222, 187, 216, 152,\n\t\t146, 21, 253, 157, 146, 150, 151, 199, 247, 195, 167, 23,\n\t\t239, 221, 125, 235, 251, 123, 130, 56, 33, 224, 169, 27, 246,\n\t\t238, 191, 17, 194, 153, 41, 57, 175, 73, 239, 212, 21, 121,\n\t\t124, 111, 36, 15, 71, 4, 22, 193, 16, 221, 11, 128, 51, 208,\n\t\t186, 40, 178, 244, 78, 18, 40, 140, 47, 176, 189, 105, 116,\n\t\t30, 224, 201, 21, 66, 136, 24, 168, 139, 17, 1, 37, 92, 5,\n\t\t236, 174, 35, 32, 115, 58, 92, 234, 63, 105, 102, 179, 208,\n\t\t60, 235, 23, 95, 104, 241, 196, 40, 252, 220, 168, 79, 63,\n\t\t75, 24, 222, 137, 222, 76, 191, 32, 205, 254, 236, 14, 18,\n\t\t172, 60, 158, 120, 130, 237, 86, 115, 62, 112, 18, 19, 172,\n\t\t178, 32, 49, 187, 11, 239, 221, 178, 184, 237, 106, 141, 145,\n\t\t182, 34, 12, 227, 143, 92, 117, 227, 129, 241, 240, 125, 245,\n\t\t255, 194, 95, 78, 109, 89, 116, 247, 52, 196, 77, 39, 192,\n\t\t237, 179, 251, 231, 68, 145, 63, 126, 239, 222, 241, 240,\n\t\t253, 191, 33, 47, 79, 205, 22, 183, 86, 70, 138, 253, 186,\n\t\t234, 27, 235, 240, 15, 225, 58, 40, 145, 28, 204, 192, 142,\n\t\t236, 69, 50, 10, 252, 177, 222, 14, 178, 195, 153, 104, 254,\n\t\t211, 118, 216, 132, 79, 158, 250, 216, 169, 155, 15, 102,\n\t\t21, 229, 1, 69, 201, 206, 205, 100, 72, 252, 79, 14, 150,\n\t\t158, 36, 217, 23, 202, 132, 114, 250, 216, 169, 83, 199, 14,\n\t\t255, 146, 82, 162, 33, 78, 37, 113, 60, 67, 130, 131, 114,\n\t\t176, 117, 195, 25, 78, 16, 184, 51, 74, 216, 71, 126, 6, 127,\n\t\t2, 223, 14, 44, 176, 5, 128, 74, 24, 189, 49, 144, 176, 252,\n\t\t145, 143, 32, 180, 134, 177, 164, 52, 157, 33, 180, 10, 88,\n\t\t240, 7, 143, 203, 121, 202, 39, 154, 151, 31, 199, 253, 175,\n\t\t40, 151, 251, 98, 186, 63, 135, 251, 250, 197, 229, 202, 199,\n\t\t31, 151, 21, 125, 89, 147, 150, 37, 109, 89, 87, 228, 199,\n\t\t177, 249, 81, 101, 110, 98, 125, 98, 78, 153, 80, 12, 117,\n\t\t93, 53, 6, 245, 248, 17, 241, 115, 102, 252, 122, 20, 195,\n\t\t215, 16, 226, 69, 6, 233, 242, 254, 247, 171, 146, 49, 127,\n\t\t83, 53, 29, 184, 54, 188, 37, 169, 194, 113, 140, 35, 53,\n\t\t27, 220, 108, 130, 222, 252, 171, 216, 196, 163, 21, 163,\n\t\t56, 235, 126, 251, 249, 52, 24, 247, 251, 95, 180, 189, 44,\n\t\t64, 183, 234, 34, 135, 122, 80, 8, 173, 11, 177, 237, 67,\n\t\t112, 211, 254, 65, 203, 152, 106, 44, 238, 189, 25, 194, 215,\n\t\t236, 91, 104, 8, 194, 132, 40, 237, 191, 254, 214, 247, 255,\n\t\t42, 124, 122, 216, 20, 166, 102, 32, 188, 113, 255, 222, 27,\n\t\t166, 176, 48, 33, 10, 189, 247, 255, 233, 251, 65, 4, 167,\n\t\t170, 65, 124, 10, 135, 66, 228, 14, 34, 157, 180, 187, 30,\n\t\t53, 179, 7, 232, 38, 221, 78, 59, 200, 147, 199, 145, 101,\n\t\t104, 50, 162, 36, 30, 136, 64, 188, 184, 97, 120, 201, 115,\n\t\t233, 242, 84, 190, 127, 58, 63, 85, 78, 231, 166, 242, 154,\n\t\t237, 166, 245, 98, 61, 38, 162, 137, 57, 132, 210, 174, 173,\n\t\t229, 167, 250, 255, 68, 60, 91, 171, 144, 231, 158, 228, 120,\n\t\t40, 236, 152, 219, 81, 33, 37, 71, 185, 137, 76, 126, 106,\n\t\t42, 159, 153, 224, 236, 114, 126, 202, 200, 165, 221, 122,\n\t\t49, 101, 49, 115, 19, 177, 184, 155, 206, 25, 83, 249, 242,\n\t\t213, 196, 133, 245, 0, 135, 49, 103, 21, 10, 203, 212, 157,\n\t\t199, 13, 108, 58, 84, 254, 106, 211, 152, 148, 145, 212, 143,\n\t\t86, 101, 84, 0, 179, 66, 118, 79, 108, 21, 3, 114, 12, 12,\n\t\t207, 102, 205, 254, 170, 47, 82, 232, 245, 34, 124, 50, 220,\n\t\t129, 171, 102, 182, 191, 78, 194, 25, 246, 192, 229, 19, 130,\n\t\t240, 240, 132, 32, 20, 168, 77, 20, 16, 225, 108, 41, 220,\n\t\t206, 154, 123, 72, 120, 196, 114, 99, 37, 56, 143, 250, 113,\n\t\t250, 27, 159, 37, 220, 171, 42, 137, 215, 153, 32, 186, 224,\n\t\t0, 101, 206, 54, 171, 228, 19, 83, 190, 219, 46, 1, 50, 138,\n\t\t49, 157, 50, 118, 188, 14, 252, 231, 154, 40, 188, 78, 20,\n\t\t107, 218, 132, 182, 67, 251, 27, 178, 221, 255, 233, 41, 37,\n\t\t193, 216, 215, 152, 210, 71, 36, 83, 250, 200, 248, 184, 82,\n\t\t232, 193, 102, 77, 20, 95, 39, 136, 53, 77, 219, 161, 77,\n\t\t100, 201, 118, 255, 167, 54, 147, 80, 78, 21, 130, 243, 78,\n\t\t54, 122, 5, 101, 28, 4, 56, 40, 180, 62, 24, 196, 1, 128,\n\t\t14, 189, 51, 17, 57, 170, 4, 239, 164, 188, 218, 255, 254,\n\t\t61, 138, 14, 85, 248, 183, 154, 182, 117, 117, 171, 54, 161,\n\t\t193, 27, 87, 251, 223, 87, 161, 174, 220, 3, 39, 181, 9, 82,\n\t\t168, 69, 174, 245, 44, 16, 73, 14, 206, 224, 26, 120, 140,\n\t\t120, 2, 145, 63, 22, 18, 4, 138, 224, 121, 225, 63, 135, 87,\n\t\t252, 163, 43, 46, 251, 98, 233, 158, 186, 162, 67, 222, 43,\n\t\t157, 113, 110, 33, 96, 122, 175, 151, 139, 240, 254, 240,\n\t\t250, 19, 151, 95, 246, 197, 146, 199, 67, 93, 169, 223, 83,\n\t\t58, 99, 223, 34, 203, 142, 172, 220, 175, 80, 89, 93, 221,\n\t\t248, 111, 224, 135, 112, 13, 24, 0, 120, 52, 66, 167, 20,\n\t\t50, 137, 251, 227, 196, 227, 53, 93, 145, 143, 97, 19, 31,\n\t\t147, 21, 189, 166, 204, 41, 183, 228, 229, 99, 24, 31, 147,\n\t\t243, 176, 166, 40, 254, 220, 15, 14, 195, 117, 216, 34, 191,\n\t\t167, 132, 95, 109, 202, 248, 85, 36, 184, 135, 239, 140, 158,\n\t\t126, 102, 243, 197, 124, 93, 1, 28, 134, 207, 194, 150, 47,\n\t\t59, 84, 200, 184, 149, 135, 136, 142, 19, 36, 242, 177, 5,\n\t\t183, 229, 229, 99, 60, 203, 242, 199, 228, 124, 255, 235,\n\t\t138, 242, 61, 114, 13, 94, 81, 248, 193, 69, 130, 231, 56,\n\t\t11, 126, 8, 127, 195, 175, 135, 65, 227, 136, 154, 33, 59,\n\t\t248, 52, 44, 117, 78, 108, 190, 53, 76, 135, 53, 243, 175,\n\t\t58, 208, 91, 72, 110, 213, 246, 48, 26, 171, 68, 80, 63, 70,\n\t\t166, 110, 47, 156, 108, 66, 24, 16, 10, 188, 66, 134, 156,\n\t\t64, 158, 132, 235, 154, 180, 226, 207, 209, 183, 223, 238,\n\t\t15, 34, 43, 100, 62, 247, 183, 243, 23, 42, 63, 249, 115,\n\t\t156, 19, 45, 143, 228, 234, 88, 132, 251, 16, 140, 210, 143,\n\t\t16, 59, 78, 171, 105, 71, 44, 255, 67, 230, 194, 129, 122,\n\t\t180, 228, 182, 221, 37, 51, 251, 135, 36, 228, 235, 0, 250,\n\t\t36, 66, 159, 68, 112, 105, 168, 209, 165, 93, 55, 157, 109,\n\t\t147, 136, 176, 155, 76, 132, 76, 4, 232, 247, 102, 32, 108,\n\t\t129, 12, 225, 180, 160, 2, 118, 0, 67, 16, 249, 248, 45, 120,\n\t\t42, 124, 189, 63, 26, 108, 64, 59, 250, 13, 70, 62, 72, 248,\n\t\t13, 63, 7, 126, 8, 159, 245, 175, 237, 69, 155, 98, 103, 228,\n\t\t131, 90, 127, 126, 193, 203, 236, 59, 247, 166, 163, 49, 131,\n\t\t233, 33, 234, 59, 182, 134, 128, 103, 65, 60, 117, 128, 242,\n\t\t254, 129, 253, 2, 66, 247, 10, 194, 189, 8, 9, 251, 149, 158,\n\t\t18, 96, 186, 191, 253, 190, 24, 239, 151, 242, 177, 251, 148,\n\t\t205, 177, 136, 105, 0, 194, 236, 116, 130, 31, 71, 99, 112,\n\t\t9, 96, 220, 78, 216, 134, 183, 158, 115, 129, 185, 243, 222,\n\t\t105, 243, 53, 7, 17, 149, 45, 203, 244, 43, 90, 135, 46, 10,\n\t\t130, 190, 127, 237, 156, 75, 6, 222, 132, 87, 187, 102, 55,\n\t\t48, 97, 121, 29, 202, 201, 23, 131, 200, 14, 34, 200, 133,\n\t\t243, 94, 224, 202, 243, 60, 61, 51, 192, 37, 177, 64, 147,\n\t\t50, 152, 213, 135, 58, 92, 208, 37, 216, 238, 64, 186, 12,\n\t\t231, 11, 18, 108, 27, 47, 118, 218, 30, 211, 203, 203, 227,\n\t\t63, 196, 38, 118, 48, 254, 145, 223, 212, 87, 37, 237, 9,\n\t\t57, 63, 176, 40, 76, 232, 138, 172, 99, 169, 255, 19, 216,\n\t\t195, 240, 241, 85, 191, 233, 255, 8, 99, 7, 155, 248, 135,\n\t\t126, 103, 232, 111, 40, 170, 254, 100, 216, 82, 243, 178,\n\t\t142, 251, 235, 167, 37, 12, 64, 52, 71, 50, 70, 226, 248,\n\t\t55, 219, 12, 202, 165, 104, 176, 55, 197, 243, 27, 97, 88,\n\t\t56, 225, 119, 180, 194, 115, 162, 56, 38, 136, 207, 21, 124,\n\t\t1, 49, 74, 170, 48, 158, 247, 143, 9, 99, 162, 127, 140, 244,\n\t\t208, 224, 158, 63, 100, 0, 124, 15, 176, 192, 52, 0, 241,\n\t\t78, 64, 148, 49, 236, 31, 197, 146, 203, 135, 210, 246, 72,\n\t\t87, 209, 36, 120, 50, 47, 47, 97, 188, 36, 231, 251, 103,\n\t\t36, 141, 154, 192, 250, 103, 194, 50, 152, 212, 37, 173, 161,\n\t\t43, 242, 18, 54, 241, 146, 172, 232, 13, 237, 189, 196, 182,\n\t\t53, 82, 54, 200, 119, 93, 37, 184, 140, 190, 76, 152, 103,\n\t\t34, 242, 72, 155, 38, 85, 57, 129, 24, 66, 155, 252, 16, 230,\n\t\t112, 12, 218, 30, 147, 206, 213, 50, 7, 59, 253, 211, 59,\n\t\t46, 239, 78, 93, 183, 56, 115, 177, 149, 204, 77, 204, 189,\n\t\t11, 11, 242, 46, 18, 154, 187, 75, 22, 240, 107, 101, 249,\n\t\t59, 252, 120, 55, 223, 57, 120, 249, 142, 250, 197, 49, 158,\n\t\t93, 188, 110, 102, 92, 159, 155, 72, 220, 134, 77, 130, 18,\n\t\t177, 98, 250, 231, 252, 66, 117, 25, 105, 133, 65, 74, 199,\n\t\t249, 235, 242, 97, 90, 131, 215, 14, 170, 116, 254, 186, 28,\n\t\t49, 233, 89, 65, 141, 134, 113, 74, 126, 123, 101, 1, 6, 50,\n\t\t136, 3, 135, 32, 197, 58, 229, 106, 217, 41, 122, 229, 22,\n\t\t46, 91, 45, 199, 70, 85, 182, 200, 162, 82, 117, 1, 182, 48,\n\t\t114, 225, 223, 93, 117, 243, 222, 198, 222, 254, 247, 247,\n\t\t174, 46, 237, 189, 249, 230, 55, 66, 30, 238, 135, 201, 71,\n\t\t32, 7, 119, 191, 241, 230, 111, 65, 30, 174, 175, 249, 255,\n\t\t21, 126, 198, 176, 12, 216, 232, 127, 158, 97, 22, 127, 182,\n\t\t193, 176, 32, 200, 125, 251, 28, 220, 75, 112, 137, 124, 233,\n\t\t60, 156, 83, 67, 174, 72, 95, 75, 109, 53, 109, 184, 237,\n\t\t164, 96, 10, 39, 37, 69, 239, 93, 206, 179, 115, 8, 9, 95,\n\t\t144, 180, 158, 174, 204, 173, 8, 194, 138, 156, 131, 58, 55,\n\t\t199, 199, 52, 169, 255, 116, 110, 144, 79, 183, 23, 62, 75,\n\t\t226, 237, 237, 33, 71, 12, 137, 153, 141, 7, 99, 164, 3, 183,\n\t\t249, 151, 211, 164, 47, 8, 8, 205, 177, 252, 229, 61, 93,\n\t\t145, 252, 187, 192, 3, 114, 174, 255, 180, 164, 197, 248,\n\t\t57, 14, 234, 57, 121, 197, 151, 170, 96, 240, 94, 158, 245,\n\t\t117, 87, 208, 180, 135, 72, 22, 109, 106, 144, 109, 109, 214,\n\t\t16, 59, 109, 120, 219, 155, 175, 34, 240, 118, 211, 249, 220,\n\t\t20, 241, 2, 211, 222, 113, 22, 174, 95, 185, 176, 228, 55,\n\t\t222, 165, 252, 212, 116, 126, 127, 214, 36, 222, 228, 117,\n\t\t51, 187, 175, 23, 246, 203, 207, 145, 57, 203, 1, 99, 0, 56,\n\t\t53, 20, 68, 224, 104, 60, 70, 165, 80, 242, 253, 88, 114,\n\t\t103, 186, 36, 171, 236, 202, 218, 10, 171, 202, 165, 244,\n\t\t206, 36, 78, 155, 4, 62, 163, 91, 62, 49, 222, 177, 75, 169,\n\t\t248, 210, 202, 202, 82, 60, 85, 178, 59, 227, 39, 202, 210,\n\t\t75, 81, 12, 153, 141, 117, 184, 76, 100, 242, 75, 7, 217,\n\t\t171, 248, 92, 210, 159, 14, 165, 90, 12, 102, 109, 155, 142,\n\t\t1, 221, 22, 162, 199, 155, 182, 21, 102, 213, 108, 90, 155,\n\t\t112, 9, 139, 199, 119, 205, 13, 162, 210, 231, 118, 29, 39,\n\t\t128, 127, 139, 91, 182, 94, 46, 226, 147, 132, 47, 234, 10,\n\t\t89, 190, 34, 252, 131, 64, 196, 141, 197, 27, 197, 18, 57,\n\t\t139, 44, 74, 226, 109, 123, 136, 149, 101, 170, 117, 132,\n\t\t67, 135, 231, 26, 88, 92, 155, 155, 88, 243, 117, 47, 65,\n\t\t23, 10, 193, 223, 196, 48, 23, 162, 71, 108, 146, 206, 72,\n\t\t70, 82, 48, 152, 133, 232, 195, 94, 156, 100, 213, 199, 201,\n\t\t236, 30, 162, 23, 100, 205, 27, 137, 54, 112, 90, 249, 138,\n\t\t162, 124, 69, 25, 117, 237, 246, 105, 82, 210, 149, 112, 78,\n\t\t81, 250, 95, 81, 66, 158, 134, 85, 184, 10, 114, 96, 22, 52,\n\t\t137, 55, 119, 15, 184, 40, 64, 175, 30, 228, 191, 135, 156,\n\t\t35, 52, 65, 140, 176, 4, 141, 178, 10, 180, 218, 110, 185,\n\t\t211, 236, 118, 202, 97, 221, 248, 78, 9, 89, 94, 167, 108,\n\t\t218, 112, 89, 16, 122, 130, 160, 51, 44, 199, 10, 12, 23,\n\t\t67, 88, 19, 160, 238, 107, 126, 47, 19, 90, 104, 189, 87,\n\t\t201, 100, 42, 189, 239, 145, 183, 8, 87, 50, 149, 94, 175,\n\t\t178, 38, 16, 7, 173, 7, 89, 18, 21, 33, 113, 194, 137, 179,\n\t\t81, 26, 233, 254, 147, 153, 202, 90, 37, 179, 1, 72, 172,\n\t\t244, 13, 189, 74, 230, 108, 47, 83, 33, 242, 244, 191, 110,\n\t\t124, 154, 121, 27, 252, 50, 80, 125, 61, 161, 210, 245, 28,\n\t\t90, 247, 5, 216, 117, 72, 36, 75, 0, 248, 239, 192, 110, 136,\n\t\t46, 229, 143, 69, 80, 137, 25, 75, 111, 248, 160, 193, 37,\n\t\t121, 99, 69, 87, 224, 127, 224, 25, 110, 128, 241, 175, 194,\n\t\t215, 228, 226, 59, 52, 220, 16, 140, 147, 198, 205, 187, 177,\n\t\t60, 127, 220, 56, 105, 8, 13, 172, 61, 194, 169, 124, 90,\n\t\t145, 224, 151, 8, 186, 127, 255, 197, 241, 74, 83, 142, 175,\n\t\t36, 248, 36, 103, 172, 173, 130, 17, 14, 14, 26, 7, 241, 11,\n\t\t69, 64, 68, 61, 248, 31, 125, 117, 191, 253, 249, 28, 246,\n\t\t112, 99, 99, 227, 219, 12, 128, 191, 13, 10, 0, 24, 68, 67,\n\t\t206, 115, 129, 251, 98, 30, 214, 184, 106, 48, 37, 9, 79,\n\t\t42, 217, 246, 210, 161, 102, 190, 81, 150, 45, 78, 68, 216,\n\t\t202, 215, 186, 165, 172, 242, 164, 0, 153, 51, 146, 26, 91,\n\t\t130, 98, 106, 114, 113, 102, 230, 138, 148, 160, 41, 99, 77,\n\t\t55, 103, 168, 60, 60, 17, 83, 165, 51, 216, 166, 125, 80,\n\t\t223, 248, 12, 124, 137, 228, 215, 140, 1, 64, 72, 20, 52,\n\t\t22, 163, 106, 141, 237, 180, 231, 89, 50, 64, 177, 243, 208,\n\t\t171, 194, 175, 107, 122, 190, 182, 115, 107, 54, 145, 152,\n\t\t58, 220, 171, 178, 60, 22, 209, 186, 96, 10, 137, 131, 55,\n\t\t50, 79, 194, 59, 248, 100, 108, 225, 222, 203, 118, 79, 202,\n\t\t130, 16, 223, 125, 253, 131, 251, 145, 44, 9, 152, 89, 226,\n\t\t184, 254, 190, 202, 111, 222, 113, 49, 136, 114, 168, 70,\n\t\t251, 198, 224, 125, 70, 250, 70, 185, 232, 247, 141, 86, 177,\n\t\t9, 79, 15, 7, 171, 255, 72, 58, 199, 243, 74, 255, 105, 69,\n\t\t129, 7, 94, 173, 123, 68, 226, 29, 84, 144, 7, 46, 168, 129,\n\t\t69, 138, 78, 77, 188, 64, 216, 191, 111, 213, 237, 180, 43,\n\t\t132, 222, 215, 38, 52, 122, 94, 119, 75, 13, 134, 96, 101,\n\t\t221, 16, 124, 174, 91, 99, 170, 46, 138, 65, 255, 60, 167,\n\t\t213, 237, 12, 200, 159, 202, 37, 28, 230, 14, 60, 241, 226,\n\t\t19, 85, 49, 209, 223, 147, 16, 171, 176, 32, 106, 162, 161,\n\t\t138, 162, 200, 64, 86, 255, 38, 169, 244, 110, 178, 132, 14,\n\t\t132, 28, 230, 164, 4, 187, 51, 85, 22, 239, 18, 157, 67, 82,\n\t\t220, 239, 22, 60, 170, 209, 227, 107, 79, 188, 254, 200, 238,\n\t\t88, 108, 247, 145, 215, 223, 38, 106, 162, 106, 160, 44, 100,\n\t\t25, 89, 237, 159, 141, 68, 242, 118, 120, 73, 64, 12, 43,\n\t\t138, 79, 51, 149, 84, 60, 22, 139, 231, 140, 183, 198, 140,\n\t\t180, 193, 124, 119, 4, 175, 186, 7, 87, 1, 75, 252, 34, 192,\n\t\t40, 90, 197, 113, 211, 110, 13, 112, 85, 72, 221, 59, 97,\n\t\t188, 81, 169, 58, 10, 65, 212, 89, 133, 189, 254, 58, 60,\n\t\t157, 53, 105, 232, 134, 255, 134, 179, 38, 60, 107, 102, 205,\n\t\t67, 97, 18, 60, 92, 146, 52, 88, 88, 191, 111, 34, 27, 120,\n\t\t133, 194, 13, 130, 216, 74, 48, 138, 34, 24, 21, 216, 215,\n\t\t14, 198, 95, 1, 9, 10, 238, 32, 185, 96, 122, 231, 32, 253,\n\t\t164, 7, 59, 94, 249, 80, 121, 141, 164, 130, 221, 119, 176,\n\t\t67, 198, 71, 189, 115, 80, 215, 7, 178, 98, 224, 251, 58,\n\t\t79, 175, 244, 117, 240, 11, 165, 8, 142, 248, 195, 14, 237,\n\t\t222, 45, 138, 19, 162, 184, 184, 72, 86, 35, 123, 163, 110,\n\t\t178, 254, 119, 207, 119, 78, 176, 23, 137, 47, 42, 0, 23,\n\t\t204, 0, 80, 177, 29, 138, 242, 87, 69, 216, 109, 123, 132,\n\t\t171, 176, 219, 116, 8, 115, 161, 109, 98, 183, 90, 233, 86,\n\t\t177, 141, 61, 228, 120, 174, 7, 87, 140, 226, 129, 155, 110,\n\t\t58, 80, 48, 115, 241, 108, 183, 155, 213, 115, 70, 225, 192,\n\t\t87, 14, 20, 140, 156, 158, 237, 122, 153, 120, 127, 35, 149,\n\t\t26, 179, 173, 31, 167, 82, 121, 203, 190, 188, 58, 182, 111,\n\t\t223, 88, 85, 43, 102, 247, 252, 222, 158, 76, 49, 230, 230,\n\t\t247, 237, 27, 115, 181, 98, 198, 223, 45, 37, 14, 31, 150,\n\t\t118, 239, 62, 125, 248, 176, 180, 184, 39, 224, 218, 167,\n\t\t245, 226, 128, 4, 98, 132, 89, 209, 175, 225, 52, 0, 6, 194,\n\t\t213, 174, 83, 237, 122, 182, 195, 59, 8, 119, 249, 170, 103,\n\t\t251, 245, 67, 126, 229, 170, 93, 15, 85, 28, 236, 86, 187,\n\t\t142, 63, 4, 127, 131, 153, 58, 210, 185, 173, 182, 21, 94,\n\t\t182, 208, 255, 205, 35, 222, 97, 9, 238, 168, 61, 214, 230,\n\t\t110, 248, 80, 109, 142, 185, 108, 1, 94, 231, 23, 245, 191,\n\t\t64, 138, 158, 241, 79, 133, 127, 120, 216, 59, 50, 243, 39,\n\t\t181, 125, 55, 112, 237, 210, 145, 41, 102, 239, 135, 107,\n\t\t143, 45, 92, 198, 204, 108, 42, 128, 255, 183, 127, 90, 232,\n\t\t211, 29, 198, 103, 57, 209, 8, 173, 176, 119, 117, 3, 252,\n\t\t182, 112, 159, 70, 104, 221, 78, 58, 13, 181, 132, 5, 64,\n\t\t239, 84, 157, 170, 146, 162, 171, 72, 209, 147, 145, 184,\n\t\t119, 97, 99, 29, 254, 27, 92, 7, 69, 176, 27, 28, 4, 215,\n\t\t131, 123, 193, 59, 0, 160, 198, 128, 206, 192, 83, 23, 164,\n\t\t106, 134, 49, 122, 118, 12, 58, 110, 117, 115, 38, 103, 8,\n\t\t34, 19, 131, 166, 83, 238, 86, 157, 32, 227, 204, 177, 7,\n\t\t51, 239, 66, 120, 169, 242, 121, 202, 170, 101, 255, 103,\n\t\t81, 3, 244, 161, 18, 43, 160, 150, 141, 80, 14, 217, 40, 135,\n\t\t144, 221, 66, 2, 91, 122, 7, 132, 92, 150, 115, 184, 54, 231,\n\t\t112, 89, 22, 166, 148, 71, 85, 88, 207, 139, 138, 248, 0,\n\t\t228, 254, 43, 7, 53, 238, 247, 184, 31, 179, 232, 111, 16,\n\t\t107, 163, 167, 144, 147, 142, 191, 37, 158, 70, 232, 52, 122,\n\t\t241, 122, 36, 229, 145, 131, 178, 8, 101, 145, 131, 242, 18,\n\t\t186, 254, 106, 200, 236, 227, 184, 177, 49, 250, 183, 143,\n\t\t129, 241, 249, 118, 103, 103, 57, 159, 71, 162, 248, 70, 200,\n\t\t148, 57, 174, 204, 64, 57, 198, 113, 49, 134, 157, 66, 104,\n\t\t138, 101, 52, 255, 215, 207, 221, 218, 106, 221, 138, 168,\n\t\t33, 129, 25, 200, 54, 174, 175, 63, 26, 181, 208, 109, 231,\n\t\t207, 73, 182, 131, 9, 35, 105, 115, 1, 218, 3, 106, 170, 78,\n\t\t123, 30, 26, 102, 153, 26, 133, 138, 77, 235, 141, 74, 204,\n\t\t137, 55, 244, 100, 76, 25, 47, 60, 192, 48, 26, 195, 51, 119,\n\t\t231, 114, 185, 167, 115, 185, 98, 231, 172, 210, 255, 166,\n\t\t162, 192, 9, 5, 222, 195, 89, 106, 220, 113, 226, 170, 197,\n\t\t165, 182, 62, 192, 240, 140, 198, 48, 119, 47, 180, 220, 9,\n\t\t97, 219, 54, 97, 194, 117, 175, 57, 220, 191, 147, 16, 209,\n\t\t1, 224, 207, 140, 193, 24, 67, 117, 132, 24, 48, 128, 3, 50,\n\t\t36, 27, 124, 200, 224, 191, 29, 44, 144, 156, 182, 131, 224,\n\t\t40, 184, 12, 28, 7, 87, 131, 235, 193, 141, 224, 86, 112,\n\t\t59, 120, 29, 184, 23, 188, 30, 188, 17, 188, 21, 0, 175, 101,\n\t\t149, 139, 229, 78, 171, 210, 178, 202, 149, 114, 167, 21,\n\t\t247, 183, 59, 45, 43, 100, 53, 49, 172, 114, 167, 108, 149,\n\t\t59, 132, 4, 44, 32, 233, 133, 193, 62, 249, 77, 203, 42, 179,\n\t\t229, 14, 33, 9, 171, 88, 229, 78, 49, 248, 13, 111, 149, 59,\n\t\t228, 88, 203, 42, 87, 91, 86, 217, 191, 79, 213, 42, 119,\n\t\t188, 114, 167, 133, 203, 157, 150, 211, 105, 89, 184, 211,\n\t\t178, 214, 123, 61, 216, 235, 245, 250, 160, 215, 99, 64, 175,\n\t\t215, 235, 109, 128, 94, 127, 189, 215, 235, 173, 147, 255,\n\t\t201, 102, 15, 2, 127, 115, 149, 108, 248, 255, 173, 250, 229,\n\t\t254, 207, 194, 245, 122, 80, 76, 55, 87, 233, 38, 45, 244,\n\t\t79, 89, 37, 151, 237, 133, 183, 240, 111, 6, 253, 171, 195,\n\t\t85, 186, 179, 74, 239, 177, 17, 108, 146, 219, 172, 6, 149,\n\t\t137, 92, 137, 94, 151, 200, 108, 255, 182, 177, 14, 63, 79,\n\t\t226, 49, 106, 0, 240, 214, 240, 107, 179, 77, 95, 100, 43,\n\t\t190, 82, 239, 130, 107, 148, 205, 235, 164, 34, 168, 54, 230,\n\t\t142, 245, 95, 58, 134, 147, 214, 90, 19, 161, 38, 26, 71,\n\t\t254, 42, 155, 244, 191, 52, 156, 211, 147, 234, 15, 127, 104,\n\t\t148, 26, 65, 49, 26, 71, 141, 129, 124, 182, 6, 42, 20, 185,\n\t\t184, 98, 249, 234, 251, 2, 156, 135, 59, 33, 70, 49, 98, 147,\n\t\t36, 2, 36, 233, 122, 254, 92, 239, 183, 86, 163, 73, 185,\n\t\t93, 252, 90, 134, 152, 149, 112, 185, 191, 158, 52, 183, 202,\n\t\t186, 45, 177, 10, 68, 57, 134, 101, 216, 29, 24, 139, 26,\n\t\t163, 60, 186, 180, 98, 82, 210, 177, 134, 174, 40, 186, 114,\n\t\t246, 108, 221, 174, 74, 57, 62, 165, 54, 101, 94, 174, 35,\n\t\t70, 129, 48, 195, 10, 143, 73, 88, 204, 114, 156, 178, 210,\n\t\t95, 87, 104, 157, 151, 20, 255, 124, 16, 250, 159, 26, 112,\n\t\t149, 112, 87, 129, 98, 121, 158, 11, 223, 71, 0, 190, 233,\n\t\t119, 152, 224, 157, 152, 246, 24, 140, 84, 16, 10, 207, 51,\n\t\t162, 169, 171, 5, 69, 153, 176, 211, 91, 246, 109, 73, 219,\n\t\t19, 138, 82, 200, 199, 166, 21, 165, 255, 19, 69, 97, 112,\n\t\t174, 210, 171, 40, 73, 69, 154, 76, 149, 183, 108, 41, 167,\n\t\t38, 37, 37, 169, 108, 63, 17, 203, 211, 90, 80, 57, 22, 109,\n\t\t172, 195, 159, 6, 249, 121, 61, 0, 248, 240, 19, 229, 160,\n\t\t25, 102, 104, 243, 4, 206, 158, 45, 178, 84, 83, 112, 168,\n\t\t187, 174, 61, 207, 16, 128, 234, 38, 117, 220, 89, 212, 41,\n\t\t3, 63, 25, 124, 181, 111, 214, 139, 197, 122, 1, 114, 19,\n\t\t8, 222, 214, 63, 123, 27, 68, 19, 18, 178, 109, 77, 99, 161,\n\t\t175, 48, 76, 10, 172, 182, 71, 99, 133, 73, 30, 67, 217, 116,\n\t\t44, 212, 163, 117, 98, 0, 129, 37, 60, 101, 114, 152, 97,\n\t\t251, 27, 16, 178, 12, 230, 76, 36, 185, 49, 211, 102, 57,\n\t\t150, 17, 38, 39, 5, 204, 23, 82, 174, 4, 70, 190, 241, 172,\n\t\t255, 141, 189, 170, 27, 142, 153, 173, 97, 226, 247, 96, 203,\n\t\t140, 65, 219, 41, 118, 189, 112, 60, 142, 180, 199, 75, 102,\n\t\t57, 101, 66, 105, 96, 254, 0, 143, 27, 196, 117, 199, 205,\n\t\t194, 66, 255, 108, 97, 169, 103, 164, 141, 179, 97, 75, 252,\n\t\t135, 41, 142, 127, 64, 81, 102, 102, 120, 140, 121, 186, 124,\n\t\t128, 231, 166, 222, 120, 215, 93, 151, 246, 122, 170, 97,\n\t\t252, 67, 228, 189, 134, 246, 18, 7, 212, 193, 101, 0, 68,\n\t\t136, 51, 34, 145, 31, 221, 22, 63, 8, 244, 30, 133, 153, 172,\n\t\t142, 156, 127, 126, 20, 74, 2, 204, 212, 144, 180, 164, 32,\n\t\t36, 53, 137, 233, 145, 85, 35, 40, 60, 19, 172, 87, 135, 69,\n\t\t171, 154, 4, 151, 53, 137, 102, 234, 159, 20, 26, 194, 73,\n\t\t73, 91, 165, 43, 77, 130, 4, 146, 232, 228, 186, 38, 245,\n\t\t73, 230, 239, 227, 143, 15, 243, 249, 253, 237, 232, 92, 140,\n\t\t8, 23, 243, 37, 0, 64, 219, 169, 218, 142, 13, 221, 170, 227,\n\t\t86, 221, 234, 60, 244, 28, 13, 98, 3, 135, 226, 213, 230,\n\t\t117, 68, 220, 170, 67, 111, 243, 154, 240, 159, 252, 181,\n\t\t10, 255, 125, 183, 149, 239, 183, 233, 58, 17, 63, 115, 235,\n\t\t55, 227, 103, 110, 189, 37, 151, 69, 188, 194, 243, 57, 39,\n\t\t139, 144, 140, 80, 214, 206, 241, 100, 77, 118, 249, 87, 60,\n\t\t10, 223, 222, 238, 252, 123, 168, 9, 253, 171, 233, 250, 75,\n\t\t175, 123, 127, 236, 47, 95, 247, 254, 24, 188, 60, 27, 156,\n\t\t238, 228, 120, 62, 92, 43, 60, 202, 142, 94, 219, 142, 156,\n\t\t53, 56, 26, 226, 102, 174, 17, 155, 105, 25, 204, 130, 57,\n\t\t176, 232, 207, 20, 228, 83, 161, 193, 188, 78, 240, 126, 42,\n\t\t166, 198, 224, 114, 208, 163, 49, 241, 31, 218, 168, 106,\n\t\t59, 237, 170, 173, 193, 42, 9, 42, 160, 37, 173, 102, 119,\n\t\t249, 172, 161, 234, 196, 67, 74, 214, 176, 167, 165, 199,\n\t\t237, 111, 207, 118, 78, 125, 236, 212, 39, 53, 195, 198, 57,\n\t\t83, 56, 96, 243, 178, 163, 10, 142, 102, 244, 200, 190, 163,\n\t\t25, 132, 182, 198, 84, 20, 83, 53, 140, 239, 100, 58, 51,\n\t\t174, 150, 189, 214, 59, 118, 234, 212, 131, 134, 230, 8, 102,\n\t\t14, 219, 117, 71, 80, 29, 137, 179, 205, 195, 116, 223, 4,\n\t\t67, 14, 40, 12, 18, 0, 236, 128, 212, 142, 92, 205, 195, 174,\n\t\t71, 51, 164, 62, 244, 141, 15, 125, 232, 27, 31, 242, 190,\n\t\t250, 85, 239, 67, 223, 248, 208, 79, 136, 34, 175, 77, 228,\n\t\t243, 19, 119, 77, 204, 205, 77, 144, 54, 254, 199, 132, 119,\n\t\t207, 215, 216, 58, 0, 84, 28, 95, 55, 212, 96, 29, 18, 160,\n\t\t163, 24, 236, 122, 243, 176, 197, 211, 81, 164, 211, 158,\n\t\t103, 12, 95, 96, 178, 81, 12, 86, 41, 20, 83, 215, 129, 224,\n\t\t56, 171, 198, 114, 122, 230, 29, 221, 14, 135, 175, 103, 17,\n\t\t183, 35, 149, 203, 92, 146, 133, 98, 169, 86, 219, 93, 83,\n\t\t236, 220, 99, 146, 242, 189, 18, 203, 161, 237, 199, 82, 172,\n\t\t194, 149, 190, 167, 74, 127, 127, 39, 23, 155, 24, 159, 82,\n\t\t173, 56, 195, 56, 133, 21, 14, 67, 251, 98, 199, 54, 31, 174,\n\t\t47, 214, 235, 197, 120, 206, 86, 224, 46, 85, 250, 196, 52,\n\t\t175, 64, 229, 78, 143, 135, 220, 244, 83, 226, 192, 31, 20,\n\t\t202, 3, 128, 47, 198, 139, 12, 232, 3, 6, 244, 152, 48, 207,\n\t\t138, 17, 225, 58, 144, 72, 62, 40, 168, 184, 8, 87, 41, 65,\n\t\t7, 70, 150, 233, 184, 81, 115, 120, 13, 122, 97, 198, 39,\n\t\t124, 169, 113, 119, 233, 27, 115, 11, 79, 45, 212, 147, 255,\n\t\t140, 228, 201, 220, 248, 149, 40, 142, 58, 8, 223, 90, 206,\n\t\t137, 22, 156, 39, 47, 237, 76, 193, 172, 127, 99, 110, 97,\n\t\t161, 254, 182, 71, 236, 68, 46, 205, 103, 199, 111, 197, 168,\n\t\t131, 226, 232, 202, 114, 238, 146, 210, 111, 17, 202, 113,\n\t\t0, 208, 198, 203, 132, 95, 252, 143, 129, 4, 18, 32, 11, 38,\n\t\t64, 211, 31, 145, 61, 13, 226, 26, 244, 251, 150, 93, 213,\n\t\t32, 118, 125, 193, 220, 173, 214, 96, 149, 100, 21, 218, 78,\n\t\t144, 59, 56, 15, 177, 237, 81, 54, 242, 174, 145, 103, 172,\n\t\t44, 180, 80, 185, 81, 238, 186, 127, 63, 123, 44, 22, 43,\n\t\t138, 241, 229, 61, 214, 248, 252, 245, 169, 216, 254, 189,\n\t\t229, 175, 123, 13, 232, 85, 26, 173, 118, 251, 237, 135, 46,\n\t\t155, 156, 80, 242, 251, 126, 117, 94, 171, 31, 189, 255, 93,\n\t\t185, 107, 221, 220, 193, 148, 244, 39, 141, 131, 83, 51, 179,\n\t\t16, 85, 191, 150, 91, 105, 199, 234, 198, 254, 123, 10, 205,\n\t\t163, 249, 27, 23, 46, 57, 237, 142, 125, 13, 101, 186, 15,\n\t\t86, 53, 212, 124, 215, 21, 19, 16, 74, 91, 38, 173, 244, 116,\n\t\t98, 234, 248, 165, 102, 170, 100, 197, 234, 240, 189, 241,\n\t\t61, 215, 119, 32, 7, 181, 189, 15, 249, 239, 92, 32, 118,\n\t\t83, 95, 175, 223, 6, 22, 193, 197, 224, 82, 112, 21, 184,\n\t\t1, 188, 22, 220, 19, 90, 39, 55, 65, 63, 5, 33, 215, 65, 30,\n\t\t193, 133, 182, 55, 107, 225, 246, 5, 246, 55, 151, 195, 15,\n\t\t164, 13, 138, 61, 150, 140, 81, 232, 177, 164, 145, 54, 4,\n\t\t93, 136, 46, 255, 34, 18, 33, 123, 209, 57, 219, 209, 152,\n\t\t89, 184, 100, 168, 79, 218, 230, 221, 186, 101, 82, 128, 178,\n\t\t226, 15, 252, 94, 120, 70, 16, 158, 246, 215, 79, 11, 194,\n\t\t153, 96, 255, 128, 218, 255, 191, 34, 65, 191, 143, 68, 182,\n\t\t39, 35, 97, 192, 52, 60, 24, 80, 251, 68, 128, 133, 42, 18,\n\t\t169, 53, 204, 81, 6, 100, 6, 32, 105, 93, 67, 102, 113, 24,\n\t\t47, 198, 195, 199, 69, 155, 30, 127, 176, 159, 94, 94, 78,\n\t\t187, 76, 47, 237, 186, 233, 229, 254, 89, 8, 246, 13, 209,\n\t\t43, 180, 187, 34, 219, 176, 144, 118, 251, 235, 110, 26, 2,\n\t\t55, 189, 158, 118, 137, 186, 223, 235, 175, 127, 143, 28,\n\t\t189, 148, 44, 239, 138, 108, 143, 196, 121, 138, 164, 221,\n\t\t2, 216, 112, 40, 59, 174, 83, 181, 202, 221, 45, 254, 32,\n\t\t128, 139, 161, 191, 0, 246, 225, 255, 120, 143, 156, 208,\n\t\t216, 111, 253, 15, 216, 226, 83, 250, 141, 97, 10, 22, 196,\n\t\t120, 93, 136, 73, 197, 117, 124, 38, 150, 56, 251, 146, 175,\n\t\t95, 71, 241, 242, 77, 48, 9, 230, 35, 113, 201, 161, 133,\n\t\t192, 242, 156, 78, 37, 186, 19, 90, 184, 241, 249, 206, 100,\n\t\t26, 131, 232, 165, 165, 66, 161, 255, 124, 176, 177, 52, 48,\n\t\t1, 135, 135, 214, 68, 76, 208, 155, 215, 177, 184, 108, 89,\n\t\t203, 189, 193, 22, 217, 232, 141, 30, 29, 190, 131, 53, 144,\n\t\t2, 57, 202, 148, 113, 46, 31, 110, 48, 179, 91, 173, 14, 241,\n\t\t223, 94, 0, 242, 41, 106, 135, 88, 202, 154, 107, 102, 118,\n\t\t125, 181, 32, 204, 9, 13, 97, 78, 8, 86, 176, 23, 141, 136,\n\t\t37, 38, 251, 70, 161, 80, 248, 73, 228, 20, 97, 46, 130, 175,\n\t\t40, 17, 47, 250, 144, 137, 38, 65, 102, 32, 100, 153, 235,\n\t\t87, 220, 126, 251, 71, 111, 127, 237, 204, 229, 221, 229,\n\t\t101, 184, 126, 248, 183, 183, 93, 119, 255, 253, 215, 109,\n\t\t251, 237, 254, 123, 58, 83, 115, 183, 221, 54, 55, 21, 200,\n\t\t49, 251, 225, 26, 200, 129, 138, 47, 161, 86, 40, 227, 102,\n\t\t29, 186, 85, 114, 181, 0, 150, 208, 233, 122, 221, 86, 211,\n\t\t9, 145, 76, 120, 175, 234, 150, 75, 88, 131, 14, 51, 157,\n\t\t209, 171, 185, 241, 29, 165, 135, 48, 90, 188, 102, 113, 177,\n\t\t54, 219, 99, 212, 156, 95, 208, 255, 73, 118, 34, 11, 203,\n\t\t151, 238, 138, 101, 116, 37, 129, 149, 71, 171, 215, 102,\n\t\t172, 45, 127, 36, 197, 62, 88, 91, 92, 172, 157, 173, 45,\n\t\t206, 207, 20, 77, 107, 203, 251, 86, 252, 199, 91, 153, 221,\n\t\t118, 173, 45, 42, 147, 241, 17, 219, 171, 69, 172, 219, 231,\n\t\t190, 107, 34, 55, 15, 124, 229, 35, 22, 31, 219, 139, 90,\n\t\t95, 151, 220, 182, 219, 37, 205, 254, 53, 36, 42, 107, 136,\n\t\t159, 68, 188, 234, 35, 158, 243, 36, 105, 239, 127, 69, 24,\n\t\t62, 134, 208, 73, 129, 45, 101, 88, 31, 95, 22, 237, 128,\n\t\t93, 224, 48, 184, 242, 66, 53, 219, 60, 124, 13, 214, 65,\n\t\t141, 141, 159, 35, 67, 110, 243, 83, 124, 52, 210, 133, 233,\n\t\t191, 7, 201, 242, 228, 121, 18, 229, 206, 121, 180, 254, 153,\n\t\t72, 143, 166, 203, 167, 200, 178, 255, 24, 177, 215, 159,\n\t\t140, 44, 3, 78, 98, 102, 53, 192, 79, 105, 17, 70, 155, 131,\n\t\t224, 234, 161, 21, 47, 228, 53, 226, 73, 58, 177, 103, 119,\n\t\t59, 126, 219, 64, 182, 63, 115, 209, 64, 221, 170, 235, 107,\n\t\t185, 254, 188, 53, 126, 206, 112, 29, 252, 118, 115, 156,\n\t\t249, 255, 36, 67, 238, 191, 35, 121, 119, 253, 223, 74, 96,\n\t\t94, 145, 19, 73, 239, 216, 197, 59, 246, 242, 133, 186, 150,\n\t\t117, 84, 14, 39, 112, 90, 106, 122, 103, 231, 182, 72, 105,\n\t\t232, 69, 6, 182, 79, 208, 209, 154, 16, 86, 190, 76, 122,\n\t\t249, 58, 25, 104, 247, 147, 60, 189, 151, 50, 98, 86, 64,\n\t\t146, 153, 26, 43, 216, 169, 50, 107, 171, 154, 144, 21, 51,\n\t\t50, 143, 242, 198, 213, 87, 27, 121, 196, 143, 69, 6, 61,\n\t\t68, 126, 248, 213, 97, 208, 35, 137, 99, 218, 216, 248, 28,\n\t\t124, 22, 62, 11, 118, 128, 93, 96, 63, 56, 12, 128, 53, 207,\n\t\t122, 53, 118, 64, 225, 83, 12, 9, 124, 52, 14, 35, 220, 114,\n\t\t171, 93, 47, 79, 233, 179, 74, 85, 183, 90, 12, 162, 35, 141,\n\t\t174, 87, 182, 189, 162, 237, 180, 186, 108, 209, 173, 150,\n\t\t17, 171, 21, 22, 103, 103, 23, 11, 26, 11, 37, 92, 208, 24,\n\t\t134, 129, 115, 12, 195, 104, 5, 44, 65, 70, 202, 79, 29, 222,\n\t\t50, 83, 122, 171, 202, 21, 50, 83, 91, 227, 228, 148, 24,\n\t\t132, 108, 255, 43, 193, 41, 255, 125, 60, 187, 154, 253, 207,\n\t\t253, 159, 138, 202, 183, 149, 151, 33, 47, 168, 223, 82, 106,\n\t\t86, 125, 207, 69, 185, 220, 69, 123, 234, 22, 150, 53, 65,\n\t\t146, 4, 77, 198, 137, 137, 133, 173, 189, 148, 157, 83, 152,\n\t\t184, 49, 126, 213, 92, 26, 203, 26, 82, 68, 81, 147, 97, 202,\n\t\t76, 38, 79, 234, 186, 222, 127, 94, 215, 117, 218, 239, 62,\n\t\t77, 184, 233, 44, 208, 1, 59, 1, 168, 208, 112, 109, 199,\n\t\t171, 122, 221, 60, 67, 163, 174, 93, 34, 223, 17, 22, 204,\n\t\t170, 27, 37, 168, 115, 12, 155, 96, 24, 12, 24, 27, 221, 14,\n\t\t132, 136, 155, 47, 238, 44, 238, 100, 17, 226, 224, 14, 6,\n\t\t161, 223, 112, 250, 12, 66, 255, 39, 220, 51, 155, 155, 230,\n\t\t133, 153, 107, 174, 36, 14, 95, 7, 223, 52, 155, 253, 115,\n\t\t164, 48, 253, 79, 145, 48, 178, 143, 174, 113, 2, 134, 230,\n\t\t141, 230, 141, 22, 132, 12, 207, 254, 1, 86, 152, 78, 124,\n\t\t18, 203, 236, 254, 153, 57, 129, 159, 201, 123, 101, 104,\n\t\t145, 175, 99, 247, 255, 28, 142, 239, 103, 16, 122, 60, 64,\n\t\t136, 31, 98, 2, 154, 68, 90, 31, 132, 194, 209, 137, 131,\n\t\t116, 214, 1, 141, 122, 8, 38, 64, 73, 247, 232, 150, 255,\n\t\t131, 225, 67, 217, 86, 156, 76, 33, 167, 27, 141, 211, 65,\n\t\t131, 16, 241, 101, 108, 118, 34, 203, 126, 137, 44, 47, 11,\n\t\t72, 2, 151, 177, 184, 42, 98, 8, 176, 184, 90, 40, 172, 138,\n\t\t120, 3, 144, 73, 132, 156, 239, 247, 68, 65, 24, 174, 225,\n\t\t74, 112, 160, 127, 58, 50, 214, 9, 32, 77, 48, 124, 9, 223,\n\t\t124, 171, 233, 96, 211, 222, 62, 26, 36, 100, 188, 18, 140,\n\t\t224, 27, 240, 42, 146, 176, 71, 0, 163, 169, 153, 254, 43,\n\t\t189, 77, 147, 202, 113, 44, 161, 85, 252, 54, 73, 235, 63,\n\t\t77, 84, 191, 231, 37, 173, 255, 205, 232, 140, 34, 132, 62,\n\t\t89, 95, 158, 171, 19, 20, 216, 72, 37, 8, 110, 99, 115, 1,\n\t\t58, 196, 253, 49, 13, 3, 210, 176, 129, 175, 209, 175, 162,\n\t\t19, 214, 30, 22, 6, 53, 217, 87, 102, 36, 102, 171, 125, 149,\n\t\t255, 196, 116, 219, 100, 248, 247, 8, 194, 156, 38, 125, 229,\n\t\t215, 72, 173, 9, 244, 53, 169, 211, 227, 251, 56, 238, 158,\n\t\t25, 81, 19, 253, 245, 4, 39, 232, 194, 247, 36, 237, 54, 82,\n\t\t111, 16, 137, 119, 20, 9, 147, 89, 43, 42, 45, 57, 241, 98,\n\t\t156, 228, 173, 14, 222, 9, 25, 77, 7, 239, 171, 18, 234, 219,\n\t\t241, 172, 217, 104, 152, 217, 85, 216, 219, 0, 155, 94, 16,\n\t\t25, 114, 27, 112, 197, 204, 246, 123, 254, 198, 122, 191,\n\t\t55, 58, 229, 6, 81, 39, 228, 107, 133, 114, 75, 138, 88, 160,\n\t\t118, 130, 139, 192, 205, 224, 110, 240, 230, 87, 146, 12,\n\t\t224, 5, 198, 125, 231, 2, 229, 222, 43, 72, 17, 23, 154, 67,\n\t\t152, 130, 106, 136, 248, 229, 179, 88, 52, 212, 85, 18, 138,\n\t\t187, 1, 104, 104, 50, 253, 183, 22, 221, 209, 81, 26, 153,\n\t\t40, 141, 130, 213, 233, 232, 49, 184, 108, 168, 125, 210,\n\t\t232, 225, 138, 106, 80, 238, 146, 254, 199, 200, 161, 119,\n\t\t147, 229, 125, 145, 237, 63, 140, 92, 5, 165, 251, 223, 142,\n\t\t28, 2, 35, 190, 160, 242, 8, 6, 28, 125, 178, 145, 39, 105,\n\t\t145, 39, 164, 138, 41, 92, 17, 26, 194, 178, 208, 16, 130,\n\t\t21, 92, 39, 229, 127, 253, 146, 32, 156, 56, 33, 8, 116, 21,\n\t\t198, 246, 246, 8, 71, 118, 6, 212, 40, 122, 241, 166, 111,\n\t\t96, 181, 58, 131, 156, 235, 209, 108, 101, 140, 236, 150,\n\t\t97, 149, 131, 143, 20, 77, 76, 63, 189, 190, 143, 56, 111,\n\t\t115, 163, 9, 202, 28, 35, 9, 255, 126, 149, 48, 185, 140,\n\t\t206, 180, 203, 203, 107, 196, 147, 251, 140, 138, 105, 90,\n\t\t178, 138, 85, 184, 182, 188, 172, 26, 70, 36, 63, 220, 34,\n\t\t242, 227, 222, 87, 147, 106, 140, 87, 248, 246, 175, 36, 39,\n\t\t80, 105, 231, 192, 104, 203, 22, 158, 244, 255, 93, 72, 228,\n\t\t233, 127, 119, 164, 145, 127, 37, 204, 157, 231, 34, 99, 233,\n\t\t28, 216, 65, 116, 213, 243, 9, 226, 78, 217, 58, 55, 234,\n\t\t36, 100, 67, 8, 128, 180, 249, 78, 217, 42, 118, 202, 22,\n\t\t105, 80, 43, 189, 30, 137, 244, 89, 165, 212, 41, 116, 202,\n\t\t166, 219, 204, 50, 22, 197, 254, 19, 107, 112, 117, 109, 157,\n\t\t8, 235, 116, 56, 245, 55, 122, 195, 73, 57, 186, 233, 255,\n\t\t71, 235, 250, 109, 102, 15, 92, 11, 56, 165, 41, 186, 161,\n\t\t127, 103, 82, 15, 39, 144, 91, 61, 199, 198, 136, 0, 69, 231,\n\t\t97, 0, 102, 69, 34, 17, 22, 215, 178, 19, 217, 127, 252, 58,\n\t\t198, 245, 251, 47, 23, 74, 232, 185, 203, 196, 50, 143, 95,\n\t\t64, 184, 14, 215, 136, 168, 234, 47, 30, 163, 130, 106, 254,\n\t\t5, 204, 151, 197, 203, 238, 175, 99, 239, 242, 251, 235, 24,\n\t\t127, 29, 163, 82, 20, 235, 188, 8, 182, 0, 96, 116, 138, 195,\n\t\t81, 51, 24, 137, 70, 214, 101, 111, 147, 252, 67, 40, 202,\n\t\t55, 128, 106, 60, 32, 8, 15, 4, 127, 196, 149, 26, 248, 92,\n\t\t65, 175, 79, 80, 107, 123, 130, 46, 132, 127, 235, 67, 211,\n\t\t223, 230, 152, 133, 20, 232, 12, 241, 224, 195, 123, 24, 131,\n\t\t92, 19, 239, 21, 70, 74, 138, 7, 79, 111, 43, 132, 181, 218,\n\t\t60, 151, 68, 110, 221, 47, 192, 101, 82, 183, 47, 142, 170,\n\t\t39, 32, 228, 53, 122, 22, 148, 41, 231, 204, 207, 195, 188,\n\t\t83, 13, 220, 98, 99, 52, 29, 140, 64, 249, 78, 7, 249, 73,\n\t\t76, 32, 59, 50, 231, 227, 229, 89, 23, 241, 195, 130, 240,\n\t\t30, 158, 49, 155, 156, 201, 101, 111, 241, 139, 79, 217, 100,\n\t\t251, 16, 233, 198, 103, 23, 107, 145, 134, 70, 249, 122, 94,\n\t\t58, 141, 197, 85, 65, 23, 184, 137, 27, 69, 209, 19, 53, 113,\n\t\t198, 95, 111, 0, 210, 143, 193, 72, 31, 160, 217, 205, 215,\n\t\t69, 158, 130, 136, 12, 101, 218, 194, 194, 78, 73, 43, 191,\n\t\t105, 155, 154, 161, 183, 195, 206, 16, 229, 131, 32, 248,\n\t\t132, 162, 82, 184, 246, 58, 213, 178, 69, 201, 155, 26, 115,\n\t\t75, 115, 171, 115, 75, 115, 103, 4, 225, 121, 50, 210, 209,\n\t\t101, 255, 37, 65, 152, 163, 49, 247, 51, 166, 118, 147, 214,\n\t\t159, 161, 100, 58, 20, 157, 112, 245, 166, 153, 101, 242,\n\t\t46, 38, 230, 230, 38, 252, 191, 85, 26, 142, 19, 253, 71,\n\t\t149, 73, 237, 38, 205, 188, 99, 37, 194, 173, 243, 73, 229,\n\t\t166, 72, 220, 29, 197, 243, 43, 19, 255, 217, 17, 112, 213,\n\t\t72, 84, 81, 139, 37, 224, 234, 129, 241, 115, 104, 145, 55,\n\t\t217, 77, 173, 205, 239, 242, 48, 114, 110, 228, 84, 39, 114,\n\t\t57, 230, 1, 127, 120, 23, 198, 38, 107, 66, 67, 24, 31, 203,\n\t\t9, 13, 129, 188, 129, 32, 9, 97, 249, 73, 40, 164, 243, 254,\n\t\t161, 29, 66, 67, 56, 65, 206, 13, 224, 36, 160, 152, 57, 190,\n\t\t37, 47, 8, 121, 119, 209, 52, 42, 243, 130, 48, 47, 247, 127,\n\t\t32, 226, 85, 44, 102, 205, 158, 153, 93, 233, 245, 224, 98,\n\t\t98, 107, 209, 63, 99, 38, 53, 181, 107, 81, 16, 230, 103,\n\t\t94, 164, 63, 5, 204, 198, 207, 54, 62, 195, 112, 240, 11,\n\t\t96, 12, 204, 3, 96, 120, 14, 30, 37, 177, 26, 177, 93, 87,\n\t\t189, 128, 228, 138, 146, 93, 177, 36, 254, 136, 161, 113,\n\t\t72, 206, 159, 244, 30, 254, 195, 140, 219, 91, 36, 6, 234,\n\t\t221, 152, 203, 164, 231, 136, 117, 217, 155, 165, 235, 151,\n\t\t169, 81, 121, 246, 34, 132, 74, 136, 143, 63, 28, 167, 235,\n\t\t173, 179, 212, 250, 12, 227, 187, 30, 254, 131, 44, 143, 119,\n\t\t147, 211, 22, 123, 110, 38, 51, 71, 204, 209, 94, 141, 172,\n\t\t249, 15, 82, 91, 245, 236, 197, 60, 42, 33, 228, 255, 158,\n\t\t247, 215, 115, 179, 212, 36, 78, 245, 147, 117, 230, 237,\n\t\t240, 11, 64, 38, 40, 185, 53, 50, 246, 5, 220, 78, 157, 46,\n\t\t223, 180, 45, 13, 150, 75, 53, 166, 218, 238, 182, 192, 96,\n\t\t224, 195, 193, 88, 216, 189, 233, 129, 171, 69, 136, 216,\n\t\t254, 243, 44, 47, 194, 58, 203, 139, 87, 239, 200, 123, 83,\n\t\t89, 158, 103, 153, 177, 203, 201, 64, 136, 113, 125, 223,\n\t\t11, 100, 112, 20, 203, 60, 4, 135, 183, 177, 8, 177, 219,\n\t\t110, 68, 236, 182, 195, 214, 248, 150, 28, 139, 224, 237,\n\t\t100, 44, 244, 135, 198, 125, 100, 124, 244, 119, 105, 92,\n\t\t165, 95, 55, 8, 159, 35, 217, 31, 182, 25, 131, 101, 194,\n\t\t122, 183, 0, 59, 231, 184, 7, 194, 245, 60, 132, 223, 41,\n\t\t103, 251, 55, 93, 137, 77, 13, 95, 57, 219, 36, 111, 163,\n\t\t25, 89, 251, 143, 221, 170, 101, 14, 195, 143, 21, 47, 205,\n\t\t190, 124, 37, 214, 76, 124, 229, 205, 181, 22, 121, 129, 205,\n\t\t115, 214, 89, 68, 124, 149, 47, 111, 252, 25, 252, 27, 248,\n\t\t73, 96, 209, 104, 204, 128, 180, 172, 92, 170, 70, 210, 83,\n\t\t189, 42, 134, 223, 229, 253, 215, 43, 255, 56, 63, 93, 31,\n\t\t203, 160, 252, 63, 203, 100, 95, 216, 119, 244, 81, 136, 80,\n\t\t112, 104, 188, 112, 105, 254, 7, 50, 66, 37, 158, 127, 113,\n\t\t239, 209, 71, 67, 142, 45, 210, 111, 12, 130, 173, 187, 29,\n\t\t44, 0, 96, 140, 228, 152, 5, 3, 133, 213, 234, 108, 30, 151,\n\t\t225, 5, 206, 59, 64, 186, 125, 178, 190, 88, 111, 244, 224,\n\t\t218, 112, 170, 132, 39, 162, 7, 86, 169, 128, 68, 240, 107,\n\t\t95, 90, 94, 238, 175, 70, 88, 76, 54, 29, 139, 142, 103, 50,\n\t\t177, 234, 239, 10, 250, 118, 224, 41, 227, 35, 219, 97, 121,\n\t\t199, 107, 183, 42, 190, 168, 18, 116, 249, 32, 92, 104, 26,\n\t\t150, 58, 241, 182, 87, 233, 54, 29, 248, 19, 65, 232, 159,\n\t\t22, 4, 184, 50, 178, 134, 2, 252, 203, 188, 176, 36, 24, 90,\n\t\t255, 65, 205, 16, 150, 132, 60, 212, 5, 51, 42, 208, 9, 13,\n\t\t97, 157, 174, 222, 165, 20, 250, 79, 8, 194, 79, 252, 41,\n\t\t238, 39, 130, 0, 143, 23, 148, 187, 57, 46, 106, 123, 76,\n\t\t129, 34, 137, 92, 223, 44, 53, 161, 128, 8, 180, 26, 206,\n\t\t14, 213, 210, 160, 200, 235, 214, 32, 194, 20, 28, 185, 191,\n\t\t234, 47, 211, 233, 187, 31, 187, 59, 125, 211, 219, 175, 187,\n\t\t238, 237, 215, 173, 197, 29, 167, 228, 200, 37, 134, 87, 20,\n\t\t22, 174, 186, 233, 62, 57, 17, 246, 210, 238, 108, 235, 232,\n\t\t221, 119, 31, 109, 205, 110, 128, 235, 252, 83, 183, 37, 245,\n\t\t184, 227, 196, 99, 202, 81, 164, 240, 60, 26, 249, 222, 20,\n\t\t87, 168, 229, 75, 254, 33, 212, 132, 29, 212, 196, 216, 252,\n\t\t157, 55, 75, 73, 241, 98, 188, 218, 137, 202, 6, 163, 242,\n\t\t222, 185, 107, 68, 83, 65, 91, 22, 181, 165, 140, 72, 21,\n\t\t255, 64, 172, 32, 159, 34, 203, 231, 135, 141, 133, 72, 84,\n\t\t161, 140, 197, 128, 101, 225, 225, 147, 130, 112, 82, 208,\n\t\t5, 127, 245, 176, 64, 119, 123, 166, 63, 13, 244, 252, 169,\n\t\t192, 236, 209, 3, 189, 40, 100, 197, 135, 135, 109, 170, 31,\n\t\t17, 190, 252, 137, 255, 43, 52, 2, 54, 41, 8, 201, 72, 64,\n\t\t108, 129, 92, 74, 215, 201, 117, 73, 1, 0, 236, 70, 127, 227,\n\t\t187, 204, 131, 240, 55, 129, 3, 74, 96, 214, 111, 121, 11,\n\t\t126, 115, 39, 93, 177, 6, 119, 66, 135, 4, 226, 57, 182, 103,\n\t\t211, 50, 175, 235, 20, 187, 99, 100, 188, 170, 65, 15, 126,\n\t\t20, 163, 71, 52, 233, 47, 99, 250, 55, 37, 237, 17, 132, 179,\n\t\t90, 175, 167, 189, 196, 33, 225, 75, 10, 186, 230, 167, 10,\n\t\t255, 242, 247, 121, 229, 167, 215, 32, 229, 75, 2, 226, 214,\n\t\t153, 234, 83, 114, 156, 237, 114, 92, 151, 141, 203, 79, 85,\n\t\t25, 231, 246, 219, 157, 21, 172, 49, 115, 156, 124, 166, 0,\n\t\t37, 9, 22, 206, 200, 220, 28, 163, 225, 32, 79, 141, 198,\n\t\t148, 153, 132, 213, 123, 38, 208, 81, 202, 165, 42, 37, 229,\n\t\t159, 103, 60, 119, 72, 192, 186, 121, 237, 235, 36, 175, 157,\n\t\t107, 237, 58, 196, 112, 144, 193, 241, 44, 218, 122, 47, 9,\n\t\t62, 250, 64, 100, 9, 215, 78, 125, 236, 148, 209, 98, 25,\n\t\t30, 91, 91, 236, 173, 23, 31, 187, 127, 19, 206, 167, 145,\n\t\t142, 198, 192, 198, 192, 56, 0, 94, 219, 227, 195, 58, 120,\n\t\t93, 207, 141, 70, 193, 82, 48, 59, 203, 196, 61, 17, 238,\n\t\t117, 39, 252, 187, 243, 28, 59, 35, 111, 101, 182, 141, 4,\n\t\t192, 222, 118, 209, 242, 107, 63, 180, 245, 249, 116, 246,\n\t\t103, 146, 209, 146, 184, 246, 244, 214, 211, 35, 145, 175,\n\t\t151, 118, 78, 29, 59, 176, 45, 228, 201, 38, 241, 196, 113,\n\t\t226, 105, 247, 219, 86, 144, 49, 72, 2, 91, 139, 21, 114,\n\t\t187, 243, 33, 133, 12, 212, 91, 130, 34, 181, 230, 166, 11,\n\t\t115, 19, 176, 55, 49, 71, 252, 12, 112, 45, 237, 22, 68, 220,\n\t\t195, 162, 63, 46, 245, 176, 88, 112, 211, 5, 95, 113, 50,\n\t\t212, 179, 105, 215, 151, 81, 220, 116, 111, 217, 77, 143,\n\t\t27, 111, 240, 219, 148, 78, 194, 174, 223, 96, 140, 167, 93,\n\t\t67, 245, 53, 39, 48, 226, 127, 192, 96, 31, 56, 57, 180, 67,\n\t\t86, 73, 240, 38, 9, 4, 38, 149, 137, 65, 100, 58, 182, 51,\n\t\t72, 74, 152, 135, 157, 182, 91, 31, 212, 112, 1, 118, 221,\n\t\t170, 91, 165, 105, 20, 26, 180, 206, 97, 165, 178, 29, 210,\n\t\t211, 90, 69, 218, 167, 186, 94, 128, 174, 252, 119, 169, 82,\n\t\t210, 88, 80, 36, 236, 74, 58, 210, 57, 222, 72, 138, 88, 198,\n\t\t82, 170, 148, 52, 231, 21, 9, 85, 73, 41, 228, 140, 164, 132,\n\t\t20, 78, 224, 126, 76, 216, 37, 136, 198, 92, 200, 79, 47,\n\t\t72, 18, 188, 67, 146, 122, 51, 249, 2, 129, 90, 254, 34, 28,\n\t\t79, 91, 69, 100, 176, 154, 32, 73, 72, 231, 36, 86, 131, 113,\n\t\t44, 73, 88, 63, 255, 1, 78, 224, 251, 63, 48, 84, 66, 230,\n\t\t190, 172, 26, 213, 20, 149, 227, 82, 85, 210, 159, 62, 199,\n\t\t0, 248, 28, 16, 9, 6, 15, 128, 110, 149, 130, 146, 58, 94,\n\t\t139, 126, 42, 140, 202, 46, 153, 224, 220, 170, 75, 211, 240,\n\t\t243, 132, 95, 40, 108, 187, 176, 112, 164, 19, 47, 96, 131,\n\t\t145, 102, 86, 86, 10, 215, 45, 30, 222, 37, 41, 183, 215,\n\t\t120, 36, 156, 182, 227, 87, 164, 57, 139, 203, 191, 249, 72,\n\t\t61, 77, 205, 171, 41, 125, 251, 150, 138, 128, 164, 189, 115,\n\t\t7, 123, 107, 139, 215, 205, 9, 220, 1, 172, 51, 227, 122,\n\t\t252, 146, 147, 59, 61, 81, 218, 123, 130, 223, 81, 172, 47,\n\t\t7, 30, 46, 234, 139, 221, 5, 86, 65, 133, 248, 20, 70, 64,\n\t\t251, 7, 153, 224, 211, 48, 192, 68, 91, 128, 221, 38, 211,\n\t\t81, 160, 242, 225, 132, 221, 255, 117, 191, 13, 120, 245,\n\t\t194, 212, 90, 204, 96, 24, 83, 57, 226, 239, 223, 239, 196,\n\t\t175, 21, 147, 15, 72, 121, 241, 13, 26, 49, 183, 185, 105,\n\t\t71, 83, 98, 162, 38, 106, 23, 135, 118, 43, 102, 23, 124,\n\t\t14, 36, 124, 253, 191, 50, 64, 188, 156, 167, 216, 17, 168,\n\t\t196, 255, 92, 149, 128, 198, 157, 14, 155, 118, 118, 90, 178,\n\t\t108, 239, 112, 50, 108, 242, 78, 164, 193, 236, 171, 87, 236,\n\t\t75, 247, 36, 15, 216, 38, 111, 43, 138, 205, 155, 246, 129,\n\t\t228, 61, 232, 192, 133, 170, 26, 212, 181, 8, 215, 193, 60,\n\t\t184, 25, 0, 88, 131, 126, 109, 7, 221, 136, 218, 208, 17,\n\t\t177, 172, 89, 230, 24, 36, 150, 228, 97, 207, 115, 41, 110,\n\t\t6, 193, 154, 238, 180, 171, 206, 5, 30, 139, 25, 125, 44,\n\t\t38, 158, 100, 216, 156, 67, 82, 26, 18, 26, 7, 185, 56, 18,\n\t\t120, 84, 16, 81, 83, 54, 20, 56, 60, 194, 147, 3, 124, 81,\n\t\t68, 127, 45, 65, 233, 125, 113, 171, 255, 113, 36, 138, 168,\n\t\t51, 61, 86, 253, 176, 102, 176, 80, 212, 240, 197, 126, 193,\n\t\t138, 165, 159, 16, 109, 216, 224, 83, 241, 100, 133, 73, 248,\n\t\t47, 34, 193, 136, 172, 194, 197, 17, 199, 8, 24, 198, 88,\n\t\t205, 144, 207, 123, 228, 137, 209, 247, 34, 40, 120, 244,\n\t\t27, 250, 99, 80, 9, 236, 5, 192, 115, 66, 109, 177, 234, 6,\n\t\t252, 88, 254, 235, 33, 54, 200, 46, 245, 39, 135, 228, 61,\n\t\t129, 129, 157, 132, 122, 81, 244, 125, 68, 195, 17, 59, 237,\n\t\t175, 109, 77, 139, 248, 237, 10, 203, 226, 219, 36, 35, 109,\n\t\t92, 197, 105, 188, 42, 9, 174, 192, 218, 105, 248, 222, 180,\n\t\t33, 221, 134, 89, 86, 121, 59, 22, 211, 91, 133, 180, 205,\n\t\t10, 174, 32, 169, 188, 198, 93, 245, 87, 135, 75, 211, 43,\n\t\t88, 84, 20, 241, 151, 213, 248, 95, 249, 125, 239, 209, 59,\n\t\t16, 175, 138, 114, 75, 78, 235, 220, 191, 51, 212, 191, 138,\n\t\t171, 191, 236, 31, 198, 43, 211, 165, 195, 18, 167, 167, 229,\n\t\t150, 44, 170, 60, 186, 227, 81, 21, 4, 242, 230, 31, 51, 15,\n\t\t193, 231, 64, 5, 244, 6, 154, 120, 16, 7, 68, 123, 102, 128,\n\t\t140, 210, 105, 47, 132, 200, 15, 164, 159, 144, 225, 41, 116,\n\t\t189, 5, 232, 250, 182, 19, 224, 44, 25, 170, 238, 166, 31,\n\t\t185, 85, 78, 227, 37, 132, 229, 165, 177, 93, 83, 59, 166,\n\t\t224, 140, 191, 89, 116, 158, 118, 74, 78, 172, 168, 39, 110,\n\t\t245, 15, 67, 64, 116, 243, 158, 106, 164, 221, 29, 8, 203,\n\t\t239, 146, 211, 168, 214, 24, 55, 170, 167, 242, 83, 83, 249,\n\t\t185, 138, 191, 155, 117, 138, 39, 124, 177, 230, 45, 9, 209,\n\t\t146, 252, 147, 34, 242, 250, 58, 177, 31, 216, 126, 69, 237,\n\t\t40, 81, 153, 87, 245, 103, 163, 121, 198, 67, 86, 217, 33,\n\t\t118, 158, 118, 192, 186, 208, 116, 188, 114, 187, 154, 135,\n\t\t12, 128, 18, 22, 31, 97, 68, 77, 92, 85, 13, 230, 17, 17,\n\t\t75, 144, 171, 237, 158, 156, 207, 222, 135, 97, 99, 229, 146,\n\t\t235, 46, 89, 105, 64, 124, 95, 118, 126, 225, 132, 63, 188,\n\t\t157, 65, 204, 42, 9, 153, 95, 101, 208, 25, 9, 143, 239, 154,\n\t\t209, 246, 220, 241, 32, 179, 122, 233, 93, 119, 93, 186, 202,\n\t\t60, 120, 199, 30, 139, 96, 20, 241, 193, 251, 164, 242, 86,\n\t\t26, 220, 12, 238, 2, 32, 68, 149, 15, 51, 57, 141, 208, 119,\n\t\t185, 192, 216, 49, 70, 99, 202, 165, 114, 13, 46, 192, 46,\n\t\t201, 195, 246, 91, 73, 217, 127, 231, 68, 141, 27, 131, 54,\n\t\t194, 165, 114, 201, 173, 51, 254, 124, 234, 117, 29, 123,\n\t\t140, 25, 116, 193, 160, 196, 225, 73, 50, 119, 13, 122, 143,\n\t\t82, 53, 251, 38, 178, 58, 194, 203, 10, 66, 182, 144, 97,\n\t\t38, 37, 108, 239, 150, 160, 168, 9, 144, 85, 117, 40, 177,\n\t\t234, 116, 28, 35, 163, 133, 228, 53, 25, 181, 18, 24, 199,\n\t\t167, 85, 86, 130, 186, 202, 66, 37, 193, 72, 187, 109, 108,\n\t\t224, 124, 46, 51, 174, 202, 58, 113, 71, 235, 178, 90, 206,\n\t\t228, 243, 248, 229, 191, 157, 100, 50, 124, 50, 37, 243, 112,\n\t\t57, 162, 148, 247, 87, 148, 20, 207, 152, 123, 141, 218, 77,\n\t\t133, 212, 161, 107, 5, 21, 51, 166, 118, 141, 25, 219, 178,\n\t\t223, 50, 212, 34, 7, 33, 87, 84, 13, 107, 255, 150, 152, 121,\n\t\t141, 102, 50, 186, 114, 237, 161, 84, 97, 169, 160, 42, 49,\n\t\t171, 90, 146, 40, 116, 164, 84, 170, 90, 49, 69, 45, 124,\n\t\t178, 102, 236, 85, 100, 41, 69, 56, 120, 54, 94, 14, 236,\n\t\t165, 187, 193, 65, 170, 221, 7, 173, 51, 50, 204, 148, 7,\n\t\t91, 53, 166, 67, 191, 121, 72, 177, 73, 108, 166, 219, 225,\n\t\t60, 220, 14, 155, 126, 27, 192, 182, 19, 178, 108, 84, 75,\n\t\t184, 29, 226, 52, 111, 113, 203, 212, 27, 191, 69, 77, 144,\n\t\t169, 159, 10, 0, 70, 78, 159, 72, 149, 88, 38, 158, 210, 16,\n\t\t130, 72, 194, 12, 19, 147, 167, 229, 19, 219, 86, 177, 158,\n\t\t155, 41, 24, 73, 245, 54, 50, 223, 172, 57, 73, 56, 183, 52,\n\t\t39, 243, 103, 137, 74, 159, 80, 47, 25, 26, 111, 46, 209,\n\t\t170, 141, 180, 155, 210, 28, 5, 153, 136, 23, 121, 37, 238,\n\t\t93, 196, 148, 14, 217, 121, 42, 180, 126, 10, 65, 14, 250,\n\t\t178, 5, 132, 32, 200, 213, 127, 26, 126, 30, 62, 11, 4, 48,\n\t\t9, 192, 2, 116, 168, 68, 73, 167, 165, 42, 91, 131, 132, 175,\n\t\t133, 210, 89, 82, 47, 87, 181, 235, 185, 37, 140, 126, 233,\n\t\t232, 213, 90, 98, 143, 200, 194, 63, 194, 140, 184, 55, 161,\n\t\t254, 171, 170, 96, 158, 153, 65, 82, 233, 246, 49, 9, 205,\n\t\t196, 177, 85, 58, 218, 230, 138, 87, 21, 185, 7, 79, 220,\n\t\t162, 43, 89, 100, 11, 130, 141, 178, 138, 14, 141, 88, 57,\n\t\t147, 17, 217, 139, 20, 100, 219, 72, 185, 40, 219, 115, 220,\n\t\t227, 219, 81, 34, 49, 180, 41, 1, 18, 75, 93, 35, 222, 85,\n\t\t255, 11, 248, 130, 72, 215, 11, 124, 43, 37, 66, 93, 53, 64,\n\t\t188, 142, 65, 34, 250, 15, 66, 86, 185, 160, 180, 198, 12,\n\t\t197, 82, 72, 114, 210, 250, 223, 207, 88, 127, 71, 68, 5,\n\t\t127, 111, 118, 118, 110, 105, 174, 145, 76, 18, 225, 129,\n\t\t2, 171, 247, 31, 32, 37, 114, 161, 67, 225, 214, 87, 231,\n\t\t150, 230, 138, 99, 70, 218, 152, 91, 154, 235, 21, 252, 31,\n\t\t37, 151, 178, 89, 95, 100, 5, 68, 44, 253, 93, 90, 160, 184,\n\t\t199, 146, 19, 7, 168, 160, 26, 205, 193, 72, 147, 200, 199,\n\t\t161, 85, 175, 228, 118, 42, 45, 19, 97, 183, 58, 207, 246,\n\t\t174, 125, 136, 104, 9, 215, 62, 4, 215, 123, 247, 93, 161,\n\t\t79, 199, 38, 155, 219, 225, 242, 67, 215, 18, 35, 240, 233,\n\t\t135, 174, 237, 29, 91, 21, 119, 214, 211, 83, 249, 120, 196,\n\t\t71, 80, 6, 213, 136, 229, 114, 144, 62, 119, 46, 3, 186, 209,\n\t\t41, 90, 212, 231, 219, 63, 77, 238, 67, 41, 105, 40, 107,\n\t\t39, 236, 65, 170, 7, 135, 46, 140, 200, 25, 253, 245, 179,\n\t\t103, 207, 205, 61, 40, 129, 250, 48, 70, 46, 17, 72, 248,\n\t\t158, 99, 119, 171, 4, 40, 14, 35, 95, 126, 108, 98, 87, 131,\n\t\t36, 36, 214, 197, 168, 68, 242, 13, 60, 242, 82, 62, 33, 161,\n\t\t24, 132, 74, 220, 148, 204, 10, 11, 99, 72, 146, 221, 63,\n\t\t198, 9, 158, 159, 125, 247, 172, 148, 146, 202, 119, 209,\n\t\t156, 108, 152, 33, 239, 92, 23, 145, 32, 138, 186, 140, 146,\n\t\t9, 81, 64, 162, 248, 58, 129, 211, 133, 110, 87, 49, 149,\n\t\t169, 209, 216, 82, 76, 180, 222, 161, 199, 100, 40, 176, 210,\n\t\t134, 129, 195, 36, 204, 47, 17, 11, 39, 36, 106, 95, 127,\n\t\t229, 218, 135, 30, 122, 230, 161, 221, 95, 164, 137, 121,\n\t\t212, 150, 249, 12, 121, 254, 135, 158, 121, 232, 161, 107,\n\t\t175, 91, 236, 209, 128, 52, 150, 96, 88, 248, 58, 172, 77,\n\t\t229, 71, 111, 232, 239, 109, 134, 254, 94, 228, 66, 98, 52,\n\t\t46, 185, 85, 158, 216, 141, 42, 113, 18, 95, 66, 110, 219,\n\t\t220, 194, 176, 136, 59, 156, 154, 79, 29, 102, 49, 207, 193,\n\t\t38, 68, 248, 155, 88, 134, 135, 32, 88, 172, 205, 238, 98,\n\t\t250, 175, 23, 24, 149, 17, 224, 85, 198, 35, 100, 72, 59,\n\t\t240, 12, 39, 32, 198, 188, 70, 191, 214, 130, 44, 207, 126,\n\t\t26, 203, 204, 54, 6, 195, 183, 244, 87, 106, 139, 11, 179,\n\t\t119, 48, 66, 77, 96, 174, 131, 123, 84, 163, 223, 11, 252,\n\t\t185, 252, 224, 93, 80, 148, 73, 106, 71, 62, 175, 255, 54,\n\t\t80, 149, 162, 88, 202, 3, 103, 116, 216, 73, 42, 86, 171,\n\t\t234, 150, 195, 209, 138, 185, 211, 240, 133, 147, 250, 98,\n\t\t157, 249, 45, 166, 94, 156, 72, 38, 39, 138, 117, 67, 133,\n\t\t107, 170, 225, 166, 141, 190, 30, 85, 224, 26, 215, 76, 243,\n\t\t136, 37, 219, 47, 24, 233, 99, 88, 20, 132, 98, 189, 94, 20,\n\t\t4, 127, 93, 40, 212, 139, 112, 137, 116, 59, 227, 229, 136,\n\t\t78, 247, 181, 198, 52, 127, 118, 144, 131, 50, 212, 239, 242,\n\t\t132, 61, 50, 64, 89, 11, 141, 79, 1, 249, 167, 71, 137, 185,\n\t\t112, 165, 67, 197, 58, 230, 20, 209, 232, 212, 167, 250, 239,\n\t\t170, 16, 157, 238, 200, 143, 204, 108, 225, 46, 189, 20, 87,\n\t\t94, 254, 14, 188, 75, 141, 247, 207, 154, 89, 137, 104, 117,\n\t\t226, 175, 192, 98, 150, 232, 117, 59, 179, 230, 83, 201, 71,\n\t\t14, 202, 113, 115, 3, 168, 9, 168, 255, 75, 255, 111, 37,\n\t\t202, 143, 77, 98, 246, 43, 112, 29, 228, 1, 112, 40, 177,\n\t\t73, 137, 34, 204, 251, 83, 101, 155, 12, 234, 182, 69, 36,\n\t\t206, 111, 198, 29, 225, 121, 193, 137, 79, 180, 123, 188,\n\t\t206, 97, 238, 44, 18, 117, 190, 215, 214, 157, 184, 32, 196,\n\t\t157, 95, 82, 142, 123, 79, 241, 136, 19, 240, 83, 222, 113,\n\t\t229, 151, 70, 158, 207, 241, 91, 237, 168, 190, 74, 104, 67,\n\t\t45, 66, 130, 213, 114, 2, 105, 53, 120, 180, 80, 89, 253,\n\t\t101, 229, 112, 115, 199, 229, 70, 209, 94, 111, 252, 164,\n\t\t255, 160, 153, 61, 42, 141, 232, 170, 183, 213, 119, 94, 190,\n\t\t35, 211, 112, 149, 214, 122, 214, 148, 188, 163, 212, 86,\n\t\t77, 124, 213, 121, 80, 3, 221, 32, 246, 112, 232, 163, 162,\n\t\t252, 164, 67, 114, 97, 13, 150, 220, 170, 55, 194, 8, 93,\n\t\t66, 78, 29, 46, 192, 49, 136, 29, 74, 25, 58, 146, 101, 79,\n\t\t174, 227, 217, 3, 150, 16, 183, 73, 220, 219, 109, 130, 166,\n\t\t165, 37, 150, 26, 201, 90, 37, 47, 106, 193, 222, 242, 82,\n\t\t34, 61, 55, 209, 152, 152, 203, 154, 167, 205, 236, 1, 101,\n\t\t124, 92, 81, 198, 199, 223, 221, 218, 155, 53, 151, 12, 117,\n\t\t85, 53, 150, 204, 236, 222, 86, 99, 37, 70, 166, 183, 227,\n\t\t154, 88, 56, 75, 164, 224, 233, 142, 150, 26, 183, 130, 205,\n\t\t206, 244, 137, 36, 25, 132, 227, 142, 115, 37, 185, 128, 162,\n\t\t124, 16, 29, 106, 73, 102, 150, 186, 96, 179, 166, 212, 58,\n\t\t132, 198, 2, 96, 47, 50, 33, 14, 117, 228, 119, 4, 249, 118,\n\t\t211, 175, 156, 113, 23, 225, 69, 160, 65, 186, 214, 107, 15,\n\t\t30, 124, 237, 65, 215, 59, 74, 29, 132, 71, 189, 120, 249,\n\t\t80, 25, 94, 46, 136, 239, 17, 196, 75, 72, 224, 212, 236,\n\t\t109, 162, 176, 126, 208, 63, 237, 246, 163, 222, 148, 153,\n\t\t205, 154, 83, 222, 81, 93, 95, 21, 132, 247, 8, 226, 165,\n\t\t130, 152, 17, 197, 217, 147, 130, 24, 177, 47, 98, 146, 55,\n\t\t219, 34, 12, 155, 20, 19, 35, 226, 209, 52, 183, 195, 102,\n\t\t213, 180, 157, 104, 173, 90, 77, 7, 133, 209, 65, 240, 147,\n\t\t36, 39, 240, 121, 201, 149, 20, 73, 218, 33, 189, 52, 81,\n\t\t238, 255, 118, 88, 177, 184, 172, 38, 166, 73, 141, 207, 146,\n\t\t36, 193, 69, 69, 234, 74, 210, 33, 73, 159, 57, 148, 12, 234,\n\t\t197, 184, 7, 72, 101, 131, 250, 60, 8, 215, 131, 40, 166,\n\t\t251, 1, 168, 56, 4, 40, 180, 78, 164, 29, 140, 170, 68, 167,\n\t\t162, 96, 161, 11, 208, 245, 8, 103, 64, 119, 12, 250, 26,\n\t\t153, 47, 4, 250, 10, 25, 17, 6, 237, 24, 180, 195, 145, 35,\n\t\t172, 167, 97, 153, 206, 232, 187, 109, 53, 237, 150, 137,\n\t\t44, 100, 143, 65, 228, 96, 127, 178, 160, 86, 45, 155, 185,\n\t\t33, 205, 67, 41, 201, 241, 169, 184, 137, 138, 69, 100, 198,\n\t\t211, 60, 231, 72, 12, 74, 113, 92, 138, 135, 146, 195, 241,\n\t\t233, 240, 72, 138, 231, 146, 18, 228, 211, 220, 175, 144,\n\t\t97, 243, 119, 200, 195, 94, 196, 40, 177, 225, 215, 137, 51,\n\t\t2, 100, 57, 73, 17, 32, 20, 20, 137, 83, 178, 74, 92, 18,\n\t\t5, 254, 96, 140, 69, 133, 20, 199, 196, 52, 156, 71, 16, 99,\n\t\t136, 242, 88, 139, 49, 92, 170, 128, 216, 152, 101, 189, 226,\n\t\t209, 6, 25, 115, 239, 35, 47, 174, 255, 130, 196, 99, 33,\n\t\t120, 155, 16, 34, 70, 77, 99, 142, 227, 120, 156, 82, 171,\n\t\t99, 10, 207, 177, 193, 252, 249, 185, 224, 91, 103, 193, 184,\n\t\t63, 127, 14, 91, 157, 19, 99, 209, 200, 231, 117, 60, 199,\n\t\t159, 77, 188, 10, 129, 74, 162, 200, 7, 65, 187, 219, 62,\n\t\t121, 68, 128, 24, 114, 253, 127, 10, 159, 110, 254, 87, 246,\n\t\t63, 178, 83, 144, 33, 76, 97, 60, 117, 128, 175, 96, 19, 7,\n\t\t173, 175, 118, 88, 144, 119, 74, 114, 80, 179, 247, 63, 178,\n\t\t255, 87, 48, 148, 133, 255, 142, 77, 60, 117, 128, 115, 49,\n\t\t6, 97, 156, 8, 157, 63, 3, 44, 246, 238, 43, 244, 134, 72,\n\t\t79, 33, 50, 111, 219, 31, 27, 170, 244, 216, 139, 196, 57,\n\t\t92, 110, 236, 166, 46, 246, 221, 13, 177, 184, 175, 8, 57,\n\t\t50, 179, 54, 106, 139, 89, 243, 19, 112, 34, 147, 227, 156,\n\t\t41, 103, 157, 102, 180, 239, 110, 228, 252, 206, 145, 107,\n\t\t236, 214, 245, 2, 153, 102, 79, 44, 214, 204, 44, 228, 96,\n\t\t117, 235, 116, 140, 226, 98, 133, 49, 54, 207, 1, 29, 108,\n\t\t35, 56, 100, 209, 58, 121, 14, 27, 0, 99, 250, 47, 106, 48,\n\t\t197, 85, 45, 127, 190, 119, 108, 170, 137, 45, 64, 2, 255,\n\t\t12, 23, 186, 7, 105, 151, 61, 216, 189, 254, 235, 154, 246,\n\t\t89, 211, 252, 172, 166, 45, 107, 7, 95, 123, 80, 91, 84, 228,\n\t\t24, 132, 28, 59, 197, 241, 76, 76, 86, 222, 202, 28, 238,\n\t\t74, 126, 213, 164, 238, 97, 230, 122, 184, 196, 166, 217,\n\t\t26, 199, 213, 184, 20, 235, 100, 115, 157, 131, 7, 59, 185,\n\t\t172, 222, 193, 170, 34, 204, 115, 136, 19, 249, 121, 65, 81,\n\t\t241, 246, 168, 191, 192, 0, 25, 18, 11, 8, 42, 150, 57, 218,\n\t\t111, 27, 195, 126, 203, 55, 55, 197, 228, 6, 241, 222, 229,\n\t\t192, 255, 14, 123, 98, 255, 239, 7, 77, 88, 19, 104, 55, 134,\n\t\t192, 31, 218, 206, 18, 131, 89, 125, 177, 222, 240, 197, 210,\n\t\t181, 120, 44, 236, 203, 90, 131, 126, 122, 67, 37, 30, 240,\n\t\t53, 213, 104, 248, 83, 111, 163, 225, 239, 53, 134, 126, 230,\n\t\t65, 174, 254, 166, 24, 226, 22, 122, 133, 175, 79, 221, 173,\n\t\t36, 216, 247, 215, 207, 55, 10, 70, 56, 225, 27, 231, 142,\n\t\t127, 145, 188, 118, 157, 68, 134, 158, 251, 53, 171, 109,\n\t\t207, 237, 52, 157, 121, 150, 178, 210, 150, 220, 42, 242,\n\t\t74, 200, 106, 181, 221, 50, 220, 219, 222, 79, 239, 181, 191,\n\t\t125, 243, 250, 244, 244, 150, 28, 78, 230, 202, 134, 255,\n\t\t53, 102, 118, 43, 217, 91, 85, 99, 205, 80, 255, 3, 127, 168,\n\t\t77, 111, 216, 62, 196, 223, 242, 229, 86, 46, 215, 154, 208,\n\t\t51, 9, 249, 224, 107, 15, 118, 38, 243, 203, 1, 40, 35, 225,\n\t\t97, 35, 239, 32, 65, 162, 201, 61, 95, 74, 10, 83, 249, 33,\n\t\t77, 235, 194, 243, 208, 171, 134, 95, 10, 155, 246, 121, 70,\n\t\t174, 6, 98, 238, 74, 36, 178, 227, 165, 184, 44, 119, 150,\n\t\t18, 247, 202, 178, 92, 220, 206, 45, 127, 139, 188, 153, 130,\n\t\t55, 35, 74, 145, 17, 8, 242, 16, 126, 2, 39, 198, 123, 117,\n\t\t215, 198, 28, 103, 221, 123, 36, 129, 103, 57, 238, 31, 99,\n\t\t71, 182, 185, 113, 242, 174, 238, 221, 115, 103, 153, 11,\n\t\t7, 17, 4, 94, 85, 70, 32, 104, 160, 38, 194, 124, 123, 30,\n\t\t122, 124, 177, 228, 118, 54, 137, 8, 31, 96, 203, 115, 197,\n\t\t206, 193, 134, 219, 255, 113, 174, 53, 6, 199, 250, 191, 25,\n\t\t202, 62, 161, 148, 112, 79, 161, 59, 118, 176, 51, 185, 168,\n\t\t254, 94, 97, 107, 5, 125, 55, 107, 70, 219, 112, 156, 176,\n\t\t180, 246, 8, 103, 76, 128, 86, 21, 70, 47, 226, 230, 60, 108,\n\t\t215, 168, 158, 85, 45, 213, 40, 232, 53, 137, 168, 118, 204,\n\t\t49, 184, 249, 77, 57, 204, 235, 69, 233, 26, 49, 35, 94, 157,\n\t\t72, 104, 71, 51, 137, 107, 144, 140, 177, 140, 36, 77, 251,\n\t\t243, 242, 246, 210, 193, 142, 191, 56, 152, 221, 22, 115,\n\t\t34, 175, 43, 110, 93, 38, 102, 196, 107, 69, 241, 234, 68,\n\t\t230, 168, 106, 24, 123, 177, 172, 202, 72, 51, 181, 19, 165,\n\t\t237, 229, 206, 65, 178, 120, 221, 68, 118, 155, 17, 188, 48,\n\t\t20, 29, 43, 252, 49, 54, 23, 25, 95, 55, 183, 50, 175, 218,\n\t\t194, 225, 120, 90, 232, 132, 131, 66, 167, 81, 40, 44, 23,\n\t\t10, 116, 232, 188, 131, 57, 210, 161, 13, 169, 115, 132, 249,\n\t\t220, 195, 115, 115, 15, 15, 248, 62, 30, 36, 24, 106, 254,\n\t\t252, 120, 3, 120, 7, 248, 192, 255, 59, 115, 100, 88, 87,\n\t\t103, 192, 220, 132, 75, 8, 147, 184, 113, 132, 75, 216, 177,\n\t\t76, 103, 160, 212, 217, 173, 102, 171, 219, 34, 115, 102,\n\t\t163, 140, 232, 156, 233, 181, 170, 26, 196, 195, 88, 204,\n\t\t255, 141, 9, 180, 255, 12, 209, 143, 214, 106, 139, 187, 174,\n\t\t93, 148, 33, 132, 130, 40, 197, 21, 71, 133, 204, 45, 104,\n\t\t195, 204, 238, 169, 139, 197, 50, 195, 51, 144, 67, 2, 132,\n\t\t176, 44, 249, 179, 169, 172, 195, 31, 231, 39, 248, 69, 95,\n\t\t23, 232, 165, 111, 255, 223, 159, 87, 137, 30, 182, 111, 177,\n\t\t86, 91, 92, 172, 165, 28, 8, 121, 94, 73, 149, 224, 231, 37,\n\t\t73, 162, 243, 5, 228, 57, 142, 227, 18, 133, 234, 152, 34,\n\t\t126, 76, 223, 86, 54, 84, 74, 219, 26, 177, 23, 248, 227,\n\t\t27, 241, 44, 111, 70, 233, 14, 245, 27, 131, 202, 86, 184,\n\t\t188, 105, 93, 172, 14, 226, 177, 48, 223, 170, 150, 225, 90,\n\t\t166, 66, 113, 89, 42, 25, 234, 173, 58, 32, 8, 143, 37, 222,\n\t\t45, 8, 111, 79, 220, 35, 8, 183, 197, 55, 128, 120, 43, 137,\n\t\t191, 120, 62, 222, 191, 228, 18, 121, 95, 175, 146, 33, 25,\n\t\t104, 133, 76, 133, 230, 220, 195, 247, 68, 2, 145, 122, 203,\n\t\t36, 143, 161, 183, 186, 26, 182, 217, 239, 16, 62, 220, 56,\n\t\t40, 13, 153, 134, 9, 21, 26, 97, 241, 193, 164, 160, 234,\n\t\t86, 169, 182, 230, 216, 76, 94, 51, 227, 234, 187, 143, 242,\n\t\t50, 198, 135, 223, 136, 99, 194, 209, 119, 171, 113, 83, 251,\n\t\t8, 92, 131, 9, 173, 255, 123, 74, 66, 168, 178, 140, 200,\n\t\t195, 59, 68, 174, 94, 231, 196, 254, 163, 130, 200, 85, 133,\n\t\t132, 2, 47, 213, 18, 80, 12, 227, 86, 62, 27, 244, 241, 113,\n\t\t176, 21, 28, 4, 183, 129, 59, 0, 48, 74, 85, 183, 29, 152,\n\t\t196, 145, 233, 216, 168, 92, 37, 116, 154, 212, 170, 28, 28,\n\t\t33, 4, 82, 132, 253, 221, 155, 135, 132, 164, 109, 59, 108,\n\t\t226, 166, 19, 20, 83, 194, 195, 110, 11, 27, 1, 28, 54, 44,\n\t\t99, 138, 120, 237, 25, 110, 167, 61, 79, 17, 132, 113, 171,\n\t\t250, 97, 133, 21, 4, 86, 41, 9, 34, 35, 8, 140, 40, 92, 175,\n\t\t196, 56, 135, 19, 197, 178, 196, 101, 210, 156, 92, 22, 69,\n\t\t70, 72, 251, 27, 72, 132, 140, 205, 199, 20, 150, 17, 81,\n\t\t89, 126, 195, 166, 159, 93, 250, 32, 203, 163, 60, 82, 216,\n\t\t45, 31, 218, 194, 42, 40, 143, 120, 246, 65, 57, 158, 47,\n\t\t229, 227, 43, 203, 13, 8, 228, 116, 55, 45, 171, 130, 53,\n\t\t99, 9, 234, 19, 118, 251, 218, 105, 33, 38, 110, 125, 211,\n\t\t86, 49, 134, 252, 37, 150, 209, 228, 213, 93, 135, 151, 113,\n\t\t47, 122, 226, 77, 253, 47, 33, 133, 81, 25, 30, 221, 127,\n\t\t63, 226, 25, 149, 81, 16, 220, 166, 155, 241, 124, 60, 158,\n\t\t143, 155, 31, 187, 143, 124, 179, 48, 215, 111, 242, 66, 153,\n\t\t126, 149, 159, 63, 189, 239, 140, 120, 158, 172, 62, 109,\n\t\t50, 146, 213, 39, 48, 36, 171, 239, 211, 170, 248, 20, 77,\n\t\t229, 235, 34, 134, 39, 169, 124, 195, 24, 110, 213, 159, 35,\n\t\t12, 202, 23, 81, 108, 218, 86, 188, 28, 223, 236, 83, 47,\n\t\t118, 90, 214, 114, 207, 137, 195, 151, 226, 78, 111, 41, 18,\n\t\t35, 161, 175, 195, 213, 254, 26, 124, 32, 238, 56, 241, 254,\n\t\t195, 112, 36, 46, 130, 164, 175, 83, 142, 141, 129, 108, 211,\n\t\t38, 24, 134, 97, 80, 26, 161, 60, 32, 118, 158, 80, 35, 9,\n\t\t227, 135, 221, 106, 171, 211, 178, 90, 241, 162, 69, 97, 84,\n\t\t158, 175, 239, 34, 248, 77, 187, 234, 28, 107, 77, 88, 44,\n\t\t21, 14, 105, 88, 230, 191, 136, 249, 67, 171, 189, 254, 218,\n\t\t88, 49, 107, 46, 47, 214, 141, 108, 214, 168, 47, 250, 227,\n\t\t3, 21, 13, 161, 144, 179, 250, 95, 176, 114, 110, 186, 215,\n\t\t131, 133, 102, 162, 102, 229, 134, 186, 156, 95, 175, 89,\n\t\t224, 209, 217, 106, 40, 65, 149, 253, 185, 188, 115, 174,\n\t\t53, 108, 160, 229, 90, 124, 187, 187, 0, 173, 114, 201, 237,\n\t\t132, 118, 146, 14, 124, 94, 95, 174, 116, 43, 203, 250, 74,\n\t\t196, 70, 22, 24, 195, 214, 100, 225, 206, 21, 44, 18, 91,\n\t\t200, 202, 87, 197, 196, 139, 203, 153, 74, 37, 179, 252, 98,\n\t\t66, 220, 211, 218, 108, 86, 107, 253, 165, 24, 103, 235, 235,\n\t\t34, 126, 155, 96, 221, 132, 197, 245, 33, 159, 36, 229, 255,\n\t\t30, 3, 19, 4, 95, 23, 116, 236, 66, 144, 98, 10, 66, 201,\n\t\t48, 15, 73, 86, 57, 45, 173, 116, 186, 158, 101, 106, 76,\n\t\t168, 27, 242, 110, 149, 228, 164, 238, 132, 104, 231, 221,\n\t\t143, 221, 13, 223, 247, 216, 221, 119, 63, 118, 119, 31, 228,\n\t\t79, 110, 115, 15, 204, 155, 126, 209, 218, 66, 81, 75, 149,\n\t\t251, 207, 16, 138, 91, 248, 235, 74, 227, 174, 150, 55, 61,\n\t\t61, 61, 77, 67, 54, 200, 224, 250, 245, 84, 70, 78, 198, 219,\n\t\t126, 201, 228, 130, 156, 156, 22, 245, 152, 252, 1, 2, 55,\n\t\t38, 150, 28, 190, 50, 157, 200, 191, 18, 222, 136, 211, 238,\n\t\t182, 58, 37, 100, 13, 147, 10, 105, 57, 197, 27, 57, 113,\n\t\t221, 226, 209, 187, 207, 144, 111, 123, 89, 20, 110, 228,\n\t\t214, 197, 235, 10, 119, 31, 93, 38, 223, 51, 98, 31, 253,\n\t\t12, 249, 126, 212, 43, 219, 180, 45, 76, 33, 209, 137, 218,\n\t\t93, 42, 151, 166, 97, 176, 93, 198, 200, 23, 228, 3, 138,\n\t\t141, 129, 93, 170, 48, 49, 183, 124, 120, 231, 36, 39, 219,\n\t\t10, 55, 3, 25, 6, 86, 93, 186, 253, 154, 55, 196, 114, 10,\n\t\t188, 175, 94, 172, 166, 46, 166, 217, 124, 107, 149, 140,\n\t\t190, 180, 235, 230, 196, 138, 204, 9, 156, 252, 192, 73, 186,\n\t\t218, 137, 227, 241, 152, 8, 43, 86, 177, 94, 56, 16, 230,\n\t\t241, 49, 17, 57, 121, 59, 0, 197, 77, 61, 9, 4, 49, 15, 184,\n\t\t88, 165, 168, 203, 77, 170, 113, 116, 23, 6, 134, 104, 76,\n\t\t136, 227, 220, 78, 155, 33, 126, 122, 10, 40, 14, 255, 235,\n\t\t68, 54, 107, 178, 252, 129, 254, 234, 1, 158, 37, 1, 31, 220,\n\t\t1, 57, 131, 46, 77, 100, 39, 178, 137, 75, 81, 90, 57, 192,\n\t\t69, 66, 70, 122, 217, 137, 44, 124, 246, 89, 72, 2, 68, 36,\n\t\t105, 26, 99, 249, 125, 49, 219, 239, 45, 118, 236, 125, 50,\n\t\t198, 211, 146, 100, 6, 57, 87, 164, 174, 58, 72, 6, 173, 170,\n\t\t7, 14, 128, 165, 136, 47, 205, 175, 183, 55, 15, 171, 3, 231,\n\t\t195, 64, 168, 107, 19, 245, 18, 53, 207, 159, 37, 186, 57,\n\t\t139, 148, 33, 125, 245, 172, 153, 125, 56, 33, 74, 44, 121,\n\t\t173, 182, 166, 125, 60, 54, 17, 251, 56, 93, 253, 46, 41,\n\t\t123, 239, 57, 25, 88, 180, 4, 130, 0, 191, 173, 246, 72, 98,\n\t\t139, 253, 52, 57, 244, 187, 195, 31, 127, 92, 211, 190, 79,\n\t\t202, 222, 75, 150, 247, 68, 150, 180, 132, 202, 96, 1, 254,\n\t\t101, 36, 19, 244, 66, 8, 89, 175, 154, 4, 187, 234, 119, 224,\n\t\t254, 186, 191, 108, 69, 66, 76, 238, 141, 44, 141, 32, 42,\n\t\t37, 60, 15, 246, 50, 149, 254, 26, 53, 248, 147, 229, 189,\n\t\t145, 229, 239, 6, 22, 76, 254, 60, 245, 252, 185, 107, 249,\n\t\t106, 181, 123, 225, 231, 171, 215, 11, 35, 53, 26, 197, 14,\n\t\t61, 15, 23, 74, 226, 60, 119, 253, 192, 121, 238, 177, 1,\n\t\t130, 43, 226, 243, 126, 139, 133, 87, 127, 206, 11, 61, 239,\n\t\t171, 61, 247, 185, 79, 255, 10, 239, 224, 112, 100, 249, 194,\n\t\t57, 37, 161, 172, 56, 90, 255, 115, 145, 235, 46, 208, 126,\n\t\t206, 173, 97, 180, 197, 140, 214, 103, 237, 156, 70, 18, 250,\n\t\t45, 34, 247, 126, 213, 59, 159, 123, 199, 23, 46, 120, 47,\n\t\t250, 184, 145, 123, 4, 124, 126, 3, 122, 167, 80, 219, 216,\n\t\t52, 170, 81, 30, 30, 202, 112, 181, 74, 2, 115, 200, 114,\n\t\t153, 80, 233, 252, 45, 89, 94, 97, 168, 84, 182, 85, 141,\n\t\t200, 24, 73, 60, 47, 197, 115, 34, 246, 66, 73, 36, 244, 188,\n\t\t80, 251, 1, 149, 57, 86, 104, 190, 46, 117, 180, 69, 134,\n\t\t188, 247, 88, 249, 188, 213, 191, 119, 45, 120, 81, 225, 252,\n\t\t254, 28, 208, 65, 9, 76, 13, 238, 50, 13, 227, 101, 154, 164,\n\t\t198, 250, 34, 115, 244, 158, 158, 61, 114, 187, 211, 203,\n\t\t43, 102, 246, 123, 177, 84, 255, 73, 127, 111, 73, 147, 222,\n\t\t73, 70, 162, 32, 230, 179, 151, 51, 251, 159, 128, 159, 227,\n\t\t76, 189, 95, 164, 69, 119, 202, 9, 246, 159, 162, 125, 6,\n\t\t52, 224, 58, 92, 162, 111, 112, 179, 46, 113, 14, 3, 208,\n\t\t218, 240, 181, 193, 200, 43, 60, 61, 124, 109, 235, 145, 55,\n\t\t24, 198, 254, 240, 240, 203, 68, 250, 247, 53, 252, 22, 138,\n\t\t193, 150, 198, 248, 42, 100, 201, 109, 123, 68, 162, 36, 68,\n\t\t35, 222, 60, 180, 225, 11, 85, 169, 248, 208, 13, 66, 245,\n\t\t3, 55, 100, 246, 239, 221, 102, 47, 98, 83, 195, 144, 147,\n\t\t29, 249, 247, 81, 110, 18, 23, 107, 51, 215, 95, 2, 63, 80,\n\t\t189, 117, 235, 140, 80, 221, 146, 30, 19, 56, 180, 136, 53,\n\t\t19, 67, 86, 177, 229, 167, 58, 247, 77, 161, 210, 236, 76,\n\t\t209, 32, 182, 133, 141, 32, 63, 108, 43, 216, 69, 176, 75,\n\t\t168, 151, 212, 105, 5, 114, 93, 181, 91, 163, 89, 107, 196,\n\t\t151, 71, 194, 108, 232, 33, 210, 66, 219, 243, 172, 55, 15,\n\t\t155, 3, 253, 21, 126, 110, 219, 100, 62, 174, 126, 228, 134,\n\t\t174, 106, 136, 248, 170, 215, 51, 241, 184, 152, 217, 151,\n\t\t45, 43, 134, 90, 40, 187, 5, 211, 40, 31, 245, 15, 244, 159,\n\t\t79, 187, 217, 206, 129, 19, 13, 52, 179, 109, 230, 50, 58,\n\t\t35, 92, 111, 218, 122, 89, 203, 227, 99, 183, 25, 42, 22,\n\t\t223, 146, 156, 49, 144, 101, 165, 165, 148, 152, 74, 199,\n\t\t180, 197, 76, 195, 47, 173, 164, 183, 92, 123, 104, 71, 133,\n\t\t203, 85, 42, 187, 233, 60, 192, 70, 244, 188, 30, 216, 115,\n\t\t238, 12, 77, 89, 127, 171, 4, 13, 213, 157, 134, 86, 49, 62,\n\t\t42, 253, 145, 32, 18, 255, 104, 53, 152, 1, 113, 167, 108,\n\t\t65, 34, 20, 247, 137, 133, 11, 126, 199, 168, 23, 51, 21,\n\t\t39, 46, 244, 207, 186, 233, 181, 180, 43, 140, 183, 53, 83,\n\t\t51, 179, 46, 199, 41, 156, 198, 253, 187, 181, 72, 171, 189,\n\t\t194, 200, 252, 183, 194, 52, 203, 206, 228, 178, 113, 103,\n\t\t5, 46, 251, 98, 213, 122, 123, 156, 176, 118, 253, 6, 59,\n\t\t102, 205, 187, 148, 20, 231, 63, 249, 90, 31, 27, 228, 230,\n\t\t61, 14, 118, 131, 37, 112, 237, 208, 71, 87, 10, 244, 165,\n\t\t72, 124, 14, 101, 246, 33, 100, 243, 24, 197, 160, 47, 249,\n\t\t180, 252, 69, 192, 225, 26, 196, 197, 116, 109, 135, 144,\n\t\t140, 225, 192, 97, 83, 233, 16, 222, 94, 74, 110, 199, 204,\n\t\t51, 187, 27, 149, 218, 34, 203, 142, 179, 236, 98, 173, 210,\n\t\t216, 205, 204, 74, 187, 199, 117, 132, 24, 158, 81, 144, 150,\n\t\t136, 233, 92, 117, 114, 114, 187, 119, 177, 183, 125, 114,\n\t\t178, 202, 233, 177, 132, 134, 20, 134, 103, 16, 210, 199,\n\t\t119, 75, 253, 103, 184, 114, 185, 50, 158, 183, 42, 102, 30,\n\t\t118, 199, 43, 229, 50, 7, 243, 102, 197, 202, 63, 46, 8, 251,\n\t\t234, 187, 119, 206, 84, 171, 51, 59, 119, 215, 247, 9, 194,\n\t\t31, 184, 21, 213, 191, 98, 12, 33, 134, 67, 88, 140, 127,\n\t\t68, 73, 167, 149, 143, 196, 69, 140, 56, 74, 59, 196, 240,\n\t\t106, 197, 237, 255, 96, 82, 85, 43, 86, 46, 227, 84, 84, 117,\n\t\t210, 200, 228, 64, 128, 255, 251, 50, 124, 27, 124, 200, 159,\n\t\t153, 232, 251, 192, 252, 128, 16, 137, 146, 36, 57, 240, 174,\n\t\t132, 140, 251, 95, 83, 82, 188, 134, 68, 229, 91, 127, 165,\n\t\t138, 72, 227, 83, 202, 139, 130, 85, 18, 227, 236, 251, 144,\n\t\t168, 228, 148, 20, 186, 229, 22, 62, 165, 228, 84, 113, 96,\n\t\t19, 122, 30, 174, 195, 223, 39, 146, 17, 48, 106, 44, 185,\n\t\t18, 239, 223, 97, 120, 131, 205, 3, 161, 135, 37, 30, 50,\n\t\t10, 159, 81, 97, 205, 113, 250, 47, 104, 25, 94, 225, 85,\n\t\t245, 201, 103, 73, 182, 15, 129, 4, 130, 151, 179, 130, 172,\n\t\t162, 188, 162, 240, 15, 96, 71, 119, 240, 3, 188, 162, 228,\n\t\t213, 36, 183, 231, 108, 52, 211, 136, 221, 232, 111, 172,\n\t\t51, 111, 35, 241, 11, 51, 4, 179, 161, 84, 103, 73, 42, 244,\n\t\t24, 108, 109, 78, 252, 154, 134, 22, 237, 98, 85, 171, 85,\n\t\t99, 12, 155, 98, 111, 134, 167, 116, 29, 216, 208, 165, 99,\n\t\t107, 5, 40, 10, 19, 2, 63, 253, 60, 25, 208, 104, 172, 251,\n\t\t147, 215, 62, 100, 168, 107, 111, 198, 229, 246, 103, 120,\n\t\t84, 44, 247, 159, 33, 135, 246, 169, 142, 220, 83, 239, 237,\n\t\t221, 33, 40, 104, 91, 52, 15, 236, 161, 107, 85, 227, 51,\n\t\t111, 26, 107, 151, 251, 27, 188, 198, 229, 73, 161, 45, 7,\n\t\t250, 84, 128, 181, 17, 7, 89, 130, 189, 31, 137, 238, 165,\n\t\t220, 118, 184, 233, 55, 53, 18, 78, 90, 108, 206, 179, 148,\n\t\t35, 218, 134, 127, 177, 239, 198, 27, 247, 93, 178, 111, 223,\n\t\t37, 193, 250, 59, 245, 122, 189, 110, 22, 205, 105, 120, 72,\n\t\t177, 19, 26, 158, 206, 215, 235, 117, 184, 124, 221, 219,\n\t\t175, 59, 122, 148, 44, 206, 246, 122, 241, 124, 60, 237, 34,\n\t\t69, 55, 165, 180, 59, 212, 51, 253, 190, 241, 123, 160, 77,\n\t\t251, 117, 197, 50, 113, 169, 92, 170, 67, 68, 108, 97, 131,\n\t\t72, 27, 191, 78, 195, 176, 27, 72, 70, 36, 26, 232, 71, 7,\n\t\t165, 114, 73, 99, 44, 211, 233, 32, 204, 244, 20, 134, 145,\n\t\t184, 139, 21, 229, 208, 161, 56, 141, 221, 211, 152, 100,\n\t\t146, 108, 204, 180, 179, 227, 141, 180, 120, 249, 190, 221,\n\t\t75, 82, 109, 239, 235, 77, 77, 147, 120, 17, 113, 39, 227,\n\t\t206, 223, 253, 88, 225, 132, 71, 224, 22, 89, 220, 238, 191,\n\t\t181, 45, 16, 117, 253, 245, 197, 169, 43, 219, 147, 123, 220,\n\t\t172, 196, 24, 141, 218, 206, 131, 154, 169, 113, 72, 228,\n\t\t165, 255, 124, 99, 92, 36, 99, 249, 203, 240, 161, 160, 13,\n\t\t7, 201, 253, 21, 106, 116, 172, 12, 152, 184, 238, 12, 90,\n\t\t109, 255, 107, 9, 25, 195, 86, 216, 152, 175, 10, 26, 237,\n\t\t251, 54, 53, 230, 145, 54, 108, 3, 23, 0, 207, 191, 226, 240,\n\t\t130, 33, 138, 192, 57, 109, 216, 113, 96, 77, 13, 26, 238,\n\t\t147, 170, 202, 43, 124, 70, 219, 51, 108, 192, 223, 31, 182,\n\t\t90, 37, 201, 239, 217, 195, 37, 85, 191, 49, 47, 142, 230,\n\t\t201, 241, 131, 88, 231, 36, 200, 130, 2, 24, 7, 7, 0, 128,\n\t\t26, 107, 153, 182, 99, 21, 59, 243, 176, 237, 86, 131, 84,\n\t\t45, 139, 239, 148, 173, 86, 240, 199, 119, 138, 86, 68, 13,\n\t\t63, 239, 154, 89, 197, 138, 192, 39, 180, 151, 87, 181, 68,\n\t\t66, 51, 84, 166, 167, 26, 253, 101, 10, 226, 183, 204, 172,\n\t\t246, 68, 77, 92, 141, 252, 193, 157, 140, 168, 104, 66, 44,\n\t\t197, 223, 120, 35, 159, 202, 167, 248, 50, 241, 112, 172,\n\t\t146, 255, 214, 151, 151, 51, 72, 146, 80, 230, 220, 101, 96,\n\t\t71, 255, 101, 248, 101, 208, 1, 87, 0, 192, 219, 17, 51, 58,\n\t\t85, 214, 206, 73, 30, 112, 90, 38, 118, 186, 59, 135, 64,\n\t\t218, 49, 120, 142, 183, 134, 68, 225, 231, 161, 99, 123, 14,\n\t\t194, 22, 115, 74, 17, 7, 182, 119, 229, 247, 163, 96, 217,\n\t\t147, 51, 124, 90, 38, 205, 205, 60, 132, 35, 240, 218, 109,\n\t\t105, 199, 36, 214, 154, 122, 66, 34, 214, 120, 248, 101, 178,\n\t\t250, 149, 217, 40, 94, 118, 65, 211, 205, 100, 154, 154, 21,\n\t\t166, 220, 213, 81, 172, 109, 60, 57, 177, 149, 131, 176, 138,\n\t\t152, 18, 24, 216, 167, 223, 6, 127, 131, 196, 76, 204, 128,\n\t\t54, 216, 70, 226, 41, 125, 193, 146, 48, 73, 185, 229, 18,\n\t\t73, 226, 233, 80, 78, 81, 187, 213, 236, 182, 154, 188, 213,\n\t\t156, 103, 60, 151, 181, 157, 26, 44, 135, 18, 56, 223, 209,\n\t\t32, 182, 189, 142, 91, 205, 67, 230, 78, 67, 140, 9, 60, 250,\n\t\t127, 104, 251, 19, 56, 73, 142, 234, 78, 28, 143, 23, 153,\n\t\t25, 145, 145, 119, 86, 86, 102, 118, 29, 93, 93, 71, 215,\n\t\t209, 119, 79, 85, 87, 101, 207, 76, 79, 79, 205, 161, 153,\n\t\t209, 140, 164, 105, 105, 132, 46, 44, 169, 17, 66, 18, 18,\n\t\t72, 35, 177, 194, 32, 3, 106, 35, 254, 32, 176, 181, 136,\n\t\t227, 47, 1, 94, 240, 24, 47, 94, 201, 11, 187, 2, 243, 51,\n\t\t216, 24, 220, 128, 49, 198, 199, 174, 214, 11, 216, 187, 107,\n\t\t175, 231, 179, 62, 22, 118, 141, 173, 245, 218, 192, 218,\n\t\t166, 230, 247, 201, 136, 172, 171, 187, 71, 136, 253, 248,\n\t\t55, 211, 157, 25, 25, 25, 213, 21, 17, 25, 25, 241, 222, 139,\n\t\t247, 190, 223, 185, 125, 235, 223, 93, 63, 220, 230, 48, 188,\n\t\t34, 253, 131, 239, 235, 129, 99, 224, 233, 92, 161, 12, 213,\n\t\t236, 95, 115, 32, 115, 216, 76, 23, 228, 169, 48, 91, 128,\n\t\t34, 188, 75, 13, 122, 95, 102, 182, 138, 205, 245, 64, 13,\n\t\t224, 144, 149, 194, 230, 250, 157, 135, 84, 203, 211, 113,\n\t\t239, 127, 232, 82, 118, 218, 229, 182, 128, 235, 15, 72, 57,\n\t\t79, 250, 139, 125, 154, 52, 81, 25, 224, 214, 246, 219, 241,\n\t\t195, 234, 143, 250, 210, 222, 101, 171, 217, 251, 239, 162,\n\t\t102, 123, 86, 167, 183, 157, 32, 78, 245, 251, 111, 139, 199,\n\t\t204, 247, 35, 213, 79, 34, 180, 111, 148, 235, 121, 204, 31,\n\t\t98, 52, 162, 188, 234, 39, 190, 240, 156, 79, 114, 152, 63,\n\t\t244, 246, 199, 91, 2, 13, 28, 182, 19, 154, 234, 77, 202,\n\t\t212, 243, 170, 122, 94, 237, 109, 169, 176, 172, 170, 189,\n\t\t231, 147, 224, 99, 188, 76, 217, 15, 182, 24, 133, 46, 71,\n\t\t3, 255, 227, 254, 188, 205, 30, 229, 238, 236, 55, 141, 32,\n\t\t144, 64, 87, 248, 249, 37, 239, 106, 82, 127, 27, 157, 65,\n\t\t55, 162, 87, 162, 7, 118, 235, 21, 94, 115, 29, 143, 122,\n\t\t250, 139, 152, 189, 90, 61, 113, 54, 24, 143, 18, 224, 50,\n\t\t6, 143, 18, 56, 8, 205, 246, 40, 89, 249, 14, 226, 114, 209,\n\t\t232, 86, 169, 137, 185, 251, 156, 0, 61, 127, 146, 57, 58,\n\t\t77, 89, 11, 140, 42, 121, 74, 136, 108, 80, 213, 114, 85,\n\t\t71, 77, 101, 246, 200, 124, 65, 116, 197, 5, 117, 67, 141,\n\t\t127, 122, 47, 168, 42, 56, 42, 92, 24, 149, 166, 123, 127,\n\t\t168, 26, 14, 179, 39, 20, 83, 210, 20, 85, 150, 100, 157,\n\t\t42, 58, 196, 253, 0, 217, 212, 30, 217, 197, 145, 88, 206,\n\t\t4, 176, 37, 158, 163, 127, 5, 126, 19, 190, 138, 90, 8, 85,\n\t\t43, 116, 96, 10, 76, 194, 25, 7, 198, 194, 104, 176, 54, 39,\n\t\t180, 138, 73, 73, 184, 112, 199, 153, 79, 196, 21, 250, 222,\n\t\t57, 102, 102, 76, 173, 21, 197, 23, 111, 61, 243, 123, 188,\n\t\t146, 225, 117, 90, 156, 185, 50, 97, 122, 222, 11, 155, 92,\n\t\t200, 191, 215, 96, 105, 102, 30, 227, 233, 221, 57, 194, 95,\n\t\t247, 123, 151, 126, 21, 35, 248, 157, 17, 204, 28, 228, 117,\n\t\t10, 9, 16, 34, 9, 3, 146, 4, 98, 95, 14, 44, 167, 175, 241,\n\t\t252, 238, 198, 187, 95, 86, 203, 109, 212, 26, 174, 157, 157,\n\t\t90, 186, 103, 99, 198, 180, 239, 95, 226, 26, 150, 80, 25,\n\t\t199, 194, 108, 62, 231, 28, 122, 244, 154, 92, 173, 91, 206,\n\t\t31, 84, 232, 236, 198, 155, 143, 157, 126, 109, 239, 235,\n\t\t92, 241, 121, 45, 63, 46, 240, 227, 185, 157, 186, 164, 45,\n\t\t244, 176, 221, 227, 170, 51, 120, 41, 146, 151, 36, 18, 241,\n\t\t200, 237, 81, 104, 242, 237, 120, 114, 219, 236, 111, 18,\n\t\t243, 77, 233, 29, 16, 210, 23, 87, 55, 86, 19, 232, 169, 229,\n\t\t45, 47, 235, 117, 99, 153, 0, 33, 216, 130, 159, 28, 240,\n\t\t210, 139, 77, 234, 2, 22, 218, 108, 20, 164, 105, 98, 203,\n\t\t138, 98, 73, 126, 139, 107, 170, 213, 255, 18, 31, 170, 39,\n\t\t52, 173, 247, 87, 90, 86, 11, 52, 13, 82, 90, 86, 131, 42,\n\t\t207, 254, 47, 162, 204, 55, 180, 108, 124, 91, 11, 226, 59,\n\t\t41, 77, 27, 219, 31, 159, 230, 44, 97, 59, 246, 199, 37, 191,\n\t\t229, 87, 252, 176, 76, 235, 35, 200, 39, 59, 11, 9, 213, 143,\n\t\t31, 186, 23, 47, 118, 167, 189, 43, 55, 147, 12, 161, 32,\n\t\t138, 219, 253, 179, 233, 65, 177, 216, 93, 62, 95, 76, 114,\n\t\t188, 225, 13, 177, 87, 13, 91, 220, 55, 94, 32, 103, 244,\n\t\t247, 136, 18, 12, 190, 228, 192, 31, 66, 18, 7, 206, 15, 238,\n\t\t75, 193, 77, 186, 75, 77, 165, 212, 90, 71, 209, 148, 14,\n\t\t63, 212, 118, 92, 171, 47, 168, 59, 126, 224, 243, 132, 105,\n\t\t189, 162, 198, 200, 194, 130, 36, 137, 95, 194, 52, 184, 56,\n\t\t154, 211, 251, 173, 61, 144, 146, 70, 237, 148, 12, 149, 248,\n\t\t56, 223, 199, 177, 115, 78, 34, 196, 231, 34, 63, 65, 114,\n\t\t219, 133, 8, 18, 247, 174, 212, 174, 248, 253, 225, 30, 38,\n\t\t66, 70, 255, 58, 234, 119, 127, 219, 51, 139, 69, 211, 131,\n\t\t231, 75, 75, 34, 66, 113, 169, 116, 222, 203, 122, 155, 93,\n\t\t187, 28, 134, 229, 240, 153, 238, 133, 36, 245, 45, 174, 129,\n\t\t111, 115, 109, 28, 138, 75, 165, 222, 11, 220, 52, 238, 148,\n\t\t150, 18, 240, 142, 237, 98, 241, 13, 97, 92, 244, 221, 197,\n\t\t98, 63, 185, 143, 63, 146, 109, 174, 171, 252, 30, 126, 12,\n\t\t126, 137, 91, 30, 3, 66, 7, 122, 216, 229, 162, 116, 119,\n\t\t129, 123, 6, 33, 126, 19, 161, 122, 207, 214, 179, 100, 131,\n\t\t16, 227, 138, 53, 153, 154, 84, 94, 91, 205, 203, 196, 162,\n\t\t114, 62, 90, 147, 169, 69, 229, 181, 40, 207, 207, 252, 218,\n\t\t164, 242, 193, 43, 244, 44, 129, 140, 158, 37, 189, 191, 32,\n\t\t196, 120, 135, 158, 161, 245, 87, 81, 89, 149, 201, 93, 83,\n\t\t75, 252, 188, 60, 117, 23, 145, 84, 153, 238, 186, 174, 19,\n\t\t98, 32, 52, 230, 59, 124, 18, 161, 200, 167, 35, 160, 2, 123,\n\t\t198, 82, 182, 134, 158, 180, 245, 168, 229, 143, 34, 143,\n\t\t12, 207, 23, 62, 130, 121, 196, 213, 170, 170, 174, 38, 191,\n\t\t240, 6, 110, 254, 232, 98, 242, 179, 51, 35, 219, 159, 23,\n\t\t102, 126, 150, 96, 224, 235, 67, 113, 116, 87, 148, 127, 28,\n\t\t127, 100, 228, 15, 172, 34, 97, 31, 65, 93, 220, 133, 110,\n\t\t98, 229, 29, 183, 48, 93, 166, 54, 59, 207, 152, 27, 92, 122,\n\t\t220, 115, 102, 121, 244, 75, 147, 95, 232, 114, 240, 23, 126,\n\t\t184, 73, 224, 165, 140, 253, 246, 237, 52, 156, 99, 126, 137,\n\t\t35, 96, 167, 119, 224, 49, 92, 62, 12, 117, 18, 210, 207,\n\t\t220, 116, 185, 191, 95, 228, 195, 77, 116, 199, 206, 90, 141,\n\t\t196, 205, 198, 242, 200, 18, 138, 208, 145, 228, 77, 73, 48,\n\t\t15, 71, 216, 75, 154, 147, 16, 5, 190, 91, 25, 122, 100, 186,\n\t\t227, 134, 253, 33, 166, 143, 103, 118, 55, 40, 131, 123, 56,\n\t\t60, 128, 163, 126, 212, 218, 18, 144, 76, 214, 5, 53, 173,\n\t\t182, 132, 168, 116, 222, 244, 24, 221, 184, 104, 122, 189,\n\t\t237, 88, 12, 137, 151, 208, 174, 170, 54, 186, 154, 219, 251,\n\t\t41, 225, 145, 14, 15, 187, 218, 125, 138, 242, 15, 124, 203,\n\t\t200, 245, 204, 222, 11, 148, 65, 119, 100, 124, 49, 110, 99,\n\t\t14, 105, 133, 46, 66, 61, 106, 211, 78, 115, 184, 229, 16,\n\t\t193, 118, 119, 115, 253, 28, 117, 244, 115, 219, 193, 250,\n\t\t92, 240, 176, 94, 208, 219, 186, 14, 219, 221, 173, 115, 186,\n\t\t67, 207, 173, 127, 38, 152, 91, 15, 30, 214, 245, 182, 94,\n\t\t208, 7, 254, 58, 95, 230, 243, 127, 41, 158, 149, 61, 225,\n\t\t244, 239, 227, 100, 222, 168, 38, 124, 229, 245, 218, 18,\n\t\t180, 57, 127, 42, 71, 248, 227, 82, 227, 34, 174, 180, 163,\n\t\t78, 212, 225, 70, 210, 226, 197, 106, 174, 88, 204, 193, 252,\n\t\t149, 119, 157, 186, 122, 97, 165, 178, 112, 32, 63, 103, 123,\n\t\t203, 191, 127, 245, 169, 230, 53, 75, 171, 203, 158, 61, 151,\n\t\t63, 176, 80, 105, 65, 177, 218, 169, 110, 245, 254, 188, 83,\n\t\t221, 218, 110, 46, 214, 142, 186, 154, 140, 77, 103, 75, 103,\n\t\t70, 17, 50, 238, 209, 218, 212, 188, 95, 52, 152, 190, 229,\n\t\t152, 88, 30, 177, 69, 205, 162, 38, 58, 144, 240, 102, 88,\n\t\t2, 225, 215, 194, 195, 80, 229, 65, 200, 114, 172, 123, 36,\n\t\t28, 234, 227, 11, 248, 83, 95, 127, 42, 156, 157, 116, 37,\n\t\t6, 88, 166, 210, 53, 201, 72, 184, 134, 50, 96, 146, 59, 223,\n\t\t124, 59, 119, 205, 248, 11, 225, 192, 190, 253, 216, 173,\n\t\t229, 35, 29, 95, 247, 142, 74, 84, 145, 250, 47, 141, 78,\n\t\t143, 122, 122, 241, 150, 149, 91, 63, 207, 183, 249, 106,\n\t\t9, 58, 199, 248, 222, 99, 6, 77, 162, 37, 116, 26, 33, 17,\n\t\t73, 23, 86, 202, 181, 254, 206, 30, 52, 35, 30, 38, 30, 133,\n\t\t173, 118, 216, 17, 202, 253, 208, 45, 184, 222, 12, 194, 52,\n\t\t143, 151, 171, 47, 66, 165, 188, 8, 117, 33, 68, 22, 96, 147,\n\t\t209, 96, 243, 245, 148, 117, 4, 26, 17, 58, 212, 236, 253,\n\t\t221, 244, 131, 111, 42, 182, 242, 211, 15, 158, 61, 212, 124,\n\t\t211, 99, 241, 168, 169, 204, 79, 84, 100, 192, 18, 118, 40,\n\t\t224, 148, 238, 228, 93, 73, 145, 92, 2, 56, 245, 100, 151,\n\t\t178, 77, 6, 17, 7, 45, 234, 125, 115, 26, 244, 230, 161, 179,\n\t\t15, 110, 23, 139, 15, 196, 231, 233, 55, 241, 112, 152, 237,\n\t\t169, 9, 144, 49, 38, 186, 109, 101, 28, 137, 16, 221, 70,\n\t\t248, 210, 223, 94, 218, 198, 255, 140, 115, 178, 180, 196,\n\t\t108, 204, 173, 21, 226, 39, 126, 250, 112, 24, 98, 245, 52,\n\t\t148, 154, 17, 223, 54, 173, 148, 202, 177, 230, 38, 220, 102,\n\t\t252, 82, 59, 192, 183, 100, 107, 75, 148, 206, 79, 22, 110,\n\t\t42, 20, 110, 42, 76, 46, 16, 186, 84, 203, 30, 97, 41, 120,\n\t\t127, 138, 197, 181, 102, 241, 52, 198, 29, 136, 25, 51, 93,\n\t\t216, 114, 224, 202, 198, 45, 4, 74, 252, 31, 144, 91, 26,\n\t\t247, 216, 118, 239, 175, 1, 164, 175, 152, 30, 179, 216, 87,\n\t\t36, 0, 249, 206, 59, 101, 36, 93, 250, 251, 75, 219, 248,\n\t\t237, 124, 111, 62, 199, 99, 59, 219, 173, 193, 210, 214, 242,\n\t\t171, 2, 116, 162, 95, 61, 183, 149, 196, 111, 64, 183, 143,\n\t\t35, 3, 255, 160, 165, 188, 31, 108, 123, 41, 253, 101, 204,\n\t\t133, 167, 92, 86, 21, 70, 156, 238, 133, 75, 124, 46, 3, 116,\n\t\t225, 111, 156, 114, 217, 217, 178, 172, 94, 1, 156, 248, 21,\n\t\t100, 131, 152, 8, 17, 115, 34, 120, 77, 198, 205, 76, 149,\n\t\t157, 166, 130, 157, 248, 130, 206, 208, 176, 52, 66, 134,\n\t\t44, 80, 96, 146, 116, 55, 185, 213, 165, 108, 99, 152, 124,\n\t\t110, 152, 68, 163, 99, 78, 112, 14, 120, 232, 57, 244, 105,\n\t\t132, 162, 144, 214, 163, 248, 39, 10, 233, 0, 85, 189, 179,\n\t\t146, 96, 94, 219, 80, 31, 195, 192, 30, 210, 147, 236, 164,\n\t\t43, 185, 12, 125, 201, 78, 124, 237, 203, 225, 109, 255, 144,\n\t\t235, 97, 93, 162, 122, 20, 210, 95, 91, 88, 88, 248, 200,\n\t\t130, 248, 119, 175, 24, 226, 159, 195, 120, 50, 1, 193, 94,\n\t\t44, 187, 28, 112, 195, 237, 159, 56, 12, 137, 91, 94, 72,\n\t\t192, 178, 147, 211, 130, 40, 166, 184, 227, 165, 75, 9, 58,\n\t\t201, 63, 225, 95, 251, 192, 194, 194, 194, 119, 22, 22, 22,\n\t\t142, 47, 44, 44, 252, 63, 11, 11, 11, 240, 32, 127, 177, 222,\n\t\t43, 17, 233, 165, 124, 252, 159, 182, 50, 47, 241, 175, 181,\n\t\t22, 22, 22, 70, 198, 238, 28, 90, 66, 87, 15, 253, 57, 146,\n\t\t85, 109, 52, 197, 3, 62, 71, 156, 58, 194, 122, 187, 226,\n\t\t135, 237, 33, 125, 79, 107, 160, 175, 247, 83, 240, 61, 38,\n\t\t92, 91, 250, 199, 69, 102, 182, 184, 63, 86, 203, 100, 239,\n\t\t220, 218, 222, 18, 193, 232, 163, 101, 190, 205, 204, 115,\n\t\t194, 232, 34, 142, 231, 76, 182, 200, 248, 46, 248, 6, 99,\n\t\t221, 238, 243, 142, 136, 54, 31, 22, 65, 192, 109, 190, 111,\n\t\t133, 237, 248, 157, 31, 218, 239, 201, 200, 59, 54, 98, 187,\n\t\t47, 64, 179, 19, 225, 31, 39, 178, 180, 95, 50, 149, 253,\n\t\t170, 45, 94, 126, 91, 221, 79, 12, 105, 191, 36, 147, 47,\n\t\t219, 135, 175, 58, 108, 195, 166, 100, 146, 135, 136, 34,\n\t\t229, 101, 198, 122, 92, 158, 97, 76, 206, 75, 10, 121, 136,\n\t\t152, 210, 166, 159, 205, 250, 125, 127, 152, 207, 195, 49,\n\t\t238, 3, 121, 32, 214, 22, 250, 113, 159, 97, 65, 212, 162,\n\t\t31, 209, 105, 129, 136, 239, 172, 29, 230, 20, 16, 22, 240,\n\t\t137, 50, 90, 39, 173, 102, 48, 5, 52, 10, 66, 30, 6, 202,\n\t\t225, 103, 58, 127, 198, 61, 3, 23, 13, 102, 100, 140, 48,\n\t\t100, 138, 187, 160, 203, 129, 100, 102, 67, 41, 37, 235, 107,\n\t\t161, 106, 103, 13, 133, 146, 137, 9, 149, 16, 167, 44, 251,\n\t\t212, 101, 150, 69, 43, 171, 6, 251, 189, 180, 218, 176, 20,\n\t\t118, 80, 203, 122, 172, 169, 37, 1, 155, 159, 36, 153, 9,\n\t\t149, 232, 70, 198, 189, 162, 169, 59, 55, 155, 33, 49, 205,\n\t\t211, 182, 113, 52, 83, 94, 211, 101, 221, 210, 227, 111, 177,\n\t\t138, 22, 48, 137, 96, 9, 102, 203, 147, 31, 92, 209, 230,\n\t\t203, 6, 91, 99, 94, 86, 107, 178, 145, 152, 186, 188, 96,\n\t\t197, 30, 215, 68, 75, 253, 109, 42, 146, 14, 90, 3, 132, 205,\n\t\t223, 19, 251, 138, 124, 163, 244, 124, 58, 207, 104, 111,\n\t\t139, 79, 100, 9, 225, 84, 55, 159, 190, 132, 210, 121, 177,\n\t\t139, 154, 79, 83, 14, 12, 146, 236, 2, 142, 250, 193, 76,\n\t\t163, 14, 58, 59, 226, 7, 147, 128, 167, 28, 128, 125, 205,\n\t\t168, 179, 178, 200, 159, 51, 37, 5, 60, 5, 36, 12, 214, 161,\n\t\t94, 43, 83, 11, 10, 82, 39, 234, 52, 163, 117, 168, 47, 226,\n\t\t184, 171, 227, 165, 167, 53, 0, 94, 17, 62, 51, 143, 123,\n\t\t89, 15, 3, 24, 18, 72, 138, 180, 65, 117, 12, 128, 21, 185,\n\t\t160, 61, 67, 82, 132, 76, 221, 81, 196, 24, 203, 132, 82,\n\t\t201, 63, 113, 7, 33, 24, 136, 42, 111, 80, 130, 37, 3, 0,\n\t\t123, 89, 79, 75, 60, 108, 110, 140, 7, 6, 38, 186, 76, 20,\n\t\t25, 38, 48, 33, 60, 161, 177, 103, 84, 217, 81, 107, 53, 73,\n\t\t37, 68, 2, 73, 206, 124, 20, 235, 84, 38, 0, 19, 88, 167,\n\t\t186, 34, 197, 159, 178, 216, 192, 135, 150, 199, 187, 150,\n\t\t81, 115, 100, 183, 181, 92, 59, 132, 133, 213, 118, 212, 6,\n\t\t234, 150, 118, 249, 152, 137, 48, 214, 11, 148, 113, 53, 158,\n\t\t175, 33, 14, 70, 252, 237, 248, 1, 87, 234, 147, 109, 8, 135,\n\t\t135, 96, 62, 71, 135, 224, 40, 176, 61, 220, 161, 64, 108,\n\t\t224, 203, 43, 115, 137, 37, 224, 209, 9, 2, 55, 29, 85, 9,\n\t\t237, 28, 134, 74, 173, 30, 212, 11, 56, 172, 172, 3, 37, 180,\n\t\t210, 9, 107, 245, 86, 192, 1, 226, 113, 61, 76, 115, 23, 198,\n\t\t126, 205, 146, 113, 225, 147, 1, 96, 160, 24, 29, 176, 174,\n\t\t46, 24, 184, 94, 199, 198, 194, 13, 178, 166, 194, 34, 216,\n\t\t101, 3, 215, 213, 133, 5, 181, 142, 175, 2, 155, 198, 153,\n\t\t223, 211, 48, 214, 108, 189, 247, 171, 51, 81, 52, 3, 39,\n\t\t178, 34, 194, 164, 216, 187, 104, 122, 41, 235, 133, 125,\n\t\t254, 228, 76, 113, 102, 210, 47, 40, 169, 138, 95, 152, 197,\n\t\t147, 51, 251, 158, 246, 247, 205, 204, 20, 102, 105, 156,\n\t\t243, 148, 173, 176, 21, 67, 99, 142, 97, 69, 51, 208, 157,\n\t\t137, 178, 53, 17, 51, 242, 59, 221, 84, 62, 133, 144, 124,\n\t\t233, 7, 151, 190, 0, 143, 193, 87, 80, 26, 205, 163, 55, 160,\n\t\t199, 16, 138, 98, 193, 132, 251, 19, 210, 88, 58, 8, 194,\n\t\t248, 191, 18, 144, 74, 157, 199, 193, 199, 119, 59, 81, 39,\n\t\t106, 174, 67, 171, 19, 151, 139, 199, 24, 169, 213, 23, 105,\n\t\t189, 38, 128, 102, 59, 43, 245, 90, 20, 203, 192, 226, 63,\n\t\t119, 205, 227, 134, 234, 176, 32, 133, 194, 183, 147, 211,\n\t\t110, 83, 139, 212, 196, 24, 140, 101, 185, 87, 4, 133, 148,\n\t\t187, 34, 185, 164, 186, 194, 52, 105, 209, 48, 37, 194, 100,\n\t\t40, 73, 26, 91, 169, 18, 87, 90, 113, 83, 133, 0, 176, 204,\n\t\t48, 150, 176, 105, 156, 214, 242, 6, 155, 96, 70, 94, 147,\n\t\t100, 89, 198, 84, 98, 82, 64, 136, 98, 187, 132, 16, 226,\n\t\t218, 10, 33, 65, 70, 197, 154, 27, 248, 154, 31, 184, 54,\n\t\t243, 3, 34, 131, 42, 105, 35, 247, 37, 77, 162, 146, 162,\n\t\t60, 19, 93, 19, 101, 230, 178, 245, 151, 249, 218, 150, 42,\n\t\t145, 26, 182, 212, 243, 154, 28, 143, 254, 155, 85, 11, 215,\n\t\t136, 164, 110, 105, 62, 96, 5, 3, 200, 90, 252, 25, 66, 168,\n\t\t164, 73, 178, 36, 1, 6, 12, 36, 244, 153, 227, 6, 129, 230,\n\t\t135, 174, 205, 130, 128, 18, 21, 116, 241, 45, 142, 162, 208,\n\t\t192, 150, 45, 73, 115, 67, 95, 11, 2, 215, 97, 126, 72, 0,\n\t\t131, 4, 178, 242, 181, 141, 213, 213, 70, 118, 62, 43, 246,\n\t\t194, 7, 120, 46, 11, 163, 243, 73, 226, 29, 213, 82, 94, 132,\n\t\t41, 13, 119, 185, 95, 198, 19, 89, 239, 105, 198, 158, 246,\n\t\t178, 80, 88, 95, 55, 140, 192, 208, 215, 215, 57, 89, 249,\n\t\t216, 21, 108, 85, 115, 151, 80, 174, 234, 61, 165, 101, 181,\n\t\t167, 188, 222, 94, 101, 146, 171, 29, 246, 220, 58, 138, 208,\n\t\t213, 232, 214, 29, 30, 93, 43, 157, 22, 245, 211, 33, 161,\n\t\t149, 117, 136, 42, 150, 148, 236, 209, 5, 83, 59, 75, 65,\n\t\t63, 158, 162, 82, 128, 176, 82, 171, 199, 75, 226, 58, 120,\n\t\t59, 75, 157, 55, 189, 4, 61, 165, 75, 58, 110, 83, 223, 63,\n\t\t187, 33, 25, 182, 167, 197, 77, 76, 23, 105, 117, 112, 27,\n\t\t163, 36, 107, 99, 118, 191, 222, 116, 59, 228, 101, 180, 152,\n\t\t30, 220, 133, 11, 67, 12, 150, 213, 83, 150, 81, 63, 188,\n\t\t124, 54, 195, 108, 141, 84, 59, 213, 32, 245, 173, 225, 77,\n\t\t112, 120, 78, 230, 236, 242, 225, 186, 97, 157, 74, 5, 189,\n\t\t23, 134, 55, 19, 127, 254, 175, 194, 23, 209, 62, 116, 16,\n\t\t33, 133, 155, 254, 87, 58, 81, 123, 196, 242, 150, 108, 155,\n\t\t6, 225, 128, 232, 82, 128, 149, 113, 226, 194, 58, 161, 165,\n\t\t88, 33, 172, 248, 176, 248, 71, 181, 84, 118, 101, 158, 207,\n\t\t67, 124, 26, 114, 252, 84, 157, 25, 134, 174, 27, 43, 252,\n\t\t200, 230, 114, 217, 212, 31, 85, 61, 64, 94, 117, 98, 179,\n\t\t91, 154, 111, 173, 220, 156, 249, 16, 163, 69, 162, 241, 195,\n\t\t135, 12, 183, 206, 226, 130, 198, 10, 63, 178, 185, 197, 118,\n\t\t107, 190, 244, 131, 160, 94, 15, 204, 95, 254, 101, 52, 134,\n\t\t41, 201, 248, 108, 133, 134, 182, 127, 169, 45, 64, 128, 18,\n\t\t172, 138, 74, 185, 214, 231, 196, 132, 77, 211, 235, 109,\n\t\t121, 102, 49, 30, 27, 221, 106, 167, 218, 205, 85, 127, 91,\n\t\t120, 70, 108, 123, 230, 69, 174, 130, 23, 139, 185, 42, 31,\n\t\t102, 221, 234, 213, 137, 131, 226, 80, 182, 94, 225, 190,\n\t\t126, 215, 161, 31, 67, 119, 238, 196, 206, 216, 3, 160, 32,\n\t\t249, 246, 67, 163, 1, 71, 85, 127, 104, 24, 236, 91, 152,\n\t\t227, 78, 22, 166, 92, 220, 223, 239, 24, 248, 135, 9, 120,\n\t\t13, 203, 32, 35, 254, 44, 166, 167, 242, 220, 183, 254, 218,\n\t\t91, 123, 219, 98, 23, 227, 16, 95, 89, 47, 240, 49, 245, 36,\n\t\t63, 158, 79, 220, 163, 186, 150, 182, 161, 89, 191, 160, 219,\n\t\t194, 17, 70, 28, 61, 243, 2, 207, 94, 46, 47, 46, 150, 151,\n\t\t87, 185, 213, 176, 39, 72, 233, 110, 29, 25, 79, 189, 23,\n\t\t6, 190, 57, 2, 127, 3, 195, 54, 122, 57, 143, 82, 137, 53,\n\t\t191, 74, 16, 207, 112, 241, 72, 169, 251, 194, 56, 34, 20,\n\t\t194, 90, 212, 137, 202, 21, 225, 199, 30, 45, 226, 186, 160,\n\t\t105, 14, 11, 56, 92, 94, 105, 175, 196, 147, 101, 51, 44,\n\t\t200, 126, 218, 95, 199, 28, 188, 63, 160, 22, 166, 1, 124,\n\t\t143, 177, 181, 43, 25, 51, 20, 137, 202, 20, 75, 213, 134,\n\t\t234, 168, 141, 170, 132, 169, 76, 37, 197, 96, 236, 202, 53,\n\t\t198, 138, 243, 249, 57, 93, 98, 20, 131, 94, 62, 87, 42, 5,\n\t\t170, 156, 146, 101, 230, 59, 102, 233, 92, 89, 7, 204, 63,\n\t\t168, 207, 229, 23, 110, 82, 60, 101, 42, 112, 25, 85, 192,\n\t\t200, 117, 85, 181, 155, 215, 65, 161, 204, 13, 166, 20, 79,\n\t\t113, 89, 233, 134, 138, 142, 49, 209, 0, 107, 51, 89, 9, 218,\n\t\t231, 27, 38, 165, 138, 179, 184, 124, 162, 36, 65, 118, 70,\n\t\t195, 160, 16, 166, 87, 110, 40, 13, 214, 233, 95, 199, 8,\n\t\t190, 200, 185, 32, 16, 12, 77, 224, 130, 75, 62, 110, 143,\n\t\t82, 31, 185, 74, 200, 186, 203, 28, 127, 238, 63, 211, 128,\n\t\t254, 130, 170, 78, 83, 95, 61, 255, 130, 234, 211, 222, 127,\n\t\t252, 9, 69, 153, 37, 150, 114, 197, 135, 21, 91, 153, 85,\n\t\t148, 175, 43, 54, 164, 105, 64, 123, 127, 168, 170, 255, 138,\n\t\t6, 180, 74, 233, 131, 255, 75, 85, 223, 247, 38, 113, 251,\n\t\t138, 127, 17, 23, 183, 149, 223, 23, 219, 195, 151, 254, 33,\n\t\t145, 25, 194, 120, 254, 84, 198, 34, 165, 235, 181, 132, 27,\n\t\t221, 247, 18, 79, 130, 1, 39, 40, 159, 182, 160, 225, 134,\n\t\t234, 11, 106, 232, 174, 62, 171, 27, 46, 220, 239, 26, 250,\n\t\t179, 219, 107, 215, 95, 191, 214, 168, 76, 123, 233, 6, 159,\n\t\t164, 205, 21, 251, 116, 18, 73, 253, 230, 103, 141, 66, 193,\n\t\t120, 246, 205, 240, 252, 245, 111, 184, 222, 159, 142, 165,\n\t\t140, 108, 48, 215, 30, 225, 239, 201, 240, 254, 40, 128, 95,\n\t\t218, 115, 170, 216, 133, 51, 87, 188, 238, 254, 94, 247, 254,\n\t\t235, 248, 204, 192, 117, 91, 71, 32, 3, 112, 81, 4, 14, 233,\n\t\t111, 185, 254, 250, 183, 232, 222, 112, 227, 181, 55, 18,\n\t\t229, 38, 240, 36, 127, 21, 19, 248, 205, 100, 223, 230, 80,\n\t\t60, 18, 109, 176, 112, 2, 212, 38, 126, 57, 87, 24, 199, 205,\n\t\t152, 130, 96, 10, 10, 48, 8, 182, 223, 185, 131, 3, 61, 234,\n\t\t77, 43, 94, 168, 93, 81, 159, 189, 218, 157, 51, 34, 51, 192,\n\t\t6, 182, 166, 213, 146, 19, 231, 204, 22, 226, 140, 222, 39,\n\t\t71, 246, 116, 126, 137, 31, 191, 56, 91, 191, 66, 11, 61,\n\t\t101, 218, 163, 134, 228, 155, 145, 49, 151, 186, 74, 211,\n\t\t167, 38, 175, 176, 203, 106, 156, 71, 166, 226, 172, 207,\n\t\t243, 119, 71, 208, 163, 190, 111, 232, 7, 201, 219, 160, 192,\n\t\t87, 80, 133, 71, 33, 31, 252, 33, 109, 8, 11, 208, 74, 7,\n\t\t151, 109, 193, 37, 226, 85, 200, 222, 45, 168, 205, 194, 233,\n\t\t246, 233, 222, 127, 218, 85, 253, 237, 217, 218, 139, 85,\n\t\t127, 229, 116, 251, 244, 131, 123, 214, 125, 104, 111, 156,\n\t\t224, 92, 236, 99, 243, 31, 199, 194, 16, 94, 130, 224, 182,\n\t\t252, 202, 94, 216, 24, 98, 54, 107, 112, 135, 135, 11, 241,\n\t\t108, 123, 49, 62, 54, 134, 153, 155, 252, 200, 51, 224, 212,\n\t\t102, 172, 156, 193, 169, 222, 103, 55, 61, 51, 129, 13, 138,\n\t\t239, 240, 189, 141, 196, 111, 198, 70, 57, 84, 71, 45, 116,\n\t\t152, 243, 64, 220, 189, 7, 239, 234, 88, 92, 247, 96, 230,\n\t\t245, 195, 151, 144, 142, 218, 227, 155, 108, 202, 200, 223,\n\t\t26, 221, 122, 5, 71, 189, 168, 170, 23, 213, 111, 137, 205,\n\t\t207, 238, 94, 167, 6, 163, 124, 164, 63, 79, 89, 191, 56,\n\t\t108, 10, 229, 51, 110, 156, 233, 93, 66, 106, 252, 239, 212,\n\t\t78, 88, 220, 228, 71, 192, 203, 196, 135, 55, 242, 114, 99,\n\t\t122, 82, 9, 205, 160, 35, 67, 61, 105, 10, 130, 117, 224,\n\t\t112, 165, 139, 64, 98, 57, 202, 130, 88, 140, 42, 192, 192,\n\t\t89, 51, 226, 0, 148, 163, 183, 98, 1, 107, 29, 132, 118, 244,\n\t\t129, 73, 234, 42, 52, 159, 87, 128, 168, 154, 60, 153, 92,\n\t\t81, 197, 81, 95, 201, 77, 156, 255, 49, 159, 167, 196, 86,\n\t\t71, 111, 240, 116, 162, 22, 173, 39, 119, 101, 77, 37, 160,\n\t\t12, 203, 202, 228, 19, 220, 62, 250, 225, 193, 7, 7, 55, 120,\n\t\t90, 172, 233, 95, 224, 227, 75, 229, 235, 44, 170, 134, 177,\n\t\t104, 142, 59, 145, 133, 43, 229, 122, 60, 163, 46, 66, 187,\n\t\t30, 9, 228, 184, 78, 24, 132, 209, 48, 0, 128, 208, 250, 114,\n\t\t121, 185, 188, 143, 114, 82, 179, 78, 252, 226, 247, 223,\n\t\t20, 248, 90, 68, 193, 162, 157, 104, 254, 186, 220, 85, 63,\n\t\t182, 111, 165, 121, 178, 35, 169, 68, 161, 39, 75, 161, 36,\n\t\t145, 188, 193, 172, 244, 113, 99, 117, 99, 213, 88, 169, 44,\n\t\t183, 48, 62, 86, 41, 239, 191, 115, 74, 53, 243, 68, 254,\n\t\t31, 252, 133, 185, 103, 243, 128, 170, 74, 225, 237, 238,\n\t\t91, 102, 14, 21, 189, 159, 8, 65, 38, 242, 129, 55, 229, 203,\n\t\t196, 148, 28, 213, 244, 83, 175, 15, 4, 52, 66, 112, 243,\n\t\t180, 121, 211, 63, 51, 162, 37, 147, 218, 178, 249, 233, 29,\n\t\t239, 205, 49, 248, 50, 90, 64, 199, 249, 124, 57, 9, 105,\n\t\t154, 56, 230, 144, 126, 130, 3, 0, 242, 4, 159, 43, 155, 97,\n\t\t212, 41, 0, 161, 138, 208, 25, 98, 125, 132, 55, 123, 86,\n\t\t132, 130, 194, 111, 71, 135, 187, 94, 214, 59, 112, 194, 203,\n\t\t122, 39, 14, 120, 89, 175, 251, 236, 143, 55, 234, 63, 167,\n\t\t103, 77, 98, 244, 94, 120, 229, 19, 83, 251, 171, 63, 175,\n\t\t101, 41, 37, 198, 141, 160, 192, 43, 159, 120, 2, 78, 166,\n\t\t58, 83, 63, 183, 80, 225, 35, 247, 145, 148, 244, 64, 124,\n\t\t126, 64, 74, 61, 194, 23, 251, 202, 194, 207, 181, 207, 40,\n\t\t155, 148, 132, 89, 242, 119, 75, 37, 59, 231, 211, 87, 80,\n\t\t98, 232, 89, 210, 94, 58, 186, 212, 151, 143, 187, 28, 199,\n\t\t60, 64, 69, 52, 139, 58, 59, 144, 204, 59, 75, 194, 161, 33,\n\t\t236, 4, 205, 40, 86, 114, 44, 160, 81, 187, 198, 253, 36,\n\t\t155, 157, 144, 123, 66, 212, 41, 9, 131, 103, 255, 234, 217,\n\t\t103, 255, 234, 217, 223, 83, 237, 236, 234, 241, 19, 7, 253,\n\t\t181, 181, 41, 82, 246, 173, 76, 74, 126, 115, 177, 91, 172,\n\t\t173, 212, 150, 106, 7, 74, 199, 87, 179, 182, 74, 224, 194,\n\t\t153, 246, 118, 251, 76, 124, 56, 55, 153, 155, 215, 106, 65,\n\t\t88, 211, 156, 140, 148, 206, 24, 105, 243, 9, 83, 146, 204,\n\t\t108, 173, 246, 90, 234, 231, 237, 160, 166, 205, 231, 38,\n\t\t51, 163, 92, 107, 37, 132, 226, 225, 207, 93, 124, 9, 181,\n\t\t18, 124, 223, 168, 31, 53, 70, 48, 98, 11, 247, 94, 107, 57,\n\t\t239, 123, 213, 129, 51, 83, 135, 139, 251, 135, 222, 189,\n\t\t88, 86, 154, 199, 95, 126, 246, 134, 121, 216, 126, 243, 253,\n\t\t237, 76, 176, 111, 159, 42, 201, 251, 7, 190, 189, 191, 180,\n\t\t88, 110, 221, 184, 186, 56, 145, 82, 250, 120, 171, 208, 143,\n\t\t225, 157, 65, 215, 199, 122, 131, 183, 139, 34, 131, 250,\n\t\t123, 239, 13, 123, 229, 250, 34, 80, 225, 251, 59, 0, 198,\n\t\t227, 155, 155, 97, 115, 31, 71, 200, 227, 110, 118, 241, 18,\n\t\t238, 245, 41, 44, 46, 142, 114, 105, 244, 125, 56, 248, 207,\n\t\t23, 169, 196, 230, 44, 139, 148, 73, 74, 82, 141, 120, 198,\n\t\t48, 172, 80, 214, 93, 73, 7, 77, 86, 37, 75, 50, 114, 75,\n\t\t113, 238, 149, 59, 216, 45, 224, 121, 205, 58, 197, 39, 26,\n\t\t113, 188, 132, 72, 138, 25, 51, 174, 219, 81, 153, 197, 28,\n\t\t107, 170, 169, 1, 179, 9, 153, 96, 22, 131, 48, 97, 189, 24,\n\t\t149, 193, 93, 84, 71, 203, 123, 181, 219, 235, 212, 198, 144,\n\t\t75, 56, 252, 93, 180, 119, 83, 174, 82, 85, 253, 8, 95, 234,\n\t\t143, 232, 170, 186, 169, 88, 202, 39, 246, 168, 103, 239,\n\t\t99, 52, 205, 61, 135, 55, 210, 116, 83, 81, 224, 58, 81, 29,\n\t\t177, 47, 116, 146, 207, 29, 33, 223, 157, 240, 227, 111, 152,\n\t\t2, 30, 251, 75, 98, 73, 188, 221, 106, 175, 116, 66, 37, 174,\n\t\t163, 63, 90, 71, 110, 174, 244, 43, 101, 226, 195, 86, 252,\n\t\t125, 119, 208, 207, 25, 198, 38, 77, 119, 187, 105, 218, 251,\n\t\t115, 70, 159, 27, 212, 208, 210, 30, 127, 142, 50, 56, 65,\n\t\t182, 232, 29, 244, 55, 12, 99, 51, 174, 113, 55, 174, 237,\n\t\t155, 40, 123, 188, 95, 195, 199, 53, 107, 139, 209, 93, 252,\n\t\t100, 45, 193, 230, 43, 150, 196, 234, 94, 108, 42, 194, 116,\n\t\t42, 64, 4, 197, 174, 98, 231, 32, 56, 231, 207, 83, 198, 224,\n\t\t133, 29, 52, 42, 91, 105, 186, 201, 107, 185, 21, 15, 2, 177,\n\t\t85, 241, 153, 113, 30, 149, 199, 121, 55, 38, 181, 4, 85,\n\t\t235, 243, 187, 37, 207, 76, 66, 6, 42, 240, 247, 248, 40,\n\t\t186, 14, 161, 170, 95, 105, 239, 89, 171, 23, 31, 192, 163,\n\t\t11, 236, 142, 245, 178, 13, 197, 109, 200, 236, 166, 127,\n\t\t25, 27, 178, 128, 196, 57, 209, 20, 47, 82, 182, 221, 237,\n\t\t62, 189, 155, 16, 102, 116, 120, 38, 46, 15, 207, 15, 164,\n\t\t200, 177, 247, 80, 69, 89, 206, 5, 253, 218, 23, 229, 172,\n\t\t25, 109, 207, 104, 210, 91, 135, 246, 74, 34, 130, 253, 136,\n\t\t46, 91, 123, 81, 221, 140, 181, 245, 201, 84, 70, 181, 217,\n\t\t75, 115, 209, 218, 139, 20, 71, 180, 254, 38, 46, 16, 244,\n\t\t190, 5, 217, 148, 150, 50, 165, 49, 63, 172, 9, 85, 157, 216,\n\t\t195, 61, 107, 66, 224, 123, 200, 35, 239, 235, 65, 116, 12,\n\t\t93, 181, 231, 27, 91, 179, 161, 222, 105, 239, 244, 47, 106,\n\t\t237, 177, 103, 195, 197, 189, 52, 137, 250, 111, 218, 216,\n\t\t219, 124, 133, 161, 23, 74, 165, 106, 110, 35, 17, 229, 189,\n\t\t131, 5, 93, 215, 13, 189, 80, 208, 13, 93, 143, 79, 186, 160,\n\t\t217, 248, 154, 120, 231, 118, 188, 229, 95, 209, 245, 66,\n\t\t41, 85, 203, 85, 19, 187, 230, 242, 193, 2, 55, 5, 20, 10,\n\t\t220, 130, 16, 127, 60, 42, 50, 139, 61, 197, 223, 197, 126,\n\t\t44, 250, 17, 216, 230, 145, 169, 87, 160, 179, 8, 69, 5, 216,\n\t\t243, 77, 167, 126, 237, 50, 147, 110, 44, 7, 117, 154, 94,\n\t\t191, 61, 52, 10, 105, 69, 192, 194, 196, 42, 222, 127, 38,\n\t\t105, 99, 107, 116, 46, 216, 34, 151, 153, 110, 131, 120, 178,\n\t\t125, 86, 180, 107, 243, 231, 143, 127, 244, 10, 200, 80, 154,\n\t\t63, 158, 167, 190, 58, 161, 155, 141, 145, 137, 98, 233, 209,\n\t\t235, 64, 217, 57, 215, 98, 205, 38, 208, 224, 13, 251, 159,\n\t\t31, 61, 254, 243, 255, 71, 245, 249, 135, 95, 242, 156, 219,\n\t\t140, 39, 16, 30, 77, 146, 52, 153, 59, 136, 237, 57, 231,\n\t\t246, 103, 218, 205, 193, 220, 187, 147, 249, 136, 63, 141,\n\t\t11, 124, 174, 221, 236, 207, 188, 223, 19, 115, 110, 95, 47,\n\t\t254, 42, 10, 81, 109, 20, 187, 98, 101, 8, 92, 223, 105, 134,\n\t\t94, 84, 167, 97, 44, 154, 46, 129, 13, 132, 198, 122, 254,\n\t\t127, 205, 111, 228, 31, 206, 231, 111, 191, 129, 219, 226,\n\t\t110, 184, 142, 229, 216, 203, 247, 253, 252, 193, 131, 44,\n\t\t149, 99, 7, 175, 181, 20, 252, 223, 89, 142, 253, 215, 124,\n\t\t254, 225, 252, 70, 254, 246, 27, 184, 165, 238, 134, 235,\n\t\t24, 235, 125, 123, 57, 46, 148, 75, 177, 131, 215, 153, 202,\n\t\t8, 190, 84, 23, 190, 138, 52, 84, 230, 90, 73, 31, 153, 166,\n\t\t115, 24, 94, 90, 133, 48, 234, 86, 59, 213, 98, 172, 115,\n\t\t254, 208, 122, 109, 221, 90, 201, 85, 171, 57, 167, 59, 241,\n\t\t232, 75, 171, 33, 225, 251, 83, 0, 95, 66, 38, 90, 64, 71,\n\t\t208, 143, 161, 251, 209, 123, 120, 116, 152, 207, 109, 39,\n\t\t181, 168, 83, 95, 137, 10, 224, 7, 212, 194, 245, 69, 136,\n\t\t47, 107, 245, 50, 137, 175, 129, 95, 214, 58, 181, 2, 196,\n\t\t114, 19, 77, 115, 118, 179, 56, 43, 234, 68, 5, 8, 211, 126,\n\t\t154, 246, 179, 22, 161, 94, 166, 100, 17, 58, 81, 71, 17,\n\t\t160, 115, 181, 246, 10, 7, 27, 46, 224, 122, 96, 65, 173,\n\t\t190, 40, 87, 106, 148, 132, 220, 81, 99, 153, 47, 67, 181,\n\t\t168, 19, 54, 11, 248, 187, 105, 11, 79, 41, 41, 91, 199, 5,\n\t\t28, 206, 173, 131, 1, 178, 197, 152, 129, 117, 40, 135, 153,\n\t\t2, 216, 216, 245, 116, 108, 1, 28, 188, 210, 198, 100, 18,\n\t\t64, 87, 248, 109, 13, 160, 65, 222, 121, 213, 107, 129, 128,\n\t\t165, 107, 38, 38, 0, 215, 238, 79, 57, 204, 85, 116, 54, 1,\n\t\t41, 98, 105, 154, 165, 96, 93, 147, 53, 74, 234, 68, 118,\n\t\t210, 138, 81, 40, 215, 26, 254, 77, 107, 251, 129, 234, 4,\n\t\t52, 19, 78, 158, 121, 205, 212, 122, 103, 249, 183, 45, 237,\n\t\t161, 251, 83, 62, 123, 245, 125, 218, 38, 172, 205, 94, 125,\n\t\t70, 102, 42, 96, 71, 59, 121, 42, 44, 66, 209, 191, 250, 42,\n\t\t166, 203, 142, 118, 226, 202, 153, 181, 172, 233, 169, 149,\n\t\t197, 245, 53, 73, 20, 136, 246, 31, 222, 167, 30, 128, 251,\n\t\t78, 83, 218, 110, 171, 22, 128, 163, 173, 238, 143, 206, 130,\n\t\t140, 181, 180, 139, 149, 71, 242, 243, 154, 101, 179, 122,\n\t\t168, 185, 24, 176, 162, 222, 160, 166, 117, 137, 185, 249,\n\t\t192, 97, 176, 182, 255, 186, 9, 162, 19, 91, 243, 239, 58,\n\t\t117, 26, 156, 201, 89, 129, 199, 137, 138, 184, 11, 155, 104,\n\t\t66, 236, 117, 21, 112, 58, 214, 60, 98, 177, 149, 179, 111,\n\t\t112, 184, 184, 96, 24, 241, 0, 39, 151, 95, 209, 109, 52,\n\t\t186, 175, 88, 94, 63, 95, 187, 137, 165, 113, 38, 131, 211,\n\t\t218, 141, 181, 243, 63, 237, 217, 54, 83, 24, 149, 96, 115,\n\t\t38, 106, 101, 91, 209, 204, 218, 236, 81, 170, 107, 247, 223,\n\t\t175, 233, 244, 232, 236, 218, 103, 251, 177, 12, 220, 182,\n\t\t56, 30, 247, 205, 163, 87, 167, 135, 200, 110, 233, 62, 74,\n\t\t16, 71, 240, 79, 84, 255, 176, 25, 175, 71, 233, 214, 32,\n\t\t138, 243, 26, 110, 198, 252, 20, 63, 186, 92, 141, 219, 152,\n\t\t93, 155, 157, 93, 251, 130, 227, 108, 57, 206, 91, 227, 228,\n\t\t236, 247, 71, 98, 132, 255, 29, 215, 213, 102, 68, 126, 177,\n\t\t120, 15, 47, 188, 11, 123, 114, 42, 225, 43, 26, 255, 238,\n\t\t160, 83, 79, 228, 123, 18, 68, 157, 102, 191, 14, 195, 189,\n\t\t53, 47, 251, 12, 51, 65, 57, 84, 240, 26, 101, 9, 76, 182,\n\t\t111, 101, 70, 24, 35, 133, 134, 56, 203, 47, 254, 64, 50,\n\t\t88, 174, 108, 78, 122, 204, 144, 236, 199, 251, 202, 18, 230,\n\t\t126, 28, 132, 219, 183, 114, 8, 1, 245, 91, 123, 153, 184,\n\t\t104, 41, 44, 193, 119, 191, 185, 218, 183, 103, 125, 211,\n\t\t113, 67, 248, 181, 208, 61, 221, 123, 124, 25, 38, 224, 237,\n\t\t223, 220, 22, 38, 172, 237, 111, 58, 179, 179, 100, 89, 232,\n\t\t96, 253, 118, 221, 59, 130, 92, 25, 255, 209, 69, 72, 162,\n\t\t91, 4, 59, 127, 178, 232, 77, 1, 15, 112, 241, 211, 2, 147,\n\t\t78, 220, 78, 238, 197, 106, 143, 128, 79, 235, 68, 29, 14,\n\t\t228, 219, 247, 83, 79, 98, 196, 248, 250, 193, 239, 183, 69,\n\t\t183, 192, 7, 24, 77, 89, 55, 31, 100, 36, 163, 42, 170, 68,\n\t\t44, 131, 209, 91, 136, 66, 20, 162, 81, 166, 47, 17, 98, 25,\n\t\t38, 164, 236, 92, 80, 12, 51, 148, 169, 170, 107, 171, 166,\n\t\t110, 201, 32, 3, 246, 36, 70, 85, 85, 49, 101, 133, 74, 88,\n\t\t146, 101, 79, 82, 100, 201, 102, 73, 103, 158, 164, 236, 192,\n\t\t117, 204, 167, 140, 26, 10, 200, 146, 33, 83, 166, 16, 133,\n\t\t17, 67, 114, 176, 68, 137, 238, 59, 57, 43, 44, 50, 58, 233,\n\t\t185, 182, 145, 118, 76, 89, 9, 100, 41, 35, 43, 58, 101, 52,\n\t\t77, 108, 12, 32, 25, 18, 86, 229, 132, 215, 190, 223, 71,\n\t\t183, 115, 28, 227, 129, 199, 72, 123, 133, 119, 65, 252, 216,\n\t\t19, 235, 148, 104, 98, 188, 182, 244, 51, 4, 164, 247, 18,\n\t\t212, 14, 227, 142, 0, 232, 225, 56, 61, 1, 223, 2, 15, 3,\n\t\t190, 67, 24, 22, 128, 250, 162, 219, 162, 78, 20, 118, 218,\n\t\t43, 2, 1, 57, 61, 5, 65, 210, 81, 167, 45, 102, 49, 243, 152,\n\t\t28, 16, 199, 210, 169, 58, 37, 97, 162, 48, 44, 17, 69, 198,\n\t\t54, 96, 13, 203, 76, 194, 42, 33, 50, 33, 154, 162, 235, 147,\n\t\t134, 97, 171, 19, 39, 139, 25, 166, 106, 96, 187, 169, 41,\n\t\t135, 233, 38, 248, 129, 11, 50, 40, 210, 237, 147, 216, 55,\n\t\t137, 236, 201, 114, 170, 111, 158, 248, 134, 229, 153, 204,\n\t\t98, 184, 64, 137, 68, 153, 164, 129, 172, 98, 85, 158, 2,\n\t\t44, 99, 13, 143, 254, 97, 192, 58, 99, 178, 49, 117, 178,\n\t\t102, 26, 12, 76, 198, 92, 230, 21, 77, 166, 79, 105, 57, 101,\n\t\t9, 91, 84, 150, 238, 84, 109, 125, 105, 150, 72, 74, 129,\n\t\t88, 36, 167, 142, 245, 223, 106, 44, 127, 14, 118, 174, 163,\n\t\t68, 143, 59, 4, 43, 98, 53, 170, 197, 234, 70, 58, 228, 35,\n\t\t36, 72, 250, 81, 220, 228, 61, 27, 242, 254, 22, 34, 169,\n\t\t16, 82, 6, 35, 80, 12, 66, 241, 145, 86, 52, 120, 10, 135,\n\t\t161, 35, 250, 239, 59, 46, 16, 192, 138, 164, 50, 93, 150,\n\t\t90, 83, 83, 231, 30, 150, 214, 169, 226, 73, 42, 14, 101,\n\t\t141, 80, 166, 40, 132, 40, 10, 101, 207, 41, 6, 150, 137,\n\t\t4, 50, 72, 50, 6, 130, 21, 67, 194, 19, 88, 170, 147, 120,\n\t\t8, 105, 24, 7, 146, 164, 171, 166, 66, 108, 170, 176, 126,\n\t\t223, 221, 62, 137, 37, 89, 189, 70, 147, 9, 102, 82, 77, 123,\n\t\t248, 156, 237, 42, 158, 4, 242, 2, 223, 106, 22, 127, 249,\n\t\t174, 9, 42, 27, 146, 100, 202, 146, 37, 97, 83, 1, 23, 131,\n\t\t131, 137, 38, 97, 67, 33, 160, 154, 138, 194, 184, 29, 219,\n\t\t28, 233, 43, 139, 251, 226, 151, 80, 21, 205, 12, 252, 148,\n\t\t143, 163, 51, 35, 253, 215, 174, 248, 233, 160, 149, 236,\n\t\t147, 116, 250, 243, 80, 187, 226, 71, 220, 11, 101, 252, 60,\n\t\t230, 185, 220, 223, 80, 241, 69, 239, 60, 217, 240, 76, 85,\n\t\t53, 189, 34, 159, 111, 218, 203, 203, 203, 231, 147, 95, 129,\n\t\t128, 187, 217, 80, 77, 207, 51, 213, 164, 193, 223, 139, 47,\n\t\t87, 227, 207, 252, 255, 249, 237, 139, 141, 198, 234, 248,\n\t\t207, 61, 194, 70, 170, 54, 188, 170, 106, 122, 141, 93, 56,\n\t\t30, 181, 97, 43, 228, 29, 177, 237, 233, 102, 71, 192, 245,\n\t\t214, 57, 118, 111, 50, 252, 95, 54, 98, 169, 221, 188, 153,\n\t\t130, 201, 150, 62, 176, 68, 52, 2, 52, 169, 83, 40, 226, 240,\n\t\t249, 207, 119, 58, 245, 120, 246, 180, 177, 172, 145, 250,\n\t\t216, 119, 251, 168, 130, 154, 195, 239, 174, 242, 247, 176,\n\t\t25, 117, 162, 26, 223, 194, 30, 189, 74, 237, 89, 143, 85,\n\t\t27, 192, 38, 190, 34, 78, 31, 27, 187, 154, 219, 179, 98,\n\t\t78, 80, 42, 251, 140, 237, 58, 246, 158, 31, 171, 229, 248,\n\t\t26, 19, 162, 57, 180, 127, 88, 207, 233, 50, 161, 92, 5, 142,\n\t\t135, 117, 172, 119, 141, 95, 47, 202, 35, 149, 37, 131, 186,\n\t\t190, 188, 86, 193, 134, 164, 25, 53, 147, 73, 38, 224, 111,\n\t\t122, 163, 151, 160, 234, 150, 157, 25, 212, 152, 153, 131,\n\t\t10, 195, 76, 129, 74, 138, 27, 4, 174, 34, 209, 194, 204,\n\t\t232, 149, 17, 164, 12, 218, 251, 86, 82, 113, 201, 96, 245,\n\t\t68, 199, 252, 45, 248, 62, 124, 17, 233, 156, 255, 249, 8,\n\t\t218, 64, 8, 149, 19, 2, 139, 192, 79, 211, 102, 36, 164, 79,\n\t\t129, 154, 226, 167, 131, 218, 143, 208, 158, 184, 243, 225,\n\t\t143, 26, 249, 89, 172, 226, 217, 101, 166, 243, 5, 245, 238,\n\t\t211, 235, 234, 210, 85, 63, 66, 251, 196, 19, 233, 230, 189,\n\t\t48, 146, 164, 40, 244, 214, 164, 229, 214, 221, 113, 47, 205,\n\t\t164, 172, 210, 162, 58, 104, 36, 145, 71, 155, 76, 228, 29,\n\t\t77, 222, 235, 89, 101, 80, 61, 241, 184, 21, 111, 37, 9, 184,\n\t\t70, 216, 169, 213, 107, 220, 206, 76, 198, 31, 78, 53, 241,\n\t\t193, 137, 149, 45, 11, 166, 32, 136, 196, 227, 186, 69, 177,\n\t\t156, 19, 42, 78, 203, 174, 99, 77, 200, 152, 90, 217, 87,\n\t\t143, 63, 29, 203, 177, 20, 217, 74, 49, 138, 229, 9, 203,\n\t\t113, 229, 52, 238, 191, 143, 83, 118, 94, 78, 97, 245, 132,\n\t\t157, 195, 146, 107, 170, 88, 54, 123, 255, 48, 242, 140, 222,\n\t\t39, 231, 109, 102, 72, 24, 171, 166, 139, 165, 156, 125, 66,\n\t\t197, 104, 71, 27, 2, 84, 137, 181, 132, 193, 202, 198, 87,\n\t\t30, 174, 207, 174, 44, 130, 13, 161, 128, 211, 142, 103, 95,\n\t\t178, 231, 80, 203, 18, 178, 161, 90, 180, 84, 146, 136, 42,\n\t\t255, 239, 82, 137, 90, 234, 6, 207, 186, 105, 175, 17, 182,\n\t\t32, 89, 210, 178, 98, 171, 141, 134, 204, 8, 150, 82, 141,\n\t\t134, 106, 43, 203, 34, 179, 247, 194, 232, 232, 34, 151, 46,\n\t\t93, 250, 117, 12, 124, 108, 133, 104, 9, 173, 161, 211, 232,\n\t\t22, 132, 56, 202, 87, 196, 145, 245, 8, 199, 10, 19, 70, 204,\n\t\t14, 116, 162, 192, 194, 117, 81, 65, 90, 91, 199, 33, 161,\n\t\t36, 168, 139, 218, 215, 150, 240, 34, 80, 174, 204, 198, 109,\n\t\t34, 193, 20, 94, 143, 31, 15, 181, 128, 3, 191, 54, 59, 240,\n\t\t33, 133, 128, 238, 88, 179, 147, 150, 219, 251, 255, 137,\n\t\t244, 76, 193, 114, 225, 209, 210, 196, 76, 250, 141, 207,\n\t\t156, 164, 10, 206, 132, 35, 233, 119, 132, 192, 232, 45, 26,\n\t\t214, 86, 20, 72, 223, 10, 105, 28, 130, 76, 21, 158, 241,\n\t\t71, 229, 76, 168, 164, 228, 240, 190, 121, 21, 171, 254, 90,\n\t\t23, 54, 20, 229, 148, 99, 21, 102, 44, 183, 247, 205, 65,\n\t\t18, 52, 133, 158, 124, 230, 141, 233, 153, 76, 209, 157, 194,\n\t\t35, 233, 198, 203, 137, 134, 67, 156, 6, 101, 69, 195, 47,\n\t\t104, 88, 187, 69, 161, 50, 240, 140, 205, 242, 43, 166, 41,\n\t\t168, 243, 247, 133, 114, 74, 177, 243, 99, 207, 177, 136,\n\t\t22, 209, 201, 145, 177, 40, 54, 50, 184, 125, 130, 63, 205,\n\t\t218, 18, 142, 85, 224, 29, 35, 50, 201, 198, 227, 165, 197,\n\t\t163, 189, 93, 145, 164, 44, 1, 170, 76, 77, 201, 42, 144,\n\t\t172, 36, 41, 21, 27, 107, 216, 62, 49, 254, 100, 235, 131,\n\t\t27, 149, 225, 39, 20, 10, 164, 63, 13, 2, 147, 50, 21, 153,\n\t\t96, 215, 197, 68, 174, 100, 36, 6, 74, 81, 150, 139, 189,\n\t\t191, 29, 121, 222, 191, 209, 207, 85, 198, 75, 243, 113, 240,\n\t\t91, 248, 39, 225, 179, 124, 28, 116, 208, 9, 116, 3, 186,\n\t\t147, 35, 128, 13, 158, 189, 18, 55, 185, 94, 171, 215, 58,\n\t\t97, 64, 131, 176, 0, 251, 56, 128, 52, 23, 170, 226, 209,\n\t\t192, 225, 165, 33, 140, 223, 202, 29, 211, 207, 34, 236, 152,\n\t\t142, 200, 88, 247, 220, 53, 28, 8, 248, 28, 127, 106, 26,\n\t\t16, 229, 212, 67, 198, 4, 224, 226, 235, 30, 127, 93, 17,\n\t\t240, 132, 129, 51, 161, 110, 106, 79, 220, 126, 248, 53, 87,\n\t\t16, 83, 79, 231, 207, 140, 207, 77, 95, 30, 191, 12, 198,\n\t\t250, 110, 123, 48, 28, 92, 254, 45, 39, 227, 47, 148, 174,\n\t\t155, 0, 188, 255, 248, 241, 253, 128, 39, 174, 115, 167, 48,\n\t\t198, 183, 62, 122, 224, 85, 135, 48, 198, 249, 59, 46, 63,\n\t\t91, 21, 254, 122, 124, 110, 230, 152, 191, 124, 108, 136,\n\t\t168, 190, 51, 73, 100, 0, 161, 157, 67, 48, 218, 200, 208,\n\t\t79, 135, 123, 69, 3, 208, 3, 80, 192, 33, 215, 156, 23, 241,\n\t\t33, 232, 180, 184, 92, 214, 60, 12, 235, 248, 61, 255, 238,\n\t\t61, 55, 159, 98, 179, 100, 208, 16, 50, 203, 78, 221, 252,\n\t\t51, 35, 11, 181, 4, 128, 101, 42, 215, 114, 102, 232, 106,\n\t\t41, 208, 125, 9, 176, 133, 1, 235, 54, 124, 246, 61, 119,\n\t\t159, 125, 75, 46, 157, 94, 204, 77, 247, 235, 59, 157, 91,\n\t\t76, 167, 115, 111, 57, 123, 247, 141, 35, 75, 249, 135, 48,\n\t\t200, 184, 155, 171, 234, 238, 132, 121, 152, 41, 186, 174,\n\t\t82, 170, 82, 29, 239, 104, 219, 65, 116, 10, 189, 12, 161,\n\t\t234, 229, 107, 139, 95, 180, 217, 161, 152, 219, 146, 225,\n\t\t95, 143, 58, 181, 68, 250, 238, 64, 245, 178, 141, 120, 98,\n\t\t207, 14, 248, 102, 127, 42, 164, 150, 26, 207, 132, 38, 19,\n\t\t51, 225, 149, 151, 105, 9, 188, 230, 69, 186, 226, 200, 96,\n\t\t166, 84, 109, 101, 108, 158, 20, 235, 238, 175, 39, 239, 125,\n\t\t149, 227, 109, 221, 134, 16, 26, 106, 200, 47, 214, 220, 29,\n\t\t52, 9, 97, 255, 113, 135, 151, 239, 192, 68, 151, 254, 183,\n\t\t123, 54, 122, 123, 23, 157, 130, 254, 56, 223, 21, 53, 47,\n\t\t63, 4, 84, 174, 113, 127, 225, 69, 90, 191, 49, 206, 187,\n\t\t192, 150, 249, 78, 233, 19, 151, 31, 18, 187, 56, 34, 246,\n\t\t237, 193, 17, 177, 179, 237, 180, 70, 66, 238, 1, 221, 89,\n\t\t132, 113, 150, 136, 207, 237, 110, 213, 183, 227, 23, 246,\n\t\t230, 248, 245, 37, 26, 89, 250, 192, 24, 79, 4, 37, 76, 29,\n\t\t173, 238, 43, 226, 151, 176, 211, 169, 19, 77, 198, 54, 247,\n\t\t151, 66, 69, 216, 230, 251, 243, 83, 104, 9, 29, 70, 103,\n\t\t209, 237, 124, 14, 27, 247, 104, 125, 241, 235, 86, 245, 71,\n\t\t44, 47, 124, 233, 204, 62, 98, 243, 142, 148, 216, 106, 191,\n\t\t236, 237, 11, 201, 249, 50, 135, 237, 23, 191, 157, 196, 179,\n\t\t67, 119, 16, 7, 146, 180, 121, 167, 215, 95, 248, 67, 174,\n\t\t119, 182, 233, 135, 149, 223, 124, 145, 74, 9, 199, 130, 23,\n\t\t187, 61, 210, 232, 189, 147, 208, 253, 97, 37, 208, 88, 12,\n\t\t140, 139, 202, 156, 141, 123, 80, 75, 14, 9, 36, 184, 27,\n\t\t70, 217, 154, 58, 45, 220, 140, 223, 209, 126, 67, 56, 198,\n\t\t201, 176, 97, 29, 30, 184, 235, 8, 20, 208, 139, 185, 170,\n\t\t91, 112, 157, 56, 231, 107, 191, 255, 126, 137, 111, 38, 60,\n\t\t114, 195, 234, 230, 42, 79, 73, 23, 120, 160, 168, 91, 112,\n\t\t187, 110, 193, 173, 101, 227, 163, 8, 243, 69, 79, 191, 154,\n\t\t99, 82, 157, 191, 225, 145, 213, 205, 85, 145, 124, 245, 24,\n\t\t150, 209, 20, 58, 129, 80, 228, 143, 15, 169, 112, 135, 23,\n\t\t211, 72, 69, 69, 102, 172, 83, 182, 87, 218, 227, 14, 218,\n\t\t157, 109, 207, 116, 184, 101, 216, 244, 158, 227, 117, 141,\n\t\t175, 254, 246, 247, 223, 47, 181, 171, 191, 156, 206, 231,\n\t\t211, 197, 116, 254, 46, 55, 243, 200, 199, 31, 17, 181, 126,\n\t\t225, 188, 233, 85, 115, 203, 185, 170, 247, 97, 207, 236,\n\t\t167, 97, 243, 233, 87, 255, 66, 181, 205, 1, 8, 51, 238, 191,\n\t\t196, 55, 60, 242, 200, 13, 194, 19, 170, 95, 239, 18, 124,\n\t\t17, 73, 200, 69, 57, 132, 252, 40, 164, 125, 118, 224, 122,\n\t\t84, 175, 181, 87, 56, 10, 74, 61, 234, 4, 225, 241, 99, 149,\n\t\t204, 204, 39, 42, 78, 48, 215, 218, 108, 153, 24, 46, 216,\n\t\t216, 254, 197, 103, 191, 234, 204, 57, 197, 19, 199, 42, 224,\n\t\t84, 62, 49, 235, 82, 179, 181, 217, 154, 83, 136, 243, 113,\n\t\t103, 206, 249, 234, 179, 191, 104, 199, 111, 110, 63, 110,\n\t\t24, 113, 236, 209, 58, 58, 136, 78, 162, 115, 232, 118, 116,\n\t\t31, 122, 29, 103, 241, 139, 133, 14, 190, 41, 22, 14, 176,\n\t\t106, 119, 231, 237, 136, 120, 226, 166, 52, 122, 25, 56, 131,\n\t\t203, 165, 251, 232, 156, 240, 17, 37, 55, 71, 65, 163, 142,\n\t\t133, 7, 169, 251, 247, 200, 251, 120, 220, 135, 61, 142, 219,\n\t\t54, 231, 187, 15, 36, 4, 211, 155, 123, 157, 122, 159, 227,\n\t\t225, 232, 96, 53, 130, 233, 117, 170, 239, 121, 234, 122,\n\t\t230, 133, 248, 111, 93, 204, 85, 205, 115, 159, 229, 104,\n\t\t9, 187, 127, 160, 203, 3, 219, 147, 62, 235, 114, 92, 212,\n\t\t67, 220, 115, 248, 181, 232, 117, 232, 49, 244, 62, 132, 160,\n\t\t226, 14, 226, 249, 118, 18, 120, 136, 208, 210, 209, 96, 49,\n\t\t101, 55, 230, 197, 216, 117, 125, 39, 71, 200, 120, 209, 86,\n\t\t216, 138, 71, 101, 117, 215, 230, 221, 248, 53, 94, 22, 209,\n\t\t53, 194, 183, 142, 19, 21, 137, 12, 92, 164, 140, 245, 190,\n\t\t166, 42, 53, 69, 221, 113, 216, 26, 38, 91, 131, 252, 214,\n\t\t54, 231, 241, 217, 171, 60, 108, 37, 176, 182, 98, 195, 40,\n\t\t1, 128, 27, 58, 243, 45, 12, 74, 191, 106, 144, 122, 249,\n\t\t32, 245, 129, 145, 47, 110, 172, 174, 190, 106, 143, 194,\n\t\t104, 140, 235, 54, 64, 5, 20, 161, 227, 232, 218, 120, 148,\n\t\t14, 217, 188, 71, 72, 190, 149, 206, 20, 84, 202, 245, 206,\n\t\t40, 241, 247, 34, 140, 177, 132, 23, 96, 138, 135, 89, 46,\n\t\t65, 115, 36, 20, 99, 9, 224, 215, 214, 212, 101, 181, 193,\n\t\t201, 190, 123, 127, 58, 61, 241, 224, 205, 79, 111, 221, 2,\n\t\t255, 158, 243, 130, 59, 5, 127, 82, 93, 86, 63, 163, 122,\n\t\t14, 121, 253, 205, 241, 241, 97, 128, 27, 52, 203, 210, 92,\n\t\t51, 175, 190, 30, 244, 132, 222, 59, 223, 231, 251, 254, 32,\n\t\t201, 189, 109, 99, 21, 74, 9, 67, 120, 102, 169, 110, 14,\n\t\t40, 194, 137, 70, 222, 21, 255, 90, 218, 121, 205, 50, 217,\n\t\t187, 118, 175, 243, 28, 173, 98, 96, 143, 239, 139, 50, 43,\n\t\t117, 225, 34, 20, 139, 117, 124, 203, 43, 157, 156, 131, 104,\n\t\t29, 143, 25, 231, 133, 204, 250, 76, 165, 226, 150, 125, 34,\n\t\t17, 215, 247, 93, 69, 137, 143, 68, 34, 83, 51, 250, 168,\n\t\t145, 94, 200, 166, 255, 54, 176, 172, 64, 243, 44, 0, 83,\n\t\t162, 44, 195, 40, 214, 49, 101, 89, 85, 197, 22, 224, 220,\n\t\t191, 22, 86, 251, 113, 123, 78, 123, 76, 47, 11, 58, 237,\n\t\t49, 173, 227, 197, 234, 10, 81, 92, 26, 87, 6, 197, 67, 81,\n\t\t235, 255, 32, 25, 184, 194, 245, 10, 102, 214, 204, 123, 46,\n\t\t83, 251, 35, 146, 1, 169, 140, 225, 245, 203, 37, 237, 56,\n\t\t51, 166, 58, 252, 202, 139, 182, 231, 51, 68, 166, 233, 82,\n\t\t170, 95, 24, 13, 108, 62, 255, 8, 159, 69, 41, 206, 138, 118,\n\t\t53, 122, 69, 159, 55, 148, 83, 61, 10, 50, 207, 78, 64, 3,\n\t\t127, 4, 156, 182, 86, 137, 37, 172, 218, 248, 3, 194, 131,\n\t\t70, 115, 107, 72, 191, 209, 67, 237, 76, 74, 246, 84, 224,\n\t\t239, 168, 155, 58, 167, 73, 161, 68, 83, 134, 155, 151, 37,\n\t\t213, 153, 250, 215, 225, 210, 10, 55, 227, 184, 186, 234,\n\t\t95, 31, 186, 23, 248, 179, 250, 64, 165, 162, 121, 57, 135,\n\t\t200, 52, 238, 6, 25, 134, 189, 225, 104, 122, 93, 103, 212,\n\t\t18, 98, 157, 153, 245, 48, 216, 139, 169, 146, 18, 96, 118,\n\t\t206, 8, 29, 140, 61, 135, 97, 197, 214, 175, 23, 150, 209,\n\t\t187, 23, 231, 165, 42, 174, 228, 31, 29, 62, 117, 213, 50,\n\t\t213, 189, 187, 233, 75, 140, 177, 62, 83, 152, 150, 54, 152,\n\t\t186, 107, 156, 134, 168, 122, 121, 187, 103, 200, 149, 206,\n\t\t74, 169, 28, 75, 163, 173, 61, 204, 158, 171, 209, 181, 241,\n\t\t164, 222, 251, 27, 170, 1, 189, 54, 74, 30, 36, 29, 81, 150,\n\t\t126, 112, 170, 67, 117, 157, 118, 78, 237, 176, 79, 45, 162,\n\t\t181, 81, 219, 206, 168, 230, 155, 244, 237, 136, 233, 45,\n\t\t206, 81, 6, 21, 137, 103, 198, 164, 46, 14, 152, 67, 13, 182,\n\t\t226, 25, 19, 169, 143, 142, 228, 112, 123, 27, 53, 38, 82,\n\t\t48, 57, 82, 73, 39, 186, 54, 169, 103, 103, 212, 166, 152,\n\t\t42, 165, 119, 24, 21, 83, 165, 31, 23, 85, 63, 245, 127, 107,\n\t\t151, 218, 179, 206, 151, 181, 75, 193, 212, 158, 181, 116,\n\t\t95, 196, 50, 245, 111, 250, 21, 220, 101, 255, 43, 161, 165,\n\t\t203, 244, 111, 252, 214, 14, 30, 240, 94, 21, 52, 132, 94,\n\t\t97, 48, 98, 3, 246, 178, 102, 186, 122, 11, 127, 152, 95,\n\t\t221, 179, 122, 109, 149, 17, 62, 202, 152, 106, 164, 181,\n\t\t137, 60, 127, 234, 143, 142, 212, 107, 20, 175, 193, 67, 71,\n\t\t208, 85, 104, 99, 132, 97, 203, 175, 242, 5, 183, 213, 12,\n\t\t252, 129, 4, 62, 78, 202, 38, 82, 99, 78, 202, 220, 117, 217,\n\t\t175, 36, 48, 19, 62, 109, 87, 124, 65, 253, 18, 75, 193, 197,\n\t\t162, 233, 113, 31, 220, 115, 82, 190, 145, 151, 126, 147,\n\t\t31, 207, 37, 32, 228, 155, 148, 193, 230, 118, 62, 189, 153,\n\t\t206, 47, 111, 110, 113, 38, 152, 139, 69, 211, 187, 24, 107,\n\t\t29, 124, 185, 83, 213, 88, 6, 84, 213, 254, 121, 64, 252,\n\t\t199, 104, 239, 73, 40, 94, 4, 39, 206, 95, 94, 94, 78, 184,\n\t\t139, 186, 156, 7, 63, 131, 42, 73, 127, 251, 105, 174, 216,\n\t\t182, 87, 104, 20, 132, 62, 37, 177, 202, 186, 210, 225, 22,\n\t\t124, 191, 222, 14, 194, 106, 135, 47, 107, 22, 216, 224, 254,\n\t\t229, 61, 167, 31, 82, 44, 229, 161, 127, 254, 227, 212, 122,\n\t\t151, 172, 18, 217, 232, 205, 219, 165, 236, 118, 182, 4, 75,\n\t\t132, 81, 69, 83, 126, 26, 182, 79, 175, 172, 191, 157, 144,\n\t\t183, 175, 175, 252, 243, 229, 32, 243, 237, 195, 56, 86, 93,\n\t\t255, 158, 165, 158, 112, 27, 213, 239, 118, 127, 185, 218,\n\t\t248, 101, 44, 169, 228, 239, 137, 161, 225, 85, 40, 246, 251,\n\t\t187, 95, 47, 15, 149, 208, 28, 138, 198, 107, 54, 176, 163,\n\t\t188, 244, 26, 190, 182, 156, 201, 148, 51, 255, 237, 37, 213,\n\t\t243, 182, 76, 92, 248, 202, 151, 84, 91, 204, 249, 3, 133,\n\t\t45, 181, 40, 120, 53, 227, 119, 191, 22, 173, 3, 18, 222,\n\t\t60, 245, 4, 129, 74, 196, 107, 220, 118, 102, 235, 76, 249,\n\t\t161, 37, 195, 1, 37, 130, 119, 183, 115, 31, 219, 186, 195,\n\t\t187, 209, 208, 67, 93, 127, 181, 94, 50, 170, 126, 238, 35,\n\t\t113, 129, 72, 1, 199, 88, 122, 8, 142, 183, 207, 196, 37,\n\t\t210, 55, 234, 113, 137, 123, 12, 99, 218, 207, 137, 216, 194,\n\t\t109, 44, 37, 227, 145, 163, 246, 123, 132, 38, 162, 113, 181,\n\t\t25, 216, 80, 171, 71, 157, 22, 25, 236, 168, 238, 105, 137,\n\t\t188, 120, 120, 233, 1, 194, 180, 7, 82, 26, 188, 76, 99, 228,\n\t\t129, 165, 195, 87, 104, 169, 223, 126, 239, 221, 119, 191,\n\t\t247, 110, 48, 21, 133, 174, 76, 72, 150, 52, 177, 66, 21,\n\t\t165, 198, 192, 32, 75, 75, 196, 0, 6, 135, 180, 185, 159,\n\t\t85, 93, 199, 113, 213, 159, 157, 211, 94, 231, 92, 184, 59,\n\t\t254, 64, 71, 49, 65, 93, 162, 116, 73, 5, 83, 169, 174, 80,\n\t\t38, 101, 50, 18, 163, 43, 104, 124, 159, 151, 163, 83, 239,\n\t\t148, 40, 130, 61, 132, 134, 95, 218, 45, 28, 120, 123, 196,\n\t\t236, 198, 115, 68, 107, 119, 204, 238, 224, 149, 35, 35, 158,\n\t\t11, 99, 249, 126, 242, 109, 55, 213, 86, 106, 101, 236, 101,\n\t\t61, 92, 190, 200, 125, 23, 222, 62, 184, 238, 239, 120, 103,\n\t\t107, 181, 108, 45, 69, 176, 201, 227, 111, 83, 223, 44, 22,\n\t\t207, 143, 101, 212, 178, 67, 63, 169, 175, 114, 46, 208, 217,\n\t\t61, 48, 107, 189, 146, 215, 17, 65, 34, 116, 135, 192, 12,\n\t\t92, 89, 236, 9, 186, 6, 119, 234, 18, 154, 2, 245, 106, 93,\n\t\t191, 90, 93, 86, 149, 19, 177, 0, 122, 66, 81, 71, 240, 104,\n\t\t95, 222, 251, 10, 28, 52, 212, 171, 12, 227, 42, 245, 63,\n\t\t143, 10, 168, 194, 239, 91, 140, 137, 57, 132, 128, 86, 120,\n\t\t184, 83, 1, 104, 127, 78, 74, 243, 141, 56, 46, 103, 70, 157,\n\t\t104, 113, 192, 159, 208, 130, 239, 222, 249, 244, 239, 50,\n\t\t131, 81, 87, 225, 76, 213, 206, 177, 78, 90, 1, 141, 94, 164,\n\t\t26, 40, 233, 206, 49, 129, 26, 241, 216, 43, 63, 72, 101,\n\t\t117, 90, 176, 140, 174, 189, 194, 207, 21, 169, 97, 208, 98,\n\t\t206, 127, 197, 90, 18, 50, 51, 18, 179, 97, 163, 101, 132,\n\t\t198, 24, 42, 154, 129, 63, 176, 39, 248, 59, 12, 11, 194,\n\t\t251, 177, 211, 230, 160, 112, 92, 29, 135, 77, 211, 43, 230,\n\t\t170, 171, 141, 11, 3, 3, 66, 53, 119, 193, 244, 128, 39, 185,\n\t\t33, 162, 88, 205, 117, 27, 171, 197, 33, 164, 86, 49, 87,\n\t\t245, 204, 29, 241, 197, 14, 154, 224, 187, 103, 251, 209,\n\t\t145, 88, 255, 246, 58, 17, 177, 161, 21, 132, 181, 112, 17,\n\t\t234, 45, 11, 234, 235, 16, 21, 240, 20, 116, 162, 22, 241,\n\t\t118, 134, 115, 52, 19, 224, 179, 116, 48, 112, 125, 137, 130,\n\t\t176, 82, 123, 235, 48, 182, 152, 218, 176, 8, 118, 33, 9,\n\t\t40, 78, 25, 184, 174, 222, 27, 87, 167, 199, 21, 58, 24, 70,\n\t\t37, 30, 228, 177, 197, 207, 46, 168, 117, 12, 206, 32, 180,\n\t\t152, 206, 22, 10, 179, 247, 36, 17, 197, 119, 77, 206, 236,\n\t\t3, 16, 56, 5, 213, 28, 108, 229, 170, 189, 132, 224, 112,\n\t\t147, 71, 22, 255, 148, 191, 111, 166, 223, 199, 20, 126, 23,\n\t\t133, 168, 144, 240, 248, 198, 179, 140, 136, 189, 226, 27,\n\t\t253, 180, 30, 117, 160, 195, 21, 244, 179, 215, 191, 178,\n\t\t164, 216, 159, 84, 110, 229, 227, 53, 235, 225, 91, 149, 131,\n\t\t10, 236, 171, 220, 26, 76, 127, 245, 142, 143, 149, 94, 121,\n\t\t189, 173, 28, 84, 110, 141, 71, 124, 60, 152, 111, 85, 62,\n\t\t105, 131, 92, 47, 92, 223, 248, 204, 29, 195, 88, 130, 120,\n\t\t110, 203, 163, 26, 66, 94, 196, 231, 54, 101, 199, 151, 121,\n\t\t235, 242, 208, 111, 241, 157, 79, 111, 205, 201, 19, 102,\n\t\t239, 91, 246, 83, 154, 206, 105, 16, 148, 167, 236, 91, 49,\n\t\t85, 53, 29, 30, 176, 172, 253, 91, 251, 173, 134, 5, 237,\n\t\t185, 173, 167, 173, 140, 114, 171, 253, 148, 194, 13, 16,\n\t\t186, 246, 148, 13, 19, 138, 206, 24, 57, 106, 53, 120, 41,\n\t\t139, 199, 47, 245, 231, 214, 20, 71, 4, 232, 112, 118, 214,\n\t\t36, 244, 141, 38, 236, 230, 2, 48, 132, 135, 193, 213, 67,\n\t\t224, 206, 83, 3, 231, 192, 1, 248, 199, 107, 239, 100, 236,\n\t\t22, 150, 99, 229, 117, 66, 116, 76, 241, 250, 124, 111, 241,\n\t\t193, 69, 171, 97, 45, 88, 191, 241, 96, 239, 15, 238, 211,\n\t\t29, 236, 193, 159, 137, 50, 119, 190, 99, 126, 157, 67, 94,\n\t\t172, 255, 238, 157, 44, 199, 110, 97, 172, 188, 174, 16, 29,\n\t\t227, 245, 249, 84, 252, 33, 107, 193, 106, 20, 30, 236, 253,\n\t\t129, 135, 29, 253, 62, 67, 148, 120, 213, 219, 231, 215, 57,\n\t\t226, 197, 58, 26, 225, 152, 248, 18, 178, 209, 226, 238, 217,\n\t\t128, 227, 188, 242, 128, 49, 92, 79, 206, 1, 135, 2, 172,\n\t\t87, 107, 245, 81, 40, 245, 73, 211, 84, 235, 170, 148, 191,\n\t\t107, 217, 84, 143, 48, 233, 206, 59, 230, 242, 147, 102, 163,\n\t\t54, 215, 187, 104, 233, 195, 57, 225, 111, 116, 243, 85, 140,\n\t\t97, 29, 171, 199, 242, 255, 82, 213, 37, 87, 98, 219, 57,\n\t\t125, 178, 176, 79, 215, 141, 107, 100, 45, 225, 126, 222,\n\t\t198, 239, 132, 159, 67, 118, 44, 247, 237, 170, 143, 8, 113,\n\t\t137, 151, 167, 250, 192, 161, 136, 71, 150, 83, 66, 149, 248,\n\t\t53, 29, 173, 212, 145, 171, 21, 73, 109, 200, 170, 124, 234,\n\t\t158, 15, 19, 89, 61, 34, 203, 68, 254, 47, 175, 156, 155,\n\t\t91, 156, 200, 132, 243, 189, 63, 182, 156, 183, 218, 195,\n\t\t186, 221, 119, 142, 164, 228, 52, 198, 211, 43, 119, 208,\n\t\t148, 92, 194, 210, 117, 205, 64, 146, 246, 213, 167, 131,\n\t\t247, 83, 209, 79, 255, 9, 222, 1, 23, 56, 190, 18, 170, 38,\n\t\t124, 32, 201, 122, 89, 175, 236, 0, 227, 226, 244, 33, 28,\n\t\t180, 145, 86, 125, 17, 106, 8, 11, 215, 112, 239, 201, 107,\n\t\t174, 225, 94, 145, 215, 108, 245, 17, 231, 159, 108, 172,\n\t\t46, 79, 95, 47, 114, 123, 95, 17, 49, 166, 73, 153, 228, 19,\n\t\t91, 220, 90, 0, 136, 178, 213, 198, 116, 71, 185, 94, 100,\n\t\t127, 170, 235, 101, 189, 113, 89, 52, 199, 121, 85, 79, 15,\n\t\t246, 120, 250, 177, 52, 229, 126, 12, 205, 34, 180, 87, 6,\n\t\t74, 85, 223, 0, 62, 8, 127, 26, 207, 22, 174, 71, 71, 34,\n\t\t102, 177, 197, 59, 23, 153, 197, 162, 35, 191, 188, 155, 53,\n\t\t121, 63, 135, 229, 248, 77, 186, 35, 219, 96, 4, 62, 251,\n\t\t158, 187, 143, 62, 88, 250, 116, 92, 247, 175, 120, 222, 87,\n\t\t226, 243, 167, 75, 15, 30, 189, 251, 228, 14, 58, 229, 175,\n\t\t113, 171, 254, 147, 210, 152, 169, 159, 145, 68, 199, 236,\n\t\t175, 199, 57, 84, 137, 71, 232, 78, 237, 137, 240, 245, 178,\n\t\t86, 166, 196, 31, 132, 1, 10, 212, 139, 74, 57, 221, 106,\n\t\t142, 169, 81, 127, 150, 56, 17, 136, 168, 191, 223, 38, 158,\n\t\t162, 44, 156, 112, 156, 104, 204, 131, 228, 143, 7, 46, 2,\n\t\t239, 231, 215, 159, 224, 100, 207, 197, 49, 108, 214, 73,\n\t\t30, 91, 182, 128, 218, 104, 255, 16, 57, 157, 175, 216, 21,\n\t\t113, 28, 192, 61, 132, 74, 171, 93, 233, 71, 45, 71, 237,\n\t\t202, 128, 173, 166, 222, 170, 87, 240, 195, 186, 103, 22,\n\t\t87, 55, 86, 183, 86, 55, 86, 121, 4, 50, 252, 98, 96, 245,\n\t\t174, 219, 220, 188, 138, 247, 234, 243, 155, 127, 201, 207,\n\t\t203, 239, 221, 56, 250, 29, 211, 125, 192, 244, 26, 171, 171,\n\t\t141, 248, 215, 51, 161, 104, 122, 238, 187, 55, 123, 207,\n\t\t113, 56, 147, 175, 111, 110, 190, 144, 36, 16, 130, 75, 255,\n\t\t135, 99, 9, 60, 134, 14, 245, 163, 177, 45, 168, 88, 82, 18,\n\t\t132, 204, 131, 145, 107, 130, 38, 138, 8, 244, 149, 78, 1,\n\t\t219, 16, 43, 237, 5, 72, 83, 82, 128, 86, 51, 90, 199, 248,\n\t\t1, 170, 201, 84, 182, 102, 202, 13, 237, 88, 101, 46, 204,\n\t\t40, 87, 191, 93, 51, 61, 71, 185, 131, 102, 172, 3, 196, 148,\n\t\t82, 170, 25, 229, 15, 212, 60, 115, 246, 204, 105, 223, 243,\n\t\t101, 144, 176, 174, 7, 29, 237, 138, 67, 16, 139, 247, 50,\n\t\t85, 192, 77, 79, 200, 133, 76, 126, 245, 208, 59, 88, 193,\n\t\t250, 174, 229, 171, 117, 89, 34, 57, 147, 85, 93, 165, 210,\n\t\t154, 188, 231, 100, 7, 192, 43, 185, 106, 42, 212, 39, 148,\n\t\t122, 118, 135, 94, 149, 67, 245, 81, 31, 152, 112, 135, 150,\n\t\t74, 194, 225, 190, 150, 216, 212, 217, 109, 34, 57, 191, 75,\n\t\t65, 245, 42, 255, 135, 19, 124, 87, 180, 140, 182, 240, 211,\n\t\t173, 56, 127, 15, 235, 200, 137, 29, 218, 233, 204, 7, 141,\n\t\t180, 49, 59, 107, 164, 141, 206, 199, 21, 105, 135, 49, 68,\n\t\t29, 240, 170, 166, 81, 3, 205, 163, 101, 180, 130, 86, 209,\n\t\t26, 234, 142, 99, 151, 8, 131, 127, 187, 229, 123, 41, 238,\n\t\t108, 204, 57, 12, 188, 117, 28, 11, 28, 10, 109, 213, 165,\n\t\t168, 66, 15, 67, 133, 134, 173, 122, 37, 10, 91, 117, 169,\n\t\t85, 175, 192, 115, 201, 178, 44, 171, 242, 242, 214, 215,\n\t\t34, 102, 179, 31, 124, 201, 242, 34, 96, 150, 10, 191, 111,\n\t\t164, 122, 159, 215, 126, 90, 251, 178, 126, 175, 247, 86,\n\t\t109, 211, 125, 252, 227, 250, 83, 159, 213, 238, 118, 79,\n\t\t60, 228, 221, 219, 7, 13, 144, 169, 82, 44, 194, 199, 122,\n\t\t159, 199, 204, 98, 158, 41, 193, 81, 213, 160, 246, 190, 205,\n\t\t205, 75, 232, 252, 249, 11, 155, 155, 23, 206, 63, 201, 211,\n\t\t104, 192, 199, 112, 4, 254, 37, 42, 160, 249, 120, 228, 248,\n\t\t105, 11, 199, 61, 188, 40, 181, 87, 56, 53, 115, 16, 118,\n\t\t162, 117, 73, 169, 213, 107, 117, 14, 234, 17, 18, 74, 240,\n\t\t170, 74, 236, 250, 228, 185, 111, 157, 155, 172, 219, 68,\n\t\t117, 234, 135, 143, 231, 231, 194, 112, 46, 127, 252, 112,\n\t\t189, 247, 125, 47, 155, 45, 101, 79, 168, 234, 201, 76, 57,\n\t\t155, 1, 164, 218, 213, 131, 135, 51, 215, 94, 155, 57, 124,\n\t\t176, 106, 171, 138, 61, 157, 171, 175, 174, 214, 115, 211,\n\t\t182, 242, 192, 100, 152, 241, 30, 56, 68, 233, 161, 7, 188,\n\t\t108, 128, 224, 210, 223, 94, 250, 3, 44, 193, 191, 66, 229,\n\t\t4, 199, 156, 36, 16, 70, 241, 160, 21, 254, 148, 29, 225,\n\t\t102, 195, 221, 40, 225, 15, 171, 164, 188, 158, 199, 138,\n\t\t116, 170, 208, 201, 20, 79, 212, 90, 78, 222, 76, 213, 252,\n\t\t153, 250, 169, 146, 191, 152, 185, 138, 57, 116, 234, 31,\n\t\t141, 99, 169, 41, 59, 191, 94, 206, 134, 13, 143, 218, 108,\n\t\t101, 106, 127, 118, 98, 101, 114, 191, 68, 112, 176, 148,\n\t\t181, 75, 135, 114, 186, 144, 201, 6, 24, 117, 165, 132, 197,\n\t\t252, 8, 186, 18, 93, 139, 144, 231, 87, 132, 252, 87, 128,\n\t\t100, 76, 238, 96, 40, 29, 176, 204, 244, 237, 244, 228, 114,\n\t\t254, 202, 201, 249, 226, 22, 23, 25, 255, 119, 86, 120, 209,\n\t\t173, 138, 253, 184, 213, 198, 148, 128, 64, 252, 48, 207,\n\t\t127, 130, 31, 175, 230, 199, 113, 138, 151, 205, 120, 181,\n\t\t16, 72, 185, 230, 106, 131, 107, 229, 23, 27, 171, 151, 16,\n\t\t7, 68, 4, 151, 223, 104, 241, 227, 235, 70, 52, 147, 62, 27,\n\t\t79, 95, 6, 254, 42, 146, 98, 77, 32, 108, 151, 124, 105, 215,\n\t\t30, 5, 39, 215, 173, 181, 87, 4, 122, 11, 21, 6, 245, 34,\n\t\t108, 119, 227, 202, 198, 242, 223, 106, 227, 152, 225, 134,\n\t\t236, 248, 194, 228, 28, 81, 108, 223, 53, 186, 221, 46, 160,\n\t\t213, 134, 64, 84, 104, 172, 186, 6, 52, 154, 158, 63, 127,\n\t\t64, 85, 230, 38, 139, 249, 217, 105, 205, 112, 251, 241, 250,\n\t\t147, 176, 141, 242, 156, 243, 38, 126, 194, 97, 64, 42, 28,\n\t\t72, 150, 79, 79, 241, 250, 142, 59, 205, 41, 28, 45, 73, 238,\n\t\t20, 44, 1, 252, 192, 51, 237, 123, 51, 82, 218, 82, 233, 99,\n\t\t143, 81, 213, 74, 75, 153, 123, 109, 211, 123, 223, 17, 214,\n\t\t96, 71, 50, 215, 61, 148, 209, 91, 193, 93, 158, 12, 105,\n\t\t92, 179, 238, 126, 175, 29, 200, 199, 143, 203, 129, 253,\n\t\t222, 187, 173, 154, 228, 191, 45, 149, 122, 219, 123, 174,\n\t\t117, 228, 240, 238, 222, 151, 141, 206, 67, 153, 241, 184,\n\t\t159, 10, 90, 66, 7, 57, 174, 237, 64, 238, 239, 191, 180,\n\t\t67, 216, 138, 190, 14, 162, 92, 6, 213, 182, 222, 31, 29,\n\t\t60, 162, 68, 16, 202, 57, 35, 32, 94, 220, 150, 1, 206, 40,\n\t\t146, 237, 115, 203, 194, 56, 2, 69, 78, 73, 53, 10, 241, 197,\n\t\t51, 254, 112, 4, 189, 246, 133, 13, 1, 248, 181, 241, 98,\n\t\t156, 104, 125, 95, 244, 254, 42, 179, 151, 15, 250, 49, 190,\n\t\t47, 255, 216, 168, 222, 42, 60, 207, 95, 224, 235, 240, 187,\n\t\t250, 46, 231, 9, 95, 251, 37, 216, 70, 6, 202, 112, 78, 175,\n\t\t120, 94, 27, 242, 207, 172, 195, 97, 28, 139, 175, 43, 157,\n\t\t182, 27, 11, 212, 117, 151, 47, 126, 110, 242, 138, 140, 192,\n\t\t120, 112, 255, 83, 248, 19, 174, 110, 124, 29, 20, 248, 213,\n\t\t195, 140, 125, 29, 206, 176, 28, 251, 192, 254, 179, 171,\n\t\t158, 185, 165, 218, 236, 94, 238, 93, 176, 218, 237, 118,\n\t\t5, 4, 49, 72, 240, 185, 15, 178, 28, 251, 6, 16, 12, 234,\n\t\t25, 77, 91, 232, 109, 197, 75, 31, 108, 153, 30, 179, 122,\n\t\t183, 115, 231, 129, 95, 236, 118, 183, 56, 105, 67, 159, 51,\n\t\t226, 30, 52, 133, 174, 71, 63, 134, 80, 84, 171, 71, 66, 143,\n\t\t45, 244, 231, 141, 120, 182, 42, 215, 99, 61, 137, 146, 242,\n\t\t144, 249, 184, 15, 212, 56, 178, 219, 25, 137, 157, 187, 157,\n\t\t231, 86, 159, 34, 245, 11, 148, 29, 215, 157, 141, 198, 190,\n\t\t59, 189, 64, 45, 123, 119, 82, 146, 122, 48, 23, 106, 203,\n\t\t90, 102, 210, 153, 204, 104, 203, 240, 12, 127, 134, 7, 106,\n\t\t181, 127, 198, 127, 14, 136, 103, 90, 245, 108, 215, 113,\n\t\t109, 239, 244, 142, 115, 181, 183, 143, 191, 239, 239, 164,\n\t\t202, 29, 142, 190, 127, 82, 11, 228, 114, 45, 144, 3, 144,\n\t\t205, 13, 236, 51, 22, 134, 172, 200, 135, 80, 145, 255, 227,\n\t\t201, 148, 101, 165, 250, 191, 155, 252, 125, 79, 48, 201,\n\t\t98, 249, 100, 5, 221, 59, 138, 26, 253, 35, 180, 176, 90,\n\t\t230, 65, 125, 157, 177, 117, 139, 139, 142, 173, 61, 115,\n\t\t99, 97, 162, 93, 17, 66, 247, 143, 208, 222, 173, 9, 205,\n\t\t114, 56, 58, 87, 145, 50, 47, 235, 109, 143, 164, 29, 75,\n\t\t155, 216, 126, 209, 246, 22, 153, 73, 254, 44, 30, 11, 226,\n\t\t107, 184, 196, 188, 57, 126, 253, 231, 138, 201, 54, 7, 252,\n\t\t197, 239, 128, 175, 162, 9, 84, 220, 193, 187, 208, 225, 128,\n\t\t43, 146, 159, 166, 213, 149, 72, 137, 103, 157, 113, 2, 133,\n\t\t207, 53, 60, 186, 64, 156, 206, 124, 9, 122, 63, 231, 129,\n\t\t219, 60, 122, 229, 221, 99, 52, 9, 239, 89, 239, 6, 193, 202,\n\t\t237, 157, 43, 107, 68, 119, 27, 181, 255, 184, 112, 207, 46,\n\t\t219, 117, 243, 165, 217, 174, 131, 88, 234, 46, 240, 40, 172,\n\t\t160, 83, 175, 253, 48, 227, 245, 39, 175, 187, 90, 1, 133,\n\t\t201, 51, 111, 157, 161, 58, 40, 47, 193, 171, 114, 107, 125,\n\t\t129, 232, 10, 118, 93, 201, 212, 22, 56, 110, 205, 223, 93,\n\t\t218, 134, 223, 129, 175, 9, 196, 82, 74, 4, 0, 159, 216, 231,\n\t\t91, 132, 50, 191, 42, 199, 210, 97, 189, 150, 32, 121, 197,\n\t\t149, 143, 58, 75, 113, 183, 133, 5, 128, 95, 179, 171, 5,\n\t\t162, 154, 42, 118, 53, 106, 48, 92, 150, 131, 124, 32, 151,\n\t\t37, 199, 119, 177, 106, 170, 164, 80, 181, 213, 102, 185,\n\t\t88, 185, 147, 152, 18, 51, 39, 53, 88, 158, 41, 55, 97, 115,\n\t\t125, 95, 227, 216, 185, 253, 101, 221, 36, 26, 253, 41, 51,\n\t\t149, 50, 127, 74, 51, 77, 189, 188, 255, 220, 177, 70, 243,\n\t\t80, 185, 165, 50, 175, 43, 75, 138, 165, 122, 50, 84, 116,\n\t\t181, 149, 196, 47, 190, 21, 126, 131, 199, 10, 79, 198, 58,\n\t\t161, 199, 121, 95, 67, 11, 104, 184, 14, 194, 110, 20, 21,\n\t\t128, 166, 201, 18, 116, 234, 53, 111, 231, 10, 22, 133, 244,\n\t\t117, 84, 81, 22, 222, 118, 178, 126, 101, 110, 170, 180, 57,\n\t\t103, 106, 139, 19, 185, 202, 129, 195, 216, 82, 239, 202,\n\t\t169, 242, 36, 29, 192, 194, 125, 231, 202, 181, 35, 16, 73,\n\t\t14, 89, 61, 40, 133, 183, 28, 210, 175, 186, 93, 118, 223,\n\t\t251, 242, 175, 207, 191, 245, 148, 202, 164, 234, 173, 167,\n\t\t11, 189, 167, 134, 250, 226, 111, 5, 159, 26, 195, 23, 93,\n\t\t66, 45, 20, 113, 182, 223, 27, 133, 61, 105, 196, 116, 20,\n\t\t171, 5, 67, 19, 210, 136, 97, 189, 213, 55, 170, 251, 173,\n\t\t118, 201, 111, 181, 221, 118, 197, 47, 181, 43, 126, 178,\n\t\t218, 136, 197, 199, 231, 91, 229, 45, 206, 223, 128, 60, 51,\n\t\t49, 43, 109, 39, 198, 165, 177, 203, 205, 98, 111, 171, 88,\n\t\t132, 173, 98, 2, 138, 36, 78, 208, 189, 76, 113, 113, 201,\n\t\t95, 178, 248, 115, 197, 226, 230, 240, 67, 69, 206, 12, 32,\n\t\t214, 105, 133, 175, 211, 211, 124, 135, 47, 238, 217, 200,\n\t\t139, 69, 217, 218, 128, 115, 155, 10, 207, 202, 126, 208,\n\t\t85, 143, 78, 78, 244, 54, 39, 38, 233, 149, 146, 171, 175,\n\t\t17, 142, 113, 70, 214, 84, 131, 225, 47, 241, 133, 6, 103,\n\t\t102, 102, 50, 48, 109, 88, 142, 211, 88, 205, 206, 103, 109,\n\t\t151, 24, 106, 118, 176, 238, 240, 239, 132, 42, 108, 163,\n\t\t66, 44, 253, 133, 99, 129, 78, 139, 112, 184, 239, 57, 227,\n\t\t135, 1, 161, 190, 68, 91, 245, 63, 116, 67, 245, 121, 53,\n\t\t116, 27, 43, 93, 197, 145, 169, 124, 145, 48, 71, 233, 174,\n\t\t60, 68, 63, 69, 19, 204, 158, 135, 141, 27, 163, 79, 41, 68,\n\t\t86, 233, 167, 162, 27, 141, 135, 225, 194, 198, 6, 146, 46,\n\t\t253, 227, 165, 109, 120, 27, 127, 118, 145, 64, 156, 25, 244,\n\t\t246, 232, 8, 106, 115, 121, 164, 146, 176, 248, 247, 105,\n\t\t54, 201, 220, 0, 72, 195, 171, 248, 45, 248, 9, 102, 88, 239,\n\t\t18, 22, 82, 62, 152, 206, 191, 203, 50, 216, 109, 251, 116,\n\t\t141, 62, 68, 242, 141, 60, 121, 136, 106, 250, 190, 27, 132,\n\t\t145, 236, 226, 197, 71, 53, 191, 56, 164, 224, 40, 250, 218,\n\t\t43, 60, 246, 22, 93, 143, 87, 120, 93, 127, 11, 243, 182,\n\t\t185, 57, 173, 247, 198, 34, 239, 143, 127, 188, 244, 235,\n\t\t240, 27, 28, 15, 177, 45, 120, 210, 4, 221, 119, 172, 206,\n\t\t149, 19, 164, 169, 90, 31, 104, 47, 236, 68, 157, 122, 124,\n\t\t179, 159, 213, 154, 138, 149, 58, 184, 189, 158, 9, 84, 170,\n\t\t26, 211, 115, 71, 28, 14, 151, 229, 28, 153, 155, 54, 84,\n\t\t170, 6, 153, 250, 196, 236, 116, 38, 51, 61, 59, 101, 133,\n\t\t142, 103, 99, 44, 123, 60, 1, 10, 129, 195, 180, 50, 181,\n\t\t52, 55, 119, 114, 249, 128, 166, 170, 218, 129, 229, 147,\n\t\t115, 115, 75, 83, 21, 42, 235, 154, 101, 105, 122, 213, 36,\n\t\t10, 88, 169, 105, 47, 62, 219, 158, 19, 34, 118, 233, 47,\n\t\t47, 109, 195, 215, 97, 155, 199, 174, 52, 208, 18, 143, 163,\n\t\t63, 141, 110, 64, 183, 197, 253, 75, 9, 95, 136, 234, 181,\n\t\t168, 22, 117, 194, 78, 51, 236, 132, 129, 18, 68, 241, 36,\n\t\t67, 162, 78, 52, 11, 149, 50, 37, 225, 58, 148, 105, 220,\n\t\t14, 220, 140, 106, 117, 66, 163, 78, 124, 155, 146, 184, 109,\n\t\t33, 111, 27, 13, 234, 157, 88, 193, 23, 88, 91, 125, 33, 27,\n\t\t62, 28, 21, 38, 111, 156, 126, 211, 244, 141, 147, 133, 104,\n\t\t152, 236, 221, 71, 171, 178, 164, 235, 193, 188, 36, 131,\n\t\t12, 83, 148, 6, 250, 211, 197, 148, 147, 74, 57, 77, 113,\n\t\t218, 148, 164, 201, 82, 105, 146, 31, 183, 104, 160, 235,\n\t\t146, 92, 85, 3, 74, 167, 0, 99, 144, 37, 253, 253, 124, 212,\n\t\t110, 159, 105, 175, 104, 55, 220, 160, 173, 180, 207, 12,\n\t\t82, 255, 218, 128, 116, 154, 105, 149, 167, 210, 105, 221,\n\t\t172, 104, 111, 175, 18, 74, 73, 239, 99, 252, 244, 134, 74,\n\t\t197, 119, 28, 159, 31, 27, 102, 69, 99, 233, 52, 252, 139,\n\t\t138, 169, 167, 211, 108, 56, 214, 97, 128, 217, 115, 22, 161,\n\t\t42, 73, 124, 51, 56, 76, 222, 202, 162, 92, 41, 149, 45, 142,\n\t\t209, 33, 134, 98, 212, 89, 17, 100, 114, 252, 181, 11, 211,\n\t\t5, 185, 85, 106, 174, 43, 237, 245, 62, 49, 8, 190, 145, 82,\n\t\t47, 152, 47, 76, 212, 85, 130, 9, 213, 104, 239, 175, 20,\n\t\t149, 40, 114, 220, 110, 181, 62, 81, 152, 15, 60, 81, 192,\n\t\t153, 244, 21, 81, 2, 82, 10, 163, 138, 2, 68, 220, 255, 29,\n\t\t201, 145, 180, 105, 95, 45, 204, 231, 67, 112, 21, 83, 86,\n\t\t176, 68, 101, 77, 49, 112, 152, 159, 47, 168, 254, 180, 54,\n\t\t40, 96, 134, 118, 82, 130, 200, 134, 236, 64, 82, 160, 143,\n\t\t87, 3, 28, 255, 117, 2, 205, 33, 132, 18, 221, 135, 242, 74,\n\t\t114, 136, 200, 184, 17, 97, 80, 109, 138, 230, 82, 206, 53,\n\t\t126, 8, 86, 162, 14, 8, 106, 222, 117, 98, 210, 19, 111, 210,\n\t\t237, 148, 241, 56, 172, 169, 150, 106, 235, 111, 186, 66,\n\t\t209, 8, 57, 14, 143, 115, 78, 223, 255, 37, 171, 223, 165,\n\t\t170, 92, 33, 96, 235, 127, 98, 56, 160, 170, 212, 80, 255,\n\t\t68, 183, 129, 150, 37, 172, 202, 223, 85, 229, 153, 17, 28,\n\t\t209, 38, 186, 103, 224, 115, 40, 84, 152, 4, 135, 187, 92,\n\t\t171, 139, 144, 224, 104, 17, 218, 43, 28, 54, 135, 31, 90,\n\t\t203, 205, 125, 235, 152, 239, 67, 240, 98, 245, 228, 25, 4,\n\t\t97, 192, 21, 34, 177, 141, 215, 106, 22, 164, 112, 185, 185,\n\t\t143, 207, 8, 124, 30, 12, 158, 207, 85, 39, 82, 132, 200,\n\t\t190, 59, 91, 8, 107, 148, 42, 133, 89, 8, 114, 13, 53, 23,\n\t\t226, 106, 14, 203, 110, 22, 30, 205, 5, 48, 91, 80, 40, 173,\n\t\t133, 133, 89, 215, 151, 9, 49, 60, 189, 154, 99, 174, 165,\n\t\t51, 140, 115, 85, 28, 230, 212, 6, 108, 87, 115, 167, 189,\n\t\t130, 130, 137, 35, 43, 160, 88, 255, 179, 48, 203, 63, 70,\n\t\t41, 107, 100, 22, 67, 55, 149, 105, 48, 74, 115, 85, 203,\n\t\t55, 123, 207, 243, 52, 255, 158, 217, 194, 255, 180, 20, 80,\n\t\t100, 135, 96, 201, 14, 205, 211, 185, 170, 162, 26, 182, 90,\n\t\t205, 241, 207, 165, 220, 48, 94, 79, 17, 130, 139, 176, 133,\n\t\t230, 80, 27, 157, 66, 55, 115, 237, 122, 18, 210, 67, 86,\n\t\t179, 210, 32, 197, 7, 221, 97, 188, 46, 197, 179, 237, 20,\n\t\t84, 105, 169, 190, 8, 115, 80, 38, 244, 0, 78, 72, 215, 44,\n\t\t204, 41, 216, 68, 232, 47, 248, 233, 130, 116, 0, 224, 51,\n\t\t169, 80, 76, 49, 151, 144, 152, 105, 194, 148, 145, 38, 126,\n\t\t174, 232, 110, 149, 247, 27, 233, 222, 127, 74, 3, 74, 43,\n\t\t25, 107, 203, 202, 236, 199, 38, 209, 9, 149, 202, 22, 231,\n\t\t225, 130, 107, 98, 9, 143, 133, 142, 68, 137, 78, 204, 191,\n\t\t164, 165, 244, 242, 68, 170, 99, 14, 32, 250, 58, 169, 137,\n\t\t229, 116, 137, 230, 155, 118, 46, 165, 213, 138, 205, 108,\n\t\t179, 105, 186, 238, 191, 5, 44, 17, 217, 46, 41, 170, 65,\n\t\t173, 84, 42, 159, 114, 66, 38, 19, 9, 3, 215, 11, 4, 38, 91,\n\t\t172, 227, 157, 217, 133, 132, 53, 10, 222, 60, 72, 141, 106,\n\t\t120, 213, 56, 61, 0, 205, 23, 132, 10, 9, 179, 67, 19, 184,\n\t\t198, 221, 227, 27, 61, 98, 54, 23, 52, 6, 151, 80, 226, 8,\n\t\t135, 84, 14, 214, 167, 38, 39, 232, 142, 66, 91, 9, 232, 42,\n\t\t113, 124, 188, 143, 104, 53, 40, 171, 54, 144, 114, 169, 119,\n\t\t233, 115, 248, 109, 240, 37, 52, 139, 238, 66, 143, 160, 199,\n\t\t209, 135, 16, 138, 40, 9, 105, 98, 1, 225, 112, 201, 3, 67,\n\t\t200, 58, 36, 246, 16, 27, 136, 141, 45, 80, 132, 80, 71, 40,\n\t\t17, 37, 235, 28, 207, 181, 86, 143, 151, 49, 30, 245, 31,\n\t\t197, 10, 118, 31, 161, 53, 137, 69, 229, 246, 253, 106, 205,\n\t\t194, 177, 56, 26, 22, 164, 117, 28, 117, 106, 74, 188, 190,\n\t\t44, 241, 224, 204, 88, 75, 175, 17, 26, 144, 130, 28, 6, 241,\n\t\t205, 119, 27, 10, 174, 40, 58, 182, 177, 118, 13, 145, 148,\n\t\t35, 140, 54, 101, 74, 174, 214, 128, 130, 33, 207, 17, 122,\n\t\t72, 209, 177, 174, 72, 69, 125, 162, 10, 223, 50, 101, 83,\n\t\t86, 44, 44, 155, 233, 41, 211, 148, 216, 247, 85, 41, 52,\n\t\t167, 124, 12, 96, 97, 172, 40, 134, 58, 201, 180, 84, 81,\n\t\t33, 134, 77, 85, 219, 117, 157, 159, 112, 45, 223, 50, 37,\n\t\t42, 57, 148, 246, 222, 76, 77, 77, 197, 88, 54, 24, 54, 168,\n\t\t70, 169, 2, 210, 4, 248, 4, 36, 22, 252, 4, 161, 44, 36, 197,\n\t\t143, 191, 38, 63, 35, 3, 86, 37, 67, 49, 113, 92, 26, 228,\n\t\t63, 93, 116, 188, 201, 93, 245, 25, 175, 235, 42, 149, 230,\n\t\t44, 58, 253, 225, 37, 215, 144, 165, 21, 170, 56, 138, 42,\n\t\t135, 102, 225, 88, 92, 69, 149, 248, 132, 174, 40, 74, 202,\n\t\t93, 44, 24, 50, 76, 204, 81, 98, 80, 89, 82, 0, 148, 146,\n\t\t204, 44, 223, 207, 182, 11, 70, 202, 187, 19, 99, 162, 81,\n\t\t230, 232, 18, 72, 24, 3, 40, 178, 53, 147, 233, 80, 234, 43,\n\t\t37, 172, 171, 115, 139, 103, 213, 9, 75, 38, 68, 146, 65,\n\t\t2, 94, 180, 207, 107, 151, 232, 107, 211, 137, 213, 112, 109,\n\t\t196, 2, 49, 110, 78, 230, 111, 34, 8, 185, 103, 10, 228, 161,\n\t\t106, 77, 15, 66, 125, 96, 96, 198, 197, 198, 42, 163, 203,\n\t\t137, 69, 121, 153, 178, 156, 191, 76, 75, 222, 55, 205, 73,\n\t\t245, 181, 189, 55, 113, 91, 242, 27, 174, 174, 253, 252, 47,\n\t\t92, 125, 243, 167, 249, 5, 160, 213, 198, 6, 101, 125, 171,\n\t\t50, 163, 231, 131, 50, 121, 36, 21, 88, 218, 227, 125, 115,\n\t\t242, 102, 223, 196, 60, 196, 148, 216, 70, 54, 186, 54, 158,\n\t\t81, 119, 237, 29, 39, 203, 80, 60, 151, 188, 8, 235, 105,\n\t\t180, 14, 130, 246, 116, 101, 136, 255, 41, 180, 75, 95, 233,\n\t\t212, 230, 32, 234, 36, 49, 189, 193, 65, 160, 36, 104, 53,\n\t\t163, 81, 78, 84, 236, 56, 148, 77, 101, 154, 229, 201, 58,\n\t\t231, 69, 173, 230, 46, 228, 170, 234, 244, 74, 218, 212, 204,\n\t\t204, 20, 163, 14, 179, 88, 145, 89, 172, 247, 103, 50, 165,\n\t\t7, 12, 160, 228, 184, 14, 14, 168, 202, 193, 16, 40, 161,\n\t\t210, 200, 14, 117, 151, 209, 98, 118, 86, 125, 67, 105, 81,\n\t\t146, 22, 11, 25, 206, 154, 154, 171, 86, 115, 219, 43, 211,\n\t\t121, 211, 197, 216, 213, 95, 175, 206, 102, 7, 148, 250, 194,\n\t\t167, 69, 209, 91, 138, 202, 238, 83, 232, 57, 69, 85, 6, 88,\n\t\t31, 219, 28, 31, 119, 28, 235, 163, 211, 156, 26, 96, 22,\n\t\t13, 137, 218, 90, 126, 58, 136, 224, 123, 140, 93, 212, 178,\n\t\t218, 69, 113, 250, 9, 66, 94, 38, 105, 231, 77, 79, 45, 170,\n\t\t155, 154, 244, 7, 195, 59, 23, 25, 251, 14, 33, 215, 72, 178,\n\t\t210, 241, 204, 13, 85, 237, 118, 20, 89, 66, 163, 188, 215,\n\t\t245, 1, 211, 250, 77, 104, 147, 107, 253, 124, 193, 170, 36,\n\t\t235, 90, 91, 72, 233, 156, 177, 53, 190, 179, 92, 161, 65,\n\t\t154, 134, 77, 37, 8, 91, 245, 242, 62, 225, 189, 29, 85, 8,\n\t\t237, 155, 142, 250, 174, 14, 211, 137, 112, 139, 147, 252,\n\t\t1, 138, 57, 119, 38, 174, 166, 126, 63, 85, 205, 85, 139,\n\t\t197, 65, 178, 154, 131, 186, 170, 214, 161, 119, 209, 86,\n\t\t159, 175, 1, 207, 168, 61, 175, 218, 207, 113, 73, 246, 199,\n\t\t133, 60, 187, 205, 229, 223, 34, 191, 128, 174, 16, 134, 171,\n\t\t157, 209, 63, 83, 44, 86, 59, 213, 35, 118, 209, 62, 194,\n\t\t84, 155, 99, 209, 218, 234, 29, 188, 224, 59, 71, 62, 59,\n\t\t246, 135, 198, 253, 158, 108, 52, 197, 89, 106, 174, 64, 168,\n\t\t58, 196, 227, 229, 251, 117, 81, 109, 128, 119, 194, 237,\n\t\t0, 202, 78, 73, 95, 248, 57, 68, 158, 91, 74, 64, 220, 37,\n\t\t183, 228, 162, 75, 7, 12, 227, 0, 71, 231, 153, 158, 214,\n\t\t117, 221, 120, 89, 63, 161, 139, 27, 64, 40, 171, 101, 123,\n\t\t40, 91, 99, 244, 175, 211, 230, 33, 43, 5, 95, 234, 161, 124,\n\t\t26, 46, 164, 243, 221, 222, 214, 175, 30, 212, 245, 131, 113,\n\t\t105, 254, 41, 238, 63, 35, 18, 186, 184, 241, 33, 70, 157,\n\t\t108, 173, 150, 117, 40, 211, 125, 215, 134, 243, 189, 231,\n\t\t184, 241, 176, 247, 71, 128, 46, 161, 132, 143, 244, 243,\n\t\t124, 111, 217, 66, 83, 28, 219, 166, 63, 186, 248, 104, 171,\n\t\t139, 65, 39, 198, 92, 24, 52, 227, 195, 142, 12, 195, 48,\n\t\t190, 173, 24, 202, 183, 13, 227, 219, 186, 142, 46, 241, 211,\n\t\t183, 13, 227, 224, 207, 25, 19, 198, 71, 15, 244, 47, 15,\n\t\t124, 52, 190, 132, 121, 146, 39, 247, 98, 124, 111, 124, 82,\n\t\t148, 20, 153, 84, 238, 85, 148, 123, 149, 73, 146, 189, 82,\n\t\t81, 174, 252, 144, 200, 142, 239, 242, 235, 49, 60, 175, 18,\n\t\t247, 140, 239, 251, 155, 13, 23, 212, 93, 86, 85, 101, 132,\n\t\t198, 153, 243, 202, 174, 212, 42, 109, 46, 70, 85, 7, 92,\n\t\t66, 233, 10, 247, 168, 224, 76, 30, 113, 194, 96, 180, 65,\n\t\t25, 76, 115, 224, 252, 34, 101, 249, 52, 56, 177, 40, 126,\n\t\t246, 193, 125, 189, 15, 170, 234, 243, 170, 186, 197, 35,\n\t\t87, 132, 17, 104, 36, 185, 197, 177, 244, 105, 58, 127, 230,\n\t\t222, 51, 221, 7, 207, 94, 25, 21, 213, 1, 31, 216, 144, 107,\n\t\t182, 137, 58, 156, 133, 186, 19, 112, 170, 205, 100, 84, 212,\n\t\t147, 72, 141, 214, 40, 87, 238, 8, 232, 115, 156, 175, 180,\n\t\t235, 190, 194, 113, 117, 184, 215, 14, 126, 189, 76, 240,\n\t\t55, 152, 217, 251, 142, 233, 157, 208, 109, 102, 49, 73, 122,\n\t\t215, 234, 42, 29, 176, 110, 238, 183, 173, 102, 111, 123,\n\t\t25, 254, 46, 208, 244, 185, 204, 116, 6, 138, 160, 200, 41,\n\t\t73, 250, 166, 230, 153, 75, 6, 78, 25, 183, 171, 54, 131,\n\t\t204, 242, 16, 239, 117, 153, 102, 142, 28, 86, 215, 111, 213,\n\t\t230, 28, 103, 61, 76, 101, 50, 35, 120, 126, 203, 92, 130,\n\t\t27, 246, 102, 36, 16, 186, 106, 125, 79, 149, 149, 122, 135,\n\t\t67, 133, 208, 145, 35, 124, 57, 91, 153, 45, 244, 158, 44,\n\t\t204, 86, 178, 147, 179, 5, 43, 168, 230, 156, 210, 146, 173,\n\t\t41, 141, 85, 66, 114, 213, 192, 42, 204, 158, 149, 27, 185,\n\t\t194, 236, 108, 33, 215, 144, 131, 74, 97, 214, 155, 204, 85,\n\t\t151, 74, 25, 31, 175, 54, 108, 183, 154, 155, 244, 102, 11,\n\t\t149, 33, 206, 16, 225, 239, 93, 136, 42, 156, 43, 119, 44,\n\t\t110, 164, 143, 216, 82, 21, 123, 142, 241, 160, 37, 24, 113,\n\t\t95, 64, 126, 232, 113, 135, 145, 51, 240, 39, 95, 240, 60,\n\t\t118, 187, 86, 211, 110, 103, 222, 86, 255, 166, 215, 226,\n\t\t119, 239, 43, 58, 23, 28, 231, 130, 83, 68, 130, 215, 2, 254,\n\t\t27, 199, 179, 234, 243, 219, 46, 13, 199, 21, 221, 65, 215,\n\t\t60, 149, 136, 119, 5, 60, 41, 92, 146, 57, 253, 237, 31, 18,\n\t\t73, 42, 74, 38, 121, 156, 143, 173, 199, 137, 41, 21, 37,\n\t\t137, 60, 254, 248, 72, 182, 68, 100, 105, 112, 227, 33, 217,\n\t\t84, 86, 21, 89, 58, 251, 225, 248, 121, 124, 248, 172, 36,\n\t\t43, 171, 138, 41, 95, 115, 205, 72, 190, 36, 19, 105, 120,\n\t\t39, 217, 71, 18, 243, 209, 36, 143, 229, 63, 137, 94, 134,\n\t\t94, 137, 30, 68, 143, 238, 193, 91, 56, 226, 104, 37, 226,\n\t\t18, 134, 78, 87, 225, 255, 7, 247, 98, 49, 97, 181, 209, 235,\n\t\t198, 71, 65, 162, 195, 87, 248, 60, 79, 62, 201, 232, 6, 101,\n\t\t165, 197, 82, 105, 177, 196, 147, 187, 50, 182, 118, 126,\n\t\t4, 182, 87, 27, 61, 206, 170, 8, 221, 198, 106, 239, 73, 193,\n\t\t191, 147, 206, 231, 223, 31, 31, 210, 241, 229, 131, 124,\n\t\t252, 175, 134, 165, 210, 187, 111, 10, 75, 165, 240, 166,\n\t\t203, 228, 189, 113, 143, 207, 198, 227, 76, 219, 163, 63,\n\t\t111, 68, 175, 66, 175, 67, 63, 137, 222, 189, 139, 149, 173,\n\t\t21, 182, 71, 219, 27, 189, 228, 43, 127, 143, 191, 51, 236,\n\t\t197, 232, 37, 95, 197, 61, 92, 205, 245, 80, 174, 186, 218,\n\t\t232, 14, 122, 118, 208, 163, 131, 158, 236, 223, 138, 203,\n\t\t197, 207, 163, 154, 219, 236, 119, 238, 160, 219, 7, 137,\n\t\t65, 191, 199, 253, 45, 176, 216, 27, 171, 207, 21, 121, 24,\n\t\t85, 191, 39, 195, 213, 241, 212, 224, 238, 59, 171, 57, 254,\n\t\t212, 139, 185, 234, 70, 177, 127, 39, 63, 17, 167, 38, 226,\n\t\t210, 131, 148, 61, 184, 203, 113, 17, 47, 253, 224, 210, 231,\n\t\t56, 143, 12, 65, 13, 212, 65, 167, 248, 238, 202, 189, 92,\n\t\t15, 161, 181, 117, 160, 156, 211, 129, 8, 187, 113, 173, 35,\n\t\t112, 203, 195, 88, 161, 231, 182, 156, 229, 180, 31, 6, 220,\n\t\t201, 180, 94, 107, 7, 157, 40, 168, 22, 176, 13, 22, 94, 196,\n\t\t135, 185, 191, 1, 37, 126, 135, 91, 172, 22, 129, 20, 160,\n\t\t19, 17, 97, 7, 226, 188, 255, 132, 146, 176, 19, 252, 123,\n\t\t181, 152, 2, 43, 119, 171, 124, 162, 102, 102, 169, 84, 185,\n\t\t249, 52, 41, 202, 169, 212, 221, 15, 79, 79, 103, 157, 98,\n\t\t166, 16, 128, 4, 119, 222, 252, 147, 152, 58, 186, 147, 199,\n\t\t144, 154, 55, 37, 248, 89, 195, 33, 184, 72, 207, 189, 226,\n\t\t200, 217, 14, 45, 202, 147, 254, 207, 60, 46, 110, 72, 94,\n\t\t49, 159, 59, 119, 66, 91, 124, 172, 44, 253, 87, 9, 250, 31,\n\t\t2, 119, 254, 119, 230, 244, 180, 83, 8, 23, 38, 154, 122,\n\t\t165, 8, 211, 199, 107, 191, 228, 215, 181, 253, 68, 14, 65,\n\t\t86, 252, 125, 0, 115, 90, 218, 194, 146, 231, 42, 148, 81,\n\t\t155, 76, 81, 63, 111, 126, 122, 230, 84, 73, 63, 178, 57,\n\t\t243, 75, 126, 65, 202, 124, 66, 220, 80, 220, 28, 241, 158,\n\t\t183, 231, 235, 249, 112, 182, 113, 150, 40, 122, 218, 2, 201,\n\t\t115, 20, 202, 212, 209, 253, 198, 69, 212, 65, 235, 232, 4,\n\t\t66, 144, 182, 36, 234, 183, 210, 28, 129, 160, 92, 171, 47,\n\t\t66, 187, 213, 30, 30, 6, 130, 115, 92, 192, 39, 59, 54, 245,\n\t\t6, 32, 87, 91, 196, 176, 211, 122, 215, 157, 242, 216, 137,\n\t\t31, 59, 193, 10, 213, 110, 126, 58, 254, 225, 100, 127, 93,\n\t\t103, 210, 123, 63, 127, 87, 71, 127, 0, 25, 19, 105, 215,\n\t\t148, 107, 126, 53, 71, 230, 247, 239, 159, 103, 205, 98, 77,\n\t\t219, 55, 21, 255, 138, 157, 219, 116, 53, 71, 106, 23, 121,\n\t\t233, 59, 71, 142, 3, 155, 119, 220, 142, 125, 168, 141, 222,\n\t\t129, 222, 141, 46, 162, 111, 141, 236, 55, 9, 63, 140, 10,\n\t\t143, 111, 25, 135, 186, 78, 26, 52, 37, 52, 129, 106, 171,\n\t\t94, 17, 83, 115, 252, 41, 66, 19, 159, 170, 17, 130, 245,\n\t\t90, 223, 33, 185, 54, 100, 58, 237, 244, 89, 22, 58, 209,\n\t\t160, 127, 130, 48, 33, 200, 13, 6, 92, 131, 245, 102, 144,\n\t\t68, 86, 254, 19, 255, 97, 177, 215, 229, 90, 245, 229, 108,\n\t\t237, 88, 112, 52, 56, 118, 213, 177, 192, 229, 235, 52, 163,\n\t\t207, 121, 230, 131, 230, 164, 122, 238, 180, 233, 245, 182,\n\t\t223, 214, 186, 22, 150, 227, 117, 132, 81, 69, 34, 50, 119,\n\t\t139, 150, 53, 225, 13, 167, 107, 201, 181, 34, 43, 241, 103,\n\t\t95, 172, 192, 163, 252, 129, 93, 224, 62, 32, 255, 4, 127,\n\t\t232, 34, 207, 78, 231, 157, 114, 161, 80, 46, 23, 250, 209,\n\t\t104, 155, 166, 103, 105, 247, 120, 102, 119, 179, 219, 187,\n\t\t24, 47, 102, 63, 226, 31, 223, 85, 96, 131, 15, 151, 21, 70,\n\t\t139, 178, 42, 239, 42, 40, 43, 63, 234, 95, 18, 239, 143,\n\t\t208, 151, 35, 142, 211, 121, 102, 100, 204, 237, 29, 197,\n\t\t112, 249, 161, 231, 183, 234, 253, 253, 105, 121, 236, 193,\n\t\t54, 241, 209, 31, 59, 138, 143, 243, 99, 51, 145, 36, 47,\n\t\t136, 199, 250, 218, 229, 248, 177, 126, 228, 234, 111, 136,\n\t\t55, 104, 77, 60, 23, 81, 125, 101, 241, 232, 209, 69, 69,\n\t\t239, 159, 121, 102, 215, 244, 182, 226, 94, 125, 220, 51,\n\t\t187, 219, 155, 155, 189, 237, 145, 23, 16, 13, 120, 237, 17,\n\t\t108, 33, 140, 52, 206, 29, 120, 134, 123, 201, 246, 157, 68,\n\t\t162, 221, 244, 198, 75, 192, 13, 112, 22, 8, 237, 184, 121,\n\t\t24, 90, 97, 208, 26, 174, 61, 53, 14, 130, 221, 106, 70, 124,\n\t\t53, 251, 72, 42, 245, 126, 190, 171, 254, 56, 39, 63, 222,\n\t\t140, 143, 191, 163, 50, 220, 193, 22, 205, 42, 140, 226, 14,\n\t\t102, 170, 107, 72, 234, 9, 85, 50, 190, 192, 37, 77, 195,\n\t\t136, 133, 62, 219, 84, 226, 139, 231, 218, 109, 71, 160, 226,\n\t\t229, 211, 189, 139, 220, 125, 161, 152, 206, 247, 46, 154,\n\t\t234, 207, 240, 209, 248, 51, 170, 169, 251, 190, 238, 112,\n\t\t177, 118, 90, 158, 93, 155, 37, 132, 37, 126, 37, 208, 77,\n\t\t252, 42, 118, 225, 225, 143, 144, 127, 12, 182, 83, 184, 131,\n\t\t110, 192, 193, 176, 129, 227, 128, 110, 90, 90, 81, 179, 54,\n\t\t227, 228, 66, 245, 244, 107, 78, 87, 175, 152, 207, 22, 82,\n\t\t186, 239, 108, 243, 27, 31, 136, 111, 124, 128, 39, 15, 182,\n\t\t143, 156, 61, 123, 164, 125, 240, 185, 114, 97, 98, 127, 218,\n\t\t40, 53, 156, 194, 0, 15, 116, 155, 199, 64, 30, 64, 71, 17,\n\t\t170, 238, 205, 198, 36, 66, 75, 135, 28, 109, 253, 176, 208,\n\t\t81, 108, 230, 1, 83, 211, 246, 14, 22, 166, 222, 243, 140,\n\t\t46, 243, 71, 45, 12, 4, 253, 228, 119, 122, 127, 106, 122,\n\t\t41, 235, 150, 93, 188, 75, 175, 47, 82, 38, 34, 174, 71, 63,\n\t\t213, 251, 154, 224, 97, 26, 234, 176, 148, 99, 221, 180, 226,\n\t\t122, 247, 229, 231, 112, 196, 14, 201, 189, 77, 202, 180,\n\t\t212, 30, 183, 95, 198, 135, 26, 231, 159, 35, 126, 58, 28,\n\t\t0, 39, 183, 224, 211, 111, 184, 254, 250, 55, 92, 255, 188,\n\t\t86, 211, 12, 77, 91, 211, 186, 209, 98, 239, 225, 73, 111,\n\t\t99, 210, 187, 224, 77, 110, 120, 147, 236, 51, 91, 239, 160,\n\t\t94, 239, 143, 189, 201, 109, 70, 47, 94, 31, 23, 62, 106,\n\t\t104, 29, 77, 187, 74, 219, 46, 110, 120, 147, 203, 222, 228,\n\t\t164, 183, 60, 233, 237, 131, 205, 98, 241, 226, 196, 196,\n\t\t108, 109, 210, 123, 50, 225, 123, 55, 6, 117, 94, 64, 251,\n\t\t209, 21, 232, 90, 116, 43, 122, 53, 122, 24, 253, 36, 122,\n\t\t2, 125, 16, 125, 12, 125, 242, 165, 89, 92, 247, 182, 189,\n\t\t94, 142, 51, 58, 252, 39, 42, 227, 93, 166, 12, 190, 71, 179,\n\t\t4, 139, 129, 165, 53, 248, 107, 209, 21, 71, 75, 123, 82,\n\t\t179, 122, 23, 140, 134, 177, 227, 103, 107, 119, 214, 30,\n\t\t165, 198, 178, 0, 89, 90, 239, 251, 220, 24, 124, 143, 102,\n\t\t137, 120, 96, 113, 60, 21, 15, 238, 103, 190, 206, 75, 189,\n\t\t102, 228, 248, 233, 93, 57, 215, 239, 202, 233, 253, 229,\n\t\t200, 69, 226, 223, 45, 48, 8, 210, 232, 250, 196, 23, 161,\n\t\t194, 89, 73, 219, 43, 209, 58, 142, 149, 69, 101, 61, 214,\n\t\t150, 56, 90, 225, 65, 44, 128, 157, 107, 220, 9, 36, 121,\n\t\t3, 44, 28, 22, 128, 99, 59, 247, 161, 157, 3, 14, 36, 34,\n\t\t192, 172, 159, 250, 250, 83, 79, 221, 187, 218, 58, 114, 149,\n\t\t138, 21, 123, 146, 236, 135, 137, 112, 82, 194, 19, 110, 147,\n\t\t176, 34, 40, 138, 74, 92, 25, 56, 104, 149, 67, 153, 61, 97,\n\t\t224, 228, 22, 25, 191, 3, 23, 30, 249, 248, 35, 94, 75, 149,\n\t\t36, 217, 107, 6, 251, 79, 223, 240, 105, 92, 157, 112, 51,\n\t\t138, 13, 84, 197, 50, 113, 101, 67, 98, 152, 71, 124, 164,\n\t\t32, 149, 119, 246, 188, 147, 224, 45, 28, 133, 11, 40, 133,\n\t\t206, 162, 187, 249, 190, 211, 160, 173, 66, 47, 110, 74, 226,\n\t\t89, 115, 52, 107, 204, 219, 204, 109, 170, 47, 9, 206, 90,\n\t\t9, 184, 135, 26, 223, 49, 170, 7, 28, 238, 160, 30, 107, 222,\n\t\t112, 225, 145, 27, 214, 90, 115, 139, 42, 14, 172, 218, 35,\n\t\t31, 191, 139, 99, 87, 43, 170, 65, 23, 152, 68, 164, 31, 130,\n\t\t105, 13, 183, 88, 129, 36, 43, 139, 115, 173, 181, 238, 61,\n\t\t19, 41, 235, 149, 79, 192, 254, 83, 112, 244, 109, 183, 101,\n\t\t50, 170, 36, 133, 83, 51, 173, 163, 183, 93, 66, 170, 234,\n\t\t64, 54, 165, 90, 58, 195, 166, 164, 73, 68, 238, 67, 88, 59,\n\t\t226, 206, 78, 100, 235, 159, 158, 10, 101, 45, 147, 233, 204,\n\t\t227, 7, 207, 106, 90, 106, 163, 217, 26, 240, 71, 11, 127,\n\t\t183, 189, 60, 221, 198, 214, 203, 248, 54, 8, 103, 116, 238,\n\t\t162, 56, 146, 76, 208, 47, 132, 187, 225, 200, 205, 161, 158,\n\t\t6, 176, 141, 110, 68, 183, 162, 87, 162, 87, 163, 7, 208,\n\t\t195, 232, 205, 232, 49, 244, 206, 88, 79, 235, 251, 142, 213,\n\t\t9, 13, 185, 83, 103, 57, 22, 203, 194, 196, 75, 34, 138, 197,\n\t\t178, 196, 120, 90, 171, 211, 190, 14, 214, 25, 70, 82, 116,\n\t\t34, 65, 246, 27, 248, 52, 22, 205, 18, 19, 88, 16, 214, 227,\n\t\t203, 90, 252, 87, 59, 81, 133, 31, 69, 70, 252, 75, 131, 129,\n\t\t95, 120, 39, 170, 19, 218, 226, 71, 254, 13, 1, 252, 53, 213,\n\t\t52, 234, 170, 211, 166, 2, 74, 32, 91, 138, 190, 116, 16,\n\t\t24, 45, 80, 6, 7, 151, 116, 197, 146, 3, 89, 49, 167, 85,\n\t\t119, 80, 74, 190, 124, 161, 223, 144, 109, 115, 174, 112,\n\t\t115, 181, 48, 103, 218, 175, 241, 73, 87, 98, 87, 17, 127,\n\t\t31, 147, 142, 241, 252, 38, 223, 67, 62, 48, 114, 215, 232,\n\t\t198, 183, 255, 228, 255, 242, 219, 118, 23, 122, 180, 43,\n\t\t177, 125, 62, 225, 223, 89, 168, 202, 182, 121, 21, 255, 178,\n\t\t119, 240, 236, 31, 231, 59, 206, 79, 14, 111, 158, 146, 227,\n\t\t187, 137, 127, 13, 130, 47, 114, 187, 233, 66, 60, 71, 68,\n\t\t227, 70, 174, 10, 109, 143, 90, 188, 202, 181, 160, 121, 24,\n\t\t6, 244, 166, 97, 53, 152, 4, 218, 46, 249, 117, 254, 142,\n\t\t241, 162, 235, 74, 171, 89, 144, 5, 97, 115, 192, 29, 152,\n\t\t185, 128, 240, 92, 114, 190, 64, 217, 137, 21, 255, 63, 8,\n\t\t129, 228, 63, 192, 100, 106, 179, 183, 189, 153, 114, 172,\n\t\t124, 250, 26, 160, 144, 183, 66, 85, 13, 173, 60, 80, 184,\n\t\t38, 157, 183, 190, 53, 52, 130, 109, 244, 19, 236, 33, 251,\n\t\t233, 111, 196, 210, 200, 55, 158, 254, 107, 107, 66, 59, 241,\n\t\t43, 191, 114, 66, 155, 176, 76, 109, 62, 157, 7, 5, 124, 166,\n\t\t235, 204, 7, 5, 242, 233, 121, 125, 132, 147, 201, 229, 204,\n\t\t23, 205, 49, 9, 224, 32, 55, 16, 141, 7, 185, 61, 63, 148,\n\t\t149, 46, 116, 55, 25, 229, 155, 14, 219, 148, 65, 151, 187,\n\t\t100, 10, 25, 168, 251, 204, 160, 50, 104, 236, 59, 218, 151,\n\t\t255, 142, 81, 145, 66, 124, 219, 168, 216, 177, 235, 123,\n\t\t79, 241, 63, 127, 42, 254, 154, 65, 114, 119, 29, 198, 239,\n\t\t199, 73, 196, 57, 159, 127, 45, 241, 71, 207, 115, 180, 188,\n\t\t120, 62, 11, 249, 238, 223, 33, 232, 35, 5, 247, 189, 38,\n\t\t194, 120, 46, 172, 93, 14, 216, 95, 108, 240, 242, 169, 80,\n\t\t80, 110, 143, 67, 251, 127, 242, 240, 117, 7, 213, 138, 179,\n\t\t225, 124, 198, 118, 125, 184, 232, 187, 246, 27, 223, 118,\n\t\t219, 109, 111, 187, 237, 185, 61, 193, 251, 153, 163, 211,\n\t\t56, 27, 75, 10, 30, 71, 245, 207, 58, 119, 31, 187, 118, 191,\n\t\t195, 244, 53, 35, 253, 47, 126, 219, 174, 215, 237, 119, 221,\n\t\t22, 255, 161, 247, 238, 49, 183, 113, 219, 173, 225, 48, 145,\n\t\t143, 21, 25, 143, 220, 65, 99, 246, 232, 87, 161, 7, 208,\n\t\t27, 71, 36, 208, 118, 37, 254, 239, 183, 252, 150, 63, 202,\n\t\t226, 219, 106, 183, 218, 21, 159, 255, 223, 173, 51, 140,\n\t\t109, 80, 237, 113, 30, 28, 234, 126, 43, 249, 155, 67, 171,\n\t\t17, 112, 24, 145, 13, 238, 97, 37, 56, 170, 147, 116, 162,\n\t\t48, 58, 98, 191, 170, 59, 242, 235, 208, 248, 231, 251, 194,\n\t\t250, 43, 156, 34, 55, 25, 221, 162, 236, 194, 214, 230, 230,\n\t\t214, 5, 33, 34, 136, 52, 207, 62, 207, 213, 55, 225, 128,\n\t\t233, 236, 60, 158, 231, 32, 35, 231, 159, 227, 123, 87, 159,\n\t\t17, 182, 181, 145, 254, 217, 135, 14, 163, 147, 2, 27, 62,\n\t\t217, 182, 138, 223, 226, 65, 155, 19, 185, 104, 87, 186, 213,\n\t\t148, 155, 157, 195, 176, 136, 203, 196, 134, 2, 244, 245,\n\t\t21, 248, 129, 196, 238, 90, 253, 212, 234, 93, 76, 82, 253,\n\t\t238, 68, 113, 66, 75, 107, 131, 99, 215, 239, 253, 239, 229,\n\t\t101, 195, 80, 220, 166, 56, 9, 106, 190, 39, 8, 53, 217, 253,\n\t\t107, 107, 247, 51, 147, 18, 239, 121, 103, 98, 194, 121, 187,\n\t\t166, 253, 155, 248, 252, 111, 52, 237, 237, 241, 249, 249,\n\t\t173, 162, 227, 80, 127, 154, 31, 215, 250, 190, 235, 131,\n\t\t184, 226, 38, 58, 158, 88, 130, 195, 128, 44, 65, 152, 30,\n\t\t58, 145, 183, 35, 90, 30, 248, 146, 11, 156, 242, 72, 132,\n\t\t54, 7, 54, 174, 71, 245, 136, 214, 105, 61, 164, 33, 141,\n\t\t104, 20, 214, 225, 5, 83, 49, 238, 56, 195, 44, 243, 53, 178,\n\t\t174, 170, 228, 248, 113, 162, 170, 186, 252, 26, 140, 13,\n\t\t77, 61, 115, 135, 161, 152, 247, 207, 42, 105, 227, 182, 178,\n\t\t156, 149, 203, 183, 25, 105, 101, 118, 105, 122, 169, 157,\n\t\t94, 112, 156, 133, 116, 123, 105, 122, 5, 151, 74, 248, 239,\n\t\t32, 71, 218, 231, 180, 9, 105, 226, 65, 85, 167, 55, 223,\n\t\t76, 117, 245, 193, 9, 95, 59, 215, 38, 57, 112, 238, 49, 93,\n\t\t186, 118, 159, 105, 222, 183, 70, 93, 243, 158, 55, 55, 50,\n\t\t106, 115, 178, 213, 154, 108, 170, 153, 134, 209, 153, 157,\n\t\t237, 160, 1, 159, 96, 17, 182, 99, 249, 165, 218, 178, 160,\n\t\t82, 174, 44, 66, 189, 85, 175, 213, 87, 162, 86, 157, 27,\n\t\t216, 2, 26, 203, 247, 5, 136, 79, 5, 8, 163, 4, 133, 125,\n\t\t37, 105, 162, 183, 210, 244, 189, 184, 137, 98, 31, 136, 3,\n\t\t176, 198, 29, 179, 14, 81, 44, 216, 117, 34, 30, 48, 37, 12,\n\t\t117, 180, 21, 223, 133, 139, 141, 210, 219, 175, 165, 228,\n\t\t234, 71, 167, 26, 7, 101, 128, 165, 153, 224, 6, 89, 81, 53,\n\t\t73, 59, 64, 128, 204, 100, 23, 38, 113, 78, 209, 228, 244,\n\t\t44, 165, 179, 105, 89, 83, 10, 134, 163, 79, 13, 50, 0, 43,\n\t\t74, 14, 87, 219, 42, 73, 103, 8, 144, 3, 154, 164, 169, 138,\n\t\t252, 178, 112, 102, 9, 148, 205, 83, 55, 201, 55, 94, 113,\n\t\t208, 79, 153, 238, 204, 93, 107, 146, 165, 102, 178, 39, 231,\n\t\t20, 91, 169, 70, 147, 43, 21, 114, 36, 37, 51, 82, 98, 96,\n\t\t1, 43, 17, 38, 251, 80, 84, 213, 222, 69, 159, 103, 98, 19,\n\t\t88, 9, 99, 25, 43, 114, 234, 8, 109, 87, 139, 235, 161, 98,\n\t\t43, 115, 39, 179, 25, 213, 194, 135, 238, 154, 113, 32, 155,\n\t\t221, 161, 231, 253, 20, 122, 223, 229, 245, 60, 226, 115,\n\t\t91, 36, 229, 163, 131, 163, 189, 9, 199, 185, 246, 202, 97,\n\t\t88, 131, 125, 43, 117, 238, 27, 30, 75, 5, 113, 143, 240,\n\t\t232, 185, 58, 167, 231, 23, 14, 187, 75, 16, 173, 112, 135,\n\t\t151, 10, 173, 175, 148, 125, 90, 23, 88, 129, 233, 41, 254,\n\t\t20, 56, 164, 57, 237, 187, 16, 69, 132, 198, 95, 84, 174,\n\t\t95, 94, 113, 252, 138, 82, 37, 10, 150, 37, 60, 193, 14, 93,\n\t\t115, 136, 77, 96, 73, 198, 88, 170, 42, 190, 68, 36, 69, 201,\n\t\t217, 69, 109, 194, 201, 120, 216, 4, 206, 47, 203, 82, 146,\n\t\t148, 98, 24, 3, 88, 138, 170, 24, 88, 193, 106, 156, 163,\n\t\t130, 4, 0, 58, 246, 50, 206, 132, 86, 180, 115, 138, 34, 17,\n\t\t233, 79, 47, 171, 123, 166, 44, 128, 162, 66, 36, 236, 215,\n\t\t246, 237, 171, 249, 88, 138, 191, 180, 8, 96, 165, 2, 140,\n\t\t9, 201, 22, 93, 59, 85, 240, 220, 32, 61, 37, 87, 24, 128,\n\t\t132, 109, 9, 8, 200, 22, 0, 198, 218, 121, 89, 126, 128, 129,\n\t\t44, 89, 50, 16, 144, 236, 56, 15, 104, 73, 158, 74, 7, 174,\n\t\t87, 72, 217, 110, 49, 75, 8, 198, 189, 191, 16, 154, 172,\n\t\t176, 17, 254, 58, 231, 29, 177, 57, 38, 233, 33, 116, 6, 221,\n\t\t44, 152, 103, 170, 53, 170, 112, 26, 138, 78, 51, 164, 157,\n\t\t80, 241, 211, 68, 76, 62, 139, 112, 8, 226, 169, 51, 193,\n\t\t147, 63, 204, 13, 113, 201, 85, 1, 90, 81, 39, 244, 185, 7,\n\t\t181, 0, 4, 39, 245, 177, 43, 60, 27, 244, 190, 23, 134, 189,\n\t\t239, 153, 236, 47, 173, 162, 53, 111, 89, 144, 178, 244, 191,\n\t\t209, 2, 237, 111, 116, 107, 139, 200, 27, 36, 254, 125, 146,\n\t\t200, 155, 68, 82, 240, 38, 121, 142, 108, 200, 36, 254, 125,\n\t\t146, 108, 202, 36, 254, 133, 215, 208, 112, 223, 6, 165, 27,\n\t\t251, 52, 87, 58, 171, 40, 175, 149, 229, 235, 254, 92, 119,\n\t\t165, 14, 198, 29, 201, 213, 255, 188, 236, 200, 10, 4, 64,\n\t\t220, 248, 132, 23, 92, 89, 193, 89, 32, 174, 36, 67, 246,\n\t\t255, 165, 238, 207, 227, 28, 185, 234, 123, 97, 248, 156,\n\t\t83, 117, 206, 169, 93, 37, 213, 166, 125, 109, 85, 169, 151,\n\t\t145, 186, 165, 150, 74, 179, 116, 143, 220, 51, 99, 143, 103,\n\t\t198, 227, 158, 5, 143, 61, 54, 118, 123, 197, 96, 27, 26,\n\t\t99, 199, 142, 33, 32, 54, 99, 18, 2, 206, 37, 113, 88, 18,\n\t\t232, 36, 132, 144, 11, 9, 115, 201, 6, 89, 160, 129, 144,\n\t\t133, 36, 224, 220, 228, 38, 36, 185, 47, 153, 44, 92, 200,\n\t\t39, 155, 201, 125, 67, 224, 2, 154, 231, 83, 231, 148, 212,\n\t\t234, 241, 216, 64, 238, 243, 207, 51, 211, 170, 58, 117, 170,\n\t\t84, 170, 229, 44, 191, 245, 251, 69, 73, 147, 32, 23, 98,\n\t\t49, 73, 160, 11, 241, 76, 146, 160, 44, 223, 202, 34, 12,\n\t\t132, 75, 255, 251, 210, 39, 144, 10, 183, 193, 75, 193, 247,\n\t\t129, 87, 179, 108, 23, 202, 145, 114, 168, 215, 99, 209, 99,\n\t\t44, 242, 26, 117, 3, 103, 98, 189, 234, 242, 176, 191, 229,\n\t\t94, 103, 209, 139, 113, 25, 88, 223, 245, 88, 239, 119, 75,\n\t\t176, 27, 181, 214, 168, 201, 113, 187, 165, 231, 70, 67, 49,\n\t\t203, 59, 117, 19, 208, 9, 163, 89, 61, 96, 195, 57, 141, 218,\n\t\t118, 9, 246, 2, 219, 139, 26, 51, 129, 91, 253, 182, 169,\n\t\t148, 186, 146, 186, 94, 104, 97, 197, 32, 42, 21, 37, 42,\n\t\t206, 154, 86, 214, 50, 103, 161, 46, 71, 234, 39, 110, 21,\n\t\t214, 85, 169, 239, 40, 153, 214, 1, 85, 150, 105, 198, 175,\n\t\t92, 183, 64, 69, 41, 91, 42, 102, 136, 40, 237, 223, 79, 69,\n\t\t156, 41, 150, 178, 146, 64, 22, 78, 84, 253, 140, 32, 202,\n\t\t47, 200, 73, 186, 78, 10, 195, 2, 54, 12, 154, 131, 175, 46,\n\t\t190, 226, 96, 48, 179, 162, 144, 57, 187, 2, 13, 133, 170,\n\t\t68, 32, 20, 231, 139, 114, 42, 82, 22, 82, 114, 49, 47, 107,\n\t\t134, 109, 192, 138, 61, 71, 148, 171, 210, 153, 35, 195, 50,\n\t\t149, 21, 165, 209, 106, 92, 237, 246, 236, 25, 42, 39, 19,\n\t\t157, 82, 177, 147, 80, 101, 218, 237, 82, 89, 77, 116, 138,\n\t\t165, 78, 34, 41, 211, 25, 187, 231, 94, 221, 104, 53, 68,\n\t\t76, 176, 252, 80, 217, 78, 250, 190, 102, 85, 171, 150, 230,\n\t\t251, 73, 123, 247, 252, 159, 100, 156, 197, 172, 213, 77,\n\t\t156, 58, 188, 221, 117, 156, 78, 55, 254, 180, 99, 130, 220,\n\t\t253, 240, 178, 120, 128, 14, 252, 154, 194, 93, 205, 202,\n\t\t63, 98, 13, 255, 193, 96, 99, 176, 49, 48, 169, 60, 26, 200,\n\t\t212, 228, 153, 121, 49, 67, 231, 93, 162, 90, 143, 10, 117,\n\t\t85, 60, 143, 208, 199, 183, 162, 127, 60, 96, 100, 99, 39,\n\t\t220, 36, 182, 239, 12, 226, 88, 145, 189, 96, 5, 156, 0, 96,\n\t\t31, 140, 67, 17, 43, 60, 190, 144, 97, 4, 26, 136, 86, 153,\n\t\t79, 37, 104, 162, 160, 59, 141, 249, 216, 109, 194, 72, 146,\n\t\t236, 117, 112, 183, 230, 212, 89, 198, 17, 71, 73, 171, 85,\n\t\t201, 15, 205, 205, 151, 227, 8, 179, 65, 121, 91, 183, 168,\n\t\t183, 48, 139, 170, 50, 77, 218, 112, 118, 193, 163, 150, 142,\n\t\t88, 236, 217, 182, 48, 147, 217, 176, 116, 88, 30, 140, 46,\n\t\t110, 240, 224, 240, 139, 89, 191, 236, 46, 62, 30, 237, 125,\n\t\t124, 209, 221, 178, 116, 139, 164, 42, 69, 87, 54, 97, 161,\n\t\t154, 194, 166, 110, 109, 48, 87, 194, 227, 153, 74, 89, 183,\n\t\t134, 131, 193, 70, 153, 49, 60, 110, 248, 83, 246, 31, 25,\n\t\t88, 160, 0, 2, 208, 6, 43, 224, 40, 56, 3, 110, 5, 47, 6,\n\t\t15, 129, 143, 196, 113, 151, 211, 169, 81, 87, 46, 117, 122,\n\t\t99, 118, 154, 41, 162, 154, 255, 116, 17, 239, 82, 90, 174,\n\t\t28, 211, 61, 165, 229, 184, 187, 236, 104, 189, 39, 153, 197,\n\t\t103, 200, 150, 23, 167, 202, 63, 144, 181, 76, 73, 42, 191,\n\t\t226, 187, 94, 33, 142, 115, 211, 111, 108, 243, 230, 194,\n\t\t2, 190, 47, 108, 55, 226, 100, 23, 157, 211, 205, 111, 71,\n\t\t58, 181, 76, 159, 124, 50, 218, 123, 249, 178, 108, 233, 82,\n\t\t89, 211, 154, 172, 219, 252, 167, 75, 127, 194, 207, 215,\n\t\t232, 15, 118, 26, 228, 160, 223, 224, 181, 186, 197, 174,\n\t\t238, 130, 53, 230, 139, 226, 239, 51, 13, 14, 129, 117, 0,\n\t\t156, 100, 39, 201, 53, 191, 122, 133, 13, 40, 140, 134, 207,\n\t\t117, 236, 73, 130, 67, 236, 66, 173, 49, 61, 194, 64, 188,\n\t\t84, 221, 65, 244, 235, 8, 69, 145, 191, 228, 144, 231, 59,\n\t\t162, 67, 163, 119, 21, 110, 60, 50, 47, 73, 243, 71, 110,\n\t\t100, 222, 38, 43, 107, 13, 210, 154, 134, 205, 220, 192, 202,\n\t\t90, 204, 3, 53, 20, 36, 55, 105, 12, 203, 102, 25, 14, 70,\n\t\t81, 123, 251, 163, 124, 233, 80, 127, 190, 171, 40, 221, 249,\n\t\t254, 161, 210, 1, 150, 37, 198, 241, 54, 143, 58, 51, 84,\n\t\t18, 20, 223, 57, 202, 183, 121, 2, 217, 0, 226, 148, 83, 73,\n\t\t149, 203, 249, 69, 101, 28, 71, 19, 141, 11, 159, 1, 6, 184,\n\t\t23, 188, 1, 0, 46, 52, 245, 198, 180, 196, 110, 220, 72, 216,\n\t\t72, 220, 93, 238, 69, 211, 63, 247, 156, 51, 174, 9, 55, 70,\n\t\t197, 101, 123, 188, 162, 208, 225, 160, 27, 44, 224, 96, 63,\n\t\t231, 34, 172, 178, 113, 122, 57, 236, 121, 69, 228, 185, 180,\n\t\t211, 62, 136, 88, 56, 137, 33, 214, 170, 77, 28, 248, 61,\n\t\t175, 40, 244, 224, 139, 93, 65, 112, 41, 141, 150, 130, 68,\n\t\t79, 239, 223, 95, 207, 5, 150, 2, 85, 161, 214, 82, 29, 167,\n\t\t168, 100, 10, 179, 110, 234, 120, 119, 238, 170, 153, 164,\n\t\t42, 66, 65, 53, 43, 75, 229, 172, 239, 103, 43, 178, 104,\n\t\t138, 178, 204, 92, 186, 73, 93, 81, 178, 4, 55, 250, 110,\n\t\t61, 139, 229, 100, 43, 161, 164, 95, 46, 165, 4, 156, 112,\n\t\t234, 174, 89, 114, 29, 93, 21, 33, 177, 84, 209, 240, 131,\n\t\t46, 124, 189, 43, 72, 252, 23, 37, 193, 21, 134, 251, 103,\n\t\t239, 154, 89, 214, 45, 139, 80, 159, 8, 226, 124, 66, 190,\n\t\t43, 225, 40, 153, 66, 169, 210, 61, 94, 90, 92, 242, 8, 38,\n\t\t72, 180, 157, 146, 225, 47, 251, 80, 42, 75, 137, 124, 35,\n\t\t175, 82, 106, 139, 9, 226, 43, 130, 55, 227, 4, 51, 74, 230,\n\t\t93, 68, 86, 102, 4, 66, 53, 153, 74, 154, 169, 39, 8, 210,\n\t\t146, 146, 40, 37, 176, 62, 126, 206, 175, 131, 219, 224, 103,\n\t\t193, 47, 128, 95, 1, 96, 166, 8, 13, 232, 71, 242, 86, 83,\n\t\t96, 161, 252, 69, 200, 131, 209, 170, 77, 20, 144, 106, 48,\n\t\t33, 141, 239, 49, 27, 142, 129, 184, 104, 70, 252, 192, 95,\n\t\t94, 133, 225, 42, 140, 158, 102, 143, 209, 50, 240, 81, 209,\n\t\t143, 143, 47, 194, 232, 29, 173, 194, 48, 104, 194, 73, 102,\n\t\t70, 175, 189, 195, 127, 26, 233, 39, 136, 101, 179, 199, 63,\n\t\t72, 25, 101, 42, 97, 248, 224, 225, 170, 128, 226, 32, 183,\n\t\t73, 176, 219, 139, 44, 137, 166, 44, 183, 228, 104, 158, 169,\n\t\t96, 65, 16, 242, 21, 185, 108, 69, 51, 162, 215, 200, 24,\n\t\t88, 55, 117, 108, 100, 26, 94, 84, 97, 149, 229, 74, 94, 16,\n\t\t68, 226, 36, 84, 205, 41, 185, 86, 74, 64, 34, 21, 21, 203,\n\t\t72, 74, 146, 107, 17, 73, 17, 145, 229, 153, 89, 77, 50, 24,\n\t\t47, 57, 47, 81, 111, 46, 147, 204, 212, 234, 189, 186, 106,\n\t\t229, 246, 229, 44, 181, 222, 171, 215, 50, 201, 204, 156,\n\t\t71, 37, 67, 210, 178, 38, 39, 54, 143, 74, 233, 20, 18, 21,\n\t\t137, 88, 174, 36, 37, 141, 31, 102, 1, 111, 163, 255, 96,\n\t\t171, 123, 105, 202, 146, 104, 194, 145, 13, 91, 87, 117, 226,\n\t\t169, 181, 190, 97, 27, 249, 61, 117, 11, 66, 171, 190, 39,\n\t\t111, 216, 70, 191, 166, 122, 68, 79, 36, 51, 24, 59, 9, 42,\n\t\t201, 88, 145, 40, 20, 161, 32, 97, 156, 160, 217, 130, 129,\n\t\t133, 164, 105, 232, 142, 97, 27, 102, 66, 115, 42, 203, 201,\n\t\t42, 170, 103, 114, 245, 122, 206, 50, 235, 146, 84, 55, 173,\n\t\t168, 156, 169, 163, 106, 114, 185, 226, 232, 134, 105, 216,\n\t\t70, 180, 74, 10, 216, 40, 100, 105, 2, 99, 73, 128, 1, 199,\n\t\t124, 25, 7, 225, 225, 93, 220, 37, 41, 134, 62, 57, 197, 40,\n\t\t228, 7, 142, 215, 163, 93, 234, 134, 78, 47, 20, 12, 228,\n\t\t216, 94, 204, 124, 0, 47, 156, 187, 234, 181, 222, 23, 110,\n\t\t242, 95, 209, 241, 223, 57, 127, 164, 225, 189, 54, 206, 104,\n\t\t123, 209, 161, 23, 169, 239, 127, 209, 236, 227, 15, 94, 83,\n\t\t125, 241, 131, 114, 21, 30, 148, 58, 39, 23, 90, 179, 47,\n\t\t26, 207, 241, 67, 248, 187, 64, 6, 54, 243, 50, 21, 99, 160,\n\t\t220, 46, 94, 94, 133, 7, 33, 99, 90, 230, 196, 141, 147, 209,\n\t\t233, 32, 236, 198, 253, 189, 0, 209, 3, 146, 42, 211, 205,\n\t\t17, 192, 50, 126, 96, 147, 202, 240, 105, 115, 163, 222, 171,\n\t\t111, 152, 139, 242, 9, 85, 61, 33, 159, 18, 146, 242, 93,\n\t\t84, 222, 62, 65, 52, 25, 181, 182, 101, 250, 13, 57, 245,\n\t\t47, 44, 58, 116, 227, 95, 82, 114, 225, 21, 134, 124, 92,\n\t\t211, 142, 203, 198, 43, 98, 191, 36, 139, 197, 28, 99, 28,\n\t\t63, 111, 132, 207, 56, 234, 228, 249, 182, 225, 147, 204,\n\t\t26, 180, 21, 45, 55, 119, 70, 236, 141, 43, 22, 225, 214,\n\t\t248, 80, 184, 97, 231, 71, 23, 134, 81, 61, 91, 92, 156, 44,\n\t\t6, 227, 5, 184, 226, 245, 214, 119, 105, 75, 174, 131, 59,\n\t\t187, 241, 81, 189, 239, 176, 13, 183, 191, 135, 75, 48, 199,\n\t\t199, 125, 23, 247, 54, 193, 168, 129, 175, 99, 126, 177, 6,\n\t\t99, 22, 97, 73, 184, 52, 160, 49, 70, 84, 52, 115, 179, 128,\n\t\t47, 22, 199, 206, 248, 129, 19, 144, 248, 48, 199, 0, 109,\n\t\t111, 75, 215, 94, 106, 57, 217, 167, 147, 158, 151, 188, 101,\n\t\t79, 217, 78, 45, 165, 252, 70, 58, 216, 167, 85, 28, 65, 191,\n\t\t81, 171, 196, 112, 181, 159, 47, 92, 245, 82, 107, 201, 171,\n\t\t122, 53, 251, 154, 202, 45, 21, 81, 44, 54, 91, 138, 144,\n\t\t169, 168, 71, 21, 97, 26, 39, 103, 22, 156, 102, 40, 235,\n\t\t81, 107, 75, 64, 50, 137, 205, 142, 154, 214, 98, 103, 21,\n\t\t114, 187, 246, 36, 236, 10, 199, 115, 74, 43, 142, 120, 230,\n\t\t226, 198, 152, 213, 168, 23, 246, 92, 175, 189, 20, 233, 171,\n\t\t80, 200, 90, 45, 255, 151, 68, 209, 52, 117, 249, 188, 249,\n\t\t48, 164, 25, 69, 35, 244, 58, 67, 54, 100, 248, 152, 107,\n\t\t154, 162, 248, 75, 126, 203, 202, 90, 178, 33, 27, 215, 81,\n\t\t162, 41, 25, 10, 31, 54, 33, 176, 244, 97, 112, 80, 105, 65,\n\t\t71, 221, 80, 146, 66, 241, 84, 33, 125, 65, 197, 132, 102,\n\t\t213, 215, 121, 217, 235, 162, 199, 184, 174, 191, 141, 122,\n\t\t27, 170, 3, 91, 202, 193, 128, 65, 80, 49, 35, 210, 117, 89,\n\t\t239, 117, 106, 150, 80, 162, 92, 72, 23, 78, 77, 242, 225,\n\t\t185, 46, 189, 4, 78, 130, 27, 158, 83, 155, 78, 160, 42, 83,\n\t\t127, 59, 237, 78, 232, 181, 59, 109, 198, 44, 81, 107, 65,\n\t\t191, 26, 196, 254, 231, 94, 119, 185, 182, 88, 229, 195, 244,\n\t\t62, 184, 228, 118, 218, 203, 53, 255, 57, 245, 225, 183, 171,\n\t\t25, 4, 97, 74, 132, 34, 132, 174, 11, 161, 8, 197, 20, 132,\n\t\t40, 163, 66, 113, 127, 235, 240, 225, 150, 99, 97, 42, 192,\n\t\t160, 223, 15, 160, 0, 17, 33, 246, 195, 207, 165, 229, 62,\n\t\t234, 138, 34, 74, 102, 68, 77, 19, 51, 73, 36, 138, 46, 58,\n\t\t116, 104, 227, 16, 69, 152, 244, 79, 246, 161, 65, 71, 63,\n\t\t204, 53, 84, 97, 226, 167, 200, 128, 25, 112, 219, 116, 228,\n\t\t246, 10, 156, 66, 44, 237, 180, 61, 145, 51, 77, 215, 170,\n\t\t196, 14, 185, 134, 229, 112, 160, 92, 158, 69, 193, 137, 136,\n\t\t187, 203, 45, 166, 140, 173, 194, 78, 151, 135, 175, 114,\n\t\t130, 93, 150, 110, 78, 28, 219, 131, 223, 160, 52, 79, 109,\n\t\t122, 23, 237, 31, 189, 225, 177, 199, 62, 244, 216, 130, 169,\n\t\t208, 209, 165, 71, 207, 6, 107, 193, 129, 179, 31, 52, 82,\n\t\t153, 148, 100, 74, 73, 67, 162, 154, 72, 8, 205, 99, 42, 239,\n\t\t49, 82, 154, 165, 93, 94, 139, 169, 77, 243, 148, 222, 69,\n\t\t21, 115, 225, 177, 15, 61, 246, 216, 13, 71, 251, 84, 62,\n\t\t123, 32, 56, 228, 159, 125, 244, 8, 78, 39, 82, 89, 238, 20,\n\t\t82, 49, 85, 69, 65, 148, 176, 34, 232, 56, 157, 208, 108,\n\t\t253, 242, 234, 9, 6, 194, 228, 57, 44, 242, 44, 200, 239,\n\t\t226, 73, 244, 166, 32, 14, 189, 49, 194, 86, 17, 62, 255,\n\t\t93, 190, 124, 117, 254, 144, 32, 9, 135, 142, 41, 134, 97,\n\t\t27, 68, 123, 190, 91, 249, 137, 249, 210, 204, 245, 130, 112,\n\t\t253, 76, 169, 107, 216, 6, 211, 31, 217, 245, 50, 30, 188,\n\t\t72, 183, 51, 65, 14, 212, 65, 23, 128, 208, 128, 30, 51, 247,\n\t\t49, 43, 95, 183, 227, 116, 199, 64, 12, 30, 9, 39, 218, 133,\n\t\t208, 237, 56, 227, 14, 27, 41, 210, 127, 222, 112, 93, 39,\n\t\t91, 206, 52, 245, 84, 178, 120, 110, 107, 203, 210, 135, 136,\n\t\t72, 219, 60, 245, 117, 187, 232, 188, 34, 91, 206, 236, 137,\n\t\t246, 189, 185, 120, 235, 108, 210, 202, 120, 149, 163, 238,\n\t\t85, 23, 182, 46, 150, 203, 186, 133, 12, 147, 231, 35, 141,\n\t\t158, 185, 240, 116, 118, 37, 113, 142, 239, 222, 193, 211,\n\t\t186, 6, 110, 131, 28, 127, 150, 113, 232, 249, 14, 84, 212,\n\t\t152, 111, 211, 155, 160, 193, 11, 6, 163, 143, 219, 209, 72,\n\t\t74, 208, 90, 133, 29, 180, 95, 211, 154, 77, 6, 245, 212,\n\t\t108, 50, 60, 168, 169, 45, 33, 18, 19, 62, 125, 7, 41, 155,\n\t\t165, 212, 141, 11, 209, 198, 41, 75, 217, 247, 2, 148, 82,\n\t\t63, 115, 165, 195, 227, 173, 47, 25, 202, 162, 98, 140, 222,\n\t\t236, 216, 249, 247, 177, 98, 242, 37, 240, 144, 170, 79, 174,\n\t\t27, 177, 60, 223, 189, 0, 96, 254, 122, 99, 49, 139, 153,\n\t\t205, 22, 199, 177, 37, 189, 240, 185, 193, 58, 32, 60, 75,\n\t\t101, 117, 190, 249, 146, 167, 158, 122, 73, 115, 65, 19, 144,\n\t\t78, 209, 185, 87, 189, 234, 28, 162, 63, 67, 5, 49, 212, 33,\n\t\t21, 145, 112, 248, 112, 36, 40, 65, 61, 20, 5, 122, 162, 42,\n\t\t104, 66, 53, 37, 19, 85, 52, 159, 250, 211, 167, 76, 172,\n\t\t107, 240, 85, 191, 248, 42, 248, 45, 168, 137, 189, 19, 34,\n\t\t133, 51, 51, 144, 224, 19, 61, 81, 131, 234, 17, 66, 142,\n\t\t68, 207, 88, 138, 218, 0, 252, 51, 184, 13, 10, 160, 12, 124,\n\t\t48, 11, 22, 64, 11, 180, 163, 182, 80, 103, 51, 2, 115, 34,\n\t\t142, 175, 107, 63, 183, 249, 118, 218, 110, 2, 214, 60, 26,\n\t\t212, 168, 215, 17, 104, 135, 122, 33, 237, 4, 94, 88, 11,\n\t\t59, 1, 124, 170, 171, 186, 206, 125, 125, 117, 78, 237, 223,\n\t\t231, 184, 106, 119, 247, 230, 90, 195, 46, 119, 55, 187, 221,\n\t\t205, 190, 215, 252, 168, 109, 55, 26, 246, 15, 123, 205, 39,\n\t\t27, 246, 246, 77, 214, 204, 173, 169, 212, 173, 51, 214, 77,\n\t\t147, 18, 172, 132, 55, 222, 120, 35, 52, 252, 126, 165, 114,\n\t\t161, 242, 26, 191, 95, 217, 209, 169, 126, 159, 233, 200,\n\t\t1, 56, 2, 0, 187, 164, 100, 173, 187, 28, 86, 162, 6, 202,\n\t\t225, 51, 60, 215, 137, 170, 124, 106, 64, 198, 114, 29, 13,\n\t\t46, 1, 75, 134, 97, 156, 188, 53, 62, 230, 186, 251, 121,\n\t\t76, 127, 167, 221, 187, 90, 212, 68, 127, 72, 209, 131, 116,\n\t\t232, 139, 154, 248, 191, 134, 218, 198, 158, 162, 87, 220,\n\t\t208, 134, 246, 81, 203, 66, 130, 16, 100, 32, 129, 153, 64,\n\t\t16, 208, 238, 205, 111, 98, 60, 63, 122, 230, 111, 21, 73,\n\t\t82, 254, 22, 154, 243, 24, 127, 252, 30, 37, 49, 122, 124,\n\t\t163, 16, 96, 209, 79, 191, 16, 62, 150, 80, 238, 49, 191,\n\t\t82, 42, 33, 220, 64, 168, 129, 209, 164, 4, 212, 137, 126,\n\t\t168, 0, 29, 152, 192, 2, 46, 104, 48, 44, 252, 59, 192, 221,\n\t\t224, 190, 152, 251, 158, 55, 101, 28, 122, 52, 232, 4, 161,\n\t\t23, 210, 64, 176, 57, 236, 84, 55, 185, 28, 68, 2, 70, 178,\n\t\t18, 16, 135, 89, 79, 237, 34, 220, 15, 57, 105, 36, 159, 55,\n\t\t98, 128, 132, 232, 174, 107, 75, 236, 190, 97, 156, 45, 16,\n\t\t205, 154, 2, 13, 66, 175, 70, 131, 176, 227, 209, 124, 35,\n\t\t191, 78, 101, 248, 67, 169, 228, 173, 201, 234, 203, 146,\n\t\t169, 119, 38, 83, 63, 84, 244, 8, 206, 250, 38, 92, 111, 244,\n\t\t71, 23, 3, 36, 228, 114, 2, 150, 73, 63, 79, 84, 149, 228,\n\t\t251, 26, 121, 86, 13, 252, 17, 42, 175, 53, 71, 23, 26, 125,\n\t\t149, 157, 199, 40, 151, 87, 203, 229, 72, 160, 89, 151, 233,\n\t\t192, 254, 253, 98, 113, 57, 159, 46, 22, 95, 82, 44, 142,\n\t\t190, 152, 246, 69, 88, 207, 193, 205, 156, 211, 111, 92, 2,\n\t\t255, 38, 98, 130, 155, 77, 172, 202, 164, 169, 40, 77, 117,\n\t\t247, 230, 232, 239, 100, 218, 92, 235, 55, 202, 16, 71, 167,\n\t\t120, 93, 183, 219, 237, 78, 219, 166, 56, 86, 0, 136, 132,\n\t\t63, 103, 218, 70, 49, 229, 145, 175, 92, 193, 55, 207, 74,\n\t\t69, 216, 161, 78, 167, 235, 117, 107, 14, 124, 180, 184, 158,\n\t\t181, 244, 242, 84, 4, 82, 12, 174, 203, 107, 202, 186, 149,\n\t\t93, 47, 74, 27, 91, 27, 112, 139, 229, 252, 115, 3, 0, 243,\n\t\t75, 61, 195, 151, 220, 24, 192, 241, 3, 6, 209, 63, 166, 43,\n\t\t143, 98, 29, 110, 0, 14, 131, 163, 60, 119, 59, 113, 69, 88,\n\t\t156, 73, 41, 96, 19, 98, 151, 41, 213, 93, 54, 24, 51, 89,\n\t\t200, 97, 110, 8, 167, 238, 116, 186, 184, 210, 173, 160, 239,\n\t\t151, 32, 148, 66, 246, 163, 91, 83, 203, 48, 170, 190, 41,\n\t\t148, 229, 71, 114, 68, 160, 191, 246, 107, 84, 32, 185, 71,\n\t\t100, 57, 28, 109, 111, 95, 2, 112, 48, 218, 110, 97, 69, 18,\n\t\t237, 233, 172, 73, 190, 180, 69, 73, 193, 75, 131, 148, 104,\n\t\t139, 237, 129, 73, 76, 241, 134, 27, 68, 147, 152, 131, 182,\n\t\t104, 139, 169, 193, 197, 193, 224, 226, 128, 143, 111, 223,\n\t\t68, 20, 190, 17, 36, 193, 30, 0, 172, 30, 147, 207, 167, 6,\n\t\t93, 252, 28, 195, 116, 9, 186, 244, 207, 213, 98, 81, 189,\n\t\t233, 158, 104, 148, 189, 7, 174, 239, 209, 52, 79, 141, 70,\n\t\t85, 213, 211, 180, 61, 187, 182, 224, 247, 171, 154, 57, 186,\n\t\t96, 106, 234, 77, 44, 84, 104, 227, 74, 7, 197, 91, 151, 99,\n\t\t131, 23, 166, 177, 193, 199, 248, 61, 62, 55, 43, 68, 227,\n\t\t238, 20, 122, 20, 215, 154, 254, 145, 57, 208, 164, 245, 126,\n\t\t191, 177, 190, 185, 185, 222, 232, 159, 153, 134, 244, 249,\n\t\t50, 115, 148, 61, 208, 95, 239, 111, 110, 109, 246, 215, 63,\n\t\t58, 198, 164, 101, 186, 249, 0, 126, 138, 97, 241, 30, 6,\n\t\t39, 0, 136, 163, 158, 104, 237, 178, 117, 37, 89, 161, 44,\n\t\t79, 202, 15, 24, 226, 6, 79, 154, 106, 65, 226, 133, 61, 239,\n\t\t114, 83, 233, 248, 130, 225, 19, 146, 244, 158, 212, 91, 36,\n\t\t233, 13, 169, 7, 37, 233, 197, 201, 209, 69, 56, 76, 142,\n\t\t54, 177, 22, 40, 25, 122, 53, 186, 90, 202, 168, 129, 134,\n\t\t179, 88, 219, 147, 203, 237, 209, 48, 188, 57, 87, 231, 64,\n\t\t170, 245, 92, 140, 72, 52, 148, 76, 105, 48, 254, 192, 141,\n\t\t193, 232, 171, 58, 77, 19, 65, 186, 238, 243, 39, 101, 76,\n\t\t211, 84, 63, 168, 65, 124, 236, 24, 134, 218, 102, 61, 199,\n\t\t67, 149, 115, 245, 141, 113, 66, 61, 153, 200, 176, 20, 20,\n\t\t193, 34, 56, 193, 209, 128, 198, 58, 131, 119, 101, 121, 150,\n\t\t48, 17, 109, 226, 142, 239, 117, 151, 41, 137, 97, 59, 119,\n\t\t49, 187, 251, 9, 24, 248, 212, 139, 197, 216, 212, 152, 140,\n\t\t195, 99, 58, 240, 214, 101, 66, 237, 135, 215, 90, 101, 166,\n\t\t240, 148, 63, 45, 208, 107, 174, 161, 2, 17, 164, 59, 238,\n\t\t144, 4, 34, 208, 171, 175, 158, 108, 253, 31, 46, 201, 62,\n\t\t194, 78, 1, 251, 76, 151, 254, 242, 179, 196, 218, 162, 159,\n\t\t45, 91, 122, 212, 220, 117, 171, 156, 125, 173, 36, 20, 139,\n\t\t130, 100, 72, 194, 252, 60, 91, 197, 91, 115, 115, 130, 244,\n\t\t175, 145, 124, 27, 159, 103, 10, 223, 243, 119, 65, 25, 212,\n\t\t158, 149, 177, 185, 31, 90, 211, 13, 61, 1, 173, 58, 237,\n\t\t76, 35, 104, 102, 254, 181, 43, 235, 25, 93, 153, 157, 85,\n\t\t244, 140, 46, 119, 255, 117, 244, 15, 15, 125, 101, 74, 243,\n\t\t60, 118, 76, 151, 45, 89, 239, 247, 217, 234, 216, 232, 87,\n\t\t183, 182, 192, 36, 166, 100, 11, 236, 1, 33, 247, 48, 195,\n\t\t162, 208, 105, 239, 80, 202, 208, 201, 88, 199, 222, 129,\n\t\t207, 197, 12, 183, 0, 87, 5, 22, 91, 194, 34, 75, 198, 1,\n\t\t215, 147, 166, 85, 19, 189, 202, 156, 151, 72, 178, 159, 30,\n\t\t150, 117, 75, 166, 23, 178, 62, 3, 132, 109, 244, 173, 78,\n\t\t39, 255, 193, 65, 127, 189, 63, 72, 176, 71, 121, 19, 127,\n\t\t160, 192, 245, 115, 9, 241, 115, 209, 245, 62, 185, 97, 233,\n\t\t38, 149, 253, 44, 163, 255, 201, 90, 253, 198, 13, 133, 192,\n\t\t16, 55, 6, 143, 55, 250, 253, 198, 227, 131, 245, 105, 107,\n\t\t6, 98, 216, 32, 191, 205, 248, 150, 195, 41, 228, 55, 46,\n\t\t78, 6, 78, 173, 91, 115, 106, 93, 2, 93, 82, 187, 194, 112,\n\t\t205, 82, 157, 58, 149, 182, 183, 185, 120, 188, 59, 232, 30,\n\t\t95, 108, 44, 46, 46, 54, 224, 73, 108, 153, 211, 35, 180,\n\t\t105, 19, 69, 242, 224, 75, 60, 9, 14, 134, 195, 238, 241,\n\t\t227, 221, 225, 176, 233, 125, 230, 233, 167, 63, 227, 141,\n\t\t190, 149, 200, 241, 72, 81, 190, 204, 37, 202, 12, 107, 144,\n\t\t191, 207, 53, 38, 167, 29, 24, 103, 126, 177, 199, 184, 220,\n\t\t11, 151, 121, 174, 167, 235, 241, 140, 175, 176, 231, 82,\n\t\t66, 253, 160, 199, 28, 151, 212, 15, 226, 84, 208, 34, 164,\n\t\t44, 192, 13, 158, 43, 205, 181, 42, 207, 52, 250, 51, 5, 216,\n\t\t111, 228, 22, 244, 84, 54, 235, 255, 15, 66, 197, 238, 217,\n\t\t100, 29, 246, 27, 86, 146, 42, 232, 229, 215, 39, 83, 4, 225,\n\t\t218, 236, 3, 183, 161, 102, 169, 210, 234, 55, 74, 75, 10,\n\t\t20, 97, 163, 159, 243, 82, 126, 54, 25, 64, 21, 95, 133, 103,\n\t\t76, 130, 27, 125, 74, 169, 174, 173, 111, 10, 80, 23, 236,\n\t\t171, 103, 175, 190, 57, 246, 197, 112, 108, 196, 34, 231,\n\t\t33, 217, 157, 171, 182, 236, 47, 239, 186, 100, 82, 119, 61,\n\t\t194, 17, 254, 118, 28, 218, 19, 159, 61, 140, 238, 134, 229,\n\t\t61, 243, 239, 16, 74, 104, 19, 162, 131, 133, 153, 126, 99,\n\t\t244, 76, 163, 191, 92, 135, 107, 205, 106, 207, 48, 83, 89,\n\t\t31, 142, 78, 39, 156, 132, 124, 66, 214, 133, 194, 25, 73,\n\t\t58, 83, 16, 116, 249, 198, 89, 156, 194, 179, 55, 202, 186,\n\t\t80, 76, 234, 178, 81, 185, 101, 45, 191, 84, 203, 204, 42,\n\t\t251, 37, 77, 47, 4, 143, 41, 75, 165, 168, 37, 248, 61, 1,\n\t\t138, 2, 108, 174, 205, 20, 21, 63, 11, 69, 215, 148, 18, 86,\n\t\t102, 215, 215, 39, 103, 188, 9, 17, 91, 175, 172, 221, 210,\n\t\t172, 45, 229, 188, 153, 195, 162, 132, 91, 0, 40, 151, 70,\n\t\t151, 62, 206, 114, 212, 48, 48, 128, 7, 202, 32, 0, 139, 96,\n\t\t31, 56, 2, 142, 131, 235, 1, 8, 189, 32, 106, 31, 132, 245,\n\t\t192, 18, 164, 126, 175, 227, 57, 54, 9, 4, 110, 141, 118,\n\t\t169, 87, 27, 223, 113, 212, 71, 90, 130, 207, 198, 94, 155,\n\t\t10, 145, 8, 75, 24, 119, 84, 24, 137, 223, 52, 232, 208, 224,\n\t\t190, 251, 159, 22, 69, 68, 32, 17, 209, 117, 87, 9, 72, 248,\n\t\t67, 42, 62, 120, 10, 161, 31, 199, 178, 184, 242, 192, 109,\n\t\t56, 133, 111, 251, 1, 36, 18, 120, 194, 92, 71, 136, 10, 63,\n\t\t142, 16, 18, 144, 240, 105, 36, 10, 232, 225, 151, 32, 81,\n\t\t124, 58, 115, 215, 93, 119, 253, 195, 199, 93, 73, 236, 11,\n\t\t72, 248, 105, 1, 193, 230, 151, 17, 113, 215, 68, 140, 224,\n\t\t77, 75, 80, 68, 119, 8, 50, 126, 231, 7, 36, 233, 3, 5, 200,\n\t\t246, 11, 143, 229, 222, 38, 82, 132, 238, 64, 34, 28, 253,\n\t\t15, 130, 206, 65, 36, 162, 181, 191, 254, 9, 81, 114, 63,\n\t\t115, 225, 2, 123, 223, 191, 5, 183, 225, 31, 48, 158, 198,\n\t\t26, 0, 204, 182, 62, 182, 179, 143, 115, 43, 35, 97, 33, 186,\n\t\t119, 70, 133, 237, 119, 225, 251, 69, 241, 119, 126, 71, 20,\n\t\t223, 95, 46, 255, 178, 40, 149, 223, 33, 153, 207, 72, 226,\n\t\t111, 155, 210, 59, 202, 240, 52, 82, 208, 35, 143, 32, 5,\n\t\t221, 109, 219, 255, 69, 192, 248, 119, 124, 235, 133, 88,\n\t\t81, 46, 62, 128, 177, 240, 208, 69, 69, 193, 47, 180, 252,\n\t\t105, 159, 223, 207, 176, 152, 167, 253, 211, 241, 141, 65,\n\t\t55, 250, 169, 78, 219, 45, 193, 241, 144, 130, 59, 222, 21,\n\t\t228, 151, 216, 134, 108, 187, 240, 25, 42, 215, 115, 229,\n\t\t161, 77, 243, 93, 41, 41, 210, 144, 219, 94, 159, 249, 175,\n\t\t79, 177, 241, 124, 139, 231, 97, 205, 68, 35, 15, 220, 144,\n\t\t105, 57, 87, 159, 105, 62, 165, 74, 82, 78, 145, 140, 69,\n\t\t54, 126, 220, 212, 251, 203, 157, 206, 251, 103, 202, 82,\n\t\t137, 141, 56, 76, 174, 250, 214, 165, 79, 48, 185, 202, 4,\n\t\t135, 192, 181, 0, 132, 81, 91, 143, 94, 176, 99, 123, 76,\n\t\t101, 193, 172, 123, 242, 14, 18, 174, 162, 48, 122, 221, 227,\n\t\t190, 192, 233, 215, 29, 70, 149, 194, 200, 175, 107, 142,\n\t\t237, 122, 33, 113, 61, 55, 76, 105, 178, 252, 112, 114, 46,\n\t\t245, 104, 226, 175, 85, 73, 186, 25, 190, 166, 92, 67, 194,\n\t\t209, 197, 145, 46, 41, 198, 53, 47, 248, 205, 243, 123, 58,\n\t\t7, 68, 241, 192, 170, 32, 226, 127, 54, 149, 227, 68, 72,\n\t\t8, 73, 169, 100, 200, 249, 129, 169, 26, 130, 161, 90, 120,\n\t\t27, 186, 244, 97, 3, 105, 231, 230, 231, 102, 109, 122, 100,\n\t\t205, 60, 80, 107, 13, 20, 201, 16, 204, 100, 70, 40, 222,\n\t\t214, 123, 32, 131, 20, 148, 105, 139, 138, 126, 167, 172,\n\t\t72, 52, 47, 41, 178, 87, 215, 50, 228, 23, 181, 36, 132, 86,\n\t\t28, 95, 250, 9, 22, 147, 211, 100, 152, 98, 140, 89, 213,\n\t\t35, 181, 106, 164, 145, 121, 204, 63, 23, 248, 33, 9, 88,\n\t\t208, 109, 135, 69, 154, 177, 91, 236, 180, 93, 248, 249, 14,\n\t\t42, 29, 205, 22, 97, 177, 80, 130, 240, 134, 70, 66, 22, 107,\n\t\t237, 148, 39, 85, 221, 148, 153, 55, 53, 213, 77, 52, 14,\n\t\t26, 179, 77, 171, 112, 53, 124, 107, 231, 218, 164, 156, 41,\n\t\t222, 88, 81, 102, 13, 87, 213, 50, 181, 148, 91, 149, 188,\n\t\t84, 198, 204, 155, 162, 156, 104, 220, 112, 253, 65, 195,\n\t\t211, 11, 59, 177, 233, 220, 86, 80, 6, 139, 96, 0, 214, 193,\n\t\t6, 216, 4, 67, 240, 36, 120, 23, 248, 25, 240, 33, 0, 66,\n\t\t134, 163, 196, 8, 217, 194, 94, 184, 10, 61, 14, 53, 26, 19,\n\t\t214, 135, 189, 182, 176, 51, 81, 173, 92, 137, 104, 206, 98,\n\t\t39, 104, 65, 246, 253, 158, 91, 226, 212, 95, 81, 55, 102,\n\t\t180, 95, 181, 128, 81, 226, 240, 186, 85, 232, 185, 223, 137,\n\t\t184, 46, 232, 181, 189, 36, 67, 187, 10, 122, 33, 47, 88,\n\t\t174, 199, 241, 175, 94, 171, 98, 12, 145, 126, 59, 166, 24,\n\t\t10, 150, 96, 16, 152, 164, 68, 168, 139, 234, 156, 42, 214,\n\t\t5, 66, 75, 3, 230, 198, 219, 216, 189, 248, 5, 172, 202, 146,\n\t\t172, 158, 33, 2, 46, 206, 17, 93, 248, 119, 29, 65, 140, 213,\n\t\t51, 196, 16, 44, 1, 42, 116, 14, 11, 228, 12, 59, 4, 207,\n\t\t8, 58, 153, 187, 246, 10, 231, 216, 82, 52, 37, 18, 199, 52,\n\t\t91, 50, 165, 161, 173, 73, 166, 244, 109, 170, 235, 134, 129,\n\t\t41, 110, 206, 19, 81, 124, 2, 233, 228, 94, 85, 189, 151,\n\t\t232, 72, 26, 93, 220, 177, 245, 14, 119, 138, 48, 175, 73,\n\t\t68, 146, 105, 71, 52, 200, 76, 90, 192, 244, 207, 12, 67,\n\t\t215, 105, 71, 20, 201, 124, 147, 42, 63, 67, 12, 177, 67,\n\t\t101, 137, 72, 218, 121, 138, 133, 244, 151, 175, 120, 146,\n\t\t127, 65, 104, 244, 151, 146, 244, 237, 148, 54, 250, 146,\n\t\t36, 193, 156, 150, 250, 246, 20, 231, 21, 139, 109, 142, 228,\n\t\t251, 235, 193, 189, 224, 229, 0, 88, 145, 64, 183, 43, 245,\n\t\t64, 96, 97, 141, 99, 51, 59, 143, 249, 31, 91, 93, 60, 110,\n\t\t197, 243, 153, 253, 142, 239, 98, 42, 42, 15, 124, 47, 64,\n\t\t187, 19, 198, 41, 2, 12, 47, 113, 146, 48, 64, 253, 110, 200,\n\t\t196, 130, 78, 219, 187, 104, 40, 79, 24, 202, 232, 66, 164,\n\t\t42, 252, 222, 198, 14, 189, 73, 116, 249, 146, 180, 144, 202,\n\t\t24, 46, 82, 53, 73, 210, 38, 165, 13, 201, 148, 102, 176,\n\t\t129, 103, 36, 83, 50, 205, 239, 167, 67, 162, 80, 216, 87,\n\t\t140, 209, 71, 163, 115, 192, 167, 21, 99, 244, 21, 83, 98,\n\t\t68, 121, 146, 201, 233, 21, 54, 60, 211, 212, 44, 136, 168,\n\t\t100, 74, 83, 197, 71, 37, 201, 9, 3, 140, 131, 208, 145, 36,\n\t\t167, 148, 205, 150, 126, 153, 42, 100, 72, 167, 158, 141,\n\t\t10, 14, 199, 125, 0, 192, 90, 117, 28, 216, 235, 120, 204,\n\t\t50, 230, 84, 186, 129, 191, 194, 88, 243, 67, 190, 96, 83,\n\t\t49, 123, 4, 29, 198, 0, 26, 142, 159, 88, 252, 197, 128, 69,\n\t\t181, 242, 115, 224, 234, 238, 168, 225, 206, 101, 219, 16,\n\t\t44, 74, 252, 242, 135, 166, 54, 115, 9, 228, 234, 146, 84,\n\t\t102, 96, 142, 170, 170, 229, 156, 28, 129, 130, 129, 144,\n\t\t40, 144, 84, 186, 236, 74, 122, 205, 206, 203, 116, 51, 235,\n\t\t151, 147, 9, 142, 255, 56, 186, 16, 203, 156, 113, 99, 224,\n\t\t129, 23, 101, 225, 237, 76, 133, 189, 49, 25, 104, 51, 131,\n\t\t65, 174, 222, 61, 41, 104, 26, 201, 202, 169, 134, 140, 4,\n\t\t81, 144, 144, 40, 231, 114, 41, 40, 69, 143, 144, 202, 245,\n\t\t131, 132, 141, 200, 23, 98, 231, 4, 91, 140, 131, 146, 217,\n\t\t28, 242, 49, 56, 132, 159, 6, 69, 198, 105, 181, 163, 37,\n\t\t250, 28, 78, 161, 202, 87, 209, 4, 22, 53, 167, 203, 105,\n\t\t65, 126, 253, 244, 67, 54, 205, 104, 202, 188, 170, 206, 98,\n\t\t3, 207, 170, 234, 188, 162, 101, 168, 125, 63, 101, 154, 205,\n\t\t219, 185, 126, 179, 141, 94, 126, 106, 244, 140, 42, 73, 41,\n\t\t89, 93, 212, 180, 38, 198, 77, 77, 91, 84, 229, 148, 36, 169,\n\t\t80, 90, 255, 190, 47, 238, 226, 16, 65, 140, 255, 154, 219,\n\t\t19, 3, 110, 79, 140, 21, 84, 194, 163, 121, 89, 12, 60, 101,\n\t\t42, 153, 231, 122, 156, 10, 185, 238, 162, 253, 154, 118,\n\t\t158, 153, 253, 212, 194, 76, 118, 201, 58, 223, 122, 67, 107,\n\t\t79, 86, 46, 168, 170, 54, 250, 250, 146, 72, 255, 37, 181,\n\t\t92, 183, 193, 37, 60, 82, 181, 243, 44, 205, 78, 203, 203,\n\t\t217, 37, 43, 107, 237, 105, 181, 246, 100, 103, 10, 154, 170,\n\t\t74, 75, 34, 190, 100, 215, 151, 83, 255, 66, 1, 0, 230, 84,\n\t\t110, 18, 199, 156, 13, 64, 11, 60, 0, 30, 5, 175, 7, 79, 130,\n\t\t119, 131, 15, 128, 95, 2, 31, 7, 191, 15, 254, 12, 0, 171,\n\t\t211, 102, 66, 114, 45, 94, 51, 107, 248, 212, 218, 115, 248,\n\t\t70, 37, 222, 95, 249, 207, 70, 105, 176, 1, 115, 42, 106,\n\t\t68, 220, 41, 214, 171, 108, 50, 103, 101, 3, 238, 212, 123,\n\t\t59, 69, 3, 182, 119, 54, 220, 43, 22, 119, 29, 253, 21, 83,\n\t\t42, 247, 77, 169, 28, 173, 143, 154, 82, 121, 163, 44, 153,\n\t\t210, 40, 42, 33, 243, 187, 137, 240, 144, 105, 214, 54, 52,\n\t\t66, 210, 223, 254, 8, 95, 67, 137, 170, 36, 42, 24, 79, 243,\n\t\t138, 134, 194, 86, 68, 61, 196, 183, 255, 11, 95, 181, 47,\n\t\t219, 11, 203, 210, 163, 143, 74, 87, 250, 200, 116, 243, 242,\n\t\t0, 15, 174, 61, 232, 22, 143, 98, 183, 244, 77, 42, 151, 77,\n\t\t149, 228, 20, 37, 48, 84, 115, 82, 42, 83, 77, 26, 87, 46,\n\t\t62, 123, 191, 164, 209, 43, 124, 233, 10, 37, 73, 163, 96,\n\t\t23, 151, 232, 12, 88, 184, 2, 139, 131, 87, 99, 4, 111, 148,\n\t\t13, 46, 181, 131, 176, 5, 19, 48, 164, 37, 24, 149, 120, 200,\n\t\t52, 15, 172, 186, 96, 62, 249, 50, 90, 74, 252, 102, 95, 36,\n\t\t55, 60, 109, 14, 6, 229, 242, 96, 88, 46, 155, 102, 185, 108,\n\t\t78, 221, 101, 249, 255, 152, 85, 249, 190, 159, 87, 20, 93,\n\t\t251, 108, 185, 92, 30, 12, 202, 219, 236, 16, 179, 204, 237,\n\t\t29, 159, 136, 199, 190, 28, 56, 6, 78, 3, 224, 49, 110, 144,\n\t\t90, 53, 104, 162, 208, 128, 45, 200, 115, 209, 35, 173, 200,\n\t\t227, 94, 219, 177, 201, 173, 5, 41, 89, 226, 198, 2, 110,\n\t\t222, 234, 46, 71, 71, 114, 40, 144, 229, 94, 199, 143, 245,\n\t\t255, 83, 181, 229, 140, 144, 84, 69, 81, 210, 112, 18, 169,\n\t\t116, 32, 18, 1, 102, 165, 125, 21, 74, 209, 151, 105, 140,\n\t\t224, 161, 43, 174, 13, 91, 81, 183, 62, 39, 195, 28, 46, 219,\n\t\t233, 100, 171, 38, 211, 91, 88, 62, 104, 250, 7, 187, 119,\n\t\t171, 58, 68, 154, 249, 71, 132, 66, 19, 18, 73, 188, 163,\n\t\t84, 149, 144, 74, 230, 199, 176, 71, 207, 200, 222, 58, 108,\n\t\t89, 217, 51, 186, 101, 233, 103, 110, 80, 116, 81, 188, 207,\n\t\t206, 36, 91, 38, 149, 7, 113, 70, 233, 14, 254, 47, 207, 45,\n\t\t143, 193, 245, 174, 100, 170, 35, 213, 96, 10, 167, 163, 211,\n\t\t246, 38, 253, 138, 71, 85, 172, 162, 73, 186, 243, 145, 100,\n\t\t46, 97, 233, 124, 228, 102, 99, 111, 231, 177, 14, 91, 111,\n\t\t174, 95, 27, 26, 138, 169, 24, 201, 132, 93, 203, 74, 180,\n\t\t148, 29, 114, 157, 123, 195, 46, 37, 111, 209, 45, 254, 126,\n\t\t88, 175, 184, 198, 243, 174, 97, 55, 177, 118, 235, 236, 82,\n\t\t52, 175, 25, 36, 145, 75, 10, 9, 121, 125, 183, 157, 226,\n\t\t42, 184, 13, 142, 131, 51, 0, 64, 135, 81, 98, 17, 191, 133,\n\t\t156, 69, 103, 10, 156, 110, 236, 243, 101, 243, 52, 195, 227,\n\t\t236, 134, 100, 151, 4, 229, 244, 246, 199, 35, 6, 229, 44,\n\t\t66, 227, 27, 25, 96, 5, 87, 212, 52, 182, 76, 110, 150, 121,\n\t\t60, 157, 69, 178, 180, 166, 9, 25, 36, 102, 75, 48, 201, 222,\n\t\t211, 242, 76, 97, 126, 235, 120, 247, 81, 17, 67, 49, 69,\n\t\t137, 124, 13, 191, 165, 87, 92, 71, 52, 5, 233, 88, 86, 125,\n\t\t122, 15, 220, 83, 249, 72, 116, 55, 79, 121, 131, 23, 75,\n\t\t154, 118, 23, 149, 52, 245, 112, 97, 22, 9, 130, 110, 113,\n\t\t248, 133, 153, 101, 88, 233, 30, 39, 162, 165, 74, 116, 7,\n\t\t164, 8, 93, 250, 6, 243, 13, 125, 18, 120, 96, 25, 128, 168,\n\t\t201, 117, 216, 141, 5, 97, 224, 81, 78, 176, 219, 238, 117,\n\t\t199, 99, 60, 95, 134, 245, 104, 132, 223, 73, 201, 42, 255,\n\t\t21, 20, 160, 76, 47, 52, 238, 253, 209, 3, 247, 214, 127,\n\t\t140, 202, 80, 132, 95, 211, 84, 71, 213, 190, 164, 170, 95,\n\t\t210, 20, 87, 213, 32, 208, 138, 218, 221, 92, 232, 186, 238,\n\t\t147, 16, 125, 140, 202, 225, 224, 205, 143, 12, 174, 149,\n\t\t233, 199, 16, 60, 170, 106, 105, 77, 253, 172, 162, 124, 150,\n\t\t21, 254, 86, 81, 206, 47, 71, 23, 253, 4, 147, 223, 47, 194,\n\t\t168, 253, 156, 7, 160, 94, 219, 49, 210, 176, 136, 83, 150,\n\t\t109, 60, 134, 80, 225, 34, 115, 224, 239, 36, 89, 79, 149,\n\t\t122, 60, 152, 33, 102, 151, 232, 29, 132, 236, 218, 89, 60,\n\t\t20, 59, 33, 220, 188, 171, 250, 120, 244, 147, 127, 88, 160,\n\t\t154, 124, 86, 38, 154, 100, 81, 155, 34, 73, 43, 212, 175,\n\t\t183, 106, 5, 57, 231, 205, 69, 187, 159, 231, 168, 124, 219,\n\t\t224, 7, 61, 205, 165, 131, 28, 149, 101, 141, 200, 20, 73,\n\t\t105, 201, 38, 74, 90, 245, 204, 38, 55, 134, 95, 121, 127,\n\t\t54, 29, 239, 230, 113, 97, 95, 5, 0, 253, 24, 28, 2, 143,\n\t\t49, 184, 1, 216, 30, 227, 171, 198, 147, 126, 141, 241, 80,\n\t\t245, 72, 59, 236, 49, 196, 85, 79, 156, 148, 224, 85, 127,\n\t\t126, 172, 93, 202, 29, 44, 148, 14, 250, 89, 45, 208, 50,\n\t\t254, 224, 250, 219, 45, 239, 193, 99, 215, 223, 90, 145, 229,\n\t\t74, 180, 128, 75, 59, 197, 225, 3, 215, 158, 59, 90, 212,\n\t\t251, 126, 50, 233, 247, 159, 88, 223, 88, 200, 255, 255, 103,\n\t\t85, 117, 118, 234, 195, 231, 252, 109, 244, 90, 184, 13, 82,\n\t\t192, 3, 0, 115, 87, 92, 165, 202, 12, 56, 33, 236, 181, 189,\n\t\t4, 244, 194, 14, 122, 37, 22, 101, 235, 219, 219, 146, 41,\n\t\t138, 24, 150, 149, 170, 146, 187, 199, 31, 188, 32, 33, 201,\n\t\t18, 77, 42, 148, 74, 178, 4, 183, 19, 137, 19, 239, 245, 7,\n\t\t211, 113, 125, 199, 193, 245, 224, 12, 56, 199, 98, 62, 166,\n\t\t189, 14, 147, 57, 183, 114, 133, 186, 9, 33, 239, 21, 32,\n\t\t144, 42, 109, 215, 169, 119, 186, 53, 33, 198, 46, 70, 67,\n\t\t153, 222, 219, 31, 35, 248, 232, 253, 209, 211, 83, 27, 247,\n\t\t50, 177, 45, 125, 148, 5, 162, 70, 139, 163, 48, 77, 229,\n\t\t209, 112, 56, 28, 108, 192, 237, 141, 143, 82, 185, 177, 67,\n\t\t147, 213, 152, 46, 179, 238, 185, 187, 226, 209, 193, 104,\n\t\t56, 241, 87, 124, 35, 190, 191, 104, 236, 59, 57, 165, 255,\n\t\t83, 111, 114, 59, 193, 148, 221, 145, 176, 22, 237, 242, 187,\n\t\t12, 124, 38, 207, 179, 198, 187, 31, 181, 75, 144, 76, 113,\n\t\t114, 214, 168, 23, 162, 13, 221, 234, 55, 188, 91, 194, 124,\n\t\t52, 145, 175, 31, 255, 177, 65, 180, 190, 24, 79, 174, 150,\n\t\t126, 127, 113, 17, 211, 98, 99, 115, 189, 255, 206, 68, 210,\n\t\t134, 89, 75, 223, 203, 6, 14, 51, 145, 193, 215, 61, 98, 220,\n\t\t3, 183, 24, 23, 66, 251, 165, 204, 4, 249, 228, 58, 91, 201,\n\t\t134, 108, 101, 173, 122, 97, 174, 232, 55, 209, 250, 230,\n\t\t141, 146, 165, 155, 108, 172, 56, 151, 50, 246, 231, 195,\n\t\t41, 236, 74, 21, 120, 160, 16, 251, 214, 248, 100, 180, 60,\n\t\t195, 76, 214, 189, 182, 215, 235, 46, 99, 183, 29, 250, 213,\n\t\t183, 255, 229, 219, 159, 250, 211, 167, 224, 250, 214, 166,\n\t\t122, 237, 23, 174, 85, 71, 31, 221, 251, 158, 189, 251, 126,\n\t\t2, 14, 79, 175, 222, 177, 255, 204, 153, 253, 119, 172, 166,\n\t\t90, 21, 93, 159, 155, 211, 245, 202, 121, 207, 203, 140, 115,\n\t\t39, 182, 152, 76, 231, 128, 181, 169, 200, 26, 183, 4, 233,\n\t\t36, 178, 166, 30, 63, 165, 22, 140, 115, 54, 163, 169, 19,\n\t\t198, 16, 75, 44, 31, 172, 9, 99, 198, 184, 18, 132, 51, 108,\n\t\t66, 251, 156, 150, 85, 36, 189, 124, 93, 244, 108, 14, 193,\n\t\t66, 180, 234, 21, 117, 187, 188, 106, 104, 184, 68, 211, 24,\n\t\t107, 154, 144, 127, 129, 147, 80, 234, 9, 93, 107, 40, 89,\n\t\t83, 80, 131, 250, 194, 53, 115, 118, 22, 110, 176, 217, 236,\n\t\t27, 249, 4, 113, 10, 86, 214, 26, 90, 89, 43, 55, 123, 114,\n\t\t70, 46, 38, 238, 113, 145, 144, 214, 207, 181, 245, 166, 123,\n\t\t14, 11, 74, 81, 18, 156, 156, 84, 204, 171, 142, 218, 232,\n\t\t238, 216, 128, 184, 111, 50, 11, 252, 93, 190, 72, 6, 252,\n\t\t58, 229, 125, 244, 42, 19, 159, 98, 55, 118, 35, 130, 162,\n\t\t87, 220, 19, 59, 14, 203, 112, 125, 236, 21, 156, 120, 2,\n\t\t71, 175, 73, 251, 34, 14, 10, 112, 51, 235, 246, 27, 151,\n\t\t64, 153, 251, 247, 98, 238, 47, 248, 41, 150, 87, 27, 219,\n\t\t187, 241, 24, 153, 234, 217, 128, 84, 19, 24, 170, 157, 152,\n\t\t69, 66, 39, 100, 119, 151, 113, 194, 194, 95, 35, 162, 96,\n\t\t8, 58, 254, 141, 223, 192, 186, 96, 8, 34, 121, 235, 91, 159,\n\t\t85, 243, 246, 178, 127, 246, 209, 179, 126, 153, 32, 85, 122,\n\t\t181, 164, 32, 14, 87, 204, 221, 41, 88, 208, 73, 158, 136,\n\t\t194, 249, 243, 130, 72, 242, 68, 23, 142, 28, 121, 86, 205,\n\t\t219, 147, 251, 170, 221, 227, 199, 187, 213, 125, 201, 172,\n\t\t146, 72, 40, 63, 190, 75, 3, 97, 124, 66, 49, 134, 190, 10,\n\t\t0, 102, 224, 249, 30, 243, 5, 161, 51, 49, 82, 62, 186, 46,\n\t\t90, 173, 196, 176, 248, 163, 189, 209, 106, 220, 39, 175,\n\t\t129, 159, 2, 22, 120, 25, 120, 3, 0, 214, 88, 132, 42, 113,\n\t\t190, 15, 146, 128, 53, 204, 103, 187, 154, 55, 53, 228, 236,\n\t\t208, 31, 238, 76, 252, 203, 7, 97, 109, 204, 78, 185, 31,\n\t\t6, 49, 111, 81, 9, 117, 194, 85, 161, 93, 68, 37, 216, 153,\n\t\t224, 250, 37, 96, 167, 237, 197, 51, 79, 156, 185, 158, 64,\n\t\t181, 192, 15, 126, 60, 39, 192, 44, 210, 136, 73, 8, 74, 219,\n\t\t8, 98, 12, 223, 34, 235, 186, 33, 47, 182, 86, 48, 27, 95,\n\t\t142, 161, 240, 116, 136, 142, 177, 50, 94, 105, 45, 202, 134,\n\t\t174, 203, 203, 74, 242, 228, 17, 133, 118, 101, 221, 208,\n\t\t229, 246, 202, 140, 130, 104, 34, 63, 147, 79, 80, 164, 204,\n\t\t172, 180, 89, 109, 151, 42, 71, 78, 38, 149, 87, 164, 17,\n\t\t33, 166, 40, 17, 148, 133, 66, 46, 139, 49, 68, 48, 211, 163,\n\t\t20, 227, 147, 132, 32, 140, 52, 114, 180, 65, 72, 246, 23,\n\t\t12, 89, 146, 245, 163, 183, 75, 242, 201, 104, 4, 185, 246,\n\t\t145, 162, 222, 88, 89, 105, 24, 133, 71, 152, 241, 229, 164,\n\t\t44, 221, 126, 84, 151, 37, 217, 184, 222, 72, 139, 242, 58,\n\t\t59, 250, 132, 189, 76, 76, 47, 145, 240, 76, 178, 108, 159,\n\t\t96, 123, 215, 101, 49, 109, 124, 232, 40, 209, 16, 134, 144,\n\t\t136, 39, 49, 166, 180, 39, 103, 9, 97, 184, 77, 163, 56, 215,\n\t\t32, 207, 100, 240, 101, 112, 128, 123, 251, 172, 138, 129,\n\t\t24, 48, 14, 159, 82, 194, 85, 186, 2, 159, 173, 202, 94, 190,\n\t\t238, 93, 230, 151, 28, 194, 124, 42, 151, 136, 20, 122, 111,\n\t\t244, 101, 73, 17, 4, 89, 36, 130, 128, 96, 31, 178, 97, 239,\n\t\t218, 103, 45, 63, 192, 80, 155, 99, 15, 229, 182, 181, 239,\n\t\t216, 236, 135, 50, 75, 217, 172, 171, 75, 114, 86, 183, 212,\n\t\t132, 102, 72, 31, 90, 223, 188, 56, 229, 130, 153, 254, 251,\n\t\t243, 205, 173, 205, 205, 173, 39, 57, 173, 252, 46, 156, 140,\n\t\t4, 120, 0, 60, 12, 30, 219, 193, 201, 24, 95, 33, 71, 123,\n\t\t78, 64, 191, 86, 165, 92, 238, 141, 122, 153, 61, 78, 57,\n\t\t223, 133, 4, 52, 73, 57, 223, 133, 5, 196, 226, 47, 184, 224,\n\t\t21, 181, 162, 78, 119, 153, 39, 156, 83, 82, 128, 32, 254,\n\t\t149, 176, 19, 212, 28, 248, 79, 71, 151, 151, 143, 46, 159,\n\t\t100, 80, 43, 247, 234, 150, 220, 201, 228, 246, 207, 156,\n\t\t210, 101, 138, 41, 38, 164, 68, 83, 4, 27, 9, 93, 94, 144,\n\t\t245, 132, 129, 73, 138, 150, 8, 193, 20, 83, 89, 159, 28,\n\t\t98, 36, 242, 246, 27, 229, 148, 33, 246, 239, 41, 138, 9,\n\t\t236, 202, 146, 62, 122, 25, 227, 4, 185, 231, 165, 179, 247,\n\t\t109, 46, 71, 63, 112, 128, 65, 177, 192, 148, 165, 119, 116,\n\t\t185, 163, 45, 146, 231, 62, 221, 179, 127, 81, 215, 222, 110,\n\t\t231, 37, 93, 122, 125, 163, 57, 67, 112, 90, 81, 146, 110,\n\t\t35, 230, 9, 250, 227, 141, 13, 142, 39, 202, 253, 166, 4,\n\t\t40, 192, 6, 25, 80, 6, 13, 134, 71, 75, 107, 204, 88, 91,\n\t\t11, 93, 222, 37, 59, 174, 99, 227, 94, 232, 213, 130, 238,\n\t\t114, 232, 84, 253, 120, 122, 8, 38, 225, 76, 92, 252, 11,\n\t\t58, 110, 59, 132, 206, 249, 211, 137, 65, 35, 119, 203, 139,\n\t\t214, 50, 189, 151, 28, 71, 223, 66, 163, 103, 12, 243, 142,\n\t\t225, 250, 162, 157, 135, 192, 206, 231, 109, 125, 238, 229,\n\t\t225, 245, 121, 123, 221, 108, 85, 174, 158, 163, 181, 19,\n\t\t53, 248, 203, 135, 103, 22, 214, 219, 206, 31, 29, 239, 10,\n\t\t186, 46, 116, 31, 161, 194, 23, 23, 231, 86, 102, 183, 243,\n\t\t135, 243, 141, 252, 198, 240, 250, 112, 206, 206, 187, 217,\n\t\t74, 107, 195, 52, 99, 252, 70, 128, 134, 112, 24, 183, 243,\n\t\t113, 228, 45, 147, 79, 185, 244, 198, 76, 229, 220, 213, 235,\n\t\t94, 14, 249, 179, 193, 37, 19, 47, 73, 114, 250, 62, 61, 39,\n\t\t149, 45, 38, 166, 220, 205, 2, 71, 97, 188, 26, 90, 250, 40,\n\t\t82, 224, 147, 218, 74, 161, 176, 146, 116, 120, 206, 204,\n\t\t51, 172, 53, 214, 227, 54, 25, 205, 61, 127, 129, 20, 248,\n\t\t62, 80, 6, 87, 129, 155, 1, 8, 219, 28, 45, 194, 143, 185,\n\t\t110, 89, 156, 58, 135, 207, 230, 162, 84, 119, 44, 82, 113,\n\t\t218, 239, 234, 216, 12, 189, 138, 138, 44, 184, 202, 107,\n\t\t187, 52, 70, 78, 27, 159, 128, 231, 27, 4, 63, 89, 223, 43,\n\t\t146, 125, 243, 181, 46, 65, 138, 84, 214, 68, 234, 41, 9,\n\t\t9, 34, 91, 123, 107, 52, 122, 48, 1, 235, 164, 102, 35, 100,\n\t\t37, 60, 42, 106, 101, 44, 137, 16, 87, 218, 189, 6, 145, 247,\n\t\t237, 89, 236, 29, 214, 105, 171, 52, 127, 212, 16, 20, 169,\n\t\t170, 136, 70, 62, 122, 11, 15, 169, 133, 237, 214, 204, 194,\n\t\t85, 11, 85, 170, 42, 174, 146, 146, 181, 196, 148, 240, 156,\n\t\t208, 12, 207, 85, 176, 44, 102, 130, 164, 218, 200, 53, 175,\n\t\t41, 159, 13, 139, 77, 162, 204, 7, 146, 46, 165, 243, 141,\n\t\t188, 159, 157, 112, 125, 254, 46, 200, 129, 18, 0, 28, 95,\n\t\t149, 186, 100, 7, 13, 119, 21, 122, 33, 159, 58, 194, 128,\n\t\t194, 111, 178, 208, 180, 235, 204, 68, 254, 61, 86, 215, 58,\n\t\t111, 89, 239, 201, 159, 172, 157, 96, 166, 168, 209, 183,\n\t\t30, 59, 255, 24, 124, 132, 149, 79, 212, 78, 230, 223, 99,\n\t\t89, 231, 173, 174, 245, 158, 124, 194, 188, 142, 147, 36,\n\t\t222, 250, 216, 249, 199, 192, 142, 159, 153, 143, 3, 123,\n\t\t34, 153, 118, 60, 78, 141, 71, 131, 32, 18, 102, 88, 54, 1,\n\t\t97, 184, 29, 129, 31, 250, 203, 161, 207, 169, 7, 220, 94,\n\t\t212, 78, 252, 192, 175, 249, 85, 90, 165, 12, 172, 108, 2,\n\t\t0, 63, 113, 73, 210, 125, 112, 169, 29, 131, 166, 253, 38,\n\t\t91, 93, 227, 121, 82, 74, 75, 98, 73, 107, 107, 148, 36, 181,\n\t\t148, 228, 121, 210, 76, 90, 107, 107, 153, 218, 123, 251,\n\t\t141, 121, 34, 59, 69, 231, 128, 83, 116, 100, 50, 223, 232,\n\t\t215, 11, 104, 173, 89, 238, 26, 233, 122, 165, 133, 32, 108,\n\t\t108, 76, 161, 64, 37, 163, 239, 36, 117, 193, 243, 4, 61,\n\t\t197, 79, 192, 206, 245, 238, 245, 190, 166, 56, 142, 227,\n\t\t200, 122, 191, 81, 106, 43, 170, 210, 92, 171, 228, 11, 173,\n\t\t138, 76, 39, 248, 107, 107, 44, 102, 179, 15, 142, 128, 211,\n\t\t224, 54, 112, 255, 229, 158, 213, 3, 112, 137, 41, 246, 252,\n\t\t78, 216, 51, 240, 171, 65, 19, 5, 126, 48, 102, 77, 97, 120,\n\t\t237, 136, 186, 92, 164, 99, 14, 138, 239, 114, 3, 222, 90,\n\t\t168, 183, 42, 151, 64, 165, 85, 207, 245, 27, 75, 5, 51, 85,\n\t\t88, 248, 107, 44, 10, 243, 71, 4, 76, 144, 96, 21, 44, 115,\n\t\t94, 56, 187, 79, 215, 49, 194, 217, 146, 91, 111, 127, 196,\n\t\t144, 102, 176, 44, 138, 134, 84, 23, 244, 155, 191, 187, 141,\n\t\t47, 226, 133, 66, 165, 213, 170, 20, 22, 48, 132, 141, 126,\n\t\t67, 170, 231, 160, 36, 118, 33, 180, 106, 25, 58, 111, 237,\n\t\t91, 71, 80, 65, 137, 110, 49, 219, 44, 26, 191, 37, 25, 3,\n\t\t9, 73, 198, 128, 8, 194, 119, 42, 78, 181, 155, 2, 152, 7,\n\t\t251, 193, 49, 54, 106, 236, 6, 80, 221, 245, 254, 113, 47,\n\t\t122, 94, 227, 252, 178, 48, 222, 98, 249, 153, 83, 219, 108,\n\t\t239, 42, 132, 91, 12, 92, 115, 251, 89, 111, 126, 244, 81,\n\t\t164, 33, 82, 205, 55, 242, 213, 247, 179, 146, 238, 234, 246,\n\t\t184, 156, 111, 228, 13, 7, 14, 250, 235, 253, 203, 95, 248,\n\t\t215, 8, 113, 218, 73, 167, 80, 112, 204, 142, 195, 202, 134,\n\t\t167, 239, 108, 68, 59, 244, 12, 227, 34, 39, 108, 206, 143,\n\t\t238, 75, 7, 57, 48, 11, 66, 112, 4, 220, 9, 64, 111, 90, 104,\n\t\t95, 133, 211, 91, 61, 127, 215, 214, 204, 243, 236, 11, 159,\n\t\t247, 9, 125, 68, 19, 132, 65, 244, 230, 136, 32, 12, 132,\n\t\t7, 118, 109, 253, 210, 174, 45, 248, 195, 187, 54, 207, 236,\n\t\t218, 218, 255, 28, 143, 238, 20, 209, 201, 166, 132, 4, 157,\n\t\t108, 18, 225, 123, 44, 255, 219, 21, 158, 105, 36, 31, 241,\n\t\t56, 168, 79, 130, 44, 56, 2, 214, 193, 11, 193, 75, 192, 35,\n\t\t145, 140, 250, 156, 189, 168, 8, 177, 235, 17, 199, 118, 151,\n\t\t232, 115, 133, 39, 44, 86, 151, 170, 212, 39, 148, 216, 33,\n\t\t161, 113, 176, 5, 193, 223, 93, 151, 218, 221, 191, 70, 227,\n\t\t254, 53, 147, 231, 253, 203, 170, 186, 163, 215, 10, 148,\n\t\t192, 253, 146, 138, 50, 215, 80, 122, 77, 6, 169, 210, 241,\n\t\t154, 104, 138, 181, 227, 146, 138, 100, 84, 47, 231, 175,\n\t\t205, 230, 239, 200, 165, 28, 63, 155, 50, 179, 240, 240, 119,\n\t\t215, 203, 158, 191, 203, 37, 139, 93, 68, 82, 41, 132, 237,\n\t\t93, 191, 54, 185, 128, 172, 227, 137, 217, 252, 122, 81, 203,\n\t\t88, 249, 172, 175, 228, 191, 245, 157, 58, 223, 116, 63, 196,\n\t\t44, 150, 251, 77, 240, 51, 96, 9, 28, 3, 119, 130, 87, 129,\n\t\t39, 99, 15, 71, 208, 164, 129, 83, 9, 104, 108, 233, 139,\n\t\t154, 31, 11, 66, 99, 79, 155, 17, 16, 71, 74, 189, 135, 227,\n\t\t164, 131, 56, 29, 193, 230, 116, 241, 221, 32, 252, 30, 235,\n\t\t113, 183, 242, 44, 27, 41, 250, 1, 89, 207, 233, 178, 32,\n\t\t137, 68, 16, 69, 44, 140, 182, 122, 190, 162, 151, 44, 57,\n\t\t33, 169, 199, 33, 150, 4, 77, 144, 49, 157, 159, 19, 20, 164,\n\t\t137, 137, 83, 255, 228, 31, 114, 70, 31, 71, 80, 240, 20,\n\t\t68, 160, 234, 10, 8, 153, 34, 22, 108, 91, 192, 226, 240,\n\t\t123, 170, 30, 253, 30, 220, 152, 10, 51, 248, 132, 46, 167,\n\t\t100, 67, 212, 177, 44, 16, 65, 20, 78, 222, 95, 147, 83, 249,\n\t\t148, 121, 39, 20, 177, 160, 213, 116, 57, 186, 4, 40, 38,\n\t\t231, 18, 167, 102, 202, 9, 68, 4, 71, 16, 28, 129, 32, 211,\n\t\t19, 68, 164, 40, 72, 20, 60, 243, 123, 168, 253, 103, 158,\n\t\t119, 202, 128, 200, 24, 175, 41, 207, 151, 212, 65, 9, 44,\n\t\t129, 23, 128, 23, 130, 187, 193, 3, 224, 251, 57, 191, 112,\n\t\t108, 41, 239, 38, 151, 161, 203, 130, 187, 168, 1, 155, 144,\n\t\t208, 238, 42, 116, 67, 86, 99, 192, 232, 173, 197, 53, 126,\n\t\t224, 184, 222, 229, 213, 69, 212, 99, 97, 46, 6, 106, 194,\n\t\t203, 225, 77, 39, 180, 196, 147, 244, 2, 100, 101, 57, 105,\n\t\t50, 92, 88, 245, 59, 43, 169, 165, 51, 7, 175, 58, 215, 153,\n\t\t191, 126, 79, 61, 218, 140, 214, 126, 243, 236, 194, 252,\n\t\t245, 123, 154, 154, 140, 105, 183, 210, 59, 58, 174, 91, 58,\n\t\t217, 92, 106, 92, 213, 72, 150, 75, 203, 51, 179, 238, 127,\n\t\t155, 82, 46, 184, 122, 194, 173, 49, 130, 72, 224, 182, 165,\n\t\t143, 88, 92, 41, 124, 90, 31, 253, 157, 153, 158, 113, 36,\n\t\t71, 176, 146, 74, 230, 136, 37, 211, 27, 204, 244, 106, 74,\n\t\t166, 178, 34, 73, 201, 21, 75, 166, 15, 137, 168, 2, 145,\n\t\t89, 58, 50, 174, 124, 135, 171, 171, 9, 93, 117, 228, 164,\n\t\t85, 50, 76, 44, 226, 6, 251, 149, 150, 172, 43, 138, 190,\n\t\t151, 45, 89, 153, 136, 68, 68, 227, 252, 139, 79, 32, 1, 126,\n\t\t122, 194, 53, 10, 96, 143, 91, 174, 163, 25, 90, 136, 38,\n\t\t233, 72, 144, 97, 76, 29, 174, 103, 123, 61, 244, 44, 149,\n\t\t44, 70, 95, 249, 71, 217, 16, 10, 101, 83, 160, 68, 84, 179,\n\t\t193, 30, 7, 162, 189, 63, 253, 224, 94, 132, 14, 255, 23,\n\t\t106, 32, 114, 254, 18, 195, 217, 230, 26, 24, 191, 105, 248,\n\t\t9, 65, 87, 110, 63, 143, 33, 50, 168, 211, 28, 172, 58, 16,\n\t\t193, 189, 15, 254, 244, 94, 136, 214, 78, 136, 132, 162, 100,\n\t\t121, 116, 43, 195, 223, 126, 152, 153, 2, 174, 27, 219, 177,\n\t\t185, 252, 49, 96, 57, 194, 93, 176, 2, 78, 131, 155, 192,\n\t\t61, 0, 120, 221, 78, 220, 119, 172, 137, 197, 200, 137, 99,\n\t\t45, 89, 208, 82, 176, 232, 119, 157, 120, 3, 197, 137, 14,\n\t\t99, 31, 74, 216, 237, 112, 246, 200, 29, 82, 158, 131, 144,\n\t\t97, 125, 57, 181, 250, 116, 99, 219, 230, 254, 45, 22, 248,\n\t\t185, 207, 50, 156, 89, 106, 233, 114, 66, 42, 34, 75, 151,\n\t\t13, 217, 207, 90, 89, 107, 207, 77, 76, 188, 186, 176, 205,\n\t\t66, 3, 245, 20, 36, 89, 195, 17, 75, 67, 75, 47, 15, 224,\n\t\t134, 206, 155, 208, 226, 133, 11, 84, 150, 161, 103, 101,\n\t\t45, 195, 57, 181, 162, 155, 125, 221, 146, 13, 185, 63, 15,\n\t\t225, 221, 172, 180, 181, 145, 245, 173, 61, 92, 90, 59, 92,\n\t\t30, 197, 108, 105, 41, 173, 232, 37, 222, 253, 215, 186, 181,\n\t\t189, 211, 80, 158, 153, 228, 168, 109, 179, 120, 193, 235,\n\t\t24, 226, 16, 55, 27, 31, 100, 148, 122, 93, 70, 175, 232,\n\t\t38, 96, 24, 199, 235, 133, 189, 96, 66, 116, 65, 18, 60, 89,\n\t\t113, 2, 221, 254, 44, 208, 118, 184, 76, 169, 120, 163, 64,\n\t\t9, 133, 222, 126, 17, 11, 38, 82, 14, 19, 10, 83, 175, 42,\n\t\t205, 183, 42, 69, 73, 215, 245, 140, 73, 72, 214, 61, 108,\n\t\t102, 4, 115, 177, 210, 154, 47, 41, 126, 214, 172, 180, 18,\n\t\t50, 105, 244, 9, 201, 250, 155, 26, 121, 7, 145, 201, 237,\n\t\t34, 17, 31, 85, 100, 114, 213, 203, 88, 40, 159, 225, 186,\n\t\t110, 198, 169, 186, 230, 163, 168, 85, 41, 53, 145, 153, 204,\n\t\t250, 19, 140, 119, 63, 155, 28, 219, 212, 46, 162, 1, 252,\n\t\t89, 80, 4, 7, 24, 150, 84, 111, 156, 104, 201, 244, 23, 63,\n\t\t240, 119, 185, 95, 188, 158, 251, 188, 123, 119, 127, 185,\n\t\t186, 107, 47, 212, 206, 188, 245, 12, 123, 57, 47, 59, 115,\n\t\t207, 59, 88, 225, 221, 247, 159, 123, 29, 43, 172, 45, 237,\n\t\t61, 203, 10, 183, 157, 44, 118, 185, 90, 50, 30, 12, 230,\n\t\t225, 123, 201, 241, 55, 159, 98, 3, 215, 19, 55, 188, 81,\n\t\t213, 31, 191, 155, 149, 31, 127, 232, 23, 207, 107, 15, 221,\n\t\t192, 202, 63, 216, 57, 41, 146, 235, 250, 172, 252, 230, 99,\n\t\t15, 158, 35, 222, 98, 97, 156, 251, 110, 233, 172, 244, 150,\n\t\t218, 222, 56, 142, 228, 139, 204, 135, 38, 131, 42, 216, 15,\n\t\t206, 130, 33, 0, 208, 169, 196, 14, 24, 220, 243, 91, 40,\n\t\t154, 64, 12, 200, 114, 49, 216, 4, 194, 178, 223, 190, 135,\n\t\t106, 30, 243, 99, 112, 110, 129, 43, 121, 231, 42, 78, 156,\n\t\t33, 216, 235, 160, 242, 183, 47, 222, 186, 118, 113, 237,\n\t\t214, 209, 147, 2, 18, 115, 58, 148, 160, 158, 19, 145, 96,\n\t\t99, 72, 196, 116, 90, 36, 16, 191, 239, 123, 222, 241, 203,\n\t\t84, 78, 207, 122, 165, 89, 206, 89, 180, 205, 150, 136, 185,\n\t\t169, 40, 4, 131, 193, 218, 173, 183, 46, 32, 10, 197, 140,\n\t\t32, 100, 68, 72, 145, 157, 19, 69, 164, 235, 72, 20, 115,\n\t\t246, 247, 88, 255, 58, 153, 14, 188, 192, 70, 226, 82, 121,\n\t\t126, 115, 50, 179, 208, 11, 172, 60, 160, 242, 148, 95, 130,\n\t\t231, 162, 94, 51, 197, 47, 91, 189, 114, 136, 212, 229, 222,\n\t\t228, 32, 78, 82, 154, 72, 164, 204, 216, 83, 13, 226, 56,\n\t\t230, 157, 220, 83, 22, 237, 129, 152, 91, 146, 71, 147, 172,\n\t\t31, 56, 123, 246, 192, 202, 252, 252, 74, 227, 112, 42, 157,\n\t\t109, 174, 173, 53, 15, 212, 111, 173, 175, 239, 64, 206, 109,\n\t\t236, 20, 119, 22, 23, 206, 62, 122, 118, 207, 158, 185, 170,\n\t\t182, 118, 203, 90, 185, 60, 225, 30, 25, 235, 161, 209, 93,\n\t\t92, 197, 50, 68, 119, 217, 163, 232, 20, 180, 75, 52, 226,\n\t\t33, 214, 203, 199, 4, 253, 78, 156, 90, 200, 135, 1, 110,\n\t\t22, 134, 143, 78, 217, 204, 134, 229, 179, 143, 158, 45, 175,\n\t\t221, 178, 246, 35, 107, 173, 114, 190, 145, 47, 111, 24, 169,\n\t\t124, 35, 159, 98, 217, 161, 219, 140, 50, 237, 40, 27, 165,\n\t\t133, 247, 55, 218, 209, 109, 45, 205, 190, 191, 185, 182,\n\t\t54, 122, 93, 171, 210, 72, 111, 71, 58, 254, 118, 186, 81,\n\t\t57, 137, 51, 137, 168, 156, 200, 224, 63, 137, 238, 230, 255,\n\t\t163, 215, 110, 241, 107, 23, 38, 254, 238, 18, 211, 227, 46,\n\t\t111, 57, 209, 220, 193, 226, 182, 42, 60, 110, 169, 75, 43,\n\t\t201, 101, 206, 183, 238, 96, 30, 219, 63, 137, 233, 231, 150,\n\t\t160, 111, 51, 151, 212, 192, 85, 20, 248, 79, 138, 226, 150,\n\t\t71, 67, 44, 107, 4, 14, 116, 107, 244, 39, 148, 30, 147, 232,\n\t\t107, 37, 41, 35, 73, 183, 205, 74, 116, 24, 19, 104, 110,\n\t\t232, 214, 128, 211, 137, 12, 6, 112, 64, 52, 25, 91, 250,\n\t\t15, 74, 244, 184, 36, 189, 70, 162, 89, 73, 186, 117, 150,\n\t\t5, 168, 69, 215, 122, 9, 13, 224, 107, 193, 2, 184, 49, 214,\n\t\t51, 56, 47, 191, 31, 179, 243, 26, 48, 6, 188, 228, 129, 136,\n\t\t69, 24, 47, 123, 109, 207, 13, 47, 63, 152, 252, 191, 115,\n\t\t44, 106, 19, 9, 83, 60, 63, 51, 123, 255, 252, 236, 253, 243,\n\t\t201, 89, 135, 42, 18, 169, 164, 213, 172, 82, 184, 177, 160,\n\t\t100, 149, 194, 77, 121, 53, 167, 100, 42, 187, 14, 171, 45,\n\t\t252, 95, 28, 149, 30, 64, 153, 148, 69, 73, 20, 221, 108,\n\t\t54, 155, 85, 117, 36, 211, 50, 145, 161, 152, 146, 145, 236,\n\t\t65, 79, 226, 75, 201, 122, 203, 174, 227, 92, 241, 255, 238,\n\t\t48, 158, 59, 250, 237, 75, 219, 240, 245, 172, 173, 187, 160,\n\t\t14, 86, 0, 24, 167, 112, 8, 145, 78, 193, 253, 189, 203, 7,\n\t\t161, 23, 114, 75, 241, 216, 209, 213, 99, 118, 44, 234, 212,\n\t\t186, 126, 11, 54, 57, 209, 90, 251, 32, 236, 253, 13, 179,\n\t\t208, 190, 177, 160, 96, 93, 213, 109, 109, 81, 146, 155, 43,\n\t\t15, 55, 101, 105, 81, 179, 117, 85, 199, 74, 33, 243, 118,\n\t\t11, 27, 179, 94, 105, 171, 228, 205, 26, 216, 42, 27, 179,\n\t\t193, 29, 193, 172, 1, 203, 204, 240, 58, 250, 66, 160, 87,\n\t\t20, 201, 28, 168, 57, 117, 111, 167, 179, 87, 205, 169, 3,\n\t\t83, 82, 42, 122, 80, 254, 90, 190, 172, 228, 147, 106, 169,\n\t\t164, 38, 243, 74, 57, 143, 229, 66, 46, 87, 144, 167, 108,\n\t\t94, 159, 6, 20, 180, 57, 178, 181, 229, 85, 162, 151, 235,\n\t\t78, 24, 173, 99, 50, 66, 222, 97, 73, 117, 226, 77, 89, 133,\n\t\t161, 223, 141, 102, 178, 206, 216, 124, 93, 142, 5, 237, 31,\n\t\t121, 217, 37, 176, 56, 175, 85, 32, 115, 207, 46, 30, 200,\n\t\t86, 91, 107, 45, 177, 114, 117, 69, 108, 173, 181, 204, 92,\n\t\t242, 0, 28, 250, 217, 81, 156, 160, 195, 115, 109, 224, 135,\n\t\t63, 220, 219, 168, 42, 228, 22, 30, 131, 115, 188, 79, 230,\n\t\t243, 145, 234, 168, 233, 178, 172, 107, 81, 41, 85, 113, 197,\n\t\t254, 241, 65, 214, 31, 61, 201, 190, 145, 141, 67, 160, 25,\n\t\t175, 221, 175, 162, 53, 248, 105, 160, 0, 7, 148, 193, 139,\n\t\t192, 203, 0, 128, 85, 234, 7, 189, 182, 71, 168, 47, 52, 97,\n\t\t16, 243, 72, 132, 156, 81, 194, 128, 212, 15, 35, 189, 47,\n\t\t240, 3, 223, 224, 76, 117, 54, 37, 156, 22, 52, 240, 151,\n\t\t89, 211, 110, 66, 74, 40, 225, 164, 167, 12, 167, 198, 141,\n\t\t161, 217, 56, 20, 86, 143, 1, 225, 77, 194, 65, 96, 57, 147,\n\t\t183, 229, 224, 134, 64, 182, 243, 63, 86, 95, 16, 84, 77,\n\t\t51, 72, 151, 124, 110, 153, 36, 52, 85, 21, 22, 102, 82, 247,\n\t\t245, 108, 65, 19, 141, 196, 252, 70, 59, 59, 159, 176, 41,\n\t\t93, 233, 101, 108, 59, 211, 91, 37, 196, 73, 204, 103, 219,\n\t\t27, 243, 9, 67, 212, 144, 211, 75, 151, 148, 89, 81, 67, 244,\n\t\t234, 118, 37, 44, 83, 164, 137, 179, 74, 233, 143, 185, 193,\n\t\t112, 93, 49, 51, 201, 100, 198, 84, 70, 31, 203, 173, 183,\n\t\t4, 124, 104, 46, 147, 153, 59, 132, 133, 214, 122, 46, 245,\n\t\t191, 202, 43, 132, 98, 83, 206, 230, 110, 188, 35, 43, 139,\n\t\t208, 128, 90, 57, 145, 201, 36, 202, 26, 52, 32, 150, 178,\n\t\t119, 220, 152, 203, 74, 73, 76, 201, 74, 217, 32, 133, 220,\n\t\t193, 37, 76, 168, 157, 234, 28, 173, 244, 171, 41, 155, 18,\n\t\t188, 56, 200, 21, 200, 219, 166, 184, 217, 126, 153, 229,\n\t\t113, 151, 193, 50, 139, 43, 103, 6, 62, 74, 118, 197, 207,\n\t\t241, 252, 237, 128, 15, 7, 69, 56, 198, 221, 109, 194, 49,\n\t\t35, 231, 174, 186, 42, 175, 252, 208, 190, 195, 186, 124,\n\t\t96, 246, 200, 75, 88, 198, 112, 190, 145, 151, 12, 57, 153,\n\t\t92, 124, 236, 195, 132, 189, 122, 242, 131, 183, 19, 89, 161,\n\t\t103, 190, 143, 111, 226, 51, 123, 69, 42, 42, 255, 63, 245,\n\t\t174, 149, 217, 3, 178, 113, 238, 240, 215, 21, 195, 80, 190,\n\t\t30, 141, 220, 74, 202, 16, 136, 217, 214, 140, 191, 33, 31,\n\t\t126, 140, 42, 50, 185, 253, 135, 112, 212, 123, 169, 188,\n\t\t65, 190, 239, 12, 85, 36, 186, 239, 52, 198, 84, 44, 83, 101,\n\t\t10, 215, 79, 6, 25, 16, 2, 224, 36, 43, 113, 36, 111, 56,\n\t\t201, 211, 226, 248, 19, 108, 212, 191, 28, 11, 125, 39, 96,\n\t\t38, 70, 166, 24, 236, 196, 51, 195, 117, 59, 63, 26, 228,\n\t\t237, 197, 113, 80, 83, 153, 202, 38, 52, 71, 207, 216, 249,\n\t\t252, 159, 78, 130, 158, 127, 63, 111, 47, 46, 218, 249, 233,\n\t\t76, 195, 93, 120, 131, 87, 188, 174, 78, 133, 95, 87, 173,\n\t\t242, 61, 92, 23, 228, 34, 201, 197, 239, 112, 101, 19, 252,\n\t\t140, 43, 93, 25, 101, 120, 152, 26, 227, 8, 158, 5, 123, 24,\n\t\t51, 199, 126, 112, 8, 0, 232, 18, 138, 249, 200, 214, 11,\n\t\t235, 171, 12, 59, 135, 13, 109, 177, 131, 180, 211, 118, 41,\n\t\t3, 68, 246, 132, 48, 160, 7, 33, 255, 132, 28, 61, 185, 23,\n\t\t6, 118, 164, 117, 252, 91, 118, 182, 55, 122, 159, 36, 165,\n\t\t148, 50, 37, 26, 188, 93, 35, 84, 78, 201, 82, 78, 146, 83,\n\t\t114, 133, 82, 53, 95, 95, 104, 94, 255, 147, 154, 233, 152,\n\t\t134, 253, 193, 210, 74, 233, 3, 165, 3, 165, 15, 150, 14,\n\t\t148, 78, 25, 242, 30, 69, 155, 161, 194, 10, 68, 4, 222, 181,\n\t\t247, 145, 202, 231, 69, 179, 167, 101, 201, 127, 167, 89,\n\t\t213, 20, 147, 98, 34, 84, 179, 212, 244, 150, 250, 20, 174,\n\t\t10, 116, 101, 244, 235, 169, 32, 149, 73, 5, 169, 92, 42,\n\t\t176, 222, 43, 25, 77, 93, 126, 167, 97, 218, 148, 74, 50,\n\t\t224, 152, 159, 31, 143, 237, 182, 115, 19, 20, 189, 192, 143,\n\t\t97, 24, 253, 192, 15, 45, 22, 154, 221, 98, 220, 50, 46, 71,\n\t\t188, 141, 26, 58, 156, 107, 86, 189, 84, 112, 207, 94, 85,\n\t\t197, 120, 233, 113, 41, 37, 138, 226, 176, 35, 234, 88, 211,\n\t\t194, 220, 153, 55, 20, 15, 167, 75, 55, 86, 164, 170, 232,\n\t\t23, 76, 88, 115, 239, 104, 250, 86, 123, 175, 166, 137, 134,\n\t\t184, 180, 38, 18, 89, 86, 32, 109, 99, 172, 170, 253, 178,\n\t\t101, 38, 204, 130, 47, 86, 165, 202, 141, 165, 244, 97, 0,\n\t\t128, 194, 236, 136, 81, 191, 139, 36, 144, 227, 224, 102,\n\t\t112, 27, 120, 25, 120, 13, 248, 33, 240, 110, 240, 65, 0,\n\t\t234, 76, 210, 71, 19, 232, 185, 85, 56, 29, 76, 51, 29, 248,\n\t\t234, 209, 203, 154, 53, 221, 65, 131, 97, 45, 42, 168, 237,\n\t\t174, 8, 58, 221, 154, 183, 27, 133, 165, 227, 237, 62, 133,\n\t\t51, 13, 130, 255, 29, 33, 103, 46, 193, 72, 216, 25, 13, 116,\n\t\t11, 230, 96, 74, 123, 1, 235, 9, 16, 176, 254, 240, 239, 90,\n\t\t18, 253, 225, 142, 8, 92, 158, 200, 195, 139, 19, 209, 248,\n\t\t109, 219, 219, 141, 73, 117, 121, 231, 216, 47, 72, 23, 36,\n\t\t233, 130, 148, 222, 169, 153, 34, 54, 59, 130, 241, 205, 84,\n\t\t141, 100, 166, 155, 49, 222, 210, 18, 83, 189, 116, 144, 208,\n\t\t10, 147, 147, 95, 51, 5, 3, 189, 83, 124, 71, 121, 10, 30,\n\t\t122, 48, 249, 241, 33, 19, 199, 30, 157, 124, 249, 220, 20,\n\t\t86, 115, 52, 127, 126, 140, 181, 33, 7, 204, 131, 1, 184,\n\t\t129, 121, 234, 162, 215, 208, 130, 19, 71, 112, 224, 247,\n\t\t58, 49, 10, 118, 108, 222, 229, 64, 170, 164, 70, 199, 212,\n\t\t122, 83, 3, 43, 133, 59, 58, 111, 108, 23, 142, 190, 242,\n\t\t123, 138, 81, 84, 75, 119, 98, 29, 103, 48, 190, 179, 162,\n\t\t106, 230, 197, 103, 213, 152, 119, 98, 156, 81, 181, 59, 75,\n\t\t106, 209, 80, 54, 77, 77, 29, 141, 198, 165, 74, 180, 11,\n\t\t235, 248, 206, 173, 203, 182, 75, 106, 113, 240, 236, 170,\n\t\t39, 216, 105, 53, 141, 157, 118, 51, 250, 33, 136, 198, 165,\n\t\t201, 79, 198, 115, 47, 199, 200, 151, 128, 6, 76, 144, 97,\n\t\t99, 68, 45, 232, 48, 98, 182, 186, 83, 11, 59, 94, 173, 139,\n\t\t171, 60, 204, 130, 78, 100, 138, 43, 209, 3, 239, 184, 203,\n\t\t131, 10, 69, 139, 183, 103, 239, 212, 196, 52, 148, 71, 95,\n\t\t120, 117, 246, 43, 217, 87, 143, 46, 74, 50, 76, 139, 218,\n\t\t157, 89, 248, 137, 232, 249, 231, 109, 30, 199, 207, 3, 162,\n\t\t237, 124, 84, 103, 139, 8, 136, 176, 60, 212, 54, 36, 109,\n\t\t200, 254, 105, 210, 134, 54, 228, 38, 158, 173, 105, 52, 99,\n\t\t158, 35, 206, 212, 45, 22, 219, 16, 201, 253, 63, 5, 48, 144,\n\t\t65, 30, 212, 193, 65, 112, 18, 220, 10, 0, 36, 180, 214, 237,\n\t\t212, 156, 90, 136, 91, 44, 76, 183, 77, 150, 22, 3, 63, 122,\n\t\t91, 212, 159, 220, 19, 99, 199, 168, 93, 233, 46, 234, 83,\n\t\t122, 140, 235, 245, 188, 104, 180, 12, 168, 31, 176, 108,\n\t\t201, 78, 27, 254, 76, 33, 179, 114, 215, 27, 94, 157, 133,\n\t\t21, 77, 187, 83, 71, 105, 24, 253, 115, 28, 170, 122, 163,\n\t\t96, 124, 179, 127, 223, 93, 250, 227, 221, 119, 72, 235, 203,\n\t\t183, 190, 225, 214, 195, 203, 141, 146, 133, 50, 154, 33,\n\t\t224, 224, 32, 206, 185, 29, 191, 0, 111, 204, 148, 134, 195,\n\t\t225, 81, 101, 85, 219, 64, 16, 66, 203, 34, 106, 174, 196,\n\t\t158, 64, 249, 120, 120, 180, 183, 235, 206, 11, 149, 141,\n\t\t226, 85, 47, 124, 225, 85, 254, 3, 173, 153, 134, 251, 39,\n\t\t169, 131, 57, 74, 91, 103, 112, 165, 97, 5, 75, 49, 143, 56,\n\t\t143, 21, 235, 76, 197, 190, 177, 36, 213, 169, 207, 248, 78,\n\t\t47, 155, 148, 216, 124, 20, 35, 85, 15, 216, 127, 166, 165,\n\t\t47, 178, 191, 139, 12, 73, 0, 2, 86, 26, 198, 255, 198, 213,\n\t\t99, 212, 129, 69, 48, 197, 11, 245, 41, 16, 130, 85, 112,\n\t\t100, 140, 190, 29, 26, 66, 1, 178, 228, 54, 158, 131, 19,\n\t\t103, 28, 51, 128, 128, 158, 91, 226, 169, 229, 69, 152, 216,\n\t\t137, 140, 234, 180, 61, 34, 116, 59, 209, 245, 114, 163, 98,\n\t\t45, 201, 34, 185, 186, 243, 66, 156, 135, 27, 59, 87, 98,\n\t\t35, 89, 173, 227, 215, 88, 56, 156, 27, 198, 185, 174, 157,\n\t\t222, 87, 213, 148, 78, 229, 159, 143, 84, 180, 66, 81, 151,\n\t\t101, 217, 40, 107, 8, 19, 147, 104, 200, 182, 89, 12, 16,\n\t\t70, 90, 153, 232, 162, 44, 34, 82, 44, 216, 242, 172, 189,\n\t\t189, 165, 91, 23, 183, 45, 93, 183, 182, 19, 16, 38, 182,\n\t\t45, 221, 22, 27, 229, 176, 82, 9, 203, 13, 241, 91, 93, 39,\n\t\t173, 105, 178, 240, 7, 178, 166, 165, 157, 174, 56, 18, 84,\n\t\t211, 81, 47, 38, 19, 150, 14, 55, 116, 203, 149, 117, 93,\n\t\t151, 189, 18, 209, 16, 65, 152, 244, 122, 4, 35, 130, 52,\n\t\t82, 242, 68, 68, 116, 172, 139, 110, 170, 48, 250, 240, 198,\n\t\t208, 178, 134, 27, 186, 5, 203, 150, 190, 49, 140, 74, 154,\n\t\t150, 95, 56, 126, 124, 33, 175, 234, 139, 9, 89, 149, 4, 65,\n\t\t82, 229, 196, 34, 2, 194, 165, 111, 95, 250, 45, 244, 122,\n\t\t248, 105, 134, 19, 122, 213, 216, 47, 194, 34, 201, 72, 173,\n\t\t26, 181, 105, 22, 195, 78, 25, 14, 116, 11, 250, 236, 41,\n\t\t134, 151, 5, 153, 81, 47, 236, 185, 48, 12, 168, 23, 6, 20,\n\t\t189, 70, 160, 63, 45, 9, 68, 79, 184, 129, 6, 27, 7, 85, 219,\n\t\t86, 15, 54, 160, 22, 184, 9, 157, 8, 210, 79, 83, 129, 20,\n\t\t77, 55, 168, 219, 238, 57, 226, 169, 15, 62, 168, 122, 228,\n\t\t156, 107, 215, 3, 215, 44, 142, 222, 109, 221, 54, 243, 123,\n\t\t155, 51, 183, 25, 84, 56, 36, 74, 137, 18, 145, 239, 133,\n\t\t205, 224, 248, 241, 160, 9, 239, 149, 73, 41, 65, 133, 67,\n\t\t2, 53, 53, 34, 223, 147, 61, 215, 120, 74, 145, 196, 197,\n\t\t69, 81, 82, 158, 106, 156, 203, 222, 35, 19, 13, 130, 107,\n\t\t130, 65, 179, 57, 8, 162, 57, 60, 234, 187, 8, 110, 129, 36,\n\t\t112, 88, 75, 165, 2, 155, 31, 155, 48, 16, 252, 94, 7, 87,\n\t\t188, 10, 188, 152, 176, 80, 31, 165, 242, 137, 209, 191, 154,\n\t\t249, 164, 208, 71, 86, 2, 190, 123, 244, 131, 37, 184, 23,\n\t\t110, 185, 198, 232, 221, 102, 198, 48, 50, 38, 188, 219, 112,\n\t\t7, 219, 96, 55, 142, 194, 157, 224, 21, 224, 71, 118, 161,\n\t\t206, 241, 244, 195, 49, 128, 121, 216, 105, 179, 17, 156,\n\t\t37, 54, 197, 56, 93, 60, 178, 121, 63, 108, 199, 24, 231,\n\t\t7, 97, 111, 119, 136, 107, 36, 48, 177, 195, 24, 114, 28,\n\t\t131, 5, 216, 15, 123, 51, 227, 111, 198, 16, 145, 214, 42,\n\t\t12, 153, 88, 53, 15, 131, 56, 254, 185, 0, 109, 118, 108,\n\t\t219, 117, 98, 164, 187, 237, 135, 207, 64, 1, 21, 4, 201,\n\t\t148, 76, 71, 164, 66, 14, 161, 6, 161, 54, 150, 169, 171,\n\t\t136, 10, 194, 66, 52, 117, 145, 146, 42, 211, 186, 72, 169,\n\t\t88, 198, 130, 34, 80, 209, 140, 86, 154, 44, 151, 69, 106,\n\t\t171, 163, 79, 197, 21, 84, 22, 178, 63, 208, 61, 151, 209,\n\t\t37, 156, 146, 117, 107, 94, 75, 150, 53, 117, 222, 77, 185,\n\t\t166, 109, 83, 121, 12, 161, 119, 230, 97, 23, 137, 182, 36,\n\t\t73, 38, 149, 197, 44, 130, 58, 34, 138, 100, 139, 52, 67,\n\t\t101, 201, 194, 166, 132, 8, 84, 69, 21, 19, 133, 98, 25, 19,\n\t\t81, 22, 148, 104, 129, 101, 77, 150, 42, 98, 233, 71, 20,\n\t\t34, 200, 162, 104, 98, 42, 102, 70, 159, 17, 250, 123, 112,\n\t\t82, 169, 171, 52, 171, 103, 211, 174, 145, 84, 21, 194, 109,\n\t\t223, 96, 3, 1, 88, 102, 22, 164, 103, 217, 239, 46, 223, 158,\n\t\t78, 240, 128, 23, 119, 202, 91, 59, 41, 29, 195, 157, 34,\n\t\t59, 127, 249, 210, 54, 184, 24, 219, 8, 129, 55, 241, 59,\n\t\t241, 204, 51, 235, 178, 237, 141, 43, 158, 103, 241, 242,\n\t\t159, 227, 101, 54, 108, 94, 250, 230, 165, 223, 96, 50, 220,\n\t\t44, 88, 138, 51, 150, 73, 53, 160, 46, 161, 132, 233, 80,\n\t\t148, 52, 17, 83, 49, 185, 9, 37, 228, 83, 188, 55, 214, 162,\n\t\t225, 127, 200, 242, 97, 37, 43, 135, 46, 204, 24, 182, 97,\n\t\t33, 33, 83, 123, 224, 172, 90, 203, 248, 9, 15, 19, 35, 115,\n\t\t188, 218, 147, 229, 195, 114, 78, 30, 253, 111, 174, 21, 190,\n\t\t89, 206, 201, 135, 101, 185, 87, 61, 158, 78, 16, 49, 157,\n\t\t240, 51, 53, 245, 236, 3, 181, 140, 128, 44, 195, 54, 50,\n\t\t208, 237, 41, 89, 229, 176, 44, 143, 126, 126, 194, 21, 6,\n\t\t47, 141, 46, 253, 53, 66, 240, 125, 32, 205, 36, 223, 56,\n\t\t174, 166, 199, 187, 59, 245, 130, 48, 232, 185, 30, 252, 203,\n\t\t25, 177, 242, 167, 36, 129, 255, 180, 34, 206, 8, 213, 59,\n\t\t252, 194, 198, 147, 139, 27, 85, 255, 246, 42, 252, 190, 250,\n\t\t139, 27, 127, 133, 241, 95, 53, 94, 92, 23, 106, 52, 127,\n\t\t110, 240, 228, 112, 112, 111, 142, 214, 152, 76, 112, 233,\n\t\t210, 111, 178, 248, 85, 158, 219, 53, 0, 47, 217, 177, 140,\n\t\t180, 199, 168, 35, 227, 216, 96, 226, 197, 207, 133, 37, 184,\n\t\t50, 149, 59, 82, 175, 87, 97, 39, 122, 56, 145, 130, 222,\n\t\t235, 112, 88, 59, 166, 127, 71, 74, 58, 79, 142, 245, 131,\n\t\t106, 208, 11, 252, 238, 1, 24, 35, 168, 178, 39, 235, 122,\n\t\t238, 251, 216, 83, 225, 89, 44, 13, 94, 134, 105, 65, 162,\n\t\t158, 171, 106, 2, 150, 5, 74, 195, 182, 108, 121, 8, 81, 236,\n\t\t122, 227, 170, 189, 203, 146, 249, 119, 84, 18, 93, 75, 110,\n\t\t135, 84, 18, 101, 44, 104, 42, 52, 20, 217, 54, 165, 229,\n\t\t189, 148, 10, 172, 194, 131, 128, 159, 54, 58, 43, 247, 229,\n\t\t252, 220, 74, 135, 234, 16, 81, 193, 214, 60, 135, 232, 16,\n\t\t23, 176, 170, 236, 107, 99, 137, 34, 42, 218, 106, 218, 166,\n\t\t58, 41, 137, 242, 91, 116, 186, 180, 79, 85, 73, 30, 67, 157,\n\t\t58, 174, 102, 139, 130, 109, 205, 119, 160, 0, 101, 5, 151,\n\t\t198, 149, 2, 157, 228, 174, 16, 248, 105, 208, 98, 172, 180,\n\t\t238, 56, 131, 152, 185, 178, 154, 209, 187, 138, 20, 107,\n\t\t39, 14, 242, 93, 129, 203, 171, 136, 1, 199, 209, 34, 154,\n\t\t160, 92, 192, 17, 53, 154, 178, 222, 49, 149, 166, 155, 46,\n\t\t180, 52, 40, 11, 154, 40, 36, 194, 234, 172, 100, 165, 254,\n\t\t73, 183, 204, 250, 218, 226, 103, 21, 100, 44, 58, 245, 60,\n\t\t125, 140, 133, 26, 62, 100, 39, 26, 178, 62, 208, 203, 25,\n\t\t17, 9, 26, 198, 5, 31, 193, 211, 102, 209, 210, 79, 29, 188,\n\t\t227, 5, 251, 83, 199, 69, 165, 151, 23, 221, 138, 221, 103,\n\t\t129, 131, 81, 27, 250, 86, 156, 159, 157, 5, 0, 10, 164, 26,\n\t\t8, 76, 228, 29, 47, 216, 0, 92, 105, 187, 240, 210, 57, 104,\n\t\t192, 181, 38, 210, 80, 53, 90, 44, 204, 32, 13, 157, 19, 45,\n\t\t19, 110, 39, 44, 248, 174, 209, 2, 33, 240, 254, 15, 17, 242,\n\t\t198, 207, 16, 242, 155, 63, 128, 49, 76, 37, 178, 30, 0, 204,\n\t\t95, 124, 17, 13, 224, 22, 32, 64, 5, 9, 96, 51, 60, 232, 69,\n\t\t208, 103, 30, 148, 85, 216, 105, 83, 167, 182, 28, 214, 93,\n\t\t175, 230, 117, 59, 174, 67, 151, 3, 238, 49, 180, 156, 152,\n\t\t44, 178, 43, 116, 59, 28, 54, 184, 199, 39, 252, 101, 56,\n\t\t24, 125, 53, 120, 245, 177, 196, 231, 55, 138, 112, 109, 243,\n\t\t224, 135, 135, 107, 197, 45, 241, 125, 150, 62, 44, 183, 147,\n\t\t251, 174, 222, 151, 108, 15, 223, 39, 14, 117, 235, 235, 235,\n\t\t253, 109, 248, 158, 87, 239, 63, 178, 53, 60, 180, 242, 206,\n\t\t236, 109, 91, 195, 149, 67, 3, 35, 197, 166, 218, 97, 161,\n\t\t86, 43, 12, 47, 129, 141, 148, 177, 97, 253, 66, 191, 177,\n\t\t177, 209, 136, 250, 252, 215, 46, 109, 195, 79, 195, 207,\n\t\t130, 4, 40, 62, 123, 204, 98, 145, 48, 149, 168, 85, 71, 2,\n\t\t74, 15, 50, 87, 2, 79, 196, 130, 119, 55, 112, 242, 232, 232,\n\t\t15, 22, 141, 193, 67, 119, 235, 69, 39, 89, 222, 73, 79, 254,\n\t\t219, 106, 215, 62, 247, 244, 190, 187, 115, 131, 125, 195,\n\t\t140, 13, 118, 197, 168, 89, 160, 17, 219, 235, 252, 96, 18,\n\t\t211, 199, 250, 208, 60, 172, 134, 81, 221, 152, 138, 106,\n\t\t92, 233, 113, 87, 198, 148, 235, 3, 243, 16, 64, 231, 53,\n\t\t98, 170, 70, 160, 66, 147, 6, 18, 221, 18, 47, 189, 52, 170,\n\t\t19, 37, 113, 186, 238, 189, 205, 181, 181, 166, 217, 111,\n\t\t108, 55, 250, 150, 14, 55, 237, 124, 222, 54, 97, 51, 99,\n\t\t213, 150, 168, 106, 148, 220, 210, 2, 85, 141, 104, 11, 75,\n\t\t56, 222, 44, 175, 221, 178, 214, 232, 247, 27, 219, 186, 181,\n\t\t21, 117, 25, 110, 55, 189, 116, 233, 223, 224, 87, 225, 71,\n\t\t129, 193, 162, 44, 151, 1, 8, 109, 143, 50, 7, 86, 176, 188,\n\t\t138, 58, 33, 67, 166, 111, 179, 236, 0, 191, 58, 118, 72,\n\t\t227, 118, 81, 112, 12, 30, 1, 223, 235, 126, 192, 63, 37,\n\t\t24, 100, 161, 39, 34, 76, 132, 143, 159, 18, 4, 18, 190, 42,\n\t\t36, 130, 112, 202, 222, 35, 240, 81, 49, 141, 136, 40, 64,\n\t\t177, 183, 64, 12, 225, 148, 191, 189, 144, 30, 18, 65, 44,\n\t\t111, 244, 5, 42, 10, 135, 135, 68, 23, 138, 69, 65, 39, 67,\n\t\t173, 204, 186, 177, 141, 4, 17, 11, 253, 141, 178, 40, 144,\n\t\t97, 122, 97, 44, 127, 114, 57, 64, 5, 25, 80, 7, 123, 152,\n\t\t119, 122, 124, 173, 108, 96, 10, 253, 42, 157, 92, 44, 101,\n\t\t67, 84, 124, 125, 126, 124, 213, 169, 203, 220, 235, 31, 45,\n\t\t206, 9, 9, 178, 76, 161, 66, 255, 155, 57, 99, 206, 9, 2,\n\t\t169, 30, 173, 18, 65, 56, 68, 21, 72, 151, 73, 66, 152, 43,\n\t\t254, 28, 155, 219, 63, 244, 142, 251, 239, 127, 199, 253,\n\t\t31, 100, 102, 206, 237, 154, 117, 136, 32, 113, 110, 141,\n\t\t42, 61, 69, 57, 68, 116, 209, 52, 69, 157, 124, 191, 66, 215,\n\t\t230, 68, 68, 14, 89, 181, 175, 179, 217, 121, 244, 55, 247,\n\t\t179, 111, 77, 98, 237, 113, 52, 215, 161, 215, 199, 99, 241,\n\t\t44, 216, 27, 105, 168, 227, 177, 88, 140, 215, 150, 123, 25,\n\t\t111, 215, 65, 216, 11, 221, 118, 232, 122, 187, 92, 229, 203,\n\t\t189, 14, 29, 179, 171, 94, 142, 36, 22, 186, 237, 119, 45,\n\t\t251, 254, 178, 15, 207, 179, 213, 65, 33, 161, 133, 204, 192,\n\t\t23, 106, 9, 212, 36, 233, 116, 63, 157, 38, 163, 17, 29, 167,\n\t\t90, 191, 74, 179, 53, 67, 145, 12, 101, 93, 49, 36, 197, 200,\n\t\t88, 233, 62, 28, 248, 236, 187, 236, 111, 244, 117, 45, 117,\n\t\t175, 98, 24, 202, 189, 41, 237, 99, 174, 96, 154, 130, 251,\n\t\t243, 211, 83, 237, 147, 208, 112, 180, 39, 20, 227, 137, 232,\n\t\t152, 39, 12, 229, 9, 43, 135, 76, 142, 21, 253, 9, 54, 247,\n\t\t198, 120, 104, 19, 244, 201, 104, 250, 101, 25, 20, 220, 124,\n\t\t205, 228, 125, 214, 208, 162, 25, 120, 162, 101, 79, 180,\n\t\t243, 186, 23, 6, 86, 24, 208, 104, 50, 190, 93, 206, 201,\n\t\t235, 74, 74, 112, 132, 4, 190, 47, 5, 83, 57, 203, 210, 17,\n\t\t73, 221, 143, 17, 9, 206, 55, 148, 83, 241, 17, 139, 74, 94,\n\t\t105, 41, 202, 226, 232, 171, 71, 174, 61, 178, 117, 237, 145,\n\t\t107, 127, 77, 206, 201, 183, 203, 242, 41, 165, 113, 62, 32,\n\t\t8, 223, 159, 34, 72, 183, 172, 92, 10, 166, 238, 195, 9, 193,\n\t\t17, 82, 242, 169, 248, 136, 69, 69, 105, 41, 121, 101, 113,\n\t\t239, 145, 107, 143, 140, 62, 119, 237, 145, 107, 121, 30,\n\t\t217, 215, 47, 125, 52, 198, 210, 220, 19, 245, 244, 144, 77,\n\t\t144, 77, 196, 101, 115, 142, 73, 205, 40, 233, 132, 239, 214,\n\t\t246, 250, 91, 15, 17, 68, 247, 62, 113, 135, 85, 22, 77, 252,\n\t\t112, 30, 177, 136, 6, 68, 232, 243, 27, 95, 239, 121, 136,\n\t\t152, 98, 201, 186, 253, 137, 189, 20, 225, 135, 115, 236,\n\t\t46, 178, 22, 130, 171, 223, 217, 238, 186, 195, 81, 172, 51,\n\t\t9, 61, 115, 25, 150, 113, 232, 117, 107, 78, 39, 254, 192,\n\t\t65, 214, 247, 179, 151, 64, 214, 31, 150, 23, 135, 139, 195,\n\t\t69, 184, 237, 103, 71, 195, 168, 18, 14, 134, 91, 27, 236,\n\t\t31, 159, 23, 118, 206, 153, 6, 37, 80, 3, 115, 160, 25, 115,\n\t\t101, 77, 159, 219, 233, 116, 105, 116, 230, 42, 137, 126,\n\t\t134, 229, 123, 215, 156, 48, 250, 181, 118, 111, 5, 86, 156,\n\t\t58, 179, 89, 237, 250, 221, 193, 214, 160, 172, 91, 131, 129,\n\t\t165, 15, 121, 241, 18, 128, 192, 210, 203, 187, 46, 101, 155,\n\t\t165, 14, 91, 255, 204, 15, 141, 138, 215, 13, 6, 27, 209,\n\t\t6, 247, 71, 124, 99, 130, 25, 150, 6, 13, 208, 6, 215, 239,\n\t\t248, 64, 83, 237, 152, 5, 208, 231, 161, 25, 203, 149, 30,\n\t\t243, 61, 48, 233, 171, 4, 163, 94, 87, 130, 44, 237, 254,\n\t\t224, 248, 24, 55, 1, 171, 187, 19, 135, 123, 7, 33, 124, 21,\n\t\t27, 229, 102, 13, 57, 111, 143, 77, 92, 163, 175, 169, 42,\n\t\t198, 70, 96, 28, 214, 60, 245, 48, 214, 87, 8, 45, 222, 34,\n\t\t103, 45, 121, 49, 82, 91, 255, 40, 235, 88, 167, 33, 92, 49,\n\t\t172, 172, 117, 210, 70, 142, 3, 57, 129, 236, 232, 22, 153,\n\t\t218, 121, 22, 140, 195, 108, 148, 134, 113, 88, 245, 180,\n\t\t195, 226, 71, 101, 169, 120, 139, 108, 101, 149, 255, 110,\n\t\t101, 173, 37, 235, 12, 92, 49, 236, 155, 88, 182, 240, 73,\n\t\t187, 159, 74, 142, 49, 253, 184, 175, 119, 6, 28, 218, 201,\n\t\t247, 74, 185, 12, 235, 51, 168, 115, 223, 86, 24, 248, 97,\n\t\t156, 161, 227, 134, 61, 24, 248, 44, 238, 206, 117, 34, 101,\n\t\t178, 132, 138, 44, 175, 41, 82, 64, 91, 144, 4, 240, 183,\n\t\t217, 109, 165, 12, 154, 173, 219, 201, 209, 163, 50, 145,\n\t\t45, 249, 119, 154, 199, 61, 124, 95, 67, 23, 148, 165, 39,\n\t\t50, 54, 29, 189, 43, 43, 10, 72, 168, 169, 206, 234, 233,\n\t\t194, 34, 77, 46, 107, 178, 150, 209, 246, 165, 8, 45, 191,\n\t\t162, 101, 165, 227, 140, 175, 209, 155, 12, 155, 102, 165,\n\t\t63, 16, 173, 20, 193, 247, 28, 57, 238, 149, 186, 13, 173,\n\t\t102, 28, 187, 90, 181, 41, 188, 221, 19, 69, 4, 137, 163,\n\t\t166, 75, 101, 173, 224, 118, 178, 36, 147, 150, 73, 65, 182,\n\t\t44, 125, 111, 58, 169, 141, 231, 217, 1, 187, 183, 38, 88,\n\t\t3, 39, 167, 238, 46, 206, 244, 226, 111, 199, 90, 244, 187,\n\t\t254, 36, 93, 141, 217, 15, 18, 176, 211, 238, 45, 211, 112,\n\t\t39, 161, 141, 10, 29, 246, 90, 59, 76, 161, 227, 105, 111,\n\t\t240, 46, 118, 167, 239, 177, 141, 185, 226, 168, 28, 141,\n\t\t98, 243, 61, 36, 9, 74, 131, 231, 173, 45, 232, 150, 157,\n\t\t189, 90, 49, 254, 41, 51, 78, 107, 11, 8, 89, 78, 175, 106,\n\t\t41, 119, 254, 243, 153, 74, 81, 183, 203, 43, 9, 13, 79, 238,\n\t\t246, 125, 134, 82, 156, 51, 88, 150, 51, 84, 38, 105, 108,\n\t\t150, 238, 74, 31, 49, 236, 234, 169, 73, 146, 155, 136, 70,\n\t\t223, 124, 67, 74, 209, 111, 190, 16, 103, 193, 157, 136, 243,\n\t\t188, 95, 15, 183, 184, 245, 174, 238, 198, 120, 65, 227, 116,\n\t\t2, 134, 98, 18, 9, 152, 245, 110, 220, 34, 139, 130, 87, 68,\n\t\t99, 170, 57, 151, 167, 132, 143, 205, 66, 77, 136, 238, 46,\n\t\t32, 180, 80, 252, 246, 183, 162, 102, 137, 168, 106, 200,\n\t\t138, 166, 40, 138, 246, 237, 207, 68, 173, 199, 177, 252,\n\t\t106, 41, 45, 39, 90, 43, 101, 39, 235, 51, 159, 119, 191,\n\t\t49, 216, 30, 204, 245, 110, 247, 252, 66, 192, 12, 171, 134,\n\t\t170, 74, 84, 209, 53, 93, 121, 100, 104, 101, 45, 217, 244,\n\t\t74, 201, 194, 130, 231, 103, 7, 86, 214, 218, 104, 244, 23,\n\t\t23, 23, 151, 213, 35, 92, 150, 24, 77, 248, 72, 123, 224,\n\t\t92, 28, 75, 104, 79, 104, 53, 125, 206, 73, 250, 93, 96, 177,\n\t\t140, 147, 140, 131, 177, 21, 155, 29, 233, 113, 118, 194,\n\t\t253, 176, 221, 249, 142, 167, 152, 80, 151, 34, 17, 34, 154,\n\t\t204, 147, 189, 195, 43, 0, 180, 252, 161, 76, 77, 69, 76,\n\t\t165, 68, 197, 164, 178, 100, 74, 12, 5, 73, 50, 165, 197,\n\t\t43, 28, 27, 211, 152, 10, 8, 83, 103, 201, 221, 123, 236,\n\t\t134, 167, 118, 65, 181, 36, 213, 184, 40, 221, 75, 101, 185,\n\t\t86, 147, 101, 122, 175, 36, 29, 238, 139, 98, 255, 176, 116,\n\t\t229, 35, 193, 4, 139, 19, 49, 159, 239, 17, 112, 234, 50,\n\t\t4, 244, 4, 75, 108, 98, 160, 231, 188, 19, 251, 76, 108, 245,\n\t\t220, 18, 140, 17, 145, 153, 69, 187, 5, 153, 48, 139, 220,\n\t\t18, 243, 155, 212, 170, 52, 224, 120, 200, 212, 243, 195,\n\t\t184, 23, 91, 103, 215, 150, 51, 212, 17, 141, 243, 166, 33,\n\t\t91, 18, 149, 147, 86, 34, 49, 122, 123, 197, 20, 105, 202,\n\t\t18, 105, 194, 39, 8, 107, 250, 177, 218, 92, 210, 146, 11,\n\t\t68, 78, 103, 72, 246, 96, 198, 121, 153, 42, 74, 138, 169,\n\t\t190, 243, 64, 42, 241, 2, 68, 254, 43, 70, 113, 19, 255, 213,\n\t\t131, 197, 192, 42, 222, 147, 32, 85, 76, 217, 9, 36, 252,\n\t\t70, 173, 34, 167, 100, 42, 39, 176, 65, 168, 238, 137, 153,\n\t\t110, 35, 233, 16, 146, 218, 167, 102, 85, 73, 91, 118, 36,\n\t\t243, 140, 148, 83, 244, 61, 123, 108, 51, 131, 243, 16, 174,\n\t\t40, 10, 24, 199, 106, 35, 248, 73, 134, 229, 120, 23, 184,\n\t\t31, 60, 4, 94, 3, 222, 196, 124, 91, 9, 104, 187, 182, 99,\n\t\t83, 174, 139, 206, 195, 106, 16, 179, 112, 45, 134, 1, 7,\n\t\t118, 40, 193, 238, 242, 42, 138, 141, 57, 75, 142, 215, 155,\n\t\t144, 67, 80, 215, 11, 23, 151, 119, 76, 61, 145, 210, 58,\n\t\t19, 139, 127, 169, 203, 130, 81, 199, 107, 102, 96, 228, 100,\n\t\t213, 19, 250, 253, 75, 8, 147, 55, 65, 177, 34, 201, 181,\n\t\t186, 233, 220, 153, 210, 43, 254, 130, 8, 223, 36, 98, 8,\n\t\t137, 160, 145, 188, 32, 18, 129, 113, 249, 233, 110, 127,\n\t\t189, 239, 234, 114, 159, 117, 154, 60, 209, 209, 232, 34,\n\t\t139, 196, 156, 125, 86, 206, 155, 105, 202, 134, 44, 137,\n\t\t5, 30, 168, 217, 32, 154, 16, 66, 44, 34, 221, 172, 238, 105,\n\t\t158, 202, 104, 146, 115, 168, 113, 112, 193, 212, 181, 16,\n\t\t81, 73, 52, 8, 70, 90, 65, 196, 24, 201, 180, 9, 161, 151,\n\t\t208, 114, 149, 72, 136, 175, 102, 181, 132, 7, 97, 51, 234,\n\t\t215, 5, 13, 97, 50, 199, 78, 62, 250, 50, 91, 133, 83, 203,\n\t\t235, 61, 57, 58, 72, 52, 73, 155, 71, 121, 210, 103, 225,\n\t\t189, 220, 12, 54, 192, 253, 59, 25, 54, 207, 181, 198, 222,\n\t\t20, 124, 120, 205, 157, 196, 210, 175, 194, 112, 202, 234,\n\t\t204, 12, 105, 157, 110, 44, 196, 185, 177, 37, 14, 58, 94,\n\t\t39, 176, 162, 199, 90, 227, 8, 155, 47, 101, 122, 238, 173,\n\t\t207, 90, 66, 58, 131, 177, 139, 117, 92, 159, 157, 87, 215,\n\t\t154, 151, 64, 115, 205, 44, 88, 121, 219, 204, 219, 79, 150,\n\t\t181, 235, 241, 96, 182, 142, 117, 236, 98, 60, 227, 141, 134,\n\t\t131, 199, 14, 239, 139, 52, 159, 75, 44, 225, 236, 40, 83,\n\t\t134, 159, 253, 87, 27, 127, 99, 110, 159, 229, 101, 34, 189,\n\t\t201, 109, 20, 229, 155, 237, 252, 166, 157, 47, 252, 154,\n\t\t166, 119, 172, 125, 115, 227, 31, 117, 203, 247, 148, 225,\n\t\t153, 141, 193, 214, 104, 200, 51, 121, 98, 236, 13, 134, 157,\n\t\t96, 177, 252, 167, 118, 1, 218, 145, 212, 205, 128, 226, 107,\n\t\t213, 21, 184, 220, 169, 71, 117, 181, 10, 43, 195, 135, 52,\n\t\t237, 45, 90, 95, 123, 139, 166, 193, 123, 53, 109, 244, 14,\n\t\t77, 131, 101, 173, 175, 253, 189, 166, 253, 189, 214, 215,\n\t\t134, 90, 95, 211, 250, 218, 196, 223, 28, 189, 135, 122, 28,\n\t\t29, 92, 115, 166, 51, 134, 57, 5, 88, 120, 185, 79, 17, 59,\n\t\t59, 156, 214, 19, 252, 204, 77, 179, 220, 106, 184, 162, 101,\n\t\t110, 155, 150, 232, 54, 90, 101, 230, 96, 128, 145, 52, 50,\n\t\t250, 11, 105, 81, 146, 22, 165, 222, 67, 167, 79, 63, 116,\n\t\t26, 62, 249, 147, 166, 213, 62, 155, 189, 38, 145, 205, 38,\n\t\t174, 201, 158, 109, 91, 230, 79, 238, 56, 218, 210, 204, 189,\n\t\t246, 52, 87, 89, 24, 190, 10, 194, 240, 51, 192, 1, 45, 176,\n\t\t151, 91, 170, 237, 49, 159, 91, 24, 212, 130, 208, 115, 188,\n\t\t158, 235, 5, 145, 226, 21, 198, 244, 8, 147, 48, 126, 66,\n\t\t3, 159, 18, 47, 150, 159, 38, 182, 144, 127, 87, 213, 174,\n\t\t82, 82, 31, 78, 74, 234, 125, 171, 27, 131, 225, 125, 246,\n\t\t98, 114, 89, 215, 78, 195, 185, 220, 181, 117, 42, 224, 99,\n\t\t234, 225, 227, 88, 71, 178, 157, 179, 50, 86, 233, 71, 169,\n\t\t246, 42, 171, 91, 183, 222, 241, 48, 123, 151, 203, 106, 81,\n\t\t237, 170, 234, 195, 201, 69, 251, 190, 225, 96, 99, 245, 62,\n\t\t85, 74, 246, 132, 211, 43, 243, 57, 91, 70, 134, 120, 252,\n\t\t176, 122, 12, 11, 116, 230, 88, 46, 165, 90, 165, 211, 165,\n\t\t242, 43, 173, 122, 215, 122, 231, 23, 185, 145, 132, 196,\n\t\t99, 109, 212, 238, 199, 126, 244, 149, 157, 17, 183, 29, 141,\n\t\t56, 87, 192, 41, 162, 213, 90, 53, 210, 77, 234, 61, 200,\n\t\t120, 185, 58, 221, 121, 232, 116, 208, 24, 32, 118, 15, 83,\n\t\t10, 63, 46, 16, 250, 247, 23, 162, 9, 116, 196, 64, 12, 46,\n\t\t252, 79, 132, 52, 1, 81, 2, 47, 146, 209, 199, 55, 32, 216,\n\t\t24, 110, 108, 220, 25, 163, 224, 178, 199, 171, 107, 232,\n\t\t192, 45, 150, 206, 153, 150, 117, 235, 204, 126, 141, 104,\n\t\t112, 136, 70, 63, 199, 69, 107, 88, 158, 232, 141, 59, 241,\n\t\t199, 6, 107, 127, 187, 61, 89, 214, 196, 147, 133, 184, 39,\n\t\t235, 240, 242, 209, 215, 255, 250, 235, 111, 187, 118, 239,\n\t\t92, 78, 153, 177, 28, 66, 246, 221, 66, 115, 249, 212, 241,\n\t\t254, 60, 252, 225, 197, 183, 204, 223, 246, 166, 55, 221,\n\t\t214, 219, 58, 220, 221, 87, 30, 253, 110, 246, 166, 64, 86,\n\t\t15, 61, 44, 149, 27, 13, 171, 127, 132, 219, 75, 47, 197,\n\t\t88, 45, 11, 224, 70, 230, 223, 97, 239, 177, 23, 246, 194,\n\t\t197, 176, 23, 174, 198, 81, 59, 37, 72, 168, 129, 169, 129,\n\t\t234, 236, 69, 87, 41, 161, 134, 56, 134, 213, 232, 133, 171,\n\t\t98, 184, 138, 194, 85, 28, 246, 194, 191, 210, 221, 180, 161,\n\t\t119, 107, 51, 50, 84, 102, 66, 116, 36, 47, 10, 41, 179, 92,\n\t\t235, 20, 115, 134, 164, 232, 114, 189, 216, 180, 92, 191,\n\t\t158, 85, 40, 149, 60, 120, 130, 29, 4, 225, 145, 60, 161,\n\t\t229, 250, 161, 198, 228, 24, 77, 115, 147, 158, 150, 202,\n\t\t42, 148, 200, 94, 185, 98, 39, 187, 181, 77, 61, 165, 81,\n\t\t209, 174, 212, 34, 9, 203, 129, 222, 49, 85, 154, 73, 7, 249,\n\t\t146, 170, 40, 68, 174, 231, 83, 84, 201, 214, 125, 199, 74,\n\t\t89, 149, 47, 140, 143, 72, 164, 122, 65, 43, 17, 239, 23,\n\t\t177, 170, 90, 170, 197, 15, 169, 184, 50, 177, 43, 151, 113,\n\t\t78, 182, 193, 190, 231, 230, 156, 140, 58, 97, 220, 17, 59,\n\t\t113, 8, 34, 247, 199, 215, 170, 207, 77, 13, 249, 180, 212,\n\t\t151, 22, 165, 190, 20, 175, 254, 249, 185, 152, 46, 222, 58,\n\t\t117, 144, 212, 31, 93, 228, 188, 22, 112, 34, 7, 167, 25,\n\t\t2, 16, 98, 222, 179, 241, 117, 113, 246, 42, 88, 190, 234,\n\t\t101, 71, 27, 181, 130, 147, 24, 61, 145, 112, 18, 105, 83,\n\t\t254, 41, 184, 93, 106, 239, 47, 164, 75, 151, 24, 67, 28,\n\t\t4, 114, 194, 86, 87, 239, 155, 226, 143, 255, 41, 32, 131,\n\t\t20, 0, 44, 81, 134, 157, 43, 106, 97, 149, 122, 175, 179,\n\t\t136, 128, 165, 179, 160, 129, 133, 155, 94, 57, 2, 208, 147,\n\t\t180, 45, 150, 67, 11, 183, 240, 107, 207, 255, 5, 157, 240,\n\t\t110, 93, 5, 63, 9, 76, 176, 0, 142, 238, 32, 223, 240, 14,\n\t\t212, 238, 117, 25, 233, 255, 228, 217, 48, 89, 110, 242, 220,\n\t\t66, 78, 78, 59, 133, 197, 194, 105, 106, 235, 189, 182, 55,\n\t\t70, 195, 25, 109, 48, 28, 156, 253, 187, 31, 221, 111, 96,\n\t\t209, 193, 148, 138, 95, 194, 26, 254, 146, 72, 169, 232, 138,\n\t\t152, 97, 227, 140, 81, 113, 24, 30, 206, 225, 93, 207, 241,\n\t\t71, 49, 37, 56, 141, 197, 207, 138, 226, 103, 69, 156, 198,\n\t\t132, 226, 191, 141, 132, 144, 105, 30, 253, 197, 231, 224,\n\t\t209, 127, 158, 155, 152, 98, 201, 23, 35, 65, 19, 110, 236,\n\t\t190, 212, 29, 254, 123, 193, 89, 114, 247, 93, 123, 195, 75,\n\t\t119, 93, 213, 216, 78, 194, 49, 181, 234, 28, 95, 211, 222,\n\t\t201, 173, 101, 150, 16, 143, 146, 4, 138, 107, 80, 239, 32,\n\t\t244, 152, 215, 143, 36, 96, 216, 131, 223, 228, 51, 215, 175,\n\t\t96, 236, 137, 134, 136, 194, 61, 47, 181, 114, 143, 222, 195,\n\t\t103, 188, 123, 114, 212, 122, 233, 158, 80, 87, 14, 43, 4,\n\t\t89, 235, 50, 36, 162, 33, 122, 24, 255, 10, 223, 253, 31,\n\t\t209, 193, 52, 119, 15, 63, 195, 61, 143, 230, 162, 131, 95,\n\t\t25, 29, 44, 175, 91, 44, 135, 101, 135, 87, 94, 141, 158,\n\t\t204, 206, 208, 243, 182, 59, 94, 216, 222, 220, 218, 108,\n\t\t195, 237, 135, 127, 52, 92, 223, 220, 92, 15, 127, 116, 108,\n\t\t167, 227, 207, 82, 101, 168, 118, 45, 134, 154, 1, 234, 227,\n\t\t12, 67, 102, 232, 220, 109, 143, 13, 171, 209, 220, 193, 83,\n\t\t170, 47, 199, 39, 24, 99, 181, 76, 51, 104, 195, 11, 84, 246,\n\t\t179, 163, 173, 172, 47, 211, 92, 54, 157, 40, 189, 250, 169,\n\t\t87, 151, 18, 233, 236, 42, 147, 167, 222, 60, 181, 228, 58,\n\t\t117, 126, 40, 83, 51, 235, 251, 89, 147, 202, 91, 203, 233,\n\t\t246, 218, 90, 59, 189, 188, 201, 68, 161, 89, 182, 244, 226,\n\t\t228, 23, 8, 202, 151, 182, 225, 69, 248, 73, 48, 0, 160, 238,\n\t\t216, 60, 185, 156, 9, 59, 203, 189, 72, 243, 136, 250, 249,\n\t\t170, 208, 9, 121, 166, 3, 163, 76, 238, 180, 151, 118, 54,\n\t\t74, 176, 40, 20, 162, 14, 0, 47, 22, 151, 139, 127, 110, 181,\n\t\t244, 146, 170, 201, 57, 83, 192, 146, 130, 75, 146, 169, 152,\n\t\t121, 27, 218, 57, 211, 209, 3, 44, 81, 97, 70, 77, 190, 254,\n\t\t76, 113, 185, 104, 25, 37, 53, 113, 76, 182, 197, 196, 9,\n\t\t73, 122, 59, 150, 40, 193, 4, 18, 141, 150, 37, 233, 247,\n\t\t236, 60, 44, 216, 191, 35, 73, 101, 53, 129, 40, 20, 137,\n\t\t36, 182, 101, 193, 153, 230, 37, 183, 64, 45, 186, 218, 74,\n\t\t52, 29, 236, 64, 125, 133, 197, 56, 21, 97, 202, 55, 119,\n\t\t113, 52, 88, 235, 206, 50, 235, 196, 108, 119, 205, 156, 242,\n\t\t206, 13, 6, 251, 111, 119, 79, 115, 60, 185, 211, 238, 237,\n\t\t239, 222, 229, 162, 227, 24, 40, 8, 193, 79, 1, 15, 92, 5,\n\t\t142, 131, 23, 48, 204, 239, 72, 80, 129, 147, 60, 89, 24,\n\t\t189, 65, 26, 189, 56, 238, 87, 155, 252, 17, 26, 189, 65,\n\t\t238, 97, 155, 252, 245, 48, 79, 60, 117, 75, 66, 145, 67,\n\t\t129, 65, 248, 15, 162, 76, 68, 67, 30, 109, 41, 85, 163, 210,\n\t\t50, 20, 184, 161, 84, 242, 149, 134, 40, 235, 88, 243, 202,\n\t\t1, 17, 211, 227, 165, 125, 133, 186, 209, 171, 84, 11, 37,\n\t\t159, 78, 118, 44, 245, 189, 147, 18, 252, 121, 108, 36, 76,\n\t\t106, 84, 148, 209, 150, 98, 180, 42, 70, 85, 129, 27, 178,\n\t\t97, 188, 24, 235, 10, 214, 68, 18, 148, 189, 244, 120, 105,\n\t\t93, 161, 238, 163, 170, 213, 73, 62, 157, 68, 236, 156, 113,\n\t\t41, 246, 89, 126, 2, 110, 193, 79, 2, 7, 20, 166, 242, 139,\n\t\t199, 193, 11, 76, 255, 16, 130, 10, 53, 96, 213, 231, 150,\n\t\t249, 17, 103, 118, 135, 103, 31, 61, 11, 63, 116, 39, 4, 119,\n\t\t138, 73, 51, 9, 185, 181, 59, 47, 73, 7, 206, 158, 61, 32,\n\t\t73, 163, 143, 124, 238, 115, 84, 85, 167, 242, 38, 114, 160,\n\t\t14, 102, 35, 185, 43, 140, 36, 203, 72, 192, 102, 64, 139,\n\t\t157, 93, 18, 104, 61, 89, 137, 169, 189, 132, 100, 37, 137,\n\t\t47, 151, 95, 226, 136, 176, 175, 72, 211, 163, 18, 44, 143,\n\t\t64, 222, 134, 91, 118, 126, 48, 26, 194, 103, 88, 135, 2,\n\t\t81, 135, 250, 87, 91, 95, 49, 82, 240, 162, 180, 107, 140,\n\t\t186, 48, 186, 0, 215, 237, 124, 126, 244, 63, 33, 184, 4,\n\t\t54, 118, 250, 147, 234, 36, 19, 209, 245, 198, 109, 49, 1,\n\t\t50, 160, 22, 71, 169, 92, 198, 145, 22, 71, 184, 197, 186,\n\t\t189, 211, 225, 65, 106, 145, 46, 192, 170, 43, 237, 30, 220,\n\t\t142, 78, 202, 237, 122, 27, 44, 72, 229, 105, 158, 83, 178,\n\t\t197, 49, 26, 56, 52, 3, 28, 114, 235, 160, 159, 133, 32, 235,\n\t\t143, 158, 230, 1, 103, 38, 11, 61, 123, 19, 103, 136, 212,\n\t\t45, 43, 246, 219, 241, 88, 176, 37, 0, 234, 29, 111, 66, 68,\n\t\t184, 138, 67, 143, 101, 53, 208, 160, 214, 101, 193, 200,\n\t\t61, 142, 93, 195, 241, 211, 9, 60, 126, 95, 221, 58, 254,\n\t\t146, 183, 157, 240, 42, 21, 175, 176, 52, 83, 72, 219, 105,\n\t\t181, 251, 122, 167, 64, 122, 55, 29, 159, 105, 20, 243, 142,\n\t\t141, 4, 15, 9, 162, 160, 104, 226, 199, 130, 234, 53, 131,\n\t\t217, 74, 179, 98, 215, 230, 219, 123, 22, 140, 180, 111, 173,\n\t\t21, 146, 238, 222, 147, 85, 79, 155, 47, 32, 65, 136, 142,\n\t\t212, 103, 194, 9, 142, 45, 130, 240, 147, 32, 25, 163, 144,\n\t\t246, 0, 176, 138, 200, 115, 13, 152, 128, 77, 20, 132, 171,\n\t\t136, 22, 145, 135, 25, 153, 202, 114, 120, 185, 126, 58, 30,\n\t\t24, 223, 123, 254, 93, 119, 168, 144, 168, 210, 94, 241, 244,\n\t\t219, 94, 152, 64, 74, 162, 115, 227, 227, 199, 133, 209, 27,\n\t\t5, 68, 20, 248, 32, 19, 50, 15, 177, 229, 43, 99, 76, 22,\n\t\t249, 182, 119, 222, 36, 37, 84, 100, 190, 240, 173, 235, 104,\n\t\t47, 213, 200, 203, 225, 177, 55, 222, 240, 98, 168, 16, 132,\n\t\t78, 48, 57, 243, 141, 108, 249, 202, 137, 204, 57, 29, 11,\n\t\t91, 2, 33, 0, 158, 80, 17, 248, 128, 24, 18, 55, 154, 253,\n\t\t220, 177, 205, 169, 23, 77, 222, 52, 188, 188, 221, 133, 92,\n\t\t23, 236, 58, 112, 232, 192, 188, 245, 53, 43, 127, 132, 74,\n\t\t234, 94, 54, 170, 236, 85, 37, 122, 94, 52, 196, 191, 162,\n\t\t19, 88, 205, 71, 101, 154, 120, 48, 65, 101, 11, 158, 25,\n\t\t253, 130, 149, 205, 126, 90, 114, 248, 120, 228, 72, 183,\n\t\t98, 252, 179, 59, 35, 146, 165, 235, 214, 149, 174, 111, 39,\n\t\t86, 247, 123, 186, 190, 50, 28, 242, 238, 121, 243, 119, 115,\n\t\t117, 38, 92, 31, 93, 176, 243, 249, 79, 62, 255, 213, 77,\n\t\t243, 173, 229, 216, 12, 120, 50, 234, 195, 236, 165, 134,\n\t\t189, 21, 24, 122, 142, 205, 121, 86, 163, 71, 74, 170, 65,\n\t\t248, 60, 226, 36, 141, 51, 198, 188, 93, 217, 235, 222, 62,\n\t\t42, 163, 162, 166, 252, 63, 172, 125, 117, 184, 228, 182,\n\t\t213, 183, 5, 30, 158, 11, 187, 217, 13, 20, 114, 195, 217,\n\t\t54, 222, 77, 54, 221, 13, 52, 133, 52, 77, 10, 105, 83, 72,\n\t\t202, 144, 200, 246, 25, 91, 59, 178, 228, 149, 228, 153, 59,\n\t\t91, 74, 153, 82, 102, 122, 203, 204, 204, 204, 204, 204, 204,\n\t\t204, 148, 124, 143, 100, 207, 189, 115, 211, 246, 125, 250,\n\t\t125, 207, 151, 63, 228, 223, 57, 150, 101, 193, 209, 57, 191,\n\t\t35, 207, 205, 94, 126, 121, 111, 112, 109, 76, 219, 225, 237,\n\t\t79, 184, 231, 9, 167, 132, 59, 195, 21, 23, 216, 235, 203,\n\t\t201, 123, 110, 178, 103, 121, 255, 133, 199, 30, 113, 229,\n\t\t27, 142, 56, 246, 194, 253, 151, 62, 167, 219, 166, 228, 156,\n\t\t227, 143, 222, 117, 218, 169, 167, 158, 182, 235, 232, 227,\n\t\t207, 33, 148, 118, 232, 218, 218, 87, 22, 158, 9, 119, 222,\n\t\t99, 237, 152, 61, 123, 142, 89, 123, 14, 190, 104, 255, 17,\n\t\t199, 30, 123, 196, 254, 139, 240, 165, 53, 15, 168, 255, 30,\n\t\t39, 10, 130, 208, 255, 222, 235, 184, 133, 255, 203, 228,\n\t\t198, 47, 206, 118, 172, 158, 190, 245, 95, 231, 61, 172, 133,\n\t\t190, 241, 212, 229, 29, 151, 237, 88, 190, 162, 158, 176,\n\t\t229, 45, 210, 218, 142, 101, 116, 247, 103, 46, 239, 240,\n\t\t147, 247, 204, 229, 29, 59, 150, 175, 124, 193, 130, 24, 4,\n\t\t193, 53, 209, 29, 235, 95, 192, 5, 65, 112, 84, 176, 191,\n\t\t193, 40, 56, 50, 120, 112, 131, 113, 16, 6, 47, 111, 48, 9,\n\t\t142, 14, 126, 219, 96, 26, 28, 137, 206, 111, 112, 24, 156,\n\t\t128, 230, 117, 90, 193, 78, 116, 85, 131, 123, 193, 41, 184,\n\t\t108, 112, 63, 56, 28, 127, 178, 193, 43, 193, 118, 50, 108,\n\t\t240, 106, 16, 146, 168, 193, 219, 130, 35, 73, 214, 224, 29,\n\t\t193, 118, 242, 210, 6, 239, 12, 66, 242, 209, 128, 4, 136,\n\t\t186, 144, 121, 61, 223, 19, 135, 81, 176, 55, 184, 93, 131,\n\t\t113, 208, 11, 158, 221, 96, 18, 220, 48, 120, 109, 131, 105,\n\t\t176, 23, 173, 54, 56, 12, 110, 137, 46, 109, 112, 43, 56,\n\t\t5, 125, 182, 193, 189, 224, 206, 120, 103, 131, 251, 193,\n\t\t110, 252, 172, 6, 175, 4, 39, 226, 31, 54, 120, 53, 232, 145,\n\t\t99, 26, 188, 45, 216, 75, 78, 111, 240, 142, 224, 68, 114,\n\t\t255, 6, 239, 12, 122, 228, 157, 193, 121, 129, 10, 202, 96,\n\t\t22, 232, 128, 7, 89, 144, 7, 214, 255, 31, 129, 146, 96, 87,\n\t\t176, 22, 92, 16, 168, 64, 122, 205, 185, 193, 52, 128, 192,\n\t\t4, 42, 40, 2, 8, 130, 243, 84, 57, 211, 60, 203, 237, 218,\n\t\t201, 201, 174, 181, 11, 148, 180, 107, 231, 78, 193, 168,\n\t\t2, 130, 255, 248, 208, 90, 176, 207, 55, 169, 3, 240, 210,\n\t\t197, 129, 10, 68, 192, 131, 52, 8, 22, 27, 88, 219, 183, 118,\n\t\t129, 6, 88, 187, 88, 9, 158, 6, 139, 181, 26, 205, 255, 125,\n\t\t251, 81, 176, 47, 216, 29, 156, 25, 236, 118, 238, 255, 63,\n\t\t190, 43, 218, 183, 251, 204, 221, 167, 253, 191, 180, 255,\n\t\t191, 245, 255, 244, 96, 111, 112, 86, 176, 59, 56, 195, 95,\n\t\t221, 212, 254, 231, 246, 39, 1, 4, 58, 48, 1, 247, 53, 206,\n\t\t246, 111, 156, 247, 123, 87, 16, 156, 190, 247, 172, 221,\n\t\t103, 236, 61, 107, 237, 228, 45, 175, 155, 128, 54, 92, 201,\n\t\t179, 215, 124, 247, 119, 109, 246, 127, 107, 235, 251, 54,\n\t\t122, 30, 93, 189, 231, 77, 75, 251, 92, 183, 163, 166, 219,\n\t\t151, 4, 185, 239, 146, 107, 34, 14, 78, 10, 76, 176, 22, 20,\n\t\t129, 10, 140, 239, 120, 233, 109, 166, 10, 68, 192, 2, 29,\n\t\t172, 5, 60, 72, 252, 75, 215, 2, 19, 128, 175, 193, 2, 25,\n\t\t164, 193, 90, 96, 3, 229, 95, 54, 246, 255, 74, 248, 238,\n\t\t32, 184, 36, 135, 181, 41, 196, 39, 153, 181, 66, 25, 187,\n\t\t86, 170, 178, 18, 76, 175, 241, 68, 201, 53, 3, 118, 141,\n\t\t201, 116, 205, 42, 37, 198, 220, 238, 14, 188, 57, 218, 160,\n\t\t12, 76, 112, 118, 176, 39, 216, 19, 140, 154, 177, 177, 45,\n\t\t99, 219, 237, 95, 95, 4, 65, 110, 109, 105, 206, 222, 179,\n\t\t103, 164, 164, 101, 245, 168, 118, 39, 170, 248, 111, 215,\n\t\t244, 223, 173, 227, 255, 31, 11, 252, 223, 44, 228, 191, 107,\n\t\t237, 191, 237, 91, 243, 59, 189, 32, 8, 174, 122, 111, 112,\n\t\t100, 240, 111, 254, 35, 47, 247, 62, 19, 35, 140, 8, 162,\n\t\t40, 68, 45, 212, 70, 29, 212, 69, 61, 212, 71, 3, 52, 68,\n\t\t142, 129, 172, 160, 85, 180, 13, 109, 71, 135, 161, 29, 104,\n\t\t39, 58, 28, 29, 129, 142, 68, 71, 161, 107, 160, 107, 162,\n\t\t107, 161, 107, 35, 23, 42, 143, 65, 199, 162, 227, 208, 241,\n\t\t232, 4, 116, 34, 58, 9, 157, 140, 118, 161, 235, 160, 235,\n\t\t162, 83, 80, 132, 118, 163, 61, 232, 84, 116, 26, 218, 139,\n\t\t78, 71, 215, 67, 251, 208, 126, 116, 6, 58, 19, 157, 133,\n\t\t206, 70, 215, 71, 231, 160, 27, 160, 27, 162, 27, 161, 27,\n\t\t163, 115, 209, 77, 208, 121, 232, 166, 232, 124, 116, 1, 186,\n\t\t25, 186, 57, 186, 5, 186, 37, 186, 16, 221, 10, 221, 26, 93,\n\t\t132, 110, 131, 110, 139, 110, 135, 110, 143, 46, 70, 151,\n\t\t160, 59, 4, 75, 193, 175, 131, 33, 186, 35, 186, 19, 186,\n\t\t51, 186, 11, 186, 43, 186, 27, 186, 59, 186, 7, 186, 39, 186,\n\t\t20, 93, 134, 24, 138, 81, 130, 82, 4, 104, 132, 50, 148, 35,\n\t\t142, 14, 160, 49, 18, 168, 64, 18, 41, 84, 162, 131, 72, 35,\n\t\t131, 44, 170, 208, 4, 77, 209, 58, 154, 161, 67, 232, 94,\n\t\t232, 222, 232, 62, 232, 190, 232, 126, 232, 114, 116, 127,\n\t\t244, 0, 244, 64, 244, 32, 244, 96, 244, 16, 244, 80, 244,\n\t\t48, 244, 112, 244, 8, 244, 72, 116, 5, 122, 20, 122, 52, 122,\n\t\t12, 122, 44, 122, 28, 122, 60, 122, 2, 122, 34, 122, 18, 122,\n\t\t50, 122, 10, 122, 42, 122, 26, 122, 58, 122, 6, 122, 38, 122,\n\t\t22, 250, 31, 244, 108, 244, 28, 244, 92, 244, 60, 244, 124,\n\t\t244, 2, 244, 66, 244, 34, 244, 98, 244, 18, 244, 82, 244,\n\t\t50, 244, 114, 244, 10, 244, 74, 244, 42, 244, 106, 244, 26,\n\t\t244, 90, 244, 58, 244, 122, 244, 6, 244, 70, 244, 38, 244,\n\t\t102, 244, 22, 244, 86, 244, 54, 244, 118, 244, 14, 244, 78,\n\t\t244, 46, 244, 110, 244, 30, 244, 94, 244, 62, 244, 126, 244,\n\t\t1, 244, 65, 244, 33, 244, 97, 244, 17, 244, 81, 244, 49, 244,\n\t\t113, 244, 9, 244, 73, 244, 41, 244, 105, 244, 25, 244, 89,\n\t\t244, 185, 224, 88, 244, 121, 244, 5, 244, 69, 244, 37, 244,\n\t\t101, 244, 21, 244, 85, 244, 53, 244, 117, 244, 13, 244, 77,\n\t\t244, 45, 244, 109, 244, 29, 244, 93, 244, 61, 244, 125, 244,\n\t\t3, 244, 67, 244, 35, 244, 99, 244, 19, 244, 83, 244, 51, 244,\n\t\t115, 244, 11, 244, 75, 244, 43, 244, 107, 244, 27, 244, 91,\n\t\t244, 59, 244, 123, 244, 7, 244, 71, 244, 39, 244, 103, 244,\n\t\t23, 244, 87, 244, 55, 244, 119, 244, 15, 244, 79, 116, 37,\n\t\t186, 10, 59, 51, 192, 152, 96, 138, 67, 220, 194, 109, 220,\n\t\t193, 93, 220, 195, 125, 60, 192, 67, 188, 132, 151, 241, 10,\n\t\t94, 197, 219, 240, 118, 124, 24, 222, 129, 119, 226, 195,\n\t\t241, 17, 248, 72, 124, 20, 190, 6, 190, 38, 190, 22, 190,\n\t\t54, 62, 26, 175, 225, 99, 240, 177, 248, 56, 124, 60, 62,\n\t\t1, 159, 136, 79, 194, 39, 227, 93, 193, 195, 240, 117, 240,\n\t\t117, 241, 41, 56, 194, 187, 241, 30, 124, 42, 62, 13, 239,\n\t\t197, 167, 227, 235, 225, 125, 120, 127, 240, 200, 224, 56,\n\t\t124, 6, 62, 19, 159, 133, 207, 198, 215, 199, 231, 224, 27,\n\t\t224, 27, 226, 27, 225, 27, 227, 115, 241, 77, 240, 121, 248,\n\t\t166, 248, 124, 124, 1, 190, 25, 190, 57, 190, 5, 190, 37,\n\t\t190, 16, 223, 10, 223, 26, 95, 132, 111, 131, 111, 139, 111,\n\t\t135, 111, 143, 47, 198, 151, 224, 59, 224, 59, 226, 59, 225,\n\t\t59, 227, 187, 224, 187, 226, 187, 225, 187, 227, 123, 224,\n\t\t123, 226, 75, 241, 101, 152, 225, 24, 39, 56, 197, 128, 71,\n\t\t56, 195, 57, 230, 248, 0, 30, 99, 129, 11, 44, 177, 194, 37,\n\t\t62, 136, 53, 54, 193, 21, 193, 35, 176, 197, 21, 158, 224,\n\t\t41, 94, 199, 51, 124, 8, 223, 11, 223, 27, 223, 7, 223, 23,\n\t\t223, 15, 95, 142, 239, 143, 31, 16, 116, 240, 3, 241, 131,\n\t\t240, 131, 241, 67, 240, 67, 241, 195, 240, 195, 241, 35, 240,\n\t\t35, 241, 21, 248, 81, 248, 209, 248, 49, 248, 177, 248, 113,\n\t\t248, 241, 248, 9, 248, 137, 248, 73, 248, 201, 248, 41, 248,\n\t\t169, 248, 105, 248, 233, 248, 25, 248, 153, 248, 89, 248,\n\t\t127, 240, 179, 241, 115, 240, 115, 241, 243, 240, 243, 241,\n\t\t11, 240, 11, 241, 139, 240, 139, 241, 75, 240, 75, 241, 203,\n\t\t240, 203, 241, 43, 240, 43, 241, 171, 240, 171, 241, 107,\n\t\t240, 107, 241, 235, 240, 235, 241, 27, 240, 27, 241, 155,\n\t\t240, 155, 241, 91, 240, 91, 241, 219, 240, 219, 241, 59, 240,\n\t\t59, 241, 187, 240, 187, 241, 123, 240, 123, 241, 251, 240,\n\t\t251, 241, 7, 240, 7, 241, 135, 240, 135, 241, 71, 240, 71,\n\t\t241, 199, 240, 199, 241, 39, 240, 39, 241, 167, 240, 167,\n\t\t241, 103, 240, 103, 241, 231, 240, 231, 241, 23, 240, 23,\n\t\t241, 151, 240, 151, 241, 87, 240, 87, 241, 215, 240, 215,\n\t\t241, 55, 240, 55, 241, 183, 240, 183, 241, 119, 240, 119,\n\t\t241, 247, 240, 247, 241, 15, 240, 15, 241, 143, 240, 143,\n\t\t241, 79, 240, 79, 241, 207, 240, 207, 241, 47, 240, 47, 241,\n\t\t175, 240, 175, 241, 111, 240, 111, 241, 239, 240, 239, 241,\n\t\t31, 240, 31, 241, 159, 240, 159, 241, 95, 240, 95, 241, 223,\n\t\t240, 223, 241, 63, 240, 63, 241, 149, 248, 42, 18, 16, 68,\n\t\t92, 150, 66, 73, 72, 90, 164, 77, 58, 164, 75, 122, 164, 79,\n\t\t6, 100, 72, 150, 200, 50, 89, 33, 171, 100, 27, 217, 78, 14,\n\t\t35, 59, 200, 78, 114, 56, 57, 130, 28, 73, 142, 34, 215, 32,\n\t\t215, 36, 215, 34, 215, 38, 71, 147, 53, 114, 12, 57, 150,\n\t\t28, 71, 142, 39, 39, 144, 19, 201, 73, 228, 100, 178, 139,\n\t\t92, 135, 92, 151, 156, 66, 34, 178, 155, 236, 33, 167, 146,\n\t\t211, 200, 94, 114, 58, 185, 30, 217, 71, 246, 147, 51, 200,\n\t\t153, 228, 44, 114, 54, 185, 62, 57, 135, 220, 128, 220, 144,\n\t\t220, 136, 220, 56, 120, 11, 57, 151, 220, 132, 156, 71, 110,\n\t\t74, 206, 39, 23, 144, 155, 145, 155, 147, 91, 144, 91, 6,\n\t\t143, 39, 23, 146, 91, 145, 91, 147, 139, 200, 109, 200, 109,\n\t\t201, 237, 200, 237, 201, 197, 228, 18, 114, 7, 114, 71, 114,\n\t\t39, 114, 103, 114, 23, 114, 87, 114, 55, 114, 119, 114, 15,\n\t\t114, 79, 114, 41, 185, 140, 48, 18, 147, 132, 164, 4, 200,\n\t\t136, 100, 36, 39, 156, 28, 32, 99, 34, 72, 65, 36, 81, 164,\n\t\t36, 7, 137, 38, 134, 88, 82, 145, 9, 153, 146, 117, 50, 35,\n\t\t135, 200, 189, 200, 189, 201, 125, 200, 125, 201, 253, 200,\n\t\t229, 228, 254, 228, 1, 228, 129, 228, 65, 228, 193, 228, 33,\n\t\t228, 161, 228, 97, 228, 225, 228, 17, 228, 145, 228, 10, 242,\n\t\t40, 242, 104, 242, 24, 242, 88, 242, 56, 242, 120, 242, 4,\n\t\t242, 68, 242, 36, 242, 100, 242, 20, 242, 84, 242, 52, 242,\n\t\t116, 242, 12, 242, 76, 242, 44, 242, 63, 228, 217, 228, 57,\n\t\t228, 185, 228, 121, 228, 249, 228, 5, 228, 133, 228, 69, 228,\n\t\t197, 228, 37, 228, 165, 228, 101, 228, 229, 228, 21, 228,\n\t\t149, 228, 85, 228, 213, 228, 53, 228, 181, 228, 117, 228,\n\t\t245, 228, 13, 228, 141, 228, 77, 228, 205, 228, 45, 228, 173,\n\t\t228, 109, 228, 237, 228, 29, 228, 157, 228, 93, 228, 221,\n\t\t228, 61, 228, 189, 228, 125, 228, 253, 228, 3, 228, 131, 228,\n\t\t67, 228, 195, 228, 35, 228, 163, 228, 99, 228, 227, 228, 19,\n\t\t228, 147, 228, 83, 228, 211, 228, 51, 228, 179, 228, 115,\n\t\t228, 243, 228, 11, 228, 139, 228, 75, 228, 203, 228, 43, 228,\n\t\t171, 228, 107, 228, 235, 228, 27, 228, 155, 228, 91, 228,\n\t\t219, 228, 59, 228, 187, 228, 123, 228, 251, 228, 7, 228, 135,\n\t\t228, 71, 228, 199, 228, 39, 228, 167, 228, 103, 228, 231,\n\t\t228, 23, 228, 151, 228, 87, 228, 215, 228, 55, 228, 183, 228,\n\t\t119, 228, 247, 228, 15, 228, 143, 228, 79, 228, 207, 228,\n\t\t47, 228, 175, 228, 111, 228, 239, 228, 31, 228, 159, 228,\n\t\t74, 114, 21, 13, 40, 162, 152, 18, 74, 105, 72, 91, 180, 77,\n\t\t59, 180, 75, 123, 180, 79, 7, 116, 72, 151, 232, 50, 93, 161,\n\t\t171, 116, 27, 221, 78, 15, 163, 59, 232, 78, 122, 56, 61,\n\t\t130, 30, 73, 143, 162, 215, 160, 215, 164, 215, 162, 215,\n\t\t166, 71, 211, 53, 122, 12, 61, 150, 30, 71, 143, 167, 39,\n\t\t208, 19, 233, 73, 244, 100, 186, 139, 94, 135, 94, 151, 158,\n\t\t66, 35, 186, 155, 238, 161, 167, 210, 211, 232, 94, 122, 58,\n\t\t189, 30, 221, 71, 247, 211, 51, 232, 153, 244, 44, 122, 54,\n\t\t189, 62, 61, 39, 248, 38, 189, 1, 189, 33, 189, 81, 176, 141,\n\t\t222, 152, 158, 75, 111, 66, 207, 163, 55, 165, 231, 211, 11,\n\t\t232, 205, 232, 205, 233, 45, 232, 45, 233, 133, 244, 86, 244,\n\t\t214, 244, 34, 122, 27, 122, 91, 122, 59, 122, 123, 122, 49,\n\t\t189, 132, 222, 129, 222, 145, 222, 137, 222, 153, 222, 133,\n\t\t222, 149, 222, 141, 222, 157, 222, 131, 222, 147, 94, 74,\n\t\t47, 163, 140, 198, 52, 161, 41, 5, 58, 162, 25, 205, 41, 167,\n\t\t7, 232, 152, 10, 90, 80, 73, 21, 45, 233, 65, 170, 169, 161,\n\t\t150, 86, 116, 66, 167, 116, 157, 206, 232, 33, 122, 47, 122,\n\t\t111, 122, 31, 122, 95, 122, 63, 122, 57, 189, 63, 125, 0,\n\t\t125, 32, 125, 16, 125, 48, 125, 8, 125, 40, 125, 24, 125,\n\t\t56, 125, 4, 125, 36, 189, 130, 62, 138, 62, 154, 62, 134,\n\t\t62, 150, 62, 142, 62, 158, 62, 129, 62, 145, 62, 137, 62,\n\t\t153, 62, 133, 62, 149, 62, 141, 62, 157, 62, 99, 152, 9, 102,\n\t\t76, 84, 48, 109, 185, 228, 97, 81, 25, 158, 180, 12, 48, 157,\n\t\t228, 97, 14, 76, 91, 106, 44, 211, 180, 50, 160, 233, 136,\n\t\t139, 162, 99, 243, 72, 48, 157, 1, 182, 121, 219, 97, 110,\n\t\t108, 152, 228, 144, 140, 67, 203, 11, 48, 253, 250, 217, 168,\n\t\t20, 149, 25, 52, 184, 224, 178, 50, 221, 82, 77, 65, 71, 106,\n\t\t52, 106, 25, 158, 73, 38, 72, 162, 50, 154, 171, 2, 194, 68,\n\t\t168, 100, 76, 181, 98, 105, 39, 85, 83, 41, 20, 75, 67, 46,\n\t\t99, 181, 78, 53, 164, 138, 154, 153, 76, 58, 238, 61, 17,\n\t\t19, 150, 250, 186, 35, 193, 178, 94, 14, 44, 45, 115, 37,\n\t\t193, 244, 38, 74, 84, 5, 184, 198, 251, 13, 116, 13, 117,\n\t\t27, 92, 149, 173, 131, 58, 81, 41, 180, 99, 230, 175, 196,\n\t\t178, 140, 90, 150, 25, 26, 43, 53, 238, 184, 162, 96, 122,\n\t\t28, 150, 154, 75, 219, 74, 88, 1, 154, 81, 71, 199, 104, 172,\n\t\t68, 218, 226, 150, 9, 158, 244, 45, 172, 219, 40, 7, 151,\n\t\t64, 244, 60, 158, 242, 212, 230, 61, 38, 120, 38, 35, 1, 35,\n\t\t59, 168, 97, 2, 210, 130, 238, 215, 130, 207, 55, 134, 53,\n\t\t62, 80, 25, 203, 71, 51, 234, 198, 210, 86, 149, 77, 65, 218,\n\t\t22, 151, 238, 18, 78, 120, 10, 42, 228, 5, 203, 160, 87, 176,\n\t\t210, 45, 200, 24, 116, 139, 165, 238, 33, 106, 185, 180, 20,\n\t\t82, 110, 135, 198, 66, 25, 197, 44, 25, 79, 153, 78, 135,\n\t\t35, 102, 236, 134, 212, 153, 3, 90, 10, 54, 11, 75, 86, 25,\n\t\t160, 198, 170, 178, 61, 82, 218, 233, 7, 190, 250, 92, 240,\n\t\t45, 53, 66, 8, 7, 32, 177, 131, 36, 135, 137, 86, 245, 96,\n\t\t134, 115, 193, 143, 160, 239, 214, 51, 74, 184, 78, 4, 12,\n\t\t252, 122, 206, 5, 191, 234, 115, 193, 27, 66, 35, 44, 31,\n\t\t172, 192, 88, 174, 100, 35, 247, 185, 28, 169, 6, 247, 18,\n\t\t173, 140, 201, 25, 215, 134, 196, 76, 246, 152, 214, 106,\n\t\t234, 95, 219, 175, 161, 127, 105, 167, 198, 85, 217, 220,\n\t\t119, 107, 26, 154, 156, 105, 104, 193, 122, 201, 100, 218,\n\t\t73, 84, 81, 106, 48, 102, 27, 172, 39, 130, 21, 108, 225,\n\t\t117, 52, 227, 35, 75, 5, 176, 17, 29, 113, 13, 4, 102, 208,\n\t\t133, 25, 68, 70, 48, 147, 31, 182, 88, 223, 106, 206, 100,\n\t\t38, 32, 44, 5, 147, 48, 72, 152, 0, 153, 50, 237, 172, 173,\n\t\t165, 153, 76, 85, 209, 78, 84, 81, 184, 197, 42, 88, 38, 193,\n\t\t246, 230, 83, 83, 149, 27, 83, 230, 250, 214, 214, 96, 167,\n\t\t0, 118, 104, 114, 85, 150, 92, 102, 81, 194, 180, 109, 141,\n\t\t148, 72, 65, 247, 235, 75, 164, 74, 144, 221, 36, 103, 218,\n\t\t45, 156, 30, 212, 198, 22, 105, 176, 90, 145, 49, 204, 104,\n\t\t162, 50, 211, 105, 222, 103, 186, 110, 243, 69, 57, 19, 163,\n\t\t174, 205, 171, 34, 182, 44, 25, 183, 172, 86, 101, 62, 107,\n\t\t85, 165, 223, 40, 2, 10, 37, 67, 191, 15, 6, 190, 140, 204,\n\t\t193, 202, 77, 81, 37, 221, 86, 233, 39, 218, 217, 141, 235,\n\t\t73, 74, 180, 49, 36, 79, 211, 78, 92, 9, 145, 43, 45, 251,\n\t\t9, 104, 203, 71, 60, 97, 22, 86, 114, 38, 211, 168, 84, 92,\n\t\t218, 122, 246, 151, 23, 20, 222, 32, 22, 228, 170, 92, 188,\n\t\t235, 198, 190, 90, 47, 81, 61, 247, 190, 254, 182, 45, 154,\n\t\t186, 201, 45, 170, 170, 220, 250, 144, 95, 222, 76, 168, 24,\n\t\t90, 83, 13, 50, 201, 67, 203, 204, 216, 180, 70, 92, 88, 208,\n\t\t221, 88, 115, 24, 37, 204, 64, 109, 13, 198, 173, 79, 232,\n\t\t252, 146, 161, 130, 203, 177, 243, 34, 85, 26, 142, 4, 51,\n\t\t99, 146, 84, 150, 38, 170, 156, 117, 75, 86, 130, 78, 4, 47,\n\t\t169, 97, 19, 104, 213, 83, 67, 99, 166, 77, 219, 123, 148,\n\t\t74, 212, 87, 37, 134, 198, 106, 62, 6, 155, 107, 85, 101,\n\t\t121, 183, 146, 41, 104, 193, 37, 132, 150, 197, 2, 194, 130,\n\t\t101, 60, 9, 173, 174, 146, 113, 175, 80, 18, 102, 81, 204,\n\t\t133, 232, 37, 76, 67, 61, 1, 157, 26, 86, 101, 163, 243, 198,\n\t\t92, 67, 63, 246, 118, 226, 156, 145, 52, 212, 40, 109, 187,\n\t\t174, 168, 109, 198, 163, 170, 236, 128, 156, 128, 80, 37,\n\t\t208, 74, 166, 42, 204, 216, 4, 132, 243, 62, 182, 109, 184,\n\t\t133, 130, 149, 157, 170, 136, 53, 8, 193, 194, 146, 25, 11,\n\t\t93, 225, 26, 141, 43, 17, 183, 221, 28, 68, 69, 218, 55, 22,\n\t\t108, 174, 76, 162, 74, 232, 152, 138, 91, 55, 87, 52, 6, 33,\n\t\t90, 137, 26, 141, 0, 58, 185, 50, 165, 243, 101, 93, 86, 196,\n\t\t149, 96, 50, 129, 86, 1, 233, 152, 219, 254, 200, 53, 6, 58,\n\t\t58, 0, 150, 198, 0, 186, 147, 55, 86, 84, 239, 251, 26, 175,\n\t\t250, 93, 18, 165, 170, 138, 55, 150, 120, 81, 211, 44, 241,\n\t\t162, 202, 45, 241, 162, 236, 70, 220, 171, 53, 245, 102, 247,\n\t\t176, 217, 236, 30, 187, 205, 222, 60, 49, 149, 237, 20, 204,\n\t\t216, 170, 178, 37, 88, 233, 46, 126, 41, 108, 171, 80, 49,\n\t\t23, 208, 59, 88, 41, 219, 180, 83, 195, 122, 158, 77, 201,\n\t\t165, 4, 221, 170, 173, 42, 52, 5, 23, 16, 142, 180, 154, 74,\n\t\t82, 64, 222, 206, 88, 1, 37, 75, 59, 99, 152, 197, 138, 233,\n\t\t116, 201, 197, 146, 200, 59, 46, 208, 144, 118, 44, 232, 130,\n\t\t75, 38, 168, 11, 20, 93, 13, 165, 152, 69, 76, 136, 37, 161,\n\t\t146, 218, 93, 120, 235, 163, 137, 86, 101, 223, 85, 137, 98,\n\t\t205, 100, 146, 187, 237, 198, 229, 152, 58, 39, 215, 95, 240,\n\t\t46, 125, 83, 149, 160, 77, 162, 121, 105, 187, 166, 138, 107,\n\t\t212, 2, 205, 12, 232, 65, 89, 29, 58, 36, 32, 42, 57, 36,\n\t\t208, 43, 184, 107, 212, 109, 225, 149, 77, 88, 251, 171, 206,\n\t\t220, 41, 173, 58, 95, 22, 193, 186, 229, 50, 171, 184, 201,\n\t\t65, 183, 180, 74, 198, 96, 183, 207, 29, 209, 194, 14, 60,\n\t\t236, 106, 58, 63, 63, 171, 87, 83, 86, 229, 213, 31, 117,\n\t\t51, 223, 114, 99, 82, 186, 87, 59, 17, 183, 213, 188, 211,\n\t\t48, 48, 131, 30, 8, 193, 75, 195, 77, 148, 111, 194, 73, 79,\n\t\t27, 179, 105, 51, 108, 182, 53, 86, 212, 55, 154, 240, 80,\n\t\t11, 189, 18, 228, 92, 239, 125, 122, 35, 56, 95, 91, 50, 99,\n\t\t86, 235, 189, 83, 43, 125, 159, 150, 183, 104, 170, 114, 219,\n\t\t22, 217, 15, 174, 11, 149, 86, 145, 227, 23, 189, 82, 85,\n\t\t50, 245, 176, 159, 42, 33, 152, 174, 213, 186, 42, 1, 60,\n\t\t236, 204, 92, 7, 106, 157, 179, 77, 175, 155, 170, 90, 231,\n\t\t184, 14, 116, 92, 225, 198, 190, 236, 55, 41, 19, 101, 206,\n\t\t124, 79, 134, 11, 114, 85, 174, 212, 82, 161, 170, 198, 23,\n\t\t46, 45, 42, 170, 114, 213, 139, 178, 42, 64, 243, 164, 30,\n\t\t201, 22, 77, 85, 214, 206, 221, 68, 85, 217, 111, 144, 95,\n\t\t131, 17, 20, 76, 0, 117, 5, 49, 149, 164, 133, 82, 178, 237,\n\t\t24, 21, 159, 0, 137, 171, 108, 235, 20, 185, 21, 239, 165,\n\t\t202, 206, 67, 236, 52, 7, 16, 137, 139, 177, 93, 193, 53,\n\t\t243, 195, 26, 154, 146, 37, 16, 153, 188, 178, 86, 192, 242,\n\t\t220, 231, 204, 151, 164, 146, 220, 31, 204, 217, 217, 82,\n\t\t166, 89, 90, 53, 241, 148, 149, 29, 193, 100, 86, 177, 12,\n\t\t200, 136, 173, 119, 226, 138, 139, 148, 203, 44, 76, 114,\n\t\t46, 82, 82, 178, 41, 77, 170, 24, 66, 87, 152, 182, 134, 100,\n\t\t150, 8, 32, 9, 211, 212, 178, 117, 78, 173, 6, 232, 164, 204,\n\t\t178, 152, 153, 102, 78, 203, 116, 212, 245, 96, 170, 116,\n\t\t218, 243, 8, 214, 19, 16, 203, 245, 93, 199, 20, 125, 104,\n\t\t169, 111, 121, 86, 52, 168, 23, 163, 30, 125, 173, 103, 85,\n\t\t202, 85, 13, 61, 125, 170, 155, 244, 251, 86, 240, 145, 51,\n\t\t9, 153, 13, 26, 163, 150, 202, 38, 121, 223, 135, 131, 200,\n\t\t199, 249, 118, 206, 141, 85, 122, 214, 118, 52, 146, 203,\n\t\t172, 107, 4, 79, 65, 155, 40, 239, 214, 230, 200, 132, 93,\n\t\t217, 64, 209, 60, 114, 168, 34, 110, 141, 42, 27, 43, 65,\n\t\t172, 157, 245, 98, 46, 85, 82, 9, 166, 13, 45, 69, 149, 117,\n\t\t37, 76, 141, 127, 9, 157, 242, 17, 239, 37, 76, 184, 187,\n\t\t86, 233, 158, 115, 196, 245, 102, 14, 173, 102, 38, 239, 59,\n\t\t50, 146, 106, 85, 150, 160, 251, 37, 115, 113, 52, 214, 149,\n\t\t201, 135, 49, 215, 54, 79, 221, 14, 98, 99, 232, 213, 76,\n\t\t129, 105, 96, 13, 105, 40, 249, 92, 233, 162, 83, 207, 170,\n\t\t204, 121, 75, 53, 26, 117, 231, 80, 182, 99, 94, 47, 65, 92,\n\t\t153, 213, 68, 40, 3, 169, 91, 68, 183, 152, 92, 102, 125,\n\t\t147, 195, 24, 132, 183, 135, 110, 226, 155, 20, 149, 89, 78,\n\t\t234, 247, 204, 121, 22, 53, 57, 47, 251, 62, 180, 24, 72,\n\t\t52, 216, 94, 161, 172, 210, 190, 221, 190, 113, 75, 106, 163,\n\t\t9, 135, 105, 215, 39, 9, 49, 48, 27, 78, 64, 86, 134, 22,\n\t\t46, 182, 22, 160, 147, 74, 207, 250, 86, 51, 105, 50, 112,\n\t\t177, 116, 121, 1, 187, 25, 29, 248, 234, 77, 96, 232, 187,\n\t\t167, 26, 220, 171, 111, 56, 77, 173, 54, 86, 171, 49, 12,\n\t\t23, 112, 52, 217, 34, 229, 45, 9, 149, 5, 221, 171, 91, 23,\n\t\t96, 76, 203, 128, 158, 128, 238, 250, 1, 184, 241, 245, 60,\n\t\t242, 100, 149, 196, 144, 186, 53, 224, 178, 101, 170, 120,\n\t\t202, 102, 131, 152, 89, 11, 122, 22, 141, 42, 33, 118, 206,\n\t\t5, 155, 107, 128, 200, 45, 187, 5, 109, 54, 234, 56, 50, 182,\n\t\t60, 23, 154, 187, 195, 185, 12, 69, 105, 103, 195, 66, 85,\n\t\t6, 106, 110, 4, 186, 195, 163, 164, 210, 70, 233, 129, 138,\n\t\t29, 201, 142, 50, 173, 170, 114, 169, 17, 42, 233, 197, 190,\n\t\t177, 60, 25, 207, 156, 149, 250, 116, 72, 194, 48, 102, 62,\n\t\t66, 71, 198, 185, 254, 229, 92, 85, 186, 206, 212, 28, 35,\n\t\t180, 75, 155, 178, 235, 207, 112, 83, 4, 153, 118, 55, 164,\n\t\t174, 39, 105, 46, 64, 244, 106, 186, 230, 44, 179, 230, 113,\n\t\t38, 225, 198, 40, 109, 250, 94, 18, 252, 16, 211, 105, 93,\n\t\t201, 148, 42, 25, 15, 54, 233, 29, 232, 230, 97, 96, 9, 96,\n\t\t59, 25, 110, 16, 100, 55, 175, 75, 27, 146, 247, 244, 155,\n\t\t162, 159, 234, 77, 209, 187, 254, 14, 151, 105, 101, 172,\n\t\t158, 181, 93, 138, 83, 114, 217, 117, 87, 103, 136, 134, 20,\n\t\t204, 197, 83, 79, 123, 189, 121, 248, 244, 101, 158, 58, 184,\n\t\t44, 102, 30, 81, 54, 200, 117, 204, 178, 229, 5, 193, 140,\n\t\t193, 182, 115, 102, 114, 203, 178, 149, 198, 147, 49, 17,\n\t\t177, 36, 1, 99, 194, 88, 112, 153, 174, 122, 143, 17, 165,\n\t\t80, 71, 97, 174, 100, 67, 153, 235, 68, 177, 29, 107, 198,\n\t\t133, 128, 107, 48, 99, 184, 177, 124, 2, 62, 189, 5, 183,\n\t\t107, 34, 51, 51, 22, 10, 115, 28, 243, 78, 155, 213, 97, 34,\n\t\t154, 251, 197, 200, 79, 84, 169, 193, 5, 102, 154, 2, 27,\n\t\t13, 183, 220, 239, 9, 53, 141, 38, 220, 112, 37, 253, 162,\n\t\t152, 156, 141, 97, 184, 225, 127, 93, 82, 48, 96, 105, 234,\n\t\t114, 153, 200, 165, 163, 27, 130, 227, 237, 245, 54, 172,\n\t\t135, 223, 225, 105, 20, 179, 52, 131, 54, 79, 253, 205, 21,\n\t\t155, 131, 46, 84, 1, 142, 191, 57, 3, 62, 106, 81, 177, 213,\n\t\t136, 183, 212, 117, 134, 179, 125, 81, 209, 212, 90, 93, 212,\n\t\t121, 131, 110, 153, 220, 121, 100, 26, 51, 155, 183, 75, 149,\n\t\t38, 204, 216, 229, 41, 151, 169, 154, 70, 5, 91, 231, 5, 63,\n\t\t4, 27, 50, 151, 94, 94, 106, 100, 13, 206, 203, 66, 215, 51,\n\t\t154, 36, 231, 101, 215, 72, 53, 29, 9, 55, 252, 202, 130,\n\t\t52, 92, 56, 139, 83, 178, 211, 72, 166, 227, 8, 176, 51, 129,\n\t\t174, 247, 147, 158, 123, 152, 153, 76, 188, 202, 25, 194,\n\t\t148, 217, 36, 31, 248, 233, 85, 149, 55, 150, 190, 23, 184,\n\t\t244, 117, 53, 212, 143, 147, 82, 169, 150, 15, 29, 198, 113,\n\t\t141, 132, 139, 90, 11, 178, 237, 168, 7, 19, 118, 187, 80,\n\t\t50, 107, 124, 158, 243, 241, 206, 239, 93, 93, 231, 121, 212,\n\t\t213, 116, 53, 143, 186, 154, 178, 42, 87, 235, 164, 52, 218,\n\t\t76, 79, 186, 46, 243, 240, 44, 115, 176, 169, 140, 242, 69,\n\t\t97, 178, 99, 179, 137, 5, 254, 245, 175, 90, 215, 145, 157,\n\t\t255, 162, 245, 93, 217, 254, 47, 106, 223, 25, 11, 90, 50,\n\t\t225, 194, 132, 39, 112, 71, 108, 213, 52, 172, 193, 109, 53,\n\t\t88, 79, 114, 38, 51, 47, 108, 243, 105, 84, 52, 63, 135, 241,\n\t\t81, 176, 86, 213, 249, 166, 159, 195, 12, 138, 37, 1, 19,\n\t\t16, 190, 158, 111, 163, 22, 171, 210, 15, 219, 115, 70, 103,\n\t\t211, 75, 155, 71, 25, 238, 198, 210, 2, 175, 101, 194, 133,\n\t\t148, 184, 97, 88, 75, 155, 57, 149, 95, 208, 69, 238, 91,\n\t\t42, 237, 188, 181, 13, 61, 25, 239, 153, 156, 131, 240, 253,\n\t\t232, 213, 249, 128, 127, 222, 178, 36, 111, 108, 214, 223,\n\t\t225, 142, 20, 123, 123, 240, 155, 199, 117, 177, 177, 72,\n\t\t31, 16, 135, 142, 139, 196, 76, 136, 200, 21, 203, 181, 247,\n\t\t216, 144, 7, 177, 154, 138, 218, 171, 8, 17, 38, 57, 24, 51,\n\t\t240, 101, 20, 115, 231, 113, 250, 141, 224, 86, 182, 87, 227,\n\t\t177, 231, 26, 53, 148, 254, 136, 168, 22, 74, 54, 149, 77,\n\t\t245, 131, 21, 128, 108, 212, 90, 169, 113, 39, 173, 138, 216,\n\t\t209, 130, 225, 72, 169, 205, 151, 119, 51, 37, 70, 30, 245,\n\t\t115, 71, 237, 103, 81, 89, 37, 227, 238, 193, 138, 167, 41,\n\t\t119, 36, 166, 89, 57, 183, 215, 7, 126, 6, 34, 11, 82, 114,\n\t\t179, 60, 81, 66, 192, 108, 179, 33, 38, 4, 232, 140, 131,\n\t\t233, 196, 222, 46, 121, 74, 98, 181, 30, 198, 106, 29, 204,\n\t\t234, 70, 58, 29, 21, 144, 242, 132, 9, 26, 87, 218, 101, 177,\n\t\t165, 169, 4, 152, 229, 13, 211, 173, 93, 247, 210, 166, 236,\n\t\t124, 98, 55, 229, 44, 147, 202, 128, 33, 169, 100, 161, 99,\n\t\t216, 179, 161, 47, 163, 145, 96, 54, 134, 180, 230, 107, 77,\n\t\t219, 43, 139, 130, 55, 145, 17, 215, 198, 186, 46, 13, 230,\n\t\t89, 169, 83, 47, 111, 8, 102, 86, 196, 74, 244, 27, 39, 231,\n\t\t238, 13, 93, 112, 52, 243, 70, 90, 165, 27, 157, 13, 75, 46,\n\t\t132, 217, 94, 234, 77, 151, 30, 197, 202, 145, 219, 195, 255,\n\t\t141, 206, 155, 70, 169, 85, 2, 105, 165, 193, 12, 29, 199,\n\t\t241, 209, 99, 196, 140, 109, 155, 66, 185, 85, 108, 155, 153,\n\t\t35, 142, 208, 174, 173, 203, 244, 23, 252, 33, 157, 112, 38,\n\t\t66, 87, 152, 238, 148, 105, 200, 93, 164, 111, 77, 253, 153,\n\t\t96, 184, 30, 105, 54, 235, 196, 106, 189, 118, 231, 243, 96,\n\t\t150, 42, 107, 134, 115, 161, 38, 128, 137, 170, 146, 188,\n\t\t149, 42, 201, 44, 208, 84, 77, 160, 14, 183, 185, 242, 180,\n\t\t122, 219, 162, 16, 121, 126, 181, 178, 69, 85, 153, 52, 244,\n\t\t65, 196, 135, 114, 19, 229, 32, 220, 40, 134, 37, 211, 44,\n\t\t201, 43, 11, 81, 172, 214, 7, 37, 168, 210, 209, 97, 166,\n\t\t245, 172, 87, 242, 44, 155, 69, 49, 147, 227, 150, 230, 113,\n\t\t172, 100, 168, 85, 101, 161, 99, 0, 82, 103, 233, 212, 39,\n\t\t66, 62, 87, 142, 166, 46, 143, 181, 172, 132, 161, 63, 238,\n\t\t136, 220, 182, 119, 214, 93, 75, 133, 154, 56, 18, 233, 9,\n\t\t119, 61, 156, 222, 148, 75, 136, 60, 225, 88, 154, 111, 182,\n\t\t250, 78, 35, 58, 154, 38, 89, 101, 107, 14, 230, 205, 169,\n\t\t129, 206, 81, 212, 27, 52, 81, 89, 77, 214, 32, 229, 118,\n\t\t224, 209, 72, 115, 112, 131, 244, 66, 147, 143, 64, 93, 201,\n\t\t61, 87, 55, 225, 89, 71, 13, 37, 151, 7, 88, 67, 89, 189,\n\t\t143, 168, 213, 181, 19, 169, 233, 31, 203, 26, 192, 235, 134,\n\t\t140, 123, 111, 59, 22, 158, 55, 118, 93, 224, 245, 107, 183,\n\t\t28, 107, 197, 124, 152, 139, 172, 139, 124, 97, 172, 149,\n\t\t42, 28, 237, 22, 99, 191, 7, 182, 109, 194, 200, 2, 75, 92,\n\t\t30, 158, 228, 149, 78, 220, 218, 114, 105, 6, 62, 137, 77,\n\t\t108, 148, 114, 147, 208, 68, 171, 105, 232, 10, 73, 83, 158,\n\t\t64, 215, 21, 209, 136, 79, 230, 72, 85, 186, 227, 145, 146,\n\t\t80, 3, 195, 215, 123, 30, 248, 248, 93, 235, 236, 84, 245,\n\t\t83, 165, 116, 237, 192, 210, 174, 199, 174, 183, 45, 56, 88,\n\t\t49, 97, 218, 35, 96, 206, 84, 233, 72, 171, 172, 147, 49,\n\t\t19, 149, 85, 81, 182, 253, 186, 128, 25, 100, 26, 88, 205,\n\t\t8, 152, 220, 182, 40, 68, 254, 241, 94, 14, 130, 39, 170,\n\t\t180, 160, 187, 99, 62, 229, 81, 204, 117, 218, 117, 84, 218,\n\t\t87, 90, 222, 64, 117, 245, 86, 1, 133, 210, 179, 195, 182,\n\t\t58, 244, 122, 174, 151, 23, 124, 249, 148, 77, 96, 251, 213,\n\t\t100, 239, 224, 107, 157, 183, 133, 229, 5, 236, 125, 131,\n\t\t84, 182, 126, 75, 187, 100, 2, 172, 133, 118, 201, 180, 219,\n\t\t154, 189, 18, 116, 2, 210, 178, 12, 150, 75, 173, 60, 131,\n\t\t118, 142, 72, 179, 194, 165, 157, 192, 75, 27, 106, 21, 43,\n\t\t27, 234, 74, 128, 94, 242, 101, 148, 168, 34, 230, 18, 210,\n\t\t149, 90, 204, 149, 230, 135, 148, 180, 76, 52, 247, 39, 160,\n\t\t173, 119, 41, 38, 201, 149, 18, 125, 147, 104, 152, 166, 218,\n\t\t17, 200, 190, 201, 21, 68, 254, 179, 128, 9, 205, 184, 18,\n\t\t162, 223, 120, 9, 183, 151, 194, 154, 218, 248, 210, 117,\n\t\t188, 229, 242, 34, 86, 184, 244, 72, 57, 154, 50, 2, 209,\n\t\t182, 74, 137, 88, 173, 183, 172, 201, 185, 182, 237, 41, 19,\n\t\t238, 233, 214, 180, 246, 94, 76, 102, 122, 230, 83, 250, 41,\n\t\t155, 133, 204, 10, 102, 66, 54, 101, 58, 237, 198, 44, 25,\n\t\t251, 100, 125, 16, 195, 33, 238, 70, 81, 233, 137, 203, 63,\n\t\t101, 22, 250, 60, 177, 29, 87, 158, 65, 116, 18, 38, 37, 139,\n\t\t185, 105, 78, 87, 234, 36, 170, 147, 168, 100, 108, 25, 23,\n\t\t75, 137, 146, 9, 7, 157, 65, 212, 28, 5, 170, 49, 135, 126,\n\t\t125, 137, 98, 110, 161, 227, 86, 208, 135, 254, 148, 103,\n\t\t222, 247, 250, 88, 154, 105, 86, 230, 97, 202, 15, 29, 154,\n\t\t173, 164, 154, 141, 172, 63, 207, 174, 207, 102, 104, 170,\n\t\t171, 98, 232, 138, 200, 88, 0, 81, 50, 217, 111, 172, 207,\n\t\t123, 234, 38, 15, 151, 86, 179, 164, 145, 230, 132, 162, 223,\n\t\t36, 251, 46, 168, 247, 155, 236, 222, 225, 58, 92, 112, 57,\n\t\t81, 60, 129, 237, 139, 66, 84, 31, 223, 172, 214, 71, 3, 11,\n\t\t78, 125, 201, 107, 252, 199, 36, 91, 105, 168, 91, 171, 89,\n\t\t10, 29, 113, 33, 186, 174, 136, 82, 205, 203, 254, 200, 57,\n\t\t116, 237, 215, 145, 142, 184, 201, 219, 35, 81, 153, 28, 210,\n\t\t158, 63, 23, 244, 187, 104, 117, 203, 135, 48, 79, 24, 252,\n\t\t89, 116, 196, 70, 142, 239, 47, 53, 66, 205, 254, 77, 175,\n\t\t17, 13, 103, 237, 76, 243, 130, 37, 64, 51, 205, 101, 199,\n\t\t21, 222, 136, 61, 136, 129, 21, 203, 27, 40, 50, 83, 96, 182,\n\t\t239, 101, 239, 214, 77, 141, 205, 193, 138, 75, 187, 186,\n\t\t128, 157, 83, 209, 166, 87, 107, 236, 6, 244, 218, 250, 25,\n\t\t171, 100, 86, 193, 182, 5, 220, 60, 186, 178, 168, 114, 174,\n\t\t188, 238, 137, 67, 174, 39, 229, 130, 253, 15, 189, 60, 55,\n\t\t255, 165, 205, 239, 105, 110, 0, 254, 92, 196, 128, 237, 231,\n\t\t60, 203, 69, 125, 62, 220, 206, 149, 141, 108, 21, 135, 185,\n\t\t178, 32, 194, 3, 46, 61, 164, 99, 110, 76, 215, 21, 245, 104,\n\t\t61, 114, 111, 171, 135, 24, 10, 86, 101, 121, 207, 151, 190,\n\t\t194, 160, 134, 117, 103, 27, 189, 171, 62, 16, 85, 150, 185,\n\t\t76, 42, 97, 218, 110, 126, 2, 75, 55, 41, 164, 103, 1, 173,\n\t\t154, 77, 134, 5, 164, 76, 116, 11, 200, 163, 88, 48, 57, 94,\n\t\t113, 72, 43, 225, 89, 27, 204, 192, 116, 10, 37, 43, 23, 114,\n\t\t135, 133, 210, 214, 37, 171, 96, 172, 128, 65, 125, 210, 226,\n\t\t106, 130, 238, 56, 91, 118, 198, 215, 117, 9, 193, 136, 201,\n\t\t100, 230, 83, 3, 201, 227, 65, 147, 49, 120, 15, 49, 244,\n\t\t7, 70, 142, 215, 243, 9, 19, 203, 181, 148, 66, 201, 180,\n\t\t179, 187, 193, 162, 77, 182, 13, 75, 163, 68, 207, 58, 238,\n\t\t234, 150, 171, 223, 156, 181, 69, 19, 38, 187, 27, 182, 218,\n\t\t68, 218, 216, 123, 11, 37, 92, 247, 152, 4, 65, 76, 201, 218,\n\t\t166, 20, 202, 38, 121, 215, 148, 218, 31, 2, 57, 55, 195,\n\t\t138, 114, 184, 241, 41, 200, 115, 242, 249, 1, 255, 124, 208,\n\t\t29, 83, 57, 251, 54, 208, 51, 62, 63, 114, 177, 172, 109,\n\t\t166, 188, 40, 64, 15, 253, 213, 205, 76, 169, 148, 232, 89,\n\t\t190, 65, 68, 44, 215, 144, 134, 86, 41, 155, 47, 205, 191,\n\t\t47, 184, 94, 37, 249, 112, 2, 137, 85, 186, 73, 19, 150, 106,\n\t\t138, 19, 185, 52, 129, 203, 108, 105, 51, 226, 251, 253, 206,\n\t\t184, 139, 214, 96, 114, 144, 160, 187, 172, 44, 107, 170,\n\t\t69, 153, 85, 133, 115, 89, 208, 247, 161, 85, 3, 75, 125,\n\t\t48, 101, 92, 182, 147, 250, 11, 91, 223, 93, 155, 227, 147,\n\t\t174, 195, 137, 174, 207, 187, 117, 100, 120, 10, 43, 73, 206,\n\t\t116, 230, 243, 111, 235, 79, 35, 123, 41, 215, 144, 56, 100,\n\t\t6, 169, 102, 211, 168, 84, 98, 150, 41, 217, 175, 63, 17,\n\t\t248, 211, 191, 190, 96, 51, 79, 25, 84, 85, 214, 167, 234,\n\t\t254, 163, 72, 91, 113, 225, 230, 147, 150, 74, 149, 45, 147,\n\t\t179, 18, 204, 192, 207, 170, 26, 69, 130, 143, 32, 180, 0,\n\t\t54, 239, 249, 210, 251, 132, 161, 205, 235, 56, 89, 48, 51,\n\t\t54, 67, 171, 217, 104, 196, 147, 200, 239, 134, 225, 156,\n\t\t14, 73, 99, 65, 55, 228, 168, 228, 201, 184, 42, 49, 75, 41,\n\t\t147, 227, 60, 140, 121, 44, 96, 24, 87, 134, 75, 31, 62, 121,\n\t\t1, 52, 225, 118, 182, 180, 201, 13, 157, 107, 91, 158, 127,\n\t\t238, 107, 228, 208, 127, 29, 29, 164, 57, 211, 5, 75, 114,\n\t\t54, 214, 108, 219, 150, 163, 130, 200, 194, 186, 29, 52, 31,\n\t\t20, 61, 3, 154, 127, 93, 44, 69, 101, 134, 163, 74, 74, 159,\n\t\t155, 185, 198, 218, 153, 42, 43, 205, 138, 48, 103, 133, 97,\n\t\t173, 156, 205, 198, 76, 208, 3, 144, 242, 165, 3, 170, 242,\n\t\t249, 224, 52, 119, 36, 58, 28, 51, 22, 179, 214, 216, 113,\n\t\t74, 214, 17, 76, 166, 110, 171, 117, 11, 198, 69, 20, 87,\n\t\t98, 220, 46, 64, 42, 205, 242, 86, 161, 204, 193, 10, 176,\n\t\t42, 150, 74, 102, 44, 27, 49, 205, 153, 228, 166, 8, 253,\n\t\t9, 209, 74, 41, 152, 163, 50, 163, 104, 170, 180, 35, 216,\n\t\t180, 84, 66, 180, 92, 17, 229, 212, 217, 244, 208, 21, 158,\n\t\t218, 58, 246, 26, 30, 172, 52, 147, 195, 230, 167, 2, 205,\n\t\t132, 52, 210, 252, 155, 75, 104, 84, 50, 54, 203, 243, 147,\n\t\t126, 165, 124, 102, 183, 234, 215, 206, 17, 227, 196, 237,\n\t\t64, 183, 215, 231, 171, 153, 178, 9, 79, 187, 102, 38, 89,\n\t\t166, 178, 10, 66, 235, 58, 222, 179, 74, 115, 30, 101, 204,\n\t\t66, 107, 194, 115, 166, 217, 252, 199, 2, 133, 163, 194, 51,\n\t\t46, 163, 25, 147, 217, 176, 161, 131, 145, 247, 133, 53, 41,\n\t\t76, 129, 165, 189, 132, 21, 165, 179, 41, 153, 146, 132, 217,\n\t\t208, 31, 173, 247, 234, 220, 184, 80, 74, 118, 107, 104, 42,\n\t\t89, 243, 181, 116, 239, 169, 237, 26, 236, 39, 169, 202, 90,\n\t\t169, 102, 153, 146, 75, 46, 106, 250, 211, 62, 31, 124, 219,\n\t\t105, 37, 51, 80, 178, 62, 22, 79, 204, 164, 63, 226, 198,\n\t\t70, 154, 113, 3, 105, 152, 229, 202, 216, 86, 206, 220, 38,\n\t\t238, 228, 76, 86, 99, 206, 242, 94, 206, 108, 52, 245, 7,\n\t\t118, 173, 156, 59, 54, 17, 186, 52, 70, 133, 185, 210, 6,\n\t\t6, 62, 37, 137, 82, 86, 176, 12, 218, 185, 158, 77, 36, 103,\n\t\t212, 217, 111, 199, 127, 143, 96, 92, 14, 37, 216, 169, 210,\n\t\t227, 104, 234, 119, 191, 114, 123, 175, 173, 43, 41, 29, 49,\n\t\t49, 137, 115, 40, 43, 158, 235, 68, 222, 14, 221, 254, 53,\n\t\t45, 83, 242, 212, 153, 185, 226, 46, 227, 246, 7, 137, 109,\n\t\t31, 222, 149, 174, 217, 58, 151, 7, 42, 13, 233, 96, 162,\n\t\t125, 198, 230, 185, 49, 117, 41, 119, 223, 59, 139, 58, 1,\n\t\t91, 106, 166, 11, 152, 207, 119, 151, 55, 103, 207, 13, 89,\n\t\t54, 179, 233, 224, 246, 102, 54, 253, 201, 147, 75, 113, 216,\n\t\t100, 182, 180, 49, 195, 190, 74, 39, 133, 66, 37, 154, 217,\n\t\t142, 255, 132, 87, 25, 214, 114, 73, 154, 210, 131, 18, 180,\n\t\t241, 73, 159, 178, 121, 183, 84, 42, 114, 20, 173, 104, 187,\n\t\t135, 98, 53, 237, 105, 40, 171, 88, 112, 231, 10, 76, 161,\n\t\t178, 21, 11, 69, 9, 218, 59, 230, 200, 69, 187, 229, 69, 133,\n\t\t80, 211, 206, 68, 89, 136, 102, 192, 194, 169, 243, 6, 52,\n\t\t102, 241, 108, 232, 10, 159, 92, 113, 150, 65, 55, 230, 42,\n\t\t103, 110, 73, 104, 44, 84, 182, 249, 27, 130, 148, 205, 54,\n\t\t207, 75, 167, 0, 227, 94, 194, 100, 234, 221, 58, 180, 220,\n\t\t211, 202, 14, 19, 102, 242, 72, 67, 198, 157, 35, 217, 62,\n\t\t255, 73, 195, 194, 49, 82, 39, 173, 138, 210, 221, 28, 206,\n\t\t65, 52, 226, 26, 58, 224, 8, 151, 4, 27, 102, 124, 100, 205,\n\t\t160, 246, 199, 73, 14, 160, 77, 243, 179, 158, 105, 206, 205,\n\t\t24, 102, 13, 147, 129, 74, 171, 18, 122, 62, 234, 11, 231,\n\t\t146, 182, 111, 194, 77, 22, 156, 85, 220, 50, 61, 240, 209,\n\t\t59, 138, 181, 26, 131, 236, 231, 62, 179, 143, 193, 165, 146,\n\t\t222, 204, 220, 130, 164, 109, 158, 240, 68, 128, 9, 121, 38,\n\t\t148, 106, 21, 220, 90, 144, 237, 162, 202, 162, 92, 217, 174,\n\t\t102, 41, 247, 187, 119, 184, 129, 162, 250, 124, 206, 243,\n\t\t227, 162, 107, 152, 5, 33, 184, 133, 165, 13, 228, 242, 165,\n\t\t188, 109, 234, 164, 191, 99, 120, 225, 65, 219, 140, 153,\n\t\t245, 198, 57, 230, 46, 207, 173, 47, 145, 84, 58, 229, 73,\n\t\t203, 8, 23, 155, 136, 41, 204, 192, 72, 53, 245, 134, 231,\n\t\t211, 120, 169, 166, 5, 147, 29, 119, 45, 133, 154, 134, 22,\n\t\t100, 6, 173, 218, 130, 93, 204, 19, 134, 90, 205, 138, 142,\n\t\t255, 164, 202, 132, 13, 99, 150, 40, 57, 240, 27, 190, 57,\n\t\t101, 232, 199, 46, 102, 69, 70, 240, 4, 90, 110, 102, 141,\n\t\t51, 97, 46, 121, 50, 175, 49, 247, 221, 27, 231, 18, 137,\n\t\t174, 108, 146, 19, 200, 178, 110, 206, 138, 184, 210, 25,\n\t\t232, 58, 163, 47, 120, 154, 10, 151, 248, 57, 46, 218, 201,\n\t\t93, 238, 152, 51, 219, 202, 149, 77, 85, 214, 117, 158, 34,\n\t\t113, 233, 195, 82, 19, 201, 154, 6, 195, 146, 101, 160, 123,\n\t\t37, 148, 165, 79, 94, 108, 191, 228, 135, 14, 177, 186, 79,\n\t\t195, 250, 136, 180, 57, 100, 93, 221, 34, 249, 195, 142, 58,\n\t\t49, 174, 180, 129, 190, 79, 189, 106, 23, 90, 255, 164, 26,\n\t\t93, 117, 85, 128, 253, 95, 127, 12, 252, 223, 127, 248, 63,\n\t\t129, 11, 8, 121, 89, 128, 253, 95, 196, 53, 191, 200, 174,\n\t\t255, 62, 228, 43, 151, 237, 18, 254, 250, 214, 215, 220, 184,\n\t\t185, 158, 255, 127, 2, 0, 0, 255, 255, 80, 75, 7, 8, 165,\n\t\t242, 94, 118, 148, 126, 1, 0, 104, 217, 2, 0, 80, 75, 3, 4,\n\t\t20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 25, 0, 9, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 115, 111, 108, 105, 100, 45, 57, 48,\n\t\t48, 46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t236, 253, 109, 147, 36, 55, 146, 24, 8, 127, 207, 95, 129,\n\t\t167, 31, 179, 51, 201, 78, 0, 225, 14, 199, 219, 104, 184,\n\t\t186, 211, 172, 86, 182, 102, 91, 39, 217, 237, 74, 103, 250,\n\t\t88, 140, 46, 50, 91, 27, 221, 69, 85, 54, 147, 51, 245, 235,\n\t\t207, 220, 29, 30, 17, 153, 89, 149, 89, 100, 55, 103, 41,\n\t\t59, 25, 217, 149, 17, 8, 188, 56, 28, 14, 192, 1, 127, 251,\n\t\t227, 191, 251, 243, 199, 217, 29, 31, 158, 14, 31, 30, 63,\n\t\t125, 251, 14, 66, 124, 231, 14, 159, 239, 63, 189, 191, 159,\n\t\t31, 63, 61, 124, 251, 238, 211, 227, 187, 127, 247, 55, 187,\n\t\t63, 254, 255, 188, 223, 253, 221, 227, 167, 207, 238, 255,\n\t\t252, 249, 225, 240, 248, 241, 193, 253, 221, 211, 195, 131,\n\t\t203, 161, 5, 112, 223, 253, 197, 253, 31, 223, 63, 126, 250,\n\t\t124, 63, 62, 121, 183, 255, 252, 249, 199, 195, 31, 190, 249,\n\t\t102, 147, 26, 166, 199, 143, 187, 127, 248, 48, 61, 124, 58,\n\t\t92, 201, 241, 205, 172, 57, 190, 249, 158, 171, 255, 87, 127,\n\t\t63, 61, 126, 58, 252, 193, 253, 233, 79, 238, 223, 255, 55,\n\t\t71, 33, 254, 27, 199, 48, 28, 254, 224, 254, 241, 239, 255,\n\t\t193, 253, 167, 191, 251, 7, 7, 1, 254, 141, 251, 211, 227,\n\t\t251, 135, 63, 184, 187, 191, 255, 39, 55, 234, 255, 215, 59,\n\t\t239, 25, 230, 191, 253, 79, 127, 250, 167, 255, 246, 159,\n\t\t255, 131, 59, 28, 127, 112, 255, 249, 191, 252, 251, 127,\n\t\t248, 251, 63, 185, 119, 254, 155, 111, 254, 159, 244, 167,\n\t\t111, 190, 249, 219, 127, 250, 91, 247, 143, 255, 245, 63,\n\t\t114, 13, 223, 124, 243, 31, 254, 175, 119, 238, 29, 131, 244,\n\t\t135, 111, 190, 249, 249, 231, 159, 195, 207, 41, 60, 62, 253,\n\t\t240, 205, 127, 124, 186, 255, 113, 255, 97, 58, 124, 243,\n\t\t143, 255, 245, 63, 126, 195, 25, 255, 246, 159, 254, 246,\n\t\t155, 195, 241, 7, 128, 240, 254, 243, 251, 119, 238, 111,\n\t\t118, 127, 228, 170, 255, 252, 113, 254, 116, 248, 246, 133,\n\t\t242, 24, 99, 228, 252, 239, 52, 203, 31, 254, 60, 127, 248,\n\t\t244, 207, 47, 101, 132, 222, 251, 55, 242, 245, 221, 118,\n\t\t40, 224, 221, 223, 236, 254, 248, 241, 225, 243, 253, 251,\n\t\t251, 207, 247, 127, 179, 251, 211, 211, 195, 253, 231, 135,\n\t\t247, 140, 111, 70, 195, 223, 61, 62, 253, 240, 224, 48, 66,\n\t\t143, 0, 232, 238, 63, 187, 127, 218, 255, 228, 238, 238, 159,\n\t\t28, 130, 131, 242, 7, 232, 127, 136, 32, 223, 119, 238, 223,\n\t\t255, 197, 253, 223, 143, 223, 61, 60, 125, 118, 119, 247,\n\t\t239, 31, 231, 135, 221, 159, 30, 127, 252, 203, 211, 135,\n\t\t31, 246, 159, 221, 191, 154, 254, 181, 219, 142, 236, 238,\n\t\t143, 223, 172, 77, 254, 241, 253, 195, 247, 135, 191, 217,\n\t\t253, 145, 135, 201, 125, 120, 255, 237, 59, 206, 57, 50, 102,\n\t\t38, 1, 255, 143, 143, 243, 135, 247, 239, 220, 254, 241, 233,\n\t\t195, 179, 191, 127, 127, 244, 127, 254, 246, 93, 6, 100, 228,\n\t\t56, 39, 229, 252, 247, 247, 211, 131, 219, 57, 231, 220, 120,\n\t\t253, 248, 97, 254, 139, 86, 181, 144, 83, 86, 130, 210, 218,\n\t\t214, 188, 63, 63, 48, 140, 223, 190, 235, 49, 110, 82, 15,\n\t\t159, 159, 30, 62, 79, 123, 38, 206, 167, 143, 247, 179, 126,\n\t\t249, 233, 211, 135, 207, 7, 255, 227, 195, 147, 127, 248,\n\t\t168, 32, 72, 242, 143, 247, 159, 30, 15, 15, 30, 190, 125,\n\t\t135, 46, 186, 236, 146, 139, 235, 127, 154, 229, 254, 48,\n\t\t61, 124, 250, 252, 237, 59, 162, 166, 9, 239, 31, 70, 138,\n\t\t47, 164, 41, 223, 125, 247, 248, 231, 111, 223, 249, 24, 122,\n\t\t75, 169, 55, 231, 11, 241, 35, 185, 66, 49, 64, 36, 71, 212,\n\t\t2, 97, 53, 80, 222, 63, 60, 205, 31, 62, 61, 248, 207, 251,\n\t\t15, 211, 63, 127, 122, 56, 28, 190, 125, 135, 249, 252, 227,\n\t\t143, 143, 135, 15, 159, 101, 168, 125, 134, 165, 19, 211,\n\t\t227, 251, 7, 255, 116, 255, 233, 135, 135, 111, 223, 253,\n\t\t151, 255, 61, 70, 140, 254, 239, 90, 250, 15, 252, 253, 155,\n\t\t191, 145, 76, 127, 252, 248, 225, 112, 248, 240, 233, 7, 255,\n\t\t195, 252, 151, 31, 247, 75, 170, 190, 201, 95, 255, 233, 254,\n\t\t227, 195, 183, 239, 126, 152, 239, 15, 7, 255, 241, 254, 233,\n\t\t243, 135, 79, 31, 222, 89, 229, 223, 190, 251, 223, 254, 255,\n\t\t127, 254, 62, 198, 248, 111, 223, 185, 221, 251, 111, 223,\n\t\t221, 229, 136, 33, 102, 151, 122, 12, 52, 123, 4, 226, 55,\n\t\t253, 165, 163, 135, 142, 33, 149, 125, 46, 19, 98, 136, 173,\n\t\t55, 23, 29, 69, 231, 161, 134, 14, 17, 229, 153, 226, 196,\n\t\t127, 3, 65, 239, 232, 124, 10, 185, 197, 216, 156, 31, 255,\n\t\t239, 61, 82, 156, 150, 239, 145, 83, 55, 121, 218, 20, 157,\n\t\t213, 189, 169, 85, 254, 223, 231, 114, 84, 8, 22, 200, 20,\n\t\t176, 201, 35, 4, 228, 183, 128, 89, 70, 36, 96, 140, 232,\n\t\t114, 13, 185, 247, 226, 48, 133, 70, 189, 216, 251, 158, 136,\n\t\t2, 237, 166, 20, 67, 36, 237, 67, 14, 145, 51, 250, 84, 130,\n\t\t140, 169, 149, 240, 163, 200, 243, 187, 43, 168, 253, 248,\n\t\t211, 225, 195, 116, 129, 82, 88, 80, 10, 16, 122, 119, 4,\n\t\t57, 244, 62, 199, 16, 99, 175, 37, 23, 198, 77, 230, 47, 140,\n\t\t174, 148, 67, 146, 246, 8, 67, 111, 140, 242, 66, 206, 115,\n\t\t66, 161, 3, 255, 98, 11, 37, 71, 77, 43, 116, 176, 108, 133,\n\t\t156, 36, 76, 0, 1, 91, 100, 130, 70, 8, 61, 71, 116, 30, 66,\n\t\t166, 24, 201, 37, 25, 133, 206, 232, 62, 66, 163, 80, 210,\n\t\t236, 49, 23, 231, 107, 14, 17, 122, 62, 122, 76, 41, 148,\n\t\t175, 2, 199, 238, 173, 128, 96, 129, 64, 56, 69, 7, 228, 186,\n\t\t32, 31, 28, 150, 128, 157, 145, 143, 65, 243, 199, 144, 231,\n\t\t4, 61, 244, 214, 93, 167, 144, 39, 140, 33, 187, 18, 178,\n\t\t35, 8, 37, 198, 226, 124, 11, 149, 139, 44, 239, 92, 38, 246,\n\t\t118, 117, 188, 14, 15, 247, 79, 211, 254, 98, 192, 112, 157,\n\t\t3, 217, 101, 1, 101, 234, 10, 145, 239, 33, 245, 78, 224,\n\t\t236, 29, 73, 41, 203, 71, 129, 61, 118, 114, 62, 241, 132,\n\t\t105, 33, 9, 37, 99, 211, 10, 252, 90, 3, 197, 152, 186, 22,\n\t\t221, 188, 166, 20, 90, 239, 228, 226, 236, 123, 15, 149, 201,\n\t\t118, 252, 242, 36, 201, 78, 114, 87, 7, 113, 52, 88, 29, 212,\n\t\t35, 148, 81, 123, 202, 6, 80, 181, 239, 163, 18, 79, 228,\n\t\t60, 96, 227, 135, 201, 3, 80, 232, 60, 217, 48, 54, 215, 211,\n\t\t160, 118, 126, 193, 216, 118, 7, 75, 25, 9, 252, 239, 192,\n\t\t191, 126, 251, 129, 179, 203, 212, 110, 163, 77, 40, 58, 78,\n\t\t190, 227, 105, 155, 123, 131, 175, 140, 94, 70, 7, 200, 253,\n\t\t224, 63, 80, 157, 175, 207, 119, 92, 35, 0, 78, 53, 234, 8,\n\t\t114, 150, 198, 51, 84, 234, 230, 103, 64, 110, 206, 190, 251,\n\t\t237, 39, 111, 223, 253, 90, 92, 59, 107, 185, 188, 101, 99,\n\t\t136, 45, 211, 201, 71, 203, 240, 188, 187, 70, 43, 251, 135,\n\t\t251, 167, 207, 23, 164, 66, 70, 42, 84, 48, 36, 151, 90, 14,\n\t\t52, 21, 52, 72, 147, 18, 99, 41, 1, 132, 40, 129, 122, 104,\n\t\t145, 169, 71, 51, 96, 172, 161, 207, 30, 122, 98, 164, 64,\n\t\t239, 161, 77, 94, 49, 4, 24, 186, 224, 52, 89, 109, 75, 10,\n\t\t141, 177, 142, 86, 114, 20, 204, 182, 218, 181, 49, 172, 25,\n\t\t149, 164, 32, 83, 72, 174, 115, 241, 212, 157, 52, 58, 101,\n\t\t26, 19, 166, 132, 194, 235, 47, 240, 138, 215, 187, 75, 99,\n\t\t80, 161, 149, 192, 16, 107, 23, 102, 48, 106, 194, 40, 223,\n\t\t119, 75, 202, 72, 152, 178, 254, 58, 94, 202, 24, 76, 72,\n\t\t16, 154, 43, 113, 91, 221, 168, 237, 250, 164, 252, 124, 255,\n\t\t116, 129, 231, 252, 111, 207, 185, 137, 90, 6, 230, 49, 247,\n\t\t144, 28, 165, 24, 144, 215, 28, 233, 20, 142, 185, 68, 121,\n\t\t192, 152, 116, 82, 228, 170, 132, 26, 231, 98, 243, 5, 18,\n\t\t6, 154, 129, 74, 0, 39, 187, 7, 247, 5, 7, 38, 125, 210, 250,\n\t\t82, 25, 189, 79, 69, 81, 11, 117, 36, 100, 157, 255, 179,\n\t\t135, 152, 67, 117, 30, 98, 154, 145, 135, 143, 114, 200, 147,\n\t\t204, 89, 44, 182, 20, 164, 160, 91, 33, 101, 27, 73, 193,\n\t\t57, 201, 228, 231, 250, 102, 15, 41, 134, 234, 74, 59, 121,\n\t\t245, 227, 125, 55, 113, 29, 10, 25, 224, 232, 64, 142, 218,\n\t\t215, 58, 86, 166, 165, 82, 171, 19, 179, 19, 104, 12, 70,\n\t\t136, 105, 242, 208, 29, 52, 134, 142, 255, 228, 49, 45, 172,\n\t\t87, 214, 41, 197, 202, 64, 202, 213, 65, 251, 233, 240, 112,\n\t\t57, 104, 245, 124, 208, 152, 151, 26, 131, 134, 228, 160,\n\t\t163, 78, 91, 110, 114, 76, 219, 243, 137, 121, 56, 91, 7,\n\t\t36, 237, 100, 126, 219, 236, 61, 92, 206, 120, 157, 213, 119,\n\t\t137, 169, 206, 65, 137, 83, 37, 69, 94, 116, 144, 40, 144,\n\t\t243, 76, 157, 156, 48, 94, 229, 231, 232, 9, 164, 251, 188,\n\t\t96, 96, 145, 17, 4, 254, 75, 205, 254, 237, 125, 202, 56,\n\t\t233, 71, 89, 7, 221, 146, 131, 218, 113, 20, 223, 241, 154,\n\t\t53, 26, 60, 109, 103, 243, 151, 23, 72, 158, 126, 204, 70,\n\t\t41, 145, 192, 200, 74, 101, 208, 8, 20, 87, 113, 121, 62,\n\t\t228, 129, 176, 172, 67, 102, 159, 160, 88, 85, 87, 199, 233,\n\t\t251, 15, 243, 199, 139, 113, 106, 203, 34, 214, 154, 75, 141,\n\t\t38, 72, 99, 129, 113, 72, 2, 145, 78, 34, 226, 61, 235, 232,\n\t\t83, 18, 212, 88, 166, 229, 187, 215, 12, 252, 111, 239, 219,\n\t\t17, 153, 253, 43, 130, 10, 112, 62, 143, 13, 0, 132, 116,\n\t\t29, 224, 158, 249, 67, 111, 223, 101, 248, 215, 92, 94, 179,\n\t\t29, 61, 198, 189, 79, 24, 191, 94, 101, 109, 55, 249, 181,\n\t\t123, 12, 238, 22, 124, 164, 163, 246, 206, 178, 108, 250,\n\t\t46, 255, 239, 27, 87, 195, 221, 183, 198, 182, 173, 104, 67,\n\t\t123, 138, 211, 10, 10, 160, 219, 128, 11, 120, 196, 184, 231,\n\t\t30, 125, 133, 106, 218, 243, 93, 47, 174, 150, 35, 221, 198,\n\t\t206, 238, 54, 122, 232, 139, 0, 18, 88, 160, 226, 91, 128,\n\t\t249, 171, 192, 130, 165, 29, 185, 223, 255, 242, 192, 164,\n\t\t194, 251, 224, 81, 86, 148, 107, 176, 96, 124, 3, 48, 186,\n\t\t46, 93, 1, 6, 99, 220, 221, 4, 7, 177, 253, 21, 225, 185,\n\t\t10, 14, 181, 248, 70, 26, 190, 13, 140, 142, 247, 23, 12,\n\t\t21, 3, 243, 187, 33, 98, 6, 70, 169, 248, 38, 48, 191, 253,\n\t\t244, 190, 182, 171, 124, 222, 251, 249, 254, 233, 135, 135,\n\t\t139, 157, 165, 219, 206, 130, 189, 56, 226, 61, 170, 163,\n\t\t236, 46, 153, 250, 102, 119, 161, 12, 203, 238, 194, 251,\n\t\t244, 216, 93, 56, 211, 242, 253, 100, 119, 17, 214, 97, 173,\n\t\t199, 150, 113, 203, 135, 116, 212, 106, 44, 203, 166, 17,\n\t\t249, 255, 249, 14, 65, 0, 250, 74, 192, 236, 190, 8, 26, 198,\n\t\t202, 243, 93, 116, 144, 241, 70, 174, 175, 4, 238, 109, 104,\n\t\t159, 101, 196, 124, 122, 67, 214, 221, 95, 7, 230, 27, 4,\n\t\t120, 65, 122, 247, 70, 122, 124, 230, 74, 41, 185, 212, 241,\n\t\t232, 219, 91, 26, 139, 192, 5, 110, 244, 188, 93, 31, 209,\n\t\t81, 199, 181, 190, 63, 223, 165, 20, 67, 41, 117, 12, 252,\n\t\t171, 96, 133, 24, 225, 151, 129, 118, 125, 76, 164, 18, 186,\n\t\t49, 46, 45, 242, 78, 129, 2, 95, 234, 215, 9, 243, 13, 157,\n\t\t253, 186, 168, 95, 81, 151, 0, 119, 95, 23, 119, 183, 123,\n\t\t250, 22, 212, 1, 102, 161, 58, 204, 183, 214, 152, 95, 128,\n\t\t151, 91, 203, 204, 91, 128, 79, 188, 210, 212, 223, 223, 120,\n\t\t182, 162, 83, 1, 219, 87, 233, 229, 215, 3, 126, 133, 237,\n\t\t246, 114, 248, 229, 160, 237, 126, 33, 108, 208, 228, 225,\n\t\t247, 55, 162, 183, 248, 133, 15, 135, 203, 219, 180, 239,\n\t\t206, 215, 108, 76, 191, 187, 53, 251, 107, 77, 158, 171, 171,\n\t\t214, 47, 235, 212, 186, 218, 220, 230, 104, 254, 202, 200,\n\t\t124, 190, 195, 168, 160, 249, 116, 147, 75, 186, 94, 35, 54,\n\t\t217, 140, 190, 66, 255, 70, 77, 235, 228, 185, 177, 191, 189,\n\t\t181, 229, 55, 12, 169, 85, 117, 11, 17, 43, 222, 228, 114,\n\t\t251, 119, 133, 182, 107, 51, 123, 218, 63, 76, 255, 124, 49,\n\t\t175, 167, 101, 94, 215, 20, 90, 111, 174, 133, 220, 115, 157,\n\t\t61, 148, 18, 200, 201, 223, 201, 247, 208, 123, 141, 213,\n\t\t217, 239, 146, 32, 183, 177, 114, 42, 73, 252, 68, 48, 203,\n\t\t111, 2, 123, 159, 182, 69, 91, 204, 90, 98, 125, 29, 217,\n\t\t92, 156, 1, 48, 196, 158, 157, 31, 15, 51, 82, 148, 132, 241,\n\t\t59, 157, 3, 177, 169, 137, 95, 215, 154, 12, 4, 63, 146, 118,\n\t\t211, 5, 220, 75, 194, 218, 1, 203, 61, 123, 236, 114, 229,\n\t\t40, 63, 17, 180, 247, 34, 103, 59, 45, 181, 169, 206, 91,\n\t\t147, 49, 68, 19, 29, 94, 95, 102, 63, 124, 124, 56, 92, 12,\n\t\t198, 251, 243, 91, 217, 148, 209, 78, 105, 132, 161, 162,\n\t\t131, 142, 51, 196, 24, 162, 220, 103, 243, 239, 4, 168, 194,\n\t\t60, 189, 118, 118, 203, 107, 194, 96, 210, 91, 162, 64, 181,\n\t\t231, 217, 35, 6, 36, 185, 80, 211, 7, 145, 104, 172, 165,\n\t\t173, 220, 122, 141, 45, 41, 163, 184, 8, 53, 180, 109, 253,\n\t\t89, 94, 13, 20, 41, 82, 251, 89, 109, 122, 177, 254, 82, 109,\n\t\t6, 206, 248, 221, 173, 224, 104, 95, 150, 87, 131, 41, 58,\n\t\t235, 202, 203, 128, 108, 225, 120, 185, 154, 129, 18, 171,\n\t\t230, 12, 130, 233, 20, 135, 214, 172, 189, 175, 160, 159,\n\t\t118, 252, 20, 154, 203, 74, 164, 209, 139, 74, 118, 243, 197,\n\t\t112, 92, 25, 203, 209, 127, 67, 223, 27, 132, 167, 254, 199,\n\t\t249, 167, 75, 26, 123, 176, 9, 159, 34, 49, 11, 124, 100,\n\t\t214, 105, 115, 251, 112, 126, 59, 33, 247, 15, 158, 243, 229,\n\t\t114, 59, 31, 179, 97, 167, 183, 29, 167, 183, 25, 199, 92,\n\t\t184, 178, 27, 153, 4, 162, 243, 235, 16, 189, 13, 1, 220,\n\t\t231, 114, 204, 229, 90, 134, 132, 167, 183, 37, 103, 247,\n\t\t50, 59, 238, 202, 62, 151, 171, 153, 158, 69, 194, 236, 209,\n\t\t164, 61, 104, 2, 213, 141, 208, 120, 192, 188, 149, 26, 171,\n\t\t128, 123, 43, 56, 238, 42, 212, 18, 193, 49, 87, 240, 255,\n\t\t1, 193, 241, 108, 66, 114, 147, 150, 223, 20, 209, 243, 234,\n\t\t203, 135, 110, 226, 125, 145, 247, 187, 154, 199, 34, 84,\n\t\t76, 254, 149, 68, 226, 89, 248, 225, 32, 15, 203, 39, 111,\n\t\t223, 118, 135, 147, 36, 75, 62, 240, 195, 182, 30, 72, 55,\n\t\t196, 156, 58, 125, 62, 126, 248, 116, 57, 127, 32, 254, 170,\n\t\t249, 3, 165, 125, 17, 205, 115, 249, 127, 73, 114, 221, 253,\n\t\t213, 232, 245, 119, 64, 174, 187, 191, 18, 189, 126, 37, 114,\n\t\t253, 241, 241, 231, 135, 39, 255, 248, 253, 247, 23, 180,\n\t\t186, 168, 55, 81, 140, 46, 245, 20, 250, 84, 120, 7, 206,\n\t\t14, 68, 100, 9, 45, 148, 8, 250, 130, 17, 66, 87, 78, 179,\n\t\t4, 6, 9, 98, 144, 30, 215, 80, 245, 135, 113, 70, 194, 241,\n\t\t138, 228, 85, 181, 7, 162, 166, 134, 228, 0, 64, 31, 153,\n\t\t99, 171, 161, 76, 27, 189, 155, 150, 84, 132, 74, 113, 136,\n\t\t68, 115, 13, 32, 45, 167, 192, 35, 140, 67, 65, 128, 81, 56,\n\t\t70, 20, 155, 27, 106, 16, 137, 105, 78, 233, 26, 178, 105,\n\t\t103, 168, 30, 197, 110, 202, 67, 115, 130, 249, 226, 236,\n\t\t82, 128, 24, 115, 23, 121, 190, 102, 92, 166, 101, 130, 73,\n\t\t164, 199, 162, 126, 52, 190, 53, 161, 80, 37, 213, 210, 84,\n\t\t200, 220, 183, 112, 51, 53, 9, 52, 85, 40, 31, 74, 11, 224,\n\t\t64, 178, 242, 227, 212, 193, 232, 129, 223, 203, 34, 84, 230,\n\t\t44, 80, 122, 128, 105, 69, 83, 134, 160, 10, 116, 72, 218,\n\t\t81, 62, 135, 181, 8, 162, 66, 160, 154, 11, 73, 88, 109, 249,\n\t\t88, 87, 38, 76, 232, 90, 180, 170, 184, 55, 46, 41, 14, 119,\n\t\t11, 50, 6, 46, 166, 234, 150, 204, 201, 192, 80, 229, 150,\n\t\t52, 48, 89, 25, 130, 218, 244, 6, 25, 26, 217, 193, 226, 117,\n\t\t89, 177, 93, 171, 188, 42, 147, 85, 242, 135, 215, 100, 178,\n\t\t9, 111, 72, 172, 145, 174, 223, 71, 28, 62, 252, 240, 233,\n\t\t126, 190, 160, 108, 60, 231, 148, 11, 69, 227, 148, 65, 53,\n\t\t10, 90, 104, 169, 55, 146, 177, 97, 2, 130, 18, 229, 11, 143,\n\t\t157, 104, 73, 114, 239, 45, 211, 242, 221, 175, 255, 246,\n\t\t158, 169, 125, 173, 70, 196, 253, 155, 108, 32, 154, 142,\n\t\t83, 116, 150, 101, 211, 134, 252, 191, 167, 246, 124, 215,\n\t\t154, 43, 116, 3, 24, 21, 212, 125, 33, 44, 170, 214, 112,\n\t\t21, 22, 89, 175, 114, 185, 1, 13, 182, 246, 21, 192, 209,\n\t\t90, 174, 130, 67, 21, 93, 202, 120, 3, 156, 164, 116, 122,\n\t\t11, 156, 221, 13, 120, 180, 154, 171, 240, 148, 200, 7, 131,\n\t\t118, 3, 30, 210, 3, 249, 45, 120, 110, 128, 163, 181, 92,\n\t\t3, 231, 234, 89, 254, 241, 135, 139, 41, 145, 86, 85, 145,\n\t\t42, 58, 44, 24, 210, 68, 162, 128, 196, 11, 179, 173, 0, 170,\n\t\t198, 233, 219, 194, 105, 140, 245, 17, 72, 87, 17, 15, 96,\n\t\t122, 182, 67, 67, 203, 39, 102, 111, 234, 208, 115, 201, 100,\n\t\t155, 165, 178, 15, 147, 41, 98, 121, 146, 115, 14, 127, 177,\n\t\t70, 179, 181, 6, 100, 235, 182, 172, 5, 179, 39, 212, 133,\n\t\t19, 173, 18, 224, 21, 40, 15, 69, 155, 212, 6, 103, 130, 117,\n\t\t221, 86, 117, 241, 76, 89, 150, 180, 163, 167, 46, 159, 228,\n\t\t98, 103, 233, 68, 178, 150, 101, 55, 88, 182, 111, 238, 147,\n\t\t168, 242, 120, 94, 224, 165, 27, 99, 41, 116, 190, 162, 170,\n\t\t90, 141, 229, 54, 246, 128, 46, 78, 92, 165, 131, 181, 67,\n\t\t202, 58, 20, 235, 143, 37, 140, 122, 143, 3, 152, 73, 14,\n\t\t114, 138, 231, 129, 19, 83, 243, 51, 22, 195, 54, 246, 209,\n\t\t143, 21, 19, 126, 65, 197, 138, 171, 193, 28, 112, 7, 236,\n\t\t121, 124, 212, 102, 118, 211, 178, 153, 96, 25, 8, 162, 161,\n\t\t216, 200, 187, 160, 141, 213, 50, 84, 162, 129, 155, 187,\n\t\t203, 3, 49, 202, 199, 69, 233, 136, 234, 39, 114, 183, 105,\n\t\t222, 12, 79, 22, 162, 160, 177, 41, 155, 138, 219, 120, 167,\n\t\t234, 68, 251, 19, 133, 233, 124, 161, 212, 80, 107, 92, 144,\n\t\t173, 197, 219, 0, 67, 177, 44, 138, 209, 66, 114, 70, 113,\n\t\t41, 58, 163, 183, 179, 46, 236, 166, 65, 109, 99, 163, 53,\n\t\t82, 51, 74, 59, 197, 143, 244, 99, 225, 218, 38, 104, 14,\n\t\t6, 139, 154, 218, 0, 181, 234, 225, 124, 51, 44, 92, 209,\n\t\t50, 160, 113, 153, 32, 105, 244, 69, 40, 107, 51, 254, 114,\n\t\t190, 73, 100, 138, 126, 166, 249, 149, 93, 27, 212, 195, 36,\n\t\t5, 189, 187, 56, 101, 225, 33, 12, 240, 193, 115, 151, 193,\n\t\t178, 44, 9, 163, 78, 161, 112, 144, 46, 27, 81, 249, 81, 61,\n\t\t45, 58, 103, 93, 21, 68, 23, 62, 114, 128, 207, 253, 22, 34,\n\t\t176, 158, 47, 88, 209, 113, 0, 112, 96, 143, 167, 51, 115,\n\t\t50, 122, 242, 88, 70, 99, 67, 63, 211, 51, 217, 108, 230,\n\t\t190, 98, 244, 226, 208, 19, 101, 104, 91, 145, 126, 40, 173,\n\t\t104, 183, 73, 232, 99, 76, 107, 27, 76, 50, 190, 122, 168,\n\t\t95, 218, 187, 208, 149, 175, 81, 82, 159, 239, 48, 23, 209,\n\t\t67, 38, 93, 163, 92, 116, 45, 242, 80, 9, 22, 26, 191, 29,\n\t\t252, 230, 213, 143, 164, 166, 202, 242, 138, 43, 77, 63, 108,\n\t\t223, 53, 233, 234, 66, 187, 127, 252, 120, 161, 58, 1, 215,\n\t\t52, 94, 91, 12, 169, 58, 228, 147, 4, 77, 16, 26, 181, 146,\n\t\t28, 4, 234, 17, 147, 203, 1, 107, 150, 249, 80, 132, 52, 106,\n\t\t40, 196, 212, 59, 222, 39, 12, 169, 102, 199, 52, 215, 34,\n\t\t212, 162, 196, 210, 100, 57, 41, 89, 207, 108, 154, 115, 134,\n\t\t70, 33, 37, 94, 50, 33, 84, 17, 213, 47, 155, 36, 198, 164,\n\t\t155, 82, 237, 117, 187, 41, 205, 122, 177, 138, 46, 134, 20,\n\t\t123, 174, 123, 191, 185, 172, 156, 150, 162, 235, 110, 101,\n\t\t229, 65, 24, 139, 24, 34, 80, 33, 217, 207, 98, 136, 169,\n\t\t2, 51, 200, 155, 42, 248, 57, 199, 218, 0, 143, 61, 135, 146,\n\t\t132, 169, 57, 1, 168, 245, 236, 150, 29, 112, 239, 11, 157,\n\t\t183, 122, 14, 246, 209, 247, 28, 42, 28, 199, 134, 91, 91,\n\t\t139, 93, 50, 37, 108, 32, 251, 69, 207, 101, 60, 32, 127,\n\t\t90, 122, 89, 244, 124, 194, 52, 121, 189, 107, 71, 40, 188,\n\t\t105, 60, 223, 229, 10, 161, 56, 232, 37, 228, 180, 155, 48,\n\t\t16, 229, 36, 11, 111, 111, 77, 206, 34, 132, 189, 232, 124,\n\t\t205, 29, 54, 9, 61, 36, 136, 57, 51, 136, 60, 126, 41, 234,\n\t\t36, 71, 44, 60, 105, 66, 109, 5, 146, 44, 230, 216, 73, 160,\n\t\t47, 24, 129, 143, 232, 50, 47, 248, 88, 194, 109, 148, 36,\n\t\t153, 40, 166, 132, 210, 72, 138, 60, 137, 40, 164, 76, 36,\n\t\t173, 32, 211, 208, 146, 50, 113, 99, 45, 87, 97, 47, 114,\n\t\t104, 144, 168, 57, 8, 152, 40, 201, 66, 161, 244, 130, 161,\n\t\t102, 106, 109, 246, 200, 103, 243, 228, 160, 167, 80, 105,\n\t\t199, 77, 158, 82, 166, 63, 39, 205, 77, 21, 74, 155, 210,\n\t\t57, 210, 59, 200, 108, 235, 185, 209, 167, 55, 74, 94, 8,\n\t\t84, 91, 228, 29, 85, 154, 148, 22, 83, 233, 130, 209, 12,\n\t\t138, 26, 44, 177, 146, 160, 134, 228, 28, 201, 149, 96, 110,\n\t\t75, 10, 179, 22, 32, 247, 201, 81, 182, 142, 22, 177, 58,\n\t\t8, 189, 64, 151, 61, 24, 75, 205, 60, 16, 169, 214, 158, 6,\n\t\t66, 19, 72, 239, 50, 198, 44, 139, 92, 170, 77, 166, 141,\n\t\t224, 129, 39, 160, 90, 245, 88, 194, 232, 229, 20, 249, 232,\n\t\t8, 29, 136, 235, 207, 0, 149, 15, 96, 5, 171, 179, 1, 232,\n\t\t1, 243, 140, 57, 5, 72, 14, 99, 11, 84, 167, 26, 82, 202,\n\t\t157, 152, 43, 72, 60, 198, 200, 231, 217, 208, 83, 150, 51,\n\t\t90, 182, 151, 169, 135, 28, 163, 30, 128, 82, 128, 34, 122,\n\t\t224, 99, 219, 146, 124, 126, 100, 156, 91, 15, 57, 201, 100,\n\t\t73, 161, 148, 136, 199, 138, 161, 64, 36, 185, 24, 42, 114,\n\t\t83, 156, 121, 133, 16, 213, 234, 229, 50, 116, 55, 217, 71,\n\t\t187, 24, 90, 178, 136, 114, 25, 240, 94, 7, 215, 217, 201,\n\t\t249, 241, 82, 52, 4, 117, 209, 16, 203, 197, 17, 197, 9, 82,\n\t\t149, 83, 156, 240, 36, 160, 15, 72, 237, 224, 237, 232, 191,\n\t\t254, 57, 200, 211, 146, 206, 41, 86, 100, 252, 83, 229, 111,\n\t\t112, 77, 108, 31, 104, 90, 118, 144, 101, 163, 181, 93, 110,\n\t\t92, 232, 192, 224, 112, 148, 201, 128, 25, 117, 131, 229,\n\t\t173, 156, 55, 170, 201, 202, 89, 69, 203, 102, 183, 214, 163,\n\t\t155, 21, 232, 206, 54, 251, 146, 66, 118, 164, 246, 4, 71,\n\t\t72, 53, 212, 155, 42, 169, 23, 183, 120, 151, 202, 124, 80,\n\t\t90, 72, 188, 26, 12, 78, 197, 88, 183, 58, 50, 26, 83, 52,\n\t\t78, 250, 87, 7, 230, 233, 241, 254, 253, 197, 184, 180, 215,\n\t\t183, 159, 92, 121, 35, 117, 148, 67, 74, 17, 38, 38, 218,\n\t\t94, 171, 104, 201, 67, 23, 238, 93, 116, 225, 245, 179, 176,\n\t\t215, 186, 94, 141, 148, 189, 231, 245, 175, 209, 204, 36,\n\t\t201, 171, 154, 235, 53, 240, 98, 57, 249, 24, 90, 238, 188,\n\t\t59, 181, 0, 20, 139, 44, 16, 21, 122, 77, 204, 65, 232, 18,\n\t\t207, 171, 112, 236, 104, 9, 123, 95, 154, 140, 24, 47, 192,\n\t\t208, 58, 137, 66, 62, 100, 181, 231, 227, 37, 174, 202, 250,\n\t\t105, 197, 252, 40, 183, 54, 238, 71, 235, 6, 214, 78, 249,\n\t\t107, 134, 88, 197, 117, 189, 203, 77, 66, 128, 212, 245, 176,\n\t\t32, 11, 212, 232, 204, 12, 169, 135, 218, 93, 194, 56, 81,\n\t\t232, 69, 96, 133, 144, 106, 239, 206, 174, 78, 160, 133, 82,\n\t\t122, 119, 134, 136, 241, 190, 239, 53, 228, 198, 36, 130,\n\t\t129, 196, 60, 78, 102, 46, 51, 248, 50, 97, 105, 116, 157,\n\t\t185, 97, 225, 141, 214, 115, 92, 207, 219, 132, 61, 118, 45,\n\t\t71, 65, 54, 246, 22, 72, 190, 83, 0, 222, 4, 150, 252, 35,\n\t\t251, 210, 222, 104, 206, 224, 16, 139, 189, 46, 76, 164, 67,\n\t\t94, 186, 100, 57, 20, 170, 102, 200, 69, 20, 57, 64, 127,\n\t\t190, 195, 18, 3, 185, 4, 40, 3, 201, 140, 90, 108, 40, 231,\n\t\t130, 220, 162, 92, 72, 105, 121, 94, 184, 201, 209, 178, 148,\n\t\t39, 181, 203, 228, 150, 146, 84, 168, 9, 123, 138, 33, 211,\n\t\t84, 7, 196, 114, 123, 42, 251, 103, 9, 160, 214, 73, 16, 58,\n\t\t246, 234, 70, 126, 109, 146, 39, 200, 166, 69, 74, 177, 20,\n\t\t110, 44, 86, 21, 204, 134, 86, 181, 255, 227, 80, 108, 136,\n\t\t24, 9, 123, 159, 122, 192, 190, 83, 30, 133, 120, 7, 6, 222,\n\t\t13, 122, 77, 101, 236, 6, 57, 9, 51, 192, 67, 32, 151, 104,\n\t\t92, 67, 142, 109, 57, 143, 243, 250, 146, 67, 33, 7, 68, 188,\n\t\t4, 203, 105, 94, 109, 85, 27, 211, 16, 85, 166, 2, 121, 7,\n\t\t37, 179, 153, 207, 171, 165, 39, 114, 60, 205, 99, 104, 37,\n\t\t166, 140, 39, 4, 207, 152, 62, 161, 119, 41, 110, 244, 78,\n\t\t57, 64, 142, 244, 6, 122, 135, 184, 165, 119, 107, 86, 111,\n\t\t49, 244, 120, 73, 188, 9, 151, 64, 177, 203, 201, 88, 33,\n\t\t116, 235, 92, 25, 51, 35, 243, 121, 230, 234, 18, 242, 254,\n\t\t241, 231, 79, 243, 75, 203, 200, 170, 0, 12, 188, 188, 183,\n\t\t125, 139, 55, 238, 234, 160, 180, 125, 211, 155, 216, 9, 198,\n\t\t89, 36, 242, 201, 115, 156, 24, 64, 78, 115, 118, 123, 160,\n\t\t15, 179, 135, 140, 65, 120, 52, 12, 56, 121, 185, 70, 174,\n\t\t106, 82, 183, 44, 140, 89, 79, 250, 125, 24, 206, 101, 12,\n\t\t188, 60, 141, 18, 48, 78, 149, 246, 235, 211, 96, 81, 70,\n\t\t11, 220, 164, 221, 114, 242, 187, 128, 216, 123, 59, 66, 105,\n\t\t87, 174, 38, 159, 119, 119, 153, 41, 144, 87, 108, 192, 219,\n\t\t55, 161, 196, 236, 234, 213, 171, 80, 173, 230, 213, 171,\n\t\t80, 160, 18, 234, 204, 188, 28, 245, 9, 227, 34, 245, 208,\n\t\t135, 172, 39, 213, 241, 86, 71, 95, 35, 231, 167, 174, 101,\n\t\t175, 142, 206, 243, 93, 106, 114, 45, 205, 32, 48, 9, 57,\n\t\t20, 1, 139, 195, 120, 224, 31, 223, 229, 205, 99, 220, 29,\n\t\t250, 248, 192, 63, 7, 140, 78, 242, 98, 124, 190, 163, 140,\n\t\t111, 170, 226, 213, 26, 174, 17, 226, 135, 79, 223, 61, 254,\n\t\t249, 130, 10, 167, 43, 155, 89, 169, 161, 167, 230, 48, 242,\n\t\t192, 242, 26, 170, 107, 113, 9, 165, 82, 115, 45, 196, 2,\n\t\t2, 112, 11, 37, 98, 94, 19, 80, 24, 162, 227, 246, 124, 115,\n\t\t244, 128, 61, 80, 169, 211, 176, 28, 139, 114, 236, 84, 246,\n\t\t247, 212, 126, 140, 90, 156, 150, 44, 139, 9, 217, 146, 143,\n\t\t218, 113, 84, 117, 220, 158, 159, 120, 109, 143, 8, 212, 92,\n\t\t10, 5, 32, 49, 175, 29, 58, 117, 92, 192, 82, 168, 102, 136,\n\t\t57, 148, 198, 91, 80, 11, 57, 209, 110, 170, 161, 149, 194,\n\t\t188, 35, 51, 10, 173, 57, 204, 161, 230, 42, 141, 166, 74,\n\t\t46, 117, 70, 66, 30, 175, 123, 44, 45, 20, 132, 137, 137,\n\t\t190, 69, 230, 199, 18, 134, 88, 147, 220, 82, 229, 90, 160,\n\t\t106, 137, 174, 182, 113, 169, 210, 243, 29, 20, 12, 152, 145,\n\t\t119, 194, 217, 55, 222, 29, 77, 52, 134, 41, 196, 134, 179,\n\t\t28, 57, 104, 15, 32, 143, 252, 52, 62, 104, 110, 209, 116,\n\t\t218, 123, 204, 140, 134, 235, 74, 70, 79, 15, 239, 31, 47,\n\t\t198, 248, 97, 53, 218, 142, 124, 106, 37, 106, 55, 120, 86,\n\t\t228, 140, 164, 98, 85, 205, 183, 100, 57, 17, 171, 74, 190,\n\t\t52, 249, 181, 54, 149, 172, 174, 89, 1, 143, 84, 3, 65, 68,\n\t\t30, 46, 72, 165, 66, 191, 194, 79, 79, 49, 64, 174, 136, 85,\n\t\t78, 185, 52, 78, 97, 60, 208, 165, 9, 179, 31, 67, 230, 45,\n\t\t12, 37, 81, 171, 155, 33, 242, 129, 163, 11, 91, 207, 219,\n\t\t26, 243, 41, 45, 180, 138, 32, 87, 53, 133, 247, 169, 78,\n\t\t33, 1, 101, 87, 107, 104, 122, 120, 165, 18, 98, 45, 150,\n\t\t48, 49, 179, 3, 25, 244, 186, 152, 207, 254, 181, 201, 25,\n\t\t109, 188, 65, 21, 25, 129, 100, 194, 228, 78, 62, 46, 25,\n\t\t82, 9, 37, 19, 111, 144, 173, 133, 154, 170, 16, 161, 184,\n\t\t2, 0, 40, 1, 115, 229, 61, 153, 207, 163, 19, 48, 120, 188,\n\t\t153, 133, 146, 74, 85, 97, 52, 239, 52, 12, 110, 106, 124,\n\t\t250, 105, 61, 103, 176, 247, 137, 79, 100, 9, 138, 19, 246,\n\t\t152, 132, 186, 32, 228, 74, 200, 244, 77, 77, 14, 157, 41,\n\t\t100, 70, 200, 110, 78, 98, 104, 63, 65, 232, 4, 164, 103,\n\t\t104, 138, 196, 236, 82, 6, 62, 177, 241, 169, 88, 106, 91,\n\t\t18, 184, 142, 166, 118, 224, 138, 48, 210, 43, 79, 208, 249,\n\t\t222, 75, 145, 250, 135, 188, 177, 105, 197, 147, 79, 45, 12,\n\t\t245, 43, 62, 190, 54, 222, 147, 121, 141, 44, 228, 152, 183,\n\t\t31, 187, 108, 201, 161, 49, 207, 49, 82, 152, 165, 72, 124,\n\t\t246, 77, 42, 201, 28, 154, 123, 53, 116, 7, 114, 16, 179,\n\t\t19, 75, 13, 13, 182, 178, 64, 206, 92, 10, 159, 105, 66, 226,\n\t\t5, 157, 143, 31, 118, 152, 9, 208, 119, 251, 24, 176, 34,\n\t\t21, 152, 74, 10, 136, 36, 82, 65, 98, 198, 146, 217, 148,\n\t\t30, 128, 119, 140, 214, 66, 161, 234, 124, 171, 202, 163,\n\t\t122, 114, 141, 25, 186, 46, 28, 71, 148, 235, 147, 236, 22,\n\t\t34, 92, 137, 236, 148, 26, 151, 52, 37, 198, 107, 7, 196,\n\t\t37, 247, 126, 204, 131, 235, 226, 182, 191, 124, 186, 240,\n\t\t146, 129, 171, 24, 153, 98, 40, 217, 81, 202, 129, 210, 87,\n\t\t0, 56, 142, 201, 42, 172, 55, 4, 61, 157, 241, 111, 18, 208,\n\t\t169, 134, 84, 35, 188, 101, 173, 200, 111, 91, 43, 16, 223,\n\t\t176, 86, 196, 190, 89, 43, 118, 191, 96, 177, 64, 136, 93,\n\t\t23, 139, 204, 135, 165, 198, 221, 45, 61, 165, 114, 190, 88,\n\t\t144, 220, 236, 72, 30, 93, 42, 50, 115, 226, 24, 186, 28,\n\t\t159, 59, 41, 39, 94, 107, 168, 133, 113, 10, 148, 131, 156,\n\t\t46, 52, 97, 242, 181, 4, 106, 73, 151, 138, 44, 90, 17, 34,\n\t\t88, 72, 84, 56, 119, 133, 160, 130, 166, 68, 161, 138, 65,\n\t\t121, 128, 94, 185, 162, 28, 32, 102, 38, 191, 18, 72, 155,\n\t\t10, 152, 83, 31, 2, 18, 62, 8, 249, 113, 100, 220, 237, 61,\n\t\t117, 225, 92, 175, 35, 76, 46, 6, 75, 44, 196, 220, 174, 30,\n\t\t41, 18, 31, 121, 115, 99, 14, 78, 4, 3, 208, 179, 67, 101,\n\t\t126, 39, 4, 25, 117, 167, 26, 32, 128, 24, 136, 28, 70, 8,\n\t\t141, 249, 152, 20, 178, 189, 241, 100, 106, 4, 77, 230, 146,\n\t\t40, 86, 202, 92, 82, 85, 255, 46, 183, 66, 50, 153, 50, 35,\n\t\t87, 38, 83, 111, 207, 119, 152, 121, 174, 59, 40, 19, 99,\n\t\t168, 87, 41, 150, 83, 0, 34, 199, 248, 41, 188, 149, 49, 122,\n\t\t146, 152, 120, 87, 218, 77, 134, 27, 67, 205, 192, 140, 33,\n\t\t198, 240, 50, 208, 178, 55, 164, 92, 35, 73, 38, 197, 5, 41,\n\t\t126, 197, 138, 55, 180, 248, 5, 47, 222, 16, 227, 13, 51,\n\t\t67, 57, 198, 11, 110, 228, 198, 87, 177, 227, 5, 61, 217,\n\t\t222, 121, 21, 195, 68, 169, 230, 137, 23, 54, 192, 38, 235,\n\t\t24, 227, 40, 39, 230, 0, 98, 150, 115, 67, 107, 129, 207,\n\t\t198, 173, 202, 97, 109, 55, 83, 0, 189, 167, 107, 40, 83,\n\t\t113, 98, 106, 109, 181, 117, 189, 49, 5, 189, 243, 99, 106,\n\t\t205, 5, 5, 122, 74, 99, 223, 91, 147, 84, 102, 116, 123, 198,\n\t\t89, 153, 189, 231, 153, 76, 189, 220, 152, 124, 99, 55, 191,\n\t\t178, 152, 201, 28, 190, 177, 30, 144, 58, 146, 56, 250, 147,\n\t\t57, 124, 21, 84, 94, 202, 150, 153, 236, 151, 133, 107, 179,\n\t\t237, 251, 101, 223, 95, 103, 178, 40, 227, 55, 55, 54, 253,\n\t\t9, 219, 42, 243, 235, 148, 147, 235, 36, 39, 71, 231, 235,\n\t\t56, 43, 241, 60, 110, 121, 121, 223, 115, 163, 49, 245, 235,\n\t\t119, 115, 243, 135, 195, 103, 127, 63, 95, 88, 100, 32, 174,\n\t\t254, 77, 196, 21, 201, 222, 19, 148, 27, 156, 107, 18, 107,\n\t\t54, 203, 98, 31, 229, 155, 163, 182, 231, 10, 214, 242, 180,\n\t\t225, 144, 149, 57, 62, 122, 173, 224, 42, 7, 253, 124, 7,\n\t\t216, 92, 194, 38, 183, 53, 177, 71, 133, 37, 170, 7, 42, 57,\n\t\t189, 170, 11, 170, 195, 246, 125, 36, 81, 116, 150, 42, 137,\n\t\t7, 191, 121, 213, 124, 90, 63, 138, 205, 194, 111, 216, 0,\n\t\t164, 242, 155, 213, 79, 80, 28, 214, 69, 231, 175, 96, 225,\n\t\t181, 96, 217, 9, 215, 251, 70, 49, 24, 247, 150, 99, 185,\n\t\t113, 52, 41, 195, 160, 120, 83, 64, 212, 92, 219, 207, 99,\n\t\t38, 170, 157, 183, 85, 178, 221, 116, 81, 173, 153, 65, 152,\n\t\t200, 55, 193, 243, 87, 2, 167, 197, 99, 194, 221, 239, 1,\n\t\t156, 171, 147, 243, 133, 123, 115, 76, 175, 251, 86, 161,\n\t\t24, 29, 34, 77, 195, 61, 201, 152, 97, 121, 153, 94, 67, 43,\n\t\t233, 215, 184, 54, 209, 162, 242, 209, 170, 212, 73, 141,\n\t\t116, 20, 179, 168, 54, 238, 163, 203, 208, 117, 224, 51, 233,\n\t\t248, 119, 144, 99, 243, 246, 131, 135, 140, 71, 95, 113, 47,\n\t\t6, 217, 189, 48, 212, 90, 77, 50, 77, 134, 100, 170, 14, 232,\n\t\t124, 69, 87, 241, 192, 63, 75, 178, 215, 116, 169, 4, 136,\n\t\t118, 215, 125, 159, 204, 247, 23, 10, 45, 184, 56, 112, 74,\n\t\t212, 67, 46, 217, 241, 47, 66, 157, 40, 6, 234, 153, 55, 247,\n\t\t134, 114, 216, 214, 123, 177, 130, 114, 204, 233, 212, 93,\n\t\t130, 208, 50, 101, 230, 55, 16, 10, 111, 231, 45, 167, 44,\n\t\t87, 195, 212, 178, 220, 131, 23, 185, 71, 94, 18, 176, 51,\n\t\t211, 84, 142, 178, 207, 130, 92, 7, 197, 144, 229, 40, 145,\n\t\t237, 146, 18, 99, 160, 200, 221, 130, 20, 26, 97, 83, 255,\n\t\t65, 185, 145, 168, 190, 182, 84, 135, 231, 176, 34, 26, 139,\n\t\t36, 226, 33, 158, 243, 65, 228, 116, 178, 165, 139, 150, 238,\n\t\t72, 225, 153, 205, 28, 174, 10, 38, 153, 211, 192, 46, 170,\n\t\t122, 45, 141, 115, 11, 66, 179, 132, 73, 156, 9, 101, 148,\n\t\t161, 111, 69, 78, 19, 12, 162, 201, 218, 41, 16, 183, 138,\n\t\t24, 0, 17, 142, 94, 108, 87, 226, 162, 225, 119, 197, 162,\n\t\t172, 220, 176, 97, 74, 173, 132, 152, 243, 228, 129, 66, 142,\n\t\t40, 26, 16, 128, 113, 124, 47, 161, 131, 72, 216, 196, 163,\n\t\t19, 239, 123, 60, 105, 19, 132, 26, 73, 188, 197, 37, 162,\n\t\t42, 190, 131, 114, 234, 46, 183, 144, 24, 77, 57, 135, 158,\n\t\t17, 120, 207, 164, 162, 130, 68, 200, 13, 93, 134, 80, 197,\n\t\t126, 4, 147, 30, 250, 50, 51, 61, 177, 137, 191, 44, 138,\n\t\t73, 248, 149, 193, 133, 244, 22, 169, 48, 175, 2, 67, 28,\n\t\t204, 28, 77, 66, 218, 164, 112, 225, 92, 138, 170, 8, 169,\n\t\t192, 218, 67, 40, 185, 98, 146, 235, 215, 82, 245, 220, 58,\n\t\t68, 158, 40, 172, 187, 92, 206, 201, 61, 115, 13, 5, 91, 151,\n\t\t139, 108, 245, 117, 136, 33, 2, 138, 11, 168, 72, 212, 237,\n\t\t125, 55, 45, 195, 40, 163, 152, 228, 242, 83, 70, 209, 6,\n\t\t209, 18, 174, 235, 26, 60, 220, 191, 255, 113, 255, 248, 233,\n\t\t210, 48, 8, 243, 137, 40, 14, 202, 4, 4, 129, 207, 245, 209,\n\t\t137, 151, 64, 30, 255, 140, 160, 47, 162, 148, 78, 109, 208,\n\t\t112, 23, 29, 231, 113, 180, 192, 164, 34, 18, 185, 63, 22,\n\t\t129, 16, 182, 80, 16, 97, 150, 219, 232, 6, 122, 127, 222,\n\t\t229, 116, 205, 189, 19, 1, 109, 97, 30, 150, 7, 57, 131, 28,\n\t\t157, 185, 222, 22, 160, 85, 37, 219, 46, 238, 156, 52, 101,\n\t\t239, 145, 110, 249, 37, 168, 229, 170, 81, 28, 237, 166, 196,\n\t\t237, 0, 111, 187, 185, 135, 82, 163, 154, 240, 48, 155, 42,\n\t\t58, 27, 41, 133, 130, 245, 8, 186, 102, 115, 101, 49, 135,\n\t\t86, 186, 78, 140, 20, 187, 3, 185, 35, 239, 98, 47, 117, 144,\n\t\t135, 229, 147, 183, 111, 71, 111, 21, 96, 12, 9, 59, 56, 30,\n\t\t119, 89, 51, 67, 97, 98, 212, 102, 68, 213, 68, 158, 246,\n\t\t120, 203, 186, 124, 92, 210, 220, 176, 213, 147, 137, 207,\n\t\t252, 100, 87, 33, 98, 236, 50, 72, 212, 66, 236, 101, 131,\n\t\t211, 129, 210, 49, 52, 216, 220, 50, 50, 61, 212, 66, 124,\n\t\t16, 15, 173, 65, 35, 29, 78, 209, 174, 168, 161, 70, 110,\n\t\t208, 18, 198, 240, 30, 227, 81, 8, 194, 200, 70, 233, 69,\n\t\t200, 101, 252, 187, 74, 153, 199, 199, 249, 167, 143, 15,\n\t\t47, 169, 152, 99, 57, 223, 236, 48, 47, 186, 48, 144, 93,\n\t\t170, 117, 130, 236, 32, 59, 2, 71, 129, 68, 10, 39, 119, 66,\n\t\t117, 241, 86, 197, 60, 100, 233, 98, 85, 199, 219, 135, 243,\n\t\t250, 125, 246, 173, 201, 197, 145, 107, 125, 239, 33, 98,\n\t\t136, 99, 169, 162, 237, 5, 124, 94, 239, 223, 137, 6, 97,\n\t\t81, 179, 79, 27, 163, 215, 235, 147, 111, 116, 241, 253, 227,\n\t\t207, 159, 46, 250, 120, 225, 44, 45, 53, 90, 251, 200, 167,\n\t\t201, 84, 115, 232, 101, 226, 23, 102, 139, 185, 187, 81, 68,\n\t\t142, 220, 103, 81, 176, 176, 119, 207, 59, 84, 237, 153, 123,\n\t\t207, 101, 192, 48, 160, 55, 182, 89, 123, 172, 104, 216, 22,\n\t\t41, 125, 32, 164, 198, 234, 248, 55, 71, 60, 197, 74, 62,\n\t\t145, 75, 228, 75, 172, 228, 33, 149, 160, 120, 138, 151, 16,\n\t\t203, 243, 93, 74, 45, 96, 114, 88, 106, 104, 109, 199, 11,\n\t\t51, 166, 174, 66, 174, 76, 189, 137, 187, 62, 89, 153, 137,\n\t\t84, 236, 186, 36, 212, 34, 7, 32, 97, 116, 121, 39, 45, 48,\n\t\t164, 203, 156, 67, 56, 55, 201, 209, 187, 168, 150, 230, 34,\n\t\t14, 75, 229, 56, 8, 178, 129, 202, 53, 182, 71, 19, 165, 38,\n\t\t213, 121, 112, 93, 110, 251, 153, 189, 75, 173, 23, 185, 31,\n\t\t42, 106, 168, 48, 182, 99, 115, 4, 168, 25, 221, 40, 55, 153,\n\t\t184, 223, 4, 156, 24, 85, 114, 202, 155, 55, 246, 186, 188,\n\t\t39, 10, 45, 246, 178, 59, 248, 38, 30, 86, 147, 136, 82, 65,\n\t\t232, 48, 170, 68, 147, 179, 160, 92, 160, 140, 182, 75, 32,\n\t\t208, 171, 149, 44, 2, 91, 135, 42, 172, 179, 246, 99, 167,\n\t\t169, 12, 167, 185, 86, 6, 33, 196, 20, 133, 69, 169, 195,\n\t\t28, 112, 211, 191, 183, 208, 228, 79, 63, 94, 80, 228, 21,\n\t\t21, 128, 133, 34, 75, 232, 121, 67, 145, 250, 123, 149, 44,\n\t\t75, 175, 191, 55, 178, 36, 106, 33, 101, 71, 216, 66, 76,\n\t\t187, 169, 118, 29, 60, 97, 7, 138, 3, 172, 161, 136, 114,\n\t\t97, 12, 117, 121, 195, 84, 66, 76, 7, 79, 166, 221, 0, 45,\n\t\t133, 44, 7, 254, 77, 6, 82, 114, 28, 178, 227, 2, 49, 169,\n\t\t63, 72, 93, 138, 82, 168, 170, 57, 145, 146, 158, 116, 139,\n\t\t116, 109, 242, 122, 213, 196, 43, 168, 72, 232, 69, 19, 86,\n\t\t116, 1, 80, 4, 188, 117, 100, 228, 45, 35, 79, 165, 4, 57,\n\t\t85, 80, 210, 83, 178, 236, 83, 202, 165, 150, 229, 165, 231,\n\t\t144, 155, 120, 36, 108, 178, 50, 200, 5, 151, 48, 61, 144,\n\t\t249, 248, 233, 252, 73, 78, 1, 27, 74, 239, 78, 174, 144,\n\t\t163, 42, 5, 99, 119, 136, 97, 184, 186, 94, 33, 136, 189,\n\t\t77, 150, 141, 139, 201, 150, 48, 242, 113, 41, 33, 200, 147,\n\t\t30, 14, 63, 91, 122, 14, 41, 114, 35, 199, 83, 50, 102, 158,\n\t\t155, 128, 16, 152, 135, 106, 54, 179, 33, 151, 32, 27, 190,\n\t\t42, 140, 169, 128, 27, 203, 50, 83, 135, 54, 118, 74, 202,\n\t\t49, 86, 85, 127, 216, 49, 26, 163, 168, 37, 0, 136, 129, 110,\n\t\t226, 185, 129, 106, 210, 141, 177, 186, 58, 196, 17, 41, 133,\n\t\t84, 34, 77, 124, 232, 200, 14, 179, 172, 5, 174, 164, 32,\n\t\t10, 99, 165, 169, 190, 148, 189, 3, 228, 64, 120, 16, 46,\n\t\t135, 7, 190, 71, 157, 122, 254, 52, 131, 98, 144, 81, 81,\n\t\t245, 2, 70, 48, 152, 213, 165, 181, 146, 195, 105, 235, 182,\n\t\t148, 48, 176, 188, 228, 161, 105, 60, 12, 107, 176, 139, 238,\n\t\t229, 20, 42, 8, 211, 39, 71, 161, 5, 93, 29, 57, 253, 12,\n\t\t123, 155, 181, 183, 133, 86, 207, 150, 222, 211, 133, 183,\n\t\t233, 145, 101, 93, 120, 75, 164, 223, 201, 194, 187, 251,\n\t\t165, 43, 175, 176, 35, 114, 193, 239, 174, 47, 193, 113, 88,\n\t\t37, 188, 105, 9, 230, 45, 224, 43, 46, 193, 255, 227, 137,\n\t\t151, 221, 139, 245, 183, 191, 126, 196, 151, 3, 62, 159, 198,\n\t\t247, 202, 99, 118, 84, 31, 89, 119, 133, 92, 226, 67, 117,\n\t\t161, 125, 161, 99, 161, 189, 47, 244, 108, 12, 253, 105, 230,\n\t\t163, 20, 72, 140, 195, 214, 70, 214, 81, 240, 249, 142, 25,\n\t\t96, 124, 165, 129, 94, 206, 235, 39, 181, 134, 218, 39, 17,\n\t\t129, 183, 189, 239, 229, 152, 196, 80, 251, 232, 187, 40,\n\t\t225, 74, 85, 93, 236, 88, 185, 96, 26, 23, 48, 90, 100, 100,\n\t\t229, 68, 62, 63, 159, 39, 94, 67, 221, 119, 247, 47, 227,\n\t\t110, 241, 254, 21, 93, 60, 166, 70, 123, 104, 98, 228, 179,\n\t\t247, 208, 158, 239, 176, 232, 105, 57, 6, 172, 137, 82, 59,\n\t\t166, 150, 66, 197, 186, 239, 1, 8, 179, 100, 213, 4, 63, 82,\n\t\t158, 239, 242, 11, 217, 155, 84, 131, 155, 236, 35, 229, 249,\n\t\t174, 183, 87, 154, 224, 244, 66, 249, 172, 76, 161, 252, 124,\n\t\t7, 76, 136, 185, 94, 150, 97, 142, 27, 82, 223, 148, 25, 41,\n\t\t207, 119, 80, 123, 168, 112, 217, 206, 238, 26, 112, 208,\n\t\t235, 139, 133, 174, 149, 225, 45, 255, 23, 151, 201, 192,\n\t\t179, 242, 133, 14, 109, 81, 12, 106, 43, 24, 80, 110, 195,\n\t\t111, 229, 76, 9, 3, 182, 252, 82, 206, 16, 35, 236, 78, 178,\n\t\t115, 138, 56, 188, 124, 173, 114, 206, 240, 82, 137, 158,\n\t\t3, 80, 122, 3, 56, 68, 241, 229, 186, 133, 198, 120, 70, 45,\n\t\t217, 71, 202, 243, 29, 213, 23, 242, 95, 33, 61, 234, 244,\n\t\t2, 21, 95, 245, 252, 241, 194, 77, 215, 119, 235, 148, 224,\n\t\t77, 190, 53, 60, 98, 164, 0, 208, 174, 221, 214, 91, 22, 62,\n\t\t228, 87, 17, 55, 47, 139, 122, 9, 216, 91, 147, 189, 93, 25,\n\t\t55, 137, 196, 208, 202, 140, 0, 129, 63, 248, 241, 48, 65,\n\t\t11, 149, 228, 192, 53, 30, 150, 4, 234, 1, 82, 17, 137, 136,\n\t\t28, 10, 160, 205, 126, 52, 233, 236, 97, 210, 98, 121, 83,\n\t\t94, 203, 213, 186, 73, 25, 197, 197, 227, 199, 104, 127, 252,\n\t\t10, 39, 160, 156, 150, 253, 26, 168, 188, 29, 247, 146, 219,\n\t\t154, 48, 58, 243, 124, 7, 128, 226, 11, 249, 76, 214, 113,\n\t\t46, 140, 56, 156, 10, 63, 36, 137, 206, 240, 120, 56, 147,\n\t\t112, 184, 27, 134, 119, 159, 239, 127, 184, 188, 157, 185,\n\t\t208, 97, 90, 141, 81, 169, 215, 32, 22, 30, 40, 60, 212, 215,\n\t\t65, 119, 177, 242, 217, 202, 181, 183, 161, 251, 87, 96, 251,\n\t\t23, 16, 226, 238, 151, 80, 162, 142, 34, 182, 118, 42, 112,\n\t\t186, 53, 56, 135, 55, 14, 244, 243, 93, 145, 67, 11, 136,\n\t\t131, 125, 168, 245, 43, 208, 110, 100, 110, 80, 118, 193,\n\t\t241, 176, 155, 161, 114, 111, 186, 27, 191, 19, 31, 137, 122,\n\t\t119, 227, 7, 139, 240, 143, 46, 245, 97, 141, 53, 222, 75,\n\t\t10, 133, 98, 57, 248, 30, 82, 225, 67, 88, 145, 119, 189,\n\t\t78, 182, 12, 73, 116, 39, 121, 237, 37, 116, 227, 119, 79,\n\t\t77, 116, 80, 127, 9, 162, 191, 108, 202, 95, 223, 225, 31,\n\t\t31, 47, 165, 31, 23, 62, 140, 54, 210, 15, 106, 78, 109, 139,\n\t\t69, 229, 83, 3, 43, 152, 201, 87, 91, 12, 249, 219, 98, 61,\n\t\t56, 204, 47, 33, 15, 223, 14, 75, 74, 238, 106, 41, 26, 229,\n\t\t158, 93, 20, 82, 23, 61, 124, 26, 15, 107, 133, 96, 86, 135,\n\t\t107, 11, 106, 97, 7, 111, 240, 150, 46, 130, 204, 44, 119,\n\t\t244, 189, 56, 74, 242, 35, 76, 84, 156, 162, 203, 137, 147,\n\t\t36, 197, 245, 178, 79, 200, 179, 224, 150, 139, 246, 33, 33,\n\t\t5, 50, 79, 227, 163, 128, 121, 174, 40, 174, 56, 95, 246,\n\t\t8, 56, 45, 85, 21, 251, 90, 92, 81, 151, 235, 6, 245, 146,\n\t\t206, 229, 246, 158, 75, 249, 85, 77, 181, 44, 25, 248, 113,\n\t\t52, 141, 57, 254, 70, 77, 239, 174, 182, 157, 26, 4, 114,\n\t\t81, 44, 158, 212, 180, 162, 14, 53, 88, 75, 48, 215, 250,\n\t\t209, 21, 113, 107, 150, 3, 159, 46, 235, 234, 117, 3, 133,\n\t\t100, 40, 218, 109, 132, 74, 247, 44, 58, 194, 66, 77, 9, 53,\n\t\t146, 13, 238, 165, 142, 155, 100, 252, 241, 254, 233, 146,\n\t\t148, 31, 94, 191, 247, 227, 222, 209, 145, 196, 234, 238,\n\t\t245, 117, 241, 124, 117, 187, 16, 167, 83, 161, 89, 239, 169,\n\t\t111, 8, 26, 127, 124, 250, 240, 233, 82, 5, 224, 251, 127,\n\t\t187, 153, 89, 152, 203, 100, 161, 129, 24, 125, 122, 183,\n\t\t159, 121, 57, 33, 129, 214, 244, 156, 111, 89, 174, 155, 63,\n\t\t2, 168, 67, 39, 136, 143, 105, 114, 176, 84, 148, 186, 113,\n\t\t0, 136, 211, 146, 69, 71, 102, 155, 47, 225, 177, 191, 197,\n\t\t14, 94, 97, 50, 184, 55, 16, 203, 255, 230, 157, 121, 52,\n\t\t99, 13, 232, 232, 38, 220, 237, 145, 167, 63, 77, 109, 92,\n\t\t103, 137, 142, 127, 193, 46, 87, 10, 73, 76, 12, 16, 71, 66,\n\t\t215, 132, 153, 242, 8, 64, 37, 15, 19, 83, 166, 132, 123,\n\t\t170, 110, 228, 144, 14, 139, 73, 201, 146, 48, 42, 57, 138,\n\t\t160, 165, 102, 61, 155, 69, 233, 161, 72, 91, 122, 217, 99,\n\t\t46, 227, 200, 134, 244, 182, 174, 83, 219, 15, 57, 68, 137,\n\t\t90, 156, 146, 72, 95, 85, 202, 160, 235, 135, 94, 154, 201,\n\t\t165, 216, 110, 115, 97, 230, 151, 116, 189, 79, 59, 248, 69,\n\t\t30, 177, 46, 96, 139, 44, 226, 228, 234, 77, 180, 197, 175,\n\t\t90, 131, 221, 127, 124, 120, 186, 63, 39, 182, 180, 134, 31,\n\t\t99, 246, 43, 210, 226, 40, 226, 53, 105, 245, 162, 142, 242,\n\t\t130, 180, 90, 139, 190, 32, 173, 110, 109, 182, 240, 41, 73,\n\t\t239, 19, 166, 42, 102, 57, 124, 160, 199, 97, 189, 159, 134,\n\t\t189, 56, 157, 190, 239, 1, 179, 4, 160, 114, 209, 165, 170,\n\t\t22, 217, 139, 3, 21, 26, 38, 218, 126, 100, 158, 237, 131,\n\t\t31, 237, 236, 199, 108, 189, 148, 203, 63, 223, 165, 42, 167,\n\t\t104, 209, 71, 176, 248, 51, 217, 236, 187, 80, 52, 15, 34,\n\t\t63, 28, 228, 97, 249, 228, 237, 219, 225, 36, 101, 73, 229,\n\t\t135, 109, 53, 128, 81, 157, 116, 12, 207, 219, 226, 76, 71,\n\t\t174, 3, 157, 111, 205, 254, 29, 248, 119, 73, 108, 237, 32,\n\t\t207, 242, 200, 111, 156, 201, 82, 124, 187, 190, 131, 127,\n\t\t255, 120, 185, 170, 36, 184, 178, 131, 203, 180, 155, 154,\n\t\t217, 126, 168, 233, 206, 240, 53, 163, 22, 187, 105, 172,\n\t\t49, 102, 219, 49, 252, 42, 108, 86, 24, 209, 172, 89, 170,\n\t\t208, 137, 177, 228, 130, 161, 133, 50, 190, 175, 149, 171,\n\t\t209, 48, 38, 25, 180, 89, 46, 25, 153, 167, 106, 106, 250,\n\t\t190, 23, 51, 71, 148, 244, 97, 129, 53, 62, 32, 125, 57, 184,\n\t\t187, 95, 15, 175, 26, 199, 204, 128, 61, 52, 151, 106, 10,\n\t\t105, 26, 190, 252, 202, 194, 167, 156, 216, 139, 192, 8, 115,\n\t\t55, 222, 247, 21, 213, 136, 174, 44, 157, 24, 46, 37, 204,\n\t\t7, 131, 21, 48, 78, 99, 180, 229, 165, 49, 3, 224, 249, 142,\n\t\t89, 84, 114, 114, 39, 177, 239, 202, 98, 205, 158, 96, 212,\n\t\t33, 66, 201, 225, 10, 0, 22, 95, 86, 230, 190, 193, 188, 99,\n\t\t140, 93, 54, 13, 150, 203, 131, 104, 146, 154, 217, 230, 96,\n\t\t162, 250, 152, 86, 117, 113, 202, 65, 183, 35, 75, 125, 247,\n\t\t56, 95, 88, 40, 165, 11, 39, 63, 235, 254, 155, 34, 3, 155,\n\t\t196, 54, 4, 98, 159, 136, 66, 73, 73, 143, 47, 34, 179, 168,\n\t\t160, 30, 58, 115, 10, 162, 200, 110, 239, 16, 75, 0, 20, 251,\n\t\t204, 18, 71, 153, 212, 244, 122, 216, 67, 172, 129, 79, 8,\n\t\t173, 7, 34, 74, 170, 178, 65, 195, 175, 135, 106, 253, 51,\n\t\t155, 77, 162, 242, 133, 161, 148, 36, 183, 197, 185, 233,\n\t\t189, 123, 9, 173, 100, 92, 82, 120, 117, 207, 161, 12, 3,\n\t\t244, 50, 164, 189, 186, 13, 168, 36, 122, 144, 79, 32, 20,\n\t\t117, 74, 203, 102, 25, 22, 42, 74, 41, 0, 164, 180, 59, 38,\n\t\t102, 142, 211, 222, 143, 132, 91, 53, 167, 16, 105, 113, 195,\n\t\t243, 98, 205, 208, 114, 40, 5, 166, 4, 1, 154, 250, 30, 200,\n\t\t129, 106, 17, 214, 77, 119, 197, 22, 185, 16, 200, 74, 26,\n\t\t161, 149, 137, 48, 36, 177, 56, 40, 33, 231, 36, 234, 16,\n\t\t5, 139, 243, 153, 15, 92, 137, 150, 119, 224, 177, 81, 47,\n\t\t109, 16, 178, 216, 181, 99, 148, 42, 68, 5, 18, 114, 78, 26,\n\t\t135, 45, 87, 116, 94, 80, 133, 124, 186, 39, 12, 8, 213, 37,\n\t\t18, 121, 183, 176, 45, 161, 231, 180, 219, 215, 18, 26, 149,\n\t\t58, 37, 230, 42, 153, 233, 200, 41, 68, 148, 227, 109, 168,\n\t\t37, 214, 229, 61, 243, 100, 209, 32, 149, 2, 145, 239, 65,\n\t\t20, 213, 85, 220, 85, 212, 7, 151, 40, 12, 81, 23, 67, 127,\n\t\t241, 241, 58, 236, 252, 75, 111, 178, 73, 130, 90, 154, 150,\n\t\t80, 161, 138, 36, 168, 134, 140, 68, 150, 176, 231, 35, 18,\n\t\t83, 201, 243, 29, 102, 81, 230, 118, 4, 161, 66, 110, 19,\n\t\t130, 40, 225, 184, 54, 108, 43, 69, 249, 3, 229, 126, 186,\n\t\t229, 78, 250, 14, 232, 10, 4, 108, 36, 90, 110, 169, 134,\n\t\t82, 139, 106, 104, 16, 32, 240, 17, 48, 102, 30, 6, 123, 24,\n\t\t191, 123, 223, 40, 164, 82, 135, 69, 19, 242, 150, 201, 144,\n\t\t38, 89, 230, 196, 196, 68, 162, 58, 98, 145, 155, 175, 150,\n\t\t33, 23, 228, 13, 146, 68, 7, 49, 244, 88, 49, 93, 183, 211,\n\t\t250, 124, 63, 95, 134, 202, 76, 23, 90, 109, 9, 23, 143, 91,\n\t\t60, 25, 51, 111, 216, 124, 48, 21, 75, 79, 229, 217, 132,\n\t\t22, 123, 128, 70, 89, 108, 23, 69, 39, 136, 87, 136, 88, 50,\n\t\t205, 60, 151, 136, 153, 9, 245, 50, 22, 146, 152, 206, 139,\n\t\t123, 135, 94, 196, 204, 131, 176, 85, 37, 188, 158, 72, 239,\n\t\t252, 213, 126, 116, 164, 156, 184, 176, 216, 123, 200, 45,\n\t\t80, 237, 147, 232, 69, 149, 58, 76, 105, 66, 73, 208, 156,\n\t\t65, 161, 117, 100, 112, 6, 133, 1, 193, 192, 15, 16, 12, 2,\n\t\t3, 192, 218, 183, 230, 199, 251, 110, 191, 109, 61, 245, 64,\n\t\t53, 214, 185, 140, 192, 168, 73, 226, 99, 165, 192, 173, 14,\n\t\t136, 202, 10, 81, 236, 2, 145, 40, 136, 25, 98, 4, 162, 148,\n\t\t5, 34, 132, 110, 16, 97, 22, 205, 15, 177, 65, 149, 152, 181,\n\t\t53, 41, 4, 37, 47, 56, 29, 239, 123, 200, 61, 212, 215, 135,\n\t\t129, 155, 59, 29, 134, 148, 117, 24, 184, 189, 225, 6, 124,\n\t\t52, 233, 173, 77, 111, 141, 122, 107, 213, 175, 117, 140,\n\t\t118, 61, 197, 80, 145, 202, 236, 185, 251, 98, 178, 202, 253,\n\t\t151, 238, 183, 235, 43, 255, 231, 135, 63, 127, 246, 123,\n\t\t9, 27, 124, 65, 115, 244, 186, 152, 91, 99, 196, 200, 17,\n\t\t107, 93, 3, 205, 133, 200, 88, 226, 206, 124, 171, 137, 247,\n\t\t137, 237, 18, 185, 108, 241, 41, 7, 234, 5, 110, 44, 167,\n\t\t204, 211, 102, 146, 149, 230, 168, 221, 163, 128, 185, 220,\n\t\t2, 32, 225, 109, 0, 128, 232, 214, 90, 142, 187, 171, 59,\n\t\t132, 130, 114, 20, 170, 91, 128, 164, 118, 187, 233, 183,\n\t\t245, 125, 113, 230, 242, 82, 235, 207, 119, 212, 33, 164,\n\t\t216, 28, 1, 132, 4, 121, 174, 61, 244, 158, 65, 184, 176,\n\t\t24, 65, 232, 81, 28, 62, 129, 218, 12, 57, 12, 189, 19, 144,\n\t\t216, 253, 202, 162, 229, 165, 36, 230, 37, 69, 140, 6, 122,\n\t\t143, 120, 244, 136, 180, 219, 83, 155, 32, 7, 49, 78, 139,\n\t\t14, 121, 235, 38, 53, 140, 238, 29, 68, 212, 151, 32, 173,\n\t\t165, 103, 127, 14, 130, 144, 121, 29, 55, 101, 84, 180, 107,\n\t\t67, 229, 141, 83, 20, 26, 148, 173, 43, 174, 197, 173, 180,\n\t\t245, 192, 58, 224, 173, 7, 214, 1, 131, 223, 192, 55, 232,\n\t\t81, 140, 135, 219, 228, 87, 232, 189, 129, 111, 208, 123,\n\t\t3, 223, 160, 63, 109, 125, 55, 25, 236, 252, 43, 130, 236,\n\t\t1, 185, 1, 110, 112, 223, 158, 105, 63, 127, 120, 127, 25,\n\t\t145, 39, 93, 120, 52, 90, 89, 254, 49, 209, 248, 48, 247,\n\t\t215, 156, 104, 0, 45, 212, 2, 42, 180, 252, 29, 78, 52, 145,\n\t\t165, 46, 64, 254, 245, 38, 26, 37, 158, 96, 174, 230, 144,\n\t\t160, 209, 100, 4, 225, 183, 20, 34, 164, 108, 36, 18, 141,\n\t\t170, 231, 49, 19, 156, 209, 246, 110, 90, 166, 227, 66, 222,\n\t\t235, 124, 188, 152, 161, 131, 192, 143, 131, 176, 247, 60,\n\t\t45, 23, 61, 83, 166, 109, 185, 55, 55, 138, 94, 102, 232,\n\t\t233, 4, 231, 253, 102, 128, 49, 160, 152, 150, 249, 120, 50,\n\t\t65, 185, 233, 181, 11, 163, 7, 103, 37, 13, 122, 3, 222, 154,\n\t\t58, 159, 154, 182, 182, 28, 109, 73, 217, 243, 138, 50, 52,\n\t\t34, 7, 228, 6, 184, 193, 125, 210, 235, 116, 221, 221, 250,\n\t\t253, 252, 225, 135, 79, 126, 126, 248, 254, 114, 7, 187, 80,\n\t\t143, 220, 196, 89, 109, 205, 81, 36, 139, 254, 118, 157, 120,\n\t\t48, 151, 91, 147, 38, 94, 35, 91, 243, 250, 249, 218, 236,\n\t\t121, 190, 139, 14, 235, 53, 218, 123, 195, 10, 240, 150, 142,\n\t\t16, 148, 221, 205, 158, 60, 243, 170, 227, 211, 151, 117,\n\t\t249, 171, 193, 251, 124, 135, 149, 143, 244, 244, 21, 170,\n\t\t195, 252, 134, 238, 223, 24, 200, 55, 208, 226, 244, 240,\n\t\t233, 243, 101, 212, 223, 116, 37, 234, 175, 88, 71, 188, 153,\n\t\t26, 241, 214, 42, 122, 163, 19, 120, 29, 151, 50, 254, 136,\n\t\t241, 139, 26, 121, 203, 248, 239, 110, 247, 149, 6, 56, 191,\n\t\t35, 114, 76, 169, 124, 21, 114, 220, 125, 149, 145, 124, 3,\n\t\t57, 62, 189, 200, 221, 95, 40, 177, 110, 153, 142, 232, 82,\n\t\t161, 91, 141, 223, 88, 212, 222, 130, 131, 55, 44, 173, 255,\n\t\t139, 26, 175, 67, 83, 139, 235, 248, 69, 208, 200, 170, 248,\n\t\t229, 224, 188, 109, 109, 252, 239, 63, 29, 62, 127, 248, 254,\n\t\t47, 23, 228, 120, 85, 167, 239, 54, 49, 126, 53, 140, 254,\n\t\t47, 98, 252, 213, 168, 19, 104, 190, 144, 22, 133, 65, 249,\n\t\t58, 208, 220, 50, 235, 190, 32, 193, 53, 48, 42, 54, 151,\n\t\t18, 222, 0, 213, 124, 167, 127, 25, 164, 98, 84, 122, 131,\n\t\t228, 136, 28, 220, 90, 38, 191, 2, 176, 111, 160, 185, 148,\n\t\t81, 225, 241, 95, 182, 113, 189, 5, 156, 183, 66, 83, 92,\n\t\t138, 183, 160, 41, 116, 13, 154, 66, 183, 104, 110, 245, 239,\n\t\t251, 58, 52, 69, 124, 61, 185, 219, 103, 220, 91, 192, 124,\n\t\t61, 88, 252, 173, 245, 236, 88, 232, 234, 121, 251, 107, 1,\n\t\t115, 109, 46, 62, 254, 244, 249, 253, 195, 11, 130, 208, 239,\n\t\t254, 39, 217, 17, 36, 74, 206, 23, 110, 9, 183, 88, 242, 55,\n\t\t78, 79, 68, 250, 189, 109, 9, 18, 100, 232, 203, 246, 4, 196,\n\t\t155, 243, 243, 45, 224, 8, 114, 40, 20, 145, 18, 66, 139,\n\t\t161, 180, 170, 215, 31, 98, 205, 178, 189, 202, 177, 75, 190,\n\t\t218, 186, 93, 127, 212, 185, 23, 215, 179, 92, 83, 76, 38,\n\t\t174, 234, 242, 10, 122, 93, 145, 178, 75, 98, 197, 190, 188,\n\t\t174, 55, 31, 208, 33, 244, 42, 238, 239, 128, 204, 192, 164,\n\t\t138, 59, 100, 117, 20, 167, 14, 168, 207, 202, 221, 112, 232,\n\t\t247, 226, 172, 185, 208, 134, 253, 157, 206, 26, 230, 91,\n\t\t191, 120, 214, 188, 225, 4, 242, 150, 89, 147, 127, 127, 140,\n\t\t212, 239, 138, 171, 191, 3, 76, 76, 153, 14, 163, 252, 78,\n\t\t23, 147, 101, 73, 88, 103, 141, 222, 123, 230, 217, 247, 34,\n\t\t226, 101, 117, 99, 110, 51, 199, 219, 212, 89, 137, 126, 76,\n\t\t158, 37, 193, 38, 143, 206, 157, 97, 176, 36, 83, 199, 102,\n\t\t142, 77, 156, 179, 18, 215, 173, 58, 63, 188, 127, 184, 240,\n\t\t145, 152, 46, 212, 102, 87, 81, 87, 74, 37, 168, 194, 59,\n\t\t22, 137, 219, 225, 162, 35, 11, 48, 130, 48, 212, 155, 150,\n\t\t136, 35, 195, 251, 169, 199, 214, 130, 236, 141, 86, 106,\n\t\t201, 235, 207, 51, 47, 15, 251, 81, 202, 175, 45, 45, 121,\n\t\t46, 74, 91, 75, 214, 144, 149, 57, 7, 233, 236, 119, 47, 249,\n\t\t159, 239, 50, 230, 80, 92, 162, 18, 210, 110, 98, 68, 138,\n\t\t145, 226, 136, 73, 151, 227, 104, 44, 106, 164, 18, 90, 83,\n\t\t48, 91, 7, 115, 209, 136, 101, 234, 73, 31, 187, 197, 38,\n\t\t137, 163, 191, 231, 69, 102, 177, 181, 47, 174, 230, 144,\n\t\t143, 144, 235, 13, 189, 208, 15, 31, 239, 127, 184, 48, 95,\n\t\t74, 15, 91, 183, 75, 241, 45, 78, 151, 86, 93, 183, 95, 233,\n\t\t116, 105, 163, 103, 119, 197, 233, 146, 200, 176, 219, 228,\n\t\t83, 12, 29, 171, 200, 153, 212, 27, 68, 136, 226, 239, 130,\n\t\t95, 114, 57, 108, 223, 71, 146, 120, 0, 208, 84, 73, 60, 248,\n\t\t205, 171, 230, 19, 235, 178, 66, 251, 212, 104, 119, 4, 192,\n\t\t217, 183, 26, 50, 144, 184, 22, 227, 223, 201, 219, 198, 102,\n\t\t191, 26, 117, 149, 182, 9, 37, 244, 10, 85, 124, 252, 166,\n\t\t204, 197, 220, 120, 200, 179, 207, 89, 235, 27, 191, 191,\n\t\t176, 190, 10, 33, 67, 170, 78, 31, 72, 28, 96, 92, 29, 220,\n\t\t143, 247, 63, 250, 143, 247, 79, 255, 124, 121, 75, 74, 23,\n\t\t250, 111, 171, 218, 17, 84, 12, 88, 154, 170, 173, 20, 177,\n\t\t172, 164, 28, 80, 134, 53, 134, 34, 202, 229, 35, 11, 38,\n\t\t20, 143, 155, 75, 66, 98, 218, 171, 226, 173, 162, 4, 81,\n\t\t252, 202, 234, 27, 116, 248, 169, 16, 95, 21, 234, 170, 98,\n\t\t243, 193, 92, 2, 213, 26, 8, 146, 26, 110, 170, 249, 117,\n\t\t239, 67, 37, 105, 1, 106, 180, 224, 123, 200, 41, 203, 242,\n\t\t153, 66, 173, 164, 222, 109, 22, 167, 222, 181, 138, 127,\n\t\t206, 30, 168, 80, 187, 33, 50, 188, 127, 255, 223, 127, 186,\n\t\t60, 167, 210, 226, 122, 172, 13, 75, 97, 113, 164, 89, 170,\n\t\t248, 63, 137, 234, 29, 211, 254, 29, 44, 94, 192, 242, 97,\n\t\t137, 25, 16, 98, 26, 222, 54, 47, 227, 6, 72, 110, 191, 196,\n\t\t10, 192, 92, 92, 155, 32, 130, 248, 206, 141, 14, 154, 56,\n\t\t206, 148, 144, 26, 252, 172, 193, 236, 236, 187, 223, 126,\n\t\t242, 227, 251, 209, 167, 114, 195, 184, 231, 5, 29, 107, 186,\n\t\t212, 123, 89, 99, 50, 71, 9, 113, 65, 152, 67, 135, 137, 134,\n\t\t63, 122, 85, 67, 225, 165, 172, 4, 17, 20, 143, 216, 192,\n\t\t227, 53, 1, 132, 38, 67, 218, 219, 48, 175, 175, 109, 88,\n\t\t189, 66, 109, 106, 240, 173, 14, 93, 249, 229, 32, 47, 117,\n\t\t184, 113, 29, 238, 94, 249, 195, 164, 222, 102, 160, 107,\n\t\t212, 97, 53, 116, 137, 18, 2, 73, 26, 26, 237, 116, 151, 134,\n\t\t187, 158, 28, 131, 248, 3, 17, 19, 216, 60, 218, 142, 186,\n\t\t211, 159, 69, 203, 171, 219, 112, 100, 7, 95, 79, 34, 160,\n\t\t73, 60, 24, 79, 20, 0, 68, 81, 223, 107, 44, 158, 214, 84,\n\t\t235, 210, 157, 4, 54, 187, 44, 123, 240, 198, 8, 108, 84,\n\t\t207, 25, 29, 5, 66, 205, 12, 37, 106, 12, 112, 7, 42, 25,\n\t\t191, 174, 24, 255, 240, 254, 195, 229, 152, 93, 209, 27, 161,\n\t\t136, 188, 235, 20, 10, 109, 238, 113, 236, 24, 227, 193, 98,\n\t\t75, 89, 228, 134, 69, 103, 55, 10, 251, 147, 198, 38, 130,\n\t\t208, 120, 131, 113, 246, 48, 251, 142, 35, 248, 22, 68, 217,\n\t\t198, 196, 105, 185, 238, 65, 96, 33, 200, 112, 168, 109, 246,\n\t\t37, 68, 37, 12, 229, 231, 121, 148, 114, 163, 154, 217, 26,\n\t\t24, 191, 211, 41, 56, 16, 151, 167, 241, 27, 159, 239, 114,\n\t\t33, 238, 86, 147, 24, 22, 139, 2, 167, 61, 44, 9, 169, 155,\n\t\t121, 5, 175, 183, 26, 181, 43, 229, 1, 106, 82, 51, 155, 53,\n\t\t160, 219, 166, 255, 235, 179, 181, 57, 27, 214, 156, 97, 239,\n\t\t28, 109, 43, 188, 209, 64, 157, 173, 49, 107, 203, 66, 190,\n\t\t25, 132, 20, 151, 199, 1, 32, 247, 46, 241, 12, 142, 16, 154,\n\t\t218, 158, 72, 151, 84, 221, 116, 40, 99, 39, 137, 183, 149,\n\t\t119, 179, 56, 216, 155, 76, 245, 180, 50, 134, 133, 236, 53,\n\t\t155, 6, 209, 108, 129, 207, 67, 185, 134, 171, 218, 235, 215,\n\t\t124, 173, 173, 110, 20, 207, 125, 173, 181, 28, 196, 32, 83,\n\t\t244, 100, 227, 18, 128, 211, 155, 109, 124, 27, 94, 222, 243,\n\t\t60, 124, 8, 78, 30, 23, 99, 154, 161, 87, 110, 38, 44, 3,\n\t\t86, 121, 226, 195, 99, 15, 109, 232, 29, 97, 60, 10, 58, 174,\n\t\t206, 140, 195, 231, 135, 31, 253, 119, 247, 211, 63, 255,\n\t\t124, 255, 116, 161, 91, 75, 87, 132, 47, 98, 58, 18, 143,\n\t\t132, 116, 45, 34, 49, 93, 15, 72, 44, 206, 144, 2, 205, 226,\n\t\t180, 194, 65, 131, 9, 71, 208, 96, 168, 138, 19, 241, 120,\n\t\t111, 65, 90, 242, 54, 80, 219, 18, 243, 17, 171, 169, 232,\n\t\t195, 136, 225, 66, 35, 72, 172, 63, 41, 48, 251, 209, 76,\n\t\t149, 120, 112, 220, 118, 214, 24, 44, 215, 163, 50, 75, 188,\n\t\t133, 107, 81, 153, 175, 43, 207, 223, 31, 62, 191, 142, 224,\n\t\t190, 177, 233, 197, 99, 18, 133, 254, 215, 145, 25, 111, 33,\n\t\t51, 67, 232, 51, 84, 9, 177, 144, 139, 88, 57, 188, 29, 157,\n\t\t144, 190, 164, 180, 90, 186, 189, 121, 48, 118, 179, 183,\n\t\t150, 114, 72, 220, 120, 12, 245, 151, 84, 112, 94, 62, 143,\n\t\t242, 55, 198, 50, 126, 193, 80, 190, 58, 138, 235, 141, 188,\n\t\t64, 84, 170, 216, 163, 101, 211, 154, 183, 69, 209, 162, 10,\n\t\t174, 231, 51, 137, 249, 135, 179, 240, 117, 37, 110, 241,\n\t\t173, 139, 219, 175, 197, 183, 180, 119, 82, 224, 249, 14,\n\t\t75, 253, 18, 224, 118, 191, 41, 116, 87, 173, 218, 230, 251,\n\t\t11, 57, 28, 93, 185, 117, 37, 164, 64, 14, 83, 10, 105, 74,\n\t\t178, 30, 67, 147, 152, 95, 99, 7, 43, 75, 124, 64, 241, 111,\n\t\t44, 180, 148, 196, 65, 24, 239, 201, 201, 168, 13, 22, 115,\n\t\t143, 97, 2, 148, 206, 222, 135, 89, 196, 145, 120, 253, 158,\n\t\t34, 191, 203, 254, 78, 35, 99, 30, 6, 17, 155, 252, 188, 139,\n\t\t93, 239, 235, 253, 79, 135, 139, 211, 36, 93, 185, 44, 19,\n\t\t33, 71, 130, 189, 239, 175, 155, 81, 189, 186, 17, 245, 242,\n\t\t170, 143, 209, 141, 11, 223, 203, 125, 79, 60, 46, 57, 168,\n\t\t215, 118, 198, 175, 15, 207, 141, 125, 236, 241, 194, 1, 22,\n\t\t93, 179, 50, 142, 209, 217, 153, 250, 23, 247, 255, 87, 238,\n\t\t251, 183, 250, 240, 253, 227, 211, 139, 203, 203, 73, 100,\n\t\t12, 174, 180, 4, 241, 34, 55, 76, 105, 198, 20, 94, 18, 210,\n\t\t230, 86, 102, 204, 225, 225, 206, 176, 48, 35, 97, 81, 249,\n\t\t109, 26, 219, 76, 180, 16, 79, 58, 173, 199, 68, 214, 121,\n\t\t108, 211, 216, 102, 177, 173, 200, 219, 172, 207, 119, 72,\n\t\t244, 133, 208, 237, 126, 67, 240, 110, 238, 209, 175, 96,\n\t\t63, 159, 90, 52, 86, 228, 19, 98, 252, 242, 157, 230, 168,\n\t\t155, 245, 216, 197, 188, 110, 184, 191, 176, 251, 186, 99,\n\t\t127, 81, 21, 9, 229, 234, 249, 45, 40, 156, 151, 118, 132,\n\t\t61, 63, 242, 150, 221, 126, 109, 217, 172, 101, 127, 45, 175,\n\t\t115, 155, 167, 125, 109, 56, 175, 216, 45, 242, 1, 66, 181,\n\t\t219, 144, 222, 48, 192, 23, 81, 254, 206, 7, 88, 88, 219,\n\t\t193, 116, 122, 102, 110, 79, 198, 70, 89, 254, 171, 99, 35,\n\t\t252, 237, 219, 208, 59, 26, 25, 172, 173, 113, 182, 87, 248,\n\t\t242, 221, 175, 199, 239, 195, 127, 127, 152, 46, 142, 211,\n\t\t249, 194, 14, 239, 212, 165, 131, 250, 166, 18, 201, 82, 13,\n\t\t165, 98, 31, 161, 205, 234, 185, 197, 120, 83, 91, 126, 201,\n\t\t178, 90, 140, 91, 190, 132, 42, 151, 182, 28, 246, 205, 140,\n\t\t189, 247, 92, 126, 45, 62, 60, 1, 88, 22, 47, 126, 171, 90,\n\t\t136, 25, 171, 3, 108, 147, 240, 35, 226, 141, 72, 253, 216,\n\t\t97, 77, 204, 248, 136, 135, 96, 57, 243, 54, 108, 174, 197,\n\t\t64, 137, 152, 134, 115, 232, 84, 28, 116, 12, 49, 182, 221,\n\t\t4, 93, 98, 23, 168, 75, 216, 164, 142, 137, 51, 118, 125,\n\t\t71, 116, 53, 134, 90, 74, 113, 81, 139, 10, 105, 104, 217,\n\t\t73, 226, 82, 214, 228, 60, 243, 189, 69, 85, 178, 139, 70,\n\t\t185, 209, 214, 214, 230, 45, 133, 119, 29, 8, 173, 93, 143,\n\t\t173, 52, 237, 31, 142, 79, 143, 47, 43, 26, 231, 43, 230,\n\t\t89, 137, 66, 150, 32, 28, 177, 133, 94, 103, 232, 20, 146,\n\t\t24, 64, 81, 72, 52, 153, 141, 187, 253, 50, 221, 213, 152,\n\t\t150, 247, 148, 52, 154, 84, 156, 17, 135, 47, 94, 126, 40,\n\t\t189, 115, 81, 9, 115, 226, 237, 161, 135, 84, 186, 232, 140,\n\t\t143, 38, 99, 136, 169, 171, 195, 230, 164, 177, 217, 103,\n\t\t47, 247, 84, 66, 36, 153, 66, 165, 89, 223, 199, 107, 230,\n\t\t74, 245, 230, 136, 1, 232, 77, 42, 149, 8, 32, 82, 169, 72,\n\t\t4, 162, 208, 179, 250, 21, 236, 106, 13, 140, 195, 85, 193,\n\t\t120, 216, 77, 126, 177, 221, 95, 141, 248, 73, 194, 177, 108,\n\t\t82, 214, 190, 121, 197, 198, 192, 74, 22, 31, 187, 218, 151,\n\t\t109, 61, 146, 96, 213, 68, 67, 205, 155, 6, 237, 69, 21, 200,\n\t\t124, 113, 81, 181, 49, 170, 107, 98, 136, 233, 152, 190, 34,\n\t\t118, 131, 80, 162, 126, 203, 131, 118, 81, 28, 92, 242, 131,\n\t\t88, 183, 10, 108, 134, 60, 73, 49, 119, 48, 113, 32, 169,\n\t\t58, 253, 145, 210, 185, 146, 12, 188, 252, 74, 25, 93, 119,\n\t\t80, 61, 108, 27, 158, 5, 205, 96, 35, 165, 55, 141, 149, 138,\n\t\t13, 165, 37, 100, 169, 83, 252, 56, 116, 145, 193, 129, 6,\n\t\t71, 174, 169, 73, 173, 164, 145, 69, 206, 42, 61, 129, 106,\n\t\t55, 89, 159, 172, 3, 214, 35, 123, 95, 251, 163, 104, 72,\n\t\t43, 62, 46, 208, 177, 36, 72, 37, 245, 52, 90, 181, 97, 230,\n\t\t198, 1, 229, 167, 131, 159, 62, 60, 77, 243, 5, 235, 158,\n\t\t243, 111, 28, 30, 151, 249, 88, 40, 116, 204, 229, 70, 80,\n\t\t218, 142, 199, 142, 55, 242, 228, 114, 59, 112, 109, 151,\n\t\t186, 110, 231, 203, 101, 183, 221, 67, 79, 247, 70, 217, 65,\n\t\t187, 212, 118, 35, 83, 46, 167, 251, 212, 201, 78, 118, 236,\n\t\t92, 203, 149, 12, 215, 133, 59, 31, 62, 189, 62, 110, 229,\n\t\t55, 30, 55, 137, 243, 149, 113, 143, 133, 174, 117, 240, 230,\n\t\t176, 114, 249, 55, 140, 197, 117, 44, 223, 144, 119, 124,\n\t\t124, 120, 21, 77, 191, 121, 244, 231, 90, 67, 113, 128, 133,\n\t\t249, 220, 146, 149, 123, 42, 234, 203, 96, 46, 121, 120, 22,\n\t\t202, 147, 250, 26, 112, 167, 63, 230, 34, 132, 185, 133, 217,\n\t\t155, 127, 173, 212, 165, 22, 17, 29, 138, 159, 40, 178, 3,\n\t\t255, 200, 190, 188, 139, 204, 176, 152, 227, 132, 209, 58,\n\t\t167, 184, 209, 178, 122, 67, 216, 180, 248, 74, 29, 163, 73,\n\t\t103, 48, 44, 197, 22, 24, 252, 121, 5, 194, 39, 205, 214,\n\t\t99, 131, 98, 197, 129, 47, 121, 91, 203, 233, 239, 105, 37,\n\t\t234, 4, 196, 186, 125, 222, 162, 229, 93, 222, 25, 98, 235,\n\t\t180, 245, 185, 228, 165, 255, 187, 233, 172, 181, 23, 43,\n\t\t176, 30, 243, 239, 58, 56, 39, 248, 222, 142, 206, 173, 205,\n\t\t113, 250, 231, 215, 8, 176, 173, 103, 99, 50, 135, 196, 38,\n\t\t103, 124, 131, 244, 48, 157, 208, 158, 36, 224, 203, 82, 201,\n\t\t180, 208, 242, 243, 29, 170, 221, 151, 43, 49, 148, 150, 243,\n\t\t108, 178, 197, 115, 3, 76, 123, 23, 109, 147, 190, 234, 104,\n\t\t117, 221, 102, 177, 246, 145, 48, 157, 88, 230, 169, 124,\n\t\t112, 104, 168, 44, 9, 86, 34, 238, 102, 185, 237, 84, 75,\n\t\t89, 125, 152, 125, 29, 65, 62, 228, 87, 99, 104, 189, 164,\n\t\t242, 210, 251, 154, 176, 84, 184, 66, 227, 207, 193, 241,\n\t\t23, 166, 131, 126, 237, 140, 21, 155, 197, 241, 175, 250,\n\t\t212, 29, 192, 158, 104, 167, 73, 224, 185, 145, 32, 69, 218,\n\t\t8, 128, 55, 118, 217, 171, 163, 255, 63, 126, 122, 56, 124,\n\t\t254, 240, 248, 233, 53, 2, 232, 175, 17, 64, 55, 2, 160, 43,\n\t\t4, 16, 87, 2, 48, 1, 53, 12, 1, 53, 189, 70, 10, 237, 132,\n\t\t20, 10, 134, 146, 179, 75, 185, 77, 62, 147, 197, 147, 243,\n\t\t173, 143, 232, 14, 136, 161, 139, 128, 31, 74, 144, 132, 146,\n\t\t36, 114, 235, 228, 83, 200, 169, 64, 18, 89, 78, 147, 7, 12,\n\t\t73, 2, 208, 136, 59, 34, 200, 14, 67, 5, 106, 106, 166, 137,\n\t\t185, 182, 57, 169, 227, 9, 213, 214, 129, 152, 119, 83, 14,\n\t\t24, 115, 212, 184, 151, 84, 229, 84, 19, 10, 130, 132, 53,\n\t\t145, 184, 139, 226, 235, 170, 72, 112, 61, 20, 167, 128, 53,\n\t\t180, 194, 125, 195, 17, 191, 66, 2, 161, 36, 151, 114, 16,\n\t\t199, 220, 185, 134, 20, 83, 181, 247, 73, 252, 50, 139, 65,\n\t\t50, 229, 32, 129, 25, 60, 164, 0, 84, 243, 154, 144, 184,\n\t\t143, 109, 104, 13, 246, 154, 85, 148, 37, 94, 11, 141, 159,\n\t\t228, 60, 234, 221, 131, 57, 170, 202, 156, 6, 38, 117, 149,\n\t\t33, 245, 181, 154, 29, 227, 175, 100, 41, 52, 214, 234, 53,\n\t\t165, 198, 80, 50, 115, 12, 180, 196, 105, 123, 37, 80, 147,\n\t\t112, 12, 175, 197, 105, 58, 66, 72, 18, 244, 62, 58, 137,\n\t\t42, 3, 221, 53, 110, 61, 103, 199, 109, 114, 175, 236, 29,\n\t\t98, 17, 22, 56, 186, 220, 130, 44, 120, 37, 6, 40, 204, 253,\n\t\t203, 252, 228, 241, 76, 252, 172, 122, 7, 0, 113, 242, 152,\n\t\t67, 42, 89, 2, 215, 81, 217, 152, 183, 74, 40, 199, 50, 180,\n\t\t144, 146, 160, 127, 243, 73, 191, 30, 168, 104, 106, 174,\n\t\t78, 18, 229, 94, 102, 84, 184, 84, 165, 121, 29, 93, 191,\n\t\t208, 250, 240, 233, 251, 199, 215, 38, 204, 253, 229, 150,\n\t\t93, 132, 68, 215, 109, 251, 132, 198, 127, 163, 9, 165, 88,\n\t\t75, 41, 10, 33, 64, 215, 136, 237, 164, 23, 239, 141, 41,\n\t\t80, 94, 8, 15, 219, 247, 145, 68, 232, 44, 85, 18, 15, 126,\n\t\t243, 170, 249, 158, 239, 18, 160, 171, 229, 168, 46, 209,\n\t\t174, 5, 8, 99, 178, 136, 241, 70, 38, 229, 179, 174, 7, 17,\n\t\t67, 186, 65, 155, 160, 158, 189, 37, 152, 224, 23, 87, 214,\n\t\t218, 175, 13, 72, 54, 61, 61, 30, 14, 251, 251, 15, 79, 23,\n\t\t94, 106, 243, 119, 155, 187, 102, 9, 66, 118, 210, 196, 25,\n\t\t98, 76, 53, 243, 2, 111, 39, 23, 101, 41, 10, 201, 75, 160,\n\t\t7, 213, 165, 236, 73, 131, 115, 251, 86, 71, 224, 99, 40,\n\t\t53, 84, 113, 78, 215, 36, 216, 240, 242, 112, 92, 138, 223,\n\t\t108, 135, 46, 194, 188, 157, 34, 237, 56, 106, 226, 99, 255,\n\t\t0, 96, 129, 200, 218, 95, 1, 26, 112, 140, 223, 77, 47, 174,\n\t\t54, 65, 91, 50, 58, 25, 16, 38, 34, 171, 195, 154, 53, 48,\n\t\t172, 85, 131, 226, 172, 241, 227, 138, 130, 87, 171, 166,\n\t\t120, 99, 164, 150, 206, 47, 200, 55, 40, 22, 220, 47, 96,\n\t\t156, 141, 129, 193, 253, 172, 214, 232, 41, 164, 82, 112,\n\t\t202, 45, 160, 184, 34, 228, 189, 170, 58, 136, 20, 48, 161,\n\t\t232, 12, 21, 13, 94, 145, 200, 126, 197, 245, 75, 73, 169,\n\t\t125, 17, 250, 150, 58, 70, 147, 6, 129, 31, 109, 14, 8, 252,\n\t\t89, 227, 71, 107, 124, 247, 21, 104, 104, 129, 97, 105, 124,\n\t\t0, 227, 151, 230, 21, 154, 5, 10, 123, 88, 192, 255, 242,\n\t\t25, 181, 244, 199, 218, 54, 96, 172, 233, 1, 202, 57, 8, 11,\n\t\t244, 95, 66, 72, 163, 14, 37, 6, 99, 184, 174, 92, 233, 30,\n\t\t46, 175, 112, 15, 231, 183, 182, 135, 23, 238, 105, 175, 75,\n\t\t226, 47, 226, 47, 229, 135, 23, 247, 181, 114, 186, 175, 189,\n\t\t160, 92, 72, 191, 228, 120, 64, 103, 199, 211, 86, 2, 196,\n\t\t230, 18, 34, 255, 78, 124, 72, 82, 199, 92, 89, 162, 104,\n\t\t59, 9, 208, 71, 41, 11, 95, 46, 122, 152, 152, 178, 168, 128,\n\t\t242, 134, 94, 115, 155, 49, 23, 241, 213, 225, 245, 33, 77,\n\t\t212, 67, 226, 193, 171, 49, 136, 87, 46, 162, 80, 43, 227,\n\t\t159, 19, 36, 136, 94, 84, 47, 96, 90, 83, 123, 222, 221, 1,\n\t\t230, 208, 186, 184, 10, 107, 29, 202, 100, 80, 40, 56, 0,\n\t\t78, 161, 40, 194, 70, 9, 24, 6, 133, 55, 48, 188, 193, 97,\n\t\t96, 120, 131, 195, 27, 32, 222, 32, 241, 6, 138, 65, 226,\n\t\t13, 148, 171, 90, 162, 79, 79, 143, 63, 191, 120, 45, 93,\n\t\t226, 21, 255, 23, 89, 212, 179, 212, 199, 160, 28, 84, 84,\n\t\t166, 53, 30, 228, 50, 81, 85, 231, 186, 93, 107, 12, 153,\n\t\t200, 38, 101, 220, 42, 219, 13, 46, 233, 253, 237, 180, 100,\n\t\t88, 50, 218, 131, 85, 161, 183, 183, 49, 210, 188, 41, 167,\n\t\t119, 218, 210, 232, 121, 126, 123, 95, 27, 188, 0, 88, 14,\n\t\t227, 252, 167, 155, 70, 151, 6, 80, 182, 203, 106, 245, 215,\n\t\t200, 103, 60, 213, 67, 3, 160, 208, 246, 216, 106, 160, 91,\n\t\t62, 163, 199, 217, 199, 36, 175, 47, 249, 169, 150, 122, 230,\n\t\t109, 213, 83, 55, 217, 83, 55, 23, 147, 130, 66, 213, 223,\n\t\t59, 135, 235, 13, 35, 252, 226, 29, 118, 185, 34, 118, 131,\n\t\t206, 208, 164, 6, 1, 22, 116, 173, 216, 122, 43, 162, 117,\n\t\t128, 244, 154, 119, 186, 24, 208, 11, 226, 136, 27, 185, 192,\n\t\t182, 104, 239, 191, 152, 164, 206, 97, 30, 163, 155, 23, 140,\n\t\t74, 232, 123, 187, 208, 182, 241, 213, 49, 208, 209, 213,\n\t\t97, 153, 252, 58, 190, 22, 9, 203, 6, 16, 73, 29, 136, 90,\n\t\t142, 205, 216, 143, 128, 136, 50, 176, 126, 83, 43, 195, 161,\n\t\t35, 219, 23, 138, 112, 54, 176, 254, 28, 160, 55, 12, 236,\n\t\t101, 132, 177, 114, 69, 230, 151, 134, 215, 93, 200, 45, 228,\n\t\t23, 145, 100, 35, 115, 134, 236, 147, 185, 39, 194, 32, 25,\n\t\t24, 153, 123, 52, 157, 15, 232, 11, 4, 161, 186, 171, 163,\n\t\t212, 66, 16, 103, 173, 44, 9, 56, 108, 73, 226, 169, 160,\n\t\t232, 98, 149, 25, 179, 86, 166, 171, 33, 212, 66, 55, 25,\n\t\t50, 121, 214, 2, 73, 144, 177, 24, 196, 245, 113, 13, 116,\n\t\t123, 82, 138, 99, 195, 107, 67, 111, 131, 203, 195, 234, 116,\n\t\t140, 167, 5, 136, 101, 254, 46, 99, 43, 154, 184, 230, 227,\n\t\t220, 96, 123, 195, 0, 191, 20, 214, 176, 92, 139, 83, 204,\n\t\t7, 119, 135, 152, 67, 126, 105, 157, 91, 166, 224, 233, 20,\n\t\t62, 155, 130, 67, 220, 183, 14, 22, 173, 180, 113, 99, 2,\n\t\t142, 129, 182, 137, 235, 206, 74, 191, 129, 178, 46, 151,\n\t\t27, 157, 185, 184, 44, 207, 23, 120, 220, 205, 219, 97, 56,\n\t\t218, 16, 191, 58, 49, 19, 222, 88, 182, 199, 146, 44, 149,\n\t\t234, 208, 142, 166, 109, 96, 109, 92, 33, 186, 115, 130, 187,\n\t\t174, 6, 177, 191, 127, 186, 56, 254, 23, 90, 15, 120, 41,\n\t\t148, 14, 14, 115, 11, 80, 104, 146, 99, 127, 22, 164, 231,\n\t\t154, 197, 89, 94, 172, 114, 156, 47, 161, 150, 172, 227, 85,\n\t\t66, 194, 6, 179, 168, 237, 70, 97, 5, 50, 138, 54, 97, 106,\n\t\t69, 13, 71, 36, 22, 174, 92, 116, 55, 137, 162, 103, 151,\n\t\t92, 150, 2, 210, 26, 28, 249, 176, 1, 121, 18, 141, 144, 40,\n\t\t129, 39, 2, 14, 159, 98, 8, 161, 51, 91, 38, 238, 34, 37,\n\t\t4, 90, 45, 65, 110, 59, 91, 14, 149, 112, 202, 204, 137, 65,\n\t\t147, 123, 177, 104, 1, 74, 8, 83, 19, 111, 246, 185, 8, 59,\n\t\t213, 66, 172, 85, 227, 87, 148, 20, 251, 110, 242, 148, 36,\n\t\t218, 103, 130, 208, 132, 177, 105, 41, 164, 148, 92, 199,\n\t\t160, 242, 232, 241, 46, 177, 64, 116, 181, 205, 24, 16, 53,\n\t\t102, 96, 170, 224, 160, 81, 32, 232, 78, 56, 223, 86, 2, 230,\n\t\t118, 108, 49, 196, 156, 234, 164, 238, 6, 139, 12, 23, 54,\n\t\t80, 111, 170, 69, 125, 112, 111, 59, 126, 93, 179, 226, 207,\n\t\t63, 222, 127, 186, 208, 89, 41, 87, 28, 239, 69, 135, 226,\n\t\t103, 238, 42, 13, 2, 210, 13, 205, 97, 122, 131, 70, 83, 163,\n\t\t163, 111, 111, 81, 140, 185, 165, 99, 107, 78, 205, 174, 41,\n\t\t168, 0, 94, 103, 119, 118, 71, 15, 111, 210, 210, 185, 165,\n\t\t134, 213, 136, 123, 118, 35, 147, 132, 227, 231, 3, 57, 222,\n\t\t212, 103, 199, 55, 44, 248, 156, 233, 86, 131, 215, 144, 211,\n\t\t104, 119, 108, 215, 245, 238, 197, 59, 154, 56, 145, 188,\n\t\t141, 35, 192, 91, 188, 7, 220, 208, 242, 191, 165, 152, 222,\n\t\t104, 223, 110, 147, 224, 245, 59, 171, 199, 143, 63, 62, 61,\n\t\t28, 46, 110, 172, 202, 21, 231, 121, 60, 100, 152, 203, 239,\n\t\t167, 135, 183, 198, 66, 7, 13, 197, 56, 234, 54, 13, 221,\n\t\t48, 75, 184, 73, 68, 55, 105, 232, 54, 173, 255, 2, 42, 251,\n\t\t90, 51, 113, 247, 37, 203, 198, 0, 122, 168, 123, 127, 5,\n\t\t160, 255, 138, 43, 239, 77, 29, 148, 139, 169, 113, 197, 147,\n\t\t31, 65, 113, 72, 113, 90, 99, 179, 216, 21, 204, 8, 157, 226,\n\t\t53, 134, 163, 221, 238, 188, 30, 226, 5, 136, 177, 74, 116,\n\t\t59, 167, 240, 185, 215, 98, 193, 0, 209, 112, 190, 122, 53,\n\t\t155, 238, 205, 175, 68, 123, 217, 51, 60, 64, 26, 7, 229,\n\t\t181, 60, 204, 148, 93, 237, 56, 67, 2, 116, 29, 229, 162,\n\t\t63, 114, 129, 243, 43, 38, 83, 95, 15, 231, 139, 146, 228,\n\t\t175, 196, 81, 186, 65, 77, 247, 135, 207, 15, 79, 31, 14,\n\t\t23, 193, 142, 202, 34, 109, 165, 218, 2, 130, 3, 96, 54, 188,\n\t\t50, 243, 88, 187, 72, 55, 3, 213, 154, 249, 216, 23, 250,\n\t\t240, 25, 162, 30, 72, 48, 33, 169, 244, 47, 166, 194, 28,\n\t\t100, 31, 225, 20, 82, 10, 149, 84, 32, 82, 145, 139, 74, 20,\n\t\t215, 44, 119, 111, 16, 84, 63, 13, 114, 160, 174, 76, 63,\n\t\t98, 41, 98, 241, 134, 226, 73, 28, 82, 11, 53, 101, 215, 212,\n\t\t210, 116, 78, 129, 106, 22, 94, 177, 48, 79, 79, 83, 12, 216,\n\t\t90, 108, 106, 231, 76, 89, 252, 194, 199, 144, 229, 82, 67,\n\t\t20, 16, 83, 21, 127, 250, 203, 105, 144, 83, 24, 195, 161,\n\t\t23, 96, 174, 81, 138, 101, 208, 109, 35, 96, 67, 101, 141,\n\t\t37, 80, 174, 149, 27, 197, 164, 117, 42, 224, 70, 227, 43,\n\t\t120, 94, 224, 3, 141, 18, 158, 69, 116, 95, 130, 72, 191,\n\t\t53, 156, 180, 198, 34, 130, 36, 128, 90, 47, 215, 78, 14,\n\t\t92, 157, 160, 170, 41, 143, 62, 48, 21, 114, 193, 44, 70,\n\t\t7, 89, 78, 195, 138, 110, 193, 118, 133, 89, 163, 37, 56,\n\t\t49, 9, 198, 54, 123, 121, 143, 93, 19, 160, 237, 4, 44, 25,\n\t\t64, 27, 63, 15, 195, 188, 92, 70, 80, 213, 55, 49, 37, 90,\n\t\t171, 60, 131, 201, 70, 207, 64, 178, 177, 27, 67, 119, 222,\n\t\t167, 83, 196, 48, 170, 24, 119, 169, 36, 195, 221, 228, 121,\n\t\t228, 36, 252, 130, 13, 156, 140, 91, 91, 176, 237, 4, 251,\n\t\t9, 237, 125, 47, 99, 22, 251, 36, 249, 101, 193, 181, 1, 243,\n\t\t54, 98, 231, 3, 189, 211, 118, 53, 88, 226, 24, 180, 19, 146,\n\t\t130, 52, 201, 136, 21, 9, 125, 45, 3, 54, 198, 203, 134, 235,\n\t\t130, 38, 47, 40, 219, 70, 107, 33, 236, 49, 90, 222, 134,\n\t\t203, 159, 78, 143, 10, 99, 132, 64, 172, 190, 121, 200, 110,\n\t\t156, 26, 166, 249, 254, 227, 253, 21, 45, 137, 114, 255, 47,\n\t\t172, 37, 145, 139, 3, 66, 17, 144, 83, 212, 56, 121, 67, 64,\n\t\t158, 59, 85, 19, 144, 31, 182, 239, 39, 82, 113, 73, 149,\n\t\t196, 131, 223, 188, 14, 81, 248, 29, 2, 134, 132, 213, 165,\n\t\t88, 67, 162, 50, 215, 64, 18, 102, 93, 195, 242, 68, 78, 43,\n\t\t226, 193, 61, 149, 132, 205, 229, 80, 98, 211, 133, 38, 73,\n\t\t208, 9, 8, 189, 193, 154, 176, 167, 22, 50, 149, 62, 149,\n\t\t33, 251, 136, 66, 214, 34, 127, 15, 189, 73, 172, 197, 81,\n\t\t100, 148, 88, 90, 132, 84, 184, 189, 154, 93, 9, 77, 195,\n\t\t108, 101, 62, 163, 150, 34, 154, 25, 89, 84, 81, 173, 172,\n\t\t38, 236, 125, 73, 50, 199, 120, 94, 183, 150, 106, 87, 86,\n\t\t35, 164, 156, 69, 2, 164, 81, 207, 181, 152, 138, 130, 164,\n\t\t220, 85, 154, 248, 225, 195, 11, 247, 236, 139, 112, 55, 161,\n\t\t139, 226, 156, 124, 137, 44, 166, 198, 65, 22, 33, 111, 217,\n\t\t82, 198, 61, 23, 111, 26, 122, 108, 147, 168, 210, 37, 142,\n\t\t130, 216, 198, 94, 53, 244, 206, 54, 5, 86, 254, 160, 68,\n\t\t13, 23, 143, 173, 77, 107, 3, 105, 147, 223, 182, 190, 54,\n\t\t28, 253, 12, 59, 187, 113, 163, 116, 226, 117, 168, 137, 43,\n\t\t166, 218, 95, 137, 178, 36, 53, 156, 199, 249, 91, 3, 193,\n\t\t145, 154, 254, 137, 126, 83, 87, 243, 199, 37, 42, 146, 60,\n\t\t168, 147, 24, 123, 19, 222, 76, 194, 107, 157, 4, 207, 154,\n\t\t8, 132, 93, 115, 81, 130, 203, 107, 20, 24, 101, 255, 146,\n\t\t243, 69, 67, 53, 77, 137, 66, 118, 84, 93, 25, 142, 110, 74,\n\t\t91, 51, 89, 30, 169, 59, 186, 179, 96, 92, 67, 145, 70, 108,\n\t\t186, 71, 48, 74, 172, 195, 126, 210, 64, 243, 20, 247, 164,\n\t\t208, 63, 223, 65, 78, 65, 110, 37, 246, 173, 72, 210, 110,\n\t\t242, 25, 66, 118, 181, 140, 145, 177, 120, 100, 141, 241,\n\t\t171, 121, 28, 163, 82, 228, 86, 122, 251, 73, 58, 146, 195,\n\t\t76, 83, 18, 14, 96, 241, 209, 196, 98, 158, 127, 158, 239,\n\t\t82, 209, 161, 68, 52, 51, 74, 18, 148, 171, 113, 10, 191,\n\t\t29, 252, 230, 85, 139, 138, 233, 139, 160, 65, 239, 38, 21,\n\t\t42, 53, 94, 31, 224, 248, 22, 13, 252, 171, 148, 61, 63, 220,\n\t\t127, 127, 65, 217, 23, 22, 146, 171, 47, 135, 76, 37, 160,\n\t\t163, 212, 66, 154, 160, 75, 72, 38, 117, 64, 212, 7, 157,\n\t\t233, 237, 225, 38, 1, 136, 194, 136, 109, 136, 34, 24, 0,\n\t\t17, 151, 36, 230, 242, 121, 209, 214, 184, 164, 114, 113,\n\t\t12, 147, 111, 113, 224, 172, 25, 15, 207, 107, 183, 108, 140,\n\t\t73, 221, 61, 84, 10, 221, 213, 58, 174, 146, 37, 28, 175,\n\t\t69, 188, 172, 230, 133, 168, 169, 87, 26, 197, 118, 87, 51,\n\t\t33, 217, 231, 21, 34, 11, 39, 39, 235, 103, 84, 219, 9, 53,\n\t\t32, 90, 12, 106, 161, 10, 77, 241, 94, 94, 180, 229, 98, 170,\n\t\t158, 150, 25, 23, 171, 60, 238, 194, 160, 226, 9, 147, 82,\n\t\t115, 30, 131, 6, 41, 6, 137, 200, 47, 1, 148, 33, 20, 126,\n\t\t58, 9, 143, 182, 141, 95, 118, 56, 141, 149, 230, 160, 76,\n\t\t98, 204, 45, 52, 133, 136, 161, 74, 232, 44, 133, 17, 155,\n\t\t216, 83, 54, 10, 153, 247, 247, 26, 35, 116, 9, 158, 164,\n\t\t80, 133, 204, 123, 125, 214, 39, 185, 10, 21, 63, 56, 174,\n\t\t149, 173, 251, 155, 125, 139, 187, 169, 36, 35, 39, 128, 22,\n\t\t132, 191, 144, 78, 0, 245, 208, 197, 221, 208, 100, 221, 135,\n\t\t129, 33, 68, 141, 15, 8, 99, 182, 98, 51, 108, 72, 7, 174,\n\t\t91, 8, 126, 120, 225, 42, 245, 194, 188, 116, 117, 1, 132,\n\t\t80, 28, 49, 218, 245, 88, 20, 83, 144, 72, 5, 114, 109, 156,\n\t\t67, 203, 250, 140, 189, 44, 57, 114, 96, 18, 104, 37, 128,\n\t\t196, 161, 52, 175, 62, 242, 231, 32, 79, 39, 223, 116, 15,\n\t\t207, 77, 25, 124, 172, 118, 69, 92, 66, 35, 151, 135, 117,\n\t\t14, 36, 10, 189, 76, 192, 127, 37, 164, 15, 239, 101, 36,\n\t\t33, 221, 171, 51, 95, 26, 227, 85, 2, 117, 29, 125, 203, 226,\n\t\t62, 138, 97, 74, 57, 192, 168, 92, 247, 157, 66, 234, 81,\n\t\t170, 164, 0, 226, 103, 166, 144, 24, 71, 236, 166, 196, 117,\n\t\t247, 36, 183, 228, 165, 87, 172, 174, 80, 104, 35, 86, 167,\n\t\t6, 43, 30, 239, 37, 137, 255, 155, 73, 23, 61, 241, 31, 87,\n\t\t70, 109, 25, 245, 1, 107, 13, 208, 38, 161, 4, 232, 3, 104,\n\t\t210, 111, 48, 172, 165, 236, 157, 185, 243, 27, 214, 25, 15,\n\t\t127, 185, 28, 185, 139, 152, 173, 155, 229, 162, 98, 200,\n\t\t232, 48, 138, 25, 107, 232, 204, 38, 139, 147, 18, 9, 155,\n\t\t28, 72, 143, 57, 16, 67, 226, 141, 122, 77, 32, 97, 74, 14,\n\t\t76, 186, 185, 141, 32, 54, 181, 103, 41, 124, 154, 71, 244,\n\t\t68, 161, 203, 216, 198, 28, 244, 146, 186, 128, 222, 112,\n\t\t139, 7, 39, 158, 40, 20, 132, 99, 148, 247, 131, 199, 20,\n\t\t3, 118, 87, 33, 228, 166, 19, 73, 190, 203, 103, 9, 148, 203,\n\t\t96, 26, 148, 75, 139, 6, 229, 154, 160, 16, 236, 14, 6, 165,\n\t\t1, 121, 150, 97, 50, 8, 13, 192, 1, 223, 0, 111, 219, 58,\n\t\t28, 6, 108, 222, 128, 59, 129, 125, 92, 246, 182, 125, 20,\n\t\t105, 2, 96, 158, 106, 15, 68, 93, 28, 159, 80, 10, 61, 49,\n\t\t109, 168, 178, 176, 190, 234, 207, 113, 45, 16, 29, 23, 145,\n\t\t158, 21, 102, 219, 153, 247, 20, 189, 81, 34, 126, 56, 200,\n\t\t195, 242, 201, 219, 183, 195, 73, 138, 165, 62, 239, 4, 34,\n\t\t222, 44, 99, 64, 204, 185, 149, 41, 99, 104, 53, 242, 129,\n\t\t161, 103, 245, 124, 196, 43, 116, 143, 29, 215, 4, 126, 168,\n\t\t93, 212, 208, 36, 59, 232, 50, 222, 69, 203, 227, 36, 215,\n\t\t246, 97, 90, 50, 199, 245, 163, 213, 189, 36, 88, 230, 232,\n\t\t106, 136, 84, 121, 121, 8, 36, 115, 14, 90, 144, 224, 98,\n\t\t41, 36, 162, 154, 196, 3, 91, 107, 204, 152, 246, 150, 120,\n\t\t206, 4, 16, 201, 11, 244, 80, 90, 87, 171, 166, 216, 115,\n\t\t93, 230, 157, 37, 236, 38, 62, 182, 64, 2, 117, 11, 168, 115,\n\t\t19, 2, 165, 146, 151, 247, 241, 43, 142, 153, 212, 134, 143,\n\t\t2, 212, 113, 6, 172, 245, 162, 242, 137, 23, 27, 102, 117,\n\t\t33, 244, 142, 208, 69, 196, 209, 176, 184, 20, 74, 151, 147,\n\t\t65, 230, 2, 69, 8, 51, 222, 158, 166, 254, 48, 223, 31, 46,\n\t\t194, 14, 213, 11, 237, 144, 53, 112, 126, 66, 230, 207, 166,\n\t\t26, 80, 244, 93, 36, 160, 155, 220, 55, 64, 83, 87, 83, 16,\n\t\t80, 93, 47, 22, 135, 161, 64, 76, 121, 22, 27, 74, 229, 160,\n\t\t100, 13, 145, 67, 137, 236, 67, 190, 4, 146, 77, 196, 231,\n\t\t24, 122, 237, 202, 9, 242, 49, 163, 214, 81, 70, 222, 39,\n\t\t137, 248, 40, 198, 125, 95, 121, 98, 222, 154, 151, 18, 60,\n\t\t95, 124, 75, 162, 198, 45, 228, 149, 59, 241, 62, 230, 82,\n\t\t81, 247, 96, 57, 11, 36, 51, 68, 9, 101, 235, 124, 227, 163,\n\t\t111, 79, 83, 14, 37, 11, 47, 89, 71, 100, 236, 82, 131, 170,\n\t\t142, 131, 4, 138, 228, 3, 90, 232, 246, 246, 124, 87, 82,\n\t\t10, 13, 23, 142, 115, 74, 76, 62, 98, 216, 41, 42, 217, 228,\n\t\t138, 133, 166, 107, 26, 211, 106, 121, 231, 243, 73, 202,\n\t\t226, 29, 34, 133, 136, 226, 73, 78, 207, 208, 226, 234, 139,\n\t\t48, 41, 46, 82, 33, 148, 195, 111, 3, 162, 44, 215, 28, 37,\n\t\t117, 245, 70, 136, 53, 230, 221, 180, 180, 229, 53, 224, 33,\n\t\t104, 99, 144, 197, 196, 128, 105, 13, 71, 115, 169, 45, 41,\n\t\t19, 183, 42, 16, 73, 12, 121, 74, 18, 208, 78, 150, 2, 177,\n\t\t95, 108, 88, 160, 242, 140, 226, 157, 101, 246, 185, 49, 53,\n\t\t59, 202, 20, 42, 246, 73, 90, 138, 32, 244, 162, 77, 151,\n\t\t0, 181, 214, 228, 154, 168, 220, 231, 53, 65, 26, 22, 31,\n\t\t107, 220, 77, 94, 185, 66, 142, 173, 118, 87, 71, 44, 60,\n\t\t238, 98, 131, 226, 184, 135, 61, 209, 204, 29, 228, 29, 124,\n\t\t233, 159, 181, 97, 189, 179, 206, 89, 223, 172, 107, 214,\n\t\t179, 181, 99, 214, 47, 111, 29, 179, 126, 121, 235, 24, 96,\n\t\t13, 204, 252, 245, 38, 151, 127, 83, 106, 33, 242, 106, 136,\n\t\t81, 236, 15, 68, 93, 50, 2, 72, 80, 73, 226, 73, 76, 53, 240,\n\t\t49, 73, 15, 79, 211, 66, 226, 87, 151, 247, 95, 190, 67, 238,\n\t\t222, 182, 69, 66, 81, 211, 105, 159, 48, 168, 93, 116, 78,\n\t\t65, 252, 174, 214, 22, 72, 52, 243, 26, 168, 19, 184, 136,\n\t\t33, 214, 231, 59, 202, 49, 128, 19, 151, 8, 83, 211, 185,\n\t\t206, 203, 64, 66, 97, 132, 70, 8, 232, 38, 252, 201, 242,\n\t\t94, 148, 182, 121, 175, 17, 89, 59, 140, 189, 70, 194, 129,\n\t\t242, 182, 36, 231, 118, 222, 143, 228, 180, 42, 191, 250,\n\t\t35, 65, 37, 181, 12, 147, 233, 168, 151, 19, 17, 168, 201,\n\t\t126, 196, 171, 37, 169, 108, 186, 101, 226, 181, 25, 6, 211,\n\t\t34, 51, 44, 210, 92, 19, 195, 201, 203, 120, 145, 245, 101,\n\t\t138, 161, 162, 216, 157, 98, 168, 144, 90, 229, 125, 0, 74,\n\t\t68, 87, 3, 116, 9, 232, 18, 178, 204, 93, 136, 204, 63, 71,\n\t\t144, 123, 164, 38, 38, 53, 32, 203, 181, 248, 188, 148, 200,\n\t\t158, 165, 156, 44, 216, 8, 83, 13, 32, 38, 30, 124, 112, 43,\n\t\t165, 73, 40, 201, 218, 64, 150, 39, 222, 116, 228, 58, 170,\n\t\t22, 123, 223, 241, 190, 152, 98, 101, 78, 190, 83, 168, 26,\n\t\t14, 29, 3, 101, 132, 53, 97, 60, 240, 100, 143, 178, 73, 161,\n\t\t162, 33, 98, 71, 110, 204, 243, 241, 72, 12, 63, 52, 14, 151,\n\t\t68, 239, 3, 181, 6, 226, 62, 0, 72, 0, 85, 223, 2, 201, 93,\n\t\t140, 199, 64, 67, 148, 15, 161, 50, 77, 152, 91, 58, 62, 159,\n\t\t65, 191, 110, 43, 182, 189, 10, 251, 252, 244, 225, 254, 211,\n\t\t15, 151, 151, 97, 245, 66, 23, 109, 195, 253, 149, 30, 50,\n\t\t84, 199, 44, 111, 77, 19, 180, 64, 185, 169, 251, 34, 185,\n\t\t54, 164, 80, 33, 242, 17, 173, 130, 228, 208, 168, 181, 149,\n\t\t151, 161, 145, 178, 247, 84, 123, 104, 173, 78, 62, 21, 141,\n\t\t132, 201, 44, 67, 15, 189, 119, 71, 49, 196, 44, 247, 91,\n\t\t92, 170, 74, 192, 97, 46, 52, 99, 234, 226, 90, 128, 160,\n\t\t240, 138, 41, 13, 243, 16, 37, 137, 175, 219, 152, 69, 146,\n\t\t213, 157, 1, 201, 128, 98, 164, 146, 41, 185, 168, 252, 85,\n\t\t167, 95, 113, 181, 182, 123, 227, 221, 26, 137, 94, 174, 195,\n\t\t220, 47, 238, 214, 254, 167, 185, 90, 219, 125, 205, 187,\n\t\t181, 31, 231, 251, 79, 151, 84, 117, 161, 11, 183, 113, 39,\n\t\t217, 162, 195, 92, 248, 152, 36, 134, 239, 209, 201, 46, 215,\n\t\t212, 93, 167, 88, 115, 210, 65, 34, 77, 143, 99, 149, 243,\n\t\t154, 184, 23, 157, 47, 177, 235, 143, 153, 247, 104, 15, 45,\n\t\t5, 25, 109, 97, 213, 132, 34, 187, 46, 157, 45, 0, 9, 141,\n\t\t182, 16, 179, 154, 156, 37, 243, 183, 169, 41, 123, 177, 225,\n\t\t148, 120, 126, 178, 13, 69, 81, 142, 49, 193, 229, 24, 212,\n\t\t172, 6, 123, 227, 186, 102, 166, 30, 98, 226, 21, 180, 66,\n\t\t40, 123, 89, 108, 91, 153, 61, 37, 243, 45, 163, 94, 20, 119,\n\t\t178, 233, 66, 207, 60, 35, 184, 4, 35, 181, 242, 202, 80,\n\t\t197, 136, 112, 17, 106, 142, 163, 254, 72, 217, 139, 175,\n\t\t201, 46, 81, 194, 163, 106, 76, 43, 80, 145, 68, 1, 202, 70,\n\t\t39, 171, 163, 8, 232, 161, 213, 222, 231, 4, 234, 227, 24,\n\t\t98, 11, 128, 179, 63, 125, 159, 68, 233, 136, 11, 218, 101,\n\t\t89, 14, 16, 123, 106, 86, 222, 157, 213, 183, 55, 32, 242,\n\t\t128, 60, 174, 77, 227, 112, 236, 112, 14, 249, 110, 62, 71,\n\t\t193, 126, 193, 205, 22, 101, 192, 208, 244, 113, 150, 10,\n\t\t200, 115, 152, 23, 76, 198, 111, 106, 122, 42, 55, 124, 243,\n\t\t251, 158, 71, 104, 27, 49, 120, 202, 1, 48, 235, 197, 11,\n\t\t132, 148, 197, 73, 70, 40, 98, 178, 7, 67, 7, 213, 198, 119,\n\t\t22, 34, 49, 26, 217, 43, 233, 92, 87, 170, 184, 159, 31, 62,\n\t\t189, 191, 127, 242, 247, 243, 197, 109, 113, 189, 162, 249,\n\t\t39, 87, 175, 71, 172, 184, 39, 113, 61, 93, 127, 173, 179,\n\t\t172, 103, 97, 225, 161, 197, 115, 65, 248, 169, 152, 93, 196,\n\t\t224, 231, 250, 8, 39, 194, 255, 83, 101, 135, 151, 44, 229,\n\t\t47, 69, 249, 231, 194, 118, 5, 38, 227, 226, 143, 255, 95,\n\t\t22, 24, 185, 230, 249, 235, 96, 230, 66, 147, 228, 101, 104,\n\t\t242, 133, 190, 194, 111, 1, 204, 109, 88, 10, 125, 37, 196,\n\t\t236, 190, 14, 48, 191, 23, 188, 80, 140, 22, 1, 224, 69, 167,\n\t\t118, 60, 25, 121, 194, 146, 152, 66, 189, 224, 161, 78, 190,\n\t\t201, 249, 95, 22, 187, 237, 61, 175, 132, 67, 58, 189, 6,\n\t\t62, 189, 249, 149, 234, 1, 191, 180, 134, 27, 30, 217, 159,\n\t\t238, 63, 189, 127, 252, 120, 177, 86, 109, 180, 90, 121, 67,\n\t\t4, 215, 90, 232, 53, 214, 83, 119, 47, 105, 184, 140, 73,\n\t\t139, 187, 151, 166, 2, 9, 117, 242, 50, 251, 22, 53, 238,\n\t\t109, 35, 245, 145, 41, 188, 215, 250, 64, 81, 42, 229, 45,\n\t\t142, 122, 196, 180, 166, 136, 147, 249, 88, 143, 188, 147,\n\t\t180, 68, 123, 159, 91, 168, 77, 214, 189, 208, 106, 213, 187,\n\t\t130, 18, 154, 104, 216, 66, 168, 177, 69, 217, 169, 107, 69,\n\t\t98, 134, 187, 241, 177, 79, 172, 248, 115, 46, 26, 123, 160,\n\t\t151, 58, 103, 213, 72, 205, 53, 0, 97, 153, 51, 6, 102, 160,\n\t\t229, 188, 144, 115, 108, 251, 132, 218, 34, 136, 186, 139,\n\t\t220, 231, 240, 222, 146, 67, 231, 19, 140, 112, 173, 21, 220,\n\t\t25, 144, 207, 119, 128, 142, 151, 236, 235, 150, 110, 195,\n\t\t245, 200, 43, 102, 98, 192, 103, 183, 118, 186, 85, 173, 93,\n\t\t229, 158, 10, 83, 108, 93, 229, 158, 2, 137, 153, 186, 118,\n\t\t213, 122, 234, 173, 171, 126, 244, 213, 91, 103, 189, 245,\n\t\t214, 58, 235, 27, 169, 147, 103, 222, 119, 124, 194, 221,\n\t\t236, 145, 217, 20, 18, 171, 42, 62, 34, 55, 241, 147, 92,\n\t\t132, 11, 193, 64, 41, 114, 3, 57, 16, 21, 236, 75, 211, 43,\n\t\t218, 45, 101, 239, 71, 111, 190, 8, 35, 141, 102, 3, 199,\n\t\t160, 129, 208, 37, 152, 55, 6, 62, 141, 114, 125, 173, 83,\n\t\t78, 54, 222, 238, 108, 252, 247, 131, 104, 46, 198, 180, 92,\n\t\t31, 211, 210, 235, 188, 80, 46, 188, 201, 197, 209, 219, 104,\n\t\t190, 157, 209, 124, 235, 88, 94, 161, 249, 27, 186, 82, 211,\n\t\t227, 199, 143, 47, 132, 1, 170, 167, 238, 145, 160, 76, 64,\n\t\t16, 24, 62, 126, 247, 61, 153, 84, 86, 14, 52, 98, 178, 71,\n\t\t65, 159, 197, 96, 206, 124, 182, 182, 69, 182, 88, 135, 108,\n\t\t177, 74, 73, 81, 246, 169, 98, 184, 21, 212, 107, 249, 98,\n\t\t72, 0, 230, 98, 160, 154, 208, 58, 91, 232, 18, 160, 200,\n\t\t141, 140, 119, 230, 108, 113, 8, 197, 249, 0, 190, 8, 167,\n\t\t187, 250, 121, 233, 189, 29, 182, 178, 172, 177, 114, 139,\n\t\t175, 241, 42, 78, 98, 34, 175, 198, 188, 204, 154, 115, 152,\n\t\t33, 196, 203, 67, 177, 191, 107, 224, 145, 201, 167, 225,\n\t\t220, 37, 13, 199, 54, 62, 87, 215, 192, 60, 5, 86, 103, 78,\n\t\t146, 25, 11, 221, 41, 46, 36, 172, 151, 248, 160, 187, 21,\n\t\t202, 226, 135, 79, 15, 151, 3, 176, 248, 57, 130, 66, 33,\n\t\t86, 135, 189, 135, 190, 247, 144, 49, 196, 170, 243, 129,\n\t\t6, 87, 174, 243, 65, 14, 253, 67, 97, 83, 132, 237, 204, 67,\n\t\t139, 21, 113, 0, 172, 221, 165, 162, 255, 239, 33, 210, 100,\n\t\t31, 163, 19, 115, 226, 53, 139, 79, 197, 196, 253, 209, 238,\n\t\t180, 182, 110, 183, 150, 203, 149, 243, 100, 144, 153, 52,\n\t\t182, 90, 245, 160, 144, 197, 108, 84, 236, 217, 236, 150,\n\t\t22, 66, 235, 177, 44, 41, 251, 213, 77, 217, 179, 186, 241,\n\t\t228, 243, 222, 238, 213, 90, 122, 28, 39, 214, 165, 58, 78,\n\t\t145, 27, 151, 164, 247, 153, 241, 38, 136, 219, 212, 189,\n\t\t154, 73, 252, 198, 200, 28, 202, 0, 18, 151, 188, 212, 208,\n\t\t247, 144, 33, 156, 46, 209, 187, 105, 133, 1, 134, 109, 111,\n\t\t22, 61, 8, 6, 99, 140, 6, 54, 185, 51, 211, 151, 154, 144,\n\t\t16, 79, 220, 181, 72, 31, 99, 204, 173, 200, 253, 141, 94,\n\t\t253, 123, 180, 48, 9, 42, 187, 22, 233, 65, 92, 92, 189, 102,\n\t\t157, 67, 34, 234, 204, 49, 168, 102, 99, 162, 32, 107, 55,\n\t\t21, 77, 192, 156, 151, 183, 131, 24, 164, 214, 172, 39, 101,\n\t\t125, 148, 79, 83, 228, 121, 155, 91, 113, 144, 156, 1, 178,\n\t\t56, 199, 140, 46, 171, 42, 238, 209, 62, 153, 243, 7, 238,\n\t\t244, 166, 187, 138, 244, 40, 56, 234, 87, 177, 114, 244, 74,\n\t\t111, 128, 149, 39, 93, 145, 199, 22, 32, 130, 188, 196, 99,\n\t\t198, 43, 77, 220, 242, 108, 36, 110, 255, 46, 45, 235, 234,\n\t\t21, 213, 93, 148, 5, 24, 92, 130, 26, 168, 150, 249, 204,\n\t\t229, 159, 24, 187, 169, 218, 228, 185, 155, 188, 23, 121,\n\t\t30, 115, 208, 114, 238, 241, 111, 125, 88, 156, 253, 169,\n\t\t239, 63, 63, 156, 242, 109, 156, 255, 205, 195, 77, 99, 209,\n\t\t248, 34, 104, 239, 217, 153, 247, 63, 245, 67, 104, 222, 254,\n\t\t228, 22, 196, 155, 187, 191, 197, 255, 223, 82, 243, 82, 241,\n\t\t238, 37, 135, 132, 167, 123, 218, 185, 15, 192, 104, 222,\n\t\t255, 22, 196, 156, 227, 197, 138, 218, 110, 104, 239, 139,\n\t\t215, 192, 55, 186, 38, 178, 225, 123, 201, 110, 174, 94, 209,\n\t\t3, 198, 88, 197, 183, 101, 41, 226, 0, 103, 117, 218, 120,\n\t\t226, 179, 241, 141, 157, 60, 69, 207, 185, 187, 70, 27, 58,\n\t\t29, 185, 11, 244, 206, 54, 108, 54, 76, 179, 141, 155, 13,\n\t\t155, 141, 154, 13, 154, 141, 153, 13, 217, 11, 180, 112, 74,\n\t\t80, 187, 95, 72, 142, 23, 14, 27, 223, 238, 192, 146, 123,\n\t\t118, 253, 240, 240, 240, 249, 231, 135, 23, 54, 193, 139,\n\t\t160, 206, 171, 132, 177, 96, 15, 37, 171, 123, 11, 18, 194,\n\t\t142, 18, 145, 209, 217, 195, 171, 240, 213, 87, 28, 108, 106,\n\t\t185, 230, 46, 202, 95, 28, 85, 94, 160, 232, 168, 166, 107,\n\t\t227, 119, 234, 98, 236, 198, 195, 173, 191, 152, 3, 36, 81,\n\t\t183, 86, 247, 168, 188, 194, 130, 122, 219, 162, 142, 208,\n\t\t218, 76, 81, 60, 75, 137, 6, 82, 199, 35, 52, 12, 0, 109,\n\t\t239, 161, 213, 144, 169, 239, 38, 230, 151, 91, 149, 229,\n\t\t31, 152, 253, 138, 205, 37, 187, 89, 28, 28, 159, 19, 242,\n\t\t77, 243, 162, 238, 147, 3, 64, 7, 199, 191, 24, 229, 78, 146,\n\t\t0, 32, 157, 31, 60, 236, 125, 143, 148, 184, 49, 177, 212,\n\t\t200, 212, 55, 150, 26, 148, 97, 53, 140, 68, 129, 77, 65,\n\t\t46, 78, 33, 158, 122, 192, 150, 85, 166, 150, 64, 145, 212,\n\t\t114, 17, 205, 144, 152, 83, 93, 186, 188, 244, 216, 112, 230,\n\t\t199, 195, 25, 65, 218, 52, 59, 37, 172, 23, 125, 128, 222,\n\t\t37, 209, 40, 232, 118, 184, 156, 161, 132, 24, 5, 47, 147,\n\t\t225, 192, 27, 18, 12, 7, 43, 3, 109, 88, 176, 148, 189, 55,\n\t\t60, 248, 21, 17, 102, 154, 196, 136, 48, 235, 95, 193, 67,\n\t\t159, 253, 64, 132, 142, 157, 184, 47, 24, 126, 195, 12, 23,\n\t\t94, 144, 81, 135, 154, 96, 198, 42, 186, 118, 43, 5, 0, 130,\n\t\t216, 40, 51, 34, 48, 185, 241, 59, 93, 78, 204, 243, 21, 114,\n\t\t75, 129, 167, 212, 251, 230, 53, 117, 62, 155, 56, 229, 23,\n\t\t30, 83, 12, 104, 191, 129, 90, 181, 168, 237, 215, 136, 223,\n\t\t47, 206, 129, 183, 180, 48, 250, 126, 66, 76, 71, 175, 244,\n\t\t223, 247, 74, 254, 237, 236, 230, 117, 76, 4, 158, 7, 34,\n\t\t220, 183, 137, 0, 22, 93, 77, 39, 194, 13, 43, 220, 199, 31,\n\t\t127, 252, 240, 233, 7, 63, 221, 63, 93, 174, 60, 247, 87,\n\t\t68, 81, 204, 100, 160, 4, 234, 42, 226, 59, 60, 144, 168,\n\t\t124, 64, 12, 29, 85, 147, 108, 184, 144, 134, 22, 74, 139,\n\t\t106, 198, 160, 162, 209, 145, 178, 247, 216, 25, 230, 60,\n\t\t151, 144, 69, 231, 198, 39, 220, 99, 105, 140, 22, 38, 217,\n\t\t113, 106, 194, 18, 26, 136, 210, 63, 169, 230, 224, 82, 17,\n\t\t242, 58, 207, 83, 61, 135, 12, 34, 134, 69, 10, 88, 51, 77,\n\t\t220, 132, 88, 205, 118, 101, 18, 153, 5, 203, 85, 172, 42,\n\t\t218, 176, 20, 176, 4, 137, 176, 152, 69, 117, 198, 194, 14,\n\t\t158, 7, 28, 228, 127, 187, 131, 223, 196, 24, 212, 136, 130,\n\t\t98, 132, 27, 74, 21, 25, 184, 10, 23, 145, 169, 93, 60, 11,\n\t\t202, 180, 166, 184, 247, 24, 197, 119, 219, 4, 81, 245, 84,\n\t\t32, 6, 40, 35, 203, 96, 96, 146, 136, 211, 45, 65, 47, 235,\n\t\t174, 1, 243, 50, 44, 24, 67, 173, 45, 201, 85, 60, 102, 116,\n\t\t169, 41, 219, 201, 67, 149, 98, 23, 93, 225, 146, 73, 46,\n\t\t114, 144, 154, 75, 148, 2, 165, 188, 247, 165, 135, 214, 176,\n\t\t237, 110, 76, 117, 137, 113, 102, 57, 54, 235, 225, 48, 38,\n\t\t139, 24, 50, 246, 9, 96, 25, 56, 8, 136, 77, 164, 167, 34,\n\t\t119, 230, 129, 203, 32, 34, 147, 30, 160, 71, 154, 123, 128,\n\t\t82, 162, 58, 111, 105, 177, 151, 125, 234, 24, 106, 195, 155,\n\t\t163, 143, 235, 232, 95, 215, 140, 124, 156, 223, 95, 134,\n\t\t71, 172, 223, 109, 3, 96, 38, 140, 183, 130, 87, 162, 5, 33,\n\t\t125, 53, 120, 229, 87, 8, 162, 9, 37, 206, 69, 4, 108, 123,\n\t\t232, 183, 98, 113, 112, 183, 252, 227, 143, 15, 151, 172,\n\t\t221, 53, 101, 227, 138, 161, 116, 146, 168, 68, 61, 214, 89,\n\t\t130, 197, 168, 81, 4, 82, 128, 172, 210, 55, 196, 164, 49,\n\t\t0, 196, 223, 60, 47, 83, 67, 61, 72, 252, 199, 107, 212, 181,\n\t\t218, 151, 132, 189, 63, 57, 75, 38, 62, 162, 23, 154, 36,\n\t\t172, 13, 234, 97, 52, 197, 16, 11, 137, 88, 41, 118, 94, 3,\n\t\t153, 82, 19, 144, 75, 69, 77, 126, 4, 142, 196, 231, 18, 5,\n\t\t67, 160, 32, 9, 230, 35, 64, 48, 12, 140, 171, 1, 2, 67, 208,\n\t\t208, 94, 143, 113, 63, 26, 221, 77, 107, 163, 214, 166, 183,\n\t\t70, 165, 77, 49, 124, 209, 70, 159, 239, 132, 39, 65, 154,\n\t\t184, 139, 17, 162, 132, 27, 45, 57, 212, 86, 212, 48, 159,\n\t\t151, 237, 134, 161, 35, 118, 137, 24, 171, 190, 81, 75, 55,\n\t\t211, 125, 144, 149, 234, 136, 181, 133, 40, 254, 19, 223,\n\t\t52, 180, 229, 22, 181, 137, 80, 234, 134, 81, 205, 180, 191,\n\t\t127, 250, 236, 191, 187, 191, 32, 237, 182, 4, 4, 73, 9, 197,\n\t\t103, 131, 24, 110, 168, 175, 9, 21, 46, 203, 173, 206, 133,\n\t\t208, 115, 252, 30, 229, 220, 43, 71, 70, 45, 179, 92, 25,\n\t\t157, 230, 179, 223, 253, 184, 221, 154, 214, 54, 206, 133,\n\t\t145, 155, 48, 78, 163, 13, 111, 141, 44, 144, 189, 32, 132,\n\t\t61, 127, 216, 219, 69, 218, 243, 29, 97, 211, 174, 237, 126,\n\t\t89, 223, 48, 197, 223, 190, 111, 214, 200, 175, 236, 27, 80,\n\t\t252, 85, 125, 171, 42, 18, 255, 173, 123, 183, 54, 243, 43,\n\t\t251, 135, 169, 252, 170, 254, 65, 111, 191, 253, 216, 89,\n\t\t35, 191, 178, 111, 162, 66, 78, 167, 113, 72, 207, 162, 135,\n\t\t30, 61, 243, 248, 35, 96, 248, 73, 116, 209, 83, 75, 162,\n\t\t114, 211, 132, 54, 149, 77, 140, 210, 147, 104, 167, 139,\n\t\t40, 235, 42, 24, 145, 246, 116, 195, 145, 221, 116, 255, 241,\n\t\t225, 233, 222, 63, 61, 124, 126, 186, 136, 246, 221, 210,\n\t\t178, 135, 54, 71, 35, 112, 251, 175, 140, 87, 181, 108, 157,\n\t\t238, 237, 241, 170, 158, 185, 93, 177, 52, 62, 49, 184, 58,\n\t\t179, 203, 58, 122, 80, 102, 106, 24, 85, 152, 193, 145, 43,\n\t\t206, 151, 61, 64, 153, 22, 115, 252, 98, 95, 139, 43, 71,\n\t\t177, 190, 55, 15, 7, 75, 58, 151, 219, 123, 136, 229, 121,\n\t\t119, 71, 149, 196, 208, 232, 229, 242, 149, 86, 41, 227, 133,\n\t\t9, 202, 222, 99, 198, 208, 38, 175, 166, 108, 102, 69, 197,\n\t\t188, 168, 53, 54, 243, 158, 169, 29, 33, 53, 139, 217, 123,\n\t\t72, 226, 150, 217, 188, 68, 148, 5, 48, 126, 228, 17, 45,\n\t\t175, 247, 148, 82, 81, 59, 71, 164, 201, 172, 173, 120, 70,\n\t\t200, 141, 228, 152, 55, 242, 126, 240, 219, 4, 63, 82, 119,\n\t\t7, 121, 90, 190, 121, 251, 120, 56, 73, 177, 212, 209, 84,\n\t\t194, 87, 76, 200, 14, 250, 226, 245, 77, 83, 212, 23, 141,\n\t\t38, 182, 118, 56, 49, 105, 123, 190, 195, 168, 91, 217, 107,\n\t\t118, 62, 106, 87, 55, 108, 108, 148, 117, 52, 187, 186, 95,\n\t\t96, 27, 180, 19, 33, 199, 130, 96, 146, 211, 194, 192, 163,\n\t\t236, 222, 211, 106, 0, 120, 98, 217, 199, 63, 87, 103, 210,\n\t\t63, 63, 92, 4, 9, 108, 180, 13, 221, 133, 21, 66, 239, 18,\n\t\t10, 190, 115, 213, 195, 186, 182, 246, 42, 118, 23, 89, 20,\n\t\t244, 44, 168, 178, 188, 137, 85, 180, 168, 236, 168, 175,\n\t\t115, 102, 168, 29, 132, 40, 87, 45, 158, 55, 127, 113, 87,\n\t\t41, 234, 213, 52, 243, 41, 67, 20, 108, 61, 214, 16, 37, 56,\n\t\t121, 10, 61, 163, 220, 182, 152, 12, 82, 244, 204, 152, 213,\n\t\t107, 33, 102, 42, 93, 77, 238, 228, 86, 117, 164, 156, 51,\n\t\t123, 53, 32, 98, 53, 253, 2, 59, 27, 248, 237, 193, 97, 241,\n\t\t9, 66, 113, 81, 93, 185, 158, 17, 0, 111, 156, 68, 152, 227,\n\t\t202, 77, 5, 158, 73, 92, 112, 203, 217, 67, 148, 158, 105,\n\t\t189, 3, 114, 35, 186, 250, 12, 5, 66, 147, 145, 150, 223,\n\t\t201, 231, 80, 197, 44, 26, 170, 56, 53, 215, 229, 24, 98,\n\t\t150, 40, 208, 189, 108, 18, 114, 14, 80, 152, 111, 183, 97,\n\t\t145, 81, 41, 221, 217, 160, 172, 191, 101, 55, 245, 26, 168,\n\t\t245, 116, 34, 116, 81, 111, 84, 58, 158, 153, 217, 204, 37,\n\t\t97, 60, 60, 223, 165, 84, 156, 5, 165, 60, 227, 33, 117, 25,\n\t\t228, 159, 3, 157, 113, 150, 135, 51, 214, 81, 146, 232, 242,\n\t\t124, 114, 67, 246, 249, 195, 133, 155, 136, 118, 225, 210,\n\t\t105, 189, 114, 204, 124, 176, 119, 152, 235, 236, 155, 136,\n\t\t87, 112, 177, 148, 157, 188, 186, 139, 151, 245, 96, 113,\n\t\t133, 86, 53, 178, 154, 201, 9, 53, 121, 152, 244, 139, 140,\n\t\t114, 228, 67, 28, 243, 215, 252, 201, 164, 97, 194, 201, 103,\n\t\t249, 17, 150, 162, 72, 216, 105, 91, 114, 242, 88, 168, 162,\n\t\t6, 41, 211, 151, 44, 102, 116, 179, 193, 54, 78, 141, 162,\n\t\t96, 41, 59, 186, 110, 220, 170, 86, 88, 205, 196, 46, 171,\n\t\t170, 26, 86, 217, 246, 247, 98, 109, 198, 252, 137, 108, 42,\n\t\t48, 76, 209, 44, 243, 240, 202, 198, 103, 20, 233, 180, 234,\n\t\t208, 224, 16, 233, 174, 30, 251, 146, 70, 81, 155, 128, 119,\n\t\t132, 165, 140, 200, 156, 54, 117, 72, 131, 220, 222, 148,\n\t\t134, 254, 12, 68, 197, 85, 55, 185, 176, 219, 192, 39, 106,\n\t\t143, 126, 211, 59, 67, 252, 18, 47, 123, 108, 39, 48, 100,\n\t\t78, 43, 94, 84, 220, 203, 235, 106, 29, 121, 208, 192, 33,\n\t\t45, 188, 193, 56, 131, 50, 13, 65, 47, 142, 112, 223, 48,\n\t\t204, 113, 189, 10, 243, 162, 156, 36, 151, 113, 21, 134, 105,\n\t\t190, 160, 9, 25, 29, 24, 200, 199, 129, 75, 123, 183, 112,\n\t\t166, 113, 30, 209, 72, 173, 148, 244, 167, 139, 150, 165,\n\t\t146, 135, 68, 135, 205, 166, 48, 41, 109, 77, 48, 66, 154,\n\t\t122, 26, 220, 26, 226, 144, 154, 67, 84, 99, 202, 100, 16,\n\t\t143, 30, 237, 38, 50, 37, 38, 11, 131, 106, 219, 151, 134,\n\t\t216, 174, 70, 15, 186, 9, 55, 67, 234, 0, 171, 216, 94, 45,\n\t\t124, 230, 98, 173, 138, 3, 195, 106, 105, 59, 70, 73, 7, 181,\n\t\t168, 106, 228, 216, 202, 71, 78, 243, 70, 104, 36, 164, 122,\n\t\t84, 70, 65, 39, 46, 8, 235, 48, 9, 7, 221, 229, 215, 130,\n\t\t67, 25, 0, 79, 83, 22, 210, 77, 99, 174, 172, 38, 217, 93,\n\t\t174, 93, 212, 158, 119, 11, 43, 167, 204, 155, 142, 202, 116,\n\t\t145, 137, 60, 104, 108, 225, 79, 204, 0, 120, 131, 38, 198,\n\t\t242, 240, 63, 89, 23, 107, 240, 5, 184, 65, 86, 126, 59, 12,\n\t\t58, 149, 243, 98, 252, 187, 104, 66, 152, 193, 182, 9, 77,\n\t\t253, 58, 220, 66, 2, 203, 104, 140, 193, 216, 201, 101, 197,\n\t\t232, 207, 210, 54, 156, 77, 131, 37, 98, 110, 124, 190, 203,\n\t\t17, 66, 113, 137, 103, 211, 148, 212, 52, 126, 4, 130, 105,\n\t\t35, 8, 174, 217, 228, 231, 17, 12, 63, 107, 87, 69, 135, 67,\n\t\t98, 48, 232, 202, 100, 217, 87, 151, 2, 86, 192, 143, 18,\n\t\t234, 124, 57, 201, 134, 211, 231, 148, 204, 5, 65, 145, 108,\n\t\t211, 50, 40, 182, 132, 145, 6, 97, 28, 211, 47, 14, 216, 134,\n\t\t177, 124, 91, 122, 103, 8, 197, 50, 0, 160, 229, 97, 172,\n\t\t158, 114, 129, 33, 32, 87, 91, 88, 219, 102, 96, 6, 114, 76,\n\t\t107, 35, 141, 168, 253, 99, 213, 158, 173, 81, 222, 56, 181,\n\t\t22, 80, 215, 52, 99, 69, 54, 245, 20, 91, 228, 124, 30, 126,\n\t\t84, 13, 205, 71, 63, 76, 157, 39, 93, 57, 53, 151, 153, 50,\n\t\t163, 37, 64, 215, 249, 233, 81, 232, 148, 59, 185, 84, 105,\n\t\t125, 204, 70, 70, 54, 187, 125, 29, 84, 27, 213, 79, 141,\n\t\t19, 47, 89, 203, 66, 199, 207, 163, 186, 163, 1, 33, 93, 222,\n\t\t114, 107, 118, 37, 10, 109, 133, 125, 128, 190, 118, 94, 204,\n\t\t123, 162, 170, 125, 47, 67, 36, 161, 82, 180, 171, 203, 18,\n\t\t50, 42, 207, 99, 17, 54, 59, 120, 91, 182, 197, 85, 142, 236,\n\t\t113, 214, 111, 26, 211, 117, 19, 161, 137, 71, 91, 123, 165,\n\t\t227, 5, 220, 9, 219, 28, 132, 230, 24, 166, 217, 170, 50,\n\t\t10, 242, 201, 150, 212, 56, 102, 165, 37, 152, 7, 129, 232,\n\t\t74, 210, 201, 237, 55, 133, 187, 232, 12, 173, 170, 231, 99,\n\t\t38, 143, 129, 53, 10, 28, 203, 97, 159, 140, 118, 140, 242,\n\t\t176, 56, 26, 33, 114, 183, 125, 225, 238, 215, 49, 76, 109,\n\t\t221, 92, 180, 27, 160, 117, 158, 98, 107, 55, 159, 96, 91,\n\t\t118, 138, 226, 140, 210, 210, 32, 6, 91, 9, 207, 134, 234,\n\t\t56, 38, 148, 40, 27, 137, 42, 147, 2, 7, 106, 147, 45, 69,\n\t\t48, 133, 60, 25, 81, 209, 88, 203, 178, 40, 58, 13, 64, 43,\n\t\t47, 54, 99, 35, 19, 55, 58, 206, 163, 195, 56, 52, 106, 120,\n\t\t235, 20, 11, 74, 169, 78, 232, 90, 150, 46, 180, 41, 51, 72,\n\t\t202, 40, 202, 67, 115, 231, 179, 97, 222, 76, 167, 166, 49,\n\t\t57, 163, 225, 220, 200, 201, 168, 105, 51, 21, 83, 140, 149,\n\t\t209, 97, 102, 216, 99, 213, 78, 105, 36, 152, 131, 15, 50,\n\t\t255, 32, 54, 4, 42, 127, 81, 207, 207, 203, 22, 237, 141,\n\t\t158, 132, 154, 141, 158, 252, 118, 77, 146, 194, 171, 55,\n\t\t15, 62, 53, 140, 103, 241, 21, 17, 53, 250, 232, 243, 29,\n\t\t150, 22, 170, 147, 27, 170, 41, 119, 173, 85, 36, 20, 227,\n\t\t148, 4, 133, 196, 70, 51, 102, 206, 198, 127, 119, 147, 183,\n\t\t140, 190, 138, 165, 151, 53, 42, 58, 98, 146, 81, 243, 63,\n\t\t15, 206, 146, 123, 215, 79, 152, 156, 95, 198, 94, 42, 107,\n\t\t176, 97, 47, 199, 226, 177, 97, 47, 117, 233, 57, 103, 118,\n\t\t222, 202, 94, 202, 192, 158, 49, 96, 187, 55, 243, 151, 235,\n\t\t38, 253, 171, 217, 203, 193, 27, 24, 107, 112, 202, 94, 234,\n\t\t54, 134, 39, 239, 23, 236, 165, 244, 91, 216, 75, 101, 255,\n\t\t78, 217, 223, 19, 246, 50, 9, 217, 10, 127, 105, 163, 177,\n\t\t50, 152, 90, 234, 132, 241, 126, 43, 127, 41, 115, 105, 225,\n\t\t47, 181, 111, 27, 254, 114, 240, 0, 231, 199, 134, 87, 217,\n\t\t203, 209, 222, 194, 94, 234, 251, 175, 101, 47, 37, 109, 183,\n\t\t229, 47, 53, 215, 150, 191, 172, 163, 67, 167, 140, 205, 91,\n\t\t217, 75, 57, 163, 248, 115, 174, 235, 173, 236, 229, 122,\n\t\t102, 248, 149, 236, 229, 226, 83, 92, 143, 40, 187, 23, 248,\n\t\t203, 193, 88, 225, 105, 138, 145, 238, 150, 189, 84, 12, 40,\n\t\t123, 57, 216, 162, 51, 86, 120, 62, 231, 163, 117, 34, 111,\n\t\t135, 202, 175, 219, 248, 41, 19, 254, 203, 184, 203, 60, 220,\n\t\t11, 173, 236, 37, 12, 56, 23, 246, 114, 89, 23, 207, 142,\n\t\t19, 231, 252, 229, 9, 123, 217, 198, 34, 178, 178, 151, 35,\n\t\t229, 130, 189, 132, 250, 107, 121, 203, 193, 43, 221, 230,\n\t\t45, 223, 160, 202, 124, 121, 164, 191, 112, 68, 187, 49, 0,\n\t\t4, 81, 98, 150, 203, 173, 161, 171, 188, 40, 55, 251, 225,\n\t\t65, 181, 57, 245, 193, 165, 183, 245, 117, 236, 107, 139,\n\t\t239, 126, 128, 144, 28, 230, 73, 204, 98, 109, 29, 211, 165,\n\t\t62, 219, 240, 136, 56, 205, 54, 0, 204, 95, 170, 185, 60,\n\t\t41, 117, 199, 236, 150, 7, 52, 231, 73, 230, 90, 107, 76,\n\t\t191, 76, 114, 38, 194, 97, 87, 141, 230, 211, 41, 53, 151,\n\t\t205, 59, 88, 106, 174, 171, 227, 23, 197, 128, 33, 64, 92,\n\t\t222, 70, 230, 157, 226, 65, 208, 80, 199, 238, 107, 56, 121,\n\t\t190, 203, 169, 185, 84, 196, 177, 159, 238, 254, 113, 105,\n\t\t94, 195, 198, 233, 226, 103, 107, 1, 67, 51, 45, 14, 233,\n\t\t109, 105, 57, 219, 116, 228, 38, 212, 184, 208, 37, 239, 32,\n\t\t58, 178, 169, 76, 167, 88, 27, 239, 59, 49, 238, 181, 35,\n\t\t100, 41, 131, 229, 181, 21, 197, 198, 64, 134, 96, 153, 223,\n\t\t6, 93, 29, 192, 203, 112, 233, 184, 202, 96, 181, 229, 214,\n\t\t152, 59, 29, 208, 209, 50, 17, 59, 132, 234, 186, 250, 103,\n\t\t154, 214, 163, 233, 152, 122, 104, 30, 168, 206, 87, 101,\n\t\t75, 152, 32, 97, 16, 91, 126, 138, 206, 252, 109, 241, 51,\n\t\t140, 144, 192, 10, 216, 194, 31, 155, 19, 38, 1, 19, 227,\n\t\t56, 37, 213, 133, 79, 31, 118, 135, 128, 61, 168, 29, 190,\n\t\t218, 55, 234, 43, 80, 11, 48, 109, 67, 16, 0, 25, 23, 165,\n\t\t20, 225, 111, 200, 222, 15, 159, 239, 159, 252, 254, 126,\n\t\t190, 112, 243, 213, 46, 20, 245, 214, 41, 38, 110, 102, 68,\n\t\t184, 155, 122, 16, 199, 160, 145, 57, 159, 98, 231, 97, 76,\n\t\t155, 5, 87, 9, 97, 48, 114, 213, 86, 90, 227, 187, 7, 227,\n\t\t54, 99, 118, 64, 57, 228, 121, 225, 183, 210, 228, 213, 205,\n\t\t137, 208, 78, 102, 110, 87, 137, 105, 208, 120, 182, 112,\n\t\t252, 84, 194, 114, 23, 51, 151, 177, 21, 242, 40, 208, 148,\n\t\t207, 118, 247, 101, 251, 25, 62, 156, 22, 86, 175, 222, 94,\n\t\t139, 62, 239, 127, 250, 248, 221, 231, 251, 233, 194, 81,\n\t\t107, 187, 230, 155, 170, 183, 16, 177, 57, 228, 126, 166,\n\t\t52, 81, 13, 189, 117, 13, 213, 152, 32, 101, 215, 178, 220,\n\t\t233, 58, 95, 80, 44, 111, 52, 65, 205, 164, 181, 200, 237,\n\t\t11, 230, 36, 130, 33, 10, 49, 138, 31, 16, 8, 81, 189, 76,\n\t\t69, 209, 39, 149, 197, 42, 20, 241, 171, 234, 99, 104, 195,\n\t\t109, 64, 10, 185, 54, 224, 115, 34, 31, 74, 197, 154, 71,\n\t\t131, 90, 122, 137, 111, 148, 155, 154, 145, 215, 40, 38, 114,\n\t\t173, 65, 27, 90, 43, 0, 18, 158, 29, 201, 17, 207, 205, 24,\n\t\t114, 206, 165, 144, 3, 241, 224, 153, 54, 109, 96, 72, 41,\n\t\t119, 218, 164, 140, 70, 143, 3, 90, 129, 253, 250, 229, 248,\n\t\t20, 101, 224, 83, 79, 204, 34, 82, 161, 230, 58, 168, 253,\n\t\t180, 161, 110, 32, 106, 102, 98, 75, 226, 21, 181, 5, 44,\n\t\t117, 175, 231, 211, 122, 227, 242, 125, 184, 217, 124, 69,\n\t\t13, 8, 43, 238, 110, 168, 78, 90, 212, 198, 171, 194, 2, 129,\n\t\t228, 58, 121, 61, 61, 254, 184, 191, 16, 171, 244, 107, 254,\n\t\t19, 68, 41, 234, 150, 15, 110, 221, 9, 23, 43, 23, 59, 56,\n\t\t136, 178, 140, 44, 100, 197, 88, 21, 136, 49, 212, 137, 121,\n\t\t0, 157, 188, 184, 72, 221, 236, 126, 99, 48, 233, 226, 165,\n\t\t79, 189, 225, 201, 138, 190, 148, 200, 203, 17, 206, 78, 222,\n\t\t53, 217, 69, 206, 89, 202, 209, 87, 220, 83, 155, 86, 9, 149,\n\t\t8, 168, 6, 240, 69, 252, 116, 28, 61, 224, 137, 109, 240,\n\t\t203, 30, 187, 177, 95, 132, 82, 63, 53, 9, 61, 138, 185, 133,\n\t\t181, 100, 115, 62, 23, 110, 38, 151, 61, 181, 99, 197, 3,\n\t\t111, 50, 138, 56, 217, 173, 12, 222, 106, 119, 47, 20, 237,\n\t\t100, 51, 86, 176, 218, 228, 124, 174, 200, 88, 113, 49, 184,\n\t\t198, 197, 225, 157, 161, 87, 194, 58, 143, 103, 193, 180,\n\t\t154, 184, 189, 238, 205, 60, 210, 48, 154, 125, 61, 14, 81,\n\t\t189, 21, 239, 132, 34, 215, 243, 124, 215, 151, 232, 72, 57,\n\t\t224, 4, 124, 12, 246, 157, 57, 135, 113, 0, 24, 187, 33, 217,\n\t\t94, 134, 102, 142, 85, 157, 110, 156, 131, 243, 72, 86, 96,\n\t\t108, 240, 99, 27, 221, 251, 162, 108, 193, 209, 131, 221,\n\t\t149, 217, 241, 116, 185, 66, 48, 182, 97, 236, 237, 42, 120,\n\t\t28, 38, 66, 145, 142, 80, 180, 150, 113, 23, 42, 140, 176,\n\t\t146, 142, 109, 133, 101, 97, 87, 141, 189, 24, 205, 79, 43,\n\t\t239, 43, 25, 176, 47, 71, 7, 25, 11, 115, 219, 104, 189, 90,\n\t\t100, 171, 131, 192, 13, 168, 116, 246, 110, 48, 94, 155, 182,\n\t\t63, 253, 56, 63, 222, 95, 68, 17, 233, 139, 58, 1, 138, 18,\n\t\t197, 222, 183, 120, 43, 40, 66, 105, 123, 223, 170, 49, 73,\n\t\t99, 131, 82, 17, 218, 134, 46, 109, 127, 79, 250, 59, 3, 51,\n\t\t164, 26, 60, 101, 170, 114, 88, 85, 71, 126, 93, 174, 9, 51,\n\t\t159, 130, 181, 77, 201, 41, 172, 17, 42, 9, 44, 35, 41, 184,\n\t\t216, 92, 138, 142, 41, 110, 15, 35, 101, 1, 142, 199, 120,\n\t\t89, 242, 250, 56, 14, 46, 61, 25, 255, 158, 119, 50, 176,\n\t\t149, 115, 195, 27, 98, 165, 169, 134, 200, 85, 252, 192, 213,\n\t\t152, 92, 178, 9, 54, 211, 52, 149, 25, 104, 193, 228, 69,\n\t\t161, 148, 127, 246, 45, 78, 246, 53, 186, 161, 115, 42, 116,\n\t\t195, 255, 31, 27, 87, 114, 117, 66, 61, 223, 37, 241, 164,\n\t\t40, 19, 23, 100, 10, 69, 189, 169, 141, 7, 254, 241, 114,\n\t\t162, 227, 127, 187, 67, 31, 31, 248, 231, 128, 209, 73, 94,\n\t\t140, 207, 119, 36, 14, 157, 110, 87, 241, 106, 13, 215, 29,\n\t\t182, 126, 124, 188, 80, 162, 236, 180, 42, 183, 244, 16, 83,\n\t\t115, 196, 61, 79, 117, 66, 62, 22, 36, 101, 51, 229, 1, 155,\n\t\t68, 53, 20, 182, 62, 49, 235, 0, 37, 52, 222, 212, 107, 22,\n\t\t53, 67, 209, 46, 20, 22, 192, 231, 22, 196, 241, 92, 78, 97,\n\t\t216, 31, 55, 8, 40, 222, 81, 74, 80, 47, 223, 9, 33, 196,\n\t\t10, 7, 143, 5, 3, 148, 42, 59, 4, 37, 252, 127, 217, 123,\n\t\t215, 44, 55, 114, 29, 107, 244, 191, 70, 17, 19, 32, 23, 223,\n\t\t143, 117, 199, 144, 131, 72, 71, 101, 29, 249, 158, 40, 187,\n\t\t218, 42, 171, 191, 206, 209, 223, 133, 13, 128, 17, 82, 232,\n\t\t145, 85, 118, 157, 238, 190, 223, 89, 203, 78, 41, 168, 120,\n\t\t48, 72, 144, 4, 64, 96, 239, 34, 63, 149, 38, 39, 199, 48,\n\t\t243, 220, 31, 101, 239, 4, 91, 38, 140, 60, 22, 10, 240, 77,\n\t\t232, 249, 169, 114, 125, 194, 204, 21, 134, 98, 165, 111,\n\t\t32, 53, 215, 138, 27, 169, 185, 84, 252, 48, 163, 226, 33,\n\t\t79, 90, 111, 131, 138, 55, 63, 113, 189, 235, 132, 154, 100,\n\t\t63, 113, 173, 79, 90, 103, 84, 25, 59, 218, 84, 28, 39, 121,\n\t\t187, 25, 245, 197, 250, 194, 213, 205, 146, 45, 12, 170, 162,\n\t\t218, 249, 193, 108, 85, 217, 22, 211, 251, 75, 72, 145, 244,\n\t\t168, 41, 210, 29, 107, 155, 155, 205, 53, 64, 77, 242, 41,\n\t\t102, 192, 177, 214, 166, 9, 39, 100, 25, 120, 91, 200, 152,\n\t\t133, 35, 34, 68, 210, 208, 124, 34, 197, 140, 46, 140, 34,\n\t\t157, 45, 52, 207, 87, 230, 32, 62, 139, 24, 249, 210, 80,\n\t\t14, 51, 130, 161, 25, 215, 165, 50, 152, 20, 178, 143, 2,\n\t\t8, 157, 156, 183, 12, 4, 86, 233, 244, 56, 190, 240, 147,\n\t\t60, 195, 172, 115, 188, 57, 227, 67, 178, 255, 38, 183, 166,\n\t\t15, 24, 79, 156, 189, 69, 182, 38, 148, 206, 144, 130, 39,\n\t\t27, 144, 209, 137, 156, 77, 205, 165, 210, 167, 168, 122,\n\t\t165, 150, 204, 213, 122, 32, 41, 98, 92, 151, 158, 226, 148,\n\t\t108, 3, 43, 59, 80, 99, 60, 24, 214, 65, 51, 146, 108, 78,\n\t\t180, 0, 53, 27, 168, 30, 221, 225, 202, 201, 71, 164, 115,\n\t\t79, 100, 7, 197, 92, 245, 243, 49, 162, 208, 241, 235, 30,\n\t\t81, 168, 143, 228, 232, 212, 163, 77, 83, 10, 209, 194, 250,\n\t\t211, 61, 194, 172, 158, 213, 141, 79, 83, 11, 2, 155, 202,\n\t\t136, 119, 200, 28, 20, 230, 170, 133, 145, 147, 214, 63, 28,\n\t\t225, 162, 243, 155, 76, 67, 117, 53, 243, 216, 173, 194, 247,\n\t\t92, 120, 2, 4, 246, 144, 248, 57, 61, 59, 212, 35, 251, 211,\n\t\t135, 195, 221, 195, 209, 73, 115, 249, 226, 125, 152, 210,\n\t\t202, 49, 169, 123, 28, 195, 139, 40, 187, 202, 8, 25, 132,\n\t\t89, 116, 88, 146, 250, 105, 138, 160, 32, 87, 81, 91, 84,\n\t\t25, 242, 201, 219, 0, 125, 37, 3, 103, 145, 209, 22, 195,\n\t\t2, 0, 37, 236, 69, 116, 209, 143, 228, 66, 5, 193, 214, 125,\n\t\t18, 175, 206, 50, 245, 40, 135, 182, 0, 234, 62, 12, 239,\n\t\t162, 119, 178, 28, 203, 22, 129, 47, 188, 110, 101, 133, 142,\n\t\t123, 222, 157, 230, 244, 31, 223, 111, 16, 176, 245, 71, 4,\n\t\t33, 206, 77, 26, 228, 119, 63, 122, 121, 19, 234, 119, 63,\n\t\t86, 126, 96, 238, 220, 141, 149, 95, 195, 254, 110, 6, 84,\n\t\t199, 28, 222, 95, 200, 24, 14, 179, 47, 206, 186, 76, 67,\n\t\t34, 116, 7, 51, 191, 186, 134, 239, 161, 187, 179, 0, 151,\n\t\t180, 130, 84, 15, 27, 144, 42, 227, 163, 245, 192, 100, 164,\n\t\t65, 25, 42, 0, 44, 139, 79, 113, 49, 133, 140, 106, 203, 26,\n\t\t149, 179, 221, 183, 158, 224, 95, 242, 30, 217, 36, 193, 38,\n\t\t192, 198, 57, 27, 27, 89, 138, 3, 207, 112, 148, 32, 67, 77,\n\t\t93, 47, 192, 14, 43, 64, 39, 112, 50, 255, 208, 188, 83, 145,\n\t\t102, 74, 83, 29, 226, 252, 96, 46, 192, 19, 8, 138, 182, 158,\n\t\t24, 98, 186, 8, 20, 29, 39, 110, 37, 169, 250, 90, 66, 150,\n\t\t122, 11, 28, 242, 215, 1, 90, 25, 108, 2, 160, 131, 233, 22,\n\t\t211, 182, 205, 130, 150, 224, 1, 228, 183, 196, 106, 91, 203,\n\t\t149, 23, 252, 94, 1, 13, 168, 121, 59, 100, 102, 35, 83, 186,\n\t\t120, 219, 98, 233, 224, 219, 110, 190, 164, 73, 224, 39, 228,\n\t\t179, 246, 69, 47, 159, 112, 63, 54, 132, 19, 77, 66, 19, 211,\n\t\t67, 248, 201, 84, 144, 202, 5, 84, 1, 216, 165, 82, 5, 45,\n\t\t152, 141, 23, 15, 173, 195, 254, 46, 160, 245, 28, 114, 55,\n\t\t83, 214, 87, 227, 119, 13, 141, 99, 238, 121, 208, 119, 142,\n\t\t124, 203, 214, 249, 134, 124, 108, 235, 25, 54, 84, 218, 19,\n\t\t8, 156, 156, 41, 63, 74, 164, 205, 97, 23, 57, 219, 25, 153,\n\t\t210, 89, 95, 125, 171, 184, 69, 202, 201, 239, 187, 116, 97,\n\t\t65, 152, 76, 201, 179, 183, 153, 65, 203, 138, 173, 32, 103,\n\t\t169, 54, 55, 4, 227, 178, 4, 177, 0, 149, 160, 199, 143, 21,\n\t\t224, 47, 203, 215, 189, 79, 164, 239, 242, 54, 46, 71, 158,\n\t\t239, 225, 110, 120, 173, 47, 238, 81, 120, 237, 3, 132, 171,\n\t\t51, 95, 122, 3, 108, 135, 20, 72, 23, 0, 114, 222, 128, 198,\n\t\t154, 39, 159, 35, 77, 103, 192, 238, 167, 239, 249, 68, 170,\n\t\t49, 76, 191, 73, 190, 249, 188, 90, 52, 63, 198, 42, 234,\n\t\t145, 27, 31, 187, 154, 67, 98, 105, 12, 35, 188, 142, 2, 152,\n\t\t144, 188, 174, 172, 140, 192, 85, 86, 142, 177, 247, 189,\n\t\t150, 84, 94, 8, 206, 12, 124, 126, 12, 207, 2, 228, 190, 189,\n\t\t253, 242, 249, 15, 51, 191, 126, 219, 27, 45, 59, 63, 214,\n\t\t234, 107, 112, 147, 47, 103, 95, 203, 49, 87, 50, 203, 107,\n\t\t121, 24, 0, 13, 182, 131, 59, 24, 100, 64, 87, 79, 31, 192,\n\t\t112, 34, 101, 252, 71, 64, 156, 224, 90, 122, 134, 226, 84,\n\t\t146, 84, 230, 25, 6, 89, 13, 63, 84, 25, 70, 0, 122, 92, 23,\n\t\t192, 129, 22, 73, 153, 161, 118, 78, 237, 30, 114, 148, 187,\n\t\t51, 120, 30, 103, 100, 239, 9, 253, 250, 14, 156, 125, 67,\n\t\t21, 29, 154, 117, 164, 174, 6, 235, 146, 23, 39, 82, 44, 146,\n\t\t117, 88, 42, 166, 215, 68, 191, 93, 127, 158, 248, 115, 186,\n\t\t60, 109, 146, 31, 181, 84, 174, 185, 248, 56, 241, 153, 252,\n\t\t128, 32, 231, 232, 109, 223, 95, 162, 3, 203, 15, 252, 251,\n\t\t193, 245, 217, 217, 212, 147, 103, 218, 89, 31, 19, 195, 31,\n\t\t54, 6, 201, 68, 32, 0, 159, 218, 123, 246, 82, 64, 194, 137,\n\t\t24, 98, 4, 34, 37, 159, 120, 231, 208, 103, 14, 180, 45, 138,\n\t\t53, 229, 139, 117, 190, 34, 252, 186, 181, 82, 103, 236, 73,\n\t\t52, 100, 35, 6, 139, 172, 221, 194, 185, 182, 193, 121, 155,\n\t\t26, 146, 192, 128, 48, 52, 201, 39, 221, 62, 246, 146, 218,\n\t\t68, 11, 1, 227, 85, 203, 205, 224, 4, 15, 146, 4, 136, 2,\n\t\t121, 218, 89, 234, 54, 187, 169, 91, 159, 106, 42, 116, 42,\n\t\t150, 78, 95, 24, 148, 93, 222, 10, 47, 149, 252, 12, 4, 1,\n\t\t142, 239, 101, 72, 208, 80, 73, 129, 68, 148, 83, 176, 49,\n\t\t147, 186, 85, 108, 207, 204, 6, 209, 243, 251, 225, 37, 209,\n\t\t218, 216, 133, 230, 171, 250, 121, 232, 235, 166, 43, 150,\n\t\t36, 194, 140, 165, 13, 179, 67, 40, 117, 177, 206, 165, 46,\n\t\t37, 81, 155, 145, 243, 21, 138, 96, 38, 98, 39, 56, 101, 64,\n\t\t134, 50, 232, 132, 151, 88, 226, 12, 78, 41, 106, 68, 94,\n\t\t148, 124, 247, 22, 8, 85, 190, 120, 27, 90, 153, 98, 74, 182,\n\t\t192, 44, 36, 219, 168, 228, 73, 62, 113, 123, 223, 124, 161,\n\t\t5, 77, 178, 106, 229, 110, 83, 181, 145, 129, 73, 181, 128,\n\t\t159, 118, 150, 154, 29, 208, 138, 204, 93, 91, 109, 170, 136,\n\t\t143, 46, 156, 116, 162, 239, 133, 215, 202, 125, 14, 224,\n\t\t110, 8, 12, 140, 155, 115, 134, 250, 239, 58, 128, 17, 42,\n\t\t0, 22, 82, 164, 110, 38, 221, 135, 191, 60, 28, 104, 199,\n\t\t95, 118, 115, 235, 235, 14, 88, 125, 155, 199, 72, 114, 150,\n\t\t206, 166, 151, 231, 186, 230, 152, 91, 239, 234, 154, 253,\n\t\t97, 238, 158, 206, 29, 247, 84, 222, 247, 151, 76, 98, 4,\n\t\t159, 76, 115, 8, 144, 47, 157, 116, 12, 234, 138, 6, 24, 10,\n\t\t14, 208, 23, 184, 18, 91, 11, 160, 190, 163, 131, 162, 106,\n\t\t138, 245, 37, 187, 180, 244, 98, 115, 32, 129, 77, 137, 36,\n\t\t246, 48, 87, 219, 74, 1, 139, 29, 208, 171, 167, 144, 25,\n\t\t26, 27, 120, 247, 9, 75, 99, 108, 89, 14, 145, 55, 93, 130,\n\t\t39, 195, 207, 55, 228, 50, 210, 52, 84, 35, 160, 82, 114,\n\t\t5, 168, 56, 93, 209, 121, 1, 138, 85, 158, 136, 20, 109, 126,\n\t\t36, 85, 216, 43, 44, 54, 163, 34, 7, 193, 42, 146, 74, 142,\n\t\t90, 203, 241, 230, 109, 153, 69, 9, 233, 134, 190, 242, 92,\n\t\t196, 121, 75, 216, 2, 9, 117, 112, 4, 158, 182, 199, 82, 36,\n\t\t233, 77, 72, 88, 0, 23, 210, 201, 108, 142, 149, 225, 41,\n\t\t182, 244, 179, 30, 112, 235, 254, 143, 4, 244, 211, 247, 101,\n\t\t57, 126, 253, 182, 115, 20, 189, 62, 218, 109, 168, 216, 36,\n\t\t158, 57, 138, 172, 48, 57, 74, 176, 61, 59, 78, 120, 22, 181,\n\t\t134, 117, 244, 156, 65, 159, 114, 134, 183, 177, 97, 87, 170,\n\t\t35, 187, 35, 34, 143, 159, 3, 0, 86, 226, 42, 90, 27, 25,\n\t\t115, 219, 209, 128, 108, 25, 30, 29, 159, 173, 79, 137, 244,\n\t\t112, 209, 138, 125, 103, 224, 224, 202, 232, 183, 139, 105,\n\t\t153, 19, 35, 74, 3, 10, 236, 60, 184, 126, 98, 178, 152, 218,\n\t\t105, 154, 6, 192, 82, 214, 154, 250, 236, 44, 135, 45, 208,\n\t\t241, 17, 212, 213, 205, 193, 120, 96, 226, 4, 14, 52, 17,\n\t\t96, 13, 100, 178, 5, 167, 36, 6, 90, 194, 180, 145, 161, 227,\n\t\t210, 169, 91, 82, 188, 115, 6, 244, 44, 141, 60, 6, 30, 175,\n\t\t213, 166, 228, 210, 140, 189, 104, 222, 218, 64, 122, 11,\n\t\t227, 26, 36, 236, 137, 50, 35, 93, 208, 0, 19, 41, 57, 2,\n\t\t39, 13, 176, 19, 192, 197, 114, 188, 117, 21, 109, 240, 174,\n\t\t79, 69, 80, 114, 1, 132, 14, 23, 64, 181, 46, 35, 170, 90,\n\t\t152, 182, 16, 47, 202, 168, 109, 54, 23, 106, 48, 207, 220,\n\t\t18, 163, 128, 140, 159, 206, 180, 157, 206, 182, 130, 120,\n\t\t205, 58, 162, 142, 128, 215, 27, 104, 224, 149, 50, 129, 2,\n\t\t51, 234, 238, 198, 0, 85, 54, 133, 215, 119, 5, 81, 46, 137,\n\t\t39, 30, 61, 67, 127, 43, 242, 239, 72, 26, 127, 78, 22, 9,\n\t\t242, 14, 232, 193, 66, 29, 225, 128, 204, 75, 70, 152, 246,\n\t\t202, 114, 221, 175, 89, 186, 38, 129, 179, 32, 79, 62, 112,\n\t\t165, 69, 16, 166, 43, 193, 152, 149, 100, 130, 153, 207, 168,\n\t\t225, 242, 96, 62, 131, 132, 30, 134, 100, 250, 206, 248, 199,\n\t\t112, 88, 52, 165, 6, 149, 41, 49, 6, 17, 101, 231, 121, 66,\n\t\t40, 100, 124, 59, 127, 14, 45, 216, 198, 161, 168, 124, 117,\n\t\t40, 54, 69, 178, 4, 105, 89, 31, 104, 197, 158, 38, 156, 200,\n\t\t65, 11, 140, 120, 221, 29, 86, 99, 41, 192, 148, 95, 58, 131,\n\t\t152, 8, 217, 31, 51, 93, 130, 170, 228, 234, 236, 199, 122,\n\t\t253, 219, 183, 63, 62, 255, 250, 121, 126, 253, 99, 231, 5,\n\t\t121, 93, 115, 27, 51, 205, 170, 32, 52, 178, 174, 45, 41,\n\t\t3, 76, 16, 73, 121, 18, 186, 192, 46, 77, 12, 236, 26, 72,\n\t\t83, 137, 33, 96, 183, 184, 192, 24, 230, 92, 132, 130, 168,\n\t\t13, 103, 99, 132, 53, 27, 68, 10, 176, 254, 186, 176, 32,\n\t\t209, 147, 236, 230, 18, 56, 55, 139, 211, 221, 225, 95, 180,\n\t\t12, 171, 225, 109, 11, 153, 119, 27, 74, 225, 232, 34, 190,\n\t\t132, 190, 84, 79, 119, 21, 20, 120, 220, 172, 46, 184, 57,\n\t\t174, 165, 199, 85, 166, 152, 167, 10, 0, 228, 164, 89, 207,\n\t\t204, 156, 85, 238, 203, 137, 247, 12, 8, 3, 240, 8, 174, 119,\n\t\t91, 104, 166, 194, 6, 124, 66, 174, 18, 31, 119, 122, 101,\n\t\t46, 152, 233, 213, 75, 32, 195, 217, 71, 150, 100, 18, 122,\n\t\t118, 52, 84, 219, 29, 252, 24, 122, 87, 189, 169, 86, 78,\n\t\t234, 182, 214, 158, 147, 94, 235, 204, 111, 142, 160, 54,\n\t\t122, 154, 231, 55, 207, 1, 158, 218, 38, 224, 31, 104, 1,\n\t\t109, 0, 109, 68, 105, 195, 195, 218, 206, 210, 204, 184, 39,\n\t\t136, 83, 52, 244, 35, 36, 27, 107, 240, 8, 124, 4, 84, 141,\n\t\t246, 149, 118, 21, 250, 59, 167, 73, 186, 123, 49, 23, 5,\n\t\t130, 141, 163, 62, 109, 134, 207, 81, 1, 208, 254, 199, 45,\n\t\t51, 223, 177, 246, 229, 170, 78, 139, 185, 170, 246, 108,\n\t\t180, 239, 165, 235, 209, 243, 137, 67, 162, 11, 199, 137,\n\t\t141, 183, 118, 125, 65, 187, 229, 209, 110, 135, 229, 170,\n\t\t101, 103, 154, 23, 225, 35, 167, 190, 8, 17, 190, 79, 154,\n\t\t1, 144, 15, 216, 185, 98, 107, 207, 244, 69, 187, 27, 241,\n\t\t38, 201, 55, 20, 64, 219, 161, 227, 208, 102, 31, 108, 173,\n\t\t41, 33, 12, 7, 225, 60, 133, 247, 25, 170, 40, 195, 87, 2,\n\t\t212, 151, 107, 65, 92, 46, 37, 117, 150, 158, 78, 66, 211,\n\t\t163, 253, 108, 164, 163, 47, 37, 157, 100, 229, 122, 184,\n\t\t28, 150, 235, 17, 53, 107, 79, 107, 76, 164, 246, 52, 162,\n\t\t39, 11, 163, 11, 93, 140, 202, 199, 234, 233, 235, 151, 95,\n\t\t204, 239, 95, 63, 127, 249, 195, 124, 251, 252, 143, 227,\n\t\t14, 40, 231, 245, 50, 149, 51, 53, 27, 211, 186, 238, 51,\n\t\t6, 5, 215, 47, 69, 25, 111, 73, 67, 183, 164, 228, 104, 122,\n\t\t183, 45, 251, 50, 147, 202, 157, 152, 153, 207, 58, 50, 148,\n\t\t60, 221, 14, 94, 196, 46, 172, 35, 69, 76, 43, 83, 105, 81,\n\t\t74, 145, 148, 190, 208, 26, 71, 57, 99, 39, 36, 136, 53, 132,\n\t\t45, 27, 206, 26, 45, 54, 97, 61, 47, 193, 70, 159, 211, 220,\n\t\t108, 231, 61, 167, 212, 101, 233, 15, 222, 246, 68, 115, 64,\n\t\t245, 186, 135, 52, 98, 31, 184, 132, 23, 253, 84, 120, 125,\n\t\t245, 209, 134, 90, 104, 37, 12, 12, 146, 105, 96, 118, 208,\n\t\t130, 2, 26, 96, 47, 67, 194, 89, 95, 144, 50, 105, 106, 177,\n\t\t173, 71, 0, 34, 50, 56, 135, 167, 153, 59, 250, 41, 54, 27,\n\t\t125, 202, 88, 190, 161, 218, 121, 197, 232, 13, 206, 134,\n\t\t210, 10, 7, 36, 137, 114, 129, 2, 186, 210, 37, 127, 246,\n\t\t213, 219, 28, 242, 66, 138, 16, 63, 122, 155, 125, 57, 59,\n\t\t64, 123, 164, 128, 221, 135, 88, 10, 75, 186, 35, 5, 154,\n\t\t102, 169, 134, 160, 244, 84, 98, 159, 168, 39, 82, 170, 135,\n\t\t57, 52, 158, 190, 104, 76, 147, 156, 246, 204, 220, 84, 128,\n\t\t206, 111, 52, 164, 171, 205, 49, 77, 149, 198, 122, 12, 115,\n\t\t181, 181, 23, 238, 40, 223, 99, 154, 148, 148, 24, 234, 14,\n\t\t104, 38, 17, 117, 239, 193, 186, 25, 130, 39, 149, 198, 249,\n\t\t8, 155, 62, 87, 6, 85, 137, 32, 139, 96, 234, 56, 184, 119,\n\t\t17, 182, 215, 64, 23, 36, 174, 198, 102, 99, 110, 105, 16,\n\t\t26, 81, 143, 14, 18, 110, 153, 205, 147, 237, 190, 29, 125,\n\t\t234, 54, 196, 52, 135, 200, 93, 238, 166, 33, 109, 1, 78,\n\t\t214, 233, 82, 250, 74, 120, 127, 65, 200, 29, 86, 249, 30,\n\t\t62, 16, 157, 211, 158, 65, 5, 245, 240, 40, 72, 40, 181, 135,\n\t\t33, 66, 239, 47, 165, 77, 12, 57, 234, 173, 75, 204, 226,\n\t\t212, 51, 178, 93, 46, 182, 126, 165, 84, 247, 127, 55, 135,\n\t\t235, 38, 240, 122, 229, 147, 157, 224, 205, 40, 95, 222, 246,\n\t\t252, 180, 175, 235, 134, 151, 180, 94, 232, 193, 250, 154,\n\t\t70, 123, 155, 108, 91, 114, 45, 76, 141, 9, 100, 56, 236,\n\t\t27, 84, 135, 197, 102, 206, 105, 147, 174, 226, 158, 66, 35,\n\t\t194, 11, 17, 189, 109, 30, 24, 103, 141, 70, 37, 169, 77,\n\t\t152, 12, 85, 28, 84, 26, 124, 19, 63, 243, 74, 87, 131, 16,\n\t\t78, 33, 14, 111, 189, 102, 208, 154, 170, 192, 97, 55, 48,\n\t\t8, 236, 85, 43, 200, 94, 46, 169, 177, 135, 40, 98, 207, 84,\n\t\t132, 217, 136, 52, 31, 48, 31, 231, 2, 100, 138, 14, 221,\n\t\t151, 6, 8, 168, 201, 67, 182, 224, 127, 211, 17, 99, 100,\n\t\t200, 108, 199, 222, 54, 65, 252, 108, 120, 112, 106, 132,\n\t\t75, 195, 54, 120, 179, 236, 75, 135, 109, 89, 242, 58, 162,\n\t\t161, 198, 185, 232, 103, 90, 123, 192, 134, 98, 42, 64, 120,\n\t\t138, 103, 94, 69, 32, 109, 52, 200, 139, 204, 27, 102, 76,\n\t\t28, 193, 214, 16, 11, 103, 94, 151, 198, 81, 116, 144, 177,\n\t\t8, 120, 57, 173, 157, 47, 235, 209, 97, 38, 251, 1, 212, 44,\n\t\t14, 129, 162, 12, 74, 169, 77, 166, 147, 159, 204, 125, 140,\n\t\t104, 68, 99, 180, 219, 128, 241, 14, 99, 56, 182, 72, 134,\n\t\t117, 106, 37, 174, 147, 172, 206, 177, 136, 181, 79, 25, 70,\n\t\t186, 175, 133, 179, 200, 192, 34, 150, 163, 109, 157, 233,\n\t\t186, 120, 46, 151, 169, 124, 93, 7, 160, 146, 37, 6, 168,\n\t\t29, 18, 55, 64, 33, 164, 64, 86, 143, 25, 169, 111, 129, 150,\n\t\t81, 154, 124, 64, 151, 199, 35, 123, 186, 56, 147, 70, 122,\n\t\t162, 249, 168, 134, 195, 179, 65, 248, 175, 153, 10, 222,\n\t\t1, 193, 85, 220, 172, 35, 29, 67, 119, 59, 102, 79, 127, 113,\n\t\t236, 127, 116, 172, 239, 225, 109, 95, 119, 177, 242, 107,\n\t\t120, 170, 143, 153, 212, 147, 41, 165, 54, 203, 234, 238,\n\t\t166, 177, 170, 235, 58, 127, 189, 204, 159, 215, 213, 93,\n\t\t23, 117, 89, 229, 117, 77, 215, 69, 94, 196, 96, 200, 197,\n\t\t172, 43, 186, 46, 241, 186, 160, 235, 10, 47, 162, 54, 100,\n\t\t111, 214, 229, 92, 215, 247, 177, 152, 235, 242, 126, 189,\n\t\t186, 195, 145, 175, 203, 186, 217, 44, 230, 178, 188, 95,\n\t\t140, 158, 121, 93, 204, 199, 250, 62, 86, 115, 93, 222, 117,\n\t\t84, 142, 113, 58, 155, 177, 158, 235, 2, 111, 118, 11, 186,\n\t\t145, 21, 125, 148, 28, 141, 174, 237, 23, 136, 151, 235, 100,\n\t\t131, 33, 137, 53, 125, 93, 229, 141, 46, 235, 186, 204, 235,\n\t\t36, 165, 179, 214, 1, 22, 139, 236, 172, 139, 157, 162, 43,\n\t\t59, 86, 122, 140, 125, 158, 12, 117, 118, 196, 131, 124, 79,\n\t\t113, 210, 181, 222, 200, 226, 174, 107, 189, 206, 184, 96,\n\t\t147, 94, 151, 119, 93, 240, 117, 121, 151, 229, 94, 166, 115,\n\t\t157, 222, 103, 93, 218, 117, 173, 31, 75, 187, 172, 245, 188,\n\t\t92, 140, 229, 227, 172, 43, 14, 134, 61, 102, 156, 171, 133,\n\t\t253, 106, 244, 191, 191, 120, 196, 227, 28, 224, 84, 248,\n\t\t241, 232, 92, 186, 203, 15, 4, 9, 191, 191, 68, 26, 36, 208,\n\t\t246, 100, 208, 127, 104, 72, 95, 47, 231, 251, 169, 225, 163,\n\t\t131, 254, 22, 40, 242, 235, 14, 213, 122, 29, 246, 221, 91,\n\t\t161, 115, 228, 108, 198, 209, 3, 102, 172, 245, 186, 248,\n\t\t155, 117, 177, 151, 213, 223, 92, 117, 31, 226, 127, 177,\n\t\t220, 143, 245, 223, 232, 130, 175, 10, 128, 185, 22, 145,\n\t\t117, 193, 87, 29, 64, 215, 123, 85, 0, 54, 18, 168, 171, 189,\n\t\t46, 255, 186, 216, 235, 234, 127, 37, 222, 135, 89, 151, 122,\n\t\t93, 251, 183, 43, 61, 45, 253, 87, 99, 104, 185, 61, 30, 143,\n\t\t186, 220, 235, 90, 15, 12, 72, 197, 83, 193, 170, 47, 75,\n\t\t252, 24, 227, 51, 175, 240, 186, 224, 143, 5, 94, 151, 252,\n\t\t253, 76, 178, 93, 224, 215, 69, 127, 204, 80, 178, 228, 111,\n\t\t231, 44, 76, 112, 186, 210, 155, 177, 190, 235, 130, 191,\n\t\t51, 119, 128, 93, 203, 163, 92, 151, 124, 51, 150, 120, 93,\n\t\t243, 205, 110, 226, 53, 235, 34, 47, 171, 190, 25, 171, 188,\n\t\t46, 251, 230, 122, 126, 95, 87, 6, 55, 141, 21, 223, 236,\n\t\t214, 249, 157, 225, 200, 233, 76, 88, 241, 221, 80, 227, 199,\n\t\t226, 111, 246, 227, 223, 135, 41, 234, 14, 233, 93, 189, 252,\n\t\t95, 52, 59, 188, 191, 196, 64, 118, 209, 159, 214, 240, 15,\n\t\t207, 231, 132, 135, 51, 192, 235, 183, 111, 95, 255, 211,\n\t\t204, 159, 191, 205, 203, 219, 109, 37, 191, 109, 41, 63, 76,\n\t\t70, 174, 5, 35, 44, 33, 6, 203, 243, 151, 144, 218, 137, 14,\n\t\t228, 59, 142, 25, 71, 83, 10, 233, 172, 147, 25, 231, 143,\n\t\t63, 239, 47, 161, 37, 161, 128, 71, 212, 90, 205, 54, 107,\n\t\t80, 195, 209, 183, 96, 175, 226, 105, 47, 194, 118, 87, 4,\n\t\t214, 139, 192, 10, 105, 123, 52, 61, 221, 97, 217, 222, 116,\n\t\t238, 18, 105, 35, 33, 222, 93, 163, 202, 68, 178, 56, 199,\n\t\t209, 3, 141, 27, 161, 228, 139, 241, 126, 146, 56, 62, 128,\n\t\t47, 179, 13, 172, 123, 239, 154, 128, 60, 10, 162, 228, 91,\n\t\t185, 5, 91, 168, 149, 119, 82, 49, 136, 228, 140, 253, 151,\n\t\t45, 194, 9, 71, 172, 45, 219, 107, 123, 159, 245, 185, 227,\n\t\t154, 65, 141, 162, 5, 235, 115, 55, 245, 237, 150, 108, 168,\n\t\t60, 141, 232, 125, 132, 87, 94, 188, 224, 199, 5, 228, 182,\n\t\t175, 167, 95, 144, 194, 36, 55, 179, 128, 124, 168, 251, 79,\n\t\t79, 197, 232, 253, 37, 132, 106, 105, 50, 47, 54, 113, 71,\n\t\t106, 226, 137, 244, 238, 117, 220, 204, 117, 124, 205, 117,\n\t\t252, 205, 101, 92, 13, 70, 40, 75, 137, 185, 184, 251, 129,\n\t\t58, 76, 178, 102, 53, 173, 179, 143, 188, 215, 52, 146, 240,\n\t\t164, 49, 53, 127, 110, 241, 106, 121, 162, 245, 255, 68, 167,\n\t\t161, 191, 89, 84, 244, 215, 235, 207, 77, 178, 187, 72, 137,\n\t\t89, 47, 107, 91, 225, 140, 163, 158, 34, 156, 82, 176, 21,\n\t\t78, 174, 104, 215, 119, 101, 108, 110, 142, 63, 209, 23, 214,\n\t\t240, 246, 139, 215, 164, 175, 31, 23, 154, 27, 230, 196, 171,\n\t\t74, 76, 155, 212, 24, 170, 211, 95, 154, 62, 246, 242, 243,\n\t\t254, 226, 51, 210, 142, 75, 180, 126, 209, 232, 40, 234, 217,\n\t\t179, 136, 203, 19, 81, 120, 60, 223, 240, 116, 50, 98, 174,\n\t\t178, 205, 243, 42, 28, 44, 45, 67, 54, 84, 90, 70, 102, 165,\n\t\t182, 226, 97, 209, 176, 96, 239, 55, 125, 125, 57, 177, 92,\n\t\t244, 117, 3, 12, 1, 132, 3, 125, 93, 215, 217, 228, 225, 68,\n\t\t196, 137, 10, 124, 101, 227, 201, 164, 174, 98, 114, 227,\n\t\t203, 229, 68, 132, 199, 142, 12, 28, 84, 118, 8, 72, 94, 211,\n\t\t35, 164, 5, 68, 52, 134, 176, 124, 92, 70, 110, 106, 159,\n\t\t159, 54, 36, 113, 211, 48, 189, 235, 244, 33, 49, 120, 190,\n\t\t26, 189, 191, 196, 226, 108, 154, 66, 112, 182, 47, 230, 162,\n\t\t79, 207, 42, 41, 15, 151, 150, 143, 204, 60, 50, 177, 108,\n\t\t196, 240, 48, 155, 177, 242, 104, 82, 190, 50, 75, 141, 36,\n\t\t122, 145, 24, 109, 201, 197, 140, 56, 114, 239, 47, 22, 146,\n\t\t171, 249, 229, 102, 255, 65, 106, 164, 239, 119, 75, 207,\n\t\t173, 25, 73, 164, 70, 150, 158, 233, 242, 202, 143, 200, 233,\n\t\t144, 110, 153, 88, 48, 185, 132, 177, 10, 153, 221, 136, 120,\n\t\t40, 42, 255, 88, 190, 126, 218, 111, 73, 238, 195, 67, 123,\n\t\t25, 72, 207, 136, 120, 107, 141, 12, 230, 138, 208, 255, 169,\n\t\t201, 179, 147, 230, 235, 230, 48, 53, 228, 223, 229, 112,\n\t\t170, 188, 25, 131, 31, 80, 104, 124, 14, 140, 135, 205, 130,\n\t\t23, 52, 96, 95, 178, 220, 162, 205, 138, 134, 90, 104, 249,\n\t\t200, 54, 206, 3, 90, 129, 76, 207, 17, 101, 111, 52, 117,\n\t\t108, 20, 148, 116, 26, 25, 236, 184, 145, 217, 252, 68, 107,\n\t\t26, 221, 108, 197, 55, 113, 124, 6, 87, 94, 81, 1, 198, 179,\n\t\t223, 95, 82, 45, 150, 236, 144, 118, 56, 26, 239, 218, 128,\n\t\t127, 205, 69, 241, 35, 50, 199, 217, 147, 109, 131, 60, 106,\n\t\t132, 228, 151, 185, 122, 137, 189, 92, 211, 193, 201, 194,\n\t\t174, 145, 83, 53, 61, 242, 119, 233, 204, 247, 23, 142, 219,\n\t\t79, 161, 91, 118, 195, 13, 52, 39, 209, 197, 245, 117, 90,\n\t\t146, 52, 207, 164, 97, 170, 184, 1, 87, 44, 80, 195, 22, 206,\n\t\t138, 159, 26, 245, 144, 15, 52, 0, 125, 6, 83, 19, 63, 41,\n\t\t181, 74, 99, 50, 151, 57, 143, 41, 201, 1, 226, 32, 175, 77,\n\t\t137, 131, 146, 14, 39, 19, 181, 205, 185, 33, 155, 102, 86,\n\t\t42, 23, 115, 153, 71, 59, 122, 237, 48, 64, 248, 140, 6, 28,\n\t\t125, 65, 54, 200, 166, 75, 125, 178, 160, 94, 212, 172, 123,\n\t\t142, 145, 92, 251, 109, 210, 29, 250, 241, 40, 231, 103, 133,\n\t\t219, 145, 94, 107, 50, 91, 142, 110, 211, 130, 146, 78, 113,\n\t\t35, 73, 107, 49, 63, 247, 176, 118, 191, 193, 78, 175, 140,\n\t\t22, 212, 124, 28, 81, 231, 251, 140, 225, 85, 142, 36, 231,\n\t\t134, 81, 211, 84, 210, 77, 26, 224, 66, 160, 81, 84, 185,\n\t\t62, 153, 138, 221, 80, 254, 77, 199, 192, 251, 75, 244, 141,\n\t\t228, 35, 49, 171, 221, 172, 221, 172, 189, 172, 157, 172,\n\t\t125, 172, 114, 116, 132, 208, 5, 205, 100, 209, 14, 54, 77,\n\t\t16, 23, 12, 247, 178, 185, 144, 39, 157, 1, 113, 245, 65,\n\t\t17, 105, 141, 202, 172, 138, 172, 97, 153, 205, 78, 174, 156,\n\t\t1, 54, 49, 169, 204, 26, 21, 90, 149, 89, 60, 132, 159, 241,\n\t\t104, 66, 249, 207, 111, 111, 95, 230, 227, 110, 70, 249, 101,\n\t\t93, 112, 170, 173, 113, 138, 177, 89, 208, 55, 48, 17, 86,\n\t\t170, 76, 121, 141, 92, 116, 56, 54, 122, 231, 96, 20, 19,\n\t\t171, 237, 248, 201, 199, 98, 107, 68, 0, 182, 132, 105, 235,\n\t\t151, 206, 118, 125, 118, 182, 35, 179, 222, 167, 106, 35,\n\t\t51, 190, 4, 223, 235, 98, 2, 173, 37, 232, 112, 250, 196,\n\t\t48, 195, 54, 243, 250, 165, 100, 13, 235, 211, 146, 14, 174,\n\t\t194, 211, 40, 208, 51, 220, 68, 191, 44, 116, 43, 196, 227,\n\t\t208, 199, 1, 209, 61, 0, 65, 80, 8, 161, 220, 122, 75, 236,\n\t\t243, 40, 80, 83, 16, 137, 66, 53, 11, 115, 172, 76, 139, 29,\n\t\t57, 34, 6, 243, 39, 4, 182, 179, 39, 142, 222, 52, 55, 250,\n\t\t153, 222, 103, 238, 224, 92, 129, 7, 34, 192, 65, 224, 131,\n\t\t13, 205, 69, 232, 90, 57, 77, 153, 90, 74, 156, 155, 190,\n\t\t184, 176, 152, 154, 108, 44, 88, 112, 147, 141, 153, 214,\n\t\t41, 111, 153, 22, 167, 84, 230, 13, 151, 79, 70, 17, 240,\n\t\t46, 47, 122, 137, 124, 30, 102, 196, 210, 32, 250, 142, 63,\n\t\t189, 92, 17, 17, 128, 20, 105, 24, 50, 197, 17, 218, 165,\n\t\t86, 68, 107, 155, 192, 9, 239, 121, 85, 240, 242, 164, 72,\n\t\t1, 94, 34, 125, 204, 40, 230, 229, 254, 52, 214, 247, 180,\n\t\t174, 239, 195, 242, 151, 155, 172, 106, 228, 227, 60, 253,\n\t\t215, 211, 63, 119, 113, 212, 175, 111, 195, 140, 114, 109,\n\t\t138, 190, 92, 225, 120, 95, 192, 43, 115, 180, 248, 29, 210,\n\t\t222, 208, 218, 99, 214, 94, 132, 205, 95, 97, 113, 95, 128,\n\t\t173, 135, 129, 48, 157, 255, 206, 106, 28, 62, 92, 15, 115,\n\t\t141, 106, 254, 51, 171, 241, 161, 90, 148, 52, 221, 13, 153,\n\t\t63, 237, 18, 24, 78, 52, 247, 98, 246, 211, 95, 248, 40, 181,\n\t\t195, 41, 8, 194, 1, 130, 105, 181, 152, 102, 114, 186, 119,\n\t\t172, 172, 138, 114, 45, 228, 11, 162, 131, 100, 46, 149, 201,\n\t\t217, 8, 111, 234, 248, 244, 10, 198, 56, 10, 170, 128, 90,\n\t\t45, 52, 113, 241, 99, 24, 40, 107, 92, 124, 117, 15, 31, 56,\n\t\t63, 208, 77, 190, 46, 2, 54, 165, 248, 110, 243, 229, 37,\n\t\t10, 202, 162, 135, 117, 114, 203, 192, 122, 144, 23, 92, 138,\n\t\t76, 202, 133, 23, 172, 195, 254, 30, 120, 220, 246, 30, 158,\n\t\t121, 183, 242, 60, 32, 18, 198, 53, 101, 192, 86, 169, 230,\n\t\t184, 226, 86, 85, 109, 190, 224, 187, 77, 119, 26, 80, 151,\n\t\t66, 137, 67, 76, 170, 124, 111, 90, 144, 53, 236, 77, 11,\n\t\t178, 98, 203, 45, 72, 205, 151, 31, 180, 157, 216, 1, 251,\n\t\t182, 187, 241, 226, 15, 27, 143, 102, 231, 109, 227, 221,\n\t\t110, 255, 219, 109, 87, 183, 45, 39, 202, 199, 182, 233, 28,\n\t\t175, 95, 107, 211, 113, 78, 229, 99, 110, 157, 207, 203, 31,\n\t\t123, 202, 160, 79, 110, 205, 8, 175, 182, 215, 194, 59, 128,\n\t\t158, 163, 137, 56, 216, 26, 110, 204, 32, 0, 226, 2, 61, 62,\n\t\t248, 212, 22, 227, 91, 178, 61, 33, 250, 14, 44, 224, 103,\n\t\t36, 121, 187, 8, 208, 119, 223, 133, 26, 41, 120, 137, 124,\n\t\t140, 206, 34, 134, 185, 218, 90, 132, 51, 169, 20, 239, 65,\n\t\t137, 156, 51, 194, 155, 102, 83, 108, 162, 229, 101, 74, 224,\n\t\t147, 99, 135, 108, 136, 85, 162, 228, 196, 229, 193, 5, 116,\n\t\t121, 240, 231, 224, 138, 117, 185, 107, 117, 194, 36, 181,\n\t\t57, 48, 83, 158, 3, 187, 34, 127, 34, 51, 175, 150, 114, 151,\n\t\t41, 47, 149, 72, 111, 244, 56, 114, 250, 219, 231, 183, 95,\n\t\t231, 215, 211, 206, 162, 249, 228, 7, 83, 13, 80, 92, 195,\n\t\t57, 181, 163, 7, 237, 89, 146, 204, 96, 153, 5, 130, 218,\n\t\t170, 23, 97, 253, 216, 34, 207, 195, 252, 75, 200, 240, 29,\n\t\t231, 165, 118, 246, 41, 241, 253, 216, 103, 125, 77, 149,\n\t\t177, 34, 247, 31, 123, 185, 36, 203, 184, 96, 211, 120, 95,\n\t\t73, 162, 198, 211, 82, 91, 107, 149, 36, 9, 175, 185, 163,\n\t\t201, 74, 149, 171, 167, 110, 78, 226, 108, 130, 230, 148,\n\t\t223, 254, 222, 25, 32, 8, 122, 248, 36, 220, 230, 29, 205,\n\t\t22, 131, 59, 199, 112, 52, 62, 180, 179, 137, 225, 232, 159,\n\t\t240, 6, 193, 13, 113, 50, 175, 203, 206, 175, 249, 41, 140,\n\t\t238, 200, 52, 114, 128, 166, 29, 66, 34, 115, 190, 91, 223,\n\t\t75, 156, 248, 75, 142, 87, 164, 146, 23, 124, 245, 107, 201,\n\t\t134, 84, 82, 111, 48, 174, 223, 114, 50, 74, 122, 235, 134,\n\t\t147, 209, 239, 37, 45, 123, 235, 75, 240, 151, 27, 193, 222,\n\t\t57, 219, 92, 62, 26, 254, 146, 206, 70, 78, 19, 251, 37, 54,\n\t\t207, 62, 61, 80, 50, 34, 146, 25, 89, 69, 250, 16, 229, 60,\n\t\t60, 44, 250, 102, 147, 212, 244, 25, 233, 224, 5, 237, 229,\n\t\t245, 181, 215, 47, 167, 143, 187, 126, 71, 35, 83, 4, 170,\n\t\t29, 66, 203, 71, 125, 15, 249, 60, 226, 135, 232, 24, 86,\n\t\t15, 111, 227, 214, 215, 24, 239, 117, 209, 86, 190, 46, 87,\n\t\t173, 125, 152, 175, 41, 60, 245, 21, 246, 44, 136, 187, 158,\n\t\t190, 32, 142, 196, 203, 92, 16, 71, 250, 29, 113, 164, 175,\n\t\t71, 237, 133, 179, 246, 203, 120, 175, 181, 123, 244, 125,\n\t\t244, 37, 244, 165, 174, 102, 154, 209, 182, 42, 66, 207, 104,\n\t\t25, 47, 232, 90, 55, 253, 58, 174, 55, 187, 55, 90, 223, 100,\n\t\t71, 138, 169, 29, 164, 253, 35, 47, 20, 215, 55, 211, 14,\n\t\t90, 251, 103, 72, 153, 190, 218, 117, 251, 60, 206, 13, 62,\n\t\t189, 125, 219, 233, 202, 243, 46, 21, 106, 165, 99, 192, 12,\n\t\t146, 174, 121, 75, 182, 180, 37, 37, 157, 244, 80, 83, 11,\n\t\t78, 91, 106, 19, 102, 54, 57, 93, 83, 157, 176, 193, 157,\n\t\t83, 250, 123, 239, 95, 11, 28, 14, 87, 160, 86, 23, 151, 14,\n\t\t202, 36, 197, 177, 91, 161, 49, 215, 132, 152, 163, 41, 72,\n\t\t94, 101, 163, 173, 170, 203, 70, 60, 141, 77, 1, 18, 171,\n\t\t248, 112, 189, 235, 150, 65, 159, 113, 228, 7, 126, 130, 170,\n\t\t168, 121, 128, 49, 208, 241, 177, 36, 158, 111, 177, 181,\n\t\t89, 6, 157, 183, 241, 30, 160, 210, 138, 241, 21, 104, 29,\n\t\t59, 105, 129, 28, 163, 204, 123, 134, 52, 31, 63, 208, 217,\n\t\t39, 115, 113, 237, 248, 243, 254, 18, 59, 88, 178, 138, 59,\n\t\t204, 37, 42, 92, 171, 247, 217, 6, 48, 255, 75, 173, 113,\n\t\t136, 143, 51, 218, 172, 247, 246, 40, 203, 152, 108, 131,\n\t\t123, 121, 224, 235, 229, 250, 188, 203, 199, 108, 254, 30,\n\t\t25, 184, 98, 94, 129, 29, 17, 1, 37, 223, 203, 84, 216, 243,\n\t\t82, 78, 73, 250, 75, 138, 124, 145, 43, 223, 95, 124, 141,\n\t\t214, 79, 244, 55, 29, 24, 40, 12, 189, 19, 20, 42, 180, 52,\n\t\t81, 78, 75, 64, 159, 137, 251, 131, 58, 237, 104, 10, 39,\n\t\t255, 204, 67, 30, 6, 63, 214, 16, 138, 24, 206, 241, 22, 130,\n\t\t217, 200, 173, 41, 43, 166, 21, 38, 114, 32, 204, 178, 11,\n\t\t74, 187, 94, 225, 100, 31, 163, 7, 125, 254, 178, 203, 228,\n\t\t159, 55, 138, 77, 177, 197, 135, 137, 244, 188, 226, 250,\n\t\t156, 187, 173, 137, 148, 186, 220, 57, 139, 39, 55, 101, 75,\n\t\t205, 217, 22, 246, 128, 103, 38, 220, 9, 192, 100, 71, 188,\n\t\t131, 119, 92, 228, 48, 97, 37, 128, 18, 134, 168, 200, 48,\n\t\t178, 199, 153, 245, 156, 88, 232, 156, 197, 20, 53, 238, 228,\n\t\t11, 35, 113, 87, 132, 170, 232, 23, 126, 108, 231, 18, 9,\n\t\t18, 75, 150, 26, 101, 61, 155, 62, 225, 34, 208, 2, 186, 8,\n\t\t59, 158, 56, 117, 1, 134, 112, 206, 147, 124, 210, 114, 195,\n\t\t254, 34, 253, 12, 133, 41, 21, 7, 16, 11, 13, 198, 200, 186,\n\t\t106, 113, 57, 207, 14, 65, 41, 145, 67, 222, 1, 240, 131,\n\t\t232, 5, 154, 146, 99, 230, 20, 197, 110, 139, 64, 16, 5, 75,\n\t\t211, 254, 76, 90, 114, 137, 192, 17, 110, 200, 183, 112, 54,\n\t\t23, 14, 204, 32, 197, 191, 48, 96, 35, 50, 31, 16, 40, 237,\n\t\t67, 92, 12, 168, 114, 11, 103, 170, 208, 23, 248, 241, 56,\n\t\t177, 24, 95, 100, 238, 233, 14, 43, 70, 20, 111, 151, 183,\n\t\t62, 131, 173, 24, 240, 63, 5, 241, 225, 46, 36, 62, 23, 28,\n\t\t178, 53, 89, 215, 160, 252, 55, 91, 17, 87, 17, 108, 228,\n\t\t126, 201, 8, 75, 91, 180, 51, 74, 5, 79, 19, 221, 2, 136,\n\t\t34, 155, 79, 228, 106, 214, 104, 107, 46, 48, 172, 28, 105,\n\t\t240, 179, 65, 126, 137, 167, 38, 41, 61, 33, 78, 215, 166,\n\t\t208, 128, 154, 148, 75, 76, 236, 186, 65, 40, 97, 179, 185,\n\t\t244, 152, 0, 206, 140, 40, 196, 96, 179, 7, 69, 116, 177,\n\t\t181, 214, 152, 166, 102, 125, 137, 174, 35, 95, 25, 232, 146,\n\t\t0, 53, 163, 62, 195, 206, 4, 208, 52, 189, 99, 118, 227, 40,\n\t\t186, 127, 240, 54, 101, 134, 211, 41, 189, 1, 42, 174, 185,\n\t\t92, 151, 224, 153, 209, 26, 159, 185, 206, 212, 81, 62, 181,\n\t\t137, 62, 93, 70, 188, 162, 111, 1, 153, 163, 188, 77, 232,\n\t\t108, 110, 105, 242, 182, 70, 151, 234, 92, 172, 227, 168,\n\t\t246, 100, 3, 18, 201, 105, 102, 169, 12, 55, 98, 59, 210,\n\t\t40, 156, 240, 250, 251, 138, 165, 155, 244, 240, 106, 115,\n\t\t34, 69, 39, 218, 156, 253, 124, 33, 207, 36, 162, 23, 114,\n\t\t93, 167, 75, 158, 108, 136, 43, 25, 62, 42, 176, 102, 72,\n\t\t172, 233, 195, 197, 169, 172, 124, 16, 90, 4, 230, 235, 102,\n\t\t133, 138, 173, 74, 173, 25, 98, 171, 82, 107, 84, 108, 85,\n\t\t106, 141, 138, 45, 164, 214, 215, 217, 168, 216, 146, 212,\n\t\t250, 128, 112, 75, 17, 91, 72, 45, 250, 153, 211, 117, 72,\n\t\t102, 125, 92, 84, 100, 85, 98, 85, 78, 55, 159, 16, 87, 149,\n\t\t86, 21, 86, 149, 213, 33, 225, 42, 171, 6, 194, 90, 250, 36,\n\t\t178, 106, 84, 88, 135, 172, 94, 204, 28, 144, 86, 163, 98,\n\t\t122, 241, 133, 147, 139, 87, 137, 53, 34, 178, 42, 177, 70,\n\t\t69, 86, 37, 214, 168, 200, 170, 196, 26, 21, 89, 149, 88,\n\t\t163, 34, 171, 18, 107, 84, 100, 85, 98, 205, 16, 217, 33,\n\t\t177, 70, 69, 214, 168, 204, 26, 21, 90, 163, 82, 107, 84,\n\t\t108, 141, 202, 173, 81, 193, 53, 42, 177, 96, 145, 134, 178,\n\t\t168, 178, 107, 84, 120, 141, 72, 175, 81, 241, 53, 36, 191,\n\t\t193, 197, 137, 196, 23, 113, 179, 144, 95, 96, 169, 74, 222,\n\t\t44, 228, 215, 35, 164, 142, 141, 30, 157, 253, 117, 242, 7,\n\t\t30, 28, 77, 226, 58, 249, 175, 211, 184, 76, 254, 244, 146,\n\t\t50, 249, 143, 185, 127, 76, 253, 152, 249, 199, 21, 99, 222,\n\t\t223, 204, 52, 152, 245, 183, 211, 184, 206, 222, 52, 229,\n\t\t235, 140, 175, 19, 254, 227, 92, 201, 229, 235, 247, 93, 134,\n\t\t254, 28, 30, 176, 132, 197, 106, 73, 51, 245, 54, 205, 89,\n\t\t49, 197, 21, 79, 159, 36, 46, 49, 167, 132, 126, 247, 33,\n\t\t51, 241, 102, 213, 45, 229, 60, 200, 19, 194, 230, 207, 209,\n\t\t196, 210, 102, 210, 230, 161, 196, 248, 4, 144, 140, 204,\n\t\t223, 216, 111, 80, 4, 235, 50, 13, 254, 145, 98, 195, 212,\n\t\t149, 34, 33, 102, 219, 231, 149, 97, 32, 168, 95, 12, 103,\n\t\t251, 158, 167, 177, 17, 55, 74, 24, 216, 212, 111, 192, 193,\n\t\t21, 3, 220, 23, 167, 255, 15, 104, 105, 113, 138, 121, 70,\n\t\t227, 148, 39, 54, 154, 139, 26, 87, 103, 246, 10, 124, 47,\n\t\t213, 19, 170, 154, 73, 17, 69, 243, 202, 213, 194, 253, 23,\n\t\t39, 55, 113, 72, 31, 62, 132, 90, 103, 197, 15, 23, 213, 73,\n\t\t21, 176, 65, 88, 42, 100, 61, 143, 125, 93, 203, 235, 105,\n\t\t175, 191, 196, 7, 72, 68, 17, 59, 163, 64, 48, 31, 251, 110,\n\t\t117, 101, 72, 48, 222, 241, 110, 165, 238, 186, 224, 248,\n\t\t104, 162, 195, 80, 154, 77, 206, 131, 124, 160, 9, 240, 107,\n\t\t17, 194, 240, 113, 17, 174, 89, 188, 7, 120, 90, 107, 54,\n\t\t159, 125, 246, 71, 211, 158, 34, 6, 61, 132, 126, 117, 237,\n\t\t9, 244, 171, 4, 138, 238, 98, 32, 46, 98, 27, 219, 217, 248,\n\t\t236, 223, 95, 124, 196, 46, 110, 104, 71, 95, 195, 98, 146,\n\t\t128, 182, 213, 42, 14, 107, 37, 72, 80, 90, 54, 197, 117,\n\t\t135, 202, 173, 7, 44, 77, 103, 95, 220, 17, 118, 142, 224,\n\t\t56, 41, 226, 249, 74, 94, 16, 199, 93, 24, 169, 206, 200,\n\t\t165, 143, 7, 237, 247, 157, 147, 103, 78, 247, 187, 22, 52,\n\t\t214, 176, 198, 22, 95, 138, 77, 64, 62, 164, 47, 113, 78,\n\t\t86, 96, 201, 146, 172, 103, 163, 0, 206, 93, 222, 164, 128,\n\t\t149, 11, 68, 121, 5, 43, 208, 93, 224, 44, 219, 119, 163,\n\t\t196, 123, 178, 54, 56, 40, 11, 176, 133, 48, 44, 114, 240,\n\t\t160, 169, 108, 28, 218, 155, 144, 177, 62, 39, 27, 29, 210,\n\t\t133, 188, 99, 184, 128, 98, 37, 255, 32, 4, 158, 71, 71, 1,\n\t\t105, 251, 153, 77, 32, 100, 73, 32, 255, 51, 136, 59, 149,\n\t\t199, 14, 253, 63, 156, 12, 147, 231, 140, 31, 122, 57, 233,\n\t\t33, 142, 166, 14, 38, 15, 164, 179, 34, 186, 148, 147, 177,\n\t\t29, 144, 17, 200, 160, 139, 178, 151, 135, 221, 205, 210,\n\t\t218, 18, 3, 239, 115, 202, 231, 98, 174, 10, 144, 123, 205,\n\t\t153, 226, 164, 62, 40, 167, 102, 227, 204, 45, 189, 13, 167,\n\t\t80, 95, 220, 121, 30, 175, 226, 166, 15, 84, 251, 212, 203,\n\t\t250, 206, 242, 186, 50, 95, 112, 246, 103, 24, 88, 8, 201,\n\t\t198, 136, 125, 245, 171, 230, 91, 174, 187, 96, 185, 234,\n\t\t164, 89, 251, 81, 63, 169, 131, 91, 143, 227, 88, 187, 247,\n\t\t66, 110, 0, 141, 112, 33, 55, 205, 197, 141, 228, 112, 10,\n\t\t98, 107, 100, 151, 33, 84, 26, 80, 4, 94, 182, 64, 55, 160,\n\t\t29, 114, 104, 164, 72, 1, 64, 10, 195, 105, 208, 255, 195,\n\t\t105, 91, 192, 101, 184, 125, 12, 63, 225, 238, 183, 110, 254,\n\t\t112, 24, 126, 253, 125, 7, 82, 62, 239, 8, 54, 215, 113, 24,\n\t\t131, 155, 220, 199, 24, 85, 67, 125, 150, 134, 17, 203, 195,\n\t\t120, 239, 26, 206, 0, 3, 103, 16, 224, 86, 91, 159, 66, 182,\n\t\t62, 208, 250, 181, 130, 0, 251, 210, 196, 219, 156, 198, 30,\n\t\t176, 44, 97, 50, 81, 173, 225, 132, 46, 157, 77, 40, 233,\n\t\t67, 117, 63, 252, 88, 229, 125, 105, 64, 241, 71, 74, 155,\n\t\t101, 64, 66, 192, 96, 204, 209, 54, 32, 230, 144, 66, 222,\n\t\t92, 43, 74, 7, 75, 26, 8, 224, 14, 199, 49, 203, 222, 153,\n\t\t212, 185, 220, 114, 63, 154, 94, 206, 189, 28, 229, 112, 206,\n\t\t54, 181, 26, 25, 109, 149, 189, 122, 145, 193, 72, 86, 175,\n\t\t30, 223, 234, 49, 224, 230, 235, 239, 111, 223, 230, 229,\n\t\t243, 46, 50, 116, 222, 37, 154, 109, 87, 90, 210, 44, 61,\n\t\t99, 53, 96, 179, 131, 244, 40, 154, 82, 138, 179, 1, 17, 26,\n\t\t185, 178, 26, 237, 115, 229, 241, 105, 99, 203, 53, 77, 193,\n\t\t87, 155, 155, 95, 130, 235, 182, 22, 86, 38, 139, 159, 83,\n\t\t178, 209, 23, 96, 23, 196, 200, 122, 81, 204, 129, 15, 115,\n\t\t39, 29, 198, 150, 26, 104, 216, 70, 133, 111, 73, 156, 207,\n\t\t149, 162, 237, 9, 75, 166, 175, 54, 234, 132, 31, 200, 96,\n\t\t91, 16, 243, 215, 192, 94, 88, 108, 3, 210, 96, 183, 45, 39,\n\t\t222, 193, 202, 128, 192, 168, 77, 178, 92, 162, 179, 236,\n\t\t97, 245, 174, 218, 222, 72, 155, 237, 189, 185, 84, 217, 80,\n\t\t129, 2, 29, 186, 237, 165, 87, 73, 213, 111, 88, 83, 217,\n\t\t88, 181, 137, 17, 110, 93, 177, 61, 199, 197, 167, 104, 107,\n\t\t138, 147, 71, 242, 72, 158, 11, 148, 118, 178, 29, 162, 135,\n\t\t149, 81, 56, 121, 10, 107, 89, 195, 246, 80, 9, 133, 244,\n\t\t230, 68, 18, 190, 208, 250, 1, 212, 135, 64, 147, 98, 239,\n\t\t51, 157, 159, 18, 114, 50, 61, 160, 47, 245, 74, 131, 91,\n\t\t249, 60, 174, 229, 132, 142, 64, 111, 79, 149, 64, 58, 27,\n\t\t213, 2, 27, 173, 29, 173, 108, 178, 117, 12, 191, 149, 109,\n\t\t96, 142, 97, 31, 97, 8, 97, 9, 72, 85, 59, 55, 116, 108, 153,\n\t\t202, 54, 67, 178, 5, 8, 76, 222, 219, 128, 161, 144, 108,\n\t\t245, 194, 180, 90, 154, 120, 129, 74, 118, 177, 47, 210, 240,\n\t\t220, 238, 126, 246, 29, 94, 14, 48, 162, 0, 0, 77, 142, 97,\n\t\t123, 102, 102, 109, 245, 190, 210, 251, 212, 0, 98, 233, 217,\n\t\t248, 110, 125, 107, 124, 110, 224, 60, 56, 90, 107, 233, 48,\n\t\t2, 27, 174, 115, 186, 178, 91, 12, 11, 147, 216, 209, 185,\n\t\t0, 214, 154, 55, 38, 163, 64, 228, 176, 143, 152, 154, 171,\n\t\t71, 137, 67, 241, 176, 31, 225, 147, 105, 212, 43, 192, 148,\n\t\t102, 192, 163, 200, 40, 211, 164, 82, 51, 164, 74, 204, 214,\n\t\t199, 82, 39, 31, 34, 141, 62, 232, 223, 141, 172, 193, 197,\n\t\t215, 96, 93, 241, 202, 180, 76, 29, 93, 75, 45, 232, 232,\n\t\t22, 25, 164, 140, 86, 151, 2, 164, 236, 176, 233, 232, 76,\n\t\t163, 24, 29, 13, 154, 186, 96, 99, 73, 113, 214, 235, 204,\n\t\t122, 35, 6, 5, 53, 122, 39, 189, 116, 211, 207, 82, 7, 97,\n\t\t223, 110, 48, 231, 50, 82, 247, 139, 99, 32, 46, 120, 29,\n\t\t122, 226, 146, 128, 248, 47, 106, 171, 90, 39, 199, 248, 168,\n\t\t225, 240, 112, 154, 56, 189, 158, 119, 155, 164, 243, 46,\n\t\t39, 109, 59, 67, 208, 176, 244, 83, 244, 205, 186, 220, 231,\n\t\t106, 43, 231, 42, 233, 23, 159, 4, 22, 60, 4, 219, 11, 66,\n\t\t197, 164, 64, 54, 72, 104, 170, 110, 214, 251, 225, 53, 254,\n\t\t27, 17, 123, 245, 73, 164, 198, 213, 68, 11, 112, 40, 140,\n\t\t84, 54, 82, 160, 117, 31, 202, 72, 61, 223, 95, 66, 160, 213,\n\t\t248, 48, 3, 35, 41, 87, 222, 30, 0, 80, 82, 138, 178, 213,\n\t\t96, 54, 135, 178, 29, 161, 204, 237, 156, 239, 37, 251, 15,\n\t\t219, 99, 221, 125, 192, 154, 22, 139, 229, 154, 211, 100,\n\t\t130, 253, 52, 238, 215, 98, 51, 54, 244, 163, 205, 62, 21,\n\t\t178, 2, 209, 137, 139, 137, 0, 227, 174, 147, 124, 206, 136,\n\t\t1, 155, 232, 15, 35, 121, 217, 136, 4, 93, 189, 206, 180,\n\t\t129, 142, 139, 130, 163, 9, 161, 209, 35, 73, 243, 10, 133,\n\t\t53, 59, 134, 183, 148, 157, 44, 198, 19, 194, 218, 38, 32,\n\t\t155, 124, 222, 246, 4, 1, 217, 12, 49, 204, 235, 109, 128,\n\t\t178, 201, 231, 8, 141, 135, 115, 54, 63, 161, 51, 186, 137,\n\t\t3, 61, 127, 16, 7, 250, 22, 26, 237, 6, 1, 250, 207, 162,\n\t\t209, 174, 50, 116, 5, 224, 25, 159, 188, 197, 167, 215, 27,\n\t\t219, 102, 59, 62, 166, 13, 84, 103, 209, 152, 179, 6, 128,\n\t\t78, 13, 179, 18, 255, 232, 69, 156, 21, 159, 161, 191, 141,\n\t\t72, 43, 106, 130, 245, 114, 14, 181, 26, 167, 92, 196, 90,\n\t\t241, 57, 102, 123, 247, 17, 109, 149, 124, 121, 167, 218,\n\t\t72, 232, 217, 223, 90, 155, 195, 199, 171, 195, 17, 104, 127,\n\t\t107, 109, 62, 86, 153, 199, 155, 47, 167, 63, 204, 247, 101,\n\t\t215, 239, 35, 223, 134, 84, 254, 231, 112, 228, 167, 253,\n\t\t100, 118, 186, 158, 190, 78, 169, 237, 113, 31, 145, 106,\n\t\t241, 24, 28, 242, 244, 87, 31, 136, 187, 63, 65, 158, 188,\n\t\t121, 243, 195, 199, 238, 238, 83, 250, 225, 17, 64, 109, 251,\n\t\t227, 189, 12, 40, 119, 184, 239, 126, 112, 8, 208, 2, 251,\n\t\t51, 235, 243, 131, 99, 224, 231, 181, 206, 211, 49, 240, 117,\n\t\t63, 6, 70, 54, 81, 100, 55, 111, 116, 205, 166, 26, 103, 7,\n\t\t104, 87, 210, 179, 163, 237, 30, 145, 205, 180, 222, 49, 174,\n\t\t90, 174, 176, 11, 112, 124, 244, 164, 143, 185, 126, 142,\n\t\t157, 180, 167, 217, 77, 89, 234, 71, 90, 125, 242, 188, 83,\n\t\t228, 194, 238, 248, 8, 55, 118, 73, 41, 159, 140, 183, 149,\n\t\t183, 224, 2, 162, 168, 241, 165, 177, 139, 62, 218, 26, 91,\n\t\t104, 164, 48, 179, 90, 111, 146, 13, 53, 164, 194, 254, 124,\n\t\t56, 19, 147, 56, 45, 72, 247, 45, 101, 2, 255, 73, 44, 11,\n\t\t28, 245, 53, 183, 169, 216, 16, 125, 202, 32, 252, 68, 21,\n\t\t50, 12, 34, 70, 141, 227, 173, 25, 207, 154, 216, 168, 99,\n\t\t1, 195, 219, 18, 60, 99, 75, 250, 110, 123, 172, 121, 78,\n\t\t54, 33, 239, 60, 89, 56, 155, 154, 141, 192, 32, 203, 182,\n\t\t0, 213, 207, 39, 203, 183, 199, 225, 17, 68, 181, 41, 207,\n\t\t138, 53, 140, 44, 102, 108, 166, 160, 81, 225, 116, 150, 205,\n\t\t21, 110, 204, 179, 105, 9, 56, 17, 212, 170, 169, 181, 136,\n\t\t75, 51, 220, 75, 218, 254, 96, 117, 140, 53, 175, 5, 235,\n\t\t197, 194, 62, 1, 7, 185, 116, 159, 209, 254, 51, 215, 231,\n\t\t143, 47, 71, 236, 228, 116, 192, 8, 107, 69, 141, 118, 115,\n\t\t2, 106, 91, 92, 11, 244, 105, 244, 48, 31, 235, 251, 75, 0,\n\t\t122, 102, 154, 200, 196, 73, 174, 207, 110, 74, 213, 134,\n\t\t90, 227, 148, 157, 237, 57, 251, 41, 23, 75, 125, 56, 142,\n\t\t201, 92, 40, 25, 50, 230, 217, 167, 148, 57, 51, 187, 217,\n\t\t154, 129, 249, 220, 109, 0, 185, 138, 20, 28, 102, 50, 168,\n\t\t115, 136, 8, 166, 40, 192, 28, 192, 142, 171, 203, 112, 115,\n\t\t118, 155, 120, 139, 39, 146, 105, 153, 1, 177, 228, 42, 7,\n\t\t140, 117, 23, 98, 18, 97, 41, 136, 101, 118, 12, 253, 238,\n\t\t139, 245, 158, 55, 147, 72, 124, 22, 35, 59, 95, 5, 64, 42,\n\t\t116, 139, 90, 123, 156, 146, 205, 188, 73, 87, 5, 183, 179,\n\t\t91, 102, 93, 33, 25, 5, 51, 11, 245, 149, 107, 80, 176, 50,\n\t\t89, 204, 250, 22, 190, 203, 158, 92, 179, 53, 22, 4, 116,\n\t\t145, 244, 232, 241, 129, 76, 177, 132, 77, 153, 41, 37, 203,\n\t\t226, 142, 106, 230, 190, 22, 196, 142, 102, 135, 235, 101,\n\t\t0, 188, 21, 91, 115, 232, 66, 235, 239, 17, 201, 104, 75,\n\t\t37, 99, 24, 169, 34, 61, 28, 35, 163, 111, 206, 21, 96, 193,\n\t\t65, 228, 39, 23, 128, 173, 186, 80, 144, 89, 42, 5, 158, 131,\n\t\t146, 72, 126, 80, 113, 22, 159, 8, 186, 24, 156, 205, 187,\n\t\t227, 26, 40, 119, 125, 29, 196, 135, 20, 242, 25, 109, 75,\n\t\t111, 206, 158, 68, 215, 168, 245, 244, 114, 62, 150, 107,\n\t\t14, 103, 249, 225, 184, 217, 123, 125, 127, 201, 170, 123,\n\t\t219, 226, 93, 204, 75, 22, 60, 111, 17, 135, 57, 10, 137,\n\t\t77, 225, 243, 186, 245, 46, 51, 164, 32, 51, 126, 102, 236,\n\t\t190, 137, 168, 204, 212, 247, 140, 78, 108, 189, 243, 153,\n\t\t122, 174, 4, 241, 247, 176, 48, 121, 206, 177, 24, 5, 100,\n\t\t117, 0, 222, 210, 241, 79, 216, 223, 102, 106, 10, 61, 110,\n\t\t54, 96, 103, 207, 77, 218, 221, 134, 106, 73, 181, 210, 234,\n\t\t0, 93, 48, 198, 162, 5, 71, 50, 206, 67, 205, 9, 19, 16, 4,\n\t\t221, 173, 34, 174, 149, 131, 175, 51, 147, 213, 205, 94, 169,\n\t\t5, 116, 147, 224, 120, 237, 33, 87, 166, 207, 192, 12, 72,\n\t\t119, 19, 249, 15, 33, 103, 128, 129, 184, 66, 22, 143, 184,\n\t\t253, 129, 126, 158, 26, 154, 47, 165, 174, 237, 51, 179, 100,\n\t\t147, 133, 226, 50, 239, 234, 135, 92, 64, 115, 130, 73, 237,\n\t\t234, 248, 76, 243, 51, 217, 87, 39, 176, 138, 48, 72, 134,\n\t\t142, 56, 175, 36, 68, 82, 114, 100, 200, 226, 122, 32, 33,\n\t\t200, 161, 71, 153, 67, 48, 238, 169, 175, 171, 192, 147, 162,\n\t\t64, 37, 110, 21, 184, 42, 110, 116, 237, 97, 149, 182, 171,\n\t\t43, 142, 153, 172, 164, 148, 230, 241, 144, 33, 150, 250,\n\t\t144, 173, 156, 178, 88, 71, 166, 250, 128, 191, 95, 23, 26,\n\t\t191, 38, 124, 54, 7, 105, 214, 25, 67, 54, 117, 1, 31, 153,\n\t\t29, 3, 208, 91, 31, 107, 61, 176, 235, 196, 71, 62, 183, 249,\n\t\t128, 189, 113, 54, 224, 29, 195, 126, 140, 130, 152, 0, 132,\n\t\t162, 17, 166, 8, 65, 81, 17, 50, 41, 89, 31, 10, 70, 45, 163,\n\t\t192, 115, 1, 50, 145, 74, 204, 140, 35, 33, 59, 232, 34, 58,\n\t\t140, 87, 212, 115, 158, 100, 174, 219, 204, 79, 193, 5, 15,\n\t\t111, 84, 196, 188, 180, 153, 159, 24, 64, 94, 196, 241, 227,\n\t\t202, 220, 225, 95, 163, 175, 252, 44, 109, 238, 103, 86, 199,\n\t\t164, 195, 255, 144, 234, 60, 52, 198, 255, 248, 246, 249,\n\t\t159, 111, 127, 28, 191, 125, 253, 254, 143, 93, 194, 222,\n\t\t60, 175, 140, 91, 216, 122, 22, 108, 251, 135, 111, 133, 21,\n\t\t230, 190, 157, 214, 220, 147, 183, 226, 21, 234, 209, 91,\n\t\t189, 191, 132, 230, 109, 196, 172, 155, 142, 62, 4, 91, 107,\n\t\t156, 139, 205, 33, 165, 117, 216, 145, 118, 232, 193, 127,\n\t\t22, 29, 71, 214, 140, 130, 204, 108, 86, 108, 157, 54, 4,\n\t\t200, 32, 172, 36, 69, 40, 131, 49, 217, 196, 112, 151, 193,\n\t\t58, 248, 142, 185, 100, 54, 181, 216, 90, 29, 107, 53, 57,\n\t\t129, 109, 32, 38, 219, 43, 38, 93, 41, 64, 76, 74, 56, 3,\n\t\t182, 9, 156, 28, 219, 182, 72, 174, 108, 218, 34, 219, 226,\n\t\t99, 68, 123, 228, 158, 238, 180, 135, 71, 208, 15, 246, 55,\n\t\t98, 128, 119, 19, 187, 225, 80, 110, 82, 226, 16, 139, 90,\n\t\t108, 147, 233, 128, 142, 15, 115, 42, 182, 164, 88, 38, 55,\n\t\t213, 108, 75, 240, 156, 48, 91, 90, 26, 199, 57, 218, 82,\n\t\t51, 216, 75, 170, 120, 83, 169, 202, 164, 245, 166, 200, 62,\n\t\t73, 82, 10, 168, 77, 73, 235, 10, 41, 134, 247, 151, 144,\n\t\t29, 77, 162, 100, 132, 30, 145, 27, 218, 66, 4, 134, 63, 88,\n\t\t133, 125, 182, 76, 198, 4, 192, 222, 130, 204, 214, 6, 102,\n\t\t39, 45, 200, 197, 230, 84, 58, 24, 126, 108, 169, 177, 33,\n\t\t161, 50, 132, 60, 249, 144, 109, 73, 140, 50, 94, 169, 243,\n\t\t248, 120, 174, 206, 182, 204, 177, 168, 41, 216, 140, 56,\n\t\t197, 202, 186, 206, 40, 168, 100, 47, 228, 51, 245, 115, 244,\n\t\t204, 42, 113, 41, 63, 201, 149, 203, 81, 161, 45, 111, 214,\n\t\t166, 191, 33, 201, 180, 158, 178, 53, 79, 74, 124, 15, 69,\n\t\t40, 161, 19, 16, 176, 128, 202, 108, 74, 178, 189, 248, 174,\n\t\t5, 112, 82, 187, 194, 34, 162, 191, 193, 13, 15, 25, 27, 37,\n\t\t136, 23, 46, 65, 182, 193, 160, 211, 5, 210, 248, 129, 15,\n\t\t92, 172, 175, 181, 82, 99, 53, 248, 136, 115, 183, 165, 133,\n\t\t199, 158, 137, 239, 95, 126, 121, 251, 182, 124, 222, 179,\n\t\t230, 205, 59, 198, 160, 205, 6, 124, 72, 54, 80, 183, 116,\n\t\t91, 115, 111, 179, 233, 30, 0, 202, 44, 223, 133, 148, 145,\n\t\t9, 17, 244, 121, 61, 246, 217, 219, 216, 227, 217, 87, 50,\n\t\t172, 16, 227, 203, 26, 255, 15, 76, 10, 62, 86, 27, 251, 15,\n\t\t207, 11, 168, 75, 243, 33, 159, 141, 212, 238, 32, 59, 243,\n\t\t176, 4, 121, 67, 128, 229, 37, 165, 20, 105, 212, 240, 198,\n\t\t137, 20, 208, 168, 233, 5, 145, 101, 224, 118, 207, 216, 155,\n\t\t4, 177, 164, 30, 215, 110, 123, 73, 13, 111, 31, 67, 253,\n\t\t73, 111, 95, 108, 43, 237, 231, 188, 126, 232, 254, 242, 237,\n\t\t123, 39, 29, 141, 101, 15, 52, 5, 70, 122, 144, 187, 148,\n\t\t241, 227, 184, 4, 126, 56, 247, 1, 87, 218, 71, 234, 146,\n\t\t158, 106, 7, 15, 91, 229, 73, 126, 239, 167, 101, 47, 232,\n\t\t35, 191, 55, 149, 244, 179, 104, 3, 57, 231, 235, 7, 54, 33,\n\t\t224, 222, 228, 77, 133, 115, 47, 71, 227, 139, 59, 155, 94,\n\t\t142, 190, 56, 46, 247, 253, 198, 15, 41, 181, 155, 23, 80,\n\t\t249, 173, 11, 30, 53, 214, 111, 175, 255, 248, 60, 95, 55,\n\t\t214, 47, 35, 185, 16, 117, 203, 97, 49, 200, 137, 89, 16,\n\t\t215, 94, 22, 254, 203, 69, 30, 153, 76, 11, 199, 53, 47, 28,\n\t\t160, 80, 222, 95, 154, 155, 2, 217, 22, 161, 112, 28, 104,\n\t\t142, 32, 238, 89, 12, 190, 80, 91, 48, 164, 228, 114, 125,\n\t\t124, 125, 129, 30, 27, 45, 208, 11, 140, 94, 97, 174, 75,\n\t\t222, 95, 18, 106, 232, 254, 202, 197, 135, 181, 206, 227,\n\t\t170, 63, 253, 22, 239, 47, 217, 145, 86, 60, 197, 28, 109,\n\t\t173, 194, 215, 237, 131, 77, 173, 35, 180, 54, 115, 244, 145,\n\t\t208, 46, 165, 108, 67, 236, 113, 49, 177, 68, 11, 148, 39,\n\t\t250, 68, 58, 101, 96, 72, 94, 230, 141, 78, 216, 141, 234,\n\t\t35, 100, 38, 88, 30, 49, 82, 130, 181, 22, 126, 14, 14, 99,\n\t\t193, 208, 225, 173, 79, 57, 219, 119, 128, 83, 209, 201, 139,\n\t\t105, 137, 23, 79, 249, 100, 28, 82, 80, 115, 160, 150, 124,\n\t\t132, 90, 210, 24, 201, 54, 228, 69, 234, 199, 31, 51, 234,\n\t\t85, 20, 112, 64, 170, 71, 183, 239, 178, 187, 77, 149, 147,\n\t\t227, 185, 89, 33, 175, 100, 159, 87, 135, 115, 138, 171, 166,\n\t\t53, 51, 114, 238, 251, 75, 204, 100, 125, 76, 1, 170, 204,\n\t\t162, 80, 22, 242, 185, 0, 197, 193, 59, 100, 186, 208, 231,\n\t\t178, 130, 93, 200, 151, 199, 243, 195, 183, 239, 123, 186,\n\t\t195, 95, 118, 196, 57, 107, 240, 104, 9, 105, 66, 74, 230,\n\t\t253, 52, 118, 157, 243, 238, 167, 177, 39, 137, 3, 67, 224,\n\t\t228, 38, 250, 139, 131, 191, 162, 4, 80, 33, 115, 242, 131,\n\t\t39, 150, 251, 219, 86, 225, 14, 137, 34, 178, 70, 239, 108,\n\t\t147, 209, 116, 196, 68, 225, 135, 89, 121, 213, 29, 144, 94,\n\t\t17, 12, 153, 37, 29, 37, 142, 204, 26, 225, 47, 239, 3, 98,\n\t\t131, 191, 204, 36, 144, 211, 32, 31, 31, 236, 181, 131, 141,\n\t\t60, 14, 186, 195, 102, 253, 145, 55, 120, 32, 176, 155, 170,\n\t\t173, 213, 62, 109, 107, 57, 201, 102, 197, 197, 54, 222, 105,\n\t\t243, 234, 186, 17, 242, 35, 247, 59, 236, 111, 152, 11, 82,\n\t\t173, 206, 94, 114, 235, 245, 93, 39, 249, 60, 26, 105, 58,\n\t\t144, 165, 31, 125, 122, 28, 9, 249, 219, 215, 47, 111, 255,\n\t\t101, 62, 125, 94, 118, 126, 242, 95, 118, 17, 56, 27, 49,\n\t\t116, 109, 138, 13, 137, 66, 128, 0, 97, 110, 28, 50, 246,\n\t\t163, 178, 222, 4, 146, 68, 14, 212, 170, 43, 24, 63, 126,\n\t\t191, 200, 77, 203, 181, 204, 102, 189, 143, 164, 43, 141,\n\t\t243, 144, 174, 4, 48, 76, 57, 101, 243, 16, 252, 59, 230,\n\t\t10, 176, 32, 146, 41, 4, 87, 41, 105, 144, 217, 176, 6, 9,\n\t\t169, 16, 118, 182, 169, 11, 106, 152, 87, 246, 161, 13, 249,\n\t\t16, 103, 64, 25, 61, 53, 6, 55, 145, 12, 166, 100, 61, 87,\n\t\t175, 57, 132, 25, 150, 94, 233, 43, 194, 195, 70, 60, 101,\n\t\t204, 8, 90, 68, 108, 33, 126, 60, 209, 199, 26, 102, 217,\n\t\t156, 134, 40, 211, 37, 180, 8, 211, 21, 78, 134, 21, 255,\n\t\t250, 254, 146, 59, 45, 202, 231, 146, 174, 9, 146, 204, 150,\n\t\t33, 201, 32, 81, 139, 207, 14, 53, 156, 185, 214, 179, 240,\n\t\t42, 110, 57, 147, 54, 155, 250, 15, 67, 241, 94, 191, 189,\n\t\t221, 198, 254, 253, 101, 143, 253, 27, 84, 14, 162, 16, 135,\n\t\t134, 92, 142, 33, 87, 27, 129, 144, 207, 208, 17, 65, 217,\n\t\t155, 25, 46, 41, 73, 212, 115, 148, 177, 138, 184, 151, 130,\n\t\t72, 152, 208, 44, 72, 17, 117, 198, 146, 200, 57, 199, 169,\n\t\t103, 114, 36, 148, 208, 78, 46, 156, 228, 42, 56, 229, 200,\n\t\t86, 85, 58, 14, 70, 73, 152, 228, 49, 99, 172, 203, 241, 7,\n\t\t218, 96, 143, 82, 248, 203, 110, 199, 127, 109, 129, 208,\n\t\t154, 45, 37, 96, 26, 68, 11, 4, 206, 190, 107, 158, 243, 109,\n\t\t169, 21, 146, 7, 252, 44, 220, 188, 212, 14, 201, 23, 38,\n\t\t21, 35, 205, 37, 240, 245, 242, 57, 83, 243, 245, 92, 167,\n\t\t10, 20, 228, 76, 214, 112, 170, 164, 215, 235, 113, 19, 100,\n\t\t219, 113, 165, 209, 75, 181, 41, 176, 90, 246, 86, 38, 50,\n\t\t156, 75, 229, 54, 103, 10, 118, 125, 186, 150, 124, 160, 57,\n\t\t110, 65, 193, 254, 178, 11, 31, 240, 61, 104, 248, 64, 167,\n\t\t81, 233, 168, 70, 231, 209, 34, 60, 11, 160, 77, 140, 182,\n\t\t132, 182, 204, 174, 118, 139, 185, 110, 20, 163, 111, 175,\n\t\t173, 99, 174, 155, 199, 105, 195, 236, 26, 84, 27, 67, 91,\n\t\t71, 159, 166, 141, 115, 253, 244, 15, 52, 201, 77, 240, 211,\n\t\t95, 94, 239, 183, 9, 50, 71, 99, 172, 253, 188, 54, 136, 182,\n\t\t135, 52, 135, 182, 134, 86, 199, 95, 201, 135, 217, 8, 8,\n\t\t167, 104, 93, 75, 138, 89, 219, 194, 104, 99, 152, 221, 229,\n\t\t67, 56, 198, 200, 89, 219, 127, 39, 47, 31, 106, 146, 175,\n\t\t203, 247, 223, 190, 236, 34, 76, 126, 249, 244, 63, 221, 200,\n\t\t161, 57, 139, 109, 147, 144, 47, 173, 153, 253, 47, 15, 29,\n\t\t147, 95, 191, 237, 133, 97, 7, 73, 184, 206, 24, 136, 144,\n\t\t117, 199, 16, 129, 145, 146, 56, 91, 58, 6, 213, 81, 132,\n\t\t190, 15, 187, 190, 126, 49, 30, 110, 25, 223, 111, 97, 6,\n\t\t239, 0, 27, 47, 112, 62, 125, 183, 126, 194, 149, 94, 51,\n\t\t182, 53, 125, 87, 83, 82, 64, 52, 53, 37, 255, 254, 18, 104,\n\t\t197, 40, 121, 30, 167, 232, 151, 145, 189, 194, 4, 100, 244,\n\t\t121, 52, 84, 119, 179, 86, 222, 104, 237, 7, 247, 32, 238,\n\t\t186, 140, 42, 0, 103, 1, 219, 52, 91, 168, 200, 105, 135,\n\t\t51, 249, 180, 157, 111, 47, 80, 59, 199, 209, 255, 236, 198,\n\t\t126, 250, 146, 55, 86, 160, 29, 181, 242, 102, 5, 170, 157,\n\t\t41, 86, 63, 222, 43, 168, 233, 61, 68, 225, 27, 232, 159,\n\t\t218, 44, 126, 164, 155, 15, 233, 200, 34, 25, 10, 49, 249,\n\t\t228, 253, 222, 190, 156, 223, 150, 175, 191, 239, 124, 34,\n\t\t111, 110, 69, 220, 11, 54, 78, 52, 79, 134, 57, 242, 230,\n\t\t254, 20, 69, 225, 239, 98, 10, 104, 246, 153, 28, 11, 244,\n\t\t210, 217, 4, 151, 192, 202, 126, 159, 76, 252, 129, 165, 66,\n\t\t23, 211, 196, 156, 39, 1, 109, 18, 213, 163, 43, 222, 18,\n\t\t178, 225, 230, 16, 24, 218, 150, 22, 52, 124, 201, 42, 77,\n\t\t177, 3, 63, 49, 89, 36, 87, 70, 91, 14, 36, 115, 146, 235,\n\t\t149, 185, 91, 178, 42, 69, 73, 239, 174, 217, 106, 2, 205,\n\t\t69, 122, 41, 159, 225, 120, 200, 248, 169, 134, 145, 62, 210,\n\t\t21, 48, 74, 78, 38, 203, 179, 170, 166, 19, 61, 244, 169,\n\t\t46, 196, 157, 30, 25, 151, 209, 214, 119, 192, 113, 131, 29,\n\t\t54, 196, 1, 252, 148, 36, 36, 32, 139, 189, 26, 186, 34, 101,\n\t\t69, 129, 212, 97, 73, 154, 21, 119, 124, 220, 216, 248, 20,\n\t\t108, 155, 188, 75, 0, 18, 174, 17, 192, 139, 88, 96, 122,\n\t\t199, 126, 47, 39, 25, 42, 218, 84, 215, 100, 67, 155, 215,\n\t\t131, 198, 150, 151, 239, 119, 88, 201, 31, 4, 81, 226, 26,\n\t\t83, 199, 48, 28, 249, 117, 138, 70, 170, 111, 34, 15, 153,\n\t\t17, 109, 207, 3, 62, 1, 107, 132, 27, 56, 174, 61, 201, 175,\n\t\t96, 228, 29, 176, 41, 201, 153, 90, 35, 153, 48, 15, 218,\n\t\t1, 201, 212, 28, 237, 100, 164, 161, 158, 121, 189, 191, 238,\n\t\t100, 126, 192, 10, 5, 31, 108, 140, 113, 10, 33, 218, 82,\n\t\t234, 209, 4, 231, 168, 224, 58, 14, 246, 50, 202, 245, 172,\n\t\t103, 97, 95, 254, 34, 12, 150, 163, 96, 125, 56, 166, 118,\n\t\t25, 3, 107, 54, 103, 32, 144, 182, 54, 235, 125, 136, 115,\n\t\t202, 22, 89, 197, 217, 129, 89, 208, 35, 231, 122, 106, 193,\n\t\t150, 20, 10, 2, 233, 125, 205, 116, 76, 186, 198, 12, 114,\n\t\t81, 135, 192, 249, 206, 164, 233, 33, 21, 75, 203, 167, 241,\n\t\t222, 219, 18, 34, 10, 60, 184, 172, 82, 179, 57, 6, 36, 210,\n\t\t135, 206, 156, 183, 0, 199, 228, 89, 197, 219, 192, 57, 87,\n\t\t213, 34, 236, 63, 128, 82, 188, 143, 146, 25, 132, 237, 77,\n\t\t124, 253, 33, 88, 24, 55, 73, 60, 228, 190, 20, 155, 65, 226,\n\t\t17, 124, 194, 6, 177, 83, 168, 179, 128, 164, 129, 76, 45,\n\t\t68, 163, 33, 216, 140, 220, 102, 103, 83, 65, 220, 136, 175,\n\t\t54, 249, 222, 23, 154, 231, 74, 1, 209, 45, 125, 206, 9, 90,\n\t\t84, 164, 149, 15, 137, 8, 244, 62, 37, 208, 45, 43, 118, 59,\n\t\t124, 145, 25, 214, 230, 144, 99, 247, 135, 57, 122, 235, 34,\n\t\t234, 78, 53, 14, 125, 170, 94, 104, 194, 176, 201, 93, 145,\n\t\t79, 130, 76, 104, 62, 158, 123, 181, 129, 20, 45, 210, 2,\n\t\t203, 84, 101, 3, 29, 20, 241, 149, 12, 68, 252, 94, 10, 178,\n\t\t67, 198, 79, 70, 127, 71, 182, 139, 114, 255, 123, 103, 3,\n\t\t155, 71, 137, 55, 247, 82, 176, 161, 38, 0, 222, 197, 24,\n\t\t143, 189, 209, 97, 122, 34, 5, 236, 17, 210, 115, 174, 195,\n\t\t173, 233, 255, 67, 233, 254, 199, 235, 249, 109, 231, 63,\n\t\t120, 139, 27, 212, 110, 228, 32, 145, 36, 148, 216, 230, 29,\n\t\t112, 212, 40, 216, 3, 21, 145, 10, 139, 48, 184, 73, 191,\n\t\t48, 0, 149, 87, 103, 227, 10, 112, 84, 239, 64, 108, 33, 79,\n\t\t161, 114, 234, 67, 253, 56, 124, 149, 79, 75, 182, 5, 81,\n\t\t99, 153, 99, 196, 22, 76, 241, 176, 172, 248, 115, 49, 205,\n\t\t131, 171, 26, 31, 227, 116, 35, 95, 224, 188, 74, 189, 242,\n\t\t70, 35, 190, 140, 2, 56, 51, 235, 112, 185, 230, 212, 23,\n\t\t96, 7, 87, 164, 0, 242, 151, 217, 236, 174, 31, 215, 173,\n\t\t37, 114, 57, 192, 9, 229, 171, 124, 206, 251, 199, 234, 151,\n\t\t245, 241, 250, 116, 126, 38, 45, 25, 244, 89, 230, 235, 75,\n\t\t245, 10, 61, 94, 31, 187, 123, 237, 133, 91, 133, 27, 101,\n\t\t223, 102, 210, 154, 227, 252, 217, 236, 186, 226, 30, 102,\n\t\t154, 255, 145, 14, 117, 105, 81, 89, 82, 81, 186, 70, 202,\n\t\t82, 57, 218, 195, 127, 201, 51, 229, 217, 253, 240, 12, 109,\n\t\t171, 94, 10, 241, 245, 59, 47, 180, 50, 123, 224, 186, 224,\n\t\t75, 189, 150, 181, 143, 87, 237, 113, 240, 255, 215, 61, 156,\n\t\t221, 219, 3, 135, 78, 208, 76, 211, 134, 181, 55, 130, 71,\n\t\t70, 212, 200, 177, 110, 34, 80, 8, 225, 10, 64, 16, 149, 229,\n\t\t183, 10, 202, 36, 100, 140, 245, 77, 134, 122, 144, 196, 230,\n\t\t0, 221, 88, 112, 69, 73, 9, 99, 213, 59, 173, 89, 250, 248,\n\t\t45, 116, 155, 23, 90, 59, 224, 213, 233, 201, 230, 35, 39,\n\t\t69, 11, 168, 53, 163, 31, 42, 246, 101, 213, 107, 241, 37,\n\t\t176, 183, 123, 137, 216, 248, 63, 204, 94, 170, 4, 62, 53,\n\t\t160, 208, 203, 121, 82, 169, 113, 29, 31, 31, 125, 98, 134,\n\t\t117, 241, 55, 15, 223, 121, 158, 134, 226, 20, 89, 15, 88,\n\t\t76, 90, 189, 45, 221, 182, 163, 39, 13, 239, 177, 106, 255,\n\t\t249, 143, 183, 223, 94, 119, 170, 253, 219, 206, 185, 180,\n\t\t186, 89, 125, 104, 83, 47, 79, 188, 172, 130, 122, 240, 208,\n\t\t201, 218, 159, 249, 88, 113, 147, 187, 46, 214, 94, 222, 95,\n\t\t60, 236, 164, 114, 102, 61, 186, 157, 115, 5, 104, 52, 3,\n\t\t214, 121, 89, 80, 3, 36, 179, 49, 58, 246, 213, 231, 49, 56,\n\t\t234, 15, 184, 42, 147, 123, 92, 159, 195, 147, 10, 145, 50,\n\t\t251, 227, 173, 146, 220, 217, 148, 36, 245, 154, 245, 53,\n\t\t220, 168, 56, 93, 30, 210, 230, 77, 140, 124, 57, 27, 121,\n\t\t123, 180, 4, 53, 136, 128, 105, 110, 143, 223, 95, 98, 249,\n\t\t80, 247, 29, 158, 215, 244, 39, 244, 95, 113, 31, 170, 204,\n\t\t191, 162, 46, 15, 21, 229, 223, 62, 125, 123, 91, 150, 215,\n\t\t221, 48, 217, 185, 28, 115, 85, 146, 135, 92, 179, 37, 189,\n\t\t140, 76, 70, 213, 215, 189, 162, 108, 180, 97, 192, 43, 150,\n\t\t134, 31, 96, 248, 106, 225, 100, 50, 47, 178, 154, 15, 222,\n\t\t85, 91, 200, 172, 67, 48, 73, 179, 52, 211, 1, 11, 71, 208,\n\t\t142, 58, 131, 170, 40, 184, 253, 152, 246, 212, 58, 157, 13,\n\t\t93, 58, 230, 69, 5, 59, 169, 58, 133, 116, 153, 72, 165, 96,\n\t\t166, 101, 91, 182, 243, 76, 101, 142, 7, 245, 122, 235, 169,\n\t\t70, 206, 5, 81, 189, 64, 71, 140, 231, 10, 215, 138, 212,\n\t\t107, 173, 69, 22, 238, 13, 5, 19, 49, 222, 21, 91, 38, 1,\n\t\t199, 183, 101, 162, 183, 82, 172, 149, 13, 161, 145, 96, 215,\n\t\t121, 181, 246, 148, 38, 67, 90, 75, 13, 69, 210, 225, 227,\n\t\t68, 107, 88, 240, 205, 134, 41, 0, 88, 42, 68, 60, 245, 236,\n\t\t25, 252, 159, 37, 129, 175, 151, 153, 94, 37, 225, 36, 2,\n\t\t168, 133, 16, 64, 185, 236, 48, 35, 157, 154, 157, 148, 8,\n\t\t137, 1, 243, 147, 233, 226, 163, 224, 103, 25, 121, 152, 24,\n\t\t184, 169, 216, 56, 104, 105, 36, 47, 96, 210, 246, 240, 2,\n\t\t221, 23, 241, 181, 2, 110, 70, 58, 6, 156, 30, 186, 179, 200,\n\t\t155, 7, 129, 193, 234, 121, 23, 45, 146, 37, 14, 224, 212,\n\t\t52, 54, 14, 213, 165, 210, 156, 254, 159, 7, 9, 6, 7, 84,\n\t\t225, 214, 67, 230, 170, 218, 255, 188, 202, 193, 74, 230,\n\t\t246, 246, 106, 127, 75, 32, 115, 76, 178, 86, 81, 119, 38,\n\t\t94, 152, 102, 47, 110, 131, 188, 242, 8, 241, 243, 87, 64,\n\t\t31, 177, 87, 187, 205, 179, 215, 174, 204, 34, 131, 245, 10,\n\t\t182, 101, 245, 242, 113, 193, 197, 126, 242, 22, 54, 253,\n\t\t140, 151, 127, 146, 193, 127, 250, 99, 239, 206, 217, 57,\n\t\t195, 55, 249, 133, 161, 77, 161, 164, 179, 9, 64, 231, 101,\n\t\t15, 195, 35, 168, 131, 88, 30, 65, 29, 52, 103, 11, 221, 196,\n\t\t123, 144, 142, 250, 206, 25, 14, 209, 115, 190, 64, 12, 83,\n\t\t206, 54, 54, 64, 92, 156, 82, 178, 209, 101, 134, 202, 66,\n\t\t30, 191, 254, 70, 51, 219, 184, 211, 67, 150, 191, 74, 149,\n\t\t142, 101, 102, 84, 136, 138, 74, 103, 246, 37, 14, 112, 8,\n\t\t147, 101, 39, 57, 161, 171, 47, 95, 239, 26, 243, 225, 116,\n\t\t249, 190, 40, 218, 180, 130, 112, 14, 92, 86, 131, 137, 2,\n\t\t73, 91, 47, 78, 128, 37, 220, 71, 64, 49, 176, 238, 62, 108,\n\t\t108, 151, 30, 226, 74, 196, 130, 220, 91, 125, 148, 187, 9,\n\t\t117, 241, 126, 144, 248, 31, 36, 95, 255, 56, 130, 196, 82,\n\t\t178, 100, 63, 203, 151, 89, 193, 43, 182, 40, 22, 136, 165,\n\t\t223, 194, 88, 72, 65, 121, 14, 45, 187, 124, 254, 199, 241,\n\t\t143, 79, 223, 151, 79, 59, 57, 254, 180, 83, 149, 115, 24,\n\t\t25, 148, 244, 118, 72, 149, 143, 100, 142, 3, 128, 57, 117,\n\t\t206, 127, 110, 40, 59, 250, 220, 109, 111, 252, 139, 248,\n\t\t219, 228, 39, 38, 235, 164, 118, 136, 156, 24, 29, 232, 71,\n\t\t210, 156, 57, 77, 73, 251, 49, 219, 88, 92, 100, 168, 191,\n\t\t210, 97, 15, 215, 21, 69, 183, 0, 130, 46, 67, 75, 65, 186,\n\t\t78, 227, 61, 54, 95, 173, 175, 240, 198, 36, 27, 106, 231,\n\t\t221, 54, 102, 217, 148, 146, 35, 104, 68, 153, 65, 170, 228,\n\t\t6, 164, 80, 157, 173, 138, 141, 76, 180, 74, 23, 33, 16, 152,\n\t\t175, 57, 172, 15, 31, 207, 142, 216, 97, 33, 179, 69, 234,\n\t\t192, 219, 207, 94, 151, 139, 245, 13, 228, 5, 222, 95, 192,\n\t\t177, 61, 187, 169, 71, 230, 21, 169, 145, 195, 117, 124, 165,\n\t\t155, 226, 35, 101, 120, 58, 122, 181, 9, 136, 3, 29, 59, 232,\n\t\t190, 22, 139, 157, 175, 134, 129, 58, 142, 217, 105, 66, 179,\n\t\t115, 172, 142, 157, 209, 156, 28, 215, 146, 109, 202, 249,\n\t\t153, 209, 87, 164, 166, 215, 198, 252, 39, 1, 30, 142, 166,\n\t\t167, 4, 129, 174, 201, 205, 134, 0, 47, 72, 0, 11, 75, 247,\n\t\t184, 27, 252, 87, 163, 23, 157, 13, 165, 103, 6, 40, 114,\n\t\t85, 88, 161, 29, 131, 228, 121, 134, 35, 69, 126, 140, 113,\n\t\t182, 214, 30, 122, 197, 134, 146, 13, 105, 123, 23, 135, 120,\n\t\t165, 82, 182, 55, 185, 113, 15, 189, 5, 99, 49, 74, 224, 11,\n\t\t123, 183, 98, 182, 165, 117, 16, 90, 178, 49, 194, 117, 150,\n\t\t42, 207, 134, 86, 77, 215, 211, 20, 157, 237, 17, 24, 26,\n\t\t210, 16, 213, 139, 70, 171, 5, 220, 48, 239, 47, 72, 207,\n\t\t215, 108, 209, 219, 168, 239, 39, 179, 57, 228, 16, 73, 0,\n\t\t255, 106, 8, 153, 226, 249, 66, 117, 30, 192, 189, 243, 67,\n\t\t156, 249, 211, 245, 67, 102, 199, 244, 190, 52, 149, 103,\n\t\t158, 171, 155, 227, 127, 143, 245, 199, 211, 219, 55, 243,\n\t\t219, 14, 144, 239, 215, 29, 78, 244, 69, 112, 49, 131, 23,\n\t\t43, 192, 30, 28, 141, 109, 186, 128, 217, 243, 161, 157, 180,\n\t\t64, 142, 81, 6, 244, 189, 237, 15, 116, 246, 233, 14, 68,\n\t\t31, 91, 81, 131, 93, 166, 223, 0, 99, 59, 237, 225, 215, 78,\n\t\t183, 224, 214, 78, 123, 148, 55, 129, 97, 206, 221, 166, 185,\n\t\t42, 61, 21, 128, 4, 193, 162, 172, 8, 131, 168, 75, 140, 182,\n\t\t57, 127, 56, 43, 103, 238, 204, 20, 187, 114, 55, 69, 94,\n\t\t94, 41, 118, 175, 190, 28, 77, 204, 205, 50, 137, 191, 54,\n\t\t217, 134, 136, 255, 242, 106, 37, 122, 95, 31, 85, 10, 139,\n\t\t107, 2, 246, 49, 77, 59, 112, 56, 123, 240, 203, 121, 231,\n\t\t207, 166, 57, 81, 205, 67, 148, 187, 21, 85, 106, 18, 239,\n\t\t111, 203, 51, 56, 154, 6, 100, 38, 28, 162, 14, 189, 136,\n\t\t22, 99, 30, 15, 138, 212, 116, 152, 245, 55, 71, 37, 74, 88,\n\t\t136, 223, 153, 114, 64, 250, 139, 159, 51, 37, 236, 32, 37,\n\t\t132, 247, 208, 221, 207, 205, 163, 206, 243, 0, 218, 158,\n\t\t20, 174, 208, 4, 217, 233, 8, 99, 20, 178, 98, 239, 27, 3,\n\t\t120, 116, 144, 35, 241, 253, 59, 183, 73, 174, 67, 105, 175,\n\t\t2, 24, 237, 25, 251, 47, 138, 182, 78, 29, 151, 5, 172, 91,\n\t\t79, 18, 125, 21, 71, 110, 53, 49, 164, 175, 139, 122, 59,\n\t\t184, 165, 206, 100, 87, 248, 222, 105, 230, 2, 11, 158, 169,\n\t\t128, 31, 100, 42, 42, 86, 23, 17, 83, 46, 80, 123, 52, 21,\n\t\t168, 40, 52, 129, 215, 203, 162, 69, 211, 170, 129, 122, 251,\n\t\t168, 138, 38, 107, 192, 75, 84, 2, 46, 214, 120, 129, 73,\n\t\t7, 43, 105, 212, 146, 250, 56, 140, 93, 197, 194, 191, 47,\n\t\t186, 165, 231, 1, 185, 25, 102, 199, 234, 175, 159, 198, 13,\n\t\t130, 144, 187, 113, 195, 201, 245, 139, 81, 194, 48, 217,\n\t\t27, 60, 211, 26, 133, 151, 116, 83, 169, 83, 47, 83, 17, 145,\n\t\t164, 73, 77, 206, 1, 26, 241, 122, 169, 145, 107, 55, 206,\n\t\t171, 81, 219, 17, 48, 169, 59, 9, 90, 1, 101, 88, 28, 53,\n\t\t31, 4, 50, 142, 239, 230, 215, 173, 222, 113, 173, 220, 108,\n\t\t108, 25, 243, 189, 22, 164, 199, 116, 192, 49, 209, 45, 103,\n\t\t192, 171, 115, 188, 43, 68, 84, 155, 95, 143, 229, 73, 231,\n\t\t228, 241, 73, 239, 26, 149, 101, 13, 216, 236, 64, 144, 77,\n\t\t147, 118, 101, 234, 79, 82, 169, 222, 254, 56, 126, 61, 205,\n\t\t55, 246, 97, 127, 29, 0, 221, 41, 145, 197, 69, 202, 183,\n\t\t238, 72, 146, 105, 90, 134, 225, 33, 241, 88, 163, 128, 163,\n\t\t207, 66, 212, 225, 49, 88, 136, 182, 128, 244, 57, 139, 172,\n\t\t209, 112, 199, 162, 221, 53, 110, 171, 34, 220, 190, 241,\n\t\t54, 7, 125, 155, 77, 23, 163, 201, 201, 22, 29, 131, 51, 97,\n\t\t148, 214, 108, 59, 136, 93, 105, 218, 142, 147, 138, 39, 118,\n\t\t240, 252, 84, 217, 20, 198, 119, 159, 139, 109, 103, 159,\n\t\t25, 68, 21, 155, 144, 2, 90, 74, 214, 25, 207, 193, 74, 137,\n\t\t204, 38, 223, 97, 81, 156, 84, 241, 100, 206, 62, 78, 65,\n\t\t6, 215, 224, 163, 83, 188, 201, 208, 214, 221, 70, 26, 26,\n\t\t203, 32, 34, 84, 209, 14, 195, 82, 143, 27, 152, 202, 149,\n\t\t216, 174, 201, 144, 146, 59, 45, 52, 139, 49, 34, 64, 225,\n\t\t91, 157, 177, 239, 149, 37, 114, 144, 55, 128, 129, 203, 222,\n\t\t11, 40, 255, 4, 16, 190, 151, 57, 75, 171, 83, 87, 117, 153,\n\t\t3, 97, 243, 184, 54, 142, 59, 11, 229, 25, 243, 46, 30, 86,\n\t\t121, 246, 64, 163, 192, 92, 153, 116, 70, 27, 42, 225, 152,\n\t\t235, 188, 152, 138, 90, 217, 40, 48, 192, 58, 24, 244, 74,\n\t\t31, 199, 53, 193, 243, 92, 167, 45, 37, 183, 160, 86, 150,\n\t\t184, 4, 225, 150, 247, 126, 76, 168, 124, 98, 31, 139, 168,\n\t\t186, 131, 87, 103, 113, 62, 27, 237, 84, 83, 199, 160, 133,\n\t\t103, 198, 99, 95, 58, 128, 227, 18, 221, 127, 152, 149, 84,\n\t\t41, 75, 35, 100, 175, 141, 54, 118, 167, 81, 50, 10, 102,\n\t\t93, 47, 193, 191, 67, 203, 129, 56, 65, 200, 224, 73, 103,\n\t\t150, 95, 152, 219, 211, 168, 118, 148, 40, 117, 68, 212, 35,\n\t\t43, 202, 185, 54, 163, 125, 125, 207, 8, 237, 146, 244, 30,\n\t\t166, 170, 147, 192, 129, 18, 233, 43, 98, 197, 97, 55, 133,\n\t\t92, 238, 26, 228, 167, 203, 104, 111, 148, 108, 98, 192, 37,\n\t\t196, 251, 112, 186, 96, 69, 67, 26, 196, 195, 9, 225, 251,\n\t\t231, 63, 110, 241, 16, 253, 58, 118, 168, 161, 53, 196, 112,\n\t\t102, 98, 250, 27, 27, 246, 160, 230, 185, 23, 206, 237, 220,\n\t\t209, 4, 216, 196, 61, 144, 118, 169, 124, 60, 202, 207, 243,\n\t\t254, 2, 84, 115, 64, 46, 230, 242, 48, 128, 3, 33, 94, 199,\n\t\t212, 238, 60, 12, 88, 150, 236, 220, 125, 64, 232, 192, 75,\n\t\t254, 141, 168, 3, 14, 68, 123, 188, 163, 242, 182, 15, 149,\n\t\t254, 245, 1, 44, 48, 105, 151, 70, 163, 121, 3, 227, 122,\n\t\t150, 200, 33, 196, 107, 140, 174, 20, 148, 116, 36, 185, 237,\n\t\t76, 124, 117, 17, 201, 156, 186, 70, 254, 202, 185, 28, 204,\n\t\t28, 105, 89, 154, 90, 38, 91, 14, 90, 18, 153, 82, 113, 106,\n\t\t74, 178, 232, 19, 72, 22, 167, 198, 240, 2, 104, 172, 10,\n\t\t234, 4, 183, 97, 254, 210, 253, 26, 229, 215, 98, 97, 22,\n\t\t95, 87, 56, 154, 216, 160, 47, 50, 42, 158, 231, 60, 169,\n\t\t232, 25, 218, 116, 48, 210, 233, 21, 81, 109, 37, 182, 133,\n\t\t171, 205, 137, 38, 12, 169, 128, 103, 40, 213, 81, 33, 174,\n\t\t143, 239, 54, 250, 14, 132, 62, 152, 17, 52, 178, 233, 37,\n\t\t179, 103, 128, 92, 61, 246, 153, 150, 147, 217, 77, 85, 244,\n\t\t176, 156, 108, 170, 61, 79, 62, 118, 128, 14, 163, 241, 128,\n\t\t228, 237, 203, 57, 56, 24, 28, 87, 238, 104, 234, 132, 24,\n\t\t166, 40, 108, 98, 49, 156, 244, 235, 234, 15, 31, 76, 99,\n\t\t136, 42, 194, 93, 14, 51, 25, 170, 28, 203, 195, 57, 230,\n\t\t242, 48, 154, 126, 82, 89, 15, 249, 225, 112, 145, 32, 150,\n\t\t41, 22, 235, 209, 203, 164, 117, 231, 56, 222, 197, 240, 203,\n\t\t60, 137, 174, 252, 245, 215, 183, 253, 184, 220, 97, 21, 111,\n\t\t246, 140, 72, 175, 72, 179, 1, 162, 195, 69, 158, 198, 57,\n\t\t196, 240, 8, 6, 58, 246, 48, 87, 137, 148, 113, 147, 26, 54,\n\t\t60, 253, 111, 13, 27, 21, 150, 141, 97, 115, 148, 172, 147,\n\t\t125, 170, 136, 108, 133, 208, 248, 166, 129, 203, 78, 222,\n\t\t208, 142, 241, 138, 216, 230, 130, 134, 228, 116, 69, 115,\n\t\t3, 118, 227, 156, 187, 173, 44, 142, 217, 123, 102, 71, 25,\n\t\t60, 37, 6, 156, 185, 147, 137, 164, 255, 29, 115, 139, 54,\n\t\t206, 138, 62, 179, 170, 186, 49, 43, 119, 202, 227, 173, 186,\n\t\t227, 215, 211, 239, 159, 255, 120, 221, 143, 243, 71, 208,\n\t\t111, 152, 128, 224, 137, 59, 154, 132, 120, 178, 71, 129,\n\t\t57, 193, 157, 35, 32, 173, 239, 59, 54, 219, 185, 134, 135,\n\t\t206, 56, 31, 158, 251, 42, 91, 123, 114, 78, 44, 238, 24,\n\t\t220, 195, 248, 144, 247, 151, 232, 56, 198, 31, 72, 105, 79,\n\t\t193, 249, 146, 155, 31, 67, 243, 37, 247, 8, 153, 47, 109,\n\t\t27, 238, 170, 42, 147, 7, 104, 1, 82, 96, 126, 236, 54, 188,\n\t\t9, 249, 252, 85, 158, 192, 12, 190, 191, 132, 196, 73, 35,\n\t\t31, 185, 93, 75, 199, 146, 206, 45, 61, 121, 65, 106, 110,\n\t\t6, 49, 248, 192, 61, 255, 222, 214, 62, 240, 162, 237, 17,\n\t\t33, 244, 227, 173, 249, 131, 85, 125, 127, 241, 141, 39, 146,\n\t\t80, 206, 38, 48, 58, 51, 240, 103, 3, 45, 48, 173, 209, 32,\n\t\t44, 19, 45, 132, 36, 212, 250, 147, 155, 202, 248, 185, 76,\n\t\t229, 28, 202, 49, 148, 251, 191, 162, 207, 245, 87, 179, 254,\n\t\t68, 119, 62, 154, 64, 215, 63, 60, 193, 205, 102, 189, 183,\n\t\t41, 235, 25, 244, 29, 245, 166, 187, 60, 59, 201, 61, 120,\n\t\t185, 135, 179, 215, 235, 111, 159, 190, 47, 175, 95, 230,\n\t\t253, 178, 177, 219, 67, 253, 119, 98, 225, 255, 218, 196,\n\t\t194, 232, 210, 20, 72, 35, 167, 166, 92, 55, 155, 117, 251,\n\t\t115, 50, 109, 106, 71, 147, 203, 57, 35, 192, 224, 238, 25,\n\t\t169, 173, 110, 16, 234, 222, 245, 12, 250, 222, 206, 134,\n\t\t166, 253, 92, 158, 156, 196, 61, 175, 167, 108, 126, 164,\n\t\t159, 143, 185, 208, 109, 30, 157, 145, 16, 119, 41, 247, 111,\n\t\t211, 90, 201, 118, 206, 229, 152, 203, 189, 95, 31, 39, 88,\n\t\t30, 254, 74, 195, 254, 236, 4, 203, 183, 95, 254, 249, 121,\n\t\t23, 131, 245, 235, 22, 136, 147, 148, 34, 154, 211, 180, 55,\n\t\t239, 166, 175, 168, 145, 117, 63, 141, 6, 242, 15, 35, 134,\n\t\t84, 45, 247, 39, 45, 174, 251, 153, 55, 190, 160, 134, 79,\n\t\t210, 120, 152, 84, 29, 143, 120, 150, 168, 19, 88, 44, 31,\n\t\t188, 42, 155, 98, 47, 64, 198, 194, 6, 207, 14, 198, 97, 216,\n\t\t192, 18, 118, 243, 228, 156, 24, 174, 113, 30, 174, 1, 33,\n\t\t52, 132, 231, 249, 121, 151, 192, 18, 151, 120, 17, 152, 11,\n\t\t185, 51, 14, 79, 206, 138, 87, 200, 73, 23, 224, 18, 103,\n\t\t88, 164, 143, 78, 120, 66, 175, 240, 235, 231, 127, 28, 255,\n\t\t120, 251, 102, 254, 223, 183, 189, 252, 237, 54, 54, 55, 4,\n\t\t69, 66, 108, 41, 51, 91, 140, 156, 210, 74, 93, 213, 248,\n\t\t107, 12, 39, 199, 28, 117, 165, 242, 212, 45, 185, 102, 19,\n\t\t128, 23, 176, 241, 72, 107, 92, 90, 140, 247, 197, 182, 132,\n\t\t72, 143, 118, 140, 29, 240, 98, 51, 66, 170, 145, 180, 199,\n\t\t183, 103, 216, 174, 113, 68, 203, 0, 157, 64, 210, 178, 214,\n\t\t193, 208, 122, 224, 19, 61, 243, 76, 227, 174, 156, 61, 212,\n\t\t174, 182, 152, 82, 112, 63, 240, 12, 71, 156, 177, 104, 237,\n\t\t248, 227, 92, 58, 162, 161, 219, 153, 187, 38, 208, 249, 189,\n\t\t47, 100, 21, 180, 115, 162, 195, 122, 88, 112, 16, 248, 201,\n\t\t16, 41, 122, 137, 38, 215, 46, 23, 55, 60, 226, 49, 101, 193,\n\t\t147, 65, 97, 116, 196, 249, 9, 67, 133, 170, 199, 53, 253,\n\t\t232, 171, 246, 126, 253, 170, 210, 86, 203, 69, 3, 134, 180,\n\t\t112, 227, 62, 113, 81, 236, 73, 186, 127, 221, 101, 164, 109,\n\t\t104, 53, 74, 3, 24, 48, 54, 220, 64, 217, 221, 216, 251, 208,\n\t\t90, 69, 158, 179, 105, 14, 86, 155, 109, 172, 113, 121, 225,\n\t\t112, 243, 205, 242, 230, 116, 113, 150, 233, 90, 64, 44, 31,\n\t\t11, 2, 150, 92, 14, 117, 49, 205, 217, 226, 196, 248, 234,\n\t\t181, 208, 24, 11, 216, 215, 251, 64, 184, 194, 83, 14, 15,\n\t\t118, 71, 221, 181, 144, 232, 6, 143, 172, 159, 3, 169, 164,\n\t\t71, 172, 166, 141, 193, 60, 125, 58, 143, 247, 108, 66, 159,\n\t\t72, 163, 191, 214, 26, 175, 230, 27, 227, 225, 20, 201, 75,\n\t\t78, 204, 102, 6, 218, 152, 52, 103, 27, 152, 172, 193, 198,\n\t\t88, 27, 242, 171, 144, 71, 208, 108, 107, 177, 242, 49, 64,\n\t\t190, 18, 118, 177, 223, 95, 130, 107, 100, 177, 95, 128, 107,\n\t\t93, 64, 112, 157, 3, 182, 12, 245, 4, 179, 249, 241, 210,\n\t\t7, 120, 1, 32, 117, 54, 33, 172, 16, 83, 116, 225, 246, 4,\n\t\t241, 10, 190, 120, 31, 254, 182, 135, 63, 121, 246, 67, 11,\n\t\t220, 220, 6, 95, 255, 245, 1, 72, 20, 178, 55, 203, 71, 115,\n\t\t73, 127, 24, 181, 159, 126, 126, 188, 24, 198, 88, 166, 24,\n\t\t220, 199, 86, 158, 230, 152, 170, 188, 185, 167, 203, 216,\n\t\t14, 174, 111, 127, 183, 77, 235, 255, 165, 165, 167, 57, 104,\n\t\t11, 166, 185, 31, 186, 205, 42, 59, 183, 223, 230, 113, 100,\n\t\t217, 242, 253, 116, 79, 12, 118, 249, 144, 255, 253, 24, 252,\n\t\t152, 70, 125, 73, 103, 232, 83, 186, 25, 59, 98, 240, 54,\n\t\t166, 114, 15, 231, 30, 158, 156, 147, 65, 217, 204, 191, 15,\n\t\t115, 90, 19, 221, 196, 156, 238, 184, 215, 225, 249, 137,\n\t\t172, 225, 233, 89, 219, 159, 197, 238, 238, 184, 219, 147,\n\t\t147, 114, 153, 215, 7, 193, 56, 31, 181, 246, 244, 70, 199,\n\t\t30, 30, 156, 240, 216, 100, 253, 242, 143, 229, 205, 252,\n\t\t242, 245, 251, 167, 229, 237, 22, 226, 128, 119, 15, 227,\n\t\t55, 162, 173, 83, 112, 125, 241, 177, 76, 62, 150, 89, 182,\n\t\t106, 31, 165, 182, 194, 15, 200, 105, 29, 216, 133, 11, 178,\n\t\t7, 165, 151, 154, 53, 61, 86, 10, 66, 26, 244, 124, 98, 222,\n\t\t45, 102, 164, 68, 246, 98, 243, 210, 139, 110, 234, 179, 71,\n\t\t125, 222, 100, 17, 95, 86, 104, 100, 19, 243, 205, 168, 50,\n\t\t139, 86, 1, 117, 225, 109, 222, 219, 105, 200, 92, 225, 155,\n\t\t105, 200, 242, 254, 8, 5, 222, 92, 155, 71, 11, 108, 252,\n\t\t254, 49, 189, 191, 68, 47, 219, 90, 53, 207, 230, 58, 33,\n\t\t216, 92, 55, 223, 246, 218, 77, 91, 111, 247, 231, 239, 36,\n\t\t118, 47, 251, 119, 219, 60, 229, 226, 6, 104, 154, 139, 118,\n\t\t185, 110, 214, 229, 162, 213, 183, 61, 38, 55, 90, 59, 44,\n\t\t95, 244, 214, 174, 179, 245, 146, 203, 44, 239, 203, 182,\n\t\t101, 65, 249, 184, 244, 222, 2, 135, 240, 110, 7, 233, 116,\n\t\t137, 109, 24, 169, 7, 184, 255, 140, 116, 224, 149, 24, 222,\n\t\t206, 63, 23, 41, 30, 111, 182, 121, 177, 43, 129, 211, 130,\n\t\t85, 138, 181, 89, 164, 85, 39, 109, 93, 179, 41, 64, 92, 205,\n\t\t159, 185, 25, 85, 128, 106, 81, 123, 111, 135, 91, 41, 230,\n\t\t56, 255, 70, 138, 185, 190, 121, 223, 182, 63, 14, 246, 210,\n\t\t103, 72, 116, 147, 47, 54, 210, 168, 159, 119, 242, 122, 103,\n\t\t148, 97, 211, 249, 162, 141, 63, 216, 249, 187, 246, 61, 108,\n\t\t219, 228, 34, 58, 100, 18, 161, 187, 209, 184, 81, 133, 121,\n\t\t219, 218, 31, 190, 209, 117, 15, 63, 25, 118, 127, 86, 106,\n\t\t119, 144, 3, 222, 237, 40, 108, 215, 44, 49, 95, 235, 228,\n\t\t123, 176, 113, 219, 111, 127, 117, 170, 67, 84, 149, 217,\n\t\t93, 191, 157, 233, 164, 100, 51, 211, 105, 228, 3, 194, 105,\n\t\t70, 163, 154, 157, 200, 126, 124, 252, 240, 94, 216, 166,\n\t\t127, 239, 79, 134, 87, 50, 191, 206, 132, 171, 212, 174, 43,\n\t\t78, 158, 98, 90, 101, 247, 253, 197, 167, 56, 197, 150, 144,\n\t\t170, 176, 27, 29, 215, 171, 20, 59, 99, 111, 182, 242, 147,\n\t\t73, 243, 86, 11, 95, 10, 216, 16, 247, 235, 214, 61, 172,\n\t\t83, 238, 110, 78, 48, 27, 185, 253, 224, 237, 214, 186, 236,\n\t\t58, 251, 122, 4, 174, 50, 79, 47, 241, 113, 233, 189, 129,\n\t\t10, 226, 221, 110, 79, 126, 35, 191, 41, 78, 190, 123, 91,\n\t\t47, 150, 76, 173, 211, 149, 228, 172, 242, 171, 141, 123,\n\t\t253, 62, 215, 151, 174, 211, 28, 31, 175, 77, 113, 221, 140,\n\t\t203, 85, 67, 255, 137, 91, 133, 145, 252, 24, 108, 62, 60,\n\t\t158, 4, 119, 122, 203, 118, 18, 28, 215, 229, 139, 65, 146,\n\t\t105, 154, 221, 232, 11, 239, 24, 245, 70, 131, 177, 63, 8,\n\t\t145, 178, 17, 253, 155, 109, 125, 175, 255, 117, 206, 187,\n\t\t28, 149, 31, 154, 244, 150, 235, 217, 96, 217, 78, 22, 243,\n\t\t149, 150, 32, 247, 184, 209, 186, 151, 195, 231, 163, 35,\n\t\t239, 3, 66, 123, 83, 191, 221, 237, 232, 135, 92, 86, 144,\n\t\t53, 110, 134, 127, 107, 184, 127, 90, 195, 125, 222, 27, 183,\n\t\t245, 181, 29, 9, 237, 218, 29, 255, 214, 215, 254, 138, 190,\n\t\t246, 188, 35, 110, 168, 32, 59, 4, 202, 75, 21, 36, 180, 246,\n\t\t111, 21, 228, 207, 171, 32, 207, 187, 226, 230, 122, 250,\n\t\t0, 53, 128, 214, 211, 206, 1, 160, 255, 187, 87, 212, 11,\n\t\t137, 56, 252, 73, 137, 186, 176, 44, 28, 231, 212, 174, 167,\n\t\t203, 188, 185, 233, 121, 86, 238, 30, 118, 199, 47, 111, 167,\n\t\t127, 254, 241, 117, 63, 48, 118, 113, 72, 155, 100, 232, 208,\n\t\t166, 116, 55, 62, 114, 128, 178, 222, 115, 127, 49, 199, 61,\n\t\t190, 139, 243, 156, 227, 1, 62, 152, 150, 178, 113, 218, 243,\n\t\t117, 251, 52, 149, 211, 46, 240, 172, 226, 145, 242, 244,\n\t\t63, 191, 225, 159, 154, 123, 63, 96, 63, 179, 151, 115, 104,\n\t\t141, 195, 175, 12, 125, 75, 169, 61, 78, 252, 123, 253, 253,\n\t\t86, 243, 62, 137, 147, 136, 225, 97, 156, 4, 199, 254, 197,\n\t\t145, 29, 162, 17, 19, 101, 133, 110, 53, 217, 135, 121, 156,\n\t\t194, 248, 174, 219, 243, 74, 58, 123, 222, 130, 64, 209, 54,\n\t\t2, 120, 242, 229, 24, 98, 183, 33, 2, 80, 137, 131, 22, 115,\n\t\t116, 8, 130, 103, 58, 159, 200, 128, 97, 136, 212, 137, 225,\n\t\t88, 52, 137, 184, 113, 190, 29, 243, 187, 11, 67, 7, 157,\n\t\t8, 136, 131, 112, 12, 41, 216, 84, 222, 95, 114, 45, 83, 114,\n\t\t238, 108, 98, 44, 168, 233, 57, 70, 221, 172, 197, 88, 11,\n\t\t140, 171, 49, 93, 163, 117, 73, 176, 190, 138, 156, 156, 194,\n\t\t155, 234, 240, 1, 54, 134, 86, 140, 45, 49, 180, 98, 108,\n\t\t143, 103, 35, 192, 231, 239, 23, 231, 7, 201, 197, 112, 254,\n\t\t62, 144, 254, 228, 31, 134, 23, 63, 114, 254, 242, 165, 247,\n\t\t156, 191, 8, 243, 101, 18, 125, 137, 42, 137, 87, 41, 239,\n\t\t167, 171, 100, 247, 45, 137, 62, 171, 88, 113, 144, 232, 143,\n\t\t227, 248, 156, 68, 255, 183, 175, 159, 62, 239, 72, 6, 188,\n\t\t219, 103, 174, 110, 16, 3, 195, 143, 52, 82, 8, 233, 207,\n\t\t55, 82, 8, 73, 98, 96, 254, 91, 26, 233, 63, 190, 127, 253,\n\t\t227, 142, 230, 253, 203, 22, 168, 148, 38, 160, 123, 205,\n\t\t34, 81, 75, 119, 103, 206, 240, 32, 226, 156, 25, 148, 56,\n\t\t61, 103, 170, 50, 56, 168, 57, 228, 255, 177, 61, 156, 107,\n\t\t53, 192, 70, 207, 185, 61, 245, 54, 158, 82, 186, 98, 16,\n\t\t76, 35, 140, 86, 230, 29, 192, 157, 52, 199, 89, 158, 190,\n\t\t135, 195, 255, 5, 239, 250, 92, 42, 110, 91, 0, 55, 73, 58,\n\t\t110, 53, 85, 16, 118, 43, 121, 97, 163, 111, 108, 36, 226,\n\t\t139, 255, 160, 198, 143, 150, 69, 142, 95, 185, 27, 156, 221,\n\t\t30, 132, 75, 3, 82, 167, 185, 187, 61, 194, 157, 121, 99,\n\t\t80, 114, 74, 42, 77, 247, 190, 220, 151, 133, 255, 229, 47,\n\t\t248, 48, 241, 229, 247, 207, 95, 190, 236, 130, 37, 188, 31,\n\t\t104, 164, 209, 165, 137, 131, 12, 30, 110, 39, 127, 132, 88,\n\t\t248, 38, 79, 114, 200, 133, 212, 137, 71, 251, 200, 63, 194,\n\t\t147, 76, 13, 249, 87, 104, 152, 63, 200, 148, 220, 49, 139,\n\t\t252, 109, 141, 227, 93, 179, 61, 132, 169, 7, 219, 131, 239,\n\t\t252, 26, 237, 226, 53, 188, 158, 253, 51, 42, 241, 126, 120,\n\t\t73, 46, 90, 224, 20, 111, 31, 217, 255, 198, 71, 142, 151,\n\t\t140, 173, 210, 147, 111, 189, 228, 79, 16, 133, 135, 57, 38,\n\t\t159, 191, 205, 123, 5, 194, 143, 76, 80, 146, 209, 148, 220,\n\t\t236, 99, 197, 132, 205, 32, 159, 252, 37, 208, 243, 233, 200,\n\t\t232, 161, 148, 209, 183, 81, 78, 37, 122, 137, 252, 127, 60,\n\t\t44, 127, 187, 161, 209, 248, 125, 242, 69, 31, 62, 25, 122,\n\t\t203, 159, 94, 197, 151, 24, 152, 43, 194, 172, 10, 203, 7,\n\t\t149, 145, 211, 7, 20, 27, 210, 135, 254, 234, 253, 15, 31,\n\t\t123, 64, 44, 140, 212, 235, 45, 214, 220, 60, 249, 129, 225,\n\t\t43, 33, 203, 113, 176, 52, 40, 180, 146, 179, 121, 38, 19,\n\t\t152, 39, 251, 80, 196, 42, 201, 106, 207, 36, 133, 216, 234,\n\t\t238, 178, 228, 100, 138, 224, 86, 41, 206, 223, 56, 69, 206,\n\t\t152, 21, 85, 9, 245, 192, 181, 81, 211, 103, 147, 154, 75,\n\t\t234, 36, 161, 138, 28, 230, 208, 216, 19, 205, 191, 86, 39,\n\t\t213, 207, 98, 62, 123, 15, 16, 98, 57, 60, 53, 197, 62, 238,\n\t\t242, 24, 252, 44, 191, 62, 142, 149, 252, 118, 195, 231, 225,\n\t\t119, 134, 224, 191, 69, 238, 217, 3, 34, 245, 168, 54, 57,\n\t\t11, 157, 81, 169, 139, 2, 219, 160, 232, 88, 201, 50, 131,\n\t\t3, 35, 61, 136, 126, 161, 125, 109, 180, 179, 181, 175, 25,\n\t\t22, 85, 15, 79, 166, 13, 89, 238, 170, 144, 172, 210, 48,\n\t\t164, 109, 125, 186, 247, 26, 157, 47, 50, 125, 45, 106, 34,\n\t\t243, 42, 242, 89, 244, 17, 21, 248, 43, 97, 62, 169, 180,\n\t\t15, 112, 239, 235, 1, 241, 36, 46, 252, 154, 197, 212, 251,\n\t\t189, 97, 251, 119, 139, 219, 95, 23, 135, 15, 74, 67, 74,\n\t\t83, 115, 179, 38, 72, 32, 12, 150, 231, 29, 182, 254, 212,\n\t\t229, 51, 126, 31, 95, 77, 148, 202, 28, 142, 12, 166, 72,\n\t\t3, 195, 181, 255, 6, 219, 241, 31, 175, 191, 189, 253, 254,\n\t\t122, 13, 41, 227, 253, 131, 16, 234, 212, 28, 34, 106, 85,\n\t\t103, 102, 88, 150, 190, 234, 206, 114, 232, 139, 59, 81, 25,\n\t\t123, 153, 47, 244, 233, 25, 248, 41, 210, 40, 77, 38, 95,\n\t\t175, 58, 56, 73, 122, 128, 203, 172, 123, 204, 215, 125, 50,\n\t\t65, 135, 65, 233, 114, 86, 106, 122, 38, 7, 181, 143, 218,\n\t\t224, 41, 23, 122, 60, 213, 228, 150, 173, 134, 36, 2, 192,\n\t\t235, 213, 145, 43, 150, 239, 71, 173, 133, 195, 57, 63, 11,\n\t\t109, 227, 76, 177, 252, 56, 98, 13, 55, 123, 126, 158, 102,\n\t\t148, 229, 187, 65, 107, 184, 217, 147, 147, 144, 118, 150,\n\t\t239, 69, 182, 101, 186, 203, 163, 200, 182, 151, 148, 220,\n\t\t228, 93, 58, 252, 180, 228, 158, 28, 220, 228, 91, 250, 89,\n\t\t247, 123, 36, 221, 255, 124, 251, 175, 79, 95, 95, 191, 237,\n\t\t197, 123, 23, 48, 126, 233, 99, 86, 138, 229, 240, 48, 203,\n\t\t163, 61, 204, 103, 161, 27, 60, 178, 77, 224, 196, 125, 166,\n\t\t102, 191, 11, 162, 96, 123, 150, 202, 248, 209, 28, 197, 39,\n\t\t25, 159, 143, 147, 20, 217, 19, 248, 19, 107, 243, 99, 149,\n\t\t137, 193, 125, 180, 50, 127, 123, 98, 47, 98, 182, 62, 90,\n\t\t155, 191, 191, 50, 72, 128, 66, 101, 14, 255, 3, 106, 195,\n\t\t224, 254, 79, 211, 113, 127, 90, 101, 14, 143, 101, 184, 134,\n\t\t127, 105, 109, 30, 203, 112, 105, 63, 179, 50, 63, 56, 188,\n\t\t225, 37, 254, 121, 181, 249, 177, 202, 208, 204, 87, 203,\n\t\t71, 234, 242, 47, 26, 221, 31, 169, 76, 136, 225, 39, 84,\n\t\t134, 238, 242, 108, 120, 163, 54, 255, 3, 70, 247, 67, 195,\n\t\t115, 121, 253, 135, 153, 143, 111, 243, 63, 223, 190, 189,\n\t\t237, 87, 225, 225, 134, 14, 41, 2, 100, 185, 89, 63, 7, 53,\n\t\t145, 24, 251, 44, 40, 31, 16, 108, 29, 108, 52, 215, 184,\n\t\t238, 101, 251, 222, 195, 217, 148, 38, 38, 120, 16, 237, 119,\n\t\t195, 68, 148, 39, 189, 206, 232, 133, 129, 153, 134, 206,\n\t\t133, 77, 54, 146, 123, 210, 69, 98, 243, 244, 124, 209, 209,\n\t\t187, 128, 89, 165, 108, 153, 218, 128, 43, 147, 213, 119,\n\t\t208, 207, 134, 170, 13, 236, 100, 175, 28, 60, 89, 241, 177,\n\t\t196, 242, 131, 167, 95, 16, 176, 120, 15, 241, 0, 223, 190,\n\t\t68, 183, 169, 141, 86, 85, 105, 79, 2, 107, 205, 160, 88,\n\t\t227, 120, 54, 69, 48, 245, 156, 144, 208, 144, 37, 41, 6,\n\t\t90, 1, 18, 158, 22, 48, 52, 182, 16, 17, 180, 162, 20, 77,\n\t\t142, 149, 229, 132, 70, 227, 4, 223, 206, 152, 224, 207, 183,\n\t\t35, 124, 121, 226, 252, 142, 244, 28, 161, 48, 24, 216, 228,\n\t\t208, 20, 36, 179, 60, 36, 106, 184, 142, 215, 119, 211, 136,\n\t\t249, 18, 219, 85, 241, 36, 179, 192, 174, 229, 34, 158, 17,\n\t\t233, 137, 236, 71, 123, 145, 129, 204, 246, 68, 22, 248, 50,\n\t\t96, 138, 55, 141, 194, 24, 72, 123, 195, 48, 54, 184, 0, 93,\n\t\t194, 189, 63, 43, 215, 131, 114, 58, 164, 72, 146, 76, 243,\n\t\t112, 152, 75, 29, 54, 141, 247, 64, 100, 81, 108, 192, 146,\n\t\t201, 210, 208, 70, 78, 14, 186, 107, 147, 184, 22, 95, 38,\n\t\t239, 43, 189, 24, 194, 228, 94, 124, 233, 96, 241, 12, 54,\n\t\t159, 43, 3, 177, 29, 160, 77, 74, 74, 189, 86, 55, 41, 82,\n\t\t98, 27, 160, 122, 42, 219, 194, 192, 117, 6, 106, 250, 44,\n\t\t117, 159, 244, 69, 149, 97, 203, 75, 140, 77, 93, 93, 79,\n\t\t89, 36, 58, 77, 33, 215, 115, 101, 143, 151, 226, 157, 43,\n\t\t114, 184, 73, 101, 125, 14, 119, 229, 118, 84, 229, 51, 25,\n\t\t110, 157, 93, 23, 160, 121, 99, 32, 52, 147, 20, 43, 96, 224,\n\t\t190, 85, 233, 16, 110, 9, 26, 82, 34, 229, 65, 70, 93, 210,\n\t\t51, 19, 163, 176, 143, 58, 175, 195, 145, 107, 119, 54, 210,\n\t\t250, 179, 9, 98, 18, 86, 84, 244, 34, 76, 107, 60, 80, 96,\n\t\t3, 197, 192, 4, 152, 102, 30, 232, 106, 52, 112, 52, 40, 69,\n\t\t48, 233, 54, 239, 167, 141, 138, 172, 74, 160, 209, 101, 5,\n\t\t57, 144, 118, 29, 85, 227, 241, 71, 23, 204, 49, 240, 184,\n\t\t138, 36, 132, 28, 86, 3, 209, 106, 101, 210, 58, 25, 118,\n\t\t223, 28, 48, 35, 229, 89, 5, 220, 104, 27, 36, 37, 117, 243,\n\t\t114, 135, 181, 82, 210, 6, 50, 206, 103, 165, 1, 49, 85, 36,\n\t\t67, 219, 65, 99, 52, 199, 35, 25, 161, 202, 159, 213, 252,\n\t\t158, 21, 254, 83, 165, 140, 129, 72, 253, 250, 78, 124, 75,\n\t\t21, 141, 65, 42, 160, 243, 110, 106, 155, 224, 91, 158, 158,\n\t\t70, 45, 11, 181, 55, 67, 76, 4, 25, 181, 3, 23, 210, 13, 30,\n\t\t220, 241, 36, 126, 203, 199, 97, 16, 111, 223, 126, 251, 252,\n\t\t101, 7, 71, 228, 195, 46, 41, 106, 245, 64, 132, 92, 109,\n\t\t111, 30, 104, 202, 46, 0, 55, 51, 217, 152, 104, 218, 228,\n\t\t47, 179, 217, 49, 216, 96, 178, 29, 172, 59, 12, 48, 124,\n\t\t73, 163, 84, 152, 76, 189, 48, 235, 78, 174, 137, 214, 0,\n\t\t254, 196, 53, 28, 117, 22, 24, 12, 89, 97, 142, 17, 97, 229,\n\t\t211, 226, 115, 178, 46, 120, 96, 120, 213, 84, 22, 115, 89,\n\t\t128, 144, 226, 8, 192, 51, 186, 85, 19, 22, 118, 95, 35, 123,\n\t\t234, 82, 236, 211, 254, 166, 92, 29, 169, 213, 202, 202, 163,\n\t\t47, 160, 111, 164, 199, 235, 251, 236, 218, 227, 130, 62,\n\t\t72, 153, 119, 214, 102, 185, 32, 244, 121, 127, 41, 137, 214,\n\t\t142, 249, 105, 14, 115, 124, 142, 111, 255, 16, 228, 41, 62,\n\t\t5, 164, 127, 226, 189, 34, 121, 217, 9, 206, 3, 134, 249,\n\t\t80, 155, 237, 64, 153, 203, 139, 41, 94, 233, 27, 72, 71,\n\t\t18, 159, 135, 46, 170, 142, 1, 90, 21, 213, 145, 121, 11,\n\t\t22, 15, 172, 217, 84, 157, 13, 179, 156, 170, 87, 98, 144,\n\t\t57, 61, 115, 18, 4, 73, 32, 99, 202, 67, 202, 240, 205, 200,\n\t\t220, 141, 228, 211, 60, 181, 117, 0, 142, 88, 59, 172, 253,\n\t\t120, 140, 25, 132, 7, 227, 122, 94, 27, 117, 157, 213, 39,\n\t\t74, 93, 105, 241, 73, 182, 211, 168, 175, 74, 170, 65, 55,\n\t\t211, 137, 95, 225, 38, 87, 85, 197, 35, 242, 61, 47, 198,\n\t\t39, 26, 191, 126, 242, 49, 211, 114, 190, 210, 205, 241, 76,\n\t\t164, 199, 202, 76, 4, 224, 185, 188, 108, 174, 154, 147, 212,\n\t\t85, 233, 17, 61, 147, 133, 176, 135, 90, 30, 195, 232, 158,\n\t\t73, 34, 73, 133, 121, 114, 173, 160, 106, 66, 138, 96, 179,\n\t\t93, 210, 133, 1, 201, 116, 85, 183, 42, 207, 167, 203, 117,\n\t\t193, 97, 30, 111, 71, 111, 191, 241, 138, 137, 22, 115, 125,\n\t\t207, 247, 151, 212, 131, 197, 92, 233, 16, 179, 172, 111,\n\t\t194, 173, 231, 89, 25, 211, 170, 213, 49, 243, 47, 192, 24,\n\t\t159, 244, 109, 140, 190, 206, 104, 110, 125, 121, 197, 227,\n\t\t209, 7, 235, 187, 104, 205, 245, 77, 204, 182, 128, 213, 57,\n\t\t121, 147, 196, 106, 168, 250, 230, 164, 46, 215, 55, 60, 44,\n\t\t90, 33, 172, 164, 218, 17, 170, 197, 200, 100, 159, 39, 188,\n\t\t195, 218, 121, 134, 250, 60, 204, 3, 219, 87, 250, 124, 28,\n\t\t175, 125, 78, 45, 150, 31, 14, 202, 111, 111, 191, 47, 255,\n\t\t101, 94, 119, 72, 146, 62, 236, 178, 174, 86, 175, 27, 8,\n\t\t87, 92, 103, 27, 160, 164, 197, 215, 98, 29, 217, 24, 217,\n\t\t219, 222, 192, 221, 155, 92, 1, 191, 73, 4, 9, 65, 183, 165,\n\t\t149, 60, 5, 155, 93, 232, 113, 28, 27, 143, 235, 253, 217,\n\t\t144, 110, 86, 98, 157, 125, 232, 214, 183, 128, 17, 3, 10,\n\t\t39, 68, 179, 1, 75, 222, 119, 62, 240, 45, 218, 44, 52, 129,\n\t\t158, 241, 250, 1, 81, 129, 171, 66, 64, 197, 76, 139, 12,\n\t\t95, 1, 18, 212, 200, 27, 48, 37, 83, 73, 183, 61, 186, 194,\n\t\t200, 72, 222, 51, 158, 110, 140, 28, 29, 233, 106, 245, 147,\n\t\t111, 182, 68, 215, 15, 115, 108, 54, 147, 162, 232, 67, 180,\n\t\t190, 0, 193, 188, 7, 223, 72, 189, 236, 54, 225, 113, 192,\n\t\t139, 157, 124, 11, 214, 33, 115, 62, 89, 95, 51, 251, 9, 73,\n\t\t111, 245, 188, 139, 40, 170, 173, 183, 9, 112, 250, 215, 111,\n\t\t15, 14, 179, 77, 251, 213, 217, 120, 15, 24, 254, 169, 219,\n\t\t92, 128, 236, 5, 78, 145, 220, 177, 35, 148, 3, 72, 147, 138,\n\t\t141, 161, 249, 247, 151, 102, 35, 255, 20, 188, 109, 177,\n\t\t252, 153, 139, 175, 59, 238, 240, 23, 122, 206, 103, 219,\n\t\t124, 165, 137, 208, 53, 91, 176, 106, 69, 91, 91, 241, 51,\n\t\t219, 39, 146, 15, 27, 59, 169, 166, 190, 91, 254, 18, 154,\n\t\t13, 62, 183, 77, 73, 10, 54, 230, 146, 206, 180, 92, 135,\n\t\t152, 98, 205, 252, 53, 37, 159, 216, 108, 19, 42, 240, 166,\n\t\t0, 100, 232, 192, 238, 39, 220, 34, 174, 196, 9, 11, 215,\n\t\t164, 72, 77, 114, 144, 74, 54, 198, 160, 8, 171, 57, 244,\n\t\t172, 103, 30, 71, 236, 126, 157, 95, 255, 248, 252, 245, 139,\n\t\t121, 253, 246, 237, 235, 127, 238, 134, 79, 90, 225, 171,\n\t\t73, 17, 153, 232, 35, 53, 18, 170, 216, 24, 120, 160, 118,\n\t\t219, 193, 197, 25, 178, 205, 205, 249, 169, 68, 33, 27, 145,\n\t\t47, 164, 42, 121, 11, 198, 235, 108, 107, 237, 208, 255, 152,\n\t\t36, 38, 85, 129, 5, 237, 193, 214, 44, 16, 168, 235, 177,\n\t\t167, 81, 212, 243, 25, 232, 212, 254, 200, 40, 213, 30, 244,\n\t\t82, 94, 216, 178, 74, 101, 56, 214, 234, 132, 109, 66, 174,\n\t\t153, 112, 135, 199, 11, 249, 183, 125, 164, 114, 200, 227,\n\t\t125, 27, 211, 123, 145, 170, 176, 85, 20, 110, 134, 213, 241,\n\t\t218, 88, 243, 165, 170, 146, 156, 58, 58, 30, 156, 35, 65,\n\t\t94, 121, 163, 203, 100, 213, 100, 2, 205, 39, 88, 36, 11,\n\t\t74, 249, 19, 80, 56, 36, 87, 189, 136, 239, 231, 254, 13,\n\t\t6, 55, 220, 189, 51, 24, 82, 9, 63, 75, 16, 89, 94, 117, 165,\n\t\t228, 216, 249, 116, 239, 231, 246, 176, 121, 164, 246, 82,\n\t\t121, 169, 187, 145, 202, 247, 114, 12, 184, 221, 146, 59,\n\t\t205, 117, 101, 146, 207, 185, 208, 29, 241, 199, 23, 22, 50,\n\t\t28, 144, 66, 74, 115, 34, 39, 96, 121, 144, 187, 240, 23,\n\t\t190, 194, 172, 215, 25, 189, 208, 241, 57, 209, 245, 197,\n\t\t232, 99, 244, 203, 217, 132, 68, 245, 59, 28, 211, 227, 152,\n\t\t70, 146, 14, 243, 233, 219, 235, 151, 121, 183, 191, 28, 246,\n\t\t249, 52, 45, 105, 160, 91, 75, 19, 147, 255, 108, 34, 215,\n\t\t53, 197, 176, 40, 95, 212, 224, 72, 171, 89, 76, 95, 248,\n\t\t22, 6, 29, 195, 224, 128, 204, 78, 3, 71, 121, 71, 178, 138,\n\t\t143, 102, 160, 165, 199, 60, 153, 170, 164, 217, 32, 120,\n\t\t100, 50, 146, 97, 220, 202, 108, 49, 220, 0, 98, 25, 15, 59,\n\t\t209, 20, 117, 21, 200, 194, 59, 155, 170, 10, 205, 64, 151,\n\t\t83, 194, 71, 179, 81, 32, 187, 250, 156, 216, 8, 143, 112,\n\t\t251, 144, 6, 228, 87, 187, 24, 181, 30, 5, 149, 159, 57, 51,\n\t\t201, 133, 214, 95, 239, 60, 24, 192, 78, 6, 187, 190, 107,\n\t\t57, 192, 83, 180, 0, 182, 183, 214, 57, 151, 169, 178, 250,\n\t\t113, 246, 189, 219, 56, 51, 118, 248, 32, 99, 203, 101, 130,\n\t\t251, 196, 240, 137, 129, 105, 25, 244, 225, 122, 75, 37, 68,\n\t\t57, 9, 92, 147, 22, 10, 106, 203, 234, 67, 131, 58, 57, 218,\n\t\t43, 83, 71, 241, 77, 15, 103, 210, 104, 103, 49, 66, 25, 29,\n\t\t63, 11, 227, 134, 238, 146, 55, 69, 201, 103, 156, 249, 89,\n\t\t185, 207, 162, 16, 53, 148, 174, 90, 126, 158, 116, 159, 90,\n\t\t250, 111, 150, 72, 10, 229, 224, 243, 226, 241, 83, 254, 77,\n\t\t239, 167, 88, 68, 144, 98, 84, 159, 162, 168, 210, 213, 130,\n\t\t255, 140, 93, 20, 56, 170, 124, 187, 63, 215, 18, 239, 47,\n\t\t212, 43, 180, 10, 153, 182, 42, 104, 59, 200, 244, 61, 98,\n\t\t250, 233, 41, 244, 58, 110, 237, 126, 16, 171, 253, 6, 84,\n\t\t59, 162, 78, 99, 112, 63, 90, 227, 195, 141, 42, 63, 154,\n\t\t58, 190, 127, 89, 62, 127, 249, 231, 110, 214, 168, 155, 96,\n\t\t88, 235, 90, 156, 82, 176, 174, 135, 70, 154, 115, 203, 25,\n\t\t90, 63, 127, 25, 5, 164, 68, 183, 196, 76, 58, 69, 86, 213,\n\t\t148, 108, 33, 91, 94, 191, 204, 52, 181, 5, 144, 234, 142,\n\t\t47, 62, 103, 91, 122, 148, 146, 2, 167, 79, 178, 216, 118,\n\t\t151, 211, 19, 102, 94, 124, 142, 2, 190, 10, 243, 58, 206,\n\t\t94, 240, 4, 4, 204, 224, 115, 190, 174, 159, 86, 111, 28,\n\t\t11, 223, 152, 91, 148, 172, 152, 89, 139, 107, 61, 92, 190,\n\t\t100, 201, 225, 254, 75, 122, 125, 201, 188, 125, 73, 40, 184,\n\t\t62, 138, 166, 59, 84, 94, 42, 169, 145, 86, 26, 248, 198,\n\t\t189, 109, 33, 206, 248, 37, 196, 245, 20, 62, 195, 104, 57,\n\t\t159, 151, 38, 183, 104, 99, 110, 223, 112, 91, 185, 155, 111,\n\t\t72, 6, 205, 251, 75, 72, 213, 102, 159, 167, 232, 160, 181,\n\t\t11, 65, 115, 169, 74, 208, 12, 115, 120, 109, 47, 186, 171,\n\t\t185, 184, 45, 16, 107, 181, 91, 47, 42, 18, 219, 172, 29,\n\t\t119, 221, 55, 122, 60, 250, 243, 132, 18, 80, 150, 227, 20,\n\t\t184, 87, 164, 255, 140, 118, 160, 126, 153, 205, 174, 42,\n\t\t70, 235, 178, 41, 25, 221, 120, 73, 58, 93, 235, 229, 43,\n\t\t213, 124, 247, 141, 124, 61, 44, 218, 135, 250, 74, 218, 25,\n\t\t218, 129, 151, 157, 227, 38, 237, 61, 238, 166, 36, 39, 4,\n\t\t237, 96, 57, 6, 132, 223, 232, 191, 171, 209, 160, 111, 184,\n\t\t173, 217, 189, 23, 228, 94, 76, 45, 216, 152, 104, 164, 240,\n\t\t75, 207, 102, 231, 191, 26, 126, 171, 155, 238, 188, 148,\n\t\t188, 141, 53, 78, 242, 121, 88, 253, 129, 183, 121, 180, 235,\n\t\t150, 71, 91, 88, 176, 133, 130, 187, 127, 156, 172, 122, 225,\n\t\t199, 209, 75, 225, 75, 250, 83, 60, 218, 79, 146, 57, 222,\n\t\t78, 100, 25, 236, 230, 175, 93, 220, 240, 170, 245, 4, 23,\n\t\t224, 129, 76, 169, 205, 45, 217, 198, 90, 24, 24, 232, 200,\n\t\t210, 44, 164, 159, 101, 161, 164, 131, 43, 36, 71, 166, 173,\n\t\t241, 62, 219, 206, 182, 111, 182, 1, 180, 53, 190, 218, 138,\n\t\t47, 163, 164, 56, 106, 157, 179, 33, 51, 34, 166, 15, 0, 30,\n\t\t214, 96, 83, 245, 245, 137, 195, 176, 219, 74, 21, 157, 221,\n\t\t84, 72, 156, 58, 28, 223, 173, 150, 169, 21, 155, 83, 234,\n\t\t83, 19, 207, 135, 119, 164, 99, 100, 80, 95, 69, 196, 23,\n\t\t128, 78, 113, 74, 205, 194, 3, 19, 154, 45, 100, 139, 235,\n\t\t49, 236, 20, 152, 125, 161, 219, 22, 57, 58, 215, 101, 223,\n\t\t166, 212, 89, 155, 53, 165, 217, 230, 115, 210, 130, 153,\n\t\t6, 154, 15, 149, 42, 154, 171, 173, 96, 134, 106, 214, 193,\n\t\t137, 12, 125, 154, 26, 34, 117, 155, 82, 7, 6, 158, 15, 32,\n\t\t238, 247, 206, 194, 175, 75, 42, 38, 26, 157, 132, 221, 209,\n\t\t141, 160, 7, 144, 185, 108, 200, 240, 108, 41, 193, 125, 228,\n\t\t99, 171, 72, 85, 164, 71, 146, 150, 84, 93, 158, 42, 183,\n\t\t3, 187, 158, 146, 231, 45, 203, 8, 206, 68, 198, 107, 140,\n\t\t193, 182, 154, 14, 216, 137, 106, 173, 79, 185, 217, 24, 34,\n\t\t242, 9, 66, 107, 160, 201, 115, 129, 183, 243, 173, 39, 201,\n\t\t227, 99, 6, 205, 37, 165, 47, 121, 178, 28, 125, 47, 113,\n\t\t114, 164, 231, 132, 234, 217, 234, 195, 112, 30, 5, 244, 165,\n\t\t116, 240, 243, 232, 233, 124, 18, 13, 222, 139, 179, 182,\n\t\t95, 78, 163, 100, 119, 238, 122, 67, 189, 159, 158, 178, 61,\n\t\t99, 243, 249, 112, 96, 124, 254, 242, 235, 215, 221, 160,\n\t\t216, 69, 54, 251, 30, 198, 160, 0, 49, 122, 245, 249, 24,\n\t\t220, 217, 147, 5, 157, 43, 195, 154, 123, 111, 93, 202, 44,\n\t\t151, 110, 106, 182, 103, 102, 12, 158, 130, 59, 167, 138,\n\t\t107, 152, 100, 9, 103, 201, 239, 248, 121, 10, 142, 9, 11,\n\t\t198, 29, 2, 124, 187, 122, 134, 9, 238, 108, 2, 77, 121, 161,\n\t\t31, 131, 123, 124, 222, 250, 168, 81, 35, 179, 169, 140, 252,\n\t\t63, 26, 159, 195, 135, 234, 124, 184, 95, 105, 36, 185, 208,\n\t\t244, 16, 59, 124, 101, 147, 155, 42, 179, 163, 132, 152, 19,\n\t\t190, 87, 132, 153, 242, 177, 225, 2, 46, 172, 200, 195, 29,\n\t\t229, 53, 156, 54, 151, 225, 223, 195, 126, 123, 251, 63, 243,\n\t\t242, 250, 219, 235, 205, 57, 109, 23, 41, 188, 118, 31, 34,\n\t\t137, 212, 88, 1, 158, 235, 128, 114, 189, 97, 172, 140, 242,\n\t\t230, 78, 27, 196, 215, 11, 109, 122, 3, 3, 251, 254, 18, 132,\n\t\t253, 36, 209, 208, 117, 96, 146, 41, 45, 229, 202, 180, 202,\n\t\t208, 241, 67, 74, 32, 202, 98, 182, 35, 113, 175, 200, 241,\n\t\t177, 71, 155, 99, 247, 100, 138, 215, 192, 200, 184, 201,\n\t\t150, 156, 35, 115, 183, 118, 183, 94, 98, 228, 154, 197, 40,\n\t\t123, 179, 9, 149, 201, 101, 74, 108, 165, 6, 182, 253, 42,\n\t\t108, 104, 111, 125, 195, 53, 65, 131, 9, 148, 39, 71, 74,\n\t\t142, 52, 157, 199, 72, 134, 34, 93, 213, 24, 61, 51, 68, 27,\n\t\t163, 247, 84, 109, 23, 90, 92, 47, 147, 171, 30, 231, 169,\n\t\t124, 255, 253, 237, 219, 105, 254, 246, 249, 247, 93, 254,\n\t\t96, 248, 244, 255, 108, 178, 109, 175, 41, 157, 254, 60, 180,\n\t\t126, 104, 139, 201, 99, 179, 81, 176, 22, 178, 146, 192, 53,\n\t\t182, 213, 142, 225, 113, 102, 250, 243, 199, 20, 9, 25, 48,\n\t\t217, 138, 102, 42, 219, 148, 186, 233, 67, 166, 100, 181,\n\t\t121, 49, 137, 195, 61, 166, 58, 240, 42, 130, 24, 132, 106,\n\t\t24, 14, 176, 247, 10, 111, 135, 99, 174, 224, 192, 145, 249,\n\t\t98, 229, 197, 17, 129, 32, 91, 185, 52, 123, 235, 54, 12,\n\t\t63, 123, 25, 129, 208, 166, 242, 198, 12, 61, 106, 108, 61,\n\t\t200, 222, 200, 26, 29, 48, 108, 127, 221, 145, 149, 146, 35,\n\t\t88, 152, 46, 44, 170, 11, 11, 138, 55, 226, 238, 101, 220,\n\t\t11, 206, 71, 150, 45, 102, 137, 106, 56, 160, 83, 32, 111,\n\t\t149, 247, 122, 143, 38, 58, 217, 31, 249, 139, 143, 42, 141,\n\t\t45, 98, 238, 1, 221, 125, 55, 65, 154, 229, 250, 181, 200,\n\t\t100, 97, 151, 70, 97, 110, 179, 57, 172, 14, 144, 52, 122,\n\t\t89, 131, 115, 168, 85, 177, 15, 35, 61, 160, 252, 109, 81,\n\t\t110, 175, 52, 155, 107, 135, 229, 37, 73, 34, 70, 201, 135,\n\t\t57, 140, 61, 40, 190, 159, 82, 21, 106, 179, 235, 72, 213,\n\t\t70, 151, 36, 137, 247, 151, 36, 201, 130, 119, 229, 147, 221,\n\t\t10, 31, 17, 82, 95, 154, 245, 243, 32, 169, 100, 47, 53, 58,\n\t\t97, 149, 29, 113, 82, 72, 16, 193, 188, 18, 60, 142, 164,\n\t\t145, 117, 155, 136, 219, 115, 20, 116, 9, 70, 161, 198, 143,\n\t\t147, 247, 221, 38, 236, 70, 52, 253, 206, 188, 61, 216, 110,\n\t\t228, 199, 169, 255, 196, 104, 52, 67, 208, 199, 42, 13, 162,\n\t\t219, 80, 35, 106, 218, 136, 198, 248, 144, 198, 196, 163,\n\t\t98, 195, 57, 41, 191, 104, 244, 147, 132, 253, 172, 30, 53,\n\t\t233, 97, 240, 247, 33, 215, 42, 112, 39, 193, 11, 38, 251,\n\t\t107, 77, 97, 87, 88, 27, 212, 123, 169, 7, 45, 240, 182, 233,\n\t\t97, 246, 160, 243, 131, 103, 38, 115, 72, 203, 148, 197, 83,\n\t\t35, 1, 80, 122, 60, 39, 14, 140, 152, 220, 212, 245, 53, 64,\n\t\t64, 57, 142, 154, 236, 14, 66, 115, 21, 103, 161, 186, 127,\n\t\t12, 199, 137, 5, 37, 207, 47, 73, 226, 82, 86, 250, 198, 17,\n\t\t145, 164, 141, 165, 60, 147, 32, 20, 230, 159, 154, 248, 18,\n\t\t125, 181, 50, 241, 115, 92, 201, 0, 68, 147, 119, 48, 113,\n\t\t220, 141, 103, 181, 163, 119, 206, 62, 155, 209, 63, 221,\n\t\t153, 207, 231, 237, 124, 158, 252, 191, 231, 243, 127, 207,\n\t\t231, 31, 123, 212, 255, 143, 231, 243, 71, 64, 56, 255, 158,\n\t\t206, 255, 61, 157, 255, 183, 79, 231, 111, 223, 94, 79, 123,\n\t\t120, 135, 176, 66, 190, 244, 106, 169, 81, 125, 77, 214, 229,\n\t\t190, 24, 159, 130, 229, 136, 31, 254, 114, 68, 244, 135, 175,\n\t\t15, 249, 241, 174, 227, 195, 175, 227, 199, 17, 33, 110, 98,\n\t\t46, 240, 93, 244, 154, 129, 27, 22, 138, 245, 205, 23, 72,\n\t\t112, 35, 203, 3, 78, 174, 144, 128, 227, 132, 184, 25, 144,\n\t\t96, 205, 160, 220, 37, 139, 10, 159, 217, 79, 163, 32, 117,\n\t\t235, 99, 37, 147, 180, 84, 219, 90, 104, 75, 0, 181, 121,\n\t\t33, 25, 176, 53, 213, 245, 26, 156, 218, 234, 164, 151, 226,\n\t\t130, 8, 108, 89, 205, 55, 212, 159, 140, 94, 51, 10, 214,\n\t\t231, 24, 121, 208, 251, 139, 239, 217, 70, 159, 166, 16, 139,\n\t\t45, 84, 89, 31, 224, 192, 156, 228, 75, 89, 216, 96, 228,\n\t\t221, 223, 148, 151, 82, 109, 244, 49, 79, 242, 249, 176, 219,\n\t\t126, 255, 254, 254, 190, 188, 153, 223, 63, 191, 237, 72,\n\t\t204, 124, 216, 65, 255, 111, 242, 210, 104, 64, 167, 128,\n\t\t236, 202, 152, 250, 28, 105, 214, 202, 21, 148, 239, 54, 103,\n\t\t236, 55, 210, 136, 11, 109, 45, 40, 217, 86, 198, 176, 136,\n\t\t209, 230, 84, 58, 246, 228, 225, 31, 50, 197, 219, 156, 11,\n\t\t239, 123, 246, 16, 186, 148, 228, 10, 191, 23, 226, 33, 28,\n\t\t68, 57, 146, 1, 12, 158, 79, 50, 183, 91, 177, 209, 181, 162,\n\t\t5, 179, 41, 206, 230, 236, 57, 50, 60, 219, 22, 10, 68, 194,\n\t\t89, 143, 33, 113, 85, 130, 120, 1, 122, 8, 102, 194, 230,\n\t\t173, 88, 240, 188, 121, 32, 5, 33, 91, 146, 176, 3, 111, 48,\n\t\t182, 80, 177, 147, 134, 90, 39, 108, 42, 235, 81, 203, 182,\n\t\t55, 248, 30, 99, 182, 217, 121, 12, 65, 80, 202, 229, 100,\n\t\t171, 167, 101, 189, 120, 91, 233, 84, 41, 152, 77, 76, 54,\n\t\t210, 29, 153, 169, 54, 215, 202, 66, 209, 58, 141, 203, 81,\n\t\t146, 139, 141, 169, 84, 56, 26, 188, 141, 37, 198, 9, 108,\n\t\t252, 205, 210, 32, 69, 120, 164, 183, 169, 58, 156, 81, 58,\n\t\t156, 3, 198, 215, 102, 75, 228, 45, 141, 82, 130, 223, 151,\n\t\t156, 99, 140, 54, 196, 122, 242, 53, 219, 214, 56, 192, 31,\n\t\t17, 27, 92, 0, 104, 24, 58, 17, 136, 100, 193, 166, 10, 175,\n\t\t161, 183, 213, 187, 142, 13, 195, 150, 55, 5, 205, 219, 10,\n\t\t71, 90, 181, 41, 103, 48, 187, 86, 239, 251, 132, 218, 231,\n\t\t58, 149, 98, 99, 41, 65, 143, 231, 24, 185, 28, 206, 213,\n\t\t132, 64, 17, 18, 7, 159, 219, 90, 160, 13, 229, 176, 77, 84,\n\t\t225, 223, 209, 246, 38, 105, 240, 136, 138, 26, 37, 232, 130,\n\t\t204, 124, 28, 164, 31, 21, 90, 148, 240, 35, 235, 75, 165,\n\t\t181, 93, 193, 225, 68, 79, 201, 29, 14, 213, 90, 108, 72,\n\t\t105, 202, 54, 130, 64, 70, 11, 230, 16, 108, 206, 141, 38,\n\t\t147, 228, 224, 84, 153, 84, 186, 91, 192, 20, 162, 199, 143,\n\t\t19, 209, 63, 207, 223, 190, 254, 126, 252, 250, 101, 55, 212,\n\t\t226, 46, 190, 56, 230, 173, 151, 137, 38, 167, 28, 45, 200,\n\t\t173, 133, 107, 86, 25, 132, 153, 112, 150, 151, 86, 61, 69,\n\t\t127, 196, 111, 83, 47, 167, 206, 209, 67, 90, 104, 64, 169,\n\t\t134, 75, 198, 109, 205, 246, 142, 242, 159, 137, 85, 216,\n\t\t165, 210, 98, 111, 105, 104, 31, 30, 156, 199, 170, 29, 115,\n\t\t188, 75, 107, 186, 60, 209, 68, 75, 191, 144, 204, 144, 74,\n\t\t65, 163, 169, 38, 27, 226, 25, 235, 83, 233, 249, 248, 244,\n\t\t158, 190, 12, 70, 29, 58, 105, 252, 126, 165, 208, 184, 217,\n\t\t172, 247, 49, 66, 139, 226, 198, 46, 172, 130, 251, 241, 25,\n\t\t155, 103, 176, 198, 152, 203, 57, 38, 112, 6, 35, 103, 27,\n\t\t160, 125, 62, 88, 31, 161, 215, 100, 56, 176, 93, 194, 2,\n\t\t155, 195, 68, 51, 66, 105, 253, 156, 28, 66, 139, 30, 221,\n\t\t216, 63, 123, 189, 20, 134, 178, 68, 237, 213, 188, 203, 136,\n\t\t146, 69, 120, 99, 65, 212, 157, 207, 22, 195, 54, 70, 235,\n\t\t218, 92, 117, 77, 174, 66, 60, 237, 19, 169, 102, 19, 153,\n\t\t54, 205, 121, 61, 244, 161, 218, 184, 161, 104, 187, 83, 187,\n\t\t15, 202, 169, 57, 45, 175, 167, 93, 116, 75, 124, 16, 212,\n\t\t92, 98, 180, 18, 223, 8, 117, 166, 216, 94, 123, 194, 86,\n\t\t65, 66, 92, 98, 179, 33, 160, 192, 103, 155, 72, 222, 130,\n\t\t109, 190, 71, 206, 5, 74, 25, 184, 166, 221, 22, 244, 64,\n\t\t200, 216, 127, 32, 253, 46, 97, 52, 155, 113, 59, 189, 154,\n\t\t20, 60, 9, 185, 11, 224, 140, 38, 163, 162, 231, 186, 152,\n\t\t220, 154, 141, 101, 74, 52, 135, 132, 62, 143, 75, 181, 34,\n\t\t70, 107, 50, 110, 37, 151, 78, 90, 17, 173, 135, 84, 227,\n\t\t48, 103, 155, 224, 105, 213, 91, 233, 149, 122, 39, 174, 130,\n\t\t214, 128, 230, 219, 140, 0, 152, 106, 123, 63, 167, 140, 64,\n\t\t180, 7, 195, 116, 166, 31, 130, 163, 33, 126, 103, 192, 90,\n\t\t167, 25, 94, 84, 65, 170, 177, 175, 104, 151, 32, 59, 53,\n\t\t134, 170, 218, 35, 32, 10, 192, 187, 70, 178, 4, 1, 14, 206,\n\t\t230, 224, 242, 92, 108, 205, 189, 214, 73, 161, 52, 188, 179,\n\t\t213, 119, 236, 249, 132, 70, 226, 47, 199, 153, 13, 78, 137,\n\t\t3, 251, 1, 65, 231, 112, 209, 110, 157, 99, 233, 141, 173,\n\t\t23, 196, 219, 88, 31, 58, 79, 250, 60, 239, 52, 135, 129,\n\t\t247, 14, 104, 73, 243, 244, 198, 236, 121, 255, 187, 231,\n\t\t135, 195, 95, 153, 32, 138, 109, 153, 148, 220, 28, 248, 10,\n\t\t90, 88, 67, 116, 121, 246, 193, 166, 8, 189, 53, 218, 128,\n\t\t86, 206, 76, 131, 62, 80, 141, 61, 220, 235, 178, 129, 77,\n\t\t189, 213, 49, 216, 141, 67, 119, 6, 68, 174, 242, 224, 64,\n\t\t255, 144, 24, 5, 199, 228, 245, 14, 246, 139, 239, 11, 45,\n\t\t140, 30, 122, 124, 35, 209, 207, 80, 134, 91, 160, 138, 68,\n\t\t91, 171, 203, 28, 34, 199, 29, 66, 22, 19, 27, 70, 145, 137,\n\t\t219, 77, 179, 209, 187, 156, 15, 219, 201, 250, 113, 32, 220,\n\t\t235, 242, 246, 229, 151, 215, 157, 246, 31, 31, 144, 245,\n\t\t123, 184, 234, 143, 41, 164, 75, 188, 135, 43, 24, 139, 179,\n\t\t9, 101, 96, 194, 221, 194, 71, 124, 132, 35, 202, 151, 94,\n\t\t163, 81, 112, 42, 41, 131, 73, 180, 41, 186, 11, 92, 139,\n\t\t107, 220, 11, 54, 40, 168, 150, 87, 0, 25, 151, 216, 22, 231,\n\t\t120, 7, 140, 51, 181, 115, 14, 135, 7, 181, 216, 33, 98, 236,\n\t\t26, 32, 51, 157, 232, 5, 216, 199, 95, 186, 203, 35, 168,\n\t\t226, 199, 29, 252, 235, 231, 111, 111, 230, 237, 255, 252,\n\t\t241, 249, 203, 63, 190, 127, 62, 29, 247, 118, 94, 220, 129,\n\t\t234, 111, 128, 98, 99, 178, 46, 212, 41, 5, 111, 75, 245,\n\t\t51, 89, 37, 41, 229, 201, 219, 224, 91, 205, 240, 52, 64,\n\t\t179, 76, 54, 5, 215, 215, 99, 143, 120, 239, 126, 70, 8, 64,\n\t\t41, 152, 71, 170, 77, 158, 217, 42, 109, 225, 136, 248, 104,\n\t\t29, 105, 240, 230, 250, 178, 197, 0, 113, 167, 97, 91, 146,\n\t\t77, 72, 219, 115, 118, 156, 87, 234, 66, 5, 140, 111, 233,\n\t\t96, 87, 212, 130, 106, 75, 117, 157, 3, 116, 67, 197, 224,\n\t\t157, 147, 183, 60, 4, 189, 227, 103, 86, 78, 75, 11, 177,\n\t\t69, 124, 239, 1, 251, 88, 103, 19, 132, 134, 244, 113, 232,\n\t\t129, 79, 207, 242, 148, 66, 42, 182, 98, 83, 58, 37, 219,\n\t\t122, 202, 83, 164, 9, 191, 78, 164, 212, 150, 82, 232, 169,\n\t\t61, 89, 31, 90, 63, 83, 45, 107, 9, 51, 217, 22, 46, 178,\n\t\t120, 82, 133, 200, 188, 173, 52, 196, 43, 12, 69, 232, 226,\n\t\t112, 28, 116, 159, 252, 108, 232, 19, 131, 29, 185, 27, 168,\n\t\t107, 179, 173, 54, 254, 18, 58, 98, 59, 189, 236, 176, 251,\n\t\t104, 99, 117, 254, 0, 175, 12, 214, 78, 24, 105, 45, 203,\n\t\t201, 113, 26, 54, 139, 156, 58, 225, 218, 26, 103, 112, 115,\n\t\t54, 178, 145, 168, 97, 1, 75, 229, 93, 157, 106, 181, 45,\n\t\t198, 169, 59, 158, 60, 187, 131, 141, 60, 115, 12, 188, 131,\n\t\t61, 7, 222, 75, 4, 156, 70, 4, 102, 186, 232, 73, 215, 9,\n\t\t161, 102, 61, 38, 171, 51, 37, 14, 25, 72, 54, 230, 144, 97,\n\t\t11, 120, 215, 56, 53, 183, 208, 122, 19, 142, 185, 217, 8,\n\t\t223, 152, 70, 148, 122, 188, 68, 162, 37, 176, 182, 16, 166,\n\t\t171, 238, 127, 127, 241, 41, 77, 177, 150, 195, 172, 196,\n\t\t148, 74, 184, 167, 228, 148, 28, 114, 120, 197, 85, 57, 232,\n\t\t25, 81, 44, 107, 208, 105, 123, 204, 69, 143, 243, 85, 190,\n\t\t206, 255, 220, 3, 49, 199, 17, 125, 158, 93, 182, 164, 42,\n\t\t134, 102, 59, 173, 14, 80, 3, 162, 100, 210, 232, 113, 150,\n\t\t196, 97, 89, 135, 16, 32, 2, 135, 17, 116, 135, 64, 107, 20,\n\t\t96, 230, 146, 103, 15, 97, 178, 48, 118, 2, 166, 5, 111, 29,\n\t\t141, 57, 151, 108, 242, 231, 53, 185, 112, 230, 224, 187,\n\t\t152, 241, 18, 222, 182, 74, 202, 41, 153, 186, 153, 70, 29,\n\t\t207, 207, 41, 216, 150, 65, 190, 164, 16, 177, 169, 219, 216,\n\t\t217, 241, 92, 37, 30, 88, 53, 128, 106, 51, 45, 187, 72, 223,\n\t\t245, 164, 144, 173, 137, 220, 40, 56, 240, 48, 73, 219, 60,\n\t\t239, 60, 210, 188, 157, 117, 174, 128, 241, 242, 236, 93,\n\t\t180, 141, 137, 6, 146, 238, 67, 211, 23, 164, 43, 85, 26,\n\t\t166, 248, 146, 24, 64, 44, 250, 144, 53, 135, 18, 81, 224,\n\t\t208, 66, 112, 60, 147, 122, 226, 91, 132, 215, 200, 147, 29,\n\t\t139, 140, 51, 150, 26, 141, 51, 199, 153, 11, 18, 219, 123,\n\t\t135, 131, 175, 179, 47, 193, 250, 74, 99, 66, 63, 113, 75,\n\t\t71, 211, 115, 150, 0, 115, 45, 192, 67, 243, 41, 209, 16,\n\t\t9, 117, 194, 131, 60, 242, 59, 55, 63, 31, 22, 125, 29, 249,\n\t\t60, 26, 122, 207, 90, 143, 212, 39, 62, 148, 158, 227, 163,\n\t\t6, 2, 111, 190, 15, 168, 0, 105, 90, 173, 77, 213, 118, 95,\n\t\t233, 134, 54, 135, 144, 10, 171, 122, 75, 234, 208, 106, 167,\n\t\t206, 158, 99, 154, 159, 67, 100, 231, 24, 56, 37, 168, 103,\n\t\t67, 139, 192, 36, 175, 5, 150, 103, 163, 33, 78, 199, 221,\n\t\t133, 35, 73, 74, 152, 83, 225, 236, 138, 42, 206, 68, 239,\n\t\t154, 165, 201, 60, 208, 146, 236, 201, 30, 244, 161, 141,\n\t\t108, 96, 7, 245, 178, 115, 210, 122, 106, 164, 176, 138, 75,\n\t\t152, 148, 236, 204, 58, 146, 7, 110, 122, 68, 188, 136, 168,\n\t\t42, 5, 194, 230, 71, 150, 48, 67, 46, 48, 169, 108, 104, 142,\n\t\t236, 116, 71, 198, 16, 217, 233, 212, 174, 157, 94, 44, 209,\n\t\t209, 201, 108, 14, 141, 20, 37, 238, 102, 20, 27, 46, 63,\n\t\t109, 143, 185, 232, 177, 238, 115, 124, 59, 127, 251, 250,\n\t\t197, 48, 180, 231, 77, 220, 235, 88, 183, 248, 158, 224, 155,\n\t\t100, 108, 185, 167, 168, 113, 167, 15, 161, 207, 209, 124,\n\t\t21, 44, 18, 144, 23, 31, 225, 41, 198, 199, 158, 169, 104,\n\t\t71, 248, 178, 161, 25, 33, 57, 220, 209, 146, 220, 228, 145,\n\t\t232, 76, 108, 228, 188, 45, 136, 200, 44, 203, 230, 251, 158,\n\t\t218, 228, 62, 151, 134, 225, 135, 222, 36, 82, 194, 227, 182,\n\t\t28, 14, 82, 79, 115, 241, 134, 55, 168, 63, 182, 148, 34,\n\t\t82, 231, 103, 172, 40, 87, 125, 120, 19, 165, 58, 182, 191,\n\t\t23, 164, 245, 37, 150, 110, 59, 152, 135, 228, 21, 199, 27,\n\t\t238, 27, 231, 18, 131, 96, 219, 56, 180, 216, 215, 91, 92,\n\t\t63, 119, 248, 52, 208, 15, 220, 125, 220, 163, 218, 177, 70,\n\t\t122, 243, 201, 173, 164, 71, 215, 91, 113, 5, 110, 73, 30,\n\t\t239, 161, 220, 144, 188, 205, 219, 94, 179, 127, 108, 185,\n\t\t163, 68, 254, 254, 84, 87, 238, 153, 110, 98, 215, 126, 108,\n\t\t130, 168, 76, 253, 248, 151, 198, 221, 190, 87, 223, 95, 2,\n\t\t189, 154, 203, 182, 239, 5, 245, 239, 110, 198, 221, 120,\n\t\t52, 87, 3, 242, 239, 153, 6, 110, 203, 234, 213, 24, 92, 89,\n\t\t125, 158, 113, 37, 94, 117, 224, 45, 126, 156, 248, 186, 42,\n\t\t67, 73, 97, 177, 169, 23, 63, 212, 71, 207, 231, 216, 247,\n\t\t23, 82, 6, 43, 239, 199, 93, 137, 231, 221, 118, 249, 41,\n\t\t83, 219, 141, 113, 120, 61, 12, 255, 206, 105, 224, 206, 218,\n\t\t113, 57, 4, 71, 193, 211, 174, 124, 253, 50, 31, 191, 238,\n\t\t77, 197, 29, 175, 248, 38, 239, 58, 112, 56, 98, 231, 253,\n\t\t187, 210, 21, 66, 211, 186, 148, 176, 227, 220, 67, 70, 142,\n\t\t89, 106, 57, 50, 162, 109, 203, 105, 41, 149, 67, 10, 229,\n\t\t115, 150, 0, 127, 205, 100, 208, 240, 254, 113, 172, 193,\n\t\t253, 227, 66, 163, 87, 86, 155, 139, 203, 172, 156, 98, 67,\n\t\t139, 84, 141, 2, 231, 32, 63, 139, 31, 158, 98, 27, 37, 71,\n\t\t82, 130, 125, 42, 121, 198, 78, 114, 225, 109, 139, 24, 115,\n\t\t159, 90, 230, 141, 71, 211, 138, 45, 190, 132, 73, 246, 56,\n\t\t39, 211, 147, 117, 62, 149, 179, 39, 19, 200, 231, 131, 98,\n\t\t112, 110, 193, 177, 46, 193, 175, 46, 209, 190, 46, 80, 175,\n\t\t38, 70, 223, 204, 80, 19, 227, 108, 98, 229, 148, 20, 31,\n\t\t37, 82, 179, 36, 248, 150, 73, 171, 163, 239, 221, 129, 198,\n\t\t134, 61, 145, 169, 166, 50, 165, 104, 43, 217, 57, 189, 216,\n\t\t26, 123, 156, 122, 101, 51, 174, 103, 219, 187, 11, 115, 214,\n\t\t224, 90, 103, 73, 183, 245, 133, 236, 207, 18, 225, 62, 136,\n\t\t182, 22, 186, 52, 217, 18, 200, 174, 232, 197, 50, 212, 3,\n\t\t105, 232, 169, 181, 208, 60, 246, 173, 216, 45, 89, 108, 245,\n\t\t141, 236, 178, 138, 8, 81, 230, 144, 160, 10, 249, 86, 206,\n\t\t70, 94, 129, 81, 64, 127, 116, 27, 24, 137, 209, 220, 190,\n\t\t115, 238, 214, 231, 20, 167, 106, 83, 40, 181, 112, 88, 66,\n\t\t224, 252, 239, 14, 87, 0, 119, 140, 244, 203, 218, 167, 119,\n\t\t229, 48, 181, 85, 20, 68, 18, 14, 255, 237, 130, 24, 108,\n\t\t236, 137, 33, 150, 96, 217, 178, 181, 7, 55, 73, 177, 105,\n\t\t32, 223, 134, 20, 120, 39, 16, 254, 81, 239, 138, 117, 178,\n\t\t83, 30, 156, 109, 129, 65, 176, 144, 248, 165, 103, 130, 118,\n\t\t66, 110, 255, 254, 18, 90, 147, 68, 63, 50, 153, 83, 130,\n\t\t196, 10, 254, 111, 68, 254, 204, 138, 255, 59, 142, 47, 192,\n\t\t140, 81, 186, 98, 9, 235, 161, 128, 25, 63, 73, 157, 251,\n\t\t58, 255, 211, 188, 46, 123, 21, 237, 9, 85, 253, 67, 198,\n\t\t153, 191, 238, 101, 228, 75, 111, 248, 254, 2, 89, 166, 193,\n\t\t230, 217, 77, 45, 145, 72, 228, 201, 231, 104, 3, 208, 8,\n\t\t248, 123, 62, 249, 12, 52, 143, 210, 38, 249, 230, 33, 182,\n\t\t69, 253, 72, 28, 221, 113, 11, 8, 45, 62, 97, 255, 58, 243,\n\t\t14, 218, 8, 114, 138, 130, 250, 81, 21, 112, 190, 142, 130,\n\t\t153, 179, 184, 216, 171, 140, 121, 223, 3, 64, 121, 132, 148,\n\t\t200, 206, 147, 150, 212, 32, 33, 71, 100, 145, 250, 35, 175,\n\t\t153, 52, 201, 56, 222, 120, 18, 84, 55, 54, 174, 28, 136,\n\t\t61, 118, 54, 23, 170, 192, 229, 99, 147, 64, 46, 219, 254,\n\t\t44, 86, 153, 152, 115, 114, 175, 39, 54, 217, 167, 239, 203,\n\t\t114, 122, 251, 175, 221, 46, 107, 218, 83, 219, 223, 64, 253,\n\t\t166, 49, 185, 81, 236, 173, 139, 151, 90, 32, 21, 220, 81,\n\t\t50, 198, 79, 162, 103, 232, 181, 171, 122, 152, 218, 212,\n\t\t102, 90, 211, 177, 233, 239, 91, 34, 3, 24, 222, 1, 250, 238,\n\t\t91, 154, 57, 203, 173, 122, 56, 109, 198, 47, 70, 127, 54,\n\t\t227, 98, 20, 141, 147, 140, 158, 53, 75, 150, 99, 245, 211,\n\t\t197, 111, 250, 59, 87, 34, 6, 119, 152, 235, 152, 218, 224,\n\t\t250, 201, 85, 158, 23, 144, 91, 213, 78, 163, 196, 104, 145,\n\t\t148, 123, 158, 34, 214, 223, 168, 116, 123, 185, 252, 231,\n\t\t103, 145, 225, 15, 198, 153, 149, 111, 198, 51, 219, 204,\n\t\t201, 140, 3, 35, 5, 202, 47, 228, 149, 93, 232, 180, 30, 113,\n\t\t193, 227, 48, 164, 101, 249, 252, 251, 233, 243, 201, 236,\n\t\t54, 45, 211, 96, 217, 136, 65, 85, 127, 4, 21, 104, 160, 83,\n\t\t144, 64, 201, 93, 86, 137, 150, 75, 86, 9, 15, 25, 254, 119,\n\t\t170, 27, 239, 27, 95, 246, 254, 146, 98, 152, 66, 73, 179,\n\t\t222, 124, 205, 99, 89, 207, 58, 253, 213, 39, 34, 19, 250,\n\t\t47, 221, 253, 240, 161, 219, 127, 168, 113, 207, 187, 198,\n\t\t221, 129, 233, 172, 89, 50, 189, 252, 181, 250, 126, 168,\n\t\t186, 47, 33, 77, 17, 91, 3, 122, 255, 15, 116, 209, 71, 31,\n\t\t135, 187, 99, 42, 254, 19, 55, 63, 124, 248, 238, 15, 221,\n\t\t192, 167, 147, 57, 253, 199, 247, 215, 111, 251, 73, 236,\n\t\t193, 166, 26, 56, 249, 132, 64, 235, 62, 210, 119, 204, 79,\n\t\t137, 132, 54, 43, 222, 93, 196, 113, 190, 205, 93, 196, 113,\n\t\t112, 245, 121, 31, 118, 164, 75, 23, 103, 158, 174, 106, 183,\n\t\t69, 89, 223, 86, 234, 116, 249, 112, 70, 35, 15, 165, 219,\n\t\t28, 227, 20, 195, 97, 46, 54, 195, 53, 141, 244, 178, 90,\n\t\t75, 154, 72, 151, 172, 149, 108, 123, 155, 120, 126, 182,\n\t\t100, 183, 204, 38, 219, 94, 104, 189, 245, 206, 38, 154, 210,\n\t\t122, 178, 201, 211, 148, 208, 108, 199, 86, 122, 178, 157,\n\t\t230, 41, 254, 196, 198, 95, 64, 62, 154, 141, 217, 103, 104,\n\t\t83, 124, 171, 201, 36, 219, 216, 151, 61, 74, 228, 105, 103,\n\t\t132, 118, 197, 204, 90, 42, 111, 195, 144, 198, 156, 107,\n\t\t226, 76, 186, 236, 128, 154, 82, 34, 38, 85, 111, 83, 242,\n\t\t105, 174, 221, 182, 218, 17, 44, 17, 92, 36, 197, 62, 145,\n\t\t109, 214, 17, 213, 133, 168, 52, 159, 186, 69, 162, 153, 124,\n\t\t57, 204, 206, 198, 206, 91, 98, 164, 171, 55, 151, 215, 0,\n\t\t7, 220, 63, 226, 205, 83, 18, 32, 22, 42, 56, 114, 221, 222,\n\t\t95, 98, 13, 150, 105, 177, 138, 77, 57, 121, 110, 189, 82,\n\t\t146, 39, 3, 35, 214, 214, 113, 109, 12, 5, 173, 218, 42, 183,\n\t\t94, 7, 199, 36, 105, 170, 158, 110, 154, 28, 124, 233, 209,\n\t\t5, 236, 92, 71, 215, 108, 112, 116, 140, 79, 192, 217, 165,\n\t\t30, 194, 228, 108, 224, 157, 63, 35, 55, 3, 206, 90, 109,\n\t\t2, 225, 196, 37, 242, 60, 105, 191, 36, 16, 210, 188, 45,\n\t\t79, 173, 205, 203, 152, 103, 119, 62, 86, 216, 174, 173, 94,\n\t\t43, 86, 239, 156, 5, 135, 178, 21, 90, 125, 11, 99, 91, 33,\n\t\t154, 38, 228, 41, 100, 111, 43, 66, 75, 232, 115, 118, 54,\n\t\t100, 223, 51, 252, 207, 212, 183, 212, 122, 12, 135, 128,\n\t\t123, 55, 207, 226, 195, 105, 199, 40, 224, 198, 123, 188,\n\t\t10, 253, 190, 188, 254, 151, 185, 77, 246, 148, 210, 223,\n\t\t237, 71, 172, 222, 214, 201, 151, 54, 43, 210, 112, 87, 168,\n\t\t60, 57, 142, 3, 62, 45, 5, 96, 115, 77, 222, 213, 121, 68,\n\t\t126, 107, 0, 121, 92, 145, 97, 100, 111, 124, 45, 241, 103,\n\t\t19, 28, 131, 28, 1, 106, 112, 0, 177, 234, 60, 185, 158, 249,\n\t\t36, 210, 232, 203, 247, 187, 19, 221, 14, 67, 231, 246, 68,\n\t\t119, 115, 63, 123, 157, 226, 254, 172, 58, 191, 78, 107, 183,\n\t\t200, 71, 59, 105, 239, 225, 72, 11, 218, 35, 30, 139, 242,\n\t\t132, 152, 35, 148, 93, 64, 193, 13, 102, 142, 114, 152, 31,\n\t\t178, 105, 60, 115, 164, 205, 255, 188, 215, 180, 79, 120,\n\t\t93, 77, 12, 63, 103, 5, 248, 241, 149, 104, 141, 127, 46,\n\t\t133, 131, 181, 85, 19, 46, 54, 164, 234, 234, 68, 159, 146,\n\t\t159, 128, 99, 18, 243, 10, 12, 48, 198, 76, 96, 60, 213, 13,\n\t\t134, 2, 0, 218, 215, 107, 145, 255, 138, 139, 90, 31, 55,\n\t\t27, 215, 184, 197, 248, 236, 36, 82, 157, 191, 44, 166, 58,\n\t\t14, 250, 196, 103, 47, 255, 31, 123, 239, 158, 228, 198, 141,\n\t\t108, 15, 255, 207, 85, 212, 6, 10, 129, 204, 196, 115, 17,\n\t\t189, 136, 118, 89, 51, 84, 124, 53, 150, 67, 109, 115, 126,\n\t\t211, 171, 255, 34, 79, 38, 64, 54, 217, 34, 123, 44, 217,\n\t\t119, 238, 141, 137, 144, 154, 44, 176, 170, 240, 6, 18, 249,\n\t\t56, 199, 222, 119, 89, 134, 117, 20, 98, 38, 92, 188, 111,\n\t\t124, 29, 95, 206, 197, 121, 231, 203, 40, 88, 28, 183, 239,\n\t\t240, 236, 161, 104, 13, 128, 214, 154, 152, 88, 216, 59, 38,\n\t\t40, 22, 180, 49, 49, 68, 221, 125, 74, 46, 247, 135, 203,\n\t\t175, 159, 126, 249, 214, 96, 185, 97, 223, 185, 55, 88, 254,\n\t\t205, 25, 245, 199, 102, 240, 235, 19, 75, 11, 180, 112, 141,\n\t\t129, 76, 7, 109, 206, 12, 246, 101, 95, 203, 8, 164, 202,\n\t\t213, 227, 158, 102, 24, 203, 12, 115, 202, 3, 138, 155, 146,\n\t\t31, 59, 197, 185, 212, 252, 84, 189, 103, 143, 217, 240, 8,\n\t\t38, 125, 123, 133, 38, 184, 30, 54, 7, 126, 120, 251, 81,\n\t\t124, 165, 5, 94, 235, 190, 230, 28, 242, 146, 161, 25, 7,\n\t\t249, 255, 152, 192, 35, 214, 101, 92, 55, 47, 201, 153, 56,\n\t\t254, 73, 82, 94, 184, 113, 232, 251, 136, 138, 90, 102, 116,\n\t\t212, 191, 165, 10, 102, 199, 152, 26, 95, 206, 193, 102, 239,\n\t\t124, 41, 231, 192, 32, 173, 64, 54, 176, 249, 12, 202, 174,\n\t\t17, 71, 51, 176, 168, 70, 196, 205, 72, 208, 125, 32, 238,\n\t\t35, 187, 145, 155, 135, 208, 188, 253, 0, 27, 217, 212, 149,\n\t\t223, 143, 18, 60, 62, 127, 253, 244, 173, 129, 121, 71, 147,\n\t\t156, 75, 3, 176, 136, 142, 144, 156, 217, 224, 100, 205, 253,\n\t\t64, 224, 167, 143, 253, 142, 42, 194, 40, 32, 13, 193, 73,\n\t\t47, 213, 150, 45, 164, 174, 186, 219, 30, 82, 168, 134, 148,\n\t\t170, 156, 42, 133, 94, 184, 111, 120, 91, 174, 192, 94, 238,\n\t\t197, 220, 142, 56, 230, 128, 8, 6, 201, 142, 5, 0, 191, 10,\n\t\t160, 243, 85, 10, 146, 101, 75, 33, 53, 73, 6, 141, 102, 174,\n\t\t74, 28, 16, 208, 143, 97, 14, 252, 24, 206, 97, 224, 224,\n\t\t194, 49, 240, 176, 173, 210, 76, 94, 157, 164, 83, 53, 5,\n\t\t192, 116, 182, 18, 152, 224, 227, 226, 9, 42, 45, 74, 209,\n\t\t189, 7, 114, 35, 236, 90, 24, 237, 192, 221, 200, 139, 33,\n\t\t112, 72, 16, 226, 83, 229, 16, 9, 251, 20, 147, 33, 132, 176,\n\t\t46, 179, 53, 193, 111, 191, 128, 152, 252, 77, 229, 247, 171,\n\t\t22, 172, 27, 69, 247, 28, 239, 33, 97, 177, 25, 126, 52, 90,\n\t\t11, 136, 220, 48, 189, 6, 149, 144, 205, 68, 95, 26, 220,\n\t\t70, 182, 184, 212, 32, 250, 82, 221, 36, 37, 154, 73, 191,\n\t\t199, 44, 128, 54, 232, 198, 32, 215, 114, 79, 58, 238, 26,\n\t\t98, 40, 160, 152, 130, 79, 80, 13, 210, 91, 50, 93, 52, 112,\n\t\t52, 17, 27, 41, 93, 206, 41, 91, 9, 45, 166, 210, 29, 21,\n\t\t88, 18, 47, 20, 154, 10, 249, 44, 230, 34, 147, 128, 141,\n\t\t42, 91, 13, 141, 68, 215, 171, 80, 139, 20, 108, 30, 112,\n\t\t80, 90, 5, 122, 224, 124, 78, 32, 10, 90, 210, 211, 218, 90,\n\t\t104, 49, 215, 71, 27, 215, 247, 111, 160, 135, 35, 177, 202,\n\t\t156, 178, 17, 7, 120, 174, 1, 58, 201, 224, 154, 168, 132,\n\t\t38, 81, 87, 177, 172, 210, 245, 116, 79, 177, 32, 38, 56,\n\t\t28, 117, 192, 148, 10, 124, 162, 98, 33, 219, 212, 224, 28,\n\t\t181, 102, 10, 17, 22, 51, 169, 64, 96, 218, 86, 10, 61, 11,\n\t\t240, 92, 67, 20, 248, 138, 89, 176, 11, 166, 67, 233, 164,\n\t\t103, 155, 22, 74, 66, 203, 107, 138, 81, 214, 199, 208, 45,\n\t\t60, 22, 252, 101, 39, 239, 224, 7, 176, 137, 255, 248, 245,\n\t\t249, 229, 229, 102, 54, 223, 106, 111, 207, 202, 57, 29, 155,\n\t\t13, 136, 86, 5, 173, 129, 118, 26, 159, 98, 144, 160, 126,\n\t\t149, 50, 128, 39, 95, 12, 37, 217, 126, 139, 136, 160, 227,\n\t\t12, 7, 54, 235, 128, 139, 159, 161, 97, 53, 76, 101, 123,\n\t\t118, 179, 203, 183, 247, 142, 55, 225, 158, 215, 191, 70,\n\t\t95, 120, 120, 146, 154, 2, 165, 133, 187, 246, 207, 86, 67,\n\t\t161, 8, 109, 124, 40, 201, 248, 4, 50, 116, 185, 50, 136,\n\t\t27, 217, 221, 112, 216, 162, 80, 109, 221, 19, 11, 113, 53,\n\t\t240, 42, 253, 76, 182, 112, 87, 64, 224, 194, 133, 18, 239,\n\t\t170, 221, 164, 28, 248, 8, 219, 151, 210, 243, 110, 207, 194,\n\t\t35, 71, 95, 150, 105, 91, 71, 65, 214, 81, 146, 238, 94, 230,\n\t\t34, 161, 69, 104, 124, 12, 147, 100, 245, 47, 187, 149, 131,\n\t\t22, 125, 87, 233, 245, 176, 233, 59, 69, 79, 104, 94, 12,\n\t\t45, 133, 158, 229, 188, 24, 158, 249, 248, 124, 224, 127,\n\t\t252, 245, 211, 111, 190, 73, 188, 107, 49, 206, 183, 138,\n\t\t223, 179, 8, 147, 218, 34, 229, 145, 196, 241, 195, 37, 28,\n\t\t61, 74, 232, 237, 12, 212, 114, 108, 23, 172, 59, 132, 123,\n\t\t205, 217, 231, 4, 214, 30, 215, 117, 137, 184, 89, 239, 29,\n\t\t114, 204, 248, 116, 229, 18, 59, 7, 9, 172, 163, 249, 184,\n\t\t114, 130, 35, 157, 155, 6, 220, 138, 101, 202, 121, 15, 177,\n\t\t53, 8, 119, 189, 251, 227, 173, 124, 235, 88, 145, 111, 130,\n\t\t66, 206, 109, 28, 17, 185, 253, 23, 156, 22, 62, 176, 232,\n\t\t190, 62, 137, 74, 52, 164, 67, 171, 132, 212, 242, 174, 45,\n\t\t31, 34, 60, 212, 240, 185, 189, 1, 32, 4, 20, 222, 37, 200,\n\t\t159, 37, 76, 203, 157, 63, 141, 53, 4, 143, 31, 116, 122,\n\t\t156, 141, 119, 246, 229, 198, 122, 119, 99, 188, 227, 164,\n\t\t171, 244, 118, 54, 55, 94, 91, 189, 175, 140, 222, 31, 239,\n\t\t171, 119, 253, 153, 242, 141, 198, 246, 98, 74, 52, 61, 92,\n\t\t255, 101, 61, 242, 96, 100, 188, 62, 81, 67, 221, 151, 226,\n\t\t230, 254, 209, 226, 254, 185, 93, 119, 215, 27, 115, 107,\n\t\t186, 64, 28, 60, 119, 214, 109, 95, 157, 187, 202, 123, 232,\n\t\t155, 6, 215, 211, 234, 125, 101, 145, 56, 232, 174, 233, 154,\n\t\t48, 122, 237, 205, 67, 249, 65, 20, 238, 167, 223, 191, 126,\n\t\t89, 95, 62, 255, 253, 118, 225, 186, 81, 246, 10, 143, 72,\n\t\t43, 193, 156, 6, 247, 18, 75, 78, 123, 11, 13, 174, 171, 107,\n\t\t74, 104, 192, 141, 2, 75, 227, 102, 135, 201, 110, 154, 156,\n\t\t226, 168, 112, 28, 164, 32, 128, 118, 34, 187, 169, 96, 84,\n\t\t109, 231, 131, 74, 77, 0, 46, 149, 76, 130, 195, 177, 104,\n\t\t162, 192, 21, 10, 20, 205, 215, 217, 240, 241, 224, 45, 44,\n\t\t195, 42, 165, 219, 102, 209, 133, 94, 34, 52, 109, 177, 134,\n\t\t12, 238, 145, 28, 10, 120, 58, 2, 81, 146, 7, 222, 14, 220,\n\t\t16, 45, 117, 184, 231, 243, 192, 20, 164, 85, 45, 52, 218,\n\t\t63, 27, 3, 1, 55, 210, 3, 112, 11, 5, 145, 212, 240, 192,\n\t\t72, 4, 46, 225, 148, 233, 136, 69, 184, 244, 135, 249, 247,\n\t\t80, 115, 234, 247, 178, 23, 1, 82, 220, 198, 45, 244, 156,\n\t\t105, 105, 18, 160, 148, 140, 213, 48, 0, 147, 233, 144, 51,\n\t\t190, 110, 236, 184, 114, 22, 66, 218, 12, 151, 130, 152, 224,\n\t\t213, 110, 168, 236, 57, 176, 158, 59, 14, 42, 190, 22, 219,\n\t\t94, 253, 112, 69, 20, 40, 85, 172, 235, 84, 115, 213, 147,\n\t\t148, 112, 33, 59, 188, 116, 12, 108, 10, 189, 19, 208, 30,\n\t\t131, 148, 6, 160, 16, 243, 150, 213, 83, 29, 103, 235, 44,\n\t\t136, 131, 29, 190, 250, 102, 173, 199, 110, 211, 66, 65, 116,\n\t\t210, 218, 3, 55, 149, 253, 40, 52, 212, 8, 152, 93, 54, 163,\n\t\t8, 49, 189, 42, 47, 194, 253, 195, 19, 54, 139, 215, 110,\n\t\t240, 102, 237, 5, 209, 183, 11, 78, 172, 174, 150, 85, 65,\n\t\t161, 3, 118, 37, 74, 148, 35, 73, 11, 92, 219, 65, 37, 153,\n\t\t162, 117, 7, 132, 184, 160, 88, 53, 68, 196, 40, 17, 153,\n\t\t47, 10, 48, 28, 74, 73, 122, 154, 207, 68, 149, 77, 189, 168,\n\t\t157, 178, 18, 34, 176, 206, 77, 166, 149, 148, 78, 230, 210,\n\t\t6, 215, 155, 117, 190, 198, 83, 78, 241, 8, 152, 244, 172,\n\t\t93, 79, 33, 103, 170, 197, 135, 61, 64, 45, 4, 206, 205, 43,\n\t\t195, 73, 90, 7, 18, 9, 4, 144, 117, 12, 28, 194, 68, 171,\n\t\t90, 116, 196, 100, 88, 209, 1, 204, 95, 17, 139, 1, 93, 177,\n\t\t1, 51, 38, 199, 22, 47, 19, 97, 115, 12, 103, 45, 58, 106,\n\t\t14, 127, 113, 184, 194, 148, 144, 12, 196, 180, 7, 81, 73,\n\t\t219, 202, 14, 82, 119, 75, 56, 174, 68, 162, 185, 110, 212,\n\t\t67, 22, 102, 196, 62, 35, 22, 165, 164, 80, 128, 142, 217,\n\t\t114, 72, 122, 224, 213, 35, 67, 42, 231, 132, 141, 90, 128,\n\t\t82, 32, 130, 147, 77, 68, 23, 54, 147, 188, 146, 158, 210,\n\t\t114, 91, 114, 72, 58, 14, 183, 18, 114, 107, 173, 46, 20,\n\t\t50, 186, 143, 36, 80, 236, 201, 36, 69, 93, 72, 40, 133, 196,\n\t\t226, 229, 106, 15, 2, 25, 126, 253, 242, 251, 47, 63, 191,\n\t\t191, 168, 221, 4, 11, 93, 44, 106, 17, 224, 250, 247, 157,\n\t\t127, 200, 208, 211, 239, 123, 255, 176, 233, 229, 254, 176,\n\t\t67, 149, 148, 19, 113, 59, 174, 220, 190, 235, 53, 220, 78,\n\t\t165, 96, 58, 232, 82, 86, 197, 78, 234, 185, 57, 30, 38, 231,\n\t\t96, 216, 47, 61, 116, 161, 113, 189, 37, 61, 106, 101, 205,\n\t\t176, 229, 48, 163, 99, 115, 238, 230, 16, 8, 213, 131, 232,\n\t\t204, 171, 117, 203, 227, 60, 156, 66, 172, 186, 38, 20, 132,\n\t\t194, 216, 48, 210, 147, 234, 194, 224, 145, 72, 80, 42, 196,\n\t\t70, 180, 131, 1, 190, 139, 129, 171, 103, 146, 186, 173, 227,\n\t\t0, 161, 99, 36, 99, 233, 137, 33, 75, 181, 115, 160, 158,\n\t\t24, 112, 30, 48, 220, 92, 54, 28, 194, 131, 133, 86, 213,\n\t\t148, 112, 156, 71, 60, 133, 136, 217, 193, 168, 133, 150,\n\t\t90, 129, 2, 174, 100, 150, 145, 96, 206, 105, 130, 24, 87,\n\t\t192, 33, 116, 35, 170, 104, 132, 24, 0, 79, 200, 21, 132,\n\t\t30, 39, 64, 32, 228, 92, 143, 80, 247, 126, 175, 63, 88, 75,\n\t\t39, 196, 86, 183, 212, 142, 96, 195, 139, 249, 148, 99, 104,\n\t\t169, 214, 123, 61, 168, 211, 164, 231, 251, 103, 218, 159,\n\t\t191, 236, 251, 243, 215, 247, 71, 123, 190, 30, 237, 220,\n\t\t218, 196, 255, 236, 129, 237, 88, 187, 229, 58, 200, 22, 13,\n\t\t72, 104, 1, 139, 146, 235, 254, 170, 185, 6, 37, 10, 165,\n\t\t247, 109, 210, 224, 3, 119, 210, 248, 147, 186, 127, 169,\n\t\t228, 187, 53, 197, 28, 234, 116, 242, 57, 33, 98, 45, 198,\n\t\t135, 16, 65, 194, 119, 225, 151, 82, 219, 64, 39, 2, 237,\n\t\t226, 80, 87, 46, 107, 65, 16, 149, 3, 217, 128, 189, 50, 66,\n\t\t180, 26, 200, 72, 174, 43, 28, 132, 127, 52, 73, 52, 237,\n\t\t25, 78, 33, 239, 131, 220, 80, 210, 230, 216, 246, 147, 227,\n\t\t201, 24, 4, 230, 123, 116, 21, 92, 120, 35, 244, 184, 189,\n\t\t128, 109, 192, 66, 24, 178, 226, 234, 225, 167, 56, 160, 255,\n\t\t64, 199, 1, 220, 46, 34, 14, 237, 168, 132, 247, 116, 120,\n\t\t104, 145, 9, 67, 72, 30, 158, 174, 131, 124, 211, 161, 116,\n\t\t118, 120, 211, 121, 221, 116, 155, 53, 254, 64, 240, 60, 225,\n\t\t1, 163, 98, 104, 62, 149, 122, 113, 144, 158, 129, 173, 84,\n\t\t156, 27, 43, 101, 199, 21, 34, 240, 50, 198, 110, 223, 142,\n\t\t28, 242, 136, 219, 127, 23, 222, 234, 30, 6, 148, 5, 90, 143,\n\t\t158, 89, 207, 93, 83, 172, 45, 240, 24, 122, 102, 149, 184,\n\t\t141, 142, 89, 71, 139, 78, 38, 198, 209, 51, 103, 146, 203,\n\t\t144, 247, 201, 59, 185, 138, 238, 96, 131, 180, 226, 204,\n\t\t199, 228, 253, 51, 95, 183, 162, 135, 86, 21, 66, 116, 98,\n\t\t249, 171, 12, 19, 11, 11, 151, 21, 28, 231, 211, 209, 71,\n\t\t235, 185, 147, 192, 175, 111, 106, 120, 51, 34, 218, 219,\n\t\t172, 163, 86, 146, 165, 77, 63, 55, 239, 177, 193, 31, 225,\n\t\t61, 117, 223, 181, 226, 247, 95, 63, 125, 122, 127, 170, 222,\n\t\t178, 118, 188, 217, 152, 36, 51, 144, 163, 123, 226, 4, 253,\n\t\t5, 23, 72, 28, 21, 18, 179, 182, 178, 1, 233, 199, 144, 114,\n\t\t7, 171, 67, 134, 123, 200, 49, 55, 156, 18, 126, 192, 26,\n\t\t150, 25, 80, 17, 0, 171, 130, 30, 176, 166, 144, 161, 159,\n\t\t44, 228, 139, 168, 238, 33, 80, 68, 171, 176, 37, 136, 37,\n\t\t87, 161, 38, 150, 157, 116, 181, 179, 160, 217, 30, 184, 230,\n\t\t195, 214, 160, 176, 77, 22, 87, 171, 34, 61, 135, 10, 249,\n\t\t78, 43, 97, 182, 246, 22, 72, 90, 169, 51, 229, 184, 54, 14,\n\t\t185, 176, 25, 53, 154, 7, 214, 23, 61, 131, 72, 94, 72, 69,\n\t\t138, 218, 206, 143, 137, 201, 223, 59, 152, 97, 99, 134, 249,\n\t\t52, 0, 160, 137, 129, 241, 130, 115, 86, 165, 4, 64, 22, 149,\n\t\t79, 5, 142, 27, 216, 103, 70, 130, 159, 108, 78, 192, 77,\n\t\t160, 187, 139, 117, 75, 27, 92, 141, 97, 196, 40, 192, 95,\n\t\t208, 149, 94, 251, 163, 38, 3, 201, 214, 206, 16, 106, 135,\n\t\t227, 74, 185, 133, 170, 135, 158, 239, 216, 223, 9, 32, 64,\n\t\t6, 116, 11, 228, 28, 71, 198, 70, 52, 61, 211, 194, 213, 70,\n\t\t65, 137, 14, 118, 139, 235, 163, 138, 103, 220, 226, 163,\n\t\t83, 72, 74, 122, 164, 184, 43, 95, 60, 148, 150, 174, 120,\n\t\t184, 223, 27, 87, 119, 231, 203, 191, 62, 253, 242, 254, 108,\n\t\t169, 119, 56, 110, 50, 5, 195, 110, 236, 211, 36, 54, 169,\n\t\t1, 157, 119, 100, 210, 20, 251, 154, 179, 207, 221, 14, 134,\n\t\t214, 116, 116, 6, 222, 7, 129, 237, 134, 122, 119, 63, 126,\n\t\t191, 181, 161, 13, 157, 254, 126, 182, 120, 158, 224, 144,\n\t\t222, 123, 59, 82, 252, 254, 140, 116, 72, 197, 118, 90, 251,\n\t\t195, 59, 143, 136, 2, 188, 139, 40, 208, 25, 111, 123, 132,\n\t\t59, 112, 23, 21, 64, 75, 227, 21, 60, 215, 221, 171, 62, 91,\n\t\t229, 187, 114, 240, 62, 58, 156, 59, 15, 125, 183, 173, 190,\n\t\t198, 87, 199, 210, 131, 195, 243, 216, 91, 188, 227, 253,\n\t\t250, 88, 108, 67, 217, 210, 44, 198, 228, 124, 245, 148, 41,\n\t\t91, 20, 71, 239, 28, 242, 143, 158, 139, 120, 3, 213, 179,\n\t\t110, 43, 192, 123, 116, 70, 89, 19, 133, 116, 192, 93, 39,\n\t\t28, 205, 141, 249, 133, 44, 40, 122, 52, 136, 222, 103, 132,\n\t\t177, 118, 155, 230, 98, 91, 188, 102, 114, 216, 112, 10, 134,\n\t\t113, 206, 17, 30, 203, 28, 199, 144, 184, 236, 18, 181, 121,\n\t\t188, 5, 253, 180, 127, 99, 11, 186, 71, 161, 32, 122, 238,\n\t\t90, 112, 42, 233, 134, 157, 169, 163, 242, 72, 160, 9, 124,\n\t\t184, 10, 60, 90, 4, 142, 171, 189, 232, 180, 102, 126, 124,\n\t\t111, 110, 56, 142, 60, 88, 191, 50, 255, 128, 192, 150, 195,\n\t\t73, 62, 244, 154, 108, 138, 143, 251, 65, 50, 28, 75, 40,\n\t\t114, 247, 46, 42, 18, 164, 108, 122, 242, 226, 104, 43, 87,\n\t\t10, 197, 169, 145, 48, 112, 253, 154, 146, 132, 88, 17, 25,\n\t\t175, 167, 109, 248, 107, 228, 30, 50, 13, 91, 73, 7, 12, 214,\n\t\t188, 27, 9, 175, 79, 208, 66, 148, 69, 18, 182, 130, 19, 92,\n\t\t249, 90, 75, 199, 106, 200, 78, 135, 13, 150, 211, 90, 140,\n\t\t191, 142, 59, 66, 110, 230, 117, 205, 80, 84, 110, 102, 137,\n\t\t34, 205, 129, 155, 255, 148, 140, 117, 65, 133, 2, 248, 17,\n\t\t122, 194, 113, 173, 45, 84, 142, 245, 238, 160, 252, 231,\n\t\t151, 111, 172, 243, 55, 4, 6, 151, 102, 246, 4, 24, 151, 181,\n\t\t216, 49, 99, 95, 235, 140, 244, 227, 99, 157, 24, 80, 247,\n\t\t214, 213, 244, 1, 0, 150, 150, 60, 172, 46, 205, 200, 130,\n\t\t198, 161, 110, 235, 136, 72, 200, 35, 219, 41, 130, 246, 17,\n\t\t59, 49, 192, 66, 45, 65, 87, 94, 44, 38, 219, 224, 170, 94,\n\t\t76, 141, 107, 118, 180, 41, 7, 251, 83, 221, 37, 255, 196,\n\t\t190, 22, 104, 182, 135, 227, 154, 13, 49, 118, 31, 56, 94,\n\t\t127, 66, 129, 242, 123, 165, 65, 219, 236, 147, 153, 95, 51,\n\t\t45, 71, 61, 114, 116, 160, 166, 222, 93, 201, 211, 61, 52,\n\t\t156, 99, 233, 42, 233, 251, 82, 168, 99, 166, 12, 132, 178,\n\t\t239, 121, 107, 210, 141, 199, 57, 235, 154, 217, 160, 38,\n\t\t132, 49, 104, 199, 38, 186, 42, 145, 45, 223, 126, 125, 76,\n\t\t142, 88, 156, 135, 225, 106, 70, 183, 128, 61, 205, 246, 3,\n\t\t59, 120, 209, 110, 136, 166, 205, 238, 213, 109, 47, 212,\n\t\t157, 227, 210, 202, 230, 253, 145, 67, 158, 199, 199, 1, 235,\n\t\t250, 166, 139, 143, 41, 1, 122, 96, 12, 212, 65, 135, 118,\n\t\t246, 71, 48, 48, 97, 31, 16, 52, 200, 211, 90, 57, 82, 236,\n\t\t161, 239, 228, 7, 194, 102, 156, 104, 27, 249, 102, 129, 156,\n\t\t23, 28, 59, 103, 134, 249, 152, 138, 213, 174, 58, 24, 176,\n\t\t43, 19, 251, 25, 118, 120, 230, 72, 201, 167, 22, 77, 204,\n\t\t234, 232, 77, 244, 72, 100, 121, 60, 181, 94, 159, 168, 1,\n\t\t160, 55, 150, 195, 62, 54, 68, 132, 146, 53, 108, 48, 59,\n\t\t52, 149, 233, 204, 96, 60, 200, 240, 203, 96, 178, 79, 245,\n\t\t253, 132, 163, 81, 179, 211, 22, 13, 141, 217, 27, 159, 253,\n\t\t136, 58, 248, 218, 237, 230, 215, 39, 38, 10, 178, 48, 167,\n\t\t189, 194, 216, 126, 212, 90, 66, 112, 177, 67, 43, 235, 97,\n\t\t190, 2, 15, 153, 107, 10, 172, 183, 30, 217, 102, 217, 190,\n\t\t242, 98, 109, 67, 103, 134, 106, 28, 40, 50, 78, 199, 126,\n\t\t122, 101, 59, 166, 30, 87, 31, 62, 135, 243, 108, 173, 211,\n\t\t149, 42, 156, 113, 144, 93, 197, 50, 100, 17, 123, 250, 245,\n\t\t41, 197, 28, 84, 36, 41, 187, 145, 248, 105, 99, 153, 148,\n\t\t171, 13, 104, 15, 101, 221, 142, 13, 77, 24, 12, 139, 29,\n\t\t206, 97, 131, 92, 186, 14, 217, 200, 141, 187, 111, 27, 236,\n\t\t197, 135, 9, 243, 56, 58, 207, 70, 74, 18, 189, 145, 6, 128,\n\t\t50, 26, 138, 208, 109, 123, 29, 110, 92, 218, 88, 182, 14,\n\t\t63, 64, 117, 186, 117, 79, 206, 55, 206, 126, 23, 242, 7,\n\t\t167, 69, 136, 71, 100, 154, 203, 62, 67, 79, 224, 236, 158,\n\t\t71, 18, 248, 131, 180, 15, 4, 176, 129, 204, 247, 94, 4, 91,\n\t\t42, 201, 73, 70, 187, 147, 140, 70, 163, 17, 53, 154, 81,\n\t\t142, 241, 180, 146, 20, 115, 46, 18, 46, 129, 78, 99, 189,\n\t\t61, 174, 196, 13, 26, 92, 79, 152, 140, 231, 209, 136, 192,\n\t\t225, 146, 71, 117, 89, 235, 222, 71, 188, 153, 142, 9, 39,\n\t\t40, 207, 75, 61, 99, 184, 155, 31, 230, 67, 103, 53, 109,\n\t\t208, 247, 2, 19, 243, 246, 191, 178, 81, 185, 181, 165, 150,\n\t\t83, 123, 224, 203, 76, 229, 230, 144, 114, 235, 203, 220,\n\t\t30, 184, 50, 31, 245, 45, 223, 246, 168, 182, 194, 80, 138,\n\t\t63, 168, 52, 63, 160, 48, 76, 252, 184, 40, 55, 155, 231,\n\t\t143, 46, 203, 169, 253, 192, 193, 255, 61, 99, 255, 229, 203,\n\t\t215, 223, 214, 231, 253, 215, 227, 243, 251, 30, 56, 55, 190,\n\t\t154, 111, 156, 136, 67, 93, 56, 154, 12, 115, 189, 163, 185,\n\t\t1, 212, 91, 139, 29, 226, 255, 161, 196, 72, 220, 195, 35,\n\t\t129, 200, 241, 206, 183, 184, 104, 115, 76, 15, 225, 129,\n\t\t255, 62, 65, 181, 112, 185, 23, 95, 182, 187, 31, 87, 231,\n\t\t253, 99, 107, 35, 207, 139, 199, 86, 103, 51, 76, 70, 159,\n\t\t228, 18, 242, 35, 105, 234, 92, 191, 111, 31, 234, 57, 7,\n\t\t237, 80, 247, 25, 126, 119, 227, 247, 93, 22, 206, 25, 1,\n\t\t110, 170, 94, 214, 117, 130, 219, 243, 216, 159, 70, 253,\n\t\t86, 68, 40, 175, 221, 9, 101, 207, 100, 254, 43, 77, 181,\n\t\t238, 112, 153, 30, 85, 60, 187, 14, 143, 90, 22, 67, 149,\n\t\t127, 5, 108, 113, 139, 7, 61, 156, 179, 9, 112, 60, 118, 91,\n\t\t170, 83, 2, 179, 4, 174, 46, 102, 59, 165, 238, 32, 189, 152,\n\t\t159, 35, 116, 101, 38, 176, 147, 15, 196, 221, 233, 127, 117,\n\t\t188, 226, 244, 78, 67, 137, 52, 182, 114, 190, 202, 205, 175,\n\t\t143, 169, 157, 132, 227, 31, 86, 183, 11, 199, 99, 106, 175,\n\t\t79, 137, 33, 141, 72, 15, 253, 176, 121, 68, 245, 90, 135,\n\t\t48, 36, 67, 110, 26, 209, 53, 43, 132, 134, 113, 121, 28,\n\t\t49, 53, 64, 228, 75, 133, 225, 4, 30, 185, 27, 142, 4, 234,\n\t\t210, 202, 34, 161, 229, 226, 129, 83, 121, 136, 58, 251, 224,\n\t\t54, 224, 6, 191, 245, 35, 0, 99, 113, 74, 154, 148, 30, 60,\n\t\t84, 60, 131, 163, 97, 42, 239, 135, 171, 247, 48, 122, 120,\n\t\t185, 236, 234, 162, 88, 109, 238, 36, 148, 150, 249, 94, 114,\n\t\t41, 206, 171, 113, 216, 221, 207, 222, 226, 142, 236, 141,\n\t\t105, 136, 61, 120, 193, 120, 84, 197, 60, 136, 201, 62, 94,\n\t\t164, 155, 149, 36, 143, 81, 50, 4, 107, 153, 98, 176, 245,\n\t\t188, 63, 240, 250, 36, 220, 3, 47, 162, 69, 56, 186, 208,\n\t\t188, 207, 73, 197, 198, 111, 242, 209, 165, 234, 29, 55, 182,\n\t\t59, 32, 2, 240, 236, 88, 146, 22, 201, 49, 247, 183, 49, 234,\n\t\t6, 222, 241, 50, 5, 200, 49, 236, 214, 235, 81, 126, 52, 215,\n\t\t41, 12, 189, 239, 49, 197, 233, 0, 52, 150, 248, 57, 195,\n\t\t214, 49, 197, 232, 58, 243, 49, 195, 108, 178, 76, 5, 150,\n\t\t143, 104, 107, 98, 191, 156, 83, 235, 245, 240, 223, 165,\n\t\t249, 255, 228, 210, 252, 223, 37, 235, 127, 231, 146, 245,\n\t\t143, 47, 191, 255, 242, 219, 187, 226, 85, 137, 35, 170, 148,\n\t\t154, 206, 244, 102, 78, 101, 57, 239, 107, 237, 161, 35, 234,\n\t\t164, 161, 155, 206, 177, 106, 111, 99, 204, 154, 184, 163,\n\t\t32, 124, 254, 46, 162, 213, 240, 188, 54, 164, 63, 174, 29,\n\t\t92, 13, 39, 220, 60, 175, 180, 248, 45, 65, 205, 46, 148,\n\t\t160, 230, 0, 253, 136, 95, 31, 83, 197, 11, 230, 102, 219,\n\t\t164, 116, 2, 212, 182, 196, 126, 181, 221, 218, 111, 103,\n\t\t188, 111, 191, 227, 188, 225, 86, 112, 108, 152, 84, 145,\n\t\t134, 84, 97, 174, 140, 186, 230, 21, 196, 188, 88, 254, 171,\n\t\t23, 224, 245, 137, 83, 92, 224, 133, 122, 206, 96, 32, 129,\n\t\t131, 106, 119, 172, 167, 247, 138, 55, 72, 16, 238, 149, 111,\n\t\t115, 60, 242, 2, 248, 148, 139, 183, 159, 185, 200, 178, 158,\n\t\t171, 112, 208, 138, 15, 50, 164, 206, 135, 31, 144, 35, 245,\n\t\t7, 245, 182, 242, 172, 15, 27, 160, 164, 31, 80, 26, 227,\n\t\t17, 123, 84, 24, 130, 217, 233, 112, 183, 117, 184, 253, 128,\n\t\t226, 232, 91, 238, 151, 231, 163, 147, 242, 86, 144, 40, 19,\n\t\t111, 36, 133, 26, 153, 242, 34, 162, 35, 51, 237, 99, 70,\n\t\t250, 140, 122, 47, 126, 85, 103, 227, 152, 140, 231, 185,\n\t\t88, 47, 144, 242, 245, 201, 57, 5, 199, 151, 73, 238, 54,\n\t\t230, 226, 122, 61, 25, 142, 43, 166, 80, 204, 23, 18, 200,\n\t\t189, 22, 146, 199, 179, 38, 250, 59, 19, 188, 27, 231, 188,\n\t\t92, 199, 196, 28, 243, 114, 189, 90, 24, 254, 59, 47, 63,\n\t\t48, 21, 254, 59, 47, 255, 224, 188, 252, 229, 247, 127, 124,\n\t\t250, 250, 121, 123, 127, 183, 188, 19, 251, 32, 177, 133,\n\t\t70, 180, 136, 164, 192, 36, 48, 155, 35, 82, 145, 85, 80,\n\t\t75, 8, 14, 49, 244, 228, 20, 128, 62, 173, 114, 27, 27, 107,\n\t\t24, 27, 128, 125, 12, 57, 103, 224, 139, 27, 30, 247, 158,\n\t\t36, 164, 36, 105, 73, 49, 212, 68, 188, 81, 232, 68, 36, 112,\n\t\t178, 162, 14, 19, 1, 160, 215, 197, 87, 0, 149, 128, 90, 164,\n\t\t113, 125, 188, 136, 225, 62, 130, 103, 8, 190, 10, 119, 61,\n\t\t100, 1, 11, 127, 228, 28, 74, 137, 143, 176, 244, 84, 176,\n\t\t229, 94, 31, 122, 137, 28, 87, 138, 61, 80, 125, 228, 180,\n\t\t226, 239, 187, 235, 181, 146, 67, 162, 68, 167, 92, 67, 151,\n\t\t6, 119, 38, 206, 201, 156, 161, 179, 251, 47, 106, 251, 19,\n\t\t216, 233, 59, 124, 102, 129, 53, 15, 190, 250, 24, 74, 164,\n\t\t92, 248, 245, 137, 107, 11, 156, 128, 83, 88, 18, 56, 24,\n\t\t132, 67, 201, 34, 11, 75, 64, 12, 72, 169, 65, 114, 65, 232,\n\t\t105, 236, 186, 170, 218, 245, 97, 19, 127, 91, 92, 106, 119,\n\t\t183, 102, 110, 112, 56, 58, 39, 116, 195, 155, 215, 134, 201,\n\t\t20, 184, 150, 228, 124, 228, 64, 197, 143, 57, 84, 224, 255,\n\t\t83, 232, 205, 224, 85, 144, 2, 84, 60, 29, 27, 218, 60, 18,\n\t\t205, 251, 72, 130, 141, 137, 85, 90, 64, 77, 75, 168, 141,\n\t\t24, 220, 54, 21, 216, 249, 28, 196, 168, 64, 70, 76, 70, 11,\n\t\t213, 88, 176, 138, 183, 0, 44, 65, 66, 123, 15, 44, 58, 34,\n\t\t123, 72, 181, 231, 141, 67, 4, 244, 77, 9, 9, 236, 93, 61,\n\t\t196, 212, 154, 44, 190, 205, 80, 14, 169, 148, 182, 212, 80,\n\t\t41, 55, 62, 108, 132, 208, 23, 1, 5, 168, 182, 163, 46, 200,\n\t\t173, 86, 147, 180, 49, 146, 165, 5, 132, 247, 37, 115, 226,\n\t\t66, 12, 114, 77, 108, 62, 127, 230, 85, 95, 217, 16, 224,\n\t\t57, 7, 155, 5, 35, 161, 212, 208, 56, 243, 235, 147, 212,\n\t\t24, 50, 165, 165, 150, 32, 22, 47, 203, 14, 127, 8, 20, 246,\n\t\t72, 160, 5, 200, 49, 153, 85, 169, 73, 30, 215, 27, 34, 77,\n\t\t201, 80, 216, 37, 32, 124, 99, 173, 161, 151, 4, 240, 151,\n\t\t145, 66, 250, 16, 86, 19, 208, 67, 116, 61, 238, 53, 160,\n\t\t60, 174, 156, 2, 216, 31, 50, 62, 252, 242, 176, 117, 247,\n\t\t124, 55, 107, 91, 133, 103, 180, 222, 79, 98, 252, 123, 28,\n\t\t170, 238, 76, 91, 12, 145, 9, 161, 174, 49, 196, 228, 78,\n\t\t110, 33, 54, 139, 131, 141, 129, 59, 156, 229, 46, 147, 16,\n\t\t62, 204, 175, 79, 84, 17, 94, 174, 167, 236, 71, 50, 42, 159,\n\t\t183, 229, 111, 136, 233, 183, 80, 16, 51, 158, 231, 93, 49,\n\t\t61, 102, 23, 42, 14, 255, 25, 114, 250, 199, 151, 233, 119,\n\t\t228, 167, 59, 56, 87, 255, 93, 164, 255, 187, 72, 255, 119,\n\t\t145, 254, 239, 34, 253, 135, 23, 233, 2, 240, 139, 69, 192,\n\t\t52, 252, 241, 35, 139, 157, 192, 210, 155, 163, 219, 37, 140,\n\t\t208, 88, 161, 31, 30, 221, 14, 239, 159, 221, 16, 198, 243,\n\t\t232, 236, 70, 233, 207, 56, 187, 221, 93, 170, 127, 59, 254,\n\t\t254, 143, 159, 94, 222, 91, 164, 39, 154, 25, 69, 173, 110,\n\t\t218, 206, 196, 70, 14, 56, 7, 98, 35, 179, 78, 159, 86, 54,\n\t\t143, 148, 251, 4, 73, 176, 230, 220, 231, 71, 138, 110, 193,\n\t\t214, 91, 46, 242, 48, 11, 118, 139, 175, 79, 128, 17, 189,\n\t\t42, 205, 155, 27, 95, 174, 202, 134, 164, 203, 34, 123, 113,\n\t\t94, 222, 230, 173, 31, 110, 113, 45, 69, 215, 8, 44, 200,\n\t\t137, 131, 206, 4, 16, 52, 131, 128, 166, 20, 221, 29, 12,\n\t\t58, 215, 176, 56, 82, 200, 169, 246, 35, 144, 89, 57, 129,\n\t\t252, 180, 23, 93, 155, 115, 183, 111, 218, 203, 0, 102, 200,\n\t\t221, 41, 117, 178, 174, 134, 181, 234, 64, 111, 30, 226, 69,\n\t\t182, 20, 107, 135, 99, 193, 130, 31, 51, 26, 178, 59, 177,\n\t\t92, 234, 32, 94, 218, 215, 24, 40, 118, 49, 140, 26, 210,\n\t\t133, 130, 183, 62, 54, 67, 150, 32, 82, 116, 241, 98, 176,\n\t\t201, 174, 185, 0, 245, 3, 145, 125, 177, 233, 139, 117, 121,\n\t\t45, 173, 233, 81, 183, 52, 42, 6, 77, 131, 184, 199, 53, 6,\n\t\t39, 222, 129, 71, 100, 141, 152, 230, 58, 242, 201, 226, 17,\n\t\t106, 46, 109, 75, 129, 59, 192, 116, 224, 229, 139, 89, 60,\n\t\t226, 137, 57, 100, 208, 212, 148, 64, 0, 31, 95, 83, 130,\n\t\t71, 254, 134, 200, 9, 242, 136, 15, 225, 196, 203, 90, 99,\n\t\t112, 181, 112, 15, 85, 64, 163, 164, 235, 64, 149, 153, 178,\n\t\t171, 96, 131, 205, 255, 98, 7, 222, 16, 238, 212, 170, 78,\n\t\t250, 72, 197, 8, 255, 90, 181, 112, 184, 81, 162, 149, 168,\n\t\t135, 92, 140, 169, 214, 97, 18, 114, 232, 185, 46, 117, 40,\n\t\t141, 165, 24, 111, 158, 174, 98, 77, 31, 201, 186, 115, 69,\n\t\t72, 13, 84, 27, 66, 7, 178, 7, 67, 17, 71, 64, 187, 3, 202,\n\t\t80, 96, 62, 200, 54, 195, 61, 1, 33, 186, 237, 196, 168, 0,\n\t\t232, 121, 76, 93, 28, 184, 49, 139, 46, 26, 136, 131, 16,\n\t\t208, 37, 195, 163, 73, 215, 183, 77, 122, 40, 148, 100, 145,\n\t\t30, 40, 73, 89, 114, 1, 12, 139, 174, 65, 185, 105, 39, 246,\n\t\t128, 232, 88, 109, 24, 162, 13, 140, 238, 42, 98, 170, 232,\n\t\t3, 56, 8, 106, 45, 195, 201, 25, 112, 27, 217, 98, 86, 115,\n\t\t11, 61, 178, 28, 182, 20, 18, 148, 248, 212, 64, 90, 140,\n\t\t85, 182, 47, 218, 177, 221, 153, 33, 132, 202, 184, 222, 56,\n\t\t57, 128, 107, 179, 191, 20, 82, 126, 128, 247, 226, 139, 199,\n\t\t187, 7, 241, 73, 107, 21, 23, 113, 50, 142, 111, 78, 234,\n\t\t191, 106, 105, 121, 125, 74, 241, 204, 42, 241, 182, 56, 231,\n\t\t69, 224, 229, 143, 46, 40, 175, 79, 128, 217, 81, 233, 102,\n\t\t69, 231, 176, 33, 175, 119, 195, 11, 144, 14, 66, 53, 4, 82,\n\t\t74, 172, 214, 240, 186, 219, 102, 135, 35, 96, 10, 197, 193,\n\t\t61, 115, 107, 125, 73, 105, 200, 247, 111, 123, 118, 3, 121,\n\t\t123, 105, 0, 173, 205, 172, 71, 139, 212, 67, 142, 220, 151,\n\t\t42, 134, 40, 181, 94, 13, 157, 149, 66, 47, 224, 46, 15, 61,\n\t\t1, 241, 103, 140, 197, 28, 106, 110, 42, 124, 92, 14, 206,\n\t\t152, 233, 116, 49, 231, 124, 96, 59, 217, 33, 230, 113, 14,\n\t\t156, 116, 244, 128, 46, 172, 246, 229, 237, 76, 216, 32, 27,\n\t\t144, 237, 213, 230, 205, 86, 66, 233, 2, 196, 202, 218, 45,\n\t\t48, 254, 114, 178, 233, 60, 69, 111, 164, 64, 92, 151, 74,\n\t\t144, 132, 48, 125, 163, 133, 211, 93, 204, 230, 163, 46, 11,\n\t\t82, 243, 150, 216, 240, 144, 226, 210, 197, 200, 179, 87,\n\t\t93, 102, 192, 27, 110, 139, 73, 154, 139, 201, 214, 60, 140,\n\t\t156, 56, 196, 92, 224, 77, 144, 82, 150, 197, 216, 0, 19,\n\t\t47, 215, 139, 214, 1, 48, 155, 56, 203, 81, 13, 81, 23, 110,\n\t\t206, 33, 2, 93, 63, 169, 168, 42, 178, 220, 44, 142, 186,\n\t\t2, 37, 24, 137, 37, 88, 3, 249, 220, 6, 43, 170, 16, 226,\n\t\t251, 223, 172, 195, 251, 59, 203, 185, 182, 42, 194, 207,\n\t\t181, 57, 83, 103, 196, 69, 162, 163, 133, 2, 103, 112, 93,\n\t\t191, 221, 21, 54, 125, 24, 40, 167, 42, 242, 26, 149, 27,\n\t\t151, 64, 89, 231, 178, 111, 55, 230, 194, 126, 185, 1, 29,\n\t\t13, 79, 156, 243, 97, 171, 192, 116, 176, 64, 59, 208, 55,\n\t\t204, 13, 46, 179, 21, 252, 122, 199, 211, 89, 84, 5, 171,\n\t\t132, 65, 130, 248, 146, 97, 192, 200, 31, 89, 63, 254, 246,\n\t\t233, 31, 207, 183, 142, 138, 237, 70, 135, 199, 249, 76, 35,\n\t\t210, 150, 148, 0, 58, 62, 24, 198, 13, 85, 188, 168, 28, 233,\n\t\t176, 226, 243, 218, 113, 198, 45, 209, 240, 201, 103, 186,\n\t\t193, 143, 143, 199, 240, 239, 245, 137, 83, 13, 172, 162,\n\t\t187, 132, 198, 36, 155, 76, 12, 141, 12, 166, 88, 221, 157,\n\t\t75, 183, 195, 74, 199, 45, 232, 104, 214, 145, 63, 82, 142,\n\t\t107, 46, 51, 144, 253, 254, 154, 53, 112, 254, 191, 185, 102,\n\t\t81, 76, 71, 128, 133, 34, 66, 91, 231, 115, 180, 241, 90,\n\t\t178, 177, 184, 1, 223, 118, 148, 192, 11, 176, 39, 3, 65,\n\t\t231, 144, 163, 206, 108, 21, 67, 129, 147, 198, 161, 235,\n\t\t144, 161, 102, 232, 120, 227, 49, 191, 62, 170, 80, 90, 98,\n\t\t218, 24, 128, 4, 22, 39, 142, 81, 152, 99, 200, 165, 217,\n\t\t122, 135, 131, 116, 21, 163, 34, 142, 243, 25, 138, 65, 146,\n\t\t32, 12, 55, 90, 220, 248, 218, 2, 97, 126, 205, 246, 241,\n\t\t124, 238, 163, 198, 190, 55, 30, 110, 212, 5, 111, 16, 200,\n\t\t255, 196, 225, 0, 178, 72, 109, 145, 187, 80, 57, 36, 229,\n\t\t113, 87, 131, 214, 248, 35, 55, 150, 71, 20, 162, 36, 96,\n\t\t63, 62, 60, 190, 237, 30, 38, 211, 119, 116, 246, 125, 213,\n\t\t207, 239, 55, 162, 64, 203, 151, 184, 200, 220, 218, 150,\n\t\t29, 158, 202, 201, 176, 29, 88, 210, 200, 176, 95, 230, 245,\n\t\t5, 91, 253, 11, 120, 241, 47, 210, 123, 121, 185, 120, 12,\n\t\t255, 94, 159, 114, 228, 144, 22, 128, 210, 108, 196, 51, 174,\n\t\t108, 56, 105, 76, 215, 91, 115, 130, 57, 179, 44, 235, 162,\n\t\t26, 17, 166, 216, 39, 74, 23, 60, 174, 219, 46, 2, 255, 136,\n\t\t136, 152, 129, 25, 198, 166, 45, 111, 252, 228, 246, 70, 39,\n\t\t120, 94, 221, 181, 101, 126, 57, 236, 227, 81, 93, 60, 243,\n\t\t14, 127, 112, 60, 226, 25, 109, 179, 120, 235, 101, 249, 140,\n\t\t194, 107, 166, 8, 45, 113, 31, 69, 90, 250, 12, 26, 240, 87,\n\t\t171, 64, 145, 55, 47, 211, 44, 226, 40, 212, 44, 164, 151,\n\t\t205, 63, 173, 102, 250, 138, 124, 174, 182, 23, 111, 155,\n\t\t89, 223, 148, 238, 130, 38, 140, 246, 139, 199, 18, 60, 61,\n\t\t230, 59, 165, 247, 195, 54, 203, 130, 146, 13, 247, 16, 47,\n\t\t214, 117, 113, 80, 18, 171, 202, 62, 90, 105, 52, 210, 117,\n\t\t23, 142, 66, 140, 107, 180, 143, 23, 2, 77, 107, 225, 13,\n\t\t23, 45, 191, 161, 8, 201, 29, 105, 102, 127, 141, 50, 93,\n\t\t116, 27, 194, 3, 215, 115, 183, 3, 176, 181, 160, 90, 20,\n\t\t242, 150, 28, 14, 251, 250, 147, 132, 2, 180, 166, 141, 14,\n\t\t47, 171, 93, 141, 223, 86, 106, 180, 196, 151, 245, 124, 237,\n\t\t55, 235, 15, 47, 118, 49, 127, 196, 189, 247, 151, 200, 47,\n\t\t95, 110, 167, 88, 153, 83, 172, 73, 96, 227, 3, 222, 128,\n\t\t42, 145, 28, 97, 56, 171, 72, 164, 59, 6, 217, 5, 103, 67,\n\t\t19, 181, 59, 198, 79, 254, 11, 126, 37, 9, 17, 72, 58, 42,\n\t\t9, 146, 97, 72, 202, 164, 98, 14, 29, 104, 132, 169, 132,\n\t\t90, 179, 105, 97, 91, 228, 186, 129, 210, 211, 189, 149, 68,\n\t\t192, 84, 101, 135, 67, 42, 161, 82, 213, 67, 80, 205, 185,\n\t\t25, 171, 63, 131, 194, 188, 176, 169, 235, 224, 231, 147,\n\t\t161, 106, 140, 186, 94, 225, 11, 7, 224, 3, 157, 83, 106,\n\t\t10, 210, 179, 177, 49, 171, 96, 12, 12, 165, 100, 48, 206,\n\t\t204, 49, 148, 168, 91, 91, 11, 12, 124, 132, 94, 66, 207,\n\t\t216, 159, 58, 115, 95, 64, 34, 170, 18, 101, 115, 114, 88,\n\t\t138, 166, 234, 34, 10, 38, 61, 81, 7, 229, 250, 166, 243,\n\t\t173, 86, 16, 204, 170, 172, 135, 50, 80, 15, 13, 11, 80, 50,\n\t\t48, 19, 234, 45, 180, 92, 71, 194, 221, 110, 123, 254, 186,\n\t\t29, 63, 159, 110, 55, 183, 122, 230, 46, 89, 226, 137, 91,\n\t\t59, 38, 221, 84, 116, 153, 140, 16, 60, 221, 33, 42, 249,\n\t\t60, 118, 42, 37, 131, 102, 6, 216, 173, 223, 98, 60, 77, 151,\n\t\t247, 9, 191, 62, 81, 231, 133, 63, 228, 140, 126, 237, 5,\n\t\t120, 229, 140, 254, 200, 35, 254, 54, 70, 237, 218, 69, 240,\n\t\t245, 41, 53, 96, 187, 31, 182, 115, 153, 229, 162, 110, 86,\n\t\t173, 65, 25, 116, 207, 127, 50, 181, 248, 8, 203, 4, 248,\n\t\t176, 200, 228, 226, 245, 248, 167, 13, 124, 183, 171, 126,\n\t\t250, 253, 239, 55, 221, 52, 57, 66, 179, 138, 228, 42, 128,\n\t\t231, 30, 72, 165, 238, 228, 176, 10, 84, 67, 226, 94, 33,\n\t\t43, 26, 120, 175, 111, 43, 208, 139, 64, 41, 62, 82, 16, 100,\n\t\t40, 146, 7, 27, 148, 174, 59, 37, 137, 145, 78, 0, 154, 33,\n\t\t113, 200, 174, 108, 181, 205, 170, 16, 196, 169, 189, 68,\n\t\t227, 201, 94, 241, 165, 101, 131, 76, 197, 158, 164, 95, 170,\n\t\t153, 65, 76, 195, 193, 1, 128, 98, 3, 34, 21, 232, 90, 236,\n\t\t179, 200, 111, 182, 155, 218, 72, 209, 199, 112, 111, 238,\n\t\t75, 60, 236, 107, 78, 1, 10, 91, 255, 220, 0, 203, 97, 184,\n\t\t121, 224, 172, 208, 67, 141, 169, 148, 101, 224, 207, 246,\n\t\t8, 46, 140, 153, 114, 226, 148, 46, 76, 17, 87, 214, 15, 131,\n\t\t204, 79, 215, 22, 141, 107, 243, 199, 105, 213, 183, 128,\n\t\t56, 34, 27, 157, 102, 201, 161, 233, 212, 35, 104, 223, 249,\n\t\t156, 175, 103, 123, 46, 251, 58, 11, 255, 111, 85, 126, 155,\n\t\t137, 243, 246, 145, 112, 110, 88, 111, 215, 217, 43, 163,\n\t\t83, 116, 108, 18, 24, 74, 26, 66, 122, 207, 29, 41, 29, 224,\n\t\t16, 231, 4, 239, 216, 19, 141, 81, 97, 83, 58, 9, 48, 162,\n\t\t208, 138, 128, 158, 147, 80, 0, 132, 62, 198, 146, 15, 37,\n\t\t140, 64, 48, 43, 82, 11, 218, 1, 186, 20, 66, 1, 238, 50,\n\t\t150, 232, 112, 173, 50, 174, 143, 185, 156, 114, 131, 164,\n\t\t184, 175, 169, 152, 18, 219, 63, 255, 173, 58, 111, 222, 154,\n\t\t227, 206, 113, 195, 184, 158, 45, 185, 231, 164, 111, 71,\n\t\t63, 104, 46, 71, 134, 66, 164, 143, 116, 251, 248, 240, 235,\n\t\t254, 173, 1, 63, 170, 184, 248, 231, 105, 245, 186, 31, 179,\n\t\t173, 66, 134, 244, 169, 185, 25, 252, 49, 165, 0, 149, 40,\n\t\t90, 77, 23, 127, 111, 182, 215, 39, 206, 21, 71, 141, 66,\n\t\t112, 127, 213, 53, 146, 12, 173, 13, 199, 123, 92, 16, 70,\n\t\t51, 8, 186, 199, 109, 151, 191, 251, 255, 143, 195, 123, 190,\n\t\t71, 57, 221, 239, 128, 177, 254, 199, 17, 60, 48, 98, 230,\n\t\t243, 34, 44, 250, 121, 198, 99, 93, 111, 0, 89, 223, 249,\n\t\t114, 6, 249, 28, 160, 172, 251, 21, 34, 43, 224, 6, 175, 0,\n\t\t89, 39, 60, 231, 64, 249, 188, 194, 101, 61, 13, 136, 207,\n\t\t179, 126, 107, 25, 88, 159, 235, 224, 127, 28, 88, 159, 134,\n\t\t16, 154, 210, 242, 17, 172, 207, 159, 191, 252, 246, 13, 106,\n\t\t152, 206, 183, 212, 48, 37, 244, 114, 133, 46, 125, 11, 47,\n\t\t125, 15, 95, 250, 6, 96, 250, 138, 145, 78, 116, 216, 65,\n\t\t217, 9, 6, 76, 22, 8, 88, 80, 118, 91, 136, 195, 210, 226,\n\t\t11, 226, 114, 70, 178, 7, 233, 188, 92, 94, 123, 82, 139,\n\t\t203, 197, 195, 237, 190, 136, 250, 207, 227, 167, 79, 251,\n\t\t118, 124, 254, 124, 67, 17, 219, 101, 186, 78, 246, 18, 40,\n\t\t210, 82, 56, 136, 16, 237, 186, 75, 99, 99, 211, 99, 120,\n\t\t17, 218, 4, 232, 147, 102, 121, 132, 238, 69, 251, 200, 112,\n\t\t153, 168, 234, 104, 178, 192, 29, 44, 179, 24, 125, 41, 11,\n\t\t0, 173, 83, 201, 70, 251, 166, 27, 196, 102, 176, 173, 224,\n\t\t37, 117, 213, 168, 100, 32, 207, 25, 11, 125, 130, 246, 84,\n\t\t76, 147, 78, 57, 196, 156, 234, 14, 204, 131, 90, 101, 33,\n\t\t145, 80, 98, 59, 2, 86, 169, 84, 195, 103, 235, 142, 127,\n\t\t175, 203, 24, 103, 139, 54, 39, 236, 237, 5, 106, 149, 10,\n\t\t226, 213, 195, 6, 196, 236, 6, 69, 139, 150, 211, 4, 130,\n\t\t110, 198, 67, 93, 111, 108, 197, 18, 38, 89, 152, 91, 200,\n\t\t156, 183, 184, 72, 9, 162, 59, 191, 196, 32, 42, 9, 148, 108,\n\t\t100, 172, 165, 134, 152, 169, 45, 197, 154, 101, 131, 50,\n\t\t142, 116, 99, 113, 148, 248, 18, 67, 76, 213, 32, 35, 192,\n\t\t173, 95, 162, 83, 153, 22, 157, 8, 196, 91, 12, 205, 237,\n\t\t61, 186, 168, 9, 27, 115, 4, 101, 21, 206, 75, 12, 73, 229,\n\t\t99, 44, 210, 177, 26, 170, 120, 148, 70, 123, 194, 190, 99,\n\t\t59, 188, 206, 145, 35, 113, 7, 144, 225, 61, 87, 145, 195,\n\t\t71, 157, 1, 1, 60, 181, 167, 144, 205, 170, 45, 124, 36, 225,\n\t\t192, 169, 232, 57, 2, 82, 148, 78, 144, 64, 157, 237, 184,\n\t\t150, 34, 203, 162, 53, 4, 246, 40, 153, 78, 119, 207, 58,\n\t\t30, 128, 99, 168, 13, 27, 235, 46, 166, 86, 214, 61, 81, 82,\n\t\t43, 219, 24, 66, 99, 76, 97, 0, 149, 114, 30, 82, 62, 126,\n\t\t230, 136, 122, 125, 18, 34, 237, 137, 165, 151, 157, 245,\n\t\t88, 194, 104, 155, 22, 171, 246, 44, 235, 89, 60, 57, 52,\n\t\t87, 75, 166, 111, 135, 169, 25, 78, 8, 132, 195, 129, 238,\n\t\t236, 52, 19, 182, 181, 215, 224, 204, 5, 96, 102, 170, 13,\n\t\t184, 252, 118, 65, 85, 5, 193, 154, 204, 86, 151, 114, 232,\n\t\t25, 7, 231, 26, 50, 54, 143, 168, 237, 184, 80, 17, 221, 57,\n\t\t55, 6, 51, 171, 160, 1, 82, 149, 178, 228, 80, 43, 172, 218,\n\t\t41, 2, 41, 101, 209, 29, 214, 28, 138, 74, 16, 17, 140, 69,\n\t\t63, 240, 232, 249, 6, 186, 224, 226, 134, 184, 156, 67, 193,\n\t\t32, 152, 41, 189, 66, 151, 108, 30, 41, 228, 216, 90, 49,\n\t\t112, 18, 219, 228, 230, 110, 183, 141, 71, 226, 66, 81, 66,\n\t\t44, 105, 25, 24, 93, 40, 115, 230, 165, 151, 163, 158, 215,\n\t\t99, 185, 47, 115, 239, 159, 191, 62, 191, 139, 81, 210, 111,\n\t\t64, 22, 47, 176, 168, 42, 184, 217, 176, 202, 21, 199, 192,\n\t\t69, 24, 172, 1, 149, 229, 80, 56, 119, 167, 135, 27, 194,\n\t\t76, 108, 188, 173, 57, 80, 22, 84, 70, 244, 56, 106, 10, 25,\n\t\t80, 100, 172, 172, 39, 65, 99, 93, 104, 122, 247, 76, 57,\n\t\t2, 12, 176, 61, 242, 190, 161, 174, 7, 94, 222, 245, 68, 47,\n\t\t189, 154, 102, 173, 215, 10, 39, 155, 4, 139, 219, 10, 59,\n\t\t143, 159, 234, 74, 228, 188, 164, 193, 204, 48, 18, 176, 166,\n\t\t72, 63, 37, 125, 182, 128, 45, 42, 7, 1, 159, 69, 10, 28,\n\t\t7, 214, 82, 161, 12, 2, 246, 154, 202, 120, 4, 98, 21, 94,\n\t\t193, 129, 68, 218, 73, 34, 44, 5, 63, 182, 64, 223, 81, 158,\n\t\t210, 208, 27, 119, 193, 124, 202, 225, 129, 207, 84, 38, 160,\n\t\t173, 238, 186, 24, 73, 175, 96, 30, 205, 210, 183, 81, 163,\n\t\t81, 161, 81, 252, 117, 84, 104, 38, 140, 10, 173, 168, 17,\n\t\t148, 33, 235, 168, 210, 58, 234, 180, 142, 74, 173, 163, 86,\n\t\t227, 185, 125, 37, 209, 87, 153, 181, 186, 19, 211, 105, 69,\n\t\t75, 183, 252, 253, 133, 58, 120, 169, 202, 143, 40, 149, 30,\n\t\t84, 153, 250, 214, 124, 77, 212, 245, 26, 98, 158, 126, 80,\n\t\t210, 50, 218, 1, 77, 96, 246, 209, 253, 166, 23, 116, 56,\n\t\t39, 11, 145, 26, 221, 169, 215, 199, 212, 64, 13, 115, 95,\n\t\t9, 252, 235, 243, 246, 105, 125, 57, 254, 254, 219, 111, 239,\n\t\t200, 66, 55, 224, 114, 37, 13, 40, 198, 220, 57, 148, 152,\n\t\t16, 192, 166, 125, 194, 221, 246, 84, 128, 57, 19, 209, 146,\n\t\t170, 187, 84, 128, 202, 70, 234, 57, 33, 213, 80, 115, 238,\n\t\t47, 208, 135, 80, 117, 194, 138, 164, 139, 244, 245, 61, 176,\n\t\t159, 182, 210, 216, 177, 64, 244, 75, 45, 161, 65, 99, 196,\n\t\t9, 222, 12, 11, 54, 167, 2, 173, 160, 165, 28, 87, 110, 57,\n\t\t148, 10, 4, 180, 158, 153, 16, 103, 149, 115, 242, 216, 184,\n\t\t220, 172, 3, 187, 17, 3, 149, 80, 9, 218, 128, 114, 228, 88,\n\t\t130, 116, 139, 161, 40, 161, 233, 65, 95, 162, 251, 210, 81,\n\t\t46, 33, 227, 62, 1, 68, 117, 215, 201, 129, 171, 227, 122,\n\t\t14, 190, 51, 188, 98, 216, 16, 184, 221, 72, 246, 195, 140,\n\t\t161, 98, 66, 58, 149, 180, 97, 95, 111, 177, 14, 157, 144,\n\t\t121, 74, 224, 59, 167, 211, 112, 177, 233, 5, 220, 78, 13,\n\t\t196, 62, 156, 22, 251, 149, 202, 119, 61, 94, 128, 235, 62,\n\t\t236, 49, 227, 80, 0, 150, 122, 45, 156, 150, 255, 72, 134,\n\t\t191, 124, 174, 222, 166, 210, 60, 142, 84, 162, 2, 201, 112,\n\t\t229, 75, 42, 76, 93, 54, 136, 53, 164, 108, 37, 144, 237,\n\t\t97, 41, 68, 248, 130, 146, 19, 27, 173, 29, 219, 56, 8, 17,\n\t\t207, 205, 143, 110, 147, 45, 201, 176, 22, 183, 26, 170, 24,\n\t\t130, 191, 121, 187, 92, 247, 245, 235, 83, 130, 138, 135,\n\t\t55, 136, 108, 112, 141, 208, 111, 177, 179, 138, 191, 17,\n\t\t225, 239, 107, 10, 9, 224, 92, 42, 231, 192, 126, 222, 64,\n\t\t123, 175, 255, 78, 43, 160, 56, 230, 45, 23, 63, 234, 159,\n\t\t251, 148, 1, 191, 156, 62, 237, 95, 126, 253, 22, 55, 86,\n\t\t191, 1, 237, 250, 79, 102, 137, 173, 13, 228, 251, 212, 114,\n\t\t104, 29, 28, 24, 67, 114, 55, 151, 65, 33, 231, 182, 227,\n\t\t18, 136, 4, 208, 229, 38, 185, 192, 41, 41, 103, 4, 4, 38,\n\t\t224, 223, 199, 192, 12, 213, 177, 14, 47, 160, 150, 55, 99,\n\t\t135, 26, 207, 224, 17, 41, 91, 143, 161, 168, 188, 84, 114,\n\t\t104, 148, 242, 210, 186, 249, 95, 57, 67, 13, 244, 197, 90,\n\t\t170, 150, 224, 115, 117, 130, 159, 98, 189, 240, 81, 185,\n\t\t117, 248, 56, 174, 92, 111, 172, 181, 215, 22, 188, 211, 234,\n\t\t111, 226, 4, 160, 110, 8, 104, 61, 39, 2, 64, 17, 99, 33,\n\t\t235, 6, 61, 55, 138, 0, 252, 51, 25, 44, 90, 44, 168, 163,\n\t\t217, 246, 12, 189, 62, 134, 234, 78, 35, 2, 180, 81, 206,\n\t\t129, 69, 15, 45, 61, 187, 93, 181, 198, 64, 189, 89, 225,\n\t\t74, 99, 204, 130, 110, 12, 36, 82, 67, 19, 211, 98, 16, 132,\n\t\t154, 146, 124, 94, 8, 135, 200, 57, 161, 139, 13, 171, 62,\n\t\t98, 82, 233, 60, 207, 209, 160, 232, 225, 143, 210, 58, 158,\n\t\t42, 61, 65, 135, 20, 99, 111, 155, 10, 133, 93, 229, 206,\n\t\t100, 44, 175, 176, 246, 139, 174, 181, 185, 135, 68, 218,\n\t\t157, 61, 131, 83, 107, 169, 49, 48, 182, 89, 74, 172, 85,\n\t\t187, 239, 122, 115, 228, 106, 14, 178, 223, 112, 237, 59,\n\t\t249, 91, 238, 206, 159, 223, 127, 249, 124, 250, 244, 245,\n\t\t229, 243, 111, 255, 186, 153, 58, 219, 197, 233, 115, 17,\n\t\t142, 67, 1, 59, 166, 233, 219, 73, 188, 172, 237, 136, 94,\n\t\t165, 15, 160, 38, 74, 127, 132, 98, 56, 84, 157, 111, 150,\n\t\t141, 203, 133, 225, 132, 194, 176, 111, 46, 172, 13, 215,\n\t\t224, 129, 10, 254, 178, 228, 158, 59, 213, 206, 60, 44, 188,\n\t\t180, 118, 208, 83, 29, 233, 161, 117, 137, 65, 36, 119, 105,\n\t\t11, 235, 226, 109, 135, 27, 120, 23, 46, 18, 98, 110, 32,\n\t\t33, 180, 132, 23, 30, 113, 194, 49, 112, 197, 46, 63, 110,\n\t\t89, 199, 61, 120, 255, 218, 218, 198, 161, 50, 12, 60, 20,\n\t\t8, 118, 224, 81, 14, 173, 135, 244, 148, 207, 9, 86, 178,\n\t\t215, 167, 84, 121, 161, 242, 192, 169, 235, 97, 195, 167,\n\t\t242, 160, 173, 14, 247, 156, 202, 146, 240, 43, 248, 201,\n\t\t115, 57, 98, 223, 233, 172, 159, 254, 241, 222, 165, 60, 66,\n\t\t219, 133, 75, 45, 149, 19, 63, 36, 23, 120, 96, 10, 250, 251,\n\t\t215, 231, 159, 127, 127, 254, 237, 243, 151, 95, 214, 237,\n\t\t249, 198, 241, 182, 223, 224, 233, 156, 229, 163, 194, 28,\n\t\t36, 45, 220, 83, 104, 27, 139, 51, 115, 213, 113, 46, 30,\n\t\t9, 210, 204, 41, 220, 20, 161, 25, 166, 109, 198, 121, 115,\n\t\t34, 233, 193, 67, 77, 18, 76, 11, 1, 94, 67, 53, 84, 238,\n\t\t192, 15, 170, 186, 167, 67, 101, 234, 44, 169, 61, 135, 92,\n\t\t58, 84, 12, 205, 205, 195, 12, 251, 119, 50, 38, 48, 234,\n\t\t230, 209, 166, 59, 137, 227, 81, 13, 133, 154, 216, 70, 188,\n\t\t245, 64, 208, 74, 224, 80, 22, 181, 169, 44, 54, 194, 204,\n\t\t37, 0, 182, 24, 9, 92, 66, 171, 145, 204, 194, 23, 181, 52,\n\t\t246, 88, 53, 20, 130, 30, 26, 138, 77, 18, 154, 237, 217,\n\t\t25, 190, 100, 122, 76, 207, 98, 94, 153, 41, 96, 228, 50,\n\t\t117, 99, 203, 235, 173, 115, 177, 30, 237, 208, 247, 247,\n\t\t144, 138, 219, 106, 180, 56, 51, 5, 120, 17, 20, 123, 66,\n\t\t148, 205, 96, 51, 64, 60, 65, 36, 156, 170, 141, 87, 45, 135,\n\t\t66, 49, 45, 254, 212, 204, 218, 115, 94, 155, 79, 193, 60,\n\t\t144, 23, 70, 97, 245, 247, 26, 233, 156, 224, 133, 199, 88,\n\t\t38, 80, 142, 35, 50, 65, 59, 128, 201, 106, 74, 197, 92, 103,\n\t\t185, 6, 169, 145, 182, 8, 94, 54, 74, 11, 85, 43, 124, 245,\n\t\t115, 129, 158, 101, 161, 219, 0, 66, 104, 42, 110, 204, 78,\n\t\t110, 235, 36, 157, 168, 209, 164, 195, 12, 152, 62, 211, 97,\n\t\t216, 165, 24, 141, 137, 41, 248, 115, 211, 21, 192, 70, 204,\n\t\t24, 48, 148, 141, 127, 110, 40, 132, 132, 112, 219, 188, 246,\n\t\t225, 242, 250, 36, 153, 245, 27, 9, 135, 78, 59, 165, 28,\n\t\t162, 232, 78, 145, 115, 47, 187, 110, 123, 21, 45, 79, 18,\n\t\t146, 5, 189, 64, 90, 4, 250, 161, 238, 207, 230, 162, 67,\n\t\t182, 91, 189, 224, 11, 36, 220, 232, 169, 37, 205, 151, 224,\n\t\t29, 197, 178, 128, 19, 90, 194, 4, 128, 243, 7, 64, 198, 59,\n\t\t198, 167, 84, 112, 249, 194, 164, 8, 247, 224, 98, 53, 124,\n\t\t96, 104, 223, 159, 127, 249, 251, 239, 207, 127, 191, 17,\n\t\t192, 158, 111, 128, 244, 206, 19, 148, 50, 7, 90, 88, 187,\n\t\t114, 167, 232, 246, 126, 169, 33, 3, 118, 17, 78, 38, 228,\n\t\t86, 65, 77, 221, 196, 200, 8, 13, 156, 216, 189, 25, 220,\n\t\t121, 248, 237, 229, 49, 134, 252, 146, 206, 190, 28, 120,\n\t\t69, 29, 14, 34, 118, 207, 235, 83, 161, 130, 176, 235, 51,\n\t\t74, 220, 88, 122, 163, 1, 193, 153, 144, 82, 167, 7, 108,\n\t\t239, 223, 66, 155, 227, 22, 17, 69, 192, 45, 190, 234, 185,\n\t\t108, 97, 97, 95, 116, 239, 217, 129, 75, 178, 93, 236, 62,\n\t\t122, 218, 35, 83, 241, 105, 134, 46, 63, 190, 239, 145, 93,\n\t\t155, 82, 144, 51, 236, 212, 180, 143, 147, 145, 1, 118, 61,\n\t\t139, 65, 3, 204, 22, 92, 55, 94, 53, 96, 24, 65, 168, 101,\n\t\t116, 16, 195, 125, 195, 0, 24, 39, 118, 206, 42, 238, 87,\n\t\t114, 102, 77, 136, 230, 194, 51, 27, 65, 187, 197, 80, 99,\n\t\t1, 163, 235, 104, 154, 134, 219, 179, 26, 10, 166, 197, 247,\n\t\t111, 224, 100, 233, 238, 160, 107, 238, 134, 192, 139, 25,\n\t\t24, 39, 32, 232, 180, 20, 231, 63, 190, 160, 224, 48, 115,\n\t\t247, 112, 147, 26, 72, 65, 76, 134, 84, 105, 245, 107, 3,\n\t\t106, 165, 156, 27, 194, 35, 190, 248, 236, 207, 228, 200,\n\t\t71, 23, 200, 181, 171, 12, 216, 219, 137, 3, 60, 97, 222,\n\t\t211, 25, 203, 11, 140, 144, 147, 132, 194, 219, 108, 147,\n\t\t51, 224, 139, 211, 132, 140, 185, 225, 67, 152, 202, 112,\n\t\t188, 50, 15, 36, 114, 236, 154, 122, 246, 248, 209, 123, 144,\n\t\t141, 56, 120, 55, 27, 170, 14, 2, 110, 186, 251, 243, 216,\n\t\t221, 60, 106, 228, 240, 224, 146, 135, 131, 150, 61, 178,\n\t\t229, 49, 113, 156, 50, 196, 26, 194, 187, 113, 148, 197, 251,\n\t\t103, 226, 156, 207, 186, 160, 20, 217, 251, 129, 174, 253,\n\t\t203, 210, 192, 150, 177, 198, 216, 86, 3, 138, 157, 126, 26,\n\t\t68, 238, 223, 197, 206, 214, 72, 109, 99, 96, 197, 100, 144,\n\t\t235, 235, 75, 82, 49, 95, 175, 196, 134, 20, 91, 204, 59,\n\t\t232, 232, 163, 224, 112, 23, 194, 48, 46, 6, 39, 249, 109,\n\t\t28, 200, 22, 45, 150, 83, 39, 249, 3, 72, 73, 174, 252, 250,\n\t\t148, 155, 59, 39, 17, 133, 190, 173, 60, 0, 137, 6, 176, 144,\n\t\t12, 84, 163, 129, 43, 52, 113, 114, 6, 178, 16, 155, 25, 117,\n\t\t203, 35, 43, 138, 139, 12, 247, 48, 131, 17, 130, 83, 219,\n\t\t224, 20, 16, 195, 113, 61, 150, 104, 243, 114, 63, 19, 96,\n\t\t59, 124, 148, 182, 4, 120, 110, 83, 168, 112, 180, 46, 112,\n\t\t109, 6, 215, 75, 134, 161, 103, 96, 8, 33, 151, 163, 99, 241,\n\t\t108, 19, 66, 232, 2, 65, 232, 10, 64, 104, 7, 28, 248, 66,\n\t\t5, 30, 30, 111, 1, 132, 214, 43, 4, 161, 57, 49, 7, 132, 16,\n\t\t130, 96, 38, 147, 74, 156, 156, 8, 235, 185, 145, 174, 65,\n\t\t132, 238, 186, 72, 63, 255, 191, 155, 253, 103, 158, 98, 74,\n\t\t210, 67, 204, 166, 114, 64, 1, 45, 190, 123, 211, 32, 142,\n\t\t113, 120, 211, 120, 64, 217, 184, 105, 254, 254, 214, 147,\n\t\t200, 162, 38, 253, 53, 238, 72, 52, 111, 19, 246, 208, 225,\n\t\t113, 203, 69, 30, 230, 82, 35, 238, 221, 195, 173, 61, 40,\n\t\t206, 217, 177, 233, 110, 113, 226, 253, 242, 28, 78, 105,\n\t\t248, 248, 188, 95, 32, 78, 28, 170, 246, 118, 234, 42, 26,\n\t\t27, 189, 50, 12, 32, 2, 41, 138, 45, 130, 15, 71, 85, 75,\n\t\t216, 225, 51, 128, 25, 12, 66, 97, 72, 198, 17, 126, 243,\n\t\t126, 7, 10, 75, 210, 203, 57, 193, 95, 114, 90, 155, 138,\n\t\t28, 142, 101, 122, 129, 235, 209, 91, 50, 219, 87, 180, 40,\n\t\t107, 243, 79, 58, 7, 240, 57, 199, 202, 176, 160, 197, 179,\n\t\t117, 76, 59, 238, 48, 76, 104, 122, 219, 229, 239, 110, 64,\n\t\t243, 128, 109, 123, 137, 7, 1, 198, 17, 206, 61, 128, 85,\n\t\t211, 143, 42, 205, 247, 21, 38, 93, 65, 190, 124, 187, 44,\n\t\t135, 191, 168, 48, 255, 49, 45, 35, 172, 199, 212, 83, 127,\n\t\t191, 246, 111, 95, 8, 194, 4, 142, 237, 180, 82, 74, 71, 206,\n\t\t247, 241, 82, 126, 250, 253, 243, 254, 243, 231, 95, 110,\n\t\t220, 217, 158, 239, 97, 182, 10, 84, 189, 31, 57, 12, 167,\n\t\t246, 224, 48, 204, 241, 148, 204, 207, 244, 91, 231, 116,\n\t\t145, 71, 138, 130, 148, 203, 145, 227, 43, 66, 63, 164, 222,\n\t\t240, 93, 188, 85, 178, 64, 228, 75, 241, 109, 225, 223, 20,\n\t\t235, 100, 164, 57, 247, 252, 209, 82, 124, 228, 143, 102,\n\t\t165, 225, 90, 126, 64, 105, 126, 68, 97, 154, 190, 185, 253,\n\t\t217, 181, 254, 80, 101, 95, 225, 226, 162, 75, 125, 123, 228,\n\t\t247, 247, 145, 28, 91, 58, 150, 244, 250, 36, 28, 129, 17,\n\t\t253, 129, 230, 58, 60, 126, 233, 7, 170, 113, 167, 45, 173,\n\t\t52, 44, 229, 35, 165, 249, 107, 10, 35, 242, 23, 246, 240,\n\t\t189, 210, 220, 117, 109, 59, 126, 222, 127, 190, 89, 137,\n\t\t110, 64, 89, 207, 230, 125, 210, 154, 193, 49, 66, 122, 168,\n\t\t37, 193, 169, 145, 37, 167, 165, 178, 253, 123, 169, 230,\n\t\t152, 50, 18, 87, 59, 217, 226, 118, 169, 231, 159, 86, 251,\n\t\t77, 255, 191, 232, 231, 4, 145, 192, 91, 94, 193, 197, 95,\n\t\t184, 46, 254, 185, 189, 117, 127, 172, 23, 254, 144, 240,\n\t\t49, 44, 103, 31, 67, 233, 8, 159, 128, 143, 161, 125, 158,\n\t\t86, 46, 37, 212, 84, 134, 152, 83, 217, 197, 28, 174, 87,\n\t\t98, 142, 69, 241, 248, 45, 103, 49, 103, 220, 167, 7, 110,\n\t\t59, 47, 159, 224, 108, 241, 129, 247, 61, 120, 157, 151, 108,\n\t\t22, 25, 31, 101, 187, 173, 230, 181, 27, 230, 149, 219, 231,\n\t\t133, 135, 232, 187, 142, 154, 210, 151, 184, 183, 98, 205,\n\t\t98, 159, 71, 243, 224, 167, 131, 167, 247, 197, 62, 63, 254,\n\t\t194, 187, 131, 235, 215, 231, 127, 94, 15, 173, 159, 226,\n\t\t155, 184, 35, 78, 91, 237, 166, 73, 67, 16, 240, 2, 111, 161,\n\t\t90, 236, 59, 199, 24, 204, 58, 33, 105, 68, 131, 232, 193,\n\t\t88, 143, 183, 57, 67, 157, 84, 41, 84, 184, 248, 224, 26,\n\t\t113, 232, 254, 54, 16, 90, 100, 68, 135, 182, 232, 166, 99,\n\t\t46, 227, 122, 211, 241, 72, 46, 201, 86, 114, 3, 201, 245,\n\t\t205, 235, 188, 59, 37, 211, 166, 198, 115, 150, 28, 93, 233,\n\t\t57, 18, 172, 8, 113, 169, 213, 172, 110, 68, 28, 114, 95,\n\t\t172, 22, 168, 145, 125, 61, 188, 62, 129, 50, 133, 117, 189,\n\t\t10, 133, 182, 65, 135, 3, 78, 173, 236, 44, 24, 22, 70, 88,\n\t\t154, 155, 226, 224, 183, 134, 220, 114, 144, 20, 219, 182,\n\t\t178, 91, 173, 214, 18, 250, 217, 31, 29, 190, 12, 57, 152,\n\t\t41, 161, 146, 121, 58, 231, 24, 72, 140, 56, 220, 142, 57,\n\t\t154, 81, 234, 73, 15, 80, 53, 102, 90, 70, 54, 154, 75, 143,\n\t\t101, 209, 76, 164, 183, 151, 241, 198, 117, 188, 82, 223,\n\t\t8, 181, 157, 190, 146, 123, 127, 125, 50, 223, 154, 133, 115,\n\t\t13, 210, 15, 219, 42, 209, 245, 206, 45, 80, 50, 74, 30, 215,\n\t\t231, 130, 168, 17, 216, 183, 53, 164, 178, 20, 129, 218, 21,\n\t\t172, 182, 45, 233, 193, 90, 172, 27, 196, 189, 29, 90, 14,\n\t\t204, 177, 106, 97, 115, 237, 100, 241, 196, 122, 216, 143,\n\t\t208, 153, 46, 205, 89, 169, 199, 251, 215, 145, 129, 189,\n\t\t127, 29, 25, 140, 247, 175, 35, 131, 117, 228, 0, 90, 64,\n\t\t51, 189, 121, 30, 171, 103, 242, 250, 148, 106, 10, 77, 22,\n\t\t110, 37, 84, 57, 108, 151, 173, 13, 30, 197, 148, 130, 206,\n\t\t249, 228, 74, 245, 219, 254, 161, 129, 174, 48, 26, 27, 184,\n\t\t21, 136, 15, 6, 225, 46, 172, 4, 87, 205, 249, 178, 218, 107,\n\t\t211, 84, 213, 191, 237, 144, 109, 188, 116, 140, 20, 125,\n\t\t165, 182, 133, 190, 177, 199, 182, 92, 245, 248, 235, 147,\n\t\t192, 219, 221, 187, 199, 123, 167, 235, 209, 158, 18, 72,\n\t\t201, 83, 177, 54, 73, 221, 26, 117, 189, 106, 237, 3, 154,\n\t\t79, 250, 185, 123, 82, 49, 202, 173, 202, 112, 58, 89, 222,\n\t\t246, 230, 200, 64, 187, 63, 71, 193, 237, 214, 232, 35, 135,\n\t\t235, 166, 182, 1, 0, 27, 210, 236, 160, 145, 199, 90, 205,\n\t\t186, 57, 198, 204, 232, 211, 251, 123, 218, 239, 63, 221,\n\t\t232, 135, 127, 58, 59, 251, 234, 196, 95, 82, 162, 80, 167,\n\t\t146, 106, 168, 135, 92, 35, 50, 175, 69, 92, 79, 0, 216, 241,\n\t\t220, 202, 14, 152, 145, 218, 54, 26, 160, 200, 117, 17, 114,\n\t\t205, 156, 43, 178, 206, 9, 201, 18, 78, 43, 115, 14, 20, 193,\n\t\t92, 54, 216, 153, 96, 202, 136, 62, 60, 234, 80, 241, 25,\n\t\t255, 185, 153, 8, 216, 104, 133, 211, 136, 34, 156, 196, 174,\n\t\t61, 12, 250, 87, 87, 110, 141, 200, 77, 123, 134, 140, 247,\n\t\t220, 21, 115, 103, 160, 103, 125, 251, 96, 112, 181, 43, 207,\n\t\t234, 116, 46, 30, 195, 83, 207, 184, 185, 218, 8, 103, 88,\n\t\t0, 30, 154, 203, 34, 181, 135, 178, 155, 25, 64, 133, 126,\n\t\t71, 195, 222, 45, 161, 225, 179, 182, 19, 13, 28, 102, 240,\n\t\t118, 152, 70, 105, 167, 18, 151, 22, 79, 36, 18, 250, 190,\n\t\t234, 213, 90, 178, 30, 152, 90, 232, 15, 123, 243, 229, 166,\n\t\t59, 207, 46, 203, 173, 5, 221, 46, 106, 104, 27, 77, 122,\n\t\t102, 87, 178, 14, 162, 220, 209, 91, 51, 193, 59, 86, 183,\n\t\t240, 24, 200, 21, 239, 182, 136, 214, 115, 11, 121, 71, 141,\n\t\t16, 65, 49, 24, 116, 4, 121, 234, 140, 53, 208, 55, 220, 51,\n\t\t181, 204, 204, 215, 41, 98, 240, 226, 176, 217, 69, 9, 125,\n\t\t201, 60, 190, 129, 100, 239, 223, 126, 71, 92, 178, 71, 194,\n\t\t56, 40, 251, 192, 15, 159, 209, 138, 35, 86, 213, 19, 188,\n\t\t220, 167, 81, 87, 248, 3, 14, 92, 112, 11, 252, 116, 109,\n\t\t163, 55, 203, 238, 92, 202, 139, 20, 127, 50, 54, 99, 109,\n\t\t126, 239, 73, 219, 80, 252, 73, 45, 30, 140, 40, 205, 245,\n\t\t194, 67, 155, 87, 223, 94, 243, 80, 58, 226, 9, 88, 99, 14,\n\t\t127, 168, 255, 180, 100, 175, 79, 146, 245, 110, 9, 124, 170,\n\t\t226, 26, 252, 6, 251, 233, 73, 119, 80, 179, 195, 80, 214,\n\t\t181, 71, 66, 63, 193, 160, 142, 233, 140, 245, 57, 153, 238,\n\t\t15, 23, 254, 253, 52, 239, 88, 177, 218, 54, 180, 255, 235,\n\t\t19, 11, 160, 190, 117, 222, 157, 106, 246, 8, 91, 228, 100,\n\t\t106, 238, 211, 90, 187, 163, 190, 235, 173, 84, 82, 104, 239,\n\t\t191, 203, 46, 86, 191, 58, 124, 163, 76, 186, 13, 125, 56,\n\t\t71, 189, 245, 195, 57, 126, 43, 195, 123, 83, 241, 235, 167,\n\t\t237, 95, 239, 4, 82, 252, 212, 206, 104, 232, 9, 152, 32,\n\t\t212, 116, 242, 212, 77, 2, 155, 243, 50, 201, 217, 219, 151,\n\t\t24, 198, 143, 100, 62, 244, 250, 37, 150, 106, 38, 28, 42,\n\t\t13, 100, 123, 213, 161, 115, 82, 206, 180, 235, 222, 104,\n\t\t177, 158, 13, 250, 101, 143, 197, 55, 120, 7, 178, 8, 36,\n\t\t6, 40, 11, 32, 47, 12, 119, 142, 171, 231, 227, 9, 199, 108,\n\t\t193, 67, 63, 128, 182, 51, 155, 123, 249, 97, 195, 86, 47,\n\t\t166, 18, 98, 10, 162, 171, 173, 184, 195, 63, 138, 218, 84,\n\t\t214, 47, 161, 181, 93, 171, 192, 44, 75, 163, 32, 173, 86,\n\t\t171, 164, 197, 244, 134, 148, 224, 39, 196, 33, 54, 162, 165,\n\t\t134, 12, 20, 153, 181, 133, 94, 114, 227, 5, 32, 87, 177,\n\t\t47, 41, 180, 218, 58, 45, 42, 136, 228, 198, 59, 193, 22,\n\t\t94, 173, 153, 34, 111, 45, 20, 248, 106, 121, 104, 25, 38,\n\t\t28, 65, 197, 45, 13, 216, 43, 221, 76, 197, 112, 135, 236,\n\t\t224, 128, 107, 162, 141, 180, 72, 233, 33, 18, 251, 154, 210,\n\t\t18, 144, 77, 220, 123, 209, 34, 25, 84, 116, 19, 176, 93,\n\t\t231, 20, 88, 143, 90, 235, 132, 131, 219, 129, 146, 5, 76,\n\t\t62, 110, 161, 38, 225, 109, 149, 144, 9, 209, 101, 238, 87,\n\t\t0, 239, 102, 211, 211, 9, 119, 195, 175, 202, 98, 6, 172,\n\t\t70, 85, 26, 162, 187, 59, 181, 190, 48, 5, 234, 89, 182, 249,\n\t\t172, 190, 11, 209, 198, 53, 8, 236, 47, 120, 151, 216, 179,\n\t\t28, 205, 175, 48, 139, 240, 142, 114, 112, 135, 139, 111,\n\t\t201, 101, 147, 106, 97, 19, 37, 6, 2, 89, 52, 22, 29, 4, 4,\n\t\t90, 20, 116, 225, 208, 168, 44, 241, 176, 39, 10, 140, 115,\n\t\t81, 41, 33, 54, 222, 85, 254, 106, 118, 122, 72, 44, 48, 125,\n\t\t197, 90, 209, 59, 153, 42, 208, 1, 89, 207, 190, 218, 186,\n\t\t58, 196, 151, 155, 81, 236, 221, 178, 172, 214, 79, 5, 104,\n\t\t63, 22, 251, 216, 134, 81, 4, 142, 119, 70, 29, 30, 122, 3,\n\t\t153, 120, 183, 160, 151, 209, 73, 251, 122, 221, 205, 112,\n\t\t82, 112, 96, 204, 152, 163, 217, 10, 59, 119, 184, 38, 152,\n\t\t238, 252, 205, 72, 169, 168, 140, 29, 88, 0, 145, 245, 250,\n\t\t148, 122, 13, 166, 134, 214, 177, 121, 216, 164, 135, 206,\n\t\t218, 167, 42, 92, 57, 226, 41, 137, 84, 156, 104, 245, 150,\n\t\t243, 112, 246, 132, 227, 218, 51, 28, 26, 78, 134, 103, 215,\n\t\t5, 91, 104, 10, 66, 209, 172, 106, 246, 69, 103, 5, 66, 103,\n\t\t1, 169, 39, 217, 65, 246, 82, 6, 141, 16, 64, 250, 204, 119,\n\t\t255, 12, 201, 62, 169, 18, 192, 39, 82, 236, 88, 18, 29, 218,\n\t\t111, 31, 79, 81, 50, 68, 63, 58, 3, 174, 142, 44, 46, 120,\n\t\t136, 46, 178, 228, 124, 26, 112, 126, 199, 158, 29, 62, 93,\n\t\t79, 119, 21, 209, 50, 73, 207, 69, 140, 126, 173, 9, 207,\n\t\t146, 228, 186, 232, 226, 1, 55, 157, 0, 114, 13, 15, 217,\n\t\t178, 241, 173, 99, 82, 199, 40, 33, 128, 38, 52, 132, 229,\n\t\t3, 70, 82, 210, 34, 70, 161, 190, 248, 56, 223, 197, 184,\n\t\t213, 49, 186, 115, 227, 77, 31, 196, 209, 38, 100, 146, 82,\n\t\t237, 185, 146, 22, 114, 215, 93, 60, 215, 206, 99, 252, 81,\n\t\t120, 226, 205, 146, 220, 207, 78, 117, 61, 116, 173, 17, 111,\n\t\t85, 143, 206, 0, 100, 33, 120, 151, 96, 70, 245, 6, 203, 160,\n\t\t29, 80, 40, 133, 78, 58, 234, 32, 205, 234, 144, 181, 41,\n\t\t183, 102, 191, 83, 71, 6, 195, 91, 167, 227, 4, 147, 208,\n\t\t188, 122, 152, 154, 41, 71, 11, 68, 142, 178, 209, 144, 230,\n\t\t137, 2, 150, 81, 230, 129, 157, 213, 204, 131, 104, 38, 164,\n\t\t54, 34, 204, 9, 57, 192, 20, 238, 42, 118, 137, 161, 152,\n\t\t119, 74, 193, 130, 164, 131, 253, 164, 11, 145, 62, 122, 248,\n\t\t136, 221, 234, 161, 25, 13, 136, 244, 195, 104, 240, 157,\n\t\t111, 243, 130, 109, 107, 119, 139, 1, 145, 155, 176, 8, 203,\n\t\t189, 169, 47, 168, 44, 163, 42, 102, 51, 235, 118, 16, 133,\n\t\t83, 141, 65, 115, 97, 11, 98, 54, 141, 68, 106, 179, 93, 15,\n\t\t176, 255, 195, 6, 102, 206, 88, 162, 111, 20, 168, 67, 70,\n\t\t103, 120, 95, 104, 71, 90, 63, 218, 156, 168, 33, 99, 155,\n\t\t148, 208, 108, 41, 181, 254, 94, 198, 99, 126, 125, 204, 29,\n\t\t142, 80, 59, 21, 75, 79, 70, 232, 179, 233, 226, 70, 118,\n\t\t234, 172, 85, 79, 153, 213, 206, 250, 213, 21, 24, 16, 107,\n\t\t251, 184, 60, 18, 215, 45, 21, 235, 226, 184, 180, 98, 62,\n\t\t80, 58, 157, 204, 247, 73, 239, 110, 240, 149, 133, 88, 51,\n\t\t114, 91, 61, 59, 20, 67, 15, 123, 135, 39, 210, 185, 171,\n\t\t135, 113, 109, 84, 224, 15, 99, 201, 211, 51, 101, 147, 72,\n\t\t71, 206, 229, 156, 234, 137, 0, 208, 29, 18, 177, 157, 242,\n\t\t57, 249, 17, 52, 154, 238, 7, 206, 73, 90, 58, 79, 56, 174,\n\t\t90, 100, 125, 17, 10, 104, 130, 169, 135, 134, 19, 112, 139,\n\t\t207, 143, 172, 254, 12, 60, 26, 137, 91, 224, 77, 59, 209,\n\t\t12, 204, 201, 136, 125, 224, 93, 151, 224, 70, 167, 15, 91,\n\t\t63, 195, 88, 137, 41, 208, 141, 108, 212, 180, 72, 105, 126,\n\t\t63, 188, 96, 180, 193, 97, 170, 15, 116, 137, 73, 208, 180,\n\t\t142, 87, 92, 64, 209, 248, 185, 147, 231, 119, 183, 166, 93,\n\t\t149, 74, 7, 171, 191, 84, 224, 43, 6, 227, 187, 21, 42, 93,\n\t\t162, 219, 8, 205, 35, 207, 248, 254, 2, 39, 116, 45, 181,\n\t\t3, 139, 121, 97, 71, 137, 244, 249, 81, 167, 213, 235, 139,\n\t\t102, 240, 239, 247, 49, 11, 159, 255, 223, 231, 155, 37, 236,\n\t\t121, 46, 97, 133, 23, 68, 25, 148, 141, 155, 57, 137, 77,\n\t\t136, 158, 28, 173, 206, 58, 1, 245, 123, 97, 232, 20, 198,\n\t\t106, 194, 50, 92, 9, 249, 220, 125, 17, 14, 137, 98, 74, 67,\n\t\t226, 72, 136, 236, 209, 177, 249, 3, 166, 255, 15, 93, 76,\n\t\t14, 167, 81, 48, 109, 227, 152, 44, 110, 206, 84, 148, 214,\n\t\t53, 230, 251, 47, 80, 62, 162, 42, 168, 183, 68, 115, 125,\n\t\t100, 50, 109, 81, 134, 15, 95, 142, 139, 55, 207, 206, 188,\n\t\t180, 132, 245, 105, 115, 78, 231, 69, 220, 59, 194, 39, 159,\n\t\t74, 73, 232, 204, 234, 106, 6, 191, 62, 234, 114, 166, 71,\n\t\t47, 212, 239, 155, 166, 126, 226, 71, 62, 7, 122, 19, 185,\n\t\t131, 151, 76, 207, 140, 65, 45, 166, 242, 19, 138, 49, 178,\n\t\t95, 61, 127, 76, 55, 91, 138, 206, 47, 127, 147, 253, 203,\n\t\t85, 86, 72, 186, 44, 129, 55, 255, 203, 219, 182, 214, 143,\n\t\t215, 39, 210, 157, 55, 47, 28, 219, 17, 174, 150, 187, 121,\n\t\t150, 197, 162, 37, 211, 105, 183, 173, 166, 246, 146, 165,\n\t\t14, 199, 213, 238, 95, 136, 221, 249, 149, 146, 59, 137, 90,\n\t\t194, 113, 101, 74, 33, 97, 221, 78, 165, 35, 218, 69, 7, 100,\n\t\t131, 40, 156, 47, 252, 87, 205, 35, 146, 76, 61, 105, 115,\n\t\t248, 79, 171, 234, 221, 249, 248, 245, 211, 237, 41, 239,\n\t\t14, 85, 177, 212, 22, 132, 150, 210, 17, 118, 98, 94, 26,\n\t\t21, 43, 72, 213, 241, 38, 22, 123, 5, 149, 167, 12, 104, 0,\n\t\t78, 216, 22, 85, 152, 170, 80, 23, 70, 199, 1, 241, 88, 4,\n\t\t243, 168, 132, 238, 15, 215, 199, 149, 164, 132, 86, 78, 250,\n\t\t164, 138, 194, 187, 68, 211, 192, 54, 156, 92, 183, 28, 4,\n\t\t199, 1, 131, 15, 130, 66, 110, 248, 66, 179, 12, 53, 118,\n\t\t178, 221, 114, 164, 64, 144, 213, 195, 139, 41, 33, 91, 55,\n\t\t124, 109, 95, 255, 137, 93, 11, 57, 30, 243, 167, 14, 158,\n\t\t181, 231, 124, 242, 2, 141, 18, 234, 214, 31, 231, 254, 92,\n\t\t109, 247, 31, 172, 106, 163, 82, 168, 211, 54, 248, 206, 27,\n\t\t182, 18, 70, 145, 225, 191, 79, 213, 156, 161, 71, 115, 121,\n\t\t107, 237, 181, 91, 41, 123, 196, 212, 63, 66, 58, 98, 93,\n\t\t32, 122, 136, 28, 179, 67, 79, 27, 250, 181, 129, 194, 64,\n\t\t210, 82, 1, 51, 121, 107, 119, 119, 141, 66, 123, 179, 3,\n\t\t234, 142, 114, 74, 96, 88, 4, 244, 64, 147, 246, 218, 220,\n\t\t183, 38, 66, 48, 56, 28, 129, 7, 223, 58, 234, 72, 78, 187,\n\t\t55, 229, 125, 115, 25, 54, 69, 60, 60, 170, 117, 36, 147,\n\t\t121, 99, 102, 210, 163, 88, 27, 226, 35, 233, 204, 16, 212,\n\t\t211, 29, 150, 217, 4, 240, 132, 229, 205, 78, 183, 186, 218,\n\t\t213, 144, 106, 223, 74, 136, 40, 101, 177, 67, 21, 188, 40,\n\t\t199, 5, 11, 58, 126, 137, 246, 16, 220, 152, 199, 83, 211,\n\t\t173, 210, 60, 142, 106, 168, 22, 72, 63, 55, 40, 247, 210,\n\t\t95, 61, 223, 3, 138, 154, 85, 74, 94, 91, 96, 191, 153, 124,\n\t\t35, 246, 234, 88, 253, 108, 166, 91, 202, 108, 22, 52, 152,\n\t\t57, 48, 69, 107, 167, 236, 162, 214, 197, 140, 136, 238, 8,\n\t\t89, 66, 36, 156, 1, 216, 124, 251, 181, 12, 57, 182, 57, 40,\n\t\t116, 78, 88, 81, 180, 4, 213, 17, 107, 108, 141, 24, 253,\n\t\t58, 82, 230, 64, 184, 15, 134, 241, 252, 219, 243, 79, 207,\n\t\t47, 55, 115, 123, 139, 119, 92, 79, 82, 131, 9, 182, 229,\n\t\t122, 90, 83, 14, 149, 108, 107, 77, 113, 0, 215, 199, 24,\n\t\t68, 4, 184, 163, 148, 96, 53, 227, 52, 175, 94, 112, 37, 172,\n\t\t207, 39, 251, 201, 127, 57, 157, 95, 54, 222, 53, 94, 53,\n\t\t222, 116, 113, 247, 11, 94, 58, 222, 115, 153, 195, 43, 138,\n\t\t200, 80, 72, 71, 252, 254, 67, 138, 119, 56, 141, 183, 37,\n\t\t237, 83, 195, 193, 195, 11, 72, 28, 110, 60, 181, 144, 43,\n\t\t139, 149, 198, 47, 94, 168, 234, 209, 216, 40, 6, 112, 44,\n\t\t231, 180, 248, 111, 86, 82, 162, 31, 92, 210, 63, 161, 160,\n\t\t135, 187, 238, 143, 159, 247, 79, 235, 175, 63, 255, 237,\n\t\t102, 20, 221, 160, 224, 92, 184, 13, 52, 10, 125, 161, 14,\n\t\t95, 213, 12, 39, 172, 228, 135, 18, 143, 137, 88, 86, 30,\n\t\t95, 183, 230, 222, 204, 81, 79, 44, 174, 2, 247, 187, 204,\n\t\t100, 101, 50, 46, 181, 24, 116, 71, 76, 161, 78, 49, 6, 56,\n\t\t77, 209, 64, 12, 167, 120, 108, 170, 103, 163, 219, 54, 49,\n\t\t2, 1, 23, 38, 227, 78, 120, 201, 137, 241, 56, 140, 205, 133,\n\t\t135, 213, 121, 248, 183, 186, 101, 135, 220, 4, 195, 238,\n\t\t151, 155, 56, 228, 169, 18, 47, 230, 38, 253, 122, 120, 106,\n\t\t195, 153, 184, 15, 71, 91, 115, 205, 37, 243, 83, 94, 120,\n\t\t40, 201, 197, 5, 120, 207, 56, 69, 247, 82, 158, 161, 59,\n\t\t211, 70, 52, 13, 225, 240, 70, 159, 23, 113, 232, 167, 17,\n\t\t122, 220, 254, 39, 8, 236, 15, 35, 175, 248, 46, 167, 190,\n\t\t209, 207, 169, 120, 133, 48, 167, 101, 152, 47, 16, 39, 1,\n\t\t101, 127, 135, 37, 11, 47, 207, 182, 2, 130, 32, 157, 90,\n\t\t200, 211, 63, 59, 21, 23, 78, 221, 246, 97, 78, 238, 219,\n\t\t232, 67, 196, 248, 15, 75, 43, 58, 200, 76, 106, 238, 177,\n\t\t94, 188, 235, 45, 6, 212, 26, 37, 218, 65, 194, 2, 85, 208,\n\t\t91, 211, 98, 86, 235, 1, 98, 129, 217, 133, 184, 142, 47,\n\t\t195, 244, 87, 6, 104, 105, 26, 181, 109, 217, 115, 48, 155,\n\t\t78, 180, 112, 175, 243, 197, 180, 35, 94, 2, 157, 142, 52,\n\t\t32, 152, 184, 201, 201, 7, 132, 206, 125, 207, 2, 131, 55,\n\t\t227, 111, 105, 91, 30, 222, 222, 101, 56, 194, 195, 162, 168,\n\t\t131, 94, 43, 7, 247, 99, 179, 9, 46, 206, 211, 186, 80, 91,\n\t\t156, 145, 22, 56, 88, 49, 54, 40, 192, 92, 252, 200, 75, 78,\n\t\t115, 176, 226, 179, 118, 136, 59, 58, 14, 153, 108, 188, 98,\n\t\t31, 242, 67, 235, 180, 141, 229, 197, 66, 131, 66, 134, 141,\n\t\t28, 102, 42, 152, 64, 17, 229, 99, 186, 100, 132, 34, 153,\n\t\t237, 102, 155, 149, 155, 22, 183, 236, 225, 31, 195, 41, 123,\n\t\t84, 186, 186, 225, 70, 106, 93, 36, 201, 3, 186, 252, 247,\n\t\t216, 248, 191, 205, 195, 255, 122, 120, 146, 200, 161, 35,\n\t\t236, 28, 28, 198, 11, 80, 29, 188, 103, 207, 150, 85, 236,\n\t\t213, 125, 75, 209, 156, 255, 7, 229, 99, 42, 99, 141, 176,\n\t\t178, 143, 59, 215, 251, 27, 48, 150, 206, 127, 126, 249, 122,\n\t\t227, 114, 181, 221, 224, 107, 159, 215, 78, 172, 251, 196,\n\t\t247, 231, 215, 255, 196, 148, 127, 125, 226, 70, 129, 0, 245,\n\t\t50, 99, 82, 76, 39, 101, 145, 94, 30, 112, 130, 65, 169, 3,\n\t\t4, 164, 51, 62, 146, 40, 216, 194, 234, 26, 3, 178, 16, 42,\n\t\t27, 17, 196, 61, 240, 97, 59, 147, 53, 231, 115, 172, 138,\n\t\t229, 162, 171, 5, 219, 154, 191, 56, 193, 53, 121, 12, 79,\n\t\t30, 161, 48, 67, 252, 235, 35, 18, 198, 87, 83, 187, 62, 194,\n\t\t129, 38, 198, 114, 93, 116, 91, 65, 134, 229, 159, 198, 216,\n\t\t119, 121, 119, 91, 217, 67, 195, 214, 110, 184, 223, 46, 205,\n\t\t249, 0, 27, 198, 121, 248, 49, 105, 13, 186, 45, 47, 35, 120,\n\t\t102, 70, 75, 165, 52, 79, 4, 139, 222, 12, 251, 139, 47, 61,\n\t\t231, 113, 104, 215, 253, 92, 152, 122, 158, 41, 71, 192, 38,\n\t\t111, 235, 25, 107, 148, 134, 125, 116, 50, 106, 140, 58, 235,\n\t\t166, 6, 59, 188, 140, 248, 52, 227, 97, 102, 47, 83, 62, 219,\n\t\t145, 71, 84, 199, 124, 212, 19, 142, 98, 111, 221, 244, 238,\n\t\t184, 144, 207, 8, 23, 86, 199, 10, 237, 193, 34, 27, 251,\n\t\t72, 237, 98, 173, 133, 104, 161, 62, 56, 207, 253, 112, 175,\n\t\t2, 123, 62, 198, 144, 15, 219, 116, 130, 232, 115, 97, 30,\n\t\t11, 36, 140, 31, 190, 53, 235, 3, 219, 96, 120, 119, 51, 241,\n\t\t12, 182, 26, 129, 42, 115, 205, 246, 132, 163, 232, 138, 57,\n\t\t131, 115, 116, 116, 158, 75, 61, 134, 68, 239, 109, 135, 201,\n\t\t118, 210, 83, 215, 177, 200, 38, 99, 153, 186, 28, 67, 158,\n\t\t112, 28, 98, 132, 147, 212, 112, 9, 244, 222, 66, 100, 9,\n\t\t135, 111, 175, 71, 123, 247, 5, 123, 245, 109, 239, 219, 11,\n\t\t221, 227, 5, 230, 211, 255, 219, 62, 237, 55, 43, 204, 13,\n\t\t98, 251, 255, 146, 21, 38, 5, 90, 56, 230, 144, 183, 236,\n\t\t67, 20, 163, 35, 99, 79, 53, 241, 96, 58, 81, 144, 201, 96,\n\t\t199, 33, 48, 25, 32, 136, 55, 249, 218, 172, 201, 71, 56,\n\t\t162, 7, 4, 174, 197, 22, 14, 56, 71, 101, 32, 110, 185, 172,\n\t\t229, 194, 198, 90, 240, 224, 155, 75, 56, 216, 224, 114, 10,\n\t\t97, 24, 87, 52, 35, 139, 134, 164, 130, 155, 217, 75, 62,\n\t\t215, 196, 33, 192, 140, 184, 195, 115, 116, 34, 18, 102, 5,\n\t\t244, 156, 109, 142, 193, 249, 220, 224, 23, 21, 86, 65, 198,\n\t\t0, 104, 241, 99, 151, 144, 15, 251, 250, 230, 26, 200, 90,\n\t\t206, 228, 190, 204, 118, 91, 77, 174, 186, 124, 205, 209,\n\t\t171, 178, 165, 41, 126, 15, 65, 156, 253, 19, 153, 219, 150,\n\t\t7, 60, 19, 125, 54, 185, 214, 87, 76, 8, 93, 114, 90, 46,\n\t\t42, 143, 74, 68, 139, 245, 153, 110, 52, 198, 106, 134, 150,\n\t\t196, 230, 59, 73, 244, 61, 226, 114, 200, 119, 99, 119, 157,\n\t\t65, 141, 118, 61, 10, 122, 216, 172, 113, 40, 207, 49, 123,\n\t\t174, 18, 26, 70, 91, 2, 87, 218, 16, 31, 154, 163, 127, 209,\n\t\t20, 253, 245, 203, 63, 63, 125, 253, 245, 203, 231, 95, 110,\n\t\t176, 68, 183, 116, 231, 20, 213, 37, 212, 133, 106, 9, 109,\n\t\t155, 72, 203, 148, 173, 152, 54, 131, 70, 207, 187, 20, 123,\n\t\t113, 46, 114, 95, 183, 62, 70, 247, 216, 144, 206, 11, 109,\n\t\t74, 190, 33, 166, 17, 239, 58, 3, 77, 201, 109, 12, 62, 135,\n\t\t6, 136, 178, 142, 154, 149, 93, 0, 43, 54, 139, 143, 92, 199,\n\t\t146, 248, 135, 5, 183, 59, 43, 229, 235, 127, 244, 106, 85,\n\t\t171, 153, 213, 13, 224, 211, 55, 120, 63, 24, 86, 163, 8,\n\t\t52, 45, 80, 61, 174, 141, 14, 239, 196, 82, 143, 56, 94, 247,\n\t\t72, 161, 222, 195, 35, 152, 112, 137, 16, 66, 238, 65, 133,\n\t\t103, 19, 166, 55, 230, 81, 77, 149, 192, 204, 48, 98, 27,\n\t\t26, 46, 171, 29, 114, 30, 143, 223, 207, 255, 120, 39, 8,\n\t\t127, 187, 7, 11, 232, 83, 47, 230, 142, 14, 207, 45, 247,\n\t\t55, 147, 79, 19, 182, 28, 82, 171, 206, 69, 104, 30, 178,\n\t\t226, 94, 196, 0, 155, 141, 21, 162, 13, 119, 193, 100, 132,\n\t\t191, 170, 127, 217, 36, 52, 248, 185, 172, 227, 75, 13, 17,\n\t\t104, 55, 136, 6, 109, 146, 46, 18, 12, 184, 246, 219, 199,\n\t\t229, 59, 236, 48, 99, 172, 124, 147, 227, 35, 25, 218, 214,\n\t\t55, 131, 171, 198, 96, 121, 116, 92, 134, 64, 153, 50, 44,\n\t\t247, 134, 249, 212, 6, 230, 211, 53, 56, 212, 203, 91, 16,\n\t\t40, 36, 165, 43, 244, 167, 151, 43, 196, 169, 5, 104, 180,\n\t\t12, 38, 78, 15, 106, 216, 87, 233, 33, 147, 212, 5, 159, 169,\n\t\t24, 16, 112, 5, 188, 196, 5, 250, 111, 230, 139, 132, 226,\n\t\t112, 205, 7, 115, 106, 204, 128, 63, 141, 142, 44, 236, 239,\n\t\t121, 251, 190, 242, 230, 121, 149, 104, 155, 10, 237, 112,\n\t\t209, 209, 247, 1, 23, 56, 26, 180, 47, 159, 223, 49, 190,\n\t\t236, 235, 248, 13, 170, 44, 189, 251, 97, 200, 29, 134, 236,\n\t\t55, 192, 254, 183, 114, 207, 174, 241, 71, 23, 176, 71, 155,\n\t\t9, 130, 213, 2, 56, 222, 245, 172, 142, 181, 21, 144, 215,\n\t\t112, 54, 179, 213, 213, 174, 184, 194, 202, 131, 111, 88,\n\t\t181, 61, 106, 190, 190, 216, 78, 74, 236, 91, 42, 3, 44, 203,\n\t\t165, 17, 60, 193, 64, 94, 55, 69, 200, 191, 179, 110, 30,\n\t\t254, 170, 133, 147, 98, 10, 160, 215, 60, 154, 229, 180, 216,\n\t\t201, 223, 23, 211, 238, 129, 235, 201, 2, 58, 253, 30, 51,\n\t\t211, 113, 11, 188, 8, 111, 162, 139, 69, 174, 83, 2, 65, 173,\n\t\t178, 7, 115, 23, 182, 51, 207, 68, 93, 240, 195, 254, 155,\n\t\t147, 214, 84, 164, 60, 56, 106, 89, 167, 156, 46, 203, 113,\n\t\t231, 98, 189, 248, 188, 123, 9, 183, 5, 147, 67, 187, 159,\n\t\t175, 230, 82, 239, 29, 220, 134, 48, 228, 123, 71, 30, 176,\n\t\t19, 158, 240, 129, 161, 255, 251, 207, 159, 191, 220, 12,\n\t\t252, 27, 204, 199, 255, 21, 7, 2, 42, 186, 181, 58, 149, 210,\n\t\t124, 9, 121, 219, 208, 240, 218, 214, 149, 109, 129, 8, 40,\n\t\t121, 72, 239, 199, 149, 219, 35, 244, 146, 195, 105, 205,\n\t\t143, 224, 75, 184, 237, 231, 151, 110, 83, 69, 93, 3, 112,\n\t\t205, 179, 161, 156, 155, 48, 134, 50, 88, 144, 12, 47, 221,\n\t\t221, 104, 86, 182, 153, 237, 160, 32, 196, 46, 221, 102, 87,\n\t\t199, 73, 26, 74, 8, 21, 223, 217, 77, 226, 8, 110, 181, 175,\n\t\t149, 253, 8, 30, 67, 50, 133, 4, 212, 201, 83, 197, 80, 252,\n\t\t136, 224, 71, 145, 203, 215, 169, 204, 60, 143, 203, 174,\n\t\t118, 243, 107, 118, 13, 96, 196, 157, 201, 16, 246, 107, 15,\n\t\t90, 145, 22, 234, 89, 243, 193, 195, 243, 228, 54, 163, 233,\n\t\t158, 157, 55, 25, 96, 38, 226, 179, 79, 134, 84, 63, 220,\n\t\t203, 49, 108, 36, 52, 107, 144, 238, 118, 89, 27, 109, 236,\n\t\t147, 34, 251, 34, 240, 246, 221, 217, 171, 148, 203, 50, 190,\n\t\t146, 69, 91, 128, 237, 44, 134, 246, 158, 176, 127, 248, 55,\n\t\t22, 232, 31, 42, 237, 159, 62, 255, 252, 233, 118, 254, 181,\n\t\t239, 149, 150, 74, 144, 146, 217, 225, 149, 141, 180, 158,\n\t\t67, 230, 46, 203, 216, 150, 239, 73, 75, 230, 188, 112, 33,\n\t\t45, 129, 8, 243, 66, 88, 178, 235, 41, 43, 253, 161, 37, 225,\n\t\t174, 36, 245, 136, 46, 237, 188, 38, 220, 149, 164, 60, 18,\n\t\t185, 128, 89, 121, 131, 18, 220, 56, 194, 225, 58, 13, 7,\n\t\t166, 218, 205, 244, 211, 157, 54, 186, 151, 94, 119, 29, 91,\n\t\t86, 73, 253, 66, 92, 79, 210, 2, 52, 241, 247, 65, 39, 117,\n\t\t207, 190, 42, 248, 117, 21, 207, 177, 161, 223, 132, 85, 60,\n\t\t28, 177, 247, 127, 27, 86, 209, 11, 179, 191, 41, 101, 108,\n\t\t224, 241, 140, 230, 63, 156, 205, 107, 116, 84, 108, 77, 64,\n\t\t30, 151, 229, 178, 166, 149, 234, 9, 24, 49, 69, 30, 15, 84,\n\t\t29, 158, 55, 227, 244, 6, 219, 244, 63, 123, 156, 254, 39,\n\t\t203, 244, 88, 222, 10, 200, 217, 122, 166, 157, 186, 133,\n\t\t194, 113, 12, 173, 73, 219, 244, 28, 7, 70, 252, 104, 238,\n\t\t17, 64, 50, 194, 106, 195, 144, 125, 243, 188, 150, 80, 186,\n\t\t216, 22, 24, 28, 33, 52, 154, 171, 48, 47, 50, 97, 253, 67,\n\t\t131, 103, 68, 10, 49, 75, 37, 139, 58, 64, 72, 53, 44, 191,\n\t\t251, 219, 203, 195, 70, 33, 194, 173, 57, 34, 230, 144, 193,\n\t\t29, 143, 23, 232, 198, 82, 226, 249, 218, 95, 136, 220, 169,\n\t\t130, 16, 34, 134, 146, 205, 140, 28, 154, 185, 26, 93, 21,\n\t\t21, 130, 206, 185, 182, 9, 86, 178, 214, 184, 145, 102, 216,\n\t\t19, 75, 19, 29, 23, 5, 212, 30, 20, 170, 121, 6, 75, 232,\n\t\t230, 16, 99, 9, 42, 185, 89, 142, 218, 81, 154, 149, 233,\n\t\t138, 61, 243, 213, 51, 67, 238, 37, 246, 180, 175, 37, 133,\n\t\t86, 10, 195, 129, 172, 17, 101, 152, 21, 70, 118, 104, 247,\n\t\t218, 208, 86, 158, 225, 40, 193, 122, 93, 4, 116, 110, 224,\n\t\t78, 186, 201, 32, 244, 221, 188, 60, 173, 199, 46, 239, 78,\n\t\t49, 201, 126, 157, 175, 118, 110, 30, 148, 178, 45, 150, 2,\n\t\t181, 154, 245, 234, 40, 237, 114, 93, 124, 168, 186, 45, 158,\n\t\t121, 100, 52, 179, 190, 106, 153, 215, 39, 170, 9, 156, 210,\n\t\t43, 27, 212, 236, 97, 139, 33, 69, 35, 113, 136, 129, 8, 60,\n\t\t19, 20, 34, 40, 182, 87, 96, 192, 182, 82, 23, 10, 121, 154,\n\t\t36, 145, 178, 177, 59, 227, 196, 5, 225, 60, 24, 134, 58,\n\t\t224, 89, 143, 105, 45, 229, 186, 8, 96, 128, 105, 47, 100,\n\t\t17, 173, 76, 132, 160, 245, 153, 205, 204, 89, 95, 234, 61,\n\t\t106, 25, 95, 36, 100, 95, 108, 53, 63, 196, 29, 140, 108,\n\t\t70, 182, 208, 7, 166, 44, 200, 55, 231, 12, 87, 124, 208,\n\t\t217, 86, 44, 112, 232, 203, 153, 17, 145, 129, 230, 106, 78,\n\t\t20, 243, 50, 107, 184, 106, 86, 73, 143, 207, 163, 134, 235,\n\t\t200, 18, 112, 167, 78, 50, 231, 153, 175, 154, 89, 117, 248,\n\t\t55, 4, 32, 141, 90, 174, 163, 154, 231, 230, 68, 254, 120,\n\t\t252, 50, 55, 203, 127, 125, 91, 0, 233, 8, 52, 28, 141, 59,\n\t\t179, 211, 252, 5, 253, 105, 117, 245, 252, 95, 159, 68, 50,\n\t\t200, 169, 41, 182, 16, 11, 105, 119, 250, 184, 157, 195, 118,\n\t\t140, 186, 235, 105, 227, 131, 16, 19, 212, 6, 208, 122, 49,\n\t\t110, 98, 206, 136, 58, 241, 89, 237, 3, 233, 60, 85, 198,\n\t\t136, 93, 231, 144, 157, 35, 118, 189, 88, 136, 204, 164, 61,\n\t\t134, 236, 24, 177, 235, 121, 200, 174, 51, 171, 203, 249,\n\t\t98, 163, 118, 76, 47, 91, 22, 154, 135, 111, 123, 96, 213,\n\t\t92, 7, 215, 185, 16, 206, 229, 100, 189, 156, 52, 150, 114,\n\t\t94, 12, 215, 177, 26, 206, 197, 112, 29, 171, 225, 88, 187,\n\t\t214, 177, 26, 142, 213, 111, 245, 213, 208, 86, 71, 25, 9,\n\t\t88, 106, 108, 61, 92, 231, 130, 56, 151, 212, 117, 44, 137,\n\t\t235, 245, 123, 173, 20, 190, 70, 205, 117, 105, 172, 138,\n\t\t215, 101, 222, 111, 107, 63, 87, 197, 243, 58, 117, 179, 38,\n\t\t93, 183, 226, 118, 94, 21, 199, 162, 56, 243, 190, 234, 160,\n\t\t7, 140, 31, 127, 251, 180, 126, 125, 7, 156, 104, 251, 249,\n\t\t127, 128, 44, 41, 113, 15, 197, 64, 161, 67, 74, 180, 77,\n\t\t207, 78, 184, 179, 226, 104, 17, 67, 167, 140, 104, 120, 66,\n\t\t188, 154, 1, 98, 76, 14, 184, 181, 120, 124, 234, 248, 178,\n\t\t81, 155, 164, 0, 49, 114, 215, 71, 25, 40, 245, 92, 52, 47,\n\t\t25, 143, 206, 119, 89, 232, 115, 47, 135, 45, 75, 136, 212,\n\t\t138, 49, 228, 38, 70, 48, 145, 209, 220, 190, 172, 23, 151,\n\t\t78, 133, 11, 150, 220, 145, 60, 40, 115, 47, 175, 45, 73,\n\t\t133, 130, 26, 114, 238, 139, 148, 172, 37, 216, 214, 89, 187,\n\t\t233, 200, 58, 235, 231, 245, 93, 175, 11, 185, 223, 214, 211,\n\t\t235, 231, 245, 29, 181, 27, 213, 189, 106, 168, 215, 167,\n\t\t198, 65, 162, 212, 165, 72, 200, 185, 21, 0, 56, 90, 230,\n\t\t163, 56, 35, 239, 81, 152, 111, 150, 97, 20, 97, 245, 188,\n\t\t71, 81, 214, 145, 249, 40, 204, 117, 119, 225, 204, 166, 61,\n\t\t13, 142, 160, 40, 117, 27, 121, 143, 194, 140, 188, 189, 44,\n\t\t223, 236, 238, 115, 17, 70, 222, 163, 223, 103, 222, 179,\n\t\t227, 111, 58, 252, 174, 243, 155, 113, 137, 173, 191, 124,\n\t\t249, 109, 59, 222, 76, 146, 79, 103, 198, 215, 182, 164, 216,\n\t\t66, 7, 207, 34, 13, 115, 119, 10, 165, 86, 176, 81, 81, 169,\n\t\t11, 247, 96, 113, 122, 18, 184, 243, 70, 177, 134, 168, 162,\n\t\t20, 246, 184, 138, 32, 90, 176, 198, 18, 216, 135, 211, 57,\n\t\t129, 147, 133, 20, 66, 218, 44, 161, 98, 211, 51, 161, 84,\n\t\t127, 172, 161, 218, 93, 53, 164, 82, 236, 75, 71, 12, 1, 64,\n\t\t119, 177, 170, 50, 22, 52, 251, 77, 215, 26, 138, 61, 128,\n\t\t189, 132, 83, 11, 89, 84, 182, 45, 161, 20, 120, 48, 20, 99,\n\t\t194, 39, 132, 102, 129, 35, 201, 68, 82, 146, 160, 189, 219,\n\t\t114, 232, 16, 134, 117, 147, 227, 195, 6, 170, 77, 130, 173,\n\t\t19, 1, 167, 18, 67, 76, 134, 76, 153, 1, 26, 51, 19, 180,\n\t\t226, 146, 128, 59, 30, 74, 170, 38, 97, 233, 218, 159, 112,\n\t\t34, 208, 69, 208, 92, 152, 169, 176, 121, 246, 21, 4, 71,\n\t\t178, 132, 88, 186, 108, 107, 197, 43, 205, 143, 196, 2, 86,\n\t\t73, 82, 192, 178, 223, 25, 145, 124, 231, 4, 170, 21, 148,\n\t\t43, 200, 67, 151, 205, 188, 232, 152, 183, 128, 197, 166,\n\t\t173, 139, 64, 243, 180, 141, 95, 35, 146, 198, 61, 126, 139,\n\t\t30, 3, 116, 140, 54, 78, 110, 41, 206, 125, 161, 156, 131,\n\t\t237, 168, 200, 44, 45, 35, 175, 21, 200, 46, 73, 16, 148,\n\t\t88, 89, 188, 14, 25, 248, 194, 22, 112, 58, 18, 80, 39, 0,\n\t\t245, 134, 146, 31, 96, 149, 255, 250, 252, 235, 167, 175,\n\t\t235, 175, 251, 243, 47, 55, 135, 181, 159, 103, 44, 118, 210,\n\t\t89, 158, 82, 64, 28, 134, 43, 213, 22, 65, 120, 168, 233,\n\t\t171, 36, 15, 157, 139, 153, 154, 119, 128, 49, 33, 126, 151,\n\t\t167, 217, 111, 90, 157, 219, 60, 205, 132, 225, 183, 103,\n\t\t94, 116, 134, 136, 160, 67, 116, 201, 3, 32, 161, 24, 78,\n\t\t238, 100, 174, 78, 19, 25, 215, 88, 84, 39, 196, 172, 93,\n\t\t145, 233, 189, 78, 45, 134, 188, 235, 224, 238, 11, 195, 114,\n\t\t157, 28, 207, 117, 248, 195, 136, 27, 178, 199, 25, 107, 109,\n\t\t174, 190, 53, 111, 190, 195, 190, 114, 171, 65, 183, 149,\n\t\t44, 1, 1, 239, 37, 0, 230, 186, 192, 172, 73, 237, 236, 79,\n\t\t58, 12, 165, 50, 41, 190, 237, 149, 14, 58, 124, 183, 253,\n\t\t143, 159, 95, 126, 251, 242, 245, 134, 201, 224, 231, 25,\n\t\t177, 148, 1, 67, 206, 33, 149, 190, 25, 169, 140, 216, 84,\n\t\t133, 171, 28, 81, 32, 219, 12, 131, 212, 49, 7, 217, 18, 82,\n\t\t105, 219, 154, 123, 136, 48, 121, 232, 68, 153, 0, 165, 18,\n\t\t152, 5, 58, 69, 3, 84, 207, 57, 52, 166, 37, 39, 176, 240,\n\t\t216, 82, 87, 43, 45, 109, 202, 6, 20, 122, 204, 8, 164, 207,\n\t\t48, 41, 122, 64, 162, 228, 80, 98, 73, 59, 145, 173, 128,\n\t\t254, 185, 105, 99, 234, 136, 183, 15, 102, 163, 203, 232,\n\t\t33, 103, 224, 201, 146, 33, 209, 80, 232, 77, 210, 97, 19,\n\t\t10, 210, 60, 128, 31, 113, 110, 149, 2, 69, 205, 23, 72, 95,\n\t\t61, 3, 120, 93, 192, 112, 104, 9, 247, 103, 22, 180, 185,\n\t\t246, 251, 122, 249, 211, 152, 156, 192, 118, 2, 115, 72, 132,\n\t\t95, 3, 89, 196, 106, 11, 189, 24, 91, 108, 9, 177, 52, 131,\n\t\t153, 17, 42, 123, 142, 32, 122, 2, 180, 14, 24, 159, 40, 14,\n\t\t112, 39, 255, 194, 131, 35, 1, 161, 194, 233, 28, 42, 60,\n\t\t83, 142, 43, 37, 96, 0, 56, 0, 164, 81, 235, 13, 0, 200, 65,\n\t\t157, 71, 229, 228, 183, 153, 1, 6, 139, 156, 78, 58, 73, 112,\n\t\t67, 30, 145, 197, 200, 3, 89, 72, 222, 83, 15, 70, 230, 229,\n\t\t95, 182, 148, 66, 102, 65, 108, 101, 6, 209, 77, 132, 52,\n\t\t190, 148, 22, 74, 75, 101, 161, 138, 208, 233, 113, 13, 249,\n\t\t171, 65, 224, 211, 5, 31, 1, 68, 186, 5, 180, 33, 129, 85,\n\t\t93, 198, 95, 159, 68, 23, 22, 125, 29, 136, 72, 192, 130,\n\t\t75, 82, 77, 143, 153, 10, 251, 42, 76, 217, 176, 166, 37,\n\t\t233, 105, 69, 196, 25, 158, 156, 220, 234, 96, 20, 142, 177,\n\t\t243, 146, 163, 202, 202, 39, 18, 240, 211, 221, 211, 137,\n\t\t60, 38, 155, 136, 41, 72, 234, 144, 195, 13, 169, 64, 23,\n\t\t241, 202, 219, 44, 153, 22, 181, 84, 40, 131, 141, 90, 104,\n\t\t20, 117, 146, 110, 121, 73, 239, 207, 214, 79, 207, 239, 193,\n\t\t109, 254, 252, 150, 119, 164, 56, 191, 245, 61, 106, 68, 169,\n\t\t129, 107, 78, 134, 211, 236, 23, 119, 41, 23, 63, 200, 184,\n\t\t88, 226, 131, 225, 53, 33, 81, 245, 142, 139, 44, 12, 16,\n\t\t85, 140, 114, 192, 248, 168, 56, 74, 224, 68, 70, 234, 132,\n\t\t95, 136, 14, 255, 25, 133, 68, 219, 1, 226, 122, 180, 221,\n\t\t247, 188, 80, 11, 244, 168, 90, 135, 199, 245, 242, 38, 178,\n\t\t246, 178, 198, 99, 107, 73, 255, 229, 79, 47, 228, 131, 173,\n\t\t254, 235, 243, 223, 191, 62, 255, 122, 35, 107, 254, 124,\n\t\t15, 45, 54, 54, 48, 78, 221, 159, 127, 194, 143, 85, 163,\n\t\t41, 158, 86, 73, 233, 241, 141, 114, 163, 18, 191, 82, 161,\n\t\t74, 74, 110, 242, 252, 33, 175, 51, 144, 171, 214, 130, 43,\n\t\t170, 116, 124, 134, 152, 146, 238, 66, 206, 78, 87, 180, 193,\n\t\t117, 169, 231, 13, 63, 117, 166, 190, 52, 61, 6, 200, 82,\n\t\t117, 237, 111, 12, 194, 248, 78, 109, 161, 66, 144, 122, 253,\n\t\t250, 200, 162, 107, 208, 125, 95, 238, 151, 253, 243, 207,\n\t\t159, 190, 190, 172, 183, 93, 243, 233, 114, 101, 41, 233,\n\t\t194, 85, 203, 232, 113, 161, 30, 190, 154, 123, 38, 132, 188,\n\t\t199, 171, 47, 82, 6, 165, 194, 221, 219, 248, 46, 251, 190,\n\t\t222, 242, 128, 160, 223, 135, 50, 126, 63, 151, 210, 6, 114,\n\t\t139, 70, 33, 241, 141, 159, 117, 170, 221, 171, 165, 222,\n\t\t34, 229, 21, 13, 194, 252, 189, 45, 210, 226, 15, 106, 16,\n\t\t104, 254, 255, 96, 139, 104, 183, 24, 245, 198, 55, 219, 228,\n\t\t81, 147, 180, 104, 45, 34, 237, 123, 91, 196, 192, 167, 127,\n\t\t68, 147, 112, 108, 15, 154, 228, 78, 149, 181, 24, 247, 135,\n\t\t201, 163, 38, 225, 120, 159, 135, 239, 229, 248, 252, 245,\n\t\t211, 250, 188, 223, 184, 77, 126, 186, 19, 194, 8, 67, 10,\n\t\t183, 183, 10, 156, 43, 149, 205, 203, 181, 174, 198, 18, 47,\n\t\t52, 61, 166, 179, 57, 197, 16, 25, 26, 63, 208, 173, 226,\n\t\t136, 74, 30, 17, 78, 25, 2, 203, 194, 129, 161, 72, 4, 147,\n\t\t50, 103, 0, 111, 133, 212, 116, 45, 128, 142, 16, 206, 195,\n\t\t9, 250, 47, 146, 16, 193, 99, 44, 53, 80, 35, 115, 92, 104,\n\t\t16, 223, 115, 15, 181, 207, 235, 109, 61, 151, 254, 182, 84,\n\t\t47, 111, 212, 81, 208, 86, 49, 155, 28, 31, 245, 72, 99, 90,\n\t\t104, 61, 234, 119, 73, 203, 219, 55, 239, 183, 165, 211, 75,\n\t\t145, 165, 132, 74, 208, 241, 142, 10, 77, 50, 187, 203, 26,\n\t\t166, 168, 162, 211, 40, 221, 117, 65, 94, 62, 216, 212, 240,\n\t\t1, 240, 2, 175, 163, 196, 163, 192, 222, 22, 40, 112, 185,\n\t\t104, 207, 21, 69, 78, 245, 176, 17, 96, 169, 18, 32, 167,\n\t\t154, 0, 17, 204, 74, 104, 70, 210, 152, 207, 9, 231, 50, 175,\n\t\t56, 65, 65, 59, 228, 61, 168, 119, 83, 198, 97, 236, 205,\n\t\t237, 212, 246, 183, 121, 74, 221, 70, 31, 142, 46, 28, 61,\n\t\t56, 58, 240, 162, 204, 233, 1, 53, 235, 24, 212, 223, 96,\n\t\t151, 252, 116, 19, 88, 121, 21, 158, 91, 254, 74, 2, 201,\n\t\t187, 68, 150, 175, 79, 2, 206, 14, 134, 26, 19, 132, 184,\n\t\t30, 37, 3, 238, 186, 60, 162, 255, 165, 134, 218, 28, 169,\n\t\t160, 212, 216, 247, 181, 84, 144, 43, 234, 105, 160, 166,\n\t\t4, 99, 71, 137, 93, 16, 96, 130, 131, 28, 133, 154, 136, 225,\n\t\t131, 30, 161, 73, 247, 75, 9, 173, 67, 119, 228, 246, 26,\n\t\t88, 27, 28, 70, 41, 6, 50, 21, 218, 229, 205, 37, 239, 111,\n\t\t51, 219, 250, 64, 208, 237, 129, 0, 162, 166, 7, 13, 166,\n\t\t234, 197, 163, 190, 188, 45, 47, 117, 224, 156, 50, 66, 252,\n\t\t13, 197, 13, 234, 157, 92, 150, 92, 94, 214, 139, 203, 213,\n\t\t147, 178, 131, 9, 67, 9, 100, 233, 16, 78, 83, 168, 56, 191,\n\t\t198, 80, 162, 177, 214, 246, 144, 178, 144, 153, 220, 16,\n\t\t154, 238, 21, 156, 45, 180, 142, 82, 175, 90, 236, 6, 15,\n\t\t30, 43, 53, 206, 71, 28, 235, 50, 74, 109, 205, 204, 60, 18,\n\t\t12, 255, 213, 138, 253, 94, 145, 94, 46, 175, 45, 105, 59,\n\t\t119, 227, 232, 197, 209, 137, 163, 77, 70, 23, 94, 149, 207,\n\t\t12, 173, 214, 135, 171, 132, 90, 220, 230, 100, 181, 234,\n\t\t161, 215, 146, 47, 83, 192, 190, 198, 114, 90, 99, 136, 146,\n\t\t41, 23, 131, 13, 247, 2, 223, 150, 236, 229, 186, 225, 17,\n\t\t118, 25, 35, 222, 203, 80, 17, 131, 221, 19, 247, 104, 177,\n\t\t11, 198, 205, 234, 159, 246, 113, 159, 169, 225, 203, 63,\n\t\t126, 186, 153, 139, 19, 72, 54, 37, 4, 18, 229, 30, 242, 190,\n\t\t130, 138, 158, 119, 139, 55, 213, 191, 219, 36, 199, 25, 95,\n\t\t102, 2, 123, 220, 168, 249, 89, 117, 32, 58, 142, 168, 229,\n\t\t213, 137, 172, 128, 186, 139, 192, 178, 65, 252, 228, 161,\n\t\t45, 6, 90, 243, 38, 161, 89, 116, 20, 164, 106, 50, 39, 168,\n\t\t181, 203, 244, 131, 107, 231, 63, 47, 248, 214, 197, 82, 56,\n\t\t214, 208, 95, 198, 157, 150, 130, 255, 135, 13, 145, 48, 81,\n\t\t151, 176, 124, 246, 132, 107, 67, 97, 232, 57, 239, 163, 208,\n\t\t254, 185, 93, 215, 116, 84, 116, 92, 123, 109, 151, 120, 209,\n\t\t78, 123, 230, 37, 243, 235, 83, 142, 113, 145, 118, 229, 195,\n\t\t126, 69, 84, 246, 114, 237, 172, 103, 128, 140, 124, 67, 73,\n\t\t246, 214, 103, 239, 229, 141, 43, 60, 40, 48, 210, 171, 118,\n\t\t223, 146, 82, 59, 220, 205, 241, 164, 47, 191, 112, 6, 124,\n\t\t175, 0, 47, 183, 57, 158, 56, 93, 208, 173, 93, 103, 255,\n\t\t250, 148, 170, 132, 190, 72, 23, 120, 68, 123, 144, 217, 217,\n\t\t147, 209, 228, 173, 153, 80, 151, 56, 35, 156, 103, 176, 186,\n\t\t123, 237, 159, 221, 249, 235, 78, 117, 161, 58, 117, 166,\n\t\t87, 119, 140, 203, 186, 196, 195, 188, 231, 252, 214, 193,\n\t\t95, 54, 223, 183, 82, 125, 125, 74, 177, 4, 210, 114, 234,\n\t\t0, 213, 151, 175, 87, 111, 159, 215, 151, 5, 217, 222, 150,\n\t\t149, 216, 121, 179, 206, 37, 216, 177, 180, 206, 27, 175,\n\t\t43, 247, 166, 20, 231, 60, 215, 235, 223, 223, 52, 209, 108,\n\t\t213, 220, 253, 245, 31, 173, 231, 182, 94, 149, 99, 29, 69,\n\t\t126, 147, 193, 69, 27, 60, 234, 138, 15, 116, 2, 28, 252,\n\t\t23, 50, 38, 133, 129, 119, 235, 145, 229, 37, 217, 191, 55,\n\t\t194, 242, 165, 44, 253, 242, 86, 114, 94, 192, 89, 144, 7,\n\t\t12, 180, 137, 84, 105, 172, 0, 46, 95, 157, 143, 6, 111, 4,\n\t\t122, 253, 120, 185, 122, 253, 125, 63, 177, 223, 127, 251,\n\t\t233, 203, 77, 116, 225, 39, 185, 210, 125, 15, 227, 84, 135,\n\t\t251, 195, 119, 154, 130, 95, 222, 53, 49, 191, 62, 165, 12,\n\t\t166, 128, 253, 130, 149, 125, 137, 129, 27, 51, 215, 29, 8,\n\t\t206, 5, 38, 49, 198, 246, 191, 175, 133, 77, 57, 144, 91,\n\t\t200, 187, 202, 111, 57, 209, 210, 82, 144, 156, 243, 46, 201,\n\t\t216, 145, 87, 149, 231, 152, 235, 1, 225, 202, 173, 53, 32,\n\t\t208, 155, 138, 180, 104, 70, 226, 172, 171, 112, 27, 138,\n\t\t49, 212, 216, 13, 138, 35, 150, 93, 37, 228, 172, 146, 173,\n\t\t16, 104, 172, 247, 181, 166, 208, 51, 160, 105, 41, 100, 46,\n\t\t233, 156, 130, 132, 156, 230, 51, 254, 200, 6, 76, 121, 83,\n\t\t49, 9, 14, 27, 0, 149, 55, 184, 23, 105, 131, 171, 212, 51,\n\t\t94, 71, 206, 146, 12, 164, 82, 176, 219, 1, 77, 143, 58, 39,\n\t\t144, 89, 163, 126, 86, 251, 90, 151, 21, 213, 159, 205, 227,\n\t\t173, 115, 120, 211, 138, 235, 104, 198, 205, 196, 113, 216,\n\t\t35, 72, 156, 137, 162, 9, 248, 144, 23, 105, 33, 193, 125,\n\t\t143, 168, 134, 222, 105, 175, 161, 198, 68, 6, 104, 81, 243,\n\t\t222, 244, 64, 212, 92, 217, 156, 170, 236, 226, 28, 122, 107,\n\t\t173, 160, 246, 223, 87, 238, 161, 71, 183, 140, 213, 86, 104,\n\t\t75, 49, 48, 136, 67, 73, 12, 194, 183, 25, 208, 190, 94, 166,\n\t\t154, 23, 210, 93, 165, 2, 11, 123, 60, 235, 143, 206, 183,\n\t\t143, 151, 143, 236, 71, 238, 94, 186, 213, 139, 119, 216,\n\t\t56, 133, 94, 51, 204, 202, 8, 210, 70, 125, 184, 46, 218,\n\t\t67, 181, 148, 121, 237, 213, 123, 125, 210, 45, 83, 37, 46,\n\t\t98, 14, 137, 59, 138, 0, 97, 191, 155, 229, 96, 175, 122,\n\t\t99, 129, 116, 129, 206, 30, 215, 235, 72, 208, 39, 10, 144,\n\t\t137, 253, 145, 227, 218, 75, 72, 245, 65, 4, 203, 111, 183,\n\t\t196, 217, 159, 210, 156, 114, 206, 124, 38, 41, 5, 170, 109,\n\t\t35, 105, 33, 171, 96, 230, 159, 82, 56, 116, 41, 184, 22,\n\t\t46, 75, 142, 128, 187, 93, 226, 86, 66, 172, 112, 53, 25,\n\t\t95, 106, 136, 53, 57, 107, 32, 176, 156, 56, 100, 128, 235,\n\t\t225, 120, 214, 98, 221, 65, 203, 73, 136, 97, 237, 48, 37,\n\t\t108, 43, 135, 94, 185, 0, 210, 165, 218, 41, 172, 7, 243,\n\t\t116, 107, 161, 16, 4, 81, 202, 33, 195, 230, 235, 41, 192,\n\t\t164, 76, 186, 68, 170, 36, 186, 196, 144, 13, 179, 118, 45,\n\t\t160, 206, 214, 51, 181, 16, 101, 222, 215, 86, 66, 98, 130,\n\t\t163, 70, 46, 93, 16, 50, 39, 5, 66, 58, 176, 137, 217, 0,\n\t\t6, 56, 65, 71, 232, 185, 141, 132, 10, 56, 214, 45, 106, 6,\n\t\t17, 48, 110, 48, 169, 69, 210, 133, 195, 241, 194, 34, 152,\n\t\t19, 56, 202, 66, 193, 86, 142, 236, 108, 223, 42, 254, 8,\n\t\t241, 166, 51, 135, 82, 198, 84, 73, 102, 74, 19, 157, 162,\n\t\t69, 207, 71, 189, 21, 0, 247, 194, 31, 117, 137, 120, 24,\n\t\t6, 103, 60, 205, 80, 62, 102, 111, 101, 45, 5, 206, 153, 231,\n\t\t60, 215, 219, 98, 172, 90, 142, 108, 202, 235, 18, 154, 113,\n\t\t243, 231, 169, 118, 78, 193, 252, 61, 71, 37, 87, 212, 50,\n\t\t102, 111, 42, 49, 148, 24, 237, 135, 13, 184, 180, 64, 144,\n\t\t138, 161, 178, 232, 153, 126, 77, 240, 233, 130, 155, 28,\n\t\t90, 24, 121, 68, 240, 140, 123, 10, 176, 151, 33, 182, 67,\n\t\t154, 10, 185, 38, 94, 196, 1, 187, 172, 39, 75, 95, 188, 35,\n\t\t125, 60, 196, 190, 96, 56, 52, 168, 15, 178, 180, 168, 71,\n\t\t112, 119, 17, 227, 80, 91, 37, 90, 180, 111, 83, 202, 231,\n\t\t132, 30, 42, 149, 166, 21, 77, 129, 58, 193, 35, 210, 220,\n\t\t233, 122, 232, 189, 71, 99, 50, 2, 51, 53, 3, 219, 217, 192,\n\t\t54, 63, 130, 210, 125, 203, 171, 244, 150, 55, 233, 45, 79,\n\t\t212, 27, 194, 164, 229, 29, 70, 165, 119, 144, 194, 95, 159,\n\t\t168, 243, 71, 11, 115, 67, 128, 245, 227, 75, 99, 144, 206,\n\t\t31, 42, 205, 159, 95, 24, 105, 73, 11, 115, 248, 207, 40,\n\t\t77, 106, 241, 47, 106, 154, 195, 7, 74, 67, 41, 45, 41, 253,\n\t\t5, 133, 249, 64, 89, 24, 167, 160, 31, 82, 150, 195, 119,\n\t\t23, 70, 164, 252, 168, 194, 124, 119, 89, 146, 240, 7, 203,\n\t\t242, 23, 76, 109, 4, 135, 241, 71, 10, 243, 231, 151, 69,\n\t\t160, 101, 229, 15, 204, 108, 22, 254, 174, 226, 240, 67, 194,\n\t\t203, 49, 183, 255, 154, 198, 249, 192, 220, 190, 171, 77,\n\t\t250, 252, 203, 151, 237, 247, 253, 249, 235, 13, 155, 205,\n\t\t167, 60, 117, 74, 84, 150, 20, 227, 9, 202, 218, 94, 12, 205,\n\t\t247, 154, 197, 116, 154, 83, 74, 122, 203, 97, 122, 69, 150,\n\t\t250, 250, 84, 196, 240, 189, 185, 181, 16, 105, 139, 33, 85,\n\t\t21, 186, 0, 219, 203, 145, 150, 65, 188, 46, 198, 54, 128,\n\t\t79, 184, 12, 219, 245, 177, 3, 132, 29, 140, 238, 209, 172,\n\t\t183, 84, 62, 64, 92, 220, 203, 3, 144, 228, 148, 14, 155,\n\t\t184, 39, 52, 193, 13, 114, 41, 147, 238, 57, 6, 2, 157, 148,\n\t\t149, 60, 165, 16, 9, 192, 137, 65, 69, 10, 171, 8, 59, 254,\n\t\t249, 218, 197, 144, 118, 75, 156, 108, 11, 41, 48, 247, 249,\n\t\t252, 106, 47, 56, 173, 110, 117, 254, 190, 114, 143, 102,\n\t\t208, 79, 111, 27, 160, 243, 26, 88, 184, 208, 40, 68, 130,\n\t\t212, 50, 155, 115, 149, 65, 185, 65, 181, 44, 73, 79, 235,\n\t\t247, 250, 237, 195, 189, 111, 65, 121, 84, 34, 10, 84, 146,\n\t\t247, 83, 185, 239, 227, 253, 235, 254, 251, 141, 51, 204,\n\t\t167, 59, 65, 240, 96, 126, 138, 233, 100, 17, 109, 131, 202,\n\t\t112, 144, 24, 14, 196, 231, 151, 1, 59, 236, 137, 54, 90,\n\t\t116, 222, 129, 42, 180, 32, 40, 235, 161, 47, 196, 246, 208,\n\t\t95, 227, 124, 95, 173, 193, 40, 204, 114, 26, 62, 96, 137,\n\t\t130, 179, 204, 0, 120, 188, 132, 218, 203, 105, 237, 61, 112,\n\t\t76, 164, 37, 57, 249, 247, 195, 166, 231, 102, 4, 8, 80, 130,\n\t\t180, 109, 15, 213, 30, 4, 44, 110, 122, 49, 94, 48, 88, 28,\n\t\t191, 195, 15, 68, 178, 211, 211, 74, 76, 40, 199, 31, 107,\n\t\t204, 187, 253, 250, 203, 167, 127, 190, 192, 51, 244, 166,\n\t\t115, 159, 175, 59, 55, 215, 50, 142, 142, 153, 97, 126, 126,\n\t\t224, 42, 66, 31, 176, 45, 165, 202, 215, 246, 133, 183, 74,\n\t\t251, 19, 131, 9, 244, 155, 30, 99, 41, 158, 218, 221, 223,\n\t\t117, 36, 229, 178, 164, 182, 165, 144, 0, 232, 28, 23, 32,\n\t\t74, 131, 61, 174, 45, 237, 196, 90, 16, 2, 70, 180, 129, 212,\n\t\t250, 125, 227, 158, 85, 111, 91, 219, 235, 225, 137, 59, 47,\n\t\t37, 221, 99, 231, 109, 15, 152, 91, 113, 82, 122, 187, 161,\n\t\t220, 82, 183, 182, 237, 62, 115, 43, 13, 221, 247, 95, 81,\n\t\t150, 195, 71, 10, 163, 13, 163, 171, 252, 159, 94, 154, 143,\n\t\t20, 70, 91, 230, 251, 11, 243, 1, 246, 225, 15, 151, 134,\n\t\t115, 249, 46, 234, 104, 41, 63, 130, 240, 87, 202, 125, 89,\n\t\t227, 159, 159, 255, 118, 67, 168, 240, 233, 6, 192, 189, 164,\n\t\t232, 203, 64, 145, 20, 192, 24, 36, 129, 32, 116, 25, 245,\n\t\t202, 224, 96, 25, 216, 213, 0, 61, 107, 8, 46, 18, 143, 101,\n\t\t100, 6, 214, 248, 142, 120, 10, 233, 98, 54, 173, 210, 171,\n\t\t214, 210, 57, 38, 203, 228, 138, 41, 102, 139, 95, 139, 110,\n\t\t210, 169, 227, 113, 51, 98, 69, 3, 209, 151, 13, 46, 183,\n\t\t61, 47, 36, 2, 174, 9, 169, 20, 96, 101, 151, 80, 218, 178,\n\t\t102, 0, 149, 47, 104, 68, 199, 223, 207, 144, 1, 140, 85,\n\t\t202, 152, 86, 114, 168, 212, 171, 224, 245, 136, 7, 25, 111,\n\t\t183, 98, 38, 195, 220, 213, 82, 98, 104, 36, 248, 232, 23,\n\t\t224, 252, 163, 184, 98, 42, 168, 18, 60, 98, 81, 18, 48, 211,\n\t\t188, 174, 27, 213, 26, 72, 197, 167, 34, 161, 209, 146, 50,\n\t\t135, 146, 237, 170, 46, 133, 123, 104, 188, 68, 139, 74, 239,\n\t\t101, 19, 131, 69, 95, 34, 128, 82, 185, 25, 113, 167, 126,\n\t\t47, 233, 101, 94, 175, 101, 254, 127, 209, 207, 203, 244,\n\t\t146, 94, 46, 30, 195, 191, 215, 167, 204, 28, 74, 93, 168,\n\t\t246, 128, 16, 235, 214, 192, 104, 58, 218, 186, 130, 14, 130,\n\t\t209, 40, 165, 117, 168, 216, 74, 204, 201, 188, 104, 41, 245,\n\t\t116, 64, 99, 164, 228, 160, 10, 42, 160, 108, 43, 52, 77,\n\t\t93, 34, 20, 76, 89, 199, 129, 53, 136, 33, 235, 51, 59, 106,\n\t\t252, 0, 230, 220, 214, 6, 248, 254, 202, 230, 30, 188, 114,\n\t\t236, 1, 180, 207, 80, 214, 45, 171, 142, 40, 221, 86, 208,\n\t\t93, 86, 194, 28, 50, 128, 234, 49, 26, 146, 117, 151, 151,\n\t\t117, 188, 127, 188, 254, 92, 194, 115, 1, 67, 78, 192, 124,\n\t\t244, 56, 186, 50, 88, 193, 234, 120, 20, 20, 55, 128, 133,\n\t\t71, 45, 55, 130, 91, 14, 156, 203, 27, 47, 220, 99, 0, 137,\n\t\t24, 133, 46, 75, 138, 218, 57, 15, 104, 140, 183, 231, 93,\n\t\t229, 246, 223, 190, 220, 238, 172, 219, 61, 39, 76, 216, 23,\n\t\t183, 129, 117, 233, 222, 18, 62, 222, 109, 211, 60, 173, 201,\n\t\t156, 182, 120, 198, 98, 140, 249, 112, 235, 181, 49, 223,\n\t\t3, 175, 141, 139, 251, 82, 59, 217, 107, 198, 45, 23, 153,\n\t\t76, 175, 13, 19, 63, 156, 224, 229, 36, 102, 193, 197, 90,\n\t\t53, 209, 82, 135, 149, 210, 29, 200, 198, 23, 255, 60, 174,\n\t\t254, 144, 105, 96, 29, 32, 112, 222, 53, 159, 95, 175, 95,\n\t\t112, 90, 207, 185, 205, 39, 111, 238, 190, 126, 234, 56, 30,\n\t\t58, 231, 53, 110, 185, 46, 169, 127, 122, 13, 83, 12, 255,\n\t\t87, 235, 167, 146, 248, 255, 237, 30, 68, 13, 255, 15, 247,\n\t\t32, 212, 162, 158, 41, 149, 18, 254, 170, 250, 141, 188, 254,\n\t\t252, 218, 113, 105, 161, 129, 145, 224, 223, 172, 27, 119,\n\t\t227, 200, 249, 119, 107, 230, 57, 253, 27, 53, 67, 78, 255,\n\t\t70, 189, 238, 42, 117, 62, 237, 251, 250, 178, 63, 191, 220,\n\t\t120, 129, 255, 237, 230, 72, 125, 41, 110, 9, 34, 190, 28,\n\t\t171, 116, 43, 161, 87, 136, 67, 57, 36, 236, 189, 109, 200,\n\t\t71, 131, 119, 157, 135, 33, 7, 38, 168, 232, 176, 97, 198,\n\t\t36, 150, 65, 217, 178, 205, 135, 215, 249, 186, 73, 4, 223,\n\t\t28, 116, 0, 143, 195, 127, 19, 175, 219, 215, 220, 90, 144,\n\t\t172, 50, 76, 10, 149, 251, 54, 159, 157, 47, 27, 69, 153,\n\t\t239, 26, 69, 25, 37, 25, 5, 241, 114, 28, 182, 236, 180, 59,\n\t\t227, 85, 227, 201, 241, 38, 43, 195, 40, 2, 37, 61, 190, 27,\n\t\t128, 118, 76, 155, 202, 88, 18, 161, 130, 2, 191, 28, 151,\n\t\t88, 151, 156, 192, 165, 182, 116, 103, 139, 41, 140, 93, 254,\n\t\t196, 209, 56, 172, 222, 18, 81, 169, 204, 230, 196, 101, 154,\n\t\t173, 30, 167, 253, 235, 153, 46, 105, 36, 232, 193, 26, 111,\n\t\t137, 180, 85, 65, 219, 80, 54, 41, 146, 184, 134, 174, 3,\n\t\t201, 168, 199, 231, 37, 229, 28, 200, 233, 14, 34, 7, 89,\n\t\t164, 4, 202, 198, 6, 35, 33, 115, 95, 178, 241, 60, 233, 173,\n\t\t41, 112, 55, 62, 36, 227, 245, 105, 67, 180, 166, 100, 148,\n\t\t68, 45, 20, 130, 93, 141, 41, 12, 240, 0, 159, 51, 209, 126,\n\t\t130, 51, 106, 169, 110, 149, 175, 6, 136, 14, 180, 129, 158,\n\t\t235, 235, 19, 105, 35, 201, 66, 189, 132, 84, 118, 214, 65,\n\t\t11, 199, 132, 146, 66, 42, 199, 149, 65, 51, 8, 254, 48, 34,\n\t\t83, 94, 160, 242, 93, 102, 88, 242, 42, 19, 112, 16, 62, 123,\n\t\t42, 71, 197, 84, 65, 69, 219, 219, 194, 94, 194, 209, 46,\n\t\t163, 196, 86, 96, 149, 185, 65, 239, 108, 220, 240, 201, 216,\n\t\t141, 146, 78, 157, 69, 229, 98, 168, 25, 245, 40, 159, 77,\n\t\t32, 94, 75, 218, 86, 201, 78, 217, 131, 120, 117, 149, 195,\n\t\t47, 228, 93, 79, 40, 224, 15, 212, 38, 215, 70, 25, 66, 52,\n\t\t228, 101, 68, 254, 149, 139, 123, 31, 169, 188, 126, 251,\n\t\t250, 222, 4, 189, 193, 223, 186, 16, 222, 132, 17, 65, 211,\n\t\t28, 220, 225, 172, 175, 170, 189, 190, 163, 175, 130, 217,\n\t\t118, 252, 252, 70, 95, 149, 134, 230, 200, 235, 235, 154,\n\t\t163, 113, 223, 165, 230, 72, 239, 184, 200, 194, 52, 71, 196,\n\t\t113, 159, 136, 236, 14, 151, 44, 152, 5, 32, 215, 74, 4, 42,\n\t\t41, 176, 149, 14, 240, 60, 112, 17, 183, 50, 174, 143, 211,\n\t\t178, 124, 68, 68, 166, 94, 83, 205, 181, 33, 46, 140, 35,\n\t\t195, 185, 147, 204, 103, 2, 226, 63, 0, 41, 152, 60, 202,\n\t\t217, 95, 51, 75, 49, 216, 184, 181, 104, 175, 79, 121, 132,\n\t\t226, 82, 223, 65, 199, 28, 113, 184, 234, 71, 105, 233, 156,\n\t\t176, 138, 192, 228, 159, 205, 199, 149, 19, 20, 101, 22, 201,\n\t\t141, 72, 87, 93, 4, 160, 186, 75, 14, 134, 185, 166, 172,\n\t\t131, 55, 135, 22, 201, 29, 113, 146, 74, 247, 103, 15, 149,\n\t\t84, 130, 164, 4, 31, 116, 42, 114, 241, 232, 3, 111, 235,\n\t\t237, 203, 175, 255, 250, 250, 249, 239, 199, 155, 16, 130,\n\t\t191, 245, 255, 1, 140, 11, 169, 218, 123, 105, 233, 18, 56,\n\t\t233, 124, 10, 121, 248, 34, 192, 157, 135, 1, 201, 66, 139,\n\t\t142, 127, 61, 112, 143, 107, 243, 189, 5, 120, 206, 68, 123,\n\t\t138, 82, 72, 244, 78, 201, 102, 118, 23, 146, 212, 192, 56,\n\t\t37, 145, 118, 56, 158, 106, 251, 235, 50, 85, 73, 12, 28,\n\t\t29, 157, 172, 167, 70, 232, 92, 73, 130, 84, 61, 240, 23,\n\t\t139, 70, 160, 22, 16, 253, 75, 14, 110, 178, 198, 192, 5,\n\t\t65, 153, 240, 16, 170, 96, 191, 229, 18, 26, 2, 71, 117, 114,\n\t\t178, 30, 66, 115, 200, 73, 250, 72, 64, 232, 46, 176, 86,\n\t\t226, 178, 214, 20, 184, 86, 96, 148, 25, 194, 239, 72, 168,\n\t\t61, 148, 78, 186, 151, 39, 14, 57, 22, 192, 29, 194, 7, 182,\n\t\t130, 148, 121, 169, 2, 18, 105, 187, 194, 177, 58, 19, 142,\n\t\t213, 4, 244, 0, 99, 123, 44, 70, 111, 210, 162, 141, 174,\n\t\t86, 123, 199, 142, 228, 8, 139, 14, 72, 163, 171, 111, 51,\n\t\t254, 230, 94, 169, 52, 128, 108, 138, 164, 133, 131, 110,\n\t\t81, 188, 51, 27, 243, 176, 164, 80, 114, 150, 141, 156, 138,\n\t\t139, 128, 67, 193, 11, 133, 142, 61, 46, 133, 156, 235, 197,\n\t\t117, 49, 162, 51, 244, 75, 54, 167, 15, 10, 9, 219, 3, 192,\n\t\t27, 58, 64, 206, 9, 108, 76, 205, 217, 132, 41, 36, 48, 138,\n\t\t106, 215, 183, 86, 1, 43, 153, 74, 110, 139, 52, 139, 172,\n\t\t6, 160, 110, 98, 25, 9, 135, 109, 109, 20, 116, 10, 99, 69,\n\t\t73, 162, 141, 11, 56, 208, 216, 91, 185, 72, 33, 144, 174,\n\t\t96, 87, 1, 190, 71, 41, 22, 149, 128, 159, 114, 200, 165,\n\t\t2, 54, 49, 65, 55, 99, 9, 91, 141, 22, 206, 16, 129, 59, 196,\n\t\t185, 47, 73, 66, 43, 73, 128, 17, 209, 32, 43, 132, 42, 116,\n\t\t127, 197, 125, 190, 157, 93, 207, 183, 179, 171, 133, 8, 88,\n\t\t56, 76, 156, 86, 67, 201, 115, 118, 153, 223, 109, 205, 161,\n\t\t246, 218, 157, 158, 222, 208, 72, 116, 171, 209, 173, 21,\n\t\t1, 252, 35, 1, 154, 231, 193, 185, 87, 200, 89, 180, 47, 253,\n\t\t193, 215, 26, 67, 37, 237, 80, 221, 189, 204, 208, 99, 76,\n\t\t244, 60, 208, 72, 90, 136, 8, 33, 151, 230, 60, 92, 186, 40,\n\t\t105, 23, 90, 2, 2, 243, 153, 18, 90, 189, 23, 29, 193, 6,\n\t\t82, 212, 203, 66, 49, 135, 86, 17, 26, 213, 3, 107, 13, 139,\n\t\t4, 206, 180, 80, 38, 72, 15, 82, 67, 147, 113, 185, 81, 15,\n\t\t153, 89, 215, 221, 164, 82, 83, 2, 142, 82, 3, 75, 119, 238,\n\t\t14, 230, 167, 251, 107, 205, 105, 143, 97, 214, 65, 171, 72,\n\t\t42, 9, 108, 186, 161, 194, 147, 168, 56, 77, 122, 65, 136,\n\t\t189, 44, 32, 14, 135, 239, 87, 72, 194, 101, 92, 159, 226,\n\t\t81, 151, 88, 104, 175, 178, 174, 7, 11, 130, 60, 18, 60, 228,\n\t\t9, 58, 28, 22, 7, 194, 226, 6, 8, 152, 93, 231, 79, 50, 52,\n\t\t50, 166, 64, 70, 142, 151, 116, 113, 113, 154, 243, 106, 165,\n\t\t102, 148, 182, 27, 45, 174, 230, 11, 247, 36, 237, 15, 78,\n\t\t105, 147, 106, 176, 4, 18, 122, 38, 130, 239, 37, 184, 119,\n\t\t181, 56, 177, 242, 188, 110, 192, 41, 50, 24, 0, 14, 32, 191,\n\t\t110, 206, 154, 77, 37, 58, 12, 64, 137, 27, 208, 59, 82, 182,\n\t\t161, 175, 3, 183, 113, 200, 137, 253, 130, 90, 122, 185, 76,\n\t\t152, 168, 30, 186, 92, 24, 120, 64, 233, 152, 171, 11, 197,\n\t\t192, 186, 207, 247, 110, 36, 169, 78, 151, 14, 228, 27, 68,\n\t\t29, 149, 225, 199, 36, 161, 70, 38, 144, 5, 194, 19, 141,\n\t\t130, 84, 195, 233, 226, 214, 105, 135, 219, 89, 177, 3, 134,\n\t\t182, 215, 214, 205, 5, 211, 64, 134, 154, 177, 22, 194, 37,\n\t\t12, 72, 63, 5, 235, 144, 241, 200, 67, 174, 169, 76, 240,\n\t\t249, 140, 24, 76, 92, 208, 61, 58, 29, 0, 36, 0, 126, 56,\n\t\t96, 184, 145, 228, 144, 98, 155, 41, 14, 232, 210, 12, 11,\n\t\t15, 59, 78, 12, 144, 28, 125, 119, 129, 49, 197, 238, 24,\n\t\t63, 189, 217, 123, 88, 84, 90, 94, 244, 189, 185, 194, 27,\n\t\t146, 27, 28, 225, 209, 39, 68, 186, 0, 151, 210, 250, 188,\n\t\t174, 172, 135, 132, 236, 170, 38, 71, 181, 48, 106, 76, 4,\n\t\t125, 64, 162, 206, 1, 18, 174, 39, 128, 213, 170, 101, 67,\n\t\t123, 205, 205, 41, 234, 185, 6, 227, 194, 159, 41, 231, 87,\n\t\t235, 129, 198, 60, 61, 245, 144, 68, 226, 1, 37, 17, 164,\n\t\t17, 78, 23, 110, 9, 119, 87, 160, 79, 255, 250, 180, 254,\n\t\t252, 245, 203, 175, 239, 24, 196, 254, 246, 211, 217, 89,\n\t\t57, 84, 3, 170, 168, 121, 39, 46, 161, 200, 130, 15, 218,\n\t\t205, 134, 200, 109, 7, 180, 4, 128, 59, 244, 83, 69, 105,\n\t\t119, 42, 224, 54, 184, 161, 155, 17, 236, 27, 130, 208, 188,\n\t\t62, 234, 117, 2, 139, 127, 134, 148, 189, 155, 25, 121, 71,\n\t\t48, 202, 201, 127, 220, 140, 26, 163, 246, 172, 115, 56, 235,\n\t\t230, 108, 199, 143, 166, 87, 201, 132, 238, 215, 167, 164,\n\t\t147, 161, 45, 137, 122, 104, 77, 39, 149, 5, 81, 193, 12,\n\t\t103, 87, 189, 25, 101, 248, 122, 177, 96, 96, 204, 212, 188,\n\t\t235, 25, 198, 119, 91, 251, 114, 216, 105, 248, 135, 251,\n\t\t151, 173, 187, 171, 221, 58, 190, 204, 4, 118, 202, 107, 15,\n\t\t88, 73, 209, 192, 210, 76, 244, 198, 151, 13, 96, 194, 6,\n\t\t151, 171, 227, 33, 27, 157, 37, 104, 159, 76, 187, 62, 158,\n\t\t132, 31, 125, 33, 28, 165, 240, 137, 56, 166, 153, 161, 74,\n\t\t0, 231, 18, 176, 249, 124, 46, 17, 250, 95, 233, 121, 31,\n\t\t217, 250, 231, 54, 178, 237, 174, 179, 55, 154, 33, 207, 243,\n\t\t156, 229, 117, 101, 15, 251, 104, 16, 255, 212, 22, 53, 194,\n\t\t85, 109, 203, 238, 61, 139, 11, 107, 194, 7, 58, 226, 95,\n\t\t159, 63, 255, 242, 219, 250, 211, 215, 223, 223, 57, 103,\n\t\t76, 160, 9, 42, 53, 68, 115, 203, 45, 101, 135, 43, 3, 24,\n\t\t13, 4, 32, 87, 91, 12, 66, 134, 254, 40, 230, 50, 186, 88,\n\t\t37, 117, 238, 151, 193, 238, 58, 83, 186, 81, 169, 98, 151,\n\t\t212, 133, 92, 5, 158, 204, 206, 46, 78, 42, 20, 67, 7, 210,\n\t\t198, 197, 182, 246, 56, 168, 216, 205, 214, 237, 34, 142,\n\t\t94, 4, 61, 165, 229, 20, 170, 108, 125, 216, 122, 74, 40,\n\t\t77, 37, 134, 148, 252, 165, 186, 90, 232, 68, 206, 54, 202,\n\t\t253, 18, 1, 52, 205, 125, 25, 216, 141, 43, 152, 158, 240,\n\t\t47, 241, 0, 53, 156, 40, 55, 142, 102, 81, 200, 201, 0, 21,\n\t\t115, 181, 18, 149, 14, 131, 141, 158, 239, 1, 25, 85, 45,\n\t\t94, 226, 245, 41, 101, 149, 233, 77, 143, 222, 140, 123, 62,\n\t\t66, 27, 48, 104, 88, 161, 121, 152, 9, 169, 227, 200, 138,\n\t\t83, 116, 113, 78, 243, 18, 108, 163, 4, 188, 136, 1, 154,\n\t\t77, 230, 199, 236, 70, 5, 2, 139, 170, 110, 185, 49, 152,\n\t\t76, 209, 237, 58, 23, 83, 151, 16, 5, 2, 98, 21, 18, 14, 224,\n\t\t220, 50, 243, 93, 14, 212, 162, 202, 133, 44, 128, 173, 130,\n\t\t197, 41, 150, 69, 140, 108, 2, 88, 72, 141, 186, 44, 89, 2,\n\t\t213, 94, 183, 73, 248, 172, 59, 51, 140, 47, 45, 84, 60, 203,\n\t\t249, 252, 93, 252, 168, 135, 192, 218, 138, 195, 182, 217,\n\t\t2, 91, 136, 105, 97, 206, 65, 229, 227, 20, 67, 73, 186, 95,\n\t\t193, 184, 221, 61, 146, 142, 51, 120, 100, 23, 114, 130, 92,\n\t\t221, 46, 104, 92, 61, 112, 81, 250, 250, 219, 241, 231, 231,\n\t\t127, 173, 219, 243, 255, 119, 19, 133, 250, 183, 123, 136,\n\t\t19, 169, 45, 122, 176, 199, 72, 50, 195, 166, 144, 19, 10,\n\t\t51, 4, 169, 188, 8, 111, 171, 202, 163, 220, 33, 164, 165,\n\t\t226, 126, 23, 126, 3, 16, 55, 25, 219, 5, 4, 25, 123, 5, 220,\n\t\t173, 207, 119, 224, 29, 140, 128, 92, 188, 163, 6, 166, 218,\n\t\t230, 59, 198, 43, 90, 160, 100, 145, 196, 32, 255, 228, 155,\n\t\t87, 136, 29, 132, 172, 24, 144, 58, 223, 22, 227, 212, 162,\n\t\t71, 193, 26, 165, 226, 180, 164, 0, 235, 39, 153, 175, 13,\n\t\t62, 15, 87, 215, 111, 46, 169, 32, 88, 246, 28, 41, 155, 167,\n\t\t225, 7, 177, 255, 122, 81, 210, 113, 77, 169, 157, 122, 217,\n\t\t146, 4, 201, 5, 33, 219, 197, 226, 37, 133, 151, 89, 106,\n\t\t174, 42, 65, 57, 187, 34, 103, 0, 234, 141, 159, 181, 218,\n\t\t104, 23, 64, 154, 162, 89, 74, 243, 167, 237, 225, 217, 36,\n\t\t104, 17, 226, 235, 135, 53, 235, 250, 141, 172, 15, 154, 119,\n\t\t106, 16, 26, 45, 239, 241, 180, 107, 208, 122, 129, 143, 34,\n\t\t236, 84, 52, 166, 134, 185, 79, 97, 165, 0, 85, 131, 62, 171,\n\t\t111, 101, 104, 231, 116, 220, 178, 83, 195, 171, 236, 136,\n\t\t47, 185, 128, 235, 130, 1, 214, 109, 93, 2, 39, 85, 78, 127,\n\t\t218, 187, 37, 243, 253, 119, 31, 254, 248, 203, 239, 106,\n\t\t33, 142, 207, 95, 127, 91, 159, 191, 126, 122, 190, 153, 103,\n\t\t159, 206, 210, 137, 251, 133, 220, 11, 80, 28, 190, 2, 223,\n\t\t14, 80, 60, 174, 169, 221, 240, 30, 92, 5, 44, 74, 137, 119,\n\t\t34, 22, 205, 51, 244, 94, 41, 36, 182, 99, 2, 20, 187, 10,\n\t\t114, 240, 211, 203, 91, 89, 64, 68, 98, 129, 101, 174, 83,\n\t\t183, 240, 214, 17, 53, 183, 183, 62, 216, 211, 90, 13, 176,\n\t\t112, 24, 182, 203, 222, 156, 133, 205, 216, 125, 7, 137, 219,\n\t\t64, 178, 115, 182, 64, 71, 145, 115, 126, 221, 133, 246, 54,\n\t\t241, 234, 244, 76, 243, 129, 14, 248, 245, 243, 245, 58, 199,\n\t\t241, 6, 73, 34, 167, 225, 11, 151, 85, 112, 237, 56, 135,\n\t\t216, 86, 99, 154, 51, 143, 195, 117, 11, 55, 149, 65, 228,\n\t\t95, 225, 153, 160, 187, 133, 107, 239, 207, 91, 167, 193,\n\t\t194, 130, 0, 197, 98, 184, 252, 48, 27, 65, 32, 95, 6, 192,\n\t\t213, 165, 111, 131, 33, 158, 229, 193, 168, 207, 108, 155,\n\t\t101, 132, 114, 184, 169, 160, 170, 187, 131, 44, 246, 113,\n\t\t100, 240, 46, 188, 62, 101, 128, 191, 47, 204, 41, 168, 140,\n\t\t81, 84, 106, 16, 147, 31, 176, 14, 212, 193, 188, 63, 120,\n\t\t239, 16, 57, 230, 222, 30, 154, 114, 56, 174, 172, 103, 160,\n\t\t122, 194, 71, 217, 226, 210, 221, 181, 163, 186, 98, 154,\n\t\t10, 84, 232, 203, 120, 7, 25, 213, 195, 70, 212, 177, 129,\n\t\t54, 231, 89, 103, 74, 1, 218, 135, 40, 58, 74, 192, 167, 191,\n\t\t172, 246, 57, 189, 25, 119, 64, 219, 21, 135, 184, 171, 91,\n\t\t25, 109, 48, 190, 12, 155, 63, 2, 145, 1, 237, 79, 102, 245,\n\t\t95, 6, 143, 251, 166, 71, 118, 182, 131, 134, 49, 255, 183,\n\t\t228, 148, 237, 105, 32, 165, 170, 92, 199, 166, 122, 140,\n\t\t18, 229, 176, 173, 198, 42, 179, 146, 71, 191, 172, 140, 248,\n\t\t169, 5, 218, 23, 0, 115, 234, 18, 11, 192, 78, 10, 69, 207,\n\t\t108, 3, 202, 153, 83, 0, 242, 94, 177, 147, 14, 131, 13, 126,\n\t\t225, 168, 82, 155, 158, 185, 114, 168, 188, 117, 231, 174,\n\t\t15, 146, 98, 131, 15, 174, 185, 164, 21, 119, 102, 157, 9,\n\t\t62, 126, 78, 171, 247, 224, 227, 81, 188, 127, 190, 65, 130,\n\t\t228, 72, 55, 40, 68, 247, 92, 78, 207, 186, 108, 120, 234,\n\t\t140, 159, 223, 234, 178, 117, 139, 191, 235, 32, 107, 40,\n\t\t204, 223, 116, 89, 5, 254, 203, 221, 82, 196, 116, 76, 194,\n\t\t175, 79, 169, 216, 146, 255, 141, 219, 77, 112, 179, 103,\n\t\t136, 90, 136, 25, 246, 24, 38, 23, 105, 57, 91, 79, 192, 180,\n\t\t129, 115, 207, 228, 72, 152, 236, 15, 226, 190, 65, 254, 185,\n\t\t79, 32, 18, 61, 198, 119, 15, 3, 198, 46, 128, 77, 210, 46,\n\t\t236, 132, 23, 119, 8, 237, 53, 210, 226, 159, 187, 10, 18,\n\t\t54, 235, 147, 157, 82, 49, 137, 205, 213, 41, 35, 87, 232,\n\t\t18, 252, 146, 217, 34, 60, 227, 142, 175, 164, 131, 202, 140,\n\t\t37, 254, 216, 197, 179, 84, 172, 82, 209, 110, 233, 125, 7,\n\t\t4, 160, 158, 23, 91, 40, 61, 166, 195, 54, 74, 140, 50, 90,\n\t\t121, 241, 117, 148, 118, 20, 118, 148, 122, 127, 83, 250,\n\t\t222, 247, 201, 43, 229, 159, 27, 4, 91, 216, 110, 252, 19,\n\t\t174, 148, 126, 174, 199, 9, 108, 16, 178, 249, 245, 17, 221,\n\t\t240, 32, 136, 241, 203, 223, 255, 190, 127, 90, 191, 252,\n\t\t237, 154, 58, 158, 227, 13, 233, 225, 217, 69, 21, 28, 19,\n\t\t192, 101, 45, 33, 26, 85, 139, 46, 33, 45, 7, 35, 0, 197,\n\t\t122, 210, 249, 101, 166, 172, 35, 9, 127, 142, 43, 232, 137,\n\t\t207, 79, 227, 151, 55, 247, 234, 211, 151, 175, 243, 255,\n\t\t71, 234, 252, 250, 84, 102, 56, 115, 133, 210, 13, 70, 201,\n\t\t108, 144, 147, 109, 25, 90, 130, 205, 127, 140, 72, 25, 183,\n\t\t248, 29, 91, 92, 252, 231, 245, 242, 151, 241, 2, 61, 78,\n\t\t140, 167, 237, 196, 246, 38, 11, 253, 99, 182, 245, 146, 222,\n\t\t201, 166, 127, 52, 27, 21, 3, 0, 8, 186, 149, 28, 24, 218,\n\t\t151, 202, 80, 144, 47, 154, 64, 208, 96, 53, 9, 148, 16, 148,\n\t\t201, 185, 28, 253, 129, 15, 117, 234, 47, 55, 125, 122, 195,\n\t\t6, 248, 110, 159, 206, 254, 44, 151, 93, 89, 190, 217, 139,\n\t\t179, 7, 203, 69, 231, 149, 219, 126, 187, 104, 176, 8, 79,\n\t\t225, 209, 98, 22, 144, 127, 217, 98, 176, 80, 93, 254, 52,\n\t\t154, 204, 58, 38, 58, 185, 242, 232, 25, 135, 8, 240, 142,\n\t\t247, 129, 161, 137, 111, 126, 156, 93, 119, 255, 192, 181,\n\t\t253, 107, 219, 111, 215, 238, 59, 190, 3, 153, 16, 253, 176,\n\t\t112, 206, 64, 117, 174, 49, 116, 68, 29, 68, 32, 22, 149,\n\t\t170, 57, 7, 40, 127, 114, 7, 58, 18, 76, 215, 192, 207, 36,\n\t\t238, 1, 4, 84, 52, 194, 124, 171, 235, 58, 161, 136, 51, 68,\n\t\t85, 214, 131, 63, 217, 205, 156, 177, 242, 101, 123, 170,\n\t\t52, 219, 229, 245, 20, 111, 246, 104, 189, 57, 183, 164, 199,\n\t\t210, 214, 114, 181, 4, 120, 180, 171, 160, 68, 29, 230, 228,\n\t\t10, 144, 44, 169, 118, 184, 33, 93, 154, 169, 104, 195, 195,\n\t\t10, 157, 200, 12, 19, 61, 133, 36, 53, 239, 42, 71, 195, 181,\n\t\t84, 183, 242, 82, 211, 97, 183, 137, 13, 117, 134, 180, 208,\n\t\t138, 108, 96, 131, 65, 141, 10, 180, 231, 228, 161, 242, 6,\n\t\t175, 27, 204, 62, 197, 209, 227, 3, 60, 229, 184, 102, 14,\n\t\t81, 196, 160, 137, 76, 95, 146, 3, 148, 215, 37, 5, 193, 169,\n\t\t198, 116, 39, 98, 168, 5, 144, 220, 98, 232, 169, 14, 157,\n\t\t73, 72, 4, 165, 133, 169, 188, 189, 151, 67, 45, 105, 139,\n\t\t193, 163, 138, 107, 12, 204, 169, 224, 160, 14, 100, 65, 70,\n\t\t152, 2, 110, 20, 178, 190, 96, 41, 7, 83, 195, 87, 216, 244,\n\t\t163, 24, 206, 150, 30, 39, 192, 196, 193, 88, 215, 5, 96,\n\t\t90, 221, 100, 52, 40, 49, 118, 238, 33, 81, 213, 3, 158, 94,\n\t\t99, 70, 87, 206, 70, 95, 51, 204, 251, 144, 209, 24, 81, 239,\n\t\t153, 154, 113, 106, 117, 32, 116, 75, 200, 69, 64, 235, 192,\n\t\t9, 184, 72, 48, 18, 84, 67, 104, 239, 169, 106, 147, 39, 41,\n\t\t166, 69, 147, 66, 227, 250, 216, 106, 72, 185, 63, 136, 222,\n\t\t160, 114, 84, 169, 59, 167, 132, 62, 108, 29, 234, 184, 227,\n\t\t154, 35, 70, 214, 67, 8, 221, 114, 47, 128, 162, 164, 227,\n\t\t133, 49, 103, 171, 174, 41, 132, 238, 52, 71, 115, 157, 177,\n\t\t232, 105, 142, 195, 82, 164, 146, 22, 183, 189, 86, 4, 174,\n\t\t219, 56, 166, 44, 27, 233, 105, 2, 164, 34, 217, 246, 188,\n\t\t24, 16, 115, 220, 66, 134, 141, 47, 149, 144, 36, 235, 117,\n\t\t210, 3, 247, 235, 19, 53, 104, 102, 169, 113, 96, 110, 187,\n\t\t217, 25, 1, 36, 208, 2, 115, 205, 71, 149, 41, 99, 6, 98,\n\t\t68, 232, 96, 204, 4, 106, 82, 181, 72, 120, 88, 255, 160,\n\t\t214, 176, 197, 44, 148, 68, 192, 22, 208, 103, 141, 203, 16,\n\t\t120, 34, 109, 211, 173, 27, 252, 30, 75, 137, 22, 58, 68,\n\t\t29, 70, 32, 221, 168, 13, 65, 164, 29, 215, 70, 3, 87, 187,\n\t\t25, 128, 188, 193, 36, 113, 171, 224, 214, 65, 68, 201, 28,\n\t\t253, 82, 66, 17, 106, 123, 202, 214, 78, 85, 192, 36, 10,\n\t\t210, 123, 98, 40, 174, 156, 199, 130, 2, 115, 7, 199, 143,\n\t\t199, 135, 87, 51, 39, 122, 194, 6, 122, 96, 130, 189, 110,\n\t\t109, 230, 146, 209, 154, 206, 193, 134, 132, 195, 203, 101,\n\t\t130, 165, 189, 62, 113, 143, 161, 64, 78, 76, 123, 117, 251,\n\t\t2, 113, 60, 174, 96, 61, 72, 21, 70, 233, 154, 64, 118, 216,\n\t\t67, 175, 82, 54, 230, 208, 184, 26, 68, 55, 9, 195, 12, 154,\n\t\t88, 235, 148, 26, 60, 140, 116, 90, 24, 95, 76, 139, 152,\n\t\t244, 71, 201, 225, 255, 103, 239, 237, 183, 220, 54, 118,\n\t\t236, 209, 255, 245, 20, 124, 129, 170, 85, 64, 125, 175, 121,\n\t\t6, 63, 68, 135, 233, 223, 145, 239, 48, 118, 126, 150, 163,\n\t\t115, 167, 159, 254, 46, 108, 160, 72, 74, 234, 150, 218, 118,\n\t\t156, 147, 185, 43, 107, 230, 196, 77, 138, 44, 214, 39, 10,\n\t\t64, 1, 123, 23, 78, 47, 31, 114, 144, 177, 238, 83, 106, 158,\n\t\t40, 197, 89, 84, 177, 162, 49, 75, 41, 82, 73, 192, 250, 32,\n\t\t37, 140, 64, 236, 0, 174, 57, 79, 181, 43, 37, 17, 88, 123,\n\t\t209, 200, 181, 121, 218, 146, 169, 133, 35, 86, 42, 120, 64,\n\t\t14, 232, 62, 165, 227, 209, 140, 252, 8, 65, 137, 53, 152,\n\t\t48, 198, 240, 249, 201, 119, 69, 73, 90, 82, 242, 9, 41, 74,\n\t\t149, 124, 73, 92, 230, 228, 75, 33, 66, 208, 72, 134, 24,\n\t\t96, 31, 53, 209, 95, 44, 228, 202, 176, 228, 201, 206, 227,\n\t\t68, 108, 49, 47, 178, 200, 117, 104, 26, 150, 237, 188, 190,\n\t\t236, 146, 47, 89, 164, 205, 246, 246, 90, 158, 189, 61, 89,\n\t\t113, 139, 12, 35, 78, 6, 43, 249, 220, 114, 135, 221, 163,\n\t\t7, 92, 210, 18, 3, 89, 13, 122, 4, 35, 150, 42, 37, 172, 240,\n\t\t238, 245, 228, 79, 100, 102, 225, 58, 211, 56, 223, 78, 228,\n\t\t67, 137, 232, 83, 173, 67, 53, 175, 111, 149, 81, 145, 218,\n\t\t85, 89, 62, 233, 190, 33, 243, 203, 31, 215, 105, 145, 28,\n\t\t234, 106, 193, 180, 54, 69, 14, 154, 165, 180, 207, 81, 82,\n\t\t138, 72, 228, 40, 53, 77, 76, 140, 170, 110, 227, 92, 231,\n\t\t2, 82, 118, 31, 5, 185, 134, 4, 174, 236, 216, 91, 0, 246,\n\t\t213, 31, 199, 17, 124, 184, 2, 230, 222, 77, 33, 140, 252,\n\t\t200, 66, 82, 85, 230, 189, 165, 29, 30, 22, 247, 158, 148,\n\t\t197, 102, 104, 186, 211, 134, 165, 155, 7, 146, 46, 250, 141,\n\t\t198, 161, 19, 126, 89, 51, 174, 218, 121, 172, 9, 116, 23,\n\t\t146, 231, 2, 203, 146, 16, 83, 189, 133, 147, 252, 35, 43,\n\t\t5, 183, 113, 209, 52, 121, 181, 41, 190, 81, 2, 251, 128,\n\t\t213, 110, 87, 57, 205, 114, 115, 187, 75, 115, 182, 157, 220,\n\t\t72, 125, 219, 117, 198, 233, 178, 77, 211, 160, 128, 157,\n\t\t164, 113, 178, 253, 189, 253, 141, 179, 170, 104, 55, 221,\n\t\t188, 126, 241, 232, 116, 255, 188, 232, 195, 235, 10, 156,\n\t\t135, 166, 183, 15, 51, 188, 174, 16, 2, 254, 127, 90, 123,\n\t\t239, 58, 1, 150, 207, 167, 231, 95, 221, 252, 244, 251, 215,\n\t\t143, 159, 63, 221, 98, 157, 115, 88, 99, 47, 96, 87, 183,\n\t\t244, 166, 91, 154, 245, 68, 201, 240, 217, 8, 38, 239, 62,\n\t\t199, 143, 138, 226, 71, 78, 43, 120, 100, 30, 57, 8, 250,\n\t\t234, 43, 62, 243, 4, 223, 14, 53, 79, 0, 100, 142, 179, 136,\n\t\t12, 68, 203, 184, 56, 162, 189, 186, 113, 152, 138, 221, 25,\n\t\t199, 157, 65, 208, 96, 232, 118, 201, 184, 93, 115, 180, 120,\n\t\t221, 168, 239, 116, 229, 119, 152, 162, 150, 122, 152, 121,\n\t\t208, 215, 91, 17, 213, 15, 18, 5, 11, 173, 28, 148, 167, 164,\n\t\t78, 72, 170, 30, 52, 37, 89, 132, 218, 4, 70, 10, 123, 32,\n\t\t14, 252, 47, 163, 160, 152, 193, 38, 128, 141, 184, 155, 215,\n\t\t143, 170, 146, 47, 15, 213, 191, 42, 191, 133, 69, 246, 34,\n\t\t72, 52, 76, 68, 29, 158, 37, 217, 236, 38, 121, 164, 77, 128,\n\t\t115, 20, 83, 155, 39, 182, 175, 25, 242, 155, 249, 48, 131,\n\t\t207, 147, 242, 21, 43, 71, 150, 124, 163, 42, 123, 241, 120,\n\t\t33, 110, 97, 207, 113, 68, 141, 218, 26, 13, 218, 7, 73, 230,\n\t\t101, 147, 22, 173, 61, 111, 1, 121, 187, 158, 183, 154, 239,\n\t\t123, 30, 81, 124, 223, 218, 243, 63, 177, 227, 15, 127, 66,\n\t\t207, 183, 64, 232, 251, 250, 253, 125, 47, 93, 175, 20, 36,\n\t\t113, 139, 74, 127, 179, 235, 239, 99, 190, 62, 255, 247, 243,\n\t\t226, 78, 31, 255, 117, 107, 56, 223, 36, 234, 109, 7, 109,\n\t\t202, 110, 41, 34, 59, 154, 134, 168, 248, 150, 97, 135, 54,\n\t\t10, 134, 210, 21, 16, 246, 129, 75, 175, 205, 110, 243, 177,\n\t\t13, 181, 60, 172, 184, 114, 103, 69, 202, 125, 99, 127, 160,\n\t\t210, 230, 154, 199, 185, 44, 197, 162, 108, 135, 173, 23,\n\t\t189, 32, 133, 46, 111, 63, 94, 143, 195, 153, 74, 123, 185,\n\t\t136, 203, 125, 219, 139, 200, 58, 252, 163, 102, 107, 157,\n\t\t220, 168, 20, 254, 115, 68, 205, 222, 222, 24, 181, 155, 223,\n\t\t244, 101, 166, 246, 168, 22, 210, 65, 196, 243, 24, 168, 13,\n\t\t41, 54, 24, 96, 233, 89, 43, 122, 231, 19, 15, 242, 210, 190,\n\t\t124, 117, 191, 47, 183, 138, 19, 221, 48, 123, 239, 18, 190,\n\t\t67, 242, 21, 118, 40, 114, 46, 162, 167, 148, 151, 50, 144,\n\t\t180, 34, 31, 185, 136, 153, 11, 150, 217, 164, 112, 130, 92,\n\t\t124, 163, 156, 116, 155, 10, 161, 137, 33, 169, 232, 213,\n\t\t220, 17, 178, 176, 192, 152, 168, 217, 232, 129, 106, 6, 205,\n\t\t218, 8, 229, 208, 88, 168, 72, 74, 254, 137, 168, 153, 24,\n\t\t119, 55, 114, 128, 57, 54, 239, 78, 107, 161, 124, 193, 118,\n\t\t205, 197, 167, 148, 144, 65, 238, 27, 39, 86, 66, 232, 142,\n\t\t12, 126, 36, 90, 70, 89, 111, 137, 1, 39, 229, 114, 210, 40,\n\t\t113, 78, 6, 160, 151, 69, 235, 77, 17, 1, 7, 169, 70, 208,\n\t\t69, 34, 52, 132, 138, 218, 75, 197, 7, 0, 72, 68, 242, 96,\n\t\t136, 164, 226, 91, 224, 10, 108, 190, 84, 251, 17, 9, 141,\n\t\t69, 182, 245, 224, 7, 109, 10, 149, 162, 185, 161, 73, 99,\n\t\t99, 144, 165, 191, 222, 72, 128, 39, 182, 214, 52, 138, 134,\n\t\t115, 10, 24, 191, 92, 125, 138, 65, 17, 248, 84, 31, 145,\n\t\t214, 0, 243, 143, 155, 207, 9, 152, 100, 128, 146, 37, 248,\n\t\t241, 164, 112, 184, 85, 178, 6, 19, 102, 246, 157, 42, 232,\n\t\t235, 129, 82, 13, 221, 62, 129, 107, 22, 22, 72, 34, 159,\n\t\t178, 188, 215, 52, 2, 32, 139, 138, 95, 250, 34, 66, 145,\n\t\t19, 162, 31, 197, 226, 207, 71, 87, 58, 88, 6, 31, 177, 44,\n\t\t148, 187, 12, 47, 1, 44, 190, 51, 209, 58, 83, 8, 54, 173,\n\t\t44, 246, 128, 64, 73, 142, 106, 101, 34, 253, 160, 135, 180,\n\t\t116, 233, 61, 132, 74, 137, 60, 238, 229, 24, 59, 251, 218,\n\t\t148, 54, 236, 238, 124, 227, 253, 124, 75, 213, 115, 85, 114,\n\t\t176, 38, 50, 25, 84, 192, 50, 54, 157, 45, 16, 79, 243, 127,\n\t\t101, 26, 194, 246, 95, 167, 172, 221, 193, 182, 40, 146, 84,\n\t\t68, 143, 102, 109, 223, 224, 78, 172, 194, 231, 53, 248, 135,\n\t\t107, 116, 138, 179, 75, 97, 19, 99, 247, 158, 179, 220, 145,\n\t\t107, 87, 199, 6, 199, 121, 68, 98, 104, 120, 240, 144, 73,\n\t\t193, 213, 31, 115, 225, 50, 57, 167, 48, 4, 212, 27, 15, 92,\n\t\t184, 91, 110, 155, 252, 88, 240, 60, 125, 249, 242, 249, 223,\n\t\t238, 215, 207, 255, 190, 217, 191, 232, 38, 177, 226, 31,\n\t\t241, 243, 143, 248, 249, 71, 252, 92, 137, 159, 232, 3, 247,\n\t\t137, 69, 95, 75, 248, 59, 158, 203, 35, 244, 8, 133, 186,\n\t\t190, 15, 30, 33, 6, 191, 21, 120, 80, 202, 212, 30, 76, 169,\n\t\t2, 13, 14, 234, 215, 57, 171, 31, 169, 37, 156, 116, 7, 159,\n\t\t90, 78, 11, 2, 20, 101, 170, 216, 31, 115, 242, 165, 149,\n\t\t172, 64, 207, 248, 131, 216, 115, 75, 251, 27, 70, 225, 30,\n\t\t214, 151, 199, 187, 213, 252, 169, 227, 95, 81, 177, 51, 16,\n\t\t198, 241, 49, 253, 124, 142, 121, 220, 120, 160, 47, 127,\n\t\t252, 253, 70, 208, 220, 0, 219, 108, 199, 36, 169, 23, 95,\n\t\t68, 234, 101, 160, 133, 206, 136, 197, 160, 134, 145, 143,\n\t\t37, 224, 200, 66, 163, 247, 237, 9, 88, 10, 0, 55, 91, 95,\n\t\t185, 79, 95, 182, 178, 189, 191, 69, 99, 52, 187, 66, 234,\n\t\t123, 131, 45, 82, 125, 14, 104, 107, 161, 145, 155, 33, 131,\n\t\t144, 187, 143, 189, 100, 28, 74, 36, 106, 74, 147, 218, 184,\n\t\t209, 164, 89, 51, 177, 226, 32, 39, 2, 59, 161, 53, 175, 231,\n\t\t54, 118, 7, 92, 251, 135, 89, 125, 167, 13, 115, 162, 130,\n\t\t116, 207, 98, 103, 17, 31, 111, 239, 172, 31, 66, 60, 107,\n\t\t211, 60, 135, 218, 10, 33, 132, 30, 100, 117, 219, 135, 70,\n\t\t237, 220, 86, 189, 239, 94, 169, 115, 81, 57, 48, 5, 3, 97,\n\t\t0, 224, 88, 37, 238, 107, 159, 91, 151, 67, 82, 4, 162, 58,\n\t\t217, 191, 7, 80, 165, 40, 67, 19, 232, 68, 213, 161, 142,\n\t\t252, 129, 236, 107, 237, 81, 38, 36, 8, 63, 114, 196, 129,\n\t\t203, 146, 8, 9, 46, 164, 185, 11, 103, 74, 193, 83, 184, 7,\n\t\t182, 116, 44, 73, 21, 128, 183, 37, 77, 122, 4, 144, 148,\n\t\t194, 177, 164, 121, 124, 65, 131, 195, 110, 240, 155, 180,\n\t\t38, 163, 130, 206, 106, 8, 166, 150, 90, 129, 242, 236, 35,\n\t\t232, 72, 184, 251, 26, 101, 129, 196, 2, 88, 212, 181, 141,\n\t\t206, 26, 169, 208, 163, 145, 195, 217, 53, 240, 252, 241,\n\t\t66, 224, 226, 108, 83, 172, 56, 236, 153, 217, 23, 13, 232,\n\t\t243, 45, 129, 104, 65, 161, 112, 65, 187, 142, 188, 169, 238,\n\t\t171, 166, 65, 232, 245, 169, 14, 119, 115, 240, 56, 193, 24,\n\t\t191, 59, 123, 96, 253, 130, 179, 79, 156, 237, 211, 240, 160,\n\t\t221, 93, 187, 127, 156, 158, 191, 184, 211, 243, 252, 229,\n\t\t249, 58, 43, 136, 233, 142, 173, 27, 91, 244, 125, 162, 216,\n\t\t125, 157, 99, 179, 192, 46, 142, 3, 35, 221, 34, 186, 75,\n\t\t190, 186, 65, 148, 60, 41, 228, 27, 28, 6, 240, 103, 13, 176,\n\t\t118, 14, 246, 212, 240, 105, 222, 252, 113, 116, 49, 55, 159,\n\t\t230, 245, 157, 176, 61, 115, 243, 182, 253, 123, 222, 62,\n\t\t149, 186, 190, 197, 22, 170, 214, 213, 137, 34, 66, 17, 251,\n\t\t11, 81, 246, 125, 65, 128, 138, 236, 45, 37, 192, 103, 128,\n\t\t84, 188, 140, 35, 59, 36, 226, 14, 135, 234, 22, 238, 182,\n\t\t187, 62, 230, 234, 101, 65, 130, 38, 185, 15, 214, 8, 173,\n\t\t79, 24, 20, 13, 118, 163, 164, 179, 18, 157, 134, 12, 41,\n\t\t129, 114, 7, 249, 42, 66, 27, 140, 150, 181, 64, 37, 178,\n\t\t152, 227, 53, 147, 212, 26, 33, 86, 171, 20, 91, 195, 20,\n\t\t227, 220, 87, 247, 80, 181, 135, 240, 99, 201, 151, 117, 104,\n\t\t250, 251, 97, 238, 30, 39, 140, 168, 41, 103, 11, 213, 203,\n\t\t230, 57, 146, 31, 21, 151, 126, 225, 170, 247, 144, 143, 36,\n\t\t189, 169, 100, 181, 82, 71, 109, 148, 92, 176, 177, 15, 135,\n\t\t245, 241, 241, 52, 78, 71, 164, 30, 210, 179, 181, 77, 49,\n\t\t76, 131, 47, 22, 95, 49, 248, 251, 245, 57, 71, 200, 50, 87,\n\t\t159, 87, 14, 91, 223, 89, 197, 231, 52, 78, 9, 224, 44, 138,\n\t\t125, 170, 99, 248, 201, 6, 121, 189, 17, 227, 193, 206, 21,\n\t\t236, 240, 96, 76, 42, 30, 177, 230, 69, 49, 225, 229, 181,\n\t\t179, 91, 135, 36, 152, 106, 160, 241, 246, 54, 15, 243, 248,\n\t\t202, 54, 78, 71, 217, 173, 68, 211, 25, 20, 3, 93, 15, 236,\n\t\t16, 176, 96, 201, 227, 97, 0, 12, 58, 77, 49, 33, 14, 139,\n\t\t136, 231, 20, 22, 4, 198, 107, 134, 247, 203, 7, 174, 16,\n\t\t72, 34, 135, 20, 128, 177, 243, 246, 0, 178, 84, 68, 170,\n\t\t33, 54, 150, 16, 165, 87, 138, 207, 135, 121, 77, 61, 31,\n\t\t228, 192, 69, 43, 51, 150, 159, 57, 193, 140, 202, 151, 244,\n\t\t113, 40, 150, 186, 112, 227, 224, 94, 208, 40, 85, 59, 127,\n\t\t41, 227, 239, 147, 168, 28, 56, 33, 29, 254, 200, 94, 70,\n\t\t97, 110, 148, 22, 112, 90, 222, 59, 96, 165, 51, 130, 179,\n\t\t180, 116, 0, 191, 215, 54, 10, 155, 205, 79, 233, 198, 180,\n\t\t179, 116, 20, 52, 23, 174, 237, 168, 189, 62, 99, 116, 181,\n\t\t230, 73, 125, 105, 154, 198, 41, 51, 117, 115, 36, 183, 17,\n\t\t237, 154, 49, 91, 215, 108, 108, 29, 141, 89, 172, 166, 100,\n\t\t129, 173, 57, 154, 95, 53, 26, 182, 38, 114, 186, 242, 172,\n\t\t243, 92, 103, 230, 152, 38, 112, 147, 163, 62, 86, 157, 187,\n\t\t82, 244, 183, 207, 95, 63, 127, 121, 53, 92, 132, 110, 96,\n\t\t136, 46, 195, 69, 186, 162, 150, 141, 33, 14, 242, 85, 245,\n\t\t240, 231, 17, 80, 203, 112, 213, 106, 252, 70, 159, 3, 72,\n\t\t73, 196, 0, 170, 54, 73, 228, 73, 91, 53, 98, 247, 232, 63,\n\t\t246, 70, 247, 52, 139, 70, 143, 213, 168, 139, 40, 88, 81,\n\t\t49, 32, 94, 42, 235, 21, 28, 176, 242, 165, 121, 93, 1, 178,\n\t\t52, 7, 126, 147, 202, 38, 89, 228, 208, 206, 67, 67, 30, 142,\n\t\t241, 75, 123, 168, 78, 42, 80, 156, 101, 71, 168, 197, 134,\n\t\t129, 206, 109, 71, 44, 160, 43, 186, 172, 193, 56, 121, 222,\n\t\t213, 42, 142, 115, 248, 48, 118, 148, 177, 222, 176, 153,\n\t\t235, 197, 209, 53, 141, 91, 214, 88, 17, 253, 132, 29, 115,\n\t\t185, 146, 108, 197, 106, 119, 36, 139, 20, 161, 93, 164, 80,\n\t\t247, 136, 0, 49, 225, 204, 109, 162, 136, 212, 110, 93, 56,\n\t\t182, 21, 228, 33, 11, 25, 158, 111, 142, 158, 17, 74, 218,\n\t\t15, 224, 189, 87, 220, 50, 72, 60, 139, 105, 182, 73, 158,\n\t\t214, 70, 107, 239, 12, 177, 192, 65, 182, 133, 213, 197, 62,\n\t\t38, 34, 15, 97, 190, 110, 116, 38, 87, 120, 108, 120, 22,\n\t\t64, 130, 94, 176, 0, 146, 174, 206, 94, 115, 134, 70, 159,\n\t\t119, 67, 38, 2, 116, 34, 210, 92, 171, 245, 63, 199, 156,\n\t\t125, 158, 179, 232, 160, 109, 61, 82, 40, 218, 194, 62, 162,\n\t\t188, 83, 56, 82, 198, 8, 44, 106, 147, 117, 61, 131, 43, 240,\n\t\t165, 107, 140, 72, 237, 111, 210, 19, 222, 227, 167, 156,\n\t\t199, 186, 12, 35, 250, 24, 49, 139, 184, 197, 235, 182, 168,\n\t\t99, 176, 48, 27, 187, 82, 108, 11, 146, 188, 18, 97, 90, 204,\n\t\t210, 26, 52, 110, 200, 252, 33, 132, 237, 250, 152, 244, 132,\n\t\t96, 30, 91, 228, 166, 15, 134, 221, 97, 244, 198, 173, 170,\n\t\t35, 55, 130, 204, 46, 14, 164, 53, 212, 242, 176, 68, 35,\n\t\t110, 1, 144, 169, 8, 165, 241, 222, 224, 6, 98, 169, 97, 157,\n\t\t146, 197, 104, 22, 173, 138, 30, 129, 90, 212, 136, 206, 188,\n\t\t18, 108, 70, 117, 171, 244, 27, 81, 35, 108, 19, 149, 237,\n\t\t185, 117, 135, 229, 149, 22, 30, 219, 131, 232, 229, 26, 14,\n\t\t154, 108, 86, 161, 33, 212, 21, 82, 6, 175, 234, 174, 55,\n\t\t17, 226, 67, 198, 20, 178, 248, 16, 109, 150, 70, 80, 156,\n\t\t246, 215, 22, 30, 114, 248, 144, 59, 137, 142, 199, 209, 151,\n\t\t153, 135, 32, 54, 198, 43, 100, 152, 201, 40, 181, 177, 224,\n\t\t170, 205, 163, 166, 63, 204, 107, 26, 66, 216, 245, 49, 102,\n\t\t45, 141, 143, 145, 246, 225, 146, 154, 41, 23, 77, 143, 103,\n\t\t48, 210, 174, 142, 30, 182, 230, 57, 156, 72, 57, 108, 45,\n\t\t22, 113, 161, 133, 54, 147, 6, 43, 127, 60, 94, 215, 167,\n\t\t199, 145, 144, 67, 148, 69, 198, 102, 138, 250, 54, 109, 209,\n\t\t97, 222, 73, 157, 33, 77, 152, 87, 213, 193, 126, 90, 239,\n\t\t228, 188, 158, 96, 37, 139, 70, 88, 213, 95, 155, 52, 55,\n\t\t93, 50, 131, 140, 108, 212, 100, 140, 123, 76, 182, 253, 101,\n\t\t29, 203, 7, 52, 132, 95, 191, 60, 63, 127, 117, 231, 143,\n\t\t207, 255, 190, 217, 97, 126, 29, 7, 200, 177, 84, 25, 48,\n\t\t153, 68, 105, 110, 89, 99, 134, 64, 10, 1, 233, 158, 146,\n\t\t87, 195, 21, 134, 22, 46, 90, 65, 240, 191, 52, 7, 36, 145,\n\t\t120, 158, 146, 47, 22, 111, 199, 217, 88, 33, 129, 11, 192,\n\t\t6, 204, 35, 23, 232, 3, 177, 54, 114, 64, 158, 56, 152, 111,\n\t\t170, 229, 16, 106, 233, 163, 240, 100, 105, 240, 206, 14,\n\t\t240, 186, 82, 0, 170, 195, 12, 90, 226, 58, 33, 34, 128, 102,\n\t\t206, 64, 174, 140, 61, 31, 102, 145, 62, 25, 213, 234, 62,\n\t\t102, 140, 36, 89, 126, 47, 252, 21, 122, 149, 58, 222, 155,\n\t\t7, 39, 93, 175, 19, 208, 50, 149, 82, 14, 212, 105, 96, 208,\n\t\t11, 109, 61, 228, 145, 191, 51, 128, 249, 198, 46, 154, 12,\n\t\t10, 41, 5, 205, 154, 70, 209, 86, 242, 217, 42, 52, 23, 203,\n\t\t204, 136, 154, 97, 34, 226, 189, 133, 56, 53, 171, 220, 104,\n\t\t137, 53, 68, 65, 211, 34, 135, 217, 109, 72, 147, 239, 64,\n\t\t144, 60, 156, 222, 9, 71, 105, 60, 23, 240, 214, 221, 139,\n\t\t52, 193, 104, 189, 73, 28, 73, 100, 218, 55, 89, 14, 119,\n\t\t214, 4, 73, 80, 45, 2, 180, 179, 77, 113, 200, 237, 118, 18,\n\t\t69, 140, 187, 44, 204, 94, 122, 141, 235, 79, 91, 65, 247,\n\t\t88, 40, 207, 174, 27, 64, 211, 157, 240, 154, 179, 177, 98,\n\t\t221, 15, 193, 121, 152, 242, 208, 239, 219, 190, 199, 231,\n\t\t167, 47, 95, 127, 121, 190, 193, 195, 96, 90, 211, 188, 34,\n\t\t7, 207, 19, 135, 228, 129, 59, 178, 90, 152, 12, 144, 157,\n\t\t32, 22, 26, 45, 142, 154, 88, 146, 34, 162, 90, 241, 136,\n\t\t253, 50, 145, 85, 199, 38, 99, 150, 209, 122, 131, 77, 53,\n\t\t15, 250, 114, 158, 240, 230, 177, 39, 172, 136, 37, 134, 201,\n\t\t116, 150, 37, 23, 211, 21, 160, 179, 205, 89, 21, 54, 243,\n\t\t126, 242, 170, 198, 216, 30, 55, 244, 154, 161, 37, 42, 243,\n\t\t90, 157, 98, 77, 158, 14, 115, 26, 202, 89, 178, 221, 101,\n\t\t28, 220, 171, 170, 56, 109, 245, 101, 79, 71, 164, 111, 136,\n\t\t65, 108, 250, 165, 105, 89, 34, 218, 109, 3, 166, 97, 74,\n\t\t217, 247, 183, 27, 171, 41, 232, 82, 159, 92, 215, 51, 253,\n\t\t69, 116, 65, 85, 14, 184, 251, 56, 15, 91, 131, 198, 150,\n\t\t207, 73, 147, 35, 100, 247, 75, 214, 16, 108, 60, 105, 65,\n\t\t208, 31, 58, 162, 233, 124, 59, 26, 190, 28, 50, 70, 167,\n\t\t28, 17, 237, 166, 118, 124, 100, 31, 215, 124, 52, 105, 202,\n\t\t97, 225, 161, 110, 232, 191, 115, 6, 134, 217, 168, 182, 150,\n\t\t189, 93, 55, 88, 12, 106, 200, 106, 135, 74, 131, 214, 43,\n\t\t107, 29, 10, 65, 199, 240, 48, 119, 215, 114, 244, 122, 148,\n\t\t115, 119, 26, 158, 159, 63, 221, 158, 19, 243, 13, 175, 44,\n\t\t183, 53, 208, 160, 137, 101, 175, 180, 10, 13, 65, 62, 117,\n\t\t157, 7, 217, 15, 17, 73, 41, 248, 116, 118, 86, 199, 99, 44,\n\t\t127, 66, 178, 98, 44, 103, 135, 52, 162, 71, 73, 141, 225,\n\t\t97, 78, 163, 20, 246, 224, 161, 193, 91, 146, 95, 79, 124,\n\t\t140, 229, 108, 141, 155, 221, 240, 48, 145, 238, 253, 196,\n\t\t178, 126, 172, 79, 0, 36, 31, 16, 93, 88, 197, 212, 43, 112,\n\t\t92, 164, 52, 254, 119, 146, 127, 221, 122, 215, 81, 74, 72,\n\t\t45, 177, 46, 30, 170, 211, 173, 142, 116, 106, 97, 189, 139,\n\t\t155, 39, 183, 187, 116, 118, 235, 21, 125, 235, 190, 45, 121,\n\t\t203, 66, 193, 204, 111, 115, 0, 196, 170, 48, 241, 247, 71,\n\t\t183, 246, 121, 175, 136, 209, 42, 57, 202, 176, 176, 130,\n\t\t250, 97, 242, 178, 154, 6, 246, 239, 34, 122, 153, 234, 65,\n\t\t77, 223, 159, 41, 97, 205, 15, 79, 152, 137, 69, 153, 139,\n\t\t235, 85, 45, 195, 99, 229, 170, 82, 149, 234, 208, 88, 15,\n\t\t227, 63, 39, 252, 181, 253, 32, 183, 174, 71, 231, 48, 243,\n\t\t170, 20, 231, 164, 117, 84, 233, 106, 95, 88, 181, 179, 197,\n\t\t106, 55, 89, 117, 111, 26, 2, 21, 113, 90, 213, 196, 81, 255,\n\t\t0, 243, 31, 54, 108, 62, 214, 174, 36, 64, 37, 205, 155, 206,\n\t\t252, 189, 227, 252, 154, 94, 125, 119, 232, 159, 191, 204,\n\t\t127, 124, 185, 102, 147, 99, 142, 15, 100, 129, 45, 221, 127,\n\t\t100, 193, 183, 200, 130, 52, 178, 159, 135, 225, 98, 246,\n\t\t68, 30, 190, 59, 10, 179, 211, 184, 55, 221, 237, 92, 178,\n\t\t63, 226, 234, 123, 180, 184, 52, 115, 167, 13, 79, 244, 26,\n\t\t199, 103, 155, 108, 26, 188, 255, 201, 156, 199, 85, 183,\n\t\t105, 32, 58, 106, 60, 218, 52, 84, 134, 65, 67, 106, 86, 194,\n\t\t112, 146, 13, 188, 64, 49, 37, 230, 161, 59, 172, 62, 233,\n\t\t213, 4, 36, 115, 116, 184, 110, 138, 152, 31, 217, 145, 91,\n\t\t52, 117, 90, 61, 18, 186, 166, 227, 240, 209, 218, 41, 43,\n\t\t76, 99, 41, 36, 14, 91, 15, 249, 10, 122, 44, 167, 79, 216,\n\t\t141, 83, 138, 195, 216, 207, 109, 45, 85, 157, 5, 68, 250,\n\t\t50, 28, 204, 227, 199, 205, 25, 130, 90, 174, 95, 182, 218,\n\t\t15, 119, 229, 52, 76, 95, 211, 38, 244, 82, 219, 94, 135,\n\t\t44, 216, 1, 208, 218, 112, 109, 70, 132, 26, 211, 113, 204,\n\t\t160, 24, 84, 3, 131, 167, 76, 45, 205, 49, 18, 174, 182, 49,\n\t\t122, 67, 51, 219, 152, 101, 211, 58, 196, 46, 171, 123, 240,\n\t\t48, 175, 94, 45, 46, 230, 84, 28, 163, 93, 76, 63, 89, 111,\n\t\t144, 216, 55, 186, 147, 232, 122, 250, 171, 119, 146, 175,\n\t\t95, 158, 62, 157, 254, 245, 252, 233, 215, 27, 152, 37, 230,\n\t\t155, 164, 206, 203, 13, 37, 165, 251, 116, 207, 255, 217,\n\t\t13, 229, 21, 73, 215, 46, 37, 157, 169, 172, 239, 145, 116,\n\t\t135, 199, 34, 76, 68, 29, 183, 199, 207, 61, 20, 117, 220,\n\t\t222, 37, 234, 30, 72, 58, 107, 220, 187, 37, 221, 171, 90,\n\t\t207, 127, 104, 95, 21, 91, 245, 175, 223, 88, 119, 43, 193,\n\t\t61, 45, 55, 246, 30, 223, 164, 195, 166, 182, 6, 43, 148,\n\t\t246, 207, 106, 248, 255, 205, 106, 144, 230, 141, 121, 63,\n\t\t230, 59, 102, 255, 232, 238, 170, 159, 194, 40, 233, 1, 16,\n\t\t188, 225, 102, 36, 219, 182, 250, 94, 82, 114, 182, 147, 15,\n\t\t59, 38, 184, 75, 209, 142, 7, 149, 43, 190, 171, 53, 108,\n\t\t255, 202, 247, 39, 234, 219, 188, 113, 251, 101, 167, 253,\n\t\t175, 190, 78, 61, 19, 176, 221, 103, 44, 191, 115, 237, 119,\n\t\t53, 167, 218, 103, 218, 242, 176, 199, 116, 29, 19, 120, 56,\n\t\t238, 199, 150, 127, 89, 11, 217, 239, 22, 156, 119, 246, 133,\n\t\t54, 127, 53, 250, 232, 134, 104, 222, 220, 230, 122, 41, 221,\n\t\t179, 30, 158, 140, 238, 121, 15, 229, 252, 237, 104, 44, 122,\n\t\t106, 72, 56, 9, 29, 195, 72, 105, 186, 88, 47, 67, 166, 217,\n\t\t245, 233, 47, 146, 120, 156, 194, 127, 72, 226, 193, 169,\n\t\t224, 126, 253, 252, 199, 47, 183, 103, 146, 92, 254, 235,\n\t\t31, 79, 194, 15, 90, 15, 127, 23, 79, 2, 82, 219, 40, 146,\n\t\t47, 251, 1, 58, 252, 47, 28, 161, 247, 13, 208, 97, 94, 129,\n\t\t203, 147, 29, 217, 187, 17, 29, 50, 130, 66, 87, 36, 8, 174,\n\t\t122, 22, 69, 88, 184, 26, 193, 144, 167, 88, 166, 200, 106,\n\t\t157, 100, 53, 187, 102, 27, 108, 51, 224, 98, 26, 199, 62,\n\t\t105, 60, 129, 152, 193, 111, 90, 197, 179, 227, 77, 110, 165,\n\t\t17, 124, 210, 135, 61, 177, 21, 11, 196, 66, 61, 27, 98, 26,\n\t\t226, 23, 161, 58, 106, 108, 93, 215, 149, 45, 177, 139, 236,\n\t\t116, 62, 103, 77, 212, 210, 207, 143, 0, 32, 189, 158, 49,\n\t\t77, 195, 116, 59, 47, 223, 179, 228, 31, 186, 169, 222, 146,\n\t\t47, 107, 114, 112, 76, 225, 221, 202, 211, 102, 106, 245,\n\t\t253, 36, 91, 55, 36, 36, 240, 227, 23, 169, 250, 154, 141,\n\t\t230, 198, 22, 21, 95, 213, 173, 82, 179, 177, 52, 215, 247,\n\t\t55, 234, 86, 223, 226, 186, 58, 220, 248, 174, 222, 175, 98,\n\t\t15, 199, 188, 85, 247, 187, 55, 28, 124, 184, 132, 111, 155,\n\t\t170, 239, 222, 112, 148, 101, 175, 53, 79, 183, 2, 70, 207,\n\t\t135, 119, 99, 246, 254, 113, 141, 127, 139, 17, 157, 93, 181,\n\t\t131, 219, 160, 0, 100, 101, 202, 197, 214, 32, 66, 110, 129,\n\t\t19, 210, 15, 51, 155, 91, 130, 167, 100, 94, 154, 102, 185,\n\t\t148, 101, 120, 109, 26, 186, 99, 222, 69, 68, 57, 218, 199,\n\t\t71, 173, 89, 162, 251, 123, 234, 146, 248, 198, 141, 194,\n\t\t96, 17, 244, 76, 254, 86, 6, 41, 234, 200, 155, 31, 219, 221,\n\t\t2, 182, 182, 205, 42, 68, 105, 64, 93, 35, 117, 223, 104,\n\t\t108, 131, 57, 86, 88, 79, 104, 70, 68, 192, 8, 164, 232, 22,\n\t\t144, 85, 144, 119, 108, 190, 158, 253, 196, 174, 26, 46, 180,\n\t\t141, 39, 206, 250, 109, 98, 23, 59, 166, 127, 99, 98, 63,\n\t\t86, 117, 94, 117, 155, 223, 203, 118, 41, 233, 79, 20, 77,\n\t\t127, 143, 41, 124, 152, 225, 205, 83, 137, 35, 15, 168, 178,\n\t\t141, 1, 185, 222, 25, 200, 102, 205, 55, 110, 140, 118, 188,\n\t\t247, 163, 27, 227, 88, 103, 223, 190, 49, 106, 253, 254, 156,\n\t\t221, 241, 63, 34, 158, 99, 187, 179, 45, 31, 222, 103, 208,\n\t\t255, 175, 86, 197, 239, 40, 122, 135, 63, 77, 21, 255, 217,\n\t\t91, 225, 67, 213, 232, 244, 245, 203, 231, 27, 160, 102, 230,\n\t\t254, 253, 7, 121, 171, 184, 57, 59, 59, 64, 48, 159, 147,\n\t\t133, 47, 241, 8, 20, 120, 221, 231, 132, 31, 87, 17, 164,\n\t\t225, 81, 242, 223, 133, 214, 232, 124, 253, 227, 142, 29,\n\t\t110, 78, 10, 216, 225, 123, 243, 93, 35, 190, 174, 189, 26,\n\t\t171, 229, 190, 187, 3, 191, 8, 109, 3, 43, 139, 247, 176,\n\t\t56, 224, 227, 180, 63, 75, 14, 62, 56, 87, 68, 234, 130, 106,\n\t\t103, 136, 114, 124, 101, 249, 95, 132, 125, 45, 36, 91, 250,\n\t\t69, 181, 209, 79, 215, 29, 116, 229, 235, 128, 51, 103, 244,\n\t\t146, 137, 154, 195, 59, 252, 34, 67, 50, 59, 251, 67, 161,\n\t\t24, 48, 84, 63, 34, 119, 254, 51, 39, 154, 219, 82, 112, 231,\n\t\t155, 197, 112, 147, 35, 182, 59, 215, 76, 34, 244, 152, 162,\n\t\t111, 115, 54, 109, 100, 141, 27, 94, 111, 80, 178, 0, 11,\n\t\t153, 236, 209, 151, 121, 11, 45, 222, 98, 140, 237, 153, 237,\n\t\t14, 30, 157, 194, 105, 189, 179, 21, 163, 165, 80, 183, 213,\n\t\t98, 71, 131, 227, 168, 112, 164, 85, 20, 115, 65, 69, 13,\n\t\t92, 60, 179, 170, 191, 71, 199, 143, 68, 228, 224, 160, 198,\n\t\t174, 118, 99, 230, 114, 56, 156, 45, 181, 229, 56, 210, 19,\n\t\t230, 117, 133, 135, 109, 105, 175, 254, 229, 49, 202, 203,\n\t\t8, 88, 182, 127, 183, 105, 182, 58, 24, 109, 158, 217, 181,\n\t\t76, 180, 241, 142, 203, 154, 241, 50, 67, 38, 140, 217, 196,\n\t\t3, 32, 100, 21, 35, 250, 231, 90, 179, 243, 56, 241, 60, 242,\n\t\t45, 4, 245, 222, 28, 120, 223, 54, 36, 141, 119, 214, 147,\n\t\t43, 51, 239, 56, 120, 155, 210, 6, 70, 173, 45, 27, 99, 224,\n\t\t108, 16, 94, 62, 112, 8, 30, 65, 74, 8, 139, 141, 131, 239,\n\t\t204, 240, 108, 198, 117, 131, 159, 147, 162, 167, 217, 93,\n\t\t255, 230, 26, 233, 192, 199, 237, 12, 47, 122, 146, 169, 178,\n\t\t127, 164, 15, 35, 1, 165, 172, 191, 172, 95, 24, 155, 84,\n\t\t92, 79, 146, 81, 200, 187, 23, 202, 53, 77, 5, 243, 109, 38,\n\t\t214, 118, 62, 81, 11, 34, 212, 130, 207, 15, 29, 168, 155,\n\t\t250, 47, 2, 60, 143, 128, 170, 49, 103, 214, 144, 219, 75,\n\t\t127, 242, 126, 26, 52, 159, 207, 54, 252, 251, 121, 240, 142,\n\t\t225, 125, 168, 61, 112, 56, 142, 131, 10, 96, 184, 153, 115,\n\t\t103, 157, 9, 180, 139, 93, 179, 254, 29, 113, 195, 101, 248,\n\t\t229, 255, 140, 213, 127, 26, 215, 227, 119, 123, 97, 166,\n\t\t117, 10, 154, 120, 24, 226, 192, 173, 242, 225, 170, 66, 71,\n\t\t107, 207, 153, 31, 32, 184, 63, 242, 215, 113, 56, 90, 228,\n\t\t255, 232, 125, 112, 49, 169, 92, 24, 194, 96, 8, 135, 49,\n\t\t80, 99, 69, 128, 155, 232, 127, 219, 122, 248, 244, 252, 199,\n\t\t215, 87, 142, 173, 111, 178, 105, 190, 51, 42, 142, 50, 249,\n\t\t63, 67, 229, 213, 114, 126, 72, 83, 125, 213, 105, 140, 223,\n\t\t58, 223, 217, 177, 15, 63, 107, 203, 214, 99, 210, 229, 249,\n\t\t116, 107, 78, 223, 176, 140, 108, 189, 47, 21, 150, 222, 255,\n\t\t246, 76, 131, 247, 248, 190, 205, 114, 138, 229, 109, 203,\n\t\t233, 244, 29, 138, 160, 90, 10, 119, 227, 238, 159, 191, 156,\n\t\t111, 167, 97, 140, 27, 250, 33, 28, 98, 160, 9, 209, 96, 100,\n\t\t77, 50, 30, 193, 200, 0, 203, 212, 96, 228, 146, 238, 37,\n\t\t58, 39, 131, 167, 123, 59, 71, 185, 168, 186, 111, 207, 184,\n\t\t125, 233, 110, 197, 185, 147, 194, 106, 185, 206, 8, 191,\n\t\t206, 128, 63, 93, 166, 136, 227, 214, 46, 113, 28, 55, 79,\n\t\t87, 137, 212, 19, 167, 151, 15, 177, 52, 41, 255, 240, 211,\n\t\t62, 32, 253, 169, 120, 216, 127, 155, 254, 100, 250, 137,\n\t\t237, 149, 14, 101, 250, 121, 3, 150, 176, 6, 249, 125, 253,\n\t\t121, 248, 107, 58, 52, 255, 188, 230, 74, 119, 126, 87, 241,\n\t\t135, 119, 149, 255, 48, 145, 254, 53, 196, 175, 120, 19, 106,\n\t\t181, 35, 27, 103, 13, 14, 91, 51, 235, 20, 149, 72, 119, 73,\n\t\t195, 36, 26, 236, 15, 23, 49, 135, 23, 0, 109, 37, 141, 206,\n\t\t191, 247, 84, 228, 187, 25, 124, 37, 105, 66, 197, 157, 71,\n\t\t140, 13, 25, 191, 95, 39, 249, 149, 164, 11, 242, 141, 159,\n\t\t35, 31, 238, 54, 178, 164, 99, 73, 198, 50, 210, 249, 6, 219,\n\t\t61, 175, 137, 9, 138, 235, 125, 218, 146, 99, 215, 255, 157,\n\t\t86, 16, 248, 241, 131, 60, 125, 114, 23, 239, 238, 81, 251,\n\t\t73, 212, 58, 42, 97, 174, 166, 190, 133, 137, 34, 56, 95,\n\t\t44, 243, 127, 92, 226, 159, 179, 179, 164, 236, 249, 14, 6,\n\t\t103, 204, 128, 128, 124, 29, 132, 115, 123, 127, 124, 240,\n\t\t242, 59, 187, 255, 30, 205, 43, 59, 243, 8, 44, 25, 206, 249,\n\t\t180, 133, 95, 76, 117, 139, 50, 58, 229, 129, 115, 111, 253,\n\t\t191, 234, 132, 163, 168, 199, 147, 247, 235, 199, 223, 158,\n\t\t111, 103, 239, 77, 104, 212, 46, 127, 185, 117, 143, 236,\n\t\t170, 37, 229, 17, 87, 169, 218, 250, 60, 12, 244, 145, 252,\n\t\t189, 26, 236, 214, 53, 150, 228, 9, 138, 13, 115, 41, 91,\n\t\t102, 255, 250, 138, 187, 120, 103, 189, 26, 233, 161, 97,\n\t\t89, 51, 240, 236, 235, 219, 13, 103, 119, 190, 165, 176, 81,\n\t\t17, 30, 208, 8, 227, 161, 235, 34, 172, 9, 163, 5, 163, 233,\n\t\t246, 237, 197, 93, 221, 120, 111, 57, 87, 223, 159, 175, 122,\n\t\t14, 79, 219, 223, 91, 173, 175, 27, 188, 92, 117, 201, 251,\n\t\t74, 185, 30, 131, 195, 123, 135, 239, 159, 5, 251, 159, 90,\n\t\t176, 191, 60, 255, 122, 179, 82, 239, 16, 83, 80, 45, 58,\n\t\t76, 41, 13, 68, 80, 167, 106, 183, 130, 111, 170, 222, 61,\n\t\t46, 85, 53, 87, 205, 220, 237, 110, 58, 211, 205, 215, 119,\n\t\t214, 32, 148, 204, 10, 2, 94, 72, 153, 156, 196, 162, 100,\n\t\t224, 183, 129, 158, 82, 45, 47, 49, 100, 141, 174, 229, 62,\n\t\t224, 168, 238, 84, 247, 128, 79, 219, 209, 101, 248, 149,\n\t\t30, 194, 151, 30, 222, 81, 156, 162, 177, 126, 63, 51, 18,\n\t\t135, 118, 100, 6, 189, 224, 189, 114, 248, 129, 6, 241, 245,\n\t\t203, 211, 199, 27, 192, 190, 120, 115, 132, 121, 201, 236,\n\t\t24, 51, 159, 1, 147, 29, 0, 13, 167, 232, 104, 133, 124, 225,\n\t\t1, 130, 0, 178, 103, 228, 243, 46, 101, 100, 240, 166, 14,\n\t\t158, 140, 57, 251, 158, 192, 88, 154, 124, 233, 133, 251,\n\t\t196, 190, 132, 152, 85, 185, 227, 218, 35, 146, 30, 144, 62,\n\t\t60, 238, 28, 93, 52, 191, 51, 32, 230, 245, 4, 162, 117, 160,\n\t\t22, 101, 144, 131, 224, 21, 240, 77, 235, 27, 248, 108, 237,\n\t\t121, 26, 95, 21, 251, 28, 96, 126, 97, 171, 158, 152, 141,\n\t\t9, 233, 189, 118, 163, 151, 179, 54, 11, 137, 201, 173, 76,\n\t\t37, 77, 240, 124, 182, 169, 151, 195, 81, 38, 82, 129, 37,\n\t\t40, 242, 1, 169, 201, 0, 99, 2, 112, 137, 70, 69, 49, 149,\n\t\t51, 17, 239, 208, 163, 110, 85, 58, 107, 205, 125, 125, 241,\n\t\t236, 180, 24, 119, 141, 66, 181, 233, 143, 199, 24, 174, 112,\n\t\t168, 46, 148, 73, 19, 148, 153, 103, 77, 80, 86, 46, 244,\n\t\t92, 12, 33, 152, 163, 94, 228, 114, 218, 95, 219, 173, 1,\n\t\t77, 203, 6, 77, 123, 56, 185, 221, 181, 62, 120, 223, 136,\n\t\t253, 227, 151, 127, 63, 221, 100, 21, 197, 155, 163, 168,\n\t\t127, 102, 214, 59, 102, 22, 191, 123, 102, 209, 159, 51, 179,\n\t\t232, 193, 204, 122, 255, 84, 127, 71, 133, 14, 127, 70, 141,\n\t\t34, 160, 7, 131, 238, 171, 193, 34, 224, 118, 137, 224, 182,\n\t\t251, 158, 246, 215, 118, 43, 93, 165, 167, 159, 174, 178,\n\t\t199, 167, 212, 64, 103, 250, 39, 21, 127, 120, 173, 252, 187,\n\t\t251, 238, 211, 215, 175, 207, 95, 254, 199, 253, 159, 63,\n\t\t150, 229, 122, 65, 165, 27, 114, 202, 157, 170, 156, 146,\n\t\t249, 137, 90, 192, 46, 120, 148, 63, 74, 58, 194, 240, 150,\n\t\t61, 234, 44, 246, 79, 46, 1, 212, 122, 247, 19, 232, 169,\n\t\t28, 219, 35, 4, 68, 141, 240, 187, 7, 129, 104, 180, 27, 67,\n\t\t59, 10, 253, 182, 11, 85, 71, 202, 136, 189, 187, 232, 235,\n\t\t203, 174, 61, 51, 107, 96, 253, 91, 0, 3, 96, 234, 201, 196,\n\t\t19, 231, 2, 190, 6, 176, 21, 156, 229, 143, 244, 0, 207, 118,\n\t\t116, 248, 215, 227, 151, 231, 103, 247, 127, 255, 120, 250,\n\t\t242, 245, 249, 54, 208, 39, 221, 100, 75, 255, 211, 245, 187,\n\t\t174, 79, 84, 118, 93, 31, 57, 160, 235, 35, 223, 119, 4, 143,\n\t\t174, 63, 62, 45, 55, 164, 128, 233, 38, 33, 249, 159, 14,\n\t\t223, 117, 120, 228, 176, 235, 112, 232, 134, 220, 30, 42,\n\t\t128, 163, 195, 109, 150, 223, 244, 249, 77, 26, 240, 63, 125,\n\t\t190, 235, 115, 209, 176, 182, 62, 39, 110, 232, 243, 135,\n\t\t44, 127, 214, 231, 207, 191, 253, 254, 245, 70, 69, 74, 119,\n\t\t92, 119, 255, 244, 248, 125, 64, 188, 63, 78, 207, 238, 247,\n\t\t207, 31, 63, 189, 54, 145, 111, 124, 74, 145, 71, 183, 198,\n\t\t0, 234, 100, 160, 24, 181, 10, 165, 5, 64, 220, 75, 206, 74,\n\t\t112, 136, 208, 220, 222, 227, 28, 97, 135, 2, 25, 40, 113,\n\t\t173, 17, 232, 82, 89, 169, 188, 168, 251, 222, 1, 72, 155,\n\t\t82, 140, 131, 103, 175, 3, 254, 137, 138, 122, 2, 18, 151,\n\t\t54, 59, 92, 139, 73, 174, 231, 186, 41, 69, 32, 187, 85, 226,\n\t\t214, 241, 90, 140, 60, 117, 95, 41, 182, 186, 0, 36, 41, 115,\n\t\t5, 124, 9, 197, 178, 184, 86, 140, 110, 174, 201, 141, 90,\n\t\t103, 192, 152, 41, 103, 51, 121, 48, 174, 197, 224, 25, 16,\n\t\t178, 108, 220, 132, 227, 6, 177, 111, 185, 164, 115, 226,\n\t\t238, 75, 109, 240, 190, 91, 82, 177, 212, 159, 67, 7, 202,\n\t\t119, 79, 8, 96, 68, 19, 241, 74, 206, 11, 183, 228, 19, 129,\n\t\t229, 156, 125, 78, 12, 160, 237, 74, 21, 95, 165, 218, 234,\n\t\t20, 125, 8, 128, 24, 142, 4, 62, 232, 105, 48, 230, 234, 229,\n\t\t221, 193, 251, 232, 230, 63, 190, 156, 62, 223, 142, 219,\n\t\t141, 135, 129, 243, 8, 167, 5, 208, 81, 207, 190, 43, 179,\n\t\t73, 241, 37, 149, 212, 244, 88, 53, 69, 124, 61, 4, 117, 234,\n\t\t12, 78, 107, 242, 189, 179, 76, 196, 234, 91, 205, 83, 240,\n\t\t1, 189, 46, 157, 25, 141, 55, 51, 14, 174, 237, 245, 78, 106,\n\t\t32, 61, 19, 53, 85, 108, 146, 166, 33, 144, 3, 117, 155, 118,\n\t\t160, 219, 215, 177, 39, 87, 200, 221, 55, 33, 144, 166, 247,\n\t\t166, 4, 164, 167, 41, 87, 223, 90, 171, 248, 98, 150, 49,\n\t\t111, 17, 125, 143, 27, 156, 152, 15, 242, 93, 192, 108, 7,\n\t\t31, 16, 172, 64, 50, 62, 148, 146, 126, 133, 66, 206, 219,\n\t\t13, 180, 182, 157, 93, 236, 190, 164, 148, 199, 209, 51, 16,\n\t\t220, 125, 164, 22, 21, 1, 15, 55, 228, 95, 138, 64, 111, 3,\n\t\t112, 84, 40, 25, 72, 56, 204, 96, 231, 116, 181, 249, 152,\n\t\t25, 236, 226, 172, 108, 151, 36, 107, 164, 78, 177, 250, 150,\n\t\t82, 5, 8, 163, 46, 132, 88, 125, 79, 141, 209, 129, 133, 73,\n\t\t121, 17, 163, 162, 111, 81, 241, 148, 155, 209, 13, 197, 2,\n\t\t143, 103, 46, 53, 34, 80, 164, 113, 136, 234, 181, 81, 108,\n\t\t238, 236, 19, 43, 173, 168, 221, 64, 131, 250, 57, 118, 223,\n\t\t27, 39, 141, 106, 194, 144, 219, 136, 143, 1, 31, 227, 141,\n\t\t231, 35, 207, 54, 218, 32, 31, 101, 46, 185, 76, 99, 108,\n\t\t163, 15, 92, 99, 90, 175, 83, 245, 61, 119, 177, 107, 70,\n\t\t88, 233, 30, 92, 125, 63, 142, 187, 192, 42, 60, 177, 155,\n\t\t2, 107, 254, 144, 205, 151, 131, 6, 204, 247, 216, 20, 14,\n\t\t0, 99, 156, 154, 175, 192, 216, 30, 99, 156, 154, 79, 156,\n\t\t224, 140, 54, 140, 245, 109, 140, 221, 24, 211, 49, 198, 235,\n\t\t13, 27, 227, 109, 136, 109, 132, 199, 0, 219, 248, 142, 225,\n\t\t37, 158, 199, 224, 174, 99, 59, 134, 214, 141, 177, 29, 67,\n\t\t235, 198, 216, 142, 161, 29, 35, 59, 6, 118, 140, 235, 24,\n\t\t86, 140, 42, 107, 38, 24, 6, 213, 109, 163, 58, 198, 208,\n\t\t141, 81, 93, 111, 216, 168, 58, 27, 214, 187, 98, 226, 243,\n\t\t47, 255, 207, 243, 252, 213, 253, 235, 203, 231, 63, 110,\n\t\t224, 223, 83, 221, 159, 144, 3, 13, 91, 54, 75, 4, 138, 253,\n\t\t232, 98, 213, 160, 140, 59, 115, 129, 195, 209, 197, 182,\n\t\t139, 75, 250, 161, 210, 238, 207, 44, 14, 231, 136, 200, 165,\n\t\t112, 248, 161, 114, 210, 163, 158, 225, 112, 148, 54, 241,\n\t\t143, 149, 242, 158, 254, 149, 193, 138, 172, 102, 118, 229,\n\t\t253, 243, 151, 45, 194, 211, 84, 112, 92, 176, 251, 230, 69,\n\t\t165, 206, 132, 200, 242, 123, 188, 9, 96, 122, 122, 68, 156,\n\t\t64, 177, 168, 25, 83, 203, 59, 138, 148, 177, 175, 252, 88,\n\t\t93, 170, 124, 118, 249, 29, 45, 188, 211, 192, 151, 195, 59,\n\t\t150, 200, 31, 159, 94, 95, 36, 119, 210, 83, 10, 92, 78, 103,\n\t\t199, 80, 231, 34, 168, 81, 25, 236, 195, 173, 201, 190, 90,\n\t\t244, 255, 143, 14, 62, 69, 251, 25, 57, 40, 187, 71, 202,\n\t\t25, 173, 27, 63, 143, 95, 138, 252, 223, 145, 203, 25, 228,\n\t\t221, 92, 190, 179, 128, 204, 243, 246, 94, 217, 234, 38, 245,\n\t\t146, 138, 31, 185, 181, 51, 234, 255, 214, 251, 135, 123,\n\t\t5, 232, 192, 220, 105, 57, 23, 213, 187, 185, 252, 80, 49,\n\t\t247, 59, 144, 229, 67, 173, 189, 64, 223, 7, 57, 40, 136,\n\t\t45, 127, 244, 147, 135, 119, 124, 243, 39, 15, 126, 229, 35,\n\t\t56, 224, 218, 3, 111, 95, 185, 231, 236, 179, 40, 156, 59,\n\t\t78, 199, 134, 15, 133, 116, 102, 192, 62, 126, 207, 84, 122,\n\t\t216, 159, 140, 48, 137, 7, 0, 170, 31, 231, 255, 254, 31,\n\t\t247, 233, 243, 215, 155, 156, 140, 116, 199, 17, 142, 221,\n\t\t114, 144, 225, 216, 249, 230, 176, 206, 186, 101, 66, 169,\n\t\t121, 22, 81, 15, 115, 176, 106, 156, 131, 179, 222, 66, 8,\n\t\t133, 118, 87, 10, 97, 135, 225, 79, 27, 52, 177, 246, 150,\n\t\t252, 76, 119, 209, 139, 89, 108, 75, 149, 134, 137, 166, 26,\n\t\t23, 39, 181, 80, 108, 137, 60, 160, 111, 7, 44, 84, 69, 194,\n\t\t133, 171, 71, 87, 134, 49, 124, 118, 26, 37, 74, 6, 244, 97,\n\t\t103, 210, 3, 40, 202, 128, 107, 167, 145, 104, 112, 183, 79,\n\t\t231, 229, 243, 167, 219, 222, 252, 117, 207, 103, 154, 210,\n\t\t35, 52, 208, 29, 171, 233, 219, 6, 171, 60, 244, 192, 96,\n\t\t93, 25, 78, 95, 181, 87, 177, 132, 169, 150, 41, 202, 150,\n\t\t221, 198, 201, 225, 159, 240, 213, 187, 102, 50, 26, 8, 150,\n\t\t198, 149, 161, 251, 21, 38, 238, 251, 254, 137, 229, 233,\n\t\t211, 252, 236, 78, 243, 211, 109, 162, 117, 122, 126, 219,\n\t\t63, 33, 6, 217, 102, 210, 80, 237, 21, 250, 174, 66, 219,\n\t\t54, 59, 166, 199, 137, 174, 252, 33, 181, 226, 16, 245, 110,\n\t\t11, 199, 0, 48, 224, 168, 71, 10, 217, 64, 88, 217, 135, 10,\n\t\t194, 51, 206, 83, 203, 62, 164, 137, 26, 249, 76, 136, 11,\n\t\t107, 161, 74, 41, 224, 239, 41, 205, 67, 121, 141, 217, 115,\n\t\t151, 71, 129, 14, 28, 230, 86, 6, 255, 123, 101, 95, 43, 126,\n\t\t50, 24, 223, 146, 125, 140, 187, 107, 20, 188, 85, 67, 1,\n\t\t181, 185, 242, 226, 42, 206, 144, 192, 252, 242, 242, 161,\n\t\t64, 81, 149, 134, 30, 174, 91, 202, 125, 180, 179, 202, 35,\n\t\t127, 243, 166, 202, 122, 214, 208, 71, 74, 9, 141, 68, 251,\n\t\t50, 55, 41, 236, 238, 241, 115, 228, 149, 180, 238, 14, 137,\n\t\t231, 160, 201, 123, 251, 20, 252, 238, 33, 56, 213, 114, 230,\n\t\t158, 124, 205, 179, 3, 117, 87, 7, 37, 10, 168, 223, 73, 30,\n\t\t70, 212, 184, 173, 141, 226, 99, 235, 200, 201, 100, 208,\n\t\t32, 117, 95, 232, 199, 190, 14, 102, 40, 96, 239, 67, 178,\n\t\t81, 247, 81, 198, 48, 86, 117, 182, 68, 228, 94, 151, 8, 26,\n\t\t141, 83, 234, 94, 195, 190, 125, 145, 201, 48, 126, 113, 145,\n\t\t173, 160, 135, 29, 250, 184, 63, 71, 163, 128, 178, 45, 91,\n\t\t31, 103, 95, 161, 143, 50, 251, 86, 101, 14, 165, 226, 17,\n\t\t154, 99, 189, 129, 57, 153, 207, 78, 123, 81, 58, 244, 62,\n\t\t56, 241, 231, 63, 190, 252, 107, 121, 58, 157, 220, 233, 235,\n\t\t211, 151, 27, 200, 170, 124, 115, 226, 177, 75, 36, 44, 138,\n\t\t186, 240, 192, 161, 248, 152, 36, 43, 76, 174, 7, 223, 213,\n\t\t145, 67, 62, 40, 9, 126, 169, 98, 45, 75, 255, 6, 15, 186,\n\t\t49, 156, 152, 118, 223, 184, 40, 235, 29, 172, 250, 237, 215,\n\t\t64, 62, 196, 60, 93, 60, 254, 163, 85, 59, 58, 208, 51, 93,\n\t\t157, 102, 94, 106, 47, 15, 152, 175, 194, 52, 218, 54, 154,\n\t\t54, 90, 54, 106, 138, 136, 153, 209, 176, 209, 174, 181, 217,\n\t\t163, 93, 238, 226, 241, 239, 175, 208, 49, 202, 174, 206,\n\t\t189, 76, 162, 34, 212, 106, 204, 117, 169, 120, 166, 216,\n\t\t45, 206, 61, 24, 118, 155, 76, 166, 218, 51, 190, 163, 60,\n\t\t186, 197, 103, 237, 109, 141, 124, 151, 93, 238, 157, 243,\n\t\t235, 181, 243, 157, 124, 15, 112, 246, 159, 233, 245, 120,\n\t\t52, 255, 174, 211, 171, 37, 15, 164, 10, 48, 31, 84, 31, 114,\n\t\t47, 83, 42, 190, 5, 112, 217, 89, 50, 189, 108, 155, 157,\n\t\t125, 103, 234, 72, 216, 79, 65, 25, 44, 149, 184, 185, 21,\n\t\t138, 128, 13, 229, 16, 73, 31, 4, 219, 76, 11, 71, 146, 13,\n\t\t48, 177, 125, 39, 17, 130, 194, 42, 28, 187, 93, 132, 118,\n\t\t130, 223, 139, 60, 8, 108, 192, 52, 159, 227, 122, 93, 144,\n\t\t64, 169, 122, 25, 251, 154, 218, 20, 125, 111, 13, 81, 24,\n\t\t9, 156, 155, 120, 20, 62, 184, 146, 244, 91, 37, 190, 115,\n\t\t146, 63, 127, 186, 9, 152, 203, 55, 231, 105, 151, 115, 60,\n\t\t182, 191, 253, 20, 253, 145, 9, 113, 248, 91, 78, 209, 31,\n\t\t238, 23, 165, 68, 224, 20, 230, 92, 85, 31, 9, 147, 8, 197,\n\t\t82, 124, 200, 169, 78, 67, 132, 174, 115, 13, 146, 150, 211,\n\t\t4, 65, 171, 137, 11, 105, 26, 98, 244, 125, 179, 235, 102,\n\t\t102, 221, 67, 87, 253, 103, 102, 253, 111, 157, 89, 119, 231,\n\t\t194, 211, 167, 95, 221, 151, 207, 243, 127, 223, 204, 133,\n\t\t188, 179, 135, 125, 155, 98, 129, 69, 172, 17, 206, 65, 179,\n\t\t9, 105, 74, 35, 211, 2, 224, 58, 235, 149, 33, 71, 159, 29,\n\t\t197, 232, 113, 104, 180, 194, 30, 43, 8, 79, 182, 140, 109,\n\t\t156, 15, 72, 153, 202, 183, 64, 4, 126, 175, 121, 133, 172,\n\t\t118, 43, 51, 131, 166, 246, 166, 235, 247, 206, 206, 8, 213,\n\t\t172, 23, 214, 32, 230, 213, 123, 177, 206, 14, 89, 91, 183,\n\t\t94, 142, 21, 49, 141, 211, 89, 3, 152, 97, 150, 172, 44, 61,\n\t\t3, 59, 7, 92, 99, 106, 7, 105, 162, 160, 37, 251, 45, 56,\n\t\t209, 171, 83, 239, 40, 120, 214, 124, 99, 90, 41, 234, 12,\n\t\t219, 32, 165, 13, 248, 5, 55, 170, 54, 236, 108, 52, 85, 106,\n\t\t141, 107, 36, 189, 165, 96, 38, 195, 47, 26, 48, 220, 233,\n\t\t98, 0, 242, 195, 190, 79, 138, 57, 179, 160, 243, 224, 59,\n\t\t57, 83, 44, 135, 159, 240, 37, 75, 144, 61, 182, 115, 106,\n\t\t63, 161, 120, 187, 115, 108, 106, 109, 61, 46, 254, 240, 109,\n\t\t229, 175, 213, 127, 87, 225, 143, 151, 211, 239, 79, 191,\n\t\t223, 6, 15, 228, 155, 67, 232, 93, 216, 106, 104, 94, 212,\n\t\t131, 136, 243, 255, 8, 164, 46, 120, 243, 131, 79, 106, 195,\n\t\t197, 238, 153, 16, 33, 208, 60, 21, 38, 189, 81, 27, 192,\n\t\t218, 123, 7, 23, 108, 14, 62, 230, 110, 139, 205, 242, 68,\n\t\t188, 209, 136, 71, 246, 1, 172, 66, 158, 148, 175, 57, 69,\n\t\t223, 107, 42, 139, 250, 137, 170, 226, 244, 248, 82, 102,\n\t\t60, 2, 161, 206, 228, 75, 35, 101, 158, 76, 122, 172, 93,\n\t\t189, 230, 217, 167, 226, 43, 199, 178, 222, 57, 58, 234, 213,\n\t\t231, 142, 245, 149, 186, 210, 19, 199, 224, 91, 139, 77, 172,\n\t\t227, 92, 82, 198, 17, 110, 163, 30, 1, 181, 90, 42, 224, 83,\n\t\t56, 131, 128, 6, 206, 134, 144, 103, 224, 183, 246, 200, 19,\n\t\t85, 223, 74, 5, 32, 124, 72, 220, 65, 84, 54, 10, 195, 110,\n\t\t151, 179, 111, 181, 130, 130, 185, 52, 205, 37, 7, 170, 151,\n\t\t60, 150, 218, 52, 94, 211, 199, 96, 20, 51, 115, 93, 34, 249,\n\t\t146, 196, 56, 78, 234, 11, 56, 51, 162, 50, 88, 9, 149, 90,\n\t\t36, 169, 139, 79, 173, 69, 16, 124, 214, 74, 107, 215, 91,\n\t\t71, 207, 204, 56, 99, 221, 56, 218, 83, 240, 8, 252, 149,\n\t\t177, 137, 57, 230, 237, 6, 254, 192, 216, 212, 236, 153, 142,\n\t\t237, 204, 202, 212, 255, 51, 191, 197, 100, 223, 162, 90,\n\t\t127, 242, 167, 168, 22, 253, 84, 171, 158, 225, 153, 69, 41,\n\t\t189, 2, 73, 14, 72, 101, 228, 153, 168, 175, 239, 218, 171,\n\t\t143, 215, 208, 105, 254, 120, 58, 125, 190, 141, 152, 204,\n\t\t235, 1, 45, 83, 153, 154, 126, 50, 128, 205, 185, 250, 30,\n\t\t186, 124, 66, 255, 255, 220, 52, 133, 2, 191, 43, 252, 79,\n\t\t10, 250, 84, 67, 35, 166, 20, 78, 215, 47, 29, 35, 203, 123,\n\t\t202, 193, 126, 199, 131, 122, 186, 245, 212, 134, 118, 166,\n\t\t232, 115, 229, 184, 56, 170, 213, 231, 76, 0, 251, 136, 61,\n\t\t130, 99, 1, 135, 217, 221, 151, 158, 162, 210, 48, 55, 106,\n\t\t9, 158, 160, 156, 235, 228, 184, 122, 226, 60, 21, 198, 145,\n\t\t250, 97, 150, 39, 57, 130, 81, 17, 111, 226, 193, 88, 39,\n\t\t188, 88, 147, 62, 88, 243, 132, 247, 210, 66, 61, 248, 40,\n\t\t154, 84, 77, 190, 150, 84, 22, 78, 190, 85, 17, 20, 228, 67,\n\t\t235, 109, 6, 10, 82, 1, 105, 89, 108, 161, 79, 49, 42, 189,\n\t\t55, 117, 159, 41, 21, 40, 60, 141, 104, 234, 190, 38, 98,\n\t\t90, 144, 251, 82, 18, 8, 17, 24, 169, 103, 49, 183, 52, 113,\n\t\t240, 148, 99, 132, 116, 232, 84, 183, 235, 152, 32, 179, 206,\n\t\t206, 72, 3, 168, 249, 92, 72, 189, 243, 234, 96, 138, 201,\n\t\t151, 150, 179, 10, 134, 88, 59, 4, 66, 143, 37, 47, 142, 32,\n\t\t75, 144, 210, 228, 19, 120, 37, 68, 112, 183, 210, 41, 105,\n\t\t188, 73, 1, 7, 190, 15, 37, 38, 64, 246, 81, 150, 49, 180,\n\t\t27, 71, 23, 188, 236, 209, 161, 112, 62, 58, 67, 106, 123,\n\t\t115, 204, 31, 207, 189, 229, 227, 203, 211, 151, 91, 179,\n\t\t235, 206, 169, 39, 56, 222, 35, 159, 11, 249, 84, 130, 200,\n\t\t224, 234, 185, 193, 143, 154, 124, 239, 53, 84, 132, 72, 65,\n\t\t20, 75, 135, 230, 20, 165, 231, 184, 198, 161, 63, 164, 54,\n\t\t213, 224, 27, 137, 16, 44, 62, 245, 72, 101, 74, 158, 40,\n\t\t179, 50, 252, 135, 192, 125, 170, 62, 101, 248, 94, 69, 108,\n\t\t246, 144, 198, 13, 237, 128, 208, 107, 201, 133, 143, 192,\n\t\t14, 73, 225, 145, 42, 44, 107, 7, 236, 110, 185, 42, 175,\n\t\t91, 138, 43, 145, 219, 17, 236, 137, 178, 145, 74, 221, 106,\n\t\t78, 162, 124, 102, 31, 66, 83, 9, 204, 92, 39, 238, 62, 199,\n\t\t74, 50, 129, 74, 231, 180, 200, 138, 32, 229, 33, 137, 45,\n\t\t181, 25, 134, 116, 130, 217, 172, 241, 71, 209, 215, 26, 160,\n\t\t185, 138, 41, 223, 161, 73, 21, 146, 158, 208, 27, 71, 199,\n\t\t220, 125, 111, 116, 157, 108, 114, 153, 91, 242, 80, 99, 142,\n\t\t62, 39, 224, 4, 22, 81, 197, 3, 224, 78, 26, 50, 56, 130,\n\t\t15, 172, 76, 121, 25, 129, 109, 236, 99, 105, 188, 80, 137,\n\t\t112, 188, 114, 110, 158, 82, 57, 204, 205, 19, 98, 125, 100,\n\t\t87, 41, 240, 97, 249, 134, 57, 158, 149, 164, 111, 92, 103,\n\t\t242, 92, 184, 158, 247, 221, 127, 134, 18, 203, 44, 227, 240,\n\t\t32, 25, 78, 5, 221, 239, 175, 41, 223, 125, 11, 67, 33, 31,\n\t\t167, 152, 131, 239, 162, 22, 168, 14, 153, 7, 7, 245, 74,\n\t\t65, 62, 96, 194, 251, 192, 154, 25, 44, 183, 113, 77, 129,\n\t\t204, 12, 134, 111, 123, 96, 85, 137, 6, 116, 14, 173, 101,\n\t\t173, 152, 150, 170, 169, 158, 93, 130, 95, 185, 143, 130,\n\t\t12, 35, 201, 13, 124, 77, 151, 32, 189, 84, 139, 231, 162,\n\t\t80, 44, 174, 13, 236, 248, 29, 17, 203, 198, 153, 30, 135,\n\t\t58, 156, 202, 122, 113, 116, 76, 197, 131, 159, 159, 247,\n\t\t135, 150, 105, 64, 157, 12, 82, 83, 18, 9, 27, 163, 175, 19,\n\t\t16, 82, 230, 13, 94, 106, 165, 185, 54, 45, 46, 5, 227, 226,\n\t\t38, 195, 143, 202, 197, 231, 121, 60, 54, 94, 27, 79, 141,\n\t\t183, 50, 32, 244, 245, 141, 165, 140, 67, 201, 92, 207, 85,\n\t\t217, 221, 22, 7, 18, 87, 32, 168, 12, 67, 133, 73, 179, 103,\n\t\t155, 85, 54, 197, 41, 26, 147, 183, 225, 185, 0, 128, 85,\n\t\t51, 108, 237, 157, 20, 1, 79, 165, 207, 15, 208, 23, 123,\n\t\t107, 89, 49, 43, 101, 224, 90, 160, 163, 161, 198, 139, 54,\n\t\t156, 21, 46, 167, 206, 46, 107, 226, 103, 19, 189, 86, 190,\n\t\t56, 202, 153, 7, 61, 228, 213, 183, 112, 124, 57, 62, 145,\n\t\t199, 100, 96, 89, 129, 71, 235, 150, 101, 168, 188, 212, 163,\n\t\t175, 243, 128, 196, 98, 163, 53, 31, 212, 236, 49, 161, 52,\n\t\t159, 101, 210, 5, 128, 31, 241, 202, 124, 110, 239, 224, 25,\n\t\t55, 222, 176, 231, 52, 50, 113, 129, 6, 166, 131, 85, 147,\n\t\t143, 71, 34, 107, 183, 157, 80, 43, 211, 94, 222, 128, 52,\n\t\t81, 167, 49, 209, 199, 204, 183, 121, 46, 101, 3, 76, 235,\n\t\t225, 114, 123, 35, 180, 55, 223, 64, 186, 93, 38, 149, 225,\n\t\t236, 181, 91, 88, 67, 104, 81, 77, 11, 81, 113, 18, 246, 70,\n\t\t202, 157, 174, 118, 168, 194, 68, 11, 0, 36, 40, 98, 162,\n\t\t176, 30, 217, 138, 48, 71, 132, 43, 7, 143, 228, 176, 235,\n\t\t237, 112, 189, 99, 122, 8, 145, 231, 20, 117, 53, 100, 95,\n\t\t99, 137, 83, 245, 177, 246, 166, 230, 37, 232, 57, 169, 248,\n\t\t84, 185, 46, 122, 106, 40, 34, 10, 104, 42, 123, 109, 186,\n\t\t60, 210, 166, 203, 97, 30, 106, 247, 247, 169, 211, 173, 156,\n\t\t185, 174, 234, 180, 109, 193, 99, 243, 29, 26, 214, 41, 5,\n\t\t128, 109, 12, 181, 203, 165, 112, 118, 28, 130, 24, 143, 225,\n\t\t91, 223, 75, 242, 26, 156, 214, 223, 244, 26, 167, 99, 59,\n\t\t124, 219, 75, 43, 99, 41, 130, 213, 123, 57, 182, 51, 178,\n\t\t234, 6, 238, 203, 254, 102, 44, 237, 230, 230, 227, 137, 249,\n\t\t252, 52, 223, 28, 148, 231, 91, 0, 181, 189, 209, 56, 177,\n\t\t42, 238, 208, 127, 81, 247, 155, 166, 182, 160, 187, 83, 106,\n\t\t141, 27, 156, 36, 12, 189, 12, 161, 161, 9, 59, 22, 162, 200,\n\t\t138, 198, 90, 239, 53, 44, 104, 178, 63, 56, 127, 83, 184,\n\t\t208, 77, 48, 37, 155, 232, 147, 65, 241, 55, 43, 52, 206,\n\t\t192, 221, 52, 72, 104, 180, 1, 10, 210, 226, 74, 210, 3, 114,\n\t\t215, 125, 173, 41, 193, 134, 161, 192, 136, 157, 147, 250,\n\t\t2, 184, 76, 126, 129, 210, 26, 56, 14, 37, 118, 49, 165, 119,\n\t\t50, 37, 120, 25, 90, 241, 100, 106, 178, 20, 89, 122, 140,\n\t\t101, 85, 175, 89, 77, 92, 217, 36, 69, 141, 86, 173, 90, 149,\n\t\t236, 162, 232, 188, 149, 251, 170, 190, 227, 177, 136, 205,\n\t\t18, 175, 13, 101, 220, 180, 248, 197, 244, 254, 105, 24, 2,\n\t\t71, 179, 12, 206, 234, 187, 125, 43, 238, 226, 116, 27, 104,\n\t\t114, 208, 52, 237, 225, 250, 120, 255, 132, 61, 187, 104,\n\t\t30, 141, 55, 222, 121, 148, 211, 253, 235, 243, 111, 79, 95,\n\t\t110, 53, 147, 27, 36, 179, 93, 232, 70, 9, 190, 32, 107, 100,\n\t\t32, 69, 94, 161, 194, 173, 216, 98, 162, 84, 40, 57, 188,\n\t\t70, 243, 152, 198, 241, 42, 150, 89, 211, 109, 9, 134, 133,\n\t\t239, 243, 67, 236, 179, 60, 136, 188, 239, 163, 246, 73, 97,\n\t\t107, 225, 183, 15, 15, 29, 71, 67, 96, 163, 237, 112, 119,\n\t\t192, 240, 56, 53, 95, 94, 62, 20, 233, 219, 60, 3, 130, 176,\n\t\t78, 78, 148, 200, 104, 117, 139, 71, 151, 7, 54, 102, 89,\n\t\t189, 144, 116, 181, 81, 59, 141, 115, 86, 237, 109, 35, 222,\n\t\t135, 151, 19, 234, 91, 215, 121, 109, 10, 82, 94, 113, 179,\n\t\t237, 47, 89, 111, 40, 137, 128, 4, 180, 114, 229, 141, 189,\n\t\t118, 96, 39, 234, 211, 139, 172, 85, 85, 2, 154, 98, 108,\n\t\t30, 54, 29, 113, 40, 107, 3, 129, 176, 238, 156, 178, 108,\n\t\t78, 89, 101, 176, 119, 57, 152, 182, 55, 54, 108, 40, 140,\n\t\t58, 172, 3, 178, 157, 72, 189, 179, 246, 18, 62, 141, 234,\n\t\t217, 151, 231, 161, 148, 114, 24, 64, 178, 166, 20, 141, 70,\n\t\t94, 223, 216, 181, 149, 86, 220, 69, 5, 90, 219, 26, 56, 250,\n\t\t208, 89, 39, 130, 189, 112, 135, 165, 146, 71, 217, 43, 86,\n\t\t224, 118, 129, 217, 180, 35, 70, 86, 223, 26, 186, 178, 232,\n\t\t72, 69, 49, 180, 85, 53, 145, 201, 140, 223, 66, 159, 6, 224,\n\t\t171, 233, 50, 64, 20, 37, 58, 22, 131, 9, 221, 122, 105, 116,\n\t\t146, 219, 136, 19, 181, 90, 6, 234, 187, 164, 56, 252, 206,\n\t\t34, 91, 2, 205, 117, 15, 108, 185, 87, 99, 93, 54, 31, 251,\n\t\t245, 141, 227, 232, 165, 195, 169, 25, 216, 253, 240, 66,\n\t\t143, 71, 237, 73, 249, 154, 105, 95, 250, 49, 163, 186, 159,\n\t\t76, 25, 29, 140, 217, 99, 90, 90, 101, 237, 90, 154, 7, 95,\n\t\t246, 58, 187, 21, 194, 61, 141, 50, 165, 95, 239, 138, 157,\n\t\t47, 207, 255, 250, 120, 250, 250, 252, 229, 22, 37, 36, 255,\n\t\t186, 113, 255, 100, 47, 58, 144, 172, 224, 204, 217, 124,\n\t\t13, 10, 227, 211, 125, 139, 4, 170, 247, 230, 83, 132, 239,\n\t\t242, 234, 143, 163, 76, 144, 86, 203, 57, 23, 36, 20, 29,\n\t\t57, 250, 88, 107, 159, 197, 4, 46, 82, 231, 152, 212, 200,\n\t\t115, 178, 183, 196, 148, 182, 27, 92, 125, 13, 253, 229, 67,\n\t\t14, 10, 30, 131, 19, 135, 226, 123, 65, 86, 10, 249, 0, 191,\n\t\t8, 100, 184, 253, 231, 132, 191, 46, 126, 147, 187, 227, 134,\n\t\t93, 227, 30, 94, 217, 255, 32, 79, 191, 28, 62, 196, 18, 125,\n\t\t34, 154, 90, 245, 185, 229, 62, 171, 239, 181, 103, 89, 53,\n\t\t141, 101, 31, 7, 147, 65, 107, 83, 109, 190, 196, 92, 113,\n\t\t234, 92, 3, 211, 212, 2, 192, 13, 102, 142, 218, 7, 148, 61,\n\t\t85, 234, 154, 130, 145, 35, 136, 241, 107, 203, 235, 117,\n\t\t77, 62, 181, 44, 218, 84, 78, 158, 101, 195, 117, 17, 214,\n\t\t69, 247, 172, 246, 115, 246, 73, 134, 27, 215, 71, 7, 218,\n\t\t252, 250, 40, 53, 255, 236, 88, 180, 212, 112, 145, 6, 120,\n\t\t233, 139, 192, 249, 12, 139, 98, 82, 210, 225, 94, 212, 174,\n\t\t216, 92, 37, 210, 145, 179, 207, 185, 148, 37, 37, 175, 9,\n\t\t111, 141, 125, 143, 53, 207, 209, 215, 136, 147, 247, 234,\n\t\t3, 90, 32, 133, 89, 96, 188, 175, 92, 138, 236, 185, 171,\n\t\t113, 47, 55, 142, 178, 126, 75, 236, 51, 53, 207, 133, 234,\n\t\t180, 83, 87, 196, 172, 104, 220, 225, 227, 200, 178, 135,\n\t\t50, 41, 242, 66, 204, 240, 78, 221, 223, 66, 111, 112, 163,\n\t\t203, 157, 189, 51, 119, 94, 131, 78, 183, 136, 211, 188, 134,\n\t\t155, 70, 205, 9, 225, 55, 240, 128, 88, 38, 41, 182, 124,\n\t\t42, 65, 212, 120, 219, 20, 12, 239, 14, 203, 81, 177, 236,\n\t\t78, 235, 245, 5, 39, 125, 108, 70, 74, 111, 136, 205, 138,\n\t\t179, 183, 62, 23, 249, 52, 88, 138, 86, 100, 61, 42, 225,\n\t\t44, 175, 114, 202, 158, 222, 4, 35, 210, 138, 227, 199, 209,\n\t\t32, 75, 197, 76, 233, 229, 240, 33, 215, 2, 96, 139, 54, 160,\n\t\t113, 228, 175, 71, 89, 154, 243, 211, 242, 252, 233, 215,\n\t\t167, 215, 113, 235, 234, 77, 132, 217, 78, 103, 22, 141, 15,\n\t\t201, 175, 156, 30, 146, 2, 188, 94, 237, 212, 52, 62, 253,\n\t\t14, 42, 238, 3, 80, 220, 204, 8, 104, 254, 241, 82, 238, 77,\n\t\t151, 242, 144, 16, 241, 229, 131, 2, 27, 28, 165, 47, 30,\n\t\t192, 248, 150, 187, 147, 79, 52, 190, 183, 134, 95, 95, 125,\n\t\t171, 153, 47, 31, 34, 139, 124, 44, 187, 103, 174, 190, 142,\n\t\t196, 152, 18, 206, 23, 229, 188, 246, 76, 210, 76, 166, 253,\n\t\t144, 94, 55, 251, 236, 74, 144, 194, 30, 63, 119, 9, 252,\n\t\t125, 57, 53, 160, 102, 150, 32, 133, 61, 120, 232, 122, 16,\n\t\t47, 154, 127, 46, 225, 88, 238, 62, 240, 64, 71, 95, 87, 193,\n\t\t111, 31, 95, 33, 226, 175, 55, 145, 112, 255, 44, 131, 191,\n\t\t241, 50, 160, 50, 149, 116, 127, 50, 60, 152, 255, 212, 210,\n\t\t59, 22, 192, 195, 137, 77, 237, 65, 242, 196, 152, 117, 175,\n\t\t194, 46, 214, 155, 216, 180, 127, 102, 221, 223, 119, 214,\n\t\t113, 233, 62, 78, 234, 242, 85, 122, 34, 213, 228, 231, 43,\n\t\t190, 215, 87, 233, 94, 247, 44, 177, 242, 239, 97, 79, 19,\n\t\t123, 69, 164, 114, 197, 163, 98, 159, 153, 214, 16, 149, 245,\n\t\t142, 221, 216, 81, 148, 108, 37, 225, 99, 87, 37, 141, 58,\n\t\t236, 201, 92, 236, 129, 219, 63, 46, 9, 89, 71, 155, 199,\n\t\t183, 23, 119, 125, 231, 162, 176, 97, 18, 95, 213, 7, 101,\n\t\t29, 150, 155, 122, 220, 124, 253, 134, 83, 6, 13, 184, 106,\n\t\t247, 114, 221, 51, 243, 91, 140, 187, 151, 197, 92, 13, 197,\n\t\t124, 61, 16, 215, 149, 144, 1, 124, 223, 42, 159, 143, 207,\n\t\t183, 199, 83, 245, 38, 78, 240, 237, 85, 126, 39, 179, 120,\n\t\t93, 229, 111, 229, 32, 217, 42, 253, 222, 164, 225, 203, 181,\n\t\t254, 3, 165, 60, 76, 6, 91, 87, 252, 219, 249, 201, 87, 43,\n\t\t254, 110, 202, 244, 182, 226, 223, 78, 242, 90, 215, 253,\n\t\t219, 73, 94, 229, 94, 206, 245, 203, 135, 152, 178, 103, 197,\n\t\t36, 243, 33, 71, 44, 38, 42, 173, 99, 22, 117, 236, 38, 201,\n\t\t23, 228, 21, 201, 44, 204, 234, 132, 240, 92, 82, 145, 27,\n\t\t136, 9, 65, 190, 93, 233, 176, 154, 10, 76, 175, 69, 145,\n\t\t79, 98, 85, 123, 145, 90, 2, 180, 44, 80, 246, 82, 241, 49,\n\t\t83, 121, 171, 220, 172, 229, 22, 49, 149, 165, 220, 26, 180,\n\t\t220, 22, 115, 79, 186, 214, 1, 156, 130, 122, 246, 174, 66,\n\t\t34, 219, 98, 208, 252, 167, 237, 125, 171, 168, 91, 11, 88,\n\t\t235, 186, 52, 54, 119, 65, 139, 94, 250, 230, 48, 239, 223,\n\t\t71, 137, 163, 62, 110, 52, 116, 212, 199, 109, 13, 37, 177,\n\t\t159, 179, 216, 73, 228, 197, 204, 30, 239, 238, 26, 135, 186,\n\t\t140, 170, 108, 53, 177, 138, 220, 7, 51, 249, 244, 235, 31,\n\t\t167, 175, 95, 110, 176, 125, 234, 22, 151, 89, 179, 39, 202,\n\t\t19, 183, 228, 153, 250, 76, 217, 247, 44, 38, 111, 240, 148,\n\t\t41, 33, 82, 4, 249, 166, 228, 35, 188, 34, 235, 13, 14, 158,\n\t\t145, 226, 87, 201, 247, 74, 143, 2, 72, 143, 46, 149, 27,\n\t\t4, 190, 171, 104, 130, 45, 65, 244, 213, 83, 121, 162, 135,\n\t\t241, 189, 189, 248, 24, 250, 66, 177, 163, 85, 173, 249, 204,\n\t\t53, 30, 238, 55, 11, 201, 84, 215, 205, 42, 13, 40, 139, 247,\n\t\t129, 126, 158, 126, 119, 191, 223, 194, 150, 214, 91, 168,\n\t\t152, 141, 42, 66, 214, 77, 36, 31, 202, 76, 193, 114, 163,\n\t\t8, 57, 4, 12, 199, 64, 70, 174, 150, 252, 155, 171, 26, 219,\n\t\t250, 247, 137, 201, 23, 132, 111, 3, 85, 54, 195, 124, 214,\n\t\t159, 206, 142, 114, 241, 165, 117, 224, 56, 43, 208, 76, 140,\n\t\t136, 82, 192, 236, 70, 176, 43, 17, 194, 96, 40, 107, 198,\n\t\t222, 238, 78, 183, 53, 162, 111, 83, 207, 147, 189, 124, 182,\n\t\t98, 149, 127, 34, 165, 6, 254, 137, 24, 226, 180, 81, 80,\n\t\t164, 130, 72, 134, 180, 177, 80, 224, 206, 21, 51, 227, 202,\n\t\t68, 177, 253, 104, 100, 20, 235, 251, 180, 103, 174, 139,\n\t\t21, 222, 127, 14, 64, 194, 52, 153, 223, 91, 83, 161, 115,\n\t\t114, 187, 75, 221, 5, 102, 151, 131, 175, 212, 17, 236, 1,\n\t\t110, 73, 242, 42, 68, 229, 162, 175, 40, 7, 97, 87, 214, 166,\n\t\t174, 158, 174, 191, 48, 7, 68, 74, 77, 49, 248, 60, 149, 166,\n\t\t255, 255, 112, 38, 156, 62, 254, 235, 211, 173, 46, 187, 134,\n\t\t154, 229, 80, 125, 164, 41, 150, 232, 35, 205, 197, 107, 60,\n\t\t20, 3, 146, 90, 101, 96, 44, 29, 170, 44, 179, 47, 12, 192,\n\t\t166, 104, 41, 171, 246, 135, 108, 133, 33, 244, 90, 145, 251,\n\t\t77, 73, 1, 134, 93, 247, 177, 74, 203, 198, 139, 235, 157,\n\t\t163, 139, 77, 26, 102, 203, 110, 183, 232, 242, 26, 192, 179,\n\t\t174, 56, 187, 191, 173, 182, 210, 52, 74, 230, 251, 177, 129,\n\t\t169, 28, 142, 148, 163, 212, 160, 97, 87, 193, 212, 41, 86,\n\t\t201, 104, 213, 190, 174, 181, 162, 153, 201, 150, 72, 98,\n\t\t35, 111, 56, 161, 63, 6, 156, 252, 242, 33, 229, 50, 49, 91,\n\t\t70, 255, 78, 130, 228, 85, 126, 180, 176, 138, 177, 241, 211,\n\t\t101, 110, 0, 186, 243, 32, 31, 26, 205, 113, 163, 61, 241,\n\t\t122, 20, 172, 57, 219, 48, 238, 70, 113, 29, 118, 252, 23,\n\t\t97, 93, 74, 194, 100, 67, 191, 127, 133, 67, 156, 199, 184,\n\t\t43, 109, 160, 140, 122, 191, 234, 189, 49, 228, 218, 223,\n\t\t231, 168, 61, 7, 15, 219, 195, 169, 123, 51, 105, 111, 64,\n\t\t1, 182, 40, 181, 48, 197, 24, 124, 76, 115, 64, 56, 217, 64,\n\t\t208, 233, 89, 170, 16, 168, 32, 210, 138, 75, 3, 21, 19, 113,\n\t\t32, 196, 19, 17, 68, 114, 3, 37, 105, 207, 129, 207, 46, 202,\n\t\t158, 78, 177, 121, 80, 70, 49, 6, 14, 116, 111, 153, 2, 144,\n\t\t115, 45, 180, 136, 124, 79, 33, 77, 209, 103, 139, 254, 177,\n\t\t27, 148, 124, 203, 61, 157, 163, 232, 3, 172, 39, 235, 145,\n\t\t207, 82, 172, 252, 9, 94, 136, 216, 210, 203, 135, 156, 147,\n\t\t124, 35, 201, 11, 105, 30, 31, 176, 242, 71, 105, 110, 148,\n\t\t191, 222, 24, 229, 59, 253, 0, 84, 51, 105, 103, 9, 152, 169,\n\t\t129, 98, 169, 136, 165, 224, 26, 148, 47, 12, 141, 117, 218,\n\t\t90, 103, 205, 117, 163, 189, 241, 145, 69, 252, 249, 183,\n\t\t223, 158, 63, 125, 117, 79, 203, 77, 182, 107, 125, 250, 175,\n\t\t93, 16, 137, 200, 97, 228, 91, 67, 99, 43, 9, 154, 12, 212,\n\t\t251, 146, 180, 213, 6, 42, 48, 30, 90, 127, 119, 250, 0, 242,\n\t\t199, 28, 18, 173, 137, 147, 151, 214, 232, 41, 215, 236, 170,\n\t\t29, 236, 184, 60, 194, 134, 70, 180, 205, 158, 61, 205, 238,\n\t\t105, 148, 216, 185, 165, 163, 147, 57, 189, 213, 73, 190,\n\t\t177, 255, 102, 73, 6, 80, 48, 30, 217, 85, 88, 3, 5, 31, 117,\n\t\t206, 239, 79, 127, 156, 158, 221, 252, 241, 203, 124, 11,\n\t\t3, 208, 126, 249, 175, 93, 210, 127, 74, 97, 166, 88, 177,\n\t\t184, 245, 40, 100, 218, 142, 81, 228, 234, 141, 163, 149,\n\t\t139, 99, 149, 253, 145, 202, 203, 7, 78, 0, 116, 63, 19, 52,\n\t\t225, 43, 146, 145, 85, 186, 28, 93, 106, 87, 252, 33, 87,\n\t\t68, 36, 0, 79, 153, 55, 158, 146, 11, 122, 17, 136, 176, 212,\n\t\t46, 104, 66, 246, 52, 34, 134, 43, 172, 213, 56, 252, 7, 235,\n\t\t113, 31, 102, 228, 243, 239, 111, 141, 210, 175, 63, 121,\n\t\t148, 118, 221, 115, 183, 119, 128, 157, 252, 99, 221, 35,\n\t\t191, 127, 95, 255, 28, 63, 255, 254, 251, 199, 79, 255, 114,\n\t\t191, 60, 253, 235, 186, 131, 250, 13, 126, 242, 14, 135, 37,\n\t\t51, 172, 97, 196, 47, 212, 21, 213, 162, 177, 210, 158, 35,\n\t\t146, 123, 199, 72, 96, 216, 29, 227, 145, 141, 237, 96, 60,\n\t\t215, 194, 153, 43, 75, 113, 136, 7, 169, 193, 3, 138, 60,\n\t\t87, 159, 168, 247, 61, 75, 197, 44, 191, 213, 174, 94, 37,\n\t\t229, 171, 88, 31, 1, 202, 40, 176, 178, 168, 24, 202, 89,\n\t\t84, 91, 25, 165, 42, 38, 4, 132, 15, 153, 104, 154, 10, 84,\n\t\t196, 113, 211, 100, 145, 1, 198, 134, 112, 239, 208, 238,\n\t\t21, 66, 162, 211, 107, 231, 132, 175, 176, 27, 25, 122, 134,\n\t\t129, 203, 252, 249, 197, 191, 115, 196, 79, 255, 253, 124,\n\t\t35, 217, 251, 205, 41, 211, 142, 162, 189, 150, 137, 145,\n\t\t31, 241, 48, 55, 239, 232, 44, 102, 150, 96, 180, 54, 246,\n\t\t85, 38, 128, 158, 73, 71, 0, 121, 150, 4, 155, 55, 154, 166,\n\t\t53, 50, 42, 16, 7, 42, 123, 246, 184, 115, 116, 177, 36, 95,\n\t\t19, 112, 46, 90, 43, 80, 168, 101, 38, 197, 86, 193, 194,\n\t\t11, 52, 70, 188, 85, 203, 72, 204, 176, 143, 115, 156, 236,\n\t\t219, 71, 215, 30, 38, 44, 30, 238, 89, 122, 165, 250, 152,\n\t\t66, 91, 40, 20, 95, 219, 68, 169, 248, 198, 4, 139, 169, 167,\n\t\t172, 135, 138, 96, 50, 79, 161, 34, 50, 49, 229, 72, 19, 142,\n\t\t172, 137, 167, 234, 67, 174, 133, 103, 60, 22, 209, 101, 250,\n\t\t154, 61, 231, 240, 98, 91, 31, 180, 195, 110, 81, 213, 16,\n\t\t156, 139, 94, 12, 221, 83, 109, 71, 142, 217, 135, 84, 183,\n\t\t95, 244, 135, 62, 107, 169, 121, 173, 140, 136, 145, 152,\n\t\t34, 120, 226, 145, 35, 33, 133, 183, 220, 71, 173, 14, 90,\n\t\t29, 152, 160, 120, 111, 123, 142, 53, 51, 198, 106, 239, 172,\n\t\t86, 218, 248, 138, 168, 106, 105, 62, 143, 94, 185, 107, 3,\n\t\t191, 0, 181, 41, 63, 70, 196, 127, 117, 126, 191, 3, 0, 255,\n\t\t134, 43, 236, 229, 67, 226, 100, 95, 60, 252, 85, 159, 228,\n\t\t16, 254, 218, 70, 222, 15, 189, 60, 29, 191, 190, 34, 210,\n\t\t239, 29, 158, 37, 132, 61, 76, 92, 178, 111, 157, 102, 23,\n\t\t144, 73, 23, 52, 126, 45, 183, 174, 84, 73, 165, 104, 60,\n\t\t74, 15, 50, 75, 1, 226, 25, 243, 122, 231, 40, 147, 50, 244,\n\t\t92, 97, 186, 183, 92, 16, 21, 215, 142, 53, 249, 38, 118,\n\t\t70, 245, 9, 150, 189, 116, 16, 201, 102, 81, 124, 205, 177,\n\t\t107, 54, 5, 10, 2, 201, 118, 79, 139, 88, 84, 41, 2, 223,\n\t\t53, 124, 67, 93, 248, 166, 46, 165, 46, 142, 196, 70, 170,\n\t\t147, 107, 5, 133, 31, 190, 183, 64, 233, 162, 72, 77, 212,\n\t\t210, 132, 168, 11, 29, 50, 226, 58, 141, 134, 172, 93, 50,\n\t\t26, 66, 201, 23, 142, 19, 168, 91, 67, 57, 186, 222, 124,\n\t\t137, 177, 141, 74, 245, 181, 86, 111, 86, 170, 230, 118, 183,\n\t\t203, 173, 86, 7, 173, 22, 186, 215, 89, 255, 94, 214, 138,\n\t\t223, 174, 149, 12, 16, 146, 116, 222, 95, 132, 12, 16, 231,\n\t\t54, 165, 48, 175, 21, 31, 245, 182, 190, 28, 149, 30, 117,\n\t\t30, 85, 30, 147, 100, 204, 17, 68, 21, 143, 57, 242, 168,\n\t\t10, 241, 178, 10, 50, 71, 146, 40, 160, 239, 169, 3, 95, 213,\n\t\t161, 212, 197, 230, 198, 24, 132, 111, 45, 102, 76, 137, 109,\n\t\t70, 216, 132, 184, 51, 181, 173, 243, 221, 232, 125, 76, 137,\n\t\t212, 174, 170, 242, 70, 147, 100, 54, 188, 213, 175, 251,\n\t\t202, 188, 189, 204, 248, 94, 93, 198, 68, 120, 119, 17, 47,\n\t\t31, 184, 144, 111, 13, 42, 152, 142, 104, 181, 17, 93, 167,\n\t\t250, 184, 11, 89, 96, 119, 239, 155, 87, 207, 95, 230, 231,\n\t\t79, 183, 218, 201, 13, 82, 249, 38, 191, 8, 158, 135, 52,\n\t\t187, 178, 103, 64, 230, 41, 91, 186, 138, 50, 255, 18, 159,\n\t\t198, 13, 187, 198, 189, 65, 143, 181, 254, 32, 79, 159, 220,\n\t\t197, 187, 235, 127, 94, 240, 45, 68, 22, 237, 14, 40, 47,\n\t\t206, 48, 79, 187, 227, 202, 105, 99, 58, 177, 35, 223, 211,\n\t\t254, 92, 21, 20, 42, 49, 226, 188, 98, 222, 234, 254, 106,\n\t\t141, 14, 111, 85, 233, 244, 238, 166, 234, 183, 194, 238,\n\t\t144, 247, 237, 122, 157, 30, 182, 235, 229, 67, 236, 236,\n\t\t227, 148, 82, 245, 13, 105, 19, 33, 148, 9, 113, 174, 185,\n\t\t129, 184, 31, 153, 51, 155, 173, 30, 131, 5, 234, 50, 105,\n\t\t252, 39, 210, 236, 186, 38, 97, 43, 5, 97, 44, 200, 181, 154,\n\t\t92, 42, 81, 126, 3, 54, 103, 79, 133, 33, 23, 139, 146, 21,\n\t\t33, 202, 173, 170, 75, 140, 122, 141, 112, 2, 232, 233, 135,\n\t\t49, 189, 45, 46, 70, 203, 219, 89, 235, 35, 15, 97, 188, 98,\n\t\t208, 126, 230, 53, 116, 219, 50, 204, 70, 45, 98, 105, 147,\n\t\t125, 127, 78, 32, 233, 179, 67, 102, 139, 84, 30, 116, 114,\n\t\t136, 160, 147, 30, 214, 235, 187, 147, 250, 143, 79, 31, 207,\n\t\t207, 95, 78, 79, 139, 123, 154, 231, 87, 248, 156, 251, 211,\n\t\t133, 69, 26, 194, 236, 136, 146, 239, 85, 93, 176, 161, 193,\n\t\t47, 18, 82, 233, 118, 101, 136, 41, 227, 161, 139, 31, 215,\n\t\t7, 182, 34, 228, 214, 120, 198, 30, 17, 85, 197, 126, 119,\n\t\t251, 159, 70, 17, 47, 59, 227, 88, 35, 66, 55, 3, 249, 34,\n\t\t162, 243, 244, 195, 145, 162, 47, 7, 5, 173, 135, 71, 172,\n\t\t120, 233, 236, 48, 193, 111, 214, 178, 250, 184, 112, 65,\n\t\t157, 79, 235, 29, 55, 110, 217, 125, 249, 235, 226, 55, 185,\n\t\t187, 127, 221, 254, 167, 205, 138, 0, 206, 232, 190, 53, 164,\n\t\t153, 184, 168, 25, 118, 68, 141, 245, 34, 150, 211, 254, 218,\n\t\t110, 97, 169, 234, 93, 220, 60, 185, 221, 165, 62, 247, 242,\n\t\t33, 214, 232, 107, 18, 85, 141, 124, 175, 245, 48, 143, 132,\n\t\t56, 246, 65, 113, 193, 163, 239, 178, 123, 82, 208, 84, 35,\n\t\t17, 171, 189, 32, 111, 153, 83, 159, 221, 120, 174, 249, 98,\n\t\t88, 52, 242, 96, 79, 235, 139, 78, 159, 212, 23, 115, 158,\n\t\t93, 47, 62, 117, 243, 246, 214, 134, 8, 73, 78, 62, 52, 77,\n\t\t121, 68, 188, 167, 99, 14, 190, 214, 52, 193, 227, 80, 2,\n\t\t231, 132, 10, 169, 60, 175, 3, 122, 65, 108, 148, 158, 215,\n\t\t47, 184, 245, 19, 235, 179, 109, 139, 129, 239, 9, 221, 111,\n\t\t47, 227, 209, 180, 190, 123, 152, 97, 88, 203, 210, 133, 229,\n\t\t16, 167, 156, 125, 198, 246, 40, 43, 56, 245, 169, 49, 8,\n\t\t4, 112, 14, 212, 66, 41, 162, 5, 181, 204, 25, 113, 37, 129,\n\t\t188, 157, 162, 70, 6, 156, 14, 71, 111, 121, 194, 33, 202,\n\t\t156, 165, 44, 18, 129, 68, 66, 20, 196, 0, 187, 238, 57, 183,\n\t\t218, 167, 160, 212, 100, 164, 130, 161, 55, 198, 18, 165,\n\t\t210, 148, 69, 130, 82, 158, 59, 206, 47, 145, 193, 91, 112,\n\t\t242, 52, 132, 64, 240, 93, 111, 224, 201, 156, 198, 171, 115,\n\t\t131, 208, 73, 19, 51, 204, 30, 49, 223, 66, 79, 117, 146,\n\t\t125, 87, 62, 193, 172, 177, 182, 181, 249, 156, 90, 59, 28,\n\t\t59, 82, 195, 243, 156, 61, 213, 100, 248, 255, 192, 220, 138,\n\t\t8, 244, 157, 92, 46, 158, 19, 109, 111, 58, 123, 117, 150,\n\t\t58, 21, 38, 109, 80, 175, 72, 206, 5, 96, 146, 40, 69, 45,\n\t\t110, 117, 115, 163, 114, 227, 193, 241, 166, 61, 55, 222,\n\t\t27, 205, 31, 173, 199, 0, 196, 144, 167, 200, 62, 23, 24,\n\t\t229, 201, 83, 203, 121, 202, 201, 231, 222, 202, 214, 205,\n\t\t163, 151, 121, 61, 87, 80, 59, 50, 71, 128, 42, 32, 211, 73,\n\t\t38, 28, 198, 50, 32, 32, 91, 134, 242, 112, 31, 73, 117, 249,\n\t\t120, 139, 1, 214, 111, 40, 237, 119, 72, 77, 45, 120, 202,\n\t\t230, 153, 47, 72, 26, 9, 185, 20, 200, 119, 164, 77, 229,\n\t\t201, 177, 239, 192, 190, 116, 228, 169, 16, 129, 213, 142,\n\t\t50, 225, 212, 94, 239, 32, 21, 191, 137, 85, 28, 100, 59,\n\t\t201, 9, 96, 1, 128, 253, 136, 50, 73, 91, 172, 77, 90, 216,\n\t\t82, 45, 69, 145, 60, 68, 78, 133, 34, 77, 157, 147, 231, 92,\n\t\t100, 181, 26, 230, 49, 5, 31, 10, 229, 41, 35, 76, 27, 249,\n\t\t133, 80, 207, 240, 133, 133, 184, 248, 160, 39, 184, 213,\n\t\t151, 80, 103, 169, 232, 168, 159, 214, 157, 52, 161, 210,\n\t\t106, 222, 251, 118, 67, 42, 206, 17, 224, 77, 168, 178, 134,\n\t\t37, 248, 202, 73, 99, 175, 148, 213, 68, 42, 218, 70, 205,\n\t\t91, 171, 47, 31, 40, 177, 111, 33, 78, 20, 163, 47, 133, 23,\n\t\t233, 46, 194, 138, 204, 209, 231, 88, 231, 226, 75, 39, 36,\n\t\t1, 25, 246, 129, 116, 77, 74, 89, 19, 193, 67, 210, 213, 156,\n\t\t3, 193, 5, 83, 99, 74, 179, 62, 10, 231, 24, 18, 244, 199,\n\t\t163, 82, 91, 44, 94, 60, 40, 147, 13, 47, 34, 61, 27, 103,\n\t\t15, 173, 121, 110, 89, 193, 235, 35, 56, 226, 210, 26, 95,\n\t\t4, 0, 111, 219, 252, 113, 154, 123, 26, 151, 184, 154, 82,\n\t\t58, 156, 82, 178, 245, 171, 119, 93, 74, 39, 183, 127, 201,\n\t\t254, 39, 242, 28, 185, 121, 72, 132, 107, 149, 231, 230, 9,\n\t\t121, 112, 240, 137, 212, 36, 251, 55, 184, 100, 100, 78, 3,\n\t\t200, 69, 116, 138, 2, 180, 133, 24, 125, 13, 160, 158, 137,\n\t\t227, 44, 47, 214, 20, 20, 223, 43, 151, 136, 195, 106, 149,\n\t\t7, 246, 236, 20, 1, 166, 37, 218, 115, 16, 237, 135, 24, 168,\n\t\t53, 34, 186, 74, 137, 161, 137, 6, 36, 83, 84, 222, 96, 141,\n\t\t171, 152, 200, 103, 66, 82, 98, 244, 20, 147, 172, 103, 189,\n\t\t1, 108, 8, 14, 45, 96, 147, 199, 96, 84, 77, 203, 144, 150,\n\t\t33, 102, 31, 155, 124, 0, 218, 68, 164, 41, 248, 216, 20,\n\t\t120, 66, 180, 110, 110, 114, 167, 21, 153, 42, 235, 60, 17,\n\t\t69, 12, 121, 132, 46, 118, 223, 8, 231, 149, 161, 122, 234,\n\t\t101, 113, 37, 143, 237, 163, 145, 135, 87, 86, 230, 40, 169,\n\t\t63, 89, 113, 11, 0, 140, 19, 42, 163, 179, 168, 138, 200,\n\t\t76, 164, 32, 9, 210, 249, 20, 91, 157, 245, 225, 32, 29, 27,\n\t\t236, 20, 44, 43, 211, 205, 200, 27, 26, 143, 78, 120, 183,\n\t\t183, 37, 39, 31, 42, 226, 239, 155, 47, 61, 30, 206, 164,\n\t\t98, 115, 129, 155, 155, 193, 242, 19, 207, 98, 180, 215, 146,\n\t\t135, 135, 209, 244, 217, 224, 83, 135, 59, 36, 2, 82, 2, 144,\n\t\t183, 177, 144, 17, 9, 21, 82, 128, 30, 120, 210, 130, 231,\n\t\t12, 68, 24, 103, 25, 16, 64, 41, 108, 234, 170, 215, 27, 50,\n\t\t174, 177, 208, 185, 103, 228, 61, 46, 69, 86, 99, 86, 177,\n\t\t61, 39, 147, 241, 69, 33, 135, 161, 240, 213, 62, 117, 207,\n\t\t26, 245, 210, 124, 79, 41, 226, 186, 115, 57, 7, 31, 184,\n\t\t196, 82, 249, 24, 25, 41, 169, 50, 168, 249, 48, 87, 31, 90,\n\t\t233, 168, 79, 48, 12, 15, 53, 91, 35, 54, 28, 194, 110, 69,\n\t\t13, 243, 4, 121, 169, 196, 247, 35, 59, 158, 254, 248, 245,\n\t\t227, 103, 247, 235, 243, 105, 254, 242, 241, 247, 175, 31,\n\t\t63, 223, 196, 120, 244, 231, 161, 62, 82, 97, 25, 228, 137,\n\t\t67, 247, 220, 105, 25, 208, 22, 200, 76, 203, 57, 30, 1, 180,\n\t\t17, 74, 90, 186, 141, 61, 126, 224, 56, 19, 120, 141, 210,\n\t\t148, 124, 2, 223, 145, 47, 16, 158, 29, 105, 211, 73, 196,\n\t\t34, 56, 147, 40, 123, 78, 153, 228, 113, 132, 110, 100, 75,\n\t\t162, 101, 159, 123, 170, 234, 223, 108, 140, 120, 144, 86,\n\t\t9, 202, 88, 6, 73, 207, 203, 135, 200, 176, 9, 160, 24, 69,\n\t\t77, 79, 106, 73, 204, 230, 84, 108, 143, 164, 130, 9, 176,\n\t\t221, 72, 221, 135, 32, 186, 68, 80, 192, 39, 68, 27, 12, 106,\n\t\t38, 48, 156, 214, 172, 200, 172, 235, 243, 114, 231, 40, 22,\n\t\t170, 172, 139, 115, 111, 190, 182, 16, 143, 118, 173, 220,\n\t\t135, 49, 150, 119, 162, 157, 3, 171, 249, 17, 238, 248, 221,\n\t\t144, 63, 42, 119, 3, 237, 94, 62, 112, 18, 19, 191, 67, 81,\n\t\t110, 133, 22, 151, 43, 188, 19, 19, 248, 60, 28, 33, 102,\n\t\t8, 195, 2, 16, 80, 17, 195, 152, 64, 77, 150, 152, 230, 105,\n\t\t249, 8, 135, 142, 222, 56, 226, 20, 166, 107, 130, 115, 77,\n\t\t89, 249, 91, 187, 183, 136, 177, 56, 232, 160, 198, 107, 206,\n\t\t222, 219, 62, 172, 60, 32, 12, 234, 156, 40, 18, 16, 42, 101,\n\t\t220, 41, 107, 133, 128, 21, 26, 1, 63, 106, 55, 142, 32, 226,\n\t\t194, 70, 217, 81, 211, 128, 248, 38, 192, 81, 67, 49, 196,\n\t\t43, 57, 102, 158, 154, 102, 42, 47, 205, 231, 154, 24, 57,\n\t\t73, 61, 228, 120, 204, 82, 100, 229, 195, 210, 134, 32, 148,\n\t\t95, 106, 41, 179, 76, 24, 212, 58, 249, 10, 77, 167, 128,\n\t\t96, 172, 67, 29, 53, 118, 30, 5, 253, 25, 55, 206, 1, 21,\n\t\t170, 212, 103, 195, 5, 15, 208, 135, 68, 117, 109, 128, 46,\n\t\t229, 181, 9, 214, 130, 151, 15, 41, 74, 141, 197, 76, 240,\n\t\t177, 137, 28, 202, 77, 84, 248, 108, 218, 91, 235, 147, 200,\n\t\t13, 8, 202, 222, 124, 47, 227, 242, 8, 60, 247, 82, 248, 29,\n\t\t244, 41, 165, 205, 119, 89, 78, 14, 199, 81, 150, 200, 166,\n\t\t36, 123, 131, 126, 75, 172, 176, 200, 197, 174, 122, 241,\n\t\t177, 229, 251, 1, 119, 191, 31, 63, 127, 122, 118, 231, 207,\n\t\t203, 31, 191, 221, 156, 129, 62, 221, 28, 241, 109, 234, 86,\n\t\t175, 62, 2, 12, 166, 97, 163, 156, 1, 177, 221, 224, 218,\n\t\t209, 127, 21, 115, 187, 145, 216, 81, 72, 164, 147, 53, 220,\n\t\t125, 143, 113, 206, 80, 135, 211, 52, 254, 197, 194, 171,\n\t\t113, 42, 112, 79, 193, 236, 230, 194, 117, 98, 159, 152, 90,\n\t\t91, 74, 178, 163, 192, 20, 96, 29, 204, 105, 248, 63, 197,\n\t\t148, 169, 68, 235, 104, 201, 46, 77, 37, 237, 110, 72, 217,\n\t\t85, 41, 41, 200, 55, 174, 148, 149, 121, 78, 129, 105, 211,\n\t\t32, 140, 162, 1, 12, 46, 93, 198, 13, 16, 22, 122, 228, 226,\n\t\t26, 33, 184, 12, 59, 113, 108, 178, 55, 187, 172, 27, 188,\n\t\t124, 46, 71, 101, 98, 10, 190, 5, 168, 223, 25, 58, 222, 184,\n\t\t49, 3, 111, 0, 91, 3, 106, 128, 93, 97, 10, 62, 196, 22, 26,\n\t\t0, 104, 188, 72, 64, 248, 64, 90, 18, 67, 116, 113, 57, 195,\n\t\t211, 57, 101, 159, 27, 130, 187, 17, 102, 39, 134, 77, 110,\n\t\t158, 139, 72, 84, 14, 190, 16, 48, 146, 152, 125, 82, 15,\n\t\t0, 213, 46, 58, 3, 168, 247, 40, 100, 188, 78, 33, 207, 82,\n\t\t1, 209, 236, 131, 216, 239, 77, 212, 80, 207, 177, 198, 237,\n\t\t139, 211, 77, 29, 14, 179, 232, 179, 177, 69, 117, 240, 101,\n\t\t217, 151, 93, 178, 80, 37, 180, 176, 91, 11, 99, 93, 208,\n\t\t81, 117, 116, 20, 203, 7, 139, 142, 10, 240, 103, 10, 203,\n\t\t7, 172, 119, 147, 207, 48, 108, 174, 187, 123, 14, 186, 75,\n\t\t52, 0, 42, 12, 117, 74, 54, 215, 38, 195, 116, 61, 154, 139,\n\t\t187, 153, 18, 50, 56, 1, 71, 99, 228, 147, 212, 93, 203, 134,\n\t\t244, 99, 235, 172, 238, 41, 244, 216, 198, 13, 245, 28, 33,\n\t\t30, 40, 104, 44, 87, 158, 88, 213, 3, 24, 149, 192, 171, 18,\n\t\t27, 39, 17, 100, 112, 133, 167, 51, 102, 150, 217, 58, 139,\n\t\t40, 142, 154, 143, 12, 191, 200, 184, 78, 6, 24, 37, 11, 56,\n\t\t67, 113, 192, 103, 178, 166, 148, 43, 186, 25, 60, 215, 65,\n\t\t149, 201, 174, 51, 153, 196, 16, 54, 110, 15, 25, 182, 69,\n\t\t38, 89, 205, 98, 70, 249, 202, 162, 241, 72, 41, 4, 84, 68,\n\t\t81, 114, 130, 101, 24, 139, 8, 236, 131, 89, 142, 49, 61,\n\t\t176, 160, 100, 223, 62, 204, 44, 6, 70, 139, 216, 104, 197,\n\t\t188, 142, 54, 210, 20, 144, 86, 187, 93, 195, 201, 83, 231,\n\t\t48, 37, 145, 106, 32, 109, 16, 243, 128, 20, 255, 89, 140,\n\t\t88, 119, 241, 172, 246, 56, 208, 32, 146, 12, 18, 54, 113,\n\t\t120, 32, 112, 94, 40, 175, 78, 87, 181, 89, 174, 27, 36, 74,\n\t\t134, 12, 71, 182, 99, 95, 74, 0, 72, 4, 0, 24, 169, 46, 117,\n\t\t209, 37, 47, 31, 98, 108, 98, 32, 79, 41, 73, 101, 210, 97,\n\t\t46, 193, 34, 10, 43, 41, 238, 85, 9, 10, 11, 2, 236, 193,\n\t\t214, 12, 76, 169, 194, 58, 115, 73, 151, 34, 36, 174, 74,\n\t\t2, 98, 141, 15, 117, 217, 219, 209, 10, 1, 185, 2, 56, 55,\n\t\t61, 106, 4, 118, 22, 21, 175, 97, 65, 225, 148, 86, 102, 113,\n\t\t9, 57, 75, 95, 169, 250, 146, 176, 3, 192, 75, 147, 113, 128,\n\t\t43, 47, 7, 24, 112, 197, 139, 197, 56, 39, 145, 133, 53, 79,\n\t\t89, 36, 70, 163, 73, 174, 83, 17, 157, 79, 108, 195, 8, 247,\n\t\t91, 246, 224, 41, 20, 181, 30, 156, 113, 201, 203, 106, 36,\n\t\t44, 8, 152, 13, 32, 233, 171, 178, 146, 47, 75, 95, 174, 107,\n\t\t152, 125, 96, 74, 40, 1, 71, 50, 81, 113, 184, 147, 143, 61,\n\t\t102, 28, 43, 95, 182, 241, 229, 3, 119, 86, 4, 240, 142, 252,\n\t\t239, 57, 22, 227, 125, 68, 44, 25, 35, 220, 152, 2, 196, 58,\n\t\t137, 85, 167, 80, 246, 185, 138, 133, 44, 53, 142, 122, 250,\n\t\t52, 16, 74, 192, 230, 0, 191, 107, 89, 1, 84, 234, 56, 240,\n\t\t243, 49, 196, 42, 74, 140, 111, 32, 218, 203, 136, 216, 56,\n\t\t104, 49, 192, 223, 241, 172, 201, 202, 162, 38, 200, 76, 95,\n\t\t231, 160, 216, 36, 160, 51, 148, 94, 11, 21, 106, 147, 104,\n\t\t11, 81, 134, 36, 101, 232, 88, 81, 93, 13, 185, 106, 240,\n\t\t38, 85, 79, 49, 207, 152, 190, 176, 55, 54, 45, 71, 113, 230,\n\t\t72, 197, 223, 116, 85, 246, 114, 89, 189, 57, 27, 218, 81,\n\t\t50, 170, 124, 177, 40, 74, 150, 235, 136, 48, 216, 235, 246,\n\t\t221, 247, 110, 124, 121, 250, 184, 220, 6, 29, 61, 221, 33,\n\t\t198, 70, 128, 139, 6, 6, 15, 252, 58, 55, 0, 236, 118, 129,\n\t\t114, 39, 11, 102, 91, 239, 151, 116, 186, 198, 185, 59, 89,\n\t\t72, 203, 184, 137, 152, 22, 252, 2, 194, 148, 202, 125, 203,\n\t\t161, 150, 133, 178, 207, 161, 198, 245, 46, 135, 250, 100,\n\t\t57, 211, 235, 125, 203, 153, 182, 215, 240, 255, 40, 92, 180,\n\t\t220, 81, 241, 53, 12, 112, 87, 131, 211, 107, 173, 57, 188,\n\t\t167, 57, 70, 38, 204, 63, 173, 246, 82, 252, 207, 235, 27,\n\t\t41, 61, 81, 57, 124, 123, 239, 188, 175, 115, 0, 228, 245,\n\t\t243, 58, 71, 138, 255, 158, 206, 57, 188, 191, 248, 239, 154,\n\t\t58, 239, 235, 156, 18, 126, 106, 231, 72, 241, 0, 119, 248,\n\t\t121, 197, 227, 68, 228, 167, 20, 127, 215, 221, 112, 58, 125,\n\t\t60, 125, 253, 120, 126, 118, 203, 199, 211, 215, 231, 79,\n\t\t31, 63, 253, 203, 157, 254, 231, 244, 245, 249, 183, 155,\n\t\t115, 171, 39, 222, 99, 215, 146, 154, 212, 148, 213, 215,\n\t\t162, 59, 48, 92, 53, 109, 252, 79, 134, 115, 218, 223, 231,\n\t\t166, 52, 176, 23, 140, 92, 74, 200, 213, 194, 169, 169, 68,\n\t\t28, 55, 71, 72, 252, 55, 127, 0, 152, 25, 201, 162, 111, 74,\n\t\t41, 175, 5, 229, 32, 57, 106, 196, 45, 113, 10, 83, 44, 105,\n\t\t238, 85, 53, 192, 48, 81, 85, 190, 95, 120, 226, 112, 65,\n\t\t85, 115, 228, 122, 246, 29, 142, 216, 74, 62, 133, 108, 241,\n\t\t90, 21, 33, 159, 24, 178, 228, 153, 113, 186, 65, 12, 76,\n\t\t47, 151, 187, 79, 73, 222, 72, 205, 103, 86, 79, 126, 197,\n\t\t233, 140, 35, 5, 123, 199, 213, 188, 182, 20, 216, 98, 87,\n\t\t205, 58, 141, 75, 92, 73, 59, 101, 9, 232, 84, 201, 12, 103,\n\t\t191, 12, 121, 230, 41, 243, 178, 139, 143, 15, 170, 146, 205,\n\t\t65, 41, 61, 104, 170, 202, 231, 55, 85, 242, 189, 87, 154,\n\t\t74, 19, 19, 108, 189, 164, 20, 69, 7, 5, 84, 84, 241, 56,\n\t\t70, 201, 17, 250, 48, 49, 172, 220, 32, 127, 156, 240, 199,\n\t\t248, 197, 141, 159, 190, 111, 184, 70, 175, 239, 187, 219,\n\t\t254, 167, 1, 158, 196, 237, 39, 45, 140, 15, 145, 167, 240,\n\t\t211, 22, 117, 22, 51, 191, 85, 64, 162, 223, 244, 76, 93,\n\t\t123, 70, 145, 205, 223, 156, 204, 98, 171, 116, 37, 110, 30,\n\t\t249, 119, 12, 175, 156, 178, 35, 35, 135, 140, 166, 232, 99,\n\t\t137, 220, 22, 119, 49, 246, 162, 124, 193, 173, 148, 74, 105,\n\t\t83, 23, 131, 10, 164, 69, 193, 83, 21, 69, 169, 2, 12, 74,\n\t\t195, 252, 66, 173, 19, 7, 146, 49, 152, 17, 45, 18, 65, 63,\n\t\t29, 52, 171, 75, 172, 211, 68, 192, 79, 238, 224, 59, 175,\n\t\t122, 29, 245, 128, 98, 30, 15, 226, 69, 4, 189, 42, 188, 50,\n\t\t235, 39, 237, 49, 196, 65, 38, 145, 210, 161, 121, 146, 53,\n\t\t17, 11, 108, 80, 106, 236, 97, 163, 83, 236, 62, 80, 158,\n\t\t168, 69, 15, 149, 153, 51, 28, 248, 243, 214, 84, 71, 62,\n\t\t3, 193, 79, 236, 53, 243, 147, 69, 203, 138, 216, 221, 74,\n\t\t62, 71, 226, 124, 120, 249, 64, 153, 113, 242, 221, 144, 110,\n\t\t134, 120, 1, 203, 188, 208, 63, 22, 141, 76, 94, 198, 125,\n\t\t251, 247, 190, 216, 252, 237, 249, 203, 199, 249, 233, 19,\n\t\t82, 175, 220, 242, 244, 233, 95, 127, 60, 253, 235, 217, 1,\n\t\t156, 243, 247, 47, 207, 95, 63, 126, 186, 9, 202, 123, 186,\n\t\t193, 22, 216, 65, 207, 245, 32, 10, 248, 196, 240, 194, 16,\n\t\t88, 24, 96, 87, 83, 16, 29, 61, 105, 36, 44, 236, 12, 50,\n\t\t128, 218, 146, 20, 163, 207, 248, 248, 231, 196, 112, 245,\n\t\t78, 65, 214, 178, 157, 237, 251, 84, 83, 153, 154, 40, 190,\n\t\t98, 125, 231, 160, 46, 148, 230, 115, 45, 54, 138, 6, 167,\n\t\t230, 9, 143, 186, 40, 22, 58, 89, 228, 46, 137, 68, 179, 59,\n\t\t51, 53, 133, 70, 7, 32, 177, 134, 240, 178, 24, 109, 185,\n\t\t78, 215, 207, 30, 48, 129, 42, 163, 192, 224, 27, 84, 220,\n\t\t84, 60, 108, 247, 28, 188, 158, 113, 53, 105, 98, 237, 235,\n\t\t29, 224, 154, 101, 208, 250, 139, 156, 77, 26, 152, 212, 124,\n\t\t161, 196, 229, 230, 198, 226, 192, 60, 129, 195, 143, 232,\n\t\t99, 42, 21, 39, 59, 138, 228, 152, 12, 29, 17, 167, 254, 56,\n\t\t20, 11, 176, 175, 66, 65, 195, 112, 114, 93, 129, 232, 158,\n\t\t23, 233, 217, 148, 11, 206, 176, 58, 200, 199, 147, 39, 36,\n\t\t192, 202, 151, 20, 191, 122, 179, 99, 91, 175, 121, 42, 192,\n\t\t155, 34, 180, 155, 137, 150, 220, 20, 224, 57, 70, 31, 74,\n\t\t143, 135, 37, 201, 170, 101, 154, 106, 2, 213, 210, 172, 84,\n\t\t116, 32, 183, 151, 149, 11, 248, 215, 72, 9, 17, 189, 181,\n\t\t180, 169, 118, 95, 19, 68, 74, 241, 85, 93, 18, 96, 49, 148,\n\t\t157, 163, 49, 180, 31, 156, 67, 91, 157, 145, 34, 168, 201,\n\t\t150, 190, 192, 13, 139, 45, 134, 245, 8, 63, 246, 88, 240,\n\t\t36, 232, 230, 69, 190, 148, 170, 190, 96, 244, 191, 188, 75,\n\t\t89, 209, 85, 115, 96, 245, 255, 100, 36, 127, 174, 227, 200,\n\t\t60, 202, 151, 63, 0, 212, 42, 115, 40, 68, 5, 1, 198, 145,\n\t\t134, 12, 112, 67, 78, 116, 177, 227, 160, 26, 57, 161, 201,\n\t\t173, 228, 201, 190, 59, 143, 137, 64, 56, 78, 73, 122, 95,\n\t\t67, 11, 162, 10, 179, 174, 120, 96, 242, 245, 80, 114, 154,\n\t\t201, 122, 87, 231, 80, 221, 61, 186, 53, 6, 207, 138, 221,\n\t\t47, 111, 143, 147, 75, 34, 245, 26, 233, 135, 92, 36, 203,\n\t\t139, 170, 104, 103, 52, 154, 202, 166, 190, 61, 110, 145,\n\t\t103, 4, 143, 195, 55, 84, 129, 195, 149, 155, 175, 50, 179,\n\t\t163, 39, 4, 232, 53, 61, 27, 2, 230, 57, 101, 70, 154, 128,\n\t\t84, 5, 14, 160, 210, 122, 214, 41, 33, 51, 141, 173, 167,\n\t\t136, 61, 235, 196, 207, 56, 178, 157, 221, 24, 124, 28, 115,\n\t\t105, 63, 203, 179, 216, 9, 26, 206, 240, 181, 123, 193, 49,\n\t\t129, 215, 115, 121, 249, 192, 72, 214, 108, 19, 181, 238,\n\t\t83, 235, 82, 140, 198, 185, 203, 187, 73, 223, 141, 50, 217,\n\t\t69, 82, 52, 131, 151, 230, 168, 34, 90, 110, 28, 17, 14, 149,\n\t\t19, 78, 208, 187, 186, 254, 84, 193, 74, 230, 216, 135, 75,\n\t\t205, 174, 241, 207, 65, 15, 32, 17, 144, 18, 17, 88, 183,\n\t\t209, 239, 239, 97, 197, 164, 100, 10, 81, 157, 177, 76, 62,\n\t\t113, 69, 136, 126, 11, 181, 172, 83, 101, 90, 219, 100, 55,\n\t\t164, 243, 208, 87, 56, 65, 33, 2, 207, 167, 205, 231, 203,\n\t\t170, 207, 201, 39, 76, 1, 153, 214, 192, 125, 192, 60, 135,\n\t\t239, 94, 225, 148, 101, 24, 90, 199, 249, 84, 83, 56, 212,\n\t\t202, 57, 203, 150, 199, 10, 122, 231, 198, 192, 100, 223,\n\t\t128, 48, 236, 174, 222, 121, 249, 80, 98, 243, 20, 251, 196,\n\t\t44, 139, 174, 28, 102, 89, 247, 85, 145, 243, 84, 230, 140,\n\t\t117, 175, 133, 21, 228, 76, 218, 220, 196, 210, 15, 180, 184,\n\t\t60, 4, 166, 45, 254, 197, 141, 197, 239, 176, 250, 75, 220,\n\t\t205, 128, 177, 254, 221, 16, 0, 170, 60, 202, 56, 12, 17,\n\t\t224, 84, 6, 20, 68, 249, 3, 70, 223, 14, 13, 21, 191, 15,\n\t\t233, 195, 109, 61, 199, 55, 57, 160, 107, 91, 186, 65, 197,\n\t\t0, 164, 64, 202, 122, 156, 35, 98, 96, 44, 28, 147, 23, 16,\n\t\t32, 84, 202, 97, 30, 66, 0, 50, 160, 21, 21, 229, 5, 113,\n\t\t42, 152, 206, 16, 0, 21, 236, 173, 24, 67, 55, 214, 191, 174,\n\t\t78, 89, 183, 67, 2, 184, 33, 2, 220, 144, 1, 99, 189, 162,\n\t\t45, 128, 174, 119, 82, 92, 70, 204, 137, 185, 174, 178, 47,\n\t\t136, 46, 118, 67, 14, 96, 105, 35, 110, 197, 250, 122, 72,\n\t\t154, 85, 96, 88, 91, 134, 12, 24, 34, 96, 72, 0, 178, 32,\n\t\t194, 177, 254, 199, 242, 31, 171, 223, 38, 192, 97, 118, 99,\n\t\t249, 187, 177, 254, 221, 16, 0, 206, 36, 128, 27, 34, 192,\n\t\t36, 0, 206, 159, 33, 1, 134, 0, 88, 39, 218, 232, 49, 55,\n\t\t36, 0, 4, 64, 173, 171, 240, 151, 229, 95, 66, 214, 7, 19,\n\t\t14, 133, 139, 44, 2, 172, 147, 156, 84, 114, 148, 50, 143,\n\t\t173, 31, 33, 143, 169, 165, 105, 108, 253, 16, 67, 189, 241,\n\t\t52, 182, 126, 55, 246, 126, 183, 109, 254, 206, 118, 255,\n\t\t177, 249, 187, 177, 251, 99, 243, 71, 28, 194, 216, 254, 177,\n\t\t251, 183, 52, 141, 205, 127, 236, 253, 99, 27, 24, 59, 191,\n\t\t219, 182, 126, 8, 25, 10, 144, 58, 216, 250, 221, 197, 195,\n\t\t178, 200, 19, 20, 181, 9, 199, 191, 5, 185, 37, 96, 218, 146,\n\t\t77, 30, 134, 29, 225, 152, 9, 215, 57, 229, 165, 179, 215,\n\t\t141, 202, 118, 219, 101, 108, 235, 99, 87, 239, 122, 122,\n\t\t147, 124, 13, 9, 72, 134, 22, 11, 17, 179, 200, 134, 137,\n\t\t77, 168, 140, 169, 254, 2, 54, 162, 78, 60, 113, 202, 62,\n\t\t130, 180, 115, 19, 60, 110, 72, 158, 117, 101, 172, 98, 211,\n\t\t13, 225, 227, 134, 244, 113, 99, 251, 117, 67, 254, 184, 33,\n\t\t128, 86, 105, 178, 110, 37, 67, 2, 57, 17, 65, 176, 151, 198,\n\t\t206, 144, 205, 79, 121, 249, 74, 226, 217, 36, 186, 163, 109,\n\t\t66, 64, 162, 143, 154, 76, 215, 85, 59, 174, 18, 125, 19,\n\t\t232, 42, 191, 33, 206, 115, 181, 171, 85, 152, 239, 101, 121,\n\t\t192, 68, 70, 82, 250, 94, 150, 239, 68, 57, 36, 121, 51, 181,\n\t\t80, 68, 57, 102, 102, 143, 219, 246, 100, 55, 238, 106, 198,\n\t\t191, 62, 63, 221, 208, 154, 62, 165, 127, 60, 7, 255, 120,\n\t\t14, 254, 90, 207, 65, 14, 205, 39, 81, 80, 169, 120, 14, 162,\n\t\t83, 216, 9, 241, 248, 99, 59, 50, 102, 172, 71, 28, 132, 20,\n\t\t28, 137, 45, 174, 85, 89, 58, 113, 194, 31, 220, 162, 130,\n\t\t9, 93, 22, 176, 190, 184, 187, 51, 224, 132, 0, 247, 195,\n\t\t13, 233, 179, 248, 119, 190, 253, 238, 248, 99, 251, 190,\n\t\t161, 244, 44, 246, 209, 9, 255, 246, 136, 186, 215, 60, 41,\n\t\t1, 81, 94, 95, 88, 175, 11, 14, 253, 166, 240, 242, 129, 138,\n\t\t88, 185, 8, 10, 228, 156, 23, 124, 92, 187, 76, 101, 206,\n\t\t131, 94, 200, 91, 47, 132, 122, 88, 28, 37, 233, 68, 96, 18,\n\t\t160, 55, 181, 21, 122, 162, 163, 223, 190, 236, 4, 189, 51,\n\t\t170, 115, 213, 9, 201, 58, 33, 103, 109, 202, 190, 152, 237,\n\t\t235, 163, 15, 236, 139, 211, 248, 242, 254, 205, 125, 175,\n\t\t173, 215, 163, 235, 239, 167, 197, 238, 205, 245, 27, 49,\n\t\t85, 223, 78, 59, 233, 228, 19, 76, 202, 40, 203, 184, 70,\n\t\t89, 167, 56, 187, 35, 128, 80, 83, 43, 200, 160, 9, 106, 209,\n\t\t64, 155, 64, 140, 76, 232, 227, 250, 88, 216, 115, 143, 103,\n\t\t81, 54, 82, 75, 71, 196, 156, 182, 162, 182, 75, 96, 82, 144,\n\t\t148, 238, 19, 34, 76, 163, 200, 229, 132, 27, 196, 125, 45,\n\t\t100, 22, 229, 64, 15, 255, 51, 130, 156, 16, 139, 42, 189,\n\t\t45, 106, 17, 165, 34, 255, 234, 9, 154, 94, 31, 137, 139,\n\t\t79, 250, 213, 216, 234, 17, 225, 161, 21, 199, 147, 248, 108,\n\t\t216, 62, 91, 236, 179, 48, 255, 239, 126, 150, 53, 4, 182,\n\t\t154, 102, 73, 177, 234, 103, 213, 81, 47, 215, 71, 202, 73,\n\t\t166, 222, 238, 187, 156, 61, 101, 250, 145, 214, 210, 213,\n\t\t103, 217, 62, 155, 211, 184, 62, 202, 252, 207, 165, 44, 14,\n\t\t20, 10, 80, 182, 68, 49, 82, 82, 30, 104, 61, 221, 179, 110,\n\t\t252, 82, 100, 139, 160, 74, 192, 20, 7, 117, 103, 5, 87, 97,\n\t\t39, 166, 121, 60, 136, 23, 67, 213, 7, 59, 194, 38, 114, 35,\n\t\t26, 207, 77, 246, 222, 66, 34, 74, 69, 225, 234, 24, 224,\n\t\t89, 180, 245, 168, 104, 106, 102, 43, 38, 51, 72, 169, 25,\n\t\t165, 193, 184, 33, 154, 61, 183, 124, 118, 36, 198, 67, 44,\n\t\t38, 14, 187, 134, 107, 6, 81, 104, 163, 217, 186, 80, 162,\n\t\t101, 68, 145, 130, 31, 125, 172, 240, 95, 249, 84, 225, 208,\n\t\t105, 190, 71, 217, 251, 69, 201, 67, 162, 180, 99, 31, 104,\n\t\t24, 245, 133, 45, 40, 44, 103, 5, 199, 214, 128, 80, 187,\n\t\t115, 196, 134, 162, 219, 73, 238, 220, 46, 109, 62, 89, 194,\n\t\t69, 207, 174, 53, 176, 246, 106, 196, 69, 246, 200, 90, 140,\n\t\t48, 89, 43, 37, 68, 7, 131, 33, 67, 44, 26, 18, 235, 4, 9,\n\t\t253, 128, 0, 100, 0, 65, 101, 212, 12, 113, 95, 93, 86, 118,\n\t\t134, 95, 52, 118, 95, 179, 88, 38, 224, 166, 16, 211, 161,\n\t\t69, 240, 192, 201, 143, 98, 54, 112, 141, 83, 10, 70, 247,\n\t\t159, 125, 104, 181, 245, 195, 34, 250, 181, 90, 213, 197,\n\t\t64, 69, 8, 169, 139, 106, 237, 106, 152, 143, 236, 49, 161,\n\t\t43, 232, 120, 224, 36, 6, 17, 105, 144, 113, 46, 216, 92,\n\t\t22, 26, 248, 218, 13, 10, 110, 58, 74, 43, 18, 199, 246, 242,\n\t\t33, 165, 234, 123, 19, 29, 148, 124, 163, 10, 24, 154, 205,\n\t\t34, 142, 122, 8, 29, 124, 160, 170, 238, 182, 224, 27, 34,\n\t\t79, 118, 183, 204, 155, 59, 43, 31, 149, 134, 22, 102, 223,\n\t\t149, 27, 147, 9, 124, 94, 154, 29, 76, 134, 216, 30, 114,\n\t\t104, 139, 43, 4, 163, 72, 243, 223, 83, 107, 103, 145, 118,\n\t\t189, 91, 210, 179, 50, 214, 23, 192, 203, 128, 99, 8, 3, 5,\n\t\t31, 45, 33, 219, 91, 172, 134, 5, 89, 21, 98, 186, 96, 120,\n\t\t98, 199, 146, 0, 226, 122, 247, 164, 201, 28, 178, 236, 122,\n\t\t76, 114, 195, 162, 234, 73, 137, 218, 130, 239, 96, 208, 89,\n\t\t92, 102, 31, 50, 87, 217, 227, 213, 189, 209, 125, 75, 22,\n\t\t19, 95, 146, 130, 90, 128, 129, 79, 70, 140, 27, 243, 36,\n\t\t3, 36, 250, 175, 140, 88, 11, 29, 3, 171, 193, 46, 208, 77,\n\t\t193, 51, 37, 186, 108, 177, 168, 146, 216, 17, 163, 170, 193,\n\t\t29, 141, 120, 169, 213, 91, 110, 108, 71, 110, 226, 97, 73,\n\t\t98, 106, 213, 62, 69, 157, 65, 11, 156, 131, 9, 194, 80, 62,\n\t\t90, 181, 86, 240, 74, 188, 171, 86, 4, 126, 193, 20, 131,\n\t\t214, 10, 82, 96, 87, 171, 84, 72, 107, 21, 119, 181, 234,\n\t\t201, 35, 67, 30, 100, 167, 233, 162, 74, 65, 214, 100, 45,\n\t\t190, 181, 86, 167, 222, 16, 152, 249, 173, 85, 10, 253, 240,\n\t\t190, 158, 138, 91, 24, 204, 66, 33, 122, 76, 71, 217, 255,\n\t\t67, 160, 197, 17, 210, 77, 96, 158, 37, 74, 200, 246, 206,\n\t\t164, 59, 110, 246, 181, 18, 28, 202, 205, 56, 244, 122, 205,\n\t\t69, 196, 28, 204, 82, 145, 205, 61, 242, 140, 231, 100, 151,\n\t\t240, 25, 179, 88, 31, 132, 15, 137, 96, 224, 234, 147, 144,\n\t\t8, 250, 234, 221, 13, 120, 249, 252, 111, 119, 254, 120, 122,\n\t\t37, 174, 249, 233, 14, 65, 97, 46, 93, 108, 185, 137, 21,\n\t\t171, 108, 142, 96, 189, 209, 168, 20, 36, 74, 20, 47, 235,\n\t\t80, 179, 155, 16, 186, 186, 222, 224, 4, 116, 179, 147, 99,\n\t\t223, 155, 102, 23, 53, 79, 41, 195, 155, 83, 16, 92, 130,\n\t\t103, 106, 160, 89, 68, 162, 182, 77, 118, 47, 4, 232, 213,\n\t\t110, 162, 163, 55, 31, 25, 58, 43, 40, 44, 101, 228, 33, 249,\n\t\t151, 221, 193, 12, 44, 171, 6, 71, 243, 146, 162, 9, 247,\n\t\t220, 68, 147, 158, 235, 46, 193, 75, 135, 217, 119, 164, 20,\n\t\t58, 81, 3, 64, 80, 48, 184, 154, 69, 174, 39, 46, 77, 20,\n\t\t176, 104, 216, 26, 221, 83, 173, 162, 118, 140, 215, 69, 124,\n\t\t170, 61, 129, 247, 25, 57, 48, 29, 112, 42, 250, 62, 2, 178,\n\t\t140, 170, 132, 51, 249, 22, 197, 162, 43, 96, 23, 132, 43,\n\t\t1, 190, 174, 236, 3, 82, 90, 32, 206, 17, 75, 68, 9, 171,\n\t\t12, 222, 252, 90, 139, 230, 112, 230, 18, 243, 34, 130, 29,\n\t\t30, 123, 174, 160, 74, 131, 72, 231, 162, 89, 55, 224, 104,\n\t\t178, 92, 34, 244, 178, 111, 122, 92, 19, 211, 48, 158, 245,\n\t\t142, 17, 228, 117, 115, 39, 96, 243, 165, 145, 147, 145, 146,\n\t\t143, 160, 38, 247, 189, 7, 142, 139, 38, 189, 7, 184, 102,\n\t\t67, 82, 50, 38, 149, 185, 139, 35, 77, 59, 157, 8, 48, 50,\n\t\t200, 116, 83, 183, 88, 247, 172, 121, 228, 34, 81, 57, 104,\n\t\t23, 197, 100, 199, 109, 220, 209, 184, 140, 221, 123, 33,\n\t\t22, 241, 168, 76, 71, 137, 234, 236, 42, 130, 246, 121, 226,\n\t\t236, 53, 227, 134, 98, 242, 81, 12, 157, 162, 32, 99, 142,\n\t\t42, 251, 150, 27, 128, 51, 99, 234, 242, 97, 141, 34, 5, 115,\n\t\t109, 64, 156, 178, 110, 11, 49, 138, 130, 23, 17, 12, 14,\n\t\t151, 205, 65, 54, 13, 145, 15, 204, 216, 22, 10, 80, 226,\n\t\t130, 15, 28, 33, 68, 183, 83, 174, 139, 191, 82, 71, 8, 42,\n\t\t168, 33, 115, 159, 114, 81, 199, 77, 99, 141, 179, 235, 221,\n\t\t183, 28, 68, 1, 45, 34, 147, 100, 98, 114, 82, 244, 55, 178,\n\t\t190, 139, 61, 33, 233, 95, 231, 160, 204, 161, 2, 250, 66,\n\t\t155, 131, 99, 10, 142, 25, 104, 19, 112, 193, 244, 67, 22,\n\t\t132, 206, 62, 76, 62, 0, 242, 89, 150, 163, 188, 71, 113,\n\t\t26, 51, 15, 239, 105, 2, 47, 10, 58, 44, 153, 85, 124, 184,\n\t\t202, 64, 103, 157, 101, 213, 164, 142, 100, 255, 193, 133,\n\t\t211, 145, 191, 22, 116, 107, 110, 178, 239, 19, 143, 235,\n\t\t153, 112, 134, 3, 128, 186, 228, 101, 185, 148, 232, 145,\n\t\t139, 200, 141, 188, 26, 235, 185, 251, 18, 233, 229, 67, 236,\n\t\t200, 210, 152, 40, 176, 15, 101, 102, 210, 52, 53, 214, 20,\n\t\t32, 165, 140, 141, 101, 202, 89, 149, 221, 113, 45, 179, 58,\n\t\t129, 223, 163, 102, 79, 21, 17, 167, 198, 9, 6, 98, 87, 249,\n\t\t15, 56, 196, 72, 53, 22, 76, 220, 132, 60, 7, 64, 9, 6, 100,\n\t\t248, 165, 238, 75, 208, 80, 98, 145, 19, 233, 176, 80, 31,\n\t\t76, 99, 21, 73, 37, 51, 139, 233, 208, 226, 84, 125, 47, 56,\n\t\t110, 64, 128, 187, 44, 211, 92, 100, 117, 214, 110, 199, 46,\n\t\t213, 151, 22, 74, 193, 116, 87, 115, 28, 168, 56, 37, 107,\n\t\t186, 123, 98, 172, 36, 77, 189, 81, 220, 215, 113, 71, 254,\n\t\t32, 61, 111, 230, 168, 74, 161, 232, 132, 10, 229, 108, 15,\n\t\t93, 60, 204, 33, 206, 64, 233, 233, 82, 180, 189, 62, 141,\n\t\t130, 199, 181, 61, 121, 94, 235, 115, 152, 165, 88, 0, 99,\n\t\t69, 221, 125, 212, 7, 37, 2, 164, 14, 135, 245, 192, 194,\n\t\t34, 34, 255, 0, 10, 240, 248, 244, 233, 215, 211, 241, 233,\n\t\t191, 111, 108, 178, 95, 110, 160, 0, 182, 83, 211, 20, 147,\n\t\t175, 136, 155, 105, 72, 247, 54, 197, 79, 6, 69, 179, 184,\n\t\t217, 200, 142, 92, 215, 27, 75, 78, 150, 60, 158, 149, 149,\n\t\t243, 236, 168, 71, 143, 140, 87, 123, 195, 74, 200, 83, 190,\n\t\t228, 136, 154, 170, 241, 49, 81, 202, 190, 76, 68, 205, 243,\n\t\t194, 70, 63, 4, 39, 100, 7, 18, 250, 84, 38, 144, 229, 2,\n\t\t137, 155, 212, 254, 8, 160, 37, 215, 98, 0, 131, 62, 104,\n\t\t139, 202, 64, 189, 27, 21, 37, 160, 253, 104, 170, 122, 85,\n\t\t226, 41, 128, 152, 172, 16, 120, 35, 197, 29, 126, 70, 141,\n\t\t169, 188, 184, 135, 86, 104, 118, 84, 8, 212, 179, 38, 112,\n\t\t65, 195, 165, 100, 5, 167, 145, 47, 191, 82, 70, 229, 209,\n\t\t142, 161, 56, 27, 70, 161, 24, 2, 26, 171, 189, 146, 140,\n\t\t178, 113, 39, 229, 50, 175, 223, 221, 234, 55, 62, 59, 173,\n\t\t181, 19, 43, 217, 14, 144, 16, 19, 154, 150, 174, 204, 170,\n\t\t83, 15, 135, 57, 91, 7, 172, 216, 238, 70, 244, 213, 198,\n\t\t112, 208, 197, 245, 177, 161, 27, 211, 203, 135, 44, 186,\n\t\t187, 72, 6, 133, 38, 203, 40, 232, 232, 138, 178, 192, 24,\n\t\t123, 140, 187, 97, 129, 57, 179, 14, 213, 11, 8, 107, 186,\n\t\t150, 118, 5, 169, 166, 244, 84, 192, 84, 187, 131, 231, 118,\n\t\t122, 5, 192, 77, 177, 219, 148, 200, 235, 6, 188, 237, 229,\n\t\t67, 0, 30, 161, 84, 245, 216, 203, 225, 236, 80, 23, 152,\n\t\t122, 117, 112, 120, 189, 70, 109, 131, 208, 63, 165, 180,\n\t\t234, 183, 0, 114, 100, 244, 183, 143, 43, 112, 250, 134, 214,\n\t\t201, 23, 163, 239, 56, 160, 198, 193, 157, 77, 33, 90, 231,\n\t\t133, 190, 23, 105, 0, 228, 27, 87, 64, 50, 18, 86, 209, 12,\n\t\t52, 238, 95, 167, 176, 209, 163, 194, 182, 185, 124, 213,\n\t\t173, 133, 37, 141, 132, 199, 42, 27, 19, 34, 217, 194, 149,\n\t\t199, 117, 210, 198, 102, 43, 138, 120, 96, 58, 100, 139, 98,\n\t\t136, 101, 164, 36, 182, 193, 228, 202, 43, 75, 26, 102, 223,\n\t\t178, 82, 176, 201, 212, 94, 214, 101, 178, 95, 48, 60, 222,\n\t\t225, 106, 197, 149, 33, 70, 34, 13, 121, 178, 18, 10, 47,\n\t\t174, 7, 159, 21, 96, 167, 167, 163, 124, 90, 110, 99, 162,\n\t\t201, 246, 103, 0, 248, 38, 111, 230, 162, 56, 170, 6, 99,\n\t\t121, 41, 165, 250, 152, 228, 209, 168, 114, 27, 141, 225,\n\t\t73, 198, 187, 199, 125, 128, 147, 150, 235, 110, 172, 27,\n\t\t64, 255, 32, 255, 11, 32, 1, 158, 141, 122, 161, 105, 195,\n\t\t17, 167, 65, 62, 79, 246, 179, 188, 160, 125, 28, 131, 40,\n\t\t255, 249, 174, 156, 126, 254, 116, 126, 94, 62, 255, 254,\n\t\t236, 62, 255, 254, 124, 163, 193, 255, 82, 86, 196, 97, 228,\n\t\t120, 148, 63, 37, 231, 174, 68, 207, 21, 156, 217, 12, 120,\n\t\t130, 169, 105, 218, 11, 119, 219, 171, 26, 50, 29, 166, 88,\n\t\t145, 14, 56, 139, 154, 128, 220, 251, 174, 49, 252, 41, 35,\n\t\t201, 89, 182, 41, 245, 19, 38, 207, 48, 20, 51, 241, 76, 69,\n\t\t21, 31, 128, 156, 151, 50, 229, 224, 153, 166, 68, 154, 6,\n\t\t87, 163, 79, 82, 84, 82, 231, 223, 65, 118, 74, 156, 192,\n\t\t5, 31, 115, 204, 84, 192, 181, 220, 179, 38, 175, 33, 83,\n\t\t111, 188, 226, 240, 14, 151, 89, 118, 138, 210, 12, 148, 42,\n\t\t138, 253, 23, 197, 158, 139, 58, 62, 189, 103, 171, 145, 211,\n\t\t42, 65, 199, 210, 144, 159, 234, 123, 46, 33, 175, 13, 116,\n\t\t160, 3, 237, 125, 187, 97, 77, 62, 59, 235, 164, 151, 15,\n\t\t41, 21, 143, 4, 237, 22, 124, 9, 216, 216, 96, 6, 69, 203,\n\t\t118, 117, 117, 16, 83, 140, 12, 78, 178, 99, 113, 143, 220,\n\t\t213, 3, 230, 127, 75, 73, 83, 47, 155, 60, 34, 250, 82, 65,\n\t\t72, 85, 240, 96, 64, 7, 50, 62, 114, 170, 107, 197, 169, 18,\n\t\t118, 25, 181, 97, 86, 228, 121, 237, 73, 100, 140, 55, 105,\n\t\t237, 69, 199, 112, 175, 208, 104, 84, 93, 14, 94, 181, 95,\n\t\t56, 97, 112, 10, 221, 61, 37, 28, 234, 237, 6, 0, 239, 228,\n\t\t160, 10, 41, 92, 75, 98, 234, 136, 14, 44, 90, 96, 145, 5,\n\t\t156, 118, 117, 179, 170, 33, 55, 168, 160, 187, 216, 146,\n\t\t249, 193, 140, 39, 86, 11, 25, 125, 240, 218, 9, 206, 122,\n\t\t1, 172, 139, 21, 169, 180, 162, 1, 227, 16, 63, 248, 58, 66,\n\t\t11, 68, 171, 134, 131, 197, 18, 203, 226, 112, 151, 140, 27,\n\t\t9, 201, 11, 154, 209, 207, 232, 119, 26, 212, 247, 89, 207,\n\t\t219, 166, 232, 25, 225, 76, 174, 200, 212, 202, 125, 150,\n\t\t110, 111, 150, 241, 10, 113, 38, 221, 158, 165, 69, 72, 159,\n\t\t22, 145, 21, 178, 143, 208, 12, 138, 111, 165, 241, 97, 54,\n\t\t14, 126, 181, 217, 26, 41, 63, 56, 50, 196, 83, 53, 196, 40,\n\t\t25, 14, 49, 208, 82, 197, 137, 225, 28, 51, 48, 16, 32, 240,\n\t\t144, 148, 135, 3, 156, 18, 58, 120, 230, 43, 217, 43, 92,\n\t\t167, 241, 70, 50, 235, 34, 22, 61, 63, 23, 5, 157, 218, 148,\n\t\t187, 250, 219, 71, 173, 172, 82, 179, 200, 44, 0, 117, 170,\n\t\t26, 188, 54, 84, 84, 10, 153, 205, 227, 122, 180, 59, 200,\n\t\t147, 200, 54, 118, 48, 245, 52, 155, 41, 5, 52, 131, 198,\n\t\t225, 175, 244, 231, 253, 128, 188, 95, 127, 253, 242, 124,\n\t\t58, 185, 95, 62, 127, 190, 225, 251, 248, 229, 6, 84, 250,\n\t\t21, 190, 15, 14, 103, 87, 210, 145, 31, 113, 231, 92, 50,\n\t\t16, 189, 206, 225, 250, 103, 151, 149, 214, 236, 229, 87,\n\t\t41, 116, 56, 188, 73, 161, 147, 232, 117, 42, 162, 195, 81,\n\t\t222, 122, 139, 1, 40, 181, 63, 163, 238, 47, 31, 24, 124,\n\t\t123, 225, 26, 162, 249, 26, 23, 250, 116, 137, 217, 140, 91,\n\t\t59, 36, 103, 131, 111, 189, 4, 155, 158, 6, 124, 107, 83,\n\t\t53, 249, 76, 221, 212, 229, 48, 197, 177, 111, 14, 10, 251,\n\t\t108, 156, 243, 174, 152, 162, 99, 55, 142, 46, 111, 108, 253,\n\t\t46, 155, 106, 11, 154, 114, 220, 105, 64, 86, 208, 178, 218,\n\t\t9, 49, 43, 19, 175, 78, 26, 251, 165, 161, 148, 88, 85, 229,\n\t\t15, 219, 71, 80, 14, 222, 93, 239, 216, 119, 207, 206, 106,\n\t\t11, 237, 47, 168, 77, 66, 97, 26, 183, 17, 55, 59, 192, 21,\n\t\t228, 198, 145, 196, 168, 234, 230, 19, 84, 228, 176, 241,\n\t\t204, 138, 56, 100, 215, 246, 202, 187, 86, 203, 252, 244,\n\t\t229, 6, 155, 229, 151, 27, 210, 238, 157, 31, 142, 53, 137,\n\t\t227, 77, 234, 40, 139, 9, 123, 99, 166, 166, 246, 246, 76,\n\t\t181, 24, 132, 215, 72, 179, 194, 203, 7, 184, 100, 127, 226,\n\t\t76, 226, 214, 254, 153, 73, 111, 205, 36, 141, 100, 143, 69,\n\t\t73, 25, 210, 88, 233, 209, 30, 151, 38, 73, 221, 41, 165,\n\t\t121, 40, 147, 82, 251, 182, 61, 34, 127, 183, 1, 40, 60, 30,\n\t\t217, 253, 40, 63, 31, 229, 253, 237, 245, 54, 109, 229, 55,\n\t\t173, 2, 135, 240, 39, 84, 225, 240, 99, 117, 40, 233, 79,\n\t\t168, 195, 247, 86, 225, 46, 236, 220, 233, 249, 203, 27, 24,\n\t\t232, 191, 220, 192, 45, 165, 62, 150, 52, 3, 217, 255, 79,\n\t\t71, 69, 151, 63, 16, 152, 155, 116, 86, 161, 39, 116, 21,\n\t\t232, 124, 68, 32, 99, 59, 237, 175, 237, 86, 107, 211, 184,\n\t\t139, 155, 39, 183, 187, 212, 231, 180, 252, 48, 231, 54, 108,\n\t\t125, 18, 29, 14, 226, 3, 126, 148, 4, 87, 76, 179, 133, 140,\n\t\t164, 108, 89, 63, 49, 15, 195, 48, 235, 131, 121, 44, 202,\n\t\t222, 124, 30, 87, 155, 59, 40, 76, 131, 253, 121, 231, 91,\n\t\t25, 108, 218, 78, 109, 90, 218, 153, 162, 105, 51, 207, 212,\n\t\t207, 84, 198, 26, 79, 134, 68, 56, 238, 64, 6, 40, 54, 225,\n\t\t160, 72, 179, 39, 236, 1, 224, 5, 65, 210, 193, 248, 38, 11,\n\t\t107, 135, 245, 62, 42, 48, 106, 98, 55, 14, 8, 4, 28, 160,\n\t\t152, 213, 80, 206, 220, 138, 212, 131, 54, 186, 209, 72, 145,\n\t\t164, 250, 97, 131, 115, 108, 117, 8, 153, 102, 102, 62, 122,\n\t\t113, 92, 222, 167, 123, 250, 213, 253, 242, 244, 235, 109,\n\t\t72, 197, 124, 147, 8, 187, 3, 250, 138, 229, 46, 103, 112,\n\t\t218, 12, 200, 87, 57, 131, 91, 251, 102, 181, 231, 200, 50,\n\t\t119, 64, 42, 36, 134, 231, 61, 52, 254, 211, 45, 252, 126,\n\t\t47, 111, 162, 239, 159, 94, 1, 252, 239, 69, 185, 65, 184,\n\t\t181, 195, 79, 219, 184, 68, 245, 206, 116, 177, 113, 253,\n\t\t71, 246, 173, 195, 95, 181, 113, 125, 195, 190, 245, 96, 194,\n\t\t190, 166, 252, 204, 55, 200, 217, 239, 87, 126, 100, 204,\n\t\t115, 181, 93, 242, 45, 69, 70, 102, 206, 57, 134, 116, 148,\n\t\t39, 157, 209, 138, 127, 135, 190, 164, 188, 19, 156, 126,\n\t\t100, 59, 121, 188, 145, 29, 238, 238, 100, 198, 125, 209,\n\t\t210, 79, 173, 195, 123, 170, 32, 70, 210, 143, 84, 225, 240,\n\t\t99, 117, 16, 237, 148, 243, 13, 21, 205, 159, 182, 200, 75,\n\t\t181, 85, 76, 182, 63, 69, 243, 227, 58, 91, 129, 67, 148,\n\t\t147, 93, 83, 30, 32, 185, 122, 227, 72, 173, 248, 114, 152,\n\t\t113, 168, 166, 184, 195, 38, 201, 186, 45, 230, 241, 6, 141,\n\t\t45, 112, 117, 193, 15, 81, 16, 217, 35, 156, 91, 191, 84,\n\t\t108, 183, 178, 27, 71, 167, 155, 196, 159, 34, 76, 70, 81,\n\t\t220, 70, 109, 93, 102, 175, 177, 246, 121, 251, 180, 179,\n\t\t111, 223, 93, 231, 95, 143, 207, 95, 126, 251, 252, 219, 243,\n\t\t215, 231, 47, 238, 255, 252, 177, 44, 55, 11, 254, 38, 230,\n\t\t143, 243, 170, 26, 113, 154, 98, 230, 179, 227, 16, 125, 76,\n\t\t117, 38, 11, 249, 194, 121, 77, 137, 160, 194, 147, 170, 81,\n\t\t79, 17, 127, 183, 132, 136, 12, 153, 136, 85, 246, 109, 96,\n\t\t148, 84, 31, 3, 41, 107, 201, 246, 159, 25, 7, 56, 173, 49,\n\t\t38, 75, 240, 5, 81, 216, 215, 105, 54, 29, 24, 40, 91, 84,\n\t\t238, 44, 197, 162, 180, 224, 147, 134, 229, 58, 226, 234,\n\t\t83, 106, 56, 229, 85, 140, 46, 174, 128, 131, 37, 110, 190,\n\t\t148, 52, 7, 79, 10, 230, 17, 89, 49, 148, 145, 105, 192, 117,\n\t\t42, 228, 115, 173, 8, 64, 65, 207, 71, 4, 40, 31, 206, 163,\n\t\t185, 97, 202, 81, 67, 27, 69, 173, 104, 148, 38, 96, 81, 77,\n\t\t189, 156, 64, 13, 183, 221, 212, 189, 14, 77, 43, 243, 8,\n\t\t211, 70, 116, 246, 69, 172, 182, 236, 76, 201, 130, 220, 73,\n\t\t105, 195, 38, 116, 31, 178, 49, 121, 42, 197, 231, 192, 103,\n\t\t134, 11, 216, 160, 214, 144, 186, 10, 217, 8, 140, 154, 91,\n\t\t204, 106, 185, 237, 134, 12, 30, 175, 42, 234, 169, 185, 198,\n\t\t16, 118, 227, 34, 249, 198, 69, 39, 114, 24, 238, 252, 222,\n\t\t251, 228, 74, 241, 161, 5, 194, 73, 27, 43, 252, 159, 75,\n\t\t209, 183, 17, 2, 111, 217, 138, 200, 46, 169, 221, 78, 184,\n\t\t91, 0, 33, 141, 110, 241, 5, 98, 252, 27, 225, 60, 164, 125,\n\t\t81, 97, 241, 136, 241, 181, 148, 124, 76, 77, 44, 93, 120,\n\t\t255, 168, 158, 89, 86, 93, 147, 9, 53, 146, 148, 175, 243,\n\t\t140, 79, 183, 57, 203, 103, 55, 94, 163, 238, 137, 245, 164,\n\t\t15, 71, 209, 81, 157, 255, 72, 211, 193, 220, 197, 87, 222,\n\t\t189, 128, 190, 30, 191, 60, 63, 187, 255, 251, 199, 211, 151,\n\t\t175, 207, 95, 110, 240, 1, 230, 155, 0, 158, 109, 41, 253,\n\t\t212, 78, 66, 208, 231, 183, 119, 210, 120, 237, 157, 157,\n\t\t4, 113, 0, 80, 203, 28, 223, 45, 9, 14, 183, 162, 64, 65,\n\t\t145, 239, 137, 2, 141, 200, 249, 249, 162, 160, 241, 165,\n\t\t40, 104, 215, 162, 224, 251, 36, 193, 42, 47, 95, 14, 240,\n\t\t0, 98, 16, 177, 238, 219, 95, 180, 238, 249, 102, 221, 231,\n\t\t59, 235, 254, 123, 150, 253, 18, 52, 137, 74, 147, 240, 3,\n\t\t245, 28, 137, 15, 119, 68, 223, 187, 215, 216, 241, 105, 185,\n\t\t201, 159, 153, 111, 28, 216, 127, 213, 202, 10, 233, 187,\n\t\t86, 150, 189, 246, 207, 202, 250, 103, 101, 253, 125, 86,\n\t\t150, 237, 91, 55, 139, 235, 233, 63, 180, 184, 82, 248, 158,\n\t\t181, 101, 111, 253, 179, 180, 254, 89, 90, 127, 159, 165,\n\t\t245, 252, 219, 239, 95, 111, 168, 222, 231, 155, 131, 164,\n\t\t63, 97, 97, 189, 15, 3, 239, 123, 102, 253, 79, 155, 244,\n\t\t135, 255, 13, 179, 254, 207, 159, 244, 135, 191, 243, 172,\n\t\t255, 222, 73, 127, 58, 126, 254, 247, 43, 91, 200, 252, 95,\n\t\t43, 121, 69, 247, 165, 76, 145, 216, 167, 197, 81, 110, 62,\n\t\t224, 164, 64, 255, 0, 68, 141, 242, 5, 108, 204, 233, 201,\n\t\t146, 172, 215, 59, 49, 122, 36, 142, 133, 5, 129, 41, 28,\n\t\t20, 127, 155, 3, 16, 30, 244, 161, 245, 225, 149, 140, 59,\n\t\t41, 234, 70, 152, 236, 245, 101, 100, 118, 111, 41, 222, 46,\n\t\t38, 205, 106, 77, 26, 155, 19, 179, 66, 118, 247, 182, 82,\n\t\t81, 43, 252, 39, 165, 224, 99, 211, 176, 61, 4, 121, 84, 163,\n\t\t161, 224, 162, 48, 173, 114, 159, 236, 236, 0, 14, 47, 187,\n\t\t129, 3, 136, 166, 132, 226, 174, 86, 13, 111, 150, 207, 106,\n\t\t174, 214, 122, 199, 254, 56, 187, 24, 138, 231, 116, 116,\n\t\t37, 157, 245, 207, 57, 76, 181, 105, 240, 113, 137, 30, 144,\n\t\t186, 148, 200, 215, 114, 249, 207, 12, 128, 108, 0, 125, 215,\n\t\t160, 12, 5, 107, 212, 106, 207, 22, 221, 30, 149, 51, 118,\n\t\t142, 22, 32, 72, 164, 113, 102, 181, 120, 100, 155, 77, 20,\n\t\t138, 71, 96, 21, 161, 95, 14, 175, 244, 217, 24, 176, 125,\n\t\t63, 203, 112, 141, 235, 109, 176, 198, 88, 141, 65, 155, 111,\n\t\t198, 232, 98, 204, 117, 176, 198, 96, 191, 124, 136, 45, 77,\n\t\t156, 140, 255, 23, 172, 18, 8, 239, 68, 242, 195, 142, 109,\n\t\t254, 52, 232, 229, 199, 125, 156, 84, 232, 229, 160, 199,\n\t\t63, 89, 104, 232, 184, 137, 232, 211, 68, 197, 202, 31, 197,\n\t\t95, 191, 118, 120, 229, 189, 211, 59, 235, 96, 135, 163, 63,\n\t\t177, 254, 112, 119, 43, 17, 214, 207, 40, 255, 240, 33, 5,\n\t\t228, 24, 204, 163, 116, 156, 241, 124, 103, 119, 220, 124,\n\t\t242, 229, 67, 106, 225, 103, 214, 31, 177, 48, 84, 203, 119,\n\t\t148, 127, 120, 231, 7, 50, 219, 7, 222, 154, 64, 63, 52, 127,\n\t\t100, 51, 252, 190, 250, 191, 179, 250, 210, 63, 41, 29, 126,\n\t\t90, 253, 229, 223, 148, 126, 110, 253, 149, 61, 246, 27, 203,\n\t\t127, 239, 248, 130, 157, 236, 123, 62, 240, 206, 242, 51,\n\t\t171, 11, 248, 39, 21, 207, 65, 148, 142, 159, 85, 254, 93,\n\t\t16, 232, 167, 175, 199, 27, 149, 96, 165, 157, 79, 77, 241,\n\t\t158, 239, 113, 39, 191, 147, 107, 251, 236, 44, 170, 212,\n\t\t0, 121, 68, 133, 82, 94, 15, 160, 36, 54, 203, 28, 168, 228,\n\t\t115, 42, 253, 12, 234, 131, 28, 233, 113, 201, 84, 30, 176,\n\t\t102, 183, 163, 227, 92, 206, 174, 189, 167, 172, 195, 131,\n\t\t194, 70, 181, 64, 241, 20, 21, 59, 76, 243, 163, 69, 127,\n\t\t180, 252, 59, 249, 123, 52, 36, 242, 123, 120, 189, 239, 209,\n\t\t122, 183, 179, 174, 205, 183, 32, 100, 102, 174, 10, 106,\n\t\t24, 112, 154, 174, 28, 5, 17, 68, 201, 37, 15, 180, 165, 228,\n\t\t83, 171, 138, 129, 215, 90, 108, 83, 241, 161, 164, 4, 12,\n\t\t60, 102, 208, 139, 81, 72, 169, 79, 37, 33, 93, 14, 153, 9,\n\t\t177, 164, 56, 39, 195, 151, 74, 202, 92, 3, 101, 169, 76,\n\t\t9, 240, 11, 192, 143, 80, 245, 55, 128, 216, 143, 144, 132,\n\t\t30, 149, 203, 75, 255, 88, 193, 47, 46, 96, 59, 54, 248, 141,\n\t\t11, 216, 142, 197, 245, 108, 224, 37, 242, 7, 247, 120, 133,\n\t\t93, 114, 241, 222, 21, 108, 71, 168, 67, 237, 148, 239, 219,\n\t\t191, 56, 5, 214, 92, 253, 241, 175, 188, 6, 144, 68, 128,\n\t\t174, 167, 182, 85, 126, 52, 7, 80, 97, 153, 19, 128, 143,\n\t\t210, 192, 76, 226, 14, 182, 127, 181, 129, 6, 11, 91, 139,\n\t\t94, 245, 211, 236, 11, 142, 104, 128, 98, 144, 181, 3, 21,\n\t\t98, 99, 104, 144, 98, 36, 81, 42, 227, 6, 178, 125, 48, 6,\n\t\t154, 237, 3, 111, 9, 90, 179, 186, 34, 83, 58, 166, 240, 128,\n\t\t133, 246, 243, 175, 243, 211, 233, 134, 133, 118, 126, 126,\n\t\t59, 108, 152, 75, 149, 37, 168, 180, 21, 37, 230, 25, 16,\n\t\t154, 131, 175, 209, 48, 83, 77, 203, 67, 38, 94, 44, 25, 38,\n\t\t139, 34, 44, 217, 29, 4, 38, 129, 49, 55, 32, 177, 5, 88,\n\t\t45, 98, 12, 149, 90, 236, 233, 10, 120, 77, 125, 184, 26,\n\t\t114, 195, 186, 252, 65, 166, 197, 113, 234, 98, 116, 228,\n\t\t237, 154, 34, 251, 70, 98, 209, 138, 138, 143, 76, 84, 99,\n\t\t112, 75, 209, 215, 44, 102, 50, 254, 128, 237, 220, 124, 134,\n\t\t21, 91, 52, 53, 172, 230, 65, 192, 100, 140, 143, 162, 208,\n\t\t131, 3, 36, 200, 244, 237, 43, 133, 151, 44, 16, 124, 230,\n\t\t229, 3, 229, 226, 91, 169, 19, 41, 98, 209, 204, 190, 40,\n\t\t125, 151, 17, 128, 240, 72, 73, 41, 190, 43, 248, 103, 240,\n\t\t133, 21, 143, 179, 131, 140, 48, 195, 180, 1, 231, 100, 241,\n\t\t85, 233, 26, 101, 34, 41, 149, 67, 246, 74, 206, 194, 228,\n\t\t57, 102, 37, 33, 19, 185, 55, 59, 242, 53, 25, 2, 172, 229,\n\t\t114, 35, 148, 66, 44, 250, 6, 205, 91, 4, 141, 102, 35, 183,\n\t\t90, 15, 56, 83, 70, 126, 63, 23, 207, 173, 107, 198, 18, 108,\n\t\t155, 18, 193, 57, 187, 221, 144, 246, 246, 214, 69, 95, 8,\n\t\t190, 202, 90, 41, 210, 202, 78, 136, 139, 226, 84, 225, 97,\n\t\t160, 18, 1, 125, 212, 19, 205, 181, 168, 165, 238, 216, 18,\n\t\t2, 40, 86, 15, 158, 18, 145, 8, 5, 124, 144, 221, 43, 175,\n\t\t173, 88, 88, 165, 207, 96, 253, 177, 12, 206, 218, 24, 225,\n\t\t70, 234, 54, 116, 141, 20, 105, 5, 21, 162, 80, 1, 250, 228,\n\t\t115, 65, 82, 71, 7, 26, 138, 99, 95, 101, 245, 106, 90, 7,\n\t\t82, 191, 197, 56, 226, 170, 216, 101, 26, 43, 214, 58, 36,\n\t\t114, 242, 181, 38, 37, 245, 208, 140, 39, 145, 66, 172, 228,\n\t\t100, 96, 89, 210, 222, 149, 245, 58, 58, 55, 26, 223, 35,\n\t\t123, 14, 68, 85, 147, 93, 149, 223, 39, 131, 236, 14, 195,\n\t\t88, 97, 13, 81, 171, 121, 6, 112, 24, 41, 204, 111, 204, 192,\n\t\t160, 105, 165, 48, 242, 105, 88, 177, 105, 112, 93, 52, 215,\n\t\t124, 14, 83, 78, 138, 56, 33, 141, 68, 118, 76, 111, 74, 77,\n\t\t216, 181, 163, 186, 210, 216, 205, 32, 251, 98, 101, 195,\n\t\t235, 136, 67, 236, 1, 128, 115, 232, 57, 202, 34, 146, 58,\n\t\t171, 75, 180, 147, 225, 39, 56, 66, 58, 111, 180, 13, 83,\n\t\t89, 88, 129, 188, 130, 252, 254, 142, 149, 84, 1, 94, 4, 36,\n\t\t228, 86, 12, 196, 63, 181, 153, 56, 250, 6, 148, 26, 214,\n\t\t237, 58, 120, 6, 120, 159, 204, 62, 152, 169, 82, 3, 133,\n\t\t57, 68, 142, 51, 206, 154, 101, 175, 80, 175, 17, 54, 13,\n\t\t89, 43, 228, 83, 80, 102, 13, 75, 69, 7, 0, 29, 60, 0, 200,\n\t\t56, 146, 45, 142, 21, 117, 82, 83, 138, 138, 143, 20, 114,\n\t\t158, 121, 80, 236, 20, 197, 139, 72, 30, 137, 60, 209, 83,\n\t\t87, 202, 37, 78, 129, 167, 84, 61, 115, 207, 135, 57, 53,\n\t\t69, 97, 136, 164, 228, 226, 65, 211, 133, 91, 246, 160, 10,\n\t\t25, 215, 148, 170, 44, 85, 69, 207, 210, 4, 253, 218, 61,\n\t\t72, 181, 106, 241, 12, 88, 178, 42, 11, 79, 70, 49, 251, 142,\n\t\t44, 255, 226, 57, 42, 27, 10, 103, 163, 101, 171, 73, 103,\n\t\t118, 109, 202, 17, 3, 158, 150, 140, 100, 154, 154, 196, 220,\n\t\t6, 64, 18, 184, 12, 39, 87, 200, 199, 72, 52, 197, 0, 154,\n\t\t39, 153, 123, 178, 200, 8, 166, 62, 208, 86, 164, 90, 136,\n\t\t176, 240, 153, 21, 25, 12, 124, 123, 117, 98, 133, 113, 134,\n\t\t44, 81, 248, 9, 95, 106, 173, 64, 59, 192, 86, 116, 144, 53,\n\t\t84, 98, 82, 50, 30, 128, 223, 70, 228, 211, 171, 91, 176,\n\t\t1, 220, 204, 27, 111, 104, 82, 223, 214, 28, 0, 191, 105,\n\t\t9, 135, 5, 233, 219, 158, 129, 74, 228, 26, 68, 52, 109, 227,\n\t\t225, 198, 128, 0, 26, 64, 250, 54, 102, 69, 4, 90, 135, 153,\n\t\t136, 188, 242, 165, 217, 13, 29, 118, 64, 202, 217, 60, 210,\n\t\t9, 4, 118, 139, 241, 63, 163, 187, 104, 237, 219, 57, 17,\n\t\t222, 71, 167, 113, 111, 207, 251, 247, 199, 79, 191, 126,\n\t\t254, 183, 251, 237, 233, 255, 253, 248, 219, 199, 151, 155,\n\t\t184, 205, 95, 195, 170, 190, 26, 229, 199, 247, 134, 252,\n\t\t143, 4, 191, 111, 10, 249, 31, 6, 161, 232, 156, 77, 22, 219,\n\t\t77, 158, 137, 165, 153, 16, 31, 29, 8, 71, 183, 100, 21, 183,\n\t\t207, 86, 89, 169, 216, 90, 58, 198, 246, 190, 46, 249, 248,\n\t\t233, 245, 46, 161, 125, 151, 244, 59, 61, 242, 253, 29, 114,\n\t\t167, 63, 222, 81, 243, 47, 207, 167, 175, 159, 191, 220, 86,\n\t\t156, 247, 105, 153, 41, 132, 11, 62, 196, 215, 227, 14, 207,\n\t\t234, 170, 72, 105, 248, 97, 53, 85, 218, 208, 21, 167, 22,\n\t\t142, 142, 67, 59, 167, 246, 102, 152, 237, 27, 221, 99, 142,\n\t\t174, 202, 15, 43, 113, 47, 190, 119, 35, 98, 188, 253, 240,\n\t\t225, 237, 47, 195, 5, 246, 104, 58, 49, 183, 199, 211, 41,\n\t\t243, 145, 51, 159, 243, 253, 224, 179, 223, 62, 206, 95, 62,\n\t\t207, 199, 143, 191, 223, 12, 201, 47, 235, 92, 162, 162, 67,\n\t\t146, 222, 147, 46, 43, 59, 207, 253, 116, 217, 45, 242, 249,\n\t\t85, 138, 74, 41, 128, 239, 82, 84, 130, 51, 51, 137, 230,\n\t\t172, 20, 69, 10, 108, 5, 249, 171, 217, 147, 69, 255, 255,\n\t\t232, 168, 157, 93, 121, 240, 76, 226, 179, 204, 95, 62, 204,\n\t\t227, 161, 48, 149, 237, 65, 121, 232, 236, 202, 145, 218,\n\t\t219, 191, 15, 215, 98, 249, 147, 171, 244, 163, 53, 162, 28,\n\t\t222, 91, 163, 195, 95, 84, 165, 156, 222, 91, 163, 191, 160,\n\t\t66, 49, 76, 149, 101, 232, 207, 42, 83, 120, 118, 219, 211,\n\t\t174, 76, 187, 175, 150, 51, 234, 117, 239, 1, 52, 107, 252,\n\t\t188, 125, 168, 76, 82, 141, 115, 121, 235, 71, 84, 131, 138,\n\t\t180, 229, 175, 168, 198, 225, 110, 61, 184, 164, 191, 168,\n\t\t30, 119, 171, 17, 75, 248, 243, 170, 241, 102, 139, 239, 215,\n\t\t227, 238, 25, 219, 167, 207, 255, 254, 63, 203, 43, 88, 48,\n\t\t191, 206, 119, 242, 120, 197, 160, 2, 242, 79, 155, 235, 144,\n\t\t214, 227, 64, 104, 196, 24, 83, 52, 52, 6, 95, 12, 198, 153,\n\t\t22, 167, 32, 39, 6, 168, 0, 69, 29, 248, 25, 110, 45, 101,\n\t\t188, 229, 72, 225, 238, 73, 17, 100, 12, 169, 34, 26, 160,\n\t\t5, 117, 159, 23, 177, 162, 196, 252, 213, 8, 232, 54, 146,\n\t\t32, 198, 251, 101, 45, 104, 64, 87, 52, 156, 76, 45, 142,\n\t\t146, 97, 88, 36, 96, 55, 142, 247, 248, 226, 61, 182, 252,\n\t\t31, 192, 60, 34, 209, 33, 140, 215, 251, 84, 3, 234, 177,\n\t\t184, 194, 150, 235, 84, 52, 43, 196, 213, 234, 243, 146, 163,\n\t\t165, 83, 100, 109, 205, 92, 70, 8, 249, 248, 99, 189, 49,\n\t\t40, 151, 195, 138, 75, 163, 30, 161, 16, 148, 73, 152, 209,\n\t\t79, 187, 247, 215, 90, 106, 110, 213, 184, 49, 112, 45, 194,\n\t\t130, 48, 116, 185, 103, 255, 34, 138, 69, 170, 99, 238, 90,\n\t\t13, 9, 191, 204, 191, 153, 144, 79, 17, 249, 42, 75, 231,\n\t\t34, 43, 231, 156, 130, 129, 112, 140, 15, 140, 63, 46, 234,\n\t\t119, 213, 174, 237, 206, 190, 134, 219, 65, 102, 4, 87, 107,\n\t\t209, 235, 125, 51, 241, 251, 218, 57, 163, 111, 242, 152,\n\t\t84, 250, 239, 25, 221, 45, 163, 208, 208, 97, 54, 12, 24,\n\t\t35, 103, 131, 4, 10, 90, 43, 119, 12, 54, 133, 1, 178, 18,\n\t\t109, 134, 217, 228, 88, 167, 203, 178, 66, 248, 164, 117,\n\t\t142, 172, 83, 196, 40, 212, 41, 108, 83, 76, 207, 60, 117,\n\t\t170, 44, 117, 226, 130, 201, 170, 181, 146, 217, 58, 187,\n\t\t58, 252, 50, 105, 55, 211, 48, 22, 52, 114, 199, 12, 183,\n\t\t101, 204, 118, 44, 150, 221, 90, 193, 107, 107, 49, 246, 214,\n\t\t40, 197, 226, 254, 173, 140, 195, 178, 91, 42, 37, 132, 178,\n\t\t56, 46, 83, 221, 53, 101, 140, 211, 214, 22, 235, 17, 91,\n\t\t46, 99, 181, 40, 117, 105, 8, 105, 172, 180, 145, 175, 102,\n\t\t141, 95, 11, 184, 90, 38, 214, 251, 210, 250, 165, 196, 117,\n\t\t149, 104, 223, 222, 220, 216, 61, 253, 61, 75, 114, 173, 228,\n\t\t110, 176, 13, 249, 136, 47, 187, 137, 104, 162, 190, 72, 95,\n\t\t92, 74, 147, 109, 124, 6, 44, 16, 193, 195, 173, 35, 115,\n\t\t217, 185, 203, 58, 48, 50, 249, 135, 12, 27, 34, 108, 188,\n\t\t68, 0, 121, 199, 236, 178, 1, 29, 223, 195, 132, 88, 156,\n\t\t204, 146, 217, 93, 246, 234, 174, 182, 214, 201, 23, 131,\n\t\t49, 36, 87, 58, 204, 151, 115, 114, 149, 118, 163, 143, 70,\n\t\t23, 141, 185, 185, 236, 86, 196, 50, 164, 214, 88, 47, 182,\n\t\t140, 174, 22, 215, 55, 44, 75, 49, 201, 81, 79, 19, 88, 38,\n\t\t149, 202, 90, 57, 60, 111, 151, 155, 32, 184, 22, 36, 103,\n\t\t147, 84, 27, 88, 210, 62, 237, 111, 162, 114, 140, 124, 184,\n\t\t72, 11, 188, 204, 4, 92, 69, 221, 178, 230, 230, 244, 33,\n\t\t128, 175, 42, 148, 52, 251, 115, 84, 8, 233, 56, 8, 43, 176,\n\t\t193, 191, 108, 136, 187, 124, 223, 141, 2, 246, 82, 59, 175,\n\t\t147, 197, 100, 147, 238, 5, 87, 59, 196, 178, 237, 30, 223,\n\t\t182, 160, 14, 203, 182, 109, 205, 219, 10, 49, 136, 169, 85,\n\t\t140, 217, 50, 190, 221, 244, 176, 91, 46, 23, 83, 126, 204,\n\t\t216, 180, 205, 33, 252, 182, 78, 246, 139, 205, 247, 114,\n\t\t235, 78, 99, 78, 172, 211, 126, 93, 156, 67, 172, 229, 77,\n\t\t172, 17, 36, 208, 229, 252, 103, 25, 61, 25, 205, 177, 63,\n\t\t108, 109, 49, 244, 170, 173, 45, 38, 154, 219, 186, 220, 135,\n\t\t116, 94, 215, 207, 94, 180, 219, 156, 90, 203, 217, 137, 118,\n\t\t235, 139, 160, 146, 153, 250, 38, 138, 220, 144, 69, 37, 90,\n\t\t215, 197, 186, 10, 49, 229, 186, 127, 125, 189, 233, 160,\n\t\t237, 150, 27, 74, 209, 42, 98, 224, 230, 155, 237, 231, 174,\n\t\t142, 162, 2, 17, 189, 115, 63, 5, 253, 235, 243, 167, 211,\n\t\t199, 197, 157, 126, 255, 124, 139, 239, 250, 156, 183, 19,\n\t\t209, 224, 9, 192, 252, 52, 231, 60, 134, 20, 72, 197, 112,\n\t\t251, 163, 146, 138, 72, 42, 147, 185, 122, 245, 255, 26, 188,\n\t\t85, 95, 215, 67, 64, 152, 171, 245, 104, 1, 192, 156, 230,\n\t\t220, 153, 74, 192, 30, 224, 165, 201, 43, 3, 205, 10, 122,\n\t\t167, 153, 176, 90, 60, 173, 145, 102, 138, 88, 166, 73, 107,\n\t\t139, 203, 182, 236, 242, 208, 119, 6, 130, 153, 30, 133, 104,\n\t\t25, 220, 39, 32, 3, 231, 229, 255, 99, 239, 77, 147, 28, 55,\n\t\t150, 108, 225, 255, 92, 5, 54, 16, 97, 49, 15, 246, 214, 144,\n\t\t139, 40, 161, 82, 98, 217, 133, 42, 245, 138, 37, 246, 189,\n\t\t185, 250, 207, 252, 184, 123, 0, 28, 18, 204, 154, 212, 221,\n\t\t207, 62, 147, 42, 73, 128, 64, 32, 16, 163, 143, 231, 4, 128,\n\t\t228, 225, 145, 76, 44, 195, 55, 235, 67, 131, 163, 95, 189,\n\t\t183, 108, 114, 230, 21, 11, 63, 206, 69, 50, 182, 75, 4, 31,\n\t\t31, 2, 250, 48, 245, 241, 226, 0, 56, 127, 79, 155, 223, 100,\n\t\t227, 60, 223, 130, 217, 251, 145, 216, 230, 170, 237, 83,\n\t\t138, 36, 44, 243, 112, 114, 3, 123, 109, 82, 112, 66, 211,\n\t\t241, 74, 122, 228, 67, 99, 180, 186, 188, 193, 71, 227, 97,\n\t\t218, 186, 38, 23, 175, 67, 46, 217, 178, 140, 180, 248, 16,\n\t\t155, 245, 206, 207, 152, 7, 236, 124, 88, 101, 106, 29, 128,\n\t\t10, 184, 24, 210, 56, 16, 64, 63, 185, 22, 110, 95, 169, 35,\n\t\t108, 65, 1, 190, 10, 8, 128, 250, 40, 121, 210, 97, 70, 100,\n\t\t26, 46, 205, 107, 189, 114, 80, 9, 112, 44, 100, 201, 22,\n\t\t142, 121, 228, 205, 66, 42, 1, 84, 216, 241, 238, 252, 234,\n\t\t81, 102, 27, 139, 156, 83, 202, 44, 17, 7, 201, 93, 78, 85,\n\t\t223, 157, 135, 16, 131, 185, 135, 89, 151, 111, 197, 164,\n\t\t244, 58, 98, 227, 216, 38, 220, 236, 215, 100, 203, 192, 123,\n\t\t140, 100, 101, 198, 110, 195, 196, 33, 112, 168, 1, 196, 7,\n\t\t89, 1, 146, 52, 198, 56, 150, 26, 184, 195, 236, 48, 189,\n\t\t193, 209, 199, 215, 12, 131, 151, 247, 197, 230, 9, 48, 191,\n\t\t30, 189, 15, 0, 198, 180, 86, 71, 241, 14, 70, 125, 203, 228,\n\t\t206, 252, 42, 65, 243, 172, 101, 10, 37, 185, 54, 8, 54, 95,\n\t\t106, 138, 68, 240, 250, 20, 67, 165, 22, 76, 213, 250, 217,\n\t\t248, 76, 15, 245, 1, 19, 210, 75, 42, 122, 116, 206, 194,\n\t\t87, 142, 74, 227, 8, 49, 18, 188, 145, 106, 140, 4, 202, 151,\n\t\t24, 137, 196, 17, 195, 122, 209, 186, 174, 110, 195, 15, 50,\n\t\t194, 15, 120, 31, 204, 218, 127, 240, 184, 242, 0, 217, 215,\n\t\t61, 255, 254, 252, 241, 197, 124, 88, 110, 124, 193, 207,\n\t\t31, 6, 131, 77, 206, 54, 167, 44, 152, 25, 197, 54, 7, 218,\n\t\t177, 4, 100, 216, 144, 154, 77, 0, 121, 6, 87, 83, 148, 19,\n\t\t24, 171, 205, 66, 128, 185, 8, 22, 166, 2, 152, 27, 142, 150,\n\t\t151, 136, 87, 168, 86, 166, 65, 27, 71, 51, 64, 111, 67, 102,\n\t\t37, 40, 208, 130, 143, 72, 68, 118, 63, 249, 2, 100, 174,\n\t\t9, 187, 68, 131, 27, 221, 131, 229, 43, 217, 226, 155, 199,\n\t\t118, 9, 182, 36, 48, 168, 20, 134, 12, 77, 13, 248, 181, 240,\n\t\t212, 209, 38, 220, 217, 141, 35, 159, 135, 57, 1, 243, 13,\n\t\t222, 104, 32, 123, 122, 15, 247, 83, 18, 242, 117, 224, 112,\n\t\t3, 8, 15, 112, 252, 105, 142, 142, 137, 63, 105, 237, 107,\n\t\t181, 246, 169, 116, 161, 23, 76, 222, 230, 156, 235, 228,\n\t\t105, 243, 140, 227, 120, 238, 209, 54, 15, 206, 42, 95, 0,\n\t\t144, 59, 193, 223, 228, 3, 142, 161, 187, 148, 66, 197, 99,\n\t\t137, 66, 208, 117, 207, 54, 149, 196, 241, 163, 0, 10, 243,\n\t\t149, 154, 158, 154, 160, 131, 167, 4, 159, 137, 195, 80, 217,\n\t\t211, 238, 108, 164, 23, 98, 164, 56, 250, 202, 122, 32, 19,\n\t\t224, 71, 139, 64, 225, 148, 1, 163, 6, 222, 70, 144, 146,\n\t\t120, 16, 16, 100, 161, 138, 162, 47, 193, 161, 41, 152, 28,\n\t\t35, 57, 142, 148, 24, 76, 39, 122, 230, 8, 176, 104, 151,\n\t\t251, 163, 88, 21, 185, 10, 226, 120, 164, 55, 11, 89, 64,\n\t\t214, 2, 59, 40, 245, 17, 26, 211, 17, 193, 163, 193, 184,\n\t\t213, 0, 239, 79, 137, 163, 156, 211, 128, 75, 78, 54, 119,\n\t\t118, 173, 130, 77, 140, 4, 138, 66, 135, 165, 165, 253, 49,\n\t\t255, 245, 203, 135, 211, 241, 238, 160, 191, 133, 141, 25,\n\t\t246, 22, 248, 232, 202, 57, 198, 114, 140, 45, 157, 77, 140,\n\t\t106, 190, 78, 156, 244, 237, 133, 227, 240, 158, 73, 63, 137,\n\t\t105, 93, 172, 250, 122, 29, 108, 244, 14, 97, 176, 103, 117,\n\t\t178, 54, 219, 224, 55, 173, 74, 206, 199, 114, 247, 138, 103,\n\t\t138, 179, 108, 13, 224, 91, 244, 14, 179, 249, 81, 2, 189,\n\t\t140, 6, 118, 105, 73, 136, 28, 3, 93, 218, 187, 30, 121, 248,\n\t\t105, 207, 244, 28, 45, 251, 142, 103, 254, 180, 71, 166, 24,\n\t\t224, 200, 211, 27, 215, 248, 214, 245, 238, 179, 137, 225,\n\t\t176, 173, 207, 117, 49, 19, 172, 50, 2, 158, 162, 229, 152,\n\t\t77, 21, 197, 48, 3, 79, 214, 245, 75, 13, 149, 201, 7, 183,\n\t\t40, 250, 169, 103, 184, 131, 153, 131, 189, 211, 84, 57, 214,\n\t\t131, 212, 135, 72, 171, 134, 110, 122, 222, 2, 116, 81, 142,\n\t\t143, 236, 200, 15, 46, 30, 189, 79, 54, 30, 7, 201, 6, 164,\n\t\t98, 230, 151, 241, 85, 50, 190, 179, 192, 147, 7, 111, 7,\n\t\t161, 27, 196, 134, 62, 108, 124, 92, 139, 3, 85, 109, 223,\n\t\t56, 249, 159, 207, 243, 189, 185, 242, 251, 240, 14, 70, 146,\n\t\t208, 195, 20, 193, 91, 8, 74, 129, 80, 60, 88, 18, 66, 13,\n\t\t25, 209, 121, 141, 186, 34, 219, 232, 193, 73, 130, 88, 38,\n\t\t156, 8, 205, 197, 153, 22, 183, 148, 17, 92, 49, 120, 5, 60,\n\t\t112, 241, 153, 82, 75, 66, 203, 160, 196, 9, 13, 65, 3, 93,\n\t\t162, 130, 104, 50, 21, 52, 204, 92, 1, 184, 138, 221, 122,\n\t\t225, 27, 245, 28, 4, 160, 103, 142, 156, 231, 18, 235, 76,\n\t\t58, 19, 71, 127, 9, 228, 101, 36, 85, 180, 185, 82, 88, 100,\n\t\t166, 111, 224, 171, 169, 185, 49, 9, 108, 44, 180, 164, 39,\n\t\t219, 177, 175, 103, 223, 224, 244, 6, 91, 109, 34, 129, 45,\n\t\t233, 241, 92, 10, 120, 244, 128, 35, 88, 184, 210, 200, 35,\n\t\t160, 222, 173, 222, 70, 145, 208, 104, 157, 226, 117, 46,\n\t\t1, 168, 9, 36, 58, 186, 8, 235, 39, 173, 139, 165, 215, 177,\n\t\t22, 235, 177, 46, 197, 103, 179, 174, 173, 143, 226, 20, 117,\n\t\t169, 214, 53, 216, 73, 222, 137, 91, 151, 227, 177, 194, 203,\n\t\t122, 252, 122, 160, 133, 207, 231, 112, 212, 187, 215, 155,\n\t\t245, 94, 163, 55, 95, 239, 14, 139, 185, 216, 95, 116, 96,\n\t\t0, 212, 183, 198, 52, 97, 96, 112, 188, 79, 4, 176, 45, 6,\n\t\t70, 225, 253, 137, 70, 6, 40, 10, 144, 89, 84, 29, 130, 34,\n\t\t48, 44, 60, 48, 244, 129, 151, 138, 65, 65, 187, 51, 141,\n\t\t137, 212, 103, 29, 19, 58, 36, 116, 68, 232, 128, 208, 241,\n\t\t160, 195, 1, 163, 33, 213, 3, 169, 225, 140, 222, 61, 233,\n\t\t96, 48, 58, 26, 116, 48, 24, 25, 13, 76, 9, 10, 178, 76, 84,\n\t\t24, 130, 25, 70, 132, 132, 191, 32, 170, 137, 199, 68, 30,\n\t\t103, 102, 179, 142, 10, 163, 195, 66, 71, 133, 209, 97, 161,\n\t\t163, 194, 232, 176, 208, 47, 224, 40, 90, 119, 103, 124, 25,\n\t\t67, 225, 98, 159, 6, 68, 169, 140, 141, 117, 104, 188, 21,\n\t\t39, 186, 63, 245, 191, 190, 252, 245, 95, 31, 190, 206, 55,\n\t\t177, 190, 191, 223, 128, 6, 109, 241, 69, 131, 134, 133, 243,\n\t\t108, 49, 93, 141, 0, 66, 210, 205, 127, 78, 248, 118, 241,\n\t\t27, 187, 224, 61, 99, 171, 178, 90, 210, 157, 69, 16, 254,\n\t\t20, 92, 182, 249, 76, 10, 51, 237, 170, 215, 254, 234, 173,\n\t\t187, 218, 135, 51, 178, 50, 244, 138, 141, 199, 155, 29, 222,\n\t\t254, 39, 64, 125, 82, 37, 206, 134, 170, 115, 152, 99, 5,\n\t\t202, 152, 24, 203, 54, 134, 100, 72, 253, 93, 237, 107, 137,\n\t\t17, 177, 23, 70, 129, 169, 54, 207, 162, 206, 12, 148, 51,\n\t\t209, 51, 199, 113, 157, 28, 8, 237, 88, 60, 110, 108, 167,\n\t\t79, 90, 156, 92, 165, 199, 122, 55, 224, 213, 23, 48, 141,\n\t\t177, 42, 10, 206, 144, 180, 24, 86, 225, 25, 126, 184, 0,\n\t\t199, 158, 230, 50, 235, 162, 81, 244, 196, 24, 45, 47, 216,\n\t\t40, 138, 143, 72, 106, 244, 175, 79, 1, 52, 26, 237, 236,\n\t\t179, 183, 136, 152, 220, 11, 41, 72, 239, 8, 80, 65, 65, 219,\n\t\t118, 190, 236, 68, 180, 114, 186, 234, 169, 139, 190, 124,\n\t\t204, 123, 247, 242, 247, 215, 187, 91, 215, 106, 152, 161,\n\t\t201, 82, 243, 98, 64, 223, 232, 11, 230, 217, 132, 127, 236,\n\t\t37, 224, 47, 190, 158, 123, 161, 5, 84, 162, 198, 165, 157,\n\t\t69, 206, 85, 141, 44, 164, 115, 215, 152, 108, 12, 94, 249,\n\t\t109, 196, 100, 251, 88, 248, 138, 32, 166, 218, 32, 65, 38,\n\t\t16, 84, 38, 95, 151, 81, 13, 181, 249, 232, 126, 221, 135,\n\t\t173, 64, 236, 182, 147, 137, 137, 161, 88, 216, 255, 189,\n\t\t63, 88, 91, 58, 204, 38, 67, 116, 33, 53, 54, 226, 163, 151,\n\t\t179, 239, 1, 249, 147, 116, 74, 179, 38, 143, 45, 253, 132,\n\t\t233, 209, 110, 136, 9, 174, 193, 254, 207, 134, 159, 62, 46,\n\t\t187, 100, 46, 0, 23, 192, 59, 170, 242, 120, 20, 124, 250,\n\t\t124, 119, 16, 148, 109, 68, 138, 227, 26, 255, 192, 170, 210,\n\t\t210, 188, 190, 239, 134, 135, 129, 105, 24, 248, 85, 111,\n\t\t120, 15, 248, 53, 167, 24, 126, 198, 227, 209, 191, 72, 121,\n\t\t141, 35, 219, 85, 154, 56, 35, 125, 20, 189, 46, 255, 104,\n\t\t99, 47, 136, 219, 123, 223, 88, 251, 111, 152, 34, 121, 10,\n\t\t101, 76, 141, 221, 110, 254, 242, 124, 223, 136, 241, 123,\n\t\t95, 141, 24, 5, 102, 137, 68, 43, 138, 242, 197, 57, 142,\n\t\t76, 245, 19, 83, 70, 194, 58, 111, 3, 208, 228, 43, 72, 167,\n\t\t246, 197, 52, 82, 145, 183, 98, 26, 131, 126, 175, 98, 218,\n\t\t86, 99, 254, 197, 98, 154, 40, 242, 248, 123, 152, 77, 36,\n\t\t85, 56, 70, 132, 31, 195, 252, 167, 198, 246, 148, 108, 119,\n\t\t32, 223, 21, 83, 128, 88, 2, 102, 211, 105, 7, 104, 105, 114,\n\t\t182, 118, 196, 126, 27, 152, 26, 26, 3, 217, 247, 138, 152,\n\t\t85, 49, 58, 24, 181, 58, 56, 11, 13, 36, 32, 52, 24, 134,\n\t\t150, 58, 50, 65, 216, 148, 49, 76, 27, 122, 98, 6, 91, 60,\n\t\t210, 88, 187, 242, 232, 34, 192, 149, 205, 37, 84, 37, 49,\n\t\t151, 36, 91, 83, 68, 24, 176, 196, 150, 51, 86, 253, 196,\n\t\t70, 159, 97, 144, 49, 106, 145, 57, 12, 155, 142, 145, 47,\n\t\t51, 244, 12, 7, 9, 137, 191, 36, 0, 174, 195, 184, 107, 27,\n\t\t18, 78, 134, 97, 200, 136, 101, 104, 54, 41, 10, 39, 90, 236,\n\t\t182, 6, 176, 76, 186, 96, 3, 245, 147, 88, 156, 38, 49, 65,\n\t\t213, 113, 102, 22, 203, 22, 115, 110, 195, 136, 197, 81, 178,\n\t\t46, 198, 73, 64, 99, 197, 178, 181, 181, 135, 169, 61, 13,\n\t\t132, 65, 169, 192, 122, 22, 82, 29, 86, 52, 49, 162, 61, 72,\n\t\t230, 120, 185, 25, 247, 207, 99, 109, 203, 222, 38, 240, 5,\n\t\t59, 151, 230, 168, 43, 108, 182, 121, 42, 98, 211, 55, 113,\n\t\t243, 189, 178, 19, 4, 209, 82, 138, 92, 23, 213, 189, 83,\n\t\t199, 191, 163, 137, 180, 16, 232, 37, 14, 231, 183, 215, 213,\n\t\t192, 185, 24, 98, 130, 228, 199, 150, 44, 46, 63, 121, 154,\n\t\t62, 140, 154, 158, 151, 131, 33, 13, 10, 134, 110, 84, 34,\n\t\t22, 61, 145, 25, 24, 144, 10, 151, 103, 235, 83, 171, 252,\n\t\t127, 20, 182, 17, 206, 201, 138, 146, 6, 45, 43, 144, 248,\n\t\t62, 212, 37, 49, 78, 32, 172, 83, 177, 12, 47, 224, 9, 167,\n\t\t146, 142, 12, 241, 22, 120, 105, 231, 236, 121, 220, 174,\n\t\t16, 111, 94, 121, 83, 196, 219, 22, 53, 244, 68, 77, 223,\n\t\t169, 64, 218, 99, 234, 159, 225, 127, 232, 114, 130, 86, 58,\n\t\t189, 146, 68, 162, 219, 117, 156, 133, 105, 93, 150, 245,\n\t\t211, 139, 253, 125, 101, 209, 11, 71, 165, 33, 155, 87, 96,\n\t\t198, 45, 46, 35, 7, 83, 207, 27, 212, 81, 163, 8, 141, 177,\n\t\t104, 185, 234, 32, 74, 77, 219, 114, 94, 59, 154, 19, 213,\n\t\t70, 147, 155, 202, 177, 191, 227, 141, 181, 150, 18, 141,\n\t\t206, 163, 74, 122, 77, 228, 149, 30, 30, 137, 6, 167, 91,\n\t\t81, 224, 116, 189, 165, 158, 110, 55, 81, 218, 211, 72, 168,\n\t\t156, 114, 156, 195, 224, 179, 10, 240, 96, 137, 235, 198,\n\t\t251, 35, 2, 247, 211, 172, 2, 187, 27, 152, 146, 195, 89,\n\t\t170, 110, 30, 239, 103, 239, 224, 119, 17, 71, 67, 102, 60,\n\t\t97, 100, 105, 224, 203, 169, 229, 73, 141, 238, 56, 151, 163,\n\t\t36, 174, 134, 182, 35, 14, 220, 169, 251, 233, 157, 237, 176,\n\t\t143, 241, 250, 231, 135, 63, 158, 175, 29, 99, 209, 237, 64,\n\t\t188, 38, 26, 206, 225, 252, 46, 234, 154, 216, 30, 197, 226,\n\t\t134, 188, 27, 139, 235, 1, 191, 1, 159, 218, 117, 90, 34,\n\t\t199, 88, 211, 199, 49, 198, 242, 250, 148, 107, 209, 220,\n\t\t220, 159, 80, 169, 195, 94, 173, 168, 132, 189, 8, 225, 179,\n\t\t9, 185, 176, 254, 19, 65, 220, 126, 83, 161, 116, 3, 123,\n\t\t179, 173, 231, 233, 178, 62, 56, 149, 174, 234, 241, 250,\n\t\t228, 11, 178, 217, 17, 164, 24, 115, 56, 123, 31, 64, 202,\n\t\t158, 125, 172, 19, 62, 83, 25, 100, 228, 55, 28, 230, 23,\n\t\t124, 236, 160, 34, 7, 149, 102, 182, 25, 178, 26, 127, 89,\n\t\t224, 242, 165, 242, 240, 249, 109, 229, 237, 111, 65, 207,\n\t\t159, 231, 79, 203, 29, 9, 44, 186, 184, 81, 181, 108, 159,\n\t\t162, 203, 182, 47, 38, 9, 95, 156, 126, 153, 205, 170, 214,\n\t\t94, 170, 179, 235, 9, 73, 212, 244, 180, 89, 142, 235, 175,\n\t\t110, 91, 149, 96, 95, 23, 125, 136, 62, 195, 55, 137, 101,\n\t\t144, 207, 212, 71, 144, 7, 142, 75, 101, 105, 201, 45, 197,\n\t\t73, 245, 228, 203, 236, 7, 179, 159, 44, 151, 227, 132, 22,\n\t\t194, 24, 208, 116, 255, 235, 83, 104, 201, 134, 41, 210, 94,\n\t\t126, 152, 47, 43, 186, 234, 248, 124, 40, 56, 183, 110, 1,\n\t\t184, 60, 189, 217, 213, 27, 189, 165, 222, 151, 96, 105, 159,\n\t\t164, 15, 208, 222, 114, 178, 64, 24, 206, 123, 101, 6, 27,\n\t\t81, 70, 26, 217, 226, 245, 7, 89, 229, 228, 115, 9, 30, 46,\n\t\t84, 38, 138, 122, 125, 18, 135, 176, 107, 214, 207, 188, 216,\n\t\t89, 16, 122, 115, 80, 36, 14, 58, 203, 148, 110, 241, 57,\n\t\t77, 62, 167, 3, 46, 212, 127, 122, 173, 211, 11, 177, 232,\n\t\t225, 20, 147, 236, 141, 219, 13, 221, 79, 127, 102, 51, 158,\n\t\t100, 148, 136, 79, 202, 208, 203, 95, 159, 26, 137, 82, 103,\n\t\t76, 125, 222, 177, 214, 80, 70, 83, 146, 205, 75, 84, 230,\n\t\t53, 249, 178, 20, 184, 245, 249, 154, 179, 220, 116, 52, 233,\n\t\t65, 138, 236, 13, 219, 87, 116, 105, 104, 19, 157, 4, 247,\n\t\t41, 230, 100, 193, 131, 222, 44, 119, 17, 125, 46, 38, 84,\n\t\t146, 244, 38, 249, 92, 96, 6, 243, 9, 93, 72, 219, 33, 76,\n\t\t121, 1, 20, 81, 76, 54, 205, 233, 122, 30, 140, 233, 30, 201,\n\t\t109, 226, 86, 34, 197, 136, 215, 154, 197, 107, 140, 11, 237,\n\t\t8, 225, 149, 103, 83, 154, 98, 141, 182, 5, 12, 79, 70, 11,\n\t\t174, 96, 207, 130, 205, 21, 54, 206, 36, 3, 179, 123, 144,\n\t\t204, 145, 8, 142, 254, 43, 72, 249, 92, 164, 206, 147, 84,\n\t\t93, 78, 79, 242, 121, 152, 183, 37, 82, 129, 69, 134, 126,\n\t\t158, 164, 204, 199, 11, 195, 221, 85, 33, 95, 172, 10, 242,\n\t\t30, 241, 226, 61, 104, 179, 94, 223, 164, 176, 172, 240, 93,\n\t\t111, 146, 93, 123, 215, 139, 60, 133, 236, 169, 163, 98, 79,\n\t\t54, 150, 165, 37, 209, 181, 228, 203, 2, 246, 89, 234, 28,\n\t\t249, 178, 24, 223, 11, 115, 98, 227, 243, 48, 211, 182, 38,\n\t\t204, 196, 73, 25, 75, 99, 176, 17, 104, 77, 197, 54, 48, 242,\n\t\t250, 158, 109, 76, 48, 139, 86, 158, 171, 223, 62, 28, 156,\n\t\t117, 72, 76, 5, 1, 101, 232, 169, 135, 185, 50, 212, 211,\n\t\t84, 130, 237, 190, 117, 172, 110, 160, 190, 205, 14, 166,\n\t\t101, 122, 28, 61, 133, 30, 239, 218, 2, 235, 27, 253, 74,\n\t\t218, 214, 194, 92, 249, 29, 212, 124, 37, 96, 65, 129, 217,\n\t\t122, 226, 79, 79, 239, 86, 44, 39, 43, 7, 206, 84, 142, 72,\n\t\t79, 231, 67, 189, 219, 93, 21, 212, 187, 220, 86, 108, 72,\n\t\t142, 147, 149, 3, 66, 108, 128, 179, 229, 198, 227, 60, 245,\n\t\t69, 3, 201, 104, 237, 164, 92, 23, 81, 174, 241, 73, 74, 110,\n\t\t236, 121, 28, 163, 83, 105, 213, 220, 29, 123, 203, 203, 231,\n\t\t63, 204, 135, 47, 95, 94, 254, 139, 134, 160, 249, 248, 242,\n\t\t95, 183, 51, 122, 15, 102, 180, 52, 230, 213, 205, 253, 152,\n\t\t138, 117, 185, 150, 55, 125, 31, 254, 158, 239, 163, 209,\n\t\t77, 180, 14, 225, 11, 51, 199, 11, 239, 23, 125, 137, 142,\n\t\t185, 186, 115, 169, 105, 115, 38, 70, 134, 166, 114, 107,\n\t\t1, 227, 254, 173, 111, 8, 76, 219, 215, 214, 134, 43, 171,\n\t\t0, 215, 187, 149, 115, 116, 30, 249, 218, 110, 42, 182, 4,\n\t\t26, 195, 89, 158, 55, 236, 71, 36, 36, 233, 143, 106, 106,\n\t\t27, 151, 192, 212, 38, 133, 124, 75, 155, 47, 207, 191, 223,\n\t\t206, 253, 27, 244, 201, 213, 119, 32, 166, 143, 201, 231,\n\t\t112, 54, 218, 232, 156, 131, 128, 118, 31, 173, 61, 12, 34,\n\t\t55, 161, 9, 139, 54, 247, 36, 205, 55, 143, 182, 189, 105,\n\t\t126, 109, 125, 134, 16, 75, 46, 45, 215, 247, 126, 187, 153,\n\t\t71, 154, 252, 168, 77, 190, 223, 166, 44, 154, 26, 189, 104,\n\t\t252, 126, 97, 74, 253, 142, 134, 255, 242, 233, 143, 227,\n\t\t109, 203, 223, 192, 19, 110, 162, 27, 60, 50, 250, 167, 16,\n\t\t195, 121, 109, 248, 139, 96, 13, 255, 70, 176, 134, 175, 163,\n\t\t217, 116, 200, 206, 99, 56, 107, 155, 223, 140, 120, 55, 134,\n\t\t250, 218, 99, 227, 246, 17, 129, 114, 233, 236, 170, 238,\n\t\t218, 217, 181, 169, 196, 89, 91, 94, 219, 107, 54, 107, 219,\n\t\t179, 57, 117, 109, 91, 31, 206, 220, 244, 111, 206, 135, 239,\n\t\t104, 244, 191, 175, 179, 30, 163, 187, 201, 223, 89, 215,\n\t\t23, 146, 99, 26, 158, 113, 28, 67, 253, 77, 147, 159, 191,\n\t\t99, 242, 187, 94, 30, 174, 155, 90, 91, 90, 143, 215, 149,\n\t\t229, 102, 101, 250, 174, 200, 31, 93, 92, 204, 186, 186, 60,\n\t\t24, 200, 136, 84, 219, 237, 148, 247, 180, 250, 243, 191,\n\t\t255, 250, 240, 249, 35, 183, 251, 233, 158, 116, 225, 119,\n\t\t96, 76, 0, 186, 229, 210, 217, 120, 154, 126, 206, 186, 226,\n\t\t114, 42, 195, 42, 11, 151, 171, 119, 12, 222, 128, 16, 186,\n\t\t136, 237, 247, 234, 203, 113, 189, 243, 72, 37, 73, 199, 137,\n\t\t173, 60, 88, 215, 122, 27, 206, 29, 210, 92, 146, 95, 36,\n\t\t246, 124, 90, 211, 99, 92, 181, 97, 194, 95, 57, 0, 69, 42,\n\t\t200, 19, 112, 53, 239, 7, 28, 146, 73, 93, 228, 216, 213,\n\t\t172, 54, 37, 60, 80, 172, 240, 232, 24, 143, 186, 108, 234,\n\t\t38, 176, 68, 244, 82, 110, 125, 137, 155, 215, 147, 207, 243,\n\t\t184, 239, 204, 154, 247, 198, 75, 213, 232, 221, 20, 163,\n\t\t146, 93, 85, 177, 40, 72, 166, 6, 213, 211, 43, 212, 139,\n\t\t23, 106, 56, 138, 139, 1, 149, 102, 175, 195, 202, 52, 143,\n\t\t215, 88, 191, 176, 55, 65, 19, 217, 224, 81, 160, 78, 218,\n\t\t246, 145, 190, 141, 190, 194, 213, 27, 232, 231, 225, 184,\n\t\t118, 15, 189, 202, 218, 57, 218, 55, 70, 59, 135, 27, 110,\n\t\t209, 151, 184, 122, 27, 238, 15, 57, 136, 147, 118, 142, 209,\n\t\t222, 209, 206, 49, 218, 59, 235, 203, 72, 239, 224, 61, 166,\n\t\t228, 169, 30, 107, 173, 230, 181, 91, 198, 208, 186, 126,\n\t\t39, 237, 158, 205, 40, 197, 168, 61, 200, 134, 40, 90, 156,\n\t\t244, 205, 10, 32, 202, 195, 129, 155, 156, 250, 231, 114,\n\t\t188, 213, 139, 87, 106, 50, 224, 22, 237, 31, 185, 120, 30,\n\t\t230, 200, 204, 74, 33, 82, 114, 240, 54, 88, 8, 156, 219,\n\t\t15, 28, 152, 151, 79, 127, 253, 246, 114, 203, 54, 20, 195,\n\t\t13, 99, 194, 134, 29, 171, 165, 41, 198, 114, 1, 176, 176,\n\t\t147, 24, 174, 201, 242, 111, 218, 125, 86, 176, 133, 187,\n\t\t102, 31, 38, 231, 200, 54, 116, 24, 124, 253, 13, 190, 46,\n\t\t159, 50, 37, 209, 165, 251, 41, 228, 158, 154, 200, 221, 0,\n\t\t118, 93, 251, 119, 78, 151, 81, 145, 244, 113, 56, 109, 130,\n\t\t37, 113, 246, 116, 133, 148, 54, 5, 97, 107, 12, 61, 157,\n\t\t97, 127, 186, 73, 99, 70, 22, 51, 82, 87, 221, 85, 238, 234,\n\t\t101, 166, 243, 217, 224, 126, 115, 157, 161, 74, 119, 79,\n\t\t72, 111, 118, 23, 249, 205, 155, 12, 214, 221, 238, 94, 151,\n\t\t98, 115, 29, 42, 18, 99, 93, 195, 196, 42, 139, 24, 181, 221,\n\t\t139, 5, 125, 75, 188, 112, 143, 196, 11, 21, 237, 254, 41,\n\t\t241, 34, 164, 104, 91, 139, 67, 64, 61, 252, 92, 9, 245, 226,\n\t\t189, 126, 165, 132, 170, 239, 33, 199, 239, 237, 225, 243,\n\t\t77, 15, 239, 176, 160, 4, 207, 2, 125, 117, 86, 3, 78, 118,\n\t\t21, 40, 247, 88, 129, 186, 104, 159, 127, 74, 129, 146, 182,\n\t\t58, 174, 125, 254, 195, 162, 218, 182, 191, 255, 49, 81, 77,\n\t\t223, 227, 221, 125, 142, 46, 103, 142, 205, 187, 26, 116,\n\t\t110, 3, 106, 5, 60, 116, 28, 208, 17, 235, 244, 93, 44, 154,\n\t\t167, 27, 54, 206, 215, 167, 224, 195, 20, 93, 163, 189, 175,\n\t\t28, 205, 234, 50, 148, 196, 52, 134, 1, 20, 81, 34, 2, 196,\n\t\t136, 179, 143, 22, 137, 62, 67, 180, 236, 181, 85, 117, 112,\n\t\t118, 173, 41, 64, 156, 73, 178, 112, 72, 95, 159, 248, 182,\n\t\t42, 121, 243, 85, 19, 65, 70, 74, 76, 230, 71, 209, 183, 195,\n\t\t81, 147, 58, 207, 30, 126, 148, 189, 200, 168, 114, 19, 230,\n\t\t113, 29, 63, 243, 109, 157, 114, 79, 197, 206, 219, 176, 135,\n\t\t201, 100, 132, 100, 84, 222, 148, 190, 181, 3, 238, 209, 161,\n\t\t190, 62, 197, 26, 166, 16, 105, 203, 241, 229, 188, 250, 140,\n\t\t55, 41, 221, 107, 30, 21, 26, 171, 217, 204, 134, 208, 40,\n\t\t97, 129, 183, 22, 255, 173, 165, 91, 92, 131, 210, 45, 203,\n\t\t230, 198, 214, 251, 97, 214, 238, 48, 218, 63, 220, 33, 219,\n\t\t222, 105, 54, 159, 165, 87, 142, 212, 43, 111, 135, 145, 157,\n\t\t203, 62, 64, 206, 183, 245, 199, 93, 205, 59, 127, 216, 118,\n\t\t200, 47, 32, 159, 245, 201, 77, 62, 225, 77, 207, 91, 31,\n\t\t254, 72, 223, 140, 235, 52, 25, 131, 87, 154, 149, 187, 227,\n\t\t210, 221, 112, 53, 77, 156, 78, 16, 237, 67, 239, 145, 172,\n\t\t205, 77, 54, 122, 3, 37, 143, 68, 203, 241, 156, 195, 168,\n\t\t18, 198, 203, 163, 241, 127, 22, 15, 245, 219, 97, 129, 223,\n\t\t214, 35, 183, 106, 121, 30, 96, 68, 77, 150, 44, 234, 142,\n\t\t239, 154, 10, 183, 157, 243, 250, 20, 157, 155, 106, 161,\n\t\t181, 224, 168, 93, 177, 174, 86, 35, 197, 46, 78, 186, 126,\n\t\t44, 18, 40, 203, 75, 206, 61, 199, 207, 197, 241, 88, 170,\n\t\t140, 135, 115, 143, 239, 218, 76, 9, 237, 141, 139, 142, 24,\n\t\t235, 226, 65, 43, 133, 21, 245, 65, 252, 101, 73, 223, 27,\n\t\t127, 249, 252, 239, 175, 207, 95, 62, 127, 88, 204, 242, 233,\n\t\t243, 191, 238, 105, 233, 249, 38, 215, 102, 67, 60, 90, 203,\n\t\t148, 0, 18, 28, 170, 237, 192, 67, 131, 204, 141, 232, 85,\n\t\t82, 221, 132, 40, 161, 146, 158, 116, 185, 239, 145, 224,\n\t\t16, 179, 165, 19, 248, 232, 11, 54, 189, 28, 16, 134, 67,\n\t\t95, 194, 55, 203, 17, 176, 82, 87, 54, 86, 215, 71, 210, 90,\n\t\t219, 74, 107, 252, 68, 206, 16, 200, 33, 75, 213, 162, 231,\n\t\t186, 101, 127, 96, 213, 177, 186, 56, 233, 39, 169, 142, 189,\n\t\t164, 27, 35, 219, 144, 73, 208, 38, 181, 236, 194, 43, 191,\n\t\t62, 37, 87, 173, 11, 125, 242, 181, 218, 224, 202, 124, 45,\n\t\t250, 108, 229, 196, 224, 253, 165, 156, 88, 122, 61, 3, 21,\n\t\t49, 196, 247, 196, 5, 228, 240, 88, 21, 219, 117, 193, 135,\n\t\t46, 162, 161, 235, 170, 164, 183, 126, 153, 87, 192, 129,\n\t\t238, 42, 26, 178, 144, 69, 202, 78, 171, 29, 40, 208, 250,\n\t\t197, 107, 198, 11, 94, 63, 142, 247, 209, 19, 71, 19, 74,\n\t\t58, 155, 24, 220, 49, 6, 119, 246, 41, 217, 16, 97, 251, 208,\n\t\t160, 172, 217, 209, 48, 111, 53, 78, 209, 250, 132, 0, 157,\n\t\t200, 218, 189, 20, 41, 37, 126, 195, 240, 63, 253, 223, 191,\n\t\t63, 124, 121, 190, 55, 11, 138, 219, 183, 85, 197, 210, 222,\n\t\t169, 16, 191, 171, 23, 118, 227, 32, 114, 120, 160, 230, 198,\n\t\t66, 26, 115, 56, 34, 121, 179, 87, 207, 66, 176, 143, 121,\n\t\t152, 189, 28, 179, 159, 182, 34, 27, 206, 165, 75, 132, 166,\n\t\t108, 75, 137, 231, 110, 171, 113, 129, 47, 44, 195, 40, 193,\n\t\t95, 14, 179, 185, 64, 126, 190, 252, 130, 232, 132, 120, 1,\n\t\t253, 28, 189, 116, 179, 124, 153, 37, 162, 97, 220, 116, 3,\n\t\t251, 236, 7, 234, 51, 63, 179, 76, 242, 201, 213, 107, 81,\n\t\t56, 88, 60, 91, 65, 16, 1, 137, 47, 37, 77, 91, 45, 177, 166,\n\t\t226, 175, 231, 232, 153, 27, 102, 155, 112, 113, 71, 155,\n\t\t223, 31, 55, 243, 241, 195, 231, 63, 238, 143, 149, 1, 107,\n\t\t232, 166, 208, 220, 3, 0, 240, 88, 156, 160, 21, 122, 27,\n\t\t11, 201, 107, 66, 10, 66, 29, 149, 194, 173, 146, 141, 232,\n\t\t155, 249, 198, 73, 50, 78, 172, 171, 219, 70, 181, 230, 155,\n\t\t208, 64, 62, 137, 53, 207, 135, 122, 169, 80, 55, 166, 175,\n\t\t217, 60, 144, 22, 24, 118, 225, 187, 253, 204, 209, 87, 70,\n\t\t147, 15, 237, 240, 19, 224, 228, 169, 73, 76, 106, 186, 155,\n\t\t0, 161, 154, 118, 147, 20, 101, 76, 246, 234, 175, 246, 147,\n\t\t210, 235, 194, 177, 73, 243, 133, 47, 99, 52, 17, 125, 185,\n\t\t163, 165, 227, 14, 90, 107, 93, 67, 146, 189, 119, 61, 109,\n\t\t214, 92, 206, 82, 186, 222, 185, 56, 248, 167, 236, 187, 53,\n\t\t231, 229, 229, 239, 143, 208, 197, 150, 151, 15, 31, 239,\n\t\t141, 147, 118, 67, 65, 95, 146, 211, 157, 53, 86, 91, 38,\n\t\t48, 18, 205, 185, 173, 65, 123, 12, 197, 225, 144, 175, 94,\n\t\t34, 152, 98, 56, 119, 61, 100, 139, 237, 183, 106, 20, 119,\n\t\t150, 88, 205, 75, 162, 40, 9, 8, 173, 157, 209, 43, 125, 74,\n\t\t83, 97, 112, 139, 148, 36, 29, 72, 65, 88, 146, 0, 32, 120,\n\t\t95, 108, 152, 186, 194, 193, 196, 108, 1, 161, 235, 145, 154,\n\t\t178, 226, 12, 225, 106, 207, 46, 26, 6, 93, 26, 103, 26, 68,\n\t\t41, 63, 187, 169, 201, 171, 84, 73, 186, 65, 52, 21, 255,\n\t\t59, 204, 185, 143, 160, 32, 239, 215, 232, 69, 31, 155, 69,\n\t\t224, 217, 48, 121, 242, 105, 169, 94, 140, 90, 20, 31, 103,\n\t\t13, 89, 23, 19, 233, 27, 81, 154, 170, 88, 142, 40, 77, 69,\n\t\t50, 41, 42, 93, 69, 14, 171, 167, 45, 58, 217, 10, 232, 242,\n\t\t58, 123, 161, 173, 215, 207, 32, 177, 161, 97, 180, 182, 196,\n\t\t184, 200, 137, 163, 145, 96, 90, 177, 213, 95, 65, 138, 141,\n\t\t212, 216, 195, 145, 6, 252, 46, 239, 255, 153, 189, 6, 82,\n\t\t222, 140, 52, 55, 209, 172, 21, 231, 0, 1, 186, 124, 203,\n\t\t136, 66, 229, 122, 44, 222, 101, 140, 19, 250, 184, 70, 234,\n\t\t185, 6, 72, 27, 160, 67, 239, 24, 224, 127, 255, 245, 230,\n\t\t240, 190, 9, 103, 252, 255, 135, 247, 255, 196, 225, 29, 123,\n\t\t180, 137, 170, 56, 175, 35, 74, 7, 148, 142, 167, 171, 81,\n\t\t189, 240, 56, 154, 240, 151, 67, 78, 220, 37, 226, 211, 22,\n\t\t195, 234, 2, 205, 110, 59, 12, 141, 206, 162, 245, 75, 28,\n\t\t35, 118, 186, 30, 194, 71, 157, 73, 102, 144, 193, 112, 38,\n\t\t223, 58, 75, 36, 13, 60, 181, 11, 220, 171, 45, 46, 22, 77,\n\t\t67, 45, 104, 119, 116, 255, 241, 252, 231, 245, 128, 254,\n\t\t144, 247, 226, 115, 51, 72, 232, 219, 210, 29, 99, 5, 185,\n\t\t35, 98, 114, 252, 98, 74, 215, 10, 184, 99, 229, 24, 230,\n\t\t215, 167, 152, 171, 220, 160, 63, 243, 61, 161, 86, 155, 150,\n\t\t237, 45, 62, 246, 215, 39, 148, 154, 82, 211, 2, 214, 82,\n\t\t55, 143, 122, 37, 129, 35, 151, 163, 119, 206, 214, 197, 67,\n\t\t149, 202, 222, 2, 188, 156, 68, 111, 167, 10, 167, 76, 33,\n\t\t89, 187, 12, 126, 12, 168, 150, 79, 205, 6, 20, 18, 106, 183,\n\t\t101, 97, 27, 97, 244, 8, 145, 52, 184, 121, 32, 243, 229,\n\t\t205, 17, 189, 189, 3, 149, 142, 141, 130, 10, 135, 10, 224,\n\t\t249, 82, 33, 19, 60, 134, 122, 200, 176, 43, 141, 161, 169,\n\t\t83, 12, 224, 200, 58, 241, 76, 158, 24, 248, 101, 223, 179,\n\t\t255, 124, 126, 94, 176, 201, 222, 91, 129, 126, 187, 113,\n\t\t48, 199, 224, 54, 129, 20, 57, 199, 41, 103, 91, 74, 235,\n\t\t52, 50, 35, 242, 66, 104, 116, 89, 199, 148, 118, 137, 57,\n\t\t33, 104, 46, 2, 227, 34, 100, 91, 106, 102, 215, 51, 7, 124,\n\t\t197, 12, 36, 127, 30, 218, 209, 246, 154, 167, 113, 63, 104,\n\t\t223, 138, 31, 216, 61, 38, 50, 238, 60, 45, 61, 64, 157, 247,\n\t\t213, 230, 86, 186, 30, 31, 11, 39, 180, 156, 67, 13, 71, 211,\n\t\t80, 90, 57, 110, 185, 1, 169, 235, 144, 107, 195, 214, 128,\n\t\t4, 55, 177, 205, 53, 35, 63, 32, 181, 152, 166, 136, 136,\n\t\t225, 188, 152, 92, 38, 248, 241, 43, 18, 126, 242, 84, 109,\n\t\t206, 29, 116, 150, 84, 43, 7, 147, 70, 106, 57, 77, 77, 94,\n\t\t83, 142, 143, 36, 102, 63, 210, 91, 73, 49, 107, 168, 111,\n\t\t201, 109, 14, 142, 145, 85, 220, 20, 189, 88, 214, 67, 98,\n\t\t218, 31, 125, 69, 35, 239, 248, 142, 222, 252, 251, 175, 187,\n\t\t125, 249, 251, 227, 190, 140, 161, 209, 67, 104, 29, 11, 69,\n\t\t164, 92, 176, 16, 209, 232, 102, 86, 64, 105, 121, 115, 93,\n\t\t175, 163, 145, 151, 193, 155, 61, 22, 81, 181, 145, 216, 114,\n\t\t199, 168, 62, 190, 88, 151, 50, 192, 108, 0, 137, 99, 174,\n\t\t90, 118, 65, 151, 204, 222, 246, 216, 19, 117, 28, 127, 102,\n\t\t91, 17, 115, 39, 61, 55, 93, 118, 228, 113, 237, 254, 163,\n\t\t12, 9, 26, 31, 7, 174, 112, 77, 101, 54, 193, 217, 94, 34,\n\t\t228, 242, 232, 65, 78, 17, 178, 117, 204, 46, 114, 57, 194,\n\t\t150, 235, 49, 218, 37, 157, 94, 199, 51, 13, 240, 214, 248,\n\t\t152, 70, 252, 24, 222, 15, 226, 107, 230, 127, 153, 151, 59,\n\t\t145, 184, 243, 141, 132, 187, 89, 49, 67, 228, 37, 109, 70,\n\t\t54, 91, 224, 92, 27, 159, 131, 5, 234, 130, 126, 67, 136,\n\t\t25, 179, 115, 237, 195, 43, 197, 240, 32, 161, 145, 29, 201,\n\t\t93, 246, 193, 40, 171, 96, 13, 34, 125, 212, 113, 2, 249,\n\t\t82, 156, 16, 227, 120, 183, 244, 107, 174, 53, 233, 84, 252,\n\t\t101, 156, 169, 65, 236, 116, 149, 3, 153, 105, 255, 185, 143,\n\t\t244, 142, 60, 207, 195, 188, 131, 45, 63, 172, 3, 211, 45,\n\t\t182, 60, 155, 64, 239, 97, 203, 135, 116, 174, 14, 73, 218,\n\t\t45, 77, 165, 34, 79, 41, 218, 192, 81, 163, 248, 190, 15,\n\t\t213, 246, 231, 135, 191, 204, 159, 31, 190, 252, 235, 249,\n\t\t203, 189, 169, 55, 223, 236, 123, 107, 48, 128, 175, 193,\n\t\t134, 194, 248, 31, 165, 128, 247, 40, 209, 114, 71, 53, 119,\n\t\t182, 192, 74, 41, 151, 4, 146, 120, 24, 68, 129, 79, 68, 215,\n\t\t45, 8, 63, 188, 43, 150, 100, 146, 150, 45, 18, 223, 37, 251,\n\t\t136, 254, 157, 232, 211, 108, 127, 208, 84, 89, 96, 78, 68,\n\t\t134, 236, 96, 195, 81, 239, 99, 212, 75, 165, 228, 9, 166,\n\t\t43, 99, 134, 143, 32, 155, 65, 182, 61, 88, 58, 249, 12, 244,\n\t\t202, 206, 16, 78, 78, 178, 159, 42, 146, 201, 124, 11, 101,\n\t\t165, 98, 245, 53, 113, 50, 217, 225, 100, 54, 199, 172, 120,\n\t\t158, 160, 101, 235, 105, 81, 185, 79, 219, 99, 62, 181, 223,\n\t\t19, 159, 230, 47, 47, 127, 29, 95, 62, 223, 181, 44, 220,\n\t\t210, 237, 199, 28, 116, 17, 140, 133, 246, 109, 160, 232,\n\t\t32, 65, 116, 160, 232, 184, 33, 25, 169, 86, 221, 20, 14,\n\t\t175, 20, 11, 102, 148, 18, 108, 170, 152, 108, 76, 147, 18,\n\t\t226, 25, 8, 148, 165, 231, 227, 195, 50, 253, 224, 70, 164,\n\t\t107, 198, 207, 23, 192, 60, 36, 94, 154, 181, 24, 5, 230,\n\t\t113, 67, 1, 98, 43, 137, 94, 177, 121, 4, 3, 243, 228, 114,\n\t\t142, 9, 129, 242, 135, 153, 170, 15, 26, 49, 31, 152, 244,\n\t\t21, 245, 238, 193, 186, 196, 129, 87, 97, 242, 205, 219, 210,\n\t\t250, 57, 57, 132, 144, 239, 149, 236, 31, 189, 94, 98, 65,\n\t\t5, 22, 248, 98, 155, 119, 52, 243, 108, 21, 132, 27, 90, 239,\n\t\t105, 131, 167, 195, 24, 173, 107, 179, 98, 98, 152, 106, 83,\n\t\t114, 41, 130, 180, 182, 246, 137, 214, 179, 230, 188, 30,\n\t\t250, 80, 109, 20, 162, 138, 157, 202, 189, 62, 249, 90, 38,\n\t\t164, 73, 130, 62, 153, 35, 242, 186, 144, 40, 195, 170, 205,\n\t\t8, 1, 197, 41, 195, 50, 73, 24, 242, 227, 45, 195, 50, 159,\n\t\t52, 189, 28, 105, 86, 197, 232, 252, 108, 56, 54, 137, 53,\n\t\t38, 135, 105, 76, 178, 74, 22, 64, 102, 61, 211, 180, 167,\n\t\t19, 200, 107, 225, 233, 104, 160, 162, 70, 160, 151, 92, 116,\n\t\t148, 82, 105, 31, 253, 190, 71, 28, 254, 129, 103, 188, 251,\n\t\t17, 51, 146, 242, 133, 152, 106, 219, 228, 154, 158, 191,\n\t\t59, 153, 95, 126, 251, 180, 220, 159, 200, 55, 78, 149, 85,\n\t\t154, 9, 53, 96, 91, 124, 107, 11, 217, 240, 113, 220, 101,\n\t\t39, 81, 38, 142, 59, 59, 200, 202, 193, 113, 187, 131, 112,\n\t\t106, 27, 109, 163, 191, 38, 31, 18, 239, 85, 203, 57, 114,\n\t\t104, 220, 46, 209, 137, 123, 7, 44, 73, 188, 196, 211, 184,\n\t\t227, 20, 163, 98, 190, 211, 43, 246, 231, 203, 231, 231, 255,\n\t\t152, 223, 62, 45, 119, 147, 229, 62, 238, 24, 238, 64, 70,\n\t\t91, 220, 172, 163, 203, 77, 109, 29, 133, 237, 206, 240, 91,\n\t\t135, 168, 252, 207, 177, 7, 235, 253, 166, 77, 155, 75, 26,\n\t\t47, 148, 250, 243, 90, 114, 155, 144, 184, 153, 51, 86, 157,\n\t\t133, 68, 151, 210, 193, 249, 229, 64, 19, 149, 42, 104, 199,\n\t\t160, 21, 146, 68, 11, 111, 210, 170, 20, 14, 148, 174, 4,\n\t\t131, 107, 24, 103, 128, 18, 206, 40, 77, 14, 241, 194, 184,\n\t\t204, 219, 220, 193, 174, 94, 64, 81, 143, 138, 148, 152, 218,\n\t\t66, 139, 124, 19, 60, 52, 122, 236, 188, 62, 76, 159, 174,\n\t\t143, 186, 121, 118, 2, 57, 27, 137, 49, 250, 68, 125, 12,\n\t\t61, 54, 193, 211, 147, 65, 170, 88, 64, 40, 181, 120, 158,\n\t\t164, 44, 174, 246, 58, 71, 17, 169, 145, 211, 210, 218, 212,\n\t\t64, 137, 157, 166, 196, 105, 56, 168, 147, 67, 76, 46, 142,\n\t\t143, 30, 205, 231, 223, 238, 172, 195, 217, 180, 134, 85,\n\t\t184, 184, 54, 69, 198, 14, 193, 18, 129, 201, 129, 196, 55,\n\t\t170, 128, 34, 165, 112, 226, 169, 209, 139, 198, 239, 50,\n\t\t47, 144, 250, 109, 16, 65, 190, 150, 99, 120, 150, 141, 235,\n\t\t98, 56, 115, 49, 122, 201, 230, 33, 140, 65, 146, 43, 104,\n\t\t155, 105, 226, 50, 49, 62, 53, 143, 164, 227, 3, 54, 75, 248,\n\t\t184, 74, 58, 155, 2, 211, 252, 20, 106, 152, 245, 50, 164,\n\t\t154, 111, 46, 45, 76, 115, 142, 75, 99, 128, 120, 51, 204,\n\t\t74, 217, 89, 31, 122, 159, 186, 166, 249, 22, 47, 28, 230,\n\t\t186, 24, 122, 192, 74, 224, 231, 19, 22, 69, 186, 37, 234,\n\t\t10, 41, 166, 26, 186, 43, 109, 55, 45, 186, 75, 126, 127,\n\t\t125, 202, 180, 10, 183, 51, 13, 251, 181, 142, 102, 48, 142,\n\t\t185, 193, 46, 118, 164, 42, 210, 213, 161, 134, 51, 87, 123,\n\t\t102, 153, 11, 55, 109, 175, 230, 27, 246, 147, 222, 32, 102,\n\t\t157, 150, 15, 167, 155, 104, 200, 143, 55, 235, 243, 58, 195,\n\t\t67, 105, 22, 148, 139, 72, 18, 4, 224, 175, 46, 44, 97, 100,\n\t\t255, 49, 244, 238, 48, 222, 53, 70, 245, 110, 220, 20, 156,\n\t\t78, 86, 11, 216, 254, 24, 175, 3, 129, 99, 44, 147, 133, 210,\n\t\t97, 16, 44, 26, 65, 229, 87, 165, 70, 208, 189, 53, 241, 61,\n\t\t40, 112, 2, 39, 240, 47, 172, 245, 0, 232, 155, 227, 109,\n\t\t52, 139, 52, 14, 195, 46, 71, 83, 71, 46, 39, 84, 68, 151,\n\t\t4, 240, 19, 35, 113, 179, 54, 69, 56, 87, 204, 169, 129, 0,\n\t\t140, 201, 14, 139, 209, 235, 83, 137, 209, 182, 97, 182, 155,\n\t\t235, 186, 62, 43, 12, 22, 195, 254, 43, 226, 65, 8, 72, 16,\n\t\t5, 29, 6, 90, 70, 129, 148, 37, 149, 180, 202, 13, 43, 234,\n\t\t119, 96, 243, 18, 219, 186, 114, 107, 192, 208, 78, 57, 217,\n\t\t58, 155, 186, 26, 97, 21, 15, 62, 43, 158, 181, 36, 203, 178,\n\t\t97, 106, 241, 162, 200, 5, 182, 170, 114, 230, 107, 157, 240,\n\t\t172, 182, 26, 187, 39, 121, 80, 204, 209, 34, 33, 52, 218,\n\t\t60, 251, 38, 38, 126, 186, 64, 225, 216, 147, 160, 144, 167,\n\t\t66, 154, 99, 195, 59, 21, 5, 90, 238, 146, 55, 42, 109, 48,\n\t\t0, 203, 253, 200, 95, 86, 179, 187, 56, 13, 218, 130, 160,\n\t\t148, 48, 39, 217, 166, 20, 191, 219, 23, 73, 242, 45, 130,\n\t\t65, 70, 93, 198, 33, 86, 24, 34, 136, 84, 105, 242, 198, 89,\n\t\t251, 127, 181, 251, 142, 19, 2, 248, 112, 224, 32, 163, 70,\n\t\t111, 23, 219, 8, 248, 106, 108, 139, 117, 120, 233, 86, 31,\n\t\t104, 137, 127, 189, 124, 249, 250, 229, 195, 167, 155, 237,\n\t\t240, 249, 198, 55, 190, 9, 22, 143, 229, 135, 132, 153, 29,\n\t\t170, 181, 183, 133, 153, 38, 161, 222, 180, 140, 154, 21,\n\t\t96, 195, 108, 17, 54, 100, 69, 57, 109, 143, 229, 20, 175,\n\t\t142, 56, 203, 129, 230, 87, 176, 28, 19, 22, 74, 151, 166,\n\t\t198, 211, 234, 44, 24, 29, 96, 28, 242, 107, 30, 55, 90, 57,\n\t\t11, 168, 180, 41, 98, 134, 150, 19, 71, 147, 231, 213, 76,\n\t\t159, 135, 109, 86, 177, 45, 218, 6, 216, 165, 157, 12, 131,\n\t\t209, 13, 0, 17, 249, 165, 161, 148, 88, 57, 11, 222, 173,\n\t\t15, 65, 57, 184, 119, 156, 145, 231, 158, 21, 81, 68, 195,\n\t\t206, 232, 78, 191, 1, 26, 9, 106, 16, 145, 19, 71, 95, 59,\n\t\t13, 198, 195, 236, 229, 23, 55, 174, 105, 50, 108, 245, 88,\n\t\t110, 217, 29, 69, 95, 158, 255, 90, 254, 115, 51, 132, 70,\n\t\t162, 113, 179, 17, 0, 202, 33, 55, 235, 75, 90, 124, 45, 214,\n\t\t193, 48, 228, 109, 111, 0, 63, 78, 46, 71, 222, 202, 19, 32,\n\t\t18, 74, 43, 212, 54, 25, 134, 26, 61, 54, 30, 247, 251, 179,\n\t\t105, 206, 186, 28, 235, 236, 11, 227, 22, 25, 111, 91, 108,\n\t\t173, 78, 1, 1, 41, 137, 141, 6, 56, 240, 173, 216, 144, 155,\n\t\t236, 88, 36, 71, 49, 252, 126, 131, 201, 16, 139, 24, 173,\n\t\t212, 209, 198, 136, 104, 131, 100, 189, 152, 157, 72, 8, 154,\n\t\t12, 140, 10, 165, 192, 72, 132, 96, 223, 96, 33, 28, 129,\n\t\t220, 183, 86, 15, 8, 131, 232, 250, 97, 78, 16, 164, 218,\n\t\t228, 19, 28, 241, 2, 75, 92, 218, 228, 91, 180, 217, 51, 215,\n\t\t41, 45, 224, 45, 219, 154, 194, 217, 180, 106, 187, 7, 12,\n\t\t95, 88, 205, 90, 42, 100, 123, 176, 9, 51, 158, 210, 246,\n\t\t229, 23, 179, 54, 95, 96, 166, 128, 234, 226, 212, 109, 6,\n\t\t233, 40, 29, 163, 173, 139, 173, 57, 64, 166, 41, 54, 134,\n\t\t182, 111, 165, 61, 29, 63, 61, 47, 119, 61, 126, 207, 43,\n\t\t181, 60, 109, 143, 83, 44, 201, 70, 168, 19, 162, 15, 243,\n\t\t162, 29, 64, 104, 16, 132, 161, 131, 143, 82, 26, 74, 118,\n\t\t8, 30, 65, 164, 49, 99, 181, 74, 9, 0, 10, 193, 211, 71, 108,\n\t\t206, 198, 121, 120, 10, 77, 26, 27, 140, 178, 53, 140, 51,\n\t\t81, 227, 239, 102, 227, 93, 157, 4, 213, 145, 75, 202, 48,\n\t\t16, 52, 61, 224, 82, 1, 128, 160, 204, 44, 104, 97, 45, 34,\n\t\t200, 46, 146, 212, 177, 209, 3, 132, 36, 122, 3, 87, 194,\n\t\t20, 36, 222, 40, 10, 165, 53, 147, 76, 251, 102, 83, 118,\n\t\t122, 56, 211, 50, 148, 56, 180, 48, 114, 90, 180, 241, 66,\n\t\t155, 173, 87, 26, 190, 20, 24, 38, 214, 11, 183, 200, 220,\n\t\t163, 110, 57, 178, 55, 84, 44, 249, 185, 216, 8, 38, 220,\n\t\t70, 162, 161, 171, 182, 46, 64, 204, 233, 83, 21, 103, 206,\n\t\t94, 39, 126, 253, 240, 219, 242, 124, 15, 116, 49, 254, 190,\n\t\t147, 247, 155, 156, 251, 145, 213, 124, 207, 184, 249, 230,\n\t\t106, 30, 115, 96, 62, 218, 95, 168, 154, 38, 142, 4, 125,\n\t\t135, 106, 26, 223, 195, 193, 249, 88, 53, 165, 98, 190, 83,\n\t\t53, 253, 250, 97, 62, 190, 252, 249, 252, 245, 190, 173, 246,\n\t\t247, 157, 104, 77, 90, 226, 168, 153, 125, 238, 22, 219, 5,\n\t\t175, 121, 161, 217, 158, 248, 187, 16, 159, 102, 5, 35, 161,\n\t\t182, 202, 2, 171, 198, 56, 107, 156, 228, 224, 83, 178, 16,\n\t\t221, 138, 119, 17, 129, 149, 37, 96, 21, 243, 69, 217, 216,\n\t\t178, 110, 68, 85, 214, 81, 57, 115, 52, 41, 241, 12, 134,\n\t\t146, 192, 193, 11, 141, 212, 155, 172, 74, 174, 222, 34, 119,\n\t\t204, 88, 42, 28, 107, 15, 57, 173, 213, 128, 242, 44, 223,\n\t\t81, 35, 234, 60, 121, 185, 205, 91, 201, 63, 78, 206, 194,\n\t\t16, 220, 234, 94, 222, 118, 132, 222, 173, 26, 152, 158, 225,\n\t\t177, 178, 81, 203, 48, 2, 11, 110, 101, 204, 104, 9, 208,\n\t\t179, 217, 119, 218, 145, 170, 45, 201, 149, 137, 22, 220,\n\t\t94, 235, 210, 161, 147, 70, 18, 223, 96, 25, 119, 244, 18,\n\t\t185, 78, 65, 204, 130, 193, 70, 24, 253, 72, 249, 116, 190,\n\t\t76, 145, 23, 1, 121, 192, 108, 162, 248, 133, 104, 185, 8,\n\t\t208, 153, 208, 222, 105, 10, 81, 212, 156, 232, 44, 96, 204,\n\t\t229, 196, 225, 245, 169, 151, 169, 92, 233, 168, 23, 218,\n\t\t227, 233, 74, 99, 221, 206, 146, 173, 162, 122, 231, 205,\n\t\t95, 159, 124, 2, 59, 244, 175, 42, 62, 118, 103, 107, 157,\n\t\t66, 47, 54, 145, 74, 238, 25, 218, 59, 216, 92, 153, 158,\n\t\t92, 100, 141, 98, 61, 235, 214, 153, 191, 80, 43, 228, 158,\n\t\t14, 16, 167, 128, 105, 145, 108, 96, 139, 30, 93, 219, 144,\n\t\t163, 105, 139, 3, 43, 184, 92, 60, 238, 94, 152, 2, 28, 131,\n\t\t189, 37, 235, 252, 108, 6, 42, 92, 80, 3, 117, 86, 167, 81,\n\t\t232, 182, 36, 186, 123, 156, 41, 140, 14, 15, 97, 202, 219,\n\t\t234, 123, 157, 162, 141, 28, 226, 74, 138, 67, 34, 41, 109,\n\t\t4, 191, 134, 163, 247, 206, 134, 4, 53, 164, 115, 127, 235,\n\t\t175, 193, 49, 186, 136, 30, 3, 168, 158, 118, 164, 2, 219,\n\t\t122, 165, 249, 21, 139, 216, 21, 168, 232, 12, 60, 60, 26,\n\t\t60, 225, 245, 240, 148, 92, 182, 52, 168, 34, 13, 187, 57,\n\t\t219, 194, 88, 216, 13, 113, 110, 145, 19, 68, 117, 26, 162,\n\t\t17, 185, 85, 113, 216, 235, 183, 245, 41, 141, 205, 174, 214,\n\t\t169, 170, 211, 214, 201, 163, 32, 86, 36, 246, 236, 7, 146,\n\t\t209, 94, 129, 94, 246, 203, 198, 229, 97, 119, 181, 252, 52,\n\t\t255, 235, 141, 125, 238, 198, 161, 188, 174, 148, 62, 96,\n\t\t201, 64, 228, 177, 241, 29, 235, 190, 59, 251, 30, 94, 159,\n\t\t114, 208, 92, 4, 115, 29, 161, 187, 226, 134, 157, 37, 12,\n\t\t103, 63, 18, 56, 53, 247, 32, 18, 88, 184, 188, 71, 164, 239,\n\t\t69, 44, 240, 233, 22, 215, 76, 32, 89, 223, 138, 28, 78, 15,\n\t\t18, 100, 15, 168, 247, 85, 149, 174, 235, 206, 189, 25, 122,\n\t\t217, 13, 158, 61, 130, 119, 227, 65, 158, 237, 64, 153, 187,\n\t\t14, 142, 93, 243, 110, 143, 84, 204, 69, 36, 194, 69, 0, 237,\n\t\t57, 184, 125, 57, 231, 239, 211, 221, 125, 50, 185, 178, 205,\n\t\t244, 129, 119, 234, 205, 160, 177, 19, 3, 83, 241, 1, 78,\n\t\t208, 167, 25, 103, 233, 186, 147, 89, 111, 25, 127, 152, 82,\n\t\t220, 135, 54, 107, 216, 26, 0, 7, 215, 224, 53, 13, 91, 219,\n\t\t226, 250, 221, 19, 156, 246, 168, 217, 113, 167, 150, 191,\n\t\t45, 88, 254, 29, 133, 137, 236, 48, 139, 17, 134, 163, 87,\n\t\t68, 162, 20, 228, 3, 88, 51, 244, 251, 41, 107, 105, 18, 96,\n\t\t165, 86, 163, 162, 101, 237, 54, 185, 112, 190, 207, 203,\n\t\t203, 233, 154, 40, 55, 249, 255, 126, 246, 126, 18, 246, 169,\n\t\t83, 50, 200, 80, 69, 117, 38, 117, 101, 217, 30, 204, 194,\n\t\t32, 117, 249, 225, 53, 144, 77, 161, 68, 23, 147, 16, 152,\n\t\t229, 108, 70, 72, 188, 90, 208, 68, 124, 18, 174, 196, 113,\n\t\t44, 248, 163, 110, 49, 208, 143, 244, 241, 114, 40, 71, 200,\n\t\t44, 218, 60, 84, 241, 200, 238, 21, 131, 167, 227, 239, 184,\n\t\t107, 212, 194, 92, 87, 195, 141, 91, 199, 171, 226, 193, 107,\n\t\t51, 224, 112, 91, 210, 229, 231, 250, 250, 90, 208, 97, 217,\n\t\t212, 224, 250, 193, 250, 220, 113, 60, 234, 189, 125, 221,\n\t\t229, 162, 41, 230, 171, 103, 234, 35, 111, 203, 24, 13, 191,\n\t\t118, 213, 69, 235, 175, 111, 45, 247, 236, 14, 218, 223, 62,\n\t\t156, 158, 127, 251, 176, 44, 134, 254, 92, 143, 218, 24, 111,\n\t\t84, 162, 174, 91, 69, 44, 205, 230, 169, 9, 254, 234, 74,\n\t\t44, 87, 56, 145, 44, 10, 41, 27, 172, 226, 116, 34, 43, 34,\n\t\t68, 117, 98, 45, 36, 5, 151, 155, 41, 114, 96, 164, 167, 253,\n\t\t173, 48, 235, 95, 245, 164, 4, 23, 144, 174, 22, 213, 104,\n\t\t39, 228, 91, 129, 85, 85, 204, 126, 53, 76, 69, 216, 59, 213,\n\t\t110, 27, 132, 226, 47, 54, 85, 94, 39, 68, 131, 200, 82, 177,\n\t\t152, 193, 247, 199, 198, 96, 150, 201, 217, 54, 27, 89, 116,\n\t\t146, 90, 201, 27, 36, 85, 156, 138, 63, 204, 38, 38, 48, 60,\n\t\t225, 85, 178, 144, 212, 117, 189, 39, 15, 214, 186, 100, 235,\n\t\t41, 56, 85, 171, 131, 141, 211, 246, 183, 182, 26, 7, 20,\n\t\t90, 56, 194, 240, 27, 5, 111, 49, 129, 217, 32, 11, 53, 66,\n\t\t80, 96, 200, 164, 112, 30, 106, 238, 85, 8, 151, 72, 43, 137,\n\t\t124, 207, 146, 203, 87, 248, 61, 103, 181, 0, 36, 225, 255,\n\t\t68, 83, 247, 174, 13, 7, 189, 218, 235, 209, 97, 46, 21, 171,\n\t\t117, 101, 248, 198, 245, 146, 128, 238, 64, 137, 70, 9, 238,\n\t\t76, 32, 85, 162, 113, 23, 102, 61, 89, 250, 168, 49, 130,\n\t\t181, 1, 80, 185, 26, 203, 66, 22, 172, 111, 77, 28, 20, 122,\n\t\t197, 76, 157, 61, 232, 63, 147, 48, 62, 100, 101, 66, 238,\n\t\t146, 152, 56, 78, 80, 67, 98, 247, 200, 195, 232, 203, 33,\n\t\t168, 30, 161, 211, 226, 98, 224, 152, 75, 113, 68, 172, 0,\n\t\t247, 49, 78, 145, 251, 150, 151, 62, 78, 57, 124, 61, 60,\n\t\t249, 4, 70, 15, 80, 97, 106, 223, 100, 9, 34, 86, 21, 218,\n\t\t187, 102, 17, 26, 45, 228, 137, 62, 71, 219, 128, 187, 226,\n\t\t212, 134, 232, 102, 24, 234, 4, 95, 65, 109, 245, 121, 50,\n\t\t173, 202, 244, 20, 142, 11, 18, 2, 104, 195, 4, 33, 95, 224,\n\t\t1, 15, 236, 122, 6, 152, 108, 8, 239, 225, 38, 217, 144, 53,\n\t\t210, 3, 151, 232, 32, 77, 115, 151, 12, 214, 95, 172, 42,\n\t\t186, 124, 116, 169, 249, 120, 26, 61, 236, 193, 122, 240,\n\t\t175, 231, 175, 111, 175, 8, 233, 237, 21, 33, 96, 152, 167,\n\t\t88, 45, 60, 174, 52, 126, 29, 35, 255, 116, 193, 213, 54,\n\t\t105, 172, 168, 209, 219, 176, 32, 150, 137, 126, 144, 207,\n\t\t57, 150, 137, 84, 13, 26, 57, 85, 66, 202, 83, 21, 162, 66,\n\t\t166, 28, 70, 176, 46, 50, 89, 67, 1, 76, 43, 58, 68, 62, 231,\n\t\t40, 70, 223, 36, 15, 68, 172, 177, 119, 209, 182, 41, 43,\n\t\t48, 106, 161, 250, 101, 191, 122, 17, 196, 1, 17, 45, 147,\n\t\t164, 177, 203, 130, 155, 63, 243, 152, 123, 125, 146, 47,\n\t\t83, 76, 221, 246, 69, 171, 173, 245, 63, 204, 156, 55, 41,\n\t\t122, 63, 191, 98, 83, 238, 146, 177, 144, 224, 165, 71, 35,\n\t\t204, 90, 119, 25, 241, 65, 134, 98, 91, 3, 222, 101, 61, 15,\n\t\t150, 180, 196, 208, 108, 68, 189, 234, 205, 123, 47, 62, 87,\n\t\t219, 39, 252, 157, 35, 7, 108, 240, 251, 99, 25, 233, 58,\n\t\t193, 6, 14, 1, 189, 221, 12, 79, 128, 87, 114, 125, 225, 130,\n\t\t12, 226, 193, 51, 104, 39, 204, 45, 122, 47, 110, 115, 159,\n\t\t219, 162, 143, 214, 58, 28, 230, 177, 104, 129, 22, 137, 23,\n\t\t253, 170, 121, 25, 46, 110, 74, 145, 82, 103, 163, 205, 175,\n\t\t173, 111, 184, 249, 7, 221, 11, 55, 255, 104, 253, 20, 187,\n\t\t237, 83, 228, 213, 239, 206, 168, 81, 230, 109, 153, 220,\n\t\t205, 143, 69, 148, 39, 30, 218, 93, 155, 221, 140, 23, 208,\n\t\t165, 70, 91, 222, 104, 211, 155, 60, 72, 136, 185, 241, 185,\n\t\t49, 66, 108, 54, 30, 110, 90, 96, 49, 220, 252, 252, 65, 67,\n\t\t97, 179, 67, 80, 7, 104, 251, 235, 112, 226, 209, 53, 43,\n\t\t135, 48, 118, 159, 204, 172, 93, 145, 37, 55, 126, 222, 218,\n\t\t246, 141, 91, 81, 40, 183, 189, 218, 215, 220, 192, 231, 237,\n\t\t28, 133, 175, 27, 27, 77, 174, 235, 65, 58, 155, 88, 88, 147,\n\t\t199, 194, 172, 243, 203, 96, 130, 241, 139, 142, 23, 223,\n\t\t95, 34, 94, 254, 107, 249, 244, 249, 143, 251, 235, 67, 217,\n\t\t89, 31, 72, 24, 253, 5, 208, 2, 1, 193, 255, 191, 202, 68,\n\t\t234, 91, 154, 68, 38, 127, 155, 7, 230, 6, 252, 253, 240,\n\t\t222, 103, 190, 62, 133, 24, 64, 44, 245, 107, 234, 191, 155,\n\t\t200, 116, 124, 62, 93, 131, 177, 167, 56, 176, 57, 170, 226,\n\t\t49, 196, 106, 219, 162, 121, 51, 52, 212, 88, 90, 23, 25,\n\t\t68, 214, 187, 21, 80, 67, 253, 246, 114, 124, 204, 60, 171,\n\t\t207, 209, 137, 33, 84, 152, 167, 0, 5, 133, 197, 7, 80, 80,\n\t\t154, 157, 81, 166, 114, 22, 55, 54, 99, 73, 225, 18, 77, 150,\n\t\t40, 244, 223, 49, 192, 45, 158, 206, 129, 7, 49, 174, 195,\n\t\t51, 149, 92, 151, 175, 10, 178, 62, 240, 111, 110, 42, 43,\n\t\t251, 46, 163, 77, 241, 237, 90, 220, 97, 94, 43, 84, 214,\n\t\t252, 12, 185, 118, 84, 201, 232, 122, 190, 38, 112, 240, 255,\n\t\t227, 205, 206, 70, 223, 53, 243, 82, 52, 183, 81, 176, 31,\n\t\t139, 141, 180, 146, 87, 229, 180, 200, 242, 22, 85, 46, 150,\n\t\t150, 62, 242, 42, 250, 138, 112, 255, 56, 24, 124, 197, 115,\n\t\t186, 17, 10, 100, 116, 170, 35, 200, 139, 183, 61, 242, 250,\n\t\t114, 46, 93, 168, 198, 221, 32, 40, 151, 174, 147, 59, 226,\n\t\t184, 1, 199, 71, 89, 79, 231, 1, 178, 17, 215, 162, 47, 110,\n\t\t52, 242, 229, 108, 162, 183, 153, 218, 157, 26, 230, 28, 153,\n\t\t63, 107, 60, 140, 213, 148, 245, 105, 23, 159, 199, 204, 42,\n\t\t196, 32, 66, 119, 163, 62, 235, 227, 228, 248, 230, 113, 21,\n\t\t227, 75, 120, 191, 222, 122, 185, 203, 199, 145, 128, 219,\n\t\t251, 55, 189, 156, 52, 32, 150, 2, 25, 2, 43, 103, 25, 7,\n\t\t237, 171, 116, 137, 66, 151, 225, 235, 83, 80, 140, 77, 130,\n\t\t29, 68, 82, 152, 18, 7, 51, 180, 112, 249, 9, 41, 58, 152,\n\t\t228, 168, 179, 243, 172, 126, 185, 172, 110, 107, 228, 237,\n\t\t137, 110, 33, 155, 8, 93, 255, 122, 120, 138, 45, 89, 208,\n\t\t242, 98, 234, 233, 211, 120, 64, 246, 222, 142, 242, 121,\n\t\t150, 79, 196, 224, 138, 151, 70, 153, 253, 243, 144, 175,\n\t\t135, 220, 74, 159, 167, 213, 183, 161, 228, 253, 215, 151,\n\t\t190, 62, 101, 39, 94, 75, 81, 11, 183, 66, 50, 55, 16, 15,\n\t\t2, 6, 131, 31, 221, 200, 254, 93, 45, 76, 74, 223, 116, 192,\n\t\t101, 191, 31, 77, 112, 32, 182, 51, 43, 18, 143, 94, 172,\n\t\t15, 48, 87, 253, 125, 198, 51, 214, 73, 83, 52, 205, 145,\n\t\t39, 161, 205, 83, 92, 148, 214, 92, 130, 81, 206, 62, 163,\n\t\t185, 239, 12, 169, 139, 121, 162, 199, 71, 95, 145, 71, 248,\n\t\t174, 33, 133, 59, 206, 70, 30, 65, 226, 85, 66, 96, 145, 23,\n\t\t161, 74, 27, 65, 133, 131, 1, 147, 63, 190, 101, 153, 214,\n\t\t160, 111, 102, 202, 153, 189, 149, 41, 84, 212, 237, 237,\n\t\t53, 119, 45, 38, 168, 64, 34, 173, 149, 244, 153, 242, 200,\n\t\t69, 25, 88, 60, 171, 98, 180, 12, 59, 33, 189, 185, 179, 12,\n\t\t123, 18, 64, 118, 23, 97, 72, 121, 135, 39, 223, 187, 109,\n\t\t147, 239, 213, 82, 133, 217, 8, 55, 179, 175, 74, 72, 118,\n\t\t86, 85, 144, 163, 132, 84, 196, 33, 125, 200, 247, 126, 100,\n\t\t238, 85, 231, 103, 47, 126, 138, 44, 49, 63, 122, 165, 15,\n\t\t9, 1, 85, 227, 88, 111, 212, 199, 153, 53, 147, 230, 106,\n\t\t75, 98, 134, 170, 183, 222, 145, 148, 216, 157, 119, 28, 55,\n\t\t111, 186, 72, 203, 198, 255, 251, 214, 124, 236, 212, 230,\n\t\t183, 79, 167, 227, 203, 53, 88, 80, 138, 55, 126, 235, 53,\n\t\t164, 218, 135, 104, 125, 110, 83, 172, 160, 18, 3, 14, 66,\n\t\t109, 221, 79, 217, 198, 76, 93, 76, 234, 138, 207, 141, 73,\n\t\t244, 91, 10, 235, 9, 218, 244, 155, 3, 10, 162, 160, 199,\n\t\t249, 106, 187, 3, 144, 36, 255, 127, 76, 180, 245, 231, 62,\n\t\t235, 5, 56, 111, 54, 151, 9, 17, 159, 175, 54, 99, 25, 247,\n\t\t8, 5, 32, 185, 196, 166, 8, 105, 180, 90, 231, 112, 166, 218,\n\t\t22, 186, 159, 67, 180, 189, 71, 118, 168, 150, 92, 195, 148,\n\t\t154, 205, 21, 168, 7, 197, 182, 216, 58, 172, 26, 46, 50,\n\t\t123, 184, 19, 96, 125, 103, 51, 130, 63, 240, 133, 180, 49,\n\t\t166, 25, 229, 24, 96, 253, 230, 109, 5, 60, 132, 9, 226, 84,\n\t\t90, 207, 36, 27, 82, 240, 253, 228, 108, 109, 213, 59, 76,\n\t\t208, 0, 176, 211, 235, 75, 22, 80, 37, 132, 194, 134, 141,\n\t\t20, 202, 124, 231, 81, 55, 15, 144, 155, 199, 137, 147, 22,\n\t\t63, 30, 168, 87, 200, 5, 139, 167, 173, 62, 229, 73, 62, 15,\n\t\t144, 14, 51, 214, 53, 146, 27, 106, 39, 61, 57, 86, 16, 7,\n\t\t117, 155, 82, 76, 235, 9, 80, 48, 212, 40, 17, 252, 181, 33,\n\t\t188, 42, 216, 214, 107, 158, 76, 165, 1, 208, 60, 84, 178,\n\t\t148, 74, 100, 224, 190, 24, 195, 153, 148, 182, 94, 106, 59,\n\t\t26, 223, 162, 45, 217, 159, 113, 162, 87, 40, 183, 57, 69,\n\t\t68, 27, 167, 34, 247, 198, 4, 60, 204, 64, 189, 167, 199,\n\t\t40, 202, 209, 147, 107, 227, 208, 144, 220, 216, 185, 231,\n\t\t91, 181, 181, 20, 188, 79, 242, 157, 180, 119, 26, 144, 28,\n\t\t119, 107, 24, 125, 231, 1, 56, 115, 232, 229, 1, 56, 115,\n\t\t72, 123, 128, 217, 116, 255, 62, 216, 249, 3, 232, 19, 153,\n\t\t132, 119, 96, 99, 83, 156, 85, 104, 150, 244, 173, 35, 199,\n\t\t21, 35, 190, 24, 177, 187, 168, 67, 147, 227, 163, 70, 29,\n\t\t115, 218, 242, 157, 107, 233, 244, 213, 181, 116, 218, 93,\n\t\t159, 132, 19, 167, 135, 245, 212, 81, 202, 189, 184, 142,\n\t\t79, 194, 233, 114, 123, 58, 210, 0, 77, 109, 83, 133, 163,\n\t\t94, 125, 231, 52, 0, 251, 110, 10, 57, 60, 185, 41, 182, 116,\n\t\t253, 38, 240, 250, 92, 159, 100, 132, 185, 155, 130, 169,\n\t\t26, 119, 106, 199, 97, 218, 87, 69, 208, 160, 185, 61, 75,\n\t\t5, 223, 105, 55, 42, 248, 126, 99, 80, 195, 221, 169, 197,\n\t\t157, 246, 164, 182, 127, 163, 141, 98, 112, 135, 123, 165,\n\t\t220, 105, 14, 26, 27, 183, 213, 86, 119, 213, 157, 183, 185,\n\t\t115, 154, 202, 8, 185, 220, 60, 49, 144, 218, 120, 51, 60,\n\t\t36, 24, 244, 166, 73, 88, 101, 190, 25, 9, 204, 11, 118, 117,\n\t\t250, 241, 148, 248, 215, 167, 207, 127, 220, 204, 136, 27,\n\t\t47, 243, 38, 154, 10, 137, 210, 141, 38, 220, 227, 105, 15,\n\t\t4, 158, 31, 152, 246, 116, 255, 222, 180, 103, 36, 178, 94,\n\t\t16, 128, 49, 135, 106, 115, 77, 36, 187, 209, 126, 83, 27,\n\t\t239, 144, 33, 145, 180, 87, 109, 141, 45, 98, 81, 13, 185,\n\t\t181, 197, 180, 108, 67, 171, 176, 77, 4, 91, 147, 63, 154,\n\t\t80, 131, 109, 177, 172, 63, 201, 47, 135, 217, 116, 235, 19,\n\t\t98, 230, 10, 35, 17, 121, 135, 72, 197, 73, 74, 27, 197, 203,\n\t\t241, 209, 231, 78, 181, 2, 10, 81, 190, 134, 77, 222, 2, 35,\n\t\t159, 99, 217, 96, 46, 111, 32, 145, 167, 114, 204, 238, 156,\n\t\t221, 155, 191, 198, 114, 129, 166, 124, 1, 215, 124, 54, 217,\n\t\t29, 179, 219, 187, 32, 138, 200, 121, 5, 246, 188, 202, 156,\n\t\t25, 104, 70, 7, 125, 149, 247, 140, 164, 207, 119, 208, 41,\n\t\t83, 186, 73, 59, 218, 196, 89, 211, 91, 193, 163, 206, 185,\n\t\t208, 238, 156, 138, 205, 185, 160, 77, 156, 229, 236, 151,\n\t\t202, 144, 114, 25, 92, 149, 29, 225, 140, 33, 84, 160, 149,\n\t\t228, 84, 151, 76, 61, 28, 3, 210, 40, 66, 64, 26, 125, 73,\n\t\t37, 79, 213, 198, 16, 3, 232, 33, 115, 76, 76, 110, 147, 75,\n\t\t25, 199, 41, 216, 30, 67, 57, 83, 35, 219, 24, 19, 128, 248,\n\t\t0, 46, 229, 189, 117, 37, 230, 217, 100, 9, 112, 12, 192,\n\t\t78, 103, 25, 200, 213, 128, 144, 217, 26, 163, 144, 46, 73,\n\t\t250, 166, 45, 41, 1, 108, 81, 88, 231, 171, 141, 17, 172,\n\t\t61, 206, 182, 16, 2, 226, 107, 109, 96, 236, 178, 100, 93,\n\t\t242, 172, 139, 245, 26, 105, 31, 175, 214, 51, 10, 89, 179,\n\t\t33, 122, 42, 40, 104, 206, 1, 74, 132, 147, 192, 250, 150,\n\t\t50, 100, 149, 68, 119, 69, 42, 145, 227, 141, 232, 33, 185,\n\t\t33, 32, 40, 217, 196, 65, 50, 122, 138, 110, 76, 46, 131,\n\t\t21, 21, 105, 66, 173, 213, 201, 217, 84, 98, 43, 66, 94, 138,\n\t\t9, 101, 93, 76, 158, 19, 3, 240, 182, 161, 32, 235, 24, 97,\n\t\t51, 49, 66, 163, 168, 9, 105, 48, 212, 35, 25, 169, 2, 5,\n\t\t220, 169, 227, 132, 119, 140, 70, 224, 206, 158, 100, 7, 225,\n\t\t192, 136, 37, 7, 4, 21, 35, 220, 52, 216, 84, 93, 157, 170,\n\t\t38, 55, 41, 201, 7, 164, 149, 56, 201, 231, 2, 243, 24, 9,\n\t\t87, 161, 89, 18, 174, 32, 22, 106, 77, 123, 229, 238, 32,\n\t\t113, 216, 21, 240, 241, 119, 112, 96, 201, 9, 90, 7, 138,\n\t\t175, 231, 13, 8, 197, 206, 34, 3, 198, 93, 73, 230, 118, 211,\n\t\t221, 212, 109, 198, 164, 53, 254, 177, 16, 242, 14, 89, 232,\n\t\t39, 44, 138, 175, 79, 89, 18, 5, 16, 182, 148, 57, 86, 5,\n\t\t249, 204, 29, 210, 122, 192, 241, 105, 115, 40, 103, 130,\n\t\t155, 228, 36, 206, 157, 204, 122, 196, 87, 189, 99, 162, 255,\n\t\t245, 225, 6, 170, 57, 165, 27, 111, 243, 38, 55, 180, 36,\n\t\t18, 126, 130, 107, 167, 226, 38, 44, 170, 49, 76, 76, 73,\n\t\t200, 16, 8, 63, 208, 26, 112, 208, 245, 25, 230, 192, 214,\n\t\t16, 120, 200, 161, 155, 169, 209, 15, 176, 230, 251, 224,\n\t\t199, 49, 168, 103, 82, 177, 177, 251, 66, 235, 118, 113, 45,\n\t\t77, 250, 255, 137, 228, 152, 205, 73, 195, 232, 160, 145,\n\t\t166, 13, 83, 113, 89, 6, 103, 43, 18, 202, 166, 165, 154,\n\t\t90, 164, 38, 143, 136, 142, 222, 181, 109, 10, 208, 117, 4,\n\t\t244, 64, 129, 22, 86, 244, 243, 245, 41, 244, 247, 141, 197,\n\t\t199, 15, 10, 12, 24, 253, 221, 141, 31, 222, 37, 98, 252,\n\t\t223, 191, 159, 111, 80, 54, 82, 90, 89, 218, 34, 164, 210,\n\t\t159, 50, 49, 126, 184, 77, 72, 118, 203, 54, 215, 142, 144,\n\t\t241, 232, 108, 15, 149, 86, 206, 204, 217, 95, 88, 254, 25,\n\t\t246, 250, 52, 142, 13, 159, 224, 147, 144, 99, 215, 243, 185,\n\t\t156, 54, 183, 225, 255, 215, 195, 83, 42, 206, 250, 68, 82,\n\t\t75, 180, 177, 148, 37, 118, 27, 51, 18, 125, 28, 128, 29,\n\t\t230, 104, 115, 12, 156, 118, 218, 10, 169, 172, 69, 115, 199,\n\t\t138, 45, 190, 249, 205, 9, 239, 108, 241, 33, 170, 97, 19,\n\t\t24, 147, 14, 116, 219, 145, 209, 123, 162, 4, 58, 182, 6,\n\t\t228, 87, 147, 184, 108, 134, 181, 114, 30, 60, 31, 213, 38,\n\t\t201, 92, 90, 79, 243, 89, 172, 188, 169, 75, 46, 108, 112,\n\t\t193, 231, 77, 97, 145, 25, 205, 215, 19, 82, 56, 178, 138,\n\t\t44, 85, 48, 145, 70, 93, 170, 239, 83, 147, 253, 67, 107,\n\t\t46, 21, 167, 151, 247, 181, 213, 41, 56, 91, 106, 175, 51,\n\t\t109, 165, 158, 196, 164, 94, 107, 78, 8, 137, 225, 172, 90,\n\t\t23, 74, 68, 26, 28, 91, 89, 19, 242, 71, 2, 224, 143, 93,\n\t\t101, 28, 185, 230, 124, 155, 66, 148, 237, 57, 146, 34, 155,\n\t\t73, 67, 178, 9, 94, 41, 57, 49, 135, 102, 107, 198, 114, 31,\n\t\t157, 45, 49, 87, 208, 72, 146, 142, 29, 61, 67, 124, 230,\n\t\t106, 115, 236, 126, 118, 0, 211, 240, 117, 42, 54, 245, 232,\n\t\t11, 179, 79, 122, 91, 74, 133, 249, 182, 103, 47, 135, 199,\n\t\t228, 97, 15, 57, 204, 217, 122, 168, 251, 110, 234, 182, 230,\n\t\t196, 8, 178, 49, 52, 143, 28, 75, 100, 241, 96, 159, 111,\n\t\t161, 205, 77, 178, 49, 56, 90, 3, 89, 45, 174, 70, 6, 253,\n\t\t233, 157, 52, 151, 106, 59, 234, 46, 39, 78, 177, 91, 135,\n\t\t124, 237, 100, 67, 11, 235, 5, 242, 251, 236, 109, 33, 201,\n\t\t99, 74, 182, 35, 66, 187, 216, 224, 67, 67, 142, 35, 40, 5,\n\t\t180, 10, 114, 204, 213, 206, 125, 166, 23, 76, 192, 4, 34,\n\t\t137, 3, 232, 207, 244, 34, 190, 181, 241, 162, 6, 111, 74,\n\t\t18, 177, 7, 107, 12, 199, 188, 64, 242, 165, 222, 2, 135,\n\t\t63, 53, 92, 10, 220, 142, 116, 1, 31, 3, 128, 215, 51, 122,\n\t\t113, 166, 81, 133, 148, 45, 102, 131, 77, 214, 149, 156, 96,\n\t\t179, 114, 174, 205, 209, 250, 82, 56, 142, 15, 131, 205, 59,\n\t\t70, 129, 173, 182, 121, 24, 50, 138, 117, 13, 0, 8, 213, 229,\n\t\t253, 164, 31, 94, 126, 190, 188, 188, 252, 235, 102, 245,\n\t\t169, 111, 75, 165, 205, 219, 144, 72, 141, 143, 244, 82, 113,\n\t\t49, 41, 219, 36, 91, 73, 4, 145, 104, 144, 108, 243, 96, 105,\n\t\t29, 129, 28, 214, 130, 139, 72, 154, 144, 148, 24, 62, 110,\n\t\t140, 210, 112, 246, 190, 147, 180, 185, 191, 143, 61, 88,\n\t\t187, 82, 58, 50, 243, 251, 57, 237, 174, 130, 53, 188, 163,\n\t\t160, 118, 78, 105, 151, 161, 236, 97, 117, 248, 149, 226,\n\t\t217, 92, 130, 27, 155, 96, 91, 243, 141, 133, 49, 224, 146,\n\t\t154, 34, 29, 55, 90, 197, 52, 91, 107, 151, 134, 245, 18,\n\t\t46, 228, 67, 158, 29, 141, 8, 79, 43, 41, 6, 69, 200, 19,\n\t\t221, 226, 145, 254, 22, 163, 141, 213, 79, 180, 39, 130, 53,\n\t\t159, 123, 39, 31, 145, 2, 218, 91, 152, 67, 7, 87, 197, 212,\n\t\t187, 237, 33, 34, 38, 171, 211, 196, 110, 221, 186, 134, 251,\n\t\t54, 157, 250, 122, 96, 78, 100, 54, 34, 88, 56, 38, 160, 102,\n\t\t227, 171, 164, 177, 215, 32, 201, 240, 161, 222, 13, 241,\n\t\t166, 211, 195, 19, 12, 19, 200, 255, 24, 189, 120, 111, 86,\n\t\t124, 252, 251, 207, 223, 126, 123, 190, 117, 255, 167, 27,\n\t\t6, 191, 53, 125, 220, 59, 118, 164, 175, 88, 85, 26, 25, 237,\n\t\t92, 24, 240, 106, 161, 6, 13, 140, 102, 255, 199, 61, 200,\n\t\t171, 212, 30, 64, 94, 121, 151, 142, 212, 138, 131, 175, 75,\n\t\t209, 36, 56, 218, 164, 77, 130, 63, 163, 63, 235, 47, 140,\n\t\t38, 193, 5, 72, 152, 119, 103, 165, 68, 43, 201, 65, 222,\n\t\t169, 189, 62, 149, 8, 205, 115, 94, 31, 193, 24, 10, 82, 144,\n\t\t105, 80, 126, 103, 70, 188, 80, 183, 207, 168, 128, 32, 94,\n\t\t0, 25, 88, 168, 16, 126, 236, 149, 185, 225, 118, 106, 252,\n\t\t160, 225, 169, 201, 0, 103, 156, 11, 39, 75, 237, 94, 157,\n\t\t220, 59, 144, 201, 232, 245, 31, 244, 83, 105, 71, 141, 3,\n\t\t111, 239, 41, 240, 65, 121, 92, 173, 31, 104, 132, 210, 142,\n\t\t84, 29, 174, 205, 94, 247, 239, 205, 142, 223, 95, 94, 222,\n\t\t142, 160, 75, 183, 228, 127, 125, 5, 211, 228, 172, 204, 106,\n\t\t171, 70, 135, 13, 0, 83, 117, 78, 154, 226, 105, 223, 70,\n\t\t118, 90, 2, 55, 67, 46, 182, 32, 45, 178, 205, 73, 112, 23,\n\t\t140, 99, 79, 163, 159, 154, 166, 203, 55, 68, 194, 177, 147,\n\t\t49, 177, 51, 122, 228, 229, 39, 117, 104, 178, 19, 187, 179,\n\t\t119, 45, 42, 210, 108, 228, 104, 174, 215, 39, 126, 174, 68,\n\t\t33, 105, 28, 213, 64, 88, 213, 26, 66, 175, 78, 242, 184,\n\t\t188, 112, 253, 80, 77, 26, 15, 90, 197, 81, 67, 163, 85, 108,\n\t\t250, 82, 109, 210, 26, 26, 173, 98, 26, 46, 224, 192, 204,\n\t\t222, 2, 33, 163, 193, 179, 90, 67, 137, 13, 245, 37, 217,\n\t\t50, 43, 252, 170, 207, 1, 56, 198, 36, 40, 245, 41, 208, 174,\n\t\t91, 129, 243, 138, 207, 180, 4, 100, 239, 33, 250, 175, 216,\n\t\t50, 27, 69, 179, 48, 124, 163, 17, 8, 76, 56, 199, 216, 113,\n\t\t77, 183, 189, 62, 69, 196, 106, 133, 214, 44, 71, 21, 75,\n\t\t135, 129, 74, 70, 15, 229, 243, 48, 27, 9, 195, 88, 209, 95,\n\t\t228, 213, 86, 52, 24, 137, 4, 113, 27, 194, 112, 175, 124,\n\t\t233, 227, 42, 45, 198, 92, 151, 227, 198, 213, 203, 182, 46,\n\t\t12, 63, 161, 77, 161, 95, 110, 42, 184, 173, 159, 60, 96,\n\t\t212, 79, 142, 7, 30, 199, 98, 214, 160, 21, 191, 190, 222,\n\t\t168, 224, 245, 151, 187, 21, 228, 251, 229, 233, 76, 97, 193,\n\t\t49, 216, 252, 229, 110, 5, 185, 188, 119, 86, 240, 166, 1,\n\t\t175, 219, 237, 186, 156, 55, 26, 48, 104, 208, 248, 122, 230,\n\t\t178, 67, 223, 85, 226, 77, 133, 110, 110, 210, 201, 168, 199,\n\t\t235, 219, 92, 181, 196, 114, 93, 151, 121, 83, 147, 55, 203,\n\t\t146, 161, 53, 130, 179, 174, 170, 113, 253, 57, 222, 64, 123,\n\t\t248, 166, 67, 22, 29, 83, 218, 99, 215, 163, 110, 190, 105,\n\t\t160, 181, 90, 124, 188, 190, 162, 86, 80, 62, 119, 170, 165,\n\t\t193, 65, 218, 176, 250, 180, 109, 181, 48, 146, 100, 22, 223,\n\t\t107, 173, 247, 182, 252, 225, 78, 115, 93, 78, 226, 171, 34,\n\t\t46, 171, 117, 183, 211, 174, 251, 236, 250, 115, 91, 146,\n\t\t64, 199, 92, 213, 193, 92, 55, 202, 189, 149, 132, 95, 96,\n\t\t31, 233, 249, 101, 249, 253, 238, 22, 149, 111, 57, 63, 188,\n\t\t110, 81, 160, 89, 61, 6, 150, 80, 71, 52, 253, 85, 32, 34,\n\t\t50, 62, 193, 127, 178, 6, 53, 222, 11, 88, 84, 190, 199, 155,\n\t\t196, 243, 11, 73, 55, 221, 128, 162, 93, 38, 150, 159, 21,\n\t\t52, 234, 178, 46, 67, 218, 190, 87, 147, 203, 72, 201, 87,\n\t\t184, 164, 66, 114, 16, 215, 170, 38, 24, 224, 9, 177, 219,\n\t\t48, 153, 206, 65, 178, 21, 145, 52, 126, 70, 202, 193, 20,\n\t\t53, 14, 170, 115, 152, 57, 144, 21, 248, 59, 76, 132, 204,\n\t\t154, 212, 185, 91, 166, 64, 99, 148, 255, 157, 232, 211, 108,\n\t\t127, 48, 193, 181, 215, 167, 0, 232, 7, 223, 145, 123, 32,\n\t\t227, 5, 156, 13, 26, 109, 131, 188, 9, 61, 142, 156, 207,\n\t\t49, 35, 166, 144, 195, 173, 5, 105, 61, 12, 225, 65, 2, 117,\n\t\t162, 147, 208, 191, 174, 45, 29, 54, 49, 92, 18, 156, 172,\n\t\t43, 84, 146, 144, 50, 250, 130, 120, 183, 52, 162, 180, 37,\n\t\t14, 200, 115, 114, 26, 226, 132, 80, 184, 228, 254, 240, 137,\n\t\t215, 167, 208, 242, 228, 83, 183, 225, 27, 234, 246, 93, 85,\n\t\t59, 124, 107, 221, 238, 55, 43, 46, 185, 106, 214, 215, 167,\n\t\t152, 250, 20, 72, 6, 252, 213, 111, 241, 173, 47, 113, 248,\n\t\t134, 183, 216, 91, 0, 142, 47, 243, 191, 158, 255, 99, 254,\n\t\t250, 123, 190, 49, 110, 228, 184, 165, 114, 105, 64, 216,\n\t\t196, 120, 6, 174, 102, 200, 192, 214, 68, 44, 64, 138, 56,\n\t\t52, 189, 156, 12, 95, 0, 252, 179, 113, 14, 238, 254, 200,\n\t\t39, 122, 65, 200, 131, 203, 182, 205, 222, 35, 55, 161, 73,\n\t\t154, 79, 236, 141, 110, 109, 18, 144, 135, 96, 7, 82, 74,\n\t\t186, 101, 100, 6, 97, 215, 219, 47, 253, 140, 235, 119, 223,\n\t\t249, 255, 254, 253, 233, 227, 199, 79, 95, 231, 107, 228,\n\t\t179, 148, 111, 88, 66, 55, 200, 103, 156, 156, 131, 176, 250,\n\t\t54, 208, 173, 92, 183, 225, 132, 64, 37, 118, 178, 49, 99,\n\t\t67, 29, 199, 217, 89, 90, 41, 186, 218, 26, 117, 129, 10,\n\t\t5, 2, 113, 212, 64, 224, 203, 227, 147, 166, 131, 104, 182,\n\t\t150, 159, 50, 103, 179, 44, 93, 34, 176, 189, 15, 54, 204,\n\t\t105, 74, 43, 71, 67, 99, 59, 169, 23, 254, 133, 177, 94, 118,\n\t\t100, 57, 106, 86, 210, 152, 4, 146, 138, 150, 20, 239, 69,\n\t\t4, 222, 230, 166, 44, 193, 199, 180, 140, 129, 186, 129, 147,\n\t\t138, 170, 142, 203, 104, 153, 140, 20, 42, 201, 246, 232,\n\t\t245, 41, 81, 253, 148, 80, 98, 78, 105, 114, 83, 213, 212,\n\t\t37, 77, 209, 24, 39, 42, 7, 232, 65, 61, 230, 188, 142, 245,\n\t\t34, 250, 145, 219, 108, 123, 57, 157, 57, 141, 51, 49, 175,\n\t\t191, 112, 24, 250, 8, 206, 213, 156, 46, 189, 68, 30, 53,\n\t\t109, 174, 228, 10, 151, 88, 192, 25, 93, 25, 30, 205, 20,\n\t\t9, 207, 28, 250, 58, 140, 68, 50, 19, 73, 166, 23, 253, 168,\n\t\t86, 219, 151, 168, 181, 78, 76, 133, 50, 103, 149, 118, 148,\n\t\t105, 194, 15, 45, 66, 166, 175, 174, 25, 190, 138, 136, 155,\n\t\t149, 21, 197, 11, 108, 155, 209, 209, 133, 193, 181, 8, 86,\n\t\t28, 117, 10, 66, 51, 105, 198, 84, 45, 61, 50, 105, 30, 11,\n\t\t82, 77, 100, 30, 150, 86, 215, 186, 197, 133, 43, 77, 117,\n\t\t6, 51, 165, 190, 227, 192, 93, 145, 220, 202, 164, 113, 246,\n\t\t154, 185, 34, 169, 57, 251, 136, 72, 76, 27, 246, 251, 223,\n\t\t119, 100, 136, 17, 17, 69, 83, 25, 190, 153, 236, 195, 57,\n\t\t251, 112, 164, 79, 58, 120, 140, 211, 99, 190, 62, 127, 254,\n\t\t252, 233, 38, 69, 33, 175, 112, 75, 52, 218, 24, 237, 123,\n\t\t54, 69, 250, 93, 211, 126, 12, 109, 65, 64, 145, 19, 253,\n\t\t180, 211, 74, 236, 49, 211, 68, 168, 7, 136, 33, 254, 50,\n\t\t70, 61, 79, 143, 38, 26, 173, 36, 183, 78, 33, 184, 241, 61,\n\t\t186, 104, 251, 228, 230, 18, 129, 129, 129, 7, 214, 145, 221,\n\t\t148, 249, 9, 105, 160, 145, 197, 72, 138, 98, 168, 205, 198,\n\t\t169, 250, 17, 98, 42, 151, 143, 24, 80, 221, 76, 212, 47,\n\t\t49, 200, 222, 53, 41, 211, 65, 45, 207, 155, 8, 98, 13, 108,\n\t\t37, 169, 137, 163, 189, 103, 208, 52, 144, 94, 60, 66, 132,\n\t\t21, 85, 79, 205, 2, 85, 178, 114, 5, 203, 125, 25, 83, 78,\n\t\t62, 23, 211, 186, 14, 82, 23, 133, 182, 145, 228, 75, 70,\n\t\t85, 92, 33, 184, 186, 14, 246, 1, 35, 231, 23, 147, 5, 149,\n\t\t49, 71, 234, 142, 54, 4, 90, 145, 74, 7, 23, 170, 202, 179,\n\t\t147, 100, 226, 46, 222, 197, 169, 49, 6, 21, 231, 153, 76,\n\t\t146, 108, 66, 90, 86, 159, 98, 215, 225, 172, 139, 211, 152,\n\t\t55, 154, 246, 79, 115, 158, 165, 56, 31, 218, 29, 110, 152,\n\t\t19, 50, 84, 87, 248, 98, 32, 118, 202, 169, 94, 78, 124, 29,\n\t\t254, 223, 29, 149, 231, 151, 101, 121, 254, 207, 155, 182,\n\t\t157, 252, 251, 0, 87, 136, 222, 198, 62, 33, 78, 61, 204,\n\t\t180, 2, 183, 158, 216, 215, 193, 97, 27, 62, 20, 27, 145,\n\t\t2, 21, 162, 101, 136, 246, 84, 172, 71, 168, 0, 7, 106, 7,\n\t\t103, 145, 252, 212, 45, 80, 118, 76, 202, 182, 198, 14, 226,\n\t\t142, 12, 210, 183, 44, 83, 87, 210, 221, 230, 192, 184, 140,\n\t\t83, 151, 213, 189, 117, 76, 252, 100, 211, 228, 155, 131,\n\t\t133, 35, 248, 130, 173, 215, 34, 130, 195, 208, 212, 40, 200,\n\t\t165, 20, 2, 242, 154, 217, 197, 34, 25, 28, 156, 150, 93,\n\t\t95, 159, 60, 149, 217, 167, 24, 155, 237, 225, 48, 155, 38,\n\t\t248, 112, 152, 99, 12, 176, 72, 19, 172, 49, 103, 81, 199,\n\t\t116, 244, 178, 220, 210, 82, 22, 167, 152, 166, 128, 188,\n\t\t92, 31, 242, 20, 10, 109, 96, 190, 91, 7, 144, 16, 90, 131,\n\t\t82, 128, 143, 13, 81, 177, 38, 53, 91, 124, 1, 170, 131, 164,\n\t\t176, 241, 184, 123, 125, 138, 141, 228, 173, 201, 215, 104,\n\t\t91, 152, 77, 116, 214, 151, 214, 1, 53, 198, 46, 116, 27,\n\t\t74, 3, 226, 100, 142, 192, 242, 117, 88, 157, 33, 14, 213,\n\t\t142, 188, 84, 196, 42, 84, 111, 19, 152, 254, 82, 180, 45,\n\t\t133, 54, 249, 234, 109, 160, 73, 221, 105, 93, 13, 164, 60,\n\t\t134, 195, 156, 198, 248, 162, 5, 128, 99, 206, 37, 155, 183,\n\t\t183, 97, 181, 154, 171, 156, 3, 78, 58, 112, 73, 93, 225,\n\t\t108, 118, 24, 162, 38, 214, 30, 66, 129, 16, 249, 250, 20,\n\t\t144, 30, 9, 35, 85, 12, 115, 234, 67, 46, 80, 26, 168, 4,\n\t\t87, 29, 31, 228, 198, 139, 150, 108, 179, 212, 203, 165, 34,\n\t\t252, 6, 241, 100, 121, 202, 212, 39, 190, 107, 250, 191, 90,\n\t\t211, 188, 147, 172, 191, 98, 115, 174, 133, 35, 187, 25, 172,\n\t\t42, 100, 155, 192, 80, 80, 170, 77, 181, 240, 30, 198, 6,\n\t\t181, 198, 123, 227, 97, 54, 125, 195, 72, 196, 236, 135, 52,\n\t\t235, 97, 252, 2, 129, 15, 75, 4, 144, 68, 155, 139, 19, 48,\n\t\t249, 114, 71, 118, 182, 167, 149, 180, 5, 31, 169, 50, 40,\n\t\t183, 6, 73, 115, 0, 74, 85, 159, 168, 85, 130, 243, 115, 214,\n\t\t204, 200, 184, 78, 100, 164, 38, 162, 57, 73, 236, 234, 8,\n\t\t148, 224, 132, 179, 216, 172, 47, 66, 33, 21, 83, 169, 44,\n\t\t131, 193, 213, 137, 20, 112, 100, 213, 228, 110, 193, 84,\n\t\t35, 103, 112, 23, 28, 66, 64, 143, 183, 137, 153, 220, 133,\n\t\t21, 33, 116, 27, 18, 224, 133, 18, 111, 142, 3, 168, 79, 197,\n\t\t112, 180, 101, 86, 5, 91, 132, 253, 198, 27, 200, 235, 83,\n\t\t140, 157, 122, 50, 209, 70, 29, 230, 62, 178, 241, 53, 79,\n\t\t156, 222, 19, 195, 128, 86, 230, 245, 144, 182, 133, 216,\n\t\t59, 124, 93, 224, 211, 98, 14, 16, 147, 182, 7, 180, 158,\n\t\t51, 53, 11, 45, 157, 140, 220, 72, 91, 78, 171, 2, 176, 204,\n\t\t157, 217, 168, 65, 193, 97, 192, 103, 144, 98, 164, 80, 93,\n\t\t198, 217, 20, 91, 170, 52, 92, 134, 139, 141, 206, 22, 151,\n\t\t83, 233, 219, 179, 135, 185, 138, 141, 181, 7, 77, 222, 149,\n\t\t189, 192, 183, 72, 58, 112, 149, 213, 55, 80, 175, 237, 46,\n\t\t147, 31, 150, 229, 249, 203, 31, 159, 158, 111, 118, 238,\n\t\t114, 19, 201, 119, 25, 21, 10, 208, 27, 1, 14, 29, 64, 211,\n\t\t88, 2, 212, 96, 224, 43, 41, 199, 43, 7, 153, 225, 160, 45,\n\t\t69, 67, 108, 170, 107, 233, 166, 147, 20, 128, 151, 1, 85,\n\t\t72, 116, 6, 91, 199, 144, 214, 130, 31, 30, 4, 89, 108, 98,\n\t\t69, 182, 1, 159, 141, 245, 104, 144, 145, 226, 60, 178, 39,\n\t\t68, 237, 50, 58, 68, 20, 219, 145, 134, 25, 143, 25, 229,\n\t\t169, 146, 62, 175, 193, 86, 184, 65, 38, 95, 101, 119, 215,\n\t\t205, 83, 36, 71, 229, 198, 203, 188, 251, 159, 146, 96, 105,\n\t\t232, 101, 89, 135, 149, 236, 150, 65, 119, 115, 146, 236,\n\t\t206, 33, 121, 182, 126, 100, 81, 3, 181, 185, 216, 211, 120,\n\t\t183, 13, 57, 157, 245, 218, 249, 101, 24, 250, 251, 232, 203,\n\t\t133, 79, 107, 227, 27, 59, 123, 4, 51, 125, 219, 195, 90,\n\t\t58, 124, 239, 211, 80, 207, 111, 123, 218, 119, 191, 90, 221,\n\t\t123, 22, 147, 81, 196, 240, 38, 189, 218, 233, 150, 216, 240,\n\t\t116, 135, 202, 240, 116, 195, 217, 198, 37, 251, 240, 54,\n\t\t115, 219, 109, 209, 239, 45, 57, 36, 55, 185, 95, 84, 46,\n\t\t114, 90, 239, 23, 124, 248, 254, 146, 35, 128, 217, 127, 65,\n\t\t149, 99, 44, 191, 164, 41, 98, 17, 242, 215, 159, 94, 244,\n\t\t62, 72, 199, 231, 143, 230, 195, 167, 155, 52, 148, 178, 195,\n\t\t60, 169, 118, 28, 133, 133, 190, 64, 122, 158, 74, 58, 34,\n\t\t109, 57, 184, 35, 160, 208, 46, 193, 163, 47, 177, 162, 5,\n\t\t15, 142, 38, 68, 6, 184, 190, 92, 185, 69, 153, 102, 192,\n\t\t232, 179, 114, 22, 233, 69, 215, 40, 212, 172, 24, 246, 114,\n\t\t166, 7, 247, 162, 9, 11, 56, 68, 150, 3, 42, 20, 178, 180,\n\t\t52, 98, 13, 47, 29, 192, 215, 142, 226, 211, 165, 71, 152,\n\t\t62, 14, 167, 141, 163, 24, 103, 79, 87, 142, 95, 240, 248,\n\t\t162, 43, 203, 141, 135, 249, 29, 15, 120, 95, 249, 161, 134,\n\t\t239, 124, 129, 247, 151, 239, 203, 173, 203, 253, 103, 61,\n\t\t96, 31, 18, 226, 223, 55, 99, 113, 0, 205, 101, 7, 53, 188,\n\t\t68, 155, 102, 134, 8, 2, 161, 189, 174, 195, 227, 140, 34,\n\t\t24, 43, 8, 136, 88, 58, 142, 38, 208, 222, 74, 163, 238, 232,\n\t\t147, 183, 105, 14, 2, 112, 228, 38, 182, 208, 243, 245, 140,\n\t\t216, 18, 89, 247, 229, 69, 42, 9, 243, 152, 20, 49, 15, 86,\n\t\t179, 0, 198, 69, 57, 200, 250, 68, 121, 224, 50, 212, 230,\n\t\t236, 45, 224, 106, 167, 1, 167, 175, 38, 120, 229, 82, 165,\n\t\t103, 202, 1, 87, 14, 6, 206, 144, 142, 217, 135, 195, 217,\n\t\t4, 78, 128, 252, 30, 48, 183, 144, 246, 189, 55, 191, 189,\n\t\t252, 251, 142, 124, 117, 99, 196, 92, 177, 29, 51, 243, 177,\n\t\t94, 172, 84, 151, 139, 211, 152, 174, 87, 100, 189, 178, 72,\n\t\t77, 32, 180, 2, 205, 206, 5, 93, 239, 197, 218, 37, 100, 109,\n\t\t151, 20, 165, 131, 214, 169, 185, 179, 233, 101, 137, 65,\n\t\t141, 0, 244, 213, 200, 247, 115, 167, 11, 120, 67, 252, 9,\n\t\t79, 57, 236, 62, 230, 39, 52, 3, 143, 177, 255, 113, 77, 122,\n\t\t184, 211, 166, 187, 3, 233, 203, 167, 231, 223, 231, 15, 167,\n\t\t103, 243, 231, 243, 199, 79, 243, 135, 27, 171, 70, 233, 91,\n\t\t236, 194, 24, 220, 155, 216, 133, 2, 163, 252, 93, 195, 29,\n\t\t183, 222, 193, 46, 108, 202, 18, 127, 251, 19, 53, 253, 155,\n\t\t136, 220, 141, 199, 18, 237, 39, 25, 4, 53, 8, 236, 129, 55,\n\t\t48, 128, 134, 150, 84, 249, 116, 25, 6, 118, 17, 190, 5, 146,\n\t\t129, 114, 206, 72, 65, 121, 243, 138, 212, 174, 130, 204,\n\t\t46, 131, 188, 206, 38, 23, 42, 230, 193, 69, 204, 78, 247,\n\t\t150, 212, 74, 27, 97, 46, 123, 87, 164, 246, 166, 92, 155,\n\t\t203, 49, 191, 41, 245, 238, 15, 140, 191, 191, 220, 132, 220,\n\t\t151, 219, 100, 243, 149, 18, 177, 51, 127, 151, 247, 158,\n\t\t57, 82, 156, 149, 244, 151, 64, 43, 54, 127, 141, 142, 249,\n\t\t26, 141, 15, 8, 38, 170, 80, 193, 24, 27, 2, 151, 210, 247,\n\t\t19, 190, 147, 190, 139, 116, 71, 207, 56, 34, 85, 22, 225,\n\t\t170, 184, 117, 189, 91, 230, 75, 68, 161, 220, 217, 110, 206,\n\t\t60, 34, 122, 161, 221, 161, 151, 169, 11, 238, 19, 227, 207,\n\t\t35, 118, 29, 175, 95, 240, 80, 112, 142, 120, 27, 102, 211,\n\t\t21, 160, 176, 171, 65, 134, 161, 178, 0, 131, 133, 175, 116,\n\t\t29, 116, 153, 44, 158, 5, 54, 129, 201, 3, 216, 210, 200,\n\t\t223, 247, 67, 138, 63, 252, 117, 250, 123, 185, 179, 120,\n\t\t223, 4, 79, 110, 22, 239, 156, 5, 250, 165, 207, 113, 160,\n\t\t84, 137, 234, 26, 86, 131, 114, 36, 17, 139, 173, 32, 97,\n\t\t70, 10, 143, 103, 202, 34, 94, 125, 134, 253, 182, 96, 179,\n\t\t148, 195, 217, 68, 129, 238, 113, 96, 247, 228, 205, 175,\n\t\t194, 22, 198, 219, 156, 104, 158, 130, 96, 230, 91, 181, 145,\n\t\t9, 108, 170, 106, 222, 176, 53, 10, 38, 201, 6, 158, 240,\n\t\t12, 35, 60, 216, 228, 138, 122, 61, 243, 32, 191, 134, 135,\n\t\t95, 254, 156, 240, 237, 226, 55, 79, 123, 40, 135, 26, 232,\n\t\t205, 250, 187, 252, 12, 14, 153, 226, 104, 229, 117, 8, 31,\n\t\t83, 203, 59, 141, 65, 136, 62, 197, 230, 89, 156, 87, 1, 0,\n\t\t99, 252, 66, 110, 74, 212, 253, 2, 119, 53, 7, 55, 249, 52,\n\t\t244, 113, 109, 37, 52, 146, 182, 17, 41, 16, 19, 135, 127,\n\t\t249, 58, 245, 1, 83, 216, 68, 222, 208, 88, 96, 38, 126, 218,\n\t\t44, 129, 3, 164, 248, 100, 198, 42, 101, 116, 153, 242, 62,\n\t\t64, 238, 141, 153, 195, 222, 170, 245, 135, 165, 145, 120,\n\t\t146, 217, 93, 184, 160, 171, 58, 67, 249, 113, 103, 117, 187,\n\t\t241, 0, 153, 144, 244, 237, 80, 174, 216, 214, 3, 155, 96,\n\t\t157, 132, 253, 160, 171, 57, 226, 106, 4, 137, 132, 38, 92,\n\t\t18, 108, 93, 247, 179, 1, 154, 128, 14, 165, 182, 26, 129,\n\t\t36, 84, 75, 164, 46, 152, 29, 230, 33, 191, 13, 249, 107,\n\t\t3, 133, 35, 46, 80, 13, 188, 137, 236, 239, 218, 159, 20,\n\t\t203, 167, 191, 144, 90, 111, 230, 227, 243, 173, 63, 186,\n\t\t204, 251, 84, 59, 177, 165, 239, 69, 212, 221, 163, 218, 121,\n\t\t19, 81, 151, 57, 117, 223, 80, 165, 78, 183, 154, 208, 216,\n\t\t140, 146, 251, 41, 26, 198, 225, 190, 10, 227, 65, 126, 91,\n\t\t139, 13, 115, 226, 95, 215, 143, 206, 216, 176, 210, 87, 14,\n\t\t125, 149, 38, 95, 23, 13, 114, 155, 4, 6, 139, 246, 42, 118,\n\t\t44, 167, 177, 174, 112, 125, 7, 208, 173, 175, 131, 176, 124,\n\t\t161, 73, 198, 142, 130, 176, 152, 84, 166, 196, 171, 192,\n\t\t182, 20, 113, 83, 175, 197, 240, 220, 65, 41, 82, 17, 142,\n\t\t227, 98, 72, 70, 174, 14, 112, 133, 249, 249, 155, 207, 46,\n\t\t238, 82, 30, 89, 27, 52, 165, 74, 211, 134, 141, 127, 141,\n\t\t155, 119, 190, 186, 125, 220, 53, 32, 117, 169, 0, 121, 254,\n\t\t59, 7, 231, 242, 233, 116, 147, 158, 92, 110, 57, 45, 255,\n\t\t247, 141, 77, 40, 55, 151, 209, 209, 143, 52, 194, 211, 189,\n\t\t193, 123, 184, 51, 122, 81, 186, 15, 238, 39, 20, 255, 86,\n\t\t233, 225, 58, 98, 253, 231, 149, 254, 206, 89, 123, 239, 197,\n\t\t223, 165, 87, 3, 118, 33, 185, 65, 111, 121, 95, 206, 244,\n\t\t233, 58, 155, 225, 90, 134, 244, 187, 18, 34, 221, 255, 150,\n\t\t16, 200, 192, 15, 177, 60, 174, 194, 225, 215, 214, 33, 196,\n\t\t240, 184, 14, 191, 172, 10, 187, 9, 47, 159, 62, 252, 241,\n\t\t249, 229, 116, 43, 180, 213, 155, 88, 201, 213, 228, 150,\n\t\t58, 132, 222, 61, 221, 238, 116, 165, 206, 157, 110, 52, 200,\n\t\t211, 29, 149, 81, 90, 171, 134, 153, 228, 15, 44, 14, 77,\n\t\t165, 209, 214, 166, 214, 78, 248, 142, 175, 116, 132, 244,\n\t\t65, 57, 99, 90, 59, 153, 113, 169, 252, 123, 125, 202, 202,\n\t\t172, 150, 150, 17, 42, 41, 232, 207, 163, 254, 35, 57, 163,\n\t\t74, 171, 41, 36, 164, 119, 83, 82, 176, 125, 141, 79, 209,\n\t\t86, 246, 28, 27, 57, 22, 34, 95, 230, 168, 24, 179, 234, 95,\n\t\t36, 37, 64, 130, 46, 171, 176, 177, 197, 50, 39, 193, 54,\n\t\t29, 176, 155, 46, 2, 113, 136, 75, 113, 250, 125, 150, 71,\n\t\t83, 127, 106, 240, 130, 20, 2, 255, 30, 187, 120, 24, 35,\n\t\t89, 125, 61, 130, 53, 8, 200, 105, 136, 155, 10, 214, 219,\n\t\t6, 62, 116, 150, 80, 187, 224, 7, 148, 173, 70, 170, 137,\n\t\t175, 52, 72, 48, 133, 96, 60, 226, 117, 176, 127, 170, 23,\n\t\t129, 110, 1, 71, 33, 239, 90, 81, 161, 250, 28, 156, 249,\n\t\t30, 33, 64, 3, 7, 92, 128, 211, 231, 65, 82, 0, 166, 22, 110,\n\t\t166, 17, 147, 81, 149, 254, 75, 225, 214, 133, 187, 114, 54,\n\t\t94, 148, 130, 174, 161, 26, 89, 78, 68, 165, 12, 163, 29,\n\t\t58, 146, 40, 79, 109, 127, 54, 157, 23, 34, 88, 31, 206, 157,\n\t\t173, 112, 52, 189, 53, 214, 66, 125, 159, 236, 96, 132, 187,\n\t\t169, 107, 33, 24, 117, 12, 68, 174, 14, 220, 198, 166, 55,\n\t\t110, 93, 155, 215, 42, 118, 145, 143, 97, 94, 117, 191, 214,\n\t\t252, 9, 254, 228, 111, 46, 255, 157, 246, 97, 168, 27, 191,\n\t\t102, 54, 151, 144, 166, 125, 43, 82, 124, 104, 68, 42, 180,\n\t\t69, 237, 24, 145, 34, 84, 215, 55, 140, 72, 229, 1, 155, 200,\n\t\t199, 207, 31, 110, 22, 190, 29, 87, 238, 42, 94, 154, 196,\n\t\t154, 229, 44, 72, 145, 170, 98, 69, 81, 182, 1, 100, 222,\n\t\t59, 216, 171, 58, 0, 150, 73, 15, 9, 205, 14, 39, 59, 67,\n\t\t184, 215, 201, 247, 108, 3, 107, 182, 235, 133, 162, 203,\n\t\t208, 106, 86, 214, 245, 134, 3, 39, 138, 126, 93, 162, 240,\n\t\t127, 140, 106, 205, 26, 147, 180, 145, 131, 21, 169, 51, 171,\n\t\t21, 186, 64, 181, 225, 104, 8, 86, 125, 60, 77, 171, 105,\n\t\t32, 51, 202, 180, 143, 35, 139, 158, 75, 61, 70, 31, 108,\n\t\t26, 32, 205, 85, 129, 2, 85, 79, 210, 235, 229, 242, 89, 17,\n\t\t30, 219, 80, 166, 189, 166, 124, 149, 193, 126, 26, 53, 44,\n\t\t111, 125, 7, 141, 52, 118, 16, 100, 21, 96, 118, 4, 27, 202,\n\t\t203, 131, 29, 94, 216, 41, 212, 255, 28, 7, 108, 98, 243,\n\t\t96, 2, 48, 193, 113, 104, 71, 193, 34, 116, 152, 105, 173,\n\t\t170, 186, 8, 241, 242, 49, 98, 113, 162, 226, 218, 143, 176,\n\t\t55, 161, 118, 56, 130, 52, 0, 118, 1, 84, 108, 72, 235, 194,\n\t\t11, 48, 66, 163, 125, 85, 228, 72, 90, 93, 21, 198, 148, 199,\n\t\t135, 132, 150, 6, 64, 199, 101, 48, 60, 35, 172, 122, 108,\n\t\t61, 74, 133, 224, 19, 200, 18, 11, 32, 35, 61, 8, 94, 131,\n\t\t3, 166, 235, 172, 14, 4, 188, 83, 185, 94, 59, 175, 91, 232,\n\t\t176, 208, 202, 165, 250, 132, 182, 174, 25, 97, 107, 155,\n\t\t193, 172, 65, 214, 58, 70, 204, 218, 67, 243, 10, 5, 59, 114,\n\t\t213, 52, 44, 193, 123, 59, 24, 207, 181, 219, 143, 134, 134,\n\t\t73, 164, 49, 44, 11, 118, 93, 49, 33, 117, 168, 152, 56, 148,\n\t\t108, 25, 44, 99, 200, 27, 142, 10, 145, 7, 141, 20, 188, 117,\n\t\t208, 174, 111, 53, 94, 0, 40, 84, 58, 104, 168, 23, 218, 0,\n\t\t127, 151, 54, 145, 38, 97, 222, 193, 16, 154, 77, 115, 144,\n\t\t221, 85, 99, 8, 69, 189, 83, 101, 113, 42, 50, 77, 37, 175,\n\t\t15, 230, 85, 155, 231, 17, 236, 160, 24, 177, 81, 246, 100,\n\t\t218, 205, 240, 172, 162, 41, 24, 114, 231, 235, 83, 204, 217,\n\t\t250, 41, 102, 160, 138, 4, 235, 103, 141, 7, 246, 74, 164,\n\t\t161, 13, 164, 48, 253, 1, 193, 64, 199, 16, 156, 245, 135,\n\t\t89, 57, 145, 53, 60, 89, 158, 44, 160, 204, 116, 113, 12,\n\t\t175, 79, 93, 54, 38, 186, 175, 120, 30, 176, 44, 222, 184,\n\t\t213, 124, 197, 131, 112, 108, 236, 50, 162, 34, 192, 171,\n\t\t65, 202, 49, 15, 198, 102, 125, 220, 134, 250, 79, 163, 176,\n\t\t185, 122, 251, 43, 235, 203, 114, 195, 10, 155, 234, 141,\n\t\t31, 119, 67, 102, 216, 19, 116, 124, 103, 227, 98, 114, 196,\n\t\t202, 153, 6, 24, 183, 130, 74, 203, 146, 35, 48, 252, 66,\n\t\t87, 13, 144, 79, 231, 194, 82, 68, 0, 11, 206, 230, 69, 51,\n\t\t6, 76, 151, 8, 204, 162, 123, 31, 223, 181, 24, 201, 37, 152,\n\t\t198, 5, 194, 151, 34, 252, 38, 179, 102, 54, 169, 90, 173,\n\t\t2, 211, 40, 102, 52, 20, 100, 158, 226, 244, 130, 6, 131,\n\t\t170, 26, 39, 213, 92, 52, 150, 158, 149, 68, 64, 251, 129,\n\t\t195, 201, 22, 152, 98, 51, 144, 216, 120, 141, 243, 170, 210,\n\t\t107, 94, 98, 244, 236, 181, 227, 146, 56, 14, 152, 205, 0,\n\t\t175, 79, 185, 210, 78, 226, 3, 245, 253, 250, 236, 120, 1,\n\t\t53, 125, 241, 112, 145, 194, 244, 225, 1, 48, 220, 166, 242,\n\t\t160, 216, 76, 201, 172, 178, 92, 30, 17, 200, 14, 151, 2,\n\t\t197, 147, 214, 217, 206, 38, 10, 132, 181, 242, 96, 211, 120,\n\t\t108, 45, 142, 230, 9, 175, 83, 181, 242, 187, 136, 68, 12,\n\t\t214, 73, 216, 81, 148, 157, 181, 203, 173, 85, 106, 24, 203,\n\t\t212, 169, 67, 77, 151, 104, 190, 80, 139, 173, 71, 211, 154,\n\t\t172, 80, 187, 210, 193, 219, 194, 129, 247, 72, 218, 151,\n\t\t123, 67, 25, 114, 200, 96, 59, 9, 44, 217, 46, 189, 171, 9,\n\t\t167, 55, 166, 78, 214, 201, 110, 6, 226, 114, 30, 11, 114,\n\t\t158, 42, 44, 152, 177, 46, 1, 182, 204, 202, 235, 228, 58,\n\t\t158, 4, 43, 122, 108, 87, 210, 0, 219, 17, 229, 176, 114,\n\t\t32, 31, 228, 130, 84, 107, 53, 137, 156, 30, 154, 97, 79,\n\t\t27, 179, 10, 125, 60, 158, 176, 230, 247, 229, 195, 215, 223,\n\t\t158, 111, 2, 48, 234, 13, 61, 202, 38, 137, 196, 33, 84, 100,\n\t\t183, 27, 2, 220, 60, 111, 245, 67, 74, 103, 90, 93, 151, 212,\n\t\t166, 24, 22, 128, 209, 132, 179, 15, 172, 213, 238, 73, 143,\n\t\t92, 236, 174, 248, 24, 91, 98, 57, 180, 236, 23, 245, 88,\n\t\t16, 109, 65, 116, 137, 161, 108, 77, 97, 108, 84, 50, 98,\n\t\t214, 19, 59, 244, 111, 167, 43, 139, 215, 236, 38, 21, 45,\n\t\t6, 101, 134, 31, 220, 224, 244, 104, 223, 171, 237, 23, 207,\n\t\t213, 125, 122, 60, 119, 108, 220, 223, 249, 92, 158, 234,\n\t\t87, 207, 109, 65, 228, 196, 221, 41, 86, 196, 93, 248, 157,\n\t\t211, 240, 42, 226, 234, 166, 99, 74, 59, 166, 7, 225, 235,\n\t\t191, 127, 90, 222, 244, 242, 214, 29, 56, 155, 88, 235, 20,\n\t\t83, 156, 147, 248, 207, 166, 202, 186, 45, 188, 113, 147,\n\t\t130, 219, 159, 13, 203, 250, 158, 33, 29, 0, 94, 202, 39,\n\t\t230, 50, 76, 46, 158, 243, 105, 16, 153, 62, 153, 202, 146,\n\t\t134, 240, 6, 171, 216, 227, 7, 187, 148, 170, 104, 71, 31,\n\t\t49, 246, 222, 129, 17, 49, 232, 23, 251, 208, 1, 47, 85, 190,\n\t\t115, 42, 187, 216, 30, 193, 185, 179, 241, 177, 188, 30, 64,\n\t\t156, 203, 17, 133, 251, 30, 226, 255, 253, 14, 226, 195, 155,\n\t\t63, 63, 194, 186, 216, 12, 169, 123, 124, 147, 245, 38, 34,\n\t\t101, 85, 19, 193, 75, 252, 143, 118, 189, 47, 237, 88, 69,\n\t\t172, 137, 18, 203, 195, 36, 115, 99, 69, 202, 171, 208, 30,\n\t\t47, 21, 66, 145, 87, 221, 146, 149, 41, 129, 118, 197, 1,\n\t\t134, 15, 158, 56, 231, 194, 81, 98, 232, 191, 37, 62, 242,\n\t\t104, 36, 133, 0, 233, 47, 168, 49, 51, 129, 105, 181, 86,\n\t\t141, 67, 170, 181, 158, 24, 213, 50, 121, 164, 156, 162, 98,\n\t\t70, 65, 240, 227, 224, 8, 211, 248, 118, 149, 139, 36, 155,\n\t\t126, 12, 222, 122, 121, 226, 104, 60, 41, 100, 123, 48, 58,\n\t\t23, 230, 218, 205, 184, 153, 48, 42, 3, 91, 29, 30, 207, 181,\n\t\t39, 32, 236, 254, 154, 37, 102, 127, 248, 126, 57, 125, 189,\n\t\t23, 74, 89, 251, 219, 34, 184, 155, 98, 121, 35, 36, 5, 161,\n\t\t39, 73, 166, 253, 219, 142, 27, 1, 227, 142, 225, 76, 23,\n\t\t131, 109, 23, 119, 197, 32, 110, 194, 64, 75, 250, 175, 158,\n\t\t244, 59, 115, 126, 55, 230, 229, 31, 89, 243, 152, 113, 248,\n\t\t71, 152, 82, 27, 26, 247, 193, 250, 117, 124, 57, 253, 245,\n\t\t233, 235, 27, 107, 215, 14, 167, 124, 78, 130, 102, 181, 101,\n\t\t109, 186, 194, 30, 192, 166, 252, 72, 92, 202, 233, 129, 100,\n\t\t206, 80, 68, 87, 212, 83, 26, 152, 126, 100, 188, 238, 221,\n\t\t43, 250, 163, 90, 150, 116, 68, 76, 20, 66, 24, 194, 25, 49,\n\t\t139, 55, 144, 12, 130, 200, 224, 195, 225, 30, 34, 195, 53,\n\t\t114, 195, 89, 168, 31, 244, 170, 75, 196, 6, 224, 58, 0, 30,\n\t\t78, 203, 216, 128, 58, 224, 10, 169, 76, 114, 143, 106, 243,\n\t\t207, 84, 134, 145, 209, 207, 12, 16, 241, 63, 162, 50, 255,\n\t\t96, 203, 28, 246, 107, 19, 203, 20, 189, 99, 16, 14, 221,\n\t\t158, 55, 228, 39, 83, 57, 154, 80, 206, 161, 236, 252, 236,\n\t\t46, 105, 87, 46, 184, 81, 206, 38, 160, 132, 253, 75, 240,\n\t\t22, 113, 216, 33, 228, 39, 192, 144, 7, 20, 177, 243, 187,\n\t\t219, 242, 182, 172, 172, 46, 231, 64, 247, 30, 238, 255, 200,\n\t\t100, 224, 143, 39, 203, 79, 235, 132, 221, 62, 64, 93, 126,\n\t\t222, 136, 56, 252, 80, 109, 222, 181, 218, 158, 254, 243,\n\t\t231, 111, 47, 183, 58, 200, 243, 150, 156, 28, 177, 132, 201,\n\t\t219, 52, 57, 134, 152, 96, 0, 136, 192, 56, 186, 43, 220,\n\t\t132, 158, 144, 179, 32, 78, 88, 127, 161, 115, 235, 141, 242,\n\t\t143, 221, 81, 53, 156, 57, 64, 251, 251, 55, 178, 214, 144,\n\t\t190, 208, 118, 163, 72, 31, 150, 162, 200, 51, 223, 177, 145,\n\t\t183, 134, 196, 141, 182, 43, 42, 188, 125, 255, 110, 111,\n\t\t125, 250, 104, 230, 15, 95, 62, 222, 221, 26, 111, 232, 29,\n\t\t54, 91, 99, 104, 63, 18, 243, 146, 154, 251, 246, 152, 23,\n\t\t216, 70, 122, 161, 205, 238, 220, 97, 42, 121, 133, 122, 129,\n\t\t208, 234, 203, 100, 150, 235, 28, 148, 211, 101, 118, 11,\n\t\t78, 109, 114, 94, 56, 106, 230, 42, 100, 102, 98, 150, 15,\n\t\t111, 227, 228, 14, 179, 90, 23, 220, 240, 245, 122, 55, 41,\n\t\t236, 139, 87, 225, 91, 121, 214, 130, 90, 181, 1, 204, 144,\n\t\t212, 203, 37, 12, 196, 122, 226, 40, 246, 101, 112, 61, 243,\n\t\t21, 35, 167, 113, 148, 192, 110, 125, 177, 96, 158, 12, 115,\n\t\t99, 171, 98, 160, 191, 180, 181, 168, 32, 193, 2, 89, 209,\n\t\t224, 188, 50, 39, 235, 211, 85, 137, 97, 120, 51, 14, 219,\n\t\t146, 114, 6, 215, 155, 38, 199, 42, 174, 141, 156, 56, 250,\n\t\t86, 108, 225, 200, 234, 68, 226, 171, 56, 3, 206, 32, 6, 123,\n\t\t83, 60, 41, 105, 87, 58, 217, 29, 160, 159, 95, 190, 62, 159,\n\t\t222, 50, 104, 180, 61, 214, 136, 255, 45, 97, 89, 239, 12,\n\t\t62, 122, 143, 215, 252, 126, 200, 32, 76, 28, 239, 139, 131,\n\t\t255, 161, 37, 238, 29, 18, 255, 175, 84, 120, 14, 15, 226,\n\t\t224, 121, 177, 232, 15, 67, 160, 234, 163, 87, 120, 16, 126,\n\t\t84, 191, 47, 20, 255, 175, 15, 203, 242, 124, 179, 8, 183,\n\t\t157, 116, 63, 159, 210, 163, 104, 5, 9, 173, 126, 219, 234,\n\t\t207, 214, 102, 228, 124, 208, 223, 97, 109, 246, 97, 223,\n\t\t218, 204, 224, 112, 187, 214, 102, 82, 129, 217, 218, 12,\n\t\t69, 141, 134, 123, 106, 63, 104, 120, 46, 174, 61, 176, 192,\n\t\t238, 88, 87, 19, 104, 143, 126, 196, 62, 91, 220, 143, 189,\n\t\t0, 143, 65, 135, 106, 248, 226, 88, 45, 3, 79, 7, 176, 176,\n\t\t174, 79, 239, 14, 151, 79, 203, 114, 19, 169, 214, 110, 124,\n\t\t19, 235, 150, 237, 61, 214, 236, 89, 195, 236, 29, 130, 235,\n\t\t205, 54, 218, 222, 96, 64, 72, 223, 126, 87, 44, 255, 227,\n\t\t80, 254, 31, 141, 162, 15, 189, 219, 58, 133, 224, 109, 93,\n\t\t130, 119, 22, 23, 58, 219, 14, 51, 59, 154, 0, 160, 195, 237,\n\t\t174, 65, 244, 102, 205, 63, 244, 28, 38, 50, 131, 153, 99,\n\t\t67, 102, 14, 32, 47, 129, 224, 16, 247, 150, 43, 54, 105,\n\t\t168, 197, 137, 90, 131, 123, 58, 69, 166, 1, 215, 52, 130,\n\t\t98, 211, 48, 44, 42, 105, 168, 12, 0, 69, 136, 24, 62, 122,\n\t\t174, 197, 235, 83, 14, 236, 172, 116, 182, 206, 89, 19, 42,\n\t\t212, 105, 86, 86, 130, 244, 104, 55, 193, 30, 120, 20, 248,\n\t\t80, 175, 41, 83, 219, 136, 254, 208, 183, 145, 96, 152, 241,\n\t\t226, 11, 183, 209, 132, 191, 179, 52, 18, 90, 11, 143, 210,\n\t\t134, 26, 237, 36, 85, 158, 209, 74, 41, 11, 110, 167, 180,\n\t\t81, 82, 71, 11, 90, 72, 155, 98, 127, 176, 126, 121, 62, 205,\n\t\t95, 62, 253, 245, 245, 211, 203, 103, 243, 219, 203, 215,\n\t\t175, 203, 243, 205, 208, 205, 59, 91, 121, 80, 42, 51, 152,\n\t\t209, 86, 170, 110, 145, 112, 146, 52, 225, 22, 153, 50, 100,\n\t\t6, 132, 204, 28, 54, 40, 128, 144, 227, 186, 8, 254, 55, 31,\n\t\t220, 219, 200, 4, 251, 187, 68, 112, 255, 64, 1, 187, 38,\n\t\t58, 31, 28, 233, 56, 142, 149, 40, 205, 208, 152, 84, 116,\n\t\t128, 8, 2, 33, 64, 55, 93, 191, 186, 172, 87, 11, 252, 173,\n\t\t101, 157, 139, 81, 203, 122, 31, 150, 122, 150, 31, 174, 173,\n\t\t248, 195, 206, 27, 227, 190, 99, 234, 206, 24, 184, 167, 117,\n\t\t180, 27, 118, 249, 205, 56, 248, 31, 245, 178, 79, 98, 91,\n\t\t139, 57, 252, 204, 113, 201, 145, 244, 57, 220, 64, 203, 255,\n\t\t76, 89, 233, 161, 113, 248, 191, 93, 82, 220, 39, 203, 253,\n\t\t235, 203, 203, 252, 252, 241, 239, 47, 183, 193, 218, 237,\n\t\t198, 199, 185, 10, 76, 164, 181, 210, 6, 245, 112, 11, 244,\n\t\t197, 61, 146, 68, 226, 190, 220, 5, 74, 63, 152, 90, 30, 90,\n\t\t135, 31, 148, 196, 163, 234, 13, 129, 36, 62, 16, 211, 146,\n\t\t35, 117, 249, 112, 246, 105, 71, 12, 132, 177, 196, 71, 198,\n\t\t122, 248, 62, 63, 16, 251, 144, 52, 239, 204, 77, 138, 220,\n\t\t40, 126, 122, 245, 57, 105, 225, 139, 186, 173, 84, 131, 93,\n\t\t20, 33, 75, 226, 143, 230, 44, 155, 155, 151, 96, 29, 197,\n\t\t107, 31, 199, 162, 213, 186, 37, 84, 197, 3, 98, 237, 245,\n\t\t232, 93, 224, 72, 177, 183, 218, 229, 94, 128, 46, 45, 167,\n\t\t222, 246, 101, 128, 189, 38, 5, 16, 28, 216, 93, 90, 53, 147,\n\t\t71, 100, 131, 70, 18, 173, 104, 242, 227, 204, 168, 159, 209,\n\t\t10, 106, 253, 128, 11, 231, 89, 14, 122, 132, 195, 113, 122,\n\t\t135, 18, 121, 56, 221, 131, 220, 216, 7, 117, 60, 126, 250,\n\t\t235, 175, 79, 159, 255, 48, 191, 127, 184, 205, 117, 106,\n\t\t59, 4, 31, 36, 207, 63, 10, 82, 120, 40, 196, 167, 1, 247,\n\t\t186, 7, 216, 7, 195, 194, 123, 46, 100, 133, 37, 135, 239,\n\t\t220, 136, 131, 187, 94, 173, 174, 6, 253, 97, 135, 68, 228,\n\t\t123, 119, 255, 135, 15, 253, 21, 207, 172, 15, 102, 247, 219,\n\t\t47, 154, 203, 155, 9, 250, 180, 159, 237, 36, 232, 11, 240,\n\t\t235, 172, 97, 157, 180, 101, 171, 94, 33, 171, 69, 28, 145,\n\t\t173, 124, 237, 210, 117, 113, 144, 47, 115, 159, 12, 124,\n\t\t243, 151, 145, 154, 227, 132, 20, 112, 6, 70, 161, 63, 2,\n\t\t112, 9, 44, 120, 239, 11, 22, 59, 188, 35, 90, 12, 230, 247,\n\t\t247, 22, 248, 158, 242, 178, 42, 65, 65, 2, 48, 245, 165,\n\t\t229, 243, 168, 144, 185, 172, 249, 248, 244, 96, 66, 255,\n\t\t249, 114, 143, 161, 183, 221, 120, 55, 55, 83, 57, 6, 154,\n\t\t202, 219, 177, 116, 49, 100, 206, 134, 55, 13, 115, 51, 160,\n\t\t176, 63, 131, 218, 230, 102, 163, 191, 28, 81, 184, 255, 254,\n\t\t136, 66, 27, 228, 104, 227, 20, 11, 109, 29, 121, 128, 181,\n\t\t139, 62, 52, 48, 152, 123, 229, 208, 199, 21, 148, 185, 4,\n\t\t91, 156, 63, 155, 200, 201, 57, 15, 235, 120, 157, 209, 118,\n\t\t81, 201, 181, 144, 172, 33, 135, 65, 204, 160, 93, 159, 88,\n\t\t36, 58, 209, 7, 166, 43, 225, 128, 219, 176, 174, 242, 49,\n\t\t90, 137, 146, 148, 19, 2, 231, 124, 46, 65, 75, 127, 171,\n\t\t25, 246, 58, 96, 189, 219, 72, 216, 199, 168, 186, 143, 211,\n\t\t200, 24, 226, 223, 94, 159, 18, 122, 116, 111, 231, 59, 235,\n\t\t154, 186, 43, 143, 180, 244, 166, 229, 19, 110, 232, 59, 171,\n\t\t0, 66, 11, 147, 195, 28, 97, 51, 70, 101, 254, 106, 48, 81,\n\t\t166, 86, 109, 157, 34, 116, 229, 21, 38, 74, 130, 96, 70,\n\t\t176, 104, 145, 96, 157, 53, 122, 148, 166, 243, 47, 232, 232,\n\t\t48, 130, 77, 197, 224, 170, 169, 98, 3, 42, 183, 112, 6, 213,\n\t\t60, 78, 104, 132, 60, 104, 111, 233, 22, 96, 3, 203, 119,\n\t\t239, 144, 82, 113, 46, 146, 21, 253, 195, 157, 29, 58, 169,\n\t\t253, 220, 67, 89, 154, 41, 170, 24, 82, 57, 253, 255, 245,\n\t\t41, 199, 130, 238, 254, 239, 155, 193, 187, 43, 210, 127,\n\t\t190, 124, 250, 252, 199, 173, 154, 191, 186, 255, 156, 7,\n\t\t114, 115, 180, 97, 41, 178, 39, 148, 188, 248, 136, 24, 104,\n\t\t234, 156, 140, 0, 167, 6, 0, 125, 142, 36, 239, 172, 58, 109,\n\t\t116, 44, 64, 60, 208, 140, 229, 195, 146, 117, 34, 198, 197,\n\t\t20, 174, 240, 84, 57, 146, 116, 49, 101, 12, 53, 254, 114,\n\t\t193, 239, 114, 73, 235, 98, 182, 140, 51, 215, 148, 61, 111,\n\t\t179, 116, 188, 77, 173, 34, 131, 99, 146, 207, 197, 72, 173,\n\t\t38, 169, 229, 172, 104, 220, 12, 179, 10, 103, 12, 58, 60,\n\t\t9, 10, 116, 136, 147, 188, 221, 18, 52, 63, 131, 193, 76,\n\t\t151, 60, 6, 11, 139, 166, 239, 34, 139, 97, 153, 115, 203,\n\t\t202, 18, 190, 133, 44, 102, 193, 195, 48, 95, 179, 136, 240,\n\t\t98, 39, 18, 163, 218, 129, 170, 197, 104, 18, 114, 197, 187,\n\t\t200, 98, 30, 114, 216, 92, 146, 179, 92, 83, 169, 188, 2,\n\t\t138, 172, 78, 177, 20, 155, 183, 52, 48, 184, 236, 154, 77,\n\t\t197, 161, 123, 185, 63, 222, 67, 39, 116, 93, 223, 237, 224,\n\t\t184, 102, 131, 90, 86, 235, 162, 124, 89, 56, 22, 158, 254,\n\t\t206, 55, 35, 230, 126, 213, 184, 165, 135, 132, 20, 211, 61,\n\t\t18, 38, 37, 204, 49, 183, 228, 48, 11, 18, 177, 104, 26, 209,\n\t\t108, 154, 232, 111, 151, 115, 187, 163, 247, 154, 129, 71,\n\t\t107, 16, 217, 232, 120, 184, 233, 143, 43, 158, 166, 205,\n\t\t248, 170, 0, 110, 200, 74, 153, 144, 57, 172, 96, 209, 198,\n\t\t209, 182, 121, 7, 89, 213, 155, 244, 57, 143, 8, 143, 174,\n\t\t184, 115, 222, 71, 157, 3, 116, 250, 175, 55, 246, 133, 190,\n\t\t147, 12, 78, 82, 39, 201, 195, 130, 214, 77, 53, 76, 88, 174,\n\t\t144, 231, 198, 50, 105, 76, 0, 169, 171, 3, 16, 143, 103,\n\t\t174, 134, 205, 232, 166, 222, 46, 142, 143, 38, 50, 84, 59,\n\t\t246, 228, 129, 45, 107, 243, 154, 20, 200, 23, 146, 156, 141,\n\t\t165, 161, 74, 106, 112, 21, 4, 24, 60, 87, 82, 48, 241, 253,\n\t\t245, 41, 122, 111, 203, 212, 220, 12, 40, 37, 109, 228, 4,\n\t\t202, 1, 201, 25, 227, 66, 15, 112, 80, 243, 186, 170, 229,\n\t\t26, 45, 152, 223, 72, 147, 54, 249, 232, 100, 248, 189, 51,\n\t\t211, 189, 173, 15, 157, 87, 83, 124, 82, 129, 102, 91, 253,\n\t\t233, 242, 109, 142, 244, 214, 190, 247, 215, 167, 220, 163,\n\t\t77, 83, 114, 222, 38, 6, 127, 194, 56, 154, 202, 72, 220,\n\t\t78, 200, 152, 82, 108, 253, 224, 10, 237, 21, 154, 249, 147,\n\t\t86, 129, 103, 99, 34, 231, 47, 91, 19, 185, 183, 17, 72, 84,\n\t\t145, 243, 35, 97, 37, 31, 59, 39, 139, 132, 186, 85, 234,\n\t\t107, 168, 67, 161, 136, 126, 147, 178, 72, 135, 217, 161,\n\t\t194, 64, 23, 2, 196, 53, 67, 137, 198, 41, 182, 96, 227, 194,\n\t\t15, 227, 103, 170, 231, 66, 119, 89, 110, 224, 251, 222, 11,\n\t\t158, 26, 101, 68, 247, 102, 110, 97, 122, 152, 73, 78, 115,\n\t\t238, 241, 68, 105, 141, 153, 154, 138, 227, 137, 209, 112,\n\t\t69, 39, 11, 154, 236, 194, 147, 209, 71, 162, 86, 122, 228,\n\t\t195, 216, 157, 57, 199, 231, 47, 127, 190, 252, 249, 252,\n\t\t245, 249, 203, 205, 236, 241, 3, 103, 174, 22, 219, 166, 132,\n\t\t116, 210, 36, 137, 82, 120, 3, 218, 49, 146, 176, 226, 24,\n\t\t239, 170, 141, 171, 65, 140, 49, 204, 23, 19, 50, 234, 30,\n\t\t72, 129, 112, 254, 72, 202, 83, 99, 110, 13, 218, 193, 251,\n\t\t108, 250, 58, 130, 37, 233, 139, 161, 200, 198, 161, 46, 104,\n\t\t110, 197, 90, 218, 220, 195, 39, 112, 139, 83, 253, 116, 105,\n\t\t125, 106, 253, 12, 200, 179, 237, 234, 69, 21, 94, 178, 102,\n\t\t144, 101, 206, 32, 59, 220, 99, 32, 27, 171, 244, 157, 61,\n\t\t120, 119, 253, 218, 217, 131, 197, 116, 41, 186, 203, 162,\n\t\t56, 9, 50, 12, 169, 94, 60, 204, 165, 94, 255, 132, 100, 112,\n\t\t64, 181, 112, 107, 102, 87, 209, 34, 80, 8, 219, 106, 73,\n\t\t224, 189, 195, 94, 248, 203, 197, 2, 84, 41, 83, 125, 50,\n\t\t85, 134, 167, 106, 153, 163, 204, 12, 144, 196, 116, 225,\n\t\t127, 74, 138, 174, 31, 89, 242, 244, 220, 116, 251, 164, 17,\n\t\t159, 110, 131, 83, 250, 141, 235, 62, 181, 1, 27, 82, 73,\n\t\t35, 10, 197, 111, 172, 166, 111, 178, 71, 138, 40, 32, 169,\n\t\t3, 99, 236, 190, 87, 64, 9, 42, 9, 168, 221, 132, 83, 59,\n\t\t23, 19, 82, 193, 26, 68, 13, 2, 46, 138, 53, 9, 18, 95, 18,\n\t\t214, 139, 168, 135, 117, 104, 73, 124, 6, 177, 70, 154, 249,\n\t\t231, 52, 127, 90, 19, 36, 189, 186, 143, 107, 227, 201, 29,\n\t\t217, 145, 121, 128, 82, 197, 179, 156, 101, 247, 174, 9, 172,\n\t\t201, 182, 177, 192, 250, 20, 109, 94, 66, 10, 54, 77, 33,\n\t\t193, 50, 187, 169, 191, 131, 192, 124, 211, 94, 247, 4, 4,\n\t\t204, 147, 152, 116, 22, 191, 95, 54, 120, 138, 190, 77, 190,\n\t\t135, 165, 0, 122, 64, 169, 75, 42, 237, 105, 85, 8, 255, 140,\n\t\t79, 77, 240, 3, 143, 62, 239, 167, 33, 208, 16, 185, 149,\n\t\t38, 226, 219, 210, 68, 13, 136, 95, 218, 81, 207, 246, 248,\n\t\t141, 221, 174, 178, 153, 30, 41, 211, 224, 105, 230, 152,\n\t\t213, 45, 119, 19, 119, 105, 115, 250, 239, 68, 159, 219, 243,\n\t\t205, 157, 67, 114, 71, 70, 85, 74, 137, 222, 0, 81, 98, 37,\n\t\t157, 123, 57, 154, 146, 30, 35, 97, 28, 222, 99, 67, 126,\n\t\t12, 133, 177, 143, 132, 1, 95, 226, 127, 123, 243, 30, 126,\n\t\t168, 125, 83, 12, 119, 218, 119, 111, 12, 254, 215, 135, 47,\n\t\t207, 199, 151, 191, 79, 55, 106, 121, 223, 73, 106, 205, 46,\n\t\t61, 48, 20, 62, 124, 221, 88, 42, 45, 49, 73, 118, 223, 155,\n\t\t166, 94, 6, 200, 219, 78, 155, 83, 33, 229, 21, 213, 113,\n\t\t63, 88, 155, 61, 163, 199, 97, 89, 87, 179, 171, 218, 20,\n\t\t1, 241, 208, 218, 116, 174, 141, 239, 225, 7, 235, 83, 109,\n\t\t222, 169, 209, 251, 43, 68, 179, 11, 128, 68, 49, 250, 121,\n\t\t192, 14, 33, 100, 148, 193, 63, 196, 206, 194, 71, 137, 133,\n\t\t187, 179, 137, 9, 4, 22, 251, 181, 108, 110, 111, 174, 132,\n\t\t212, 54, 220, 10, 224, 134, 134, 97, 84, 98, 96, 249, 251,\n\t\t209, 144, 240, 219, 64, 179, 209, 216, 249, 189, 94, 175,\n\t\t46, 112, 57, 3, 230, 208, 135, 77, 183, 95, 41, 188, 23, 85,\n\t\t75, 183, 24, 229, 194, 19, 107, 42, 154, 65, 90, 225, 176,\n\t\t0, 92, 221, 147, 154, 149, 108, 235, 174, 132, 41, 88, 23,\n\t\t122, 156, 124, 180, 62, 231, 8, 6, 162, 212, 38, 223, 108,\n\t\t202, 216, 50, 232, 112, 38, 73, 48, 50, 193, 126, 180, 57,\n\t\t227, 109, 108, 73, 57, 251, 113, 165, 225, 75, 247, 167, 230,\n\t\t243, 167, 63, 142, 55, 190, 184, 62, 16, 214, 83, 226, 136,\n\t\t107, 216, 79, 55, 72, 252, 126, 224, 240, 71, 201, 144, 192,\n\t\t5, 242, 219, 5, 6, 63, 150, 59, 189, 95, 125, 141, 94, 17,\n\t\t255, 249, 118, 254, 121, 20, 204, 180, 1, 33, 91, 18, 250,\n\t\t129, 64, 149, 130, 227, 210, 65, 9, 100, 228, 39, 168, 21,\n\t\t204, 244, 52, 206, 32, 38, 24, 104, 82, 173, 78, 173, 88,\n\t\t31, 96, 198, 235, 140, 231, 75, 95, 78, 128, 0, 150, 95, 228,\n\t\t7, 26, 134, 49, 217, 222, 89, 7, 202, 185, 231, 58, 209, 242,\n\t\t225, 123, 93, 11, 239, 69, 43, 197, 192, 0, 156, 116, 223,\n\t\t108, 172, 142, 179, 30, 10, 128, 92, 11, 63, 146, 81, 209,\n\t\t79, 122, 66, 142, 113, 14, 74, 249, 246, 7, 186, 250, 100,\n\t\t46, 238, 29, 127, 232, 89, 153, 228, 182, 218, 45, 41, 86,\n\t\t193, 219, 158, 88, 254, 241, 213, 181, 222, 6, 155, 27, 44,\n\t\t148, 12, 168, 37, 199, 177, 227, 90, 152, 119, 131, 197, 197,\n\t\t116, 9, 136, 194, 146, 155, 18, 141, 115, 119, 56, 37, 55,\n\t\t78, 227, 44, 141, 94, 103, 115, 18, 221, 181, 244, 28, 39,\n\t\t64, 254, 58, 219, 105, 104, 133, 106, 125, 113, 97, 137, 209,\n\t\t150, 210, 59, 73, 38, 116, 241, 28, 109, 170, 174, 146, 210,\n\t\t225, 93, 204, 204, 57, 196, 130, 85, 181, 57, 56, 24, 14,\n\t\t146, 119, 190, 76, 193, 3, 8, 167, 245, 150, 104, 246, 184,\n\t\t94, 43, 219, 87, 105, 232, 211, 125, 201, 133, 200, 0, 16,\n\t\t152, 13, 122, 227, 238, 104, 254, 183, 249, 242, 225, 6, 242,\n\t\t164, 239, 132, 102, 132, 228, 246, 97, 9, 238, 57, 237, 79,\n\t\t55, 251, 254, 53, 58, 23, 59, 37, 246, 35, 44, 126, 4, 209,\n\t\t43, 253, 96, 68, 235, 225, 39, 72, 50, 143, 228, 169, 199,\n\t\t181, 248, 177, 74, 112, 64, 60, 83, 62, 210, 23, 117, 151,\n\t\t6, 183, 15, 120, 121, 56, 26, 31, 169, 232, 163, 119, 111,\n\t\t34, 54, 62, 138, 162, 115, 233, 28, 210, 238, 21, 143, 162,\n\t\t185, 67, 66, 49, 63, 22, 243, 237, 176, 254, 226, 133, 30,\n\t\t22, 180, 79, 149, 196, 153, 240, 63, 177, 74, 229, 210, 155,\n\t\t183, 235, 151, 62, 93, 248, 181, 207, 30, 114, 229, 22, 72,\n\t\t99, 247, 250, 107, 63, 56, 61, 91, 186, 247, 109, 236, 129,\n\t\t199, 253, 75, 37, 196, 239, 139, 169, 255, 237, 229, 223,\n\t\t230, 229, 175, 231, 27, 136, 251, 254, 188, 131, 232, 25,\n\t\t96, 41, 135, 76, 7, 203, 232, 138, 122, 61, 114, 220, 57,\n\t\t4, 119, 241, 177, 42, 113, 229, 217, 248, 202, 113, 135, 73,\n\t\t69, 26, 7, 180, 72, 113, 71, 13, 190, 113, 191, 152, 224,\n\t\t11, 67, 5, 101, 9, 142, 216, 0, 16, 89, 134, 108, 103, 211,\n\t\t42, 142, 162, 135, 119, 193, 23, 27, 166, 245, 134, 164, 106,\n\t\t107, 94, 11, 247, 131, 99, 84, 127, 245, 103, 95, 27, 170,\n\t\t105, 4, 155, 139, 58, 66, 44, 160, 106, 113, 173, 114, 40,\n\t\t1, 87, 3, 126, 129, 79, 204, 202, 30, 235, 6, 35, 74, 103,\n\t\t205, 61, 144, 134, 174, 208, 96, 240, 129, 46, 3, 239, 11,\n\t\t135, 243, 224, 20, 85, 241, 142, 141, 112, 65, 188, 229, 73,\n\t\t209, 248, 229, 196, 235, 83, 137, 205, 198, 41, 186, 100,\n\t\t185, 245, 21, 228, 115, 67, 153, 183, 5, 6, 226, 47, 194,\n\t\t162, 188, 0, 26, 6, 174, 194, 92, 108, 62, 204, 195, 195,\n\t\t102, 96, 58, 148, 248, 49, 78, 136, 154, 42, 27, 251, 22,\n\t\t211, 21, 71, 43, 7, 235, 151, 144, 157, 245, 147, 160, 120,\n\t\t14, 34, 221, 149, 123, 89, 161, 48, 53, 26, 77, 35, 4, 26,\n\t\t95, 249, 250, 164, 176, 80, 201, 213, 97, 106, 24, 176, 157,\n\t\t117, 243, 225, 217, 15, 50, 201, 157, 120, 114, 24, 0, 162,\n\t\t92, 47, 110, 202, 28, 64, 39, 139, 131, 225, 26, 31, 68, 6,\n\t\t122, 2, 166, 246, 170, 6, 56, 160, 228, 192, 224, 59, 107,\n\t\t110, 151, 26, 195, 71, 75, 104, 153, 3, 57, 44, 238, 3, 100,\n\t\t191, 252, 249, 231, 243, 231, 175, 230, 227, 203, 173, 83,\n\t\t228, 195, 199, 139, 164, 78, 95, 46, 147, 58, 7, 11, 62, 18,\n\t\t56, 93, 91, 211, 58, 49, 202, 229, 44, 104, 28, 19, 15, 53,\n\t\t83, 147, 70, 14, 170, 33, 203, 85, 75, 170, 150, 229, 24,\n\t\t188, 48, 166, 89, 151, 46, 169, 58, 246, 178, 182, 141, 79,\n\t\t206, 150, 113, 60, 155, 53, 220, 183, 12, 132, 71, 65, 167,\n\t\t101, 111, 196, 201, 32, 121, 202, 247, 13, 212, 36, 220, 33,\n\t\t149, 9, 122, 193, 40, 148, 167, 20, 134, 241, 23, 15, 202,\n\t\t74, 14, 33, 110, 78, 146, 177, 89, 227, 209, 36, 190, 92,\n\t\t167, 230, 213, 66, 92, 39, 31, 29, 235, 37, 62, 217, 46, 137,\n\t\t172, 212, 20, 200, 92, 165, 45, 221, 131, 173, 180, 92, 102,\n\t\t205, 93, 164, 213, 157, 174, 114, 232, 112, 106, 155, 90,\n\t\t39, 1, 199, 167, 237, 177, 164, 219, 177, 196, 188, 91, 252,\n\t\t225, 135, 202, 143, 45, 253, 194, 234, 191, 103, 144, 158,\n\t\t150, 15, 167, 27, 250, 247, 223, 118, 140, 109, 164, 13, 57,\n\t\t168, 176, 26, 210, 35, 213, 43, 24, 0, 66, 168, 205, 251,\n\t\t206, 18, 3, 83, 107, 100, 64, 11, 106, 32, 203, 32, 5, 55,\n\t\t217, 243, 242, 175, 166, 79, 227, 221, 63, 60, 184, 21, 112,\n\t\t110, 59, 186, 15, 179, 174, 249, 144, 235, 223, 28, 232, 58,\n\t\t206, 5, 233, 82, 82, 83, 225, 105, 250, 190, 145, 78, 235,\n\t\t122, 180, 235, 74, 51, 215, 53, 37, 125, 0, 2, 230, 109, 94,\n\t\t107, 80, 70, 207, 209, 0, 66, 147, 206, 140, 36, 166, 202,\n\t\t13, 195, 222, 29, 4, 15, 166, 178, 87, 164, 33, 70, 107, 74,\n\t\t84, 95, 218, 8, 166, 172, 126, 31, 197, 143, 204, 154, 230,\n\t\t35, 139, 163, 144, 179, 15, 18, 48, 14, 1, 3, 103, 124, 157,\n\t\t240, 44, 37, 80, 8, 168, 104, 101, 78, 235, 108, 61, 3, 75,\n\t\t131, 139, 64, 97, 48, 133, 164, 192, 187, 4, 70, 230, 60,\n\t\t118, 139, 110, 147, 30, 237, 175, 144, 144, 236, 6, 154, 230,\n\t\t88, 236, 213, 82, 40, 78, 244, 9, 236, 182, 251, 102, 231,\n\t\t249, 229, 239, 249, 118, 38, 220, 32, 54, 93, 57, 177, 33,\n\t\t83, 223, 48, 250, 141, 196, 232, 35, 171, 20, 57, 78, 27,\n\t\t86, 237, 99, 12, 238, 14, 45, 55, 7, 184, 239, 231, 103, 159,\n\t\t217, 62, 129, 148, 24, 166, 29, 12, 185, 236, 210, 14, 66,\n\t\t34, 141, 218, 10, 113, 50, 73, 242, 44, 132, 40, 253, 108,\n\t\t124, 112, 182, 63, 212, 123, 30, 0, 186, 73, 60, 156, 202,\n\t\t192, 251, 69, 237, 151, 132, 234, 24, 223, 213, 127, 193,\n\t\t75, 26, 228, 233, 24, 38, 229, 119, 223, 33, 111, 140, 143,\n\t\t48, 94, 168, 11, 90, 122, 144, 139, 253, 16, 171, 244, 243,\n\t\t135, 175, 55, 230, 225, 223, 250, 118, 127, 167, 254, 228,\n\t\t173, 203, 241, 22, 174, 163, 23, 7, 180, 191, 143, 225, 204,\n\t\t199, 56, 135, 189, 126, 251, 3, 75, 2, 23, 247, 142, 63, 175,\n\t\t79, 1, 75, 70, 204, 142, 150, 216, 1, 59, 62, 36, 49, 35,\n\t\t196, 244, 226, 70, 84, 252, 242, 194, 243, 120, 102, 217,\n\t\t155, 91, 160, 33, 25, 158, 37, 78, 101, 81, 42, 138, 83, 26,\n\t\t86, 249, 169, 192, 111, 59, 214, 228, 160, 14, 81, 197, 254,\n\t\t26, 174, 41, 61, 225, 57, 176, 159, 173, 92, 114, 174, 174,\n\t\t229, 201, 151, 114, 121, 134, 198, 147, 184, 239, 202, 106,\n\t\t14, 247, 194, 199, 188, 193, 69, 197, 72, 146, 24, 233, 25,\n\t\t97, 25, 97, 80, 179, 136, 232, 59, 178, 14, 18, 184, 249,\n\t\t215, 71, 101, 146, 251, 54, 209, 37, 67, 191, 242, 113, 80,\n\t\t47, 122, 126, 211, 195, 204, 88, 90, 34, 72, 6, 14, 175, 147,\n\t\t13, 40, 69, 20, 150, 56, 186, 154, 68, 22, 211, 197, 141,\n\t\t61, 72, 145, 85, 144, 245, 99, 77, 226, 47, 71, 241, 51, 206,\n\t\t125, 141, 38, 146, 75, 148, 63, 224, 234, 214, 179, 103, 118,\n\t\t244, 89, 187, 123, 244, 182, 246, 175, 118, 184, 30, 175,\n\t\t221, 29, 86, 82, 163, 73, 123, 219, 164, 200, 142, 70, 237,\n\t\t109, 12, 15, 184, 180, 181, 183, 141, 118, 183, 246, 182,\n\t\t209, 222, 29, 225, 23, 122, 98, 237, 109, 237, 108, 229, 51,\n\t\t87, 64, 222, 114, 113, 124, 212, 126, 94, 187, 217, 15, 214,\n\t\t109, 25, 154, 3, 76, 86, 186, 153, 213, 35, 197, 68, 29, 10,\n\t\t142, 78, 229, 201, 47, 227, 33, 212, 197, 35, 138, 70, 251,\n\t\t151, 22, 66, 245, 146, 106, 247, 26, 244, 175, 234, 9, 232,\n\t\t223, 161, 163, 166, 56, 105, 247, 162, 119, 181, 171, 140,\n\t\t246, 238, 117, 167, 234, 137, 163, 25, 94, 216, 62, 4, 15,\n\t\t175, 49, 94, 117, 180, 157, 158, 209, 30, 54, 210, 197, 108,\n\t\t33, 234, 229, 225, 138, 54, 115, 66, 157, 142, 243, 11, 225,\n\t\t144, 19, 234, 18, 226, 126, 215, 114, 204, 70, 214, 148, 76,\n\t\t207, 71, 43, 34, 139, 80, 36, 107, 48, 233, 3, 178, 127, 164,\n\t\t133, 228, 174, 26, 217, 134, 94, 226, 128, 92, 215, 253, 108,\n\t\t96, 158, 15, 19, 204, 56, 115, 99, 165, 209, 122, 109, 144,\n\t\t210, 219, 49, 150, 100, 235, 60, 10, 84, 122, 7, 45, 78, 143,\n\t\t111, 18, 66, 147, 4, 172, 32, 100, 69, 174, 65, 13, 33, 155,\n\t\t5, 145, 55, 117, 196, 100, 209, 186, 99, 163, 151, 193, 126,\n\t\t98, 247, 227, 120, 62, 190, 156, 111, 119, 130, 15, 255, 103,\n\t\t131, 236, 24, 26, 242, 137, 179, 164, 71, 194, 245, 100, 186,\n\t\t12, 149, 56, 160, 10, 163, 179, 109, 170, 28, 3, 50, 251,\n\t\t1, 180, 205, 147, 33, 200, 36, 40, 130, 168, 157, 26, 135,\n\t\t95, 52, 82, 94, 219, 58, 23, 242, 64, 85, 201, 50, 74, 131,\n\t\t194, 189, 75, 212, 24, 201, 149, 73, 195, 153, 52, 20, 172,\n\t\t73, 113, 89, 101, 39, 31, 112, 255, 153, 118, 15, 170, 144,\n\t\t152, 136, 91, 58, 122, 31, 22, 12, 43, 54, 122, 1, 111, 220,\n\t\t161, 4, 137, 125, 83, 204, 111, 141, 117, 131, 91, 128, 190,\n\t\t31, 77, 45, 162, 183, 151, 44, 64, 240, 89, 88, 17, 76, 209,\n\t\t165, 37, 15, 40, 246, 36, 18, 242, 70, 124, 149, 24, 11, 150,\n\t\t128, 103, 211, 69, 48, 29, 74, 122, 204, 182, 77, 35, 80,\n\t\t202, 231, 104, 3, 130, 252, 56, 30, 108, 77, 6, 208, 182,\n\t\t145, 37, 70, 80, 177, 17, 187, 192, 185, 235, 81, 214, 4,\n\t\t22, 228, 117, 20, 106, 219, 6, 221, 200, 100, 245, 82, 163,\n\t\t207, 76, 74, 77, 234, 147, 105, 138, 21, 239, 89, 246, 213,\n\t\t195, 150, 33, 109, 37, 137, 200, 211, 229, 179, 9, 190, 99,\n\t\t224, 59, 74, 239, 179, 66, 177, 203, 90, 28, 128, 152, 175,\n\t\t104, 229, 125, 221, 227, 231, 68, 147, 75, 151, 51, 240, 69,\n\t\t24, 159, 161, 39, 68, 208, 2, 120, 91, 207, 89, 116, 38, 71,\n\t\t83, 22, 13, 31, 165, 252, 38, 111, 2, 167, 57, 190, 190, 30,\n\t\t208, 213, 161, 85, 219, 175, 144, 59, 185, 209, 32, 169, 173,\n\t\t134, 238, 75, 51, 250, 27, 180, 222, 44, 22, 242, 40, 189,\n\t\t144, 248, 166, 71, 12, 223, 199, 15, 159, 63, 154, 227, 203,\n\t\t242, 241, 78, 226, 206, 111, 123, 176, 132, 5, 60, 145, 190,\n\t\t219, 62, 15, 254, 24, 181, 76, 13, 154, 128, 88, 52, 62, 83,\n\t\t70, 70, 106, 50, 66, 125, 246, 8, 252, 11, 160, 3, 148, 29,\n\t\t169, 15, 177, 135, 35, 10, 17, 140, 71, 159, 71, 19, 115,\n\t\t177, 251, 222, 129, 94, 222, 246, 14, 72, 38, 204, 130, 96,\n\t\t162, 200, 171, 233, 28, 252, 228, 235, 164, 228, 63, 65, 86,\n\t\t168, 154, 46, 142, 143, 190, 184, 3, 173, 202, 8, 194, 211,\n\t\t172, 49, 69, 10, 143, 58, 25, 133, 233, 98, 141, 159, 55,\n\t\t94, 227, 206, 7, 192, 123, 208, 109, 44, 14, 120, 58, 221,\n\t\t199, 170, 134, 27, 95, 188, 223, 85, 39, 223, 114, 183, 31,\n\t\t189, 111, 54, 206, 62, 113, 179, 175, 220, 71, 202, 112, 157,\n\t\t220, 228, 211, 210, 53, 28, 87, 162, 143, 134, 156, 231, 166,\n\t\t184, 46, 154, 26, 243, 136, 58, 238, 71, 37, 111, 7, 141,\n\t\t57, 62, 127, 248, 114, 227, 50, 254, 237, 198, 182, 189, 33,\n\t\t22, 168, 24, 58, 189, 218, 188, 32, 189, 6, 241, 109, 180,\n\t\t35, 130, 14, 4, 175, 18, 53, 0, 53, 136, 165, 178, 201, 42,\n\t\t53, 0, 178, 125, 179, 109, 214, 234, 11, 129, 20, 173, 69,\n\t\t188, 128, 12, 6, 36, 82, 16, 76, 21, 77, 89, 117, 30, 153,\n\t\t232, 203, 38, 152, 139, 71, 132, 170, 215, 162, 240, 235,\n\t\t88, 136, 98, 57, 70, 116, 88, 239, 147, 12, 160, 168, 121,\n\t\t30, 81, 214, 151, 168, 61, 212, 196, 34, 145, 135, 237, 153,\n\t\t170, 123, 224, 215, 237, 12, 48, 23, 86, 185, 111, 35, 171,\n\t\t136, 5, 85, 14, 49, 15, 220, 235, 255, 3, 179, 237, 240, 254,\n\t\t233, 246, 255, 214, 108, 59, 252, 228, 233, 246, 247, 233,\n\t\t6, 66, 120, 190, 201, 6, 200, 41, 13, 85, 185, 218, 50, 69,\n\t\t23, 17, 93, 41, 124, 13, 170, 12, 80, 127, 15, 195, 161, 50,\n\t\t38, 137, 176, 57, 155, 4, 131, 105, 39, 61, 135, 67, 82, 101,\n\t\t123, 47, 241, 44, 33, 54, 59, 160, 78, 251, 233, 217, 34,\n\t\t6, 207, 194, 199, 44, 213, 9, 170, 7, 171, 9, 107, 195, 128,\n\t\t148, 103, 141, 249, 79, 50, 108, 87, 193, 78, 54, 127, 20,\n\t\t197, 186, 217, 97, 217, 164, 104, 193, 113, 129, 91, 245,\n\t\t83, 229, 148, 65, 252, 52, 178, 122, 135, 9, 83, 235, 100,\n\t\t116, 69, 81, 165, 196, 75, 48, 179, 156, 56, 154, 24, 68,\n\t\t24, 87, 190, 103, 236, 197, 114, 183, 74, 78, 109, 53, 253,\n\t\t225, 11, 98, 100, 180, 100, 204, 120, 201, 195, 210, 57, 217,\n\t\t248, 196, 146, 221, 208, 56, 14, 115, 80, 132, 62, 237, 192,\n\t\t228, 214, 20, 198, 65, 213, 166, 29, 40, 182, 40, 144, 73,\n\t\t41, 95, 134, 246, 161, 41, 241, 108, 214, 94, 220, 181, 41,\n\t\t249, 50, 15, 225, 226, 174, 81, 73, 7, 12, 122, 115, 52, 156,\n\t\t152, 79, 7, 156, 159, 242, 195, 161, 51, 73, 30, 21, 0, 112,\n\t\t121, 97, 133, 58, 87, 75, 140, 103, 10, 35, 238, 77, 230,\n\t\t246, 171, 8, 211, 198, 203, 70, 21, 44, 89, 152, 85, 255,\n\t\t159, 136, 180, 97, 30, 184, 43, 82, 27, 117, 145, 105, 55,\n\t\t106, 47, 234, 137, 163, 74, 152, 73, 86, 108, 26, 217, 234,\n\t\t211, 102, 73, 78, 101, 201, 209, 129, 113, 148, 153, 167,\n\t\t225, 229, 43, 35, 250, 23, 159, 175, 79, 57, 70, 184, 87,\n\t\t176, 116, 139, 116, 184, 93, 186, 69, 208, 93, 151, 110, 17,\n\t\t207, 101, 237, 166, 145, 76, 51, 83, 23, 111, 197, 135, 89,\n\t\t23, 239, 161, 82, 48, 225, 150, 76, 10, 134, 151, 177, 76,\n\t\t31, 164, 139, 92, 30, 38, 3, 110, 28, 21, 155, 47, 151, 115,\n\t\t237, 137, 50, 173, 23, 28, 197, 156, 177, 36, 205, 193, 210,\n\t\t25, 44, 250, 42, 45, 237, 18, 186, 174, 75, 123, 233, 162,\n\t\t5, 233, 210, 158, 189, 245, 206, 207, 126, 212, 40, 202, 146,\n\t\t51, 86, 248, 160, 32, 147, 178, 194, 31, 182, 244, 207, 99,\n\t\t137, 47, 151, 11, 58, 134, 22, 111, 196, 235, 18, 31, 37,\n\t\t237, 68, 115, 121, 220, 134, 230, 112, 243, 254, 178, 147,\n\t\t150, 211, 88, 77, 240, 214, 122, 250, 232, 189, 103, 166,\n\t\t47, 214, 184, 39, 216, 120, 56, 139, 64, 22, 253, 168, 52,\n\t\t112, 105, 105, 44, 194, 175, 114, 150, 142, 120, 71, 47, 230,\n\t\t217, 26, 47, 11, 191, 18, 102, 63, 92, 248, 111, 220, 156,\n\t\t243, 14, 24, 95, 64, 248, 122, 240, 213, 150, 37, 43, 36,\n\t\t73, 229, 119, 155, 135, 25, 69, 151, 145, 145, 176, 170, 92,\n\t\t140, 227, 132, 220, 130, 180, 255, 135, 203, 3, 45, 211, 179,\n\t\t254, 132, 236, 50, 155, 87, 70, 103, 177, 40, 120, 222, 187,\n\t\t103, 19, 166, 170, 22, 196, 1, 231, 59, 16, 63, 21, 212, 139,\n\t\t229, 49, 18, 151, 146, 245, 200, 218, 138, 135, 89, 151, 8,\n\t\t206, 231, 114, 204, 187, 164, 25, 58, 36, 105, 184, 115, 240,\n\t\t205, 238, 97, 148, 159, 238, 217, 119, 124, 106, 54, 45, 77,\n\t\t135, 158, 119, 213, 182, 121, 181, 162, 106, 232, 129, 81,\n\t\t118, 119, 117, 191, 11, 71, 203, 162, 106, 172, 124, 206,\n\t\t42, 162, 234, 167, 26, 203, 18, 86, 71, 16, 189, 179, 84,\n\t\t22, 89, 247, 159, 242, 32, 197, 84, 34, 130, 177, 33, 85,\n\t\t165, 98, 146, 21, 78, 29, 101, 73, 124, 197, 122, 94, 222,\n\t\t55, 169, 173, 85, 174, 123, 125, 42, 142, 35, 54, 247, 77,\n\t\t92, 218, 110, 84, 1, 158, 145, 99, 113, 243, 163, 181, 77,\n\t\t116, 218, 35, 200, 176, 67, 38, 160, 41, 236, 1, 27, 166,\n\t\t93, 157, 209, 27, 202, 38, 150, 255, 6, 227, 85, 177, 237,\n\t\t194, 13, 102, 252, 106, 210, 80, 3, 130, 151, 121, 44, 131,\n\t\t107, 207, 165, 193, 0, 126, 242, 122, 125, 202, 98, 52, 211,\n\t\t177, 44, 67, 121, 76, 135, 49, 27, 214, 166, 102, 82, 43,\n\t\t129, 44, 229, 133, 76, 22, 66, 188, 213, 201, 87, 136, 248,\n\t\t117, 219, 1, 70, 46, 90, 123, 209, 172, 221, 120, 213, 11,\n\t\t171, 204, 66, 111, 200, 182, 95, 9, 177, 193, 64, 240, 35,\n\t\t42, 66, 70, 80, 81, 181, 65, 191, 120, 157, 203, 186, 189,\n\t\t232, 32, 212, 49, 168, 163, 23, 131, 247, 140, 17, 189, 51,\n\t\t13, 30, 47, 58, 230, 248, 188, 252, 117, 199, 36, 48, 239,\n\t\t132, 232, 167, 134, 224, 129, 75, 122, 236, 43, 40, 216, 45,\n\t\t48, 154, 204, 54, 29, 104, 27, 96, 52, 224, 116, 62, 54, 186,\n\t\t178, 221, 227, 198, 65, 120, 17, 110, 236, 99, 177, 160, 142,\n\t\t143, 150, 93, 52, 34, 170, 232, 77, 186, 178, 13, 101, 99,\n\t\t216, 79, 213, 77, 227, 117, 49, 106, 110, 242, 177, 217, 2,\n\t\t103, 157, 196, 41, 73, 119, 142, 187, 180, 24, 13, 242, 150,\n\t\t66, 150, 230, 166, 196, 2, 236, 57, 241, 186, 66, 131, 86,\n\t\t52, 5, 197, 107, 74, 234, 238, 23, 61, 85, 28, 221, 3, 152,\n\t\t32, 246, 179, 97, 54, 57, 183, 198, 244, 14, 74, 201, 26,\n\t\t166, 26, 232, 227, 84, 215, 179, 56, 121, 206, 229, 232, 1,\n\t\t132, 138, 252, 235, 208, 163, 29, 65, 174, 99, 68, 142, 247,\n\t\t30, 116, 53, 131, 196, 88, 94, 226, 128, 38, 48, 250, 30,\n\t\t96, 95, 132, 74, 195, 13, 167, 232, 20, 25, 174, 225, 41,\n\t\t211, 236, 109, 73, 17, 195, 195, 198, 95, 37, 98, 170, 211,\n\t\t127, 39, 35, 1, 199, 122, 62, 185, 179, 15, 197, 70, 68, 167,\n\t\t140, 117, 52, 104, 218, 93, 214, 77, 120, 137, 145, 215, 83,\n\t\t236, 245, 234, 170, 144, 245, 86, 109, 0, 218, 78, 113, 123,\n\t\t200, 248, 92, 189, 47, 60, 48, 100, 92, 28, 102, 29, 23, 210,\n\t\t58, 218, 157, 218, 56, 195, 117, 39, 109, 243, 0, 75, 247,\n\t\t203, 135, 249, 248, 247, 215, 103, 243, 219, 203, 191, 111,\n\t\t38, 210, 8, 86, 202, 222, 219, 62, 133, 26, 231, 193, 239,\n\t\t215, 135, 152, 175, 190, 54, 102, 166, 145, 205, 174, 30,\n\t\t77, 211, 13, 146, 4, 199, 9, 250, 125, 159, 71, 56, 133, 9,\n\t\t178, 109, 12, 206, 79, 181, 86, 143, 19, 194, 58, 58, 176,\n\t\t88, 182, 51, 77, 134, 244, 118, 166, 133, 246, 192, 187, 193,\n\t\t197, 104, 236, 196, 234, 51, 227, 61, 15, 175, 37, 143, 60,\n\t\t112, 173, 235, 132, 74, 235, 171, 204, 102, 245, 208, 169,\n\t\t87, 112, 240, 212, 98, 169, 175, 179, 166, 135, 215, 204,\n\t\t217, 111, 60, 121, 98, 176, 113, 242, 185, 33, 202, 129, 62,\n\t\t235, 60, 240, 123, 6, 251, 161, 41, 234, 142, 243, 206, 217,\n\t\t226, 252, 246, 76, 205, 182, 30, 105, 249, 160, 135, 46, 222,\n\t\t23, 24, 121, 3, 179, 53, 109, 163, 80, 100, 141, 133, 188,\n\t\t143, 247, 58, 38, 230, 6, 18, 57, 201, 211, 240, 153, 138,\n\t\t24, 173, 145, 75, 16, 144, 190, 119, 56, 129, 134, 167, 170,\n\t\t104, 77, 7, 190, 135, 163, 81, 240, 227, 99, 106, 243, 0,\n\t\t167, 66, 164, 60, 222, 220, 79, 172, 197, 218, 44, 213, 66,\n\t\t173, 70, 93, 103, 71, 109, 33, 170, 43, 105, 19, 72, 165,\n\t\t212, 23, 195, 123, 205, 85, 113, 172, 194, 144, 67, 192, 85,\n\t\t222, 132, 107, 83, 91, 206, 160, 233, 246, 7, 244, 243, 203,\n\t\t95, 203, 179, 153, 63, 124, 249, 114, 19, 86, 63, 239, 4,\n\t\t179, 210, 235, 2, 213, 239, 62, 158, 207, 233, 2, 197, 231,\n\t\t116, 5, 224, 117, 186, 129, 69, 103, 160, 226, 159, 90, 96,\n\t\t33, 117, 6, 27, 50, 154, 117, 48, 91, 120, 29, 71, 94, 119,\n\t\t242, 152, 87, 191, 184, 73, 108, 71, 68, 154, 190, 142, 84,\n\t\t189, 117, 140, 221, 176, 202, 52, 210, 17, 188, 254, 155,\n\t\t21, 141, 108, 232, 240, 202, 119, 63, 204, 158, 131, 26, 85,\n\t\t5, 156, 194, 107, 195, 18, 224, 225, 69, 182, 181, 68, 58,\n\t\t9, 95, 46, 137, 124, 76, 255, 219, 109, 157, 211, 40, 208,\n\t\t109, 115, 248, 211, 10, 239, 43, 47, 152, 139, 172, 40, 69,\n\t\t148, 24, 83, 179, 26, 15, 53, 46, 184, 179, 181, 106, 35,\n\t\t202, 173, 237, 163, 161, 87, 64, 254, 55, 113, 139, 64, 56,\n\t\t171, 55, 216, 141, 198, 216, 164, 234, 70, 204, 176, 128,\n\t\t133, 75, 128, 117, 52, 10, 24, 144, 75, 78, 92, 212, 90, 58,\n\t\t239, 144, 130, 215, 161, 78, 112, 113, 84, 205, 48, 26, 196,\n\t\t193, 117, 26, 178, 142, 113, 177, 42, 231, 69, 247, 216, 4,\n\t\t4, 18, 17, 9, 217, 24, 176, 168, 130, 65, 227, 0, 118, 135,\n\t\t121, 35, 184, 5, 149, 250, 189, 72, 184, 97, 192, 109, 37,\n\t\t14, 159, 97, 155, 178, 201, 107, 100, 13, 39, 212, 201, 138,\n\t\t187, 82, 81, 170, 159, 109, 116, 142, 87, 145, 54, 3, 122,\n\t\t123, 30, 168, 116, 142, 135, 29, 223, 196, 98, 237, 8, 17,\n\t\t144, 123, 242, 250, 68, 126, 160, 214, 116, 4, 110, 13, 164,\n\t\t100, 121, 44, 234, 59, 170, 171, 89, 104, 110, 99, 56, 19,\n\t\t189, 81, 154, 69, 155, 204, 36, 56, 172, 28, 91, 208, 68,\n\t\t0, 82, 39, 98, 8, 43, 79, 67, 204, 163, 99, 204, 218, 51,\n\t\t58, 65, 70, 118, 158, 74, 126, 91, 220, 50, 217, 82, 52, 206,\n\t\t78, 135, 233, 200, 204, 52, 43, 98, 70, 144, 189, 14, 209,\n\t\t231, 155, 17, 84, 198, 96, 139, 8, 118, 24, 214, 39, 126,\n\t\t207, 198, 94, 7, 174, 182, 142, 232, 117, 216, 203, 168, 7,\n\t\t46, 47, 139, 127, 108, 28, 239, 240, 36, 95, 204, 25, 157,\n\t\t50, 94, 118, 162, 198, 163, 117, 204, 185, 176, 137, 227,\n\t\t84, 228, 180, 202, 185, 126, 44, 175, 208, 84, 33, 237, 140,\n\t\t7, 148, 20, 47, 30, 219, 73, 192, 88, 230, 176, 225, 234,\n\t\t102, 43, 120, 95, 69, 86, 156, 80, 108, 38, 35, 110, 200,\n\t\t101, 37, 39, 102, 109, 108, 241, 90, 166, 136, 72, 231, 94,\n\t\t118, 56, 250, 105, 4, 238, 25, 111, 105, 143, 44, 26, 24,\n\t\t50, 192, 16, 228, 89, 243, 96, 31, 209, 44, 79, 113, 146,\n\t\t36, 56, 213, 89, 223, 21, 119, 169, 110, 243, 222, 161, 97,\n\t\t240, 85, 74, 211, 86, 144, 70, 240, 154, 227, 175, 100, 233,\n\t\t81, 141, 157, 65, 232, 244, 209, 178, 70, 154, 246, 245, 41,\n\t\t201, 102, 39, 20, 137, 99, 145, 52, 178, 74, 30, 150, 192,\n\t\t193, 80, 88, 243, 70, 220, 78, 81, 10, 100, 104, 181, 163,\n\t\t217, 130, 42, 116, 33, 169, 29, 213, 235, 114, 192, 123, 1,\n\t\t198, 93, 228, 110, 212, 249, 174, 230, 176, 97, 221, 144,\n\t\t109, 67, 238, 125, 0, 172, 255, 199, 31, 255, 49, 191, 125,\n\t\t248, 252, 175, 235, 141, 246, 227, 77, 252, 240, 214, 41,\n\t\t203, 81, 147, 187, 166, 247, 199, 216, 123, 105, 136, 100,\n\t\t155, 93, 203, 115, 238, 174, 10, 77, 81, 125, 76, 242, 229,\n\t\t108, 26, 207, 231, 71, 133, 63, 136, 80, 76, 141, 185, 92,\n\t\t222, 1, 89, 252, 40, 108, 82, 43, 68, 26, 58, 175, 157, 67,\n\t\t174, 78, 171, 220, 84, 210, 228, 67, 181, 145, 57, 171, 226,\n\t\t202, 126, 146, 69, 112, 26, 119, 193, 235, 95, 120, 22, 206,\n\t\t170, 17, 4, 70, 84, 153, 66, 167, 225, 141, 199, 100, 76,\n\t\t114, 62, 216, 146, 122, 109, 217, 200, 174, 152, 196, 46,\n\t\t88, 198, 38, 67, 170, 211, 97, 30, 118, 17, 86, 159, 68, 203,\n\t\t91, 71, 34, 150, 37, 25, 175, 113, 53, 158, 180, 117, 175,\n\t\t228, 21, 143, 211, 115, 248, 232, 152, 216, 50, 62, 123, 153,\n\t\t55, 53, 78, 85, 19, 147, 73, 86, 205, 164, 79, 0, 203, 54,\n\t\t180, 89, 101, 24, 167, 1, 90, 35, 176, 43, 196, 33, 199, 232,\n\t\t130, 30, 220, 208, 98, 121, 205, 19, 5, 161, 70, 253, 122,\n\t\t140, 164, 177, 232, 84, 38, 41, 30, 10, 151, 104, 155, 105,\n\t\t44, 208, 178, 139, 4, 246, 30, 138, 124, 18, 108, 62, 146,\n\t\t240, 203, 136, 3, 215, 107, 212, 118, 13, 187, 101, 61, 189,\n\t\t23, 50, 113, 235, 223, 227, 148, 4, 200, 149, 42, 215, 112,\n\t\t118, 184, 236, 163, 186, 11, 106, 149, 138, 180, 253, 42,\n\t\t204, 140, 205, 121, 163, 50, 92, 159, 225, 187, 14, 55, 129,\n\t\t203, 167, 190, 141, 87, 158, 221, 54, 221, 104, 35, 46, 57,\n\t\t123, 125, 204, 50, 221, 172, 78, 51, 222, 199, 125, 18, 163,\n\t\t221, 6, 183, 73, 0, 28, 244, 12, 230, 217, 238, 34, 244, 229,\n\t\t211, 111, 191, 189, 220, 164, 173, 125, 188, 193, 198, 95,\n\t\t137, 118, 213, 125, 37, 86, 15, 79, 66, 202, 228, 163, 91,\n\t\t170, 78, 162, 86, 69, 170, 92, 83, 139, 28, 36, 170, 25, 9,\n\t\t133, 170, 240, 142, 104, 115, 177, 60, 142, 213, 134, 47,\n\t\t88, 76, 17, 228, 175, 80, 117, 191, 14, 170, 96, 174, 254,\n\t\t188, 129, 242, 11, 137, 135, 69, 84, 48, 192, 218, 46, 85,\n\t\t156, 187, 104, 202, 195, 179, 178, 138, 224, 42, 7, 105, 132,\n\t\t27, 32, 99, 88, 102, 210, 101, 41, 32, 215, 139, 214, 33,\n\t\t21, 136, 204, 240, 52, 233, 212, 206, 58, 4, 244, 37, 216,\n\t\t161, 180, 152, 64, 251, 225, 132, 104, 136, 153, 214, 92,\n\t\t60, 45, 175, 177, 86, 192, 1, 200, 147, 184, 213, 124, 89,\n\t\t116, 102, 213, 168, 130, 6, 79, 48, 110, 90, 101, 233, 31,\n\t\t249, 129, 170, 108, 182, 57, 177, 103, 5, 115, 34, 58, 228,\n\t\t142, 203, 118, 91, 17, 254, 63, 15, 147, 172, 166, 101, 5,\n\t\t177, 250, 214, 109, 73, 198, 67, 24, 228, 247, 171, 145, 166,\n\t\t111, 80, 105, 56, 138, 149, 220, 107, 236, 113, 27, 113, 241,\n\t\t163, 43, 73, 148, 2, 239, 176, 136, 100, 109, 49, 85, 60,\n\t\t15, 141, 119, 224, 147, 102, 41, 228, 62, 229, 50, 21, 22,\n\t\t165, 102, 13, 255, 29, 78, 56, 147, 86, 205, 64, 86, 19, 241,\n\t\t16, 118, 38, 74, 89, 195, 165, 179, 252, 166, 134, 167, 121,\n\t\t160, 169, 33, 136, 171, 103, 11, 48, 35, 71, 93, 177, 57,\n\t\t216, 159, 24, 47, 127, 223, 134, 167, 127, 172, 3, 37, 193,\n\t\t51, 22, 128, 34, 186, 106, 46, 130, 232, 42, 130, 30, 174,\n\t\t199, 27, 72, 241, 163, 9, 181, 90, 80, 75, 228, 17, 50, 57,\n\t\t134, 141, 76, 33, 177, 31, 2, 18, 33, 58, 155, 231, 149, 199,\n\t\t97, 67, 227, 176, 38, 56, 233, 33, 27, 106, 142, 180, 184,\n\t\t152, 181, 102, 12, 98, 190, 214, 164, 151, 211, 166, 162,\n\t\t156, 82, 161, 88, 154, 51, 13, 234, 161, 105, 224, 14, 133,\n\t\t32, 171, 152, 166, 122, 132, 245, 107, 111, 121, 3, 118, 58,\n\t\t135, 46, 202, 23, 174, 215, 37, 37, 197, 53, 119, 197, 233,\n\t\t146, 163, 2, 166, 169, 94, 94, 209, 222, 128, 149, 184, 180,\n\t\t80, 189, 35, 141, 235, 244, 142, 148, 48, 166, 194, 232, 225,\n\t\t112, 39, 173, 228, 246, 61, 112, 198, 187, 138, 19, 116, 188,\n\t\t105, 3, 148, 116, 77, 67, 247, 232, 241, 63, 37, 35, 237,\n\t\t244, 252, 252, 113, 185, 99, 206, 255, 216, 254, 207, 154,\n\t\t122, 6, 150, 225, 16, 109, 157, 32, 69, 178, 169, 44, 242,\n\t\t215, 16, 210, 0, 242, 221, 147, 201, 30, 208, 72, 80, 9, 70,\n\t\t159, 65, 133, 78, 252, 12, 124, 13, 33, 29, 11, 201, 238,\n\t\t9, 116, 204, 71, 113, 1, 208, 190, 53, 153, 214, 24, 167,\n\t\t16, 166, 12, 7, 99, 77, 8, 182, 173, 30, 241, 52, 212, 73,\n\t\t153, 47, 85, 35, 129, 114, 135, 91, 164, 28, 230, 40, 10,\n\t\t102, 17, 25, 201, 203, 210, 154, 105, 151, 234, 200, 184,\n\t\t166, 239, 251, 77, 249, 233, 143, 219, 45, 113, 100, 166,\n\t\t164, 206, 67, 113, 79, 2, 127, 12, 132, 16, 75, 123, 23, 165,\n\t\t243, 35, 210, 142, 210, 126, 136, 104, 44, 9, 250, 212, 27,\n\t\t63, 199, 176, 143, 242, 157, 218, 49, 22, 97, 123, 46, 233,\n\t\t76, 221, 11, 134, 154, 16, 56, 205, 234, 1, 150, 252, 167,\n\t\t229, 217, 252, 215, 167, 59, 10, 208, 135, 27, 249, 163, 175,\n\t\t132, 233, 190, 195, 16, 27, 169, 43, 253, 20, 82, 211, 127,\n\t\t167, 0, 148, 52, 57, 73, 155, 239, 9, 71, 70, 15, 229, 28,\n\t\t125, 27, 231, 67, 106, 175, 79, 193, 185, 137, 81, 200, 110,\n\t\t220, 81, 223, 60, 75, 111, 22, 156, 215, 167, 8, 128, 210,\n\t\t128, 68, 118, 197, 105, 105, 136, 58, 151, 64, 154, 58, 32,\n\t\t15, 134, 68, 56, 168, 49, 87, 151, 227, 170, 103, 234, 6,\n\t\t59, 240, 43, 85, 147, 145, 19, 179, 9, 18, 74, 225, 6, 88,\n\t\t243, 100, 134, 155, 59, 75, 216, 134, 25, 151, 111, 194, 176,\n\t\t184, 131, 53, 212, 138, 143, 86, 199, 57, 11, 54, 29, 121,\n\t\t138, 121, 86, 137, 94, 249, 139, 196, 113, 52, 142, 139, 159,\n\t\t220, 235, 147, 207, 21, 26, 71, 176, 1, 70, 23, 86, 69, 52,\n\t\t196, 35, 170, 109, 99, 8, 210, 35, 45, 85, 236, 90, 135, 89,\n\t\t76, 142, 234, 9, 31, 96, 147, 34, 73, 121, 82, 117, 198, 225,\n\t\t169, 169, 25, 188, 171, 197, 129, 126, 206, 34, 14, 94, 236,\n\t\t188, 198, 251, 213, 234, 163, 207, 13, 180, 229, 174, 122,\n\t\t112, 80, 217, 40, 107, 243, 107, 174, 170, 233, 238, 242,\n\t\t204, 201, 20, 133, 37, 84, 239, 163, 94, 34, 87, 60, 128,\n\t\t2, 254, 235, 86, 230, 216, 97, 73, 193, 146, 250, 32, 129,\n\t\t241, 46, 105, 203, 233, 29, 12, 48, 12, 248, 242, 128, 248,\n\t\t231, 241, 66, 151, 156, 219, 221, 15, 78, 235, 22, 164, 103,\n\t\t238, 236, 76, 76, 35, 173, 42, 116, 80, 160, 58, 239, 59,\n\t\t220, 33, 3, 104, 191, 184, 99, 72, 209, 166, 87, 180, 77,\n\t\t47, 99, 67, 215, 61, 250, 180, 238, 236, 147, 110, 238, 43,\n\t\t233, 203, 105, 144, 189, 208, 199, 126, 95, 125, 249, 123,\n\t\t254, 151, 89, 94, 62, 220, 11, 171, 255, 184, 227, 42, 81,\n\t\t250, 135, 42, 225, 86, 38, 73, 40, 178, 111, 72, 167, 19,\n\t\t37, 180, 109, 18, 241, 84, 226, 30, 72, 169, 60, 176, 151,\n\t\t42, 231, 3, 111, 140, 203, 48, 98, 117, 110, 169, 165, 248,\n\t\t33, 222, 231, 101, 216, 184, 244, 215, 42, 253, 37, 106, 253,\n\t\t204, 143, 228, 39, 169, 140, 255, 255, 177, 247, 230, 89,\n\t\t110, 27, 203, 187, 224, 255, 92, 5, 54, 144, 121, 114, 30,\n\t\t78, 175, 161, 22, 33, 195, 101, 83, 239, 194, 42, 183, 40,\n\t\t243, 190, 87, 171, 239, 19, 95, 68, 36, 64, 162, 4, 150, 36,\n\t\t203, 247, 118, 247, 239, 216, 42, 18, 73, 32, 145, 99, 100,\n\t\t140, 95, 168, 227, 75, 95, 89, 253, 176, 205, 163, 100, 208,\n\t\t234, 211, 172, 162, 51, 54, 234, 112, 118, 24, 81, 138, 42,\n\t\t220, 73, 156, 53, 227, 140, 16, 37, 194, 209, 149, 55, 38,\n\t\t20, 237, 210, 176, 139, 142, 77, 108, 25, 119, 61, 54, 192,\n\t\t33, 157, 67, 166, 3, 200, 113, 186, 243, 227, 28, 146, 179,\n\t\t41, 35, 173, 178, 241, 174, 91, 176, 216, 186, 132, 188, 5,\n\t\t59, 103, 235, 98, 98, 143, 192, 152, 118, 213, 178, 105, 64,\n\t\t214, 179, 124, 42, 206, 136, 246, 102, 100, 51, 70, 241, 50,\n\t\t244, 242, 73, 227, 101, 228, 65, 245, 93, 28, 51, 43, 206,\n\t\t67, 92, 155, 100, 166, 138, 169, 88, 63, 117, 230, 127, 175,\n\t\t49, 68, 123, 20, 77, 246, 138, 36, 99, 238, 239, 202, 19,\n\t\t243, 120, 165, 255, 241, 114, 125, 107, 161, 239, 114, 119,\n\t\t111, 115, 56, 49, 206, 181, 179, 117, 214, 188, 241, 27, 205,\n\t\t21, 15, 137, 22, 72, 76, 251, 21, 126, 245, 143, 104, 138,\n\t\t122, 181, 250, 225, 71, 60, 108, 114, 236, 52, 54, 174, 56,\n\t\t40, 110, 136, 163, 154, 191, 96, 15, 124, 57, 202, 145, 90,\n\t\t57, 11, 2, 199, 16, 143, 165, 66, 246, 149, 5, 86, 248, 233,\n\t\t239, 120, 251, 60, 76, 182, 28, 135, 143, 53, 58, 124, 133,\n\t\t144, 45, 151, 117, 145, 198, 111, 160, 26, 50, 123, 129, 114,\n\t\t165, 122, 74, 113, 82, 93, 185, 91, 223, 201, 47, 186, 237,\n\t\t222, 53, 198, 195, 48, 69, 160, 170, 28, 184, 146, 157, 174,\n\t\t166, 179, 18, 232, 28, 43, 100, 83, 198, 174, 230, 45, 33,\n\t\t103, 233, 154, 240, 180, 137, 74, 166, 209, 249, 241, 109,\n\t\t130, 236, 229, 157, 18, 34, 241, 111, 237, 39, 214, 14, 144,\n\t\t177, 228, 144, 40, 241, 220, 53, 145, 210, 48, 51, 138, 1,\n\t\t195, 196, 41, 78, 166, 174, 110, 145, 178, 221, 249, 250,\n\t\t76, 83, 150, 121, 215, 254, 180, 150, 30, 195, 2, 255, 250,\n\t\t252, 242, 54, 94, 201, 243, 129, 187, 233, 187, 17, 53, 120,\n\t\t133, 5, 61, 212, 198, 129, 241, 77, 128, 26, 30, 168, 199,\n\t\t62, 182, 197, 196, 26, 137, 122, 180, 102, 203, 98, 128, 142,\n\t\t34, 52, 227, 167, 193, 108, 156, 150, 129, 163, 82, 88, 151,\n\t\t123, 14, 41, 217, 56, 75, 250, 19, 34, 179, 67, 55, 47, 26,\n\t\t175, 81, 32, 95, 0, 207, 181, 196, 48, 236, 253, 87, 31, 171,\n\t\t13, 11, 29, 58, 5, 94, 45, 52, 138, 65, 207, 113, 137, 51,\n\t\t201, 234, 73, 57, 184, 255, 81, 18, 178, 212, 27, 114, 21,\n\t\t39, 30, 97, 117, 84, 139, 168, 106, 63, 51, 172, 24, 226,\n\t\t92, 134, 196, 161, 218, 174, 144, 178, 205, 75, 44, 25, 137,\n\t\t140, 91, 176, 156, 223, 154, 31, 40, 118, 141, 171, 80, 125,\n\t\t108, 24, 39, 190, 99, 119, 148, 102, 25, 224, 77, 134, 66,\n\t\t123, 60, 13, 61, 174, 22, 200, 231, 49, 10, 233, 199, 79,\n\t\t207, 230, 247, 229, 195, 101, 231, 251, 252, 188, 51, 126,\n\t\t133, 166, 186, 231, 192, 7, 192, 172, 192, 150, 12, 103, 185,\n\t\t193, 177, 52, 130, 36, 109, 19, 59, 56, 68, 155, 37, 114,\n\t\t87, 129, 92, 53, 33, 158, 23, 225, 8, 94, 113, 122, 143, 120,\n\t\t236, 221, 128, 102, 50, 102, 102, 114, 231, 228, 174, 222,\n\t\t87, 235, 219, 108, 74, 179, 169, 244, 202, 153, 15, 216, 99,\n\t\t160, 89, 151, 167, 218, 5, 104, 147, 152, 138, 52, 249, 156,\n\t\t172, 47, 139, 207, 22, 122, 216, 102, 189, 159, 157, 173,\n\t\t209, 165, 130, 237, 147, 92, 136, 83, 181, 57, 131, 199, 75,\n\t\t140, 190, 169, 110, 22, 114, 125, 38, 169, 49, 53, 18, 195,\n\t\t125, 113, 158, 115, 125, 216, 78, 111, 55, 197, 70, 215, 51,\n\t\t154, 81, 89, 37, 78, 79, 224, 125, 64, 131, 197, 43, 157,\n\t\t159, 139, 45, 137, 197, 204, 100, 67, 134, 176, 210, 163,\n\t\t163, 173, 24, 155, 13, 85, 155, 107, 208, 222, 220, 175, 6,\n\t\t253, 236, 231, 116, 44, 191, 255, 117, 121, 254, 108, 62,\n\t\t44, 95, 1, 65, 250, 109, 39, 195, 127, 7, 81, 249, 9, 48,\n\t\t61, 63, 141, 124, 32, 163, 20, 84, 234, 137, 54, 151, 7, 106,\n\t\t4, 164, 243, 58, 66, 21, 27, 108, 37, 157, 191, 205, 149,\n\t\t131, 224, 124, 194, 241, 13, 188, 4, 78, 49, 66, 107, 120,\n\t\t196, 145, 199, 21, 136, 14, 74, 177, 170, 116, 223, 135, 108,\n\t\t227, 235, 147, 239, 205, 194, 178, 119, 78, 172, 14, 91, 66,\n\t\t106, 152, 206, 46, 64, 200, 95, 245, 162, 186, 74, 88, 246,\n\t\t236, 166, 170, 222, 231, 170, 117, 143, 137, 106, 93, 255,\n\t\t190, 99, 41, 92, 190, 124, 126, 249, 244, 225, 175, 93, 164,\n\t\t232, 111, 59, 17, 118, 99, 78, 130, 200, 247, 221, 113, 136,\n\t\t36, 204, 207, 155, 12, 111, 121, 106, 226, 172, 10, 191, 111,\n\t\t164, 91, 40, 23, 31, 188, 101, 204, 220, 44, 133, 166, 203,\n\t\t179, 199, 94, 16, 15, 25, 209, 8, 137, 77, 143, 124, 78, 124,\n\t\t162, 45, 96, 125, 177, 190, 238, 116, 49, 220, 12, 180, 194,\n\t\t104, 219, 184, 142, 215, 39, 143, 224, 71, 96, 81, 207, 156,\n\t\t139, 244, 70, 20, 61, 167, 182, 19, 101, 25, 144, 116, 120,\n\t\t221, 50, 207, 207, 115, 156, 220, 25, 235, 232, 6, 144, 115,\n\t\t117, 191, 165, 243, 202, 189, 62, 249, 90, 136, 175, 33, 185,\n\t\t101, 138, 56, 101, 39, 31, 22, 254, 203, 69, 196, 182, 199,\n\t\t66, 69, 6, 152, 5, 248, 164, 115, 165, 194, 81, 177, 216,\n\t\t50, 23, 88, 94, 52, 204, 213, 7, 100, 136, 209, 140, 104,\n\t\t114, 233, 99, 36, 174, 113, 44, 54, 179, 73, 198, 191, 113,\n\t\t210, 59, 155, 230, 56, 243, 223, 215, 181, 112, 111, 58, 170,\n\t\t222, 107, 229, 24, 230, 73, 216, 235, 227, 117, 47, 249, 22,\n\t\t70, 106, 62, 218, 84, 93, 218, 237, 99, 156, 131, 170, 202,\n\t\t188, 134, 70, 42, 173, 208, 136, 96, 239, 162, 45, 227, 242,\n\t\t116, 169, 171, 83, 57, 139, 210, 248, 93, 126, 126, 125, 10,\n\t\t53, 28, 162, 232, 126, 47, 254, 48, 77, 230, 177, 83, 15,\n\t\t13, 112, 12, 71, 250, 222, 199, 123, 124, 62, 63, 207, 59,\n\t\t117, 237, 111, 243, 177, 138, 202, 119, 98, 218, 220, 152,\n\t\t49, 31, 218, 148, 135, 106, 32, 192, 25, 225, 162, 5, 114,\n\t\t141, 50, 56, 209, 110, 127, 160, 187, 47, 230, 230, 217, 241,\n\t\t231, 245, 41, 122, 26, 105, 95, 220, 92, 135, 252, 195, 20,\n\t\t204, 220, 146, 53, 196, 182, 164, 43, 146, 250, 73, 116, 228,\n\t\t215, 86, 228, 129, 15, 234, 85, 30, 63, 189, 135, 124, 158,\n\t\t61, 114, 55, 134, 89, 99, 38, 7, 184, 82, 82, 173, 44, 205,\n\t\t113, 24, 223, 47, 89, 6, 76, 132, 55, 253, 9, 222, 91, 168,\n\t\t234, 245, 169, 196, 98, 203, 196, 172, 217, 112, 66, 212,\n\t\t47, 236, 61, 162, 10, 226, 141, 63, 129, 64, 227, 44, 198,\n\t\t39, 228, 134, 242, 9, 137, 103, 102, 51, 194, 132, 181, 170,\n\t\t225, 90, 183, 150, 136, 46, 116, 84, 119, 90, 76, 147, 32,\n\t\t130, 166, 94, 175, 107, 11, 110, 235, 211, 234, 214, 182,\n\t\t72, 117, 139, 64, 164, 12, 83, 127, 18, 147, 189, 250, 217,\n\t\t121, 137, 106, 30, 215, 170, 146, 29, 85, 45, 156, 161, 42,\n\t\t177, 175, 201, 194, 73, 94, 24, 239, 153, 5, 210, 187, 54,\n\t\t140, 235, 93, 77, 239, 216, 4, 203, 203, 27, 155, 224, 32,\n\t\t5, 110, 34, 30, 34, 36, 28, 248, 93, 242, 181, 241, 153, 207,\n\t\t2, 191, 28, 251, 151, 81, 98, 180, 72, 202, 233, 219, 205,\n\t\t111, 84, 186, 125, 92, 254, 113, 190, 95, 161, 64, 87, 113,\n\t\t40, 133, 62, 131, 55, 140, 66, 250, 140, 84, 227, 252, 217,\n\t\t85, 68, 101, 246, 235, 42, 73, 114, 223, 255, 160, 31, 110,\n\t\t195, 91, 184, 34, 157, 125, 49, 198, 223, 62, 123, 53, 181,\n\t\t140, 221, 167, 89, 174, 238, 110, 189, 125, 226, 44, 82, 217,\n\t\t22, 193, 72, 230, 246, 166, 113, 93, 52, 14, 49, 136, 54,\n\t\t199, 228, 206, 153, 41, 120, 166, 61, 173, 166, 213, 59, 204,\n\t\t167, 116, 54, 49, 85, 235, 255, 91, 55, 250, 112, 184, 4,\n\t\t178, 153, 56, 37, 78, 33, 41, 47, 12, 151, 96, 14, 55, 83,\n\t\t63, 91, 181, 220, 152, 141, 158, 86, 74, 42, 244, 16, 239,\n\t\t165, 203, 167, 191, 129, 48, 63, 222, 80, 47, 59, 197, 226,\n\t\t111, 7, 26, 116, 78, 61, 34, 224, 166, 75, 80, 237, 150, 103,\n\t\t87, 160, 121, 136, 13, 26, 160, 37, 141, 82, 200, 1, 185,\n\t\t108, 28, 163, 46, 190, 65, 97, 4, 40, 138, 183, 223, 234,\n\t\t64, 31, 163, 34, 45, 49, 127, 61, 155, 160, 238, 66, 16, 51,\n\t\t6, 238, 210, 72, 147, 213, 71, 52, 193, 66, 146, 138, 4, 15,\n\t\t171, 23, 147, 198, 95, 142, 60, 112, 33, 170, 228, 205, 137,\n\t\t176, 138, 186, 159, 179, 154, 224, 106, 100, 233, 158, 216,\n\t\t157, 80, 131, 239, 117, 179, 12, 168, 7, 117, 208, 23, 102,\n\t\t108, 30, 25, 204, 87, 124, 62, 197, 17, 201, 156, 155, 22,\n\t\t19, 63, 171, 139, 226, 26, 92, 36, 53, 169, 35, 144, 92, 74,\n\t\t189, 87, 105, 206, 172, 97, 192, 234, 208, 85, 38, 230, 23,\n\t\t37, 38, 92, 51, 162, 237, 38, 8, 174, 140, 82, 245, 240, 184,\n\t\t86, 199, 174, 62, 201, 208, 157, 102, 227, 55, 134, 58, 108,\n\t\t205, 161, 201, 84, 240, 152, 49, 37, 126, 26, 157, 16, 21,\n\t\t202, 200, 100, 141, 226, 102, 243, 88, 41, 163, 29, 138, 45,\n\t\t178, 130, 67, 72, 1, 236, 141, 78, 177, 59, 214, 46, 108,\n\t\t158, 20, 79, 172, 65, 228, 240, 150, 97, 159, 29, 47, 157,\n\t\t87, 184, 26, 230, 22, 101, 27, 234, 234, 186, 235, 200, 48,\n\t\t164, 208, 202, 90, 93, 237, 120, 93, 141, 161, 217, 175, 121,\n\t\t93, 84, 186, 166, 194, 106, 101, 205, 211, 221, 140, 140,\n\t\t249, 115, 147, 46, 38, 93, 75, 186, 148, 110, 39, 124, 14,\n\t\t195, 142, 193, 10, 30, 89, 69, 121, 90, 215, 144, 238, 170,\n\t\t177, 134, 116, 49, 198, 65, 220, 182, 107, 115, 179, 166,\n\t\t217, 3, 78, 87, 81, 128, 136, 49, 221, 239, 129, 229, 126,\n\t\t27, 69, 29, 250, 50, 226, 224, 120, 176, 214, 189, 55, 123,\n\t\t118, 240, 102, 231, 93, 222, 90, 50, 110, 187, 45, 237, 87,\n\t\t63, 221, 213, 39, 83, 89, 131, 13, 197, 120, 99, 53, 175,\n\t\t0, 53, 234, 146, 168, 5, 178, 138, 140, 44, 163, 87, 240,\n\t\t1, 169, 194, 92, 166, 124, 20, 188, 136, 17, 13, 143, 145,\n\t\t109, 226, 87, 12, 19, 206, 90, 100, 54, 63, 112, 129, 254,\n\t\t108, 214, 223, 47, 97, 172, 70, 189, 155, 191, 190, 159, 218,\n\t\t255, 13, 196, 30, 121, 13, 216, 69, 33, 95, 141, 38, 3, 112,\n\t\t107, 128, 244, 234, 174, 218, 38, 86, 147, 51, 49, 169, 131,\n\t\t216, 72, 181, 130, 194, 32, 246, 65, 21, 127, 154, 205, 239,\n\t\t226, 202, 255, 67, 103, 245, 105, 214, 56, 49, 55, 85, 229,\n\t\t154, 71, 168, 223, 234, 40, 137, 215, 16, 217, 90, 131, 134,\n\t\t86, 104, 156, 177, 236, 164, 199, 21, 247, 178, 118, 169,\n\t\t10, 24, 135, 30, 114, 80, 141, 175, 162, 189, 228, 9, 173,\n\t\t171, 183, 39, 218, 176, 117, 97, 94, 33, 149, 182, 233, 20,\n\t\t85, 96, 82, 36, 45, 179, 169, 2, 183, 19, 61, 46, 183, 167,\n\t\t150, 168, 168, 111, 116, 11, 188, 209, 231, 53, 54, 46, 15,\n\t\t2, 40, 119, 8, 31, 166, 254, 157, 166, 176, 82, 111, 134,\n\t\t34, 161, 1, 71, 119, 132, 66, 169, 39, 185, 178, 178, 99,\n\t\t219, 120, 213, 48, 40, 33, 22, 214, 90, 162, 198, 244, 245,\n\t\t218, 253, 21, 219, 103, 192, 201, 228, 213, 91, 127, 12, 56,\n\t\t39, 87, 120, 200, 175, 60, 255, 250, 113, 175, 228, 58, 176,\n\t\t132, 254, 147, 219, 111, 21, 130, 163, 248, 4, 33, 130, 84,\n\t\t150, 157, 168, 232, 123, 95, 167, 43, 47, 70, 253, 8, 244,\n\t\t203, 178, 134, 54, 202, 151, 101, 216, 192, 5, 97, 109, 141,\n\t\t164, 43, 172, 238, 58, 109, 114, 46, 43, 174, 198, 26, 193,\n\t\t229, 25, 87, 88, 227, 102, 88, 53, 114, 54, 161, 38, 228,\n\t\t79, 254, 111, 220, 201, 236, 182, 213, 39, 201, 99, 177, 248,\n\t\t200, 89, 63, 240, 185, 84, 165, 181, 242, 5, 33, 207, 149,\n\t\t51, 83, 227, 190, 133, 6, 134, 207, 48, 137, 241, 222, 164,\n\t\t95, 241, 99, 57, 54, 61, 105, 211, 136, 157, 99, 103, 16,\n\t\t254, 4, 164, 253, 228, 107, 183, 126, 86, 92, 39, 205, 45,\n\t\t60, 160, 118, 57, 127, 204, 8, 5, 35, 206, 85, 206, 6, 175,\n\t\t123, 89, 74, 170, 103, 242, 160, 180, 88, 92, 174, 22, 5,\n\t\t21, 146, 79, 125, 149, 98, 53, 167, 21, 216, 55, 138, 217,\n\t\t233, 29, 166, 129, 223, 62, 127, 124, 222, 131, 219, 100,\n\t\t119, 148, 216, 156, 115, 179, 205, 195, 161, 195, 177, 19,\n\t\t199, 141, 91, 135, 247, 225, 162, 5, 114, 141, 50, 120, 123,\n\t\t108, 127, 160, 187, 47, 95, 113, 9, 121, 125, 10, 165, 217,\n\t\t134, 141, 82, 4, 105, 67, 163, 187, 77, 86, 102, 141, 47,\n\t\t241, 113, 213, 248, 154, 35, 109, 81, 104, 237, 171, 171,\n\t\t89, 30, 167, 179, 80, 95, 120, 251, 158, 205, 223, 179, 192,\n\t\t215, 5, 85, 37, 123, 55, 184, 46, 90, 200, 133, 1, 114, 202,\n\t\t69, 97, 131, 165, 200, 23, 121, 146, 141, 214, 24, 74, 168,\n\t\t141, 141, 128, 108, 171, 251, 247, 87, 157, 182, 87, 95, 40,\n\t\t120, 64, 137, 189, 218, 205, 235, 132, 188, 57, 204, 71, 131,\n\t\t226, 107, 177, 36, 59, 143, 195, 38, 12, 78, 32, 107, 8, 141,\n\t\t232, 133, 178, 6, 208, 96, 55, 92, 35, 155, 36, 137, 81, 213,\n\t\t144, 33, 245, 171, 171, 156, 203, 92, 69, 126, 225, 104, 193,\n\t\t238, 118, 22, 20, 152, 94, 106, 234, 20, 181, 170, 241, 245,\n\t\t89, 176, 139, 7, 174, 226, 125, 100, 82, 155, 134, 219, 70,\n\t\t187, 68, 241, 55, 84, 39, 71, 249, 165, 73, 45, 143, 119,\n\t\t194, 239, 159, 63, 252, 250, 215, 30, 238, 62, 59, 255, 117,\n\t\t195, 72, 244, 221, 114, 220, 90, 154, 43, 198, 116, 100, 206,\n\t\t102, 136, 218, 34, 241, 137, 138, 88, 75, 219, 223, 249, 119,\n\t\t169, 217, 143, 216, 167, 141, 73, 40, 12, 209, 132, 231, 26,\n\t\t113, 37, 252, 58, 121, 219, 210, 245, 100, 145, 47, 175, 79,\n\t\t122, 48, 199, 210, 224, 238, 41, 222, 157, 154, 146, 117,\n\t\t20, 40, 67, 231, 20, 243, 241, 180, 248, 206, 184, 13, 73,\n\t\t2, 116, 125, 28, 233, 146, 21, 253, 115, 100, 85, 150, 137,\n\t\t119, 120, 8, 73, 174, 82, 153, 87, 173, 135, 144, 211, 81,\n\t\t160, 144, 94, 14, 214, 241, 188, 152, 62, 228, 74, 137, 180,\n\t\t81, 71, 36, 13, 186, 246, 28, 241, 34, 26, 54, 58, 129, 105,\n\t\t68, 245, 0, 255, 202, 241, 123, 121, 243, 88, 159, 29, 92,\n\t\t74, 153, 61, 17, 196, 57, 245, 238, 77, 83, 174, 167, 197,\n\t\t20, 68, 176, 119, 224, 223, 231, 32, 252, 208, 64, 47, 228,\n\t\t77, 70, 251, 155, 131, 189, 131, 144, 161, 53, 86, 102, 200,\n\t\t32, 227, 164, 31, 64, 168, 93, 142, 47, 5, 254, 42, 26, 212,\n\t\t55, 36, 240, 129, 98, 224, 84, 144, 129, 71, 178, 94, 156,\n\t\t233, 28, 81, 48, 242, 204, 170, 61, 222, 131, 250, 64, 29,\n\t\t114, 244, 120, 141, 188, 229, 196, 113, 182, 170, 130, 209,\n\t\t86, 173, 254, 128, 90, 32, 168, 61, 195, 50, 1, 201, 159,\n\t\t127, 130, 131, 98, 128, 94, 146, 253, 51, 30, 111, 184, 55,\n\t\t20, 180, 217, 29, 120, 185, 196, 224, 38, 132, 164, 18, 169,\n\t\t115, 211, 192, 197, 25, 129, 68, 176, 243, 182, 193, 115,\n\t\t7, 34, 245, 238, 191, 150, 117, 153, 243, 170, 28, 53, 158,\n\t\t97, 201, 140, 71, 174, 178, 188, 193, 21, 92, 131, 233, 20,\n\t\t66, 101, 148, 68, 247, 79, 139, 141, 197, 241, 65, 115, 140,\n\t\t98, 166, 243, 115, 8, 26, 5, 127, 225, 7, 88, 54, 197, 29,\n\t\t67, 245, 75, 82, 110, 77, 112, 55, 176, 190, 249, 255, 75,\n\t\t115, 171, 50, 129, 93, 249, 56, 24, 34, 140, 19, 243, 186,\n\t\t75, 84, 252, 14, 167, 46, 84, 242, 32, 183, 54, 22, 248, 31,\n\t\t31, 63, 253, 181, 231, 172, 142, 242, 78, 133, 132, 8, 135,\n\t\t31, 115, 230, 198, 98, 248, 206, 80, 19, 79, 44, 245, 63,\n\t\t184, 162, 78, 255, 41, 123, 224, 127, 104, 211, 63, 94, 52,\n\t\t159, 62, 126, 250, 95, 31, 118, 139, 102, 7, 247, 182, 225,\n\t\t65, 66, 134, 27, 83, 179, 109, 46, 77, 207, 15, 161, 17, 62,\n\t\t4, 176, 33, 81, 191, 17, 79, 16, 254, 206, 65, 148, 17, 201,\n\t\t204, 6, 121, 167, 239, 196, 139, 22, 239, 216, 105, 201, 1,\n\t\t0, 22, 206, 110, 33, 211, 115, 10, 54, 162, 216, 19, 69, 188,\n\t\t122, 52, 232, 177, 185, 211, 12, 101, 181, 174, 93, 253, 33,\n\t\t41, 122, 230, 122, 231, 28, 105, 209, 148, 33, 66, 232, 232,\n\t\t87, 229, 62, 183, 92, 122, 18, 20, 232, 34, 138, 64, 149,\n\t\t186, 60, 8, 176, 92, 205, 235, 202, 255, 166, 245, 60, 155,\n\t\t188, 217, 120, 174, 218, 186, 194, 132, 208, 176, 32, 59,\n\t\t82, 21, 24, 198, 186, 51, 3, 13, 100, 34, 61, 22, 202, 0,\n\t\t143, 81, 123, 153, 175, 26, 26, 127, 232, 92, 113, 190, 165,\n\t\t157, 111, 185, 104, 60, 8, 157, 192, 98, 188, 156, 63, 62,\n\t\t47, 247, 56, 215, 217, 229, 35, 18, 6, 24, 176, 90, 108, 159,\n\t\t7, 178, 140, 114, 72, 107, 107, 54, 80, 66, 162, 161, 5, 141,\n\t\t193, 25, 216, 134, 149, 167, 71, 150, 213, 131, 133, 62, 34,\n\t\t90, 216, 191, 135, 146, 72, 153, 159, 145, 37, 126, 216, 137,\n\t\t196, 18, 237, 102, 163, 41, 73, 195, 138, 214, 78, 181, 121,\n\t\t23, 4, 109, 11, 151, 92, 55, 146, 249, 96, 6, 170, 70, 107,\n\t\t140, 118, 74, 51, 23, 150, 255, 82, 62, 205, 154, 45, 67,\n\t\t223, 170, 60, 179, 182, 107, 52, 130, 85, 202, 122, 138, 204,\n\t\t81, 156, 196, 21, 219, 64, 160, 81, 104, 65, 178, 152, 4,\n\t\t172, 182, 236, 193, 186, 27, 92, 69, 94, 108, 87, 227, 91,\n\t\t167, 45, 246, 143, 146, 104, 230, 187, 50, 235, 135, 187,\n\t\t26, 129, 7, 152, 74, 233, 214, 147, 104, 39, 235, 212, 67,\n\t\t7, 58, 152, 85, 246, 110, 16, 215, 211, 129, 147, 49, 153,\n\t\t244, 110, 250, 242, 31, 32, 210, 167, 89, 149, 96, 130, 1,\n\t\t39, 214, 18, 208, 147, 21, 232, 97, 147, 134, 118, 40, 134,\n\t\t148, 53, 27, 254, 229, 43, 247, 29, 30, 5, 150, 241, 142,\n\t\t123, 195, 77, 51, 187, 29, 212, 195, 255, 231, 221, 52, 83,\n\t\t197, 105, 229, 211, 105, 214, 254, 20, 193, 181, 202, 93,\n\t\t1, 204, 145, 39, 51, 20, 224, 122, 67, 4, 63, 166, 218, 51,\n\t\t199, 89, 50, 57, 142, 35, 60, 205, 5, 91, 145, 42, 66, 166,\n\t\t44, 56, 27, 17, 34, 46, 208, 181, 179, 155, 138, 236, 213,\n\t\t164, 157, 12, 158, 143, 58, 118, 33, 142, 129, 174, 150, 208,\n\t\t0, 2, 25, 130, 183, 149, 214, 183, 59, 112, 234, 148, 21,\n\t\t254, 120, 65, 124, 249, 112, 111, 118, 207, 238, 32, 117,\n\t\t126, 137, 206, 150, 169, 241, 217, 40, 217, 220, 240, 151,\n\t\t191, 198, 32, 224, 221, 27, 171, 66, 98, 80, 202, 5, 184,\n\t\t114, 140, 46, 39, 121, 194, 204, 120, 72, 143, 48, 187, 65,\n\t\t23, 112, 11, 226, 38, 233, 107, 135, 115, 82, 0, 250, 135,\n\t\t223, 104, 76, 195, 128, 22, 214, 20, 13, 18, 65, 36, 56, 36,\n\t\t71, 236, 125, 101, 1, 246, 157, 161, 43, 167, 167, 148, 42,\n\t\t123, 19, 89, 127, 11, 125, 235, 37, 131, 54, 152, 107, 4,\n\t\t37, 175, 132, 66, 104, 59, 32, 111, 67, 186, 24, 65, 202,\n\t\t229, 49, 226, 242, 121, 3, 147, 187, 69, 201, 229, 95, 7,\n\t\t41, 182, 254, 45, 98, 44, 47, 2, 225, 173, 56, 98, 244, 158,\n\t\t247, 18, 102, 126, 138, 170, 46, 106, 12, 125, 131, 74, 159,\n\t\t94, 159, 34, 29, 25, 234, 89, 11, 198, 78, 213, 105, 28, 182,\n\t\t196, 99, 160, 32, 201, 69, 240, 95, 114, 211, 248, 62, 13,\n\t\t229, 27, 24, 238, 97, 229, 79, 120, 167, 196, 17, 142, 199,\n\t\t37, 15, 105, 120, 225, 20, 121, 111, 209, 240, 8, 37, 189,\n\t\t82, 241, 252, 205, 84, 252, 244, 152, 140, 207, 58, 209, 14,\n\t\t6, 107, 165, 233, 113, 13, 168, 8, 236, 226, 196, 155, 229,\n\t\t29, 91, 241, 227, 94, 57, 184, 203, 157, 186, 50, 230, 255,\n\t\t232, 25, 237, 59, 45, 254, 220, 89, 17, 41, 172, 160, 42,\n\t\t216, 104, 27, 66, 23, 201, 235, 129, 47, 135, 46, 242, 239,\n\t\t145, 5, 78, 172, 140, 100, 96, 57, 5, 161, 137, 142, 189,\n\t\t222, 225, 81, 207, 202, 200, 17, 140, 227, 187, 183, 105,\n\t\t33, 169, 31, 110, 205, 97, 202, 229, 220, 249, 155, 201, 5,\n\t\t225, 57, 62, 62, 158, 149, 203, 27, 142, 73, 217, 245, 71,\n\t\t142, 73, 222, 21, 91, 255, 199, 45, 233, 127, 220, 146, 254,\n\t\t199, 45, 233, 127, 220, 146, 254, 223, 226, 150, 84, 251,\n\t\t127, 192, 45, 73, 220, 162, 239, 146, 118, 63, 192, 165, 184,\n\t\t188, 19, 227, 66, 164, 203, 119, 88, 147, 233, 192, 7, 191,\n\t\t221, 183, 127, 231, 34, 192, 103, 171, 201, 147, 145, 134,\n\t\t55, 38, 207, 85, 133, 180, 18, 229, 97, 127, 145, 95, 218,\n\t\t214, 49, 2, 161, 149, 126, 231, 23, 180, 21, 243, 132, 64,\n\t\t171, 251, 141, 152, 118, 86, 209, 55, 10, 247, 44, 235, 55,\n\t\t14, 152, 4, 150, 96, 184, 96, 54, 30, 89, 170, 228, 52, 29,\n\t\t142, 23, 77, 163, 89, 216, 198, 4, 98, 166, 232, 140, 85,\n\t\t169, 13, 39, 231, 97, 146, 207, 28, 83, 86, 16, 202, 129,\n\t\t219, 124, 3, 239, 44, 135, 213, 176, 223, 26, 197, 243, 31,\n\t\t69, 195, 45, 44, 172, 94, 97, 224, 61, 33, 151, 229, 85, 139,\n\t\t164, 41, 192, 196, 228, 115, 54, 33, 103, 155, 30, 25, 213,\n\t\t15, 109, 234, 241, 198, 166, 126, 122, 104, 84, 159, 163,\n\t\t213, 132, 66, 120, 41, 207, 136, 159, 186, 38, 200, 146, 62,\n\t\t205, 97, 108, 68, 222, 227, 133, 58, 222, 196, 55, 163, 202,\n\t\t222, 196, 79, 203, 189, 51, 213, 157, 63, 214, 88, 15, 238,\n\t\t45, 127, 44, 241, 30, 89, 115, 146, 175, 3, 13, 239, 175,\n\t\t161, 150, 92, 169, 64, 118, 210, 217, 111, 243, 195, 2, 179,\n\t\t118, 235, 135, 133, 65, 221, 250, 97, 129, 243, 214, 128,\n\t\t12, 218, 96, 114, 198, 112, 74, 111, 25, 164, 111, 115, 184,\n\t\t122, 242, 53, 90, 63, 209, 223, 52, 3, 248, 143, 123, 163,\n\t\t193, 43, 69, 151, 109, 97, 208, 114, 201, 176, 229, 186, 77,\n\t\t103, 83, 88, 218, 126, 100, 241, 129, 105, 226, 171, 57, 239,\n\t\t25, 178, 13, 11, 7, 18, 225, 38, 164, 45, 141, 64, 129, 246,\n\t\t88, 174, 254, 101, 121, 254, 244, 235, 243, 231, 123, 166,\n\t\t209, 223, 0, 7, 150, 52, 199, 108, 99, 194, 203, 132, 154,\n\t\t149, 12, 61, 29, 231, 4, 142, 74, 92, 74, 233, 29, 123, 35,\n\t\t66, 163, 184, 53, 114, 197, 224, 230, 113, 203, 232, 241,\n\t\t184, 111, 211, 99, 188, 104, 243, 10, 238, 113, 200, 229,\n\t\t21, 185, 149, 13, 231, 251, 151, 122, 54, 213, 172, 112, 4,\n\t\t122, 121, 103, 185, 218, 54, 234, 114, 251, 242, 9, 192, 9,\n\t\t49, 32, 51, 209, 233, 46, 226, 250, 54, 44, 123, 147, 186,\n\t\t26, 183, 108, 227, 177, 39, 211, 206, 64, 143, 10, 0, 45,\n\t\t79, 69, 50, 190, 36, 103, 99, 249, 177, 90, 163, 183, 37,\n\t\t221, 214, 234, 19, 162, 187, 127, 164, 86, 151, 109, 42, 155,\n\t\t90, 79, 68, 192, 202, 98, 26, 194, 190, 43, 7, 124, 186, 104,\n\t\t67, 101, 146, 230, 4, 250, 131, 195, 232, 59, 31, 24, 68,\n\t\t216, 88, 201, 174, 183, 232, 143, 154, 240, 224, 156, 238,\n\t\t219, 94, 138, 205, 233, 21, 225, 180, 185, 156, 155, 231,\n\t\t102, 120, 91, 34, 76, 232, 237, 76, 219, 187, 5, 23, 1, 15,\n\t\t125, 188, 134, 95, 94, 254, 101, 94, 254, 124, 190, 199, 192,\n\t\t203, 126, 39, 145, 110, 112, 169, 83, 176, 129, 248, 199,\n\t\t108, 123, 158, 125, 195, 0, 17, 247, 195, 86, 207, 104, 107,\n\t\t115, 17, 244, 163, 119, 230, 47, 107, 117, 121, 36, 93, 186,\n\t\t154, 24, 171, 109, 172, 17, 41, 54, 68, 192, 217, 70, 235,\n\t\t3, 109, 0, 98, 202, 244, 110, 23, 228, 75, 41, 200, 96, 217,\n\t\t57, 20, 127, 147, 39, 52, 117, 155, 161, 108, 211, 243, 204,\n\t\t55, 91, 1, 11, 222, 17, 230, 230, 29, 226, 225, 145, 39, 187,\n\t\t184, 200, 97, 51, 161, 118, 226, 221, 122, 236, 105, 91, 16,\n\t\t49, 238, 215, 88, 162, 109, 245, 196, 1, 81, 244, 67, 176,\n\t\t37, 244, 6, 173, 77, 12, 200, 225, 17, 74, 207, 120, 192,\n\t\t151, 222, 231, 82, 17, 222, 79, 252, 180, 207, 200, 157, 87,\n\t\t172, 47, 83, 14, 54, 213, 158, 167, 16, 157, 237, 101, 202,\n\t\t217, 230, 214, 219, 235, 83, 40, 201, 214, 56, 197, 130, 117,\n\t\t157, 52, 94, 63, 216, 150, 145, 13, 69, 106, 87, 31, 233,\n\t\t113, 45, 195, 121, 53, 177, 36, 43, 44, 137, 183, 153, 93,\n\t\t46, 3, 42, 7, 221, 106, 14, 3, 17, 109, 240, 140, 50, 95,\n\t\t102, 90, 15, 190, 246, 58, 197, 100, 91, 196, 125, 165, 219,\n\t\t0, 199, 39, 80, 12, 30, 183, 234, 161, 38, 201, 108, 87, 42,\n\t\t182, 53, 162, 90, 182, 213, 222, 90, 228, 9, 161, 183, 121,\n\t\t222, 17, 107, 129, 76, 208, 21, 211, 154, 69, 25, 199, 217,\n\t\t148, 10, 231, 121, 173, 73, 214, 1, 45, 12, 89, 6, 115, 78,\n\t\t227, 104, 240, 193, 17, 123, 86, 162, 173, 98, 40, 143, 174,\n\t\t242, 200, 101, 70, 234, 110, 15, 124, 175, 126, 249, 252,\n\t\t242, 225, 215, 249, 195, 229, 139, 249, 242, 242, 239, 55,\n\t\t136, 242, 129, 36, 239, 179, 179, 157, 193, 213, 232, 32,\n\t\t240, 174, 50, 247, 72, 67, 39, 145, 149, 226, 105, 67, 140,\n\t\t94, 194, 74, 84, 217, 171, 8, 60, 67, 181, 153, 23, 127, 226,\n\t\t93, 56, 10, 114, 176, 53, 247, 118, 9, 40, 23, 241, 113, 170,\n\t\t54, 71, 23, 42, 126, 45, 180, 135, 24, 197, 161, 96, 160,\n\t\t162, 38, 165, 196, 251, 104, 119, 208, 251, 189, 132, 25,\n\t\t71, 151, 207, 52, 146, 129, 30, 243, 214, 49, 85, 241, 205,\n\t\t150, 224, 24, 149, 168, 33, 115, 78, 178, 173, 56, 150, 94,\n\t\t104, 234, 65, 151, 123, 116, 165, 112, 70, 191, 230, 216,\n\t\t151, 39, 117, 198, 61, 86, 95, 94, 46, 72, 1, 244, 131, 90,\n\t\t237, 187, 103, 83, 34, 214, 248, 221, 13, 115, 180, 149, 145,\n\t\t133, 121, 25, 69, 89, 196, 250, 86, 204, 229, 77, 59, 206,\n\t\t70, 26, 255, 250, 212, 58, 54, 233, 148, 66, 178, 165, 96,\n\t\t197, 101, 134, 162, 247, 201, 113, 26, 195, 226, 153, 191,\n\t\t206, 182, 215, 201, 97, 187, 65, 83, 226, 136, 17, 57, 205,\n\t\t153, 214, 29, 252, 21, 28, 237, 81, 176, 212, 61, 244, 210,\n\t\t89, 161, 81, 217, 50, 39, 8, 25, 82, 114, 54, 178, 9, 144,\n\t\t180, 180, 17, 9, 224, 157, 196, 180, 138, 104, 112, 229, 118,\n\t\t131, 57, 235, 214, 211, 188, 1, 43, 55, 87, 23, 73, 160, 200,\n\t\t145, 200, 91, 32, 177, 207, 165, 169, 39, 235, 209, 76, 45,\n\t\t64, 114, 104, 58, 58, 82, 224, 97, 25, 121, 235, 3, 173, 40,\n\t\t18, 35, 27, 152, 214, 102, 75, 31, 54, 162, 108, 171, 239,\n\t\t149, 230, 62, 85, 87, 33, 69, 3, 239, 35, 241, 230, 145, 235,\n\t\t51, 157, 241, 209, 121, 164, 33, 214, 185, 31, 232, 45, 1,\n\t\t117, 32, 131, 52, 147, 128, 24, 137, 226, 20, 18, 11, 203,\n\t\t148, 98, 179, 213, 195, 111, 146, 233, 106, 177, 33, 16, 129,\n\t\t202, 182, 39, 234, 64, 45, 194, 63, 104, 1, 53, 177, 250,\n\t\t139, 233, 54, 241, 168, 82, 15, 216, 84, 5, 156, 19, 185,\n\t\t97, 147, 184, 153, 24, 79, 180, 165, 217, 196, 141, 162, 153,\n\t\t98, 118, 146, 200, 158, 203, 163, 228, 12, 81, 48, 116, 182,\n\t\t18, 96, 8, 29, 203, 54, 52, 147, 62, 40, 165, 138, 140, 179,\n\t\t66, 227, 239, 123, 62, 205, 169, 97, 74, 166, 214, 109, 243,\n\t\t142, 227, 33, 58, 76, 172, 201, 50, 132, 122, 104, 46, 212,\n\t\t56, 97, 149, 68, 18, 166, 120, 235, 121, 199, 68, 50, 200,\n\t\t65, 69, 36, 18, 212, 12, 199, 12, 174, 104, 120, 137, 182,\n\t\t205, 69, 168, 46, 82, 142, 240, 193, 164, 231, 63, 245, 131,\n\t\t134, 77, 251, 241, 250, 148, 90, 167, 241, 141, 45, 205, 43,\n\t\t253, 96, 242, 65, 220, 67, 167, 45, 189, 117, 214, 3, 13,\n\t\t73, 67, 69, 40, 52, 68, 41, 134, 81, 26, 50, 10, 132, 134,\n\t\t156, 46, 70, 143, 34, 214, 34, 96, 191, 130, 142, 232, 45,\n\t\t36, 180, 241, 106, 47, 216, 152, 205, 198, 70, 93, 215, 183,\n\t\t50, 41, 19, 216, 26, 148, 140, 253, 136, 176, 82, 89, 81,\n\t\t70, 201, 137, 82, 147, 177, 141, 101, 23, 207, 74, 75, 148,\n\t\t148, 8, 93, 80, 66, 34, 151, 74, 70, 140, 210, 17, 37, 35,\n\t\t230, 246, 6, 100, 92, 170, 152, 33, 44, 64, 37, 35, 74, 69,\n\t\t238, 222, 126, 30, 36, 36, 86, 34, 160, 83, 104, 209, 182,\n\t\t182, 248, 40, 232, 242, 209, 38, 79, 146, 93, 119, 5, 49,\n\t\t53, 62, 137, 28, 155, 148, 111, 168, 114, 112, 54, 218, 229,\n\t\t145, 115, 4, 17, 49, 90, 128, 133, 4, 192, 103, 31, 104, 203,\n\t\t33, 89, 178, 60, 63, 60, 4, 233, 113, 140, 148, 77, 89, 50,\n\t\t180, 145, 156, 217, 195, 36, 245, 1, 232, 145, 141, 20, 190,\n\t\t89, 159, 207, 134, 14, 25, 87, 81, 238, 187, 238, 45, 159,\n\t\t209, 115, 153, 163, 241, 30, 207, 147, 201, 108, 141, 235,\n\t\t109, 173, 222, 140, 250, 181, 153, 187, 86, 174, 141, 148,\n\t\t135, 169, 54, 48, 84, 218, 87, 237, 42, 15, 151, 140, 22,\n\t\t157, 124, 137, 77, 83, 161, 175, 42, 141, 16, 24, 110, 72,\n\t\t85, 133, 5, 71, 245, 157, 172, 17, 129, 131, 77, 82, 121,\n\t\t31, 2, 15, 173, 26, 39, 69, 171, 204, 195, 151, 133, 33, 62,\n\t\t241, 98, 86, 168, 248, 172, 114, 171, 44, 183, 161, 248, 230,\n\t\t23, 190, 62, 133, 234, 109, 129, 209, 225, 220, 11, 134, 103,\n\t\t49, 169, 217, 88, 137, 86, 64, 195, 246, 136, 61, 120, 249,\n\t\t99, 199, 20, 28, 192, 22, 133, 92, 108, 34, 22, 132, 142,\n\t\t220, 165, 21, 161, 93, 36, 135, 250, 230, 47, 102, 13, 206,\n\t\t118, 193, 70, 58, 242, 106, 225, 3, 2, 83, 13, 255, 133, 46,\n\t\t204, 65, 170, 182, 18, 35, 105, 66, 41, 182, 68, 236, 112,\n\t\t143, 211, 250, 174, 224, 34, 1, 23, 33, 242, 17, 232, 61,\n\t\t177, 141, 196, 11, 45, 61, 201, 142, 36, 122, 84, 231, 136,\n\t\t170, 227, 128, 93, 32, 46, 205, 121, 95, 137, 69, 96, 70,\n\t\t160, 208, 144, 35, 80, 62, 35, 60, 69, 172, 233, 140, 120,\n\t\t117, 154, 193, 99, 245, 140, 236, 53, 133, 243, 78, 226, 236,\n\t\t104, 206, 18, 215, 34, 206, 37, 189, 130, 227, 158, 181, 43,\n\t\t212, 19, 90, 153, 196, 169, 197, 41, 57, 62, 39, 110, 174,\n\t\t24, 169, 34, 199, 41, 17, 97, 171, 115, 182, 169, 245, 0,\n\t\t95, 178, 238, 233, 176, 78, 56, 149, 146, 16, 62, 48, 243,\n\t\t73, 52, 0, 212, 162, 197, 132, 72, 167, 12, 237, 178, 106,\n\t\t219, 18, 19, 99, 116, 1, 201, 42, 184, 62, 103, 235, 88, 14,\n\t\t83, 77, 177, 31, 92, 64, 150, 93, 82, 198, 43, 88, 206, 63,\n\t\t45, 195, 161, 10, 126, 36, 25, 249, 63, 101, 78, 101, 74,\n\t\t151, 32, 171, 54, 51, 180, 214, 28, 113, 223, 84, 69, 252,\n\t\t131, 142, 152, 201, 34, 156, 116, 228, 40, 9, 116, 220, 81,\n\t\t35, 133, 103, 9, 24, 168, 5, 125, 168, 125, 66, 31, 144, 143,\n\t\t129, 72, 145, 142, 133, 47, 194, 249, 72, 59, 169, 235, 216,\n\t\t9, 193, 230, 226, 114, 62, 92, 202, 243, 249, 195, 242, 175,\n\t\t95, 94, 62, 124, 222, 57, 84, 249, 3, 248, 96, 6, 50, 191,\n\t\t154, 152, 195, 217, 148, 116, 141, 181, 8, 160, 80, 6, 96,\n\t\t25, 207, 228, 10, 128, 214, 25, 121, 45, 67, 111, 161, 200,\n\t\t107, 114, 139, 73, 238, 106, 98, 45, 92, 17, 85, 152, 144,\n\t\t117, 47, 36, 160, 210, 52, 244, 73, 189, 78, 25, 201, 236,\n\t\t222, 237, 148, 239, 25, 63, 223, 56, 158, 22, 199, 134, 100,\n\t\t169, 134, 61, 79, 215, 251, 86, 215, 83, 190, 99, 243, 10,\n\t\t118, 62, 13, 53, 92, 75, 58, 251, 14, 108, 160, 211, 217,\n\t\t167, 99, 39, 219, 117, 64, 205, 151, 231, 15, 243, 249, 13,\n\t\t233, 225, 8, 244, 198, 33, 65, 66, 25, 131, 69, 59, 52, 70,\n\t\t168, 229, 192, 43, 169, 14, 217, 22, 36, 151, 33, 222, 37,\n\t\t177, 49, 41, 128, 200, 7, 47, 180, 37, 85, 38, 103, 108, 46,\n\t\t229, 11, 56, 56, 51, 114, 104, 233, 172, 20, 173, 235, 89,\n\t\t136, 141, 158, 128, 194, 71, 55, 83, 245, 145, 53, 112, 37,\n\t\t48, 147, 148, 186, 108, 81, 188, 95, 195, 167, 168, 41, 65,\n\t\t142, 29, 71, 52, 132, 37, 76, 62, 125, 29, 137, 39, 56, 11,\n\t\t140, 199, 214, 75, 96, 54, 133, 148, 241, 130, 159, 130, 146,\n\t\t191, 177, 171, 221, 96, 60, 80, 112, 81, 86, 64, 212, 128,\n\t\t74, 43, 228, 231, 57, 176, 108, 237, 88, 226, 73, 83, 130,\n\t\t82, 10, 54, 148, 198, 179, 234, 50, 248, 95, 190, 102, 216,\n\t\t121, 118, 141, 140, 44, 117, 74, 160, 83, 16, 209, 69, 162,\n\t\t157, 228, 242, 54, 228, 105, 45, 228, 184, 167, 205, 51, 107,\n\t\t240, 83, 15, 83, 74, 13, 118, 17, 104, 25, 0, 180, 139, 76,\n\t\t77, 2, 175, 219, 177, 231, 175, 38, 146, 104, 204, 81, 80,\n\t\t21, 27, 152, 85, 239, 16, 10, 228, 38, 153, 67, 190, 56, 155,\n\t\t144, 146, 205, 48, 245, 210, 9, 225, 225, 188, 84, 132, 109,\n\t\t192, 237, 52, 129, 16, 219, 99, 103, 25, 162, 164, 115, 45,\n\t\t224, 149, 176, 148, 3, 82, 40, 159, 75, 186, 134, 198, 118,\n\t\t244, 171, 234, 116, 231, 225, 88, 65, 252, 27, 152, 145, 228,\n\t\t152, 41, 27, 137, 45, 75, 210, 239, 215, 84, 64, 106, 78,\n\t\t156, 100, 27, 173, 215, 198, 107, 219, 105, 65, 73, 203, 99,\n\t\t123, 180, 117, 254, 250, 60, 239, 252, 204, 252, 17, 60, 78,\n\t\t73, 16, 130, 156, 183, 17, 233, 122, 192, 154, 147, 220, 64,\n\t\t76, 59, 28, 185, 248, 104, 96, 238, 137, 47, 67, 181, 41,\n\t\t185, 116, 53, 33, 86, 75, 3, 208, 5, 41, 78, 185, 144, 59,\n\t\t173, 234, 36, 168, 231, 163, 216, 168, 182, 181, 23, 60, 204,\n\t\t245, 176, 167, 166, 115, 161, 211, 178, 36, 14, 117, 66, 98,\n\t\t174, 220, 229, 197, 242, 222, 133, 182, 76, 42, 83, 169, 208,\n\t\t232, 92, 51, 115, 39, 154, 140, 225, 144, 80, 157, 142, 40,\n\t\t213, 154, 145, 225, 43, 55, 0, 145, 253, 136, 158, 38, 164,\n\t\t154, 253, 113, 154, 155, 218, 213, 72, 183, 94, 159, 220,\n\t\t148, 73, 70, 154, 105, 108, 124, 207, 17, 68, 195, 150, 148,\n\t\t113, 0, 66, 100, 14, 201, 182, 144, 145, 45, 128, 200, 8,\n\t\t49, 246, 137, 243, 47, 55, 91, 160, 70, 202, 233, 116, 29,\n\t\t73, 113, 31, 12, 147, 119, 196, 117, 208, 9, 226, 232, 105,\n\t\t104, 52, 103, 239, 133, 11, 206, 194, 153, 202, 171, 192,\n\t\t122, 129, 21, 210, 2, 121, 249, 213, 112, 61, 143, 123, 235,\n\t\t125, 184, 250, 7, 94, 244, 243, 203, 199, 79, 187, 168, 11,\n\t\t255, 252, 127, 141, 212, 20, 137, 41, 219, 156, 212, 79, 38,\n\t\t116, 53, 26, 194, 127, 79, 126, 71, 222, 96, 189, 184, 16,\n\t\t111, 88, 215, 128, 246, 30, 180, 154, 171, 222, 50, 111, 115,\n\t\t160, 55, 206, 104, 103, 80, 7, 45, 106, 250, 50, 236, 159,\n\t\t116, 81, 210, 85, 30, 100, 27, 40, 155, 10, 56, 250, 237,\n\t\t141, 155, 47, 13, 172, 186, 92, 160, 90, 189, 99, 188, 227,\n\t\t238, 165, 180, 30, 224, 71, 121, 90, 187, 26, 19, 122, 217,\n\t\t55, 225, 179, 125, 141, 165, 213, 94, 214, 245, 39, 249, 229,\n\t\t170, 183, 124, 123, 47, 229, 65, 78, 15, 132, 52, 240, 87,\n\t\t49, 3, 206, 81, 45, 60, 98, 120, 171, 10, 100, 47, 174, 212,\n\t\t156, 189, 46, 223, 12, 113, 80, 199, 146, 56, 80, 201, 213,\n\t\t134, 68, 75, 42, 143, 16, 71, 52, 133, 24, 102, 14, 26, 6,\n\t\t210, 172, 186, 98, 64, 34, 115, 60, 98, 77, 6, 28, 5, 244,\n\t\t101, 56, 138, 208, 69, 115, 52, 242, 28, 166, 59, 53, 71,\n\t\t189, 0, 96, 122, 244, 182, 142, 40, 155, 181, 77, 36, 152,\n\t\t165, 160, 134, 48, 7, 95, 47, 106, 184, 186, 161, 71, 205,\n\t\t255, 13, 67, 171, 56, 170, 77, 190, 208, 176, 75, 32, 248,\n\t\t109, 111, 181, 111, 35, 173, 78, 18, 252, 82, 192, 140, 102,\n\t\t246, 112, 121, 176, 31, 254, 248, 243, 195, 252, 197, 252,\n\t\t250, 241, 50, 239, 182, 197, 14, 15, 97, 205, 225, 18, 232,\n\t\t56, 73, 110, 246, 17, 137, 136, 190, 47, 107, 203, 229, 46,\n\t\t251, 203, 235, 83, 107, 146, 27, 166, 137, 55, 203, 8, 192,\n\t\t32, 62, 129, 255, 17, 159, 104, 188, 203, 182, 79, 99, 114,\n\t\t70, 234, 212, 206, 75, 11, 97, 92, 84, 235, 143, 230, 143,\n\t\t64, 37, 136, 70, 59, 138, 106, 187, 188, 21, 197, 118, 217,\n\t\t155, 48, 47, 187, 28, 0, 135, 115, 243, 249, 229, 223, 247,\n\t\t115, 18, 14, 66, 239, 115, 74, 36, 158, 205, 43, 43, 181,\n\t\t61, 67, 89, 68, 95, 36, 5, 214, 213, 48, 174, 90, 171, 194,\n\t\t175, 230, 38, 95, 104, 185, 53, 198, 64, 128, 166, 183, 145,\n\t\t16, 180, 16, 141, 136, 36, 236, 34, 27, 83, 4, 163, 231, 50,\n\t\t4, 210, 0, 179, 152, 113, 108, 121, 137, 108, 244, 129, 234,\n\t\t180, 178, 106, 23, 34, 28, 113, 178, 11, 220, 197, 193, 131,\n\t\t54, 230, 56, 137, 121, 10, 161, 39, 206, 192, 205, 53, 210,\n\t\t227, 174, 167, 105, 83, 33, 63, 62, 73, 125, 11, 109, 234,\n\t\t204, 74, 16, 103, 99, 67, 170, 107, 81, 187, 57, 102, 48,\n\t\t137, 105, 99, 37, 182, 131, 58, 143, 51, 201, 137, 64, 169,\n\t\t69, 103, 226, 203, 136, 189, 95, 98, 99, 27, 16, 12, 123,\n\t\t165, 253, 231, 123, 199, 118, 129, 224, 172, 39, 198, 6, 202,\n\t\t198, 5, 224, 179, 25, 126, 121, 14, 188, 253, 105, 230, 92,\n\t\t232, 226, 16, 11, 143, 128, 200, 82, 71, 178, 185, 244, 184,\n\t\t41, 8, 213, 186, 208, 227, 246, 240, 111, 34, 166, 102, 155,\n\t\t88, 29, 215, 173, 47, 80, 44, 65, 50, 15, 9, 237, 89, 98,\n\t\t245, 150, 88, 40, 100, 97, 190, 6, 7, 38, 155, 3, 43, 217,\n\t\t248, 148, 161, 236, 27, 129, 149, 196, 105, 43, 180, 119,\n\t\t183, 234, 113, 64, 119, 18, 97, 135, 21, 5, 17, 72, 176, 34,\n\t\t189, 18, 231, 56, 197, 148, 224, 148, 157, 135, 75, 118, 205,\n\t\t91, 135, 108, 89, 152, 90, 204, 254, 213, 167, 225, 143, 13,\n\t\t77, 250, 157, 63, 118, 150, 90, 54, 190, 216, 143, 182, 218,\n\t\t206, 88, 26, 118, 177, 253, 155, 189, 134, 212, 29, 63, 22,\n\t\t138, 73, 123, 245, 123, 67, 49, 147, 23, 225, 134, 56, 131,\n\t\t53, 131, 200, 54, 109, 200, 62, 133, 254, 170, 209, 119, 171,\n\t\t123, 138, 250, 198, 168, 101, 82, 61, 157, 22, 83, 71, 70,\n\t\t151, 30, 44, 201, 39, 45, 157, 214, 82, 20, 206, 236, 168,\n\t\t186, 166, 51, 205, 107, 42, 213, 58, 144, 100, 84, 153, 85,\n\t\t37, 54, 230, 109, 79, 160, 139, 122, 50, 226, 74, 226, 249,\n\t\t218, 229, 174, 87, 236, 114, 36, 46, 157, 94, 253, 150, 6,\n\t\t148, 254, 10, 82, 32, 57, 89, 70, 39, 146, 228, 4, 94, 211,\n\t\t58, 201, 161, 59, 0, 50, 71, 172, 176, 103, 231, 244, 165,\n\t\t33, 96, 63, 5, 11, 47, 43, 57, 99, 135, 198, 73, 99, 191,\n\t\t194, 250, 61, 86, 177, 248, 79, 218, 98, 238, 217, 27, 125,\n\t\t240, 28, 77, 179, 198, 64, 140, 116, 32, 149, 223, 107, 240,\n\t\t226, 121, 68, 172, 107, 226, 118, 205, 24, 76, 123, 31, 26,\n\t\t179, 1, 115, 161, 205, 150, 180, 68, 147, 246, 216, 104, 38,\n\t\t158, 178, 6, 32, 169, 239, 183, 242, 13, 90, 176, 250, 3,\n\t\t239, 187, 113, 184, 131, 126, 253, 56, 239, 252, 223, 195,\n\t\t65, 188, 62, 173, 221, 144, 203, 188, 186, 80, 200, 32, 169,\n\t\t151, 4, 132, 151, 192, 59, 90, 111, 50, 91, 23, 139, 225,\n\t\t127, 174, 186, 148, 175, 187, 98, 64, 60, 134, 110, 188, 216,\n\t\t192, 124, 102, 40, 115, 16, 125, 237, 248, 20, 41, 61, 119,\n\t\t81, 33, 214, 169, 117, 27, 131, 139, 103, 88, 196, 18, 67,\n\t\t178, 212, 240, 15, 16, 171, 167, 20, 137, 90, 78, 33, 55,\n\t\t91, 103, 144, 102, 230, 154, 249, 203, 40, 200, 142, 109,\n\t\t201, 14, 206, 95, 137, 19, 119, 212, 68, 135, 203, 36, 95,\n\t\t102, 179, 123, 124, 60, 182, 150, 148, 14, 195, 202, 228,\n\t\t244, 249, 73, 170, 153, 247, 47, 213, 47, 235, 203, 229, 233,\n\t\t69, 95, 205, 159, 167, 249, 254, 81, 125, 66, 175, 199, 91,\n\t\t217, 147, 212, 185, 111, 31, 218, 111, 30, 217, 16, 210, 119,\n\t\t205, 225, 183, 190, 232, 196, 201, 221, 254, 177, 62, 197,\n\t\t208, 254, 129, 55, 197, 28, 14, 250, 116, 250, 27, 95, 245,\n\t\t136, 218, 152, 223, 62, 94, 247, 36, 103, 7, 160, 176, 137,\n\t\t133, 111, 204, 31, 63, 242, 220, 115, 34, 198, 222, 234, 160,\n\t\t54, 126, 201, 226, 186, 183, 214, 35, 62, 207, 227, 190, 146,\n\t\t174, 92, 205, 87, 125, 247, 98, 112, 175, 79, 62, 52, 201,\n\t\t52, 251, 51, 92, 247, 168, 246, 144, 203, 233, 103, 213, 143,\n\t\t8, 38, 134, 251, 248, 25, 213, 199, 224, 190, 121, 112, 78,\n\t\t223, 86, 61, 157, 63, 223, 84, 255, 187, 171, 127, 188, 118,\n\t\t95, 254, 218, 217, 35, 194, 17, 142, 195, 255, 172, 221, 191,\n\t\t179, 254, 239, 89, 92, 223, 86, 251, 55, 175, 173, 247, 175,\n\t\t221, 135, 139, 235, 229, 211, 158, 46, 238, 80, 25, 254, 139,\n\t\t215, 214, 207, 165, 44, 15, 135, 239, 242, 241, 127, 239,\n\t\t134, 111, 23, 99, 255, 95, 60, 124, 63, 127, 107, 250, 226,\n\t\t126, 218, 214, 148, 173, 255, 179, 170, 255, 158, 157, 255,\n\t\t254, 173, 201, 1, 75, 63, 109, 233, 126, 31, 101, 121, 119,\n\t\t245, 15, 119, 198, 151, 243, 231, 231, 61, 105, 217, 1, 14,\n\t\t252, 151, 239, 141, 159, 55, 128, 74, 185, 126, 218, 230,\n\t\t248, 158, 213, 251, 238, 218, 31, 79, 255, 191, 95, 118, 147,\n\t\t127, 16, 226, 254, 255, 183, 201, 231, 201, 249, 89, 115,\n\t\t127, 60, 59, 215, 143, 191, 238, 55, 230, 206, 59, 254, 22,\n\t\t126, 160, 31, 79, 205, 229, 173, 169, 184, 236, 135, 254,\n\t\t114, 63, 216, 188, 13, 0, 164, 123, 52, 101, 187, 231, 46,\n\t\t239, 108, 3, 27, 11, 67, 186, 163, 178, 119, 99, 75, 43, 139,\n\t\t29, 18, 143, 131, 176, 90, 122, 79, 16, 150, 222, 113, 51,\n\t\t157, 192, 25, 124, 224, 75, 241, 235, 203, 11, 210, 13, 93,\n\t\t158, 119, 142, 93, 225, 40, 191, 226, 127, 137, 215, 21, 226,\n\t\t104, 251, 53, 246, 106, 233, 190, 208, 216, 180, 20, 188,\n\t\t205, 161, 195, 109, 158, 35, 16, 155, 126, 61, 135, 70, 247,\n\t\t236, 253, 109, 16, 36, 146, 56, 176, 145, 45, 153, 168, 244,\n\t\t12, 36, 103, 4, 29, 245, 149, 116, 86, 60, 25, 213, 215, 117,\n\t\t59, 232, 155, 201, 248, 89, 187, 137, 166, 236, 173, 232,\n\t\t169, 112, 224, 137, 247, 119, 77, 152, 79, 233, 26, 91, 130,\n\t\t63, 75, 73, 52, 58, 251, 161, 132, 171, 177, 184, 34, 165,\n\t\t204, 161, 87, 201, 230, 124, 110, 238, 245, 41, 250, 96, 67,\n\t\t154, 82, 42, 182, 247, 57, 40, 2, 159, 228, 42, 141, 93, 157,\n\t\t144, 197, 71, 105, 20, 196, 0, 123, 207, 213, 164, 218, 108,\n\t\t131, 7, 121, 121, 184, 116, 14, 253, 96, 154, 187, 198, 146,\n\t\t173, 131, 71, 78, 182, 193, 247, 58, 117, 120, 245, 71, 90,\n\t\t72, 28, 70, 149, 216, 117, 92, 222, 142, 56, 42, 102, 160,\n\t\t54, 250, 37, 153, 62, 232, 184, 46, 162, 86, 138, 172, 66,\n\t\t162, 130, 144, 54, 83, 30, 18, 79, 57, 107, 147, 34, 227,\n\t\t247, 60, 152, 240, 231, 255, 251, 175, 15, 203, 206, 43, 36,\n\t\t236, 220, 3, 87, 242, 9, 111, 133, 148, 30, 18, 160, 127,\n\t\t134, 254, 160, 57, 52, 93, 255, 64, 115, 78, 239, 104, 207,\n\t\t209, 88, 255, 246, 252, 225, 203, 27, 190, 152, 225, 215,\n\t\t17, 94, 91, 170, 245, 105, 74, 46, 90, 95, 230, 236, 196,\n\t\t253, 154, 190, 4, 151, 39, 197, 169, 1, 30, 32, 66, 181, 66,\n\t\t129, 95, 127, 239, 54, 150, 197, 248, 232, 225, 92, 150, 216,\n\t\t34, 116, 238, 236, 165, 61, 155, 174, 49, 68, 222, 49, 125,\n\t\t137, 182, 52, 87, 202, 20, 173, 131, 251, 158, 73, 69, 220,\n\t\t245, 82, 129, 51, 230, 98, 124, 170, 54, 87, 236, 51, 31,\n\t\t123, 57, 247, 134, 189, 55, 155, 154, 196, 47, 178, 170, 53,\n\t\t216, 247, 100, 17, 223, 231, 228, 188, 10, 84, 75, 68, 22,\n\t\t216, 158, 168, 178, 82, 52, 22, 186, 192, 22, 123, 162, 54,\n\t\t197, 138, 192, 143, 142, 32, 38, 6, 60, 212, 0, 27, 41, 137,\n\t\t209, 118, 218, 41, 238, 50, 110, 15, 108, 222, 229, 56, 231,\n\t\t30, 123, 94, 66, 70, 196, 36, 125, 132, 60, 23, 218, 58, 235,\n\t\t31, 95, 216, 192, 12, 199, 224, 18, 122, 135, 159, 59, 156,\n\t\t172, 240, 59, 145, 20, 132, 83, 58, 78, 223, 141, 156, 117,\n\t\t181, 81, 77, 28, 112, 82, 156, 141, 201, 181, 41, 90, 143,\n\t\t17, 131, 35, 80, 131, 61, 55, 185, 50, 5, 239, 173, 175, 200,\n\t\t225, 90, 120, 75, 87, 14, 42, 67, 140, 21, 125, 38, 87, 194,\n\t\t212, 50, 213, 213, 96, 134, 15, 167, 25, 72, 225, 61, 77,\n\t\t221, 73, 200, 67, 235, 182, 134, 14, 207, 15, 63, 133, 12,\n\t\t87, 210, 41, 100, 216, 98, 142, 151, 212, 231, 61, 198, 79,\n\t\t216, 37, 31, 91, 3, 93, 137, 52, 230, 56, 69, 172, 173, 217,\n\t\t77, 110, 202, 205, 166, 0, 111, 135, 110, 93, 113, 121, 234,\n\t\t205, 246, 214, 35, 99, 245, 52, 23, 103, 223, 108, 229, 117,\n\t\t134, 64, 36, 132, 59, 74, 204, 84, 231, 232, 134, 81, 144,\n\t\t57, 156, 239, 106, 216, 9, 145, 22, 221, 236, 36, 134, 51,\n\t\t34, 101, 179, 141, 30, 158, 193, 116, 136, 210, 18, 9, 29,\n\t\t225, 24, 52, 170, 161, 208, 26, 206, 9, 147, 208, 224, 237,\n\t\t159, 150, 222, 36, 182, 203, 187, 100, 75, 59, 231, 136, 105,\n\t\t60, 220, 238, 167, 199, 71, 77, 119, 226, 183, 224, 125, 163,\n\t\t1, 65, 226, 212, 52, 103, 217, 15, 57, 33, 246, 4, 205, 235,\n\t\t52, 58, 45, 179, 51, 52, 220, 141, 232, 212, 239, 209, 6,\n\t\t63, 3, 151, 39, 49, 30, 60, 188, 45, 13, 77, 97, 199, 101,\n\t\t134, 127, 68, 200, 214, 71, 90, 93, 49, 73, 16, 113, 40, 240,\n\t\t91, 64, 124, 10, 111, 190, 225, 53, 38, 145, 85, 112, 139,\n\t\t128, 79, 70, 148, 120, 62, 198, 28, 235, 225, 52, 103, 27,\n\t\t61, 188, 27, 170, 226, 233, 171, 240, 0, 200, 19, 190, 13,\n\t\t15, 118, 151, 226, 18, 3, 207, 29, 109, 155, 198, 96, 175,\n\t\t165, 117, 196, 95, 178, 135, 108, 19, 161, 193, 113, 232,\n\t\t89, 13, 236, 235, 226, 17, 36, 219, 231, 148, 120, 81, 32,\n\t\t191, 186, 39, 174, 167, 218, 150, 105, 39, 87, 199, 225, 136,\n\t\t49, 114, 60, 141, 43, 72, 117, 175, 46, 98, 84, 113, 116,\n\t\t254, 92, 59, 58, 117, 56, 95, 143, 167, 43, 2, 33, 33, 38,\n\t\t14, 50, 112, 72, 209, 139, 144, 195, 32, 198, 114, 195, 209,\n\t\t58, 196, 160, 205, 128, 41, 241, 133, 8, 25, 64, 16, 233,\n\t\t196, 116, 201, 58, 218, 90, 173, 219, 84, 38, 100, 39, 72,\n\t\t115, 129, 247, 134, 7, 138, 104, 38, 110, 0, 36, 176, 192,\n\t\t81, 182, 54, 250, 139, 239, 115, 148, 8, 39, 135, 12, 36,\n\t\t56, 64, 66, 99, 99, 30, 221, 6, 55, 233, 146, 177, 141, 94,\n\t\t159, 98, 105, 83, 244, 223, 97, 99, 59, 205, 70, 127, 114,\n\t\t211, 99, 123, 145, 254, 240, 14, 139, 209, 239, 31, 46, 230,\n\t\t207, 191, 254, 248, 115, 71, 40, 126, 211, 131, 39, 198, 71,\n\t\t233, 119, 31, 187, 116, 64, 78, 253, 78, 151, 14, 136, 168,\n\t\t137, 246, 212, 20, 105, 135, 205, 136, 48, 64, 84, 138, 24,\n\t\t252, 5, 179, 115, 20, 8, 206, 225, 213, 32, 195, 252, 204,\n\t\t128, 64, 35, 194, 42, 79, 166, 82, 31, 144, 172, 90, 115,\n\t\t220, 204, 140, 11, 163, 25, 174, 56, 105, 249, 10, 122, 7,\n\t\t148, 99, 201, 98, 16, 36, 147, 204, 38, 65, 181, 230, 136,\n\t\t226, 104, 17, 228, 168, 110, 87, 227, 61, 192, 244, 219, 53,\n\t\t230, 67, 132, 14, 100, 52, 26, 56, 65, 34, 236, 233, 45, 208,\n\t\t5, 248, 30, 206, 109, 78, 77, 97, 60, 26, 167, 252, 102, 36,\n\t\t92, 34, 14, 109, 112, 49, 130, 110, 229, 157, 14, 142, 174,\n\t\t130, 139, 44, 54, 52, 129, 10, 175, 240, 104, 59, 205, 38,\n\t\t8, 60, 206, 232, 124, 66, 104, 35, 31, 202, 36, 193, 8, 252,\n\t\t100, 225, 238, 46, 52, 84, 226, 214, 193, 46, 151, 2, 10,\n\t\t56, 16, 110, 212, 157, 93, 240, 63, 249, 124, 117, 174, 44,\n\t\t35, 113, 52, 127, 206, 183, 207, 233, 253, 101, 4, 227, 113,\n\t\t238, 154, 215, 167, 144, 203, 20, 114, 185, 2, 237, 193, 23,\n\t\t7, 164, 7, 26, 183, 227, 165, 189, 124, 184, 92, 158, 119,\n\t\t252, 107, 220, 185, 10, 110, 176, 30, 106, 178, 126, 242,\n\t\t165, 218, 18, 103, 15, 22, 10, 206, 59, 76, 140, 135, 55,\n\t\t29, 29, 118, 116, 164, 251, 141, 19, 74, 190, 18, 217, 11,\n\t\t153, 102, 161, 4, 166, 64, 240, 255, 69, 236, 185, 247, 68,\n\t\t148, 36, 225, 142, 94, 158, 105, 36, 17, 97, 8, 212, 118,\n\t\t68, 136, 208, 111, 68, 61, 145, 42, 68, 194, 146, 147, 109,\n\t\t117, 242, 46, 219, 88, 23, 19, 132, 95, 139, 13, 135, 29,\n\t\t226, 138, 107, 94, 203, 141, 252, 128, 16, 120, 9, 239, 206,\n\t\t93, 206, 241, 156, 70, 28, 31, 213, 38, 149, 55, 189, 222,\n\t\t54, 40, 178, 219, 185, 211, 54, 103, 199, 129, 199, 70, 225,\n\t\t135, 162, 109, 253, 42, 93, 182, 206, 185, 94, 75, 46, 97,\n\t\t68, 121, 57, 219, 114, 200, 177, 99, 178, 5, 130, 130, 125,\n\t\t105, 50, 251, 237, 165, 204, 1, 25, 190, 121, 91, 227, 156,\n\t\t37, 180, 38, 68, 62, 133, 72, 148, 70, 124, 70, 2, 87, 56,\n\t\t165, 56, 9, 12, 237, 105, 14, 158, 195, 249, 188, 96, 45,\n\t\t36, 9, 42, 246, 137, 157, 8, 171, 163, 179, 145, 216, 188,\n\t\t8, 44, 51, 106, 49, 194, 46, 16, 75, 55, 55, 141, 149, 13,\n\t\t182, 114, 44, 73, 224, 195, 195, 120, 207, 225, 70, 222, 105,\n\t\t200, 162, 131, 28, 182, 152, 44, 17, 58, 52, 213, 136, 9,\n\t\t30, 15, 155, 166, 220, 42, 61, 141, 243, 15, 245, 57, 193,\n\t\t122, 146, 72, 74, 84, 184, 24, 129, 209, 160, 97, 106, 189,\n\t\t100, 118, 160, 106, 56, 44, 37, 218, 142, 206, 115, 141, 206,\n\t\t103, 30, 32, 70, 225, 56, 60, 113, 130, 137, 129, 62, 66,\n\t\t223, 192, 124, 192, 249, 220, 49, 70, 90, 198, 153, 12, 15,\n\t\t80, 39, 81, 166, 222, 229, 133, 214, 69, 162, 182, 229, 104,\n\t\t91, 156, 85, 92, 46, 248, 53, 79, 136, 175, 153, 56, 242,\n\t\t163, 121, 98, 53, 241, 125, 86, 214, 4, 185, 151, 121, 1,\n\t\t84, 235, 176, 172, 176, 118, 10, 152, 150, 154, 207, 196,\n\t\t241, 3, 121, 33, 73, 127, 60, 241, 173, 142, 99, 44, 105,\n\t\t15, 4, 198, 123, 224, 199, 242, 184, 158, 163, 103, 183, 78,\n\t\t55, 229, 46, 1, 192, 89, 96, 66, 218, 72, 205, 22, 128, 250,\n\t\t194, 93, 64, 15, 194, 234, 190, 69, 11, 76, 15, 77, 126, 147,\n\t\t227, 96, 70, 12, 2, 53, 5, 99, 0, 143, 31, 39, 254, 54, 3,\n\t\t9, 50, 208, 64, 102, 27, 25, 200, 129, 70, 26, 126, 57, 12,\n\t\t106, 195, 211, 85, 57, 20, 76, 231, 171, 209, 192, 162, 223,\n\t\t186, 0, 60, 7, 206, 224, 41, 4, 127, 234, 180, 143, 89, 215,\n\t\t213, 179, 89, 60, 220, 118, 93, 59, 50, 179, 36, 63, 162,\n\t\t233, 244, 36, 34, 116, 100, 253, 241, 10, 214, 5, 28, 162,\n\t\t13, 52, 180, 18, 105, 155, 26, 49, 11, 138, 41, 77, 139, 31,\n\t\t49, 215, 178, 250, 177, 91, 52, 8, 30, 12, 95, 172, 18, 100,\n\t\t26, 5, 137, 32, 69, 196, 0, 208, 74, 120, 125, 10, 46, 218,\n\t\t216, 136, 123, 9, 126, 1, 78, 77, 107, 64, 79, 244, 192, 213,\n\t\t32, 178, 76, 11, 152, 99, 66, 19, 164, 66, 71, 82, 215, 216,\n\t\t68, 69, 248, 98, 41, 152, 17, 42, 82, 24, 189, 42, 39, 6,\n\t\t246, 81, 136, 133, 26, 148, 64, 242, 205, 87, 156, 195, 236,\n\t\t220, 38, 97, 231, 97, 68, 227, 117, 166, 170, 121, 0, 208,\n\t\t113, 193, 89, 137, 86, 40, 28, 221, 203, 30, 182, 112, 214,\n\t\t21, 192, 173, 236, 153, 69, 79, 197, 6, 255, 250, 148, 125,\n\t\t160, 181, 213, 192, 229, 59, 59, 104, 23, 222, 125, 66, 140,\n\t\t25, 182, 127, 81, 166, 59, 69, 198, 104, 241, 129, 187, 134,\n\t\t118, 39, 14, 55, 167, 2, 0, 102, 96, 213, 115, 204, 34, 68,\n\t\t33, 147, 120, 2, 120, 68, 178, 172, 99, 4, 163, 235, 176,\n\t\t26, 25, 87, 64, 162, 48, 164, 79, 22, 0, 136, 36, 225, 62,\n\t\t104, 242, 232, 0, 95, 174, 61, 110, 234, 105, 150, 215, 16,\n\t\t118, 44, 121, 189, 166, 49, 170, 253, 56, 92, 252, 247, 207,\n\t\t207, 31, 190, 60, 127, 54, 95, 206, 31, 118, 186, 189, 184,\n\t\t115, 246, 141, 45, 41, 103, 72, 44, 112, 152, 66, 108, 214,\n\t\t3, 158, 133, 187, 141, 165, 234, 155, 136, 125, 190, 48, 69,\n\t\t242, 77, 92, 15, 67, 7, 106, 196, 149, 88, 118, 6, 196, 216,\n\t\t56, 95, 35, 22, 62, 19, 109, 107, 12, 108, 1, 209, 63, 164,\n\t\t204, 249, 181, 160, 27, 51, 161, 47, 38, 186, 98, 19, 132,\n\t\t139, 68, 99, 10, 60, 21, 142, 7, 228, 32, 238, 8, 211, 9,\n\t\t143, 153, 3, 180, 4, 56, 155, 192, 250, 89, 58, 131, 224,\n\t\t203, 235, 35, 139, 144, 129, 206, 75, 125, 114, 84, 53, 30,\n\t\t212, 170, 228, 185, 73, 234, 89, 2, 218, 52, 121, 231, 109,\n\t\t235, 126, 1, 176, 80, 138, 124, 157, 185, 77, 5, 0, 17, 178,\n\t\t142, 66, 68, 223, 225, 68, 202, 203, 62, 243, 251, 19, 35,\n\t\t230, 44, 94, 112, 87, 104, 144, 154, 243, 179, 62, 169, 53,\n\t\t233, 131, 90, 145, 60, 55, 73, 61, 239, 158, 102, 3, 221,\n\t\t222, 110, 178, 119, 142, 169, 171, 106, 47, 139, 166, 146,\n\t\t120, 240, 232, 177, 71, 66, 159, 10, 246, 105, 37, 177, 144,\n\t\t230, 9, 170, 128, 32, 153, 175, 32, 14, 47, 62, 88, 23, 185,\n\t\t71, 157, 177, 70, 4, 159, 164, 176, 116, 20, 138, 109, 25,\n\t\t128, 68, 220, 195, 148, 249, 176, 19, 149, 195, 18, 157, 103,\n\t\t152, 36, 223, 45, 231, 181, 99, 124, 135, 4, 76, 139, 8, 242,\n\t\t160, 11, 141, 115, 240, 105, 65, 116, 162, 185, 245, 217,\n\t\t114, 12, 22, 141, 110, 102, 45, 82, 112, 186, 221, 24, 49,\n\t\t235, 254, 169, 19, 45, 49, 79, 18, 51, 191, 186, 229, 142,\n\t\t62, 195, 45, 211, 20, 1, 85, 25, 241, 84, 65, 209, 75, 146,\n\t\t68, 45, 248, 142, 110, 44, 12, 214, 229, 218, 20, 249, 112,\n\t\t2, 2, 114, 37, 218, 71, 237, 37, 226, 27, 228, 4, 38, 9, 150,\n\t\t232, 220, 192, 126, 245, 139, 175, 217, 166, 52, 149, 134,\n\t\t152, 192, 215, 167, 20, 210, 148, 110, 188, 25, 135, 28, 200,\n\t\t76, 254, 85, 189, 168, 113, 135, 89, 125, 7, 229, 223, 217,\n\t\t36, 231, 68, 150, 20, 73, 114, 235, 95, 120, 77, 109, 235,\n\t\t169, 184, 145, 77, 167, 144, 206, 201, 29, 243, 219, 231,\n\t\t231, 229, 227, 252, 242, 231, 151, 189, 22, 51, 30, 164, 111,\n\t\t138, 48, 106, 177, 70, 221, 179, 199, 46, 29, 219, 206, 183,\n\t\t41, 219, 26, 83, 100, 240, 71, 142, 173, 211, 132, 10, 77,\n\t\t211, 215, 209, 185, 184, 144, 72, 48, 149, 180, 32, 1, 30,\n\t\t12, 35, 174, 1, 147, 34, 8, 96, 140, 228, 121, 152, 50, 177,\n\t\t135, 17, 193, 149, 13, 147, 148, 25, 24, 69, 174, 207, 145,\n\t\t213, 240, 115, 166, 37, 27, 42, 167, 26, 19, 42, 36, 122,\n\t\t71, 175, 208, 152, 146, 201, 113, 73, 154, 204, 56, 115, 0,\n\t\t224, 57, 184, 118, 5, 112, 93, 125, 96, 39, 56, 61, 176, 49,\n\t\t37, 95, 254, 14, 195, 73, 45, 87, 83, 210, 236, 3, 148, 49,\n\t\t36, 140, 37, 14, 133, 11, 157, 191, 139, 51, 249, 177, 2,\n\t\t60, 212, 32, 246, 197, 28, 108, 162, 77, 21, 146, 77, 253,\n\t\t76, 31, 181, 207, 3, 197, 165, 4, 217, 98, 37, 176, 5, 195,\n\t\t19, 215, 193, 106, 105, 48, 152, 244, 212, 235, 233, 169,\n\t\t68, 17, 64, 28, 32, 220, 230, 162, 236, 4, 118, 69, 4, 22,\n\t\t115, 82, 238, 138, 181, 124, 8, 177, 73, 2, 119, 197, 24,\n\t\t121, 131, 51, 38, 122, 137, 16, 163, 28, 89, 7, 12, 200, 24,\n\t\t60, 86, 154, 77, 169, 135, 81, 114, 54, 145, 21, 122, 251,\n\t\t201, 105, 12, 24, 86, 64, 110, 163, 139, 215, 200, 56, 7,\n\t\t60, 75, 2, 88, 167, 83, 192, 100, 109, 253, 122, 230, 106,\n\t\t79, 179, 74, 217, 156, 35, 13, 192, 63, 116, 106, 36, 104,\n\t\t218, 152, 90, 123, 86, 71, 43, 6, 180, 71, 143, 55, 202, 103,\n\t\t196, 68, 5, 161, 237, 43, 131, 114, 184, 253, 62, 126, 250,\n\t\t237, 227, 167, 143, 95, 254, 207, 110, 243, 237, 220, 39,\n\t\t55, 241, 233, 213, 91, 143, 212, 72, 61, 106, 26, 73, 95,\n\t\t154, 237, 147, 89, 35, 12, 113, 233, 139, 187, 152, 58, 130,\n\t\t60, 11, 198, 76, 127, 153, 161, 187, 103, 221, 132, 241, 190,\n\t\t90, 102, 24, 249, 214, 76, 175, 168, 172, 187, 192, 140, 73,\n\t\t224, 159, 130, 242, 55, 58, 179, 53, 5, 23, 223, 109, 198,\n\t\t237, 107, 179, 228, 117, 218, 44, 185, 164, 102, 105, 171,\n\t\t56, 14, 82, 74, 79, 243, 218, 36, 110, 145, 209, 38, 221,\n\t\t189, 67, 91, 164, 13, 106, 89, 91, 59, 221, 180, 253, 245,\n\t\t73, 42, 15, 109, 142, 77, 235, 174, 35, 41, 40, 83, 164, 206,\n\t\t212, 44, 56, 137, 74, 209, 236, 15, 89, 192, 136, 75, 154,\n\t\t140, 220, 163, 240, 180, 14, 236, 36, 223, 54, 226, 128, 71,\n\t\t73, 73, 151, 168, 225, 40, 37, 77, 155, 242, 87, 153, 62,\n\t\t31, 26, 164, 46, 169, 76, 239, 208, 170, 244, 186, 164, 139,\n\t\t209, 154, 168, 21, 107, 249, 108, 214, 254, 24, 237, 208,\n\t\t72, 17, 106, 16, 149, 155, 102, 237, 146, 209, 62, 105, 151,\n\t\t168, 89, 124, 207, 225, 250, 252, 215, 199, 127, 127, 52,\n\t\t191, 124, 220, 3, 185, 196, 157, 15, 230, 86, 33, 67, 98,\n\t\t9, 176, 17, 93, 152, 29, 139, 109, 140, 188, 198, 128, 26,\n\t\t180, 27, 115, 97, 179, 18, 162, 180, 110, 11, 102, 132, 69,\n\t\t49, 184, 156, 73, 202, 100, 251, 56, 140, 101, 138, 253, 145,\n\t\t145, 191, 69, 239, 116, 172, 196, 72, 64, 48, 102, 204, 6,\n\t\t6, 219, 18, 62, 222, 209, 221, 176, 219, 96, 193, 179, 182,\n\t\t33, 202, 62, 38, 2, 138, 90, 37, 146, 112, 49, 85, 35, 23,\n\t\t105, 76, 211, 137, 225, 167, 48, 182, 14, 248, 119, 196, 6,\n\t\t145, 128, 81, 192, 172, 86, 6, 116, 3, 179, 136, 198, 105,\n\t\t209, 108, 20, 169, 200, 177, 82, 29, 170, 167, 206, 71, 125,\n\t\t14, 214, 51, 36, 7, 40, 22, 139, 204, 128, 217, 18, 173, 194,\n\t\t136, 5, 78, 34, 29, 39, 39, 120, 30, 158, 209, 181, 174, 170,\n\t\t39, 122, 199, 161, 242, 200, 4, 158, 186, 226, 48, 102, 68,\n\t\t10, 49, 30, 89, 234, 193, 179, 250, 140, 149, 20, 0, 56, 131,\n\t\t237, 177, 140, 139, 121, 128, 77, 193, 204, 42, 166, 52, 141,\n\t\t69, 3, 140, 118, 238, 149, 26, 155, 192, 165, 252, 13, 141,\n\t\t21, 205, 198, 12, 112, 122, 226, 65, 34, 195, 137, 246, 204,\n\t\t211, 221, 85, 144, 160, 2, 128, 239, 17, 109, 241, 200, 11,\n\t\t239, 26, 175, 72, 159, 178, 173, 196, 161, 116, 27, 39, 223,\n\t\t130, 37, 161, 62, 81, 125, 147, 111, 5, 246, 163, 106, 125,\n\t\t117, 125, 200, 201, 116, 48, 134, 224, 39, 135, 14, 21, 214,\n\t\t107, 4, 63, 104, 192, 156, 226, 42, 49, 225, 181, 61, 1, 19,\n\t\t138, 133, 64, 156, 173, 169, 218, 154, 198, 245, 89, 140,\n\t\t163, 115, 17, 99, 43, 167, 253, 166, 163, 60, 13, 76, 205,\n\t\t102, 189, 232, 251, 192, 81, 150, 104, 137, 231, 252, 71,\n\t\t34, 87, 158, 114, 194, 219, 82, 177, 53, 95, 251, 88, 169,\n\t\t94, 48, 7, 189, 23, 72, 32, 226, 21, 16, 85, 29, 156, 156,\n\t\t239, 177, 179, 148, 0, 249, 184, 246, 99, 65, 103, 121, 190,\n\t\t92, 222, 22, 102, 119, 238, 202, 183, 194, 108, 42, 83, 119,\n\t\t188, 170, 232, 80, 135, 129, 93, 37, 48, 218, 141, 224, 39,\n\t\t84, 4, 83, 51, 153, 81, 217, 13, 226, 69, 17, 219, 39, 243,\n\t\t250, 85, 225, 192, 168, 58, 44, 161, 33, 249, 81, 125, 80,\n\t\t118, 169, 8, 167, 178, 32, 203, 182, 180, 110, 82, 176, 45,\n\t\t98, 124, 136, 33, 152, 88, 137, 169, 130, 181, 202, 213, 163,\n\t\t32, 244, 107, 100, 175, 17, 232, 99, 83, 107, 161, 49, 168,\n\t\t106, 14, 19, 73, 211, 112, 250, 176, 33, 197, 48, 173, 207,\n\t\t156, 22, 72, 210, 101, 18, 57, 90, 101, 95, 149, 133, 85,\n\t\t242, 29, 162, 176, 138, 208, 70, 101, 104, 21, 161, 77, 232,\n\t\t243, 144, 189, 181, 154, 85, 244, 30, 210, 184, 202, 208,\n\t\t42, 140, 139, 212, 12, 94, 208, 219, 118, 28, 78, 57, 166,\n\t\t246, 43, 2, 236, 129, 207, 109, 78, 2, 209, 20, 163, 229,\n\t\t84, 42, 16, 36, 19, 90, 239, 87, 9, 80, 229, 178, 81, 160,\n\t\t114, 164, 138, 145, 42, 163, 171, 16, 25, 216, 116, 63, 109,\n\t\t239, 111, 174, 178, 228, 74, 51, 208, 233, 57, 149, 151, 99,\n\t\t211, 152, 77, 17, 78, 84, 224, 85, 35, 251, 144, 152, 205,\n\t\t189, 200, 12, 93, 10, 3, 48, 138, 204, 8, 203, 177, 0, 208,\n\t\t178, 185, 134, 120, 207, 211, 98, 72, 114, 204, 140, 47, 239,\n\t\t90, 111, 42, 73, 26, 17, 37, 169, 53, 172, 94, 42, 34, 234,\n\t\t132, 42, 38, 139, 144, 88, 198, 13, 80, 2, 155, 228, 87, 17,\n\t\t214, 108, 101, 88, 137, 241, 31, 131, 85, 196, 51, 32, 100,\n\t\t213, 152, 138, 36, 140, 176, 200, 140, 152, 246, 255, 106,\n\t\t241, 245, 143, 231, 63, 94, 62, 239, 185, 231, 157, 35, 239,\n\t\t198, 183, 45, 185, 41, 250, 106, 93, 153, 21, 66, 31, 242,\n\t\t11, 99, 108, 178, 39, 22, 179, 6, 184, 72, 188, 3, 46, 94,\n\t\t51, 105, 196, 198, 39, 241, 230, 199, 171, 233, 13, 118, 159,\n\t\t179, 41, 201, 93, 229, 98, 214, 218, 181, 114, 222, 202, 204,\n\t\t117, 32, 175, 27, 42, 54, 90, 179, 86, 108, 214, 31, 137,\n\t\t54, 160, 170, 3, 31, 165, 92, 31, 186, 74, 113, 37, 18, 195,\n\t\t233, 123, 96, 147, 28, 108, 148, 1, 249, 157, 17, 8, 249,\n\t\t230, 15, 137, 241, 96, 246, 63, 184, 201, 93, 123, 57, 83,\n\t\t127, 129, 88, 85, 210, 53, 240, 2, 219, 72, 199, 119, 178,\n\t\t239, 228, 169, 187, 101, 119, 226, 95, 141, 60, 122, 166,\n\t\t234, 255, 238, 122, 78, 127, 87, 69, 63, 84, 207, 3, 62, 251,\n\t\t143, 143, 243, 231, 151, 63, 207, 47, 159, 158, 205, 135,\n\t\t229, 203, 219, 185, 49, 227, 81, 170, 47, 162, 143, 129, 173,\n\t\t41, 29, 146, 121, 175, 192, 234, 200, 194, 162, 54, 5, 239,\n\t\t80, 74, 30, 96, 93, 97, 138, 201, 104, 147, 190, 203, 153,\n\t\t22, 50, 206, 46, 98, 3, 69, 227, 63, 170, 27, 231, 64, 179,\n\t\t65, 204, 38, 204, 178, 6, 219, 136, 11, 151, 180, 153, 133,\n\t\t179, 102, 134, 62, 143, 71, 181, 33, 70, 91, 50, 170, 146,\n\t\t71, 39, 109, 136, 182, 67, 154, 129, 180, 152, 192, 183, 212,\n\t\t170, 244, 73, 173, 137, 155, 160, 45, 240, 112, 225, 32, 122,\n\t\t212, 174, 137, 241, 221, 103, 55, 41, 142, 204, 59, 208, 247,\n\t\t206, 166, 49, 206, 38, 13, 64, 19, 4, 66, 120, 218, 149, 45,\n\t\t200, 242, 90, 178, 203, 195, 144, 84, 1, 5, 122, 38, 55, 157,\n\t\t165, 214, 43, 84, 51, 77, 65, 178, 127, 238, 59, 128, 8, 147,\n\t\t188, 64, 171, 198, 112, 78, 81, 215, 50, 213, 45, 22, 55,\n\t\t229, 232, 131, 99, 166, 197, 72, 90, 1, 58, 204, 232, 238,\n\t\t133, 24, 32, 70, 64, 101, 207, 197, 25, 248, 182, 181, 14,\n\t\t204, 104, 34, 219, 80, 52, 7, 182, 39, 232, 117, 102, 9, 87,\n\t\t136, 252, 215, 61, 179, 31, 41, 205, 248, 136, 9, 109, 128,\n\t\t192, 67, 158, 96, 88, 40, 1, 200, 0, 59, 219, 0, 47, 233,\n\t\t95, 159, 146, 131, 212, 240, 160, 90, 30, 210, 71, 146, 136,\n\t\t123, 132, 13, 87, 142, 250, 150, 203, 137, 232, 56, 157, 166,\n\t\t179, 105, 77, 52, 80, 2, 126, 73, 34, 224, 212, 87, 129, 54,\n\t\t192, 178, 94, 90, 191, 22, 214, 93, 45, 89, 25, 139, 228,\n\t\t96, 63, 156, 61, 131, 208, 66, 107, 6, 229, 126, 22, 84, 88,\n\t\t211, 139, 164, 51, 131, 112, 43, 172, 25, 205, 21, 145, 127,\n\t\t128, 103, 22, 201, 2, 166, 224, 53, 152, 29, 248, 192, 11,\n\t\t172, 181, 22, 44, 217, 173, 231, 29, 248, 125, 39, 32, 249,\n\t\t113, 36, 178, 3, 236, 164, 41, 138, 162, 30, 25, 57, 185,\n\t\t177, 185, 243, 106, 36, 151, 194, 233, 156, 143, 115, 212,\n\t\t252, 241, 242, 233, 249, 255, 152, 95, 62, 46, 139, 249, 247,\n\t\t135, 125, 16, 124, 60, 12, 44, 240, 214, 151, 41, 246, 104,\n\t\t115, 154, 1, 25, 130, 52, 175, 176, 234, 129, 97, 110, 146,\n\t\t74, 66, 50, 14, 52, 118, 238, 3, 28, 95, 233, 245, 106, 136,\n\t\t19, 96, 247, 143, 97, 234, 34, 225, 139, 49, 254, 225, 64,\n\t\t71, 226, 108, 200, 227, 122, 30, 169, 5, 29, 245, 29, 137,\n\t\t39, 38, 222, 20, 178, 95, 49, 142, 12, 113, 28, 102, 226,\n\t\t190, 26, 113, 102, 154, 129, 169, 8, 100, 32, 113, 178, 52,\n\t\t121, 166, 7, 22, 251, 164, 224, 52, 27, 31, 162, 69, 42, 88,\n\t\t168, 67, 136, 68, 23, 65, 233, 55, 177, 144, 212, 63, 10,\n\t\t160, 3, 82, 255, 172, 90, 217, 249, 163, 176, 167, 32, 73,\n\t\t102, 197, 38, 207, 212, 177, 215, 217, 232, 248, 0, 169, 60,\n\t\t178, 16, 130, 241, 209, 225, 25, 5, 24, 158, 43, 198, 166,\n\t\t248, 217, 177, 228, 193, 22, 56, 78, 150, 129, 4, 30, 60,\n\t\t48, 114, 53, 43, 168, 183, 155, 116, 84, 140, 99, 107, 15,\n\t\t48, 218, 185, 253, 50, 44, 167, 89, 135, 197, 200, 184, 20,\n\t\t175, 46, 169, 50, 46, 58, 44, 90, 48, 143, 81, 193, 160, 196,\n\t\t73, 199, 4, 67, 130, 171, 216, 161, 227, 147, 241, 208, 225,\n\t\t48, 58, 30, 50, 28, 124, 96, 17, 103, 51, 69, 159, 109, 109,\n\t\t87, 83, 88, 161, 51, 71, 154, 212, 92, 100, 12, 2, 182, 44,\n\t\t210, 245, 99, 151, 121, 90, 99, 35, 3, 166, 87, 47, 14, 73,\n\t\t91, 55, 69, 1, 80, 54, 250, 64, 99, 252, 121, 126, 147, 227,\n\t\t189, 48, 7, 245, 81, 97, 165, 5, 192, 173, 37, 11, 133, 172,\n\t\t183, 34, 238, 151, 236, 89, 50, 27, 47, 18, 7, 240, 183, 37,\n\t\t251, 12, 52, 64, 69, 169, 58, 63, 33, 151, 87, 133, 242, 230,\n\t\t16, 174, 94, 230, 196, 216, 87, 19, 32, 173, 4, 252, 153,\n\t\t190, 66, 44, 210, 99, 209, 40, 242, 85, 103, 156, 64, 98,\n\t\t76, 155, 91, 79, 70, 92, 176, 61, 46, 139, 12, 76, 79, 56,\n\t\t62, 49, 39, 254, 149, 65, 156, 74, 3, 89, 186, 230, 10, 87,\n\t\t146, 19, 224, 108, 80, 247, 138, 78, 159, 148, 215, 13, 195,\n\t\t16, 147, 160, 114, 130, 46, 76, 157, 148, 37, 181, 134, 24,\n\t\t25, 98, 17, 205, 165, 40, 234, 198, 19, 13, 142, 28, 81, 32,\n\t\t164, 28, 113, 191, 215, 212, 112, 170, 114, 18, 46, 154, 141,\n\t\t162, 236, 71, 20, 156, 98, 58, 253, 176, 223, 179, 244, 195,\n\t\t7, 182, 79, 56, 219, 69, 229, 69, 75, 27, 190, 180, 226, 166,\n\t\t106, 114, 101, 186, 169, 143, 208, 110, 166, 115, 241, 91,\n\t\t232, 27, 241, 119, 59, 26, 119, 24, 139, 243, 63, 52, 238,\n\t\t127, 104, 220, 247, 209, 184, 127, 158, 2, 60, 222, 8, 243,\n\t\t249, 121, 254, 215, 110, 3, 28, 160, 151, 147, 164, 25, 131,\n\t\t99, 81, 83, 2, 108, 143, 205, 158, 36, 18, 31, 198, 253, 188,\n\t\t62, 165, 212, 166, 224, 218, 189, 53, 246, 150, 177, 3, 255,\n\t\t215, 239, 120, 200, 27, 254, 238, 214, 24, 188, 151, 10, 207,\n\t\t166, 239, 244, 216, 247, 92, 38, 55, 166, 129, 193, 63, 205,\n\t\t71, 217, 220, 124, 152, 215, 100, 112, 109, 252, 222, 166,\n\t\t198, 44, 168, 254, 104, 214, 95, 232, 89, 129, 55, 62, 200,\n\t\t35, 135, 68, 109, 190, 165, 71, 249, 228, 162, 75, 223, 217,\n\t\t2, 122, 242, 176, 5, 39, 106, 66, 123, 156, 209, 174, 150,\n\t\t239, 108, 1, 44, 251, 199, 99, 16, 56, 196, 251, 145, 36,\n\t\t194, 90, 158, 99, 84, 236, 226, 222, 115, 40, 96, 47, 188,\n\t\t121, 32, 28, 192, 147, 23, 215, 208, 204, 7, 74, 159, 246,\n\t\t14, 255, 128, 135, 27, 229, 202, 213, 28, 41, 159, 94, 159,\n\t\t60, 76, 40, 72, 40, 18, 212, 1, 153, 147, 0, 69, 184, 58,\n\t\t209, 147, 36, 55, 166, 113, 149, 216, 57, 123, 70, 98, 40,\n\t\t246, 19, 28, 153, 248, 170, 208, 148, 40, 94, 216, 137, 147,\n\t\t207, 156, 22, 147, 50, 180, 184, 36, 49, 203, 104, 171, 255,\n\t\t78, 147, 244, 0, 101, 200, 196, 82, 224, 3, 39, 14, 114, 83,\n\t\t21, 251, 188, 184, 236, 123, 142, 167, 129, 51, 242, 230,\n\t\t250, 28, 26, 156, 43, 231, 100, 51, 124, 63, 105, 138, 137,\n\t\t29, 160, 17, 150, 44, 81, 158, 53, 39, 192, 100, 245, 189,\n\t\t198, 57, 74, 56, 170, 9, 162, 150, 173, 195, 195, 87, 220,\n\t\t163, 225, 82, 74, 67, 204, 14, 163, 97, 1, 112, 56, 212, 252,\n\t\t254, 52, 71, 229, 240, 196, 91, 37, 138, 7, 226, 240, 119,\n\t\t114, 240, 142, 136, 96, 81, 124, 114, 101, 54, 93, 98, 133,\n\t\t138, 82, 158, 32, 94, 180, 158, 209, 84, 49, 124, 112, 41,\n\t\t244, 30, 71, 200, 21, 25, 194, 15, 247, 199, 227, 4, 150,\n\t\t226, 101, 174, 147, 108, 198, 44, 27, 157, 88, 232, 7, 52,\n\t\t251, 26, 151, 200, 92, 115, 244, 186, 204, 54, 77, 54, 244,\n\t\t206, 58, 219, 58, 217, 70, 102, 123, 73, 156, 111, 49, 207,\n\t\t217, 250, 220, 33, 204, 202, 100, 235, 212, 26, 157, 236,\n\t\t81, 176, 78, 182, 209, 217, 30, 145, 88, 58, 223, 198, 15,\n\t\t87, 4, 153, 113, 163, 83, 110, 214, 57, 55, 141, 109, 136,\n\t\t195, 29, 66, 166, 92, 102, 28, 25, 145, 120, 206, 117, 202,\n\t\t141, 206, 185, 78, 57, 188, 150, 163, 99, 240, 80, 158, 116,\n\t\t195, 179, 14, 211, 144, 167, 42, 216, 36, 19, 71, 112, 164,\n\t\t196, 136, 233, 188, 115, 180, 40, 7, 206, 240, 188, 235, 180,\n\t\t27, 48, 51, 14, 174, 178, 142, 93, 18, 101, 222, 117, 218,\n\t\t141, 206, 187, 209, 137, 255, 58, 73, 61, 162, 168, 146, 218,\n\t\t72, 0, 205, 175, 124, 66, 125, 247, 57, 243, 144, 186, 127,\n\t\t253, 132, 123, 125, 202, 85, 219, 112, 212, 132, 230, 126,\n\t\t168, 5, 205, 125, 181, 1, 39, 180, 32, 196, 240, 160, 5, 161,\n\t\t254, 216, 32, 208, 243, 95, 107, 195, 209, 145, 242, 233,\n\t\t229, 203, 87, 236, 107, 187, 240, 209, 219, 216, 239, 144,\n\t\t220, 217, 116, 78, 145, 10, 183, 7, 182, 144, 246, 114, 246,\n\t\t53, 32, 125, 234, 15, 71, 98, 135, 84, 109, 106, 139, 105,\n\t\t130, 199, 12, 83, 54, 124, 35, 116, 241, 107, 124, 194, 154,\n\t\t253, 141, 3, 25, 133, 153, 13, 156, 83, 21, 25, 165, 144,\n\t\t93, 158, 13, 227, 29, 169, 67, 245, 217, 172, 49, 29, 138,\n\t\t6, 237, 89, 115, 60, 158, 132, 156, 16, 93, 61, 45, 217, 179,\n\t\t231, 119, 41, 32, 64, 103, 160, 233, 195, 157, 224, 7, 194,\n\t\t215, 125, 116, 214, 197, 133, 70, 144, 118, 54, 85, 27, 92,\n\t\t178, 249, 225, 33, 123, 88, 107, 168, 221, 186, 190, 96, 232,\n\t\t64, 225, 51, 71, 222, 112, 95, 71, 92, 135, 116, 85, 71, 141,\n\t\t122, 154, 224, 168, 138, 158, 159, 22, 26, 51, 199, 136, 242,\n\t\t52, 104, 154, 5, 112, 204, 64, 67, 88, 116, 88, 39, 32, 216,\n\t\t94, 225, 25, 204, 99, 182, 24, 29, 51, 163, 131, 6, 247, 249,\n\t\t7, 161, 187, 239, 89, 31, 135, 203, 250, 207, 15, 203, 243,\n\t\t151, 47, 123, 181, 224, 8, 117, 164, 33, 142, 83, 74, 113,\n\t\t246, 37, 218, 70, 36, 16, 231, 116, 116, 213, 6, 200, 158,\n\t\t28, 40, 231, 170, 133, 99, 122, 183, 245, 38, 221, 121, 148,\n\t\t76, 228, 112, 0, 96, 107, 160, 158, 26, 37, 169, 223, 22,\n\t\t151, 156, 77, 237, 64, 105, 158, 77, 134, 112, 76, 71, 47,\n\t\t206, 34, 205, 225, 78, 219, 200, 177, 237, 143, 11, 162, 166,\n\t\t177, 247, 195, 115, 78, 221, 98, 128, 54, 221, 189, 84, 232,\n\t\t67, 181, 162, 201, 150, 214, 100, 219, 96, 135, 230, 131,\n\t\t53, 55, 234, 155, 67, 30, 5, 96, 209, 114, 246, 51, 73, 232,\n\t\t209, 229, 49, 95, 251, 228, 169, 112, 242, 212, 20, 32, 209,\n\t\t250, 208, 110, 1, 255, 111, 128, 251, 87, 184, 127, 153, 144,\n\t\t13, 240, 200, 54, 11, 192, 229, 22, 253, 127, 186, 199, 55,\n\t\t251, 25, 213, 135, 76, 18, 184, 59, 253, 172, 250, 99, 75,\n\t\t63, 177, 249, 199, 171, 250, 243, 191, 62, 126, 218, 69, 250,\n\t\t167, 93, 152, 227, 134, 84, 59, 7, 190, 255, 109, 128, 116,\n\t\t164, 77, 155, 5, 94, 122, 218, 161, 165, 35, 33, 211, 215,\n\t\t192, 202, 37, 214, 117, 15, 146, 125, 142, 25, 169, 39, 56,\n\t\t173, 85, 22, 223, 67, 73, 64, 49, 18, 151, 112, 22, 138, 113,\n\t\t201, 9, 39, 84, 242, 221, 68, 15, 223, 5, 25, 15, 64, 236,\n\t\t219, 16, 226, 141, 232, 29, 195, 233, 38, 132, 121, 27, 100,\n\t\t124, 69, 90, 33, 110, 156, 76, 161, 56, 217, 201, 236, 176,\n\t\t77, 157, 39, 103, 92, 223, 28, 74, 9, 46, 223, 15, 160, 192,\n\t\t255, 124, 254, 60, 63, 127, 250, 242, 225, 247, 29, 5, 74,\n\t\t7, 65, 54, 222, 193, 193, 47, 212, 100, 107, 158, 77, 72,\n\t\t18, 133, 7, 131, 73, 86, 95, 18, 218, 254, 78, 144, 190, 215,\n\t\t155, 214, 155, 229, 75, 17, 135, 119, 55, 201, 221, 23, 45,\n\t\t209, 59, 70, 45, 151, 241, 240, 250, 144, 190, 227, 21, 222,\n\t\t82, 129, 179, 9, 134, 50, 3, 44, 35, 79, 218, 164, 219, 155,\n\t\t183, 109, 190, 175, 114, 45, 25, 239, 5, 36, 248, 55, 183,\n\t\t150, 90, 20, 109, 244, 8, 79, 41, 125, 246, 160, 136, 248,\n\t\t203, 95, 21, 236, 192, 113, 120, 120, 94, 12, 143, 232, 100,\n\t\t116, 100, 125, 96, 173, 157, 89, 31, 208, 42, 248, 145, 201,\n\t\t33, 149, 133, 102, 206, 162, 207, 121, 188, 66, 148, 161,\n\t\t116, 197, 79, 186, 137, 223, 35, 175, 145, 183, 232, 75, 54,\n\t\t55, 226, 171, 188, 224, 245, 116, 184, 128, 62, 191, 252,\n\t\t175, 103, 36, 165, 249, 240, 251, 231, 15, 187, 4, 159, 233,\n\t\t0, 86, 158, 200, 147, 16, 239, 131, 243, 149, 238, 120, 200,\n\t\t128, 33, 45, 221, 33, 19, 194, 213, 124, 157, 183, 9, 141,\n\t\t51, 13, 37, 142, 97, 56, 135, 144, 144, 240, 205, 224, 75,\n\t\t226, 184, 191, 165, 36, 137, 39, 67, 62, 178, 126, 30, 169,\n\t\t142, 57, 59, 181, 184, 193, 166, 36, 58, 71, 175, 202, 197,\n\t\t156, 197, 46, 18, 131, 117, 200, 204, 160, 65, 157, 161, 89,\n\t\t146, 210, 58, 39, 159, 254, 225, 78, 28, 14, 230, 43, 43,\n\t\t87, 210, 63, 55, 228, 167, 71, 99, 126, 180, 180, 62, 63,\n\t\t207, 207, 31, 255, 220, 41, 143, 210, 46, 112, 103, 227, 48,\n\t\t153, 155, 77, 83, 74, 201, 182, 217, 59, 158, 144, 42, 49,\n\t\t222, 26, 176, 51, 178, 104, 104, 129, 145, 248, 153, 171,\n\t\t73, 156, 104, 71, 1, 11, 96, 71, 192, 29, 65, 147, 54, 221,\n\t\t63, 195, 241, 191, 68, 123, 83, 146, 130, 172, 196, 88, 74,\n\t\t102, 19, 52, 148, 215, 171, 2, 167, 216, 146, 125, 172, 36,\n\t\t58, 133, 144, 233, 167, 46, 217, 62, 180, 228, 66, 199, 9,\n\t\t54, 176, 183, 41, 229, 232, 215, 91, 228, 142, 211, 250, 170,\n\t\t127, 252, 221, 111, 188, 90, 199, 97, 125, 181, 78, 128, 209,\n\t\t25, 88, 71, 111, 205, 100, 114, 23, 70, 117, 229, 41, 24,\n\t\t144, 17, 48, 221, 115, 52, 219, 237, 141, 167, 229, 254, 133,\n\t\t203, 93, 147, 102, 237, 186, 246, 92, 59, 174, 253, 190, 235,\n\t\t211, 69, 59, 109, 180, 215, 247, 227, 178, 220, 15, 239, 127,\n\t\t224, 149, 175, 39, 152, 61, 218, 170, 15, 22, 87, 86, 121,\n\t\t112, 136, 233, 137, 53, 5, 98, 208, 17, 49, 157, 235, 190,\n\t\t19, 211, 57, 154, 116, 253, 145, 197, 244, 4, 85, 129, 60,\n\t\t222, 166, 181, 254, 38, 200, 185, 45, 253, 252, 38, 156, 142,\n\t\t219, 16, 154, 251, 249, 109, 248, 106, 19, 14, 105, 215, 203,\n\t\t47, 47, 123, 202, 117, 16, 245, 228, 36, 153, 154, 242, 234,\n\t\t247, 217, 199, 206, 32, 204, 61, 156, 77, 100, 41, 94, 56,\n\t\t122, 179, 97, 233, 87, 186, 43, 185, 154, 114, 152, 53, 227,\n\t\t12, 140, 99, 3, 238, 136, 190, 55, 119, 133, 50, 103, 155,\n\t\t7, 112, 132, 250, 188, 5, 232, 26, 132, 215, 45, 107, 28,\n\t\t143, 0, 186, 114, 53, 250, 170, 205, 75, 240, 255, 217, 251,\n\t\t112, 229, 140, 227, 95, 235, 221, 101, 43, 115, 232, 49, 196,\n\t\t144, 138, 42, 38, 93, 35, 167, 77, 166, 195, 71, 113, 75,\n\t\t125, 14, 179, 2, 222, 32, 71, 242, 6, 244, 38, 185, 203, 30,\n\t\t3, 231, 98, 52, 145, 50, 239, 41, 148, 95, 182, 215, 92, 196,\n\t\t46, 163, 251, 151, 166, 212, 222, 42, 37, 150, 253, 176, 41,\n\t\t167, 31, 106, 11, 157, 218, 36, 76, 28, 165, 181, 219, 158,\n\t\t218, 18, 71, 180, 79, 115, 71, 115, 121, 149, 148, 123, 135,\n\t\t171, 247, 175, 101, 31, 48, 155, 118, 33, 81, 91, 255, 204,\n\t\t108, 43, 109, 71, 219, 230, 145, 116, 41, 175, 187, 41, 222,\n\t\t229, 61, 226, 116, 156, 56, 55, 82, 71, 174, 206, 208, 188,\n\t\t237, 51, 157, 184, 124, 99, 219, 60, 42, 201, 150, 192, 244,\n\t\t210, 95, 239, 109, 94, 0, 150, 132, 3, 33, 102, 91, 156, 31,\n\t\t210, 152, 207, 124, 111, 76, 60, 27, 94, 80, 8, 245, 141,\n\t\t165, 79, 145, 85, 33, 75, 102, 117, 7, 187, 146, 197, 222,\n\t\t231, 1, 201, 164, 50, 155, 40, 164, 53, 85, 150, 87, 69, 72,\n\t\t224, 35, 237, 180, 248, 113, 43, 14, 0, 77, 31, 207, 245,\n\t\t232, 99, 117, 10, 10, 52, 195, 167, 217, 98, 178, 106, 52,\n\t\t156, 183, 117, 17, 56, 163, 41, 178, 26, 101, 9, 85, 50, 79,\n\t\t18, 227, 121, 208, 42, 206, 17, 181, 105, 21, 210, 111, 190,\n\t\t175, 81, 154, 171, 115, 215, 52, 141, 165, 75, 21, 110, 18,\n\t\t247, 141, 59, 45, 218, 118, 12, 91, 185, 25, 54, 118, 158,\n\t\t27, 73, 191, 54, 227, 198, 253, 145, 151, 81, 11, 161, 245,\n\t\t253, 74, 11, 249, 113, 26, 54, 110, 227, 205, 176, 97, 146,\n\t\t31, 14, 91, 224, 243, 248, 219, 230, 243, 110, 228, 78, 95,\n\t\t29, 58, 97, 41, 15, 134, 14, 249, 157, 238, 27, 120, 59, 114,\n\t\t63, 107, 220, 214, 230, 189, 49, 122, 235, 162, 91, 55, 194,\n\t\t105, 214, 125, 215, 104, 123, 230, 62, 233, 174, 163, 141,\n\t\t132, 61, 71, 59, 247, 56, 194, 9, 68, 195, 204, 47, 127, 252,\n\t\t242, 241, 211, 30, 64, 57, 21, 85, 104, 106, 106, 80, 147,\n\t\t188, 98, 26, 102, 32, 84, 240, 39, 82, 180, 23, 14, 152, 12,\n\t\t98, 178, 50, 94, 96, 135, 52, 8, 126, 20, 104, 78, 237, 116,\n\t\t40, 24, 245, 135, 230, 228, 112, 54, 249, 177, 133, 240, 200,\n\t\t174, 145, 11, 203, 139, 185, 156, 254, 166, 122, 126, 176,\n\t\t26, 142, 110, 120, 216, 117, 65, 161, 56, 148, 245, 144, 149,\n\t\t221, 4, 113, 138, 230, 132, 132, 176, 15, 58, 152, 3, 51,\n\t\t120, 124, 222, 151, 60, 47, 139, 76, 41, 127, 156, 19, 155,\n\t\t237, 174, 212, 169, 239, 51, 213, 229, 114, 166, 3, 247, 63,\n\t\t245, 252, 137, 42, 120, 207, 161, 105, 112, 64, 190, 124,\n\t\t250, 178, 183, 83, 165, 93, 28, 216, 38, 164, 56, 37, 100,\n\t\t135, 124, 32, 151, 247, 135, 182, 134, 179, 201, 254, 145,\n\t\t149, 103, 48, 154, 111, 111, 150, 212, 174, 6, 153, 217, 191,\n\t\t99, 156, 174, 173, 97, 156, 31, 61, 127, 250, 209, 10, 254,\n\t\t155, 159, 127, 160, 114, 229, 117, 114, 125, 254, 252, 229,\n\t\t227, 252, 198, 42, 217, 197, 118, 133, 92, 6, 229, 36, 110,\n\t\t239, 220, 26, 192, 51, 30, 174, 4, 223, 31, 173, 132, 7, 100,\n\t\t147, 42, 56, 94, 145, 68, 168, 90, 251, 33, 66, 197, 189,\n\t\t161, 106, 126, 140, 110, 174, 245, 252, 23, 84, 115, 184,\n\t\t0, 46, 243, 249, 229, 101, 63, 241, 7, 225, 79, 0, 72, 57,\n\t\t154, 41, 73, 206, 193, 254, 1, 135, 193, 28, 192, 76, 137,\n\t\t197, 77, 247, 118, 248, 27, 67, 255, 125, 247, 110, 59, 79,\n\t\t227, 132, 20, 181, 55, 3, 180, 29, 130, 43, 214, 231, 253,\n\t\t224, 224, 191, 251, 205, 115, 247, 222, 228, 206, 200, 199,\n\t\t152, 122, 5, 16, 110, 68, 128, 235, 200, 172, 154, 5, 81,\n\t\t146, 132, 27, 32, 12, 8, 172, 27, 95, 134, 2, 152, 201, 171,\n\t\t137, 53, 218, 24, 57, 188, 205, 167, 244, 195, 78, 140, 87,\n\t\t227, 83, 226, 234, 80, 117, 218, 38, 103, 238, 54, 101, 239,\n\t\t235, 84, 108, 108, 185, 166, 41, 208, 105, 167, 109, 66, 147,\n\t\t156, 95, 192, 245, 184, 98, 75, 5, 237, 203, 108, 129, 46,\n\t\t9, 58, 112, 139, 195, 84, 77, 213, 190, 10, 116, 30, 93, 93,\n\t\t188, 130, 147, 208, 93, 57, 84, 249, 89, 13, 219, 162, 140,\n\t\t233, 144, 244, 61, 231, 98, 104, 238, 54, 211, 243, 197, 108,\n\t\t46, 141, 20, 137, 58, 128, 61, 215, 185, 252, 178, 189, 230,\n\t\t34, 17, 62, 239, 19, 177, 236, 8, 129, 40, 18, 142, 67, 141,\n\t\t154, 59, 137, 171, 235, 131, 253, 241, 249, 249, 223, 191,\n\t\t126, 254, 120, 125, 67, 6, 253, 48, 160, 231, 145, 212, 190,\n\t\t45, 172, 164, 144, 84, 233, 136, 226, 100, 120, 156, 197,\n\t\t180, 40, 145, 69, 242, 133, 150, 43, 96, 214, 5, 33, 177,\n\t\t43, 130, 106, 148, 168, 48, 159, 6, 72, 36, 220, 247, 140,\n\t\t232, 49, 178, 4, 240, 25, 191, 70, 127, 177, 135, 152, 220,\n\t\t57, 201, 147, 139, 190, 82, 62, 175, 210, 22, 77, 196, 213,\n\t\t109, 242, 115, 232, 140, 111, 72, 159, 192, 5, 229, 204, 255,\n\t\t227, 218, 187, 108, 147, 159, 220, 105, 214, 18, 115, 255,\n\t\t136, 209, 103, 28, 123, 154, 32, 30, 218, 87, 235, 218, 36,\n\t\t159, 179, 25, 160, 155, 62, 9, 248, 17, 16, 241, 92, 218,\n\t\t148, 228, 0, 244, 165, 5, 95, 32, 64, 240, 39, 63, 157, 56,\n\t\t155, 7, 223, 170, 5, 84, 9, 195, 25, 226, 225, 227, 121, 60,\n\t\t191, 60, 155, 63, 63, 127, 252, 244, 101, 135, 119, 155, 14,\n\t\t34, 2, 124, 15, 223, 145, 144, 230, 44, 42, 144, 51, 236,\n\t\t28, 142, 147, 143, 28, 164, 24, 26, 55, 31, 191, 231, 245,\n\t\t41, 198, 10, 40, 130, 226, 230, 238, 16, 110, 9, 16, 165,\n\t\t132, 204, 5, 116, 164, 202, 87, 230, 163, 147, 32, 210, 153,\n\t\t168, 222, 22, 93, 49, 133, 124, 106, 54, 195, 219, 206, 217,\n\t\t6, 116, 103, 207, 217, 2, 16, 131, 0, 47, 161, 146, 36, 224,\n\t\t189, 41, 74, 110, 175, 150, 61, 7, 139, 37, 138, 25, 128,\n\t\t140, 28, 152, 211, 22, 108, 221, 44, 122, 142, 170, 142, 130,\n\t\t205, 49, 48, 56, 92, 253, 97, 21, 168, 236, 243, 4, 176, 128,\n\t\t94, 97, 70, 42, 206, 6, 63, 185, 169, 118, 134, 244, 245,\n\t\t153, 215, 180, 119, 201, 214, 72, 195, 23, 26, 163, 86, 249,\n\t\t198, 192, 100, 165, 139, 151, 96, 224, 155, 66, 103, 87, 243,\n\t\t238, 109, 10, 83, 74, 206, 54, 127, 154, 189, 235, 22, 182,\n\t\t251, 40, 176, 103, 210, 235, 154, 25, 58, 247, 102, 20, 252,\n\t\t204, 99, 110, 154, 208, 46, 222, 198, 235, 136, 50, 132, 186,\n\t\t224, 17, 21, 49, 153, 69, 177, 165, 173, 173, 128, 57, 183,\n\t\t246, 145, 61, 193, 36, 241, 242, 2, 169, 210, 30, 81, 191,\n\t\t151, 187, 177, 152, 3, 34, 44, 135, 251, 172, 184, 254, 123,\n\t\t73, 21, 113, 51, 148, 167, 57, 6, 206, 58, 29, 4, 63, 166,\n\t\t72, 158, 239, 17, 121, 184, 153, 46, 18, 167, 143, 183, 199,\n\t\t191, 254, 90, 246, 92, 192, 60, 252, 126, 114, 97, 83, 93,\n\t\t242, 22, 120, 213, 185, 48, 68, 90, 228, 175, 226, 93, 80,\n\t\t5, 70, 206, 196, 34, 170, 12, 79, 173, 156, 76, 79, 144, 218,\n\t\t107, 180, 117, 54, 170, 118, 80, 157, 207, 170, 103, 243,\n\t\t35, 169, 57, 164, 252, 208, 113, 199, 210, 85, 161, 94, 184,\n\t\t39, 179, 215, 100, 237, 93, 52, 4, 166, 108, 31, 86, 39, 35,\n\t\t41, 57, 155, 202, 106, 200, 107, 62, 84, 207, 123, 17, 150,\n\t\t191, 174, 158, 207, 28, 124, 255, 168, 154, 119, 212, 82,\n\t\t21, 25, 188, 15, 221, 185, 23, 239, 165, 161, 108, 212, 126,\n\t\t72, 55, 198, 48, 172, 163, 192, 63, 171, 151, 173, 194, 147,\n\t\t35, 9, 2, 13, 160, 140, 223, 105, 86, 232, 61, 68, 192, 65,\n\t\t227, 137, 9, 241, 46, 218, 66, 11, 132, 175, 48, 59, 110,\n\t\t2, 14, 30, 64, 136, 11, 224, 239, 128, 45, 30, 210, 43, 235,\n\t\t74, 66, 187, 133, 98, 191, 1, 107, 191, 220, 1, 179, 79, 146,\n\t\t247, 235, 94, 149, 127, 185, 85, 217, 51, 86, 23, 112, 17,\n\t\t254, 150, 234, 79, 111, 213, 127, 184, 250, 255, 120, 249,\n\t\t215, 199, 79, 191, 155, 95, 246, 136, 56, 105, 228, 151, 233,\n\t\t200, 220, 195, 204, 228, 87, 144, 248, 131, 183, 121, 233,\n\t\t18, 216, 78, 135, 95, 62, 2, 245, 127, 253, 202, 182, 226,\n\t\t145, 199, 182, 202, 229, 34, 215, 70, 11, 164, 148, 190, 109,\n\t\t126, 161, 178, 245, 65, 249, 199, 47, 112, 51, 213, 206, 206,\n\t\t68, 85, 117, 110, 194, 199, 33, 122, 121, 18, 175, 188, 197,\n\t\t132, 2, 45, 235, 36, 159, 12, 102, 44, 206, 60, 35, 174, 93,\n\t\t119, 87, 81, 125, 245, 40, 65, 109, 179, 240, 1, 125, 106,\n\t\t3, 80, 171, 3, 241, 2, 95, 94, 159, 162, 243, 22, 215, 139,\n\t\t200, 134, 154, 215, 11, 97, 244, 172, 23, 127, 125, 74, 62,\n\t\t88, 98, 17, 65, 71, 102, 109, 134, 182, 66, 95, 169, 109,\n\t\t208, 107, 109, 1, 55, 192, 104, 11, 244, 229, 244, 133, 246,\n\t\t248, 24, 15, 83, 135, 14, 84, 57, 91, 30, 18, 237, 212, 226,\n\t\t67, 178, 145, 209, 25, 35, 156, 78, 219, 97, 166, 135, 178,\n\t\t245, 178, 122, 59, 211, 131, 152, 78, 137, 85, 182, 112, 185,\n\t\t35, 74, 46, 24, 126, 89, 215, 109, 16, 0, 182, 18, 45, 35,\n\t\t36, 11, 176, 217, 236, 208, 97, 223, 1, 214, 38, 4, 136, 232,\n\t\t160, 16, 163, 54, 190, 159, 225, 141, 46, 169, 27, 6, 145,\n\t\t169, 19, 220, 117, 196, 44, 195, 195, 227, 25, 170, 157, 57,\n\t\t172, 58, 72, 40, 248, 192, 172, 174, 149, 50, 100, 82, 48,\n\t\t195, 119, 68, 60, 76, 114, 227, 73, 208, 54, 155, 34, 99,\n\t\t169, 109, 54, 80, 249, 2, 17, 66, 218, 28, 39, 109, 113, 211,\n\t\t111, 103, 105, 238, 60, 26, 11, 47, 228, 60, 213, 113, 92,\n\t\t160, 177, 167, 89, 1, 70, 181, 181, 218, 88, 163, 173, 29,\n\t\t107, 85, 10, 142, 247, 254, 151, 151, 207, 123, 127, 179,\n\t\t157, 27, 119, 241, 101, 196, 4, 145, 148, 219, 109, 154, 163,\n\t\t34, 1, 230, 200, 71, 111, 212, 150, 5, 154, 177, 78, 171,\n\t\t170, 88, 142, 118, 64, 100, 9, 220, 96, 39, 131, 64, 5, 12,\n\t\t132, 223, 64, 237, 105, 17, 224, 192, 225, 31, 150, 117, 85,\n\t\t71, 160, 14, 162, 238, 200, 120, 143, 179, 241, 140, 16, 33,\n\t\t168, 70, 106, 210, 146, 159, 215, 251, 205, 120, 96, 91, 43,\n\t\t38, 123, 95, 235, 233, 61, 213, 178, 92, 253, 45, 213, 190,\n\t\t167, 214, 187, 198, 38, 57, 4, 29, 135, 104, 0, 184, 80, 161,\n\t\t13, 117, 196, 214, 1, 43, 18, 23, 222, 224, 229, 43, 88, 120,\n\t\t77, 129, 32, 179, 218, 226, 104, 50, 22, 245, 51, 198, 225,\n\t\t119, 154, 165, 213, 93, 232, 161, 18, 140, 60, 105, 210, 15,\n\t\t159, 207, 0, 24, 2, 50, 172, 58, 22, 203, 196, 132, 225, 112,\n\t\t156, 95, 159, 50, 70, 130, 88, 115, 89, 169, 68, 33, 116,\n\t\t151, 88, 113, 49, 81, 38, 133, 33, 140, 231, 172, 221, 212,\n\t\t13, 226, 253, 132, 60, 31, 76, 229, 248, 215, 171, 241, 189,\n\t\t216, 119, 216, 83, 233, 40, 129, 142, 77, 212, 32, 111, 88,\n\t\t227, 169, 34, 228, 65, 98, 92, 9, 15, 46, 64, 166, 84, 137,\n\t\t128, 194, 90, 202, 235, 231, 172, 132, 134, 233, 180, 203,\n\t\t19, 226, 100, 164, 35, 77, 191, 206, 222, 77, 28, 100, 134,\n\t\t225, 149, 158, 97, 80, 120, 122, 175, 166, 179, 193, 236,\n\t\t28, 91, 186, 202, 247, 121, 56, 153, 200, 180, 249, 206, 56,\n\t\t146, 76, 127, 54, 23, 143, 119, 241, 91, 209, 125, 233, 183,\n\t\t3, 159, 63, 228, 93, 189, 250, 226, 160, 179, 10, 185, 60,\n\t\t30, 227, 32, 17, 6, 74, 80, 247, 99, 28, 68, 189, 79, 213,\n\t\t226, 192, 43, 145, 206, 229, 232, 178, 165, 147, 94, 150,\n\t\t252, 88, 74, 94, 205, 108, 73, 67, 186, 67, 17, 178, 34, 37,\n\t\t103, 147, 107, 182, 125, 30, 238, 73, 110, 205, 164, 21, 176,\n\t\t228, 245, 9, 121, 96, 81, 191, 119, 56, 189, 233, 244, 169,\n\t\t218, 202, 11, 149, 244, 178, 13, 131, 160, 73, 202, 245, 57,\n\t\t185, 76, 226, 221, 44, 134, 58, 90, 246, 234, 112, 166, 9,\n\t\t122, 202, 102, 132, 72, 178, 64, 190, 0, 147, 218, 53, 84,\n\t\t86, 255, 13, 13, 204, 193, 57, 24, 14, 121, 163, 227, 201,\n\t\t254, 252, 188, 247, 238, 204, 110, 53, 234, 77, 146, 79, 233,\n\t\t64, 247, 88, 210, 143, 65, 75, 235, 73, 127, 164, 99, 74,\n\t\t136, 56, 238, 156, 115, 246, 111, 169, 238, 17, 96, 246, 195,\n\t\t94, 189, 62, 165, 72, 252, 243, 63, 209, 156, 119, 180, 230,\n\t\t193, 52, 191, 188, 252, 249, 239, 15, 191, 61, 239, 36, 211,\n\t\t236, 199, 92, 183, 102, 61, 241, 30, 213, 134, 178, 176, 151,\n\t\t48, 123, 35, 195, 159, 35, 11, 48, 167, 184, 52, 243, 239,\n\t\t248, 43, 140, 104, 70, 238, 195, 166, 247, 190, 117, 103,\n\t\t111, 203, 205, 115, 129, 113, 243, 136, 37, 244, 97, 251,\n\t\t211, 242, 230, 235, 198, 53, 49, 125, 91, 142, 63, 182, 27,\n\t\t150, 63, 220, 243, 252, 225, 142, 233, 63, 109, 184, 254,\n\t\t112, 199, 246, 135, 91, 190, 63, 165, 96, 75, 155, 124, 14,\n\t\t54, 205, 68, 105, 128, 167, 106, 17, 27, 57, 5, 137, 62, 138,\n\t\t26, 216, 40, 215, 217, 150, 220, 61, 140, 48, 242, 11, 17,\n\t\t167, 132, 208, 98, 27, 75, 230, 176, 219, 113, 47, 77, 230,\n\t\t194, 185, 197, 136, 12, 133, 230, 226, 66, 159, 213, 101,\n\t\t186, 142, 12, 226, 192, 224, 186, 247, 159, 77, 48, 20, 28,\n\t\t98, 102, 145, 125, 71, 190, 160, 192, 245, 2, 174, 213, 251,\n\t\t238, 211, 120, 200, 52, 73, 232, 55, 10, 228, 94, 248, 157,\n\t\t163, 29, 252, 177, 157, 189, 226, 234, 18, 35, 171, 149, 52,\n\t\t233, 165, 47, 26, 8, 205, 95, 70, 51, 205, 166, 125, 156,\n\t\t58, 80, 11, 214, 55, 221, 181, 243, 155, 186, 88, 56, 204,\n\t\t75, 94, 187, 220, 93, 159, 190, 169, 174, 187, 102, 152, 251,\n\t\t103, 14, 71, 235, 126, 4, 118, 109, 251, 214, 250, 164, 53,\n\t\t102, 219, 28, 76, 158, 217, 142, 45, 151, 172, 189, 209, 231,\n\t\t78, 99, 40, 214, 6, 233, 164, 233, 151, 117, 55, 73, 216,\n\t\t192, 88, 120, 253, 71, 199, 237, 123, 87, 153, 172, 242, 73,\n\t\t86, 253, 219, 99, 134, 6, 220, 212, 133, 36, 14, 167, 101,\n\t\t212, 171, 133, 243, 27, 99, 181, 107, 149, 27, 237, 89, 246,\n\t\t75, 30, 136, 39, 66, 123, 100, 177, 79, 58, 124, 58, 229,\n\t\t247, 107, 254, 141, 49, 147, 23, 233, 123, 70, 67, 119, 237,\n\t\t124, 71, 63, 239, 214, 90, 117, 245, 180, 22, 73, 201, 183,\n\t\t86, 120, 56, 110, 119, 95, 222, 24, 183, 183, 23, 255, 182,\n\t\t137, 223, 92, 227, 93, 139, 78, 243, 110, 38, 181, 67, 163,\n\t\t96, 237, 208, 221, 104, 44, 95, 89, 249, 155, 99, 109, 187,\n\t\t246, 255, 206, 177, 251, 214, 53, 183, 189, 58, 61, 26, 180,\n\t\t237, 158, 215, 65, 99, 52, 37, 15, 243, 221, 55, 81, 225,\n\t\t205, 8, 44, 183, 7, 183, 174, 251, 117, 244, 222, 34, 109,\n\t\t239, 223, 242, 55, 35, 54, 14, 166, 119, 246, 147, 72, 206,\n\t\t131, 229, 118, 67, 108, 223, 89, 227, 93, 147, 222, 28, 185,\n\t\t177, 218, 238, 70, 238, 173, 67, 104, 219, 152, 211, 183,\n\t\t213, 246, 99, 167, 225, 134, 32, 45, 247, 4, 235, 237, 69,\n\t\t111, 238, 86, 253, 251, 71, 108, 123, 62, 161, 147, 183, 171,\n\t\t253, 157, 139, 77, 105, 190, 81, 162, 255, 190, 209, 146,\n\t\t157, 126, 71, 72, 55, 163, 116, 179, 32, 223, 160, 193, 247,\n\t\t11, 158, 72, 189, 14, 205, 205, 146, 39, 6, 103, 79, 115,\n\t\t191, 117, 159, 127, 231, 18, 219, 19, 180, 183, 150, 216,\n\t\t183, 85, 182, 25, 179, 247, 175, 48, 7, 20, 155, 123, 202,\n\t\t250, 13, 103, 224, 109, 93, 127, 235, 25, 120, 195, 222, 232,\n\t\t148, 109, 197, 136, 155, 149, 254, 13, 99, 245, 250, 20, 106,\n\t\t179, 37, 66, 205, 189, 220, 176, 75, 67, 134, 185, 147, 141,\n\t\t228, 250, 80, 14, 251, 242, 242, 178, 252, 242, 242, 191,\n\t\t119, 50, 88, 80, 25, 44, 187, 64, 111, 13, 49, 218, 88, 231,\n\t\t50, 153, 50, 141, 44, 244, 62, 49, 248, 234, 154, 168, 62,\n\t\t192, 182, 123, 133, 170, 63, 139, 87, 76, 121, 224, 20, 195,\n\t\t202, 130, 7, 78, 49, 229, 39, 84, 70, 141, 76, 46, 48, 160,\n\t\t46, 231, 57, 80, 12, 25, 207, 254, 61, 163, 103, 146, 35,\n\t\t127, 185, 145, 28, 231, 34, 152, 17, 208, 175, 220, 140, 132,\n\t\t220, 175, 215, 48, 131, 228, 43, 34, 206, 66, 145, 204, 142,\n\t\t158, 195, 102, 71, 140, 184, 47, 110, 214, 31, 71, 88, 186,\n\t\t222, 130, 200, 244, 134, 100, 72, 141, 107, 155, 181, 205,\n\t\t110, 180, 118, 64, 224, 232, 235, 77, 223, 250, 238, 132,\n\t\t38, 185, 185, 2, 187, 158, 249, 128, 32, 175, 150, 38, 68,\n\t\t55, 157, 81, 254, 78, 47, 221, 7, 254, 126, 93, 106, 187,\n\t\t197, 5, 126, 3, 21, 46, 134, 35, 84, 56, 255, 183, 84, 115,\n\t\t188, 1, 46, 231, 143, 159, 119, 154, 197, 124, 144, 179, 173,\n\t\t68, 111, 195, 20, 179, 183, 121, 174, 106, 230, 86, 251, 172,\n\t\t247, 170, 53, 22, 251, 193, 240, 180, 135, 253, 208, 228,\n\t\t225, 164, 225, 19, 172, 7, 48, 235, 232, 205, 68, 86, 216,\n\t\t13, 142, 81, 5, 42, 251, 98, 44, 38, 139, 18, 48, 84, 69,\n\t\t185, 144, 124, 68, 106, 93, 103, 249, 93, 181, 173, 145, 39,\n\t\t14, 48, 166, 33, 179, 233, 247, 70, 247, 201, 26, 128, 111,\n\t\t210, 125, 158, 174, 84, 19, 77, 132, 247, 234, 0, 32, 150,\n\t\t59, 223, 53, 57, 18, 60, 148, 16, 144, 64, 77, 30, 25, 147,\n\t\t42, 204, 225, 155, 193, 82, 231, 128, 202, 198, 19, 81, 144,\n\t\t115, 175, 89, 87, 200, 67, 229, 36, 101, 46, 104, 50, 63,\n\t\t84, 87, 141, 181, 88, 203, 80, 139, 220, 140, 81, 246, 61,\n\t\t217, 58, 245, 98, 243, 28, 212, 107, 65, 18, 151, 79, 37,\n\t\t169, 2, 118, 84, 15, 160, 7, 185, 60, 93, 122, 25, 157, 226,\n\t\t79, 252, 46, 63, 31, 46, 165, 127, 127, 88, 222, 194, 162,\n\t\t200, 187, 96, 188, 24, 220, 192, 92, 105, 211, 1, 160, 196,\n\t\t229, 6, 69, 226, 114, 7, 85, 113, 217, 161, 83, 188, 62, 69,\n\t\t23, 108, 158, 130, 11, 182, 207, 195, 87, 98, 4, 38, 7, 140,\n\t\t3, 38, 127, 76, 110, 138, 155, 153, 241, 154, 213, 42, 20,\n\t\t141, 7, 209, 208, 17, 134, 89, 145, 181, 179, 0, 112, 182,\n\t\t115, 54, 115, 122, 98, 54, 158, 230, 64, 23, 160, 140, 97,\n\t\t208, 168, 146, 40, 254, 12, 145, 36, 196, 108, 57, 129, 203,\n\t\t66, 243, 207, 149, 23, 182, 141, 18, 125, 205, 172, 27, 167,\n\t\t21, 163, 191, 170, 203, 127, 144, 117, 235, 171, 76, 141,\n\t\t194, 202, 200, 18, 91, 70, 99, 91, 159, 181, 127, 234, 122,\n\t\t161, 137, 217, 77, 132, 197, 46, 140, 84, 108, 172, 168, 198,\n\t\t226, 23, 27, 150, 254, 66, 55, 142, 167, 26, 143, 140, 60,\n\t\t183, 112, 10, 208, 222, 166, 202, 5, 8, 91, 200, 26, 37, 197,\n\t\t237, 212, 24, 196, 46, 131, 234, 19, 15, 135, 54, 215, 100,\n\t\t49, 168, 20, 70, 127, 103, 119, 184, 137, 38, 129, 199, 94,\n\t\t22, 111, 228, 103, 113, 171, 24, 188, 22, 245, 171, 41, 35,\n\t\t34, 168, 168, 129, 210, 73, 135, 116, 248, 52, 120, 200, 120,\n\t\t6, 249, 149, 11, 44, 123, 193, 157, 95, 204, 80, 251, 51,\n\t\t41, 58, 125, 199, 162, 152, 135, 87, 203, 26, 135, 29, 214,\n\t\t100, 250, 106, 147, 72, 108, 187, 91, 138, 26, 64, 217, 144,\n\t\t236, 5, 40, 61, 120, 226, 132, 241, 72, 164, 141, 45, 139,\n\t\t1, 217, 139, 97, 66, 214, 201, 207, 124, 147, 82, 212, 32,\n\t\t6, 140, 30, 215, 107, 36, 146, 42, 76, 99, 156, 224, 20, 53,\n\t\t208, 156, 168, 233, 240, 92, 176, 1, 78, 99, 212, 166, 211,\n\t\t178, 162, 6, 129, 124, 190, 62, 105, 70, 184, 194, 93, 94,\n\t\t212, 94, 2, 242, 175, 22, 253, 65, 17, 117, 204, 138, 44,\n\t\t5, 9, 207, 130, 21, 153, 167, 137, 189, 159, 98, 148, 57,\n\t\t210, 85, 216, 52, 96, 108, 124, 209, 140, 0, 99, 220, 244,\n\t\t4, 233, 90, 101, 215, 69, 179, 194, 125, 32, 103, 24, 14,\n\t\t144, 1, 221, 193, 254, 207, 151, 21, 157, 131, 173, 50, 137,\n\t\t135, 107, 201, 110, 202, 78, 12, 196, 226, 250, 167, 174,\n\t\t3, 147, 135, 207, 42, 67, 225, 39, 174, 40, 60, 10, 206, 250,\n\t\t247, 135, 101, 121, 222, 159, 167, 121, 184, 211, 22, 156,\n\t\t158, 193, 205, 161, 73, 150, 164, 73, 156, 68, 184, 135, 209,\n\t\t197, 181, 128, 184, 30, 49, 221, 17, 77, 1, 155, 29, 2, 39,\n\t\t101, 7, 205, 219, 220, 121, 54, 177, 87, 251, 192, 205, 242,\n\t\t202, 192, 183, 95, 247, 215, 44, 237, 144, 9, 123, 108, 57,\n\t\t137, 45, 157, 30, 241, 160, 151, 183, 88, 152, 230, 173, 100,\n\t\t25, 245, 254, 46, 28, 226, 198, 13, 255, 114, 231, 19, 189,\n\t\t133, 82, 218, 242, 106, 151, 91, 158, 108, 122, 4, 165, 244,\n\t\t225, 211, 239, 251, 12, 64, 121, 151, 52, 44, 117, 117, 150,\n\t\t8, 240, 140, 118, 179, 143, 12, 181, 204, 14, 54, 252, 37,\n\t\t208, 241, 68, 87, 70, 47, 165, 140, 190, 141, 114, 42, 209,\n\t\t71, 228, 223, 235, 147, 143, 101, 10, 238, 198, 36, 190, 133,\n\t\t29, 82, 231, 20, 98, 245, 191, 142, 55, 69, 140, 246, 32,\n\t\t123, 19, 78, 21, 6, 8, 67, 54, 48, 7, 120, 114, 113, 217,\n\t\t112, 147, 151, 117, 191, 166, 113, 208, 123, 71, 9, 109, 142,\n\t\t46, 110, 127, 138, 25, 33, 180, 154, 143, 83, 246, 161, 153,\n\t\t245, 12, 104, 234, 197, 40, 148, 210, 87, 113, 91, 81, 203,\n\t\t171, 23, 255, 71, 211, 104, 232, 104, 193, 100, 118, 223,\n\t\t209, 195, 77, 159, 52, 106, 117, 215, 71, 215, 131, 198, 232,\n\t\t91, 198, 173, 242, 22, 125, 137, 209, 183, 48, 178, 70, 0,\n\t\t201, 209, 204, 171, 102, 216, 254, 189, 19, 42, 46, 132, 218,\n\t\t201, 1, 73, 237, 32, 9, 129, 142, 29, 33, 88, 35, 125, 147,\n\t\t122, 83, 68, 57, 6, 211, 20, 18, 56, 15, 226, 213, 2, 231,\n\t\t183, 74, 66, 170, 162, 28, 224, 36, 192, 128, 152, 74, 1,\n\t\t60, 147, 3, 79, 160, 41, 154, 97, 83, 35, 99, 233, 110, 46,\n\t\t25, 183, 175, 124, 114, 25, 220, 7, 183, 57, 202, 233, 23,\n\t\t146, 114, 157, 212, 16, 13, 211, 141, 210, 234, 166, 75, 36,\n\t\t42, 111, 23, 172, 7, 126, 18, 189, 107, 10, 201, 217, 122,\n\t\t154, 117, 42, 124, 28, 115, 171, 163, 138, 115, 80, 6, 21,\n\t\t243, 48, 173, 231, 169, 231, 71, 110, 39, 109, 68, 196, 54,\n\t\t64, 180, 207, 235, 249, 203, 147, 61, 238, 247, 119, 235,\n\t\t67, 167, 110, 14, 118, 96, 149, 170, 173, 127, 125, 163, 158,\n\t\t132, 42, 83, 240, 34, 196, 184, 229, 86, 120, 105, 227, 233,\n\t\t245, 252, 19, 78, 108, 93, 216, 171, 235, 135, 9, 234, 114,\n\t\t235, 111, 157, 2, 198, 181, 238, 157, 155, 173, 57, 132, 9,\n\t\t38, 50, 199, 187, 178, 43, 219, 41, 123, 78, 241, 198, 120,\n\t\t213, 233, 162, 59, 164, 83, 159, 231, 243, 191, 63, 236, 41,\n\t\t213, 81, 212, 99, 113, 211, 35, 35, 253, 187, 210, 73, 103,\n\t\t164, 97, 127, 148, 197, 102, 33, 118, 67, 98, 118, 72, 170,\n\t\t223, 128, 195, 223, 102, 72, 2, 228, 91, 223, 36, 78, 50,\n\t\t92, 126, 5, 202, 246, 59, 155, 179, 59, 109, 238, 218, 115,\n\t\t156, 103, 219, 103, 188, 249, 26, 115, 56, 103, 31, 0, 127,\n\t\t119, 246, 229, 21, 99, 70, 130, 254, 143, 143, 90, 78, 111,\n\t\t165, 155, 126, 127, 19, 115, 122, 176, 32, 190, 44, 31, 118,\n\t\t129, 31, 121, 23, 222, 184, 34, 0, 70, 36, 0, 132, 227, 6,\n\t\t173, 112, 70, 43, 34, 82, 132, 128, 138, 32, 1, 4, 36, 128,\n\t\t2, 238, 31, 9, 130, 176, 104, 171, 3, 164, 231, 204, 103,\n\t\t115, 208, 52, 253, 128, 10, 162, 103, 83, 148, 252, 247, 9,\n\t\t190, 254, 124, 247, 57, 118, 128, 181, 190, 142, 247, 214,\n\t\t112, 54, 82, 56, 27, 175, 41, 54, 171, 68, 17, 21, 129, 177,\n\t\t206, 94, 19, 33, 108, 107, 35, 154, 38, 121, 77, 144, 5, 53,\n\t\t53, 201, 164, 25, 59, 35, 51, 223, 55, 150, 1, 76, 98, 38,\n\t\t113, 249, 68, 45, 103, 5, 99, 149, 208, 176, 129, 115, 157,\n\t\t128, 78, 138, 29, 8, 3, 85, 109, 184, 245, 108, 18, 71, 141,\n\t\t204, 129, 221, 2, 128, 190, 130, 196, 31, 153, 243, 148, 86,\n\t\t207, 45, 161, 39, 67, 175, 147, 60, 248, 250, 228, 91, 176,\n\t\t61, 76, 49, 5, 155, 144, 14, 180, 72, 190, 91, 25, 53, 163,\n\t\t195, 102, 116, 220, 164, 171, 218, 244, 117, 148, 116, 150,\n\t\t116, 146, 116, 142, 116, 138, 180, 211, 163, 207, 242, 110,\n\t\t95, 186, 205, 240, 117, 198, 168, 233, 160, 153, 36, 188,\n\t\t167, 14, 154, 185, 171, 64, 231, 108, 214, 217, 49, 58, 61,\n\t\t58, 59, 70, 167, 231, 182, 201, 175, 79, 128, 232, 141, 188,\n\t\t184, 116, 200, 224, 22, 201, 73, 100, 101, 208, 140, 142,\n\t\t26, 206, 89, 40, 248, 101, 220, 48, 80, 152, 163, 170, 185,\n\t\t93, 28, 39, 235, 212, 41, 226, 71, 220, 24, 233, 179, 204,\n\t\t144, 36, 64, 232, 34, 192, 185, 91, 188, 45, 167, 78, 90,\n\t\t163, 208, 119, 208, 224, 121, 253, 53, 168, 3, 168, 20, 228,\n\t\t58, 146, 17, 87, 118, 131, 157, 139, 50, 54, 250, 101, 173,\n\t\t46, 168, 187, 229, 90, 63, 85, 163, 234, 59, 108, 119, 245,\n\t\t239, 29, 0, 93, 247, 95, 206, 38, 6, 248, 213, 42, 30, 21,\n\t\t242, 97, 76, 73, 210, 5, 49, 209, 20, 46, 126, 128, 98, 201,\n\t\t143, 250, 255, 233, 204, 117, 248, 2, 39, 28, 125, 82, 218,\n\t\t117, 255, 198, 171, 137, 145, 58, 238, 101, 167, 52, 154,\n\t\t2, 199, 241, 55, 78, 253, 125, 171, 154, 76, 2, 187, 0, 95,\n\t\t110, 74, 70, 41, 125, 209, 95, 228, 135, 139, 217, 22, 232,\n\t\t237, 140, 153, 234, 160, 143, 69, 12, 154, 151, 148, 207,\n\t\t155, 49, 82, 54, 126, 115, 45, 218, 186, 240, 32, 81, 236,\n\t\t135, 127, 127, 216, 103, 26, 207, 187, 184, 223, 21, 206,\n\t\t174, 87, 216, 27, 166, 198, 193, 158, 51, 120, 48, 102, 197,\n\t\t26, 162, 155, 56, 74, 201, 4, 129, 69, 207, 94, 51, 159, 122,\n\t\t121, 64, 146, 169, 17, 227, 199, 114, 90, 20, 156, 121, 18,\n\t\t181, 28, 84, 227, 136, 190, 69, 12, 160, 100, 105, 11, 213,\n\t\t22, 96, 124, 71, 206, 248, 52, 64, 247, 125, 147, 149, 62,\n\t\t216, 205, 80, 164, 68, 210, 152, 47, 200, 63, 68, 59, 41,\n\t\t138, 123, 18, 213, 139, 57, 51, 129, 33, 153, 79, 156, 197,\n\t\t70, 16, 246, 83, 236, 9, 224, 246, 157, 35, 79, 189, 23, 151,\n\t\t10, 159, 153, 108, 5, 206, 15, 183, 164, 172, 128, 255, 180,\n\t\t67, 231, 170, 200, 32, 89, 19, 5, 101, 73, 98, 228, 101, 91,\n\t\t6, 169, 128, 26, 27, 131, 139, 115, 112, 72, 224, 150, 37,\n\t\t93, 169, 47, 242, 123, 148, 131, 45, 40, 70, 163, 231, 188,\n\t\t72, 180, 22, 130, 109, 171, 34, 116, 190, 25, 17, 208, 141,\n\t\t168, 161, 161, 146, 161, 103, 109, 183, 145, 134, 159, 214,\n\t\t17, 144, 1, 224, 49, 202, 208, 93, 33, 21, 148, 169, 182,\n\t\t115, 70, 102, 73, 245, 196, 15, 3, 188, 90, 171, 151, 198,\n\t\t142, 97, 214, 217, 146, 201, 34, 30, 24, 134, 253, 145, 58,\n\t\t55, 8, 152, 181, 204, 239, 152, 111, 45, 0, 196, 50, 241,\n\t\t130, 149, 19, 7, 85, 73, 67, 149, 101, 110, 116, 5, 53, 57,\n\t\t83, 245, 83, 178, 83, 149, 53, 207, 48, 6, 77, 198, 236, 52,\n\t\t119, 137, 92, 12, 18, 64, 90, 185, 29, 85, 122, 166, 179,\n\t\t34, 147, 242, 250, 20, 74, 156, 188, 99, 33, 34, 68, 199,\n\t\t204, 55, 15, 101, 140, 210, 41, 159, 57, 2, 17, 26, 200, 200,\n\t\t9, 28, 105, 181, 120, 6, 88, 167, 146, 104, 147, 15, 36, 191,\n\t\t170, 50, 175, 88, 223, 144, 16, 43, 208, 138, 74, 69, 11,\n\t\t72, 208, 138, 37, 5, 206, 87, 159, 109, 235, 30, 233, 61,\n\t\t107, 105, 57, 175, 119, 27, 185, 253, 4, 237, 217, 16, 244,\n\t\t56, 91, 116, 20, 77, 4, 29, 9, 9, 84, 55, 73, 130, 198, 209,\n\t\t46, 159, 184, 165, 158, 51, 36, 171, 94, 212, 113, 198, 65,\n\t\t236, 222, 224, 96, 156, 66, 207, 17, 245, 25, 53, 50, 57,\n\t\t0, 157, 149, 122, 146, 28, 131, 178, 97, 64, 36, 61, 36, 103,\n\t\t240, 118, 9, 5, 44, 157, 100, 217, 212, 33, 137, 205, 51,\n\t\t72, 150, 248, 148, 25, 70, 150, 179, 69, 67, 5, 90, 68, 121,\n\t\t229, 37, 7, 41, 31, 102, 222, 33, 36, 159, 78, 94, 90, 7,\n\t\t196, 145, 140, 119, 224, 7, 205, 162, 13, 58, 194, 225, 191,\n\t\t212, 85, 4, 186, 112, 190, 83, 169, 210, 193, 193, 179, 219,\n\t\t16, 36, 11, 217, 168, 150, 152, 21, 39, 224, 235, 14, 73,\n\t\t220, 70, 206, 111, 146, 144, 115, 231, 88, 151, 181, 221,\n\t\t146, 143, 98, 84, 237, 19, 71, 87, 210, 162, 107, 29, 46,\n\t\t143, 99, 96, 106, 23, 185, 210, 17, 27, 91, 188, 139, 64,\n\t\t228, 101, 189, 21, 39, 242, 32, 22, 9, 6, 96, 218, 77, 222,\n\t\t133, 211, 124, 63, 46, 33, 15, 157, 70, 228, 12, 107, 136,\n\t\t245, 246, 46, 81, 221, 76, 95, 54, 149, 51, 99, 88, 69, 58,\n\t\t203, 162, 109, 68, 214, 250, 155, 9, 13, 77, 24, 42, 7, 226,\n\t\t150, 194, 168, 221, 140, 234, 157, 146, 13, 135, 64, 214,\n\t\t42, 153, 222, 189, 248, 107, 83, 211, 153, 235, 224, 182,\n\t\t143, 119, 152, 241, 18, 70, 14, 166, 85, 19, 217, 75, 93,\n\t\t244, 114, 60, 56, 235, 140, 194, 135, 174, 195, 72, 37, 249,\n\t\t101, 104, 217, 84, 87, 199, 232, 27, 30, 126, 29, 29, 100,\n\t\t68, 203, 110, 53, 167, 34, 65, 65, 98, 49, 26, 211, 107, 116,\n\t\t126, 105, 105, 114, 38, 93, 172, 27, 182, 18, 72, 250, 245,\n\t\t32, 176, 7, 14, 129, 231, 141, 221, 143, 120, 130, 177, 30,\n\t\t147, 227, 140, 157, 28, 133, 42, 180, 96, 247, 2, 93, 65,\n\t\t24, 168, 38, 67, 36, 164, 183, 114, 51, 205, 109, 63, 56,\n\t\t24, 107, 125, 79, 20, 230, 93, 82, 222, 103, 97, 53, 111,\n\t\t6, 12, 219, 44, 72, 158, 183, 1, 58, 49, 130, 154, 77, 18,\n\t\t106, 201, 102, 10, 14, 180, 137, 116, 100, 244, 42, 121, 215,\n\t\t43, 17, 232, 89, 178, 137, 209, 58, 73, 65, 56, 203, 94, 56,\n\t\t105, 127, 79, 226, 140, 37, 5, 23, 45, 72, 146, 43, 72, 175,\n\t\t245, 119, 163, 85, 116, 73, 100, 111, 182, 119, 248, 158,\n\t\t79, 151, 81, 194, 162, 43, 113, 180, 55, 175, 241, 253, 88,\n\t\t77, 252, 203, 135, 249, 95, 151, 63, 63, 204, 187, 232, 172,\n\t\t124, 144, 166, 52, 215, 2, 246, 108, 85, 240, 74, 128, 168,\n\t\t234, 112, 205, 38, 212, 67, 111, 50, 91, 5, 240, 10, 53, 89,\n\t\t29, 19, 44, 113, 222, 112, 56, 5, 24, 181, 97, 64, 94, 211,\n\t\t158, 200, 139, 241, 36, 59, 197, 137, 63, 222, 1, 122, 189,\n\t\t189, 31, 39, 102, 76, 177, 141, 188, 118, 145, 54, 98, 138,\n\t\t92, 57, 158, 72, 213, 243, 213, 217, 89, 231, 73, 182, 138,\n\t\t103, 180, 143, 225, 73, 188, 141, 126, 242, 161, 219, 158,\n\t\t22, 5, 157, 152, 20, 124, 226, 238, 122, 46, 220, 7, 253,\n\t\t227, 139, 141, 13, 58, 206, 16, 108, 137, 174, 191, 1, 226,\n\t\t189, 222, 109, 244, 118, 190, 146, 71, 38, 183, 190, 118,\n\t\t5, 189, 184, 127, 241, 187, 170, 209, 119, 235, 151, 147,\n\t\t60, 118, 243, 119, 109, 179, 62, 186, 124, 253, 245, 230,\n\t\t246, 253, 143, 42, 186, 111, 192, 188, 185, 95, 111, 231,\n\t\t171, 181, 213, 95, 27, 114, 115, 51, 230, 199, 117, 220, 13,\n\t\t250, 233, 225, 60, 29, 111, 158, 231, 215, 143, 207, 159,\n\t\t205, 252, 215, 231, 125, 154, 223, 124, 0, 120, 17, 203, 123,\n\t\t50, 158, 189, 199, 3, 164, 63, 74, 197, 130, 74, 14, 96, 242,\n\t\t94, 217, 244, 93, 220, 213, 112, 56, 81, 87, 168, 26, 73,\n\t\t161, 237, 27, 159, 148, 89, 19, 68, 210, 121, 148, 16, 157,\n\t\t42, 250, 7, 162, 243, 188, 195, 179, 102, 173, 206, 29, 73,\n\t\t198, 32, 93, 51, 35, 229, 109, 46, 167, 51, 177, 77, 196,\n\t\t192, 208, 97, 86, 106, 175, 83, 73, 252, 153, 37, 163, 163,\n\t\t247, 0, 147, 240, 174, 219, 12, 180, 87, 100, 40, 33, 198,\n\t\t106, 54, 93, 181, 225, 236, 183, 27, 228, 88, 72, 14, 239,\n\t\t131, 155, 21, 195, 214, 130, 250, 125, 21, 67, 164, 104, 164,\n\t\t251, 84, 210, 28, 36, 57, 174, 131, 121, 147, 215, 42, 240,\n\t\t79, 70, 141, 231, 70, 199, 236, 26, 152, 255, 104, 206, 78,\n\t\t255, 200, 164, 17, 5, 78, 206, 205, 107, 111, 247, 20, 24,\n\t\t145, 252, 232, 238, 134, 226, 114, 242, 90, 25, 32, 238, 179,\n\t\t118, 89, 70, 49, 185, 117, 204, 179, 200, 96, 52, 218, 72,\n\t\t121, 208, 179, 100, 205, 110, 149, 147, 213, 202, 76, 25,\n\t\t159, 195, 102, 122, 73, 162, 98, 107, 132, 202, 167, 177,\n\t\t176, 144, 86, 43, 107, 105, 176, 46, 120, 89, 204, 209, 22,\n\t\t184, 70, 74, 166, 237, 177, 212, 232, 76, 232, 204, 99, 227,\n\t\t90, 86, 222, 181, 6, 158, 20, 18, 61, 134, 158, 76, 215, 67,\n\t\t114, 147, 246, 67, 82, 108, 189, 99, 210, 126, 124, 206, 78,\n\t\t143, 39, 237, 144, 146, 188, 188, 225, 175, 178, 203, 33,\n\t\t186, 209, 156, 194, 189, 68, 210, 21, 112, 10, 59, 201, 136,\n\t\t106, 18, 99, 109, 33, 163, 3, 24, 30, 128, 41, 115, 42, 96,\n\t\t90, 222, 96, 126, 66, 19, 118, 51, 100, 155, 167, 226, 68,\n\t\t211, 138, 171, 206, 107, 106, 118, 19, 205, 18, 64, 85, 154,\n\t\t244, 42, 6, 219, 39, 226, 145, 75, 177, 222, 95, 125, 142,\n\t\t182, 199, 197, 8, 180, 10, 172, 251, 193, 101, 87, 89, 53,\n\t\t207, 48, 244, 240, 149, 171, 37, 67, 140, 46, 92, 225, 70,\n\t\t237, 204, 172, 17, 125, 122, 87, 23, 103, 157, 4, 241, 70,\n\t\t143, 228, 119, 167, 121, 243, 124, 99, 97, 107, 213, 76, 103,\n\t\t113, 179, 102, 221, 185, 126, 46, 33, 192, 225, 19, 146, 73,\n\t\t175, 5, 81, 134, 89, 172, 47, 90, 151, 54, 197, 176, 230,\n\t\t146, 11, 130, 99, 18, 128, 140, 241, 102, 109, 12, 252, 102,\n\t\t130, 227, 60, 75, 163, 55, 13, 240, 56, 55, 218, 118, 29,\n\t\t8, 109, 17, 190, 84, 120, 11, 239, 198, 232, 106, 60, 200,\n\t\t222, 9, 1, 171, 80, 68, 52, 161, 186, 161, 106, 90, 177, 198,\n\t\t236, 107, 84, 58, 22, 58, 231, 165, 136, 157, 179, 95, 209,\n\t\t167, 119, 97, 129, 135, 33, 109, 18, 249, 188, 225, 3, 198,\n\t\t209, 86, 187, 30, 109, 161, 247, 27, 191, 114, 239, 242, 124,\n\t\t123, 12, 2, 1, 72, 79, 79, 36, 123, 92, 114, 160, 157, 154,\n\t\t39, 85, 112, 108, 79, 220, 245, 168, 231, 151, 24, 125, 203,\n\t\t160, 5, 176, 173, 5, 23, 239, 152, 141, 1, 225, 179, 114,\n\t\t41, 252, 182, 251, 46, 45, 38, 41, 241, 79, 172, 171, 165,\n\t\t125, 205, 226, 109, 104, 156, 248, 57, 84, 185, 163, 192,\n\t\t253, 74, 175, 122, 227, 228, 227, 142, 209, 165, 51, 28, 50,\n\t\t89, 209, 82, 170, 104, 132, 177, 246, 141, 46, 126, 152, 17,\n\t\t121, 135, 104, 74, 194, 24, 52, 235, 119, 16, 178, 154, 203,\n\t\t184, 120, 125, 242, 116, 99, 153, 124, 107, 54, 35, 73, 120,\n\t\t146, 196, 159, 68, 11, 64, 68, 83, 18, 52, 175, 152, 85, 171,\n\t\t161, 164, 183, 112, 110, 196, 115, 200, 149, 115, 192, 36,\n\t\t22, 240, 88, 29, 18, 145, 103, 49, 169, 11, 148, 62, 37, 15,\n\t\t193, 7, 140, 33, 157, 34, 116, 47, 87, 223, 188, 173, 133,\n\t\t33, 210, 156, 245, 36, 189, 134, 171, 161, 210, 146, 30, 112,\n\t\t52, 159, 255, 186, 156, 119, 132, 104, 151, 188, 117, 155,\n\t\t127, 35, 188, 35, 191, 72, 8, 9, 14, 25, 215, 7, 168, 134,\n\t\t49, 184, 215, 39, 156, 179, 87, 186, 106, 73, 13, 91, 55,\n\t\t66, 196, 221, 145, 198, 200, 236, 28, 76, 123, 116, 223, 229,\n\t\t13, 47, 20, 126, 250, 152, 107, 224, 52, 49, 1, 122, 76, 136,\n\t\t38, 176, 32, 179, 78, 144, 45, 7, 144, 168, 113, 134, 224,\n\t\t119, 14, 93, 165, 98, 254, 229, 18, 146, 148, 161, 72, 178,\n\t\t93, 176, 25, 66, 139, 249, 238, 227, 185, 249, 235, 242, 86,\n\t\t240, 125, 126, 30, 46, 61, 173, 49, 166, 172, 180, 114, 219,\n\t\t72, 126, 197, 213, 172, 249, 78, 178, 190, 93, 218, 79, 255,\n\t\t206, 12, 4, 89, 44, 247, 70, 21, 222, 43, 124, 192, 215, 173,\n\t\t5, 226, 205, 240, 158, 244, 120, 35, 163, 193, 215, 57, 32,\n\t\t65, 51, 125, 111, 109, 167, 135, 213, 61, 66, 200, 45, 238,\n\t\t108, 218, 237, 4, 111, 167, 241, 58, 146, 148, 32, 15, 252,\n\t\t58, 153, 83, 72, 231, 198, 185, 147, 37, 95, 199, 212, 5,\n\t\t76, 163, 1, 196, 115, 106, 238, 66, 31, 200, 167, 64, 197,\n\t\t184, 104, 14, 137, 151, 27, 243, 149, 177, 150, 71, 40, 165,\n\t\t7, 121, 162, 79, 63, 156, 40, 218, 251, 48, 221, 239, 225,\n\t\t191, 205, 213, 137, 211, 173, 21, 199, 99, 236, 247, 96, 197,\n\t\t247, 149, 220, 51, 100, 251, 58, 37, 75, 68, 133, 85, 255,\n\t\t116, 62, 118, 211, 186, 101, 204, 246, 29, 65, 155, 128, 36,\n\t\t241, 202, 41, 233, 126, 214, 64, 28, 237, 237, 249, 195, 167,\n\t\t79, 31, 126, 249, 184, 183, 158, 255, 182, 198, 127, 68, 155,\n\t\t234, 212, 42, 49, 190, 121, 205, 208, 204, 8, 221, 205, 230,\n\t\t128, 252, 192, 77, 212, 244, 77, 205, 163, 196, 91, 100, 151,\n\t\t182, 108, 212, 170, 222, 138, 144, 224, 34, 31, 205, 165,\n\t\t227, 121, 193, 33, 132, 130, 142, 157, 107, 68, 97, 44, 233,\n\t\t162, 233, 172, 2, 43, 143, 99, 201, 179, 193, 37, 218, 212,\n\t\t71, 1, 157, 239, 30, 250, 87, 14, 118, 130, 142, 88, 221,\n\t\t94, 216, 215, 220, 241, 241, 123, 154, 241, 98, 39, 174, 172,\n\t\t145, 57, 65, 78, 202, 22, 37, 8, 204, 23, 77, 160, 221, 97,\n\t\t115, 158, 189, 96, 231, 155, 108, 11, 52, 254, 14, 45, 19,\n\t\t79, 28, 232, 131, 17, 6, 192, 89, 150, 139, 36, 67, 14, 150,\n\t\t211, 46, 15, 215, 154, 106, 75, 205, 21, 170, 189, 202, 199,\n\t\t50, 181, 37, 149, 58, 74, 102, 67, 5, 129, 1, 208, 105, 244,\n\t\t125, 105, 212, 242, 16, 66, 129, 123, 114, 205, 196, 28, 58,\n\t\t176, 134, 46, 210, 237, 28, 210, 239, 176, 189, 168, 238,\n\t\t88, 121, 136, 104, 20, 160, 166, 170, 226, 37, 75, 157, 233,\n\t\t39, 58, 182, 224, 54, 48, 31, 67, 239, 238, 114, 89, 223,\n\t\t65, 239, 130, 97, 157, 85, 103, 58, 13, 200, 72, 83, 179,\n\t\t154, 86, 84, 35, 173, 13, 192, 112, 54, 36, 143, 179, 161,\n\t\t5, 90, 76, 206, 198, 222, 82, 4, 125, 72, 222, 251, 200, 185,\n\t\t158, 169, 215, 163, 179, 90, 50, 27, 146, 224, 89, 169, 211,\n\t\t108, 205, 116, 246, 4, 102, 53, 214, 129, 148, 113, 4, 226,\n\t\t31, 123, 25, 37, 27, 130, 171, 140, 237, 211, 89, 217, 206,\n\t\t230, 68, 157, 48, 157, 175, 49, 167, 3, 112, 62, 179, 233,\n\t\t112, 72, 133, 186, 46, 116, 89, 12, 155, 8, 124, 5, 197, 242,\n\t\t173, 171, 203, 41, 187, 167, 145, 14, 184, 156, 77, 13, 204,\n\t\t137, 225, 76, 132, 76, 26, 221, 176, 34, 98, 81, 143, 53,\n\t\t157, 108, 233, 37, 244, 9, 185, 243, 130, 64, 118, 182, 218,\n\t\t33, 149, 164, 16, 214, 2, 209, 57, 159, 102, 55, 101, 27,\n\t\t241, 91, 180, 45, 248, 128, 176, 148, 82, 146, 199, 126, 237,\n\t\t108, 231, 160, 205, 233, 1, 188, 153, 38, 199, 2, 14, 156,\n\t\t43, 99, 147, 197, 79, 159, 181, 176, 249, 36, 192, 64, 88,\n\t\t102, 90, 55, 33, 79, 85, 45, 152, 77, 172, 116, 190, 120,\n\t\t91, 42, 23, 48, 78, 114, 201, 182, 36, 79, 130, 75, 240, 48,\n\t\t131, 58, 219, 83, 197, 2, 118, 54, 182, 208, 124, 152, 130,\n\t\t205, 142, 38, 112, 45, 161, 213, 158, 115, 159, 221, 20, 137,\n\t\t21, 66, 106, 9, 215, 99, 37, 33, 157, 119, 75, 178, 165, 134,\n\t\t198, 57, 223, 123, 236, 167, 57, 138, 33, 50, 66, 106, 130,\n\t\t251, 16, 34, 231, 20, 64, 140, 153, 127, 185, 156, 61, 168,\n\t\t11, 240, 158, 100, 61, 58, 166, 25, 113, 138, 50, 209, 212,\n\t\t26, 226, 251, 227, 28, 177, 171, 225, 5, 218, 10, 49, 179,\n\t\t83, 35, 22, 24, 174, 252, 154, 19, 6, 50, 44, 99, 205, 229,\n\t\t206, 248, 26, 137, 89, 148, 13, 229, 11, 74, 248, 54, 101,\n\t\t28, 159, 3, 64, 59, 216, 94, 38, 56, 115, 145, 44, 225, 35,\n\t\t173, 245, 137, 68, 9, 146, 20, 131, 175, 182, 158, 230, 64,\n\t\t162, 101, 202, 147, 90, 4, 216, 131, 133, 100, 90, 9, 89,\n\t\t19, 107, 166, 92, 159, 87, 220, 232, 57, 89, 30, 93, 7, 23,\n\t\t198, 92, 17, 31, 26, 157, 71, 34, 112, 155, 208, 126, 126,\n\t\t106, 22, 107, 42, 237, 11, 152, 87, 180, 17, 36, 202, 0, 31,\n\t\t117, 20, 160, 89, 56, 47, 197, 238, 226, 16, 105, 160, 67,\n\t\t184, 82, 125, 237, 104, 77, 22, 66, 109, 81, 91, 88, 70, 14,\n\t\t222, 169, 74, 205, 24, 202, 218, 39, 25, 202, 19, 205, 85,\n\t\t118, 27, 113, 122, 10, 2, 109, 165, 19, 52, 69, 49, 246, 142,\n\t\t25, 91, 115, 80, 233, 169, 225, 197, 5, 71, 215, 129, 145,\n\t\t133, 16, 109, 203, 157, 105, 14, 219, 245, 179, 26, 148, 186,\n\t\t172, 131, 17, 64, 146, 224, 149, 64, 75, 185, 241, 107, 105,\n\t\t116, 196, 212, 228, 88, 143, 136, 12, 158, 144, 226, 117,\n\t\t3, 24, 221, 1, 41, 241, 150, 50, 13, 118, 189, 64, 155, 71,\n\t\t28, 205, 18, 91, 78, 116, 147, 25, 217, 101, 199, 39, 246,\n\t\t249, 121, 254, 151, 249, 245, 229, 175, 95, 150, 157, 238,\n\t\t183, 184, 245, 212, 134, 51, 110, 45, 214, 229, 217, 187,\n\t\t213, 164, 236, 217, 147, 30, 54, 80, 7, 245, 88, 66, 182,\n\t\t242, 208, 147, 133, 152, 95, 172, 235, 179, 233, 234, 40,\n\t\t48, 76, 209, 161, 72, 100, 218, 214, 56, 205, 7, 195, 194,\n\t\t172, 251, 228, 11, 137, 197, 179, 241, 88, 103, 226, 227,\n\t\t129, 128, 71, 121, 29, 189, 205, 245, 176, 68, 145, 40, 163,\n\t\t152, 24, 59, 40, 43, 224, 174, 225, 24, 22, 228, 119, 189,\n\t\t214, 251, 221, 194, 14, 187, 72, 138, 89, 99, 95, 66, 114,\n\t\t214, 79, 33, 121, 154, 187, 211, 77, 61, 137, 177, 172, 70,\n\t\t61, 192, 148, 214, 122, 136, 253, 45, 54, 51, 153, 10, 125,\n\t\t49, 158, 196, 127, 231, 129, 143, 154, 137, 143, 80, 87, 68,\n\t\t222, 99, 163, 64, 181, 210, 142, 141, 246, 73, 163, 76, 150,\n\t\t20, 136, 140, 244, 41, 121, 94, 44, 250, 228, 246, 193, 12,\n\t\t111, 1, 190, 14, 26, 184, 231, 160, 122, 105, 109, 41, 141,\n\t\t45, 217, 136, 133, 170, 46, 47, 30, 206, 109, 216, 38, 14,\n\t\t118, 114, 166, 115, 5, 198, 122, 32, 199, 66, 188, 215, 107,\n\t\t170, 209, 111, 234, 75, 94, 109, 147, 1, 20, 113, 46, 171,\n\t\t147, 230, 168, 137, 11, 180, 42, 51, 186, 101, 80, 219, 98,\n\t\t130, 15, 214, 193, 32, 233, 157, 13, 117, 30, 207, 26, 125,\n\t\t237, 250, 240, 40, 225, 150, 104, 67, 142, 87, 243, 203, 252,\n\t\t175, 47, 31, 62, 238, 48, 160, 202, 46, 39, 240, 234, 204,\n\t\t27, 160, 220, 40, 72, 130, 214, 88, 135, 206, 92, 123, 23,\n\t\t61, 172, 73, 238, 1, 95, 163, 201, 250, 222, 102, 108, 102,\n\t\t168, 170, 80, 247, 166, 86, 252, 127, 206, 229, 234, 169,\n\t\t127, 129, 22, 125, 179, 149, 86, 125, 67, 6, 126, 47, 217,\n\t\t121, 245, 211, 72, 246, 250, 164, 14, 52, 149, 245, 163, 114,\n\t\t125, 142, 165, 128, 62, 4, 207, 54, 11, 98, 250, 37, 212,\n\t\t63, 20, 129, 142, 150, 71, 140, 60, 115, 26, 47, 229, 207,\n\t\t120, 53, 220, 24, 78, 194, 19, 89, 37, 82, 59, 63, 237, 38,\n\t\t159, 160, 75, 224, 115, 1, 23, 62, 65, 29, 161, 118, 108,\n\t\t41, 194, 31, 248, 72, 38, 63, 236, 230, 240, 196, 82, 213,\n\t\t184, 169, 234, 17, 33, 169, 148, 162, 4, 160, 203, 231, 236,\n\t\t131, 168, 53, 149, 93, 10, 89, 18, 216, 54, 91, 98, 47, 112,\n\t\t181, 100, 2, 44, 5, 72, 131, 29, 96, 122, 149, 52, 216, 249,\n\t\t54, 13, 118, 117, 113, 117, 147, 62, 177, 174, 132, 22, 154,\n\t\t67, 6, 101, 102, 107, 189, 152, 141, 76, 11, 168, 149, 227,\n\t\t128, 50, 157, 98, 179, 239, 236, 112, 164, 224, 149, 53, 48,\n\t\t204, 184, 100, 114, 243, 109, 122, 68, 106, 95, 62, 205, 31,\n\t\t159, 63, 255, 254, 108, 126, 121, 222, 3, 104, 151, 17, 34,\n\t\t31, 90, 155, 34, 205, 85, 153, 189, 107, 54, 115, 200, 28,\n\t\t180, 120, 12, 78, 235, 154, 45, 137, 191, 135, 64, 199, 37,\n\t\t135, 80, 59, 196, 31, 180, 48, 181, 200, 198, 228, 224, 178,\n\t\t109, 29, 55, 242, 125, 87, 223, 108, 78, 204, 135, 63, 240,\n\t\t57, 63, 114, 160, 238, 143, 240, 238, 252, 123, 156, 205,\n\t\t233, 62, 106, 14, 163, 222, 149, 116, 250, 27, 92, 195, 211,\n\t\t195, 52, 34, 199, 174, 225, 169, 185, 7, 83, 248, 242, 175,\n\t\t143, 251, 115, 50, 142, 115, 210, 19, 235, 48, 249, 30, 109,\n\t\t240, 115, 18, 197, 47, 237, 4, 214, 226, 169, 22, 147, 117,\n\t\t174, 62, 140, 172, 21, 22, 46, 136, 154, 181, 183, 52, 118,\n\t\t145, 94, 61, 24, 131, 183, 62, 134, 134, 83, 178, 100, 154,\n\t\t249, 84, 173, 11, 196, 51, 228, 10, 79, 142, 204, 65, 45,\n\t\t139, 41, 93, 152, 105, 218, 75, 158, 21, 184, 16, 225, 189,\n\t\t174, 105, 5, 139, 71, 136, 42, 204, 90, 77, 217, 13, 58, 8,\n\t\t243, 98, 106, 225, 176, 63, 58, 30, 33, 2, 152, 16, 153, 237,\n\t\t136, 182, 178, 26, 57, 103, 219, 11, 49, 212, 36, 132, 16,\n\t\t27, 94, 145, 148, 33, 86, 197, 238, 79, 156, 35, 60, 39, 117,\n\t\t140, 168, 61, 119, 22, 119, 2, 59, 201, 165, 148, 226, 148,\n\t\t186, 77, 141, 104, 70, 172, 214, 83, 207, 106, 192, 65, 67,\n\t\t135, 40, 107, 172, 107, 17, 200, 44, 103, 187, 243, 177, 212,\n\t\t137, 36, 230, 134, 248, 48, 91, 98, 104, 30, 145, 187, 108,\n\t\t167, 144, 130, 224, 108, 77, 94, 210, 69, 229, 26, 232, 228,\n\t\t76, 53, 21, 63, 165, 100, 115, 194, 19, 41, 7, 230, 30, 123,\n\t\t11, 68, 128, 16, 249, 83, 56, 105, 0, 92, 172, 106, 33, 38,\n\t\t145, 70, 62, 215, 9, 3, 79, 124, 182, 56, 110, 243, 176, 231,\n\t\t10, 23, 231, 69, 7, 157, 199, 156, 134, 60, 116, 58, 254,\n\t\t225, 103, 183, 162, 243, 171, 91, 172, 19, 218, 14, 189, 71,\n\t\t91, 234, 136, 150, 13, 44, 72, 5, 1, 251, 55, 108, 146, 246,\n\t\t19, 17, 55, 164, 92, 240, 149, 21, 50, 60, 218, 70, 135, 27,\n\t\t163, 220, 25, 251, 185, 230, 25, 163, 93, 56, 42, 151, 29,\n\t\t221, 101, 180, 141, 14, 119, 196, 218, 15, 152, 54, 26, 238,\n\t\t215, 39, 98, 223, 155, 59, 253, 36, 173, 17, 236, 243, 116,\n\t\t78, 254, 164, 234, 99, 105, 223, 30, 231, 120, 122, 119, 253,\n\t\t143, 137, 130, 249, 229, 227, 151, 61, 101, 72, 91, 202, 144,\n\t\t1, 42, 110, 125, 155, 147, 6, 97, 5, 153, 78, 195, 222, 60,\n\t\t174, 99, 99, 177, 63, 130, 15, 182, 59, 120, 31, 116, 112,\n\t\t13, 32, 16, 28, 158, 38, 171, 84, 8, 68, 46, 66, 32, 74, 21,\n\t\t2, 81, 132, 64, 68, 228, 100, 28, 4, 162, 1, 158, 6, 107,\n\t\t21, 190, 105, 111, 16, 136, 44, 209, 11, 146, 7, 190, 170,\n\t\t96, 238, 100, 65, 234, 146, 37, 18, 81, 177, 194, 73, 0, 22,\n\t\t2, 209, 253, 61, 129, 200, 13, 4, 2, 120, 74, 43, 129, 40,\n\t\t46, 11, 129, 232, 121, 146, 165, 43, 36, 162, 8, 137, 200,\n\t\t119, 36, 162, 3, 214, 70, 22, 45, 173, 217, 114, 75, 32, 68,\n\t\t162, 18, 164, 236, 44, 166, 120, 208, 3, 223, 56, 180, 191,\n\t\t133, 180, 22, 128, 64, 132, 65, 32, 114, 184, 37, 16, 172,\n\t\t254, 80, 10, 17, 92, 91, 148, 56, 223, 18, 136, 36, 4, 130,\n\t\t40, 35, 13, 60, 181, 182, 178, 92, 186, 18, 8, 239, 242, 162,\n\t\t131, 30, 89, 90, 35, 18, 193, 105, 69, 2, 83, 222, 28, 56,\n\t\t89, 139, 237, 5, 18, 107, 112, 117, 146, 243, 97, 118, 144,\n\t\t45, 107, 6, 142, 126, 71, 136, 58, 219, 47, 125, 40, 54, 101,\n\t\t248, 82, 55, 132, 217, 225, 122, 230, 236, 26, 28, 200, 194,\n\t\t81, 249, 129, 228, 135, 9, 63, 87, 190, 108, 69, 119, 252,\n\t\t207, 218, 50, 255, 149, 59, 254, 221, 213, 31, 110, 248, 207,\n\t\t47, 127, 190, 101, 194, 42, 121, 107, 194, 234, 229, 208,\n\t\t130, 197, 177, 223, 95, 183, 96, 37, 119, 21, 193, 227, 224,\n\t\t158, 35, 83, 79, 12, 208, 184, 186, 107, 47, 103, 73, 194,\n\t\t124, 100, 218, 204, 229, 156, 28, 219, 113, 82, 128, 193,\n\t\t18, 16, 66, 87, 228, 167, 160, 231, 143, 45, 79, 244, 188,\n\t\t73, 238, 116, 208, 32, 102, 81, 223, 182, 61, 37, 119, 77,\n\t\t7, 166, 169, 212, 14, 198, 242, 112, 174, 126, 253, 248, 251,\n\t\t199, 47, 31, 22, 243, 229, 195, 124, 126, 249, 253, 243, 135,\n\t\t63, 119, 102, 225, 178, 11, 73, 223, 96, 243, 8, 158, 202,\n\t\t195, 177, 123, 108, 221, 203, 245, 145, 187, 20, 87, 243,\n\t\t85, 163, 114, 174, 229, 21, 177, 211, 189, 92, 219, 145, 161,\n\t\t12, 147, 117, 152, 2, 240, 48, 71, 100, 8, 233, 171, 89, 46,\n\t\t95, 159, 170, 134, 160, 126, 79, 142, 201, 7, 6, 190, 199,\n\t\t137, 99, 57, 154, 255, 231, 53, 224, 113, 38, 71, 34, 107,\n\t\t238, 39, 182, 224, 61, 13, 32, 225, 239, 167, 52, 224, 244,\n\t\t206, 22, 208, 42, 12, 186, 163, 143, 224, 211, 130, 219, 69,\n\t\t55, 239, 241, 211, 110, 81, 48, 222, 128, 178, 160, 90, 14,\n\t\t224, 184, 224, 30, 247, 55, 108, 138, 211, 131, 93, 241, 213,\n\t\t77, 113, 76, 127, 94, 95, 119, 177, 229, 101, 23, 91, 254,\n\t\t243, 81, 48, 114, 0, 232, 94, 90, 70, 190, 35, 249, 50, 175,\n\t\t153, 92, 196, 242, 175, 248, 10, 85, 225, 32, 36, 101, 134,\n\t\t124, 46, 35, 135, 146, 124, 46, 119, 215, 179, 231, 32, 32,\n\t\t132, 248, 40, 136, 83, 212, 192, 252, 187, 218, 78, 107, 117,\n\t\t250, 101, 247, 2, 132, 37, 161, 58, 228, 200, 215, 154, 86,\n\t\t124, 168, 112, 91, 247, 174, 143, 251, 119, 108, 50, 246,\n\t\t251, 60, 242, 208, 177, 69, 81, 80, 47, 238, 107, 125, 197,\n\t\t220, 196, 240, 179, 178, 78, 61, 197, 158, 109, 156, 2, 201,\n\t\t4, 127, 239, 24, 255, 103, 134, 248, 244, 29, 99, 124, 223,\n\t\t205, 31, 95, 173, 199, 187, 243, 243, 135, 223, 190, 124,\n\t\t252, 244, 187, 153, 95, 254, 248, 243, 195, 101, 231, 183,\n\t\t80, 218, 224, 232, 50, 179, 208, 142, 54, 62, 137, 219, 130,\n\t\t175, 144, 97, 238, 95, 76, 133, 59, 164, 71, 6, 153, 144,\n\t\t97, 141, 134, 13, 198, 171, 79, 170, 15, 172, 177, 71, 136,\n\t\t8, 2, 92, 66, 208, 48, 165, 32, 170, 155, 28, 89, 199, 30,\n\t\t162, 5, 228, 93, 98, 151, 194, 158, 224, 237, 58, 135, 46,\n\t\t150, 45, 207, 177, 137, 185, 138, 158, 79, 140, 226, 45, 216,\n\t\t156, 72, 90, 114, 9, 105, 177, 58, 146, 204, 244, 102, 125,\n\t\t154, 225, 235, 200, 162, 92, 20, 241, 207, 39, 146, 112, 136,\n\t\t191, 76, 214, 131, 147, 226, 124, 249, 184, 84, 5, 41, 51,\n\t\t43, 165, 243, 27, 203, 136, 71, 114, 129, 189, 4, 33, 136,\n\t\t85, 77, 11, 3, 187, 71, 228, 142, 192, 113, 30, 61, 153, 77,\n\t\t135, 16, 148, 25, 166, 131, 3, 69, 29, 187, 56, 4, 113, 244,\n\t\t192, 104, 84, 7, 127, 95, 30, 12, 53, 121, 96, 64, 151, 234,\n\t\t37, 133, 105, 136, 54, 149, 153, 115, 162, 32, 74, 19, 178,\n\t\t101, 146, 232, 170, 216, 196, 11, 51, 139, 231, 106, 9, 152,\n\t\t24, 28, 236, 108, 205, 169, 98, 164, 54, 250, 106, 95, 89,\n\t\t113, 156, 109, 73, 174, 0, 237, 50, 149, 94, 151, 80, 197,\n\t\t173, 28, 94, 17, 213, 38, 88, 246, 147, 88, 2, 125, 17, 1,\n\t\t78, 178, 87, 138, 38, 27, 249, 109, 129, 94, 214, 55, 177,\n\t\t91, 28, 59, 232, 101, 224, 105, 131, 83, 223, 163, 68, 15,\n\t\t152, 216, 97, 174, 233, 64, 160, 105, 54, 114, 60, 26, 187,\n\t\t9, 68, 129, 222, 244, 162, 247, 15, 93, 52, 227, 90, 144,\n\t\t50, 59, 69, 175, 168, 32, 27, 80, 16, 86, 118, 95, 122, 185,\n\t\t135, 10, 1, 195, 170, 56, 159, 73, 66, 3, 145, 169, 107, 84,\n\t\t14, 171, 156, 212, 190, 100, 15, 37, 66, 163, 94, 65, 216,\n\t\t119, 176, 91, 171, 195, 54, 224, 11, 16, 169, 18, 33, 162,\n\t\t66, 129, 14, 213, 98, 98, 59, 229, 66, 119, 192, 6, 210, 154,\n\t\t133, 168, 46, 192, 17, 43, 180, 137, 97, 144, 239, 27, 207,\n\t\t135, 32, 86, 248, 81, 116, 25, 119, 185, 177, 148, 228, 30,\n\t\t189, 229, 180, 152, 162, 14, 181, 158, 250, 216, 102, 44,\n\t\t46, 184, 141, 8, 240, 67, 202, 28, 191, 9, 255, 88, 224, 48,\n\t\t116, 137, 195, 144, 130, 185, 22, 150, 55, 124, 194, 198,\n\t\t143, 13, 113, 194, 147, 228, 16, 161, 245, 31, 219, 156, 36,\n\t\t142, 182, 138, 195, 179, 6, 184, 119, 49, 2, 211, 42, 205,\n\t\t200, 196, 139, 181, 176, 12, 127, 117, 159, 177, 10, 231,\n\t\t170, 22, 110, 205, 2, 233, 29, 239, 113, 144, 183, 224, 234,\n\t\t84, 196, 242, 25, 2, 22, 13, 167, 5, 97, 80, 176, 99, 255,\n\t\t179, 55, 164, 218, 203, 59, 36, 228, 7, 244, 242, 175, 93,\n\t\t46, 157, 178, 195, 1, 88, 109, 107, 41, 55, 75, 34, 84, 168,\n\t\t214, 135, 185, 234, 22, 1, 232, 225, 228, 97, 13, 99, 71,\n\t\t172, 204, 87, 176, 110, 68, 235, 35, 28, 217, 108, 139, 112,\n\t\t134, 117, 54, 21, 152, 183, 197, 36, 212, 36, 136, 191, 176,\n\t\t230, 58, 86, 231, 175, 189, 112, 216, 183, 219, 32, 0, 105,\n\t\t68, 236, 78, 248, 31, 224, 95, 134, 243, 233, 50, 160, 136,\n\t\t34, 1, 2, 53, 21, 251, 2, 25, 196, 154, 56, 95, 3, 110, 33,\n\t\t0, 120, 23, 121, 255, 202, 225, 187, 78, 95, 123, 25, 61,\n\t\t154, 103, 147, 234, 20, 160, 23, 203, 108, 236, 7, 222, 4,\n\t\t40, 116, 224, 87, 201, 155, 184, 109, 223, 209, 43, 29, 16,\n\t\t222, 144, 189, 210, 90, 100, 207, 253, 130, 51, 130, 87, 89,\n\t\t225, 84, 177, 240, 182, 214, 1, 87, 176, 10, 31, 154, 237,\n\t\t248, 152, 66, 147, 4, 81, 193, 219, 6, 223, 50, 103, 157,\n\t\t203, 236, 242, 0, 187, 50, 18, 240, 133, 88, 227, 84, 155,\n\t\t184, 123, 227, 140, 76, 117, 161, 138, 75, 159, 186, 6, 0,\n\t\t103, 38, 25, 93, 116, 160, 81, 28, 204, 147, 4, 190, 167,\n\t\t168, 59, 192, 49, 242, 54, 67, 167, 32, 56, 135, 213, 127,\n\t\t105, 192, 175, 39, 49, 160, 208, 173, 72, 9, 34, 15, 191,\n\t\t194, 136, 230, 83, 154, 125, 196, 161, 72, 156, 52, 39, 23,\n\t\t119, 156, 98, 9, 249, 131, 59, 200, 102, 116, 162, 112, 205,\n\t\t142, 173, 127, 138, 142, 139, 76, 142, 45, 208, 128, 248,\n\t\t214, 51, 204, 165, 172, 118, 239, 149, 29, 241, 177, 125,\n\t\t192, 130, 169, 89, 146, 218, 196, 174, 219, 2, 121, 48, 218,\n\t\t52, 73, 35, 233, 52, 228, 14, 105, 127, 140, 118, 136, 250,\n\t\t227, 123, 212, 59, 117, 40, 150, 38, 150, 212, 204, 168, 24,\n\t\t179, 209, 60, 190, 35, 8, 3, 52, 92, 144, 185, 124, 112, 222,\n\t\t195, 164, 222, 197, 155, 133, 75, 102, 100, 216, 205, 162,\n\t\t155, 217, 102, 81, 199, 85, 115, 23, 239, 42, 56, 130, 198,\n\t\t195, 101, 30, 88, 195, 136, 26, 152, 203, 151, 231, 231, 229,\n\t\t207, 125, 50, 212, 178, 11, 188, 221, 152, 220, 155, 4, 14,\n\t\t230, 110, 1, 7, 67, 5, 3, 215, 4, 23, 140, 211, 220, 131,\n\t\t40, 51, 25, 137, 67, 86, 164, 108, 69, 185, 237, 130, 111,\n\t\t3, 63, 69, 150, 234, 149, 159, 253, 250, 90, 38, 65, 62, 91,\n\t\t4, 229, 87, 91, 210, 156, 197, 235, 79, 209, 132, 130, 66,\n\t\t120, 55, 203, 140, 48, 187, 69, 229, 130, 147, 111, 25, 174,\n\t\t227, 41, 225, 60, 58, 205, 166, 70, 117, 213, 137, 224, 36,\n\t\t120, 253, 96, 79, 10, 251, 52, 10, 170, 227, 204, 238, 76,\n\t\t221, 112, 100, 100, 113, 28, 165, 97, 72, 8, 247, 178, 21,\n\t\t55, 210, 102, 2, 128, 10, 173, 81, 236, 91, 95, 136, 67, 108,\n\t\t192, 29, 96, 119, 35, 77, 162, 52, 17, 31, 84, 123, 230, 245,\n\t\t79, 114, 115, 240, 172, 35, 119, 83, 242, 188, 136, 160, 209,\n\t\t134, 55, 158, 38, 77, 111, 116, 214, 231, 58, 133, 162, 134,\n\t\t1, 214, 234, 43, 168, 39, 72, 52, 158, 144, 130, 211, 69,\n\t\t35, 225, 25, 245, 7, 28, 128, 222, 99, 228, 166, 217, 119,\n\t\t180, 101, 160, 189, 209, 40, 240, 20, 137, 136, 164, 15, 240,\n\t\t53, 103, 245, 141, 57, 92, 61, 51, 141, 65, 16, 92, 189, 134,\n\t\t108, 38, 201, 94, 28, 116, 103, 145, 248, 197, 223, 97, 226,\n\t\t151, 77, 171, 62, 6, 144, 187, 248, 231, 171, 225, 58, 121,\n\t\t209, 115, 114, 4, 218, 199, 67, 248, 186, 136, 36, 231, 39,\n\t\t205, 158, 222, 155, 237, 236, 44, 231, 79, 196, 12, 72, 228,\n\t\t24, 243, 21, 158, 184, 176, 74, 163, 205, 105, 244, 249, 178,\n\t\t74, 6, 90, 38, 41, 30, 4, 5, 76, 171, 106, 225, 147, 77, 105,\n\t\t146, 196, 215, 88, 65, 176, 14, 106, 168, 27, 216, 100, 65,\n\t\t194, 175, 18, 172, 51, 226, 194, 99, 17, 3, 96, 85, 163, 50,\n\t\t173, 68, 232, 36, 164, 219, 133, 173, 187, 94, 12, 11, 180,\n\t\t176, 192, 221, 13, 176, 141, 228, 108, 62, 86, 150, 254, 246,\n\t\t252, 225, 203, 249, 249, 243, 155, 186, 237, 95, 86, 75, 22,\n\t\t251, 133, 24, 191, 1, 121, 145, 48, 16, 47, 88, 98, 193, 54,\n\t\t73, 117, 10, 145, 35, 32, 145, 237, 98, 188, 43, 136, 178,\n\t\t204, 209, 6, 127, 110, 30, 216, 9, 76, 15, 89, 124, 40, 202,\n\t\t132, 73, 236, 1, 173, 68, 222, 21, 81, 104, 179, 73, 108,\n\t\t146, 90, 140, 79, 5, 44, 105, 98, 131, 204, 217, 59, 103,\n\t\t225, 61, 76, 172, 149, 60, 194, 204, 86, 237, 98, 54, 203,\n\t\t43, 154, 122, 128, 155, 37, 77, 76, 226, 44, 191, 34, 71,\n\t\t104, 54, 179, 38, 27, 139, 56, 70, 97, 227, 67, 86, 74, 80,\n\t\t92, 100, 236, 117, 31, 29, 91, 214, 28, 49, 115, 166, 195,\n\t\t70, 158, 7, 78, 62, 152, 22, 158, 158, 81, 18, 35, 79, 164,\n\t\t187, 140, 192, 48, 186, 169, 244, 56, 185, 145, 225, 33, 100,\n\t\t196, 132, 230, 110, 67, 122, 43, 182, 251, 38, 0, 238, 50,\n\t\t128, 90, 214, 208, 179, 76, 252, 240, 98, 60, 29, 198, 112,\n\t\t23, 110, 182, 252, 63, 236, 189, 105, 114, 28, 71, 210, 45,\n\t\t250, 191, 86, 145, 27, 136, 176, 240, 152, 195, 190, 53, 96,\n\t\t17, 80, 138, 173, 226, 235, 20, 169, 75, 80, 213, 239, 195,\n\t\t234, 175, 249, 113, 247, 200, 2, 10, 172, 2, 7, 80, 82, 219,\n\t\t181, 110, 177, 50, 19, 57, 196, 28, 62, 158, 211, 199, 30,\n\t\t3, 105, 232, 206, 6, 106, 90, 146, 196, 227, 20, 85, 146,\n\t\t122, 0, 26, 210, 26, 139, 194, 184, 101, 150, 143, 151, 212,\n\t\t135, 7, 160, 114, 246, 172, 236, 230, 28, 60, 70, 88, 243,\n\t\t149, 174, 143, 172, 247, 219, 59, 183, 126, 252, 240, 249,\n\t\t211, 253, 122, 57, 182, 46, 50, 68, 247, 196, 44, 64, 104,\n\t\t81, 52, 63, 136, 134, 223, 41, 232, 151, 101, 38, 29, 41,\n\t\t33, 64, 100, 186, 84, 134, 37, 37, 137, 233, 224, 204, 101,\n\t\t146, 146, 0, 215, 168, 1, 199, 156, 20, 118, 95, 204, 167,\n\t\t92, 45, 181, 105, 168, 35, 34, 136, 171, 65, 92, 17, 49, 4,\n\t\t94, 77, 234, 227, 93, 205, 175, 201, 120, 233, 225, 91, 77,\n\t\t177, 253, 121, 80, 217, 243, 124, 151, 138, 166, 121, 163,\n\t\t2, 188, 226, 251, 177, 84, 223, 121, 197, 220, 3, 227, 97,\n\t\t200, 37, 72, 66, 209, 48, 161, 40, 72, 96, 71, 245, 69, 48,\n\t\t180, 204, 198, 33, 41, 216, 185, 202, 20, 79, 10, 104, 225,\n\t\t170, 0, 182, 84, 133, 183, 238, 172, 86, 102, 194, 234, 6,\n\t\t108, 57, 216, 13, 134, 230, 208, 98, 133, 148, 8, 113, 195,\n\t\t87, 209, 88, 51, 189, 240, 128, 160, 46, 232, 122, 245, 204,\n\t\t152, 165, 16, 44, 85, 211, 78, 169, 11, 50, 143, 43, 89, 63,\n\t\t68, 150, 121, 146, 173, 210, 197, 140, 24, 205, 96, 248, 40,\n\t\t232, 70, 175, 87, 142, 176, 242, 116, 4, 204, 124, 61, 98,\n\t\t179, 62, 187, 146, 100, 121, 46, 144, 87, 17, 159, 99, 6,\n\t\t159, 44, 28, 185, 41, 164, 77, 241, 119, 150, 132, 221, 113,\n\t\t108, 84, 117, 63, 102, 33, 182, 174, 113, 143, 171, 36, 24,\n\t\t53, 154, 213, 130, 130, 66, 224, 152, 58, 69, 98, 137, 89,\n\t\t3, 190, 158, 187, 164, 246, 74, 128, 57, 224, 194, 154, 4,\n\t\t217, 179, 26, 26, 114, 91, 72, 251, 119, 191, 116, 220, 195,\n\t\t179, 15, 107, 241, 25, 33, 237, 224, 117, 232, 149, 210, 146,\n\t\t188, 34, 197, 106, 4, 180, 182, 204, 214, 36, 243, 130, 10,\n\t\t120, 34, 141, 170, 219, 104, 142, 77, 51, 174, 42, 27, 147,\n\t\t24, 10, 236, 252, 97, 174, 203, 19, 120, 121, 194, 254, 72,\n\t\t234, 13, 43, 215, 59, 177, 12, 116, 233, 24, 13, 51, 71, 7,\n\t\t95, 234, 26, 18, 165, 23, 142, 188, 187, 140, 144, 175, 184,\n\t\t27, 30, 94, 242, 115, 232, 99, 143, 135, 187, 212, 218, 146,\n\t\t114, 90, 65, 10, 192, 255, 52, 177, 1, 194, 248, 41, 198,\n\t\t191, 16, 242, 201, 24, 202, 149, 134, 38, 246, 163, 241, 171,\n\t\t27, 156, 50, 8, 161, 139, 224, 250, 178, 52, 223, 110, 175,\n\t\t175, 191, 126, 252, 207, 135, 237, 227, 253, 5, 82, 95, 189,\n\t\t146, 248, 250, 55, 94, 95, 83, 8, 136, 110, 8, 60, 203, 0,\n\t\t234, 20, 5, 242, 10, 187, 122, 82, 178, 156, 184, 155, 122,\n\t\t148, 79, 84, 46, 28, 93, 45, 48, 250, 156, 122, 56, 252, 0,\n\t\t150, 159, 30, 230, 27, 161, 246, 65, 176, 11, 130, 231, 46,\n\t\t86, 131, 6, 38, 38, 34, 217, 132, 165, 20, 219, 144, 136,\n\t\t120, 88, 138, 65, 181, 82, 13, 122, 173, 170, 209, 141, 154,\n\t\t6, 244, 215, 51, 128, 174, 12, 20, 233, 239, 28, 75, 135,\n\t\t239, 25, 76, 239, 254, 255, 63, 62, 94, 18, 217, 212, 11,\n\t\t178, 251, 93, 171, 75, 61, 47, 137, 117, 136, 111, 25, 221,\n\t\t219, 104, 138, 86, 55, 250, 141, 10, 63, 222, 149, 70, 11,\n\t\t229, 176, 206, 5, 221, 14, 230, 5, 67, 61, 199, 8, 220, 184,\n\t\t241, 101, 8, 130, 196, 5, 57, 7, 34, 7, 158, 209, 185, 136,\n\t\t144, 156, 246, 99, 77, 248, 63, 85, 113, 98, 32, 63, 187,\n\t\t230, 35, 255, 43, 222, 12, 30, 86, 164, 120, 213, 100, 180,\n\t\t17, 58, 28, 206, 94, 194, 127, 151, 228, 107, 162, 115, 170,\n\t\t235, 39, 36, 214, 178, 3, 64, 156, 72, 245, 39, 78, 179, 215,\n\t\t76, 124, 138, 146, 126, 123, 120, 198, 194, 253, 140, 171,\n\t\t251, 116, 43, 110, 6, 227, 234, 253, 239, 47, 142, 171, 127,\n\t\t157, 17, 114, 131, 13, 157, 5, 27, 176, 75, 209, 85, 242,\n\t\t111, 11, 232, 61, 111, 209, 51, 207, 48, 96, 110, 191, 125,\n\t\t6, 93, 153, 64, 162, 173, 254, 176, 149, 243, 240, 154, 62,\n\t\t165, 196, 82, 66, 243, 227, 228, 116, 8, 226, 181, 207, 134,\n\t\t160, 123, 62, 6, 157, 14, 194, 205, 166, 129, 114, 18, 173,\n\t\t207, 167, 141, 253, 218, 155, 194, 162, 147, 71, 204, 147,\n\t\t54, 119, 160, 76, 157, 79, 29, 49, 72, 238, 135, 134, 149,\n\t\t129, 98, 202, 220, 225, 134, 141, 53, 31, 94, 51, 38, 95,\n\t\t49, 136, 62, 156, 62, 190, 191, 4, 123, 107, 225, 202, 70,\n\t\t215, 251, 130, 84, 124, 12, 170, 17, 121, 42, 131, 114, 255,\n\t\t123, 87, 217, 107, 99, 228, 47, 217, 93, 95, 215, 198, 111,\n\t\t171, 190, 188, 66, 123, 248, 1, 218, 203, 225, 187, 10, 144,\n\t\t98, 248, 222, 90, 124, 123, 233, 149, 66, 47, 220, 140, 160,\n\t\t137, 183, 233, 95, 12, 105, 224, 90, 8, 77, 188, 38, 211,\n\t\t158, 110, 184, 201, 207, 231, 156, 251, 245, 227, 182, 221,\n\t\t127, 186, 152, 122, 23, 25, 86, 103, 224, 42, 255, 109, 51,\n\t\t236, 85, 19, 236, 240, 119, 152, 97, 113, 252, 37, 223, 62,\n\t\t88, 168, 92, 7, 214, 119, 12, 180, 70, 53, 6, 6, 193, 180,\n\t\t69, 34, 27, 108, 170, 49, 32, 106, 65, 207, 114, 17, 119,\n\t\t123, 88, 104, 24, 8, 149, 194, 138, 166, 102, 8, 10, 36, 198,\n\t\t170, 44, 57, 41, 155, 19, 63, 121, 89, 93, 177, 81, 109, 57,\n\t\t244, 93, 189, 243, 149, 21, 126, 214, 135, 237, 2, 69, 224,\n\t\t114, 173, 129, 133, 134, 22, 10, 45, 106, 235, 166, 36, 58,\n\t\t34, 169, 177, 89, 207, 143, 177, 67, 23, 63, 240, 40, 134,\n\t\t181, 156, 231, 237, 200, 96, 245, 49, 76, 9, 138, 226, 191,\n\t\t49, 220, 214, 53, 237, 0, 23, 162, 143, 171, 241, 144, 31,\n\t\t17, 67, 190, 169, 53, 65, 208, 136, 227, 70, 36, 222, 80,\n\t\t31, 105, 77, 106, 131, 48, 30, 206, 36, 161, 5, 203, 176,\n\t\t160, 137, 0, 195, 97, 170, 18, 135, 47, 182, 84, 241, 170,\n\t\t205, 100, 76, 195, 125, 162, 201, 204, 64, 6, 72, 14, 123,\n\t\t203, 41, 178, 90, 254, 125, 97, 145, 81, 128, 191, 16, 23,\n\t\t96, 0, 233, 218, 203, 206, 58, 22, 12, 58, 240, 100, 207,\n\t\t43, 123, 95, 59, 235, 108, 50, 244, 87, 235, 108, 235, 107,\n\t\t103, 157, 45, 17, 43, 190, 172, 197, 147, 64, 97, 88, 103,\n\t\t91, 215, 58, 235, 236, 121, 97, 239, 108, 103, 189, 189, 83,\n\t\t209, 104, 127, 59, 235, 112, 187, 114, 116, 179, 203, 221,\n\t\t222, 231, 174, 139, 249, 106, 130, 129, 105, 151, 91, 143,\n\t\t59, 235, 242, 105, 129, 177, 46, 183, 30, 135, 4, 5, 187,\n\t\t241, 236, 115, 39, 157, 238, 164, 215, 185, 117, 163, 140,\n\t\t34, 179, 25, 251, 20, 135, 80, 46, 161, 223, 5, 48, 139, 52,\n\t\t97, 136, 251, 125, 236, 172, 62, 98, 192, 158, 112, 95, 214,\n\t\t239, 214, 237, 206, 250, 221, 89, 199, 95, 137, 34, 253, 98,\n\t\t32, 240, 73, 187, 252, 246, 182, 241, 199, 167, 119, 15, 235,\n\t\t167, 247, 127, 124, 126, 255, 241, 194, 71, 216, 226, 63,\n\t\t210, 48, 17, 71, 244, 188, 132, 164, 232, 75, 188, 64, 170,\n\t\t157, 128, 115, 231, 24, 112, 209, 72, 183, 162, 241, 116,\n\t\t165, 228, 51, 66, 128, 114, 61, 72, 110, 169, 124, 20, 134,\n\t\t62, 253, 163, 57, 206, 112, 86, 132, 40, 224, 140, 109, 238,\n\t\t25, 80, 230, 194, 146, 237, 101, 2, 228, 75, 132, 197, 225,\n\t\t134, 184, 64, 245, 154, 180, 144, 251, 145, 58, 34, 240, 183,\n\t\t50, 124, 194, 138, 87, 134, 146, 95, 167, 153, 207, 47, 217,\n\t\t246, 95, 196, 228, 125, 134, 175, 119, 193, 34, 254, 10, 24,\n\t\t92, 251, 150, 254, 110, 79, 190, 205, 43, 203, 43, 222, 241,\n\t\t156, 172, 251, 150, 183, 101, 175, 161, 125, 85, 187, 116,\n\t\t209, 62, 126, 17, 140, 247, 201, 43, 36, 243, 134, 26, 18,\n\t\t86, 79, 41, 30, 133, 22, 73, 60, 250, 150, 251, 170, 169,\n\t\t80, 220, 86, 15, 243, 252, 44, 217, 245, 241, 231, 217, 91,\n\t\t110, 206, 241, 135, 247, 191, 125, 184, 255, 252, 231, 167,\n\t\t75, 133, 236, 130, 247, 248, 44, 8, 128, 186, 167, 102, 126,\n\t\t128, 181, 201, 192, 200, 62, 3, 209, 93, 60, 137, 19, 21,\n\t\t85, 201, 30, 248, 66, 43, 27, 252, 255, 59, 34, 224, 158,\n\t\t38, 243, 19, 166, 255, 237, 5, 201, 7, 58, 185, 92, 177, 219,\n\t\t109, 198, 240, 210, 124, 24, 7, 16, 153, 203, 78, 105, 48,\n\t\t33, 19, 209, 103, 242, 20, 236, 184, 33, 9, 225, 53, 112,\n\t\t174, 182, 38, 158, 19, 224, 41, 158, 123, 78, 254, 102, 126,\n\t\t147, 195, 119, 58, 78, 110, 45, 94, 111, 236, 55, 25, 109,\n\t\t205, 134, 19, 134, 69, 55, 38, 205, 144, 166, 172, 129, 22,\n\t\t22, 212, 16, 125, 24, 161, 199, 195, 155, 187, 49, 126, 226,\n\t\t68, 23, 35, 73, 32, 31, 242, 134, 80, 167, 33, 72, 76, 113,\n\t\t171, 77, 153, 76, 244, 0, 177, 80, 228, 43, 156, 246, 60,\n\t\t42, 142, 174, 118, 136, 233, 167, 58, 60, 108, 180, 181, 179,\n\t\t92, 31, 123, 240, 181, 173, 67, 193, 67, 134, 54, 199, 216,\n\t\t89, 33, 96, 205, 23, 236, 152, 16, 120, 198, 196, 102, 22,\n\t\t244, 88, 54, 251, 224, 162, 191, 155, 252, 21, 255, 174, 103,\n\t\t111, 19, 146, 22, 125, 155, 157, 235, 43, 151, 235, 97, 76,\n\t\t88, 194, 254, 252, 227, 37, 207, 73, 187, 228, 218, 254, 71,\n\t\t8, 40, 125, 0, 143, 66, 188, 249, 235, 238, 173, 48, 203,\n\t\t160, 248, 42, 196, 85, 17, 133, 194, 100, 115, 230, 170, 80,\n\t\t43, 33, 54, 110, 241, 85, 152, 103, 194, 153, 175, 98, 94,\n\t\t80, 95, 197, 254, 176, 153, 218, 197, 80, 152, 204, 200, 94,\n\t\t69, 158, 21, 151, 141, 211, 79, 46, 230, 178, 177, 11, 71,\n\t\t115, 217, 40, 190, 231, 21, 9, 229, 58, 209, 127, 15, 246,\n\t\t170, 111, 179, 239, 29, 94, 55, 183, 110, 13, 171, 11, 144,\n\t\t143, 86, 118, 68, 37, 150, 64, 150, 152, 130, 31, 121, 125,\n\t\t74, 255, 176, 7, 253, 68, 193, 80, 8, 18, 84, 85, 67, 219,\n\t\t128, 248, 33, 196, 77, 64, 91, 91, 157, 16, 63, 216, 15, 171,\n\t\t73, 26, 7, 167, 169, 219, 115, 234, 234, 21, 36, 124, 3, 120,\n\t\t87, 160, 211, 113, 151, 133, 162, 200, 221, 18, 80, 166, 97,\n\t\t54, 212, 120, 169, 90, 244, 87, 194, 100, 85, 29, 215, 82,\n\t\t234, 193, 232, 18, 6, 20, 128, 135, 210, 202, 54, 20, 148,\n\t\t64, 127, 15, 155, 235, 85, 182, 11, 252, 6, 32, 44, 138, 182,\n\t\t52, 5, 53, 156, 93, 10, 93, 79, 8, 15, 4, 177, 121, 127, 238,\n\t\t9, 63, 68, 212, 60, 135, 176, 233, 71, 22, 167, 7, 91, 87,\n\t\t93, 82, 127, 87, 48, 126, 197, 170, 47, 201, 178, 31, 90,\n\t\t160, 142, 125, 81, 207, 215, 174, 225, 230, 97, 151, 36, 147,\n\t\t66, 195, 153, 48, 105, 65, 62, 188, 98, 243, 116, 88, 64,\n\t\t168, 217, 14, 91, 238, 178, 69, 243, 111, 130, 80, 80, 35,\n\t\t92, 155, 252, 147, 55, 87, 186, 166, 75, 20, 209, 46, 183,\n\t\t210, 189, 160, 76, 150, 142, 129, 250, 100, 128, 224, 224,\n\t\t201, 24, 41, 54, 66, 50, 38, 30, 160, 253, 210, 121, 240,\n\t\t88, 148, 33, 98, 231, 124, 107, 26, 137, 231, 45, 127, 137,\n\t\t132, 7, 190, 32, 42, 173, 27, 212, 61, 31, 4, 94, 23, 88,\n\t\t31, 70, 156, 26, 31, 20, 232, 195, 73, 0, 236, 184, 9, 122,\n\t\t86, 15, 28, 175, 188, 136, 151, 146, 8, 34, 100, 48, 0, 24,\n\t\t132, 128, 39, 73, 199, 20, 131, 207, 215, 179, 229, 120, 206,\n\t\t184, 95, 63, 189, 255, 227, 98, 226, 92, 36, 233, 158, 177,\n\t\t177, 82, 4, 58, 126, 80, 250, 128, 17, 119, 173, 72, 227,\n\t\t67, 95, 3, 162, 252, 80, 37, 62, 84, 126, 30, 95, 63, 67,\n\t\t159, 227, 211, 129, 180, 229, 233, 60, 109, 50, 77, 1, 179,\n\t\t188, 79, 84, 245, 214, 60, 153, 168, 16, 114, 229, 202, 225,\n\t\t114, 166, 34, 108, 250, 199, 204, 212, 6, 184, 200, 23, 102,\n\t\t42, 86, 153, 243, 137, 218, 198, 211, 137, 42, 22, 173, 39,\n\t\t115, 21, 82, 151, 206, 188, 39, 115, 85, 128, 194, 158, 205,\n\t\t85, 201, 36, 250, 242, 92, 29, 33, 31, 254, 170, 201, 186,\n\t\t233, 28, 125, 54, 87, 243, 213, 185, 42, 33, 126, 95, 63,\n\t\t87, 145, 36, 112, 57, 53, 51, 176, 233, 236, 125, 95, 51,\n\t\t53, 223, 114, 102, 126, 248, 237, 221, 167, 63, 62, 189, 255,\n\t\t112, 225, 187, 109, 109, 34, 87, 149, 234, 185, 137, 3, 56,\n\t\t164, 40, 217, 126, 96, 57, 251, 160, 185, 16, 164, 173, 8,\n\t\t180, 80, 161, 66, 28, 195, 132, 108, 227, 191, 162, 198, 18,\n\t\t6, 172, 37, 162, 130, 68, 158, 9, 0, 43, 81, 32, 201, 185,\n\t\t133, 3, 181, 132, 52, 0, 67, 144, 210, 98, 50, 218, 1, 185,\n\t\t130, 80, 98, 163, 101, 138, 69, 18, 121, 38, 83, 109, 76,\n\t\t10, 221, 19, 208, 5, 224, 23, 172, 161, 44, 117, 72, 120,\n\t\t110, 212, 124, 6, 74, 195, 131, 86, 87, 164, 46, 226, 226,\n\t\t31, 190, 8, 89, 240, 120, 23, 1, 228, 178, 196, 158, 124,\n\t\t107, 107, 169, 154, 161, 32, 1, 221, 60, 160, 66, 246, 128,\n\t\t248, 169, 66, 208, 198, 231, 3, 6, 187, 232, 91, 92, 3, 232,\n\t\t209, 192, 171, 30, 52, 205, 51, 90, 7, 34, 251, 78, 226, 109,\n\t\t21, 42, 166, 68, 79, 97, 128, 123, 187, 73, 102, 86, 22, 181,\n\t\t100, 210, 190, 161, 158, 66, 101, 222, 212, 164, 74, 3, 119,\n\t\t67, 234, 132, 220, 28, 77, 206, 138, 228, 71, 10, 13, 193,\n\t\t196, 130, 11, 53, 68, 18, 209, 103, 15, 107, 83, 244, 226,\n\t\t44, 10, 12, 204, 39, 60, 207, 70, 241, 80, 114, 208, 37, 148,\n\t\t147, 47, 72, 246, 98, 213, 42, 54, 110, 99, 77, 129, 171,\n\t\t34, 166, 20, 9, 120, 199, 42, 80, 4, 228, 23, 140, 60, 130,\n\t\t56, 39, 193, 170, 4, 237, 18, 225, 238, 120, 14, 193, 50,\n\t\t197, 244, 180, 18, 149, 230, 67, 10, 68, 136, 242, 21, 6,\n\t\t220, 236, 67, 28, 218, 92, 67, 18, 241, 4, 29, 154, 74, 242,\n\t\t66, 124, 175, 73, 104, 20, 119, 158, 11, 1, 171, 137, 100,\n\t\t7, 221, 226, 139, 58, 116, 214, 3, 54, 88, 201, 168, 209,\n\t\t38, 230, 123, 89, 135, 228, 135, 177, 214, 144, 134, 149,\n\t\t233, 179, 235, 192, 234, 148, 151, 188, 199, 104, 19, 150,\n\t\t171, 172, 237, 148, 164, 96, 148, 163, 182, 87, 23, 48, 160,\n\t\t146, 133, 204, 35, 147, 209, 191, 19, 48, 28, 67, 146, 31,\n\t\t242, 97, 60, 222, 81, 206, 188, 213, 164, 128, 214, 6, 178,\n\t\t226, 0, 48, 158, 34, 185, 146, 38, 228, 196, 36, 186, 107,\n\t\t50, 232, 223, 148, 20, 26, 117, 210, 245, 237, 115, 103, 210,\n\t\t202, 89, 222, 158, 139, 93, 145, 202, 70, 91, 69, 127, 23,\n\t\t106, 33, 179, 239, 227, 55, 98, 117, 146, 181, 108, 24, 38,\n\t\t42, 161, 133, 80, 47, 193, 5, 102, 57, 28, 190, 128, 102,\n\t\t126, 153, 24, 213, 168, 97, 92, 136, 60, 228, 208, 120, 24,\n\t\t157, 200, 124, 52, 223, 73, 36, 69, 39, 51, 98, 9, 26, 202,\n\t\t194, 216, 144, 81, 176, 86, 195, 8, 172, 150, 142, 135, 57,\n\t\t219, 212, 184, 52, 188, 64, 8, 19, 178, 28, 9, 148, 245, 252,\n\t\t64, 238, 75, 14, 10, 116, 157, 196, 70, 223, 131, 47, 75,\n\t\t234, 226, 146, 225, 125, 69, 136, 84, 173, 141, 145, 140,\n\t\t138, 6, 134, 15, 32, 201, 36, 73, 98, 194, 225, 37, 0, 234,\n\t\t81, 170, 197, 247, 190, 74, 119, 193, 95, 177, 80, 207, 190,\n\t\t34, 202, 92, 156, 51, 188, 237, 113, 157, 59, 33, 7, 203,\n\t\t135, 74, 37, 38, 0, 235, 142, 214, 75, 228, 185, 64, 130,\n\t\t0, 7, 172, 105, 222, 70, 246, 43, 217, 103, 2, 118, 110, 28,\n\t\t158, 52, 183, 85, 17, 210, 90, 245, 128, 254, 230, 109, 64,\n\t\t49, 157, 66, 241, 57, 37, 88, 106, 130, 100, 194, 130, 181,\n\t\t48, 183, 179, 30, 227, 97, 128, 32, 250, 88, 125, 105, 96,\n\t\t56, 35, 69, 32, 167, 36, 89, 75, 228, 213, 196, 173, 35, 88,\n\t\t173, 72, 114, 27, 171, 226, 216, 182, 141, 174, 191, 201,\n\t\t66, 82, 149, 165, 166, 177, 216, 177, 20, 181, 16, 17, 37,\n\t\t161, 194, 211, 232, 244, 166, 205, 226, 106, 146, 89, 14,\n\t\t16, 107, 56, 126, 186, 239, 188, 20, 103, 95, 148, 220, 68,\n\t\t22, 138, 96, 147, 63, 70, 219, 66, 44, 169, 64, 90, 17, 120,\n\t\t80, 50, 119, 21, 90, 93, 182, 2, 158, 183, 217, 146, 48, 121,\n\t\t169, 231, 63, 82, 3, 126, 27, 239, 166, 146, 90, 202, 51,\n\t\t30, 184, 157, 102, 104, 208, 39, 73, 237, 146, 250, 32, 107,\n\t\t218, 184, 111, 58, 238, 36, 183, 110, 41, 42, 180, 229, 34,\n\t\t3, 82, 232, 78, 19, 11, 153, 213, 3, 170, 33, 251, 12, 115,\n\t\t117, 52, 18, 74, 128, 183, 86, 211, 152, 75, 144, 70, 47,\n\t\t150, 159, 208, 162, 165, 29, 237, 152, 130, 220, 51, 130,\n\t\t11, 21, 206, 204, 165, 102, 144, 176, 147, 35, 114, 105, 5,\n\t\t105, 157, 4, 84, 103, 190, 33, 158, 165, 170, 9, 171, 167,\n\t\t190, 32, 10, 18, 242, 58, 51, 115, 99, 150, 111, 157, 35,\n\t\t80, 7, 253, 188, 102, 232, 87, 161, 209, 230, 101, 86, 100,\n\t\t18, 210, 190, 41, 240, 25, 0, 180, 182, 129, 21, 17, 251,\n\t\t103, 20, 77, 228, 192, 114, 3, 188, 92, 134, 114, 45, 183,\n\t\t185, 226, 19, 200, 143, 244, 62, 172, 178, 44, 197, 62, 222,\n\t\t101, 224, 119, 46, 41, 21, 79, 101, 109, 51, 139, 50, 8, 15,\n\t\t109, 145, 158, 38, 229, 223, 21, 183, 104, 18, 206, 115, 152,\n\t\t41, 100, 225, 49, 34, 225, 179, 155, 229, 54, 222, 156, 139,\n\t\t84, 1, 217, 148, 24, 34, 197, 236, 134, 60, 157, 168, 209,\n\t\t50, 12, 163, 157, 90, 246, 53, 46, 99, 70, 130, 151, 10, 203,\n\t\t224, 18, 240, 90, 0, 112, 133, 142, 92, 215, 104, 254, 10,\n\t\t202, 205, 215, 46, 232, 1, 188, 209, 65, 118, 87, 20, 199,\n\t\t166, 12, 163, 165, 41, 237, 78, 71, 54, 81, 169, 134, 48,\n\t\t144, 198, 230, 48, 60, 168, 72, 36, 115, 133, 39, 120, 162,\n\t\t90, 59, 18, 102, 4, 205, 35, 158, 122, 71, 82, 137, 68, 175,\n\t\t0, 91, 61, 141, 88, 96, 125, 10, 216, 35, 236, 152, 215, 196,\n\t\t216, 246, 116, 195, 29, 230, 105, 126, 132, 191, 139, 20,\n\t\t41, 219, 125, 249, 181, 160, 11, 206, 64, 43, 219, 102, 98,\n\t\t98, 36, 221, 231, 73, 103, 87, 45, 210, 163, 81, 225, 15,\n\t\t40, 54, 31, 251, 210, 130, 114, 179, 181, 228, 27, 173, 185,\n\t\t139, 49, 143, 127, 129, 102, 203, 154, 88, 229, 181, 2, 139,\n\t\t46, 245, 232, 83, 1, 52, 92, 12, 99, 237, 89, 24, 199, 213,\n\t\t221, 75, 53, 123, 94, 14, 141, 122, 41, 98, 174, 40, 244,\n\t\t115, 79, 55, 68, 223, 75, 46, 161, 214, 175, 196, 193, 198,\n\t\t230, 73, 96, 163, 82, 19, 210, 225, 152, 187, 31, 154, 215,\n\t\t171, 135, 53, 0, 202, 197, 3, 46, 183, 194, 222, 103, 127,\n\t\t88, 93, 31, 83, 94, 165, 218, 125, 17, 148, 60, 69, 2, 141,\n\t\t220, 241, 216, 252, 107, 220, 192, 96, 135, 129, 88, 37, 83,\n\t\t28, 75, 156, 8, 89, 67, 23, 91, 151, 130, 42, 21, 102, 99,\n\t\t230, 93, 22, 163, 138, 178, 164, 247, 199, 172, 81, 15, 129,\n\t\t101, 194, 13, 30, 253, 198, 251, 32, 159, 3, 45, 87, 29, 204,\n\t\t148, 101, 99, 160, 34, 189, 17, 149, 235, 154, 95, 168, 162,\n\t\t13, 94, 120, 81, 172, 12, 190, 101, 208, 63, 117, 73, 161,\n\t\t139, 62, 73, 45, 210, 34, 149, 210, 179, 199, 187, 204, 114,\n\t\t39, 171, 150, 79, 96, 191, 232, 203, 220, 67, 59, 24, 216,\n\t\t18, 243, 183, 242, 27, 93, 31, 4, 219, 159, 15, 199, 119,\n\t\t151, 6, 226, 139, 228, 247, 29, 201, 39, 101, 126, 179, 84,\n\t\t97, 60, 209, 131, 194, 44, 238, 195, 75, 182, 224, 135, 75,\n\t\t219, 239, 195, 115, 107, 175, 34, 250, 188, 221, 235, 191,\n\t\t1, 135, 232, 240, 26, 32, 34, 161, 19, 226, 94, 72, 67, 1,\n\t\t92, 162, 6, 244, 182, 184, 52, 252, 60, 180, 56, 175, 226,\n\t\t34, 244, 100, 59, 117, 122, 169, 105, 126, 160, 61, 235, 26,\n\t\t43, 243, 194, 1, 20, 201, 144, 251, 237, 40, 9, 36, 54, 204,\n\t\t187, 2, 31, 34, 127, 159, 135, 14, 119, 128, 150, 39, 246,\n\t\t71, 244, 30, 149, 184, 90, 41, 195, 242, 188, 80, 135, 215,\n\t\t150, 234, 225, 178, 134, 215, 199, 218, 167, 143, 255, 249,\n\t\t224, 62, 254, 241, 238, 50, 96, 226, 34, 169, 250, 237, 129,\n\t\t163, 18, 242, 229, 87, 1, 184, 195, 32, 177, 68, 158, 11,\n\t\t96, 9, 17, 245, 38, 176, 132, 157, 62, 195, 41, 152, 207,\n\t\t10, 140, 99, 76, 30, 25, 178, 240, 26, 144, 101, 83, 36, 15,\n\t\t243, 16, 92, 232, 24, 152, 1, 82, 179, 198, 221, 187, 182,\n\t\t36, 139, 168, 168, 26, 136, 92, 173, 31, 135, 2, 116, 235,\n\t\t133, 7, 215, 167, 114, 243, 252, 22, 167, 247, 172, 46, 238,\n\t\t1, 64, 162, 209, 193, 184, 128, 175, 58, 253, 236, 154, 244,\n\t\t113, 227, 17, 43, 67, 99, 252, 53, 150, 168, 89, 8, 153, 252,\n\t\t62, 228, 172, 33, 210, 26, 118, 221, 102, 204, 145, 28, 112,\n\t\t229, 37, 75, 219, 90, 214, 48, 44, 175, 54, 228, 225, 197,\n\t\t150, 124, 184, 236, 149, 171, 131, 236, 183, 237, 254, 225,\n\t\t193, 253, 126, 255, 233, 243, 251, 15, 239, 95, 202, 248,\n\t\t109, 191, 156, 251, 42, 66, 89, 210, 8, 62, 111, 46, 242,\n\t\t22, 128, 141, 136, 149, 27, 36, 233, 251, 84, 143, 229, 47,\n\t\t68, 208, 71, 9, 102, 201, 164, 96, 50, 199, 203, 132, 96,\n\t\t113, 58, 144, 138, 2, 105, 68, 49, 144, 217, 249, 49, 179,\n\t\t8, 126, 88, 147, 114, 59, 128, 124, 91, 122, 47, 85, 177,\n\t\t8, 218, 19, 78, 31, 121, 188, 203, 188, 169, 181, 37, 135,\n\t\t112, 116, 169, 21, 95, 226, 216, 32, 101, 244, 99, 108, 131,\n\t\t79, 111, 116, 193, 199, 95, 222, 185, 251, 127, 125, 122,\n\t\t191, 222, 95, 180, 254, 37, 107, 234, 11, 51, 189, 250, 113,\n\t\t62, 217, 61, 196, 173, 179, 249, 238, 5, 221, 225, 165, 41,\n\t\t63, 255, 164, 179, 222, 158, 157, 19, 159, 69, 86, 152, 221,\n\t\t16, 161, 44, 166, 58, 131, 148, 32, 88, 121, 236, 159, 35,\n\t\t117, 152, 99, 87, 7, 240, 4, 161, 32, 17, 123, 74, 143, 170,\n\t\t170, 115, 35, 194, 219, 70, 30, 154, 251, 240, 145, 78, 96,\n\t\t170, 135, 90, 1, 214, 33, 177, 6, 86, 211, 198, 240, 254,\n\t\t179, 127, 15, 71, 132, 172, 17, 194, 60, 17, 14, 19, 196,\n\t\t185, 40, 70, 63, 19, 223, 89, 160, 211, 124, 170, 62, 70,\n\t\t166, 205, 77, 214, 1, 138, 147, 69, 75, 115, 24, 147, 69,\n\t\t82, 22, 245, 241, 57, 161, 207, 180, 191, 11, 85, 111, 218,\n\t\t160, 99, 67, 175, 76, 190, 134, 145, 64, 76, 106, 108, 93,\n\t\t190, 137, 246, 204, 11, 8, 36, 141, 230, 199, 52, 176, 170,\n\t\t209, 191, 96, 174, 40, 202, 207, 121, 125, 173, 73, 221, 222,\n\t\t166, 56, 60, 14, 25, 137, 7, 100, 87, 74, 62, 230, 154, 124,\n\t\t201, 194, 113, 208, 1, 78, 44, 113, 8, 41, 137, 198, 86, 36,\n\t\t232, 130, 23, 208, 173, 42, 59, 140, 211, 131, 53, 90, 248,\n\t\t161, 29, 84, 99, 182, 213, 71, 240, 138, 58, 79, 143, 72,\n\t\t240, 0, 242, 162, 197, 62, 74, 225, 172, 127, 246, 162, 114,\n\t\t117, 170, 89, 127, 178, 5, 88, 82, 52, 228, 179, 224, 43,\n\t\t12, 143, 10, 221, 182, 185, 108, 96, 29, 84, 32, 213, 66,\n\t\t190, 156, 173, 41, 171, 88, 87, 91, 128, 163, 105, 167, 94,\n\t\t204, 118, 186, 205, 140, 78, 13, 174, 92, 89, 123, 107, 131,\n\t\t22, 211, 119, 169, 136, 149, 190, 88, 8, 104, 84, 143, 129,\n\t\t94, 96, 37, 184, 35, 221, 85, 178, 193, 74, 84, 76, 27, 195,\n\t\t162, 138, 217, 183, 132, 248, 85, 25, 69, 98, 188, 239, 6,\n\t\t54, 19, 71, 219, 118, 67, 106, 20, 148, 17, 8, 158, 77, 244,\n\t\t111, 137, 138, 3, 92, 206, 16, 186, 155, 18, 116, 11, 146,\n\t\t43, 57, 97, 102, 28, 78, 78, 69, 234, 245, 252, 243, 230,\n\t\t15, 104, 38, 194, 199, 97, 248, 249, 32, 65, 171, 113, 12,\n\t\t88, 250, 228, 107, 81, 4, 96, 115, 184, 11, 209, 174, 192,\n\t\t134, 213, 99, 44, 2, 22, 254, 66, 71, 238, 147, 25, 29, 121,\n\t\t66, 120, 98, 31, 245, 132, 182, 128, 173, 11, 189, 203, 159,\n\t\t232, 224, 255, 106, 137, 178, 152, 133, 4, 204, 75, 35, 146,\n\t\t1, 171, 209, 43, 29, 86, 131, 231, 27, 6, 104, 149, 247, 190,\n\t\t150, 101, 116, 130, 246, 40, 71, 109, 7, 2, 127, 134, 41,\n\t\t97, 210, 26, 119, 30, 233, 75, 241, 5, 22, 85, 179, 74, 42,\n\t\t136, 222, 70, 73, 76, 187, 52, 96, 71, 92, 139, 31, 188, 110,\n\t\t117, 223, 123, 110, 77, 112, 246, 177, 244, 143, 12, 42, 155,\n\t\t37, 14, 216, 79, 214, 168, 225, 101, 58, 72, 179, 102, 71,\n\t\t151, 121, 206, 186, 100, 230, 245, 174, 134, 82, 54, 221,\n\t\t82, 163, 128, 157, 28, 214, 32, 168, 108, 105, 137, 18, 145,\n\t\t11, 72, 21, 170, 139, 114, 179, 68, 181, 206, 84, 30, 107,\n\t\t117, 108, 230, 243, 139, 25, 152, 15, 107, 180, 156, 85, 101,\n\t\t252, 19, 67, 7, 80, 23, 10, 172, 70, 114, 58, 132, 151, 234,\n\t\t68, 100, 12, 214, 231, 139, 227, 179, 62, 147, 21, 216, 8,\n\t\t19, 47, 214, 198, 8, 40, 155, 103, 75, 227, 92, 25, 73, 162,\n\t\t149, 185, 29, 89, 41, 59, 240, 227, 50, 143, 119, 2, 69, 165,\n\t\t184, 139, 154, 119, 107, 94, 36, 181, 26, 108, 81, 99, 68,\n\t\t140, 205, 106, 37, 159, 168, 226, 2, 204, 148, 73, 95, 20,\n\t\t124, 19, 115, 14, 79, 168, 198, 90, 177, 94, 88, 149, 210,\n\t\t48, 112, 179, 229, 130, 216, 52, 79, 112, 216, 118, 95, 67,\n\t\t44, 98, 206, 228, 3, 110, 208, 40, 75, 11, 143, 244, 53, 122,\n\t\t42, 152, 185, 164, 104, 121, 213, 155, 25, 208, 115, 63, 162,\n\t\t26, 26, 186, 38, 23, 14, 220, 7, 128, 21, 12, 75, 193, 32,\n\t\t9, 190, 37, 140, 203, 170, 139, 54, 171, 160, 181, 197, 13,\n\t\t214, 124, 129, 172, 228, 45, 170, 64, 152, 80, 219, 82, 151,\n\t\t0, 236, 217, 24, 118, 78, 18, 154, 119, 170, 98, 186, 122,\n\t\t205, 238, 255, 251, 59, 222, 254, 47, 144, 39, 219, 69, 206,\n\t\t246, 207, 222, 255, 83, 10, 62, 142, 165, 71, 201, 21, 52,\n\t\t216, 196, 230, 75, 236, 9, 252, 112, 32, 146, 100, 53, 62,\n\t\t164, 38, 231, 163, 129, 117, 168, 141, 114, 226, 217, 156,\n\t\t123, 143, 157, 86, 238, 217, 33, 92, 125, 192, 77, 172, 41,\n\t\t97, 129, 87, 243, 30, 249, 82, 139, 56, 51, 5, 171, 9, 214,\n\t\t90, 9, 28, 150, 249, 34, 123, 7, 22, 183, 29, 89, 69, 131,\n\t\t171, 245, 194, 209, 213, 10, 162, 145, 49, 167, 100, 211,\n\t\t252, 68, 82, 175, 135, 201, 207, 88, 241, 225, 41, 12, 138,\n\t\t67, 57, 242, 98, 244, 160, 41, 200, 114, 165, 241, 68, 8,\n\t\t205, 15, 130, 140, 130, 109, 145, 165, 84, 245, 70, 76, 132,\n\t\t5, 113, 176, 85, 115, 158, 205, 196, 110, 217, 21, 78, 103,\n\t\t251, 119, 88, 140, 128, 50, 105, 40, 228, 240, 29, 118, 146,\n\t\t110, 244, 237, 60, 231, 235, 56, 108, 137, 148, 214, 46, 104,\n\t\t116, 163, 79, 5, 168, 135, 188, 239, 103, 150, 143, 43, 96,\n\t\t51, 130, 239, 212, 83, 25, 75, 241, 161, 100, 96, 54, 200,\n\t\t133, 53, 25, 189, 221, 210, 81, 130, 132, 201, 12, 138, 75,\n\t\t10, 94, 156, 195, 201, 15, 106, 163, 109, 99, 250, 140, 120,\n\t\t43, 42, 43, 237, 108, 169, 32, 102, 77, 134, 85, 71, 138,\n\t\t189, 52, 169, 91, 245, 194, 177, 24, 13, 147, 161, 142, 45,\n\t\t6, 250, 169, 1, 172, 220, 164, 216, 209, 73, 60, 250, 224,\n\t\t146, 135, 132, 192, 85, 29, 88, 125, 130, 207, 21, 244, 36,\n\t\t193, 15, 89, 69, 92, 48, 62, 50, 95, 146, 210, 123, 202, 133,\n\t\t228, 75, 139, 177, 129, 34, 177, 215, 26, 121, 53, 14, 176,\n\t\t69, 101, 159, 83, 41, 64, 32, 137, 129, 27, 166, 165, 150,\n\t\t182, 161, 18, 209, 16, 38, 200, 21, 110, 24, 69, 79, 130,\n\t\t182, 169, 36, 178, 230, 148, 208, 243, 163, 132, 53, 166,\n\t\t115, 49, 140, 38, 1, 98, 246, 169, 198, 196, 95, 206, 189,\n\t\t243, 179, 188, 123, 241, 187, 128, 81, 185, 245, 165, 31,\n\t\t86, 139, 60, 120, 254, 123, 22, 164, 32, 206, 198, 205, 101,\n\t\t229, 173, 208, 223, 213, 61, 127, 198, 125, 249, 97, 30, 40,\n\t\t154, 67, 128, 192, 133, 172, 206, 205, 236, 43, 111, 8, 55,\n\t\t163, 210, 1, 224, 43, 185, 35, 242, 187, 242, 166, 34, 210,\n\t\t147, 80, 120, 100, 9, 151, 211, 156, 98, 229, 198, 101, 73,\n\t\t41, 41, 140, 23, 212, 183, 147, 165, 27, 3, 79, 27, 84, 182,\n\t\t130, 217, 166, 222, 121, 26, 42, 154, 68, 117, 36, 57, 21,\n\t\t17, 96, 117, 20, 158, 156, 40, 108, 178, 46, 151, 221, 195,\n\t\t39, 98, 83, 143, 59, 231, 188, 124, 150, 66, 242, 176, 246,\n\t\t243, 151, 214, 97, 212, 152, 44, 33, 242, 122, 164, 60, 118,\n\t\t73, 192, 64, 150, 100, 240, 88, 69, 209, 167, 50, 120, 63,\n\t\t33, 14, 165, 88, 16, 172, 145, 132, 91, 168, 248, 74, 13,\n\t\t162, 136, 186, 194, 120, 171, 24, 105, 147, 32, 207, 80, 36,\n\t\t129, 135, 55, 197, 195, 58, 212, 159, 217, 69, 59, 224, 221,\n\t\t82, 177, 125, 139, 88, 114, 19, 105, 172, 17, 171, 60, 101,\n\t\t37, 225, 205, 3, 139, 96, 86, 131, 57, 117, 193, 201, 201,\n\t\t221, 112, 210, 42, 44, 254, 128, 190, 64, 138, 82, 145, 172,\n\t\t42, 132, 104, 87, 233, 11, 120, 161, 228, 52, 54, 24, 244,\n\t\t79, 64, 113, 85, 50, 222, 110, 40, 118, 19, 10, 165, 62, 89,\n\t\t54, 231, 58, 10, 215, 213, 208, 222, 192, 1, 247, 43, 228,\n\t\t52, 147, 37, 109, 197, 229, 166, 139, 44, 43, 2, 138, 108,\n\t\t28, 248, 81, 1, 156, 130, 31, 12, 124, 175, 54, 246, 52, 20,\n\t\t75, 199, 226, 102, 241, 163, 185, 162, 59, 87, 131, 110, 45,\n\t\t179, 152, 178, 84, 32, 17, 106, 201, 150, 171, 87, 133, 14,\n\t\t139, 52, 146, 37, 235, 182, 144, 20, 49, 178, 233, 82, 95,\n\t\t21, 65, 56, 248, 70, 188, 250, 193, 201, 100, 57, 115, 134,\n\t\t223, 107, 48, 209, 103, 121, 31, 177, 7, 24, 157, 155, 184,\n\t\t26, 202, 198, 210, 162, 193, 197, 74, 74, 135, 121, 19, 187,\n\t\t58, 242, 72, 195, 232, 181, 104, 243, 60, 242, 54, 177, 6,\n\t\t201, 122, 28, 8, 191, 16, 91, 84, 220, 253, 163, 104, 213,\n\t\t62, 208, 119, 32, 177, 17, 96, 183, 42, 109, 192, 115, 190,\n\t\t217, 210, 170, 222, 216, 169, 204, 233, 92, 134, 199, 86,\n\t\t238, 233, 66, 64, 187, 129, 65, 86, 220, 244, 3, 81, 8, 172,\n\t\t228, 198, 216, 138, 144, 179, 10, 244, 116, 246, 33, 21, 2,\n\t\t26, 153, 101, 231, 217, 21, 146, 184, 209, 195, 3, 249, 30,\n\t\t90, 149, 80, 237, 150, 42, 175, 31, 79, 111, 225, 78, 148,\n\t\t18, 71, 137, 105, 89, 231, 230, 160, 110, 205, 165, 155, 167,\n\t\t190, 75, 8, 251, 162, 4, 193, 120, 41, 28, 159, 175, 16, 140,\n\t\t30, 222, 95, 26, 69, 46, 208, 71, 126, 182, 80, 20, 19, 43,\n\t\t186, 11, 13, 184, 73, 72, 23, 149, 40, 161, 96, 235, 142,\n\t\t79, 56, 52, 224, 13, 166, 75, 29, 27, 77, 73, 206, 93, 128,\n\t\t228, 28, 120, 151, 21, 118, 47, 32, 32, 14, 193, 64, 149,\n\t\t101, 222, 76, 97, 182, 103, 218, 133, 99, 18, 172, 198, 47,\n\t\t39, 230, 53, 141, 242, 101, 161, 75, 96, 29, 93, 210, 91,\n\t\t73, 173, 154, 51, 174, 122, 46, 188, 230, 48, 46, 34, 60,\n\t\t177, 26, 32, 19, 50, 170, 235, 85, 250, 149, 20, 145, 113,\n\t\t39, 48, 102, 129, 151, 55, 31, 243, 79, 39, 97, 132, 134,\n\t\t37, 8, 250, 118, 157, 99, 35, 88, 164, 177, 38, 160, 32, 177,\n\t\t0, 43, 17, 46, 172, 142, 160, 101, 138, 80, 22, 20, 106, 26,\n\t\t62, 232, 32, 151, 14, 170, 137, 74, 180, 148, 181, 20, 139,\n\t\t143, 34, 143, 41, 26, 97, 18, 142, 242, 99, 141, 16, 202,\n\t\t121, 129, 199, 84, 97, 49, 72, 202, 98, 171, 147, 238, 156,\n\t\t251, 234, 52, 148, 218, 146, 127, 39, 163, 175, 253, 146,\n\t\t250, 242, 53, 193, 131, 226, 68, 179, 196, 210, 176, 89, 48,\n\t\t163, 68, 215, 6, 214, 246, 218, 180, 45, 97, 79, 234, 80,\n\t\t215, 187, 6, 230, 113, 227, 195, 205, 172, 23, 142, 85, 194,\n\t\t82, 14, 87, 19, 245, 53, 192, 145, 37, 143, 41, 128, 137,\n\t\t204, 208, 45, 147, 200, 132, 8, 93, 225, 54, 232, 116, 252,\n\t\t10, 253, 253, 42, 169, 226, 236, 89, 214, 210, 214, 180, 176,\n\t\t10, 40, 113, 35, 249, 172, 29, 5, 193, 23, 231, 71, 147, 22,\n\t\t214, 162, 113, 79, 66, 20, 205, 10, 179, 70, 0, 152, 178,\n\t\t208, 100, 133, 127, 60, 192, 218, 216, 7, 122, 108, 123, 66,\n\t\t117, 45, 0, 138, 207, 42, 140, 207, 246, 125, 217, 121, 210,\n\t\t159, 144, 217, 13, 40, 127, 132, 17, 87, 9, 185, 145, 208,\n\t\t125, 1, 15, 79, 150, 32, 110, 23, 180, 158, 39, 94, 142, 83,\n\t\t96, 169, 114, 34, 211, 19, 34, 241, 242, 194, 11, 232, 146,\n\t\t143, 78, 231, 21, 191, 85, 130, 151, 130, 44, 177, 162, 98,\n\t\t203, 30, 228, 210, 204, 191, 246, 189, 135, 94, 89, 182, 83,\n\t\t216, 26, 161, 75, 21, 105, 151, 39, 89, 158, 8, 169, 60, 150,\n\t\t42, 170, 20, 13, 243, 244, 252, 61, 124, 229, 200, 87, 88,\n\t\t172, 231, 207, 195, 150, 113, 110, 54, 65, 71, 178, 120, 68,\n\t\t158, 68, 115, 214, 200, 23, 232, 55, 67, 6, 131, 132, 81,\n\t\t240, 248, 205, 2, 116, 39, 129, 181, 51, 186, 48, 107, 98,\n\t\t117, 54, 43, 102, 83, 88, 75, 189, 128, 100, 173, 208, 37,\n\t\t146, 36, 16, 53, 234, 82, 26, 150, 202, 209, 22, 185, 147,\n\t\t176, 118, 215, 154, 66, 135, 77, 177, 106, 176, 130, 207,\n\t\t61, 228, 118, 216, 16, 89, 66, 144, 71, 16, 178, 117, 102,\n\t\t69, 181, 96, 164, 52, 35, 23, 85, 42, 112, 197, 151, 1, 74,\n\t\t224, 164, 36, 147, 105, 136, 204, 11, 67, 34, 130, 223, 45,\n\t\t98, 135, 95, 35, 137, 85, 69, 163, 0, 179, 233, 103, 118,\n\t\t161, 201, 180, 60, 193, 186, 21, 66, 20, 163, 215, 212, 212,\n\t\t120, 251, 21, 27, 79, 200, 173, 99, 152, 165, 10, 135, 141,\n\t\t245, 53, 207, 137, 22, 211, 102, 195, 205, 198, 221, 97, 101,\n\t\t169, 105, 78, 147, 231, 19, 114, 94, 56, 170, 168, 190, 146,\n\t\t142, 100, 30, 116, 82, 231, 160, 125, 144, 116, 28, 4, 9,\n\t\t41, 139, 91, 212, 148, 153, 34, 8, 208, 188, 229, 212, 92,\n\t\t249, 129, 156, 225, 209, 103, 17, 33, 245, 4, 243, 10, 171,\n\t\t223, 11, 203, 21, 137, 234, 188, 176, 86, 157, 236, 0, 175,\n\t\t42, 131, 251, 39, 249, 66, 42, 235, 142, 88, 17, 151, 215,\n\t\t83, 239, 13, 134, 54, 161, 10, 149, 131, 189, 106, 18, 83,\n\t\t252, 124, 9, 176, 11, 71, 197, 182, 254, 138, 213, 119, 168,\n\t\t129, 65, 127, 177, 210, 216, 235, 219, 148, 252, 158, 60,\n\t\t123, 93, 140, 248, 244, 254, 247, 251, 23, 48, 130, 254, 245,\n\t\t26, 25, 226, 199, 186, 80, 115, 94, 114, 63, 229, 32, 172,\n\t\t110, 253, 186, 47, 245, 168, 79, 80, 200, 120, 164, 175, 110,\n\t\t119, 15, 190, 228, 249, 59, 185, 46, 212, 109, 223, 228, 169,\n\t\t61, 188, 222, 85, 27, 67, 159, 245, 232, 39, 151, 195, 17,\n\t\t34, 81, 232, 179, 172, 231, 151, 91, 124, 233, 102, 30, 100,\n\t\t151, 55, 167, 84, 95, 184, 25, 192, 22, 47, 220, 252, 45,\n\t\t78, 211, 23, 171, 116, 120, 201, 105, 122, 151, 70, 92, 122,\n\t\t56, 117, 227, 224, 59, 94, 251, 148, 220, 206, 165, 236, 130,\n\t\t210, 223, 108, 145, 127, 250, 253, 163, 211, 10, 92, 207,\n\t\t69, 252, 237, 211, 251, 11, 167, 127, 191, 64, 181, 122, 243,\n\t\t17, 139, 38, 110, 241, 214, 200, 123, 161, 249, 94, 19, 9,\n\t\t240, 120, 7, 195, 225, 55, 189, 255, 240, 186, 15, 160, 138,\n\t\t117, 173, 154, 36, 16, 36, 100, 148, 197, 83, 241, 208, 231,\n\t\t228, 251, 50, 52, 240, 141, 212, 247, 52, 17, 64, 134, 81,\n\t\t9, 145, 122, 174, 162, 134, 199, 144, 228, 210, 174, 46, 5,\n\t\t47, 26, 153, 134, 22, 187, 102, 222, 226, 157, 242, 40, 38,\n\t\t79, 243, 252, 193, 141, 40, 1, 11, 98, 185, 199, 31, 245,\n\t\t111, 130, 138, 43, 32, 106, 38, 8, 40, 70, 186, 171, 147,\n\t\t41, 214, 2, 118, 172, 12, 67, 155, 166, 148, 165, 39, 139,\n\t\t107, 72, 231, 245, 179, 211, 155, 35, 238, 37, 247, 127, 191,\n\t\t0, 116, 122, 251, 81, 199, 29, 176, 240, 191, 73, 178, 216,\n\t\t130, 134, 121, 170, 197, 201, 90, 54, 85, 179, 41, 25, 172,\n\t\t99, 81, 200, 249, 61, 192, 141, 186, 53, 168, 14, 160, 170,\n\t\t17, 244, 207, 31, 145, 52, 10, 9, 126, 154, 125, 104, 189,\n\t\t161, 189, 16, 14, 43, 69, 141, 245, 232, 51, 230, 67, 48,\n\t\t83, 170, 177, 102, 137, 163, 219, 94, 123, 150, 207, 221,\n\t\t103, 72, 139, 140, 82, 45, 137, 187, 120, 164, 47, 52, 5,\n\t\t65, 101, 250, 221, 227, 97, 172, 40, 143, 119, 84, 190, 179,\n\t\t153, 14, 111, 214, 78, 127, 167, 102, 146, 37, 224, 240, 237,\n\t\t107, 0, 238, 250, 73, 75, 192, 183, 172, 0, 135, 31, 186,\n\t\t4, 252, 242, 238, 254, 130, 218, 167, 95, 224, 243, 188, 253,\n\t\t26, 192, 59, 15, 130, 198, 211, 196, 252, 44, 214, 20, 113,\n\t\t175, 176, 246, 82, 147, 86, 67, 226, 147, 230, 55, 116, 73,\n\t\t64, 210, 56, 0, 67, 241, 50, 170, 188, 236, 203, 6, 90, 180,\n\t\t182, 154, 140, 164, 45, 110, 156, 3, 214, 227, 137, 21, 70,\n\t\t61, 145, 249, 31, 0, 107, 29, 147, 146, 157, 53, 29, 50, 73,\n\t\t52, 75, 185, 19, 47, 119, 212, 118, 138, 239, 105, 112, 44,\n\t\t58, 146, 178, 186, 121, 41, 203, 104, 200, 30, 134, 126, 212,\n\t\t44, 71, 77, 210, 154, 145, 133, 54, 178, 75, 181, 99, 221,\n\t\t62, 127, 72, 35, 5, 85, 91, 100, 114, 94, 54, 210, 225, 107,\n\t\t90, 233, 239, 213, 72, 95, 35, 2, 28, 254, 22, 243, 31, 109,\n\t\t119, 57, 255, 223, 120, 239, 231, 137, 239, 30, 254, 243,\n\t\t238, 254, 82, 4, 184, 68, 239, 9, 121, 50, 123, 213, 37, 197,\n\t\t176, 34, 178, 5, 41, 173, 220, 86, 248, 201, 176, 158, 192,\n\t\t25, 80, 150, 170, 38, 195, 172, 182, 199, 38, 6, 241, 85,\n\t\t75, 173, 146, 219, 80, 242, 34, 61, 133, 109, 141, 199, 209,\n\t\t204, 5, 1, 242, 4, 143, 77, 123, 143, 176, 218, 243, 96, 176,\n\t\t11, 246, 230, 176, 184, 40, 110, 95, 214, 217, 27, 138, 228,\n\t\t114, 123, 68, 145, 99, 103, 253, 87, 231, 204, 132, 237, 176,\n\t\t177, 6, 210, 13, 137, 24, 216, 211, 80, 102, 71, 75, 48, 104,\n\t\t133, 175, 16, 135, 163, 155, 109, 202, 17, 130, 219, 190,\n\t\t97, 197, 91, 139, 88, 131, 151, 176, 0, 235, 80, 199, 16,\n\t\t165, 202, 35, 39, 203, 58, 182, 154, 27, 193, 17, 124, 76,\n\t\t65, 99, 26, 236, 234, 188, 162, 19, 2, 193, 150, 202, 135,\n\t\t147, 138, 238, 163, 109, 44, 61, 240, 207, 92, 100, 15, 63,\n\t\t96, 1, 177, 85, 246, 75, 11, 200, 79, 91, 63, 202, 213, 181,\n\t\t227, 240, 149, 139, 199, 207, 91, 97, 223, 180, 129, 14, 175,\n\t\t111, 161, 175, 108, 160, 175, 89, 93, 159, 44, 174, 178, 86,\n\t\t61, 173, 227, 15, 88, 92, 15, 55, 87, 215, 175, 148, 174,\n\t\t126, 232, 26, 123, 124, 119, 255, 233, 243, 69, 140, 79, 191,\n\t\t64, 23, 122, 115, 241, 106, 232, 114, 28, 107, 246, 25, 203,\n\t\t138, 52, 135, 88, 64, 103, 248, 100, 38, 25, 93, 49, 107,\n\t\t55, 100, 129, 86, 223, 90, 176, 214, 239, 210, 178, 70, 59,\n\t\t231, 102, 108, 188, 52, 144, 140, 254, 178, 84, 120, 85, 248,\n\t\t147, 213, 224, 241, 12, 26, 43, 234, 202, 231, 154, 134, 10,\n\t\t102, 163, 103, 138, 26, 176, 159, 49, 46, 73, 41, 128, 19,\n\t\t180, 19, 68, 231, 74, 238, 57, 23, 83, 192, 131, 248, 197,\n\t\t155, 67, 228, 45, 6, 246, 230, 154, 229, 43, 73, 168, 219,\n\t\t106, 5, 94, 148, 53, 216, 37, 61, 119, 102, 98, 200, 54, 55,\n\t\t163, 60, 243, 117, 99, 252, 170, 4, 81, 126, 196, 8, 191,\n\t\t57, 192, 17, 107, 183, 3, 181, 253, 184, 225, 125, 151, 58,\n\t\t249, 12, 46, 180, 116, 88, 99, 144, 157, 88, 147, 25, 146,\n\t\t46, 109, 81, 245, 53, 27, 50, 58, 98, 0, 34, 5, 106, 160,\n\t\t201, 96, 25, 229, 10, 82, 132, 113, 193, 90, 62, 146, 118,\n\t\t164, 117, 158, 211, 54, 229, 174, 213, 158, 93, 93, 177, 181,\n\t\t171, 27, 158, 65, 148, 199, 83, 208, 157, 14, 195, 34, 90,\n\t\t67, 71, 50, 106, 7, 29, 102, 160, 104, 148, 158, 54, 159,\n\t\t140, 13, 56, 46, 74, 153, 35, 214, 205, 33, 107, 65, 201,\n\t\t220, 253, 2, 74, 39, 85, 18, 137, 224, 246, 252, 127, 248,\n\t\t63, 127, 190, 0, 156, 209, 203, 79, 159, 255, 177, 147, 239,\n\t\t75, 44, 193, 167, 125, 246, 91, 200, 238, 52, 94, 22, 105,\n\t\t80, 9, 143, 131, 219, 168, 67, 194, 91, 49, 202, 156, 113,\n\t\t135, 101, 233, 0, 227, 8, 167, 34, 205, 70, 29, 232, 166,\n\t\t88, 217, 179, 204, 241, 237, 217, 249, 97, 181, 192, 76, 178,\n\t\t69, 96, 79, 52, 158, 106, 191, 190, 237, 241, 142, 168, 115,\n\t\t169, 123, 240, 105, 190, 201, 217, 171, 221, 243, 43, 171,\n\t\t155, 81, 159, 230, 176, 158, 209, 229, 81, 167, 191, 189,\n\t\t221, 81, 231, 186, 229, 190, 154, 56, 41, 109, 208, 230, 109,\n\t\t218, 18, 214, 16, 78, 238, 230, 249, 134, 143, 214, 253, 205,\n\t\t79, 26, 208, 222, 254, 61, 118, 136, 55, 218, 42, 111, 46,\n\t\t36, 175, 214, 67, 126, 172, 5, 66, 38, 137, 251, 252, 238,\n\t\t254, 211, 229, 86, 89, 39, 17, 123, 24, 190, 46, 137, 229,\n\t\t227, 213, 217, 86, 226, 246, 152, 44, 27, 80, 179, 203, 89,\n\t\t20, 210, 96, 244, 25, 18, 105, 28, 241, 20, 151, 6, 121, 190,\n\t\t202, 126, 215, 187, 246, 194, 80, 49, 92, 91, 191, 4, 77,\n\t\t99, 233, 210, 112, 205, 70, 173, 201, 123, 64, 141, 145, 70,\n\t\t215, 3, 82, 84, 88, 87, 104, 217, 165, 194, 38, 157, 117,\n\t\t16, 186, 125, 73, 74, 177, 131, 106, 38, 183, 104, 3, 186,\n\t\t107, 64, 158, 211, 242, 61, 222, 81, 136, 62, 243, 218, 138,\n\t\t190, 183, 234, 207, 218, 159, 205, 38, 169, 253, 144, 253,\n\t\t82, 106, 239, 172, 250, 59, 155, 63, 241, 120, 1, 237, 187,\n\t\t53, 129, 179, 54, 0, 179, 39, 6, 214, 100, 99, 44, 19, 115,\n\t\t167, 155, 82, 161, 131, 207, 106, 120, 192, 99, 40, 253, 121,\n\t\t139, 200, 104, 179, 237, 125, 66, 181, 232, 211, 171, 53,\n\t\t129, 253, 90, 75, 88, 67, 88, 59, 204, 102, 200, 148, 61,\n\t\t45, 41, 176, 16, 19, 225, 205, 159, 98, 171, 89, 18, 192,\n\t\t185, 201, 235, 213, 90, 172, 129, 135, 73, 187, 8, 27, 233,\n\t\t62, 34, 7, 149, 52, 191, 98, 248, 20, 104, 117, 221, 114,\n\t\t4, 251, 148, 70, 2, 160, 3, 177, 97, 200, 93, 243, 185, 93,\n\t\t190, 54, 34, 224, 110, 172, 198, 81, 63, 143, 130, 172, 198,\n\t\t179, 168, 9, 133, 252, 199, 108, 237, 147, 213, 192, 169,\n\t\t191, 64, 253, 82, 9, 28, 42, 172, 201, 227, 86, 51, 167, 116,\n\t\t162, 4, 196, 123, 173, 156, 213, 205, 25, 84, 140, 84, 208,\n\t\t234, 103, 213, 179, 218, 89, 229, 164, 110, 0, 47, 150, 154,\n\t\t205, 138, 185, 169, 57, 156, 113, 28, 235, 21, 84, 78, 68,\n\t\t14, 20, 6, 176, 76, 186, 12, 6, 155, 89, 94, 243, 129, 180,\n\t\t154, 86, 75, 171, 174, 0, 36, 181, 37, 229, 184, 97, 60, 78,\n\t\t30, 108, 68, 174, 73, 23, 168, 112, 57, 167, 57, 85, 93, 252,\n\t\t208, 35, 4, 45, 42, 104, 166, 40, 160, 183, 84, 103, 183,\n\t\t21, 200, 210, 56, 167, 145, 92, 55, 153, 164, 139, 121, 81,\n\t\t125, 42, 203, 136, 60, 108, 78, 247, 135, 18, 109, 18, 72,\n\t\t81, 38, 116, 167, 9, 173, 36, 8, 7, 82, 87, 60, 195, 74, 99,\n\t\t246, 18, 70, 214, 166, 196, 64, 73, 5, 110, 11, 157, 50, 149,\n\t\t43, 162, 115, 101, 149, 71, 236, 16, 247, 49, 87, 102, 141,\n\t\t42, 93, 168, 216, 107, 217, 163, 86, 119, 84, 27, 45, 176,\n\t\t161, 197, 230, 108, 22, 104, 22, 29, 56, 58, 209, 105, 110,\n\t\t27, 218, 4, 38, 156, 234, 212, 58, 108, 90, 211, 69, 107,\n\t\t206, 194, 30, 228, 246, 230, 203, 154, 53, 214, 41, 235, 126,\n\t\t81, 187, 166, 237, 167, 89, 166, 230, 235, 58, 229, 181, 49,\n\t\t71, 129, 14, 194, 174, 242, 185, 182, 29, 86, 61, 45, 79,\n\t\t55, 205, 194, 250, 166, 38, 93, 48, 91, 213, 85, 111, 168,\n\t\t69, 135, 119, 120, 249, 211, 60, 168, 88, 216, 234, 220, 36,\n\t\t205, 18, 210, 170, 202, 23, 123, 226, 251, 204, 236, 155,\n\t\t130, 249, 84, 60, 162, 20, 46, 8, 70, 170, 246, 143, 169,\n\t\t66, 54, 237, 52, 107, 109, 65, 78, 155, 28, 175, 153, 150,\n\t\t176, 116, 101, 59, 138, 100, 78, 136, 234, 27, 111, 21, 249,\n\t\t22, 104, 182, 108, 119, 159, 95, 218, 231, 218, 79, 23, 9,\n\t\t135, 82, 212, 198, 54, 120, 75, 173, 58, 250, 28, 33, 50,\n\t\t77, 86, 156, 41, 80, 229, 125, 88, 67, 248, 138, 38, 233,\n\t\t104, 156, 214, 198, 98, 66, 202, 42, 154, 208, 158, 117, 107,\n\t\t207, 209, 66, 128, 162, 147, 4, 164, 164, 211, 132, 170, 138,\n\t\t137, 182, 248, 146, 60, 199, 202, 162, 244, 162, 229, 70,\n\t\t81, 92, 180, 211, 9, 233, 55, 162, 30, 84, 80, 167, 143, 145,\n\t\t185, 64, 88, 172, 162, 12, 180, 169, 159, 102, 147, 55, 77,\n\t\t190, 138, 54, 254, 180, 4, 9, 231, 155, 211, 23, 45, 69, 242,\n\t\t19, 16, 184, 205, 47, 154, 75, 92, 153, 70, 175, 253, 48,\n\t\t201, 112, 15, 250, 140, 211, 135, 126, 132, 10, 249, 179,\n\t\t133, 63, 149, 151, 223, 70, 145, 204, 129, 151, 252, 88, 139,\n\t\t31, 32, 82, 193, 71, 246, 174, 145, 209, 118, 214, 53, 154,\n\t\t66, 40, 157, 255, 98, 223, 216, 134, 97, 125, 211, 109, 221,\n\t\t59, 59, 126, 161, 119, 138, 189, 79, 54, 205, 242, 124, 220,\n\t\t155, 93, 245, 133, 97, 143, 245, 250, 187, 134, 253, 225,\n\t\t197, 113, 47, 55, 202, 131, 95, 59, 236, 111, 175, 54, 47,\n\t\t75, 213, 23, 40, 54, 53, 7, 227, 225, 131, 164, 73, 131, 252,\n\t\t248, 27, 202, 153, 223, 34, 102, 30, 190, 94, 206, 172, 177,\n\t\t240, 142, 94, 139, 167, 117, 150, 110, 42, 7, 54, 76, 76,\n\t\t59, 56, 211, 66, 90, 216, 43, 247, 84, 47, 112, 69, 144, 23,\n\t\t117, 175, 51, 123, 218, 89, 197, 76, 69, 53, 177, 213, 196,\n\t\t140, 93, 63, 80, 5, 188, 91, 158, 206, 252, 174, 117, 84,\n\t\t158, 61, 36, 218, 79, 57, 172, 179, 43, 172, 115, 164, 59,\n\t\t40, 154, 210, 115, 166, 101, 228, 81, 185, 239, 91, 243, 99,\n\t\t157, 107, 81, 87, 89, 201, 232, 46, 28, 133, 224, 51, 68,\n\t\t1, 25, 186, 161, 66, 196, 148, 132, 58, 226, 27, 150, 8, 180,\n\t\t59, 20, 9, 36, 72, 101, 229, 253, 94, 87, 170, 172, 173, 70,\n\t\t81, 217, 213, 129, 50, 87, 144, 204, 195, 103, 15, 142, 26,\n\t\t203, 133, 197, 68, 39, 249, 35, 197, 178, 242, 80, 196, 192,\n\t\t163, 37, 78, 67, 159, 125, 39, 114, 117, 139, 14, 204, 42,\n\t\t120, 54, 42, 22, 106, 89, 185, 168, 249, 92, 38, 215, 200,\n\t\t137, 235, 98, 121, 247, 207, 82, 212, 201, 134, 114, 84, 19,\n\t\t23, 114, 161, 130, 160, 111, 138, 181, 106, 90, 245, 99, 94,\n\t\t136, 7, 204, 18, 161, 2, 196, 204, 45, 140, 227, 135, 152,\n\t\t162, 111, 66, 77, 170, 215, 29, 254, 176, 138, 205, 126, 138,\n\t\t47, 186, 230, 68, 147, 98, 178, 201, 174, 65, 28, 86, 206,\n\t\t12, 106, 105, 218, 71, 197, 13, 160, 227, 213, 93, 138, 224,\n\t\t57, 132, 255, 231, 230, 184, 238, 230, 248, 59, 54, 208, 247,\n\t\t133, 35, 252, 208, 6, 74, 49, 188, 90, 192, 249, 106, 39,\n\t\t251, 225, 45, 4, 156, 242, 146, 19, 72, 222, 244, 61, 178,\n\t\t205, 237, 29, 248, 227, 135, 223, 254, 188, 8, 71, 238, 87,\n\t\t0, 196, 110, 8, 252, 146, 14, 83, 125, 90, 92, 109, 60, 205,\n\t\t89, 253, 112, 4, 177, 45, 197, 185, 105, 147, 118, 159, 0,\n\t\t41, 202, 81, 14, 167, 92, 88, 213, 84, 221, 70, 197, 142,\n\t\t37, 39, 233, 59, 180, 112, 182, 220, 53, 25, 250, 111, 238,\n\t\t224, 120, 181, 11, 239, 245, 178, 169, 201, 109, 113, 223,\n\t\t232, 117, 41, 84, 103, 132, 213, 209, 105, 37, 79, 46, 43,\n\t\t160, 201, 12, 42, 181, 245, 215, 188, 237, 3, 112, 70, 110,\n\t\t96, 235, 179, 141, 128, 155, 185, 88, 243, 71, 112, 18, 115,\n\t\t175, 93, 134, 130, 87, 196, 46, 31, 126, 64, 240, 242, 203,\n\t\t177, 203, 63, 44, 54, 250, 197, 215, 199, 193, 93, 210, 196,\n\t\t166, 113, 6, 185, 28, 164, 145, 112, 84, 22, 203, 111, 91,\n\t\t72, 96, 214, 1, 102, 225, 132, 152, 214, 37, 101, 19, 22,\n\t\t172, 90, 32, 212, 192, 152, 83, 109, 73, 172, 60, 118, 52,\n\t\t174, 111, 127, 111, 85, 211, 70, 180, 209, 100, 23, 170, 44,\n\t\t93, 167, 154, 166, 132, 102, 248, 92, 196, 157, 101, 34, 164,\n\t\t9, 167, 166, 232, 87, 209, 31, 212, 196, 167, 58, 127, 54,\n\t\t97, 173, 201, 234, 73, 182, 147, 170, 37, 34, 90, 160, 133,\n\t\t126, 201, 194, 27, 231, 185, 17, 39, 111, 58, 71, 228, 185,\n\t\t195, 154, 100, 213, 53, 83, 144, 172, 236, 106, 230, 179,\n\t\t175, 234, 71, 95, 187, 146, 124, 201, 169, 116, 13, 34, 238,\n\t\t187, 186, 239, 159, 214, 123, 135, 31, 213, 125, 95, 213,\n\t\t123, 111, 191, 106, 31, 126, 216, 178, 253, 211, 140, 10,\n\t\t95, 229, 154, 62, 252, 253, 150, 237, 200, 175, 93, 34, 15,\n\t\t95, 147, 211, 118, 71, 161, 142, 164, 239, 116, 20, 30, 126,\n\t\t188, 103, 19, 220, 71, 172, 49, 141, 225, 219, 77, 159, 236,\n\t\t170, 146, 170, 46, 250, 218, 242, 151, 238, 88, 212, 204,\n\t\t229, 179, 160, 180, 51, 255, 177, 180, 235, 151, 252, 199,\n\t\t135, 215, 58, 144, 95, 189, 6, 254, 231, 253, 135, 127, 95,\n\t\t172, 128, 191, 220, 192, 100, 173, 249, 47, 2, 77, 253, 254,\n\t\t185, 255, 85, 83, 255, 31, 106, 80, 252, 198, 217, 127, 120,\n\t\t187, 233, 79, 131, 155, 172, 172, 221, 222, 106, 17, 75, 134,\n\t\t19, 58, 83, 250, 151, 24, 44, 44, 114, 117, 64, 56, 151, 54,\n\t\t75, 26, 105, 50, 149, 170, 162, 214, 42, 189, 176, 114, 109,\n\t\t161, 156, 7, 168, 147, 106, 97, 177, 28, 136, 98, 54, 23,\n\t\t189, 29, 224, 253, 58, 217, 116, 23, 164, 105, 149, 208, 192,\n\t\t38, 26, 118, 135, 148, 7, 170, 96, 247, 101, 157, 6, 38, 139,\n\t\t193, 213, 161, 100, 231, 149, 150, 160, 248, 183, 173, 174,\n\t\t214, 92, 224, 86, 138, 234, 147, 18, 194, 36, 119, 118, 170,\n\t\t28, 74, 160, 87, 178, 203, 198, 181, 116, 126, 46, 151, 190,\n\t\t71, 146, 60, 252, 19, 101, 145, 31, 37, 138, 252, 96, 73,\n\t\t242, 197, 229, 243, 10, 242, 104, 88, 104, 124, 97, 150, 60,\n\t\t124, 163, 67, 234, 241, 46, 134, 160, 121, 171, 95, 78, 159,\n\t\t124, 173, 138, 114, 145, 29, 248, 120, 151, 88, 229, 194,\n\t\t228, 45, 47, 79, 92, 49, 212, 236, 19, 247, 240, 150, 51,\n\t\t247, 201, 196, 149, 158, 198, 150, 248, 131, 102, 45, 241,\n\t\t134, 45, 0, 250, 215, 130, 94, 191, 47, 148, 231, 129, 82,\n\t\t246, 245, 182, 141, 71, 90, 224, 39, 39, 83, 222, 26, 244,\n\t\t127, 56, 140, 237, 143, 31, 62, 223, 95, 208, 51, 246, 75,\n\t\t208, 189, 220, 117, 232, 243, 180, 170, 129, 21, 107, 208,\n\t\t28, 64, 177, 70, 104, 4, 162, 38, 52, 17, 91, 22, 38, 187,\n\t\t103, 254, 89, 199, 43, 255, 119, 196, 170, 180, 191, 197,\n\t\t201, 128, 157, 183, 165, 120, 18, 150, 79, 189, 227, 236,\n\t\t11, 146, 71, 140, 197, 179, 252, 196, 194, 28, 110, 149, 38,\n\t\t211, 79, 44, 205, 173, 194, 192, 202, 31, 127, 72, 89, 14,\n\t\t223, 93, 24, 238, 167, 31, 85, 154, 239, 46, 12, 119, 211,\n\t\t107, 10, 115, 248, 25, 165, 185, 57, 73, 79, 239, 62, 125,\n\t\t126, 191, 190, 48, 69, 47, 32, 160, 82, 12, 251, 20, 205,\n\t\t84, 111, 86, 240, 103, 212, 143, 203, 18, 203, 79, 42, 203,\n\t\t205, 25, 58, 234, 50, 126, 82, 89, 110, 21, 37, 246, 254,\n\t\t195, 58, 233, 7, 76, 208, 222, 127, 94, 55, 189, 166, 48,\n\t\t175, 232, 166, 191, 124, 126, 30, 223, 221, 255, 250, 199,\n\t\t241, 227, 135, 119, 15, 47, 226, 6, 252, 203, 34, 117, 169,\n\t\t134, 47, 236, 11, 153, 87, 105, 148, 21, 252, 71, 39, 240,\n\t\t227, 119, 32, 197, 162, 220, 226, 22, 222, 139, 172, 44, 73,\n\t\t103, 143, 28, 29, 112, 172, 138, 188, 43, 44, 74, 231, 218,\n\t\t72, 149, 12, 64, 220, 156, 170, 240, 219, 173, 96, 132, 7,\n\t\t143, 147, 81, 190, 234, 29, 203, 126, 243, 145, 170, 200,\n\t\t138, 92, 228, 253, 197, 166, 207, 144, 106, 46, 242, 98, 87,\n\t\t141, 57, 79, 244, 16, 197, 246, 219, 249, 100, 141, 210, 117,\n\t\t63, 145, 18, 95, 246, 74, 149, 180, 245, 197, 218, 98, 111,\n\t\t10, 150, 134, 233, 172, 119, 164, 21, 246, 91, 81, 98, 222,\n\t\t98, 48, 159, 50, 107, 201, 75, 88, 34, 232, 15, 89, 188, 28,\n\t\t158, 18, 143, 110, 214, 164, 185, 141, 73, 113, 246, 21, 80,\n\t\t234, 25, 179, 62, 160, 194, 81, 198, 167, 12, 252, 79, 185,\n\t\t183, 79, 68, 17, 203, 13, 101, 95, 27, 36, 66, 148, 46, 134,\n\t\t230, 17, 89, 215, 229, 16, 210, 167, 220, 50, 73, 163, 228,\n\t\t207, 252, 136, 96, 1, 226, 76, 238, 254, 129, 165, 91, 243,\n\t\t196, 98, 174, 190, 55, 208, 68, 13, 66, 59, 232, 127, 55,\n\t\t7, 247, 195, 187, 139, 81, 61, 194, 28, 213, 131, 245, 173,\n\t\t48, 75, 124, 125, 38, 190, 56, 74, 207, 72, 135, 79, 89, 71,\n\t\t39, 238, 216, 71, 167, 252, 255, 120, 99, 161, 148, 1, 107,\n\t\t179, 225, 234, 140, 151, 210, 126, 113, 202, 83, 189, 28,\n\t\t243, 147, 68, 185, 230, 19, 140, 119, 50, 214, 147, 0, 218,\n\t\t159, 85, 195, 77, 165, 158, 7, 99, 238, 43, 229, 232, 129,\n\t\t5, 134, 193, 8, 191, 55, 119, 219, 249, 96, 172, 5, 36, 167,\n\t\t136, 81, 16, 254, 181, 28, 140, 65, 62, 8, 113, 216, 197,\n\t\t193, 17, 252, 136, 45, 174, 19, 78, 223, 242, 142, 141, 60,\n\t\t183, 47, 172, 136, 234, 41, 206, 150, 220, 143, 41, 174, 251,\n\t\t3, 80, 68, 247, 59, 92, 238, 71, 10, 252, 214, 195, 26, 147,\n\t\t79, 37, 112, 11, 228, 40, 95, 6, 30, 214, 104, 243, 92, 127,\n\t\t65, 53, 205, 3, 91, 109, 10, 84, 89, 249, 225, 43, 74, 113,\n\t\t38, 213, 59, 218, 185, 77, 152, 33, 19, 38, 32, 240, 122,\n\t\t78, 23, 86, 138, 117, 98, 40, 117, 187, 254, 141, 155, 233,\n\t\t71, 76, 138, 202, 115, 66, 2, 159, 82, 243, 92, 60, 176, 159,\n\t\t61, 153, 19, 135, 171, 147, 226, 253, 111, 199, 237, 253,\n\t\t111, 199, 207, 239, 62, 93, 76, 140, 11, 152, 152, 146, 243,\n\t\t180, 22, 0, 140, 177, 135, 178, 213, 46, 3, 174, 5, 128, 214,\n\t\t109, 181, 121, 12, 30, 254, 217, 176, 130, 10, 250, 182, 28,\n\t\t136, 30, 139, 20, 193, 238, 67, 218, 50, 9, 118, 48, 255,\n\t\t57, 141, 178, 81, 75, 30, 176, 121, 248, 197, 243, 2, 191,\n\t\t155, 9, 40, 212, 171, 147, 176, 7, 97, 195, 133, 109, 92,\n\t\t134, 22, 101, 229, 37, 73, 93, 23, 33, 190, 167, 135, 180,\n\t\t33, 46, 41, 141, 132, 96, 67, 160, 83, 23, 35, 6, 212, 131,\n\t\t205, 141, 42, 172, 140, 252, 155, 4, 244, 18, 163, 131, 127,\n\t\t211, 40, 135, 109, 82, 149, 102, 33, 12, 0, 227, 169, 96,\n\t\t216, 70, 223, 91, 7, 247, 172, 47, 189, 247, 182, 52, 133,\n\t\t138, 158, 23, 40, 248, 90, 203, 26, 150, 225, 133, 215, 147,\n\t\t43, 85, 96, 170, 16, 200, 255, 232, 83, 235, 99, 137, 13,\n\t\t240, 214, 143, 119, 37, 54, 15, 104, 149, 238, 91, 90, 37,\n\t\t179, 64, 130, 139, 148, 22, 211, 149, 4, 190, 210, 37, 26,\n\t\t206, 104, 43, 160, 53, 221, 28, 213, 225, 133, 70, 121, 12,\n\t\t31, 170, 92, 104, 188, 221, 240, 111, 223, 112, 185, 224,\n\t\t108, 212, 195, 26, 149, 199, 132, 132, 82, 110, 41, 89, 72,\n\t\t180, 169, 11, 42, 59, 191, 23, 27, 94, 20, 116, 193, 235,\n\t\t75, 236, 199, 207, 238, 243, 159, 191, 92, 140, 164, 52, 83,\n\t\t124, 40, 251, 72, 75, 108, 193, 39, 193, 192, 6, 6, 42, 66,\n\t\t123, 53, 34, 27, 124, 129, 185, 41, 131, 33, 143, 178, 58,\n\t\t218, 82, 163, 96, 58, 195, 234, 155, 66, 217, 33, 139, 115,\n\t\t241, 109, 44, 165, 43, 9, 98, 81, 30, 226, 209, 4, 165, 206,\n\t\t17, 184, 78, 226, 194, 141, 48, 210, 82, 149, 33, 151, 148,\n\t\t184, 159, 230, 225, 145, 4, 62, 111, 109, 126, 224, 22, 160,\n\t\t232, 129, 217, 206, 85, 101, 141, 161, 34, 67, 73, 86, 107,\n\t\t49, 218, 25, 177, 178, 185, 56, 180, 10, 142, 235, 192, 35,\n\t\t82, 39, 202, 226, 184, 14, 37, 228, 149, 171, 128, 183, 90,\n\t\t29, 164, 10, 206, 234, 96, 85, 112, 86, 135, 73, 120, 170,\n\t\t117, 48, 64, 97, 129, 6, 194, 162, 45, 20, 179, 82, 15, 103,\n\t\t21, 113, 88, 70, 173, 18, 86, 7, 71, 66, 206, 41, 210, 218,\n\t\t227, 93, 10, 117, 239, 147, 195, 127, 65, 167, 124, 67, 159,\n\t\t28, 254, 110, 157, 146, 187, 24, 100, 175, 171, 12, 44, 208,\n\t\t222, 216, 186, 143, 46, 245, 124, 93, 82, 57, 156, 132, 182,\n\t\t239, 139, 178, 74, 22, 2, 232, 39, 56, 249, 228, 91, 43, 10,\n\t\t12, 62, 154, 64, 9, 183, 148, 83, 95, 82, 247, 105, 40, 243,\n\t\t61, 236, 156, 68, 1, 36, 221, 106, 123, 60, 70, 112, 28, 198,\n\t\t190, 116, 149, 93, 46, 216, 195, 132, 27, 76, 54, 192, 39,\n\t\t212, 97, 79, 249, 197, 166, 164, 102, 247, 156, 51, 139, 45,\n\t\t174, 31, 177, 63, 190, 8, 166, 252, 120, 23, 99, 150, 2, 28,\n\t\t254, 170, 18, 164, 24, 254, 218, 38, 200, 84, 151, 126, 248,\n\t\t43, 75, 80, 179, 64, 205, 92, 27, 158, 15, 207, 199, 227,\n\t\t195, 165, 20, 251, 240, 162, 212, 122, 99, 171, 122, 119,\n\t\t97, 130, 26, 23, 176, 13, 59, 247, 107, 169, 97, 73, 61, 115,\n\t\t123, 156, 120, 78, 113, 189, 158, 192, 57, 187, 51, 60, 103,\n\t\t185, 233, 21, 122, 15, 235, 27, 61, 128, 7, 72, 156, 3, 77,\n\t\t109, 255, 38, 227, 29, 249, 53, 150, 182, 32, 66, 160, 221,\n\t\t227, 236, 67, 61, 40, 205, 222, 85, 97, 17, 197, 177, 59,\n\t\t158, 96, 79, 243, 103, 168, 96, 69, 60, 73, 21, 229, 228,\n\t\t240, 93, 111, 44, 57, 127, 119, 3, 169, 161, 53, 13, 31, 185,\n\t\t209, 213, 165, 8, 70, 7, 120, 30, 170, 185, 109, 105, 199,\n\t\t238, 86, 39, 139, 28, 28, 237, 33, 123, 34, 204, 91, 236,\n\t\t217, 103, 143, 158, 244, 137, 3, 112, 214, 53, 47, 243, 249,\n\t\t189, 207, 191, 119, 156, 133, 115, 251, 135, 230, 77, 238,\n\t\t162, 152, 118, 32, 245, 139, 57, 253, 215, 214, 143, 215,\n\t\t249, 255, 230, 254, 163, 54, 16, 135, 19, 191, 190, 132, 223,\n\t\t84, 192, 195, 87, 150, 240, 251, 154, 93, 2, 36, 106, 62,\n\t\t138, 115, 184, 36, 165, 100, 204, 81, 228, 39, 22, 58, 96,\n\t\t130, 126, 112, 8, 227, 208, 203, 78, 174, 63, 222, 101, 214,\n\t\t225, 67, 246, 255, 164, 58, 191, 190, 35, 165, 126, 41, 132,\n\t\t255, 214, 250, 93, 219, 64, 255, 191, 143, 47, 132, 168, 142,\n\t\t11, 220, 147, 61, 237, 44, 103, 22, 110, 151, 88, 171, 31,\n\t\t216, 241, 193, 185, 24, 139, 240, 138, 186, 170, 36, 71, 213,\n\t\t112, 201, 235, 100, 61, 2, 170, 204, 169, 86, 171, 243, 115,\n\t\t73, 3, 255, 59, 230, 254, 68, 206, 120, 34, 199, 156, 88,\n\t\t208, 79, 65, 16, 221, 226, 80, 154, 249, 98, 172, 175, 217,\n\t\t55, 228, 199, 131, 154, 206, 53, 33, 114, 129, 217, 12, 118,\n\t\t182, 168, 44, 56, 69, 233, 98, 17, 135, 18, 67, 218, 47, 80,\n\t\t232, 62, 84, 58, 25, 201, 216, 97, 189, 78, 138, 155, 251,\n\t\t21, 78, 220, 147, 190, 100, 13, 98, 17, 96, 149, 139, 148,\n\t\t114, 191, 68, 5, 164, 79, 69, 74, 91, 59, 144, 243, 121, 162,\n\t\t102, 63, 218, 210, 7, 166, 232, 26, 163, 178, 34, 89, 150,\n\t\t108, 17, 178, 51, 151, 149, 76, 162, 12, 37, 107, 140, 4,\n\t\t3, 218, 70, 220, 235, 44, 85, 36, 242, 133, 142, 174, 119,\n\t\t192, 181, 175, 110, 116, 95, 51, 140, 103, 142, 70, 241, 17,\n\t\t134, 10, 37, 240, 104, 221, 143, 188, 244, 112, 88, 203, 16,\n\t\t142, 183, 164, 12, 160, 20, 171, 15, 105, 1, 43, 44, 152,\n\t\t55, 80, 188, 38, 43, 200, 227, 93, 41, 92, 163, 37, 213, 224,\n\t\t7, 173, 197, 168, 36, 83, 21, 139, 123, 175, 250, 5, 85, 183,\n\t\t246, 11, 84, 163, 175, 97, 111, 234, 31, 212, 210, 172, 223,\n\t\t137, 237, 26, 172, 82, 163, 154, 56, 217, 196, 144, 79, 49,\n\t\t249, 49, 14, 64, 155, 18, 42, 17, 83, 33, 89, 242, 76, 131,\n\t\t165, 20, 105, 241, 121, 161, 136, 2, 125, 218, 135, 222, 119,\n\t\t14, 220, 170, 4, 43, 147, 62, 129, 108, 25, 230, 193, 17,\n\t\t133, 195, 171, 129, 242, 136, 219, 181, 143, 101, 8, 255,\n\t\t228, 49, 120, 2, 129, 218, 74, 213, 199, 140, 185, 159, 186,\n\t\t15, 1, 118, 162, 224, 3, 197, 182, 228, 238, 75, 99, 253,\n\t\t53, 194, 212, 83, 55, 162, 166, 150, 164, 212, 124, 61, 96,\n\t\t68, 228, 60, 226, 241, 156, 77, 1, 121, 173, 25, 162, 41,\n\t\t191, 145, 114, 93, 236, 133, 142, 223, 216, 43, 232, 165,\n\t\t88, 186, 223, 28, 191, 145, 7, 33, 191, 48, 131, 226, 64,\n\t\t214, 29, 97, 250, 77, 20, 121, 135, 233, 4, 238, 59, 10, 35,\n\t\t181, 130, 20, 70, 90, 132, 115, 43, 198, 199, 187, 74, 226,\n\t\t241, 4, 207, 255, 30, 227, 153, 103, 140, 231, 110, 190, 79,\n\t\t198, 161, 218, 202, 121, 188, 231, 209, 81, 67, 115, 159,\n\t\t215, 227, 240, 245, 21, 25, 3, 245, 168, 229, 72, 253, 186,\n\t\t174, 241, 239, 247, 15, 23, 9, 186, 163, 126, 115, 118, 208,\n\t\t235, 162, 175, 94, 32, 43, 168, 111, 154, 65, 146, 120, 133,\n\t\t148, 16, 178, 51, 112, 12, 67, 136, 72, 26, 239, 147, 170,\n\t\t110, 121, 81, 163, 165, 186, 102, 88, 218, 13, 49, 45, 251,\n\t\t189, 252, 182, 137, 227, 162, 177, 134, 2, 13, 215, 248, 223,\n\t\t156, 89, 67, 209, 189, 203, 194, 238, 44, 198, 22, 41, 121,\n\t\t152, 233, 51, 68, 85, 163, 235, 54, 106, 166, 68, 173, 148,\n\t\t132, 24, 58, 78, 196, 203, 116, 126, 198, 139, 227, 195, 30,\n\t\t254, 172, 49, 78, 243, 79, 155, 59, 123, 213, 89, 224, 171,\n\t\t125, 176, 74, 113, 198, 152, 70, 159, 49, 250, 225, 199, 127,\n\t\t159, 91, 8, 106, 34, 136, 175, 21, 183, 47, 91, 0, 185, 69,\n\t\t20, 63, 111, 135, 137, 2, 18, 125, 89, 208, 160, 22, 106,\n\t\t174, 173, 251, 35, 179, 142, 94, 100, 100, 184, 53, 107, 94,\n\t\t196, 174, 30, 63, 31, 73, 35, 134, 129, 148, 94, 90, 13, 87,\n\t\t78, 147, 45, 37, 212, 16, 232, 231, 18, 167, 253, 133, 52,\n\t\t75, 12, 225, 23, 210, 44, 159, 167, 159, 78, 74, 104, 141,\n\t\t216, 171, 51, 243, 20, 172, 66, 252, 103, 26, 95, 78, 61,\n\t\t149, 184, 188, 111, 75, 61, 125, 176, 146, 188, 156, 111,\n\t\t250, 149, 19, 252, 7, 205, 239, 195, 63, 113, 130, 255, 184,\n\t\t207, 31, 222, 126, 130, 215, 191, 229, 200, 150, 126, 61,\n\t\t195, 120, 127, 203, 145, 125, 115, 21, 250, 207, 251, 15,\n\t\t255, 22, 164, 215, 139, 181, 232, 2, 103, 99, 7, 210, 46,\n\t\t129, 60, 45, 200, 237, 48, 128, 137, 152, 102, 69, 84, 73,\n\t\t204, 134, 72, 9, 76, 109, 228, 155, 131, 72, 191, 171, 100,\n\t\t190, 186, 98, 183, 210, 60, 80, 102, 227, 25, 111, 172, 212,\n\t\t12, 10, 214, 4, 208, 45, 124, 166, 27, 124, 84, 213, 129,\n\t\t17, 179, 25, 26, 179, 228, 27, 45, 137, 231, 180, 220, 5,\n\t\t22, 248, 178, 100, 131, 154, 50, 140, 45, 22, 1, 83, 218,\n\t\t12, 77, 74, 248, 31, 104, 179, 121, 41, 179, 17, 27, 58, 110,\n\t\t159, 72, 21, 22, 234, 91, 116, 214, 20, 203, 246, 136, 2,\n\t\t92, 205, 187, 75, 82, 92, 6, 248, 221, 13, 14, 195, 117, 109,\n\t\t166, 217, 92, 93, 185, 226, 88, 232, 47, 251, 226, 35, 57,\n\t\t9, 6, 14, 58, 102, 83, 6, 13, 63, 150, 93, 224, 230, 250,\n\t\t126, 25, 224, 190, 138, 131, 91, 154, 215, 114, 200, 107,\n\t\t180, 216, 229, 166, 7, 35, 176, 234, 46, 252, 115, 182, 42,\n\t\t77, 173, 187, 203, 64, 84, 44, 138, 21, 106, 167, 52, 167,\n\t\t222, 49, 52, 183, 103, 199, 68, 137, 205, 119, 69, 74, 71,\n\t\t140, 183, 166, 125, 156, 197, 206, 203, 141, 201, 106, 58,\n\t\t16, 134, 206, 127, 125, 115, 241, 46, 246, 190, 20, 137, 16,\n\t\t250, 121, 203, 63, 136, 138, 49, 189, 39, 134, 207, 4, 124,\n\t\t51, 132, 176, 159, 179, 248, 131, 64, 95, 131, 237, 145, 138,\n\t\t242, 182, 11, 255, 219, 175, 251, 152, 94, 180, 105, 96, 126,\n\t\t247, 229, 240, 170, 68, 4, 129, 157, 232, 126, 102, 93, 20,\n\t\t69, 9, 56, 75, 232, 209, 183, 188, 125, 178, 212, 215, 166,\n\t\t92, 92, 93, 233, 183, 251, 63, 127, 59, 94, 172, 239, 223,\n\t\t14, 226, 240, 173, 178, 38, 68, 238, 126, 147, 27, 238, 53,\n\t\t41, 50, 95, 102, 232, 250, 166, 247, 191, 150, 161, 11, 57,\n\t\t12, 171, 102, 128, 9, 112, 200, 82, 202, 66, 57, 34, 131,\n\t\t165, 174, 54, 155, 199, 20, 163, 20, 185, 136, 58, 198, 48,\n\t\t122, 155, 250, 209, 197, 22, 16, 241, 131, 187, 194, 217,\n\t\t202, 139, 193, 103, 119, 58, 234, 235, 132, 240, 105, 180,\n\t\t8, 132, 32, 197, 170, 159, 228, 195, 35, 93, 223, 231, 209,\n\t\t251, 47, 171, 27, 215, 210, 238, 223, 102, 8, 196, 134, 72,\n\t\t68, 95, 159, 193, 205, 72, 198, 154, 237, 119, 83, 238, 183,\n\t\t141, 246, 219, 164, 163, 175, 70, 156, 57, 188, 33, 185, 203,\n\t\t195, 75, 24, 60, 187, 168, 248, 120, 71, 244, 114, 211, 188,\n\t\t64, 89, 241, 125, 205, 242, 125, 72, 60, 63, 187, 89, 210,\n\t\t232, 60, 183, 114, 252, 170, 185, 117, 248, 113, 147, 235,\n\t\t202, 116, 127, 197, 188, 123, 25, 240, 98, 92, 73, 247, 126,\n\t\t171, 153, 39, 40, 234, 173, 255, 3, 81, 212, 83, 232, 255,\n\t\t68, 20, 245, 57, 116, 15, 95, 53, 118, 255, 46, 67, 247, 165,\n\t\t68, 219, 113, 37, 209, 246, 173, 6, 110, 237, 158, 47, 145,\n\t\t31, 43, 120, 180, 69, 90, 126, 46, 22, 97, 65, 51, 60, 69,\n\t\t167, 91, 201, 102, 45, 169, 227, 98, 71, 83, 124, 141, 32,\n\t\t120, 56, 79, 158, 127, 73, 26, 148, 87, 137, 78, 175, 210,\n\t\t160, 122, 107, 118, 105, 80, 53, 197, 93, 26, 228, 11, 15,\n\t\t44, 2, 106, 73, 207, 68, 64, 213, 160, 229, 158, 239, 145,\n\t\t103, 94, 39, 206, 252, 115, 199, 231, 159, 191, 253, 118,\n\t\t255, 219, 59, 183, 190, 100, 183, 184, 200, 135, 221, 29,\n\t\t181, 49, 230, 133, 98, 191, 149, 118, 80, 195, 181, 180, 131,\n\t\t20, 79, 46, 198, 124, 132, 238, 88, 154, 228, 145, 222, 76,\n\t\t170, 72, 241, 196, 15, 165, 87, 4, 62, 62, 222, 213, 152,\n\t\t151, 250, 253, 49, 70, 71, 215, 163, 31, 89, 200, 64, 154,\n\t\t142, 50, 31, 82, 136, 109, 145, 63, 36, 204, 20, 184, 1, 247,\n\t\t11, 226, 74, 214, 228, 3, 119, 158, 168, 160, 255, 61, 92,\n\t\t38, 48, 172, 97, 41, 240, 13, 130, 198, 29, 81, 182, 60, 5,\n\t\t235, 216, 191, 132, 184, 255, 33, 137, 66, 111, 93, 156, 195,\n\t\t43, 203, 163, 237, 115, 43, 26, 172, 170, 187, 245, 59, 98,\n\t\t198, 198, 205, 152, 186, 218, 143, 51, 64, 54, 21, 27, 100,\n\t\t52, 226, 41, 34, 235, 196, 154, 224, 34, 85, 4, 193, 238,\n\t\t87, 114, 69, 78, 142, 151, 209, 204, 163, 183, 196, 83, 238,\n\t\t71, 55, 42, 95, 59, 142, 235, 179, 236, 247, 251, 63, 220,\n\t\t239, 247, 159, 254, 253, 238, 215, 139, 57, 246, 175, 47,\n\t\t71, 19, 34, 89, 50, 247, 149, 167, 124, 23, 202, 186, 88,\n\t\t1, 185, 15, 247, 55, 78, 88, 83, 10, 184, 22, 203, 80, 152,\n\t\t86, 137, 43, 46, 188, 221, 59, 162, 132, 69, 98, 84, 47, 198,\n\t\t233, 4, 66, 121, 94, 133, 117, 119, 109, 190, 195, 171, 62,\n\t\t175, 24, 133, 79, 88, 1, 149, 92, 66, 95, 82, 3, 157, 190,\n\t\t189, 142, 210, 240, 173, 206, 51, 121, 119, 88, 172, 156,\n\t\t231, 5, 212, 255, 30, 239, 162, 100, 195, 44, 17, 233, 107,\n\t\t27, 75, 35, 53, 45, 185, 33, 227, 227, 176, 22, 79, 109, 84,\n\t\t153, 242, 189, 13, 132, 153, 72, 90, 93, 10, 62, 103, 193,\n\t\t89, 143, 101, 113, 185, 194, 47, 123, 114, 49, 37, 31, 250,\n\t\t230, 40, 117, 207, 130, 75, 141, 24, 20, 128, 126, 47, 20,\n\t\t26, 96, 155, 69, 26, 38, 12, 205, 37, 205, 26, 234, 5, 254,\n\t\t86, 25, 249, 4, 66, 156, 184, 238, 158, 94, 56, 238, 129,\n\t\t104, 31, 168, 86, 152, 38, 106, 175, 203, 172, 195, 240, 141,\n\t\t196, 218, 213, 37, 179, 133, 119, 195, 208, 66, 90, 16, 142,\n\t\t145, 184, 2, 85, 107, 148, 116, 60, 241, 238, 132, 170, 210,\n\t\t144, 85, 43, 218, 198, 25, 144, 178, 182, 228, 33, 65, 229,\n\t\t101, 200, 144, 107, 18, 205, 112, 114, 49, 23, 63, 198, 230,\n\t\t36, 204, 234, 68, 61, 174, 212, 253, 64, 74, 75, 212, 77,\n\t\t35, 13, 164, 156, 32, 233, 3, 201, 50, 246, 22, 167, 175,\n\t\t89, 135, 167, 136, 174, 215, 156, 23, 208, 34, 36, 214, 140,\n\t\t184, 100, 117, 150, 83, 78, 31, 239, 74, 201, 220, 174, 177,\n\t\t87, 223, 243, 106, 141, 154, 167, 50, 132, 22, 116, 214, 166,\n\t\t243, 130, 181, 169, 147, 70, 149, 116, 85, 242, 66, 55, 204,\n\t\t237, 153, 106, 147, 0, 10, 201, 205, 9, 150, 58, 194, 109,\n\t\t202, 189, 57, 124, 23, 76, 85, 110, 173, 83, 236, 215, 13,\n\t\t50, 251, 204, 122, 41, 27, 245, 254, 130, 59, 253, 191, 117,\n\t\t118, 117, 16, 36, 173, 54, 166, 194, 146, 227, 68, 168, 206,\n\t\t44, 61, 29, 30, 220, 217, 185, 195, 181, 7, 135, 236, 188,\n\t\t201, 126, 133, 235, 15, 231, 231, 114, 233, 198, 236, 253,\n\t\t59, 76, 222, 195, 207, 153, 189, 127, 209, 228, 61, 252, 69,\n\t\t179, 247, 205, 39, 239, 167, 127, 95, 230, 20, 222, 147, 101,\n\t\t130, 141, 132, 247, 44, 84, 154, 31, 109, 107, 74, 238, 208,\n\t\t204, 134, 31, 187, 15, 17, 206, 94, 28, 108, 174, 153, 206,\n\t\t168, 183, 174, 32, 151, 139, 49, 9, 203, 28, 66, 217, 40,\n\t\t69, 159, 18, 171, 37, 220, 52, 177, 75, 192, 90, 202, 200,\n\t\t192, 20, 99, 52, 21, 205, 60, 37, 132, 171, 37, 225, 43, 233,\n\t\t3, 148, 62, 81, 50, 128, 36, 147, 199, 68, 137, 45, 136, 244,\n\t\t149, 242, 18, 248, 142, 60, 226, 218, 188, 88, 158, 106, 244,\n\t\t131, 250, 224, 33, 18, 168, 212, 133, 184, 105, 169, 44, 252,\n\t\t57, 100, 153, 142, 226, 67, 127, 60, 220, 229, 94, 124, 30,\n\t\t75, 134, 204, 49, 19, 114, 145, 247, 192, 114, 220, 188, 48,\n\t\t226, 20, 185, 103, 205, 169, 226, 89, 249, 237, 60, 222, 240,\n\t\t151, 69, 126, 182, 209, 125, 110, 163, 44, 67, 2, 211, 54,\n\t\t224, 209, 243, 106, 162, 191, 155, 235, 77, 99, 219, 248,\n\t\t32, 15, 4, 57, 71, 216, 41, 162, 12, 50, 76, 11, 61, 181,\n\t\t252, 167, 176, 201, 33, 207, 42, 249, 213, 199, 206, 158,\n\t\t181, 71, 131, 101, 126, 109, 20, 178, 167, 184, 200, 207,\n\t\t97, 165, 34, 137, 87, 252, 203, 111, 202, 65, 39, 184, 158,\n\t\t151, 234, 75, 13, 101, 9, 27, 15, 242, 162, 17, 128, 37, 143,\n\t\t190, 69, 66, 30, 254, 162, 191, 104, 179, 18, 234, 108, 42,\n\t\t107, 41, 59, 183, 17, 19, 174, 15, 203, 119, 191, 94, 34,\n\t\t143, 220, 199, 255, 153, 170, 79, 242, 173, 44, 137, 154,\n\t\t143, 130, 104, 207, 205, 134, 162, 149, 182, 184, 54, 176,\n\t\t148, 97, 154, 160, 252, 142, 194, 240, 165, 74, 62, 102, 151,\n\t\t200, 48, 242, 177, 209, 194, 187, 200, 0, 129, 142, 68, 246,\n\t\t81, 240, 53, 140, 140, 72, 54, 12, 149, 136, 149, 181, 129,\n\t\t158, 132, 155, 72, 207, 143, 252, 2, 202, 131, 231, 53, 47,\n\t\t122, 210, 182, 145, 215, 60, 199, 211, 159, 6, 33, 42, 52,\n\t\t171, 13, 168, 228, 199, 187, 60, 138, 31, 77, 242, 179, 163,\n\t\t76, 43, 49, 200, 32, 85, 148, 36, 109, 126, 126, 200, 233,\n\t\t151, 14, 123, 97, 177, 231, 141, 178, 202, 100, 103, 233,\n\t\t191, 73, 227, 187, 218, 100, 213, 202, 213, 166, 152, 84,\n\t\t152, 235, 219, 198, 216, 234, 144, 180, 56, 226, 121, 69,\n\t\t43, 130, 122, 99, 91, 134, 105, 21, 102, 56, 224, 130, 206,\n\t\t114, 227, 204, 42, 170, 41, 16, 189, 175, 163, 217, 6, 71,\n\t\t188, 71, 54, 221, 171, 112, 66, 173, 62, 204, 43, 206, 46,\n\t\t233, 117, 62, 122, 242, 55, 190, 122, 254, 184, 254, 247,\n\t\t120, 184, 75, 185, 251, 18, 23, 74, 193, 183, 188, 90, 64,\n\t\t101, 213, 226, 38, 47, 112, 6, 212, 117, 41, 168, 154, 94,\n\t\t59, 167, 82, 137, 62, 199, 129, 28, 95, 126, 98, 115, 49,\n\t\t73, 132, 110, 110, 190, 196, 0, 190, 44, 10, 35, 193, 141,\n\t\t43, 211, 132, 70, 75, 75, 197, 240, 144, 112, 196, 20, 7,\n\t\t217, 133, 21, 166, 225, 208, 37, 56, 213, 83, 11, 136, 46,\n\t\t33, 141, 239, 180, 52, 121, 189, 123, 255, 156, 211, 239,\n\t\t237, 37, 114, 90, 36, 216, 116, 247, 136, 129, 42, 47, 74,\n\t\t146, 221, 235, 108, 124, 204, 154, 217, 106, 177, 165, 38,\n\t\t129, 186, 60, 1, 97, 199, 131, 30, 152, 16, 187, 17, 99, 104,\n\t\t176, 42, 137, 121, 123, 232, 179, 221, 214, 143, 146, 185,\n\t\t167, 107, 86, 170, 133, 192, 239, 203, 59, 107, 104, 45, 33,\n\t\t227, 92, 176, 52, 228, 194, 218, 173, 73, 44, 248, 149, 240,\n\t\t190, 232, 91, 10, 185, 205, 23, 218, 251, 102, 129, 180, 60,\n\t\t55, 166, 249, 209, 253, 178, 221, 95, 90, 230, 238, 127, 62,\n\t\t49, 239, 27, 251, 229, 191, 41, 66, 239, 240, 234, 247, 223,\n\t\t106, 229, 79, 31, 183, 237, 253, 135, 223, 220, 187, 255,\n\t\t125, 119, 17, 227, 122, 255, 243, 89, 80, 89, 86, 142, 134,\n\t\t33, 137, 186, 92, 66, 84, 62, 60, 135, 187, 92, 185, 0, 90,\n\t\t115, 115, 13, 229, 233, 178, 214, 160, 148, 82, 215, 61, 74,\n\t\t201, 226, 191, 140, 154, 196, 21, 11, 83, 208, 243, 110, 88,\n\t\t62, 51, 114, 227, 188, 161, 209, 216, 238, 172, 159, 164,\n\t\t193, 185, 28, 178, 104, 77, 14, 20, 163, 56, 179, 23, 11,\n\t\t239, 140, 177, 180, 232, 146, 103, 69, 68, 200, 202, 147,\n\t\t66, 187, 82, 31, 239, 18, 197, 37, 247, 53, 146, 45, 175,\n\t\t118, 148, 100, 180, 28, 29, 172, 125, 251, 223, 231, 161,\n\t\t75, 106, 77, 61, 82, 236, 10, 28, 42, 24, 58, 40, 245, 37,\n\t\t112, 232, 225, 45, 154, 242, 239, 210, 146, 215, 71, 213,\n\t\t117, 156, 141, 223, 63, 126, 248, 243, 247, 119, 151, 46,\n\t\t174, 251, 139, 48, 240, 212, 45, 126, 44, 213, 190, 132, 91,\n\t\t246, 176, 87, 152, 55, 83, 137, 223, 101, 148, 75, 5, 225,\n\t\t63, 195, 83, 94, 82, 110, 62, 214, 45, 25, 130, 70, 226, 125,\n\t\t191, 30, 93, 44, 114, 17, 41, 39, 184, 198, 93, 44, 210, 98,\n\t\t227, 113, 147, 125, 19, 101, 43, 251, 209, 83, 94, 134, 143,\n\t\t2, 110, 59, 32, 19, 28, 182, 166, 20, 55, 173, 66, 80, 90,\n\t\t119, 89, 211, 164, 76, 156, 236, 226, 41, 223, 8, 25, 204,\n\t\t158, 200, 62, 67, 238, 229, 13, 5, 18, 79, 247, 69, 18, 124,\n\t\t176, 253, 181, 249, 77, 167, 31, 21, 18, 24, 202, 223, 156,\n\t\t191, 213, 196, 125, 246, 173, 233, 91, 135, 175, 203, 223,\n\t\t178, 175, 253, 152, 252, 173, 223, 63, 126, 250, 124, 255,\n\t\t201, 253, 241, 238, 225, 243, 118, 193, 93, 114, 223, 254,\n\t\t231, 44, 136, 177, 228, 37, 117, 214, 103, 55, 55, 134, 166,\n\t\t17, 225, 128, 219, 128, 10, 249, 212, 182, 24, 146, 239, 196,\n\t\t114, 111, 244, 189, 174, 197, 199, 18, 71, 90, 146, 31, 169,\n\t\t103, 161, 188, 202, 133, 229, 38, 74, 185, 53, 152, 103, 41,\n\t\t146, 157, 175, 25, 155, 61, 234, 68, 94, 12, 45, 228, 107,\n\t\t175, 5, 178, 35, 132, 239, 228, 91, 205, 181, 32, 178, 76,\n\t\t52, 184, 224, 59, 48, 80, 84, 95, 115, 105, 248, 17, 195,\n\t\t224, 126, 110, 161, 240, 82, 210, 0, 80, 1, 218, 43, 160,\n\t\t193, 221, 154, 76, 135, 219, 179, 73, 129, 123, 130, 102,\n\t\t255, 148, 73, 155, 95, 130, 39, 40, 172, 228, 17, 33, 215,\n\t\t58, 107, 217, 220, 21, 85, 117, 121, 204, 14, 46, 62, 100,\n\t\t203, 180, 187, 137, 69, 36, 43, 221, 215, 62, 202, 74, 62,\n\t\t203, 146, 51, 96, 75, 128, 176, 22, 204, 95, 170, 159, 165,\n\t\t42, 86, 13, 187, 114, 116, 172, 186, 20, 24, 89, 144, 220,\n\t\t38, 107, 38, 52, 128, 225, 67, 13, 229, 236, 33, 125, 230,\n\t\t176, 38, 31, 33, 107, 69, 242, 189, 11, 181, 43, 141, 144,\n\t\t151, 76, 190, 211, 72, 179, 104, 86, 50, 30, 240, 16, 18,\n\t\t35, 178, 114, 172, 174, 163, 89, 26, 156, 156, 75, 213, 95,\n\t\t129, 95, 116, 125, 221, 201, 253, 186, 46, 247, 199, 253,\n\t\t251, 15, 159, 33, 128, 188, 96, 104, 184, 223, 33, 103, 42,\n\t\t48, 6, 110, 251, 158, 120, 153, 188, 234, 242, 66, 22, 214,\n\t\t151, 61, 94, 55, 17, 56, 45, 35, 54, 245, 124, 3, 147, 75,\n\t\t112, 9, 47, 210, 109, 53, 175, 150, 255, 227, 214, 13, 50,\n\t\t100, 111, 184, 202, 98, 191, 93, 247, 155, 176, 130, 242,\n\t\t150, 47, 213, 93, 58, 242, 10, 214, 217, 51, 168, 192, 39,\n\t\t207, 243, 187, 111, 244, 243, 195, 195, 31, 31, 47, 125, 152,\n\t\t247, 151, 225, 33, 19, 211, 151, 226, 240, 53, 46, 177, 197,\n\t\t181, 104, 114, 92, 34, 49, 197, 198, 162, 198, 214, 166, 136,\n\t\t71, 26, 135, 195, 203, 43, 133, 200, 42, 123, 85, 156, 66,\n\t\t153, 57, 178, 2, 195, 138, 155, 147, 218, 74, 8, 56, 70, 78,\n\t\t159, 57, 242, 210, 195, 203, 225, 227, 252, 112, 14, 71, 189,\n\t\t182, 146, 1, 195, 196, 38, 115, 179, 242, 188, 140, 109, 113,\n\t\t188, 116, 194, 118, 241, 228, 109, 130, 167, 67, 240, 182,\n\t\t103, 113, 214, 73, 74, 44, 24, 156, 225, 15, 124, 90, 100,\n\t\t1, 51, 161, 74, 62, 209, 1, 229, 135, 101, 171, 41, 244, 86,\n\t\t12, 178, 4, 165, 172, 186, 35, 43, 145, 172, 135, 183, 142,\n\t\t59, 143, 89, 150, 38, 214, 93, 171, 76, 207, 156, 125, 148,\n\t\t85, 203, 176, 117, 26, 105, 97, 248, 97, 209, 55, 229, 105,\n\t\t160, 124, 251, 210, 208, 214, 246, 2, 126, 190, 72, 124, 8,\n\t\t30, 183, 167, 161, 190, 142, 98, 95, 94, 173, 168, 78, 203,\n\t\t26, 13, 215, 203, 202, 58, 245, 93, 43, 171, 211, 194, 62,\n\t\t222, 197, 90, 124, 232, 0, 178, 42, 227, 192, 175, 130, 85,\n\t\t215, 58, 205, 250, 204, 186, 76, 218, 216, 58, 204, 250, 198,\n\t\t217, 232, 112, 54, 60, 156, 141, 15, 103, 3, 100, 54, 183,\n\t\t155, 237, 157, 73, 225, 240, 174, 78, 189, 156, 95, 49, 245,\n\t\t176, 236, 92, 5, 18, 228, 229, 226, 202, 236, 98, 241, 236,\n\t\t112, 151, 18, 47, 115, 235, 4, 10, 193, 98, 43, 130, 52, 47,\n\t\t166, 15, 47, 0, 139, 176, 162, 116, 21, 89, 228, 225, 236,\n\t\t84, 183, 63, 96, 247, 88, 128, 64, 11, 146, 242, 203, 130,\n\t\t8, 230, 147, 38, 254, 178, 0, 210, 31, 220, 249, 5, 55, 175,\n\t\t226, 204, 254, 228, 236, 111, 15, 79, 174, 216, 213, 217,\n\t\t201, 41, 71, 159, 73, 80, 154, 72, 82, 59, 51, 60, 183, 186,\n\t\t64, 218, 204, 120, 222, 83, 115, 98, 174, 206, 102, 161, 77,\n\t\t66, 103, 179, 208, 38, 161, 123, 50, 66, 174, 175, 72, 239,\n\t\t62, 184, 127, 221, 127, 88, 255, 247, 98, 73, 90, 109, 219,\n\t\t105, 67, 205, 123, 92, 129, 186, 117, 245, 66, 164, 132, 223,\n\t\t109, 116, 241, 166, 56, 61, 64, 148, 150, 236, 232, 122, 43,\n\t\t207, 198, 38, 22, 147, 238, 83, 15, 189, 74, 104, 99, 233,\n\t\t226, 123, 202, 185, 203, 220, 142, 152, 159, 122, 176, 57,\n\t\t106, 213, 119, 145, 38, 70, 14, 121, 115, 89, 39, 134, 254,\n\t\t110, 35, 202, 102, 207, 191, 35, 212, 53, 154, 117, 51, 96,\n\t\t242, 150, 186, 88, 184, 129, 35, 5, 220, 156, 97, 234, 114,\n\t\t126, 101, 49, 63, 60, 60, 155, 5, 231, 182, 140, 243, 193,\n\t\t143, 112, 5, 47, 8, 122, 193, 15, 194, 135, 121, 54, 102,\n\t\t238, 36, 251, 176, 6, 200, 111, 206, 10, 237, 180, 212, 168,\n\t\t22, 150, 14, 253, 221, 180, 190, 139, 212, 127, 229, 198,\n\t\t227, 101, 170, 3, 90, 143, 88, 172, 132, 198, 130, 150, 171,\n\t\t105, 177, 134, 211, 95, 36, 66, 177, 126, 145, 105, 248, 218,\n\t\t215, 150, 125, 230, 29, 183, 243, 66, 24, 26, 136, 118, 72,\n\t\t7, 90, 69, 64, 85, 246, 192, 250, 226, 223, 56, 14, 27, 224,\n\t\t246, 96, 165, 239, 201, 19, 109, 110, 52, 223, 75, 168, 139,\n\t\t254, 222, 28, 79, 31, 222, 95, 224, 230, 221, 255, 58, 161,\n\t\t73, 83, 245, 117, 73, 97, 248, 72, 27, 75, 220, 136, 145,\n\t\t106, 99, 179, 153, 34, 40, 135, 252, 121, 254, 35, 47, 107,\n\t\t161, 151, 33, 35, 101, 140, 36, 235, 182, 96, 160, 165, 230,\n\t\t5, 114, 44, 219, 192, 207, 2, 79, 185, 185, 216, 134, 231,\n\t\t113, 6, 196, 255, 205, 145, 180, 237, 162, 191, 155, 138,\n\t\t184, 248, 9, 3, 26, 218, 104, 188, 98, 250, 129, 169, 197,\n\t\t106, 86, 195, 54, 169, 146, 109, 240, 69, 49, 7, 224, 124,\n\t\t121, 18, 126, 241, 36, 64, 227, 225, 89, 48, 198, 146, 251,\n\t\t1, 1, 43, 207, 35, 89, 120, 216, 180, 169, 201, 119, 32, 25,\n\t\t96, 104, 197, 192, 67, 65, 134, 169, 126, 119, 115, 90, 82,\n\t\t19, 206, 47, 107, 132, 138, 46, 82, 237, 181, 248, 65, 128,\n\t\t62, 108, 178, 105, 197, 226, 19, 213, 188, 164, 234, 99, 77,\n\t\t178, 147, 4, 32, 145, 27, 72, 219, 104, 126, 228, 37, 181,\n\t\t228, 123, 90, 169, 35, 209, 28, 63, 3, 54, 100, 62, 205, 58,\n\t\t96, 2, 108, 233, 60, 159, 55, 87, 170, 56, 135, 113, 144,\n\t\t121, 120, 63, 241, 232, 28, 54, 189, 190, 232, 141, 250, 106,\n\t\t249, 215, 94, 40, 103, 250, 206, 27, 94, 143, 63, 222, 125,\n\t\t88, 223, 111, 238, 211, 159, 47, 73, 202, 239, 230, 32, 11,\n\t\t195, 231, 186, 176, 38, 7, 79, 70, 8, 64, 20, 229, 31, 94,\n\t\t63, 35, 236, 181, 11, 146, 205, 144, 30, 22, 101, 99, 77,\n\t\t17, 192, 159, 220, 171, 89, 224, 52, 251, 224, 85, 26, 255,\n\t\t174, 231, 143, 117, 128, 28, 43, 124, 130, 158, 235, 51, 75,\n\t\t64, 224, 106, 130, 237, 37, 137, 197, 216, 85, 226, 37, 171,\n\t\t45, 118, 0, 108, 66, 49, 65, 39, 172, 234, 112, 115, 234,\n\t\t149, 174, 70, 115, 113, 107, 242, 52, 33, 209, 81, 248, 231,\n\t\t176, 210, 132, 72, 240, 177, 243, 178, 196, 139, 43, 28, 181,\n\t\t62, 197, 18, 151, 226, 107, 200, 121, 158, 175, 172, 1, 37,\n\t\t192, 1, 240, 224, 202, 49, 46, 228, 3, 160, 70, 249, 206,\n\t\t194, 74, 19, 110, 220, 172, 144, 250, 187, 101, 67, 136, 214,\n\t\t3, 29, 38, 137, 149, 16, 223, 120, 225, 170, 38, 213, 87,\n\t\t31, 34, 150, 108, 222, 207, 4, 186, 117, 140, 13, 151, 3,\n\t\t92, 46, 129, 66, 67, 231, 179, 44, 102, 3, 139, 7, 64, 63,\n\t\t59, 175, 64, 105, 136, 75, 216, 114, 17, 79, 60, 255, 28,\n\t\t206, 199, 35, 86, 48, 253, 197, 136, 108, 0, 148, 198, 136,\n\t\t76, 161, 61, 222, 37, 86, 13, 251, 146, 106, 225, 137, 47,\n\t\t229, 113, 82, 160, 205, 197, 81, 189, 228, 110, 86, 143, 226,\n\t\t6, 150, 214, 240, 102, 117, 236, 131, 156, 39, 42, 82, 107,\n\t\t108, 210, 0, 172, 137, 98, 67, 139, 89, 4, 42, 254, 45, 163,\n\t\t110, 115, 134, 240, 123, 242, 227, 93, 9, 44, 170, 45, 77,\n\t\t224, 130, 231, 136, 113, 54, 210, 230, 133, 125, 164, 57,\n\t\t27, 106, 78, 198, 26, 126, 36, 75, 235, 201, 227, 243, 177,\n\t\t138, 24, 12, 187, 178, 15, 58, 140, 242, 72, 24, 229, 113,\n\t\t3, 195, 109, 23, 162, 219, 138, 158, 204, 65, 110, 167, 4,\n\t\t42, 120, 242, 181, 135, 167, 3, 114, 142, 195, 231, 7, 87,\n\t\t7, 228, 122, 49, 128, 237, 246, 121, 65, 110, 15, 155, 125,\n\t\t84, 191, 121, 125, 162, 111, 247, 31, 222, 185, 251, 79, 159,\n\t\t222, 159, 94, 112, 115, 94, 196, 163, 237, 49, 159, 53, 230,\n\t\t31, 98, 107, 172, 225, 251, 2, 0, 43, 72, 202, 179, 68, 214,\n\t\t196, 28, 125, 130, 117, 77, 86, 67, 136, 9, 103, 61, 171,\n\t\t120, 159, 184, 80, 218, 32, 68, 110, 148, 205, 5, 152, 53,\n\t\t88, 23, 8, 228, 91, 63, 172, 1, 210, 97, 66, 16, 50, 116,\n\t\t129, 160, 58, 129, 90, 113, 121, 102, 178, 236, 79, 69, 132,\n\t\t177, 52, 4, 207, 20, 38, 166, 20, 104, 45, 172, 128, 181,\n\t\t182, 123, 212, 134, 117, 95, 81, 211, 12, 145, 206, 234, 225,\n\t\t17, 168, 178, 197, 166, 106, 68, 109, 242, 82, 10, 145, 103,\n\t\t85, 108, 190, 231, 192, 27, 118, 147, 80, 17, 170, 44, 119,\n\t\t2, 81, 152, 250, 200, 37, 241, 187, 136, 6, 102, 16, 252,\n\t\t246, 52, 124, 34, 145, 85, 128, 227, 43, 80, 201, 144, 140,\n\t\t197, 227, 9, 139, 210, 97, 45, 190, 169, 125, 19, 94, 245,\n\t\t50, 95, 48, 19, 215, 137, 20, 227, 136, 72, 246, 34, 30, 247,\n\t\t9, 22, 81, 22, 45, 105, 27, 205, 34, 72, 197, 31, 207, 123,\n\t\t118, 22, 222, 123, 53, 158, 22, 178, 121, 30, 100, 183, 111,\n\t\t65, 35, 92, 114, 88, 35, 233, 26, 30, 35, 140, 181, 166, 64,\n\t\t228, 128, 157, 197, 16, 114, 74, 134, 111, 92, 176, 94, 202,\n\t\t162, 11, 8, 53, 21, 23, 166, 127, 59, 55, 44, 104, 169, 248,\n\t\t166, 44, 232, 114, 189, 153, 95, 179, 100, 120, 65, 185, 27,\n\t\t122, 145, 109, 128, 22, 242, 169, 140, 212, 55, 23, 123, 243,\n\t\t53, 16, 107, 155, 169, 4, 56, 227, 185, 125, 193, 44, 95,\n\t\t59, 212, 219, 225, 83, 169, 121, 233, 44, 243, 147, 34, 198,\n\t\t86, 241, 202, 179, 248, 248, 138, 201, 246, 235, 187, 63,\n\t\t238, 63, 125, 254, 243, 211, 133, 13, 245, 151, 139, 0, 181,\n\t\t191, 233, 116, 235, 65, 122, 148, 66, 245, 45, 109, 174, 1,\n\t\t15, 184, 71, 248, 91, 97, 78, 136, 129, 226, 210, 253, 40,\n\t\t154, 79, 197, 10, 120, 92, 98, 20, 67, 108, 81, 97, 157, 133,\n\t\t23, 22, 187, 178, 66, 229, 198, 128, 238, 62, 128, 17, 173,\n\t\t52, 222, 64, 107, 44, 11, 143, 210, 204, 189, 52, 98, 105,\n\t\t125, 233, 62, 20, 204, 85, 57, 95, 163, 79, 169, 14, 90, 2,\n\t\t207, 247, 216, 90, 98, 197, 164, 151, 84, 168, 242, 189, 84,\n\t\t42, 15, 95, 63, 248, 93, 91, 179, 160, 189, 84, 37, 248, 133,\n\t\t66, 226, 194, 23, 145, 77, 88, 2, 172, 62, 198, 69, 83, 173,\n\t\t185, 173, 4, 181, 23, 90, 23, 226, 153, 124, 225, 113, 137,\n\t\t29, 171, 8, 202, 16, 87, 164, 164, 144, 120, 134, 181, 98,\n\t\t184, 78, 231, 181, 96, 193, 128, 171, 193, 66, 28, 151, 187,\n\t\t54, 148, 173, 148, 90, 237, 252, 176, 166, 37, 192, 4, 3,\n\t\t73, 111, 95, 55, 70, 206, 73, 182, 137, 212, 136, 182, 200,\n\t\t107, 16, 162, 15, 3, 239, 141, 163, 203, 252, 203, 3, 50,\n\t\t53, 79, 63, 129, 231, 78, 18, 30, 83, 170, 88, 95, 96, 63,\n\t\t31, 99, 233, 85, 225, 236, 7, 130, 128, 214, 148, 108, 254,\n\t\t106, 144, 91, 33, 132, 176, 80, 148, 149, 175, 136, 207, 62,\n\t\t106, 116, 95, 147, 128, 38, 153, 129, 120, 63, 107, 67, 81,\n\t\t34, 147, 52, 98, 192, 244, 210, 154, 96, 163, 23, 164, 36,\n\t\t133, 179, 47, 58, 161, 179, 5, 42, 228, 44, 229, 5, 254, 187,\n\t\t204, 204, 238, 19, 133, 194, 98, 68, 240, 162, 102, 55, 126,\n\t\t17, 210, 171, 40, 12, 180, 197, 128, 68, 131, 196, 253, 14,\n\t\t107, 147, 167, 192, 131, 62, 14, 93, 79, 68, 166, 136, 155,\n\t\t163, 196, 163, 21, 128, 252, 61, 212, 154, 87, 55, 172, 14,\n\t\t1, 139, 116, 149, 1, 162, 176, 205, 73, 199, 42, 11, 33, 80,\n\t\t63, 41, 224, 171, 215, 39, 246, 167, 119, 15, 235, 167, 247,\n\t\t127, 124, 126, 255, 241, 195, 197, 172, 190, 64, 197, 63,\n\t\t115, 216, 5, 242, 177, 46, 163, 110, 173, 171, 229, 176, 73,\n\t\t57, 214, 179, 160, 169, 167, 81, 87, 97, 70, 92, 109, 51,\n\t\t244, 202, 14, 46, 227, 180, 122, 120, 18, 167, 197, 218, 74,\n\t\t216, 240, 17, 238, 60, 253, 221, 236, 171, 242, 121, 216,\n\t\t18, 190, 34, 224, 107, 140, 229, 233, 247, 159, 5, 124, 245,\n\t\t96, 1, 95, 41, 140, 195, 118, 241, 113, 53, 224, 28, 69, 19,\n\t\t58, 57, 192, 219, 222, 114, 81, 222, 242, 80, 70, 184, 95,\n\t\t191, 140, 94, 155, 243, 106, 214, 242, 0, 84, 202, 167, 8,\n\t\t149, 0, 137, 235, 106, 66, 96, 93, 26, 102, 212, 110, 49,\n\t\t67, 61, 97, 100, 142, 44, 140, 1, 122, 138, 159, 39, 245,\n\t\t171, 161, 28, 158, 57, 38, 185, 53, 166, 99, 82, 250, 227,\n\t\t162, 27, 95, 236, 124, 105, 70, 235, 70, 129, 66, 46, 160,\n\t\t1, 58, 42, 85, 80, 130, 65, 240, 140, 76, 102, 143, 230, 176,\n\t\t83, 49, 176, 28, 221, 141, 28, 133, 135, 251, 95, 221, 250,\n\t\t233, 194, 90, 245, 75, 250, 230, 248, 12, 110, 208, 33, 141,\n\t\t106, 38, 66, 172, 99, 20, 17, 62, 16, 61, 157, 168, 7, 79,\n\t\t87, 144, 141, 31, 94, 176, 56, 158, 132, 57, 23, 129, 104,\n\t\t101, 153, 192, 38, 174, 138, 53, 94, 108, 123, 234, 193, 229,\n\t\t147, 7, 87, 171, 47, 123, 146, 161, 56, 148, 249, 47, 39,\n\t\t121, 209, 215, 125, 254, 112, 114, 82, 106, 215, 20, 88, 128,\n\t\t117, 126, 9, 17, 136, 97, 33, 1, 160, 8, 11, 42, 248, 69,\n\t\t74, 217, 30, 121, 79, 137, 9, 105, 199, 18, 37, 208, 125,\n\t\t89, 163, 40, 73, 98, 184, 71, 224, 1, 205, 212, 82, 11, 149,\n\t\t112, 26, 157, 176, 26, 62, 76, 156, 222, 97, 121, 160, 205,\n\t\t115, 77, 40, 142, 22, 12, 251, 122, 144, 133, 195, 87, 163,\n\t\t44, 72, 120, 4, 86, 243, 197, 2, 35, 40, 204, 66, 88, 63,\n\t\t173, 217, 124, 216, 81, 15, 134, 117, 12, 61, 75, 188, 150,\n\t\t106, 126, 37, 5, 38, 55, 177, 50, 190, 168, 13, 201, 48, 67,\n\t\t186, 144, 214, 18, 143, 133, 12, 91, 17, 159, 99, 172, 90,\n\t\t160, 70, 6, 110, 231, 225, 65, 242, 19, 107, 94, 228, 194,\n\t\t227, 93, 26, 205, 247, 37, 242, 14, 59, 43, 96, 229, 87, 23,\n\t\t109, 155, 167, 82, 170, 168, 121, 180, 95, 209, 232, 111,\n\t\t213, 230, 135, 111, 106, 244, 111, 207, 246, 124, 54, 140,\n\t\t245, 75, 89, 19, 78, 159, 143, 227, 155, 171, 210, 231, 119,\n\t\t247, 23, 22, 169, 95, 126, 126, 140, 30, 130, 232, 90, 124,\n\t\t179, 28, 82, 42, 241, 217, 200, 37, 24, 62, 121, 129, 194,\n\t\t138, 217, 121, 228, 106, 50, 182, 203, 138, 164, 212, 140,\n\t\t25, 216, 89, 207, 216, 10, 104, 160, 174, 22, 105, 21, 165,\n\t\t7, 195, 10, 113, 205, 64, 138, 100, 229, 178, 183, 185, 50,\n\t\t89, 221, 237, 138, 126, 64, 82, 7, 53, 115, 55, 55, 177, 193,\n\t\t182, 183, 143, 92, 76, 221, 3, 241, 83, 42, 105, 196, 237,\n\t\t8, 83, 64, 234, 132, 178, 208, 34, 134, 20, 208, 57, 18, 108,\n\t\t19, 187, 38, 173, 79, 196, 50, 205, 145, 47, 6, 243, 69, 188,\n\t\t158, 216, 233, 245, 200, 182, 53, 105, 66, 125, 88, 234, 25,\n\t\t203, 61, 62, 48, 44, 182, 35, 11, 50, 195, 245, 209, 124,\n\t\t252, 243, 243, 231, 237, 157, 59, 221, 95, 202, 140, 23, 65,\n\t\t94, 231, 154, 32, 139, 37, 75, 76, 205, 167, 178, 54, 203,\n\t\t182, 233, 44, 57, 244, 14, 83, 128, 4, 154, 3, 193, 194, 206,\n\t\t82, 128, 202, 127, 114, 68, 193, 215, 248, 10, 47, 99, 188,\n\t\t21, 80, 0, 4, 239, 243, 235, 136, 49, 144, 224, 129, 175,\n\t\t126, 46, 221, 10, 165, 136, 189, 95, 229, 182, 204, 177, 248,\n\t\t130, 232, 153, 28, 122, 20, 217, 94, 33, 98, 99, 103, 77,\n\t\t81, 248, 182, 161, 171, 36, 141, 172, 225, 47, 198, 58, 10,\n\t\t100, 169, 88, 234, 113, 212, 19, 23, 102, 84, 9, 189, 16,\n\t\t214, 194, 175, 243, 66, 188, 232, 132, 120, 120, 154, 70,\n\t\t187, 184, 172, 108, 30, 177, 156, 127, 241, 56, 137, 92, 158,\n\t\t167, 158, 254, 192, 175, 118, 169, 42, 193, 106, 12, 244,\n\t\t5, 46, 64, 21, 27, 243, 233, 166, 96, 248, 254, 183, 15, 247,\n\t\t47, 26, 47, 46, 48, 54, 207, 135, 108, 242, 17, 225, 84, 67,\n\t\t55, 35, 193, 126, 8, 131, 37, 98, 147, 182, 84, 62, 209, 168,\n\t\t62, 131, 170, 58, 129, 230, 113, 12, 101, 63, 19, 176, 12,\n\t\t217, 49, 138, 193, 206, 77, 102, 232, 162, 243, 55, 13, 93,\n\t\t202, 140, 188, 154, 2, 114, 128, 22, 87, 224, 12, 238, 114,\n\t\t82, 139, 66, 12, 164, 185, 46, 22, 147, 31, 237, 43, 137,\n\t\t103, 74, 136, 62, 241, 33, 150, 18, 91, 25, 44, 144, 75, 10,\n\t\t5, 179, 64, 1, 92, 2, 139, 75, 10, 190, 18, 141, 127, 62,\n\t\t234, 130, 91, 52, 28, 148, 53, 87, 192, 93, 116, 91, 115,\n\t\t74, 245, 98, 138, 215, 74, 33, 133, 174, 36, 216, 163, 92,\n\t\t36, 130, 129, 125, 20, 223, 89, 201, 10, 134, 38, 160, 213,\n\t\t219, 215, 121, 219, 218, 163, 183, 144, 176, 172, 104, 114,\n\t\t48, 131, 39, 254, 74, 108, 146, 165, 133, 29, 34, 41, 162,\n\t\t131, 86, 44, 230, 226, 235, 122, 14, 249, 96, 235, 181, 201,\n\t\t197, 201, 234, 38, 93, 182, 57, 158, 90, 169, 163, 162, 8,\n\t\t38, 41, 211, 159, 183, 239, 41, 209, 82, 1, 98, 52, 116, 72,\n\t\t200, 167, 27, 230, 160, 188, 110, 117, 19, 43, 68, 188, 3,\n\t\t240, 189, 66, 36, 82, 177, 33, 138, 172, 179, 21, 109, 214,\n\t\t36, 82, 238, 218, 184, 86, 89, 5, 55, 170, 193, 19, 26, 173,\n\t\t42, 174, 15, 215, 85, 122, 177, 111, 78, 224, 226, 40, 36,\n\t\t223, 86, 30, 22, 17, 70, 95, 94, 111, 178, 231, 123, 121,\n\t\t231, 64, 136, 200, 66, 177, 30, 214, 162, 204, 254, 102, 100,\n\t\t207, 182, 101, 84, 5, 227, 203, 134, 179, 211, 170, 154, 140,\n\t\t12, 253, 37, 149, 41, 219, 72, 239, 20, 229, 65, 143, 207,\n\t\t46, 172, 145, 108, 75, 201, 192, 9, 7, 232, 134, 190, 143,\n\t\t199, 16, 182, 177, 164, 141, 97, 83, 134, 112, 35, 45, 224,\n\t\t41, 77, 168, 114, 35, 95, 174, 79, 223, 223, 223, 111, 239,\n\t\t94, 4, 173, 250, 229, 2, 151, 242, 205, 101, 40, 32, 51, 197,\n\t\t252, 246, 200, 76, 95, 13, 204, 244, 151, 2, 86, 165, 26,\n\t\t125, 199, 160, 236, 43, 32, 0, 105, 78, 115, 226, 17, 175,\n\t\t207, 42, 180, 99, 12, 252, 253, 104, 32, 135, 209, 214, 211,\n\t\t82, 158, 138, 34, 194, 156, 121, 126, 229, 240, 224, 234,\n\t\t142, 202, 131, 246, 153, 247, 232, 45, 144, 14, 241, 153,\n\t\t89, 134, 212, 103, 87, 196, 39, 5, 129, 19, 125, 21, 80, 82,\n\t\t19, 180, 76, 206, 114, 38, 104, 177, 156, 181, 159, 62, 244,\n\t\t42, 127, 167, 161, 95, 193, 159, 245, 175, 79, 161, 102, 117,\n\t\t197, 59, 235, 14, 213, 210, 172, 59, 118, 212, 217, 195, 27,\n\t\t193, 206, 254, 157, 81, 103, 31, 62, 110, 247, 159, 220, 31,\n\t\t247, 31, 46, 57, 170, 126, 185, 128, 163, 59, 163, 216, 0,\n\t\t175, 221, 185, 37, 116, 237, 224, 184, 224, 45, 122, 26, 71,\n\t\t73, 252, 206, 98, 138, 67, 226, 149, 121, 164, 73, 92, 207,\n\t\t219, 25, 1, 42, 50, 33, 226, 40, 235, 19, 243, 106, 215, 196,\n\t\t185, 51, 107, 94, 81, 114, 64, 28, 104, 232, 32, 8, 66, 17,\n\t\t153, 140, 222, 14, 8, 24, 169, 18, 21, 156, 245, 210, 153,\n\t\t205, 86, 203, 101, 197, 114, 86, 46, 253, 221, 2, 172, 154,\n\t\t33, 35, 150, 179, 165, 80, 36, 51, 92, 159, 239, 190, 203,\n\t\t66, 107, 198, 65, 249, 254, 147, 223, 17, 226, 6, 26, 195,\n\t\t81, 150, 249, 182, 19, 79, 111, 58, 82, 236, 39, 35, 161,\n\t\t126, 188, 43, 157, 247, 146, 204, 107, 123, 93, 75, 247, 106,\n\t\t169, 206, 209, 231, 184, 148, 172, 33, 232, 41, 146, 79, 32,\n\t\t205, 148, 116, 201, 20, 139, 207, 13, 109, 213, 67, 104, 93,\n\t\t133, 82, 241, 37, 78, 74, 104, 66, 164, 78, 138, 234, 32,\n\t\t196, 249, 209, 149, 150, 125, 203, 171, 160, 52, 73, 44, 96,\n\t\t82, 75, 34, 248, 150, 145, 155, 167, 114, 128, 37, 197, 107,\n\t\t213, 147, 5, 138, 39, 33, 233, 196, 87, 17, 37, 98, 37, 75,\n\t\t200, 148, 95, 163, 250, 114, 88, 195, 73, 1, 73, 118, 145,\n\t\t22, 115, 50, 240, 180, 74, 163, 218, 249, 49, 215, 234, 41,\n\t\t173, 220, 112, 9, 110, 247, 56, 212, 221, 134, 189, 74, 162,\n\t\t57, 196, 69, 174, 143, 60, 222, 197, 50, 124, 79, 75, 234,\n\t\t121, 3, 51, 34, 226, 240, 71, 61, 34, 127, 188, 225, 26, 98,\n\t\t190, 68, 187, 8, 62, 165, 199, 59, 234, 217, 87, 196, 9, 110,\n\t\t68, 138, 128, 64, 241, 8, 49, 111, 32, 249, 124, 40, 39, 12,\n\t\t81, 60, 28, 137, 87, 177, 38, 113, 167, 163, 44, 177, 247,\n\t\t237, 252, 173, 163, 34, 62, 98, 131, 200, 57, 228, 227, 136,\n\t\t48, 120, 188, 139, 41, 249, 214, 96, 157, 166, 22, 125, 230,\n\t\t155, 4, 85, 89, 63, 152, 135, 175, 229, 241, 46, 243, 122,\n\t\t209, 80, 137, 39, 117, 192, 107, 236, 197, 246, 45, 196, 192,\n\t\t230, 82, 124, 74, 242, 102, 46, 94, 223, 11, 125, 94, 149,\n\t\t235, 147, 254, 143, 251, 139, 201, 126, 17, 226, 124, 78,\n\t\t72, 39, 249, 146, 69, 248, 245, 120, 200, 239, 60, 26, 205,\n\t\t160, 131, 146, 138, 144, 13, 193, 32, 77, 230, 237, 186, 187,\n\t\t200, 93, 84, 55, 52, 92, 44, 146, 120, 17, 43, 50, 24, 122,\n\t\t183, 212, 133, 49, 124, 90, 17, 152, 152, 23, 215, 73, 253,\n\t\t189, 84, 27, 98, 224, 186, 122, 213, 113, 223, 217, 5, 22,\n\t\t36, 64, 166, 226, 194, 132, 41, 146, 59, 244, 134, 149, 223,\n\t\t133, 1, 222, 146, 12, 87, 144, 206, 128, 119, 185, 145, 79,\n\t\t125, 47, 3, 138, 0, 160, 112, 91, 152, 118, 46, 149, 164,\n\t\t62, 1, 243, 13, 180, 178, 88, 61, 227, 64, 145, 131, 84, 45,\n\t\t45, 148, 138, 15, 144, 180, 101, 141, 136, 148, 60, 98, 53,\n\t\t210, 154, 210, 14, 120, 32, 112, 15, 73, 231, 107, 213, 237,\n\t\t167, 42, 58, 135, 27, 89, 35, 85, 148, 19, 56, 137, 191, 125,\n\t\t73, 136, 38, 171, 69, 38, 188, 221, 110, 119, 183, 46, 237,\n\t\t214, 170, 36, 145, 243, 168, 239, 75, 143, 150, 22, 130, 146,\n\t\t244, 244, 120, 23, 123, 243, 216, 126, 138, 135, 183, 141,\n\t\t165, 41, 153, 179, 141, 106, 135, 242, 223, 91, 31, 16, 225,\n\t\t17, 44, 157, 11, 215, 178, 144, 207, 21, 203, 71, 139, 18,\n\t\t239, 19, 133, 14, 25, 97, 136, 188, 148, 192, 199, 86, 6,\n\t\t210, 103, 151, 156, 17, 68, 177, 82, 149, 160, 154, 166, 112,\n\t\t30, 133, 16, 107, 150, 162, 31, 60, 159, 212, 253, 216, 162,\n\t\t15, 0, 184, 196, 242, 97, 12, 53, 68, 18, 75, 59, 207, 139,\n\t\t44, 32, 97, 229, 34, 1, 235, 35, 41, 175, 112, 15, 152, 140,\n\t\t66, 200, 13, 126, 29, 141, 176, 104, 209, 199, 8, 239, 126,\n\t\t208, 69, 142, 197, 68, 140, 167, 76, 234, 131, 100, 229, 217,\n\t\t72, 162, 4, 173, 37, 75, 14, 59, 124, 145, 162, 20, 147, 121,\n\t\t30, 19, 41, 132, 69, 34, 181, 136, 228, 172, 145, 18, 37,\n\t\t32, 155, 253, 198, 44, 220, 62, 126, 94, 47, 128, 128, 127,\n\t\t153, 145, 189, 153, 75, 60, 150, 88, 162, 39, 90, 115, 135,\n\t\t59, 146, 52, 25, 173, 36, 157, 28, 77, 15, 186, 38, 247, 112,\n\t\t133, 199, 6, 71, 70, 18, 202, 101, 88, 72, 228, 230, 137,\n\t\t0, 18, 135, 250, 81, 119, 187, 114, 48, 74, 93, 137, 178,\n\t\t220, 166, 62, 82, 9, 120, 30, 44, 29, 105, 240, 66, 206, 216,\n\t\t88, 106, 81, 170, 218, 90, 103, 166, 84, 70, 196, 86, 106,\n\t\t232, 251, 205, 21, 139, 152, 148, 216, 141, 3, 112, 49, 80,\n\t\t1, 34, 237, 24, 164, 129, 47, 202, 90, 11, 227, 33, 120, 186,\n\t\t244, 239, 155, 3, 127, 244, 98, 120, 26, 43, 183, 173, 4,\n\t\t173, 243, 160, 40, 234, 78, 67, 174, 88, 138, 10, 237, 208,\n\t\t146, 2, 168, 36, 196, 247, 108, 177, 139, 51, 187, 84, 236,\n\t\t208, 107, 23, 159, 238, 89, 194, 95, 198, 178, 49, 125, 209,\n\t\t89, 243, 244, 89, 87, 207, 220, 22, 9, 173, 95, 34, 214, 2,\n\t\t228, 77, 96, 213, 75, 77, 90, 189, 242, 78, 159, 225, 37,\n\t\t135, 226, 81, 148, 249, 171, 11, 137, 247, 97, 107, 54, 212,\n\t\t164, 246, 113, 141, 193, 2, 100, 116, 167, 204, 194, 0, 62,\n\t\t81, 237, 139, 202, 194, 52, 36, 102, 54, 11, 131, 239, 146,\n\t\t197, 146, 197, 203, 8, 102, 125, 202, 2, 203, 50, 4, 46, 159,\n\t\t133, 66, 137, 229, 9, 131, 11, 181, 24, 184, 198, 166, 98,\n\t\t9, 198, 118, 206, 35, 174, 217, 116, 107, 106, 51, 74, 169,\n\t\t79, 193, 129, 191, 157, 186, 238, 186, 73, 0, 29, 111, 140,\n\t\t231, 79, 247, 255, 235, 214, 23, 172, 146, 191, 254, 207,\n\t\t25, 224, 95, 38, 177, 89, 57, 22, 131, 174, 39, 58, 213, 124,\n\t\t53, 239, 65, 177, 217, 98, 184, 122, 215, 195, 75, 118, 202,\n\t\t135, 75, 75, 225, 195, 243, 207, 75, 250, 65, 236, 253, 170,\n\t\t195, 23, 184, 112, 183, 204, 162, 7, 228, 173, 222, 178, 84,\n\t\t226, 61, 246, 173, 179, 175, 136, 169, 19, 89, 10, 84, 185,\n\t\t138, 107, 206, 18, 17, 21, 22, 128, 211, 9, 98, 70, 231, 179,\n\t\t7, 119, 118, 234, 244, 82, 151, 124, 98, 193, 213, 144, 235,\n\t\t15, 231, 231, 114, 105, 66, 221, 93, 47, 231, 69, 59, 61,\n\t\t92, 182, 249, 225, 197, 70, 23, 35, 226, 91, 246, 87, 239,\n\t\t60, 188, 222, 234, 245, 92, 250, 91, 175, 127, 185, 230, 175,\n\t\t123, 63, 55, 63, 15, 130, 183, 41, 254, 213, 169, 251, 249,\n\t\t254, 247, 63, 46, 166, 237, 191, 108, 218, 38, 164, 159, 159,\n\t\t106, 62, 230, 220, 17, 56, 224, 114, 86, 90, 103, 26, 241,\n\t\t198, 252, 72, 175, 240, 26, 228, 124, 11, 5, 52, 197, 107,\n\t\t147, 163, 106, 16, 33, 11, 204, 213, 52, 8, 129, 128, 209,\n\t\t84, 1, 59, 215, 223, 83, 192, 46, 147, 202, 56, 172, 97, 81,\n\t\t69, 105, 120, 81, 250, 106, 212, 160, 154, 168, 129, 248,\n\t\t3, 137, 35, 113, 117, 22, 129, 70, 130, 215, 211, 53, 53,\n\t\t132, 149, 49, 136, 182, 118, 33, 13, 68, 24, 114, 145, 187,\n\t\t84, 170, 40, 196, 17, 203, 231, 136, 226, 4, 105, 220, 200,\n\t\t216, 168, 86, 24, 73, 97, 162, 46, 144, 143, 134, 154, 76,\n\t\t240, 104, 107, 42, 139, 52, 13, 166, 74, 22, 131, 24, 163,\n\t\t230, 224, 162, 188, 144, 178, 115, 84, 176, 184, 161, 145,\n\t\t57, 188, 218, 147, 16, 10, 70, 11, 123, 204, 136, 148, 18,\n\t\t195, 127, 133, 180, 2, 196, 35, 59, 111, 77, 113, 199, 134,\n\t\t36, 8, 163, 255, 180, 101, 103, 234, 197, 179, 6, 157, 23,\n\t\t172, 47, 110, 13, 184, 79, 238, 120, 191, 253, 235, 37, 192,\n\t\t189, 245, 18, 112, 47, 77, 93, 36, 116, 95, 202, 18, 27, 75,\n\t\t99, 107, 148, 40, 23, 53, 127, 164, 106, 57, 125, 85, 204,\n\t\t55, 200, 175, 8, 18, 189, 9, 51, 157, 104, 71, 36, 54, 221,\n\t\t209, 198, 22, 139, 230, 104, 65, 6, 30, 107, 178, 20, 37,\n\t\t112, 100, 72, 76, 26, 70, 130, 25, 81, 69, 214, 67, 239, 52,\n\t\t53, 238, 100, 141, 22, 14, 24, 64, 44, 225, 210, 180, 85,\n\t\t100, 145, 187, 146, 4, 160, 73, 80, 217, 200, 75, 21, 178,\n\t\t18, 61, 47, 48, 10, 179, 72, 122, 224, 183, 245, 58, 8, 150,\n\t\t111, 165, 143, 28, 44, 23, 100, 169, 166, 104, 247, 124, 135,\n\t\t156, 66, 10, 71, 167, 134, 61, 146, 142, 69, 68, 76, 53, 46,\n\t\t43, 137, 148, 194, 227, 6, 181, 45, 8, 103, 46, 62, 179, 144,\n\t\t200, 205, 209, 199, 66, 44, 86, 145, 145, 149, 118, 117, 192,\n\t\t35, 14, 185, 160, 29, 184, 33, 179, 40, 249, 128, 240, 161,\n\t\t92, 89, 105, 130, 61, 122, 171, 69, 132, 43, 96, 162, 117,\n\t\t90, 139, 26, 161, 136, 252, 8, 131, 69, 122, 150, 98, 13,\n\t\t196, 48, 118, 77, 140, 145, 243, 195, 202, 138, 120, 197,\n\t\t94, 22, 163, 72, 64, 174, 232, 60, 140, 93, 178, 195, 13,\n\t\t1, 17, 159, 130, 98, 132, 111, 13, 226, 53, 185, 250, 78,\n\t\t11, 33, 31, 111, 235, 81, 68, 195, 30, 44, 42, 83, 178, 166,\n\t\t208, 36, 18, 249, 166, 234, 66, 2, 211, 104, 132, 90, 46,\n\t\t235, 131, 197, 198, 21, 85, 53, 16, 224, 57, 96, 161, 82,\n\t\t68, 64, 151, 168, 121, 26, 91, 140, 150, 155, 43, 242, 53,\n\t\t2, 174, 193, 194, 146, 20, 188, 137, 212, 124, 193, 179, 156,\n\t\t117, 255, 236, 99, 147, 44, 119, 22, 2, 175, 207, 140, 63,\n\t\t223, 127, 94, 239, 31, 222, 25, 222, 205, 197, 228, 184, 22,\n\t\t22, 152, 4, 223, 234, 58, 250, 172, 202, 43, 215, 32, 124,\n\t\t133, 123, 94, 1, 8, 190, 47, 158, 142, 84, 210, 251, 129,\n\t\t111, 171, 18, 161, 173, 85, 188, 68, 27, 86, 73, 234, 139,\n\t\t0, 189, 177, 171, 23, 181, 197, 19, 157, 179, 165, 62, 33,\n\t\t68, 93, 186, 114, 221, 63, 33, 117, 125, 74, 252, 106, 181,\n\t\t122, 78, 183, 234, 228, 21, 71, 126, 254, 156, 113, 245, 140,\n\t\t142, 85, 74, 64, 181, 223, 46, 194, 225, 237, 202, 64, 57,\n\t\t47, 57, 4, 97, 246, 207, 253, 132, 16, 202, 43, 200, 198,\n\t\t55, 134, 214, 124, 203, 237, 64, 193, 63, 63, 253, 241, 233,\n\t\t253, 195, 133, 59, 120, 141, 63, 223, 157, 196, 179, 38, 135,\n\t\t115, 240, 159, 111, 139, 190, 121, 49, 32, 101, 6, 147, 125,\n\t\t25, 203, 232, 193, 157, 157, 74, 42, 246, 225, 193, 41, 90,\n\t\t131, 170, 224, 130, 39, 245, 2, 24, 208, 183, 193, 114, 189,\n\t\t58, 118, 230, 106, 31, 254, 231, 254, 243, 122, 252, 229,\n\t\t227, 199, 11, 240, 179, 245, 34, 222, 179, 16, 77, 171, 198,\n\t\t240, 200, 181, 146, 164, 118, 225, 123, 78, 103, 216, 161,\n\t\t34, 182, 78, 116, 209, 151, 145, 37, 206, 202, 189, 223, 121,\n\t\t116, 113, 12, 95, 218, 88, 45, 40, 157, 116, 111, 230, 253,\n\t\t127, 36, 30, 252, 50, 17, 170, 34, 47, 20, 201, 213, 222,\n\t\t168, 87, 79, 121, 225, 159, 66, 71, 228, 39, 180, 199, 187,\n\t\t140, 244, 172, 37, 246, 224, 7, 34, 68, 196, 239, 16, 101,\n\t\t208, 207, 11, 41, 74, 194, 91, 144, 140, 184, 26, 218, 6,\n\t\t199, 123, 135, 213, 147, 34, 47, 254, 146, 26, 4, 31, 80,\n\t\t228, 109, 145, 250, 18, 100, 167, 167, 165, 104, 222, 244,\n\t\t188, 32, 180, 206, 229, 20, 107, 242, 173, 110, 173, 248,\n\t\t178, 180, 34, 96, 118, 252, 213, 46, 168, 3, 101, 49, 151,\n\t\t58, 78, 96, 169, 10, 99, 9, 143, 119, 52, 200, 215, 40, 170,\n\t\t182, 36, 245, 63, 141, 172, 129, 36, 3, 33, 177, 8, 11, 178,\n\t\t27, 117, 117, 37, 202, 134, 29, 228, 122, 120, 18, 110, 163,\n\t\t23, 70, 85, 148, 128, 51, 165, 125, 142, 52, 67, 217, 141,\n\t\t71, 138, 136, 153, 57, 188, 178, 139, 31, 239, 236, 253, 112,\n\t\t93, 194, 170, 9, 159, 235, 0, 55, 114, 67, 230, 4, 12, 45,\n\t\t88, 217, 33, 59, 195, 74, 47, 209, 73, 66, 200, 188, 223,\n\t\t129, 180, 125, 26, 66, 201, 151, 36, 105, 113, 146, 55, 239,\n\t\t87, 84, 111, 135, 32, 78, 193, 136, 198, 133, 12, 80, 111,\n\t\t120, 188, 67, 77, 10, 171, 57, 219, 153, 31, 132, 85, 160,\n\t\t154, 176, 155, 67, 31, 170, 73, 177, 34, 244, 246, 20, 195,\n\t\t225, 53, 247, 95, 159, 94, 239, 127, 255, 253, 50, 141, 118,\n\t\t189, 8, 90, 220, 221, 114, 212, 135, 175, 202, 122, 13, 109,\n\t\t37, 104, 24, 68, 45, 18, 167, 25, 36, 209, 177, 79, 76, 198,\n\t\t162, 201, 234, 36, 137, 204, 181, 139, 17, 112, 116, 15, 208,\n\t\t12, 201, 37, 161, 32, 222, 100, 97, 201, 31, 146, 196, 19,\n\t\t149, 39, 61, 86, 73, 255, 239, 65, 242, 48, 20, 204, 98, 141,\n\t\t64, 226, 132, 113, 88, 48, 80, 32, 9, 199, 204, 125, 218,\n\t\t187, 24, 234, 168, 139, 156, 134, 228, 176, 66, 194, 72, 151,\n\t\t66, 226, 135, 5, 35, 178, 168, 64, 158, 13, 124, 50, 145,\n\t\t218, 250, 170, 25, 212, 26, 24, 243, 36, 15, 13, 140, 143,\n\t\t164, 198, 89, 49, 197, 102, 131, 145, 46, 2, 57, 41, 32, 8,\n\t\t246, 69, 251, 160, 203, 106, 221, 15, 58, 59, 93, 87, 147,\n\t\t158, 219, 81, 121, 121, 234, 3, 23, 213, 69, 33, 70, 223,\n\t\t28, 105, 80, 100, 13, 25, 188, 246, 176, 241, 75, 148, 18,\n\t\t20, 90, 193, 161, 38, 131, 85, 226, 5, 5, 250, 70, 87, 200,\n\t\t148, 60, 52, 201, 57, 70, 56, 38, 224, 131, 6, 160, 149, 75,\n\t\t150, 245, 14, 148, 51, 201, 248, 203, 147, 207, 68, 242, 75,\n\t\t245, 202, 3, 76, 245, 121, 212, 197, 252, 13, 243, 22, 189,\n\t\t99, 21, 31, 39, 43, 39, 121, 71, 62, 65, 50, 129, 232, 132,\n\t\t37, 33, 113, 78, 78, 143, 146, 121, 19, 58, 244, 11, 117,\n\t\t17, 54, 197, 138, 110, 150, 13, 47, 143, 56, 125, 230, 155,\n\t\t10, 126, 184, 93, 114, 161, 223, 184, 205, 215, 240, 138,\n\t\t36, 54, 170, 43, 148, 234, 40, 250, 82, 83, 224, 22, 138,\n\t\t170, 210, 14, 248, 213, 37, 213, 56, 38, 131, 111, 30, 138,\n\t\t55, 90, 212, 74, 234, 244, 30, 89, 65, 245, 228, 225, 218,\n\t\t219, 14, 63, 246, 117, 95, 253, 182, 239, 6, 200, 146, 96,\n\t\t70, 9, 52, 146, 88, 57, 36, 50, 98, 7, 53, 168, 47, 177, 136,\n\t\t31, 214, 174, 9, 4, 125, 199, 221, 131, 194, 76, 89, 131,\n\t\t109, 73, 29, 109, 114, 126, 36, 137, 229, 224, 141, 13, 168,\n\t\t193, 208, 3, 37, 204, 178, 32, 143, 166, 224, 145, 166, 158,\n\t\t109, 132, 74, 145, 248, 120, 6, 111, 133, 185, 45, 41, 168,\n\t\t173, 67, 11, 129, 66, 245, 179, 11, 15, 55, 74, 253, 173,\n\t\t133, 62, 252, 35, 75, 253, 53, 133, 62, 124, 117, 169, 143,\n\t\t84, 37, 68, 139, 120, 213, 217, 45, 213, 238, 204, 84, 173,\n\t\t134, 233, 39, 150, 107, 190, 112, 110, 168, 86, 59, 245, 115,\n\t\t195, 53, 44, 213, 55, 183, 205, 247, 31, 126, 115, 127, 124,\n\t\t252, 120, 17, 211, 178, 94, 0, 197, 62, 77, 149, 5, 176, 209,\n\t\t63, 117, 153, 249, 234, 183, 29, 126, 236, 235, 126, 226,\n\t\t50, 243, 173, 67, 255, 255, 77, 216, 191, 103, 169, 191, 186,\n\t\t208, 88, 101, 98, 20, 40, 96, 30, 159, 164, 179, 205, 0, 99,\n\t\t95, 18, 39, 226, 168, 99, 117, 67, 163, 190, 76, 4, 179, 208,\n\t\t58, 202, 10, 242, 16, 135, 114, 9, 72, 78, 235, 41, 198, 14,\n\t\t222, 240, 34, 236, 84, 75, 78, 98, 70, 181, 255, 63, 12, 129,\n\t\t54, 178, 139, 240, 122, 252, 32, 115, 151, 106, 90, 72, 77,\n\t\t166, 231, 233, 152, 59, 184, 182, 198, 123, 197, 69, 225,\n\t\t31, 143, 52, 20, 69, 242, 111, 87, 232, 47, 148, 25, 141,\n\t\t76, 18, 133, 162, 180, 47, 138, 207, 238, 162, 6, 140, 184,\n\t\t33, 82, 247, 222, 67, 142, 44, 237, 248, 27, 100, 79, 36,\n\t\t80, 112, 59, 221, 178, 85, 125, 126, 255, 225, 179, 123, 216,\n\t\t238, 31, 46, 98, 53, 214, 107, 201, 11, 41, 1, 30, 141, 130,\n\t\t140, 112, 11, 17, 112, 136, 136, 171, 172, 132, 89, 74, 124,\n\t\t17, 149, 62, 194, 218, 45, 65, 255, 176, 215, 99, 221, 21,\n\t\t148, 11, 97, 75, 97, 69, 39, 139, 45, 122, 190, 206, 158,\n\t\t118, 221, 50, 234, 249, 113, 254, 17, 57, 125, 115, 165, 119,\n\t\t159, 234, 146, 75, 102, 109, 121, 157, 143, 90, 65, 156, 149,\n\t\t100, 190, 74, 31, 93, 172, 32, 86, 14, 45, 198, 97, 45, 211,\n\t\t142, 34, 175, 178, 39, 237, 77, 82, 4, 43, 1, 117, 65, 138,\n\t\t163, 140, 108, 83, 128, 119, 240, 116, 77, 73, 145, 19, 5,\n\t\t1, 98, 105, 18, 98, 181, 148, 110, 22, 150, 226, 107, 95,\n\t\t7, 47, 7, 130, 155, 192, 138, 104, 236, 138, 6, 209, 69, 33,\n\t\t9, 107, 174, 26, 217, 64, 124, 173, 47, 148, 171, 111, 200,\n\t\t149, 8, 62, 32, 228, 90, 206, 19, 145, 239, 146, 159, 100,\n\t\t0, 38, 1, 126, 14, 110, 132, 157, 5, 127, 130, 210, 25, 0,\n\t\t36, 229, 140, 16, 227, 0, 103, 97, 28, 242, 125, 224, 8, 150,\n\t\t182, 148, 172, 177, 147, 93, 106, 211, 58, 162, 98, 182, 216,\n\t\t146, 175, 93, 147, 48, 128, 189, 168, 158, 5, 160, 110, 194,\n\t\t20, 209, 72, 19, 196, 179, 197, 218, 16, 85, 191, 159, 175,\n\t\t110, 52, 217, 130, 97, 254, 170, 75, 27, 22, 251, 2, 162,\n\t\t137, 238, 111, 0, 12, 124, 126, 255, 233, 146, 46, 110, 253,\n\t\t249, 33, 251, 202, 118, 91, 194, 63, 144, 237, 54, 246, 240,\n\t\t79, 100, 187, 69, 167, 212, 112, 88, 103, 250, 8, 240, 161,\n\t\t138, 79, 88, 247, 53, 81, 34, 10, 0, 87, 64, 46, 252, 204,\n\t\t254, 213, 92, 244, 118, 86, 124, 137, 179, 183, 47, 197, 32,\n\t\t121, 216, 209, 168, 72, 73, 68, 129, 170, 89, 47, 150, 191,\n\t\t67, 161, 72, 58, 14, 159, 61, 52, 13, 215, 119, 22, 190, 143,\n\t\t191, 90, 178, 207, 58, 230, 184, 176, 192, 39, 188, 203, 210,\n\t\t86, 244, 219, 250, 105, 100, 12, 73, 241, 170, 89, 52, 27,\n\t\t217, 123, 171, 64, 4, 0, 237, 140, 79, 174, 79, 146, 143,\n\t\t31, 63, 95, 46, 237, 151, 124, 252, 19, 243, 55, 231, 228,\n\t\t71, 95, 18, 34, 24, 89, 116, 145, 40, 184, 172, 49, 166, 226,\n\t\t112, 143, 81, 226, 83, 161, 187, 168, 153, 105, 65, 26, 101,\n\t\t78, 16, 173, 103, 140, 54, 32, 228, 17, 130, 45, 144, 95,\n\t\t6, 202, 154, 170, 70, 50, 54, 159, 10, 137, 19, 72, 194, 239,\n\t\t52, 230, 26, 246, 60, 196, 72, 140, 108, 1, 140, 97, 90, 89,\n\t\t131, 79, 52, 54, 103, 185, 166, 73, 236, 163, 128, 182, 235,\n\t\t240, 39, 83, 178, 116, 198, 162, 238, 179, 152, 246, 12, 19,\n\t\t49, 181, 235, 149, 3, 108, 170, 163, 170, 77, 181, 74, 136,\n\t\t217, 48, 128, 166, 1, 210, 29, 9, 173, 221, 0, 169, 43, 208,\n\t\t70, 29, 102, 200, 108, 32, 81, 221, 208, 92, 128, 207, 146,\n\t\t72, 107, 145, 134, 134, 142, 203, 5, 216, 156, 36, 203, 88,\n\t\t104, 16, 100, 76, 70, 85, 56, 64, 108, 23, 196, 18, 248, 244,\n\t\t123, 206, 62, 152, 38, 7, 142, 65, 81, 82, 209, 86, 142, 22,\n\t\t255, 43, 101, 182, 243, 3, 176, 229, 76, 83, 141, 85, 137,\n\t\t174, 52, 208, 127, 54, 135, 182, 198, 108, 212, 217, 166,\n\t\t20, 228, 67, 153, 91, 70, 51, 10, 74, 94, 70, 210, 83, 235,\n\t\t22, 237, 21, 46, 162, 58, 36, 212, 29, 14, 190, 28, 240, 253,\n\t\t20, 139, 248, 71, 239, 207, 206, 143, 36, 209, 211, 8, 26,\n\t\t14, 146, 46, 129, 209, 86, 187, 6, 124, 32, 171, 90, 199,\n\t\t23, 207, 71, 160, 251, 20, 49, 132, 243, 136, 225, 242, 245,\n\t\t40, 114, 245, 136, 242, 247, 145, 148, 26, 206, 224, 143,\n\t\t171, 194, 141, 113, 69, 32, 187, 131, 220, 141, 39, 89, 85,\n\t\t79, 1, 143, 185, 48, 42, 108, 182, 133, 22, 87, 179, 112,\n\t\t118, 89, 88, 180, 67, 144, 65, 105, 16, 1, 49, 142, 163, 50,\n\t\t190, 70, 213, 7, 20, 164, 51, 43, 133, 83, 211, 224, 203,\n\t\t153, 50, 96, 32, 239, 6, 238, 41, 143, 109, 46, 118, 137,\n\t\t37, 165, 46, 184, 118, 66, 59, 71, 18, 134, 29, 65, 170, 132,\n\t\t178, 195, 92, 141, 8, 135, 60, 144, 15, 139, 184, 73, 22,\n\t\t243, 83, 40, 136, 1, 45, 146, 131, 128, 150, 239, 67, 115,\n\t\t17, 196, 45, 177, 230, 185, 19, 104, 164, 7, 111, 225, 185,\n\t\t251, 130, 70, 131, 57, 87, 91, 237, 234, 162, 242, 231, 239,\n\t\t191, 124, 122, 183, 109, 247, 238, 151, 119, 247, 151, 65,\n\t\t190, 235, 149, 220, 26, 172, 209, 60, 27, 200, 147, 192, 236,\n\t\t195, 222, 61, 177, 194, 179, 180, 34, 85, 105, 141, 73, 252,\n\t\t197, 123, 76, 12, 109, 45, 3, 45, 146, 101, 190, 80, 137,\n\t\t190, 242, 184, 168, 190, 246, 193, 187, 177, 7, 240, 27, 249,\n\t\t14, 143, 15, 34, 68, 135, 133, 85, 40, 183, 130, 27, 209,\n\t\t86, 24, 184, 13, 90, 242, 141, 119, 20, 22, 234, 151, 200,\n\t\t235, 109, 230, 118, 18, 33, 45, 16, 226, 76, 145, 10, 159,\n\t\t17, 79, 79, 25, 113, 220, 16, 81, 132, 99, 172, 41, 164, 87,\n\t\t64, 62, 156, 12, 120, 89, 171, 99, 2, 45, 213, 226, 242, 97,\n\t\t173, 36, 148, 85, 44, 193, 162, 110, 173, 27, 196, 34, 247,\n\t\t22, 203, 137, 138, 119, 83, 18, 127, 243, 241, 174, 68, 242,\n\t\t192, 185, 111, 190, 32, 155, 19, 74, 64, 49, 192, 59, 0, 97,\n\t\t46, 146, 109, 209, 22, 222, 206, 179, 108, 103, 197, 39, 100,\n\t\t15, 74, 154, 144, 56, 135, 128, 110, 76, 36, 83, 95, 66, 166,\n\t\t135, 248, 184, 101, 233, 32, 89, 99, 55, 4, 15, 85, 26, 75,\n\t\t130, 127, 4, 241, 122, 248, 110, 1, 14, 102, 204, 18, 255,\n\t\t78, 160, 226, 6, 5, 66, 70, 234, 19, 100, 229, 195, 234, 34,\n\t\t160, 172, 162, 108, 237, 161, 239, 162, 60, 114, 97, 145,\n\t\t195, 155, 36, 235, 172, 20, 77, 250, 40, 53, 236, 41, 23,\n\t\t151, 22, 170, 50, 168, 159, 89, 168, 48, 181, 191, 164, 200,\n\t\t89, 126, 203, 126, 114, 116, 37, 191, 72, 185, 172, 169, 81,\n\t\t139, 222, 119, 218, 223, 220, 53, 0, 109, 183, 224, 168, 111,\n\t\t97, 30, 30, 163, 176, 123, 53, 221, 155, 89, 20, 79, 237,\n\t\t176, 213, 32, 179, 205, 105, 234, 234, 198, 235, 135, 238,\n\t\t88, 141, 133, 247, 99, 76, 220, 98, 87, 231, 214, 233, 221,\n\t\t250, 249, 227, 39, 247, 240, 127, 254, 188, 191, 76, 40, 95,\n\t\t127, 153, 140, 34, 20, 95, 67, 200, 112, 98, 37, 240, 38,\n\t\t161, 194, 173, 183, 28, 221, 184, 17, 224, 11, 101, 243, 251,\n\t\t95, 115, 61, 102, 250, 68, 3, 155, 217, 55, 191, 192, 48,\n\t\t161, 190, 212, 22, 71, 169, 196, 183, 62, 174, 220, 20, 84,\n\t\t151, 212, 51, 15, 214, 35, 98, 59, 133, 189, 189, 230, 151,\n\t\t174, 242, 178, 161, 39, 250, 39, 33, 183, 184, 188, 72, 117,\n\t\t25, 245, 192, 77, 240, 10, 96, 8, 237, 144, 215, 197, 167,\n\t\t234, 40, 185, 205, 23, 47, 13, 36, 118, 206, 47, 182, 209,\n\t\t141, 184, 138, 255, 188, 123, 255, 219, 241, 179, 59, 222,\n\t\t127, 248, 237, 165, 0, 176, 95, 247, 241, 29, 124, 236, 139,\n\t\t228, 210, 149, 21, 52, 180, 65, 36, 61, 69, 184, 207, 26,\n\t\t171, 88, 117, 15, 116, 89, 37, 111, 187, 114, 116, 25, 172,\n\t\t55, 80, 78, 177, 91, 7, 137, 150, 204, 146, 201, 163, 120,\n\t\t155, 85, 226, 69, 245, 161, 173, 105, 58, 82, 228, 109, 34,\n\t\t173, 73, 83, 192, 168, 120, 234, 146, 235, 39, 145, 161, 69,\n\t\t18, 132, 140, 174, 73, 207, 143, 200, 173, 89, 103, 20, 19,\n\t\t153, 173, 175, 40, 84, 162, 129, 164, 206, 11, 66, 151, 243,\n\t\t165, 224, 95, 132, 31, 199, 240, 101, 60, 54, 34, 203, 117,\n\t\t81, 141, 29, 139, 143, 48, 225, 24, 58, 99, 138, 90, 44, 202,\n\t\t226, 104, 6, 139, 175, 50, 223, 40, 193, 165, 213, 195, 105,\n\t\t69, 132, 80, 210, 226, 217, 95, 13, 162, 246, 162, 1, 236,\n\t\t225, 252, 252, 21, 177, 55, 255, 121, 255, 225, 157, 251,\n\t\t109, 187, 127, 120, 120, 49, 130, 246, 221, 115, 241, 34,\n\t\t118, 83, 94, 162, 44, 253, 107, 20, 186, 195, 37, 44, 89,\n\t\t134, 63, 252, 230, 124, 44, 177, 80, 23, 17, 105, 78, 255,\n\t\t127, 116, 49, 244, 103, 33, 105, 231, 65, 103, 43, 236, 189,\n\t\t120, 247, 217, 91, 241, 255, 99, 14, 39, 222, 23, 169, 175,\n\t\t172, 230, 136, 150, 80, 108, 215, 163, 238, 67, 89, 218, 80,\n\t\t15, 62, 203, 40, 60, 168, 120, 219, 69, 242, 138, 88, 60,\n\t\t136, 214, 0, 203, 96, 29, 75, 87, 20, 255, 230, 139, 208,\n\t\t105, 102, 5, 24, 45, 51, 142, 139, 207, 143, 145, 197, 91,\n\t\t104, 255, 178, 95, 5, 254, 11, 180, 25, 87, 117, 76, 32, 233,\n\t\t13, 221, 2, 160, 116, 42, 58, 66, 240, 201, 64, 107, 85, 222,\n\t\t40, 215, 132, 111, 147, 135, 25, 248, 66, 88, 233, 128, 181,\n\t\t8, 197, 117, 40, 111, 25, 39, 135, 122, 142, 99, 14, 143,\n\t\t119, 21, 50, 106, 14, 97, 155, 153, 208, 174, 135, 35, 191,\n\t\t186, 231, 253, 90, 15, 71, 71, 53, 223, 128, 98, 184, 127,\n\t\t255, 201, 253, 235, 211, 187, 135, 227, 187, 15, 151, 193,\n\t\t33, 191, 94, 132, 78, 159, 69, 135, 54, 222, 88, 23, 138,\n\t\t213, 151, 193, 26, 66, 19, 224, 59, 2, 249, 37, 166, 28, 192,\n\t\t74, 52, 89, 24, 180, 152, 200, 253, 145, 43, 71, 193, 63,\n\t\t145, 37, 238, 37, 41, 228, 137, 159, 108, 188, 194, 146, 28,\n\t\t251, 45, 76, 217, 113, 29, 139, 145, 116, 21, 231, 114, 29,\n\t\t36, 159, 185, 202, 18, 198, 170, 2, 16, 189, 187, 17, 216,\n\t\t106, 109, 180, 50, 219, 200, 66, 236, 49, 154, 210, 119, 228,\n\t\t1, 77, 73, 120, 155, 37, 78, 15, 76, 6, 112, 116, 76, 108,\n\t\t153, 36, 206, 133, 40, 132, 87, 192, 47, 71, 50, 110, 245,\n\t\t5, 1, 16, 98, 156, 173, 102, 167, 46, 58, 28, 243, 60, 228,\n\t\t149, 167, 94, 137, 177, 124, 184, 12, 171, 4, 85, 152, 9,\n\t\t208, 172, 76, 65, 75, 2, 228, 12, 16, 105, 139, 105, 225,\n\t\t252, 106, 43, 146, 211, 50, 13, 51, 244, 4, 25, 174, 196,\n\t\t18, 112, 22, 96, 86, 181, 72, 104, 157, 236, 202, 108, 138,\n\t\t199, 59, 26, 136, 33, 3, 45, 253, 76, 239, 95, 102, 182, 188,\n\t\t187, 200, 159, 183, 131, 243, 190, 255, 82, 146, 253, 188,\n\t\t112, 120, 176, 43, 6, 74, 245, 236, 78, 25, 3, 89, 113, 28,\n\t\t94, 64, 18, 56, 187, 247, 241, 46, 65, 55, 2, 233, 12, 198,\n\t\t42, 255, 222, 88, 76, 239, 255, 248, 99, 123, 247, 210, 58,\n\t\t250, 235, 69, 176, 245, 110, 4, 74, 37, 248, 94, 22, 214,\n\t\t230, 163, 65, 18, 100, 85, 210, 114, 211, 204, 80, 210, 20,\n\t\t142, 154, 52, 247, 57, 71, 222, 97, 84, 47, 14, 106, 85, 208,\n\t\t253, 150, 247, 89, 185, 48, 148, 45, 189, 177, 150, 172, 122,\n\t\t95, 212, 87, 101, 64, 116, 171, 47, 22, 219, 51, 45, 174,\n\t\t11, 230, 180, 176, 63, 101, 251, 67, 76, 90, 174, 46, 60,\n\t\t190, 42, 103, 211, 0, 30, 145, 114, 32, 232, 107, 89, 14,\n\t\t87, 54, 162, 46, 54, 39, 126, 168, 116, 241, 200, 84, 101,\n\t\t150, 136, 138, 199, 151, 166, 172, 145, 37, 70, 143, 7, 136,\n\t\t48, 50, 21, 251, 147, 153, 123, 4, 27, 17, 171, 109, 127,\n\t\t0, 125, 12, 70, 100, 60, 171, 152, 150, 18, 41, 42, 181, 8,\n\t\t17, 157, 253, 117, 66, 44, 5, 251, 154, 227, 207, 229, 36,\n\t\t49, 245, 1, 100, 217, 32, 81, 166, 97, 13, 194, 165, 175,\n\t\t99, 41, 226, 195, 198, 219, 147, 24, 154, 176, 168, 183, 153,\n\t\t175, 171, 109, 66, 52, 16, 68, 150, 162, 194, 75, 203, 159,\n\t\t139, 69, 137, 238, 45, 13, 246, 14, 185, 45, 145, 92, 5, 8,\n\t\t202, 168, 243, 46, 244, 222, 210, 250, 202, 107, 14, 119,\n\t\t116, 76, 42, 255, 105, 178, 104, 210, 27, 109, 80, 240, 152,\n\t\t80, 232, 8, 107, 20, 187, 21, 246, 61, 222, 217, 106, 177,\n\t\t228, 249, 53, 166, 185, 117, 233, 104, 203, 230, 166, 207,\n\t\t58, 218, 116, 178, 187, 152, 15, 171, 209, 27, 15, 237, 23,\n\t\t77, 183, 181, 50, 24, 207, 94, 94, 163, 194, 85, 52, 189,\n\t\t49, 163, 30, 67, 63, 194, 5, 0, 161, 214, 227, 93, 28, 72,\n\t\t162, 73, 53, 128, 1, 90, 240, 57, 250, 236, 48, 50, 23, 197,\n\t\t204, 237, 117, 60, 226, 108, 20, 185, 57, 118, 108, 48, 185,\n\t\t50, 123, 182, 128, 57, 69, 80, 52, 86, 71, 122, 231, 152,\n\t\t67, 74, 15, 98, 128, 168, 117, 88, 173, 189, 34, 172, 62,\n\t\t146, 105, 28, 181, 27, 162, 116, 124, 41, 235, 208, 41, 99,\n\t\t101, 228, 34, 98, 211, 43, 214, 26, 96, 65, 199, 200, 179,\n\t\t210, 89, 225, 192, 102, 198, 189, 187, 113, 193, 196, 52,\n\t\t176, 193, 102, 10, 209, 50, 154, 214, 112, 54, 94, 101, 172,\n\t\t100, 155, 142, 9, 178, 238, 232, 240, 205, 81, 153, 99, 212,\n\t\t140, 161, 83, 241, 232, 250, 254, 116, 221, 178, 116, 255,\n\t\t249, 227, 5, 10, 211, 175, 151, 97, 243, 187, 181, 154, 146,\n\t\t7, 112, 119, 92, 179, 105, 223, 37, 171, 96, 70, 194, 186,\n\t\t238, 70, 87, 88, 32, 77, 172, 87, 166, 222, 161, 84, 101,\n\t\t37, 26, 1, 66, 32, 216, 145, 120, 254, 73, 224, 32, 33, 48,\n\t\t20, 214, 111, 129, 90, 136, 154, 208, 227, 138, 17, 157, 89,\n\t\t42, 179, 235, 150, 228, 61, 204, 186, 162, 87, 30, 92, 171,\n\t\t130, 240, 109, 40, 137, 243, 22, 189, 3, 6, 90, 29, 88, 106,\n\t\t164, 238, 205, 32, 11, 1, 250, 111, 37, 209, 130, 40, 124,\n\t\t120, 147, 25, 57, 201, 244, 134, 230, 133, 79, 42, 252, 36,\n\t\t196, 97, 171, 179, 198, 177, 182, 113, 214, 56, 214, 54, 238,\n\t\t252, 118, 10, 234, 249, 24, 202, 91, 47, 142, 154, 165, 232,\n\t\t48, 127, 90, 152, 53, 170, 93, 137, 219, 4, 86, 72, 109, 18,\n\t\t107, 145, 103, 181, 125, 224, 230, 168, 26, 49, 42, 36, 90,\n\t\t207, 90, 236, 176, 182, 226, 219, 152, 166, 24, 10, 197, 231,\n\t\t40, 166, 51, 137, 232, 125, 218, 45, 214, 22, 206, 26, 195,\n\t\t218, 194, 181, 115, 186, 126, 235, 251, 199, 187, 170, 116,\n\t\t118, 163, 174, 201, 200, 243, 170, 121, 207, 134, 98, 174,\n\t\t27, 217, 213, 62, 26, 130, 130, 249, 71, 223, 224, 136, 71,\n\t\t94, 148, 170, 139, 86, 132, 170, 127, 203, 98, 219, 220, 137,\n\t\t16, 89, 59, 21, 219, 171, 246, 1, 207, 47, 4, 30, 69, 18,\n\t\t221, 139, 132, 237, 76, 112, 4, 212, 146, 148, 12, 152, 193,\n\t\t56, 75, 179, 198, 8, 227, 53, 18, 102, 219, 125, 28, 143,\n\t\t119, 32, 95, 89, 98, 233, 190, 247, 149, 124, 26, 169, 8,\n\t\t214, 101, 71, 142, 64, 78, 165, 20, 30, 45, 232, 154, 170,\n\t\t106, 109, 14, 38, 25, 42, 22, 145, 208, 205, 144, 100, 30,\n\t\t74, 166, 154, 16, 16, 16, 116, 86, 105, 43, 187, 178, 78,\n\t\t223, 143, 236, 95, 146, 115, 53, 55, 201, 100, 160, 40, 154,\n\t\t6, 135, 92, 31, 24, 250, 150, 73, 132, 225, 192, 127, 81,\n\t\t1, 219, 144, 119, 196, 168, 189, 98, 128, 125, 23, 206, 122,\n\t\t227, 154, 19, 138, 57, 82, 50, 179, 103, 173, 39, 145, 51,\n\t\t169, 3, 211, 62, 227, 57, 221, 219, 205, 253, 39, 139, 66,\n\t\t50, 209, 48, 73, 6, 42, 43, 13, 194, 11, 169, 126, 162, 24,\n\t\t85, 188, 134, 43, 68, 238, 213, 104, 104, 228, 245, 97, 119,\n\t\t227, 211, 36, 176, 229, 188, 206, 13, 21, 227, 237, 1, 189,\n\t\t255, 176, 78, 131, 123, 76, 22, 169, 159, 69, 138, 79, 150,\n\t\t0, 107, 207, 232, 5, 169, 71, 88, 247, 74, 88, 29, 172, 10,\n\t\t207, 30, 192, 55, 80, 131, 233, 232, 210, 26, 156, 189, 220,\n\t\t42, 224, 172, 6, 206, 170, 224, 172, 14, 110, 204, 232, 162,\n\t\t23, 170, 45, 219, 156, 213, 194, 42, 97, 141, 184, 60, 111,\n\t\t213, 199, 195, 93, 236, 213, 151, 133, 32, 65, 172, 164, 27,\n\t\t71, 52, 103, 176, 142, 177, 172, 124, 40, 97, 169, 34, 232,\n\t\t32, 11, 174, 170, 111, 131, 95, 104, 78, 155, 56, 116, 111,\n\t\t169, 72, 18, 105, 194, 216, 48, 151, 67, 215, 213, 100, 140,\n\t\t216, 74, 217, 141, 20, 32, 67, 158, 112, 251, 35, 182, 137,\n\t\t161, 48, 203, 126, 142, 194, 240, 168, 177, 178, 196, 9, 175,\n\t\t57, 196, 108, 146, 213, 73, 136, 5, 135, 87, 174, 253, 213,\n\t\t160, 4, 38, 93, 225, 186, 122, 135, 146, 70, 161, 145, 130,\n\t\t238, 206, 178, 247, 80, 144, 123, 239, 107, 228, 197, 200,\n\t\t166, 135, 205, 142, 57, 57, 226, 4, 143, 212, 201, 129, 185,\n\t\t129, 112, 23, 140, 142, 201, 195, 232, 148, 5, 213, 102, 199,\n\t\t92, 92, 156, 206, 15, 241, 132, 155, 198, 167, 17, 26, 194,\n\t\t170, 138, 100, 96, 91, 191, 120, 203, 224, 43, 43, 136, 167,\n\t\t2, 240, 135, 186, 172, 3, 73, 173, 24, 217, 132, 41, 93, 32,\n\t\t121, 125, 44, 33, 30, 132, 6, 176, 182, 37, 38, 97, 47, 83,\n\t\t40, 21, 91, 204, 72, 37, 102, 91, 202, 158, 212, 9, 80, 165,\n\t\t234, 12, 174, 19, 76, 169, 122, 227, 7, 210, 180, 36, 243,\n\t\t130, 200, 5, 84, 138, 116, 174, 79, 182, 10, 150, 66, 4, 62,\n\t\t204, 22, 46, 55, 87, 174, 232, 83, 137, 69, 129, 86, 144,\n\t\t218, 225, 19, 104, 131, 184, 75, 1, 141, 100, 75, 36, 66,\n\t\t32, 98, 104, 32, 71, 21, 57, 200, 150, 114, 91, 201, 157,\n\t\t45, 229, 207, 27, 91, 97, 54, 254, 18, 220, 131, 95, 62, 126,\n\t\t184, 240, 31, 252, 122, 37, 166, 171, 12, 193, 80, 14, 201,\n\t\t103, 89, 60, 37, 24, 43, 219, 112, 153, 87, 168, 75, 50, 214,\n\t\t19, 220, 185, 200, 3, 46, 64, 95, 156, 78, 109, 8, 13, 121,\n\t\t194, 45, 75, 102, 206, 126, 161, 138, 79, 235, 228, 36, 143,\n\t\t10, 166, 234, 108, 169, 45, 105, 146, 144, 90, 104, 27, 31,\n\t\t64, 210, 209, 43, 43, 220, 65, 36, 201, 105, 85, 227, 232,\n\t\t162, 1, 12, 180, 32, 174, 173, 18, 108, 9, 158, 219, 135,\n\t\t69, 106, 192, 49, 22, 36, 185, 204, 244, 69, 113, 226, 22,\n\t\t53, 32, 199, 198, 131, 233, 73, 70, 110, 10, 186, 154, 152,\n\t\t199, 23, 79, 1, 215, 78, 31, 131, 58, 32, 81, 19, 41, 232,\n\t\t170, 4, 136, 157, 33, 224, 73, 178, 64, 90, 249, 236, 202,\n\t\t58, 119, 246, 176, 87, 245, 73, 35, 240, 5, 173, 250, 73,\n\t\t91, 12, 33, 91, 93, 51, 227, 85, 139, 42, 66, 186, 52, 155,\n\t\t89, 91, 121, 181, 238, 179, 254, 180, 115, 235, 77, 137, 100,\n\t\t229, 46, 156, 184, 73, 214, 133, 206, 222, 197, 93, 88, 20,\n\t\t14, 253, 252, 229, 167, 189, 7, 173, 3, 173, 232, 214, 125,\n\t\t207, 126, 215, 189, 239, 172, 235, 156, 245, 29, 55, 13, 214,\n\t\t162, 217, 119, 251, 234, 102, 160, 152, 154, 28, 103, 109,\n\t\t190, 60, 239, 132, 163, 118, 29, 44, 69, 248, 12, 119, 28,\n\t\t200, 144, 181, 223, 158, 117, 246, 12, 117, 177, 62, 179,\n\t\t46, 179, 30, 123, 54, 160, 86, 171, 104, 152, 85, 115, 207,\n\t\t235, 108, 35, 245, 201, 8, 183, 254, 114, 214, 97, 206, 122,\n\t\t204, 61, 159, 25, 55, 230, 247, 199, 127, 187, 79, 239, 238,\n\t\t127, 125, 193, 82, 58, 121, 219, 83, 137, 64, 189, 249, 122,\n\t\t248, 241, 135, 231, 174, 136, 135, 75, 7, 132, 96, 1, 150,\n\t\t177, 196, 80, 253, 216, 241, 97, 35, 218, 60, 47, 213, 130,\n\t\t122, 108, 45, 173, 102, 119, 135, 68, 120, 130, 179, 122,\n\t\t12, 40, 155, 193, 156, 242, 164, 29, 73, 85, 109, 54, 60,\n\t\t44, 68, 55, 149, 213, 149, 167, 50, 41, 102, 92, 80, 216,\n\t\t136, 129, 168, 130, 97, 50, 254, 72, 94, 8, 248, 121, 170,\n\t\t66, 187, 146, 32, 49, 4, 102, 67, 61, 175, 51, 207, 21, 110,\n\t\t156, 121, 129, 247, 193, 60, 250, 41, 2, 156, 26, 244, 36,\n\t\t69, 67, 32, 147, 90, 57, 149, 71, 60, 170, 249, 145, 159,\n\t\t232, 163, 175, 89, 45, 180, 208, 14, 4, 57, 25, 234, 134,\n\t\t172, 49, 188, 172, 178, 144, 145, 5, 186, 228, 241, 46, 247,\n\t\t8, 113, 189, 248, 33, 2, 67, 44, 160, 240, 69, 112, 85, 156,\n\t\t166, 77, 128, 150, 196, 97, 97, 48, 242, 173, 147, 67, 241,\n\t\t196, 183, 103, 91, 4, 210, 28, 135, 212, 77, 93, 66, 134,\n\t\t234, 198, 143, 21, 160, 48, 39, 83, 57, 166, 50, 146, 200,\n\t\t15, 241, 3, 73, 132, 22, 141, 232, 117, 44, 10, 4, 200, 80,\n\t\t116, 89, 222, 8, 102, 204, 114, 129, 85, 93, 246, 5, 61, 21,\n\t\t159, 247, 137, 187, 180, 245, 129, 180, 255, 202, 235, 74,\n\t\t132, 127, 173, 44, 67, 141, 187, 54, 40, 88, 152, 76, 97,\n\t\t28, 214, 34, 118, 150, 37, 85, 33, 232, 163, 82, 124, 134,\n\t\t140, 5, 65, 15, 45, 7, 139, 13, 26, 238, 234, 148, 248, 116,\n\t\t255, 254, 2, 161, 235, 215, 245, 203, 232, 143, 145, 165,\n\t\t151, 220, 215, 84, 68, 140, 67, 254, 186, 59, 35, 7, 119,\n\t\t53, 159, 120, 22, 35, 16, 91, 162, 167, 52, 84, 31, 236, 14,\n\t\t6, 177, 103, 218, 69, 201, 62, 8, 150, 28, 20, 152, 32, 30,\n\t\t56, 104, 137, 210, 159, 121, 103, 60, 52, 84, 219, 202, 226,\n\t\t234, 137, 135, 59, 245, 208, 36, 128, 55, 212, 145, 144, 218,\n\t\t170, 254, 20, 205, 244, 30, 138, 220, 230, 154, 164, 26, 172,\n\t\t164, 219, 66, 84, 24, 21, 101, 36, 67, 122, 33, 244, 16, 29,\n\t\t147, 212, 117, 29, 138, 172, 165, 21, 88, 221, 45, 50, 13,\n\t\t184, 204, 64, 146, 105, 209, 254, 131, 203, 180, 129, 117,\n\t\t179, 104, 152, 74, 84, 154, 114, 208, 157, 66, 122, 27, 62,\n\t\t194, 47, 48, 36, 208, 122, 18, 95, 187, 54, 41, 38, 77, 201,\n\t\t163, 104, 80, 52, 114, 101, 149, 72, 55, 192, 42, 241, 39,\n\t\t185, 8, 18, 52, 28, 151, 134, 93, 68, 163, 211, 4, 106, 48,\n\t\t17, 194, 241, 36, 34, 74, 86, 16, 141, 20, 90, 93, 28, 0,\n\t\t44, 130, 230, 153, 135, 170, 101, 202, 197, 55, 47, 240, 94,\n\t\t208, 71, 213, 8, 103, 113, 92, 107, 202, 111, 17, 232, 61,\n\t\t126, 70, 36, 249, 157, 211, 94, 13, 246, 230, 52, 234, 154,\n\t\t69, 27, 213, 8, 55, 47, 36, 17, 3, 215, 192, 155, 158, 16,\n\t\t203, 97, 74, 212, 200, 141, 4, 141, 169, 37, 112, 53, 138,\n\t\t172, 73, 75, 158, 251, 153, 26, 150, 135, 9, 77, 122, 78,\n\t\t255, 151, 189, 127, 77, 142, 220, 198, 182, 64, 225, 255,\n\t\t57, 10, 78, 0, 12, 188, 31, 241, 141, 65, 131, 80, 211, 101,\n\t\t103, 125, 77, 151, 124, 42, 237, 60, 183, 53, 250, 27, 88,\n\t\t107, 111, 144, 153, 41, 101, 170, 92, 85, 221, 39, 110, 116,\n\t\t132, 203, 18, 33, 146, 0, 241, 216, 216, 216, 143, 181, 48,\n\t\t145, 46, 249, 234, 179, 98, 42, 76, 57, 46, 150, 195, 227,\n\t\t198, 76, 243, 196, 10, 215, 153, 200, 115, 189, 135, 214,\n\t\t202, 144, 53, 181, 197, 245, 5, 15, 253, 160, 210, 130, 149,\n\t\t149, 164, 169, 138, 103, 36, 149, 94, 63, 242, 199, 67, 208,\n\t\t180, 17, 43, 199, 197, 60, 96, 37, 165, 107, 141, 244, 237,\n\t\t98, 25, 177, 10, 65, 33, 64, 82, 42, 237, 155, 208, 6, 143,\n\t\t2, 29, 189, 135, 211, 80, 177, 50, 225, 115, 177, 74, 147,\n\t\t32, 120, 254, 58, 171, 100, 82, 29, 186, 172, 18, 87, 45,\n\t\t18, 46, 26, 141, 180, 180, 211, 97, 186, 110, 179, 215, 232,\n\t\t244, 189, 51, 15, 207, 92, 45, 48, 135, 9, 2, 22, 131, 153,\n\t\t124, 144, 157, 210, 37, 246, 191, 174, 51, 35, 11, 109, 137,\n\t\t234, 210, 210, 17, 215, 165, 235, 197, 206, 162, 215, 178,\n\t\t146, 207, 219, 242, 15, 64, 233, 132, 140, 230, 244, 202,\n\t\t115, 41, 109, 147, 33, 34, 49, 14, 11, 220, 7, 110, 75, 6,\n\t\t82, 41, 228, 139, 218, 79, 164, 0, 82, 233, 188, 73, 177,\n\t\t119, 39, 85, 223, 103, 10, 52, 208, 164, 56, 160, 94, 150,\n\t\t146, 206, 18, 35, 211, 68, 38, 224, 128, 202, 149, 137, 168,\n\t\t211, 78, 231, 161, 94, 223, 149, 176, 244, 200, 139, 55, 213,\n\t\t162, 99, 34, 176, 161, 146, 210, 197, 102, 113, 156, 246,\n\t\t15, 57, 244, 102, 138, 109, 212, 205, 93, 111, 145, 53, 214,\n\t\t15, 106, 48, 70, 141, 2, 174, 58, 154, 178, 121, 134, 13,\n\t\t234, 176, 243, 130, 221, 57, 22, 177, 209, 85, 236, 35, 253,\n\t\t134, 128, 136, 16, 161, 208, 167, 137, 74, 22, 22, 136, 152,\n\t\t184, 187, 29, 45, 207, 95, 223, 116, 188, 221, 4, 48, 196,\n\t\t186, 97, 143, 247, 49, 153, 124, 72, 115, 46, 253, 232, 45,\n\t\t38, 101, 105, 118, 116, 218, 30, 145, 65, 163, 32, 81, 172,\n\t\t157, 133, 221, 29, 136, 163, 88, 175, 195, 152, 51, 128, 97,\n\t\t169, 207, 119, 25, 112, 198, 134, 37, 91, 219, 163, 32, 161,\n\t\t15, 132, 28, 249, 244, 65, 72, 188, 240, 48, 142, 75, 27,\n\t\t102, 154, 76, 12, 231, 20, 23, 3, 134, 124, 234, 67, 14, 167,\n\t\t73, 124, 10, 190, 219, 75, 120, 173, 43, 92, 245, 200, 169,\n\t\t209, 62, 146, 46, 2, 131, 52, 140, 87, 148, 40, 171, 107,\n\t\t34, 16, 27, 105, 138, 157, 196, 19, 71, 207, 60, 190, 68,\n\t\t126, 111, 96, 215, 97, 11, 178, 97, 238, 123, 10, 47, 143,\n\t\t206, 151, 37, 74, 86, 161, 5, 72, 42, 228, 99, 23, 183, 80,\n\t\t27, 121, 183, 145, 219, 15, 163, 58, 35, 245, 189, 62, 137,\n\t\t14, 230, 107, 47, 64, 98, 212, 197, 13, 71, 159, 242, 86,\n\t\t170, 173, 52, 69, 141, 16, 34, 199, 251, 148, 38, 68, 137,\n\t\t85, 160, 87, 10, 98, 45, 56, 154, 222, 84, 228, 93, 121, 233,\n\t\t246, 162, 206, 53, 141, 25, 210, 71, 140, 60, 243, 250, 84,\n\t\t45, 8, 245, 253, 162, 169, 132, 68, 71, 10, 66, 6, 29, 17,\n\t\t144, 2, 179, 79, 215, 149, 85, 3, 247, 66, 140, 210, 85, 36,\n\t\t56, 242, 227, 248, 93, 66, 132, 252, 16, 251, 132, 185, 177,\n\t\t220, 14, 244, 13, 253, 239, 12, 237, 23, 186, 11, 185, 175,\n\t\t255, 254, 250, 20, 237, 109, 171, 2, 181, 249, 52, 240, 90,\n\t\t192, 130, 194, 54, 69, 161, 218, 103, 96, 187, 164, 140, 24,\n\t\t129, 117, 1, 255, 68, 228, 166, 81, 156, 192, 132, 177, 173,\n\t\t218, 162, 254, 188, 126, 146, 209, 240, 153, 184, 253, 254,\n\t\t122, 120, 36, 7, 254, 241, 252, 231, 159, 159, 110, 201, 35,\n\t\t127, 25, 56, 148, 31, 129, 123, 61, 27, 50, 120, 62, 88, 93,\n\t\t143, 1, 39, 249, 154, 59, 49, 124, 92, 78, 239, 70, 167, 60,\n\t\t68, 172, 136, 21, 76, 0, 143, 222, 114, 120, 252, 26, 16,\n\t\t191, 117, 133, 175, 198, 7, 104, 98, 206, 249, 239, 2, 19,\n\t\t235, 207, 191, 11, 38, 22, 99, 253, 64, 19, 162, 61, 35, 192,\n\t\t236, 253, 54, 230, 71, 128, 103, 209, 246, 215, 124, 215,\n\t\t135, 68, 123, 190, 138, 115, 187, 249, 212, 252, 222, 151,\n\t\t158, 17, 200, 246, 110, 63, 60, 154, 230, 203, 215, 55, 50,\n\t\t73, 63, 221, 68, 154, 236, 18, 2, 98, 32, 239, 43, 208, 7,\n\t\t129, 63, 69, 183, 4, 237, 249, 253, 124, 161, 164, 241, 78,\n\t\t240, 48, 179, 160, 124, 123, 137, 173, 243, 106, 101, 8, 244,\n\t\t70, 172, 91, 98, 141, 167, 219, 25, 182, 63, 42, 85, 73, 111,\n\t\t86, 250, 101, 152, 243, 224, 127, 114, 76, 246, 152, 8, 150,\n\t\t31, 214, 174, 220, 117, 121, 90, 50, 142, 198, 139, 19, 69,\n\t\t58, 105, 26, 174, 87, 101, 221, 50, 92, 195, 84, 178, 244,\n\t\t172, 166, 20, 177, 25, 65, 121, 58, 44, 166, 170, 23, 7, 105,\n\t\t176, 224, 138, 119, 18, 216, 161, 68, 0, 145, 161, 174, 8,\n\t\t200, 138, 107, 78, 244, 48, 68, 154, 148, 250, 128, 208, 135,\n\t\t45, 6, 255, 212, 15, 126, 181, 246, 83, 53, 60, 12, 78, 147,\n\t\t85, 9, 236, 24, 91, 23, 101, 153, 233, 198, 203, 248, 106,\n\t\t237, 134, 241, 209, 146, 206, 62, 85, 201, 87, 145, 62, 88,\n\t\t251, 55, 83, 91, 96, 39, 44, 227, 163, 181, 23, 156, 144,\n\t\t85, 239, 58, 129, 137, 246, 43, 63, 122, 146, 62, 56, 44,\n\t\t204, 19, 3, 247, 121, 100, 27, 229, 147, 71, 23, 228, 25,\n\t\t252, 222, 210, 3, 107, 84, 171, 103, 22, 211, 156, 126, 180,\n\t\t209, 94, 104, 8, 236, 131, 97, 159, 221, 128, 207, 134, 11,\n\t\t167, 218, 88, 214, 204, 60, 186, 9, 221, 176, 100, 57, 143,\n\t\t104, 47, 8, 254, 79, 215, 53, 181, 27, 100, 232, 141, 142,\n\t\t61, 24, 45, 48, 44, 41, 75, 226, 150, 87, 123, 71, 24, 33,\n\t\t189, 35, 93, 89, 14, 245, 69, 241, 149, 132, 96, 236, 176,\n\t\t130, 100, 7, 158, 34, 201, 3, 94, 97, 117, 166, 251, 182,\n\t\t43, 160, 48, 98, 19, 200, 181, 170, 231, 37, 53, 193, 171,\n\t\t232, 199, 15, 36, 125, 228, 42, 78, 223, 12, 232, 177, 240,\n\t\t250, 148, 67, 153, 43, 104, 17, 250, 56, 93, 45, 28, 1, 180,\n\t\t119, 193, 86, 206, 52, 154, 118, 218, 28, 42, 74, 188, 211,\n\t\t212, 177, 194, 158, 135, 31, 11, 70, 104, 63, 251, 20, 177,\n\t\t188, 102, 23, 82, 137, 208, 32, 201, 166, 152, 102, 95, 92,\n\t\t172, 187, 134, 246, 122, 131, 120, 218, 147, 199, 96, 118,\n\t\t189, 78, 38, 50, 144, 65, 193, 250, 17, 148, 169, 168, 170,\n\t\t133, 48, 105, 196, 105, 239, 103, 216, 156, 135, 115, 69,\n\t\t21, 62, 192, 212, 226, 12, 178, 17, 183, 132, 89, 92, 54,\n\t\t62, 173, 93, 69, 129, 247, 165, 242, 116, 137, 45, 143, 222,\n\t\t57, 25, 239, 174, 131, 121, 113, 229, 10, 43, 133, 36, 217,\n\t\t132, 6, 245, 101, 149, 71, 39, 121, 213, 106, 124, 236, 42,\n\t\t209, 148, 51, 148, 205, 213, 232, 13, 90, 25, 164, 183, 188,\n\t\t93, 171, 51, 219, 235, 149, 8, 185, 191, 159, 92, 236, 138,\n\t\t188, 122, 219, 88, 213, 70, 116, 22, 121, 55, 226, 122, 37,\n\t\t175, 142, 128, 126, 26, 78, 185, 24, 26, 160, 157, 159, 244,\n\t\t84, 108, 128, 109, 156, 106, 30, 240, 22, 22, 134, 214, 0,\n\t\t155, 8, 38, 134, 11, 36, 131, 79, 60, 93, 35, 238, 8, 22,\n\t\t79, 63, 151, 10, 34, 244, 48, 123, 11, 78, 228, 168, 107,\n\t\t108, 100, 154, 197, 216, 252, 198, 155, 234, 8, 27, 28, 100,\n\t\t232, 188, 23, 26, 155, 97, 163, 17, 134, 171, 85, 231, 162,\n\t\t202, 240, 164, 97, 200, 98, 213, 116, 141, 94, 132, 160, 8,\n\t\t194, 153, 190, 202, 126, 94, 117, 253, 232, 108, 171, 159,\n\t\t252, 108, 115, 13, 25, 152, 204, 205, 197, 254, 205, 213,\n\t\t103, 56, 15, 25, 63, 74, 135, 223, 234, 170, 56, 23, 35, 62,\n\t\t112, 213, 5, 39, 235, 109, 9, 248, 138, 126, 63, 227, 86,\n\t\t139, 100, 136, 214, 121, 32, 249, 210, 160, 196, 28, 204,\n\t\t195, 66, 94, 105, 155, 145, 172, 71, 251, 66, 20, 223, 146,\n\t\t242, 120, 52, 216, 183, 151, 225, 253, 23, 219, 84, 147, 231,\n\t\t212, 195, 226, 36, 54, 36, 207, 177, 54, 15, 15, 3, 245, 44,\n\t\t217, 80, 189, 248, 235, 147, 108, 105, 106, 125, 200, 68,\n\t\t84, 59, 121, 47, 80, 214, 99, 215, 8, 146, 201, 40, 153, 221,\n\t\t171, 235, 243, 139, 199, 193, 126, 112, 95, 6, 181, 169, 87,\n\t\t75, 133, 166, 124, 21, 105, 163, 34, 146, 245, 133, 27, 125,\n\t\t43, 192, 40, 46, 62, 64, 249, 10, 217, 5, 248, 230, 125, 22,\n\t\t240, 179, 234, 10, 198, 137, 166, 191, 46, 143, 150, 170,\n\t\t72, 14, 142, 152, 127, 16, 158, 84, 250, 155, 164, 229, 233,\n\t\t230, 33, 216, 5, 107, 22, 172, 61, 67, 36, 99, 34, 9, 71,\n\t\t44, 42, 240, 250, 119, 205, 218, 75, 192, 122, 172, 25, 89,\n\t\t144, 98, 96, 105, 115, 73, 25, 17, 107, 98, 143, 224, 49,\n\t\t104, 137, 35, 13, 86, 12, 82, 73, 45, 218, 158, 137, 101,\n\t\t204, 157, 132, 211, 177, 217, 252, 250, 228, 83, 154, 19,\n\t\t25, 170, 115, 102, 64, 53, 182, 169, 168, 123, 75, 160, 227,\n\t\t60, 14, 56, 187, 166, 105, 199, 30, 102, 133, 83, 156, 29,\n\t\t210, 90, 251, 157, 232, 101, 175, 1, 60, 65, 108, 134, 253,\n\t\t157, 16, 167, 250, 210, 152, 40, 176, 18, 221, 135, 73, 28,\n\t\t92, 50, 58, 195, 74, 164, 115, 26, 187, 45, 184, 60, 2, 109,\n\t\t231, 72, 108, 206, 189, 160, 194, 129, 244, 250, 148, 98,\n\t\t158, 93, 155, 92, 77, 115, 108, 171, 209, 158, 69, 199, 130,\n\t\t217, 39, 129, 50, 107, 138, 234, 4, 119, 130, 74, 211, 6,\n\t\t136, 8, 13, 80, 125, 244, 176, 79, 104, 104, 130, 87, 156,\n\t\t9, 21, 154, 65, 201, 103, 220, 144, 67, 253, 209, 190, 215,\n\t\t96, 214, 233, 164, 51, 97, 14, 128, 245, 182, 115, 179, 62,\n\t\t68, 96, 199, 183, 16, 251, 138, 159, 115, 136, 69, 112, 69,\n\t\t129, 85, 205, 2, 162, 88, 230, 146, 213, 163, 10, 35, 121,\n\t\t157, 51, 72, 117, 250, 160, 197, 80, 56, 252, 62, 38, 199,\n\t\t109, 52, 182, 221, 54, 234, 138, 199, 252, 234, 219, 226,\n\t\t235, 225, 41, 229, 216, 155, 228, 48, 189, 223, 24, 220, 141,\n\t\t212, 88, 2, 90, 13, 19, 26, 123, 7, 151, 6, 156, 115, 72,\n\t\t9, 163, 67, 225, 53, 54, 162, 47, 130, 46, 172, 162, 154,\n\t\t6, 125, 17, 51, 129, 186, 116, 181, 18, 78, 32, 157, 63, 58,\n\t\t125, 100, 246, 44, 18, 227, 208, 223, 207, 56, 46, 153, 77,\n\t\t58, 153, 24, 127, 99, 253, 20, 62, 104, 89, 58, 125, 254,\n\t\t229, 198, 191, 255, 233, 14, 126, 102, 138, 32, 185, 125,\n\t\t64, 104, 0, 144, 228, 7, 185, 13, 241, 239, 209, 25, 255,\n\t\t93, 26, 228, 248, 40, 147, 194, 57, 175, 216, 37, 109, 82,\n\t\t64, 157, 36, 176, 14, 145, 182, 203, 40, 156, 117, 12, 188,\n\t\t243, 179, 245, 109, 105, 18, 51, 226, 35, 245, 193, 128, 163,\n\t\t72, 180, 18, 197, 184, 153, 252, 250, 245, 177, 75, 142, 230,\n\t\t22, 151, 37, 146, 117, 71, 166, 28, 154, 184, 249, 251, 22,\n\t\t153, 61, 140, 52, 188, 201, 51, 162, 103, 117, 182, 2, 165,\n\t\t197, 133, 52, 183, 74, 24, 185, 65, 164, 44, 16, 241, 196,\n\t\t250, 166, 5, 115, 80, 26, 235, 229, 21, 165, 49, 211, 27,\n\t\t36, 135, 226, 180, 47, 80, 78, 99, 31, 252, 96, 82, 46, 140,\n\t\t166, 6, 211, 15, 133, 91, 203, 71, 215, 183, 167, 242, 250,\n\t\t228, 171, 37, 249, 113, 238, 251, 206, 218, 111, 198, 82,\n\t\t233, 15, 214, 134, 73, 47, 137, 141, 245, 7, 53, 248, 173,\n\t\t246, 222, 157, 237, 199, 231, 175, 191, 125, 254, 242, 155,\n\t\t57, 253, 249, 252, 231, 231, 151, 27, 15, 223, 167, 155, 168,\n\t\t150, 205, 195, 215, 119, 77, 251, 3, 112, 239, 130, 183, 223,\n\t\t5, 255, 22, 188, 125, 197, 18, 12, 222, 246, 227, 247, 71,\n\t\t90, 20, 146, 216, 200, 186, 48, 98, 92, 128, 38, 152, 195,\n\t\t205, 150, 196, 136, 235, 188, 157, 109, 129, 83, 47, 70, 5,\n\t\t152, 170, 56, 16, 85, 205, 63, 172, 65, 188, 88, 133, 36,\n\t\t77, 240, 124, 64, 210, 13, 194, 141, 92, 133, 116, 169, 169,\n\t\t141, 91, 10, 10, 57, 248, 206, 30, 58, 84, 220, 229, 192,\n\t\t93, 165, 214, 77, 209, 30, 97, 158, 112, 30, 25, 80, 103,\n\t\t134, 30, 236, 253, 13, 98, 245, 199, 127, 71, 151, 237, 162,\n\t\t127, 124, 219, 245, 234, 154, 63, 194, 181, 46, 25, 246, 85,\n\t\t108, 241, 125, 18, 247, 223, 107, 61, 27, 207, 44, 34, 39,\n\t\t64, 73, 78, 96, 33, 144, 219, 5, 20, 105, 21, 219, 104, 188,\n\t\t11, 236, 84, 47, 135, 19, 47, 120, 203, 253, 177, 72, 193,\n\t\t143, 107, 207, 35, 194, 25, 137, 245, 13, 199, 52, 134, 22,\n\t\t119, 113, 0, 119, 12, 220, 3, 84, 17, 82, 158, 116, 52, 30,\n\t\t161, 0, 222, 183, 137, 157, 222, 181, 130, 157, 153, 44, 245,\n\t\t141, 15, 190, 62, 249, 108, 103, 219, 38, 95, 250, 254, 181,\n\t\t68, 193, 161, 216, 16, 182, 228, 36, 237, 116, 174, 117, 37,\n\t\t181, 82, 121, 237, 5, 71, 147, 136, 77, 179, 58, 55, 130,\n\t\t192, 1, 66, 78, 191, 214, 200, 101, 9, 34, 76, 1, 79, 205,\n\t\t104, 4, 168, 54, 253, 242, 104, 50, 25, 186, 17, 220, 200,\n\t\t172, 85, 61, 75, 11, 10, 143, 115, 18, 175, 216, 102, 39,\n\t\t232, 195, 136, 208, 42, 80, 106, 90, 26, 220, 222, 176, 42,\n\t\t171, 31, 92, 159, 26, 79, 203, 47, 199, 212, 48, 171, 86,\n\t\t227, 117, 183, 169, 65, 226, 177, 213, 145, 149, 229, 37,\n\t\t130, 79, 34, 209, 132, 98, 86, 101, 193, 18, 229, 236, 219,\n\t\t251, 157, 246, 110, 5, 93, 215, 110, 226, 172, 185, 31, 169,\n\t\t243, 203, 231, 175, 159, 150, 46, 184, 78, 55, 146, 107, 203,\n\t\t231, 7, 238, 194, 228, 187, 50, 13, 116, 65, 186, 47, 251,\n\t\t47, 93, 109, 27, 5, 154, 183, 76, 60, 246, 126, 140, 18, 106,\n\t\t88, 156, 119, 249, 203, 50, 30, 219, 126, 9, 10, 49, 51, 74,\n\t\t228, 241, 201, 110, 47, 184, 120, 30, 137, 103, 251, 247,\n\t\t32, 230, 120, 84, 175, 181, 95, 63, 123, 221, 98, 173, 88,\n\t\t175, 71, 181, 175, 135, 167, 104, 29, 64, 55, 108, 63, 64,\n\t\t47, 122, 18, 86, 31, 157, 94, 87, 57, 46, 88, 208, 230, 241,\n\t\t88, 14, 85, 171, 144, 2, 7, 174, 122, 28, 160, 128, 1, 23,\n\t\t219, 56, 220, 76, 78, 45, 51, 90, 160, 73, 209, 103, 104,\n\t\t132, 125, 91, 167, 217, 248, 210, 90, 126, 109, 86, 87, 181,\n\t\t232, 61, 115, 106, 120, 215, 112, 124, 206, 241, 216, 213,\n\t\t42, 169, 13, 130, 106, 240, 233, 105, 198, 182, 179, 115,\n\t\t182, 13, 116, 78, 23, 141, 188, 63, 169, 190, 62, 255, 175,\n\t\t249, 227, 101, 253, 215, 111, 111, 108, 136, 183, 30, 198,\n\t\t45, 181, 175, 2, 112, 250, 29, 177, 171, 214, 28, 58, 101,\n\t\t245, 166, 241, 119, 225, 106, 192, 223, 185, 43, 177, 207,\n\t\t98, 148, 147, 178, 215, 220, 243, 36, 1, 131, 125, 35, 176,\n\t\t141, 108, 62, 35, 115, 65, 233, 155, 130, 82, 155, 132, 221,\n\t\t35, 112, 53, 110, 205, 51, 100, 148, 24, 213, 163, 101, 90,\n\t\t181, 214, 23, 65, 170, 26, 136, 42, 226, 91, 59, 179, 78,\n\t\t162, 103, 162, 174, 81, 57, 157, 62, 163, 90, 169, 245, 206,\n\t\t46, 181, 108, 223, 201, 106, 140, 214, 186, 107, 241, 17,\n\t\t21, 230, 69, 171, 209, 106, 181, 170, 173, 38, 161, 203, 120,\n\t\t119, 207, 59, 189, 221, 217, 22, 79, 32, 76, 211, 48, 181,\n\t\t210, 251, 201, 114, 122, 7, 2, 251, 81, 184, 66, 176, 218,\n\t\t22, 15, 107, 223, 40, 105, 142, 202, 9, 145, 85, 75, 2, 161,\n\t\t114, 157, 118, 48, 161, 158, 153, 209, 174, 49, 228, 114,\n\t\t20, 4, 11, 168, 166, 147, 9, 98, 96, 222, 140, 134, 215, 247,\n\t\t172, 55, 245, 236, 26, 187, 111, 43, 27, 54, 221, 52, 21,\n\t\t48, 24, 146, 240, 180, 212, 217, 150, 232, 129, 148, 150,\n\t\t107, 141, 140, 153, 15, 216, 12, 210, 108, 99, 66, 244, 133,\n\t\t156, 152, 248, 203, 209, 219, 58, 135, 124, 160, 122, 219,\n\t\t171, 205, 2, 188, 250, 118, 175, 153, 173, 41, 163, 219, 182,\n\t\t178, 251, 115, 239, 116, 51, 59, 222, 250, 86, 179, 13, 204,\n\t\t109, 5, 235, 85, 43, 1, 57, 0, 200, 158, 168, 81, 234, 189,\n\t\t15, 188, 47, 242, 201, 165, 237, 114, 24, 174, 63, 254, 204,\n\t\t229, 149, 95, 15, 79, 190, 16, 151, 154, 186, 44, 14, 249,\n\t\t154, 116, 108, 134, 82, 112, 162, 226, 42, 169, 200, 93, 113,\n\t\t48, 187, 75, 35, 69, 162, 76, 140, 103, 77, 63, 176, 68, 107,\n\t\t37, 150, 116, 79, 92, 254, 129, 71, 79, 31, 104, 6, 1, 82,\n\t\t50, 143, 122, 204, 68, 154, 62, 248, 174, 195, 71, 190, 169,\n\t\t31, 95, 166, 240, 243, 58, 167, 139, 85, 170, 245, 210, 248,\n\t\t191, 251, 170, 55, 62, 240, 238, 62, 176, 62, 255, 241, 231,\n\t\t203, 31, 166, 75, 255, 235, 109, 224, 215, 155, 200, 199,\n\t\t205, 26, 224, 83, 66, 226, 100, 205, 115, 87, 182, 82, 37,\n\t\t75, 94, 255, 25, 45, 148, 53, 159, 38, 50, 208, 225, 255,\n\t\t202, 38, 107, 7, 153, 88, 170, 3, 208, 180, 255, 92, 182,\n\t\t39, 250, 189, 181, 79, 112, 122, 246, 16, 230, 57, 217, 85,\n\t\t233, 206, 97, 243, 119, 54, 45, 187, 215, 243, 215, 173, 146,\n\t\t157, 225, 156, 216, 21, 248, 209, 202, 42, 63, 165, 224, 35,\n\t\t175, 56, 208, 153, 115, 81, 179, 217, 61, 55, 30, 145, 75,\n\t\t245, 17, 216, 215, 167, 144, 28, 248, 12, 91, 153, 115, 250,\n\t\t72, 159, 176, 177, 218, 86, 179, 187, 252, 200, 211, 218,\n\t\t204, 139, 254, 185, 215, 163, 58, 4, 70, 134, 237, 240, 145,\n\t\t254, 224, 96, 143, 199, 0, 134, 126, 221, 29, 112, 12, 108,\n\t\t221, 17, 200, 188, 51, 64, 228, 161, 64, 235, 201, 149, 190,\n\t\t1, 57, 113, 208, 49, 189, 247, 191, 138, 178, 61, 182, 178,\n\t\t163, 73, 142, 27, 188, 196, 109, 136, 144, 29, 247, 101, 113,\n\t\t178, 87, 13, 119, 211, 10, 120, 130, 242, 125, 183, 33, 137,\n\t\t185, 39, 198, 118, 18, 27, 189, 45, 77, 3, 28, 132, 114, 157,\n\t\t192, 55, 0, 228, 115, 85, 216, 36, 37, 78, 132, 137, 114,\n\t\t94, 41, 251, 143, 62, 250, 57, 102, 6, 63, 130, 52, 44, 132,\n\t\t140, 166, 158, 67, 16, 76, 11, 28, 58, 189, 27, 102, 37, 242,\n\t\t134, 69, 49, 137, 16, 132, 84, 173, 29, 114, 11, 78, 96, 201,\n\t\t245, 26, 235, 217, 167, 124, 52, 192, 128, 234, 191, 133,\n\t\t122, 31, 7, 108, 125, 254, 215, 167, 175, 230, 183, 175, 47,\n\t\t127, 221, 144, 151, 254, 58, 80, 146, 156, 240, 191, 248,\n\t\t214, 102, 100, 0, 102, 241, 189, 142, 208, 57, 41, 8, 162,\n\t\t149, 91, 228, 165, 134, 230, 86, 31, 186, 22, 131, 212, 218,\n\t\t92, 220, 226, 103, 70, 42, 59, 186, 178, 203, 156, 114, 9,\n\t\t21, 193, 219, 253, 103, 87, 81, 99, 76, 122, 125, 42, 115,\n\t\t141, 57, 11, 160, 112, 159, 45, 184, 1, 36, 53, 188, 131,\n\t\t239, 71, 96, 121, 154, 115, 133, 221, 140, 230, 82, 109, 219,\n\t\t40, 8, 114, 50, 176, 204, 57, 243, 45, 244, 99, 155, 159,\n\t\t177, 63, 179, 121, 200, 222, 145, 120, 160, 161, 210, 199,\n\t\t57, 86, 90, 180, 165, 4, 148, 141, 125, 162, 198, 214, 144,\n\t\t149, 208, 207, 11, 23, 21, 95, 86, 202, 26, 165, 178, 196,\n\t\t202, 82, 187, 172, 138, 169, 249, 251, 170, 24, 95, 202, 170,\n\t\t228, 217, 192, 20, 229, 254, 236, 110, 4, 46, 123, 31, 93,\n\t\t223, 87, 44, 14, 190, 62, 227, 128, 177, 186, 140, 19, 144,\n\t\t41, 65, 192, 167, 139, 122, 23, 245, 244, 227, 146, 32, 233,\n\t\t37, 209, 217, 188, 166, 88, 74, 193, 73, 125, 248, 180, 114,\n\t\t134, 113, 131, 252, 157, 117, 196, 73, 170, 24, 189, 83, 3,\n\t\t131, 174, 190, 181, 127, 220, 69, 7, 97, 205, 237, 251, 7,\n\t\t5, 239, 116, 143, 59, 60, 238, 32, 137, 169, 247, 25, 238,\n\t\t100, 52, 190, 38, 116, 16, 124, 137, 63, 169, 127, 106, 66,\n\t\t144, 120, 120, 196, 91, 245, 251, 231, 229, 235, 203, 105,\n\t\t121, 249, 227, 122, 179, 205, 206, 142, 69, 153, 45, 147,\n\t\t238, 239, 135, 96, 249, 120, 23, 234, 238, 46, 58, 80, 142,\n\t\t15, 12, 136, 15, 152, 156, 63, 68, 236, 125, 52, 206, 127,\n\t\t12, 54, 31, 52, 142, 15, 112, 243, 251, 219, 94, 159, 98,\n\t\t142, 147, 189, 75, 180, 248, 129, 218, 234, 3, 83, 236, 93,\n\t\t126, 204, 226, 151, 98, 103, 161, 149, 117, 30, 236, 93, 145,\n\t\t128, 154, 181, 255, 59, 153, 125, 129, 145, 210, 115, 142,\n\t\t135, 5, 140, 178, 216, 248, 218, 14, 239, 1, 23, 162, 119,\n\t\t199, 17, 199, 95, 197, 156, 214, 244, 68, 221, 255, 4, 203,\n\t\t82, 61, 58, 186, 42, 95, 159, 144, 134, 118, 29, 180, 182,\n\t\t55, 46, 92, 134, 155, 237, 236, 10, 83, 237, 167, 158, 11,\n\t\t171, 195, 69, 172, 217, 117, 136, 216, 219, 64, 103, 119,\n\t\t167, 250, 203, 231, 245, 13, 194, 251, 236, 110, 232, 15,\n\t\t247, 44, 51, 13, 152, 226, 101, 206, 109, 73, 52, 228, 33,\n\t\t50, 92, 82, 246, 68, 41, 144, 48, 20, 103, 37, 225, 190, 240,\n\t\t220, 115, 6, 227, 1, 147, 174, 54, 40, 40, 203, 129, 142,\n\t\t240, 152, 113, 144, 53, 48, 30, 24, 54, 214, 229, 149, 68,\n\t\t132, 25, 130, 39, 194, 214, 144, 53, 106, 44, 239, 182, 11,\n\t\t239, 118, 65, 229, 94, 3, 80, 165, 228, 104, 124, 137, 115,\n\t\t14, 15, 150, 109, 68, 116, 150, 201, 109, 80, 203, 244, 182,\n\t\t19, 178, 193, 75, 92, 133, 68, 135, 73, 26, 214, 64, 115,\n\t\t210, 130, 64, 159, 252, 185, 209, 37, 72, 41, 0, 119, 145,\n\t\t98, 220, 8, 24, 233, 72, 213, 80, 112, 210, 126, 2, 119, 1,\n\t\t187, 248, 236, 153, 174, 109, 103, 31, 16, 62, 148, 52, 93,\n\t\t217, 50, 183, 36, 172, 0, 111, 171, 3, 250, 226, 152, 242,\n\t\t57, 214, 163, 73, 143, 120, 108, 238, 139, 30, 192, 174, 63,\n\t\t20, 62, 15, 23, 113, 162, 93, 59, 49, 244, 99, 25, 81, 248,\n\t\t118, 182, 74, 73, 236, 221, 236, 178, 99, 248, 16, 16, 41,\n\t\t124, 85, 55, 8, 251, 120, 85, 127, 58, 18, 86, 163, 37, 158,\n\t\t166, 75, 109, 14, 225, 156, 73, 170, 183, 154, 136, 232, 182,\n\t\t96, 99, 57, 155, 94, 24, 108, 121, 125, 74, 177, 223, 52,\n\t\t21, 118, 56, 45, 74, 48, 128, 68, 65, 65, 168, 130, 101, 115,\n\t\t117, 125, 56, 105, 129, 201, 52, 70, 142, 59, 140, 220, 114,\n\t\t130, 205, 169, 137, 115, 149, 127, 186, 254, 229, 52, 74,\n\t\t92, 147, 44, 98, 45, 144, 159, 119, 151, 230, 31, 47, 47,\n\t\t215, 74, 97, 118, 109, 68, 18, 39, 55, 135, 60, 149, 202,\n\t\t60, 213, 160, 19, 56, 9, 255, 76, 182, 10, 143, 37, 104, 68,\n\t\t163, 160, 72, 106, 235, 117, 90, 142, 166, 196, 200, 191,\n\t\t163, 193, 65, 93, 111, 121, 39, 133, 43, 164, 177, 147, 227,\n\t\t84, 147, 19, 79, 34, 90, 155, 86, 134, 128, 3, 236, 207, 65,\n\t\t124, 252, 138, 223, 21, 130, 36, 249, 106, 65, 42, 152, 201,\n\t\t96, 181, 151, 188, 29, 173, 182, 200, 127, 71, 167, 137, 3,\n\t\t78, 194, 167, 186, 18, 136, 248, 58, 239, 25, 175, 165, 28,\n\t\t27, 163, 0, 155, 206, 29, 39, 213, 178, 17, 125, 237, 120,\n\t\t190, 192, 234, 197, 197, 203, 227, 163, 130, 12, 4, 133, 191,\n\t\t119, 73, 18, 9, 50, 124, 254, 35, 220, 195, 206, 133, 241,\n\t\t46, 13, 1, 251, 93, 233, 70, 4, 213, 164, 15, 200, 245, 225,\n\t\t174, 175, 126, 249, 56, 250, 167, 252, 126, 215, 238, 40,\n\t\t161, 238, 116, 157, 85, 37, 213, 12, 89, 152, 102, 180, 175,\n\t\t16, 217, 45, 93, 188, 77, 128, 226, 167, 145, 191, 37, 169,\n\t\t91, 86, 2, 216, 44, 115, 122, 5, 245, 92, 119, 195, 1, 209,\n\t\t38, 67, 122, 159, 245, 236, 248, 252, 199, 167, 107, 223,\n\t\t73, 118, 191, 238, 177, 144, 133, 134, 251, 33, 32, 242, 17,\n\t\t55, 221, 151, 241, 124, 205, 187, 209, 241, 253, 207, 247,\n\t\t148, 171, 215, 39, 40, 13, 13, 138, 6, 220, 181, 84, 52, 0,\n\t\t106, 103, 9, 177, 4, 69, 224, 52, 74, 204, 208, 53, 88, 46,\n\t\t122, 201, 246, 183, 94, 186, 127, 92, 254, 29, 94, 73, 57,\n\t\t28, 38, 239, 227, 209, 184, 6, 78, 24, 36, 240, 75, 182, 21,\n\t\t114, 202, 11, 169, 76, 217, 41, 190, 82, 53, 138, 117, 109,\n\t\t73, 204, 246, 253, 139, 68, 254, 120, 9, 124, 141, 81, 214,\n\t\t131, 92, 167, 34, 83, 113, 60, 101, 246, 143, 25, 189, 111,\n\t\t75, 177, 146, 148, 10, 130, 2, 61, 112, 241, 159, 254, 124,\n\t\t254, 106, 94, 126, 53, 235, 231, 95, 111, 52, 107, 127, 11,\n\t\t84, 184, 229, 75, 21, 55, 99, 141, 135, 57, 21, 0, 116, 96,\n\t\t167, 81, 181, 103, 68, 102, 59, 129, 164, 74, 93, 211, 15,\n\t\t84, 58, 107, 66, 172, 184, 151, 237, 57, 37, 201, 22, 31,\n\t\t58, 83, 217, 229, 157, 121, 70, 119, 200, 106, 115, 27, 229,\n\t\t87, 166, 179, 50, 164, 126, 218, 45, 21, 251, 203, 217, 184,\n\t\t190, 177, 221, 110, 131, 77, 80, 199, 141, 130, 138, 99, 47,\n\t\t204, 17, 71, 114, 226, 80, 218, 234, 39, 187, 221, 176, 219,\n\t\t60, 21, 134, 252, 112, 198, 219, 183, 90, 77, 169, 210, 244,\n\t\t139, 14, 224, 99, 69, 153, 192, 84, 63, 208, 198, 143, 182,\n\t\t107, 15, 220, 116, 64, 25, 212, 186, 51, 131, 202, 92, 145,\n\t\t216, 26, 233, 69, 79, 132, 172, 149, 237, 112, 147, 180, 67,\n\t\t27, 54, 10, 182, 134, 141, 190, 213, 145, 145, 174, 189, 126,\n\t\t227, 190, 77, 174, 181, 195, 114, 221, 38, 193, 128, 210,\n\t\t32, 244, 171, 111, 218, 119, 76, 31, 143, 49, 28, 215, 192,\n\t\t157, 208, 90, 180, 99, 143, 58, 16, 219, 56, 140, 113, 218,\n\t\t116, 156, 49, 112, 50, 202, 163, 54, 253, 216, 235, 111, 213,\n\t\t33, 208, 17, 184, 153, 61, 215, 83, 112, 251, 218, 209, 111,\n\t\t58, 2, 70, 135, 192, 92, 204, 228, 222, 101, 163, 211, 117,\n\t\t58, 220, 231, 133, 249, 244, 233, 134, 23, 38, 251, 27, 191,\n\t\t225, 101, 248, 88, 140, 245, 65, 248, 152, 64, 210, 223, 139,\n\t\t241, 146, 252, 164, 237, 61, 183, 49, 95, 103, 190, 230, 61,\n\t\t80, 236, 99, 4, 181, 125, 238, 27, 240, 25, 59, 215, 141,\n\t\t174, 57, 180, 217, 35, 188, 103, 151, 250, 238, 181, 70, 122,\n\t\t54, 253, 116, 199, 236, 254, 139, 83, 227, 22, 159, 116, 138,\n\t\t87, 103, 73, 214, 239, 109, 101, 3, 244, 201, 171, 195, 236,\n\t\t62, 2, 106, 188, 209, 196, 122, 150, 13, 247, 90, 203, 222,\n\t\t108, 254, 55, 71, 252, 11, 69, 156, 72, 176, 181, 158, 83,\n\t\t126, 240, 245, 183, 103, 229, 219, 175, 79, 153, 128, 0, 10,\n\t\t151, 153, 100, 171, 79, 121, 74, 125, 139, 206, 167, 148,\n\t\t71, 41, 10, 89, 127, 255, 250, 10, 221, 73, 158, 52, 187,\n\t\t155, 248, 244, 9, 145, 74, 251, 55, 66, 243, 175, 245, 193,\n\t\t215, 87, 123, 247, 235, 99, 87, 234, 255, 131, 95, 223, 235,\n\t\t255, 207, 125, 125, 42, 249, 63, 58, 243, 123, 253, 255, 177,\n\t\t153, 255, 80, 168, 153, 151, 63, 62, 221, 88, 45, 252, 175,\n\t\t223, 43, 217, 222, 136, 136, 32, 253, 192, 27, 158, 13, 213,\n\t\t189, 110, 220, 199, 236, 178, 199, 114, 205, 23, 161, 89,\n\t\t248, 230, 222, 189, 140, 101, 124, 179, 119, 15, 15, 5, 75,\n\t\t175, 30, 107, 235, 155, 167, 118, 202, 223, 55, 181, 177,\n\t\t176, 126, 102, 237, 247, 63, 30, 51, 251, 103, 246, 253, 195,\n\t\t218, 157, 127, 132, 70, 19, 30, 162, 57, 97, 135, 61, 60,\n\t\t220, 98, 239, 32, 65, 28, 147, 243, 156, 137, 177, 94, 70,\n\t\t52, 254, 93, 57, 195, 86, 127, 147, 152, 9, 160, 198, 61,\n\t\t251, 71, 98, 174, 222, 90, 159, 111, 235, 167, 185, 251, 155,\n\t\t133, 252, 199, 234, 255, 41, 213, 195, 19, 249, 161, 222,\n\t\t255, 192, 231, 127, 123, 247, 223, 149, 179, 199, 79, 207,\n\t\t127, 126, 250, 106, 126, 127, 62, 253, 243, 230, 92, 30, 110,\n\t\t104, 26, 118, 81, 7, 182, 235, 225, 8, 248, 235, 231, 151,\n\t\t162, 185, 188, 49, 8, 54, 165, 119, 194, 152, 85, 70, 144,\n\t\t81, 157, 137, 53, 79, 227, 113, 108, 154, 188, 79, 80, 150,\n\t\t197, 120, 181, 142, 43, 27, 147, 27, 177, 108, 248, 153, 132,\n\t\t12, 160, 48, 220, 230, 245, 169, 9, 122, 132, 75, 97, 73,\n\t\t154, 38, 19, 120, 108, 157, 178, 226, 130, 20, 39, 119, 57,\n\t\t71, 173, 186, 198, 185, 0, 74, 59, 165, 38, 80, 92, 2, 42,\n\t\t205, 80, 127, 96, 77, 132, 6, 50, 207, 2, 7, 3, 83, 231, 104,\n\t\t13, 38, 110, 72, 68, 62, 165, 232, 246, 244, 76, 11, 237,\n\t\t28, 1, 140, 180, 8, 12, 34, 78, 88, 159, 251, 169, 222, 123,\n\t\t55, 101, 167, 85, 219, 56, 199, 52, 185, 232, 103, 91, 87,\n\t\t64, 53, 5, 155, 38, 87, 218, 76, 42, 69, 230, 163, 8, 190,\n\t\t197, 84, 4, 99, 53, 101, 161, 180, 150, 12, 185, 220, 144,\n\t\t192, 183, 228, 130, 140, 174, 41, 8, 209, 139, 139, 97, 142,\n\t\t48, 182, 129, 63, 217, 123, 59, 59, 175, 151, 64, 104, 119,\n\t\t140, 134, 43, 100, 255, 26, 41, 70, 197, 49, 85, 198, 36,\n\t\t225, 85, 132, 101, 15, 128, 104, 185, 37, 24, 190, 105, 120,\n\t\t115, 146, 66, 27, 149, 41, 91, 112, 41, 8, 89, 98, 121, 187,\n\t\t27, 65, 236, 3, 74, 189, 144, 131, 199, 48, 204, 44, 226,\n\t\t25, 214, 24, 4, 145, 50, 12, 106, 102, 47, 41, 6, 105, 131,\n\t\t69, 91, 140, 147, 240, 231, 13, 183, 166, 143, 16, 152, 133,\n\t\t45, 243, 2, 145, 0, 41, 108, 16, 82, 178, 152, 76, 106, 111,\n\t\t12, 70, 112, 26, 37, 33, 28, 42, 181, 205, 72, 223, 102, 144,\n\t\t252, 97, 177, 72, 0, 2, 16, 146, 37, 219, 110, 216, 89, 229,\n\t\t119, 20, 188, 150, 161, 195, 64, 250, 193, 161, 246, 245,\n\t\t201, 181, 48, 135, 60, 249, 102, 231, 152, 151, 160, 171,\n\t\t222, 15, 242, 82, 5, 225, 138, 94, 18, 57, 130, 162, 20, 199,\n\t\t44, 72, 206, 222, 169, 229, 86, 163, 180, 162, 159, 19, 28,\n\t\t244, 89, 19, 132, 3, 125, 174, 204, 176, 31, 140, 51, 187,\n\t\t180, 82, 228, 74, 250, 105, 128, 233, 238, 2, 218, 252, 70,\n\t\t197, 78, 16, 150, 36, 46, 89, 47, 233, 156, 166, 204, 5, 43,\n\t\t129, 153, 135, 226, 102, 29, 212, 16, 94, 111, 151, 244, 217,\n\t\t129, 85, 150, 6, 3, 34, 18, 163, 157, 126, 125, 16, 176, 172,\n\t\t160, 62, 130, 34, 73, 185, 52, 67, 50, 216, 60, 194, 161,\n\t\t150, 187, 124, 153, 130, 47, 179, 3, 120, 14, 173, 128, 97,\n\t\t142, 150, 188, 3, 12, 157, 3, 180, 29, 37, 6, 115, 179, 51,\n\t\t113, 206, 183, 165, 100, 184, 150, 232, 214, 33, 148, 99,\n\t\t237, 243, 31, 193, 0, 253, 208, 223, 199, 49, 137, 96, 240,\n\t\t156, 133, 19, 104, 73, 107, 92, 76, 14, 98, 86, 115, 234,\n\t\t31, 47, 97, 46, 96, 236, 11, 228, 113, 14, 206, 77, 30, 236,\n\t\t151, 235, 213, 234, 85, 27, 177, 175, 36, 2, 246, 153, 54,\n\t\t240, 100, 9, 227, 212, 255, 79, 98, 62, 219, 37, 17, 236,\n\t\t17, 137, 40, 121, 72, 127, 231, 202, 111, 164, 45, 236, 147,\n\t\t63, 36, 219, 181, 186, 16, 230, 190, 197, 4, 59, 51, 118,\n\t\t6, 129, 210, 136, 178, 220, 198, 220, 54, 36, 221, 41, 145,\n\t\t80, 31, 244, 162, 72, 110, 30, 168, 140, 99, 208, 147, 0,\n\t\t9, 244, 49, 247, 205, 77, 23, 67, 126, 61, 226, 230, 122,\n\t\t200, 205, 245, 152, 155, 235, 65, 191, 30, 243, 221, 144,\n\t\t163, 94, 25, 113, 44, 17, 73, 165, 205, 106, 87, 202, 149,\n\t\t186, 181, 96, 114, 122, 36, 0, 79, 178, 62, 14, 92, 32, 217,\n\t\t246, 119, 11, 3, 42, 214, 199, 198, 225, 208, 23, 72, 180,\n\t\t2, 178, 148, 45, 224, 102, 226, 76, 199, 93, 138, 75, 74,\n\t\t178, 144, 154, 82, 131, 217, 58, 19, 216, 27, 238, 62, 223,\n\t\t107, 6, 213, 41, 151, 163, 192, 140, 66, 98, 144, 218, 66,\n\t\t143, 4, 94, 204, 138, 78, 32, 24, 137, 64, 79, 250, 15, 146,\n\t\t112, 147, 71, 213, 20, 33, 79, 244, 85, 124, 44, 77, 114,\n\t\t119, 18, 43, 37, 166, 8, 132, 124, 87, 250, 16, 175, 21, 130,\n\t\t64, 181, 58, 27, 102, 231, 166, 74, 24, 109, 231, 252, 220,\n\t\t94, 159, 18, 188, 66, 147, 171, 158, 104, 241, 163, 215, 145,\n\t\t212, 177, 235, 245, 66, 184, 58, 46, 180, 55, 122, 125, 200,\n\t\t37, 252, 114, 209, 235, 8, 204, 190, 150, 74, 151, 66, 201,\n\t\t220, 72, 37, 35, 98, 233, 176, 147, 75, 230, 86, 48, 93, 76,\n\t\t210, 102, 73, 68, 44, 162, 9, 147, 212, 193, 37, 186, 77,\n\t\t210, 46, 152, 198, 36, 173, 246, 193, 36, 69, 164, 248, 126,\n\t\t146, 66, 174, 201, 36, 189, 175, 26, 125, 125, 254, 245, 215,\n\t\t207, 139, 89, 63, 255, 118, 188, 70, 254, 202, 225, 38, 81,\n\t\t109, 199, 96, 85, 153, 158, 73, 147, 189, 228, 44, 105, 160,\n\t\t77, 201, 162, 245, 244, 67, 64, 179, 18, 249, 27, 24, 43,\n\t\t115, 20, 4, 53, 205, 240, 232, 179, 36, 97, 210, 8, 96, 163,\n\t\t50, 200, 55, 162, 166, 46, 204, 198, 69, 162, 129, 122, 74,\n\t\t114, 152, 37, 32, 218, 90, 198, 250, 116, 109, 212, 233, 245,\n\t\t9, 243, 38, 1, 234, 91, 16, 163, 248, 119, 254, 121, 233,\n\t\t59, 53, 83, 227, 189, 204, 58, 173, 20, 112, 113, 219, 165,\n\t\t52, 225, 152, 227, 89, 90, 223, 149, 164, 50, 128, 237, 233,\n\t\t126, 202, 177, 63, 39, 65, 153, 113, 146, 15, 222, 61, 244,\n\t\t109, 207, 220, 229, 43, 124, 204, 143, 25, 188, 246, 240,\n\t\t55, 143, 11, 161, 139, 64, 230, 178, 15, 121, 185, 208, 180,\n\t\t79, 31, 60, 95, 158, 110, 181, 118, 65, 70, 202, 246, 103,\n\t\t190, 222, 215, 250, 109, 175, 63, 124, 248, 253, 247, 23,\n\t\t210, 95, 203, 63, 205, 239, 47, 95, 78, 127, 222, 0, 28, 231,\n\t\t240, 143, 123, 65, 40, 68, 92, 191, 56, 105, 223, 196, 40,\n\t\t124, 36, 231, 211, 101, 4, 238, 130, 40, 6, 100, 214, 144,\n\t\t19, 37, 41, 29, 124, 95, 5, 132, 11, 137, 160, 27, 86, 138,\n\t\t237, 86, 177, 75, 193, 64, 65, 107, 17, 238, 43, 141, 86,\n\t\t162, 76, 208, 200, 183, 94, 140, 45, 255, 226, 197, 39, 188,\n\t\t141, 48, 35, 23, 111, 171, 124, 25, 218, 136, 109, 237, 242,\n\t\t8, 120, 105, 125, 120, 156, 149, 8, 87, 246, 251, 55, 148,\n\t\t252, 128, 89, 213, 245, 133, 24, 255, 102, 118, 116, 13, 162,\n\t\t216, 3, 44, 175, 30, 75, 224, 78, 120, 127, 93, 194, 55, 15,\n\t\t130, 137, 202, 172, 90, 108, 245, 43, 168, 121, 44, 140, 25,\n\t\t71, 83, 157, 36, 48, 247, 181, 152, 26, 72, 22, 222, 155,\n\t\t24, 98, 80, 121, 123, 118, 80, 13, 222, 207, 142, 4, 220,\n\t\t16, 207, 132, 66, 0, 72, 209, 53, 196, 184, 164, 226, 170,\n\t\t160, 13, 228, 230, 118, 14, 117, 111, 113, 148, 88, 7, 229,\n\t\t181, 252, 242, 118, 228, 118, 181, 35, 114, 59, 216, 182,\n\t\t142, 216, 244, 17, 219, 254, 177, 72, 246, 85, 107, 81, 166,\n\t\t237, 254, 24, 79, 66, 91, 96, 24, 92, 168, 22, 84, 18, 68,\n\t\t76, 1, 177, 187, 101, 198, 15, 32, 95, 206, 134, 65, 219,\n\t\t143, 87, 78, 240, 15, 230, 163, 188, 200, 40, 31, 215, 160,\n\t\t103, 137, 253, 196, 55, 242, 148, 122, 111, 181, 6, 114, 171,\n\t\t222, 128, 195, 246, 33, 102, 247, 37, 143, 99, 215, 183, 158,\n\t\t147, 159, 111, 135, 227, 87, 133, 193, 71, 111, 223, 244,\n\t\t153, 118, 85, 86, 189, 76, 123, 170, 119, 29, 78, 230, 85,\n\t\t177, 113, 56, 202, 71, 237, 176, 239, 89, 156, 124, 197, 97,\n\t\t233, 211, 44, 181, 73, 39, 89, 34, 66, 136, 206, 176, 171,\n\t\t154, 223, 28, 241, 71, 31, 124, 221, 71, 15, 243, 15, 222,\n\t\t152, 196, 194, 252, 47, 61, 165, 29, 163, 29, 37, 173, 211,\n\t\t214, 158, 199, 124, 122, 247, 235, 251, 222, 121, 95, 146,\n\t\t203, 59, 198, 226, 147, 126, 26, 75, 79, 58, 74, 171, 214,\n\t\t49, 186, 25, 222, 135, 95, 123, 189, 248, 62, 182, 100, 175,\n\t\t251, 232, 176, 140, 21, 167, 189, 53, 22, 156, 118, 151, 14,\n\t\t166, 74, 11, 153, 3, 123, 8, 134, 143, 111, 199, 31, 222,\n\t\t141, 145, 64, 246, 1, 249, 152, 160, 202, 125, 147, 144, 60,\n\t\t92, 74, 73, 70, 96, 254, 48, 41, 121, 157, 223, 114, 51, 80,\n\t\t63, 71, 72, 194, 252, 179, 151, 145, 189, 237, 58, 31, 15,\n\t\t255, 17, 33, 217, 91, 240, 147, 101, 228, 85, 194, 211, 101,\n\t\t151, 29, 46, 132, 36, 121, 98, 255, 141, 66, 242, 27, 100,\n\t\t36, 113, 34, 63, 34, 35, 47, 63, 248, 162, 143, 250, 49, 245,\n\t\t161, 216, 248, 183, 8, 201, 127, 143, 140, 252, 192, 215,\n\t\t254, 24, 33, 249, 61, 50, 114, 195, 213, 249, 78, 25, 121,\n\t\t248, 123, 71, 150, 63, 62, 47, 255, 188, 201, 217, 202, 225,\n\t\t78, 46, 102, 63, 177, 244, 67, 220, 247, 159, 88, 34, 233,\n\t\t113, 0, 206, 222, 74, 134, 113, 214, 195, 246, 238, 84, 103,\n\t\t113, 86, 160, 29, 70, 1, 108, 14, 217, 105, 214, 140, 210,\n\t\t104, 58, 160, 135, 201, 255, 64, 185, 2, 83, 187, 101, 225,\n\t\t197, 109, 253, 6, 59, 105, 124, 177, 5, 160, 12, 3, 252, 105,\n\t\t218, 20, 81, 0, 111, 85, 65, 148, 232, 161, 55, 49, 219, 18,\n\t\t253, 69, 19, 41, 49, 118, 77, 148, 130, 143, 52, 241, 244,\n\t\t129, 118, 49, 83, 251, 173, 118, 197, 70, 120, 152, 239, 17,\n\t\t66, 46, 211, 191, 127, 47, 114, 244, 236, 8, 87, 243, 115,\n\t\t14, 82, 87, 48, 83, 177, 126, 232, 8, 197, 19, 84, 2, 204,\n\t\t211, 209, 165, 122, 11, 3, 229, 36, 188, 222, 149, 60, 5,\n\t\t255, 109, 16, 80, 135, 15, 99, 64, 33, 59, 232, 91, 95, 255,\n\t\t225, 183, 223, 165, 157, 253, 229, 122, 189, 70, 55, 210,\n\t\t185, 82, 153, 147, 159, 92, 201, 171, 130, 183, 37, 26, 157,\n\t\t198, 181, 145, 130, 35, 57, 129, 109, 123, 5, 241, 18, 76,\n\t\t75, 129, 81, 209, 118, 2, 175, 0, 125, 91, 248, 221, 199,\n\t\t211, 184, 54, 44, 96, 33, 249, 126, 71, 185, 143, 167, 221,\n\t\t99, 248, 79, 122, 170, 70, 72, 185, 93, 218, 233, 164, 161,\n\t\t8, 158, 49, 70, 248, 51, 255, 34, 61, 211, 255, 29, 77, 116,\n\t\t153, 164, 102, 136, 16, 102, 39, 75, 95, 157, 125, 197, 4,\n\t\t197, 95, 245, 157, 248, 239, 24, 49, 87, 146, 157, 83, 159,\n\t\t22, 139, 67, 6, 85, 149, 68, 24, 193, 149, 212, 16, 118, 79,\n\t\t140, 214, 36, 48, 122, 46, 197, 57, 227, 8, 101, 107, 169,\n\t\t13, 232, 155, 33, 80, 156, 251, 232, 193, 121, 238, 198, 190,\n\t\t145, 179, 94, 31, 49, 255, 67, 179, 217, 167, 35, 40, 33,\n\t\t179, 245, 251, 66, 16, 213, 105, 242, 148, 107, 115, 130,\n\t\t72, 41, 179, 247, 46, 215, 241, 54, 242, 33, 88, 135, 6, 137,\n\t\t201, 186, 183, 40, 64, 97, 217, 36, 35, 124, 106, 81, 18,\n\t\t151, 12, 190, 1, 95, 68, 196, 133, 126, 121, 236, 11, 51,\n\t\t218, 120, 236, 77, 72, 8, 193, 236, 91, 92, 117, 30, 116,\n\t\t44, 97, 182, 9, 110, 138, 234, 50, 81, 149, 156, 139, 1, 227,\n\t\t153, 214, 34, 96, 197, 124, 81, 177, 179, 111, 189, 12, 216,\n\t\t137, 124, 251, 194, 108, 6, 234, 151, 2, 126, 67, 246, 36,\n\t\t76, 149, 93, 99, 112, 169, 141, 121, 125, 138, 125, 210, 56,\n\t\t13, 93, 191, 23, 46, 0, 4, 242, 135, 225, 2, 116, 82, 47,\n\t\t3, 54, 212, 207, 25, 168, 169, 128, 178, 140, 91, 24, 175,\n\t\t31, 191, 51, 31, 68, 82, 186, 53, 31, 128, 70, 82, 36, 4,\n\t\t156, 246, 215, 146, 35, 0, 44, 79, 192, 43, 57, 193, 244,\n\t\t242, 2, 151, 225, 171, 196, 255, 206, 185, 180, 220, 22, 47,\n\t\t153, 18, 131, 26, 178, 40, 186, 177, 220, 1, 254, 41, 174,\n\t\t69, 22, 28, 221, 53, 186, 252, 133, 188, 190, 47, 14, 190,\n\t\t252, 243, 38, 54, 54, 222, 64, 43, 6, 63, 194, 26, 64, 83,\n\t\t202, 197, 190, 95, 234, 164, 72, 237, 189, 52, 104, 49, 2,\n\t\t117, 32, 242, 150, 109, 171, 254, 136, 24, 51, 151, 30, 220,\n\t\t4, 22, 14, 169, 68, 229, 132, 74, 137, 179, 75, 190, 191,\n\t\t230, 206, 29, 180, 132, 43, 224, 25, 254, 162, 34, 229, 24,\n\t\t163, 224, 194, 121, 129, 176, 9, 154, 171, 17, 120, 12, 2,\n\t\t171, 29, 236, 143, 90, 32, 184, 139, 181, 114, 91, 26, 249,\n\t\t9, 49, 50, 63, 33, 198, 19, 243, 30, 148, 65, 13, 249, 13,\n\t\t194, 44, 84, 102, 101, 82, 7, 68, 106, 17, 86, 181, 241, 114,\n\t\t128, 200, 73, 163, 168, 212, 33, 233, 200, 115, 159, 22, 185,\n\t\t213, 55, 62, 226, 98, 197, 58, 64, 139, 162, 48, 237, 22,\n\t\t209, 4, 74, 21, 68, 224, 74, 119, 70, 45, 139, 23, 78, 63,\n\t\t47, 216, 219, 145, 144, 207, 174, 255, 34, 183, 216, 225,\n\t\t41, 82, 82, 31, 24, 102, 251, 157, 247, 19, 247, 255, 241,\n\t\t249, 31, 235, 77, 14, 67, 188, 241, 252, 236, 56, 204, 99,\n\t\t157, 170, 42, 110, 200, 71, 36, 216, 89, 208, 227, 94, 222,\n\t\t21, 186, 54, 203, 106, 211, 191, 250, 153, 154, 178, 22, 164,\n\t\t50, 103, 107, 17, 172, 80, 2, 126, 93, 178, 82, 184, 233,\n\t\t47, 219, 235, 4, 133, 122, 255, 254, 254, 26, 77, 226, 131,\n\t\t64, 80, 42, 14, 159, 54, 174, 240, 139, 95, 250, 196, 204,\n\t\t115, 92, 76, 138, 10, 132, 96, 72, 244, 201, 219, 70, 80,\n\t\t119, 159, 46, 122, 143, 254, 117, 68, 63, 242, 29, 174, 183,\n\t\t124, 84, 160, 237, 186, 174, 241, 108, 66, 0, 65, 223, 235,\n\t\t83, 159, 110, 193, 198, 15, 132, 223, 69, 66, 19, 62, 184,\n\t\t235, 250, 48, 117, 33, 54, 206, 152, 149, 245, 222, 29, 193,\n\t\t31, 30, 136, 224, 120, 69, 140, 241, 214, 61, 183, 198, 129,\n\t\t91, 41, 141, 157, 252, 6, 28, 245, 250, 190, 215, 167, 80,\n\t\t237, 92, 39, 123, 206, 241, 104, 124, 141, 51, 128, 34, 38,\n\t\t133, 58, 27, 68, 43, 144, 217, 167, 253, 181, 164, 76, 225,\n\t\t153, 251, 115, 254, 175, 211, 231, 47, 159, 78, 39, 243, 231,\n\t\t231, 223, 111, 231, 254, 243, 251, 71, 31, 4, 31, 250, 184,\n\t\t148, 198, 40, 29, 11, 233, 97, 178, 192, 88, 226, 162, 203,\n\t\t145, 81, 98, 180, 72, 202, 251, 111, 23, 127, 235, 165, 251,\n\t\t199, 229, 223, 235, 83, 202, 118, 42, 97, 46, 238, 44, 108,\n\t\t80, 56, 26, 72, 72, 73, 132, 8, 243, 83, 219, 200, 110, 149,\n\t\t37, 181, 16, 164, 9, 177, 72, 231, 20, 225, 255, 252, 182,\n\t\t71, 29, 93, 203, 135, 197, 232, 67, 118, 187, 107, 60, 111,\n\t\t174, 95, 112, 238, 58, 120, 18, 118, 38, 125, 242, 230, 238,\n\t\t235, 167, 142, 153, 48, 241, 203, 86, 151, 222, 114, 221,\n\t\t82, 249, 249, 202, 81, 72, 25, 94, 85, 165, 115, 47, 126,\n\t\t199, 13, 196, 222, 237, 130, 145, 9, 133, 38, 180, 174, 136,\n\t\t208, 107, 164, 107, 211, 75, 76, 210, 208, 23, 171, 21, 208,\n\t\t202, 119, 239, 128, 235, 50, 41, 184, 103, 164, 194, 166,\n\t\t183, 64, 145, 197, 107, 30, 222, 131, 160, 148, 222, 189,\n\t\t140, 18, 177, 36, 154, 96, 96, 130, 164, 92, 86, 193, 218,\n\t\t27, 191, 191, 62, 5, 15, 64, 171, 51, 161, 14, 16, 192, 123,\n\t\t116, 190, 246, 63, 228, 185, 122, 130, 56, 68, 29, 103, 39,\n\t\t68, 129, 38, 107, 8, 67, 208, 180, 198, 81, 194, 207, 53,\n\t\t158, 48, 80, 83, 81, 222, 131, 148, 102, 50, 153, 211, 237,\n\t\t94, 237, 209, 248, 230, 230, 24, 22, 179, 125, 26, 20, 113,\n\t\t141, 235, 162, 46, 238, 98, 60, 186, 230, 207, 87, 184, 8,\n\t\t111, 72, 45, 231, 122, 157, 247, 97, 116, 63, 255, 121, 205,\n\t\t63, 148, 227, 157, 184, 248, 236, 56, 43, 238, 105, 53, 62,\n\t\t127, 0, 70, 34, 149, 252, 136, 60, 140, 25, 151, 59, 205,\n\t\t68, 42, 17, 221, 196, 62, 242, 79, 62, 2, 212, 173, 246, 152,\n\t\t227, 195, 151, 60, 114, 53, 240, 45, 229, 90, 139, 186, 104,\n\t\t107, 215, 111, 244, 143, 111, 247, 153, 203, 245, 232, 66,\n\t\t102, 154, 104, 140, 100, 12, 202, 26, 10, 155, 100, 145, 194,\n\t\t170, 209, 127, 144, 14, 72, 255, 110, 81, 58, 238, 50, 252,\n\t\t167, 124, 63, 122, 215, 254, 207, 252, 113, 140, 118, 217,\n\t\t222, 225, 252, 180, 171, 199, 249, 215, 3, 115, 86, 149, 191,\n\t\t232, 63, 220, 26, 52, 198, 135, 252, 111, 107, 204, 225, 110,\n\t\t107, 124, 202, 255, 87, 198, 9, 109, 249, 129, 195, 116, 248,\n\t\t254, 214, 252, 59, 199, 233, 110, 99, 162, 251, 112, 215,\n\t\t28, 254, 61, 173, 249, 63, 213, 53, 33, 248, 51, 7, 252, 63,\n\t\t221, 26, 100, 54, 252, 251, 214, 211, 253, 197, 77, 182, 219,\n\t\t15, 205, 154, 31, 210, 154, 123, 141, 185, 187, 123, 191,\n\t\t252, 254, 251, 167, 47, 127, 154, 95, 94, 214, 245, 249, 38,\n\t\t32, 42, 13, 115, 37, 132, 149, 203, 139, 139, 110, 14, 216,\n\t\t130, 82, 6, 12, 17, 41, 75, 144, 55, 101, 235, 201, 56, 112,\n\t\t94, 225, 162, 159, 170, 88, 140, 64, 62, 168, 206, 22, 228,\n\t\t245, 197, 77, 101, 4, 89, 219, 50, 71, 112, 247, 32, 0, 207,\n\t\t71, 141, 24, 20, 62, 73, 144, 221, 19, 86, 208, 137, 135,\n\t\t213, 69, 59, 231, 113, 125, 220, 217, 178, 153, 100, 30, 232,\n\t\t6, 42, 115, 107, 201, 17, 223, 136, 185, 23, 82, 32, 63, 97,\n\t\t47, 159, 75, 118, 197, 79, 118, 110, 21, 220, 32, 113, 246,\n\t\t190, 164, 56, 249, 153, 132, 179, 105, 78, 54, 214, 186, 216,\n\t\t57, 77, 35, 216, 62, 122, 110, 196, 81, 120, 122, 83, 100,\n\t\t170, 67, 35, 184, 57, 146, 245, 240, 21, 33, 73, 224, 183,\n\t\t194, 28, 84, 167, 185, 6, 82, 224, 66, 223, 198, 123, 75,\n\t\t92, 236, 106, 176, 244, 95, 239, 62, 72, 65, 91, 73, 165,\n\t\t0, 40, 130, 188, 4, 59, 251, 54, 5, 113, 32, 39, 66, 139,\n\t\t33, 163, 173, 218, 52, 69, 161, 60, 207, 1, 132, 182, 198,\n\t\t11, 12, 186, 247, 51, 19, 60, 104, 194, 136, 78, 8, 128, 162,\n\t\t23, 152, 125, 42, 81, 171, 73, 150, 65, 97, 142, 212, 21,\n\t\t112, 187, 66, 213, 116, 0, 208, 235, 115, 144, 33, 179, 113,\n\t\t14, 73, 98, 85, 88, 80, 201, 59, 66, 126, 246, 104, 115, 239,\n\t\t118, 114, 191, 41, 135, 84, 69, 70, 65, 208, 235, 99, 240,\n\t\t8, 50, 62, 218, 217, 230, 132, 12, 119, 63, 183, 216, 251,\n\t\t220, 78, 101, 78, 46, 100, 36, 51, 180, 22, 93, 116, 68, 117,\n\t\t138, 128, 36, 65, 6, 207, 97, 137, 106, 62, 16, 54, 112, 103,\n\t\t217, 25, 70, 25, 228, 93, 36, 229, 191, 103, 102, 196, 234,\n\t\t10, 153, 165, 250, 79, 215, 210, 162, 14, 162, 52, 194, 145,\n\t\t233, 45, 116, 36, 24, 235, 47, 2, 138, 156, 171, 50, 55, 219,\n\t\t12, 103, 35, 201, 199, 188, 21, 14, 116, 43, 129, 216, 154,\n\t\t134, 2, 110, 253, 179, 19, 16, 241, 71, 86, 211, 71, 199,\n\t\t236, 51, 200, 212, 200, 246, 199, 193, 55, 58, 250, 70, 135,\n\t\t223, 232, 248, 27, 157, 0, 200, 21, 136, 173, 46, 58, 3, 12,\n\t\t167, 128, 31, 193, 232, 142, 55, 234, 12, 48, 58, 5, 116,\n\t\t6, 24, 157, 2, 97, 152, 112, 56, 5, 116, 192, 141, 78, 129,\n\t\t81, 176, 77, 1, 163, 115, 192, 232, 36, 48, 58, 11, 140, 78,\n\t\t3, 45, 57, 26, 153, 8, 135, 109, 182, 97, 241, 34, 199, 97,\n\t\t243, 56, 58, 43, 4, 10, 28, 255, 190, 210, 49, 254, 126, 144,\n\t\t193, 203, 248, 235, 240, 27, 29, 127, 163, 19, 192, 232, 12,\n\t\t48, 58, 5, 134, 147, 208, 232, 36, 48, 131, 29, 95, 167, 129,\n\t\t204, 2, 163, 211, 128, 169, 88, 74, 243, 96, 21, 148, 71,\n\t\t166, 193, 150, 140, 132, 105, 96, 182, 121, 112, 247, 152,\n\t\t117, 215, 168, 124, 6, 159, 222, 3, 52, 27, 17, 228, 167,\n\t\t247, 36, 249, 13, 190, 218, 70, 102, 18, 229, 68, 214, 219,\n\t\t40, 70, 215, 33, 217, 141, 203, 86, 164, 57, 16, 110, 162,\n\t\t76, 181, 62, 68, 77, 51, 109, 196, 185, 224, 156, 155, 125,\n\t\t153, 60, 241, 159, 96, 242, 149, 240, 22, 229, 34, 76, 154,\n\t\t26, 35, 247, 160, 66, 129, 81, 98, 201, 223, 150, 230, 223,\n\t\t32, 204, 15, 139, 69, 166, 87, 232, 135, 118, 201, 159, 243,\n\t\t10, 121, 26, 5, 77, 45, 209, 55, 150, 162, 204, 20, 207, 180,\n\t\t169, 201, 103, 129, 169, 9, 66, 249, 158, 202, 92, 156, 36,\n\t\t137, 161, 160, 209, 101, 176, 51, 97, 107, 103, 10, 182, 67,\n\t\t255, 121, 66, 151, 22, 199, 77, 78, 251, 119, 139, 188, 254,\n\t\t123, 44, 171, 226, 143, 58, 44, 74, 237, 98, 169, 21, 132,\n\t\t1, 39, 6, 226, 245, 113, 21, 153, 27, 74, 58, 99, 166, 145,\n\t\t40, 97, 87, 40, 146, 135, 21, 28, 97, 13, 99, 128, 185, 122,\n\t\t53, 49, 33, 182, 4, 252, 8, 156, 164, 226, 205, 81, 154, 203,\n\t\t41, 111, 171, 158, 5, 125, 2, 248, 214, 187, 68, 115, 63,\n\t\t210, 6, 206, 5, 71, 158, 208, 103, 200, 245, 81, 210, 91,\n\t\t150, 216, 39, 126, 2, 68, 214, 160, 210, 82, 130, 106, 207,\n\t\t77, 87, 41, 66, 14, 75, 208, 137, 40, 11, 126, 42, 74, 16,\n\t\t183, 163, 215, 128, 59, 80, 19, 149, 86, 80, 63, 128, 49,\n\t\t212, 45, 187, 228, 32, 40, 79, 65, 226, 163, 154, 74, 24,\n\t\t139, 196, 143, 0, 22, 105, 23, 109, 238, 59, 2, 137, 39, 179,\n\t\t202, 120, 111, 5, 168, 95, 61, 173, 193, 137, 84, 114, 240,\n\t\t114, 156, 129, 26, 122, 159, 202, 247, 33, 73, 175, 140, 241,\n\t\t198, 223, 51, 70, 121, 67, 132, 83, 130, 253, 29, 70, 220,\n\t\t24, 107, 163, 131, 221, 199, 154, 0, 171, 50, 216, 58, 214,\n\t\t70, 7, 27, 190, 185, 62, 216, 105, 132, 225, 201, 96, 235,\n\t\t208, 154, 60, 246, 121, 41, 216, 6, 219, 232, 104, 27, 25,\n\t\t110, 163, 227, 109, 116, 192, 181, 228, 168, 25, 77, 164,\n\t\t194, 148, 65, 55, 85, 232, 205, 244, 113, 25, 115, 25, 114,\n\t\t184, 43, 8, 190, 170, 217, 143, 58, 228, 58, 226, 16, 204,\n\t\t93, 132, 140, 228, 52, 224, 118, 131, 5, 14, 163, 222, 187,\n\t\t87, 24, 236, 68, 173, 14, 115, 240, 13, 137, 58, 28, 247,\n\t\t193, 143, 105, 116, 220, 117, 216, 77, 214, 140, 37, 171,\n\t\t28, 20, 50, 238, 58, 236, 70, 199, 221, 96, 224, 95, 159,\n\t\t82, 168, 51, 185, 41, 153, 214, 233, 20, 213, 45, 200, 254,\n\t\t22, 210, 28, 11, 52, 68, 73, 52, 236, 146, 8, 59, 74, 23,\n\t\t69, 203, 216, 238, 252, 136, 222, 19, 35, 97, 18, 150, 18,\n\t\t221, 175, 170, 70, 159, 49, 179, 212, 139, 83, 116, 16, 2,\n\t\t155, 184, 41, 38, 195, 230, 140, 146, 197, 132, 172, 80, 166,\n\t\t72, 177, 241, 156, 43, 126, 39, 175, 135, 144, 15, 126, 22,\n\t\t232, 165, 36, 105, 44, 197, 206, 190, 2, 174, 87, 133, 188,\n\t\t108, 12, 90, 112, 88, 76, 205, 26, 191, 208, 197, 222, 236,\n\t\t167, 56, 180, 183, 230, 230, 18, 166, 38, 25, 57, 206, 170,\n\t\t17, 94, 220, 231, 222, 106, 134, 172, 32, 209, 109, 201, 149,\n\t\t2, 71, 231, 130, 159, 67, 132, 149, 12, 196, 249, 194, 227,\n\t\t105, 133, 197, 96, 8, 39, 139, 112, 16, 95, 64, 144, 66, 217,\n\t\t167, 125, 74, 37, 104, 41, 137, 50, 31, 194, 31, 171, 216,\n\t\t3, 223, 209, 116, 53, 158, 174, 71, 94, 187, 88, 149, 42,\n\t\t43, 68, 129, 182, 235, 234, 7, 14, 48, 25, 86, 90, 108, 15,\n\t\t154, 47, 213, 127, 185, 191, 155, 127, 125, 57, 221, 164,\n\t\t192, 167, 91, 95, 241, 150, 231, 149, 252, 7, 120, 222, 63,\n\t\t98, 86, 237, 147, 245, 67, 48, 190, 57, 62, 198, 34, 22, 207,\n\t\t241, 189, 187, 238, 199, 54, 181, 7, 25, 34, 135, 99, 142,\n\t\t15, 62, 186, 229, 227, 3, 221, 233, 151, 227, 243, 215, 223,\n\t\t159, 151, 227, 243, 63, 191, 62, 223, 116, 122, 26, 0, 152,\n\t\t45, 77, 190, 235, 209, 113, 217, 137, 6, 217, 17, 128, 9,\n\t\t75, 32, 104, 87, 196, 231, 236, 210, 220, 138, 45, 103, 176,\n\t\t139, 6, 74, 196, 214, 231, 125, 132, 160, 18, 224, 180, 129,\n\t\t141, 237, 202, 120, 4, 170, 42, 18, 208, 28, 195, 113, 55,\n\t\t39, 132, 25, 25, 208, 222, 106, 186, 152, 56, 194, 187, 212,\n\t\t174, 162, 141, 246, 153, 187, 14, 222, 156, 174, 140, 246,\n\t\t19, 86, 70, 146, 189, 239, 109, 165, 11, 161, 12, 254, 237,\n\t\t76, 41, 179, 101, 71, 250, 0, 191, 251, 97, 53, 64, 76, 21,\n\t\t48, 190, 254, 11, 120, 207, 145, 209, 185, 253, 162, 244,\n\t\t158, 253, 64, 72, 182, 145, 254, 124, 63, 101, 94, 200, 221,\n\t\t40, 162, 4, 8, 181, 144, 121, 196, 238, 13, 114, 234, 200,\n\t\t153, 132, 17, 192, 103, 32, 21, 92, 255, 148, 56, 190, 109,\n\t\t117, 3, 61, 157, 61, 180, 140, 49, 24, 2, 123, 140, 196, 190,\n\t\t75, 251, 197, 113, 140, 196, 24, 7, 59, 237, 160, 195, 117,\n\t\t68, 228, 9, 87, 14, 43, 129, 35, 128, 182, 198, 140, 83, 229,\n\t\t183, 27, 227, 209, 123, 63, 90, 156, 173, 100, 71, 67, 139,\n\t\t161, 48, 9, 130, 154, 124, 183, 25, 31, 174, 221, 111, 198,\n\t\t128, 104, 255, 155, 49, 34, 210, 255, 251, 141, 75, 7, 226,\n\t\t102, 28, 178, 32, 125, 142, 222, 119, 133, 82, 121, 100, 100,\n\t\t203, 219, 198, 148, 144, 54, 81, 139, 64, 223, 7, 197, 77,\n\t\t214, 174, 207, 154, 176, 172, 211, 74, 102, 213, 152, 155,\n\t\t102, 76, 206, 91, 21, 169, 119, 253, 126, 24, 116, 45, 108,\n\t\t75, 65, 71, 64, 187, 93, 135, 97, 187, 121, 189, 169, 72,\n\t\t59, 29, 49, 20, 45, 140, 62, 239, 99, 16, 90, 158, 46, 90,\n\t\t26, 87, 115, 251, 181, 218, 225, 89, 183, 112, 237, 239, 49,\n\t\t0, 23, 93, 230, 108, 90, 247, 189, 158, 16, 104, 205, 206,\n\t\t214, 206, 215, 190, 214, 190, 191, 29, 184, 155, 9, 160, 125,\n\t\t173, 125, 175, 93, 173, 93, 207, 158, 222, 205, 32, 153, 244,\n\t\t99, 22, 142, 126, 214, 158, 223, 132, 207, 180, 77, 223, 163,\n\t\t244, 246, 97, 217, 166, 251, 14, 151, 95, 250, 125, 91, 31,\n\t\t168, 104, 176, 144, 119, 149, 120, 67, 91, 96, 199, 15, 81,\n\t\t163, 61, 47, 45, 221, 150, 231, 110, 141, 71, 27, 151, 60,\n\t\t52, 100, 246, 187, 118, 179, 118, 251, 141, 148, 144, 94,\n\t\t166, 176, 145, 238, 190, 148, 53, 67, 194, 12, 153, 179, 225,\n\t\t14, 200, 235, 14, 219, 208, 15, 217, 55, 100, 140, 74, 157,\n\t\t33, 98, 84, 232, 92, 138, 207, 248, 250, 228, 171, 235, 178,\n\t\t39, 196, 54, 135, 182, 154, 56, 208, 191, 153, 57, 222, 149,\n\t\t19, 47, 54, 168, 8, 134, 126, 215, 36, 210, 61, 11, 30, 248,\n\t\t192, 150, 118, 14, 231, 151, 53, 50, 192, 31, 9, 204, 13,\n\t\t72, 35, 136, 170, 113, 74, 215, 27, 133, 228, 220, 7, 240,\n\t\t211, 72, 92, 243, 228, 203, 92, 74, 11, 175, 79, 190, 79,\n\t\t157, 44, 77, 58, 192, 94, 90, 105, 203, 19, 8, 3, 88, 114,\n\t\t188, 0, 84, 100, 244, 164, 190, 196, 200, 91, 70, 35, 12,\n\t\t91, 33, 56, 214, 83, 82, 238, 131, 202, 13, 180, 105, 148,\n\t\t94, 213, 192, 44, 124, 195, 235, 147, 243, 121, 14, 109, 242,\n\t\t53, 205, 253, 20, 52, 26, 239, 154, 134, 211, 176, 245, 128,\n\t\t19, 105, 126, 84, 204, 166, 184, 86, 214, 60, 190, 151, 125,\n\t\t186, 248, 29, 180, 106, 27, 242, 76, 251, 179, 215, 156, 181,\n\t\t29, 175, 135, 167, 86, 25, 174, 229, 114, 158, 113, 28, 150,\n\t\t111, 215, 222, 24, 159, 174, 157, 113, 209, 128, 96, 211,\n\t\t138, 47, 159, 164, 35, 250, 238, 170, 113, 145, 236, 10, 163,\n\t\t223, 174, 125, 161, 3, 56, 26, 177, 141, 4, 154, 178, 34,\n\t\t94, 4, 179, 194, 240, 27, 252, 192, 36, 37, 129, 251, 38,\n\t\t164, 247, 253, 217, 207, 211, 94, 24, 208, 98, 133, 201, 237,\n\t\t176, 232, 172, 24, 61, 171, 179, 66, 58, 246, 122, 64, 197,\n\t\t127, 119, 13, 32, 124, 161, 43, 157, 174, 244, 34, 20, 189,\n\t\t65, 74, 120, 186, 84, 207, 38, 32, 15, 143, 133, 192, 104,\n\t\t118, 237, 102, 237, 119, 244, 178, 117, 163, 219, 101, 148,\n\t\t181, 215, 249, 137, 182, 49, 149, 30, 95, 104, 70, 71, 39,\n\t\t181, 7, 142, 158, 110, 115, 74, 0, 37, 189, 88, 60, 8, 56,\n\t\t74, 115, 118, 83, 171, 20, 45, 218, 57, 78, 130, 124, 216,\n\t\t55, 58, 231, 116, 196, 123, 91, 124, 75, 171, 46, 218, 73,\n\t\t103, 220, 88, 180, 102, 44, 227, 60, 248, 109, 218, 70, 252,\n\t\t41, 130, 69, 135, 189, 175, 60, 95, 64, 248, 94, 195, 152,\n\t\t199, 60, 182, 218, 129, 11, 65, 132, 101, 233, 142, 177, 34,\n\t\t111, 218, 36, 253, 49, 105, 7, 45, 105, 179, 142, 178, 127,\n\t\t70, 103, 104, 247, 112, 41, 140, 246, 220, 83, 107, 63, 125,\n\t\t57, 127, 90, 95, 254, 248, 4, 232, 66, 243, 231, 167, 255,\n\t\t231, 6, 57, 34, 213, 17, 142, 94, 242, 228, 31, 166, 142,\n\t\t61, 196, 240, 255, 1, 16, 254, 52, 131, 101, 59, 185, 244,\n\t\t136, 175, 228, 71, 84, 120, 16, 232, 238, 123, 223, 205, 245,\n\t\t21, 44, 137, 233, 29, 163, 152, 177, 198, 120, 62, 76, 178,\n\t\t107, 198, 44, 234, 71, 154, 93, 109, 105, 245, 182, 205, 174,\n\t\t95, 246, 253, 251, 108, 60, 160, 232, 151, 29, 98, 218, 117,\n\t\t110, 208, 85, 24, 189, 21, 172, 237, 107, 104, 181, 51, 223,\n\t\t164, 239, 55, 172, 160, 47, 8, 235, 5, 248, 11, 71, 207, 32,\n\t\t164, 229, 70, 26, 52, 26, 168, 5, 175, 135, 167, 216, 2, 24,\n\t\t98, 187, 44, 79, 139, 115, 226, 126, 107, 162, 161, 106, 144,\n\t\t42, 212, 196, 32, 56, 74, 85, 206, 179, 37, 183, 116, 6, 216,\n\t\t74, 234, 90, 10, 54, 190, 38, 118, 174, 26, 103, 64, 250,\n\t\t123, 123, 54, 188, 192, 13, 227, 239, 124, 104, 217, 229,\n\t\t161, 56, 63, 35, 24, 188, 170, 77, 167, 205, 213, 165, 56,\n\t\t106, 148, 10, 251, 136, 39, 81, 41, 162, 232, 186, 128, 175,\n\t\t233, 199, 248, 218, 247, 74, 137, 229, 245, 30, 82, 234, 28,\n\t\t227, 128, 247, 127, 151, 191, 165, 208, 201, 178, 4, 161,\n\t\t217, 247, 3, 215, 187, 208, 221, 69, 109, 165, 201, 159, 51,\n\t\t45, 84, 125, 42, 192, 24, 237, 72, 251, 60, 37, 139, 104,\n\t\t95, 55, 23, 240, 254, 192, 114, 17, 29, 6, 161, 235, 31, 120,\n\t\t231, 96, 118, 76, 89, 119, 75, 225, 244, 215, 39, 140, 62,\n\t\t50, 48, 207, 37, 198, 61, 111, 94, 23, 109, 137, 145, 166,\n\t\t232, 23, 28, 238, 178, 224, 156, 141, 116, 198, 226, 188,\n\t\t26, 250, 161, 121, 34, 61, 80, 152, 154, 249, 209, 163, 27,\n\t\t141, 244, 227, 93, 81, 243, 235, 203, 250, 203, 167, 175,\n\t\t230, 247, 207, 95, 254, 186, 53, 91, 12, 94, 49, 38, 226,\n\t\t220, 39, 234, 25, 198, 135, 239, 94, 35, 200, 85, 121, 119,\n\t\t196, 93, 182, 171, 0, 172, 186, 174, 211, 132, 92, 111, 37,\n\t\t206, 155, 62, 187, 246, 129, 24, 90, 151, 15, 143, 92, 62,\n\t\t237, 94, 64, 240, 71, 58, 251, 143, 245, 141, 190, 254, 244,\n\t\t255, 169, 190, 46, 158, 97, 113, 247, 125, 168, 31, 200, 60,\n\t\t233, 162, 168, 124, 104, 220, 30, 12, 91, 241, 103, 161, 161,\n\t\t184, 235, 206, 187, 231, 205, 43, 254, 88, 254, 254, 216,\n\t\t255, 245, 229, 203, 167, 245, 29, 39, 95, 246, 119, 66, 162,\n\t\t3, 224, 23, 125, 245, 208, 217, 171, 202, 154, 145, 156, 235,\n\t\t98, 234, 55, 152, 150, 135, 1, 147, 5, 174, 230, 254, 136,\n\t\t133, 5, 154, 184, 174, 126, 152, 58, 194, 28, 234, 148, 26,\n\t\t17, 199, 66, 157, 67, 90, 70, 134, 9, 92, 77, 166, 23, 98,\n\t\t207, 33, 46, 141, 73, 202, 6, 34, 73, 239, 171, 41, 141, 150,\n\t\t81, 48, 104, 136, 255, 185, 136, 15, 0, 189, 218, 212, 6,\n\t\t156, 193, 163, 145, 210, 12, 115, 82, 245, 115, 206, 147,\n\t\t183, 110, 110, 129, 156, 204, 60, 236, 183, 141, 171, 4, 166,\n\t\t241, 68, 160, 177, 17, 5, 43, 215, 199, 88, 237, 156, 252,\n\t\t226, 43, 41, 150, 44, 112, 198, 104, 125, 18, 181, 110, 196,\n\t\t205, 202, 35, 132, 74, 240, 41, 47, 234, 218, 179, 112, 234,\n\t\t13, 71, 30, 46, 92, 182, 167, 81, 98, 180, 72, 202, 251, 111,\n\t\t23, 127, 235, 165, 251, 199, 229, 31, 195, 167, 47, 29, 122,\n\t\t240, 92, 253, 215, 161, 247, 95, 135, 222, 127, 29, 122, 255,\n\t\t71, 28, 122, 247, 253, 244, 135, 71, 142, 250, 187, 162, 254,\n\t\t183, 151, 63, 254, 250, 250, 252, 251, 141, 144, 143, 255,\n\t\t191, 93, 150, 11, 128, 85, 238, 16, 231, 122, 137, 240, 23,\n\t\t79, 193, 46, 247, 75, 207, 91, 213, 158, 93, 182, 93, 83,\n\t\t63, 59, 95, 241, 147, 169, 87, 240, 156, 244, 31, 189, 24,\n\t\t63, 251, 109, 117, 4, 205, 95, 188, 114, 183, 33, 19, 183,\n\t\t91, 218, 100, 118, 141, 26, 187, 108, 181, 163, 90, 169, 245,\n\t\t178, 82, 163, 181, 154, 93, 181, 135, 171, 183, 238, 94, 218,\n\t\t79, 166, 190, 110, 141, 186, 38, 247, 101, 130, 213, 221,\n\t\t191, 239, 191, 233, 27, 31, 63, 189, 213, 239, 249, 120, 159,\n\t\t112, 248, 222, 67, 135, 191, 245, 212, 183, 61, 228, 60, 181,\n\t\t148, 247, 167, 78, 181, 143, 238, 224, 75, 94, 159, 124, 240,\n\t\t128, 183, 239, 202, 226, 150, 132, 246, 222, 244, 96, 204,\n\t\t219, 251, 211, 67, 160, 215, 90, 86, 38, 138, 247, 94, 68,\n\t\t107, 197, 189, 121, 150, 227, 241, 65, 86, 229, 241, 249,\n\t\t247, 211, 141, 203, 47, 15, 151, 95, 178, 253, 120, 52, 185,\n\t\t216, 53, 154, 197, 205, 49, 215, 46, 104, 84, 178, 120, 229,\n\t\t69, 106, 66, 7, 57, 10, 186, 200, 204, 12, 169, 202, 115,\n\t\t35, 182, 79, 152, 107, 242, 137, 30, 63, 18, 208, 85, 141,\n\t\t173, 243, 110, 174, 46, 166, 213, 56, 235, 231, 92, 33, 102,\n\t\t236, 108, 3, 35, 73, 43, 246, 157, 170, 36, 106, 18, 74, 107,\n\t\t242, 192, 164, 136, 253, 120, 61, 10, 78, 198, 89, 146, 119,\n\t\t57, 98, 106, 243, 6, 55, 201, 223, 165, 150, 54, 177, 14,\n\t\t200, 231, 130, 152, 131, 52, 91, 100, 219, 143, 134, 185,\n\t\t56, 215, 84, 226, 86, 32, 13, 93, 236, 20, 230, 92, 82, 169,\n\t\t147, 155, 93, 115, 200, 253, 12, 45, 37, 55, 186, 64, 123,\n\t\t32, 205, 22, 178, 223, 57, 73, 217, 207, 226, 226, 104, 64,\n\t\t120, 105, 12, 238, 197, 85, 159, 199, 222, 226, 36, 225, 39,\n\t\t87, 167, 104, 249, 223, 41, 246, 241, 197, 181, 137, 246,\n\t\t108, 92, 192, 161, 37, 137, 61, 117, 96, 212, 58, 59, 185,\n\t\t126, 167, 61, 122, 187, 232, 95, 81, 166, 183, 224, 142, 179,\n\t\t43, 96, 39, 121, 80, 73, 249, 206, 74, 208, 200, 251, 117,\n\t\t120, 91, 225, 190, 246, 125, 251, 178, 35, 246, 204, 168,\n\t\t242, 171, 189, 131, 244, 217, 36, 86, 40, 127, 201, 40, 146,\n\t\t35, 255, 127, 26, 148, 13, 0, 13, 101, 17, 44, 50, 188, 52,\n\t\t57, 130, 101, 146, 17, 25, 124, 10, 240, 133, 48, 29, 251,\n\t\t251, 144, 30, 167, 183, 34, 0, 78, 183, 206, 252, 211, 181,\n\t\t123, 254, 193, 226, 251, 215, 63, 159, 215, 155, 213, 151,\n\t\t119, 251, 27, 230, 72, 63, 135, 160, 125, 9, 193, 156, 17,\n\t\t22, 42, 239, 230, 92, 154, 16, 162, 150, 254, 217, 106, 17,\n\t\t145, 76, 237, 213, 52, 160, 249, 122, 132, 29, 162, 164, 68,\n\t\t73, 189, 174, 97, 78, 113, 113, 10, 44, 239, 2, 120, 165,\n\t\t97, 24, 206, 9, 113, 171, 145, 185, 242, 69, 15, 4, 164, 4,\n\t\t237, 75, 167, 118, 165, 113, 242, 164, 1, 88, 35, 131, 94,\n\t\t137, 128, 156, 210, 98, 231, 24, 108, 206, 84, 136, 152, 138,\n\t\t94, 149, 12, 160, 143, 162, 135, 167, 77, 151, 176, 148, 32,\n\t\t133, 147, 234, 152, 101, 32, 107, 63, 145, 109, 145, 173,\n\t\t113, 22, 146, 50, 87, 109, 206, 43, 80, 252, 171, 45, 83,\n\t\t173, 128, 232, 98, 65, 17, 225, 208, 75, 186, 18, 84, 9, 240,\n\t\t16, 197, 187, 215, 136, 141, 111, 228, 37, 211, 224, 174,\n\t\t211, 146, 101, 248, 60, 48, 73, 105, 217, 28, 188, 216, 218,\n\t\t100, 105, 241, 170, 104, 22, 252, 108, 233, 23, 122, 173,\n\t\t251, 87, 3, 153, 77, 178, 195, 237, 32, 145, 84, 14, 91, 59,\n\t\t199, 36, 52, 35, 234, 185, 209, 34, 64, 163, 131, 10, 205,\n\t\t42, 146, 181, 171, 115, 38, 140, 39, 134, 41, 216, 185, 5,\n\t\t91, 48, 152, 165, 165, 9, 99, 185, 13, 118, 31, 235, 132,\n\t\t176, 167, 4, 40, 167, 169, 206, 145, 33, 208, 206, 209, 60,\n\t\t17, 124, 127, 107, 22, 5, 179, 207, 150, 98, 219, 234, 250,\n\t\t178, 77, 74, 238, 234, 196, 174, 103, 251, 137, 23, 9, 26,\n\t\t114, 62, 23, 46, 3, 71, 7, 77, 240, 131, 5, 145, 46, 8, 193,\n\t\t207, 92, 27, 64, 213, 251, 89, 151, 128, 115, 145, 252, 19,\n\t\t206, 246, 206, 110, 139, 151, 24, 229, 42, 214, 125, 71, 130,\n\t\t122, 28, 129, 80, 111, 225, 65, 91, 174, 251, 178, 34, 255,\n\t\t64, 84, 80, 163, 50, 64, 91, 113, 199, 168, 193, 176, 10,\n\t\t105, 128, 212, 191, 184, 200, 115, 129, 122, 19, 130, 100,\n\t\t18, 154, 212, 203, 125, 30, 31, 176, 161, 221, 105, 23, 24,\n\t\t246, 193, 235, 83, 8, 117, 78, 110, 114, 33, 207, 193, 175,\n\t\t91, 138, 3, 208, 54, 202, 97, 141, 116, 241, 78, 158, 16,\n\t\t216, 107, 95, 117, 137, 71, 121, 224, 147, 172, 78, 142, 249,\n\t\t177, 97, 65, 172, 38, 70, 57, 168, 139, 51, 99, 165, 78, 61,\n\t\t37, 71, 31, 29, 48, 189, 200, 5, 160, 37, 250, 136, 62, 161,\n\t\t239, 52, 227, 165, 90, 171, 209, 106, 181, 93, 102, 52, 44,\n\t\t104, 214, 191, 180, 125, 77, 110, 184, 25, 251, 177, 100,\n\t\t237, 199, 75, 222, 145, 194, 92, 218, 26, 60, 123, 39, 122,\n\t\t74, 1, 189, 54, 82, 112, 88, 7, 70, 62, 30, 184, 43, 245,\n\t\t254, 255, 159, 126, 249, 124, 35, 243, 218, 77, 116, 118,\n\t\t140, 131, 139, 178, 127, 35, 144, 12, 250, 41, 111, 193, 1,\n\t\t16, 214, 131, 182, 81, 17, 148, 57, 199, 17, 172, 29, 203,\n\t\t220, 70, 188, 182, 88, 174, 113, 8, 192, 1, 114, 227, 92,\n\t\t192, 228, 1, 113, 43, 78, 224, 161, 45, 68, 202, 45, 83, 28,\n\t\t71, 191, 214, 181, 22, 55, 229, 17, 116, 20, 210, 236, 250,\n\t\t241, 55, 181, 185, 56, 52, 201, 117, 185, 152, 168, 33, 76,\n\t\t242, 115, 25, 184, 231, 189, 14, 224, 2, 70, 116, 85, 0, 179,\n\t\t137, 32, 170, 80, 132, 4, 154, 119, 0, 205, 174, 17, 121,\n\t\t122, 252, 194, 241, 190, 31, 132, 37, 36, 175, 159, 221, 250,\n\t\t182, 216, 7, 253, 24, 203, 236, 29, 102, 42, 242, 130, 228,\n\t\t103, 159, 236, 56, 170, 229, 72, 224, 152, 228, 9, 128, 236,\n\t\t188, 7, 181, 129, 45, 253, 19, 93, 246, 179, 45, 125, 37,\n\t\t226, 64, 171, 35, 46, 193, 16, 136, 106, 199, 31, 144, 241,\n\t\t94, 36, 179, 202, 74, 28, 135, 174, 223, 126, 146, 182, 162,\n\t\t157, 166, 69, 232, 71, 250, 113, 183, 171, 71, 204, 128, 232,\n\t\t98, 69, 19, 54, 186, 104, 171, 72, 229, 200, 98, 154, 232,\n\t\t83, 156, 136, 143, 77, 45, 14, 65, 161, 132, 70, 73, 159,\n\t\t253, 217, 22, 156, 53, 123, 167, 53, 232, 97, 216, 90, 36,\n\t\t78, 19, 49, 232, 93, 194, 133, 185, 132, 182, 140, 64, 5,\n\t\t207, 175, 209, 58, 138, 82, 53, 11, 165, 176, 129, 23, 160,\n\t\t181, 197, 130, 173, 36, 161, 237, 146, 48, 66, 54, 3, 120,\n\t\t130, 4, 61, 51, 13, 21, 40, 64, 66, 211, 38, 28, 37, 62, 146,\n\t\t136, 97, 81, 67, 197, 18, 32, 162, 198, 101, 115, 66, 93,\n\t\t99, 161, 166, 66, 216, 197, 45, 66, 3, 172, 157, 83, 27, 94,\n\t\t215, 174, 185, 250, 213, 207, 105, 202, 9, 223, 190, 26, 95,\n\t\t100, 51, 23, 116, 44, 100, 55, 97, 201, 25, 126, 153, 248,\n\t\t114, 7, 117, 0, 114, 71, 250, 93, 12, 139, 245, 138, 250,\n\t\t22, 100, 59, 202, 35, 79, 4, 219, 109, 82, 218, 228, 213,\n\t\t171, 247, 44, 96, 21, 192, 123, 13, 224, 237, 186, 25, 41,\n\t\t10, 50, 75, 104, 231, 204, 66, 60, 31, 103, 75, 87, 173, 22,\n\t\t20, 26, 19, 192, 43, 45, 54, 149, 174, 221, 247, 221, 183,\n\t\t72, 64, 207, 213, 173, 235, 174, 170, 96, 99, 255, 108, 203,\n\t\t36, 22, 33, 173, 238, 219, 42, 189, 94, 65, 45, 49, 78, 12,\n\t\t36, 80, 85, 82, 155, 220, 240, 16, 225, 198, 197, 139, 39,\n\t\t217, 15, 200, 67, 208, 131, 78, 30, 154, 130, 155, 216, 83,\n\t\t96, 142, 94, 131, 157, 67, 179, 146, 42, 150, 104, 78, 3,\n\t\t16, 142, 175, 125, 209, 44, 22, 6, 194, 212, 191, 149, 54,\n\t\t59, 69, 88, 44, 242, 179, 234, 111, 199, 193, 87, 115, 88,\n\t\t186, 12, 234, 3, 110, 39, 82, 2, 129, 124, 133, 184, 139,\n\t\t69, 5, 109, 193, 184, 161, 62, 100, 87, 160, 194, 128, 6,\n\t\t85, 77, 92, 106, 109, 9, 178, 107, 123, 57, 112, 41, 199,\n\t\t55, 140, 126, 118, 199, 116, 228, 57, 86, 32, 193, 129, 105,\n\t\t39, 12, 31, 63, 71, 192, 201, 170, 54, 141, 134, 37, 118,\n\t\t53, 228, 106, 239, 235, 98, 19, 6, 3, 91, 73, 229, 28, 90,\n\t\t130, 194, 85, 89, 220, 192, 241, 227, 91, 186, 34, 211, 245,\n\t\t173, 81, 176, 27, 252, 45, 11, 202, 11, 170, 148, 209, 241,\n\t\t55, 215, 247, 115, 182, 105, 173, 253, 19, 48, 31, 153, 97,\n\t\t22, 36, 151, 104, 206, 193, 85, 4, 217, 201, 148, 115, 179,\n\t\t139, 32, 25, 234, 131, 90, 99, 220, 10, 226, 236, 124, 36,\n\t\t182, 182, 155, 107, 11, 192, 252, 154, 157, 11, 190, 110,\n\t\t34, 185, 43, 213, 220, 17, 18, 16, 60, 251, 170, 201, 196,\n\t\t193, 242, 122, 75, 81, 245, 218, 43, 67, 44, 148, 22, 155,\n\t\t182, 78, 151, 69, 218, 16, 65, 212, 37, 249, 1, 75, 216, 100,\n\t\t98, 134, 44, 145, 165, 83, 19, 141, 172, 82, 187, 156, 162,\n\t\t32, 41, 53, 65, 122, 106, 121, 78, 75, 149, 62, 139, 194,\n\t\t160, 111, 24, 226, 151, 250, 83, 204, 113, 11, 208, 196, 195,\n\t\t228, 92, 233, 146, 220, 4, 153, 232, 195, 238, 151, 164, 160,\n\t\t170, 142, 158, 228, 99, 28, 125, 217, 203, 160, 74, 138, 178,\n\t\t22, 116, 124, 20, 252, 45, 83, 154, 116, 49, 217, 181, 234,\n\t\t144, 55, 12, 40, 232, 154, 133, 135, 243, 44, 225, 72, 122,\n\t\t77, 57, 44, 120, 140, 180, 191, 170, 212, 9, 164, 129, 130,\n\t\t116, 71, 55, 38, 135, 143, 94, 134, 141, 59, 105, 108, 168,\n\t\t147, 88, 16, 5, 27, 81, 104, 77, 217, 69, 250, 90, 192, 28,\n\t\t138, 178, 151, 84, 73, 196, 43, 98, 66, 117, 129, 110, 56,\n\t\t185, 94, 130, 194, 152, 76, 121, 72, 114, 169, 179, 105, 138,\n\t\t64, 239, 158, 37, 37, 57, 38, 5, 113, 213, 52, 117, 22, 181,\n\t\t66, 53, 0, 123, 40, 244, 13, 63, 123, 234, 203, 158, 226,\n\t\t190, 87, 117, 56, 70, 210, 88, 45, 12, 234, 119, 8, 243, 161,\n\t\t238, 239, 100, 143, 68, 122, 220, 118, 85, 160, 215, 74, 204,\n\t\t57, 211, 8, 54, 162, 166, 132, 181, 5, 133, 65, 210, 168,\n\t\t9, 217, 121, 95, 205, 122, 249, 235, 235, 151, 231, 213, 252,\n\t\t239, 241, 243, 186, 222, 248, 73, 243, 13, 120, 208, 127,\n\t\t129, 179, 126, 20, 112, 86, 232, 19, 115, 10, 54, 204, 224,\n\t\t140, 23, 154, 56, 136, 11, 156, 80, 246, 8, 211, 186, 180,\n\t\t37, 234, 52, 80, 85, 90, 32, 201, 147, 135, 136, 181, 48,\n\t\t209, 251, 196, 100, 96, 44, 87, 219, 229, 5, 168, 208, 28,\n\t\t35, 182, 214, 80, 36, 215, 51, 120, 164, 207, 28, 22, 117,\n\t\t246, 24, 221, 231, 2, 193, 136, 77, 161, 214, 97, 135, 203,\n\t\t160, 180, 208, 183, 213, 68, 78, 45, 61, 55, 7, 237, 100,\n\t\t13, 84, 203, 130, 33, 168, 37, 200, 84, 116, 37, 149, 234,\n\t\t192, 0, 151, 18, 214, 22, 34, 26, 107, 105, 147, 157, 107,\n\t\t205, 197, 65, 113, 242, 2, 60, 139, 174, 88, 187, 186, 148,\n\t\t26, 189, 12, 25, 193, 24, 14, 166, 141, 216, 68, 155, 75,\n\t\t194, 95, 87, 179, 196, 213, 217, 58, 119, 97, 44, 215, 167,\n\t\t38, 34, 48, 116, 161, 204, 191, 150, 9, 127, 236, 103, 79,\n\t\t188, 158, 135, 57, 121, 127, 255, 58, 175, 202, 130, 128,\n\t\t12, 97, 163, 199, 50, 147, 241, 73, 155, 66, 129, 18, 126,\n\t\t95, 204, 177, 198, 197, 120, 126, 25, 213, 70, 55, 123, 31,\n\t\t50, 60, 69, 214, 198, 90, 39, 233, 145, 94, 143, 109, 57,\n\t\t247, 253, 200, 51, 137, 169, 191, 43, 135, 174, 173, 100,\n\t\t155, 99, 218, 10, 186, 90, 151, 251, 148, 246, 179, 229, 209,\n\t\t119, 246, 62, 165, 54, 245, 74, 10, 118, 248, 18, 250, 141,\n\t\t189, 219, 253, 54, 192, 99, 124, 45, 65, 167, 125, 31, 73,\n\t\t24, 225, 220, 54, 45, 110, 39, 138, 204, 19, 228, 217, 139,\n\t\t204, 241, 34, 103, 189, 168, 56, 99, 22, 6, 46, 132, 149,\n\t\t216, 153, 18, 21, 225, 145, 215, 239, 134, 57, 68, 221, 211,\n\t\t65, 213, 74, 175, 73, 84, 73, 109, 192, 82, 114, 50, 81, 106,\n\t\t178, 220, 210, 194, 118, 143, 220, 210, 165, 71, 87, 235,\n\t\t187, 62, 229, 20, 26, 158, 5, 85, 130, 157, 209, 112, 134,\n\t\t54, 123, 137, 63, 243, 138, 166, 233, 236, 164, 96, 237, 176,\n\t\t134, 5, 178, 46, 138, 70, 158, 9, 198, 29, 27, 191, 1, 188,\n\t\t146, 145, 60, 99, 26, 97, 56, 140, 208, 146, 207, 171, 2,\n\t\t15, 107, 200, 13, 7, 35, 130, 133, 184, 168, 130, 108, 221,\n\t\t176, 247, 100, 57, 128, 99, 31, 27, 199, 133, 190, 222, 251,\n\t\t234, 118, 73, 238, 16, 211, 208, 86, 16, 72, 37, 37, 1, 40,\n\t\t141, 145, 106, 228, 19, 139, 77, 1, 171, 228, 48, 215, 69,\n\t\t89, 223, 23, 112, 212, 102, 172, 110, 160, 185, 116, 117,\n\t\t94, 44, 129, 180, 9, 244, 93, 71, 142, 55, 118, 142, 10, 95,\n\t\t16, 121, 84, 176, 212, 224, 194, 196, 108, 54, 189, 92, 144,\n\t\t213, 28, 137, 25, 42, 11, 194, 18, 66, 181, 43, 5, 93, 185,\n\t\t164, 194, 185, 184, 225, 142, 236, 114, 163, 239, 201, 80,\n\t\t74, 148, 218, 76, 171, 142, 116, 110, 175, 56, 116, 195, 185,\n\t\t29, 153, 76, 224, 10, 19, 238, 135, 143, 219, 137, 30, 64,\n\t\t205, 219, 247, 87, 129, 31, 114, 120, 64, 245, 154, 4, 153,\n\t\t204, 115, 174, 186, 118, 57, 28, 234, 232, 54, 87, 247, 34,\n\t\t85, 67, 171, 243, 182, 172, 251, 214, 88, 0, 122, 7, 75, 248,\n\t\t237, 57, 121, 23, 241, 1, 156, 216, 110, 142, 33, 39, 63,\n\t\t174, 253, 108, 17, 69, 223, 15, 11, 77, 140, 119, 219, 223,\n\t\t168, 223, 51, 211, 208, 207, 205, 22, 79, 58, 192, 28, 19,\n\t\t69, 120, 130, 88, 0, 165, 167, 175, 128, 147, 96, 212, 186,\n\t\t151, 148, 109, 41, 192, 51, 197, 215, 68, 220, 93, 113, 49,\n\t\t192, 130, 104, 75, 117, 8, 132, 11, 213, 163, 40, 151, 62,\n\t\t34, 235, 102, 199, 108, 74, 84, 16, 7, 118, 171, 71, 144,\n\t\t253, 102, 241, 240, 154, 251, 232, 228, 16, 180, 145, 245,\n\t\t233, 175, 39, 19, 134, 167, 89, 231, 17, 14, 44, 170, 158,\n\t\t143, 195, 60, 248, 224, 144, 104, 128, 116, 47, 33, 181, 132,\n\t\t229, 51, 225, 44, 48, 40, 57, 131, 204, 18, 18, 4, 244, 137,\n\t\t135, 222, 195, 145, 117, 25, 7, 184, 222, 125, 60, 38, 232,\n\t\t172, 234, 82, 26, 193, 121, 102, 76, 105, 218, 191, 198, 64,\n\t\t26, 157, 87, 99, 164, 205, 112, 165, 235, 204, 50, 60, 67,\n\t\t197, 186, 205, 143, 161, 108, 110, 37, 50, 101, 78, 110, 44,\n\t\t241, 17, 61, 113, 121, 199, 122, 93, 211, 97, 155, 229, 218,\n\t\t156, 197, 140, 153, 101, 198, 212, 26, 243, 197, 232, 228,\n\t\t218, 74, 182, 233, 101, 198, 252, 218, 253, 145, 243, 107,\n\t\t36, 178, 246, 249, 181, 108, 124, 174, 150, 39, 121, 55, 73,\n\t\t24, 192, 112, 198, 237, 174, 150, 33, 124, 251, 250, 145,\n\t\t112, 4, 85, 255, 33, 12, 164, 139, 87, 197, 145, 144, 3, 207,\n\t\t186, 141, 79, 232, 135, 202, 3, 176, 245, 2, 195, 126, 5,\n\t\t4, 5, 66, 138, 89, 6, 140, 96, 209, 130, 46, 180, 186, 208,\n\t\t133, 105, 25, 113, 163, 118, 75, 11, 105, 109, 136, 66, 149,\n\t\t132, 195, 205, 226, 220, 92, 66, 219, 201, 87, 223, 148, 33,\n\t\t94, 10, 84, 222, 90, 102, 230, 130, 3, 145, 51, 211, 7, 81,\n\t\t228, 100, 107, 10, 20, 78, 203, 118, 192, 133, 157, 19, 152,\n\t\t184, 148, 173, 190, 10, 189, 94, 212, 18, 217, 45, 198, 94,\n\t\t99, 228, 151, 174, 87, 109, 59, 148, 103, 84, 205, 134, 255,\n\t\t33, 91, 149, 145, 189, 234, 167, 109, 152, 255, 14, 240, 209,\n\t\t127, 62, 63, 255, 227, 214, 53, 124, 195, 16, 183, 193, 104,\n\t\t164, 212, 15, 219, 83, 200, 253, 88, 189, 56, 77, 55, 138,\n\t\t50, 125, 60, 242, 147, 17, 244, 37, 206, 2, 45, 8, 4, 17,\n\t\t57, 43, 217, 239, 106, 124, 78, 83, 105, 176, 45, 210, 33,\n\t\t146, 128, 179, 153, 8, 245, 2, 6, 76, 152, 215, 196, 148,\n\t\t106, 241, 196, 12, 19, 31, 159, 58, 203, 171, 16, 95, 173,\n\t\t94, 45, 192, 112, 184, 56, 181, 153, 189, 234, 243, 28, 130,\n\t\t31, 237, 144, 102, 172, 62, 116, 253, 211, 77, 165, 138, 205,\n\t\t174, 75, 182, 130, 152, 28, 218, 84, 64, 186, 9, 85, 173,\n\t\t249, 92, 16, 24, 31, 82, 76, 122, 125, 242, 126, 118, 173,\n\t\t50, 108, 89, 83, 11, 67, 18, 103, 84, 191, 227, 245, 201,\n\t\t151, 56, 123, 63, 133, 16, 230, 86, 150, 214, 95, 237, 109,\n\t\t153, 156, 216, 168, 229, 210, 23, 129, 111, 93, 113, 255,\n\t\t100, 42, 167, 250, 217, 248, 62, 101, 17, 125, 227, 24, 239,\n\t\t46, 179, 84, 115, 172, 189, 244, 89, 63, 81, 244, 69, 190,\n\t\t26, 31, 253, 44, 160, 57, 125, 46, 192, 229, 150, 75, 133,\n\t\t217, 116, 246, 217, 51, 83, 212, 50, 241, 100, 246, 180, 89,\n\t\t119, 181, 202, 39, 63, 74, 78, 8, 156, 143, 25, 178, 221,\n\t\t167, 176, 187, 69, 238, 24, 21, 73, 61, 88, 210, 240, 221,\n\t\t12, 206, 110, 109, 155, 203, 66, 187, 170, 5, 210, 214, 51,\n\t\t62, 174, 10, 92, 161, 43, 115, 109, 103, 151, 55, 108, 89,\n\t\t217, 36, 146, 156, 71, 154, 226, 202, 43, 4, 77, 225, 94,\n\t\t111, 170, 101, 96, 129, 23, 108, 157, 72, 189, 111, 219, 191,\n\t\t147, 16, 108, 155, 1, 77, 63, 74, 10, 135, 250, 108, 182,\n\t\t138, 199, 1, 65, 43, 30, 193, 114, 3, 2, 73, 106, 174, 118,\n\t\t146, 122, 23, 173, 117, 84, 170, 53, 104, 149, 122, 45, 21,\n\t\t146, 45, 202, 167, 50, 187, 242, 173, 31, 13, 99, 25, 92,\n\t\t221, 62, 195, 45, 247, 163, 190, 186, 138, 89, 102, 124, 53,\n\t\t61, 159, 87, 95, 221, 224, 69, 115, 213, 150, 187, 95, 13,\n\t\t19, 206, 205, 87, 199, 88, 39, 31, 226, 28, 203, 168, 252,\n\t\t12, 36, 156, 8, 133, 137, 70, 196, 0, 156, 25, 63, 231, 80,\n\t\t51, 14, 164, 213, 23, 183, 189, 28, 205, 143, 53, 30, 214,\n\t\t221, 200, 47, 73, 18, 152, 135, 153, 91, 219, 237, 55, 243,\n\t\t210, 110, 218, 236, 58, 125, 48, 24, 120, 1, 199, 207, 234,\n\t\t21, 186, 106, 62, 166, 154, 214, 103, 180, 66, 173, 111, 12,\n\t\t145, 241, 35, 213, 235, 178, 235, 94, 159, 66, 111, 79, 9,\n\t\t115, 137, 87, 159, 47, 84, 8, 246, 34, 230, 102, 251, 252,\n\t\t236, 202, 229, 231, 135, 90, 14, 171, 78, 129, 62, 20, 127,\n\t\t231, 243, 75, 147, 207, 215, 141, 106, 124, 190, 198, 62,\n\t\t142, 207, 199, 66, 147, 145, 47, 173, 124, 243, 215, 99, 244,\n\t\t239, 238, 66, 199, 231, 47, 191, 220, 110, 67, 91, 74, 133,\n\t\t75, 115, 117, 83, 168, 126, 41, 146, 116, 105, 37, 29, 166,\n\t\t235, 16, 112, 242, 133, 185, 38, 48, 215, 242, 24, 102, 11,\n\t\t248, 252, 11, 181, 169, 10, 253, 8, 142, 95, 162, 235, 37,\n\t\t229, 34, 19, 163, 94, 73, 16, 194, 244, 172, 194, 217, 149,\n\t\t117, 119, 143, 26, 217, 160, 108, 9, 164, 224, 135, 59, 12,\n\t\t78, 23, 228, 183, 34, 8, 34, 80, 71, 67, 176, 55, 20, 153,\n\t\t232, 197, 165, 43, 97, 225, 222, 66, 215, 93, 163, 242, 36,\n\t\t119, 109, 171, 52, 156, 144, 232, 91, 24, 198, 196, 32, 111,\n\t\t119, 162, 77, 37, 249, 41, 215, 27, 178, 176, 82, 13, 12,\n\t\t168, 92, 45, 16, 120, 139, 141, 16, 129, 114, 56, 210, 147,\n\t\t165, 183, 64, 181, 39, 124, 184, 209, 112, 147, 33, 120, 60,\n\t\t15, 199, 154, 55, 179, 2, 25, 203, 209, 53, 29, 171, 77, 231,\n\t\t190, 85, 187, 100, 227, 210, 196, 199, 99, 146, 50, 115, 37,\n\t\t109, 151, 176, 192, 143, 2, 95, 132, 5, 255, 26, 124, 131,\n\t\t6, 111, 143, 253, 140, 231, 122, 112, 54, 20, 234, 130, 150,\n\t\t229, 93, 21, 216, 226, 113, 164, 128, 228, 12, 142, 116, 42,\n\t\t89, 156, 33, 222, 49, 70, 86, 43, 150, 122, 145, 157, 223,\n\t\t143, 23, 253, 99, 36, 101, 177, 18, 153, 188, 159, 73, 196,\n\t\t161, 233, 24, 87, 1, 45, 146, 89, 168, 154, 58, 164, 125,\n\t\t162, 37, 123, 206, 8, 233, 87, 205, 13, 144, 75, 143, 72,\n\t\t172, 183, 80, 143, 199, 13, 139, 19, 79, 128, 221, 168, 250,\n\t\t105, 215, 138, 117, 12, 189, 145, 177, 31, 211, 71, 102, 143,\n\t\t78, 175, 62, 187, 130, 117, 219, 244, 51, 125, 254, 193, 161,\n\t\t150, 55, 199, 160, 26, 201, 162, 98, 184, 169, 135, 81, 167,\n\t\t113, 80, 129, 7, 228, 237, 222, 161, 137, 180, 249, 10, 198,\n\t\t222, 251, 95, 194, 146, 104, 97, 235, 155, 58, 89, 123, 131,\n\t\t157, 99, 238, 106, 123, 223, 235, 15, 140, 236, 235, 131,\n\t\t215, 120, 240, 232, 231, 102, 154, 249, 107, 158, 67, 115,\n\t\t83, 117, 130, 113, 208, 191, 32, 46, 89, 142, 130, 97, 134,\n\t\t73, 5, 158, 23, 47, 231, 68, 175, 158, 24, 15, 127, 197, 18,\n\t\t105, 255, 234, 51, 78, 125, 157, 145, 230, 90, 231, 37, 72,\n\t\t3, 107, 90, 236, 45, 21, 73, 203, 89, 50, 122, 186, 40, 203,\n\t\t162, 150, 136, 5, 59, 107, 14, 160, 150, 212, 2, 131, 202,\n\t\t98, 25, 58, 20, 33, 53, 136, 104, 144, 53, 141, 204, 250,\n\t\t57, 251, 169, 56, 129, 75, 115, 193, 207, 174, 30, 214, 162,\n\t\t145, 38, 137, 147, 229, 140, 244, 232, 22, 17, 219, 1, 203,\n\t\t92, 200, 144, 161, 203, 56, 136, 71, 13, 132, 130, 244, 86,\n\t\t248, 35, 218, 105, 93, 130, 33, 102, 45, 146, 20, 40, 201,\n\t\t128, 139, 9, 93, 234, 217, 204, 200, 66, 212, 39, 38, 166,\n\t\t148, 68, 237, 210, 130, 70, 18, 241, 197, 78, 209, 206, 5,\n\t\t104, 153, 232, 205, 146, 25, 95, 153, 34, 91, 220, 200, 189,\n\t\t191, 118, 149, 0, 122, 176, 163, 135, 6, 64, 155, 60, 52,\n\t\t39, 9, 61, 183, 0, 91, 2, 156, 39, 57, 226, 131, 70, 67, 228,\n\t\t217, 198, 53, 85, 78, 238, 228, 17, 165, 143, 107, 132, 237,\n\t\t39, 70, 243, 44, 212, 238, 229, 179, 211, 46, 242, 157, 1,\n\t\t76, 227, 80, 133, 183, 141, 246, 192, 169, 18, 90, 90, 130,\n\t\t167, 103, 12, 9, 249, 176, 40, 71, 237, 244, 200, 241, 31,\n\t\t5, 248, 168, 229, 130, 133, 60, 72, 23, 151, 162, 168, 125,\n\t\t106, 156, 147, 158, 58, 140, 222, 54, 218, 221, 94, 141, 4,\n\t\t73, 126, 113, 91, 92, 156, 200, 115, 29, 49, 163, 67, 54,\n\t\t6, 220, 200, 136, 159, 145, 109, 209, 119, 137, 66, 91, 54,\n\t\t0, 78, 99, 203, 75, 140, 12, 251, 192, 169, 160, 200, 27,\n\t\t75, 227, 68, 45, 78, 128, 26, 67, 223, 169, 251, 206, 237,\n\t\t100, 57, 84, 113, 241, 103, 177, 28, 200, 244, 237, 179, 215,\n\t\t89, 79, 203, 75, 240, 48, 11, 225, 128, 131, 224, 66, 68,\n\t\t241, 168, 145, 84, 11, 234, 156, 130, 247, 129, 174, 252,\n\t\t36, 39, 128, 150, 29, 232, 31, 105, 204, 136, 226, 201, 117,\n\t\t118, 110, 181, 134, 177, 8, 73, 175, 141, 64, 24, 102, 57,\n\t\t109, 216, 6, 56, 116, 51, 152, 51, 188, 62, 133, 190, 18,\n\t\t16, 73, 189, 64, 157, 10, 18, 126, 37, 217, 58, 86, 249, 162,\n\t\t50, 101, 81, 114, 18, 158, 80, 212, 134, 229, 138, 40, 33,\n\t\t85, 200, 121, 196, 176, 205, 203, 132, 144, 17, 203, 13, 61,\n\t\t245, 89, 55, 44, 181, 94, 2, 112, 92, 145, 104, 92, 199, 84,\n\t\t49, 153, 187, 210, 223, 122, 13, 216, 209, 214, 94, 159, 92,\n\t\t115, 115, 109, 210, 224, 174, 64, 208, 23, 239, 36, 242, 3,\n\t\t176, 97, 253, 33, 128, 200, 36, 73, 64, 73, 66, 176, 232,\n\t\t152, 167, 191, 84, 210, 5, 209, 237, 143, 11, 109, 104, 111,\n\t\t103, 182, 187, 15, 28, 223, 215, 231, 125, 149, 100, 12, 198,\n\t\t197, 9, 133, 23, 165, 108, 64, 160, 146, 150, 244, 126, 74,\n\t\t237, 254, 89, 127, 125, 254, 242, 203, 239, 207, 95, 255,\n\t\t121, 163, 103, 253, 186, 69, 130, 187, 46, 206, 66, 74, 115,\n\t\t5, 251, 164, 38, 38, 113, 71, 130, 209, 168, 239, 151, 85,\n\t\t36, 238, 40, 112, 17, 27, 54, 200, 175, 186, 126, 176, 60,\n\t\t76, 128, 143, 245, 65, 58, 250, 121, 123, 85, 22, 55, 65,\n\t\t148, 177, 116, 158, 99, 164, 213, 75, 237, 107, 63, 91, 132,\n\t\t214, 247, 26, 11, 202, 144, 62, 23, 177, 29, 207, 14, 210,\n\t\t177, 206, 182, 207, 111, 152, 121, 45, 211, 183, 124, 0, 114,\n\t\t38, 174, 79, 117, 246, 240, 198, 116, 201, 6, 119, 220, 184,\n\t\t195, 200, 45, 175, 79, 57, 78, 62, 33, 25, 1, 41, 27, 200,\n\t\t141, 178, 239, 93, 62, 164, 86, 64, 226, 233, 53, 165, 205,\n\t\t27, 8, 0, 231, 145, 43, 247, 8, 11, 32, 124, 132, 61, 247,\n\t\t3, 157, 127, 151, 172, 49, 86, 123, 119, 166, 253, 254, 252,\n\t\t121, 53, 255, 248, 107, 189, 153, 106, 229, 6, 220, 109, 179,\n\t\t44, 185, 108, 167, 61, 91, 137, 82, 209, 107, 122, 34, 249,\n\t\t13, 115, 156, 162, 128, 226, 86, 113, 62, 103, 65, 233, 105,\n\t\t121, 42, 164, 161, 67, 244, 252, 252, 1, 116, 55, 16, 183,\n\t\t220, 5, 110, 227, 139, 134, 109, 173, 105, 160, 13, 85, 7,\n\t\t248, 188, 177, 141, 176, 226, 253, 141, 116, 202, 132, 42,\n\t\t62, 158, 224, 17, 179, 78, 160, 145, 58, 185, 70, 81, 116,\n\t\t7, 210, 77, 188, 226, 27, 205, 137, 150, 108, 44, 46, 91,\n\t\t137, 235, 27, 14, 156, 167, 8, 226, 184, 117, 232, 123, 205,\n\t\t49, 217, 104, 82, 226, 101, 201, 169, 107, 107, 204, 63, 209,\n\t\t183, 234, 45, 210, 130, 197, 52, 249, 190, 172, 89, 40, 85,\n\t\t80, 92, 70, 1, 27, 82, 51, 7, 130, 121, 62, 239, 2, 223, 249,\n\t\t148, 95, 159, 82, 140, 147, 175, 143, 232, 54, 137, 107, 248,\n\t\t96, 60, 93, 147, 17, 91, 141, 134, 123, 246, 213, 236, 97,\n\t\t161, 91, 54, 107, 174, 118, 65, 176, 115, 154, 82, 145, 32,\n\t\t224, 140, 179, 165, 92, 2, 35, 144, 231, 138, 247, 90, 31,\n\t\t188, 125, 125, 74, 14, 88, 182, 176, 209, 246, 117, 207, 116,\n\t\t28, 204, 102, 159, 242, 225, 172, 112, 131, 108, 255, 189,\n\t\t119, 61, 70, 248, 67, 38, 59, 70, 9, 179, 181, 207, 167, 62,\n\t\t172, 142, 191, 62, 200, 2, 250, 253, 211, 151, 151, 175, 207,\n\t\t55, 220, 124, 37, 191, 159, 78, 13, 122, 48, 255, 72, 228,\n\t\t184, 200, 79, 39, 59, 221, 187, 66, 3, 51, 63, 218, 31, 251,\n\t\t194, 24, 252, 143, 125, 97, 242, 117, 66, 204, 200, 15, 123,\n\t\t99, 182, 32, 136, 189, 47, 103, 78, 20, 15, 248, 127, 255,\n\t\t29, 78, 10, 29, 253, 28, 223, 76, 77, 225, 220, 251, 41, 175,\n\t\t62, 8, 237, 197, 207, 120, 247, 224, 142, 250, 25, 175, 246,\n\t\t62, 126, 247, 171, 15, 239, 188, 219, 249, 159, 54, 144, 225,\n\t\t39, 141, 163, 80, 116, 100, 251, 120, 162, 126, 96, 198, 195,\n\t\t82, 44, 105, 89, 35, 17, 203, 72, 172, 21, 228, 19, 248, 182,\n\t\t114, 60, 186, 242, 72, 243, 249, 16, 35, 247, 45, 115, 192,\n\t\t55, 169, 41, 174, 100, 136, 101, 128, 153, 108, 249, 100,\n\t\t134, 134, 185, 209, 250, 150, 15, 143, 187, 231, 99, 189,\n\t\t115, 45, 222, 205, 230, 139, 195, 214, 84, 238, 34, 61, 61,\n\t\t174, 165, 16, 82, 229, 125, 0, 180, 251, 59, 192, 203, 233,\n\t\t127, 254, 186, 161, 24, 44, 245, 253, 13, 0, 243, 240, 28,\n\t\t188, 61, 10, 199, 155, 125, 188, 7, 63, 66, 204, 237, 115,\n\t\t178, 31, 106, 39, 38, 100, 167, 58, 139, 149, 15, 158, 244,\n\t\t126, 58, 163, 25, 70, 146, 179, 130, 28, 215, 70, 65, 170,\n\t\t122, 46, 72, 158, 207, 16, 138, 168, 133, 254, 255, 90, 120,\n\t\t246, 119, 30, 33, 113, 75, 63, 162, 33, 151, 38, 247, 211,\n\t\t94, 21, 139, 95, 42, 12, 62, 115, 4, 26, 107, 153, 25, 106,\n\t\t171, 70, 151, 18, 105, 32, 140, 107, 35, 5, 11, 104, 235,\n\t\t240, 41, 149, 233, 6, 197, 202, 122, 200, 141, 152, 12, 68,\n\t\t46, 147, 55, 46, 113, 80, 51, 55, 134, 118, 105, 251, 186,\n\t\t198, 104, 119, 151, 218, 94, 90, 97, 105, 155, 118, 131, 241,\n\t\t194, 9, 165, 131, 246, 129, 145, 78, 224, 238, 242, 40, 177,\n\t\t113, 100, 200, 223, 27, 184, 3, 242, 208, 47, 112, 138, 63,\n\t\t8, 166, 135, 21, 111, 148, 220, 77, 48, 117, 138, 151, 31,\n\t\t194, 49, 78, 90, 62, 67, 100, 25, 220, 253, 247, 171, 10,\n\t\t15, 36, 165, 228, 201, 191, 171, 107, 129, 139, 27, 7, 9,\n\t\t68, 174, 91, 81, 204, 37, 167, 148, 26, 91, 159, 239, 144,\n\t\t46, 57, 142, 236, 211, 233, 1, 194, 242, 203, 13, 140, 65,\n\t\t105, 122, 180, 14, 217, 206, 121, 10, 181, 204, 150, 65, 119,\n\t\t176, 119, 120, 70, 209, 192, 240, 92, 107, 172, 83, 255, 137,\n\t\t160, 145, 32, 25, 197, 113, 110, 45, 244, 245, 175, 5, 146,\n\t\t241, 117, 114, 226, 41, 75, 51, 209, 61, 174, 254, 190, 234,\n\t\t44, 210, 42, 226, 8, 164, 102, 50, 162, 179, 180, 225, 142,\n\t\t107, 70, 113, 76, 118, 213, 198, 25, 125, 212, 13, 2, 107,\n\t\t105, 93, 144, 60, 0, 163, 173, 27, 5, 82, 123, 223, 66, 165,\n\t\t125, 70, 27, 104, 174, 111, 98, 55, 192, 132, 119, 209, 15,\n\t\t69, 106, 170, 177, 110, 53, 140, 239, 215, 167, 71, 9, 12,\n\t\t147, 149, 217, 95, 90, 215, 168, 188, 136, 91, 66, 238, 237,\n\t\t106, 141, 159, 29, 184, 156, 150, 148, 212, 241, 49, 114,\n\t\t114, 244, 188, 51, 10, 250, 47, 165, 181, 51, 8, 60, 73, 127,\n\t\t27, 171, 210, 227, 23, 77, 180, 173, 88, 240, 148, 3, 181,\n\t\t30, 22, 92, 121, 43, 155, 13, 127, 229, 228, 210, 223, 207,\n\t\t161, 16, 103, 207, 14, 16, 160, 166, 192, 164, 130, 85, 164,\n\t\t33, 95, 226, 147, 93, 224, 148, 135, 75, 162, 210, 55, 49,\n\t\t240, 50, 163, 231, 19, 85, 179, 25, 165, 128, 4, 250, 200,\n\t\t73, 9, 18, 191, 53, 144, 62, 228, 218, 199, 243, 248, 50,\n\t\t215, 186, 0, 5, 82, 11, 210, 62, 147, 70, 110, 200, 47, 242,\n\t\t179, 127, 158, 156, 130, 153, 67, 75, 20, 79, 77, 76, 64,\n\t\t224, 16, 141, 66, 118, 78, 43, 210, 91, 105, 167, 243, 125,\n\t\t124, 153, 39, 204, 220, 91, 0, 38, 197, 160, 249, 145, 140,\n\t\t207, 47, 150, 72, 211, 188, 62, 194, 39, 85, 27, 64, 251,\n\t\t200, 206, 228, 234, 76, 36, 29, 133, 250, 137, 98, 60, 28,\n\t\t5, 4, 128, 47, 82, 108, 82, 25, 192, 196, 240, 20, 86, 196,\n\t\t144, 128, 160, 20, 204, 159, 224, 226, 7, 66, 191, 13, 56,\n\t\t204, 187, 212, 230, 190, 21, 37, 59, 87, 199, 32, 92, 130,\n\t\t247, 213, 185, 90, 201, 100, 165, 43, 199, 203, 54, 210, 167,\n\t\t205, 148, 40, 242, 7, 110, 20, 72, 16, 108, 153, 98, 147,\n\t\t61, 160, 121, 65, 23, 140, 105, 118, 105, 92, 47, 65, 112,\n\t\t102, 186, 176, 145, 97, 169, 204, 201, 208, 235, 174, 222,\n\t\t241, 164, 199, 131, 158, 150, 30, 77, 144, 44, 15, 147, 196,\n\t\t94, 190, 165, 29, 59, 233, 201, 160, 217, 45, 142, 80, 123,\n\t\t19, 227, 79, 86, 90, 24, 153, 43, 220, 203, 201, 177, 155,\n\t\t36, 216, 1, 245, 123, 153, 147, 62, 48, 105, 191, 139, 82,\n\t\t100, 42, 241, 250, 24, 28, 198, 98, 193, 238, 218, 128, 46,\n\t\t37, 92, 228, 94, 114, 156, 244, 58, 214, 19, 86, 185, 50,\n\t\t207, 106, 233, 2, 15, 91, 154, 54, 103, 62, 194, 16, 153,\n\t\t75, 29, 172, 146, 84, 217, 185, 0, 192, 86, 34, 240, 226,\n\t\t200, 44, 12, 146, 178, 25, 119, 168, 166, 52, 68, 88, 122,\n\t\t22, 220, 10, 103, 79, 95, 48, 194, 182, 6, 140, 21, 70, 207,\n\t\t101, 141, 210, 175, 10, 107, 80, 20, 80, 74, 118, 126, 31,\n\t\t97, 226, 93, 124, 18, 158, 173, 64, 15, 66, 106, 212, 61,\n\t\t2, 64, 39, 90, 222, 198, 173, 218, 176, 196, 32, 238, 37,\n\t\t77, 129, 42, 77, 215, 42, 189, 122, 200, 189, 240, 146, 165,\n\t\t239, 250, 252, 206, 115, 12, 140, 90, 44, 2, 203, 165, 189,\n\t\t144, 130, 96, 1, 21, 93, 98, 37, 193, 41, 121, 140, 68, 112,\n\t\t90, 182, 245, 168, 203, 81, 87, 163, 46, 198, 190, 22, 15,\n\t\t43, 215, 34, 151, 162, 174, 68, 93, 136, 186, 14, 185, 12,\n\t\t117, 21, 122, 98, 50, 196, 20, 145, 149, 94, 237, 92, 194,\n\t\t226, 16, 180, 152, 71, 94, 155, 79, 156, 45, 118, 142, 21,\n\t\t9, 150, 90, 160, 156, 72, 103, 100, 35, 59, 230, 190, 120,\n\t\t141, 52, 132, 163, 7, 180, 87, 81, 82, 13, 141, 211, 113,\n\t\t21, 136, 162, 93, 254, 99, 102, 120, 44, 167, 9, 247, 122,\n\t\t113, 12, 27, 103, 25, 19, 41, 5, 135, 197, 148, 202, 37, 143,\n\t\t40, 189, 50, 187, 6, 72, 78, 1, 187, 173, 115, 215, 75, 36,\n\t\t92, 80, 3, 32, 6, 123, 161, 87, 20, 242, 40, 82, 79, 179,\n\t\t226, 27, 67, 157, 250, 22, 211, 188, 71, 28, 24, 196, 181,\n\t\t160, 168, 37, 129, 177, 244, 2, 88, 66, 36, 43, 155, 6, 64,\n\t\t151, 241, 242, 100, 215, 1, 176, 129, 228, 68, 175, 169, 43,\n\t\t126, 78, 200, 89, 78, 182, 212, 7, 92, 134, 127, 60, 159,\n\t\t254, 124, 254, 245, 249, 235, 231, 231, 47, 159, 79, 183,\n\t\t10, 199, 77, 232, 222, 142, 147, 216, 199, 190, 254, 186,\n\t\t188, 15, 97, 113, 195, 12, 40, 1, 111, 174, 170, 149, 177,\n\t\t138, 60, 13, 178, 9, 10, 243, 218, 130, 220, 8, 162, 153,\n\t\t41, 230, 181, 222, 139, 125, 192, 75, 156, 159, 172, 160,\n\t\t64, 114, 19, 83, 53, 5, 90, 22, 29, 149, 58, 36, 105, 11,\n\t\t198, 121, 112, 99, 112, 224, 46, 130, 75, 29, 65, 213, 166,\n\t\t49, 185, 1, 239, 229, 176, 123, 171, 206, 150, 129, 23, 205,\n\t\t146, 62, 238, 50, 8, 22, 149, 208, 73, 160, 81, 85, 94, 242,\n\t\t132, 35, 99, 208, 65, 234, 130, 249, 211, 63, 6, 222, 148,\n\t\t208, 232, 161, 140, 170, 228, 199, 196, 95, 50, 239, 88, 6,\n\t\t13, 95, 165, 147, 206, 4, 65, 22, 112, 81, 252, 202, 73, 240,\n\t\t222, 100, 117, 193, 139, 35, 240, 206, 65, 243, 241, 51, 160,\n\t\t29, 176, 81, 114, 47, 204, 78, 238, 9, 17, 98, 163, 47, 48,\n\t\t146, 107, 132, 2, 32, 7, 128, 122, 55, 203, 237, 45, 91, 193,\n\t\t200, 145, 130, 195, 13, 201, 116, 18, 186, 228, 211, 0, 41,\n\t\t140, 250, 111, 49, 153, 32, 250, 80, 77, 10, 93, 147, 85,\n\t\t199, 14, 52, 149, 30, 132, 47, 142, 128, 16, 154, 98, 208,\n\t\t155, 110, 25, 250, 194, 62, 119, 26, 100, 238, 117, 155, 149,\n\t\t146, 147, 209, 121, 99, 33, 173, 37, 124, 144, 51, 138, 183,\n\t\t0, 0, 81, 66, 112, 197, 219, 11, 185, 88, 184, 73, 11, 220,\n\t\t47, 219, 98, 180, 49, 91, 144, 69, 156, 182, 207, 242, 241,\n\t\t112, 26, 159, 140, 255, 22, 4, 251, 0, 180, 48, 9, 228, 181,\n\t\t68, 41, 162, 231, 250, 182, 221, 172, 68, 45, 250, 200, 84,\n\t\t198, 42, 137, 190, 64, 155, 67, 38, 176, 38, 109, 101, 241,\n\t\t189, 133, 40, 100, 20, 3, 52, 33, 110, 106, 168, 18, 64, 88,\n\t\t81, 208, 146, 166, 124, 235, 36, 80, 239, 40, 224, 254, 41,\n\t\t232, 20, 223, 46, 217, 109, 154, 25, 153, 103, 216, 160, 156,\n\t\t6, 199, 107, 12, 96, 18, 181, 34, 106, 82, 147, 247, 178,\n\t\t210, 198, 140, 134, 230, 222, 16, 12, 175, 42, 75, 215, 66,\n\t\t170, 64, 249, 17, 96, 68, 151, 141, 172, 26, 28, 165, 48,\n\t\t13, 156, 219, 18, 221, 17, 243, 210, 103, 53, 112, 193, 251,\n\t\t250, 108, 22, 208, 17, 178, 60, 189, 198, 82, 75, 226, 57,\n\t\t82, 114, 210, 228, 132, 214, 73, 133, 128, 200, 0, 162, 47,\n\t\t81, 202, 120, 121, 149, 108, 184, 242, 156, 80, 15, 245, 231,\n\t\t138, 45, 75, 95, 154, 137, 104, 137, 81, 232, 231, 104, 4,\n\t\t192, 6, 86, 146, 194, 212, 49, 231, 191, 31, 126, 135, 171,\n\t\t20, 90, 135, 215, 68, 104, 71, 108, 186, 41, 56, 5, 163, 113,\n\t\t140, 101, 169, 91, 96, 183, 134, 119, 66, 92, 52, 117, 112,\n\t\t51, 254, 13, 33, 233, 5, 57, 217, 12, 126, 232, 58, 84, 66,\n\t\t36, 29, 3, 221, 188, 144, 81, 58, 201, 184, 139, 94, 161,\n\t\t97, 252, 0, 249, 147, 200, 134, 40, 202, 84, 210, 68, 105,\n\t\t77, 139, 174, 84, 221, 176, 44, 4, 73, 64, 146, 43, 250, 80,\n\t\t72, 187, 139, 196, 211, 197, 145, 252, 207, 18, 4, 129, 48,\n\t\t217, 175, 207, 38, 129, 53, 86, 58, 173, 236, 37, 172, 154,\n\t\t46, 83, 84, 65, 46, 134, 172, 184, 90, 105, 218, 83, 223,\n\t\t32, 6, 98, 80, 175, 188, 183, 232, 174, 214, 220, 97, 233,\n\t\t109, 200, 92, 114, 60, 52, 104, 11, 180, 1, 70, 91, 160, 13,\n\t\t48, 218, 130, 174, 9, 239, 216, 71, 24, 132, 161, 45, 232,\n\t\t31, 153, 224, 40, 239, 155, 123, 23, 16, 217, 81, 249, 104,\n\t\t204, 166, 157, 250, 230, 223, 72, 215, 146, 250, 50, 77, 232,\n\t\t144, 152, 39, 63, 232, 103, 196, 68, 3, 172, 231, 182, 43,\n\t\t200, 65, 243, 95, 67, 18, 204, 215, 202, 121, 151, 229, 191,\n\t\t147, 184, 88, 180, 208, 228, 120, 144, 160, 58, 234, 216,\n\t\t65, 128, 10, 16, 222, 204, 221, 211, 170, 156, 79, 179, 119,\n\t\t171, 171, 34, 20, 66, 198, 148, 92, 92, 230, 210, 136, 234,\n\t\t32, 20, 47, 98, 17, 5, 54, 193, 80, 37, 87, 75, 95, 164, 153,\n\t\t223, 223, 228, 180, 169, 243, 137, 55, 26, 185, 19, 21, 33,\n\t\t122, 75, 234, 233, 210, 187, 200, 121, 146, 51, 167, 247,\n\t\t188, 224, 189, 10, 154, 165, 20, 160, 165, 119, 122, 225,\n\t\t240, 70, 55, 32, 90, 53, 136, 125, 202, 103, 177, 88, 101,\n\t\t132, 69, 100, 221, 190, 114, 144, 168, 74, 142, 142, 193,\n\t\t240, 164, 38, 44, 21, 209, 242, 139, 138, 66, 217, 98, 40,\n\t\t29, 70, 86, 162, 171, 250, 245, 162, 16, 232, 204, 14, 20,\n\t\t40, 122, 2, 36, 92, 205, 87, 231, 136, 0, 175, 18, 205, 87,\n\t\t138, 91, 153, 123, 211, 245, 106, 120, 111, 227, 60, 188,\n\t\t189, 115, 142, 118, 40, 62, 38, 66, 181, 69, 185, 187, 158,\n\t\t185, 70, 27, 51, 228, 171, 209, 230, 232, 90, 216, 150, 167,\n\t\t217, 214, 103, 21, 231, 94, 16, 81, 86, 20, 17, 85, 214, 189,\n\t\t43, 74, 192, 161, 231, 102, 21, 39, 131, 243, 110, 228, 154,\n\t\t12, 220, 5, 145, 48, 135, 69, 163, 171, 250, 12, 198, 158,\n\t\t227, 162, 232, 30, 190, 205, 105, 72, 49, 192, 239, 68, 80,\n\t\t53, 136, 213, 197, 219, 169, 104, 100, 180, 7, 128, 145, 74,\n\t\t200, 254, 100, 168, 182, 45, 85, 109, 243, 106, 170, 233,\n\t\t122, 30, 128, 197, 40, 214, 188, 31, 98, 88, 165, 176, 147,\n\t\t115, 160, 19, 40, 250, 129, 247, 91, 185, 72, 84, 210, 139,\n\t\t160, 103, 8, 121, 180, 140, 94, 64, 142, 239, 0, 69, 116,\n\t\t18, 155, 11, 201, 114, 218, 95, 179, 232, 112, 162, 251, 128,\n\t\t107, 162, 151, 158, 204, 238, 146, 55, 146, 154, 244, 239,\n\t\t85, 240, 161, 247, 223, 213, 236, 63, 61, 47, 183, 214, 249,\n\t\t229, 38, 135, 191, 105, 196, 132, 239, 157, 17, 237, 226,\n\t\t186, 74, 89, 48, 143, 17, 139, 230, 128, 139, 72, 179, 43,\n\t\t216, 202, 81, 96, 180, 68, 138, 251, 111, 251, 63, 245, 194,\n\t\t221, 179, 242, 143, 46, 86, 58, 175, 155, 21, 203, 87, 22,\n\t\t222, 88, 151, 211, 140, 176, 243, 212, 53, 222, 254, 232,\n\t\t217, 244, 178, 156, 215, 174, 182, 49, 14, 156, 40, 116, 146,\n\t\t225, 218, 167, 142, 4, 117, 64, 98, 36, 73, 15, 209, 235,\n\t\t90, 49, 85, 94, 159, 188, 3, 238, 113, 159, 5, 103, 215, 119,\n\t\t241, 124, 88, 77, 109, 72, 233, 42, 18, 1, 232, 71, 0, 131,\n\t\t88, 14, 82, 18, 75, 79, 80, 205, 150, 15, 196, 0, 187, 155,\n\t\t144, 140, 251, 52, 199, 222, 80, 170, 55, 125, 235, 130, 136,\n\t\t77, 114, 210, 204, 162, 203, 247, 133, 12, 180, 23, 188, 35,\n\t\t82, 226, 179, 97, 161, 4, 224, 86, 42, 193, 35, 162, 253,\n\t\t28, 251, 161, 171, 229, 73, 126, 101, 159, 44, 18, 185, 220,\n\t\t91, 86, 197, 56, 145, 25, 117, 59, 190, 219, 200, 135, 107,\n\t\t191, 177, 219, 206, 236, 204, 251, 179, 102, 125, 94, 62,\n\t\t153, 151, 95, 205, 255, 190, 124, 61, 29, 63, 255, 113, 51,\n\t\t129, 126, 189, 119, 34, 180, 115, 102, 16, 110, 226, 177,\n\t\t131, 33, 151, 113, 78, 181, 214, 130, 232, 61, 158, 203, 250,\n\t\t218, 143, 121, 43, 240, 132, 179, 162, 93, 148, 217, 205,\n\t\t247, 125, 121, 206, 249, 51, 96, 241, 225, 182, 177, 36, 131,\n\t\t71, 234, 236, 84, 197, 170, 236, 227, 92, 189, 11, 163, 18,\n\t\t169, 99, 117, 182, 246, 86, 70, 226, 48, 33, 18, 4, 239, 123,\n\t\t68, 227, 130, 150, 189, 62, 197, 62, 160, 68, 80, 15, 254,\n\t\t176, 52, 77, 59, 85, 53, 204, 165, 89, 240, 74, 25, 251, 194,\n\t\t75, 79, 5, 239, 108, 124, 40, 115, 173, 8, 225, 184, 80, 21,\n\t\t176, 31, 102, 235, 101, 63, 132, 137, 110, 191, 77, 74, 72,\n\t\t6, 227, 54, 90, 62, 243, 61, 11, 240, 181, 172, 5, 253, 19,\n\t\t67, 43, 17, 82, 152, 154, 84, 44, 245, 174, 128, 145, 233,\n\t\t93, 208, 21, 91, 172, 0, 36, 142, 86, 177, 229, 5, 85, 83,\n\t\t37, 134, 84, 213, 86, 69, 182, 235, 130, 211, 89, 170, 202,\n\t\t56, 35, 34, 99, 222, 231, 137, 234, 182, 164, 203, 19, 121,\n\t\t210, 83, 45, 178, 227, 33, 35, 79, 45, 121, 112, 129, 201,\n\t\t47, 90, 13, 208, 26, 3, 210, 47, 165, 64, 42, 230, 178, 106,\n\t\t229, 254, 148, 125, 89, 111, 0, 49, 171, 187, 131, 85, 98,\n\t\t237, 20, 93, 6, 203, 195, 70, 241, 144, 6, 191, 67, 72, 94,\n\t\t210, 235, 147, 252, 229, 130, 217, 1, 158, 117, 121, 86, 104,\n\t\t29, 146, 114, 58, 240, 81, 252, 81, 95, 73, 54, 135, 144,\n\t\t60, 131, 120, 170, 29, 176, 203, 87, 243, 123, 76, 53, 69,\n\t\t233, 221, 79, 198, 55, 88, 23, 20, 165, 250, 210, 251, 187,\n\t\t109, 32, 183, 78, 248, 11, 15, 49, 65, 76, 171, 61, 147, 206,\n\t\t226, 123, 155, 35, 164, 24, 119, 155, 115, 183, 53, 33, 249,\n\t\t222, 154, 252, 35, 26, 35, 106, 245, 223, 110, 204, 163, 217,\n\t\t102, 110, 194, 158, 234, 13, 139, 196, 37, 54, 14, 145, 104,\n\t\t126, 244, 148, 186, 55, 133, 95, 159, 156, 243, 8, 46, 237,\n\t\t51, 229, 253, 143, 189, 12, 122, 120, 147, 44, 196, 215, 199,\n\t\t93, 126, 21, 40, 122, 219, 229, 108, 143, 203, 246, 216, 167,\n\t\t202, 247, 180, 7, 81, 107, 143, 219, 243, 145, 230, 32, 186,\n\t\t238, 187, 26, 211, 167, 218, 247, 55, 230, 238, 132, 251,\n\t\t250, 252, 175, 155, 233, 22, 222, 103, 53, 38, 224, 177, 69,\n\t\t96, 31, 182, 22, 134, 246, 237, 55, 146, 28, 79, 31, 56, 154,\n\t\t158, 174, 55, 31, 193, 62, 134, 19, 0, 238, 44, 79, 135, 28,\n\t\t14, 138, 190, 74, 78, 87, 80, 53, 42, 51, 213, 109, 117, 182,\n\t\t1, 137, 7, 63, 83, 91, 186, 194, 132, 204, 13, 159, 148, 22,\n\t\t86, 30, 168, 130, 229, 236, 245, 23, 41, 57, 26, 15, 227,\n\t\t253, 150, 90, 22, 225, 143, 39, 164, 2, 96, 162, 15, 39, 189,\n\t\t86, 224, 232, 99, 227, 209, 30, 57, 19, 36, 118, 136, 244,\n\t\t99, 226, 120, 36, 216, 3, 146, 191, 39, 73, 211, 117, 192,\n\t\t198, 69, 161, 228, 240, 97, 46, 105, 141, 141, 250, 166, 186,\n\t\t216, 156, 19, 167, 138, 149, 28, 39, 79, 112, 225, 16, 73,\n\t\t30, 150, 4, 19, 32, 16, 71, 21, 170, 101, 255, 32, 77, 33,\n\t\t138, 85, 13, 130, 115, 131, 155, 6, 189, 79, 187, 221, 26,\n\t\t170, 126, 24, 161, 92, 215, 196, 77, 124, 138, 5, 49, 190,\n\t\t0, 179, 116, 65, 206, 253, 126, 75, 63, 64, 95, 14, 248, 87,\n\t\t1, 118, 209, 27, 113, 110, 172, 154, 168, 0, 59, 159, 36,\n\t\t31, 232, 173, 72, 90, 1, 58, 12, 92, 208, 197, 207, 2, 46,\n\t\t156, 247, 38, 120, 152, 89, 157, 180, 144, 121, 11, 154, 216,\n\t\t37, 57, 53, 15, 103, 243, 231, 47, 191, 153, 227, 243, 151,\n\t\t95, 110, 16, 198, 234, 77, 60, 247, 166, 92, 50, 199, 57,\n\t\t207, 22, 86, 28, 9, 234, 214, 152, 142, 6, 148, 163, 139,\n\t\t224, 20, 197, 167, 237, 67, 201, 32, 151, 38, 150, 92, 83,\n\t\t163, 224, 88, 249, 57, 0, 5, 164, 205, 174, 161, 187, 73,\n\t\t108, 233, 37, 221, 98, 67, 16, 73, 196, 181, 153, 6, 248,\n\t\t155, 169, 122, 146, 149, 18, 16, 145, 192, 254, 192, 16, 146,\n\t\t174, 238, 195, 0, 205, 16, 146, 150, 207, 118, 182, 206, 21,\n\t\t71, 165, 205, 207, 197, 215, 4, 84, 1, 176, 8, 102, 154, 253,\n\t\t246, 176, 2, 161, 182, 195, 218, 36, 131, 37, 116, 229, 243,\n\t\t92, 45, 243, 239, 224, 152, 131, 173, 36, 137, 183, 63, 72,\n\t\t156, 147, 112, 100, 76, 137, 54, 215, 213, 1, 37, 110, 114,\n\t\t37, 49, 28, 72, 79, 206, 244, 132, 18, 102, 134, 232, 135,\n\t\t150, 120, 30, 133, 81, 206, 176, 165, 196, 220, 150, 166,\n\t\t249, 151, 130, 218, 234, 11, 177, 248, 28, 185, 230, 39, 157,\n\t\t68, 194, 19, 130, 176, 2, 120, 209, 52, 209, 221, 11, 164,\n\t\t17, 28, 206, 72, 70, 35, 182, 118, 12, 130, 130, 91, 10, 71,\n\t\t195, 183, 57, 209, 153, 42, 212, 186, 81, 99, 153, 2, 147,\n\t\t253, 24, 193, 163, 23, 32, 115, 181, 249, 108, 10, 21, 249,\n\t\t251, 18, 246, 116, 35, 217, 65, 94, 225, 202, 160, 146, 133,\n\t\t247, 106, 64, 176, 63, 101, 87, 103, 231, 167, 22, 197, 178,\n\t\t112, 31, 153, 130, 177, 55, 27, 50, 69, 234, 13, 35, 20, 30,\n\t\t16, 111, 26, 160, 41, 133, 202, 116, 23, 36, 181, 12, 116,\n\t\t75, 68, 155, 68, 233, 123, 228, 199, 196, 109, 146, 201, 28,\n\t\t27, 83, 117, 204, 212, 72, 40, 97, 4, 119, 192, 198, 197,\n\t\t169, 157, 173, 128, 215, 242, 18, 19, 61, 110, 97, 76, 76,\n\t\t153, 188, 250, 228, 147, 172, 37, 45, 196, 90, 66, 39, 125,\n\t\t83, 183, 202, 104, 72, 152, 62, 129, 81, 213, 88, 223, 165,\n\t\t163, 10, 18, 12, 162, 140, 161, 206, 1, 78, 129, 101, 48,\n\t\t67, 140, 185, 20, 21, 162, 41, 178, 47, 117, 18, 201, 28,\n\t\t90, 122, 179, 251, 247, 86, 201, 122, 14, 68, 221, 0, 226,\n\t\t42, 33, 168, 189, 100, 81, 112, 146, 130, 204, 88, 224, 152,\n\t\t4, 206, 198, 210, 113, 75, 71, 63, 211, 240, 198, 98, 48,\n\t\t186, 26, 116, 57, 25, 174, 39, 218, 191, 178, 156, 216, 225,\n\t\t69, 212, 245, 39, 96, 248, 227, 82, 214, 99, 239, 81, 44,\n\t\t225, 187, 50, 242, 127, 254, 250, 250, 252, 229, 70, 54, 150,\n\t\t255, 162, 47, 254, 36, 244, 197, 96, 29, 209, 23, 251, 46,\n\t\t14, 102, 36, 26, 180, 61, 55, 2, 232, 56, 66, 17, 69, 183,\n\t\t62, 150, 45, 25, 1, 6, 4, 153, 9, 12, 26, 144, 41, 184, 129,\n\t\t34, 50, 35, 47, 173, 78, 81, 3, 92, 81, 184, 120, 1, 166,\n\t\t7, 5, 115, 69, 130, 179, 165, 120, 129, 29, 86, 32, 51, 148,\n\t\t9, 32, 136, 5, 49, 104, 102, 175, 20, 44, 22, 103, 0, 39,\n\t\t88, 27, 220, 48, 92, 23, 26, 194, 179, 193, 51, 117, 88, 189,\n\t\t39, 169, 28, 152, 159, 198, 21, 137, 160, 240, 18, 3, 135,\n\t\t102, 1, 208, 175, 0, 119, 232, 195, 227, 109, 163, 100, 113,\n\t\t130, 122, 109, 183, 68, 93, 73, 29, 213, 22, 74, 3, 183, 15,\n\t\t149, 239, 28, 93, 33, 61, 113, 88, 156, 70, 63, 8, 74, 155,\n\t\t5, 12, 87, 73, 35, 12, 98, 116, 167, 246, 166, 1, 234, 27,\n\t\t70, 131, 35, 86, 104, 254, 130, 153, 121, 243, 48, 187, 193,\n\t\t7, 49, 176, 84, 217, 139, 198, 43, 185, 58, 11, 78, 198, 43,\n\t\t204, 227, 38, 10, 244, 30, 35, 55, 189, 62, 249, 24, 186,\n\t\t0, 14, 165, 207, 145, 5, 30, 9, 9, 204, 115, 93, 90, 53, 232,\n\t\t29, 196, 204, 212, 2, 254, 36, 138, 183, 108, 162, 201, 105,\n\t\t152, 42, 239, 193, 143, 42, 151, 181, 111, 54, 178, 254, 182,\n\t\t224, 29, 166, 212, 70, 225, 192, 47, 130, 129, 56, 118, 15,\n\t\t56, 113, 128, 49, 157, 197, 15, 201, 240, 31, 189, 38, 18,\n\t\t149, 39, 68, 135, 120, 218, 5, 136, 34, 111, 254, 67, 186,\n\t\t181, 121, 13, 88, 57, 129, 134, 132, 223, 152, 100, 95, 26,\n\t\t6, 69, 255, 0, 32, 26, 180, 232, 176, 152, 228, 169, 125,\n\t\t90, 0, 237, 51, 154, 218, 211, 193, 54, 10, 228, 39, 3, 174,\n\t\t97, 32, 234, 183, 196, 46, 66, 34, 77, 167, 251, 59, 177,\n\t\t249, 74, 130, 101, 111, 188, 228, 228, 143, 102, 220, 180,\n\t\t2, 72, 207, 161, 84, 182, 53, 32, 27, 219, 9, 62, 166, 1,\n\t\t22, 125, 6, 250, 102, 159, 93, 227, 122, 1, 6, 188, 207, 192,\n\t\t249, 45, 37, 2, 250, 212, 134, 36, 8, 38, 253, 90, 126, 10,\n\t\t48, 121, 40, 144, 6, 76, 0, 237, 127, 242, 17, 14, 146, 65,\n\t\t253, 87, 82, 160, 195, 83, 248, 179, 101, 34, 249, 60, 23,\n\t\t55, 21, 65, 71, 49, 81, 82, 78, 165, 224, 223, 1, 209, 117,\n\t\t250, 244, 252, 117, 57, 190, 67, 134, 89, 235, 150, 187, 11,\n\t\t240, 181, 36, 19, 173, 141, 29, 84, 197, 191, 144, 248, 199,\n\t\t45, 68, 0, 43, 142, 144, 219, 13, 188, 47, 94, 153, 186, 251,\n\t\t121, 14, 78, 196, 235, 215, 224, 249, 221, 101, 8, 132, 228,\n\t\t180, 171, 105, 13, 145, 112, 77, 64, 222, 250, 125, 184, 183,\n\t\t12, 108, 231, 254, 107, 33, 151, 32, 66, 175, 148, 94, 207,\n\t\t23, 253, 123, 35, 184, 75, 148, 48, 77, 135, 139, 195, 66,\n\t\t163, 162, 133, 210, 229, 45, 226, 55, 91, 80, 72, 23, 94,\n\t\t123, 16, 30, 52, 152, 149, 227, 92, 155, 235, 119, 200, 145,\n\t\t15, 76, 17, 251, 251, 234, 130, 23, 246, 245, 106, 165, 26,\n\t\t125, 223, 40, 144, 27, 25, 240, 43, 193, 4, 89, 66, 166, 154,\n\t\t23, 190, 42, 182, 180, 223, 216, 142, 250, 93, 89, 181, 194,\n\t\t126, 104, 192, 178, 77, 147, 43, 147, 41, 175, 79, 218, 246,\n\t\t60, 219, 184, 20, 129, 219, 176, 147, 139, 224, 213, 135,\n\t\t70, 212, 127, 119, 17, 76, 3, 125, 230, 246, 155, 16, 13,\n\t\t75, 35, 54, 254, 2, 243, 171, 220, 85, 23, 131, 91, 26, 109,\n\t\t25, 145, 209, 161, 212, 37, 113, 37, 119, 89, 116, 46, 66,\n\t\t89, 240, 38, 200, 59, 86, 51, 109, 247, 149, 246, 250, 4,\n\t\t238, 11, 184, 128, 230, 84, 151, 17, 222, 171, 176, 46, 65,\n\t\t67, 76, 124, 24, 145, 21, 66, 19, 194, 220, 247, 133, 148,\n\t\t54, 116, 20, 57, 37, 228, 137, 114, 206, 134, 99, 17, 199,\n\t\t44, 33, 118, 220, 49, 67, 238, 88, 6, 47, 217, 35, 39, 243,\n\t\t22, 195, 228, 158, 137, 80, 8, 42, 5, 243, 15, 209, 70, 140,\n\t\t21, 20, 202, 234, 56, 84, 249, 75, 98, 75, 192, 111, 96, 180,\n\t\t252, 220, 130, 101, 44, 34, 229, 84, 85, 32, 164, 65, 164,\n\t\t40, 60, 138, 23, 236, 155, 202, 172, 161, 32, 37, 89, 246,\n\t\t67, 101, 1, 82, 30, 71, 165, 113, 60, 44, 65, 1, 43, 53, 182,\n\t\t182, 42, 100, 90, 216, 66, 100, 46, 40, 66, 65, 43, 74, 157,\n\t\t46, 209, 9, 14, 33, 146, 116, 63, 188, 36, 33, 5, 144, 152,\n\t\t144, 142, 106, 112, 163, 110, 183, 70, 63, 74, 200, 46, 87,\n\t\t140, 130, 229, 195, 140, 206, 198, 88, 234, 96, 15, 22, 85,\n\t\t29, 236, 107, 90, 213, 5, 124, 94, 216, 81, 117, 168, 117,\n\t\t164, 117, 160, 101, 156, 15, 202, 6, 185, 99, 17, 221, 113,\n\t\t69, 78, 245, 232, 242, 18, 231, 232, 177, 202, 119, 252, 161,\n\t\t131, 62, 212, 195, 191, 239, 177, 77, 200, 248, 234, 240,\n\t\t26, 29, 223, 107, 2, 203, 69, 135, 215, 232, 248, 70, 221,\n\t\t23, 181, 43, 110, 120, 50, 175, 153, 54, 253, 112, 123, 235,\n\t\t70, 156, 21, 140, 107, 112, 61, 41, 67, 171, 217, 198, 217,\n\t\t132, 65, 65, 193, 113, 54, 58, 208, 58, 206, 74, 107, 164,\n\t\t5, 71, 13, 16, 0, 115, 138, 132, 25, 112, 28, 210, 208, 107,\n\t\t180, 100, 27, 237, 17, 115, 56, 176, 188, 116, 184, 199, 20,\n\t\t150, 225, 254, 200, 54, 179, 190, 44, 207, 127, 126, 126,\n\t\t185, 61, 205, 180, 255, 110, 52, 255, 221, 104, 126, 232,\n\t\t70, 211, 219, 24, 167, 16, 242, 18, 45, 173, 173, 118, 42,\n\t\t65, 108, 127, 65, 120, 134, 70, 1, 126, 33, 90, 97, 24, 129,\n\t\t143, 85, 172, 40, 77, 89, 137, 114, 150, 165, 219, 53, 81,\n\t\t162, 20, 11, 104, 115, 5, 59, 110, 156, 105, 69, 51, 97, 14,\n\t\t46, 198, 196, 8, 125, 248, 10, 164, 228, 164, 231, 63, 132,\n\t\t40, 166, 176, 187, 69, 238, 128, 156, 212, 16, 1, 34, 60,\n\t\t179, 218, 202, 108, 8, 189, 100, 35, 4, 113, 169, 127, 94,\n\t\t8, 140, 246, 145, 79, 25, 223, 38, 215, 163, 75, 60, 98, 58,\n\t\t70, 104, 210, 46, 214, 110, 7, 35, 118, 17, 176, 132, 56,\n\t\t88, 163, 97, 76, 27, 206, 219, 14, 1, 110, 255, 7, 254, 237,\n\t\t190, 56, 120, 89, 254, 121, 99, 238, 109, 131, 181, 208, 187,\n\t\t56, 247, 99, 103, 200, 115, 107, 56, 70, 240, 229, 161, 169,\n\t\t157, 188, 13, 14, 12, 59, 91, 239, 200, 179, 33, 198, 141,\n\t\t52, 71, 36, 127, 49, 3, 200, 17, 121, 11, 129, 168, 66, 202,\n\t\t174, 164, 73, 161, 136, 231, 97, 100, 117, 164, 34, 120, 63,\n\t\t3, 29, 35, 16, 115, 9, 94, 147, 52, 232, 55, 11, 83, 43, 16,\n\t\t147, 21, 43, 236, 244, 140, 247, 149, 204, 41, 34, 234, 116,\n\t\t185, 221, 215, 87, 43, 132, 94, 242, 125, 107, 68, 138, 94,\n\t\t205, 234, 89, 1, 235, 201, 25, 169, 183, 217, 30, 0, 236,\n\t\t66, 8, 143, 232, 52, 87, 48, 219, 7, 72, 17, 206, 215, 133,\n\t\t52, 100, 136, 75, 86, 178, 62, 75, 177, 238, 167, 170, 199,\n\t\t119, 97, 209, 234, 82, 77, 246, 240, 182, 165, 168, 232, 61,\n\t\t77, 194, 133, 71, 73, 176, 2, 86, 20, 171, 157, 98, 124, 148,\n\t\t13, 170, 72, 25, 15, 219, 204, 84, 125, 87, 242, 89, 50, 143,\n\t\t15, 160, 243, 36, 106, 37, 3, 140, 177, 30, 211, 28, 124,\n\t\t151, 167, 190, 239, 178, 232, 249, 126, 140, 7, 15, 190, 211,\n\t\t65, 183, 126, 14, 8, 5, 188, 2, 42, 249, 17, 131, 78, 58,\n\t\t158, 49, 232, 80, 85, 46, 6, 61, 217, 171, 65, 111, 100, 226,\n\t\t185, 28, 244, 251, 11, 226, 127, 254, 122, 254, 250, 201,\n\t\t124, 125, 121, 249, 211, 60, 175, 127, 222, 44, 141, 155,\n\t\t44, 234, 29, 102, 114, 113, 115, 112, 147, 107, 121, 206,\n\t\t128, 85, 130, 14, 225, 19, 227, 47, 56, 255, 101, 207, 1,\n\t\t37, 81, 91, 77, 204, 26, 24, 200, 95, 214, 235, 130, 143,\n\t\t189, 70, 99, 59, 244, 151, 197, 236, 30, 27, 79, 200, 165,\n\t\t60, 213, 183, 88, 173, 77, 107, 191, 105, 207, 199, 94, 116,\n\t\t216, 90, 112, 217, 128, 221, 195, 91, 179, 181, 213, 239,\n\t\t86, 126, 89, 247, 221, 119, 92, 87, 187, 61, 161, 247, 142,\n\t\t216, 23, 126, 242, 187, 29, 126, 209, 223, 119, 222, 240,\n\t\t250, 148, 146, 103, 74, 241, 117, 88, 169, 160, 61, 26, 31,\n\t\t207, 38, 214, 229, 18, 148, 243, 34, 200, 180, 175, 203, 56,\n\t\t183, 178, 154, 86, 100, 107, 9, 165, 43, 216, 203, 142, 58,\n\t\t207, 43, 113, 81, 145, 48, 219, 232, 164, 36, 69, 201, 21,\n\t\t145, 146, 133, 185, 162, 180, 12, 7, 73, 75, 168, 12, 85,\n\t\t160, 150, 222, 245, 47, 224, 171, 213, 74, 111, 136, 203,\n\t\t97, 238, 170, 104, 12, 226, 177, 120, 47, 4, 252, 204, 228,\n\t\t233, 61, 170, 229, 22, 16, 126, 172, 244, 89, 46, 206, 206,\n\t\t49, 84, 24, 110, 172, 245, 180, 25, 118, 41, 1, 131, 84, 153,\n\t\t163, 79, 5, 97, 186, 2, 159, 200, 56, 226, 53, 13, 234, 88,\n\t\t155, 103, 183, 86, 164, 87, 6, 239, 231, 58, 216, 201, 92,\n\t\t164, 127, 167, 171, 74, 142, 168, 167, 35, 131, 32, 109, 215,\n\t\t71, 31, 227, 28, 30, 104, 190, 127, 62, 127, 53, 207, 95,\n\t\t126, 49, 203, 215, 79, 167, 229, 211, 151, 219, 181, 189,\n\t\t101, 113, 71, 59, 71, 114, 219, 74, 22, 1, 115, 63, 0, 125,\n\t\t207, 19, 64, 150, 48, 194, 81, 32, 200, 230, 48, 39, 170,\n\t\t223, 54, 206, 129, 20, 113, 206, 11, 78, 35, 217, 1, 3, 132,\n\t\t53, 105, 88, 60, 73, 66, 52, 49, 193, 164, 166, 230, 104,\n\t\t241, 61, 154, 218, 20, 62, 143, 37, 139, 113, 224, 34, 196,\n\t\t104, 165, 76, 5, 36, 242, 119, 159, 242, 73, 174, 229, 18,\n\t\t57, 208, 74, 61, 103, 167, 60, 210, 101, 37, 201, 178, 54,\n\t\t170, 82, 224, 209, 74, 135, 37, 15, 147, 152, 24, 232, 157,\n\t\t101, 76, 227, 152, 154, 77, 9, 72, 196, 115, 221, 213, 47,\n\t\t57, 207, 15, 98, 181, 50, 152, 37, 132, 4, 16, 64, 164, 105,\n\t\t92, 227, 25, 226, 74, 227, 160, 37, 180, 33, 66, 113, 98,\n\t\t154, 68, 212, 106, 73, 215, 216, 179, 78, 208, 222, 85, 30,\n\t\t118, 75, 161, 109, 145, 2, 254, 60, 93, 151, 95, 254, 249,\n\t\t176, 120, 201, 2, 66, 164, 179, 39, 180, 181, 212, 123, 93,\n\t\t237, 235, 83, 178, 76, 50, 8, 113, 118, 200, 38, 81, 171,\n\t\t183, 68, 252, 58, 205, 57, 118, 204, 214, 74, 3, 119, 53,\n\t\t195, 53, 1, 116, 85, 30, 94, 83, 144, 176, 11, 85, 98, 75,\n\t\t198, 220, 94, 156, 230, 254, 100, 61, 66, 14, 206, 75, 231,\n\t\t36, 247, 177, 105, 150, 168, 148, 44, 35, 135, 210, 110, 201,\n\t\t67, 27, 67, 89, 20, 128, 91, 6, 169, 251, 3, 88, 149, 97,\n\t\t1, 14, 73, 220, 187, 185, 42, 150, 2, 75, 182, 55, 26, 59,\n\t\t18, 115, 71, 86, 146, 126, 120, 212, 195, 177, 148, 44, 70,\n\t\t130, 68, 232, 81, 37, 30, 167, 66, 120, 54, 197, 53, 101,\n\t\t155, 199, 151, 203, 135, 179, 111, 186, 82, 32, 93, 179, 24,\n\t\t133, 7, 77, 187, 195, 56, 177, 0, 19, 67, 69, 148, 164, 92,\n\t\t187, 183, 136, 144, 238, 103, 97, 107, 65, 78, 236, 82, 243,\n\t\t83, 238, 251, 61, 8, 105, 132, 84, 134, 236, 169, 2, 19, 144,\n\t\t104, 215, 174, 98, 44, 224, 229, 169, 108, 100, 117, 84, 225,\n\t\t170, 120, 63, 12, 111, 88, 37, 111, 15, 90, 175, 119, 143,\n\t\t133, 205, 203, 175, 230, 151, 231, 243, 231, 95, 110, 4, 205,\n\t\t45, 97, 91, 30, 12, 185, 54, 205, 25, 184, 113, 107, 10, 66,\n\t\t177, 93, 25, 41, 11, 119, 42, 210, 49, 201, 37, 109, 130,\n\t\t154, 171, 19, 181, 87, 108, 26, 200, 69, 215, 146, 35, 68,\n\t\t171, 76, 67, 170, 93, 45, 72, 150, 103, 65, 198, 10, 205,\n\t\t6, 220, 96, 20, 97, 181, 203, 61, 201, 123, 25, 127, 98, 201,\n\t\t9, 46, 177, 188, 99, 255, 24, 183, 200, 29, 91, 77, 82, 145,\n\t\t54, 225, 176, 32, 108, 73, 252, 151, 81, 184, 56, 130, 29,\n\t\t184, 121, 108, 185, 52, 124, 124, 188, 124, 251, 106, 174,\n\t\t10, 22, 163, 189, 193, 206, 208, 190, 208, 174, 184, 122,\n\t\t223, 81, 250, 225, 170, 113, 139, 118, 130, 246, 129, 118,\n\t\t129, 246, 192, 213, 215, 157, 244, 243, 71, 168, 236, 117,\n\t\t15, 173, 215, 29, 205, 154, 187, 220, 25, 95, 175, 31, 111,\n\t\t244, 235, 199, 75, 164, 181, 175, 79, 161, 249, 185, 77, 190,\n\t\t218, 99, 63, 80, 245, 231, 86, 201, 76, 198, 153, 185, 111,\n\t\t29, 175, 216, 166, 146, 195, 92, 129, 135, 7, 224, 16, 21,\n\t\t65, 211, 8, 1, 75, 10, 131, 94, 235, 170, 127, 55, 181, 30,\n\t\t241, 247, 248, 250, 228, 251, 9, 160, 196, 217, 87, 40, 112,\n\t\t76, 37, 11, 18, 218, 21, 137, 52, 240, 250, 84, 28, 83, 158,\n\t\t124, 181, 189, 13, 98, 49, 100, 27, 70, 163, 228, 122, 180,\n\t\t118, 123, 204, 217, 120, 56, 234, 55, 152, 171, 251, 217,\n\t\t134, 166, 228, 160, 210, 6, 109, 130, 25, 109, 8, 9, 116,\n\t\t233, 125, 32, 67, 227, 4, 233, 175, 130, 234, 164, 175, 186,\n\t\t187, 28, 255, 245, 229, 249, 183, 151, 223, 110, 81, 145,\n\t\t218, 157, 68, 234, 98, 39, 159, 220, 28, 219, 178, 65, 79,\n\t\t11, 56, 59, 217, 227, 54, 10, 28, 59, 217, 53, 208, 56, 78,\n\t\t107, 183, 47, 126, 142, 130, 47, 227, 125, 151, 119, 231,\n\t\t174, 26, 229, 26, 196, 197, 54, 167, 76, 126, 169, 90, 61,\n\t\t236, 178, 49, 35, 88, 156, 94, 234, 126, 90, 11, 253, 96,\n\t\t150, 65, 120, 51, 57, 88, 178, 22, 137, 155, 24, 88, 245,\n\t\t121, 56, 181, 153, 114, 187, 43, 40, 16, 212, 103, 195, 202,\n\t\t165, 33, 104, 84, 111, 168, 180, 243, 176, 255, 50, 202, 213,\n\t\t237, 203, 112, 221, 191, 236, 245, 41, 4, 208, 118, 199, 104,\n\t\t103, 228, 46, 8, 36, 118, 92, 138, 66, 111, 103, 225, 155,\n\t\t219, 100, 137, 136, 246, 81, 224, 137, 33, 124, 54, 161, 148,\n\t\t57, 239, 2, 237, 21, 42, 36, 68, 9, 180, 87, 152, 253, 194,\n\t\t152, 153, 32, 137, 80, 65, 227, 227, 146, 162, 53, 37, 170,\n\t\t215, 120, 176, 181, 113, 157, 53, 131, 160, 49, 235, 130,\n\t\t16, 143, 189, 214, 195, 46, 180, 94, 247, 2, 215, 144, 151,\n\t\t48, 26, 42, 237, 196, 87, 242, 35, 29, 185, 179, 166, 38,\n\t\t233, 189, 48, 102, 142, 43, 100, 147, 247, 35, 42, 23, 173,\n\t\t205, 147, 247, 105, 142, 156, 160, 176, 58, 4, 226, 40, 172,\n\t\t122, 206, 13, 180, 69, 47, 78, 128, 153, 131, 10, 226, 129,\n\t\t101, 89, 36, 138, 223, 68, 253, 245, 216, 215, 37, 225, 236,\n\t\t125, 146, 208, 179, 38, 130, 92, 183, 43, 61, 88, 103, 201,\n\t\t165, 215, 235, 202, 19, 154, 60, 102, 162, 229, 203, 144,\n\t\t233, 46, 84, 6, 12, 115, 18, 242, 196, 168, 166, 50, 146,\n\t\t31, 116, 205, 119, 149, 224, 20, 66, 105, 226, 180, 118, 81,\n\t\t34, 160, 62, 242, 2, 253, 32, 232, 186, 80, 143, 244, 131,\n\t\t226, 248, 245, 40, 77, 88, 71, 187, 244, 123, 244, 115, 140,\n\t\t180, 95, 63, 71, 175, 129, 93, 180, 235, 131, 102, 189, 190,\n\t\t236, 176, 108, 223, 163, 159, 163, 95, 19, 149, 59, 246, 174,\n\t\t160, 248, 243, 45, 236, 204, 103, 251, 190, 144, 64, 110,\n\t\t86, 37, 50, 74, 165, 25, 220, 151, 16, 251, 26, 43, 51, 157,\n\t\t219, 192, 72, 113, 126, 4, 129, 119, 161, 174, 200, 188, 222,\n\t\t134, 105, 75, 107, 97, 102, 60, 226, 181, 114, 92, 182, 87,\n\t\t233, 219, 199, 155, 228, 213, 8, 56, 239, 243, 46, 205, 46,\n\t\t78, 222, 181, 62, 239, 156, 68, 165, 250, 38, 169, 70, 69,\n\t\t214, 141, 20, 28, 251, 130, 33, 170, 88, 8, 253, 212, 59,\n\t\t185, 92, 230, 80, 0, 20, 67, 24, 216, 138, 213, 124, 12, 112,\n\t\t206, 32, 186, 194, 203, 219, 15, 120, 29, 242, 202, 57, 187,\n\t\t113, 205, 236, 80, 22, 240, 245, 0, 81, 142, 193, 78, 193,\n\t\t199, 57, 101, 164, 134, 10, 138, 131, 60, 103, 244, 65, 125,\n\t\t110, 60, 134, 64, 105, 166, 120, 73, 78, 149, 36, 32, 58,\n\t\t205, 118, 86, 173, 251, 114, 193, 3, 69, 36, 10, 139, 90,\n\t\t18, 155, 89, 17, 82, 62, 99, 231, 38, 172, 234, 60, 221, 202,\n\t\t53, 195, 177, 125, 117, 187, 112, 108, 16, 157, 34, 250, 250,\n\t\t12, 122, 247, 174, 4, 158, 67, 174, 136, 3, 178, 169, 15,\n\t\t10, 129, 180, 74, 69, 13, 177, 151, 33, 35, 183, 2, 53, 67,\n\t\t206, 170, 177, 30, 123, 7, 71, 183, 36, 63, 183, 144, 121,\n\t\t60, 78, 17, 208, 87, 45, 161, 173, 220, 50, 114, 72, 19, 163,\n\t\t169, 206, 253, 20, 119, 52, 190, 214, 179, 201, 86, 118, 63,\n\t\t143, 206, 155, 66, 168, 115, 228, 201, 41, 86, 24, 18, 20,\n\t\t12, 199, 207, 153, 199, 203, 126, 120, 35, 99, 131, 150, 244,\n\t\t77, 50, 69, 38, 167, 205, 54, 56, 79, 186, 199, 26, 112, 90,\n\t\t99, 48, 143, 159, 107, 66, 92, 13, 236, 164, 49, 175, 190,\n\t\t0, 34, 42, 226, 64, 82, 14, 224, 194, 22, 102, 204, 76, 114,\n\t\t99, 144, 161, 5, 54, 34, 11, 115, 134, 174, 219, 190, 194,\n\t\t251, 140, 217, 74, 250, 169, 151, 4, 87, 110, 70, 4, 79, 151,\n\t\t101, 176, 207, 187, 190, 128, 161, 195, 40, 107, 136, 61,\n\t\t10, 69, 3, 90, 97, 181, 210, 10, 2, 38, 23, 17, 127, 153,\n\t\t230, 16, 3, 131, 86, 11, 200, 91, 155, 18, 161, 119, 37, 175,\n\t\t166, 81, 176, 12, 90, 219, 201, 78, 118, 182, 49, 54, 239,\n\t\t26, 127, 207, 46, 49, 192, 112, 144, 138, 33, 125, 10, 71,\n\t\t152, 94, 40, 241, 99, 46, 204, 173, 21, 55, 117, 109, 51,\n\t\t4, 108, 205, 144, 226, 141, 244, 239, 171, 242, 122, 69, 250,\n\t\t61, 123, 235, 251, 38, 125, 180, 140, 13, 13, 113, 201, 194,\n\t\t15, 111, 17, 14, 90, 82, 156, 226, 156, 176, 158, 117, 105,\n\t\t58, 97, 87, 113, 115, 76, 253, 252, 230, 231, 254, 3, 252,\n\t\t64, 64, 171, 201, 51, 194, 157, 245, 178, 43, 97, 9, 132,\n\t\t179, 26, 12, 3, 186, 197, 62, 182, 101, 38, 167, 253, 96,\n\t\t54, 135, 21, 52, 6, 12, 97, 65, 132, 106, 31, 210, 222, 106,\n\t\t186, 109, 57, 158, 253, 164, 196, 241, 212, 225, 244, 194,\n\t\t138, 160, 131, 169, 215, 58, 148, 58, 146, 166, 15, 101, 166,\n\t\t99, 24, 35, 105, 116, 40, 189, 61, 130, 109, 35, 119, 101,\n\t\t77, 199, 82, 135, 210, 232, 88, 234, 80, 26, 29, 75, 29, 74,\n\t\t163, 99, 169, 67, 9, 180, 11, 102, 60, 131, 89, 209, 34, 146,\n\t\t42, 200, 133, 140, 166, 185, 24, 78, 92, 9, 97, 28, 111, 243,\n\t\t49, 58, 236, 76, 27, 147, 92, 47, 14, 17, 203, 102, 87, 12,\n\t\t235, 99, 43, 149, 14, 218, 168, 38, 56, 245, 83, 246, 89,\n\t\t224, 18, 28, 153, 18, 75, 167, 243, 192, 232, 68, 48, 58,\n\t\t19, 204, 54, 21, 204, 54, 23, 140, 78, 6, 163, 179, 193, 12,\n\t\t73, 45, 243, 225, 245, 41, 251, 46, 133, 150, 109, 167, 208,\n\t\t52, 150, 222, 90, 134, 250, 50, 128, 205, 205, 21, 75, 46,\n\t\t217, 217, 149, 4, 127, 140, 223, 254, 119, 52, 33, 100, 74,\n\t\t161, 222, 123, 8, 252, 142, 185, 65, 8, 133, 150, 160, 14,\n\t\t230, 26, 39, 141, 230, 236, 114, 235, 245, 201, 151, 60, 215,\n\t\t188, 151, 224, 12, 27, 214, 141, 101, 180, 87, 55, 150, 192,\n\t\t195, 17, 246, 149, 41, 128, 247, 98, 21, 115, 125, 223, 82,\n\t\t114, 63, 12, 142, 61, 37, 216, 56, 99, 75, 195, 166, 53, 180,\n\t\t187, 196, 176, 180, 85, 83, 200, 251, 117, 181, 238, 152,\n\t\t25, 43, 188, 110, 90, 32, 255, 112, 224, 163, 48, 35, 202,\n\t\t179, 71, 35, 55, 63, 218, 233, 63, 127, 54, 191, 61, 255,\n\t\t121, 115, 38, 120, 118, 195, 14, 88, 242, 28, 19, 146, 18,\n\t\t67, 155, 233, 214, 25, 46, 17, 32, 44, 121, 79, 180, 180,\n\t\t80, 219, 228, 66, 154, 83, 63, 50, 142, 16, 243, 187, 0, 170,\n\t\t2, 115, 25, 235, 143, 128, 208, 173, 103, 227, 163, 125, 124,\n\t\t227, 109, 150, 222, 101, 240, 248, 217, 71, 123, 0, 96, 254,\n\t\t15, 124, 97, 111, 223, 119, 33, 252, 198, 122, 254, 16, 32,\n\t\t104, 203, 203, 112, 82, 225, 70, 71, 204, 182, 20, 10, 115,\n\t\t179, 17, 2, 131, 81, 66, 80, 94, 63, 207, 8, 224, 179, 183,\n\t\t24, 141, 150, 15, 168, 170, 33, 230, 15, 70, 84, 185, 150,\n\t\t63, 223, 157, 83, 231, 207, 199, 231, 175, 55, 4, 103, 207,\n\t\t55, 17, 226, 187, 212, 236, 224, 251, 42, 136, 165, 75, 213,\n\t\t180, 133, 69, 49, 196, 67, 55, 192, 54, 162, 69, 133, 11,\n\t\t169, 159, 174, 64, 6, 156, 25, 83, 108, 6, 119, 84, 80, 72,\n\t\t25, 154, 117, 235, 46, 8, 5, 73, 76, 38, 37, 230, 133, 129,\n\t\t7, 42, 183, 166, 190, 138, 239, 28, 230, 88, 233, 32, 253,\n\t\t224, 219, 110, 146, 243, 190, 239, 117, 15, 223, 198, 239,\n\t\t206, 36, 61, 200, 0, 238, 72, 114, 74, 241, 35, 192, 76, 236,\n\t\t127, 69, 3, 142, 235, 14, 204, 8, 62, 70, 192, 37, 146, 3,\n\t\t81, 208, 226, 52, 11, 71, 2, 135, 145, 102, 238, 219, 170,\n\t\t110, 150, 216, 95, 113, 206, 241, 176, 171, 191, 40, 61, 174,\n\t\t35, 154, 100, 149, 29, 197, 9, 95, 19, 50, 36, 44, 20, 81,\n\t\t215, 220, 234, 28, 80, 148, 35, 227, 96, 206, 153, 155, 41,\n\t\t108, 185, 142, 57, 101, 139, 80, 15, 10, 135, 31, 242, 198,\n\t\t48, 125, 188, 56, 165, 34, 217, 156, 39, 207, 132, 178, 213,\n\t\t213, 48, 187, 52, 85, 49, 195, 202, 165, 169, 100, 162, 89,\n\t\t154, 26, 95, 1, 141, 39, 196, 79, 204, 169, 41, 140, 124,\n\t\t208, 23, 26, 125, 227, 104, 146, 145, 168, 21, 228, 250, 106,\n\t\t219, 141, 52, 126, 225, 55, 26, 253, 102, 185, 220, 190, 217,\n\t\t232, 71, 143, 222, 50, 210, 93, 103, 73, 113, 140, 99, 165,\n\t\t186, 230, 21, 245, 155, 25, 220, 200, 51, 176, 34, 40, 112,\n\t\t207, 253, 181, 250, 178, 254, 245, 251, 39, 243, 251, 95,\n\t\t111, 108, 0, 109, 139, 127, 72, 179, 13, 216, 203, 90, 90,\n\t\t156, 70, 209, 201, 207, 104, 21, 227, 135, 38, 133, 56, 48,\n\t\t241, 232, 29, 58, 155, 16, 210, 140, 216, 103, 156, 94, 132,\n\t\t204, 39, 9, 132, 12, 192, 221, 175, 30, 129, 135, 14, 57,\n\t\t52, 149, 231, 253, 35, 44, 45, 54, 139, 135, 78, 8, 252, 174,\n\t\t124, 116, 132, 37, 127, 139, 121, 14, 94, 58, 190, 225, 245,\n\t\t41, 102, 55, 231, 8, 123, 97, 76, 18, 7, 212, 127, 9, 130,\n\t\t28, 192, 100, 79, 1, 96, 204, 91, 144, 146, 134, 210, 123,\n\t\t6, 178, 173, 250, 203, 40, 161, 178, 196, 167, 183, 167, 136,\n\t\t151, 173, 49, 89, 242, 136, 93, 181, 202, 73, 218, 192, 2,\n\t\t248, 208, 228, 151, 253, 235, 4, 13, 82, 91, 177, 195, 135,\n\t\t220, 94, 232, 37, 146, 82, 126, 46, 55, 223, 160, 215, 219,\n\t\t183, 200, 211, 135, 85, 235, 150, 159, 108, 76, 239, 25, 105,\n\t\t229, 104, 203, 168, 88, 174, 111, 222, 181, 106, 139, 180,\n\t\t83, 198, 131, 227, 126, 160, 81, 241, 114, 107, 190, 118,\n\t\t135, 214, 188, 94, 245, 207, 114, 245, 53, 90, 241, 205, 139,\n\t\t174, 71, 101, 63, 166, 251, 150, 140, 193, 217, 134, 244,\n\t\t238, 74, 249, 215, 231, 47, 230, 95, 207, 95, 126, 187, 89,\n\t\t38, 191, 252, 167, 49, 107, 250, 47, 57, 222, 193, 201, 63,\n\t\t125, 16, 112, 252, 116, 139, 228, 207, 183, 187, 230, 151,\n\t\t141, 82, 96, 199, 40, 0, 85, 249, 100, 118, 151, 194, 49,\n\t\t176, 192, 223, 193, 76, 41, 215, 55, 243, 154, 0, 21, 143,\n\t\t223, 93, 243, 167, 221, 181, 150, 221, 167, 45, 56, 93, 212,\n\t\t57, 117, 213, 164, 55, 237, 17, 149, 204, 155, 76, 17, 167,\n\t\t91, 173, 233, 116, 29, 18, 116, 119, 50, 252, 99, 253, 244,\n\t\t229, 151, 79, 95, 205, 31, 199, 151, 47, 55, 130, 243, 31,\n\t\t55, 36, 51, 91, 116, 76, 104, 126, 10, 53, 94, 69, 119, 95,\n\t\t70, 128, 107, 110, 218, 117, 228, 176, 97, 124, 240, 209,\n\t\t129, 180, 71, 14, 30, 19, 64, 226, 93, 180, 115, 184, 142,\n\t\t25, 255, 198, 183, 134, 46, 22, 47, 223, 234, 226, 236, 234,\n\t\t247, 189, 213, 38, 162, 25, 237, 94, 235, 43, 112, 35, 142,\n\t\t161, 94, 85, 7, 11, 214, 235, 147, 75, 117, 174, 72, 11, 5,\n\t\t20, 161, 168, 116, 101, 228, 159, 106, 118, 164, 75, 228,\n\t\t131, 52, 89, 33, 219, 189, 21, 151, 106, 104, 114, 24, 242,\n\t\t81, 9, 230, 188, 68, 233, 23, 61, 89, 135, 97, 72, 67, 8,\n\t\t9, 195, 166, 4, 43, 179, 69, 117, 219, 248, 185, 69, 120,\n\t\t217, 9, 213, 213, 155, 6, 35, 44, 149, 164, 144, 253, 28,\n\t\t219, 97, 81, 207, 131, 66, 56, 250, 198, 180, 162, 222, 196,\n\t\t208, 224, 105, 128, 245, 142, 72, 77, 107, 104, 10, 37, 192,\n\t\t122, 150, 44, 58, 134, 137, 116, 239, 181, 13, 82, 24, 56,\n\t\t150, 10, 111, 183, 125, 225, 6, 122, 24, 52, 132, 66, 144,\n\t\t230, 178, 224, 118, 239, 188, 229, 86, 217, 105, 11, 33, 210,\n\t\t97, 138, 202, 182, 48, 36, 30, 200, 213, 146, 129, 5, 77,\n\t\t3, 138, 113, 44, 60, 21, 227, 33, 114, 167, 90, 219, 171,\n\t\t224, 169, 189, 107, 89, 216, 55, 46, 30, 47, 146, 216, 101,\n\t\t129, 200, 76, 192, 224, 136, 100, 64, 134, 225, 238, 235,\n\t\t135, 227, 43, 86, 219, 101, 215, 6, 6, 113, 11, 244, 160,\n\t\t103, 191, 7, 231, 200, 71, 140, 50, 60, 92, 189, 135, 250,\n\t\t119, 244, 181, 242, 196, 222, 107, 123, 95, 148, 30, 190,\n\t\t71, 150, 222, 149, 40, 47, 47, 255, 52, 191, 124, 122, 190,\n\t\t113, 147, 255, 227, 78, 102, 173, 47, 126, 10, 196, 134, 26,\n\t\t225, 7, 125, 146, 141, 188, 90, 96, 183, 17, 233, 73, 78,\n\t\t145, 39, 30, 174, 181, 204, 16, 185, 109, 75, 196, 229, 191,\n\t\t215, 255, 179, 73, 187, 135, 159, 144, 181, 251, 19, 146,\n\t\t118, 193, 253, 213, 123, 36, 10, 177, 65, 151, 157, 84, 237,\n\t\t185, 178, 171, 85, 96, 73, 111, 5, 226, 223, 203, 159, 52,\n\t\t118, 56, 208, 146, 213, 132, 227, 111, 227, 145, 150, 209,\n\t\t190, 24, 103, 156, 1, 97, 36, 147, 153, 176, 77, 4, 158, 254,\n\t\t228, 5, 139, 147, 228, 3, 39, 16, 139, 125, 122, 98, 158,\n\t\t75, 85, 92, 36, 84, 145, 130, 132, 181, 244, 133, 136, 133,\n\t\t250, 250, 228, 124, 156, 187, 186, 21, 231, 46, 84, 213, 52,\n\t\t45, 121, 38, 22, 63, 107, 30, 77, 140, 35, 32, 118, 78, 107,\n\t\t65, 22, 111, 32, 78, 241, 170, 44, 130, 40, 113, 214, 102,\n\t\t224, 230, 142, 216, 19, 190, 120, 156, 11, 199, 100, 137,\n\t\t179, 19, 84, 238, 254, 202, 161, 203, 69, 210, 36, 111, 13,\n\t\t226, 139, 198, 99, 227, 176, 101, 201, 195, 139, 151, 172,\n\t\t77, 114, 16, 162, 71, 193, 184, 238, 10, 13, 58, 107, 36,\n\t\t208, 200, 139, 181, 119, 71, 150, 7, 222, 199, 175, 212, 198,\n\t\t92, 181, 101, 124, 211, 246, 80, 29, 224, 198, 252, 22, 226,\n\t\t213, 247, 14, 97, 152, 142, 82, 230, 110, 215, 158, 28, 208,\n\t\t124, 147, 211, 48, 30, 126, 146, 126, 227, 254, 109, 171,\n\t\t185, 106, 140, 185, 110, 141, 62, 181, 157, 188, 249, 37,\n\t\t236, 24, 211, 42, 97, 75, 180, 39, 88, 2, 74, 21, 233, 26,\n\t\t115, 213, 28, 29, 242, 125, 10, 204, 69, 111, 191, 145, 62,\n\t\t122, 248, 91, 249, 163, 79, 30, 169, 121, 63, 67, 236, 221,\n\t\t147, 208, 203, 243, 239, 127, 252, 246, 245, 229, 175, 47,\n\t\t183, 34, 250, 62, 14, 253, 7, 104, 76, 31, 91, 119, 178, 253,\n\t\t62, 227, 161, 39, 139, 249, 234, 3, 136, 79, 66, 32, 62, 82,\n\t\t18, 200, 229, 18, 196, 121, 152, 100, 22, 149, 1, 69, 63,\n\t\t103, 224, 77, 184, 66, 91, 68, 144, 136, 73, 239, 1, 36, 178,\n\t\t250, 52, 87, 196, 158, 113, 48, 14, 35, 152, 104, 240, 70,\n\t\t23, 6, 163, 5, 149, 154, 94, 48, 5, 89, 229, 26, 21, 144,\n\t\t57, 101, 204, 36, 22, 16, 44, 8, 100, 40, 194, 211, 57, 62,\n\t\t73, 57, 159, 37, 28, 85, 223, 7, 16, 253, 82, 123, 131, 152,\n\t\t152, 130, 22, 141, 230, 224, 203, 108, 4, 35, 49, 81, 188,\n\t\t245, 69, 250, 69, 70, 63, 105, 244, 138, 145, 110, 97, 175,\n\t\t33, 224, 167, 119, 155, 118, 166, 100, 12, 100, 219, 245,\n\t\t91, 192, 12, 78, 96, 194, 245, 193, 207, 229, 65, 104, 220,\n\t\t242, 124, 19, 121, 251, 143, 79, 195, 224, 210, 236, 156,\n\t\t26, 98, 86, 29, 65, 7, 64, 130, 133, 207, 204, 65, 33, 165,\n\t\t173, 159, 35, 1, 62, 157, 70, 162, 56, 71, 132, 40, 176, 77,\n\t\t151, 190, 54, 25, 34, 19, 60, 188, 109, 216, 73, 188, 205,\n\t\t179, 251, 0, 136, 229, 67, 123, 162, 67, 120, 135, 7, 31,\n\t\t208, 241, 90, 107, 186, 101, 229, 202, 143, 170, 60, 28, 141,\n\t\t43, 121, 203, 96, 27, 174, 104, 202, 23, 186, 162, 123, 159,\n\t\t48, 143, 131, 233, 13, 68, 192, 217, 148, 177, 7, 180, 130,\n\t\t215, 167, 60, 184, 131, 34, 122, 12, 198, 7, 73, 90, 82, 55,\n\t\t116, 101, 24, 219, 146, 4, 3, 182, 10, 92, 149, 3, 29, 209,\n\t\t36, 127, 158, 92, 246, 125, 188, 228, 146, 202, 83, 72, 126,\n\t\t101, 147, 55, 126, 222, 123, 124, 130, 135, 211, 237, 153,\n\t\t87, 232, 93, 169, 7, 131, 105, 53, 148, 12, 118, 238, 247,\n\t\t65, 225, 78, 183, 56, 112, 39, 227, 110, 113, 223, 78, 183,\n\t\t120, 57, 175, 79, 49, 253, 204, 215, 223, 93, 15, 199, 231,\n\t\t207, 55, 9, 255, 203, 77, 200, 201, 166, 251, 58, 76, 107,\n\t\t11, 68, 45, 184, 126, 8, 32, 84, 132, 204, 39, 21, 217, 0,\n\t\t253, 248, 215, 213, 35, 253, 179, 69, 161, 217, 223, 133,\n\t\t224, 176, 171, 183, 1, 39, 122, 160, 165, 130, 4, 204, 78,\n\t\t185, 170, 78, 214, 242, 220, 112, 183, 183, 85, 220, 79, 242,\n\t\t11, 254, 4, 212, 45, 238, 97, 46, 136, 80, 138, 22, 10, 94,\n\t\t28, 23, 242, 182, 62, 105, 242, 28, 38, 36, 1, 32, 254, 124,\n\t\t176, 73, 48, 150, 141, 153, 12, 94, 128, 215, 69, 139, 26,\n\t\t37, 103, 96, 196, 110, 186, 225, 27, 155, 155, 174, 232, 247,\n\t\t182, 204, 51, 92, 164, 240, 121, 253, 144, 119, 129, 161,\n\t\t65, 111, 8, 242, 103, 239, 54, 165, 143, 10, 183, 232, 23,\n\t\t74, 194, 20, 252, 97, 137, 114, 212, 119, 129, 228, 92, 46,\n\t\t83, 228, 121, 73, 57, 212, 103, 229, 250, 216, 79, 225, 105,\n\t\t113, 65, 107, 243, 155, 2, 26, 172, 232, 49, 114, 239, 253,\n\t\t57, 184, 190, 252, 245, 139, 249, 253, 229, 54, 33, 120, 185,\n\t\t65, 52, 220, 153, 116, 162, 159, 235, 212, 40, 180, 150, 40,\n\t\t218, 124, 223, 221, 250, 174, 202, 78, 9, 133, 205, 24, 5,\n\t\t133, 90, 56, 76, 39, 170, 36, 171, 182, 141, 179, 1, 255,\n\t\t29, 225, 126, 52, 244, 239, 119, 241, 16, 68, 50, 44, 182,\n\t\t31, 85, 80, 147, 103, 196, 246, 84, 164, 139, 115, 148, 35,\n\t\t12, 167, 200, 178, 83, 200, 20, 20, 103, 67, 160, 145, 144,\n\t\t240, 173, 128, 100, 70, 253, 68, 20, 122, 109, 122, 14, 58,\n\t\t44, 33, 235, 65, 38, 23, 25, 67, 47, 147, 176, 234, 91, 98,\n\t\t227, 17, 2, 192, 123, 206, 141, 166, 13, 143, 137, 132, 110,\n\t\t202, 245, 5, 23, 216, 118, 54, 218, 48, 247, 29, 193, 17,\n\t\t128, 191, 96, 229, 232, 37, 125, 197, 195, 210, 235, 83, 202,\n\t\t169, 175, 154, 216, 230, 188, 8, 222, 180, 19, 130, 40, 23,\n\t\t97, 134, 82, 83, 202, 96, 75, 224, 210, 147, 192, 92, 83,\n\t\t245, 216, 149, 1, 253, 85, 102, 7, 54, 181, 62, 92, 7, 226,\n\t\t218, 99, 234, 105, 3, 124, 147, 79, 145, 185, 221, 101, 122,\n\t\t130, 127, 158, 208, 93, 208, 170, 99, 215, 41, 166, 209, 167,\n\t\t101, 28, 143, 20, 247, 199, 142, 94, 246, 42, 23, 254, 95,\n\t\t246, 222, 61, 201, 109, 27, 251, 30, 255, 95, 171, 224, 6,\n\t\t128, 2, 46, 222, 139, 232, 69, 56, 76, 207, 200, 191, 97,\n\t\t226, 148, 229, 104, 234, 211, 171, 255, 21, 206, 125, 144,\n\t\t221, 178, 165, 78, 226, 100, 50, 223, 154, 170, 56, 45, 82,\n\t\t34, 9, 226, 113, 113, 159, 231, 200, 3, 204, 48, 133, 203,\n\t\t74, 100, 149, 35, 169, 120, 118, 73, 139, 165, 121, 176, 167,\n\t\t190, 198, 90, 184, 154, 108, 81, 249, 225, 117, 168, 231,\n\t\t226, 65, 50, 109, 150, 43, 162, 180, 70, 209, 185, 163, 242,\n\t\t188, 1, 254, 85, 143, 168, 160, 224, 105, 74, 163, 5, 249,\n\t\t161, 180, 196, 17, 253, 128, 47, 88, 109, 199, 0, 172, 4,\n\t\t86, 182, 212, 35, 166, 212, 16, 60, 211, 215, 253, 41, 86,\n\t\t71, 19, 89, 125, 225, 46, 3, 243, 151, 6, 55, 216, 84, 201,\n\t\t77, 126, 66, 85, 5, 144, 176, 244, 1, 77, 143, 107, 218, 245,\n\t\t76, 76, 193, 99, 25, 77, 187, 170, 104, 99, 230, 164, 24,\n\t\t99, 137, 13, 82, 19, 222, 170, 119, 172, 252, 203, 175, 183,\n\t\t11, 255, 14, 230, 99, 105, 197, 19, 184, 87, 211, 154, 180,\n\t\t216, 62, 2, 83, 93, 236, 59, 49, 39, 237, 196, 224, 249, 193,\n\t\t170, 192, 28, 243, 215, 132, 194, 115, 231, 253, 250, 90,\n\t\t47, 82, 235, 159, 196, 120, 31, 226, 166, 232, 66, 15, 168,\n\t\t210, 199, 153, 119, 148, 212, 174, 11, 60, 17, 226, 82, 108,\n\t\t169, 203, 137, 174, 147, 176, 70, 134, 27, 40, 65, 22, 80,\n\t\t180, 127, 167, 53, 23, 117, 158, 116, 77, 188, 38, 53, 164,\n\t\t194, 156, 16, 174, 214, 117, 152, 45, 202, 214, 3, 224, 126,\n\t\t99, 88, 146, 249, 81, 31, 175, 245, 27, 217, 228, 118, 225,\n\t\t52, 187, 47, 48, 217, 195, 156, 187, 47, 79, 49, 103, 63,\n\t\t173, 219, 236, 199, 129, 100, 69, 62, 16, 237, 22, 0, 19,\n\t\t196, 85, 148, 135, 239, 14, 171, 97, 147, 174, 9, 230, 177,\n\t\t204, 56, 227, 173, 74, 108, 146, 235, 52, 163, 226, 153, 162,\n\t\t45, 74, 95, 185, 164, 29, 76, 137, 83, 128, 155, 69, 233,\n\t\t36, 39, 88, 188, 86, 27, 201, 160, 245, 134, 247, 216, 32,\n\t\t114, 230, 137, 204, 155, 33, 35, 185, 64, 193, 48, 135, 87,\n\t\t180, 237, 178, 48, 208, 22, 54, 201, 195, 133, 101, 115, 135,\n\t\t251, 118, 180, 77, 241, 63, 20, 36, 165, 137, 141, 175, 194,\n\t\t235, 208, 48, 184, 59, 186, 136, 101, 189, 211, 105, 147,\n\t\t22, 45, 242, 160, 85, 27, 116, 108, 15, 238, 164, 199, 34,\n\t\t224, 195, 188, 178, 44, 250, 102, 155, 188, 234, 34, 55, 158,\n\t\t2, 131, 119, 110, 105, 33, 217, 62, 40, 27, 130, 149, 203,\n\t\t75, 211, 102, 147, 100, 51, 228, 41, 190, 147, 249, 56, 60,\n\t\t137, 246, 125, 86, 188, 4, 162, 64, 184, 54, 229, 188, 86,\n\t\t157, 107, 87, 236, 226, 134, 35, 131, 120, 170, 108, 34, 167,\n\t\t117, 74, 95, 118, 143, 232, 148, 139, 49, 251, 118, 56, 44,\n\t\t221, 79, 59, 222, 126, 136, 146, 81, 180, 230, 213, 37, 53,\n\t\t48, 135, 198, 52, 214, 230, 36, 13, 240, 148, 1, 6, 166, 138,\n\t\t51, 71, 178, 89, 186, 40, 132, 61, 235, 199, 53, 205, 69,\n\t\t86, 149, 204, 137, 68, 201, 105, 16, 203, 121, 96, 247, 82,\n\t\t233, 79, 216, 12, 42, 129, 126, 70, 183, 47, 21, 126, 129,\n\t\t57, 181, 116, 122, 218, 70, 208, 36, 85, 157, 217, 216, 12,\n\t\t98, 133, 133, 110, 234, 198, 204, 131, 123, 233, 38, 119,\n\t\t56, 234, 239, 200, 39, 251, 241, 227, 250, 236, 126, 164,\n\t\t112, 35, 71, 111, 136, 25, 114, 87, 57, 58, 55, 153, 86, 150,\n\t\t105, 53, 143, 204, 4, 8, 72, 204, 153, 59, 69, 220, 0, 69,\n\t\t66, 88, 212, 168, 19, 116, 69, 170, 217, 152, 91, 50, 35,\n\t\t208, 193, 49, 162, 182, 115, 194, 8, 96, 31, 225, 204, 203,\n\t\t147, 66, 154, 197, 68, 158, 73, 116, 165, 120, 34, 9, 179,\n\t\t149, 51, 208, 179, 168, 36, 71, 122, 134, 97, 157, 243, 117,\n\t\t26, 121, 29, 204, 65, 70, 241, 151, 128, 140, 163, 180, 56,\n\t\t85, 240, 80, 147, 207, 41, 212, 186, 181, 186, 103, 23, 76,\n\t\t241, 245, 242, 20, 187, 103, 74, 202, 57, 82, 236, 239, 196,\n\t\t149, 90, 3, 225, 104, 126, 223, 133, 164, 152, 212, 239, 81,\n\t\t42, 82, 108, 67, 66, 202, 150, 204, 222, 43, 0, 32, 42, 179,\n\t\t104, 107, 159, 184, 42, 85, 149, 67, 42, 0, 118, 242, 158,\n\t\t198, 128, 60, 47, 79, 99, 72, 140, 170, 51, 160, 100, 23,\n\t\t216, 144, 220, 37, 37, 135, 164, 122, 211, 64, 21, 73, 20,\n\t\t170, 162, 38, 29, 112, 158, 122, 25, 138, 198, 183, 49, 123,\n\t\t108, 92, 198, 156, 69, 83, 113, 106, 226, 252, 201, 138, 19,\n\t\t105, 117, 23, 202, 56, 41, 48, 33, 90, 180, 195, 46, 115,\n\t\t106, 72, 245, 24, 158, 226, 54, 138, 20, 161, 213, 238, 83,\n\t\t95, 147, 143, 72, 251, 45, 114, 131, 46, 100, 12, 90, 99,\n\t\t27, 19, 167, 48, 200, 241, 133, 125, 143, 36, 190, 29, 253,\n\t\t86, 75, 114, 237, 238, 142, 111, 175, 79, 125, 121, 202, 45,\n\t\t249, 49, 109, 140, 224, 199, 74, 90, 137, 36, 114, 80, 135,\n\t\t216, 5, 206, 142, 162, 253, 140, 140, 58, 48, 51, 100, 162,\n\t\t204, 151, 229, 53, 169, 218, 153, 113, 186, 218, 116, 35,\n\t\t214, 198, 54, 208, 156, 50, 147, 123, 42, 145, 125, 165, 37,\n\t\t217, 32, 181, 193, 60, 138, 49, 207, 69, 50, 103, 78, 18,\n\t\t63, 159, 206, 185, 50, 66, 7, 161, 135, 192, 159, 128, 193,\n\t\t150, 251, 214, 134, 199, 13, 166, 189, 92, 201, 138, 151,\n\t\t165, 247, 104, 119, 148, 11, 64, 151, 141, 177, 147, 65, 126,\n\t\t121, 202, 101, 32, 181, 147, 233, 92, 96, 167, 129, 138, 205,\n\t\t35, 13, 131, 217, 90, 139, 212, 66, 145, 9, 120, 64, 64, 111,\n\t\t168, 245, 159, 10, 121, 147, 202, 93, 131, 41, 82, 92, 29,\n\t\t153, 168, 86, 69, 173, 39, 100, 226, 94, 101, 186, 191, 60,\n\t\t165, 134, 130, 7, 147, 23, 197, 151, 57, 209, 75, 241, 125,\n\t\t196, 53, 41, 132, 72, 121, 237, 138, 142, 59, 105, 37, 151,\n\t\t179, 138, 112, 48, 1, 227, 68, 194, 200, 76, 204, 225, 28,\n\t\t67, 240, 57, 109, 142, 255, 50, 174, 110, 155, 106, 129, 156,\n\t\t224, 99, 249, 217, 59, 196, 98, 125, 43, 21, 127, 188, 199,\n\t\t3, 2, 230, 50, 148, 59, 132, 178, 22, 159, 0, 233, 147, 132,\n\t\t103, 207, 212, 253, 40, 128, 34, 198, 167, 202, 48, 201, 40,\n\t\t77, 234, 204, 45, 9, 86, 54, 57, 158, 115, 162, 131, 98, 82,\n\t\t217, 143, 147, 242, 146, 22, 101, 89, 137, 194, 243, 179,\n\t\t103, 72, 243, 29, 167, 86, 61, 90, 68, 198, 111, 239, 107,\n\t\t84, 116, 103, 98, 29, 41, 51, 46, 153, 29, 215, 44, 180, 180,\n\t\t47, 79, 57, 85, 100, 173, 140, 228, 51, 161, 220, 78, 234,\n\t\t145, 173, 126, 156, 211, 191, 2, 187, 157, 242, 126, 102,\n\t\t14, 254, 213, 197, 209, 60, 170, 96, 128, 119, 47, 219, 185,\n\t\t48, 4, 22, 223, 16, 82, 78, 146, 85, 199, 251, 235, 230, 98,\n\t\t33, 100, 221, 13, 2, 105, 50, 235, 15, 92, 183, 44, 108, 140,\n\t\t136, 190, 131, 11, 82, 169, 32, 245, 152, 91, 126, 37, 74,\n\t\t190, 131, 197, 135, 122, 245, 113, 182, 160, 202, 186, 173,\n\t\t82, 1, 30, 3, 191, 164, 54, 120, 182, 119, 139, 3, 175, 11,\n\t\t159, 112, 239, 87, 135, 251, 48, 230, 95, 36, 113, 231, 198,\n\t\t36, 85, 169, 20, 4, 173, 94, 159, 142, 241, 75, 161, 217,\n\t\t43, 12, 94, 173, 43, 114, 85, 155, 62, 44, 12, 125, 231, 148,\n\t\t132, 99, 149, 15, 165, 7, 174, 232, 180, 251, 179, 242, 211,\n\t\t77, 54, 211, 143, 73, 125, 208, 112, 169, 23, 122, 87, 232,\n\t\t226, 21, 77, 208, 27, 74, 6, 78, 241, 78, 44, 110, 217, 95,\n\t\t60, 199, 44, 94, 167, 205, 222, 145, 177, 199, 96, 212, 141,\n\t\t167, 29, 9, 253, 38, 53, 225, 154, 140, 128, 97, 221, 166,\n\t\t209, 129, 252, 6, 226, 124, 132, 115, 17, 208, 14, 20, 220,\n\t\t183, 87, 53, 15, 32, 174, 78, 92, 150, 52, 20, 117, 67, 152,\n\t\t105, 57, 147, 114, 219, 221, 147, 25, 57, 155, 231, 154, 95,\n\t\t78, 72, 118, 78, 225, 30, 231, 198, 31, 241, 127, 62, 77,\n\t\t253, 147, 242, 57, 182, 185, 90, 183, 217, 1, 131, 33, 17,\n\t\t184, 82, 147, 98, 247, 185, 60, 114, 147, 159, 167, 193, 244,\n\t\t192, 51, 31, 5, 168, 105, 247, 228, 221, 191, 223, 163, 68,\n\t\t100, 138, 201, 143, 213, 165, 38, 232, 67, 82, 113, 6, 180,\n\t\t41, 206, 231, 172, 121, 25, 44, 110, 239, 192, 44, 93, 110,\n\t\t3, 3, 154, 217, 145, 24, 244, 157, 65, 159, 223, 151, 50,\n\t\t241, 227, 231, 15, 255, 188, 117, 213, 253, 88, 190, 109,\n\t\t177, 199, 46, 115, 106, 144, 39, 90, 93, 228, 36, 52, 37,\n\t\t29, 166, 204, 139, 51, 42, 28, 205, 52, 26, 98, 104, 160,\n\t\t86, 100, 48, 204, 230, 167, 112, 170, 62, 229, 149, 162, 240,\n\t\t225, 11, 149, 116, 73, 194, 238, 22, 88, 191, 106, 77, 48,\n\t\t117, 120, 71, 68, 26, 240, 220, 114, 123, 147, 100, 129, 204,\n\t\t128, 142, 43, 167, 5, 64, 8, 20, 229, 230, 45, 117, 170, 132,\n\t\t76, 182, 159, 132, 57, 125, 202, 139, 179, 35, 34, 132, 222,\n\t\t179, 1, 129, 8, 199, 108, 3, 116, 59, 239, 155, 179, 245,\n\t\t146, 140, 124, 218, 70, 228, 4, 158, 202, 10, 222, 11, 28,\n\t\t23, 113, 44, 211, 74, 137, 180, 194, 143, 8, 60, 133, 48,\n\t\t123, 163, 74, 184, 14, 196, 251, 83, 67, 170, 89, 99, 45,\n\t\t32, 50, 156, 102, 166, 208, 96, 85, 203, 238, 176, 124, 165,\n\t\t169, 121, 128, 215, 152, 60, 35, 72, 7, 223, 234, 217, 229,\n\t\t49, 124, 0, 240, 33, 167, 36, 241, 160, 67, 148, 247, 253,\n\t\t99, 100, 171, 17, 97, 76, 78, 62, 63, 210, 150, 165, 57, 112,\n\t\t98, 53, 197, 134, 57, 116, 90, 251, 0, 203, 183, 56, 229,\n\t\t40, 117, 95, 226, 82, 178, 236, 72, 41, 251, 184, 212, 32,\n\t\t200, 30, 101, 176, 140, 78, 90, 101, 7, 199, 68, 243, 236,\n\t\t103, 137, 109, 248, 212, 175, 48, 63, 104, 155, 63, 102, 48,\n\t\t208, 140, 242, 61, 128, 114, 132, 99, 61, 113, 217, 141, 237,\n\t\t84, 5, 112, 144, 37, 213, 241, 82, 160, 128, 41, 175, 114,\n\t\t9, 130, 195, 90, 68, 47, 212, 191, 78, 168, 132, 99, 98, 216,\n\t\t134, 226, 43, 50, 203, 229, 248, 76, 169, 249, 92, 0, 232,\n\t\t15, 28, 160, 0, 132, 6, 198, 154, 229, 158, 167, 162, 198,\n\t\t49, 49, 209, 13, 128, 148, 192, 164, 109, 156, 190, 5, 112,\n\t\t208, 198, 63, 95, 61, 239, 181, 216, 138, 98, 44, 135, 19,\n\t\t146, 206, 3, 13, 214, 176, 94, 74, 76, 149, 147, 201, 10,\n\t\t116, 201, 57, 13, 20, 196, 103, 94, 191, 57, 233, 0, 75, 96,\n\t\t159, 106, 106, 71, 121, 249, 180, 71, 106, 174, 156, 77, 198,\n\t\t180, 123, 115, 209, 3, 237, 81, 126, 108, 162, 249, 236, 132,\n\t\t24, 25, 66, 41, 119, 6, 190, 118, 74, 254, 150, 0, 239, 66,\n\t\t70, 194, 182, 48, 249, 13, 227, 108, 50, 216, 36, 127, 113,\n\t\t230, 220, 49, 230, 245, 94, 15, 21, 75, 64, 16, 18, 92, 220,\n\t\t222, 81, 46, 82, 124, 25, 29, 68, 39, 156, 36, 152, 25, 91,\n\t\t253, 229, 41, 247, 225, 99, 95, 82, 7, 12, 61, 212, 110, 70,\n\t\t36, 101, 91, 115, 233, 198, 93, 220, 231, 226, 161, 40, 9,\n\t\t218, 36, 245, 21, 6, 93, 19, 184, 106, 17, 36, 42, 2, 170,\n\t\t45, 117, 244, 153, 161, 147, 98, 127, 12, 224, 240, 227, 231,\n\t\t95, 127, 186, 124, 249, 184, 254, 203, 253, 240, 241, 54,\n\t\t97, 255, 199, 102, 123, 247, 180, 64, 150, 52, 80, 41, 155,\n\t\t178, 0, 39, 37, 1, 204, 42, 1, 250, 5, 130, 16, 144, 92, 121,\n\t\t40, 122, 19, 138, 220, 86, 48, 232, 76, 233, 67, 164, 192,\n\t\t59, 153, 41, 176, 99, 19, 184, 244, 72, 125, 234, 93, 139,\n\t\t86, 75, 175, 46, 7, 206, 3, 192, 7, 166, 175, 14, 66, 134,\n\t\t50, 23, 89, 236, 72, 235, 129, 146, 58, 149, 245, 232, 67,\n\t\t3, 121, 15, 97, 159, 46, 190, 16, 64, 202, 115, 226, 50, 50,\n\t\t7, 230, 192, 105, 19, 215, 224, 243, 136, 100, 103, 152, 135,\n\t\t160, 151, 150, 185, 128, 208, 135, 72, 109, 121, 53, 190,\n\t\t50, 145, 241, 251, 222, 169, 199, 179, 235, 76, 224, 186,\n\t\t161, 85, 172, 57, 114, 13, 255, 20, 74, 77, 145, 122, 4, 9,\n\t\t87, 48, 80, 51, 136, 52, 145, 32, 154, 234, 28, 127, 242,\n\t\t169, 231, 6, 43, 103, 112, 185, 171, 22, 201, 196, 202, 173,\n\t\t181, 19, 68, 62, 19, 151, 251, 166, 185, 190, 82, 129, 230,\n\t\t18, 82, 99, 78, 102, 214, 151, 106, 16, 210, 88, 57, 115,\n\t\t66, 129, 67, 207, 196, 65, 179, 228, 5, 8, 129, 201, 19, 231,\n\t\t180, 100, 42, 210, 230, 91, 163, 130, 13, 12, 162, 93, 113,\n\t\t38, 160, 34, 178, 199, 211, 115, 134, 44, 4, 33, 136, 137,\n\t\t16, 82, 24, 158, 205, 33, 45, 214, 192, 104, 161, 41, 1, 202,\n\t\t248, 20, 235, 165, 10, 137, 83, 17, 143, 203, 240, 173, 197,\n\t\t220, 151, 217, 63, 117, 106, 17, 88, 196, 4, 12, 8, 0, 119,\n\t\t216, 137, 76, 190, 14, 36, 23, 204, 151, 14, 17, 140, 60,\n\t\t129, 90, 154, 82, 24, 187, 254, 155, 191, 39, 0, 187, 162,\n\t\t2, 25, 232, 102, 156, 32, 239, 7, 181, 198, 153, 29, 141,\n\t\t224, 52, 72, 33, 182, 186, 70, 205, 113, 45, 2, 180, 49, 239,\n\t\t222, 216, 46, 98, 46, 164, 57, 78, 243, 23, 117, 203, 194,\n\t\t247, 156, 153, 67, 232, 218, 139, 66, 170, 86, 196, 204, 24,\n\t\t59, 51, 52, 64, 107, 176, 178, 66, 115, 185, 204, 109, 179,\n\t\t247, 134, 237, 115, 202, 117, 176, 154, 182, 56, 23, 73, 169,\n\t\t117, 238, 254, 152, 38, 114, 184, 166, 238, 91, 4, 46, 237,\n\t\t32, 159, 106, 20, 247, 98, 128, 211, 148, 39, 148, 252, 244,\n\t\t254, 202, 254, 245, 231, 127, 62, 127, 69, 153, 177, 26, 28,\n\t\t94, 112, 11, 21, 242, 181, 175, 85, 17, 71, 178, 56, 178,\n\t\t204, 221, 23, 137, 83, 108, 171, 56, 8, 20, 206, 104, 117,\n\t\t32, 249, 225, 92, 30, 87, 52, 187, 7, 20, 67, 3, 208, 37,\n\t\t108, 88, 58, 170, 2, 138, 1, 192, 51, 76, 136, 166, 164, 238,\n\t\t109, 183, 80, 164, 46, 169, 40, 208, 9, 159, 57, 187, 209,\n\t\t32, 75, 86, 99, 88, 98, 209, 141, 82, 156, 38, 149, 219, 64,\n\t\t65, 47, 2, 93, 26, 71, 59, 173, 81, 42, 201, 168, 240, 240,\n\t\t197, 232, 91, 108, 125, 169, 5, 19, 125, 206, 4, 166, 208,\n\t\t25, 172, 50, 37, 33, 38, 235, 234, 252, 97, 234, 14, 99, 15,\n\t\t155, 234, 199, 52, 203, 148, 73, 57, 197, 49, 45, 178, 156,\n\t\t195, 58, 116, 71, 35, 225, 74, 138, 73, 233, 194, 196, 69,\n\t\t28, 131, 242, 190, 70, 65, 93, 74, 123, 73, 114, 6, 23, 46,\n\t\t205, 101, 39, 172, 246, 92, 220, 223, 247, 248, 155, 248,\n\t\t149, 138, 118, 22, 159, 57, 79, 169, 218, 67, 232, 39, 20,\n\t\t211, 132, 28, 95, 203, 44, 242, 35, 183, 180, 100, 223, 50,\n\t\t197, 177, 95, 47, 151, 239, 141, 208, 54, 36, 113, 211, 117,\n\t\t16, 1, 229, 37, 10, 224, 24, 176, 201, 237, 37, 228, 29, 86,\n\t\t18, 182, 253, 34, 54, 119, 142, 200, 0, 95, 250, 156, 255,\n\t\t200, 225, 238, 151, 76, 2, 235, 68, 66, 67, 162, 95, 185,\n\t\t110, 252, 136, 15, 236, 193, 250, 48, 177, 232, 116, 118,\n\t\t83, 18, 221, 53, 55, 94, 209, 108, 222, 164, 178, 13, 161,\n\t\t71, 124, 203, 146, 249, 59, 26, 243, 125, 218, 210, 135, 79,\n\t\t113, 73, 177, 248, 218, 78, 171, 98, 4, 184, 166, 78, 102,\n\t\t102, 224, 79, 226, 155, 225, 34, 66, 203, 92, 29, 168, 97,\n\t\t5, 22, 191, 132, 64, 162, 44, 201, 125, 77, 87, 184, 54, 34,\n\t\t59, 8, 16, 220, 16, 21, 84, 125, 214, 26, 182, 170, 2, 195,\n\t\t62, 117, 121, 102, 95, 39, 158, 29, 8, 58, 193, 75, 80, 162,\n\t\t144, 175, 171, 155, 121, 87, 66, 5, 149, 81, 211, 93, 102,\n\t\t139, 48, 163, 40, 193, 179, 115, 90, 177, 94, 115, 159, 38,\n\t\t14, 234, 235, 243, 156, 123, 115, 50, 53, 160, 58, 45, 45,\n\t\t138, 254, 58, 96, 72, 173, 93, 204, 153, 172, 236, 252, 157,\n\t\t151, 105, 96, 207, 50, 114, 1, 25, 15, 165, 67, 115, 44, 47,\n\t\t79, 83, 105, 137, 92, 113, 52, 229, 14, 94, 75, 176, 7, 96,\n\t\t140, 48, 148, 168, 150, 32, 178, 212, 89, 93, 20, 120, 155,\n\t\t161, 219, 111, 154, 198, 80, 198, 19, 57, 253, 75, 229, 155,\n\t\t137, 55, 18, 110, 186, 169, 135, 133, 206, 204, 90, 240, 83,\n\t\t231, 106, 194, 83, 100, 231, 105, 235, 130, 192, 91, 162,\n\t\t111, 53, 180, 181, 239, 10, 60, 3, 70, 117, 65, 123, 16, 225,\n\t\t162, 242, 199, 213, 157, 108, 58, 165, 204, 68, 18, 192, 67,\n\t\t247, 216, 182, 106, 18, 108, 109, 245, 130, 170, 128, 51,\n\t\t226, 59, 163, 27, 219, 133, 47, 11, 205, 93, 138, 234, 25,\n\t\t19, 190, 47, 79, 185, 36, 84, 108, 150, 105, 209, 174, 85,\n\t\t70, 218, 53, 65, 226, 76, 6, 73, 210, 225, 28, 179, 186, 19,\n\t\t4, 64, 195, 232, 39, 158, 47, 12, 47, 163, 19, 166, 42, 208,\n\t\t74, 214, 251, 69, 197, 156, 34, 5, 186, 36, 161, 168, 148,\n\t\t105, 135, 124, 82, 12, 253, 190, 227, 4, 223, 0, 36, 175,\n\t\t203, 100, 182, 126, 158, 176, 233, 93, 69, 184, 106, 26, 208,\n\t\t220, 74, 24, 254, 144, 100, 219, 177, 74, 70, 174, 163, 217,\n\t\t146, 128, 132, 14, 142, 20, 175, 154, 209, 217, 37, 44, 162,\n\t\t4, 206, 40, 41, 146, 238, 158, 211, 78, 102, 221, 105, 69,\n\t\t205, 100, 98, 139, 191, 247, 212, 23, 116, 92, 46, 200, 213,\n\t\t194, 148, 215, 169, 237, 100, 110, 191, 192, 65, 246, 61,\n\t\t4, 226, 119, 145, 65, 240, 214, 61, 150, 135, 167, 191, 164,\n\t\t49, 28, 201, 153, 27, 208, 90, 36, 46, 16, 176, 240, 51, 111,\n\t\t103, 240, 18, 235, 206, 93, 245, 227, 5, 190, 2, 246, 101,\n\t\t107, 245, 80, 181, 8, 197, 213, 209, 52, 66, 250, 250, 7,\n\t\t136, 83, 78, 87, 190, 199, 203, 19, 88, 45, 167, 246, 218,\n\t\t128, 102, 138, 55, 160, 61, 20, 29, 89, 133, 192, 156, 74,\n\t\t180, 16, 215, 130, 95, 29, 117, 242, 60, 160, 191, 183, 9,\n\t\t215, 169, 192, 245, 6, 224, 15, 84, 147, 213, 12, 173, 182,\n\t\t115, 105, 26, 195, 162, 144, 210, 0, 40, 180, 72, 34, 88,\n\t\t148, 210, 8, 220, 225, 97, 35, 78, 119, 91, 129, 23, 185,\n\t\t171, 145, 254, 227, 227, 246, 236, 214, 203, 245, 70, 37,\n\t\t189, 169, 119, 61, 144, 251, 82, 94, 4, 38, 61, 38, 205, 17,\n\t\t145, 0, 188, 33, 241, 159, 99, 130, 227, 216, 176, 161, 45,\n\t\t111, 41, 4, 122, 141, 15, 157, 146, 84, 124, 143, 87, 21,\n\t\t223, 250, 59, 202, 215, 92, 181, 230, 123, 72, 205, 119, 56,\n\t\t214, 124, 83, 8, 87, 23, 83, 101, 120, 139, 88, 251, 21, 105,\n\t\t200, 55, 29, 199, 221, 114, 118, 157, 137, 174, 131, 208,\n\t\t248, 50, 113, 53, 199, 141, 140, 188, 154, 169, 164, 245,\n\t\t103, 199, 239, 133, 48, 187, 175, 123, 199, 247, 35, 239,\n\t\t203, 227, 135, 255, 129, 4, 255, 111, 62, 117, 206, 118, 242,\n\t\t212, 150, 154, 87, 74, 236, 44, 12, 211, 82, 203, 7, 79, 26,\n\t\t152, 122, 231, 55, 137, 85, 106, 78, 254, 82, 184, 43, 37,\n\t\t119, 9, 59, 231, 41, 46, 162, 174, 33, 52, 65, 39, 139, 204,\n\t\t194, 50, 55, 100, 246, 210, 40, 68, 176, 69, 220, 201, 146,\n\t\t237, 229, 4, 207, 245, 204, 113, 117, 156, 201, 66, 163, 166,\n\t\t0, 210, 49, 112, 54, 190, 28, 159, 231, 74, 173, 163, 252,\n\t\t206, 94, 6, 42, 232, 9, 169, 185, 2, 6, 237, 144, 204, 13,\n\t\t213, 75, 98, 14, 251, 25, 233, 14, 76, 85, 233, 142, 124,\n\t\t208, 177, 208, 29, 218, 27, 78, 187, 67, 123, 195, 105, 119,\n\t\t104, 111, 24, 98, 178, 229, 31, 104, 119, 28, 18, 18, 180,\n\t\t59, 156, 246, 135, 211, 14, 217, 33, 181, 181, 75, 244, 12,\n\t\t191, 22, 32, 201, 30, 20, 235, 190, 98, 158, 186, 169, 214,\n\t\t229, 155, 48, 248, 92, 68, 43, 190, 221, 143, 143, 202, 141,\n\t\t41, 168, 55, 215, 165, 194, 32, 119, 145, 84, 251, 237, 236,\n\t\t105, 79, 85, 106, 75, 7, 3, 20, 174, 201, 88, 30, 60, 112,\n\t\t188, 132, 130, 178, 104, 26, 65, 20, 221, 71, 78, 92, 36,\n\t\t141, 44, 202, 152, 232, 247, 242, 245, 105, 213, 252, 68,\n\t\t77, 120, 209, 7, 22, 78, 84, 176, 99, 121, 254, 117, 111,\n\t\t244, 119, 121, 113, 10, 10, 123, 173, 105, 67, 129, 169, 184,\n\t\t177, 221, 22, 148, 253, 142, 149, 145, 225, 24, 212, 0, 160,\n\t\t61, 232, 24, 137, 91, 195, 123, 51, 127, 166, 109, 123, 121,\n\t\t74, 173, 45, 41, 167, 53, 115, 117, 85, 89, 196, 45, 139,\n\t\t44, 96, 40, 84, 83, 247, 58, 93, 29, 187, 125, 34, 227, 158,\n\t\t34, 3, 158, 79, 220, 97, 211, 185, 191, 37, 92, 190, 184,\n\t\t207, 31, 62, 94, 158, 111, 74, 160, 126, 124, 190, 71, 249,\n\t\t94, 64, 21, 212, 145, 26, 207, 20, 229, 96, 245, 30, 221,\n\t\t16, 179, 57, 5, 192, 116, 68, 161, 236, 118, 196, 193, 250,\n\t\t107, 204, 83, 109, 127, 45, 254, 216, 67, 174, 226, 239, 161,\n\t\t242, 19, 115, 126, 121, 74, 29, 76, 63, 113, 144, 15, 113,\n\t\t59, 216, 101, 189, 99, 215, 7, 217, 71, 12, 45, 19, 54, 49,\n\t\t138, 126, 20, 225, 148, 226, 172, 8, 128, 9, 51, 7, 60, 231,\n\t\t179, 212, 6, 43, 109, 83, 0, 113, 65, 18, 31, 99, 118, 127,\n\t\t242, 72, 235, 156, 239, 223, 6, 131, 214, 84, 95, 22, 217,\n\t\t59, 192, 214, 161, 104, 171, 236, 70, 153, 54, 190, 240, 164,\n\t\t51, 179, 140, 158, 24, 1, 151, 92, 91, 131, 21, 183, 106,\n\t\t206, 145, 83, 62, 180, 32, 161, 51, 210, 138, 20, 253, 136,\n\t\t202, 28, 134, 238, 145, 124, 221, 14, 142, 56, 14, 196, 36,\n\t\t196, 239, 231, 35, 214, 174, 234, 125, 211, 164, 151, 33,\n\t\t242, 63, 10, 9, 67, 218, 63, 159, 231, 54, 168, 126, 33, 16,\n\t\t2, 16, 51, 200, 243, 58, 37, 46, 60, 82, 32, 248, 181, 89,\n\t\t190, 73, 149, 157, 67, 139, 112, 169, 115, 253, 205, 17, 0,\n\t\t23, 38, 19, 92, 236, 208, 184, 167, 205, 204, 14, 108, 225,\n\t\t99, 195, 111, 144, 15, 154, 155, 68, 28, 10, 179, 167, 111,\n\t\t48, 13, 144, 143, 35, 248, 252, 128, 43, 202, 20, 225, 118,\n\t\t242, 49, 2, 55, 74, 209, 246, 146, 86, 67, 218, 153, 236,\n\t\t115, 170, 69, 182, 120, 159, 106, 34, 164, 7, 140, 90, 251,\n\t\t14, 184, 152, 124, 169, 41, 35, 219, 170, 150, 148, 0, 233,\n\t\t206, 205, 232, 28, 239, 0, 152, 125, 76, 224, 163, 109, 57,\n\t\t82, 4, 97, 231, 232, 245, 240, 240, 249, 164, 82, 138, 157,\n\t\t88, 245, 113, 1, 104, 128, 185, 37, 123, 240, 124, 76, 78,\n\t\t120, 108, 206, 101, 211, 87, 212, 55, 76, 82, 34, 150, 27,\n\t\t171, 141, 37, 114, 20, 163, 5, 118, 10, 15, 73, 10, 107, 36,\n\t\t228, 215, 89, 177, 255, 49, 231, 105, 218, 192, 28, 166, 81,\n\t\t220, 88, 61, 102, 170, 65, 78, 18, 62, 202, 67, 246, 59, 237,\n\t\t74, 94, 63, 163, 104, 107, 90, 198, 115, 134, 227, 169, 1,\n\t\t163, 83, 234, 224, 144, 7, 111, 171, 114, 34, 51, 74, 224,\n\t\t149, 49, 115, 115, 195, 194, 134, 227, 79, 125, 38, 96, 172,\n\t\t22, 0, 133, 49, 178, 30, 3, 180, 59, 230, 8, 192, 0, 158,\n\t\t209, 53, 113, 172, 98, 71, 13, 72, 18, 222, 147, 15, 47, 79,\n\t\t169, 68, 175, 9, 111, 64, 38, 225, 192, 172, 230, 76, 65,\n\t\t96, 243, 174, 33, 169, 146, 137, 244, 51, 178, 23, 56, 136,\n\t\t254, 77, 205, 235, 177, 232, 137, 13, 8, 107, 136, 254, 63,\n\t\t10, 221, 83, 255, 99, 207, 162, 254, 14, 35, 47, 209, 203,\n\t\t83, 140, 209, 143, 241, 158, 38, 213, 240, 199, 154, 84, 223,\n\t\t133, 160, 119, 119, 235, 249, 231, 249, 211, 229, 166, 96,\n\t\t242, 153, 190, 189, 233, 196, 94, 125, 92, 114, 158, 50, 106,\n\t\t141, 1, 206, 243, 36, 185, 109, 113, 52, 63, 152, 49, 11,\n\t\t9, 76, 124, 136, 242, 134, 120, 117, 212, 230, 108, 89, 131,\n\t\t176, 147, 8, 106, 70, 40, 123, 168, 253, 128, 243, 37, 201,\n\t\t41, 192, 245, 38, 174, 130, 45, 137, 161, 160, 56, 132, 155,\n\t\t197, 135, 133, 77, 93, 129, 235, 166, 244, 99, 56, 112, 166,\n\t\t5, 222, 16, 112, 44, 108, 70, 72, 140, 248, 45, 229, 144,\n\t\t122, 13, 203, 30, 249, 12, 136, 102, 49, 151, 60, 175, 15,\n\t\t248, 150, 217, 173, 221, 44, 114, 219, 56, 84, 108, 39, 40,\n\t\t177, 222, 122, 184, 220, 201, 245, 239, 126, 172, 52, 215,\n\t\t90, 91, 100, 243, 80, 215, 225, 148, 217, 37, 28, 166, 146,\n\t\t190, 178, 189, 177, 246, 152, 179, 46, 67, 116, 123, 112,\n\t\t41, 58, 156, 125, 123, 63, 107, 239, 24, 230, 27, 247, 251,\n\t\t149, 230, 26, 39, 54, 86, 192, 228, 218, 163, 50, 24, 84,\n\t\t223, 227, 194, 179, 32, 142, 225, 135, 216, 128, 115, 186,\n\t\t255, 89, 72, 73, 165, 254, 137, 183, 191, 183, 58, 206, 31,\n\t\t126, 250, 233, 249, 166, 122, 242, 249, 78, 209, 154, 176,\n\t\t116, 81, 201, 62, 124, 131, 94, 171, 49, 2, 48, 73, 200, 86,\n\t\t200, 165, 54, 39, 170, 8, 170, 89, 74, 156, 34, 255, 125,\n\t\t115, 70, 201, 163, 228, 212, 123, 136, 173, 52, 149, 37, 130,\n\t\t102, 190, 34, 196, 207, 137, 30, 252, 247, 132, 26, 67, 158,\n\t\t34, 101, 94, 210, 43, 234, 233, 184, 66, 99, 103, 171, 175,\n\t\t226, 82, 143, 28, 174, 217, 92, 30, 72, 232, 65, 228, 59,\n\t\t73, 173, 21, 207, 27, 98, 171, 173, 0, 223, 158, 19, 148,\n\t\t113, 152, 139, 167, 114, 197, 231, 189, 11, 112, 114, 173,\n\t\t172, 64, 45, 85, 212, 164, 88, 147, 239, 118, 68, 115, 67,\n\t\t236, 140, 112, 54, 95, 149, 175, 49, 77, 127, 254, 33, 9,\n\t\t183, 207, 229, 168, 118, 128, 196, 135, 185, 225, 155, 190,\n\t\t183, 118, 192, 105, 147, 46, 209, 149, 240, 134, 177, 107,\n\t\t142, 128, 49, 118, 161, 255, 95, 158, 168, 103, 20, 149, 215,\n\t\t225, 169, 110, 218, 3, 78, 187, 32, 249, 194, 194, 77, 157,\n\t\t167, 77, 168, 137, 192, 207, 26, 21, 183, 111, 112, 204, 97,\n\t\t115, 148, 144, 78, 10, 237, 22, 251, 126, 18, 219, 142, 52,\n\t\t179, 186, 106, 68, 67, 85, 2, 212, 114, 48, 81, 16, 146, 83,\n\t\t160, 0, 35, 189, 9, 127, 37, 5, 107, 110, 225, 197, 18, 51,\n\t\t105, 164, 69, 46, 59, 109, 243, 89, 17, 12, 189, 221, 199,\n\t\t182, 99, 67, 101, 145, 50, 85, 107, 253, 145, 103, 63, 204,\n\t\t203, 29, 185, 46, 251, 254, 18, 250, 249, 215, 127, 125, 188,\n\t\t69, 189, 127, 190, 1, 243, 218, 211, 201, 40, 17, 172, 26,\n\t\t38, 243, 53, 95, 196, 91, 54, 95, 10, 172, 69, 0, 104, 230,\n\t\t171, 116, 192, 83, 55, 232, 223, 235, 86, 105, 124, 183, 86,\n\t\t161, 28, 28, 183, 58, 253, 225, 123, 149, 60, 151, 109, 120,\n\t\t215, 175, 239, 182, 253, 229, 9, 1, 134, 239, 243, 134, 149,\n\t\t112, 171, 187, 26, 204, 201, 210, 40, 239, 213, 239, 51, 203,\n\t\t36, 48, 57, 91, 125, 87, 214, 236, 125, 133, 40, 199, 71,\n\t\t142, 248, 251, 254, 192, 216, 170, 34, 131, 222, 7, 214, 123,\n\t\t160, 222, 158, 222, 161, 224, 197, 87, 0, 93, 183, 155, 23,\n\t\t96, 74, 227, 248, 131, 90, 244, 192, 125, 238, 108, 175, 143,\n\t\t21, 245, 151, 167, 26, 24, 51, 240, 53, 213, 95, 84, 253,\n\t\t34, 79, 227, 124, 222, 254, 116, 161, 188, 20, 245, 115, 218,\n\t\t199, 121, 214, 37, 201, 248, 156, 159, 229, 188, 168, 139,\n\t\t141, 51, 48, 5, 149, 180, 106, 116, 44, 219, 193, 203, 19,\n\t\t90, 250, 248, 249, 127, 222, 227, 195, 194, 36, 14, 255, 161,\n\t\t6, 8, 110, 195, 127, 234, 249, 39, 196, 126, 254, 131, 13,\n\t\t96, 104, 176, 239, 254, 252, 211, 251, 27, 144, 195, 159,\n\t\t209, 128, 223, 240, 252, 154, 255, 192, 243, 79, 127, 188,\n\t\t1, 133, 222, 39, 3, 254, 164, 14, 184, 175, 134, 124, 113,\n\t\t255, 254, 248, 242, 225, 243, 141, 135, 245, 185, 31, 43,\n\t\t51, 30, 133, 157, 223, 181, 195, 40, 253, 206, 239, 220, 97,\n\t\t114, 15, 47, 79, 113, 208, 82, 243, 22, 1, 156, 120, 118,\n\t\t49, 231, 45, 70, 36, 146, 83, 30, 30, 165, 225, 40, 167, 164,\n\t\t232, 99, 141, 17, 121, 129, 37, 151, 37, 11, 48, 125, 1, 179,\n\t\t100, 25, 208, 220, 182, 216, 155, 47, 29, 89, 217, 113, 108,\n\t\t202, 29, 177, 160, 72, 111, 218, 121, 46, 50, 145, 11, 114,\n\t\t95, 18, 7, 232, 61, 113, 222, 105, 204, 158, 45, 21, 59, 67,\n\t\t193, 83, 230, 189, 169, 121, 18, 243, 83, 185, 72, 187, 47,\n\t\t57, 115, 62, 84, 131, 71, 183, 76, 203, 116, 235, 85, 145,\n\t\t67, 67, 244, 53, 157, 29, 133, 62, 223, 46, 1, 205, 39, 209,\n\t\t230, 228, 79, 194, 123, 195, 96, 155, 127, 107, 62, 24, 129,\n\t\t189, 243, 23, 177, 110, 242, 135, 251, 71, 110, 52, 247, 173,\n\t\t138, 95, 204, 63, 56, 119, 127, 82, 124, 252, 215, 199, 91,\n\t\t224, 225, 231, 245, 219, 222, 143, 30, 108, 50, 195, 119,\n\t\t177, 165, 44, 128, 164, 169, 123, 162, 184, 21, 141, 57, 203,\n\t\t7, 0, 138, 42, 57, 107, 240, 163, 173, 46, 129, 62, 60, 114,\n\t\t199, 42, 99, 173, 164, 108, 103, 241, 136, 164, 40, 10, 145,\n\t\t156, 65, 90, 13, 244, 171, 176, 3, 110, 25, 161, 151, 147,\n\t\t170, 112, 52, 46, 162, 38, 171, 137, 29, 166, 249, 116, 212,\n\t\t216, 241, 77, 2, 200, 58, 205, 10, 18, 54, 188, 30, 166, 17,\n\t\t63, 4, 82, 53, 182, 232, 251, 56, 161, 150, 151, 83, 53, 186,\n\t\t122, 40, 145, 193, 139, 28, 188, 105, 203, 32, 199, 138, 125,\n\t\t203, 98, 197, 108, 174, 38, 195, 103, 165, 2, 32, 27, 60,\n\t\t158, 124, 228, 252, 200, 152, 217, 247, 28, 131, 213, 62,\n\t\t72, 172, 111, 48, 97, 50, 73, 194, 237, 232, 156, 238, 24,\n\t\t57, 101, 29, 72, 130, 200, 184, 45, 76, 63, 85, 37, 209, 116,\n\t\t8, 123, 109, 97, 47, 204, 170, 79, 116, 250, 72, 125, 162,\n\t\t211, 71, 234, 19, 157, 60, 242, 229, 41, 177, 141, 112, 250,\n\t\t214, 210, 47, 138, 242, 138, 245, 31, 60, 139, 164, 251, 50,\n\t\t224, 161, 146, 121, 32, 174, 224, 170, 57, 77, 197, 159, 74,\n\t\t151, 22, 130, 16, 231, 255, 32, 21, 127, 116, 230, 81, 68,\n\t\t89, 156, 252, 101, 154, 66, 88, 151, 109, 192, 5, 140, 36,\n\t\t238, 200, 25, 241, 46, 192, 163, 28, 128, 29, 152, 43, 211,\n\t\t133, 161, 104, 3, 28, 62, 59, 189, 67, 20, 219, 51, 87, 9,\n\t\t8, 200, 135, 53, 146, 178, 5, 203, 7, 182, 217, 17, 165, 1,\n\t\t219, 0, 31, 178, 13, 15, 144, 130, 114, 84, 88, 223, 186,\n\t\t95, 150, 175, 67, 68, 95, 113, 225, 230, 186, 188, 190, 252,\n\t\t229, 28, 167, 212, 19, 100, 9, 215, 163, 39, 228, 187, 198,\n\t\t226, 83, 44, 121, 63, 1, 191, 70, 130, 131, 150, 124, 108,\n\t\t212, 203, 18, 124, 166, 214, 144, 134, 87, 115, 203, 21, 139,\n\t\t131, 33, 249, 124, 43, 165, 215, 141, 170, 76, 189, 208, 124,\n\t\t163, 184, 86, 41, 57, 152, 86, 117, 28, 13, 112, 145, 112,\n\t\t70, 72, 253, 101, 105, 130, 201, 203, 199, 107, 44, 10, 214,\n\t\t146, 164, 50, 201, 85, 9, 211, 228, 168, 233, 252, 13, 247,\n\t\t154, 61, 203, 98, 65, 62, 156, 83, 246, 173, 112, 68, 253,\n\t\t219, 150, 134, 164, 252, 0, 130, 247, 117, 250, 196, 235,\n\t\t236, 136, 211, 69, 143, 57, 89, 34, 247, 203, 49, 197, 130,\n\t\t211, 39, 46, 111, 83, 46, 230, 191, 7, 226, 241, 151, 95,\n\t\t62, 221, 72, 199, 155, 52, 149, 3, 112, 75, 143, 126, 106,\n\t\t161, 37, 250, 190, 166, 44, 115, 39, 176, 28, 65, 108, 152,\n\t\t61, 25, 41, 177, 188, 179, 19, 181, 161, 87, 192, 169, 8,\n\t\t1, 246, 96, 18, 189, 111, 31, 126, 8, 180, 151, 132, 66, 19,\n\t\t240, 120, 15, 111, 247, 184, 154, 175, 5, 223, 198, 234, 146,\n\t\t2, 49, 90, 221, 93, 83, 119, 48, 17, 103, 156, 74, 157, 77,\n\t\t27, 151, 185, 112, 33, 145, 187, 210, 51, 207, 47, 241, 221,\n\t\t213, 241, 13, 223, 209, 178, 199, 194, 102, 78, 180, 46, 153,\n\t\t247, 168, 206, 139, 53, 48, 250, 80, 13, 167, 53, 15, 222,\n\t\t164, 2, 2, 246, 74, 177, 201, 48, 1, 196, 37, 39, 211, 178,\n\t\t189, 230, 206, 44, 138, 223, 164, 108, 143, 245, 46, 113,\n\t\t125, 100, 103, 22, 10, 174, 242, 216, 211, 75, 246, 72, 17,\n\t\t227, 117, 35, 80, 132, 143, 107, 26, 76, 93, 30, 150, 150,\n\t\t196, 188, 158, 155, 34, 80, 3, 187, 208, 64, 204, 137, 52,\n\t\t229, 21, 73, 129, 218, 144, 52, 210, 220, 57, 55, 151, 42,\n\t\t151, 20, 54, 5, 60, 99, 9, 243, 114, 2, 162, 224, 127, 6,\n\t\t152, 239, 252, 233, 243, 229, 166, 212, 232, 31, 55, 192,\n\t\t124, 71, 215, 114, 241, 131, 150, 212, 162, 207, 219, 94,\n\t\t67, 238, 90, 243, 45, 34, 192, 206, 92, 130, 88, 60, 90, 201,\n\t\t60, 124, 136, 168, 15, 155, 27, 107, 139, 146, 193, 140, 8,\n\t\t59, 13, 20, 172, 77, 125, 201, 11, 93, 94, 130, 91, 26, 229,\n\t\t47, 82, 125, 170, 105, 70, 41, 129, 116, 192, 179, 51, 53,\n\t\t247, 129, 218, 152, 212, 80, 122, 44, 78, 212, 100, 37, 226,\n\t\t232, 194, 41, 9, 175, 140, 159, 217, 226, 122, 224, 74, 115,\n\t\t22, 31, 69, 60, 34, 180, 14, 56, 37, 40, 25, 244, 250, 28,\n\t\t35, 145, 192, 6, 51, 33, 139, 68, 35, 128, 62, 40, 227, 255,\n\t\t20, 10, 77, 19, 13, 226, 236, 143, 119, 208, 250, 60, 92,\n\t\t52, 177, 4, 159, 55, 23, 83, 242, 146, 182, 8, 134, 35, 75,\n\t\t34, 172, 28, 231, 156, 251, 136, 4, 173, 194, 84, 94, 86,\n\t\t82, 162, 243, 24, 4, 178, 171, 24, 209, 249, 80, 170, 155,\n\t\t34, 51, 87, 206, 156, 93, 45, 24, 177, 243, 27, 138, 185,\n\t\t234, 187, 210, 208, 105, 1, 83, 49, 65, 81, 124, 9, 189, 35,\n\t\t125, 151, 105, 114, 184, 166, 114, 42, 69, 89, 56, 215, 3,\n\t\t106, 107, 52, 11, 121, 170, 62, 83, 45, 140, 17, 218, 249,\n\t\t225, 68, 97, 199, 49, 10, 241, 153, 136, 208, 119, 42, 132,\n\t\t218, 161, 58, 183, 20, 143, 228, 13, 40, 30, 208, 210, 176,\n\t\t92, 43, 131, 219, 172, 240, 229, 7, 6, 162, 231, 247, 74,\n\t\t97, 106, 136, 153, 68, 247, 229, 195, 202, 47, 203, 219, 180,\n\t\t164, 169, 128, 132, 50, 206, 229, 206, 41, 3, 129, 21, 184,\n\t\t180, 52, 206, 109, 95, 221, 216, 171, 100, 164, 136, 55, 234,\n\t\t110, 26, 59, 80, 240, 237, 56, 69, 20, 242, 95, 93, 121, 135,\n\t\t60, 127, 168, 162, 225, 38, 153, 163, 104, 75, 18, 116, 151,\n\t\t222, 249, 191, 171, 19, 98, 253, 53, 10, 68, 25, 22, 214,\n\t\t24, 75, 78, 172, 28, 165, 196, 154, 103, 179, 143, 167, 115,\n\t\t44, 195, 195, 93, 215, 164, 134, 175, 72, 162, 197, 17, 78,\n\t\t51, 198, 225, 129, 17, 197, 16, 36, 83, 67, 24, 200, 95, 117,\n\t\t154, 239, 223, 20, 107, 99, 48, 92, 194, 84, 214, 133, 200,\n\t\t32, 74, 213, 21, 240, 95, 120, 157, 167, 157, 184, 133, 233,\n\t\t59, 19, 103, 220, 173, 69, 213, 114, 133, 168, 24, 7, 22,\n\t\t83, 174, 137, 145, 157, 26, 182, 202, 90, 180, 40, 179, 8,\n\t\t181, 125, 231, 209, 195, 83, 177, 89, 119, 205, 216, 18, 136,\n\t\t202, 151, 167, 50, 69, 209, 212, 9, 232, 244, 31, 17, 178,\n\t\t191, 94, 158, 221, 143, 31, 126, 250, 240, 207, 91, 89, 123,\n\t\t3, 18, 178, 203, 90, 154, 123, 16, 100, 222, 70, 115, 110,\n\t\t195, 216, 1, 66, 76, 212, 60, 203, 40, 125, 150, 164, 222,\n\t\t193, 145, 213, 46, 8, 210, 11, 227, 151, 209, 213, 197, 158,\n\t\t253, 59, 182, 241, 216, 42, 172, 243, 52, 88, 49, 45, 5, 160,\n\t\t23, 97, 90, 48, 176, 137, 99, 238, 32, 212, 77, 115, 190,\n\t\t111, 53, 120, 41, 22, 139, 3, 182, 167, 147, 159, 78, 187,\n\t\t57, 105, 108, 189, 17, 236, 187, 179, 139, 115, 143, 79, 247,\n\t\t167, 252, 233, 138, 166, 206, 183, 148, 250, 112, 142, 42,\n\t\t91, 97, 3, 39, 96, 150, 41, 131, 144, 119, 148, 184, 76, 235,\n\t\t229, 169, 96, 66, 47, 20, 163, 111, 52, 85, 105, 4, 156, 21,\n\t\t4, 189, 161, 240, 145, 87, 110, 224, 44, 117, 174, 128, 1,\n\t\t224, 86, 31, 29, 153, 174, 146, 191, 154, 132, 244, 169, 232,\n\t\t186, 175, 12, 212, 196, 87, 163, 246, 186, 233, 196, 37, 82,\n\t\t120, 64, 11, 127, 211, 180, 8, 23, 10, 52, 247, 187, 85, 129,\n\t\t155, 20, 26, 197, 41, 96, 146, 157, 32, 129, 201, 6, 139,\n\t\t53, 95, 236, 112, 53, 42, 38, 100, 58, 91, 91, 20, 245, 17,\n\t\t48, 47, 175, 154, 176, 183, 64, 222, 228, 248, 34, 88, 85,\n\t\t135, 187, 241, 181, 106, 247, 107, 47, 203, 173, 16, 142,\n\t\t67, 6, 201, 236, 173, 184, 54, 129, 137, 170, 74, 186, 42,\n\t\t198, 189, 214, 21, 81, 21, 225, 203, 121, 73, 151, 56, 148,\n\t\t243, 154, 139, 95, 136, 73, 50, 99, 224, 96, 111, 12, 17,\n\t\t1, 211, 62, 16, 22, 190, 22, 38, 32, 63, 221, 51, 69, 106,\n\t\t126, 20, 68, 72, 213, 231, 114, 127, 45, 126, 254, 191, 235,\n\t\t207, 31, 111, 248, 11, 255, 113, 39, 217, 4, 150, 121, 232,\n\t\t103, 55, 134, 168, 22, 198, 198, 158, 232, 28, 83, 246, 169,\n\t\t125, 7, 135, 29, 133, 228, 27, 160, 241, 216, 62, 34, 182,\n\t\t218, 80, 150, 14, 116, 160, 204, 236, 47, 146, 255, 86, 121,\n\t\t6, 216, 25, 209, 148, 69, 239, 2, 175, 204, 48, 238, 228,\n\t\t29, 224, 79, 98, 182, 252, 225, 220, 25, 56, 235, 188, 215,\n\t\t42, 158, 214, 236, 27, 168, 97, 192, 127, 91, 167, 201, 75,\n\t\t40, 209, 70, 201, 112, 42, 125, 202, 22, 70, 125, 154, 203,\n\t\t12, 129, 216, 169, 41, 173, 32, 86, 158, 250, 176, 84, 245,\n\t\t83, 129, 55, 206, 146, 190, 82, 130, 12, 64, 94, 222, 148,\n\t\t215, 27, 5, 125, 83, 6, 209, 88, 149, 182, 222, 69, 201, 163,\n\t\t221, 87, 88, 145, 20, 60, 185, 22, 170, 32, 195, 45, 206,\n\t\t70, 84, 142, 93, 247, 24, 74, 129, 26, 80, 57, 11, 183, 136,\n\t\t1, 60, 53, 0, 46, 128, 82, 115, 16, 100, 68, 118, 124, 158,\n\t\t138, 27, 211, 137, 1, 5, 37, 13, 229, 50, 65, 172, 61, 54,\n\t\t169, 162, 158, 134, 225, 92, 199, 128, 118, 145, 44, 70, 248,\n\t\t158, 146, 154, 86, 72, 199, 89, 42, 179, 92, 114, 1, 47, 182,\n\t\t52, 174, 126, 226, 42, 209, 26, 30, 41, 125, 247, 61, 179,\n\t\t58, 13, 117, 22, 194, 128, 228, 89, 248, 7, 110, 123, 58,\n\t\t243, 4, 212, 249, 135, 233, 183, 202, 220, 203, 139, 206,\n\t\t51, 157, 120, 122, 188, 79, 187, 200, 106, 15, 8, 84, 48,\n\t\t237, 222, 206, 54, 61, 113, 118, 61, 153, 111, 133, 83, 222,\n\t\t121, 210, 134, 10, 192, 9, 246, 181, 205, 209, 227, 66, 221,\n\t\t194, 251, 59, 15, 53, 182, 147, 193, 27, 195, 234, 116, 206,\n\t\t25, 148, 132, 211, 89, 231, 172, 62, 83, 231, 157, 78, 59,\n\t\t167, 243, 78, 166, 29, 3, 81, 96, 226, 233, 188, 51, 209,\n\t\t174, 243, 78, 167, 157, 206, 58, 157, 116, 58, 231, 116, 202,\n\t\t233, 140, 211, 9, 167, 243, 141, 167, 155, 206, 54, 153, 108,\n\t\t235, 62, 213, 116, 166, 97, 66, 77, 189, 94, 103, 154, 211,\n\t\t169, 166, 51, 205, 233, 84, 227, 153, 230, 116, 170, 233,\n\t\t76, 115, 58, 213, 116, 166, 61, 18, 76, 15, 243, 9, 239, 138,\n\t\t211, 159, 62, 92, 254, 117, 35, 75, 63, 124, 219, 57, 147,\n\t\t40, 248, 218, 64, 146, 150, 243, 240, 200, 7, 74, 185, 99,\n\t\t191, 75, 61, 3, 181, 6, 148, 82, 61, 175, 83, 5, 65, 174,\n\t\t79, 128, 121, 201, 165, 223, 59, 234, 68, 244, 57, 78, 237,\n\t\t164, 51, 249, 118, 225, 216, 204, 52, 255, 6, 108, 71, 100,\n\t\t55, 19, 249, 49, 205, 68, 151, 43, 79, 43, 59, 81, 15, 185,\n\t\t75, 69, 230, 149, 92, 76, 73, 252, 235, 169, 136, 26, 91,\n\t\t163, 218, 248, 69, 138, 168, 241, 124, 178, 19, 171, 139,\n\t\t99, 76, 181, 7, 112, 63, 217, 199, 188, 28, 94, 39, 245, 252,\n\t\t114, 122, 138, 243, 68, 26, 190, 230, 53, 71, 78, 82, 5, 220,\n\t\t54, 208, 113, 168, 136, 3, 70, 178, 227, 240, 139, 128, 18,\n\t\t59, 148, 186, 86, 209, 248, 244, 56, 86, 193, 102, 221, 51,\n\t\t174, 162, 212, 180, 217, 194, 73, 67, 124, 135, 81, 38, 211,\n\t\t241, 230, 121, 244, 139, 211, 167, 59, 125, 188, 253, 196,\n\t\t201, 111, 0, 229, 71, 154, 41, 100, 120, 135, 194, 177, 33,\n\t\t0, 186, 193, 82, 193, 78, 171, 182, 2, 235, 23, 85, 32, 67,\n\t\t128, 54, 228, 149, 150, 87, 143, 40, 65, 50, 81, 254, 235,\n\t\t122, 230, 244, 27, 187, 230, 247, 244, 204, 221, 165, 247,\n\t\t233, 215, 159, 191, 124, 248, 120, 131, 42, 241, 143, 155,\n\t\t200, 209, 145, 138, 57, 251, 193, 25, 137, 0, 134, 37, 102,\n\t\t217, 7, 6, 71, 5, 240, 96, 128, 155, 139, 17, 248, 210, 241,\n\t\t68, 99, 136, 100, 212, 23, 21, 166, 129, 154, 219, 63, 52,\n\t\t225, 56, 205, 16, 160, 245, 142, 152, 2, 59, 5, 230, 190,\n\t\t1, 1, 47, 49, 151, 160, 9, 119, 154, 66, 24, 45, 122, 218,\n\t\t213, 191, 207, 103, 206, 174, 180, 202, 46, 136, 217, 77,\n\t\t196, 232, 126, 168, 100, 102, 144, 192, 80, 99, 89, 166, 64,\n\t\t72, 189, 201, 229, 5, 227, 62, 151, 60, 199, 140, 32, 196,\n\t\t146, 208, 246, 91, 187, 98, 240, 157, 42, 29, 78, 76, 5, 60,\n\t\t175, 1, 116, 54, 29, 170, 14, 251, 235, 1, 216, 16, 179, 189,\n\t\t63, 94, 191, 180, 109, 154, 100, 57, 207, 201, 199, 38, 200,\n\t\t48, 121, 202, 94, 160, 168, 136, 77, 234, 214, 231, 227, 11,\n\t\t69, 241, 18, 41, 70, 168, 254, 64, 135, 66, 114, 55, 74, 101,\n\t\t242, 71, 176, 217, 50, 212, 112, 171, 113, 3, 76, 36, 38,\n\t\t46, 127, 96, 238, 145, 115, 231, 249, 124, 119, 154, 252,\n\t\t252, 252, 229, 223, 159, 62, 255, 203, 253, 251, 227, 231,\n\t\t219, 194, 158, 127, 220, 0, 247, 30, 230, 74, 14, 82, 37,\n\t\t246, 200, 98, 12, 249, 234, 114, 56, 151, 250, 136, 36, 70,\n\t\t170, 66, 239, 82, 253, 197, 26, 30, 80, 253, 241, 109, 190,\n\t\t133, 66, 119, 46, 245, 154, 195, 217, 165, 223, 208, 170,\n\t\t211, 95, 215, 172, 248, 80, 249, 187, 31, 142, 161, 30, 112,\n\t\t159, 246, 136, 16, 241, 65, 115, 226, 160, 211, 227, 142,\n\t\t121, 220, 47, 141, 208, 203, 212, 31, 229, 44, 32, 142, 84,\n\t\t144, 156, 115, 142, 196, 100, 247, 8, 123, 128, 119, 110,\n\t\t144, 48, 135, 237, 36, 244, 200, 41, 124, 123, 242, 222, 76,\n\t\t255, 244, 229, 203, 77, 154, 116, 11, 55, 190, 236, 195, 12,\n\t\t15, 115, 7, 120, 52, 63, 210, 59, 146, 3, 137, 68, 13, 17,\n\t\t52, 79, 232, 109, 109, 108, 165, 104, 220, 119, 202, 191,\n\t\t120, 38, 246, 15, 63, 234, 248, 119, 248, 13, 123, 216, 92,\n\t\t203, 28, 141, 139, 57, 123, 0, 180, 77, 213, 29, 27, 85, 57,\n\t\t215, 252, 112, 120, 223, 241, 20, 43, 31, 145, 160, 191, 14,\n\t\t44, 7, 226, 241, 163, 203, 241, 88, 174, 139, 241, 62, 95,\n\t\t212, 87, 105, 123, 231, 218, 232, 62, 55, 232, 125, 156, 159,\n\t\t190, 184, 198, 53, 102, 16, 151, 216, 96, 59, 9, 220, 97,\n\t\t49, 116, 119, 241, 138, 104, 209, 94, 89, 74, 150, 34, 127,\n\t\t70, 191, 93, 26, 187, 1, 87, 146, 188, 0, 162, 105, 183, 38,\n\t\t97, 113, 45, 140, 20, 108, 199, 157, 209, 134, 174, 145, 25,\n\t\t230, 133, 39, 99, 143, 88, 9, 167, 113, 28, 115, 77, 111,\n\t\t177, 32, 208, 212, 27, 140, 148, 85, 205, 163, 34, 232, 218,\n\t\t36, 120, 100, 26, 87, 75, 48, 153, 229, 232, 44, 150, 200,\n\t\t52, 191, 35, 106, 97, 215, 152, 189, 148, 137, 205, 157, 58,\n\t\t36, 192, 58, 113, 53, 103, 46, 158, 114, 139, 146, 178, 126,\n\t\t218, 4, 166, 19, 127, 144, 252, 88, 34, 45, 57, 220, 100,\n\t\t253, 188, 195, 123, 121, 121, 135, 39, 148, 215, 99, 10, 121,\n\t\t165, 160, 177, 176, 212, 5, 31, 55, 137, 17, 34, 153, 221,\n\t\t16, 12, 194, 134, 11, 132, 226, 210, 0, 173, 65, 99, 182,\n\t\t26, 65, 48, 228, 130, 204, 239, 167, 34, 221, 51, 32, 57,\n\t\t210, 232, 231, 249, 218, 247, 151, 249, 231, 219, 108, 153,\n\t\t22, 126, 48, 114, 181, 2, 117, 123, 141, 185, 120, 152, 14,\n\t\t243, 196, 212, 223, 81, 12, 132, 131, 152, 243, 213, 105,\n\t\t106, 71, 64, 208, 134, 97, 218, 128, 241, 143, 201, 26, 61,\n\t\t52, 11, 254, 245, 60, 184, 224, 160, 38, 49, 3, 80, 65, 141,\n\t\t47, 174, 251, 141, 186, 166, 39, 196, 48, 55, 239, 152, 243,\n\t\t194, 191, 203, 38, 249, 110, 136, 179, 83, 17, 183, 56, 211,\n\t\t104, 163, 148, 106, 136, 235, 150, 217, 200, 56, 192, 128,\n\t\t153, 29, 13, 76, 184, 98, 223, 63, 173, 57, 51, 141, 47, 85,\n\t\t118, 170, 207, 21, 52, 117, 161, 76, 172, 232, 198, 30, 167,\n\t\t141, 37, 135, 151, 152, 170, 143, 66, 121, 21, 245, 75, 39,\n\t\t223, 174, 85, 176, 241, 187, 212, 101, 235, 227, 98, 19, 12,\n\t\t67, 57, 150, 167, 175, 97, 201, 89, 124, 249, 188, 52, 186,\n\t\t188, 21, 50, 199, 136, 65, 180, 123, 242, 169, 174, 73, 129,\n\t\t78, 5, 253, 120, 1, 66, 133, 112, 114, 32, 28, 28, 83, 193,\n\t\t44, 145, 227, 11, 96, 168, 231, 186, 17, 172, 127, 254, 90,\n\t\t190, 61, 173, 112, 193, 33, 135, 39, 163, 212, 162, 199, 249,\n\t\t70, 100, 96, 166, 242, 115, 62, 190, 112, 214, 19, 128, 42,\n\t\t21, 30, 92, 31, 199, 191, 184, 63, 225, 126, 253, 249, 231,\n\t\t175, 205, 185, 27, 61, 59, 199, 122, 164, 238, 125, 148, 48,\n\t\t241, 251, 243, 37, 158, 98, 76, 30, 189, 18, 124, 73, 171,\n\t\t5, 98, 98, 51, 144, 90, 245, 79, 178, 36, 77, 77, 205, 96,\n\t\t66, 183, 109, 81, 127, 193, 57, 120, 155, 83, 156, 49, 71,\n\t\t156, 175, 179, 186, 38, 16, 163, 83, 144, 231, 193, 206, 178,\n\t\t94, 6, 19, 138, 176, 194, 62, 199, 63, 28, 206, 156, 176,\n\t\t236, 173, 192, 247, 155, 202, 201, 13, 81, 223, 185, 86, 8,\n\t\t221, 23, 96, 52, 19, 101, 31, 226, 87, 118, 144, 56, 18, 239,\n\t\t32, 17, 201, 80, 143, 181, 147, 194, 69, 121, 240, 9, 194,\n\t\t81, 196, 112, 5, 81, 201, 93, 17, 112, 206, 137, 79, 80, 69,\n\t\t22, 211, 102, 117, 253, 57, 74, 126, 83, 210, 50, 164, 198,\n\t\t101, 67, 91, 141, 66, 117, 61, 23, 84, 154, 43, 81, 146, 144,\n\t\t180, 112, 103, 74, 55, 220, 60, 177, 171, 11, 41, 111, 152,\n\t\t240, 37, 43, 236, 156, 158, 153, 18, 48, 84, 224, 169, 106,\n\t\t104, 49, 137, 43, 13, 197, 254, 131, 211, 52, 24, 66, 42,\n\t\t5, 21, 65, 36, 29, 157, 100, 255, 13, 64, 78, 130, 85, 18,\n\t\t144, 205, 197, 161, 57, 246, 246, 71, 206, 239, 2, 38, 39,\n\t\t28, 24, 197, 114, 242, 184, 146, 40, 105, 21, 100, 224, 226,\n\t\t252, 28, 48, 162, 27, 137, 227, 165, 55, 172, 224, 205, 245,\n\t\t204, 229, 76, 133, 33, 231, 166, 185, 213, 100, 41, 106, 62,\n\t\t103, 234, 92, 252, 87, 100, 163, 128, 188, 10, 108, 223, 194,\n\t\t249, 15, 176, 187, 121, 203, 132, 254, 158, 98, 119, 190,\n\t\t193, 52, 66, 71, 204, 115, 234, 9, 178, 147, 130, 113, 68,\n\t\t33, 152, 102, 24, 47, 78, 35, 8, 156, 25, 144, 70, 45, 136,\n\t\t86, 113, 136, 48, 5, 141, 58, 43, 190, 167, 102, 127, 56,\n\t\t208, 21, 1, 200, 65, 221, 202, 57, 107, 103, 76, 91, 140,\n\t\t96, 103, 50, 234, 115, 86, 104, 60, 101, 3, 145, 4, 62, 249,\n\t\t229, 34, 87, 158, 182, 52, 196, 9, 43, 207, 37, 118, 21, 46,\n\t\t10, 128, 91, 8, 158, 191, 196, 114, 186, 11, 122, 170, 0,\n\t\t204, 110, 77, 115, 25, 137, 185, 28, 86, 146, 10, 122, 87,\n\t\t165, 88, 59, 27, 153, 188, 56, 13, 170, 18, 219, 151, 0, 121,\n\t\t189, 81, 21, 219, 16, 154, 200, 57, 115, 211, 239, 74, 180,\n\t\t203, 250, 249, 211, 182, 221, 8, 180, 27, 148, 135, 93, 85,\n\t\t206, 108, 246, 82, 229, 217, 16, 22, 17, 85, 136, 74, 43,\n\t\t120, 78, 15, 83, 47, 125, 15, 192, 148, 222, 231, 112, 7,\n\t\t252, 39, 27, 37, 146, 11, 80, 164, 155, 20, 108, 133, 140,\n\t\t207, 159, 23, 165, 188, 174, 120, 242, 5, 162, 54, 8, 142,\n\t\t138, 164, 62, 180, 204, 89, 65, 248, 29, 31, 84, 134, 93,\n\t\t185, 166, 10, 235, 168, 75, 247, 87, 221, 114, 217, 37, 140,\n\t\t133, 135, 52, 189, 220, 79, 231, 148, 230, 193, 3, 46, 81,\n\t\t42, 83, 93, 238, 211, 158, 225, 108, 130, 23, 132, 111, 107,\n\t\t158, 151, 223, 53, 141, 230, 107, 214, 40, 110, 197, 185,\n\t\t170, 36, 37, 149, 246, 255, 49, 86, 210, 171, 6, 100, 153,\n\t\t103, 74, 115, 126, 127, 188, 255, 245, 235, 182, 185, 245,\n\t\t243, 167, 203, 229, 135, 79, 63, 63, 95, 222, 142, 124, 188,\n\t\t225, 65, 59, 48, 85, 164, 1, 157, 65, 18, 1, 214, 166, 184,\n\t\t133, 226, 36, 5, 135, 222, 96, 161, 5, 111, 139, 130, 119,\n\t\t96, 231, 106, 96, 58, 200, 90, 232, 219, 197, 33, 151, 180,\n\t\t110, 218, 238, 54, 175, 110, 194, 24, 35, 92, 124, 130, 246,\n\t\t233, 132, 227, 119, 115, 177, 207, 161, 5, 14, 92, 68, 218,\n\t\t233, 60, 38, 148, 170, 54, 68, 202, 12, 202, 212, 238, 31,\n\t\t155, 64, 54, 75, 198, 190, 64, 113, 239, 183, 148, 166, 73,\n\t\t203, 78, 123, 211, 236, 94, 184, 82, 239, 163, 124, 195, 250,\n\t\t110, 83, 9, 28, 125, 169, 146, 56, 12, 109, 113, 12, 61, 94,\n\t\t237, 253, 212, 163, 172, 111, 167, 157, 229, 142, 55, 172,\n\t\t219, 177, 57, 41, 140, 245, 208, 152, 32, 144, 225, 232, 37,\n\t\t237, 116, 237, 35, 233, 243, 77, 122, 72, 123, 100, 123, 221,\n\t\t99, 59, 166, 135, 142, 157, 36, 202, 176, 132, 76, 251, 253,\n\t\t156, 221, 240, 56, 116, 199, 22, 217, 155, 113, 199, 206,\n\t\t59, 33, 97, 207, 8, 153, 249, 133, 180, 67, 92, 213, 60, 231,\n\t\t88, 194, 66, 83, 206, 18, 144, 168, 177, 168, 73, 1, 153,\n\t\t90, 88, 42, 140, 179, 249, 9, 156, 61, 253, 144, 166, 82,\n\t\t179, 228, 131, 16, 108, 222, 249, 247, 50, 255, 186, 162,\n\t\t133, 227, 192, 55, 23, 127, 78, 86, 184, 111, 49, 186, 23,\n\t\t215, 171, 196, 80, 218, 148, 76, 184, 251, 86, 60, 239, 39,\n\t\t243, 11, 35, 4, 114, 145, 4, 181, 188, 104, 214, 185, 102,\n\t\t53, 65, 50, 104, 242, 61, 64, 43, 92, 156, 18, 152, 201, 227,\n\t\t144, 24, 16, 24, 99, 29, 26, 59, 201, 182, 170, 87, 201, 69,\n\t\t83, 56, 132, 133, 1, 208, 26, 251, 151, 149, 39, 61, 43, 127,\n\t\t54, 91, 202, 199, 99, 57, 37, 234, 20, 131, 2, 46, 137, 78,\n\t\t23, 119, 56, 230, 31, 114, 205, 233, 119, 122, 192, 215, 238,\n\t\t127, 87, 220, 108, 31, 46, 111, 75, 109, 91, 188, 195, 220,\n\t\t80, 70, 198, 180, 173, 192, 81, 31, 155, 43, 125, 218, 100,\n\t\t113, 201, 5, 37, 55, 171, 171, 98, 11, 217, 120, 116, 245,\n\t\t246, 23, 94, 209, 142, 36, 32, 41, 122, 209, 22, 57, 43, 105,\n\t\t17, 93, 97, 213, 43, 171, 176, 113, 69, 65, 173, 234, 83,\n\t\t147, 99, 6, 178, 204, 124, 149, 163, 180, 77, 27, 224, 180,\n\t\t5, 218, 0, 155, 17, 221, 60, 253, 210, 2, 109, 128, 106, 102,\n\t\t72, 139, 103, 115, 68, 218, 128, 136, 129, 180, 95, 155, 225,\n\t\t180, 29, 246, 70, 142, 91, 162, 47, 116, 191, 167, 127, 249,\n\t\t248, 227, 173, 207, 43, 182, 111, 231, 20, 197, 18, 125, 108,\n\t\t11, 245, 224, 167, 222, 68, 141, 81, 70, 75, 22, 138, 73,\n\t\t85, 185, 146, 242, 168, 39, 159, 90, 100, 223, 121, 132, 191,\n\t\t221, 78, 76, 209, 80, 43, 210, 232, 122, 109, 113, 76, 81,\n\t\t144, 74, 42, 180, 52, 65, 253, 158, 26, 110, 68, 138, 72,\n\t\t164, 196, 92, 242, 76, 101, 59, 181, 219, 85, 80, 68, 151,\n\t\t14, 197, 6, 59, 9, 54, 193, 72, 172, 62, 162, 192, 135, 51,\n\t\t74, 144, 89, 24, 53, 26, 39, 91, 209, 105, 213, 43, 157, 48,\n\t\t39, 206, 43, 163, 136, 89, 190, 149, 165, 153, 242, 189, 182,\n\t\t157, 179, 185, 9, 252, 51, 104, 110, 25, 47, 30, 64, 218,\n\t\t81, 97, 119, 179, 228, 195, 56, 210, 180, 132, 174, 103, 146,\n\t\t126, 0, 1, 225, 134, 168, 79, 96, 93, 122, 62, 238, 236, 56,\n\t\t50, 79, 47, 79, 165, 37, 159, 152, 57, 141, 66, 92, 179, 183,\n\t\t90, 25, 230, 103, 34, 133, 201, 104, 162, 230, 101, 173, 124,\n\t\t146, 60, 185, 205, 189, 133, 31, 58, 205, 93, 69, 112, 169,\n\t\t179, 109, 159, 13, 111, 65, 154, 58, 71, 196, 246, 78, 102,\n\t\t6, 188, 109, 90, 142, 141, 206, 46, 55, 164, 236, 110, 85,\n\t\t85, 243, 193, 8, 129, 171, 90, 17, 78, 25, 216, 12, 8, 143,\n\t\t235, 189, 246, 195, 185, 18, 174, 156, 239, 251, 216, 129,\n\t\t248, 48, 189, 177, 113, 82, 34, 156, 153, 208, 197, 224, 46,\n\t\t162, 113, 90, 185, 54, 9, 254, 36, 82, 214, 47, 234, 178,\n\t\t239, 233, 137, 76, 158, 162, 250, 103, 145, 62, 144, 131,\n\t\t146, 72, 133, 232, 149, 131, 149, 63, 51, 7, 187, 228, 159,\n\t\t51, 63, 200, 60, 205, 36, 69, 204, 69, 173, 200, 243, 82,\n\t\t90, 162, 207, 193, 99, 246, 54, 58, 105, 228, 213, 73, 243,\n\t\t191, 71, 71, 112, 222, 242, 233, 186, 231, 40, 35, 46, 21,\n\t\t234, 52, 207, 164, 142, 109, 238, 75, 165, 238, 40, 133, 115,\n\t\t48, 166, 168, 209, 225, 148, 209, 220, 199, 25, 30, 3, 108,\n\t\t181, 58, 83, 116, 230, 205, 206, 229, 20, 226, 161, 96, 242,\n\t\t58, 105, 156, 205, 26, 157, 123, 93, 210, 224, 93, 19, 252,\n\t\t25, 155, 200, 122, 177, 221, 77, 39, 48, 8, 206, 66, 70, 45,\n\t\t218, 52, 149, 27, 211, 80, 156, 86, 184, 49, 161, 131, 245,\n\t\t154, 9, 212, 54, 177, 85, 212, 72, 81, 238, 156, 21, 207,\n\t\t17, 11, 42, 231, 214, 216, 200, 1, 145, 186, 36, 109, 40,\n\t\t38, 205, 84, 203, 252, 224, 22, 199, 228, 145, 97, 222, 124,\n\t\t169, 45, 177, 2, 207, 190, 113, 113, 120, 128, 135, 105, 192,\n\t\t73, 37, 6, 162, 190, 130, 190, 146, 35, 81, 142, 120, 45,\n\t\t29, 223, 163, 143, 178, 29, 186, 2, 32, 96, 77, 210, 231,\n\t\t180, 99, 249, 42, 93, 128, 111, 187, 242, 180, 149, 32, 10,\n\t\t110, 99, 170, 130, 173, 90, 250, 19, 91, 210, 231, 84, 141,\n\t\t44, 29, 4, 38, 37, 50, 106, 143, 150, 192, 105, 21, 90, 108,\n\t\t252, 125, 13, 44, 187, 235, 224, 30, 147, 227, 75, 109, 92,\n\t\t157, 6, 240, 143, 54, 154, 253, 192, 201, 47, 236, 9, 78,\n\t\t30, 97, 143, 158, 182, 203, 34, 237, 65, 139, 161, 208, 11,\n\t\t183, 66, 182, 60, 74, 150, 62, 58, 228, 58, 5, 222, 200, 156,\n\t\t211, 45, 112, 218, 141, 220, 178, 169, 167, 247, 122, 37,\n\t\t254, 102, 183, 219, 184, 57, 27, 184, 36, 80, 106, 32, 218,\n\t\t97, 192, 145, 125, 205, 131, 161, 98, 31, 126, 103, 227, 175,\n\t\t19, 104, 234, 109, 169, 140, 172, 83, 107, 29, 62, 151, 168,\n\t\t20, 99, 130, 24, 8, 26, 23, 38, 0, 232, 181, 193, 229, 41,\n\t\t44, 54, 115, 86, 190, 60, 229, 48, 59, 108, 73, 101, 142,\n\t\t225, 190, 169, 200, 158, 130, 16, 180, 237, 109, 76, 187,\n\t\t199, 26, 246, 28, 59, 140, 141, 110, 76, 186, 47, 233, 222,\n\t\t166, 86, 150, 94, 167, 252, 217, 177, 41, 145, 226, 92, 77,\n\t\t84, 109, 115, 116, 186, 59, 234, 238, 234, 116, 123, 13, 126,\n\t\t4, 73, 185, 246, 141, 166, 58, 56, 183, 99, 0, 30, 54, 79,\n\t\t165, 245, 184, 159, 192, 77, 4, 117, 56, 138, 63, 205, 151,\n\t\t40, 245, 3, 165, 21, 226, 125, 159, 61, 184, 211, 186, 222,\n\t\t85, 7, 39, 186, 195, 9, 137, 52, 140, 0, 3, 176, 182, 52,\n\t\t108, 35, 180, 45, 82, 118, 72, 224, 246, 113, 245, 133, 193,\n\t\t107, 26, 173, 177, 28, 235, 38, 139, 61, 246, 174, 22, 244,\n\t\t229, 211, 199, 237, 249, 139, 251, 229, 195, 47, 95, 209,\n\t\t133, 110, 156, 26, 7, 93, 136, 224, 213, 56, 83, 159, 83,\n\t\t22, 4, 188, 28, 155, 72, 93, 116, 178, 185, 70, 51, 167, 251,\n\t\t116, 159, 143, 199, 131, 174, 46, 54, 242, 161, 201, 238,\n\t\t195, 62, 210, 169, 120, 32, 187, 161, 11, 24, 30, 64, 112,\n\t\t144, 80, 81, 125, 96, 142, 33, 217, 71, 197, 128, 199, 84,\n\t\t133, 207, 129, 244, 218, 100, 112, 143, 81, 234, 50, 166,\n\t\t186, 38, 254, 41, 6, 247, 98, 246, 107, 241, 202, 43, 139,\n\t\t49, 175, 118, 226, 12, 154, 211, 74, 81, 228, 132, 108, 110,\n\t\t73, 114, 140, 59, 68, 167, 30, 205, 134, 245, 118, 181, 119,\n\t\t145, 0, 133, 134, 57, 227, 160, 133, 163, 94, 74, 112, 247,\n\t\t39, 37, 208, 63, 197, 26, 190, 211, 237, 79, 95, 189, 63,\n\t\t81, 254, 78, 247, 255, 250, 237, 123, 255, 51, 111, 159, 123,\n\t\t224, 196, 19, 195, 122, 129, 76, 68, 220, 5, 26, 206, 152,\n\t\t118, 160, 5, 167, 17, 78, 146, 243, 80, 123, 248, 151, 142,\n\t\t135, 242, 242, 181, 209, 157, 79, 184, 65, 96, 81, 216, 69,\n\t\t212, 195, 239, 97, 91, 174, 135, 199, 169, 105, 18, 26, 49,\n\t\t100, 66, 189, 252, 14, 112, 134, 106, 250, 249, 231, 254,\n\t\t250, 253, 252, 97, 253, 242, 233, 102, 233, 210, 77, 78, 246,\n\t\t193, 98, 164, 190, 196, 72, 107, 22, 164, 134, 176, 244, 142,\n\t\t180, 46, 102, 6, 232, 139, 235, 253, 98, 199, 142, 79, 240,\n\t\t201, 222, 151, 227, 249, 222, 47, 135, 203, 240, 31, 99, 72,\n\t\t4, 212, 16, 78, 235, 29, 85, 132, 138, 95, 143, 10, 195, 139,\n\t\t59, 28, 58, 57, 165, 165, 134, 149, 75, 230, 231, 191, 203,\n\t\t241, 152, 79, 49, 72, 13, 245, 254, 173, 8, 121, 148, 125,\n\t\t42, 209, 213, 21, 222, 216, 36, 71, 83, 204, 16, 227, 72,\n\t\t83, 210, 52, 55, 222, 176, 166, 109, 243, 66, 150, 253, 242,\n\t\t1, 25, 145, 72, 144, 108, 74, 46, 148, 164, 66, 40, 42, 153,\n\t\t111, 137, 102, 69, 17, 179, 134, 143, 99, 42, 52, 51, 210,\n\t\t69, 201, 156, 115, 3, 92, 26, 46, 247, 51, 18, 14, 242, 213,\n\t\t193, 147, 25, 73, 118, 5, 195, 231, 34, 210, 127, 103, 157,\n\t\t233, 216, 32, 217, 33, 54, 84, 145, 172, 226, 89, 159, 79,\n\t\t200, 85, 106, 242, 3, 79, 174, 70, 161, 109, 5, 26, 237, 193,\n\t\t19, 217, 245, 77, 244, 131, 157, 32, 18, 191, 22, 28, 200,\n\t\t108, 95, 200, 7, 62, 19, 6, 242, 26, 222, 92, 111, 215, 237,\n\t\t103, 244, 170, 176, 233, 99, 109, 139, 182, 56, 237, 212,\n\t\t36, 37, 111, 189, 75, 175, 119, 245, 146, 205, 198, 115, 98,\n\t\t56, 191, 206, 233, 234, 132, 199, 252, 109, 103, 177, 82,\n\t\t126, 236, 172, 185, 37, 233, 47, 144, 70, 184, 28, 251, 148,\n\t\t232, 218, 24, 81, 121, 181, 78, 36, 45, 209, 226, 62, 180,\n\t\t46, 149, 46, 4, 234, 64, 224, 221, 88, 120, 173, 237, 101,\n\t\t126, 99, 103, 72, 39, 46, 114, 234, 180, 222, 14, 130, 126,\n\t\t216, 7, 67, 46, 218, 14, 61, 89, 145, 177, 175, 29, 56, 20,\n\t\t17, 188, 139, 127, 178, 251, 30, 37, 193, 144, 67, 207, 29,\n\t\t147, 248, 108, 157, 120, 219, 65, 214, 143, 68, 215, 12, 250,\n\t\t0, 249, 133, 118, 30, 190, 90, 136, 206, 218, 125, 218, 107,\n\t\t218, 139, 218, 109, 220, 137, 210, 103, 139, 78, 195, 183,\n\t\t243, 224, 253, 175, 62, 167, 161, 118, 161, 78, 66, 13, 221,\n\t\t54, 169, 101, 155, 106, 29, 120, 51, 37, 99, 94, 40, 117,\n\t\t216, 219, 12, 160, 236, 66, 119, 226, 39, 231, 152, 146, 207,\n\t\t229, 28, 124, 200, 181, 55, 148, 5, 230, 14, 254, 53, 212,\n\t\t98, 17, 251, 233, 67, 201, 109, 201, 211, 152, 77, 136, 221,\n\t\t34, 22, 85, 170, 166, 97, 166, 224, 123, 61, 199, 64, 62,\n\t\t165, 107, 14, 104, 10, 202, 37, 133, 90, 83, 89, 176, 10,\n\t\t115, 24, 205, 243, 101, 233, 12, 206, 190, 86, 99, 110, 231,\n\t\t114, 160, 142, 212, 25, 33, 10, 33, 73, 143, 212, 250, 202,\n\t\t141, 162, 136, 48, 98, 46, 202, 105, 100, 176, 40, 43, 204,\n\t\t184, 190, 20, 209, 156, 17, 20, 5, 171, 155, 177, 242, 113,\n\t\t165, 2, 210, 247, 205, 185, 174, 200, 32, 188, 174, 160, 124,\n\t\t97, 249, 233, 153, 196, 251, 243, 213, 201, 123, 157, 145,\n\t\t126, 6, 208, 168, 85, 211, 25, 194, 210, 195, 162, 153, 25,\n\t\t125, 30, 157, 46, 238, 112, 236, 112, 238, 50, 255, 236, 9,\n\t\t28, 124, 254, 114, 60, 230, 83, 47, 79, 81, 240, 209, 145,\n\t\t24, 146, 55, 151, 163, 204, 72, 36, 79, 86, 223, 199, 213,\n\t\t77, 35, 236, 126, 190, 239, 175, 151, 231, 207, 238, 227,\n\t\t207, 255, 223, 175, 183, 121, 156, 141, 250, 183, 3, 56, 212,\n\t\t166, 189, 184, 128, 165, 155, 128, 110, 201, 25, 244, 181,\n\t\t67, 147, 56, 187, 30, 97, 106, 173, 42, 218, 179, 184, 201,\n\t\t107, 230, 213, 55, 245, 130, 8, 234, 213, 30, 230, 143, 88,\n\t\t6, 204, 9, 37, 201, 202, 82, 134, 87, 146, 88, 149, 115, 201,\n\t\t244, 80, 94, 158, 82, 158, 11, 96, 73, 21, 12, 252, 228, 11,\n\t\t109, 85, 170, 231, 242, 48, 252, 10, 73, 128, 73, 28, 223,\n\t\t167, 142, 130, 102, 104, 193, 156, 76, 84, 53, 1, 130, 47,\n\t\t97, 77, 142, 41, 164, 228, 93, 32, 74, 251, 82, 12, 184, 151,\n\t\t107, 88, 79, 112, 160, 8, 176, 137, 36, 183, 168, 186, 44,\n\t\t217, 93, 72, 169, 44, 32, 30, 92, 81, 143, 10, 80, 18, 225,\n\t\t95, 215, 223, 184, 3, 173, 141, 156, 192, 94, 167, 143, 119,\n\t\t175, 30, 108, 255, 123, 121, 154, 61, 151, 187, 231, 12, 141,\n\t\t218, 0, 74, 13, 106, 45, 138, 158, 122, 4, 103, 94, 238, 25,\n\t\t43, 8, 53, 42, 204, 78, 147, 182, 161, 83, 154, 192, 57, 138,\n\t\t76, 73, 79, 245, 74, 145, 124, 122, 121, 130, 3, 233, 154,\n\t\t25, 101, 125, 190, 229, 156, 81, 40, 198, 19, 44, 139, 214,\n\t\t152, 218, 24, 148, 60, 228, 25, 96, 47, 250, 86, 239, 103,\n\t\t164, 104, 158, 210, 221, 56, 239, 197, 142, 15, 41, 41, 160,\n\t\t168, 104, 17, 216, 193, 80, 106, 70, 61, 23, 20, 244, 142,\n\t\t151, 167, 52, 151, 46, 216, 148, 90, 86, 141, 42, 166, 44,\n\t\t6, 149, 112, 78, 227, 16, 127, 174, 78, 222, 108, 61, 48,\n\t\t177, 124, 45, 15, 230, 116, 54, 167, 64, 20, 95, 8, 50, 209,\n\t\t2, 87, 140, 99, 195, 144, 42, 214, 61, 158, 43, 105, 75, 172,\n\t\t10, 136, 205, 108, 107, 250, 236, 234, 144, 82, 208, 195,\n\t\t139, 176, 191, 133, 86, 18, 246, 69, 152, 203, 83, 80, 228,\n\t\t170, 149, 244, 117, 105, 164, 180, 32, 245, 82, 2, 235, 195,\n\t\t69, 152, 246, 244, 59, 192, 169, 248, 22, 239, 174, 243, 235,\n\t\t103, 183, 126, 248, 252, 227, 15, 159, 110, 97, 194, 26, 141,\n\t\t251, 217, 172, 200, 124, 123, 144, 205, 26, 30, 167, 205,\n\t\t196, 26, 192, 160, 77, 133, 235, 161, 48, 87, 246, 4, 247,\n\t\t42, 104, 23, 48, 82, 83, 131, 128, 134, 63, 0, 121, 22, 194,\n\t\t135, 140, 216, 39, 178, 81, 164, 82, 9, 132, 171, 188, 192,\n\t\t153, 172, 61, 75, 193, 152, 156, 184, 112, 77, 223, 65, 140,\n\t\t235, 15, 156, 252, 98, 127, 134, 146, 46, 51, 222, 59, 191,\n\t\t0, 145, 20, 142, 37, 45, 62, 79, 250, 107, 109, 171, 158,\n\t\t217, 223, 240, 110, 10, 53, 247, 213, 183, 51, 186, 155, 88,\n\t\t173, 49, 231, 85, 73, 242, 153, 128, 84, 193, 234, 51, 76,\n\t\t164, 195, 161, 147, 83, 53, 223, 208, 233, 95, 142, 199, 124,\n\t\t74, 140, 178, 156, 79, 127, 210, 253, 239, 205, 195, 127,\n\t\t127, 252, 249, 118, 254, 61, 27, 99, 105, 169, 190, 65, 10,\n\t\t231, 174, 8, 68, 131, 52, 1, 8, 208, 89, 9, 56, 205, 157,\n\t\t57, 90, 214, 230, 121, 210, 176, 123, 69, 194, 39, 161, 251,\n\t\t10, 83, 66, 84, 255, 121, 188, 186, 44, 0, 41, 1, 6, 46, 51,\n\t\t222, 166, 121, 225, 16, 204, 225, 198, 96, 7, 171, 250, 140,\n\t\t134, 213, 38, 51, 124, 67, 236, 66, 127, 164, 252, 2, 124,\n\t\t124, 78, 112, 167, 129, 96, 149, 97, 30, 166, 188, 208, 144,\n\t\t14, 219, 62, 123, 83, 240, 197, 105, 205, 194, 70, 7, 1, 23,\n\t\t88, 180, 88, 205, 54, 35, 142, 4, 45, 26, 231, 19, 115, 143,\n\t\t44, 154, 193, 203, 36, 76, 248, 62, 9, 43, 70, 226, 99, 160,\n\t\t169, 113, 115, 139, 223, 193, 220, 193, 31, 194, 77, 74, 220,\n\t\t133, 114, 226, 236, 98, 38, 15, 117, 167, 9, 99, 22, 60, 12,\n\t\t2, 201, 94, 15, 21, 158, 226, 72, 99, 138, 46, 241, 62, 156,\n\t\t99, 14, 190, 29, 121, 10, 238, 220, 229, 244, 237, 219, 164,\n\t\t148, 61, 173, 224, 5, 73, 193, 232, 73, 184, 35, 94, 55, 120,\n\t\t77, 210, 117, 36, 166, 14, 16, 122, 165, 51, 220, 77, 111,\n\t\t196, 172, 117, 91, 83, 232, 243, 168, 12, 105, 215, 77, 23,\n\t\t59, 82, 114, 15, 77, 58, 195, 204, 50, 176, 147, 183, 227,\n\t\t120, 118, 50, 246, 167, 105, 45, 85, 198, 120, 17, 82, 114,\n\t\t4, 115, 205, 135, 198, 111, 196, 132, 175, 235, 224, 195,\n\t\t41, 207, 129, 251, 6, 69, 183, 73, 172, 40, 102, 63, 150,\n\t\t86, 124, 89, 147, 2, 227, 55, 25, 209, 138, 180, 130, 84,\n\t\t121, 250, 53, 157, 100, 242, 97, 141, 156, 199, 196, 201,\n\t\t126, 41, 107, 155, 231, 222, 176, 184, 161, 17, 74, 28, 35,\n\t\t245, 135, 81, 61, 231, 98, 107, 1, 83, 43, 82, 69, 233, 103,\n\t\t65, 198, 47, 242, 89, 187, 111, 252, 110, 88, 9, 168, 32,\n\t\t195, 93, 51, 86, 78, 155, 43, 81, 148, 111, 64, 164, 193,\n\t\t192, 47, 10, 60, 206, 60, 65, 17, 228, 164, 200, 69, 145,\n\t\t238, 160, 225, 243, 220, 189, 80, 250, 53, 215, 136, 86, 248,\n\t\t15, 246, 213, 179, 213, 169, 57, 45, 162, 54, 201, 241, 25,\n\t\t133, 183, 40, 212, 147, 153, 22, 141, 22, 70, 39, 62, 56,\n\t\t142, 164, 211, 86, 35, 217, 157, 103, 41, 201, 154, 160, 204,\n\t\t67, 159, 237, 98, 62, 113, 90, 193, 182, 3, 13, 101, 42, 36,\n\t\t146, 66, 235, 244, 51, 107, 52, 103, 244, 98, 1, 136, 2, 30,\n\t\t9, 32, 72, 137, 186, 0, 167, 82, 102, 163, 140, 116, 205,\n\t\t231, 41, 217, 238, 167, 207, 253, 251, 227, 207, 207, 238,\n\t\t135, 79, 95, 190, 108, 111, 225, 60, 26, 253, 67, 5, 100,\n\t\t9, 13, 188, 177, 109, 26, 50, 119, 49, 248, 153, 145, 104,\n\t\t81, 156, 189, 205, 96, 245, 221, 107, 48, 253, 3, 6, 63, 0,\n\t\t48, 119, 12, 254, 20, 80, 199, 218, 180, 162, 78, 62, 76,\n\t\t65, 36, 196, 84, 85, 96, 180, 130, 230, 97, 7, 242, 153, 57,\n\t\t24, 136, 33, 77, 115, 240, 169, 109, 168, 56, 75, 136, 116,\n\t\t224, 3, 64, 220, 57, 117, 152, 178, 50, 175, 40, 108, 144,\n\t\t157, 81, 196, 252, 112, 218, 209, 243, 229, 239, 106, 191,\n\t\t178, 95, 235, 135, 42, 181, 29, 65, 127, 187, 225, 153, 125,\n\t\t225, 63, 113, 77, 141, 115, 81, 241, 119, 193, 186, 152, 42,\n\t\t23, 66, 12, 220, 222, 69, 218, 191, 233, 171, 235, 155, 127,\n\t\t149, 126, 128, 107, 74, 212, 71, 166, 189, 172, 157, 252,\n\t\t24, 99, 63, 182, 225, 9, 47, 210, 226, 22, 137, 192, 196,\n\t\t140, 63, 183, 239, 189, 57, 249, 129, 252, 189, 59, 161, 214,\n\t\t237, 211, 175, 63, 186, 159, 158, 63, 124, 249, 225, 195,\n\t\t109, 94, 102, 178, 226, 134, 220, 23, 206, 17, 45, 7, 205,\n\t\t252, 149, 90, 126, 84, 143, 47, 78, 151, 198, 158, 111, 94,\n\t\t14, 169, 150, 185, 230, 239, 121, 187, 148, 203, 210, 179,\n\t\t236, 128, 44, 116, 22, 208, 161, 40, 109, 35, 167, 75, 207,\n\t\t239, 47, 110, 32, 237, 106, 40, 239, 193, 254, 213, 220, 112,\n\t\t139, 208, 54, 77, 57, 160, 162, 72, 247, 26, 39, 11, 21, 145,\n\t\t127, 100, 172, 136, 171, 196, 254, 198, 131, 80, 99, 129,\n\t\t66, 195, 228, 153, 92, 147, 141, 116, 178, 123, 70, 62, 145,\n\t\t175, 25, 67, 105, 10, 12, 118, 26, 148, 189, 253, 199, 86,\n\t\t206, 131, 139, 181, 127, 136, 176, 103, 242, 138, 52, 111,\n\t\t31, 148, 121, 74, 72, 110, 85, 182, 177, 156, 165, 93, 14,\n\t\t178, 6, 171, 91, 49, 119, 169, 94, 173, 237, 182, 102, 79,\n\t\t1, 10, 41, 170, 66, 178, 89, 167, 112, 60, 213, 58, 5, 77,\n\t\t71, 57, 197, 114, 108, 191, 246, 255, 108, 177, 182, 126,\n\t\t63, 189, 130, 110, 142, 133, 114, 148, 141, 68, 251, 253,\n\t\t205, 19, 46, 250, 104, 252, 90, 78, 234, 143, 86, 84, 4, 149,\n\t\t229, 48, 242, 123, 239, 156, 46, 54, 236, 179, 21, 135, 14,\n\t\t93, 249, 94, 243, 164, 42, 22, 210, 8, 189, 191, 190, 231,\n\t\t26, 163, 104, 151, 220, 35, 89, 142, 180, 81, 111, 230, 8,\n\t\t151, 70, 77, 173, 7, 161, 186, 185, 39, 190, 46, 223, 203,\n\t\t162, 163, 186, 217, 106, 232, 18, 137, 99, 250, 69, 182, 135,\n\t\t105, 245, 200, 214, 214, 246, 254, 229, 249, 49, 21, 25, 0,\n\t\t32, 35, 65, 189, 4, 251, 37, 130, 162, 251, 79, 69, 147, 145,\n\t\t9, 77, 162, 51, 185, 18, 245, 243, 101, 154, 39, 216, 15,\n\t\t155, 248, 227, 57, 29, 159, 181, 163, 33, 93, 16, 160, 216,\n\t\t68, 54, 111, 248, 148, 206, 130, 98, 108, 172, 81, 166, 129,\n\t\t50, 1, 186, 42, 111, 52, 59, 76, 38, 187, 169, 25, 121, 191,\n\t\t106, 126, 56, 116, 7, 67, 190, 33, 219, 88, 232, 4, 86, 112,\n\t\t139, 238, 51, 175, 201, 170, 171, 162, 177, 9, 71, 51, 176,\n\t\t156, 209, 184, 170, 254, 125, 85, 216, 98, 210, 1, 151, 19,\n\t\t130, 10, 178, 134, 69, 85, 162, 34, 90, 28, 72, 233, 249,\n\t\t223, 154, 141, 39, 182, 155, 46, 40, 13, 151, 204, 6, 12,\n\t\t140, 214, 95, 67, 147, 78, 85, 48, 144, 68, 149, 173, 81,\n\t\t63, 174, 89, 44, 9, 118, 210, 37, 81, 81, 216, 15, 128, 89,\n\t\t162, 66, 40, 176, 98, 132, 120, 184, 172, 233, 170, 14, 81,\n\t\t86, 197, 22, 56, 18, 217, 61, 36, 102, 133, 156, 88, 209,\n\t\t127, 172, 132, 73, 162, 248, 123, 182, 129, 79, 159, 126,\n\t\t118, 159, 111, 11, 251, 91, 186, 41, 56, 218, 67, 217, 169,\n\t\t32, 115, 131, 166, 232, 178, 121, 81, 229, 181, 89, 25, 149,\n\t\t9, 196, 71, 173, 123, 68, 32, 180, 31, 172, 11, 196, 143,\n\t\t185, 32, 153, 159, 202, 180, 198, 172, 171, 28, 187, 69, 237,\n\t\t119, 232, 170, 36, 157, 75, 2, 64, 215, 68, 27, 84, 126, 152,\n\t\t198, 182, 215, 26, 24, 183, 241, 208, 89, 65, 123, 248, 117,\n\t\t247, 173, 97, 41, 105, 201, 146, 218, 190, 76, 27, 44, 145,\n\t\t154, 6, 53, 168, 146, 88, 120, 174, 52, 93, 45, 57, 172, 49,\n\t\t176, 28, 152, 29, 177, 244, 105, 127, 225, 183, 64, 239, 148,\n\t\t87, 104, 7, 102, 66, 146, 9, 92, 88, 165, 121, 121, 42, 181,\n\t\t121, 80, 166, 121, 90, 43, 195, 166, 233, 222, 160, 4, 156,\n\t\t14, 244, 241, 178, 148, 100, 206, 57, 18, 167, 3, 4, 128,\n\t\t80, 70, 50, 112, 60, 39, 54, 68, 242, 213, 142, 129, 26, 33,\n\t\t253, 25, 131, 152, 18, 120, 31, 126, 16, 182, 4, 177, 39,\n\t\t44, 78, 153, 196, 130, 104, 216, 63, 26, 187, 174, 151, 94,\n\t\t89, 193, 118, 198, 140, 172, 207, 78, 18, 211, 203, 42, 9,\n\t\t213, 85, 95, 35, 212, 234, 85, 86, 83, 19, 208, 174, 10, 22,\n\t\t160, 169, 103, 161, 152, 56, 193, 35, 215, 252, 88, 187, 44,\n\t\t95, 184, 65, 154, 8, 160, 249, 151, 107, 114, 145, 53, 5,\n\t\t17, 179, 26, 55, 152, 140, 171, 226, 133, 185, 33, 253, 5,\n\t\t236, 108, 36, 158, 241, 182, 151, 196, 180, 159, 50, 142,\n\t\t77, 149, 194, 62, 130, 195, 255, 7, 123, 10, 196, 217, 90,\n\t\t230, 164, 226, 97, 136, 148, 253, 148, 37, 133, 75, 171, 167,\n\t\t250, 81, 243, 190, 169, 173, 54, 43, 68, 0, 198, 176, 27,\n\t\t23, 232, 114, 46, 48, 152, 221, 183, 205, 173, 91, 6, 119,\n\t\t110, 1, 12, 109, 142, 48, 90, 223, 183, 111, 221, 208, 85,\n\t\t122, 201, 25, 100, 250, 200, 104, 22, 249, 53, 6, 3, 10, 114,\n\t\t243, 26, 151, 195, 143, 145, 185, 201, 182, 167, 177, 223,\n\t\t235, 156, 213, 118, 185, 186, 104, 187, 146, 184, 65, 106,\n\t\t94, 179, 244, 225, 190, 233, 234, 172, 164, 195, 182, 180,\n\t\t212, 151, 39, 170, 253, 63, 208, 13, 167, 223, 212, 15, 127,\n\t\t65, 55, 68, 172, 148, 63, 218, 13, 167, 223, 218, 15, 127,\n\t\t183, 110, 104, 245, 247, 245, 194, 233, 15, 205, 134, 191,\n\t\t89, 47, 60, 222, 114, 191, 186, 219, 254, 104, 86, 87, 228,\n\t\t218, 237, 219, 221, 252, 114, 163, 73, 162, 198, 251, 119,\n\t\t171, 77, 255, 33, 173, 233, 244, 23, 170, 77, 143, 181, 166,\n\t\t151, 167, 222, 151, 198, 218, 233, 58, 59, 173, 179, 254,\n\t\t204, 143, 146, 77, 36, 214, 37, 172, 81, 210, 254, 167, 138,\n\t\t130, 185, 154, 195, 98, 172, 34, 243, 115, 151, 156, 106,\n\t\t4, 146, 154, 58, 148, 96, 63, 105, 111, 193, 184, 149, 3,\n\t\t182, 112, 133, 58, 127, 126, 150, 243, 43, 226, 247, 216,\n\t\t204, 73, 220, 161, 89, 54, 247, 28, 22, 121, 200, 203, 19,\n\t\t229, 239, 220, 238, 63, 216, 236, 211, 59, 219, 157, 195,\n\t\t223, 171, 221, 239, 107, 246, 227, 85, 125, 57, 127, 250,\n\t\t247, 243, 231, 139, 59, 63, 127, 184, 254, 223, 219, 229,\n\t\t157, 131, 69, 50, 122, 242, 136, 152, 138, 144, 100, 97, 116,\n\t\t148, 146, 98, 106, 202, 220, 63, 238, 21, 21, 38, 40, 253,\n\t\t101, 2, 82, 67, 17, 223, 22, 144, 53, 207, 133, 15, 66, 63,\n\t\t220, 228, 86, 58, 178, 139, 158, 127, 14, 141, 161, 141, 255,\n\t\t119, 222, 255, 36, 29, 240, 27, 222, 191, 55, 179, 36, 254,\n\t\t166, 61, 112, 250, 77, 93, 240, 219, 123, 32, 183, 248, 87,\n\t\t207, 128, 223, 175, 48, 254, 9, 239, 159, 90, 249, 163, 239,\n\t\t255, 215, 105, 138, 127, 194, 251, 255, 70, 5, 231, 244, 31,\n\t\t212, 112, 248, 21, 126, 179, 134, 243, 93, 20, 156, 211, 119,\n\t\t211, 112, 222, 177, 119, 253, 250, 117, 31, 80, 190, 199,\n\t\t250, 28, 255, 62, 62, 160, 255, 70, 247, 143, 248, 20, 122,\n\t\t247, 40, 135, 100, 103, 69, 146, 118, 86, 117, 103, 232, 4,\n\t\t136, 50, 25, 197, 181, 191, 186, 100, 181, 152, 234, 156,\n\t\t86, 151, 8, 165, 55, 39, 18, 231, 37, 64, 79, 154, 147, 5,\n\t\t49, 21, 169, 244, 57, 10, 129, 249, 235, 211, 6, 228, 44,\n\t\t92, 39, 241, 60, 198, 61, 134, 118, 149, 180, 63, 4, 42, 119,\n\t\t167, 212, 243, 136, 99, 149, 141, 10, 11, 136, 198, 209, 217,\n\t\t205, 181, 56, 7, 176, 236, 177, 98, 245, 255, 234, 113, 236,\n\t\t152, 192, 196, 247, 222, 228, 247, 168, 238, 209, 59, 105,\n\t\t60, 88, 220, 228, 210, 26, 121, 61, 109, 75, 148, 101, 134,\n\t\t102, 200, 227, 23, 189, 203, 54, 239, 185, 180, 200, 120,\n\t\t227, 135, 28, 14, 60, 93, 15, 72, 87, 55, 255, 220, 181, 184,\n\t\t201, 211, 23, 185, 207, 170, 15, 183, 198, 200, 211, 181,\n\t\t179, 209, 19, 78, 218, 178, 185, 110, 114, 167, 74, 95, 90,\n\t\t135, 135, 69, 133, 147, 205, 73, 71, 187, 51, 23, 212, 215,\n\t\t60, 13, 93, 214, 17, 81, 167, 88, 213, 19, 18, 243, 96, 32,\n\t\t113, 142, 38, 169, 19, 111, 200, 52, 38, 203, 182, 32, 4,\n\t\t252, 27, 183, 28, 87, 240, 60, 225, 56, 128, 29, 14, 73, 103,\n\t\t9, 140, 91, 213, 67, 124, 121, 138, 99, 106, 173, 148, 171,\n\t\t143, 64, 55, 58, 206, 69, 248, 11, 139, 133, 1, 24, 231, 134,\n\t\t107, 170, 154, 23, 160, 27, 146, 49, 138, 187, 154, 206, 141,\n\t\t211, 188, 29, 61, 145, 155, 41, 229, 26, 223, 151, 108, 137,\n\t\t42, 9, 72, 192, 252, 149, 6, 130, 61, 147, 191, 78, 201, 230,\n\t\t21, 186, 28, 216, 67, 108, 4, 40, 89, 137, 83, 129, 49, 37,\n\t\t19, 135, 82, 100, 236, 242, 203, 83, 161, 255, 57, 244, 230,\n\t\t230, 76, 255, 115, 232, 77, 29, 45, 253, 207, 161, 55, 141,\n\t\t181, 244, 63, 143, 222, 125, 143, 222, 143, 207, 63, 125,\n\t\t90, 63, 127, 248, 114, 163, 57, 221, 128, 98, 28, 97, 177,\n\t\t155, 79, 75, 28, 209, 191, 134, 104, 144, 184, 133, 156, 136,\n\t\t170, 83, 105, 59, 29, 145, 236, 169, 36, 47, 49, 127, 195,\n\t\t187, 138, 94, 253, 6, 162, 1, 194, 153, 47, 156, 175, 38,\n\t\t29, 180, 106, 236, 117, 73, 210, 207, 32, 160, 153, 61, 102,\n\t\t185, 146, 10, 111, 85, 184, 55, 24, 129, 1, 225, 218, 84,\n\t\t104, 115, 37, 47, 17, 147, 93, 127, 159, 216, 71, 115, 90,\n\t\t29, 186, 219, 166, 132, 27, 58, 40, 68, 210, 104, 57, 115,\n\t\t118, 41, 98, 103, 16, 101, 11, 236, 172, 16, 244, 182, 103,\n\t\t74, 181, 93, 52, 142, 181, 108, 91, 66, 25, 92, 149, 111,\n\t\t51, 177, 105, 95, 113, 14, 160, 236, 6, 9, 169, 156, 91, 19,\n\t\t15, 210, 96, 141, 116, 213, 168, 184, 252, 90, 70, 94, 118,\n\t\t18, 141, 98, 23, 237, 173, 188, 104, 205, 154, 253, 148, 145,\n\t\t247, 2, 234, 135, 79, 216, 106, 210, 81, 7, 153, 91, 36, 78,\n\t\t228, 168, 59, 182, 42, 118, 108, 54, 172, 226, 219, 202, 178,\n\t\t40, 186, 30, 242, 84, 148, 13, 46, 242, 183, 91, 150, 237,\n\t\t211, 101, 190, 108, 211, 219, 202, 95, 51, 190, 108, 101,\n\t\t138, 181, 165, 41, 116, 154, 133, 22, 61, 74, 32, 120, 100,\n\t\t104, 135, 49, 225, 129, 41, 6, 86, 2, 229, 135, 167, 196,\n\t\t214, 53, 132, 47, 31, 206, 148, 138, 175, 167, 181, 4, 126,\n\t\t70, 88, 70, 83, 91, 74, 163, 138, 84, 125, 68, 65, 102, 155,\n\t\t154, 46, 141, 234, 105, 161, 144, 125, 91, 211, 66, 138, 96,\n\t\t96, 203, 79, 102, 44, 137, 22, 214, 161, 253, 73, 227, 68,\n\t\t43, 116, 170, 255, 138, 194, 3, 228, 24, 92, 38, 175, 232,\n\t\t154, 244, 164, 30, 35, 69, 205, 20, 87, 185, 12, 247, 237,\n\t\t90, 239, 45, 185, 57, 102, 25, 204, 199, 119, 212, 99, 112,\n\t\t55, 20, 85, 194, 213, 17, 217, 125, 57, 109, 166, 225, 65,\n\t\t175, 220, 245, 240, 57, 191, 161, 236, 236, 146, 42, 139,\n\t\t90, 159, 212, 102, 19, 85, 76, 219, 234, 10, 79, 64, 112,\n\t\t211, 4, 174, 211, 71, 51, 245, 88, 67, 173, 171, 221, 33,\n\t\t26, 42, 130, 246, 226, 171, 59, 234, 13, 173, 89, 210, 42,\n\t\t184, 93, 255, 224, 32, 156, 254, 62, 163, 240, 87, 12, 194,\n\t\t233, 207, 24, 133, 66, 225, 15, 142, 194, 159, 54, 8, 167,\n\t\t191, 229, 40, 252, 25, 131, 128, 106, 245, 220, 175, 49, 231,\n\t\t115, 42, 116, 117, 40, 121, 64, 118, 158, 202, 63, 17, 151,\n\t\t86, 36, 175, 212, 153, 248, 254, 107, 73, 236, 61, 160, 202,\n\t\t227, 42, 145, 169, 223, 127, 167, 187, 218, 198, 63, 182,\n\t\t15, 255, 116, 191, 94, 222, 242, 137, 181, 108, 209, 195,\n\t\t68, 168, 219, 151, 45, 115, 175, 202, 33, 222, 238, 185, 42,\n\t\t39, 215, 252, 168, 145, 233, 126, 230, 63, 223, 65, 159, 114,\n\t\t184, 191, 192, 193, 209, 24, 146, 220, 145, 215, 164, 185,\n\t\t225, 234, 163, 51, 254, 58, 120, 13, 2, 238, 143, 45, 104,\n\t\t85, 139, 44, 44, 200, 43, 16, 111, 82, 140, 228, 129, 182,\n\t\t60, 167, 217, 213, 165, 122, 146, 106, 102, 78, 120, 105,\n\t\t58, 107, 41, 201, 132, 134, 81, 63, 213, 135, 206, 249, 42,\n\t\t173, 248, 142, 52, 101, 181, 53, 163, 7, 136, 34, 239, 131,\n\t\t105, 96, 191, 35, 246, 189, 92, 171, 232, 8, 67, 54, 253,\n\t\t36, 249, 131, 49, 79, 243, 153, 170, 46, 190, 105, 16, 71,\n\t\t206, 195, 211, 247, 165, 28, 222, 253, 190, 229, 209, 203,\n\t\t162, 49, 160, 2, 58, 173, 78, 27, 227, 180, 53, 142, 155,\n\t\t227, 200, 188, 62, 104, 144, 34, 62, 174, 156, 209, 18, 139,\n\t\t154, 192, 113, 170, 156, 9, 57, 159, 243, 254, 78, 242, 101,\n\t\t174, 243, 254, 191, 237, 85, 83, 24, 62, 47, 169, 86, 159,\n\t\t86, 215, 14, 121, 54, 162, 241, 169, 134, 68, 162, 33, 241,\n\t\t93, 174, 46, 177, 122, 183, 230, 61, 105, 71, 195, 125, 78,\n\t\t18, 46, 35, 233, 144, 204, 151, 86, 138, 63, 179, 19, 138,\n\t\t170, 65, 90, 104, 211, 133, 141, 92, 79, 172, 137, 116, 202,\n\t\t34, 33, 195, 36, 195, 212, 71, 16, 229, 27, 35, 95, 93, 229,\n\t\t236, 164, 215, 189, 42, 51, 199, 122, 85, 116, 36, 235, 85,\n\t\t120, 127, 172, 87, 249, 91, 238, 213, 61, 175, 88, 187, 22,\n\t\t2, 234, 26, 11, 6, 120, 37, 116, 216, 200, 172, 101, 197,\n\t\t81, 124, 2, 60, 61, 70, 102, 246, 35, 220, 32, 4, 55, 142,\n\t\t42, 201, 72, 52, 205, 234, 202, 121, 117, 32, 229, 46, 87,\n\t\t205, 81, 94, 153, 131, 151, 241, 151, 184, 89, 83, 53, 99,\n\t\t255, 170, 76, 13, 100, 132, 81, 144, 17, 140, 53, 44, 41,\n\t\t14, 228, 91, 73, 119, 97, 129, 115, 47, 99, 129, 51, 39, 8,\n\t\t75, 243, 189, 36, 231, 53, 138, 200, 81, 104, 176, 56, 81,\n\t\t132, 171, 131, 164, 88, 12, 108, 37, 181, 226, 219, 155, 39,\n\t\t234, 141, 99, 61, 125, 231, 39, 18, 229, 37, 81, 243, 253,\n\t\t155, 79, 196, 3, 205, 248, 122, 239, 3, 117, 203, 249, 250,\n\t\t3, 123, 186, 243, 138, 247, 222, 240, 244, 219, 95, 241, 46,\n\t\t89, 211, 243, 151, 231, 91, 132, 147, 146, 44, 199, 100, 68,\n\t\t63, 55, 138, 230, 19, 120, 162, 96, 250, 137, 77, 180, 27,\n\t\t1, 124, 28, 76, 192, 136, 100, 65, 217, 78, 96, 118, 32, 158,\n\t\t96, 41, 91, 238, 97, 156, 203, 167, 70, 61, 238, 205, 183,\n\t\t181, 189, 10, 187, 72, 252, 125, 137, 93, 205, 14, 241, 196,\n\t\t107, 218, 124, 50, 83, 220, 28, 3, 156, 191, 79, 236, 134,\n\t\t0, 88, 23, 174, 180, 68, 237, 78, 38, 8, 200, 99, 25, 19,\n\t\t123, 36, 179, 207, 211, 60, 219, 69, 142, 35, 201, 138, 7,\n\t\t178, 73, 89, 231, 75, 68, 125, 27, 17, 219, 29, 249, 128,\n\t\t34, 56, 145, 165, 168, 199, 235, 92, 100, 44, 131, 184, 55,\n\t\t0, 69, 60, 36, 237, 49, 14, 254, 125, 95, 74, 155, 55, 222,\n\t\t173, 233, 2, 14, 229, 249, 7, 223, 175, 1, 156, 142, 16, 181,\n\t\t99, 209, 203, 245, 153, 252, 147, 184, 196, 69, 146, 29, 151,\n\t\t169, 202, 149, 37, 173, 85, 122, 190, 232, 197, 109, 218,\n\t\t90, 193, 231, 5, 111, 186, 224, 181, 79, 43, 124, 236, 129,\n\t\t93, 227, 248, 157, 57, 152, 165, 11, 145, 11, 191, 90, 36,\n\t\t73, 105, 168, 19, 199, 152, 120, 183, 178, 200, 83, 20, 99,\n\t\t187, 73, 12, 132, 218, 18, 243, 64, 174, 39, 158, 49, 135,\n\t\t120, 169, 236, 251, 21, 106, 157, 181, 5, 85, 63, 164, 80,\n\t\t94, 196, 59, 254, 93, 220, 241, 132, 179, 179, 56, 210, 175,\n\t\t172, 172, 253, 242, 234, 204, 94, 236, 46, 84, 254, 167, 187,\n\t\t170, 206, 197, 142, 15, 5, 199, 23, 169, 189, 181, 243, 12,\n\t\t75, 251, 86, 131, 9, 168, 126, 57, 46, 230, 215, 171, 246,\n\t\t242, 21, 189, 233, 114, 163, 41, 93, 142, 18, 224, 145, 122,\n\t\t247, 203, 243, 231, 203, 167, 159, 221, 15, 159, 62, 125,\n\t\t185, 1, 180, 45, 245, 14, 178, 152, 42, 180, 173, 158, 107,\n\t\t190, 186, 216, 234, 31, 211, 239, 118, 248, 170, 223, 220,\n\t\t187, 103, 236, 145, 112, 236, 232, 221, 53, 66, 90, 16, 41,\n\t\t16, 13, 3, 115, 14, 228, 7, 88, 79, 82, 121, 112, 5, 186,\n\t\t207, 252, 38, 171, 219, 65, 132, 201, 201, 252, 117, 218,\n\t\t238, 170, 145, 243, 41, 73, 56, 32, 36, 39, 196, 63, 116,\n\t\t117, 165, 114, 204, 81, 223, 226, 107, 13, 94, 173, 44, 211,\n\t\t170, 178, 15, 51, 227, 90, 42, 72, 114, 177, 50, 115, 154,\n\t\t38, 13, 4, 114, 92, 2, 47, 206, 67, 72, 214, 8, 72, 173, 144,\n\t\t104, 59, 138, 137, 24, 130, 111, 111, 91, 35, 9, 215, 214,\n\t\t154, 211, 106, 236, 3, 12, 39, 164, 221, 37, 109, 210, 34,\n\t\t96, 218, 246, 72, 102, 13, 219, 30, 215, 28, 188, 76, 89,\n\t\t59, 71, 171, 69, 141, 74, 76, 205, 189, 40, 109, 125, 46,\n\t\t226, 11, 19, 15, 156, 254, 21, 93, 4, 191, 155, 207, 204,\n\t\t10, 79, 193, 199, 103, 185, 126, 141, 109, 78, 10, 173, 53,\n\t\t213, 130, 199, 108, 174, 38, 254, 217, 150, 181, 52, 86, 238,\n\t\t115, 46, 60, 210, 47, 79, 64, 235, 10, 39, 198, 136, 88, 12,\n\t\t32, 226, 235, 5, 95, 151, 135, 5, 99, 140, 137, 150, 81, 80,\n\t\t124, 6, 96, 94, 230, 45, 244, 222, 224, 127, 69, 22, 60, 186,\n\t\t4, 3, 20, 196, 103, 105, 165, 67, 90, 155, 195, 93, 205, 54,\n\t\t235, 201, 42, 191, 76, 25, 182, 107, 247, 26, 227, 100, 101,\n\t\t236, 226, 26, 116, 113, 15, 192, 169, 14, 23, 85, 23, 78,\n\t\t66, 180, 157, 56, 246, 182, 37, 41, 236, 137, 101, 234, 151,\n\t\t145, 5, 48, 191, 248, 183, 172, 179, 51, 232, 184, 6, 77,\n\t\t75, 244, 26, 107, 96, 170, 165, 239, 100, 53, 158, 238, 155,\n\t\t141, 163, 158, 31, 160, 121, 255, 242, 233, 147, 187, 124,\n\t\t249, 244, 249, 167, 27, 1, 120, 195, 243, 186, 131, 206, 164,\n\t\t192, 248, 108, 22, 121, 7, 237, 80, 88, 162, 57, 15, 250,\n\t\t134, 125, 61, 130, 37, 71, 218, 164, 154, 142, 154, 80, 21,\n\t\t78, 6, 190, 0, 128, 18, 210, 25, 82, 222, 166, 111, 18, 173,\n\t\t91, 231, 229, 27, 165, 101, 240, 119, 103, 38, 157, 26, 0,\n\t\t174, 37, 237, 3, 217, 114, 173, 54, 42, 234, 154, 102, 71,\n\t\t198, 54, 123, 134, 194, 26, 56, 32, 31, 151, 34, 26, 159,\n\t\t254, 213, 38, 217, 117, 124, 124, 174, 29, 0, 251, 28, 28,\n\t\t209, 187, 177, 239, 214, 42, 159, 197, 254, 219, 246, 104,\n\t\t64, 229, 146, 201, 115, 209, 116, 204, 212, 166, 230, 64,\n\t\t148, 124, 90, 153, 103, 1, 63, 108, 122, 63, 4, 135, 27, 23,\n\t\t88, 202, 219, 33, 137, 99, 113, 169, 190, 78, 221, 72, 97,\n\t\t83, 75, 45, 34, 88, 100, 11, 67, 62, 235, 148, 15, 75, 206,\n\t\t23, 167, 169, 152, 83, 96, 171, 162, 68, 192, 202, 216, 172,\n\t\t122, 154, 245, 152, 147, 249, 124, 162, 6, 232, 113, 195,\n\t\t80, 246, 224, 182, 150, 194, 203, 157, 86, 139, 50, 41, 90,\n\t\t128, 211, 154, 185, 168, 151, 28, 0, 19, 120, 244, 106, 159,\n\t\t186, 37, 36, 81, 208, 245, 175, 14, 253, 172, 206, 180, 196,\n\t\t226, 113, 227, 57, 207, 240, 38, 188, 101, 133, 177, 192,\n\t\t194, 18, 178, 82, 210, 201, 195, 98, 211, 101, 205, 220, 200,\n\t\t89, 19, 91, 170, 228, 180, 8, 166, 14, 119, 146, 120, 11,\n\t\t90, 181, 49, 208, 126, 119, 69, 204, 7, 43, 187, 31, 218,\n\t\t81, 193, 98, 43, 210, 13, 82, 115, 255, 237, 48, 250, 57,\n\t\t214, 215, 233, 71, 135, 236, 163, 46, 64, 36, 252, 234, 197,\n\t\t246, 15, 89, 75, 226, 84, 200, 115, 115, 213, 120, 147, 141,\n\t\t200, 48, 111, 220, 238, 126, 136, 254, 107, 197, 105, 236,\n\t\t197, 209, 164, 1, 218, 37, 229, 144, 199, 138, 113, 150, 232,\n\t\t44, 159, 87, 125, 25, 192, 146, 184, 195, 43, 57, 150, 77,\n\t\t186, 135, 105, 82, 128, 58, 117, 246, 142, 113, 210, 51, 247,\n\t\t41, 184, 62, 124, 252, 249, 135, 79, 255, 190, 145, 64, 63,\n\t\t124, 91, 5, 163, 218, 125, 90, 114, 44, 211, 162, 170, 83,\n\t\t37, 214, 55, 75, 97, 30, 185, 72, 164, 31, 169, 55, 159, 224,\n\t\t117, 124, 44, 79, 239, 138, 211, 152, 170, 39, 112, 161, 167,\n\t\t105, 245, 116, 89, 246, 4, 198, 223, 41, 106, 6, 114, 26,\n\t\t8, 99, 178, 186, 249, 115, 204, 127, 41, 132, 42, 88, 213,\n\t\t93, 106, 181, 244, 152, 166, 121, 245, 206, 214, 221, 151,\n\t\t246, 49, 37, 216, 58, 177, 36, 159, 150, 24, 203, 20, 52,\n\t\t29, 46, 19, 244, 22, 13, 14, 15, 85, 242, 109, 73, 115, 215,\n\t\t91, 99, 108, 62, 78, 233, 77, 112, 173, 184, 166, 62, 40,\n\t\t62, 140, 35, 248, 252, 206, 182, 61, 104, 90, 247, 105, 13,\n\t\t75, 213, 122, 96, 133, 149, 137, 136, 173, 34, 173, 170, 120,\n\t\t90, 34, 10, 237, 144, 121, 33, 185, 78, 22, 105, 141, 25,\n\t\t94, 150, 162, 209, 51, 57, 142, 212, 190, 87, 19, 27, 154,\n\t\t56, 100, 188, 26, 248, 113, 231, 196, 170, 140, 133, 211,\n\t\t102, 203, 184, 4, 107, 32, 15, 47, 174, 98, 134, 237, 123,\n\t\t69, 44, 62, 66, 210, 117, 78, 191, 193, 225, 80, 231, 226,\n\t\t187, 26, 249, 96, 140, 179, 168, 154, 178, 225, 188, 210,\n\t\t25, 22, 81, 176, 222, 42, 186, 239, 124, 242, 131, 7, 7, 204,\n\t\t253, 44, 94, 221, 36, 175, 222, 129, 202, 192, 94, 3, 246,\n\t\t255, 221, 95, 234, 207, 191, 252, 250, 195, 246, 113, 253,\n\t\t112, 147, 251, 88, 238, 240, 83, 21, 38, 91, 4, 77, 172, 43,\n\t\t57, 51, 205, 84, 23, 189, 77, 211, 254, 96, 162, 242, 191,\n\t\t51, 176, 122, 77, 175, 155, 103, 221, 241, 103, 14, 122, 88,\n\t\t108, 117, 46, 139, 214, 124, 93, 97, 241, 195, 144, 96, 89,\n\t\t207, 25, 75, 123, 10, 28, 111, 66, 36, 66, 58, 111, 78, 129,\n\t\t85, 197, 218, 218, 49, 107, 44, 45, 162, 75, 189, 187, 21,\n\t\t112, 134, 205, 128, 114, 212, 72, 219, 111, 233, 88, 127,\n\t\t21, 33, 188, 71, 114, 44, 60, 111, 42, 169, 72, 110, 109,\n\t\t84, 212, 42, 80, 41, 34, 223, 156, 34, 193, 80, 147, 141,\n\t\t204, 118, 11, 123, 192, 177, 145, 226, 27, 230, 107, 132,\n\t\t49, 16, 217, 89, 146, 70, 198, 7, 154, 84, 102, 193, 111,\n\t\t103, 176, 0, 197, 34, 106, 186, 67, 188, 110, 136, 180, 3,\n\t\t36, 216, 218, 225, 167, 191, 67, 143, 255, 73, 29, 126, 250,\n\t\t251, 244, 120, 174, 249, 175, 157, 226, 167, 255, 72, 143,\n\t\t255, 109, 58, 252, 244, 84, 9, 212, 85, 119, 60, 89, 87, 209,\n\t\t158, 178, 109, 134, 90, 126, 222, 179, 104, 8, 220, 91, 141,\n\t\t181, 168, 85, 17, 19, 45, 125, 197, 100, 25, 251, 93, 245,\n\t\t168, 243, 110, 112, 149, 172, 249, 51, 139, 254, 72, 143,\n\t\t68, 63, 235, 239, 223, 20, 253, 136, 181, 78, 3, 255, 81,\n\t\t172, 245, 244, 240, 86, 177, 213, 243, 148, 223, 111, 90,\n\t\t117, 227, 109, 191, 188, 241, 229, 139, 192, 127, 245, 107,\n\t\t117, 241, 61, 178, 112, 47, 63, 125, 186, 97, 119, 45, 247,\n\t\t152, 241, 41, 47, 224, 59, 255, 246, 248, 197, 135, 254, 190,\n\t\t146, 239, 199, 175, 37, 60, 241, 213, 247, 41, 57, 191, 60,\n\t\t49, 217, 217, 61, 135, 232, 123, 154, 49, 39, 226, 253, 102,\n\t\t220, 193, 130, 131, 223, 183, 240, 110, 249, 7, 219, 1, 170,\n\t\t178, 223, 217, 29, 64, 72, 3, 33, 92, 13, 43, 214, 4, 110,\n\t\t145, 193, 24, 87, 248, 83, 204, 249, 82, 25, 222, 38, 235,\n\t\t191, 105, 94, 135, 165, 105, 14, 183, 154, 228, 128, 6, 205,\n\t\t44, 153, 16, 244, 36, 89, 191, 101, 169, 105, 201, 154, 18,\n\t\t54, 37, 160, 136, 189, 146, 237, 221, 33, 156, 56, 192, 201,\n\t\t218, 50, 140, 223, 8, 220, 245, 69, 221, 81, 106, 21, 229,\n\t\t241, 234, 120, 213, 66, 151, 128, 242, 22, 119, 172, 232,\n\t\t157, 235, 225, 178, 151, 81, 190, 161, 135, 172, 26, 10, 178,\n\t\t156, 62, 131, 254, 42, 22, 28, 34, 128, 49, 14, 81, 251, 46,\n\t\t96, 210, 12, 204, 183, 197, 194, 84, 191, 5, 4, 104, 169,\n\t\t62, 190, 156, 238, 194, 246, 63, 255, 244, 203, 243, 231,\n\t\t15, 95, 126, 253, 252, 236, 206, 31, 255, 121, 227, 32, 175,\n\t\t227, 88, 65, 13, 242, 2, 210, 247, 27, 66, 161, 57, 140, 66,\n\t\t243, 98, 199, 135, 122, 35, 102, 108, 58, 156, 31, 245, 114,\n\t\t184, 12, 255, 237, 245, 75, 175, 188, 101, 175, 156, 108,\n\t\t151, 59, 122, 48, 191, 187, 120, 31, 95, 123, 30, 231, 31,\n\t\t193, 196, 77, 152, 197, 211, 192, 182, 158, 37, 201, 97, 156,\n\t\t191, 43, 101, 14, 239, 236, 225, 225, 11, 236, 104, 76, 67,\n\t\t183, 79, 64, 251, 223, 229, 118, 102, 174, 97, 73, 251, 56,\n\t\t84, 153, 77, 137, 150, 121, 183, 43, 63, 246, 110, 161, 247,\n\t\t229, 171, 243, 133, 23, 69, 88, 179, 33, 43, 178, 87, 1, 119,\n\t\t81, 175, 2, 21, 217, 215, 48, 203, 193, 248, 70, 75, 101,\n\t\t79, 220, 53, 14, 242, 130, 55, 94, 94, 121, 123, 23, 193,\n\t\t3, 123, 229, 244, 133, 19, 211, 195, 99, 110, 219, 177, 24,\n\t\t58, 220, 191, 253, 208, 217, 242, 8, 246, 93, 113, 251, 180,\n\t\t105, 175, 176, 179, 167, 186, 78, 197, 199, 85, 194, 94, 187,\n\t\t103, 59, 241, 24, 112, 245, 7, 251, 179, 195, 1, 53, 120,\n\t\t121, 136, 96, 54, 95, 44, 152, 239, 79, 189, 184, 24, 71,\n\t\t185, 215, 149, 98, 240, 227, 155, 146, 231, 114, 35, 234,\n\t\t78, 87, 135, 75, 238, 243, 93, 28, 22, 206, 118, 235, 213,\n\t\t168, 63, 252, 111, 221, 252, 111, 221, 252, 119, 175, 27,\n\t\t1, 225, 251, 109, 43, 71, 46, 186, 143, 142, 253, 233, 203,\n\t\t179, 251, 191, 231, 155, 132, 187, 118, 135, 44, 166, 6, 196,\n\t\t169, 31, 68, 83, 198, 195, 216, 212, 217, 149, 198, 132, 170,\n\t\t114, 155, 175, 68, 39, 199, 221, 64, 79, 205, 236, 161, 16,\n\t\t87, 251, 234, 204, 125, 122, 240, 135, 234, 7, 59, 211, 85,\n\t\t129, 218, 179, 202, 101, 195, 94, 246, 223, 156, 243, 32,\n\t\t223, 67, 4, 193, 30, 223, 211, 124, 207, 242, 87, 143, 59,\n\t\t107, 83, 102, 195, 200, 237, 250, 254, 200, 110, 77, 188,\n\t\t214, 12, 138, 132, 18, 105, 153, 45, 79, 61, 95, 211, 156,\n\t\t166, 235, 14, 9, 5, 220, 62, 141, 154, 37, 137, 34, 200, 241,\n\t\t121, 254, 56, 173, 250, 211, 96, 191, 51, 23, 212, 30, 110,\n\t\t227, 15, 87, 135, 251, 191, 60, 81, 140, 126, 154, 150, 21,\n\t\t81, 59, 12, 202, 225, 47, 223, 35, 66, 211, 227, 16, 231,\n\t\t105, 107, 10, 165, 219, 216, 232, 90, 223, 252, 62, 198, 253,\n\t\t163, 134, 69, 45, 30, 188, 69, 234, 62, 45, 113, 26, 106,\n\t\t171, 252, 74, 174, 223, 47, 183, 120, 130, 92, 143, 170, 72,\n\t\t173, 71, 4, 147, 73, 148, 202, 23, 107, 160, 125, 148, 184,\n\t\t235, 254, 64, 55, 180, 17, 131, 251, 2, 212, 16, 252, 96,\n\t\t214, 218, 78, 246, 234, 95, 191, 33, 190, 178, 27, 222, 7,\n\t\t173, 253, 240, 229, 150, 29, 173, 221, 43, 39, 174, 228, 81,\n\t\t199, 11, 225, 96, 153, 129, 156, 30, 16, 243, 114, 168, 17,\n\t\t226, 222, 177, 100, 207, 106, 227, 200, 214, 41, 102, 183,\n\t\t92, 110, 176, 96, 177, 170, 168, 83, 155, 62, 78, 253, 85,\n\t\t137, 79, 166, 176, 41, 138, 198, 172, 209, 179, 38, 9, 117,\n\t\t196, 95, 172, 174, 148, 35, 126, 50, 215, 136, 38, 195, 8,\n\t\t67, 230, 203, 59, 126, 115, 90, 29, 165, 125, 86, 50, 92,\n\t\t9, 127, 79, 105, 183, 180, 37, 87, 85, 194, 249, 251, 43,\n\t\t237, 142, 5, 125, 21, 115, 87, 232, 9, 196, 192, 241, 102,\n\t\t107, 88, 52, 70, 88, 76, 72, 28, 195, 143, 115, 102, 97, 238,\n\t\t146, 213, 196, 240, 140, 144, 157, 70, 147, 205, 139, 166,\n\t\t131, 137, 40, 81, 196, 150, 40, 249, 27, 41, 73, 226, 162,\n\t\t100, 25, 100, 129, 173, 166, 211, 186, 239, 39, 106, 143,\n\t\t4, 228, 104, 115, 1, 230, 28, 195, 200, 73, 2, 136, 149, 33,\n\t\t181, 96, 135, 126, 214, 155, 115, 99, 210, 146, 245, 21, 121,\n\t\t72, 18, 35, 188, 91, 104, 180, 249, 126, 204, 154, 40, 136,\n\t\t188, 76, 109, 32, 239, 241, 152, 172, 219, 47, 255, 205, 50,\n\t\t7, 194, 170, 112, 220, 78, 235, 111, 146, 101, 12, 7, 95,\n\t\t102, 23, 72, 160, 132, 245, 163, 23, 153, 179, 20, 186, 143,\n\t\t167, 255, 77, 217, 255, 77, 217, 255, 154, 41, 155, 10, 253,\n\t\t111, 202, 254, 111, 202, 254, 253, 166, 44, 78, 220, 204,\n\t\t218, 123, 138, 198, 15, 31, 126, 184, 65, 219, 106, 55, 208,\n\t\t181, 169, 231, 67, 174, 36, 245, 126, 31, 100, 228, 242, 42,\n\t\t25, 98, 158, 184, 197, 103, 185, 124, 13, 192, 228, 229, 41,\n\t\t166, 238, 235, 34, 24, 32, 155, 161, 49, 200, 137, 213, 144,\n\t\t153, 85, 105, 55, 204, 124, 43, 172, 90, 92, 65, 246, 17,\n\t\t255, 78, 75, 92, 93, 212, 116, 254, 206, 116, 143, 253, 117,\n\t\t241, 172, 244, 55, 175, 132, 57, 57, 65, 198, 141, 26, 116,\n\t\t77, 129, 137, 182, 64, 100, 37, 36, 117, 36, 234, 100, 207,\n\t\t99, 203, 98, 221, 21, 14, 145, 108, 149, 1, 213, 56, 159,\n\t\t229, 229, 137, 122, 132, 214, 74, 62, 219, 79, 157, 252, 246,\n\t\t128, 147, 173, 181, 212, 134, 167, 46, 218, 247, 33, 42, 50,\n\t\t152, 45, 188, 230, 213, 96, 45, 34, 163, 220, 152, 85, 42,\n\t\t110, 196, 120, 72, 231, 9, 187, 144, 81, 90, 135, 217, 27,\n\t\t253, 180, 27, 74, 214, 197, 2, 233, 179, 216, 210, 232, 75,\n\t\t169, 54, 36, 58, 68, 115, 241, 51, 233, 11, 178, 161, 170,\n\t\t111, 75, 10, 72, 139, 23, 9, 38, 185, 73, 221, 74, 172, 19,\n\t\t96, 225, 121, 116, 120, 10, 108, 123, 200, 132, 58, 178, 95,\n\t\t219, 158, 232, 53, 231, 9, 79, 130, 29, 133, 91, 227, 225,\n\t\t196, 165, 179, 86, 204, 193, 69, 100, 105, 135, 225, 94, 26,\n\t\t82, 176, 216, 115, 90, 247, 43, 5, 123, 247, 180, 63, 89,\n\t\t30, 140, 42, 26, 110, 156, 102, 88, 165, 102, 217, 65, 248,\n\t\t162, 136, 48, 50, 138, 153, 110, 63, 209, 75, 228, 39, 50,\n\t\t59, 183, 227, 219, 97, 164, 45, 235, 33, 181, 5, 64, 54, 160,\n\t\t49, 106, 75, 108, 117, 90, 133, 75, 216, 94, 53, 75, 251,\n\t\t80, 75, 141, 115, 90, 100, 76, 244, 65, 2, 180, 255, 112,\n\t\t169, 187, 245, 195, 231, 207, 31, 63, 252, 243, 134, 10, 163,\n\t\t89, 9, 92, 204, 217, 247, 37, 167, 184, 69, 152, 116, 46,\n\t\t182, 194, 192, 66, 97, 105, 217, 18, 162, 98, 14, 62, 42,\n\t\t80, 20, 82, 43, 242, 170, 83, 43, 10, 132, 78, 150, 30, 210,\n\t\t177, 47, 217, 202, 215, 95, 158, 50, 124, 33, 116, 55, 18,\n\t\t145, 30, 198, 186, 114, 215, 240, 219, 97, 127, 90, 220, 208,\n\t\t196, 179, 29, 131, 104, 78, 145, 211, 106, 187, 156, 214,\n\t\t146, 216, 15, 242, 1, 176, 168, 73, 24, 242, 1, 222, 210,\n\t\t229, 171, 248, 74, 90, 115, 162, 27, 137, 52, 91, 13, 120,\n\t\t169, 242, 94, 21, 107, 81, 247, 197, 156, 109, 154, 241, 3,\n\t\t171, 198, 13, 249, 196, 197, 101, 233, 94, 221, 151, 245,\n\t\t7, 252, 253, 105, 213, 178, 87, 215, 15, 88, 14, 10, 248,\n\t\t168, 39, 244, 241, 191, 235, 213, 20, 168, 138, 100, 218,\n\t\t105, 11, 180, 227, 180, 223, 12, 237, 94, 97, 157, 108, 28,\n\t\t186, 128, 104, 219, 9, 140, 203, 57, 117, 73, 2, 249, 102,\n\t\t190, 93, 102, 134, 62, 23, 43, 106, 22, 10, 11, 110, 118,\n\t\t233, 136, 103, 66, 93, 160, 122, 120, 39, 133, 230, 114, 60,\n\t\t86, 23, 40, 104, 123, 234, 155, 124, 156, 223, 119, 179, 203,\n\t\t219, 134, 221, 95, 153, 31, 63, 157, 63, 188, 124, 133, 65,\n\t\t174, 135, 59, 41, 115, 189, 249, 177, 32, 18, 39, 24, 80,\n\t\t72, 41, 213, 172, 220, 2, 117, 113, 64, 168, 9, 30, 167, 1,\n\t\t142, 144, 232, 65, 100, 249, 213, 195, 151, 69, 178, 54, 87,\n\t\t18, 215, 135, 42, 54, 37, 45, 81, 184, 145, 186, 38, 187,\n\t\t243, 241, 74, 150, 49, 92, 218, 14, 210, 208, 201, 54, 233,\n\t\t117, 159, 223, 10, 242, 160, 200, 107, 204, 156, 206, 138,\n\t\t10, 188, 200, 57, 160, 142, 128, 241, 32, 184, 80, 71, 222,\n\t\t37, 201, 68, 53, 255, 89, 145, 221, 94, 78, 188, 60, 197,\n\t\t154, 60, 8, 25, 57, 69, 20, 225, 59, 198, 160, 26, 252, 50,\n\t\t67, 83, 82, 187, 172, 158, 88, 146, 47, 171, 206, 103, 209,\n\t\t91, 85, 239, 84, 64, 49, 34, 228, 88, 224, 224, 144, 29, 173,\n\t\t128, 13, 81, 80, 192, 200, 210, 92, 121, 5, 174, 86, 9, 158,\n\t\t165, 135, 169, 242, 147, 177, 127, 104, 198, 96, 12, 195,\n\t\t215, 99, 221, 56, 132, 26, 151, 87, 105, 70, 42, 39, 50, 100,\n\t\t222, 87, 94, 158, 82, 71, 125, 148, 240, 106, 41, 254, 8,\n\t\t73, 215, 22, 17, 33, 85, 18, 71, 139, 102, 229, 133, 225,\n\t\t211, 170, 121, 19, 138, 91, 161, 137, 33, 118, 15, 204, 121,\n\t\t241, 197, 53, 134, 197, 155, 250, 196, 66, 150, 241, 125,\n\t\t192, 77, 171, 86, 254, 94, 116, 177, 68, 68, 37, 167, 170,\n\t\t149, 184, 132, 5, 10, 12, 79, 48, 197, 49, 100, 151, 181,\n\t\t208, 144, 148, 151, 211, 83, 9, 83, 35, 162, 82, 253, 152,\n\t\t194, 89, 222, 90, 84, 89, 140, 181, 204, 222, 102, 144, 40,\n\t\t170, 221, 171, 198, 46, 35, 187, 227, 128, 169, 66, 196, 52,\n\t\t116, 172, 132, 59, 229, 55, 115, 156, 238, 108, 240, 97, 72,\n\t\t116, 231, 174, 89, 13, 110, 197, 16, 81, 226, 64, 93, 154,\n\t\t78, 116, 197, 49, 179, 66, 171, 148, 116, 48, 83, 240, 216,\n\t\t249, 24, 161, 107, 78, 200, 41, 212, 129, 157, 175, 161, 157,\n\t\t98, 204, 101, 138, 49, 23, 83, 94, 178, 26, 141, 177, 54,\n\t\t63, 86, 131, 170, 211, 229, 68, 209, 230, 11, 79, 107, 105,\n\t\t153, 240, 126, 232, 130, 55, 221, 208, 82, 229, 213, 189,\n\t\t105, 39, 12, 31, 104, 79, 180, 6, 132, 35, 55, 106, 7, 33,\n\t\t44, 80, 143, 211, 176, 47, 116, 23, 144, 225, 57, 88, 119,\n\t\t156, 230, 201, 191, 60, 177, 254, 164, 251, 112, 146, 56,\n\t\t152, 76, 97, 17, 236, 217, 234, 32, 21, 75, 56, 234, 4, 162,\n\t\t38, 85, 30, 34, 15, 196, 87, 235, 236, 18, 219, 188, 97, 157,\n\t\t187, 134, 21, 78, 60, 152, 81, 173, 51, 69, 221, 75, 55, 16,\n\t\t125, 218, 15, 153, 223, 113, 110, 239, 201, 43, 24, 18, 215,\n\t\t62, 73, 31, 84, 75, 14, 66, 135, 157, 204, 146, 156, 51, 85,\n\t\t242, 73, 101, 58, 233, 120, 232, 112, 20, 121, 9, 45, 213,\n\t\t106, 13, 203, 143, 108, 152, 121, 148, 109, 82, 148, 174,\n\t\t51, 38, 84, 95, 151, 102, 194, 1, 19, 40, 151, 3, 124, 96,\n\t\t93, 94, 133, 156, 172, 175, 36, 59, 75, 167, 38, 215, 110,\n\t\t218, 58, 85, 19, 66, 101, 103, 12, 86, 114, 117, 218, 87,\n\t\t5, 153, 196, 146, 110, 211, 217, 135, 69, 36, 107, 72, 235,\n\t\t7, 146, 86, 95, 51, 57, 223, 210, 68, 85, 111, 34, 237, 108,\n\t\t133, 202, 62, 170, 128, 82, 105, 199, 249, 193, 249, 162,\n\t\t186, 36, 103, 189, 175, 54, 229, 247, 184, 78, 48, 252, 207,\n\t\t249, 185, 40, 104, 231, 146, 163, 217, 99, 93, 214, 234, 60,\n\t\t21, 201, 19, 96, 177, 211, 98, 1, 52, 149, 129, 98, 142, 159,\n\t\t86, 243, 107, 120, 205, 44, 227, 62, 173, 203, 33, 154, 195,\n\t\t147, 200, 138, 230, 226, 94, 237, 162, 102, 147, 238, 103,\n\t\t118, 38, 9, 68, 103, 149, 5, 99, 128, 64, 211, 222, 235, 99,\n\t\t44, 145, 185, 21, 113, 112, 153, 7, 69, 51, 252, 41, 44, 114,\n\t\t158, 57, 208, 197, 2, 83, 9, 160, 233, 113, 246, 78, 108,\n\t\t172, 136, 125, 198, 95, 242, 230, 30, 246, 114, 17, 249, 173,\n\t\t174, 205, 164, 162, 205, 107, 73, 116, 217, 249, 82, 180,\n\t\t206, 130, 249, 197, 172, 76, 10, 181, 214, 242, 35, 6, 203,\n\t\t228, 72, 233, 62, 15, 153, 164, 155, 203, 133, 156, 14, 15,\n\t\t248, 142, 100, 170, 52, 51, 80, 138, 141, 183, 2, 96, 190,\n\t\t136, 18, 19, 167, 29, 247, 46, 134, 192, 219, 112, 236, 229,\n\t\t16, 234, 68, 29, 219, 93, 69, 107, 187, 205, 29, 235, 209,\n\t\t44, 159, 70, 158, 22, 154, 118, 239, 202, 178, 37, 150, 37,\n\t\t114, 250, 63, 98, 222, 60, 89, 133, 126, 177, 129, 222, 51,\n\t\t74, 79, 77, 203, 146, 223, 205, 94, 114, 24, 69, 98, 24, 112,\n\t\t241, 204, 63, 64, 77, 16, 113, 63, 248, 62, 101, 41, 70, 243,\n\t\t212, 10, 12, 171, 118, 37, 4, 110, 117, 193, 25, 101, 76,\n\t\t230, 255, 206, 121, 95, 140, 12, 227, 120, 248, 133, 163,\n\t\t124, 117, 124, 61, 135, 136, 223, 244, 208, 229, 85, 15, 159,\n\t\t56, 62, 44, 91, 184, 8, 165, 164, 16, 149, 154, 22, 158, 15,\n\t\t8, 164, 187, 36, 81, 55, 151, 238, 242, 122, 130, 232, 90,\n\t\t164, 26, 47, 44, 26, 28, 87, 95, 30, 113, 157, 169, 21, 74,\n\t\t74, 197, 252, 203, 19, 133, 193, 101, 116, 53, 121, 218, 211,\n\t\t60, 105, 8, 217, 244, 240, 125, 73, 129, 230, 182, 154, 66,\n\t\t2, 112, 239, 110, 43, 137, 212, 98, 207, 193, 124, 147, 6,\n\t\t18, 209, 200, 97, 57, 53, 64, 57, 252, 136, 101, 107, 171,\n\t\t214, 104, 103, 203, 202, 213, 95, 188, 251, 68, 96, 72, 80,\n\t\t202, 172, 176, 4, 224, 147, 196, 185, 236, 204, 151, 226,\n\t\t173, 130, 117, 46, 58, 243, 51, 45, 2, 119, 123, 221, 125,\n\t\t189, 210, 76, 141, 192, 2, 200, 164, 113, 161, 240, 84, 205,\n\t\t96, 7, 71, 240, 11, 69, 78, 194, 141, 115, 242, 192, 140,\n\t\t229, 62, 11, 82, 86, 49, 63, 180, 211, 202, 154, 114, 68,\n\t\t9, 147, 110, 218, 214, 1, 58, 235, 20, 132, 67, 206, 156,\n\t\t149, 103, 104, 85, 239, 116, 216, 139, 145, 246, 242, 58,\n\t\t237, 13, 209, 3, 45, 153, 183, 53, 24, 156, 92, 3, 150, 58,\n\t\t175, 137, 152, 51, 112, 106, 138, 63, 220, 21, 77, 14, 12,\n\t\t105, 130, 247, 229, 13, 90, 51, 241, 248, 1, 87, 25, 28, 116,\n\t\t142, 108, 182, 139, 249, 15, 52, 183, 143, 247, 131, 251,\n\t\t8, 204, 31, 182, 231, 159, 127, 252, 240, 217, 253, 248, 225,\n\t\t198, 145, 217, 111, 2, 166, 123, 205, 35, 76, 201, 43, 53,\n\t\t58, 231, 220, 175, 142, 26, 125, 59, 165, 2, 168, 125, 223,\n\t\t42, 180, 69, 37, 110, 108, 85, 115, 18, 190, 149, 3, 123,\n\t\t126, 83, 14, 255, 42, 31, 118, 28, 18, 38, 111, 208, 45, 190,\n\t\t146, 134, 251, 198, 23, 194, 182, 107, 234, 249, 27, 252,\n\t\t144, 87, 188, 196, 124, 81, 89, 240, 38, 22, 180, 64, 248,\n\t\t140, 239, 238, 37, 229, 222, 117, 212, 228, 126, 142, 244,\n\t\t71, 239, 240, 64, 120, 219, 72, 255, 251, 249, 249, 95, 55,\n\t\t67, 157, 255, 210, 161, 126, 85, 203, 123, 59, 212, 212, 191,\n\t\t13, 156, 242, 42, 247, 249, 43, 99, 13, 239, 250, 119, 25,\n\t\t236, 19, 143, 199, 127, 233, 96, 255, 252, 227, 255, 185,\n\t\t245, 195, 207, 55, 158, 202, 94, 119, 24, 22, 182, 243, 235,\n\t\t106, 88, 61, 216, 182, 201, 182, 163, 234, 35, 164, 22, 111,\n\t\t184, 20, 198, 230, 82, 70, 41, 220, 20, 164, 197, 216, 221,\n\t\t92, 226, 29, 20, 151, 113, 206, 154, 106, 119, 217, 151, 61,\n\t\t4, 160, 164, 159, 134, 238, 65, 2, 104, 84, 80, 38, 44, 172,\n\t\t213, 211, 14, 215, 120, 152, 232, 179, 250, 28, 53, 201, 52,\n\t\t116, 16, 163, 218, 5, 91, 42, 73, 248, 156, 131, 159, 22,\n\t\t135, 72, 102, 189, 133, 242, 174, 41, 12, 254, 126, 229, 234,\n\t\t42, 107, 112, 226, 53, 57, 218, 83, 214, 184, 213, 32, 232,\n\t\t142, 85, 163, 198, 120, 186, 23, 234, 2, 50, 175, 73, 23,\n\t\t100, 77, 123, 250, 125, 157, 164, 152, 119, 210, 142, 202,\n\t\t48, 119, 123, 39, 193, 5, 127, 191, 151, 56, 244, 182, 247,\n\t\t18, 223, 75, 90, 166, 182, 152, 114, 89, 23, 49, 177, 72,\n\t\t138, 128, 187, 132, 238, 228, 120, 45, 18, 176, 12, 11, 10,\n\t\t37, 17, 221, 19, 141, 7, 209, 189, 197, 13, 122, 121, 74,\n\t\t17, 154, 70, 134, 199, 100, 81, 116, 151, 40, 123, 159, 86,\n\t\t74, 75, 232, 97, 17, 109, 0, 80, 28, 236, 124, 81, 51, 67,\n\t\t226, 49, 134, 240, 101, 90, 22, 7, 153, 204, 49, 45, 69, 49,\n\t\t108, 211, 214, 8, 112, 251, 92, 230, 190, 202, 234, 244, 102,\n\t\t40, 9, 2, 90, 224, 42, 28, 1, 64, 55, 52, 166, 93, 249, 242,\n\t\t229, 137, 74, 242, 121, 26, 69, 179, 221, 199, 107, 19, 83,\n\t\t96, 124, 253, 218, 249, 37, 211, 242, 165, 37, 230, 250, 27,\n\t\t159, 153, 80, 89, 153, 114, 242, 233, 164, 126, 50, 87, 180,\n\t\t20, 201, 196, 87, 90, 136, 246, 216, 36, 238, 155, 101, 229,\n\t\t202, 223, 157, 250, 187, 139, 210, 32, 114, 67, 60, 40, 58,\n\t\t178, 242, 247, 229, 41, 215, 234, 251, 66, 192, 200, 207,\n\t\t86, 8, 133, 230, 129, 202, 94, 73, 27, 165, 120, 30, 239,\n\t\t129, 153, 110, 120, 76, 7, 136, 17, 76, 234, 221, 95, 48,\n\t\t204, 47, 167, 239, 203, 42, 44, 248, 82, 101, 110, 87, 155,\n\t\t178, 242, 142, 50, 229, 220, 174, 16, 114, 144, 249, 129,\n\t\t180, 251, 252, 249, 211, 13, 8, 114, 111, 42, 233, 8, 234,\n\t\t32, 141, 232, 243, 90, 15, 36, 203, 120, 181, 110, 26, 95,\n\t\t200, 156, 180, 160, 187, 69, 245, 12, 30, 175, 5, 203, 242,\n\t\t26, 198, 126, 153, 53, 178, 86, 36, 16, 174, 31, 54, 135,\n\t\t210, 8, 33, 164, 220, 92, 105, 192, 100, 146, 151, 53, 242,\n\t\t200, 170, 222, 18, 62, 214, 193, 9, 23, 119, 96, 54, 144,\n\t\t21, 167, 223, 110, 134, 198, 159, 53, 130, 24, 19, 75, 62,\n\t\t87, 37, 53, 112, 85, 28, 190, 125, 18, 89, 30, 242, 193, 249,\n\t\t148, 130, 186, 180, 215, 3, 243, 131, 149, 122, 177, 3, 68,\n\t\t195, 244, 65, 189, 84, 200, 28, 156, 138, 54, 10, 167, 183,\n\t\t162, 222, 21, 225, 43, 185, 37, 147, 104, 54, 196, 106, 237,\n\t\t136, 91, 138, 103, 172, 122, 111, 231, 94, 200, 98, 75, 39,\n\t\t135, 138, 89, 249, 225, 235, 222, 170, 166, 226, 170, 21,\n\t\t199, 227, 116, 218, 96, 65, 6, 14, 52, 70, 208, 127, 234,\n\t\t26, 17, 79, 40, 182, 189, 2, 51, 97, 54, 122, 17, 137, 250,\n\t\t242, 148, 70, 152, 198, 4, 85, 159, 86, 197, 96, 128, 149,\n\t\t217, 101, 211, 48, 247, 38, 1, 104, 44, 105, 239, 25, 93,\n\t\t127, 217, 165, 18, 19, 123, 178, 173, 91, 162, 71, 158, 202,\n\t\t96, 81, 215, 23, 78, 0, 192, 53, 89, 131, 31, 89, 144, 208,\n\t\t166, 33, 67, 150, 209, 129, 107, 79, 171, 57, 19, 213, 43,\n\t\t104, 100, 167, 61, 46, 187, 44, 156, 237, 122, 176, 82, 46,\n\t\t103, 247, 249, 249, 159, 31, 47, 95, 73, 144, 236, 221, 248,\n\t\t252, 99, 244, 113, 17, 158, 135, 117, 199, 99, 77, 32, 240,\n\t\t16, 8, 34, 215, 22, 131, 13, 129, 176, 190, 58, 9, 19, 188,\n\t\t205, 45, 230, 1, 63, 230, 22, 79, 67, 245, 65, 110, 177, 224,\n\t\t11, 134, 133, 31, 74, 226, 157, 89, 246, 108, 161, 224, 203,\n\t\t70, 150, 14, 19, 86, 13, 201, 43, 147, 117, 132, 181, 140,\n\t\t175, 83, 52, 235, 121, 30, 159, 133, 187, 253, 90, 243, 25,\n\t\t88, 16, 247, 170, 177, 198, 157, 106, 44, 42, 247, 107, 193,\n\t\t134, 212, 68, 49, 122, 31, 155, 152, 95, 139, 195, 14, 174,\n\t\t230, 166, 156, 125, 95, 53, 215, 34, 44, 52, 118, 172, 239,\n\t\t164, 181, 77, 242, 14, 47, 79, 212, 195, 66, 33, 188, 169,\n\t\t56, 187, 85, 167, 227, 29, 203, 233, 85, 201, 219, 87, 212,\n\t\t233, 248, 208, 116, 162, 220, 151, 120, 83, 208, 246, 230,\n\t\t103, 127, 176, 141, 15, 154, 248, 242, 68, 115, 172, 223,\n\t\t211, 222, 171, 227, 55, 254, 19, 90, 130, 0, 107, 170, 29,\n\t\t240, 79, 40, 43, 27, 116, 69, 100, 20, 254, 201, 122, 199,\n\t\t166, 121, 248, 134, 143, 95, 234, 193, 59, 189, 60, 197, 52,\n\t\t245, 220, 252, 39, 189, 252, 251, 26, 249, 242, 148, 10, 45,\n\t\t238, 109, 78, 190, 186, 196, 144, 36, 211, 207, 64, 144, 179,\n\t\t252, 255, 128, 156, 35, 243, 154, 245, 175, 148, 8, 28, 190,\n\t\t156, 95, 159, 231, 245, 251, 229, 187, 47, 183, 47, 253, 132,\n\t\t44, 155, 217, 17, 223, 227, 125, 126, 111, 95, 190, 60, 101,\n\t\t202, 75, 236, 127, 69, 35, 78, 223, 110, 197, 221, 157, 226,\n\t\t211, 79, 191, 124, 126, 190, 92, 220, 212, 173, 254, 125,\n\t\t113, 31, 182, 91, 5, 107, 53, 5, 11, 161, 255, 240, 192, 169,\n\t\t42, 85, 206, 164, 62, 223, 93, 163, 82, 224, 156, 172, 41,\n\t\t74, 177, 109, 78, 145, 140, 83, 218, 220, 80, 71, 157, 114,\n\t\t40, 236, 176, 89, 246, 202, 114, 215, 131, 58, 197, 64, 118,\n\t\t92, 182, 128, 240, 41, 255, 189, 209, 196, 118, 246, 164,\n\t\t204, 22, 152, 92, 187, 13, 81, 182, 134, 22, 218, 235, 246,\n\t\t155, 226, 212, 178, 52, 252, 176, 27, 94, 18, 33, 155, 90,\n\t\t251, 146, 227, 25, 245, 85, 41, 18, 192, 12, 221, 222, 59,\n\t\t142, 12, 98, 28, 159, 41, 95, 185, 115, 180, 111, 180, 107,\n\t\t180, 103, 180, 99, 98, 219, 12, 224, 57, 165, 77, 187, 69,\n\t\t123, 229, 245, 123, 233, 251, 104, 81, 175, 117, 136, 246,\n\t\t135, 118, 204, 250, 166, 35, 222, 246, 105, 176, 222, 60,\n\t\t221, 14, 197, 150, 210, 226, 82, 92, 119, 180, 103, 69, 104,\n\t\t210, 229, 205, 132, 32, 243, 239, 153, 43, 206, 114, 232,\n\t\t75, 239, 219, 241, 78, 48, 72, 247, 102, 104, 228, 213, 218,\n\t\t241, 86, 13, 118, 199, 119, 96, 59, 251, 237, 213, 199, 41,\n\t\t33, 103, 14, 115, 226, 208, 117, 108, 217, 165, 104, 218,\n\t\t213, 97, 108, 247, 15, 204, 111, 178, 191, 82, 108, 50, 102,\n\t\t223, 140, 50, 204, 175, 117, 64, 131, 13, 165, 77, 123, 116,\n\t\t137, 194, 17, 198, 158, 150, 212, 170, 31, 235, 97, 86, 113,\n\t\t55, 198, 69, 195, 104, 153, 163, 6, 156, 179, 39, 171, 41,\n\t\t30, 208, 33, 108, 62, 201, 191, 51, 179, 85, 238, 109, 176,\n\t\t149, 102, 75, 111, 206, 83, 110, 195, 105, 14, 164, 76, 174,\n\t\t87, 221, 243, 106, 189, 61, 92, 50, 111, 215, 218, 59, 167,\n\t\t228, 219, 89, 117, 159, 246, 230, 215, 159, 126, 249, 154,\n\t\t2, 59, 238, 86, 248, 132, 133, 122, 63, 187, 209, 100, 45,\n\t\t155, 251, 131, 250, 121, 72, 9, 159, 33, 231, 169, 221, 227,\n\t\t216, 5, 100, 224, 94, 219, 236, 217, 81, 87, 86, 236, 53,\n\t\t27, 171, 152, 169, 107, 0, 233, 124, 209, 144, 225, 165, 6,\n\t\t92, 196, 171, 155, 15, 3, 23, 90, 220, 148, 98, 109, 158,\n\t\t138, 33, 248, 50, 23, 6, 82, 59, 98, 181, 47, 15, 23, 92,\n\t\t15, 63, 156, 234, 78, 7, 248, 182, 13, 109, 236, 139, 69,\n\t\t183, 11, 98, 32, 50, 172, 148, 151, 81, 215, 168, 59, 68,\n\t\t16, 255, 0, 143, 7, 217, 100, 43, 122, 160, 157, 177, 247,\n\t\t16, 55, 98, 40, 138, 10, 186, 146, 242, 31, 76, 61, 164, 57,\n\t\t4, 216, 212, 222, 106, 176, 95, 253, 249, 35, 64, 38, 166,\n\t\t235, 124, 171, 222, 253, 190, 91, 161, 97, 177, 134, 217,\n\t\t200, 187, 63, 197, 91, 190, 222, 123, 119, 211, 32, 108, 14,\n\t\t240, 2, 37, 210, 134, 64, 47, 157, 41, 188, 107, 94, 187,\n\t\t127, 124, 252, 124, 227, 184, 29, 55, 46, 250, 189, 232, 51,\n\t\t199, 46, 14, 164, 177, 238, 104, 8, 134, 181, 102, 81, 100,\n\t\t16, 106, 57, 245, 243, 77, 75, 121, 90, 190, 103, 101, 14,\n\t\t221, 103, 216, 102, 57, 121, 141, 222, 63, 123, 107, 156,\n\t\t246, 243, 108, 197, 6, 79, 14, 204, 89, 65, 212, 53, 198,\n\t\t132, 26, 125, 121, 180, 222, 36, 99, 225, 213, 146, 59, 173,\n\t\t236, 106, 136, 92, 49, 34, 118, 231, 17, 243, 16, 33, 7, 97,\n\t\t85, 90, 93, 92, 128, 183, 189, 195, 109, 42, 5, 8, 254, 110,\n\t\t70, 24, 24, 15, 159, 93, 28, 135, 148, 59, 3, 147, 85, 203,\n\t\t203, 68, 236, 49, 74, 200, 226, 49, 170, 48, 105, 187, 78,\n\t\t195, 154, 130, 34, 208, 22, 65, 128, 44, 241, 183, 45, 96,\n\t\t94, 191, 167, 239, 185, 128, 83, 14, 126, 238, 1, 117, 157,\n\t\t205, 228, 252, 25, 45, 186, 128, 207, 2, 146, 103, 164, 183,\n\t\t103, 34, 13, 207, 138, 55, 188, 39, 90, 107, 61, 36, 5, 42,\n\t\t235, 162, 155, 51, 36, 159, 29, 133, 238, 251, 119, 89, 219,\n\t\t167, 239, 187, 34, 83, 232, 190, 190, 60, 149, 57, 36, 11,\n\t\t245, 105, 115, 23, 117, 60, 102, 217, 154, 186, 134, 61, 34,\n\t\t69, 63, 213, 21, 45, 69, 42, 136, 134, 227, 149, 152, 169,\n\t\t202, 102, 71, 233, 136, 180, 3, 34, 102, 126, 94, 93, 63,\n\t\t144, 89, 214, 176, 52, 83, 111, 107, 88, 248, 39, 192, 98,\n\t\t199, 92, 82, 143, 14, 50, 225, 36, 219, 37, 142, 228, 235,\n\t\t105, 37, 37, 199, 36, 89, 149, 133, 115, 159, 197, 35, 222,\n\t\t34, 192, 87, 178, 20, 65, 72, 0, 26, 153, 210, 131, 137, 106,\n\t\t217, 101, 36, 174, 186, 172, 213, 20, 5, 52, 131, 69, 244,\n\t\t39, 69, 216, 212, 106, 121, 133, 192, 110, 74, 150, 41, 179,\n\t\t0, 5, 56, 171, 98, 65, 113, 114, 154, 56, 11, 119, 162, 80,\n\t\t78, 7, 139, 121, 219, 201, 45, 114, 187, 184, 42, 62, 174,\n\t\t142, 237, 179, 10, 26, 113, 231, 60, 177, 211, 106, 139, 102,\n\t\t234, 69, 236, 232, 54, 226, 9, 5, 60, 216, 207, 12, 126, 85,\n\t\t36, 175, 163, 40, 91, 247, 222, 222, 247, 209, 235, 125, 141,\n\t\t67, 252, 170, 200, 166, 25, 236, 67, 156, 127, 224, 157, 139,\n\t\t247, 29, 102, 207, 95, 206, 207, 159, 127, 126, 190, 177,\n\t\t125, 198, 33, 140, 198, 75, 233, 222, 110, 56, 119, 203, 7,\n\t\t107, 160, 7, 72, 95, 6, 169, 154, 31, 106, 254, 205, 39, 122,\n\t\t184, 187, 54, 184, 21, 223, 88, 28, 15, 98, 154, 22, 251,\n\t\t254, 214, 218, 122, 160, 15, 32, 100, 249, 248, 23, 119, 199,\n\t\t226, 159, 31, 255, 241, 229, 114, 51, 16, 55, 213, 86, 251,\n\t\t182, 72, 34, 231, 176, 45, 146, 209, 215, 170, 124, 207, 42,\n\t\t192, 0, 12, 97, 200, 17, 81, 20, 108, 25, 52, 173, 34, 210,\n\t\t4, 48, 152, 32, 59, 121, 7, 28, 61, 181, 99, 227, 189, 231,\n\t\t207, 76, 133, 238, 129, 37, 72, 93, 16, 71, 135, 2, 84, 99,\n\t\t171, 194, 50, 237, 82, 186, 207, 76, 18, 37, 205, 144, 96,\n\t\t144, 102, 88, 165, 211, 90, 100, 183, 211, 62, 22, 206, 24,\n\t\t185, 1, 41, 124, 1, 123, 244, 147, 50, 90, 8, 215, 23, 54,\n\t\t239, 178, 36, 22, 47, 171, 147, 196, 107, 221, 113, 152, 87,\n\t\t92, 30, 38, 97, 187, 45, 90, 84, 119, 237, 122, 243, 160,\n\t\t201, 136, 101, 103, 192, 176, 40, 158, 248, 210, 55, 211,\n\t\t152, 11, 95, 96, 39, 74, 90, 211, 190, 215, 225, 197, 118,\n\t\t162, 158, 98, 55, 178, 251, 20, 163, 9, 59, 173, 86, 141,\n\t\t168, 109, 32, 81, 225, 217, 166, 177, 145, 52, 221, 36, 250,\n\t\t61, 107, 124, 75, 164, 84, 21, 235, 78, 231, 197, 239, 222,\n\t\t4, 73, 4, 192, 182, 246, 16, 244, 162, 26, 48, 49, 173, 197,\n\t\t228, 32, 241, 204, 41, 172, 50, 4, 86, 68, 196, 76, 83, 62,\n\t\t205, 100, 134, 155, 77, 3, 43, 142, 2, 51, 181, 40, 98, 243,\n\t\t153, 58, 73, 37, 116, 200, 240, 245, 146, 0, 171, 140, 38,\n\t\t217, 188, 41, 131, 161, 178, 155, 84, 55, 129, 86, 193, 1,\n\t\t183, 131, 33, 234, 89, 157, 171, 225, 254, 212, 125, 121,\n\t\t202, 92, 42, 199, 234, 225, 120, 39, 124, 8, 48, 69, 43, 194,\n\t\t199, 247, 137, 28, 174, 224, 218, 159, 247, 229, 246, 40,\n\t\t119, 183, 69, 18, 53, 51, 253, 116, 56, 103, 233, 234, 118,\n\t\t129, 190, 206, 120, 132, 75, 66, 138, 116, 47, 125, 172, 33,\n\t\t233, 157, 89, 182, 240, 166, 38, 5, 71, 134, 65, 131, 146,\n\t\t8, 106, 75, 19, 157, 178, 73, 71, 203, 241, 154, 167, 100,\n\t\t107, 197, 246, 59, 190, 125, 215, 114, 135, 102, 148, 7, 198,\n\t\t29, 159, 100, 207, 87, 194, 112, 253, 173, 28, 159, 86, 129,\n\t\t152, 97, 74, 41, 89, 244, 162, 168, 217, 137, 102, 101, 192,\n\t\t70, 137, 125, 200, 40, 228, 73, 183, 215, 47, 241, 219, 104,\n\t\t39, 188, 60, 165, 52, 183, 246, 124, 22, 37, 111, 181, 202,\n\t\t46, 91, 169, 234, 43, 64, 122, 12, 236, 211, 254, 138, 181,\n\t\t130, 172, 18, 90, 146, 253, 212, 207, 145, 173, 93, 186, 124,\n\t\t100, 21, 226, 190, 166, 44, 142, 211, 186, 211, 120, 201,\n\t\t163, 252, 1, 139, 179, 217, 59, 240, 44, 46, 169, 32, 207,\n\t\t180, 251, 190, 90, 194, 57, 191, 158, 10, 72, 201, 28, 214,\n\t\t195, 129, 52, 57, 158, 171, 250, 83, 50, 166, 48, 105, 175,\n\t\t54, 87, 185, 35, 150, 112, 36, 177, 210, 169, 158, 89, 225,\n\t\t233, 214, 95, 90, 197, 40, 183, 53, 54, 27, 109, 182, 180,\n\t\t250, 238, 190, 182, 125, 184, 92, 220, 122, 126, 126, 254,\n\t\t124, 187, 189, 221, 131, 102, 76, 3, 180, 59, 34, 50, 148,\n\t\t127, 36, 239, 85, 228, 73, 172, 36, 45, 156, 80, 130, 90,\n\t\t53, 59, 54, 23, 89, 37, 131, 50, 198, 171, 2, 133, 57, 85,\n\t\t201, 146, 185, 39, 188, 150, 134, 168, 185, 146, 213, 202,\n\t\t234, 44, 138, 57, 114, 41, 111, 44, 189, 79, 202, 23, 36,\n\t\t130, 142, 100, 194, 106, 220, 58, 233, 126, 21, 146, 212,\n\t\t241, 200, 28, 69, 38, 135, 77, 15, 19, 171, 154, 143, 201,\n\t\t171, 8, 88, 127, 50, 3, 135, 36, 166, 88, 165, 72, 228, 10,\n\t\t145, 165, 171, 44, 81, 30, 169, 86, 228, 189, 141, 88, 170,\n\t\t169, 251, 48, 102, 88, 58, 124, 214, 178, 4, 186, 229, 92,\n\t\t203, 45, 245, 204, 106, 157, 25, 14, 253, 212, 180, 176, 67,\n\t\t90, 27, 85, 198, 107, 173, 63, 94, 214, 186, 194, 89, 237,\n\t\t161, 50, 63, 0, 90, 234, 192, 189, 66, 22, 90, 38, 121, 236,\n\t\t237, 56, 107, 182, 0, 91, 168, 154, 82, 36, 252, 147, 24,\n\t\t224, 101, 31, 93, 185, 72, 223, 175, 30, 235, 93, 248, 125,\n\t\t166, 197, 190, 202, 184, 162, 81, 90, 194, 159, 148, 149,\n\t\t89, 129, 112, 185, 109, 155, 49, 98, 113, 45, 5, 109, 73,\n\t\t138, 50, 98, 128, 138, 126, 66, 73, 25, 87, 249, 75, 133,\n\t\t216, 84, 231, 229, 39, 193, 115, 133, 246, 52, 252, 201, 183,\n\t\t173, 91, 30, 22, 218, 97, 160, 16, 164, 126, 81, 145, 153,\n\t\t57, 236, 36, 22, 49, 251, 4, 137, 59, 95, 94, 14, 229, 104,\n\t\t213, 162, 180, 170, 14, 128, 57, 78, 178, 48, 114, 176, 172,\n\t\t20, 123, 174, 227, 7, 91, 80, 157, 173, 4, 171, 56, 138, 12,\n\t\t63, 192, 9, 92, 133, 124, 183, 183, 117, 243, 117, 135, 245,\n\t\t198, 97, 104, 217, 230, 153, 146, 51, 237, 179, 122, 246,\n\t\t160, 205, 55, 233, 202, 151, 39, 106, 197, 143, 133, 122,\n\t\t241, 99, 139, 82, 204, 210, 56, 95, 121, 115, 67, 204, 28,\n\t\t89, 63, 112, 230, 84, 110, 25, 39, 31, 69, 189, 18, 92, 134,\n\t\t17, 36, 9, 242, 67, 249, 157, 220, 68, 17, 1, 222, 33, 151,\n\t\t254, 125, 254, 120, 249, 215, 243, 77, 114, 240, 135, 96,\n\t\t6, 80, 15, 224, 124, 137, 140, 69, 170, 197, 246, 166, 241,\n\t\t36, 203, 184, 65, 107, 138, 250, 36, 18, 248, 145, 56, 107,\n\t\t40, 69, 253, 63, 79, 118, 155, 38, 218, 239, 114, 230, 236,\n\t\t168, 165, 213, 86, 71, 64, 81, 24, 79, 15, 213, 147, 170,\n\t\t124, 144, 43, 54, 87, 234, 34, 143, 82, 89, 61, 118, 125,\n\t\t18, 13, 172, 7, 184, 210, 121, 112, 206, 185, 79, 173, 135,\n\t\t60, 106, 172, 207, 46, 53, 64, 94, 108, 73, 179, 93, 226,\n\t\t160, 211, 57, 197, 244, 160, 255, 62, 253, 240, 236, 158,\n\t\t127, 253, 252, 233, 151, 27, 111, 222, 135, 27, 8, 183, 60,\n\t\t172, 52, 53, 247, 37, 231, 176, 198, 212, 16, 73, 131, 244,\n\t\t137, 252, 129, 114, 191, 224, 200, 233, 161, 156, 67, 24,\n\t\t94, 207, 207, 51, 122, 137, 252, 99, 45, 46, 14, 102, 108,\n\t\t8, 115, 189, 116, 217, 19, 41, 204, 93, 60, 48, 55, 112, 216,\n\t\t25, 125, 195, 94, 14, 187, 239, 0, 186, 35, 106, 70, 198,\n\t\t6, 166, 83, 246, 78, 8, 180, 135, 35, 246, 198, 169, 225,\n\t\t224, 146, 25, 75, 42, 94, 89, 230, 92, 29, 129, 125, 196,\n\t\t234, 132, 110, 2, 185, 111, 227, 184, 66, 76, 188, 244, 107,\n\t\t223, 212, 169, 195, 15, 21, 77, 39, 88, 218, 144, 57, 229,\n\t\t247, 116, 77, 217, 58, 2, 231, 98, 74, 91, 148, 214, 196,\n\t\t96, 182, 153, 226, 158, 223, 91, 62, 88, 177, 144, 219, 89,\n\t\t182, 68, 49, 80, 219, 108, 215, 176, 216, 28, 112, 121, 15,\n\t\t206, 160, 80, 76, 53, 51, 249, 189, 232, 152, 218, 6, 148,\n\t\t93, 178, 253, 20, 102, 255, 24, 223, 177, 116, 136, 18, 249,\n\t\t236, 190, 131, 134, 84, 83, 197, 200, 21, 122, 205, 21, 204,\n\t\t130, 150, 108, 181, 179, 211, 234, 9, 233, 131, 171, 19, 239,\n\t\t208, 253, 60, 108, 133, 234, 21, 209, 137, 206, 197, 226,\n\t\t53, 156, 116, 73, 238, 225, 91, 108, 90, 139, 32, 42, 212,\n\t\t105, 85, 181, 72, 61, 132, 170, 19, 189, 210, 236, 228, 240,\n\t\t44, 214, 218, 171, 33, 127, 149, 27, 240, 122, 170, 88, 181,\n\t\t254, 163, 169, 98, 250, 49, 204, 54, 126, 102, 229, 52, 228,\n\t\t69, 192, 131, 54, 205, 174, 193, 230, 135, 140, 111, 205,\n\t\t70, 19, 79, 148, 218, 160, 65, 203, 93, 240, 253, 53, 51,\n\t\t146, 167, 38, 247, 188, 117, 139, 136, 178, 254, 27, 102,\n\t\t231, 213, 73, 39, 242, 60, 208, 249, 33, 195, 104, 217, 115,\n\t\t199, 203, 18, 124, 248, 137, 230, 224, 135, 195, 132, 142,\n\t\t26, 246, 236, 58, 185, 55, 189, 249, 98, 79, 57, 36, 216,\n\t\t238, 153, 123, 162, 37, 150, 195, 103, 56, 127, 180, 65, 197,\n\t\t244, 117, 105, 207, 177, 93, 104, 78, 172, 235, 108, 204,\n\t\t77, 91, 246, 166, 220, 180, 228, 166, 33, 186, 102, 138, 125,\n\t\t234, 87, 81, 181, 54, 103, 38, 61, 111, 33, 58, 203, 101,\n\t\t82, 228, 195, 186, 97, 221, 228, 72, 133, 199, 131, 178, 177,\n\t\t249, 137, 95, 158, 214, 180, 135, 8, 14, 139, 134, 71, 213,\n\t\t170, 212, 228, 196, 20, 58, 196, 241, 118, 179, 149, 120,\n\t\t220, 173, 150, 146, 87, 171, 30, 215, 44, 214, 86, 156, 59,\n\t\t200, 66, 163, 3, 104, 247, 119, 119, 167, 72, 161, 57, 205,\n\t\t89, 205, 211, 206, 124, 219, 151, 111, 186, 210, 122, 178,\n\t\t75, 226, 215, 219, 9, 246, 118, 54, 234, 137, 247, 76, 173,\n\t\t155, 172, 130, 119, 79, 173, 151, 39, 42, 93, 200, 139, 215,\n\t\t38, 113, 146, 157, 117, 107, 142, 116, 182, 84, 102, 148,\n\t\t76, 133, 228, 227, 217, 106, 184, 157, 65, 146, 59, 230, 38,\n\t\t80, 204, 4, 73, 151, 22, 50, 246, 211, 206, 68, 22, 21, 105,\n\t\t163, 46, 108, 184, 138, 202, 38, 83, 82, 227, 210, 114, 226,\n\t\t236, 44, 143, 59, 203, 22, 150, 154, 200, 91, 241, 138, 53,\n\t\t227, 28, 52, 17, 129, 58, 108, 246, 152, 227, 196, 25, 229,\n\t\t128, 90, 65, 22, 132, 159, 75, 149, 119, 99, 160, 50, 61,\n\t\t102, 202, 247, 108, 9, 223, 69, 72, 237, 45, 80, 166, 53,\n\t\t134, 166, 125, 83, 58, 28, 96, 115, 101, 205, 153, 153, 174,\n\t\t196, 11, 82, 15, 6, 237, 144, 4, 245, 32, 202, 25, 44, 35,\n\t\t67, 43, 136, 236, 88, 90, 119, 158, 136, 178, 88, 22, 177,\n\t\t230, 105, 27, 184, 144, 156, 152, 43, 35, 242, 85, 82, 62,\n\t\t46, 174, 94, 17, 166, 226, 235, 149, 21, 118, 95, 123, 250,\n\t\t252, 241, 23, 183, 125, 252, 249, 249, 198, 38, 254, 144,\n\t\t143, 190, 247, 88, 239, 179, 19, 60, 142, 68, 231, 7, 126,\n\t\t243, 123, 49, 165, 220, 3, 99, 241, 188, 173, 89, 250, 51,\n\t\t154, 113, 199, 255, 62, 219, 241, 190, 222, 116, 215, 231,\n\t\t207, 95, 62, 174, 31, 182, 155, 110, 45, 111, 85, 82, 42,\n\t\t170, 146, 194, 157, 216, 31, 189, 193, 35, 218, 126, 193,\n\t\t247, 249, 234, 11, 60, 44, 121, 10, 226, 191, 252, 179, 155,\n\t\t113, 122, 216, 142, 187, 253, 252, 235, 199, 47, 31, 110,\n\t\t18, 83, 62, 88, 180, 168, 128, 13, 61, 141, 228, 225, 228,\n\t\t149, 45, 76, 28, 212, 90, 219, 115, 192, 151, 80, 228, 221,\n\t\t170, 94, 68, 249, 176, 30, 54, 64, 92, 40, 118, 37, 14, 21,\n\t\t44, 34, 108, 168, 171, 102, 9, 47, 238, 45, 210, 200, 88,\n\t\t214, 68, 29, 11, 116, 134, 192, 30, 142, 157, 255, 26, 64,\n\t\t36, 67, 29, 14, 246, 129, 162, 154, 65, 90, 193, 100, 56,\n\t\t30, 20, 166, 66, 228, 148, 190, 213, 237, 56, 8, 201, 196,\n\t\t148, 70, 93, 212, 200, 203, 36, 178, 205, 100, 160, 98, 149,\n\t\t24, 76, 99, 214, 84, 46, 178, 27, 163, 109, 89, 43, 91, 178,\n\t\t149, 235, 210, 0, 233, 152, 129, 204, 244, 226, 147, 214,\n\t\t225, 92, 24, 107, 61, 78, 235, 215, 156, 232, 11, 126, 178,\n\t\t42, 55, 170, 153, 173, 226, 178, 161, 131, 245, 172, 229,\n\t\t99, 167, 105, 236, 242, 188, 224, 230, 36, 117, 90, 72, 51,\n\t\t20, 186, 75, 222, 209, 170, 28, 12, 244, 76, 20, 3, 245, 66,\n\t\t162, 122, 73, 58, 113, 85, 55, 150, 118, 153, 196, 71, 15,\n\t\t16, 137, 9, 68, 67, 152, 25, 58, 192, 37, 203, 134, 116, 152,\n\t\t79, 248, 127, 50, 42, 100, 153, 22, 91, 21, 103, 140, 252,\n\t\t93, 247, 43, 116, 2, 226, 64, 1, 68, 130, 210, 81, 159, 254,\n\t\t10, 140, 129, 243, 243, 135, 207, 95, 220, 15, 159, 63, 253,\n\t\t235, 249, 134, 20, 237, 195, 78, 178, 209, 146, 111, 75, 106,\n\t\t217, 211, 154, 205, 187, 169, 84, 230, 86, 96, 53, 231, 66,\n\t\t128, 157, 193, 199, 29, 110, 145, 205, 209, 52, 253, 103,\n\t\t35, 225, 186, 89, 119, 51, 169, 153, 131, 84, 35, 45, 118,\n\t\t70, 65, 187, 2, 95, 30, 23, 92, 189, 78, 141, 160, 44, 69,\n\t\t61, 143, 89, 121, 70, 18, 249, 172, 15, 158, 207, 165, 205,\n\t\t248, 212, 69, 71, 203, 138, 45, 166, 0, 123, 113, 44, 154,\n\t\t134, 16, 91, 240, 109, 137, 121, 179, 136, 79, 175, 190, 156,\n\t\t54, 80, 30, 212, 188, 41, 79, 0, 80, 12, 35, 245, 109, 212,\n\t\t165, 230, 205, 41, 96, 216, 84, 144, 242, 90, 100, 249, 36,\n\t\t161, 86, 138, 148, 166, 240, 81, 216, 207, 58, 124, 181, 202,\n\t\t242, 251, 131, 242, 105, 219, 254, 207, 253, 240, 252, 249,\n\t\t243, 173, 31, 232, 14, 49, 110, 100, 162, 186, 239, 200, 177,\n\t\t92, 234, 146, 0, 139, 112, 91, 149, 251, 248, 250, 183, 208,\n\t\t254, 188, 161, 220, 41, 88, 254, 205, 13, 60, 61, 17, 224,\n\t\t73, 231, 4, 25, 171, 99, 207, 95, 100, 0, 78, 140, 171, 149,\n\t\t181, 53, 169, 135, 52, 78, 252, 136, 252, 168, 184, 230, 29,\n\t\t91, 15, 126, 20, 197, 167, 49, 48, 75, 213, 176, 12, 18, 221,\n\t\t105, 240, 82, 109, 20, 181, 129, 12, 73, 131, 181, 239, 213,\n\t\t69, 147, 184, 8, 212, 152, 51, 114, 236, 194, 91, 148, 65,\n\t\t182, 7, 46, 168, 34, 36, 229, 251, 87, 31, 130, 120, 49, 79,\n\t\t220, 86, 213, 181, 237, 195, 216, 109, 23, 41, 88, 145, 210,\n\t\t176, 121, 91, 126, 144, 197, 210, 155, 113, 5, 103, 219, 133,\n\t\t178, 239, 70, 213, 14, 113, 198, 91, 140, 173, 81, 174, 97,\n\t\t245, 135, 234, 88, 136, 237, 122, 192, 101, 50, 0, 14, 224,\n\t\t94, 241, 141, 41, 33, 117, 165, 173, 46, 91, 244, 158, 125,\n\t\t129, 88, 12, 10, 141, 203, 109, 69, 1, 49, 195, 184, 113,\n\t\t36, 28, 109, 80, 171, 82, 123, 86, 42, 28, 87, 197, 232, 200,\n\t\t128, 188, 16, 197, 90, 122, 77, 251, 52, 41, 190, 144, 122,\n\t\t38, 244, 1, 28, 66, 209, 33, 208, 78, 150, 62, 230, 198, 170,\n\t\t209, 39, 127, 13, 73, 133, 223, 92, 187, 215, 64, 3, 125,\n\t\t153, 111, 205, 50, 69, 241, 40, 2, 18, 4, 57, 17, 250, 180,\n\t\t106, 34, 155, 5, 195, 12, 67, 139, 111, 177, 79, 13, 6, 228,\n\t\t122, 121, 202, 169, 44, 93, 112, 137, 44, 191, 112, 217, 209,\n\t\t116, 85, 236, 97, 46, 154, 51, 42, 138, 110, 18, 196, 80,\n\t\t145, 173, 123, 240, 244, 227, 50, 185, 38, 230, 137, 248,\n\t\t215, 53, 183, 193, 184, 115, 201, 208, 4, 43, 96, 159, 120,\n\t\t184, 198, 94, 152, 158, 24, 183, 117, 206, 155, 16, 21, 56,\n\t\t234, 180, 235, 45, 123, 193, 154, 150, 118, 31, 173, 220,\n\t\t87, 93, 168, 89, 202, 217, 144, 131, 85, 254, 190, 29, 23,\n\t\t179, 78, 117, 17, 202, 148, 72, 22, 53, 221, 199, 61, 48,\n\t\t107, 157, 87, 92, 75, 212, 198, 42, 112, 214, 1, 219, 131,\n\t\t45, 187, 85, 211, 195, 149, 233, 69, 134, 4, 18, 10, 55, 15,\n\t\t99, 78, 112, 121, 75, 181, 113, 201, 98, 191, 50, 60, 213,\n\t\t146, 21, 101, 110, 33, 85, 74, 166, 185, 165, 82, 26, 165,\n\t\t181, 28, 75, 42, 215, 177, 174, 87, 19, 55, 53, 166, 69, 72,\n\t\t74, 232, 114, 10, 77, 54, 156, 74, 82, 36, 75, 197, 226, 77,\n\t\t166, 240, 96, 171, 133, 157, 137, 174, 214, 73, 180, 151,\n\t\t243, 89, 174, 226, 238, 122, 48, 249, 193, 211, 118, 47, 246,\n\t\t96, 139, 83, 20, 74, 77, 124, 56, 10, 168, 217, 188, 245,\n\t\t128, 218, 37, 139, 77, 69, 162, 14, 211, 91, 137, 183, 198,\n\t\t67, 228, 95, 227, 93, 72, 189, 56, 72, 211, 199, 182, 235,\n\t\t249, 211, 231, 203, 179, 59, 63, 127, 184, 129, 164, 252,\n\t\t240, 195, 110, 9, 12, 223, 65, 138, 187, 151, 94, 59, 197,\n\t\t2, 50, 224, 63, 125, 170, 73, 63, 9, 175, 108, 187, 120, 79,\n\t\t10, 209, 87, 57, 4, 104, 64, 127, 111, 189, 25, 206, 220,\n\t\t25, 69, 43, 87, 21, 211, 18, 1, 0, 29, 252, 197, 81, 213,\n\t\t170, 134, 205, 229, 58, 181, 95, 40, 138, 59, 140, 87, 55,\n\t\t97, 60, 116, 117, 10, 40, 184, 193, 172, 234, 153, 211, 170,\n\t\t193, 166, 249, 148, 38, 109, 33, 69, 250, 235, 162, 253, 148,\n\t\t102, 78, 35, 180, 200, 124, 98, 99, 177, 106, 104, 157, 234,\n\t\t60, 62, 219, 238, 220, 147, 15, 6, 222, 150, 204, 163, 31,\n\t\t194, 171, 138, 16, 157, 15, 82, 213, 96, 169, 210, 73, 98,\n\t\t24, 6, 49, 88, 197, 176, 152, 98, 37, 177, 200, 2, 105, 177,\n\t\t38, 160, 108, 89, 149, 204, 30, 213, 215, 109, 121, 60, 42,\n\t\t94, 44, 101, 209, 156, 60, 125, 183, 103, 8, 160, 66, 148,\n\t\t184, 202, 252, 94, 234, 88, 23, 183, 81, 88, 98, 97, 52, 45,\n\t\t37, 65, 162, 198, 92, 219, 177, 86, 63, 150, 68, 228, 203,\n\t\t70, 1, 174, 235, 165, 9, 36, 192, 46, 119, 120, 102, 153,\n\t\t88, 144, 14, 142, 220, 65, 208, 16, 172, 67, 243, 1, 109,\n\t\t148, 135, 181, 29, 192, 180, 101, 223, 226, 145, 58, 173,\n\t\t89, 243, 131, 213, 23, 38, 246, 138, 75, 125, 25, 137, 153,\n\t\t251, 153, 237, 159, 36, 27, 232, 88, 38, 246, 170, 108, 230,\n\t\t242, 166, 104, 12, 167, 142, 181, 100, 82, 217, 114, 121,\n\t\t93, 61, 53, 255, 220, 93, 144, 31, 215, 143, 235, 246, 21,\n\t\t79, 210, 143, 199, 138, 231, 188, 228, 24, 124, 220, 36, 177,\n\t\t55, 215, 198, 214, 129, 229, 2, 216, 42, 205, 199, 131, 221,\n\t\t46, 168, 90, 109, 60, 23, 12, 86, 168, 172, 132, 70, 28, 126,\n\t\t212, 181, 172, 151, 166, 227, 193, 110, 180, 39, 89, 194,\n\t\t211, 208, 75, 99, 204, 53, 136, 125, 98, 192, 223, 188, 7,\n\t\t232, 246, 124, 159, 131, 83, 144, 79, 200, 78, 23, 54, 131,\n\t\t41, 142, 189, 249, 180, 185, 29, 15, 112, 90, 217, 167, 117,\n\t\t95, 45, 230, 37, 33, 51, 125, 228, 132, 38, 33, 161, 103,\n\t\t120, 91, 108, 104, 153, 73, 100, 216, 175, 18, 254, 183, 204,\n\t\t97, 21, 178, 114, 124, 206, 185, 175, 20, 150, 160, 123, 34,\n\t\t91, 224, 129, 67, 196, 220, 40, 49, 219, 239, 143, 229, 63,\n\t\t183, 79, 159, 110, 70, 242, 134, 47, 123, 47, 253, 73, 83,\n\t\t180, 77, 177, 120, 229, 218, 133, 179, 163, 22, 217, 60, 130,\n\t\t44, 106, 234, 227, 73, 3, 64, 10, 113, 78, 83, 206, 173, 161,\n\t\t190, 170, 169, 30, 196, 50, 176, 20, 52, 100, 178, 241, 226,\n\t\t122, 121, 226, 36, 96, 201, 65, 67, 254, 89, 222, 233, 7,\n\t\t186, 130, 190, 43, 104, 51, 245, 115, 229, 105, 195, 21, 177,\n\t\t121, 238, 142, 107, 219, 145, 119, 224, 164, 40, 211, 70,\n\t\t5, 112, 72, 108, 5, 169, 229, 20, 124, 61, 59, 28, 93, 113,\n\t\t240, 130, 232, 123, 36, 46, 221, 144, 123, 238, 222, 9, 128,\n\t\t11, 194, 2, 212, 108, 134, 78, 71, 184, 0, 180, 149, 185,\n\t\t241, 0, 171, 100, 184, 17, 170, 205, 43, 99, 132, 99, 214,\n\t\t171, 115, 172, 25, 117, 254, 239, 201, 255, 163, 126, 197,\n\t\t205, 167, 77, 101, 93, 147, 117, 179, 82, 63, 115, 82, 97,\n\t\t81, 211, 82, 177, 173, 7, 79, 75, 205, 23, 215, 187, 81, 99,\n\t\t232, 105, 240, 137, 201, 45, 240, 198, 137, 194, 203, 83,\n\t\t88, 2, 82, 26, 43, 130, 113, 135, 152, 169, 97, 147, 139,\n\t\t82, 122, 48, 126, 44, 237, 144, 30, 0, 17, 188, 60, 81, 239,\n\t\t112, 50, 151, 100, 156, 132, 66, 71, 184, 103, 46, 162, 67,\n\t\t74, 90, 248, 43, 166, 28, 188, 55, 135, 127, 250, 248, 229,\n\t\t203, 173, 127, 227, 135, 27, 15, 236, 110, 75, 167, 218, 151,\n\t\t7, 62, 210, 250, 48, 201, 60, 209, 125, 23, 243, 125, 94,\n\t\t225, 240, 242, 148, 169, 0, 199, 47, 174, 212, 84, 63, 39,\n\t\t155, 98, 162, 222, 203, 54, 109, 58, 194, 16, 48, 157, 185,\n\t\t249, 151, 185, 227, 159, 93, 10, 83, 170, 137, 31, 106, 218,\n\t\t204, 149, 41, 20, 48, 66, 173, 73, 246, 241, 18, 11, 43, 245,\n\t\t168, 57, 152, 251, 220, 92, 34, 107, 83, 135, 137, 252, 94,\n\t\t127, 229, 248, 154, 70, 124, 20, 67, 223, 118, 245, 132, 80,\n\t\t182, 177, 233, 44, 160, 178, 26, 24, 142, 36, 245, 106, 187,\n\t\t245, 69, 164, 217, 138, 75, 114, 127, 60, 127, 253, 167, 59,\n\t\t223, 66, 208, 252, 96, 126, 223, 56, 159, 178, 164, 16, 121,\n\t\t35, 144, 250, 136, 170, 173, 83, 132, 87, 37, 109, 32, 177,\n\t\t122, 133, 245, 112, 231, 186, 37, 117, 163, 106, 26, 40, 67,\n\t\t140, 100, 65, 79, 234, 146, 12, 104, 121, 6, 211, 212, 130,\n\t\t52, 1, 86, 10, 235, 241, 253, 44, 126, 219, 213, 226, 80,\n\t\t241, 0, 165, 191, 35, 31, 138, 173, 163, 98, 201, 162, 156,\n\t\t44, 88, 112, 210, 96, 92, 75, 154, 139, 207, 244, 105, 118,\n\t\t104, 210, 174, 0, 21, 243, 145, 26, 97, 93, 52, 141, 186,\n\t\t8, 108, 114, 100, 225, 39, 254, 3, 36, 39, 3, 50, 114, 97,\n\t\t19, 177, 178, 10, 175, 66, 18, 249, 95, 47, 79, 83, 84, 255,\n\t\t117, 93, 11, 244, 34, 222, 231, 254, 210, 190, 253, 143, 116,\n\t\t109, 14, 97, 202, 238, 211, 42, 168, 92, 203, 78, 214, 204,\n\t\t173, 61, 146, 53, 139, 32, 121, 77, 214, 204, 197, 95, 37,\n\t\t9, 113, 137, 145, 182, 66, 108, 174, 14, 50, 149, 249, 91,\n\t\t133, 186, 245, 42, 41, 74, 223, 202, 222, 78, 181, 115, 187,\n\t\t70, 125, 151, 59, 250, 44, 56, 44, 231, 7, 120, 7, 159, 63,\n\t\t252, 248, 241, 195, 151, 143, 159, 110, 133, 242, 248, 118,\n\t\t166, 86, 172, 109, 218, 112, 35, 122, 134, 139, 85, 103, 129,\n\t\t57, 5, 210, 28, 28, 43, 60, 225, 15, 155, 235, 154, 165, 57,\n\t\t165, 210, 30, 190, 182, 186, 41, 211, 5, 231, 236, 53, 41,\n\t\t171, 27, 49, 239, 159, 69, 246, 205, 76, 139, 27, 42, 16,\n\t\t3, 87, 160, 5, 56, 244, 123, 158, 150, 133, 185, 12, 20, 142,\n\t\t75, 45, 73, 67, 11, 221, 75, 179, 231, 241, 57, 78, 181, 232,\n\t\t229, 137, 66, 65, 237, 204, 240, 101, 111, 240, 108, 111,\n\t\t57, 89, 131, 45, 115, 94, 93, 219, 202, 180, 162, 0, 127,\n\t\t202, 36, 165, 161, 30, 13, 11, 53, 185, 129, 69, 200, 99,\n\t\t3, 64, 23, 142, 46, 157, 246, 183, 231, 38, 226, 107, 181,\n\t\t53, 215, 254, 42, 87, 53, 189, 242, 155, 237, 208, 130, 36,\n\t\t118, 242, 171, 206, 46, 59, 112, 186, 42, 47, 84, 45, 230,\n\t\t33, 14, 84, 249, 32, 39, 78, 23, 103, 142, 0, 115, 48, 24,\n\t\t248, 186, 50, 11, 32, 203, 46, 13, 223, 191, 129, 42, 249,\n\t\t216, 27, 253, 218, 217, 252, 242, 148, 219, 176, 185, 165,\n\t\t196, 96, 193, 70, 205, 233, 250, 56, 96, 36, 96, 229, 239,\n\t\t185, 66, 77, 151, 179, 65, 76, 197, 204, 166, 161, 204, 16,\n\t\t55, 167, 72, 68, 126, 174, 249, 165, 119, 194, 39, 13, 160,\n\t\t145, 58, 118, 201, 146, 184, 94, 207, 98, 217, 90, 109, 63,\n\t\t85, 212, 57, 157, 247, 73, 40, 214, 172, 250, 142, 155, 46,\n\t\t19, 237, 93, 107, 242, 107, 232, 35, 63, 220, 6, 30, 246,\n\t\t117, 217, 179, 164, 58, 154, 215, 49, 90, 85, 140, 156, 176,\n\t\t65, 45, 76, 69, 202, 238, 136, 170, 9, 127, 186, 132, 205,\n\t\t162, 82, 187, 105, 88, 127, 100, 205, 143, 68, 225, 98, 1,\n\t\t75, 133, 102, 174, 86, 181, 146, 11, 50, 82, 184, 102, 210,\n\t\t60, 145, 186, 22, 247, 37, 40, 127, 109, 21, 54, 254, 9, 83,\n\t\t94, 245, 133, 114, 133, 177, 38, 17, 46, 29, 116, 76, 25,\n\t\t107, 144, 6, 97, 229, 196, 62, 213, 131, 53, 150, 141, 2,\n\t\t165, 213, 147, 31, 226, 245, 249, 190, 28, 40, 58, 44, 112,\n\t\t217, 157, 254, 127, 246, 190, 53, 199, 113, 28, 89, 247, 191,\n\t\t87, 161, 13, 136, 195, 224, 155, 192, 96, 118, 144, 139, 168,\n\t\t86, 102, 181, 11, 71, 93, 213, 183, 92, 237, 1, 188, 250,\n\t\t139, 248, 34, 130, 146, 237, 76, 103, 246, 235, 158, 193,\n\t\t61, 7, 168, 44, 91, 52, 69, 81, 124, 4, 227, 249, 133, 202,\n\t\t136, 164, 241, 172, 186, 178, 120, 198, 151, 48, 80, 208,\n\t\t229, 183, 100, 168, 147, 176, 155, 154, 237, 160, 184, 124,\n\t\t74, 155, 43, 137, 190, 254, 150, 107, 139, 201, 138, 41, 237,\n\t\t135, 177, 212, 111, 242, 133, 110, 110, 237, 78, 224, 195,\n\t\t41, 118, 114, 132, 105, 222, 165, 22, 217, 54, 198, 144, 28,\n\t\t182, 119, 82, 210, 144, 204, 2, 29, 212, 46, 6, 29, 14, 90,\n\t\t206, 2, 94, 45, 211, 53, 200, 219, 48, 98, 15, 179, 182, 70,\n\t\t186, 76, 81, 247, 66, 82, 57, 169, 8, 49, 89, 12, 238, 114,\n\t\t36, 164, 243, 67, 208, 189, 186, 206, 242, 174, 135, 221,\n\t\t124, 255, 61, 206, 191, 252, 133, 101, 89, 146, 196, 36, 77,\n\t\t99, 112, 177, 81, 26, 11, 91, 118, 53, 143, 34, 92, 53, 35,\n\t\t20, 248, 239, 180, 93, 90, 145, 146, 190, 119, 98, 188, 78,\n\t\t175, 201, 136, 135, 211, 189, 184, 117, 186, 61, 240, 31,\n\t\t19, 136, 151, 211, 143, 239, 223, 190, 253, 114, 71, 27, 158,\n\t\t223, 142, 154, 97, 233, 30, 114, 80, 220, 242, 81, 151, 52,\n\t\t50, 38, 205, 200, 151, 116, 186, 77, 160, 116, 42, 234, 124,\n\t\t160, 133, 51, 75, 168, 251, 123, 244, 79, 146, 71, 255, 157,\n\t\t237, 151, 216, 93, 156, 58, 179, 132, 182, 161, 135, 209,\n\t\t196, 136, 149, 96, 176, 75, 230, 16, 254, 126, 56, 50, 97,\n\t\t170, 18, 37, 231, 211, 251, 184, 49, 8, 241, 122, 8, 87, 228,\n\t\t211, 104, 115, 25, 113, 102, 194, 3, 9, 57, 176, 67, 199,\n\t\t178, 47, 112, 63, 214, 100, 22, 152, 150, 93, 91, 204, 3,\n\t\t144, 153, 77, 137, 186, 11, 17, 166, 48, 166, 31, 22, 143,\n\t\t69, 121, 164, 142, 219, 220, 92, 184, 110, 150, 55, 71, 178,\n\t\t125, 146, 72, 160, 88, 141, 70, 100, 80, 128, 124, 88, 198,\n\t\t242, 82, 50, 37, 184, 213, 67, 203, 104, 20, 72, 159, 38,\n\t\t241, 112, 233, 221, 80, 101, 255, 190, 164, 253, 103, 124,\n\t\t144, 46, 79, 212, 60, 132, 154, 232, 202, 18, 70, 94, 31,\n\t\t165, 67, 35, 229, 13, 66, 145, 199, 85, 170, 170, 164, 166,\n\t\t40, 32, 40, 143, 231, 184, 161, 226, 7, 234, 249, 247, 214,\n\t\t66, 44, 199, 249, 221, 5, 131, 71, 237, 130, 120, 80, 149,\n\t\t215, 195, 120, 1, 237, 191, 205, 184, 80, 1, 179, 139, 234,\n\t\t194, 201, 118, 140, 107, 193, 225, 20, 171, 241, 156, 58,\n\t\t241, 250, 4, 249, 253, 33, 249, 56, 125, 250, 241, 178, 174,\n\t\t95, 126, 220, 69, 103, 252, 244, 121, 239, 175, 85, 39, 106,\n\t\t72, 201, 104, 124, 228, 224, 15, 135, 141, 75, 206, 147, 189,\n\t\t223, 214, 58, 119, 139, 204, 237, 198, 154, 221, 128, 39,\n\t\t109, 137, 208, 44, 118, 24, 243, 105, 198, 137, 185, 13, 174,\n\t\t111, 72, 110, 22, 208, 44, 53, 13, 149, 172, 121, 245, 194,\n\t\t183, 168, 190, 110, 10, 98, 99, 5, 70, 170, 178, 188, 197,\n\t\t140, 43, 237, 224, 189, 187, 231, 251, 138, 177, 248, 89,\n\t\t76, 211, 155, 147, 215, 200, 31, 22, 70, 142, 75, 61, 254,\n\t\t4, 238, 20, 255, 195, 199, 86, 119, 169, 124, 89, 182, 160,\n\t\t93, 75, 177, 55, 172, 247, 59, 67, 190, 85, 126, 12, 29, 250,\n\t\t88, 89, 39, 130, 163, 4, 150, 221, 156, 35, 203, 112, 131,\n\t\t202, 102, 13, 26, 236, 216, 232, 176, 244, 229, 176, 142,\n\t\t100, 255, 245, 254, 5, 121, 26, 149, 9, 83, 64, 79, 203, 186,\n\t\t171, 118, 72, 125, 144, 14, 210, 162, 129, 123, 83, 24, 44,\n\t\t65, 114, 144, 124, 228, 166, 34, 40, 217, 98, 209, 210, 85,\n\t\t111, 184, 193, 109, 203, 250, 151, 174, 156, 33, 134, 123,\n\t\t151, 168, 54, 130, 69, 66, 106, 184, 240, 170, 43, 110, 234,\n\t\t215, 225, 7, 195, 188, 45, 205, 90, 8, 255, 182, 148, 14,\n\t\t167, 225, 143, 108, 43, 45, 12, 56, 24, 89, 108, 182, 214,\n\t\t172, 115, 107, 210, 177, 74, 230, 77, 102, 144, 224, 170,\n\t\t78, 137, 106, 218, 183, 107, 100, 151, 243, 107, 18, 27, 11,\n\t\t15, 40, 141, 176, 205, 237, 86, 41, 176, 123, 189, 212, 132,\n\t\t202, 80, 25, 48, 121, 218, 229, 137, 178, 119, 117, 138, 196,\n\t\t167, 75, 177, 72, 36, 117, 13, 88, 171, 114, 186, 250, 185,\n\t\t14, 159, 1, 173, 121, 121, 138, 141, 207, 158, 38, 227, 116,\n\t\t224, 27, 132, 36, 27, 99, 103, 77, 90, 139, 179, 53, 105,\n\t\t95, 62, 70, 96, 230, 231, 47, 167, 227, 45, 149, 89, 70, 8,\n\t\t29, 181, 198, 178, 158, 15, 142, 86, 34, 77, 86, 130, 47,\n\t\t75, 221, 153, 103, 100, 213, 233, 234, 29, 161, 63, 113, 154,\n\t\t67, 94, 230, 58, 66, 148, 71, 244, 55, 210, 201, 14, 255,\n\t\t157, 57, 36, 184, 24, 77, 113, 128, 133, 43, 81, 181, 207,\n\t\t185, 10, 60, 188, 104, 200, 197, 227, 124, 194, 93, 203, 6,\n\t\t241, 162, 188, 185, 109, 51, 93, 162, 33, 79, 17, 93, 111,\n\t\t210, 241, 182, 26, 104, 141, 126, 30, 88, 252, 209, 180, 43,\n\t\t35, 211, 166, 217, 99, 243, 246, 181, 202, 174, 122, 176,\n\t\t147, 79, 113, 71, 26, 148, 42, 188, 99, 141, 88, 230, 177,\n\t\t251, 77, 176, 27, 126, 7, 150, 159, 77, 59, 240, 151, 39,\n\t\t210, 57, 140, 76, 58, 255, 155, 72, 39, 252, 255, 155, 72,\n\t\t231, 244, 60, 47, 175, 164, 32, 93, 238, 226, 60, 183, 100,\n\t\t224, 176, 75, 166, 182, 108, 130, 194, 189, 16, 112, 158,\n\t\t99, 3, 191, 110, 149, 94, 19, 10, 36, 191, 240, 67, 129, 227,\n\t\t28, 131, 95, 89, 244, 81, 12, 143, 203, 19, 9, 32, 226, 185,\n\t\t107, 26, 224, 94, 142, 34, 40, 190, 90, 204, 125, 189, 47,\n\t\t126, 56, 32, 95, 126, 121, 125, 68, 238, 112, 236, 254, 163,\n\t\t70, 36, 11, 18, 119, 17, 108, 112, 8, 92, 137, 197, 219, 243,\n\t\t28, 131, 149, 222, 179, 33, 183, 68, 231, 2, 49, 211, 107,\n\t\t27, 231, 27, 18, 117, 205, 180, 64, 20, 6, 211, 31, 66, 218,\n\t\t221, 131, 94, 200, 200, 71, 1, 148, 214, 210, 24, 174, 101,\n\t\t237, 43, 2, 41, 55, 244, 114, 214, 65, 16, 92, 241, 92, 164,\n\t\t92, 160, 169, 119, 250, 245, 27, 57, 125, 226, 199, 196, 96,\n\t\t15, 127, 56, 191, 255, 245, 233, 199, 151, 175, 119, 249,\n\t\t224, 150, 7, 54, 204, 228, 101, 122, 255, 50, 21, 169, 247,\n\t\t211, 163, 224, 159, 229, 65, 158, 162, 187, 156, 80, 87, 2,\n\t\t218, 233, 86, 38, 123, 144, 125, 234, 182, 238, 229, 73, 65,\n\t\t2, 244, 228, 56, 236, 82, 23, 12, 178, 107, 199, 184, 241,\n\t\t225, 254, 227, 24, 188, 203, 32, 182, 67, 108, 216, 188, 104,\n\t\t135, 231, 44, 95, 44, 3, 242, 72, 96, 90, 80, 105, 248, 154,\n\t\t197, 4, 128, 182, 93, 52, 64, 223, 227, 232, 222, 35, 189,\n\t\t42, 43, 166, 28, 225, 201, 74, 54, 44, 87, 180, 239, 15, 235,\n\t\t62, 88, 165, 93, 227, 11, 171, 192, 191, 37, 127, 188, 190,\n\t\t247, 242, 68, 53, 50, 41, 175, 228, 194, 178, 37, 141, 20,\n\t\t65, 168, 13, 63, 46, 115, 102, 138, 91, 32, 10, 248, 181,\n\t\t56, 252, 249, 52, 45, 140, 161, 196, 1, 46, 174, 223, 224,\n\t\t4, 235, 1, 181, 73, 97, 241, 117, 135, 185, 211, 144, 129,\n\t\t226, 224, 190, 180, 199, 90, 227, 176, 197, 93, 12, 195, 128,\n\t\t24, 233, 100, 151, 106, 28, 143, 144, 5, 1, 126, 124, 32,\n\t\t198, 220, 41, 193, 142, 193, 39, 87, 22, 147, 2, 253, 20,\n\t\t253, 80, 225, 162, 149, 88, 135, 162, 101, 12, 54, 229, 41,\n\t\t216, 105, 60, 192, 135, 219, 64, 15, 81, 216, 139, 185, 5,\n\t\t99, 232, 13, 97, 4, 28, 141, 56, 213, 110, 162, 146, 137,\n\t\t112, 3, 126, 68, 253, 199, 14, 43, 52, 164, 180, 244, 205,\n\t\t113, 157, 6, 4, 144, 185, 114, 90, 129, 170, 168, 207, 179,\n\t\t186, 196, 188, 199, 184, 189, 162, 33, 60, 55, 147, 58, 235,\n\t\t230, 111, 38, 252, 132, 121, 46, 169, 120, 100, 1, 60, 3,\n\t\t147, 87, 233, 191, 34, 51, 109, 114, 169, 245, 192, 130, 22,\n\t\t45, 81, 110, 208, 161, 209, 40, 163, 213, 88, 110, 13, 17,\n\t\t58, 28, 103, 242, 217, 229, 119, 200, 228, 151, 215, 168,\n\t\t228, 22, 201, 194, 47, 245, 23, 134, 32, 60, 101, 159, 135,\n\t\t10, 125, 217, 40, 133, 108, 188, 65, 49, 146, 166, 60, 55,\n\t\t79, 89, 240, 171, 117, 56, 147, 194, 5, 116, 46, 44, 90, 148,\n\t\t109, 92, 253, 200, 127, 191, 177, 240, 166, 126, 81, 101,\n\t\t197, 58, 71, 222, 104, 83, 240, 65, 2, 193, 204, 178, 176,\n\t\t81, 178, 160, 254, 218, 182, 196, 101, 213, 141, 220, 181,\n\t\t122, 131, 193, 79, 153, 64, 26, 13, 252, 77, 197, 78, 234,\n\t\t213, 169, 37, 43, 174, 41, 15, 41, 77, 151, 134, 242, 147,\n\t\t53, 219, 210, 72, 99, 37, 170, 90, 82, 205, 250, 138, 228,\n\t\t162, 43, 32, 171, 119, 45, 249, 10, 93, 9, 179, 134, 107,\n\t\t26, 161, 21, 8, 110, 27, 46, 145, 150, 86, 137, 12, 0, 198,\n\t\t242, 192, 72, 126, 126, 217, 94, 35, 95, 143, 137, 148, 20,\n\t\t51, 31, 14, 85, 93, 206, 45, 13, 175, 101, 26, 6, 154, 186,\n\t\t114, 193, 134, 254, 37, 235, 118, 217, 38, 81, 232, 20, 38,\n\t\t209, 46, 140, 236, 123, 73, 55, 17, 115, 113, 9, 64, 22, 50,\n\t\t93, 17, 238, 135, 32, 228, 195, 201, 87, 239, 220, 233, 67,\n\t\t88, 126, 80, 122, 102, 59, 23, 25, 220, 117, 202, 133, 10,\n\t\t103, 117, 34, 95, 7, 210, 75, 61, 26, 62, 200, 58, 252, 230,\n\t\t21, 11, 100, 120, 38, 214, 41, 12, 236, 12, 50, 71, 114, 221,\n\t\t152, 81, 147, 155, 21, 9, 102, 164, 181, 105, 128, 97, 12,\n\t\t46, 47, 73, 211, 237, 91, 198, 245, 58, 60, 24, 243, 212,\n\t\t12, 204, 134, 171, 175, 52, 242, 48, 201, 163, 214, 161, 45,\n\t\t12, 34, 132, 32, 172, 67, 214, 119, 213, 97, 24, 241, 206,\n\t\t230, 208, 52, 168, 141, 198, 94, 47, 163, 234, 60, 110, 14,\n\t\t117, 26, 14, 108, 91, 140, 182, 222, 185, 206, 217, 130, 123,\n\t\t58, 54, 0, 168, 80, 30, 193, 147, 126, 151, 98, 14, 226, 177,\n\t\t128, 251, 88, 210, 108, 18, 115, 41, 114, 13, 232, 123, 198,\n\t\t117, 38, 128, 171, 101, 181, 78, 14, 69, 227, 230, 165, 191,\n\t\t43, 10, 215, 176, 121, 35, 121, 206, 1, 250, 19, 93, 15, 166,\n\t\t81, 162, 161, 222, 145, 121, 18, 99, 110, 218, 33, 39, 164,\n\t\t225, 106, 130, 207, 15, 80, 187, 249, 235, 183, 239, 207,\n\t\t95, 150, 59, 162, 119, 103, 177, 221, 249, 104, 198, 242,\n\t\t23, 147, 193, 12, 173, 31, 233, 226, 221, 50, 82, 128, 184,\n\t\t64, 27, 2, 33, 98, 151, 88, 73, 166, 189, 6, 251, 211, 144,\n\t\t236, 173, 137, 123, 181, 246, 105, 215, 162, 166, 22, 150,\n\t\t128, 174, 53, 27, 172, 92, 245, 174, 65, 249, 49, 208, 12,\n\t\t171, 129, 132, 169, 52, 96, 11, 208, 89, 124, 160, 133, 107,\n\t\t153, 251, 67, 26, 135, 183, 208, 72, 115, 193, 54, 175, 162,\n\t\t36, 218, 153, 213, 94, 70, 99, 193, 150, 16, 39, 203, 33,\n\t\t14, 95, 166, 160, 6, 98, 75, 249, 173, 33, 175, 107, 221,\n\t\t237, 76, 16, 165, 48, 32, 197, 116, 213, 166, 113, 112, 152,\n\t\t218, 98, 88, 76, 69, 145, 178, 6, 139, 196, 205, 50, 92, 199,\n\t\t148, 14, 15, 77, 130, 106, 120, 144, 37, 222, 6, 235, 53,\n\t\t194, 181, 134, 231, 75, 87, 74, 26, 4, 82, 191, 54, 151, 142,\n\t\t165, 139, 222, 112, 155, 219, 171, 137, 184, 201, 202, 176,\n\t\t159, 160, 203, 83, 232, 36, 106, 109, 96, 152, 79, 234, 93,\n\t\t191, 206, 45, 79, 150, 196, 108, 23, 85, 102, 172, 135, 42,\n\t\t14, 71, 108, 169, 13, 145, 169, 65, 99, 229, 182, 84, 215,\n\t\t181, 110, 113, 92, 50, 169, 203, 60, 18, 122, 153, 181, 222,\n\t\t102, 102, 135, 173, 52, 162, 61, 244, 48, 92, 119, 203, 211,\n\t\t84, 192, 35, 164, 197, 20, 248, 59, 248, 74, 211, 36, 153,\n\t\t211, 174, 58, 195, 172, 6, 30, 199, 189, 38, 151, 142, 106,\n\t\t236, 18, 122, 75, 145, 0, 164, 104, 55, 27, 192, 205, 192,\n\t\t156, 182, 80, 25, 177, 41, 170, 70, 28, 28, 96, 4, 30, 134,\n\t\t70, 155, 208, 177, 139, 57, 253, 114, 120, 74, 62, 56, 178,\n\t\t33, 150, 83, 167, 150, 35, 162, 183, 196, 94, 184, 1, 96,\n\t\t152, 47, 56, 89, 224, 84, 82, 229, 175, 26, 231, 129, 113,\n\t\t36, 92, 152, 80, 210, 117, 100, 213, 6, 3, 136, 128, 102,\n\t\t91, 191, 81, 211, 109, 25, 167, 55, 0, 85, 36, 37, 103, 212,\n\t\t147, 36, 236, 112, 198, 196, 96, 50, 130, 210, 107, 118, 249,\n\t\t168, 188, 241, 99, 74, 183, 190, 124, 249, 249, 94, 165, 251,\n\t\t0, 141, 184, 80, 112, 117, 82, 16, 118, 238, 98, 222, 60,\n\t\t27, 70, 96, 72, 52, 2, 109, 226, 104, 161, 113, 114, 207,\n\t\t81, 226, 167, 84, 182, 50, 99, 111, 205, 215, 37, 199, 57,\n\t\t223, 165, 13, 186, 182, 62, 210, 131, 140, 102, 153, 217,\n\t\t102, 222, 90, 24, 41, 222, 90, 122, 250, 210, 248, 170, 146,\n\t\t228, 226, 69, 163, 54, 172, 184, 105, 167, 9, 85, 15, 244,\n\t\t195, 106, 66, 106, 181, 141, 96, 138, 60, 236, 230, 182, 59,\n\t\t11, 5, 83, 55, 175, 132, 20, 254, 121, 201, 16, 147, 85, 162,\n\t\t208, 90, 106, 173, 16, 255, 15, 164, 213, 57, 191, 235, 193,\n\t\t253, 154, 52, 165, 146, 210, 72, 180, 70, 33, 139, 38, 209,\n\t\t198, 159, 114, 118, 112, 73, 60, 53, 172, 123, 88, 20, 181,\n\t\t104, 220, 127, 165, 166, 186, 178, 232, 159, 75, 58, 2, 180,\n\t\t255, 247, 250, 68, 152, 111, 253, 189, 199, 164, 228, 37,\n\t\t46, 233, 156, 20, 229, 214, 174, 51, 130, 75, 114, 190, 97,\n\t\t95, 58, 226, 182, 100, 101, 64, 38, 138, 239, 73, 42, 191,\n\t\t220, 197, 199, 44, 35, 62, 38, 228, 34, 32, 127, 137, 28,\n\t\t148, 0, 89, 50, 4, 200, 86, 205, 136, 210, 131, 115, 74, 114,\n\t\t242, 157, 169, 153, 124, 91, 152, 120, 154, 14, 67, 29, 84,\n\t\t55, 140, 37, 242, 213, 37, 94, 46, 66, 222, 54, 132, 153,\n\t\t190, 185, 180, 202, 11, 101, 11, 18, 33, 192, 122, 219, 245,\n\t\t192, 167, 246, 211, 92, 70, 224, 156, 106, 110, 133, 101,\n\t\t57, 109, 167, 175, 41, 152, 9, 24, 222, 21, 209, 18, 94, 34,\n\t\t43, 167, 100, 152, 246, 10, 106, 163, 238, 13, 83, 23, 182,\n\t\t15, 234, 68, 116, 110, 192, 194, 230, 202, 199, 135, 242,\n\t\t156, 21, 208, 253, 21, 97, 20, 80, 71, 99, 44, 120, 40, 120,\n\t\t36, 130, 111, 144, 254, 29, 47, 79, 62, 154, 77, 157, 146,\n\t\t64, 132, 173, 191, 102, 210, 107, 182, 197, 72, 229, 20, 115,\n\t\t201, 26, 76, 179, 29, 112, 106, 87, 68, 18, 11, 161, 220,\n\t\t134, 81, 49, 147, 237, 76, 27, 236, 13, 22, 42, 239, 97, 182,\n\t\t170, 226, 27, 107, 129, 197, 63, 26, 10, 157, 121, 118, 233,\n\t\t245, 81, 149, 74, 111, 165, 88, 179, 228, 110, 209, 130, 240,\n\t\t236, 23, 77, 238, 102, 218, 255, 109, 8, 70, 238, 75, 222,\n\t\t199, 154, 29, 116, 24, 215, 197, 170, 10, 110, 193, 226, 137,\n\t\t236, 8, 182, 163, 202, 220, 23, 130, 38, 18, 88, 109, 40,\n\t\t204, 97, 107, 161, 129, 235, 224, 174, 129, 177, 132, 236,\n\t\t184, 1, 79, 101, 198, 167, 97, 255, 220, 128, 253, 202, 238,\n\t\t136, 148, 133, 168, 37, 71, 83, 179, 253, 185, 164, 117, 50,\n\t\t46, 170, 167, 205, 225, 44, 142, 58, 55, 78, 38, 234, 99,\n\t\t34, 185, 225, 14, 203, 12, 161, 124, 48, 241, 35, 174, 126,\n\t\t80, 1, 19, 136, 135, 146, 37, 26, 2, 174, 149, 68, 3, 192,\n\t\t85, 134, 98, 164, 140, 213, 51, 218, 58, 96, 77, 202, 245,\n\t\t135, 82, 211, 137, 126, 231, 205, 23, 126, 51, 73, 223, 185,\n\t\t200, 179, 215, 193, 13, 230, 172, 107, 218, 242, 210, 110,\n\t\t30, 245, 22, 105, 60, 10, 180, 159, 158, 239, 70, 247, 244,\n\t\t230, 243, 172, 205, 254, 177, 78, 93, 158, 98, 105, 72, 239,\n\t\t140, 221, 171, 4, 109, 56, 11, 111, 27, 88, 72, 252, 255,\n\t\t110, 224, 255, 137, 27, 248, 93, 249, 248, 235, 183, 127,\n\t\t255, 244, 237, 211, 247, 231, 215, 116, 130, 47, 127, 155,\n\t\t78, 48, 21, 15, 95, 242, 230, 210, 58, 195, 227, 65, 131,\n\t\t157, 214, 185, 20, 137, 155, 90, 51, 24, 204, 101, 3, 226,\n\t\t48, 135, 185, 77, 155, 62, 178, 184, 207, 169, 41, 47, 30,\n\t\t44, 172, 134, 124, 216, 24, 213, 145, 24, 109, 203, 1, 94,\n\t\t85, 97, 61, 188, 131, 244, 206, 195, 218, 77, 164, 82, 220,\n\t\t163, 1, 13, 16, 5, 131, 90, 121, 95, 155, 119, 65, 248, 19,\n\t\t30, 122, 243, 247, 55, 113, 108, 64, 174, 140, 120, 31, 133,\n\t\t17, 88, 70, 100, 0, 133, 173, 214, 16, 227, 54, 180, 146,\n\t\t168, 105, 101, 54, 170, 154, 197, 244, 190, 65, 238, 9, 242,\n\t\t242, 208, 58, 251, 73, 194, 231, 71, 208, 126, 55, 74, 26,\n\t\t4, 252, 187, 36, 30, 253, 24, 92, 61, 32, 27, 159, 50, 222,\n\t\t230, 182, 221, 149, 139, 50, 115, 71, 82, 159, 147, 52, 98,\n\t\t61, 108, 31, 67, 73, 167, 214, 126, 235, 185, 117, 83, 95,\n\t\t248, 247, 13, 202, 216, 228, 3, 185, 117, 248, 215, 41, 192,\n\t\t142, 237, 212, 53, 14, 153, 202, 2, 167, 162, 169, 203, 121,\n\t\t52, 234, 8, 168, 48, 24, 196, 145, 75, 113, 116, 95, 205,\n\t\t234, 6, 30, 27, 21, 54, 197, 230, 56, 241, 50, 172, 27, 28,\n\t\t127, 233, 61, 156, 85, 9, 187, 64, 18, 137, 74, 45, 132, 138,\n\t\t152, 102, 216, 216, 53, 57, 127, 214, 164, 202, 195, 45, 187,\n\t\t71, 49, 21, 156, 132, 127, 136, 27, 210, 32, 169, 232, 170,\n\t\t202, 32, 250, 14, 129, 87, 182, 78, 139, 6, 218, 236, 36,\n\t\t120, 203, 240, 0, 221, 104, 30, 7, 142, 106, 126, 14, 39,\n\t\t46, 19, 118, 242, 90, 47, 24, 204, 19, 34, 75, 31, 214, 50,\n\t\t114, 129, 72, 151, 151, 161, 110, 48, 119, 188, 129, 136,\n\t\t13, 23, 217, 52, 16, 54, 213, 159, 137, 16, 181, 142, 29,\n\t\t13, 71, 87, 219, 124, 184, 135, 36, 69, 57, 84, 211, 166,\n\t\t92, 156, 199, 154, 42, 131, 65, 136, 67, 185, 217, 76, 241,\n\t\t167, 147, 190, 229, 32, 180, 3, 169, 12, 49, 203, 84, 55,\n\t\t3, 0, 217, 98, 142, 149, 195, 190, 60, 69, 42, 72, 79, 80,\n\t\t92, 93, 37, 140, 57, 89, 166, 14, 158, 26, 24, 103, 135, 135,\n\t\t127, 220, 139, 184, 138, 66, 54, 167, 140, 224, 163, 140,\n\t\t131, 193, 152, 20, 221, 197, 155, 255, 206, 136, 149, 178,\n\t\t158, 52, 195, 177, 89, 169, 116, 30, 159, 162, 14, 48, 35,\n\t\t150, 165, 108, 103, 131, 236, 161, 1, 179, 105, 103, 244,\n\t\t187, 84, 252, 151, 79, 119, 145, 98, 207, 126, 67, 19, 128,\n\t\t159, 14, 11, 14, 203, 48, 25, 154, 59, 231, 46, 123, 221,\n\t\t72, 10, 51, 96, 148, 20, 64, 101, 157, 53, 252, 91, 147, 217,\n\t\t47, 155, 147, 207, 134, 224, 175, 183, 142, 111, 180, 37,\n\t\t2, 33, 63, 212, 139, 51, 112, 217, 7, 168, 159, 138, 169,\n\t\t75, 24, 240, 41, 202, 64, 197, 178, 209, 118, 12, 66, 50,\n\t\t138, 88, 251, 97, 17, 96, 159, 18, 7, 139, 231, 204, 206,\n\t\t9, 40, 241, 50, 96, 172, 114, 112, 5, 170, 75, 185, 30, 240,\n\t\t6, 27, 196, 208, 0, 146, 24, 252, 162, 148, 28, 103, 77, 183,\n\t\t203, 164, 87, 236, 221, 211, 200, 177, 67, 198, 124, 74, 5,\n\t\t227, 46, 66, 209, 137, 171, 122, 136, 152, 3, 223, 40, 160,\n\t\t80, 17, 156, 103, 94, 113, 26, 14, 50, 85, 13, 61, 75, 182,\n\t\t4, 124, 85, 56, 4, 216, 84, 132, 217, 24, 208, 9, 182, 32,\n\t\t245, 72, 212, 236, 133, 222, 0, 173, 199, 140, 154, 243, 187,\n\t\t126, 200, 132, 216, 100, 218, 92, 206, 102, 199, 30, 75, 131,\n\t\t4, 109, 122, 96, 254, 236, 147, 176, 96, 57, 228, 205, 178,\n\t\t154, 135, 219, 60, 214, 173, 42, 103, 6, 37, 69, 71, 21, 36,\n\t\t57, 88, 108, 61, 207, 222, 57, 116, 193, 15, 149, 13, 52,\n\t\t244, 28, 74, 44, 134, 199, 244, 109, 222, 234, 185, 238, 96,\n\t\t158, 164, 202, 121, 78, 197, 70, 192, 172, 197, 35, 67, 200,\n\t\t6, 13, 15, 10, 185, 230, 1, 221, 24, 151, 50, 209, 78, 51,\n\t\t107, 200, 253, 226, 148, 143, 13, 42, 145, 0, 22, 205, 26,\n\t\t16, 68, 166, 119, 3, 209, 40, 223, 133, 217, 159, 250, 62,\n\t\t34, 31, 110, 239, 3, 58, 202, 60, 228, 0, 8, 36, 251, 91,\n\t\t17, 21, 150, 97, 7, 175, 91, 192, 240, 118, 240, 225, 0, 146,\n\t\t216, 64, 28, 33, 89, 79, 144, 16, 23, 63, 217, 11, 203, 59,\n\t\t238, 223, 151, 71, 121, 27, 153, 63, 52, 210, 101, 55, 200,\n\t\t161, 175, 35, 154, 130, 118, 1, 82, 182, 108, 36, 179, 214,\n\t\t80, 109, 132, 129, 72, 131, 217, 223, 208, 237, 222, 116,\n\t\t92, 185, 19, 42, 79, 175, 200, 113, 167, 43, 221, 225, 36,\n\t\t233, 246, 115, 153, 154, 255, 155, 26, 166, 148, 222, 206,\n\t\t89, 254, 231, 154, 14, 254, 237, 36, 252, 127, 178, 101, 200,\n\t\t122, 104, 212, 188, 227, 169, 76, 49, 124, 176, 85, 146, 44,\n\t\t116, 242, 113, 57, 0, 115, 226, 111, 153, 186, 247, 142, 181,\n\t\t95, 215, 111, 255, 190, 59, 215, 238, 124, 24, 247, 209, 84,\n\t\t126, 170, 225, 97, 226, 247, 211, 107, 97, 37, 167, 55, 108,\n\t\t105, 126, 151, 64, 251, 130, 188, 242, 127, 99, 235, 237,\n\t\t143, 181, 126, 248, 88, 243, 177, 252, 177, 230, 63, 214,\n\t\t122, 238, 205, 141, 164, 156, 171, 65, 22, 176, 104, 2, 44,\n\t\t221, 15, 123, 147, 173, 195, 149, 201, 190, 28, 126, 95, 114,\n\t\t125, 125, 226, 100, 169, 14, 68, 104, 21, 183, 59, 67, 67,\n\t\t181, 188, 159, 163, 160, 75, 132, 202, 89, 13, 53, 71, 195,\n\t\t85, 95, 42, 216, 101, 33, 148, 195, 170, 163, 47, 63, 10,\n\t\t4, 2, 186, 152, 48, 147, 253, 56, 230, 194, 30, 123, 0, 46,\n\t\t160, 101, 75, 21, 195, 191, 92, 213, 37, 2, 164, 118, 50,\n\t\t119, 31, 51, 233, 41, 23, 88, 18, 210, 19, 181, 115, 31, 0,\n\t\t92, 247, 176, 163, 71, 42, 150, 187, 255, 149, 223, 82, 114,\n\t\t113, 177, 96, 39, 191, 225, 52, 24, 94, 98, 26, 108, 153,\n\t\t72, 27, 107, 29, 241, 198, 13, 48, 38, 203, 80, 233, 181,\n\t\t41, 111, 179, 145, 199, 69, 208, 68, 20, 60, 10, 252, 162,\n\t\t199, 50, 70, 149, 223, 13, 102, 73, 147, 233, 171, 42, 108,\n\t\t110, 102, 97, 189, 157, 194, 155, 112, 145, 183, 114, 182,\n\t\t223, 46, 156, 223, 179, 232, 238, 22, 236, 44, 230, 35, 205,\n\t\t33, 103, 45, 27, 18, 214, 86, 146, 197, 8, 117, 70, 182, 37,\n\t\t61, 239, 61, 148, 249, 198, 210, 171, 238, 225, 246, 142,\n\t\t203, 19, 241, 43, 182, 116, 158, 123, 89, 213, 77, 152, 66,\n\t\t112, 9, 81, 30, 194, 71, 21, 127, 148, 20, 79, 208, 246, 77,\n\t\t254, 131, 16, 19, 183, 32, 183, 87, 42, 152, 91, 248, 99,\n\t\t120, 227, 62, 162, 195, 63, 94, 190, 254, 124, 23, 146, 246,\n\t\t92, 31, 184, 77, 215, 0, 167, 66, 83, 112, 121, 104, 10, 76,\n\t\t134, 196, 126, 224, 5, 2, 237, 213, 80, 130, 109, 17, 95,\n\t\t193, 254, 142, 51, 37, 127, 158, 67, 104, 239, 215, 196, 222,\n\t\t26, 207, 155, 161, 117, 216, 170, 81, 56, 7, 100, 99, 76,\n\t\t254, 157, 106, 232, 149, 213, 216, 117, 25, 255, 142, 177,\n\t\t248, 11, 94, 47, 81, 57, 252, 5, 239, 23, 203, 159, 239, 207,\n\t\t195, 169, 251, 246, 101, 189, 79, 22, 252, 220, 30, 204, 93,\n\t\t105, 83, 242, 94, 96, 74, 40, 23, 87, 55, 164, 23, 67, 255,\n\t\t136, 97, 115, 55, 138, 97, 120, 190, 227, 117, 237, 136, 143,\n\t\t195, 112, 22, 16, 208, 215, 6, 12, 35, 243, 187, 171, 73,\n\t\t121, 195, 239, 172, 12, 92, 107, 13, 96, 177, 237, 99, 198,\n\t\t245, 129, 100, 170, 37, 138, 216, 18, 72, 61, 7, 85, 142,\n\t\t26, 92, 231, 30, 237, 13, 218, 14, 125, 98, 53, 68, 221, 145,\n\t\t93, 111, 160, 133, 90, 31, 123, 188, 41, 32, 101, 245, 71,\n\t\t64, 152, 57, 5, 230, 49, 8, 58, 6, 103, 12, 217, 43, 214,\n\t\t136, 43, 214, 231, 161, 197, 251, 150, 207, 186, 141, 246,\n\t\t125, 47, 127, 249, 229, 169, 49, 157, 69, 205, 195, 35, 5,\n\t\t113, 122, 87, 227, 174, 43, 241, 86, 227, 158, 30, 43, 166,\n\t\t133, 178, 81, 45, 75, 85, 31, 54, 47, 88, 118, 67, 53, 37,\n\t\t87, 204, 141, 22, 241, 75, 150, 56, 38, 41, 146, 111, 155,\n\t\t201, 72, 175, 99, 56, 169, 63, 158, 34, 227, 129, 53, 125,\n\t\t188, 248, 191, 173, 119, 38, 228, 231, 190, 133, 210, 146,\n\t\t35, 203, 6, 185, 236, 200, 189, 124, 53, 32, 56, 15, 253,\n\t\t24, 228, 87, 254, 34, 158, 149, 57, 220, 158, 18, 170, 172,\n\t\t53, 133, 244, 40, 201, 230, 115, 189, 130, 144, 147, 39, 192,\n\t\t199, 208, 50, 196, 194, 43, 100, 225, 41, 15, 120, 97, 115,\n\t\t142, 26, 6, 50, 13, 118, 194, 231, 145, 71, 14, 39, 180, 24,\n\t\t211, 219, 10, 59, 63, 2, 72, 96, 156, 183, 159, 81, 123, 178,\n\t\t155, 145, 187, 125, 15, 149, 11, 86, 136, 175, 85, 91, 214,\n\t\t70, 2, 21, 121, 252, 229, 41, 70, 114, 117, 10, 33, 222, 164,\n\t\t137, 81, 198, 97, 248, 121, 15, 100, 22, 184, 112, 227, 141,\n\t\t154, 197, 153, 13, 153, 80, 142, 127, 29, 69, 115, 138, 53,\n\t\t5, 41, 114, 81, 46, 177, 78, 177, 78, 77, 251, 147, 212, 236,\n\t\t78, 81, 94, 94, 1, 25, 151, 65, 31, 182, 28, 204, 182, 90,\n\t\t228, 134, 145, 41, 85, 183, 251, 58, 215, 225, 30, 106, 78,\n\t\t181, 70, 90, 52, 44, 96, 139, 19, 208, 95, 214, 170, 42, 94,\n\t\t253, 92, 204, 128, 53, 12, 89, 122, 131, 90, 6, 84, 155, 234,\n\t\t242, 98, 4, 194, 114, 64, 66, 44, 86, 37, 68, 55, 12, 184,\n\t\t45, 39, 4, 115, 31, 11, 224, 55, 249, 47, 180, 29, 127, 49,\n\t\t82, 52, 2, 175, 96, 86, 199, 132, 157, 131, 130, 159, 130,\n\t\t23, 216, 45, 144, 102, 194, 251, 97, 229, 68, 98, 201, 45,\n\t\t0, 18, 42, 209, 50, 111, 112, 186, 6, 171, 56, 180, 151, 230,\n\t\t83, 153, 161, 58, 171, 154, 209, 42, 98, 229, 240, 199, 50,\n\t\t7, 248, 131, 77, 136, 209, 148, 111, 29, 126, 10, 39, 254,\n\t\t142, 66, 63, 113, 201, 74, 89, 50, 184, 242, 103, 70, 180,\n\t\t210, 252, 26, 196, 106, 127, 197, 55, 238, 131, 96, 171, 6,\n\t\t17, 0, 162, 56, 252, 223, 62, 132, 187, 250, 227, 251, 167,\n\t\t59, 112, 142, 231, 79, 195, 169, 132, 165, 220, 150, 126,\n\t\t167, 251, 206, 233, 131, 174, 52, 23, 128, 186, 230, 41, 246,\n\t\t226, 104, 49, 211, 148, 64, 218, 219, 217, 56, 130, 20, 135,\n\t\t111, 201, 240, 54, 12, 200, 72, 85, 228, 125, 207, 115, 87,\n\t\t37, 37, 147, 217, 199, 217, 172, 45, 111, 252, 131, 176, 134,\n\t\t195, 113, 126, 247, 189, 53, 93, 255, 155, 64, 104, 84, 203,\n\t\t185, 201, 172, 172, 115, 160, 238, 58, 146, 97, 138, 12, 102,\n\t\t59, 109, 83, 197, 25, 48, 158, 232, 235, 134, 245, 131, 207,\n\t\t217, 1, 46, 237, 205, 206, 96, 61, 87, 226, 164, 187, 107,\n\t\t32, 216, 26, 246, 173, 133, 151, 140, 56, 73, 75, 95, 38,\n\t\t68, 100, 85, 108, 210, 195, 50, 98, 104, 181, 158, 13, 251,\n\t\t150, 144, 51, 155, 158, 146, 27, 184, 60, 81, 45, 83, 73,\n\t\t136, 54, 84, 152, 205, 94, 4, 155, 131, 138, 215, 107, 253,\n\t\t245, 242, 20, 1, 48, 228, 119, 85, 1, 60, 10, 118, 63, 191,\n\t\t131, 24, 240, 199, 87, 215, 163, 101, 255, 249, 203, 247,\n\t\t151, 215, 48, 171, 94, 238, 98, 31, 119, 0, 159, 33, 186,\n\t\t92, 176, 90, 219, 82, 131, 75, 69, 184, 187, 12, 106, 155,\n\t\t28, 50, 126, 212, 234, 40, 142, 203, 32, 137, 9, 176, 218,\n\t\t2, 87, 157, 144, 196, 39, 116, 249, 9, 250, 78, 173, 198,\n\t\t59, 27, 148, 32, 58, 202, 82, 142, 226, 197, 79, 149, 92,\n\t\t137, 189, 0, 141, 41, 97, 54, 188, 75, 113, 162, 210, 166,\n\t\t208, 136, 79, 136, 230, 66, 243, 17, 124, 103, 142, 62, 34,\n\t\t245, 56, 32, 54, 107, 116, 37, 120, 98, 65, 50, 70, 217, 71,\n\t\t228, 168, 34, 70, 162, 36, 113, 241, 143, 85, 0, 171, 19,\n\t\t245, 62, 37, 239, 74, 233, 125, 202, 197, 5, 234, 117, 202,\n\t\t221, 245, 210, 43, 230, 208, 121, 148, 83, 246, 105, 73, 221,\n\t\t133, 36, 172, 98, 74, 93, 192, 236, 185, 11, 44, 244, 133,\n\t\t208, 167, 24, 93, 10, 189, 78, 148, 249, 203, 50, 71, 23,\n\t\t115, 143, 72, 4, 174, 112, 213, 142, 66, 111, 18, 33, 22,\n\t\t36, 154, 222, 133, 210, 51, 242, 50, 148, 94, 225, 164, 95,\n\t\t2, 50, 95, 23, 215, 106, 239, 39, 139, 16, 3, 191, 16, 1,\n\t\t61, 222, 92, 139, 0, 4, 206, 46, 166, 195, 50, 167, 230, 18,\n\t\t118, 83, 110, 218, 44, 48, 123, 167, 185, 7, 71, 177, 151,\n\t\t113, 13, 79, 48, 152, 184, 106, 117, 217, 51, 165, 111, 174,\n\t\t194, 248, 156, 121, 158, 248, 247, 86, 236, 114, 9, 205, 181,\n\t\t12, 79, 138, 156, 93, 46, 61, 78, 205, 245, 238, 67, 4, 54,\n\t\t113, 232, 200, 188, 198, 3, 243, 112, 213, 253, 244, 105,\n\t\t185, 135, 47, 124, 185, 139, 199, 220, 156, 238, 3, 53, 199,\n\t\t124, 0, 145, 43, 180, 176, 8, 209, 10, 226, 49, 18, 70, 4,\n\t\t112, 88, 37, 115, 73, 74, 142, 138, 151, 124, 216, 29, 16,\n\t\t114, 153, 207, 66, 137, 27, 40, 190, 38, 241, 88, 228, 51,\n\t\t25, 99, 218, 154, 35, 192, 253, 51, 59, 22, 125, 94, 145,\n\t\t74, 61, 139, 181, 150, 199, 3, 134, 88, 217, 252, 193, 21,\n\t\t18, 83, 146, 243, 213, 71, 158, 91, 20, 48, 209, 129, 142,\n\t\t36, 59, 95, 124, 94, 98, 145, 69, 22, 186, 235, 181, 231,\n\t\t169, 240, 26, 98, 102, 6, 103, 107, 39, 231, 121, 224, 178,\n\t\t231, 185, 75, 135, 165, 163, 7, 97, 138, 46, 145, 167, 2,\n\t\t4, 135, 234, 43, 60, 83, 139, 175, 83, 111, 174, 6, 249, 244,\n\t\t29, 122, 225, 226, 121, 9, 5, 166, 106, 98, 94, 142, 200,\n\t\t47, 199, 146, 85, 155, 168, 241, 253, 29, 48, 218, 53, 44,\n\t\t148, 93, 203, 96, 123, 58, 90, 15, 213, 197, 34, 25, 31, 133,\n\t\t143, 26, 182, 155, 37, 185, 28, 51, 33, 103, 106, 78, 169,\n\t\t35, 7, 84, 23, 35, 100, 45, 84, 1, 170, 22, 83, 177, 235,\n\t\t165, 58, 239, 91, 53, 176, 191, 12, 15, 156, 222, 122, 144,\n\t\t160, 154, 148, 73, 204, 133, 37, 228, 53, 86, 87, 170, 23,\n\t\t183, 213, 216, 160, 186, 139, 30, 11, 5, 220, 109, 233, 94,\n\t\t146, 154, 119, 82, 85, 75, 172, 88, 180, 5, 139, 52, 101,\n\t\t92, 47, 136, 249, 16, 139, 182, 215, 185, 96, 174, 152, 231,\n\t\t2, 226, 30, 182, 122, 231, 61, 193, 236, 86, 33, 108, 105,\n\t\t64, 126, 98, 70, 231, 210, 157, 79, 248, 66, 250, 0, 174,\n\t\t28, 121, 146, 187, 107, 73, 216, 198, 1, 61, 218, 117, 37,\n\t\t101, 114, 36, 207, 74, 122, 123, 43, 151, 167, 92, 10, 47,\n\t\t201, 152, 120, 17, 28, 22, 26, 48, 53, 91, 104, 159, 144,\n\t\t30, 94, 37, 104, 135, 120, 186, 114, 197, 235, 96, 157, 108,\n\t\t239, 25, 189, 243, 30, 29, 43, 66, 78, 88, 150, 149, 125,\n\t\t218, 199, 211, 61, 175, 143, 176, 12, 8, 135, 232, 82, 236,\n\t\t137, 57, 47, 77, 102, 67, 61, 130, 20, 240, 58, 198, 23, 242,\n\t\t61, 49, 115, 222, 165, 30, 211, 237, 6, 222, 179, 184, 26,\n\t\t59, 152, 202, 228, 112, 119, 67, 37, 254, 194, 147, 113, 64,\n\t\t206, 30, 30, 144, 93, 38, 205, 80, 141, 116, 122, 71, 181,\n\t\t87, 40, 176, 122, 242, 226, 121, 207, 189, 6, 22, 79, 44,\n\t\t132, 192, 176, 152, 75, 202, 106, 145, 47, 240, 105, 242,\n\t\t234, 140, 192, 171, 168, 231, 81, 130, 83, 93, 2, 130, 32,\n\t\t62, 212, 84, 104, 226, 133, 84, 101, 86, 65, 234, 155, 73,\n\t\t16, 88, 72, 189, 194, 220, 22, 122, 93, 120, 21, 121, 1, 239,\n\t\t16, 122, 29, 132, 64, 97, 15, 122, 154, 120, 5, 49, 253, 230,\n\t\t37, 20, 33, 230, 108, 249, 113, 49, 24, 89, 201, 30, 175,\n\t\t159, 100, 78, 239, 19, 47, 144, 224, 227, 41, 43, 57, 47,\n\t\t157, 139, 112, 50, 96, 201, 120, 90, 186, 107, 228, 51, 20,\n\t\t200, 209, 11, 82, 20, 38, 138, 151, 75, 65, 132, 222, 212,\n\t\t202, 2, 215, 17, 137, 222, 107, 60, 122, 76, 168, 186, 232,\n\t\t83, 177, 250, 153, 76, 101, 212, 94, 66, 17, 178, 210, 149,\n\t\t156, 228, 136, 101, 2, 249, 129, 27, 108, 141, 9, 50, 211,\n\t\t169, 254, 152, 186, 126, 251, 246, 95, 243, 47, 47, 207, 175,\n\t\t165, 78, 124, 41, 15, 130, 222, 83, 99, 233, 42, 139, 55,\n\t\t224, 6, 162, 52, 76, 233, 217, 245, 222, 119, 63, 40, 156,\n\t\t217, 178, 213, 48, 127, 8, 43, 200, 85, 85, 176, 114, 2, 179,\n\t\t200, 55, 28, 60, 236, 203, 214, 156, 50, 187, 251, 246, 185,\n\t\t25, 83, 108, 64, 137, 113, 231, 242, 113, 251, 229, 56, 199,\n\t\t80, 92, 90, 44, 100, 98, 82, 216, 222, 17, 62, 6, 236, 222,\n\t\t40, 249, 188, 173, 142, 253, 106, 255, 142, 210, 6, 33, 174,\n\t\t192, 30, 96, 253, 186, 125, 226, 121, 142, 112, 4, 161, 139,\n\t\t228, 17, 107, 254, 172, 138, 255, 228, 18, 102, 142, 247,\n\t\t29, 182, 142, 234, 87, 114, 49, 37, 224, 91, 53, 68, 3, 131,\n\t\t159, 84, 3, 131, 159, 219, 212, 206, 185, 28, 115, 121, 243,\n\t\t87, 60, 216, 126, 156, 183, 95, 68, 63, 147, 203, 57, 67,\n\t\t245, 243, 102, 13, 213, 224, 104, 219, 170, 193, 177, 174,\n\t\t205, 141, 251, 45, 42, 213, 7, 149, 46, 79, 177, 121, 103,\n\t\t168, 18, 161, 37, 7, 228, 189, 201, 16, 40, 108, 14, 149,\n\t\t105, 221, 95, 75, 209, 17, 247, 60, 94, 228, 223, 95, 62,\n\t\t61, 207, 167, 245, 203, 114, 167, 128, 126, 185, 11, 109,\n\t\t217, 49, 18, 173, 9, 100, 78, 243, 19, 112, 66, 16, 27, 32,\n\t\t254, 65, 13, 58, 200, 238, 72, 226, 237, 12, 62, 42, 36, 37,\n\t\t201, 217, 184, 142, 146, 198, 197, 25, 26, 117, 17, 162, 64,\n\t\t127, 128, 34, 3, 134, 11, 175, 2, 93, 212, 113, 142, 181,\n\t\t44, 72, 111, 196, 204, 10, 116, 146, 204, 221, 131, 64, 241,\n\t\t119, 150, 161, 128, 2, 210, 229, 160, 82, 20, 144, 228, 114,\n\t\t238, 72, 163, 55, 233, 227, 152, 9, 206, 66, 187, 9, 200,\n\t\t165, 220, 219, 73, 112, 255, 249, 235, 195, 33, 91, 142, 47,\n\t\t47, 167, 251, 209, 26, 8, 114, 30, 178, 73, 38, 108, 56, 63,\n\t\t94, 10, 46, 87, 220, 89, 184, 173, 14, 177, 226, 56, 167,\n\t\t36, 241, 44, 168, 50, 68, 150, 81, 47, 134, 51, 21, 127, 121,\n\t\t10, 189, 187, 22, 37, 38, 131, 154, 163, 186, 129, 41, 80,\n\t\t192, 37, 249, 228, 136, 198, 101, 8, 233, 56, 103, 10, 107,\n\t\t168, 205, 213, 41, 80, 93, 132, 120, 166, 41, 186, 86, 243,\n\t\t100, 201, 125, 170, 243, 212, 115, 156, 130, 183, 175, 139,\n\t\t119, 145, 40, 135, 56, 249, 201, 187, 70, 45, 138, 27, 19,\n\t\t243, 41, 32, 195, 164, 220, 54, 151, 241, 13, 20, 46, 135,\n\t\t135, 99, 182, 126, 249, 250, 101, 121, 139, 154, 126, 190,\n\t\t179, 55, 95, 175, 180, 24, 227, 202, 172, 107, 133, 188, 30,\n\t\t92, 95, 248, 144, 17, 241, 157, 121, 147, 134, 189, 155, 193,\n\t\t20, 4, 231, 197, 57, 144, 5, 169, 90, 225, 71, 202, 114, 240,\n\t\t25, 224, 199, 93, 52, 187, 141, 15, 37, 200, 12, 56, 4, 119,\n\t\t186, 221, 227, 156, 68, 179, 44, 85, 76, 181, 188, 213, 163,\n\t\t114, 70, 67, 105, 33, 62, 210, 66, 133, 239, 15, 52, 67, 202,\n\t\t250, 144, 107, 173, 23, 96, 188, 149, 94, 35, 179, 129, 9,\n\t\t56, 83, 177, 165, 169, 134, 255, 8, 210, 242, 223, 71, 89,\n\t\t47, 79, 185, 122, 102, 150, 2, 145, 171, 225, 176, 4, 215,\n\t\t163, 47, 208, 149, 149, 72, 13, 201, 187, 193, 16, 204, 213,\n\t\t245, 146, 246, 5, 196, 242, 26, 175, 78, 48, 70, 205, 67,\n\t\t160, 114, 77, 246, 127, 179, 73, 74, 96, 239, 197, 154, 82,\n\t\t90, 18, 63, 123, 243, 72, 114, 45, 120, 132, 198, 203, 179,\n\t\t230, 241, 116, 123, 216, 156, 153, 13, 225, 149, 132, 167,\n\t\t165, 56, 74, 32, 116, 182, 92, 113, 20, 242, 6, 172, 53, 242,\n\t\t100, 199, 210, 197, 197, 188, 240, 38, 82, 69, 203, 58, 135,\n\t\t208, 93, 12, 192, 69, 8, 85, 29, 205, 196, 143, 215, 5, 15,\n\t\t246, 177, 186, 144, 138, 239, 124, 139, 186, 82, 49, 47, 149,\n\t\t237, 250, 52, 55, 231, 153, 55, 130, 103, 95, 15, 88, 128,\n\t\t82, 99, 214, 42, 227, 41, 51, 30, 3, 133, 77, 166, 154, 161,\n\t\t105, 9, 37, 0, 29, 89, 95, 103, 104, 128, 172, 167, 3, 51,\n\t\t130, 197, 141, 216, 18, 232, 101, 119, 161, 134, 84, 166,\n\t\t224, 98, 109, 157, 182, 81, 208, 65, 144, 193, 36, 137, 40,\n\t\t231, 177, 196, 139, 225, 81, 227, 209, 246, 164, 187, 71,\n\t\t235, 147, 17, 184, 32, 188, 180, 61, 198, 30, 107, 131, 175,\n\t\t79, 93, 225, 105, 19, 96, 104, 110, 49, 76, 217, 149, 198,\n\t\t179, 69, 204, 194, 73, 156, 67, 232, 204, 57, 86, 248, 17,\n\t\t241, 213, 210, 92, 42, 76, 221, 60, 51, 124, 41, 5, 205, 144,\n\t\t9, 73, 143, 43, 166, 162, 88, 20, 143, 137, 252, 183, 95,\n\t\t126, 121, 249, 250, 227, 77, 138, 149, 95, 139, 147, 131,\n\t\t181, 198, 2, 229, 112, 122, 221, 4, 202, 209, 77, 164, 220,\n\t\t113, 246, 46, 213, 88, 98, 132, 28, 151, 26, 73, 204, 92,\n\t\t115, 177, 69, 168, 221, 26, 33, 71, 142, 103, 33, 9, 162,\n\t\t44, 139, 98, 55, 81, 115, 16, 192, 107, 82, 177, 34, 139,\n\t\t184, 182, 143, 154, 147, 123, 120, 67, 18, 197, 137, 201,\n\t\t120, 106, 45, 52, 96, 12, 138, 214, 129, 55, 104, 107, 117,\n\t\t43, 104, 7, 201, 29, 152, 33, 152, 186, 222, 40, 37, 164,\n\t\t32, 14, 161, 240, 234, 32, 93, 20, 249, 42, 152, 46, 107,\n\t\t48, 157, 112, 226, 202, 134, 138, 30, 64, 130, 233, 154, 40,\n\t\t4, 170, 48, 2, 18, 76, 215, 0, 189, 161, 193, 116, 73, 163,\n\t\t233, 248, 40, 230, 17, 11, 215, 241, 116, 49, 135, 137, 90,\n\t\t250, 8, 13, 253, 19, 36, 244, 240, 159, 78, 67, 31, 174, 220,\n\t\t239, 191, 253, 88, 238, 226, 148, 63, 215, 205, 42, 87, 93,\n\t\t164, 41, 148, 192, 187, 37, 184, 92, 34, 28, 24, 184, 121,\n\t\t79, 83, 114, 37, 69, 161, 190, 66, 34, 71, 129, 42, 212, 132,\n\t\t250, 22, 145, 197, 131, 35, 95, 147, 196, 0, 36, 224, 2, 38,\n\t\t87, 125, 20, 143, 28, 48, 102, 112, 55, 130, 206, 16, 95,\n\t\t162, 239, 32, 82, 13, 68, 115, 124, 169, 174, 228, 18, 64,\n\t\t216, 176, 121, 113, 55, 165, 81, 128, 44, 170, 185, 83, 19,\n\t\t218, 91, 67, 203, 27, 62, 137, 84, 206, 232, 106, 171, 121,\n\t\t157, 169, 209, 68, 77, 105, 46, 115, 44, 211, 120, 144, 182,\n\t\t127, 251, 60, 109, 225, 100, 206, 237, 246, 136, 235, 159,\n\t\t87, 126, 131, 14, 15, 86, 17, 239, 184, 217, 140, 4, 133,\n\t\t25, 82, 62, 55, 27, 163, 220, 22, 74, 16, 253, 184, 64, 112,\n\t\t241, 245, 137, 155, 141, 0, 217, 113, 190, 215, 82, 70, 133,\n\t\t89, 107, 92, 158, 98, 168, 174, 242, 78, 207, 174, 181, 53,\n\t\t75, 18, 217, 137, 63, 131, 167, 53, 65, 153, 136, 84, 144,\n\t\t133, 201, 63, 249, 238, 10, 116, 9, 252, 9, 84, 42, 222, 68,\n\t\t73, 200, 124, 77, 226, 73, 13, 186, 2, 135, 2, 104, 43, 16,\n\t\t71, 1, 177, 171, 164, 158, 86, 184, 116, 7, 13, 245, 71, 155,\n\t\t97, 68, 247, 236, 230, 137, 135, 241, 141, 121, 202, 201,\n\t\t10, 78, 152, 156, 154, 247, 97, 2, 55, 147, 195, 99, 72, 29,\n\t\t56, 44, 252, 121, 61, 71, 120, 200, 227, 57, 58, 188, 55,\n\t\t73, 4, 171, 21, 179, 189, 202, 225, 243, 235, 149, 37, 186,\n\t\t4, 212, 252, 228, 154, 103, 106, 147, 92, 231, 107, 166, 74,\n\t\t41, 118, 150, 70, 33, 120, 96, 112, 86, 140, 103, 229, 19,\n\t\t139, 63, 247, 195, 158, 215, 217, 38, 197, 190, 92, 158, 66,\n\t\t141, 8, 243, 229, 30, 172, 93, 207, 176, 46, 108, 139, 0,\n\t\t174, 181, 94, 38, 253, 92, 231, 110, 12, 141, 86, 61, 0, 229,\n\t\t161, 86, 100, 207, 117, 89, 184, 151, 234, 18, 5, 146, 137,\n\t\t204, 196, 71, 121, 51, 30, 151, 132, 196, 174, 35, 161, 61,\n\t\t50, 46, 194, 158, 106, 169, 130, 27, 212, 88, 75, 130, 102,\n\t\t137, 217, 20, 138, 177, 34, 120, 178, 149, 192, 92, 74, 23,\n\t\t237, 154, 18, 235, 38, 252, 244, 67, 194, 242, 242, 243, 93,\n\t\t4, 219, 231, 159, 222, 246, 115, 161, 30, 68, 68, 132, 222,\n\t\t130, 175, 230, 64, 73, 190, 196, 224, 79, 51, 184, 55, 192,\n\t\t42, 233, 127, 39, 124, 179, 98, 46, 104, 44, 211, 201, 205,\n\t\t241, 157, 16, 141, 227, 167, 95, 126, 250, 237, 251, 207,\n\t\t47, 223, 111, 250, 216, 252, 56, 170, 83, 145, 36, 33, 161,\n\t\t184, 36, 214, 47, 243, 220, 242, 177, 95, 5, 211, 137, 15,\n\t\t249, 14, 60, 16, 66, 193, 118, 159, 197, 231, 89, 61, 245,\n\t\t249, 210, 102, 196, 71, 44, 145, 38, 235, 43, 105, 217, 196,\n\t\t9, 113, 55, 17, 78, 245, 218, 223, 36, 102, 23, 113, 38, 135,\n\t\t198, 75, 175, 95, 163, 91, 194, 174, 101, 85, 6, 186, 229,\n\t\t168, 87, 210, 89, 124, 81, 236, 73, 187, 103, 136, 211, 75,\n\t\t2, 70, 78, 19, 203, 79, 8, 9, 218, 127, 88, 30, 188, 120,\n\t\t204, 69, 36, 101, 50, 205, 113, 114, 141, 122, 100, 41, 153,\n\t\t151, 236, 146, 84, 87, 89, 146, 84, 32, 126, 120, 154, 136,\n\t\t138, 243, 44, 114, 198, 224, 168, 225, 146, 104, 33, 207,\n\t\t210, 216, 180, 207, 40, 220, 195, 192, 104, 178, 202, 64,\n\t\t13, 166, 176, 80, 55, 101, 23, 137, 154, 127, 22, 106, 196,\n\t\t143, 6, 31, 99, 125, 177, 146, 227, 28, 123, 114, 53, 168,\n\t\t68, 21, 99, 57, 220, 10, 108, 183, 146, 221, 233, 90, 130,\n\t\t51, 15, 236, 171, 65, 58, 221, 204, 203, 100, 158, 222, 177,\n\t\t180, 191, 173, 125, 228, 166, 136, 119, 2, 231, 7, 218, 63,\n\t\t124, 232, 1, 143, 119, 204, 215, 231, 249, 151, 47, 207, 207,\n\t\t235, 203, 252, 249, 203, 215, 215, 182, 206, 200, 102, 151,\n\t\t106, 119, 76, 74, 163, 231, 83, 201, 67, 193, 74, 60, 75,\n\t\t45, 96, 78, 206, 94, 29, 116, 69, 73, 157, 189, 163, 28, 163,\n\t\t152, 7, 89, 6, 150, 47, 217, 252, 116, 41, 47, 56, 126, 60,\n\t\t11, 83, 206, 251, 208, 131, 40, 183, 201, 249, 166, 24, 192,\n\t\t204, 67, 212, 238, 168, 33, 243, 38, 76, 52, 43, 51, 201,\n\t\t61, 250, 58, 233, 231, 50, 23, 231, 249, 192, 229, 143, 32,\n\t\t9, 198, 29, 36, 37, 170, 174, 101, 177, 143, 74, 65, 40, 224,\n\t\t169, 207, 30, 74, 242, 220, 99, 59, 215, 8, 9, 253, 188, 245,\n\t\t0, 76, 111, 112, 53, 182, 200, 34, 73, 170, 190, 78, 35, 68,\n\t\t208, 203, 30, 65, 138, 214, 154, 215, 97, 0, 202, 231, 185,\n\t\t62, 98, 243, 78, 215, 156, 29, 165, 234, 160, 129, 162, 108,\n\t\t182, 94, 215, 42, 203, 10, 77, 77, 167, 94, 174, 163, 48,\n\t\t238, 107, 244, 162, 170, 23, 22, 0, 80, 176, 44, 120, 77,\n\t\t1, 118, 205, 8, 147, 105, 22, 79, 135, 8, 197, 195, 40, 8,\n\t\t209, 229, 129, 69, 251, 70, 239, 14, 55, 221, 11, 222, 243,\n\t\t128, 4, 136, 166, 226, 228, 12, 162, 119, 75, 223, 16, 160,\n\t\t214, 148, 168, 57, 95, 41, 168, 134, 168, 87, 62, 182, 39,\n\t\t230, 58, 124, 170, 40, 211, 198, 66, 17, 139, 236, 230, 170,\n\t\t147, 138, 203, 2, 132, 20, 213, 188, 96, 5, 217, 159, 103,\n\t\t234, 143, 248, 235, 155, 126, 11, 200, 109, 22, 107, 15, 21,\n\t\t145, 138, 224, 161, 107, 195, 193, 163, 17, 125, 60, 172,\n\t\t209, 16, 207, 52, 114, 113, 161, 8, 227, 59, 11, 48, 72, 10,\n\t\t152, 205, 58, 169, 222, 99, 106, 95, 147, 209, 76, 29, 98,\n\t\t204, 26, 179, 154, 74, 155, 195, 218, 89, 16, 198, 211, 0,\n\t\t202, 208, 122, 75, 146, 161, 189, 52, 205, 103, 206, 146,\n\t\t23, 23, 84, 166, 100, 200, 203, 255, 206, 113, 123, 252, 244,\n\t\t253, 121, 62, 126, 186, 117, 41, 104, 126, 112, 242, 240,\n\t\t182, 40, 254, 44, 73, 82, 83, 211, 108, 158, 32, 159, 169,\n\t\t139, 9, 159, 146, 90, 124, 187, 163, 62, 81, 173, 174, 132,\n\t\t53, 121, 177, 120, 206, 141, 192, 154, 171, 63, 251, 155,\n\t\t103, 7, 176, 112, 31, 158, 96, 180, 53, 170, 109, 46, 165,\n\t\t235, 89, 98, 56, 57, 218, 7, 216, 10, 43, 188, 244, 228, 90,\n\t\t58, 117, 121, 98, 6, 250, 221, 179, 50, 194, 201, 253, 61,\n\t\t21, 94, 243, 239, 168, 240, 226, 195, 247, 77, 237, 29, 94,\n\t\t227, 219, 143, 231, 111, 183, 204, 80, 243, 159, 183, 137,\n\t\t105, 46, 151, 41, 177, 148, 94, 22, 10, 78, 149, 55, 193,\n\t\t245, 24, 176, 162, 82, 136, 130, 49, 22, 152, 233, 27, 5,\n\t\t185, 64, 85, 141, 40, 145, 36, 225, 187, 209, 65, 141, 115,\n\t\t91, 101, 101, 142, 96, 18, 182, 128, 162, 243, 1, 106, 162,\n\t\t232, 82, 11, 105, 75, 40, 57, 135, 100, 183, 85, 102, 115,\n\t\t71, 193, 2, 3, 127, 238, 34, 216, 34, 65, 115, 75, 146, 228,\n\t\t97, 66, 166, 26, 104, 91, 35, 220, 191, 16, 116, 155, 146,\n\t\t203, 1, 185, 96, 165, 65, 105, 111, 229, 78, 196, 28, 96,\n\t\t183, 197, 187, 217, 203, 222, 190, 154, 118, 219, 174, 79,\n\t\t246, 94, 246, 162, 246, 187, 189, 232, 229, 41, 69, 102, 86,\n\t\t166, 24, 186, 139, 117, 49, 81, 196, 62, 153, 231, 47, 57,\n\t\t12, 33, 193, 174, 85, 110, 212, 217, 133, 98, 112, 155, 94,\n\t\t167, 142, 188, 206, 123, 210, 203, 87, 5, 203, 249, 78, 120,\n\t\t153, 181, 125, 129, 253, 77, 164, 86, 58, 249, 18, 72, 237,\n\t\t226, 36, 174, 20, 112, 251, 40, 46, 68, 159, 151, 13, 108,\n\t\t56, 168, 58, 120, 142, 193, 201, 218, 205, 198, 207, 103,\n\t\t82, 31, 139, 144, 29, 37, 64, 17, 24, 24, 18, 117, 181, 53,\n\t\t179, 184, 84, 20, 176, 42, 99, 182, 131, 18, 59, 187, 29,\n\t\t138, 184, 228, 113, 10, 6, 177, 134, 50, 41, 74, 144, 38,\n\t\t66, 128, 204, 33, 29, 75, 202, 226, 85, 133, 49, 182, 200,\n\t\t94, 235, 41, 109, 142, 108, 98, 78, 143, 195, 65, 236, 99,\n\t\t175, 149, 84, 17, 181, 189, 85, 236, 229, 227, 111, 5, 178,\n\t\t186, 127, 43, 18, 30, 98, 247, 86, 162, 88, 100, 145, 86,\n\t\t108, 69, 112, 46, 178, 126, 130, 137, 175, 116, 243, 2, 219,\n\t\t172, 28, 254, 96, 255, 239, 245, 22, 182, 236, 174, 5, 99,\n\t\t148, 108, 43, 113, 182, 165, 184, 35, 66, 88, 138, 186, 18,\n\t\t245, 114, 217, 86, 226, 166, 225, 80, 197, 233, 78, 134, 46,\n\t\t57, 44, 116, 157, 177, 114, 178, 21, 72, 105, 178, 169, 26,\n\t\t175, 74, 234, 98, 107, 47, 202, 239, 201, 157, 177, 213, 199,\n\t\t175, 9, 6, 73, 215, 158, 77, 146, 205, 145, 77, 145, 205,\n\t\t144, 45, 59, 155, 159, 192, 207, 73, 117, 178, 217, 137, 174,\n\t\t9, 2, 159, 249, 254, 73, 71, 172, 99, 39, 244, 245, 182, 167,\n\t\t212, 235, 190, 163, 224, 28, 184, 163, 204, 247, 103, 151,\n\t\t11, 75, 203, 54, 31, 186, 66, 144, 244, 92, 132, 216, 87,\n\t\t122, 138, 248, 88, 121, 163, 143, 244, 84, 60, 15, 118, 61,\n\t\t165, 211, 219, 99, 202, 61, 21, 21, 248, 253, 144, 242, 202,\n\t\t217, 143, 104, 132, 191, 34, 185, 148, 48, 93, 217, 53, 22,\n\t\t219, 201, 229, 236, 5, 201, 35, 193, 205, 50, 185, 222, 122,\n\t\t100, 234, 218, 187, 151, 56, 228, 194, 212, 185, 68, 113,\n\t\t119, 152, 133, 63, 138, 72, 92, 211, 152, 137, 65, 14, 237,\n\t\t38, 169, 180, 219, 18, 130, 184, 144, 240, 103, 236, 89, 208,\n\t\t58, 1, 192, 203, 76, 64, 19, 247, 31, 109, 99, 197, 99, 39,\n\t\t235, 5, 132, 84, 62, 174, 66, 110, 142, 218, 106, 157, 195,\n\t\t239, 105, 177, 174, 205, 1, 46, 26, 232, 213, 92, 196, 214,\n\t\t53, 89, 175, 36, 142, 99, 157, 181, 83, 250, 137, 76, 203,\n\t\t234, 217, 162, 253, 18, 17, 65, 112, 71, 225, 97, 40, 93,\n\t\t179, 158, 201, 51, 39, 235, 217, 163, 51, 248, 203, 242, 50,\n\t\t47, 223, 95, 238, 188, 141, 27, 249, 199, 57, 213, 67, 107,\n\t\t127, 68, 3, 0, 12, 247, 223, 167, 1, 16, 183, 158, 8, 124,\n\t\t117, 24, 73, 167, 228, 50, 53, 17, 141, 85, 47, 67, 174, 213,\n\t\t218, 119, 5, 197, 165, 80, 152, 239, 173, 221, 165, 214, 34,\n\t\t139, 220, 153, 168, 78, 148, 146, 253, 157, 248, 115, 222,\n\t\t255, 48, 35, 134, 26, 204, 114, 198, 93, 179, 119, 73, 205,\n\t\t76, 176, 165, 180, 176, 61, 99, 214, 135, 88, 7, 47, 79, 212,\n\t\t179, 139, 130, 191, 81, 58, 242, 137, 137, 161, 97, 66, 82,\n\t\t224, 126, 12, 185, 108, 101, 179, 20, 46, 76, 234, 132, 3,\n\t\t6, 250, 79, 19, 48, 168, 212, 74, 132, 115, 82, 164, 40, 56,\n\t\t30, 162, 252, 213, 146, 19, 112, 33, 114, 22, 228, 4, 172,\n\t\t51, 171, 162, 53, 30, 206, 250, 250, 233, 215, 31, 223, 126,\n\t\t125, 195, 42, 211, 232, 65, 220, 114, 16, 244, 200, 27, 141,\n\t\t254, 94, 166, 184, 54, 42, 236, 100, 139, 9, 186, 252, 43,\n\t\t139, 194, 245, 175, 55, 122, 252, 43, 115, 3, 76, 9, 55, 170,\n\t\t252, 155, 10, 215, 102, 132, 107, 35, 195, 52, 139, 61, 227,\n\t\t198, 146, 240, 74, 165, 212, 14, 143, 94, 78, 12, 26, 151,\n\t\t167, 92, 203, 148, 188, 63, 207, 49, 22, 184, 7, 156, 99,\n\t\t44, 11, 75, 244, 149, 82, 3, 192, 70, 162, 6, 218, 145, 27,\n\t\t209, 148, 170, 235, 33, 244, 77, 169, 181, 88, 141, 121, 187,\n\t\t201, 42, 205, 227, 46, 3, 101, 70, 20, 93, 59, 7, 126, 60,\n\t\t66, 49, 249, 91, 108, 233, 242, 84, 66, 154, 98, 120, 79,\n\t\t176, 40, 64, 82, 38, 15, 167, 96, 196, 193, 133, 88, 68, 166,\n\t\t168, 208, 141, 177, 176, 197, 59, 202, 20, 101, 153, 68, 81,\n\t\t134, 122, 219, 157, 86, 111, 187, 81, 149, 102, 143, 228,\n\t\t128, 16, 187, 11, 216, 191, 124, 112, 20, 129, 217, 131, 67,\n\t\t52, 51, 22, 181, 147, 58, 104, 184, 10, 177, 54, 134, 163,\n\t\t70, 15, 44, 212, 156, 143, 120, 171, 8, 135, 87, 150, 246,\n\t\t80, 17, 62, 206, 225, 24, 18, 159, 29, 15, 151, 250, 175,\n\t\t159, 94, 209, 200, 208, 166, 204, 76, 18, 74, 177, 233, 4,\n\t\t53, 115, 14, 116, 130, 150, 57, 71, 189, 106, 222, 209, 45,\n\t\t182, 244, 142, 110, 81, 154, 177, 42, 187, 135, 224, 159,\n\t\t204, 39, 21, 22, 29, 0, 86, 122, 47, 126, 221, 202, 105, 91,\n\t\t144, 221, 245, 208, 111, 250, 173, 99, 243, 23, 56, 127, 244,\n\t\t114, 163, 218, 188, 87, 115, 241, 19, 129, 142, 10, 136, 138,\n\t\t221, 122, 186, 154, 209, 11, 198, 44, 132, 36, 114, 242, 157,\n\t\t83, 206, 85, 66, 28, 127, 235, 146, 115, 235, 187, 195, 82,\n\t\t247, 222, 183, 231, 218, 101, 7, 139, 129, 91, 217, 26, 217,\n\t\t185, 245, 72, 222, 158, 135, 147, 255, 242, 235, 175, 47,\n\t\t223, 231, 227, 183, 59, 241, 159, 134, 78, 46, 66, 49, 132,\n\t\t180, 239, 173, 29, 1, 171, 90, 214, 88, 213, 183, 54, 54,\n\t\t62, 189, 231, 212, 92, 14, 124, 124, 183, 10, 102, 69, 50,\n\t\t121, 101, 112, 249, 222, 69, 68, 232, 119, 168, 99, 229, 26,\n\t\t118, 232, 78, 1, 175, 13, 166, 192, 193, 55, 153, 191, 231,\n\t\t114, 178, 75, 92, 77, 89, 204, 222, 89, 226, 40, 163, 227,\n\t\t211, 169, 145, 11, 204, 135, 48, 15, 52, 133, 236, 153, 225,\n\t\t201, 129, 89, 62, 120, 128, 5, 95, 145, 11, 132, 207, 251,\n\t\t203, 83, 98, 118, 160, 76, 145, 162, 11, 25, 161, 115, 53,\n\t\t34, 128, 33, 187, 208, 10, 1, 158, 27, 194, 74, 45, 46, 148,\n\t\t90, 182, 2, 130, 243, 82, 59, 51, 113, 72, 33, 11, 2, 32,\n\t\t69, 209, 148, 205, 27, 250, 181, 43, 13, 234, 36, 19, 181,\n\t\t34, 76, 46, 101, 133, 202, 187, 249, 202, 130, 167, 40, 149,\n\t\t91, 119, 124, 94, 158, 107, 195, 35, 16, 206, 38, 236, 100,\n\t\t130, 161, 52, 136, 125, 157, 212, 121, 57, 53, 117, 78, 15,\n\t\t194, 124, 214, 114, 117, 141, 136, 136, 84, 178, 184, 72,\n\t\t249, 210, 98, 238, 105, 74, 193, 249, 26, 17, 202, 28, 75,\n\t\t14, 145, 197, 104, 161, 231, 124, 72, 3, 198, 26, 170, 170,\n\t\t88, 69, 160, 105, 234, 196, 84, 248, 215, 137, 52, 34, 180,\n\t\t138, 164, 130, 168, 191, 86, 201, 247, 137, 28, 37, 95, 224,\n\t\t27, 141, 193, 0, 98, 140, 28, 245, 90, 144, 92, 134, 175,\n\t\t185, 159, 200, 181, 16, 224, 182, 228, 99, 101, 82, 173, 94,\n\t\t234, 1, 34, 6, 179, 219, 176, 97, 174, 65, 17, 158, 66, 68,\n\t\t106, 136, 210, 218, 196, 82, 72, 139, 240, 116, 202, 148,\n\t\t225, 36, 210, 90, 65, 10, 94, 207, 156, 136, 94, 31, 150,\n\t\t224, 136, 224, 60, 150, 92, 247, 33, 138, 159, 22, 134, 167,\n\t\t184, 96, 34, 118, 175, 141, 69, 153, 182, 19, 252, 27, 115,\n\t\t223, 6, 239, 85, 73, 20, 72, 17, 92, 52, 212, 27, 204, 146,\n\t\t63, 222, 55, 95, 46, 151, 79, 175, 186, 51, 54, 106, 35, 249,\n\t\t98, 110, 174, 213, 41, 165, 234, 90, 94, 120, 197, 118, 129,\n\t\t230, 66, 4, 67, 140, 193, 137, 168, 155, 92, 71, 134, 60,\n\t\t39, 64, 209, 41, 187, 74, 11, 65, 57, 27, 118, 66, 231, 200,\n\t\t22, 17, 133, 175, 14, 81, 12, 156, 76, 82, 5, 114, 49, 23,\n\t\t101, 131, 41, 131, 123, 7, 180, 156, 176, 123, 173, 56, 248,\n\t\t139, 35, 20, 99, 138, 204, 249, 226, 84, 9, 46, 49, 95, 76,\n\t\t117, 133, 193, 146, 229, 173, 226, 66, 245, 121, 73, 22, 232,\n\t\t162, 233, 26, 73, 226, 30, 96, 192, 140, 130, 85, 12, 97,\n\t\t36, 36, 71, 212, 233, 114, 120, 34, 239, 93, 154, 34, 119,\n\t\t39, 47, 84, 139, 243, 56, 202, 212, 4, 24, 58, 188, 45, 102,\n\t\t162, 14, 253, 103, 239, 44, 53, 77, 51, 151, 83, 90, 231,\n\t\t136, 240, 22, 159, 29, 45, 51, 57, 66, 244, 129, 119, 49,\n\t\t136, 185, 63, 42, 231, 231, 197, 120, 11, 145, 152, 127, 11,\n\t\t91, 17, 60, 231, 161, 151, 242, 58, 106, 83, 117, 161, 80,\n\t\t181, 65, 20, 9, 16, 75, 147, 114, 11, 19, 31, 183, 61, 100,\n\t\t36, 191, 5, 200, 150, 119, 57, 38, 226, 69, 76, 161, 246,\n\t\t168, 102, 147, 240, 128, 184, 30, 78, 247, 100, 253, 244,\n\t\t26, 25, 63, 221, 211, 109, 9, 70, 163, 150, 30, 180, 255,\n\t\t167, 154, 15, 162, 100, 251, 123, 90, 127, 39, 56, 243, 116,\n\t\t156, 191, 191, 156, 126, 124, 251, 126, 183, 63, 66, 127,\n\t\t91, 110, 202, 195, 51, 189, 175, 150, 51, 98, 138, 177, 243,\n\t\t201, 191, 21, 204, 49, 118, 94, 35, 57, 131, 87, 10, 9, 190,\n\t\t113, 2, 207, 69, 169, 32, 168, 168, 247, 74, 35, 153, 43,\n\t\t11, 28, 199, 57, 164, 12, 224, 19, 220, 0, 55, 180, 157, 69,\n\t\t8, 65, 57, 169, 138, 243, 126, 220, 221, 154, 50, 47, 131,\n\t\t232, 34, 77, 196, 52, 28, 158, 15, 194, 147, 145, 55, 135,\n\t\t147, 17, 177, 161, 250, 80, 34, 213, 241, 104, 193, 49, 139,\n\t\t46, 26, 26, 236, 195, 59, 12, 201, 45, 179, 122, 197, 92,\n\t\t156, 137, 130, 181, 6, 100, 70, 241, 63, 54, 76, 4, 56, 236,\n\t\t246, 58, 58, 16, 12, 166, 185, 117, 23, 155, 239, 83, 151,\n\t\t91, 160, 99, 10, 41, 209, 20, 92, 13, 61, 193, 229, 2, 74,\n\t\t161, 228, 122, 138, 209, 66, 38, 225, 83, 130, 2, 120, 92,\n\t\t180, 76, 98, 191, 160, 216, 234, 86, 101, 214, 58, 23, 0,\n\t\t204, 2, 81, 227, 61, 237, 250, 7, 148, 235, 239, 250, 199,\n\t\t62, 86, 174, 83, 240, 107, 55, 152, 13, 13, 95, 141, 56, 51,\n\t\t211, 84, 29, 246, 57, 49, 201, 135, 71, 152, 28, 5, 60, 138,\n\t\t190, 21, 187, 62, 122, 241, 240, 244, 241, 72, 188, 3, 248,\n\t\t154, 106, 174, 141, 4, 49, 45, 80, 158, 192, 223, 193, 7,\n\t\t103, 206, 174, 35, 162, 41, 144, 106, 199, 181, 153, 209,\n\t\t11, 203, 19, 198, 93, 251, 248, 254, 121, 37, 220, 179, 133,\n\t\t187, 132, 55, 251, 112, 79, 140, 49, 139, 93, 16, 132, 162,\n\t\t164, 98, 55, 149, 194, 31, 212, 58, 252, 213, 155, 224, 175,\n\t\t218, 3, 135, 255, 220, 77, 240, 255, 98, 15, 28, 254, 27,\n\t\t55, 193, 223, 187, 7, 126, 59, 189, 124, 159, 191, 254, 246,\n\t\t253, 46, 2, 162, 133, 207, 15, 14, 144, 170, 225, 188, 69,\n\t\t68, 67, 112, 160, 59, 107, 49, 130, 162, 26, 241, 203, 139,\n\t\t95, 245, 40, 128, 156, 24, 156, 239, 161, 242, 29, 204, 196,\n\t\t82, 223, 252, 132, 149, 243, 228, 219, 212, 6, 11, 21, 110,\n\t\t232, 98, 35, 143, 170, 103, 44, 65, 202, 83, 16, 102, 169,\n\t\t103, 150, 142, 170, 203, 112, 61, 9, 194, 46, 79, 44, 1, 193,\n\t\t7, 82, 35, 41, 237, 90, 195, 159, 207, 154, 218, 13, 24, 32,\n\t\t169, 9, 20, 72, 106, 103, 75, 249, 38, 216, 84, 9, 86, 120,\n\t\t94, 186, 136, 14, 0, 184, 115, 147, 124, 55, 8, 47, 157, 181,\n\t\t181, 133, 212, 206, 63, 199, 40, 43, 53, 20, 53, 56, 148,\n\t\t44, 98, 11, 247, 22, 10, 54, 233, 174, 151, 157, 12, 174,\n\t\t94, 152, 80, 123, 253, 153, 197, 178, 210, 105, 43, 176, 1,\n\t\t145, 165, 140, 225, 230, 50, 236, 34, 137, 64, 243, 187, 81,\n\t\t199, 162, 110, 1, 129, 180, 208, 218, 102, 228, 195, 163,\n\t\t174, 242, 84, 38, 37, 38, 76, 196, 90, 180, 168, 97, 102,\n\t\t179, 10, 105, 212, 172, 153, 79, 236, 103, 150, 163, 181,\n\t\t201, 203, 19, 181, 52, 69, 136, 72, 103, 64, 155, 20, 65,\n\t\t173, 101, 185, 144, 229, 155, 97, 184, 202, 19, 11, 107, 199,\n\t\t64, 16, 189, 206, 179, 126, 121, 84, 215, 154, 179, 223, 253,\n\t\t148, 71, 157, 60, 229, 179, 54, 97, 109, 190, 89, 111, 235,\n\t\t150, 213, 152, 183, 159, 249, 97, 71, 235, 141, 53, 121, 120,\n\t\t84, 215, 154, 155, 183, 231, 205, 121, 171, 198, 223, 243,\n\t\t120, 191, 209, 244, 195, 234, 22, 23, 215, 134, 75, 135, 6,\n\t\t105, 51, 103, 47, 138, 62, 102, 44, 249, 227, 164, 54, 93,\n\t\t40, 25, 161, 151, 225, 233, 64, 28, 81, 164, 238, 128, 251,\n\t\t221, 150, 74, 46, 117, 209, 38, 170, 157, 9, 105, 137, 6,\n\t\t126, 242, 184, 166, 200, 210, 54, 214, 119, 12, 142, 34, 137,\n\t\t108, 45, 152, 198, 185, 49, 15, 127, 245, 113, 246, 199, 57,\n\t\t178, 56, 212, 150, 113, 131, 183, 42, 55, 55, 226, 255, 197,\n\t\t243, 38, 195, 38, 204, 150, 150, 15, 80, 214, 214, 5, 233,\n\t\t193, 218, 179, 218, 92, 161, 176, 126, 39, 99, 211, 191, 63,\n\t\t157, 95, 230, 211, 255, 249, 237, 211, 61, 179, 27, 95, 222,\n\t\t214, 20, 167, 170, 209, 102, 4, 227, 122, 119, 173, 138, 58,\n\t\t4, 96, 20, 16, 65, 36, 218, 172, 156, 163, 36, 22, 6, 142,\n\t\t23, 20, 16, 90, 121, 222, 215, 211, 63, 197, 70, 251, 51,\n\t\t156, 19, 133, 179, 60, 200, 158, 99, 143, 65, 111, 166, 88,\n\t\t142, 220, 229, 173, 199, 56, 41, 183, 42, 115, 228, 227, 45,\n\t\t181, 99, 47, 220, 206, 225, 97, 67, 201, 255, 5, 231, 36,\n\t\t33, 8, 238, 253, 177, 177, 105, 252, 231, 63, 62, 127, 251,\n\t\t250, 227, 95, 135, 127, 254, 227, 249, 229, 243, 233, 95,\n\t\t255, 252, 199, 233, 252, 243, 191, 14, 255, 55, 0, 0, 255,\n\t\t255, 80, 75, 7, 8, 186, 161, 56, 51, 145, 104, 3, 0, 30, 119,\n\t\t12, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 9, 0, 119, 101,\n\t\t98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 115, 111, 108,\n\t\t105, 100, 45, 57, 48, 48, 46, 116, 116, 102, 85, 84, 5, 0,\n\t\t1, 127, 106, 41, 96, 236, 188, 123, 124, 92, 85, 185, 63,\n\t\t252, 125, 246, 204, 236, 181, 247, 204, 190, 204, 100, 246,\n\t\t204, 228, 50, 73, 38, 51, 201, 76, 218, 164, 73, 154, 76,\n\t\t102, 82, 154, 166, 67, 27, 74, 104, 11, 13, 18, 176, 133,\n\t\t10, 1, 10, 45, 80, 36, 64, 213, 10, 21, 131, 20, 79, 81, 212,\n\t\t2, 21, 234, 17, 33, 98, 197, 138, 21, 171, 34, 150, 155, 12,\n\t\t156, 42, 245, 103, 193, 170, 21, 171, 84, 172, 10, 90, 61,\n\t\t120, 206, 36, 77, 147, 0, 101, 230, 253, 236, 203, 76, 102,\n\t\t210, 22, 143, 239, 239, 247, 121, 255, 121, 127, 201, 236,\n\t\t189, 215, 109, 175, 245, 172, 181, 158, 245, 220, 214, 179,\n\t\t54, 8, 128, 140, 97, 216, 208, 191, 100, 201, 192, 185, 119,\n\t\t253, 234, 174, 49, 112, 135, 218, 0, 4, 207, 238, 61, 107,\n\t\t9, 102, 219, 190, 11, 238, 144, 27, 64, 205, 138, 11, 90,\n\t\t219, 23, 223, 241, 230, 131, 0, 173, 4, 48, 120, 229, 245,\n\t\t151, 15, 165, 198, 206, 89, 4, 184, 215, 0, 174, 178, 181,\n\t\t151, 223, 60, 148, 203, 193, 6, 238, 144, 0, 64, 88, 187,\n\t\t254, 227, 87, 95, 56, 255, 172, 43, 129, 217, 141, 224, 110,\n\t\t237, 91, 119, 213, 229, 107, 180, 213, 151, 124, 13, 192,\n\t\t97, 0, 137, 117, 235, 174, 186, 220, 190, 216, 241, 22, 64,\n\t\t26, 128, 250, 117, 215, 111, 216, 216, 197, 184, 253, 0, 237,\n\t\t1, 148, 93, 235, 111, 184, 242, 114, 251, 220, 185, 7, 129,\n\t\t170, 141, 128, 178, 251, 250, 203, 55, 14, 217, 101, 232,\n\t\t229, 187, 0, 132, 62, 124, 249, 245, 87, 45, 254, 65, 226,\n\t\t32, 184, 175, 15, 1, 142, 134, 161, 27, 110, 222, 80, 45,\n\t\t111, 61, 10, 238, 177, 237, 192, 156, 235, 245, 190, 209,\n\t\t57, 79, 63, 252, 145, 127, 252, 242, 238, 203, 212, 238, 227,\n\t\t112, 113, 208, 255, 14, 61, 181, 59, 101, 61, 207, 202, 189,\n\t\t149, 123, 130, 251, 34, 189, 172, 195, 11, 206, 24, 13, 24,\n\t\t239, 165, 115, 105, 128, 27, 206, 189, 5, 112, 95, 180, 210,\n\t\t11, 127, 182, 111, 233, 41, 182, 111, 225, 111, 8, 25, 9,\n\t\t156, 241, 150, 94, 42, 101, 21, 177, 211, 148, 109, 51, 28,\n\t\t0, 45, 167, 171, 1, 156, 109, 61, 143, 163, 2, 155, 245, 23,\n\t\t28, 182, 66, 117, 228, 46, 170, 187, 255, 234, 179, 214, 96,\n\t\t56, 131, 169, 30, 3, 134, 22, 218, 143, 129, 97, 152, 16,\n\t\t208, 25, 244, 117, 189, 231, 32, 46, 95, 252, 49, 189, 174,\n\t\t220, 187, 156, 5, 4, 135, 92, 150, 75, 65, 165, 116, 62, 94,\n\t\t122, 209, 96, 73, 156, 113, 195, 40, 231, 0, 55, 151, 50,\n\t\t226, 2, 151, 202, 157, 48, 242, 82, 86, 126, 254, 189, 180,\n\t\t149, 111, 14, 15, 104, 216, 44, 83, 210, 206, 176, 25, 55,\n\t\t242, 138, 222, 163, 97, 8, 148, 130, 223, 44, 159, 123, 199,\n\t\t72, 43, 186, 204, 114, 102, 186, 213, 110, 190, 14, 193, 128,\n\t\t215, 108, 39, 85, 82, 103, 186, 180, 109, 61, 159, 210, 185,\n\t\t41, 74, 161, 74, 191, 44, 88, 79, 117, 153, 245, 78, 215,\n\t\t225, 208, 175, 153, 245, 90, 117, 123, 11, 239, 164, 114,\n\t\t217, 124, 159, 57, 227, 153, 123, 155, 75, 229, 114, 211,\n\t\t48, 228, 114, 86, 29, 102, 125, 195, 176, 229, 251, 82, 120,\n\t\t22, 198, 41, 247, 174, 254, 174, 49, 79, 195, 197, 249, 185,\n\t\t247, 244, 171, 208, 126, 106, 250, 105, 150, 201, 101, 11,\n\t\t253, 29, 158, 30, 163, 226, 139, 50, 133, 186, 222, 229, 96,\n\t\t205, 165, 53, 55, 211, 115, 148, 59, 62, 179, 175, 165, 227,\n\t\t105, 182, 51, 115, 110, 141, 119, 83, 96, 250, 133, 52, 2,\n\t\t200, 207, 93, 10, 114, 254, 42, 238, 39, 77, 143, 149, 49,\n\t\t78, 250, 92, 206, 152, 51, 125, 44, 204, 121, 47, 129, 175,\n\t\t228, 42, 55, 174, 148, 89, 31, 1, 229, 198, 101, 197, 243,\n\t\t243, 97, 148, 157, 57, 206, 214, 120, 228, 47, 110, 122, 172,\n\t\t5, 179, 63, 250, 60, 24, 253, 61, 193, 77, 227, 156, 254,\n\t\t44, 215, 251, 134, 52, 220, 37, 245, 165, 172, 245, 51, 156,\n\t\t199, 97, 115, 206, 79, 194, 177, 124, 127, 205, 185, 16, 96,\n\t\t246, 97, 38, 222, 153, 245, 101, 102, 244, 55, 223, 207, 80,\n\t\t238, 61, 227, 57, 12, 111, 97, 173, 89, 115, 78, 233, 92,\n\t\t86, 191, 204, 121, 50, 195, 102, 220, 130, 31, 112, 96, 122,\n\t\t156, 171, 74, 198, 59, 191, 134, 135, 167, 199, 205, 88, 255,\n\t\t195, 211, 115, 64, 133, 53, 92, 132, 63, 38, 110, 154, 56,\n\t\t62, 156, 59, 145, 47, 243, 207, 46, 171, 61, 86, 52, 78, 110,\n\t\t74, 67, 229, 48, 19, 231, 10, 107, 19, 197, 235, 172, 4, 71,\n\t\t74, 215, 240, 244, 187, 33, 29, 182, 162, 117, 50, 131, 254,\n\t\t112, 169, 147, 234, 179, 230, 45, 151, 163, 144, 5, 107, 254,\n\t\t121, 100, 198, 124, 231, 243, 142, 88, 207, 16, 10, 120, 202,\n\t\t13, 151, 226, 107, 113, 90, 209, 122, 49, 232, 101, 161, 190,\n\t\t244, 244, 251, 167, 24, 43, 20, 230, 49, 53, 29, 167, 116,\n\t\t238, 61, 46, 63, 150, 39, 175, 15, 179, 156, 1, 87, 238, 157,\n\t\t34, 90, 35, 228, 241, 45, 223, 174, 81, 143, 158, 86, 192,\n\t\t243, 220, 241, 233, 117, 103, 210, 11, 179, 124, 238, 237,\n\t\t98, 92, 40, 224, 105, 30, 15, 113, 242, 117, 210, 156, 148,\n\t\t164, 153, 252, 137, 70, 76, 184, 138, 214, 66, 241, 250, 98,\n\t\t211, 253, 214, 231, 199, 188, 8, 144, 11, 125, 205, 135, 243,\n\t\t176, 193, 160, 55, 51, 214, 94, 233, 24, 231, 215, 60, 233,\n\t\t244, 59, 101, 240, 70, 115, 188, 7, 139, 232, 147, 142, 95,\n\t\t211, 56, 227, 46, 193, 153, 124, 31, 138, 233, 8, 12, 126,\n\t\t150, 239, 219, 9, 50, 231, 89, 239, 11, 95, 88, 87, 153, 66,\n\t\t127, 75, 240, 49, 191, 94, 11, 105, 197, 252, 174, 104, 141,\n\t\t23, 112, 53, 85, 132, 43, 51, 225, 74, 77, 151, 157, 249,\n\t\t238, 244, 122, 46, 224, 14, 232, 136, 213, 238, 112, 241,\n\t\t248, 88, 99, 61, 156, 123, 103, 26, 78, 131, 55, 153, 237,\n\t\t132, 10, 229, 178, 22, 158, 100, 13, 94, 56, 77, 251, 10,\n\t\t227, 83, 168, 47, 63, 166, 161, 220, 137, 18, 250, 62, 227,\n\t\t42, 78, 159, 14, 155, 112, 80, 49, 79, 72, 157, 250, 253,\n\t\t210, 118, 167, 235, 57, 221, 85, 210, 22, 102, 142, 163, 222,\n\t\t167, 34, 248, 83, 69, 99, 94, 4, 215, 73, 240, 35, 55, 85,\n\t\t192, 201, 146, 241, 159, 94, 199, 84, 140, 3, 195, 69, 184,\n\t\t176, 78, 95, 127, 197, 178, 155, 217, 126, 1, 183, 50, 69,\n\t\t107, 119, 120, 122, 238, 138, 215, 64, 225, 74, 21, 211, 234,\n\t\t233, 182, 10, 242, 64, 170, 20, 215, 10, 52, 22, 51, 104,\n\t\t80, 170, 168, 238, 252, 90, 212, 249, 89, 1, 247, 115, 239,\n\t\t22, 175, 133, 147, 174, 169, 146, 117, 82, 152, 159, 147,\n\t\t202, 205, 228, 215, 161, 210, 185, 62, 85, 125, 52, 147, 143,\n\t\t79, 211, 138, 108, 33, 191, 104, 92, 74, 105, 81, 1, 47, 115,\n\t\t52, 60, 163, 46, 29, 71, 75, 228, 131, 220, 241, 194, 123,\n\t\t229, 214, 250, 214, 203, 231, 138, 231, 223, 124, 135, 210,\n\t\t185, 137, 233, 57, 205, 157, 208, 113, 158, 134, 117, 25,\n\t\t206, 184, 254, 193, 21, 141, 101, 129, 183, 20, 225, 88, 1,\n\t\t206, 225, 210, 121, 43, 244, 225, 72, 30, 110, 19, 167, 74,\n\t\t214, 55, 44, 254, 146, 46, 77, 43, 153, 195, 82, 220, 42,\n\t\t213, 19, 66, 69, 52, 5, 185, 241, 226, 241, 47, 198, 215,\n\t\t194, 28, 166, 139, 112, 111, 248, 164, 241, 125, 183, 208,\n\t\t159, 3, 185, 119, 75, 235, 176, 228, 134, 34, 124, 46, 192,\n\t\t175, 243, 164, 252, 156, 31, 41, 146, 167, 135, 45, 158, 126,\n\t\t10, 252, 44, 188, 59, 92, 140, 11, 22, 13, 31, 206, 141, 21,\n\t\t207, 17, 151, 231, 59, 6, 188, 22, 157, 75, 25, 87, 142, 155,\n\t\t73, 103, 48, 61, 126, 92, 30, 103, 82, 51, 198, 45, 85, 74,\n\t\t151, 79, 154, 55, 139, 150, 152, 101, 11, 58, 65, 158, 86,\n\t\t100, 139, 101, 120, 19, 6, 139, 142, 90, 243, 107, 240, 188,\n\t\t252, 218, 1, 66, 166, 12, 86, 162, 103, 188, 103, 194, 144,\n\t\t155, 228, 80, 130, 199, 33, 43, 255, 237, 194, 120, 165, 245,\n\t\t254, 231, 251, 128, 34, 190, 106, 141, 199, 112, 49, 158,\n\t\t88, 109, 20, 247, 175, 100, 44, 74, 112, 42, 84, 244, 78,\n\t\t104, 230, 248, 205, 164, 185, 186, 194, 108, 93, 65, 83, 143,\n\t\t117, 74, 176, 25, 161, 32, 236, 162, 14, 253, 70, 67, 78,\n\t\t222, 152, 225, 50, 142, 140, 146, 241, 102, 124, 153, 138,\n\t\t76, 48, 83, 147, 233, 201, 244, 102, 206, 203, 92, 146, 185,\n\t\t52, 243, 225, 204, 166, 204, 112, 230, 211, 153, 187, 50,\n\t\t159, 203, 220, 147, 249, 98, 102, 123, 230, 161, 204, 87,\n\t\t51, 143, 103, 190, 151, 121, 37, 243, 139, 204, 235, 153,\n\t\t35, 153, 63, 103, 254, 51, 51, 158, 201, 142, 186, 70, 149,\n\t\t81, 207, 104, 112, 180, 102, 52, 60, 218, 50, 58, 119, 180,\n\t\t115, 244, 140, 209, 158, 209, 222, 209, 37, 163, 203, 70,\n\t\t207, 27, 93, 53, 122, 233, 232, 85, 163, 119, 140, 110, 25,\n\t\t189, 111, 244, 139, 163, 15, 140, 126, 105, 244, 43, 163,\n\t\t143, 143, 238, 30, 253, 254, 232, 51, 163, 63, 29, 125, 101,\n\t\t244, 208, 232, 239, 70, 95, 31, 253, 203, 232, 91, 163, 19,\n\t\t163, 217, 49, 26, 99, 99, 174, 177, 242, 177, 154, 177, 57,\n\t\t99, 137, 177, 121, 99, 231, 140, 157, 55, 246, 161, 177, 245,\n\t\t99, 31, 27, 187, 101, 236, 179, 99, 159, 27, 187, 119, 236,\n\t\t139, 99, 255, 62, 246, 208, 216, 142, 177, 157, 99, 79, 142,\n\t\t61, 53, 246, 204, 216, 115, 99, 47, 142, 189, 50, 246, 203,\n\t\t177, 195, 99, 111, 142, 253, 117, 236, 239, 99, 255, 24, 27,\n\t\t27, 155, 24, 123, 123, 44, 123, 204, 113, 76, 58, 86, 115,\n\t\t172, 241, 88, 215, 177, 75, 142, 125, 232, 216, 224, 177,\n\t\t43, 142, 125, 234, 216, 215, 143, 61, 127, 236, 133, 99, 63,\n\t\t62, 246, 211, 99, 47, 31, 251, 197, 177, 223, 31, 59, 114,\n\t\t236, 205, 99, 255, 56, 246, 206, 177, 247, 142, 229, 198,\n\t\t249, 113, 247, 120, 124, 60, 49, 126, 198, 120, 247, 248,\n\t\t194, 241, 51, 199, 23, 143, 159, 53, 126, 246, 248, 178, 241,\n\t\t243, 198, 251, 199, 47, 24, 95, 57, 254, 161, 241, 203, 198,\n\t\t175, 24, 191, 122, 252, 250, 241, 155, 198, 55, 140, 127,\n\t\t124, 252, 147, 227, 159, 26, 255, 183, 241, 207, 142, 127,\n\t\t126, 124, 219, 248, 3, 227, 15, 141, 127, 123, 252, 251, 227,\n\t\t79, 143, 255, 104, 60, 61, 254, 226, 248, 222, 241, 87, 198,\n\t\t127, 53, 254, 218, 248, 31, 198, 255, 124, 92, 60, 126, 207,\n\t\t241, 175, 28, 127, 228, 248, 55, 142, 127, 247, 248, 19, 199,\n\t\t247, 28, 127, 238, 248, 143, 143, 255, 236, 248, 43, 199,\n\t\t127, 121, 252, 55, 199, 127, 119, 252, 240, 241, 63, 28, 255,\n\t\t227, 241, 55, 142, 255, 245, 248, 127, 30, 255, 175, 227,\n\t\t239, 77, 184, 39, 188, 19, 21, 19, 181, 19, 117, 19, 109,\n\t\t19, 201, 137, 238, 137, 51, 39, 122, 39, 206, 158, 88, 58,\n\t\t177, 98, 226, 252, 137, 11, 39, 86, 78, 92, 58, 113, 197,\n\t\t196, 213, 19, 215, 77, 92, 63, 113, 195, 196, 134, 137, 143,\n\t\t78, 124, 124, 98, 211, 196, 39, 39, 54, 79, 220, 53, 113,\n\t\t255, 196, 151, 39, 190, 58, 241, 141, 137, 111, 78, 124, 123,\n\t\t226, 135, 19, 207, 76, 252, 104, 34, 61, 177, 119, 226, 231,\n\t\t19, 191, 152, 248, 213, 196, 175, 39, 126, 51, 241, 219, 137,\n\t\t215, 39, 254, 60, 241, 151, 137, 163, 19, 255, 152, 24, 155,\n\t\t120, 103, 226, 196, 36, 38, 165, 73, 101, 210, 55, 25, 152,\n\t\t172, 153, 12, 79, 206, 154, 108, 157, 92, 48, 153, 154, 92,\n\t\t60, 121, 246, 228, 185, 147, 23, 76, 94, 52, 121, 201, 228,\n\t\t101, 147, 215, 76, 94, 55, 121, 243, 228, 39, 38, 111, 159,\n\t\t220, 60, 185, 101, 242, 238, 201, 109, 147, 247, 79, 62, 56,\n\t\t57, 50, 249, 200, 228, 163, 147, 223, 154, 124, 124, 242,\n\t\t201, 201, 167, 39, 159, 155, 76, 79, 190, 56, 249, 227, 201,\n\t\t255, 53, 249, 202, 228, 129, 201, 95, 78, 254, 110, 242, 47,\n\t\t147, 111, 77, 254, 247, 228, 216, 228, 241, 201, 201, 201,\n\t\t119, 167, 216, 148, 123, 170, 108, 202, 63, 85, 62, 53, 123,\n\t\t170, 117, 170, 39, 151, 3, 50, 200, 216, 51, 44, 227, 206,\n\t\t248, 50, 1, 3, 243, 234, 50, 103, 102, 250, 50, 253, 153,\n\t\t75, 51, 131, 153, 161, 204, 112, 230, 14, 11, 243, 238, 203,\n\t\t108, 207, 60, 152, 25, 201, 124, 45, 179, 59, 147, 206, 28,\n\t\t200, 188, 154, 57, 146, 249, 83, 230, 175, 153, 76, 102, 106,\n\t\t20, 163, 242, 168, 123, 180, 124, 180, 102, 52, 52, 90, 63,\n\t\t218, 54, 218, 49, 154, 28, 93, 48, 154, 26, 93, 50, 186, 116,\n\t\t244, 220, 209, 254, 209, 75, 70, 7, 71, 63, 53, 122, 231,\n\t\t232, 61, 22, 230, 61, 56, 250, 173, 209, 221, 163, 223, 27,\n\t\t221, 51, 154, 30, 125, 217, 192, 188, 195, 163, 71, 70, 255,\n\t\t62, 58, 49, 58, 53, 134, 49, 251, 152, 115, 44, 48, 86, 57,\n\t\t86, 55, 214, 49, 214, 53, 150, 26, 59, 119, 236, 252, 177,\n\t\t245, 99, 55, 142, 125, 220, 192, 188, 173, 6, 230, 125, 101,\n\t\t108, 100, 236, 27, 99, 63, 176, 48, 239, 133, 177, 151, 198,\n\t\t14, 140, 189, 86, 192, 188, 209, 177, 227, 6, 230, 113, 199,\n\t\t68, 3, 243, 146, 199, 86, 90, 152, 119, 251, 177, 175, 31,\n\t\t251, 209, 251, 98, 94, 199, 120, 98, 124, 222, 105, 48, 111,\n\t\t245, 248, 101, 227, 151, 143, 95, 61, 190, 110, 124, 104,\n\t\t124, 195, 248, 199, 198, 63, 49, 126, 251, 248, 230, 241,\n\t\t207, 142, 127, 110, 124, 235, 248, 253, 22, 230, 237, 25,\n\t\t127, 206, 194, 188, 151, 199, 127, 53, 254, 234, 248, 235,\n\t\t227, 127, 26, 127, 231, 120, 224, 248, 125, 199, 31, 62, 190,\n\t\t227, 248, 99, 199, 191, 127, 252, 201, 227, 79, 31, 127, 254,\n\t\t248, 75, 199, 95, 62, 126, 192, 194, 188, 215, 139, 48, 239,\n\t\t68, 17, 230, 181, 76, 36, 39, 230, 151, 96, 222, 5, 19, 43,\n\t\t39, 62, 52, 113, 197, 196, 154, 137, 107, 10, 152, 183, 113,\n\t\t226, 214, 137, 79, 78, 220, 62, 241, 111, 19, 247, 79, 108,\n\t\t159, 24, 177, 48, 239, 73, 11, 243, 254, 163, 4, 243, 126,\n\t\t63, 241, 39, 3, 243, 222, 154, 200, 232, 152, 55, 145, 155,\n\t\t116, 77, 42, 147, 154, 133, 121, 141, 147, 45, 147, 243, 75,\n\t\t48, 239, 226, 201, 75, 13, 204, 187, 105, 114, 211, 228, 240,\n\t\t228, 29, 147, 159, 158, 188, 123, 242, 62, 3, 243, 30, 158,\n\t\t124, 100, 114, 199, 228, 55, 39, 191, 61, 249, 131, 201, 167,\n\t\t38, 159, 155, 124, 126, 242, 197, 201, 189, 147, 63, 157,\n\t\t220, 111, 96, 222, 111, 38, 223, 40, 193, 60, 199, 148, 58,\n\t\t85, 54, 229, 155, 42, 159, 154, 101, 98, 158, 219, 230, 230,\n\t\t220, 228, 134, 154, 83, 179, 234, 9, 245, 93, 245, 109, 117,\n\t\t82, 29, 87, 143, 169, 163, 106, 70, 253, 111, 245, 45, 245,\n\t\t239, 234, 81, 245, 77, 245, 79, 234, 31, 213, 63, 168, 135,\n\t\t213, 215, 212, 223, 169, 191, 85, 247, 171, 63, 83, 95, 82,\n\t\t127, 162, 254, 88, 125, 81, 253, 145, 250, 140, 250, 180,\n\t\t250, 148, 186, 71, 253, 158, 250, 93, 117, 183, 250, 29, 245,\n\t\t113, 245, 219, 234, 46, 245, 49, 245, 155, 234, 78, 245, 235,\n\t\t234, 14, 245, 107, 234, 35, 234, 87, 213, 59, 213, 205, 234,\n\t\t38, 245, 86, 245, 22, 245, 227, 234, 199, 212, 107, 213, 107,\n\t\t212, 117, 234, 26, 117, 80, 253, 144, 58, 160, 94, 160, 126,\n\t\t64, 61, 95, 61, 79, 61, 75, 237, 85, 23, 171, 103, 170, 11,\n\t\t213, 184, 218, 161, 206, 85, 155, 213, 38, 181, 65, 13, 171,\n\t\t33, 181, 76, 85, 84, 89, 121, 79, 57, 161, 188, 163, 76, 41,\n\t\t227, 202, 152, 50, 170, 252, 183, 242, 103, 229, 143, 202,\n\t\t17, 229, 15, 202, 97, 229, 144, 242, 27, 229, 231, 202, 75,\n\t\t202, 79, 148, 189, 202, 139, 202, 243, 202, 115, 202, 51,\n\t\t202, 15, 149, 39, 148, 239, 42, 35, 202, 3, 202, 93, 202,\n\t\t181, 202, 53, 202, 90, 229, 106, 165, 79, 137, 42, 138, 34,\n\t\t43, 78, 133, 41, 118, 133, 228, 9, 121, 92, 206, 200, 127,\n\t\t147, 127, 47, 191, 38, 255, 78, 62, 40, 255, 76, 254, 166,\n\t\t188, 83, 126, 84, 254, 186, 252, 53, 249, 17, 249, 171, 242,\n\t\t136, 252, 176, 252, 160, 252, 239, 242, 151, 228, 7, 228,\n\t\t251, 228, 173, 242, 23, 228, 207, 203, 159, 149, 63, 35, 111,\n\t\t145, 255, 77, 190, 83, 254, 148, 124, 187, 60, 44, 127, 66,\n\t\t222, 36, 223, 42, 223, 34, 111, 144, 175, 150, 47, 151, 63,\n\t\t36, 95, 34, 95, 44, 175, 146, 87, 202, 253, 242, 114, 121,\n\t\t169, 220, 39, 47, 145, 219, 228, 136, 28, 150, 235, 228, 144,\n\t\t92, 35, 87, 203, 65, 185, 74, 174, 148, 43, 228, 114, 57,\n\t\t32, 123, 101, 143, 236, 150, 85, 89, 145, 37, 217, 41, 51,\n\t\t217, 33, 77, 73, 127, 145, 222, 144, 254, 32, 253, 78, 250,\n\t\t173, 244, 178, 244, 146, 180, 87, 74, 75, 63, 146, 158, 149,\n\t\t158, 150, 158, 148, 126, 32, 61, 33, 125, 79, 122, 92, 250,\n\t\t150, 244, 152, 180, 83, 250, 134, 244, 168, 244, 136, 244,\n\t\t85, 105, 68, 122, 88, 250, 138, 244, 160, 244, 239, 210, 231,\n\t\t165, 207, 73, 119, 73, 155, 165, 59, 164, 97, 105, 163, 244,\n\t\t17, 233, 102, 233, 38, 105, 72, 186, 90, 186, 74, 90, 35,\n\t\t93, 41, 93, 33, 93, 46, 93, 42, 93, 34, 173, 146, 86, 74,\n\t\t23, 74, 23, 72, 203, 165, 101, 210, 57, 210, 66, 169, 71,\n\t\t154, 39, 117, 73, 237, 82, 171, 52, 91, 138, 74, 85, 82, 133,\n\t\t20, 144, 52, 73, 149, 156, 146, 32, 57, 36, 155, 235, 29,\n\t\t215, 219, 174, 99, 174, 255, 116, 253, 205, 117, 212, 245,\n\t\t87, 215, 27, 174, 215, 93, 191, 119, 29, 114, 189, 234, 250,\n\t\t181, 235, 160, 235, 151, 174, 95, 184, 126, 230, 250, 169,\n\t\t235, 37, 215, 79, 92, 63, 118, 237, 117, 189, 224, 74, 187,\n\t\t158, 119, 253, 200, 245, 180, 235, 187, 174, 93, 174, 199,\n\t\t92, 59, 93, 143, 186, 190, 238, 122, 196, 245, 37, 215, 189,\n\t\t174, 123, 92, 95, 112, 125, 222, 117, 155, 235, 22, 215, 250,\n\t\t153, 246, 236, 255, 251, 247, 127, 255, 254, 191, 250, 35,\n\t\t30, 5, 244, 163, 188, 200, 88, 82, 224, 20, 47, 253, 255,\n\t\t225, 111, 57, 128, 157, 230, 102, 16, 173, 4, 232, 9, 128,\n\t\t147, 0, 219, 106, 192, 46, 0, 142, 97, 128, 215, 175, 253,\n\t\t0, 75, 1, 236, 13, 64, 88, 7, 136, 110, 64, 60, 10, 56, 159,\n\t\t5, 92, 155, 0, 215, 126, 64, 218, 2, 200, 113, 64, 222, 14,\n\t\t40, 221, 128, 26, 4, 212, 163, 128, 187, 23, 112, 239, 1,\n\t\t60, 41, 192, 179, 9, 240, 100, 128, 178, 163, 128, 119, 29,\n\t\t160, 197, 1, 109, 11, 224, 147, 0, 223, 78, 192, 119, 16,\n\t\t240, 111, 0, 252, 227, 64, 96, 51, 80, 30, 2, 202, 183, 0,\n\t\t21, 125, 64, 165, 0, 84, 62, 11, 84, 173, 7, 130, 33, 32,\n\t\t120, 0, 168, 62, 0, 212, 140, 0, 181, 27, 128, 218, 253, 64,\n\t\t40, 5, 132, 182, 0, 161, 103, 129, 186, 122, 160, 238, 32,\n\t\t16, 46, 7, 194, 27, 128, 240, 62, 32, 124, 2, 136, 172, 6,\n\t\t34, 219, 128, 200, 81, 160, 190, 15, 168, 223, 10, 212, 191,\n\t\t5, 52, 116, 1, 13, 155, 129, 134, 55, 128, 104, 61, 16, 29,\n\t\t1, 162, 83, 64, 108, 43, 208, 8, 160, 241, 13, 96, 86, 23,\n\t\t48, 235, 65, 96, 54, 128, 217, 131, 192, 236, 189, 64, 83,\n\t\t35, 208, 116, 0, 104, 222, 8, 52, 31, 2, 230, 184, 129, 57,\n\t\t105, 160, 37, 4, 180, 28, 6, 90, 7, 128, 214, 61, 64, 91,\n\t\t47, 48, 55, 4, 204, 189, 27, 104, 151, 128, 142, 32, 208,\n\t\t177, 15, 136, 187, 129, 248, 179, 64, 167, 0, 116, 14, 0,\n\t\t137, 114, 32, 49, 2, 36, 14, 3, 201, 62, 160, 171, 30, 232,\n\t\t154, 2, 230, 109, 0, 230, 79, 1, 221, 195, 64, 247, 179, 192,\n\t\t130, 46, 96, 193, 56, 208, 179, 3, 88, 216, 15, 44, 220, 9,\n\t\t164, 226, 64, 106, 4, 56, 51, 8, 156, 185, 11, 88, 212, 13,\n\t\t44, 58, 0, 44, 222, 6, 244, 46, 7, 206, 2, 112, 214, 30, 96,\n\t\t201, 122, 96, 201, 17, 224, 236, 1, 224, 236, 125, 64, 95,\n\t\t55, 112, 142, 0, 156, 179, 5, 88, 186, 21, 88, 122, 0, 88,\n\t\t214, 7, 44, 203, 0, 203, 159, 5, 206, 221, 9, 156, 7, 224,\n\t\t188, 245, 192, 10, 13, 88, 177, 13, 232, 143, 3, 253, 187,\n\t\t129, 254, 163, 192, 249, 67, 192, 7, 186, 129, 11, 246, 1,\n\t\t3, 91, 129, 11, 187, 129, 11, 119, 0, 23, 165, 128, 139, 222,\n\t\t2, 62, 184, 1, 248, 224, 78, 224, 131, 135, 129, 149, 110,\n\t\t96, 101, 10, 88, 185, 13, 88, 121, 20, 88, 85, 14, 172, 234,\n\t\t3, 86, 101, 128, 139, 215, 3, 151, 148, 3, 151, 12, 1, 171,\n\t\t251, 128, 15, 73, 192, 135, 118, 1, 151, 118, 1, 151, 53,\n\t\t3, 131, 118, 96, 112, 8, 24, 204, 0, 151, 175, 7, 174, 216,\n\t\t8, 92, 185, 26, 88, 83, 15, 172, 25, 1, 174, 234, 5, 174,\n\t\t58, 0, 92, 221, 11, 92, 189, 31, 88, 187, 18, 88, 251, 6,\n\t\t176, 110, 29, 176, 238, 9, 96, 221, 9, 224, 154, 62, 224,\n\t\t154, 173, 192, 181, 0, 174, 221, 8, 92, 187, 15, 184, 174,\n\t\t28, 184, 110, 23, 176, 190, 23, 88, 159, 1, 174, 215, 128,\n\t\t235, 183, 3, 31, 214, 128, 15, 111, 4, 110, 40, 7, 134, 182,\n\t\t3, 55, 110, 7, 110, 146, 128, 155, 118, 2, 55, 119, 3, 55,\n\t\t111, 2, 54, 104, 192, 134, 19, 192, 71, 246, 1, 31, 93, 13,\n\t\t124, 116, 31, 240, 49, 13, 216, 216, 8, 124, 188, 11, 248,\n\t\t248, 54, 224, 150, 53, 192, 173, 118, 224, 214, 253, 192,\n\t\t166, 94, 96, 211, 20, 240, 137, 173, 192, 39, 50, 192, 109,\n\t\t253, 192, 109, 187, 129, 79, 106, 192, 39, 143, 2, 195, 67,\n\t\t192, 240, 33, 224, 246, 70, 224, 246, 141, 192, 167, 234,\n\t\t129, 79, 13, 1, 159, 218, 7, 220, 17, 7, 238, 72, 3, 155,\n\t\t55, 1, 155, 143, 2, 119, 246, 2, 119, 62, 8, 220, 57, 5, 124,\n\t\t122, 15, 240, 111, 189, 192, 191, 157, 0, 182, 108, 1, 238,\n\t\t10, 1, 119, 141, 0, 159, 121, 22, 248, 172, 27, 248, 236,\n\t\t19, 192, 221, 35, 192, 231, 238, 6, 62, 63, 4, 124, 97, 0,\n\t\t216, 218, 7, 220, 211, 13, 220, 11, 224, 222, 125, 192, 125,\n\t\t93, 192, 125, 35, 192, 182, 1, 96, 219, 78, 224, 139, 26,\n\t\t240, 197, 131, 192, 253, 109, 192, 253, 235, 129, 7, 226,\n\t\t192, 3, 7, 129, 237, 27, 128, 47, 53, 2, 95, 74, 3, 255, 190,\n\t\t18, 248, 242, 38, 224, 193, 17, 224, 43, 91, 129, 135, 36,\n\t\t224, 161, 131, 192, 195, 221, 192, 195, 25, 96, 36, 3, 124,\n\t\t117, 10, 120, 100, 31, 240, 181, 149, 192, 215, 246, 2, 59,\n\t\t246, 0, 95, 31, 6, 30, 141, 3, 143, 30, 6, 190, 177, 14, 216,\n\t\t217, 13, 124, 211, 13, 124, 115, 39, 240, 216, 19, 192, 183,\n\t\t82, 192, 183, 118, 3, 187, 4, 96, 215, 46, 224, 219, 235,\n\t\t128, 111, 239, 3, 30, 63, 8, 124, 167, 23, 248, 206, 17, 96,\n\t\t247, 1, 224, 187, 131, 192, 247, 221, 192, 247, 247, 1, 79,\n\t\t244, 2, 63, 8, 1, 63, 120, 2, 120, 242, 16, 240, 195, 205,\n\t\t192, 15, 51, 192, 158, 109, 192, 83, 171, 129, 167, 14, 2,\n\t\t79, 15, 0, 207, 116, 1, 207, 108, 3, 158, 149, 128, 103, 119,\n\t\t2, 207, 9, 192, 115, 203, 129, 31, 109, 0, 158, 31, 0, 210,\n\t\t229, 64, 250, 9, 224, 133, 29, 192, 139, 67, 192, 127, 180,\n\t\t1, 123, 219, 128, 31, 175, 1, 126, 82, 14, 252, 100, 4, 120,\n\t\t73, 3, 94, 218, 4, 236, 139, 3, 251, 14, 0, 63, 221, 11, 252,\n\t\t175, 29, 192, 207, 54, 3, 251, 87, 3, 251, 79, 0, 47, 111,\n\t\t5, 94, 41, 7, 94, 89, 15, 188, 178, 19, 248, 249, 30, 224,\n\t\t192, 26, 224, 23, 110, 224, 23, 91, 128, 95, 150, 3, 191,\n\t\t124, 3, 248, 213, 0, 240, 171, 189, 192, 193, 56, 112, 112,\n\t\t4, 248, 181, 29, 248, 245, 0, 240, 170, 27, 120, 53, 13, 252,\n\t\t102, 27, 240, 155, 163, 192, 161, 126, 224, 183, 107, 128,\n\t\t223, 102, 128, 223, 109, 5, 94, 11, 2, 175, 109, 7, 14, 167,\n\t\t128, 195, 135, 129, 223, 175, 1, 126, 127, 16, 120, 125, 51,\n\t\t240, 135, 70, 224, 15, 187, 128, 35, 27, 128, 35, 25, 224,\n\t\t143, 171, 129, 63, 185, 129, 63, 237, 0, 254, 188, 1, 120,\n\t\t35, 4, 188, 161, 63, 15, 2, 111, 110, 4, 222, 60, 4, 252,\n\t\t37, 4, 252, 101, 27, 240, 151, 35, 192, 95, 87, 3, 71, 187,\n\t\t129, 191, 9, 192, 223, 182, 3, 127, 223, 0, 252, 103, 55,\n\t\t240, 150, 0, 252, 67, 0, 254, 171, 30, 248, 239, 110, 32,\n\t\t179, 15, 24, 125, 2, 24, 59, 10, 28, 75, 3, 227, 251, 128,\n\t\t227, 91, 129, 137, 94, 96, 82, 3, 38, 55, 1, 83, 65, 96, 234,\n\t\t4, 240, 246, 110, 224, 157, 53, 192, 187, 229, 192, 187, 251,\n\t\t129, 19, 235, 129, 108, 8, 200, 30, 1, 114, 71, 65, 232, 2,\n\t\t97, 8, 132, 183, 64, 92, 55, 200, 222, 8, 178, 111, 4, 57,\n\t\t26, 65, 142, 17, 16, 191, 14, 196, 52, 16, 123, 16, 36, 212,\n\t\t131, 132, 157, 32, 49, 8, 18, 51, 32, 231, 86, 144, 43, 4,\n\t\t210, 37, 77, 215, 27, 32, 169, 30, 36, 173, 1, 73, 187, 64,\n\t\t82, 6, 36, 63, 8, 82, 52, 144, 50, 4, 82, 246, 129, 212, 16,\n\t\t72, 221, 0, 82, 247, 129, 220, 65, 144, 123, 15, 200, 211,\n\t\t12, 242, 236, 6, 149, 117, 131, 202, 246, 131, 188, 221, 32,\n\t\t239, 86, 144, 247, 13, 144, 214, 15, 210, 118, 131, 124, 195,\n\t\t32, 223, 91, 32, 255, 179, 160, 192, 114, 80, 96, 63, 168,\n\t\t60, 14, 42, 127, 16, 84, 33, 129, 42, 237, 160, 202, 187,\n\t\t65, 149, 111, 128, 170, 54, 128, 130, 18, 40, 248, 4, 168,\n\t\t58, 8, 170, 89, 13, 170, 201, 128, 66, 67, 160, 208, 91, 160,\n\t\t186, 109, 160, 176, 6, 10, 31, 0, 69, 214, 131, 234, 83, 160,\n\t\t134, 126, 80, 212, 13, 138, 246, 131, 98, 0, 197, 130, 160,\n\t\t216, 8, 168, 113, 3, 104, 214, 46, 208, 236, 149, 160, 217,\n\t\t79, 128, 154, 86, 131, 154, 50, 160, 230, 56, 168, 121, 31,\n\t\t104, 206, 74, 80, 75, 31, 168, 117, 37, 168, 45, 5, 154, 107,\n\t\t7, 205, 125, 2, 212, 222, 11, 106, 63, 2, 234, 88, 15, 138,\n\t\t111, 7, 197, 167, 64, 157, 15, 130, 18, 253, 160, 196, 9,\n\t\t80, 114, 147, 225, 218, 66, 93, 91, 65, 243, 6, 64, 103, 244,\n\t\t130, 230, 55, 131, 230, 79, 129, 186, 183, 129, 22, 4, 65,\n\t\t11, 54, 129, 122, 234, 65, 61, 7, 65, 11, 215, 131, 82, 35,\n\t\t160, 51, 187, 64, 103, 166, 65, 139, 186, 65, 139, 14, 129,\n\t\t22, 103, 64, 189, 119, 131, 122, 79, 128, 206, 218, 9, 90,\n\t\t146, 6, 157, 125, 55, 168, 175, 23, 212, 119, 24, 180, 180,\n\t\t17, 180, 172, 28, 180, 108, 39, 104, 249, 58, 208, 242, 103,\n\t\t65, 231, 182, 129, 206, 221, 7, 58, 175, 13, 116, 222, 65,\n\t\t208, 138, 17, 80, 127, 61, 168, 127, 24, 212, 159, 1, 157,\n\t\t127, 2, 244, 129, 205, 160, 11, 52, 208, 192, 16, 232, 66,\n\t\t1, 116, 225, 78, 208, 69, 3, 160, 139, 166, 64, 31, 220, 0,\n\t\t250, 224, 9, 208, 202, 29, 160, 85, 229, 160, 85, 7, 65, 23,\n\t\t199, 65, 151, 28, 2, 173, 222, 2, 90, 125, 2, 116, 105, 55,\n\t\t232, 210, 125, 160, 203, 218, 64, 151, 237, 3, 13, 110, 0,\n\t\t93, 94, 15, 186, 124, 11, 232, 138, 16, 232, 138, 253, 160,\n\t\t43, 247, 128, 214, 12, 130, 214, 140, 131, 174, 234, 5, 93,\n\t\t109, 7, 93, 61, 12, 186, 250, 13, 208, 218, 94, 208, 218,\n\t\t157, 160, 117, 141, 160, 117, 91, 64, 215, 0, 116, 77, 26,\n\t\t116, 237, 38, 208, 117, 91, 65, 215, 29, 5, 173, 95, 7, 186,\n\t\t190, 28, 116, 253, 118, 208, 135, 7, 64, 31, 222, 5, 186,\n\t\t161, 17, 116, 195, 91, 160, 161, 131, 160, 27, 31, 4, 221,\n\t\t164, 129, 110, 58, 8, 186, 121, 10, 180, 225, 110, 208, 71,\n\t\t218, 64, 31, 217, 5, 250, 104, 57, 232, 163, 59, 65, 31, 219,\n\t\t0, 218, 216, 13, 218, 56, 5, 250, 248, 78, 208, 45, 109, 160,\n\t\t91, 118, 128, 110, 93, 9, 186, 117, 23, 104, 211, 114, 208,\n\t\t166, 12, 232, 19, 251, 64, 183, 173, 1, 221, 118, 24, 244,\n\t\t201, 53, 160, 219, 183, 131, 62, 181, 26, 244, 169, 67, 160,\n\t\t59, 158, 5, 109, 110, 6, 221, 89, 14, 186, 115, 4, 244, 233,\n\t\t45, 160, 45, 18, 104, 203, 14, 208, 93, 59, 64, 159, 25, 0,\n\t\t125, 38, 13, 250, 236, 94, 208, 221, 105, 208, 231, 150, 131,\n\t\t62, 119, 0, 244, 249, 62, 208, 23, 36, 208, 23, 246, 129,\n\t\t182, 246, 131, 238, 25, 0, 221, 219, 8, 186, 15, 160, 251,\n\t\t246, 130, 182, 173, 7, 109, 59, 12, 250, 226, 33, 208, 253,\n\t\t107, 64, 247, 79, 129, 30, 184, 27, 180, 125, 13, 232, 75,\n\t\t91, 64, 255, 190, 6, 244, 229, 229, 160, 47, 31, 2, 61, 184,\n\t\t26, 244, 224, 9, 208, 67, 59, 65, 15, 7, 65, 15, 239, 2, 141,\n\t\t52, 131, 70, 54, 131, 190, 186, 19, 244, 200, 81, 208, 14,\n\t\t13, 180, 227, 45, 208, 215, 215, 129, 30, 117, 131, 30, 221,\n\t\t7, 250, 198, 179, 160, 157, 195, 160, 111, 214, 131, 30, 235,\n\t\t3, 125, 171, 25, 180, 107, 13, 232, 219, 41, 208, 227, 41,\n\t\t208, 119, 6, 64, 223, 201, 128, 118, 191, 1, 250, 238, 17,\n\t\t208, 247, 238, 6, 125, 191, 23, 244, 253, 93, 160, 39, 142,\n\t\t128, 158, 92, 9, 250, 97, 55, 232, 135, 71, 64, 123, 158,\n\t\t5, 61, 245, 6, 232, 233, 213, 160, 103, 202, 65, 207, 60,\n\t\t11, 122, 118, 0, 244, 92, 51, 232, 185, 189, 160, 31, 13,\n\t\t129, 126, 244, 6, 232, 249, 173, 160, 231, 143, 128, 210,\n\t\t27, 64, 233, 41, 208, 11, 155, 64, 47, 2, 244, 226, 17, 208,\n\t\t127, 44, 7, 253, 199, 126, 208, 222, 205, 160, 31, 107, 160,\n\t\t31, 239, 2, 253, 164, 15, 244, 82, 8, 244, 210, 110, 208,\n\t\t190, 149, 160, 159, 106, 160, 159, 238, 3, 253, 175, 173,\n\t\t160, 159, 5, 65, 63, 219, 6, 218, 63, 12, 218, 127, 2, 244,\n\t\t242, 48, 232, 149, 46, 208, 43, 35, 160, 159, 47, 7, 29, 232,\n\t\t7, 253, 98, 13, 232, 23, 7, 65, 191, 220, 4, 250, 85, 61,\n\t\t232, 87, 123, 65, 7, 119, 128, 126, 93, 14, 250, 245, 48,\n\t\t232, 213, 70, 208, 171, 7, 65, 135, 236, 160, 67, 135, 64,\n\t\t191, 29, 4, 253, 110, 3, 232, 181, 53, 160, 195, 33, 208,\n\t\t235, 0, 189, 190, 27, 244, 135, 189, 160, 35, 221, 160, 63,\n\t\t46, 7, 253, 169, 17, 244, 167, 125, 160, 63, 111, 6, 189,\n\t\t209, 13, 122, 99, 47, 232, 205, 56, 232, 205, 195, 160, 191,\n\t\t54, 131, 142, 238, 0, 253, 45, 3, 250, 251, 30, 208, 63, 218,\n\t\t64, 255, 5, 208, 127, 29, 2, 253, 247, 106, 80, 198, 13, 202,\n\t\t236, 5, 141, 173, 1, 29, 235, 7, 141, 15, 129, 198, 15, 130,\n\t\t38, 54, 131, 38, 215, 128, 38, 247, 129, 166, 86, 130, 222,\n\t\t94, 9, 122, 103, 35, 232, 221, 110, 208, 9, 13, 244, 94, 47,\n\t\t40, 123, 24, 148, 59, 10, 142, 86, 130, 163, 12, 56, 110,\n\t\t47, 56, 251, 54, 112, 142, 33, 112, 252, 33, 112, 194, 1,\n\t\t112, 98, 55, 56, 113, 31, 56, 231, 70, 112, 174, 70, 112,\n\t\t174, 93, 224, 164, 173, 224, 228, 77, 224, 148, 205, 224,\n\t\t212, 56, 56, 245, 32, 56, 247, 221, 224, 60, 93, 224, 60,\n\t\t71, 193, 149, 61, 1, 206, 59, 14, 78, 123, 16, 156, 111, 61,\n\t\t56, 63, 192, 249, 55, 128, 11, 12, 128, 43, 95, 3, 174, 252,\n\t\t16, 184, 138, 7, 193, 85, 198, 193, 85, 190, 1, 174, 234,\n\t\t16, 184, 224, 65, 112, 213, 203, 193, 85, 143, 131, 171, 57,\n\t\t0, 174, 118, 16, 92, 221, 114, 112, 225, 117, 224, 34, 91,\n\t\t193, 213, 215, 131, 171, 223, 5, 46, 122, 8, 92, 108, 13,\n\t\t184, 198, 126, 112, 179, 36, 112, 179, 50, 224, 102, 111,\n\t\t5, 215, 180, 5, 92, 115, 57, 184, 230, 245, 224, 230, 44,\n\t\t7, 215, 18, 2, 215, 50, 12, 174, 181, 31, 92, 235, 62, 112,\n\t\t109, 59, 193, 181, 29, 1, 215, 190, 26, 92, 71, 23, 184, 248,\n\t\t221, 224, 58, 123, 193, 117, 238, 7, 151, 216, 15, 46, 153,\n\t\t2, 215, 213, 5, 110, 222, 70, 112, 103, 244, 131, 155, 191,\n\t\t9, 220, 2, 128, 235, 25, 1, 151, 178, 131, 75, 237, 1, 119,\n\t\t230, 126, 112, 139, 118, 128, 91, 188, 13, 220, 89, 118, 112,\n\t\t103, 237, 3, 183, 100, 51, 184, 179, 83, 224, 206, 126, 11,\n\t\t220, 57, 67, 224, 150, 198, 193, 45, 157, 2, 183, 124, 57,\n\t\t184, 115, 131, 224, 206, 125, 2, 220, 121, 203, 193, 173,\n\t\t104, 3, 183, 98, 47, 184, 243, 55, 128, 251, 192, 6, 112,\n\t\t23, 116, 129, 27, 88, 14, 110, 224, 0, 184, 139, 130, 224,\n\t\t46, 26, 7, 247, 193, 62, 112, 43, 247, 129, 91, 213, 8, 110,\n\t\t213, 22, 112, 23, 55, 131, 187, 120, 11, 184, 75, 246, 129,\n\t\t91, 61, 4, 110, 245, 1, 112, 31, 218, 4, 238, 67, 111, 128,\n\t\t187, 116, 39, 184, 203, 250, 193, 13, 106, 224, 46, 183, 131,\n\t\t187, 252, 0, 184, 43, 182, 129, 187, 226, 40, 184, 43, 183,\n\t\t128, 91, 51, 4, 238, 170, 229, 224, 174, 238, 2, 119, 245,\n\t\t56, 184, 117, 141, 224, 174, 105, 4, 119, 237, 131, 224, 174,\n\t\t219, 15, 110, 125, 61, 184, 245, 123, 193, 93, 191, 13, 220,\n\t\t135, 151, 131, 251, 240, 30, 112, 55, 236, 1, 55, 52, 0, 110,\n\t\t104, 7, 184, 161, 163, 224, 110, 220, 5, 238, 166, 102, 112,\n\t\t55, 237, 3, 119, 211, 20, 184, 155, 159, 0, 183, 97, 16, 220,\n\t\t134, 253, 224, 62, 114, 24, 220, 71, 187, 193, 125, 244, 45,\n\t\t112, 31, 27, 6, 183, 81, 3, 183, 49, 13, 238, 227, 131, 224,\n\t\t110, 1, 184, 91, 14, 128, 187, 181, 15, 148, 123, 39, 151,\n\t\t230, 120, 74, 35, 0, 16, 243, 117, 180, 251, 125, 90, 19,\n\t\t133, 59, 227, 137, 249, 212, 25, 139, 38, 58, 234, 218, 253,\n\t\t52, 241, 106, 151, 39, 32, 100, 132, 128, 167, 235, 85, 183,\n\t\t39, 64, 207, 6, 60, 244, 233, 87, 211, 1, 143, 32, 120, 2,\n\t\t233, 87, 221, 179, 117, 109, 77, 215, 240, 115, 105, 14, 180,\n\t\t23, 65, 128, 60, 26, 31, 142, 198, 19, 29, 237, 129, 78, 135,\n\t\t175, 16, 246, 196, 147, 13, 9, 63, 135, 174, 254, 174, 174,\n\t\t70, 213, 147, 203, 7, 252, 148, 114, 87, 210, 72, 118, 164,\n\t\t170, 161, 33, 209, 96, 127, 106, 217, 223, 205, 0, 241, 1,\n\t\t118, 169, 195, 11, 14, 200, 61, 207, 129, 210, 168, 64, 29,\n\t\t208, 224, 215, 84, 226, 195, 173, 20, 93, 64, 124, 68, 175,\n\t\t91, 135, 155, 117, 180, 7, 162, 237, 137, 120, 52, 204, 107,\n\t\t244, 54, 99, 65, 166, 177, 53, 172, 171, 239, 162, 91, 110,\n\t\t217, 117, 75, 179, 219, 201, 222, 185, 118, 217, 178, 107,\n\t\t151, 57, 152, 198, 130, 140, 173, 97, 78, 119, 243, 45, 187,\n\t\t110, 185, 229, 162, 190, 46, 198, 150, 233, 89, 0, 229, 222,\n\t\t203, 29, 225, 108, 180, 3, 101, 0, 213, 144, 213, 74, 34,\n\t\t153, 240, 215, 82, 178, 135, 232, 149, 86, 190, 233, 5, 103,\n\t\t165, 243, 133, 38, 190, 117, 214, 117, 81, 77, 139, 94, 71,\n\t\t183, 55, 110, 106, 218, 231, 116, 238, 107, 218, 212, 24,\n\t\t17, 99, 154, 22, 19, 65, 80, 115, 79, 115, 115, 233, 5, 148,\n\t\t3, 148, 104, 175, 229, 244, 186, 2, 126, 190, 149, 24, 31,\n\t\t93, 72, 177, 104, 98, 33, 145, 77, 108, 20, 207, 188, 87,\n\t\t147, 148, 107, 43, 108, 33, 207, 29, 119, 120, 66, 182, 138,\n\t\t107, 21, 73, 187, 151, 30, 47, 43, 219, 236, 231, 162, 202,\n\t\t218, 123, 189, 1, 177, 183, 215, 89, 238, 189, 119, 173, 18,\n\t\t213, 87, 170, 97, 89, 201, 165, 41, 77, 105, 48, 84, 1, 245,\n\t\t102, 247, 53, 214, 238, 175, 38, 141, 143, 212, 133, 163,\n\t\t11, 72, 159, 62, 127, 123, 146, 124, 70, 143, 163, 201, 21,\n\t\t65, 45, 59, 162, 5, 87, 36, 61, 145, 229, 145, 180, 209, 217,\n\t\t235, 86, 36, 103, 107, 193, 160, 54, 59, 185, 194, 109, 120,\n\t\t170, 138, 102, 229, 52, 140, 86, 204, 199, 217, 184, 0, 151,\n\t\t225, 58, 124, 12, 119, 224, 11, 0, 181, 251, 125, 30, 141,\n\t\t111, 162, 206, 120, 19, 133, 171, 169, 206, 122, 70, 194,\n\t\t209, 78, 143, 222, 154, 79, 155, 79, 237, 11, 168, 206, 122,\n\t\t230, 203, 153, 177, 83, 135, 29, 167, 41, 19, 248, 31, 188,\n\t\t75, 71, 157, 138, 226, 20, 164, 70, 41, 155, 150, 26, 37,\n\t\t33, 31, 163, 148, 158, 52, 44, 53, 74, 51, 126, 228, 150,\n\t\t246, 73, 133, 223, 208, 41, 10, 12, 43, 206, 236, 110, 167,\n\t\t162, 73, 146, 166, 95, 138, 147, 250, 167, 99, 217, 253, 70,\n\t\t161, 245, 69, 247, 189, 131, 146, 52, 40, 61, 97, 220, 239,\n\t\t62, 41, 23, 176, 3, 185, 35, 28, 104, 4, 42, 106, 209, 138,\n\t\t133, 0, 117, 152, 147, 212, 68, 230, 36, 69, 74, 163, 29,\n\t\t54, 125, 36, 167, 211, 58, 29, 249, 185, 180, 230, 150, 26,\n\t\t211, 122, 71, 245, 219, 146, 124, 192, 89, 110, 61, 211, 78,\n\t\t133, 26, 11, 169, 52, 162, 56, 71, 244, 64, 201, 45, 59, 85,\n\t\t136, 149, 79, 167, 26, 115, 95, 128, 53, 132, 54, 44, 194,\n\t\t7, 112, 5, 110, 194, 167, 116, 197, 213, 235, 155, 6, 81,\n\t\t7, 37, 160, 41, 84, 28, 247, 37, 103, 128, 29, 209, 20, 174,\n\t\t164, 0, 155, 209, 79, 54, 227, 133, 134, 25, 253, 100, 51,\n\t\t226, 13, 51, 202, 127, 81, 113, 94, 165, 195, 126, 149, 83,\n\t\t121, 146, 185, 248, 171, 245, 240, 213, 78, 37, 52, 157, 28,\n\t\t178, 51, 193, 145, 79, 127, 197, 74, 52, 58, 157, 47, 65,\n\t\t119, 20, 82, 167, 111, 217, 151, 141, 23, 140, 27, 109, 233,\n\t\t215, 67, 250, 237, 29, 230, 226, 205, 144, 57, 102, 70, 200,\n\t\t33, 242, 118, 43, 184, 197, 122, 246, 59, 149, 61, 133, 252,\n\t\t162, 196, 145, 233, 224, 186, 66, 190, 190, 220, 248, 147,\n\t\t112, 100, 5, 46, 3, 146, 51, 70, 124, 230, 120, 121, 103,\n\t\t140, 167, 215, 122, 214, 229, 241, 164, 40, 92, 23, 142, 118,\n\t\t6, 102, 228, 23, 141, 95, 81, 240, 19, 133, 97, 248, 129,\n\t\t126, 163, 170, 252, 136, 88, 161, 55, 157, 74, 249, 116, 198,\n\t\t209, 194, 232, 60, 86, 232, 18, 237, 156, 238, 104, 54, 53,\n\t\t29, 166, 157, 133, 34, 123, 166, 83, 45, 171, 48, 113, 160,\n\t\t79, 66, 3, 146, 177, 104, 124, 161, 78, 44, 41, 169, 223,\n\t\t252, 26, 35, 62, 252, 248, 55, 24, 107, 96, 62, 97, 40, 35,\n\t\t248, 88, 3, 99, 217, 223, 50, 191, 248, 40, 243, 179, 122,\n\t\t65, 79, 19, 234, 153, 159, 101, 127, 39, 232, 245, 228, 114,\n\t\t80, 233, 114, 186, 17, 17, 32, 25, 200, 179, 8, 102, 80, 240,\n\t\t184, 78, 115, 103, 212, 126, 108, 141, 40, 250, 157, 149,\n\t\t226, 154, 53, 98, 165, 211, 47, 234, 207, 146, 120, 250, 52,\n\t\t233, 249, 184, 233, 253, 96, 241, 165, 42, 116, 98, 1, 64,\n\t\t58, 251, 52, 88, 232, 2, 138, 132, 23, 80, 124, 62, 117, 198,\n\t\t231, 83, 123, 53, 117, 180, 123, 217, 169, 88, 150, 14, 74,\n\t\t212, 224, 89, 254, 118, 106, 147, 186, 164, 144, 212, 37,\n\t\t89, 143, 159, 158, 196, 194, 214, 176, 157, 253, 67, 253,\n\t\t253, 67, 132, 162, 98, 82, 87, 246, 55, 51, 57, 218, 26, 166,\n\t\t189, 162, 23, 236, 47, 130, 209, 133, 6, 204, 177, 96, 52,\n\t\t97, 251, 159, 193, 180, 83, 146, 118, 254, 19, 88, 164, 144,\n\t\t244, 126, 48, 112, 96, 185, 151, 104, 138, 210, 152, 133,\n\t\t121, 6, 103, 245, 105, 124, 36, 220, 66, 157, 241, 30, 50,\n\t\t152, 171, 159, 103, 138, 205, 167, 249, 59, 218, 19, 157,\n\t\t241, 104, 172, 133, 22, 82, 15, 177, 210, 101, 224, 163, 173,\n\t\t109, 93, 247, 172, 93, 124, 211, 226, 202, 150, 144, 232,\n\t\t115, 184, 237, 118, 230, 174, 240, 56, 175, 88, 114, 214,\n\t\t149, 245, 33, 102, 183, 187, 29, 190, 203, 20, 103, 72, 199,\n\t\t175, 144, 83, 161, 207, 132, 175, 91, 176, 246, 158, 69, 55,\n\t\t245, 206, 90, 222, 19, 224, 29, 98, 80, 40, 115, 72, 213,\n\t\t225, 152, 239, 172, 43, 175, 56, 59, 118, 118, 185, 163, 76,\n\t\t8, 138, 142, 67, 122, 241, 140, 185, 34, 29, 40, 207, 165,\n\t\t185, 117, 148, 46, 90, 143, 72, 206, 164, 94, 51, 226, 13,\n\t\t121, 222, 104, 242, 194, 142, 228, 63, 137, 31, 98, 162, 200,\n\t\t218, 244, 91, 127, 33, 68, 109, 133, 224, 238, 83, 132, 70,\n\t\t68, 150, 214, 159, 105, 38, 14, 138, 108, 80, 15, 14, 50,\n\t\t49, 45, 178, 236, 17, 227, 237, 144, 145, 158, 29, 54, 34,\n\t\t195, 102, 36, 100, 68, 142, 48, 209, 96, 235, 238, 220, 11,\n\t\t148, 161, 231, 209, 141, 94, 93, 126, 98, 60, 227, 91, 137,\n\t\t103, 62, 141, 241, 177, 232, 2, 138, 198, 244, 103, 44, 186,\n\t\t144, 162, 241, 100, 44, 154, 76, 36, 19, 181, 148, 72, 118,\n\t\t198, 147, 137, 128, 191, 154, 252, 1, 253, 25, 240, 171, 228,\n\t\t103, 124, 94, 196, 250, 171, 104, 243, 68, 121, 161, 169,\n\t\t42, 44, 38, 19, 206, 112, 213, 108, 145, 143, 122, 108, 226,\n\t\t108, 155, 109, 182, 145, 35, 206, 214, 115, 146, 226, 116,\n\t\t14, 207, 191, 190, 168, 181, 117, 81, 235, 102, 187, 179,\n\t\t115, 22, 179, 87, 4, 164, 185, 78, 78, 146, 56, 231, 92, 41,\n\t\t80, 97, 103, 179, 58, 69, 71, 133, 167, 222, 83, 97, 100,\n\t\t59, 202, 79, 202, 118, 218, 43, 34, 145, 57, 173, 122, 29,\n\t\t0, 151, 203, 229, 142, 112, 103, 210, 8, 106, 244, 62, 25,\n\t\t75, 123, 154, 110, 182, 232, 44, 138, 159, 158, 167, 6, 191,\n\t\t79, 39, 8, 17, 29, 219, 195, 249, 64, 167, 69, 17, 58, 243,\n\t\t244, 149, 202, 237, 130, 125, 143, 200, 134, 152, 104, 23,\n\t\t236, 41, 125, 4, 135, 152, 72, 135, 237, 182, 10, 187, 195,\n\t\t97, 251, 79, 187, 96, 255, 79, 155, 157, 183, 87, 216, 236,\n\t\t239, 41, 97, 249, 98, 230, 232, 114, 48, 106, 230, 184, 237,\n\t\t59, 152, 232, 228, 7, 237, 130, 93, 100, 131, 188, 83, 100,\n\t\t59, 230, 218, 121, 187, 173, 214, 97, 123, 145, 227, 94, 180,\n\t\t57, 106, 245, 183, 14, 184, 92, 75, 207, 113, 48, 230, 248,\n\t\t172, 41, 106, 9, 185, 125, 52, 69, 123, 192, 116, 233, 187,\n\t\t172, 221, 111, 136, 201, 14, 255, 66, 74, 180, 22, 228, 167,\n\t\t192, 151, 94, 185, 231, 158, 87, 238, 161, 185, 78, 22, 100,\n\t\t98, 74, 106, 147, 28, 180, 231, 30, 61, 237, 101, 38, 198,\n\t\t156, 172, 229, 51, 146, 180, 147, 183, 235, 180, 40, 247,\n\t\t46, 192, 157, 69, 195, 8, 27, 28, 28, 13, 126, 190, 137, 98,\n\t\t241, 104, 19, 133, 21, 242, 177, 72, 56, 154, 244, 38, 230,\n\t\t19, 211, 252, 243, 169, 61, 209, 25, 235, 104, 15, 168, 196,\n\t\t27, 145, 86, 210, 75, 5, 218, 123, 168, 211, 124, 129, 247,\n\t\t49, 173, 134, 58, 184, 5, 172, 204, 179, 215, 37, 178, 94,\n\t\t59, 115, 184, 246, 122, 202, 216, 221, 130, 247, 10, 155,\n\t\t195, 86, 99, 115, 216, 174, 240, 10, 223, 182, 19, 227, 27,\n\t\t121, 70, 118, 98, 141, 44, 105, 23, 236, 188, 200, 183, 240,\n\t\t34, 111, 23, 236, 115, 220, 213, 87, 240, 130, 157, 183, 95,\n\t\t81, 237, 166, 148, 55, 96, 119, 56, 236, 1, 111, 188, 217,\n\t\t33, 8, 142, 102, 182, 219, 33, 56, 218, 120, 65, 224, 219,\n\t\t28, 130, 195, 144, 149, 210, 6, 141, 242, 161, 9, 29, 152,\n\t\t15, 120, 13, 89, 169, 163, 221, 159, 151, 193, 117, 74, 154,\n\t\t48, 232, 70, 65, 196, 13, 248, 219, 23, 234, 69, 120, 139,\n\t\t86, 37, 172, 231, 161, 126, 167, 178, 82, 118, 138, 219, 121,\n\t\t55, 191, 93, 116, 202, 43, 21, 106, 87, 156, 217, 54, 125,\n\t\t145, 223, 55, 87, 157, 173, 206, 189, 207, 169, 108, 146,\n\t\t220, 146, 228, 94, 110, 220, 41, 173, 56, 119, 86, 136, 219,\n\t\t121, 126, 187, 88, 177, 211, 169, 100, 183, 12, 233, 101,\n\t\t135, 156, 202, 92, 85, 157, 171, 92, 171, 151, 177, 126, 230,\n\t\t206, 38, 151, 162, 97, 248, 81, 163, 143, 114, 145, 216, 189,\n\t\t144, 122, 56, 157, 203, 6, 28, 172, 35, 208, 145, 236, 136,\n\t\t113, 93, 66, 80, 203, 134, 180, 160, 112, 173, 93, 118, 51,\n\t\t146, 92, 1, 62, 123, 240, 194, 91, 67, 67, 161, 91, 47, 220,\n\t\t47, 169, 183, 235, 34, 248, 237, 170, 244, 176, 195, 201,\n\t\t203, 66, 211, 112, 42, 53, 108, 234, 82, 44, 183, 143, 35,\n\t\t74, 163, 219, 144, 189, 75, 232, 77, 91, 71, 160, 133, 34,\n\t\t122, 71, 59, 218, 19, 201, 132, 65, 174, 125, 26, 83, 108,\n\t\t38, 65, 77, 116, 180, 215, 80, 32, 22, 159, 27, 79, 116, 208,\n\t\t184, 142, 110, 251, 244, 27, 93, 229, 191, 48, 118, 206, 218,\n\t\t181, 231, 4, 123, 53, 187, 221, 97, 15, 219, 236, 202, 172,\n\t\t57, 45, 218, 226, 155, 23, 221, 123, 117, 237, 57, 103, 106,\n\t\t118, 230, 160, 180, 85, 184, 213, 193, 28, 161, 150, 181,\n\t\t247, 174, 173, 44, 179, 217, 195, 54, 7, 111, 147, 203, 61,\n\t\t206, 69, 55, 245, 94, 125, 111, 96, 86, 224, 3, 228, 96, 150,\n\t\t30, 98, 204, 217, 108, 12, 0, 164, 55, 104, 112, 186, 34,\n\t\t80, 77, 64, 153, 73, 251, 226, 157, 61, 100, 192, 102, 211,\n\t\t193, 54, 8, 186, 198, 20, 93, 133, 136, 5, 180, 185, 198,\n\t\t91, 37, 82, 95, 172, 134, 232, 41, 230, 104, 149, 44, 160,\n\t\t174, 246, 95, 24, 59, 99, 141, 204, 57, 231, 58, 152, 231,\n\t\t174, 139, 117, 152, 159, 155, 183, 70, 49, 226, 228, 190,\n\t\t235, 226, 182, 15, 215, 218, 139, 139, 251, 46, 162, 239,\n\t\t147, 131, 73, 69, 61, 90, 209, 37, 50, 7, 209, 7, 111, 14,\n\t\t204, 10, 100, 191, 83, 136, 117, 212, 127, 96, 70, 65, 0,\n\t\t172, 72, 54, 11, 160, 22, 49, 116, 96, 33, 150, 1, 142, 58,\n\t\t139, 144, 215, 153, 132, 29, 22, 238, 241, 51, 158, 201, 34,\n\t\t61, 198, 119, 154, 48, 29, 200, 14, 234, 40, 64, 35, 90, 48,\n\t\t152, 253, 118, 56, 16, 40, 253, 77, 21, 107, 45, 230, 47,\n\t\t20, 212, 200, 120, 71, 215, 232, 104, 157, 81, 238, 156, 162,\n\t\t251, 195, 6, 55, 30, 40, 186, 23, 235, 140, 122, 79, 208,\n\t\t48, 83, 87, 236, 212, 89, 127, 53, 69, 58, 245, 5, 84, 77,\n\t\t180, 53, 95, 127, 80, 43, 95, 117, 219, 170, 254, 217, 221,\n\t\t179, 143, 4, 181, 180, 30, 79, 107, 193, 190, 133, 171, 86,\n\t\t45, 236, 235, 171, 153, 61, 187, 166, 79, 199, 85, 193, 192,\n\t\t131, 23, 16, 211, 113, 53, 153, 208, 235, 102, 186, 60, 17,\n\t\t9, 51, 95, 158, 239, 69, 59, 227, 137, 64, 13, 5, 52, 159,\n\t\t198, 18, 237, 126, 186, 180, 237, 44, 181, 70, 153, 191, 176,\n\t\t126, 93, 101, 79, 92, 113, 186, 157, 74, 121, 184, 220, 95,\n\t\t75, 246, 186, 179, 215, 209, 135, 66, 172, 172, 236, 152,\n\t\t71, 156, 21, 9, 92, 106, 200, 149, 159, 242, 84, 151, 215,\n\t\t17, 213, 248, 56, 206, 233, 148, 34, 134, 173, 193, 156, 155,\n\t\t185, 6, 229, 212, 123, 163, 82, 137, 90, 18, 176, 250, 82,\n\t\t34, 57, 183, 82, 11, 45, 160, 248, 253, 7, 239, 119, 10, 10,\n\t\t119, 230, 28, 67, 158, 45, 111, 173, 187, 241, 161, 27, 235,\n\t\t90, 205, 200, 156, 51, 57, 69, 112, 210, 200, 253, 215, 182,\n\t\t9, 30, 59, 155, 179, 80, 113, 238, 118, 42, 97, 110, 197,\n\t\t141, 55, 174, 224, 194, 70, 100, 225, 28, 102, 247, 8, 109,\n\t\t215, 154, 54, 143, 19, 4, 218, 12, 15, 224, 77, 24, 232, 208,\n\t\t170, 99, 180, 9, 196, 111, 92, 53, 53, 174, 85, 166, 66, 65,\n\t\t31, 119, 73, 238, 236, 110, 183, 228, 90, 165, 56, 183, 58,\n\t\t21, 99, 78, 222, 161, 219, 141, 119, 35, 167, 122, 59, 80,\n\t\t67, 26, 207, 248, 22, 74, 36, 19, 241, 88, 11, 245, 148, 212,\n\t\t119, 208, 87, 81, 225, 19, 52, 209, 33, 250, 124, 162, 67,\n\t\t212, 104, 99, 105, 253, 94, 105, 86, 219, 44, 201, 193, 123,\n\t\t188, 14, 169, 69, 114, 120, 61, 60, 76, 157, 244, 21, 46,\n\t\t69, 223, 131, 7, 49, 244, 160, 255, 84, 237, 54, 76, 183,\n\t\t219, 195, 153, 194, 88, 15, 249, 245, 164, 104, 44, 170, 167,\n\t\t197, 91, 200, 72, 11, 248, 217, 251, 130, 72, 139, 186, 123,\n\t\t123, 187, 5, 205, 101, 23, 235, 90, 43, 231, 205, 21, 237,\n\t\t46, 173, 113, 206, 44, 209, 235, 112, 216, 69, 111, 181, 170,\n\t\t86, 123, 69, 187, 83, 19, 102, 93, 62, 179, 47, 51, 198, 234,\n\t\t238, 216, 109, 159, 191, 45, 198, 59, 220, 154, 195, 191,\n\t\t96, 105, 108, 254, 186, 58, 135, 230, 118, 188, 56, 120, 65,\n\t\t5, 239, 16, 68, 47, 47, 213, 55, 183, 52, 215, 75, 188, 215,\n\t\t227, 224, 43, 18, 167, 232, 184, 161, 223, 82, 154, 70, 96,\n\t\t3, 131, 11, 42, 188, 8, 32, 130, 24, 154, 128, 5, 212, 225,\n\t\t139, 249, 58, 58, 147, 29, 190, 72, 178, 51, 226, 163, 78,\n\t\t51, 222, 208, 225, 139, 116, 70, 124, 145, 206, 14, 159, 254,\n\t\t31, 137, 117, 248, 34, 233, 225, 212, 112, 58, 61, 156, 202,\n\t\t234, 55, 10, 133, 6, 67, 169, 193, 84, 40, 148, 10, 133, 142,\n\t\t232, 41, 169, 84, 58, 149, 210, 51, 141, 240, 112, 104, 48,\n\t\t29, 26, 14, 133, 66, 112, 23, 108, 43, 197, 237, 87, 161,\n\t\t214, 130, 161, 21, 29, 72, 98, 62, 22, 2, 115, 61, 29, 255,\n\t\t91, 255, 101, 162, 88, 38, 214, 139, 85, 101, 85, 162, 254,\n\t\t87, 89, 86, 85, 166, 255, 137, 101, 85, 122, 66, 25, 13, 103,\n\t\t135, 255, 119, 174, 98, 186, 239, 65, 133, 62, 122, 198, 114,\n\t\t211, 85, 134, 60, 167, 182, 232, 95, 80, 219, 175, 41, 7,\n\t\t21, 101, 191, 210, 168, 28, 84, 54, 55, 6, 131, 141, 193,\n\t\t189, 251, 181, 160, 114, 80, 105, 84, 246, 43, 202, 65, 229,\n\t\t64, 80, 79, 44, 232, 81, 195, 86, 157, 179, 74, 45, 124, 230,\n\t\t114, 206, 139, 157, 14, 198, 135, 99, 201, 68, 188, 149, 76,\n\t\t61, 133, 198, 242, 45, 24, 237, 189, 104, 52, 195, 181, 235,\n\t\t73, 143, 87, 86, 254, 120, 174, 14, 194, 235, 249, 6, 53,\n\t\t189, 249, 123, 141, 86, 31, 217, 175, 40, 143, 87, 45, 173,\n\t\t218, 171, 131, 3, 107, 109, 228, 105, 100, 4, 173, 232, 2,\n\t\t26, 52, 198, 107, 129, 105, 61, 58, 79, 244, 29, 190, 83,\n\t\t219, 166, 188, 209, 100, 157, 193, 151, 41, 45, 218, 108,\n\t\t162, 226, 204, 238, 105, 236, 234, 106, 164, 62, 167, 146,\n\t\t77, 243, 7, 249, 194, 239, 61, 155, 45, 251, 103, 217, 235,\n\t\t149, 87, 74, 204, 21, 119, 9, 46, 183, 83, 233, 106, 164,\n\t\t84, 99, 151, 226, 252, 176, 198, 243, 26, 191, 196, 184, 231,\n\t\t16, 10, 121, 43, 189, 166, 109, 149, 244, 241, 113, 2, 190,\n\t\t2, 239, 137, 5, 53, 10, 105, 193, 116, 138, 14, 24, 4, 187,\n\t\t109, 40, 223, 15, 99, 126, 116, 220, 106, 211, 251, 81, 160,\n\t\t128, 5, 233, 201, 90, 236, 29, 157, 70, 85, 186, 0, 97, 235,\n\t\t172, 243, 53, 116, 26, 233, 17, 159, 61, 47, 227, 167, 171,\n\t\t26, 68, 214, 230, 149, 179, 105, 217, 219, 198, 196, 134,\n\t\t42, 175, 76, 94, 89, 108, 17, 83, 57, 16, 218, 152, 152, 166,\n\t\t168, 166, 40, 154, 66, 104, 168, 26, 98, 226, 160, 222, 169,\n\t\t65, 145, 13, 85, 53, 140, 200, 94, 177, 69, 148, 179, 159,\n\t\t27, 28, 60, 50, 40, 178, 182, 145, 62, 69, 47, 105, 204, 181,\n\t\t73, 187, 43, 17, 198, 108, 211, 86, 156, 31, 222, 249, 148,\n\t\t236, 225, 116, 138, 93, 91, 34, 215, 153, 6, 228, 118, 14,\n\t\t65, 205, 228, 151, 43, 37, 187, 92, 230, 188, 77, 45, 231,\n\t\t165, 149, 90, 112, 203, 146, 53, 75, 150, 172, 137, 198, 251,\n\t\t226, 241, 62, 106, 203, 30, 49, 56, 106, 72, 11, 214, 137,\n\t\t138, 224, 81, 234, 130, 175, 234, 217, 75, 30, 212, 179, 227,\n\t\t6, 254, 154, 180, 160, 9, 237, 5, 94, 56, 205, 57, 98, 17,\n\t\t214, 49, 51, 205, 107, 160, 160, 55, 214, 17, 139, 198, 120,\n\t\t70, 134, 98, 182, 69, 191, 5, 42, 63, 83, 85, 94, 136, 85,\n\t\t221, 110, 151, 250, 36, 251, 237, 127, 189, 114, 22, 207,\n\t\t217, 28, 33, 145, 25, 74, 88, 136, 137, 231, 159, 63, 29,\n\t\t166, 143, 184, 92, 217, 207, 110, 219, 228, 241, 120, 60,\n\t\t6, 238, 11, 185, 35, 180, 145, 70, 16, 70, 51, 146, 64, 131,\n\t\t161, 29, 179, 162, 230, 61, 145, 105, 182, 102, 100, 198,\n\t\t124, 134, 158, 28, 139, 70, 188, 61, 212, 169, 75, 236, 190,\n\t\t142, 118, 154, 91, 23, 109, 143, 85, 53, 238, 213, 219, 169,\n\t\t171, 211, 239, 79, 183, 215, 132, 234, 131, 207, 158, 91,\n\t\t17, 172, 80, 2, 115, 220, 222, 112, 245, 133, 231, 107, 251,\n\t\t93, 93, 177, 230, 197, 46, 193, 4, 102, 161, 200, 234, 152,\n\t\t40, 73, 93, 245, 181, 29, 183, 223, 88, 91, 89, 47, 179, 236,\n\t\t207, 249, 176, 175, 58, 124, 187, 206, 223, 252, 185, 35,\n\t\t52, 155, 70, 16, 50, 244, 96, 149, 12, 168, 22, 234, 92, 213,\n\t\t171, 139, 155, 11, 77, 254, 106, 164, 219, 94, 102, 78, 142,\n\t\t231, 228, 135, 5, 145, 24, 39, 55, 246, 132, 29, 130, 93,\n\t\t15, 141, 152, 9, 179, 122, 66, 18, 11, 201, 250, 69, 41, 135,\n\t\t232, 48, 131, 217, 180, 101, 211, 254, 45, 183, 152, 190,\n\t\t129, 57, 56, 27, 240, 214, 21, 79, 64, 196, 115, 210, 124,\n\t\t120, 34, 69, 22, 50, 71, 64, 87, 116, 124, 166, 170, 96, 105,\n\t\t10, 17, 3, 72, 55, 25, 99, 30, 97, 98, 50, 172, 7, 182, 234,\n\t\t183, 112, 210, 72, 17, 233, 79, 253, 130, 224, 106, 107, 115,\n\t\t9, 66, 191, 203, 85, 20, 166, 17, 75, 197, 110, 203, 166,\n\t\t139, 102, 45, 213, 102, 169, 221, 142, 126, 166, 29, 209,\n\t\t88, 191, 36, 229, 3, 224, 114, 111, 231, 126, 79, 47, 209,\n\t\t200, 41, 225, 247, 157, 4, 127, 103, 49, 252, 164, 195, 109,\n\t\t148, 211, 217, 176, 14, 183, 174, 248, 232, 242, 146, 155,\n\t\t70, 44, 248, 63, 86, 4, 255, 199, 44, 248, 191, 55, 13, 128,\n\t\t21, 152, 134, 124, 120, 26, 240, 225, 60, 220, 217, 111, 149,\n\t\t116, 115, 58, 108, 210, 140, 195, 148, 166, 29, 69, 182, 234,\n\t\t34, 77, 75, 167, 54, 142, 25, 54, 197, 153, 54, 199, 88, 169,\n\t\t76, 217, 65, 33, 145, 229, 96, 216, 32, 192, 196, 236, 17,\n\t\t145, 153, 157, 201, 14, 50, 209, 109, 36, 27, 81, 227, 102,\n\t\t149, 219, 214, 168, 63, 244, 219, 191, 229, 3, 44, 155, 177,\n\t\t2, 141, 76, 220, 55, 29, 196, 105, 97, 46, 54, 24, 57, 102,\n\t\t192, 72, 167, 134, 185, 160, 174, 208, 160, 200, 12, 131,\n\t\t202, 17, 38, 102, 119, 79, 3, 153, 29, 156, 14, 15, 90, 249,\n\t\t37, 240, 62, 63, 13, 89, 14, 167, 1, 248, 20, 240, 122, 59,\n\t\t75, 7, 149, 253, 19, 120, 27, 102, 196, 71, 204, 193, 53,\n\t\t7, 112, 235, 169, 225, 157, 158, 3, 145, 209, 250, 2, 196,\n\t\t119, 157, 26, 226, 225, 146, 33, 62, 21, 204, 158, 25, 48,\n\t\t207, 180, 45, 255, 51, 152, 79, 131, 7, 197, 32, 23, 135,\n\t\t255, 53, 144, 121, 32, 151, 225, 64, 91, 75, 237, 233, 51,\n\t\t199, 121, 38, 204, 167, 193, 147, 211, 238, 71, 204, 140,\n\t\t15, 139, 140, 12, 152, 179, 35, 249, 78, 21, 162, 133, 176,\n\t\t177, 30, 83, 167, 187, 209, 242, 66, 63, 191, 57, 221, 161,\n\t\t145, 233, 32, 197, 167, 139, 143, 156, 50, 8, 192, 145, 123,\n\t\t123, 198, 124, 45, 61, 237, 140, 77, 239, 42, 205, 92, 21,\n\t\t51, 242, 27, 44, 146, 164, 241, 177, 226, 25, 58, 192, 242,\n\t\t11, 161, 120, 190, 142, 76, 167, 94, 40, 73, 131, 76, 211,\n\t\t254, 181, 41, 92, 229, 114, 13, 10, 130, 43, 109, 144, 37,\n\t\t56, 78, 194, 191, 211, 247, 231, 127, 140, 129, 13, 22, 189,\n\t\t141, 39, 2, 197, 253, 49, 215, 59, 102, 118, 168, 120, 253,\n\t\t100, 127, 246, 255, 166, 75, 55, 148, 116, 169, 200, 126,\n\t\t164, 234, 242, 179, 181, 179, 90, 144, 47, 29, 121, 125, 172,\n\t\t147, 250, 13, 161, 206, 148, 102, 94, 119, 135, 35, 234, 135,\n\t\t105, 184, 144, 16, 210, 130, 81, 151, 71, 203, 65, 243, 184,\n\t\t150, 61, 100, 157, 196, 52, 117, 12, 21, 1, 132, 129, 89,\n\t\t116, 106, 59, 5, 171, 235, 140, 69, 85, 210, 175, 82, 243,\n\t\t195, 215, 90, 234, 234, 90, 234, 214, 209, 240, 74, 65, 216,\n\t\t210, 37, 8, 125, 102, 51, 102, 147, 212, 87, 167, 103, 255,\n\t\t117, 40, 159, 153, 223, 243, 127, 222, 144, 75, 3, 64, 160,\n\t\t133, 239, 52, 183, 16, 20, 93, 72, 223, 85, 190, 160, 50,\n\t\t236, 146, 109, 67, 35, 67, 54, 217, 21, 174, 92, 80, 206,\n\t\t42, 19, 145, 149, 245, 157, 254, 112, 133, 167, 127, 104,\n\t\t168, 223, 83, 17, 246, 119, 214, 175, 140, 56, 75, 109, 161,\n\t\t50, 144, 48, 118, 180, 249, 112, 82, 23, 67, 35, 130, 97,\n\t\t238, 92, 187, 124, 253, 250, 229, 171, 12, 99, 104, 106, 253,\n\t\t246, 245, 121, 155, 198, 32, 189, 0, 15, 234, 0, 111, 141,\n\t\t205, 240, 51, 232, 140, 247, 112, 201, 68, 187, 205, 120,\n\t\t85, 143, 70, 195, 188, 79, 243, 191, 236, 78, 52, 215, 173,\n\t\t189, 119, 109, 221, 156, 78, 55, 155, 19, 208, 167, 166, 174,\n\t\t85, 84, 196, 69, 244, 88, 252, 178, 196, 57, 209, 165, 235,\n\t\t214, 45, 141, 246, 117, 93, 26, 247, 103, 83, 162, 34, 182,\n\t\t26, 226, 83, 203, 34, 75, 55, 73, 115, 41, 74, 67, 66, 165,\n\t\t46, 159, 81, 192, 175, 114, 124, 11, 45, 228, 18, 73, 67,\n\t\t77, 49, 153, 118, 123, 192, 22, 207, 47, 148, 98, 109, 193,\n\t\t144, 141, 60, 117, 116, 223, 197, 140, 189, 182, 154, 119,\n\t\t241, 228, 124, 141, 125, 211, 229, 170, 103, 236, 98, 198,\n\t\t234, 93, 33, 105, 179, 189, 209, 161, 230, 237, 45, 84, 35,\n\t\t240, 124, 163, 205, 241, 23, 74, 209, 245, 250, 43, 78, 226,\n\t\t93, 252, 234, 215, 152, 91, 10, 73, 17, 227, 157, 136, 36,\n\t\t101, 191, 231, 176, 53, 242, 188, 240, 144, 241, 202, 160,\n\t\t22, 84, 29, 141, 118, 67, 148, 2, 33, 149, 251, 29, 13, 211,\n\t\t163, 240, 1, 1, 143, 185, 251, 148, 204, 99, 149, 177, 247,\n\t\t147, 146, 218, 164, 189, 106, 67, 131, 186, 87, 106, 147,\n\t\t52, 218, 41, 73, 187, 127, 32, 151, 105, 217, 97, 173, 76,\n\t\t126, 226, 59, 146, 57, 175, 239, 112, 160, 79, 163, 22, 232,\n\t\t156, 174, 163, 164, 162, 124, 109, 82, 163, 180, 75, 109,\n\t\t216, 165, 215, 183, 171, 65, 221, 37, 53, 74, 18, 173, 147,\n\t\t164, 237, 95, 145, 203, 180, 205, 250, 45, 155, 214, 202,\n\t\t228, 7, 239, 208, 111, 15, 72, 166, 221, 195, 168, 219, 165,\n\t\t99, 77, 210, 216, 150, 51, 42, 141, 21, 135, 37, 73, 74, 235,\n\t\t85, 166, 172, 231, 55, 156, 53, 206, 145, 124, 101, 35, 197,\n\t\t17, 11, 15, 247, 208, 11, 180, 15, 46, 67, 119, 100, 14, 222,\n\t\t24, 255, 0, 237, 44, 47, 207, 142, 4, 230, 118, 248, 254,\n\t\t166, 36, 148, 3, 74, 85, 144, 70, 106, 42, 148, 188, 31, 197,\n\t\t31, 41, 77, 95, 53, 104, 11, 2, 5, 87, 6, 115, 181, 52, 76,\n\t\t239, 216, 24, 73, 91, 141, 133, 162, 223, 200, 122, 234, 183,\n\t\t218, 98, 99, 92, 91, 126, 50, 130, 154, 5, 147, 169, 103,\n\t\t168, 39, 175, 242, 98, 11, 27, 141, 20, 66, 131, 90, 112,\n\t\t230, 248, 152, 154, 176, 217, 27, 86, 20, 166, 241, 25, 3,\n\t\t244, 91, 107, 76, 40, 85, 52, 64, 70, 100, 198, 124, 146,\n\t\t199, 220, 255, 99, 58, 17, 100, 102, 117, 198, 30, 72, 173,\n\t\t185, 87, 201, 225, 228, 25, 165, 13, 217, 237, 197, 83, 106,\n\t\t212, 91, 152, 210, 82, 156, 43, 170, 63, 95, 245, 124, 106,\n\t\t167, 225, 98, 164, 163, 109, 217, 149, 22, 214, 81, 1, 235,\n\t\t0, 46, 55, 153, 59, 66, 63, 53, 198, 172, 10, 104, 152, 33,\n\t\t131, 54, 24, 82, 189, 174, 174, 242, 17, 74, 123, 229, 236,\n\t\t176, 174, 110, 210, 176, 236, 205, 14, 213, 86, 248, 118,\n\t\t43, 179, 149, 221, 190, 138, 218, 84, 74, 79, 214, 111, 29,\n\t\t243, 2, 105, 183, 59, 29, 152, 103, 204, 71, 85, 238, 77,\n\t\t106, 160, 47, 67, 3, 204, 106, 44, 167, 28, 203, 210, 16,\n\t\t143, 188, 200, 52, 230, 103, 196, 190, 252, 101, 70, 204,\n\t\t207, 52, 246, 162, 240, 139, 23, 153, 17, 250, 242, 151, 141,\n\t\t60, 246, 34, 211, 102, 214, 213, 96, 236, 161, 234, 186, 144,\n\t\t225, 214, 99, 238, 46, 83, 245, 41, 42, 251, 206, 169, 42,\n\t\t43, 166, 125, 145, 162, 125, 160, 206, 120, 193, 219, 38,\n\t\t98, 90, 25, 44, 171, 67, 71, 187, 181, 39, 180, 69, 90, 45,\n\t\t117, 73, 171, 37, 235, 97, 237, 11, 221, 81, 148, 36, 173,\n\t\t46, 173, 223, 59, 93, 127, 160, 174, 125, 1, 197, 35, 117,\n\t\t122, 213, 102, 125, 27, 72, 144, 164, 236, 84, 190, 158, 47,\n\t\t152, 27, 204, 167, 133, 47, 150, 76, 180, 146, 197, 71, 248,\n\t\t90, 98, 124, 45, 249, 23, 82, 192, 191, 144, 18, 22, 124,\n\t\t55, 45, 90, 36, 8, 141, 130, 120, 230, 153, 162, 208, 40,\n\t\t8, 37, 49, 171, 145, 157, 167, 202, 179, 98, 39, 239, 145,\n\t\t193, 178, 3, 216, 74, 155, 246, 211, 148, 81, 217, 230, 61,\n\t\t146, 228, 151, 92, 247, 47, 113, 73, 126, 73, 90, 231, 162,\n\t\t152, 1, 71, 246, 206, 61, 46, 87, 192, 165, 167, 235, 143,\n\t\t117, 146, 169, 115, 231, 235, 109, 66, 199, 116, 205, 44,\n\t\t108, 244, 35, 217, 195, 25, 174, 112, 60, 83, 184, 130, 129,\n\t\t199, 48, 134, 230, 141, 251, 86, 147, 131, 75, 155, 120, 49,\n\t\t34, 50, 151, 172, 201, 158, 106, 213, 83, 230, 209, 164, 46,\n\t\t169, 178, 182, 178, 47, 20, 173, 170, 138, 86, 89, 32, 124,\n\t\t32, 37, 178, 74, 38, 202, 178, 211, 171, 184, 100, 167, 83,\n\t\t170, 241, 218, 37, 137, 196, 50, 119, 180, 114, 118, 247,\n\t\t84, 149, 94, 22, 40, 133, 75, 69, 108, 122, 180, 235, 173,\n\t\t102, 3, 69, 88, 161, 99, 132, 133, 25, 121, 140, 16, 195,\n\t\t21, 21, 225, 10, 69, 146, 164, 148, 100, 252, 173, 204, 207,\n\t\t102, 164, 66, 207, 122, 179, 92, 90, 35, 73, 229, 82, 74,\n\t\t42, 151, 80, 224, 109, 160, 52, 26, 209, 143, 149, 64, 67,\n\t\t123, 53, 105, 77, 164, 112, 204, 114, 18, 104, 161, 152, 229,\n\t\t199, 208, 67, 73, 203, 149, 161, 134, 2, 172, 135, 146, 86,\n\t\t122, 11, 197, 172, 178, 10, 177, 14, 243, 253, 26, 10, 24,\n\t\t101, 125, 113, 107, 92, 117, 106, 85, 195, 58, 206, 107, 145,\n\t\t26, 165, 37, 87, 185, 106, 36, 169, 198, 117, 213, 18, 51,\n\t\t242, 100, 243, 66, 231, 44, 73, 154, 229, 92, 216, 44, 53,\n\t\t74, 37, 17, 111, 165, 215, 91, 121, 68, 106, 148, 90, 206,\n\t\t235, 96, 37, 47, 89, 145, 31, 156, 226, 37, 51, 242, 113,\n\t\t253, 85, 239, 140, 49, 149, 139, 87, 128, 189, 133, 24, 37,\n\t\t236, 53, 148, 36, 222, 26, 191, 199, 6, 183, 196, 137, 162,\n\t\t217, 123, 6, 183, 196, 179, 185, 168, 53, 118, 190, 65, 87,\n\t\t52, 155, 139, 7, 7, 93, 81, 162, 56, 76, 95, 147, 220, 155,\n\t\t148, 166, 47, 163, 58, 191, 254, 243, 222, 37, 58, 57, 41,\n\t\t8, 167, 129, 26, 34, 46, 160, 175, 125, 99, 177, 179, 0, 35,\n\t\t182, 145, 106, 13, 119, 154, 63, 110, 100, 100, 51, 137, 0,\n\t\t179, 232, 194, 205, 134, 223, 194, 205, 6, 137, 49, 104, 246,\n\t\t155, 244, 130, 217, 134, 215, 114, 90, 201, 155, 88, 23, 82,\n\t\t129, 44, 198, 90, 232, 71, 51, 155, 200, 254, 209, 216, 54,\n\t\t169, 221, 200, 136, 62, 241, 190, 109, 56, 114, 71, 232, 25,\n\t\t250, 170, 222, 198, 180, 255, 141, 201, 102, 90, 169, 224,\n\t\t181, 192, 20, 138, 156, 166, 154, 135, 138, 218, 246, 11,\n\t\t165, 109, 27, 245, 255, 129, 158, 161, 17, 99, 156, 10, 62,\n\t\t57, 38, 155, 175, 165, 2, 187, 77, 246, 16, 125, 229, 52,\n\t\t13, 252, 233, 125, 198, 47, 63, 78, 135, 57, 162, 175, 163,\n\t\t6, 176, 64, 95, 64, 138, 77, 11, 248, 249, 152, 225, 97, 98,\n\t\t75, 118, 234, 12, 115, 74, 16, 118, 75, 193, 185, 189, 237,\n\t\t1, 217, 238, 115, 69, 218, 106, 218, 151, 247, 199, 131, 18,\n\t\t113, 204, 207, 182, 59, 101, 117, 37, 185, 42, 102, 167, 154,\n\t\t36, 69, 168, 184, 176, 185, 121, 209, 172, 10, 145, 250, 85,\n\t\t217, 153, 215, 131, 77, 94, 238, 70, 29, 218, 177, 216, 212,\n\t\t66, 204, 237, 78, 203, 225, 167, 33, 110, 105, 76, 150, 243,\n\t\t79, 103, 32, 191, 23, 106, 185, 1, 117, 48, 205, 178, 52,\n\t\t88, 14, 65, 62, 197, 185, 73, 146, 6, 116, 246, 26, 146, 54,\n\t\t57, 21, 169, 81, 26, 144, 182, 73, 86, 234, 91, 133, 36, 122,\n\t\t191, 204, 66, 210, 105, 224, 180, 76, 189, 86, 147, 213, 164,\n\t\t53, 20, 195, 164, 175, 81, 79, 137, 187, 82, 187, 223, 23,\n\t\t208, 166, 183, 98, 141, 254, 208, 19, 249, 214, 178, 71, 10,\n\t\t48, 27, 113, 29, 140, 180, 212, 104, 193, 64, 40, 228, 150,\n\t\t91, 47, 72, 58, 159, 31, 200, 151, 48, 171, 41, 150, 141,\n\t\t34, 69, 22, 216, 130, 245, 166, 96, 238, 156, 118, 204, 24,\n\t\t209, 89, 250, 86, 175, 28, 146, 189, 91, 167, 131, 153, 153,\n\t\t9, 102, 208, 240, 43, 219, 74, 105, 100, 116, 217, 171, 97,\n\t\t166, 101, 202, 168, 203, 148, 29, 204, 10, 140, 155, 137,\n\t\t75, 222, 92, 154, 254, 65, 105, 36, 12, 59, 172, 74, 10, 181,\n\t\t146, 97, 95, 212, 69, 15, 166, 47, 10, 125, 241, 89, 254,\n\t\t73, 181, 20, 139, 246, 144, 105, 0, 181, 188, 152, 84, 162,\n\t\t215, 69, 135, 195, 235, 208, 132, 207, 218, 72, 113, 69, 93,\n\t\t10, 217, 62, 43, 104, 14, 175, 195, 33, 126, 254, 243, 211,\n\t\t89, 204, 197, 74, 243, 110, 114, 120, 197, 176, 232, 224,\n\t\t7, 30, 113, 41, 138, 235, 145, 1, 222, 33, 134, 69, 175, 227,\n\t\t188, 243, 10, 233, 204, 197, 138, 51, 78, 226, 23, 213, 211,\n\t\t124, 140, 179, 248, 69, 44, 160, 115, 135, 206, 164, 233,\n\t\t212, 97, 49, 173, 1, 131, 53, 93, 44, 72, 109, 146, 192, 28,\n\t\t41, 7, 203, 51, 202, 87, 13, 70, 148, 222, 226, 114, 109,\n\t\t225, 25, 179, 244, 111, 211, 86, 207, 67, 70, 11, 230, 233,\n\t\t24, 213, 209, 217, 225, 139, 132, 163, 142, 206, 14, 93, 60,\n\t\t243, 150, 142, 238, 124, 138, 26, 46, 8, 254, 64, 15, 25,\n\t\t44, 148, 213, 117, 180, 80, 36, 172, 144, 233, 220, 165, 43,\n\t\t101, 10, 177, 80, 122, 68, 246, 18, 210, 198, 200, 155, 198,\n\t\t17, 175, 220, 236, 140, 215, 215, 180, 84, 85, 181, 212, 212,\n\t\t199, 157, 217, 55, 46, 138, 212, 149, 185, 202, 92, 129, 63,\n\t\t120, 2, 1, 143, 228, 9, 85, 12, 143, 120, 189, 35, 195, 178,\n\t\t151, 82, 94, 217, 112, 157, 234, 151, 189, 94, 95, 125, 60,\n\t\t84, 95, 31, 138, 215, 107, 90, 103, 149, 171, 204, 229, 9,\n\t\t4, 194, 1, 86, 223, 96, 248, 114, 63, 199, 165, 172, 125,\n\t\t105, 131, 153, 243, 209, 24, 207, 20, 106, 161, 100, 143,\n\t\t221, 130, 133, 69, 77, 28, 75, 36, 245, 65, 171, 121, 224,\n\t\t35, 93, 151, 84, 117, 122, 29, 21, 229, 46, 135, 24, 74, 157,\n\t\t255, 137, 179, 245, 118, 190, 249, 17, 110, 168, 191, 191,\n\t\t117, 69, 185, 195, 75, 79, 46, 58, 239, 142, 167, 68, 190,\n\t\t165, 161, 185, 69, 114, 57, 43, 36, 95, 107, 79, 91, 88, 84,\n\t\t196, 1, 133, 239, 31, 106, 157, 37, 20, 246, 106, 246, 26,\n\t\t90, 169, 86, 80, 75, 205, 141, 113, 211, 193, 173, 197, 158,\n\t\t72, 38, 252, 135, 34, 115, 231, 70, 110, 124, 232, 198, 164,\n\t\t171, 166, 161, 178, 42, 234, 173, 172, 246, 242, 190, 74,\n\t\t103, 152, 118, 6, 219, 155, 219, 207, 109, 93, 113, 227, 141,\n\t\t43, 206, 155, 39, 73, 158, 11, 171, 162, 13, 85, 158, 80,\n\t\t101, 48, 60, 123, 65, 131, 234, 204, 235, 250, 41, 26, 134,\n\t\t7, 85, 152, 99, 234, 60, 10, 69, 194, 45, 20, 139, 198, 147,\n\t\t61, 212, 238, 103, 134, 35, 157, 142, 6, 73, 147, 223, 117,\n\t\t198, 147, 102, 227, 177, 4, 183, 192, 102, 155, 189, 253,\n\t\t146, 238, 27, 46, 10, 234, 129, 39, 183, 31, 235, 30, 24,\n\t\t216, 56, 48, 208, 221, 216, 213, 181, 98, 158, 93, 114, 107,\n\t\t65, 81, 250, 57, 115, 179, 254, 203, 231, 172, 232, 52, 158,\n\t\t151, 255, 247, 64, 183, 81, 40, 211, 181, 98, 222, 188, 152,\n\t\t44, 137, 65, 205, 45, 217, 11, 123, 119, 183, 27, 122, 120,\n\t\t7, 150, 234, 235, 45, 25, 224, 35, 225, 168, 14, 73, 34, 25,\n\t\t168, 225, 28, 121, 223, 171, 152, 229, 114, 213, 209, 94,\n\t\t75, 134, 132, 21, 48, 192, 102, 49, 29, 212, 72, 152, 103,\n\t\t1, 3, 60, 29, 111, 218, 124, 26, 163, 148, 44, 199, 103, 53,\n\t\t92, 178, 125, 182, 205, 166, 4, 174, 177, 197, 82, 116, 25,\n\t\t111, 211, 28, 130, 195, 254, 222, 247, 173, 192, 112, 89,\n\t\t103, 210, 103, 148, 144, 219, 124, 231, 40, 3, 221, 190, 132,\n\t\t251, 28, 78, 148, 229, 88, 151, 163, 205, 54, 203, 121, 121,\n\t\t63, 115, 179, 202, 234, 243, 27, 22, 68, 206, 112, 8, 14,\n\t\t71, 5, 111, 163, 151, 172, 192, 149, 46, 143, 153, 95, 222,\n\t\t93, 54, 175, 186, 182, 123, 192, 171, 204, 115, 56, 220, 146,\n\t\t189, 43, 70, 170, 106, 200, 71, 185, 169, 92, 154, 235, 163,\n\t\t23, 224, 130, 215, 60, 121, 96, 96, 122, 210, 155, 104, 15,\n\t\t156, 122, 141, 113, 103, 200, 85, 193, 108, 40, 88, 37, 103,\n\t\t148, 46, 37, 48, 115, 169, 9, 229, 109, 109, 229, 52, 82,\n\t\t94, 158, 125, 114, 198, 98, 163, 92, 214, 178, 51, 204, 54,\n\t\t244, 69, 157, 24, 50, 139, 240, 68, 242, 129, 88, 212, 220,\n\t\t108, 237, 136, 69, 141, 125, 178, 90, 162, 35, 53, 139, 22,\n\t\t213, 220, 116, 141, 67, 92, 36, 136, 220, 220, 181, 77, 14,\n\t\t93, 144, 166, 80, 136, 116, 81, 218, 209, 180, 118, 46, 145,\n\t\t131, 183, 47, 18, 29, 215, 16, 98, 237, 177, 61, 130, 204,\n\t\t118, 157, 193, 75, 194, 250, 245, 130, 196, 159, 177, 203,\n\t\t38, 240, 54, 97, 143, 241, 165, 236, 252, 254, 167, 8, 31,\n\t\t234, 48, 7, 243, 112, 22, 206, 199, 13, 128, 207, 83, 103,\n\t\t41, 175, 13, 167, 217, 249, 140, 253, 139, 233, 6, 81, 175,\n\t\t235, 44, 161, 241, 29, 211, 212, 62, 109, 121, 183, 164, 138,\n\t\t61, 244, 135, 79, 27, 161, 126, 45, 152, 77, 5, 181, 54, 115,\n\t\t195, 195, 184, 187, 201, 157, 205, 104, 193, 224, 33, 163,\n\t\t132, 233, 160, 191, 225, 52, 97, 210, 223, 109, 211, 130,\n\t\t166, 19, 166, 121, 55, 240, 250, 53, 67, 174, 240, 162, 22,\n\t\t243, 11, 154, 184, 206, 158, 90, 41, 25, 48, 118, 104, 26,\n\t\t44, 166, 89, 75, 44, 86, 103, 206, 146, 145, 144, 52, 59,\n\t\t150, 23, 165, 58, 233, 109, 198, 250, 93, 53, 243, 29, 246,\n\t\t37, 157, 157, 161, 26, 87, 246, 74, 73, 186, 193, 136, 80,\n\t\t40, 116, 216, 238, 184, 65, 146, 6, 14, 219, 29, 243, 107,\n\t\t92, 253, 70, 193, 85, 76, 99, 253, 46, 201, 221, 104, 95,\n\t\t118, 198, 188, 70, 183, 228, 90, 43, 117, 73, 122, 248, 45,\n\t\t187, 212, 37, 189, 101, 215, 147, 250, 173, 50, 48, 113, 199,\n\t\t164, 211, 154, 37, 223, 70, 194, 49, 115, 13, 246, 112, 201,\n\t\t104, 103, 252, 254, 131, 247, 223, 127, 109, 87, 199, 153,\n\t\t203, 57, 59, 113, 204, 19, 228, 231, 209, 200, 45, 187, 110,\n\t\t241, 118, 216, 56, 7, 243, 205, 245, 207, 91, 122, 81, 94,\n\t\t31, 248, 21, 7, 218, 5, 55, 106, 141, 29, 138, 72, 137, 49,\n\t\t88, 161, 134, 18, 63, 45, 31, 211, 215, 42, 31, 208, 20, 50,\n\t\t124, 207, 10, 51, 168, 47, 12, 189, 208, 142, 237, 14, 230,\n\t\t83, 215, 169, 62, 27, 79, 171, 152, 99, 187, 100, 68, 244,\n\t\t84, 162, 243, 54, 220, 186, 97, 5, 115, 108, 119, 176, 246,\n\t\t238, 118, 70, 205, 204, 209, 175, 250, 124, 106, 191, 141,\n\t\t183, 73, 14, 38, 25, 145, 77, 204, 209, 44, 246, 109, 152,\n\t\t63, 127, 195, 217, 142, 185, 14, 198, 28, 241, 57, 241, 248,\n\t\t156, 184, 131, 25, 178, 43, 230, 211, 51, 116, 150, 222, 103,\n\t\t175, 33, 91, 234, 204, 218, 228, 209, 134, 32, 59, 122, 178,\n\t\t186, 77, 11, 78, 161, 150, 207, 168, 203, 148, 131, 117, 238,\n\t\t110, 242, 116, 67, 104, 253, 249, 201, 117, 45, 62, 101, 85,\n\t\t224, 96, 203, 157, 224, 62, 65, 155, 81, 167, 115, 203, 82,\n\t\t237, 160, 51, 98, 249, 50, 182, 27, 182, 52, 67, 214, 118,\n\t\t88, 242, 197, 2, 42, 85, 36, 44, 97, 217, 215, 209, 206, 125,\n\t\t244, 42, 166, 177, 171, 24, 115, 49, 31, 107, 124, 86, 20,\n\t\t220, 46, 201, 61, 238, 84, 26, 153, 143, 185, 88, 54, 83,\n\t\t18, 101, 165, 101, 215, 173, 97, 108, 13, 211, 244, 140, 166,\n\t\t39, 153, 219, 85, 163, 56, 95, 111, 210, 115, 53, 127, 113,\n\t\t132, 21, 23, 179, 206, 114, 45, 162, 52, 90, 128, 6, 93, 145,\n\t\t49, 12, 153, 254, 60, 43, 139, 20, 66, 182, 34, 4, 169, 213,\n\t\t21, 31, 198, 185, 237, 222, 236, 107, 60, 201, 46, 133, 227,\n\t\t67, 117, 45, 117, 158, 95, 122, 234, 90, 234, 130, 75, 140,\n\t\t35, 43, 107, 5, 153, 19, 233, 46, 73, 177, 221, 231, 13, 149,\n\t\t185, 42, 212, 72, 160, 174, 46, 80, 238, 118, 151, 235, 207,\n\t\t144, 135, 62, 104, 56, 131, 185, 132, 57, 101, 46, 235, 171,\n\t\t49, 134, 77, 219, 83, 240, 98, 152, 118, 21, 8, 88, 110, 15,\n\t\t134, 197, 109, 36, 165, 175, 226, 130, 109, 60, 101, 217,\n\t\t217, 123, 13, 123, 120, 72, 159, 7, 133, 244, 87, 245, 153,\n\t\t53, 109, 73, 10, 169, 166, 6, 18, 48, 246, 103, 185, 5, 231,\n\t\t176, 58, 53, 59, 164, 40, 76, 15, 208, 86, 69, 201, 14, 120,\n\t\t66, 21, 226, 89, 122, 229, 35, 90, 240, 193, 77, 178, 183,\n\t\t92, 210, 111, 93, 146, 79, 253, 40, 249, 181, 160, 78, 55,\n\t\t96, 202, 73, 5, 219, 187, 185, 79, 49, 0, 204, 60, 213, 210,\n\t\t49, 35, 94, 247, 79, 242, 3, 51, 251, 171, 107, 74, 116, 174,\n\t\t67, 16, 28, 81, 253, 118, 70, 33, 148, 125, 250, 20, 137,\n\t\t191, 55, 118, 44, 218, 116, 241, 74, 39, 138, 130, 227, 211,\n\t\t122, 170, 113, 251, 75, 225, 182, 164, 112, 251, 137, 117,\n\t\t75, 25, 197, 189, 50, 25, 18, 86, 246, 64, 201, 25, 149, 32,\n\t\t230, 24, 231, 28, 206, 53, 247, 184, 139, 77, 154, 1, 195,\n\t\t219, 218, 36, 240, 17, 135, 126, 215, 217, 161, 106, 218,\n\t\t174, 58, 202, 44, 135, 146, 132, 165, 123, 251, 117, 65, 36,\n\t\t97, 201, 96, 188, 79, 107, 51, 118, 32, 172, 169, 100, 34,\n\t\t191, 129, 231, 41, 197, 139, 236, 61, 27, 87, 243, 25, 158,\n\t\t223, 105, 56, 112, 12, 24, 14, 28, 117, 138, 232, 149, 117,\n\t\t216, 42, 163, 165, 150, 211, 144, 200, 156, 60, 175, 241,\n\t\t131, 252, 82, 38, 218, 230, 240, 245, 124, 118, 202, 112,\n\t\t12, 249, 140, 225, 24, 18, 23, 153, 236, 21, 21, 49, 90, 201,\n\t\t10, 62, 76, 47, 88, 30, 40, 6, 189, 100, 121, 21, 100, 122,\n\t\t23, 121, 161, 46, 176, 24, 130, 108, 222, 189, 152, 195, 218,\n\t\t115, 60, 238, 114, 230, 106, 80, 156, 141, 134, 135, 48, 123,\n\t\t68, 108, 61, 191, 237, 156, 181, 187, 13, 183, 34, 114, 159,\n\t\t179, 214, 86, 37, 52, 58, 21, 227, 44, 214, 121, 78, 246,\n\t\t72, 85, 176, 237, 252, 214, 181, 14, 195, 49, 9, 0, 159, 123,\n\t\t39, 247, 35, 238, 83, 244, 31, 152, 143, 197, 184, 19, 247,\n\t\t224, 101, 252, 26, 160, 130, 3, 126, 44, 18, 142, 69, 117,\n\t\t6, 146, 152, 246, 196, 159, 246, 191, 15, 116, 180, 7, 252,\n\t\t58, 168, 60, 11, 228, 221, 248, 99, 254, 30, 138, 69, 21,\n\t\t154, 78, 97, 134, 184, 27, 107, 161, 18, 215, 254, 18, 207,\n\t\t254, 68, 50, 17, 104, 175, 225, 74, 157, 251, 123, 168, 133,\n\t\t116, 17, 185, 134, 18, 142, 255, 3, 0, 113, 16, 28, 206, 50,\n\t\t69, 112, 8, 78, 222, 237, 34, 187, 157, 92, 110, 222, 41,\n\t\t56, 4, 165, 204, 233, 16, 220, 238, 247, 205, 173, 44, 139,\n\t\t138, 114, 89, 84, 92, 27, 246, 48, 177, 78, 246, 212, 148,\n\t\t215, 72, 66, 52, 42, 186, 106, 203, 171, 61, 114, 200, 201,\n\t\t60, 117, 60, 95, 87, 38, 56, 67, 82, 89, 117, 69, 141, 75,\n\t\t140, 70, 237, 140, 183, 213, 148, 215, 152, 185, 97, 254,\n\t\t86, 143, 221, 31, 105, 243, 27, 119, 18, 255, 15, 128, 66,\n\t\t164, 136, 54, 38, 49, 81, 145, 84, 87, 153, 215, 169, 74,\n\t\t170, 200, 75, 204, 46, 170, 54, 155, 42, 218, 121, 153, 23,\n\t\t85, 73, 117, 122, 203, 92, 170, 164, 56, 121, 137, 217, 68,\n\t\t197, 214, 163, 72, 17, 77, 145, 34, 143, 123, 156, 222, 202,\n\t\t70, 213, 233, 241, 185, 194, 130, 66, 140, 145, 34, 132, 93,\n\t\t62, 143, 83, 141, 85, 121, 157, 158, 80, 173, 199, 233, 173,\n\t\t138, 169, 78, 183, 207, 25, 22, 101, 98, 204, 193, 11, 246,\n\t\t176, 75, 115, 187, 220, 209, 160, 215, 233, 169, 237, 244,\n\t\t183, 69, 252, 14, 143, 113, 127, 116, 6, 32, 178, 34, 50,\n\t\t137, 47, 0, 162, 231, 200, 121, 64, 68, 86, 10, 8, 192, 25,\n\t\t242, 194, 34, 26, 129, 23, 77, 134, 214, 88, 144, 23, 146,\n\t\t9, 93, 94, 72, 180, 123, 253, 1, 127, 33, 213, 82, 28, 106,\n\t\t200, 167, 209, 200, 45, 23, 117, 119, 52, 181, 232, 130, 132,\n\t\t205, 167, 70, 111, 217, 53, 174, 250, 108, 118, 71, 75, 83,\n\t\t71, 119, 106, 93, 121, 153, 114, 229, 231, 104, 94, 31, 45,\n\t\t218, 124, 105, 69, 133, 141, 115, 216, 181, 240, 172, 142,\n\t\t69, 151, 102, 55, 135, 53, 187, 179, 162, 34, 209, 204, 221,\n\t\t184, 194, 37, 150, 157, 63, 183, 195, 212, 183, 213, 220,\n\t\t211, 20, 162, 52, 100, 128, 60, 133, 179, 177, 92, 130, 66,\n\t\t211, 199, 97, 207, 20, 41, 157, 237, 235, 21, 3, 218, 61,\n\t\t107, 149, 168, 205, 183, 185, 108, 122, 239, 241, 118, 74,\n\t\t163, 89, 215, 213, 57, 107, 233, 22, 220, 6, 141, 205, 191,\n\t\t196, 194, 130, 171, 91, 193, 39, 135, 102, 87, 68, 3, 138,\n\t\t115, 11, 149, 115, 78, 174, 156, 182, 56, 149, 182, 168, 52,\n\t\t219, 48, 90, 185, 245, 251, 236, 191, 75, 161, 57, 21, 78,\n\t\t101, 29, 199, 181, 217, 237, 109, 28, 183, 78, 113, 214, 119,\n\t\t151, 125, 84, 113, 26, 7, 8, 218, 156, 74, 209, 158, 224,\n\t\t92, 204, 195, 153, 121, 222, 164, 99, 63, 179, 188, 125, 34,\n\t\t117, 150, 148, 212, 217, 194, 233, 235, 168, 96, 208, 48,\n\t\t1, 113, 248, 3, 209, 88, 196, 167, 53, 116, 70, 120, 150,\n\t\t72, 38, 184, 70, 167, 210, 211, 214, 83, 219, 208, 86, 213,\n\t\t32, 101, 15, 73, 13, 85, 109, 118, 165, 94, 79, 82, 156, 235,\n\t\t76, 200, 178, 95, 243, 6, 92, 122, 163, 41, 206, 21, 240,\n\t\t70, 104, 88, 113, 118, 117, 205, 9, 179, 184, 191, 175, 166,\n\t\t82, 146, 36, 169, 178, 166, 143, 115, 70, 203, 89, 120, 78,\n\t\t87, 151, 69, 127, 26, 111, 151, 133, 89, 115, 220, 129, 128,\n\t\t123, 206, 44, 65, 174, 68, 137, 127, 160, 15, 173, 72, 234,\n\t\t82, 94, 67, 196, 178, 186, 228, 77, 152, 6, 13, 76, 150, 156,\n\t\t181, 240, 153, 199, 70, 22, 156, 234, 188, 5, 53, 158, 116,\n\t\t224, 226, 149, 252, 121, 139, 45, 117, 129, 254, 64, 221,\n\t\t150, 210, 243, 22, 169, 210, 227, 22, 66, 254, 180, 133, 160,\n\t\t11, 1, 194, 140, 243, 22, 185, 19, 185, 103, 57, 59, 237,\n\t\t69, 4, 73, 0, 53, 196, 20, 242, 43, 124, 148, 103, 124, 11,\n\t\t151, 236, 161, 104, 15, 239, 79, 36, 19, 6, 237, 210, 181,\n\t\t73, 173, 134, 11, 180, 119, 180, 39, 123, 136, 14, 133, 69,\n\t\t81, 224, 24, 231, 140, 45, 90, 114, 198, 252, 57, 77, 178,\n\t\t218, 116, 82, 202, 83, 60, 179, 185, 88, 252, 90, 133, 108,\n\t\t14, 27, 199, 73, 118, 231, 165, 244, 116, 184, 73, 149, 155,\n\t\t230, 204, 63, 99, 201, 162, 152, 147, 99, 156, 32, 138, 39,\n\t\t165, 92, 201, 185, 100, 70, 202, 181, 113, 27, 115, 216, 73,\n\t\t106, 190, 212, 144, 195, 79, 88, 103, 224, 3, 166, 205, 1,\n\t\t134, 188, 183, 144, 18, 181, 212, 67, 73, 157, 154, 38, 2,\n\t\t244, 15, 111, 54, 147, 246, 218, 203, 29, 222, 33, 183, 52,\n\t\t119, 254, 37, 85, 221, 10, 107, 19, 188, 244, 13, 187, 55,\n\t\t157, 205, 120, 215, 121, 133, 54, 166, 116, 87, 173, 62, 163,\n\t\t221, 229, 25, 42, 115, 88, 123, 149, 249, 189, 196, 150, 147,\n\t\t119, 19, 189, 250, 234, 108, 165, 112, 36, 172, 18, 239, 211,\n\t\t106, 137, 103, 177, 168, 21, 241, 5, 252, 197, 155, 141, 45,\n\t\t27, 31, 147, 206, 36, 206, 105, 175, 33, 190, 33, 178, 172,\n\t\t214, 193, 108, 182, 37, 162, 106, 43, 101, 165, 217, 225,\n\t\t199, 54, 74, 54, 85, 92, 98, 179, 49, 71, 237, 178, 72, 3,\n\t\t79, 53, 118, 39, 71, 103, 90, 182, 59, 93, 79, 124, 1, 209,\n\t\t211, 159, 36, 40, 112, 80, 157, 189, 207, 60, 80, 240, 137,\n\t\t139, 13, 219, 110, 83, 77, 245, 236, 116, 80, 51, 18, 71,\n\t\t180, 224, 213, 169, 139, 87, 45, 52, 22, 160, 187, 102, 118,\n\t\t83, 205, 218, 130, 61, 147, 75, 209, 136, 165, 147, 26, 222,\n\t\t218, 117, 22, 94, 38, 139, 116, 75, 86, 20, 38, 95, 157, 181,\n\t\t204, 184, 148, 121, 248, 38, 45, 109, 145, 164, 45, 210, 176,\n\t\t212, 39, 73, 125, 18, 135, 247, 210, 65, 141, 142, 104, 65,\n\t\t247, 238, 221, 90, 48, 184, 178, 228, 152, 184, 174, 7, 6,\n\t\t243, 186, 208, 31, 232, 5, 250, 170, 113, 206, 126, 46, 144,\n\t\t247, 66, 13, 88, 86, 241, 22, 178, 60, 101, 58, 106, 232,\n\t\t20, 105, 182, 225, 134, 206, 104, 180, 243, 215, 198, 17,\n\t\t62, 254, 99, 3, 188, 232, 100, 27, 118, 60, 96, 70, 127, 182,\n\t\t85, 143, 94, 244, 149, 155, 151, 204, 215, 11, 53, 220, 192,\n\t\t156, 34, 63, 240, 49, 222, 200, 101, 59, 54, 232, 209, 173,\n\t\t63, 51, 163, 182, 179, 111, 250, 138, 57, 22, 5, 191, 145,\n\t\t26, 68, 13, 201, 124, 198, 254, 104, 172, 46, 204, 146, 230,\n\t\t9, 164, 90, 42, 108, 85, 229, 215, 106, 126, 52, 204, 190,\n\t\t183, 101, 67, 110, 245, 242, 194, 161, 164, 203, 213, 14,\n\t\t99, 195, 228, 102, 227, 62, 189, 217, 221, 205, 223, 99, 28,\n\t\t77, 186, 135, 31, 52, 54, 99, 204, 95, 126, 255, 220, 164,\n\t\t129, 205, 136, 3, 245, 26, 51, 206, 116, 26, 71, 201, 120,\n\t\t159, 102, 42, 53, 49, 67, 91, 40, 8, 182, 134, 237, 199, 95,\n\t\t77, 204, 195, 248, 136, 175, 61, 192, 165, 66, 110, 183, 75,\n\t\t188, 112, 209, 133, 65, 123, 165, 171, 204, 187, 76, 19, 42,\n\t\t184, 112, 85, 67, 67, 85, 250, 194, 69, 23, 138, 46, 183,\n\t\t59, 85, 55, 112, 221, 117, 3, 199, 151, 150, 125, 201, 233,\n\t\t103, 189, 157, 110, 119, 83, 216, 29, 241, 116, 158, 225,\n\t\t118, 55, 84, 13, 86, 53, 116, 246, 50, 191, 243, 75, 123,\n\t\t169, 178, 114, 241, 224, 98, 88, 54, 63, 155, 33, 91, 161,\n\t\t193, 216, 218, 53, 63, 186, 80, 208, 12, 77, 22, 83, 216,\n\t\t172, 141, 69, 19, 198, 135, 29, 44, 93, 47, 153, 240, 171,\n\t\t20, 168, 33, 70, 63, 107, 113, 10, 242, 194, 50, 187, 166,\n\t\t244, 184, 109, 65, 113, 206, 28, 49, 104, 115, 247, 40, 154,\n\t\t189, 108, 161, 44, 56, 91, 102, 230, 58, 171, 138, 114, 211,\n\t\t69, 81, 133, 233, 133, 153, 146, 47, 92, 229, 156, 83, 154,\n\t\t219, 218, 90, 84, 85, 149, 115, 218, 143, 231, 118, 196, 44,\n\t\t234, 172, 227, 150, 159, 103, 250, 79, 161, 200, 108, 227,\n\t\t196, 148, 113, 142, 37, 217, 67, 73, 125, 64, 25, 175, 235,\n\t\t225, 142, 25, 222, 143, 121, 42, 205, 161, 170, 108, 141,\n\t\t76, 101, 78, 73, 177, 187, 35, 149, 164, 80, 228, 236, 50,\n\t\t65, 10, 214, 158, 37, 72, 193, 202, 160, 211, 33, 126, 177,\n\t\t172, 42, 59, 56, 205, 222, 130, 6, 229, 157, 242, 84, 202,\n\t\t77, 106, 89, 131, 80, 30, 82, 235, 109, 36, 139, 187, 106,\n\t\t101, 121, 142, 183, 186, 169, 92, 146, 43, 203, 10, 31, 34,\n\t\t120, 218, 164, 210, 197, 112, 71, 145, 64, 15, 224, 237, 136,\n\t\t198, 162, 137, 142, 246, 64, 13, 153, 62, 244, 44, 15, 125,\n\t\t178, 133, 244, 159, 201, 161, 29, 51, 188, 99, 243, 40, 59,\n\t\t231, 139, 162, 195, 25, 172, 12, 74, 194, 89, 181, 65, 73,\n\t\t40, 59, 59, 66, 10, 53, 198, 120, 69, 114, 150, 145, 188,\n\t\t166, 172, 170, 138, 190, 146, 135, 88, 169, 52, 160, 160,\n\t\t122, 89, 42, 111, 170, 246, 206, 145, 229, 218, 93, 162, 76,\n\t\t182, 250, 250, 136, 208, 80, 166, 54, 201, 149, 158, 178,\n\t\t74, 109, 250, 67, 9, 7, 141, 30, 2, 182, 92, 206, 242, 171,\n\t\t183, 198, 218, 176, 102, 39, 252, 1, 227, 231, 11, 26, 142,\n\t\t216, 230, 231, 14, 98, 45, 20, 51, 14, 49, 249, 3, 157, 241,\n\t\t132, 119, 38, 208, 214, 26, 219, 146, 31, 180, 72, 125, 189,\n\t\t141, 57, 249, 247, 27, 51, 74, 23, 230, 133, 143, 53, 154,\n\t\t211, 226, 112, 58, 254, 217, 188, 152, 118, 201, 60, 220,\n\t\t214, 88, 7, 58, 121, 198, 235, 107, 173, 135, 204, 163, 117,\n\t\t129, 26, 50, 193, 143, 41, 164, 255, 140, 181, 25, 245, 78,\n\t\t27, 104, 12, 208, 243, 196, 97, 245, 191, 52, 110, 222, 127,\n\t\t125, 102, 102, 236, 229, 55, 0, 246, 252, 119, 75, 98, 29,\n\t\t134, 169, 40, 218, 68, 198, 169, 14, 227, 116, 174, 86, 75,\n\t\t126, 157, 88, 196, 105, 173, 177, 51, 241, 218, 242, 31, 234,\n\t\t245, 253, 112, 185, 105, 171, 216, 204, 216, 102, 195, 86,\n\t\t209, 101, 236, 103, 80, 159, 97, 51, 232, 51, 205, 31, 119,\n\t\t50, 141, 221, 105, 152, 63, 78, 106, 51, 191, 243, 155, 12,\n\t\t24, 92, 73, 151, 104, 216, 116, 91, 249, 182, 191, 244, 190,\n\t\t77, 90, 123, 194, 255, 227, 54, 243, 190, 108, 177, 100, 65,\n\t\t130, 10, 148, 182, 167, 183, 47, 188, 111, 165, 171, 222,\n\t\t23, 162, 147, 199, 54, 191, 11, 20, 96, 157, 166, 81, 186,\n\t\t154, 98, 165, 227, 170, 183, 109, 237, 6, 157, 174, 81, 107,\n\t\t83, 232, 180, 173, 138, 64, 110, 31, 101, 104, 15, 28, 198,\n\t\t190, 122, 5, 194, 104, 194, 92, 36, 141, 239, 32, 68, 122,\n\t\t12, 10, 148, 236, 240, 107, 44, 210, 16, 137, 198, 106, 168,\n\t\t129, 103, 145, 30, 114, 248, 125, 26, 139, 36, 226, 49, 166,\n\t\t5, 34, 209, 120, 178, 131, 15, 116, 40, 20, 142, 6, 18, 201,\n\t\t14, 133, 26, 58, 252, 129, 22, 162, 254, 221, 174, 182, 51,\n\t\t218, 190, 109, 123, 218, 102, 123, 154, 22, 173, 87, 35, 157,\n\t\t23, 100, 255, 94, 175, 172, 247, 95, 64, 215, 137, 226, 77,\n\t\t54, 219, 123, 182, 155, 244, 103, 163, 81, 110, 155, 145,\n\t\t147, 125, 216, 40, 71, 161, 222, 129, 129, 189, 198, 153,\n\t\t172, 145, 213, 237, 238, 101, 151, 180, 175, 238, 88, 246,\n\t\t80, 40, 20, 10, 213, 245, 212, 165, 106, 194, 117, 61, 117,\n\t\t117, 159, 236, 29, 24, 88, 170, 167, 223, 166, 151, 128, 121,\n\t\t150, 252, 121, 206, 65, 63, 70, 16, 245, 186, 228, 166, 211,\n\t\t170, 24, 211, 71, 113, 33, 69, 19, 201, 30, 157, 41, 168,\n\t\t38, 151, 64, 254, 108, 204, 9, 81, 171, 170, 233, 143, 254,\n\t\t218, 219, 217, 224, 253, 181, 92, 86, 93, 181, 180, 158, 217,\n\t\t28, 75, 93, 189, 203, 28, 114, 182, 219, 60, 21, 115, 65,\n\t\t253, 57, 193, 234, 50, 249, 215, 222, 134, 78, 239, 171, 13,\n\t\t231, 87, 87, 105, 34, 39, 59, 150, 245, 186, 150, 58, 108,\n\t\t217, 207, 155, 7, 98, 44, 155, 64, 134, 3, 61, 106, 217, 143,\n\t\t146, 232, 195, 42, 96, 166, 143, 253, 76, 63, 229, 153, 241,\n\t\t122, 11, 191, 189, 5, 167, 68, 29, 226, 90, 242, 171, 92,\n\t\t105, 220, 240, 221, 53, 15, 71, 76, 127, 65, 96, 70, 184,\n\t\t187, 49, 24, 108, 172, 254, 92, 159, 42, 138, 173, 162, 168,\n\t\t138, 66, 32, 37, 136, 30, 65, 156, 153, 64, 221, 167, 244,\n\t\t87, 46, 10, 14, 152, 150, 145, 179, 251, 220, 162, 216, 38,\n\t\t136, 170, 40, 250, 23, 138, 162, 91, 220, 105, 86, 37, 184,\n\t\t5, 65, 79, 240, 8, 160, 220, 187, 185, 103, 57, 7, 165, 225,\n\t\t54, 164, 92, 149, 12, 95, 195, 232, 2, 157, 81, 119, 208,\n\t\t81, 183, 228, 122, 170, 82, 234, 119, 62, 229, 146, 220, 148,\n\t\t174, 113, 61, 149, 125, 71, 149, 133, 46, 65, 122, 229, 41,\n\t\t87, 141, 37, 179, 153, 182, 42, 175, 121, 182, 175, 193, 220,\n\t\t164, 52, 100, 164, 14, 107, 1, 38, 79, 177, 247, 16, 233,\n\t\t140, 248, 40, 149, 174, 246, 102, 7, 189, 213, 105, 195, 203,\n\t\t127, 171, 183, 58, 139, 106, 111, 127, 181, 119, 196, 91,\n\t\t157, 26, 30, 106, 219, 234, 173, 174, 246, 110, 109, 99, 162,\n\t\t248, 155, 106, 111, 127, 191, 183, 186, 77, 79, 104, 11, 133,\n\t\t76, 127, 144, 231, 13, 123, 210, 252, 130, 197, 55, 127, 204,\n\t\t35, 239, 238, 80, 77, 29, 157, 165, 42, 86, 71, 209, 14, 129,\n\t\t117, 76, 132, 6, 87, 48, 141, 173, 112, 73, 238, 142, 171,\n\t\t170, 165, 21, 140, 173, 144, 170, 175, 234, 112, 203, 210,\n\t\t169, 147, 253, 133, 160, 228, 50, 74, 72, 114, 105, 137, 146,\n\t\t228, 252, 247, 102, 134, 105, 196, 216, 47, 214, 165, 200,\n\t\t51, 208, 7, 36, 44, 90, 108, 47, 253, 150, 84, 19, 181, 112,\n\t\t177, 68, 199, 108, 58, 253, 23, 166, 98, 10, 177, 105, 241,\n\t\t238, 150, 120, 52, 26, 143, 210, 191, 27, 143, 80, 101, 212,\n\t\t43, 47, 178, 105, 33, 205, 91, 121, 239, 234, 69, 139, 86,\n\t\t47, 138, 180, 45, 54, 125, 137, 23, 183, 137, 117, 75, 234,\n\t\t126, 83, 211, 232, 88, 36, 123, 163, 149, 169, 202, 35, 81,\n\t\t227, 21, 227, 183, 36, 90, 25, 146, 189, 129, 217, 117, 46,\n\t\t239, 34, 253, 181, 43, 22, 183, 85, 235, 210, 104, 117, 219,\n\t\t98, 183, 91, 118, 159, 17, 241, 202, 161, 202, 104, 126, 205,\n\t\t234, 99, 222, 128, 101, 121, 207, 143, 176, 57, 214, 166,\n\t\t105, 74, 201, 83, 90, 93, 255, 238, 52, 188, 216, 19, 230,\n\t\t104, 155, 134, 173, 158, 60, 85, 212, 139, 251, 252, 102,\n\t\t134, 254, 62, 157, 221, 220, 220, 219, 124, 219, 170, 230,\n\t\t40, 243, 18, 137, 54, 38, 251, 200, 231, 235, 246, 45, 246,\n\t\t249, 28, 14, 70, 146, 95, 244, 95, 251, 126, 153, 78, 253,\n\t\t117, 98, 115, 110, 107, 238, 109, 94, 117, 91, 115, 148, 9,\n\t\t206, 170, 74, 145, 41, 190, 249, 62, 191, 111, 177, 175, 219,\n\t\t231, 176, 219, 133, 50, 201, 231, 116, 239, 126, 255, 108,\n\t\t209, 168, 194, 242, 151, 48, 230, 45, 152, 183, 117, 24, 202,\n\t\t95, 60, 145, 140, 91, 219, 237, 198, 174, 169, 198, 85, 86,\n\t\t183, 84, 45, 235, 204, 110, 237, 30, 72, 204, 190, 116, 81,\n\t\t243, 82, 95, 121, 117, 99, 215, 239, 29, 245, 137, 154, 206,\n\t\t101, 3, 221, 173, 75, 85, 135, 109, 209, 165, 205, 245, 238,\n\t\t174, 198, 50, 131, 238, 141, 231, 210, 180, 223, 248, 126,\n\t\t77, 67, 97, 119, 115, 33, 117, 150, 110, 251, 232, 200, 202,\n\t\t58, 98, 230, 25, 37, 70, 63, 240, 55, 206, 206, 190, 50, 187,\n\t\t209, 255, 17, 227, 187, 91, 7, 244, 155, 240, 228, 174, 54,\n\t\t62, 197, 55, 71, 206, 57, 39, 242, 220, 3, 6, 71, 49, 110,\n\t\t15, 92, 115, 158, 224, 28, 25, 113, 10, 230, 218, 164, 31,\n\t\t211, 8, 98, 6, 133, 211, 229, 115, 99, 165, 48, 255, 244,\n\t\t7, 226, 146, 177, 162, 15, 209, 4, 146, 137, 246, 128, 159,\n\t\t229, 15, 35, 230, 109, 200, 228, 127, 84, 20, 203, 151, 148,\n\t\t111, 168, 96, 198, 231, 227, 24, 95, 87, 199, 179, 198, 174,\n\t\t174, 254, 46, 86, 177, 161, 124, 73, 185, 40, 102, 31, 152,\n\t\t214, 85, 188, 233, 71, 69, 161, 162, 226, 230, 10, 79, 153,\n\t\t81, 134, 234, 234, 200, 120, 175, 204, 83, 113, 115, 69, 133,\n\t\t32, 46, 49, 138, 101, 255, 97, 105, 54, 182, 194, 62, 168,\n\t\t7, 17, 52, 3, 121, 125, 211, 52, 194, 123, 52, 127, 135, 87,\n\t\t39, 36, 37, 167, 22, 3, 6, 13, 233, 104, 15, 80, 74, 113,\n\t\t102, 141, 175, 201, 244, 213, 5, 118, 26, 182, 27, 51, 186,\n\t\t243, 227, 108, 144, 119, 50, 195, 42, 67, 67, 78, 37, 123,\n\t\t40, 80, 71, 43, 243, 159, 228, 210, 83, 206, 97, 78, 126,\n\t\t144, 153, 180, 132, 94, 160, 23, 208, 14, 4, 76, 143, 210,\n\t\t64, 30, 109, 19, 6, 13, 215, 81, 213, 112, 180, 140, 91, 8,\n\t\t108, 160, 185, 153, 30, 110, 106, 162, 230, 95, 132, 47, 173,\n\t\t171, 171, 251, 161, 63, 229, 247, 145, 255, 11, 146, 43, 224,\n\t\t114, 109, 21, 69, 129, 253, 80, 85, 149, 70, 245, 151, 149,\n\t\t29, 125, 21, 187, 140, 212, 93, 115, 110, 43, 155, 243, 201,\n\t\t57, 191, 9, 135, 195, 151, 213, 61, 19, 160, 128, 127, 161,\n\t\t255, 62, 151, 203, 47, 185, 238, 19, 69, 65, 120, 218, 61,\n\t\t91, 85, 213, 87, 171, 150, 117, 86, 238, 150, 36, 191, 75,\n\t\t218, 61, 199, 154, 199, 52, 141, 24, 103, 117, 27, 13, 59,\n\t\t135, 167, 196, 229, 61, 192, 89, 51, 229, 141, 155, 31, 22,\n\t\t49, 55, 6, 58, 233, 123, 74, 193, 200, 32, 105, 202, 151,\n\t\t18, 13, 13, 137, 134, 17, 187, 205, 110, 127, 83, 146, 142,\n\t\t74, 212, 163, 104, 217, 241, 188, 9, 66, 201, 126, 190, 65,\n\t\t47, 64, 146, 221, 110, 179, 75, 235, 36, 233, 127, 195, 167,\n\t\t218, 102, 156, 211, 79, 211, 102, 139, 191, 254, 203, 156,\n\t\t245, 127, 114, 82, 233, 159, 242, 65, 20, 157, 79, 98, 198,\n\t\t41, 13, 93, 235, 56, 27, 40, 179, 228, 53, 190, 176, 59, 98,\n\t\t241, 241, 127, 17, 202, 65, 131, 209, 54, 26, 59, 13, 230,\n\t\t207, 60, 20, 118, 242, 97, 164, 162, 48, 109, 48, 74, 142,\n\t\t24, 47, 108, 54, 89, 181, 240, 207, 187, 2, 222, 248, 86,\n\t\t34, 12, 223, 190, 5, 88, 135, 141, 216, 130, 237, 128, 55,\n\t\t62, 159, 58, 147, 17, 99, 31, 192, 60, 40, 154, 119, 60, 107,\n\t\t162, 112, 39, 139, 247, 80, 103, 60, 18, 54, 114, 147, 38,\n\t\t205, 154, 118, 27, 13, 119, 26, 219, 10, 29, 237, 134, 135,\n\t\t171, 254, 62, 215, 89, 216, 82, 215, 139, 168, 249, 47, 71,\n\t\t197, 162, 255, 234, 216, 216, 36, 149, 136, 35, 38, 240, 130,\n\t\t232, 99, 130, 36, 169, 146, 180, 88, 162, 202, 10, 209, 225,\n\t\t16, 4, 65, 228, 149, 202, 178, 170, 242, 114, 138, 73, 82,\n\t\t175, 100, 119, 240, 78, 198, 84, 183, 67, 176, 147, 157, 231,\n\t\t37, 187, 32, 75, 210, 25, 18, 239, 81, 212, 138, 114, 205,\n\t\t45, 252, 79, 134, 53, 46, 53, 58, 57, 18, 68, 94, 16, 52,\n\t\t94, 26, 144, 4, 73, 250, 138, 175, 90, 117, 8, 118, 129, 103,\n\t\t76, 240, 106, 154, 187, 92, 182, 73, 162, 203, 117, 175, 83,\n\t\t228, 109, 130, 40, 112, 76, 96, 50, 113, 122, 146, 93, 224,\n\t\t53, 187, 87, 42, 171, 20, 25, 45, 255, 231, 147, 161, 227,\n\t\t247, 171, 28, 232, 27, 134, 125, 112, 57, 208, 80, 87, 218,\n\t\t125, 214, 161, 15, 180, 125, 154, 172, 215, 80, 193, 25, 41,\n\t\t22, 49, 93, 182, 106, 108, 255, 15, 109, 127, 2, 102, 199,\n\t\t85, 222, 9, 227, 231, 212, 118, 106, 57, 85, 183, 234, 214,\n\t\t118, 247, 190, 75, 223, 165, 215, 123, 251, 110, 213, 146,\n\t\t90, 221, 87, 173, 93, 109, 75, 45, 211, 90, 12, 70, 110, 108,\n\t\t99, 9, 35, 76, 179, 218, 152, 173, 77, 2, 8, 240, 128, 12,\n\t\t249, 123, 12, 97, 198, 77, 66, 136, 39, 127, 24, 12, 195,\n\t\t176, 77, 128, 134, 100, 6, 127, 12, 97, 196, 192, 16, 18,\n\t\t152, 140, 152, 143, 228, 113, 242, 229, 73, 68, 66, 18, 51,\n\t\t9, 87, 223, 83, 231, 84, 221, 165, 187, 37, 236, 144, 79,\n\t\t143, 186, 234, 212, 169, 186, 85, 103, 95, 222, 247, 247,\n\t\t254, 222, 45, 114, 59, 219, 114, 224, 181, 62, 143, 148, 244,\n\t\t39, 111, 148, 21, 39, 61, 58, 238, 204, 223, 33, 161, 41,\n\t\t30, 113, 181, 116, 97, 236, 248, 195, 234, 202, 126, 123,\n\t\t172, 152, 212, 37, 52, 45, 200, 249, 76, 170, 152, 222, 232,\n\t\t91, 159, 234, 78, 218, 46, 101, 92, 77, 108, 215, 76, 66,\n\t\t170, 196, 56, 78, 58, 158, 127, 125, 44, 183, 183, 35, 104,\n\t\t209, 132, 158, 241, 31, 100, 84, 203, 141, 57, 137, 1, 158,\n\t\t146, 58, 88, 4, 192, 203, 15, 130, 1, 123, 83, 145, 213, 168,\n\t\t207, 195, 29, 111, 104, 16, 229, 134, 87, 41, 87, 15, 159,\n\t\t74, 11, 178, 44, 188, 219, 63, 164, 111, 137, 229, 163, 41,\n\t\t255, 131, 239, 34, 151, 149, 67, 221, 129, 126, 60, 119, 252,\n\t\t232, 39, 250, 9, 255, 196, 9, 99, 52, 249, 241, 129, 235,\n\t\t218, 161, 220, 92, 255, 114, 16, 27, 215, 103, 115, 216, 46,\n\t\t153, 109, 21, 108, 175, 85, 176, 249, 224, 60, 168, 177, 126,\n\t\t106, 99, 99, 3, 174, 251, 135, 45, 178, 215, 213, 213, 141,\n\t\t240, 127, 128, 193, 163, 242, 250, 112, 204, 152, 0, 192,\n\t\t172, 194, 5, 56, 2, 35, 144, 158, 17, 31, 134, 41, 107, 158,\n\t\t191, 230, 244, 252, 121, 3, 121, 101, 116, 85, 207, 102, 117,\n\t\t61, 155, 221, 72, 182, 90, 201, 100, 171, 5, 15, 6, 129, 187,\n\t\t36, 169, 251, 107, 82, 66, 62, 37, 73, 240, 162, 148, 144,\n\t\t247, 156, 105, 156, 134, 171, 228, 89, 93, 95, 37, 143, 36,\n\t\t147, 255, 49, 56, 255, 131, 156, 240, 159, 150, 78, 201, 9,\n\t\t255, 105, 233, 107, 167, 27, 103, 2, 93, 2, 149, 159, 248,\n\t\t115, 250, 220, 0, 154, 147, 0, 4, 10, 244, 216, 183, 134,\n\t\t74, 83, 218, 134, 52, 12, 103, 245, 240, 236, 181, 202, 5,\n\t\t155, 89, 243, 139, 183, 54, 187, 60, 187, 62, 187, 60, 171,\n\t\t147, 34, 233, 88, 169, 73, 75, 187, 71, 235, 78, 146, 113,\n\t\t10, 222, 65, 78, 235, 247, 76, 174, 146, 138, 168, 204, 206,\n\t\t86, 252, 63, 250, 100, 202, 170, 105, 247, 104, 214, 197,\n\t\t181, 84, 127, 16, 252, 12, 190, 103, 141, 114, 45, 2, 192,\n\t\t172, 19, 249, 169, 69, 120, 100, 75, 126, 73, 110, 171, 177,\n\t\t70, 179, 84, 104, 213, 219, 173, 66, 40, 136, 226, 91, 121,\n\t\t193, 175, 60, 203, 97, 8, 189, 193, 207, 55, 253, 163, 222,\n\t\t41, 38, 147, 197, 206, 95, 19, 66, 51, 184, 154, 44, 118,\n\t\t58, 69, 184, 78, 153, 18, 76, 21, 118, 84, 179, 251, 84, 178,\n\t\t184, 81, 76, 94, 243, 23, 27, 203, 23, 58, 197, 228, 213,\n\t\t78, 178, 72, 184, 157, 192, 25, 184, 11, 2, 160, 80, 45, 122,\n\t\t136, 233, 30, 129, 140, 42, 75, 15, 11, 186, 240, 176, 36,\n\t\t67, 16, 151, 30, 22, 132, 135, 165, 56, 213, 117, 33, 176,\n\t\t10, 119, 65, 137, 216, 55, 229, 250, 187, 8, 152, 235, 118,\n\t\t251, 63, 90, 29, 254, 141, 223, 86, 54, 225, 237, 228, 59,\n\t\t70, 127, 35, 178, 25, 62, 5, 247, 13, 254, 56, 208, 169, 129,\n\t\t50, 248, 119, 244, 55, 212, 120, 135, 174, 60, 194, 159, 44,\n\t\t12, 166, 113, 112, 191, 69, 251, 192, 246, 210, 52, 10, 70,\n\t\t206, 40, 24, 195, 237, 30, 174, 111, 107, 243, 16, 92, 7,\n\t\t254, 31, 0, 12, 80, 175, 63, 11, 27, 240, 82, 96, 31, 54,\n\t\t64, 1, 86, 12, 129, 184, 237, 186, 59, 246, 87, 58, 86, 30,\n\t\t64, 22, 122, 64, 193, 48, 162, 96, 61, 188, 222, 200, 40,\n\t\t15, 32, 244, 128, 146, 121, 153, 146, 33, 65, 146, 47, 242,\n\t\t78, 176, 225, 231, 107, 240, 141, 131, 111, 233, 253, 144,\n\t\t60, 15, 174, 194, 38, 73, 3, 209, 142, 245, 202, 219, 29,\n\t\t248, 193, 213, 222, 15, 152, 30, 254, 99, 4, 236, 6, 96, 192,\n\t\t10, 208, 31, 131, 92, 199, 205, 112, 141, 250, 60, 231, 181,\n\t\t81, 126, 154, 41, 4, 218, 192, 96, 108, 70, 2, 202, 107, 12,\n\t\t252, 123, 22, 209, 2, 66, 108, 238, 13, 140, 171, 57, 182,\n\t\t44, 69, 245, 40, 214, 217, 215, 255, 119, 209, 213, 146, 240,\n\t\t161, 166, 68, 13, 53, 165, 153, 55, 195, 164, 230, 66, 200,\n\t\t114, 220, 55, 253, 18, 252, 38, 199, 50, 241, 179, 76, 84,\n\t\t82, 5, 30, 97, 9, 179, 167, 94, 170, 72, 246, 237, 21, 132,\n\t\t77, 255, 182, 137, 81, 233, 69, 182, 164, 4, 235, 167, 167,\n\t\t225, 207, 224, 166, 223, 242, 189, 1, 100, 248, 60, 108, 100,\n\t\t160, 6, 253, 137, 117, 1, 146, 41, 152, 34, 51, 66, 42, 140,\n\t\t239, 62, 205, 35, 92, 195, 133, 151, 180, 207, 95, 134, 143,\n\t\t158, 191, 243, 176, 44, 229, 69, 169, 190, 120, 244, 252,\n\t\t249, 163, 19, 199, 226, 119, 241, 8, 93, 69, 252, 211, 24,\n\t\t31, 47, 79, 192, 71, 255, 224, 209, 142, 36, 229, 69, 113,\n\t\t242, 252, 251, 207, 151, 115, 136, 175, 81, 188, 22, 8, 246,\n\t\t107, 222, 32, 191, 75, 115, 1, 150, 209, 176, 101, 64, 125,\n\t\t4, 122, 229, 109, 88, 40, 178, 27, 128, 63, 67, 232, 77, 162,\n\t\t137, 92, 132, 132, 202, 73, 65, 146, 94, 35, 37, 165, 105,\n\t\t122, 18, 78, 86, 120, 98, 35, 128, 222, 76, 49, 90, 252, 171,\n\t\t252, 235, 159, 33, 11, 189, 25, 33, 23, 89, 136, 247, 127,\n\t\t146, 148, 94, 35, 73, 211, 244, 36, 156, 172, 8, 254, 45,\n\t\t83, 124, 83, 240, 196, 171, 120, 138, 197, 188, 126, 125,\n\t\t19, 30, 32, 124, 211, 126, 155, 70, 172, 64, 26, 1, 165, 188,\n\t\t160, 12, 37, 17, 8, 43, 154, 134, 158, 66, 26, 214, 216, 233,\n\t\t7, 16, 22, 96, 22, 34, 89, 184, 140, 53, 118, 28, 102, 99,\n\t\t184, 123, 5, 71, 241, 215, 68, 140, 174, 9, 50, 111, 42, 111,\n\t\t235, 233, 94, 215, 9, 191, 100, 11, 28, 4, 167, 182, 179,\n\t\t75, 122, 118, 129, 138, 38, 182, 79, 111, 141, 80, 82, 81,\n\t\t104, 185, 91, 126, 149, 219, 114, 77, 192, 237, 100, 180,\n\t\t58, 82, 115, 35, 223, 168, 248, 33, 18, 87, 249, 70, 196,\n\t\t173, 109, 214, 142, 244, 238, 195, 229, 94, 112, 53, 60, 171,\n\t\t230, 114, 109, 119, 196, 237, 244, 175, 59, 110, 100, 119,\n\t\t173, 86, 91, 238, 199, 244, 15, 128, 226, 9, 40, 94, 108,\n\t\t138, 96, 222, 136, 229, 133, 128, 132, 124, 185, 54, 141,\n\t\t8, 3, 92, 158, 70, 148, 60, 98, 70, 68, 116, 132, 25, 200,\n\t\t251, 91, 62, 42, 153, 46, 151, 230, 161, 67, 218, 93, 139,\n\t\t233, 64, 44, 38, 90, 94, 156, 195, 44, 199, 137, 162, 162,\n\t\t69, 162, 210, 72, 197, 98, 49, 23, 247, 154, 73, 17, 67, 251,\n\t\t125, 119, 152, 9, 243, 142, 247, 117, 255, 71, 196, 208, 245,\n\t\t106, 46, 62, 46, 242, 56, 238, 242, 156, 130, 164, 223, 22,\n\t\t101, 148, 82, 11, 19, 8, 33, 17, 43, 88, 22, 249, 114, 30,\n\t\t161, 137, 81, 45, 133, 100, 241, 238, 135, 228, 168, 159,\n\t\t234, 168, 252, 208, 131, 154, 246, 182, 92, 53, 29, 83, 99,\n\t\t18, 198, 138, 132, 6, 248, 127, 108, 144, 166, 252, 63, 166,\n\t\t221, 51, 10, 109, 215, 41, 74, 172, 144, 23, 66, 126, 35,\n\t\t183, 97, 15, 218, 136, 218, 150, 227, 215, 29, 153, 222, 214,\n\t\t9, 205, 239, 201, 232, 177, 232, 73, 89, 187, 228, 230, 198,\n\t\t137, 52, 112, 227, 66, 64, 52, 122, 73, 123, 181, 191, 23,\n\t\t92, 68, 80, 124, 134, 242, 76, 103, 179, 254, 134, 241, 13,\n\t\t68, 32, 248, 23, 79, 147, 29, 97, 141, 144, 5, 151, 132, 85,\n\t\t180, 136, 66, 125, 228, 87, 136, 189, 179, 74, 56, 154, 129,\n\t\t219, 106, 16, 184, 3, 93, 42, 179, 77, 186, 154, 70, 2, 170,\n\t\t217, 133, 230, 76, 169, 92, 242, 122, 240, 42, 10, 183, 90,\n\t\t221, 224, 13, 217, 152, 55, 164, 40, 191, 122, 207, 210, 177,\n\t\t243, 147, 197, 200, 70, 164, 56, 73, 12, 223, 167, 23, 37,\n\t\t77, 170, 10, 165, 146, 44, 38, 52, 45, 33, 194, 236, 225,\n\t\t151, 157, 63, 186, 88, 159, 168, 65, 88, 155, 168, 191, 95,\n\t\t210, 164, 197, 105, 68, 172, 166, 193, 224, 30, 217, 95, 147,\n\t\t156, 234, 179, 144, 11, 161, 229, 54, 89, 95, 246, 70, 64,\n\t\t207, 38, 248, 127, 202, 237, 218, 114, 92, 167, 238, 213,\n\t\t73, 100, 26, 90, 196, 108, 144, 48, 94, 250, 163, 102, 96,\n\t\t70, 72, 52, 2, 229, 128, 191, 252, 89, 82, 44, 223, 104, 31,\n\t\t75, 152, 221, 15, 153, 137, 78, 205, 112, 115, 211, 57, 39,\n\t\t138, 149, 212, 238, 52, 228, 96, 106, 84, 27, 17, 33, 7, 69,\n\t\t179, 86, 51, 73, 32, 171, 142, 166, 40, 205, 249, 207, 73,\n\t\t201, 63, 193, 28, 111, 77, 153, 137, 132, 57, 53, 179, 36,\n\t\t158, 228, 211, 166, 155, 203, 185, 102, 154, 191, 141, 97,\n\t\t101, 25, 194, 105, 126, 50, 61, 169, 49, 28, 68, 186, 200,\n\t\t176, 201, 108, 60, 158, 73, 113, 140, 168, 35, 136, 24, 117,\n\t\t60, 61, 201, 247, 245, 157, 0, 126, 13, 44, 130, 99, 254,\n\t\t168, 224, 111, 69, 80, 208, 122, 137, 58, 174, 77, 173, 154,\n\t\t28, 33, 18, 24, 59, 236, 13, 12, 69, 152, 17, 72, 203, 3,\n\t\t101, 24, 18, 237, 119, 131, 112, 121, 1, 191, 18, 205, 24,\n\t\t217, 243, 71, 15, 159, 103, 188, 163, 138, 184, 32, 235, 12,\n\t\t203, 40, 210, 200, 174, 74, 121, 118, 68, 86, 24, 14, 138,\n\t\t24, 45, 136, 202, 81, 143, 201, 52, 210, 211, 139, 57, 8,\n\t\t71, 45, 77, 146, 52, 9, 46, 27, 233, 104, 49, 250, 170, 131,\n\t\t119, 223, 121, 64, 185, 125, 215, 175, 75, 42, 131, 25, 69,\n\t\t210, 101, 157, 17, 222, 88, 153, 221, 93, 126, 72, 96, 116,\n\t\t89, 23, 100, 14, 170, 140, 42, 253, 250, 174, 179, 56, 57,\n\t\t157, 216, 59, 241, 170, 104, 41, 81, 92, 150, 252, 119, 128,\n\t\t65, 158, 114, 9, 168, 192, 5, 57, 98, 53, 30, 192, 13, 89,\n\t\t187, 209, 114, 137, 25, 152, 209, 168, 59, 125, 186, 247,\n\t\t117, 162, 178, 223, 92, 223, 164, 192, 233, 238, 42, 177,\n\t\t125, 174, 101, 131, 61, 248, 26, 92, 207, 102, 151, 175, 3,\n\t\t43, 5, 87, 83, 221, 223, 77, 89, 16, 88, 169, 64, 206, 190,\n\t\t9, 191, 10, 55, 1, 239, 207, 64, 78, 190, 212, 106, 88, 158,\n\t\t67, 5, 44, 211, 176, 213, 244, 40, 231, 92, 187, 55, 70, 48,\n\t\t182, 149, 129, 174, 243, 127, 154, 165, 245, 127, 45, 69,\n\t\t181, 238, 186, 20, 17, 37, 200, 68, 12, 235, 200, 172, 153,\n\t\t48, 139, 187, 115, 150, 17, 97, 252, 181, 216, 171, 100, 172,\n\t\t154, 82, 68, 196, 50, 100, 35, 177, 253, 147, 187, 79, 43,\n\t\t182, 223, 215, 109, 52, 185, 88, 154, 220, 31, 139, 176, 0,\n\t\t176, 215, 127, 22, 200, 209, 12, 16, 7, 229, 96, 135, 65,\n\t\t199, 79, 186, 102, 45, 152, 5, 155, 76, 126, 102, 142, 128,\n\t\t222, 26, 185, 58, 18, 144, 176, 89, 153, 213, 100, 120, 169,\n\t\t181, 180, 212, 202, 206, 86, 214, 179, 217, 68, 169, 228,\n\t\t116, 65, 14, 75, 42, 195, 50, 71, 34, 28, 159, 16, 59, 179,\n\t\t149, 103, 100, 109, 233, 190, 165, 202, 44, 204, 174, 151,\n\t\t154, 165, 238, 122, 54, 134, 160, 155, 150, 136, 106, 20,\n\t\t245, 250, 76, 146, 112, 73, 82, 142, 253, 87, 2, 192, 219,\n\t\t185, 86, 115, 15, 133, 162, 246, 193, 240, 126, 233, 55, 234,\n\t\t108, 161, 15, 155, 71, 141, 62, 144, 222, 245, 227, 27, 68,\n\t\t183, 222, 191, 223, 7, 217, 183, 202, 141, 158, 177, 48, 249,\n\t\t205, 160, 33, 49, 220, 236, 118, 176, 165, 201, 103, 9, 228,\n\t\t230, 172, 172, 89, 1, 12, 254, 51, 33, 48, 190, 211, 28, 196,\n\t\t216, 203, 9, 193, 18, 18, 130, 64, 79, 147, 150, 133, 225,\n\t\t5, 89, 59, 66, 100, 92, 154, 220, 125, 28, 102, 233, 115,\n\t\t157, 16, 153, 191, 178, 130, 87, 3, 68, 5, 57, 252, 180, 247,\n\t\t99, 114, 234, 237, 105, 194, 125, 195, 18, 120, 1, 181, 61,\n\t\t125, 126, 59, 7, 239, 38, 22, 210, 206, 243, 220, 85, 108,\n\t\t138, 179, 98, 77, 156, 21, 131, 211, 135, 159, 251, 30, 227,\n\t\t135, 3, 63, 19, 103, 175, 245, 119, 28, 253, 253, 161, 74,\n\t\t172, 116, 138, 224, 168, 223, 179, 250, 86, 14, 141, 27, 246,\n\t\t46, 190, 89, 154, 128, 61, 213, 93, 79, 87, 57, 0, 193, 106,\n\t\t183, 86, 179, 164, 11, 102, 175, 250, 125, 80, 215, 173, 84,\n\t\t183, 67, 114, 166, 195, 172, 132, 168, 33, 4, 53, 100, 8,\n\t\t131, 89, 24, 116, 210, 238, 198, 78, 189, 243, 242, 214, 231,\n\t\t73, 16, 12, 202, 158, 171, 116, 221, 198, 20, 80, 163, 110,\n\t\t77, 192, 86, 163, 85, 64, 133, 114, 171, 209, 106, 180, 202,\n\t\t45, 175, 85, 104, 21, 90, 94, 195, 109, 180, 252, 73, 208,\n\t\t154, 128, 110, 195, 101, 178, 171, 171, 235, 181, 216, 235,\n\t\t42, 182, 253, 26, 189, 182, 63, 175, 136, 181, 78, 167, 38,\n\t\t42, 249, 253, 53, 253, 53, 182, 93, 121, 93, 172, 118, 213,\n\t\t118, 108, 93, 255, 53, 140, 63, 186, 172, 28, 212, 89, 113,\n\t\t92, 100, 245, 131, 202, 242, 71, 49, 254, 53, 125, 192, 158,\n\t\t49, 14, 242, 96, 154, 172, 173, 105, 43, 137, 64, 123, 152,\n\t\t102, 35, 13, 93, 74, 132, 230, 181, 5, 170, 80, 166, 244,\n\t\t207, 3, 97, 184, 150, 171, 38, 236, 147, 161, 68, 22, 234,\n\t\t178, 214, 145, 80, 205, 147, 62, 71, 134, 211, 51, 116, 80,\n\t\t93, 173, 230, 30, 142, 149, 229, 81, 138, 8, 188, 76, 80,\n\t\t116, 223, 126, 24, 73, 159, 143, 115, 7, 7, 249, 109, 130,\n\t\t195, 16, 54, 171, 49, 204, 102, 231, 167, 11, 145, 234, 43,\n\t\t244, 106, 179, 87, 135, 189, 218, 108, 150, 66, 123, 23, 186,\n\t\t25, 90, 235, 217, 176, 12, 152, 179, 72, 112, 173, 255, 68,\n\t\t234, 128, 132, 150, 151, 123, 137, 232, 5, 135, 210, 178,\n\t\t195, 222, 246, 102, 156, 2, 67, 210, 211, 206, 22, 102, 129,\n\t\t161, 205, 218, 63, 13, 19, 12, 48, 32, 6, 70, 224, 191, 131,\n\t\t47, 1, 54, 24, 15, 153, 21, 200, 130, 61, 3, 123, 212, 10,\n\t\t104, 104, 37, 79, 87, 251, 229, 171, 151, 232, 58, 125, 117,\n\t\t149, 103, 89, 222, 65, 22, 186, 132, 190, 128, 80, 47, 150,\n\t\t90, 92, 124, 251, 18, 93, 154, 175, 174, 242, 88, 229, 92,\n\t\t114, 63, 73, 158, 13, 162, 233, 154, 63, 72, 199, 147, 240,\n\t\t37, 192, 34, 187, 155, 237, 196, 255, 142, 229, 13, 109, 59,\n\t\t168, 153, 71, 221, 113, 175, 110, 249, 228, 182, 100, 112,\n\t\t146, 36, 177, 159, 220, 242, 197, 157, 210, 193, 114, 28,\n\t\t27, 204, 115, 207, 194, 125, 240, 82, 144, 150, 237, 222,\n\t\t8, 218, 245, 242, 160, 145, 7, 210, 8, 59, 109, 169, 233,\n\t\t125, 234, 23, 124, 133, 36, 197, 69, 104, 243, 166, 105, 230,\n\t\t88, 150, 243, 99, 183, 164, 101, 108, 7, 47, 11, 126, 2, 220,\n\t\t161, 189, 87, 224, 31, 225, 125, 207, 33, 191, 191, 40, 29,\n\t\t52, 14, 64, 191, 110, 192, 159, 147, 54, 114, 131, 22, 146,\n\t\t221, 161, 49, 236, 84, 245, 193, 187, 158, 33, 245, 188, 115,\n\t\t45, 111, 175, 206, 29, 170, 142, 248, 139, 56, 11, 247, 193,\n\t\t74, 223, 126, 104, 75, 13, 237, 80, 21, 48, 187, 237, 221,\n\t\t32, 240, 61, 113, 22, 118, 232, 187, 118, 44, 225, 29, 10,\n\t\t115, 117, 251, 171, 250, 152, 186, 17, 80, 24, 240, 186, 227,\n\t\t239, 61, 104, 63, 246, 167, 7, 47, 156, 21, 161, 145, 51,\n\t\t24, 50, 234, 111, 234, 100, 62, 14, 52, 79, 58, 97, 106, 134,\n\t\t87, 186, 29, 50, 178, 108, 90, 169, 26, 89, 66, 107, 53, 58,\n\t\t131, 117, 55, 96, 182, 123, 181, 199, 255, 64, 249, 155, 114,\n\t\t68, 3, 88, 223, 162, 227, 13, 84, 230, 166, 145, 11, 198,\n\t\t51, 214, 255, 230, 26, 146, 74, 137, 46, 72, 148, 36, 244,\n\t\t215, 150, 186, 87, 139, 194, 175, 117, 1, 149, 78, 116, 186,\n\t\t235, 89, 9, 233, 137, 82, 41, 161, 35, 73, 177, 141, 8, 92,\n\t\t235, 62, 69, 184, 172, 186, 63, 164, 18, 158, 65, 62, 234,\n\t\t200, 78, 82, 163, 158, 166, 111, 96, 76, 250, 77, 162, 203,\n\t\t35, 249, 233, 81, 86, 117, 179, 129, 206, 142, 190, 175, 179,\n\t\t229, 125, 225, 222, 172, 255, 62, 82, 86, 196, 70, 232, 238,\n\t\t155, 189, 142, 142, 163, 100, 238, 78, 129, 93, 59, 112, 132,\n\t\t246, 174, 253, 161, 253, 102, 55, 169, 220, 107, 221, 74,\n\t\t157, 91, 164, 62, 138, 18, 165, 237, 49, 155, 228, 58, 101,\n\t\t93, 91, 60, 71, 48, 83, 165, 68, 103, 123, 204, 214, 52, 193,\n\t\t109, 159, 109, 247, 105, 93, 183, 167, 105, 224, 166, 159,\n\t\t166, 254, 199, 9, 201, 216, 198, 182, 24, 127, 200, 191, 105,\n\t\t122, 72, 76, 111, 93, 59, 32, 159, 30, 9, 245, 187, 61, 91,\n\t\t244, 64, 155, 21, 218, 254, 100, 195, 171, 144, 219, 36, 56,\n\t\t131, 224, 12, 107, 3, 106, 172, 191, 36, 199, 238, 38, 137,\n\t\t178, 169, 4, 120, 145, 198, 253, 61, 189, 250, 40, 189, 162,\n\t\t186, 175, 191, 164, 63, 245, 99, 62, 48, 32, 2, 134, 139,\n\t\t148, 105, 24, 14, 224, 164, 122, 104, 176, 128, 251, 131,\n\t\t226, 186, 232, 126, 136, 226, 154, 104, 126, 198, 6, 24, 67,\n\t\t182, 32, 106, 221, 118, 51, 16, 115, 76, 67, 13, 90, 174,\n\t\t83, 127, 148, 190, 235, 20, 105, 93, 255, 129, 28, 127, 147,\n\t\t19, 36, 153, 43, 220, 95, 224, 100, 73, 224, 166, 30, 9, 62,\n\t\t228, 14, 192, 105, 255, 53, 167, 32, 158, 225, 199, 199, 121,\n\t\t134, 71, 10, 215, 222, 150, 134, 226, 77, 210, 64, 76, 109,\n\t\t242, 72, 200, 248, 195, 205, 14, 223, 127, 55, 138, 242, 252,\n\t\t212, 35, 83, 2, 50, 80, 225, 254, 29, 190, 254, 117, 145,\n\t\t211, 197, 118, 27, 25, 44, 26, 7, 219, 243, 63, 210, 255,\n\t\t118, 136, 114, 116, 235, 254, 26, 194, 106, 180, 131, 116,\n\t\t208, 175, 254, 71, 10, 29, 214, 245, 77, 93, 15, 122, 235,\n\t\t224, 199, 62, 145, 205, 174, 135, 253, 139, 3, 0, 100, 153,\n\t\t117, 184, 74, 214, 41, 196, 223, 3, 12, 172, 86, 11, 20, 0,\n\t\t208, 112, 159, 195, 234, 62, 252, 62, 188, 186, 120, 238,\n\t\t220, 226, 254, 234, 29, 213, 253, 126, 96, 21, 55, 113, 5,\n\t\t55, 113, 112, 162, 13, 228, 34, 109, 45, 171, 231, 126, 245,\n\t\t92, 173, 118, 238, 87, 207, 125, 102, 224, 9, 220, 156, 37,\n\t\t237, 163, 25, 242, 81, 171, 3, 88, 235, 100, 143, 249, 255,\n\t\t12, 184, 27, 188, 18, 188, 17, 188, 19, 124, 0, 60, 177, 157,\n\t\t95, 111, 208, 231, 153, 247, 60, 195, 252, 115, 120, 230,\n\t\t70, 207, 23, 111, 240, 12, 163, 247, 209, 222, 169, 238, 29,\n\t\t116, 71, 182, 122, 147, 83, 247, 169, 231, 112, 19, 102, 241,\n\t\t51, 24, 63, 19, 70, 15, 81, 4, 14, 218, 100, 111, 255, 191,\n\t\t242, 156, 227, 1, 215, 243, 41, 128, 192, 52, 104, 250, 187,\n\t\t67, 51, 3, 93, 123, 26, 150, 111, 234, 95, 128, 113, 29, 212,\n\t\t174, 59, 141, 58, 106, 9, 200, 110, 23, 253, 163, 80, 110,\n\t\t149, 202, 118, 137, 198, 120, 118, 219, 181, 29, 183, 229,\n\t\t120, 118, 219, 107, 9, 168, 213, 254, 91, 169, 30, 145, 234,\n\t\t145, 255, 165, 19, 111, 4, 47, 139, 247, 189, 17, 104, 177,\n\t\t8, 132, 124, 238, 240, 133, 68, 237, 199, 249, 74, 1, 222,\n\t\t90, 46, 20, 74, 120, 190, 84, 48, 189, 233, 84, 37, 167, 44,\n\t\t148, 10, 197, 98, 118, 60, 9, 25, 198, 96, 15, 48, 6, 251,\n\t\t149, 192, 107, 65, 222, 25, 242, 90, 160, 185, 154, 170, 224,\n\t\t194, 255, 125, 132, 141, 28, 82, 223, 125, 216, 16, 142, 8,\n\t\t210, 1, 198, 58, 160, 240, 135, 161, 125, 200, 224, 14, 177,\n\t\t136, 94, 30, 225, 98, 135, 44, 225, 48, 23, 250, 182, 89,\n\t\t39, 252, 98, 163, 131, 54, 196, 3, 171, 28, 126, 24, 251,\n\t\t111, 67, 134, 50, 228, 160, 15, 125, 136, 46, 53, 190, 134,\n\t\t224, 3, 154, 220, 189, 18, 74, 19, 119, 96, 31, 251, 178,\n\t\t172, 5, 254, 146, 0, 96, 175, 255, 159, 235, 95, 98, 222,\n\t\t1, 127, 15, 40, 32, 233, 175, 90, 249, 114, 201, 51, 219,\n\t\t35, 208, 65, 172, 80, 238, 225, 7, 29, 127, 253, 142, 120,\n\t\t122, 93, 14, 226, 16, 116, 247, 98, 238, 18, 139, 253, 35,\n\t\t247, 102, 81, 186, 44, 203, 151, 37, 113, 66, 146, 94, 244,\n\t\t34, 73, 130, 169, 94, 112, 130, 220, 234, 68, 89, 12, 191,\n\t\t135, 217, 40, 139, 187, 227, 248, 181, 146, 248, 78, 73, 122,\n\t\t167, 40, 77, 75, 226, 242, 178, 40, 85, 123, 161, 105, 114,\n\t\t39, 88, 195, 254, 144, 233, 192, 223, 2, 9, 80, 35, 108, 72,\n\t\t78, 26, 18, 102, 13, 36, 148, 188, 118, 169, 28, 224, 236,\n\t\t80, 8, 181, 67, 26, 180, 103, 44, 135, 120, 4, 42, 95, 122,\n\t\t10, 167, 26, 199, 231, 115, 181, 130, 98, 115, 169, 93, 43,\n\t\t41, 252, 148, 248, 32, 33, 3, 122, 133, 168, 40, 226, 43,\n\t\t82, 24, 50, 143, 203, 106, 228, 5, 156, 61, 118, 168, 58,\n\t\t121, 42, 46, 106, 248, 133, 183, 201, 43, 17, 85, 126, 28,\n\t\t57, 233, 128, 30, 72, 63, 135, 98, 138, 18, 67, 231, 116,\n\t\t74, 10, 4, 175, 255, 227, 245, 47, 49, 18, 252, 191, 8, 22,\n\t\t165, 237, 32, 86, 35, 222, 37, 10, 249, 82, 219, 131, 95,\n\t\t74, 85, 241, 87, 196, 108, 198, 125, 42, 158, 148, 93, 248,\n\t\t187, 184, 154, 234, 174, 26, 154, 144, 136, 62, 85, 156, 82,\n\t\t64, 207, 95, 38, 130, 95, 39, 250, 144, 190, 14, 59, 104,\n\t\t208, 168, 65, 133, 207, 91, 185, 112, 108, 195, 43, 180, 26,\n\t\t20, 213, 9, 109, 234, 7, 177, 66, 38, 229, 15, 188, 230, 153,\n\t\t208, 234, 43, 184, 254, 206, 30, 194, 132, 182, 135, 98, 200,\n\t\t41, 244, 40, 249, 129, 85, 77, 134, 98, 63, 166, 251, 167,\n\t\t31, 88, 221, 67, 136, 211, 246, 252, 109, 207, 62, 140, 96,\n\t\t203, 219, 96, 30, 28, 2, 199, 137, 125, 44, 18, 144, 198,\n\t\t16, 251, 54, 130, 192, 32, 60, 155, 208, 107, 77, 195, 128,\n\t\t242, 147, 116, 174, 121, 198, 107, 123, 211, 12, 137, 10,\n\t\t25, 203, 66, 44, 80, 52, 36, 78, 91, 207, 196, 160, 173, 78,\n\t\t101, 83, 117, 93, 230, 221, 84, 117, 177, 170, 37, 244, 248,\n\t\t72, 117, 177, 58, 18, 143, 237, 138, 197, 50, 72, 129, 70,\n\t\t34, 82, 93, 172, 118, 255, 144, 236, 200, 93, 114, 252, 7,\n\t\t186, 59, 175, 37, 198, 197, 241, 132, 110, 10, 12, 47, 242,\n\t\t162, 52, 22, 207, 85, 171, 185, 232, 136, 195, 63, 141, 198,\n\t\t147, 126, 56, 57, 142, 46, 43, 2, 195, 42, 146, 26, 227, 157,\n\t\t108, 52, 87, 173, 86, 137, 168, 179, 251, 46, 114, 130, 94,\n\t\t32, 248, 100, 9, 126, 16, 194, 175, 2, 151, 50, 27, 19, 94,\n\t\t88, 10, 32, 164, 80, 42, 10, 171, 114, 3, 122, 207, 1, 170,\n\t\t207, 38, 65, 93, 153, 66, 190, 28, 236, 20, 92, 162, 119,\n\t\t175, 73, 210, 212, 228, 91, 110, 159, 156, 34, 36, 118, 83,\n\t\t246, 248, 156, 61, 37, 138, 122, 101, 167, 232, 255, 141,\n\t\t44, 212, 61, 76, 59, 42, 252, 2, 66, 227, 162, 52, 53, 121,\n\t\t251, 91, 38, 167, 36, 137, 60, 52, 55, 238, 255, 246, 135,\n\t\t149, 157, 162, 187, 31, 65, 254, 111, 72, 103, 239, 30, 246,\n\t\t247, 87, 12, 136, 93, 223, 132, 15, 17, 255, 106, 51, 196,\n\t\t138, 193, 182, 180, 65, 56, 199, 60, 227, 17, 162, 120, 66,\n\t\t190, 163, 193, 42, 156, 134, 94, 59, 156, 214, 191, 177, 120,\n\t\t127, 162, 88, 76, 104, 242, 17, 89, 83, 71, 76, 51, 233, 76,\n\t\t198, 205, 180, 21, 17, 76, 113, 66, 100, 133, 133, 67, 187,\n\t\t43, 149, 221, 21, 184, 249, 194, 78, 118, 38, 105, 217, 138,\n\t\t224, 55, 27, 217, 201, 39, 177, 18, 177, 35, 78, 74, 53, 13,\n\t\t145, 21, 114, 130, 41, 190, 168, 251, 158, 177, 93, 99, 99,\n\t\t187, 122, 107, 124, 224, 175, 241, 51, 160, 4, 128, 215, 24,\n\t\t214, 104, 109, 49, 160, 8, 211, 98, 89, 150, 136, 177, 184,\n\t\t38, 98, 114, 126, 92, 196, 184, 61, 55, 62, 62, 55, 30, 187,\n\t\t140, 197, 154, 31, 245, 221, 224, 92, 19, 49, 124, 114, 220,\n\t\t191, 7, 136, 127, 179, 77, 240, 20, 89, 131, 186, 125, 75,\n\t\t173, 192, 159, 166, 205, 6, 157, 234, 41, 226, 58, 236, 130,\n\t\t38, 251, 227, 179, 38, 47, 202, 218, 12, 85, 223, 31, 150,\n\t\t35, 17, 127, 243, 164, 170, 242, 192, 58, 123, 15, 184, 119,\n\t\t96, 157, 141, 220, 126, 146, 171, 176, 84, 22, 2, 50, 124,\n\t\t154, 37, 175, 220, 207, 221, 8, 116, 220, 246, 2, 108, 55,\n\t\t248, 222, 15, 202, 126, 127, 225, 73, 5, 80, 232, 83, 200,\n\t\t142, 228, 247, 40, 72, 208, 101, 169, 214, 30, 199, 63, 207,\n\t\t75, 252, 52, 195, 177, 236, 36, 47, 17, 102, 231, 196, 174,\n\t\t22, 193, 200, 28, 148, 184, 10, 199, 176, 236, 24, 39, 193,\n\t\t81, 63, 226, 73, 141, 129, 170, 29, 79, 216, 170, 170, 70,\n\t\t53, 73, 205, 168, 146, 54, 51, 82, 222, 147, 136, 20, 114,\n\t\t28, 4, 68, 108, 116, 203, 10, 57, 137, 71, 56, 65, 224, 142,\n\t\t80, 202, 255, 23, 220, 74, 227, 246, 33, 150, 231, 247, 5,\n\t\t6, 255, 154, 34, 218, 197, 132, 99, 68, 34, 72, 214, 162,\n\t\t88, 180, 37, 213, 73, 77, 143, 143, 166, 117, 215, 194, 67,\n\t\t101, 114, 247, 47, 87, 38, 112, 184, 76, 216, 127, 241, 34,\n\t\t137, 21, 10, 241, 157, 10, 100, 227, 185, 22, 72, 119, 61,\n\t\t44, 145, 116, 53, 227, 58, 230, 246, 226, 8, 230, 103, 0,\n\t\t63, 2, 108, 144, 240, 231, 103, 2, 96, 43, 228, 122, 192,\n\t\t27, 127, 130, 46, 34, 183, 225, 193, 191, 121, 239, 101, 140,\n\t\t187, 31, 182, 180, 85, 77, 131, 64, 171, 104, 27, 90, 247,\n\t\t247, 222, 180, 252, 234, 3, 255, 254, 189, 184, 130, 181,\n\t\t85, 173, 226, 71, 107, 27, 90, 101, 230, 205, 203, 251, 67,\n\t\t187, 102, 34, 3, 88, 242, 231, 133, 0, 240, 70, 122, 174,\n\t\t51, 2, 243, 26, 67, 6, 216, 160, 47, 219, 86, 134, 192, 158,\n\t\t74, 85, 104, 212, 92, 167, 213, 12, 216, 183, 108, 75, 240,\n\t\t111, 205, 51, 11, 176, 134, 132, 70, 189, 205, 160, 104, 18,\n\t\t167, 19, 214, 140, 97, 68, 33, 199, 178, 114, 46, 59, 58,\n\t\t18, 215, 70, 11, 73, 35, 109, 88, 86, 177, 213, 52, 163, 157,\n\t\t181, 108, 57, 149, 40, 140, 218, 133, 241, 241, 188, 162,\n\t\t24, 230, 152, 84, 127, 194, 76, 27, 201, 194, 104, 188, 80,\n\t\t80, 49, 199, 114, 140, 160, 171, 70, 205, 142, 167, 113, 34,\n\t\t26, 29, 113, 37, 203, 130, 28, 199, 193, 91, 101, 165, 46,\n\t\t213, 221, 68, 38, 157, 176, 106, 81, 35, 202, 114, 88, 225,\n\t\t184, 131, 47, 31, 1, 125, 158, 230, 77, 160, 128, 57, 130,\n\t\t53, 247, 155, 4, 105, 5, 129, 238, 27, 237, 224, 32, 129,\n\t\t42, 212, 66, 50, 25, 215, 33, 108, 50, 141, 239, 47, 207,\n\t\t206, 46, 207, 118, 144, 116, 102, 223, 44, 10, 189, 7, 204,\n\t\t238, 59, 35, 33, 29, 73, 139, 51, 187, 86, 36, 180, 58, 91,\n\t\t217, 168, 204, 250, 135, 11, 18, 170, 45, 222, 45, 229, 201,\n\t\t77, 114, 200, 75, 47, 59, 64, 64, 115, 227, 141, 227, 156,\n\t\t112, 235, 108, 13, 73, 128, 248, 110, 248, 2, 243, 78, 248,\n\t\t117, 80, 4, 135, 0, 224, 253, 145, 191, 28, 44, 118, 2, 111,\n\t\t106, 254, 130, 211, 109, 15, 36, 40, 178, 109, 247, 77, 18,\n\t\t76, 22, 160, 158, 43, 32, 155, 121, 8, 75, 150, 140, 127,\n\t\t254, 31, 200, 233, 63, 204, 86, 18, 147, 9, 62, 161, 144,\n\t\t84, 88, 183, 12, 38, 189, 41, 140, 84, 147, 72, 171, 71, 117,\n\t\t89, 86, 227, 88, 130, 95, 39, 167, 119, 79, 85, 102, 19, 147,\n\t\t137, 13, 77, 183, 98, 9, 42, 141, 31, 47, 173, 15, 103, 5,\n\t\t141, 37, 38, 211, 12, 132, 101, 129, 201, 15, 202, 84, 84,\n\t\t130, 16, 203, 213, 7, 100, 42, 197, 1, 123, 244, 128, 11,\n\t\t176, 231, 151, 212, 177, 49, 124, 18, 7, 140, 75, 155, 184,\n\t\t123, 22, 167, 172, 90, 160, 254, 169, 89, 41, 8, 112, 247,\n\t\t159, 200, 62, 130, 195, 147, 24, 143, 90, 41, 127, 195, 228,\n\t\t255, 17, 154, 99, 170, 251, 39, 223, 157, 5, 157, 30, 246,\n\t\t165, 10, 75, 173, 130, 61, 4, 41, 108, 123, 173, 113, 70,\n\t\t227, 41, 1, 91, 219, 43, 17, 203, 197, 70, 211, 235, 57, 148,\n\t\t252, 180, 32, 138, 194, 147, 114, 37, 146, 52, 21, 226, 247,\n\t\t105, 108, 132, 203, 8, 49, 33, 138, 84, 137, 103, 205, 168,\n\t\t200, 101, 230, 148, 92, 38, 149, 23, 119, 203, 15, 211, 229,\n\t\t192, 199, 160, 200, 191, 150, 23, 97, 138, 209, 147, 92, 52,\n\t\t54, 162, 19, 52, 245, 63, 228, 90, 98, 146, 97, 5, 89, 53,\n\t\t177, 36, 34, 83, 186, 37, 146, 156, 153, 74, 234, 76, 52,\n\t\t152, 251, 169, 63, 113, 72, 184, 182, 234, 33, 59, 156, 109,\n\t\t9, 132, 165, 108, 144, 136, 135, 152, 40, 46, 192, 121, 184,\n\t\t7, 250, 195, 147, 235, 244, 18, 251, 51, 116, 96, 78, 87,\n\t\t238, 226, 5, 89, 115, 228, 132, 220, 144, 36, 247, 130, 172,\n\t\t177, 51, 124, 2, 95, 40, 189, 244, 72, 35, 43, 95, 34, 30,\n\t\t220, 224, 39, 114, 245, 35, 247, 148, 47, 168, 113, 126, 134,\n\t\t213, 228, 11, 174, 36, 53, 228, 132, 236, 104, 178, 192, 223,\n\t\t45, 235, 123, 247, 35, 230, 9, 226, 183, 13, 108, 177, 227,\n\t\t74, 245, 109, 228, 138, 61, 139, 177, 1, 19, 185, 192, 52,\n\t\t174, 251, 216, 37, 100, 33, 93, 20, 95, 250, 82, 81, 212,\n\t\t69, 19, 93, 10, 172, 226, 78, 191, 147, 94, 223, 123, 47,\n\t\t189, 255, 78, 100, 109, 125, 127, 159, 203, 55, 180, 14, 27,\n\t\t48, 135, 11, 196, 34, 247, 109, 123, 125, 176, 171, 127, 14,\n\t\t239, 15, 109, 223, 204, 222, 107, 7, 76, 223, 196, 27, 189,\n\t\t229, 246, 27, 125, 120, 91, 249, 12, 240, 1, 7, 197, 50, 96,\n\t\t230, 22, 152, 183, 237, 240, 129, 144, 238, 112, 123, 201,\n\t\t129, 1, 44, 203, 87, 169, 158, 223, 203, 7, 123, 28, 129,\n\t\t210, 218, 134, 94, 125, 201, 202, 151, 122, 227, 25, 24, 191,\n\t\t108, 194, 139, 219, 255, 133, 6, 243, 165, 114, 72, 188, 175,\n\t\t138, 2, 127, 64, 20, 15, 240, 130, 88, 208, 110, 171, 145,\n\t\t46, 52, 186, 171, 82, 241, 70, 83, 77, 194, 109, 85, 187,\n\t\t77, 43, 244, 159, 201, 234, 239, 253, 157, 247, 234, 16, 16,\n\t\t81, 202, 106, 132, 70, 71, 202, 51, 194, 151, 113, 5, 243,\n\t\t114, 125, 164, 178, 11, 194, 217, 242, 72, 93, 230, 17, 95,\n\t\t225, 209, 151, 133, 153, 114, 248, 212, 209, 51, 103, 142,\n\t\t194, 236, 176, 173, 118, 96, 179, 95, 127, 206, 86, 251, 161,\n\t\t11, 61, 63, 241, 55, 180, 224, 95, 163, 142, 10, 111, 98,\n\t\t200, 255, 120, 205, 112, 93, 195, 63, 220, 76, 182, 180, 3,\n\t\t67, 208, 128, 108, 233, 227, 143, 95, 188, 248, 248, 197,\n\t\t95, 33, 112, 144, 123, 169, 149, 17, 109, 133, 221, 31, 93,\n\t\t244, 111, 125, 147, 128, 61, 94, 71, 12, 136, 40, 47, 38,\n\t\t120, 16, 62, 11, 197, 224, 59, 96, 148, 182, 148, 221, 204,\n\t\t176, 200, 17, 30, 33, 11, 200, 215, 146, 21, 102, 247, 27,\n\t\t228, 244, 39, 228, 56, 240, 159, 188, 47, 118, 253, 105, 240,\n\t\t100, 47, 221, 97, 170, 231, 24, 154, 92, 38, 104, 232, 139,\n\t\t91, 127, 11, 197, 237, 31, 24, 226, 105, 165, 18, 198, 61,\n\t\t55, 150, 129, 187, 245, 54, 97, 21, 240, 235, 129, 16, 13,\n\t\t16, 231, 173, 67, 49, 67, 150, 15, 84, 159, 253, 45, 14, 241,\n\t\t175, 123, 1, 143, 148, 185, 83, 156, 242, 110, 14, 241, 159,\n\t\t122, 11, 143, 148, 123, 223, 207, 41, 91, 129, 151, 84, 68,\n\t\t138, 248, 23, 188, 142, 71, 92, 65, 225, 78, 205, 41, 136,\n\t\t127, 243, 167, 233, 197, 251, 239, 85, 134, 250, 156, 61,\n\t\t48, 102, 204, 195, 102, 169, 10, 75, 164, 125, 120, 193, 96,\n\t\t113, 81, 16, 4, 225, 41, 28, 139, 133, 180, 211, 111, 101,\n\t\t49, 198, 236, 203, 145, 166, 93, 209, 180, 97, 93, 105, 114,\n\t\t7, 180, 232, 0, 39, 249, 80, 158, 66, 102, 242, 225, 180,\n\t\t63, 27, 48, 148, 15, 243, 99, 140, 108, 247, 208, 89, 222,\n\t\t202, 23, 126, 121, 64, 151, 250, 163, 45, 172, 225, 67, 254,\n\t\t53, 239, 250, 60, 137, 125, 236, 16, 121, 230, 130, 18, 218,\n\t\t24, 6, 223, 74, 129, 241, 237, 95, 99, 35, 208, 202, 192,\n\t\t6, 1, 53, 149, 60, 58, 34, 81, 80, 83, 115, 232, 195, 159,\n\t\t189, 36, 176, 136, 221, 117, 137, 227, 60, 254, 124, 198,\n\t\t223, 206, 249, 33, 206, 69, 195, 30, 62, 167, 47, 237, 98,\n\t\t17, 43, 92, 226, 184, 89, 78, 202, 32, 228, 114, 188, 199,\n\t\t113, 46, 33, 112, 166, 250, 162, 125, 240, 63, 131, 12, 153,\n\t\t123, 9, 165, 127, 94, 99, 6, 184, 143, 67, 35, 67, 212, 36,\n\t\t176, 78, 111, 216, 65, 133, 191, 158, 65, 196, 215, 152, 145,\n\t\t99, 102, 47, 43, 233, 169, 133, 154, 141, 57, 75, 26, 153,\n\t\t72, 77, 29, 58, 86, 77, 43, 151, 197, 77, 81, 224, 121, 140,\n\t\t5, 57, 44, 252, 55, 72, 188, 152, 177, 57, 190, 1, 59, 48,\n\t\t114, 73, 193, 250, 17, 217, 45, 239, 169, 96, 21, 197, 78,\n\t\t140, 141, 207, 151, 28, 233, 136, 142, 149, 75, 200, 250,\n\t\t54, 47, 66, 200, 49, 72, 184, 61, 204, 116, 148, 143, 56,\n\t\t129, 159, 10, 118, 104, 44, 200, 0, 48, 15, 105, 211, 10,\n\t\t245, 5, 124, 123, 26, 70, 136, 130, 208, 47, 59, 239, 251,\n\t\t84, 94, 125, 152, 182, 180, 215, 115, 72, 147, 46, 43, 252,\n\t\t162, 96, 225, 203, 10, 255, 7, 68, 148, 13, 121, 210, 232,\n\t\t88, 81, 231, 217, 69, 94, 185, 140, 45, 97, 145, 87, 182,\n\t\t180, 143, 196, 118, 29, 61, 79, 140, 169, 40, 69, 238, 144,\n\t\t42, 190, 251, 225, 55, 137, 226, 155, 120, 65, 252, 123, 81,\n\t\t24, 82, 192, 111, 144, 120, 66, 18, 186, 229, 221, 131, 45,\n\t\t193, 255, 70, 145, 52, 58, 162, 69, 27, 170, 214, 123, 250,\n\t\t111, 214, 251, 209, 3, 47, 222, 242, 222, 173, 124, 107, 38,\n\t\t105, 211, 164, 247, 213, 118, 248, 253, 150, 174, 50, 144,\n\t\t15, 208, 179, 163, 90, 132, 27, 224, 96, 96, 135, 87, 200,\n\t\t151, 202, 33, 30, 184, 212, 67, 6, 147, 53, 79, 134, 241,\n\t\t87, 196, 33, 26, 152, 236, 240, 4, 55, 12, 101, 88, 191, 77,\n\t\t65, 79, 98, 148, 204, 200, 173, 107, 102, 134, 71, 216, 134,\n\t\t140, 195, 35, 156, 115, 94, 121, 36, 158, 228, 120, 6, 98,\n\t\t86, 177, 141, 202, 188, 254, 110, 1, 65, 129, 145, 63, 192,\n\t\t48, 239, 160, 161, 87, 139, 177, 145, 146, 237, 184, 56, 63,\n\t\t169, 176, 226, 233, 67, 136, 79, 97, 203, 65, 124, 6, 119,\n\t\t150, 121, 200, 33, 118, 82, 97, 184, 74, 65, 18, 210, 178,\n\t\t233, 74, 66, 74, 50, 179, 142, 42, 48, 65, 250, 59, 112, 131,\n\t\t240, 52, 215, 123, 116, 75, 4, 54, 27, 80, 91, 183, 253, 229,\n\t\t90, 144, 114, 141, 235, 217, 32, 17, 171, 219, 6, 108, 98,\n\t\t220, 253, 62, 198, 163, 41, 140, 83, 39, 246, 122, 85, 9,\n\t\t165, 145, 148, 73, 74, 134, 166, 32, 110, 5, 227, 149, 55,\n\t\t34, 126, 21, 95, 192, 193, 58, 120, 209, 59, 92, 64, 242,\n\t\t168, 40, 152, 156, 40, 171, 154, 216, 193, 21, 252, 214, 6,\n\t\t143, 66, 206, 31, 56, 14, 55, 193, 62, 0, 60, 194, 78, 132,\n\t\t122, 76, 28, 121, 2, 0, 108, 187, 212, 229, 118, 179, 10,\n\t\t167, 41, 133, 107, 15, 4, 84, 39, 134, 229, 66, 153, 58, 221,\n\t\t182, 28, 247, 219, 147, 83, 58, 222, 61, 74, 81, 56, 37, 129,\n\t\t17, 242, 178, 28, 49, 23, 85, 195, 62, 159, 159, 230, 184,\n\t\t125, 51, 204, 246, 91, 88, 250, 67, 117, 101, 42, 87, 14,\n\t\t188, 200, 103, 120, 141, 207, 75, 72, 54, 84, 71, 200, 200,\n\t\t205, 252, 204, 225, 173, 241, 146, 206, 14, 148, 97, 19, 0,\n\t\t88, 112, 220, 160, 128, 8, 141, 92, 176, 161, 15, 149, 135,\n\t\t33, 215, 127, 41, 88, 31, 52, 114, 254, 179, 176, 121, 84,\n\t\t226, 247, 96, 220, 226, 111, 217, 245, 175, 5, 65, 124, 1,\n\t\t207, 254, 22, 135, 248, 149, 145, 50, 255, 4, 198, 239, 183,\n\t\t198, 78, 241, 8, 195, 10, 134, 171, 17, 3, 87, 240, 236, 33,\n\t\t230, 61, 66, 132, 253, 32, 203, 183, 120, 148, 77, 226, 10,\n\t\t78, 34, 126, 138, 200, 251, 33, 48, 175, 95, 133, 247, 195,\n\t\t141, 0, 225, 19, 9, 107, 203, 95, 90, 245, 41, 214, 123, 36,\n\t\t229, 173, 208, 41, 65, 192, 135, 203, 52, 168, 108, 225, 78,\n\t\t132, 216, 229, 221, 24, 159, 181, 46, 98, 124, 17, 207, 98,\n\t\t255, 100, 157, 197, 120, 247, 50, 139, 208, 62, 145, 245,\n\t\t146, 12, 142, 120, 172, 8, 55, 176, 240, 24, 206, 226, 98,\n\t\t18, 103, 41, 154, 37, 139, 147, 69, 156, 197, 143, 9, 24,\n\t\t189, 234, 72, 177, 240, 42, 4, 122, 125, 123, 29, 110, 128,\n\t\t49, 127, 221, 228, 21, 250, 201, 17, 134, 210, 83, 24, 220,\n\t\t92, 57, 61, 7, 141, 165, 194, 95, 223, 241, 17, 140, 63, 130,\n\t\t248, 61, 152, 238, 154, 16, 223, 196, 191, 217, 57, 121, 242,\n\t\t195, 183, 142, 86, 42, 133, 245, 44, 174, 224, 38, 143, 136,\n\t\t30, 42, 139, 167, 120, 244, 223, 240, 137, 245, 147, 63, 120,\n\t\t108, 172, 144, 175, 128, 208, 94, 187, 67, 250, 233, 113,\n\t\t112, 27, 120, 33, 184, 7, 92, 240, 107, 43, 180, 152, 67,\n\t\t180, 162, 10, 225, 57, 40, 149, 225, 210, 129, 13, 111, 240,\n\t\t28, 150, 46, 239, 21, 70, 96, 163, 62, 15, 23, 96, 193, 245,\n\t\t31, 46, 23, 4, 228, 122, 5, 55, 195, 204, 248, 229, 89, 112,\n\t\t153, 230, 2, 58, 132, 241, 169, 113, 70, 222, 37, 49, 19,\n\t\t30, 61, 143, 173, 96, 124, 72, 156, 199, 184, 22, 133, 72,\n\t\t24, 151, 25, 227, 21, 22, 35, 77, 202, 140, 117, 191, 198,\n\t\t200, 211, 2, 130, 102, 13, 119, 31, 196, 37, 69, 128, 16,\n\t\t178, 25, 241, 164, 240, 182, 4, 195, 50, 152, 97, 31, 198,\n\t\t101, 204, 178, 16, 50, 25, 116, 18, 65, 224, 231, 254, 115,\n\t\t146, 244, 57, 255, 143, 20, 64, 5, 159, 228, 37, 233, 244,\n\t\t105, 250, 199, 159, 196, 21, 252, 88, 187, 93, 197, 177, 135,\n\t\t179, 89, 73, 193, 88, 121, 107, 187, 173, 196, 176, 243, 190,\n\t\t108, 54, 88, 211, 82, 159, 177, 254, 248, 184, 221, 38, 55,\n\t\t68, 99, 95, 213, 228, 75, 154, 220, 125, 202, 95, 146, 62,\n\t\t189, 177, 46, 200, 232, 46, 4, 103, 101, 173, 251, 121, 34,\n\t\t17, 191, 34, 107, 15, 9, 235, 232, 46, 20, 224, 18, 131, 119,\n\t\t166, 193, 24, 104, 17, 30, 155, 109, 111, 54, 91, 91, 249,\n\t\t140, 3, 216, 229, 64, 208, 219, 241, 235, 29, 252, 36, 222,\n\t\t242, 127, 117, 167, 4, 117, 31, 17, 49, 22, 241, 45, 228,\n\t\t184, 226, 31, 112, 152, 70, 238, 250, 207, 175, 255, 17, 252,\n\t\t29, 184, 1, 74, 96, 15, 120, 1, 56, 77, 165, 68, 3, 171, 247,\n\t\t5, 88, 107, 207, 12, 155, 15, 68, 96, 77, 152, 41, 15, 120,\n\t\t200, 236, 33, 124, 139, 142, 198, 12, 180, 161, 192, 100,\n\t\t211, 69, 141, 50, 124, 148, 229, 57, 196, 191, 141, 71, 236,\n\t\t126, 102, 23, 39, 138, 220, 91, 72, 240, 163, 3, 238, 35,\n\t\t201, 88, 4, 43, 16, 178, 60, 59, 42, 49, 210, 132, 200, 72,\n\t\t163, 2, 98, 118, 177, 98, 69, 100, 75, 26, 178, 89, 129, 77,\n\t\t251, 155, 27, 135, 99, 239, 100, 17, 79, 194, 54, 199, 174,\n\t\t178, 123, 66, 199, 149, 144, 200, 244, 186, 155, 27, 172,\n\t\t192, 177, 82, 42, 37, 201, 194, 147, 162, 248, 18, 23, 208,\n\t\t188, 94, 133, 191, 3, 127, 27, 88, 97, 94, 77, 50, 56, 245,\n\t\t208, 29, 116, 179, 5, 159, 91, 1, 120, 55, 204, 235, 203,\n\t\t251, 185, 9, 156, 128, 206, 236, 156, 249, 149, 27, 103, 21,\n\t\t254, 250, 50, 178, 186, 155, 126, 102, 96, 199, 207, 92, 247,\n\t\t254, 27, 102, 254, 7, 219, 243, 202, 251, 245, 26, 112, 56,\n\t\t143, 130, 38, 56, 0, 86, 8, 190, 105, 75, 125, 53, 234, 206,\n\t\t54, 211, 215, 45, 172, 62, 246, 150, 235, 45, 176, 148, 210,\n\t\t127, 26, 170, 189, 154, 34, 78, 161, 190, 139, 187, 107, 18,\n\t\t34, 89, 32, 135, 190, 127, 194, 245, 224, 208, 26, 174, 51,\n\t\t11, 142, 246, 145, 138, 107, 97, 64, 250, 89, 47, 244, 206,\n\t\t94, 8, 4, 121, 188, 74, 236, 84, 7, 242, 104, 122, 193, 102,\n\t\t121, 176, 82, 189, 95, 50, 143, 252, 214, 60, 254, 237, 115,\n\t\t207, 35, 92, 162, 153, 236, 213, 101, 234, 249, 228, 177,\n\t\t223, 63, 51, 160, 9, 246, 249, 109, 150, 234, 73, 119, 212,\n\t\t123, 236, 129, 45, 1, 133, 34, 219, 158, 249, 149, 39, 76,\n\t\t67, 207, 223, 133, 219, 254, 78, 162, 238, 213, 119, 236,\n\t\t186, 176, 101, 137, 210, 4, 199, 143, 240, 40, 225, 183, 172,\n\t\t87, 248, 135, 184, 92, 46, 142, 100, 107, 245, 113, 199, 144,\n\t\t89, 153, 197, 49, 205, 204, 91, 47, 54, 36, 149, 193, 10,\n\t\t134, 240, 247, 182, 117, 222, 227, 182, 36, 142, 177, 136,\n\t\t127, 107, 208, 62, 211, 60, 218, 45, 253, 89, 98, 172, 54,\n\t\t57, 222, 65, 156, 156, 193, 156, 164, 178, 70, 14, 234, 182,\n\t\t206, 75, 50, 203, 109, 237, 182, 97, 158, 255, 39, 233, 167,\n\t\t255, 130, 121, 46, 14, 200, 81, 122, 77, 227, 159, 147, 231,\n\t\t238, 191, 249, 101, 51, 253, 227, 48, 211, 97, 147, 232, 97,\n\t\t231, 96, 128, 57, 59, 176, 221, 146, 171, 103, 224, 97, 145,\n\t\t133, 179, 109, 161, 66, 192, 226, 134, 200, 48, 228, 47, 76,\n\t\t75, 33, 139, 155, 215, 110, 212, 51, 12, 49, 27, 90, 246,\n\t\t15, 25, 202, 31, 116, 54, 11, 95, 26, 47, 152, 80, 228, 84,\n\t\t65, 198, 2, 150, 199, 115, 105, 182, 118, 164, 96, 240, 136,\n\t\t179, 90, 186, 166, 104, 150, 98, 199, 35, 87, 3, 195, 162,\n\t\t107, 178, 70, 141, 101, 224, 27, 226, 11, 168, 224, 102, 76,\n\t\t99, 218, 176, 198, 180, 68, 84, 211, 152, 172, 142, 248, 239,\n\t\t241, 172, 125, 107, 36, 50, 185, 155, 143, 140, 110, 203,\n\t\t195, 33, 0, 140, 225, 94, 212, 106, 7, 88, 35, 63, 181, 229,\n\t\t105, 38, 48, 92, 172, 147, 117, 4, 65, 91, 100, 160, 255,\n\t\t191, 225, 144, 5, 17, 209, 69, 48, 65, 14, 150, 101, 173,\n\t\t66, 211, 194, 88, 154, 162, 105, 169, 17, 157, 67, 188, 81,\n\t\t56, 82, 99, 237, 248, 104, 76, 244, 115, 35, 168, 156, 8,\n\t\t205, 66, 252, 165, 48, 27, 137, 219, 240, 82, 144, 7, 77,\n\t\t174, 147, 236, 119, 159, 217, 61, 25, 81, 43, 19, 6, 203,\n\t\t127, 143, 71, 122, 22, 242, 170, 18, 77, 104, 99, 150, 49,\n\t\t109, 152, 25, 183, 128, 22, 226, 241, 209, 8, 239, 175, 211,\n\t\t248, 235, 155, 224, 31, 137, 254, 111, 180, 47, 163, 48, 157,\n\t\t45, 94, 101, 168, 36, 215, 241, 26, 117, 199, 125, 41, 161,\n\t\t159, 248, 28, 171, 225, 89, 34, 204, 154, 197, 26, 91, 99,\n\t\t84, 81, 41, 22, 21, 81, 101, 224, 38, 161, 159, 232, 254,\n\t\t30, 142, 146, 90, 185, 16, 197, 155, 72, 49, 140, 128, 111,\n\t\t43, 212, 109, 14, 125, 175, 103, 149, 183, 221, 147, 141,\n\t\t227, 29, 36, 223, 91, 179, 82, 154, 172, 107, 114, 71, 214,\n\t\t116, 89, 75, 89, 74, 177, 24, 124, 233, 229, 41, 235, 146,\n\t\t172, 145, 34, 184, 164, 201, 151, 172, 148, 97, 12, 232, 168,\n\t\t17, 197, 212, 245, 164, 47, 20, 71, 45, 4, 120, 213, 128,\n\t\t56, 183, 25, 18, 26, 82, 240, 169, 63, 100, 4, 64, 49, 170,\n\t\t56, 129, 167, 101, 249, 92, 142, 141, 200, 247, 212, 56, 135,\n\t\t175, 222, 35, 235, 92, 238, 156, 31, 197, 69, 148, 123, 170,\n\t\t124, 24, 117, 247, 210, 210, 125, 75, 75, 48, 75, 12, 151,\n\t\t99, 252, 77, 158, 164, 81, 186, 124, 207, 87, 136, 252, 109,\n\t\t9, 4, 190, 241, 54, 225, 51, 112, 19, 196, 0, 224, 137, 85,\n\t\t15, 37, 1, 68, 196, 6, 204, 107, 251, 205, 31, 38, 15, 190,\n\t\t254, 224, 99, 247, 197, 92, 145, 69, 85, 239, 253, 47, 22,\n\t\t69, 62, 54, 127, 172, 115, 240, 117, 135, 238, 123, 140, 99,\n\t\t116, 62, 113, 174, 125, 238, 13, 81, 38, 34, 100, 198, 221,\n\t\t33, 94, 39, 9, 216, 160, 8, 64, 163, 231, 145, 98, 144, 5,\n\t\t116, 171, 167, 159, 108, 232, 36, 112, 195, 223, 201, 93,\n\t\t192, 112, 192, 217, 12, 204, 118, 175, 170, 166, 249, 35,\n\t\t178, 194, 218, 52, 85, 186, 69, 82, 205, 128, 87, 200, 239,\n\t\t19, 11, 100, 119, 76, 235, 19, 185, 126, 193, 87, 161, 80,\n\t\t8, 22, 121, 249, 30, 61, 88, 72, 53, 236, 111, 75, 74, 205,\n\t\t54, 93, 103, 19, 184, 128, 221, 168, 59, 160, 238, 216, 133,\n\t\t38, 3, 44, 213, 211, 246, 74, 102, 66, 110, 87, 26, 56, 134,\n\t\t27, 149, 182, 156, 48, 165, 189, 154, 167, 90, 166, 58, 91,\n\t\t37, 119, 254, 140, 196, 85, 103, 85, 179, 251, 157, 59, 22,\n\t\t175, 62, 161, 70, 245, 108, 122, 206, 143, 243, 178, 63, 197,\n\t\t248, 167, 89, 207, 127, 108, 46, 157, 213, 163, 170, 102,\n\t\t238, 153, 38, 119, 72, 220, 244, 30, 19, 154, 139, 211, 211,\n\t\t219, 229, 17, 219, 164, 83, 196, 194, 142, 154, 29, 92, 222,\n\t\t65, 162, 145, 189, 145, 148, 98, 171, 126, 34, 50, 128, 73,\n\t\t12, 208, 136, 129, 20, 240, 8, 81, 179, 7, 18, 192, 75, 68,\n\t\t195, 222, 147, 85, 49, 240, 171, 129, 141, 40, 117, 188, 88,\n\t\t170, 18, 58, 75, 2, 39, 113, 51, 208, 181, 180, 65, 165, 178,\n\t\t31, 34, 45, 185, 236, 106, 65, 41, 123, 142, 27, 250, 18,\n\t\t242, 224, 53, 141, 229, 132, 125, 56, 33, 204, 63, 130, 163,\n\t\t76, 54, 58, 18, 141, 23, 160, 22, 215, 249, 183, 249, 181,\n\t\t249, 6, 254, 87, 69, 131, 219, 85, 20, 240, 103, 19, 246,\n\t\t153, 214, 209, 243, 123, 235, 28, 31, 31, 89, 156, 30, 95,\n\t\t16, 230, 83, 130, 202, 230, 4, 9, 191, 67, 87, 126, 196, 69,\n\t\t51, 6, 132, 163, 113, 61, 29, 101, 114, 100, 130, 200, 42,\n\t\t232, 141, 38, 195, 165, 188, 234, 238, 243, 71, 189, 219,\n\t\t205, 100, 57, 210, 24, 153, 94, 244, 198, 66, 217, 201, 195,\n\t\t116, 175, 90, 172, 59, 54, 161, 135, 12, 220, 105, 54, 23,\n\t\t96, 171, 23, 24, 112, 155, 234, 55, 134, 94, 128, 114, 223,\n\t\t195, 215, 242, 136, 123, 227, 75, 151, 241, 140, 32, 73, 30,\n\t\t57, 224, 89, 252, 176, 32, 73, 239, 36, 135, 67, 119, 33,\n\t\t126, 19, 241, 247, 172, 225, 175, 42, 16, 9, 99, 50, 131,\n\t\t51, 97, 224, 32, 198, 141, 52, 13, 103, 50, 97, 224, 137,\n\t\t91, 143, 112, 40, 196, 46, 251, 123, 214, 6, 225, 99, 112,\n\t\t44, 36, 20, 114, 2, 106, 104, 92, 161, 85, 176, 137, 84, 194,\n\t\t223, 194, 183, 232, 177, 217, 110, 216, 141, 86, 61, 195,\n\t\t186, 5, 199, 205, 213, 81, 189, 93, 34, 112, 75, 230, 100,\n\t\t181, 218, 60, 216, 253, 223, 72, 250, 86, 101, 113, 98, 220,\n\t\t203, 235, 86, 42, 155, 205, 102, 83, 150, 158, 247, 198, 39,\n\t\t22, 43, 223, 146, 16, 204, 28, 108, 69, 48, 142, 136, 215,\n\t\t156, 166, 19, 147, 5, 177, 48, 90, 112, 214, 215, 139, 201,\n\t\t78, 172, 18, 211, 99, 149, 88, 39, 89, 92, 95, 119, 10, 163,\n\t\t5, 81, 144, 215, 42, 21, 177, 35, 14, 203, 79, 139, 132, 43,\n\t\t112, 139, 20, 216, 173, 103, 152, 250, 60, 211, 104, 123,\n\t\t254, 6, 58, 151, 23, 210, 208, 225, 5, 164, 113, 249, 105,\n\t\t182, 92, 42, 251, 117, 159, 171, 183, 91, 131, 2, 226, 183,\n\t\t65, 67, 140, 200, 17, 209, 128, 199, 42, 20, 5, 95, 129, 49,\n\t\t231, 40, 212, 37, 61, 162, 71, 116, 209, 128, 71, 29, 106,\n\t\t240, 51, 44, 23, 251, 51, 205, 159, 252, 181, 86, 54, 238,\n\t\t15, 187, 241, 172, 100, 180, 32, 22, 36, 142, 147, 4, 12,\n\t\t91, 198, 123, 41, 50, 206, 79, 179, 126, 253, 42, 188, 6,\n\t\t55, 8, 22, 119, 23, 241, 52, 239, 143, 10, 68, 234, 68, 54,\n\t\t219, 1, 42, 143, 37, 45, 55, 208, 181, 54, 60, 191, 104, 131,\n\t\t191, 58, 225, 156, 219, 3, 225, 53, 49, 230, 239, 142, 99,\n\t\t34, 255, 12, 228, 224, 51, 124, 76, 214, 196, 110, 77, 212,\n\t\t228, 217, 142, 255, 111, 20, 119, 87, 241, 40, 236, 232, 34,\n\t\t198, 24, 139, 58, 207, 156, 133, 240, 44, 211, 253, 175, 154,\n\t\t172, 139, 162, 46, 107, 215, 54, 253, 127, 216, 34, 56, 4,\n\t\t210, 41, 31, 134, 191, 10, 10, 132, 23, 154, 120, 190, 173,\n\t\t66, 1, 17, 250, 172, 144, 45, 129, 56, 159, 242, 202, 165,\n\t\t166, 87, 244, 39, 7, 151, 192, 183, 60, 215, 97, 238, 143,\n\t\t70, 187, 127, 238, 186, 191, 111, 50, 186, 150, 128, 146,\n\t\t56, 43, 74, 48, 161, 233, 208, 168, 69, 163, 208, 117, 93,\n\t\t249, 81, 109, 109, 99, 77, 123, 52, 7, 203, 66, 94, 56, 37,\n\t\t138, 115, 154, 43, 27, 186, 252, 26, 132, 49, 122, 141, 172,\n\t\t71, 165, 132, 29, 161, 119, 254, 97, 242, 85, 201, 98, 49,\n\t\t249, 170, 73, 82, 94, 124, 15, 223, 203, 131, 8, 56, 0, 142,\n\t\t131, 151, 2, 224, 185, 133, 5, 232, 20, 195, 218, 54, 118,\n\t\t176, 70, 18, 80, 169, 92, 138, 48, 130, 235, 184, 2, 117,\n\t\t196, 233, 247, 119, 103, 1, 182, 203, 165, 114, 219, 107,\n\t\t212, 139, 254, 64, 102, 248, 45, 197, 19, 50, 144, 48, 10,\n\t\t55, 168, 112, 141, 50, 77, 161, 199, 149, 146, 34, 242, 240,\n\t\t59, 4, 217, 246, 12, 4, 184, 131, 117, 220, 193, 248, 213,\n\t\t146, 45, 137, 72, 66, 72, 65, 178, 130, 53, 89, 16, 5, 37,\n\t\t106, 232, 150, 31, 144, 85, 53, 171, 40, 248, 231, 79, 105,\n\t\t50, 140, 117, 159, 145, 181, 61, 144, 17, 56, 87, 98, 165,\n\t\t57, 137, 149, 92, 178, 199, 147, 178, 18, 251, 221, 82, 41,\n\t\t103, 175, 211, 246, 5, 59, 15, 234, 148, 160, 92, 199, 182,\n\t\t35, 43, 146, 192, 113, 72, 86, 85, 73, 18, 100, 77, 65, 138,\n\t\t166, 98, 164, 248, 159, 145, 11, 133, 139, 178, 214, 221,\n\t\t212, 228, 89, 14, 241, 210, 200, 136, 36, 11, 255, 78, 20,\n\t\t7, 113, 243, 126, 63, 160, 108, 0, 47, 5, 247, 83, 244, 214,\n\t\t160, 245, 2, 63, 220, 63, 40, 152, 198, 102, 183, 89, 148,\n\t\t13, 95, 187, 191, 224, 190, 71, 225, 88, 5, 187, 19, 248,\n\t\t191, 51, 85, 72, 168, 75, 40, 129, 201, 223, 170, 210, 180,\n\t\t180, 217, 223, 247, 244, 15, 235, 59, 69, 234, 89, 36, 93,\n\t\t129, 157, 65, 250, 147, 172, 169, 146, 25, 150, 188, 86, 154,\n\t\t150, 212, 238, 191, 217, 97, 199, 244, 134, 29, 226, 30, 88,\n\t\t149, 80, 246, 50, 24, 242, 73, 21, 202, 99, 246, 130, 163,\n\t\t224, 20, 120, 9, 0, 124, 216, 161, 122, 115, 27, 188, 129,\n\t\t175, 41, 183, 31, 71, 81, 229, 249, 52, 244, 110, 32, 193,\n\t\t25, 12, 195, 207, 96, 106, 40, 11, 151, 101, 173, 123, 117,\n\t\t16, 160, 220, 36, 231, 215, 110, 245, 67, 69, 255, 103, 253,\n\t\t190, 9, 137, 17, 127, 119, 22, 254, 26, 137, 187, 72, 142,\n\t\t27, 244, 129, 141, 21, 140, 87, 62, 62, 16, 79, 143, 61, 61,\n\t\t237, 58, 89, 87, 142, 1, 16, 13, 212, 138, 132, 181, 208,\n\t\t232, 173, 41, 123, 24, 209, 254, 114, 227, 65, 162, 102, 252,\n\t\t175, 166, 116, 167, 169, 234, 170, 169, 147, 227, 157, 254,\n\t\t202, 224, 244, 189, 167, 101, 248, 66, 162, 120, 92, 54, 19,\n\t\t242, 185, 238, 223, 249, 117, 178, 182, 70, 106, 70, 57, 231,\n\t\t47, 33, 206, 156, 145, 200, 222, 252, 31, 175, 95, 101, 120,\n\t\t248, 91, 32, 10, 210, 160, 66, 48, 239, 160, 61, 128, 63,\n\t\t18, 232, 4, 92, 114, 4, 36, 76, 19, 207, 135, 142, 48, 13,\n\t\t219, 94, 59, 3, 93, 199, 205, 64, 234, 88, 143, 65, 211, 112,\n\t\t30, 250, 171, 61, 246, 143, 111, 185, 99, 190, 148, 143, 223,\n\t\t98, 70, 111, 141, 231, 75, 243, 113, 221, 114, 180, 140, 203,\n\t\t139, 214, 228, 191, 173, 78, 69, 173, 88, 100, 36, 46, 72,\n\t\t127, 229, 88, 250, 248, 164, 37, 242, 110, 230, 189, 49, 43,\n\t\t58, 85, 181, 36, 206, 176, 99, 87, 247, 223, 89, 74, 100,\n\t\t226, 241, 76, 162, 116, 231, 125, 205, 41, 158, 85, 226, 70,\n\t\t98, 74, 78, 227, 210, 62, 79, 224, 34, 89, 59, 55, 194, 79,\n\t\t53, 211, 242, 84, 194, 136, 43, 57, 193, 219, 87, 194, 94,\n\t\t78, 79, 26, 40, 240, 71, 7, 224, 87, 9, 39, 109, 26, 0, 179,\n\t\t29, 152, 223, 211, 29, 244, 94, 98, 168, 143, 108, 215, 107,\n\t\t177, 94, 11, 253, 181, 97, 92, 209, 140, 228, 21, 219, 185,\n\t\t146, 48, 180, 31, 109, 110, 110, 110, 108, 108, 192, 47, 10,\n\t\t194, 113, 33, 22, 249, 81, 70, 189, 160, 40, 23, 212, 204,\n\t\t143, 34, 49, 65, 63, 194, 28, 63, 206, 116, 127, 188, 252,\n\t\t142, 197, 208, 238, 229, 7, 12, 128, 191, 9, 210, 32, 71,\n\t\t88, 153, 170, 160, 65, 185, 77, 194, 111, 161, 224, 123, 254,\n\t\t90, 128, 110, 101, 211, 16, 181, 144, 93, 246, 63, 94, 102,\n\t\t91, 200, 246, 202, 200, 229, 131, 51, 252, 115, 215, 186,\n\t\t71, 215, 47, 92, 208, 245, 123, 44, 247, 37, 238, 61, 170,\n\t\t122, 143, 155, 63, 245, 192, 189, 247, 222, 27, 61, 117, 234,\n\t\t222, 123, 239, 133, 167, 201, 233, 191, 72, 241, 251, 29,\n\t\t185, 46, 138, 205, 166, 40, 214, 101, 231, 254, 184, 52, 122,\n\t\t49, 46, 149, 120, 190, 36, 197, 47, 194, 163, 163, 7, 223,\n\t\t7, 199, 198, 96, 169, 251, 185, 165, 242, 137, 95, 47, 151,\n\t\t199, 15, 5, 103, 0, 216, 235, 255, 116, 253, 75, 164, 108,\n\t\t82, 96, 150, 176, 143, 208, 45, 132, 19, 122, 250, 204, 247,\n\t\t221, 88, 59, 174, 71, 84, 151, 1, 252, 53, 216, 80, 80, 236,\n\t\t232, 2, 116, 29, 66, 139, 77, 113, 215, 1, 189, 41, 25, 132,\n\t\t253, 189, 252, 23, 152, 168, 84, 105, 200, 81, 179, 137, 113,\n\t\t115, 180, 45, 69, 27, 99, 18, 171, 220, 47, 96, 248, 38, 105,\n\t\t84, 138, 10, 74, 94, 70, 209, 212, 125, 169, 241, 138, 20,\n\t\t101, 227, 140, 34, 220, 175, 176, 82, 229, 19, 145, 216, 84,\n\t\t114, 53, 220, 105, 175, 154, 81, 57, 137, 228, 188, 140, 190,\n\t\t40, 171, 66, 252, 164, 158, 195, 21, 92, 219, 151, 63, 153,\n\t\t224, 109, 54, 206, 32, 116, 52, 18, 73, 203, 130, 35, 200,\n\t\t233, 169, 169, 197, 184, 160, 202, 247, 35, 196, 196, 89,\n\t\t155, 79, 124, 216, 109, 77, 164, 106, 3, 123, 254, 156, 62,\n\t\t41, 35, 91, 144, 1, 119, 189, 11, 0, 195, 192, 117, 224, 129,\n\t\t125, 96, 217, 31, 71, 96, 160, 200, 242, 43, 173, 175, 183,\n\t\t201, 245, 66, 100, 135, 30, 122, 237, 242, 230, 217, 61, 196,\n\t\t209, 85, 17, 229, 202, 211, 254, 186, 79, 64, 187, 153, 121,\n\t\t54, 240, 180, 152, 171, 183, 123, 176, 60, 118, 55, 132, 63,\n\t\t21, 16, 20, 88, 201, 114, 116, 50, 194, 94, 7, 228, 164, 59,\n\t\t150, 196, 10, 16, 9, 115, 134, 96, 39, 179, 198, 122, 126,\n\t\t23, 54, 186, 63, 180, 32, 176, 248, 184, 182, 174, 197, 119,\n\t\t49, 170, 160, 8, 136, 205, 167, 162, 81, 120, 92, 139, 70,\n\t\t53, 201, 213, 89, 36, 40, 130, 10, 117, 73, 136, 73, 102,\n\t\t186, 22, 139, 182, 201, 184, 77, 6, 238, 118, 52, 86, 75,\n\t\t155, 82, 76, 144, 198, 35, 201, 168, 92, 202, 142, 71, 235,\n\t\t117, 213, 48, 62, 9, 25, 86, 224, 34, 185, 104, 42, 26, 77,\n\t\t69, 117, 87, 226, 4, 150, 129, 67, 156, 15, 51, 96, 23, 197,\n\t\t185, 20, 41, 204, 237, 6, 37, 208, 166, 59, 231, 65, 122,\n\t\t2, 183, 103, 135, 31, 20, 69, 143, 168, 19, 126, 203, 73,\n\t\t101, 7, 115, 156, 77, 57, 14, 154, 72, 42, 132, 131, 70, 73,\n\t\t78, 160, 238, 175, 19, 93, 110, 11, 58, 6, 148, 185, 239,\n\t\t97, 22, 170, 36, 226, 91, 92, 193, 173, 141, 154, 99, 253,\n\t\t172, 141, 69, 139, 53, 183, 192, 157, 74, 230, 169, 159, 214,\n\t\t124, 242, 247, 136, 30, 248, 197, 251, 121, 81, 251, 116,\n\t\t8, 112, 129, 215, 255, 241, 250, 87, 224, 219, 225, 87, 169,\n\t\t141, 186, 191, 99, 235, 173, 126, 90, 1, 115, 15, 57, 80,\n\t\t218, 87, 191, 6, 137, 203, 34, 242, 16, 124, 72, 198, 145,\n\t\t119, 101, 56, 73, 90, 149, 36, 46, 243, 174, 8, 150, 151,\n\t\t71, 34, 88, 58, 145, 142, 8, 130, 124, 63, 43, 8, 2, 123,\n\t\t191, 44, 8, 145, 244, 9, 9, 71, 70, 14, 41, 201, 216, 140,\n\t\t24, 137, 136, 51, 177, 164, 242, 194, 132, 242, 34, 77, 85,\n\t\t94, 199, 50, 12, 251, 58, 69, 213, 94, 164, 36, 192, 16, 63,\n\t\t74, 4, 196, 137, 37, 39, 25, 68, 41, 168, 49, 64, 20, 10,\n\t\t126, 217, 58, 89, 215, 14, 67, 112, 243, 87, 94, 188, 247,\n\t\t252, 28, 61, 124, 241, 87, 14, 195, 250, 97, 122, 130, 15,\n\t\t76, 103, 38, 172, 156, 69, 142, 111, 60, 159, 153, 152, 200,\n\t\t156, 159, 121, 101, 112, 14, 120, 37, 252, 57, 67, 0, 24,\n\t\t88, 160, 4, 22, 193, 18, 56, 1, 128, 55, 13, 155, 141, 186,\n\t\t133, 252, 181, 84, 27, 181, 61, 141, 51, 27, 67, 235, 8, 219,\n\t\t114, 220, 82, 185, 77, 153, 121, 92, 1, 105, 144, 34, 4, 136,\n\t\t159, 208, 114, 201, 11, 57, 77, 77, 161, 220, 254, 44, 195,\n\t\t48, 130, 160, 217, 184, 161, 158, 224, 70, 4, 44, 10, 236,\n\t\t111, 244, 213, 26, 26, 147, 214, 48, 207, 218, 14, 35, 104,\n\t\t110, 52, 93, 194, 162, 22, 31, 157, 55, 70, 83, 150, 44, 235,\n\t\t39, 208, 186, 32, 163, 152, 80, 156, 216, 68, 174, 81, 105,\n\t\t39, 34, 140, 21, 59, 173, 164, 229, 136, 196, 67, 136, 251,\n\t\t74, 143, 75, 178, 246, 241, 232, 104, 213, 208, 20, 81, 118,\n\t\t188, 118, 86, 43, 233, 242, 188, 197, 154, 121, 41, 242, 3,\n\t\t36, 11, 235, 168, 251, 4, 210, 97, 191, 124, 169, 158, 102,\n\t\t206, 223, 165, 239, 160, 163, 201, 35, 193, 46, 17, 189, 42,\n\t\t34, 203, 74, 191, 179, 142, 64, 127, 164, 243, 218, 94, 195,\n\t\t33, 171, 198, 5, 216, 158, 134, 133, 157, 85, 53, 187, 100,\n\t\t232, 48, 41, 70, 74, 203, 76, 138, 129, 38, 35, 199, 5, 196,\n\t\t20, 25, 185, 40, 177, 49, 8, 57, 155, 149, 74, 50, 83, 130,\n\t\t172, 192, 157, 216, 73, 131, 115, 29, 200, 47, 77, 69, 94,\n\t\t35, 73, 175, 17, 147, 119, 202, 146, 240, 164, 36, 221, 141,\n\t\t221, 179, 146, 244, 36, 135, 184, 119, 4, 186, 156, 193, 124,\n\t\t52, 253, 189, 208, 14, 90, 172, 54, 245, 163, 214, 12, 115,\n\t\t64, 71, 107, 186, 48, 166, 11, 223, 157, 211, 63, 199, 33,\n\t\t84, 64, 108, 177, 200, 162, 2, 66, 220, 92, 112, 157, 103,\n\t\t13, 147, 163, 49, 59, 170, 194, 254, 70, 192, 194, 65, 120,\n\t\t64, 80, 133, 23, 159, 19, 176, 176, 87, 204, 141, 10, 88,\n\t\t56, 247, 189, 32, 197, 131, 246, 33, 8, 232, 32, 239, 167,\n\t\t218, 163, 236, 41, 173, 94, 139, 65, 219, 171, 131, 172, 62,\n\t\t137, 55, 253, 96, 57, 186, 155, 153, 231, 190, 166, 106, 17,\n\t\t53, 249, 29, 210, 64, 188, 193, 196, 183, 42, 185, 147, 12,\n\t\t207, 50, 136, 31, 225, 17, 180, 176, 171, 155, 88, 252, 148,\n\t\t145, 52, 246, 126, 140, 180, 132, 135, 135, 148, 101, 223,\n\t\t201, 77, 50, 44, 207, 60, 237, 111, 230, 118, 49, 130, 98,\n\t\t196, 135, 210, 41, 130, 4, 200, 131, 41, 191, 23, 6, 5, 133,\n\t\t182, 117, 4, 161, 231, 96, 191, 28, 0, 133, 108, 184, 78,\n\t\t203, 231, 210, 64, 59, 191, 175, 156, 74, 149, 211, 27, 21,\n\t\t81, 58, 95, 17, 197, 10, 60, 68, 138, 165, 54, 212, 134, 117,\n\t\t2, 169, 250, 238, 90, 69, 20, 47, 248, 15, 213, 6, 245, 138,\n\t\t34, 176, 192, 56, 152, 246, 251, 39, 12, 75, 139, 169, 247,\n\t\t108, 106, 218, 222, 182, 146, 243, 183, 143, 200, 110, 180,\n\t\t152, 96, 143, 211, 34, 4, 27, 244, 207, 46, 216, 141, 224,\n\t\t15, 9, 240, 13, 164, 28, 159, 48, 34, 146, 153, 52, 165, 7,\n\t\t6, 202, 243, 66, 182, 179, 158, 141, 215, 71, 184, 40, 35,\n\t\t59, 217, 254, 63, 147, 135, 103, 104, 207, 250, 28, 82, 145,\n\t\t162, 235, 10, 82, 255, 219, 96, 209, 146, 167, 186, 235, 165,\n\t\t248, 25, 121, 224, 103, 217, 151, 196, 134, 117, 165, 57,\n\t\t80, 5, 123, 193, 161, 157, 218, 175, 63, 55, 70, 194, 253,\n\t\t157, 235, 180, 61, 98, 168, 218, 44, 151, 252, 209, 198, 242,\n\t\t232, 137, 90, 175, 54, 111, 160, 51, 141, 240, 4, 166, 49,\n\t\t202, 71, 114, 178, 20, 195, 150, 165, 36, 144, 132, 78, 200,\n\t\t73, 65, 74, 38, 21, 57, 166, 140, 117, 118, 212, 161, 94,\n\t\t188, 36, 10, 194, 40, 158, 197, 163, 130, 48, 171, 36, 4,\n\t\t201, 222, 99, 41, 98, 12, 35, 243, 126, 89, 140, 225, 212,\n\t\t241, 148, 146, 224, 165, 241, 215, 61, 209, 107, 219, 236,\n\t\t80, 155, 105, 14, 182, 152, 157, 90, 116, 4, 110, 219, 100,\n\t\t185, 78, 187, 21, 54, 156, 141, 193, 92, 172, 102, 20, 143,\n\t\t16, 238, 144, 131, 167, 100, 130, 182, 19, 27, 74, 242, 51,\n\t\t58, 86, 188, 82, 240, 144, 38, 151, 60, 234, 223, 149, 31,\n\t\t74, 87, 3, 28, 6, 171, 55, 109, 205, 200, 35, 96, 19, 122,\n\t\t164, 158, 160, 172, 17, 232, 52, 234, 110, 173, 81, 95, 128,\n\t\t77, 63, 186, 230, 71, 91, 182, 229, 82, 240, 108, 207, 119,\n\t\t20, 34, 71, 127, 34, 216, 169, 3, 188, 198, 130, 76, 165,\n\t\t194, 64, 11, 178, 12, 220, 199, 48, 251, 32, 195, 182, 32,\n\t\t7, 231, 185, 20, 57, 254, 46, 141, 130, 131, 143, 237, 216,\n\t\t75, 126, 98, 51, 12, 11, 71, 71, 33, 203, 48, 54, 132, 123,\n\t\t25, 142, 217, 11, 103, 184, 239, 64, 200, 65, 145, 158, 206,\n\t\t147, 56, 56, 252, 32, 16, 6, 100, 144, 42, 176, 65, 146, 172,\n\t\t190, 123, 178, 200, 98, 169, 236, 207, 120, 193, 82, 164,\n\t\t44, 32, 183, 237, 33, 127, 45, 91, 118, 219, 94, 89, 64, 129,\n\t\t140, 242, 99, 86, 98, 33, 101, 60, 70, 196, 226, 217, 132,\n\t\t213, 49, 82, 175, 32, 49, 127, 69, 194, 129, 236, 50, 78,\n\t\t46, 62, 66, 228, 224, 223, 27, 184, 77, 31, 165, 188, 156,\n\t\t215, 191, 14, 159, 133, 159, 33, 115, 124, 128, 7, 38, 146,\n\t\t202, 114, 179, 29, 88, 170, 14, 48, 159, 149, 90, 48, 27,\n\t\t197, 39, 95, 182, 248, 234, 253, 231, 31, 133, 47, 59, 169,\n\t\t152, 209, 221, 183, 92, 124, 252, 226, 45, 187, 163, 240,\n\t\t131, 88, 99, 237, 183, 159, 222, 255, 234, 253, 151, 207,\n\t\t159, 126, 135, 205, 106, 216, 136, 242, 250, 93, 11, 183,\n\t\t92, 188, 120, 203, 194, 93, 58, 31, 13, 120, 38, 174, 255,\n\t\t39, 134, 133, 255, 25, 56, 61, 155, 195, 42, 149, 60, 154,\n\t\t237, 18, 226, 203, 211, 208, 131, 63, 84, 227, 204, 17, 198,\n\t\t150, 223, 220, 145, 179, 63, 97, 69, 174, 251, 163, 251, 52,\n\t\t70, 133, 95, 66, 70, 164, 187, 172, 96, 190, 121, 171, 170,\n\t\t24, 39, 97, 145, 71, 236, 207, 39, 133, 76, 232, 63, 228,\n\t\t235, 240, 103, 240, 243, 160, 24, 88, 238, 23, 242, 129, 143,\n\t\t251, 30, 23, 36, 234, 185, 169, 109, 182, 71, 96, 187, 81,\n\t\t39, 223, 238, 173, 8, 137, 215, 164, 103, 31, 61, 127, 246,\n\t\t128, 8, 69, 69, 48, 81, 189, 227, 39, 253, 104, 171, 129,\n\t\t68, 229, 81, 36, 89, 168, 126, 228, 238, 243, 163, 130, 37,\n\t\t238, 35, 6, 182, 99, 34, 35, 192, 242, 31, 188, 223, 67, 182,\n\t\t168, 8, 144, 175, 92, 124, 252, 98, 189, 129, 44, 9, 61, 170,\n\t\t136, 168, 126, 176, 251, 69, 145, 21, 26, 151, 232, 232, 37,\n\t\t88, 34, 128, 61, 25, 220, 18, 177, 72, 164, 164, 73, 91, 244,\n\t\t138, 133, 237, 166, 36, 198, 14, 68, 138, 131, 166, 104, 54,\n\t\t188, 38, 161, 98, 17, 133, 54, 25, 165, 111, 150, 122, 225,\n\t\t29, 163, 225, 26, 146, 186, 3, 162, 145, 245, 1, 137, 8, 236,\n\t\t236, 16, 79, 253, 28, 94, 133, 79, 193, 13, 144, 29, 176,\n\t\t158, 234, 235, 187, 123, 123, 123, 98, 250, 14, 31, 151, 169,\n\t\t17, 103, 86, 214, 178, 228, 184, 120, 238, 206, 253, 112,\n\t\t131, 4, 187, 79, 146, 78, 116, 150, 158, 47, 156, 251, 213,\n\t\t115, 67, 250, 145, 2, 56, 12, 94, 62, 128, 240, 222, 174,\n\t\t137, 234, 213, 216, 86, 155, 211, 189, 176, 103, 78, 220,\n\t\t123, 198, 187, 177, 70, 171, 239, 173, 251, 26, 81, 4, 63,\n\t\t69, 114, 75, 253, 242, 211, 178, 24, 8, 119, 9, 201, 32, 92,\n\t\t238, 63, 115, 133, 4, 175, 244, 131, 180, 228, 168, 125, 203,\n\t\t64, 112, 227, 121, 69, 131, 190, 127, 186, 205, 128, 207,\n\t\t132, 78, 172, 161, 99, 129, 70, 221, 165, 254, 45, 41, 219,\n\t\t0, 114, 44, 228, 182, 225, 42, 241, 12, 192, 220, 155, 200,\n\t\t87, 102, 103, 43, 249, 196, 189, 12, 241, 16, 224, 7, 152,\n\t\t123, 19, 235, 228, 66, 145, 59, 246, 236, 242, 172, 221, 145,\n\t\t21, 242, 180, 221, 145, 29, 185, 99, 15, 233, 91, 90, 59,\n\t\t240, 63, 229, 81, 185, 221, 44, 123, 180, 27, 229, 5, 219,\n\t\t114, 81, 169, 224, 175, 54, 26, 117, 207, 165, 220, 140, 91,\n\t\t25, 160, 46, 59, 250, 1, 134, 57, 160, 59, 110, 46, 55, 157,\n\t\t11, 2, 174, 31, 153, 155, 206, 229, 134, 128, 168, 127, 25,\n\t\t25, 67, 26, 26, 139, 248, 55, 92, 68, 3, 145, 49, 132, 200,\n\t\t47, 7, 100, 140, 125, 94, 142, 5, 178, 246, 160, 148, 171,\n\t\t131, 158, 23, 252, 45, 254, 2, 172, 91, 19, 48, 223, 108,\n\t\t148, 234, 105, 104, 229, 247, 66, 87, 32, 155, 251, 8, 213,\n\t\t43, 58, 254, 2, 154, 160, 16, 248, 65, 231, 189, 78, 189,\n\t\t13, 63, 223, 76, 34, 100, 68, 31, 250, 248, 67, 15, 157, 158,\n\t\t26, 51, 144, 133, 18, 205, 91, 49, 142, 97, 92, 139, 197,\n\t\t166, 197, 168, 100, 136, 134, 120, 202, 63, 24, 146, 177,\n\t\t39, 56, 119, 159, 40, 37, 252, 106, 171, 204, 74, 154, 4,\n\t\t47, 52, 147, 200, 66, 198, 216, 212, 233, 135, 30, 250, 248,\n\t\t67, 81, 3, 161, 100, 19, 199, 98, 115, 254, 75, 98, 19, 82,\n\t\t84, 52, 252, 63, 131, 188, 43, 26, 55, 36, 195, 63, 111, 38,\n\t\t74, 146, 38, 205, 86, 40, 248, 130, 29, 242, 131, 52, 62,\n\t\t232, 9, 169, 236, 185, 165, 178, 127, 18, 144, 231, 162, 178,\n\t\t229, 122, 35, 16, 57, 94, 121, 1, 186, 109, 255, 38, 10, 236,\n\t\t69, 94, 146, 88, 48, 242, 229, 121, 109, 105, 73, 155, 47,\n\t\t23, 244, 133, 68, 73, 60, 85, 204, 204, 207, 103, 138, 167,\n\t\t196, 210, 179, 153, 227, 199, 51, 129, 249, 200, 179, 206,\n\t\t238, 21, 182, 109, 142, 140, 143, 143, 152, 109, 118, 101,\n\t\t183, 179, 216, 204, 43, 183, 70, 45, 43, 122, 171, 146, 111,\n\t\t114, 119, 204, 206, 222, 1, 84, 82, 254, 60, 252, 131, 1,\n\t\t127, 250, 47, 6, 47, 3, 175, 3, 15, 131, 127, 5, 62, 8, 126,\n\t\t11, 124, 10, 0, 147, 48, 159, 18, 211, 163, 42, 44, 181, 154,\n\t\t51, 94, 9, 185, 53, 66, 237, 25, 196, 184, 86, 143, 4, 223,\n\t\t126, 190, 97, 254, 57, 60, 115, 163, 231, 111, 244, 91, 254,\n\t\t192, 231, 62, 119, 64, 22, 39, 120, 133, 101, 207, 40, 194,\n\t\t234, 170, 160, 156, 97, 89, 133, 159, 96, 111, 70, 47, 241,\n\t\t75, 176, 76, 192, 179, 7, 102, 102, 14, 200, 234, 65, 17,\n\t\t22, 56, 21, 206, 21, 10, 115, 80, 229, 10, 80, 60, 200, 243,\n\t\t226, 215, 183, 10, 96, 135, 254, 95, 122, 206, 241, 96, 144,\n\t\t211, 93, 2, 25, 208, 0, 123, 137, 111, 215, 128, 145, 183,\n\t\t238, 240, 100, 121, 85, 232, 141, 133, 243, 92, 49, 195, 186,\n\t\t253, 161, 177, 229, 111, 237, 201, 176, 234, 255, 162, 97,\n\t\t182, 26, 54, 220, 88, 37, 232, 162, 238, 134, 169, 174, 102,\n\t\t9, 95, 46, 84, 163, 81, 21, 62, 12, 77, 215, 130, 36, 34,\n\t\t187, 42, 105, 82, 247, 26, 146, 86, 37, 180, 214, 129, 151,\n\t\t107, 53, 36, 73, 15, 168, 230, 198, 134, 106, 154, 234, 228,\n\t\t232, 158, 177, 226, 84, 98, 100, 215, 216, 225, 201, 73, 63,\n\t\t98, 99, 67, 210, 30, 144, 144, 255, 212, 117, 176, 177, 49,\n\t\t188, 110, 69, 160, 64, 152, 223, 2, 139, 158, 65, 68, 2, 178,\n\t\t11, 173, 233, 62, 111, 126, 195, 43, 80, 219, 125, 8, 204,\n\t\t132, 73, 212, 223, 250, 81, 175, 227, 29, 37, 35, 233, 90,\n\t\t199, 76, 152, 176, 70, 196, 196, 107, 116, 132, 205, 238,\n\t\t62, 171, 220, 125, 183, 114, 118, 119, 150, 14, 184, 228,\n\t\t30, 145, 131, 6, 92, 41, 22, 72, 16, 251, 162, 121, 112, 140,\n\t\t32, 128, 182, 234, 45, 252, 50, 97, 234, 123, 97, 193, 246,\n\t\t6, 68, 242, 185, 129, 112, 249, 6, 241, 94, 223, 46, 164,\n\t\t193, 84, 100, 45, 101, 117, 43, 110, 142, 204, 145, 21, 93,\n\t\t255, 41, 198, 143, 99, 12, 47, 144, 211, 236, 224, 197, 227,\n\t\t24, 119, 253, 171, 117, 77, 238, 62, 109, 165, 114, 46, 212,\n\t\t101, 77, 148, 181, 238, 83, 226, 179, 207, 138, 152, 232,\n\t\t254, 233, 255, 213, 225, 139, 64, 32, 207, 18, 59, 223, 135,\n\t\t225, 39, 65, 20, 36, 192, 100, 232, 101, 168, 92, 202, 18,\n\t\t209, 110, 211, 155, 135, 78, 104, 174, 80, 12, 110, 229, 131,\n\t\t91, 237, 58, 243, 70, 158, 207, 43, 202, 253, 221, 239, 221,\n\t\t175, 40, 121, 158, 63, 243, 227, 31, 95, 39, 32, 16, 168,\n\t\t144, 27, 11, 79, 46, 208, 248, 103, 96, 145, 211, 252, 152,\n\t\t123, 238, 241, 35, 52, 238, 228, 174, 93, 221, 191, 32, 168,\n\t\t144, 55, 240, 26, 159, 151, 229, 118, 91, 150, 243, 188, 198,\n\t\t223, 50, 200, 35, 26, 250, 154, 63, 1, 238, 4, 175, 220, 201,\n\t\t247, 192, 47, 167, 33, 218, 122, 223, 232, 169, 99, 169, 6,\n\t\t22, 18, 135, 88, 221, 13, 255, 184, 28, 56, 157, 31, 58, 172,\n\t\t255, 194, 200, 238, 31, 251, 71, 88, 226, 69, 24, 248, 222,\n\t\t74, 155, 112, 195, 76, 119, 111, 237, 61, 243, 246, 94, 232,\n\t\t141, 59, 197, 125, 204, 15, 249, 7, 200, 223, 235, 7, 253,\n\t\t3, 229, 121, 165, 54, 189, 5, 138, 155, 25, 178, 234, 237,\n\t\t179, 203, 66, 202, 46, 235, 250, 243, 224, 76, 209, 45, 80,\n\t\t14, 218, 121, 198, 37, 196, 180, 26, 28, 54, 227, 125, 180,\n\t\t184, 215, 76, 152, 179, 71, 44, 35, 194, 64, 9, 118, 223,\n\t\t242, 63, 254, 70, 138, 136, 146, 134, 157, 223, 78, 148, 214,\n\t\t141, 204, 144, 1, 239, 218, 140, 74, 233, 103, 149, 211, 187,\n\t\t9, 251, 44, 148, 49, 100, 47, 125, 148, 48, 212, 70, 180,\n\t\t250, 159, 22, 147, 70, 198, 24, 226, 66, 35, 220, 187, 112,\n\t\t24, 195, 178, 7, 6, 216, 109, 200, 230, 88, 130, 52, 40, 65,\n\t\t178, 150, 162, 174, 103, 30, 148, 80, 228, 213, 17, 36, 117,\n\t\t127, 110, 195, 117, 27, 166, 204, 191, 55, 83, 112, 192, 253,\n\t\t134, 169, 170, 102, 247, 86, 248, 130, 238, 39, 204, 68, 98,\n\t\t24, 191, 49, 59, 128, 38, 10, 76, 19, 16, 241, 16, 18, 152,\n\t\t78, 180, 23, 96, 187, 213, 44, 79, 11, 100, 142, 207, 16,\n\t\t164, 120, 176, 121, 122, 5, 203, 196, 89, 204, 66, 94, 213,\n\t\t28, 165, 80, 174, 228, 71, 19, 156, 194, 58, 12, 11, 89, 69,\n\t\t137, 90, 9, 117, 254, 182, 209, 253, 99, 217, 89, 35, 216,\n\t\t71, 125, 131, 227, 56, 54, 207, 65, 14, 242, 146, 40, 212,\n\t\t178, 185, 137, 24, 199, 112, 5, 150, 229, 57, 200, 138, 72,\n\t\t18, 184, 219, 246, 142, 45, 150, 98, 250, 48, 198, 100, 55,\n\t\t56, 68, 91, 53, 145, 157, 50, 229, 16, 2, 210, 168, 187, 1,\n\t\t142, 93, 112, 220, 128, 214, 130, 174, 167, 40, 253, 50, 162,\n\t\t75, 61, 147, 34, 240, 169, 31, 19, 112, 223, 123, 143, 221,\n\t\t18, 209, 93, 141, 85, 199, 173, 201, 230, 201, 93, 227, 81,\n\t\t136, 167, 176, 198, 196, 88, 30, 39, 178, 247, 29, 247, 55,\n\t\t43, 237, 41, 49, 42, 200, 136, 147, 246, 30, 59, 255, 232,\n\t\t163, 39, 237, 98, 212, 112, 71, 45, 248, 249, 55, 221, 179,\n\t\t176, 2, 133, 8, 54, 156, 93, 51, 139, 167, 29, 108, 224, 55,\n\t\t168, 58, 100, 235, 35, 199, 78, 95, 124, 252, 98, 154, 103,\n\t\t17, 150, 108, 161, 242, 232, 183, 30, 237, 94, 25, 27, 49,\n\t\t157, 177, 172, 105, 7, 120, 23, 8, 191, 10, 20, 127, 119,\n\t\t184, 0, 93, 36, 76, 64, 84, 246, 90, 77, 48, 192, 130, 57,\n\t\t200, 187, 216, 120, 203, 250, 91, 204, 228, 212, 108, 54,\n\t\t11, 159, 156, 77, 221, 170, 34, 52, 134, 44, 244, 27, 244,\n\t\t164, 222, 154, 122, 141, 127, 63, 155, 157, 157, 74, 194,\n\t\t213, 217, 101, 255, 1, 11, 141, 33, 244, 27, 244, 164, 222,\n\t\t154, 2, 33, 199, 50, 89, 243, 153, 254, 136, 229, 185, 53,\n\t\t90, 128, 165, 86, 134, 35, 182, 58, 4, 138, 232, 151, 37,\n\t\t89, 91, 204, 35, 175, 253, 219, 103, 225, 161, 221, 157, 14,\n\t\t131, 85, 77, 97, 21, 46, 1, 239, 115, 178, 218, 169, 229,\n\t\t105, 25, 119, 36, 40, 138, 150, 85, 46, 46, 100, 162, 239,\n\t\t57, 134, 152, 217, 206, 217, 253, 140, 36, 73, 130, 124, 0,\n\t\t238, 78, 57, 102, 242, 137, 151, 176, 45, 211, 146, 52, 29,\n\t\t187, 209, 194, 200, 108, 82, 15, 100, 21, 126, 123, 46, 128,\n\t\t38, 88, 0, 199, 192, 41, 0, 138, 249, 82, 94, 8, 149, 136,\n\t\t121, 33, 160, 184, 31, 132, 71, 16, 159, 124, 245, 118, 221,\n\t\t161, 127, 141, 186, 211, 128, 164, 182, 91, 126, 35, 109,\n\t\t236, 24, 132, 155, 184, 92, 45, 199, 202, 49, 183, 162, 168,\n\t\t229, 106, 25, 167, 44, 157, 128, 40, 8, 29, 110, 172, 28,\n\t\t35, 119, 171, 101, 85, 41, 199, 186, 27, 170, 153, 149, 157,\n\t\t232, 171, 135, 78, 29, 42, 207, 90, 182, 82, 151, 201, 191,\n\t\t148, 117, 101, 149, 70, 193, 142, 169, 106, 41, 167, 88, 178,\n\t\t183, 158, 65, 136, 187, 0, 1, 63, 88, 207, 2, 169, 101, 144,\n\t\t229, 145, 81, 244, 219, 97, 174, 69, 252, 10, 195, 159, 98,\n\t\t220, 141, 145, 69, 76, 139, 83, 152, 23, 118, 215, 207, 176,\n\t\t42, 119, 138, 144, 37, 251, 179, 84, 247, 155, 87, 57, 150,\n\t\t255, 221, 11, 143, 242, 144, 127, 53, 153, 203, 175, 255,\n\t\t211, 245, 47, 51, 57, 248, 85, 32, 2, 211, 111, 57, 69, 106,\n\t\t162, 87, 133, 30, 17, 178, 18, 127, 211, 188, 235, 55, 115,\n\t\t68, 92, 130, 121, 109, 199, 102, 116, 36, 67, 188, 87, 81,\n\t\t158, 248, 19, 9, 93, 149, 209, 237, 235, 221, 63, 251, 48,\n\t\t15, 133, 185, 165, 213, 203, 44, 251, 192, 11, 145, 178, 161,\n\t\t160, 23, 236, 150, 149, 127, 187, 15, 201, 87, 145, 36, 172,\n\t\t127, 232, 195, 124, 132, 155, 128, 240, 93, 171, 119, 252,\n\t\t43, 12, 37, 113, 32, 79, 214, 22, 27, 225, 86, 31, 113, 76,\n\t\t35, 123, 168, 195, 190, 110, 144, 248, 103, 164, 27, 193,\n\t\t154, 106, 210, 253, 223, 101, 36, 101, 148, 236, 170, 156,\n\t\t144, 143, 78, 19, 51, 202, 3, 126, 240, 104, 86, 193, 122,\n\t\t39, 24, 157, 232, 30, 177, 123, 5, 102, 37, 244, 122, 29,\n\t\t43, 217, 85, 73, 58, 54, 77, 140, 45, 15, 74, 210, 177, 99,\n\t\t89, 226, 214, 49, 240, 45, 236, 175, 49, 20, 96, 130, 116,\n\t\t192, 22, 55, 65, 183, 203, 33, 31, 158, 233, 31, 39, 8, 19,\n\t\t207, 250, 242, 218, 218, 242, 166, 127, 88, 39, 192, 196,\n\t\t191, 107, 45, 45, 181, 102, 102, 102, 224, 250, 218, 198,\n\t\t218, 218, 198, 218, 123, 8, 90, 241, 58, 88, 186, 111, 201,\n\t\t123, 191, 23, 214, 103, 248, 254, 161, 183, 247, 184, 35,\n\t\t251, 239, 164, 191, 14, 223, 213, 165, 68, 243, 128, 191,\n\t\t126, 253, 250, 117, 230, 97, 184, 14, 102, 193, 28, 88, 2,\n\t\t39, 193, 121, 234, 59, 66, 131, 196, 20, 211, 43, 35, 98,\n\t\t16, 222, 27, 195, 168, 255, 227, 121, 24, 104, 212, 134, 200,\n\t\t82, 218, 60, 106, 148, 16, 49, 188, 42, 45, 64, 58, 190, 45,\n\t\t192, 2, 242, 199, 55, 58, 170, 161, 30, 126, 78, 112, 51,\n\t\t144, 129, 173, 37, 8, 151, 90, 205, 165, 177, 200, 105, 164,\n\t\t54, 149, 131, 147, 173, 165, 91, 154, 174, 149, 153, 145,\n\t\t53, 164, 160, 51, 72, 122, 117, 164, 225, 151, 117, 71, 69,\n\t\t199, 157, 238, 119, 98, 19, 220, 177, 88, 69, 58, 169, 105,\n\t\t226, 148, 40, 229, 170, 213, 223, 63, 182, 30, 27, 21, 126,\n\t\t158, 175, 87, 115, 178, 60, 197, 178, 130, 42, 168, 236, 148,\n\t\t5, 225, 36, 4, 183, 182, 90, 199, 32, 92, 106, 206, 150, 98,\n\t\t239, 81, 198, 219, 75, 237, 230, 146, 88, 211, 100, 65, 65,\n\t\t18, 210, 99, 132, 143, 66, 121, 179, 120, 172, 228, 188, 62,\n\t\t225, 196, 241, 81, 166, 186, 88, 93, 125, 176, 146, 173, 173,\n\t\t50, 181, 124, 174, 202, 28, 17, 84, 86, 98, 89, 225, 112,\n\t\t108, 100, 100, 50, 240, 129, 225, 143, 79, 77, 48, 7, 110,\n\t\t1, 43, 3, 18, 17, 123, 88, 212, 208, 55, 163, 219, 34, 120,\n\t\t240, 159, 7, 61, 245, 35, 93, 186, 132, 75, 147, 158, 22,\n\t\t146, 80, 99, 137, 26, 22, 136, 14, 114, 147, 28, 85, 147,\n\t\t178, 92, 190, 237, 119, 223, 214, 253, 21, 162, 114, 172,\n\t\t65, 224, 79, 211, 215, 253, 35, 212, 41, 109, 97, 135, 160,\n\t\t151, 63, 166, 68, 178, 125, 69, 100, 214, 84, 55, 72, 116,\n\t\t45, 63, 61, 157, 175, 117, 175, 81, 53, 100, 224, 86, 99,\n\t\t93, 53, 215, 250, 254, 3, 123, 99, 67, 25, 44, 236, 128, 111,\n\t\t19, 168, 31, 233, 5, 72, 84, 111, 182, 229, 180, 137, 45,\n\t\t231, 141, 226, 7, 125, 231, 252, 206, 200, 222, 78, 70, 224,\n\t\t12, 134, 141, 223, 182, 111, 225, 5, 9, 142, 181, 184, 47,\n\t\t100, 230, 59, 35, 60, 23, 133, 126, 92, 231, 182, 36, 203,\n\t\t154, 28, 92, 167, 148, 124, 148, 158, 239, 106, 210, 45, 230,\n\t\t237, 24, 39, 100, 88, 54, 206, 54, 167, 171, 109, 62, 197,\n\t\t113, 73, 129, 191, 65, 252, 128, 76, 131, 112, 141, 18, 229,\n\t\t205, 0, 36, 105, 8, 34, 190, 5, 174, 20, 234, 135, 219, 36,\n\t\t175, 207, 230, 220, 53, 226, 196, 94, 147, 159, 156, 93, 38,\n\t\t161, 207, 35, 105, 121, 246, 73, 89, 35, 23, 107, 110, 78,\n\t\t66, 48, 230, 230, 2, 215, 105, 143, 203, 218, 242, 236, 147,\n\t\t36, 88, 147, 80, 247, 251, 179, 203, 154, 12, 99, 254, 245,\n\t\t213, 156, 11, 137, 175, 51, 63, 109, 95, 38, 190, 70, 26,\n\t\t224, 12, 0, 197, 156, 75, 124, 40, 57, 161, 31, 17, 175, 224,\n\t\t7, 203, 211, 176, 220, 156, 135, 30, 59, 232, 242, 108, 4,\n\t\t82, 119, 75, 229, 194, 205, 201, 213, 9, 56, 246, 103, 221,\n\t\t31, 8, 80, 85, 52, 70, 200, 230, 98, 78, 22, 194, 232, 127,\n\t\t55, 10, 49, 123, 4, 10, 170, 116, 232, 144, 223, 138, 206,\n\t\t243, 50, 130, 18, 124, 23, 214, 216, 42, 247, 218, 26, 233,\n\t\t7, 33, 113, 122, 16, 92, 207, 70, 149, 120, 164, 224, 230,\n\t\t178, 78, 220, 208, 99, 177, 28, 132, 35, 182, 98, 69, 4, 120,\n\t\t134, 72, 65, 121, 137, 159, 138, 42, 87, 204, 199, 169, 47,\n\t\t55, 242, 187, 129, 96, 104, 131, 24, 230, 247, 208, 63, 63,\n\t\t191, 1, 204, 46, 176, 68, 127, 222, 217, 123, 195, 4, 142,\n\t\t225, 137, 30, 57, 197, 115, 205, 215, 250, 28, 198, 115, 33,\n\t\t41, 69, 136, 1, 246, 247, 169, 115, 224, 0, 193, 28, 4, 226,\n\t\t218, 66, 190, 76, 22, 183, 211, 176, 44, 132, 251, 211, 122,\n\t\t219, 35, 72, 148, 97, 79, 189, 141, 80, 216, 92, 180, 137,\n\t\t200, 170, 5, 127, 162, 237, 157, 244, 211, 123, 214, 83, 106,\n\t\t153, 117, 171, 144, 68, 222, 89, 255, 122, 114, 94, 61, 132,\n\t\t69, 99, 220, 84, 59, 132, 77, 166, 163, 154, 227, 134, 136,\n\t\t187, 239, 122, 61, 47, 243, 175, 95, 202, 143, 145, 148, 238,\n\t\t73, 228, 34, 73, 99, 15, 149, 73, 231, 15, 169, 5, 94, 123,\n\t\t68, 53, 41, 141, 158, 169, 62, 162, 241, 5, 245, 147, 103,\n\t\t75, 12, 83, 58, 219, 211, 41, 110, 194, 175, 129, 58, 104,\n\t\t131, 221, 196, 246, 110, 139, 167, 19, 98, 115, 89, 106, 81,\n\t\t204, 165, 191, 0, 112, 66, 135, 180, 182, 133, 44, 106, 65,\n\t\t237, 85, 161, 235, 69, 160, 215, 244, 90, 126, 206, 237, 90,\n\t\t195, 177, 29, 55, 3, 235, 109, 175, 93, 119, 51, 176, 237,\n\t\t181, 225, 122, 186, 64, 221, 157, 20, 51, 113, 78, 22, 119,\n\t\t71, 59, 135, 180, 36, 114, 228, 148, 166, 165, 100, 7, 37,\n\t\t181, 67, 157, 232, 30, 81, 102, 159, 201, 198, 234, 239, 30,\n\t\t175, 199, 142, 9, 147, 205, 250, 180, 191, 192, 230, 52, 203,\n\t\t18, 24, 141, 65, 105, 71, 16, 31, 137, 238, 45, 80, 207, 39,\n\t\t163, 243, 209, 57, 81, 27, 201, 169, 166, 165, 206, 228, 37,\n\t\t158, 215, 16, 210, 120, 94, 202, 207, 168, 150, 169, 230,\n\t\t70, 52, 241, 47, 30, 172, 100, 55, 55, 179, 149, 79, 179,\n\t\t172, 34, 8, 10, 203, 198, 69, 86, 48, 12, 65, 176, 35, 188,\n\t\t64, 245, 99, 189, 57, 238, 8, 56, 3, 94, 65, 199, 54, 71,\n\t\t40, 83, 9, 171, 198, 184, 78, 56, 197, 17, 163, 22, 215, 35,\n\t\t6, 195, 180, 238, 220, 225, 25, 206, 27, 24, 69, 220, 54,\n\t\t63, 60, 213, 21, 219, 195, 51, 156, 109, 57, 222, 60, 100,\n\t\t96, 115, 9, 222, 210, 110, 46, 77, 169, 102, 2, 67, 24, 145,\n\t\t87, 148, 131, 147, 237, 37, 8, 143, 212, 29, 19, 235, 217,\n\t\t89, 191, 214, 102, 15, 142, 124, 200, 90, 36, 162, 103, 13,\n\t\t57, 37, 164, 76, 249, 177, 183, 101, 237, 238, 255, 143, 78,\n\t\t120, 104, 140, 71, 185, 106, 21, 254, 132, 169, 229, 69, 113,\n\t\t38, 152, 234, 234, 78, 61, 63, 50, 1, 193, 82, 179, 125, 11,\n\t\t92, 106, 238, 41, 219, 145, 177, 169, 152, 28, 25, 111, 223,\n\t\t218, 110, 28, 97, 160, 96, 197, 53, 89, 214, 42, 89, 210,\n\t\t49, 113, 105, 92, 36, 226, 120, 15, 93, 73, 218, 49, 188,\n\t\t4, 171, 139, 213, 91, 242, 117, 230, 36, 175, 114, 34, 203,\n\t\t10, 183, 185, 217, 124, 141, 97, 38, 66, 27, 27, 127, 190,\n\t\t75, 129, 81, 208, 33, 45, 166, 167, 237, 117, 92, 91, 99,\n\t\t250, 158, 113, 218, 165, 208, 3, 115, 88, 82, 78, 221, 11,\n\t\t187, 72, 8, 251, 131, 107, 251, 78, 60, 246, 221, 199, 78,\n\t\t236, 19, 197, 92, 35, 245, 208, 199, 31, 218, 219, 16, 111,\n\t\t37, 114, 133, 117, 213, 76, 89, 216, 40, 25, 216, 74, 153,\n\t\t170, 169, 118, 84, 243, 245, 120, 58, 69, 92, 87, 76, 99,\n\t\t137, 115, 249, 136, 169, 184, 185, 156, 171, 39, 145, 203,\n\t\t125, 135, 8, 24, 254, 212, 84, 87, 173, 148, 40, 166, 172,\n\t\t85, 213, 92, 165, 34, 29, 194, 129, 115, 149, 97, 224, 71,\n\t\t128, 10, 198, 0, 40, 186, 13, 178, 224, 107, 120, 174, 83,\n\t\t247, 204, 12, 68, 133, 114, 143, 109, 167, 64, 93, 212, 18,\n\t\t171, 19, 23, 118, 156, 87, 124, 86, 136, 240, 159, 61, 151,\n\t\t217, 197, 89, 220, 55, 71, 185, 220, 3, 41, 206, 226, 102,\n\t\t118, 243, 54, 55, 122, 111, 142, 27, 101, 75, 247, 151, 83,\n\t\t169, 242, 253, 165, 111, 78, 126, 81, 16, 190, 120, 228, 173,\n\t\t146, 4, 213, 226, 203, 42, 158, 36, 221, 245, 54, 73, 62,\n\t\t93, 121, 89, 145, 169, 84, 82, 233, 114, 185, 103, 203, 144,\n\t\t133, 27, 32, 231, 167, 35, 224, 10, 219, 201, 32, 60, 32,\n\t\t162, 12, 215, 130, 48, 187, 48, 51, 138, 241, 40, 174, 96,\n\t\t255, 52, 179, 176, 242, 224, 202, 85, 106, 150, 160, 55, 142,\n\t\t43, 205, 32, 30, 87, 112, 83, 57, 222, 152, 91, 89, 73, 134,\n\t\t102, 10, 116, 45, 8, 215, 225, 58, 136, 81, 109, 77, 176,\n\t\t226, 29, 242, 82, 92, 106, 55, 66, 98, 75, 248, 90, 28, 225,\n\t\t141, 147, 206, 202, 131, 43, 43, 115, 227, 133, 101, 131,\n\t\t23, 196, 207, 82, 90, 193, 117, 124, 66, 20, 120, 99, 185,\n\t\t48, 62, 183, 178, 242, 224, 138, 115, 210, 224, 35, 221, 77,\n\t\t146, 140, 112, 223, 159, 133, 155, 96, 15, 177, 135, 184,\n\t\t121, 222, 60, 226, 179, 154, 244, 35, 226, 62, 169, 77, 251,\n\t\t15, 33, 203, 187, 113, 174, 27, 28, 91, 226, 33, 18, 42, 50,\n\t\t195, 25, 238, 33, 215, 224, 24, 185, 34, 32, 200, 151, 56,\n\t\t182, 65, 203, 227, 218, 246, 226, 216, 63, 193, 178, 217,\n\t\t42, 47, 202, 102, 196, 178, 34, 166, 44, 242, 213, 44, 199,\n\t\t76, 228, 105, 17, 245, 49, 170, 51, 148, 135, 124, 160, 124,\n\t\t110, 90, 59, 55, 42, 184, 173, 53, 181, 165, 16, 55, 123,\n\t\t133, 216, 56, 174, 164, 112, 5, 167, 48, 38, 39, 82, 113,\n\t\t59, 149, 233, 85, 184, 9, 150, 193, 217, 231, 154, 54, 134,\n\t\t174, 205, 41, 161, 45, 53, 222, 160, 210, 5, 55, 96, 89, 117,\n\t\t219, 91, 83, 254, 221, 29, 82, 158, 109, 164, 29, 221, 146,\n\t\t196, 148, 36, 153, 166, 193, 71, 252, 100, 11, 134, 101, 74,\n\t\t98, 90, 20, 45, 189, 176, 242, 220, 114, 133, 42, 123, 242,\n\t\t227, 5, 221, 18, 197, 180, 72, 94, 36, 136, 39, 252, 175,\n\t\t153, 52, 198, 210, 157, 225, 44, 15, 232, 254, 252, 62, 114,\n\t\t230, 249, 244, 18, 254, 6, 143, 149, 202, 109, 175, 167, 246,\n\t\t45, 149, 3, 75, 205, 155, 244, 169, 220, 64, 252, 72, 194,\n\t\t86, 220, 124, 174, 90, 205, 229, 93, 197, 46, 215, 231, 86,\n\t\t22, 110, 218, 231, 126, 56, 120, 3, 89, 137, 145, 88, 117,\n\t\t177, 26, 203, 198, 71, 86, 230, 26, 199, 193, 224, 248, 25,\n\t\t7, 57, 194, 70, 75, 106, 117, 155, 227, 240, 129, 250, 9,\n\t\t246, 174, 225, 35, 5, 127, 89, 209, 246, 172, 96, 156, 157,\n\t\t134, 133, 90, 126, 198, 31, 123, 233, 174, 117, 5, 35, 153,\n\t\t53, 102, 194, 14, 92, 243, 139, 252, 49, 90, 75, 159, 225,\n\t\t81, 112, 111, 174, 184, 80, 230, 114, 153, 234, 98, 213, 46,\n\t\t58, 108, 132, 205, 165, 201, 115, 126, 61, 242, 136, 53, 106,\n\t\t97, 23, 159, 241, 235, 134, 150, 202, 73, 196, 247, 239, 229,\n\t\t247, 140, 178, 17, 200, 248, 197, 226, 20, 237, 76, 142, 141,\n\t\t250, 79, 246, 100, 247, 132, 239, 177, 4, 142, 128, 229, 173,\n\t\t249, 43, 228, 183, 85, 6, 77, 55, 87, 255, 69, 61, 46, 52,\n\t\t64, 101, 154, 97, 14, 231, 234, 229, 225, 202, 9, 178, 219,\n\t\t125, 229, 131, 43, 91, 42, 247, 149, 189, 118, 218, 203, 195,\n\t\t72, 60, 75, 234, 102, 36, 49, 66, 242, 217, 241, 107, 104,\n\t\t91, 189, 62, 210, 239, 139, 0, 64, 127, 173, 48, 65, 252,\n\t\t226, 244, 68, 7, 46, 53, 101, 14, 106, 207, 223, 1, 211, 44,\n\t\t17, 217, 236, 150, 17, 130, 71, 17, 222, 136, 106, 146, 148,\n\t\t146, 68, 45, 234, 87, 81, 121, 177, 60, 94, 136, 70, 72, 103,\n\t\t208, 140, 193, 193, 22, 241, 164, 199, 69, 53, 210, 7, 181,\n\t\t40, 169, 146, 185, 242, 98, 217, 137, 106, 162, 68, 162, 182,\n\t\t142, 21, 87, 97, 14, 254, 62, 152, 4, 77, 0, 60, 42, 10, 245,\n\t\t66, 195, 136, 102, 224, 131, 177, 103, 130, 60, 64, 242, 230,\n\t\t132, 102, 149, 127, 63, 190, 242, 224, 202, 120, 166, 98,\n\t\t241, 8, 241, 86, 76, 20, 132, 89, 81, 156, 21, 4, 49, 70,\n\t\t99, 42, 101, 63, 105, 213, 239, 141, 63, 184, 178, 242, 224,\n\t\t120, 90, 74, 16, 162, 182, 88, 132, 62, 166, 197, 201, 101,\n\t\t66, 250, 78, 53, 152, 125, 252, 50, 171, 193, 63, 133, 203,\n\t\t160, 2, 106, 1, 35, 49, 221, 8, 211, 202, 21, 80, 160, 206,\n\t\t116, 220, 70, 159, 199, 177, 237, 134, 233, 129, 63, 148,\n\t\t164, 89, 62, 18, 243, 7, 18, 41, 29, 126, 213, 31, 87, 98,\n\t\t17, 254, 111, 73, 90, 158, 14, 19, 136, 177, 85, 201, 132,\n\t\t233, 199, 152, 164, 254, 114, 181, 63, 198, 211, 121, 215,\n\t\t32, 30, 48, 9, 59, 34, 73, 66, 56, 130, 132, 53, 148, 93,\n\t\t152, 193, 21, 76, 198, 130, 79, 209, 122, 240, 251, 250, 227,\n\t\t24, 63, 78, 251, 120, 216, 26, 194, 188, 101, 225, 114, 96,\n\t\t59, 24, 250, 49, 8, 100, 208, 244, 215, 143, 248, 73, 94,\n\t\t129, 58, 249, 213, 43, 253, 30, 249, 160, 255, 91, 9, 244,\n\t\t253, 204, 186, 68, 235, 65, 245, 216, 103, 192, 157, 0, 192,\n\t\t45, 190, 174, 75, 91, 61, 36, 252, 146, 247, 225, 213, 110,\n\t\t167, 103, 30, 211, 32, 134, 201, 199, 201, 241, 236, 243,\n\t\t140, 135, 89, 178, 36, 35, 135, 179, 212, 33, 11, 117, 248,\n\t\t248, 188, 162, 193, 144, 223, 150, 2, 152, 32, 220, 213, 207,\n\t\t1, 167, 17, 178, 73, 162, 173, 26, 6, 167, 238, 81, 23, 105,\n\t\t84, 42, 215, 233, 7, 187, 127, 74, 68, 93, 37, 239, 4, 133,\n\t\t39, 156, 240, 140, 194, 45, 133, 107, 91, 31, 163, 193, 26,\n\t\t145, 131, 189, 252, 132, 55, 110, 165, 82, 214, 184, 119,\n\t\t66, 215, 251, 105, 125, 39, 241, 123, 87, 32, 246, 17, 225,\n\t\t0, 48, 196, 33, 79, 230, 90, 116, 211, 52, 30, 159, 194, 216,\n\t\t85, 148, 233, 105, 69, 113, 49, 158, 26, 186, 234, 126, 104,\n\t\t167, 148, 94, 217, 233, 209, 224, 106, 126, 135, 228, 82,\n\t\t57, 160, 191, 246, 67, 96, 130, 112, 213, 82, 254, 205, 250,\n\t\t0, 166, 40, 103, 111, 19, 118, 248, 139, 155, 111, 7, 173,\n\t\t127, 122, 145, 150, 28, 232, 43, 97, 174, 74, 136, 14, 58,\n\t\t39, 23, 167, 9, 127, 0, 81, 240, 6, 126, 226, 175, 92, 70,\n\t\t210, 0, 94, 220, 37, 40, 13, 138, 34, 113, 29, 82, 0, 11,\n\t\t3, 31, 67, 91, 116, 112, 33, 108, 21, 110, 30, 111, 46, 112,\n\t\t172, 208, 189, 34, 176, 220, 66, 243, 248, 137, 153, 205,\n\t\t250, 241, 218, 32, 251, 255, 7, 167, 115, 185, 233, 28, 92,\n\t\t189, 14, 202, 187, 234, 172, 162, 176, 245, 93, 101, 8, 202,\n\t\t187, 118, 125, 50, 196, 36, 106, 237, 156, 255, 12, 232, 225,\n\t\t13, 195, 244, 248, 125, 237, 240, 205, 211, 52, 108, 89, 54,\n\t\t124, 29, 166, 113, 244, 102, 105, 125, 86, 147, 169, 153,\n\t\t189, 172, 61, 221, 15, 82, 114, 194, 238, 143, 3, 223, 29,\n\t\t55, 73, 123, 255, 48, 61, 224, 247, 37, 148, 29, 83, 91, 68,\n\t\t68, 125, 28, 193, 156, 157, 107, 53, 90, 5, 175, 62, 72, 77,\n\t\t97, 15, 216, 141, 243, 118, 174, 197, 100, 187, 89, 120, 53,\n\t\t155, 213, 173, 20, 21, 25, 166, 172, 46, 176, 168, 91, 165,\n\t\t85, 152, 221, 236, 116, 214, 83, 150, 78, 4, 11, 161, 87,\n\t\t161, 213, 245, 245, 255, 47, 190, 183, 214, 221, 252, 23,\n\t\t255, 94, 225, 38, 223, 211, 175, 222, 236, 115, 255, 156,\n\t\t239, 185, 55, 251, 222, 83, 235, 55, 254, 28, 51, 244, 173,\n\t\t231, 240, 165, 27, 231, 106, 199, 111, 128, 0, 47, 246, 101,\n\t\t120, 0, 254, 62, 176, 1, 40, 22, 122, 66, 7, 36, 144, 22,\n\t\t238, 66, 71, 128, 211, 247, 205, 178, 2, 154, 65, 42, 219,\n\t\t58, 35, 58, 46, 130, 105, 81, 122, 224, 18, 210, 88, 135,\n\t\t225, 209, 195, 183, 75, 50, 134, 255, 30, 75, 98, 247, 7,\n\t\t162, 75, 249, 187, 33, 128, 95, 5, 71, 200, 204, 73, 60, 117,\n\t\t134, 107, 52, 47, 20, 119, 77, 195, 178, 198, 244, 36, 93,\n\t\t253, 117, 91, 19, 81, 43, 145, 121, 166, 81, 207, 64, 215,\n\t\t63, 57, 54, 4, 136, 95, 241, 215, 88, 43, 254, 170, 194, 205,\n\t\t76, 69, 163, 211, 25, 199, 15, 211, 88, 86, 96, 25, 150, 99,\n\t\t251, 55, 224, 35, 60, 170, 173, 225, 10, 94, 155, 129, 100,\n\t\t141, 193, 70, 141, 104, 148, 33, 193, 48, 158, 21, 216, 10,\n\t\t195, 179, 76, 120, 11, 12, 237, 37, 38, 193, 44, 237, 243,\n\t\t65, 210, 243, 100, 224, 11, 33, 64, 70, 144, 220, 208, 6,\n\t\t147, 62, 195, 247, 45, 40, 109, 98, 220, 27, 136, 243, 247,\n\t\t192, 58, 188, 106, 17, 120, 15, 49, 151, 180, 72, 24, 210,\n\t\t112, 119, 157, 210, 96, 193, 14, 94, 209, 228, 35, 36, 68,\n\t\t141, 45, 131, 199, 58, 253, 240, 103, 8, 108, 231, 153, 75,\n\t\t248, 136, 172, 53, 123, 188, 159, 132, 31, 109, 2, 188, 24,\n\t\t0, 175, 159, 194, 214, 142, 41, 180, 251, 185, 241, 236, 29,\n\t\t115, 214, 26, 244, 203, 72, 192, 246, 189, 31, 119, 132, 166,\n\t\t32, 36, 18, 130, 208, 20, 96, 182, 31, 222, 36, 199, 238,\n\t\t85, 18, 115, 137, 48, 123, 104, 178, 120, 129, 92, 174, 211,\n\t\t39, 6, 30, 38, 193, 206, 70, 63, 230, 8, 105, 167, 29, 89,\n\t\t59, 66, 46, 7, 249, 27, 8, 175, 89, 209, 31, 72, 135, 56,\n\t\t28, 136, 185, 154, 159, 78, 2, 119, 39, 132, 215, 240, 178,\n\t\t172, 161, 187, 144, 44, 172, 175, 19, 204, 57, 117, 91, 217,\n\t\t125, 214, 187, 11, 173, 11, 114, 40, 119, 165, 182, 198, 185,\n\t\t237, 26, 9, 163, 97, 111, 1, 144, 7, 58, 7, 162, 65, 184,\n\t\t18, 6, 106, 85, 2, 83, 236, 169, 21, 2, 175, 191, 126, 240,\n\t\t10, 113, 11, 77, 116, 96, 116, 93, 98, 131, 24, 104, 2, 15,\n\t\t220, 77, 36, 27, 249, 82, 171, 214, 106, 182, 61, 34, 223,\n\t\t116, 8, 74, 186, 140, 26, 60, 133, 74, 211, 91, 243, 220,\n\t\t192, 189, 70, 217, 220, 186, 0, 48, 74, 125, 241, 97, 232,\n\t\t140, 219, 111, 94, 2, 50, 32, 88, 186, 111, 73, 206, 36, 76,\n\t\t117, 78, 181, 18, 105, 121, 253, 200, 101, 248, 249, 252,\n\t\t158, 66, 107, 73, 206, 240, 188, 34, 42, 124, 112, 227, 233,\n\t\t203, 71, 244, 62, 118, 226, 169, 146, 72, 104, 34, 46, 199,\n\t\t143, 199, 47, 251, 129, 183, 137, 165, 53, 127, 107, 4, 69,\n\t\t119, 174, 89, 74, 36, 42, 173, 93, 142, 4, 55, 46, 235, 78,\n\t\t209, 166, 177, 178, 108, 235, 142, 18, 222, 209, 47, 119,\n\t\t175, 13, 64, 127, 203, 250, 24, 197, 73, 81, 124, 212, 152,\n\t\t222, 253, 35, 48, 100, 211, 59, 238, 175, 233, 67, 124, 135,\n\t\t69, 60, 169, 12, 231, 178, 209, 36, 238, 83, 130, 11, 226,\n\t\t182, 212, 134, 100, 46, 60, 208, 106, 29, 32, 85, 250, 20,\n\t\t189, 42, 120, 35, 164, 222, 245, 189, 167, 247, 194, 77, 34,\n\t\t188, 222, 255, 242, 104, 244, 229, 251, 73, 48, 188, 198,\n\t\t179, 39, 166, 72, 184, 219, 217, 115, 234, 212, 158, 65, 156,\n\t\t152, 159, 150, 246, 243, 74, 205, 52, 204, 11, 200, 108, 183,\n\t\t10, 150, 123, 243, 52, 241, 106, 125, 174, 174, 126, 81, 185,\n\t\t162, 60, 151, 148, 173, 143, 78, 78, 142, 66, 144, 201, 231,\n\t\t51, 219, 203, 234, 23, 39, 139, 174, 217, 53, 88, 247, 19,\n\t\t6, 47, 220, 40, 77, 203, 178, 166, 253, 207, 211, 123, 175,\n\t\t192, 245, 155, 37, 134, 28, 46, 159, 218, 179, 7, 244, 112,\n\t\t196, 52, 45, 207, 61, 37, 194, 205, 211, 240, 28, 190, 31,\n\t\t126, 251, 127, 17, 255, 18, 68, 127, 24, 90, 47, 147, 156,\n\t\t6, 200, 246, 192, 146, 153, 170, 67, 90, 65, 160, 177, 61,\n\t\t208, 108, 195, 111, 171, 182, 42, 214, 68, 65, 65, 215, 100,\n\t\t77, 95, 203, 166, 45, 51, 37, 110, 61, 192, 53, 205, 81, 223,\n\t\t110, 69, 95, 27, 53, 89, 164, 8, 154, 140, 108, 237, 158,\n\t\t244, 196, 162, 149, 74, 91, 53, 116, 201, 63, 141, 212, 252,\n\t\t99, 53, 75, 194, 100, 242, 132, 215, 127, 30, 240, 138, 207,\n\t\t14, 164, 147, 166, 177, 10, 75, 243, 208, 25, 129, 116, 131,\n\t\t79, 211, 228, 135, 50, 204, 150, 116, 194, 15, 202, 166, 204,\n\t\t39, 217, 164, 254, 95, 100, 87, 120, 179, 204, 39, 115, 82,\n\t\t86, 54, 101, 35, 38, 202, 166, 44, 234, 138, 32, 186, 186,\n\t\t17, 19, 99, 176, 163, 68, 149, 199, 92, 251, 85, 186, 141,\n\t\t197, 143, 107, 57, 147, 87, 39, 255, 82, 137, 42, 49, 227,\n\t\t147, 223, 87, 162, 138, 160, 232, 226, 31, 126, 74, 143, 197,\n\t\t140, 167, 206, 24, 177, 192, 111, 49, 128, 31, 5, 211, 0,\n\t\t56, 205, 54, 1, 253, 135, 187, 122, 114, 46, 79, 51, 68, 67,\n\t\t67, 14, 84, 141, 67, 253, 151, 124, 223, 53, 178, 134, 235,\n\t\t26, 89, 50, 10, 94, 249, 52, 214, 89, 78, 28, 53, 191, 28,\n\t\t151, 210, 234, 154, 136, 13, 237, 18, 199, 47, 27, 82, 222,\n\t\t21, 221, 188, 43, 166, 42, 41, 237, 32, 111, 197, 213, 168,\n\t\t142, 150, 70, 48, 143, 58, 188, 37, 95, 211, 28, 54, 11, 65,\n\t\t207, 127, 114, 135, 240, 53, 2, 158, 24, 228, 244, 141, 19,\n\t\t234, 237, 128, 120, 184, 215, 134, 92, 211, 73, 67, 184, 174,\n\t\t172, 97, 237, 3, 178, 86, 76, 190, 73, 140, 178, 14, 43, 203,\n\t\t127, 230, 230, 52, 25, 30, 151, 99, 194, 111, 70, 178, 123,\n\t\t53, 116, 24, 105, 178, 152, 44, 98, 177, 33, 233, 57, 87,\n\t\t151, 53, 85, 234, 254, 220, 77, 189, 150, 216, 136, 108, 50,\n\t\t44, 252, 26, 177, 228, 32, 236, 178, 253, 90, 169, 194, 105,\n\t\t232, 231, 182, 85, 46, 205, 51, 4, 46, 213, 32, 8, 146, 12,\n\t\t28, 129, 13, 111, 30, 250, 143, 55, 188, 54, 252, 118, 54,\n\t\t202, 141, 178, 92, 130, 143, 235, 127, 100, 106, 111, 199,\n\t\t208, 201, 225, 189, 101, 134, 21, 85, 81, 79, 113, 5, 185,\n\t\t198, 69, 117, 197, 138, 48, 205, 72, 141, 75, 103, 13, 110,\n\t\t82, 25, 225, 224, 221, 98, 74, 255, 160, 162, 140, 107, 234,\n\t\t237, 17, 83, 125, 139, 146, 139, 65, 101, 215, 242, 255, 95,\n\t\t212, 85, 137, 225, 162, 250, 7, 255, 155, 158, 226, 24, 33,\n\t\t162, 252, 232, 107, 186, 33, 166, 245, 127, 255, 48, 217,\n\t\t31, 114, 65, 27, 218, 4, 83, 96, 6, 180, 136, 191, 77, 187,\n\t\t159, 94, 218, 136, 12, 170, 243, 111, 180, 182, 156, 253,\n\t\t19, 95, 176, 27, 94, 240, 7, 55, 97, 150, 117, 180, 43, 22,\n\t\t94, 167, 237, 200, 13, 42, 41, 248, 187, 14, 68, 241, 44,\n\t\t249, 127, 101, 149, 231, 46, 105, 134, 254, 20, 109, 71, 208,\n\t\t242, 43, 252, 233, 138, 127, 172, 196, 252, 163, 127, 120,\n\t\t201, 170, 255, 47, 228, 248, 165, 105, 4, 163, 164, 163, 7,\n\t\t9, 156, 134, 85, 88, 106, 47, 80, 58, 132, 145, 29, 18, 8,\n\t\t223, 153, 119, 73, 154, 174, 9, 26, 102, 59, 136, 199, 35,\n\t\t75, 72, 47, 142, 138, 7, 253, 221, 13, 73, 215, 51, 174, 177,\n\t\t76, 18, 195, 203, 252, 154, 154, 150, 226, 95, 54, 71, 35,\n\t\t122, 244, 211, 180, 245, 209, 150, 104, 4, 107, 225, 135,\n\t\t225, 42, 136, 147, 149, 89, 61, 19, 240, 12, 111, 217, 242,\n\t\t55, 160, 67, 10, 174, 85, 8, 90, 115, 149, 41, 56, 129, 95,\n\t\t30, 207, 108, 247, 233, 114, 247, 192, 186, 11, 121, 150,\n\t\t231, 32, 226, 79, 33, 190, 205, 163, 83, 60, 194, 204, 107,\n\t\t161, 218, 86, 160, 4, 21, 148, 97, 165, 186, 196, 140, 68,\n\t\t33, 195, 72, 80, 105, 11, 8, 198, 160, 178, 79, 98, 39, 116,\n\t\t40, 137, 19, 172, 180, 79, 129, 112, 149, 21, 216, 9, 30,\n\t\t253, 196, 95, 140, 254, 4, 241, 19, 184, 251, 7, 170, 242,\n\t\t246, 118, 222, 58, 133, 208, 169, 118, 38, 246, 118, 69, 228,\n\t\t97, 69, 17, 223, 218, 202, 218, 111, 21, 149, 45, 24, 253,\n\t\t136, 63, 182, 22, 137, 47, 241, 186, 19, 122, 109, 50, 75,\n\t\t229, 54, 209, 87, 15, 122, 203, 166, 182, 174, 48, 157, 202,\n\t\t184, 182, 246, 3, 130, 42, 228, 38, 96, 233, 190, 195, 82,\n\t\t36, 34, 185, 178, 150, 152, 68, 90, 76, 211, 126, 146, 158,\n\t\t197, 129, 119, 135, 141, 19, 76, 172, 126, 187, 38, 19, 24,\n\t\t200, 145, 23, 168, 49, 48, 168, 127, 30, 246, 175, 107, 15,\n\t\t249, 215, 109, 13, 249, 215, 37, 238, 80, 255, 31, 2, 197,\n\t\t238, 18, 172, 199, 198, 223, 249, 49, 140, 222, 5, 161, 119,\n\t\t93, 234, 104, 193, 204, 14, 121, 215, 237, 239, 233, 211,\n\t\t96, 130, 212, 216, 141, 61, 176, 164, 161, 197, 15, 249, 107,\n\t\t225, 111, 236, 252, 178, 5, 63, 179, 213, 69, 75, 247, 150,\n\t\t190, 3, 151, 35, 120, 14, 87, 240, 28, 14, 78, 48, 59, 236,\n\t\t177, 101, 20, 103, 251, 238, 92, 30, 233, 63, 135, 231, 240,\n\t\t144, 221, 186, 159, 102, 239, 121, 166, 121, 0, 176, 125,\n\t\t243, 52, 206, 97, 252, 121, 124, 243, 164, 109, 134, 16, 236,\n\t\t95, 178, 28, 135, 153, 255, 17, 133, 63, 80, 140, 205, 205,\n\t\t211, 168, 214, 36, 41, 37, 74, 181, 26, 145, 38, 215, 134,\n\t\t174, 110, 154, 242, 141, 157, 126, 17, 92, 129, 109, 249,\n\t\t217, 243, 60, 243, 83, 30, 112, 99, 176, 0, 219, 55, 207,\n\t\t195, 237, 41, 81, 186, 111, 154, 200, 190, 111, 147, 196,\n\t\t247, 221, 60, 221, 171, 41, 73, 188, 175, 42, 138, 41, 73,\n\t\t92, 17, 197, 247, 74, 253, 185, 11, 16, 255, 251, 0, 182,\n\t\t183, 242, 16, 57, 1, 187, 25, 252, 1, 142, 107, 114, 183,\n\t\t22, 136, 96, 222, 131, 227, 48, 37, 106, 90, 224, 102, 159,\n\t\t236, 69, 126, 255, 172, 168, 105, 7, 250, 249, 207, 194, 77,\n\t\t32, 17, 86, 31, 224, 57, 117, 207, 38, 250, 229, 16, 74, 239,\n\t\t213, 155, 4, 182, 91, 111, 53, 219, 107, 70, 198, 112, 56,\n\t\t204, 57, 41, 34, 26, 190, 140, 113, 169, 29, 171, 252, 10,\n\t\t203, 254, 155, 28, 207, 231, 224, 31, 19, 25, 177, 24, 107,\n\t\t151, 48, 14, 228, 61, 215, 127, 70, 252, 42, 110, 130, 4,\n\t\t24, 37, 26, 74, 98, 91, 147, 219, 38, 15, 109, 212, 93, 214,\n\t\t223, 70, 145, 145, 177, 191, 223, 160, 152, 70, 178, 19, 132,\n\t\t255, 136, 241, 132, 164, 117, 223, 234, 231, 224, 73, 178,\n\t\t170, 255, 160, 38, 93, 163, 66, 79, 50, 174, 116, 223, 170,\n\t\t73, 19, 228, 161, 15, 118, 224, 203, 21, 101, 82, 34, 24,\n\t\t177, 192, 46, 173, 187, 107, 109, 13, 73, 18, 116, 73, 164,\n\t\t52, 233, 223, 207, 102, 131, 50, 248, 19, 166, 3, 63, 2, 100,\n\t\t160, 249, 187, 60, 163, 57, 15, 23, 160, 129, 132, 82, 203,\n\t\t51, 92, 195, 108, 103, 160, 109, 88, 26, 140, 64, 127, 82,\n\t\t120, 228, 221, 162, 182, 185, 249, 59, 130, 132, 252, 11,\n\t\t120, 76, 192, 50, 51, 219, 93, 95, 96, 101, 177, 6, 215, 59,\n\t\t221, 117, 248, 21, 134, 21, 133, 238, 199, 200, 13, 184, 78,\n\t\t234, 237, 75, 100, 191, 103, 15, 140, 114, 68, 183, 217, 27,\n\t\t219, 54, 19, 165, 82, 226, 242, 155, 5, 117, 213, 15, 192,\n\t\t205, 82, 162, 123, 53, 81, 58, 199, 33, 180, 82, 74, 192,\n\t\t108, 162, 180, 101, 172, 118, 7, 173, 108, 183, 218, 6, 108,\n\t\t149, 249, 81, 160, 248, 51, 4, 227, 69, 129, 94, 253, 96,\n\t\t0, 10, 255, 28, 65, 124, 13, 31, 192, 22, 142, 65, 119, 0,\n\t\t163, 190, 227, 23, 224, 217, 254, 175, 183, 189, 183, 143,\n\t\t215, 217, 36, 122, 12, 138, 33, 232, 27, 75, 211, 73, 218,\n\t\t46, 216, 13, 194, 223, 18, 202, 252, 123, 186, 141, 213, 213,\n\t\t106, 174, 123, 53, 87, 93, 93, 186, 111, 105, 115, 189, 212,\n\t\t44, 61, 70, 68, 240, 159, 14, 132, 249, 221, 107, 100, 179,\n\t\t168, 103, 91, 75, 75, 173, 108, 54, 81, 42, 189, 127, 80,\n\t\t76, 207, 5, 235, 190, 223, 0, 227, 160, 13, 22, 193, 113,\n\t\t178, 174, 241, 171, 65, 99, 252, 239, 87, 251, 34, 250, 112,\n\t\t225, 21, 46, 34, 234, 14, 63, 224, 122, 199, 27, 8, 151, 7,\n\t\t194, 76, 71, 147, 197, 4, 163, 218, 184, 251, 107, 209, 36,\n\t\t155, 32, 130, 132, 253, 47, 23, 19, 14, 39, 46, 255, 229,\n\t\t178, 200, 57, 9, 241, 229, 251, 101, 173, 75, 41, 97, 181,\n\t\t53, 122, 186, 74, 79, 207, 232, 178, 246, 57, 197, 84, 220,\n\t\t232, 231, 200, 182, 227, 3, 10, 167, 39, 148, 87, 188, 66,\n\t\t73, 232, 156, 242, 1, 237, 139, 59, 72, 86, 251, 7, 16, 224,\n\t\t204, 175, 194, 175, 194, 13, 176, 159, 140, 202, 126, 206,\n\t\t66, 175, 16, 33, 189, 118, 143, 103, 187, 16, 144, 109, 123,\n\t\t189, 64, 128, 224, 31, 160, 164, 119, 34, 208, 43, 32, 248,\n\t\t5, 70, 62, 225, 46, 241, 34, 20, 161, 188, 28, 161, 120, 5,\n\t\t237, 46, 253, 255, 165, 238, 61, 192, 36, 185, 234, 123, 209,\n\t\t115, 42, 156, 83, 185, 67, 165, 206, 211, 97, 186, 122, 98,\n\t\t119, 111, 167, 154, 77, 51, 189, 179, 81, 218, 52, 146, 86,\n\t\t187, 171, 176, 218, 65, 105, 87, 40, 48, 10, 22, 98, 73, 131,\n\t\t4, 88, 34, 46, 70, 192, 26, 219, 186, 99, 95, 7, 9, 99, 35,\n\t\t100, 108, 11, 25, 195, 8, 17, 125, 47, 246, 62, 196, 179,\n\t\t177, 9, 119, 175, 159, 3, 230, 93, 203, 194, 96, 174, 140,\n\t\t81, 207, 251, 234, 156, 170, 238, 234, 153, 93, 9, 238, 125,\n\t\t223, 247, 190, 39, 237, 84, 56, 85, 93, 117, 170, 234, 132,\n\t\t127, 252, 253, 160, 52, 142, 48, 140, 236, 71, 24, 226, 87,\n\t\t61, 227, 25, 251, 38, 27, 74, 210, 178, 200, 143, 73, 71,\n\t\t37, 145, 191, 146, 44, 188, 189, 13, 69, 79, 45, 47, 3, 192,\n\t\t19, 249, 238, 11, 33, 14, 243, 233, 129, 245, 63, 240, 3,\n\t\t89, 235, 152, 137, 244, 102, 195, 194, 190, 92, 5, 59, 143,\n\t\t93, 63, 63, 127, 253, 252, 245, 196, 240, 252, 96, 104, 251,\n\t\t116, 94, 211, 132, 222, 7, 176, 82, 212, 52, 17, 46, 225,\n\t\t11, 243, 222, 193, 27, 136, 121, 250, 11, 161, 109, 248, 155,\n\t\t41, 165, 87, 151, 82, 10, 60, 47, 1, 126, 72, 70, 242, 234,\n\t\t179, 23, 128, 128, 70, 42, 32, 47, 10, 152, 146, 58, 129,\n\t\t31, 107, 22, 86, 33, 70, 197, 138, 163, 65, 203, 182, 8, 148,\n\t\t38, 34, 193, 100, 110, 211, 178, 115, 112, 22, 86, 170, 76,\n\t\t187, 3, 143, 126, 252, 204, 153, 143, 159, 233, 125, 149,\n\t\t116, 160, 199, 73, 12, 243, 95, 228, 76, 51, 103, 94, 137,\n\t\t48, 43, 227, 125, 7, 246, 97, 153, 197, 168, 157, 21, 145,\n\t\t196, 32, 77, 101, 227, 156, 196, 197, 89, 85, 67, 140, 132,\n\t\t196, 44, 60, 123, 198, 187, 192, 111, 144, 206, 118, 13, 137,\n\t\t129, 222, 101, 122, 191, 63, 8, 21, 21, 51, 177, 24, 131,\n\t\t85, 153, 81, 184, 218, 14, 61, 129, 53, 30, 161, 106, 161,\n\t\t80, 69, 136, 215, 112, 66, 223, 81, 227, 72, 191, 248, 83,\n\t\t162, 87, 203, 64, 7, 105, 48, 15, 0, 79, 18, 29, 59, 174,\n\t\t109, 153, 70, 197, 182, 8, 157, 97, 220, 127, 66, 18, 232,\n\t\t238, 16, 128, 2, 211, 24, 129, 38, 161, 143, 155, 131, 109,\n\t\t76, 227, 31, 183, 211, 150, 100, 195, 55, 49, 12, 207, 188,\n\t\t89, 224, 223, 2, 127, 48, 199, 203, 137, 36, 63, 202, 141,\n\t\t166, 82, 163, 169, 215, 33, 70, 192, 6, 190, 21, 50, 28, 28,\n\t\t153, 231, 18, 73, 133, 239, 68, 53, 73, 210, 182, 99, 37,\n\t\t175, 224, 57, 200, 253, 57, 139, 207, 51, 12, 255, 220, 71,\n\t\t149, 164, 36, 43, 199, 225, 182, 148, 247, 195, 231, 4, 3,\n\t\t33, 70, 120, 27, 195, 49, 176, 114, 199, 31, 42, 138, 152,\n\t\t80, 63, 244, 30, 195, 83, 226, 229, 147, 135, 69, 145, 96,\n\t\t28, 210, 56, 95, 4, 52, 144, 3, 174, 247, 141, 92, 187, 228,\n\t\t118, 92, 203, 109, 88, 166, 39, 213, 186, 235, 137, 102, 42,\n\t\t20, 204, 5, 229, 152, 16, 118, 225, 44, 116, 91, 20, 76, 42,\n\t\t24, 220, 254, 179, 152, 18, 25, 134, 121, 220, 74, 214, 180,\n\t\t47, 6, 177, 191, 112, 197, 200, 244, 254, 109, 51, 35, 142,\n\t\t10, 236, 102, 2, 67, 159, 21, 89, 161, 37, 176, 98, 150, 67,\n\t\t236, 31, 39, 166, 115, 155, 9, 0, 74, 181, 253, 127, 228,\n\t\t114, 72, 146, 82, 201, 196, 166, 27, 79, 14, 204, 117, 153,\n\t\t31, 61, 46, 8, 143, 19, 224, 249, 92, 78, 228, 241, 145, 220,\n\t\t164, 141, 249, 199, 121, 220, 2, 220, 218, 143, 214, 86, 225,\n\t\t219, 224, 151, 64, 1, 52, 193, 78, 112, 21, 0, 54, 129, 118,\n\t\t27, 129, 150, 159, 136, 90, 170, 32, 219, 109, 16, 188, 9,\n\t\t191, 68, 183, 12, 66, 37, 235, 16, 56, 143, 57, 216, 177,\n\t\t92, 203, 160, 84, 158, 126, 1, 94, 183, 255, 154, 238, 116,\n\t\t117, 78, 82, 186, 2, 204, 115, 10, 132, 51, 249, 252, 12,\n\t\t132, 10, 151, 135, 66, 151, 231, 241, 7, 68, 145, 149, 121,\n\t\t132, 56, 142, 227, 16, 226, 229, 147, 211, 211, 130, 196,\n\t\t139, 66, 185, 44, 136, 188, 228, 164, 211, 130, 132, 4, 108,\n\t\t24, 88, 64, 210, 214, 238, 239, 254, 110, 87, 18, 198, 120,\n\t\t137, 101, 175, 144, 209, 181, 215, 34, 249, 10, 150, 149,\n\t\t248, 49, 22, 254, 122, 180, 24, 229, 33, 135, 144, 128, 163,\n\t\t88, 64, 136, 131, 71, 59, 239, 233, 72, 34, 18, 132, 233,\n\t\t251, 166, 5, 1, 137, 110, 233, 120, 73, 18, 17, 22, 82, 243,\n\t\t41, 1, 35, 17, 0, 197, 247, 251, 173, 244, 251, 91, 144, 43,\n\t\t189, 55, 240, 50, 7, 218, 9, 106, 4, 124, 101, 193, 104, 48,\n\t\t188, 238, 99, 226, 94, 162, 252, 82, 231, 47, 147, 104, 188,\n\t\t49, 162, 72, 240, 36, 154, 239, 249, 1, 69, 191, 95, 2, 245,\n\t\t13, 69, 225, 147, 232, 191, 111, 145, 242, 85, 178, 3, 239,\n\t\t37, 87, 253, 21, 178, 243, 222, 159, 167, 232, 170, 62, 119,\n\t\t28, 242, 109, 199, 207, 2, 157, 48, 60, 238, 3, 139, 224,\n\t\t102, 0, 92, 63, 132, 177, 17, 132, 113, 56, 69, 228, 80, 222,\n\t\t97, 218, 51, 73, 4, 111, 187, 53, 203, 180, 105, 218, 59,\n\t\t57, 41, 120, 234, 224, 45, 82, 219, 112, 107, 59, 172, 194,\n\t\t74, 21, 186, 179, 44, 193, 0, 230, 113, 197, 253, 102, 52,\n\t\t17, 173, 205, 215, 162, 137, 168, 102, 104, 155, 126, 233,\n\t\t84, 196, 52, 35, 115, 211, 74, 52, 170, 88, 57, 59, 109, 237,\n\t\t185, 121, 79, 52, 17, 189, 138, 60, 241, 157, 100, 201, 128,\n\t\t104, 34, 10, 175, 232, 202, 18, 203, 8, 162, 194, 95, 113,\n\t\t43, 236, 253, 114, 113, 161, 248, 25, 239, 55, 222, 76, 237,\n\t\t173, 37, 77, 251, 237, 83, 151, 165, 39, 83, 134, 46, 78,\n\t\t207, 69, 19, 209, 156, 149, 44, 235, 78, 178, 177, 103, 79,\n\t\t195, 59, 126, 217, 59, 200, 115, 223, 73, 150, 127, 225, 149,\n\t\t48, 16, 238, 122, 157, 197, 153, 50, 47, 114, 144, 73, 191,\n\t\t231, 40, 251, 135, 197, 133, 34, 177, 91, 252, 100, 237, 75,\n\t\t204, 59, 225, 51, 160, 1, 118, 128, 251, 192, 131, 0, 64,\n\t\t7, 55, 108, 11, 149, 72, 210, 71, 169, 66, 199, 173, 57, 134,\n\t\t216, 87, 16, 70, 184, 227, 118, 44, 111, 120, 243, 54, 41,\n\t\t32, 54, 118, 250, 217, 117, 110, 167, 233, 148, 173, 8, 67,\n\t\t208, 21, 189, 65, 155, 166, 247, 16, 112, 120, 68, 94, 14,\n\t\t180, 45, 183, 88, 113, 58, 77, 18, 94, 219, 180, 189, 171,\n\t\t225, 34, 70, 37, 139, 128, 116, 180, 91, 14, 44, 229, 11,\n\t\t219, 19, 56, 170, 105, 81, 44, 79, 166, 110, 216, 137, 53,\n\t\t118, 74, 136, 108, 25, 151, 246, 8, 150, 198, 8, 134, 90,\n\t\t28, 147, 227, 16, 242, 10, 182, 205, 233, 73, 9, 243, 188,\n\t\t89, 150, 172, 136, 33, 69, 69, 75, 194, 177, 24, 92, 90, 119,\n\t\t182, 104, 12, 159, 45, 134, 111, 144, 185, 222, 187, 193,\n\t\t167, 201, 47, 177, 119, 25, 19, 178, 81, 165, 169, 38, 147,\n\t\t170, 157, 17, 11, 28, 143, 174, 137, 136, 133, 203, 175, 221,\n\t\t140, 153, 152, 133, 99, 186, 205, 51, 154, 140, 85, 17, 50,\n\t\t170, 100, 242, 166, 36, 225, 29, 166, 25, 145, 98, 130, 17,\n\t\t129, 173, 168, 48, 124, 166, 170, 12, 157, 201, 15, 95, 120,\n\t\t175, 17, 129, 17, 195, 140, 68, 12, 106, 67, 250, 15, 146,\n\t\t103, 255, 69, 210, 70, 119, 129, 43, 254, 87, 219, 103, 217,\n\t\t234, 35, 30, 218, 144, 196, 41, 248, 250, 192, 207, 212, 28,\n\t\t225, 103, 68, 241, 152, 32, 102, 4, 225, 152, 40, 244, 190,\n\t\t154, 17, 197, 71, 57, 137, 245, 86, 194, 207, 215, 10, 127,\n\t\t69, 16, 143, 17, 77, 236, 152, 40, 122, 215, 17, 30, 229,\n\t\t184, 140, 32, 62, 42, 250, 49, 216, 159, 243, 99, 208, 231,\n\t\t192, 237, 0, 216, 125, 155, 197, 134, 13, 215, 219, 168, 80,\n\t\t147, 159, 53, 176, 111, 58, 46, 77, 27, 27, 129, 200, 26,\n\t\t129, 174, 177, 201, 136, 64, 98, 152, 196, 65, 185, 187, 97,\n\t\t131, 200, 166, 230, 117, 49, 117, 246, 45, 74, 44, 38, 191,\n\t\t245, 163, 74, 44, 166, 124, 244, 205, 74, 28, 70, 149, 39,\n\t\t70, 36, 78, 75, 136, 111, 210, 34, 202, 66, 52, 122, 187,\n\t\t18, 189, 172, 140, 89, 81, 76, 8, 170, 202, 104, 242, 255,\n\t\t84, 183, 199, 223, 104, 154, 45, 204, 138, 146, 141, 15, 113,\n\t\t55, 8, 172, 36, 218, 248, 36, 127, 144, 108, 8, 167, 32, 140,\n\t\t217, 241, 81, 37, 134, 98, 138, 18, 69, 49, 69, 142, 145,\n\t\t133, 133, 19, 58, 139, 174, 149, 226, 239, 85, 116, 70, 231,\n\t\t162, 47, 84, 37, 27, 11, 172, 20, 147, 75, 146, 192, 192,\n\t\t152, 84, 143, 89, 202, 181, 17, 109, 167, 152, 16, 48, 43,\n\t\t221, 196, 190, 65, 74, 96, 204, 138, 103, 184, 27, 233, 198,\n\t\t59, 28, 37, 6, 163, 196, 79, 184, 246, 210, 218, 103, 153,\n\t\t46, 252, 60, 152, 38, 152, 238, 222, 188, 20, 132, 151, 87,\n\t\t88, 132, 117, 79, 0, 97, 16, 182, 157, 138, 227, 250, 105,\n\t\t7, 222, 67, 19, 138, 218, 32, 223, 170, 99, 7, 93, 181, 211,\n\t\t182, 16, 102, 54, 99, 188, 233, 216, 36, 207, 10, 170, 96,\n\t\t160, 159, 26, 241, 207, 198, 99, 150, 53, 254, 250, 168, 250,\n\t\t230, 187, 183, 69, 34, 131, 67, 237, 177, 137, 107, 62, 244,\n\t\t112, 113, 97, 38, 149, 208, 39, 156, 120, 82, 54, 148, 120,\n\t\t82, 227, 227, 223, 148, 83, 242, 145, 201, 45, 130, 193, 75,\n\t\t60, 43, 192, 91, 68, 181, 247, 3, 134, 221, 242, 187, 49,\n\t\t253, 169, 177, 91, 19, 137, 193, 161, 125, 210, 177, 63, 169,\n\t\t52, 103, 22, 196, 140, 106, 36, 227, 138, 174, 36, 227, 169,\n\t\t237, 201, 96, 108, 126, 153, 196, 171, 36, 65, 30, 140, 145,\n\t\t57, 235, 152, 167, 241, 141, 64, 211, 169, 65, 183, 67, 34,\n\t\t180, 77, 111, 28, 105, 185, 109, 183, 211, 180, 155, 49, 175,\n\t\t125, 108, 129, 84, 132, 229, 169, 231, 47, 144, 112, 121,\n\t\t79, 11, 33, 136, 66, 222, 194, 251, 43, 181, 61, 241, 10,\n\t\t107, 208, 206, 193, 57, 8, 255, 64, 21, 93, 142, 251, 165,\n\t\t148, 34, 241, 42, 191, 160, 22, 37, 73, 189, 81, 84, 159,\n\t\t91, 236, 170, 250, 56, 33, 228, 125, 121, 117, 81, 87, 69,\n\t\t202, 205, 251, 155, 18, 43, 138, 66, 90, 226, 243, 226, 136,\n\t\t18, 143, 181, 141, 235, 226, 174, 168, 30, 185, 210, 98, 12,\n\t\t99, 171, 157, 131, 203, 162, 251, 121, 158, 189, 63, 33, 43,\n\t\t60, 119, 25, 148, 24, 89, 41, 200, 240, 90, 161, 187, 6, 252,\n\t\t75, 140, 67, 112, 65, 213, 187, 100, 91, 18, 82, 178, 34,\n\t\t177, 34, 231, 40, 156, 20, 53, 81, 236, 202, 11, 174, 184,\n\t\t223, 216, 102, 153, 172, 145, 238, 251, 55, 159, 5, 41, 194,\n\t\t225, 220, 151, 186, 220, 142, 91, 39, 174, 116, 102, 147,\n\t\t101, 91, 38, 118, 48, 194, 117, 141, 41, 81, 40, 113, 135,\n\t\t64, 94, 217, 150, 157, 227, 26, 179, 172, 219, 113, 59, 237,\n\t\t86, 133, 1, 84, 224, 138, 143, 191, 41, 163, 217, 130, 96,\n\t\t107, 153, 55, 141, 199, 231, 57, 92, 218, 235, 237, 227, 104,\n\t\t76, 141, 51, 123, 75, 152, 19, 25, 118, 116, 15, 99, 105,\n\t\t182, 105, 152, 182, 102, 49, 123, 70, 89, 134, 4, 22, 64,\n\t\t156, 208, 242, 215, 154, 162, 44, 139, 230, 181, 121, 45,\n\t\t49, 143, 184, 116, 211, 20, 101, 36, 139, 26, 108, 166, 57,\n\t\t164, 49, 12, 199, 166, 26, 76, 76, 82, 17, 82, 165, 24, 211,\n\t\t72, 177, 28, 195, 132, 109, 67, 158, 252, 177, 11, 0, 56,\n\t\t96, 28, 27, 48, 143, 133, 37, 74, 63, 182, 160, 31, 203, 70,\n\t\t180, 100, 84, 172, 148, 138, 26, 12, 164, 73, 248, 41, 195,\n\t\t160, 46, 116, 131, 218, 43, 169, 157, 210, 80, 254, 146, 48,\n\t\t169, 214, 43, 25, 94, 159, 208, 249, 248, 72, 92, 21, 63,\n\t\t37, 170, 48, 223, 85, 198, 148, 46, 53, 39, 81, 177, 147,\n\t\t90, 152, 242, 132, 94, 245, 203, 122, 162, 40, 8, 145, 116,\n\t\t84, 23, 100, 121, 136, 163, 204, 147, 156, 38, 129, 11, 118,\n\t\t18, 132, 153, 117, 62, 102, 107, 99, 13, 195, 214, 131, 87,\n\t\t69, 99, 166, 175, 182, 231, 201, 177, 198, 71, 135, 234, 157,\n\t\t169, 144, 106, 95, 16, 206, 10, 235, 254, 13, 131, 189, 47,\n\t\t134, 170, 95, 76, 120, 181, 223, 30, 21, 132, 168, 176, 47,\n\t\t180, 244, 109, 51, 3, 94, 202, 16, 67, 109, 16, 191, 196,\n\t\t52, 220, 42, 44, 21, 137, 166, 85, 42, 34, 76, 25, 106, 97,\n\t\t102, 95, 171, 181, 175, 245, 201, 167, 54, 107, 173, 60, 203,\n\t\t153, 99, 38, 199, 230, 91, 154, 111, 148, 216, 212, 242, 142,\n\t\t246, 190, 189, 43, 93, 128, 24, 195, 66, 58, 140, 79, 24,\n\t\t9, 34, 227, 54, 100, 10, 122, 119, 244, 94, 80, 203, 41, 161,\n\t\t87, 120, 127, 112, 97, 224, 173, 39, 174, 109, 178, 176, 46,\n\t\t246, 150, 136, 201, 186, 175, 78, 228, 105, 87, 93, 222, 240,\n\t\t102, 124, 124, 99, 250, 93, 69, 160, 131, 17, 242, 101, 231,\n\t\t192, 149, 190, 207, 184, 208, 110, 117, 154, 108, 159, 133,\n\t\t163, 124, 9, 236, 237, 240, 118, 208, 70, 41, 128, 101, 135,\n\t\t128, 198, 250, 45, 213, 251, 184, 47, 175, 102, 140, 58, 211,\n\t\t165, 223, 24, 46, 110, 252, 154, 31, 38, 207, 243, 123, 140,\n\t\t36, 60, 35, 72, 12, 42, 154, 130, 62, 161, 11, 90, 50, 238,\n\t\t125, 230, 104, 212, 200, 244, 150, 96, 189, 119, 222, 200,\n\t\t100, 126, 186, 225, 187, 210, 39, 252, 109, 172, 42, 130,\n\t\t158, 20, 4, 217, 160, 243, 232, 42, 4, 112, 21, 196, 137,\n\t\t206, 3, 116, 147, 196, 91, 215, 201, 4, 74, 33, 34, 88, 18,\n\t\t47, 142, 2, 171, 139, 134, 201, 248, 239, 139, 22, 1, 138,\n\t\t132, 117, 33, 191, 191, 13, 219, 151, 231, 103, 22, 102, 22,\n\t\t11, 53, 134, 65, 44, 102, 5, 152, 25, 203, 64, 129, 197, 44,\n\t\t98, 24, 179, 108, 238, 40, 119, 202, 121, 61, 165, 231, 225,\n\t\t226, 127, 41, 215, 219, 251, 15, 180, 235, 163, 255, 101,\n\t\t108, 102, 166, 119, 186, 86, 64, 138, 40, 35, 145, 19, 225,\n\t\t119, 188, 239, 242, 29, 40, 177, 34, 146, 69, 25, 155, 101,\n\t\t107, 33, 93, 46, 167, 203, 241, 127, 82, 117, 93, 253, 167,\n\t\t120, 168, 206, 17, 80, 244, 234, 188, 190, 42, 238, 134, 71,\n\t\t48, 217, 13, 15, 224, 189, 253, 213, 160, 62, 249, 65, 229,\n\t\t163, 23, 175, 58, 44, 212, 186, 180, 26, 79, 120, 213, 120,\n\t\t34, 94, 15, 63, 192, 88, 239, 194, 43, 212, 191, 6, 254, 191,\n\t\t174, 243, 109, 94, 157, 111, 251, 255, 87, 157, 199, 41, 242,\n\t\t241, 255, 106, 157, 49, 72, 129, 173, 3, 141, 245, 231, 170,\n\t\t107, 185, 179, 251, 103, 169, 232, 117, 68, 201, 52, 127,\n\t\t158, 10, 70, 135, 242, 84, 54, 129, 205, 96, 7, 184, 12, 92,\n\t\t1, 174, 1, 175, 1, 183, 129, 187, 193, 27, 192, 219, 192,\n\t\t35, 224, 3, 224, 151, 9, 143, 49, 193, 197, 112, 171, 208,\n\t\t37, 10, 82, 172, 20, 163, 176, 31, 150, 77, 104, 54, 12, 20,\n\t\t88, 192, 124, 43, 88, 95, 59, 167, 235, 128, 231, 187, 49,\n\t\t92, 188, 241, 244, 139, 255, 188, 111, 96, 67, 235, 214, 240,\n\t\t157, 143, 97, 3, 43, 24, 39, 153, 132, 110, 229, 171, 221,\n\t\t171, 182, 186, 227, 169, 45, 22, 41, 244, 133, 22, 178, 60,\n\t\t70, 150, 31, 33, 203, 6, 25, 99, 23, 67, 37, 225, 115, 94,\n\t\t31, 218, 166, 203, 203, 200, 210, 14, 45, 225, 204, 99, 24,\n\t\t43, 216, 192, 185, 195, 35, 74, 53, 223, 251, 115, 216, 216,\n\t\t122, 85, 89, 144, 227, 164, 116, 31, 185, 190, 29, 90, 82,\n\t\t89, 140, 252, 11, 237, 135, 207, 112, 47, 126, 182, 191, 77,\n\t\t151, 67, 254, 159, 61, 67, 49, 230, 151, 128, 9, 15, 199,\n\t\t156, 123, 95, 203, 166, 249, 83, 196, 4, 228, 127, 202, 44,\n\t\t244, 243, 242, 243, 196, 234, 188, 6, 200, 42, 79, 131, 53,\n\t\t107, 133, 137, 196, 104, 70, 16, 20, 65, 56, 41, 122, 203,\n\t\t40, 167, 138, 113, 85, 167, 97, 68, 249, 201, 108, 158, 156,\n\t\t70, 78, 206, 103, 39, 233, 37, 206, 22, 106, 69, 41, 229,\n\t\t253, 72, 60, 73, 126, 26, 171, 233, 17, 93, 37, 252, 17, 3,\n\t\t251, 191, 12, 38, 73, 91, 3, 60, 42, 18, 56, 134, 134, 105,\n\t\t160, 10, 201, 159, 171, 56, 148, 201, 223, 182, 188, 109,\n\t\t79, 1, 104, 183, 28, 79, 55, 71, 113, 154, 98, 131, 28, 146,\n\t\t202, 219, 110, 85, 89, 138, 38, 99, 91, 166, 21, 48, 108,\n\t\t7, 22, 13, 40, 163, 203, 17, 214, 150, 181, 95, 224, 145,\n\t\t134, 57, 190, 122, 108, 251, 230, 43, 33, 83, 231, 57, 172,\n\t\t33, 62, 187, 117, 188, 220, 102, 24, 254, 153, 135, 246, 204,\n\t\t176, 8, 114, 176, 60, 21, 47, 76, 118, 50, 151, 157, 154,\n\t\t24, 101, 33, 7, 17, 187, 121, 247, 23, 73, 159, 26, 183, 237,\n\t\t228, 213, 246, 212, 148, 125, 245, 39, 120, 78, 138, 8, 104,\n\t\t114, 118, 251, 213, 12, 115, 197, 230, 29, 83, 72, 136, 72,\n\t\t28, 159, 29, 27, 223, 204, 48, 237, 242, 36, 100, 31, 58,\n\t\t49, 127, 71, 154, 225, 184, 180, 145, 56, 84, 205, 182, 167,\n\t\t242, 241, 83, 251, 166, 15, 37, 24, 86, 79, 114, 28, 147,\n\t\t190, 99, 254, 68, 150, 116, 105, 63, 78, 50, 200, 159, 216,\n\t\t32, 103, 240, 109, 10, 174, 21, 70, 26, 128, 103, 149, 222,\n\t\t185, 117, 140, 235, 132, 184, 34, 228, 23, 4, 139, 32, 50,\n\t\t132, 20, 66, 35, 197, 66, 87, 89, 204, 24, 68, 98, 203, 211,\n\t\t88, 219, 65, 46, 87, 204, 247, 198, 16, 199, 20, 17, 105,\n\t\t218, 62, 94, 226, 122, 252, 68, 42, 70, 52, 61, 177, 188,\n\t\t94, 43, 156, 167, 182, 204, 33, 120, 131, 93, 202, 223, 41,\n\t\t63, 133, 103, 189, 130, 243, 133, 154, 39, 180, 62, 26, 178,\n\t\t122, 214, 21, 165, 21, 228, 144, 4, 49, 144, 97, 220, 172,\n\t\t183, 130, 247, 7, 245, 24, 56, 54, 109, 211, 79, 169, 106,\n\t\t55, 27, 161, 240, 221, 159, 121, 191, 220, 52, 75, 161, 108,\n\t\t172, 150, 251, 115, 238, 123, 239, 157, 60, 194, 5, 35, 179,\n\t\t136, 226, 104, 98, 2, 197, 209, 165, 214, 189, 220, 43, 30,\n\t\t70, 113, 120, 118, 32, 242, 101, 14, 41, 8, 161, 58, 66, 183,\n\t\t94, 98, 173, 212, 17, 66, 222, 246, 226, 165, 55, 72, 27,\n\t\t88, 251, 201, 218, 42, 252, 18, 92, 5, 191, 67, 114, 154,\n\t\t73, 63, 15, 162, 167, 25, 179, 15, 111, 212, 31, 32, 112,\n\t\t0, 118, 212, 30, 208, 72, 4, 57, 32, 20, 107, 118, 4, 186,\n\t\t190, 209, 172, 211, 207, 11, 169, 56, 179, 112, 14, 118, 114,\n\t\t112, 132, 105, 19, 134, 187, 206, 200, 192, 133, 235, 210,\n\t\t217, 32, 2, 77, 250, 115, 175, 22, 65, 210, 102, 95, 151,\n\t\t181, 125, 88, 168, 8, 132, 79, 35, 150, 141, 98, 173, 128,\n\t\t24, 132, 34, 72, 129, 250, 92, 155, 231, 101, 94, 229, 12,\n\t\t9, 229, 177, 104, 240, 42, 167, 240, 124, 103, 78, 103, 100,\n\t\t20, 65, 8, 226, 130, 134, 163, 130, 86, 76, 97, 196, 112,\n\t\t80, 198, 123, 186, 221, 61, 88, 134, 28, 131, 112, 170, 168,\n\t\t9, 244, 82, 44, 207, 69, 56, 1, 65, 125, 174, 195, 113, 138,\n\t\t44, 27, 196, 61, 108, 112, 26, 167, 112, 92, 103, 78, 135,\n\t\t138, 119, 45, 6, 121, 215, 194, 234, 69, 175, 117, 138, 85,\n\t\t249, 180, 138, 141, 20, 146, 25, 142, 193, 104, 239, 232,\n\t\t161, 54, 175, 242, 50, 207, 235, 20, 13, 66, 167, 213, 236,\n\t\t28, 26, 221, 139, 48, 195, 65, 5, 165, 12, 172, 166, 85, 65,\n\t\t199, 164, 170, 152, 209, 203, 101, 157, 193, 40, 130, 100,\n\t\t6, 235, 130, 74, 174, 230, 213, 138, 131, 12, 226, 130, 235,\n\t\t41, 202, 208, 245, 248, 182, 127, 61, 70, 126, 197, 235, 145,\n\t\t152, 178, 207, 49, 34, 252, 42, 48, 0, 128, 22, 194, 26, 172,\n\t\t244, 63, 167, 227, 13, 142, 240, 194, 152, 81, 31, 61, 94,\n\t\t94, 21, 108, 177, 41, 136, 127, 101, 170, 163, 155, 30, 129,\n\t\t43, 19, 143, 108, 26, 85, 205, 191, 18, 133, 166, 104, 11,\n\t\t171, 229, 227, 163, 117, 99, 16, 19, 187, 2, 159, 5, 19, 96,\n\t\t27, 0, 58, 25, 102, 251, 140, 13, 36, 35, 183, 211, 176, 77,\n\t\t171, 225, 206, 50, 237, 142, 159, 242, 220, 238, 52, 244,\n\t\t42, 164, 17, 241, 126, 119, 117, 207, 71, 203, 121, 21, 70,\n\t\t164, 174, 20, 129, 170, 57, 18, 139, 50, 83, 12, 212, 32,\n\t\t228, 88, 111, 3, 67, 13, 50, 83, 111, 152, 42, 234, 19, 155,\n\t\t9, 195, 215, 140, 172, 65, 248, 201, 147, 69, 199, 85, 94,\n\t\t144, 34, 17, 233, 5, 33, 59, 145, 42, 158, 140, 68, 223, 199,\n\t\t48, 242, 222, 173, 48, 26, 21, 222, 201, 48, 239, 139, 246,\n\t\t158, 47, 29, 61, 48, 239, 208, 152, 134, 168, 4, 32, 241,\n\t\t199, 253, 59, 252, 52, 112, 104, 228, 85, 152, 184, 180, 217,\n\t\t232, 184, 29, 7, 163, 117, 0, 201, 16, 236, 188, 103, 231,\n\t\t7, 78, 157, 220, 43, 137, 99, 130, 80, 159, 219, 243, 26,\n\t\t8, 111, 217, 61, 95, 159, 144, 149, 232, 59, 37, 45, 39, 143,\n\t\t238, 133, 79, 207, 223, 187, 243, 212, 7, 186, 130, 56, 38,\n\t\t224, 137, 27, 119, 239, 189, 9, 194, 169, 9, 57, 167, 73,\n\t\t239, 140, 42, 242, 232, 238, 80, 30, 142, 8, 76, 130, 33,\n\t\t186, 27, 0, 187, 175, 117, 81, 100, 233, 237, 36, 80, 24,\n\t\t95, 98, 123, 221, 232, 220, 199, 147, 203, 7, 16, 49, 48,\n\t\t42, 134, 4, 148, 96, 229, 179, 187, 14, 129, 204, 69, 225,\n\t\t66, 239, 73, 35, 147, 129, 198, 5, 175, 248, 82, 139, 39,\n\t\t134, 225, 231, 134, 125, 250, 25, 194, 240, 78, 244, 102,\n\t\t250, 5, 105, 246, 103, 167, 159, 96, 229, 242, 196, 19, 108,\n\t\t53, 27, 179, 190, 147, 152, 96, 149, 249, 137, 217, 29, 120,\n\t\t239, 166, 249, 45, 215, 105, 140, 180, 25, 97, 24, 123, 228,\n\t\t218, 155, 246, 141, 6, 239, 171, 247, 87, 222, 114, 98, 211,\n\t\t188, 179, 171, 46, 174, 59, 1, 110, 157, 222, 59, 35, 138,\n\t\t252, 177, 123, 119, 143, 6, 239, 255, 13, 57, 121, 98, 186,\n\t\t176, 185, 60, 84, 236, 213, 53, 186, 182, 10, 255, 8, 174,\n\t\t130, 34, 201, 193, 244, 237, 200, 110, 40, 163, 192, 27, 235,\n\t\t45, 63, 59, 156, 9, 231, 63, 109, 133, 13, 248, 228, 153,\n\t\t143, 159, 185, 101, 127, 70, 81, 30, 80, 148, 204, 204, 84,\n\t\t154, 196, 255, 100, 97, 241, 73, 146, 125, 161, 140, 41, 103,\n\t\t143, 158, 57, 115, 244, 224, 47, 40, 69, 26, 226, 84, 20,\n\t\t71, 211, 36, 56, 40, 11, 155, 55, 158, 227, 4, 129, 59, 167,\n\t\t4, 125, 228, 167, 240, 37, 248, 118, 96, 130, 77, 0, 148,\n\t\t131, 232, 141, 190, 132, 229, 141, 124, 4, 161, 53, 136, 37,\n\t\t165, 233, 12, 129, 85, 192, 132, 63, 120, 92, 206, 81, 62,\n\t\t209, 156, 252, 56, 238, 125, 69, 57, 226, 137, 233, 222, 28,\n\t\t238, 233, 23, 71, 148, 79, 60, 46, 43, 209, 69, 77, 90, 148,\n\t\t180, 197, 168, 34, 63, 142, 141, 143, 41, 51, 99, 171, 99,\n\t\t51, 202, 152, 162, 171, 171, 170, 222, 175, 199, 143, 136,\n\t\t159, 51, 237, 213, 163, 16, 188, 134, 0, 47, 210, 79, 151,\n\t\t247, 190, 95, 133, 140, 249, 235, 170, 105, 195, 149, 193,\n\t\t45, 73, 21, 142, 97, 28, 170, 89, 255, 102, 99, 244, 230,\n\t\t95, 197, 6, 30, 174, 24, 197, 89, 247, 218, 207, 167, 193,\n\t\t168, 215, 255, 194, 237, 101, 14, 58, 21, 7, 217, 212, 131,\n\t\t66, 104, 93, 136, 109, 31, 130, 155, 247, 246, 91, 198, 68,\n\t\t125, 126, 247, 45, 16, 190, 102, 207, 92, 93, 16, 198, 68,\n\t\t105, 239, 201, 83, 31, 248, 37, 248, 244, 160, 41, 76, 76,\n\t\t65, 120, 211, 222, 221, 55, 78, 96, 97, 76, 20, 186, 31, 248,\n\t\t243, 15, 128, 16, 78, 85, 157, 248, 20, 14, 4, 200, 29, 68,\n\t\t58, 105, 117, 92, 106, 102, 247, 209, 77, 58, 237, 150, 159,\n\t\t39, 143, 67, 203, 192, 100, 68, 73, 60, 16, 129, 120, 113,\n\t\t130, 240, 146, 231, 82, 165, 137, 92, 239, 108, 110, 162,\n\t\t148, 202, 78, 228, 52, 203, 73, 69, 11, 181, 136, 136, 198,\n\t\t102, 16, 74, 57, 150, 150, 155, 232, 253, 51, 241, 108, 45,\n\t\t67, 158, 123, 146, 227, 161, 176, 109, 102, 91, 153, 148,\n\t\t28, 230, 198, 210, 185, 137, 137, 92, 122, 140, 179, 74, 185,\n\t\t9, 61, 155, 114, 106, 133, 164, 201, 204, 140, 69, 98, 78,\n\t\t42, 171, 79, 228, 74, 215, 17, 23, 214, 3, 28, 198, 156, 153,\n\t\t207, 47, 82, 119, 30, 215, 183, 233, 80, 249, 171, 69, 99,\n\t\t82, 134, 82, 63, 154, 229, 97, 1, 204, 12, 216, 61, 177, 89,\n\t\t240, 201, 49, 48, 188, 144, 49, 122, 203, 158, 72, 17, 173,\n\t\t21, 224, 147, 193, 14, 92, 54, 50, 189, 85, 18, 206, 176,\n\t\t11, 46, 30, 23, 132, 135, 199, 4, 33, 79, 109, 162, 128, 8,\n\t\t103, 11, 193, 118, 198, 216, 69, 194, 35, 22, 235, 75, 254,\n\t\t121, 212, 143, 211, 91, 251, 44, 225, 94, 85, 73, 188, 206,\n\t\t24, 209, 5, 251, 40, 115, 150, 81, 33, 159, 152, 242, 221,\n\t\t118, 8, 144, 81, 132, 105, 151, 176, 237, 182, 225, 191, 86,\n\t\t69, 225, 117, 162, 88, 213, 198, 180, 109, 218, 223, 145,\n\t\t237, 222, 79, 206, 40, 113, 198, 186, 222, 144, 62, 42, 25,\n\t\t210, 71, 71, 71, 149, 124, 23, 54, 170, 162, 248, 58, 65,\n\t\t172, 106, 218, 54, 109, 44, 67, 182, 123, 63, 177, 152, 184,\n\t\t114, 38, 239, 159, 119, 186, 222, 205, 43, 163, 192, 199,\n\t\t65, 161, 245, 193, 32, 6, 0, 180, 233, 157, 137, 200, 81,\n\t\t33, 120, 39, 165, 229, 222, 247, 239, 81, 162, 80, 133, 127,\n\t\t175, 105, 155, 151, 55, 107, 99, 26, 188, 105, 185, 247, 125,\n\t\t21, 70, 149, 123, 224, 184, 54, 70, 10, 181, 208, 181, 158,\n\t\t5, 34, 201, 193, 233, 95, 3, 143, 16, 79, 32, 242, 198, 66,\n\t\t130, 64, 225, 63, 47, 252, 215, 224, 138, 127, 114, 245, 85,\n\t\t95, 44, 222, 83, 83, 162, 144, 119, 139, 231, 236, 91, 9,\n\t\t152, 222, 235, 229, 2, 188, 63, 184, 254, 216, 145, 171, 190,\n\t\t88, 116, 121, 24, 85, 106, 247, 20, 207, 89, 183, 202, 178,\n\t\t45, 43, 247, 43, 84, 86, 87, 215, 254, 27, 248, 33, 92, 1,\n\t\t58, 0, 46, 141, 208, 41, 6, 76, 226, 222, 56, 241, 120, 53,\n\t\t170, 200, 71, 177, 129, 143, 202, 74, 180, 170, 204, 40, 183,\n\t\t230, 228, 163, 24, 31, 149, 115, 176, 170, 40, 222, 220, 15,\n\t\t14, 194, 85, 216, 36, 191, 167, 132, 95, 45, 202, 248, 85,\n\t\t32, 184, 135, 239, 12, 159, 126, 110, 253, 197, 60, 93, 1,\n\t\t28, 132, 207, 194, 166, 39, 59, 148, 201, 184, 149, 131, 136,\n\t\t142, 19, 36, 242, 177, 9, 183, 228, 228, 163, 60, 203, 242,\n\t\t71, 229, 92, 239, 235, 138, 242, 61, 114, 13, 94, 81, 248,\n\t\t254, 69, 252, 231, 184, 0, 126, 8, 127, 221, 171, 135, 78,\n\t\t227, 136, 26, 1, 59, 248, 36, 44, 182, 143, 175, 191, 53,\n\t\t76, 5, 53, 243, 174, 218, 215, 91, 72, 110, 213, 214, 32,\n\t\t26, 171, 72, 80, 63, 134, 166, 110, 55, 152, 108, 2, 24, 16,\n\t\t10, 188, 66, 134, 28, 95, 158, 132, 171, 154, 180, 228, 205,\n\t\t209, 183, 223, 238, 13, 34, 75, 100, 62, 247, 182, 115, 151,\n\t\t42, 63, 253, 51, 156, 19, 46, 15, 229, 234, 152, 132, 251,\n\t\t16, 12, 211, 143, 16, 59, 78, 179, 97, 133, 44, 255, 3, 230,\n\t\t194, 190, 122, 180, 224, 180, 156, 5, 35, 243, 71, 36, 228,\n\t\t107, 31, 250, 20, 66, 159, 66, 112, 97, 160, 209, 165, 28,\n\t\t39, 149, 105, 145, 136, 176, 155, 13, 132, 12, 4, 232, 247,\n\t\t102, 32, 108, 130, 52, 225, 180, 160, 2, 182, 15, 67, 16,\n\t\t250, 248, 77, 120, 38, 120, 189, 63, 234, 111, 64, 43, 252,\n\t\t13, 134, 62, 72, 240, 13, 63, 7, 126, 8, 159, 245, 174, 237,\n\t\t134, 155, 98, 123, 232, 131, 154, 127, 121, 201, 203, 236,\n\t\t217, 120, 211, 225, 152, 193, 212, 0, 245, 29, 155, 3, 192,\n\t\t51, 63, 158, 218, 71, 121, 255, 224, 94, 1, 161, 123, 5, 225,\n\t\t94, 132, 132, 189, 74, 87, 241, 49, 221, 223, 126, 95, 132,\n\t\t247, 74, 249, 200, 125, 202, 250, 88, 196, 20, 0, 65, 118,\n\t\t58, 193, 143, 163, 49, 184, 4, 48, 110, 59, 108, 193, 83,\n\t\t27, 46, 48, 115, 209, 59, 173, 191, 102, 63, 162, 178, 105,\n\t\t26, 94, 69, 107, 208, 65, 126, 208, 247, 47, 111, 184, 164,\n\t\t239, 77, 120, 181, 107, 118, 124, 19, 150, 219, 166, 156,\n\t\t124, 17, 136, 44, 63, 130, 92, 184, 232, 5, 174, 185, 200,\n\t\t211, 51, 125, 92, 18, 19, 52, 40, 131, 89, 109, 160, 195,\n\t\t249, 93, 130, 237, 244, 165, 203, 96, 190, 32, 193, 182, 177,\n\t\t66, 187, 229, 50, 221, 156, 60, 250, 67, 108, 96, 27, 227,\n\t\t31, 121, 77, 125, 89, 210, 158, 144, 115, 125, 139, 194, 88,\n\t\t84, 145, 163, 88, 234, 189, 4, 187, 24, 62, 190, 236, 53,\n\t\t253, 31, 97, 108, 99, 3, 255, 208, 235, 12, 189, 53, 69, 141,\n\t\t62, 25, 180, 212, 156, 28, 197, 189, 213, 179, 18, 6, 32,\n\t\t156, 35, 25, 33, 113, 252, 235, 109, 6, 165, 98, 56, 216,\n\t\t155, 226, 249, 13, 49, 44, 28, 247, 58, 90, 254, 57, 81, 28,\n\t\t17, 196, 231, 242, 158, 128, 24, 38, 85, 24, 205, 121, 199,\n\t\t132, 17, 209, 59, 70, 122, 168, 127, 207, 31, 50, 0, 190,\n\t\t23, 152, 96, 18, 128, 88, 219, 39, 202, 24, 244, 143, 66,\n\t\t209, 225, 3, 105, 123, 168, 171, 104, 18, 60, 157, 147, 23,\n\t\t48, 94, 144, 115, 189, 115, 146, 70, 77, 96, 189, 115, 65,\n\t\t25, 76, 68, 37, 173, 30, 85, 228, 5, 108, 224, 5, 89, 137,\n\t\t214, 181, 247, 17, 219, 214, 80, 89, 63, 223, 117, 153, 224,\n\t\t50, 122, 50, 97, 142, 9, 201, 35, 45, 154, 84, 101, 251, 98,\n\t\t8, 109, 242, 3, 152, 195, 17, 104, 185, 76, 42, 91, 77, 239,\n\t\t111, 247, 206, 110, 59, 210, 153, 184, 97, 126, 234, 114,\n\t\t51, 145, 29, 155, 121, 55, 22, 228, 29, 36, 52, 119, 135,\n\t\t44, 224, 215, 202, 242, 119, 248, 209, 78, 174, 189, 255,\n\t\t200, 182, 218, 229, 17, 158, 157, 191, 97, 106, 52, 58, 51,\n\t\t22, 191, 13, 27, 4, 37, 98, 201, 240, 206, 249, 185, 234,\n\t\t50, 212, 10, 253, 148, 142, 139, 215, 229, 35, 180, 6, 175,\n\t\t237, 87, 233, 226, 117, 57, 100, 208, 179, 252, 26, 13, 226,\n\t\t148, 188, 246, 202, 2, 12, 100, 16, 3, 54, 65, 138, 181, 75,\n\t\t149, 146, 93, 112, 75, 77, 92, 50, 155, 182, 133, 42, 108,\n\t\t129, 69, 197, 202, 28, 108, 98, 228, 192, 127, 184, 246, 150,\n\t\t221, 245, 221, 189, 239, 239, 94, 94, 216, 125, 203, 45, 111,\n\t\t132, 60, 220, 11, 19, 143, 64, 14, 238, 124, 227, 45, 223,\n\t\t130, 60, 92, 93, 241, 254, 203, 255, 148, 97, 25, 176, 214,\n\t\t251, 60, 195, 204, 255, 116, 141, 97, 129, 159, 251, 246,\n\t\t57, 184, 155, 224, 18, 121, 210, 121, 48, 167, 6, 92, 145,\n\t\t158, 150, 218, 108, 88, 112, 203, 105, 193, 16, 78, 75, 74,\n\t\t180, 123, 132, 103, 103, 16, 18, 190, 32, 105, 221, 168, 50,\n\t\t179, 36, 8, 75, 114, 22, 70, 185, 25, 62, 162, 73, 189, 167,\n\t\t179, 253, 124, 186, 221, 240, 89, 18, 111, 111, 13, 56, 98,\n\t\t72, 204, 108, 204, 31, 35, 109, 184, 197, 187, 156, 38, 125,\n\t\t65, 64, 104, 134, 229, 143, 116, 163, 138, 228, 221, 5, 238,\n\t\t147, 179, 189, 167, 37, 45, 194, 207, 112, 48, 154, 149, 151,\n\t\t60, 169, 10, 250, 239, 229, 89, 79, 119, 5, 13, 107, 128,\n\t\t100, 209, 162, 6, 217, 230, 122, 13, 177, 221, 130, 183, 189,\n\t\t249, 90, 2, 111, 55, 153, 203, 78, 16, 47, 48, 237, 29, 23,\n\t\t224, 234, 53, 115, 11, 94, 227, 93, 200, 77, 76, 230, 246,\n\t\t102, 12, 226, 77, 94, 53, 50, 123, 186, 65, 191, 252, 28,\n\t\t153, 179, 108, 48, 2, 128, 93, 69, 126, 4, 142, 198, 99, 84,\n\t\t12, 36, 223, 143, 39, 182, 167, 138, 178, 202, 46, 173, 44,\n\t\t177, 170, 92, 76, 109, 79, 224, 148, 65, 224, 51, 58, 165,\n\t\t227, 163, 109, 171, 152, 140, 45, 44, 45, 45, 196, 146, 69,\n\t\t171, 61, 122, 188, 36, 189, 24, 198, 144, 89, 91, 133, 139,\n\t\t68, 38, 191, 178, 159, 189, 138, 55, 146, 254, 180, 41, 213,\n\t\t162, 63, 107, 91, 116, 12, 232, 52, 17, 61, 222, 176, 204,\n\t\t32, 171, 102, 221, 218, 128, 11, 88, 60, 182, 99, 166, 31,\n\t\t149, 62, 179, 227, 24, 1, 252, 155, 223, 180, 249, 136, 136,\n\t\t79, 19, 190, 168, 171, 101, 249, 234, 224, 15, 2, 17, 215,\n\t\t231, 111, 18, 139, 228, 44, 178, 40, 138, 183, 237, 34, 86,\n\t\t150, 137, 230, 33, 14, 29, 156, 169, 99, 113, 101, 102, 108,\n\t\t197, 211, 189, 132, 168, 144, 247, 255, 198, 6, 185, 16, 93,\n\t\t98, 147, 180, 135, 50, 146, 252, 193, 44, 64, 31, 118, 99,\n\t\t36, 171, 62, 70, 102, 247, 0, 189, 32, 99, 220, 68, 180, 129,\n\t\t179, 202, 87, 20, 229, 43, 202, 176, 107, 183, 71, 147, 146,\n\t\t174, 129, 51, 138, 210, 251, 138, 18, 240, 52, 44, 195, 101,\n\t\t144, 5, 211, 160, 65, 188, 185, 187, 192, 101, 62, 122, 117,\n\t\t63, 255, 61, 224, 28, 161, 9, 98, 132, 37, 104, 152, 85, 160,\n\t\t217, 114, 74, 237, 70, 167, 93, 10, 234, 198, 183, 139, 200,\n\t\t116, 219, 37, 195, 130, 139, 130, 208, 21, 132, 40, 195, 114,\n\t\t172, 192, 112, 17, 132, 53, 1, 70, 61, 205, 239, 101, 66,\n\t\t11, 29, 237, 150, 211, 233, 114, 247, 123, 228, 45, 194, 165,\n\t\t116, 185, 219, 45, 175, 8, 196, 65, 235, 66, 150, 68, 69,\n\t\t72, 156, 112, 252, 66, 152, 70, 186, 247, 100, 186, 188, 82,\n\t\t78, 175, 1, 18, 43, 125, 99, 183, 156, 190, 208, 77, 151,\n\t\t137, 60, 253, 239, 107, 159, 102, 222, 6, 191, 12, 84, 79,\n\t\t79, 40, 119, 92, 155, 214, 125, 14, 118, 108, 18, 201, 226,\n\t\t3, 254, 219, 176, 19, 160, 75, 121, 99, 17, 84, 34, 250, 194,\n\t\t27, 62, 164, 115, 9, 94, 95, 138, 42, 240, 63, 241, 12, 215,\n\t\t199, 248, 87, 225, 107, 178, 177, 109, 26, 174, 11, 250, 105,\n\t\t253, 150, 157, 88, 158, 61, 166, 159, 214, 133, 58, 214, 30,\n\t\t225, 84, 62, 165, 72, 240, 75, 4, 221, 191, 247, 194, 104,\n\t\t185, 33, 199, 150, 226, 124, 130, 211, 87, 150, 193, 16, 7,\n\t\t7, 141, 131, 248, 185, 34, 32, 194, 30, 252, 143, 189, 186,\n\t\t223, 254, 98, 14, 123, 184, 182, 182, 246, 109, 6, 192, 223,\n\t\t2, 121, 0, 116, 162, 33, 231, 56, 223, 125, 49, 11, 171, 92,\n\t\t197, 159, 146, 132, 39, 149, 76, 107, 225, 64, 35, 87, 47,\n\t\t201, 38, 39, 34, 108, 230, 170, 157, 98, 70, 121, 82, 128,\n\t\t204, 57, 73, 141, 44, 64, 49, 57, 62, 63, 53, 117, 117, 82,\n\t\t208, 148, 145, 134, 147, 213, 85, 30, 30, 143, 168, 210, 57,\n\t\t108, 209, 62, 24, 93, 251, 12, 124, 145, 228, 215, 140, 0,\n\t\t64, 72, 20, 52, 22, 163, 74, 149, 109, 183, 102, 89, 50, 64,\n\t\t177, 179, 208, 173, 192, 175, 107, 209, 92, 117, 251, 230,\n\t\t76, 60, 62, 113, 176, 91, 97, 121, 44, 162, 85, 193, 16, 226,\n\t\t251, 111, 98, 158, 132, 119, 240, 137, 200, 220, 189, 87,\n\t\t237, 28, 151, 5, 33, 182, 243, 228, 131, 123, 145, 44, 9,\n\t\t152, 89, 224, 184, 222, 158, 242, 111, 220, 113, 57, 8, 115,\n\t\t168, 134, 251, 70, 255, 125, 134, 250, 70, 169, 224, 245,\n\t\t141, 102, 161, 1, 207, 14, 6, 171, 255, 76, 58, 199, 121,\n\t\t165, 247, 180, 162, 192, 125, 175, 214, 61, 66, 241, 14, 42,\n\t\t200, 1, 7, 84, 193, 60, 69, 167, 38, 94, 32, 236, 221, 183,\n\t\t226, 180, 91, 101, 66, 239, 107, 17, 26, 61, 183, 179, 169,\n\t\t10, 3, 176, 178, 78, 0, 62, 215, 169, 50, 21, 7, 69, 160,\n\t\t119, 158, 221, 236, 180, 251, 228, 79, 165, 34, 14, 114, 7,\n\t\t158, 120, 225, 137, 138, 24, 239, 237, 138, 139, 21, 152,\n\t\t23, 53, 81, 87, 69, 81, 100, 32, 27, 253, 38, 169, 244, 78,\n\t\t178, 132, 54, 132, 28, 230, 164, 56, 187, 61, 89, 18, 239,\n\t\t18, 237, 3, 82, 204, 235, 22, 60, 170, 210, 227, 43, 79, 188,\n\t\t254, 208, 206, 72, 100, 231, 161, 215, 223, 38, 106, 162,\n\t\t170, 163, 12, 100, 25, 89, 237, 93, 8, 69, 242, 182, 121,\n\t\t73, 64, 12, 43, 138, 79, 51, 229, 100, 44, 18, 137, 101, 245,\n\t\t183, 70, 244, 148, 206, 124, 119, 8, 175, 186, 11, 151, 1,\n\t\t75, 252, 34, 64, 47, 152, 133, 81, 195, 106, 246, 113, 85,\n\t\t72, 221, 219, 65, 188, 81, 177, 50, 12, 65, 212, 94, 134,\n\t\t221, 222, 42, 60, 155, 49, 104, 232, 134, 247, 134, 51, 6,\n\t\t188, 96, 100, 140, 3, 65, 18, 60, 92, 144, 52, 152, 95, 189,\n\t\t111, 44, 227, 123, 133, 130, 13, 130, 216, 74, 48, 138, 66,\n\t\t24, 21, 216, 211, 14, 70, 95, 1, 9, 10, 110, 35, 185, 96,\n\t\t209, 246, 126, 250, 73, 247, 183, 221, 210, 129, 210, 10,\n\t\t73, 5, 187, 111, 127, 155, 140, 143, 209, 246, 254, 104, 180,\n\t\t47, 43, 250, 190, 175, 139, 244, 74, 79, 7, 191, 84, 138,\n\t\t224, 144, 63, 236, 192, 206, 157, 162, 56, 38, 138, 243, 243,\n\t\t100, 53, 180, 55, 236, 38, 235, 125, 247, 98, 231, 248, 123,\n\t\t161, 248, 162, 60, 112, 192, 20, 0, 101, 203, 166, 40, 127,\n\t\t21, 132, 157, 150, 75, 184, 10, 59, 13, 155, 48, 23, 90, 6,\n\t\t118, 42, 229, 78, 5, 91, 216, 69, 182, 235, 184, 112, 73,\n\t\t47, 236, 187, 249, 230, 125, 121, 35, 27, 203, 116, 58, 153,\n\t\t104, 86, 207, 239, 251, 202, 190, 188, 158, 141, 102, 58,\n\t\t110, 58, 214, 91, 75, 38, 71, 44, 243, 199, 201, 100, 206,\n\t\t180, 142, 84, 70, 246, 236, 25, 169, 104, 133, 204, 174, 223,\n\t\t223, 149, 46, 68, 156, 220, 158, 61, 35, 142, 86, 72, 123,\n\t\t187, 197, 248, 193, 131, 210, 206, 157, 103, 15, 30, 148,\n\t\t230, 119, 249, 92, 251, 180, 94, 28, 144, 64, 132, 48, 43,\n\t\t122, 53, 156, 4, 64, 71, 184, 210, 177, 43, 29, 215, 178,\n\t\t121, 27, 225, 14, 95, 113, 45, 175, 126, 200, 171, 92, 165,\n\t\t227, 162, 178, 141, 157, 74, 199, 246, 134, 224, 111, 48,\n\t\t19, 135, 218, 183, 85, 55, 195, 171, 230, 122, 191, 113, 200,\n\t\t61, 40, 193, 109, 213, 199, 90, 220, 141, 31, 174, 206, 48,\n\t\t87, 205, 193, 27, 188, 162, 222, 23, 72, 209, 51, 222, 169,\n\t\t240, 143, 14, 186, 135, 166, 254, 172, 186, 231, 70, 174,\n\t\t85, 60, 52, 193, 236, 254, 72, 245, 177, 185, 171, 152, 169,\n\t\t117, 5, 240, 255, 246, 78, 11, 124, 186, 131, 248, 44, 59,\n\t\t28, 161, 21, 244, 174, 142, 143, 223, 22, 236, 211, 8, 173,\n\t\t219, 73, 167, 161, 150, 48, 31, 232, 157, 170, 83, 21, 82,\n\t\t116, 45, 41, 122, 50, 20, 247, 46, 172, 173, 194, 255, 128,\n\t\t171, 160, 0, 118, 130, 253, 224, 36, 184, 23, 188, 3, 0, 106,\n\t\t12, 104, 247, 61, 117, 126, 170, 102, 16, 163, 103, 69, 160,\n\t\t237, 84, 214, 103, 114, 6, 32, 50, 17, 104, 216, 165, 78,\n\t\t197, 246, 51, 206, 108, 171, 63, 243, 206, 5, 151, 42, 93,\n\t\t164, 172, 82, 242, 126, 22, 54, 64, 31, 40, 178, 2, 106, 90,\n\t\t8, 101, 145, 133, 178, 8, 89, 77, 36, 176, 197, 119, 64, 200,\n\t\t101, 56, 155, 107, 113, 54, 151, 97, 97, 82, 121, 84, 133,\n\t\t181, 156, 168, 136, 15, 64, 238, 191, 114, 80, 227, 126, 159,\n\t\t251, 49, 139, 254, 14, 177, 22, 122, 10, 217, 169, 216, 91,\n\t\t98, 41, 132, 206, 162, 23, 78, 34, 41, 135, 108, 148, 65,\n\t\t40, 131, 108, 148, 147, 208, 201, 235, 32, 179, 135, 227,\n\t\t70, 70, 232, 223, 30, 6, 198, 102, 91, 237, 237, 165, 92,\n\t\t14, 137, 226, 27, 33, 83, 226, 184, 18, 3, 229, 8, 199, 69,\n\t\t24, 118, 2, 161, 9, 150, 209, 188, 95, 63, 119, 170, 217,\n\t\t60, 133, 168, 33, 129, 233, 203, 54, 142, 167, 63, 234, 213,\n\t\t192, 109, 231, 205, 73, 150, 141, 9, 35, 105, 99, 14, 90,\n\t\t125, 106, 170, 118, 107, 22, 234, 70, 137, 26, 133, 10, 13,\n\t\t243, 141, 74, 196, 142, 213, 163, 137, 136, 50, 154, 127,\n\t\t128, 97, 52, 134, 103, 238, 206, 102, 179, 79, 103, 179, 133,\n\t\t246, 5, 165, 247, 77, 69, 129, 99, 10, 188, 135, 51, 213,\n\t\t152, 109, 199, 84, 147, 75, 110, 126, 128, 225, 25, 141, 97,\n\t\t238, 158, 107, 58, 99, 194, 150, 45, 194, 152, 227, 92, 127,\n\t\t176, 119, 39, 33, 162, 3, 192, 155, 25, 253, 49, 134, 234,\n\t\t8, 17, 160, 3, 27, 164, 73, 54, 248, 128, 193, 127, 43, 152,\n\t\t35, 57, 109, 251, 193, 97, 112, 21, 56, 6, 174, 3, 39, 193,\n\t\t77, 224, 20, 184, 29, 188, 14, 220, 11, 94, 15, 222, 8, 222,\n\t\t10, 128, 219, 52, 75, 133, 82, 187, 89, 110, 154, 165, 114,\n\t\t169, 221, 140, 121, 219, 237, 166, 25, 176, 154, 232, 102,\n\t\t169, 93, 50, 75, 109, 66, 2, 230, 147, 244, 66, 127, 159,\n\t\t252, 166, 105, 150, 216, 82, 155, 144, 132, 149, 205, 82,\n\t\t187, 224, 255, 134, 55, 75, 109, 114, 172, 105, 150, 42, 77,\n\t\t179, 228, 221, 167, 98, 150, 218, 110, 169, 221, 196, 165,\n\t\t118, 211, 110, 55, 77, 220, 110, 154, 171, 221, 46, 236, 118,\n\t\t187, 61, 208, 237, 50, 160, 219, 237, 118, 215, 64, 183, 183,\n\t\t218, 237, 118, 87, 201, 255, 100, 179, 11, 129, 183, 185,\n\t\t76, 54, 188, 255, 150, 189, 114, 239, 103, 193, 122, 213,\n\t\t47, 166, 155, 203, 116, 147, 22, 122, 167, 44, 147, 203, 118,\n\t\t131, 91, 120, 55, 131, 222, 213, 225, 50, 221, 89, 166, 247,\n\t\t88, 243, 55, 201, 109, 150, 253, 202, 132, 174, 68, 175, 75,\n\t\t100, 182, 255, 88, 91, 133, 159, 39, 241, 24, 85, 0, 120,\n\t\t115, 240, 181, 217, 134, 39, 178, 21, 94, 169, 119, 193, 21,\n\t\t202, 230, 117, 90, 17, 84, 11, 115, 71, 123, 47, 30, 197,\n\t\t9, 115, 165, 129, 80, 3, 141, 34, 111, 149, 73, 120, 95, 26,\n\t\t206, 68, 19, 234, 15, 127, 168, 23, 235, 126, 49, 26, 69,\n\t\t245, 190, 124, 182, 2, 202, 20, 185, 184, 108, 122, 234, 251,\n\t\t28, 156, 133, 219, 33, 70, 17, 98, 147, 36, 2, 36, 233, 122,\n\t\t222, 92, 239, 181, 86, 189, 65, 185, 93, 188, 90, 6, 152,\n\t\t149, 112, 177, 183, 154, 48, 54, 203, 81, 75, 98, 21, 136,\n\t\t178, 12, 203, 176, 219, 48, 22, 53, 70, 121, 116, 97, 201,\n\t\t160, 164, 99, 245, 168, 162, 68, 149, 11, 23, 106, 86, 69,\n\t\t202, 242, 73, 181, 33, 243, 114, 13, 49, 10, 132, 105, 86,\n\t\t120, 76, 194, 98, 134, 227, 148, 165, 222, 170, 66, 235, 188,\n\t\t160, 120, 231, 131, 192, 255, 84, 135, 203, 132, 187, 10,\n\t\t20, 74, 179, 92, 240, 62, 124, 240, 77, 175, 195, 248, 239,\n\t\t196, 176, 70, 96, 168, 130, 80, 56, 207, 136, 70, 84, 205,\n\t\t43, 202, 152, 149, 218, 180, 103, 83, 202, 26, 83, 148, 124,\n\t\t46, 50, 169, 40, 189, 151, 20, 133, 193, 217, 114, 183, 172,\n\t\t36, 20, 105, 60, 89, 218, 180, 169, 148, 28, 151, 148, 132,\n\t\t178, 245, 120, 36, 71, 107, 65, 229, 88, 180, 182, 10, 127,\n\t\t226, 231, 231, 117, 1, 224, 131, 79, 148, 133, 70, 144, 161,\n\t\t205, 19, 56, 123, 182, 192, 82, 77, 193, 166, 238, 186, 214,\n\t\t44, 67, 0, 170, 27, 212, 113, 103, 82, 167, 12, 252, 148,\n\t\t255, 213, 190, 89, 43, 20, 106, 121, 200, 141, 33, 120, 91,\n\t\t239, 194, 109, 16, 141, 73, 200, 178, 52, 141, 133, 158, 194,\n\t\t48, 46, 176, 218, 46, 141, 21, 198, 121, 12, 101, 195, 54,\n\t\t81, 151, 214, 137, 1, 4, 150, 240, 140, 193, 97, 134, 237,\n\t\t173, 65, 200, 50, 152, 51, 144, 228, 68, 12, 139, 229, 88,\n\t\t70, 24, 31, 23, 48, 159, 79, 58, 18, 24, 250, 198, 211, 222,\n\t\t55, 118, 43, 78, 48, 102, 54, 7, 137, 223, 253, 45, 35, 2,\n\t\t45, 187, 208, 113, 131, 241, 56, 212, 30, 175, 152, 230, 148,\n\t\t49, 165, 142, 249, 125, 60, 174, 19, 215, 29, 55, 13, 243,\n\t\t189, 11, 249, 133, 174, 158, 210, 47, 4, 45, 241, 159, 38,\n\t\t56, 254, 1, 69, 153, 154, 226, 49, 230, 233, 242, 1, 158,\n\t\t155, 120, 227, 93, 119, 93, 217, 237, 170, 186, 254, 79, 161,\n\t\t247, 26, 216, 75, 108, 80, 3, 87, 1, 16, 34, 206, 8, 69, 126,\n\t\t116, 154, 124, 63, 208, 123, 24, 102, 178, 50, 116, 254, 197,\n\t\t81, 40, 9, 48, 83, 93, 210, 18, 130, 144, 208, 36, 166, 75,\n\t\t86, 117, 191, 240, 156, 191, 94, 30, 20, 45, 107, 18, 92,\n\t\t212, 36, 154, 169, 127, 90, 168, 11, 167, 37, 109, 153, 174,\n\t\t52, 9, 18, 72, 162, 211, 171, 154, 212, 35, 153, 191, 143,\n\t\t63, 62, 200, 231, 247, 182, 195, 115, 49, 34, 92, 204, 87,\n\t\t0, 0, 45, 187, 98, 217, 22, 116, 42, 182, 83, 113, 42, 179,\n\t\t208, 181, 53, 136, 117, 28, 136, 87, 235, 215, 33, 113, 171,\n\t\t6, 221, 245, 107, 194, 127, 242, 183, 42, 252, 181, 78, 51,\n\t\t215, 107, 209, 117, 60, 118, 238, 212, 55, 99, 231, 78, 221,\n\t\t154, 205, 32, 94, 225, 249, 172, 157, 65, 72, 70, 40, 99,\n\t\t101, 121, 178, 38, 187, 252, 43, 30, 133, 111, 111, 181, 127,\n\t\t13, 106, 66, 239, 58, 186, 254, 210, 235, 62, 16, 249, 235,\n\t\t215, 125, 32, 2, 143, 100, 252, 211, 237, 44, 207, 7, 107,\n\t\t133, 71, 153, 225, 107, 91, 161, 179, 250, 71, 3, 220, 204,\n\t\t21, 98, 51, 45, 129, 105, 48, 3, 230, 189, 153, 130, 124,\n\t\t42, 212, 159, 215, 9, 222, 79, 217, 208, 24, 92, 242, 123,\n\t\t52, 38, 254, 67, 11, 85, 44, 187, 85, 177, 52, 88, 33, 65,\n\t\t5, 180, 164, 217, 232, 44, 94, 208, 213, 40, 241, 144, 146,\n\t\t53, 236, 106, 169, 81, 235, 219, 211, 237, 51, 31, 63, 243,\n\t\t41, 77, 183, 112, 214, 16, 246, 89, 188, 108, 171, 130, 173,\n\t\t233, 93, 178, 111, 107, 58, 161, 173, 49, 20, 197, 80, 117,\n\t\t253, 59, 233, 246, 148, 163, 101, 78, 184, 71, 207, 156, 121,\n\t\t80, 215, 108, 193, 200, 98, 171, 102, 11, 170, 45, 113, 150,\n\t\t113, 144, 238, 27, 96, 192, 1, 133, 65, 28, 128, 109, 144,\n\t\t218, 145, 43, 57, 216, 113, 105, 134, 212, 135, 191, 241,\n\t\t225, 15, 127, 227, 195, 238, 87, 191, 234, 126, 248, 27, 31,\n\t\t126, 137, 40, 242, 218, 88, 46, 55, 118, 215, 216, 204, 204,\n\t\t24, 105, 227, 127, 74, 120, 247, 60, 141, 173, 13, 64, 217,\n\t\t246, 116, 67, 13, 214, 32, 1, 58, 138, 192, 142, 59, 11, 155,\n\t\t60, 29, 69, 218, 173, 89, 70, 247, 4, 38, 11, 69, 96, 133,\n\t\t66, 49, 117, 108, 8, 142, 177, 106, 36, 27, 77, 191, 163,\n\t\t211, 230, 240, 73, 22, 113, 219, 146, 217, 244, 21, 25, 40,\n\t\t22, 171, 213, 157, 85, 197, 202, 62, 38, 41, 223, 43, 178,\n\t\t28, 218, 122, 52, 201, 42, 92, 241, 123, 170, 244, 143, 119,\n\t\t114, 145, 177, 209, 9, 213, 140, 49, 140, 157, 95, 226, 48,\n\t\t180, 46, 183, 45, 227, 225, 218, 124, 173, 86, 136, 101, 45,\n\t\t5, 238, 80, 165, 79, 78, 242, 10, 84, 238, 116, 121, 200,\n\t\t77, 62, 37, 246, 253, 65, 129, 60, 0, 248, 66, 172, 192, 128,\n\t\t30, 96, 64, 151, 9, 242, 172, 24, 17, 174, 2, 137, 228, 131,\n\t\t130, 178, 131, 112, 133, 18, 116, 96, 100, 26, 182, 19, 54,\n\t\t135, 87, 161, 27, 100, 124, 194, 23, 235, 119, 23, 191, 49,\n\t\t51, 247, 212, 92, 45, 241, 175, 72, 30, 207, 142, 94, 131,\n\t\t98, 168, 141, 240, 169, 82, 86, 52, 225, 44, 121, 105, 231,\n\t\t242, 70, 237, 27, 51, 115, 115, 181, 183, 61, 98, 197, 179,\n\t\t41, 62, 51, 122, 10, 163, 54, 138, 161, 107, 74, 217, 43,\n\t\t138, 191, 73, 40, 199, 1, 64, 107, 47, 19, 126, 241, 63, 5,\n\t\t18, 136, 131, 12, 24, 3, 13, 111, 68, 118, 53, 136, 171, 208,\n\t\t235, 91, 86, 69, 131, 216, 241, 4, 115, 167, 82, 133, 21,\n\t\t146, 85, 104, 217, 126, 238, 224, 44, 196, 150, 75, 217, 200,\n\t\t59, 122, 142, 49, 51, 208, 68, 165, 122, 169, 227, 252, 227,\n\t\t244, 209, 72, 164, 32, 198, 22, 119, 153, 163, 179, 39, 147,\n\t\t145, 189, 187, 75, 95, 119, 235, 208, 45, 215, 155, 173, 214,\n\t\t219, 15, 92, 53, 62, 166, 228, 246, 252, 210, 172, 86, 59,\n\t\t124, 255, 187, 179, 39, 156, 236, 254, 164, 244, 103, 245,\n\t\t253, 19, 83, 211, 16, 85, 190, 150, 93, 106, 69, 106, 250,\n\t\t222, 123, 242, 141, 195, 185, 155, 230, 174, 56, 235, 140,\n\t\t124, 13, 165, 59, 15, 86, 52, 212, 120, 247, 213, 99, 16,\n\t\t74, 155, 198, 205, 212, 100, 124, 226, 216, 149, 70, 178,\n\t\t104, 70, 106, 240, 125, 177, 93, 39, 219, 144, 131, 218, 238,\n\t\t135, 188, 119, 46, 16, 187, 169, 167, 215, 111, 1, 243, 224,\n\t\t114, 112, 37, 184, 22, 220, 8, 94, 11, 238, 9, 172, 147, 235,\n\t\t160, 159, 252, 144, 107, 63, 143, 224, 82, 219, 235, 181,\n\t\t112, 235, 18, 251, 235, 203, 225, 7, 83, 58, 197, 30, 75,\n\t\t68, 40, 244, 88, 66, 79, 233, 66, 84, 8, 47, 255, 42, 20,\n\t\t33, 123, 217, 134, 237, 112, 204, 44, 92, 208, 213, 39, 45,\n\t\t227, 238, 168, 105, 80, 128, 178, 194, 15, 188, 94, 120, 78,\n\t\t16, 158, 246, 214, 79, 11, 194, 57, 127, 127, 159, 218, 251,\n\t\t191, 66, 65, 191, 143, 132, 182, 199, 67, 97, 192, 52, 60,\n\t\t24, 80, 251, 132, 143, 133, 42, 18, 169, 53, 200, 81, 6, 100,\n\t\t6, 32, 105, 93, 3, 102, 113, 24, 43, 196, 130, 199, 69, 235,\n\t\t30, 191, 191, 159, 90, 92, 76, 57, 76, 55, 229, 56, 169, 197,\n\t\t222, 5, 8, 246, 12, 208, 43, 180, 187, 66, 219, 48, 159, 114,\n\t\t122, 171, 78, 10, 2, 39, 181, 154, 114, 136, 186, 223, 237,\n\t\t173, 126, 143, 28, 189, 146, 44, 239, 10, 109, 15, 197, 121,\n\t\t138, 164, 221, 2, 88, 183, 41, 59, 174, 93, 49, 75, 157, 77,\n\t\t222, 32, 128, 11, 129, 191, 0, 246, 224, 191, 188, 87, 142,\n\t\t107, 236, 183, 254, 5, 54, 249, 100, 244, 166, 32, 5, 11,\n\t\t98, 188, 42, 68, 164, 194, 42, 62, 23, 137, 95, 120, 209,\n\t\t211, 175, 195, 120, 249, 6, 24, 7, 179, 161, 184, 228, 192,\n\t\t66, 96, 186, 118, 187, 28, 222, 9, 44, 220, 248, 98, 103,\n\t\t50, 245, 126, 244, 210, 66, 62, 223, 59, 239, 111, 44, 244,\n\t\t77, 192, 193, 161, 21, 17, 19, 244, 230, 85, 44, 46, 154,\n\t\t230, 98, 183, 191, 69, 54, 186, 195, 71, 7, 239, 96, 5, 36,\n\t\t65, 150, 50, 101, 108, 228, 195, 245, 103, 118, 179, 217,\n\t\t38, 254, 219, 75, 64, 62, 133, 237, 16, 11, 25, 99, 197, 200,\n\t\t172, 46, 231, 133, 25, 161, 46, 204, 8, 254, 10, 118, 195,\n\t\t17, 177, 196, 100, 95, 207, 231, 243, 47, 133, 78, 17, 102,\n\t\t66, 248, 138, 18, 241, 162, 15, 152, 104, 226, 100, 6, 66,\n\t\t166, 177, 122, 245, 237, 183, 127, 236, 246, 215, 78, 29,\n\t\t233, 44, 46, 194, 213, 131, 191, 181, 229, 134, 251, 239,\n\t\t191, 97, 203, 111, 245, 222, 219, 158, 152, 185, 237, 182,\n\t\t153, 9, 95, 142, 217, 11, 87, 64, 22, 148, 61, 9, 181, 76,\n\t\t25, 55, 107, 208, 169, 144, 171, 249, 176, 132, 118, 199,\n\t\t237, 52, 27, 118, 128, 100, 194, 187, 21, 167, 84, 196, 26,\n\t\t180, 153, 201, 116, 180, 146, 29, 221, 86, 124, 8, 163, 249,\n\t\t235, 231, 231, 171, 211, 93, 70, 205, 122, 5, 189, 151, 50,\n\t\t99, 25, 88, 186, 114, 71, 36, 29, 85, 226, 88, 121, 180, 114,\n\t\t34, 109, 110, 250, 19, 41, 242, 161, 234, 252, 124, 245, 66,\n\t\t117, 126, 118, 170, 96, 152, 155, 222, 191, 228, 61, 222,\n\t\t210, 244, 150, 19, 150, 168, 140, 199, 134, 108, 175, 38,\n\t\t177, 110, 111, 124, 215, 68, 110, 238, 251, 202, 135, 44,\n\t\t62, 150, 27, 182, 190, 46, 56, 45, 167, 67, 154, 253, 107,\n\t\t72, 84, 214, 0, 63, 137, 120, 213, 135, 60, 231, 9, 210, 222,\n\t\t255, 134, 48, 124, 12, 160, 147, 124, 91, 202, 160, 62, 158,\n\t\t44, 218, 6, 59, 192, 65, 112, 205, 165, 106, 182, 126, 248,\n\t\t234, 175, 253, 26, 235, 63, 67, 134, 220, 250, 167, 248, 88,\n\t\t168, 11, 211, 127, 15, 146, 229, 233, 139, 36, 202, 109, 120,\n\t\t180, 222, 185, 80, 143, 166, 203, 167, 200, 178, 247, 24,\n\t\t177, 215, 159, 14, 45, 125, 78, 98, 102, 217, 199, 79, 105,\n\t\t18, 70, 155, 253, 224, 186, 129, 21, 47, 224, 53, 226, 73,\n\t\t58, 177, 107, 117, 218, 94, 219, 64, 150, 55, 115, 209, 64,\n\t\t221, 138, 227, 105, 185, 222, 188, 53, 186, 97, 184, 246,\n\t\t127, 187, 62, 206, 252, 127, 146, 33, 247, 87, 73, 222, 93,\n\t\t239, 55, 227, 152, 87, 228, 120, 194, 61, 122, 249, 182, 221,\n\t\t124, 190, 166, 101, 108, 149, 195, 113, 156, 146, 26, 238,\n\t\t133, 153, 77, 82, 10, 186, 161, 129, 237, 147, 116, 180, 38,\n\t\t132, 149, 47, 147, 94, 190, 74, 6, 218, 189, 36, 79, 239,\n\t\t197, 180, 152, 17, 144, 100, 36, 71, 242, 86, 178, 196, 90,\n\t\t170, 38, 100, 196, 180, 204, 163, 156, 126, 221, 117, 122,\n\t\t14, 241, 35, 161, 65, 15, 145, 31, 126, 117, 16, 244, 72,\n\t\t226, 152, 214, 214, 62, 7, 159, 133, 207, 130, 109, 96, 7,\n\t\t216, 11, 14, 2, 96, 206, 178, 110, 149, 237, 83, 248, 20,\n\t\t2, 2, 31, 141, 195, 8, 55, 157, 74, 199, 205, 81, 250, 172,\n\t\t98, 197, 169, 20, 252, 232, 72, 189, 227, 150, 44, 183, 96,\n\t\t217, 205, 14, 91, 112, 42, 37, 196, 106, 249, 249, 233, 233,\n\t\t249, 188, 198, 66, 9, 231, 53, 134, 97, 224, 12, 195, 48,\n\t\t90, 30, 75, 144, 145, 114, 19, 7, 55, 77, 21, 223, 170, 114,\n\t\t249, 244, 196, 230, 24, 57, 37, 2, 33, 219, 251, 138, 127,\n\t\t202, 127, 31, 205, 44, 103, 126, 167, 247, 19, 81, 249, 182,\n\t\t242, 50, 228, 5, 245, 91, 74, 213, 172, 237, 186, 44, 155,\n\t\t189, 108, 87, 205, 196, 178, 38, 72, 146, 160, 201, 56, 62,\n\t\t54, 183, 185, 155, 180, 178, 10, 19, 211, 71, 175, 157, 73,\n\t\t97, 89, 67, 138, 40, 106, 50, 76, 26, 137, 196, 233, 104,\n\t\t52, 218, 59, 31, 141, 70, 105, 191, 251, 52, 225, 166, 51,\n\t\t65, 27, 108, 7, 160, 76, 195, 181, 109, 183, 226, 118, 114,\n\t\t12, 141, 186, 118, 136, 124, 71, 88, 48, 43, 78, 152, 160,\n\t\t206, 214, 45, 130, 97, 208, 103, 108, 116, 218, 16, 34, 110,\n\t\t182, 176, 189, 176, 157, 69, 136, 131, 219, 24, 132, 126,\n\t\t221, 238, 49, 8, 253, 159, 112, 215, 116, 118, 146, 23, 166,\n\t\t174, 191, 134, 56, 124, 109, 124, 243, 116, 230, 47, 145,\n\t\t194, 244, 254, 152, 132, 145, 125, 108, 133, 19, 48, 52, 110,\n\t\t50, 110, 50, 33, 100, 120, 246, 15, 177, 194, 180, 99, 227,\n\t\t88, 102, 247, 78, 205, 8, 252, 84, 206, 45, 65, 147, 124,\n\t\t29, 171, 247, 151, 112, 116, 47, 131, 208, 227, 62, 66, 252,\n\t\t0, 19, 208, 32, 210, 122, 63, 20, 142, 78, 28, 164, 179, 246,\n\t\t105, 212, 3, 48, 1, 74, 186, 71, 183, 188, 31, 12, 30, 202,\n\t\t50, 99, 100, 10, 57, 91, 175, 159, 245, 27, 132, 136, 175,\n\t\t98, 51, 99, 25, 246, 75, 100, 121, 149, 79, 18, 184, 136,\n\t\t197, 101, 17, 67, 128, 197, 229, 124, 126, 89, 196, 107, 128,\n\t\t76, 34, 228, 124, 175, 39, 10, 194, 96, 13, 151, 252, 3, 189,\n\t\t179, 161, 177, 78, 0, 41, 130, 225, 75, 248, 230, 155, 13,\n\t\t27, 27, 214, 214, 225, 32, 33, 253, 149, 96, 4, 223, 128,\n\t\t151, 145, 132, 93, 2, 24, 77, 205, 244, 95, 233, 174, 155,\n\t\t84, 142, 97, 9, 45, 227, 183, 73, 90, 239, 105, 162, 250,\n\t\t157, 151, 180, 222, 55, 195, 51, 138, 16, 248, 100, 61, 121,\n\t\t174, 70, 80, 96, 67, 149, 32, 184, 141, 141, 57, 104, 19,\n\t\t247, 199, 36, 244, 73, 195, 250, 190, 70, 175, 138, 118, 80,\n\t\t123, 152, 239, 215, 100, 79, 137, 145, 152, 205, 214, 181,\n\t\t222, 19, 211, 109, 131, 225, 223, 43, 8, 51, 154, 244, 149,\n\t\t95, 38, 181, 38, 208, 215, 164, 78, 143, 239, 225, 184, 123,\n\t\t166, 68, 77, 244, 214, 99, 156, 16, 21, 190, 39, 105, 183,\n\t\t145, 122, 131, 80, 188, 163, 72, 152, 204, 154, 97, 105, 201,\n\t\t142, 21, 98, 36, 111, 181, 255, 78, 200, 104, 218, 127, 95,\n\t\t229, 64, 223, 142, 101, 140, 122, 221, 200, 44, 195, 238,\n\t\t26, 88, 247, 130, 200, 144, 91, 135, 75, 70, 166, 215, 245,\n\t\t54, 86, 123, 221, 225, 41, 215, 143, 58, 33, 95, 43, 144,\n\t\t91, 146, 196, 2, 181, 29, 92, 6, 110, 1, 119, 131, 55, 191,\n\t\t146, 100, 0, 47, 49, 238, 219, 151, 40, 119, 95, 65, 138,\n\t\t184, 212, 28, 194, 228, 85, 93, 196, 47, 95, 192, 162, 174,\n\t\t46, 147, 80, 220, 53, 64, 67, 147, 233, 191, 149, 240, 78,\n\t\t20, 165, 144, 129, 82, 200, 95, 157, 13, 31, 131, 139, 186,\n\t\t218, 35, 141, 30, 46, 169, 58, 229, 46, 233, 125, 156, 28,\n\t\t122, 15, 89, 222, 23, 218, 254, 163, 208, 85, 80, 170, 247,\n\t\t237, 208, 33, 48, 228, 11, 42, 13, 97, 192, 209, 39, 27, 122,\n\t\t146, 38, 121, 66, 170, 152, 194, 37, 161, 46, 44, 10, 117,\n\t\t193, 95, 193, 85, 82, 254, 183, 47, 10, 194, 241, 227, 130,\n\t\t64, 87, 65, 108, 111, 151, 112, 100, 167, 65, 149, 162, 23,\n\t\t175, 251, 6, 102, 179, 221, 207, 185, 30, 206, 86, 198, 200,\n\t\t106, 234, 102, 201, 255, 72, 225, 196, 244, 179, 171, 123,\n\t\t136, 243, 54, 59, 156, 160, 204, 49, 146, 240, 107, 203, 132,\n\t\t201, 101, 120, 166, 93, 92, 92, 33, 158, 220, 103, 84, 76,\n\t\t211, 146, 85, 172, 194, 149, 197, 69, 85, 215, 67, 249, 225,\n\t\t38, 145, 31, 119, 191, 154, 84, 163, 191, 194, 183, 127, 37,\n\t\t57, 129, 74, 59, 251, 134, 91, 182, 240, 164, 247, 239, 82,\n\t\t34, 79, 239, 187, 67, 141, 252, 43, 65, 238, 60, 23, 26, 75,\n\t\t103, 192, 54, 162, 171, 94, 76, 16, 183, 75, 230, 198, 168,\n\t\t147, 128, 13, 193, 7, 210, 230, 219, 37, 179, 208, 46, 153,\n\t\t164, 65, 45, 117, 187, 36, 210, 103, 153, 82, 167, 208, 41,\n\t\t155, 110, 51, 139, 88, 20, 123, 79, 172, 192, 229, 149, 85,\n\t\t34, 172, 211, 225, 212, 219, 232, 14, 38, 229, 240, 166, 247,\n\t\t31, 173, 235, 183, 153, 93, 112, 197, 231, 148, 166, 232,\n\t\t134, 222, 157, 73, 61, 108, 95, 110, 117, 109, 11, 35, 2,\n\t\t20, 157, 131, 62, 152, 21, 137, 68, 152, 95, 201, 140, 101,\n\t\t254, 199, 215, 49, 174, 221, 127, 68, 40, 162, 231, 174, 18,\n\t\t75, 60, 126, 30, 225, 26, 92, 33, 162, 170, 183, 120, 140,\n\t\t10, 170, 185, 231, 49, 95, 18, 175, 186, 191, 134, 221, 35,\n\t\t247, 215, 48, 254, 58, 70, 197, 48, 214, 121, 1, 108, 2, 64,\n\t\t111, 23, 6, 163, 166, 63, 18, 13, 173, 75, 238, 58, 249, 135,\n\t\t80, 148, 175, 1, 85, 127, 64, 16, 30, 240, 255, 136, 43, 213,\n\t\t247, 185, 130, 110, 143, 160, 214, 118, 133, 168, 16, 252,\n\t\t173, 14, 76, 127, 235, 99, 22, 146, 160, 61, 192, 131, 15,\n\t\t238, 161, 247, 115, 77, 220, 87, 24, 41, 41, 30, 60, 189,\n\t\t173, 16, 212, 106, 253, 92, 18, 186, 117, 47, 15, 23, 73,\n\t\t221, 190, 56, 172, 158, 128, 128, 215, 232, 89, 80, 162, 156,\n\t\t51, 63, 11, 243, 78, 197, 119, 139, 141, 208, 116, 48, 2,\n\t\t229, 59, 233, 231, 39, 49, 190, 236, 200, 92, 140, 151, 103,\n\t\t85, 196, 15, 11, 194, 123, 121, 198, 104, 112, 6, 151, 185,\n\t\t213, 43, 62, 99, 145, 237, 3, 164, 27, 95, 152, 175, 134,\n\t\t26, 26, 229, 235, 121, 241, 44, 22, 151, 133, 168, 192, 141,\n\t\t221, 36, 138, 174, 168, 137, 83, 222, 122, 13, 144, 126, 12,\n\t\t134, 250, 0, 205, 110, 190, 33, 244, 20, 68, 100, 40, 209,\n\t\t22, 22, 116, 74, 90, 249, 117, 219, 212, 12, 189, 21, 182,\n\t\t7, 40, 31, 4, 193, 39, 16, 149, 130, 181, 219, 174, 148, 76,\n\t\t74, 222, 84, 159, 89, 152, 89, 158, 89, 152, 57, 39, 8, 231,\n\t\t201, 72, 71, 151, 189, 23, 5, 97, 134, 198, 220, 79, 25, 218,\n\t\t205, 90, 111, 138, 146, 233, 80, 116, 194, 229, 155, 167,\n\t\t22, 201, 187, 24, 155, 153, 25, 243, 254, 150, 105, 56, 78,\n\t\t248, 31, 85, 38, 181, 155, 53, 227, 142, 165, 16, 183, 206,\n\t\t167, 148, 155, 67, 113, 119, 20, 207, 175, 68, 252, 103, 135,\n\t\t192, 181, 67, 81, 69, 77, 150, 128, 171, 251, 198, 207, 129,\n\t\t69, 222, 96, 215, 181, 54, 175, 203, 195, 208, 185, 161, 83,\n\t\t237, 208, 229, 152, 7, 188, 225, 93, 24, 25, 175, 10, 117,\n\t\t97, 116, 36, 43, 212, 5, 242, 6, 252, 36, 132, 197, 39, 161,\n\t\t144, 202, 121, 135, 182, 9, 117, 225, 56, 57, 215, 135, 147,\n\t\t128, 98, 250, 216, 166, 156, 32, 228, 156, 121, 67, 47, 207,\n\t\t10, 194, 172, 220, 251, 129, 136, 151, 177, 152, 49, 186,\n\t\t70, 102, 169, 219, 133, 243, 241, 205, 5, 239, 140, 169, 228,\n\t\t196, 142, 121, 65, 152, 157, 122, 129, 254, 20, 48, 107, 63,\n\t\t93, 251, 12, 195, 193, 47, 128, 17, 48, 11, 128, 238, 218,\n\t\t120, 152, 196, 106, 200, 118, 93, 113, 125, 146, 43, 74, 118,\n\t\t197, 146, 248, 35, 134, 198, 33, 217, 127, 214, 125, 248,\n\t\t143, 210, 78, 119, 158, 24, 168, 119, 98, 46, 157, 154, 33,\n\t\t214, 101, 119, 154, 174, 95, 166, 70, 229, 233, 203, 16, 42,\n\t\t34, 62, 246, 112, 140, 174, 55, 79, 83, 235, 51, 140, 237,\n\t\t120, 248, 15, 51, 60, 222, 73, 78, 155, 239, 58, 233, 244,\n\t\t12, 49, 71, 187, 85, 178, 230, 63, 68, 109, 213, 211, 151,\n\t\t243, 168, 136, 144, 247, 123, 222, 91, 207, 76, 83, 147, 56,\n\t\t213, 79, 86, 153, 183, 195, 47, 0, 153, 160, 228, 86, 201,\n\t\t216, 231, 115, 59, 181, 59, 124, 195, 50, 53, 88, 42, 86,\n\t\t153, 74, 171, 211, 4, 253, 129, 15, 251, 99, 97, 231, 230,\n\t\t7, 174, 19, 33, 98, 123, 231, 89, 94, 132, 53, 150, 23, 175,\n\t\t219, 150, 115, 39, 50, 60, 207, 50, 35, 71, 200, 64, 136,\n\t\t113, 109, 207, 243, 100, 112, 20, 75, 60, 4, 7, 183, 176,\n\t\t8, 177, 91, 110, 66, 236, 150, 131, 230, 232, 166, 44, 139,\n\t\t224, 237, 100, 44, 244, 134, 198, 61, 100, 124, 244, 118,\n\t\t105, 92, 165, 87, 55, 8, 159, 35, 217, 31, 150, 17, 129, 37,\n\t\t194, 122, 55, 7, 219, 27, 220, 3, 193, 122, 22, 194, 239,\n\t\t148, 50, 189, 155, 175, 193, 134, 134, 175, 153, 110, 144,\n\t\t183, 209, 8, 173, 189, 199, 110, 86, 211, 7, 225, 199, 11,\n\t\t87, 102, 94, 190, 6, 107, 6, 190, 230, 150, 106, 147, 188,\n\t\t192, 198, 134, 117, 6, 17, 95, 229, 203, 107, 127, 1, 255,\n\t\t14, 126, 10, 152, 52, 26, 211, 39, 45, 43, 21, 43, 161, 244,\n\t\t84, 183, 130, 225, 119, 121, 239, 245, 202, 63, 206, 77, 214,\n\t\t70, 210, 40, 247, 175, 50, 217, 23, 246, 28, 126, 20, 34,\n\t\t228, 31, 26, 205, 95, 153, 251, 129, 140, 80, 145, 231, 95,\n\t\t216, 125, 248, 209, 128, 99, 139, 244, 27, 157, 96, 235, 110,\n\t\t5, 115, 0, 232, 67, 57, 102, 254, 64, 97, 54, 219, 235, 199,\n\t\t101, 120, 137, 243, 246, 145, 110, 159, 168, 205, 215, 234,\n\t\t93, 184, 50, 152, 42, 225, 241, 240, 129, 101, 42, 32, 17,\n\t\t252, 218, 23, 23, 23, 123, 203, 33, 22, 147, 117, 199, 194,\n\t\t227, 153, 76, 172, 250, 59, 252, 190, 237, 123, 202, 248,\n\t\t208, 118, 80, 222, 118, 91, 205, 178, 39, 170, 248, 93, 222,\n\t\t15, 23, 154, 132, 197, 118, 172, 229, 150, 59, 13, 27, 190,\n\t\t36, 8, 189, 179, 130, 0, 151, 134, 214, 80, 128, 127, 157,\n\t\t19, 22, 4, 93, 235, 61, 168, 233, 194, 130, 144, 131, 81,\n\t\t193, 8, 11, 116, 66, 93, 88, 165, 171, 119, 43, 249, 222,\n\t\t19, 130, 240, 146, 55, 197, 189, 36, 8, 240, 88, 94, 185,\n\t\t155, 227, 194, 182, 199, 36, 40, 144, 200, 245, 245, 82, 19,\n\t\t242, 137, 64, 43, 193, 236, 80, 41, 246, 139, 220, 78, 21,\n\t\t34, 76, 193, 145, 123, 203, 222, 50, 149, 186, 251, 177, 187,\n\t\t83, 55, 191, 253, 134, 27, 222, 126, 195, 74, 204, 182, 139,\n\t\t182, 92, 100, 120, 69, 97, 225, 178, 147, 234, 145, 19, 97,\n\t\t55, 229, 76, 55, 15, 223, 125, 247, 225, 230, 244, 26, 184,\n\t\t193, 59, 117, 75, 34, 26, 179, 237, 88, 68, 57, 140, 20, 158,\n\t\t71, 67, 223, 155, 226, 10, 53, 61, 201, 63, 128, 154, 176,\n\t\t252, 154, 232, 235, 191, 243, 122, 41, 41, 86, 136, 85, 218,\n\t\t97, 217, 96, 88, 222, 219, 184, 70, 52, 21, 180, 105, 82,\n\t\t91, 202, 144, 84, 241, 79, 196, 10, 242, 199, 100, 121, 126,\n\t\t208, 88, 136, 68, 21, 200, 88, 12, 88, 20, 30, 62, 45, 8,\n\t\t167, 133, 168, 224, 173, 30, 22, 232, 110, 215, 240, 166,\n\t\t129, 174, 55, 21, 24, 93, 122, 160, 27, 134, 172, 248, 200,\n\t\t160, 77, 245, 66, 194, 151, 55, 241, 127, 133, 70, 192, 38,\n\t\t4, 33, 17, 10, 136, 205, 147, 75, 69, 163, 228, 186, 164,\n\t\t0, 0, 118, 173, 183, 246, 93, 230, 65, 248, 27, 192, 6, 69,\n\t\t48, 237, 181, 188, 57, 175, 185, 147, 174, 88, 133, 219, 161,\n\t\t77, 2, 241, 108, 203, 181, 104, 153, 219, 177, 11, 157, 17,\n\t\t50, 94, 85, 161, 11, 63, 134, 209, 35, 154, 244, 215, 145,\n\t\t232, 55, 37, 237, 17, 132, 51, 90, 183, 171, 189, 200, 33,\n\t\t225, 75, 10, 186, 254, 39, 10, 255, 242, 247, 121, 229, 39,\n\t\t215, 35, 229, 75, 2, 226, 86, 153, 202, 83, 114, 140, 237,\n\t\t112, 92, 135, 141, 201, 79, 85, 24, 251, 246, 219, 237, 37,\n\t\t172, 49, 51, 156, 124, 46, 15, 37, 9, 230, 207, 201, 220,\n\t\t12, 163, 97, 63, 79, 141, 198, 148, 25, 132, 213, 123, 202,\n\t\t215, 81, 74, 197, 10, 37, 229, 159, 101, 92, 103, 64, 192,\n\t\t186, 126, 237, 233, 36, 175, 157, 105, 238, 56, 192, 112,\n\t\t144, 193, 177, 12, 218, 124, 47, 9, 62, 250, 96, 104, 9, 87,\n\t\t206, 124, 252, 140, 222, 100, 25, 30, 155, 155, 172, 205,\n\t\t151, 31, 189, 127, 29, 206, 167, 158, 10, 199, 192, 70, 192,\n\t\t40, 0, 110, 203, 229, 131, 58, 184, 29, 215, 9, 71, 193, 82,\n\t\t48, 59, 211, 192, 93, 17, 238, 118, 198, 188, 187, 243, 28,\n\t\t59, 37, 111, 102, 182, 12, 5, 192, 222, 118, 217, 226, 107,\n\t\t63, 188, 249, 124, 42, 243, 83, 73, 111, 74, 92, 107, 114,\n\t\t243, 217, 161, 200, 215, 43, 219, 103, 142, 238, 219, 18,\n\t\t240, 100, 147, 120, 226, 24, 241, 180, 123, 109, 203, 207,\n\t\t24, 36, 129, 173, 133, 50, 185, 221, 197, 144, 66, 250, 234,\n\t\t45, 65, 145, 90, 113, 82, 249, 153, 49, 216, 29, 155, 33,\n\t\t126, 6, 184, 146, 114, 242, 34, 238, 98, 209, 27, 151, 186,\n\t\t88, 204, 59, 169, 188, 167, 56, 233, 234, 133, 148, 227, 201,\n\t\t40, 78, 170, 187, 232, 164, 70, 245, 55, 120, 109, 42, 74,\n\t\t194, 174, 223, 160, 143, 166, 28, 93, 245, 52, 39, 48, 228,\n\t\t127, 192, 96, 15, 56, 61, 176, 67, 86, 72, 240, 38, 9, 4,\n\t\t38, 149, 137, 64, 100, 216, 150, 221, 79, 74, 152, 133, 237,\n\t\t150, 83, 235, 215, 112, 14, 118, 156, 138, 83, 161, 105, 20,\n\t\t26, 52, 55, 176, 82, 89, 54, 233, 105, 205, 2, 237, 83, 29,\n\t\t215, 71, 87, 254, 135, 100, 49, 161, 207, 41, 18, 118, 164,\n\t\t40, 138, 114, 188, 158, 16, 177, 140, 165, 100, 49, 97, 204,\n\t\t42, 18, 170, 144, 82, 200, 233, 9, 9, 41, 156, 192, 253, 152,\n\t\t176, 75, 16, 141, 57, 159, 155, 156, 147, 36, 120, 135, 36,\n\t\t117, 167, 114, 121, 2, 181, 252, 69, 56, 154, 50, 11, 72,\n\t\t103, 53, 65, 146, 80, 148, 147, 88, 13, 198, 176, 36, 225,\n\t\t232, 197, 15, 112, 2, 223, 251, 129, 174, 18, 50, 247, 69,\n\t\t85, 175, 36, 169, 28, 151, 172, 144, 254, 244, 57, 6, 192,\n\t\t231, 128, 72, 48, 120, 0, 116, 42, 20, 148, 212, 118, 155,\n\t\t244, 83, 97, 84, 114, 200, 4, 231, 84, 28, 154, 134, 159,\n\t\t35, 252, 66, 65, 219, 133, 249, 67, 237, 88, 30, 235, 140,\n\t\t52, 181, 180, 148, 191, 97, 254, 224, 14, 73, 185, 189, 202,\n\t\t35, 225, 172, 21, 187, 58, 197, 153, 92, 238, 205, 135, 106,\n\t\t41, 106, 94, 77, 70, 183, 110, 42, 11, 72, 218, 61, 179, 191,\n\t\t187, 50, 127, 195, 140, 192, 237, 195, 81, 102, 52, 26, 187,\n\t\t226, 244, 118, 87, 148, 118, 31, 231, 183, 21, 106, 139, 190,\n\t\t135, 139, 250, 98, 119, 128, 101, 80, 38, 62, 133, 33, 208,\n\t\t254, 126, 38, 248, 36, 244, 49, 209, 230, 96, 167, 193, 180,\n\t\t21, 168, 124, 36, 110, 245, 126, 197, 107, 3, 110, 45, 63,\n\t\t177, 18, 209, 25, 198, 80, 14, 121, 251, 247, 219, 177, 19,\n\t\t98, 226, 1, 41, 39, 190, 65, 35, 230, 54, 39, 101, 107, 74,\n\t\t68, 212, 68, 237, 242, 192, 110, 197, 236, 128, 207, 129,\n\t\t184, 167, 255, 151, 251, 136, 151, 179, 20, 59, 2, 21, 249,\n\t\t159, 169, 18, 80, 191, 211, 102, 83, 246, 118, 83, 150, 173,\n\t\t109, 118, 154, 77, 220, 137, 52, 152, 121, 245, 138, 125,\n\t\t233, 158, 196, 62, 203, 224, 45, 69, 177, 120, 195, 218, 151,\n\t\t184, 7, 237, 187, 84, 85, 253, 186, 22, 224, 42, 152, 5, 183,\n\t\t0, 0, 171, 208, 171, 109, 191, 27, 81, 27, 58, 34, 150, 53,\n\t\t211, 24, 129, 196, 146, 60, 232, 121, 14, 197, 205, 32, 88,\n\t\t211, 237, 86, 197, 190, 196, 99, 49, 195, 143, 197, 196, 18,\n\t\t12, 155, 181, 73, 74, 67, 92, 227, 32, 23, 67, 2, 143, 242,\n\t\t34, 106, 200, 186, 2, 7, 71, 120, 114, 128, 47, 136, 232,\n\t\t111, 37, 40, 189, 63, 102, 246, 62, 129, 68, 17, 181, 39,\n\t\t71, 42, 31, 209, 116, 22, 138, 26, 190, 220, 43, 88, 50, 163,\n\t\t199, 69, 11, 214, 249, 100, 44, 81, 102, 226, 222, 139, 136,\n\t\t51, 34, 171, 112, 49, 196, 49, 2, 134, 17, 86, 211, 229, 139,\n\t\t30, 121, 98, 248, 189, 8, 10, 30, 254, 134, 222, 24, 84, 4,\n\t\t187, 1, 112, 237, 64, 91, 172, 56, 62, 63, 150, 247, 122,\n\t\t136, 13, 178, 67, 253, 201, 1, 121, 143, 111, 96, 39, 161,\n\t\t94, 20, 125, 31, 209, 112, 196, 118, 235, 107, 155, 83, 34,\n\t\t126, 187, 194, 178, 248, 54, 73, 79, 233, 215, 114, 26, 175,\n\t\t74, 130, 35, 176, 86, 10, 190, 47, 165, 75, 183, 97, 150,\n\t\t85, 222, 142, 197, 212, 102, 33, 101, 177, 130, 35, 72, 42,\n\t\t175, 113, 215, 254, 205, 193, 226, 228, 18, 22, 21, 69, 252,\n\t\t69, 53, 246, 55, 94, 223, 123, 244, 14, 196, 171, 162, 220,\n\t\t148, 83, 81, 238, 87, 117, 245, 111, 98, 234, 47, 122, 135,\n\t\t241, 210, 100, 241, 160, 196, 69, 83, 114, 83, 22, 85, 30,\n\t\t221, 241, 168, 10, 124, 121, 243, 79, 153, 135, 224, 115,\n\t\t160, 12, 186, 125, 77, 220, 143, 3, 162, 61, 211, 71, 70,\n\t\t105, 183, 230, 2, 228, 7, 210, 79, 200, 240, 20, 184, 222,\n\t\t124, 116, 125, 203, 246, 113, 150, 116, 53, 234, 164, 30,\n\t\t57, 37, 167, 240, 2, 194, 242, 194, 200, 142, 137, 109, 19,\n\t\t112, 202, 219, 44, 216, 79, 219, 69, 59, 82, 136, 198, 79,\n\t\t121, 135, 33, 32, 186, 121, 87, 213, 83, 206, 54, 132, 229,\n\t\t119, 203, 41, 84, 173, 143, 234, 149, 51, 185, 137, 137, 220,\n\t\t76, 217, 219, 205, 216, 133, 227, 158, 88, 243, 150, 184,\n\t\t104, 74, 222, 73, 33, 121, 125, 149, 216, 15, 44, 175, 162,\n\t\t86, 152, 168, 204, 173, 120, 179, 209, 44, 227, 34, 179, 100,\n\t\t19, 59, 79, 203, 103, 93, 104, 216, 110, 169, 85, 201, 65,\n\t\t6, 64, 9, 139, 143, 48, 162, 38, 46, 171, 58, 243, 136, 136,\n\t\t37, 200, 85, 119, 142, 207, 102, 238, 195, 176, 190, 116,\n\t\t197, 13, 87, 44, 213, 33, 190, 47, 51, 59, 119, 220, 27, 222,\n\t\t206, 33, 102, 153, 132, 204, 47, 51, 232, 156, 132, 71, 119,\n\t\t76, 105, 187, 238, 120, 144, 89, 190, 242, 174, 187, 174,\n\t\t92, 102, 30, 188, 99, 151, 73, 48, 138, 120, 255, 125, 82,\n\t\t121, 43, 5, 110, 1, 119, 1, 16, 160, 202, 7, 153, 156, 122,\n\t\t224, 187, 156, 99, 172, 8, 163, 49, 165, 98, 169, 10, 231,\n\t\t96, 135, 228, 97, 123, 173, 164, 228, 189, 115, 162, 198,\n\t\t141, 64, 11, 225, 98, 169, 232, 212, 24, 111, 62, 117, 59,\n\t\t182, 53, 194, 244, 187, 160, 95, 98, 243, 36, 153, 187, 10,\n\t\t221, 71, 169, 154, 125, 51, 89, 29, 226, 101, 5, 33, 75, 72,\n\t\t51, 227, 18, 182, 118, 74, 80, 212, 4, 200, 170, 81, 40, 177,\n\t\t234, 100, 12, 35, 189, 137, 228, 21, 25, 53, 227, 24, 199,\n\t\t38, 85, 86, 130, 81, 149, 133, 74, 156, 145, 118, 90, 88,\n\t\t199, 185, 108, 122, 84, 149, 163, 196, 29, 29, 149, 213, 82,\n\t\t58, 151, 195, 47, 255, 253, 56, 147, 230, 19, 73, 153, 135,\n\t\t139, 33, 165, 188, 183, 164, 36, 121, 198, 216, 173, 87, 111,\n\t\t206, 39, 15, 156, 16, 84, 204, 24, 218, 245, 70, 100, 211,\n\t\t94, 83, 87, 11, 28, 132, 92, 65, 213, 205, 189, 155, 34, 198,\n\t\t245, 154, 193, 68, 149, 19, 7, 146, 249, 133, 188, 170, 68,\n\t\t204, 74, 81, 162, 208, 145, 82, 177, 98, 70, 20, 53, 255,\n\t\t169, 170, 190, 91, 145, 165, 36, 225, 224, 89, 123, 217, 183,\n\t\t151, 238, 4, 251, 169, 118, 239, 183, 206, 208, 48, 83, 234,\n\t\t111, 85, 153, 54, 253, 230, 1, 197, 38, 177, 153, 110, 133,\n\t\t179, 112, 43, 108, 120, 109, 0, 91, 118, 192, 178, 81, 41,\n\t\t226, 86, 128, 211, 188, 201, 41, 81, 111, 252, 38, 53, 78,\n\t\t166, 126, 42, 0, 232, 217, 232, 88, 178, 200, 50, 177, 164,\n\t\t134, 16, 68, 18, 102, 152, 136, 60, 41, 31, 223, 178, 140,\n\t\t163, 217, 169, 188, 158, 80, 111, 35, 243, 205, 138, 157,\n\t\t128, 51, 11, 51, 50, 127, 129, 168, 244, 113, 245, 138, 129,\n\t\t241, 230, 10, 173, 82, 79, 57, 73, 205, 86, 144, 129, 120,\n\t\t145, 87, 98, 238, 101, 76, 241, 128, 149, 163, 66, 235, 31,\n\t\t35, 200, 65, 79, 182, 128, 16, 248, 185, 250, 79, 195, 207,\n\t\t195, 103, 129, 0, 198, 1, 152, 131, 54, 149, 40, 233, 180,\n\t\t84, 97, 171, 144, 240, 181, 80, 58, 75, 234, 229, 170, 116,\n\t\t92, 167, 136, 209, 47, 28, 190, 78, 139, 239, 18, 89, 248,\n\t\t39, 152, 17, 119, 199, 213, 127, 87, 21, 204, 51, 83, 72,\n\t\t42, 222, 62, 34, 161, 169, 24, 54, 139, 135, 91, 92, 225,\n\t\t218, 2, 247, 224, 241, 91, 163, 74, 6, 89, 130, 96, 161, 140,\n\t\t18, 133, 122, 164, 148, 78, 139, 236, 101, 10, 178, 44, 164,\n\t\t92, 150, 233, 218, 206, 177, 173, 40, 30, 31, 216, 148, 0,\n\t\t137, 165, 174, 18, 239, 170, 247, 5, 60, 65, 164, 227, 250,\n\t\t190, 149, 34, 161, 174, 234, 35, 94, 71, 32, 17, 253, 251,\n\t\t33, 171, 156, 95, 90, 101, 6, 98, 41, 36, 57, 105, 189, 239,\n\t\t167, 205, 127, 32, 162, 130, 183, 55, 61, 61, 179, 48, 83,\n\t\t79, 36, 136, 240, 64, 129, 213, 123, 15, 144, 18, 57, 223,\n\t\t166, 112, 235, 203, 51, 11, 51, 133, 17, 61, 165, 207, 44,\n\t\t204, 116, 243, 222, 143, 18, 11, 153, 140, 39, 178, 2, 34,\n\t\t150, 254, 30, 45, 80, 156, 163, 137, 177, 125, 84, 80, 13,\n\t\t231, 96, 164, 72, 228, 227, 192, 170, 87, 116, 218, 229, 166,\n\t\t129, 176, 83, 153, 101, 187, 39, 30, 34, 90, 194, 137, 135,\n\t\t224, 106, 247, 190, 171, 163, 147, 145, 241, 198, 86, 184,\n\t\t248, 208, 9, 98, 4, 62, 251, 208, 137, 238, 209, 101, 113,\n\t\t123, 45, 53, 145, 139, 133, 124, 4, 37, 80, 9, 89, 46, 251,\n\t\t233, 115, 27, 25, 208, 245, 118, 193, 164, 62, 223, 222, 89,\n\t\t114, 31, 74, 73, 67, 89, 59, 97, 23, 82, 61, 56, 112, 97,\n\t\t132, 206, 232, 173, 94, 184, 176, 49, 247, 160, 8, 106, 131,\n\t\t24, 185, 184, 47, 225, 187, 182, 213, 169, 16, 160, 56, 140,\n\t\t60, 249, 177, 129, 29, 13, 146, 144, 88, 7, 163, 34, 201,\n\t\t55, 112, 201, 75, 249, 164, 132, 34, 16, 42, 49, 67, 50, 202,\n\t\t44, 140, 32, 73, 118, 254, 20, 199, 121, 126, 250, 61, 211,\n\t\t82, 82, 42, 221, 69, 115, 178, 97, 154, 188, 243, 168, 136,\n\t\t4, 81, 140, 202, 40, 17, 23, 5, 36, 138, 175, 19, 184, 168,\n\t\t208, 233, 40, 134, 50, 49, 28, 91, 138, 137, 214, 59, 240,\n\t\t152, 12, 4, 86, 218, 48, 112, 144, 132, 249, 37, 98, 225,\n\t\t132, 68, 237, 235, 45, 157, 120, 232, 161, 103, 30, 218, 249,\n\t\t69, 154, 152, 71, 109, 153, 207, 144, 231, 127, 232, 153,\n\t\t135, 30, 58, 113, 195, 124, 151, 6, 164, 177, 4, 195, 194,\n\t\t211, 97, 45, 42, 63, 186, 3, 127, 111, 35, 240, 247, 34, 7,\n\t\t18, 163, 113, 209, 169, 240, 196, 110, 84, 142, 145, 248,\n\t\t18, 114, 219, 198, 38, 134, 69, 220, 193, 228, 108, 242, 32,\n\t\t139, 121, 14, 54, 32, 194, 223, 196, 50, 60, 0, 193, 124,\n\t\t117, 122, 7, 211, 123, 189, 192, 168, 140, 0, 175, 213, 31,\n\t\t33, 67, 218, 190, 103, 56, 1, 49, 198, 245, 209, 19, 38, 100,\n\t\t121, 246, 211, 88, 102, 182, 48, 24, 190, 165, 183, 84, 157,\n\t\t159, 155, 190, 131, 17, 170, 2, 115, 3, 220, 165, 234, 189,\n\t\t174, 239, 207, 229, 251, 239, 130, 162, 76, 82, 59, 242, 69,\n\t\t253, 183, 190, 170, 20, 198, 82, 238, 59, 163, 131, 78, 82,\n\t\t54, 155, 21, 167, 20, 140, 86, 204, 157, 186, 39, 156, 212,\n\t\t230, 107, 204, 111, 50, 181, 194, 88, 34, 49, 86, 168, 233,\n\t\t42, 92, 81, 117, 39, 165, 247, 162, 97, 5, 174, 126, 253,\n\t\t36, 143, 88, 178, 253, 188, 158, 58, 138, 69, 65, 40, 212,\n\t\t106, 5, 65, 240, 214, 249, 124, 173, 0, 23, 72, 183, 211,\n\t\t95, 14, 233, 116, 95, 171, 79, 242, 23, 250, 57, 40, 3, 253,\n\t\t46, 71, 216, 35, 125, 148, 181, 192, 248, 228, 147, 127, 186,\n\t\t148, 152, 11, 151, 219, 84, 172, 99, 206, 16, 141, 78, 125,\n\t\t170, 247, 238, 50, 209, 233, 14, 253, 200, 200, 228, 239,\n\t\t138, 22, 99, 202, 203, 223, 129, 119, 169, 177, 222, 5, 35,\n\t\t35, 17, 173, 78, 124, 23, 44, 100, 136, 94, 183, 61, 99, 60,\n\t\t149, 120, 100, 191, 28, 51, 214, 128, 26, 135, 209, 127, 235,\n\t\t253, 189, 68, 249, 177, 73, 204, 126, 25, 174, 130, 28, 0,\n\t\t54, 37, 54, 41, 82, 132, 121, 111, 170, 108, 145, 65, 221,\n\t\t50, 137, 196, 249, 205, 152, 45, 156, 23, 236, 216, 88, 171,\n\t\t203, 71, 57, 204, 93, 64, 98, 148, 239, 182, 162, 118, 76,\n\t\t16, 98, 246, 47, 40, 199, 220, 167, 120, 196, 9, 248, 41,\n\t\t247, 152, 242, 11, 67, 207, 103, 123, 173, 118, 88, 95, 37,\n\t\t180, 161, 38, 33, 193, 106, 218, 190, 180, 234, 63, 90, 160,\n\t\t172, 254, 162, 114, 176, 177, 237, 136, 94, 176, 86, 235,\n\t\t47, 245, 30, 52, 50, 135, 165, 33, 93, 245, 182, 218, 246,\n\t\t35, 219, 210, 117, 71, 105, 174, 102, 12, 201, 61, 76, 109,\n\t\t213, 196, 87, 157, 3, 85, 208, 241, 99, 15, 7, 62, 42, 202,\n\t\t79, 58, 32, 23, 214, 96, 209, 169, 184, 67, 140, 208, 69,\n\t\t100, 215, 224, 28, 28, 129, 216, 166, 148, 161, 67, 89, 246,\n\t\t228, 58, 174, 213, 103, 9, 113, 26, 196, 189, 221, 34, 104,\n\t\t90, 90, 124, 161, 158, 168, 150, 115, 162, 230, 239, 45, 46,\n\t\t196, 83, 51, 99, 245, 177, 153, 140, 113, 214, 200, 236, 83,\n\t\t70, 71, 21, 101, 116, 244, 61, 205, 221, 25, 99, 65, 87, 151,\n\t\t85, 125, 193, 200, 236, 110, 214, 151, 34, 100, 122, 59, 166,\n\t\t137, 249, 11, 68, 10, 158, 108, 107, 201, 81, 211, 223, 108,\n\t\t79, 30, 79, 144, 65, 56, 102, 219, 215, 144, 11, 40, 202,\n\t\t135, 208, 129, 166, 100, 100, 168, 11, 54, 99, 72, 205, 3,\n\t\t104, 196, 7, 246, 34, 19, 226, 64, 71, 126, 135, 159, 111,\n\t\t55, 249, 202, 25, 119, 33, 94, 4, 26, 164, 107, 190, 118,\n\t\t255, 254, 215, 238, 119, 220, 195, 212, 65, 120, 216, 141,\n\t\t149, 14, 148, 224, 17, 65, 124, 175, 32, 94, 65, 2, 167, 166,\n\t\t111, 19, 133, 213, 253, 222, 105, 183, 31, 118, 39, 140, 76,\n\t\t198, 152, 112, 15, 71, 163, 203, 130, 240, 94, 65, 188, 82,\n\t\t16, 211, 162, 56, 125, 90, 16, 67, 246, 69, 76, 242, 102,\n\t\t155, 132, 97, 147, 98, 98, 132, 60, 154, 198, 86, 216, 168,\n\t\t24, 150, 29, 174, 85, 179, 97, 163, 32, 58, 8, 126, 138, 228,\n\t\t4, 158, 151, 28, 73, 145, 164, 109, 210, 139, 99, 165, 222,\n\t\t111, 5, 21, 139, 201, 106, 124, 146, 212, 248, 2, 73, 18,\n\t\t156, 87, 164, 142, 36, 29, 144, 162, 83, 7, 18, 126, 189,\n\t\t24, 103, 31, 169, 172, 95, 159, 7, 225, 170, 31, 197, 116,\n\t\t63, 0, 101, 155, 0, 133, 214, 136, 180, 131, 81, 133, 232,\n\t\t84, 20, 44, 116, 14, 58, 46, 225, 12, 232, 140, 64, 79, 35,\n\t\t243, 132, 64, 79, 33, 35, 194, 160, 21, 129, 86, 48, 114,\n\t\t4, 245, 212, 77, 195, 30, 126, 183, 205, 134, 213, 52, 144,\n\t\t137, 172, 17, 136, 108, 236, 77, 22, 212, 170, 101, 49, 55,\n\t\t166, 120, 40, 37, 56, 62, 25, 51, 80, 161, 128, 140, 88, 138,\n\t\t231, 108, 137, 65, 73, 142, 75, 242, 80, 178, 57, 62, 21,\n\t\t28, 73, 242, 92, 66, 130, 124, 138, 123, 23, 25, 54, 127,\n\t\t151, 60, 236, 101, 140, 18, 25, 124, 157, 24, 35, 64, 150,\n\t\t147, 20, 1, 66, 65, 145, 56, 37, 163, 196, 36, 81, 224, 247,\n\t\t71, 88, 148, 79, 114, 76, 68, 195, 57, 4, 49, 134, 40, 135,\n\t\t181, 8, 195, 37, 243, 136, 141, 152, 230, 43, 30, 173, 147,\n\t\t49, 247, 62, 242, 226, 122, 207, 75, 60, 22, 252, 183, 9,\n\t\t33, 98, 212, 20, 230, 56, 142, 199, 73, 181, 50, 162, 240,\n\t\t28, 235, 207, 159, 159, 243, 191, 117, 6, 140, 122, 243, 231,\n\t\t160, 213, 217, 17, 22, 13, 125, 94, 219, 181, 189, 217, 196,\n\t\t45, 19, 168, 36, 138, 124, 224, 183, 187, 173, 227, 135, 4,\n\t\t136, 33, 215, 251, 231, 224, 233, 102, 223, 181, 247, 145,\n\t\t237, 130, 12, 97, 18, 227, 137, 125, 124, 25, 27, 216, 111,\n\t\t125, 213, 131, 130, 188, 93, 146, 253, 154, 125, 224, 145,\n\t\t189, 239, 194, 80, 22, 254, 59, 54, 240, 196, 62, 206, 193,\n\t\t24, 4, 113, 34, 116, 254, 244, 177, 216, 59, 175, 208, 27,\n\t\t66, 61, 133, 200, 188, 45, 111, 108, 168, 208, 99, 47, 16,\n\t\t231, 112, 169, 190, 147, 186, 216, 119, 214, 197, 194, 158,\n\t\t2, 228, 200, 204, 90, 175, 206, 103, 140, 79, 194, 177, 116,\n\t\t150, 179, 39, 236, 85, 154, 209, 190, 179, 158, 245, 58, 71,\n\t\t182, 190, 51, 26, 205, 147, 105, 246, 248, 124, 213, 200,\n\t\t64, 14, 86, 54, 79, 70, 40, 46, 86, 16, 99, 243, 28, 136,\n\t\t130, 45, 4, 135, 44, 92, 39, 215, 102, 125, 96, 76, 239, 69,\n\t\t245, 167, 184, 138, 233, 205, 247, 182, 69, 53, 177, 57, 72,\n\t\t224, 159, 225, 92, 103, 63, 237, 178, 251, 59, 39, 191, 174,\n\t\t105, 159, 53, 140, 207, 106, 218, 162, 182, 255, 181, 251,\n\t\t181, 121, 69, 142, 64, 200, 177, 19, 28, 207, 68, 100, 229,\n\t\t173, 204, 193, 142, 228, 85, 77, 234, 28, 100, 78, 194, 5,\n\t\t54, 197, 86, 57, 174, 202, 37, 89, 59, 147, 109, 239, 223,\n\t\t223, 206, 102, 162, 109, 172, 42, 194, 44, 135, 56, 145, 159,\n\t\t21, 20, 21, 111, 13, 251, 11, 116, 144, 38, 177, 128, 160,\n\t\t108, 26, 195, 253, 182, 62, 232, 183, 124, 99, 93, 76, 174,\n\t\t31, 239, 93, 242, 253, 239, 176, 43, 246, 254, 177, 223, 132,\n\t\t53, 129, 118, 99, 8, 188, 161, 237, 2, 49, 152, 213, 230,\n\t\t107, 117, 79, 44, 93, 137, 69, 130, 190, 172, 213, 233, 167,\n\t\t215, 85, 226, 1, 95, 81, 245, 186, 55, 245, 214, 235, 222,\n\t\t94, 125, 224, 103, 238, 231, 234, 175, 139, 33, 110, 162,\n\t\t87, 248, 250, 212, 221, 74, 130, 125, 127, 229, 98, 163, 96,\n\t\t136, 19, 190, 190, 113, 252, 11, 229, 181, 71, 73, 100, 232,\n\t\t198, 175, 89, 105, 185, 78, 187, 97, 207, 178, 148, 149, 182,\n\t\t232, 84, 144, 91, 68, 102, 179, 229, 148, 224, 238, 214, 94,\n\t\t122, 175, 189, 173, 91, 86, 39, 39, 55, 101, 113, 34, 91,\n\t\t210, 189, 175, 49, 181, 83, 201, 156, 82, 245, 21, 93, 253,\n\t\t79, 252, 129, 22, 189, 97, 235, 0, 127, 235, 151, 155, 217,\n\t\t108, 115, 44, 154, 142, 203, 251, 95, 187, 191, 61, 158, 91,\n\t\t244, 65, 25, 9, 15, 27, 121, 7, 113, 18, 77, 238, 122, 82,\n\t\t82, 144, 202, 15, 105, 90, 23, 158, 133, 110, 37, 248, 82,\n\t\t216, 176, 46, 50, 114, 213, 17, 115, 87, 60, 158, 25, 45,\n\t\t198, 100, 185, 189, 16, 191, 87, 150, 229, 194, 86, 110, 241,\n\t\t91, 228, 205, 228, 221, 41, 81, 10, 141, 64, 144, 135, 240,\n\t\t147, 56, 62, 218, 173, 57, 22, 230, 56, 243, 222, 67, 113,\n\t\t60, 205, 113, 255, 35, 114, 104, 139, 19, 35, 239, 234, 222,\n\t\t93, 119, 150, 184, 96, 16, 65, 224, 85, 101, 4, 130, 6, 106,\n\t\t32, 204, 183, 102, 161, 203, 23, 138, 78, 123, 157, 136, 240,\n\t\t65, 182, 52, 83, 104, 239, 175, 59, 189, 31, 103, 155, 35,\n\t\t112, 164, 247, 27, 129, 236, 19, 72, 9, 247, 228, 59, 35,\n\t\t251, 219, 227, 243, 234, 239, 231, 55, 151, 209, 119, 51,\n\t\t70, 184, 13, 199, 8, 75, 107, 151, 112, 198, 248, 104, 85,\n\t\t65, 244, 34, 110, 204, 194, 86, 149, 234, 89, 149, 98, 149,\n\t\t130, 94, 147, 136, 106, 219, 24, 129, 235, 223, 148, 205,\n\t\t188, 94, 148, 174, 23, 211, 226, 117, 241, 184, 118, 56, 29,\n\t\t191, 30, 201, 24, 203, 72, 210, 180, 191, 44, 109, 45, 238,\n\t\t111, 123, 139, 253, 153, 45, 17, 59, 244, 186, 98, 230, 85,\n\t\t98, 90, 60, 33, 138, 215, 197, 211, 135, 85, 93, 223, 141,\n\t\t101, 85, 70, 154, 161, 29, 47, 110, 45, 181, 247, 147, 197,\n\t\t235, 198, 50, 91, 116, 255, 133, 161, 240, 88, 225, 141, 177,\n\t\t217, 208, 248, 186, 190, 149, 185, 149, 38, 14, 198, 211,\n\t\t124, 59, 24, 20, 218, 245, 124, 126, 49, 159, 167, 67, 231,\n\t\t29, 204, 161, 54, 109, 72, 237, 67, 204, 231, 30, 158, 153,\n\t\t121, 184, 207, 247, 241, 32, 193, 80, 243, 230, 199, 27, 193,\n\t\t59, 192, 7, 255, 223, 153, 35, 131, 186, 218, 125, 230, 38,\n\t\t92, 68, 152, 196, 141, 35, 92, 196, 182, 105, 216, 125, 165,\n\t\t206, 106, 54, 154, 157, 38, 153, 51, 235, 37, 68, 231, 76,\n\t\t183, 89, 209, 32, 30, 196, 98, 254, 111, 76, 160, 189, 103,\n\t\t136, 126, 180, 82, 157, 223, 113, 98, 94, 134, 16, 10, 162,\n\t\t20, 83, 108, 21, 50, 183, 162, 53, 35, 179, 171, 38, 22, 74,\n\t\t12, 207, 64, 14, 9, 16, 194, 146, 228, 205, 166, 114, 20,\n\t\t254, 56, 55, 198, 207, 123, 186, 64, 55, 117, 251, 255, 254,\n\t\t188, 74, 244, 176, 61, 243, 213, 234, 252, 124, 53, 105, 67,\n\t\t200, 243, 74, 178, 8, 63, 47, 73, 18, 157, 47, 32, 207, 113,\n\t\t28, 23, 207, 87, 70, 20, 241, 227, 209, 45, 37, 93, 165, 180,\n\t\t173, 33, 123, 129, 55, 190, 17, 207, 242, 122, 148, 238, 64,\n\t\t191, 209, 169, 108, 133, 75, 235, 214, 133, 74, 63, 30, 11,\n\t\t243, 205, 74, 9, 174, 164, 203, 20, 151, 165, 156, 166, 222,\n\t\t170, 125, 130, 240, 88, 252, 61, 130, 240, 246, 248, 61, 130,\n\t\t112, 91, 108, 13, 136, 167, 72, 252, 197, 249, 88, 239, 138,\n\t\t43, 228, 61, 221, 114, 154, 100, 160, 229, 211, 101, 154,\n\t\t115, 15, 223, 27, 10, 68, 234, 46, 146, 60, 134, 238, 242,\n\t\t114, 208, 102, 191, 67, 248, 112, 99, 160, 56, 96, 26, 38,\n\t\t84, 104, 132, 197, 7, 147, 130, 138, 83, 161, 218, 154, 109,\n\t\t49, 57, 205, 136, 169, 239, 57, 204, 203, 24, 31, 124, 35,\n\t\t142, 8, 135, 223, 163, 198, 12, 237, 163, 112, 5, 198, 181,\n\t\t222, 239, 43, 113, 161, 194, 50, 34, 15, 239, 16, 185, 90,\n\t\t141, 19, 123, 143, 10, 34, 87, 17, 226, 10, 188, 82, 139,\n\t\t67, 49, 136, 91, 249, 172, 223, 199, 71, 193, 102, 176, 31,\n\t\t220, 6, 238, 0, 64, 47, 86, 156, 150, 111, 18, 71, 134, 109,\n\t\t161, 82, 133, 208, 105, 82, 171, 178, 127, 132, 16, 72, 17,\n\t\t246, 119, 119, 22, 18, 146, 182, 173, 176, 129, 27, 182, 95,\n\t\t76, 9, 15, 59, 77, 172, 251, 112, 216, 176, 132, 41, 226,\n\t\t181, 171, 59, 237, 214, 44, 69, 16, 198, 205, 202, 71, 20,\n\t\t86, 16, 88, 165, 40, 136, 140, 32, 48, 162, 112, 82, 137,\n\t\t112, 54, 39, 138, 37, 137, 75, 167, 56, 185, 36, 138, 140,\n\t\t144, 242, 54, 144, 8, 25, 139, 143, 40, 44, 35, 162, 146,\n\t\t252, 134, 117, 63, 187, 242, 65, 150, 71, 57, 164, 176, 155,\n\t\t62, 188, 137, 85, 80, 14, 241, 236, 131, 114, 44, 87, 204,\n\t\t197, 150, 22, 235, 16, 200, 169, 78, 74, 86, 5, 115, 202,\n\t\t20, 212, 39, 172, 214, 137, 73, 33, 34, 110, 126, 211, 102,\n\t\t49, 130, 188, 37, 150, 209, 248, 117, 29, 155, 151, 113, 55,\n\t\t124, 226, 205, 189, 47, 33, 133, 81, 25, 30, 221, 127, 63,\n\t\t226, 25, 149, 81, 16, 220, 18, 53, 98, 185, 88, 44, 23, 51,\n\t\t62, 126, 31, 249, 102, 65, 174, 223, 248, 165, 50, 253, 202,\n\t\t63, 123, 122, 223, 57, 241, 34, 89, 125, 218, 120, 40, 171,\n\t\t79, 96, 72, 86, 223, 167, 85, 241, 41, 154, 202, 215, 65,\n\t\t12, 79, 82, 249, 6, 49, 220, 170, 55, 71, 232, 148, 47, 162,\n\t\t208, 176, 204, 88, 41, 182, 222, 167, 94, 104, 55, 205, 197,\n\t\t174, 29, 131, 47, 198, 236, 238, 66, 40, 70, 34, 186, 10,\n\t\t151, 123, 43, 240, 129, 152, 109, 199, 122, 15, 195, 161,\n\t\t184, 8, 146, 190, 78, 57, 54, 250, 178, 77, 139, 96, 24, 6,\n\t\t65, 105, 132, 242, 128, 216, 121, 2, 141, 36, 136, 31, 118,\n\t\t42, 205, 118, 211, 108, 198, 10, 38, 133, 81, 57, 95, 219,\n\t\t65, 240, 155, 118, 212, 56, 214, 28, 51, 89, 42, 28, 210,\n\t\t176, 204, 127, 19, 115, 7, 150, 187, 189, 149, 145, 66, 198,\n\t\t88, 156, 175, 233, 153, 140, 94, 155, 247, 198, 7, 42, 26,\n\t\t66, 33, 107, 246, 190, 96, 102, 157, 84, 183, 11, 243, 141,\n\t\t120, 213, 204, 14, 116, 57, 175, 94, 211, 192, 165, 179, 213,\n\t\t64, 130, 42, 121, 115, 121, 123, 163, 53, 172, 175, 229, 154,\n\t\t124, 171, 51, 7, 205, 82, 209, 105, 7, 118, 146, 54, 60, 31,\n\t\t93, 44, 119, 202, 139, 209, 165, 144, 141, 204, 55, 134, 173,\n\t\t200, 194, 157, 75, 88, 36, 182, 144, 165, 175, 138, 241, 23,\n\t\t22, 211, 229, 114, 122, 241, 133, 184, 184, 171, 185, 222,\n\t\t172, 214, 252, 107, 49, 198, 214, 86, 69, 252, 54, 193, 188,\n\t\t25, 139, 171, 3, 62, 73, 202, 255, 61, 2, 198, 8, 190, 46,\n\t\t104, 91, 121, 63, 197, 20, 4, 146, 97, 14, 146, 172, 114,\n\t\t90, 90, 110, 119, 92, 211, 208, 152, 64, 55, 228, 157, 10,\n\t\t201, 73, 221, 14, 209, 246, 187, 31, 187, 27, 190, 255, 177,\n\t\t187, 239, 126, 236, 238, 30, 200, 157, 222, 226, 236, 155,\n\t\t53, 188, 162, 149, 185, 130, 150, 44, 245, 158, 33, 20, 183,\n\t\t240, 87, 148, 250, 93, 77, 119, 114, 114, 114, 146, 134, 108,\n\t\t144, 193, 245, 235, 201, 180, 156, 136, 181, 188, 146, 241,\n\t\t57, 57, 49, 41, 70, 35, 242, 7, 9, 220, 152, 88, 180, 249,\n\t\t242, 100, 60, 247, 74, 120, 35, 118, 171, 211, 108, 23, 145,\n\t\t57, 72, 42, 164, 229, 20, 111, 228, 248, 13, 243, 135, 239,\n\t\t62, 71, 190, 237, 85, 97, 184, 145, 83, 243, 55, 228, 239,\n\t\t62, 188, 72, 190, 103, 200, 62, 250, 25, 242, 253, 168, 87,\n\t\t182, 97, 153, 152, 66, 162, 19, 181, 187, 88, 42, 78, 66,\n\t\t127, 187, 132, 145, 39, 200, 251, 20, 27, 125, 187, 84, 126,\n\t\t108, 102, 241, 224, 246, 113, 78, 182, 20, 110, 10, 50, 12,\n\t\t172, 56, 116, 251, 53, 111, 136, 100, 21, 120, 95, 173, 80,\n\t\t73, 94, 78, 179, 249, 86, 202, 233, 232, 194, 142, 91, 226,\n\t\t75, 50, 39, 112, 242, 3, 167, 233, 106, 59, 142, 197, 34,\n\t\t34, 44, 155, 133, 90, 126, 95, 144, 199, 199, 132, 228, 228,\n\t\t173, 0, 20, 214, 245, 36, 224, 199, 60, 224, 66, 133, 162,\n\t\t46, 55, 168, 198, 209, 153, 235, 27, 162, 49, 33, 142, 115,\n\t\t218, 45, 134, 248, 233, 41, 160, 56, 252, 175, 99, 153, 140,\n\t\t193, 242, 251, 122, 203, 251, 120, 150, 4, 124, 112, 251,\n\t\t228, 52, 186, 50, 158, 25, 203, 196, 175, 68, 41, 101, 31,\n\t\t23, 10, 25, 233, 102, 198, 50, 240, 217, 103, 33, 9, 16, 145,\n\t\t164, 73, 140, 229, 247, 71, 44, 175, 183, 88, 145, 247, 203,\n\t\t24, 79, 74, 146, 225, 231, 92, 145, 186, 70, 65, 194, 111,\n\t\t85, 93, 176, 15, 44, 132, 124, 105, 94, 189, 221, 89, 88,\n\t\t233, 59, 31, 250, 66, 93, 139, 168, 151, 168, 113, 241, 44,\n\t\t209, 245, 89, 164, 12, 233, 171, 23, 140, 204, 195, 113, 81,\n\t\t98, 201, 107, 181, 52, 237, 19, 145, 177, 200, 39, 232, 234,\n\t\t247, 72, 217, 251, 54, 100, 96, 209, 18, 8, 124, 252, 182,\n\t\t234, 35, 241, 77, 214, 211, 228, 208, 239, 13, 126, 252, 9,\n\t\t77, 251, 62, 41, 123, 31, 89, 222, 19, 90, 210, 18, 42, 131,\n\t\t249, 248, 151, 161, 76, 208, 75, 33, 100, 189, 106, 18, 236,\n\t\t178, 215, 129, 123, 171, 222, 178, 25, 10, 49, 185, 55, 180,\n\t\t212, 253, 168, 148, 224, 60, 216, 77, 151, 123, 43, 212, 224,\n\t\t79, 150, 247, 134, 150, 191, 231, 91, 48, 249, 139, 212, 243,\n\t\t103, 174, 229, 171, 213, 238, 249, 159, 173, 94, 207, 15,\n\t\t213, 104, 24, 59, 244, 34, 92, 40, 241, 139, 220, 245, 131,\n\t\t23, 185, 199, 26, 240, 175, 136, 47, 250, 45, 230, 94, 253,\n\t\t57, 47, 245, 188, 175, 246, 220, 27, 159, 254, 21, 222, 193,\n\t\t193, 208, 242, 249, 13, 37, 129, 172, 56, 92, 255, 141, 200,\n\t\t117, 151, 104, 63, 27, 107, 24, 110, 49, 195, 245, 89, 217,\n\t\t208, 72, 2, 191, 69, 232, 222, 175, 122, 231, 141, 119, 124,\n\t\t254, 146, 247, 162, 143, 27, 186, 135, 207, 231, 215, 167,\n\t\t119, 10, 180, 141, 117, 163, 26, 229, 225, 161, 12, 87, 203,\n\t\t36, 48, 135, 44, 23, 9, 149, 206, 223, 147, 229, 213, 186,\n\t\t74, 101, 91, 85, 15, 141, 145, 196, 243, 82, 216, 16, 177,\n\t\t23, 72, 34, 129, 231, 133, 218, 15, 168, 204, 177, 68, 243,\n\t\t117, 169, 163, 45, 52, 228, 189, 215, 204, 229, 204, 222,\n\t\t189, 43, 254, 139, 10, 230, 247, 231, 64, 20, 20, 193, 68,\n\t\t255, 46, 147, 48, 86, 162, 73, 106, 172, 39, 50, 135, 239,\n\t\t233, 90, 67, 183, 59, 187, 184, 100, 100, 190, 23, 73, 246,\n\t\t158, 244, 246, 22, 52, 233, 157, 100, 36, 242, 99, 62, 187,\n\t\t89, 163, 247, 73, 248, 57, 206, 136, 246, 10, 180, 232, 78,\n\t\t57, 206, 254, 115, 184, 207, 128, 58, 92, 133, 11, 244, 13,\n\t\t174, 215, 37, 54, 48, 0, 173, 12, 94, 27, 12, 189, 194, 179,\n\t\t131, 215, 182, 26, 122, 131, 65, 236, 15, 15, 191, 76, 164,\n\t\t127, 79, 195, 111, 162, 8, 108, 106, 140, 167, 66, 22, 157,\n\t\t150, 75, 36, 74, 66, 52, 226, 206, 66, 11, 62, 95, 145, 10,\n\t\t15, 221, 40, 84, 62, 120, 99, 122, 239, 238, 45, 214, 60,\n\t\t54, 52, 12, 57, 217, 150, 255, 0, 101, 199, 113, 161, 58,\n\t\t117, 242, 10, 248, 193, 202, 169, 205, 83, 66, 101, 83, 106,\n\t\t68, 224, 208, 60, 214, 12, 12, 89, 197, 146, 159, 106, 223,\n\t\t55, 129, 138, 211, 83, 5, 157, 216, 22, 214, 252, 252, 176,\n\t\t205, 96, 7, 193, 46, 161, 94, 82, 187, 233, 203, 117, 149,\n\t\t78, 149, 102, 173, 17, 95, 30, 9, 179, 161, 135, 72, 11, 109,\n\t\t205, 178, 238, 44, 108, 244, 245, 87, 248, 185, 45, 227, 185,\n\t\t152, 250, 209, 27, 59, 170, 46, 226, 107, 95, 207, 196, 98,\n\t\t98, 122, 79, 166, 164, 232, 106, 190, 228, 228, 13, 189, 116,\n\t\t216, 59, 208, 59, 159, 114, 50, 237, 125, 199, 235, 104, 106,\n\t\t203, 212, 85, 116, 70, 56, 105, 88, 209, 146, 150, 195, 71,\n\t\t111, 211, 85, 44, 190, 37, 49, 165, 35, 211, 76, 73, 73, 49,\n\t\t153, 138, 104, 243, 233, 186, 87, 90, 78, 109, 58, 113, 96,\n\t\t91, 153, 203, 150, 203, 59, 233, 60, 192, 134, 244, 188, 46,\n\t\t216, 181, 113, 134, 166, 172, 191, 21, 130, 134, 234, 76,\n\t\t66, 179, 16, 27, 150, 254, 72, 16, 137, 119, 180, 226, 207,\n\t\t128, 184, 93, 50, 33, 17, 138, 123, 196, 194, 5, 191, 163,\n\t\t215, 10, 233, 178, 29, 19, 122, 23, 156, 212, 74, 202, 17,\n\t\t70, 91, 154, 161, 25, 25, 135, 227, 20, 78, 227, 126, 117,\n\t\t37, 212, 106, 175, 214, 211, 255, 45, 63, 201, 178, 83, 217,\n\t\t76, 204, 94, 130, 139, 158, 88, 181, 218, 26, 37, 172, 93,\n\t\t191, 206, 142, 152, 179, 14, 37, 197, 249, 109, 79, 235, 99,\n\t\t253, 220, 188, 199, 193, 78, 176, 0, 78, 12, 124, 116, 69,\n\t\t95, 95, 10, 197, 231, 80, 102, 31, 66, 54, 143, 81, 4, 122,\n\t\t146, 79, 211, 91, 248, 28, 174, 126, 92, 76, 199, 178, 9,\n\t\t201, 24, 246, 29, 54, 229, 54, 225, 237, 165, 228, 118, 204,\n\t\t44, 179, 179, 94, 174, 206, 179, 236, 40, 203, 206, 87, 203,\n\t\t245, 157, 204, 180, 180, 115, 52, 138, 16, 195, 51, 10, 210,\n\t\t226, 145, 40, 87, 25, 31, 223, 234, 94, 238, 110, 29, 31,\n\t\t175, 112, 209, 72, 92, 67, 10, 195, 51, 8, 69, 71, 119, 74,\n\t\t189, 103, 184, 82, 169, 60, 154, 51, 203, 70, 14, 118, 70,\n\t\t203, 165, 18, 7, 115, 70, 217, 204, 61, 46, 8, 123, 106, 59,\n\t\t183, 79, 85, 42, 83, 219, 119, 214, 246, 8, 194, 31, 58, 101,\n\t\t213, 187, 98, 4, 33, 134, 67, 88, 140, 125, 84, 73, 165, 148,\n\t\t143, 198, 68, 140, 56, 74, 59, 196, 240, 106, 217, 233, 253,\n\t\t96, 92, 85, 203, 102, 54, 109, 151, 85, 117, 92, 79, 103,\n\t\t129, 143, 255, 251, 50, 124, 27, 124, 200, 155, 153, 232,\n\t\t251, 192, 124, 159, 16, 137, 146, 36, 217, 240, 174, 184,\n\t\t140, 123, 95, 83, 146, 188, 134, 68, 229, 91, 127, 163, 138,\n\t\t72, 227, 147, 202, 11, 130, 89, 20, 99, 236, 251, 145, 168,\n\t\t100, 149, 36, 186, 245, 86, 62, 169, 100, 85, 177, 111, 19,\n\t\t58, 15, 87, 225, 31, 16, 201, 8, 232, 85, 150, 92, 137, 247,\n\t\t238, 48, 184, 193, 250, 129, 208, 197, 18, 15, 25, 133, 79,\n\t\t171, 176, 106, 219, 189, 231, 181, 52, 175, 240, 170, 250,\n\t\t228, 179, 36, 219, 135, 64, 2, 193, 35, 172, 32, 171, 40,\n\t\t167, 40, 252, 3, 216, 142, 218, 248, 1, 94, 81, 114, 106,\n\t\t130, 219, 117, 33, 156, 105, 196, 174, 245, 214, 86, 153,\n\t\t183, 145, 248, 133, 41, 130, 217, 80, 172, 177, 36, 21, 122,\n\t\t4, 54, 215, 39, 126, 77, 66, 147, 118, 177, 138, 217, 172,\n\t\t50, 186, 69, 177, 55, 131, 83, 58, 54, 172, 71, 165, 163,\n\t\t43, 121, 40, 10, 99, 2, 63, 121, 158, 12, 104, 52, 214, 253,\n\t\t201, 19, 15, 233, 234, 202, 155, 113, 169, 245, 25, 30, 21,\n\t\t74, 189, 103, 200, 161, 61, 170, 45, 119, 213, 123, 187, 119,\n\t\t8, 10, 218, 18, 206, 3, 123, 232, 132, 170, 127, 230, 77,\n\t\t35, 173, 82, 111, 141, 215, 184, 28, 41, 180, 100, 95, 159,\n\t\t242, 177, 54, 98, 32, 67, 176, 247, 67, 209, 189, 148, 219,\n\t\t14, 55, 188, 166, 70, 194, 73, 11, 141, 89, 150, 114, 68,\n\t\t91, 240, 175, 246, 220, 116, 211, 158, 43, 246, 236, 185,\n\t\t194, 95, 127, 167, 86, 171, 213, 140, 130, 49, 9, 15, 40,\n\t\t86, 92, 195, 147, 185, 90, 173, 6, 23, 111, 120, 251, 13,\n\t\t135, 15, 147, 197, 133, 110, 55, 150, 139, 165, 28, 164, 68,\n\t\t13, 41, 229, 12, 244, 76, 175, 111, 252, 62, 104, 209, 126,\n\t\t93, 54, 13, 92, 44, 21, 107, 16, 17, 91, 88, 63, 210, 198,\n\t\t171, 211, 32, 236, 6, 146, 17, 137, 6, 250, 209, 65, 169,\n\t\t84, 212, 24, 211, 176, 219, 8, 51, 93, 133, 97, 36, 238, 114,\n\t\t69, 57, 112, 32, 70, 99, 247, 52, 38, 145, 32, 27, 83, 173,\n\t\t204, 104, 61, 37, 30, 217, 179, 115, 65, 170, 238, 126, 189,\n\t\t161, 105, 18, 47, 34, 238, 116, 204, 254, 135, 31, 43, 156,\n\t\t240, 8, 220, 36, 139, 91, 189, 183, 182, 9, 162, 142, 183,\n\t\t190, 60, 121, 77, 107, 124, 151, 147, 145, 24, 189, 94, 221,\n\t\t190, 95, 51, 52, 14, 137, 188, 244, 59, 55, 197, 68, 50, 150,\n\t\t191, 12, 31, 242, 219, 176, 159, 220, 95, 166, 70, 199, 114,\n\t\t159, 137, 235, 78, 191, 213, 246, 190, 22, 151, 49, 108, 6,\n\t\t141, 249, 90, 191, 209, 190, 127, 93, 99, 30, 106, 195, 22,\n\t\t112, 0, 112, 189, 43, 14, 46, 24, 160, 8, 108, 104, 195, 182,\n\t\t13, 171, 170, 223, 112, 159, 84, 85, 94, 225, 211, 218, 174,\n\t\t65, 3, 254, 254, 160, 213, 42, 9, 126, 215, 46, 46, 161, 122,\n\t\t141, 121, 126, 56, 79, 142, 239, 199, 58, 39, 64, 6, 228,\n\t\t193, 40, 216, 7, 0, 212, 88, 211, 176, 108, 179, 208, 158,\n\t\t133, 45, 167, 226, 167, 106, 153, 124, 187, 100, 54, 253,\n\t\t63, 190, 93, 48, 67, 106, 248, 69, 215, 204, 50, 86, 4, 62,\n\t\t174, 189, 188, 172, 197, 227, 154, 174, 50, 93, 85, 239, 45,\n\t\t82, 16, 191, 69, 102, 185, 43, 106, 226, 114, 232, 15, 110,\n\t\t103, 68, 69, 19, 34, 73, 254, 166, 155, 248, 100, 46, 201,\n\t\t151, 136, 135, 99, 153, 252, 183, 186, 184, 152, 70, 146,\n\t\t132, 210, 27, 151, 190, 29, 253, 23, 225, 151, 65, 27, 92,\n\t\t13, 0, 111, 133, 204, 232, 84, 89, 219, 144, 60, 96, 55, 13,\n\t\t108, 119, 182, 15, 128, 180, 35, 112, 131, 183, 134, 68, 225,\n\t\t231, 160, 109, 185, 54, 194, 38, 115, 70, 17, 251, 182, 119,\n\t\t229, 15, 194, 96, 217, 227, 83, 124, 74, 38, 205, 205, 56,\n\t\t128, 67, 240, 218, 45, 105, 219, 56, 214, 26, 209, 184, 68,\n\t\t172, 241, 240, 203, 100, 245, 174, 233, 48, 94, 118, 94, 139,\n\t\t26, 137, 20, 53, 43, 76, 56, 203, 195, 88, 219, 120, 124,\n\t\t108, 51, 7, 97, 5, 49, 69, 208, 183, 79, 191, 13, 254, 58,\n\t\t137, 153, 152, 2, 45, 176, 133, 196, 83, 122, 130, 37, 97,\n\t\t146, 114, 74, 69, 146, 196, 211, 166, 156, 162, 86, 179, 209,\n\t\t105, 54, 120, 179, 49, 203, 184, 14, 107, 217, 85, 88, 10,\n\t\t36, 112, 190, 173, 65, 108, 185, 109, 167, 146, 131, 204,\n\t\t157, 186, 24, 17, 120, 52, 185, 105, 246, 199, 179, 115, 109,\n\t\t2, 195, 75, 183, 95, 126, 73, 182, 162, 10, 51, 154, 206,\n\t\t21, 97, 57, 245, 47, 4, 200, 28, 46, 26, 57, 110, 196, 78,\n\t\t229, 96, 30, 190, 75, 176, 122, 207, 137, 17, 129, 81, 103,\n\t\t45, 193, 130, 219, 181, 56, 163, 206, 222, 188, 93, 208, 116,\n\t\t153, 233, 125, 95, 102, 83, 163, 49, 98, 11, 56, 178, 133,\n\t\t77, 235, 236, 63, 108, 146, 216, 68, 169, 143, 91, 27, 60,\n\t\t199, 171, 213, 31, 4, 210, 222, 37, 171, 217, 251, 71, 90,\n\t\t179, 139, 86, 167, 183, 234, 35, 78, 5, 239, 111, 153, 228,\n\t\t204, 7, 153, 234, 123, 1, 216, 20, 230, 122, 30, 138, 135,\n\t\t8, 103, 148, 151, 77, 63, 22, 158, 240, 73, 14, 202, 7, 209,\n\t\t254, 204, 50, 69, 3, 255, 127, 104, 251, 19, 48, 73, 142,\n\t\t242, 78, 24, 143, 55, 50, 51, 34, 35, 239, 172, 172, 204,\n\t\t236, 58, 186, 186, 142, 174, 163, 239, 158, 170, 174, 202,\n\t\t158, 153, 158, 158, 154, 67, 51, 163, 25, 73, 211, 210, 8,\n\t\t93, 88, 82, 35, 132, 36, 36, 144, 70, 98, 133, 65, 6, 212,\n\t\t70, 252, 133, 192, 214, 34, 142, 191, 4, 120, 193, 99, 188,\n\t\t120, 37, 47, 236, 10, 204, 103, 176, 49, 184, 1, 99, 140,\n\t\t143, 93, 173, 23, 176, 119, 215, 94, 207, 179, 182, 247, 131,\n\t\t111, 141, 173, 245, 1, 222, 181, 169, 249, 158, 140, 200,\n\t\t186, 186, 123, 132, 216, 199, 223, 76, 119, 102, 100, 100,\n\t\t84, 87, 68, 100, 100, 196, 251, 190, 241, 190, 191, 31, 108,\n\t\t39, 52, 213, 155, 148, 169, 231, 85, 245, 188, 218, 219, 82,\n\t\t97, 89, 85, 123, 47, 36, 193, 199, 120, 153, 178, 31, 108,\n\t\t49, 10, 93, 142, 6, 254, 199, 253, 121, 155, 61, 202, 221,\n\t\t217, 111, 26, 65, 32, 129, 174, 240, 243, 75, 222, 213, 164,\n\t\t254, 54, 58, 131, 110, 68, 175, 70, 15, 236, 214, 43, 188,\n\t\t230, 58, 30, 245, 244, 23, 49, 123, 181, 122, 226, 108, 48,\n\t\t30, 37, 192, 101, 12, 30, 37, 112, 16, 154, 237, 81, 178,\n\t\t242, 29, 196, 229, 162, 209, 173, 82, 19, 115, 247, 57, 1,\n\t\t122, 254, 20, 115, 116, 154, 178, 22, 24, 85, 242, 148, 16,\n\t\t217, 160, 170, 229, 170, 142, 154, 202, 236, 145, 249, 162,\n\t\t232, 138, 11, 234, 134, 26, 255, 244, 94, 84, 85, 112, 84,\n\t\t184, 48, 42, 77, 247, 254, 80, 53, 28, 102, 79, 40, 166, 164,\n\t\t41, 170, 44, 201, 58, 85, 116, 136, 251, 1, 178, 169, 61,\n\t\t178, 139, 35, 177, 156, 9, 96, 75, 60, 71, 255, 10, 252, 38,\n\t\t124, 13, 181, 16, 170, 86, 232, 192, 20, 152, 132, 51, 14,\n\t\t140, 133, 209, 96, 109, 78, 104, 21, 147, 146, 112, 225, 142,\n\t\t51, 159, 140, 43, 244, 253, 115, 204, 204, 152, 90, 43, 138,\n\t\t47, 222, 126, 230, 247, 120, 37, 195, 235, 180, 56, 115, 101,\n\t\t194, 244, 188, 23, 55, 185, 144, 127, 175, 193, 210, 204,\n\t\t60, 198, 211, 187, 115, 132, 191, 238, 247, 47, 253, 42, 70,\n\t\t240, 59, 35, 152, 57, 200, 235, 20, 18, 32, 68, 18, 6, 36,\n\t\t9, 196, 190, 28, 88, 78, 95, 227, 249, 221, 141, 247, 188,\n\t\t162, 150, 219, 168, 53, 92, 59, 59, 181, 116, 207, 198, 140,\n\t\t105, 223, 191, 196, 53, 44, 161, 50, 142, 133, 217, 124, 222,\n\t\t57, 244, 232, 53, 185, 90, 183, 156, 63, 168, 208, 217, 141,\n\t\t183, 30, 59, 253, 250, 222, 55, 184, 226, 243, 122, 126, 92,\n\t\t224, 199, 115, 59, 117, 73, 91, 232, 97, 187, 199, 85, 103,\n\t\t240, 82, 36, 47, 73, 36, 226, 145, 219, 163, 208, 228, 219,\n\t\t241, 228, 182, 217, 223, 36, 230, 155, 210, 59, 32, 164, 47,\n\t\t174, 110, 172, 38, 208, 83, 203, 91, 94, 214, 235, 198, 50,\n\t\t1, 66, 176, 5, 63, 57, 224, 165, 23, 155, 212, 5, 44, 180,\n\t\t217, 40, 72, 211, 196, 150, 21, 197, 146, 252, 22, 215, 84,\n\t\t171, 255, 37, 62, 84, 79, 104, 90, 239, 47, 181, 172, 22,\n\t\t104, 26, 164, 180, 172, 6, 85, 158, 253, 95, 68, 153, 111,\n\t\t106, 217, 248, 182, 22, 196, 119, 82, 154, 54, 182, 63, 62,\n\t\t205, 89, 194, 118, 236, 143, 75, 126, 203, 175, 248, 97, 153,\n\t\t214, 71, 144, 79, 118, 22, 18, 170, 31, 63, 116, 47, 94, 236,\n\t\t78, 123, 87, 110, 38, 25, 66, 65, 20, 183, 251, 103, 211,\n\t\t131, 98, 177, 187, 124, 190, 152, 228, 120, 195, 27, 98, 175,\n\t\t26, 182, 184, 111, 188, 64, 206, 232, 239, 17, 37, 24, 124,\n\t\t201, 129, 63, 132, 36, 14, 156, 31, 220, 151, 131, 155, 116,\n\t\t151, 154, 74, 169, 181, 142, 162, 41, 29, 126, 168, 237, 184,\n\t\t86, 95, 84, 119, 252, 192, 23, 8, 211, 122, 69, 141, 145,\n\t\t133, 5, 73, 18, 191, 132, 105, 112, 113, 52, 167, 247, 91,\n\t\t123, 32, 37, 141, 218, 41, 25, 42, 241, 113, 190, 143, 99,\n\t\t231, 156, 68, 136, 207, 69, 126, 130, 228, 182, 11, 17, 36,\n\t\t238, 93, 169, 93, 241, 251, 195, 61, 76, 132, 140, 254, 117,\n\t\t212, 239, 254, 182, 103, 22, 139, 166, 7, 47, 148, 150, 68,\n\t\t132, 226, 82, 233, 188, 151, 245, 54, 187, 118, 57, 12, 203,\n\t\t225, 179, 221, 11, 73, 234, 219, 92, 3, 223, 230, 218, 56,\n\t\t20, 151, 74, 189, 23, 185, 105, 220, 41, 45, 37, 224, 29,\n\t\t219, 197, 226, 155, 194, 184, 232, 123, 138, 197, 126, 114,\n\t\t31, 127, 36, 219, 92, 87, 249, 61, 252, 24, 252, 18, 183,\n\t\t60, 6, 132, 14, 244, 176, 203, 69, 233, 238, 2, 247, 12, 66,\n\t\t252, 22, 66, 245, 158, 173, 103, 201, 6, 33, 198, 21, 107,\n\t\t50, 53, 169, 188, 182, 154, 151, 137, 69, 229, 124, 180, 38,\n\t\t83, 139, 202, 107, 81, 158, 159, 249, 181, 73, 229, 131, 87,\n\t\t232, 89, 2, 25, 61, 75, 122, 255, 157, 16, 227, 157, 122,\n\t\t134, 214, 95, 67, 101, 85, 38, 119, 77, 45, 241, 243, 242,\n\t\t212, 93, 68, 82, 101, 186, 235, 186, 78, 136, 129, 208, 152,\n\t\t239, 240, 73, 132, 34, 159, 142, 128, 10, 236, 25, 75, 217,\n\t\t26, 122, 210, 214, 163, 150, 63, 138, 60, 50, 60, 95, 248,\n\t\t40, 230, 17, 87, 171, 170, 186, 154, 252, 194, 155, 184, 249,\n\t\t163, 139, 201, 207, 206, 140, 108, 127, 94, 152, 249, 89,\n\t\t130, 129, 175, 15, 197, 209, 93, 81, 254, 113, 252, 209, 145,\n\t\t63, 176, 138, 132, 125, 4, 117, 113, 23, 186, 137, 149, 119,\n\t\t220, 194, 116, 153, 218, 236, 60, 99, 110, 112, 233, 113,\n\t\t207, 153, 229, 209, 47, 77, 126, 161, 203, 193, 95, 248, 225,\n\t\t38, 129, 151, 50, 246, 219, 183, 211, 112, 142, 249, 37, 142,\n\t\t128, 157, 222, 129, 199, 112, 249, 48, 212, 73, 72, 63, 123,\n\t\t211, 229, 254, 126, 145, 15, 55, 209, 29, 59, 107, 53, 18,\n\t\t55, 27, 203, 35, 75, 40, 66, 71, 146, 55, 37, 193, 60, 28,\n\t\t97, 47, 105, 78, 66, 20, 248, 110, 101, 232, 145, 233, 142,\n\t\t27, 246, 135, 152, 62, 158, 217, 221, 160, 12, 238, 225, 240,\n\t\t0, 142, 250, 49, 107, 75, 64, 50, 89, 23, 212, 180, 218, 18,\n\t\t162, 210, 121, 211, 99, 116, 227, 162, 233, 245, 182, 99,\n\t\t49, 36, 94, 66, 187, 170, 218, 232, 106, 110, 239, 167, 132,\n\t\t71, 58, 60, 236, 106, 247, 41, 202, 63, 240, 45, 35, 215,\n\t\t51, 123, 47, 82, 6, 221, 145, 241, 197, 184, 141, 57, 164,\n\t\t21, 186, 8, 245, 168, 77, 59, 205, 225, 150, 67, 4, 219, 221,\n\t\t205, 245, 115, 212, 209, 207, 109, 7, 235, 115, 193, 195,\n\t\t122, 65, 111, 235, 58, 108, 119, 183, 206, 233, 14, 61, 183,\n\t\t254, 217, 96, 110, 61, 120, 88, 215, 219, 122, 65, 31, 248,\n\t\t235, 124, 133, 207, 255, 165, 120, 86, 246, 132, 211, 191,\n\t\t143, 147, 121, 163, 154, 240, 149, 215, 107, 75, 208, 230,\n\t\t252, 169, 28, 225, 143, 75, 141, 139, 184, 210, 142, 58, 81,\n\t\t135, 27, 73, 139, 23, 171, 185, 98, 49, 7, 243, 87, 222, 117,\n\t\t234, 234, 133, 149, 202, 194, 129, 252, 156, 237, 45, 255,\n\t\t254, 213, 167, 154, 215, 44, 173, 46, 123, 246, 92, 254, 192,\n\t\t66, 165, 5, 197, 106, 167, 186, 213, 251, 243, 78, 117, 107,\n\t\t187, 185, 88, 59, 234, 106, 50, 54, 157, 45, 157, 25, 69,\n\t\t200, 184, 71, 107, 83, 243, 126, 209, 96, 250, 150, 99, 98,\n\t\t121, 196, 22, 53, 139, 154, 232, 64, 194, 155, 97, 9, 132,\n\t\t95, 11, 15, 67, 149, 7, 33, 203, 177, 238, 145, 112, 168,\n\t\t143, 47, 224, 79, 127, 227, 233, 112, 118, 210, 149, 24, 96,\n\t\t153, 74, 215, 36, 35, 225, 26, 202, 128, 73, 238, 124, 243,\n\t\t113, 238, 154, 241, 223, 133, 3, 251, 246, 99, 183, 150, 143,\n\t\t116, 124, 221, 59, 42, 81, 69, 234, 191, 52, 58, 61, 234,\n\t\t233, 197, 91, 86, 110, 253, 2, 223, 230, 171, 37, 232, 28,\n\t\t227, 123, 143, 25, 52, 137, 150, 208, 105, 132, 68, 36, 93,\n\t\t88, 41, 215, 250, 59, 123, 208, 140, 120, 152, 120, 20, 182,\n\t\t218, 97, 71, 40, 247, 67, 183, 224, 122, 51, 8, 211, 60, 94,\n\t\t174, 190, 8, 149, 242, 34, 212, 133, 16, 89, 128, 77, 70,\n\t\t131, 205, 55, 82, 214, 17, 104, 68, 232, 80, 179, 247, 119,\n\t\t211, 15, 190, 165, 216, 202, 79, 63, 120, 246, 80, 243, 45,\n\t\t143, 197, 163, 166, 50, 63, 81, 145, 1, 75, 216, 161, 128,\n\t\t83, 186, 147, 119, 37, 69, 114, 9, 224, 212, 83, 93, 202,\n\t\t54, 25, 68, 28, 180, 168, 247, 173, 105, 208, 155, 135, 206,\n\t\t62, 184, 93, 44, 62, 16, 159, 167, 223, 194, 195, 97, 182,\n\t\t167, 38, 64, 198, 152, 232, 182, 149, 113, 36, 66, 116, 27,\n\t\t225, 75, 127, 123, 105, 27, 255, 51, 206, 201, 210, 18, 179,\n\t\t49, 183, 86, 136, 159, 248, 233, 195, 97, 136, 213, 211, 80,\n\t\t106, 70, 124, 219, 180, 82, 42, 199, 154, 155, 112, 155, 241,\n\t\t75, 237, 0, 223, 146, 173, 45, 81, 58, 63, 89, 184, 169, 80,\n\t\t184, 169, 48, 185, 64, 232, 82, 45, 123, 132, 165, 224, 3,\n\t\t41, 22, 215, 154, 197, 211, 24, 119, 32, 102, 204, 116, 97,\n\t\t203, 129, 43, 27, 183, 16, 40, 241, 127, 64, 110, 105, 220,\n\t\t99, 219, 189, 191, 2, 144, 190, 106, 122, 204, 98, 95, 149,\n\t\t0, 228, 59, 239, 148, 145, 116, 233, 127, 95, 218, 198, 143,\n\t\t243, 189, 249, 28, 143, 237, 108, 183, 6, 75, 91, 203, 175,\n\t\t10, 208, 137, 126, 245, 220, 86, 18, 191, 1, 221, 62, 142,\n\t\t12, 252, 131, 150, 242, 126, 176, 237, 165, 244, 87, 48, 23,\n\t\t158, 118, 89, 85, 24, 113, 186, 23, 46, 241, 185, 12, 208,\n\t\t133, 191, 118, 202, 101, 103, 203, 178, 122, 5, 112, 226,\n\t\t87, 144, 13, 98, 34, 68, 204, 137, 224, 53, 25, 55, 51, 85,\n\t\t118, 154, 10, 118, 226, 11, 58, 67, 195, 210, 8, 25, 178,\n\t\t64, 129, 73, 210, 221, 228, 86, 151, 178, 141, 97, 242, 249,\n\t\t97, 18, 141, 142, 57, 193, 57, 224, 161, 231, 209, 103, 16,\n\t\t138, 66, 90, 143, 226, 159, 40, 164, 3, 84, 245, 206, 74,\n\t\t130, 121, 109, 67, 125, 12, 3, 123, 72, 79, 178, 147, 174,\n\t\t228, 50, 244, 37, 59, 241, 181, 47, 135, 183, 253, 67, 174,\n\t\t135, 117, 137, 234, 81, 72, 127, 109, 97, 97, 225, 163, 11,\n\t\t226, 223, 189, 98, 136, 127, 30, 227, 201, 4, 4, 123, 177,\n\t\t236, 114, 192, 13, 183, 127, 226, 48, 36, 110, 121, 33, 1,\n\t\t203, 78, 78, 11, 162, 152, 226, 142, 151, 46, 37, 232, 36,\n\t\t255, 132, 127, 237, 131, 11, 11, 11, 223, 93, 88, 88, 56,\n\t\t190, 176, 176, 240, 127, 45, 44, 44, 192, 131, 252, 197, 122,\n\t\t159, 68, 164, 151, 243, 241, 127, 218, 202, 188, 204, 191,\n\t\t214, 90, 88, 88, 24, 25, 187, 115, 104, 9, 93, 61, 244, 231,\n\t\t72, 86, 181, 209, 20, 15, 248, 28, 113, 234, 8, 235, 237,\n\t\t138, 31, 182, 135, 244, 61, 173, 129, 190, 222, 79, 193, 247,\n\t\t153, 112, 109, 233, 31, 23, 153, 217, 226, 254, 88, 45, 147,\n\t\t189, 107, 107, 123, 75, 4, 163, 143, 150, 249, 14, 51, 207,\n\t\t9, 163, 139, 56, 158, 51, 217, 34, 227, 187, 224, 27, 140,\n\t\t117, 187, 47, 56, 34, 218, 124, 88, 4, 1, 183, 249, 190, 29,\n\t\t182, 227, 119, 126, 104, 191, 39, 35, 239, 216, 136, 237,\n\t\t190, 0, 205, 78, 132, 127, 156, 200, 210, 126, 201, 84, 246,\n\t\t171, 182, 120, 249, 109, 117, 63, 49, 164, 253, 146, 76, 190,\n\t\t98, 31, 190, 234, 176, 13, 155, 146, 73, 30, 34, 138, 148,\n\t\t151, 25, 235, 113, 121, 134, 49, 57, 47, 41, 228, 33, 98,\n\t\t74, 155, 126, 54, 235, 247, 253, 97, 190, 0, 199, 184, 15,\n\t\t228, 129, 88, 91, 232, 199, 125, 134, 5, 81, 139, 126, 68,\n\t\t167, 5, 34, 190, 179, 118, 152, 83, 64, 88, 192, 39, 202,\n\t\t104, 157, 180, 154, 193, 20, 208, 40, 8, 121, 24, 40, 135,\n\t\t159, 233, 252, 25, 247, 12, 92, 52, 152, 145, 49, 194, 144,\n\t\t41, 238, 130, 46, 7, 146, 153, 13, 165, 148, 172, 175, 133,\n\t\t170, 157, 53, 20, 74, 38, 38, 84, 66, 156, 178, 236, 83, 151,\n\t\t89, 22, 173, 172, 26, 236, 247, 210, 106, 195, 82, 216, 65,\n\t\t45, 235, 177, 166, 150, 4, 108, 126, 138, 100, 38, 84, 162,\n\t\t27, 25, 247, 138, 166, 238, 220, 108, 134, 196, 52, 79, 219,\n\t\t198, 209, 76, 121, 77, 151, 117, 75, 143, 191, 197, 42, 90,\n\t\t192, 36, 130, 37, 152, 45, 79, 126, 104, 69, 155, 47, 27,\n\t\t108, 141, 121, 89, 173, 201, 70, 98, 234, 242, 130, 21, 123,\n\t\t92, 19, 45, 245, 183, 169, 72, 58, 104, 13, 16, 54, 127, 79,\n\t\t236, 43, 242, 141, 210, 243, 233, 60, 163, 189, 45, 62, 145,\n\t\t37, 132, 83, 221, 124, 250, 18, 74, 231, 197, 46, 106, 62,\n\t\t77, 57, 48, 72, 178, 11, 56, 234, 7, 51, 141, 58, 232, 236,\n\t\t136, 31, 76, 2, 158, 114, 0, 246, 53, 163, 206, 202, 34, 127,\n\t\t206, 148, 20, 240, 20, 144, 48, 88, 135, 122, 173, 76, 45,\n\t\t40, 72, 157, 168, 211, 140, 214, 161, 190, 136, 227, 174,\n\t\t142, 151, 158, 214, 0, 120, 69, 248, 204, 60, 225, 101, 61,\n\t\t12, 96, 72, 32, 41, 210, 6, 213, 49, 0, 86, 228, 130, 246,\n\t\t44, 73, 17, 50, 117, 71, 17, 99, 44, 19, 74, 37, 255, 196,\n\t\t29, 132, 96, 32, 170, 188, 65, 9, 150, 12, 0, 236, 101, 61,\n\t\t45, 241, 176, 185, 49, 30, 24, 152, 232, 50, 81, 100, 152,\n\t\t192, 132, 240, 132, 198, 158, 85, 101, 71, 173, 213, 36, 149,\n\t\t16, 9, 36, 57, 243, 49, 172, 83, 153, 0, 76, 96, 157, 234,\n\t\t138, 20, 127, 202, 98, 3, 31, 90, 30, 239, 90, 70, 205, 145,\n\t\t221, 214, 114, 237, 16, 22, 86, 219, 81, 27, 168, 91, 218,\n\t\t229, 99, 38, 194, 88, 47, 80, 198, 213, 120, 190, 134, 56,\n\t\t24, 241, 183, 227, 7, 92, 169, 79, 182, 33, 28, 30, 130, 249,\n\t\t60, 29, 130, 163, 192, 246, 112, 135, 2, 177, 129, 47, 175,\n\t\t204, 37, 150, 128, 71, 39, 8, 220, 116, 84, 37, 180, 115,\n\t\t24, 42, 181, 122, 80, 47, 224, 176, 178, 14, 148, 208, 74,\n\t\t39, 172, 213, 91, 1, 7, 136, 199, 245, 48, 205, 93, 24, 251,\n\t\t53, 75, 198, 133, 79, 6, 128, 129, 98, 116, 192, 186, 186,\n\t\t96, 224, 122, 29, 27, 11, 55, 200, 154, 10, 139, 96, 151,\n\t\t13, 92, 87, 23, 22, 212, 58, 190, 10, 108, 26, 103, 126, 95,\n\t\t195, 88, 179, 245, 222, 175, 206, 68, 209, 12, 156, 200, 138,\n\t\t8, 147, 98, 239, 162, 233, 165, 172, 23, 247, 249, 147, 51,\n\t\t197, 153, 73, 191, 160, 164, 42, 126, 97, 22, 79, 206, 236,\n\t\t123, 198, 223, 55, 51, 83, 152, 165, 113, 206, 211, 182, 194,\n\t\t86, 12, 141, 57, 134, 21, 205, 64, 119, 38, 202, 214, 68,\n\t\t204, 200, 239, 116, 83, 249, 20, 66, 242, 165, 31, 92, 250,\n\t\t34, 60, 6, 95, 69, 105, 52, 143, 222, 132, 30, 67, 40, 138,\n\t\t5, 19, 238, 79, 72, 99, 233, 32, 8, 227, 255, 74, 64, 42,\n\t\t117, 30, 7, 31, 223, 237, 68, 157, 168, 185, 14, 173, 78,\n\t\t92, 46, 30, 99, 164, 86, 95, 164, 245, 154, 0, 154, 237, 172,\n\t\t212, 107, 81, 44, 3, 139, 255, 220, 53, 143, 27, 170, 195,\n\t\t130, 20, 10, 223, 78, 78, 187, 77, 45, 82, 19, 99, 48, 150,\n\t\t229, 94, 21, 20, 82, 238, 138, 228, 146, 234, 10, 211, 164,\n\t\t69, 195, 148, 8, 147, 161, 36, 105, 108, 165, 74, 92, 105,\n\t\t197, 77, 21, 2, 192, 50, 195, 88, 194, 166, 113, 90, 203,\n\t\t27, 108, 130, 25, 121, 77, 146, 101, 25, 83, 137, 73, 1, 33,\n\t\t138, 237, 18, 66, 136, 107, 43, 132, 4, 25, 21, 107, 110,\n\t\t224, 107, 126, 224, 218, 204, 15, 136, 12, 170, 164, 141,\n\t\t220, 151, 52, 137, 74, 138, 242, 108, 116, 77, 148, 153, 203,\n\t\t214, 95, 225, 107, 91, 170, 68, 106, 216, 82, 207, 107, 114,\n\t\t60, 250, 111, 86, 45, 92, 35, 146, 186, 165, 249, 128, 21,\n\t\t12, 32, 107, 241, 103, 8, 161, 146, 38, 201, 146, 4, 24, 48,\n\t\t144, 208, 103, 142, 27, 4, 154, 31, 186, 54, 11, 2, 74, 84,\n\t\t208, 197, 183, 56, 138, 66, 3, 91, 182, 36, 205, 13, 125,\n\t\t45, 8, 92, 135, 249, 33, 1, 12, 18, 200, 202, 215, 55, 86,\n\t\t87, 27, 217, 249, 172, 216, 11, 31, 224, 185, 44, 140, 206,\n\t\t39, 137, 119, 84, 75, 121, 9, 166, 52, 220, 229, 126, 25,\n\t\t79, 102, 189, 103, 24, 123, 198, 203, 66, 97, 125, 221, 48,\n\t\t2, 67, 95, 95, 231, 100, 229, 99, 87, 176, 85, 205, 93, 66,\n\t\t185, 170, 247, 180, 150, 213, 158, 246, 122, 123, 149, 73,\n\t\t174, 118, 216, 115, 235, 40, 66, 87, 163, 91, 119, 120, 116,\n\t\t173, 116, 90, 212, 79, 135, 132, 86, 214, 33, 170, 88, 82,\n\t\t178, 71, 23, 76, 237, 44, 5, 253, 120, 138, 74, 1, 194, 74,\n\t\t173, 30, 47, 137, 235, 224, 237, 44, 117, 222, 244, 18, 244,\n\t\t148, 46, 233, 184, 77, 125, 255, 236, 134, 100, 216, 158,\n\t\t22, 55, 49, 93, 164, 213, 193, 109, 140, 146, 172, 141, 217,\n\t\t253, 122, 211, 237, 144, 87, 208, 98, 122, 112, 23, 46, 12,\n\t\t49, 88, 86, 79, 89, 70, 253, 240, 242, 217, 12, 179, 53, 82,\n\t\t237, 84, 131, 212, 183, 135, 55, 193, 225, 57, 153, 179, 203,\n\t\t135, 235, 134, 117, 42, 21, 244, 94, 28, 222, 76, 252, 249,\n\t\t191, 6, 95, 66, 251, 208, 65, 132, 20, 110, 250, 95, 233,\n\t\t68, 237, 17, 203, 91, 178, 109, 26, 132, 3, 162, 75, 1, 86,\n\t\t198, 137, 11, 235, 132, 150, 98, 133, 176, 226, 195, 226,\n\t\t31, 213, 82, 217, 149, 121, 62, 15, 241, 105, 200, 241, 83,\n\t\t117, 102, 24, 186, 110, 172, 240, 35, 155, 203, 101, 83, 127,\n\t\t84, 245, 0, 121, 213, 137, 205, 110, 105, 190, 181, 114, 115,\n\t\t230, 195, 140, 22, 137, 198, 15, 31, 54, 220, 58, 139, 11,\n\t\t26, 43, 252, 200, 230, 22, 219, 173, 249, 210, 15, 130, 122,\n\t\t61, 48, 127, 249, 151, 209, 24, 166, 36, 227, 179, 21, 26,\n\t\t218, 254, 165, 182, 0, 1, 74, 176, 42, 42, 229, 90, 159, 19,\n\t\t19, 54, 77, 175, 183, 229, 153, 197, 120, 108, 116, 171, 157,\n\t\t106, 55, 87, 253, 109, 225, 25, 177, 237, 153, 23, 185, 10,\n\t\t94, 44, 230, 170, 124, 152, 117, 171, 87, 39, 14, 138, 67,\n\t\t217, 122, 133, 251, 250, 93, 135, 126, 12, 221, 185, 19, 59,\n\t\t99, 15, 128, 130, 228, 219, 15, 141, 6, 28, 85, 253, 161,\n\t\t97, 176, 111, 97, 142, 59, 89, 152, 114, 113, 127, 191, 99,\n\t\t224, 31, 38, 224, 53, 44, 131, 140, 248, 179, 152, 158, 202,\n\t\t115, 223, 254, 107, 111, 239, 109, 139, 93, 140, 67, 124,\n\t\t101, 189, 192, 199, 212, 83, 252, 120, 62, 113, 143, 234,\n\t\t90, 218, 134, 102, 253, 130, 110, 11, 71, 24, 113, 244, 204,\n\t\t11, 60, 123, 185, 188, 184, 88, 94, 94, 229, 86, 195, 158,\n\t\t32, 165, 187, 117, 100, 60, 245, 94, 28, 248, 230, 8, 252,\n\t\t13, 12, 219, 232, 149, 60, 74, 37, 214, 252, 42, 65, 60, 195,\n\t\t197, 35, 165, 238, 11, 227, 136, 80, 8, 107, 81, 39, 42, 87,\n\t\t132, 31, 123, 180, 136, 235, 130, 166, 57, 44, 224, 112, 121,\n\t\t165, 189, 18, 79, 150, 205, 176, 32, 251, 105, 127, 29, 115,\n\t\t240, 254, 128, 90, 152, 6, 240, 125, 198, 214, 174, 100, 204,\n\t\t80, 36, 42, 83, 44, 85, 27, 170, 163, 54, 170, 18, 166, 50,\n\t\t149, 20, 131, 177, 43, 215, 24, 43, 206, 231, 231, 116, 137,\n\t\t81, 12, 122, 249, 92, 169, 20, 168, 114, 74, 150, 153, 239,\n\t\t152, 165, 115, 101, 29, 48, 255, 160, 62, 151, 95, 184, 73,\n\t\t241, 148, 169, 192, 101, 84, 1, 35, 215, 85, 213, 110, 94,\n\t\t7, 133, 50, 55, 152, 82, 60, 197, 101, 165, 27, 42, 58, 198,\n\t\t68, 3, 172, 205, 100, 37, 104, 159, 111, 152, 148, 42, 206,\n\t\t226, 242, 137, 146, 4, 217, 25, 13, 131, 66, 152, 94, 185,\n\t\t161, 52, 88, 167, 127, 29, 35, 248, 18, 231, 130, 64, 48,\n\t\t52, 129, 11, 46, 249, 184, 61, 74, 125, 228, 42, 33, 235,\n\t\t46, 115, 252, 185, 255, 76, 3, 250, 11, 170, 58, 77, 125,\n\t\t245, 252, 139, 170, 79, 123, 255, 241, 39, 20, 101, 150, 88,\n\t\t202, 21, 31, 81, 108, 101, 86, 81, 190, 161, 216, 144, 166,\n\t\t1, 237, 253, 161, 170, 254, 43, 26, 208, 42, 165, 15, 254,\n\t\t79, 85, 125, 255, 91, 196, 237, 43, 254, 69, 92, 220, 86,\n\t\t126, 95, 108, 15, 95, 250, 135, 68, 102, 8, 227, 249, 83,\n\t\t25, 139, 148, 174, 215, 18, 110, 116, 223, 75, 60, 9, 6, 156,\n\t\t160, 124, 218, 130, 134, 27, 170, 47, 170, 161, 187, 250,\n\t\t156, 110, 184, 112, 191, 107, 232, 207, 109, 175, 93, 127,\n\t\t253, 90, 163, 50, 237, 165, 27, 124, 146, 54, 87, 236, 211,\n\t\t73, 36, 245, 91, 159, 51, 10, 5, 227, 185, 183, 194, 11, 215,\n\t\t191, 233, 122, 127, 58, 150, 50, 178, 193, 92, 123, 132, 191,\n\t\t39, 195, 251, 163, 0, 126, 105, 207, 169, 98, 23, 206, 92,\n\t\t241, 186, 251, 123, 221, 251, 175, 227, 51, 3, 215, 109, 29,\n\t\t129, 12, 192, 69, 17, 56, 164, 191, 237, 250, 235, 223, 166,\n\t\t123, 195, 141, 215, 222, 72, 148, 155, 192, 147, 252, 85,\n\t\t76, 224, 55, 147, 125, 155, 67, 241, 72, 180, 193, 194, 9,\n\t\t80, 155, 248, 229, 92, 97, 28, 55, 99, 10, 130, 41, 40, 192,\n\t\t32, 216, 126, 231, 14, 14, 244, 168, 55, 173, 120, 161, 118,\n\t\t69, 125, 246, 106, 119, 206, 136, 204, 0, 27, 216, 154, 86,\n\t\t75, 78, 156, 51, 91, 136, 51, 122, 159, 26, 217, 211, 249,\n\t\t37, 126, 252, 210, 108, 253, 10, 45, 244, 148, 105, 143, 26,\n\t\t146, 111, 70, 198, 92, 234, 42, 77, 159, 154, 188, 194, 46,\n\t\t171, 113, 30, 153, 138, 179, 190, 192, 223, 29, 65, 143, 250,\n\t\t254, 161, 31, 36, 111, 131, 2, 95, 69, 21, 30, 133, 124, 240,\n\t\t135, 180, 33, 44, 64, 43, 29, 92, 182, 5, 151, 136, 87, 33,\n\t\t123, 183, 160, 54, 11, 167, 219, 167, 123, 255, 105, 87, 245,\n\t\t183, 103, 107, 47, 85, 253, 149, 211, 237, 211, 15, 238, 89,\n\t\t247, 161, 189, 113, 130, 115, 177, 143, 205, 127, 28, 11,\n\t\t67, 120, 9, 130, 219, 242, 43, 123, 97, 99, 136, 217, 172,\n\t\t193, 29, 30, 46, 196, 179, 237, 197, 248, 216, 24, 102, 110,\n\t\t242, 35, 207, 128, 83, 155, 177, 114, 6, 167, 122, 159, 219,\n\t\t244, 204, 4, 54, 40, 190, 195, 247, 54, 18, 191, 25, 27, 229,\n\t\t80, 29, 181, 208, 97, 206, 3, 113, 247, 30, 188, 171, 99,\n\t\t113, 221, 131, 153, 215, 15, 95, 70, 58, 106, 143, 111, 178,\n\t\t41, 35, 127, 107, 116, 235, 21, 28, 245, 162, 170, 94, 84,\n\t\t191, 45, 54, 63, 187, 123, 157, 26, 140, 242, 145, 254, 2,\n\t\t101, 253, 226, 176, 41, 148, 207, 184, 113, 166, 119, 9, 169,\n\t\t241, 191, 83, 59, 97, 113, 147, 31, 1, 47, 19, 31, 222, 204,\n\t\t203, 141, 233, 73, 37, 52, 131, 142, 12, 245, 164, 41, 8,\n\t\t214, 129, 195, 149, 46, 2, 137, 229, 40, 11, 98, 49, 170,\n\t\t0, 3, 103, 205, 136, 3, 80, 142, 222, 138, 5, 172, 117, 16,\n\t\t218, 209, 7, 39, 169, 171, 208, 124, 94, 1, 162, 106, 242,\n\t\t100, 114, 69, 21, 71, 125, 53, 55, 113, 254, 199, 124, 158,\n\t\t18, 91, 29, 189, 193, 211, 137, 90, 180, 158, 220, 149, 53,\n\t\t149, 128, 50, 44, 43, 147, 79, 114, 251, 232, 71, 6, 31, 28,\n\t\t220, 224, 105, 177, 166, 127, 145, 143, 47, 149, 175, 179,\n\t\t168, 26, 198, 162, 57, 238, 68, 22, 174, 148, 235, 241, 140,\n\t\t186, 8, 237, 122, 36, 144, 227, 58, 97, 16, 70, 195, 0, 0,\n\t\t66, 235, 203, 229, 229, 242, 62, 202, 73, 205, 58, 241, 139,\n\t\t223, 127, 83, 224, 235, 17, 5, 139, 118, 162, 249, 235, 114,\n\t\t87, 253, 216, 190, 149, 230, 201, 142, 164, 18, 133, 158,\n\t\t44, 133, 146, 68, 242, 6, 179, 210, 199, 141, 213, 141, 85,\n\t\t99, 165, 178, 220, 194, 248, 88, 165, 188, 255, 206, 41, 213,\n\t\t204, 19, 249, 255, 225, 47, 204, 61, 155, 7, 84, 85, 10, 111,\n\t\t119, 223, 54, 115, 168, 232, 253, 68, 8, 50, 145, 15, 188,\n\t\t37, 95, 38, 166, 228, 168, 166, 159, 122, 99, 32, 160, 17,\n\t\t130, 155, 167, 205, 155, 254, 153, 17, 45, 153, 212, 150,\n\t\t205, 207, 236, 120, 111, 142, 193, 87, 208, 2, 58, 206, 231,\n\t\t203, 73, 72, 211, 196, 49, 135, 244, 19, 28, 0, 144, 39, 248,\n\t\t92, 217, 12, 163, 78, 1, 8, 85, 132, 206, 16, 235, 35, 188,\n\t\t217, 179, 34, 20, 20, 126, 59, 58, 220, 245, 178, 222, 129,\n\t\t19, 94, 214, 59, 113, 192, 203, 122, 221, 231, 126, 188, 81,\n\t\t255, 57, 61, 107, 18, 163, 247, 226, 171, 159, 156, 218, 95,\n\t\t253, 121, 45, 75, 41, 49, 110, 4, 5, 94, 253, 228, 147, 112,\n\t\t50, 213, 153, 250, 185, 133, 10, 31, 185, 143, 164, 164, 7,\n\t\t226, 243, 3, 82, 234, 17, 190, 216, 87, 22, 126, 174, 125,\n\t\t70, 217, 164, 36, 204, 146, 191, 91, 42, 217, 57, 159, 190,\n\t\t138, 18, 67, 207, 146, 246, 210, 209, 165, 190, 124, 220,\n\t\t229, 56, 230, 1, 42, 162, 89, 212, 217, 129, 100, 222, 89,\n\t\t18, 14, 13, 97, 39, 104, 70, 177, 146, 99, 1, 141, 218, 53,\n\t\t238, 39, 217, 236, 132, 220, 19, 162, 78, 73, 24, 60, 247,\n\t\t151, 207, 61, 247, 151, 207, 253, 158, 106, 103, 87, 143,\n\t\t159, 56, 232, 175, 173, 77, 145, 178, 111, 101, 82, 242, 91,\n\t\t139, 221, 98, 109, 165, 182, 84, 59, 80, 58, 190, 154, 181,\n\t\t85, 2, 23, 206, 180, 183, 219, 103, 226, 195, 185, 201, 220,\n\t\t188, 86, 11, 194, 154, 230, 100, 164, 116, 198, 72, 155, 79,\n\t\t154, 146, 100, 102, 107, 181, 215, 83, 63, 111, 7, 53, 109,\n\t\t62, 55, 153, 25, 229, 90, 43, 33, 20, 15, 127, 238, 226, 75,\n\t\t168, 149, 224, 251, 70, 253, 168, 49, 130, 17, 91, 184, 247,\n\t\t90, 203, 121, 255, 107, 14, 156, 153, 58, 92, 220, 63, 244,\n\t\t238, 197, 178, 210, 60, 254, 202, 179, 55, 204, 195, 246,\n\t\t91, 239, 111, 103, 130, 125, 251, 84, 73, 222, 63, 240, 237,\n\t\t253, 165, 197, 114, 235, 198, 213, 197, 137, 148, 210, 199,\n\t\t91, 133, 126, 12, 239, 12, 186, 62, 214, 27, 188, 93, 20,\n\t\t25, 212, 223, 123, 111, 216, 43, 215, 23, 129, 10, 223, 223,\n\t\t1, 48, 30, 223, 220, 12, 155, 251, 56, 66, 30, 119, 179, 139,\n\t\t151, 112, 175, 79, 97, 113, 113, 148, 75, 163, 239, 195, 193,\n\t\t127, 190, 68, 37, 54, 103, 89, 164, 76, 82, 146, 106, 196,\n\t\t51, 134, 97, 133, 178, 238, 74, 58, 104, 178, 42, 89, 146,\n\t\t145, 91, 138, 115, 175, 220, 193, 110, 1, 47, 104, 214, 41,\n\t\t62, 209, 136, 227, 37, 68, 82, 204, 152, 113, 221, 142, 202,\n\t\t44, 230, 88, 83, 77, 13, 152, 77, 200, 4, 179, 24, 132, 9,\n\t\t235, 197, 168, 12, 238, 162, 58, 90, 222, 171, 221, 94, 167,\n\t\t54, 134, 92, 194, 225, 239, 162, 189, 155, 114, 149, 170,\n\t\t234, 71, 248, 82, 127, 68, 87, 213, 77, 197, 82, 62, 185,\n\t\t71, 61, 123, 31, 167, 105, 238, 57, 188, 145, 166, 155, 138,\n\t\t2, 215, 137, 234, 136, 125, 161, 147, 124, 238, 8, 249, 238,\n\t\t132, 31, 127, 195, 20, 240, 216, 95, 18, 75, 226, 237, 86,\n\t\t123, 165, 19, 42, 113, 29, 253, 209, 58, 114, 115, 165, 95,\n\t\t41, 19, 31, 182, 226, 239, 187, 131, 126, 222, 48, 54, 105,\n\t\t186, 219, 77, 211, 222, 159, 51, 250, 252, 160, 134, 150,\n\t\t246, 196, 243, 148, 193, 9, 178, 69, 239, 160, 191, 97, 24,\n\t\t155, 113, 141, 187, 113, 109, 223, 66, 217, 19, 253, 26, 62,\n\t\t161, 89, 91, 140, 238, 226, 39, 107, 9, 54, 95, 177, 36, 86,\n\t\t247, 98, 83, 17, 166, 83, 1, 34, 40, 118, 21, 59, 7, 193,\n\t\t57, 127, 158, 50, 6, 47, 238, 160, 81, 217, 74, 211, 77, 94,\n\t\t203, 173, 120, 16, 136, 173, 138, 207, 142, 243, 168, 60,\n\t\t193, 187, 49, 169, 37, 168, 90, 159, 223, 45, 121, 102, 18,\n\t\t50, 80, 129, 191, 199, 71, 209, 117, 8, 85, 253, 74, 123,\n\t\t207, 90, 189, 244, 0, 30, 93, 96, 119, 172, 151, 109, 40,\n\t\t110, 67, 102, 55, 253, 203, 216, 144, 5, 36, 206, 137, 166,\n\t\t120, 145, 178, 237, 110, 247, 153, 221, 132, 48, 163, 195,\n\t\t51, 113, 121, 120, 97, 32, 69, 142, 189, 135, 42, 202, 114,\n\t\t46, 232, 215, 191, 36, 103, 205, 104, 123, 70, 147, 222, 58,\n\t\t180, 87, 18, 17, 236, 71, 116, 217, 218, 139, 234, 102, 172,\n\t\t173, 79, 165, 50, 170, 205, 94, 158, 139, 214, 94, 164, 56,\n\t\t162, 245, 55, 113, 129, 160, 247, 109, 200, 166, 180, 148,\n\t\t41, 141, 249, 97, 77, 168, 234, 196, 30, 238, 89, 19, 2, 223,\n\t\t67, 30, 121, 95, 15, 162, 99, 232, 170, 61, 223, 216, 154,\n\t\t13, 245, 78, 123, 167, 127, 81, 107, 143, 61, 27, 46, 238,\n\t\t165, 73, 212, 127, 211, 198, 222, 230, 43, 12, 189, 80, 42,\n\t\t85, 115, 27, 137, 40, 239, 29, 44, 232, 186, 110, 232, 133,\n\t\t130, 110, 232, 122, 124, 210, 5, 205, 198, 215, 197, 59, 183,\n\t\t227, 45, 255, 170, 174, 23, 74, 169, 90, 174, 154, 216, 53,\n\t\t151, 15, 22, 184, 41, 160, 80, 224, 22, 132, 248, 227, 81,\n\t\t145, 89, 236, 105, 254, 46, 246, 99, 209, 143, 192, 54, 143,\n\t\t76, 189, 2, 157, 69, 40, 42, 192, 158, 111, 58, 245, 107,\n\t\t151, 153, 116, 99, 57, 168, 211, 244, 250, 237, 161, 81, 72,\n\t\t43, 2, 22, 38, 86, 241, 254, 51, 73, 27, 91, 163, 115, 193,\n\t\t22, 185, 204, 116, 27, 196, 147, 237, 115, 162, 93, 155, 63,\n\t\t127, 252, 99, 87, 64, 134, 210, 252, 241, 60, 245, 213, 9,\n\t\t221, 108, 140, 76, 20, 75, 143, 94, 7, 202, 206, 185, 22,\n\t\t107, 54, 129, 6, 111, 216, 255, 248, 216, 241, 159, 255, 95,\n\t\t170, 207, 63, 252, 178, 231, 220, 102, 60, 129, 240, 104,\n\t\t146, 164, 201, 220, 65, 108, 207, 57, 183, 63, 211, 110, 14,\n\t\t230, 222, 157, 204, 71, 252, 105, 92, 224, 115, 237, 102,\n\t\t127, 230, 253, 190, 152, 115, 251, 122, 241, 215, 80, 136,\n\t\t106, 163, 216, 21, 43, 67, 224, 250, 78, 51, 244, 162, 58,\n\t\t13, 99, 209, 116, 9, 108, 32, 52, 214, 243, 255, 107, 126,\n\t\t35, 255, 112, 62, 127, 251, 13, 220, 22, 119, 195, 117, 44,\n\t\t199, 94, 185, 239, 231, 15, 30, 100, 169, 28, 59, 120, 173,\n\t\t165, 224, 255, 155, 229, 216, 127, 205, 231, 31, 206, 111,\n\t\t228, 111, 191, 129, 91, 234, 110, 184, 142, 177, 222, 119,\n\t\t150, 227, 66, 185, 20, 59, 120, 157, 169, 140, 224, 75, 117,\n\t\t225, 107, 72, 67, 101, 174, 149, 244, 145, 105, 58, 135, 225,\n\t\t229, 85, 8, 163, 110, 181, 83, 45, 198, 58, 231, 15, 173,\n\t\t215, 214, 173, 149, 92, 181, 154, 115, 186, 19, 143, 190,\n\t\t188, 26, 18, 190, 63, 5, 240, 101, 100, 162, 5, 116, 4, 253,\n\t\t24, 186, 31, 189, 151, 71, 135, 249, 220, 118, 82, 139, 58,\n\t\t245, 149, 168, 0, 126, 64, 45, 92, 95, 132, 248, 178, 86,\n\t\t47, 147, 248, 26, 248, 101, 173, 83, 43, 64, 44, 55, 209,\n\t\t52, 103, 55, 139, 179, 162, 78, 84, 128, 48, 237, 167, 105,\n\t\t63, 107, 17, 234, 101, 74, 22, 161, 19, 117, 20, 1, 58, 87,\n\t\t107, 175, 112, 176, 225, 2, 174, 7, 22, 212, 234, 139, 114,\n\t\t165, 70, 73, 200, 29, 53, 150, 249, 50, 84, 139, 58, 97, 179,\n\t\t128, 191, 151, 182, 240, 148, 146, 178, 117, 92, 192, 225,\n\t\t220, 58, 24, 32, 91, 140, 25, 88, 135, 114, 152, 41, 128,\n\t\t141, 93, 79, 199, 22, 192, 193, 43, 109, 76, 38, 1, 116, 133,\n\t\t223, 214, 0, 26, 228, 93, 87, 189, 30, 8, 88, 186, 102, 98,\n\t\t2, 112, 237, 254, 148, 195, 92, 69, 103, 19, 144, 34, 150,\n\t\t166, 89, 10, 214, 53, 89, 163, 164, 78, 100, 39, 173, 24,\n\t\t133, 114, 173, 225, 223, 180, 182, 31, 168, 78, 64, 51, 225,\n\t\t228, 153, 215, 77, 173, 119, 150, 127, 219, 210, 30, 186,\n\t\t63, 229, 179, 215, 222, 167, 109, 194, 218, 236, 213, 103,\n\t\t100, 166, 2, 118, 180, 147, 167, 194, 34, 20, 253, 171, 175,\n\t\t98, 186, 236, 104, 39, 174, 156, 89, 203, 154, 158, 90, 89,\n\t\t92, 95, 147, 68, 129, 104, 255, 225, 125, 234, 1, 184, 239,\n\t\t52, 165, 237, 182, 106, 1, 56, 218, 234, 254, 232, 44, 200,\n\t\t88, 75, 187, 88, 121, 36, 63, 175, 89, 54, 171, 135, 154,\n\t\t139, 1, 43, 234, 13, 106, 90, 151, 152, 155, 15, 28, 6, 107,\n\t\t251, 175, 155, 32, 58, 177, 53, 255, 174, 83, 167, 193, 153,\n\t\t156, 21, 120, 156, 168, 136, 187, 176, 137, 38, 196, 94, 87,\n\t\t1, 167, 99, 205, 35, 22, 91, 57, 251, 6, 135, 139, 11, 134,\n\t\t17, 15, 112, 114, 249, 85, 221, 70, 163, 251, 170, 229, 245,\n\t\t243, 181, 155, 88, 26, 103, 50, 56, 173, 221, 88, 59, 255,\n\t\t211, 158, 109, 51, 133, 81, 9, 54, 103, 162, 86, 182, 21,\n\t\t205, 172, 205, 30, 165, 186, 118, 255, 253, 154, 78, 143,\n\t\t206, 174, 125, 174, 31, 203, 192, 109, 139, 227, 113, 223,\n\t\t60, 122, 117, 122, 136, 236, 150, 238, 163, 4, 113, 4, 255,\n\t\t68, 245, 15, 155, 241, 122, 148, 110, 13, 162, 56, 175, 225,\n\t\t102, 204, 79, 243, 163, 203, 213, 184, 141, 217, 181, 217,\n\t\t217, 181, 47, 58, 206, 150, 227, 188, 61, 78, 206, 254, 253,\n\t\t72, 140, 240, 191, 227, 186, 218, 140, 200, 47, 22, 239, 225,\n\t\t133, 119, 97, 79, 78, 37, 124, 69, 227, 223, 29, 116, 234,\n\t\t137, 124, 79, 130, 168, 211, 236, 215, 97, 184, 183, 230,\n\t\t101, 159, 101, 38, 40, 135, 10, 94, 163, 44, 129, 201, 246,\n\t\t173, 204, 8, 99, 164, 208, 16, 103, 249, 197, 31, 72, 6, 203,\n\t\t149, 205, 73, 143, 25, 146, 253, 68, 95, 89, 194, 220, 143,\n\t\t131, 112, 251, 86, 14, 33, 160, 126, 107, 47, 19, 23, 45,\n\t\t133, 37, 248, 222, 183, 86, 251, 246, 172, 111, 57, 110, 8,\n\t\t191, 22, 186, 167, 123, 79, 44, 195, 4, 60, 254, 173, 109,\n\t\t97, 194, 218, 254, 150, 51, 59, 75, 150, 133, 14, 214, 111,\n\t\t215, 189, 35, 200, 149, 241, 31, 93, 132, 36, 186, 69, 176,\n\t\t243, 39, 139, 222, 20, 240, 0, 23, 63, 45, 48, 233, 196, 237,\n\t\t228, 94, 172, 246, 8, 248, 180, 78, 212, 225, 64, 190, 125,\n\t\t63, 245, 36, 70, 140, 175, 31, 252, 126, 91, 116, 11, 124,\n\t\t144, 209, 148, 117, 243, 65, 70, 50, 170, 162, 74, 196, 50,\n\t\t24, 189, 133, 40, 68, 33, 26, 101, 250, 18, 33, 150, 97, 66,\n\t\t202, 206, 5, 197, 48, 67, 153, 170, 186, 182, 106, 234, 150,\n\t\t12, 50, 96, 79, 98, 84, 85, 21, 83, 86, 168, 132, 37, 89,\n\t\t246, 36, 69, 150, 108, 150, 116, 230, 73, 202, 14, 92, 199,\n\t\t124, 202, 168, 161, 128, 44, 25, 50, 101, 10, 81, 24, 49,\n\t\t36, 7, 75, 148, 232, 190, 147, 179, 194, 34, 163, 147, 158,\n\t\t107, 27, 105, 199, 148, 149, 64, 150, 50, 178, 162, 83, 70,\n\t\t211, 196, 198, 0, 146, 33, 97, 85, 78, 120, 237, 251, 125,\n\t\t116, 59, 199, 49, 30, 120, 140, 180, 87, 120, 23, 196, 143,\n\t\t61, 177, 78, 137, 38, 198, 107, 75, 63, 67, 64, 122, 47, 65,\n\t\t237, 48, 238, 8, 128, 30, 142, 211, 19, 240, 45, 240, 48,\n\t\t224, 59, 132, 97, 1, 168, 47, 186, 45, 234, 68, 97, 167, 189,\n\t\t34, 16, 144, 211, 83, 16, 36, 29, 117, 218, 98, 22, 51, 143,\n\t\t201, 1, 113, 44, 157, 170, 83, 18, 38, 10, 195, 18, 81, 100,\n\t\t108, 3, 214, 176, 204, 36, 172, 18, 34, 19, 162, 41, 186,\n\t\t62, 105, 24, 182, 58, 113, 178, 152, 97, 170, 6, 182, 155,\n\t\t154, 114, 152, 110, 130, 31, 184, 32, 131, 34, 221, 62, 137,\n\t\t125, 147, 200, 158, 44, 167, 250, 230, 137, 111, 90, 158,\n\t\t201, 44, 134, 11, 148, 72, 148, 73, 26, 200, 42, 86, 229,\n\t\t41, 192, 50, 214, 240, 232, 31, 6, 172, 51, 38, 27, 83, 39,\n\t\t107, 166, 193, 192, 100, 204, 101, 94, 209, 100, 250, 148,\n\t\t150, 83, 150, 176, 69, 101, 233, 78, 213, 214, 151, 102, 137,\n\t\t164, 20, 136, 69, 114, 234, 88, 255, 173, 198, 242, 231, 96,\n\t\t231, 58, 74, 244, 184, 67, 176, 34, 86, 163, 90, 172, 110,\n\t\t164, 67, 62, 66, 130, 164, 31, 197, 77, 222, 179, 33, 239,\n\t\t111, 33, 146, 10, 33, 101, 48, 2, 197, 32, 20, 31, 105, 69,\n\t\t131, 167, 112, 24, 58, 162, 255, 190, 235, 2, 1, 172, 72,\n\t\t42, 211, 101, 169, 53, 53, 117, 238, 97, 105, 157, 42, 158,\n\t\t164, 226, 80, 214, 8, 101, 138, 66, 136, 162, 80, 246, 188,\n\t\t98, 96, 153, 72, 32, 131, 36, 99, 32, 88, 49, 36, 60, 129,\n\t\t165, 58, 137, 135, 144, 134, 113, 32, 73, 186, 106, 42, 196,\n\t\t166, 10, 235, 247, 221, 237, 147, 88, 146, 213, 107, 52, 153,\n\t\t96, 38, 213, 180, 135, 207, 217, 174, 226, 73, 32, 47, 240,\n\t\t173, 102, 241, 151, 239, 154, 160, 178, 33, 73, 166, 44, 89,\n\t\t18, 54, 21, 112, 49, 56, 152, 104, 18, 54, 20, 2, 170, 169,\n\t\t40, 140, 219, 177, 205, 145, 190, 178, 184, 47, 126, 9, 85,\n\t\t209, 204, 192, 79, 249, 56, 58, 51, 210, 127, 237, 138, 159,\n\t\t14, 90, 201, 62, 73, 167, 63, 15, 181, 43, 126, 196, 189,\n\t\t80, 198, 207, 99, 158, 203, 253, 13, 21, 95, 244, 206, 83,\n\t\t13, 207, 84, 85, 211, 43, 242, 249, 166, 189, 188, 188, 124,\n\t\t62, 249, 21, 8, 184, 155, 13, 213, 244, 60, 83, 77, 26, 252,\n\t\t253, 248, 114, 53, 254, 204, 255, 159, 223, 190, 216, 104,\n\t\t172, 142, 255, 220, 35, 108, 164, 106, 195, 171, 170, 166,\n\t\t215, 216, 133, 227, 81, 27, 182, 66, 222, 17, 219, 158, 110,\n\t\t118, 4, 92, 111, 157, 99, 247, 38, 195, 255, 21, 35, 150,\n\t\t218, 205, 155, 41, 152, 108, 233, 131, 75, 68, 35, 64, 147,\n\t\t58, 133, 34, 14, 159, 255, 124, 183, 83, 143, 103, 79, 27,\n\t\t203, 26, 169, 143, 125, 183, 143, 42, 168, 57, 252, 238, 42,\n\t\t127, 15, 155, 81, 39, 170, 241, 45, 236, 209, 171, 212, 158,\n\t\t245, 88, 181, 1, 108, 226, 43, 226, 244, 241, 177, 171, 185,\n\t\t61, 43, 230, 4, 165, 178, 207, 216, 174, 99, 239, 133, 177,\n\t\t90, 142, 175, 49, 33, 154, 67, 251, 135, 245, 156, 46, 19,\n\t\t202, 85, 224, 120, 88, 199, 122, 215, 248, 245, 162, 60, 82,\n\t\t89, 50, 168, 235, 43, 107, 21, 108, 72, 154, 81, 51, 153,\n\t\t100, 2, 254, 150, 55, 122, 9, 170, 110, 217, 153, 65, 141,\n\t\t153, 57, 168, 48, 204, 20, 168, 164, 184, 65, 224, 42, 18,\n\t\t45, 204, 140, 94, 25, 65, 202, 160, 189, 111, 39, 21, 151,\n\t\t12, 86, 79, 116, 204, 223, 130, 191, 135, 47, 33, 157, 243,\n\t\t63, 31, 65, 27, 8, 161, 114, 66, 96, 17, 248, 105, 218, 140,\n\t\t132, 244, 41, 80, 83, 252, 116, 80, 251, 17, 218, 19, 119,\n\t\t62, 252, 81, 35, 63, 139, 85, 60, 187, 204, 116, 190, 160,\n\t\t222, 125, 122, 93, 93, 186, 234, 71, 104, 159, 120, 34, 221,\n\t\t188, 23, 70, 146, 20, 133, 222, 154, 180, 220, 186, 59, 238,\n\t\t165, 153, 148, 85, 90, 84, 7, 141, 36, 242, 104, 147, 137,\n\t\t188, 163, 201, 123, 61, 171, 12, 170, 39, 30, 183, 226, 173,\n\t\t36, 1, 215, 8, 59, 181, 122, 141, 219, 153, 201, 248, 195,\n\t\t169, 38, 62, 56, 177, 178, 101, 193, 20, 4, 145, 120, 92,\n\t\t183, 40, 150, 115, 66, 197, 105, 217, 117, 172, 9, 25, 83,\n\t\t43, 251, 218, 241, 167, 99, 57, 150, 34, 91, 41, 70, 177,\n\t\t60, 97, 57, 174, 156, 198, 253, 247, 113, 202, 206, 203, 41,\n\t\t172, 158, 176, 115, 88, 114, 77, 21, 203, 102, 239, 31, 70,\n\t\t158, 209, 251, 229, 188, 205, 12, 9, 99, 213, 116, 177, 148,\n\t\t179, 79, 168, 24, 237, 104, 67, 128, 42, 177, 150, 48, 88,\n\t\t217, 248, 202, 195, 245, 217, 149, 69, 176, 33, 20, 112, 218,\n\t\t241, 236, 75, 246, 28, 106, 89, 66, 54, 84, 139, 150, 74,\n\t\t18, 81, 229, 191, 41, 149, 168, 165, 110, 240, 172, 155, 246,\n\t\t26, 97, 11, 146, 37, 45, 43, 182, 218, 104, 200, 140, 96,\n\t\t41, 213, 104, 168, 182, 178, 44, 50, 123, 47, 142, 142, 46,\n\t\t114, 233, 210, 165, 95, 199, 192, 199, 86, 136, 150, 208,\n\t\t26, 58, 141, 110, 65, 136, 163, 124, 69, 28, 89, 143, 112,\n\t\t172, 48, 97, 196, 236, 64, 39, 10, 44, 92, 23, 21, 164, 181,\n\t\t117, 28, 18, 74, 130, 186, 168, 125, 109, 9, 47, 2, 229, 202,\n\t\t108, 220, 38, 18, 76, 225, 245, 248, 241, 80, 11, 56, 240,\n\t\t107, 179, 3, 31, 86, 8, 232, 142, 53, 59, 105, 185, 189, 255,\n\t\t159, 72, 207, 20, 44, 23, 30, 45, 77, 204, 164, 223, 252,\n\t\t236, 73, 170, 224, 76, 56, 146, 126, 103, 8, 140, 222, 162,\n\t\t97, 109, 69, 129, 244, 173, 144, 198, 33, 200, 84, 225, 25,\n\t\t127, 84, 206, 132, 74, 74, 14, 239, 155, 87, 177, 234, 175,\n\t\t117, 97, 67, 81, 78, 57, 86, 97, 198, 114, 123, 223, 26, 36,\n\t\t65, 83, 232, 201, 103, 223, 156, 158, 201, 20, 221, 41, 60,\n\t\t146, 110, 188, 146, 104, 56, 196, 105, 80, 86, 52, 252, 162,\n\t\t134, 181, 91, 20, 42, 3, 207, 216, 44, 191, 106, 154, 130,\n\t\t58, 127, 95, 40, 167, 20, 59, 63, 246, 28, 139, 104, 17, 157,\n\t\t28, 25, 139, 98, 35, 131, 219, 39, 248, 211, 172, 45, 225,\n\t\t88, 5, 222, 49, 34, 147, 108, 60, 94, 90, 60, 218, 219, 21,\n\t\t73, 202, 18, 160, 202, 212, 148, 172, 2, 201, 74, 146, 82,\n\t\t177, 177, 134, 237, 19, 227, 79, 182, 62, 184, 81, 25, 126,\n\t\t66, 161, 64, 250, 211, 32, 48, 41, 83, 145, 9, 118, 93, 76,\n\t\t228, 74, 70, 98, 160, 20, 101, 185, 216, 251, 219, 145, 231,\n\t\t253, 27, 253, 92, 101, 188, 52, 31, 7, 191, 133, 127, 18,\n\t\t62, 199, 199, 65, 7, 157, 64, 55, 160, 59, 57, 2, 216, 224,\n\t\t217, 43, 113, 147, 235, 181, 122, 173, 19, 6, 52, 8, 11, 176,\n\t\t143, 3, 72, 115, 161, 42, 30, 13, 28, 94, 26, 194, 248, 173,\n\t\t220, 49, 253, 44, 194, 142, 233, 136, 140, 117, 207, 93, 195,\n\t\t129, 128, 207, 241, 167, 166, 1, 81, 78, 61, 100, 76, 0, 46,\n\t\t190, 225, 137, 55, 20, 1, 79, 24, 56, 19, 234, 166, 246, 228,\n\t\t237, 135, 95, 119, 5, 49, 245, 116, 254, 204, 248, 220, 244,\n\t\t149, 241, 203, 96, 172, 239, 182, 7, 195, 193, 229, 223, 114,\n\t\t50, 254, 66, 233, 186, 9, 192, 251, 143, 31, 223, 15, 120,\n\t\t226, 58, 119, 10, 99, 124, 235, 163, 7, 94, 115, 8, 99, 156,\n\t\t191, 227, 242, 179, 85, 225, 175, 198, 231, 102, 142, 249,\n\t\t203, 199, 134, 136, 234, 59, 147, 68, 6, 16, 218, 57, 4, 163,\n\t\t141, 12, 253, 116, 184, 87, 52, 0, 61, 0, 5, 28, 114, 205,\n\t\t121, 17, 31, 130, 78, 139, 203, 101, 205, 195, 176, 142, 223,\n\t\t251, 239, 222, 123, 243, 41, 54, 75, 6, 13, 33, 179, 236,\n\t\t212, 205, 63, 51, 178, 80, 75, 0, 88, 166, 114, 45, 103, 134,\n\t\t174, 150, 2, 221, 151, 0, 91, 24, 176, 110, 195, 231, 222,\n\t\t123, 247, 217, 183, 229, 210, 233, 197, 220, 116, 191, 190,\n\t\t211, 185, 197, 116, 58, 247, 182, 179, 119, 223, 56, 178,\n\t\t148, 127, 24, 131, 140, 187, 185, 170, 238, 78, 152, 135,\n\t\t153, 162, 235, 42, 165, 42, 213, 241, 142, 182, 29, 68, 167,\n\t\t208, 43, 16, 170, 94, 190, 182, 248, 37, 155, 29, 138, 185,\n\t\t45, 25, 254, 245, 168, 83, 75, 164, 239, 14, 84, 47, 219,\n\t\t136, 39, 247, 236, 128, 111, 245, 167, 66, 106, 169, 241,\n\t\t76, 104, 50, 49, 19, 94, 121, 153, 150, 192, 235, 94, 162,\n\t\t43, 142, 12, 102, 74, 213, 86, 198, 230, 73, 177, 238, 254,\n\t\t122, 242, 222, 87, 57, 222, 214, 109, 8, 161, 161, 134, 252,\n\t\t82, 205, 221, 65, 147, 16, 246, 31, 119, 120, 249, 14, 76,\n\t\t116, 233, 127, 187, 103, 163, 183, 119, 209, 41, 232, 79,\n\t\t240, 93, 81, 243, 242, 67, 64, 229, 26, 247, 23, 95, 162,\n\t\t245, 27, 227, 188, 11, 108, 153, 239, 148, 62, 121, 249, 33,\n\t\t177, 139, 35, 98, 223, 30, 28, 17, 59, 219, 78, 107, 36, 228,\n\t\t30, 208, 157, 69, 24, 103, 137, 248, 252, 238, 86, 125, 39,\n\t\t126, 97, 111, 142, 95, 95, 162, 145, 165, 15, 142, 241, 68,\n\t\t80, 194, 212, 209, 234, 190, 42, 126, 9, 59, 157, 58, 209,\n\t\t100, 108, 115, 127, 41, 84, 132, 109, 190, 63, 63, 133, 150,\n\t\t208, 97, 116, 22, 221, 206, 231, 176, 113, 143, 214, 151,\n\t\t190, 110, 85, 127, 196, 242, 194, 151, 206, 236, 35, 54, 239,\n\t\t72, 137, 173, 246, 203, 222, 190, 144, 156, 47, 115, 216,\n\t\t126, 233, 219, 73, 60, 59, 116, 7, 113, 32, 73, 155, 119,\n\t\t122, 253, 133, 63, 228, 122, 103, 155, 126, 88, 249, 205,\n\t\t151, 168, 148, 112, 44, 120, 169, 219, 35, 141, 222, 59, 9,\n\t\t221, 31, 86, 2, 141, 197, 192, 184, 168, 204, 217, 184, 7,\n\t\t181, 228, 144, 64, 130, 187, 97, 148, 173, 169, 211, 194,\n\t\t205, 248, 29, 237, 55, 132, 99, 156, 12, 27, 214, 225, 129,\n\t\t187, 142, 64, 1, 189, 152, 171, 186, 5, 215, 137, 115, 190,\n\t\t254, 251, 31, 144, 248, 102, 194, 35, 55, 172, 110, 174, 242,\n\t\t148, 116, 129, 7, 138, 186, 5, 183, 235, 22, 220, 90, 54,\n\t\t62, 138, 48, 95, 244, 204, 107, 57, 38, 213, 249, 27, 30,\n\t\t89, 221, 92, 21, 201, 215, 142, 97, 25, 77, 161, 19, 8, 69,\n\t\t254, 248, 144, 10, 119, 120, 49, 141, 84, 84, 100, 198, 58,\n\t\t101, 123, 165, 61, 238, 160, 221, 217, 246, 76, 135, 91, 134,\n\t\t77, 239, 121, 94, 215, 248, 234, 111, 127, 255, 3, 82, 187,\n\t\t250, 203, 233, 124, 62, 93, 76, 231, 239, 114, 51, 143, 124,\n\t\t226, 17, 81, 235, 23, 207, 155, 94, 53, 183, 156, 171, 122,\n\t\t31, 241, 204, 126, 26, 54, 159, 121, 237, 47, 84, 219, 28,\n\t\t128, 48, 227, 254, 75, 124, 195, 35, 143, 220, 32, 60, 161,\n\t\t250, 245, 46, 193, 151, 144, 132, 92, 148, 67, 200, 143, 66,\n\t\t218, 103, 7, 174, 71, 245, 90, 123, 133, 163, 160, 212, 163,\n\t\t78, 16, 30, 63, 86, 201, 204, 124, 178, 226, 4, 115, 173,\n\t\t205, 150, 137, 225, 130, 141, 237, 95, 124, 238, 107, 206,\n\t\t156, 83, 60, 113, 172, 2, 78, 229, 147, 179, 46, 53, 91, 155,\n\t\t173, 57, 133, 56, 159, 112, 230, 156, 175, 61, 247, 139, 118,\n\t\t252, 230, 246, 227, 134, 17, 199, 30, 173, 163, 131, 232,\n\t\t36, 58, 135, 110, 71, 247, 161, 55, 112, 22, 191, 88, 232,\n\t\t224, 155, 98, 225, 0, 171, 118, 119, 222, 142, 136, 39, 110,\n\t\t74, 163, 151, 129, 51, 184, 92, 186, 143, 206, 9, 31, 85,\n\t\t114, 115, 20, 52, 234, 88, 120, 144, 186, 127, 143, 188, 79,\n\t\t196, 125, 216, 227, 184, 109, 115, 190, 251, 64, 66, 48, 189,\n\t\t185, 215, 169, 247, 121, 30, 142, 14, 86, 35, 152, 94, 167,\n\t\t250, 158, 167, 174, 103, 94, 136, 255, 214, 197, 92, 213,\n\t\t60, 247, 57, 142, 150, 176, 251, 7, 186, 60, 176, 61, 233,\n\t\t179, 46, 199, 69, 61, 196, 61, 135, 95, 143, 222, 128, 30,\n\t\t67, 239, 71, 8, 42, 238, 32, 158, 111, 39, 129, 135, 8, 45,\n\t\t29, 13, 22, 83, 118, 99, 94, 140, 93, 215, 119, 114, 132,\n\t\t140, 23, 109, 133, 173, 120, 84, 86, 119, 109, 222, 141, 95,\n\t\t227, 101, 17, 93, 35, 124, 235, 56, 81, 145, 200, 192, 69,\n\t\t202, 88, 239, 235, 170, 82, 83, 212, 29, 135, 173, 97, 178,\n\t\t53, 200, 111, 109, 115, 30, 159, 189, 202, 195, 86, 2, 107,\n\t\t43, 54, 140, 18, 0, 184, 161, 51, 223, 194, 160, 244, 107,\n\t\t6, 169, 87, 14, 82, 31, 28, 249, 226, 198, 234, 234, 107,\n\t\t246, 40, 140, 198, 184, 110, 3, 84, 64, 17, 58, 142, 174,\n\t\t141, 71, 233, 144, 205, 123, 132, 228, 91, 233, 76, 65, 165,\n\t\t92, 239, 140, 18, 127, 47, 194, 24, 75, 120, 1, 166, 120,\n\t\t152, 229, 18, 52, 71, 66, 49, 150, 0, 126, 109, 77, 93, 86,\n\t\t27, 156, 236, 187, 247, 167, 211, 19, 15, 222, 252, 204, 214,\n\t\t45, 240, 239, 57, 47, 184, 83, 240, 39, 213, 101, 245, 179,\n\t\t170, 231, 144, 55, 222, 28, 31, 31, 6, 184, 65, 179, 44, 205,\n\t\t53, 243, 234, 27, 65, 79, 232, 189, 243, 125, 190, 239, 15,\n\t\t145, 220, 59, 54, 86, 161, 148, 48, 132, 103, 150, 234, 230,\n\t\t128, 34, 156, 104, 228, 221, 241, 175, 165, 157, 215, 44,\n\t\t147, 189, 123, 247, 58, 207, 209, 42, 6, 246, 248, 190, 40,\n\t\t179, 82, 23, 46, 66, 177, 88, 199, 183, 188, 210, 201, 57,\n\t\t136, 214, 241, 152, 113, 94, 200, 172, 207, 86, 42, 110, 217,\n\t\t39, 18, 113, 125, 223, 85, 148, 248, 72, 36, 50, 53, 163,\n\t\t143, 26, 233, 133, 108, 250, 111, 3, 203, 10, 52, 207, 2,\n\t\t48, 37, 202, 50, 140, 98, 29, 83, 150, 85, 85, 108, 1, 206,\n\t\t253, 107, 97, 181, 31, 183, 231, 180, 199, 244, 178, 160,\n\t\t211, 30, 211, 58, 94, 170, 174, 16, 197, 165, 113, 101, 80,\n\t\t60, 20, 181, 254, 15, 146, 129, 43, 92, 175, 96, 102, 205,\n\t\t188, 231, 50, 181, 63, 34, 25, 144, 202, 24, 94, 191, 92,\n\t\t210, 142, 51, 99, 170, 195, 175, 188, 100, 123, 62, 75, 100,\n\t\t154, 46, 165, 250, 133, 209, 192, 230, 243, 143, 240, 57,\n\t\t148, 226, 172, 104, 87, 163, 87, 245, 121, 67, 57, 213, 163,\n\t\t32, 243, 236, 4, 52, 240, 71, 192, 105, 107, 149, 88, 194,\n\t\t170, 141, 63, 32, 60, 104, 52, 183, 134, 244, 27, 61, 212,\n\t\t206, 164, 100, 79, 5, 254, 142, 186, 169, 115, 154, 20, 74,\n\t\t52, 101, 184, 121, 89, 82, 157, 169, 127, 29, 46, 173, 112,\n\t\t51, 142, 171, 171, 254, 245, 161, 123, 129, 63, 171, 15, 86,\n\t\t42, 154, 151, 115, 136, 76, 227, 110, 144, 97, 216, 27, 142,\n\t\t166, 215, 117, 70, 45, 33, 214, 153, 89, 15, 131, 189, 152,\n\t\t42, 41, 1, 102, 231, 140, 208, 193, 216, 115, 24, 86, 108,\n\t\t253, 122, 97, 25, 189, 123, 113, 94, 170, 226, 74, 254, 209,\n\t\t225, 83, 87, 45, 83, 221, 187, 155, 190, 204, 24, 235, 51,\n\t\t133, 105, 105, 131, 169, 187, 198, 105, 136, 170, 151, 183,\n\t\t123, 134, 92, 233, 172, 148, 202, 177, 52, 218, 218, 195,\n\t\t236, 185, 26, 93, 27, 79, 234, 189, 191, 166, 26, 208, 107,\n\t\t163, 228, 65, 210, 17, 101, 233, 7, 167, 58, 84, 215, 105,\n\t\t231, 212, 14, 251, 212, 34, 90, 27, 181, 237, 140, 106, 190,\n\t\t73, 223, 142, 152, 222, 226, 28, 101, 80, 145, 120, 102, 76,\n\t\t234, 226, 128, 57, 212, 96, 43, 158, 49, 145, 250, 216, 72,\n\t\t14, 183, 183, 81, 99, 34, 5, 147, 35, 149, 116, 162, 107,\n\t\t147, 122, 118, 70, 109, 138, 169, 82, 122, 135, 81, 49, 85,\n\t\t250, 113, 81, 245, 83, 255, 167, 118, 169, 61, 235, 124, 89,\n\t\t187, 20, 76, 237, 89, 75, 247, 37, 44, 83, 255, 166, 95, 193,\n\t\t93, 246, 191, 18, 90, 186, 76, 255, 198, 111, 237, 224, 1,\n\t\t239, 85, 65, 67, 232, 21, 6, 35, 54, 96, 47, 107, 166, 171,\n\t\t183, 240, 135, 249, 181, 61, 171, 215, 86, 25, 225, 163, 140,\n\t\t169, 70, 90, 155, 200, 243, 167, 254, 232, 72, 189, 70, 241,\n\t\t26, 60, 116, 4, 93, 133, 54, 70, 24, 182, 252, 42, 95, 112,\n\t\t91, 205, 192, 31, 72, 224, 227, 164, 108, 34, 53, 230, 164,\n\t\t204, 93, 151, 253, 74, 2, 51, 225, 211, 118, 197, 23, 212,\n\t\t47, 177, 20, 92, 44, 154, 30, 247, 193, 61, 39, 229, 27, 121,\n\t\t233, 55, 249, 241, 92, 2, 66, 190, 73, 25, 108, 110, 231,\n\t\t211, 155, 233, 252, 242, 230, 22, 103, 130, 185, 88, 52, 189,\n\t\t139, 177, 214, 193, 151, 59, 85, 141, 101, 64, 85, 237, 159,\n\t\t7, 196, 127, 140, 246, 158, 130, 226, 69, 112, 226, 252, 229,\n\t\t229, 229, 132, 187, 168, 203, 121, 240, 51, 168, 146, 244,\n\t\t183, 159, 230, 138, 109, 123, 133, 70, 65, 232, 83, 18, 171,\n\t\t172, 43, 29, 110, 193, 247, 235, 237, 32, 172, 118, 248, 178,\n\t\t102, 129, 13, 238, 95, 220, 115, 250, 33, 197, 82, 30, 250,\n\t\t231, 63, 78, 173, 119, 203, 42, 145, 141, 222, 188, 93, 202,\n\t\t110, 103, 75, 176, 68, 24, 85, 52, 229, 167, 97, 251, 244,\n\t\t202, 250, 227, 132, 60, 190, 190, 242, 207, 151, 131, 204,\n\t\t119, 14, 227, 88, 117, 253, 223, 44, 245, 164, 219, 168, 126,\n\t\t175, 251, 203, 213, 198, 47, 99, 73, 37, 255, 155, 24, 26,\n\t\t94, 133, 98, 191, 191, 251, 245, 242, 80, 9, 205, 161, 104,\n\t\t188, 102, 3, 59, 202, 203, 175, 225, 235, 203, 153, 76, 57,\n\t\t243, 223, 94, 86, 61, 111, 203, 196, 133, 175, 124, 89, 181,\n\t\t197, 156, 63, 80, 216, 82, 139, 130, 87, 51, 126, 247, 107,\n\t\t209, 58, 32, 225, 205, 83, 79, 16, 168, 68, 188, 198, 109,\n\t\t103, 182, 206, 148, 31, 90, 50, 28, 80, 34, 120, 79, 59, 247,\n\t\t241, 173, 59, 188, 27, 13, 61, 212, 245, 215, 234, 37, 163,\n\t\t234, 231, 62, 26, 23, 136, 20, 112, 140, 165, 135, 224, 120,\n\t\t251, 76, 92, 34, 125, 163, 30, 151, 184, 199, 48, 166, 253,\n\t\t156, 136, 45, 220, 198, 82, 50, 30, 57, 106, 191, 71, 104,\n\t\t34, 26, 87, 155, 129, 13, 181, 122, 212, 105, 145, 193, 142,\n\t\t234, 158, 150, 200, 139, 135, 151, 30, 32, 76, 123, 32, 165,\n\t\t193, 43, 52, 70, 30, 88, 58, 124, 133, 150, 250, 237, 247,\n\t\t221, 125, 247, 251, 238, 6, 83, 81, 232, 202, 132, 100, 73,\n\t\t19, 43, 84, 81, 106, 12, 12, 178, 180, 68, 12, 96, 112, 72,\n\t\t155, 251, 89, 213, 117, 28, 87, 253, 217, 57, 237, 13, 206,\n\t\t133, 187, 227, 15, 116, 20, 19, 212, 37, 74, 151, 84, 48,\n\t\t149, 234, 10, 101, 82, 38, 35, 49, 186, 130, 198, 247, 121,\n\t\t57, 58, 245, 78, 137, 34, 216, 67, 104, 248, 165, 221, 194,\n\t\t129, 183, 71, 204, 110, 60, 71, 180, 118, 199, 236, 14, 94,\n\t\t57, 50, 226, 185, 48, 150, 239, 39, 223, 118, 83, 109, 165,\n\t\t86, 198, 94, 214, 195, 229, 139, 220, 119, 225, 241, 193,\n\t\t117, 127, 199, 59, 91, 171, 101, 107, 41, 130, 77, 30, 127,\n\t\t155, 250, 86, 177, 120, 126, 44, 163, 150, 29, 250, 73, 125,\n\t\t141, 115, 129, 206, 238, 129, 89, 235, 149, 188, 142, 8, 18,\n\t\t161, 59, 4, 102, 224, 202, 98, 79, 208, 53, 184, 83, 151,\n\t\t208, 20, 168, 87, 235, 250, 213, 234, 178, 170, 156, 136,\n\t\t5, 208, 19, 138, 58, 130, 71, 251, 202, 222, 87, 225, 160,\n\t\t161, 94, 101, 24, 87, 169, 255, 121, 84, 64, 21, 126, 223,\n\t\t98, 76, 204, 33, 4, 180, 194, 195, 157, 10, 64, 251, 115,\n\t\t82, 154, 111, 196, 113, 57, 51, 234, 68, 139, 3, 254, 132,\n\t\t22, 124, 239, 206, 103, 126, 151, 25, 140, 186, 10, 103, 170,\n\t\t118, 142, 117, 210, 10, 104, 244, 34, 213, 64, 73, 119, 142,\n\t\t9, 212, 136, 199, 94, 253, 33, 42, 171, 211, 130, 101, 116,\n\t\t237, 85, 126, 174, 72, 13, 131, 22, 115, 254, 171, 214, 146,\n\t\t144, 153, 145, 152, 13, 27, 45, 35, 52, 198, 80, 209, 12,\n\t\t252, 129, 61, 193, 223, 97, 88, 16, 222, 143, 157, 54, 7,\n\t\t133, 227, 234, 56, 108, 154, 94, 49, 87, 93, 109, 92, 24,\n\t\t24, 16, 170, 185, 11, 166, 7, 60, 201, 13, 17, 197, 106, 174,\n\t\t219, 88, 45, 14, 33, 181, 138, 185, 170, 103, 238, 136, 47,\n\t\t118, 208, 4, 223, 61, 219, 143, 142, 196, 250, 183, 215, 137,\n\t\t136, 13, 173, 32, 172, 133, 139, 80, 111, 89, 80, 95, 135,\n\t\t168, 128, 167, 160, 19, 181, 136, 183, 51, 156, 163, 153,\n\t\t0, 159, 165, 131, 129, 235, 75, 20, 132, 149, 218, 219, 135,\n\t\t177, 197, 212, 134, 69, 176, 11, 73, 64, 113, 202, 192, 117,\n\t\t245, 222, 184, 58, 61, 174, 208, 193, 48, 42, 241, 32, 143,\n\t\t45, 126, 110, 65, 173, 99, 112, 6, 161, 197, 116, 182, 80,\n\t\t152, 189, 39, 137, 40, 190, 107, 114, 102, 31, 128, 192, 41,\n\t\t168, 230, 96, 43, 87, 237, 37, 4, 135, 155, 60, 178, 248,\n\t\t167, 252, 125, 51, 253, 62, 166, 240, 187, 40, 68, 133, 132,\n\t\t199, 55, 158, 101, 68, 236, 21, 223, 232, 167, 245, 168, 3,\n\t\t29, 174, 160, 159, 189, 254, 213, 37, 197, 254, 148, 114,\n\t\t43, 31, 175, 89, 15, 223, 170, 28, 84, 96, 95, 229, 214, 96,\n\t\t250, 107, 119, 124, 188, 244, 234, 235, 109, 229, 160, 114,\n\t\t107, 60, 226, 227, 193, 124, 171, 242, 41, 27, 228, 122, 225,\n\t\t250, 198, 103, 239, 24, 198, 18, 196, 115, 91, 30, 213, 16,\n\t\t242, 34, 62, 183, 41, 59, 190, 204, 91, 151, 135, 126, 139,\n\t\t239, 122, 102, 107, 78, 158, 48, 123, 223, 182, 159, 214,\n\t\t116, 78, 131, 160, 60, 109, 223, 138, 169, 170, 233, 240,\n\t\t128, 101, 237, 223, 218, 111, 53, 44, 104, 207, 109, 61, 99,\n\t\t101, 148, 91, 237, 167, 21, 110, 128, 208, 181, 167, 109,\n\t\t152, 80, 116, 198, 200, 81, 171, 193, 75, 89, 60, 126, 169,\n\t\t63, 183, 166, 56, 34, 64, 135, 179, 179, 38, 161, 111, 52,\n\t\t97, 55, 23, 128, 33, 60, 12, 174, 30, 2, 119, 158, 26, 56,\n\t\t7, 14, 192, 63, 94, 127, 39, 99, 183, 176, 28, 43, 175, 19,\n\t\t162, 99, 138, 215, 231, 123, 139, 15, 46, 90, 13, 107, 193,\n\t\t250, 141, 7, 123, 127, 112, 159, 238, 96, 15, 254, 76, 148,\n\t\t185, 243, 157, 243, 235, 28, 242, 98, 253, 119, 239, 100,\n\t\t57, 118, 11, 99, 229, 117, 133, 232, 24, 175, 207, 167, 226,\n\t\t15, 89, 11, 86, 163, 240, 96, 239, 15, 60, 236, 232, 247,\n\t\t25, 162, 196, 107, 30, 159, 95, 231, 136, 23, 235, 104, 132,\n\t\t99, 226, 203, 200, 70, 139, 187, 103, 3, 142, 243, 202, 3,\n\t\t198, 112, 61, 57, 7, 28, 10, 176, 94, 173, 213, 71, 161, 212,\n\t\t39, 77, 83, 173, 171, 82, 254, 174, 101, 83, 61, 194, 164,\n\t\t59, 239, 152, 203, 79, 154, 141, 218, 92, 239, 162, 165, 15,\n\t\t231, 132, 191, 214, 205, 215, 48, 134, 117, 172, 30, 203,\n\t\t255, 75, 85, 151, 92, 137, 109, 231, 244, 201, 194, 62, 93,\n\t\t55, 174, 145, 181, 132, 251, 121, 27, 191, 11, 126, 14, 217,\n\t\t177, 220, 183, 171, 62, 34, 196, 37, 94, 158, 234, 3, 135,\n\t\t34, 30, 89, 78, 9, 85, 226, 215, 116, 180, 82, 71, 174, 86,\n\t\t36, 181, 33, 171, 242, 169, 123, 62, 66, 100, 245, 136, 44,\n\t\t19, 249, 191, 188, 122, 110, 110, 113, 34, 19, 206, 247, 254,\n\t\t216, 114, 222, 110, 15, 235, 118, 223, 57, 146, 146, 211,\n\t\t24, 79, 175, 220, 65, 83, 114, 9, 75, 215, 53, 3, 73, 218,\n\t\t87, 159, 14, 62, 64, 69, 63, 253, 39, 120, 39, 92, 224, 248,\n\t\t74, 168, 154, 240, 129, 36, 235, 101, 189, 178, 3, 140, 139,\n\t\t211, 135, 112, 208, 70, 90, 245, 69, 168, 33, 44, 92, 195,\n\t\t189, 39, 175, 185, 134, 123, 69, 94, 179, 213, 71, 156, 127,\n\t\t170, 177, 186, 60, 125, 189, 200, 237, 125, 85, 196, 152,\n\t\t38, 101, 146, 79, 108, 113, 107, 1, 32, 202, 86, 27, 211,\n\t\t29, 229, 122, 145, 253, 233, 174, 151, 245, 198, 101, 209,\n\t\t28, 231, 85, 61, 61, 216, 227, 233, 199, 210, 148, 251, 49,\n\t\t52, 139, 208, 94, 25, 40, 85, 125, 3, 248, 32, 252, 105, 60,\n\t\t91, 184, 30, 29, 137, 152, 197, 22, 239, 92, 100, 22, 139,\n\t\t142, 252, 242, 110, 214, 228, 253, 28, 150, 227, 55, 233,\n\t\t142, 108, 131, 17, 248, 220, 123, 239, 62, 250, 96, 233, 51,\n\t\t113, 221, 191, 234, 121, 95, 141, 207, 159, 41, 61, 120, 244,\n\t\t238, 147, 59, 232, 148, 191, 206, 173, 250, 79, 73, 99, 166,\n\t\t126, 70, 18, 29, 179, 191, 30, 231, 80, 37, 30, 161, 59, 181,\n\t\t39, 194, 215, 203, 90, 153, 18, 127, 16, 6, 40, 80, 47, 42,\n\t\t229, 116, 171, 57, 166, 70, 253, 89, 226, 68, 32, 162, 254,\n\t\t126, 155, 120, 138, 178, 112, 194, 113, 162, 49, 15, 146,\n\t\t63, 30, 184, 8, 124, 128, 95, 127, 146, 147, 61, 23, 199,\n\t\t176, 89, 39, 121, 108, 217, 2, 106, 163, 253, 67, 228, 116,\n\t\t190, 98, 87, 196, 113, 0, 247, 16, 42, 173, 118, 165, 31,\n\t\t181, 28, 181, 43, 3, 182, 154, 122, 171, 94, 193, 15, 235,\n\t\t158, 89, 92, 221, 88, 221, 90, 221, 88, 229, 17, 200, 240,\n\t\t139, 129, 213, 187, 110, 115, 243, 42, 222, 171, 47, 108,\n\t\t254, 5, 63, 47, 191, 111, 227, 232, 119, 77, 247, 1, 211,\n\t\t107, 172, 174, 54, 226, 95, 207, 132, 162, 233, 185, 239,\n\t\t217, 236, 61, 207, 225, 76, 190, 177, 185, 249, 98, 146, 64,\n\t\t8, 46, 253, 47, 142, 37, 240, 24, 58, 212, 143, 198, 182,\n\t\t160, 98, 73, 73, 16, 50, 15, 70, 174, 9, 154, 40, 34, 208,\n\t\t87, 58, 5, 108, 67, 172, 180, 23, 32, 77, 73, 1, 90, 205,\n\t\t104, 29, 227, 7, 168, 38, 83, 217, 154, 41, 55, 180, 99, 149,\n\t\t185, 48, 163, 92, 253, 184, 102, 122, 142, 114, 7, 205, 88,\n\t\t7, 136, 41, 165, 84, 51, 202, 31, 168, 121, 230, 236, 153,\n\t\t211, 190, 231, 203, 32, 97, 93, 15, 58, 218, 21, 135, 32,\n\t\t22, 239, 101, 170, 128, 155, 158, 144, 11, 153, 252, 234,\n\t\t161, 119, 178, 130, 245, 61, 203, 87, 235, 178, 68, 114, 38,\n\t\t171, 186, 74, 165, 53, 121, 207, 201, 14, 128, 87, 114, 213,\n\t\t84, 168, 79, 40, 245, 236, 14, 189, 42, 135, 234, 163, 62,\n\t\t48, 225, 14, 45, 149, 132, 195, 125, 45, 177, 169, 179, 219,\n\t\t68, 114, 126, 151, 130, 234, 85, 254, 23, 39, 248, 174, 104,\n\t\t25, 109, 225, 167, 91, 113, 254, 30, 214, 145, 19, 59, 180,\n\t\t211, 153, 15, 25, 105, 99, 118, 214, 72, 27, 157, 79, 40,\n\t\t210, 14, 99, 136, 58, 224, 85, 77, 163, 6, 154, 71, 203, 104,\n\t\t5, 173, 162, 53, 212, 29, 199, 46, 17, 6, 255, 118, 203, 247,\n\t\t82, 220, 217, 152, 115, 24, 120, 235, 56, 22, 56, 20, 218,\n\t\t170, 75, 81, 133, 30, 134, 10, 13, 91, 245, 74, 20, 182, 234,\n\t\t82, 171, 94, 129, 231, 147, 101, 89, 86, 229, 229, 173, 175,\n\t\t71, 204, 102, 63, 248, 178, 229, 69, 192, 44, 21, 126, 223,\n\t\t72, 245, 190, 160, 253, 180, 246, 21, 253, 94, 239, 237, 218,\n\t\t166, 251, 196, 39, 244, 167, 63, 167, 221, 237, 158, 120,\n\t\t200, 187, 183, 15, 26, 32, 83, 165, 88, 132, 143, 247, 190,\n\t\t128, 153, 197, 60, 83, 130, 163, 170, 65, 237, 125, 155, 155,\n\t\t151, 208, 249, 243, 23, 54, 55, 47, 156, 127, 138, 167, 209,\n\t\t128, 143, 225, 8, 252, 75, 84, 64, 243, 241, 200, 241, 211,\n\t\t22, 142, 123, 120, 81, 106, 175, 112, 106, 230, 32, 236, 68,\n\t\t235, 146, 82, 171, 215, 234, 28, 212, 35, 36, 148, 224, 85,\n\t\t149, 216, 245, 201, 115, 223, 62, 55, 89, 183, 137, 234, 212,\n\t\t15, 31, 207, 207, 133, 225, 92, 254, 248, 225, 122, 239, 239,\n\t\t189, 108, 182, 148, 61, 161, 170, 39, 51, 229, 108, 6, 144,\n\t\t106, 87, 15, 30, 206, 92, 123, 109, 230, 240, 193, 170, 173,\n\t\t42, 246, 116, 174, 190, 186, 90, 207, 77, 219, 202, 3, 147,\n\t\t97, 198, 123, 224, 16, 165, 135, 30, 240, 178, 1, 130, 75,\n\t\t127, 123, 233, 15, 176, 4, 255, 10, 149, 19, 28, 115, 146,\n\t\t64, 24, 197, 131, 86, 248, 83, 118, 132, 155, 13, 119, 163,\n\t\t132, 63, 172, 146, 242, 122, 30, 43, 210, 169, 66, 39, 83,\n\t\t60, 81, 107, 57, 121, 51, 85, 243, 103, 234, 167, 74, 254,\n\t\t98, 230, 42, 230, 208, 169, 127, 52, 142, 165, 166, 236, 252,\n\t\t122, 57, 27, 54, 60, 106, 179, 149, 169, 253, 217, 137, 149,\n\t\t201, 253, 18, 193, 193, 82, 214, 46, 29, 202, 233, 66, 38,\n\t\t27, 96, 212, 149, 18, 22, 243, 35, 232, 74, 116, 45, 66, 158,\n\t\t95, 17, 242, 95, 1, 146, 49, 185, 131, 161, 116, 192, 50,\n\t\t211, 183, 211, 147, 203, 249, 43, 39, 231, 139, 91, 92, 100,\n\t\t252, 155, 172, 240, 162, 91, 21, 251, 113, 171, 141, 41, 1,\n\t\t129, 248, 17, 158, 255, 36, 63, 94, 205, 143, 227, 20, 47,\n\t\t155, 241, 106, 33, 144, 114, 205, 213, 6, 215, 202, 47, 54,\n\t\t86, 47, 33, 14, 136, 8, 46, 191, 209, 226, 199, 55, 140, 104,\n\t\t38, 125, 54, 158, 190, 12, 252, 53, 36, 197, 154, 64, 216,\n\t\t46, 249, 210, 174, 61, 10, 78, 174, 91, 107, 175, 8, 244,\n\t\t22, 42, 12, 234, 69, 216, 238, 198, 149, 141, 229, 191, 213,\n\t\t198, 49, 195, 13, 217, 241, 133, 201, 57, 162, 216, 190, 107,\n\t\t116, 187, 93, 64, 171, 13, 129, 168, 208, 88, 117, 13, 104,\n\t\t52, 61, 127, 254, 128, 170, 204, 77, 22, 243, 179, 211, 154,\n\t\t225, 246, 227, 245, 39, 97, 27, 229, 57, 231, 77, 252, 132,\n\t\t195, 128, 84, 56, 144, 44, 159, 158, 226, 245, 29, 119, 154,\n\t\t83, 56, 90, 146, 220, 41, 88, 2, 248, 129, 103, 218, 247,\n\t\t102, 164, 180, 165, 210, 199, 30, 163, 170, 149, 150, 50,\n\t\t247, 218, 166, 247, 254, 35, 172, 193, 142, 100, 174, 123,\n\t\t40, 163, 183, 130, 187, 60, 25, 210, 184, 102, 221, 253, 62,\n\t\t59, 144, 143, 31, 151, 3, 251, 125, 119, 91, 53, 201, 127,\n\t\t71, 42, 245, 142, 247, 94, 235, 200, 225, 221, 189, 175, 24,\n\t\t157, 135, 50, 227, 113, 63, 21, 180, 132, 14, 114, 92, 219,\n\t\t129, 220, 223, 127, 105, 135, 176, 21, 125, 29, 68, 185, 12,\n\t\t170, 109, 189, 63, 58, 120, 68, 137, 32, 148, 115, 70, 64,\n\t\t188, 184, 45, 3, 156, 81, 36, 219, 231, 151, 133, 113, 4,\n\t\t138, 156, 146, 106, 20, 226, 139, 103, 252, 225, 8, 122, 237,\n\t\t139, 27, 2, 240, 107, 227, 165, 56, 209, 250, 190, 232, 253,\n\t\t85, 102, 47, 31, 244, 99, 124, 95, 254, 177, 81, 189, 85,\n\t\t120, 158, 191, 200, 215, 225, 119, 247, 93, 206, 19, 190,\n\t\t246, 75, 176, 141, 12, 148, 225, 156, 94, 241, 188, 54, 228,\n\t\t159, 89, 135, 195, 56, 22, 95, 87, 58, 109, 55, 22, 168, 235,\n\t\t46, 95, 252, 220, 228, 21, 25, 129, 241, 224, 254, 167, 240,\n\t\t39, 92, 221, 248, 6, 40, 240, 171, 135, 25, 251, 6, 156, 97,\n\t\t57, 246, 193, 253, 103, 87, 61, 115, 75, 181, 217, 189, 220,\n\t\t187, 96, 181, 219, 237, 10, 8, 98, 144, 224, 243, 31, 98,\n\t\t57, 246, 77, 32, 24, 212, 51, 154, 182, 208, 219, 138, 151,\n\t\t62, 216, 50, 61, 102, 245, 110, 231, 206, 3, 191, 216, 237,\n\t\t110, 113, 210, 134, 62, 103, 196, 61, 104, 10, 93, 143, 126,\n\t\t12, 161, 168, 86, 143, 132, 30, 91, 232, 207, 27, 241, 108,\n\t\t85, 174, 199, 122, 18, 37, 229, 33, 243, 113, 31, 168, 113,\n\t\t100, 183, 51, 18, 59, 119, 59, 207, 173, 62, 69, 234, 23,\n\t\t41, 59, 174, 59, 27, 141, 125, 119, 122, 129, 90, 246, 238,\n\t\t164, 36, 245, 96, 46, 212, 150, 181, 204, 164, 51, 153, 209,\n\t\t150, 225, 89, 254, 12, 15, 212, 106, 255, 140, 255, 28, 16,\n\t\t207, 180, 234, 217, 174, 227, 218, 222, 233, 29, 231, 106,\n\t\t111, 31, 127, 223, 223, 69, 149, 59, 28, 125, 255, 164, 22,\n\t\t200, 229, 90, 32, 7, 32, 155, 27, 216, 103, 44, 12, 89, 145,\n\t\t15, 161, 34, 255, 199, 147, 41, 203, 74, 245, 127, 55, 249,\n\t\t251, 158, 96, 146, 197, 242, 201, 10, 186, 119, 20, 53, 250,\n\t\t71, 104, 97, 181, 204, 131, 250, 58, 99, 235, 22, 23, 29,\n\t\t91, 123, 230, 198, 194, 68, 187, 34, 132, 238, 31, 161, 189,\n\t\t91, 19, 154, 229, 112, 116, 174, 34, 101, 94, 214, 219, 30,\n\t\t73, 59, 150, 54, 177, 253, 146, 237, 45, 50, 147, 252, 89,\n\t\t60, 22, 196, 215, 112, 137, 121, 115, 252, 250, 207, 21, 147,\n\t\t109, 14, 248, 139, 223, 9, 95, 67, 19, 168, 184, 131, 119,\n\t\t161, 195, 1, 87, 36, 63, 77, 171, 43, 145, 18, 207, 58, 227,\n\t\t4, 10, 159, 111, 120, 116, 129, 56, 157, 249, 18, 244, 126,\n\t\t206, 3, 183, 121, 244, 202, 187, 199, 104, 18, 222, 187, 222,\n\t\t13, 130, 149, 219, 59, 87, 214, 136, 238, 54, 106, 255, 113,\n\t\t225, 158, 93, 182, 235, 230, 203, 179, 93, 7, 177, 212, 93,\n\t\t224, 81, 88, 65, 167, 94, 251, 97, 198, 235, 79, 93, 119,\n\t\t181, 2, 10, 147, 103, 222, 62, 67, 117, 80, 94, 134, 87, 229,\n\t\t214, 250, 2, 209, 21, 236, 186, 146, 169, 45, 112, 220, 154,\n\t\t191, 187, 180, 13, 191, 3, 95, 23, 136, 165, 148, 8, 0, 62,\n\t\t177, 207, 183, 8, 101, 126, 85, 142, 165, 195, 122, 45, 65,\n\t\t242, 138, 43, 31, 117, 150, 226, 110, 11, 11, 0, 191, 102,\n\t\t87, 11, 68, 53, 85, 236, 106, 212, 96, 184, 44, 7, 249, 64,\n\t\t46, 75, 142, 239, 98, 213, 84, 73, 161, 106, 171, 205, 114,\n\t\t177, 114, 39, 49, 37, 102, 78, 106, 176, 60, 83, 110, 194,\n\t\t230, 250, 190, 198, 177, 115, 251, 203, 186, 73, 52, 250,\n\t\t83, 102, 42, 101, 254, 148, 102, 154, 122, 121, 255, 185,\n\t\t99, 141, 230, 161, 114, 75, 101, 94, 87, 150, 20, 75, 245,\n\t\t100, 168, 232, 106, 43, 137, 95, 124, 59, 252, 6, 143, 21,\n\t\t158, 140, 117, 66, 143, 243, 190, 134, 22, 208, 112, 29, 132,\n\t\t221, 40, 42, 0, 77, 147, 37, 232, 212, 107, 222, 206, 21,\n\t\t44, 10, 233, 27, 168, 162, 44, 188, 227, 100, 253, 202, 220,\n\t\t84, 105, 115, 206, 212, 22, 39, 114, 149, 3, 135, 177, 165,\n\t\t222, 149, 83, 229, 73, 58, 128, 133, 251, 238, 149, 107, 71,\n\t\t32, 146, 28, 178, 122, 80, 10, 111, 57, 164, 95, 117, 187,\n\t\t236, 190, 239, 149, 223, 152, 127, 251, 41, 149, 73, 213,\n\t\t91, 79, 23, 122, 79, 15, 245, 197, 223, 10, 62, 61, 134, 47,\n\t\t186, 132, 90, 40, 226, 108, 191, 55, 10, 123, 210, 136, 233,\n\t\t40, 86, 11, 134, 38, 164, 17, 195, 122, 171, 111, 84, 247,\n\t\t91, 237, 146, 223, 106, 187, 237, 138, 95, 106, 87, 252, 100,\n\t\t181, 17, 139, 143, 207, 183, 202, 91, 156, 191, 1, 121, 102,\n\t\t98, 86, 218, 78, 140, 75, 99, 151, 155, 197, 222, 86, 177,\n\t\t8, 91, 197, 4, 20, 73, 156, 160, 123, 153, 226, 226, 146,\n\t\t191, 100, 241, 231, 138, 197, 205, 225, 135, 138, 156, 25,\n\t\t64, 172, 211, 10, 95, 167, 167, 249, 14, 95, 220, 179, 145,\n\t\t23, 139, 178, 181, 1, 231, 54, 21, 158, 149, 253, 160, 171,\n\t\t30, 157, 156, 232, 109, 78, 76, 210, 43, 37, 87, 95, 35, 28,\n\t\t227, 140, 172, 169, 6, 195, 95, 230, 11, 13, 206, 204, 204,\n\t\t100, 96, 218, 176, 28, 167, 177, 154, 157, 207, 218, 46, 49,\n\t\t212, 236, 96, 221, 225, 223, 9, 85, 216, 70, 133, 88, 250,\n\t\t11, 199, 2, 157, 22, 225, 112, 223, 115, 198, 15, 3, 66, 125,\n\t\t137, 182, 234, 127, 232, 134, 234, 11, 106, 232, 54, 86, 186,\n\t\t138, 35, 83, 249, 34, 97, 142, 210, 93, 121, 136, 126, 154,\n\t\t38, 152, 61, 15, 27, 55, 70, 159, 86, 136, 172, 210, 79, 71,\n\t\t55, 26, 15, 195, 133, 141, 13, 36, 93, 250, 199, 75, 219,\n\t\t240, 14, 254, 236, 34, 129, 56, 51, 232, 237, 209, 17, 212,\n\t\t230, 242, 72, 37, 97, 241, 239, 211, 108, 146, 185, 1, 144,\n\t\t134, 87, 241, 91, 240, 19, 204, 176, 222, 45, 44, 164, 124,\n\t\t48, 157, 127, 183, 101, 176, 219, 246, 233, 26, 125, 136,\n\t\t228, 27, 121, 242, 16, 213, 244, 125, 55, 8, 35, 217, 197,\n\t\t139, 143, 106, 126, 113, 72, 193, 81, 244, 181, 87, 121, 236,\n\t\t109, 186, 30, 175, 240, 186, 254, 54, 230, 109, 115, 115,\n\t\t90, 239, 205, 69, 222, 31, 255, 120, 233, 215, 225, 55, 56,\n\t\t30, 98, 91, 240, 164, 9, 186, 239, 88, 157, 43, 39, 72, 83,\n\t\t181, 62, 208, 94, 216, 137, 58, 245, 248, 102, 63, 171, 53,\n\t\t21, 43, 117, 112, 123, 61, 19, 168, 84, 53, 166, 231, 142,\n\t\t56, 28, 46, 203, 57, 50, 55, 109, 168, 84, 13, 50, 245, 137,\n\t\t217, 233, 76, 102, 122, 118, 202, 10, 29, 207, 198, 88, 246,\n\t\t120, 2, 20, 2, 135, 105, 101, 106, 105, 110, 238, 228, 242,\n\t\t1, 77, 85, 181, 3, 203, 39, 231, 230, 150, 166, 42, 84, 214,\n\t\t53, 203, 210, 244, 170, 73, 20, 176, 82, 211, 94, 124, 182,\n\t\t61, 39, 68, 236, 210, 95, 92, 218, 134, 111, 192, 54, 143,\n\t\t93, 105, 160, 37, 30, 71, 127, 26, 221, 128, 110, 139, 251,\n\t\t151, 18, 190, 16, 213, 107, 81, 45, 234, 132, 157, 102, 216,\n\t\t9, 3, 37, 136, 226, 73, 134, 68, 157, 104, 22, 42, 101, 74,\n\t\t194, 117, 40, 211, 184, 29, 184, 25, 213, 234, 132, 70, 157,\n\t\t248, 54, 37, 113, 219, 66, 222, 54, 26, 212, 59, 177, 130,\n\t\t47, 176, 182, 250, 66, 54, 124, 36, 42, 76, 222, 56, 253,\n\t\t150, 233, 27, 39, 11, 209, 48, 217, 187, 143, 86, 101, 73,\n\t\t215, 131, 121, 73, 6, 25, 166, 40, 13, 244, 103, 138, 41,\n\t\t39, 149, 114, 154, 226, 180, 41, 73, 147, 165, 210, 36, 63,\n\t\t110, 209, 64, 215, 37, 185, 170, 6, 148, 78, 1, 198, 32, 75,\n\t\t250, 7, 248, 168, 221, 62, 211, 94, 209, 110, 184, 65, 91,\n\t\t105, 159, 25, 164, 254, 181, 1, 233, 52, 211, 42, 79, 167,\n\t\t211, 186, 89, 209, 30, 175, 18, 74, 73, 239, 227, 252, 244,\n\t\t166, 74, 197, 119, 28, 159, 31, 27, 102, 69, 99, 233, 52,\n\t\t252, 139, 138, 169, 167, 211, 108, 56, 214, 97, 128, 217,\n\t\t115, 22, 161, 42, 73, 124, 51, 56, 76, 222, 202, 162, 92,\n\t\t41, 149, 45, 142, 209, 33, 134, 98, 212, 89, 17, 100, 114,\n\t\t252, 181, 11, 211, 5, 185, 85, 106, 174, 43, 237, 245, 62,\n\t\t49, 8, 190, 145, 82, 47, 152, 47, 76, 212, 85, 130, 9, 213,\n\t\t104, 239, 47, 21, 149, 40, 114, 220, 110, 181, 62, 81, 152,\n\t\t15, 60, 81, 192, 153, 244, 21, 81, 2, 82, 10, 163, 138, 2,\n\t\t68, 220, 255, 29, 201, 145, 180, 105, 95, 45, 204, 231, 67,\n\t\t112, 21, 83, 86, 176, 68, 101, 77, 49, 112, 152, 159, 47,\n\t\t168, 254, 180, 54, 40, 96, 134, 118, 82, 130, 200, 134, 236,\n\t\t64, 82, 160, 143, 87, 3, 28, 255, 117, 2, 205, 33, 132, 18,\n\t\t221, 135, 242, 74, 114, 136, 200, 184, 17, 97, 80, 109, 138,\n\t\t230, 82, 206, 53, 126, 8, 86, 162, 14, 8, 106, 222, 117, 98,\n\t\t210, 19, 111, 209, 237, 148, 241, 4, 172, 169, 150, 106, 235,\n\t\t111, 185, 66, 209, 8, 57, 14, 79, 112, 78, 223, 255, 41, 171,\n\t\t223, 163, 170, 92, 33, 96, 235, 127, 98, 56, 160, 170, 212,\n\t\t80, 255, 68, 183, 129, 150, 37, 172, 202, 223, 83, 229, 153,\n\t\t17, 28, 209, 38, 186, 103, 224, 115, 40, 84, 152, 4, 135,\n\t\t187, 92, 171, 139, 144, 224, 104, 17, 218, 43, 28, 54, 135,\n\t\t31, 90, 203, 205, 125, 235, 152, 239, 67, 240, 98, 245, 228,\n\t\t25, 4, 97, 192, 21, 34, 177, 141, 215, 106, 22, 164, 112,\n\t\t185, 185, 143, 207, 8, 124, 30, 12, 94, 200, 85, 39, 82, 132,\n\t\t200, 190, 59, 91, 8, 107, 148, 42, 133, 89, 8, 114, 13, 53,\n\t\t23, 226, 106, 14, 203, 110, 22, 30, 205, 5, 48, 91, 80, 40,\n\t\t173, 133, 133, 89, 215, 151, 9, 49, 60, 189, 154, 99, 174,\n\t\t165, 51, 140, 115, 85, 28, 230, 212, 6, 108, 87, 115, 167,\n\t\t189, 130, 130, 137, 35, 43, 160, 88, 255, 163, 48, 203, 63,\n\t\t70, 41, 107, 100, 22, 67, 55, 149, 105, 48, 74, 115, 85, 203,\n\t\t55, 123, 47, 240, 52, 255, 158, 217, 194, 255, 176, 20, 80,\n\t\t100, 135, 96, 201, 14, 205, 211, 185, 170, 162, 26, 182, 90,\n\t\t205, 241, 207, 165, 220, 48, 94, 79, 17, 130, 139, 176, 133,\n\t\t230, 80, 27, 157, 66, 55, 115, 237, 122, 18, 210, 67, 86,\n\t\t179, 210, 32, 197, 7, 221, 97, 188, 46, 197, 179, 237, 20,\n\t\t84, 105, 169, 190, 8, 115, 80, 38, 244, 0, 78, 72, 215, 44,\n\t\t204, 41, 216, 68, 232, 47, 248, 233, 130, 116, 0, 224, 179,\n\t\t169, 80, 76, 49, 151, 144, 152, 105, 194, 148, 145, 38, 126,\n\t\t174, 232, 110, 149, 247, 27, 233, 222, 127, 74, 3, 74, 43,\n\t\t25, 107, 203, 202, 236, 199, 38, 209, 9, 149, 202, 22, 231,\n\t\t225, 130, 107, 98, 9, 143, 133, 142, 68, 137, 78, 204, 191,\n\t\t160, 165, 244, 242, 68, 170, 99, 14, 32, 250, 58, 169, 137,\n\t\t229, 116, 137, 230, 155, 118, 46, 165, 213, 138, 205, 108,\n\t\t179, 105, 186, 238, 191, 5, 44, 17, 217, 46, 41, 170, 65,\n\t\t173, 84, 42, 159, 114, 66, 38, 19, 9, 3, 215, 11, 4, 38, 91,\n\t\t172, 227, 157, 217, 133, 132, 53, 10, 222, 60, 72, 141, 106,\n\t\t120, 213, 56, 61, 0, 205, 23, 132, 10, 9, 179, 67, 19, 184,\n\t\t198, 221, 227, 27, 61, 98, 54, 23, 52, 6, 151, 80, 226, 8,\n\t\t135, 84, 14, 214, 167, 38, 39, 232, 142, 66, 91, 9, 232, 42,\n\t\t113, 124, 162, 143, 104, 53, 40, 171, 54, 144, 114, 169, 119,\n\t\t233, 243, 248, 29, 240, 101, 52, 139, 238, 66, 143, 160, 39,\n\t\t208, 135, 17, 138, 40, 9, 105, 98, 1, 225, 112, 201, 3, 67,\n\t\t200, 58, 36, 246, 16, 27, 136, 141, 45, 80, 132, 80, 71, 40,\n\t\t17, 37, 235, 28, 207, 181, 86, 143, 151, 49, 30, 245, 31,\n\t\t197, 10, 118, 31, 161, 53, 137, 69, 229, 246, 253, 106, 205,\n\t\t194, 177, 56, 26, 22, 164, 117, 28, 117, 106, 74, 188, 190,\n\t\t44, 241, 224, 204, 88, 75, 175, 17, 26, 144, 130, 28, 6, 241,\n\t\t205, 247, 24, 10, 174, 40, 58, 182, 177, 118, 13, 145, 148,\n\t\t35, 140, 54, 101, 74, 174, 214, 128, 130, 33, 207, 17, 122,\n\t\t72, 209, 177, 174, 72, 69, 125, 162, 10, 223, 54, 101, 83,\n\t\t86, 44, 44, 155, 233, 41, 211, 148, 216, 223, 171, 82, 104,\n\t\t78, 249, 24, 192, 194, 88, 81, 12, 117, 146, 105, 169, 162,\n\t\t66, 12, 155, 170, 182, 235, 58, 63, 225, 90, 190, 101, 74,\n\t\t84, 114, 40, 237, 189, 149, 154, 154, 138, 177, 108, 48, 108,\n\t\t80, 141, 82, 5, 164, 9, 240, 9, 72, 44, 248, 9, 66, 89, 72,\n\t\t138, 159, 120, 93, 126, 70, 6, 172, 74, 134, 98, 226, 184,\n\t\t52, 200, 127, 186, 232, 120, 147, 187, 234, 51, 94, 215, 85,\n\t\t42, 205, 89, 116, 250, 35, 75, 174, 33, 75, 43, 84, 113, 20,\n\t\t85, 14, 205, 194, 177, 184, 138, 42, 241, 9, 93, 81, 148,\n\t\t148, 187, 88, 48, 100, 152, 152, 163, 196, 160, 178, 164,\n\t\t0, 40, 37, 153, 89, 190, 159, 109, 23, 140, 148, 119, 39,\n\t\t198, 68, 163, 204, 209, 37, 144, 48, 6, 80, 100, 107, 38,\n\t\t211, 161, 212, 87, 74, 88, 87, 231, 22, 207, 170, 19, 150,\n\t\t76, 136, 36, 131, 4, 188, 104, 159, 215, 46, 209, 215, 166,\n\t\t19, 171, 225, 218, 136, 5, 98, 220, 156, 204, 223, 68, 16,\n\t\t114, 207, 20, 200, 67, 213, 154, 30, 132, 250, 192, 192, 140,\n\t\t139, 141, 85, 70, 151, 19, 139, 242, 50, 101, 57, 127, 153,\n\t\t150, 188, 111, 153, 147, 234, 235, 123, 111, 225, 182, 228,\n\t\t55, 93, 93, 251, 249, 95, 184, 250, 230, 207, 240, 11, 64,\n\t\t171, 141, 13, 202, 250, 86, 101, 70, 207, 7, 101, 242, 72,\n\t\t42, 176, 180, 39, 250, 230, 228, 205, 190, 137, 121, 136,\n\t\t41, 177, 141, 108, 116, 109, 60, 163, 238, 218, 59, 78, 150,\n\t\t161, 120, 46, 121, 9, 214, 211, 104, 29, 4, 237, 233, 202,\n\t\t16, 255, 83, 104, 151, 190, 210, 169, 205, 65, 212, 73, 98,\n\t\t122, 131, 131, 64, 73, 208, 106, 70, 163, 156, 168, 216, 113,\n\t\t40, 155, 202, 52, 203, 147, 117, 206, 139, 90, 205, 93, 200,\n\t\t85, 213, 233, 149, 180, 169, 153, 153, 41, 70, 29, 102, 177,\n\t\t34, 179, 88, 239, 207, 100, 74, 15, 24, 64, 201, 113, 29,\n\t\t28, 80, 149, 131, 33, 80, 66, 165, 145, 29, 234, 46, 163,\n\t\t197, 236, 172, 250, 166, 210, 162, 36, 45, 22, 50, 156, 53,\n\t\t53, 87, 173, 230, 182, 87, 166, 243, 166, 139, 177, 171, 191,\n\t\t81, 157, 205, 14, 40, 245, 133, 79, 139, 162, 183, 20, 149,\n\t\t221, 167, 208, 115, 138, 170, 12, 176, 62, 182, 57, 62, 238,\n\t\t56, 214, 71, 167, 57, 53, 192, 44, 26, 18, 181, 181, 252,\n\t\t116, 16, 193, 247, 25, 187, 168, 101, 181, 139, 226, 244,\n\t\t19, 132, 188, 66, 210, 206, 155, 158, 90, 84, 55, 53, 233,\n\t\t15, 134, 119, 46, 50, 246, 93, 66, 174, 145, 100, 165, 227,\n\t\t153, 27, 170, 218, 237, 40, 178, 132, 70, 121, 175, 235, 3,\n\t\t166, 245, 155, 208, 38, 215, 250, 249, 130, 85, 73, 214, 181,\n\t\t182, 144, 210, 57, 99, 107, 124, 103, 185, 66, 131, 52, 13,\n\t\t155, 74, 16, 182, 234, 229, 125, 194, 123, 59, 170, 16, 218,\n\t\t55, 29, 245, 93, 29, 166, 19, 225, 22, 39, 249, 3, 20, 115,\n\t\t238, 76, 92, 77, 253, 126, 170, 154, 171, 22, 139, 131, 100,\n\t\t53, 7, 117, 85, 173, 67, 239, 162, 173, 190, 80, 3, 158, 81,\n\t\t123, 65, 181, 159, 231, 146, 236, 143, 11, 121, 118, 155,\n\t\t203, 191, 69, 126, 1, 93, 33, 12, 87, 59, 163, 127, 166, 88,\n\t\t172, 118, 170, 71, 236, 162, 125, 132, 169, 54, 199, 162,\n\t\t181, 213, 59, 120, 193, 119, 141, 124, 118, 236, 15, 141,\n\t\t251, 61, 217, 104, 138, 179, 212, 92, 129, 80, 117, 136, 199,\n\t\t203, 247, 235, 162, 218, 0, 239, 132, 219, 1, 148, 157, 146,\n\t\t190, 240, 115, 136, 60, 183, 148, 128, 184, 75, 110, 201,\n\t\t69, 151, 14, 24, 198, 1, 142, 206, 51, 61, 173, 235, 186,\n\t\t241, 138, 126, 66, 23, 55, 128, 80, 86, 203, 246, 80, 182,\n\t\t198, 232, 95, 165, 205, 67, 86, 10, 190, 220, 67, 249, 52,\n\t\t92, 72, 231, 187, 189, 173, 95, 61, 168, 235, 7, 227, 210,\n\t\t252, 83, 220, 127, 70, 36, 116, 113, 227, 195, 140, 58, 217,\n\t\t90, 45, 235, 80, 166, 251, 174, 13, 231, 123, 207, 115, 227,\n\t\t97, 239, 143, 0, 93, 66, 9, 31, 233, 23, 248, 222, 178, 133,\n\t\t166, 56, 182, 77, 127, 116, 241, 209, 86, 23, 131, 78, 140,\n\t\t185, 48, 104, 198, 135, 29, 25, 134, 97, 124, 71, 49, 148,\n\t\t239, 24, 198, 119, 116, 29, 93, 226, 167, 239, 24, 198, 193,\n\t\t159, 51, 38, 140, 143, 29, 232, 95, 30, 248, 88, 124, 9, 243,\n\t\t36, 79, 238, 197, 248, 222, 248, 164, 40, 41, 50, 169, 220,\n\t\t171, 40, 247, 42, 147, 36, 123, 165, 162, 92, 249, 97, 145,\n\t\t29, 223, 229, 215, 99, 120, 94, 37, 238, 25, 223, 247, 55,\n\t\t27, 46, 168, 187, 172, 170, 202, 8, 141, 51, 231, 149, 93,\n\t\t169, 85, 218, 92, 140, 170, 14, 184, 132, 210, 21, 238, 81,\n\t\t193, 153, 60, 226, 132, 193, 104, 131, 50, 152, 230, 192,\n\t\t249, 69, 202, 242, 105, 112, 98, 81, 252, 236, 131, 251, 122,\n\t\t31, 82, 213, 23, 84, 117, 139, 71, 174, 8, 35, 208, 72, 114,\n\t\t139, 99, 233, 211, 116, 254, 204, 189, 103, 186, 15, 158,\n\t\t189, 50, 42, 170, 3, 62, 176, 33, 215, 108, 19, 117, 56, 11,\n\t\t117, 39, 224, 84, 155, 201, 168, 168, 39, 145, 26, 173, 81,\n\t\t174, 220, 17, 208, 231, 56, 95, 105, 215, 125, 133, 227, 234,\n\t\t112, 175, 29, 252, 70, 153, 224, 111, 50, 179, 247, 93, 211,\n\t\t59, 161, 219, 204, 98, 146, 244, 238, 213, 85, 58, 96, 221,\n\t\t220, 111, 91, 205, 222, 246, 50, 252, 93, 160, 233, 115, 153,\n\t\t233, 12, 20, 65, 145, 83, 146, 244, 45, 205, 51, 151, 12,\n\t\t156, 50, 110, 87, 109, 6, 153, 229, 33, 222, 235, 50, 205,\n\t\t28, 57, 172, 174, 223, 170, 205, 57, 206, 122, 152, 202, 100,\n\t\t70, 240, 252, 150, 185, 4, 55, 236, 205, 72, 32, 116, 213,\n\t\t250, 158, 42, 43, 245, 14, 135, 10, 161, 35, 71, 248, 74,\n\t\t182, 50, 91, 232, 61, 85, 152, 173, 100, 39, 103, 11, 86,\n\t\t80, 205, 57, 165, 37, 91, 83, 26, 171, 132, 228, 170, 129,\n\t\t85, 152, 61, 43, 55, 114, 133, 217, 217, 66, 174, 33, 7, 149,\n\t\t194, 172, 55, 153, 171, 46, 149, 50, 62, 94, 109, 216, 110,\n\t\t53, 55, 233, 205, 22, 42, 67, 156, 33, 194, 223, 187, 16,\n\t\t85, 56, 87, 238, 88, 220, 72, 31, 177, 165, 42, 246, 28, 227,\n\t\t65, 75, 48, 226, 190, 128, 252, 208, 227, 14, 35, 103, 224,\n\t\t79, 190, 232, 121, 236, 118, 173, 166, 221, 206, 188, 173,\n\t\t254, 77, 175, 197, 239, 222, 87, 116, 46, 56, 206, 5, 167,\n\t\t136, 4, 175, 5, 252, 55, 142, 103, 213, 231, 183, 93, 26,\n\t\t142, 43, 186, 131, 174, 121, 42, 17, 239, 10, 120, 82, 184,\n\t\t36, 115, 250, 219, 63, 36, 146, 84, 148, 76, 242, 4, 31, 91,\n\t\t79, 16, 83, 42, 74, 18, 121, 226, 137, 145, 108, 137, 200,\n\t\t210, 224, 198, 67, 178, 169, 172, 42, 178, 116, 246, 35, 241,\n\t\t243, 248, 200, 89, 73, 86, 86, 21, 83, 190, 230, 154, 145,\n\t\t124, 73, 38, 210, 240, 78, 178, 143, 36, 230, 163, 73, 30,\n\t\t203, 127, 18, 189, 2, 189, 26, 61, 136, 30, 221, 131, 183,\n\t\t112, 196, 209, 74, 196, 37, 12, 157, 174, 194, 255, 15, 238,\n\t\t197, 98, 194, 106, 163, 215, 141, 143, 130, 68, 135, 175,\n\t\t240, 121, 158, 124, 138, 209, 13, 202, 74, 139, 165, 210,\n\t\t98, 137, 39, 119, 101, 108, 237, 252, 8, 108, 175, 54, 122,\n\t\t156, 85, 17, 186, 141, 213, 222, 83, 130, 127, 39, 157, 207,\n\t\t127, 32, 62, 164, 227, 203, 7, 249, 248, 95, 13, 75, 165,\n\t\t247, 220, 20, 150, 74, 225, 77, 151, 201, 123, 243, 30, 159,\n\t\t141, 199, 153, 182, 71, 127, 222, 136, 94, 131, 222, 128,\n\t\t126, 18, 189, 103, 23, 43, 91, 43, 108, 143, 182, 55, 122,\n\t\t217, 87, 254, 30, 127, 103, 216, 139, 209, 203, 190, 138,\n\t\t123, 184, 154, 235, 161, 92, 117, 181, 209, 29, 244, 236,\n\t\t160, 71, 7, 61, 217, 191, 21, 151, 139, 159, 71, 53, 183,\n\t\t217, 239, 220, 65, 183, 15, 18, 131, 126, 143, 251, 91, 96,\n\t\t177, 55, 86, 159, 47, 242, 48, 170, 126, 79, 134, 171, 227,\n\t\t169, 193, 221, 119, 85, 115, 252, 169, 23, 115, 213, 141,\n\t\t98, 255, 78, 126, 34, 78, 77, 196, 165, 7, 41, 123, 112, 151,\n\t\t227, 34, 94, 250, 193, 165, 207, 115, 30, 25, 130, 26, 168,\n\t\t131, 78, 241, 221, 149, 123, 185, 30, 66, 107, 235, 64, 57,\n\t\t167, 3, 17, 118, 227, 90, 71, 224, 150, 135, 177, 66, 207,\n\t\t109, 57, 203, 105, 63, 12, 184, 147, 105, 189, 214, 14, 58,\n\t\t81, 80, 45, 96, 27, 44, 188, 136, 15, 115, 127, 3, 74, 252,\n\t\t14, 183, 88, 45, 2, 41, 64, 39, 34, 194, 14, 196, 121, 255,\n\t\t9, 37, 97, 39, 248, 247, 106, 49, 5, 86, 238, 86, 249, 68,\n\t\t205, 204, 82, 169, 114, 243, 105, 82, 148, 83, 169, 187, 31,\n\t\t158, 158, 206, 58, 197, 76, 33, 0, 9, 238, 188, 249, 39, 49,\n\t\t117, 116, 39, 143, 33, 53, 111, 74, 240, 179, 134, 67, 112,\n\t\t145, 158, 123, 213, 145, 179, 29, 90, 148, 39, 253, 159, 121,\n\t\t66, 220, 144, 188, 98, 62, 119, 238, 132, 182, 248, 88, 89,\n\t\t250, 175, 18, 244, 63, 4, 238, 252, 239, 204, 233, 105, 167,\n\t\t16, 46, 76, 52, 245, 74, 17, 166, 143, 215, 126, 201, 175,\n\t\t107, 251, 137, 28, 130, 172, 248, 251, 0, 230, 180, 180, 133,\n\t\t37, 207, 85, 40, 163, 54, 153, 162, 126, 222, 252, 204, 204,\n\t\t169, 146, 126, 100, 115, 230, 151, 252, 130, 148, 249, 164,\n\t\t184, 161, 184, 57, 226, 189, 96, 207, 215, 243, 225, 108,\n\t\t227, 44, 81, 244, 180, 5, 146, 231, 40, 148, 169, 163, 251,\n\t\t141, 139, 168, 131, 214, 209, 9, 132, 32, 109, 73, 212, 111,\n\t\t165, 57, 2, 65, 185, 86, 95, 132, 118, 171, 61, 60, 12, 4,\n\t\t231, 184, 128, 79, 118, 108, 234, 13, 64, 174, 182, 136, 97,\n\t\t167, 245, 174, 59, 229, 177, 19, 63, 118, 130, 21, 170, 221,\n\t\t252, 116, 252, 195, 201, 254, 186, 206, 164, 247, 1, 254,\n\t\t174, 142, 254, 0, 50, 38, 210, 174, 41, 215, 252, 106, 142,\n\t\t204, 239, 223, 63, 207, 154, 197, 154, 182, 111, 42, 254,\n\t\t21, 59, 183, 233, 106, 142, 212, 46, 242, 210, 119, 142, 28,\n\t\t7, 54, 239, 184, 29, 251, 80, 27, 189, 19, 189, 7, 93, 68,\n\t\t223, 30, 217, 111, 18, 126, 24, 21, 30, 223, 50, 14, 117,\n\t\t157, 52, 104, 74, 104, 2, 213, 86, 189, 34, 166, 230, 248,\n\t\t83, 132, 38, 62, 85, 35, 4, 235, 181, 190, 67, 114, 109, 200,\n\t\t116, 218, 233, 179, 44, 116, 162, 65, 255, 4, 97, 66, 144,\n\t\t27, 12, 184, 6, 235, 205, 32, 137, 172, 252, 39, 254, 195,\n\t\t98, 175, 203, 181, 234, 203, 217, 218, 177, 224, 104, 112,\n\t\t236, 170, 99, 129, 203, 215, 105, 70, 159, 247, 204, 7, 205,\n\t\t73, 245, 220, 105, 211, 235, 109, 191, 163, 117, 45, 44, 199,\n\t\t235, 8, 163, 138, 68, 100, 238, 22, 45, 107, 194, 27, 78,\n\t\t215, 146, 107, 69, 86, 226, 207, 190, 84, 129, 71, 249, 3,\n\t\t187, 192, 125, 64, 254, 9, 254, 208, 69, 158, 157, 206, 59,\n\t\t229, 66, 161, 92, 46, 244, 163, 209, 54, 77, 207, 210, 238,\n\t\t241, 204, 238, 102, 183, 119, 49, 94, 204, 126, 196, 63, 190,\n\t\t171, 192, 6, 31, 46, 43, 140, 22, 101, 85, 222, 85, 80, 86,\n\t\t126, 212, 191, 36, 222, 31, 161, 47, 71, 28, 167, 243, 204,\n\t\t200, 152, 219, 59, 138, 225, 242, 67, 207, 111, 213, 251,\n\t\t251, 211, 242, 216, 131, 109, 226, 163, 63, 118, 20, 31, 231,\n\t\t199, 102, 34, 73, 94, 16, 143, 245, 245, 203, 241, 99, 253,\n\t\t232, 213, 223, 20, 111, 208, 154, 120, 46, 162, 250, 202,\n\t\t226, 209, 163, 139, 138, 222, 63, 243, 204, 174, 233, 109,\n\t\t197, 189, 250, 132, 103, 118, 183, 55, 55, 123, 219, 35, 47,\n\t\t32, 26, 240, 218, 35, 216, 66, 24, 105, 156, 59, 240, 12,\n\t\t247, 146, 237, 59, 137, 68, 187, 233, 141, 151, 128, 27, 224,\n\t\t44, 16, 218, 113, 243, 48, 180, 194, 160, 53, 92, 123, 106,\n\t\t28, 4, 187, 213, 140, 248, 106, 246, 209, 84, 234, 3, 124,\n\t\t87, 253, 9, 78, 126, 188, 25, 31, 127, 71, 101, 184, 131,\n\t\t45, 154, 85, 24, 197, 29, 204, 84, 215, 144, 212, 19, 170,\n\t\t100, 124, 145, 75, 154, 134, 17, 11, 125, 182, 169, 196, 23,\n\t\t207, 183, 219, 142, 64, 197, 203, 167, 123, 23, 185, 251,\n\t\t66, 49, 157, 239, 93, 52, 213, 159, 225, 163, 241, 103, 84,\n\t\t83, 247, 125, 221, 225, 98, 237, 180, 60, 187, 54, 75, 8,\n\t\t75, 252, 74, 160, 155, 248, 85, 236, 194, 195, 31, 33, 255,\n\t\t24, 108, 167, 112, 7, 221, 128, 131, 97, 3, 199, 1, 221, 180,\n\t\t180, 162, 102, 109, 198, 201, 133, 234, 233, 215, 157, 174,\n\t\t94, 49, 159, 45, 164, 116, 223, 217, 230, 55, 62, 24, 223,\n\t\t248, 32, 79, 30, 108, 31, 57, 123, 246, 72, 251, 224, 243,\n\t\t229, 194, 196, 254, 180, 81, 106, 56, 133, 1, 30, 232, 54,\n\t\t143, 129, 60, 128, 142, 34, 84, 221, 155, 141, 73, 132, 150,\n\t\t14, 57, 218, 250, 97, 161, 163, 216, 204, 3, 166, 166, 237,\n\t\t29, 44, 76, 189, 23, 24, 93, 230, 143, 90, 24, 8, 250, 201,\n\t\t239, 246, 254, 212, 244, 82, 214, 45, 187, 120, 151, 222,\n\t\t88, 164, 76, 68, 92, 143, 126, 170, 247, 117, 193, 195, 52,\n\t\t212, 97, 41, 199, 186, 105, 197, 245, 238, 203, 207, 225,\n\t\t136, 29, 146, 123, 155, 148, 105, 169, 61, 110, 191, 140,\n\t\t15, 53, 206, 63, 71, 252, 116, 56, 0, 78, 110, 193, 103, 222,\n\t\t116, 253, 245, 111, 186, 254, 5, 173, 166, 25, 154, 182, 166,\n\t\t117, 163, 197, 222, 195, 147, 222, 198, 164, 119, 193, 155,\n\t\t220, 240, 38, 217, 103, 183, 222, 73, 189, 222, 31, 123, 147,\n\t\t219, 140, 94, 188, 62, 46, 124, 212, 208, 58, 154, 118, 149,\n\t\t182, 93, 220, 240, 38, 151, 189, 201, 73, 111, 121, 210, 219,\n\t\t7, 155, 197, 226, 197, 137, 137, 217, 218, 164, 247, 84, 194,\n\t\t247, 110, 12, 234, 188, 128, 246, 163, 43, 208, 181, 232,\n\t\t86, 244, 90, 244, 48, 250, 73, 244, 36, 250, 16, 250, 56,\n\t\t250, 212, 203, 179, 184, 238, 109, 123, 189, 28, 103, 116,\n\t\t248, 79, 84, 198, 187, 76, 25, 124, 143, 102, 9, 22, 3, 75,\n\t\t107, 240, 215, 162, 43, 142, 150, 246, 148, 102, 245, 46,\n\t\t24, 13, 99, 199, 207, 214, 238, 172, 61, 74, 141, 101, 1,\n\t\t178, 180, 222, 223, 115, 99, 240, 61, 154, 37, 226, 129, 197,\n\t\t241, 84, 60, 184, 159, 253, 6, 47, 245, 186, 145, 227, 103,\n\t\t118, 229, 92, 191, 43, 167, 247, 23, 35, 23, 137, 127, 183,\n\t\t192, 32, 72, 163, 235, 19, 95, 132, 10, 103, 37, 109, 175,\n\t\t68, 235, 56, 86, 22, 149, 245, 88, 91, 226, 104, 133, 7, 177,\n\t\t0, 118, 174, 113, 39, 144, 228, 13, 176, 112, 88, 0, 142,\n\t\t237, 220, 135, 118, 14, 56, 144, 136, 0, 179, 126, 250, 27,\n\t\t79, 63, 125, 239, 106, 235, 200, 85, 42, 86, 236, 73, 178,\n\t\t31, 38, 194, 73, 9, 79, 184, 77, 194, 138, 160, 40, 42, 113,\n\t\t101, 224, 160, 85, 14, 101, 246, 132, 129, 147, 91, 100, 252,\n\t\t14, 92, 120, 228, 19, 143, 120, 45, 85, 146, 100, 175, 25,\n\t\t236, 63, 125, 195, 103, 112, 117, 194, 205, 40, 54, 80, 21,\n\t\t203, 196, 149, 13, 137, 97, 30, 241, 145, 130, 84, 222, 217,\n\t\t243, 78, 130, 183, 112, 20, 46, 160, 20, 58, 139, 238, 230,\n\t\t251, 78, 131, 182, 10, 189, 184, 41, 137, 103, 205, 209, 172,\n\t\t49, 111, 51, 183, 169, 190, 44, 56, 107, 37, 224, 30, 106,\n\t\t124, 199, 168, 30, 112, 184, 131, 122, 172, 121, 195, 133,\n\t\t71, 110, 88, 107, 205, 45, 170, 56, 176, 106, 143, 124, 226,\n\t\t46, 142, 93, 173, 168, 6, 93, 96, 18, 145, 126, 8, 166, 53,\n\t\t220, 98, 5, 146, 172, 44, 206, 181, 214, 186, 247, 76, 164,\n\t\t172, 87, 63, 9, 251, 79, 193, 209, 119, 220, 150, 201, 168,\n\t\t146, 20, 78, 205, 180, 142, 222, 118, 9, 169, 170, 3, 217,\n\t\t148, 106, 233, 12, 155, 146, 38, 17, 185, 15, 97, 237, 136,\n\t\t59, 59, 145, 173, 127, 122, 42, 148, 181, 76, 166, 51, 143,\n\t\t31, 60, 171, 105, 169, 141, 102, 107, 192, 31, 45, 252, 221,\n\t\t246, 242, 116, 27, 91, 47, 227, 219, 32, 156, 209, 185, 139,\n\t\t226, 72, 50, 65, 191, 16, 238, 134, 35, 55, 135, 122, 26,\n\t\t192, 54, 186, 17, 221, 138, 94, 141, 94, 139, 30, 64, 15,\n\t\t163, 183, 162, 199, 208, 187, 98, 61, 173, 239, 59, 86, 39,\n\t\t52, 228, 78, 157, 229, 88, 44, 11, 19, 47, 137, 40, 22, 203,\n\t\t18, 227, 105, 173, 78, 251, 58, 88, 103, 24, 73, 209, 137,\n\t\t4, 217, 111, 224, 211, 88, 52, 75, 76, 96, 65, 88, 143, 47,\n\t\t107, 241, 95, 237, 68, 21, 126, 20, 25, 241, 47, 13, 6, 126,\n\t\t225, 157, 168, 78, 104, 139, 31, 249, 55, 4, 240, 87, 84,\n\t\t211, 168, 171, 78, 155, 10, 40, 129, 108, 41, 250, 210, 65,\n\t\t96, 180, 64, 25, 28, 92, 210, 21, 75, 14, 100, 197, 156, 86,\n\t\t221, 65, 41, 249, 242, 133, 126, 67, 182, 205, 185, 194, 205,\n\t\t213, 194, 156, 105, 191, 206, 39, 93, 137, 93, 69, 252, 125,\n\t\t76, 58, 198, 243, 155, 124, 15, 249, 192, 200, 93, 163, 27,\n\t\t223, 254, 147, 255, 195, 111, 219, 93, 232, 209, 174, 196,\n\t\t246, 249, 132, 127, 103, 161, 42, 219, 230, 85, 252, 203,\n\t\t222, 201, 179, 127, 156, 239, 56, 63, 53, 188, 121, 74, 142,\n\t\t239, 38, 254, 53, 8, 190, 196, 237, 166, 11, 241, 28, 17,\n\t\t141, 27, 185, 42, 180, 61, 106, 241, 42, 215, 130, 230, 97,\n\t\t24, 208, 155, 134, 213, 96, 18, 104, 187, 228, 215, 249, 59,\n\t\t198, 139, 174, 43, 173, 102, 65, 22, 132, 205, 1, 119, 96,\n\t\t230, 2, 194, 243, 201, 249, 2, 101, 39, 86, 252, 255, 32,\n\t\t4, 146, 255, 0, 147, 169, 205, 222, 246, 102, 202, 177, 242,\n\t\t233, 107, 128, 66, 222, 10, 85, 53, 180, 242, 64, 225, 154,\n\t\t116, 222, 250, 246, 208, 8, 182, 209, 79, 176, 135, 236, 103,\n\t\t190, 25, 75, 35, 223, 124, 230, 175, 172, 9, 237, 196, 175,\n\t\t252, 202, 9, 109, 194, 50, 181, 249, 116, 30, 20, 240, 153,\n\t\t174, 51, 31, 20, 200, 167, 231, 245, 17, 78, 38, 151, 51,\n\t\t95, 52, 199, 36, 128, 131, 220, 64, 52, 30, 228, 246, 194,\n\t\t80, 86, 186, 208, 221, 100, 148, 111, 58, 108, 83, 6, 93,\n\t\t238, 146, 41, 100, 160, 238, 179, 131, 202, 160, 177, 239,\n\t\t104, 95, 254, 59, 70, 69, 10, 241, 109, 163, 98, 199, 174,\n\t\t239, 61, 197, 255, 252, 169, 248, 107, 6, 201, 221, 117, 24,\n\t\t191, 31, 39, 17, 231, 124, 254, 181, 196, 31, 61, 207, 209,\n\t\t242, 226, 249, 44, 228, 187, 127, 135, 160, 143, 20, 220,\n\t\t247, 154, 8, 227, 185, 176, 118, 57, 96, 127, 177, 193, 203,\n\t\t167, 66, 65, 185, 61, 14, 237, 255, 169, 195, 215, 29, 84,\n\t\t43, 206, 134, 243, 89, 219, 245, 225, 162, 239, 218, 111,\n\t\t126, 199, 109, 183, 189, 227, 182, 231, 247, 4, 239, 103,\n\t\t142, 78, 227, 108, 44, 41, 120, 28, 213, 63, 235, 220, 125,\n\t\t236, 218, 253, 14, 211, 215, 140, 244, 191, 248, 109, 187,\n\t\t94, 183, 223, 125, 91, 252, 135, 222, 183, 199, 220, 198,\n\t\t109, 183, 134, 195, 68, 62, 86, 100, 60, 114, 7, 141, 217,\n\t\t163, 95, 131, 30, 64, 111, 30, 145, 64, 219, 149, 248, 191,\n\t\t223, 242, 91, 254, 40, 139, 111, 171, 221, 106, 87, 124, 254,\n\t\t127, 183, 206, 48, 182, 65, 181, 199, 121, 112, 168, 251,\n\t\t173, 228, 111, 14, 173, 70, 192, 97, 68, 54, 184, 135, 149,\n\t\t224, 168, 78, 210, 137, 194, 232, 136, 253, 170, 238, 200,\n\t\t175, 67, 227, 159, 191, 23, 214, 95, 225, 20, 185, 201, 232,\n\t\t22, 101, 23, 182, 54, 55, 183, 46, 8, 17, 65, 164, 121, 246,\n\t\t121, 174, 190, 9, 7, 76, 103, 231, 241, 60, 7, 25, 57, 255,\n\t\t60, 223, 187, 250, 172, 176, 173, 141, 244, 207, 62, 116,\n\t\t24, 157, 20, 216, 240, 201, 182, 85, 252, 22, 15, 218, 156,\n\t\t200, 69, 187, 210, 173, 166, 220, 236, 28, 134, 69, 92, 38,\n\t\t54, 20, 160, 175, 175, 192, 15, 36, 118, 215, 234, 167, 87,\n\t\t239, 98, 146, 234, 119, 39, 138, 19, 90, 90, 27, 28, 187,\n\t\t126, 239, 111, 150, 151, 13, 67, 113, 155, 226, 36, 168, 249,\n\t\t158, 36, 212, 100, 247, 175, 173, 221, 207, 76, 74, 188, 23,\n\t\t156, 137, 9, 231, 113, 77, 251, 55, 241, 249, 223, 104, 218,\n\t\t227, 241, 249, 133, 173, 162, 227, 80, 127, 154, 31, 215,\n\t\t250, 190, 235, 131, 184, 226, 38, 58, 158, 88, 130, 195, 128,\n\t\t44, 65, 152, 30, 58, 145, 183, 35, 90, 30, 248, 146, 11, 156,\n\t\t242, 72, 132, 54, 7, 54, 174, 71, 245, 136, 214, 105, 61,\n\t\t164, 33, 141, 104, 20, 214, 225, 69, 83, 49, 238, 56, 195,\n\t\t44, 243, 117, 178, 174, 170, 228, 248, 113, 162, 170, 186,\n\t\t252, 58, 140, 13, 77, 61, 115, 135, 161, 152, 247, 207, 42,\n\t\t105, 227, 182, 178, 156, 149, 203, 183, 25, 105, 101, 118,\n\t\t105, 122, 169, 157, 94, 112, 156, 133, 116, 123, 105, 122,\n\t\t5, 151, 74, 248, 239, 32, 71, 218, 231, 180, 9, 105, 226,\n\t\t65, 85, 167, 55, 223, 76, 117, 245, 193, 9, 95, 59, 215, 38,\n\t\t57, 112, 238, 49, 93, 186, 118, 159, 105, 222, 183, 70, 93,\n\t\t243, 158, 183, 54, 50, 106, 115, 178, 213, 154, 108, 170,\n\t\t153, 134, 209, 153, 157, 237, 160, 1, 159, 96, 17, 182, 99,\n\t\t249, 165, 218, 178, 160, 82, 174, 44, 66, 189, 85, 175, 213,\n\t\t87, 162, 86, 157, 27, 216, 2, 26, 203, 247, 5, 136, 79, 5,\n\t\t8, 163, 4, 133, 125, 37, 105, 162, 183, 210, 244, 189, 184,\n\t\t137, 98, 31, 136, 3, 176, 198, 29, 179, 14, 81, 44, 216, 117,\n\t\t34, 30, 48, 37, 12, 117, 180, 21, 223, 133, 139, 141, 210,\n\t\t227, 215, 82, 114, 245, 163, 83, 141, 131, 50, 192, 210, 76,\n\t\t112, 131, 172, 168, 154, 164, 29, 32, 64, 102, 178, 11, 147,\n\t\t56, 167, 104, 114, 122, 150, 210, 217, 180, 172, 41, 5, 195,\n\t\t209, 167, 6, 25, 128, 21, 37, 135, 171, 109, 149, 164, 51,\n\t\t4, 200, 1, 77, 210, 84, 69, 126, 69, 56, 179, 4, 202, 230,\n\t\t169, 155, 228, 27, 175, 56, 232, 167, 76, 119, 230, 174, 53,\n\t\t201, 82, 51, 217, 147, 115, 138, 173, 84, 163, 201, 149, 10,\n\t\t57, 146, 146, 25, 41, 49, 176, 128, 149, 8, 147, 125, 40,\n\t\t170, 106, 239, 162, 207, 51, 177, 9, 172, 132, 177, 140, 21,\n\t\t57, 117, 132, 182, 171, 197, 245, 80, 177, 149, 185, 147,\n\t\t217, 140, 106, 225, 67, 119, 205, 56, 144, 205, 238, 208,\n\t\t243, 126, 10, 189, 255, 242, 122, 30, 241, 185, 45, 146, 242,\n\t\t209, 193, 209, 222, 132, 227, 92, 123, 229, 48, 172, 193,\n\t\t190, 149, 58, 247, 13, 143, 165, 130, 184, 71, 120, 244, 92,\n\t\t157, 211, 243, 11, 135, 221, 37, 136, 86, 184, 195, 75, 133,\n\t\t214, 87, 202, 62, 173, 11, 172, 192, 244, 20, 127, 10, 28,\n\t\t210, 156, 246, 93, 136, 34, 66, 227, 47, 42, 215, 47, 175,\n\t\t56, 126, 85, 169, 18, 5, 203, 18, 158, 96, 135, 174, 57, 196,\n\t\t38, 176, 36, 99, 44, 85, 21, 95, 34, 146, 162, 228, 236, 162,\n\t\t54, 225, 100, 60, 108, 2, 231, 151, 101, 41, 73, 74, 49, 140,\n\t\t1, 44, 69, 85, 12, 172, 96, 53, 206, 81, 65, 2, 0, 29, 123,\n\t\t25, 103, 66, 43, 218, 57, 69, 145, 136, 244, 167, 151, 213,\n\t\t61, 83, 22, 64, 81, 33, 18, 246, 107, 251, 246, 213, 124,\n\t\t44, 197, 95, 90, 4, 176, 82, 1, 198, 132, 100, 139, 174, 157,\n\t\t42, 120, 110, 144, 158, 146, 43, 12, 64, 194, 182, 4, 4, 100,\n\t\t11, 0, 99, 237, 188, 44, 63, 192, 64, 150, 44, 25, 8, 72,\n\t\t118, 156, 7, 180, 36, 79, 165, 3, 215, 43, 164, 108, 183,\n\t\t152, 37, 4, 227, 222, 127, 23, 154, 172, 176, 17, 254, 58,\n\t\t231, 29, 177, 57, 38, 233, 33, 116, 6, 221, 44, 152, 103,\n\t\t170, 53, 170, 112, 26, 138, 78, 51, 164, 157, 80, 241, 211,\n\t\t68, 76, 62, 139, 112, 8, 226, 169, 51, 193, 147, 63, 204,\n\t\t13, 113, 201, 85, 1, 90, 81, 39, 244, 185, 7, 181, 0, 4, 39,\n\t\t245, 177, 43, 60, 27, 244, 190, 31, 134, 189, 239, 155, 236,\n\t\t47, 172, 162, 53, 111, 89, 144, 178, 244, 191, 214, 2, 237,\n\t\t175, 117, 107, 139, 200, 27, 36, 254, 125, 138, 200, 155,\n\t\t68, 82, 240, 38, 121, 158, 108, 200, 36, 254, 125, 138, 108,\n\t\t202, 36, 254, 133, 215, 209, 112, 223, 6, 165, 27, 251, 52,\n\t\t87, 58, 171, 40, 175, 151, 229, 235, 254, 92, 119, 165, 14,\n\t\t198, 29, 201, 213, 255, 188, 236, 200, 10, 4, 64, 220, 248,\n\t\t132, 23, 92, 89, 193, 89, 32, 174, 36, 67, 22, 187, 14, 193,\n\t\t1, 40, 178, 75, 32, 0, 101, 218, 37, 56, 43, 174, 178, 88,\n\t\t65, 210, 165, 191, 185, 244, 235, 88, 135, 109, 116, 63, 122,\n\t\t35, 122, 27, 143, 118, 161, 2, 41, 135, 134, 29, 238, 61,\n\t\t198, 61, 175, 113, 187, 238, 15, 172, 87, 109, 225, 246, 183,\n\t\t210, 105, 45, 135, 9, 46, 3, 127, 119, 67, 254, 246, 7, 83,\n\t\t208, 142, 71, 107, 60, 228, 132, 221, 50, 12, 226, 169, 152,\n\t\t199, 157, 6, 54, 248, 81, 188, 170, 215, 249, 116, 78, 227,\n\t\t177, 61, 5, 157, 122, 58, 140, 7, 51, 129, 11, 171, 77, 71,\n\t\t155, 106, 171, 250, 198, 228, 146, 162, 89, 68, 167, 178,\n\t\t74, 229, 25, 231, 255, 165, 238, 205, 227, 28, 185, 234, 123,\n\t\t209, 115, 78, 213, 57, 167, 118, 149, 84, 155, 246, 181, 85,\n\t\t165, 94, 70, 234, 150, 90, 42, 205, 210, 61, 114, 207, 140,\n\t\t61, 158, 30, 143, 123, 22, 60, 246, 216, 216, 237, 21, 131,\n\t\t109, 24, 140, 29, 59, 134, 128, 216, 140, 73, 8, 56, 151,\n\t\t196, 97, 73, 160, 111, 194, 229, 146, 11, 9, 115, 9, 73, 32,\n\t\t11, 52, 16, 178, 144, 4, 156, 155, 220, 132, 44, 143, 76,\n\t\t22, 46, 228, 147, 205, 228, 189, 16, 184, 128, 230, 125, 234,\n\t\t156, 146, 90, 61, 30, 27, 200, 125, 255, 188, 153, 86, 213,\n\t\t169, 83, 165, 82, 45, 103, 249, 173, 223, 175, 149, 181, 204,\n\t\t89, 168, 203, 145, 250, 137, 91, 133, 13, 85, 234, 59, 74,\n\t\t166, 117, 64, 149, 101, 154, 241, 43, 215, 45, 80, 81, 202,\n\t\t150, 138, 25, 34, 74, 251, 247, 83, 17, 103, 138, 165, 172,\n\t\t36, 144, 133, 227, 85, 63, 35, 136, 242, 11, 114, 146, 174,\n\t\t147, 194, 176, 128, 13, 131, 230, 224, 171, 139, 175, 56,\n\t\t24, 204, 172, 40, 100, 206, 174, 64, 67, 161, 42, 17, 8, 197,\n\t\t249, 162, 156, 138, 148, 133, 148, 92, 204, 203, 154, 97,\n\t\t27, 176, 98, 207, 17, 229, 170, 116, 230, 200, 176, 76, 101,\n\t\t69, 105, 180, 26, 87, 187, 61, 123, 134, 202, 201, 68, 167,\n\t\t84, 236, 36, 84, 153, 118, 187, 84, 86, 19, 157, 98, 169,\n\t\t147, 72, 202, 116, 198, 238, 185, 87, 55, 90, 13, 17, 19,\n\t\t44, 63, 84, 182, 147, 190, 175, 89, 213, 170, 165, 249, 126,\n\t\t210, 222, 61, 255, 39, 25, 103, 49, 107, 117, 19, 167, 14,\n\t\t111, 119, 29, 167, 211, 141, 63, 237, 152, 32, 119, 63, 188,\n\t\t44, 30, 160, 3, 191, 174, 112, 87, 179, 242, 15, 88, 195,\n\t\t191, 55, 216, 28, 108, 14, 76, 42, 143, 6, 50, 53, 121, 102,\n\t\t94, 204, 208, 121, 151, 168, 214, 163, 66, 93, 21, 207, 33,\n\t\t244, 137, 173, 232, 31, 15, 24, 217, 220, 9, 55, 137, 237,\n\t\t59, 131, 56, 86, 100, 47, 88, 1, 199, 1, 216, 7, 227, 80,\n\t\t196, 10, 143, 47, 100, 24, 129, 6, 162, 85, 230, 83, 9, 154,\n\t\t40, 232, 78, 99, 62, 118, 155, 48, 146, 36, 123, 29, 220,\n\t\t173, 57, 117, 150, 113, 196, 81, 210, 106, 85, 242, 35, 115,\n\t\t243, 229, 56, 194, 108, 80, 222, 214, 45, 234, 45, 204, 162,\n\t\t170, 76, 147, 54, 156, 93, 240, 168, 165, 35, 22, 123, 182,\n\t\t45, 204, 100, 54, 45, 29, 150, 7, 163, 139, 155, 60, 56, 252,\n\t\t98, 214, 47, 187, 139, 143, 71, 123, 31, 95, 116, 183, 44,\n\t\t221, 34, 169, 74, 209, 149, 77, 88, 168, 166, 176, 169, 91,\n\t\t155, 204, 149, 240, 120, 166, 82, 214, 173, 225, 96, 176,\n\t\t89, 102, 12, 143, 155, 254, 148, 253, 71, 6, 22, 40, 128,\n\t\t0, 180, 193, 10, 56, 10, 78, 131, 91, 193, 139, 193, 67, 224,\n\t\t35, 113, 220, 229, 116, 106, 212, 149, 75, 157, 222, 152,\n\t\t157, 102, 138, 168, 230, 63, 92, 196, 187, 148, 150, 43, 199,\n\t\t116, 79, 105, 57, 238, 46, 59, 90, 239, 73, 102, 241, 25,\n\t\t178, 229, 197, 169, 242, 15, 101, 45, 83, 146, 202, 175, 248,\n\t\t158, 87, 136, 227, 220, 244, 27, 219, 188, 185, 176, 128,\n\t\t239, 11, 219, 141, 56, 217, 69, 231, 116, 243, 219, 145, 78,\n\t\t45, 211, 39, 159, 140, 246, 94, 190, 44, 91, 186, 84, 214,\n\t\t180, 38, 235, 54, 255, 225, 210, 31, 241, 243, 53, 250, 131,\n\t\t157, 6, 57, 232, 55, 120, 173, 110, 177, 171, 187, 96, 141,\n\t\t249, 162, 248, 251, 76, 131, 67, 96, 3, 0, 39, 217, 73, 114,\n\t\t205, 175, 94, 97, 3, 10, 163, 225, 115, 29, 123, 146, 224,\n\t\t16, 187, 80, 107, 76, 143, 48, 16, 47, 85, 119, 16, 253, 58,\n\t\t66, 81, 228, 47, 57, 228, 249, 142, 232, 208, 232, 93, 133,\n\t\t27, 143, 204, 75, 210, 252, 145, 27, 153, 183, 201, 202, 90,\n\t\t131, 180, 166, 97, 51, 55, 176, 178, 22, 243, 64, 13, 5, 201,\n\t\t77, 26, 195, 178, 89, 134, 131, 81, 212, 222, 254, 32, 95,\n\t\t58, 212, 159, 239, 42, 74, 119, 190, 127, 168, 116, 128, 101,\n\t\t137, 113, 188, 205, 163, 206, 12, 149, 4, 197, 119, 142, 242,\n\t\t109, 158, 64, 54, 128, 56, 229, 84, 82, 229, 114, 126, 81,\n\t\t25, 199, 209, 68, 227, 194, 103, 129, 1, 238, 5, 111, 0, 128,\n\t\t11, 77, 189, 49, 45, 177, 27, 55, 18, 54, 18, 119, 151, 123,\n\t\t209, 244, 207, 61, 231, 140, 107, 194, 141, 81, 113, 217,\n\t\t30, 175, 40, 116, 56, 232, 6, 11, 56, 216, 207, 185, 8, 171,\n\t\t108, 156, 94, 14, 123, 94, 17, 121, 46, 237, 180, 15, 34,\n\t\t22, 78, 98, 136, 181, 106, 19, 7, 126, 207, 43, 10, 61, 248,\n\t\t98, 87, 16, 92, 74, 163, 165, 32, 209, 83, 251, 247, 215,\n\t\t115, 129, 165, 64, 85, 168, 181, 84, 199, 41, 42, 153, 194,\n\t\t172, 155, 90, 239, 206, 93, 53, 147, 84, 69, 40, 168, 102,\n\t\t101, 169, 156, 245, 253, 108, 69, 22, 77, 81, 150, 153, 75,\n\t\t55, 169, 43, 74, 150, 224, 70, 223, 173, 103, 177, 156, 108,\n\t\t37, 148, 244, 203, 165, 148, 128, 19, 78, 221, 53, 75, 174,\n\t\t163, 171, 34, 36, 150, 42, 26, 126, 208, 133, 175, 119, 5,\n\t\t137, 255, 162, 36, 184, 194, 112, 255, 236, 93, 51, 203, 186,\n\t\t101, 17, 234, 19, 65, 156, 79, 200, 119, 37, 28, 37, 83, 40,\n\t\t85, 186, 235, 165, 197, 37, 143, 96, 130, 68, 219, 41, 25,\n\t\t254, 178, 15, 165, 178, 148, 200, 55, 242, 42, 165, 182, 152,\n\t\t32, 190, 34, 120, 51, 78, 48, 163, 100, 222, 69, 100, 101,\n\t\t70, 32, 84, 147, 169, 164, 153, 122, 130, 32, 45, 41, 137,\n\t\t82, 2, 235, 227, 231, 252, 58, 184, 13, 254, 11, 248, 121,\n\t\t240, 75, 0, 204, 20, 161, 1, 253, 72, 222, 106, 10, 44, 148,\n\t\t191, 8, 121, 48, 90, 181, 137, 2, 82, 13, 38, 164, 241, 61,\n\t\t102, 195, 49, 16, 23, 205, 136, 31, 248, 203, 171, 48, 92,\n\t\t133, 209, 211, 236, 49, 90, 6, 62, 42, 250, 241, 241, 69,\n\t\t24, 189, 163, 85, 24, 6, 77, 56, 201, 204, 232, 181, 119,\n\t\t248, 79, 35, 253, 4, 177, 108, 246, 248, 7, 41, 163, 76, 37,\n\t\t12, 31, 60, 92, 21, 80, 28, 228, 54, 9, 118, 123, 145, 37,\n\t\t209, 148, 229, 150, 28, 205, 51, 21, 44, 8, 66, 190, 34, 151,\n\t\t173, 104, 70, 244, 26, 25, 3, 235, 166, 142, 141, 76, 195,\n\t\t139, 42, 172, 178, 92, 201, 11, 130, 72, 156, 132, 170, 57,\n\t\t37, 215, 74, 9, 72, 164, 162, 98, 25, 73, 73, 114, 45, 34,\n\t\t41, 34, 178, 60, 51, 171, 73, 6, 227, 37, 231, 37, 234, 205,\n\t\t101, 146, 153, 90, 189, 87, 87, 173, 220, 190, 156, 165, 214,\n\t\t123, 245, 90, 38, 153, 153, 243, 168, 100, 72, 90, 214, 228,\n\t\t196, 230, 81, 41, 157, 66, 162, 34, 17, 203, 149, 164, 164,\n\t\t241, 163, 44, 224, 109, 244, 239, 108, 117, 47, 77, 89, 18,\n\t\t77, 56, 178, 97, 235, 170, 78, 60, 181, 214, 55, 108, 35,\n\t\t191, 167, 110, 65, 104, 213, 247, 228, 13, 219, 232, 215,\n\t\t84, 143, 232, 137, 100, 6, 99, 39, 65, 37, 25, 43, 18, 133,\n\t\t34, 20, 36, 140, 19, 52, 91, 48, 176, 144, 52, 13, 221, 49,\n\t\t108, 195, 76, 104, 78, 101, 57, 89, 69, 245, 76, 174, 94,\n\t\t207, 89, 102, 93, 146, 234, 166, 21, 149, 51, 117, 84, 77,\n\t\t46, 87, 28, 221, 48, 13, 219, 136, 86, 73, 1, 27, 133, 44,\n\t\t77, 96, 44, 9, 48, 224, 152, 47, 227, 32, 60, 188, 139, 187,\n\t\t36, 197, 208, 39, 167, 24, 133, 252, 192, 241, 122, 180, 75,\n\t\t221, 208, 233, 133, 130, 129, 28, 219, 139, 153, 15, 224,\n\t\t133, 179, 87, 189, 214, 251, 226, 77, 254, 43, 58, 254, 59,\n\t\t231, 143, 52, 188, 215, 198, 25, 109, 47, 58, 244, 34, 245,\n\t\t253, 47, 154, 125, 252, 193, 107, 170, 47, 126, 80, 174, 194,\n\t\t131, 82, 231, 196, 66, 107, 246, 69, 227, 57, 126, 8, 127,\n\t\t27, 200, 192, 102, 94, 166, 98, 12, 148, 219, 197, 203, 171,\n\t\t240, 32, 100, 76, 203, 156, 184, 113, 50, 58, 29, 132, 221,\n\t\t184, 191, 23, 32, 122, 64, 82, 101, 122, 126, 4, 176, 140,\n\t\t31, 56, 79, 101, 248, 180, 185, 89, 239, 213, 55, 205, 69,\n\t\t249, 184, 170, 30, 151, 79, 10, 73, 249, 46, 42, 111, 31,\n\t\t39, 154, 140, 90, 219, 50, 253, 166, 156, 250, 103, 22, 29,\n\t\t186, 249, 207, 41, 185, 240, 10, 67, 94, 215, 180, 117, 217,\n\t\t120, 69, 236, 151, 100, 177, 152, 99, 140, 227, 231, 141,\n\t\t240, 25, 71, 157, 60, 223, 54, 124, 146, 89, 131, 182, 162,\n\t\t229, 249, 157, 17, 123, 243, 138, 69, 184, 53, 62, 20, 110,\n\t\t218, 249, 209, 133, 97, 84, 207, 22, 23, 39, 139, 193, 120,\n\t\t1, 174, 120, 189, 245, 93, 218, 146, 235, 224, 206, 110, 124,\n\t\t84, 239, 187, 108, 195, 237, 239, 227, 18, 204, 241, 113,\n\t\t223, 195, 189, 77, 48, 106, 224, 235, 152, 95, 172, 193, 152,\n\t\t69, 88, 18, 46, 13, 104, 140, 17, 21, 205, 220, 44, 224, 139,\n\t\t197, 177, 51, 126, 224, 4, 36, 62, 204, 49, 64, 219, 219,\n\t\t210, 181, 151, 90, 78, 246, 233, 164, 231, 37, 111, 217, 83,\n\t\t182, 83, 75, 41, 191, 145, 14, 246, 105, 21, 71, 208, 111,\n\t\t212, 42, 49, 92, 237, 23, 10, 87, 189, 212, 90, 242, 170,\n\t\t94, 205, 190, 166, 114, 75, 69, 20, 139, 205, 150, 34, 100,\n\t\t42, 234, 81, 69, 152, 198, 201, 153, 5, 167, 24, 202, 122,\n\t\t212, 218, 18, 144, 76, 98, 179, 163, 166, 181, 216, 89, 133,\n\t\t220, 174, 61, 9, 187, 194, 241, 156, 210, 138, 35, 158, 185,\n\t\t184, 49, 102, 53, 234, 133, 61, 215, 107, 47, 69, 250, 42,\n\t\t20, 178, 86, 203, 255, 69, 81, 52, 77, 93, 62, 103, 62, 12,\n\t\t105, 70, 209, 8, 189, 206, 144, 13, 25, 62, 230, 154, 166,\n\t\t40, 254, 162, 223, 178, 178, 150, 108, 200, 198, 117, 148,\n\t\t104, 74, 134, 194, 135, 77, 8, 44, 125, 24, 28, 84, 90, 208,\n\t\t81, 55, 149, 164, 80, 60, 89, 72, 95, 80, 49, 161, 89, 245,\n\t\t117, 94, 246, 186, 232, 49, 110, 232, 111, 163, 222, 166,\n\t\t234, 192, 150, 114, 48, 96, 16, 84, 204, 136, 116, 93, 214,\n\t\t123, 157, 154, 37, 148, 40, 23, 210, 133, 147, 147, 124, 120,\n\t\t174, 75, 47, 129, 19, 224, 134, 231, 212, 166, 19, 168, 202,\n\t\t212, 223, 78, 187, 19, 122, 237, 78, 155, 49, 75, 212, 90,\n\t\t208, 175, 6, 177, 255, 185, 215, 93, 174, 45, 86, 249, 48,\n\t\t189, 15, 46, 185, 157, 246, 114, 205, 127, 78, 125, 248, 237,\n\t\t106, 6, 65, 152, 18, 161, 8, 161, 235, 66, 40, 66, 49, 5,\n\t\t33, 202, 168, 80, 220, 223, 58, 124, 184, 229, 88, 152, 10,\n\t\t48, 232, 247, 3, 40, 64, 68, 136, 253, 240, 115, 105, 185,\n\t\t143, 186, 162, 136, 146, 25, 81, 211, 196, 76, 18, 137, 162,\n\t\t139, 14, 29, 218, 60, 68, 17, 38, 253, 19, 125, 104, 208,\n\t\t209, 143, 114, 13, 85, 152, 248, 41, 50, 96, 6, 220, 54, 29,\n\t\t185, 189, 2, 167, 16, 75, 59, 109, 79, 228, 76, 211, 181,\n\t\t42, 177, 67, 174, 97, 57, 28, 40, 151, 103, 81, 112, 34, 226,\n\t\t238, 114, 139, 41, 99, 171, 176, 211, 229, 225, 171, 156,\n\t\t96, 151, 165, 155, 19, 199, 246, 224, 55, 41, 205, 83, 155,\n\t\t222, 69, 251, 71, 111, 120, 236, 177, 15, 61, 182, 96, 42,\n\t\t116, 116, 233, 209, 51, 193, 90, 112, 224, 204, 7, 141, 84,\n\t\t38, 37, 153, 82, 210, 144, 168, 38, 18, 66, 243, 152, 202,\n\t\t123, 140, 148, 102, 105, 151, 215, 98, 106, 211, 60, 165,\n\t\t119, 81, 197, 92, 120, 236, 67, 143, 61, 118, 195, 209, 62,\n\t\t149, 207, 28, 8, 14, 249, 103, 30, 61, 130, 211, 137, 84,\n\t\t150, 59, 133, 84, 76, 85, 81, 16, 37, 172, 8, 58, 78, 39,\n\t\t52, 91, 191, 188, 122, 130, 129, 48, 121, 14, 139, 60, 11,\n\t\t242, 123, 120, 18, 189, 41, 136, 67, 111, 140, 176, 85, 132,\n\t\t207, 127, 151, 47, 95, 157, 63, 36, 72, 194, 161, 99, 138,\n\t\t97, 216, 6, 209, 158, 239, 86, 126, 106, 190, 52, 115, 189,\n\t\t32, 92, 63, 83, 234, 26, 182, 193, 244, 71, 118, 189, 140,\n\t\t7, 47, 210, 237, 76, 144, 3, 117, 208, 5, 32, 52, 160, 199,\n\t\t204, 125, 204, 202, 215, 237, 56, 221, 49, 16, 131, 71, 194,\n\t\t137, 118, 33, 116, 59, 206, 184, 195, 70, 138, 244, 159, 54,\n\t\t92, 215, 201, 150, 51, 77, 61, 149, 44, 158, 221, 218, 178,\n\t\t244, 33, 34, 210, 54, 79, 125, 221, 46, 58, 175, 200, 150,\n\t\t51, 123, 162, 125, 111, 46, 222, 58, 155, 180, 50, 94, 229,\n\t\t168, 123, 213, 133, 173, 139, 229, 178, 110, 33, 195, 228,\n\t\t249, 72, 163, 103, 46, 60, 157, 93, 73, 156, 229, 187, 119,\n\t\t240, 180, 174, 129, 219, 32, 199, 159, 101, 28, 122, 190,\n\t\t3, 21, 53, 230, 219, 244, 38, 104, 240, 130, 193, 232, 227,\n\t\t118, 52, 146, 18, 180, 86, 97, 7, 237, 215, 180, 102, 147,\n\t\t65, 61, 53, 155, 12, 15, 106, 106, 75, 136, 196, 132, 207,\n\t\t220, 65, 202, 102, 41, 117, 227, 66, 180, 113, 210, 82, 246,\n\t\t189, 0, 165, 212, 207, 94, 233, 240, 120, 235, 203, 134, 178,\n\t\t168, 24, 163, 55, 59, 118, 254, 125, 172, 152, 124, 9, 60,\n\t\t164, 234, 147, 235, 70, 44, 207, 119, 47, 0, 152, 191, 222,\n\t\t88, 204, 98, 102, 179, 197, 113, 108, 73, 47, 124, 110, 176,\n\t\t14, 8, 207, 80, 89, 157, 111, 190, 228, 169, 167, 94, 210,\n\t\t92, 208, 4, 164, 83, 116, 246, 85, 175, 58, 139, 232, 207,\n\t\t82, 65, 12, 117, 72, 69, 36, 28, 62, 28, 9, 74, 80, 15, 69,\n\t\t129, 30, 175, 10, 154, 80, 77, 201, 68, 21, 205, 167, 254,\n\t\t248, 41, 19, 235, 26, 124, 213, 47, 188, 10, 126, 27, 106,\n\t\t98, 239, 184, 72, 225, 204, 12, 36, 248, 120, 79, 212, 160,\n\t\t122, 132, 144, 35, 209, 51, 150, 162, 54, 0, 255, 4, 110,\n\t\t131, 2, 40, 3, 31, 204, 130, 5, 208, 2, 237, 168, 45, 212,\n\t\t217, 140, 192, 156, 136, 227, 235, 218, 207, 109, 190, 157,\n\t\t182, 155, 128, 53, 143, 6, 53, 234, 117, 4, 218, 161, 94,\n\t\t72, 59, 129, 23, 214, 194, 78, 0, 159, 234, 170, 174, 115,\n\t\t95, 95, 157, 83, 251, 247, 57, 174, 218, 221, 189, 185, 214,\n\t\t176, 203, 221, 243, 221, 238, 249, 190, 215, 252, 152, 109,\n\t\t55, 26, 246, 143, 122, 205, 39, 27, 246, 246, 77, 214, 204,\n\t\t173, 169, 212, 173, 51, 214, 77, 147, 18, 172, 132, 55, 222,\n\t\t120, 35, 52, 252, 126, 165, 114, 161, 242, 26, 191, 95, 217,\n\t\t209, 169, 126, 151, 233, 200, 1, 56, 2, 0, 187, 164, 100,\n\t\t173, 187, 28, 86, 162, 6, 202, 225, 51, 60, 215, 137, 170,\n\t\t124, 106, 64, 198, 114, 29, 13, 46, 1, 75, 134, 97, 156, 188,\n\t\t53, 62, 230, 186, 251, 121, 76, 127, 167, 221, 187, 90, 212,\n\t\t68, 127, 72, 209, 131, 116, 232, 139, 154, 248, 191, 134,\n\t\t218, 230, 158, 162, 87, 220, 212, 134, 246, 81, 203, 66, 130,\n\t\t16, 100, 32, 129, 153, 64, 16, 208, 238, 205, 111, 97, 60,\n\t\t63, 122, 230, 111, 20, 73, 82, 254, 6, 154, 243, 24, 127,\n\t\t226, 30, 37, 49, 122, 124, 179, 16, 96, 209, 79, 191, 16,\n\t\t62, 150, 80, 238, 49, 191, 90, 42, 33, 220, 64, 168, 129,\n\t\t209, 164, 4, 212, 137, 126, 168, 0, 29, 152, 192, 2, 46, 104,\n\t\t48, 44, 252, 59, 192, 221, 224, 190, 152, 251, 158, 55, 101,\n\t\t28, 122, 52, 232, 4, 161, 23, 210, 64, 176, 57, 236, 84, 55,\n\t\t185, 28, 68, 2, 70, 178, 18, 16, 135, 89, 79, 237, 34, 220,\n\t\t15, 57, 105, 36, 159, 55, 98, 128, 132, 232, 174, 107, 75,\n\t\t236, 190, 97, 156, 45, 16, 205, 154, 2, 13, 66, 175, 70, 131,\n\t\t176, 227, 209, 124, 35, 191, 65, 101, 248, 35, 169, 228, 173,\n\t\t201, 234, 203, 146, 169, 119, 38, 83, 63, 82, 244, 8, 206,\n\t\t250, 38, 220, 104, 244, 71, 23, 3, 36, 228, 114, 2, 150, 73,\n\t\t63, 79, 84, 149, 228, 251, 26, 121, 86, 13, 252, 49, 42, 175,\n\t\t53, 71, 23, 26, 125, 149, 157, 199, 40, 151, 87, 203, 229,\n\t\t72, 160, 217, 144, 233, 192, 254, 221, 98, 113, 57, 159, 46,\n\t\t22, 95, 82, 44, 142, 190, 148, 246, 69, 88, 207, 193, 243,\n\t\t57, 167, 223, 184, 4, 254, 85, 196, 4, 55, 155, 88, 149, 73,\n\t\t83, 81, 154, 234, 238, 205, 209, 223, 202, 180, 185, 214,\n\t\t111, 148, 33, 142, 78, 241, 186, 110, 183, 219, 157, 182,\n\t\t77, 113, 172, 0, 16, 9, 127, 206, 180, 141, 98, 202, 35, 95,\n\t\t185, 130, 111, 158, 149, 138, 176, 67, 157, 78, 215, 235,\n\t\t214, 28, 248, 104, 113, 35, 107, 233, 229, 169, 8, 164, 24,\n\t\t92, 151, 215, 148, 117, 43, 187, 81, 148, 54, 183, 54, 225,\n\t\t22, 203, 249, 231, 6, 0, 230, 151, 122, 134, 47, 185, 49,\n\t\t128, 227, 7, 12, 162, 127, 76, 87, 30, 197, 58, 220, 0, 28,\n\t\t6, 71, 121, 238, 118, 226, 138, 176, 56, 147, 82, 192, 38,\n\t\t196, 46, 83, 170, 187, 108, 48, 102, 178, 144, 195, 220, 16,\n\t\t78, 221, 233, 116, 113, 165, 91, 65, 63, 40, 65, 40, 133,\n\t\t236, 71, 183, 166, 150, 97, 84, 125, 83, 40, 203, 143, 228,\n\t\t136, 64, 127, 229, 87, 168, 64, 114, 143, 200, 114, 56, 218,\n\t\t222, 190, 4, 224, 96, 180, 221, 194, 138, 36, 218, 211, 89,\n\t\t147, 124, 105, 139, 146, 130, 151, 6, 41, 209, 22, 219, 3,\n\t\t147, 152, 226, 13, 55, 136, 38, 49, 7, 109, 209, 22, 83, 131,\n\t\t139, 131, 193, 197, 1, 31, 223, 190, 133, 40, 124, 35, 72,\n\t\t130, 61, 0, 88, 61, 38, 159, 79, 13, 186, 248, 57, 134, 233,\n\t\t18, 116, 233, 159, 170, 197, 162, 122, 211, 61, 209, 40, 123,\n\t\t15, 220, 216, 163, 105, 158, 26, 141, 170, 170, 167, 105,\n\t\t123, 118, 109, 193, 31, 84, 53, 115, 116, 193, 212, 212, 155,\n\t\t88, 168, 208, 230, 149, 14, 138, 183, 46, 199, 6, 47, 76,\n\t\t99, 131, 143, 241, 123, 124, 110, 86, 136, 198, 221, 41, 244,\n\t\t40, 174, 53, 253, 3, 115, 160, 73, 27, 253, 126, 99, 227,\n\t\t252, 249, 141, 70, 255, 244, 52, 164, 207, 87, 152, 163, 236,\n\t\t129, 254, 70, 255, 252, 214, 249, 254, 198, 199, 198, 152,\n\t\t180, 76, 55, 31, 192, 79, 51, 44, 222, 195, 224, 56, 0, 113,\n\t\t212, 19, 173, 93, 182, 174, 36, 43, 148, 229, 73, 249, 1,\n\t\t67, 220, 224, 73, 83, 45, 72, 188, 176, 231, 93, 110, 42,\n\t\t29, 95, 48, 124, 66, 146, 222, 147, 122, 139, 36, 189, 33,\n\t\t245, 160, 36, 189, 56, 57, 186, 8, 135, 201, 209, 121, 172,\n\t\t5, 74, 134, 94, 141, 174, 150, 50, 106, 160, 225, 44, 214,\n\t\t246, 228, 114, 123, 52, 12, 111, 206, 213, 57, 144, 106, 61,\n\t\t23, 35, 18, 13, 37, 83, 26, 140, 63, 112, 115, 48, 250, 154,\n\t\t78, 211, 68, 144, 174, 251, 194, 9, 25, 211, 52, 213, 15,\n\t\t106, 16, 31, 59, 134, 161, 118, 190, 158, 227, 161, 202, 185,\n\t\t250, 230, 56, 161, 158, 76, 100, 88, 10, 138, 96, 17, 28,\n\t\t231, 104, 64, 99, 157, 193, 187, 178, 60, 75, 152, 136, 54,\n\t\t113, 199, 247, 186, 203, 148, 196, 176, 157, 187, 152, 221,\n\t\t253, 4, 12, 124, 234, 197, 98, 108, 106, 76, 198, 225, 49,\n\t\t29, 120, 235, 50, 161, 246, 195, 107, 173, 50, 83, 120, 202,\n\t\t159, 17, 232, 53, 215, 80, 129, 8, 210, 29, 119, 72, 2, 17,\n\t\t232, 213, 87, 79, 182, 254, 55, 151, 100, 31, 97, 167, 128,\n\t\t125, 166, 75, 127, 229, 89, 98, 109, 209, 207, 150, 45, 61,\n\t\t106, 238, 186, 85, 206, 190, 86, 18, 138, 69, 65, 50, 36,\n\t\t97, 126, 158, 173, 226, 173, 185, 57, 65, 250, 151, 72, 190,\n\t\t141, 207, 51, 133, 239, 249, 219, 160, 12, 106, 207, 202,\n\t\t216, 220, 15, 173, 233, 134, 158, 128, 86, 157, 118, 166,\n\t\t17, 52, 51, 255, 210, 149, 245, 140, 174, 204, 206, 42, 122,\n\t\t70, 151, 187, 255, 50, 250, 251, 135, 190, 58, 165, 121, 30,\n\t\t59, 166, 203, 150, 172, 247, 251, 108, 117, 108, 244, 203,\n\t\t91, 91, 96, 18, 83, 178, 5, 246, 128, 144, 123, 152, 97, 81,\n\t\t232, 180, 119, 40, 101, 232, 100, 172, 99, 239, 192, 231,\n\t\t98, 134, 91, 128, 171, 2, 139, 45, 97, 145, 37, 227, 128,\n\t\t235, 73, 211, 170, 137, 94, 101, 206, 75, 36, 217, 79, 15,\n\t\t203, 186, 37, 211, 11, 89, 159, 1, 194, 54, 250, 86, 167,\n\t\t147, 255, 224, 160, 191, 209, 31, 36, 216, 163, 188, 137,\n\t\t63, 80, 224, 250, 185, 132, 248, 249, 232, 122, 159, 220,\n\t\t180, 116, 147, 202, 126, 150, 209, 255, 100, 173, 126, 227,\n\t\t134, 66, 96, 136, 155, 131, 199, 27, 253, 126, 227, 241, 193,\n\t\t198, 180, 53, 3, 49, 108, 144, 223, 100, 124, 203, 225, 20,\n\t\t242, 27, 23, 39, 3, 167, 214, 173, 57, 181, 46, 129, 46, 169,\n\t\t93, 97, 184, 102, 169, 78, 157, 74, 219, 59, 191, 184, 222,\n\t\t29, 116, 215, 23, 27, 139, 139, 139, 13, 120, 2, 91, 230,\n\t\t244, 8, 109, 218, 68, 145, 60, 248, 18, 79, 130, 131, 225,\n\t\t176, 187, 190, 222, 29, 14, 155, 222, 103, 159, 126, 250,\n\t\t179, 222, 232, 219, 137, 28, 143, 20, 229, 203, 92, 162, 204,\n\t\t176, 6, 249, 251, 92, 99, 114, 218, 129, 113, 230, 23, 123,\n\t\t140, 203, 189, 112, 153, 231, 122, 186, 30, 207, 248, 10,\n\t\t123, 46, 37, 212, 15, 122, 204, 113, 73, 253, 32, 78, 5, 45,\n\t\t66, 202, 2, 220, 224, 217, 210, 92, 171, 242, 76, 163, 63,\n\t\t83, 128, 253, 70, 110, 65, 79, 101, 179, 254, 255, 36, 84,\n\t\t236, 158, 73, 214, 97, 191, 97, 37, 169, 130, 94, 126, 125,\n\t\t50, 69, 16, 174, 205, 62, 112, 27, 106, 150, 42, 173, 126,\n\t\t163, 180, 164, 64, 17, 54, 250, 57, 47, 229, 103, 147, 1,\n\t\t84, 241, 85, 120, 198, 36, 184, 209, 167, 148, 234, 218, 198,\n\t\t121, 1, 234, 130, 125, 245, 236, 213, 55, 199, 190, 24, 142,\n\t\t141, 88, 228, 60, 36, 187, 115, 213, 150, 253, 229, 93, 151,\n\t\t76, 234, 174, 71, 56, 194, 223, 142, 67, 123, 226, 179, 135,\n\t\t209, 221, 176, 188, 103, 254, 29, 66, 9, 109, 66, 116, 176,\n\t\t48, 211, 111, 140, 158, 105, 244, 151, 235, 112, 173, 89,\n\t\t237, 25, 102, 42, 235, 195, 209, 169, 132, 147, 144, 143,\n\t\t203, 186, 80, 56, 45, 73, 167, 11, 130, 46, 223, 56, 139,\n\t\t83, 120, 246, 70, 89, 23, 138, 73, 93, 54, 42, 183, 172, 229,\n\t\t151, 106, 153, 89, 101, 191, 164, 233, 133, 224, 49, 101,\n\t\t169, 20, 181, 4, 191, 39, 64, 81, 128, 205, 181, 153, 162,\n\t\t226, 103, 161, 232, 154, 82, 194, 202, 236, 250, 250, 228,\n\t\t140, 55, 33, 98, 235, 149, 181, 91, 154, 181, 165, 156, 55,\n\t\t115, 88, 148, 112, 11, 0, 229, 210, 232, 210, 39, 88, 142,\n\t\t26, 6, 6, 240, 64, 25, 4, 96, 17, 236, 3, 71, 192, 58, 184,\n\t\t30, 128, 208, 11, 162, 246, 65, 88, 15, 44, 65, 234, 247,\n\t\t58, 158, 99, 147, 64, 224, 214, 104, 151, 122, 181, 241, 29,\n\t\t71, 125, 164, 37, 248, 108, 236, 181, 169, 16, 137, 176, 132,\n\t\t113, 71, 133, 145, 248, 77, 131, 14, 13, 238, 187, 255, 105,\n\t\t81, 68, 4, 18, 17, 93, 119, 149, 128, 132, 223, 167, 226,\n\t\t131, 39, 17, 250, 73, 44, 139, 43, 15, 220, 134, 83, 248,\n\t\t182, 31, 66, 34, 129, 199, 205, 13, 132, 168, 240, 147, 8,\n\t\t33, 1, 9, 159, 65, 162, 128, 30, 126, 9, 18, 197, 167, 51,\n\t\t119, 221, 117, 215, 223, 127, 194, 149, 196, 190, 128, 132,\n\t\t159, 17, 16, 108, 126, 5, 17, 119, 77, 196, 8, 222, 180, 4,\n\t\t69, 116, 135, 32, 227, 119, 126, 64, 146, 62, 80, 128, 108,\n\t\t191, 240, 88, 238, 109, 34, 69, 232, 14, 36, 194, 209, 255,\n\t\t36, 232, 44, 68, 34, 90, 251, 171, 159, 18, 37, 247, 179,\n\t\t23, 46, 176, 247, 253, 27, 112, 27, 254, 30, 227, 105, 172,\n\t\t1, 192, 108, 235, 99, 59, 251, 56, 183, 50, 18, 22, 162, 123,\n\t\t103, 84, 216, 126, 23, 190, 95, 20, 127, 235, 183, 68, 241,\n\t\t253, 229, 242, 71, 69, 169, 252, 14, 201, 124, 70, 18, 127,\n\t\t211, 148, 222, 81, 134, 167, 144, 130, 30, 121, 4, 41, 232,\n\t\t110, 219, 254, 79, 2, 198, 191, 229, 91, 47, 196, 138, 114,\n\t\t241, 1, 140, 133, 135, 46, 42, 10, 126, 161, 229, 79, 251,\n\t\t252, 126, 150, 197, 60, 237, 159, 142, 111, 12, 186, 209,\n\t\t79, 117, 218, 110, 9, 142, 135, 20, 220, 241, 174, 32, 191,\n\t\t196, 54, 100, 219, 133, 207, 80, 185, 158, 43, 15, 109, 154,\n\t\t239, 74, 73, 145, 134, 220, 246, 250, 204, 127, 123, 138,\n\t\t141, 231, 91, 60, 15, 107, 38, 26, 121, 224, 166, 76, 203,\n\t\t185, 250, 76, 243, 41, 85, 146, 114, 138, 100, 44, 178, 241,\n\t\t227, 166, 222, 159, 239, 116, 222, 63, 81, 150, 74, 108, 196,\n\t\t97, 114, 213, 183, 47, 125, 146, 201, 85, 38, 56, 4, 174,\n\t\t5, 32, 140, 218, 122, 244, 130, 29, 219, 99, 42, 11, 102,\n\t\t221, 147, 119, 144, 112, 21, 133, 209, 235, 30, 247, 5, 78,\n\t\t191, 238, 48, 170, 20, 70, 126, 93, 115, 108, 215, 11, 137,\n\t\t235, 185, 97, 74, 147, 229, 135, 147, 115, 169, 71, 19, 127,\n\t\t165, 74, 210, 205, 240, 53, 229, 26, 18, 142, 46, 142, 116,\n\t\t73, 49, 174, 121, 193, 175, 159, 219, 211, 57, 32, 138, 7,\n\t\t86, 5, 17, 255, 147, 169, 172, 19, 33, 33, 36, 165, 146, 33,\n\t\t231, 7, 166, 106, 8, 134, 106, 225, 109, 232, 210, 135, 13,\n\t\t164, 157, 157, 159, 155, 181, 233, 145, 53, 243, 64, 173,\n\t\t53, 80, 36, 67, 48, 147, 25, 161, 120, 91, 239, 129, 12, 82,\n\t\t80, 166, 45, 42, 250, 157, 178, 34, 209, 188, 164, 200, 94,\n\t\t93, 203, 144, 95, 208, 146, 16, 90, 113, 124, 233, 39, 89,\n\t\t76, 78, 147, 97, 138, 49, 102, 85, 143, 212, 170, 145, 70,\n\t\t230, 49, 255, 92, 224, 135, 36, 96, 65, 183, 29, 22, 105,\n\t\t198, 110, 177, 211, 118, 225, 23, 58, 168, 116, 52, 91, 132,\n\t\t197, 66, 9, 194, 27, 26, 9, 89, 172, 181, 83, 158, 84, 117,\n\t\t83, 102, 222, 212, 84, 55, 209, 56, 104, 204, 54, 173, 194,\n\t\t213, 240, 173, 157, 107, 147, 114, 166, 120, 99, 69, 153,\n\t\t53, 92, 85, 203, 212, 82, 110, 85, 242, 82, 25, 51, 111, 138,\n\t\t114, 162, 113, 195, 245, 7, 13, 79, 47, 236, 196, 166, 115,\n\t\t91, 65, 25, 44, 130, 1, 216, 0, 155, 224, 60, 24, 130, 39,\n\t\t193, 187, 192, 207, 130, 15, 1, 16, 50, 28, 37, 70, 200, 22,\n\t\t246, 194, 85, 232, 113, 168, 209, 152, 176, 62, 236, 181,\n\t\t133, 157, 137, 106, 229, 74, 68, 115, 22, 59, 65, 11, 178,\n\t\t239, 247, 220, 18, 167, 254, 138, 186, 49, 163, 253, 170,\n\t\t5, 140, 18, 135, 215, 173, 66, 207, 253, 110, 196, 117, 65,\n\t\t175, 237, 37, 25, 218, 85, 208, 11, 121, 193, 114, 61, 142,\n\t\t127, 245, 90, 21, 99, 136, 244, 219, 49, 197, 80, 176, 4,\n\t\t131, 192, 36, 37, 66, 93, 84, 231, 84, 177, 46, 16, 90, 26,\n\t\t48, 55, 222, 230, 238, 197, 207, 99, 85, 150, 100, 245, 52,\n\t\t17, 112, 113, 142, 232, 194, 191, 233, 8, 98, 172, 158, 38,\n\t\t134, 96, 9, 80, 161, 115, 88, 32, 167, 217, 33, 120, 70, 208,\n\t\t201, 220, 181, 87, 56, 199, 150, 162, 41, 145, 56, 166, 217,\n\t\t146, 41, 13, 109, 77, 50, 165, 239, 80, 93, 55, 12, 76, 113,\n\t\t115, 158, 136, 226, 19, 72, 39, 247, 170, 234, 189, 68, 71,\n\t\t210, 232, 226, 142, 173, 119, 184, 83, 132, 121, 77, 34, 146,\n\t\t76, 59, 162, 65, 102, 210, 2, 166, 127, 98, 24, 186, 78, 59,\n\t\t162, 72, 230, 155, 84, 249, 89, 98, 136, 29, 42, 75, 68, 210,\n\t\t206, 81, 44, 164, 191, 114, 197, 147, 252, 51, 66, 163, 63,\n\t\t151, 164, 239, 164, 180, 209, 151, 37, 9, 230, 180, 212, 119,\n\t\t166, 56, 175, 88, 108, 115, 36, 223, 95, 15, 238, 5, 47, 7,\n\t\t192, 138, 4, 186, 93, 169, 7, 2, 11, 107, 28, 155, 217, 121,\n\t\t204, 255, 216, 234, 226, 113, 43, 158, 207, 236, 119, 124,\n\t\t23, 83, 81, 121, 224, 123, 1, 218, 157, 48, 78, 17, 96, 120,\n\t\t137, 147, 132, 1, 234, 119, 67, 38, 22, 116, 218, 222, 69,\n\t\t67, 121, 194, 80, 70, 23, 34, 85, 225, 119, 54, 119, 232,\n\t\t77, 162, 203, 151, 164, 133, 84, 198, 112, 145, 170, 73, 146,\n\t\t54, 41, 109, 74, 166, 52, 131, 13, 60, 35, 153, 146, 105,\n\t\t254, 32, 29, 18, 133, 194, 190, 98, 140, 62, 22, 157, 3, 62,\n\t\t173, 24, 163, 175, 154, 18, 35, 202, 147, 76, 78, 175, 176,\n\t\t233, 153, 166, 102, 65, 68, 37, 83, 154, 42, 62, 42, 73, 78,\n\t\t24, 96, 28, 132, 142, 36, 57, 165, 108, 182, 244, 81, 170,\n\t\t144, 33, 157, 122, 54, 42, 56, 28, 247, 1, 0, 107, 213, 113,\n\t\t96, 175, 227, 49, 203, 152, 83, 233, 6, 254, 10, 99, 205,\n\t\t15, 249, 130, 77, 197, 236, 17, 116, 24, 3, 104, 56, 126,\n\t\t98, 241, 23, 3, 22, 213, 202, 207, 129, 171, 187, 163, 134,\n\t\t59, 151, 109, 67, 176, 40, 241, 203, 31, 154, 218, 204, 37,\n\t\t144, 171, 75, 82, 153, 129, 57, 170, 170, 150, 115, 114, 4,\n\t\t10, 6, 66, 162, 64, 82, 233, 178, 43, 233, 53, 59, 47, 211,\n\t\t243, 89, 191, 156, 76, 112, 252, 199, 209, 133, 88, 230, 140,\n\t\t27, 3, 15, 188, 40, 11, 111, 103, 42, 236, 141, 201, 64, 155,\n\t\t25, 12, 114, 245, 238, 9, 65, 211, 72, 86, 78, 53, 100, 36,\n\t\t136, 130, 132, 68, 57, 151, 75, 65, 41, 122, 132, 84, 174,\n\t\t31, 36, 108, 68, 190, 16, 59, 39, 216, 98, 28, 148, 204, 230,\n\t\t144, 143, 195, 33, 252, 12, 40, 50, 78, 171, 29, 45, 209,\n\t\t231, 112, 10, 85, 190, 138, 38, 176, 168, 57, 93, 78, 11,\n\t\t242, 171, 167, 30, 178, 105, 70, 83, 230, 85, 117, 22, 27,\n\t\t120, 86, 85, 231, 21, 45, 67, 237, 251, 41, 211, 108, 222,\n\t\t206, 245, 155, 109, 244, 242, 147, 163, 103, 84, 73, 74, 201,\n\t\t234, 162, 166, 53, 49, 110, 106, 218, 162, 42, 167, 36, 73,\n\t\t133, 210, 198, 15, 124, 105, 23, 135, 8, 98, 252, 215, 220,\n\t\t158, 24, 112, 123, 98, 172, 160, 18, 30, 205, 203, 98, 224,\n\t\t41, 83, 201, 60, 215, 227, 84, 200, 117, 23, 237, 215, 180,\n\t\t115, 204, 236, 167, 22, 102, 178, 75, 214, 185, 214, 27, 90,\n\t\t123, 178, 114, 65, 85, 181, 209, 55, 150, 68, 250, 207, 169,\n\t\t229, 186, 13, 46, 225, 145, 170, 157, 99, 105, 118, 90, 94,\n\t\t206, 46, 89, 89, 107, 79, 171, 181, 39, 59, 83, 208, 84, 85,\n\t\t90, 18, 241, 37, 187, 190, 156, 250, 103, 10, 0, 48, 167,\n\t\t114, 147, 56, 230, 108, 0, 90, 224, 1, 240, 40, 120, 61, 120,\n\t\t18, 188, 27, 124, 0, 252, 34, 248, 4, 248, 93, 240, 39, 0,\n\t\t88, 157, 54, 19, 146, 107, 241, 154, 89, 195, 167, 214, 158,\n\t\t195, 55, 42, 241, 254, 202, 127, 52, 74, 131, 13, 152, 83,\n\t\t81, 35, 226, 78, 177, 94, 101, 147, 57, 43, 27, 112, 167,\n\t\t222, 219, 41, 26, 176, 189, 179, 225, 94, 177, 184, 235, 232,\n\t\t175, 154, 82, 185, 111, 74, 229, 104, 125, 212, 148, 202,\n\t\t155, 101, 201, 148, 70, 81, 9, 153, 223, 75, 132, 135, 76,\n\t\t179, 182, 161, 17, 146, 254, 206, 71, 248, 26, 74, 84, 37,\n\t\t81, 193, 120, 154, 87, 52, 20, 182, 34, 234, 33, 190, 253,\n\t\t159, 248, 170, 125, 217, 94, 88, 150, 30, 125, 84, 186, 210,\n\t\t71, 166, 231, 47, 15, 240, 224, 218, 131, 110, 241, 40, 118,\n\t\t75, 63, 79, 229, 178, 169, 146, 156, 162, 4, 134, 106, 78,\n\t\t74, 101, 170, 73, 227, 202, 197, 103, 239, 151, 52, 122, 133,\n\t\t47, 93, 161, 36, 105, 20, 236, 226, 18, 157, 1, 11, 87, 96,\n\t\t113, 240, 106, 140, 224, 141, 178, 193, 165, 118, 16, 182,\n\t\t96, 2, 134, 180, 4, 163, 18, 15, 153, 230, 129, 85, 23, 204,\n\t\t39, 95, 70, 75, 137, 95, 239, 139, 228, 134, 167, 205, 193,\n\t\t160, 92, 30, 12, 203, 101, 211, 44, 151, 205, 169, 187, 44,\n\t\t255, 111, 179, 42, 223, 247, 115, 138, 162, 107, 159, 43,\n\t\t151, 203, 131, 65, 121, 155, 29, 98, 150, 185, 189, 227, 147,\n\t\t241, 216, 151, 3, 199, 192, 41, 0, 60, 198, 13, 82, 171, 6,\n\t\t77, 20, 26, 176, 5, 121, 46, 122, 164, 21, 121, 220, 107,\n\t\t59, 54, 185, 181, 32, 37, 75, 220, 88, 192, 205, 91, 221,\n\t\t229, 232, 72, 14, 5, 178, 220, 235, 248, 177, 254, 127, 178,\n\t\t182, 156, 17, 146, 170, 40, 74, 26, 78, 34, 149, 14, 68, 34,\n\t\t192, 172, 180, 175, 66, 41, 250, 10, 141, 17, 60, 116, 197,\n\t\t181, 97, 43, 234, 214, 103, 101, 152, 195, 101, 59, 157, 108,\n\t\t213, 100, 122, 11, 203, 7, 77, 255, 112, 247, 110, 85, 135,\n\t\t72, 51, 255, 128, 80, 104, 66, 34, 137, 119, 148, 170, 18,\n\t\t82, 201, 252, 24, 246, 232, 25, 217, 219, 128, 45, 43, 123,\n\t\t90, 183, 44, 253, 244, 13, 138, 46, 138, 247, 217, 153, 100,\n\t\t203, 164, 242, 32, 206, 40, 221, 193, 255, 229, 185, 229,\n\t\t49, 184, 222, 149, 76, 117, 164, 26, 76, 225, 116, 116, 218,\n\t\t222, 164, 95, 241, 168, 138, 85, 52, 73, 119, 62, 146, 204,\n\t\t37, 44, 157, 143, 220, 108, 236, 237, 60, 214, 97, 235, 243,\n\t\t27, 215, 134, 134, 98, 42, 70, 50, 97, 215, 178, 18, 45, 101,\n\t\t135, 92, 231, 222, 180, 75, 201, 91, 116, 139, 191, 31, 214,\n\t\t43, 174, 241, 188, 107, 216, 77, 172, 221, 58, 187, 20, 205,\n\t\t107, 6, 73, 228, 146, 66, 66, 222, 216, 109, 167, 184, 10,\n\t\t110, 131, 117, 112, 26, 0, 232, 48, 74, 44, 226, 183, 144,\n\t\t179, 232, 76, 129, 211, 141, 125, 190, 108, 158, 102, 120,\n\t\t156, 221, 144, 236, 146, 160, 156, 222, 254, 120, 196, 160,\n\t\t156, 69, 104, 124, 35, 3, 172, 224, 138, 154, 198, 150, 201,\n\t\t205, 50, 143, 167, 179, 72, 150, 214, 52, 33, 131, 196, 108,\n\t\t9, 38, 217, 123, 90, 158, 41, 204, 111, 173, 119, 31, 21,\n\t\t49, 20, 83, 148, 200, 215, 240, 91, 122, 197, 117, 68, 83,\n\t\t144, 142, 101, 213, 167, 247, 192, 61, 149, 143, 68, 119,\n\t\t243, 148, 55, 120, 177, 164, 105, 119, 81, 73, 83, 15, 23,\n\t\t102, 145, 32, 232, 22, 135, 95, 152, 89, 134, 149, 238, 58,\n\t\t17, 45, 85, 162, 59, 32, 69, 232, 210, 55, 153, 111, 232,\n\t\t83, 192, 3, 203, 0, 68, 77, 174, 195, 110, 44, 8, 3, 143,\n\t\t114, 130, 221, 118, 175, 59, 30, 227, 249, 50, 172, 71, 35,\n\t\t252, 78, 74, 86, 249, 47, 160, 0, 101, 122, 161, 113, 239,\n\t\t143, 31, 184, 183, 254, 19, 84, 134, 34, 252, 186, 166, 58,\n\t\t170, 246, 101, 85, 253, 178, 166, 184, 170, 6, 129, 86, 212,\n\t\t238, 230, 66, 215, 117, 159, 130, 232, 227, 84, 14, 7, 111,\n\t\t126, 100, 112, 173, 76, 63, 142, 224, 81, 85, 75, 107, 234,\n\t\t231, 20, 229, 115, 172, 240, 55, 138, 114, 110, 57, 186, 232,\n\t\t39, 152, 252, 126, 17, 70, 237, 231, 28, 0, 245, 218, 142,\n\t\t145, 134, 69, 156, 178, 108, 227, 49, 132, 10, 23, 153, 3,\n\t\t127, 39, 201, 122, 170, 212, 227, 193, 12, 49, 187, 68, 239,\n\t\t32, 100, 215, 206, 226, 161, 216, 9, 225, 249, 187, 170, 143,\n\t\t71, 63, 249, 251, 5, 170, 201, 103, 100, 162, 73, 22, 181,\n\t\t41, 146, 180, 66, 253, 122, 171, 86, 144, 115, 222, 92, 180,\n\t\t251, 121, 142, 202, 183, 13, 126, 208, 211, 92, 58, 200, 81,\n\t\t89, 214, 136, 76, 145, 148, 150, 108, 162, 164, 85, 207, 108,\n\t\t114, 99, 248, 149, 247, 103, 211, 241, 110, 30, 23, 246, 53,\n\t\t0, 208, 79, 192, 33, 240, 24, 131, 27, 128, 237, 49, 190,\n\t\t106, 60, 233, 215, 24, 15, 85, 143, 180, 195, 30, 67, 92,\n\t\t245, 196, 73, 9, 94, 245, 167, 199, 218, 165, 220, 193, 66,\n\t\t233, 160, 159, 213, 2, 45, 227, 15, 174, 191, 221, 242, 30,\n\t\t60, 118, 253, 173, 21, 89, 174, 68, 11, 184, 180, 83, 28,\n\t\t62, 112, 237, 217, 163, 69, 189, 239, 39, 147, 126, 255, 137,\n\t\t141, 205, 133, 252, 255, 51, 171, 170, 179, 83, 31, 62, 231,\n\t\t111, 163, 215, 194, 109, 144, 2, 30, 0, 152, 187, 226, 42,\n\t\t85, 102, 192, 9, 97, 175, 237, 37, 160, 23, 118, 208, 43,\n\t\t177, 40, 91, 223, 217, 150, 76, 81, 196, 176, 172, 84, 149,\n\t\t220, 61, 254, 224, 5, 9, 73, 150, 104, 82, 161, 84, 146, 37,\n\t\t184, 157, 72, 28, 127, 175, 63, 152, 142, 235, 91, 7, 215,\n\t\t131, 211, 224, 44, 139, 249, 152, 246, 58, 76, 230, 220, 202,\n\t\t21, 234, 38, 132, 188, 87, 128, 64, 170, 180, 93, 167, 222,\n\t\t233, 214, 132, 24, 187, 24, 13, 101, 122, 111, 127, 140, 224,\n\t\t163, 247, 71, 79, 79, 109, 220, 203, 196, 182, 244, 81, 22,\n\t\t136, 26, 45, 142, 194, 52, 149, 71, 195, 225, 112, 176, 9,\n\t\t183, 55, 63, 70, 229, 198, 14, 77, 86, 99, 186, 204, 186,\n\t\t231, 238, 138, 71, 7, 163, 225, 196, 95, 241, 205, 248, 254,\n\t\t162, 177, 239, 196, 148, 254, 79, 189, 201, 237, 4, 83, 118,\n\t\t71, 194, 90, 180, 203, 239, 50, 240, 153, 60, 207, 26, 239,\n\t\t126, 212, 46, 65, 50, 197, 201, 89, 163, 94, 136, 54, 117,\n\t\t171, 223, 240, 110, 9, 243, 209, 68, 190, 177, 254, 19, 131,\n\t\t104, 125, 49, 158, 92, 45, 253, 254, 226, 34, 166, 197, 198,\n\t\t249, 141, 254, 59, 19, 73, 27, 102, 45, 125, 47, 27, 56, 204,\n\t\t68, 6, 95, 247, 136, 113, 15, 220, 98, 92, 8, 237, 151, 50,\n\t\t19, 228, 147, 27, 108, 37, 27, 178, 149, 181, 234, 133, 185,\n\t\t162, 223, 68, 27, 231, 111, 148, 44, 221, 100, 99, 197, 217,\n\t\t148, 177, 63, 31, 78, 97, 87, 170, 192, 3, 133, 216, 183,\n\t\t198, 39, 163, 229, 25, 102, 178, 238, 181, 189, 94, 119, 25,\n\t\t187, 237, 208, 175, 190, 253, 207, 223, 254, 212, 31, 63,\n\t\t5, 55, 182, 206, 171, 215, 126, 241, 90, 117, 244, 177, 189,\n\t\t239, 217, 187, 239, 167, 224, 240, 212, 234, 29, 251, 79,\n\t\t159, 222, 127, 199, 106, 170, 85, 209, 245, 185, 57, 93, 175,\n\t\t156, 243, 188, 204, 56, 119, 98, 139, 201, 116, 14, 88, 155,\n\t\t138, 172, 113, 75, 144, 78, 34, 107, 234, 241, 83, 106, 193,\n\t\t56, 103, 51, 154, 58, 97, 12, 177, 196, 242, 193, 154, 48,\n\t\t102, 140, 43, 65, 56, 195, 38, 180, 207, 107, 89, 69, 210,\n\t\t203, 215, 69, 207, 230, 16, 44, 68, 171, 94, 81, 183, 203,\n\t\t171, 134, 134, 75, 52, 141, 177, 166, 9, 249, 23, 56, 9, 165,\n\t\t158, 208, 181, 134, 146, 53, 5, 53, 168, 47, 92, 51, 103,\n\t\t103, 225, 38, 155, 205, 190, 153, 79, 16, 167, 96, 101, 173,\n\t\t161, 149, 181, 114, 179, 39, 102, 228, 98, 226, 30, 23, 9,\n\t\t105, 253, 108, 91, 111, 186, 103, 177, 160, 20, 37, 193, 201,\n\t\t73, 197, 188, 234, 168, 141, 238, 142, 13, 136, 251, 38, 179,\n\t\t192, 223, 229, 139, 100, 192, 175, 83, 222, 71, 175, 50, 241,\n\t\t41, 118, 99, 55, 34, 40, 122, 197, 61, 177, 227, 176, 12,\n\t\t55, 198, 94, 193, 137, 39, 112, 244, 154, 180, 47, 226, 160,\n\t\t0, 207, 103, 221, 126, 227, 18, 40, 115, 255, 94, 204, 253,\n\t\t5, 63, 205, 242, 106, 99, 123, 55, 30, 35, 83, 61, 27, 144,\n\t\t106, 2, 67, 181, 19, 179, 72, 232, 132, 236, 238, 50, 78,\n\t\t88, 248, 43, 68, 20, 12, 65, 199, 191, 246, 107, 88, 23, 12,\n\t\t65, 36, 111, 125, 235, 179, 106, 222, 94, 246, 207, 60, 122,\n\t\t198, 47, 19, 164, 74, 175, 150, 20, 196, 225, 138, 185, 59,\n\t\t5, 11, 58, 201, 19, 81, 56, 119, 78, 16, 73, 158, 232, 194,\n\t\t145, 35, 207, 170, 121, 123, 114, 95, 181, 187, 190, 222,\n\t\t173, 238, 75, 102, 149, 68, 66, 249, 201, 93, 26, 8, 227,\n\t\t19, 138, 49, 244, 85, 0, 48, 3, 207, 247, 152, 47, 8, 157,\n\t\t142, 145, 242, 209, 117, 209, 106, 37, 134, 197, 31, 237,\n\t\t141, 86, 227, 62, 121, 13, 252, 52, 176, 192, 203, 192, 27,\n\t\t0, 176, 198, 34, 84, 137, 243, 125, 144, 4, 172, 97, 62, 219,\n\t\t213, 188, 169, 33, 103, 135, 254, 112, 103, 226, 95, 62, 8,\n\t\t107, 99, 118, 202, 253, 48, 136, 121, 139, 74, 168, 19, 174,\n\t\t10, 237, 34, 42, 193, 206, 4, 215, 47, 1, 59, 109, 47, 158,\n\t\t121, 226, 204, 245, 4, 170, 5, 126, 240, 147, 57, 1, 102,\n\t\t145, 70, 76, 66, 80, 218, 70, 16, 99, 248, 22, 89, 215, 13,\n\t\t121, 177, 181, 130, 217, 248, 114, 12, 133, 167, 66, 116,\n\t\t140, 149, 241, 74, 107, 81, 54, 116, 93, 94, 86, 146, 39,\n\t\t142, 40, 180, 43, 235, 134, 46, 183, 87, 102, 20, 68, 19,\n\t\t249, 153, 124, 130, 34, 101, 102, 165, 205, 106, 187, 84,\n\t\t57, 114, 34, 169, 188, 34, 141, 8, 49, 69, 137, 160, 44, 20,\n\t\t114, 89, 140, 33, 130, 153, 30, 165, 24, 159, 32, 4, 97, 164,\n\t\t145, 163, 13, 66, 178, 63, 111, 200, 146, 172, 31, 189, 93,\n\t\t146, 79, 68, 35, 200, 181, 143, 20, 245, 198, 202, 74, 195,\n\t\t40, 60, 194, 140, 47, 39, 100, 233, 246, 163, 186, 44, 201,\n\t\t198, 245, 70, 90, 148, 55, 216, 209, 199, 237, 101, 98, 122,\n\t\t137, 132, 103, 146, 101, 251, 56, 219, 187, 33, 139, 105,\n\t\t227, 67, 71, 137, 134, 48, 132, 68, 60, 129, 49, 165, 61,\n\t\t57, 75, 8, 195, 109, 26, 197, 185, 6, 121, 38, 131, 47, 131,\n\t\t3, 220, 219, 103, 85, 12, 196, 128, 113, 248, 148, 18, 174,\n\t\t210, 21, 248, 108, 85, 246, 242, 117, 239, 50, 191, 228, 16,\n\t\t230, 83, 185, 68, 164, 208, 123, 163, 175, 72, 138, 32, 200,\n\t\t34, 17, 4, 4, 251, 144, 13, 123, 215, 62, 107, 249, 1, 134,\n\t\t218, 28, 123, 40, 183, 173, 125, 199, 102, 63, 148, 89, 202,\n\t\t102, 93, 93, 146, 179, 186, 165, 38, 52, 67, 250, 208, 198,\n\t\t249, 139, 83, 46, 152, 233, 191, 63, 61, 191, 117, 254, 252,\n\t\t214, 147, 156, 86, 126, 23, 78, 70, 2, 60, 0, 30, 6, 143,\n\t\t237, 224, 100, 140, 175, 144, 163, 61, 39, 160, 95, 171, 82,\n\t\t46, 247, 70, 189, 204, 30, 167, 156, 239, 66, 2, 154, 164,\n\t\t156, 239, 194, 2, 98, 241, 23, 92, 240, 138, 90, 81, 167,\n\t\t187, 204, 19, 206, 41, 41, 64, 16, 255, 74, 216, 9, 106, 14,\n\t\t252, 199, 163, 203, 203, 71, 151, 79, 48, 168, 149, 123, 117,\n\t\t75, 238, 100, 114, 251, 103, 78, 234, 50, 197, 20, 19, 82,\n\t\t162, 41, 130, 141, 132, 46, 47, 200, 122, 194, 192, 36, 69,\n\t\t75, 132, 96, 138, 169, 172, 79, 14, 49, 18, 121, 251, 141,\n\t\t114, 202, 16, 251, 247, 20, 197, 4, 118, 101, 73, 31, 189,\n\t\t140, 113, 130, 220, 243, 210, 217, 251, 206, 47, 71, 63, 112,\n\t\t128, 65, 177, 192, 148, 165, 119, 116, 185, 163, 45, 146,\n\t\t231, 62, 221, 179, 127, 81, 215, 222, 110, 231, 37, 93, 122,\n\t\t125, 163, 57, 67, 112, 90, 81, 146, 110, 35, 230, 9, 250,\n\t\t195, 205, 77, 142, 39, 202, 253, 166, 4, 40, 192, 6, 25, 80,\n\t\t6, 13, 134, 71, 75, 107, 204, 88, 91, 11, 93, 222, 37, 59,\n\t\t174, 99, 227, 94, 232, 213, 130, 238, 114, 232, 84, 253, 120,\n\t\t122, 8, 38, 225, 76, 92, 252, 11, 58, 110, 59, 132, 206, 185,\n\t\t83, 137, 65, 35, 119, 203, 139, 214, 50, 189, 151, 172, 163,\n\t\t111, 163, 209, 51, 134, 121, 199, 112, 99, 209, 206, 67, 96,\n\t\t231, 243, 182, 62, 247, 242, 240, 250, 188, 189, 97, 182,\n\t\t42, 87, 207, 209, 218, 241, 26, 252, 232, 225, 153, 133, 141,\n\t\t182, 243, 7, 235, 93, 65, 215, 133, 238, 35, 84, 248, 210,\n\t\t226, 220, 202, 236, 118, 254, 112, 190, 145, 223, 28, 94,\n\t\t31, 206, 217, 121, 55, 91, 105, 109, 154, 102, 140, 223, 8,\n\t\t208, 16, 14, 227, 118, 62, 142, 188, 101, 242, 41, 151, 222,\n\t\t152, 169, 156, 187, 122, 221, 203, 33, 127, 54, 185, 100,\n\t\t226, 37, 73, 78, 223, 167, 231, 164, 178, 197, 196, 148, 187,\n\t\t89, 224, 40, 140, 87, 67, 75, 31, 69, 10, 124, 82, 91, 41,\n\t\t20, 86, 146, 14, 207, 153, 121, 134, 181, 198, 122, 220, 38,\n\t\t163, 185, 231, 207, 144, 2, 223, 7, 202, 224, 42, 112, 51,\n\t\t0, 97, 155, 163, 69, 248, 49, 215, 45, 139, 83, 231, 240,\n\t\t217, 92, 148, 234, 142, 69, 42, 78, 251, 93, 29, 155, 161,\n\t\t87, 81, 145, 5, 87, 121, 109, 151, 198, 200, 105, 227, 19,\n\t\t240, 124, 131, 224, 167, 235, 123, 69, 178, 111, 190, 214,\n\t\t37, 72, 145, 202, 154, 72, 61, 37, 33, 65, 100, 107, 111,\n\t\t141, 70, 15, 38, 96, 157, 208, 108, 132, 172, 132, 71, 69,\n\t\t173, 140, 37, 17, 226, 74, 187, 215, 32, 242, 190, 61, 139,\n\t\t189, 195, 58, 109, 149, 230, 143, 26, 130, 34, 85, 21, 209,\n\t\t200, 71, 111, 225, 33, 181, 176, 221, 154, 89, 184, 106, 161,\n\t\t74, 85, 197, 85, 82, 178, 150, 152, 18, 158, 19, 154, 225,\n\t\t185, 10, 150, 197, 76, 144, 84, 27, 185, 230, 53, 229, 51,\n\t\t97, 177, 73, 148, 249, 64, 210, 165, 116, 190, 145, 247, 179,\n\t\t19, 174, 207, 223, 6, 57, 80, 2, 128, 227, 171, 82, 151, 236,\n\t\t160, 225, 174, 66, 47, 228, 83, 71, 24, 80, 248, 45, 22, 154,\n\t\t118, 157, 153, 200, 191, 199, 234, 90, 231, 44, 235, 61, 249,\n\t\t19, 181, 227, 204, 20, 53, 250, 246, 99, 231, 30, 131, 143,\n\t\t176, 242, 241, 218, 137, 252, 123, 44, 235, 156, 213, 181,\n\t\t222, 147, 79, 152, 215, 113, 146, 196, 91, 31, 59, 247, 24,\n\t\t216, 241, 51, 243, 113, 96, 79, 36, 211, 142, 199, 169, 241,\n\t\t104, 16, 68, 194, 12, 203, 38, 32, 12, 183, 35, 240, 67, 127,\n\t\t57, 244, 57, 245, 128, 219, 139, 218, 137, 31, 248, 53, 191,\n\t\t74, 171, 148, 129, 149, 77, 0, 224, 39, 46, 73, 186, 15, 46,\n\t\t181, 99, 208, 180, 95, 103, 171, 107, 60, 79, 74, 105, 73,\n\t\t44, 105, 109, 141, 146, 164, 150, 146, 60, 79, 154, 73, 107,\n\t\t109, 45, 83, 123, 111, 191, 49, 79, 100, 167, 232, 28, 112,\n\t\t138, 142, 76, 230, 27, 253, 122, 1, 173, 53, 203, 93, 35,\n\t\t93, 175, 180, 16, 132, 141, 205, 41, 20, 168, 100, 244, 157,\n\t\t164, 46, 120, 158, 160, 167, 248, 9, 216, 185, 222, 189, 209,\n\t\t215, 20, 199, 113, 28, 89, 239, 55, 74, 109, 69, 85, 154,\n\t\t107, 149, 124, 161, 85, 145, 233, 4, 127, 109, 141, 197, 108,\n\t\t246, 193, 17, 112, 10, 220, 6, 238, 191, 220, 179, 122, 0,\n\t\t46, 49, 197, 158, 223, 9, 123, 6, 126, 53, 104, 162, 192,\n\t\t15, 198, 172, 41, 12, 175, 29, 81, 151, 139, 116, 204, 65,\n\t\t241, 61, 110, 192, 91, 11, 245, 86, 229, 18, 168, 180, 234,\n\t\t185, 126, 99, 169, 96, 166, 10, 11, 127, 133, 69, 97, 254,\n\t\t136, 128, 9, 18, 172, 130, 101, 206, 11, 103, 246, 233, 58,\n\t\t70, 56, 91, 114, 235, 237, 143, 24, 210, 12, 150, 69, 209,\n\t\t144, 234, 130, 126, 243, 247, 182, 241, 37, 188, 80, 168,\n\t\t180, 90, 149, 194, 2, 134, 176, 209, 111, 72, 245, 28, 148,\n\t\t196, 46, 132, 86, 45, 67, 231, 173, 125, 27, 8, 42, 40, 209,\n\t\t45, 102, 155, 69, 227, 55, 36, 99, 32, 33, 201, 24, 16, 65,\n\t\t248, 110, 197, 169, 118, 83, 0, 243, 96, 63, 56, 198, 70,\n\t\t141, 221, 0, 170, 187, 222, 63, 238, 69, 207, 107, 156, 95,\n\t\t22, 198, 91, 44, 63, 115, 106, 155, 237, 93, 133, 112, 139,\n\t\t129, 107, 110, 63, 235, 205, 143, 62, 134, 52, 68, 170, 249,\n\t\t70, 190, 250, 126, 86, 210, 93, 221, 30, 151, 243, 141, 188,\n\t\t225, 192, 65, 127, 163, 127, 249, 11, 255, 58, 33, 78, 59,\n\t\t233, 20, 10, 142, 217, 113, 88, 217, 240, 244, 157, 141, 104,\n\t\t135, 158, 97, 92, 228, 132, 205, 249, 209, 125, 233, 32, 7,\n\t\t102, 65, 8, 142, 128, 59, 1, 232, 77, 11, 237, 171, 112, 122,\n\t\t171, 231, 239, 218, 154, 121, 158, 125, 225, 243, 62, 161,\n\t\t143, 104, 130, 48, 136, 222, 28, 17, 132, 129, 240, 192, 174,\n\t\t173, 95, 220, 181, 5, 127, 116, 215, 230, 233, 93, 91, 251,\n\t\t159, 227, 209, 157, 36, 58, 57, 47, 33, 65, 39, 231, 137,\n\t\t240, 125, 150, 255, 245, 10, 207, 52, 146, 143, 120, 28, 212,\n\t\t167, 64, 22, 28, 1, 27, 224, 133, 224, 37, 224, 145, 72, 70,\n\t\t125, 206, 94, 84, 132, 216, 245, 136, 99, 187, 75, 244, 185,\n\t\t194, 19, 22, 171, 75, 85, 234, 19, 74, 236, 144, 208, 56,\n\t\t216, 130, 224, 239, 173, 75, 237, 238, 95, 163, 113, 255,\n\t\t154, 201, 243, 254, 101, 85, 221, 209, 107, 5, 74, 224, 126,\n\t\t73, 69, 153, 107, 40, 189, 38, 131, 84, 105, 189, 38, 154,\n\t\t98, 109, 93, 82, 145, 140, 234, 229, 252, 181, 217, 252, 29,\n\t\t185, 148, 227, 103, 83, 102, 22, 30, 254, 222, 122, 217, 243,\n\t\t119, 185, 100, 177, 139, 72, 42, 133, 176, 189, 235, 215,\n\t\t38, 23, 144, 117, 60, 49, 155, 223, 40, 106, 25, 43, 159,\n\t\t245, 149, 252, 183, 191, 91, 231, 155, 238, 135, 152, 197,\n\t\t114, 191, 9, 126, 22, 44, 129, 99, 224, 78, 240, 42, 240,\n\t\t100, 236, 225, 8, 154, 52, 112, 42, 1, 141, 45, 125, 81, 243,\n\t\t99, 65, 104, 236, 105, 51, 2, 226, 72, 169, 247, 112, 156,\n\t\t116, 16, 167, 35, 216, 156, 46, 190, 27, 132, 223, 103, 61,\n\t\t238, 86, 158, 101, 35, 69, 63, 36, 235, 57, 93, 22, 36, 145,\n\t\t8, 162, 136, 133, 209, 86, 207, 87, 244, 146, 37, 39, 36,\n\t\t117, 29, 98, 73, 208, 4, 25, 211, 249, 57, 65, 65, 154, 152,\n\t\t56, 249, 143, 254, 33, 103, 244, 9, 4, 5, 79, 65, 4, 170,\n\t\t174, 128, 144, 41, 98, 193, 182, 5, 44, 14, 191, 175, 234,\n\t\t209, 239, 192, 205, 169, 48, 131, 79, 234, 114, 74, 54, 68,\n\t\t29, 203, 2, 17, 68, 225, 196, 253, 53, 57, 149, 79, 153, 119,\n\t\t66, 17, 11, 90, 77, 151, 163, 75, 128, 98, 114, 46, 113, 114,\n\t\t166, 156, 64, 68, 112, 4, 193, 17, 8, 50, 61, 65, 68, 138,\n\t\t130, 68, 193, 51, 191, 143, 218, 127, 226, 121, 167, 12, 136,\n\t\t140, 241, 154, 242, 124, 73, 29, 148, 192, 18, 120, 1, 120,\n\t\t33, 184, 27, 60, 0, 126, 144, 243, 11, 199, 150, 242, 110,\n\t\t114, 25, 186, 44, 184, 139, 26, 176, 9, 9, 237, 174, 66, 55,\n\t\t100, 53, 6, 140, 222, 90, 92, 227, 7, 142, 235, 93, 94, 93,\n\t\t68, 61, 22, 230, 98, 160, 38, 188, 28, 222, 116, 66, 75, 60,\n\t\t73, 47, 64, 86, 150, 147, 38, 195, 133, 85, 191, 179, 146,\n\t\t90, 58, 125, 240, 170, 179, 157, 249, 235, 247, 212, 163,\n\t\t205, 104, 237, 55, 207, 44, 204, 95, 191, 167, 169, 201, 152,\n\t\t118, 43, 189, 163, 227, 186, 165, 19, 205, 165, 198, 85, 141,\n\t\t100, 185, 180, 60, 51, 235, 254, 247, 41, 229, 130, 171, 39,\n\t\t220, 26, 35, 136, 4, 110, 91, 250, 136, 197, 149, 194, 167,\n\t\t245, 209, 223, 154, 233, 25, 71, 114, 4, 43, 169, 100, 142,\n\t\t88, 50, 189, 193, 76, 175, 166, 100, 42, 43, 146, 148, 92,\n\t\t177, 100, 250, 144, 136, 42, 16, 153, 165, 35, 227, 202, 119,\n\t\t184, 186, 154, 208, 85, 71, 78, 90, 37, 195, 196, 34, 110,\n\t\t176, 95, 105, 201, 186, 162, 232, 123, 217, 146, 149, 137,\n\t\t72, 68, 52, 206, 191, 248, 36, 18, 224, 103, 38, 92, 163,\n\t\t0, 246, 184, 229, 58, 154, 161, 133, 104, 146, 142, 4, 25,\n\t\t198, 212, 225, 122, 182, 215, 67, 207, 82, 201, 98, 244, 149,\n\t\t127, 144, 13, 161, 80, 54, 5, 74, 68, 53, 27, 236, 113, 32,\n\t\t218, 251, 51, 15, 238, 69, 232, 240, 127, 162, 6, 34, 231,\n\t\t46, 49, 156, 109, 174, 129, 241, 155, 134, 159, 20, 116, 229,\n\t\t246, 115, 24, 34, 131, 58, 205, 193, 170, 3, 17, 220, 251,\n\t\t224, 207, 236, 133, 104, 237, 184, 72, 40, 74, 150, 71, 183,\n\t\t50, 252, 237, 135, 153, 41, 224, 186, 177, 29, 155, 203, 31,\n\t\t3, 150, 35, 220, 5, 43, 224, 20, 184, 9, 220, 3, 128, 215,\n\t\t237, 196, 125, 199, 154, 88, 140, 156, 56, 214, 146, 5, 45,\n\t\t5, 139, 126, 215, 137, 55, 80, 156, 232, 48, 246, 161, 132,\n\t\t221, 14, 103, 143, 220, 33, 229, 57, 8, 25, 214, 151, 83,\n\t\t171, 79, 55, 182, 109, 238, 223, 98, 129, 159, 251, 44, 195,\n\t\t153, 165, 150, 46, 39, 164, 34, 178, 116, 217, 144, 253, 172,\n\t\t149, 181, 246, 220, 196, 196, 171, 11, 219, 44, 52, 80, 79,\n\t\t65, 146, 53, 28, 177, 52, 180, 244, 242, 0, 110, 234, 188,\n\t\t9, 45, 94, 184, 64, 101, 25, 122, 86, 214, 50, 156, 147, 43,\n\t\t186, 217, 215, 45, 217, 144, 251, 243, 16, 222, 205, 74, 91,\n\t\t155, 89, 223, 218, 195, 165, 181, 195, 229, 81, 204, 150,\n\t\t150, 210, 138, 94, 226, 221, 127, 165, 91, 219, 59, 13, 229,\n\t\t153, 73, 142, 218, 54, 139, 23, 188, 142, 33, 14, 113, 179,\n\t\t241, 65, 70, 169, 215, 101, 244, 138, 110, 2, 134, 113, 188,\n\t\t94, 216, 11, 38, 68, 23, 36, 193, 147, 21, 39, 208, 237, 207,\n\t\t2, 109, 135, 203, 148, 138, 55, 10, 148, 80, 232, 237, 23,\n\t\t177, 96, 34, 229, 48, 161, 48, 245, 170, 210, 124, 171, 82,\n\t\t148, 116, 93, 207, 152, 132, 100, 221, 195, 102, 70, 48, 23,\n\t\t43, 173, 249, 146, 226, 103, 205, 74, 43, 33, 147, 70, 159,\n\t\t144, 172, 127, 94, 35, 239, 32, 50, 185, 93, 36, 226, 163,\n\t\t138, 76, 174, 122, 25, 11, 229, 51, 92, 215, 205, 56, 85,\n\t\t215, 124, 20, 181, 42, 165, 38, 50, 147, 89, 127, 130, 241,\n\t\t238, 103, 147, 99, 155, 218, 69, 52, 128, 255, 5, 20, 193,\n\t\t1, 134, 37, 213, 27, 39, 90, 50, 253, 197, 15, 252, 93, 238,\n\t\t23, 175, 231, 62, 239, 222, 221, 95, 174, 238, 218, 11, 181,\n\t\t211, 111, 61, 205, 94, 206, 203, 78, 223, 243, 14, 86, 120,\n\t\t247, 253, 103, 95, 199, 10, 107, 75, 123, 207, 176, 194, 109,\n\t\t39, 138, 93, 174, 150, 140, 7, 131, 121, 248, 94, 178, 254,\n\t\t230, 147, 108, 224, 122, 226, 134, 55, 170, 250, 227, 119,\n\t\t179, 242, 227, 15, 253, 194, 57, 237, 161, 27, 88, 249, 135,\n\t\t59, 39, 68, 114, 93, 159, 149, 223, 124, 236, 193, 179, 196,\n\t\t91, 44, 140, 115, 223, 45, 157, 149, 222, 82, 219, 27, 199,\n\t\t145, 124, 137, 249, 208, 100, 80, 5, 251, 193, 25, 48, 4,\n\t\t0, 58, 149, 216, 1, 131, 123, 126, 11, 69, 19, 136, 1, 89,\n\t\t46, 6, 155, 64, 88, 246, 219, 247, 81, 205, 99, 126, 12, 206,\n\t\t45, 112, 37, 239, 92, 197, 137, 51, 4, 123, 29, 84, 254, 206,\n\t\t197, 91, 215, 46, 174, 221, 58, 122, 82, 64, 98, 78, 135,\n\t\t18, 212, 115, 34, 18, 108, 12, 137, 152, 78, 139, 4, 226,\n\t\t247, 125, 223, 59, 62, 74, 229, 244, 172, 87, 154, 229, 156,\n\t\t69, 219, 108, 137, 152, 155, 138, 66, 48, 24, 172, 221, 122,\n\t\t235, 2, 162, 80, 204, 8, 66, 70, 132, 20, 217, 57, 81, 68,\n\t\t186, 142, 68, 49, 103, 127, 159, 245, 175, 147, 233, 192,\n\t\t11, 108, 36, 46, 149, 231, 207, 79, 102, 22, 122, 129, 149,\n\t\t7, 84, 158, 242, 75, 240, 92, 212, 107, 166, 248, 101, 171,\n\t\t87, 14, 145, 186, 220, 155, 28, 196, 73, 74, 19, 137, 148,\n\t\t25, 123, 170, 65, 28, 199, 188, 147, 123, 202, 162, 61, 16,\n\t\t115, 75, 242, 104, 146, 141, 3, 103, 206, 28, 88, 153, 159,\n\t\t95, 105, 28, 78, 165, 179, 205, 181, 181, 230, 129, 250, 173,\n\t\t245, 141, 29, 200, 185, 205, 157, 226, 206, 226, 194, 153,\n\t\t71, 207, 236, 217, 51, 87, 213, 214, 110, 89, 43, 151, 39,\n\t\t220, 35, 99, 61, 52, 186, 139, 171, 88, 134, 232, 46, 123,\n\t\t20, 157, 130, 118, 137, 70, 60, 196, 122, 249, 152, 160, 223,\n\t\t137, 83, 11, 249, 48, 192, 205, 194, 240, 209, 41, 155, 217,\n\t\t176, 124, 230, 209, 51, 229, 181, 91, 214, 126, 108, 173,\n\t\t85, 206, 55, 242, 229, 77, 35, 149, 111, 228, 83, 44, 59,\n\t\t116, 155, 81, 166, 29, 101, 163, 180, 240, 254, 70, 59, 186,\n\t\t173, 165, 217, 247, 55, 215, 214, 70, 175, 107, 85, 26, 233,\n\t\t237, 72, 199, 223, 78, 55, 42, 39, 112, 38, 17, 149, 19, 25,\n\t\t252, 71, 209, 221, 252, 255, 244, 218, 45, 126, 237, 194,\n\t\t196, 223, 93, 98, 122, 220, 229, 45, 39, 154, 59, 88, 220,\n\t\t86, 133, 199, 45, 117, 105, 37, 185, 204, 249, 214, 29, 204,\n\t\t99, 251, 39, 49, 253, 220, 18, 244, 29, 230, 146, 26, 184,\n\t\t138, 2, 255, 81, 81, 220, 242, 104, 136, 101, 141, 192, 129,\n\t\t110, 141, 254, 136, 210, 99, 18, 125, 173, 36, 101, 36, 233,\n\t\t182, 89, 137, 14, 99, 2, 205, 77, 221, 26, 112, 58, 145, 193,\n\t\t0, 14, 136, 38, 99, 75, 255, 97, 137, 174, 75, 210, 107, 36,\n\t\t154, 149, 164, 91, 103, 89, 128, 90, 116, 173, 151, 208, 0,\n\t\t190, 22, 44, 128, 27, 99, 61, 131, 243, 242, 251, 49, 59,\n\t\t175, 1, 99, 192, 75, 30, 136, 88, 132, 241, 178, 215, 246,\n\t\t220, 240, 242, 131, 201, 255, 55, 199, 162, 54, 145, 48, 197,\n\t\t243, 51, 179, 247, 207, 207, 222, 63, 159, 156, 117, 168,\n\t\t34, 145, 74, 90, 205, 42, 133, 27, 11, 74, 86, 41, 220, 148,\n\t\t87, 115, 74, 166, 178, 235, 176, 218, 194, 255, 193, 81, 233,\n\t\t1, 148, 73, 89, 148, 68, 209, 205, 102, 179, 89, 85, 71, 50,\n\t\t45, 19, 25, 138, 41, 25, 201, 30, 244, 36, 190, 148, 172,\n\t\t183, 236, 58, 206, 21, 255, 207, 14, 227, 185, 163, 223, 185,\n\t\t180, 13, 95, 207, 218, 186, 11, 234, 96, 5, 128, 113, 10,\n\t\t135, 16, 233, 20, 220, 223, 187, 124, 16, 122, 33, 183, 20,\n\t\t143, 29, 93, 61, 102, 199, 162, 78, 173, 235, 183, 96, 147,\n\t\t19, 173, 181, 15, 194, 222, 95, 51, 11, 237, 27, 11, 10, 214,\n\t\t85, 221, 214, 22, 37, 185, 185, 242, 112, 83, 150, 22, 53,\n\t\t91, 87, 117, 172, 20, 50, 111, 183, 176, 49, 235, 149, 182,\n\t\t74, 222, 172, 129, 173, 178, 49, 27, 220, 17, 204, 26, 176,\n\t\t204, 12, 175, 163, 47, 6, 122, 69, 145, 204, 129, 154, 83,\n\t\t247, 118, 58, 123, 213, 156, 58, 48, 37, 165, 162, 7, 229,\n\t\t175, 231, 203, 74, 62, 169, 150, 74, 106, 50, 175, 148, 243,\n\t\t88, 46, 228, 114, 5, 121, 202, 230, 245, 25, 64, 65, 155,\n\t\t35, 91, 91, 94, 37, 122, 185, 238, 132, 209, 58, 38, 35, 228,\n\t\t29, 150, 84, 39, 222, 148, 85, 24, 250, 221, 104, 38, 235,\n\t\t140, 205, 215, 229, 88, 208, 254, 177, 151, 93, 2, 139, 243,\n\t\t90, 5, 50, 247, 236, 226, 129, 108, 181, 181, 214, 18, 43,\n\t\t87, 87, 196, 214, 90, 203, 204, 37, 15, 192, 161, 159, 29,\n\t\t197, 9, 58, 60, 215, 6, 126, 248, 195, 189, 205, 170, 66,\n\t\t110, 225, 49, 56, 235, 125, 50, 159, 143, 84, 71, 77, 151,\n\t\t101, 93, 139, 74, 169, 138, 43, 246, 215, 7, 89, 127, 244,\n\t\t36, 251, 70, 54, 14, 129, 102, 188, 118, 191, 140, 214, 224,\n\t\t103, 128, 2, 28, 80, 6, 47, 2, 47, 3, 0, 86, 169, 31, 244,\n\t\t218, 30, 161, 190, 208, 132, 65, 204, 35, 17, 114, 70, 9,\n\t\t3, 82, 63, 140, 244, 190, 192, 15, 124, 131, 51, 213, 217,\n\t\t148, 112, 90, 208, 192, 95, 102, 77, 187, 9, 41, 161, 132,\n\t\t147, 158, 50, 156, 26, 55, 134, 102, 227, 80, 88, 61, 6, 132,\n\t\t55, 9, 7, 129, 229, 76, 222, 150, 131, 27, 2, 217, 206, 255,\n\t\t68, 125, 65, 80, 53, 205, 32, 93, 242, 249, 101, 146, 208,\n\t\t84, 85, 88, 152, 73, 221, 215, 179, 5, 77, 52, 18, 243, 155,\n\t\t237, 236, 124, 194, 166, 116, 165, 151, 177, 237, 76, 111,\n\t\t149, 16, 39, 49, 159, 109, 111, 206, 39, 12, 81, 67, 78, 47,\n\t\t93, 82, 102, 69, 13, 209, 171, 219, 149, 176, 76, 145, 38,\n\t\t206, 42, 165, 63, 228, 6, 195, 13, 197, 204, 36, 147, 25,\n\t\t83, 25, 125, 60, 183, 209, 18, 240, 161, 185, 76, 102, 238,\n\t\t16, 22, 90, 27, 185, 212, 255, 42, 175, 16, 138, 77, 57, 155,\n\t\t187, 241, 142, 172, 44, 66, 3, 106, 229, 68, 38, 147, 40,\n\t\t107, 208, 128, 88, 202, 222, 113, 99, 46, 43, 37, 49, 37,\n\t\t43, 101, 131, 20, 114, 7, 151, 48, 161, 118, 170, 115, 180,\n\t\t210, 175, 166, 108, 74, 240, 226, 32, 87, 32, 111, 155, 226,\n\t\t102, 251, 40, 203, 227, 46, 131, 101, 22, 87, 206, 12, 124,\n\t\t148, 236, 138, 159, 227, 249, 219, 1, 31, 14, 138, 112, 140,\n\t\t187, 219, 132, 99, 70, 206, 93, 117, 85, 94, 249, 161, 125,\n\t\t135, 117, 249, 192, 236, 145, 151, 176, 140, 225, 124, 35,\n\t\t47, 25, 114, 50, 185, 248, 216, 135, 9, 123, 245, 228, 135,\n\t\t111, 39, 178, 66, 79, 255, 0, 223, 196, 167, 247, 138, 84,\n\t\t84, 254, 47, 245, 174, 149, 217, 3, 178, 113, 246, 240, 55,\n\t\t20, 195, 80, 190, 17, 141, 220, 74, 202, 16, 136, 217, 214,\n\t\t140, 191, 38, 31, 126, 140, 42, 50, 185, 253, 71, 112, 212,\n\t\t123, 169, 188, 73, 126, 224, 52, 85, 36, 186, 239, 20, 198,\n\t\t84, 44, 83, 101, 10, 215, 79, 6, 25, 16, 2, 224, 36, 43, 113,\n\t\t36, 111, 56, 201, 211, 226, 248, 19, 108, 212, 191, 28, 11,\n\t\t125, 39, 96, 38, 70, 166, 24, 236, 196, 51, 195, 13, 59, 63,\n\t\t26, 228, 237, 197, 113, 80, 83, 153, 202, 38, 52, 71, 207,\n\t\t216, 249, 252, 31, 79, 130, 158, 127, 55, 111, 47, 46, 218,\n\t\t249, 233, 76, 195, 93, 120, 131, 87, 188, 174, 78, 133, 95,\n\t\t87, 173, 242, 125, 92, 23, 228, 34, 201, 197, 239, 114, 101,\n\t\t19, 252, 140, 43, 93, 25, 101, 120, 152, 26, 227, 8, 158,\n\t\t5, 123, 24, 51, 199, 126, 112, 8, 0, 232, 18, 138, 249, 200,\n\t\t214, 11, 235, 171, 12, 59, 135, 13, 109, 177, 131, 180, 211,\n\t\t118, 41, 3, 68, 246, 132, 48, 160, 7, 33, 255, 132, 28, 61,\n\t\t185, 23, 6, 118, 164, 117, 252, 107, 118, 182, 55, 122, 159,\n\t\t36, 165, 148, 50, 37, 26, 188, 93, 35, 84, 78, 201, 82, 78,\n\t\t146, 83, 114, 133, 82, 53, 95, 95, 104, 94, 255, 211, 154,\n\t\t233, 152, 134, 253, 193, 210, 74, 233, 3, 165, 3, 165, 15,\n\t\t150, 14, 148, 78, 26, 242, 30, 69, 155, 161, 194, 10, 68,\n\t\t4, 222, 181, 247, 145, 202, 23, 68, 179, 167, 101, 201, 255,\n\t\t160, 89, 213, 20, 147, 98, 34, 84, 179, 212, 244, 150, 250,\n\t\t20, 174, 10, 116, 101, 244, 171, 169, 32, 149, 73, 5, 169,\n\t\t92, 42, 176, 222, 43, 25, 77, 93, 126, 167, 97, 218, 148,\n\t\t74, 50, 224, 152, 159, 159, 136, 237, 182, 115, 19, 20, 189,\n\t\t192, 143, 97, 24, 253, 192, 15, 45, 22, 154, 221, 98, 220,\n\t\t50, 46, 71, 188, 141, 26, 58, 156, 107, 86, 189, 84, 112,\n\t\t207, 94, 85, 197, 120, 233, 113, 41, 37, 138, 226, 176, 35,\n\t\t234, 88, 211, 194, 220, 233, 55, 20, 15, 167, 75, 55, 86,\n\t\t164, 170, 232, 23, 76, 88, 115, 239, 104, 250, 86, 123, 175,\n\t\t166, 137, 134, 184, 180, 38, 18, 89, 86, 32, 109, 99, 172,\n\t\t170, 253, 178, 101, 38, 204, 130, 47, 86, 165, 202, 141, 165,\n\t\t244, 97, 0, 128, 194, 236, 136, 81, 191, 139, 36, 144, 117,\n\t\t112, 51, 184, 13, 188, 12, 188, 6, 252, 8, 120, 55, 248, 32,\n\t\t0, 117, 38, 233, 163, 9, 244, 220, 42, 156, 14, 166, 153,\n\t\t14, 124, 245, 232, 101, 205, 154, 238, 160, 193, 176, 22,\n\t\t21, 212, 118, 87, 4, 157, 110, 205, 219, 141, 194, 210, 241,\n\t\t118, 159, 194, 153, 6, 193, 255, 174, 144, 51, 151, 96, 36,\n\t\t236, 140, 6, 186, 5, 115, 48, 165, 189, 128, 245, 4, 8, 88,\n\t\t127, 248, 55, 45, 137, 126, 127, 71, 4, 46, 79, 228, 225,\n\t\t197, 137, 104, 252, 182, 237, 237, 198, 164, 186, 188, 115,\n\t\t236, 23, 165, 11, 146, 116, 65, 74, 239, 212, 76, 17, 155,\n\t\t29, 193, 248, 102, 170, 70, 50, 211, 205, 24, 111, 105, 137,\n\t\t169, 94, 58, 72, 104, 133, 201, 201, 175, 153, 130, 129, 222,\n\t\t41, 190, 163, 60, 5, 15, 61, 152, 252, 248, 144, 137, 99,\n\t\t143, 78, 190, 124, 118, 10, 171, 57, 154, 63, 63, 206, 218,\n\t\t144, 3, 230, 193, 0, 220, 192, 60, 117, 209, 107, 104, 193,\n\t\t137, 35, 56, 240, 123, 157, 24, 5, 59, 54, 239, 114, 32, 85,\n\t\t82, 163, 99, 106, 189, 169, 129, 149, 194, 29, 157, 55, 182,\n\t\t11, 71, 95, 249, 29, 197, 40, 170, 165, 59, 177, 142, 51,\n\t\t24, 223, 89, 81, 53, 243, 226, 179, 106, 204, 59, 49, 206,\n\t\t168, 218, 157, 37, 181, 104, 40, 231, 77, 77, 29, 141, 198,\n\t\t165, 74, 180, 11, 235, 248, 206, 173, 203, 182, 75, 106, 113,\n\t\t240, 236, 170, 39, 216, 105, 53, 141, 157, 246, 124, 244,\n\t\t67, 16, 141, 75, 147, 159, 140, 231, 94, 142, 145, 47, 1,\n\t\t13, 152, 32, 195, 198, 136, 90, 208, 97, 196, 108, 117, 167,\n\t\t22, 118, 188, 90, 23, 87, 121, 152, 5, 157, 200, 20, 87, 162,\n\t\t7, 222, 113, 151, 7, 21, 138, 22, 111, 207, 222, 169, 137,\n\t\t105, 40, 143, 190, 248, 234, 236, 87, 179, 175, 30, 93, 148,\n\t\t100, 152, 22, 181, 59, 179, 240, 147, 209, 243, 207, 219,\n\t\t60, 142, 159, 7, 68, 219, 249, 168, 206, 22, 17, 16, 97, 121,\n\t\t168, 109, 74, 218, 144, 253, 211, 164, 77, 109, 200, 77, 60,\n\t\t91, 211, 104, 198, 60, 71, 156, 169, 91, 44, 182, 33, 146,\n\t\t251, 255, 51, 192, 64, 6, 121, 80, 7, 7, 193, 9, 112, 43,\n\t\t0, 144, 208, 90, 183, 83, 115, 106, 33, 110, 177, 48, 221,\n\t\t54, 89, 90, 12, 252, 232, 109, 81, 127, 114, 79, 140, 29,\n\t\t163, 118, 165, 187, 168, 79, 233, 49, 174, 215, 243, 162,\n\t\t209, 50, 160, 126, 192, 178, 37, 59, 109, 248, 179, 133, 204,\n\t\t202, 93, 111, 120, 117, 22, 86, 52, 237, 78, 29, 165, 97,\n\t\t244, 207, 113, 168, 234, 141, 130, 241, 205, 254, 93, 119,\n\t\t233, 15, 119, 223, 33, 173, 47, 223, 250, 134, 91, 15, 47,\n\t\t55, 74, 22, 202, 104, 134, 128, 131, 131, 56, 231, 118, 252,\n\t\t2, 188, 49, 83, 26, 14, 135, 71, 149, 85, 109, 19, 65, 8,\n\t\t45, 139, 168, 185, 18, 123, 2, 229, 245, 240, 104, 111, 215,\n\t\t157, 23, 42, 155, 197, 171, 94, 248, 194, 171, 252, 7, 90,\n\t\t51, 13, 247, 143, 82, 7, 115, 148, 182, 78, 227, 74, 195,\n\t\t10, 150, 98, 30, 113, 30, 43, 214, 153, 138, 125, 99, 73,\n\t\t170, 83, 159, 241, 157, 94, 54, 41, 177, 249, 40, 70, 170,\n\t\t30, 176, 255, 76, 75, 95, 100, 127, 23, 25, 146, 0, 4, 172,\n\t\t52, 140, 255, 141, 171, 199, 168, 3, 139, 96, 138, 23, 234,\n\t\t211, 32, 4, 171, 224, 200, 24, 125, 59, 52, 132, 2, 100, 201,\n\t\t109, 60, 7, 39, 206, 56, 102, 0, 1, 61, 183, 196, 83, 203,\n\t\t139, 48, 177, 19, 25, 213, 105, 123, 68, 232, 118, 162, 235,\n\t\t229, 70, 197, 90, 146, 69, 114, 117, 231, 133, 56, 15, 55,\n\t\t118, 174, 196, 70, 178, 90, 199, 175, 177, 112, 56, 55, 140,\n\t\t115, 93, 59, 189, 175, 169, 41, 157, 202, 63, 23, 169, 104,\n\t\t133, 162, 46, 203, 178, 81, 214, 16, 38, 38, 209, 144, 109,\n\t\t179, 24, 32, 140, 180, 50, 209, 69, 89, 68, 164, 88, 176,\n\t\t229, 89, 123, 123, 75, 183, 46, 110, 91, 186, 110, 109, 39,\n\t\t32, 76, 108, 91, 186, 45, 54, 202, 97, 165, 18, 150, 27, 226,\n\t\t183, 187, 78, 90, 211, 100, 225, 247, 100, 77, 75, 59, 93,\n\t\t113, 36, 168, 166, 163, 94, 76, 38, 44, 29, 110, 234, 150,\n\t\t43, 235, 186, 46, 123, 37, 162, 33, 130, 48, 233, 245, 8,\n\t\t70, 4, 105, 164, 228, 137, 136, 232, 88, 23, 221, 84, 97,\n\t\t244, 225, 205, 161, 101, 13, 55, 117, 11, 150, 45, 125, 115,\n\t\t24, 149, 52, 45, 191, 176, 190, 190, 144, 87, 245, 197, 132,\n\t\t172, 74, 130, 32, 169, 114, 98, 17, 1, 225, 210, 119, 46,\n\t\t253, 6, 122, 61, 252, 12, 195, 9, 189, 106, 236, 23, 97, 145,\n\t\t100, 164, 86, 141, 218, 52, 139, 97, 167, 12, 7, 186, 5, 125,\n\t\t246, 20, 195, 203, 130, 204, 168, 23, 246, 92, 24, 6, 212,\n\t\t11, 3, 138, 94, 35, 208, 159, 145, 4, 162, 39, 220, 64, 131,\n\t\t141, 131, 170, 109, 171, 7, 27, 80, 11, 220, 132, 78, 4, 233,\n\t\t103, 168, 64, 138, 166, 27, 212, 109, 247, 44, 241, 212, 7,\n\t\t31, 84, 61, 114, 214, 181, 235, 129, 107, 22, 71, 239, 182,\n\t\t110, 155, 249, 157, 243, 51, 183, 25, 84, 56, 36, 74, 137,\n\t\t18, 145, 239, 133, 205, 96, 125, 61, 104, 194, 123, 101, 82,\n\t\t74, 80, 225, 144, 64, 77, 141, 200, 247, 100, 207, 54, 158,\n\t\t82, 36, 113, 113, 81, 148, 148, 167, 26, 103, 179, 247, 200,\n\t\t68, 131, 224, 154, 96, 208, 108, 14, 130, 104, 14, 143, 250,\n\t\t46, 130, 91, 32, 9, 28, 214, 82, 169, 192, 230, 199, 38, 12,\n\t\t4, 191, 215, 193, 21, 175, 2, 47, 38, 44, 212, 71, 169, 124,\n\t\t98, 244, 47, 102, 62, 41, 244, 145, 149, 128, 239, 30, 253,\n\t\t112, 9, 238, 133, 91, 174, 49, 122, 183, 153, 49, 140, 140,\n\t\t9, 239, 54, 220, 193, 54, 216, 141, 163, 112, 39, 120, 5,\n\t\t248, 177, 93, 168, 115, 60, 253, 112, 12, 96, 30, 118, 218,\n\t\t108, 4, 103, 137, 77, 49, 78, 23, 143, 108, 222, 15, 219,\n\t\t49, 198, 249, 65, 216, 219, 29, 226, 26, 9, 76, 236, 48, 134,\n\t\t28, 199, 96, 1, 246, 195, 222, 204, 248, 155, 49, 68, 164,\n\t\t181, 10, 67, 38, 86, 205, 195, 32, 142, 127, 46, 64, 155,\n\t\t29, 219, 118, 157, 24, 233, 110, 251, 225, 211, 80, 64, 5,\n\t\t65, 50, 37, 211, 17, 169, 144, 67, 168, 65, 168, 141, 101,\n\t\t234, 42, 162, 130, 176, 16, 77, 93, 164, 164, 202, 180, 46,\n\t\t82, 42, 150, 177, 160, 8, 84, 52, 163, 149, 38, 203, 101,\n\t\t145, 218, 234, 232, 211, 113, 5, 149, 133, 236, 15, 117, 207,\n\t\t102, 116, 9, 167, 100, 221, 154, 215, 146, 101, 77, 157, 119,\n\t\t83, 174, 105, 219, 84, 30, 67, 232, 157, 126, 216, 69, 162,\n\t\t45, 73, 146, 73, 101, 49, 139, 160, 142, 136, 34, 217, 34,\n\t\t205, 80, 89, 178, 176, 41, 33, 2, 85, 81, 197, 68, 161, 88,\n\t\t198, 68, 148, 5, 37, 90, 96, 89, 147, 165, 138, 88, 250, 49,\n\t\t133, 8, 178, 40, 154, 152, 138, 153, 209, 103, 133, 254, 30,\n\t\t156, 84, 234, 42, 205, 234, 217, 180, 107, 36, 85, 133, 112,\n\t\t219, 55, 216, 68, 0, 150, 153, 5, 233, 89, 246, 187, 203,\n\t\t183, 167, 19, 60, 224, 197, 157, 242, 214, 78, 74, 199, 112,\n\t\t167, 200, 206, 95, 190, 180, 13, 46, 198, 54, 66, 224, 77,\n\t\t252, 78, 60, 243, 204, 186, 108, 123, 243, 138, 231, 89, 188,\n\t\t252, 231, 120, 153, 13, 155, 151, 190, 117, 233, 215, 152,\n\t\t12, 55, 11, 150, 226, 140, 101, 82, 13, 168, 75, 40, 97, 58,\n\t\t20, 37, 77, 196, 84, 76, 110, 66, 9, 249, 20, 239, 141, 181,\n\t\t104, 248, 239, 178, 124, 88, 201, 202, 161, 11, 51, 134, 109,\n\t\t88, 72, 200, 212, 30, 56, 163, 214, 50, 126, 194, 195, 196,\n\t\t200, 172, 87, 123, 178, 124, 88, 206, 201, 163, 255, 155,\n\t\t107, 133, 111, 150, 115, 242, 97, 89, 238, 85, 215, 211, 9,\n\t\t34, 166, 19, 126, 166, 166, 158, 121, 160, 150, 17, 144, 101,\n\t\t216, 70, 6, 186, 61, 37, 171, 28, 150, 229, 209, 207, 77,\n\t\t184, 194, 224, 165, 209, 165, 191, 66, 8, 190, 15, 164, 153,\n\t\t228, 27, 199, 213, 244, 120, 119, 167, 94, 16, 6, 61, 215,\n\t\t131, 127, 62, 35, 86, 254, 152, 36, 240, 31, 87, 196, 25,\n\t\t161, 122, 135, 95, 216, 124, 114, 113, 179, 234, 223, 94,\n\t\t133, 63, 80, 127, 113, 227, 47, 48, 254, 139, 198, 139, 235,\n\t\t66, 141, 230, 207, 14, 158, 28, 14, 238, 205, 209, 26, 147,\n\t\t9, 46, 93, 250, 117, 22, 191, 202, 115, 187, 6, 224, 37, 59,\n\t\t150, 145, 246, 24, 117, 100, 28, 27, 76, 188, 248, 185, 176,\n\t\t4, 87, 166, 114, 71, 234, 245, 42, 236, 68, 15, 39, 82, 208,\n\t\t123, 29, 14, 107, 199, 244, 239, 72, 73, 231, 201, 177, 126,\n\t\t80, 13, 122, 129, 223, 61, 0, 99, 4, 85, 246, 100, 93, 207,\n\t\t125, 31, 123, 42, 60, 139, 165, 193, 203, 48, 45, 72, 212,\n\t\t115, 85, 77, 192, 178, 64, 105, 216, 150, 45, 15, 33, 138,\n\t\t93, 111, 92, 181, 119, 89, 50, 255, 150, 74, 162, 107, 201,\n\t\t237, 144, 74, 162, 140, 5, 77, 133, 134, 34, 219, 166, 180,\n\t\t188, 151, 82, 129, 85, 120, 16, 240, 211, 70, 103, 229, 190,\n\t\t156, 255, 186, 210, 161, 58, 68, 84, 176, 53, 207, 33, 58,\n\t\t196, 5, 172, 42, 251, 218, 88, 162, 136, 138, 182, 154, 182,\n\t\t169, 78, 74, 162, 252, 22, 157, 46, 237, 83, 85, 146, 199,\n\t\t80, 167, 142, 171, 217, 162, 96, 91, 243, 29, 40, 64, 89,\n\t\t193, 165, 113, 165, 64, 39, 185, 43, 4, 126, 6, 180, 24, 43,\n\t\t173, 59, 206, 32, 102, 174, 172, 102, 244, 174, 34, 197, 218,\n\t\t137, 131, 124, 87, 224, 242, 42, 98, 192, 113, 180, 136, 38,\n\t\t40, 23, 112, 68, 141, 166, 172, 119, 76, 165, 233, 166, 11,\n\t\t45, 13, 202, 130, 38, 10, 137, 176, 58, 43, 89, 169, 127,\n\t\t212, 45, 179, 190, 182, 248, 57, 5, 25, 139, 78, 61, 79, 31,\n\t\t99, 161, 134, 15, 217, 137, 134, 172, 15, 244, 114, 70, 68,\n\t\t130, 134, 113, 193, 71, 240, 148, 89, 180, 244, 147, 7, 239,\n\t\t120, 193, 254, 212, 186, 168, 244, 242, 162, 91, 177, 251,\n\t\t44, 112, 48, 106, 67, 223, 142, 243, 179, 179, 0, 64, 129,\n\t\t84, 3, 129, 137, 188, 227, 5, 27, 128, 43, 109, 23, 94, 58,\n\t\t11, 13, 184, 214, 68, 26, 170, 70, 139, 133, 25, 164, 161,\n\t\t179, 162, 101, 194, 237, 132, 5, 223, 53, 90, 32, 4, 222,\n\t\t255, 33, 66, 222, 248, 89, 66, 126, 253, 135, 48, 134, 169,\n\t\t68, 214, 3, 128, 249, 139, 47, 162, 1, 220, 2, 4, 168, 32,\n\t\t1, 108, 134, 7, 189, 8, 250, 204, 131, 178, 10, 59, 109, 234,\n\t\t212, 150, 195, 186, 235, 213, 188, 110, 199, 117, 232, 114,\n\t\t192, 61, 134, 150, 19, 147, 69, 118, 133, 110, 135, 195, 6,\n\t\t247, 248, 132, 191, 12, 7, 163, 175, 5, 175, 62, 150, 248,\n\t\t194, 102, 17, 174, 157, 63, 248, 225, 225, 90, 113, 75, 124,\n\t\t159, 165, 15, 203, 237, 228, 190, 171, 247, 37, 219, 195,\n\t\t247, 137, 67, 221, 250, 198, 70, 127, 27, 190, 231, 213, 251,\n\t\t143, 108, 13, 15, 173, 188, 51, 123, 219, 214, 112, 229, 208,\n\t\t192, 72, 177, 169, 118, 88, 168, 213, 10, 195, 75, 96, 51,\n\t\t101, 108, 90, 63, 223, 111, 108, 110, 54, 162, 62, 255, 245,\n\t\t75, 219, 240, 51, 240, 115, 32, 1, 138, 207, 30, 179, 88,\n\t\t36, 76, 37, 106, 213, 145, 128, 210, 131, 204, 149, 192, 19,\n\t\t177, 224, 221, 13, 156, 60, 58, 250, 189, 69, 99, 240, 208,\n\t\t221, 122, 209, 73, 150, 119, 210, 147, 255, 166, 218, 181,\n\t\t207, 62, 189, 239, 238, 220, 96, 223, 48, 99, 131, 93, 49,\n\t\t106, 22, 104, 196, 246, 58, 63, 152, 196, 244, 177, 62, 52,\n\t\t15, 171, 97, 84, 55, 166, 162, 26, 87, 122, 220, 149, 49,\n\t\t229, 250, 192, 60, 4, 208, 121, 141, 152, 170, 17, 168, 208,\n\t\t164, 129, 68, 183, 196, 75, 47, 141, 234, 68, 73, 156, 174,\n\t\t123, 111, 115, 109, 173, 105, 246, 27, 219, 141, 190, 165,\n\t\t195, 243, 118, 62, 111, 155, 176, 153, 177, 106, 75, 84, 53,\n\t\t74, 110, 105, 129, 170, 70, 180, 133, 37, 28, 111, 150, 215,\n\t\t110, 89, 107, 244, 251, 141, 109, 221, 218, 138, 186, 12,\n\t\t183, 155, 94, 186, 244, 175, 240, 107, 240, 99, 192, 96, 81,\n\t\t150, 203, 0, 132, 182, 71, 153, 3, 43, 88, 94, 69, 157, 144,\n\t\t33, 211, 183, 89, 118, 128, 95, 29, 59, 164, 113, 187, 40,\n\t\t56, 6, 143, 128, 239, 117, 63, 224, 159, 20, 12, 178, 208,\n\t\t19, 17, 38, 194, 39, 78, 10, 2, 9, 95, 21, 18, 65, 56, 105,\n\t\t239, 17, 248, 168, 152, 70, 68, 20, 160, 216, 91, 32, 134,\n\t\t112, 210, 223, 94, 72, 15, 137, 32, 150, 55, 251, 2, 21, 133,\n\t\t195, 67, 162, 11, 197, 162, 160, 147, 161, 86, 102, 221, 216,\n\t\t70, 130, 136, 133, 254, 102, 89, 20, 200, 48, 189, 48, 150,\n\t\t63, 185, 28, 160, 130, 12, 168, 131, 61, 204, 59, 61, 190,\n\t\t86, 54, 48, 133, 126, 149, 78, 46, 150, 178, 33, 42, 190,\n\t\t62, 63, 190, 234, 212, 101, 238, 245, 143, 21, 231, 132, 4,\n\t\t89, 166, 80, 161, 255, 221, 156, 49, 231, 4, 129, 84, 143,\n\t\t86, 137, 32, 28, 162, 10, 164, 203, 36, 33, 204, 21, 255,\n\t\t43, 155, 219, 63, 244, 142, 251, 239, 127, 199, 253, 31, 100,\n\t\t102, 206, 237, 154, 117, 136, 32, 113, 110, 141, 42, 61, 69,\n\t\t57, 68, 116, 209, 52, 69, 157, 252, 160, 66, 215, 230, 68,\n\t\t68, 14, 89, 181, 111, 176, 217, 121, 244, 215, 247, 179, 111,\n\t\t77, 98, 237, 113, 52, 215, 161, 215, 199, 99, 241, 44, 216,\n\t\t27, 105, 168, 227, 177, 88, 140, 215, 150, 123, 25, 111, 215,\n\t\t65, 216, 11, 221, 118, 232, 122, 187, 92, 229, 203, 189, 14,\n\t\t29, 179, 171, 94, 142, 36, 22, 186, 237, 119, 45, 251, 254,\n\t\t178, 15, 207, 177, 213, 65, 33, 161, 133, 204, 192, 23, 106,\n\t\t9, 212, 36, 233, 116, 63, 157, 38, 163, 17, 29, 167, 90, 191,\n\t\t74, 179, 53, 67, 145, 12, 101, 67, 49, 36, 197, 200, 88, 233,\n\t\t62, 28, 248, 236, 187, 236, 111, 244, 13, 45, 117, 175, 98,\n\t\t24, 202, 189, 41, 237, 227, 174, 96, 154, 130, 251, 115, 211,\n\t\t83, 237, 147, 208, 112, 180, 39, 20, 227, 137, 232, 152, 39,\n\t\t12, 229, 9, 43, 135, 76, 142, 21, 253, 73, 54, 247, 198, 120,\n\t\t104, 19, 244, 201, 104, 250, 101, 25, 20, 220, 124, 205, 228,\n\t\t125, 214, 208, 162, 25, 120, 162, 101, 79, 180, 243, 186,\n\t\t23, 6, 86, 24, 208, 104, 50, 190, 93, 206, 201, 27, 74, 74,\n\t\t112, 132, 4, 190, 47, 5, 83, 57, 203, 210, 17, 73, 221, 143,\n\t\t17, 9, 206, 53, 148, 147, 241, 17, 139, 74, 94, 105, 41, 202,\n\t\t226, 232, 107, 71, 174, 61, 178, 117, 237, 145, 107, 127,\n\t\t69, 206, 201, 183, 203, 242, 73, 165, 113, 46, 32, 8, 223,\n\t\t159, 34, 72, 183, 172, 92, 10, 166, 238, 195, 9, 193, 17,\n\t\t82, 242, 201, 248, 136, 69, 69, 105, 41, 121, 101, 113, 239,\n\t\t145, 107, 143, 140, 62, 127, 237, 145, 107, 121, 30, 217,\n\t\t55, 46, 125, 44, 198, 210, 220, 19, 245, 244, 144, 77, 144,\n\t\t77, 196, 101, 115, 142, 73, 205, 40, 233, 132, 239, 213, 246,\n\t\t250, 27, 15, 17, 68, 247, 62, 113, 135, 85, 22, 77, 252, 112,\n\t\t30, 177, 136, 6, 68, 232, 243, 27, 95, 239, 121, 136, 152,\n\t\t98, 201, 186, 253, 137, 189, 20, 225, 135, 115, 236, 46, 178,\n\t\t22, 130, 171, 223, 221, 238, 186, 195, 81, 172, 51, 9, 61,\n\t\t115, 25, 150, 113, 232, 117, 107, 78, 39, 254, 192, 65, 214,\n\t\t247, 179, 151, 64, 214, 31, 150, 23, 135, 139, 195, 69, 184,\n\t\t237, 103, 71, 195, 168, 18, 14, 134, 91, 155, 236, 31, 159,\n\t\t23, 118, 206, 153, 6, 37, 80, 3, 115, 160, 25, 115, 101, 77,\n\t\t159, 219, 233, 116, 105, 116, 230, 42, 137, 126, 134, 229,\n\t\t123, 215, 156, 48, 250, 181, 118, 111, 5, 86, 156, 58, 179,\n\t\t89, 237, 250, 221, 193, 214, 160, 172, 91, 131, 129, 165,\n\t\t15, 121, 241, 18, 128, 192, 210, 203, 187, 46, 101, 155, 165,\n\t\t14, 91, 255, 196, 15, 141, 138, 215, 13, 6, 155, 209, 6, 247,\n\t\t71, 124, 115, 130, 25, 150, 6, 13, 208, 6, 215, 239, 248,\n\t\t64, 83, 237, 152, 5, 208, 231, 161, 25, 203, 149, 30, 243,\n\t\t61, 48, 233, 171, 4, 163, 94, 87, 130, 44, 237, 254, 224,\n\t\t248, 24, 55, 1, 171, 187, 19, 135, 123, 7, 33, 124, 21, 27,\n\t\t229, 102, 13, 57, 111, 143, 77, 92, 163, 175, 171, 42, 198,\n\t\t70, 96, 28, 214, 60, 245, 48, 214, 87, 8, 45, 222, 34, 103,\n\t\t45, 121, 49, 82, 91, 255, 32, 235, 88, 167, 32, 92, 49, 172,\n\t\t172, 117, 194, 70, 142, 3, 57, 129, 236, 232, 22, 153, 218,\n\t\t121, 22, 140, 195, 108, 148, 134, 113, 88, 245, 180, 195,\n\t\t226, 199, 100, 169, 120, 139, 108, 101, 149, 255, 97, 101,\n\t\t173, 37, 235, 52, 92, 49, 236, 155, 88, 182, 240, 9, 187,\n\t\t159, 74, 142, 49, 253, 184, 175, 119, 6, 28, 218, 201, 247,\n\t\t74, 185, 12, 235, 51, 168, 115, 223, 86, 24, 248, 97, 156,\n\t\t161, 227, 134, 61, 24, 248, 44, 238, 206, 117, 34, 101, 178,\n\t\t132, 138, 44, 175, 41, 82, 64, 91, 144, 4, 240, 55, 217, 109,\n\t\t165, 12, 154, 173, 219, 201, 209, 163, 50, 145, 45, 249, 183,\n\t\t154, 235, 30, 190, 175, 161, 11, 202, 210, 19, 25, 155, 142,\n\t\t222, 149, 21, 5, 36, 212, 84, 103, 245, 84, 97, 145, 38, 151,\n\t\t53, 89, 203, 104, 251, 82, 132, 150, 95, 209, 178, 210, 113,\n\t\t198, 215, 232, 77, 134, 77, 179, 210, 239, 137, 86, 138, 224,\n\t\t123, 142, 172, 123, 165, 110, 67, 171, 25, 199, 174, 86, 109,\n\t\t10, 111, 247, 68, 17, 65, 226, 168, 233, 82, 89, 43, 184,\n\t\t157, 44, 201, 164, 101, 82, 144, 45, 75, 223, 155, 78, 106,\n\t\t227, 121, 118, 192, 238, 173, 9, 214, 192, 137, 169, 187,\n\t\t139, 51, 189, 248, 219, 177, 22, 253, 174, 63, 73, 87, 99,\n\t\t246, 131, 4, 236, 180, 123, 203, 52, 220, 73, 104, 163, 66,\n\t\t135, 189, 214, 14, 83, 232, 120, 218, 27, 188, 139, 221, 233,\n\t\t123, 108, 99, 174, 56, 42, 71, 163, 216, 124, 15, 73, 130,\n\t\t210, 224, 121, 107, 11, 186, 101, 103, 175, 86, 140, 127,\n\t\t204, 140, 211, 218, 2, 66, 150, 211, 171, 90, 202, 157, 255,\n\t\t66, 166, 82, 212, 237, 242, 74, 66, 195, 147, 187, 125, 159,\n\t\t161, 20, 231, 12, 150, 229, 12, 149, 73, 26, 155, 165, 187,\n\t\t210, 71, 12, 187, 122, 114, 146, 228, 38, 162, 209, 183, 222,\n\t\t144, 82, 244, 155, 47, 196, 89, 112, 199, 227, 60, 239, 215,\n\t\t195, 45, 110, 189, 171, 187, 49, 94, 208, 56, 157, 128, 161,\n\t\t152, 68, 2, 102, 189, 27, 183, 200, 162, 224, 21, 209, 152,\n\t\t106, 206, 229, 41, 225, 99, 179, 80, 19, 162, 187, 11, 8,\n\t\t45, 20, 191, 243, 237, 168, 89, 34, 170, 26, 178, 162, 41,\n\t\t138, 162, 125, 231, 179, 81, 235, 113, 44, 191, 90, 74, 203,\n\t\t137, 214, 74, 217, 201, 250, 204, 231, 221, 111, 12, 182,\n\t\t7, 115, 189, 219, 61, 191, 16, 48, 195, 170, 161, 170, 18,\n\t\t85, 116, 77, 87, 30, 25, 90, 89, 75, 54, 189, 82, 178, 176,\n\t\t224, 249, 217, 129, 149, 181, 54, 27, 253, 197, 197, 197,\n\t\t101, 245, 8, 151, 37, 70, 19, 62, 210, 30, 56, 27, 199, 18,\n\t\t218, 19, 90, 77, 159, 115, 146, 126, 15, 88, 44, 227, 36,\n\t\t227, 96, 108, 197, 102, 71, 122, 156, 157, 112, 63, 108, 119,\n\t\t190, 235, 41, 38, 212, 165, 72, 132, 136, 38, 243, 100, 239,\n\t\t240, 10, 0, 45, 191, 47, 83, 83, 17, 83, 41, 81, 49, 169,\n\t\t44, 153, 18, 67, 65, 146, 76, 105, 241, 10, 199, 198, 52,\n\t\t166, 2, 194, 212, 89, 114, 247, 30, 187, 225, 169, 93, 80,\n\t\t45, 73, 53, 46, 74, 247, 82, 89, 174, 213, 100, 153, 222,\n\t\t43, 73, 135, 251, 162, 216, 63, 44, 93, 249, 72, 48, 193,\n\t\t226, 68, 204, 231, 123, 4, 156, 188, 12, 1, 61, 193, 18, 155,\n\t\t24, 232, 57, 239, 196, 62, 19, 91, 61, 183, 4, 99, 68, 100,\n\t\t102, 209, 110, 65, 38, 204, 34, 183, 196, 252, 38, 181, 42,\n\t\t13, 56, 30, 50, 245, 252, 48, 238, 197, 214, 153, 181, 229,\n\t\t12, 117, 68, 227, 156, 105, 200, 150, 68, 229, 164, 149, 72,\n\t\t140, 222, 94, 49, 69, 154, 178, 68, 154, 240, 9, 194, 154,\n\t\t126, 172, 54, 151, 180, 228, 2, 145, 211, 25, 146, 61, 152,\n\t\t113, 94, 166, 138, 146, 98, 170, 239, 60, 144, 74, 188, 0,\n\t\t145, 255, 134, 81, 220, 196, 127, 249, 96, 49, 176, 138, 247,\n\t\t36, 72, 21, 83, 118, 2, 9, 191, 81, 171, 200, 41, 153, 202,\n\t\t9, 108, 16, 170, 123, 98, 166, 219, 72, 58, 132, 164, 246,\n\t\t169, 89, 85, 210, 150, 29, 201, 60, 45, 229, 20, 125, 207,\n\t\t30, 219, 204, 224, 60, 132, 43, 138, 2, 198, 177, 218, 8,\n\t\t126, 138, 97, 57, 222, 5, 238, 7, 15, 129, 215, 128, 55, 49,\n\t\t223, 86, 2, 218, 174, 237, 216, 148, 235, 162, 243, 176, 26,\n\t\t196, 44, 92, 139, 97, 192, 129, 29, 74, 176, 187, 188, 138,\n\t\t98, 99, 206, 146, 227, 245, 38, 228, 16, 212, 245, 194, 197,\n\t\t229, 29, 83, 79, 164, 180, 206, 196, 226, 95, 234, 178, 96,\n\t\t212, 241, 154, 25, 24, 57, 89, 245, 132, 126, 255, 18, 194,\n\t\t228, 77, 80, 172, 72, 114, 173, 110, 58, 119, 166, 244, 138,\n\t\t191, 32, 194, 55, 137, 24, 66, 34, 104, 36, 47, 136, 68, 96,\n\t\t92, 126, 186, 219, 223, 232, 187, 186, 220, 103, 157, 38,\n\t\t79, 116, 52, 186, 200, 34, 49, 103, 159, 149, 243, 102, 154,\n\t\t178, 33, 75, 98, 129, 7, 106, 54, 136, 38, 132, 16, 139, 72,\n\t\t55, 171, 123, 154, 39, 51, 154, 228, 28, 106, 28, 92, 48,\n\t\t117, 45, 68, 84, 18, 13, 130, 145, 86, 16, 49, 70, 50, 109,\n\t\t66, 232, 37, 180, 92, 37, 18, 226, 171, 89, 45, 225, 65, 216,\n\t\t140, 250, 117, 65, 67, 152, 204, 177, 147, 143, 190, 194,\n\t\t86, 225, 212, 242, 122, 79, 142, 14, 18, 77, 210, 230, 81,\n\t\t158, 244, 89, 120, 47, 55, 131, 77, 112, 255, 78, 134, 205,\n\t\t115, 173, 177, 55, 5, 31, 94, 115, 39, 177, 244, 171, 48,\n\t\t156, 178, 58, 51, 67, 90, 167, 27, 11, 113, 110, 108, 137,\n\t\t131, 142, 215, 9, 172, 232, 177, 214, 56, 194, 230, 75, 153,\n\t\t158, 123, 235, 179, 150, 144, 206, 96, 236, 98, 29, 215, 103,\n\t\t231, 213, 181, 230, 37, 208, 92, 51, 11, 86, 222, 54, 243,\n\t\t246, 147, 101, 237, 122, 60, 152, 173, 99, 29, 187, 24, 207,\n\t\t120, 163, 225, 224, 177, 195, 251, 34, 205, 231, 18, 75, 56,\n\t\t59, 202, 148, 225, 103, 255, 213, 198, 223, 152, 219, 103,\n\t\t121, 153, 72, 111, 114, 27, 69, 249, 102, 59, 127, 222, 206,\n\t\t23, 126, 69, 211, 59, 214, 190, 185, 241, 143, 186, 229, 123,\n\t\t202, 240, 244, 230, 96, 107, 52, 228, 153, 60, 49, 246, 6,\n\t\t195, 78, 176, 88, 254, 83, 187, 0, 237, 72, 234, 102, 64,\n\t\t241, 181, 234, 10, 92, 238, 212, 163, 186, 90, 133, 149, 225,\n\t\t67, 154, 246, 22, 173, 175, 189, 69, 211, 224, 189, 154, 54,\n\t\t122, 135, 166, 193, 178, 214, 215, 254, 78, 211, 254, 78,\n\t\t235, 107, 67, 173, 175, 105, 125, 109, 226, 111, 142, 222,\n\t\t67, 61, 142, 14, 174, 57, 211, 25, 195, 156, 2, 44, 188, 220,\n\t\t167, 136, 157, 29, 78, 235, 9, 126, 230, 121, 179, 220, 106,\n\t\t184, 162, 101, 110, 155, 150, 232, 54, 90, 101, 230, 96, 128,\n\t\t145, 52, 50, 250, 51, 105, 81, 146, 22, 165, 222, 67, 167,\n\t\t78, 61, 116, 10, 62, 249, 211, 166, 213, 62, 147, 189, 38,\n\t\t145, 205, 38, 174, 201, 158, 105, 91, 230, 79, 239, 56, 218,\n\t\t210, 204, 189, 246, 52, 87, 89, 24, 190, 10, 194, 240, 179,\n\t\t192, 1, 45, 176, 151, 91, 170, 237, 49, 159, 91, 24, 212,\n\t\t130, 208, 115, 188, 158, 235, 5, 145, 226, 21, 198, 244, 8,\n\t\t147, 48, 126, 66, 3, 159, 18, 47, 150, 159, 38, 182, 144,\n\t\t127, 83, 213, 174, 82, 82, 31, 78, 74, 234, 125, 171, 155,\n\t\t131, 225, 125, 246, 98, 114, 89, 215, 78, 193, 185, 220, 181,\n\t\t117, 42, 224, 99, 234, 225, 117, 172, 35, 217, 206, 89, 25,\n\t\t171, 244, 227, 84, 123, 149, 213, 173, 91, 239, 120, 152,\n\t\t189, 203, 101, 181, 168, 118, 85, 245, 225, 228, 162, 125,\n\t\t223, 112, 176, 185, 122, 159, 42, 37, 123, 194, 169, 149,\n\t\t249, 156, 45, 35, 67, 92, 63, 172, 30, 195, 2, 157, 57, 150,\n\t\t75, 169, 86, 233, 84, 169, 252, 74, 171, 222, 181, 222, 249,\n\t\t37, 110, 36, 33, 241, 88, 27, 181, 251, 177, 31, 125, 101,\n\t\t103, 196, 109, 71, 35, 206, 21, 112, 138, 104, 181, 86, 141,\n\t\t116, 147, 122, 15, 50, 94, 174, 78, 119, 30, 58, 29, 52, 6,\n\t\t136, 221, 195, 148, 194, 79, 8, 132, 254, 221, 133, 104, 2,\n\t\t29, 49, 16, 131, 11, 127, 137, 144, 38, 32, 74, 224, 69, 50,\n\t\t250, 196, 38, 4, 155, 195, 205, 205, 59, 99, 20, 92, 246,\n\t\t120, 117, 13, 29, 184, 197, 210, 57, 211, 178, 110, 157, 222,\n\t\t175, 17, 13, 14, 209, 232, 191, 114, 209, 26, 150, 39, 122,\n\t\t227, 78, 252, 177, 193, 218, 223, 110, 79, 150, 53, 241, 100,\n\t\t33, 238, 201, 58, 188, 124, 244, 245, 191, 250, 250, 219,\n\t\t174, 221, 59, 151, 83, 102, 44, 135, 144, 125, 183, 208, 92,\n\t\t62, 181, 222, 159, 135, 63, 186, 248, 150, 249, 219, 222,\n\t\t244, 166, 219, 122, 91, 135, 187, 251, 202, 163, 223, 206,\n\t\t222, 20, 200, 234, 161, 135, 165, 114, 163, 97, 245, 143,\n\t\t112, 123, 233, 165, 24, 171, 101, 1, 220, 200, 252, 59, 236,\n\t\t61, 246, 194, 94, 184, 24, 246, 194, 213, 56, 106, 167, 4,\n\t\t9, 53, 48, 53, 80, 157, 189, 232, 42, 37, 212, 16, 199, 176,\n\t\t26, 189, 112, 85, 12, 87, 81, 184, 138, 195, 94, 248, 23,\n\t\t186, 155, 54, 244, 110, 109, 70, 134, 202, 76, 136, 142, 228,\n\t\t69, 33, 101, 150, 107, 157, 98, 206, 144, 20, 93, 174, 23,\n\t\t155, 150, 235, 215, 179, 10, 165, 146, 7, 143, 179, 131, 32,\n\t\t60, 146, 39, 180, 92, 63, 212, 152, 28, 163, 105, 110, 210,\n\t\t211, 82, 89, 133, 18, 217, 43, 87, 236, 100, 183, 118, 94,\n\t\t79, 105, 84, 180, 43, 181, 72, 194, 114, 160, 119, 76, 149,\n\t\t102, 210, 65, 190, 164, 42, 10, 145, 235, 249, 20, 85, 178,\n\t\t117, 223, 177, 82, 86, 229, 139, 227, 35, 18, 169, 94, 208,\n\t\t74, 196, 251, 69, 172, 170, 150, 106, 241, 67, 42, 174, 76,\n\t\t236, 202, 101, 156, 147, 109, 176, 239, 185, 57, 39, 163,\n\t\t78, 24, 119, 196, 78, 28, 130, 200, 253, 241, 181, 234, 115,\n\t\t83, 67, 62, 45, 245, 165, 69, 169, 47, 197, 171, 127, 122,\n\t\t46, 166, 139, 183, 78, 29, 36, 245, 71, 23, 57, 175, 5, 156,\n\t\t200, 193, 105, 134, 0, 132, 152, 247, 108, 124, 93, 156, 189,\n\t\t10, 150, 175, 122, 217, 209, 70, 173, 224, 36, 70, 79, 36,\n\t\t156, 68, 218, 148, 255, 51, 220, 46, 181, 247, 23, 210, 165,\n\t\t75, 140, 33, 14, 2, 57, 97, 171, 171, 247, 77, 241, 199, 255,\n\t\t103, 32, 131, 20, 0, 44, 81, 134, 157, 43, 106, 97, 149, 122,\n\t\t175, 179, 136, 128, 165, 179, 160, 129, 133, 155, 94, 57,\n\t\t2, 208, 147, 180, 45, 150, 67, 11, 183, 240, 107, 207, 253,\n\t\t25, 157, 240, 110, 93, 5, 63, 5, 76, 176, 0, 142, 238, 32,\n\t\t223, 240, 14, 212, 238, 117, 25, 233, 255, 228, 217, 48, 89,\n\t\t110, 242, 220, 66, 78, 78, 59, 133, 197, 194, 105, 106, 235,\n\t\t189, 182, 55, 70, 195, 25, 109, 50, 28, 156, 253, 187, 31,\n\t\t221, 175, 97, 209, 193, 148, 138, 95, 198, 26, 254, 178, 72,\n\t\t169, 232, 138, 152, 97, 227, 140, 81, 113, 24, 30, 206, 225,\n\t\t93, 207, 241, 199, 49, 37, 56, 141, 197, 207, 137, 226, 231,\n\t\t68, 156, 198, 132, 226, 191, 137, 132, 144, 105, 30, 253,\n\t\t197, 231, 224, 209, 127, 158, 155, 152, 98, 201, 23, 35, 65,\n\t\t19, 110, 238, 190, 212, 29, 254, 123, 193, 89, 114, 247, 93,\n\t\t123, 195, 75, 119, 93, 213, 216, 78, 194, 49, 181, 234, 28,\n\t\t95, 211, 222, 201, 173, 101, 150, 16, 143, 146, 4, 138, 107,\n\t\t80, 239, 32, 244, 152, 215, 143, 36, 96, 216, 131, 223, 226,\n\t\t51, 215, 47, 97, 236, 137, 134, 136, 194, 61, 47, 181, 114,\n\t\t143, 222, 195, 103, 188, 123, 114, 212, 122, 233, 158, 80,\n\t\t87, 14, 43, 4, 89, 27, 50, 36, 162, 33, 122, 24, 255, 18,\n\t\t223, 253, 239, 209, 193, 52, 119, 15, 63, 195, 61, 143, 230,\n\t\t162, 131, 95, 25, 29, 44, 111, 88, 44, 135, 101, 135, 87,\n\t\t94, 141, 158, 204, 206, 208, 243, 182, 59, 94, 216, 62, 191,\n\t\t117, 190, 13, 183, 31, 254, 241, 112, 227, 252, 249, 141,\n\t\t240, 199, 199, 118, 58, 254, 44, 85, 134, 106, 215, 98, 168,\n\t\t25, 160, 62, 206, 48, 100, 134, 206, 221, 246, 216, 176, 26,\n\t\t205, 29, 60, 165, 250, 114, 124, 130, 49, 86, 203, 52, 131,\n\t\t54, 188, 64, 101, 63, 59, 218, 202, 250, 50, 205, 101, 211,\n\t\t137, 210, 171, 159, 122, 117, 41, 145, 206, 174, 50, 121,\n\t\t234, 205, 83, 75, 174, 83, 231, 135, 50, 53, 179, 190, 159,\n\t\t53, 169, 188, 181, 156, 110, 175, 173, 181, 211, 203, 231,\n\t\t153, 40, 52, 203, 150, 94, 156, 252, 2, 65, 249, 210, 54,\n\t\t188, 8, 63, 5, 6, 0, 212, 29, 155, 39, 151, 51, 97, 103, 185,\n\t\t23, 105, 30, 81, 63, 95, 21, 58, 33, 207, 116, 96, 148, 201,\n\t\t157, 246, 210, 206, 70, 9, 22, 133, 66, 212, 1, 224, 197,\n\t\t226, 114, 241, 79, 173, 150, 94, 82, 53, 57, 103, 10, 88,\n\t\t82, 112, 73, 50, 21, 51, 111, 67, 59, 103, 58, 122, 128, 37,\n\t\t42, 204, 168, 201, 215, 159, 46, 46, 23, 45, 163, 164, 38,\n\t\t142, 201, 182, 152, 56, 46, 73, 111, 199, 18, 37, 152, 64,\n\t\t162, 209, 178, 36, 253, 142, 157, 135, 5, 251, 183, 36, 169,\n\t\t172, 38, 16, 133, 34, 145, 196, 182, 44, 56, 211, 188, 228,\n\t\t22, 168, 69, 87, 91, 137, 166, 131, 29, 168, 175, 176, 24,\n\t\t167, 34, 76, 249, 230, 46, 142, 6, 107, 221, 89, 102, 157,\n\t\t152, 237, 174, 153, 83, 222, 185, 193, 96, 255, 237, 238,\n\t\t41, 142, 39, 119, 202, 189, 253, 221, 187, 92, 116, 28, 3,\n\t\t5, 33, 248, 105, 224, 129, 171, 192, 58, 120, 1, 195, 252,\n\t\t142, 4, 21, 56, 201, 147, 133, 209, 27, 164, 209, 139, 227,\n\t\t126, 181, 201, 31, 161, 209, 27, 228, 30, 182, 201, 95, 15,\n\t\t243, 196, 83, 183, 36, 20, 57, 20, 24, 132, 127, 47, 202,\n\t\t68, 52, 228, 209, 150, 82, 53, 42, 45, 67, 129, 155, 74, 37,\n\t\t95, 105, 136, 178, 142, 53, 175, 28, 16, 49, 61, 94, 218,\n\t\t87, 168, 27, 189, 74, 181, 80, 242, 233, 100, 199, 82, 223,\n\t\t59, 41, 193, 159, 195, 70, 194, 164, 70, 69, 25, 109, 41,\n\t\t70, 171, 98, 84, 21, 184, 41, 27, 198, 139, 177, 174, 96,\n\t\t77, 36, 65, 217, 75, 143, 151, 214, 21, 234, 62, 166, 90,\n\t\t157, 228, 211, 73, 196, 206, 25, 151, 98, 159, 229, 39, 225,\n\t\t22, 252, 20, 112, 64, 97, 42, 191, 120, 28, 188, 192, 244,\n\t\t15, 33, 168, 80, 3, 86, 125, 110, 153, 31, 113, 102, 119,\n\t\t120, 230, 209, 51, 240, 67, 119, 66, 112, 167, 152, 52, 147,\n\t\t144, 91, 187, 243, 146, 116, 224, 204, 153, 3, 146, 52, 250,\n\t\t200, 231, 63, 79, 85, 117, 42, 111, 34, 7, 234, 96, 54, 146,\n\t\t187, 194, 72, 178, 140, 4, 108, 6, 180, 216, 217, 37, 129,\n\t\t214, 147, 149, 152, 218, 75, 72, 86, 146, 248, 114, 249, 37,\n\t\t142, 8, 251, 170, 52, 61, 42, 193, 242, 8, 228, 109, 184,\n\t\t101, 231, 7, 163, 33, 124, 134, 117, 40, 16, 117, 168, 127,\n\t\t177, 245, 21, 35, 5, 47, 74, 187, 198, 168, 11, 163, 11, 112,\n\t\t195, 206, 231, 71, 127, 9, 193, 37, 176, 185, 211, 159, 84,\n\t\t39, 153, 136, 174, 55, 110, 139, 9, 144, 1, 181, 56, 74, 229,\n\t\t50, 142, 180, 56, 194, 45, 214, 237, 157, 14, 15, 82, 139,\n\t\t116, 1, 86, 93, 105, 247, 224, 118, 116, 82, 110, 215, 219,\n\t\t100, 65, 42, 79, 243, 156, 146, 45, 142, 209, 192, 161, 25,\n\t\t224, 144, 91, 7, 253, 44, 4, 89, 127, 244, 52, 15, 56, 51,\n\t\t89, 232, 217, 155, 56, 67, 164, 110, 89, 177, 223, 142, 199,\n\t\t130, 45, 1, 80, 239, 120, 19, 34, 194, 85, 28, 122, 44, 171,\n\t\t129, 6, 181, 46, 11, 70, 238, 113, 236, 26, 142, 159, 78,\n\t\t224, 250, 125, 117, 107, 253, 37, 111, 59, 238, 85, 42, 94,\n\t\t97, 105, 166, 144, 182, 211, 106, 247, 245, 78, 129, 244,\n\t\t110, 90, 159, 105, 20, 243, 142, 141, 4, 15, 9, 162, 160,\n\t\t104, 226, 199, 131, 234, 53, 131, 217, 74, 179, 98, 215, 230,\n\t\t219, 123, 22, 140, 180, 111, 173, 21, 146, 238, 222, 19, 85,\n\t\t79, 155, 47, 32, 65, 136, 142, 212, 103, 194, 9, 142, 45,\n\t\t130, 240, 83, 32, 25, 163, 144, 246, 0, 176, 138, 200, 115,\n\t\t13, 152, 128, 77, 20, 132, 171, 136, 22, 145, 135, 25, 153,\n\t\t202, 114, 120, 185, 126, 58, 30, 24, 223, 123, 238, 93, 119,\n\t\t168, 144, 168, 210, 94, 241, 212, 219, 94, 152, 64, 74, 162,\n\t\t115, 227, 227, 235, 194, 232, 141, 2, 34, 10, 124, 144, 9,\n\t\t153, 135, 216, 242, 149, 49, 38, 139, 124, 219, 59, 111, 146,\n\t\t18, 42, 50, 95, 248, 214, 13, 180, 151, 106, 228, 229, 240,\n\t\t216, 27, 111, 120, 49, 84, 8, 66, 199, 153, 156, 249, 70,\n\t\t182, 124, 229, 68, 230, 156, 142, 133, 45, 129, 16, 0, 79,\n\t\t168, 8, 124, 64, 12, 137, 27, 205, 126, 238, 216, 230, 212,\n\t\t139, 38, 111, 26, 94, 222, 238, 66, 174, 11, 118, 29, 56,\n\t\t116, 96, 222, 250, 186, 149, 63, 66, 37, 117, 47, 27, 85,\n\t\t246, 170, 18, 61, 39, 26, 226, 95, 208, 9, 172, 230, 163,\n\t\t50, 77, 60, 152, 160, 178, 5, 79, 143, 126, 222, 202, 102,\n\t\t63, 35, 57, 124, 60, 114, 164, 91, 49, 254, 47, 59, 35, 146,\n\t\t165, 235, 214, 149, 174, 111, 39, 86, 247, 251, 186, 190,\n\t\t50, 28, 242, 238, 121, 243, 247, 114, 117, 38, 220, 24, 93,\n\t\t176, 243, 249, 79, 61, 255, 213, 77, 243, 173, 229, 216, 12,\n\t\t120, 34, 234, 195, 236, 165, 134, 189, 21, 24, 122, 142, 205,\n\t\t121, 86, 163, 71, 74, 170, 65, 248, 60, 226, 36, 141, 51,\n\t\t198, 188, 93, 217, 235, 222, 62, 42, 163, 162, 166, 12, 135,\n\t\t138, 86, 68, 34, 197, 167, 234, 183, 214, 23, 176, 139, 205,\n\t\t104, 98, 231, 171, 70, 107, 173, 149, 232, 173, 87, 211, 163,\n\t\t143, 166, 171, 235, 189, 219, 182, 100, 42, 10, 7, 102, 74,\n\t\t179, 75, 139, 139, 75, 179, 165, 153, 3, 130, 40, 74, 98,\n\t\t185, 252, 197, 169, 239, 96, 247, 133, 229, 74, 171, 85, 41,\n\t\t111, 161, 19, 189, 116, 181, 154, 238, 157, 64, 183, 113,\n\t\t57, 128, 231, 227, 236, 1, 0, 179, 120, 175, 218, 20, 202,\n\t\t228, 36, 226, 204, 73, 118, 118, 179, 243, 218, 4, 254, 229,\n\t\t59, 18, 206, 166, 147, 120, 11, 127, 96, 137, 93, 91, 101,\n\t\t39, 1, 111, 249, 169, 196, 255, 203, 218, 119, 135, 75, 78,\n\t\t91, 125, 91, 197, 211, 231, 150, 93, 118, 9, 164, 93, 32,\n\t\t180, 4, 47, 176, 176, 180, 36, 4, 66, 32, 9, 169, 4, 66, 72,\n\t\t5, 217, 62, 99, 107, 71, 150, 188, 146, 60, 115, 103, 83,\n\t\t73, 66, 66, 128, 52, 210, 219, 155, 94, 73, 239, 189, 247,\n\t\t222, 123, 239, 189, 247, 198, 247, 72, 246, 220, 59, 151,\n\t\t36, 239, 147, 239, 123, 62, 254, 144, 127, 231, 88, 150, 85,\n\t\t142, 206, 249, 29, 121, 46, 187, 195, 79, 222, 51, 151, 119,\n\t\t236, 88, 254, 231, 11, 22, 196, 32, 8, 110, 128, 46, 172,\n\t\t127, 1, 23, 4, 193, 193, 193, 73, 13, 70, 193, 65, 193, 101,\n\t\t13, 198, 65, 24, 92, 211, 96, 18, 220, 56, 248, 77, 131, 105,\n\t\t112, 16, 58, 187, 193, 97, 112, 56, 154, 215, 105, 5, 59,\n\t\t209, 181, 13, 238, 5, 199, 224, 178, 193, 253, 224, 64, 252,\n\t\t137, 6, 175, 4, 219, 201, 176, 193, 171, 65, 72, 162, 6, 111,\n\t\t11, 14, 34, 89, 131, 119, 4, 219, 201, 75, 27, 188, 51, 8,\n\t\t201, 71, 2, 18, 32, 234, 66, 230, 137, 190, 39, 14, 163, 96,\n\t\t119, 112, 94, 131, 113, 208, 11, 158, 221, 96, 18, 156, 30,\n\t\t188, 166, 193, 52, 216, 141, 86, 27, 28, 6, 231, 162, 139,\n\t\t27, 220, 10, 142, 65, 159, 105, 112, 47, 184, 8, 239, 108,\n\t\t112, 63, 216, 133, 159, 213, 224, 149, 224, 8, 252, 131, 6,\n\t\t175, 6, 61, 114, 72, 131, 183, 5, 187, 201, 9, 13, 222, 17,\n\t\t28, 65, 46, 109, 240, 206, 160, 71, 222, 17, 156, 21, 168,\n\t\t160, 12, 102, 129, 14, 120, 144, 5, 121, 96, 253, 255, 17,\n\t\t40, 9, 142, 14, 214, 130, 115, 2, 21, 72, 175, 57, 51, 152,\n\t\t6, 16, 152, 64, 5, 69, 0, 65, 112, 150, 42, 103, 154, 103,\n\t\t185, 93, 59, 42, 57, 122, 237, 28, 37, 237, 218, 153, 83,\n\t\t48, 170, 128, 224, 63, 62, 180, 22, 236, 241, 77, 234, 0,\n\t\t188, 116, 126, 160, 2, 17, 240, 32, 13, 130, 197, 6, 214,\n\t\t246, 172, 157, 163, 1, 214, 206, 87, 130, 167, 193, 98, 173,\n\t\t70, 243, 127, 223, 126, 20, 236, 9, 118, 5, 167, 4, 187, 156,\n\t\t251, 255, 143, 239, 138, 246, 236, 58, 101, 215, 241, 255,\n\t\t47, 237, 255, 111, 253, 63, 33, 216, 29, 156, 26, 236, 10,\n\t\t78, 246, 87, 55, 181, 255, 185, 253, 73, 0, 129, 14, 76, 192,\n\t\t125, 141, 211, 252, 27, 231, 253, 62, 58, 8, 78, 216, 125,\n\t\t234, 174, 147, 119, 159, 186, 118, 212, 150, 215, 77, 64,\n\t\t27, 174, 228, 105, 107, 190, 251, 71, 111, 246, 127, 107,\n\t\t235, 123, 54, 122, 30, 93, 183, 231, 77, 75, 123, 92, 183,\n\t\t163, 166, 219, 23, 4, 185, 239, 146, 107, 34, 14, 142, 12,\n\t\t76, 176, 22, 20, 129, 10, 140, 239, 120, 233, 109, 166, 10,\n\t\t68, 192, 2, 29, 172, 5, 60, 72, 252, 75, 215, 2, 19, 128,\n\t\t175, 193, 2, 25, 164, 193, 90, 96, 3, 229, 95, 54, 246, 255,\n\t\t74, 248, 174, 32, 184, 32, 135, 181, 41, 196, 71, 154, 181,\n\t\t66, 25, 187, 86, 170, 178, 18, 76, 175, 241, 68, 201, 53,\n\t\t3, 118, 141, 201, 116, 205, 42, 37, 198, 220, 238, 10, 188,\n\t\t57, 218, 160, 12, 76, 112, 90, 112, 108, 112, 108, 48, 106,\n\t\t198, 198, 182, 140, 109, 151, 127, 125, 17, 4, 185, 181, 165,\n\t\t57, 237, 216, 99, 71, 74, 90, 86, 143, 106, 87, 162, 138,\n\t\t255, 118, 77, 255, 221, 58, 254, 255, 177, 192, 255, 205,\n\t\t66, 254, 187, 214, 254, 219, 190, 53, 191, 211, 11, 130, 224,\n\t\t218, 247, 4, 7, 5, 255, 230, 63, 114, 141, 247, 153, 24, 97,\n\t\t68, 16, 69, 33, 106, 161, 54, 234, 160, 46, 234, 161, 62,\n\t\t26, 160, 33, 114, 12, 100, 5, 173, 162, 109, 104, 59, 58,\n\t\t0, 237, 64, 59, 209, 129, 232, 122, 232, 32, 116, 48, 186,\n\t\t62, 186, 1, 186, 33, 186, 17, 114, 161, 242, 16, 116, 40,\n\t\t58, 12, 221, 4, 29, 142, 142, 64, 71, 162, 163, 208, 209,\n\t\t232, 166, 232, 102, 232, 24, 20, 161, 93, 232, 88, 116, 28,\n\t\t58, 30, 237, 70, 39, 160, 19, 209, 30, 116, 18, 58, 25, 157,\n\t\t130, 78, 69, 167, 161, 155, 163, 91, 160, 91, 162, 211, 209,\n\t\t173, 208, 25, 232, 76, 116, 107, 116, 22, 186, 13, 58, 27,\n\t\t157, 131, 110, 139, 110, 135, 110, 143, 206, 69, 119, 64,\n\t\t119, 68, 119, 66, 119, 70, 119, 65, 119, 69, 231, 161, 187,\n\t\t161, 243, 209, 5, 232, 238, 193, 82, 240, 171, 96, 136, 46,\n\t\t68, 247, 64, 23, 161, 123, 162, 123, 161, 123, 163, 251, 160,\n\t\t251, 162, 251, 161, 139, 209, 37, 136, 161, 24, 37, 40, 69,\n\t\t128, 70, 40, 67, 57, 226, 104, 47, 26, 35, 129, 10, 36, 145,\n\t\t66, 37, 218, 135, 52, 50, 200, 162, 10, 77, 208, 20, 173,\n\t\t163, 25, 218, 143, 238, 143, 30, 128, 30, 136, 30, 132, 30,\n\t\t140, 30, 130, 46, 69, 15, 69, 15, 67, 15, 71, 151, 161, 71,\n\t\t160, 71, 162, 203, 209, 163, 208, 21, 232, 74, 116, 21, 122,\n\t\t52, 122, 12, 122, 44, 122, 28, 122, 60, 186, 26, 61, 1, 61,\n\t\t17, 61, 9, 61, 25, 61, 5, 61, 21, 61, 13, 61, 29, 61, 3, 61,\n\t\t19, 61, 11, 253, 15, 122, 54, 122, 14, 122, 46, 122, 30, 122,\n\t\t62, 122, 1, 122, 33, 122, 17, 122, 49, 122, 9, 122, 41, 122,\n\t\t25, 186, 6, 189, 28, 189, 2, 189, 18, 189, 10, 189, 26, 189,\n\t\t6, 189, 22, 189, 14, 189, 30, 189, 1, 189, 17, 189, 9, 189,\n\t\t25, 189, 5, 189, 21, 189, 13, 189, 29, 189, 3, 189, 19, 189,\n\t\t11, 189, 27, 189, 7, 189, 23, 189, 15, 189, 31, 125, 0, 125,\n\t\t16, 125, 8, 125, 24, 125, 4, 125, 20, 125, 12, 125, 28, 125,\n\t\t2, 125, 18, 125, 10, 125, 26, 125, 6, 125, 54, 56, 20, 125,\n\t\t14, 125, 30, 125, 1, 125, 17, 125, 9, 125, 25, 125, 5, 125,\n\t\t21, 125, 13, 125, 29, 125, 3, 125, 19, 125, 11, 125, 27, 125,\n\t\t7, 125, 23, 125, 15, 125, 31, 253, 0, 253, 16, 253, 8, 253,\n\t\t24, 253, 4, 253, 20, 253, 12, 253, 28, 253, 2, 253, 18, 253,\n\t\t10, 253, 26, 253, 6, 253, 22, 253, 14, 253, 30, 253, 1, 253,\n\t\t17, 253, 9, 253, 25, 253, 5, 253, 21, 253, 13, 253, 29, 253,\n\t\t3, 253, 19, 93, 139, 157, 25, 96, 76, 48, 197, 33, 110, 225,\n\t\t54, 238, 224, 46, 238, 225, 62, 30, 224, 33, 94, 194, 203,\n\t\t120, 5, 175, 226, 109, 120, 59, 62, 0, 239, 192, 59, 241,\n\t\t129, 248, 122, 248, 32, 124, 48, 190, 62, 190, 1, 190, 33,\n\t\t190, 17, 190, 49, 94, 195, 135, 224, 67, 241, 97, 248, 38,\n\t\t248, 112, 124, 4, 62, 18, 31, 133, 143, 14, 46, 199, 55, 197,\n\t\t55, 195, 199, 224, 8, 239, 194, 199, 226, 227, 240, 241, 120,\n\t\t55, 62, 1, 159, 136, 247, 224, 147, 130, 43, 131, 195, 240,\n\t\t201, 248, 20, 124, 42, 62, 13, 223, 28, 223, 2, 223, 18, 159,\n\t\t142, 111, 133, 207, 192, 103, 226, 91, 227, 179, 240, 109,\n\t\t240, 217, 248, 28, 124, 91, 124, 59, 124, 123, 124, 46, 190,\n\t\t3, 190, 35, 190, 19, 190, 51, 190, 11, 190, 43, 62, 15, 223,\n\t\t13, 159, 143, 47, 192, 119, 199, 23, 226, 123, 224, 139, 240,\n\t\t61, 241, 189, 240, 189, 241, 125, 240, 125, 241, 253, 240,\n\t\t197, 248, 18, 204, 112, 140, 19, 156, 98, 192, 35, 156, 225,\n\t\t28, 115, 188, 23, 143, 177, 192, 5, 150, 88, 225, 18, 239,\n\t\t195, 26, 155, 224, 170, 224, 10, 108, 113, 133, 39, 120, 138,\n\t\t215, 241, 12, 239, 199, 247, 199, 15, 192, 15, 196, 15, 194,\n\t\t15, 198, 15, 193, 151, 226, 135, 6, 29, 252, 48, 252, 112,\n\t\t124, 25, 126, 4, 126, 36, 190, 28, 63, 10, 95, 129, 175, 196,\n\t\t87, 225, 71, 227, 199, 224, 199, 226, 199, 225, 199, 227,\n\t\t171, 241, 19, 240, 19, 241, 147, 240, 147, 241, 83, 240, 83,\n\t\t241, 211, 240, 211, 241, 51, 240, 51, 241, 179, 240, 255,\n\t\t224, 103, 227, 231, 224, 231, 226, 231, 225, 231, 227, 23,\n\t\t224, 23, 226, 23, 225, 23, 227, 151, 224, 151, 226, 151, 225,\n\t\t107, 240, 203, 241, 43, 240, 43, 241, 171, 240, 171, 241,\n\t\t107, 240, 107, 241, 235, 240, 235, 241, 27, 240, 27, 241,\n\t\t155, 240, 155, 241, 91, 240, 91, 241, 219, 240, 219, 241,\n\t\t59, 240, 59, 241, 187, 240, 187, 241, 123, 240, 123, 241,\n\t\t251, 240, 251, 241, 7, 240, 7, 241, 135, 240, 135, 241, 71,\n\t\t240, 71, 241, 199, 240, 199, 241, 39, 240, 39, 241, 167, 240,\n\t\t167, 241, 103, 240, 103, 241, 231, 240, 231, 241, 23, 240,\n\t\t23, 241, 151, 240, 151, 241, 87, 240, 87, 241, 215, 240, 215,\n\t\t241, 55, 240, 55, 241, 183, 240, 183, 241, 119, 240, 119,\n\t\t241, 247, 240, 247, 241, 15, 240, 15, 241, 143, 240, 143,\n\t\t241, 79, 240, 79, 241, 207, 240, 207, 241, 47, 240, 47, 241,\n\t\t175, 240, 175, 241, 111, 240, 111, 241, 239, 240, 239, 241,\n\t\t31, 240, 31, 241, 159, 240, 159, 241, 95, 240, 95, 241, 223,\n\t\t240, 223, 241, 63, 240, 63, 241, 181, 36, 32, 136, 184, 44,\n\t\t133, 146, 144, 180, 72, 155, 116, 72, 151, 244, 72, 159, 12,\n\t\t200, 144, 44, 145, 101, 178, 66, 86, 201, 54, 178, 157, 28,\n\t\t64, 118, 144, 157, 228, 64, 114, 61, 114, 16, 57, 152, 92,\n\t\t159, 220, 128, 220, 144, 220, 136, 220, 152, 172, 145, 67,\n\t\t200, 161, 228, 48, 114, 19, 114, 56, 57, 130, 28, 73, 142,\n\t\t34, 71, 147, 155, 146, 155, 145, 99, 72, 68, 118, 145, 99,\n\t\t201, 113, 228, 120, 178, 155, 156, 64, 78, 36, 123, 200, 73,\n\t\t228, 100, 114, 10, 57, 149, 156, 70, 110, 78, 110, 65, 110,\n\t\t73, 78, 39, 183, 34, 103, 4, 111, 38, 103, 146, 91, 147, 179,\n\t\t200, 109, 200, 217, 228, 28, 114, 91, 114, 59, 114, 123, 114,\n\t\t110, 112, 53, 185, 3, 185, 35, 185, 19, 185, 51, 185, 11,\n\t\t185, 43, 57, 143, 220, 141, 156, 79, 46, 32, 119, 39, 23,\n\t\t146, 123, 144, 139, 200, 61, 201, 189, 200, 189, 201, 125,\n\t\t200, 125, 201, 253, 200, 197, 228, 18, 194, 72, 76, 18, 146,\n\t\t18, 32, 35, 146, 145, 156, 112, 178, 151, 140, 137, 32, 5,\n\t\t145, 68, 145, 146, 236, 35, 154, 24, 98, 73, 69, 38, 100,\n\t\t74, 214, 201, 140, 236, 39, 247, 39, 15, 32, 15, 36, 15, 34,\n\t\t15, 38, 15, 33, 151, 146, 135, 146, 135, 145, 135, 147, 203,\n\t\t200, 35, 200, 35, 201, 229, 228, 81, 228, 10, 114, 37, 185,\n\t\t138, 60, 154, 60, 134, 60, 150, 60, 142, 60, 158, 92, 77,\n\t\t158, 64, 158, 72, 158, 68, 158, 76, 158, 66, 158, 74, 158,\n\t\t70, 158, 78, 158, 65, 158, 73, 158, 69, 254, 135, 60, 155,\n\t\t60, 135, 60, 151, 60, 143, 60, 159, 188, 128, 188, 144, 188,\n\t\t136, 188, 152, 188, 132, 188, 148, 188, 140, 92, 67, 94, 78,\n\t\t94, 65, 94, 73, 94, 69, 94, 77, 94, 67, 94, 75, 94, 71, 94,\n\t\t79, 222, 64, 222, 72, 222, 68, 222, 76, 222, 66, 222, 74,\n\t\t222, 70, 222, 78, 222, 65, 222, 73, 222, 69, 222, 77, 222,\n\t\t67, 222, 75, 222, 71, 222, 79, 62, 64, 62, 72, 62, 68, 62,\n\t\t76, 62, 66, 62, 74, 62, 70, 62, 78, 62, 65, 62, 73, 62, 69,\n\t\t62, 77, 62, 67, 62, 75, 62, 71, 62, 79, 190, 64, 190, 72,\n\t\t190, 68, 190, 76, 190, 66, 190, 74, 190, 70, 190, 78, 190,\n\t\t65, 190, 73, 190, 69, 190, 77, 190, 67, 190, 75, 190, 71,\n\t\t190, 79, 126, 64, 126, 72, 126, 68, 126, 76, 126, 66, 126,\n\t\t74, 126, 70, 126, 78, 126, 65, 126, 73, 126, 69, 126, 77,\n\t\t126, 67, 126, 75, 126, 71, 126, 79, 254, 64, 254, 72, 254,\n\t\t68, 254, 76, 254, 66, 254, 74, 254, 70, 254, 78, 254, 65,\n\t\t254, 73, 174, 165, 1, 69, 20, 83, 66, 41, 13, 105, 139, 182,\n\t\t105, 135, 118, 105, 143, 246, 233, 128, 14, 233, 18, 93, 166,\n\t\t43, 116, 149, 110, 163, 219, 233, 1, 116, 7, 221, 73, 15,\n\t\t164, 215, 163, 7, 209, 131, 233, 245, 233, 13, 232, 13, 233,\n\t\t141, 232, 141, 233, 26, 61, 132, 30, 74, 15, 163, 55, 161,\n\t\t135, 211, 35, 232, 145, 244, 40, 122, 52, 189, 41, 189, 25,\n\t\t61, 134, 70, 116, 23, 61, 150, 30, 71, 143, 167, 187, 233,\n\t\t9, 244, 68, 186, 135, 158, 68, 79, 166, 167, 208, 83, 233,\n\t\t105, 244, 230, 244, 22, 193, 55, 232, 45, 233, 233, 244, 86,\n\t\t193, 54, 122, 6, 61, 147, 222, 154, 158, 69, 111, 67, 207,\n\t\t166, 231, 208, 219, 210, 219, 209, 219, 211, 115, 233, 29,\n\t\t232, 29, 233, 157, 232, 157, 233, 93, 232, 93, 233, 121, 244,\n\t\t110, 244, 124, 122, 1, 189, 59, 189, 144, 222, 131, 94, 68,\n\t\t239, 73, 239, 69, 239, 77, 239, 67, 239, 75, 239, 71, 47,\n\t\t166, 151, 80, 70, 99, 154, 208, 148, 2, 29, 209, 140, 230,\n\t\t148, 211, 189, 116, 76, 5, 45, 168, 164, 138, 150, 116, 31,\n\t\t213, 212, 80, 75, 43, 58, 161, 83, 186, 78, 103, 116, 63,\n\t\t189, 63, 125, 0, 125, 32, 125, 16, 125, 48, 125, 8, 189, 148,\n\t\t62, 148, 62, 140, 62, 156, 94, 70, 31, 65, 31, 73, 47, 167,\n\t\t143, 162, 87, 208, 43, 233, 85, 244, 209, 244, 49, 244, 177,\n\t\t244, 113, 244, 241, 244, 106, 250, 4, 250, 68, 250, 36, 250,\n\t\t100, 250, 20, 250, 84, 250, 52, 250, 116, 250, 140, 97, 38,\n\t\t152, 49, 81, 193, 180, 229, 146, 135, 69, 101, 120, 210, 50,\n\t\t192, 116, 146, 135, 57, 48, 109, 169, 177, 76, 211, 202, 128,\n\t\t166, 35, 46, 138, 142, 205, 35, 193, 116, 6, 216, 230, 109,\n\t\t135, 185, 177, 97, 146, 67, 50, 14, 45, 47, 192, 244, 235,\n\t\t103, 163, 82, 84, 102, 208, 224, 130, 203, 202, 116, 75, 53,\n\t\t5, 29, 169, 209, 168, 101, 120, 38, 153, 32, 137, 202, 104,\n\t\t174, 10, 8, 19, 161, 146, 49, 213, 138, 165, 157, 84, 77,\n\t\t165, 80, 44, 13, 185, 140, 213, 58, 213, 144, 42, 106, 102,\n\t\t50, 233, 184, 247, 68, 76, 88, 234, 235, 142, 4, 203, 122,\n\t\t57, 176, 180, 204, 149, 4, 211, 155, 40, 81, 21, 224, 26,\n\t\t239, 55, 208, 53, 212, 109, 112, 85, 182, 246, 233, 68, 165,\n\t\t208, 142, 153, 191, 18, 203, 50, 106, 89, 102, 104, 172, 212,\n\t\t184, 227, 138, 130, 233, 113, 88, 106, 46, 109, 43, 97, 5,\n\t\t104, 70, 29, 29, 163, 177, 18, 105, 139, 91, 38, 120, 210,\n\t\t183, 176, 110, 163, 28, 92, 2, 209, 243, 120, 202, 83, 155,\n\t\t247, 152, 224, 153, 140, 4, 140, 236, 160, 134, 9, 72, 11,\n\t\t186, 95, 11, 62, 223, 24, 214, 120, 111, 101, 44, 31, 205,\n\t\t168, 27, 75, 91, 85, 54, 5, 105, 91, 92, 186, 75, 56, 225,\n\t\t41, 168, 144, 23, 44, 131, 94, 193, 74, 183, 32, 99, 208,\n\t\t45, 150, 186, 135, 168, 229, 210, 82, 72, 185, 29, 26, 11,\n\t\t101, 20, 179, 100, 60, 101, 58, 29, 142, 152, 177, 27, 82,\n\t\t103, 14, 104, 41, 216, 44, 44, 89, 101, 128, 26, 171, 202,\n\t\t246, 72, 105, 167, 31, 248, 234, 115, 193, 183, 212, 8, 33,\n\t\t236, 133, 196, 14, 146, 28, 38, 90, 213, 131, 25, 206, 5,\n\t\t63, 130, 190, 91, 207, 40, 225, 58, 17, 48, 240, 235, 57,\n\t\t23, 252, 170, 207, 5, 111, 8, 141, 176, 188, 175, 2, 99, 185,\n\t\t146, 141, 220, 231, 114, 164, 26, 220, 75, 180, 50, 38, 103,\n\t\t92, 27, 18, 51, 217, 99, 90, 171, 169, 127, 109, 191, 134,\n\t\t254, 165, 157, 26, 87, 101, 115, 223, 173, 105, 104, 114,\n\t\t166, 161, 5, 235, 37, 147, 105, 39, 81, 69, 169, 193, 152,\n\t\t109, 176, 158, 8, 86, 176, 133, 215, 209, 140, 143, 44, 21,\n\t\t192, 70, 116, 196, 53, 16, 152, 65, 23, 102, 16, 25, 193,\n\t\t76, 126, 192, 98, 125, 171, 57, 147, 153, 128, 176, 20, 76,\n\t\t194, 32, 97, 2, 100, 202, 180, 179, 182, 150, 102, 50, 85,\n\t\t69, 59, 81, 69, 225, 22, 171, 96, 153, 4, 219, 155, 79, 77,\n\t\t85, 110, 76, 153, 235, 91, 91, 131, 157, 2, 216, 161, 201,\n\t\t85, 89, 114, 153, 69, 9, 211, 182, 53, 82, 34, 5, 221, 175,\n\t\t47, 145, 42, 65, 118, 147, 156, 105, 183, 112, 122, 80, 27,\n\t\t91, 164, 193, 106, 69, 198, 48, 163, 137, 202, 76, 167, 121,\n\t\t159, 233, 186, 205, 23, 229, 76, 140, 186, 54, 175, 138, 216,\n\t\t178, 100, 220, 178, 90, 149, 249, 172, 85, 149, 126, 163,\n\t\t8, 40, 148, 12, 253, 62, 24, 248, 50, 50, 251, 42, 55, 69,\n\t\t149, 116, 91, 165, 159, 104, 103, 55, 174, 39, 41, 209, 198,\n\t\t144, 60, 77, 59, 113, 37, 68, 174, 180, 236, 39, 160, 45,\n\t\t31, 241, 132, 89, 88, 201, 153, 76, 163, 82, 113, 105, 235,\n\t\t217, 95, 94, 80, 120, 131, 88, 144, 171, 114, 241, 174, 27,\n\t\t251, 106, 189, 68, 245, 220, 251, 250, 219, 182, 104, 234,\n\t\t38, 183, 168, 170, 114, 235, 67, 126, 121, 51, 161, 98, 104,\n\t\t77, 53, 200, 36, 15, 45, 51, 99, 211, 26, 113, 97, 65, 119,\n\t\t99, 205, 97, 148, 48, 3, 181, 53, 24, 183, 62, 161, 243, 75,\n\t\t134, 10, 46, 199, 206, 139, 84, 105, 56, 18, 204, 140, 73,\n\t\t82, 89, 154, 168, 114, 214, 45, 89, 9, 58, 17, 188, 164, 134,\n\t\t77, 160, 85, 79, 13, 141, 153, 54, 109, 239, 81, 42, 81, 95,\n\t\t149, 24, 26, 171, 249, 24, 108, 174, 85, 149, 229, 221, 74,\n\t\t166, 160, 5, 151, 16, 90, 22, 11, 8, 11, 150, 241, 36, 180,\n\t\t186, 74, 198, 189, 66, 73, 152, 69, 49, 23, 162, 151, 48,\n\t\t13, 245, 4, 116, 106, 88, 149, 141, 206, 27, 115, 13, 253,\n\t\t216, 219, 137, 115, 70, 210, 80, 163, 180, 237, 186, 162,\n\t\t182, 25, 143, 170, 178, 3, 114, 2, 66, 149, 64, 43, 153, 170,\n\t\t48, 99, 19, 16, 206, 251, 216, 182, 225, 22, 10, 86, 118,\n\t\t170, 34, 214, 32, 4, 11, 75, 102, 44, 116, 133, 107, 52, 174,\n\t\t68, 220, 118, 115, 16, 21, 105, 223, 88, 176, 185, 50, 137,\n\t\t42, 161, 99, 42, 110, 221, 92, 209, 24, 132, 104, 37, 106,\n\t\t52, 2, 232, 228, 202, 148, 206, 151, 117, 89, 17, 87, 130,\n\t\t201, 4, 90, 5, 164, 99, 110, 251, 35, 215, 24, 232, 104, 47,\n\t\t88, 26, 3, 232, 78, 222, 88, 81, 189, 239, 107, 188, 234,\n\t\t119, 73, 148, 170, 42, 222, 88, 226, 69, 77, 179, 196, 139,\n\t\t42, 183, 196, 139, 178, 27, 113, 175, 214, 212, 155, 221,\n\t\t195, 102, 179, 123, 236, 54, 123, 243, 196, 84, 182, 83, 48,\n\t\t99, 171, 202, 150, 96, 165, 187, 248, 165, 176, 173, 66, 197,\n\t\t92, 64, 111, 95, 165, 108, 211, 78, 13, 235, 121, 54, 37,\n\t\t151, 18, 116, 171, 182, 170, 208, 20, 92, 64, 56, 210, 106,\n\t\t42, 73, 1, 121, 59, 99, 5, 148, 44, 237, 140, 97, 22, 43,\n\t\t166, 211, 37, 23, 75, 34, 239, 184, 64, 67, 218, 177, 160,\n\t\t11, 46, 153, 160, 46, 80, 116, 53, 148, 98, 22, 49, 33, 150,\n\t\t132, 74, 106, 119, 225, 173, 143, 38, 90, 149, 125, 87, 37,\n\t\t138, 53, 147, 73, 238, 182, 27, 151, 99, 234, 156, 92, 127,\n\t\t193, 187, 244, 77, 85, 130, 54, 137, 230, 165, 237, 154, 42,\n\t\t174, 81, 11, 52, 51, 160, 7, 101, 181, 127, 191, 128, 168,\n\t\t228, 144, 64, 175, 224, 174, 81, 183, 133, 87, 54, 97, 237,\n\t\t175, 58, 115, 167, 180, 234, 124, 89, 4, 235, 150, 203, 172,\n\t\t226, 38, 7, 221, 210, 42, 25, 131, 221, 62, 119, 68, 11, 59,\n\t\t240, 128, 235, 232, 252, 252, 172, 94, 71, 89, 149, 215, 125,\n\t\t212, 205, 124, 203, 141, 73, 233, 94, 237, 68, 220, 86, 243,\n\t\t78, 195, 192, 12, 122, 32, 4, 47, 13, 55, 81, 190, 9, 39,\n\t\t61, 109, 204, 166, 205, 176, 217, 214, 88, 81, 223, 104, 194,\n\t\t67, 45, 244, 74, 144, 115, 189, 247, 233, 141, 224, 124, 109,\n\t\t201, 140, 89, 173, 247, 78, 173, 244, 125, 90, 222, 162, 169,\n\t\t202, 109, 91, 100, 63, 184, 46, 84, 90, 69, 142, 95, 244,\n\t\t74, 85, 201, 212, 195, 126, 170, 132, 96, 186, 86, 235, 170,\n\t\t4, 240, 176, 51, 115, 29, 168, 117, 206, 54, 189, 110, 170,\n\t\t106, 157, 227, 58, 208, 113, 133, 27, 251, 178, 223, 164,\n\t\t76, 148, 57, 243, 61, 25, 46, 200, 85, 185, 82, 75, 133, 170,\n\t\t26, 95, 184, 180, 168, 168, 202, 85, 47, 202, 170, 0, 205,\n\t\t147, 122, 36, 91, 52, 85, 89, 59, 119, 19, 85, 101, 191, 65,\n\t\t126, 13, 70, 80, 48, 1, 212, 21, 196, 84, 146, 22, 74, 201,\n\t\t182, 99, 84, 124, 2, 36, 174, 178, 173, 83, 228, 86, 188,\n\t\t151, 42, 59, 15, 177, 211, 28, 64, 36, 46, 198, 118, 5, 215,\n\t\t204, 15, 107, 104, 74, 150, 64, 100, 242, 202, 90, 1, 203,\n\t\t115, 159, 51, 95, 146, 74, 114, 127, 48, 103, 103, 75, 153,\n\t\t102, 105, 213, 196, 83, 86, 118, 4, 147, 89, 197, 50, 32,\n\t\t35, 182, 222, 137, 43, 46, 82, 46, 179, 48, 201, 185, 72,\n\t\t73, 201, 166, 52, 169, 98, 8, 93, 97, 218, 26, 146, 89, 34,\n\t\t128, 36, 76, 83, 203, 214, 57, 181, 26, 160, 147, 50, 203,\n\t\t98, 102, 154, 57, 45, 211, 81, 215, 131, 169, 210, 105, 207,\n\t\t35, 88, 79, 64, 44, 215, 119, 29, 83, 244, 161, 165, 190,\n\t\t229, 89, 209, 160, 94, 140, 122, 244, 181, 158, 85, 41, 87,\n\t\t53, 244, 244, 169, 110, 210, 239, 91, 193, 71, 206, 36, 100,\n\t\t54, 104, 140, 90, 42, 155, 228, 125, 31, 14, 34, 31, 231,\n\t\t219, 57, 55, 86, 233, 89, 219, 209, 72, 46, 179, 174, 17,\n\t\t60, 5, 109, 162, 188, 91, 155, 35, 19, 118, 101, 3, 69, 243,\n\t\t200, 161, 138, 184, 53, 170, 108, 172, 4, 177, 118, 214, 139,\n\t\t185, 84, 73, 37, 152, 54, 180, 20, 85, 214, 149, 48, 53, 254,\n\t\t37, 116, 202, 71, 188, 151, 48, 225, 238, 90, 165, 123, 206,\n\t\t17, 215, 155, 57, 180, 154, 153, 188, 239, 200, 72, 170, 85,\n\t\t89, 130, 238, 151, 204, 197, 209, 88, 87, 38, 31, 198, 92,\n\t\t219, 60, 117, 59, 136, 141, 161, 87, 51, 5, 166, 129, 53,\n\t\t164, 161, 228, 115, 165, 139, 78, 61, 171, 50, 231, 45, 213,\n\t\t104, 212, 157, 67, 217, 142, 121, 189, 4, 113, 101, 86, 19,\n\t\t161, 12, 164, 110, 17, 221, 98, 114, 153, 245, 77, 14, 99,\n\t\t16, 222, 30, 186, 137, 111, 82, 84, 102, 57, 169, 223, 51,\n\t\t231, 89, 212, 228, 188, 236, 251, 208, 98, 32, 209, 96, 123,\n\t\t133, 178, 74, 251, 118, 251, 198, 45, 169, 141, 38, 28, 166,\n\t\t93, 159, 36, 196, 192, 108, 56, 1, 89, 25, 90, 184, 216, 90,\n\t\t128, 78, 42, 61, 235, 91, 205, 164, 201, 192, 197, 210, 229,\n\t\t5, 236, 102, 116, 224, 171, 55, 129, 161, 239, 158, 106, 112,\n\t\t175, 190, 225, 52, 181, 218, 88, 173, 198, 48, 92, 192, 209,\n\t\t100, 139, 148, 183, 36, 84, 22, 116, 175, 110, 93, 128, 49,\n\t\t45, 3, 122, 2, 186, 235, 7, 224, 198, 215, 243, 200, 147,\n\t\t85, 18, 67, 234, 214, 128, 203, 150, 169, 226, 41, 155, 13,\n\t\t98, 102, 45, 232, 89, 52, 170, 132, 216, 57, 23, 108, 174,\n\t\t1, 34, 183, 236, 22, 180, 217, 168, 227, 200, 216, 242, 92,\n\t\t104, 238, 14, 231, 50, 20, 165, 157, 13, 11, 85, 25, 168,\n\t\t185, 17, 232, 14, 143, 146, 74, 27, 165, 7, 42, 118, 36, 59,\n\t\t202, 180, 170, 202, 165, 70, 168, 164, 23, 251, 198, 242,\n\t\t100, 60, 115, 86, 234, 211, 33, 9, 195, 152, 249, 8, 29, 25,\n\t\t231, 250, 151, 115, 85, 233, 58, 83, 115, 140, 208, 46, 109,\n\t\t202, 174, 63, 195, 77, 17, 100, 218, 221, 144, 186, 158, 164,\n\t\t185, 0, 209, 171, 233, 154, 179, 204, 154, 199, 153, 132,\n\t\t27, 163, 180, 233, 123, 73, 240, 253, 76, 167, 117, 37, 83,\n\t\t170, 100, 60, 216, 164, 119, 160, 155, 135, 129, 37, 128,\n\t\t237, 100, 184, 65, 144, 221, 188, 46, 109, 72, 222, 211, 111,\n\t\t138, 126, 170, 55, 69, 239, 250, 59, 92, 166, 149, 177, 122,\n\t\t214, 118, 41, 78, 201, 101, 215, 93, 157, 33, 26, 82, 48,\n\t\t23, 79, 61, 237, 245, 230, 225, 211, 151, 121, 234, 224, 178,\n\t\t152, 121, 68, 217, 32, 215, 49, 203, 150, 23, 4, 51, 6, 219,\n\t\t206, 153, 201, 45, 203, 86, 26, 79, 198, 68, 196, 146, 4,\n\t\t140, 9, 99, 193, 101, 186, 234, 61, 70, 148, 66, 29, 133,\n\t\t185, 146, 13, 101, 174, 19, 197, 118, 172, 25, 23, 2, 174,\n\t\t207, 140, 225, 198, 242, 9, 248, 244, 22, 220, 174, 137, 204,\n\t\t204, 88, 40, 204, 97, 204, 59, 109, 86, 135, 137, 104, 238,\n\t\t23, 35, 63, 81, 165, 6, 23, 152, 105, 10, 108, 52, 220, 114,\n\t\t191, 39, 212, 52, 154, 112, 195, 149, 244, 139, 98, 114, 54,\n\t\t134, 225, 134, 255, 117, 73, 193, 128, 165, 169, 203, 101,\n\t\t34, 151, 142, 110, 8, 142, 183, 215, 219, 176, 30, 126, 135,\n\t\t167, 81, 204, 210, 12, 218, 60, 245, 55, 87, 108, 14, 186,\n\t\t80, 5, 56, 254, 230, 12, 248, 224, 69, 197, 86, 35, 222, 82,\n\t\t215, 25, 206, 246, 69, 69, 83, 107, 117, 81, 231, 13, 186,\n\t\t101, 114, 231, 145, 105, 204, 108, 222, 46, 85, 154, 48, 99,\n\t\t151, 167, 92, 166, 106, 26, 21, 108, 157, 23, 124, 63, 108,\n\t\t200, 92, 122, 121, 169, 145, 53, 56, 47, 11, 93, 207, 104,\n\t\t146, 156, 151, 93, 35, 213, 116, 36, 220, 240, 43, 11, 210,\n\t\t112, 225, 44, 78, 201, 78, 35, 153, 142, 35, 192, 206, 4,\n\t\t186, 222, 79, 122, 238, 97, 102, 50, 241, 42, 103, 8, 83,\n\t\t102, 147, 124, 224, 167, 87, 85, 222, 88, 250, 94, 224, 210,\n\t\t215, 213, 80, 63, 78, 74, 165, 90, 62, 116, 24, 199, 53, 18,\n\t\t46, 106, 45, 200, 182, 163, 30, 76, 216, 237, 66, 201, 172,\n\t\t241, 121, 206, 199, 59, 191, 119, 93, 157, 231, 81, 215, 209,\n\t\t213, 60, 234, 58, 202, 170, 92, 173, 147, 210, 104, 51, 61,\n\t\t233, 186, 204, 195, 179, 204, 193, 166, 50, 202, 23, 133,\n\t\t201, 142, 205, 38, 22, 248, 215, 191, 106, 93, 71, 118, 254,\n\t\t139, 214, 119, 101, 251, 191, 168, 125, 103, 44, 104, 201,\n\t\t132, 11, 19, 158, 192, 93, 111, 171, 166, 97, 13, 110, 171,\n\t\t193, 122, 146, 51, 153, 121, 97, 155, 79, 163, 162, 249, 57,\n\t\t140, 143, 130, 181, 170, 206, 55, 253, 28, 102, 80, 44, 9,\n\t\t152, 128, 240, 245, 124, 27, 181, 88, 149, 126, 216, 158,\n\t\t51, 58, 155, 94, 218, 60, 202, 112, 55, 150, 22, 120, 45,\n\t\t19, 46, 164, 196, 13, 195, 90, 218, 204, 169, 252, 130, 46,\n\t\t114, 223, 82, 105, 231, 173, 109, 232, 201, 120, 207, 228,\n\t\t28, 132, 239, 71, 175, 206, 7, 252, 243, 150, 37, 121, 99,\n\t\t179, 254, 14, 119, 164, 216, 219, 131, 223, 60, 174, 139,\n\t\t141, 69, 250, 128, 56, 116, 92, 36, 102, 66, 68, 174, 88,\n\t\t174, 189, 199, 134, 60, 136, 213, 84, 212, 94, 69, 136, 48,\n\t\t201, 193, 152, 129, 47, 163, 152, 59, 143, 211, 111, 4, 183,\n\t\t178, 189, 26, 143, 61, 215, 168, 161, 244, 71, 68, 181, 80,\n\t\t178, 169, 108, 170, 239, 171, 0, 100, 163, 214, 74, 141, 59,\n\t\t105, 85, 196, 142, 22, 12, 71, 74, 109, 190, 188, 155, 41,\n\t\t49, 242, 168, 159, 59, 106, 63, 139, 202, 42, 25, 119, 247,\n\t\t85, 60, 77, 185, 35, 49, 205, 202, 185, 189, 62, 240, 51,\n\t\t16, 89, 144, 146, 155, 229, 137, 18, 2, 102, 155, 13, 49,\n\t\t33, 64, 103, 28, 76, 39, 246, 118, 201, 83, 18, 171, 245,\n\t\t48, 86, 235, 96, 86, 55, 210, 233, 168, 128, 148, 39, 76,\n\t\t208, 184, 210, 46, 139, 45, 77, 37, 192, 44, 111, 152, 110,\n\t\t237, 186, 151, 54, 101, 231, 19, 187, 41, 103, 153, 84, 6,\n\t\t12, 73, 37, 11, 29, 195, 158, 13, 125, 25, 141, 4, 179, 49,\n\t\t164, 53, 95, 107, 218, 94, 89, 20, 188, 137, 140, 184, 54,\n\t\t214, 117, 105, 48, 207, 74, 157, 122, 121, 67, 48, 179, 34,\n\t\t86, 162, 223, 56, 57, 119, 111, 232, 130, 163, 153, 55, 210,\n\t\t42, 221, 232, 108, 88, 114, 33, 204, 246, 82, 111, 186, 244,\n\t\t40, 86, 142, 220, 30, 248, 111, 116, 222, 52, 74, 173, 18,\n\t\t72, 43, 13, 102, 232, 56, 142, 143, 30, 35, 102, 108, 219,\n\t\t20, 202, 173, 98, 219, 204, 28, 113, 132, 118, 109, 93, 166,\n\t\t191, 224, 15, 233, 132, 51, 17, 186, 194, 116, 167, 76, 67,\n\t\t238, 34, 125, 107, 234, 207, 4, 195, 245, 72, 179, 89, 39,\n\t\t86, 235, 181, 59, 159, 7, 179, 84, 89, 51, 156, 11, 53, 1,\n\t\t76, 84, 149, 228, 173, 84, 73, 102, 129, 166, 106, 2, 117,\n\t\t184, 205, 149, 167, 213, 219, 22, 133, 200, 243, 171, 149,\n\t\t45, 170, 202, 164, 161, 15, 34, 62, 148, 155, 40, 7, 225,\n\t\t70, 49, 44, 153, 102, 73, 94, 89, 136, 98, 181, 62, 40, 65,\n\t\t149, 142, 14, 51, 173, 103, 189, 146, 103, 217, 44, 138, 153,\n\t\t28, 183, 52, 143, 99, 37, 67, 173, 42, 11, 29, 3, 144, 58,\n\t\t75, 167, 62, 17, 242, 185, 114, 52, 117, 121, 172, 101, 37,\n\t\t12, 253, 113, 71, 228, 182, 189, 179, 238, 90, 42, 212, 196,\n\t\t145, 72, 79, 184, 235, 225, 244, 166, 92, 66, 228, 9, 199,\n\t\t210, 124, 179, 213, 119, 26, 209, 209, 52, 201, 42, 91, 115,\n\t\t48, 111, 78, 13, 116, 142, 162, 222, 160, 137, 202, 106, 178,\n\t\t6, 41, 183, 3, 143, 70, 154, 131, 27, 164, 23, 154, 124, 4,\n\t\t234, 74, 238, 185, 186, 9, 207, 58, 106, 40, 185, 220, 203,\n\t\t26, 202, 234, 125, 68, 173, 174, 157, 72, 77, 255, 88, 214,\n\t\t0, 94, 55, 100, 220, 123, 219, 177, 240, 188, 177, 235, 2,\n\t\t175, 95, 187, 229, 88, 43, 230, 195, 92, 100, 93, 228, 11,\n\t\t99, 173, 84, 225, 104, 183, 24, 251, 61, 176, 109, 19, 70,\n\t\t22, 88, 226, 242, 240, 36, 175, 116, 226, 214, 150, 75, 51,\n\t\t240, 73, 108, 98, 163, 148, 155, 132, 38, 90, 77, 67, 87,\n\t\t72, 154, 242, 4, 186, 174, 136, 70, 124, 50, 71, 170, 210,\n\t\t29, 143, 148, 132, 26, 24, 190, 222, 243, 192, 199, 239, 90,\n\t\t103, 167, 170, 159, 42, 165, 107, 7, 150, 118, 61, 118, 189,\n\t\t109, 193, 190, 138, 9, 211, 30, 1, 115, 166, 74, 71, 90, 101,\n\t\t157, 140, 153, 168, 172, 138, 178, 237, 215, 5, 204, 32, 211,\n\t\t192, 106, 70, 192, 228, 182, 69, 33, 242, 143, 247, 114, 16,\n\t\t60, 81, 165, 5, 221, 29, 243, 41, 143, 98, 174, 211, 174,\n\t\t163, 210, 190, 210, 242, 6, 170, 171, 183, 10, 40, 148, 158,\n\t\t29, 176, 213, 161, 215, 115, 189, 188, 224, 203, 167, 108,\n\t\t2, 219, 175, 35, 123, 7, 95, 235, 188, 45, 44, 47, 96, 239,\n\t\t27, 164, 178, 245, 91, 218, 37, 19, 96, 45, 180, 75, 166,\n\t\t221, 214, 236, 149, 160, 19, 144, 150, 101, 176, 92, 106,\n\t\t229, 25, 180, 115, 68, 154, 21, 46, 237, 4, 94, 218, 80, 171,\n\t\t88, 217, 80, 87, 2, 244, 146, 47, 163, 68, 21, 49, 151, 144,\n\t\t174, 212, 98, 174, 52, 223, 175, 164, 101, 162, 185, 63, 1,\n\t\t109, 189, 75, 49, 73, 174, 148, 232, 155, 68, 195, 52, 213,\n\t\t142, 64, 246, 77, 174, 32, 242, 159, 5, 76, 104, 198, 149,\n\t\t16, 253, 198, 75, 184, 189, 20, 214, 212, 198, 151, 174, 227,\n\t\t45, 151, 23, 177, 194, 165, 71, 202, 209, 148, 17, 136, 182,\n\t\t85, 74, 196, 106, 189, 101, 77, 206, 181, 109, 79, 153, 112,\n\t\t79, 183, 166, 181, 247, 98, 50, 211, 51, 159, 210, 79, 217,\n\t\t44, 100, 86, 48, 19, 178, 41, 211, 105, 55, 102, 201, 216,\n\t\t39, 235, 131, 24, 246, 115, 55, 138, 74, 79, 92, 254, 41,\n\t\t179, 208, 231, 137, 237, 184, 242, 12, 162, 147, 48, 41, 89,\n\t\t204, 77, 115, 186, 82, 39, 81, 157, 68, 37, 99, 203, 184,\n\t\t88, 74, 148, 76, 56, 232, 12, 162, 230, 40, 80, 141, 57, 244,\n\t\t235, 75, 20, 115, 11, 29, 183, 130, 62, 244, 167, 60, 243,\n\t\t190, 215, 199, 210, 76, 179, 50, 15, 83, 190, 127, 255, 108,\n\t\t37, 213, 108, 100, 253, 121, 118, 125, 54, 67, 83, 93, 21,\n\t\t67, 87, 68, 198, 2, 136, 146, 201, 126, 99, 125, 222, 83,\n\t\t55, 121, 184, 180, 154, 37, 141, 52, 39, 20, 253, 38, 217,\n\t\t119, 65, 189, 223, 100, 247, 14, 215, 225, 130, 203, 137,\n\t\t226, 9, 108, 95, 20, 162, 250, 248, 102, 181, 62, 26, 88,\n\t\t112, 234, 75, 94, 227, 63, 38, 217, 74, 67, 221, 90, 205,\n\t\t82, 232, 136, 11, 209, 117, 69, 148, 106, 94, 246, 71, 206,\n\t\t161, 107, 191, 142, 116, 196, 77, 222, 30, 137, 202, 228,\n\t\t144, 246, 252, 185, 160, 223, 69, 171, 91, 62, 132, 121, 194,\n\t\t224, 207, 162, 35, 54, 114, 124, 127, 169, 17, 106, 246, 111,\n\t\t122, 141, 104, 56, 107, 103, 154, 23, 44, 1, 154, 105, 46,\n\t\t59, 174, 240, 70, 236, 65, 12, 172, 88, 222, 64, 145, 153,\n\t\t2, 179, 125, 47, 123, 183, 110, 106, 108, 246, 85, 92, 218,\n\t\t213, 5, 236, 156, 138, 54, 189, 90, 99, 55, 160, 215, 214,\n\t\t207, 88, 37, 179, 10, 182, 45, 224, 230, 209, 149, 69, 149,\n\t\t115, 229, 117, 79, 28, 114, 61, 41, 23, 236, 127, 232, 229,\n\t\t185, 249, 47, 109, 126, 79, 115, 3, 240, 231, 34, 6, 108,\n\t\t63, 231, 89, 46, 234, 243, 225, 118, 174, 108, 100, 171, 56,\n\t\t204, 149, 5, 17, 238, 117, 233, 33, 29, 115, 99, 186, 174,\n\t\t168, 71, 235, 145, 123, 91, 61, 196, 80, 176, 42, 203, 123,\n\t\t190, 244, 21, 6, 53, 172, 59, 219, 232, 93, 245, 129, 168,\n\t\t178, 204, 101, 82, 9, 211, 118, 243, 19, 88, 186, 73, 33,\n\t\t61, 11, 104, 213, 108, 50, 44, 32, 101, 162, 91, 64, 30, 197,\n\t\t130, 201, 241, 138, 67, 90, 9, 207, 218, 96, 6, 166, 83, 40,\n\t\t89, 185, 144, 59, 44, 148, 182, 46, 89, 5, 99, 5, 12, 234,\n\t\t147, 22, 87, 19, 116, 199, 217, 178, 51, 190, 174, 75, 8,\n\t\t70, 76, 38, 51, 159, 26, 72, 30, 15, 154, 140, 193, 123, 136,\n\t\t161, 63, 48, 114, 188, 158, 79, 152, 88, 174, 165, 20, 74,\n\t\t166, 157, 221, 13, 22, 109, 178, 109, 88, 26, 37, 122, 214,\n\t\t113, 87, 183, 92, 253, 230, 172, 45, 154, 48, 217, 221, 176,\n\t\t213, 38, 210, 198, 222, 91, 40, 225, 186, 199, 36, 8, 98,\n\t\t74, 214, 54, 165, 80, 54, 201, 187, 166, 212, 254, 16, 200,\n\t\t185, 25, 86, 148, 195, 141, 79, 65, 158, 147, 207, 15, 248,\n\t\t231, 131, 238, 152, 202, 217, 183, 129, 158, 241, 249, 145,\n\t\t139, 101, 109, 51, 229, 69, 1, 122, 232, 175, 110, 102, 74,\n\t\t165, 68, 207, 242, 13, 34, 98, 185, 134, 52, 180, 74, 217,\n\t\t124, 105, 254, 125, 193, 245, 42, 201, 135, 19, 72, 172, 210,\n\t\t77, 154, 176, 84, 83, 156, 200, 165, 9, 92, 102, 75, 155,\n\t\t17, 223, 239, 119, 198, 93, 180, 6, 147, 131, 4, 221, 101,\n\t\t101, 89, 83, 45, 202, 172, 42, 156, 203, 130, 190, 15, 173,\n\t\t26, 88, 234, 131, 41, 227, 178, 157, 212, 95, 216, 250, 238,\n\t\t218, 28, 159, 116, 29, 78, 116, 125, 222, 173, 35, 195, 83,\n\t\t88, 73, 114, 166, 51, 159, 127, 91, 127, 26, 217, 75, 185,\n\t\t134, 196, 33, 51, 72, 53, 155, 70, 165, 18, 179, 76, 201,\n\t\t126, 253, 137, 192, 159, 254, 245, 5, 155, 121, 202, 160,\n\t\t170, 178, 62, 85, 247, 31, 69, 218, 138, 11, 55, 159, 180,\n\t\t84, 170, 108, 153, 156, 149, 96, 6, 126, 86, 213, 40, 18,\n\t\t124, 4, 161, 5, 176, 121, 207, 151, 222, 39, 12, 109, 94,\n\t\t199, 201, 130, 153, 177, 25, 90, 205, 70, 35, 158, 68, 126,\n\t\t55, 12, 231, 116, 72, 26, 11, 186, 33, 71, 37, 79, 198, 85,\n\t\t137, 89, 74, 153, 28, 231, 97, 204, 99, 1, 195, 184, 50, 92,\n\t\t250, 240, 201, 11, 160, 9, 183, 179, 165, 77, 110, 232, 92,\n\t\t219, 242, 252, 115, 95, 35, 135, 254, 235, 232, 32, 205, 153,\n\t\t46, 88, 146, 179, 177, 102, 219, 182, 28, 21, 68, 22, 214,\n\t\t237, 160, 249, 160, 232, 25, 208, 252, 235, 98, 41, 42, 51,\n\t\t28, 85, 82, 250, 220, 204, 53, 214, 206, 84, 89, 105, 86,\n\t\t132, 57, 43, 12, 107, 229, 108, 54, 102, 130, 238, 133, 148,\n\t\t47, 237, 85, 149, 207, 7, 167, 185, 35, 209, 225, 152, 177,\n\t\t152, 181, 198, 142, 83, 178, 142, 96, 50, 117, 91, 173, 91,\n\t\t48, 46, 162, 184, 18, 227, 118, 1, 82, 105, 150, 183, 10,\n\t\t101, 246, 85, 128, 85, 177, 84, 50, 99, 217, 136, 105, 206,\n\t\t36, 55, 69, 232, 79, 136, 86, 74, 193, 28, 149, 25, 69, 83,\n\t\t165, 29, 193, 166, 165, 18, 162, 229, 138, 40, 167, 206, 166,\n\t\t135, 174, 240, 212, 214, 177, 215, 112, 95, 165, 153, 28,\n\t\t54, 63, 21, 104, 38, 164, 145, 230, 223, 92, 66, 163, 146,\n\t\t177, 89, 158, 159, 244, 43, 229, 51, 187, 85, 191, 118, 142,\n\t\t24, 39, 110, 7, 186, 189, 62, 95, 205, 148, 77, 120, 218,\n\t\t53, 51, 201, 50, 149, 85, 16, 90, 215, 241, 158, 85, 154,\n\t\t243, 40, 99, 22, 90, 19, 158, 51, 205, 230, 63, 22, 40, 28,\n\t\t21, 158, 113, 25, 205, 152, 204, 134, 13, 29, 140, 188, 47,\n\t\t172, 73, 97, 10, 44, 237, 37, 172, 40, 157, 77, 201, 148,\n\t\t36, 204, 134, 254, 104, 189, 87, 231, 198, 133, 82, 178, 91,\n\t\t67, 83, 201, 154, 175, 165, 187, 143, 107, 215, 224, 36, 146,\n\t\t170, 172, 149, 106, 150, 41, 185, 228, 162, 166, 63, 237,\n\t\t243, 193, 183, 157, 86, 50, 3, 37, 235, 99, 241, 196, 76,\n\t\t250, 35, 110, 108, 164, 25, 55, 144, 134, 89, 174, 140, 109,\n\t\t229, 204, 109, 226, 78, 206, 100, 53, 230, 44, 239, 229, 204,\n\t\t70, 83, 127, 96, 215, 202, 185, 99, 19, 161, 75, 99, 84, 152,\n\t\t43, 109, 96, 224, 83, 146, 40, 101, 5, 203, 160, 157, 235,\n\t\t217, 68, 114, 70, 157, 253, 118, 252, 247, 8, 198, 229, 80,\n\t\t130, 157, 42, 61, 142, 166, 126, 247, 43, 183, 247, 218, 186,\n\t\t146, 210, 17, 19, 147, 56, 135, 178, 226, 185, 78, 228, 237,\n\t\t208, 237, 95, 211, 50, 37, 79, 157, 153, 43, 238, 50, 110,\n\t\t127, 144, 216, 246, 225, 93, 233, 154, 173, 115, 185, 183,\n\t\t210, 144, 14, 38, 218, 103, 108, 158, 27, 83, 151, 114, 247,\n\t\t189, 179, 168, 19, 176, 165, 102, 186, 128, 249, 124, 119,\n\t\t121, 115, 246, 220, 144, 101, 51, 155, 14, 110, 111, 102,\n\t\t211, 159, 60, 185, 20, 135, 77, 102, 75, 27, 51, 236, 171,\n\t\t116, 82, 40, 84, 162, 153, 237, 248, 79, 120, 149, 97, 45,\n\t\t151, 164, 41, 61, 40, 65, 27, 159, 244, 41, 155, 119, 75,\n\t\t165, 34, 71, 209, 138, 182, 123, 40, 86, 211, 158, 134, 178,\n\t\t138, 5, 119, 174, 192, 20, 42, 91, 177, 80, 148, 160, 189,\n\t\t99, 142, 92, 180, 91, 94, 84, 8, 53, 237, 76, 148, 133, 104,\n\t\t6, 44, 156, 58, 111, 64, 99, 22, 207, 134, 174, 240, 201,\n\t\t21, 103, 25, 116, 99, 174, 114, 230, 150, 132, 198, 66, 101,\n\t\t155, 191, 33, 72, 217, 108, 243, 188, 116, 10, 48, 238, 37,\n\t\t76, 166, 222, 173, 67, 203, 61, 173, 236, 48, 97, 38, 143,\n\t\t52, 100, 220, 57, 146, 237, 243, 159, 52, 44, 28, 35, 117,\n\t\t210, 170, 40, 221, 205, 225, 28, 68, 35, 174, 161, 3, 142,\n\t\t112, 73, 176, 97, 198, 71, 214, 12, 106, 127, 156, 228, 0,\n\t\t218, 52, 63, 235, 153, 230, 220, 140, 97, 214, 48, 25, 168,\n\t\t180, 42, 161, 231, 163, 190, 112, 46, 105, 251, 38, 220, 100,\n\t\t193, 89, 197, 45, 211, 3, 31, 189, 163, 88, 171, 49, 200,\n\t\t126, 238, 51, 251, 24, 92, 42, 233, 205, 204, 45, 72, 218,\n\t\t230, 9, 79, 4, 152, 144, 103, 66, 169, 86, 193, 173, 5, 217,\n\t\t46, 170, 44, 202, 149, 237, 106, 150, 114, 191, 123, 135,\n\t\t27, 40, 170, 207, 231, 60, 63, 46, 186, 134, 89, 16, 130,\n\t\t91, 88, 218, 64, 46, 95, 202, 219, 166, 78, 250, 59, 134,\n\t\t23, 30, 180, 205, 152, 89, 111, 156, 99, 238, 242, 220, 250,\n\t\t18, 73, 165, 83, 158, 180, 140, 112, 177, 137, 152, 194, 12,\n\t\t140, 84, 83, 111, 120, 62, 141, 151, 106, 90, 48, 217, 113,\n\t\t215, 82, 168, 105, 104, 65, 102, 208, 170, 45, 216, 197, 60,\n\t\t97, 168, 213, 172, 232, 248, 79, 170, 76, 216, 48, 102, 137,\n\t\t146, 3, 191, 225, 155, 83, 134, 126, 236, 98, 86, 100, 4,\n\t\t79, 160, 229, 102, 214, 56, 19, 230, 146, 39, 243, 26, 115,\n\t\t223, 189, 113, 46, 145, 232, 202, 38, 57, 129, 44, 235, 230,\n\t\t172, 136, 43, 157, 129, 174, 51, 250, 130, 167, 169, 112,\n\t\t137, 159, 227, 162, 157, 220, 229, 142, 57, 179, 173, 92,\n\t\t217, 84, 101, 93, 231, 41, 18, 151, 62, 44, 53, 145, 172,\n\t\t105, 48, 44, 89, 6, 186, 87, 66, 89, 250, 228, 197, 246, 75,\n\t\t190, 127, 63, 171, 251, 52, 172, 143, 72, 155, 67, 214, 213,\n\t\t45, 146, 63, 236, 168, 19, 227, 74, 27, 232, 251, 212, 171,\n\t\t118, 161, 245, 79, 170, 209, 181, 215, 6, 216, 255, 245, 199,\n\t\t192, 255, 253, 135, 255, 19, 184, 128, 144, 151, 5, 216, 255,\n\t\t69, 92, 243, 139, 236, 250, 239, 67, 190, 124, 201, 209, 194,\n\t\t95, 223, 242, 234, 51, 154, 235, 217, 255, 39, 0, 0, 255,\n\t\t255, 80, 75, 7, 8, 13, 41, 164, 32, 17, 126, 1, 0, 76, 216,\n\t\t2, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 9, 0, 119, 101, 98,\n\t\t102, 111, 110, 116, 115, 47, 102, 97, 45, 115, 111, 108, 105,\n\t\t100, 45, 57, 48, 48, 46, 119, 111, 102, 102, 85, 84, 5, 0,\n\t\t1, 127, 106, 41, 96, 108, 149, 67, 140, 46, 12, 211, 109,\n\t\t159, 182, 109, 219, 182, 237, 211, 182, 109, 219, 182, 109,\n\t\t219, 60, 109, 227, 180, 109, 219, 182, 125, 243, 126, 119,\n\t\t250, 87, 82, 149, 212, 96, 237, 193, 154, 108, 119, 121, 113,\n\t\t113, 0, 16, 0, 0, 0, 242, 0, 0, 224, 0, 0, 0, 240, 154, 12,\n\t\t144, 84, 103, 62, 224, 255, 24, 113, 113, 21, 89, 0, 0, 136,\n\t\t17, 0, 0, 96, 3, 0, 0, 220, 200, 197, 200, 7, 9, 81, 49, 113,\n\t\t0, 0, 72, 6, 0, 0, 224, 255, 111, 169, 65, 254, 202, 43, 51,\n\t\t48, 3, 0, 64, 54, 0, 0, 64, 30, 0, 0, 24, 136, 4, 31, 231,\n\t\t24, 219, 26, 58, 0, 0, 64, 221, 0, 0, 184, 16, 0, 0, 131,\n\t\t44, 248, 32, 37, 108, 110, 232, 236, 0, 0, 64, 254, 23, 253,\n\t\t223, 129, 252, 253, 5, 128, 152, 219, 120, 154, 1, 0, 144,\n\t\t144, 0, 32, 177, 69, 0, 176, 183, 164, 42, 143, 152, 177,\n\t\t133, 169, 161, 9, 0, 72, 118, 11, 0, 0, 176, 1, 0, 0, 118,\n\t\t84, 29, 237, 98, 11, 11, 83, 67, 0, 144, 28, 42, 0, 0, 32,\n\t\t4, 0, 0, 164, 160, 34, 96, 87, 22, 182, 46, 30, 0, 32, 57,\n\t\t86, 0, 0, 164, 3, 0, 128, 175, 225, 132, 0, 158, 178, 177,\n\t\t55, 54, 4, 0, 41, 222, 1, 0, 80, 129, 0, 0, 124, 3, 40, 19,\n\t\t211, 146, 173, 161, 135, 3, 0, 72, 219, 5, 0, 0, 16, 252,\n\t\t199, 131, 194, 1, 174, 236, 12, 109, 77, 1, 64, 218, 41, 0,\n\t\t0, 48, 2, 0, 0, 70, 38, 210, 194, 190, 228, 96, 239, 236,\n\t\t2, 0, 210, 45, 1, 0, 176, 53, 1, 0, 58, 91, 60, 184, 132,\n\t\t51, 143, 28, 99, 3, 3, 3, 19, 64, 16, 14, 84, 22, 151, 129,\n\t\t215, 41, 56, 4, 229, 53, 52, 64, 180, 12, 124, 229, 63, 135,\n\t\t0, 0, 0, 22, 0, 0, 160, 255, 231, 17, 0, 4, 0, 1, 169, 2,\n\t\t0, 3, 64, 255, 247, 1, 0, 128, 255, 88, 195, 175, 129, 173,\n\t\t127, 253, 19, 253, 253, 103, 131, 25, 35, 253, 253, 123, 240,\n\t\t165, 125, 204, 146, 204, 205, 140, 140, 140, 76, 13, 204,\n\t\t44, 253, 128, 98, 0, 8, 48, 104, 73, 71, 25, 35, 171, 143,\n\t\t193, 155, 225, 168, 199, 222, 47, 16, 56, 223, 8, 11, 44,\n\t\t17, 156, 32, 155, 65, 168, 90, 140, 116, 96, 10, 48, 8, 9,\n\t\t192, 131, 3, 158, 15, 224, 145, 115, 189, 98, 237, 144, 54,\n\t\t140, 6, 113, 71, 17, 136, 57, 158, 215, 116, 170, 58, 20,\n\t\t176, 128, 218, 224, 186, 164, 214, 111, 4, 214, 237, 128,\n\t\t165, 128, 72, 26, 90, 198, 61, 144, 1, 25, 81, 233, 97, 73,\n\t\t181, 224, 4, 147, 42, 136, 72, 25, 100, 0, 26, 2, 46, 249,\n\t\t143, 46, 64, 180, 14, 9, 217, 153, 136, 220, 132, 146, 28,\n\t\t152, 58, 29, 17, 249, 134, 48, 189, 177, 107, 150, 191, 139,\n\t\t1, 73, 50, 191, 183, 123, 80, 210, 124, 35, 254, 37, 250,\n\t\t55, 115, 59, 147, 165, 137, 96, 38, 243, 125, 58, 199, 21,\n\t\t183, 60, 211, 249, 176, 217, 149, 248, 107, 51, 18, 168, 47,\n\t\t10, 114, 121, 90, 27, 114, 52, 18, 151, 224, 156, 179, 141,\n\t\t231, 80, 172, 36, 2, 89, 167, 25, 181, 86, 20, 103, 94, 109,\n\t\t40, 18, 191, 168, 62, 2, 67, 138, 88, 236, 75, 168, 36, 146,\n\t\t234, 64, 151, 73, 122, 10, 233, 113, 24, 248, 62, 81, 131,\n\t\t220, 73, 180, 119, 141, 214, 106, 136, 95, 145, 33, 46, 50,\n\t\t249, 32, 104, 238, 160, 211, 36, 105, 146, 199, 68, 27, 139,\n\t\t130, 103, 44, 238, 1, 233, 221, 250, 189, 253, 138, 232, 115,\n\t\t194, 252, 72, 16, 139, 33, 124, 2, 245, 189, 42, 135, 220,\n\t\t124, 66, 166, 67, 144, 62, 41, 250, 88, 41, 147, 129, 99,\n\t\t130, 174, 81, 242, 38, 141, 237, 33, 161, 38, 245, 249, 33,\n\t\t166, 155, 50, 182, 187, 142, 88, 165, 217, 168, 170, 37, 74,\n\t\t25, 161, 122, 84, 197, 253, 185, 38, 74, 125, 252, 66, 150,\n\t\t77, 78, 86, 165, 105, 25, 247, 57, 80, 171, 32, 173, 194,\n\t\t212, 170, 116, 66, 25, 204, 42, 156, 90, 105, 184, 74, 103,\n\t\t185, 226, 187, 74, 46, 87, 205, 124, 217, 211, 85, 138, 202,\n\t\t116, 9, 205, 117, 59, 214, 105, 32, 214, 153, 192, 161, 171,\n\t\t67, 202, 174, 145, 103, 10, 111, 95, 206, 85, 189, 163, 244,\n\t\t70, 174, 109, 97, 251, 90, 173, 235, 115, 171, 248, 134, 233,\n\t\t181, 217, 123, 220, 214, 165, 190, 67, 246, 131, 29, 111,\n\t\t46, 254, 98, 244, 233, 240, 67, 106, 91, 249, 117, 197, 247,\n\t\t105, 177, 51, 31, 191, 226, 240, 217, 32, 183, 0, 197, 181,\n\t\t209, 79, 51, 126, 174, 242, 131, 142, 79, 60, 126, 25, 229,\n\t\t137, 199, 171, 42, 175, 208, 252, 178, 227, 67, 164, 71, 146,\n\t\t97, 17, 231, 9, 93, 183, 66, 218, 37, 147, 126, 21, 173, 83,\n\t\t220, 191, 52, 254, 12, 220, 119, 193, 122, 127, 250, 53, 205,\n\t\t171, 99, 7, 219, 62, 185, 109, 121, 243, 6, 205, 59, 117,\n\t\t7, 191, 126, 100, 243, 22, 239, 201, 170, 135, 187, 126, 128,\n\t\t231, 38, 247, 97, 198, 11, 163, 219, 223, 107, 85, 166, 191,\n\t\t153, 213, 118, 74, 94, 214, 123, 113, 221, 133, 77, 62, 107,\n\t\t167, 172, 254, 220, 28, 60, 99, 55, 131, 232, 196, 51, 217,\n\t\t66, 105, 10, 50, 217, 106, 135, 209, 62, 83, 32, 235, 239,\n\t\t9, 131, 89, 144, 20, 203, 109, 6, 44, 203, 36, 45, 171, 63,\n\t\t7, 151, 89, 172, 166, 53, 123, 134, 188, 108, 34, 21, 147,\n\t\t105, 217, 63, 31, 203, 151, 204, 250, 41, 142, 147, 2, 46,\n\t\t155, 139, 105, 41, 231, 145, 28, 150, 244, 24, 230, 216, 147,\n\t\t42, 87, 90, 13, 59, 237, 117, 13, 28, 115, 158, 53, 8, 91,\n\t\t138, 207, 148, 107, 211, 207, 53, 63, 183, 4, 217, 6, 134,\n\t\t53, 210, 207, 70, 60, 211, 221, 6, 251, 205, 113, 246, 109,\n\t\t179, 181, 204, 23, 190, 207, 66, 93, 139, 38, 155, 214, 233,\n\t\t150, 234, 107, 175, 108, 123, 24, 155, 66, 186, 86, 211, 214,\n\t\t45, 181, 13, 255, 53, 236, 174, 213, 155, 182, 150, 151, 152,\n\t\t30, 11, 6, 109, 83, 62, 235, 107, 247, 129, 51, 3, 66, 15,\n\t\t243, 187, 27, 131, 203, 61, 145, 1, 185, 1, 124, 89, 217,\n\t\t56, 18, 220, 121, 29, 209, 232, 0, 6, 6, 118, 210, 250, 158,\n\t\t51, 186, 143, 232, 129, 222, 110, 67, 163, 102, 6, 123, 45,\n\t\t13, 189, 50, 6, 6, 105, 147, 104, 52, 163, 98, 74, 20, 239,\n\t\t97, 32, 253, 29, 40, 71, 53, 72, 164, 148, 56, 81, 172, 132,\n\t\t90, 95, 207, 235, 163, 89, 19, 243, 117, 49, 183, 84, 249,\n\t\t113, 189, 222, 110, 32, 167, 4, 92, 218, 228, 35, 70, 46,\n\t\t85, 185, 244, 199, 193, 135, 198, 35, 47, 253, 29, 179, 14,\n\t\t221, 180, 241, 139, 132, 110, 110, 79, 153, 188, 215, 99,\n\t\t176, 212, 226, 172, 106, 76, 180, 234, 27, 197, 107, 85, 140,\n\t\t101, 217, 103, 165, 224, 37, 68, 253, 157, 252, 165, 144,\n\t\t132, 110, 79, 34, 79, 105, 213, 86, 173, 226, 214, 208, 227,\n\t\t107, 21, 85, 171, 122, 110, 39, 229, 60, 21, 61, 73, 189,\n\t\t146, 77, 98, 210, 250, 234, 108, 204, 180, 244, 155, 73, 154,\n\t\t247, 252, 135, 206, 183, 135, 206, 95, 12, 79, 134, 247, 135,\n\t\t176, 207, 7, 189, 197, 98, 95, 207, 195, 39, 147, 220, 58,\n\t\t22, 31, 79, 231, 39, 222, 30, 70, 90, 251, 46, 122, 248, 201,\n\t\t234, 151, 99, 188, 185, 231, 143, 16, 187, 39, 163, 30, 25,\n\t\t251, 142, 182, 5, 237, 83, 219, 123, 232, 110, 225, 250, 165,\n\t\t234, 135, 170, 158, 30, 67, 207, 231, 221, 100, 247, 103,\n\t\t239, 7, 238, 143, 135, 188, 118, 49, 189, 32, 6, 134, 245,\n\t\t116, 142, 133, 152, 78, 42, 251, 238, 204, 163, 73, 105, 14,\n\t\t22, 31, 79, 130, 204, 171, 134, 238, 160, 134, 238, 89, 251,\n\t\t68, 247, 165, 28, 200, 241, 46, 139, 161, 190, 227, 76, 242,\n\t\t73, 31, 79, 247, 208, 99, 62, 3, 158, 13, 10, 187, 196, 215,\n\t\t34, 89, 168, 113, 28, 227, 197, 43, 84, 158, 233, 222, 203,\n\t\t201, 73, 216, 113, 237, 155, 73, 109, 203, 213, 13, 56, 183,\n\t\t236, 237, 253, 73, 154, 231, 99, 213, 181, 237, 151, 232,\n\t\t132, 238, 224, 151, 37, 186, 135, 162, 160, 163, 73, 235,\n\t\t227, 73, 239, 187, 176, 110, 193, 38, 65, 19, 66, 226, 61,\n\t\t5, 20, 221, 242, 234, 39, 60, 93, 34, 233, 44, 157, 36, 210,\n\t\t51, 102, 221, 146, 71, 151, 56, 185, 69, 40, 110, 57, 56,\n\t\t21, 9, 137, 138, 52, 248, 69, 140, 230, 240, 42, 11, 12, 85,\n\t\t37, 174, 84, 5, 36, 180, 5, 248, 13, 185, 108, 75, 20, 219,\n\t\t18, 121, 202, 124, 246, 185, 209, 230, 184, 21, 37, 252, 218,\n\t\t162, 212, 230, 32, 39, 170, 240, 50, 101, 240, 210, 121, 210,\n\t\t44, 73, 20, 11, 220, 30, 185, 226, 51, 54, 108, 169, 65, 202,\n\t\t76, 63, 9, 168, 39, 109, 108, 225, 251, 39, 214, 231, 82,\n\t\t254, 165, 108, 175, 133, 226, 165, 80, 252, 66, 253, 5, 134,\n\t\t179, 211, 165, 192, 141, 249, 220, 33, 168, 119, 54, 191,\n\t\t84, 142, 7, 194, 85, 29, 199, 113, 134, 199, 228, 47, 78,\n\t\t129, 17, 28, 15, 60, 129, 33, 132, 7, 6, 79, 180, 221, 97,\n\t\t26, 15, 46, 134, 227, 225, 238, 8, 255, 137, 182, 7, 89, 222,\n\t\t108, 134, 131, 166, 183, 75, 31, 212, 95, 62, 249, 227, 239,\n\t\t247, 239, 28, 231, 35, 38, 222, 44, 142, 83, 36, 11, 133,\n\t\t226, 126, 251, 123, 74, 252, 1, 173, 47, 236, 215, 61, 173,\n\t\t169, 193, 229, 118, 104, 117, 3, 250, 19, 3, 118, 250, 81,\n\t\t90, 157, 160, 104, 71, 36, 179, 3, 94, 31, 130, 211, 3, 155,\n\t\t47, 156, 153, 33, 44, 78, 188, 114, 35, 110, 185, 129, 241,\n\t\t140, 176, 100, 7, 226, 184, 97, 21, 220, 184, 241, 140, 16,\n\t\t134, 3, 5, 153, 161, 129, 55, 92, 248, 254, 159, 55, 88, 183,\n\t\t145, 207, 6, 144, 214, 81, 55, 204, 112, 129, 129, 86, 15,\n\t\t134, 157, 96, 219, 6, 182, 17, 35, 233, 110, 16, 144, 179,\n\t\t248, 176, 0, 38, 204, 88, 69, 196, 16, 22, 7, 104, 236, 2,\n\t\t116, 120, 17, 54, 21, 33, 176, 20, 33, 40, 31, 240, 80, 5,\n\t\t192, 166, 1, 141, 77, 152, 143, 6, 194, 37, 33, 194, 74, 191,\n\t\t213, 88, 40, 238, 88, 216, 113, 3, 106, 163, 1, 212, 84, 40,\n\t\t23, 35, 12, 179, 1, 182, 76, 224, 253, 157, 185, 7, 206, 72,\n\t\t191, 133, 100, 168, 186, 33, 105, 55, 48, 137, 1, 103, 137,\n\t\t32, 50, 108, 168, 168, 7, 62, 242, 30, 23, 38, 228, 172, 176,\n\t\t252, 25, 208, 118, 33, 206, 23, 52, 247, 128, 136, 131, 192,\n\t\t22, 140, 45, 33, 250, 13, 112, 16, 102, 59, 94, 81, 1, 150,\n\t\t181, 137, 122, 198, 36, 125, 131, 253, 58, 151, 91, 90, 174,\n\t\t209, 243, 21, 37, 207, 16, 124, 131, 253, 218, 170, 141, 192,\n\t\t230, 232, 75, 195, 118, 77, 212, 181, 81, 106, 77, 208, 181,\n\t\t137, 105, 77, 74, 106, 131, 112, 107, 164, 239, 212, 202,\n\t\t95, 222, 214, 172, 90, 163, 14, 27, 166, 207, 128, 105, 243,\n\t\t219, 166, 142, 171, 122, 27, 98, 239, 199, 17, 244, 31, 38,\n\t\t129, 147, 112, 249, 33, 219, 25, 89, 63, 164, 159, 182, 217,\n\t\t200, 175, 89, 8, 1, 7, 145, 223, 240, 47, 24, 237, 80, 139,\n\t\t145, 255, 95, 235, 64, 191, 191, 0, 96, 143, 156, 154, 30,\n\t\t168, 0, 92, 9, 79, 202, 173, 101, 245, 103, 54, 62, 190, 69,\n\t\t190, 69, 231, 235, 43, 92, 158, 209, 157, 38, 30, 30, 150,\n\t\t106, 107, 54, 45, 93, 154, 241, 81, 104, 82, 109, 112, 9,\n\t\t189, 205, 70, 50, 155, 225, 49, 136, 53, 76, 99, 181, 189,\n\t\t0, 78, 224, 70, 217, 24, 168, 85, 100, 72, 76, 63, 145, 39,\n\t\t200, 112, 34, 196, 149, 184, 71, 7, 96, 78, 242, 253, 63,\n\t\t132, 162, 71, 199, 14, 15, 73, 24, 223, 8, 122, 70, 144, 248,\n\t\t61, 245, 85, 157, 167, 27, 169, 54, 2, 196, 215, 42, 234,\n\t\t170, 234, 171, 186, 250, 190, 187, 234, 187, 175, 104, 225,\n\t\t51, 191, 7, 95, 212, 12, 197, 170, 51, 199, 156, 33, 36, 203,\n\t\t231, 22, 67, 88, 98, 29, 27, 50, 190, 40, 85, 169, 81, 207,\n\t\t86, 110, 220, 81, 63, 223, 222, 77, 68, 234, 92, 229, 237,\n\t\t133, 235, 183, 154, 68, 24, 190, 195, 112, 133, 109, 62, 246,\n\t\t203, 112, 84, 127, 198, 116, 191, 243, 216, 152, 255, 13,\n\t\t8, 12, 57, 38, 96, 132, 231, 29, 41, 33, 66, 114, 57, 213,\n\t\t113, 42, 215, 203, 117, 177, 81, 45, 188, 132, 155, 97, 135,\n\t\t122, 165, 156, 154, 97, 152, 155, 79, 14, 204, 121, 238, 162,\n\t\t136, 201, 210, 4, 170, 105, 209, 140, 11, 23, 234, 33, 246,\n\t\t53, 223, 230, 103, 66, 140, 211, 243, 211, 174, 227, 34, 120,\n\t\t250, 195, 61, 232, 29, 31, 232, 164, 29, 66, 43, 82, 68, 28,\n\t\t109, 145, 82, 219, 9, 57, 229, 29, 201, 94, 196, 22, 6, 28,\n\t\t184, 248, 150, 101, 36, 227, 61, 57, 199, 40, 175, 13, 72,\n\t\t220, 93, 253, 67, 115, 223, 253, 62, 219, 54, 78, 11, 243,\n\t\t119, 92, 236, 245, 229, 184, 78, 38, 228, 14, 221, 143, 53,\n\t\t139, 29, 136, 238, 170, 215, 200, 24, 246, 32, 240, 4, 91,\n\t\t230, 255, 253, 122, 111, 234, 14, 224, 31, 9, 37, 74, 16,\n\t\t215, 163, 122, 22, 231, 227, 142, 192, 118, 134, 228, 227,\n\t\t163, 138, 231, 175, 35, 107, 30, 149, 56, 30, 223, 207, 142,\n\t\t142, 83, 238, 198, 202, 165, 221, 101, 249, 72, 41, 227, 99,\n\t\t243, 146, 231, 170, 79, 195, 45, 47, 17, 214, 7, 157, 245,\n\t\t207, 204, 23, 142, 119, 102, 26, 43, 231, 231, 27, 75, 238,\n\t\t222, 170, 224, 141, 108, 208, 217, 138, 42, 48, 111, 35, 38,\n\t\t173, 48, 117, 221, 4, 137, 51, 220, 65, 197, 96, 46, 228,\n\t\t232, 227, 74, 65, 58, 224, 200, 12, 123, 4, 124, 200, 112,\n\t\t250, 232, 167, 48, 100, 73, 16, 52, 232, 186, 142, 194, 211,\n\t\t153, 9, 56, 44, 209, 62, 40, 46, 204, 150, 48, 168, 33, 125,\n\t\t157, 50, 166, 31, 181, 19, 173, 248, 64, 200, 75, 64, 36,\n\t\t144, 156, 54, 113, 157, 161, 50, 251, 204, 159, 131, 71, 205,\n\t\t161, 99, 224, 164, 151, 231, 172, 68, 37, 119, 118, 35, 77,\n\t\t232, 39, 233, 151, 198, 246, 188, 63, 140, 68, 36, 255, 225,\n\t\t34, 137, 157, 164, 139, 62, 170, 110, 156, 154, 103, 230,\n\t\t24, 183, 61, 112, 115, 102, 56, 173, 219, 183, 59, 185, 57,\n\t\t218, 153, 234, 193, 217, 0, 224, 193, 138, 112, 71, 89, 177,\n\t\t48, 242, 129, 43, 172, 120, 11, 159, 174, 10, 151, 52, 71,\n\t\t52, 65, 201, 218, 11, 105, 222, 158, 151, 27, 23, 62, 127,\n\t\t47, 128, 45, 180, 51, 28, 104, 63, 213, 152, 101, 101, 25,\n\t\t165, 196, 174, 80, 115, 70, 17, 8, 203, 34, 183, 192, 202,\n\t\t237, 18, 52, 198, 148, 199, 188, 236, 70, 186, 34, 211, 102,\n\t\t107, 93, 198, 152, 113, 135, 237, 39, 228, 87, 22, 14, 203,\n\t\t85, 60, 203, 102, 157, 121, 164, 127, 30, 37, 25, 210, 98,\n\t\t229, 23, 223, 240, 172, 118, 31, 115, 34, 141, 156, 211, 62,\n\t\t157, 66, 99, 28, 129, 23, 202, 183, 9, 51, 168, 173, 19, 10,\n\t\t177, 156, 17, 30, 123, 7, 171, 6, 62, 153, 80, 212, 145, 191,\n\t\t27, 159, 199, 210, 81, 215, 39, 133, 33, 155, 167, 223, 206,\n\t\t27, 237, 160, 224, 170, 216, 141, 22, 161, 41, 107, 19, 229,\n\t\t225, 151, 63, 235, 240, 160, 94, 14, 45, 252, 181, 95, 101,\n\t\t27, 84, 109, 247, 188, 49, 221, 114, 221, 178, 221, 202, 110,\n\t\t135, 224, 156, 137, 115, 169, 146, 172, 58, 224, 38, 191,\n\t\t128, 151, 192, 246, 93, 158, 225, 33, 223, 77, 6, 188, 182,\n\t\t160, 188, 250, 42, 156, 89, 83, 220, 192, 96, 124, 44, 252,\n\t\t166, 85, 110, 11, 94, 192, 207, 96, 52, 208, 239, 74, 126,\n\t\t237, 153, 112, 207, 99, 33, 209, 36, 17, 252, 54, 99, 72,\n\t\t225, 92, 151, 11, 218, 219, 141, 186, 229, 172, 180, 157,\n\t\t65, 44, 9, 149, 163, 71, 198, 115, 246, 5, 8, 103, 196, 63,\n\t\t99, 61, 75, 85, 209, 122, 237, 40, 239, 160, 228, 140, 110,\n\t\t220, 118, 17, 171, 115, 239, 24, 95, 191, 154, 116, 140, 91,\n\t\t159, 140, 29, 55, 92, 180, 139, 235, 199, 191, 190, 166, 111,\n\t\t175, 230, 183, 190, 78, 125, 60, 150, 76, 34, 220, 21, 156,\n\t\t188, 244, 220, 94, 244, 209, 223, 226, 108, 108, 223, 121,\n\t\t114, 7, 39, 249, 197, 123, 244, 246, 173, 78, 105, 156, 14,\n\t\t55, 93, 239, 188, 171, 116, 73, 157, 37, 202, 137, 104, 79,\n\t\t199, 17, 240, 45, 200, 61, 104, 80, 164, 93, 99, 225, 6, 189,\n\t\t244, 37, 58, 23, 44, 151, 30, 76, 169, 1, 211, 42, 6, 115,\n\t\t2, 22, 0, 31, 126, 39, 40, 152, 24, 14, 162, 92, 142, 114,\n\t\t145, 1, 16, 109, 63, 200, 18, 203, 241, 135, 148, 248, 74,\n\t\t146, 57, 204, 160, 59, 43, 250, 84, 164, 249, 143, 167, 29,\n\t\t132, 157, 232, 219, 19, 199, 68, 12, 171, 187, 196, 140, 161,\n\t\t123, 44, 160, 39, 47, 199, 63, 139, 36, 85, 216, 203, 200,\n\t\t23, 137, 36, 86, 194, 209, 85, 71, 235, 40, 122, 61, 130,\n\t\t221, 4, 97, 204, 161, 47, 189, 41, 71, 86, 91, 232, 21, 160,\n\t\t235, 252, 231, 232, 157, 96, 6, 36, 46, 220, 54, 197, 119,\n\t\t217, 248, 1, 165, 246, 135, 207, 173, 180, 74, 169, 196, 219,\n\t\t77, 69, 139, 21, 70, 83, 216, 88, 111, 158, 241, 2, 154, 77,\n\t\t161, 120, 3, 241, 180, 121, 26, 58, 188, 129, 237, 117, 38,\n\t\t35, 54, 151, 159, 223, 60, 27, 72, 87, 188, 178, 200, 244,\n\t\t110, 203, 138, 167, 208, 91, 237, 234, 18, 106, 109, 24, 234,\n\t\t229, 18, 176, 111, 93, 30, 186, 5, 248, 24, 213, 32, 179,\n\t\t251, 143, 250, 18, 179, 66, 120, 97, 29, 112, 46, 230, 161,\n\t\t88, 121, 179, 178, 130, 167, 83, 68, 157, 29, 226, 166, 54,\n\t\t208, 72, 20, 90, 185, 117, 171, 102, 81, 165, 80, 205, 104,\n\t\t211, 68, 91, 93, 176, 196, 103, 46, 166, 47, 63, 197, 155,\n\t\t246, 155, 121, 25, 99, 21, 72, 227, 200, 98, 54, 195, 34,\n\t\t27, 174, 93, 110, 122, 2, 41, 3, 69, 22, 82, 137, 214, 50,\n\t\t116, 34, 39, 24, 156, 103, 215, 29, 217, 109, 184, 61, 254,\n\t\t63, 173, 120, 131, 233, 83, 29, 141, 37, 101, 41, 13, 38,\n\t\t176, 71, 127, 18, 115, 87, 245, 219, 186, 154, 121, 200, 67,\n\t\t83, 83, 168, 191, 3, 72, 5, 70, 213, 74, 134, 134, 1, 225,\n\t\t92, 224, 207, 87, 53, 18, 117, 243, 8, 61, 31, 255, 192, 252,\n\t\t237, 77, 188, 13, 91, 238, 129, 247, 9, 12, 84, 135, 209,\n\t\t14, 104, 91, 125, 43, 22, 94, 242, 52, 71, 219, 138, 14, 84,\n\t\t31, 64, 205, 165, 134, 165, 135, 96, 102, 170, 162, 180, 205,\n\t\t207, 87, 177, 176, 119, 181, 202, 2, 77, 209, 199, 230, 0,\n\t\t221, 229, 155, 157, 174, 63, 142, 46, 240, 190, 177, 155,\n\t\t83, 215, 132, 111, 40, 105, 76, 123, 196, 204, 97, 251, 105,\n\t\t210, 115, 49, 70, 145, 188, 210, 1, 89, 168, 230, 6, 120,\n\t\t236, 128, 67, 44, 209, 103, 113, 219, 50, 69, 247, 194, 22,\n\t\t197, 116, 222, 109, 11, 196, 129, 116, 254, 168, 231, 248,\n\t\t42, 68, 234, 137, 9, 11, 230, 114, 246, 11, 45, 122, 174,\n\t\t162, 137, 225, 132, 130, 56, 200, 127, 144, 190, 197, 113,\n\t\t9, 28, 112, 45, 143, 226, 105, 254, 188, 2, 92, 92, 2, 158,\n\t\t249, 21, 203, 97, 127, 49, 221, 99, 169, 98, 57, 96, 245,\n\t\t178, 153, 183, 218, 35, 194, 173, 171, 80, 17, 224, 66, 15,\n\t\t158, 90, 80, 181, 31, 181, 80, 14, 223, 191, 222, 72, 199,\n\t\t65, 54, 92, 126, 120, 251, 103, 108, 1, 60, 139, 37, 178,\n\t\t46, 150, 238, 123, 39, 160, 235, 69, 71, 51, 156, 104, 6,\n\t\t102, 16, 227, 180, 225, 235, 121, 143, 124, 108, 8, 196, 75,\n\t\t62, 111, 81, 70, 69, 196, 252, 101, 7, 40, 26, 96, 242, 201,\n\t\t79, 132, 30, 243, 241, 162, 68, 244, 127, 146, 238, 4, 136,\n\t\t30, 252, 161, 139, 104, 71, 192, 238, 61, 89, 48, 60, 192,\n\t\t210, 204, 200, 98, 70, 60, 126, 246, 227, 13, 85, 147, 211,\n\t\t247, 248, 98, 98, 106, 42, 223, 140, 149, 19, 100, 48, 83,\n\t\t66, 40, 60, 126, 160, 132, 176, 73, 245, 249, 138, 47, 189,\n\t\t95, 37, 49, 165, 111, 13, 42, 210, 156, 126, 168, 52, 80,\n\t\t226, 129, 240, 33, 214, 220, 49, 29, 56, 131, 200, 165, 21,\n\t\t43, 22, 77, 112, 252, 157, 118, 95, 159, 190, 95, 5, 124,\n\t\t5, 178, 22, 0, 150, 170, 217, 226, 195, 9, 115, 198, 175,\n\t\t201, 237, 246, 134, 45, 37, 251, 145, 109, 131, 7, 41, 98,\n\t\t192, 209, 51, 191, 20, 38, 157, 40, 119, 109, 184, 219, 3,\n\t\t134, 41, 133, 215, 165, 153, 196, 38, 38, 69, 144, 97, 96,\n\t\t59, 13, 133, 185, 107, 145, 194, 198, 151, 45, 200, 5, 147,\n\t\t115, 72, 172, 0, 95, 160, 202, 173, 115, 46, 193, 143, 115,\n\t\t8, 39, 80, 30, 75, 149, 227, 182, 61, 135, 51, 41, 221, 97,\n\t\t30, 81, 218, 115, 249, 176, 127, 111, 185, 81, 190, 185, 132,\n\t\t80, 150, 111, 186, 230, 52, 249, 232, 64, 189, 105, 166, 49,\n\t\t123, 154, 35, 112, 22, 189, 53, 19, 40, 119, 32, 187, 237,\n\t\t108, 14, 185, 176, 72, 7, 174, 32, 232, 86, 27, 244, 46, 5,\n\t\t103, 27, 44, 198, 73, 69, 146, 198, 111, 49, 37, 146, 104,\n\t\t154, 138, 71, 208, 30, 148, 117, 205, 127, 12, 85, 66, 112,\n\t\t142, 171, 2, 252, 157, 216, 135, 83, 251, 239, 29, 29, 128,\n\t\t165, 46, 81, 237, 154, 21, 117, 56, 184, 123, 82, 73, 19,\n\t\t249, 52, 84, 95, 243, 4, 2, 182, 143, 21, 4, 149, 9, 210,\n\t\t232, 222, 13, 85, 97, 112, 153, 231, 89, 109, 12, 208, 26,\n\t\t199, 8, 114, 160, 227, 64, 203, 241, 151, 166, 188, 97, 39,\n\t\t25, 107, 164, 43, 162, 213, 100, 175, 19, 57, 75, 194, 143,\n\t\t28, 215, 106, 180, 202, 229, 18, 154, 247, 100, 192, 130,\n\t\t149, 79, 100, 73, 99, 95, 37, 238, 236, 207, 78, 201, 159,\n\t\t156, 81, 205, 240, 159, 156, 48, 54, 224, 4, 163, 41, 186,\n\t\t106, 104, 246, 171, 180, 109, 85, 164, 191, 106, 128, 43,\n\t\t220, 71, 164, 168, 56, 34, 129, 96, 72, 68, 220, 143, 87,\n\t\t220, 225, 123, 249, 157, 137, 31, 63, 130, 119, 89, 131, 40,\n\t\t160, 160, 253, 152, 45, 124, 52, 22, 142, 2, 152, 59, 183,\n\t\t108, 232, 89, 180, 160, 243, 253, 163, 36, 230, 8, 178, 169,\n\t\t110, 182, 65, 236, 169, 85, 221, 129, 217, 49, 50, 129, 39,\n\t\t197, 115, 131, 172, 53, 70, 203, 250, 1, 212, 162, 37, 137,\n\t\t218, 89, 153, 192, 4, 31, 88, 153, 118, 242, 72, 16, 219,\n\t\t136, 124, 26, 27, 206, 79, 103, 121, 75, 240, 18, 168, 100,\n\t\t76, 20, 17, 39, 119, 111, 33, 77, 223, 47, 239, 16, 118, 184,\n\t\t91, 77, 211, 129, 72, 226, 213, 122, 7, 82, 80, 210, 153,\n\t\t145, 197, 8, 184, 178, 33, 96, 146, 84, 227, 194, 132, 232,\n\t\t11, 128, 164, 157, 183, 0, 158, 171, 94, 88, 169, 181, 98,\n\t\t145, 179, 140, 88, 7, 136, 130, 180, 18, 193, 206, 69, 87,\n\t\t213, 84, 85, 84, 150, 53, 14, 229, 108, 145, 102, 59, 224,\n\t\t74, 118, 176, 51, 5, 107, 97, 225, 20, 29, 243, 40, 191, 229,\n\t\t224, 231, 212, 5, 72, 95, 168, 11, 35, 143, 212, 78, 36, 236,\n\t\t134, 123, 73, 64, 127, 96, 136, 136, 189, 55, 88, 229, 163,\n\t\t58, 7, 46, 147, 37, 166, 166, 189, 183, 216, 113, 154, 208,\n\t\t95, 30, 207, 35, 232, 167, 79, 5, 229, 226, 106, 177, 244,\n\t\t217, 170, 185, 63, 46, 199, 215, 115, 81, 43, 183, 45, 34,\n\t\t203, 133, 233, 207, 100, 33, 76, 253, 186, 237, 153, 48, 93,\n\t\t66, 80, 39, 199, 106, 118, 4, 54, 200, 154, 8, 9, 230, 88,\n\t\t6, 167, 221, 29, 20, 175, 124, 56, 186, 46, 50, 71, 192, 126,\n\t\t79, 50, 214, 145, 50, 64, 160, 75, 154, 85, 207, 231, 57,\n\t\t151, 47, 63, 124, 171, 178, 45, 13, 125, 176, 37, 101, 187,\n\t\t136, 81, 240, 120, 197, 231, 47, 46, 29, 4, 101, 93, 247,\n\t\t129, 244, 109, 217, 102, 164, 116, 251, 208, 223, 205, 70,\n\t\t177, 54, 223, 130, 211, 203, 99, 192, 192, 140, 30, 27, 179,\n\t\t2, 199, 67, 117, 157, 175, 85, 195, 137, 211, 36, 230, 202,\n\t\t51, 212, 80, 193, 77, 13, 207, 85, 213, 173, 244, 180, 37,\n\t\t18, 226, 11, 48, 38, 117, 212, 46, 248, 188, 240, 124, 160,\n\t\t206, 104, 110, 206, 99, 56, 40, 62, 196, 249, 131, 72, 254,\n\t\t187, 193, 251, 245, 93, 140, 47, 240, 49, 92, 41, 161, 240,\n\t\t234, 110, 224, 139, 39, 101, 181, 34, 163, 200, 206, 44, 101,\n\t\t102, 64, 118, 153, 209, 64, 248, 132, 102, 238, 4, 34, 125,\n\t\t105, 3, 251, 119, 242, 34, 23, 14, 59, 124, 50, 247, 19, 28,\n\t\t161, 224, 70, 154, 33, 11, 72, 121, 171, 172, 36, 242, 158,\n\t\t112, 54, 54, 101, 148, 71, 164, 181, 80, 69, 248, 141, 67,\n\t\t207, 27, 11, 193, 92, 242, 69, 80, 160, 183, 4, 31, 51, 34,\n\t\t89, 70, 15, 155, 35, 84, 252, 56, 217, 83, 59, 31, 133, 218,\n\t\t77, 201, 180, 140, 189, 177, 28, 104, 132, 249, 248, 157,\n\t\t149, 69, 33, 162, 188, 189, 203, 75, 1, 212, 83, 247, 233,\n\t\t187, 94, 151, 199, 62, 113, 224, 173, 113, 198, 76, 37, 42,\n\t\t118, 70, 188, 241, 250, 196, 240, 219, 163, 161, 0, 163, 229,\n\t\t115, 151, 12, 82, 150, 44, 213, 131, 79, 47, 238, 90, 253,\n\t\t97, 72, 232, 39, 238, 237, 6, 45, 115, 90, 145, 190, 137,\n\t\t37, 57, 144, 23, 233, 145, 35, 140, 51, 210, 111, 246, 190,\n\t\t157, 213, 57, 93, 248, 154, 92, 168, 181, 240, 75, 150, 0,\n\t\t164, 233, 231, 163, 215, 92, 73, 94, 124, 69, 92, 85, 37,\n\t\t18, 36, 7, 92, 23, 117, 251, 159, 86, 38, 29, 44, 118, 82,\n\t\t46, 19, 233, 145, 16, 162, 117, 162, 2, 54, 202, 28, 95, 108,\n\t\t131, 85, 243, 194, 41, 100, 142, 81, 186, 58, 117, 187, 66,\n\t\t229, 27, 220, 217, 132, 191, 92, 130, 144, 68, 208, 136, 160,\n\t\t200, 16, 217, 52, 177, 206, 197, 111, 69, 170, 162, 143, 217,\n\t\t238, 87, 107, 53, 156, 157, 21, 102, 20, 40, 56, 101, 42,\n\t\t138, 238, 19, 135, 131, 85, 112, 60, 129, 86, 8, 160, 193,\n\t\t32, 173, 212, 86, 113, 204, 62, 182, 254, 218, 31, 31, 23,\n\t\t185, 165, 222, 187, 174, 246, 82, 105, 180, 18, 81, 118, 235,\n\t\t218, 27, 46, 180, 52, 92, 105, 79, 67, 11, 147, 135, 141,\n\t\t37, 21, 173, 54, 176, 177, 178, 49, 112, 88, 141, 120, 73,\n\t\t71, 30, 190, 185, 97, 202, 31, 232, 39, 191, 208, 6, 131,\n\t\t152, 119, 123, 132, 230, 131, 127, 198, 68, 8, 98, 156, 182,\n\t\t208, 85, 98, 83, 136, 151, 181, 138, 177, 199, 57, 172, 222,\n\t\t33, 171, 254, 58, 0, 253, 67, 156, 18, 73, 248, 154, 77, 223,\n\t\t107, 235, 220, 210, 209, 3, 43, 23, 195, 77, 25, 167, 53,\n\t\t205, 146, 158, 150, 1, 255, 153, 73, 202, 48, 115, 70, 243,\n\t\t187, 75, 250, 72, 103, 145, 174, 206, 60, 150, 33, 31, 212,\n\t\t180, 221, 249, 227, 254, 46, 165, 17, 93, 3, 159, 12, 208,\n\t\t198, 110, 184, 180, 61, 110, 175, 84, 120, 86, 255, 32, 80,\n\t\t91, 110, 224, 46, 33, 31, 148, 74, 253, 146, 14, 73, 54, 124,\n\t\t144, 135, 163, 144, 18, 197, 164, 107, 75, 243, 79, 213, 231,\n\t\t216, 66, 112, 116, 92, 240, 118, 233, 64, 74, 26, 216, 173,\n\t\t228, 123, 75, 119, 234, 61, 207, 216, 101, 154, 182, 207,\n\t\t50, 245, 216, 82, 151, 43, 157, 168, 164, 232, 59, 47, 33,\n\t\t84, 8, 147, 244, 224, 77, 38, 78, 180, 229, 182, 90, 159,\n\t\t116, 110, 79, 31, 28, 77, 107, 138, 119, 251, 35, 248, 55,\n\t\t197, 160, 85, 150, 88, 188, 188, 224, 247, 58, 93, 112, 210,\n\t\t59, 8, 125, 80, 62, 185, 98, 150, 20, 217, 159, 87, 172, 234,\n\t\t206, 184, 79, 48, 28, 245, 23, 64, 247, 236, 78, 120, 192,\n\t\t50, 222, 51, 78, 33, 229, 202, 105, 111, 251, 198, 200, 140,\n\t\t64, 194, 12, 211, 2, 224, 60, 105, 199, 227, 222, 128, 248,\n\t\t80, 50, 241, 221, 73, 209, 181, 49, 57, 239, 141, 81, 83,\n\t\t21, 82, 0, 58, 246, 168, 225, 229, 209, 22, 135, 9, 80, 172,\n\t\t153, 216, 77, 220, 244, 159, 133, 17, 190, 244, 7, 181, 225,\n\t\t113, 24, 235, 255, 136, 169, 59, 3, 252, 18, 234, 54, 241,\n\t\t90, 91, 181, 113, 54, 94, 141, 117, 85, 120, 231, 77, 154,\n\t\t92, 133, 76, 123, 84, 71, 60, 33, 32, 82, 37, 190, 236, 40,\n\t\t7, 213, 2, 28, 162, 151, 201, 189, 194, 128, 175, 38, 160,\n\t\t250, 240, 92, 124, 198, 182, 170, 18, 220, 154, 137, 12, 112,\n\t\t188, 31, 208, 189, 91, 196, 155, 136, 33, 67, 20, 38, 197,\n\t\t161, 217, 176, 243, 227, 35, 248, 227, 250, 178, 104, 1, 80,\n\t\t70, 16, 90, 213, 64, 56, 148, 137, 194, 11, 240, 132, 60,\n\t\t5, 114, 21, 211, 143, 10, 84, 17, 154, 98, 98, 163, 172, 120,\n\t\t40, 142, 161, 164, 5, 19, 210, 37, 138, 130, 190, 57, 146,\n\t\t232, 106, 192, 236, 37, 48, 205, 126, 206, 150, 231, 180,\n\t\t67, 42, 106, 232, 50, 73, 73, 113, 108, 193, 219, 80, 253,\n\t\t42, 18, 152, 245, 107, 183, 59, 178, 144, 123, 48, 129, 107,\n\t\t193, 124, 30, 120, 198, 132, 242, 143, 184, 172, 73, 55, 190,\n\t\t225, 176, 76, 136, 43, 55, 112, 35, 38, 135, 9, 201, 220,\n\t\t45, 151, 99, 117, 186, 18, 81, 44, 48, 44, 44, 48, 21, 11,\n\t\t220, 210, 238, 42, 103, 25, 53, 86, 212, 68, 44, 217, 31,\n\t\t248, 158, 61, 151, 32, 71, 207, 176, 185, 125, 176, 232, 49,\n\t\t78, 139, 215, 61, 13, 77, 206, 41, 15, 237, 27, 4, 230, 139,\n\t\t84, 22, 233, 85, 130, 36, 64, 173, 210, 80, 77, 202, 67, 142,\n\t\t40, 246, 242, 35, 27, 133, 71, 82, 243, 26, 140, 67, 201,\n\t\t191, 30, 223, 13, 83, 48, 74, 226, 195, 41, 144, 32, 230,\n\t\t191, 63, 113, 4, 61, 226, 171, 218, 183, 30, 179, 124, 68,\n\t\t111, 18, 167, 189, 192, 207, 29, 48, 23, 201, 135, 35, 0,\n\t\t104, 7, 176, 63, 120, 135, 117, 7, 34, 239, 51, 173, 226,\n\t\t250, 192, 30, 196, 46, 78, 149, 25, 109, 64, 166, 20, 152,\n\t\t60, 162, 5, 149, 54, 142, 157, 41, 180, 2, 82, 19, 227, 102,\n\t\t145, 159, 199, 231, 46, 102, 148, 207, 169, 210, 135, 149,\n\t\t237, 231, 113, 218, 110, 118, 123, 123, 126, 167, 217, 31,\n\t\t54, 150, 54, 93, 117, 13, 19, 54, 161, 205, 26, 108, 49, 235,\n\t\t133, 3, 23, 227, 218, 16, 40, 34, 64, 91, 31, 44, 92, 24,\n\t\t88, 99, 185, 164, 159, 218, 168, 23, 236, 192, 174, 147, 10,\n\t\t220, 152, 43, 164, 149, 203, 106, 141, 213, 27, 160, 219,\n\t\t91, 19, 47, 234, 216, 12, 62, 48, 214, 221, 83, 16, 252, 53,\n\t\t21, 144, 143, 129, 15, 58, 114, 74, 162, 7, 218, 134, 72,\n\t\t131, 206, 88, 32, 230, 192, 71, 225, 89, 73, 212, 76, 246,\n\t\t214, 203, 135, 150, 191, 100, 125, 120, 190, 65, 56, 167,\n\t\t110, 131, 121, 41, 215, 248, 1, 62, 22, 211, 30, 33, 15, 186,\n\t\t184, 204, 227, 100, 33, 114, 33, 137, 208, 248, 165, 9, 229,\n\t\t169, 205, 136, 215, 143, 188, 106, 56, 92, 7, 92, 178, 57,\n\t\t58, 193, 35, 21, 103, 246, 24, 104, 98, 245, 42, 46, 98, 154,\n\t\t75, 207, 244, 2, 90, 247, 146, 87, 127, 172, 91, 172, 151,\n\t\t178, 208, 226, 175, 210, 208, 255, 58, 175, 12, 68, 135, 237,\n\t\t123, 7, 160, 127, 191, 191, 247, 137, 235, 135, 251, 105,\n\t\t213, 255, 36, 178, 61, 215, 187, 174, 18, 36, 122, 45, 186,\n\t\t152, 224, 144, 63, 147, 135, 32, 12, 164, 211, 54, 31, 44,\n\t\t255, 206, 212, 125, 236, 158, 47, 255, 54, 229, 66, 123, 228,\n\t\t201, 77, 167, 243, 160, 233, 191, 92, 110, 127, 252, 122,\n\t\t101, 173, 223, 179, 100, 220, 147, 104, 160, 16, 92, 30, 168,\n\t\t186, 43, 106, 129, 110, 72, 250, 242, 14, 251, 229, 25, 87,\n\t\t98, 148, 215, 16, 103, 124, 159, 114, 77, 4, 3, 218, 92, 209,\n\t\t243, 154, 153, 232, 42, 34, 197, 138, 45, 19, 184, 245, 58,\n\t\t95, 83, 198, 131, 57, 237, 159, 249, 218, 93, 103, 30, 3,\n\t\t30, 85, 70, 39, 117, 27, 102, 182, 97, 73, 42, 243, 25, 58,\n\t\t253, 114, 55, 143, 160, 129, 57, 197, 176, 168, 247, 154,\n\t\t103, 92, 168, 215, 181, 46, 222, 210, 187, 95, 249, 158, 191,\n\t\t181, 202, 205, 78, 59, 96, 84, 60, 114, 63, 54, 90, 118, 228,\n\t\t134, 25, 20, 118, 133, 245, 61, 66, 93, 233, 47, 251, 23,\n\t\t47, 87, 219, 88, 192, 247, 240, 237, 87, 223, 108, 47, 87,\n\t\t61, 58, 202, 163, 87, 171, 157, 43, 234, 103, 190, 187, 143,\n\t\t49, 170, 30, 193, 78, 132, 220, 83, 187, 190, 25, 106, 39,\n\t\t66, 242, 253, 224, 95, 210, 22, 123, 190, 158, 126, 252, 110,\n\t\t234, 31, 193, 78, 198, 193, 102, 73, 62, 6, 21, 192, 68, 47,\n\t\t183, 180, 238, 113, 150, 225, 91, 191, 93, 248, 216, 25, 142,\n\t\t10, 164, 55, 174, 191, 76, 202, 133, 104, 240, 24, 178, 206,\n\t\t73, 245, 53, 87, 97, 14, 201, 128, 112, 47, 240, 234, 123,\n\t\t48, 112, 255, 206, 84, 42, 253, 86, 157, 9, 248, 222, 11,\n\t\t34, 219, 240, 108, 147, 60, 201, 120, 19, 185, 196, 175, 174,\n\t\t203, 93, 9, 13, 106, 252, 139, 123, 92, 8, 187, 163, 214,\n\t\t213, 7, 110, 111, 254, 51, 128, 76, 81, 155, 233, 143, 97,\n\t\t55, 27, 157, 23, 8, 134, 176, 3, 28, 112, 109, 55, 155, 57,\n\t\t195, 221, 49, 247, 97, 233, 123, 248, 91, 42, 85, 127, 99,\n\t\t169, 132, 241, 75, 41, 121, 103, 126, 107, 210, 18, 171, 255,\n\t\t135, 159, 79, 77, 36, 26, 181, 210, 120, 109, 42, 190, 86,\n\t\t135, 223, 3, 70, 203, 78, 2, 224, 165, 188, 36, 50, 227, 57,\n\t\t3, 117, 254, 201, 63, 228, 96, 17, 63, 66, 248, 21, 133, 59,\n\t\t10, 87, 252, 252, 142, 202, 169, 77, 131, 22, 28, 241, 229,\n\t\t181, 142, 64, 144, 59, 102, 70, 209, 56, 58, 247, 64, 36,\n\t\t198, 197, 86, 77, 9, 83, 131, 169, 70, 170, 53, 150, 180,\n\t\t250, 235, 241, 207, 255, 60, 255, 221, 63, 246, 160, 148,\n\t\t126, 180, 3, 197, 41, 22, 143, 40, 3, 84, 202, 159, 181, 149,\n\t\t44, 113, 17, 228, 95, 100, 42, 138, 176, 224, 44, 89, 235,\n\t\t144, 67, 81, 158, 0, 171, 74, 244, 201, 65, 225, 48, 10, 5,\n\t\t186, 200, 189, 78, 51, 187, 11, 101, 253, 243, 131, 48, 8,\n\t\t174, 122, 57, 197, 134, 83, 157, 208, 220, 92, 183, 240, 122,\n\t\t174, 4, 3, 151, 223, 87, 82, 53, 37, 75, 179, 231, 215, 254,\n\t\t33, 191, 188, 49, 20, 31, 60, 171, 8, 250, 138, 135, 86, 129,\n\t\t19, 120, 75, 38, 87, 175, 98, 62, 250, 89, 57, 41, 36, 165,\n\t\t201, 80, 164, 223, 100, 85, 188, 105, 60, 191, 3, 43, 143,\n\t\t94, 211, 93, 187, 180, 98, 137, 212, 178, 202, 233, 124, 185,\n\t\t89, 93, 229, 45, 213, 13, 159, 155, 141, 189, 163, 225, 203,\n\t\t157, 76, 243, 114, 200, 153, 84, 20, 191, 236, 148, 119, 243,\n\t\t56, 117, 204, 42, 181, 57, 96, 4, 250, 13, 107, 174, 71, 8,\n\t\t223, 98, 167, 214, 167, 71, 104, 28, 181, 213, 82, 190, 235,\n\t\t95, 76, 159, 66, 103, 37, 88, 20, 78, 104, 227, 217, 128,\n\t\t186, 193, 215, 96, 181, 169, 174, 248, 6, 194, 61, 133, 171,\n\t\t47, 164, 113, 4, 214, 2, 203, 136, 175, 145, 38, 244, 199,\n\t\t23, 122, 138, 154, 73, 7, 173, 228, 111, 64, 214, 217, 234,\n\t\t56, 5, 118, 144, 125, 221, 15, 81, 107, 76, 76, 98, 249, 238,\n\t\t17, 92, 241, 179, 166, 20, 229, 100, 227, 3, 209, 7, 84, 140,\n\t\t161, 2, 117, 52, 106, 106, 16, 147, 101, 222, 47, 13, 102,\n\t\t114, 188, 51, 18, 102, 50, 34, 143, 175, 213, 91, 83, 84,\n\t\t222, 55, 34, 251, 67, 242, 128, 48, 209, 27, 169, 7, 238,\n\t\t83, 132, 97, 206, 187, 15, 225, 85, 115, 90, 174, 195, 158,\n\t\t115, 159, 121, 131, 227, 55, 216, 84, 105, 27, 162, 157, 98,\n\t\t109, 178, 132, 188, 184, 159, 157, 248, 186, 7, 171, 134,\n\t\t71, 202, 209, 43, 229, 87, 226, 161, 139, 203, 20, 35, 254,\n\t\t15, 161, 137, 39, 129, 163, 86, 117, 194, 45, 196, 142, 76,\n\t\t206, 43, 118, 204, 173, 208, 227, 202, 120, 141, 229, 156,\n\t\t49, 87, 150, 101, 229, 166, 61, 230, 8, 245, 120, 227, 57,\n\t\t159, 64, 97, 105, 11, 154, 64, 83, 234, 77, 0, 7, 2, 129,\n\t\t72, 124, 113, 57, 161, 188, 48, 143, 145, 84, 217, 247, 109,\n\t\t145, 132, 209, 223, 149, 40, 30, 213, 216, 175, 100, 77, 142,\n\t\t124, 166, 100, 170, 230, 164, 184, 236, 94, 220, 97, 121,\n\t\t64, 171, 79, 200, 63, 244, 25, 219, 104, 230, 134, 101, 165,\n\t\t179, 156, 181, 185, 138, 69, 151, 66, 68, 8, 79, 249, 3, 88,\n\t\t55, 150, 67, 234, 31, 131, 18, 220, 122, 185, 152, 25, 200,\n\t\t58, 221, 227, 109, 92, 246, 230, 133, 151, 129, 182, 239,\n\t\t239, 65, 74, 195, 21, 236, 173, 99, 9, 129, 203, 203, 130,\n\t\t190, 167, 15, 80, 182, 46, 238, 8, 240, 143, 17, 148, 51,\n\t\t186, 9, 171, 97, 80, 72, 163, 52, 60, 62, 16, 44, 19, 243,\n\t\t84, 222, 54, 55, 209, 121, 188, 218, 240, 174, 240, 148, 147,\n\t\t77, 252, 133, 29, 174, 213, 212, 190, 124, 182, 125, 23, 122,\n\t\t119, 121, 238, 167, 188, 21, 34, 251, 149, 194, 151, 26, 18,\n\t\t115, 238, 95, 32, 223, 23, 138, 230, 217, 164, 185, 23, 126,\n\t\t220, 102, 193, 191, 94, 194, 117, 192, 41, 250, 96, 85, 46,\n\t\t153, 9, 217, 144, 91, 43, 145, 3, 30, 71, 49, 92, 70, 121,\n\t\t145, 67, 16, 217, 178, 200, 178, 57, 23, 224, 238, 203, 141,\n\t\t106, 219, 112, 46, 188, 73, 167, 191, 248, 104, 115, 159,\n\t\t227, 154, 44, 147, 35, 40, 19, 247, 156, 112, 44, 239, 20,\n\t\t13, 193, 197, 152, 251, 175, 125, 4, 57, 148, 160, 121, 10,\n\t\t189, 223, 160, 101, 252, 17, 196, 183, 140, 164, 231, 179,\n\t\t213, 130, 179, 10, 80, 116, 162, 195, 94, 107, 231, 204, 216,\n\t\t26, 20, 77, 187, 218, 12, 77, 118, 107, 233, 183, 220, 16,\n\t\t196, 58, 7, 173, 41, 112, 199, 204, 30, 58, 225, 23, 205,\n\t\t238, 228, 46, 19, 237, 27, 25, 161, 249, 175, 119, 51, 161,\n\t\t59, 91, 104, 166, 58, 219, 217, 125, 219, 227, 187, 211, 200,\n\t\t101, 96, 79, 244, 38, 211, 15, 93, 32, 84, 0, 141, 188, 199,\n\t\t71, 79, 14, 30, 131, 94, 131, 239, 63, 112, 78, 54, 67, 47,\n\t\t72, 158, 136, 226, 56, 89, 61, 104, 157, 40, 94, 253, 213,\n\t\t187, 182, 143, 143, 81, 74, 106, 75, 182, 155, 42, 30, 148,\n\t\t124, 68, 245, 9, 18, 43, 222, 167, 161, 43, 121, 137, 142,\n\t\t248, 4, 130, 103, 116, 220, 81, 121, 197, 153, 219, 175, 25,\n\t\t134, 162, 112, 223, 133, 186, 220, 188, 49, 198, 220, 212,\n\t\t243, 94, 205, 126, 135, 76, 186, 238, 174, 200, 242, 248,\n\t\t163, 176, 226, 206, 159, 239, 73, 143, 101, 110, 51, 156,\n\t\t18, 155, 243, 25, 135, 149, 148, 57, 49, 178, 189, 211, 123,\n\t\t133, 83, 10, 249, 29, 183, 104, 29, 205, 238, 42, 106, 64,\n\t\t229, 203, 32, 114, 132, 172, 136, 176, 161, 34, 240, 79, 154,\n\t\t70, 140, 127, 19, 168, 200, 147, 135, 75, 212, 67, 211, 217,\n\t\t84, 115, 250, 173, 8, 11, 214, 203, 240, 231, 88, 73, 108,\n\t\t163, 1, 100, 203, 13, 170, 50, 49, 54, 126, 244, 82, 11, 78,\n\t\t58, 246, 61, 65, 33, 249, 55, 175, 47, 9, 234, 53, 155, 108,\n\t\t52, 99, 49, 119, 102, 97, 2, 36, 75, 58, 188, 121, 209, 217,\n\t\t0, 30, 32, 234, 4, 255, 240, 175, 249, 169, 209, 241, 234,\n\t\t190, 120, 44, 9, 88, 18, 112, 123, 99, 240, 213, 157, 77,\n\t\t200, 250, 138, 41, 58, 167, 112, 72, 14, 208, 7, 28, 49, 242,\n\t\t120, 62, 162, 64, 40, 149, 135, 35, 204, 19, 133, 65, 20,\n\t\t83, 73, 18, 12, 145, 177, 232, 112, 84, 61, 45, 148, 125,\n\t\t234, 79, 124, 165, 185, 230, 68, 172, 122, 125, 168, 230,\n\t\t63, 135, 23, 166, 40, 0, 105, 183, 237, 130, 114, 162, 146,\n\t\t221, 134, 104, 176, 94, 198, 86, 85, 28, 246, 24, 67, 219,\n\t\t75, 76, 209, 39, 208, 171, 16, 91, 138, 153, 32, 243, 131,\n\t\t70, 234, 155, 247, 49, 24, 31, 191, 220, 120, 141, 61, 215,\n\t\t35, 229, 174, 122, 121, 144, 109, 26, 193, 28, 65, 204, 229,\n\t\t97, 86, 43, 194, 245, 203, 62, 121, 186, 220, 44, 161, 138,\n\t\t181, 78, 130, 188, 218, 71, 177, 250, 91, 98, 105, 175, 191,\n\t\t174, 126, 228, 96, 8, 33, 102, 156, 228, 214, 192, 151, 254,\n\t\t104, 43, 191, 1, 125, 63, 190, 231, 200, 192, 114, 27, 99,\n\t\t149, 217, 226, 17, 238, 227, 27, 229, 209, 120, 93, 0, 232,\n\t\t27, 225, 96, 149, 156, 19, 10, 119, 67, 82, 70, 194, 0, 190,\n\t\t118, 7, 158, 84, 237, 246, 220, 32, 76, 232, 166, 95, 252,\n\t\t23, 86, 173, 176, 107, 168, 218, 55, 218, 149, 218, 10, 56,\n\t\t116, 105, 148, 51, 132, 207, 104, 139, 239, 16, 252, 108,\n\t\t88, 97, 164, 51, 56, 12, 58, 17, 96, 143, 79, 136, 6, 8, 120,\n\t\t151, 201, 221, 6, 91, 51, 228, 150, 82, 244, 49, 166, 109,\n\t\t176, 198, 119, 5, 245, 117, 197, 210, 54, 155, 172, 223, 93,\n\t\t193, 31, 154, 230, 252, 13, 102, 46, 155, 108, 2, 209, 235,\n\t\t235, 180, 8, 53, 191, 59, 96, 176, 175, 107, 177, 143, 217,\n\t\t219, 114, 130, 123, 200, 111, 122, 174, 216, 231, 42, 120,\n\t\t103, 69, 7, 64, 99, 122, 69, 72, 228, 28, 225, 20, 234, 83,\n\t\t78, 81, 14, 147, 146, 50, 79, 217, 118, 0, 230, 252, 99, 234,\n\t\t211, 19, 89, 52, 11, 21, 200, 189, 194, 206, 160, 22, 161,\n\t\t7, 228, 249, 125, 226, 73, 133, 33, 245, 125, 176, 177, 241,\n\t\t227, 160, 35, 26, 29, 56, 72, 150, 60, 68, 83, 207, 22, 176,\n\t\t142, 115, 214, 230, 76, 5, 162, 219, 214, 57, 212, 23, 170,\n\t\t25, 111, 212, 56, 202, 79, 101, 199, 143, 102, 5, 5, 184,\n\t\t202, 112, 220, 168, 229, 29, 104, 16, 113, 153, 91, 188, 33,\n\t\t46, 225, 166, 245, 72, 187, 4, 203, 128, 115, 191, 71, 252,\n\t\t254, 240, 143, 52, 15, 180, 238, 149, 41, 207, 5, 240, 243,\n\t\t147, 70, 143, 94, 162, 66, 177, 176, 123, 238, 24, 54, 220,\n\t\t115, 4, 205, 128, 67, 187, 220, 41, 101, 90, 43, 132, 239,\n\t\t12, 67, 173, 107, 171, 174, 57, 54, 249, 50, 33, 112, 6, 45,\n\t\t186, 227, 117, 27, 211, 45, 72, 240, 213, 35, 196, 23, 42,\n\t\t109, 182, 221, 22, 229, 238, 112, 160, 173, 179, 253, 198,\n\t\t213, 76, 156, 193, 8, 244, 250, 130, 252, 102, 160, 76, 63,\n\t\t255, 246, 125, 222, 101, 188, 129, 30, 181, 186, 27, 118,\n\t\t193, 6, 87, 144, 55, 218, 7, 151, 50, 43, 67, 24, 79, 3, 108,\n\t\t197, 224, 73, 18, 28, 235, 112, 223, 191, 116, 215, 137, 112,\n\t\t50, 243, 168, 228, 136, 7, 12, 168, 139, 192, 241, 34, 194,\n\t\t232, 217, 100, 121, 236, 16, 60, 11, 120, 38, 240, 10, 138,\n\t\t97, 80, 214, 229, 120, 85, 169, 70, 50, 9, 207, 240, 0, 153,\n\t\t158, 138, 108, 73, 143, 240, 3, 193, 152, 146, 222, 75, 221,\n\t\t92, 117, 141, 209, 158, 91, 187, 100, 27, 182, 242, 63, 15,\n\t\t129, 187, 243, 178, 202, 191, 185, 32, 141, 160, 66, 218,\n\t\t157, 87, 141, 110, 188, 62, 11, 223, 70, 211, 126, 76, 115,\n\t\t235, 163, 30, 246, 125, 148, 29, 38, 238, 21, 108, 25, 10,\n\t\t225, 109, 150, 120, 5, 218, 139, 52, 168, 253, 131, 168, 180,\n\t\t108, 100, 87, 246, 41, 187, 197, 56, 243, 23, 84, 186, 2,\n\t\t100, 198, 87, 243, 187, 49, 234, 12, 32, 87, 57, 123, 236,\n\t\t9, 88, 170, 181, 170, 134, 187, 84, 127, 238, 2, 244, 90,\n\t\t62, 103, 147, 162, 85, 64, 137, 46, 146, 6, 253, 156, 254,\n\t\t229, 215, 34, 19, 1, 80, 152, 246, 233, 133, 83, 6, 248, 19,\n\t\t53, 67, 133, 4, 183, 168, 175, 61, 71, 112, 255, 130, 24,\n\t\t111, 76, 41, 120, 17, 103, 230, 72, 34, 76, 91, 212, 246,\n\t\t117, 17, 231, 195, 93, 26, 110, 127, 103, 39, 92, 134, 197,\n\t\t40, 144, 247, 118, 27, 109, 210, 48, 218, 84, 88, 66, 84,\n\t\t156, 45, 17, 195, 234, 154, 88, 144, 179, 176, 166, 100, 98,\n\t\t57, 229, 104, 33, 39, 133, 143, 253, 229, 194, 167, 86, 208,\n\t\t188, 169, 7, 222, 30, 153, 41, 61, 55, 163, 71, 185, 233,\n\t\t129, 226, 81, 51, 150, 123, 186, 8, 138, 182, 137, 91, 198,\n\t\t41, 89, 92, 184, 245, 157, 190, 162, 73, 102, 211, 142, 26,\n\t\t117, 145, 154, 102, 125, 237, 51, 228, 160, 58, 77, 174, 223,\n\t\t151, 167, 165, 151, 211, 195, 79, 182, 121, 10, 125, 159,\n\t\t220, 249, 34, 83, 205, 163, 140, 145, 197, 236, 68, 231, 32,\n\t\t78, 118, 78, 197, 85, 136, 129, 144, 241, 188, 31, 58, 106,\n\t\t88, 224, 175, 246, 76, 82, 42, 149, 203, 166, 53, 133, 56,\n\t\t148, 233, 183, 21, 38, 37, 62, 22, 24, 147, 151, 61, 182,\n\t\t255, 158, 171, 133, 227, 211, 149, 36, 141, 118, 51, 234,\n\t\t79, 35, 129, 162, 11, 199, 151, 146, 141, 151, 213, 231, 150,\n\t\t138, 203, 97, 216, 52, 192, 44, 12, 30, 55, 34, 194, 154,\n\t\t32, 85, 234, 72, 164, 11, 45, 56, 89, 252, 8, 9, 71, 4, 230,\n\t\t245, 204, 153, 231, 21, 77, 49, 10, 138, 224, 2, 102, 205,\n\t\t141, 51, 162, 150, 148, 40, 19, 10, 190, 118, 87, 0, 81, 243,\n\t\t168, 156, 177, 71, 10, 73, 12, 215, 239, 120, 95, 86, 47,\n\t\t137, 56, 133, 65, 248, 117, 121, 12, 4, 113, 199, 227, 108,\n\t\t232, 224, 229, 241, 126, 7, 159, 111, 200, 73, 177, 250, 194,\n\t\t106, 189, 59, 104, 57, 76, 95, 61, 123, 220, 240, 231, 105,\n\t\t200, 36, 231, 134, 160, 98, 79, 1, 14, 203, 114, 162, 21,\n\t\t177, 201, 223, 206, 45, 113, 241, 72, 189, 51, 135, 94, 132,\n\t\t75, 199, 253, 77, 206, 90, 194, 177, 203, 74, 247, 89, 175,\n\t\t78, 162, 112, 18, 147, 187, 161, 12, 59, 94, 176, 58, 68,\n\t\t174, 164, 70, 66, 117, 180, 124, 30, 235, 174, 236, 159, 18,\n\t\t154, 22, 52, 48, 107, 191, 155, 8, 151, 0, 29, 112, 209, 39,\n\t\t75, 201, 58, 195, 214, 116, 32, 21, 67, 206, 255, 245, 157,\n\t\t109, 194, 173, 99, 35, 102, 21, 43, 64, 94, 55, 198, 95, 195,\n\t\t173, 212, 246, 246, 232, 111, 254, 211, 164, 36, 134, 185,\n\t\t82, 167, 27, 114, 65, 1, 254, 130, 209, 122, 196, 33, 236,\n\t\t69, 69, 15, 115, 118, 153, 119, 234, 197, 55, 180, 51, 202,\n\t\t30, 206, 1, 11, 107, 199, 111, 144, 141, 67, 10, 165, 197,\n\t\t166, 45, 60, 64, 56, 28, 63, 35, 0, 241, 54, 15, 220, 44,\n\t\t11, 49, 21, 104, 133, 63, 151, 185, 211, 16, 184, 165, 239,\n\t\t31, 123, 143, 3, 50, 174, 66, 147, 252, 7, 124, 38, 179, 169,\n\t\t108, 179, 111, 41, 69, 163, 20, 89, 132, 70, 48, 213, 175,\n\t\t208, 254, 111, 225, 35, 93, 252, 44, 163, 240, 185, 24, 48,\n\t\t236, 95, 8, 143, 135, 222, 114, 21, 147, 240, 90, 85, 0, 47,\n\t\t239, 115, 97, 211, 249, 251, 251, 147, 109, 125, 210, 146,\n\t\t167, 216, 113, 121, 92, 220, 31, 208, 68, 241, 76, 88, 226,\n\t\t138, 102, 86, 47, 23, 104, 34, 41, 244, 83, 213, 115, 213,\n\t\t8, 26, 217, 116, 124, 101, 224, 183, 249, 216, 198, 66, 92,\n\t\t129, 58, 204, 135, 17, 9, 48, 49, 244, 148, 209, 130, 218,\n\t\t63, 159, 95, 202, 96, 212, 244, 48, 77, 86, 32, 109, 201,\n\t\t155, 179, 61, 89, 57, 156, 102, 124, 7, 45, 14, 129, 201,\n\t\t179, 11, 210, 49, 229, 130, 124, 218, 151, 129, 247, 203,\n\t\t240, 205, 250, 207, 37, 218, 89, 219, 200, 31, 147, 24, 176,\n\t\t136, 114, 154, 213, 153, 78, 212, 87, 253, 193, 157, 232,\n\t\t141, 90, 167, 1, 21, 63, 64, 178, 3, 160, 79, 183, 237, 1,\n\t\t4, 137, 246, 129, 94, 230, 194, 25, 83, 165, 143, 31, 225,\n\t\t168, 245, 13, 129, 86, 59, 75, 101, 67, 227, 47, 172, 145,\n\t\t216, 244, 124, 133, 84, 30, 217, 228, 115, 2, 165, 180, 56,\n\t\t100, 216, 243, 6, 112, 143, 138, 149, 216, 243, 18, 154, 75,\n\t\t139, 217, 164, 142, 234, 181, 105, 82, 151, 181, 151, 112,\n\t\t135, 203, 172, 0, 146, 103, 18, 69, 47, 54, 155, 164, 187,\n\t\t181, 148, 21, 12, 203, 127, 213, 128, 117, 205, 37, 184, 106,\n\t\t218, 155, 205, 246, 66, 27, 172, 15, 69, 66, 154, 136, 95,\n\t\t125, 209, 187, 175, 104, 201, 34, 244, 30, 86, 220, 108, 30,\n\t\t88, 57, 30, 124, 63, 152, 232, 216, 218, 1, 174, 94, 160,\n\t\t232, 155, 194, 91, 222, 167, 57, 217, 166, 101, 219, 244,\n\t\t59, 226, 61, 158, 194, 148, 110, 160, 218, 173, 239, 179,\n\t\t109, 55, 213, 61, 50, 220, 204, 40, 187, 53, 239, 80, 121,\n\t\t132, 47, 176, 163, 71, 202, 61, 132, 224, 167, 16, 226, 221,\n\t\t65, 88, 118, 197, 66, 9, 57, 26, 225, 184, 63, 36, 204, 243,\n\t\t144, 5, 141, 230, 215, 72, 164, 48, 193, 164, 31, 107, 131,\n\t\t9, 190, 119, 26, 140, 196, 99, 103, 212, 180, 124, 54, 115,\n\t\t128, 72, 177, 179, 70, 30, 61, 255, 209, 99, 68, 138, 253,\n\t\t243, 233, 69, 204, 88, 67, 75, 38, 204, 72, 80, 12, 48, 77,\n\t\t70, 82, 155, 185, 126, 62, 13, 108, 101, 140, 155, 181, 230,\n\t\t243, 184, 237, 5, 84, 164, 217, 44, 172, 252, 64, 1, 98, 127,\n\t\t240, 118, 178, 54, 40, 135, 201, 220, 146, 105, 246, 97, 186,\n\t\t113, 179, 233, 23, 139, 168, 177, 159, 95, 235, 113, 219,\n\t\t102, 83, 188, 198, 110, 6, 134, 48, 136, 228, 237, 220, 235,\n\t\t115, 84, 203, 239, 166, 22, 79, 91, 125, 14, 154, 2, 205,\n\t\t208, 199, 190, 163, 221, 128, 155, 96, 182, 230, 158, 124,\n\t\t238, 138, 99, 62, 205, 17, 203, 9, 233, 226, 246, 214, 163,\n\t\t125, 12, 109, 5, 6, 162, 125, 162, 201, 196, 11, 214, 223,\n\t\t13, 28, 194, 87, 28, 70, 66, 0, 146, 206, 79, 84, 149, 6,\n\t\t227, 149, 192, 226, 20, 51, 168, 235, 22, 247, 42, 202, 80,\n\t\t143, 101, 60, 30, 145, 210, 58, 188, 39, 211, 7, 152, 205,\n\t\t185, 165, 242, 231, 61, 165, 231, 165, 104, 23, 72, 59, 79,\n\t\t102, 249, 36, 27, 66, 131, 1, 176, 150, 32, 36, 214, 196,\n\t\t88, 204, 135, 182, 102, 239, 53, 74, 39, 249, 24, 33, 145,\n\t\t15, 163, 125, 164, 219, 101, 56, 51, 244, 25, 57, 131, 121,\n\t\t35, 202, 250, 92, 126, 120, 191, 236, 117, 17, 53, 141, 68,\n\t\t42, 160, 190, 168, 13, 171, 236, 174, 32, 23, 234, 242, 222,\n\t\t96, 103, 218, 108, 59, 195, 116, 120, 140, 5, 69, 88, 93,\n\t\t201, 144, 81, 23, 11, 225, 82, 70, 32, 224, 190, 89, 196,\n\t\t150, 42, 44, 174, 34, 224, 50, 146, 79, 33, 110, 243, 79,\n\t\t114, 205, 1, 187, 125, 247, 249, 253, 186, 187, 130, 159,\n\t\t71, 88, 12, 200, 85, 188, 38, 176, 8, 16, 83, 97, 55, 41,\n\t\t202, 28, 79, 26, 2, 95, 254, 113, 219, 213, 192, 186, 193,\n\t\t101, 136, 165, 209, 129, 80, 185, 108, 147, 43, 160, 1, 222,\n\t\t149, 98, 28, 183, 96, 30, 226, 6, 106, 141, 41, 152, 179,\n\t\t137, 49, 86, 31, 6, 36, 133, 216, 33, 216, 216, 67, 41, 251,\n\t\t117, 102, 134, 10, 94, 48, 210, 247, 148, 114, 185, 215, 225,\n\t\t5, 108, 167, 235, 251, 154, 44, 5, 185, 51, 101, 108, 22,\n\t\t61, 178, 233, 239, 181, 181, 175, 103, 238, 88, 95, 25, 5,\n\t\t58, 90, 144, 30, 82, 65, 133, 164, 61, 209, 223, 165, 247,\n\t\t240, 214, 166, 234, 235, 47, 247, 89, 203, 133, 35, 55, 128,\n\t\t34, 108, 245, 179, 76, 124, 220, 31, 104, 55, 176, 162, 83,\n\t\t7, 42, 158, 195, 27, 51, 203, 78, 149, 141, 44, 160, 183,\n\t\t110, 81, 157, 70, 60, 112, 172, 219, 42, 236, 23, 208, 63,\n\t\t23, 248, 215, 120, 100, 17, 146, 219, 131, 3, 71, 17, 202,\n\t\t133, 20, 136, 59, 10, 70, 170, 189, 34, 105, 138, 202, 106,\n\t\t247, 143, 192, 249, 126, 93, 180, 2, 194, 96, 156, 240, 10,\n\t\t64, 113, 53, 80, 45, 36, 174, 210, 168, 222, 92, 229, 88,\n\t\t104, 214, 162, 22, 102, 82, 59, 209, 170, 134, 58, 248, 73,\n\t\t218, 179, 138, 3, 9, 109, 202, 3, 9, 88, 104, 34, 250, 25,\n\t\t86, 76, 129, 155, 204, 50, 241, 222, 200, 148, 168, 122, 70,\n\t\t249, 160, 231, 57, 196, 246, 100, 144, 48, 98, 38, 190, 247,\n\t\t70, 121, 60, 157, 20, 38, 195, 13, 122, 140, 45, 204, 169,\n\t\t136, 35, 125, 197, 114, 55, 245, 87, 92, 94, 97, 81, 104,\n\t\t68, 214, 179, 138, 68, 149, 41, 134, 108, 73, 231, 126, 153,\n\t\t97, 254, 20, 153, 85, 87, 249, 188, 212, 138, 3, 164, 69,\n\t\t143, 206, 63, 24, 167, 191, 9, 254, 40, 31, 36, 107, 202,\n\t\t173, 206, 125, 3, 219, 179, 190, 209, 159, 244, 243, 189,\n\t\t79, 96, 119, 210, 10, 233, 196, 235, 130, 23, 120, 82, 95,\n\t\t113, 95, 124, 50, 106, 28, 127, 170, 160, 215, 146, 24, 70,\n\t\t244, 163, 102, 128, 204, 0, 17, 41, 155, 100, 107, 8, 121,\n\t\t200, 137, 110, 87, 200, 215, 183, 137, 87, 16, 241, 60, 185,\n\t\t39, 222, 161, 159, 167, 0, 46, 114, 74, 39, 236, 229, 210,\n\t\t223, 32, 232, 251, 28, 98, 75, 67, 229, 68, 84, 217, 86, 23,\n\t\t210, 40, 201, 54, 19, 184, 32, 51, 141, 100, 212, 201, 206,\n\t\t179, 77, 209, 246, 10, 240, 61, 119, 86, 140, 127, 86, 236,\n\t\t136, 127, 70, 23, 194, 148, 104, 171, 62, 12, 108, 8, 81,\n\t\t199, 44, 56, 83, 82, 143, 109, 52, 230, 153, 197, 61, 8, 243,\n\t\t86, 150, 141, 20, 135, 26, 1, 227, 107, 155, 57, 95, 31, 9,\n\t\t152, 211, 234, 69, 75, 96, 46, 103, 234, 245, 208, 194, 101,\n\t\t212, 6, 32, 213, 101, 72, 75, 131, 173, 232, 172, 65, 85,\n\t\t54, 6, 138, 112, 208, 194, 10, 104, 199, 1, 53, 194, 41, 102,\n\t\t225, 207, 132, 136, 221, 119, 226, 10, 178, 134, 51, 172,\n\t\t15, 240, 95, 252, 40, 11, 87, 162, 92, 21, 161, 196, 94, 114,\n\t\t129, 3, 255, 198, 84, 156, 188, 72, 75, 192, 164, 165, 180,\n\t\t97, 76, 193, 247, 125, 27, 81, 151, 106, 34, 210, 148, 65,\n\t\t238, 244, 146, 208, 152, 202, 121, 210, 236, 208, 148, 19,\n\t\t12, 26, 208, 107, 143, 138, 149, 34, 58, 9, 110, 171, 37,\n\t\t251, 85, 254, 18, 181, 209, 8, 239, 128, 126, 69, 245, 103,\n\t\t231, 69, 33, 242, 243, 12, 96, 156, 24, 202, 110, 138, 2,\n\t\t39, 93, 254, 195, 48, 240, 129, 146, 98, 181, 29, 60, 107,\n\t\t53, 230, 251, 23, 56, 134, 15, 180, 227, 48, 124, 114, 113,\n\t\t6, 42, 68, 26, 34, 217, 224, 241, 90, 44, 16, 188, 173, 155,\n\t\t66, 46, 94, 157, 157, 61, 106, 100, 248, 248, 177, 43, 138,\n\t\t131, 62, 247, 229, 27, 126, 232, 40, 72, 47, 74, 193, 161,\n\t\t147, 43, 176, 213, 201, 112, 26, 161, 197, 171, 71, 112, 104,\n\t\t223, 163, 163, 62, 248, 89, 94, 21, 179, 3, 159, 247, 203,\n\t\t60, 209, 207, 47, 2, 79, 37, 108, 187, 173, 209, 27, 199,\n\t\t140, 231, 186, 102, 75, 173, 101, 75, 119, 165, 160, 123,\n\t\t250, 83, 108, 166, 24, 177, 133, 113, 147, 195, 151, 23, 98,\n\t\t63, 10, 89, 59, 227, 45, 221, 70, 199, 46, 137, 240, 27, 160,\n\t\t54, 251, 138, 255, 27, 71, 204, 138, 204, 208, 89, 230, 6,\n\t\t61, 236, 17, 27, 95, 168, 156, 165, 73, 133, 77, 146, 98,\n\t\t105, 138, 228, 126, 148, 31, 59, 229, 161, 195, 18, 127, 239,\n\t\t35, 134, 74, 195, 235, 63, 181, 20, 198, 30, 174, 111, 109,\n\t\t165, 18, 8, 200, 169, 99, 25, 160, 234, 79, 106, 123, 247,\n\t\t70, 201, 252, 94, 75, 126, 1, 106, 63, 187, 103, 36, 247,\n\t\t104, 140, 219, 128, 133, 83, 67, 162, 186, 248, 215, 25, 197,\n\t\t25, 170, 165, 55, 210, 80, 226, 1, 192, 112, 78, 237, 24,\n\t\t16, 38, 211, 100, 212, 18, 96, 132, 30, 143, 178, 128, 79,\n\t\t164, 84, 230, 25, 177, 90, 249, 168, 184, 190, 40, 153, 35,\n\t\t175, 239, 114, 203, 163, 172, 153, 153, 137, 59, 189, 147,\n\t\t113, 33, 202, 37, 156, 218, 17, 245, 10, 92, 141, 98, 202,\n\t\t193, 201, 207, 125, 222, 147, 127, 55, 17, 196, 194, 111,\n\t\t211, 89, 197, 38, 80, 3, 142, 108, 205, 41, 46, 183, 102,\n\t\t26, 103, 131, 76, 83, 31, 243, 214, 193, 200, 15, 149, 50,\n\t\t52, 40, 150, 88, 37, 254, 183, 36, 222, 90, 83, 110, 31, 56,\n\t\t97, 141, 74, 159, 247, 242, 76, 39, 103, 186, 45, 198, 225,\n\t\t93, 165, 190, 91, 180, 94, 109, 87, 248, 182, 129, 14, 45,\n\t\t4, 156, 194, 239, 27, 253, 216, 199, 251, 139, 150, 97, 43,\n\t\t239, 228, 233, 244, 49, 81, 138, 212, 95, 94, 65, 133, 17,\n\t\t185, 199, 132, 208, 108, 231, 40, 23, 39, 140, 160, 180, 38,\n\t\t86, 33, 69, 49, 221, 181, 184, 108, 249, 79, 249, 75, 72,\n\t\t78, 21, 13, 255, 81, 203, 210, 111, 117, 68, 246, 176, 56,\n\t\t112, 239, 44, 43, 131, 97, 92, 99, 238, 126, 74, 150, 28,\n\t\t153, 52, 240, 20, 78, 145, 39, 166, 55, 7, 7, 14, 92, 124,\n\t\t148, 195, 118, 139, 77, 127, 129, 176, 165, 168, 202, 218,\n\t\t168, 238, 244, 25, 64, 187, 159, 109, 6, 74, 27, 57, 134,\n\t\t201, 35, 115, 127, 167, 239, 197, 125, 71, 127, 200, 229,\n\t\t128, 186, 27, 108, 135, 71, 250, 229, 12, 44, 123, 73, 255,\n\t\t161, 222, 229, 106, 183, 140, 110, 156, 228, 251, 143, 185,\n\t\t140, 189, 135, 185, 99, 125, 8, 109, 88, 60, 31, 241, 122,\n\t\t121, 133, 235, 51, 163, 86, 165, 161, 131, 203, 243, 121,\n\t\t196, 146, 207, 133, 152, 214, 211, 60, 245, 71, 243, 96, 104,\n\t\t99, 81, 52, 187, 102, 70, 42, 101, 18, 101, 186, 44, 130,\n\t\t5, 178, 160, 93, 229, 9, 24, 137, 99, 195, 119, 141, 211,\n\t\t113, 181, 60, 198, 54, 98, 117, 136, 53, 9, 230, 221, 55,\n\t\t24, 25, 61, 68, 23, 192, 230, 213, 182, 176, 242, 80, 126,\n\t\t195, 12, 72, 184, 66, 46, 112, 12, 254, 124, 0, 195, 42, 21,\n\t\t139, 149, 216, 228, 221, 193, 43, 68, 33, 56, 141, 194, 88,\n\t\t33, 181, 184, 45, 48, 241, 190, 85, 167, 244, 24, 164, 161,\n\t\t180, 119, 103, 229, 99, 4, 14, 193, 143, 5, 61, 29, 57, 161,\n\t\t169, 219, 248, 131, 81, 144, 138, 143, 37, 75, 96, 251, 200,\n\t\t98, 56, 81, 239, 193, 74, 149, 186, 50, 227, 245, 216, 56,\n\t\t47, 166, 125, 64, 47, 16, 101, 210, 99, 58, 194, 145, 249,\n\t\t48, 93, 229, 56, 17, 208, 103, 106, 60, 16, 32, 144, 231,\n\t\t141, 31, 37, 22, 64, 173, 101, 62, 35, 184, 31, 238, 181,\n\t\t52, 4, 133, 151, 241, 96, 89, 216, 39, 20, 95, 28, 175, 192,\n\t\t247, 73, 21, 247, 88, 170, 160, 27, 79, 195, 31, 200, 43,\n\t\t149, 73, 61, 111, 173, 129, 66, 65, 139, 97, 53, 108, 116,\n\t\t221, 165, 18, 42, 223, 251, 24, 80, 99, 245, 22, 23, 223,\n\t\t147, 14, 214, 231, 152, 5, 90, 255, 182, 119, 221, 197, 158,\n\t\t40, 26, 170, 110, 44, 155, 138, 176, 69, 181, 216, 246, 102,\n\t\t236, 158, 176, 119, 110, 223, 80, 208, 240, 217, 138, 208,\n\t\t216, 107, 49, 25, 91, 82, 120, 75, 177, 146, 23, 159, 214,\n\t\t200, 181, 101, 128, 45, 25, 92, 225, 171, 114, 92, 175, 218,\n\t\t199, 161, 177, 73, 83, 27, 131, 214, 221, 90, 155, 226, 98,\n\t\t219, 240, 7, 65, 198, 174, 220, 238, 180, 193, 187, 201, 71,\n\t\t64, 85, 182, 83, 95, 175, 40, 156, 233, 106, 86, 64, 192,\n\t\t156, 209, 33, 38, 123, 191, 157, 8, 66, 57, 87, 174, 234,\n\t\t15, 248, 99, 28, 18, 27, 217, 31, 186, 102, 36, 237, 137,\n\t\t207, 192, 243, 64, 160, 165, 83, 146, 69, 250, 221, 41, 141,\n\t\t180, 58, 252, 28, 129, 12, 100, 148, 134, 248, 107, 231, 20,\n\t\t206, 124, 105, 116, 232, 113, 213, 8, 101, 215, 73, 43, 51,\n\t\t132, 45, 159, 199, 192, 223, 38, 142, 47, 126, 186, 40, 247,\n\t\t37, 90, 107, 86, 243, 99, 145, 150, 216, 52, 85, 73, 122,\n\t\t50, 152, 22, 60, 206, 170, 158, 91, 169, 20, 73, 27, 253,\n\t\t141, 25, 79, 94, 129, 192, 3, 181, 163, 110, 161, 151, 88,\n\t\t250, 102, 42, 145, 214, 225, 102, 4, 235, 129, 194, 48, 60,\n\t\t94, 45, 132, 28, 194, 249, 174, 254, 51, 28, 148, 44, 228,\n\t\t53, 108, 116, 60, 231, 25, 100, 165, 139, 183, 246, 44, 228,\n\t\t26, 174, 69, 164, 65, 109, 144, 40, 246, 249, 95, 53, 105,\n\t\t183, 30, 221, 107, 232, 172, 12, 210, 145, 178, 124, 206,\n\t\t202, 216, 215, 222, 220, 156, 171, 9, 234, 74, 215, 35, 15,\n\t\t57, 39, 50, 4, 238, 228, 14, 180, 84, 166, 119, 16, 108, 179,\n\t\t16, 43, 25, 69, 190, 52, 112, 197, 188, 80, 248, 80, 93, 8,\n\t\t157, 74, 249, 143, 249, 240, 5, 222, 116, 88, 2, 168, 130,\n\t\t6, 179, 140, 162, 84, 121, 64, 106, 206, 46, 158, 90, 204,\n\t\t210, 158, 156, 3, 50, 149, 172, 146, 63, 77, 142, 13, 157,\n\t\t107, 107, 27, 106, 104, 247, 108, 40, 114, 224, 188, 65, 123,\n\t\t193, 16, 243, 0, 17, 16, 216, 146, 4, 4, 72, 160, 163, 183,\n\t\t1, 171, 25, 40, 242, 126, 43, 81, 16, 3, 11, 229, 182, 238,\n\t\t45, 177, 250, 233, 73, 4, 56, 193, 60, 70, 37, 114, 162, 41,\n\t\t185, 72, 252, 247, 6, 7, 57, 226, 187, 49, 79, 243, 18, 5,\n\t\t222, 165, 252, 250, 253, 174, 18, 25, 220, 133, 57, 37, 15,\n\t\t196, 0, 212, 237, 140, 200, 244, 36, 217, 58, 107, 51, 35,\n\t\t52, 46, 20, 69, 242, 89, 176, 95, 236, 52, 104, 45, 24, 54,\n\t\t52, 230, 223, 121, 32, 111, 94, 68, 76, 31, 84, 5, 74, 67,\n\t\t11, 202, 122, 212, 127, 3, 243, 130, 196, 168, 114, 156, 120,\n\t\t34, 80, 187, 133, 116, 164, 95, 61, 143, 121, 58, 61, 171,\n\t\t171, 41, 217, 186, 241, 157, 79, 12, 73, 69, 65, 107, 83,\n\t\t91, 66, 145, 13, 106, 80, 147, 20, 23, 65, 214, 175, 234,\n\t\t27, 218, 198, 229, 95, 114, 147, 8, 112, 80, 130, 113, 58,\n\t\t53, 179, 115, 86, 222, 58, 71, 74, 153, 112, 209, 37, 82,\n\t\t12, 172, 244, 49, 12, 231, 171, 155, 151, 214, 109, 226, 237,\n\t\t155, 108, 236, 36, 21, 137, 224, 253, 203, 22, 207, 210, 228,\n\t\t196, 254, 46, 182, 232, 215, 240, 193, 97, 106, 219, 16, 240,\n\t\t234, 125, 37, 126, 77, 250, 31, 99, 79, 185, 199, 24, 128,\n\t\t156, 119, 55, 233, 63, 170, 19, 212, 192, 21, 66, 45, 220,\n\t\t21, 110, 244, 54, 134, 162, 45, 77, 252, 193, 113, 11, 201,\n\t\t145, 4, 122, 15, 98, 73, 187, 24, 12, 134, 221, 81, 159, 140,\n\t\t95, 72, 122, 195, 180, 124, 179, 130, 48, 41, 230, 13, 253,\n\t\t107, 4, 125, 64, 246, 126, 193, 141, 2, 43, 41, 231, 249,\n\t\t95, 236, 58, 157, 52, 72, 49, 224, 238, 19, 15, 147, 126,\n\t\t187, 98, 209, 79, 51, 33, 250, 46, 153, 189, 180, 218, 149,\n\t\t243, 35, 5, 91, 59, 15, 146, 239, 19, 98, 44, 61, 23, 69,\n\t\t108, 90, 155, 109, 63, 84, 9, 209, 214, 49, 84, 124, 0, 231,\n\t\t182, 114, 125, 169, 245, 29, 203, 185, 80, 232, 103, 248,\n\t\t80, 122, 13, 234, 249, 74, 47, 232, 220, 96, 102, 50, 175,\n\t\t58, 124, 8, 45, 47, 212, 151, 113, 240, 150, 224, 132, 252,\n\t\t98, 196, 10, 197, 80, 164, 25, 140, 7, 177, 2, 60, 104, 230,\n\t\t48, 13, 39, 204, 128, 199, 231, 76, 100, 183, 45, 94, 88,\n\t\t49, 85, 183, 106, 114, 25, 177, 182, 157, 0, 243, 66, 108,\n\t\t87, 10, 68, 45, 222, 98, 117, 118, 53, 126, 58, 31, 77, 196,\n\t\t222, 152, 147, 120, 136, 199, 150, 244, 182, 31, 207, 49,\n\t\t94, 124, 95, 174, 78, 77, 85, 123, 148, 144, 211, 208, 205,\n\t\t177, 38, 153, 197, 158, 240, 94, 75, 223, 140, 50, 145, 76,\n\t\t60, 8, 120, 94, 41, 215, 70, 181, 186, 188, 214, 151, 30,\n\t\t167, 143, 139, 139, 94, 4, 211, 61, 125, 55, 250, 77, 153,\n\t\t211, 254, 233, 94, 164, 164, 43, 178, 251, 215, 36, 84, 220,\n\t\t69, 178, 95, 108, 134, 66, 129, 19, 165, 45, 196, 129, 45,\n\t\t200, 26, 224, 78, 46, 137, 12, 71, 209, 211, 88, 27, 104,\n\t\t161, 86, 105, 135, 94, 187, 41, 6, 85, 138, 76, 61, 90, 191,\n\t\t213, 58, 180, 171, 91, 240, 127, 32, 227, 61, 34, 26, 9, 47,\n\t\t23, 60, 47, 82, 129, 43, 102, 101, 104, 143, 15, 133, 124,\n\t\t149, 129, 14, 123, 93, 110, 133, 102, 254, 245, 13, 254, 132,\n\t\t231, 21, 62, 130, 27, 109, 34, 187, 52, 80, 181, 238, 76,\n\t\t161, 152, 241, 20, 130, 71, 105, 2, 55, 247, 241, 216, 91,\n\t\t192, 238, 104, 130, 197, 24, 9, 202, 55, 8, 8, 158, 143, 155,\n\t\t118, 48, 100, 73, 216, 131, 25, 16, 239, 59, 119, 44, 189,\n\t\t203, 1, 118, 48, 192, 190, 63, 211, 33, 134, 76, 119, 217,\n\t\t48, 66, 170, 185, 42, 203, 5, 85, 237, 178, 98, 112, 84, 86,\n\t\t254, 160, 27, 221, 117, 221, 78, 233, 175, 128, 195, 152,\n\t\t43, 189, 6, 149, 150, 162, 254, 116, 43, 151, 234, 42, 173,\n\t\t11, 18, 90, 154, 97, 37, 84, 100, 36, 37, 131, 223, 31, 249,\n\t\t254, 103, 178, 0, 107, 244, 97, 167, 224, 136, 9, 108, 97,\n\t\t154, 113, 185, 160, 188, 22, 216, 111, 105, 40, 99, 197, 207,\n\t\t36, 57, 151, 214, 197, 143, 116, 173, 62, 72, 240, 20, 205,\n\t\t97, 143, 15, 105, 175, 141, 193, 117, 204, 250, 9, 179, 78,\n\t\t95, 48, 55, 73, 41, 199, 146, 170, 54, 0, 206, 101, 14, 31,\n\t\t162, 152, 192, 146, 14, 94, 131, 182, 244, 75, 63, 117, 234,\n\t\t131, 128, 45, 66, 115, 59, 144, 183, 99, 191, 222, 95, 136,\n\t\t172, 73, 10, 106, 68, 38, 131, 124, 242, 114, 144, 221, 240,\n\t\t51, 49, 239, 2, 97, 98, 234, 76, 216, 100, 136, 119, 236,\n\t\t99, 10, 91, 43, 103, 31, 95, 54, 4, 253, 173, 64, 92, 135,\n\t\t167, 36, 141, 229, 58, 20, 96, 121, 89, 80, 58, 93, 248, 234,\n\t\t75, 39, 11, 189, 231, 48, 160, 67, 167, 24, 6, 14, 112, 187,\n\t\t10, 45, 32, 227, 239, 51, 139, 77, 235, 51, 214, 80, 164,\n\t\t51, 217, 121, 148, 235, 205, 108, 205, 176, 159, 1, 124, 244,\n\t\t14, 36, 51, 108, 245, 87, 131, 191, 107, 214, 210, 86, 168,\n\t\t64, 231, 90, 245, 113, 5, 48, 218, 25, 65, 181, 96, 238, 115,\n\t\t93, 93, 230, 81, 195, 153, 196, 31, 182, 31, 99, 164, 81,\n\t\t110, 6, 122, 14, 204, 113, 185, 30, 123, 23, 239, 239, 213,\n\t\t167, 143, 169, 215, 50, 105, 30, 222, 98, 211, 55, 19, 126,\n\t\t2, 186, 105, 39, 32, 110, 76, 243, 50, 57, 116, 11, 242, 103,\n\t\t187, 117, 70, 196, 40, 13, 219, 137, 53, 118, 179, 201, 179,\n\t\t117, 155, 122, 88, 132, 107, 103, 130, 166, 93, 166, 96, 53,\n\t\t177, 158, 60, 0, 205, 79, 235, 180, 39, 207, 64, 11, 83, 239,\n\t\t47, 167, 149, 213, 24, 54, 211, 143, 132, 180, 185, 93, 54,\n\t\t234, 97, 61, 243, 158, 105, 76, 109, 103, 126, 21, 210, 113,\n\t\t18, 197, 151, 32, 159, 120, 183, 248, 216, 107, 204, 174,\n\t\t215, 170, 191, 196, 173, 72, 74, 96, 184, 17, 5, 146, 38,\n\t\t206, 38, 222, 164, 196, 82, 1, 12, 18, 203, 103, 178, 24,\n\t\t222, 149, 137, 179, 72, 248, 125, 24, 248, 234, 219, 48, 80,\n\t\t104, 116, 153, 10, 127, 177, 214, 81, 35, 133, 59, 167, 145,\n\t\t164, 80, 83, 27, 144, 230, 107, 88, 48, 252, 107, 23, 104,\n\t\t121, 61, 161, 184, 237, 168, 242, 87, 133, 34, 251, 50, 189,\n\t\t140, 71, 120, 236, 202, 203, 203, 224, 243, 49, 51, 36, 111,\n\t\t170, 91, 228, 236, 249, 21, 8, 184, 120, 5, 90, 57, 144, 113,\n\t\t40, 103, 127, 90, 88, 85, 228, 87, 95, 240, 214, 120, 59,\n\t\t56, 40, 161, 30, 195, 71, 195, 106, 214, 157, 50, 254, 245,\n\t\t228, 3, 225, 223, 203, 90, 245, 149, 205, 241, 111, 111, 69,\n\t\t89, 245, 140, 242, 155, 52, 30, 88, 69, 158, 83, 26, 62, 189,\n\t\t91, 120, 150, 60, 63, 73, 114, 125, 96, 91, 185, 95, 98, 89,\n\t\t249, 92, 194, 196, 171, 29, 149, 241, 166, 237, 54, 81, 252,\n\t\t46, 191, 46, 224, 133, 114, 223, 250, 46, 155, 70, 181, 54,\n\t\t22, 81, 217, 216, 22, 9, 132, 177, 167, 80, 134, 144, 188,\n\t\t113, 233, 82, 113, 110, 48, 33, 174, 82, 186, 98, 21, 57,\n\t\t226, 184, 254, 211, 122, 74, 69, 242, 197, 103, 142, 242,\n\t\t211, 81, 53, 238, 50, 114, 31, 98, 98, 35, 8, 63, 182, 81,\n\t\t27, 57, 214, 132, 220, 123, 195, 187, 19, 86, 213, 190, 189,\n\t\t158, 163, 126, 185, 24, 85, 37, 195, 239, 227, 195, 135, 94,\n\t\t100, 165, 204, 22, 123, 234, 114, 128, 36, 62, 140, 234, 140,\n\t\t38, 183, 254, 174, 150, 88, 135, 188, 118, 86, 40, 74, 135,\n\t\t203, 189, 93, 204, 142, 129, 34, 112, 42, 82, 205, 6, 36,\n\t\t225, 215, 138, 165, 255, 67, 180, 0, 88, 101, 105, 69, 107,\n\t\t37, 107, 142, 117, 198, 43, 236, 192, 193, 240, 63, 112, 27,\n\t\t97, 130, 42, 215, 193, 114, 23, 102, 214, 18, 180, 107, 186,\n\t\t140, 113, 140, 139, 25, 189, 0, 122, 219, 67, 176, 104, 129,\n\t\t58, 31, 29, 139, 114, 207, 152, 35, 149, 86, 243, 91, 93,\n\t\t161, 7, 199, 85, 74, 131, 210, 88, 118, 64, 203, 22, 115,\n\t\t134, 79, 197, 37, 230, 215, 218, 156, 195, 155, 214, 175,\n\t\t48, 138, 167, 45, 64, 197, 118, 109, 17, 255, 142, 46, 86,\n\t\t85, 237, 49, 128, 7, 155, 113, 189, 157, 70, 94, 8, 127, 41,\n\t\t98, 127, 158, 189, 245, 236, 223, 115, 196, 249, 11, 164,\n\t\t79, 234, 38, 127, 131, 164, 71, 216, 139, 19, 44, 61, 87,\n\t\t20, 10, 64, 158, 167, 50, 104, 147, 12, 24, 220, 121, 51,\n\t\t22, 35, 155, 195, 146, 84, 225, 152, 143, 244, 56, 146, 118,\n\t\t67, 22, 85, 107, 151, 249, 196, 217, 153, 137, 162, 143, 113,\n\t\t219, 151, 92, 97, 153, 105, 132, 224, 193, 46, 205, 153, 79,\n\t\t179, 39, 15, 56, 76, 189, 46, 71, 198, 246, 161, 41, 34, 14,\n\t\t247, 113, 196, 152, 195, 129, 178, 42, 94, 154, 243, 195,\n\t\t252, 179, 233, 169, 22, 68, 38, 20, 9, 65, 29, 97, 26, 124,\n\t\t67, 51, 169, 2, 171, 42, 239, 139, 186, 121, 124, 89, 77,\n\t\t239, 110, 234, 197, 148, 45, 197, 216, 130, 232, 160, 255,\n\t\t38, 149, 105, 97, 133, 92, 254, 139, 115, 167, 132, 160, 159,\n\t\t188, 89, 78, 178, 195, 255, 131, 108, 221, 33, 202, 177, 193,\n\t\t204, 103, 105, 224, 95, 206, 80, 16, 179, 116, 44, 225, 62,\n\t\t151, 66, 243, 20, 252, 185, 166, 86, 219, 237, 160, 12, 48,\n\t\t247, 220, 217, 180, 134, 0, 28, 242, 140, 108, 15, 231, 30,\n\t\t224, 135, 229, 145, 57, 153, 198, 242, 242, 65, 24, 68, 21,\n\t\t245, 238, 97, 253, 165, 137, 52, 143, 232, 181, 226, 151,\n\t\t216, 101, 199, 156, 186, 136, 136, 61, 177, 122, 210, 40,\n\t\t228, 150, 37, 211, 25, 127, 245, 169, 245, 45, 145, 75, 2,\n\t\t245, 157, 84, 44, 61, 144, 190, 198, 25, 128, 36, 30, 34,\n\t\t169, 25, 139, 194, 30, 136, 50, 4, 133, 51, 238, 10, 68, 118,\n\t\t84, 77, 66, 21, 83, 52, 101, 65, 146, 27, 49, 170, 48, 193,\n\t\t228, 129, 85, 12, 42, 141, 10, 70, 87, 52, 64, 51, 93, 71,\n\t\t76, 13, 48, 180, 97, 61, 74, 192, 138, 25, 197, 149, 246,\n\t\t100, 218, 230, 54, 78, 97, 195, 247, 82, 82, 67, 149, 96,\n\t\t135, 199, 84, 56, 130, 32, 1, 17, 26, 83, 74, 100, 82, 179,\n\t\t25, 253, 107, 4, 52, 160, 224, 250, 13, 36, 155, 10, 22, 218,\n\t\t64, 134, 134, 43, 200, 27, 25, 196, 26, 103, 129, 179, 15,\n\t\t58, 15, 235, 189, 63, 64, 248, 248, 233, 205, 136, 158, 95,\n\t\t240, 53, 32, 13, 104, 53, 243, 206, 142, 175, 46, 41, 30,\n\t\t134, 215, 144, 47, 110, 101, 84, 162, 154, 21, 109, 93, 16,\n\t\t38, 216, 133, 191, 35, 115, 169, 51, 150, 248, 243, 125, 127,\n\t\t201, 198, 199, 205, 200, 138, 156, 219, 165, 53, 124, 136,\n\t\t140, 78, 3, 242, 190, 63, 41, 7, 14, 111, 19, 15, 139, 145,\n\t\t148, 22, 69, 97, 66, 151, 46, 135, 6, 174, 198, 189, 81, 174,\n\t\t230, 66, 168, 36, 211, 85, 166, 84, 191, 182, 84, 129, 76,\n\t\t16, 11, 63, 228, 92, 31, 107, 218, 198, 106, 202, 146, 211,\n\t\t176, 64, 74, 68, 224, 176, 165, 193, 58, 111, 90, 110, 146,\n\t\t165, 193, 104, 245, 4, 9, 226, 54, 4, 90, 189, 232, 108, 177,\n\t\t141, 193, 152, 218, 216, 163, 49, 177, 190, 13, 1, 97, 34,\n\t\t155, 188, 43, 151, 19, 40, 109, 212, 225, 16, 133, 250, 198,\n\t\t142, 77, 123, 107, 229, 90, 123, 56, 157, 126, 253, 238, 82,\n\t\t126, 144, 223, 203, 203, 154, 226, 211, 76, 163, 179, 158,\n\t\t186, 189, 5, 229, 54, 57, 226, 90, 195, 85, 115, 60, 5, 12,\n\t\t45, 105, 243, 71, 114, 167, 233, 115, 232, 99, 106, 98, 2,\n\t\t90, 139, 92, 142, 224, 214, 213, 210, 114, 248, 247, 209,\n\t\t228, 14, 179, 111, 39, 28, 43, 96, 117, 35, 217, 130, 38,\n\t\t129, 68, 104, 40, 79, 227, 225, 123, 202, 10, 127, 128, 11,\n\t\t199, 100, 183, 63, 22, 153, 223, 218, 148, 25, 253, 75, 45,\n\t\t169, 69, 11, 217, 207, 162, 252, 180, 3, 158, 125, 226, 181,\n\t\t2, 234, 186, 160, 170, 232, 240, 110, 203, 197, 244, 25, 186,\n\t\t89, 116, 81, 107, 5, 89, 54, 73, 198, 111, 199, 251, 39, 60,\n\t\t141, 176, 114, 57, 248, 46, 100, 233, 2, 69, 93, 165, 254,\n\t\t105, 6, 25, 243, 55, 228, 234, 60, 187, 171, 132, 171, 50,\n\t\t64, 48, 175, 3, 207, 182, 2, 200, 172, 213, 16, 240, 222,\n\t\t213, 249, 107, 179, 244, 231, 29, 210, 63, 104, 98, 167, 255,\n\t\t165, 27, 86, 32, 218, 77, 106, 81, 42, 150, 235, 4, 169, 137,\n\t\t77, 124, 31, 181, 51, 139, 63, 45, 62, 134, 110, 62, 144,\n\t\t16, 28, 125, 44, 190, 84, 134, 11, 77, 242, 2, 87, 32, 241,\n\t\t2, 48, 48, 139, 37, 17, 161, 11, 154, 249, 80, 158, 70, 245,\n\t\t187, 84, 232, 102, 18, 93, 66, 177, 26, 163, 129, 118, 226,\n\t\t7, 183, 34, 182, 99, 46, 42, 197, 166, 1, 205, 232, 33, 151,\n\t\t82, 126, 2, 151, 167, 79, 86, 183, 76, 75, 154, 28, 122, 210,\n\t\t167, 24, 108, 102, 1, 213, 61, 13, 172, 101, 150, 134, 124,\n\t\t5, 176, 2, 191, 90, 201, 52, 49, 44, 77, 224, 149, 72, 136,\n\t\t29, 54, 78, 248, 178, 97, 209, 44, 104, 205, 109, 167, 153,\n\t\t7, 95, 155, 112, 113, 139, 186, 153, 116, 65, 32, 230, 47,\n\t\t168, 164, 48, 149, 230, 175, 180, 138, 136, 14, 198, 240,\n\t\t113, 116, 91, 9, 237, 32, 123, 19, 47, 253, 144, 93, 135,\n\t\t71, 11, 108, 172, 85, 59, 45, 46, 221, 177, 31, 211, 209,\n\t\t20, 83, 159, 119, 18, 198, 19, 54, 89, 150, 15, 109, 117,\n\t\t245, 191, 202, 173, 28, 224, 200, 55, 217, 101, 60, 198, 11,\n\t\t243, 124, 203, 183, 185, 174, 51, 230, 232, 25, 94, 233, 223,\n\t\t216, 129, 61, 22, 209, 124, 123, 158, 241, 206, 120, 254,\n\t\t118, 198, 119, 28, 42, 24, 242, 156, 152, 132, 204, 241, 135,\n\t\t87, 157, 167, 146, 23, 168, 153, 4, 213, 24, 192, 24, 10,\n\t\t205, 228, 251, 234, 11, 104, 239, 64, 137, 200, 230, 113,\n\t\t5, 1, 11, 100, 126, 24, 164, 177, 244, 16, 180, 249, 80, 29,\n\t\t66, 157, 206, 85, 137, 67, 251, 203, 219, 129, 182, 80, 119,\n\t\t131, 219, 229, 108, 233, 47, 185, 232, 108, 62, 15, 91, 11,\n\t\t194, 135, 103, 253, 218, 182, 249, 60, 176, 254, 2, 225, 163,\n\t\t253, 99, 140, 72, 73, 93, 39, 13, 147, 80, 149, 41, 190, 221,\n\t\t12, 201, 40, 109, 179, 228, 104, 23, 52, 235, 93, 30, 136,\n\t\t111, 51, 194, 60, 147, 201, 251, 225, 14, 212, 4, 255, 79,\n\t\t248, 197, 181, 219, 90, 156, 36, 11, 187, 245, 95, 24, 89,\n\t\t247, 203, 44, 218, 170, 76, 81, 151, 185, 74, 89, 69, 165,\n\t\t92, 15, 16, 153, 44, 6, 145, 96, 78, 175, 148, 215, 93, 118,\n\t\t81, 255, 40, 194, 189, 33, 27, 161, 244, 154, 2, 220, 254,\n\t\t30, 92, 39, 118, 71, 85, 12, 92, 118, 119, 43, 156, 142, 143,\n\t\t169, 232, 50, 223, 215, 57, 213, 147, 179, 70, 61, 227, 35,\n\t\t142, 110, 210, 190, 115, 69, 22, 57, 238, 24, 46, 79, 209,\n\t\t3, 153, 171, 233, 46, 234, 136, 123, 94, 80, 14, 141, 248,\n\t\t207, 198, 199, 252, 226, 217, 79, 241, 234, 213, 202, 82,\n\t\t78, 145, 220, 44, 74, 176, 81, 177, 247, 225, 170, 20, 102,\n\t\t254, 240, 130, 114, 152, 163, 166, 37, 234, 246, 111, 237,\n\t\t103, 54, 117, 183, 250, 72, 28, 191, 67, 115, 202, 176, 82,\n\t\t232, 184, 181, 35, 126, 207, 202, 89, 235, 173, 48, 173, 243,\n\t\t129, 222, 52, 192, 168, 184, 169, 89, 28, 61, 74, 9, 68, 52,\n\t\t238, 6, 127, 120, 132, 126, 196, 201, 179, 175, 166, 170,\n\t\t173, 90, 202, 53, 136, 239, 232, 219, 52, 242, 2, 114, 143,\n\t\t131, 17, 139, 238, 92, 13, 249, 135, 235, 107, 39, 128, 105,\n\t\t158, 56, 97, 140, 66, 74, 18, 54, 127, 14, 194, 135, 56, 89,\n\t\t189, 213, 41, 62, 29, 152, 127, 32, 38, 79, 95, 140, 167,\n\t\t162, 199, 146, 185, 252, 47, 225, 162, 84, 191, 140, 30, 35,\n\t\t12, 89, 128, 92, 138, 44, 74, 254, 64, 153, 33, 52, 138, 187,\n\t\t145, 136, 56, 22, 40, 229, 151, 37, 100, 92, 129, 204, 148,\n\t\t5, 159, 113, 72, 44, 5, 42, 72, 126, 50, 219, 248, 202, 238,\n\t\t18, 191, 183, 110, 217, 11, 153, 245, 150, 220, 205, 158,\n\t\t214, 101, 82, 172, 100, 222, 95, 242, 21, 59, 123, 213, 124,\n\t\t229, 196, 250, 14, 95, 125, 211, 207, 127, 42, 237, 185, 194,\n\t\t213, 161, 81, 56, 95, 139, 204, 247, 243, 237, 15, 249, 224,\n\t\t219, 19, 86, 166, 133, 223, 248, 116, 173, 61, 210, 63, 44,\n\t\t6, 12, 106, 236, 224, 219, 102, 20, 91, 46, 193, 56, 52, 169,\n\t\t19, 70, 20, 101, 135, 14, 50, 121, 1, 227, 209, 177, 202,\n\t\t153, 28, 85, 158, 68, 40, 210, 124, 169, 80, 50, 116, 253,\n\t\t199, 26, 162, 127, 133, 150, 35, 206, 176, 12, 177, 165, 66,\n\t\t142, 140, 115, 44, 137, 37, 9, 74, 31, 235, 70, 56, 18, 11,\n\t\t73, 173, 98, 219, 45, 250, 97, 213, 81, 183, 97, 195, 150,\n\t\t7, 26, 73, 48, 141, 186, 153, 146, 85, 96, 81, 61, 95, 151,\n\t\t5, 107, 116, 191, 111, 86, 220, 131, 137, 38, 179, 166, 70,\n\t\t36, 80, 199, 35, 186, 146, 42, 140, 159, 81, 162, 194, 148,\n\t\t3, 191, 40, 193, 113, 39, 231, 224, 100, 19, 255, 112, 197,\n\t\t72, 132, 79, 161, 174, 164, 92, 222, 174, 252, 43, 89, 49,\n\t\t188, 190, 233, 146, 121, 148, 93, 31, 15, 212, 32, 44, 195,\n\t\t14, 171, 59, 160, 255, 20, 64, 234, 183, 168, 252, 38, 224,\n\t\t89, 80, 131, 14, 237, 24, 237, 20, 160, 248, 124, 137, 221,\n\t\t178, 218, 236, 204, 116, 23, 148, 27, 137, 179, 179, 159,\n\t\t92, 154, 186, 253, 185, 219, 185, 243, 155, 230, 61, 54, 147,\n\t\t160, 228, 112, 56, 206, 48, 183, 120, 74, 241, 196, 41, 4,\n\t\t59, 101, 82, 202, 51, 117, 43, 99, 193, 18, 102, 236, 141,\n\t\t99, 6, 253, 125, 167, 250, 131, 164, 86, 241, 119, 143, 56,\n\t\t33, 228, 113, 77, 32, 254, 11, 123, 217, 29, 94, 1, 103, 58,\n\t\t71, 218, 67, 123, 138, 24, 166, 6, 213, 48, 204, 112, 17,\n\t\t32, 71, 157, 248, 53, 133, 138, 116, 108, 17, 173, 206, 228,\n\t\t88, 93, 138, 70, 85, 18, 122, 34, 108, 165, 161, 197, 221,\n\t\t104, 127, 59, 255, 87, 216, 129, 76, 3, 147, 103, 80, 37,\n\t\t55, 114, 165, 73, 135, 214, 234, 207, 63, 86, 20, 232, 137,\n\t\t43, 191, 229, 121, 190, 199, 197, 98, 180, 16, 234, 226, 69,\n\t\t4, 68, 213, 115, 168, 50, 182, 105, 215, 197, 49, 80, 10,\n\t\t174, 181, 191, 194, 244, 159, 89, 155, 168, 125, 54, 34, 253,\n\t\t226, 33, 19, 191, 44, 155, 117, 108, 152, 167, 150, 21, 56,\n\t\t145, 33, 162, 42, 182, 9, 90, 221, 164, 10, 139, 202, 36,\n\t\t37, 20, 192, 100, 179, 126, 239, 206, 205, 218, 63, 205, 189,\n\t\t28, 134, 109, 126, 155, 114, 172, 52, 68, 28, 60, 137, 177,\n\t\t97, 112, 124, 45, 72, 136, 80, 41, 216, 204, 16, 104, 30,\n\t\t212, 110, 165, 70, 202, 242, 228, 140, 41, 70, 102, 51, 249,\n\t\t229, 124, 191, 134, 63, 141, 27, 237, 185, 146, 107, 135,\n\t\t202, 159, 41, 223, 11, 1, 178, 71, 176, 87, 64, 231, 166,\n\t\t221, 5, 150, 144, 178, 146, 198, 32, 198, 228, 12, 196, 54,\n\t\t84, 221, 9, 83, 67, 135, 231, 41, 99, 52, 232, 228, 102, 214,\n\t\t226, 224, 35, 37, 51, 158, 20, 225, 121, 128, 41, 23, 134,\n\t\t64, 232, 16, 212, 129, 157, 171, 210, 81, 71, 215, 178, 101,\n\t\t81, 57, 188, 204, 198, 65, 116, 121, 197, 16, 138, 170, 50,\n\t\t84, 56, 249, 71, 214, 44, 90, 16, 130, 30, 65, 125, 152, 114,\n\t\t145, 204, 98, 111, 55, 130, 99, 28, 111, 23, 211, 106, 179,\n\t\t123, 224, 250, 234, 96, 156, 137, 210, 117, 33, 217, 112,\n\t\t45, 32, 200, 245, 170, 51, 111, 108, 159, 78, 110, 70, 166,\n\t\t124, 49, 139, 49, 38, 85, 76, 196, 102, 76, 108, 72, 140,\n\t\t127, 109, 55, 221, 63, 89, 120, 31, 170, 56, 59, 245, 224,\n\t\t30, 32, 189, 205, 132, 16, 239, 207, 199, 235, 177, 165, 93,\n\t\t166, 248, 192, 141, 228, 69, 0, 2, 133, 221, 190, 253, 132,\n\t\t196, 28, 73, 27, 172, 30, 54, 29, 25, 84, 116, 213, 36, 136,\n\t\t85, 219, 114, 157, 208, 204, 99, 100, 42, 247, 54, 58, 59,\n\t\t74, 209, 42, 182, 244, 170, 64, 36, 18, 94, 60, 231, 219,\n\t\t201, 167, 49, 63, 87, 207, 84, 40, 185, 182, 180, 138, 27,\n\t\t103, 178, 195, 249, 61, 138, 57, 39, 242, 38, 143, 60, 103,\n\t\t37, 11, 170, 229, 15, 232, 43, 237, 189, 231, 183, 171, 234,\n\t\t51, 199, 12, 14, 228, 245, 192, 162, 4, 221, 101, 75, 81,\n\t\t172, 224, 80, 72, 68, 142, 140, 233, 14, 47, 28, 241, 59,\n\t\t164, 112, 92, 130, 31, 163, 178, 246, 47, 61, 54, 155, 214,\n\t\t180, 229, 130, 34, 98, 126, 76, 39, 116, 51, 32, 112, 84,\n\t\t118, 179, 92, 133, 4, 138, 246, 181, 218, 44, 164, 134, 253,\n\t\t218, 66, 34, 34, 204, 77, 254, 214, 123, 104, 62, 225, 21,\n\t\t47, 208, 248, 105, 140, 209, 214, 209, 32, 96, 46, 142, 207,\n\t\t142, 81, 9, 146, 238, 232, 36, 9, 67, 198, 183, 113, 135,\n\t\t149, 110, 217, 183, 6, 70, 102, 183, 52, 232, 158, 1, 28,\n\t\t226, 229, 166, 63, 180, 206, 133, 202, 45, 190, 159, 86, 153,\n\t\t235, 204, 172, 244, 138, 180, 226, 218, 58, 43, 1, 252, 24,\n\t\t111, 161, 5, 148, 100, 41, 39, 54, 239, 154, 211, 33, 154,\n\t\t234, 121, 98, 153, 199, 7, 50, 127, 91, 114, 34, 13, 143,\n\t\t224, 43, 158, 44, 80, 219, 86, 101, 146, 54, 146, 76, 216,\n\t\t95, 244, 225, 32, 249, 19, 213, 215, 134, 68, 21, 121, 254,\n\t\t221, 149, 188, 86, 47, 10, 247, 146, 176, 35, 120, 59, 106,\n\t\t39, 236, 144, 221, 171, 122, 181, 238, 120, 238, 34, 53, 214,\n\t\t167, 86, 217, 154, 26, 126, 200, 182, 17, 51, 105, 217, 178,\n\t\t69, 250, 126, 138, 168, 28, 157, 32, 50, 57, 205, 14, 237,\n\t\t9, 156, 194, 140, 112, 152, 119, 154, 94, 181, 132, 92, 141,\n\t\t65, 105, 154, 197, 51, 141, 50, 33, 2, 202, 192, 38, 14, 153,\n\t\t91, 86, 6, 41, 7, 23, 216, 124, 199, 191, 64, 32, 98, 200,\n\t\t228, 139, 130, 184, 5, 172, 253, 101, 8, 108, 179, 70, 202,\n\t\t113, 94, 132, 4, 112, 189, 206, 83, 68, 14, 137, 177, 23,\n\t\t230, 211, 37, 85, 107, 168, 155, 254, 128, 249, 237, 28, 130,\n\t\t48, 228, 141, 188, 41, 174, 154, 79, 92, 117, 192, 15, 207,\n\t\t23, 34, 128, 168, 72, 151, 247, 95, 19, 209, 84, 23, 31, 43,\n\t\t244, 236, 93, 36, 141, 85, 234, 126, 158, 213, 249, 170, 173,\n\t\t147, 5, 169, 214, 211, 153, 158, 33, 79, 229, 144, 89, 207,\n\t\t53, 70, 0, 131, 218, 102, 138, 193, 50, 48, 137, 65, 150,\n\t\t141, 237, 121, 179, 140, 105, 151, 212, 166, 62, 171, 157,\n\t\t158, 255, 60, 45, 77, 186, 62, 230, 81, 96, 237, 140, 160,\n\t\t128, 88, 194, 171, 52, 104, 77, 30, 250, 64, 225, 47, 107,\n\t\t85, 130, 131, 34, 127, 217, 171, 232, 70, 212, 206, 191, 218,\n\t\t45, 31, 179, 72, 75, 79, 166, 174, 89, 79, 36, 142, 93, 171,\n\t\t153, 122, 203, 169, 83, 79, 155, 137, 205, 59, 111, 210, 172,\n\t\t92, 39, 74, 190, 179, 253, 157, 88, 151, 100, 53, 210, 188,\n\t\t101, 138, 137, 167, 187, 224, 161, 19, 194, 82, 4, 181, 46,\n\t\t239, 125, 99, 26, 244, 136, 95, 46, 157, 149, 148, 195, 160,\n\t\t160, 180, 187, 214, 254, 140, 121, 186, 195, 37, 90, 48, 13,\n\t\t155, 195, 118, 205, 196, 163, 100, 121, 156, 213, 245, 115,\n\t\t33, 230, 201, 140, 184, 122, 229, 106, 20, 45, 171, 131, 170,\n\t\t181, 169, 208, 47, 217, 123, 250, 3, 174, 146, 78, 222, 68,\n\t\t97, 76, 102, 27, 33, 5, 154, 87, 166, 228, 178, 203, 31, 185,\n\t\t60, 122, 112, 48, 99, 247, 201, 158, 183, 72, 146, 173, 122,\n\t\t221, 98, 38, 113, 17, 122, 126, 119, 188, 89, 188, 142, 63,\n\t\t248, 98, 49, 131, 234, 235, 139, 33, 14, 155, 107, 113, 217,\n\t\t224, 82, 217, 84, 113, 38, 74, 33, 102, 21, 30, 133, 129,\n\t\t177, 153, 106, 225, 237, 125, 209, 8, 111, 235, 205, 148,\n\t\t13, 204, 183, 181, 104, 150, 111, 26, 136, 111, 116, 157,\n\t\t222, 3, 14, 238, 65, 63, 2, 87, 36, 95, 100, 13, 100, 143,\n\t\t125, 79, 71, 163, 16, 194, 23, 187, 81, 134, 230, 128, 64,\n\t\t62, 219, 240, 189, 176, 174, 12, 43, 175, 175, 149, 4, 42,\n\t\t68, 12, 141, 90, 126, 151, 206, 104, 55, 202, 28, 27, 109,\n\t\t159, 111, 84, 193, 85, 194, 12, 92, 36, 189, 75, 97, 169,\n\t\t197, 144, 181, 255, 165, 199, 135, 31, 232, 197, 153, 210,\n\t\t169, 105, 253, 38, 112, 193, 234, 53, 6, 95, 118, 194, 132,\n\t\t231, 58, 251, 130, 214, 81, 134, 93, 84, 85, 245, 239, 246,\n\t\t57, 181, 93, 143, 15, 96, 136, 214, 237, 123, 195, 213, 12,\n\t\t119, 38, 161, 150, 222, 210, 134, 180, 84, 46, 189, 253, 7,\n\t\t127, 173, 100, 197, 50, 154, 37, 246, 247, 5, 184, 116, 174,\n\t\t74, 240, 235, 66, 236, 146, 22, 58, 72, 210, 232, 243, 130,\n\t\t185, 123, 134, 14, 166, 4, 216, 14, 225, 250, 120, 59, 254,\n\t\t238, 6, 99, 126, 7, 163, 10, 34, 26, 4, 19, 216, 120, 240,\n\t\t27, 37, 151, 4, 35, 131, 40, 211, 149, 124, 208, 75, 228,\n\t\t246, 248, 153, 22, 239, 244, 89, 194, 243, 218, 161, 142,\n\t\t197, 229, 169, 55, 66, 100, 142, 225, 56, 238, 71, 97, 23,\n\t\t178, 150, 5, 149, 178, 137, 220, 126, 22, 31, 112, 180, 108,\n\t\t226, 89, 187, 57, 120, 233, 114, 178, 176, 81, 195, 205, 236,\n\t\t58, 196, 108, 115, 186, 130, 39, 236, 221, 224, 42, 35, 107,\n\t\t242, 209, 69, 12, 109, 42, 194, 27, 250, 81, 141, 190, 29,\n\t\t223, 147, 76, 17, 173, 101, 37, 62, 219, 156, 133, 218, 40,\n\t\t88, 33, 172, 104, 209, 244, 207, 141, 113, 13, 136, 185, 182,\n\t\t201, 246, 19, 97, 202, 79, 57, 45, 15, 240, 146, 127, 239,\n\t\t37, 113, 194, 158, 50, 180, 151, 41, 56, 17, 2, 215, 146,\n\t\t97, 225, 24, 89, 20, 245, 59, 13, 101, 195, 52, 120, 22, 137,\n\t\t62, 218, 142, 34, 219, 239, 165, 98, 3, 228, 151, 210, 208,\n\t\t80, 37, 33, 44, 20, 160, 99, 94, 65, 87, 189, 18, 143, 25,\n\t\t94, 190, 137, 239, 234, 192, 87, 167, 248, 89, 82, 15, 67,\n\t\t238, 155, 146, 119, 60, 255, 210, 44, 171, 214, 194, 188,\n\t\t147, 137, 55, 89, 191, 158, 174, 255, 57, 18, 234, 230, 215,\n\t\t92, 95, 17, 55, 247, 140, 49, 25, 55, 160, 216, 233, 94, 62,\n\t\t230, 139, 102, 109, 19, 210, 58, 8, 218, 172, 127, 69, 118,\n\t\t232, 77, 199, 83, 57, 248, 120, 21, 87, 36, 234, 104, 59,\n\t\t69, 13, 87, 158, 227, 252, 24, 94, 57, 165, 194, 52, 175,\n\t\t131, 179, 168, 79, 209, 92, 182, 230, 53, 90, 115, 185, 193,\n\t\t237, 218, 67, 234, 122, 129, 218, 123, 22, 185, 251, 50, 140,\n\t\t152, 224, 63, 255, 49, 151, 193, 174, 183, 57, 156, 143, 255,\n\t\t52, 235, 190, 217, 121, 182, 99, 153, 86, 255, 153, 124, 47,\n\t\t210, 107, 139, 114, 59, 238, 41, 175, 114, 206, 61, 242, 129,\n\t\t113, 209, 170, 102, 169, 18, 226, 24, 112, 170, 185, 213,\n\t\t215, 52, 55, 170, 17, 145, 235, 251, 13, 243, 153, 50, 196,\n\t\t187, 54, 12, 44, 254, 56, 181, 192, 120, 145, 148, 108, 37,\n\t\t29, 236, 217, 42, 144, 161, 131, 81, 28, 158, 161, 131, 98,\n\t\t61, 235, 144, 62, 156, 192, 31, 169, 213, 198, 127, 248, 151,\n\t\t139, 60, 1, 74, 210, 211, 229, 195, 47, 109, 85, 136, 187,\n\t\t203, 47, 191, 147, 0, 205, 84, 21, 229, 177, 237, 72, 76,\n\t\t54, 117, 248, 222, 221, 11, 172, 67, 247, 160, 249, 22, 205,\n\t\t149, 246, 126, 97, 12, 146, 83, 3, 227, 210, 250, 66, 161,\n\t\t93, 18, 175, 162, 74, 22, 126, 210, 18, 216, 110, 133, 234,\n\t\t247, 154, 147, 86, 234, 240, 22, 55, 221, 17, 242, 212, 94,\n\t\t179, 252, 169, 158, 166, 168, 116, 233, 146, 147, 116, 15,\n\t\t201, 206, 246, 19, 130, 199, 244, 83, 41, 238, 134, 117, 128,\n\t\t40, 199, 106, 187, 26, 130, 230, 249, 81, 198, 101, 173, 81,\n\t\t141, 110, 82, 187, 118, 59, 212, 151, 59, 89, 243, 101, 21,\n\t\t35, 209, 116, 6, 176, 165, 89, 228, 1, 221, 115, 11, 228,\n\t\t169, 85, 237, 73, 14, 80, 112, 213, 7, 117, 187, 77, 143,\n\t\t159, 153, 33, 224, 231, 237, 243, 125, 184, 24, 191, 30, 106,\n\t\t50, 153, 2, 172, 51, 25, 123, 32, 176, 11, 197, 53, 173, 55,\n\t\t186, 188, 245, 14, 166, 66, 115, 230, 95, 254, 49, 156, 154,\n\t\t90, 120, 103, 58, 220, 44, 134, 119, 25, 215, 162, 216, 76,\n\t\t251, 173, 63, 170, 131, 240, 186, 126, 222, 210, 238, 128,\n\t\t232, 64, 168, 111, 169, 95, 245, 61, 213, 60, 36, 251, 40,\n\t\t213, 39, 242, 221, 7, 182, 244, 168, 38, 185, 206, 181, 210,\n\t\t157, 166, 108, 44, 141, 230, 213, 50, 215, 27, 146, 46, 120,\n\t\t201, 35, 43, 127, 214, 115, 137, 143, 236, 111, 105, 171,\n\t\t114, 253, 197, 243, 152, 191, 103, 20, 248, 226, 1, 99, 52,\n\t\t248, 102, 9, 225, 110, 94, 28, 139, 149, 41, 88, 16, 187,\n\t\t197, 216, 219, 166, 236, 208, 45, 224, 142, 181, 102, 142,\n\t\t91, 130, 25, 74, 149, 110, 49, 162, 82, 50, 97, 138, 149,\n\t\t220, 142, 21, 221, 214, 66, 229, 133, 139, 168, 92, 246, 175,\n\t\t146, 131, 216, 191, 181, 167, 245, 194, 25, 168, 62, 200,\n\t\t221, 132, 156, 210, 64, 36, 162, 234, 250, 212, 40, 122, 112,\n\t\t239, 112, 194, 215, 213, 154, 56, 141, 30, 209, 97, 178, 231,\n\t\t32, 87, 58, 174, 233, 109, 201, 96, 64, 101, 38, 145, 26,\n\t\t122, 36, 50, 132, 248, 234, 61, 217, 214, 74, 136, 126, 217,\n\t\t210, 50, 232, 52, 19, 228, 120, 248, 53, 22, 130, 188, 129,\n\t\t238, 246, 117, 151, 212, 75, 88, 198, 235, 110, 18, 73, 119,\n\t\t43, 30, 171, 75, 104, 151, 238, 167, 109, 39, 28, 113, 227,\n\t\t122, 176, 155, 239, 219, 52, 203, 220, 192, 192, 185, 88,\n\t\t33, 186, 249, 231, 84, 162, 183, 254, 11, 121, 144, 25, 138,\n\t\t251, 181, 217, 55, 173, 16, 75, 193, 216, 137, 162, 16, 100,\n\t\t238, 99, 119, 192, 189, 50, 250, 51, 215, 69, 29, 185, 229,\n\t\t75, 154, 243, 59, 252, 94, 255, 96, 47, 228, 63, 116, 206,\n\t\t120, 10, 100, 157, 250, 103, 104, 6, 8, 53, 20, 172, 99, 41,\n\t\t141, 128, 20, 248, 65, 145, 246, 175, 195, 120, 244, 224,\n\t\t216, 182, 81, 68, 57, 104, 112, 251, 1, 14, 234, 115, 115,\n\t\t89, 174, 90, 170, 162, 170, 239, 49, 77, 160, 139, 84, 75,\n\t\t79, 241, 147, 234, 255, 3, 0, 64, 255, 191, 51, 44, 24, 232,\n\t\t123, 134, 0, 143, 214, 136, 113, 135, 170, 188, 85, 85, 223,\n\t\t170, 168, 19, 170, 178, 184, 168, 168, 147, 109, 223, 4, 125,\n\t\t227, 225, 176, 63, 130, 245, 248, 187, 92, 130, 112, 62, 109,\n\t\t58, 9, 168, 101, 13, 194, 82, 174, 23, 75, 158, 156, 29, 246,\n\t\t69, 237, 0, 159, 142, 76, 57, 81, 122, 35, 80, 233, 212, 25,\n\t\t35, 85, 189, 108, 46, 91, 201, 235, 17, 49, 181, 225, 64,\n\t\t202, 56, 163, 220, 69, 141, 1, 253, 186, 162, 235, 202, 175,\n\t\t19, 27, 64, 196, 0, 208, 203, 197, 200, 240, 174, 201, 177,\n\t\t131, 113, 197, 52, 94, 241, 50, 237, 64, 48, 160, 61, 140,\n\t\t163, 3, 158, 121, 32, 235, 48, 142, 233, 122, 12, 31, 182,\n\t\t152, 81, 32, 34, 171, 248, 85, 94, 69, 127, 66, 101, 81, 234,\n\t\t208, 75, 38, 189, 93, 2, 38, 102, 189, 129, 190, 154, 154,\n\t\t52, 190, 166, 100, 210, 238, 153, 120, 82, 115, 209, 87, 140,\n\t\t73, 216, 162, 66, 166, 156, 8, 159, 41, 140, 235, 190, 254,\n\t\t218, 42, 143, 209, 215, 233, 121, 72, 159, 13, 156, 90, 8,\n\t\t87, 25, 243, 185, 223, 22, 78, 36, 212, 0, 250, 154, 73, 117,\n\t\t162, 8, 187, 7, 177, 76, 55, 229, 7, 111, 127, 214, 215, 250,\n\t\t242, 194, 127, 177, 137, 90, 66, 219, 196, 100, 200, 153,\n\t\t232, 81, 242, 65, 8, 33, 165, 19, 211, 250, 251, 7, 151, 54,\n\t\t81, 195, 105, 155, 126, 218, 214, 15, 163, 178, 229, 68, 178,\n\t\t124, 23, 119, 25, 213, 143, 197, 196, 20, 26, 213, 111, 163,\n\t\t18, 24, 212, 206, 38, 106, 212, 38, 144, 103, 242, 147, 46,\n\t\t46, 98, 121, 179, 49, 193, 211, 40, 223, 98, 153, 47, 11,\n\t\t20, 246, 13, 167, 45, 167, 99, 40, 18, 24, 207, 164, 166,\n\t\t45, 77, 114, 83, 147, 243, 147, 102, 194, 138, 15, 194, 115,\n\t\t48, 30, 219, 16, 139, 165, 177, 142, 66, 137, 32, 132, 91,\n\t\t223, 167, 20, 185, 75, 221, 255, 96, 212, 121, 37, 49, 162,\n\t\t140, 36, 44, 91, 230, 37, 69, 82, 212, 225, 120, 118, 114,\n\t\t50, 27, 30, 140, 74, 79, 225, 145, 36, 241, 39, 71, 240, 105,\n\t\t93, 230, 5, 93, 13, 196, 164, 104, 38, 12, 113, 147, 148,\n\t\t213, 217, 122, 27, 125, 160, 134, 199, 248, 20, 168, 252,\n\t\t32, 2, 24, 227, 50, 203, 198, 212, 46, 44, 19, 32, 100, 162,\n\t\t84, 76, 172, 202, 245, 204, 123, 118, 153, 250, 156, 161,\n\t\t82, 87, 182, 76, 12, 154, 208, 245, 232, 210, 115, 247, 138,\n\t\t170, 142, 19, 169, 193, 113, 106, 196, 110, 60, 50, 178, 57,\n\t\t50, 174, 40, 86, 121, 189, 232, 191, 133, 53, 216, 218, 205,\n\t\t22, 42, 2, 138, 105, 68, 129, 68, 87, 221, 11, 137, 84, 154,\n\t\t104, 243, 8, 249, 246, 71, 229, 245, 162, 91, 31, 193, 228,\n\t\t27, 186, 216, 33, 15, 135, 210, 190, 48, 102, 119, 211, 251,\n\t\t213, 166, 168, 22, 67, 196, 49, 187, 197, 57, 230, 136, 162,\n\t\t92, 205, 51, 190, 67, 148, 97, 38, 0, 91, 240, 183, 245, 63,\n\t\t157, 191, 37, 81, 40, 36, 128, 112, 208, 204, 192, 160, 109,\n\t\t39, 163, 99, 113, 123, 192, 9, 202, 182, 50, 170, 8, 242,\n\t\t214, 93, 27, 203, 229, 141, 101, 180, 250, 138, 102, 102,\n\t\t42, 233, 68, 116, 153, 76, 27, 45, 154, 75, 26, 122, 48, 18,\n\t\t140, 166, 2, 118, 8, 146, 101, 33, 249, 43, 91, 239, 24, 222,\n\t\t48, 60, 188, 161, 141, 227, 115, 4, 199, 39, 114, 166, 92,\n\t\t163, 218, 123, 162, 213, 167, 64, 225, 215, 197, 113, 28,\n\t\t197, 48, 148, 19, 138, 65, 159, 15, 131, 83, 223, 60, 50,\n\t\t178, 121, 36, 118, 218, 80, 42, 36, 234, 59, 222, 19, 28,\n\t\t244, 200, 8, 121, 199, 238, 55, 91, 229, 206, 80, 28, 212,\n\t\t237, 104, 106, 121, 247, 105, 70, 4, 111, 81, 157, 161, 87,\n\t\t135, 29, 51, 53, 2, 159, 77, 109, 94, 51, 167, 216, 241, 253,\n\t\t110, 45, 24, 36, 196, 83, 0, 86, 118, 7, 207, 222, 196, 221,\n\t\t216, 133, 103, 99, 183, 83, 101, 152, 6, 37, 217, 51, 134,\n\t\t207, 154, 212, 40, 117, 90, 7, 179, 199, 37, 103, 1, 85, 169,\n\t\t253, 1, 81, 29, 153, 147, 232, 0, 48, 209, 39, 223, 58, 18,\n\t\t89, 81, 136, 74, 151, 165, 106, 155, 162, 228, 57, 167, 74,\n\t\t19, 60, 208, 239, 99, 146, 74, 45, 59, 39, 54, 212, 168, 140,\n\t\t204, 78, 85, 44, 139, 188, 32, 12, 139, 42, 26, 34, 17, 143,\n\t\t152, 60, 10, 68, 226, 137, 72, 32, 16, 8, 155, 106, 32, 29,\n\t\t80, 205, 169, 193, 210, 166, 68, 48, 159, 21, 17, 71, 217,\n\t\t70, 151, 28, 160, 15, 101, 65, 148, 101, 113, 129, 153, 252,\n\t\t127, 249, 165, 44, 110, 27, 22, 36, 105, 155, 167, 240, 111,\n\t\t234, 74, 164, 144, 136, 134, 130, 65, 172, 153, 97, 67, 137,\n\t\t168, 129, 104, 106, 98, 100, 104, 192, 114, 29, 163, 167,\n\t\t79, 174, 255, 213, 250, 4, 245, 246, 137, 240, 95, 222, 37,\n\t\t177, 124, 62, 190, 94, 135, 172, 188, 216, 14, 105, 45, 251,\n\t\t61, 50, 48, 153, 118, 163, 246, 218, 238, 240, 246, 103, 14,\n\t\t125, 132, 139, 192, 142, 4, 251, 51, 21, 96, 131, 237, 216,\n\t\t23, 188, 33, 27, 116, 1, 122, 167, 129, 254, 247, 187, 78,\n\t\t27, 70, 235, 3, 142, 185, 100, 154, 136, 51, 203, 230, 138,\n\t\t217, 250, 163, 123, 22, 111, 219, 241, 153, 119, 17, 171,\n\t\t104, 75, 16, 3, 209, 16, 91, 158, 122, 195, 226, 118, 95,\n\t\t175, 153, 242, 0, 246, 145, 125, 193, 19, 120, 163, 43, 23,\n\t\t246, 179, 156, 201, 83, 0, 235, 173, 101, 114, 58, 66, 196,\n\t\t158, 136, 177, 190, 138, 27, 133, 216, 154, 119, 14, 40, 147,\n\t\t87, 115, 252, 86, 84, 193, 114, 117, 186, 206, 227, 112, 210,\n\t\t24, 72, 56, 83, 161, 80, 24, 65, 87, 106, 217, 204, 208, 96,\n\t\t220, 28, 202, 39, 67, 3, 33, 199, 1, 28, 210, 14, 55, 79,\n\t\t100, 74, 169, 68, 126, 40, 146, 31, 25, 201, 233, 122, 200,\n\t\t30, 86, 167, 63, 108, 15, 132, 146, 249, 161, 120, 62, 31,\n\t\t48, 68, 65, 228, 101, 43, 16, 170, 68, 226, 3, 70, 34, 28,\n\t\t30, 116, 85, 199, 65, 162, 40, 162, 75, 53, 125, 90, 157,\n\t\t118, 19, 105, 40, 161, 18, 14, 133, 5, 209, 208, 69, 113,\n\t\t231, 205, 131, 109, 90, 127, 137, 222, 63, 185, 153, 202,\n\t\t154, 147, 41, 65, 103, 129, 119, 246, 141, 215, 185, 32, 129,\n\t\t29, 168, 249, 198, 100, 220, 40, 181, 38, 83, 253, 1, 17,\n\t\t165, 153, 133, 57, 112, 229, 182, 89, 50, 222, 84, 120, 107,\n\t\t118, 219, 149, 42, 134, 249, 50, 63, 181, 1, 6, 119, 105,\n\t\t182, 188, 66, 120, 245, 43, 229, 99, 42, 174, 204, 95, 175,\n\t\t230, 232, 75, 234, 228, 212, 87, 237, 160, 66, 115, 35, 213,\n\t\t203, 68, 249, 210, 217, 10, 145, 227, 34, 119, 55, 124, 137,\n\t\t127, 43, 236, 195, 5, 216, 237, 56, 137, 64, 254, 146, 135,\n\t\t236, 120, 183, 169, 17, 132, 211, 173, 119, 85, 40, 184, 134,\n\t\t250, 166, 21, 166, 8, 104, 195, 133, 6, 241, 119, 27, 170,\n\t\t163, 25, 207, 255, 62, 125, 252, 254, 108, 57, 49, 150, 144,\n\t\t18, 58, 173, 133, 115, 73, 119, 213, 103, 228, 193, 201, 36,\n\t\t54, 167, 195, 150, 166, 5, 226, 134, 138, 190, 78, 31, 111,\n\t\t31, 47, 207, 194, 55, 43, 166, 229, 196, 18, 140, 27, 63,\n\t\t82, 92, 238, 109, 10, 30, 78, 140, 13, 192, 14, 86, 146, 249,\n\t\t92, 55, 79, 37, 64, 37, 196, 178, 211, 93, 60, 149, 66, 151,\n\t\t62, 186, 103, 11, 176, 125, 47, 105, 52, 2, 128, 212, 240,\n\t\t44, 46, 173, 18, 131, 125, 41, 167, 226, 29, 255, 84, 32,\n\t\t138, 51, 90, 191, 164, 116, 132, 104, 140, 25, 198, 144, 147,\n\t\t34, 4, 19, 249, 81, 51, 199, 236, 236, 159, 150, 59, 203,\n\t\t53, 219, 178, 47, 228, 118, 197, 124, 164, 71, 164, 16, 16,\n\t\t238, 17, 222, 148, 152, 1, 182, 122, 163, 72, 53, 23, 171,\n\t\t51, 141, 246, 133, 146, 159, 37, 247, 1, 62, 162, 149, 131,\n\t\t73, 91, 167, 247, 62, 13, 15, 138, 105, 57, 38, 135, 113,\n\t\t64, 149, 4, 59, 172, 136, 233, 205, 122, 54, 157, 202, 41,\n\t\t27, 181, 147, 12, 29, 248, 56, 82, 164, 59, 36, 5, 165, 120,\n\t\t43, 41, 134, 99, 131, 22, 149, 166, 254, 143, 108, 77, 73,\n\t\t242, 130, 172, 5, 108, 67, 85, 176, 173, 94, 18, 76, 78, 141,\n\t\t39, 45, 62, 236, 237, 253, 236, 62, 113, 68, 109, 109, 77,\n\t\t251, 214, 225, 34, 228, 84, 65, 206, 247, 24, 226, 161, 42,\n\t\t138, 132, 75, 76, 236, 159, 18, 67, 23, 237, 202, 254, 28,\n\t\t239, 216, 108, 233, 215, 73, 176, 25, 70, 181, 132, 86, 85,\n\t\t85, 247, 152, 102, 10, 83, 82, 194, 56, 86, 188, 97, 161,\n\t\t154, 209, 78, 209, 27, 220, 208, 167, 179, 211, 11, 71, 74,\n\t\t199, 2, 113, 105, 74, 48, 181, 99, 174, 170, 86, 33, 125,\n\t\t212, 212, 100, 233, 122, 205, 218, 178, 29, 243, 31, 166,\n\t\t247, 182, 113, 125, 122, 92, 169, 142, 142, 92, 161, 173,\n\t\t49, 214, 165, 34, 231, 169, 198, 181, 30, 34, 108, 68, 75,\n\t\t81, 110, 184, 1, 112, 13, 197, 198, 167, 60, 173, 184, 43,\n\t\t222, 202, 194, 55, 222, 200, 222, 191, 21, 59, 253, 249, 119,\n\t\t108, 249, 250, 218, 97, 93, 234, 112, 30, 91, 228, 166, 53,\n\t\t217, 123, 84, 253, 139, 200, 223, 215, 125, 179, 219, 217,\n\t\t118, 169, 190, 41, 23, 202, 229, 170, 11, 21, 188, 166, 127,\n\t\t186, 236, 1, 123, 221, 210, 165, 230, 230, 169, 183, 173,\n\t\t83, 128, 111, 238, 112, 109, 207, 181, 231, 51, 63, 15, 120,\n\t\t33, 61, 231, 111, 228, 60, 26, 71, 102, 102, 109, 253, 91,\n\t\t125, 41, 230, 203, 110, 227, 233, 130, 95, 17, 106, 23, 183,\n\t\t243, 5, 97, 235, 151, 124, 195, 251, 1, 69, 150, 118, 40,\n\t\t202, 14, 73, 86, 242, 230, 203, 42, 116, 9, 13, 109, 40, 151,\n\t\t27, 67, 169, 25, 106, 219, 170, 242, 50, 51, 223, 73, 147,\n\t\t177, 222, 245, 169, 119, 89, 136, 163, 172, 148, 165, 32,\n\t\t139, 14, 150, 166, 228, 63, 132, 133, 41, 105, 211, 131, 229,\n\t\t13, 8, 205, 150, 6, 167, 53, 9, 75, 101, 9, 255, 161, 60,\n\t\t85, 242, 83, 237, 185, 242, 202, 61, 40, 211, 171, 171, 237,\n\t\t233, 236, 79, 191, 104, 173, 125, 255, 10, 61, 82, 249, 11,\n\t\t106, 240, 159, 96, 23, 21, 94, 68, 145, 255, 225, 10, 49,\n\t\t224, 72, 156, 139, 241, 150, 214, 177, 16, 212, 197, 91, 122,\n\t\t244, 225, 227, 199, 31, 62, 254, 102, 42, 14, 114, 35, 211,\n\t\t50, 98, 179, 176, 245, 147, 227, 228, 213, 55, 169, 176, 199,\n\t\t107, 168, 2, 17, 229, 107, 43, 220, 93, 48, 79, 20, 175, 28,\n\t\t110, 136, 205, 148, 141, 124, 47, 203, 17, 45, 80, 4, 242,\n\t\t14, 138, 97, 182, 254, 148, 62, 126, 76, 221, 174, 63, 154,\n\t\t95, 236, 252, 83, 220, 35, 237, 122, 251, 181, 222, 204, 179,\n\t\t234, 242, 222, 68, 159, 239, 255, 22, 41, 107, 11, 224, 186,\n\t\t237, 180, 50, 14, 227, 166, 11, 243, 192, 221, 233, 58, 181,\n\t\t42, 64, 198, 129, 26, 26, 32, 204, 220, 222, 152, 30, 205,\n\t\t7, 118, 158, 253, 180, 136, 165, 215, 188, 92, 194, 250, 230,\n\t\t131, 162, 254, 118, 8, 252, 183, 123, 33, 112, 227, 3, 162,\n\t\t222, 47, 120, 201, 88, 164, 88, 122, 249, 107, 36, 44, 230,\n\t\t117, 241, 224, 102, 29, 75, 111, 248, 44, 11, 60, 112, 163,\n\t\t222, 179, 230, 34, 93, 48, 99, 14, 166, 9, 44, 58, 58, 63,\n\t\t26, 30, 176, 56, 46, 195, 191, 51, 70, 44, 230, 155, 157,\n\t\t126, 163, 96, 24, 134, 112, 51, 54, 205, 103, 76, 179, 247,\n\t\t172, 52, 185, 142, 180, 104, 151, 77, 242, 158, 54, 249, 150,\n\t\t201, 123, 235, 254, 156, 103, 161, 188, 215, 62, 198, 224,\n\t\t218, 27, 58, 75, 253, 246, 194, 79, 119, 157, 165, 254, 164,\n\t\t207, 106, 120, 207, 253, 154, 215, 61, 70, 99, 31, 218, 69,\n\t\t211, 28, 211, 125, 29, 67, 175, 172, 20, 57, 241, 236, 47,\n\t\t77, 8, 34, 114, 119, 46, 21, 106, 34, 38, 151, 114, 172, 80,\n\t\t170, 206, 220, 93, 240, 23, 78, 201, 2, 22, 54, 156, 18, 197,\n\t\t134, 116, 52, 77, 200, 57, 226, 19, 93, 220, 123, 195, 231,\n\t\t196, 169, 13, 144, 76, 134, 100, 179, 162, 154, 6, 138, 81,\n\t\t148, 26, 34, 164, 114, 218, 50, 73, 219, 208, 31, 3, 141,\n\t\t213, 164, 54, 164, 96, 245, 2, 138, 216, 101, 251, 216, 87,\n\t\t50, 196, 51, 84, 172, 179, 209, 123, 65, 5, 193, 103, 48,\n\t\t189, 107, 44, 148, 229, 103, 79, 235, 3, 227, 91, 43, 17,\n\t\t67, 116, 212, 193, 209, 212, 248, 174, 189, 147, 3, 250, 105,\n\t\t101, 21, 64, 146, 100, 24, 178, 230, 119, 254, 235, 84, 73,\n\t\t73, 71, 68, 169, 138, 154, 40, 120, 74, 55, 172, 5, 205, 45,\n\t\t109, 42, 27, 1, 28, 187, 124, 120, 100, 174, 24, 85, 23, 44,\n\t\t67, 7, 224, 250, 109, 216, 153, 145, 200, 99, 249, 42, 191,\n\t\t209, 97, 41, 24, 245, 238, 169, 16, 122, 96, 65, 154, 227,\n\t\t230, 16, 155, 90, 254, 121, 129, 84, 159, 64, 65, 122, 64,\n\t\t72, 250, 174, 241, 3, 198, 175, 222, 205, 102, 218, 107, 69,\n\t\t108, 170, 167, 117, 105, 94, 118, 12, 120, 124, 139, 178,\n\t\t178, 145, 68, 39, 157, 160, 88, 146, 48, 47, 233, 167, 13,\n\t\t71, 134, 71, 223, 252, 72, 172, 61, 163, 151, 168, 50, 21,\n\t\t51, 145, 219, 115, 20, 223, 250, 192, 61, 138, 114, 15, 192,\n\t\t226, 127, 87, 228, 158, 3, 248, 21, 26, 79, 141, 132, 246,\n\t\t229, 221, 61, 19, 168, 197, 76, 58, 233, 232, 41, 90, 207,\n\t\t176, 30, 233, 228, 108, 117, 162, 187, 50, 238, 203, 183,\n\t\t223, 222, 154, 77, 231, 52, 93, 125, 149, 117, 190, 239, 91,\n\t\t42, 93, 237, 240, 121, 79, 103, 17, 177, 255, 180, 211, 211,\n\t\t195, 35, 66, 108, 190, 60, 112, 177, 45, 25, 76, 113, 158,\n\t\t52, 79, 48, 98, 95, 26, 152, 82, 120, 178, 235, 251, 210,\n\t\t2, 153, 83, 168, 161, 242, 122, 122, 240, 210, 19, 118, 90,\n\t\t194, 70, 4, 241, 81, 120, 100, 163, 175, 94, 136, 39, 69,\n\t\t137, 71, 134, 160, 71, 66, 229, 57, 235, 237, 64, 216, 201,\n\t\t188, 246, 32, 207, 191, 133, 249, 110, 83, 98, 131, 197, 72,\n\t\t212, 53, 114, 99, 186, 160, 92, 177, 11, 75, 41, 195, 137,\n\t\t98, 41, 109, 52, 23, 37, 36, 98, 97, 76, 231, 197, 114, 94,\n\t\t149, 7, 52, 219, 85, 229, 148, 106, 103, 162, 1, 153, 247,\n\t\t234, 79, 236, 194, 212, 61, 155, 245, 12, 189, 165, 98, 179,\n\t\t158, 105, 107, 34, 91, 26, 245, 106, 110, 138, 109, 29, 36,\n\t\t170, 117, 91, 69, 176, 249, 182, 126, 0, 216, 108, 202, 48,\n\t\t82, 151, 111, 105, 76, 170, 120, 0, 171, 233, 164, 26, 50,\n\t\t117, 44, 30, 48, 140, 3, 175, 199, 210, 18, 209, 58, 99, 120,\n\t\t240, 124, 99, 119, 30, 107, 67, 138, 108, 139, 138, 22, 48,\n\t\t21, 34, 235, 244, 198, 170, 132, 125, 155, 63, 104, 4, 112,\n\t\t201, 109, 128, 45, 80, 235, 68, 184, 109, 137, 35, 71, 5,\n\t\t0, 97, 229, 81, 168, 61, 67, 248, 46, 165, 98, 183, 156, 215,\n\t\t52, 85, 44, 135, 74, 146, 201, 23, 1, 74, 231, 219, 99, 227,\n\t\t150, 177, 113, 136, 73, 225, 20, 101, 94, 206, 105, 90, 208,\n\t\t158, 15, 132, 34, 71, 115, 19, 162, 184, 109, 138, 95, 251,\n\t\t202, 80, 191, 31, 56, 48, 158, 45, 121, 183, 200, 167, 37,\n\t\t83, 2, 170, 71, 11, 5, 162, 114, 90, 155, 201, 77, 237, 238,\n\t\t143, 87, 45, 161, 171, 15, 103, 136, 190, 62, 177, 227, 70,\n\t\t59, 136, 154, 145, 243, 8, 122, 255, 240, 208, 183, 245, 95,\n\t\t244, 240, 3, 152, 224, 4, 68, 207, 236, 81, 165, 77, 134,\n\t\t81, 147, 46, 217, 240, 94, 89, 86, 94, 46, 9, 191, 11, 91,\n\t\t205, 129, 193, 146, 244, 97, 195, 120, 192, 25, 62, 8, 179,\n\t\t0, 149, 13, 180, 20, 12, 65, 127, 205, 238, 226, 223, 33,\n\t\t7, 133, 247, 9, 82, 77, 194, 153, 36, 196, 36, 177, 52, 78,\n\t\t249, 253, 196, 238, 246, 89, 116, 11, 212, 101, 163, 167,\n\t\t247, 237, 85, 134, 160, 86, 3, 109, 19, 235, 109, 35, 229,\n\t\t53, 255, 82, 2, 207, 30, 46, 95, 101, 188, 133, 107, 48, 22,\n\t\t22, 55, 26, 198, 33, 231, 184, 97, 28, 135, 189, 129, 60,\n\t\t156, 67, 134, 177, 113, 81, 192, 120, 155, 34, 52, 146, 188,\n\t\t17, 108, 8, 10, 90, 49, 228, 135, 140, 140, 81, 72, 130, 67,\n\t\t165, 89, 50, 70, 178, 0, 206, 67, 178, 129, 111, 93, 40, 228,\n\t\t111, 197, 92, 123, 109, 19, 217, 167, 97, 130, 55, 53, 242,\n\t\t157, 234, 200, 61, 245, 201, 119, 19, 87, 209, 246, 5, 141,\n\t\t197, 252, 191, 93, 253, 17, 195, 248, 8, 134, 110, 98, 84,\n\t\t19, 96, 121, 198, 71, 155, 251, 247, 127, 224, 210, 161, 114,\n\t\t57, 191, 76, 68, 231, 0, 247, 163, 231, 80, 25, 99, 92, 194,\n\t\t127, 102, 92, 190, 188, 255, 135, 15, 13, 231, 115, 101, 206,\n\t\t215, 215, 110, 210, 117, 122, 25, 247, 50, 238, 21, 220, 17,\n\t\t238, 24, 25, 45, 95, 99, 14, 179, 129, 202, 251, 79, 175,\n\t\t87, 122, 123, 7, 85, 27, 221, 79, 191, 119, 165, 70, 158,\n\t\t220, 178, 57, 7, 19, 52, 239, 146, 196, 165, 188, 140, 221,\n\t\t70, 30, 22, 252, 20, 233, 207, 188, 203, 207, 108, 197, 176,\n\t\t243, 29, 28, 225, 181, 13, 42, 63, 218, 96, 207, 97, 88, 30,\n\t\t187, 148, 57, 195, 168, 132, 161, 252, 17, 141, 15, 253, 186,\n\t\t195, 171, 99, 26, 239, 220, 98, 242, 218, 4, 172, 108, 187,\n\t\t98, 180, 238, 50, 138, 186, 140, 16, 18, 210, 202, 126, 249,\n\t\t77, 9, 94, 224, 13, 94, 56, 105, 148, 12, 65, 64, 136, 79,\n\t\t227, 253, 24, 113, 164, 245, 95, 84, 213, 47, 146, 31, 237,\n\t\t128, 178, 177, 95, 82, 213, 43, 174, 96, 63, 105, 63, 68,\n\t\t60, 84, 175, 79, 26, 177, 147, 153, 140, 170, 27, 134, 254,\n\t\t198, 122, 93, 143, 25, 209, 119, 103, 50, 30, 78, 203, 238,\n\t\t140, 37, 240, 113, 173, 78, 174, 47, 141, 125, 150, 72, 92,\n\t\t107, 173, 51, 4, 37, 125, 106, 101, 89, 214, 240, 117, 24,\n\t\t205, 106, 102, 235, 49, 202, 17, 127, 70, 51, 239, 150, 151,\n\t\t33, 206, 147, 75, 244, 242, 28, 128, 49, 175, 81, 59, 54,\n\t\t107, 114, 182, 187, 78, 217, 186, 109, 27, 119, 69, 215, 26,\n\t\t235, 150, 222, 52, 30, 49, 250, 254, 150, 214, 171, 80, 235,\n\t\t157, 132, 197, 105, 92, 66, 221, 3, 196, 49, 252, 58, 138,\n\t\t231, 159, 63, 255, 151, 232, 83, 48, 39, 138, 128, 55, 190,\n\t\t156, 187, 130, 113, 137, 186, 176, 247, 173, 168, 82, 159,\n\t\t234, 85, 31, 8, 162, 10, 80, 7, 93, 55, 100, 182, 37, 124,\n\t\t11, 81, 147, 239, 154, 67, 158, 202, 166, 139, 171, 37, 116,\n\t\t191, 32, 193, 114, 126, 147, 132, 133, 237, 252, 6, 81, 81,\n\t\t196, 123, 169, 247, 99, 93, 215, 71, 178, 171, 49, 203, 136,\n\t\t216, 78, 27, 82, 121, 117, 84, 225, 213, 33, 25, 243, 27,\n\t\t4, 165, 172, 8, 69, 19, 71, 4, 89, 24, 32, 196, 77, 84, 20,\n\t\t174, 17, 176, 68, 253, 17, 81, 88, 18, 54, 249, 23, 87, 34,\n\t\t202, 211, 107, 173, 174, 8, 178, 40, 168, 169, 148, 170, 201,\n\t\t143, 40, 202, 181, 228, 190, 23, 210, 214, 179, 208, 214,\n\t\t79, 112, 142, 223, 86, 155, 2, 167, 182, 116, 7, 35, 182,\n\t\t208, 139, 235, 128, 198, 5, 219, 122, 115, 167, 53, 222, 37,\n\t\t160, 83, 235, 55, 254, 192, 133, 155, 138, 222, 15, 141, 105,\n\t\t173, 82, 117, 201, 38, 105, 92, 235, 150, 11, 54, 254, 135,\n\t\t107, 219, 42, 145, 113, 245, 108, 56, 15, 1, 76, 222, 65,\n\t\t108, 200, 54, 112, 255, 120, 193, 198, 187, 70, 245, 181,\n\t\t207, 170, 79, 164, 47, 220, 39, 150, 82, 252, 131, 158, 209,\n\t\t131, 246, 142, 119, 93, 113, 119, 78, 197, 180, 9, 171, 184,\n\t\t231, 126, 194, 101, 207, 169, 245, 142, 153, 131, 134, 58,\n\t\t146, 138, 39, 124, 143, 250, 243, 182, 239, 173, 109, 31,\n\t\t231, 181, 241, 44, 213, 83, 237, 106, 163, 221, 240, 136,\n\t\t229, 238, 65, 109, 252, 138, 109, 148, 250, 219, 248, 211,\n\t\t23, 223, 70, 180, 143, 53, 178, 61, 150, 169, 151, 210, 198,\n\t\t206, 250, 76, 67, 11, 183, 145, 57, 203, 206, 73, 215, 61,\n\t\t247, 128, 45, 67, 198, 62, 203, 182, 173, 126, 213, 144, 39,\n\t\t80, 131, 80, 225, 132, 137, 11, 8, 214, 244, 186, 75, 23,\n\t\t213, 28, 69, 29, 21, 165, 65, 9, 39, 200, 204, 250, 117, 226,\n\t\t196, 181, 82, 97, 48, 83, 153, 30, 137, 134, 52, 65, 19, 140,\n\t\t152, 105, 231, 156, 95, 11, 17, 221, 0, 221, 64, 232, 143,\n\t\t214, 44, 222, 203, 34, 170, 50, 12, 147, 243, 141, 222, 252,\n\t\t4, 103, 163, 250, 15, 137, 225, 202, 216, 72, 19, 139, 90,\n\t\t218, 16, 213, 128, 16, 202, 34, 43, 98, 73, 170, 38, 136,\n\t\t253, 203, 214, 111, 243, 95, 211, 117, 250, 95, 216, 230,\n\t\t66, 23, 31, 165, 61, 53, 254, 95, 218, 220, 250, 224, 175,\n\t\t218, 232, 191, 243, 27, 237, 79, 137, 182, 236, 28, 242, 100,\n\t\t206, 118, 172, 213, 228, 106, 43, 120, 56, 20, 113, 38, 102,\n\t\t143, 60, 43, 110, 152, 130, 33, 130, 152, 22, 125, 43, 110,\n\t\t68, 23, 62, 205, 83, 181, 161, 69, 226, 164, 153, 253, 160,\n\t\t67, 25, 116, 67, 60, 111, 35, 69, 12, 200, 154, 33, 27, 218,\n\t\t72, 118, 64, 168, 44, 228, 67, 64, 159, 59, 53, 203, 212,\n\t\t77, 71, 143, 196, 131, 103, 61, 197, 34, 112, 152, 178, 12,\n\t\t122, 93, 124, 43, 134, 157, 220, 14, 77, 132, 156, 97, 51,\n\t\t17, 54, 77, 62, 99, 97, 233, 123, 146, 16, 185, 52, 24, 28,\n\t\t219, 40, 5, 135, 214, 180, 97, 23, 199, 133, 122, 87, 81,\n\t\t173, 238, 201, 26, 145, 218, 150, 136, 33, 83, 218, 178, 105,\n\t\t138, 71, 80, 105, 11, 192, 119, 225, 143, 104, 151, 83, 254,\n\t\t88, 196, 49, 121, 175, 5, 224, 148, 89, 93, 120, 7, 234, 105,\n\t\t166, 6, 45, 0, 168, 161, 252, 66, 69, 136, 196, 135, 98, 10,\n\t\t105, 141, 28, 16, 21, 100, 231, 227, 55, 160, 76, 48, 30,\n\t\t33, 166, 88, 189, 134, 76, 211, 230, 183, 158, 221, 56, 22,\n\t\t12, 148, 71, 67, 2, 84, 28, 91, 25, 36, 5, 244, 112, 194,\n\t\t28, 118, 160, 85, 118, 218, 205, 227, 173, 241, 248, 80, 80,\n\t\t34, 120, 154, 116, 126, 149, 251, 79, 122, 254, 55, 212, 225,\n\t\t81, 216, 209, 190, 91, 101, 24, 39, 55, 74, 52, 64, 221, 27,\n\t\t168, 249, 137, 47, 10, 166, 49, 75, 153, 89, 179, 134, 41,\n\t\t84, 248, 128, 162, 23, 10, 186, 18, 224, 209, 42, 53, 63,\n\t\t209, 250, 35, 35, 76, 71, 229, 88, 216, 88, 197, 122, 40,\n\t\t228, 217, 219, 242, 207, 54, 123, 202, 107, 107, 229, 173,\n\t\t189, 201, 38, 218, 216, 73, 203, 59, 225, 164, 76, 205, 50,\n\t\t181, 166, 102, 90, 154, 153, 114, 160, 52, 175, 164, 155,\n\t\t83, 14, 180, 255, 20, 211, 15, 211, 78, 57, 169, 80, 168,\n\t\t235, 140, 26, 51, 153, 186, 54, 247, 133, 201, 81, 203, 158,\n\t\t188, 170, 103, 56, 119, 198, 55, 104, 200, 132, 79, 9, 200,\n\t\t240, 4, 197, 216, 193, 9, 186, 66, 211, 14, 103, 133, 160,\n\t\t118, 164, 34, 70, 165, 201, 35, 154, 37, 102, 15, 147, 40,\n\t\t49, 168, 31, 153, 148, 252, 168, 235, 9, 151, 109, 31, 202,\n\t\t80, 197, 229, 152, 116, 145, 148, 44, 202, 210, 142, 124,\n\t\t141, 242, 223, 246, 49, 218, 50, 9, 56, 212, 179, 208, 55,\n\t\t49, 0, 248, 84, 171, 135, 25, 1, 196, 84, 7, 12, 170, 5, 211,\n\t\t31, 37, 119, 190, 118, 231, 67, 55, 197, 92, 69, 192, 147,\n\t\t141, 7, 126, 77, 81, 164, 216, 220, 222, 230, 206, 215, 236,\n\t\t186, 233, 33, 145, 183, 164, 196, 225, 250, 225, 215, 133,\n\t\t249, 160, 156, 30, 113, 123, 236, 58, 17, 59, 160, 5, 142,\n\t\t171, 182, 111, 164, 232, 182, 2, 218, 127, 211, 79, 198, 191,\n\t\t36, 112, 133, 80, 114, 199, 12, 212, 117, 217, 12, 145, 128,\n\t\t13, 216, 246, 79, 40, 134, 5, 201, 24, 137, 20, 176, 61, 187,\n\t\t66, 100, 77, 108, 165, 212, 49, 27, 79, 162, 162, 74, 122,\n\t\t90, 206, 123, 72, 94, 174, 109, 30, 204, 55, 53, 76, 200,\n\t\t18, 194, 141, 166, 120, 54, 21, 23, 32, 124, 97, 14, 86, 126,\n\t\t126, 134, 231, 156, 64, 195, 220, 162, 218, 9, 173, 94, 174,\n\t\t26, 49, 163, 90, 174, 107, 9, 91, 221, 98, 54, 2, 142, 29,\n\t\t152, 157, 164, 111, 254, 129, 198, 77, 206, 6, 236, 214, 95,\n\t\t92, 61, 127, 246, 195, 129, 176, 149, 25, 216, 76, 226, 26,\n\t\t153, 159, 25, 198, 207, 50, 13, 146, 108, 243, 64, 198, 10,\n\t\t7, 76, 123, 211, 4, 125, 67, 227, 38, 54, 217, 200, 158, 159,\n\t\t152, 88, 203, 143, 88, 195, 157, 162, 26, 118, 76, 237, 224,\n\t\t244, 58, 28, 141, 204, 133, 184, 20, 253, 231, 19, 193, 46,\n\t\t153, 68, 79, 26, 209, 227, 2, 46, 208, 99, 118, 143, 3, 120,\n\t\t138, 158, 176, 183, 121, 85, 60, 204, 101, 166, 35, 202, 46,\n\t\t94, 44, 78, 82, 115, 150, 84, 156, 132, 24, 138, 36, 38, 28,\n\t\t58, 135, 202, 196, 71, 103, 114, 201, 53, 189, 94, 110, 68,\n\t\t93, 255, 46, 161, 6, 58, 103, 10, 162, 188, 205, 72, 200,\n\t\t115, 239, 52, 194, 124, 38, 60, 24, 142, 231, 145, 25, 183,\n\t\t164, 55, 145, 209, 124, 157, 116, 159, 18, 18, 55, 20, 100,\n\t\t227, 11, 137, 200, 149, 181, 61, 71, 183, 76, 139, 82, 124,\n\t\t112, 126, 98, 100, 171, 60, 151, 146, 3, 66, 86, 86, 141,\n\t\t183, 88, 250, 79, 196, 112, 58, 132, 208, 80, 220, 26, 8,\n\t\t243, 89, 186, 65, 100, 116, 252, 122, 155, 23, 83, 141, 201,\n\t\t141, 71, 247, 52, 174, 34, 118, 185, 171, 131, 19, 243, 141,\n\t\t97, 159, 119, 114, 146, 209, 170, 48, 227, 34, 212, 60, 164,\n\t\t119, 157, 38, 204, 135, 90, 219, 211, 117, 109, 42, 153, 12,\n\t\t109, 15, 179, 125, 143, 238, 0, 24, 254, 250, 27, 22, 141,\n\t\t41, 89, 85, 27, 212, 1, 130, 245, 36, 60, 223, 74, 157, 93,\n\t\t215, 97, 105, 21, 75, 71, 78, 24, 143, 235, 144, 249, 176,\n\t\t198, 27, 105, 223, 179, 211, 48, 170, 3, 204, 159, 78, 251,\n\t\t158, 15, 95, 186, 32, 98, 95, 118, 153, 208, 172, 85, 106,\n\t\t143, 33, 74, 132, 229, 178, 176, 5, 153, 34, 209, 29, 166,\n\t\t92, 9, 66, 194, 215, 152, 11, 53, 137, 84, 107, 211, 105,\n\t\t193, 205, 71, 221, 236, 52, 158, 174, 23, 169, 184, 37, 191,\n\t\t127, 114, 114, 102, 103, 235, 111, 177, 250, 116, 121, 126,\n\t\t116, 164, 145, 179, 156, 20, 177, 162, 151, 114, 172, 92,\n\t\t99, 100, 116, 190, 252, 52, 236, 131, 233, 157, 181, 160,\n\t\t97, 4, 149, 115, 209, 153, 104, 76, 147, 149, 252, 80, 62,\n\t\t186, 188, 92, 72, 54, 99, 229, 152, 5, 191, 102, 178, 176,\n\t\t188, 28, 133, 88, 69, 214, 78, 148, 203, 74, 83, 233, 229,\n\t\t159, 22, 168, 173, 192, 62, 46, 48, 177, 74, 63, 61, 7, 36,\n\t\t125, 131, 16, 208, 89, 194, 231, 142, 74, 50, 54, 197, 220,\n\t\t132, 80, 34, 162, 94, 81, 152, 203, 245, 90, 55, 131, 248,\n\t\t77, 40, 164, 4, 181, 160, 18, 66, 123, 203, 76, 10, 190, 140,\n\t\t98, 209, 61, 200, 82, 173, 32, 252, 135, 248, 61, 81, 166,\n\t\t240, 211, 203, 23, 251, 7, 147, 108, 254, 102, 45, 19, 39,\n\t\t96, 55, 158, 81, 67, 53, 100, 200, 170, 40, 170, 178, 129,\n\t\t106, 161, 119, 49, 201, 56, 82, 103, 11, 234, 124, 14, 234,\n\t\t76, 100, 113, 55, 208, 155, 230, 9, 84, 160, 92, 39, 74, 108,\n\t\t123, 82, 121, 66, 183, 237, 239, 106, 131, 116, 173, 247,\n\t\t155, 166, 54, 231, 54, 33, 116, 78, 137, 17, 234, 56, 166,\n\t\t72, 207, 34, 17, 61, 43, 197, 52, 83, 105, 85, 20, 83, 155,\n\t\t109, 146, 127, 67, 70, 107, 201, 24, 66, 77, 75, 33, 218,\n\t\t115, 138, 37, 241, 135, 16, 58, 196, 183, 190, 1, 219, 134,\n\t\t162, 64, 11, 206, 173, 146, 127, 134, 67, 229, 16, 232, 162,\n\t\t60, 137, 238, 227, 242, 212, 46, 52, 189, 249, 150, 152, 255,\n\t\t167, 230, 179, 124, 107, 9, 244, 242, 41, 162, 149, 208, 40,\n\t\t144, 205, 193, 165, 226, 91, 13, 55, 202, 223, 18, 14, 183,\n\t\t254, 201, 117, 159, 180, 121, 203, 76, 32, 85, 153, 85, 84,\n\t\t148, 48, 45, 20, 170, 132, 195, 200, 117, 93, 237, 126, 243,\n\t\t196, 202, 9, 243, 254, 44, 42, 201, 57, 249, 160, 162, 108,\n\t\t54, 93, 45, 100, 105, 183, 99, 195, 192, 183, 107, 86, 88,\n\t\t77, 68, 130, 236, 205, 127, 140, 221, 74, 204, 246, 222, 58,\n\t\t70, 251, 75, 106, 203, 247, 74, 48, 202, 59, 184, 203, 184,\n\t\t27, 136, 22, 76, 126, 43, 138, 22, 252, 209, 14, 173, 163,\n\t\t141, 36, 99, 0, 5, 65, 94, 118, 163, 174, 204, 46, 226, 36,\n\t\t235, 157, 48, 103, 97, 224, 235, 176, 109, 23, 8, 32, 11,\n\t\t145, 153, 210, 144, 211, 136, 90, 20, 174, 50, 230, 26, 179,\n\t\t52, 133, 31, 214, 139, 186, 34, 161, 191, 160, 146, 109, 207,\n\t\t34, 206, 104, 26, 22, 185, 12, 243, 54, 21, 48, 62, 172, 18,\n\t\t35, 150, 154, 78, 108, 243, 43, 178, 30, 14, 89, 14, 241,\n\t\t104, 129, 64, 70, 215, 141, 231, 207, 192, 20, 137, 181, 158,\n\t\t213, 204, 77, 136, 151, 69, 87, 21, 212, 205, 240, 115, 41,\n\t\t141, 167, 102, 84, 225, 59, 197, 98, 54, 178, 204, 230, 23,\n\t\t106, 222, 101, 49, 3, 229, 150, 17, 137, 106, 186, 42, 139,\n\t\t34, 134, 140, 84, 85, 214, 76, 29, 235, 102, 192, 0, 7, 114,\n\t\t215, 242, 249, 227, 64, 207, 175, 194, 248, 2, 250, 163, 14,\n\t\t14, 2, 201, 247, 73, 114, 19, 120, 71, 110, 158, 172, 3, 102,\n\t\t13, 224, 6, 238, 22, 38, 189, 213, 173, 189, 32, 245, 174,\n\t\t15, 38, 76, 19, 17, 214, 104, 148, 245, 134, 221, 23, 120,\n\t\t223, 96, 226, 88, 249, 72, 211, 187, 255, 14, 182, 68, 106,\n\t\t186, 132, 25, 48, 249, 105, 64, 157, 80, 87, 59, 116, 207,\n\t\t26, 125, 180, 94, 199, 130, 223, 51, 228, 94, 182, 142, 249,\n\t\t147, 12, 4, 206, 250, 217, 66, 102, 129, 214, 7, 215, 161,\n\t\t152, 94, 183, 78, 220, 157, 68, 235, 242, 52, 153, 71, 157,\n\t\t59, 169, 124, 126, 204, 22, 110, 15, 244, 211, 181, 48, 197,\n\t\t252, 5, 213, 222, 219, 208, 5, 238, 154, 114, 59, 113, 76,\n\t\t170, 28, 124, 141, 11, 112, 112, 186, 253, 232, 115, 6, 83,\n\t\t148, 37, 10, 250, 173, 179, 221, 2, 202, 51, 244, 121, 71,\n\t\t255, 61, 84, 236, 47, 67, 214, 38, 162, 74, 252, 173, 89,\n\t\t244, 30, 26, 119, 156, 186, 43, 44, 193, 10, 225, 47, 63,\n\t\t218, 21, 207, 220, 246, 57, 237, 50, 197, 43, 137, 222, 129,\n\t\t119, 172, 72, 173, 22, 134, 218, 56, 101, 91, 70, 180, 131,\n\t\t110, 220, 69, 143, 25, 191, 97, 171, 215, 216, 1, 43, 96,\n\t\t91, 212, 189, 134, 96, 6, 87, 220, 120, 133, 134, 94, 65,\n\t\t15, 30, 23, 33, 120, 184, 245, 127, 200, 152, 156, 56, 65,\n\t\t71, 70, 63, 76, 80, 136, 43, 175, 84, 41, 109, 254, 159, 176,\n\t\t111, 72, 232, 119, 185, 48, 244, 117, 153, 202, 188, 115,\n\t\t245, 46, 249, 35, 153, 109, 192, 197, 40, 49, 188, 79, 111,\n\t\t62, 140, 194, 19, 40, 23, 162, 160, 237, 18, 243, 33, 228,\n\t\t98, 61, 30, 79, 0, 146, 77, 176, 61, 225, 175, 46, 185, 122,\n\t\t174, 152, 139, 95, 98, 135, 47, 141, 231, 138, 115, 113, 203,\n\t\t137, 154, 105, 87, 82, 156, 177, 15, 77, 142, 135, 157, 88,\n\t\t112, 48, 46, 171, 255, 43, 234, 88, 35, 99, 142, 34, 185,\n\t\t233, 119, 197, 156, 240, 248, 164, 163, 138, 161, 72, 236,\n\t\t236, 246, 107, 138, 137, 116, 60, 158, 78, 20, 175, 185, 105,\n\t\t102, 92, 18, 244, 120, 40, 49, 174, 13, 24, 197, 109, 13,\n\t\t89, 12, 102, 34, 217, 65, 105, 124, 102, 64, 27, 79, 132,\n\t\t226, 122, 86, 110, 108, 43, 26, 141, 172, 149, 12, 97, 239,\n\t\t62, 58, 34, 59, 78, 108, 210, 146, 187, 83, 235, 158, 250,\n\t\t61, 163, 160, 153, 162, 62, 142, 184, 141, 154, 208, 168,\n\t\t225, 127, 11, 133, 158, 49, 67, 201, 103, 34, 209, 103, 18,\n\t\t33, 243, 39, 0, 90, 137, 69, 166, 47, 203, 242, 101, 114,\n\t\t44, 248, 147, 116, 224, 152, 174, 31, 11, 164, 127, 18, 140,\n\t\t201, 214, 2, 127, 217, 101, 124, 235, 239, 22, 223, 50, 239,\n\t\t235, 189, 252, 16, 202, 249, 40, 148, 145, 165, 86, 153, 38,\n\t\t161, 207, 168, 109, 19, 191, 44, 236, 149, 71, 112, 1, 70,\n\t\t202, 194, 94, 93, 195, 145, 18, 41, 188, 36, 128, 175, 81,\n\t\t194, 174, 228, 61, 209, 63, 185, 206, 17, 203, 58, 118, 204,\n\t\t178, 142, 56, 238, 181, 238, 145, 64, 224, 136, 155, 59, 120,\n\t\t231, 141, 55, 222, 24, 62, 120, 16, 92, 116, 5, 125, 252,\n\t\t119, 53, 126, 75, 84, 155, 86, 148, 153, 25, 69, 153, 214,\n\t\t162, 183, 196, 213, 161, 227, 113, 181, 40, 73, 69, 53, 126,\n\t\t28, 237, 25, 218, 249, 110, 52, 60, 140, 138, 173, 47, 238,\n\t\t43, 93, 254, 254, 82, 105, 100, 151, 247, 36, 50, 175, 191,\n\t\t60, 255, 85, 218, 55, 41, 110, 150, 90, 31, 97, 36, 68, 116,\n\t\t147, 119, 211, 103, 174, 115, 141, 117, 212, 109, 208, 163,\n\t\t75, 79, 252, 213, 35, 40, 152, 236, 40, 17, 228, 160, 102,\n\t\t177, 153, 220, 181, 103, 222, 148, 2, 97, 66, 203, 127, 137,\n\t\t15, 171, 229, 170, 22, 182, 9, 207, 123, 168, 174, 134, 171,\n\t\t195, 170, 160, 223, 2, 123, 234, 61, 234, 144, 26, 150, 245,\n\t\t156, 134, 195, 169, 155, 82, 35, 101, 53, 44, 196, 121, 93,\n\t\t190, 69, 23, 212, 242, 167, 131, 177, 241, 228, 146, 79, 105,\n\t\t47, 217, 97, 45, 137, 53, 72, 249, 101, 45, 32, 199, 247,\n\t\t91, 89, 34, 142, 180, 45, 183, 63, 33, 69, 224, 27, 140, 247,\n\t\t4, 131, 3, 154, 28, 149, 181, 129, 241, 241, 249, 184, 28,\n\t\t208, 110, 193, 152, 143, 11, 17, 41, 241, 1, 183, 54, 154,\n\t\t170, 116, 209, 252, 89, 107, 76, 195, 17, 89, 227, 196, 243,\n\t\t173, 255, 75, 221, 155, 192, 57, 114, 149, 247, 162, 117,\n\t\t106, 59, 181, 169, 180, 171, 212, 106, 73, 173, 165, 37, 245,\n\t\t222, 234, 86, 75, 234, 217, 186, 53, 61, 171, 103, 237, 177,\n\t\t199, 51, 99, 27, 219, 141, 183, 25, 47, 152, 246, 130, 109,\n\t\t76, 128, 182, 193, 92, 251, 178, 100, 204, 22, 67, 18, 104,\n\t\t8, 33, 134, 112, 131, 241, 35, 96, 28, 2, 205, 26, 147, 155,\n\t\t101, 2, 92, 66, 194, 114, 39, 247, 145, 92, 39, 55, 143, 107,\n\t\t3, 151, 235, 16, 172, 121, 231, 251, 78, 149, 84, 234, 233,\n\t\t25, 236, 228, 189, 223, 251, 189, 153, 86, 213, 169, 83, 219,\n\t\t169, 179, 124, 231, 59, 223, 242, 255, 216, 32, 19, 201, 10,\n\t\t107, 167, 237, 194, 34, 208, 17, 226, 42, 178, 208, 171, 160,\n\t\t179, 110, 203, 119, 82, 184, 66, 247, 162, 118, 53, 231, 36,\n\t\t30, 232, 170, 68, 33, 238, 46, 208, 83, 186, 89, 156, 147,\n\t\t220, 72, 139, 121, 47, 190, 101, 60, 150, 149, 54, 19, 242,\n\t\t51, 208, 114, 73, 122, 44, 17, 66, 10, 123, 78, 192, 93, 40,\n\t\t17, 211, 37, 149, 213, 250, 214, 176, 26, 239, 207, 133, 87,\n\t\t10, 155, 172, 112, 251, 251, 224, 133, 173, 244, 217, 43,\n\t\t118, 223, 38, 49, 160, 154, 42, 149, 10, 105, 54, 13, 31,\n\t\t178, 35, 17, 91, 119, 66, 140, 111, 55, 213, 0, 227, 104,\n\t\t212, 164, 30, 205, 84, 147, 145, 6, 210, 109, 36, 220, 141,\n\t\t72, 178, 154, 137, 234, 73, 85, 31, 9, 246, 71, 140, 114,\n\t\t110, 36, 50, 61, 29, 8, 135, 63, 73, 68, 137, 13, 150, 124,\n\t\t132, 61, 40, 29, 9, 57, 186, 172, 74, 34, 233, 193, 124, 128,\n\t\t248, 37, 104, 231, 82, 226, 102, 110, 23, 168, 129, 6, 95,\n\t\t57, 251, 225, 9, 156, 142, 31, 190, 91, 21, 29, 160, 78, 242,\n\t\t23, 137, 116, 206, 255, 197, 185, 116, 34, 65, 71, 251, 77,\n\t\t196, 160, 49, 251, 71, 105, 251, 55, 81, 151, 91, 39, 137,\n\t\t48, 49, 228, 239, 88, 18, 9, 96, 198, 95, 200, 69, 167, 58,\n\t\t24, 29, 238, 126, 218, 112, 164, 84, 117, 138, 242, 229, 253,\n\t\t5, 30, 167, 181, 208, 255, 21, 212, 3, 95, 189, 67, 209, 236,\n\t\t39, 61, 3, 23, 176, 197, 255, 34, 121, 136, 245, 107, 244,\n\t\t81, 135, 21, 91, 135, 251, 169, 187, 200, 61, 184, 225, 176,\n\t\t175, 208, 130, 24, 178, 8, 47, 34, 247, 27, 86, 240, 145,\n\t\t172, 172, 235, 75, 186, 46, 103, 31, 9, 90, 198, 226, 64,\n\t\t208, 210, 15, 103, 130, 170, 106, 220, 46, 169, 170, 42, 221,\n\t\t110, 168, 106, 48, 115, 88, 183, 130, 3, 187, 205, 254, 228,\n\t\t148, 22, 12, 106, 83, 201, 126, 243, 202, 148, 121, 149, 29,\n\t\t48, 95, 35, 137, 162, 244, 26, 51, 96, 95, 101, 166, 60, 221,\n\t\t182, 231, 223, 216, 135, 158, 156, 72, 68, 185, 81, 163, 107,\n\t\t81, 168, 66, 221, 38, 114, 78, 220, 75, 145, 181, 55, 93,\n\t\t189, 237, 228, 86, 190, 121, 250, 77, 123, 200, 244, 30, 190,\n\t\t35, 247, 78, 100, 71, 99, 249, 24, 110, 95, 119, 50, 59, 58,\n\t\t154, 61, 57, 245, 106, 119, 239, 226, 74, 192, 156, 161, 10,\n\t\t150, 16, 19, 202, 172, 61, 247, 11, 135, 217, 216, 158, 96,\n\t\t252, 253, 116, 140, 2, 47, 213, 160, 141, 166, 45, 71, 107,\n\t\t61, 124, 4, 168, 27, 25, 91, 197, 145, 121, 28, 128, 188,\n\t\t230, 22, 2, 24, 39, 180, 82, 110, 122, 152, 166, 81, 181,\n\t\t210, 248, 140, 40, 138, 170, 106, 199, 173, 90, 224, 176,\n\t\t60, 160, 90, 154, 42, 125, 184, 171, 214, 176, 197, 140, 109,\n\t\t41, 82, 60, 33, 170, 182, 19, 201, 148, 45, 205, 238, 27,\n\t\t156, 11, 15, 166, 99, 134, 17, 58, 76, 65, 195, 145, 84, 75,\n\t\t163, 107, 212, 9, 15, 53, 82, 65, 49, 150, 60, 102, 102, 140,\n\t\t160, 174, 16, 98, 117, 149, 30, 15, 27, 246, 39, 34, 131,\n\t\t147, 97, 219, 212, 12, 198, 249, 229, 236, 114, 200, 152,\n\t\t139, 73, 209, 130, 30, 252, 30, 53, 212, 21, 218, 254, 32,\n\t\t13, 145, 110, 253, 114, 61, 205, 86, 88, 165, 111, 160, 163,\n\t\t41, 80, 53, 94, 70, 189, 42, 69, 182, 18, 6, 43, 107, 118,\n\t\t112, 146, 98, 156, 100, 2, 185, 70, 70, 172, 38, 72, 113,\n\t\t99, 85, 205, 38, 131, 36, 196, 180, 168, 103, 12, 182, 37,\n\t\t81, 209, 232, 99, 140, 96, 73, 52, 74, 186, 148, 36, 68, 142,\n\t\t75, 122, 217, 16, 203, 132, 13, 176, 195, 27, 105, 112, 206,\n\t\t9, 198, 141, 233, 224, 93, 186, 126, 151, 214, 127, 173, 161,\n\t\t171, 143, 235, 250, 245, 150, 115, 66, 215, 31, 151, 169,\n\t\t252, 22, 87, 151, 227, 255, 142, 25, 88, 11, 109, 160, 197,\n\t\t66, 187, 132, 32, 153, 241, 190, 128, 83, 107, 206, 24, 115,\n\t\t198, 119, 227, 242, 111, 149, 41, 45, 82, 169, 84, 146, 216,\n\t\t142, 202, 91, 221, 227, 130, 20, 142, 202, 60, 103, 67, 85,\n\t\t216, 79, 84, 75, 221, 69, 118, 170, 1, 245, 234, 107, 88,\n\t\t114, 155, 150, 31, 100, 187, 107, 190, 227, 150, 216, 239,\n\t\t31, 66, 133, 144, 80, 128, 82, 55, 57, 122, 74, 189, 211,\n\t\t99, 232, 249, 205, 129, 220, 39, 235, 39, 29, 118, 148, 209,\n\t\t77, 249, 203, 1, 59, 24, 232, 255, 22, 118, 144, 166, 191,\n\t\t240, 245, 161, 252, 17, 81, 145, 68, 10, 130, 94, 18, 179,\n\t\t156, 80, 212, 210, 62, 21, 238, 15, 111, 251, 40, 246, 132,\n\t\t7, 122, 148, 101, 223, 202, 143, 137, 146, 34, 62, 3, 139,\n\t\t185, 77, 162, 106, 134, 251, 122, 202, 169, 9, 41, 86, 206,\n\t\t113, 24, 133, 110, 69, 209, 243, 6, 130, 23, 44, 197, 169,\n\t\t87, 92, 67, 161, 56, 89, 225, 245, 243, 176, 175, 159, 223,\n\t\t82, 73, 167, 43, 153, 213, 33, 77, 63, 57, 164, 105, 67, 100,\n\t\t55, 86, 75, 181, 167, 15, 135, 208, 164, 234, 219, 203, 236,\n\t\t130, 83, 112, 81, 213, 175, 87, 212, 216, 8, 29, 97, 107,\n\t\t181, 195, 176, 90, 115, 107, 75, 156, 238, 248, 212, 52, 154,\n\t\t231, 213, 28, 44, 31, 41, 219, 136, 238, 26, 167, 142, 0,\n\t\t27, 252, 23, 47, 198, 107, 238, 143, 170, 228, 181, 88, 143,\n\t\t31, 12, 7, 245, 104, 127, 84, 191, 215, 87, 159, 167, 114,\n\t\t173, 149, 92, 223, 244, 128, 28, 17, 141, 68, 174, 251, 47,\n\t\t170, 144, 227, 124, 100, 125, 150, 6, 168, 25, 10, 153, 52,\n\t\t240, 151, 254, 170, 197, 171, 218, 43, 229, 190, 227, 134,\n\t\t239, 182, 220, 43, 147, 189, 186, 210, 60, 163, 187, 219,\n\t\t64, 126, 124, 126, 255, 133, 185, 49, 232, 173, 239, 156,\n\t\t68, 163, 137, 142, 170, 51, 16, 29, 142, 241, 16, 77, 190,\n\t\t227, 222, 171, 51, 23, 208, 153, 6, 21, 52, 211, 24, 84, 130,\n\t\t121, 67, 79, 50, 238, 218, 76, 177, 149, 220, 97, 163, 95,\n\t\t213, 251, 251, 77, 35, 105, 14, 183, 54, 212, 161, 222, 246,\n\t\t176, 166, 170, 131, 214, 172, 53, 168, 170, 179, 102, 74,\n\t\t213, 227, 91, 98, 38, 91, 125, 211, 232, 237, 6, 219, 165,\n\t\t15, 165, 205, 148, 162, 143, 188, 230, 131, 157, 190, 45,\n\t\t245, 244, 153, 25, 127, 143, 217, 168, 71, 7, 201, 121, 139,\n\t\t44, 246, 133, 117, 175, 227, 172, 250, 191, 98, 41, 107, 54,\n\t\t17, 112, 7, 55, 77, 51, 235, 246, 157, 100, 79, 145, 1, 225,\n\t\t190, 89, 118, 47, 178, 141, 114, 147, 199, 119, 85, 122, 202,\n\t\t85, 19, 246, 8, 75, 23, 237, 205, 180, 137, 198, 38, 124,\n\t\t203, 35, 65, 129, 77, 44, 235, 107, 213, 26, 35, 122, 51,\n\t\t144, 93, 133, 236, 88, 60, 230, 112, 227, 217, 78, 236, 40,\n\t\t138, 91, 152, 8, 54, 26, 0, 119, 197, 136, 56, 52, 36, 146,\n\t\t24, 97, 156, 196, 118, 81, 220, 206, 88, 140, 58, 145, 201,\n\t\t156, 156, 198, 237, 231, 121, 22, 241, 95, 182, 225, 40, 121,\n\t\t62, 206, 166, 76, 50, 56, 200, 46, 16, 227, 132, 108, 19,\n\t\t101, 113, 27, 153, 146, 191, 69, 0, 191, 139, 239, 78, 98,\n\t\t30, 233, 189, 144, 205, 114, 93, 25, 100, 64, 136, 11, 253,\n\t\t200, 125, 119, 100, 145, 165, 114, 5, 102, 60, 151, 21, 169,\n\t\t64, 76, 233, 38, 5, 94, 182, 194, 18, 236, 208, 149, 81, 126,\n\t\t52, 150, 154, 79, 135, 223, 139, 98, 241, 92, 42, 214, 10,\n\t\t167, 95, 133, 57, 63, 198, 180, 43, 187, 236, 195, 131, 15,\n\t\t161, 28, 252, 59, 190, 211, 252, 82, 148, 117, 211, 115, 127,\n\t\t194, 202, 242, 105, 156, 227, 93, 123, 96, 148, 84, 86, 32,\n\t\t190, 34, 242, 148, 62, 228, 179, 114, 157, 228, 34, 214, 145,\n\t\t155, 23, 238, 220, 113, 242, 81, 114, 243, 17, 51, 26, 217,\n\t\t124, 224, 182, 199, 110, 59, 176, 57, 66, 222, 103, 217, 82,\n\t\t252, 161, 99, 59, 238, 220, 113, 250, 228, 177, 183, 196,\n\t\t37, 219, 10, 71, 148, 208, 117, 243, 7, 110, 187, 237, 192,\n\t\t252, 117, 33, 37, 226, 226, 76, 156, 251, 35, 86, 27, 95,\n\t\t19, 18, 29, 159, 195, 73, 46, 121, 140, 54, 202, 84, 97, 83,\n\t\t121, 147, 124, 63, 208, 39, 238, 21, 227, 198, 235, 91, 70,\n\t\t238, 121, 73, 147, 219, 127, 119, 139, 45, 6, 200, 31, 211,\n\t\t112, 176, 189, 104, 90, 202, 204, 193, 128, 25, 62, 66, 74,\n\t\t10, 149, 94, 28, 83, 179, 94, 252, 144, 63, 33, 255, 194,\n\t\t234, 180, 228, 122, 238, 23, 11, 110, 140, 251, 14, 22, 36,\n\t\t237, 132, 169, 5, 131, 66, 198, 197, 224, 187, 59, 28, 33,\n\t\t70, 77, 122, 225, 209, 147, 39, 118, 106, 68, 51, 213, 40,\n\t\t157, 110, 65, 209, 47, 97, 196, 75, 51, 31, 165, 122, 140,\n\t\t78, 239, 189, 254, 228, 160, 26, 211, 182, 163, 131, 237,\n\t\t176, 38, 170, 164, 242, 231, 239, 108, 210, 56, 187, 156,\n\t\t40, 67, 172, 30, 166, 107, 52, 166, 211, 71, 77, 141, 78,\n\t\t239, 106, 63, 173, 73, 106, 237, 97, 78, 189, 216, 93, 172,\n\t\t174, 61, 25, 220, 126, 244, 72, 228, 160, 73, 235, 244, 138,\n\t\t197, 243, 93, 73, 194, 197, 245, 218, 225, 120, 143, 43, 90,\n\t\t156, 60, 167, 211, 82, 169, 227, 147, 81, 254, 179, 114, 39,\n\t\t189, 97, 54, 89, 166, 122, 219, 39, 26, 89, 241, 73, 68, 72,\n\t\t107, 131, 124, 30, 231, 240, 44, 121, 130, 149, 61, 231, 243,\n\t\t158, 234, 234, 187, 59, 107, 123, 116, 125, 39, 143, 185,\n\t\t78, 156, 57, 70, 128, 113, 187, 112, 205, 181, 59, 200, 42,\n\t\t38, 219, 143, 227, 32, 58, 193, 247, 167, 174, 121, 243, 53,\n\t\t61, 250, 145, 34, 163, 13, 183, 250, 44, 188, 207, 215, 68,\n\t\t117, 90, 108, 189, 207, 41, 227, 249, 61, 165, 123, 231, 154,\n\t\t230, 133, 53, 90, 221, 104, 221, 207, 161, 34, 248, 9, 252,\n\t\t90, 132, 34, 90, 228, 117, 225, 75, 183, 17, 100, 144, 44,\n\t\t118, 175, 57, 131, 201, 51, 221, 36, 175, 57, 238, 223, 226,\n\t\t75, 174, 190, 172, 108, 207, 175, 22, 121, 111, 142, 103,\n\t\t226, 6, 42, 118, 3, 11, 64, 140, 1, 140, 111, 201, 209, 6,\n\t\t104, 2, 60, 123, 200, 18, 70, 6, 16, 111, 74, 21, 192, 117,\n\t\t168, 144, 186, 73, 196, 8, 1, 144, 96, 153, 43, 120, 96, 26,\n\t\t173, 56, 75, 196, 91, 134, 137, 87, 179, 68, 130, 101, 245,\n\t\t232, 91, 234, 27, 224, 63, 21, 104, 133, 77, 119, 77, 62,\n\t\t140, 192, 198, 207, 161, 32, 76, 1, 13, 70, 211, 225, 216,\n\t\t140, 235, 17, 160, 78, 39, 66, 59, 69, 113, 103, 40, 225,\n\t\t228, 243, 19, 121, 55, 225, 64, 38, 59, 204, 247, 24, 162,\n\t\t254, 115, 112, 152, 218, 116, 56, 8, 39, 28, 202, 19, 44,\n\t\t139, 226, 157, 62, 25, 99, 23, 151, 99, 30, 121, 15, 14, 185,\n\t\t234, 143, 188, 0, 75, 252, 121, 2, 192, 93, 133, 153, 90,\n\t\t25, 196, 1, 5, 54, 157, 169, 184, 184, 15, 114, 189, 98, 2,\n\t\t24, 104, 180, 66, 80, 252, 193, 123, 193, 61, 224, 169, 153,\n\t\t126, 74, 195, 145, 251, 63, 113, 255, 253, 199, 198, 135,\n\t\t195, 52, 70, 83, 51, 7, 45, 43, 105, 89, 213, 100, 114, 66,\n\t\t139, 232, 97, 45, 172, 93, 14, 155, 176, 30, 222, 226, 238,\n\t\t219, 31, 44, 167, 16, 195, 124, 22, 124, 121, 78, 205, 0,\n\t\t188, 80, 120, 120, 252, 216, 253, 236, 49, 145, 48, 165, 253,\n\t\t51, 86, 50, 185, 21, 30, 146, 28, 213, 35, 236, 14, 246, 11,\n\t\t227, 179, 34, 125, 236, 118, 216, 175, 165, 202, 236, 222,\n\t\t217, 33, 110, 124, 33, 245, 196, 65, 26, 17, 124, 145, 144,\n\t\t42, 77, 182, 214, 129, 157, 74, 155, 108, 199, 166, 61, 54,\n\t\t213, 37, 154, 149, 121, 198, 97, 195, 73, 234, 250, 139, 188,\n\t\t50, 53, 31, 46, 84, 230, 236, 253, 251, 237, 185, 74, 49,\n\t\t52, 159, 42, 107, 151, 151, 178, 115, 115, 217, 210, 229,\n\t\t90, 249, 133, 236, 161, 67, 89, 215, 125, 228, 133, 196, 230,\n\t\t163, 82, 35, 58, 48, 50, 50, 16, 109, 72, 71, 55, 39, 22,\n\t\t102, 10, 230, 193, 72, 44, 22, 57, 104, 22, 102, 228, 87,\n\t\t204, 206, 190, 2, 112, 36, 88, 253, 43, 228, 207, 217, 28,\n\t\t53, 206, 86, 218, 187, 132, 35, 194, 213, 194, 205, 194, 107,\n\t\t132, 7, 132, 183, 11, 239, 19, 126, 87, 248, 20, 227, 153,\n\t\t16, 249, 20, 93, 143, 192, 107, 106, 102, 170, 89, 166, 78,\n\t\t21, 161, 61, 221, 28, 135, 27, 63, 130, 62, 41, 254, 114,\n\t\t211, 202, 191, 227, 250, 11, 221, 171, 236, 252, 236, 103,\n\t\t119, 26, 218, 168, 98, 74, 210, 113, 83, 93, 90, 82, 205,\n\t\t227, 146, 100, 42, 163, 210, 197, 224, 37, 254, 29, 40, 19,\n\t\t228, 196, 206, 169, 169, 157, 70, 96, 151, 70, 138, 114, 128,\n\t\t108, 45, 22, 183, 146, 128, 92, 36, 218, 46, 69, 209, 254,\n\t\t228, 98, 160, 19, 16, 249, 241, 37, 230, 11, 126, 76, 119,\n\t\t93, 200, 50, 62, 107, 27, 198, 118, 117, 17, 121, 167, 19,\n\t\t10, 178, 87, 197, 14, 45, 156, 147, 75, 89, 201, 233, 146,\n\t\t198, 58, 44, 237, 75, 28, 165, 23, 193, 223, 107, 113, 178,\n\t\t186, 132, 214, 69, 237, 213, 104, 96, 41, 135, 120, 185, 36,\n\t\t16, 137, 4, 200, 3, 36, 234, 196, 8, 102, 228, 150, 88, 23,\n\t\t110, 51, 42, 202, 46, 93, 110, 145, 211, 85, 208, 69, 223,\n\t\t27, 136, 174, 174, 130, 200, 99, 108, 112, 203, 112, 105,\n\t\t60, 53, 176, 105, 120, 207, 216, 24, 100, 172, 174, 234, 246,\n\t\t189, 58, 133, 171, 206, 9, 171, 171, 189, 124, 43, 101, 51,\n\t\t0, 32, 191, 185, 30, 61, 126, 139, 4, 202, 190, 99, 162, 139,\n\t\t155, 95, 107, 22, 185, 239, 62, 17, 162, 169, 40, 170, 191,\n\t\t67, 151, 52, 91, 205, 75, 144, 146, 46, 183, 0, 191, 165,\n\t\t138, 98, 226, 101, 78, 97, 115, 155, 79, 152, 215, 95, 111,\n\t\t158, 216, 156, 227, 4, 23, 207, 161, 28, 212, 197, 74, 137,\n\t\t49, 222, 20, 252, 139, 230, 132, 125, 104, 1, 180, 94, 111,\n\t\t1, 117, 34, 78, 131, 0, 187, 233, 19, 201, 231, 125, 233,\n\t\t202, 5, 242, 155, 93, 191, 144, 26, 68, 202, 101, 196, 114,\n\t\t200, 201, 227, 28, 57, 20, 10, 253, 204, 178, 30, 179, 44,\n\t\t114, 10, 119, 179, 254, 3, 246, 215, 134, 35, 80, 218, 60,\n\t\t19, 75, 231, 29, 80, 1, 106, 108, 18, 125, 66, 123, 225, 5,\n\t\t205, 66, 221, 63, 255, 91, 234, 61, 112, 5, 242, 18, 250,\n\t\t249, 62, 64, 62, 41, 68, 216, 183, 141, 121, 81, 134, 42,\n\t\t229, 28, 138, 118, 193, 116, 39, 225, 185, 43, 148, 220, 83,\n\t\t5, 247, 84, 99, 90, 124, 157, 162, 20, 76, 243, 246, 246,\n\t\t119, 110, 55, 205, 130, 162, 28, 255, 209, 143, 206, 161,\n\t\t17, 8, 49, 241, 196, 252, 227, 243, 60, 255, 89, 82, 146,\n\t\t109, 200, 185, 225, 6, 200, 176, 229, 35, 155, 54, 181, 255,\n\t\t9, 173, 66, 94, 11, 54, 219, 134, 209, 104, 24, 6, 59, 161,\n\t\t28, 240, 227, 136, 122, 177, 230, 15, 11, 215, 2, 142, 232,\n\t\t249, 177, 7, 254, 125, 26, 162, 245, 231, 195, 29, 117, 44,\n\t\t215, 192, 18, 12, 136, 197, 58, 54, 219, 46, 186, 65, 231,\n\t\t123, 54, 43, 191, 50, 179, 253, 183, 176, 37, 44, 77, 220,\n\t\t216, 91, 153, 40, 97, 15, 108, 31, 236, 92, 243, 80, 39, 245,\n\t\t186, 141, 242, 62, 10, 41, 216, 16, 229, 38, 72, 194, 134,\n\t\t227, 188, 114, 159, 222, 34, 183, 155, 233, 241, 234, 237,\n\t\t162, 203, 18, 142, 46, 235, 192, 60, 56, 85, 114, 138, 28,\n\t\t131, 118, 78, 116, 16, 152, 214, 38, 189, 110, 188, 143, 150,\n\t\t182, 177, 65, 49, 187, 23, 16, 103, 137, 78, 218, 111, 248,\n\t\t47, 63, 1, 52, 90, 219, 74, 252, 94, 170, 188, 18, 206, 246,\n\t\t56, 240, 46, 79, 5, 56, 252, 172, 121, 108, 51, 162, 207,\n\t\t18, 195, 34, 210, 195, 31, 65, 132, 218, 160, 61, 253, 247,\n\t\t165, 254, 112, 54, 220, 131, 133, 134, 216, 187, 100, 189,\n\t\t111, 158, 107, 187, 77, 164, 188, 132, 150, 6, 101, 242, 68,\n\t\t39, 100, 5, 189, 79, 167, 193, 59, 131, 140, 188, 188, 24,\n\t\t39, 43, 113, 146, 142, 254, 60, 154, 38, 190, 240, 27, 209,\n\t\t64, 32, 218, 62, 72, 46, 107, 255, 167, 104, 42, 213, 107,\n\t\t191, 49, 235, 179, 38, 114, 93, 19, 40, 70, 8, 113, 93, 39,\n\t\t64, 7, 80, 159, 169, 76, 168, 56, 199, 103, 209, 82, 220,\n\t\t93, 60, 189, 74, 18, 251, 36, 75, 34, 74, 192, 78, 152, 197,\n\t\t202, 80, 97, 48, 37, 155, 82, 130, 45, 76, 36, 211, 140, 196,\n\t\t82, 129, 185, 75, 7, 119, 12, 231, 102, 195, 238, 58, 234,\n\t\t79, 101, 89, 150, 10, 50, 91, 210, 41, 186, 166, 86, 115,\n\t\t249, 209, 164, 44, 202, 69, 73, 82, 100, 34, 105, 84, 87,\n\t\t229, 75, 183, 13, 47, 148, 147, 161, 94, 27, 147, 205, 32,\n\t\t81, 32, 174, 149, 224, 132, 88, 241, 76, 64, 88, 233, 92,\n\t\t59, 118, 53, 225, 184, 176, 22, 156, 159, 226, 240, 203, 148,\n\t\t179, 122, 81, 110, 129, 207, 227, 152, 8, 183, 188, 99, 223,\n\t\t129, 96, 200, 177, 165, 192, 72, 108, 108, 230, 200, 166,\n\t\t145, 8, 177, 198, 45, 91, 76, 74, 138, 149, 202, 221, 114,\n\t\t8, 22, 43, 141, 113, 45, 194, 86, 188, 178, 190, 109, 223,\n\t\t201, 71, 31, 61, 18, 47, 69, 194, 206, 96, 140, 60, 245, 107,\n\t\t55, 204, 31, 37, 106, 208, 10, 39, 54, 77, 45, 28, 75, 88,\n\t\t97, 235, 181, 129, 16, 145, 166, 7, 246, 29, 99, 171, 150,\n\t\t140, 34, 81, 75, 143, 171, 67, 224, 83, 122, 102, 120, 32,\n\t\t154, 24, 206, 69, 227, 174, 189, 11, 216, 110, 153, 176, 58,\n\t\t100, 124, 6, 72, 156, 25, 171, 81, 159, 17, 124, 40, 152,\n\t\t126, 220, 197, 218, 27, 86, 222, 16, 237, 31, 159, 205, 229,\n\t\t200, 227, 179, 233, 131, 1, 198, 207, 49, 142, 232, 195, 124,\n\t\t23, 56, 152, 190, 11, 206, 231, 114, 179, 227, 253, 100, 105,\n\t\t118, 17, 46, 136, 177, 83, 236, 2, 220, 177, 11, 4, 23, 43,\n\t\t135, 243, 124, 81, 160, 88, 77, 167, 202, 43, 176, 92, 135,\n\t\t32, 4, 205, 6, 86, 40, 132, 98, 229, 188, 197, 28, 109, 54,\n\t\t126, 239, 4, 217, 189, 185, 213, 18, 173, 128, 109, 74, 166,\n\t\t156, 34, 183, 36, 114, 246, 229, 139, 19, 134, 213, 210, 137,\n\t\t166, 197, 98, 149, 210, 124, 54, 242, 214, 125, 84, 156, 109,\n\t\t157, 216, 33, 234, 160, 228, 222, 73, 54, 167, 19, 209, 254,\n\t\t15, 190, 82, 170, 71, 99, 186, 29, 178, 156, 72, 113, 96,\n\t\t182, 63, 228, 202, 42, 160, 63, 23, 133, 25, 70, 157, 246,\n\t\t129, 158, 169, 84, 96, 172, 175, 167, 68, 44, 168, 46, 196,\n\t\t189, 223, 60, 2, 99, 242, 77, 3, 42, 28, 254, 88, 70, 141,\n\t\t96, 107, 215, 161, 147, 214, 54, 76, 146, 53, 171, 50, 89,\n\t\t73, 86, 146, 206, 144, 25, 96, 41, 43, 29, 11, 161, 17, 5,\n\t\t194, 225, 178, 124, 60, 59, 89, 9, 152, 149, 100, 155, 77,\n\t\t166, 57, 35, 17, 185, 179, 103, 215, 226, 242, 172, 69, 198,\n\t\t115, 227, 191, 116, 236, 204, 18, 207, 2, 101, 182, 157, 78,\n\t\t148, 202, 241, 245, 123, 193, 179, 187, 16, 92, 124, 176,\n\t\t142, 7, 18, 35, 187, 192, 30, 133, 75, 208, 15, 243, 117,\n\t\t140, 43, 76, 216, 236, 212, 78, 34, 19, 83, 151, 77, 241,\n\t\t202, 246, 202, 113, 41, 32, 95, 142, 96, 201, 48, 75, 181,\n\t\t255, 236, 172, 44, 41, 159, 63, 245, 168, 66, 148, 59, 113,\n\t\t46, 63, 247, 203, 115, 95, 16, 243, 172, 223, 104, 172, 5,\n\t\t139, 184, 134, 161, 24, 78, 169, 137, 66, 86, 140, 55, 173,\n\t\t56, 208, 205, 41, 134, 4, 99, 189, 62, 46, 134, 168, 65, 172,\n\t\t109, 166, 249, 193, 31, 234, 244, 172, 65, 175, 88, 105, 255,\n\t\t195, 111, 41, 68, 221, 186, 127, 233, 180, 36, 221, 123, 37,\n\t\t53, 87, 77, 122, 217, 102, 195, 252, 192, 118, 106, 156, 101,\n\t\t35, 110, 229, 253, 191, 165, 4, 229, 81, 66, 30, 89, 122,\n\t\t197, 219, 45, 162, 107, 190, 111, 138, 173, 243, 17, 174,\n\t\t119, 45, 142, 167, 93, 231, 126, 215, 234, 176, 171, 27, 196,\n\t\t248, 140, 124, 33, 88, 5, 35, 59, 88, 255, 157, 166, 122,\n\t\t214, 204, 45, 25, 41, 227, 146, 9, 116, 163, 220, 9, 201,\n\t\t75, 114, 166, 21, 106, 185, 212, 137, 175, 17, 219, 103, 0,\n\t\t180, 248, 158, 144, 197, 174, 214, 245, 125, 19, 232, 108,\n\t\t185, 139, 165, 246, 229, 48, 172, 163, 27, 91, 24, 120, 12,\n\t\t147, 213, 73, 198, 69, 139, 27, 229, 203, 101, 15, 15, 47,\n\t\t10, 219, 81, 68, 226, 89, 89, 92, 94, 94, 92, 131, 205, 10,\n\t\t26, 38, 254, 47, 0, 238, 158, 154, 154, 34, 43, 203, 171,\n\t\t203, 236, 239, 173, 104, 173, 120, 78, 96, 155, 230, 59, 155,\n\t\t94, 123, 122, 207, 239, 121, 122, 7, 59, 178, 251, 76, 126,\n\t\t183, 247, 172, 54, 7, 154, 23, 20, 54, 238, 206, 49, 94, 97,\n\t\t133, 81, 214, 173, 194, 126, 198, 233, 159, 228, 177, 35,\n\t\t108, 130, 174, 152, 16, 210, 98, 148, 248, 104, 24, 143, 127,\n\t\t12, 106, 53, 212, 168, 245, 128, 165, 52, 20, 90, 43, 83,\n\t\t116, 188, 2, 3, 30, 164, 111, 243, 164, 72, 129, 190, 113,\n\t\t170, 70, 59, 246, 115, 170, 147, 37, 34, 169, 239, 39, 100,\n\t\t127, 125, 102, 255, 112, 240, 24, 13, 204, 152, 187, 198,\n\t\t234, 251, 15, 176, 133, 67, 118, 202, 176, 169, 73, 143, 83,\n\t\t253, 206, 96, 13, 45, 221, 3, 244, 80, 162, 253, 173, 228,\n\t\t168, 188, 47, 57, 164, 31, 177, 109, 109, 92, 211, 243, 147,\n\t\t147, 95, 221, 183, 146, 28, 84, 95, 44, 76, 79, 230, 13, 99,\n\t\t92, 146, 212, 128, 26, 144, 198, 99, 132, 140, 17, 225, 96,\n\t\t189, 190, 143, 61, 125, 102, 182, 156, 124, 171, 57, 210,\n\t\t216, 223, 152, 217, 175, 85, 109, 67, 53, 41, 227, 25, 147,\n\t\t136, 71, 97, 190, 94, 219, 87, 78, 220, 147, 74, 244, 89,\n\t\t151, 136, 147, 11, 147, 75, 247, 13, 229, 170, 75, 98, 181,\n\t\t144, 159, 20, 247, 178, 39, 233, 236, 137, 123, 146, 3, 3,\n\t\t99, 110, 12, 12, 160, 79, 51, 172, 158, 14, 128, 7, 0, 233,\n\t\t145, 50, 196, 215, 27, 58, 108, 59, 79, 240, 0, 215, 11, 29,\n\t\t245, 35, 103, 93, 60, 214, 164, 163, 133, 68, 104, 44, 205,\n\t\t182, 84, 212, 65, 174, 225, 54, 16, 229, 40, 151, 15, 126,\n\t\t254, 193, 246, 155, 80, 229, 88, 37, 2, 76, 211, 231, 96,\n\t\t75, 66, 28, 182, 176, 133, 214, 203, 31, 53, 131, 185, 174,\n\t\t34, 146, 241, 238, 171, 152, 93, 45, 76, 76, 20, 170, 237,\n\t\t231, 184, 26, 210, 13, 171, 193, 54, 203, 221, 248, 129, 29,\n\t\t218, 80, 1, 27, 138, 243, 236, 219, 84, 30, 71, 26, 172, 154,\n\t\t38, 64, 230, 154, 104, 160, 47, 231, 133, 242, 253, 177, 115,\n\t\t62, 62, 176, 173, 149, 85, 229, 176, 40, 245, 93, 186, 125,\n\t\t254, 178, 148, 44, 197, 228, 207, 101, 231, 90, 3, 138, 28,\n\t\t33, 144, 215, 186, 180, 95, 146, 162, 50, 0, 244, 183, 17,\n\t\t232, 20, 224, 249, 206, 246, 59, 165, 66, 60, 41, 171, 89,\n\t\t73, 234, 147, 102, 38, 38, 27, 74, 90, 150, 251, 85, 229,\n\t\t2, 249, 62, 153, 6, 98, 141, 162, 242, 198, 103, 146, 212,\n\t\t99, 34, 190, 206, 92, 201, 211, 15, 55, 240, 91, 95, 200,\n\t\t59, 203, 24, 196, 222, 54, 30, 159, 93, 196, 212, 83, 84,\n\t\t95, 156, 125, 220, 176, 241, 96, 217, 201, 235, 148, 36, 157,\n\t\t188, 27, 58, 237, 49, 195, 102, 39, 49, 89, 101, 116, 225,\n\t\t187, 179, 139, 96, 147, 133, 240, 214, 140, 121, 199, 88,\n\t\t103, 80, 182, 47, 96, 172, 145, 154, 112, 28, 162, 33, 57,\n\t\t24, 67, 41, 225, 197, 17, 105, 22, 33, 9, 225, 186, 1, 161,\n\t\t76, 242, 135, 60, 99, 68, 25, 185, 134, 74, 241, 226, 224,\n\t\t234, 104, 28, 251, 47, 237, 239, 169, 36, 96, 218, 162, 154,\n\t\t203, 39, 19, 57, 66, 34, 223, 12, 23, 147, 241, 1, 162, 6,\n\t\t244, 221, 187, 161, 23, 157, 84, 12, 202, 248, 192, 71, 44,\n\t\t91, 154, 148, 239, 174, 226, 56, 240, 128, 211, 221, 228,\n\t\t74, 46, 98, 246, 5, 139, 78, 62, 151, 232, 11, 135, 146, 0,\n\t\t7, 56, 16, 55, 99, 65, 149, 28, 71, 41, 168, 162, 43, 227,\n\t\t17, 243, 76, 244, 49, 30, 203, 13, 239, 243, 37, 61, 31, 68,\n\t\t239, 123, 119, 255, 219, 191, 215, 53, 179, 115, 61, 209,\n\t\t95, 246, 231, 189, 118, 212, 74, 90, 163, 29, 112, 138, 151,\n\t\t250, 93, 43, 91, 45, 107, 171, 7, 74, 225, 217, 0, 195, 58,\n\t\t117, 43, 120, 76, 148, 178, 158, 107, 72, 177, 80, 65, 230,\n\t\t150, 125, 133, 234, 173, 79, 167, 193, 102, 177, 49, 79, 122,\n\t\t35, 245, 214, 60, 97, 115, 41, 142, 34, 171, 58, 121, 222,\n\t\t222, 54, 6, 229, 61, 209, 52, 171, 217, 149, 88, 177, 159,\n\t\t54, 79, 192, 241, 216, 92, 96, 183, 165, 133, 71, 162, 129,\n\t\t22, 162, 201, 180, 2, 209, 145, 176, 102, 181, 31, 185, 71,\n\t\t49, 148, 123, 246, 23, 134, 177, 164, 91, 82, 249, 96, 127,\n\t\t120, 11, 151, 73, 23, 118, 7, 138, 138, 253, 182, 64, 148,\n\t\t195, 232, 69, 3, 111, 179, 149, 98, 224, 147, 39, 202, 162,\n\t\t88, 62, 209, 209, 41, 174, 145, 47, 179, 25, 178, 193, 248,\n\t\t211, 99, 158, 221, 68, 55, 210, 9, 250, 92, 150, 235, 220,\n\t\t230, 18, 24, 128, 132, 23, 144, 150, 113, 93, 49, 238, 65,\n\t\t221, 156, 36, 78, 147, 237, 102, 154, 117, 248, 242, 120,\n\t\t181, 150, 136, 131, 5, 21, 251, 226, 6, 88, 202, 179, 29,\n\t\t89, 201, 20, 121, 184, 147, 82, 182, 79, 54, 180, 205, 145,\n\t\t214, 110, 187, 159, 38, 140, 180, 109, 167, 141, 4, 237, 183,\n\t\t119, 183, 34, 91, 52, 67, 122, 54, 151, 156, 254, 143, 35,\n\t\t211, 201, 125, 234, 216, 204, 244, 4, 48, 216, 178, 29, 139,\n\t\t169, 162, 45, 210, 76, 66, 213, 222, 22, 217, 86, 228, 145,\n\t\t79, 6, 231, 34, 91, 53, 123, 32, 31, 136, 198, 2, 83, 5, 93,\n\t\t81, 108, 74, 109, 69, 209, 11, 83, 96, 129, 158, 31, 176,\n\t\t181, 127, 98, 52, 123, 109, 45, 55, 244, 164, 36, 153, 170,\n\t\t106, 50, 154, 160, 73, 106, 56, 172, 170, 241, 160, 162, 114,\n\t\t253, 88, 103, 142, 219, 203, 198, 222, 171, 56, 109, 75, 168,\n\t\t21, 46, 97, 181, 69, 39, 225, 77, 113, 232, 212, 226, 52,\n\t\t209, 97, 152, 183, 157, 211, 59, 195, 53, 125, 84, 196, 105,\n\t\t40, 189, 83, 93, 169, 209, 59, 195, 129, 223, 192, 28, 155,\n\t\t228, 102, 246, 147, 3, 108, 242, 25, 15, 68, 83, 22, 33, 65,\n\t\t227, 40, 155, 231, 26, 108, 226, 219, 59, 157, 136, 90, 161,\n\t\t220, 44, 180, 218, 236, 174, 129, 247, 199, 22, 80, 244, 108,\n\t\t211, 68, 153, 154, 227, 144, 123, 105, 46, 222, 126, 15, 159,\n\t\t240, 232, 176, 66, 217, 132, 71, 158, 103, 179, 147, 166,\n\t\t77, 185, 83, 29, 99, 58, 11, 3, 163, 68, 216, 63, 211, 56,\n\t\t192, 166, 186, 45, 149, 120, 112, 120, 60, 105, 4, 71, 26,\n\t\t7, 27, 181, 189, 34, 81, 99, 125, 182, 97, 216, 67, 57, 28,\n\t\t152, 86, 121, 68, 67, 113, 124, 147, 158, 233, 143, 39, 173,\n\t\t253, 132, 205, 121, 7, 10, 211, 226, 17, 37, 32, 107, 236,\n\t\t145, 151, 58, 185, 66, 85, 20, 71, 61, 31, 27, 152, 239, 32,\n\t\t182, 120, 11, 123, 76, 71, 219, 155, 112, 226, 182, 216, 141,\n\t\t140, 211, 40, 123, 17, 152, 125, 49, 150, 189, 33, 226, 153,\n\t\t253, 145, 229, 237, 135, 223, 251, 237, 247, 30, 222, 174,\n\t\t105, 249, 90, 250, 254, 79, 220, 191, 173, 166, 29, 68, 185,\n\t\t2, 155, 133, 210, 49, 43, 92, 14, 91, 177, 52, 155, 234, 2,\n\t\t172, 199, 223, 99, 77, 164, 49, 116, 197, 132, 165, 203, 142,\n\t\t18, 140, 154, 32, 74, 14, 245, 83, 71, 254, 22, 10, 24, 254,\n\t\t62, 26, 96, 51, 139, 166, 165, 99, 75, 129, 232, 18, 23, 233,\n\t\t32, 6, 206, 89, 81, 36, 31, 18, 2, 96, 135, 88, 114, 106,\n\t\t200, 240, 213, 154, 16, 185, 39, 202, 6, 95, 177, 210, 65,\n\t\t219, 41, 242, 16, 181, 232, 117, 226, 144, 86, 226, 85, 159,\n\t\t81, 131, 202, 103, 174, 201, 110, 146, 99, 242, 159, 13, 202,\n\t\t249, 123, 211, 44, 49, 181, 89, 137, 203, 131, 55, 229, 229,\n\t\t65, 169, 124, 59, 232, 208, 111, 47, 255, 217, 216, 211, 170,\n\t\t250, 244, 222, 55, 234, 58, 9, 148, 110, 30, 106, 234, 250,\n\t\t117, 15, 234, 198, 177, 161, 155, 75, 226, 208, 80, 58, 83,\n\t\t169, 116, 124, 25, 114, 108, 30, 202, 67, 57, 92, 172, 176,\n\t\t141, 28, 194, 93, 32, 74, 143, 23, 36, 185, 249, 169, 65,\n\t\t203, 26, 100, 92, 54, 236, 166, 230, 143, 222, 119, 244, 44,\n\t\t119, 75, 8, 213, 14, 153, 51, 110, 62, 152, 114, 154, 135,\n\t\t106, 91, 143, 30, 237, 247, 220, 20, 56, 47, 72, 32, 78, 96,\n\t\t146, 107, 107, 92, 142, 183, 39, 74, 113, 25, 36, 89, 46,\n\t\t159, 113, 183, 21, 84, 194, 71, 18, 236, 13, 71, 183, 142,\n\t\t20, 23, 195, 138, 170, 125, 134, 195, 10, 174, 88, 135, 25,\n\t\t197, 12, 47, 22, 71, 216, 27, 238, 59, 154, 56, 18, 86, 130,\n\t\t237, 53, 44, 134, 183, 238, 207, 177, 126, 177, 5, 253, 33,\n\t\t46, 254, 109, 77, 140, 89, 141, 227, 8, 195, 39, 53, 154,\n\t\t29, 236, 14, 122, 225, 175, 174, 201, 82, 89, 97, 124, 250,\n\t\t144, 33, 202, 97, 103, 183, 19, 150, 69, 99, 72, 165, 68,\n\t\t41, 203, 82, 141, 215, 199, 115, 231, 87, 199, 142, 81, 73,\n\t\t202, 77, 42, 154, 17, 13, 198, 98, 193, 168, 161, 41, 147,\n\t\t57, 89, 28, 45, 240, 42, 234, 218, 168, 78, 113, 28, 114,\n\t\t95, 253, 92, 180, 117, 46, 84, 113, 235, 91, 106, 93, 37,\n\t\t174, 117, 42, 145, 149, 52, 13, 144, 195, 150, 133, 59, 108,\n\t\t184, 141, 234, 148, 113, 46, 194, 34, 96, 6, 191, 180, 178,\n\t\t137, 156, 55, 231, 128, 182, 220, 121, 131, 75, 23, 28, 23,\n\t\t101, 213, 105, 172, 47, 249, 183, 55, 40, 121, 174, 150, 73,\n\t\t132, 98, 186, 150, 214, 245, 104, 148, 21, 10, 138, 173, 134,\n\t\t99, 81, 93, 203, 176, 37, 116, 168, 120, 244, 165, 125, 21,\n\t\t29, 218, 82, 24, 41, 134, 98, 26, 187, 13, 31, 164, 106, 135,\n\t\t225, 109, 81, 158, 19, 11, 37, 122, 63, 217, 167, 251, 131,\n\t\t49, 114, 252, 229, 140, 18, 229, 2, 151, 129, 173, 125, 71,\n\t\t237, 203, 14, 184, 167, 230, 69, 198, 84, 222, 151, 63, 144,\n\t\t138, 155, 78, 1, 160, 88, 11, 142, 25, 175, 76, 111, 61, 58,\n\t\t127, 209, 49, 247, 125, 255, 9, 26, 75, 13, 36, 89, 102, 50,\n\t\t215, 55, 112, 116, 107, 237, 144, 224, 167, 159, 16, 179,\n\t\t243, 144, 215, 170, 231, 5, 14, 247, 181, 143, 187, 118, 245,\n\t\t46, 1, 177, 30, 251, 162, 152, 75, 103, 39, 72, 177, 90, 152,\n\t\t2, 218, 203, 87, 173, 71, 45, 106, 72, 225, 41, 111, 0, 87,\n\t\t161, 202, 223, 203, 91, 233, 211, 10, 117, 207, 109, 45, 205,\n\t\t87, 228, 124, 150, 101, 198, 75, 9, 41, 40, 229, 51, 120,\n\t\t29, 180, 163, 66, 165, 112, 213, 27, 226, 83, 208, 54, 188,\n\t\t86, 142, 80, 165, 123, 174, 176, 101, 80, 10, 18, 17, 170,\n\t\t37, 81, 138, 103, 243, 82, 4, 174, 236, 200, 238, 17, 239,\n\t\t177, 204, 102, 213, 197, 245, 223, 199, 248, 131, 245, 141,\n\t\t193, 203, 45, 79, 255, 170, 17, 231, 57, 160, 138, 51, 222,\n\t\t23, 110, 157, 174, 244, 54, 142, 251, 185, 237, 87, 223, 119,\n\t\t116, 93, 227, 190, 186, 211, 79, 59, 223, 48, 208, 151, 195,\n\t\t182, 25, 72, 13, 224, 119, 182, 160, 133, 206, 107, 215, 183,\n\t\t117, 199, 34, 251, 22, 224, 21, 70, 49, 46, 78, 71, 116, 224,\n\t\t112, 87, 102, 183, 245, 96, 5, 204, 63, 9, 101, 179, 235,\n\t\t40, 132, 66, 89, 215, 143, 216, 186, 158, 214, 53, 59, 2,\n\t\t77, 84, 89, 168, 140, 20, 35, 65, 28, 12, 118, 216, 79, 108,\n\t\t89, 117, 195, 136, 99, 87, 195, 24, 180, 35, 216, 36, 91,\n\t\t217, 245, 137, 136, 173, 233, 152, 181, 158, 86, 156, 37,\n\t\t121, 242, 85, 97, 12, 44, 125, 154, 92, 20, 218, 244, 28,\n\t\t35, 188, 24, 140, 29, 23, 100, 31, 200, 91, 194, 115, 171,\n\t\t252, 249, 8, 43, 209, 72, 118, 40, 6, 150, 103, 177, 36, 123,\n\t\t61, 4, 129, 82, 85, 45, 201, 115, 134, 42, 80, 180, 201, 239,\n\t\t140, 176, 174, 117, 223, 72, 70, 79, 33, 80, 91, 50, 200,\n\t\t47, 179, 251, 240, 48, 165, 127, 107, 210, 157, 125, 160,\n\t\t206, 170, 228, 239, 201, 162, 48, 4, 56, 215, 136, 72, 204,\n\t\t23, 194, 188, 113, 85, 234, 170, 51, 19, 78, 173, 139, 227,\n\t\t216, 112, 188, 242, 144, 239, 235, 250, 172, 18, 76, 2, 33,\n\t\t209, 51, 222, 91, 129, 174, 36, 131, 202, 79, 177, 44, 207,\n\t\t120, 5, 180, 172, 216, 80, 214, 43, 63, 59, 128, 210, 159,\n\t\t158, 236, 210, 120, 62, 239, 134, 49, 2, 38, 162, 35, 98,\n\t\t17, 60, 10, 226, 181, 16, 163, 9, 236, 233, 72, 11, 62, 197,\n\t\t219, 1, 198, 58, 168, 94, 248, 24, 247, 122, 131, 247, 109,\n\t\t57, 246, 109, 220, 119, 208, 139, 99, 224, 202, 160, 249,\n\t\t221, 111, 131, 34, 31, 37, 33, 188, 235, 213, 48, 34, 239,\n\t\t131, 123, 117, 95, 156, 89, 7, 181, 30, 92, 143, 125, 92,\n\t\t184, 150, 149, 206, 135, 130, 14, 13, 228, 69, 70, 232, 68,\n\t\t72, 248, 119, 158, 39, 103, 219, 173, 142, 123, 76, 13, 29,\n\t\t147, 15, 225, 246, 196, 203, 204, 39, 57, 100, 201, 112, 115,\n\t\t130, 7, 100, 225, 1, 31, 95, 86, 118, 151, 102, 172, 160,\n\t\t140, 117, 20, 177, 171, 95, 130, 157, 134, 135, 38, 73, 215,\n\t\t107, 24, 24, 59, 193, 67, 164, 113, 169, 92, 171, 155, 108,\n\t\t255, 61, 138, 186, 202, 205, 195, 220, 60, 225, 112, 51, 92,\n\t\t60, 80, 124, 110, 253, 101, 60, 89, 69, 57, 216, 173, 135,\n\t\t155, 35, 32, 119, 24, 105, 30, 14, 133, 186, 101, 253, 15,\n\t\t24, 247, 174, 136, 254, 17, 30, 1, 232, 193, 144, 199, 185,\n\t\t150, 94, 180, 140, 135, 198, 45, 203, 49, 205, 137, 9, 211,\n\t\t116, 44, 107, 188, 231, 168, 253, 254, 141, 74, 122, 102,\n\t\t163, 75, 221, 163, 185, 13, 138, 203, 229, 128, 192, 251,\n\t\t81, 208, 162, 54, 60, 252, 77, 191, 77, 145, 103, 82, 227,\n\t\t19, 118, 0, 115, 243, 87, 110, 239, 159, 88, 224, 53, 39,\n\t\t116, 149, 48, 103, 117, 202, 137, 206, 145, 133, 9, 196, 15,\n\t\t64, 5, 175, 27, 39, 254, 204, 105, 182, 204, 151, 124, 58,\n\t\t32, 176, 210, 224, 86, 36, 108, 253, 3, 21, 48, 239, 123,\n\t\t25, 93, 167, 131, 243, 204, 86, 201, 218, 161, 153, 121, 89,\n\t\t82, 219, 103, 84, 73, 158, 159, 57, 116, 120, 106, 109, 250,\n\t\t80, 213, 143, 254, 255, 190, 9, 176, 8, 33, 75, 231, 132,\n\t\t202, 166, 105, 201, 52, 165, 233, 77, 21, 194, 210, 155, 62,\n\t\t233, 217, 36, 218, 13, 48, 34, 153, 16, 58, 246, 134, 94,\n\t\t121, 96, 172, 237, 185, 120, 153, 122, 61, 203, 122, 143,\n\t\t189, 50, 14, 94, 172, 172, 47, 216, 6, 119, 179, 55, 236,\n\t\t103, 186, 73, 14, 78, 216, 254, 145, 27, 187, 227, 34, 101,\n\t\t239, 110, 38, 124, 113, 95, 60, 217, 49, 247, 69, 164, 60,\n\t\t198, 17, 107, 193, 60, 24, 207, 54, 123, 160, 41, 226, 62,\n\t\t191, 113, 136, 200, 40, 230, 218, 57, 114, 54, 151, 11, 177,\n\t\t197, 17, 138, 12, 89, 191, 18, 220, 176, 74, 75, 36, 183,\n\t\t214, 106, 173, 164, 99, 33, 20, 44, 120, 81, 133, 150, 86,\n\t\t86, 254, 223, 120, 223, 114, 123, 237, 255, 241, 247, 21,\n\t\t47, 242, 190, 208, 217, 139, 189, 238, 223, 242, 62, 231,\n\t\t98, 239, 123, 98, 229, 194, 175, 19, 123, 222, 245, 18, 222,\n\t\t116, 225, 175, 218, 240, 29, 130, 107, 47, 246, 5, 178, 147,\n\t\t241, 1, 113, 136, 245, 221, 17, 58, 176, 149, 0, 244, 112,\n\t\t7, 162, 126, 79, 220, 50, 43, 169, 116, 138, 6, 164, 250,\n\t\t113, 45, 225, 80, 194, 152, 143, 123, 31, 166, 182, 148, 16,\n\t\t21, 250, 192, 21, 186, 97, 145, 63, 176, 116, 173, 253, 61,\n\t\t205, 225, 248, 221, 4, 124, 172, 246, 226, 204, 137, 145,\n\t\t58, 61, 30, 173, 233, 137, 187, 24, 71, 106, 139, 29, 73,\n\t\t87, 151, 111, 155, 161, 220, 75, 100, 78, 4, 91, 18, 7, 118,\n\t\t96, 161, 65, 149, 163, 192, 99, 29, 5, 174, 194, 201, 142,\n\t\t71, 34, 19, 217, 4, 164, 121, 174, 164, 74, 162, 36, 75, 221,\n\t\t19, 228, 109, 10, 173, 46, 179, 137, 121, 121, 138, 32, 143,\n\t\t33, 69, 194, 145, 136, 136, 73, 47, 159, 221, 52, 4, 38, 246,\n\t\t222, 41, 143, 86, 243, 121, 118, 76, 152, 229, 99, 222, 45,\n\t\t122, 1, 9, 159, 103, 2, 20, 118, 139, 235, 249, 96, 242, 107,\n\t\t148, 174, 7, 101, 28, 157, 123, 93, 113, 62, 248, 82, 158,\n\t\t141, 161, 121, 15, 186, 75, 198, 48, 77, 120, 154, 101, 33,\n\t\t12, 22, 105, 89, 71, 109, 99, 47, 166, 184, 179, 165, 123,\n\t\t89, 171, 155, 254, 52, 154, 237, 60, 251, 176, 181, 215, 176,\n\t\t103, 58, 184, 159, 136, 143, 54, 42, 92, 205, 120, 184, 110,\n\t\t9, 235, 27, 150, 48, 222, 253, 154, 102, 124, 195, 47, 171,\n\t\t251, 227, 50, 162, 177, 125, 231, 230, 150, 58, 163, 170,\n\t\t169, 148, 202, 118, 36, 215, 77, 175, 225, 182, 125, 22, 115,\n\t\t30, 70, 100, 15, 214, 239, 78, 225, 225, 10, 191, 194, 119,\n\t\t49, 38, 91, 171, 221, 156, 189, 216, 79, 217, 77, 123, 241,\n\t\t208, 143, 223, 128, 184, 102, 37, 32, 164, 61, 24, 14, 232,\n\t\t174, 6, 229, 68, 115, 247, 23, 188, 48, 149, 244, 58, 176,\n\t\t228, 95, 65, 155, 115, 30, 182, 178, 253, 66, 243, 58, 112,\n\t\t9, 232, 198, 46, 6, 155, 145, 252, 249, 26, 137, 112, 45,\n\t\t190, 206, 128, 220, 213, 57, 160, 6, 225, 140, 151, 168, 78,\n\t\t162, 153, 98, 71, 173, 224, 70, 253, 133, 228, 25, 12, 11,\n\t\t141, 58, 48, 206, 151, 196, 133, 36, 227, 170, 155, 16, 45,\n\t\t160, 132, 108, 126, 21, 196, 93, 40, 223, 76, 160, 149, 116,\n\t\t133, 214, 20, 110, 42, 205, 79, 205, 201, 190, 115, 181, 74,\n\t\t116, 61, 3, 16, 46, 119, 197, 135, 94, 48, 110, 232, 94, 42,\n\t\t13, 19, 208, 227, 25, 217, 84, 52, 176, 53, 16, 75, 101, 140,\n\t\t149, 189, 167, 201, 83, 133, 45, 197, 58, 203, 84, 20, 83,\n\t\t51, 21, 247, 196, 51, 167, 247, 134, 186, 182, 19, 79, 148,\n\t\t53, 132, 137, 56, 221, 119, 168, 239, 52, 36, 30, 212, 202,\n\t\t203, 176, 52, 34, 154, 179, 117, 166, 156, 74, 13, 213, 55,\n\t\t37, 116, 178, 122, 58, 196, 86, 108, 60, 215, 48, 226, 161,\n\t\t132, 233, 157, 9, 157, 110, 63, 231, 51, 253, 173, 132, 134,\n\t\t185, 157, 20, 183, 143, 26, 14, 181, 255, 198, 147, 223, 115,\n\t\t121, 201, 8, 240, 244, 158, 125, 71, 12, 35, 169, 172, 3,\n\t\t44, 153, 193, 240, 41, 94, 156, 54, 52, 23, 37, 56, 23, 238,\n\t\t172, 215, 119, 98, 147, 62, 193, 143, 138, 205, 1, 30, 194,\n\t\t116, 219, 177, 109, 100, 13, 133, 215, 59, 110, 141, 68, 110,\n\t\t221, 129, 73, 239, 216, 154, 61, 60, 142, 233, 118, 107, 203,\n\t\t229, 151, 111, 241, 219, 137, 65, 89, 26, 47, 171, 52, 19,\n\t\t224, 236, 24, 109, 212, 139, 49, 231, 226, 101, 82, 2, 211,\n\t\t91, 167, 3, 79, 155, 103, 204, 151, 82, 178, 149, 193, 177,\n\t\t177, 65, 34, 100, 11, 133, 236, 249, 117, 245, 171, 139, 197,\n\t\t121, 118, 27, 208, 53, 139, 49, 114, 234, 66, 101, 2, 68,\n\t\t162, 31, 28, 219, 118, 134, 172, 92, 172, 48, 184, 57, 125,\n\t\t249, 150, 45, 222, 188, 224, 149, 229, 165, 151, 68, 189,\n\t\t120, 25, 94, 194, 251, 189, 119, 255, 87, 140, 47, 49, 207,\n\t\t35, 141, 115, 143, 98, 252, 82, 215, 178, 221, 245, 100, 174,\n\t\t185, 145, 111, 121, 162, 118, 126, 98, 166, 65, 254, 42, 16,\n\t\t15, 104, 85, 77, 53, 233, 115, 108, 234, 91, 206, 101, 98,\n\t\t209, 180, 182, 126, 67, 150, 237, 68, 224, 161, 88, 228, 238,\n\t\t72, 84, 162, 166, 106, 27, 52, 110, 223, 144, 25, 93, 136,\n\t\t165, 51, 177, 42, 125, 24, 118, 3, 85, 216, 78, 230, 48, 141,\n\t\t147, 39, 57, 247, 162, 139, 43, 62, 235, 43, 39, 47, 35, 43,\n\t\t224, 28, 68, 172, 224, 11, 124, 94, 38, 72, 101, 197, 117,\n\t\t229, 36, 239, 51, 162, 134, 210, 47, 245, 135, 190, 110, 56,\n\t\t234, 235, 89, 50, 175, 231, 88, 86, 56, 169, 177, 173, 22,\n\t\t50, 85, 205, 9, 177, 131, 36, 105, 153, 17, 243, 189, 78,\n\t\t252, 142, 80, 220, 210, 62, 97, 231, 163, 74, 96, 236, 159,\n\t\t89, 86, 50, 252, 201, 239, 178, 157, 106, 134, 180, 191, 254,\n\t\t84, 40, 153, 12, 63, 113, 60, 156, 116, 227, 22, 11, 228,\n\t\t35, 128, 140, 145, 96, 239, 171, 23, 121, 248, 204, 206, 190,\n\t\t50, 33, 162, 134, 6, 55, 92, 141, 195, 227, 151, 124, 215,\n\t\t9, 231, 0, 179, 60, 135, 84, 240, 204, 147, 86, 72, 146, 181,\n\t\t193, 232, 23, 250, 244, 76, 96, 89, 179, 194, 246, 195, 178,\n\t\t178, 24, 214, 11, 142, 230, 176, 31, 227, 52, 237, 93, 74,\n\t\t172, 47, 16, 9, 209, 253, 3, 150, 66, 91, 74, 204, 120, 206,\n\t\t78, 72, 57, 226, 181, 37, 159, 163, 202, 140, 64, 162, 67,\n\t\t142, 15, 176, 174, 225, 2, 15, 119, 250, 144, 19, 5, 147,\n\t\t250, 21, 115, 217, 178, 223, 101, 216, 165, 254, 95, 211,\n\t\t34, 82, 66, 50, 140, 127, 0, 123, 71, 114, 200, 72, 170, 191,\n\t\t19, 204, 109, 179, 233, 30, 202, 102, 153, 254, 146, 165,\n\t\t213, 244, 80, 222, 97, 253, 38, 160, 183, 95, 116, 210, 119,\n\t\t163, 143, 200, 154, 40, 145, 47, 163, 39, 7, 162, 203, 118,\n\t\t91, 5, 172, 188, 224, 107, 235, 149, 50, 4, 107, 98, 205,\n\t\t83, 67, 11, 18, 208, 21, 214, 154, 224, 183, 31, 4, 56, 1,\n\t\t242, 87, 185, 136, 60, 40, 201, 41, 165, 47, 244, 55, 81,\n\t\t251, 33, 139, 36, 242, 214, 182, 138, 40, 105, 1, 45, 148,\n\t\t150, 139, 70, 85, 142, 132, 204, 88, 80, 156, 9, 86, 229,\n\t\t76, 46, 44, 143, 153, 3, 50, 185, 94, 75, 135, 222, 103, 154,\n\t\t35, 118, 224, 138, 96, 52, 240, 6, 51, 159, 36, 230, 166,\n\t\t197, 223, 215, 66, 1, 93, 100, 215, 191, 239, 47, 217, 173,\n\t\t162, 26, 52, 255, 238, 203, 161, 176, 150, 9, 253, 193, 3,\n\t\t184, 62, 148, 221, 62, 180, 38, 140, 11, 83, 66, 29, 227,\n\t\t109, 198, 187, 229, 229, 157, 40, 204, 117, 254, 181, 250,\n\t\t186, 61, 236, 148, 98, 188, 214, 116, 127, 236, 57, 57, 41,\n\t\t97, 159, 137, 89, 43, 188, 31, 57, 110, 35, 185, 191, 115,\n\t\t130, 166, 157, 192, 191, 51, 75, 138, 252, 176, 29, 14, 61,\n\t\t193, 251, 17, 137, 65, 131, 63, 51, 4, 219, 161, 36, 108,\n\t\t97, 243, 202, 37, 248, 231, 97, 252, 242, 50, 10, 131, 46,\n\t\t160, 164, 171, 176, 4, 115, 248, 121, 14, 135, 48, 176, 65,\n\t\t1, 201, 127, 40, 56, 88, 166, 231, 84, 219, 146, 90, 84, 177,\n\t\t6, 246, 211, 80, 105, 80, 219, 5, 171, 27, 44, 215, 179, 78,\n\t\t120, 17, 11, 163, 24, 202, 114, 32, 163, 247, 125, 33, 58,\n\t\t24, 12, 69, 158, 228, 189, 143, 247, 196, 176, 203, 11, 63,\n\t\t192, 120, 225, 62, 228, 204, 216, 104, 163, 241, 13, 150,\n\t\t252, 53, 146, 192, 138, 171, 23, 221, 222, 60, 41, 22, 19,\n\t\t110, 92, 158, 102, 212, 7, 151, 11, 186, 4, 162, 128, 13,\n\t\t30, 85, 46, 167, 74, 67, 161, 128, 215, 43, 222, 77, 2, 13,\n\t\t147, 232, 196, 164, 89, 73, 159, 214, 197, 129, 8, 17, 69,\n\t\t118, 216, 80, 41, 97, 13, 186, 93, 151, 70, 67, 68, 215, 70,\n\t\t37, 125, 187, 73, 200, 18, 99, 35, 71, 21, 250, 60, 48, 163,\n\t\t207, 83, 101, 212, 106, 255, 121, 192, 124, 168, 81, 136,\n\t\t93, 78, 233, 229, 141, 108, 242, 33, 64, 99, 25, 50, 181,\n\t\t55, 214, 115, 241, 55, 106, 230, 58, 27, 253, 32, 208, 214,\n\t\t18, 198, 18, 159, 78, 120, 81, 155, 162, 229, 74, 3, 245,\n\t\t213, 254, 104, 217, 220, 215, 149, 100, 210, 89, 39, 110,\n\t\t127, 15, 173, 10, 229, 81, 82, 190, 101, 143, 30, 12, 234,\n\t\t142, 97, 167, 198, 168, 157, 180, 237, 231, 51, 179, 150,\n\t\t27, 221, 97, 245, 176, 152, 156, 190, 194, 54, 208, 12, 100,\n\t\t239, 101, 129, 164, 224, 215, 63, 247, 198, 215, 141, 247,\n\t\t196, 215, 237, 68, 157, 199, 248, 186, 24, 14, 245, 127, 160,\n\t\t41, 118, 27, 109, 61, 86, 255, 23, 228, 136, 161, 182, 224,\n\t\t69, 215, 229, 129, 22, 162, 185, 158, 232, 186, 221, 53, 125,\n\t\t134, 113, 167, 123, 80, 78, 229, 3, 9, 238, 137, 192, 194,\n\t\t62, 84, 233, 137, 215, 162, 92, 56, 248, 101, 157, 124, 122,\n\t\t125, 136, 150, 246, 129, 110, 0, 151, 189, 214, 86, 150, 9,\n\t\t106, 119, 220, 145, 92, 111, 196, 150, 65, 43, 215, 13, 231,\n\t\t242, 182, 238, 117, 236, 79, 16, 214, 149, 185, 249, 50, 203,\n\t\t236, 51, 216, 190, 120, 25, 217, 235, 158, 178, 46, 94, 180,\n\t\t53, 207, 4, 251, 223, 89, 143, 189, 200, 255, 148, 155, 63,\n\t\t112, 27, 155, 139, 151, 49, 80, 213, 245, 180, 166, 87, 171,\n\t\t40, 77, 174, 246, 28, 93, 180, 228, 171, 27, 221, 225, 30,\n\t\t9, 231, 125, 207, 150, 151, 249, 61, 21, 95, 24, 3, 0, 190,\n\t\t189, 232, 55, 92, 193, 94, 121, 203, 4, 202, 190, 47, 213,\n\t\t181, 95, 191, 120, 185, 151, 210, 186, 118, 203, 164, 198,\n\t\t74, 171, 29, 213, 180, 119, 232, 221, 185, 11, 214, 131, 125,\n\t\t232, 111, 184, 14, 135, 40, 225, 162, 155, 145, 239, 89, 125,\n\t\t140, 223, 169, 186, 34, 152, 183, 90, 125, 36, 173, 217, 54,\n\t\t143, 70, 205, 215, 34, 95, 61, 193, 50, 118, 118, 191, 31,\n\t\t244, 158, 58, 162, 250, 8, 205, 196, 116, 51, 142, 250, 101,\n\t\t207, 148, 190, 57, 61, 131, 102, 187, 211, 140, 138, 46, 135,\n\t\t179, 225, 132, 108, 201, 137, 52, 138, 134, 79, 91, 86, 185,\n\t\t145, 28, 122, 147, 36, 253, 118, 94, 81, 242, 228, 111, 81,\n\t\t70, 172, 37, 27, 101, 203, 114, 229, 61, 231, 254, 5, 227,\n\t\t42, 174, 177, 213, 211, 32, 106, 40, 209, 183, 38, 127, 158,\n\t\t60, 180, 54, 237, 72, 176, 140, 66, 202, 216, 93, 111, 112,\n\t\t155, 70, 92, 9, 146, 127, 181, 172, 81, 221, 110, 191, 17,\n\t\t190, 224, 113, 228, 234, 223, 103, 235, 207, 113, 161, 39,\n\t\t210, 149, 246, 27, 109, 125, 20, 47, 122, 95, 139, 220, 106,\n\t\t154, 99, 58, 218, 136, 185, 126, 105, 237, 77, 203, 32, 87,\n\t\t37, 14, 102, 234, 99, 112, 62, 151, 115, 235, 224, 135, 140,\n\t\t39, 248, 144, 96, 8, 54, 172, 242, 194, 51, 0, 195, 29, 6,\n\t\t153, 67, 51, 236, 132, 163, 108, 66, 102, 117, 109, 179, 217,\n\t\t24, 38, 133, 183, 253, 71, 205, 94, 91, 251, 184, 170, 83,\n\t\t56, 32, 251, 84, 203, 16, 103, 219, 43, 243, 146, 161, 85,\n\t\t201, 74, 171, 189, 66, 190, 200, 166, 102, 181, 253, 81, 60,\n\t\t65, 86, 176, 221, 254, 24, 215, 123, 113, 31, 149, 67, 221,\n\t\t102, 135, 182, 173, 65, 136, 238, 211, 175, 87, 3, 75, 144,\n\t\t32, 107, 229, 84, 251, 108, 170, 124, 141, 76, 233, 81, 118,\n\t\t152, 75, 149, 215, 209, 106, 199, 239, 101, 187, 222, 55,\n\t\t96, 189, 204, 143, 27, 138, 63, 139, 54, 94, 220, 208, 171,\n\t\t155, 116, 141, 194, 63, 187, 218, 241, 173, 236, 108, 122,\n\t\t237, 191, 169, 47, 210, 202, 140, 178, 225, 27, 200, 137,\n\t\t238, 221, 231, 61, 183, 107, 175, 179, 134, 122, 12, 110,\n\t\t67, 208, 117, 150, 230, 147, 52, 248, 207, 35, 126, 139, 39,\n\t\t243, 239, 232, 54, 150, 150, 38, 243, 237, 179, 249, 201,\n\t\t37, 182, 188, 92, 91, 41, 207, 148, 223, 139, 34, 248, 39,\n\t\t93, 97, 126, 251, 57, 92, 44, 134, 114, 96, 92, 154, 99, 21,\n\t\t86, 126, 167, 95, 76, 47, 187, 124, 223, 135, 217, 28, 215,\n\t\t16, 22, 64, 115, 89, 194, 206, 70, 109, 17, 222, 63, 217,\n\t\t21, 209, 123, 140, 151, 199, 68, 48, 158, 198, 23, 122, 167,\n\t\t233, 75, 87, 124, 105, 177, 5, 225, 186, 197, 64, 220, 106,\n\t\t191, 59, 210, 47, 165, 80, 144, 176, 227, 86, 45, 149, 144,\n\t\t181, 197, 127, 94, 212, 228, 68, 74, 187, 117, 7, 136, 8,\n\t\t120, 153, 150, 249, 238, 44, 223, 61, 203, 88, 198, 207, 154,\n\t\t81, 211, 137, 124, 22, 151, 29, 239, 50, 229, 80, 202, 124,\n\t\t213, 171, 204, 84, 72, 54, 223, 101, 63, 189, 129, 100, 181,\n\t\t187, 241, 236, 204, 207, 146, 47, 49, 218, 176, 3, 169, 50,\n\t\t124, 153, 23, 21, 194, 131, 215, 238, 224, 108, 23, 93, 176,\n\t\t237, 102, 39, 225, 90, 240, 251, 32, 233, 193, 48, 170, 72,\n\t\t201, 231, 68, 227, 176, 179, 95, 209, 136, 70, 140, 197, 32,\n\t\t183, 87, 176, 175, 11, 17, 99, 152, 37, 130, 251, 217, 134,\n\t\t254, 202, 43, 158, 118, 174, 119, 136, 97, 172, 232, 202,\n\t\t144, 113, 204, 208, 149, 75, 113, 3, 71, 231, 101, 61, 9,\n\t\t82, 77, 5, 249, 187, 175, 250, 98, 152, 143, 119, 165, 255,\n\t\t158, 30, 200, 139, 87, 238, 245, 147, 40, 196, 47, 115, 249,\n\t\t42, 210, 248, 192, 43, 22, 22, 94, 177, 240, 10, 20, 60, 63,\n\t\t232, 75, 159, 202, 217, 182, 214, 126, 148, 90, 5, 219, 6,\n\t\t215, 225, 179, 11, 112, 242, 26, 20, 79, 127, 213, 151, 38,\n\t\t31, 73, 89, 140, 130, 166, 44, 114, 198, 16, 148, 30, 30,\n\t\t9, 202, 195, 106, 216, 11, 35, 229, 5, 47, 242, 34, 37, 53,\n\t\t60, 61, 214, 28, 184, 112, 168, 5, 128, 86, 0, 131, 51, 128,\n\t\t210, 84, 209, 152, 12, 224, 78, 178, 140, 239, 103, 11, 158,\n\t\t122, 131, 28, 251, 4, 248, 87, 182, 191, 129, 3, 232, 113,\n\t\t180, 97, 254, 203, 108, 60, 158, 141, 95, 170, 82, 201, 164,\n\t\t123, 15, 236, 165, 166, 68, 213, 122, 70, 87, 13, 81, 181,\n\t\t3, 82, 68, 54, 228, 136, 20, 176, 85, 209, 80, 245, 12, 57,\n\t\t13, 78, 158, 159, 248, 48, 14, 182, 43, 208, 6, 122, 103,\n\t\t28, 238, 63, 72, 172, 0, 21, 195, 97, 145, 6, 76, 209, 146,\n\t\t39, 183, 71, 147, 212, 86, 84, 21, 148, 10, 170, 170, 216,\n\t\t52, 25, 221, 62, 41, 227, 184, 248, 99, 92, 87, 131, 173,\n\t\t117, 63, 27, 25, 130, 130, 142, 142, 141, 38, 216, 200, 85,\n\t\t156, 4, 134, 51, 140, 184, 95, 136, 134, 238, 101, 4, 40,\n\t\t0, 92, 130, 56, 134, 143, 3, 148, 77, 110, 255, 184, 141,\n\t\t247, 36, 135, 252, 154, 40, 42, 226, 235, 53, 229, 13, 228,\n\t\t249, 121, 197, 76, 246, 41, 131, 242, 96, 42, 53, 152, 122,\n\t\t181, 42, 106, 52, 70, 111, 34, 162, 76, 6, 22, 228, 100, 159,\n\t\t165, 52, 66, 96, 201, 181, 141, 178, 217, 143, 206, 19, 249,\n\t\t47, 36, 122, 134, 221, 252, 149, 247, 91, 125, 134, 105, 157,\n\t\t32, 91, 83, 112, 227, 87, 180, 152, 202, 110, 125, 64, 148,\n\t\t69, 82, 185, 237, 15, 45, 75, 79, 6, 222, 243, 182, 24, 44,\n\t\t226, 205, 107, 15, 51, 226, 162, 116, 236, 124, 85, 70, 195,\n\t\t179, 140, 91, 218, 131, 24, 135, 128, 204, 210, 4, 221, 60,\n\t\t0, 162, 172, 15, 52, 83, 225, 96, 46, 106, 86, 244, 97, 23,\n\t\t206, 145, 230, 12, 7, 147, 242, 136, 219, 239, 232, 41, 93,\n\t\t20, 197, 199, 19, 125, 147, 246, 215, 60, 219, 95, 194, 166,\n\t\t244, 246, 255, 218, 36, 234, 131, 154, 180, 9, 97, 232, 51,\n\t\t186, 164, 205, 104, 146, 158, 145, 85, 233, 179, 201, 241,\n\t\t236, 38, 4, 64, 153, 168, 255, 85, 54, 171, 26, 70, 170, 47,\n\t\t57, 117, 221, 181, 93, 113, 93, 250, 103, 143, 107, 218, 227,\n\t\t8, 60, 159, 205, 234, 10, 61, 154, 29, 117, 168, 242, 184,\n\t\t66, 103, 216, 26, 236, 103, 172, 255, 63, 64, 190, 206, 104,\n\t\t100, 141, 141, 231, 203, 4, 193, 65, 104, 55, 64, 26, 228,\n\t\t142, 168, 197, 138, 234, 52, 167, 17, 111, 194, 205, 137,\n\t\t38, 98, 24, 74, 182, 140, 112, 30, 96, 229, 216, 4, 36, 15,\n\t\t95, 6, 93, 119, 252, 202, 214, 248, 196, 188, 97, 181, 52,\n\t\t146, 147, 45, 66, 102, 115, 185, 89, 66, 44, 57, 71, 180,\n\t\t150, 162, 208, 71, 117, 93, 50, 89, 127, 145, 217, 63, 214,\n\t\t95, 204, 107, 199, 199, 53, 67, 209, 181, 82, 73, 211, 21,\n\t\t163, 220, 223, 175, 25, 42, 107, 202, 24, 213, 84, 99, 75,\n\t\t235, 247, 127, 191, 101, 104, 67, 138, 33, 73, 71, 76, 245,\n\t\t202, 43, 85, 243, 136, 36, 25, 202, 144, 68, 62, 20, 42, 132,\n\t\t20, 194, 158, 160, 209, 16, 187, 84, 149, 201, 177, 198, 219,\n\t\t26, 134, 174, 106, 218, 248, 221, 227, 154, 166, 234, 205,\n\t\t226, 137, 34, 59, 166, 90, 106, 33, 165, 81, 149, 205, 19,\n\t\t150, 171, 247, 91, 237, 140, 55, 207, 87, 122, 143, 167, 101,\n\t\t246, 86, 39, 106, 39, 94, 153, 71, 13, 122, 247, 29, 76, 220,\n\t\t11, 228, 95, 232, 250, 21, 180, 198, 27, 194, 133, 132, 130,\n\t\t214, 124, 223, 194, 116, 212, 151, 67, 162, 231, 101, 249,\n\t\t47, 226, 127, 223, 195, 252, 53, 60, 32, 119, 225, 83, 127,\n\t\t19, 15, 222, 254, 114, 178, 46, 235, 196, 142, 83, 93, 217,\n\t\t49, 224, 233, 65, 132, 199, 189, 194, 146, 112, 3, 235, 233,\n\t\t174, 9, 227, 180, 103, 198, 193, 72, 98, 153, 199, 29, 230,\n\t\t35, 19, 45, 120, 235, 51, 115, 98, 157, 187, 189, 227, 69,\n\t\t222, 87, 123, 181, 200, 101, 195, 51, 96, 87, 0, 216, 21,\n\t\t115, 18, 98, 0, 43, 180, 210, 252, 110, 40, 9, 86, 0, 108,\n\t\t203, 38, 171, 169, 119, 158, 12, 198, 227, 193, 249, 113,\n\t\t43, 20, 178, 18, 89, 167, 63, 177, 251, 134, 221, 236, 212,\n\t\t101, 248, 197, 175, 194, 173, 40, 176, 12, 114, 164, 101,\n\t\t26, 146, 168, 233, 150, 114, 228, 38, 210, 126, 95, 97, 177,\n\t\t240, 121, 184, 7, 102, 106, 216, 179, 209, 251, 209, 147,\n\t\t151, 244, 143, 166, 98, 81, 125, 124, 158, 221, 144, 77, 244,\n\t\t149, 162, 229, 190, 233, 221, 187, 167, 225, 252, 37, 15,\n\t\t225, 119, 191, 10, 183, 127, 9, 57, 34, 33, 59, 95, 157, 144,\n\t\t227, 166, 162, 203, 68, 236, 127, 219, 49, 233, 15, 217, 67,\n\t\t81, 110, 241, 139, 115, 95, 23, 223, 66, 158, 22, 166, 133,\n\t\t237, 194, 221, 194, 131, 108, 14, 44, 83, 8, 17, 89, 68, 167,\n\t\t143, 98, 133, 211, 173, 121, 17, 229, 43, 96, 168, 7, 174,\n\t\t58, 64, 222, 32, 201, 1, 177, 105, 185, 227, 93, 215, 108,\n\t\t212, 202, 165, 68, 80, 68, 116, 69, 32, 218, 220, 189, 7,\n\t\t193, 225, 85, 172, 28, 182, 110, 105, 22, 192, 62, 6, 205,\n\t\t107, 107, 14, 60, 141, 22, 168, 90, 76, 32, 72, 7, 171, 103,\n\t\t82, 204, 229, 183, 37, 105, 200, 102, 28, 168, 57, 154, 186,\n\t\t102, 7, 181, 165, 49, 45, 184, 121, 216, 216, 173, 37, 108,\n\t\t81, 139, 5, 10, 67, 102, 132, 16, 197, 162, 78, 124, 124,\n\t\t212, 160, 138, 18, 47, 25, 137, 96, 204, 8, 233, 9, 131, 134,\n\t\t195, 100, 121, 221, 213, 122, 172, 247, 106, 221, 255, 130,\n\t\t244, 43, 224, 5, 159, 195, 59, 41, 60, 38, 78, 164, 144, 85,\n\t\t11, 244, 245, 5, 156, 180, 158, 151, 21, 245, 138, 160, 158,\n\t\t223, 119, 229, 38, 54, 45, 36, 104, 56, 234, 40, 162, 109,\n\t\t210, 128, 78, 196, 128, 17, 87, 226, 134, 65, 183, 179, 86,\n\t\t53, 194, 26, 35, 40, 51, 33, 173, 247, 202, 128, 213, 115,\n\t\t165, 210, 251, 224, 61, 236, 22, 246, 190, 96, 48, 198, 101,\n\t\t72, 255, 138, 126, 246, 95, 195, 62, 186, 83, 56, 242, 111,\n\t\t237, 159, 165, 68, 7, 241, 208, 33, 104, 167, 224, 174, 7,\n\t\t94, 82, 119, 36, 159, 215, 245, 227, 108, 185, 165, 105, 199,\n\t\t117, 173, 253, 13, 182, 236, 122, 183, 108, 72, 176, 211,\n\t\t94, 94, 47, 252, 77, 141, 61, 7, 86, 98, 199, 117, 29, 158,\n\t\t163, 189, 91, 150, 217, 90, 238, 221, 186, 107, 131, 253,\n\t\t69, 215, 6, 125, 30, 176, 62, 156, 142, 204, 226, 188, 68,\n\t\t19, 18, 21, 46, 242, 75, 116, 229, 155, 16, 149, 174, 129,\n\t\t210, 63, 21, 224, 181, 99, 83, 49, 64, 50, 98, 31, 74, 189,\n\t\t252, 230, 121, 9, 228, 77, 227, 87, 133, 3, 115, 111, 176,\n\t\t194, 97, 243, 141, 239, 103, 91, 235, 253, 175, 183, 34, 36,\n\t\t100, 125, 108, 192, 144, 237, 164, 254, 107, 118, 208, 90,\n\t\t12, 133, 110, 181, 66, 0, 0, 64, 255, 191, 151, 148, 168,\n\t\t164, 235, 73, 45, 16, 96, 13, 254, 191, 3, 219, 34, 175, 139,\n\t\t199, 103, 88, 150, 225, 208, 67, 242, 53, 154, 100, 232, 14,\n\t\t189, 86, 57, 136, 9, 237, 36, 33, 97, 39, 50, 104, 133, 213,\n\t\t176, 101, 133, 216, 198, 12, 227, 38, 193, 24, 6, 73, 189,\n\t\t210, 136, 188, 221, 138, 138, 81, 57, 244, 227, 9, 118, 59,\n\t\t187, 37, 108, 22, 13, 77, 36, 97, 163, 26, 78, 88, 87, 6,\n\t\t237, 29, 236, 69, 84, 50, 174, 151, 94, 107, 36, 41, 123,\n\t\t201, 253, 242, 117, 60, 241, 80, 217, 10, 179, 210, 33, 175,\n\t\t250, 194, 185, 47, 48, 94, 252, 203, 140, 175, 219, 229, 98,\n\t\t98, 123, 230, 229, 21, 73, 165, 81, 96, 64, 216, 200, 115,\n\t\t192, 159, 194, 117, 59, 128, 143, 198, 16, 181, 158, 191,\n\t\t85, 195, 241, 134, 106, 163, 158, 0, 80, 96, 74, 167, 142,\n\t\t143, 42, 32, 19, 141, 169, 191, 140, 69, 190, 16, 9, 39, 18,\n\t\t195, 247, 134, 2, 175, 191, 99, 107, 48, 216, 61, 85, 31,\n\t\t26, 185, 226, 61, 15, 23, 22, 103, 83, 201, 232, 72, 57, 210,\n\t\t103, 198, 172, 72, 159, 173, 68, 190, 107, 166, 204, 163,\n\t\t163, 155, 181, 24, 91, 212, 73, 26, 185, 81, 15, 180, 159,\n\t\t23, 165, 205, 191, 31, 142, 62, 57, 116, 83, 50, 217, 61,\n\t\t181, 215, 56, 254, 71, 149, 218, 236, 162, 158, 14, 196, 250,\n\t\t34, 86, 212, 234, 139, 164, 182, 245, 121, 180, 249, 69, 180,\n\t\t87, 233, 19, 114, 194, 16, 206, 89, 96, 1, 202, 102, 233,\n\t\t120, 25, 240, 159, 208, 66, 59, 14, 116, 100, 166, 89, 103,\n\t\t20, 198, 169, 1, 28, 78, 125, 51, 225, 44, 172, 194, 53, 127,\n\t\t30, 135, 171, 192, 42, 4, 17, 133, 96, 3, 191, 98, 29, 216,\n\t\t43, 64, 6, 204, 50, 166, 139, 252, 31, 1, 189, 41, 203, 239,\n\t\t76, 89, 134, 18, 80, 22, 3, 5, 195, 8, 92, 167, 7, 190, 178,\n\t\t212, 10, 68, 135, 49, 32, 239, 139, 107, 75, 209, 128, 206,\n\t\t99, 243, 126, 196, 96, 125, 64, 235, 55, 148, 156, 62, 96,\n\t\t69, 194, 245, 216, 85, 145, 166, 30, 56, 122, 105, 66, 140,\n\t\t197, 182, 176, 231, 173, 232, 205, 47, 43, 210, 61, 73, 211,\n\t\t82, 228, 75, 136, 33, 154, 86, 222, 36, 87, 106, 45, 0, 141,\n\t\t196, 71, 12, 19, 225, 108, 32, 218, 194, 52, 91, 233, 152,\n\t\t22, 123, 160, 92, 182, 100, 35, 20, 87, 195, 151, 158, 109,\n\t\t234, 251, 99, 91, 33, 184, 123, 127, 71, 191, 249, 37, 182,\n\t\t150, 134, 24, 206, 29, 174, 139, 53, 102, 21, 85, 233, 226,\n\t\t20, 120, 96, 208, 50, 107, 247, 42, 40, 222, 17, 74, 188,\n\t\t140, 144, 87, 160, 116, 148, 167, 231, 36, 208, 78, 214, 103,\n\t\t42, 162, 192, 25, 174, 200, 240, 175, 165, 109, 71, 211, 28,\n\t\t59, 253, 107, 195, 145, 5, 153, 22, 247, 192, 49, 13, 133,\n\t\t3, 17, 113, 79, 145, 202, 186, 40, 13, 238, 22, 19, 182, 19,\n\t\t143, 197, 29, 59, 33, 238, 30, 148, 68, 52, 44, 32, 52, 105,\n\t\t231, 174, 140, 235, 166, 169, 199, 175, 204, 217, 201, 5,\n\t\t85, 238, 175, 177, 67, 213, 212, 109, 82, 235, 151, 85, 91,\n\t\t20, 101, 41, 53, 45, 134, 141, 128, 170, 6, 140, 176, 56,\n\t\t157, 146, 100, 81, 244, 203, 134, 128, 255, 216, 9, 145, 190,\n\t\t58, 246, 157, 221, 200, 99, 126, 142, 210, 181, 45, 232, 216,\n\t\t178, 225, 42, 153, 173, 1, 0, 133, 212, 227, 38, 201, 167,\n\t\t65, 125, 142, 63, 46, 175, 228, 114, 202, 152, 245, 29, 140,\n\t\t164, 90, 173, 164, 149, 232, 72, 84, 137, 12, 68, 2, 250,\n\t\t167, 245, 0, 201, 129, 202, 189, 197, 197, 73, 156, 237, 228,\n\t\t18, 166, 28, 134, 87, 253, 147, 104, 178, 160, 105, 193, 254,\n\t\t80, 84, 51, 77, 193, 31, 163, 12, 56, 39, 144, 26, 238, 64,\n\t\t132, 153, 117, 58, 230, 196, 249, 37, 244, 75, 15, 126, 37,\n\t\t26, 51, 175, 218, 54, 240, 177, 177, 247, 247, 148, 59, 93,\n\t\t193, 98, 159, 213, 78, 107, 235, 254, 122, 193, 222, 151,\n\t\t124, 197, 47, 36, 161, 244, 219, 0, 81, 93, 219, 235, 219,\n\t\t10, 235, 227, 82, 250, 34, 212, 122, 246, 75, 226, 116, 115,\n\t\t130, 64, 208, 250, 2, 15, 138, 200, 35, 212, 146, 244, 222,\n\t\t153, 153, 189, 51, 159, 122, 114, 147, 61, 147, 147, 228,\n\t\t248, 80, 92, 150, 114, 51, 182, 43, 148, 152, 154, 129, 179,\n\t\t237, 239, 239, 236, 207, 19, 74, 73, 190, 223, 143, 79, 24,\n\t\t244, 44, 227, 206, 243, 20, 132, 55, 66, 5, 49, 2, 164, 94,\n\t\t164, 254, 200, 98, 87, 91, 143, 170, 109, 220, 36, 54, 170,\n\t\t37, 20, 89, 119, 150, 19, 57, 62, 84, 87, 206, 171, 25, 129,\n\t\t227, 76, 240, 118, 213, 217, 172, 58, 128, 45, 59, 47, 92,\n\t\t234, 234, 140, 1, 34, 170, 38, 117, 162, 112, 148, 46, 128,\n\t\t189, 237, 79, 123, 125, 148, 3, 88, 54, 16, 52, 214, 237,\n\t\t169, 208, 184, 47, 178, 146, 85, 197, 22, 111, 99, 178, 116,\n\t\t126, 107, 190, 23, 191, 231, 63, 137, 134, 246, 180, 198,\n\t\t22, 166, 133, 184, 198, 190, 75, 179, 251, 34, 208, 204, 33,\n\t\t112, 249, 94, 38, 213, 54, 40, 77, 126, 121, 94, 187, 242,\n\t\t47, 252, 40, 13, 88, 90, 180, 79, 211, 204, 24, 159, 71, 215,\n\t\t8, 200, 200, 34, 184, 230, 17, 162, 113, 180, 183, 174, 226,\n\t\t4, 202, 33, 34, 36, 180, 23, 87, 61, 169, 139, 77, 145, 254,\n\t\t187, 172, 133, 135, 34, 145, 56, 155, 219, 95, 39, 245, 125,\n\t\t16, 47, 101, 41, 63, 41, 138, 16, 214, 85, 35, 96, 177, 166,\n\t\t65, 228, 86, 81, 140, 151, 226, 219, 25, 139, 13, 106, 130,\n\t\t28, 89, 250, 207, 165, 106, 125, 255, 129, 122, 117, 240,\n\t\t63, 15, 205, 206, 182, 79, 77, 230, 85, 139, 209, 6, 93, 214,\n\t\t201, 15, 160, 93, 126, 64, 24, 153, 99, 164, 194, 164, 241,\n\t\t82, 98, 17, 64, 245, 75, 145, 127, 4, 189, 195, 63, 70, 124,\n\t\t101, 14, 10, 5, 40, 243, 250, 162, 52, 207, 251, 132, 184,\n\t\t116, 222, 7, 64, 237, 175, 121, 229, 201, 117, 11, 31, 218,\n\t\t184, 232, 36, 63, 217, 226, 197, 248, 24, 20, 227, 99, 145,\n\t\t170, 255, 3, 134, 218, 103, 47, 82, 254, 73, 225, 255, 235,\n\t\t50, 223, 12, 101, 190, 249, 255, 95, 101, 30, 230, 200, 199,\n\t\t255, 214, 50, 83, 54, 11, 110, 233, 174, 88, 95, 86, 89, 75,\n\t\t141, 93, 47, 165, 160, 87, 225, 34, 51, 254, 114, 10, 24,\n\t\t234, 241, 83, 1, 223, 161, 237, 194, 37, 140, 83, 191, 66,\n\t\t120, 165, 112, 179, 112, 135, 240, 90, 225, 1, 225, 17, 225,\n\t\t81, 225, 125, 24, 199, 24, 113, 49, 24, 157, 109, 226, 2,\n\t\t41, 92, 12, 115, 216, 143, 132, 131, 97, 54, 98, 170, 39,\n\t\t1, 243, 16, 242, 189, 213, 121, 111, 156, 239, 233, 222, 236,\n\t\t243, 47, 223, 248, 246, 142, 128, 77, 93, 183, 39, 111, 249,\n\t\t0, 141, 81, 139, 210, 62, 49, 25, 77, 228, 38, 90, 151, 109,\n\t\t105, 14, 167, 54, 39, 48, 211, 101, 90, 112, 123, 28, 183,\n\t\t191, 129, 219, 105, 164, 177, 75, 190, 28, 255, 53, 247, 250,\n\t\t210, 124, 123, 9, 110, 29, 223, 150, 204, 126, 128, 178, 23,\n\t\t196, 104, 246, 240, 128, 53, 145, 107, 255, 5, 153, 222, 114,\n\t\t89, 73, 51, 35, 152, 187, 23, 159, 239, 248, 182, 156, 23,\n\t\t195, 63, 223, 177, 255, 138, 230, 198, 87, 187, 105, 190,\n\t\t237, 209, 255, 236, 238, 177, 49, 191, 0, 76, 184, 223, 230,\n\t\t28, 90, 203, 225, 254, 83, 40, 2, 114, 155, 50, 67, 92, 191,\n\t\t252, 28, 74, 157, 207, 9, 184, 203, 113, 99, 205, 201, 252,\n\t\t72, 114, 144, 173, 158, 44, 77, 187, 86, 135, 109, 72, 14,\n\t\t232, 145, 64, 148, 155, 17, 229, 70, 51, 57, 188, 12, 47,\n\t\t206, 101, 70, 249, 35, 78, 231, 39, 11, 70, 10, 110, 210,\n\t\t175, 197, 91, 195, 147, 209, 96, 52, 128, 241, 35, 186, 242,\n\t\t127, 147, 205, 95, 208, 215, 4, 69, 45, 32, 28, 195, 52, 56,\n\t\t77, 163, 255, 92, 5, 221, 238, 1, 7, 8, 210, 176, 0, 96, 35,\n\t\t3, 214, 230, 106, 132, 187, 216, 168, 101, 116, 229, 101,\n\t\t51, 129, 196, 209, 100, 28, 112, 215, 117, 35, 108, 123, 18,\n\t\t13, 98, 170, 251, 84, 106, 175, 216, 175, 81, 84, 155, 202,\n\t\t202, 196, 241, 109, 155, 46, 37, 98, 85, 145, 169, 173, 42,\n\t\t153, 45, 195, 165, 186, 40, 42, 79, 191, 105, 247, 172, 164,\n\t\t18, 153, 148, 198, 34, 249, 209, 70, 250, 146, 147, 35, 131,\n\t\t18, 59, 84, 165, 77, 187, 190, 134, 99, 106, 216, 113, 250,\n\t\t46, 119, 198, 198, 156, 203, 63, 169, 200, 70, 80, 83, 71,\n\t\t231, 182, 93, 46, 138, 71, 54, 109, 31, 83, 181, 160, 33,\n\t\t43, 153, 161, 225, 77, 162, 88, 47, 141, 18, 233, 77, 87,\n\t\t47, 220, 214, 47, 202, 114, 127, 44, 121, 104, 34, 83, 31,\n\t\t203, 69, 78, 238, 29, 63, 148, 20, 165, 104, 159, 44, 139,\n\t\t253, 183, 45, 92, 157, 193, 33, 237, 218, 73, 122, 254, 19,\n\t\t231, 241, 25, 74, 157, 131, 107, 249, 145, 6, 200, 105, 128,\n\t\t206, 234, 229, 160, 48, 112, 133, 79, 47, 40, 44, 129, 39,\n\t\t199, 250, 168, 91, 254, 167, 44, 165, 99, 200, 177, 229, 184,\n\t\t173, 109, 215, 151, 43, 236, 106, 99, 194, 28, 211, 164, 204,\n\t\t129, 77, 0, 47, 113, 61, 126, 34, 103, 35, 106, 192, 150,\n\t\t87, 39, 243, 103, 184, 44, 179, 7, 222, 96, 167, 245, 35,\n\t\t235, 151, 228, 52, 100, 156, 201, 79, 2, 211, 250, 110, 159,\n\t\t212, 179, 106, 89, 51, 158, 15, 137, 103, 3, 233, 199, 205,\n\t\t122, 163, 240, 235, 94, 57, 186, 138, 77, 39, 238, 186, 84,\n\t\t213, 107, 211, 62, 243, 221, 151, 124, 92, 170, 197, 139,\n\t\t62, 111, 172, 153, 230, 203, 60, 134, 122, 63, 235, 25, 66,\n\t\t171, 17, 117, 100, 132, 109, 46, 180, 111, 103, 47, 122, 90,\n\t\t141, 176, 186, 233, 176, 124, 233, 67, 150, 170, 170, 85,\n\t\t85, 189, 233, 2, 123, 139, 253, 84, 72, 47, 93, 56, 129, 125,\n\t\t224, 220, 47, 216, 216, 250, 58, 171, 207, 223, 67, 159, 102,\n\t\t28, 231, 158, 245, 180, 24, 239, 192, 27, 117, 8, 4, 245,\n\t\t192, 142, 234, 221, 48, 18, 158, 15, 8, 199, 154, 5, 113,\n\t\t3, 23, 154, 53, 58, 126, 33, 32, 119, 96, 137, 44, 25, 16,\n\t\t235, 24, 225, 174, 49, 208, 85, 225, 54, 249, 108, 192, 150,\n\t\t184, 252, 118, 40, 133, 231, 180, 217, 89, 203, 58, 46, 44,\n\t\t84, 144, 144, 167, 84, 73, 10, 81, 59, 175, 138, 170, 26,\n\t\t84, 45, 18, 157, 175, 43, 138, 169, 4, 228, 152, 161, 230,\n\t\t168, 30, 99, 41, 75, 81, 26, 243, 81, 209, 100, 231, 85, 66,\n\t\t243, 54, 13, 105, 118, 33, 69, 85, 81, 38, 38, 221, 221, 106,\n\t\t237, 166, 38, 145, 69, 149, 166, 10, 182, 198, 31, 37, 41,\n\t\t114, 80, 214, 84, 246, 176, 134, 44, 91, 166, 25, 67, 245,\n\t\t112, 76, 182, 101, 75, 150, 217, 179, 136, 5, 207, 18, 85,\n\t\t120, 22, 13, 108, 248, 172, 147, 82, 64, 233, 15, 208, 88,\n\t\t74, 53, 69, 89, 164, 234, 158, 193, 67, 117, 182, 194, 54,\n\t\t21, 37, 202, 209, 32, 162, 188, 152, 141, 67, 131, 123, 84,\n\t\t202, 110, 183, 212, 84, 140, 6, 250, 3, 90, 148, 98, 81, 169,\n\t\t24, 45, 149, 162, 236, 206, 32, 123, 2, 141, 106, 1, 124,\n\t\t26, 148, 74, 134, 88, 70, 222, 243, 44, 171, 231, 121, 74,\n\t\t221, 125, 30, 123, 198, 197, 158, 135, 54, 101, 95, 20, 117,\n\t\t242, 13, 33, 6, 250, 116, 8, 21, 80, 233, 52, 103, 25, 136,\n\t\t35, 57, 59, 20, 171, 14, 158, 40, 173, 105, 142, 94, 211,\n\t\t244, 191, 142, 7, 6, 167, 30, 33, 171, 35, 143, 76, 13, 6,\n\t\t226, 127, 173, 107, 53, 221, 209, 214, 74, 39, 6, 171, 177,\n\t\t174, 77, 236, 42, 91, 175, 143, 64, 140, 178, 40, 146, 217,\n\t\t78, 196, 6, 244, 200, 109, 76, 59, 241, 196, 116, 115, 78,\n\t\t172, 55, 92, 151, 103, 150, 136, 78, 16, 110, 17, 239, 14,\n\t\t215, 230, 153, 80, 41, 23, 32, 65, 163, 101, 4, 73, 32, 62,\n\t\t16, 14, 137, 99, 34, 107, 117, 34, 75, 144, 160, 44, 41, 142,\n\t\t189, 118, 172, 16, 29, 217, 132, 17, 190, 102, 77, 118, 238,\n\t\t83, 215, 178, 27, 173, 31, 27, 193, 160, 241, 99, 45, 51,\n\t\t146, 42, 92, 27, 12, 189, 67, 20, 205, 61, 91, 72, 40, 164,\n\t\t189, 69, 20, 223, 17, 106, 127, 171, 120, 236, 192, 66, 153,\n\t\t219, 52, 132, 12, 70, 239, 64, 31, 247, 47, 228, 115, 96,\n\t\t195, 71, 188, 152, 56, 110, 224, 82, 0, 170, 104, 148, 169,\n\t\t186, 14, 32, 153, 8, 59, 238, 220, 241, 232, 201, 107, 247,\n\t\t24, 250, 144, 166, 85, 231, 119, 191, 146, 144, 27, 119, 45,\n\t\t84, 71, 76, 43, 244, 22, 195, 206, 154, 131, 123, 200, 83,\n\t\t11, 119, 237, 56, 249, 104, 75, 99, 87, 208, 145, 235, 118,\n\t\t237, 185, 158, 144, 177, 17, 51, 107, 27, 111, 9, 89, 230,\n\t\t224, 46, 159, 31, 14, 196, 61, 204, 115, 233, 149, 211, 89,\n\t\t117, 113, 100, 233, 109, 104, 40, 76, 47, 144, 94, 71, 157,\n\t\t59, 120, 114, 57, 15, 34, 134, 132, 116, 31, 131, 226, 237,\n\t\t220, 232, 174, 61, 32, 115, 33, 178, 216, 126, 130, 81, 16,\n\t\t18, 59, 139, 136, 44, 23, 216, 124, 172, 23, 126, 174, 87,\n\t\t167, 159, 198, 8, 239, 184, 110, 230, 45, 200, 189, 63, 27,\n\t\t29, 7, 171, 166, 130, 154, 224, 4, 192, 205, 185, 62, 238,\n\t\t96, 37, 238, 58, 102, 55, 200, 93, 83, 11, 155, 175, 178,\n\t\t69, 99, 147, 74, 73, 248, 145, 43, 175, 223, 59, 232, 213,\n\t\t87, 251, 175, 97, 59, 50, 181, 80, 222, 89, 213, 215, 93,\n\t\t64, 182, 140, 239, 153, 213, 117, 229, 248, 93, 187, 6, 189,\n\t\t250, 127, 109, 214, 28, 25, 207, 111, 42, 245, 100, 67, 89,\n\t\t67, 172, 206, 63, 195, 234, 188, 128, 62, 152, 30, 84, 131,\n\t\t207, 163, 0, 104, 125, 194, 245, 14, 23, 253, 254, 79, 224,\n\t\t233, 240, 196, 253, 159, 184, 255, 198, 253, 105, 203, 186,\n\t\t207, 178, 210, 179, 99, 253, 104, 255, 147, 33, 133, 39, 208,\n\t\t251, 194, 26, 178, 78, 31, 187, 255, 254, 99, 7, 95, 99, 21,\n\t\t184, 137, 83, 65, 31, 236, 71, 227, 32, 54, 111, 92, 247,\n\t\t24, 68, 154, 126, 204, 242, 198, 200, 47, 89, 157, 189, 153,\n\t\t181, 252, 20, 43, 135, 103, 189, 209, 225, 176, 128, 242,\n\t\t33, 66, 171, 103, 75, 202, 221, 25, 60, 169, 64, 156, 60,\n\t\t255, 184, 153, 229, 241, 68, 179, 230, 227, 180, 253, 140,\n\t\t117, 20, 216, 116, 152, 195, 97, 125, 113, 212, 250, 228,\n\t\t227, 236, 155, 151, 108, 99, 201, 176, 151, 88, 205, 61, 78,\n\t\t99, 31, 183, 102, 135, 214, 134, 102, 89, 169, 162, 129, 181,\n\t\t64, 180, 83, 142, 159, 161, 158, 179, 31, 202, 145, 247, 170,\n\t\t193, 195, 139, 116, 221, 229, 161, 253, 42, 72, 243, 215,\n\t\t21, 211, 33, 171, 221, 87, 98, 17, 142, 83, 234, 43, 89, 231,\n\t\t101, 67, 252, 229, 223, 96, 124, 110, 111, 193, 56, 206, 58,\n\t\t244, 159, 207, 65, 180, 85, 210, 211, 95, 24, 253, 169, 148,\n\t\t1, 2, 11, 52, 40, 24, 214, 5, 101, 251, 68, 184, 97, 79, 167,\n\t\t103, 140, 84, 23, 118, 221, 72, 200, 43, 119, 207, 87, 53,\n\t\t109, 72, 55, 246, 92, 123, 242, 209, 119, 146, 167, 186, 93,\n\t\t97, 100, 140, 144, 235, 247, 236, 186, 110, 132, 178, 211,\n\t\t90, 235, 209, 191, 120, 84, 240, 225, 84, 85, 81, 167, 112,\n\t\t192, 67, 238, 64, 238, 132, 117, 8, 46, 102, 119, 209, 77,\n\t\t64, 114, 200, 253, 228, 169, 111, 235, 137, 140, 120, 16,\n\t\t15, 21, 33, 94, 202, 158, 121, 201, 87, 82, 197, 145, 108,\n\t\t251, 116, 118, 164, 152, 202, 140, 100, 237, 68, 57, 21, 202,\n\t\t79, 6, 117, 117, 104, 86, 85, 83, 229, 132, 157, 29, 105,\n\t\t255, 95, 168, 217, 90, 33, 138, 252, 132, 172, 16, 109, 235,\n\t\t236, 214, 18, 230, 28, 150, 135, 250, 217, 164, 159, 237,\n\t\t31, 146, 19, 197, 236, 72, 52, 147, 42, 79, 230, 251, 226,\n\t\t226, 236, 80, 48, 92, 78, 101, 162, 35, 217, 226, 85, 168,\n\t\t194, 186, 79, 166, 84, 142, 231, 114, 75, 92, 157, 39, 119,\n\t\t100, 58, 156, 255, 154, 225, 54, 41, 61, 174, 31, 181, 82,\n\t\t47, 3, 22, 247, 162, 123, 210, 120, 222, 13, 142, 65, 201,\n\t\t89, 70, 59, 86, 128, 165, 8, 77, 230, 201, 19, 222, 1, 97,\n\t\t219, 246, 26, 154, 51, 236, 36, 75, 39, 52, 237, 97, 70, 249,\n\t\t114, 92, 38, 42, 32, 115, 182, 232, 165, 211, 177, 157, 104,\n\t\t30, 177, 84, 93, 118, 175, 227, 122, 156, 246, 185, 47, 96,\n\t\t236, 213, 0, 218, 235, 12, 225, 90, 176, 131, 50, 151, 136,\n\t\t85, 176, 137, 121, 188, 219, 6, 2, 25, 5, 197, 122, 145, 77,\n\t\t241, 117, 242, 147, 9, 93, 123, 181, 174, 79, 216, 67, 246,\n\t\t86, 251, 71, 152, 110, 255, 226, 126, 43, 34, 38, 94, 17,\n\t\t51, 222, 111, 176, 223, 224, 160, 149, 107, 145, 233, 9, 93,\n\t\t127, 181, 198, 174, 99, 151, 13, 165, 49, 221, 254, 69, 66,\n\t\t140, 88, 247, 231, 220, 235, 78, 85, 91, 57, 107, 144, 219,\n\t\t184, 120, 229, 161, 172, 198, 4, 226, 240, 55, 35, 203, 81,\n\t\t65, 188, 147, 226, 74, 251, 159, 238, 180, 66, 36, 64, 254,\n\t\t222, 182, 55, 173, 108, 98, 111, 39, 215, 179, 188, 0, 9,\n\t\t89, 119, 146, 97, 118, 8, 153, 182, 239, 89, 95, 98, 180,\n\t\t60, 239, 34, 201, 226, 51, 232, 0, 106, 2, 85, 160, 133, 136,\n\t\t64, 225, 126, 47, 249, 137, 247, 196, 63, 186, 252, 178, 175,\n\t\t21, 238, 156, 100, 175, 81, 154, 133, 199, 156, 155, 16, 76,\n\t\t239, 94, 51, 79, 238, 241, 158, 63, 116, 148, 93, 209, 84,\n\t\t216, 75, 39, 239, 44, 60, 150, 184, 201, 52, 29, 211, 186,\n\t\t199, 226, 188, 122, 224, 220, 127, 21, 126, 202, 218, 156,\n\t\t145, 226, 38, 183, 208, 41, 120, 145, 196, 129, 78, 60, 62,\n\t\t193, 134, 200, 49, 54, 234, 142, 177, 225, 48, 97, 205, 90,\n\t\t55, 101, 217, 33, 59, 202, 146, 9, 203, 130, 185, 95, 56,\n\t\t200, 230, 160, 26, 222, 207, 3, 126, 205, 240, 136, 95, 121,\n\t\t196, 61, 124, 139, 255, 242, 199, 214, 63, 12, 214, 10, 236,\n\t\t254, 47, 177, 251, 217, 212, 95, 66, 186, 149, 37, 42, 167,\n\t\t19, 104, 249, 88, 35, 155, 217, 19, 20, 73, 82, 216, 51, 218,\n\t\t223, 180, 172, 103, 241, 25, 138, 101, 41, 157, 135, 184,\n\t\t223, 113, 150, 125, 199, 135, 160, 28, 81, 110, 71, 52, 237,\n\t\t69, 7, 103, 163, 171, 126, 98, 253, 171, 73, 202, 43, 25,\n\t\t60, 181, 179, 110, 65, 223, 170, 45, 158, 53, 86, 1, 81, 63,\n\t\t122, 166, 238, 166, 55, 217, 120, 48, 32, 28, 120, 165, 131,\n\t\t95, 192, 168, 15, 120, 182, 44, 195, 28, 125, 235, 173, 64,\n\t\t68, 150, 113, 62, 135, 116, 246, 66, 249, 167, 94, 194, 53,\n\t\t254, 124, 159, 175, 78, 28, 99, 31, 10, 189, 225, 71, 80,\n\t\t142, 195, 90, 211, 39, 249, 239, 200, 91, 187, 232, 111, 139,\n\t\t229, 153, 50, 27, 115, 159, 65, 147, 175, 189, 234, 167, 85,\n\t\t246, 199, 102, 241, 206, 138, 14, 76, 255, 210, 51, 104, 17,\n\t\t118, 67, 76, 85, 99, 170, 192, 219, 155, 245, 211, 26, 32,\n\t\t91, 18, 62, 205, 116, 96, 8, 124, 141, 95, 35, 247, 123, 213,\n\t\t251, 179, 78, 130, 36, 252, 109, 208, 211, 32, 94, 27, 126,\n\t\t145, 181, 225, 151, 224, 217, 77, 127, 87, 172, 247, 52, 104,\n\t\t252, 59, 23, 124, 204, 238, 243, 95, 218, 107, 51, 8, 70,\n\t\t11, 174, 184, 134, 198, 187, 128, 103, 174, 61, 181, 139,\n\t\t242, 254, 174, 61, 154, 170, 222, 165, 105, 119, 169, 170,\n\t\t182, 199, 106, 89, 46, 166, 251, 155, 239, 14, 42, 144, 171,\n\t\t4, 239, 182, 214, 219, 34, 178, 231, 122, 222, 233, 136, 31,\n\t\t199, 109, 112, 17, 48, 142, 245, 21, 114, 242, 188, 7, 204,\n\t\t110, 248, 166, 245, 207, 236, 88, 84, 130, 227, 33, 43, 40,\n\t\t171, 14, 213, 53, 250, 126, 223, 121, 143, 116, 181, 9, 191,\n\t\t234, 153, 13, 87, 132, 213, 172, 243, 152, 124, 0, 148, 235,\n\t\t90, 144, 107, 27, 62, 224, 138, 13, 190, 94, 236, 224, 146,\n\t\t196, 1, 15, 148, 135, 250, 235, 48, 253, 238, 144, 144, 26,\n\t\t61, 40, 161, 53, 142, 55, 87, 204, 135, 243, 140, 133, 23,\n\t\t91, 172, 99, 255, 148, 53, 156, 67, 233, 207, 160, 171, 175,\n\t\t24, 246, 199, 204, 108, 71, 162, 48, 196, 218, 53, 68, 141,\n\t\t246, 11, 140, 217, 36, 143, 175, 64, 215, 255, 25, 101, 23,\n\t\t199, 232, 79, 97, 48, 180, 207, 89, 129, 208, 19, 94, 79,\n\t\t205, 178, 75, 219, 107, 167, 13, 234, 241, 36, 94, 204, 133,\n\t\t226, 6, 49, 23, 138, 5, 191, 177, 55, 199, 243, 235, 137,\n\t\t176, 112, 2, 6, 90, 238, 43, 186, 62, 160, 233, 95, 201, 1,\n\t\t131, 232, 15, 170, 48, 152, 133, 115, 218, 128, 14, 231, 112,\n\t\t132, 186, 239, 252, 41, 227, 7, 222, 206, 234, 99, 84, 16,\n\t\t194, 117, 55, 80, 70, 119, 124, 176, 18, 40, 190, 184, 27,\n\t\t221, 161, 98, 27, 228, 84, 214, 92, 164, 116, 145, 145, 162,\n\t\t199, 12, 155, 139, 192, 218, 143, 121, 121, 36, 25, 50, 236,\n\t\t42, 43, 209, 34, 251, 246, 69, 246, 198, 170, 253, 14, 148,\n\t\t109, 245, 228, 117, 252, 93, 87, 16, 151, 17, 120, 194, 172,\n\t\t232, 227, 71, 102, 184, 83, 149, 227, 178, 33, 188, 203, 119,\n\t\t97, 14, 33, 154, 174, 152, 202, 76, 244, 239, 175, 183, 79,\n\t\t111, 61, 218, 24, 185, 102, 97, 108, 95, 60, 153, 25, 154,\n\t\t125, 43, 213, 204, 237, 104, 154, 187, 221, 212, 232, 45,\n\t\t166, 249, 3, 101, 176, 145, 173, 239, 63, 186, 117, 114, 95,\n\t\t80, 145, 22, 174, 25, 27, 12, 205, 14, 69, 110, 166, 49, 68,\n\t\t137, 88, 142, 193, 53, 47, 171, 44, 61, 189, 208, 117, 233,\n\t\t216, 184, 44, 191, 193, 75, 112, 75, 167, 72, 27, 151, 229,\n\t\t80, 140, 95, 229, 150, 168, 107, 167, 4, 253, 85, 98, 163,\n\t\t192, 100, 243, 181, 131, 72, 177, 78, 177, 82, 116, 242, 205,\n\t\t98, 141, 22, 227, 53, 144, 218, 73, 121, 73, 45, 84, 230,\n\t\t73, 141, 81, 121, 242, 15, 87, 222, 184, 171, 186, 171, 253,\n\t\t79, 187, 86, 22, 119, 221, 120, 227, 235, 136, 66, 246, 144,\n\t\t228, 35, 108, 213, 188, 227, 117, 55, 126, 143, 29, 65, 52,\n\t\t208, 213, 213, 220, 47, 69, 73, 20, 206, 181, 191, 44, 138,\n\t\t11, 191, 60, 39, 74, 130, 235, 251, 246, 69, 178, 11, 113,\n\t\t137, 128, 59, 247, 230, 84, 47, 86, 36, 172, 82, 217, 215,\n\t\t147, 205, 167, 180, 152, 118, 202, 176, 66, 173, 163, 138,\n\t\t4, 208, 43, 95, 53, 236, 86, 200, 154, 93, 214, 180, 101,\n\t\t51, 67, 66, 242, 172, 18, 100, 157, 225, 169, 76, 199, 159,\n\t\t110, 23, 163, 143, 125, 184, 206, 238, 160, 110, 162, 205,\n\t\t108, 216, 165, 145, 14, 217, 12, 143, 179, 141, 175, 2, 224,\n\t\t140, 164, 28, 101, 143, 51, 224, 45, 100, 175, 153, 129, 32,\n\t\t75, 65, 101, 86, 38, 161, 140, 185, 12, 92, 21, 113, 235,\n\t\t229, 75, 176, 118, 21, 122, 162, 227, 112, 129, 108, 109,\n\t\t253, 10, 177, 62, 67, 110, 126, 253, 149, 8, 111, 55, 154,\n\t\t205, 140, 84, 187, 113, 182, 217, 152, 187, 98, 30, 76, 32,\n\t\t141, 197, 236, 200, 104, 118, 79, 58, 134, 218, 100, 182,\n\t\t217, 221, 242, 198, 229, 23, 113, 206, 2, 27, 58, 193, 153,\n\t\t80, 93, 11, 28, 91, 1, 228, 26, 151, 243, 253, 68, 114, 91,\n\t\t170, 96, 6, 164, 229, 213, 101, 41, 96, 22, 82, 219, 146,\n\t\t52, 21, 67, 248, 140, 70, 241, 196, 96, 61, 81, 232, 11, 3,\n\t\t204, 110, 184, 175, 144, 168, 15, 158, 40, 26, 207, 249, 49,\n\t\t100, 88, 253, 44, 33, 79, 238, 105, 34, 57, 6, 210, 250, 64,\n\t\t64, 60, 212, 162, 59, 107, 39, 56, 13, 104, 212, 84, 126,\n\t\t30, 140, 190, 93, 175, 154, 117, 251, 24, 0, 18, 31, 223,\n\t\t62, 219, 177, 74, 159, 221, 126, 28, 1, 255, 22, 166, 54,\n\t\t29, 213, 233, 41, 140, 23, 117, 185, 105, 94, 238, 253, 136,\n\t\t192, 122, 233, 194, 245, 122, 1, 175, 194, 77, 65, 191, 121,\n\t\t39, 74, 89, 70, 106, 135, 100, 245, 224, 44, 235, 196, 171,\n\t\t179, 67, 171, 176, 246, 210, 66, 90, 206, 253, 121, 216, 20,\n\t\t236, 123, 90, 40, 147, 116, 122, 60, 146, 92, 98, 230, 161,\n\t\t15, 55, 195, 232, 85, 31, 198, 217, 221, 67, 47, 72, 199,\n\t\t174, 199, 213, 192, 105, 235, 25, 139, 253, 245, 170, 118,\n\t\t219, 220, 41, 233, 10, 50, 107, 89, 108, 233, 231, 197, 105,\n\t\t0, 91, 145, 140, 48, 206, 40, 58, 104, 115, 119, 10, 151,\n\t\t184, 232, 213, 29, 255, 119, 47, 230, 8, 119, 16, 195, 40,\n\t\t65, 189, 81, 5, 106, 172, 219, 212, 193, 221, 214, 43, 155,\n\t\t82, 47, 168, 113, 182, 60, 142, 37, 200, 146, 166, 181, 52,\n\t\t45, 4, 96, 4, 154, 40, 7, 85, 106, 107, 36, 4, 43, 191, 23,\n\t\t49, 44, 116, 168, 85, 234, 239, 47, 181, 158, 197, 90, 36,\n\t\t203, 44, 217, 42, 173, 106, 168, 160, 109, 18, 9, 173, 34,\n\t\t12, 89, 59, 113, 214, 31, 70, 186, 253, 68, 127, 105, 181,\n\t\t212, 127, 78, 64, 91, 233, 235, 216, 19, 206, 182, 250, 75,\n\t\t200, 79, 3, 198, 255, 3, 228, 79, 216, 90, 129, 85, 102, 169,\n\t\t209, 116, 120, 217, 65, 40, 131, 150, 44, 46, 224, 191, 67,\n\t\t26, 30, 186, 20, 208, 34, 98, 5, 163, 139, 175, 125, 79, 84,\n\t\t78, 42, 81, 54, 11, 144, 15, 42, 162, 220, 193, 248, 15, 144,\n\t\t87, 102, 194, 91, 109, 90, 213, 162, 167, 162, 55, 238, 160,\n\t\t230, 220, 113, 150, 208, 170, 212, 126, 68, 14, 40, 41, 203,\n\t\t32, 95, 71, 116, 255, 246, 143, 7, 75, 211, 102, 120, 57,\n\t\t162, 36, 229, 232, 234, 74, 183, 45, 87, 220, 182, 28, 125,\n\t\t121, 22, 16, 126, 13, 254, 199, 127, 181, 222, 126, 35, 133,\n\t\t61, 200, 232, 190, 207, 230, 167, 223, 5, 212, 194, 40, 174,\n\t\t144, 179, 178, 171, 190, 152, 35, 19, 114, 197, 157, 146,\n\t\t180, 39, 172, 244, 204, 226, 129, 233, 108, 181, 104, 198,\n\t\t101, 157, 141, 158, 236, 68, 163, 144, 182, 158, 208, 136,\n\t\t248, 152, 17, 8, 46, 18, 189, 111, 120, 97, 108, 236, 242,\n\t\t62, 205, 182, 6, 166, 203, 153, 104, 64, 33, 39, 130, 1, 227,\n\t\t49, 154, 224, 99, 48, 116, 238, 243, 228, 57, 244, 175, 97,\n\t\t99, 28, 131, 40, 216, 18, 85, 43, 19, 82, 125, 102, 78, 66,\n\t\t2, 37, 205, 49, 38, 154, 124, 211, 14, 101, 39, 182, 109,\n\t\t74, 71, 34, 35, 7, 91, 21, 73, 161, 186, 186, 198, 168, 84,\n\t\t100, 255, 245, 226, 19, 228, 54, 37, 25, 156, 191, 235, 178,\n\t\t29, 195, 166, 166, 133, 119, 92, 251, 224, 30, 213, 52, 52,\n\t\t42, 46, 202, 114, 123, 119, 233, 195, 183, 237, 235, 137,\n\t\t161, 234, 31, 27, 157, 250, 244, 141, 13, 150, 199, 78, 177,\n\t\t169, 159, 156, 238, 18, 171, 223, 193, 193, 113, 198, 106,\n\t\t131, 175, 217, 222, 95, 53, 60, 124, 246, 14, 1, 33, 203,\n\t\t104, 229, 132, 176, 192, 209, 169, 81, 11, 68, 225, 189, 160,\n\t\t41, 42, 97, 120, 223, 4, 134, 209, 107, 54, 166, 38, 136,\n\t\t7, 86, 214, 240, 192, 231, 26, 19, 98, 165, 172, 130, 240,\n\t\t57, 30, 115, 106, 32, 24, 232, 226, 183, 121, 190, 3, 31,\n\t\t251, 241, 199, 42, 122, 164, 189, 51, 162, 87, 8, 24, 97,\n\t\t68, 3, 186, 174, 139, 68, 10, 125, 23, 11, 189, 131, 227,\n\t\t80, 59, 132, 200, 84, 54, 34, 210, 182, 190, 162, 126, 187,\n\t\t238, 28, 48, 194, 48, 44, 20, 117, 130, 159, 95, 253, 216,\n\t\t189, 135, 118, 4, 131, 59, 14, 221, 123, 51, 123, 70, 32,\n\t\t170, 166, 137, 36, 154, 129, 246, 89, 159, 37, 111, 93, 49,\n\t\t52, 85, 148, 116, 253, 41, 177, 212, 23, 14, 6, 195, 153,\n\t\t232, 27, 131, 96, 46, 251, 195, 30, 188, 106, 192, 62, 151,\n\t\t80, 47, 34, 68, 243, 241, 252, 32, 251, 194, 14, 174, 10,\n\t\t150, 189, 238, 217, 27, 21, 42, 189, 16, 68, 245, 21, 210,\n\t\t106, 175, 145, 211, 233, 24, 55, 221, 128, 26, 102, 117, 204,\n\t\t186, 114, 236, 128, 231, 4, 15, 190, 239, 36, 183, 118, 55,\n\t\t91, 239, 115, 173, 144, 151, 64, 196, 86, 196, 40, 242, 97,\n\t\t84, 80, 88, 29, 12, 94, 4, 9, 138, 108, 69, 95, 176, 80, 125,\n\t\t63, 111, 210, 253, 245, 102, 241, 64, 113, 21, 93, 193, 238,\n\t\t222, 95, 71, 250, 200, 78, 134, 66, 29, 94, 209, 213, 125,\n\t\t109, 48, 42, 97, 13, 126, 33, 23, 193, 30, 125, 216, 129,\n\t\t29, 59, 116, 125, 72, 215, 23, 22, 112, 215, 115, 212, 171,\n\t\t38, 107, 255, 112, 163, 107, 220, 35, 159, 125, 81, 142, 245,\n\t\t178, 49, 176, 70, 116, 56, 202, 95, 69, 165, 229, 153, 38,\n\t\t198, 42, 100, 99, 8, 35, 23, 178, 239, 47, 87, 74, 141, 10,\n\t\t77, 208, 166, 202, 78, 52, 201, 114, 52, 191, 247, 134, 27,\n\t\t246, 230, 98, 153, 112, 186, 209, 72, 135, 50, 209, 220, 222,\n\t\t103, 246, 230, 162, 153, 80, 186, 209, 236, 15, 183, 207,\n\t\t245, 245, 13, 36, 226, 63, 239, 235, 203, 198, 19, 71, 43,\n\t\t3, 187, 119, 15, 84, 236, 124, 122, 231, 31, 236, 236, 207,\n\t\t7, 203, 89, 118, 88, 182, 243, 253, 112, 88, 136, 28, 60,\n\t\t104, 236, 216, 113, 154, 109, 23, 192, 49, 79, 235, 148, 75,\n\t\t22, 12, 86, 87, 16, 89, 17, 74, 200, 234, 44, 170, 210, 74,\n\t\t195, 1, 28, 66, 71, 129, 96, 194, 10, 235, 209, 80, 62, 136,\n\t\t171, 91, 98, 217, 106, 201, 1, 100, 66, 7, 72, 240, 183, 197,\n\t\t145, 67, 245, 155, 39, 54, 145, 203, 230, 219, 31, 62, 212,\n\t\t60, 104, 144, 173, 19, 31, 152, 145, 175, 123, 239, 196, 172,\n\t\t120, 217, 60, 185, 6, 178, 218, 95, 197, 172, 167, 225, 82,\n\t\t242, 153, 131, 205, 67, 99, 127, 58, 177, 251, 58, 121, 166,\n\t\t112, 104, 68, 220, 245, 27, 19, 31, 152, 191, 76, 28, 91,\n\t\t151, 65, 254, 7, 92, 230, 233, 116, 187, 246, 89, 142, 223,\n\t\t66, 203, 27, 93, 13, 23, 191, 205, 59, 230, 22, 90, 183, 226,\n\t\t160, 225, 146, 48, 23, 232, 157, 47, 167, 42, 152, 117, 37,\n\t\t102, 61, 225, 179, 123, 215, 24, 253, 249, 87, 214, 31, 243,\n\t\t194, 14, 97, 191, 112, 173, 112, 151, 240, 16, 91, 181, 86,\n\t\t220, 229, 170, 171, 169, 115, 93, 53, 61, 27, 61, 144, 23,\n\t\t148, 43, 235, 61, 57, 61, 16, 153, 32, 137, 57, 197, 70, 197,\n\t\t113, 61, 206, 156, 68, 103, 230, 157, 247, 30, 85, 220, 32,\n\t\t175, 82, 132, 219, 252, 2, 232, 3, 5, 73, 83, 107, 9, 85,\n\t\t205, 168, 9, 246, 83, 19, 53, 85, 147, 10, 15, 49, 122, 145,\n\t\t150, 29, 121, 134, 253, 210, 18, 233, 179, 222, 29, 32, 147,\n\t\t89, 221, 210, 239, 35, 242, 159, 201, 196, 150, 255, 64, 254,\n\t\t185, 164, 254, 72, 149, 18, 234, 147, 170, 147, 10, 191, 33,\n\t\t156, 82, 213, 211, 234, 143, 175, 85, 141, 172, 234, 168,\n\t\t105, 149, 253, 57, 106, 214, 80, 175, 189, 138, 136, 187,\n\t\t101, 121, 96, 128, 255, 118, 139, 36, 60, 55, 83, 223, 86,\n\t\t204, 102, 85, 93, 127, 29, 17, 139, 178, 92, 20, 137, 25,\n\t\t148, 229, 160, 40, 141, 168, 234, 136, 36, 218, 112, 247,\n\t\t87, 78, 214, 106, 39, 85, 46, 72, 16, 59, 188, 13, 196, 132,\n\t\t18, 162, 19, 158, 218, 14, 230, 164, 132, 67, 49, 34, 41,\n\t\t163, 162, 137, 78, 104, 42, 192, 135, 136, 66, 28, 13, 16,\n\t\t10, 229, 167, 227, 175, 179, 130, 78, 184, 26, 74, 6, 173,\n\t\t193, 220, 125, 162, 104, 139, 138, 120, 71, 38, 147, 121,\n\t\t42, 147, 201, 215, 207, 90, 237, 239, 50, 178, 62, 100, 145,\n\t\t59, 229, 120, 0, 92, 228, 3, 113, 185, 111, 211, 125, 236,\n\t\t26, 198, 71, 220, 49, 95, 43, 15, 105, 155, 55, 107, 67, 229,\n\t\t242, 43, 14, 182, 95, 133, 129, 232, 192, 127, 190, 67, 99,\n\t\t248, 26, 33, 40, 68, 89, 15, 234, 71, 111, 240, 10, 235, 233,\n\t\t147, 66, 141, 241, 69, 91, 24, 103, 4, 62, 109, 16, 69, 251,\n\t\t50, 225, 184, 112, 21, 107, 251, 235, 133, 147, 194, 173,\n\t\t194, 171, 89, 31, 184, 87, 120, 157, 240, 70, 144, 164, 197,\n\t\t139, 249, 98, 189, 6, 154, 222, 18, 219, 135, 33, 13, 62,\n\t\t163, 110, 68, 147, 40, 251, 164, 34, 251, 97, 16, 48, 55,\n\t\t72, 47, 113, 143, 241, 30, 246, 147, 216, 61, 120, 204, 242,\n\t\t243, 238, 61, 128, 205, 133, 231, 216, 175, 194, 126, 240,\n\t\t158, 10, 203, 107, 178, 107, 41, 251, 57, 236, 58, 202, 126,\n\t\t107, 173, 22, 105, 181, 90, 109, 161, 213, 18, 5, 136, 121,\n\t\t114, 78, 96, 100, 152, 237, 215, 240, 63, 38, 91, 68, 128,\n\t\t228, 10, 38, 224, 223, 10, 228, 195, 109, 222, 126, 205, 205,\n\t\t230, 201, 21, 158, 228, 153, 112, 201, 10, 62, 182, 229, 189,\n\t\t2, 94, 70, 224, 233, 100, 133, 31, 172, 240, 119, 156, 115,\n\t\t147, 248, 154, 21, 183, 48, 190, 39, 241, 231, 34, 207, 246,\n\t\t175, 172, 79, 124, 25, 237, 49, 38, 4, 65, 137, 119, 91, 91,\n\t\t154, 6, 150, 45, 127, 177, 209, 69, 86, 121, 52, 175, 83,\n\t\t150, 22, 72, 80, 249, 88, 251, 185, 99, 52, 25, 95, 157, 86,\n\t\t213, 105, 117, 80, 133, 93, 26, 66, 5, 90, 100, 54, 148, 12,\n\t\t252, 244, 167, 209, 66, 213, 205, 102, 187, 106, 135, 63,\n\t\t91, 21, 74, 28, 185, 184, 20, 135, 229, 59, 40, 142, 65, 55,\n\t\t29, 68, 153, 36, 50, 144, 56, 244, 96, 174, 135, 222, 26,\n\t\t117, 99, 187, 64, 41, 61, 204, 74, 178, 212, 94, 75, 198,\n\t\t54, 153, 161, 132, 33, 89, 68, 205, 176, 197, 161, 180, 149,\n\t\t82, 221, 22, 173, 119, 47, 46, 199, 120, 208, 49, 182, 118,\n\t\t183, 66, 214, 217, 179, 147, 137, 138, 145, 81, 250, 2, 211,\n\t\t166, 98, 78, 170, 162, 69, 72, 191, 164, 125, 192, 160, 122,\n\t\t90, 150, 173, 229, 246, 154, 197, 203, 188, 104, 193, 245,\n\t\t130, 167, 127, 170, 178, 249, 24, 98, 87, 9, 249, 226, 156,\n\t\t236, 213, 135, 11, 190, 9, 3, 198, 173, 147, 88, 98, 128,\n\t\t248, 10, 72, 180, 51, 162, 30, 11, 5, 114, 150, 53, 148, 72,\n\t\t77, 237, 158, 74, 37, 134, 44, 43, 151, 13, 142, 178, 50,\n\t\t189, 96, 89, 34, 205, 148, 90, 37, 246, 58, 99, 184, 175,\n\t\t56, 53, 85, 236, 27, 54, 216, 193, 150, 19, 193, 44, 47, 5,\n\t\t231, 99, 85, 246, 254, 95, 184, 254, 121, 172, 213, 20, 175,\n\t\t137, 216, 123, 60, 15, 109, 5, 225, 236, 217, 74, 154, 175,\n\t\t20, 28, 174, 174, 155, 153, 19, 17, 160, 122, 154, 43, 238,\n\t\t226, 92, 41, 67, 62, 237, 182, 218, 119, 39, 243, 249, 201,\n\t\t28, 145, 135, 84, 114, 115, 251, 236, 205, 68, 29, 50, 212,\n\t\t68, 194, 182, 37, 2, 11, 134, 97, 77, 178, 119, 218, 146,\n\t\t54, 172, 80, 98, 198, 156, 184, 218, 226, 101, 18, 5, 132,\n\t\t37, 188, 63, 38, 83, 81, 106, 159, 35, 140, 197, 161, 114,\n\t\t76, 53, 202, 193, 88, 130, 221, 38, 106, 195, 195, 26, 85,\n\t\t114, 125, 101, 67, 232, 105, 99, 136, 183, 8, 212, 218, 163,\n\t\t153, 181, 174, 227, 119, 39, 5, 33, 48, 157, 124, 163, 233,\n\t\t209, 99, 95, 127, 60, 50, 46, 131, 5, 52, 85, 246, 42, 180,\n\t\t138, 170, 59, 121, 28, 112, 29, 114, 139, 16, 25, 239, 172,\n\t\t215, 19, 255, 113, 68, 86, 238, 179, 172, 177, 49, 112, 189,\n\t\t227, 219, 251, 20, 121, 228, 117, 183, 223, 126, 105, 11,\n\t\t208, 59, 255, 209, 87, 175, 158, 188, 196, 97, 237, 122, 25,\n\t\t163, 136, 221, 181, 158, 207, 242, 163, 81, 83, 58, 134, 222,\n\t\t189, 48, 147, 149, 158, 235, 55, 70, 161, 68, 96, 166, 170,\n\t\t97, 39, 53, 45, 105, 27, 98, 11, 119, 85, 55, 243, 49, 119,\n\t\t191, 210, 205, 98, 73, 178, 196, 184, 52, 244, 212, 63, 165,\n\t\t85, 53, 246, 128, 21, 190, 3, 116, 41, 204, 93, 99, 231, 209,\n\t\t243, 247, 241, 199, 187, 254, 252, 144, 246, 207, 197, 42,\n\t\t198, 98, 62, 2, 82, 11, 167, 194, 214, 219, 164, 92, 1, 103,\n\t\t138, 10, 235, 21, 142, 77, 104, 148, 122, 236, 213, 250, 189,\n\t\t143, 221, 154, 100, 215, 174, 219, 99, 252, 147, 255, 22,\n\t\t32, 191, 221, 168, 101, 219, 51, 124, 31, 9, 63, 118, 242,\n\t\t187, 236, 119, 83, 38, 173, 42, 150, 162, 100, 28, 54, 245,\n\t\t152, 108, 246, 73, 100, 20, 220, 227, 161, 114, 209, 179,\n\t\t228, 205, 51, 245, 223, 38, 182, 214, 190, 138, 239, 191,\n\t\t254, 234, 71, 131, 127, 195, 126, 228, 104, 218, 189, 220,\n\t\t201, 40, 138, 183, 183, 20, 53, 221, 251, 236, 132, 239, 170,\n\t\t206, 89, 15, 55, 115, 21, 101, 166, 69, 214, 3, 103, 193,\n\t\t187, 181, 89, 195, 166, 82, 59, 243, 58, 226, 253, 148, 98,\n\t\t182, 72, 139, 238, 136, 166, 168, 63, 76, 168, 172, 230, 216,\n\t\t206, 38, 21, 52, 42, 224, 57, 44, 181, 196, 86, 196, 33, 212,\n\t\t144, 226, 158, 180, 236, 212, 96, 226, 251, 227, 245, 251,\n\t\t63, 113, 255, 167, 237, 104, 130, 102, 98, 218, 222, 132,\n\t\t98, 58, 1, 205, 177, 163, 45, 60, 102, 9, 12, 91, 3, 70, 255,\n\t\t108, 255, 131, 254, 250, 88, 217, 78, 95, 221, 60, 118, 255,\n\t\t253, 15, 70, 109, 71, 139, 101, 104, 98, 210, 209, 2, 142,\n\t\t33, 39, 98, 7, 249, 113, 204, 23, 3, 138, 10, 17, 65, 216,\n\t\t74, 184, 28, 185, 2, 94, 196, 220, 67, 234, 189, 223, 126,\n\t\t47, 251, 107, 126, 227, 27, 77, 182, 123, 1, 23, 242, 246,\n\t\t80, 54, 59, 116, 59, 136, 55, 176, 143, 255, 49, 198, 221,\n\t\t131, 21, 91, 29, 176, 94, 97, 109, 8, 102, 56, 8, 116, 20,\n\t\t36, 96, 43, 194, 122, 184, 27, 149, 119, 78, 140, 2, 195,\n\t\t4, 182, 57, 21, 14, 197, 196, 86, 235, 194, 113, 41, 16, 204,\n\t\t132, 250, 31, 106, 212, 101, 122, 173, 164, 202, 91, 251,\n\t\t50, 253, 71, 210, 68, 47, 76, 76, 236, 152, 176, 18, 153,\n\t\t15, 24, 214, 179, 5, 73, 86, 183, 28, 235, 147, 44, 185, 240,\n\t\t108, 192, 248, 239, 175, 146, 131, 67, 131, 35, 129, 120,\n\t\t88, 20, 157, 220, 178, 76, 73, 98, 159, 147, 136, 61, 12,\n\t\t130, 163, 124, 56, 147, 176, 200, 246, 128, 241, 169, 81,\n\t\t197, 34, 214, 171, 154, 10, 145, 71, 159, 212, 59, 250, 32,\n\t\t143, 31, 96, 116, 46, 156, 23, 133, 54, 251, 254, 150, 232,\n\t\t249, 89, 137, 58, 59, 103, 160, 63, 168, 80, 42, 51, 54, 152,\n\t\t7, 232, 128, 24, 233, 78, 217, 47, 14, 159, 32, 77, 207, 227,\n\t\t147, 60, 87, 189, 163, 240, 237, 217, 249, 39, 231, 39, 147,\n\t\t63, 81, 205, 225, 204, 224, 21, 106, 88, 173, 171, 244, 100,\n\t\t49, 163, 199, 201, 28, 86, 218, 99, 185, 216, 36, 187, 102,\n\t\t126, 242, 129, 71, 18, 145, 76, 74, 73, 15, 158, 164, 236,\n\t\t154, 176, 122, 69, 49, 115, 164, 240, 17, 12, 57, 206, 120,\n\t\t208, 115, 47, 98, 124, 241, 63, 102, 101, 136, 8, 105, 97,\n\t\t136, 113, 82, 140, 34, 55, 217, 136, 154, 32, 48, 182, 18,\n\t\t21, 240, 33, 4, 198, 188, 12, 17, 96, 208, 171, 48, 225, 184,\n\t\t190, 131, 115, 16, 224, 150, 71, 35, 111, 68, 179, 98, 60,\n\t\t77, 226, 96, 7, 220, 40, 255, 247, 241, 99, 193, 96, 94, 15,\n\t\t47, 237, 140, 15, 206, 93, 219, 23, 220, 179, 171, 248, 205,\n\t\t102, 149, 52, 75, 213, 218, 204, 204, 155, 15, 92, 54, 60,\n\t\t100, 101, 119, 191, 115, 206, 158, 60, 124, 207, 91, 51, 87,\n\t\t151, 51, 251, 251, 140, 63, 173, 238, 31, 25, 27, 39, 106,\n\t\t229, 207, 51, 203, 51, 193, 201, 232, 158, 59, 115, 211, 135,\n\t\t179, 215, 207, 31, 57, 93, 30, 248, 115, 181, 191, 241, 96,\n\t\t197, 86, 167, 223, 122, 249, 16, 33, 198, 212, 112, 60, 53,\n\t\t26, 25, 57, 126, 105, 172, 175, 16, 15, 78, 146, 119, 132,\n\t\t119, 94, 11, 33, 226, 237, 93, 111, 130, 58, 215, 80, 110,\n\t\t10, 235, 250, 205, 108, 116, 236, 19, 46, 21, 174, 20, 174,\n\t\t19, 110, 17, 238, 244, 164, 147, 235, 160, 159, 92, 147, 107,\n\t\t215, 143, 224, 66, 233, 245, 171, 240, 196, 5, 142, 215, 231,\n\t\t147, 119, 165, 162, 28, 123, 44, 25, 228, 208, 99, 73, 70,\n\t\t222, 181, 144, 230, 223, 254, 181, 207, 66, 246, 146, 243,\n\t\t210, 126, 155, 89, 178, 24, 13, 60, 145, 136, 221, 17, 138,\n\t\t199, 56, 64, 89, 254, 121, 24, 133, 143, 105, 218, 83, 176,\n\t\t127, 74, 211, 30, 115, 143, 247, 6, 218, 255, 167, 207, 232,\n\t\t247, 17, 95, 122, 216, 103, 6, 204, 205, 131, 5, 46, 159,\n\t\t112, 177, 80, 117, 228, 90, 61, 31, 101, 33, 236, 69, 57,\n\t\t175, 119, 35, 139, 3, 114, 145, 247, 185, 234, 186, 207, 239,\n\t\t28, 167, 150, 150, 82, 101, 177, 5, 58, 192, 165, 246, 89,\n\t\t34, 236, 238, 162, 87, 216, 183, 251, 210, 0, 6, 210, 94,\n\t\t43, 167, 136, 80, 78, 173, 165, 202, 184, 220, 103, 191, 103,\n\t\t241, 236, 165, 184, 189, 221, 151, 238, 177, 243, 212, 177,\n\t\t223, 10, 164, 234, 240, 232, 184, 14, 227, 101, 27, 83, 64,\n\t\t4, 104, 222, 211, 23, 144, 54, 249, 159, 111, 55, 35, 182,\n\t\t244, 189, 255, 201, 104, 67, 95, 232, 122, 207, 5, 139, 80,\n\t\t186, 166, 5, 141, 252, 26, 125, 44, 24, 57, 251, 28, 172,\n\t\t175, 253, 120, 249, 49, 97, 88, 152, 243, 217, 37, 123, 18,\n\t\t130, 120, 211, 169, 151, 252, 7, 158, 132, 155, 110, 116,\n\t\t165, 88, 237, 88, 47, 45, 230, 114, 237, 51, 110, 98, 177,\n\t\t35, 2, 246, 78, 173, 234, 20, 209, 155, 217, 102, 41, 30,\n\t\t95, 106, 117, 82, 152, 104, 245, 158, 237, 214, 1, 96, 231,\n\t\t100, 120, 164, 140, 243, 227, 225, 186, 51, 59, 227, 63, 80,\n\t\t127, 123, 1, 200, 39, 191, 28, 98, 49, 29, 91, 141, 165, 215,\n\t\t86, 114, 218, 44, 155, 167, 1, 71, 30, 119, 164, 229, 183,\n\t\t136, 69, 145, 125, 53, 151, 203, 189, 224, 187, 68, 155, 245,\n\t\t225, 43, 26, 168, 69, 239, 70, 162, 137, 224, 12, 196, 200,\n\t\t218, 218, 229, 183, 222, 250, 241, 91, 111, 25, 59, 218, 88,\n\t\t90, 34, 107, 7, 127, 119, 243, 53, 247, 220, 115, 205, 230,\n\t\t223, 109, 191, 189, 62, 50, 123, 243, 205, 179, 35, 46, 31,\n\t\t179, 135, 125, 87, 134, 113, 89, 147, 32, 191, 192, 136, 155,\n\t\t108, 188, 86, 240, 105, 46, 44, 33, 163, 66, 96, 4, 238, 33,\n\t\t153, 40, 77, 240, 150, 2, 79, 66, 113, 180, 63, 84, 201, 12,\n\t\t110, 45, 188, 137, 170, 32, 212, 157, 24, 111, 137, 129, 12,\n\t\t100, 180, 95, 0, 71, 131, 226, 165, 219, 131, 253, 33, 43,\n\t\t66, 173, 119, 87, 174, 238, 143, 79, 253, 145, 17, 124, 207,\n\t\t4, 187, 236, 236, 196, 194, 220, 88, 62, 22, 159, 250, 245,\n\t\t101, 248, 188, 229, 241, 205, 87, 39, 116, 107, 56, 220, 35,\n\t\t123, 141, 163, 116, 251, 252, 186, 70, 190, 185, 163, 43,\n\t\t239, 145, 248, 36, 154, 126, 233, 43, 104, 204, 27, 216, 237,\n\t\t95, 137, 86, 89, 93, 252, 36, 212, 170, 247, 104, 206, 147,\n\t\t216, 223, 255, 22, 35, 124, 116, 161, 147, 92, 89, 74, 183,\n\t\t60, 192, 139, 214, 133, 237, 194, 65, 176, 63, 223, 184, 100,\n\t\t235, 201, 87, 103, 239, 150, 56, 250, 18, 60, 228, 214, 127,\n\t\t197, 199, 125, 67, 152, 255, 61, 136, 219, 83, 27, 56, 202,\n\t\t157, 247, 105, 237, 199, 124, 35, 154, 111, 159, 196, 109,\n\t\t251, 3, 40, 175, 63, 229, 219, 186, 49, 137, 197, 21, 23,\n\t\t63, 165, 134, 17, 109, 246, 179, 117, 115, 71, 138, 231, 197,\n\t\t53, 82, 208, 157, 184, 153, 104, 212, 161, 111, 168, 9, 152,\n\t\t185, 184, 161, 46, 227, 21, 217, 42, 23, 230, 173, 193, 243,\n\t\t200, 181, 123, 239, 122, 59, 243, 255, 141, 36, 247, 183,\n\t\t208, 239, 174, 253, 145, 8, 85, 44, 51, 146, 108, 30, 219,\n\t\t183, 117, 151, 146, 155, 180, 211, 78, 64, 166, 17, 154, 50,\n\t\t166, 155, 103, 103, 167, 140, 20, 105, 250, 8, 219, 167, 56,\n\t\t181, 198, 128, 149, 47, 226, 40, 95, 67, 66, 187, 7, 253,\n\t\t244, 158, 235, 103, 45, 175, 26, 177, 190, 129, 92, 162, 175,\n\t\t40, 37, 2, 54, 107, 218, 126, 83, 81, 179, 209, 171, 174,\n\t\t138, 102, 85, 101, 192, 71, 244, 84, 188, 241, 27, 93, 163,\n\t\t71, 180, 99, 2, 31, 237, 47, 145, 47, 9, 91, 89, 187, 239,\n\t\t97, 45, 47, 196, 231, 164, 38, 56, 157, 186, 33, 124, 242,\n\t\t94, 0, 31, 91, 166, 108, 53, 7, 17, 87, 178, 60, 124, 86,\n\t\t129, 213, 68, 222, 181, 142, 140, 54, 154, 197, 68, 51, 159,\n\t\t112, 106, 13, 41, 95, 174, 20, 85, 201, 206, 45, 140, 143,\n\t\t47, 228, 216, 154, 201, 160, 57, 91, 20, 69, 50, 203, 54,\n\t\t118, 142, 26, 68, 52, 178, 35, 7, 167, 198, 10, 111, 12, 200,\n\t\t185, 254, 145, 77, 97, 188, 36, 200, 214, 75, 237, 103, 220,\n\t\t75, 254, 110, 48, 189, 146, 254, 189, 246, 47, 116, 235, 251,\n\t\t214, 139, 68, 209, 2, 223, 179, 38, 226, 147, 59, 47, 201,\n\t\t100, 46, 217, 57, 25, 167, 166, 173, 25, 134, 102, 155, 52,\n\t\t50, 52, 191, 169, 213, 151, 200, 88, 98, 56, 58, 120, 229,\n\t\t108, 138, 157, 81, 45, 246, 145, 38, 233, 139, 37, 147, 167,\n\t\t66, 161, 80, 251, 76, 8, 164, 171, 48, 238, 62, 135, 177,\n\t\t233, 226, 172, 135, 111, 99, 180, 128, 155, 107, 59, 77, 198,\n\t\t40, 101, 69, 110, 117, 93, 70, 254, 14, 163, 96, 86, 202,\n\t\t254, 0, 117, 78, 52, 129, 24, 6, 157, 136, 141, 108, 42, 32,\n\t\t170, 60, 151, 223, 150, 223, 38, 1, 112, 199, 86, 81, 85,\n\t\t63, 228, 180, 217, 246, 191, 144, 157, 227, 153, 81, 69, 27,\n\t\t123, 197, 21, 168, 240, 117, 232, 13, 227, 233, 239, 168,\n\t\t150, 216, 254, 44, 154, 145, 125, 124, 85, 214, 40, 137, 93,\n\t\t31, 187, 62, 78, 136, 168, 72, 127, 72, 45, 177, 30, 30, 166,\n\t\t166, 180, 103, 108, 86, 83, 198, 178, 205, 34, 137, 99, 235,\n\t\t36, 218, 223, 33, 131, 123, 216, 35, 31, 119, 17, 226, 187,\n\t\t152, 128, 49, 228, 214, 59, 166, 112, 124, 226, 192, 193,\n\t\t218, 9, 163, 238, 129, 9, 240, 160, 123, 60, 5, 55, 116, 63,\n\t\t138, 221, 128, 83, 200, 233, 106, 245, 180, 219, 33, 116,\n\t\t122, 153, 196, 94, 38, 125, 29, 183, 151, 185, 65, 2, 151,\n\t\t168, 190, 162, 83, 34, 176, 93, 46, 199, 82, 231, 4, 156,\n\t\t68, 240, 122, 24, 137, 154, 214, 221, 147, 101, 247, 68, 251,\n\t\t180, 143, 214, 105, 66, 10, 49, 124, 49, 222, 60, 27, 78,\n\t\t20, 116, 73, 61, 180, 37, 122, 49, 24, 193, 215, 2, 54, 52,\n\t\t109, 34, 96, 52, 23, 211, 63, 211, 90, 55, 169, 28, 7, 72,\n\t\t105, 250, 128, 97, 131, 86, 153, 45, 253, 206, 176, 212, 119,\n\t\t253, 51, 138, 230, 143, 95, 61, 137, 40, 176, 190, 66, 32,\n\t\t110, 227, 52, 235, 14, 53, 30, 154, 213, 13, 26, 214, 209,\n\t\t53, 66, 17, 29, 175, 244, 36, 215, 41, 201, 238, 162, 104,\n\t\t136, 155, 18, 87, 194, 23, 243, 116, 76, 84, 222, 206, 94,\n\t\t199, 138, 248, 62, 44, 53, 66, 95, 99, 153, 30, 223, 45, 203,\n\t\t119, 142, 177, 49, 8, 251, 33, 153, 145, 163, 103, 13, 251,\n\t\t102, 44, 183, 224, 179, 119, 212, 49, 146, 89, 205, 207, 45,\n\t\t129, 29, 53, 250, 173, 118, 234, 4, 169, 105, 167, 190, 74,\n\t\t222, 122, 59, 204, 230, 82, 54, 163, 174, 144, 214, 57, 97,\n\t\t93, 5, 33, 201, 173, 146, 101, 136, 55, 12, 137, 181, 118,\n\t\t171, 119, 202, 117, 173, 78, 176, 181, 60, 190, 165, 15, 37,\n\t\t80, 219, 132, 75, 132, 27, 133, 59, 132, 215, 95, 140, 51,\n\t\t32, 23, 160, 251, 206, 5, 242, 155, 23, 225, 34, 46, 52, 135,\n\t\t136, 57, 8, 216, 251, 226, 89, 48, 215, 94, 65, 83, 220, 115,\n\t\t2, 55, 77, 230, 127, 171, 254, 131, 144, 154, 82, 99, 236,\n\t\t231, 238, 78, 251, 207, 145, 165, 104, 160, 141, 157, 158,\n\t\t44, 7, 162, 60, 118, 73, 251, 19, 120, 234, 109, 184, 189,\n\t\t219, 151, 254, 140, 239, 41, 106, 170, 253, 125, 223, 41,\n\t\t161, 71, 23, 84, 236, 193, 128, 227, 95, 214, 243, 37, 53,\n\t\t252, 66, 190, 48, 37, 203, 172, 222, 151, 216, 207, 221, 145,\n\t\t53, 204, 255, 111, 207, 105, 218, 137, 19, 154, 198, 119,\n\t\t158, 109, 111, 11, 99, 100, 247, 11, 19, 28, 189, 120, 93,\n\t\t27, 48, 158, 172, 227, 115, 221, 235, 173, 76, 213, 68, 13,\n\t\t68, 181, 188, 145, 252, 142, 233, 167, 215, 118, 163, 242,\n\t\t54, 211, 235, 160, 44, 139, 134, 246, 219, 43, 24, 201, 165,\n\t\t119, 166, 93, 90, 90, 69, 77, 238, 211, 1, 202, 221, 146,\n\t\t3, 52, 64, 86, 151, 32, 12, 159, 207, 63, 60, 142, 252, 227,\n\t\t174, 95, 197, 213, 68, 47, 210, 246, 23, 227, 19, 56, 183,\n\t\t179, 183, 183, 103, 107, 79, 192, 223, 133, 88, 158, 246,\n\t\t15, 123, 58, 249, 51, 158, 239, 188, 236, 163, 165, 16, 5,\n\t\t185, 133, 244, 244, 124, 70, 220, 41, 198, 207, 183, 58, 241,\n\t\t162, 33, 184, 64, 218, 74, 189, 24, 207, 179, 31, 118, 168,\n\t\t229, 86, 11, 45, 125, 86, 120, 232, 20, 62, 101, 243, 180,\n\t\t8, 62, 10, 237, 143, 173, 146, 149, 213, 53, 100, 214, 57,\n\t\t57, 133, 68, 171, 59, 41, 251, 147, 240, 143, 151, 245, 251,\n\t\t226, 78, 70, 27, 120, 76, 105, 142, 110, 8, 111, 198, 114,\n\t\t56, 46, 223, 218, 4, 183, 64, 4, 138, 206, 18, 23, 204, 10,\n\t\t45, 17, 22, 86, 25, 49, 255, 231, 111, 82, 58, 121, 207, 81,\n\t\t173, 160, 126, 229, 50, 189, 168, 208, 111, 169, 116, 146,\n\t\t172, 34, 171, 10, 155, 15, 112, 70, 53, 251, 45, 170, 20,\n\t\t245, 203, 238, 153, 164, 205, 163, 108, 67, 191, 73, 213,\n\t\t130, 31, 235, 60, 15, 246, 83, 209, 122, 190, 75, 53, 93,\n\t\t74, 212, 179, 47, 54, 215, 241, 63, 24, 162, 28, 226, 22,\n\t\t223, 167, 105, 247, 185, 191, 51, 93, 224, 113, 34, 180, 218,\n\t\t136, 90, 219, 98, 109, 227, 253, 214, 186, 162, 191, 245,\n\t\t54, 11, 125, 32, 175, 33, 235, 222, 17, 237, 248, 154, 52,\n\t\t47, 66, 41, 57, 30, 60, 127, 173, 230, 149, 106, 253, 92,\n\t\t226, 123, 117, 59, 71, 150, 176, 108, 95, 235, 93, 158, 116,\n\t\t226, 26, 125, 137, 141, 122, 140, 57, 243, 82, 34, 239, 84,\n\t\t92, 181, 216, 0, 119, 7, 171, 241, 224, 221, 220, 63, 73,\n\t\t116, 121, 71, 113, 163, 184, 60, 172, 187, 60, 172, 105, 111,\n\t\t87, 196, 216, 180, 28, 147, 211, 55, 65, 246, 253, 9, 76,\n\t\t31, 192, 97, 124, 118, 97, 194, 215, 209, 120, 188, 158, 231,\n\t\t88, 127, 92, 97, 53, 41, 15, 93, 175, 235, 77, 54, 239, 140,\n\t\t193, 254, 156, 128, 227, 88, 232, 25, 3, 220, 187, 249, 26,\n\t\t223, 87, 32, 203, 80, 228, 61, 204, 27, 148, 188, 240, 235,\n\t\t210, 92, 12, 189, 133, 212, 187, 40, 31, 136, 224, 227, 177,\n\t\t74, 222, 190, 89, 175, 20, 227, 60, 120, 83, 117, 118, 113,\n\t\t118, 5, 36, 75, 172, 23, 32, 165, 227, 219, 54, 251, 205,\n\t\t114, 155, 251, 177, 152, 125, 131, 221, 30, 227, 193, 116,\n\t\t56, 58, 225, 202, 13, 99, 75, 88, 23, 32, 190, 131, 223, 10,\n\t\t55, 199, 241, 255, 241, 197, 36, 187, 53, 118, 219, 178, 47,\n\t\t182, 206, 167, 173, 27, 124, 118, 119, 28, 207, 175, 136,\n\t\t250, 179, 67, 194, 149, 61, 86, 69, 53, 9, 193, 213, 93, 225,\n\t\t103, 87, 34, 31, 147, 214, 245, 54, 24, 242, 196, 119, 173,\n\t\t239, 82, 199, 247, 56, 241, 62, 32, 239, 218, 192, 240, 4,\n\t\t219, 13, 14, 100, 216, 22, 107, 192, 117, 66, 88, 122, 130,\n\t\t104, 169, 44, 156, 218, 202, 54, 39, 240, 90, 23, 78, 130,\n\t\t232, 253, 199, 167, 178, 154, 150, 45, 47, 196, 162, 165,\n\t\t57, 77, 155, 51, 219, 207, 51, 170, 66, 245, 116, 172, 21,\n\t\t75, 51, 42, 67, 22, 34, 155, 242, 112, 197, 88, 223, 200,\n\t\t246, 5, 118, 193, 216, 143, 249, 173, 130, 120, 238, 151,\n\t\t231, 62, 47, 202, 228, 171, 194, 0, 72, 29, 162, 77, 135,\n\t\t246, 6, 177, 234, 145, 93, 87, 154, 110, 144, 43, 30, 236,\n\t\t74, 66, 251, 35, 145, 219, 33, 57, 127, 218, 122, 248, 51,\n\t\t253, 229, 214, 2, 10, 168, 119, 80, 185, 63, 53, 139, 210,\n\t\t229, 230, 56, 223, 191, 200, 133, 202, 227, 151, 168, 108,\n\t\t6, 82, 194, 15, 135, 249, 126, 211, 56, 151, 62, 147, 240,\n\t\t246, 135, 255, 48, 173, 208, 29, 120, 217, 66, 171, 220, 223,\n\t\t63, 139, 226, 232, 230, 4, 238, 149, 247, 112, 89, 245, 248,\n\t\t62, 133, 221, 167, 194, 253, 10, 236, 103, 199, 185, 72, 156,\n\t\t175, 79, 214, 196, 55, 179, 111, 49, 17, 37, 119, 2, 105,\n\t\t159, 27, 219, 169, 222, 96, 43, 173, 56, 200, 13, 39, 196,\n\t\t10, 107, 21, 161, 67, 248, 168, 75, 11, 27, 55, 220, 119,\n\t\t149, 78, 84, 169, 125, 70, 82, 116, 50, 201, 54, 87, 109,\n\t\t205, 54, 71, 210, 138, 34, 137, 3, 71, 145, 16, 50, 186, 184,\n\t\t251, 91, 72, 28, 217, 33, 17, 14, 110, 102, 12, 189, 180,\n\t\t249, 122, 246, 59, 24, 31, 156, 202, 72, 42, 185, 21, 105,\n\t\t33, 144, 198, 221, 72, 31, 225, 144, 219, 85, 66, 217, 8,\n\t\t249, 10, 122, 127, 128, 109, 109, 17, 163, 222, 205, 147,\n\t\t250, 121, 234, 1, 111, 63, 71, 200, 15, 138, 233, 246, 13,\n\t\t87, 208, 152, 77, 175, 24, 159, 198, 218, 152, 246, 237, 225,\n\t\t179, 107, 19, 253, 7, 201, 39, 242, 151, 166, 95, 188, 130,\n\t\t218, 49, 122, 197, 141, 19, 53, 172, 192, 233, 243, 246, 105,\n\t\t21, 117, 149, 47, 158, 251, 75, 242, 35, 242, 105, 54, 255,\n\t\t246, 185, 40, 194, 208, 222, 224, 247, 215, 117, 79, 109,\n\t\t86, 40, 249, 161, 2, 213, 107, 254, 60, 59, 58, 57, 208, 175,\n\t\t102, 127, 98, 226, 177, 182, 251, 240, 187, 137, 170, 186,\n\t\t167, 6, 115, 151, 102, 159, 103, 133, 41, 40, 202, 143, 119,\n\t\t29, 126, 183, 224, 234, 10, 112, 220, 68, 17, 91, 23, 180,\n\t\t206, 66, 180, 199, 199, 204, 37, 20, 140, 19, 89, 79, 151,\n\t\t201, 5, 174, 219, 139, 195, 30, 162, 52, 86, 25, 215, 219,\n\t\t157, 42, 201, 9, 255, 137, 21, 206, 32, 33, 126, 237, 115,\n\t\t75, 75, 237, 21, 95, 20, 147, 117, 231, 252, 244, 204, 68,\n\t\t169, 254, 118, 119, 108, 187, 154, 50, 197, 151, 246, 242,\n\t\t235, 77, 150, 6, 86, 197, 29, 242, 174, 185, 16, 56, 105,\n\t\t132, 103, 154, 37, 176, 96, 125, 129, 81, 38, 54, 174, 24,\n\t\t191, 230, 223, 19, 141, 252, 77, 86, 91, 212, 162, 118, 251,\n\t\t65, 59, 202, 18, 89, 18, 210, 98, 126, 134, 142, 253, 173,\n\t\t241, 221, 91, 173, 92, 251, 99, 154, 246, 2, 76, 113, 236,\n\t\t105, 228, 120, 206, 186, 67, 150, 215, 199, 11, 157, 222,\n\t\t128, 107, 82, 221, 64, 160, 21, 111, 118, 168, 20, 58, 89,\n\t\t205, 198, 4, 81, 41, 7, 71, 110, 175, 192, 54, 149, 186, 227,\n\t\t3, 119, 164, 110, 120, 243, 53, 215, 188, 249, 154, 213, 176,\n\t\t227, 20, 28, 179, 32, 42, 150, 37, 145, 21, 118, 9, 94, 72,\n\t\t90, 169, 242, 120, 237, 240, 29, 119, 28, 174, 141, 159, 19,\n\t\t174, 129, 75, 55, 39, 67, 96, 148, 16, 180, 14, 171, 172,\n\t\t235, 169, 61, 237, 205, 113, 133, 106, 192, 249, 123, 80,\n\t\t19, 9, 183, 36, 209, 245, 237, 124, 94, 24, 156, 124, 184,\n\t\t82, 247, 243, 6, 189, 252, 222, 249, 123, 149, 187, 130, 214,\n\t\t226, 92, 150, 210, 195, 85, 252, 35, 74, 65, 62, 139, 219,\n\t\t51, 221, 206, 130, 28, 149, 199, 99, 137, 194, 146, 246, 240,\n\t\t41, 77, 59, 5, 226, 30, 182, 99, 51, 38, 30, 50, 114, 201,\n\t\t166, 129, 22, 76, 5, 177, 22, 63, 209, 242, 67, 86, 252, 70,\n\t\t183, 79, 181, 125, 204, 23, 76, 252, 207, 112, 11, 88, 208,\n\t\t81, 250, 12, 98, 115, 248, 40, 192, 241, 97, 9, 204, 0, 29,\n\t\t76, 251, 220, 15, 197, 7, 201, 135, 89, 207, 43, 128, 92,\n\t\t175, 196, 86, 147, 113, 132, 177, 3, 255, 241, 109, 196, 65,\n\t\t67, 60, 39, 209, 76, 240, 188, 102, 195, 201, 55, 6, 144,\n\t\t94, 77, 144, 38, 249, 56, 85, 31, 177, 141, 191, 9, 134, 190,\n\t\t107, 216, 143, 168, 52, 109, 183, 90, 246, 115, 178, 170,\n\t\t125, 221, 82, 95, 241, 11, 75, 121, 241, 159, 20, 235, 23,\n\t\t175, 80, 173, 175, 107, 170, 188, 38, 86, 158, 52, 195, 82,\n\t\t67, 150, 27, 82, 216, 124, 178, 34, 58, 183, 222, 234, 44,\n\t\t83, 91, 156, 149, 205, 199, 114, 196, 48, 72, 238, 49, 83,\n\t\t158, 21, 109, 234, 250, 169, 113, 155, 178, 24, 70, 245, 30,\n\t\t115, 215, 40, 140, 54, 128, 251, 33, 6, 215, 40, 119, 3, 176,\n\t\t174, 223, 195, 154, 228, 150, 217, 218, 246, 3, 108, 58, 17,\n\t\t105, 56, 173, 110, 186, 11, 141, 143, 222, 229, 219, 146,\n\t\t213, 251, 63, 113, 127, 180, 38, 137, 10, 141, 79, 37, 54,\n\t\t237, 59, 118, 207, 58, 156, 79, 176, 82, 234, 218, 192, 6,\n\t\t193, 51, 178, 57, 211, 84, 188, 50, 52, 27, 205, 178, 223,\n\t\t10, 150, 131, 217, 197, 99, 180, 165, 147, 93, 229, 33, 120,\n\t\t187, 34, 75, 99, 230, 38, 113, 115, 143, 1, 236, 205, 151,\n\t\t44, 221, 242, 222, 77, 103, 82, 233, 95, 26, 209, 154, 33,\n\t\t207, 140, 110, 58, 221, 99, 249, 122, 105, 253, 254, 99, 123,\n\t\t55, 11, 130, 47, 86, 98, 24, 53, 237, 208, 183, 92, 143, 65,\n\t\t52, 108, 205, 151, 240, 117, 27, 33, 133, 116, 150, 183, 136,\n\t\t34, 181, 90, 78, 229, 102, 135, 72, 107, 104, 22, 245, 12,\n\t\t100, 53, 85, 206, 233, 180, 197, 250, 205, 10, 238, 114, 236,\n\t\t60, 44, 156, 162, 129, 179, 169, 50, 240, 40, 229, 84, 107,\n\t\t169, 156, 26, 140, 190, 22, 13, 174, 209, 236, 250, 181, 209,\n\t\t193, 84, 57, 26, 128, 149, 83, 47, 206, 4, 21, 118, 11, 167,\n\t\t186, 114, 200, 10, 26, 111, 162, 33, 48, 22, 134, 85, 15,\n\t\t224, 191, 117, 156, 18, 0, 229, 163, 60, 217, 41, 33, 232,\n\t\t44, 43, 96, 206, 5, 50, 11, 118, 235, 121, 81, 169, 18, 14,\n\t\t142, 52, 246, 213, 56, 166, 26, 77, 23, 93, 249, 31, 250,\n\t\t10, 201, 232, 188, 101, 208, 178, 17, 82, 67, 178, 18, 77,\n\t\t234, 212, 164, 6, 203, 141, 205, 89, 134, 90, 193, 92, 34,\n\t\t71, 147, 134, 106, 201, 154, 252, 115, 140, 46, 129, 43, 230,\n\t\t92, 118, 116, 158, 117, 182, 219, 12, 163, 53, 150, 205, 33,\n\t\t212, 242, 215, 200, 96, 42, 158, 87, 163, 18, 200, 231, 216,\n\t\t125, 134, 100, 147, 48, 53, 12, 26, 218, 248, 132, 172, 41,\n\t\t237, 231, 89, 101, 192, 227, 216, 166, 210, 199, 249, 184,\n\t\t190, 10, 142, 167, 47, 178, 122, 249, 138, 160, 35, 6, 143,\n\t\t64, 64, 240, 8, 160, 164, 78, 179, 198, 155, 138, 77, 112,\n\t\t101, 156, 224, 202, 96, 1, 195, 213, 157, 16, 95, 200, 235,\n\t\t187, 36, 119, 168, 30, 206, 209, 168, 104, 140, 45, 47, 231,\n\t\t174, 89, 56, 184, 221, 176, 110, 157, 80, 84, 237, 116, 34,\n\t\t124, 121, 74, 142, 203, 217, 215, 31, 154, 76, 113, 241, 106,\n\t\t95, 104, 203, 84, 73, 83, 141, 93, 179, 251, 91, 171, 11,\n\t\t215, 204, 106, 242, 94, 26, 18, 7, 67, 225, 35, 167, 182,\n\t\t53, 117, 99, 215, 9, 101, 107, 126, 114, 201, 213, 112, 113,\n\t\t93, 236, 118, 97, 5, 98, 10, 150, 112, 60, 175, 115, 90, 7,\n\t\t79, 112, 80, 164, 99, 99, 129, 157, 177, 88, 183, 136, 245,\n\t\t27, 145, 68, 251, 55, 161, 15, 52, 39, 115, 35, 171, 193,\n\t\t168, 40, 198, 172, 67, 112, 124, 143, 19, 190, 90, 255, 191,\n\t\t121, 123, 19, 56, 71, 142, 250, 94, 92, 213, 71, 85, 223,\n\t\t234, 86, 75, 106, 93, 163, 209, 49, 146, 230, 30, 205, 104,\n\t\t36, 205, 94, 179, 218, 123, 189, 135, 119, 188, 235, 27, 22,\n\t\t15, 182, 241, 125, 172, 109, 12, 198, 24, 60, 241, 18, 176,\n\t\t13, 14, 14, 240, 108, 67, 2, 25, 72, 72, 236, 4, 130, 49,\n\t\t60, 32, 156, 195, 29, 146, 240, 255, 251, 15, 196, 33, 36,\n\t\t36, 251, 127, 47, 36, 144, 4, 226, 228, 133, 35, 47, 177,\n\t\t246, 95, 191, 170, 110, 169, 53, 51, 187, 118, 222, 123, 159,\n\t\t191, 189, 211, 71, 117, 183, 186, 170, 186, 234, 87, 191,\n\t\t243, 251, 75, 221, 163, 229, 213, 215, 89, 76, 221, 86, 205,\n\t\t120, 150, 17, 165, 175, 179, 14, 5, 122, 43, 97, 23, 237,\n\t\t139, 24, 200, 255, 149, 30, 226, 229, 34, 199, 142, 160, 75,\n\t\t245, 75, 170, 4, 114, 111, 245, 196, 140, 183, 35, 161, 235,\n\t\t201, 237, 94, 86, 76, 221, 138, 45, 148, 123, 241, 138, 125,\n\t\t237, 206, 212, 193, 100, 92, 78, 26, 70, 82, 142, 39, 15,\n\t\t166, 238, 196, 7, 207, 85, 85, 191, 174, 69, 58, 158, 23,\n\t\t35, 175, 162, 93, 5, 154, 84, 64, 205, 243, 167, 17, 215,\n\t\t161, 99, 166, 89, 3, 144, 108, 166, 73, 238, 207, 188, 42,\n\t\t199, 205, 96, 88, 211, 116, 137, 243, 206, 209, 44, 97, 176,\n\t\t89, 130, 147, 18, 196, 33, 143, 133, 52, 196, 44, 58, 88,\n\t\t29, 172, 200, 184, 160, 226, 57, 221, 53, 80, 255, 138, 204,\n\t\t46, 200, 69, 21, 255, 55, 13, 105, 111, 119, 18, 221, 143,\n\t\t96, 85, 197, 205, 137, 225, 218, 227, 150, 43, 34, 213, 34,\n\t\t135, 160, 224, 84, 194, 190, 92, 77, 162, 186, 156, 118, 82,\n\t\t21, 33, 6, 29, 17, 19, 84, 209, 160, 143, 75, 130, 66, 80,\n\t\t84, 180, 92, 125, 211, 43, 79, 13, 246, 139, 98, 144, 193,\n\t\t111, 8, 52, 168, 4, 250, 145, 182, 23, 72, 139, 181, 170,\n\t\t159, 31, 139, 165, 199, 2, 29, 100, 139, 219, 147, 131, 228,\n\t\t61, 190, 130, 157, 185, 122, 113, 244, 125, 204, 221, 17,\n\t\t155, 243, 223, 220, 146, 81, 201, 155, 12, 81, 36, 55, 106,\n\t\t148, 206, 94, 41, 89, 178, 169, 41, 85, 69, 76, 102, 208,\n\t\t175, 100, 92, 237, 70, 34, 138, 198, 155, 136, 154, 217, 162,\n\t\t100, 146, 34, 189, 160, 153, 178, 37, 93, 249, 189, 163, 165,\n\t\t9, 42, 134, 24, 134, 250, 22, 211, 249, 30, 204, 189, 119,\n\t\t221, 130, 101, 83, 213, 27, 0, 169, 255, 235, 174, 249, 61,\n\t\t199, 124, 11, 92, 38, 167, 38, 74, 71, 53, 64, 219, 111, 232,\n\t\t170, 41, 227, 91, 222, 101, 70, 124, 126, 243, 115, 194, 105,\n\t\t58, 30, 43, 160, 55, 233, 217, 114, 19, 92, 112, 100, 233,\n\t\t27, 56, 50, 10, 184, 92, 249, 8, 15, 108, 158, 48, 242, 20,\n\t\t152, 222, 124, 116, 253, 164, 231, 227, 44, 185, 166, 93,\n\t\t205, 60, 116, 189, 158, 33, 75, 152, 232, 75, 195, 187, 198,\n\t\t183, 143, 163, 73, 56, 44, 122, 159, 162, 204, 76, 180, 104,\n\t\t199, 174, 135, 203, 40, 194, 100, 115, 74, 132, 50, 213, 237,\n\t\t244, 250, 91, 245, 12, 158, 174, 143, 184, 181, 123, 33, 210,\n\t\t124, 161, 2, 167, 57, 175, 120, 57, 176, 53, 111, 140, 169,\n\t\t9, 13, 110, 10, 241, 235, 107, 76, 127, 0, 22, 12, 194, 83,\n\t\t178, 249, 253, 219, 134, 188, 125, 109, 186, 32, 226, 68,\n\t\t217, 99, 122, 158, 32, 235, 194, 156, 215, 46, 207, 215, 242,\n\t\t136, 18, 36, 141, 168, 15, 9, 128, 68, 104, 186, 194, 67,\n\t\t42, 209, 144, 52, 189, 103, 108, 49, 247, 106, 130, 234, 167,\n\t\t46, 122, 197, 69, 167, 234, 136, 188, 58, 183, 184, 243, 114,\n\t\t32, 111, 79, 96, 97, 133, 185, 204, 175, 8, 248, 9, 141, 140,\n\t\t236, 154, 180, 246, 222, 242, 128, 176, 114, 252, 182, 219,\n\t\t142, 175, 8, 15, 220, 178, 55, 193, 48, 138, 100, 191, 63,\n\t\t57, 191, 149, 161, 243, 230, 54, 200, 58, 205, 215, 129, 32,\n\t\t146, 211, 13, 108, 151, 59, 133, 100, 84, 0, 96, 208, 50,\n\t\t64, 209, 180, 88, 28, 54, 140, 146, 50, 244, 57, 19, 227,\n\t\t192, 152, 65, 74, 180, 45, 51, 2, 172, 167, 148, 211, 72,\n\t\t14, 11, 189, 41, 232, 151, 120, 50, 11, 230, 166, 188, 199,\n\t\t187, 184, 152, 125, 45, 219, 93, 40, 235, 6, 198, 73, 37,\n\t\t43, 140, 105, 36, 185, 71, 163, 147, 66, 65, 162, 105, 35,\n\t\t77, 52, 39, 28, 130, 221, 6, 214, 87, 117, 220, 136, 17, 226,\n\t\t76, 152, 162, 134, 108, 83, 68, 70, 76, 208, 246, 36, 137,\n\t\t75, 242, 67, 217, 17, 83, 183, 153, 57, 218, 214, 205, 114,\n\t\t54, 159, 39, 47, 252, 96, 76, 200, 202, 169, 180, 46, 163,\n\t\t229, 144, 80, 222, 61, 101, 164, 101, 33, 190, 207, 157, 190,\n\t\t182, 144, 62, 114, 82, 49, 137, 16, 183, 94, 30, 143, 206,\n\t\t30, 72, 184, 102, 81, 66, 72, 42, 154, 110, 226, 192, 108,\n\t\t52, 254, 114, 43, 46, 216, 198, 201, 35, 233, 194, 82, 193,\n\t\t52, 162, 137, 90, 73, 227, 208, 145, 90, 169, 150, 136, 26,\n\t\t102, 225, 227, 211, 238, 62, 67, 215, 210, 44, 7, 15, 196,\n\t\t165, 49, 125, 41, 216, 245, 174, 12, 105, 52, 66, 100, 166,\n\t\t220, 59, 154, 22, 154, 252, 155, 7, 41, 54, 153, 206, 116,\n\t\t27, 157, 104, 160, 186, 6, 64, 217, 164, 23, 100, 217, 168,\n\t\t149, 200, 124, 128, 211, 60, 91, 45, 115, 107, 252, 172, 25,\n\t\t99, 75, 63, 103, 0, 220, 33, 123, 52, 93, 18, 5, 39, 109,\n\t\t97, 140, 176, 70, 4, 33, 170, 79, 232, 151, 111, 93, 33, 246,\n\t\t208, 100, 193, 77, 153, 55, 178, 245, 102, 213, 75, 161, 133,\n\t\t165, 5, 93, 62, 195, 68, 250, 152, 121, 81, 95, 121, 115,\n\t\t145, 85, 171, 103, 170, 105, 203, 51, 112, 28, 203, 170, 108,\n\t\t56, 237, 11, 132, 210, 145, 100, 158, 51, 173, 159, 4, 160,\n\t\t28, 224, 45, 16, 10, 226, 254, 63, 133, 190, 132, 190, 24,\n\t\t81, 32, 242, 154, 114, 152, 156, 163, 228, 203, 82, 77, 156,\n\t\t70, 44, 95, 11, 79, 103, 201, 173, 92, 116, 29, 173, 150,\n\t\t8, 190, 251, 216, 203, 172, 216, 94, 85, 68, 159, 33, 130,\n\t\t186, 47, 102, 254, 155, 105, 16, 89, 152, 196, 90, 233, 230,\n\t\t97, 13, 79, 58, 36, 81, 58, 54, 47, 21, 175, 44, 74, 15, 92,\n\t\t126, 157, 109, 228, 232, 160, 80, 146, 56, 103, 216, 200,\n\t\t141, 150, 179, 89, 85, 188, 192, 192, 201, 36, 54, 46, 200,\n\t\t117, 188, 234, 101, 219, 112, 44, 214, 215, 41, 69, 152, 47,\n\t\t245, 52, 179, 174, 194, 23, 0, 70, 164, 213, 246, 109, 43,\n\t\t60, 117, 85, 15, 241, 58, 138, 24, 235, 223, 115, 89, 149,\n\t\t252, 82, 192, 214, 233, 45, 229, 44, 38, 173, 251, 247, 217,\n\t\t196, 223, 50, 86, 1, 206, 166, 166, 104, 15, 214, 83, 41,\n\t\t198, 60, 112, 96, 245, 238, 61, 172, 68, 47, 52, 57, 220,\n\t\t58, 40, 153, 138, 195, 244, 128, 238, 59, 5, 120, 40, 181,\n\t\t148, 203, 1, 203, 26, 97, 108, 233, 135, 121, 129, 81, 189,\n\t\t52, 53, 122, 144, 51, 170, 225, 24, 140, 12, 243, 124, 236,\n\t\t107, 245, 168, 84, 86, 105, 196, 33, 148, 96, 81, 236, 156,\n\t\t60, 205, 164, 132, 147, 116, 218, 118, 94, 125, 137, 61, 17,\n\t\t29, 155, 219, 134, 150, 79, 159, 100, 74, 224, 71, 79, 159,\n\t\t236, 92, 186, 162, 238, 152, 201, 140, 231, 157, 144, 141,\n\t\t0, 124, 183, 251, 154, 203, 94, 248, 220, 198, 12, 232, 110,\n\t\t179, 152, 224, 54, 223, 238, 163, 236, 61, 60, 37, 13, 207,\n\t\t218, 137, 168, 92, 204, 197, 21, 223, 132, 17, 186, 163, 187,\n\t\t118, 230, 204, 198, 216, 131, 18, 120, 63, 4, 62, 114, 49,\n\t\t159, 195, 167, 107, 80, 171, 198, 128, 226, 232, 144, 135,\n\t\t133, 148, 84, 45, 196, 92, 98, 171, 4, 151, 88, 188, 65, 155,\n\t\t117, 202, 71, 53, 64, 164, 50, 156, 184, 22, 175, 136, 40,\n\t\t138, 53, 189, 250, 57, 18, 147, 229, 169, 183, 77, 105, 105,\n\t\t173, 124, 27, 143, 201, 70, 89, 214, 231, 182, 138, 21, 149,\n\t\t78, 126, 156, 138, 169, 10, 6, 208, 10, 201, 86, 90, 45, 35,\n\t\t110, 140, 15, 250, 150, 18, 38, 245, 246, 45, 38, 125, 134,\n\t\t149, 15, 12, 18, 4, 97, 126, 141, 105, 56, 17, 19, 251, 186,\n\t\t167, 78, 158, 62, 253, 233, 211, 123, 190, 202, 3, 243, 184,\n\t\t46, 243, 211, 172, 253, 180, 248, 244, 201, 87, 236, 238,\n\t\t112, 135, 52, 145, 97, 88, 128, 12, 155, 228, 252, 99, 187,\n\t\t111, 239, 157, 11, 236, 189, 184, 138, 152, 210, 152, 202,\n\t\t65, 50, 211, 27, 85, 28, 230, 95, 194, 94, 59, 55, 43, 136,\n\t\t88, 58, 154, 94, 76, 31, 21, 137, 44, 161, 57, 74, 65, 190,\n\t\t75, 116, 116, 4, 69, 118, 79, 79, 237, 18, 186, 175, 85, 4,\n\t\t83, 80, 208, 149, 238, 67, 140, 164, 29, 252, 180, 164, 96,\n\t\t33, 254, 114, 251, 100, 2, 50, 94, 252, 1, 209, 133, 173,\n\t\t2, 65, 111, 236, 158, 154, 222, 189, 115, 234, 22, 65, 153,\n\t\t86, 132, 87, 160, 189, 166, 219, 237, 248, 246, 92, 185, 215,\n\t\t23, 28, 101, 146, 235, 145, 55, 181, 223, 250, 162, 82, 24,\n\t\t75, 185, 103, 140, 14, 38, 73, 37, 209, 168, 85, 203, 1, 181,\n\t\t18, 110, 117, 129, 57, 153, 217, 61, 35, 252, 150, 48, 83,\n\t\t28, 77, 165, 70, 139, 51, 174, 137, 86, 77, 183, 74, 103,\n\t\t138, 29, 22, 224, 234, 47, 159, 144, 177, 200, 142, 191, 237,\n\t\t102, 46, 37, 170, 162, 128, 82, 69, 81, 96, 95, 40, 204, 20,\n\t\t209, 18, 155, 118, 238, 11, 33, 153, 238, 155, 245, 9, 249,\n\t\t76, 47, 6, 165, 47, 223, 229, 89, 246, 72, 31, 101, 45, 80,\n\t\t62, 249, 201, 63, 219, 60, 49, 23, 169, 52, 57, 91, 39, 220,\n\t\t203, 36, 58, 243, 153, 238, 91, 43, 76, 166, 187, 240, 95,\n\t\t227, 185, 194, 109, 118, 201, 49, 94, 248, 62, 186, 205, 116,\n\t\t192, 246, 163, 49, 169, 78, 125, 24, 21, 115, 76, 174, 219,\n\t\t145, 139, 63, 147, 122, 232, 176, 238, 196, 207, 70, 204,\n\t\t24, 178, 127, 218, 253, 129, 198, 243, 99, 51, 159, 253, 10,\n\t\t253, 230, 249, 72, 196, 227, 137, 77, 74, 77, 63, 200, 118,\n\t\t39, 16, 66, 102, 245, 102, 28, 231, 119, 29, 79, 121, 86,\n\t\t241, 156, 209, 249, 142, 108, 75, 68, 58, 131, 85, 91, 238,\n\t\t204, 219, 158, 163, 40, 142, 119, 183, 113, 89, 251, 25, 25,\n\t\t75, 10, 121, 166, 125, 153, 113, 247, 64, 251, 60, 24, 181,\n\t\t131, 242, 42, 75, 27, 154, 96, 73, 176, 26, 158, 207, 173,\n\t\t250, 77, 11, 132, 213, 183, 24, 71, 231, 182, 95, 236, 22,\n\t\t147, 107, 245, 95, 116, 31, 136, 231, 142, 105, 3, 178, 234,\n\t\t141, 51, 59, 46, 222, 158, 173, 87, 141, 198, 90, 46, 174,\n\t\t181, 143, 113, 93, 53, 179, 85, 231, 41, 29, 109, 249, 190,\n\t\t135, 125, 27, 21, 207, 79, 218, 79, 46, 108, 81, 66, 82, 107,\n\t\t15, 100, 132, 46, 97, 143, 114, 11, 136, 46, 243, 30, 79,\n\t\t25, 58, 16, 101, 207, 126, 167, 157, 236, 101, 9, 169, 206,\n\t\t49, 243, 246, 60, 67, 211, 178, 98, 75, 245, 212, 116, 37,\n\t\t79, 57, 98, 126, 182, 188, 20, 203, 44, 140, 214, 71, 23,\n\t\t114, 241, 71, 227, 185, 131, 198, 8, 100, 243, 30, 121, 91,\n\t\t99, 95, 46, 190, 68, 217, 27, 211, 93, 138, 231, 246, 53,\n\t\t234, 167, 162, 108, 121, 187, 204, 82, 11, 103, 24, 23, 60,\n\t\t209, 180, 210, 35, 9, 255, 176, 57, 113, 121, 138, 17, 97,\n\t\t202, 152, 93, 193, 126, 192, 48, 254, 11, 62, 210, 208, 226,\n\t\t57, 110, 130, 165, 77, 111, 28, 193, 195, 62, 176, 23, 91,\n\t\t16, 251, 50, 242, 47, 251, 241, 118, 19, 231, 143, 184, 11,\n\t\t229, 69, 224, 78, 186, 137, 155, 14, 31, 190, 233, 112, 181,\n\t\t125, 140, 27, 8, 143, 181, 157, 242, 145, 50, 186, 88, 81,\n\t\t31, 81, 212, 139, 152, 227, 212, 212, 141, 170, 178, 118,\n\t\t24, 110, 187, 249, 88, 123, 28, 52, 243, 227, 237, 99, 182,\n\t\t189, 162, 40, 244, 150, 227, 138, 154, 85, 213, 169, 27, 20,\n\t\t53, 164, 95, 36, 44, 110, 182, 193, 50, 108, 6, 89, 198, 38,\n\t\t194, 22, 240, 90, 60, 233, 133, 107, 5, 46, 68, 129, 119,\n\t\t16, 250, 56, 139, 9, 124, 86, 171, 106, 134, 166, 109, 215,\n\t\t158, 31, 45, 119, 63, 24, 84, 204, 209, 205, 216, 4, 171,\n\t\t241, 25, 22, 36, 184, 219, 208, 90, 154, 118, 68, 179, 39,\n\t\t143, 164, 252, 122, 9, 213, 131, 172, 178, 126, 125, 30, 160,\n\t\t245, 225, 94, 76, 175, 1, 47, 102, 6, 20, 58, 195, 184, 29,\n\t\t0, 9, 5, 153, 138, 131, 133, 82, 57, 185, 205, 114, 6, 128,\n\t\t130, 165, 13, 2, 179, 199, 4, 50, 198, 12, 2, 142, 89, 64,\n\t\t57, 130, 122, 186, 137, 184, 55, 216, 183, 116, 180, 209,\n\t\t245, 47, 1, 169, 24, 176, 7, 14, 114, 73, 174, 213, 74, 10,\n\t\t87, 103, 100, 164, 165, 36, 42, 49, 197, 113, 177, 136, 227,\n\t\t78, 70, 150, 60, 77, 192, 105, 73, 74, 211, 43, 158, 36, 103,\n\t\t130, 43, 105, 89, 74, 105, 72, 206, 72, 15, 51, 178, 249,\n\t\t123, 172, 177, 23, 8, 70, 180, 255, 117, 28, 74, 86, 69, 73,\n\t\t51, 20, 132, 20, 67, 147, 140, 156, 225, 104, 170, 34, 31,\n\t\t142, 138, 184, 144, 150, 132, 168, 69, 242, 24, 192, 201,\n\t\t113, 158, 88, 81, 65, 74, 23, 176, 8, 89, 46, 206, 119, 181,\n\t\t206, 104, 238, 171, 89, 199, 117, 191, 173, 201, 68, 241,\n\t\t123, 19, 33, 44, 152, 25, 34, 73, 146, 76, 210, 102, 109,\n\t\t216, 144, 37, 209, 95, 63, 191, 224, 127, 107, 208, 155, 205,\n\t\t132, 71, 157, 71, 95, 53, 240, 121, 189, 182, 7, 171, 9, 29,\n\t\t124, 0, 149, 196, 145, 15, 252, 113, 183, 109, 236, 66, 5,\n\t\t17, 36, 117, 127, 28, 180, 110, 241, 225, 3, 15, 237, 80,\n\t\t116, 132, 210, 132, 140, 31, 148, 43, 36, 78, 252, 209, 55,\n\t\t125, 84, 209, 119, 104, 186, 95, 179, 95, 125, 232, 192, 195,\n\t\t4, 233, 202, 255, 75, 111, 24, 63, 40, 85, 9, 137, 4, 126,\n\t\t34, 124, 253, 244, 177, 216, 91, 231, 153, 13, 161, 153, 194,\n\t\t120, 222, 121, 160, 13, 53, 126, 237, 39, 204, 56, 92, 174,\n\t\t239, 225, 38, 246, 61, 117, 181, 184, 191, 136, 36, 182, 178,\n\t\t214, 167, 119, 231, 226, 31, 69, 163, 217, 33, 201, 27, 247,\n\t\t214, 120, 68, 251, 158, 250, 16, 76, 142, 161, 250, 30, 219,\n\t\t46, 176, 101, 246, 242, 221, 211, 241, 28, 229, 71, 107, 91,\n\t\t38, 162, 28, 23, 43, 240, 177, 249, 114, 196, 6, 252, 188,\n\t\t10, 167, 60, 65, 157, 218, 158, 232, 3, 99, 66, 71, 245, 150,\n\t\t184, 26, 224, 153, 19, 200, 55, 227, 227, 164, 1, 252, 51,\n\t\t218, 217, 58, 204, 167, 236, 225, 214, 85, 223, 178, 172,\n\t\t207, 199, 227, 159, 183, 172, 101, 139, 118, 149, 181, 219,\n\t\t208, 163, 0, 157, 56, 46, 201, 148, 193, 54, 238, 23, 142,\n\t\t182, 52, 168, 154, 214, 58, 42, 92, 133, 150, 196, 140, 56,\n\t\t45, 73, 211, 82, 90, 244, 114, 67, 144, 243, 110, 40, 103,\n\t\t55, 1, 81, 125, 81, 194, 146, 42, 47, 42, 134, 73, 182, 133,\n\t\t237, 5, 224, 91, 209, 240, 145, 150, 6, 231, 109, 189, 63,\n\t\t111, 229, 13, 208, 13, 92, 104, 47, 251, 246, 119, 212, 81,\n\t\t187, 127, 215, 27, 194, 150, 194, 167, 49, 138, 0, 105, 59,\n\t\t195, 20, 102, 96, 211, 0, 182, 116, 213, 137, 6, 115, 217,\n\t\t170, 243, 79, 239, 154, 204, 2, 78, 55, 117, 88, 122, 235,\n\t\t117, 56, 171, 247, 237, 204, 189, 88, 253, 117, 62, 196, 13,\n\t\t124, 158, 175, 207, 205, 173, 204, 217, 247, 215, 54, 163,\n\t\t130, 161, 156, 240, 245, 141, 244, 47, 20, 215, 110, 51, 207,\n\t\t208, 141, 95, 179, 54, 223, 174, 54, 231, 188, 69, 145, 103,\n\t\t165, 165, 75, 16, 110, 151, 112, 2, 128, 23, 208, 190, 249,\n\t\t3, 252, 93, 7, 230, 95, 181, 54, 49, 49, 59, 68, 82, 67, 101,\n\t\t23, 190, 198, 228, 30, 35, 119, 189, 233, 174, 186, 230, 111,\n\t\t200, 71, 230, 249, 11, 231, 143, 200, 215, 125, 189, 49, 52,\n\t\t212, 24, 181, 179, 49, 157, 86, 166, 57, 150, 95, 246, 65,\n\t\t25, 89, 30, 54, 214, 7, 49, 230, 77, 222, 6, 46, 41, 8, 229,\n\t\t71, 60, 172, 139, 64, 28, 127, 240, 165, 72, 60, 185, 9, 229,\n\t\t170, 99, 225, 182, 88, 44, 55, 82, 114, 116, 189, 185, 20,\n\t\t187, 75, 215, 245, 226, 54, 105, 249, 47, 88, 207, 20, 218,\n\t\t147, 170, 22, 162, 64, 72, 70, 232, 163, 36, 54, 210, 153,\n\t\t169, 38, 41, 113, 72, 220, 117, 97, 140, 76, 73, 210, 63,\n\t\t70, 47, 220, 90, 117, 88, 95, 221, 181, 247, 214, 178, 20,\n\t\t16, 17, 28, 121, 81, 30, 129, 161, 129, 82, 222, 71, 166,\n\t\t124, 72, 91, 6, 19, 207, 58, 22, 225, 157, 98, 121, 161, 216,\n\t\t60, 92, 175, 118, 127, 54, 212, 24, 70, 195, 221, 15, 4, 188,\n\t\t79, 192, 37, 220, 89, 104, 13, 211, 142, 217, 109, 254, 126,\n\t\t97, 75, 5, 255, 21, 248, 152, 247, 199, 176, 195, 178, 180,\n\t\t118, 88, 206, 24, 31, 173, 42, 240, 94, 36, 115, 139, 104,\n\t\t126, 154, 203, 89, 181, 210, 52, 7, 189, 102, 30, 213, 94,\n\t\t124, 24, 173, 239, 41, 79, 120, 173, 170, 189, 156, 174, 122,\n\t\t47, 139, 197, 172, 99, 217, 216, 203, 177, 78, 136, 142, 53,\n\t\t203, 122, 174, 188, 173, 116, 184, 9, 155, 195, 185, 173,\n\t\t81, 47, 212, 93, 78, 226, 4, 125, 224, 164, 74, 159, 201,\n\t\t30, 163, 67, 119, 31, 209, 77, 29, 91, 113, 235, 242, 210,\n\t\t182, 114, 243, 48, 219, 220, 62, 154, 219, 234, 250, 29, 134,\n\t\t195, 180, 2, 104, 236, 80, 136, 190, 174, 31, 101, 237, 90,\n\t\t131, 4, 244, 180, 208, 12, 136, 66, 179, 94, 40, 44, 23, 10,\n\t\t156, 116, 222, 34, 92, 216, 228, 3, 169, 121, 161, 240, 133,\n\t\t7, 23, 22, 30, 140, 4, 249, 62, 30, 96, 24, 106, 176, 62,\n\t\t94, 29, 249, 229, 200, 59, 255, 207, 172, 145, 65, 93, 189,\n\t\t94, 230, 38, 66, 197, 40, 230, 55, 142, 73, 137, 120, 148,\n\t\t140, 244, 132, 58, 186, 68, 54, 90, 13, 182, 102, 214, 203,\n\t\t152, 175, 153, 237, 6, 132, 195, 244, 125, 49, 255, 55, 22,\n\t\t208, 238, 167, 153, 124, 180, 58, 189, 123, 215, 201, 221,\n\t\t116, 85, 65, 138, 170, 57, 134, 103, 34, 225, 58, 124, 54,\n\t\t158, 219, 59, 163, 22, 203, 130, 44, 32, 9, 211, 229, 20,\n\t\t149, 53, 88, 77, 117, 27, 253, 44, 63, 42, 239, 6, 89, 160,\n\t\t147, 185, 249, 127, 127, 93, 101, 114, 216, 254, 221, 211,\n\t\t224, 77, 148, 246, 16, 146, 101, 35, 93, 66, 95, 210, 52,\n\t\t141, 175, 23, 72, 134, 92, 121, 177, 2, 93, 95, 213, 15, 217,\n\t\t91, 203, 148, 24, 178, 180, 173, 33, 125, 1, 208, 55, 102,\n\t\t89, 94, 143, 210, 221, 203, 98, 201, 121, 43, 82, 94, 183,\n\t\t47, 214, 122, 254, 88, 68, 110, 212, 202, 104, 53, 91, 225,\n\t\t184, 44, 149, 44, 183, 86, 29, 84, 148, 247, 197, 222, 166,\n\t\t40, 111, 138, 221, 169, 40, 55, 58, 103, 35, 234, 245, 204,\n\t\t255, 226, 89, 167, 123, 209, 69, 250, 254, 78, 37, 203, 34,\n\t\t208, 10, 217, 10, 143, 185, 71, 143, 132, 28, 145, 58, 203,\n\t\t44, 142, 161, 179, 178, 18, 140, 217, 239, 179, 124, 184,\n\t\t14, 149, 170, 123, 153, 134, 89, 42, 52, 150, 197, 135, 176,\n\t\t2, 58, 152, 184, 180, 230, 37, 133, 188, 21, 119, 204, 183,\n\t\t29, 147, 233, 44, 58, 250, 122, 18, 85, 142, 189, 205, 116,\n\t\t226, 214, 123, 208, 42, 138, 89, 221, 223, 55, 98, 74, 77,\n\t\t20, 84, 25, 221, 162, 74, 51, 51, 146, 218, 125, 151, 162,\n\t\t74, 53, 37, 102, 160, 227, 86, 12, 169, 129, 223, 202, 231,\n\t\t253, 57, 14, 121, 130, 15, 71, 110, 140, 220, 2, 22, 120,\n\t\t200, 149, 196, 85, 226, 96, 27, 194, 229, 26, 75, 167, 201,\n\t\t181, 202, 254, 21, 150, 64, 138, 101, 127, 111, 47, 34, 150,\n\t\t164, 141, 150, 66, 238, 183, 184, 143, 106, 11, 9, 15, 91,\n\t\t13, 226, 250, 112, 216, 168, 76, 56, 226, 117, 219, 133, 168,\n\t\t55, 142, 32, 76, 26, 181, 199, 13, 81, 81, 68, 163, 164, 168,\n\t\t130, 162, 8, 170, 114, 149, 17, 149, 60, 73, 85, 203, 154,\n\t\t148, 205, 72, 122, 89, 165, 229, 25, 56, 192, 42, 18, 146,\n\t\t114, 212, 160, 109, 194, 101, 253, 117, 235, 30, 59, 254,\n\t\t128, 40, 227, 60, 54, 196, 217, 199, 102, 69, 131, 30, 201,\n\t\t226, 3, 186, 147, 47, 229, 157, 83, 203, 117, 20, 209, 51,\n\t\t173, 140, 110, 42, 137, 201, 132, 98, 62, 149, 156, 63, 57,\n\t\t161, 68, 213, 45, 247, 109, 81, 163, 24, 182, 148, 8, 141,\n\t\t189, 172, 229, 209, 142, 236, 132, 111, 188, 182, 251, 53,\n\t\t108, 80, 81, 92, 198, 175, 121, 13, 150, 233, 129, 129, 209,\n\t\t86, 59, 238, 228, 29, 250, 47, 254, 161, 87, 179, 111, 22,\n\t\t196, 250, 141, 157, 43, 210, 175, 242, 210, 195, 251, 158,\n\t\t80, 55, 137, 234, 179, 198, 66, 81, 125, 138, 192, 162, 250,\n\t\t254, 192, 84, 159, 225, 161, 124, 45, 44, 200, 44, 148, 175,\n\t\t239, 195, 109, 194, 26, 225, 242, 124, 17, 96, 138, 164, 71,\n\t\t235, 109, 234, 16, 105, 191, 220, 241, 28, 244, 188, 227,\n\t\t117, 150, 66, 62, 18, 246, 26, 90, 233, 174, 162, 123, 64,\n\t\t195, 221, 125, 16, 13, 248, 69, 176, 240, 117, 158, 99, 163,\n\t\t199, 219, 204, 51, 12, 195, 192, 41, 141, 165, 60, 96, 122,\n\t\t158, 64, 34, 9, 252, 135, 171, 53, 0, 4, 104, 56, 197, 4,\n\t\t135, 81, 121, 118, 102, 23, 195, 111, 218, 53, 35, 137, 137,\n\t\t209, 132, 200, 153, 67, 238, 150, 249, 83, 53, 127, 100, 165,\n\t\t211, 93, 29, 46, 230, 226, 203, 187, 103, 220, 92, 206, 157,\n\t\t217, 13, 244, 129, 179, 134, 72, 25, 74, 116, 191, 146, 24,\n\t\t162, 4, 166, 131, 10, 115, 177, 233, 196, 80, 95, 150, 131,\n\t\t122, 77, 209, 117, 188, 195, 245, 29, 1, 7, 85, 134, 181,\n\t\t188, 185, 81, 27, 214, 147, 114, 19, 50, 132, 193, 39, 64,\n\t\t19, 18, 232, 73, 154, 232, 89, 123, 185, 210, 170, 44, 219,\n\t\t167, 66, 58, 50, 95, 25, 182, 170, 43, 183, 82, 30, 136, 233,\n\t\t66, 78, 125, 67, 141, 253, 100, 25, 210, 150, 44, 255, 36,\n\t\t166, 238, 109, 172, 87, 171, 53, 254, 92, 117, 196, 153, 53,\n\t\t149, 252, 146, 146, 184, 150, 168, 107, 253, 124, 146, 60,\n\t\t255, 247, 112, 100, 148, 225, 235, 70, 154, 201, 130, 31,\n\t\t98, 26, 9, 56, 67, 8, 31, 167, 171, 58, 47, 173, 52, 33, 4,\n\t\t213, 18, 2, 217, 80, 6, 203, 37, 189, 180, 3, 225, 29, 119,\n\t\t188, 239, 14, 244, 246, 247, 221, 65, 119, 221, 72, 254, 134,\n\t\t173, 213, 131, 139, 113, 40, 90, 221, 89, 180, 210, 229, 238,\n\t\t167, 89, 138, 91, 244, 107, 70, 253, 182, 70, 123, 130, 254,\n\t\t199, 93, 54, 24, 113, 253, 86, 58, 171, 167, 156, 121, 40,\n\t\t25, 219, 169, 167, 38, 84, 59, 170, 191, 147, 193, 141, 169,\n\t\t37, 79, 174, 76, 196, 242, 231, 195, 27, 241, 232, 199, 4,\n\t\t240, 171, 126, 80, 33, 47, 231, 120, 35, 151, 191, 98, 247,\n\t\t177, 59, 158, 96, 223, 246, 68, 24, 110, 228, 250, 221, 175,\n\t\t40, 220, 113, 108, 153, 125, 207, 144, 126, 244, 179, 236,\n\t\t251, 113, 171, 44, 29, 57, 132, 67, 162, 51, 177, 187, 84,\n\t\t46, 77, 32, 255, 184, 12, 57, 194, 231, 219, 126, 138, 141,\n\t\t158, 94, 170, 48, 186, 176, 124, 116, 199, 152, 164, 39, 13,\n\t\t105, 18, 9, 2, 170, 85, 249, 241, 43, 95, 23, 29, 50, 208,\n\t\t171, 103, 138, 181, 244, 33, 30, 205, 183, 90, 201, 218, 75,\n\t\t187, 94, 21, 59, 165, 75, 138, 164, 223, 115, 3, 223, 237,\n\t\t32, 142, 19, 85, 81, 37, 81, 156, 41, 28, 12, 226, 248, 132,\n\t\t16, 159, 76, 249, 248, 226, 186, 153, 20, 241, 125, 30, 232,\n\t\t98, 193, 81, 151, 231, 184, 196, 209, 218, 217, 83, 68, 19,\n\t\t150, 56, 142, 158, 9, 118, 31, 80, 28, 253, 9, 184, 122, 136,\n\t\t242, 193, 238, 202, 65, 89, 100, 14, 31, 210, 65, 61, 139,\n\t\t143, 199, 232, 81, 236, 56, 206, 24, 7, 165, 144, 203, 8,\n\t\t104, 246, 208, 23, 191, 136, 152, 131, 136, 166, 77, 80, 190,\n\t\t233, 237, 209, 36, 204, 150, 100, 244, 237, 148, 254, 79,\n\t\t104, 90, 220, 143, 185, 98, 117, 181, 35, 41, 127, 84, 65,\n\t\t182, 210, 165, 144, 45, 141, 229, 11, 94, 68, 181, 158, 241,\n\t\t161, 199, 212, 205, 51, 241, 18, 175, 83, 254, 173, 15, 199,\n\t\t10, 202, 133, 37, 31, 130, 237, 193, 152, 170, 137, 172, 91,\n\t\t147, 150, 245, 145, 232, 104, 244, 35, 124, 247, 97, 86, 246,\n\t\t43, 27, 34, 176, 120, 9, 138, 248, 248, 109, 211, 15, 197,\n\t\t102, 147, 159, 98, 151, 62, 220, 127, 152, 238, 254, 158,\n\t\t149, 253, 10, 219, 222, 25, 218, 242, 18, 206, 131, 249, 248,\n\t\t151, 161, 72, 208, 115, 33, 100, 189, 104, 16, 236, 10, 76,\n\t\t224, 238, 26, 108, 27, 33, 23, 147, 187, 66, 91, 215, 247,\n\t\t74, 9, 238, 67, 157, 108, 165, 187, 202, 21, 254, 108, 123,\n\t\t87, 104, 251, 97, 95, 131, 41, 111, 82, 207, 151, 92, 203,\n\t\t23, 171, 221, 183, 95, 90, 189, 190, 61, 80, 163, 65, 236,\n\t\t208, 77, 114, 161, 196, 54, 121, 235, 59, 55, 121, 199, 217,\n\t\t136, 255, 139, 100, 211, 111, 177, 243, 197, 219, 121, 174,\n\t\t246, 190, 88, 187, 55, 182, 254, 60, 125, 112, 52, 180, 253,\n\t\t246, 134, 146, 128, 87, 28, 172, 255, 70, 228, 186, 115, 140,\n\t\t159, 141, 53, 12, 143, 152, 193, 250, 172, 110, 24, 36, 129,\n\t\t221, 34, 244, 238, 23, 125, 243, 198, 55, 126, 251, 156, 239,\n\t\t226, 205, 13, 189, 195, 207, 231, 215, 207, 155, 238, 75,\n\t\t27, 235, 168, 26, 207, 195, 195, 51, 92, 173, 48, 199, 28,\n\t\t182, 93, 102, 169, 116, 126, 192, 182, 151, 80, 182, 150,\n\t\t241, 182, 84, 146, 238, 211, 72, 102, 121, 41, 110, 240, 216,\n\t\t11, 56, 145, 192, 242, 194, 245, 7, 156, 231, 56, 197, 227,\n\t\t117, 185, 161, 45, 68, 242, 30, 73, 228, 243, 137, 238, 93,\n\t\t171, 125, 140, 54, 246, 14, 208, 255, 148, 34, 227, 189, 183,\n\t\t76, 32, 128, 29, 130, 31, 23, 129, 101, 14, 191, 179, 157,\n\t\t28, 120, 221, 163, 203, 167, 226, 185, 31, 70, 211, 221, 167,\n\t\t89, 52, 179, 165, 189, 153, 81, 34, 223, 231, 179, 51, 20,\n\t\t239, 126, 20, 125, 65, 138, 219, 221, 34, 47, 186, 85, 143,\n\t\t137, 63, 14, 207, 153, 72, 157, 246, 225, 18, 239, 193, 245,\n\t\t178, 196, 134, 12, 64, 171, 253, 110, 67, 161, 46, 124, 180,\n\t\t223, 109, 107, 161, 30, 12, 124, 127, 100, 202, 75, 150, 24,\n\t\t162, 96, 20, 53, 40, 207, 216, 176, 4, 16, 33, 233, 103, 106,\n\t\t51, 142, 146, 37, 26, 161, 255, 146, 232, 219, 53, 173, 120,\n\t\t250, 106, 165, 246, 206, 171, 179, 7, 246, 109, 77, 238, 6,\n\t\t183, 95, 36, 233, 158, 254, 49, 60, 52, 70, 138, 211, 147,\n\t\t87, 93, 132, 222, 89, 187, 126, 203, 164, 82, 155, 205, 12,\n\t\t43, 18, 222, 13, 30, 191, 72, 52, 146, 250, 51, 205, 87, 143,\n\t\t227, 210, 212, 100, 209, 101, 186, 133, 179, 126, 124, 24,\n\t\t100, 35, 3, 236, 18, 110, 37, 245, 26, 62, 95, 87, 107, 77,\n\t\t243, 168, 53, 102, 203, 99, 110, 54, 252, 18, 7, 186, 93,\n\t\t20, 105, 117, 230, 122, 242, 43, 250, 194, 214, 177, 188,\n\t\t99, 190, 231, 234, 22, 68, 84, 93, 249, 90, 193, 113, 212,\n\t\t236, 254, 92, 217, 160, 237, 44, 87, 11, 113, 183, 124, 12,\n\t\t46, 116, 159, 205, 84, 115, 205, 131, 151, 215, 241, 228,\n\t\t214, 201, 19, 124, 69, 184, 42, 158, 180, 203, 86, 158, 92,\n\t\t122, 163, 107, 18, 245, 141, 169, 73, 23, 39, 18, 25, 45,\n\t\t173, 166, 51, 81, 107, 119, 182, 14, 165, 149, 204, 236, 201,\n\t\t35, 219, 43, 210, 80, 165, 178, 135, 175, 3, 98, 72, 206,\n\t\t235, 64, 190, 208, 245, 43, 52, 207, 250, 91, 99, 104, 168,\n\t\t224, 36, 82, 116, 6, 185, 63, 230, 68, 2, 87, 107, 254, 10,\n\t\t72, 192, 5, 159, 49, 197, 93, 166, 225, 66, 223, 119, 103,\n\t\t138, 217, 138, 231, 40, 221, 51, 213, 204, 106, 166, 170,\n\t\t140, 0, 92, 120, 60, 87, 149, 36, 67, 178, 164, 95, 95, 13,\n\t\t141, 218, 75, 220, 236, 95, 23, 38, 68, 113, 114, 40, 231,\n\t\t120, 167, 208, 50, 176, 85, 107, 243, 35, 44, 107, 215, 251,\n\t\t197, 225, 196, 98, 149, 39, 197, 249, 109, 144, 250, 68, 63,\n\t\t54, 239, 201, 200, 30, 186, 70, 159, 236, 219, 232, 74, 190,\n\t\t188, 20, 242, 207, 225, 153, 125, 88, 178, 121, 112, 203,\n\t\t0, 206, 167, 1, 27, 63, 135, 171, 239, 23, 3, 78, 47, 144,\n\t\t100, 140, 248, 6, 155, 74, 147, 229, 237, 229, 201, 237, 132,\n\t\t69, 97, 79, 189, 50, 189, 91, 20, 71, 68, 113, 247, 116, 165,\n\t\t190, 71, 152, 210, 246, 140, 216, 152, 202, 16, 84, 182, 177,\n\t\t98, 81, 91, 170, 141, 141, 109, 107, 31, 106, 111, 27, 27,\n\t\t171, 73, 118, 52, 102, 81, 1, 72, 22, 48, 182, 71, 246, 104,\n\t\t221, 79, 75, 229, 114, 101, 36, 159, 168, 196, 243, 168, 53,\n\t\t82, 41, 151, 37, 148, 143, 87, 18, 249, 39, 21, 101, 255,\n\t\t204, 158, 29, 147, 181, 218, 228, 142, 61, 51, 251, 21, 229,\n\t\t191, 86, 43, 38, 252, 34, 228, 252, 145, 48, 81, 157, 247,\n\t\t24, 153, 140, 241, 30, 71, 37, 88, 226, 105, 135, 4, 217,\n\t\t172, 84, 187, 255, 60, 102, 154, 149, 196, 80, 214, 171, 152,\n\t\t230, 152, 155, 29, 226, 182, 182, 23, 206, 190, 128, 126,\n\t\t9, 157, 134, 149, 137, 247, 7, 145, 123, 9, 145, 120, 146,\n\t\t36, 15, 221, 22, 211, 73, 247, 155, 70, 90, 182, 176, 106,\n\t\t252, 197, 247, 76, 21, 91, 114, 218, 248, 137, 146, 40, 81,\n\t\t94, 251, 237, 180, 108, 200, 72, 227, 235, 174, 163, 101,\n\t\t67, 244, 90, 176, 230, 61, 75, 231, 239, 199, 24, 103, 20,\n\t\t113, 167, 69, 246, 75, 50, 188, 161, 255, 130, 245, 132, 176,\n\t\t77, 52, 25, 9, 134, 156, 53, 209, 180, 231, 117, 191, 109,\n\t\t101, 101, 67, 54, 205, 167, 191, 200, 162, 125, 24, 36, 16,\n\t\t186, 88, 84, 116, 19, 231, 13, 67, 190, 135, 120, 182, 71,\n\t\t238, 145, 13, 35, 111, 166, 164, 189, 103, 194, 145, 70, 96,\n\t\t55, 94, 19, 126, 137, 249, 47, 76, 50, 204, 134, 210, 140,\n\t\t88, 229, 137, 104, 26, 235, 3, 191, 232, 48, 229, 83, 172,\n\t\t150, 104, 76, 11, 110, 146, 99, 111, 6, 183, 80, 9, 178, 110,\n\t\t107, 151, 174, 22, 144, 170, 140, 42, 242, 196, 179, 140,\n\t\t160, 113, 95, 247, 167, 79, 158, 118, 205, 213, 55, 144, 242,\n\t\t252, 103, 101, 92, 164, 156, 63, 187, 180, 223, 244, 244,\n\t\t142, 121, 87, 231, 22, 197, 192, 91, 195, 113, 96, 167, 79,\n\t\t154, 238, 103, 239, 27, 158, 47, 119, 207, 202, 150, 148,\n\t\t231, 225, 193, 186, 47, 79, 249, 88, 27, 78, 36, 199, 176,\n\t\t247, 67, 222, 189, 60, 183, 29, 153, 131, 161, 198, 220, 73,\n\t\t139, 115, 139, 34, 207, 17, 157, 68, 127, 182, 255, 154, 107,\n\t\t246, 95, 180, 159, 254, 227, 251, 239, 207, 208, 255, 226,\n\t\t197, 248, 4, 58, 98, 36, 99, 22, 153, 200, 211, 115, 180,\n\t\t252, 138, 55, 189, 226, 216, 49, 182, 57, 211, 233, 80, 129,\n\t\t58, 83, 197, 134, 29, 215, 50, 213, 190, 156, 9, 115, 227,\n\t\t247, 169, 140, 201, 230, 117, 5, 84, 97, 224, 167, 132, 153,\n\t\t46, 172, 231, 105, 3, 117, 234, 187, 221, 32, 70, 145, 184,\n\t\t163, 31, 39, 74, 180, 134, 66, 34, 238, 53, 49, 17, 58, 134,\n\t\t32, 104, 210, 0, 0, 64, 255, 191, 33, 195, 56, 114, 196, 225,\n\t\t190, 123, 150, 144, 74, 177, 131, 201, 249, 220, 72, 61, 163,\n\t\t94, 188, 127, 207, 146, 54, 189, 239, 181, 148, 180, 104,\n\t\t178, 138, 165, 27, 28, 239, 111, 127, 102, 72, 202, 67, 104,\n\t\t86, 87, 183, 49, 191, 28, 132, 91, 176, 63, 148, 190, 98,\n\t\t126, 108, 111, 53, 167, 9, 110, 125, 122, 199, 97, 74, 16,\n\t\t36, 172, 202, 218, 239, 92, 227, 168, 140, 150, 191, 128,\n\t\t78, 251, 99, 216, 15, 238, 175, 112, 165, 99, 165, 151, 137,\n\t\t235, 86, 127, 212, 118, 191, 73, 7, 51, 106, 4, 131, 249,\n\t\t74, 127, 208, 190, 125, 221, 96, 30, 24, 195, 73, 176, 133,\n\t\t183, 153, 111, 89, 239, 7, 3, 20, 129, 13, 99, 216, 243, 208,\n\t\t180, 233, 15, 220, 167, 77, 147, 30, 100, 173, 189, 253, 1,\n\t\t252, 247, 253, 81, 107, 164, 228, 189, 123, 165, 148, 9, 131,\n\t\t121, 247, 96, 156, 156, 220, 243, 117, 78, 209, 241, 80, 136,\n\t\t140, 80, 185, 34, 130, 32, 147, 124, 210, 75, 20, 155, 139,\n\t\t16, 214, 228, 135, 106, 37, 32, 136, 169, 225, 255, 201, 205,\n\t\t98, 34, 36, 134, 111, 186, 23, 86, 136, 161, 200, 49, 235,\n\t\t133, 21, 43, 22, 179, 92, 83, 0, 208, 227, 101, 14, 226, 183,\n\t\t44, 172, 128, 127, 210, 74, 232, 15, 237, 16, 84, 195, 82,\n\t\t162, 105, 249, 154, 107, 228, 116, 62, 45, 151, 153, 133,\n\t\t99, 133, 253, 183, 182, 188, 156, 197, 154, 134, 179, 27,\n\t\t183, 190, 30, 29, 244, 53, 205, 200, 37, 180, 73, 201, 144,\n\t\t26, 189, 185, 57, 38, 182, 215, 160, 242, 91, 43, 8, 108,\n\t\t103, 126, 147, 155, 2, 109, 179, 228, 137, 109, 143, 142,\n\t\t75, 225, 94, 80, 186, 251, 186, 119, 227, 99, 97, 176, 236,\n\t\t177, 73, 57, 163, 179, 225, 22, 63, 18, 134, 215, 158, 215,\n\t\t182, 143, 17, 107, 206, 142, 105, 76, 27, 143, 190, 206, 118,\n\t\t15, 79, 133, 241, 178, 11, 150, 29, 79, 101, 184, 90, 97,\n\t\t188, 186, 50, 136, 181, 77, 198, 70, 183, 72, 136, 10, 117,\n\t\t66, 41, 208, 235, 157, 161, 180, 230, 253, 204, 103, 98, 146,\n\t\t206, 160, 173, 204, 159, 18, 24, 75, 150, 73, 10, 80, 207,\n\t\t97, 215, 228, 57, 69, 1, 96, 171, 49, 39, 39, 230, 192, 103,\n\t\t95, 76, 122, 211, 168, 28, 112, 224, 114, 211, 2, 8, 165,\n\t\t102, 21, 156, 20, 111, 117, 213, 168, 34, 227, 137, 217, 197,\n\t\t159, 45, 238, 108, 50, 24, 94, 126, 252, 194, 47, 244, 164,\n\t\t109, 8, 35, 217, 124, 9, 85, 50, 255, 196, 128, 204, 209,\n\t\t114, 60, 47, 13, 123, 153, 60, 42, 160, 135, 149, 100, 247,\n\t\t203, 244, 89, 193, 92, 76, 42, 73, 180, 195, 138, 209, 163,\n\t\t107, 119, 40, 150, 171, 11, 221, 191, 215, 197, 204, 136,\n\t\t195, 116, 1, 23, 111, 21, 179, 174, 248, 183, 179, 154, 152,\n\t\t42, 7, 114, 74, 175, 29, 47, 86, 255, 72, 200, 65, 101, 243,\n\t\t106, 118, 255, 142, 215, 108, 211, 234, 116, 215, 124, 196,\n\t\t169, 160, 255, 86, 88, 204, 124, 16, 169, 126, 32, 18, 153,\n\t\t13, 231, 122, 30, 240, 135, 8, 71, 148, 211, 107, 220, 23,\n\t\t158, 229, 147, 236, 151, 247, 189, 253, 133, 21, 142, 6, 142,\n\t\t214, 252, 52, 213, 116, 163, 0, 22, 190, 210, 93, 81, 80,\n\t\t93, 81, 186, 207, 250, 193, 199, 224, 10, 248, 2, 64, 36,\n\t\t116, 24, 26, 248, 247, 3, 186, 173, 222, 207, 220, 217, 47,\n\t\t15, 33, 144, 160, 14, 247, 243, 243, 231, 170, 95, 255, 104,\n\t\t228, 112, 228, 178, 200, 53, 145, 219, 55, 202, 21, 46, 253,\n\t\t218, 97, 79, 127, 30, 179, 87, 173, 249, 206, 6, 131, 81,\n\t\t2, 140, 199, 96, 81, 2, 224, 64, 29, 78, 86, 190, 46, 113,\n\t\t57, 111, 52, 237, 0, 97, 185, 15, 122, 254, 168, 106, 235,\n\t\t36, 102, 77, 169, 68, 206, 17, 140, 37, 131, 40, 150, 67,\n\t\t235, 28, 75, 111, 82, 248, 60, 239, 138, 85, 101, 73, 129,\n\t\t127, 16, 188, 137, 104, 243, 86, 195, 220, 116, 247, 187,\n\t\t138, 97, 171, 209, 148, 108, 138, 154, 172, 72, 162, 164,\n\t\t19, 89, 71, 208, 15, 40, 19, 219, 164, 184, 16, 138, 229,\n\t\t244, 1, 91, 128, 70, 255, 1, 250, 26, 165, 5, 13, 74, 163,\n\t\t203, 164, 167, 10, 244, 195, 25, 123, 202, 194, 118, 111,\n\t\t109, 246, 211, 42, 250, 119, 162, 213, 171, 15, 127, 24, 42,\n\t\t244, 243, 19, 170, 153, 54, 181, 70, 27, 78, 30, 56, 252,\n\t\t77, 86, 73, 239, 184, 6, 133, 243, 41, 122, 246, 252, 50,\n\t\t99, 242, 111, 162, 4, 65, 53, 247, 176, 227, 141, 37, 220,\n\t\t95, 247, 231, 103, 63, 77, 121, 217, 63, 14, 97, 230, 68,\n\t\t220, 86, 222, 7, 66, 196, 224, 96, 196, 3, 177, 207, 5, 150,\n\t\t19, 72, 60, 127, 178, 244, 246, 75, 170, 217, 165, 234, 168,\n\t\t19, 205, 12, 207, 220, 176, 52, 102, 70, 111, 155, 97, 18,\n\t\t86, 99, 99, 152, 205, 103, 236, 29, 247, 95, 152, 173, 118,\n\t\t74, 185, 109, 50, 25, 95, 122, 195, 158, 67, 183, 118, 191,\n\t\t195, 4, 159, 91, 217, 118, 138, 109, 79, 172, 151, 37, 163,\n\t\t92, 14, 219, 56, 174, 90, 189, 73, 225, 79, 146, 54, 143,\n\t\t71, 110, 134, 161, 201, 215, 128, 184, 45, 7, 70, 98, 102,\n\t\t148, 94, 7, 33, 125, 134, 206, 71, 31, 122, 170, 190, 66,\n\t\t95, 222, 1, 158, 128, 190, 111, 5, 253, 82, 47, 47, 61, 55,\n\t\t82, 231, 5, 46, 205, 2, 86, 180, 175, 203, 106, 3, 39, 191,\n\t\t194, 36, 213, 202, 95, 192, 166, 178, 95, 211, 186, 63, 209,\n\t\t50, 90, 82, 211, 80, 140, 238, 81, 133, 21, 255, 5, 191, 231,\n\t\t79, 105, 9, 189, 76, 175, 102, 224, 178, 54, 96, 31, 31, 97,\n\t\t89, 194, 214, 217, 199, 69, 128, 179, 77, 120, 37, 82, 11,\n\t\t33, 159, 172, 191, 137, 139, 126, 108, 211, 57, 115, 166,\n\t\t51, 226, 94, 176, 236, 23, 112, 1, 145, 95, 14, 246, 180,\n\t\t180, 80, 232, 212, 79, 21, 252, 18, 183, 127, 129, 219, 170,\n\t\t209, 10, 243, 141, 231, 200, 25, 129, 141, 200, 199, 224,\n\t\t243, 55, 236, 35, 248, 113, 224, 108, 227, 188, 20, 220, 164,\n\t\t235, 148, 88, 76, 169, 182, 100, 77, 110, 177, 77, 117, 221,\n\t\t57, 132, 81, 15, 254, 67, 159, 195, 170, 214, 45, 104, 42,\n\t\t158, 154, 18, 69, 254, 71, 75, 208, 153, 112, 73, 247, 15,\n\t\t55, 65, 74, 10, 235, 41, 33, 15, 24, 140, 243, 89, 134, 157,\n\t\t67, 105, 44, 163, 69, 9, 31, 201, 109, 3, 34, 8, 244, 174,\n\t\t72, 153, 138, 96, 184, 123, 62, 147, 17, 156, 183, 131, 238,\n\t\t111, 210, 57, 5, 17, 83, 207, 22, 103, 120, 132, 226, 76,\n\t\t241, 20, 32, 95, 119, 162, 37, 8, 95, 124, 178, 179, 234,\n\t\t31, 253, 144, 73, 224, 107, 76, 26, 71, 133, 153, 98, 247,\n\t\t121, 166, 26, 183, 139, 51, 62, 120, 199, 90, 161, 112, 143,\n\t\t7, 183, 190, 189, 80, 8, 14, 103, 217, 39, 89, 99, 178, 202,\n\t\t55, 133, 211, 148, 31, 107, 243, 156, 160, 61, 57, 236, 92,\n\t\t81, 186, 27, 192, 61, 147, 158, 112, 31, 38, 122, 55, 170,\n\t\t103, 240, 18, 198, 198, 190, 237, 18, 49, 137, 180, 125, 33,\n\t\t39, 65, 14, 229, 92, 155, 158, 211, 253, 246, 118, 142, 237,\n\t\t217, 57, 189, 190, 109, 31, 189, 31, 165, 233, 166, 251, 183,\n\t\t244, 169, 183, 232, 105, 82, 123, 21, 145, 168, 152, 127,\n\t\t221, 240, 12, 219, 215, 135, 175, 195, 162, 34, 145, 13, 231,\n\t\t53, 122, 127, 36, 50, 224, 59, 124, 0, 178, 154, 145, 16,\n\t\t168, 192, 166, 177, 148, 141, 190, 39, 109, 173, 221, 8, 112,\n\t\t16, 214, 237, 87, 223, 39, 176, 136, 43, 0, 51, 240, 255,\n\t\t208, 61, 60, 180, 75, 192, 191, 49, 22, 50, 127, 174, 142,\n\t\t253, 6, 22, 16, 91, 31, 10, 97, 171, 40, 123, 92, 120, 95,\n\t\t232, 7, 22, 34, 92, 63, 18, 233, 80, 121, 160, 227, 107, 121,\n\t\t7, 53, 76, 231, 168, 205, 250, 189, 192, 20, 46, 93, 230,\n\t\t57, 83, 15, 191, 212, 255, 3, 224, 6, 86, 35, 186, 185, 156,\n\t\t227, 165, 12, 252, 5, 122, 26, 150, 99, 126, 134, 33, 96,\n\t\t175, 199, 99, 56, 119, 24, 42, 221, 63, 121, 249, 185, 126,\n\t\t191, 192, 134, 27, 239, 142, 245, 181, 10, 197, 205, 2, 63,\n\t\t2, 186, 213, 93, 254, 76, 241, 49, 15, 135, 250, 217, 75,\n\t\t232, 113, 27, 108, 126, 125, 143, 76, 103, 80, 177, 223, 199,\n\t\t244, 161, 111, 90, 34, 42, 186, 129, 193, 3, 216, 202, 7,\n\t\t172, 21, 14, 201, 100, 173, 42, 113, 165, 193, 89, 165, 83,\n\t\t160, 173, 89, 58, 67, 151, 220, 53, 96, 67, 96, 9, 237, 40,\n\t\t202, 104, 71, 115, 186, 111, 229, 30, 233, 232, 110, 71, 187,\n\t\t89, 150, 255, 157, 153, 140, 232, 111, 118, 159, 7, 123, 69,\n\t\t104, 124, 169, 76, 199, 236, 145, 50, 0, 118, 182, 155, 4,\n\t\t20, 142, 209, 30, 153, 94, 235, 44, 47, 158, 32, 182, 126,\n\t\t98, 45, 185, 56, 145, 188, 91, 207, 235, 77, 93, 167, 165,\n\t\t43, 39, 116, 155, 156, 88, 252, 100, 114, 98, 145, 150, 210,\n\t\t194, 188, 222, 243, 215, 249, 50, 163, 255, 69, 160, 202,\n\t\t46, 119, 250, 79, 8, 62, 221, 168, 248, 249, 202, 33, 250,\n\t\t169, 201, 242, 167, 50, 132, 63, 198, 53, 78, 11, 229, 38,\n\t\t184, 96, 48, 37, 105, 225, 12, 253, 43, 100, 209, 228, 5,\n\t\t215, 29, 60, 58, 53, 95, 158, 218, 154, 155, 136, 186, 245,\n\t\t111, 29, 61, 56, 119, 225, 204, 66, 221, 141, 78, 228, 182,\n\t\t78, 149, 27, 168, 0, 42, 208, 238, 15, 232, 102, 109, 110,\n\t\t186, 186, 219, 209, 36, 193, 180, 87, 116, 213, 40, 160, 180,\n\t\t179, 187, 58, 60, 153, 40, 24, 170, 190, 98, 155, 130, 20,\n\t\t210, 69, 141, 71, 230, 192, 75, 45, 198, 189, 119, 25, 194,\n\t\t47, 4, 151, 173, 3, 239, 225, 201, 140, 252, 28, 234, 27,\n\t\t226, 99, 189, 241, 33, 71, 84, 145, 32, 17, 241, 66, 127,\n\t\t36, 92, 72, 187, 86, 21, 157, 201, 185, 55, 51, 215, 140,\n\t\t191, 229, 14, 236, 107, 167, 79, 150, 118, 181, 18, 186, 187,\n\t\t91, 36, 178, 24, 76, 26, 157, 236, 118, 245, 194, 149, 243,\n\t\t39, 63, 199, 204, 124, 85, 31, 157, 99, 208, 246, 8, 184,\n\t\t140, 51, 145, 67, 116, 36, 115, 36, 42, 90, 163, 192, 178,\n\t\t71, 89, 59, 22, 38, 222, 246, 26, 77, 175, 197, 133, 251,\n\t\t190, 91, 112, 109, 46, 233, 197, 89, 188, 92, 13, 252, 127,\n\t\t232, 151, 229, 76, 100, 30, 45, 171, 36, 185, 252, 26, 162,\n\t\t182, 56, 26, 81, 100, 199, 92, 247, 167, 35, 119, 220, 87,\n\t\t104, 228, 70, 238, 56, 182, 99, 238, 190, 211, 48, 106, 202,\n\t\t147, 169, 178, 132, 4, 81, 176, 9, 18, 98, 186, 157, 115,\n\t\t68, 89, 116, 48, 61, 126, 180, 67, 212, 101, 21, 181, 25,\n\t\t104, 81, 247, 185, 17, 164, 207, 237, 56, 118, 7, 165, 194,\n\t\t183, 195, 126, 228, 62, 22, 14, 179, 54, 156, 66, 146, 32,\n\t\t96, 61, 106, 165, 109, 17, 211, 61, 149, 237, 254, 149, 182,\n\t\t235, 213, 44, 39, 75, 131, 83, 99, 166, 173, 224, 255, 224,\n\t\t235, 67, 180, 10, 101, 76, 61, 113, 174, 205, 204, 166, 148,\n\t\t122, 128, 228, 198, 221, 102, 168, 8, 155, 20, 174, 164, 235,\n\t\t4, 33, 147, 67, 249, 203, 243, 244, 223, 208, 20, 38, 116,\n\t\t245, 216, 165, 198, 208, 187, 98, 42, 212, 90, 5, 50, 198,\n\t\t28, 136, 85, 213, 116, 208, 138, 141, 46, 24, 189, 18, 163,\n\t\t34, 251, 15, 225, 43, 71, 111, 136, 70, 187, 255, 132, 144,\n\t\t248, 85, 58, 107, 44, 245, 171, 34, 66, 210, 181, 215, 210,\n\t\t113, 1, 121, 194, 133, 55, 51, 219, 124, 150, 197, 118, 54,\n\t\t27, 189, 165, 173, 145, 168, 112, 208, 137, 160, 122, 78,\n\t\t195, 143, 223, 64, 157, 0, 71, 6, 253, 187, 22, 115, 95, 88,\n\t\t115, 99, 250, 37, 170, 131, 30, 115, 212, 10, 87, 226, 116,\n\t\t86, 207, 50, 90, 134, 34, 171, 255, 98, 151, 74, 246, 138,\n\t\t101, 117, 243, 200, 134, 41, 168, 246, 98, 34, 120, 204, 9,\n\t\t207, 107, 50, 168, 102, 42, 175, 87, 21, 172, 199, 23, 180,\n\t\t251, 138, 165, 80, 50, 100, 142, 2, 227, 31, 119, 252, 75,\n\t\t116, 179, 212, 63, 124, 186, 127, 24, 9, 143, 57, 158, 115,\n\t\t192, 141, 60, 29, 249, 56, 196, 42, 146, 90, 27, 254, 209,\n\t\t131, 30, 170, 122, 107, 222, 199, 188, 6, 135, 137, 48, 6,\n\t\t118, 63, 61, 201, 250, 116, 37, 231, 72, 95, 178, 30, 95,\n\t\t251, 92, 120, 219, 47, 114, 222, 175, 75, 155, 110, 200, 103,\n\t\t167, 166, 166, 222, 55, 197, 255, 187, 137, 15, 241, 207,\n\t\t8, 194, 144, 15, 130, 61, 93, 114, 24, 224, 134, 19, 236,\n\t\t24, 12, 137, 83, 154, 242, 193, 178, 253, 221, 20, 191, 77,\n\t\t118, 6, 239, 46, 250, 232, 36, 255, 7, 127, 237, 9, 90, 205,\n\t\t31, 211, 191, 189, 244, 239, 191, 210, 63, 116, 7, 155, 88,\n\t\t239, 16, 177, 248, 255, 127, 101, 94, 226, 175, 53, 104, 61,\n\t\t67, 99, 23, 114, 82, 28, 237, 251, 115, 248, 171, 90, 248,\n\t\t136, 5, 124, 134, 156, 58, 188, 26, 229, 9, 33, 75, 68, 15,\n\t\t77, 170, 39, 175, 7, 71, 232, 231, 42, 119, 109, 9, 182, 211,\n\t\t170, 217, 96, 254, 88, 13, 83, 125, 104, 101, 109, 133, 7,\n\t\t163, 135, 239, 249, 145, 106, 158, 176, 251, 241, 246, 246,\n\t\t9, 147, 62, 196, 172, 224, 75, 170, 218, 233, 60, 107, 243,\n\t\t104, 243, 254, 45, 148, 63, 236, 250, 126, 244, 21, 223, 166,\n\t\t195, 244, 247, 56, 52, 199, 66, 186, 123, 200, 140, 220, 22,\n\t\t94, 139, 37, 113, 139, 104, 202, 91, 148, 40, 159, 252, 81,\n\t\t101, 11, 54, 104, 145, 132, 191, 28, 221, 121, 100, 103, 20,\n\t\t45, 139, 38, 190, 19, 203, 98, 78, 82, 213, 46, 227, 103,\n\t\t84, 85, 202, 137, 50, 45, 52, 197, 229, 68, 38, 147, 8, 252,\n\t\t97, 62, 135, 246, 48, 31, 200, 173, 32, 45, 4, 113, 159, 148,\n\t\t68, 179, 90, 4, 17, 157, 22, 226, 241, 157, 148, 254, 16,\n\t\t6, 82, 201, 8, 101, 123, 17, 83, 90, 79, 39, 75, 27, 242,\n\t\t148, 192, 114, 205, 172, 35, 127, 195, 60, 3, 167, 13, 213,\n\t\t72, 27, 158, 167, 202, 206, 148, 46, 37, 69, 51, 227, 137,\n\t\t49, 73, 223, 238, 41, 209, 140, 33, 19, 156, 74, 41, 24, 219,\n\t\t37, 41, 65, 28, 213, 178, 72, 121, 193, 80, 191, 25, 87, 70,\n\t\t45, 89, 221, 166, 101, 92, 117, 78, 243, 3, 54, 63, 138, 211,\n\t\t244, 78, 221, 72, 59, 251, 230, 116, 251, 10, 211, 195, 166,\n\t\t121, 40, 106, 236, 78, 151, 182, 235, 146, 110, 233, 240,\n\t\t22, 171, 96, 209, 37, 15, 11, 34, 26, 47, 13, 189, 123, 94,\n\t\t155, 44, 25, 234, 118, 213, 205, 104, 115, 106, 40, 166, 46,\n\t\t199, 179, 98, 15, 74, 162, 197, 192, 76, 5, 81, 128, 61, 132,\n\t\t205, 111, 114, 187, 34, 51, 148, 158, 138, 231, 0, 51, 137,\n\t\t17, 50, 63, 225, 84, 39, 23, 63, 27, 137, 231, 184, 21, 53,\n\t\t23, 39, 12, 24, 196, 183, 2, 134, 253, 96, 70, 34, 173, 200,\n\t\t177, 144, 31, 140, 15, 158, 178, 21, 205, 210, 229, 101, 126,\n\t\t154, 125, 103, 130, 33, 32, 140, 138, 237, 139, 96, 65, 35,\n\t\t22, 202, 139, 16, 47, 9, 238, 23, 211, 2, 116, 53, 44, 61,\n\t\t141, 30, 240, 10, 247, 153, 121, 144, 190, 76, 64, 200, 16,\n\t\t33, 216, 107, 137, 232, 2, 160, 121, 74, 121, 237, 73, 28,\n\t\t195, 120, 248, 234, 130, 32, 128, 77, 133, 136, 137, 253,\n\t\t87, 99, 202, 64, 99, 69, 90, 34, 180, 123, 12, 122, 27, 125,\n\t\t82, 243, 61, 108, 46, 131, 129, 65, 23, 72, 9, 203, 18, 74,\n\t\t9, 24, 179, 3, 77, 125, 18, 162, 230, 170, 85, 145, 126, 32,\n\t\t250, 2, 41, 253, 1, 65, 39, 18, 70, 244, 22, 157, 232, 178,\n\t\t8, 79, 89, 106, 207, 135, 150, 197, 187, 150, 0, 65, 166,\n\t\t24, 18, 108, 5, 174, 181, 13, 235, 64, 157, 226, 6, 31, 51,\n\t\t30, 198, 74, 215, 14, 38, 198, 179, 53, 196, 22, 34, 108,\n\t\t118, 188, 192, 132, 122, 223, 12, 97, 179, 16, 204, 167, 67,\n\t\t224, 40, 160, 23, 235, 33, 201, 170, 61, 95, 94, 137, 113,\n\t\t44, 73, 22, 157, 192, 113, 211, 35, 21, 76, 232, 196, 41,\n\t\t87, 107, 201, 90, 94, 240, 202, 139, 116, 4, 147, 114, 203,\n\t\t171, 214, 26, 73, 6, 16, 47, 212, 188, 56, 115, 97, 12, 106,\n\t\t230, 143, 139, 68, 0, 107, 232, 54, 249, 232, 64, 139, 202,\n\t\t148, 33, 212, 106, 130, 49, 117, 169, 164, 41, 116, 14, 68,\n\t\t75, 244, 92, 153, 154, 82, 106, 194, 17, 20, 37, 80, 248,\n\t\t115, 77, 16, 180, 168, 222, 253, 244, 88, 187, 61, 134, 246,\n\t\t103, 120, 132, 73, 161, 75, 185, 227, 152, 245, 252, 108,\n\t\t98, 104, 172, 48, 54, 148, 200, 203, 177, 114, 34, 63, 46,\n\t\t12, 141, 205, 62, 158, 152, 29, 27, 203, 143, 19, 40, 121,\n\t\t44, 42, 171, 243, 134, 166, 218, 134, 69, 31, 238, 140, 181,\n\t\t51, 85, 30, 51, 242, 199, 157, 88, 46, 6, 120, 42, 47, 156,\n\t\t253, 60, 58, 141, 190, 26, 137, 71, 38, 35, 247, 68, 78, 211,\n\t\t245, 17, 24, 19, 230, 79, 72, 128, 59, 0, 136, 138, 164, 39,\n\t\t131, 59, 38, 139, 131, 135, 171, 128, 36, 76, 185, 220, 70,\n\t\t11, 238, 131, 49, 134, 171, 181, 105, 186, 208, 113, 160,\n\t\t89, 112, 193, 4, 123, 113, 139, 255, 207, 92, 243, 152, 162,\n\t\t218, 203, 139, 30, 247, 237, 100, 105, 183, 137, 133, 171,\n\t\t124, 12, 2, 47, 247, 202, 100, 62, 230, 204, 83, 110, 172,\n\t\t50, 175, 106, 226, 180, 97, 138, 88, 149, 80, 81, 212, 212,\n\t\t249, 10, 118, 196, 121, 39, 150, 79, 82, 174, 84, 21, 40,\n\t\t251, 102, 26, 135, 180, 156, 161, 166, 84, 35, 167, 137, 146,\n\t\t36, 9, 68, 84, 197, 36, 198, 114, 148, 210, 117, 74, 207,\n\t\t163, 50, 198, 201, 180, 34, 104, 78, 50, 161, 37, 146, 78,\n\t\t84, 77, 36, 177, 132, 20, 81, 11, 93, 23, 53, 145, 136, 178,\n\t\t252, 100, 251, 194, 118, 122, 34, 83, 187, 36, 161, 173, 40,\n\t\t34, 174, 10, 150, 114, 74, 147, 96, 244, 95, 161, 88, 66,\n\t\t149, 74, 175, 43, 90, 2, 129, 199, 49, 146, 52, 120, 6, 99,\n\t\t66, 119, 146, 40, 34, 129, 254, 143, 189, 132, 106, 59, 201,\n\t\t164, 150, 240, 232, 107, 146, 180, 121, 10, 210, 249, 91,\n\t\t108, 89, 38, 201, 168, 100, 209, 183, 122, 9, 45, 153, 116,\n\t\t108, 53, 225, 81, 102, 19, 137, 72, 146, 191, 177, 68, 135,\n\t\t95, 102, 50, 195, 109, 225, 61, 60, 151, 1, 4, 109, 223, 59,\n\t\t170, 33, 159, 39, 83, 154, 208, 97, 126, 25, 143, 100, 220,\n\t\t199, 85, 245, 113, 55, 131, 242, 139, 139, 134, 145, 52, 244,\n\t\t197, 69, 150, 172, 124, 224, 12, 173, 64, 62, 199, 108, 197,\n\t\t125, 76, 203, 104, 143, 185, 221, 205, 238, 241, 207, 214,\n\t\t233, 115, 107, 84, 250, 59, 10, 182, 226, 117, 118, 8, 192,\n\t\t46, 241, 232, 232, 167, 159, 187, 108, 137, 190, 141, 14,\n\t\t82, 227, 172, 83, 72, 5, 241, 20, 101, 58, 14, 232, 196, 129,\n\t\t37, 113, 17, 185, 235, 239, 58, 229, 3, 167, 80, 17, 17, 183,\n\t\t156, 57, 125, 203, 248, 146, 104, 68, 93, 13, 154, 24, 47,\n\t\t144, 74, 239, 178, 16, 241, 139, 150, 198, 183, 232, 115,\n\t\t78, 11, 95, 66, 10, 241, 222, 85, 208, 218, 6, 24, 44, 11,\n\t\t7, 45, 163, 182, 179, 126, 44, 173, 70, 53, 76, 133, 170,\n\t\t100, 236, 135, 253, 139, 200, 102, 37, 233, 99, 245, 157,\n\t\t53, 195, 58, 24, 75, 118, 159, 239, 95, 244, 253, 249, 191,\n\t\t142, 190, 24, 153, 5, 31, 60, 153, 169, 254, 231, 91, 237,\n\t\t102, 72, 243, 230, 155, 77, 147, 94, 47, 209, 37, 7, 43, 99,\n\t\t137, 11, 107, 152, 20, 65, 32, 44, 39, 208, 244, 95, 86, 99,\n\t\t153, 249, 73, 187, 7, 107, 111, 39, 98, 53, 213, 48, 116,\n\t\t221, 152, 103, 91, 117, 34, 155, 137, 253, 101, 5, 66, 185,\n\t\t43, 169, 229, 78, 113, 178, 49, 127, 69, 250, 61, 148, 24,\n\t\t97, 141, 109, 222, 99, 56, 244, 126, 122, 35, 189, 31, 182,\n\t\t234, 196, 116, 179, 49, 89, 124, 33, 89, 171, 37, 205, 79,\n\t\t124, 98, 16, 83, 82, 101, 212, 42, 210, 215, 253, 139, 77,\n\t\t14, 2, 228, 99, 85, 208, 6, 4, 57, 49, 17, 109, 105, 151,\n\t\t178, 29, 5, 24, 27, 29, 218, 29, 116, 60, 253, 17, 247, 140,\n\t\t88, 115, 205, 51, 76, 4, 167, 2, 107, 133, 13, 179, 78, 229,\n\t\t168, 239, 160, 216, 231, 173, 231, 153, 175, 223, 241, 200,\n\t\t203, 35, 215, 174, 199, 206, 216, 4, 160, 192, 127, 251, 64,\n\t\t192, 81, 37, 209, 87, 12, 6, 26, 102, 232, 100, 174, 202,\n\t\t21, 2, 123, 71, 207, 63, 140, 195, 107, 88, 6, 14, 249, 179,\n\t\t152, 174, 194, 74, 31, 248, 236, 3, 221, 53, 110, 197, 216,\n\t\t193, 86, 214, 85, 54, 166, 30, 101, 219, 83, 190, 123, 84,\n\t\t199, 210, 150, 52, 235, 183, 245, 40, 119, 132, 225, 91, 215,\n\t\t92, 101, 197, 245, 210, 244, 116, 169, 190, 192, 180, 134,\n\t\t93, 158, 148, 238, 100, 104, 60, 209, 17, 18, 248, 230, 112,\n\t\t252, 13, 129, 246, 193, 203, 88, 148, 10, 72, 126, 229, 36,\n\t\t80, 56, 24, 41, 181, 4, 87, 142, 112, 129, 16, 130, 48, 74,\n\t\t101, 238, 199, 222, 6, 116, 63, 238, 69, 74, 151, 143, 250,\n\t\t60, 248, 165, 51, 184, 31, 41, 17, 79, 44, 10, 12, 188, 31,\n\t\t80, 97, 72, 146, 178, 139, 234, 246, 11, 84, 213, 144, 69,\n\t\t2, 73, 152, 42, 96, 151, 27, 173, 64, 30, 38, 74, 186, 12,\n\t\t85, 189, 96, 187, 170, 22, 38, 115, 19, 186, 168, 18, 1, 233,\n\t\t165, 19, 197, 98, 82, 145, 98, 146, 164, 38, 108, 179, 120,\n\t\t162, 164, 35, 129, 61, 168, 79, 228, 166, 46, 151, 93, 121,\n\t\t56, 233, 168, 68, 70, 70, 182, 163, 40, 157, 156, 142, 100,\n\t\t162, 58, 201, 97, 122, 193, 81, 139, 151, 150, 117, 42, 219,\n\t\t2, 154, 249, 88, 70, 68, 205, 83, 163, 38, 33, 178, 61, 93,\n\t\t223, 95, 20, 81, 102, 76, 19, 144, 140, 85, 189, 124, 105,\n\t\t177, 183, 78, 3, 158, 209, 23, 89, 46, 8, 64, 11, 36, 33,\n\t\t119, 78, 166, 3, 246, 228, 90, 232, 204, 79, 214, 93, 98,\n\t\t248, 115, 223, 35, 73, 242, 219, 138, 50, 66, 18, 202, 169,\n\t\t231, 149, 4, 233, 126, 251, 245, 178, 60, 142, 45, 121, 223,\n\t\t123, 229, 168, 60, 46, 203, 223, 145, 163, 40, 78, 111, 234,\n\t\t126, 87, 81, 126, 135, 238, 43, 132, 220, 241, 207, 138, 242,\n\t\t206, 251, 248, 229, 125, 191, 14, 183, 71, 229, 111, 113,\n\t\t243, 48, 196, 73, 51, 158, 193, 3, 250, 41, 15, 68, 74, 67,\n\t\t52, 0, 203, 141, 14, 16, 82, 204, 147, 160, 151, 19, 148,\n\t\t145, 45, 52, 234, 120, 202, 243, 138, 231, 44, 60, 165, 27,\n\t\t14, 186, 205, 49, 244, 167, 214, 182, 95, 124, 241, 246, 209,\n\t\t242, 136, 27, 31, 101, 68, 218, 156, 143, 30, 242, 35, 169,\n\t\t223, 240, 148, 145, 207, 27, 79, 189, 1, 61, 123, 241, 61,\n\t\t23, 39, 70, 128, 203, 200, 36, 39, 154, 161, 252, 61, 105,\n\t\t214, 31, 121, 148, 40, 110, 74, 42, 54, 224, 204, 21, 142,\n\t\t223, 214, 237, 220, 118, 220, 246, 45, 114, 148, 50, 112,\n\t\t100, 0, 198, 138, 160, 29, 250, 27, 47, 190, 248, 141, 186,\n\t\t219, 55, 188, 118, 67, 81, 110, 28, 79, 242, 211, 2, 70, 95,\n\t\t243, 237, 54, 128, 4, 79, 27, 107, 9, 62, 80, 27, 255, 99,\n\t\t185, 194, 24, 110, 198, 48, 36, 118, 161, 52, 88, 58, 135,\n\t\t5, 7, 117, 137, 59, 34, 187, 158, 182, 175, 54, 126, 212,\n\t\t153, 48, 218, 102, 82, 48, 4, 107, 68, 41, 218, 80, 50, 158,\n\t\t135, 130, 238, 71, 67, 54, 157, 143, 177, 237, 23, 199, 107,\n\t\t251, 52, 207, 149, 71, 92, 98, 136, 9, 179, 109, 76, 196,\n\t\t142, 104, 250, 240, 208, 190, 104, 73, 129, 50, 60, 12, 69,\n\t\t159, 115, 251, 233, 81, 223, 217, 247, 131, 100, 109, 144,\n\t\t41, 15, 82, 102, 81, 200, 219, 94, 164, 13, 148, 151, 104,\n\t\t196, 147, 231, 108, 193, 89, 236, 150, 241, 230, 45, 168,\n\t\t142, 163, 67, 205, 67, 221, 63, 223, 80, 253, 181, 241, 234,\n\t\t249, 170, 63, 79, 159, 186, 99, 211, 186, 247, 245, 141, 41,\n\t\t150, 139, 125, 128, 254, 49, 44, 12, 238, 37, 136, 156, 70,\n\t\t162, 188, 25, 54, 6, 167, 102, 163, 204, 225, 97, 21, 168,\n\t\t237, 25, 216, 142, 246, 11, 151, 217, 150, 21, 160, 131, 203,\n\t\t32, 156, 161, 131, 221, 79, 45, 131, 246, 165, 119, 133, 217,\n\t\t54, 124, 191, 153, 40, 165, 253, 53, 218, 139, 59, 89, 30,\n\t\t136, 235, 55, 201, 187, 58, 16, 215, 221, 163, 188, 9, 239,\n\t\t37, 28, 183, 155, 131, 70, 54, 57, 244, 91, 97, 211, 43, 178,\n\t\t149, 51, 10, 253, 247, 67, 110, 252, 236, 108, 182, 27, 85,\n\t\t9, 27, 233, 116, 19, 220, 142, 150, 185, 240, 9, 141, 3, 48,\n\t\t116, 64, 108, 80, 14, 174, 135, 197, 245, 255, 113, 120, 25,\n\t\t216, 188, 142, 221, 55, 32, 39, 21, 233, 44, 220, 213, 151,\n\t\t147, 232, 176, 95, 68, 12, 174, 116, 26, 178, 13, 214, 170,\n\t\t22, 224, 8, 224, 60, 234, 57, 107, 182, 25, 0, 101, 248, 18,\n\t\t48, 88, 139, 136, 75, 71, 79, 12, 17, 71, 38, 185, 156, 76,\n\t\t5, 31, 77, 26, 242, 207, 40, 121, 84, 174, 97, 42, 206, 111,\n\t\t211, 19, 28, 85, 194, 23, 216, 177, 47, 22, 45, 250, 87, 41,\n\t\t59, 143, 145, 220, 191, 87, 194, 31, 102, 250, 209, 247, 246,\n\t\t30, 236, 93, 96, 199, 124, 77, 255, 60, 27, 95, 10, 91, 103,\n\t\t35, 21, 8, 84, 159, 17, 90, 109, 128, 76, 170, 1, 69, 157,\n\t\t166, 68, 174, 205, 145, 227, 32, 172, 175, 221, 15, 0, 192,\n\t\t164, 86, 47, 213, 75, 179, 132, 37, 53, 107, 193, 196, 15,\n\t\t102, 10, 250, 70, 155, 32, 139, 180, 218, 147, 199, 179, 71,\n\t\t94, 62, 59, 63, 119, 160, 69, 133, 51, 153, 28, 40, 122, 162,\n\t\t136, 41, 111, 109, 197, 247, 26, 148, 184, 25, 243, 229, 122,\n\t\t67, 16, 246, 148, 75, 91, 174, 29, 86, 204, 28, 150, 254,\n\t\t158, 77, 152, 27, 150, 183, 42, 138, 232, 93, 229, 188, 113,\n\t\t108, 71, 193, 125, 189, 135, 36, 44, 109, 189, 47, 87, 194,\n\t\t166, 104, 43, 102, 34, 246, 154, 36, 135, 70, 72, 94, 49,\n\t\t98, 94, 254, 106, 163, 61, 99, 146, 168, 100, 126, 124, 221,\n\t\t188, 217, 131, 190, 76, 169, 214, 94, 70, 47, 193, 33, 206,\n\t\t119, 204, 193, 193, 1, 3, 0, 100, 7, 140, 86, 206, 121, 237,\n\t\t86, 158, 94, 149, 185, 204, 0, 242, 8, 107, 246, 56, 15, 5,\n\t\t69, 127, 212, 222, 9, 41, 2, 183, 238, 167, 155, 253, 91,\n\t\t193, 118, 251, 212, 107, 71, 107, 239, 215, 51, 38, 54, 186,\n\t\t207, 95, 243, 200, 240, 150, 202, 111, 106, 25, 66, 176, 113,\n\t\t25, 146, 209, 53, 143, 60, 130, 14, 196, 90, 195, 239, 159,\n\t\t42, 179, 145, 123, 111, 76, 188, 29, 246, 183, 139, 177, 123,\n\t\t217, 98, 95, 158, 122, 127, 243, 176, 188, 76, 176, 151, 193,\n\t\t63, 157, 41, 70, 179, 9, 242, 74, 250, 172, 158, 193, 205,\n\t\t153, 221, 51, 1, 127, 220, 97, 56, 230, 201, 72, 33, 50, 14,\n\t\t57, 33, 6, 144, 204, 41, 215, 206, 28, 26, 188, 22, 149, 129,\n\t\t64, 200, 161, 98, 79, 187, 89, 101, 126, 146, 115, 45, 143,\n\t\t121, 66, 208, 86, 120, 201, 167, 126, 242, 20, 253, 247, 77,\n\t\t37, 154, 89, 216, 187, 127, 91, 98, 251, 246, 97, 92, 74,\n\t\t0, 126, 253, 27, 10, 157, 2, 29, 34, 51, 213, 173, 197, 189,\n\t\t11, 153, 40, 29, 62, 171, 135, 155, 107, 16, 117, 188, 214,\n\t\t60, 49, 148, 157, 212, 170, 73, 175, 170, 217, 105, 49, 158,\n\t\t54, 226, 230, 35, 166, 40, 154, 153, 106, 245, 86, 146, 200,\n\t\t69, 147, 85, 109, 50, 59, 148, 14, 231, 90, 43, 210, 19, 236,\n\t\t187, 248, 82, 241, 203, 199, 247, 109, 7, 81, 99, 88, 136,\n\t\t168, 83, 55, 93, 100, 217, 239, 124, 213, 214, 195, 195, 59,\n\t\t11, 91, 250, 222, 189, 130, 36, 207, 237, 125, 217, 177, 75,\n\t\t39, 209, 218, 27, 110, 107, 166, 147, 179, 179, 138, 40, 109,\n\t\t233, 249, 246, 126, 108, 186, 212, 184, 108, 97, 58, 21, 147,\n\t\t35, 65, 46, 190, 32, 134, 119, 44, 114, 49, 200, 13, 238,\n\t\t134, 20, 25, 36, 177, 185, 109, 216, 5, 165, 57, 225, 190,\n\t\t191, 61, 96, 60, 102, 220, 244, 230, 102, 25, 66, 30, 115,\n\t\t179, 131, 37, 220, 13, 82, 88, 156, 9, 231, 210, 8, 124, 56,\n\t\t216, 191, 47, 82, 209, 112, 194, 178, 168, 228, 29, 19, 1,\n\t\t191, 78, 37, 134, 229, 73, 186, 35, 234, 72, 147, 20, 209,\n\t\t18, 141, 236, 12, 148, 94, 176, 46, 187, 5, 100, 220, 56,\n\t\t200, 8, 13, 223, 158, 141, 224, 24, 228, 60, 114, 90, 138,\n\t\t106, 169, 182, 53, 60, 167, 33, 53, 138, 113, 10, 60, 195,\n\t\t60, 63, 235, 69, 152, 7, 119, 40, 21, 174, 111, 214, 110,\n\t\t183, 85, 29, 64, 46, 97, 240, 119, 237, 205, 155, 114, 68,\n\t\t81, 244, 93, 108, 169, 223, 165, 43, 202, 178, 108, 201, 31,\n\t\t222, 164, 158, 221, 15, 146, 56, 243, 28, 94, 138, 147, 101,\n\t\t89, 70, 199, 121, 117, 184, 93, 232, 0, 163, 29, 30, 179,\n\t\t78, 36, 224, 13, 195, 136, 197, 254, 98, 224, 196, 155, 128,\n\t\t227, 238, 201, 80, 199, 68, 184, 142, 76, 93, 9, 104, 162,\n\t\t9, 180, 2, 239, 187, 154, 124, 198, 48, 150, 73, 188, 211,\n\t\t137, 147, 238, 15, 84, 242, 116, 175, 134, 180, 182, 79, 83,\n\t\t2, 190, 159, 190, 240, 106, 242, 21, 122, 19, 212, 184, 3,\n\t\t181, 189, 143, 168, 15, 6, 53, 164, 7, 43, 42, 137, 172, 207,\n\t\t79, 214, 224, 217, 124, 249, 146, 88, 217, 44, 155, 10, 87,\n\t\t157, 114, 16, 65, 110, 85, 164, 181, 179, 79, 129, 103, 61,\n\t\t122, 126, 93, 26, 149, 21, 218, 122, 86, 203, 21, 24, 4, 220,\n\t\t84, 241, 201, 193, 60, 42, 15, 178, 110, 244, 107, 137, 20,\n\t\t45, 200, 239, 230, 127, 51, 49, 98, 68, 242, 108, 30, 239,\n\t\t166, 18, 77, 4, 178, 3, 111, 90, 171, 243, 15, 224, 240, 2,\n\t\t187, 110, 189, 108, 162, 194, 26, 74, 111, 76, 255, 50, 48,\n\t\t100, 81, 132, 239, 125, 73, 145, 110, 214, 58, 157, 199, 55,\n\t\t38, 132, 9, 15, 79, 223, 229, 225, 217, 30, 23, 57, 48, 15,\n\t\t33, 95, 13, 228, 130, 190, 245, 188, 57, 107, 194, 237, 9,\n\t\t31, 186, 128, 205, 234, 179, 96, 255, 73, 151, 173, 205, 82,\n\t\t221, 12, 180, 245, 209, 88, 90, 137, 170, 47, 205, 69, 107,\n\t\t179, 164, 56, 188, 245, 151, 51, 134, 160, 251, 67, 148, 137,\n\t\t105, 49, 83, 28, 240, 195, 2, 176, 227, 77, 220, 179, 82,\n\t\t28, 223, 67, 10, 205, 87, 136, 170, 63, 178, 233, 140, 5,\n\t\t213, 75, 171, 185, 222, 191, 168, 177, 137, 205, 134, 177,\n\t\t123, 113, 220, 14, 102, 218, 192, 108, 222, 103, 232, 249,\n\t\t98, 177, 146, 93, 242, 89, 121, 119, 91, 94, 167, 178, 188,\n\t\t158, 207, 211, 141, 14, 59, 157, 167, 217, 248, 6, 159, 115,\n\t\t235, 102, 249, 87, 233, 45, 197, 88, 53, 91, 241, 245, 154,\n\t\t245, 109, 121, 166, 10, 160, 2, 9, 236, 225, 241, 118, 129,\n\t\t146, 163, 199, 216, 92, 12, 98, 209, 119, 209, 182, 65, 100,\n\t\t234, 62, 208, 27, 183, 193, 37, 127, 147, 153, 78, 18, 213,\n\t\t115, 16, 93, 224, 131, 90, 115, 110, 208, 30, 48, 154, 149,\n\t\t57, 44, 12, 136, 120, 223, 195, 113, 99, 37, 76, 11, 86, 240,\n\t\t57, 200, 109, 18, 136, 237, 83, 188, 93, 203, 191, 185, 247,\n\t\t3, 251, 0, 46, 38, 183, 55, 71, 69, 192, 148, 110, 142, 134,\n\t\t8, 197, 204, 253, 199, 145, 188, 158, 214, 10, 90, 20, 163,\n\t\t81, 214, 176, 127, 248, 192, 222, 223, 252, 55, 42, 52, 194,\n\t\t195, 47, 153, 230, 206, 1, 1, 97, 209, 36, 126, 147, 153,\n\t\t131, 216, 166, 52, 55, 160, 180, 203, 61, 218, 187, 62, 243,\n\t\t17, 251, 26, 171, 140, 214, 46, 7, 148, 247, 231, 156, 230,\n\t\t6, 114, 49, 196, 102, 87, 195, 216, 21, 243, 125, 224, 122,\n\t\t218, 111, 110, 187, 70, 60, 96, 77, 103, 0, 83, 131, 128,\n\t\t156, 255, 87, 185, 165, 220, 221, 185, 220, 85, 151, 50, 93,\n\t\t220, 165, 199, 1, 176, 98, 246, 55, 183, 109, 83, 99, 89,\n\t\t117, 219, 69, 150, 44, 252, 29, 45, 249, 171, 28, 189, 103,\n\t\t137, 222, 196, 52, 117, 244, 38, 181, 251, 163, 58, 220, 148,\n\t\t141, 169, 219, 142, 155, 114, 8, 95, 170, 67, 235, 160, 69,\n\t\t74, 76, 42, 9, 144, 105, 232, 7, 125, 105, 21, 18, 34, 160,\n\t\t10, 42, 128, 204, 249, 162, 245, 90, 57, 89, 6, 221, 144,\n\t\t221, 73, 221, 255, 210, 106, 136, 153, 125, 10, 161, 47, 69,\n\t\t76, 202, 253, 237, 138, 188, 60, 114, 91, 228, 87, 89, 116,\n\t\t88, 130, 233, 78, 170, 237, 86, 109, 158, 142, 212, 4, 40,\n\t\t65, 32, 191, 43, 61, 173, 2, 82, 124, 146, 3, 124, 82, 218,\n\t\t211, 170, 66, 106, 4, 47, 73, 25, 20, 196, 239, 0, 5, 11,\n\t\t149, 107, 227, 148, 239, 13, 138, 40, 135, 88, 2, 28, 3, 202,\n\t\t250, 202, 28, 116, 142, 118, 1, 3, 27, 206, 11, 144, 235,\n\t\t151, 14, 121, 169, 92, 37, 144, 124, 154, 178, 66, 117, 182,\n\t\t12, 209, 159, 241, 230, 242, 194, 207, 226, 150, 48, 44, 199,\n\t\t162, 186, 144, 23, 188, 137, 69, 100, 32, 201, 82, 85, 67,\n\t\t208, 81, 201, 75, 231, 81, 84, 112, 92, 93, 176, 16, 218,\n\t\t118, 65, 84, 0, 168, 28, 93, 102, 151, 53, 68, 199, 232, 67,\n\t\t71, 110, 69, 24, 89, 186, 102, 82, 185, 28, 93, 180, 37, 102,\n\t\t171, 142, 172, 171, 41, 20, 195, 150, 166, 209, 14, 211, 53,\n\t\t73, 3, 229, 160, 100, 199, 101, 35, 95, 170, 142, 38, 46,\n\t\t223, 190, 5, 17, 29, 35, 205, 68, 7, 14, 223, 50, 188, 216,\n\t\t170, 255, 145, 165, 221, 121, 91, 44, 161, 222, 120, 179,\n\t\t182, 140, 182, 143, 31, 61, 44, 169, 10, 18, 108, 237, 192,\n\t\t65, 175, 128, 10, 137, 163, 71, 84, 93, 178, 181, 253, 23,\n\t\t140, 109, 207, 152, 174, 82, 158, 94, 220, 46, 242, 27, 218,\n\t\t91, 118, 206, 42, 91, 209, 205, 135, 8, 105, 54, 21, 90, 69,\n\t\t91, 91, 216, 210, 62, 134, 36, 65, 139, 59, 130, 124, 111,\n\t\t110, 82, 179, 162, 106, 205, 211, 28, 1, 9, 178, 114, 169,\n\t\t18, 215, 69, 213, 201, 37, 109, 21, 109, 223, 114, 60, 133,\n\t\t117, 28, 213, 18, 215, 29, 60, 132, 236, 161, 113, 166, 91,\n\t\t233, 82, 185, 178, 67, 229, 202, 20, 183, 117, 229, 133, 56,\n\t\t72, 30, 192, 182, 178, 236, 27, 12, 46, 46, 217, 143, 120,\n\t\t64, 7, 234, 175, 236, 140, 142, 118, 94, 89, 95, 60, 85, 189,\n\t\t92, 141, 11, 233, 180, 16, 215, 46, 171, 158, 122, 155, 27,\n\t\t141, 170, 178, 74, 68, 180, 60, 214, 110, 100, 26, 237, 177,\n\t\t237, 227, 187, 137, 174, 221, 118, 155, 166, 147, 221, 227,\n\t\t219, 63, 21, 196, 50, 48, 221, 226, 96, 220, 55, 139, 94,\n\t\t13, 226, 207, 171, 65, 20, 97, 128, 224, 239, 139, 254, 222,\n\t\t28, 172, 71, 241, 70, 47, 138, 243, 66, 166, 198, 124, 134,\n\t\t109, 29, 38, 198, 45, 141, 111, 31, 31, 223, 254, 121, 219,\n\t\t94, 177, 237, 7, 224, 112, 252, 23, 161, 24, 225, 255, 139,\n\t\t201, 106, 99, 188, 188, 80, 184, 129, 221, 28, 89, 143, 61,\n\t\t57, 236, 231, 43, 26, 124, 55, 64, 79, 34, 63, 69, 21, 157,\n\t\t79, 65, 29, 250, 182, 53, 55, 243, 164, 106, 34, 121, 71,\n\t\t222, 29, 45, 137, 200, 84, 103, 231, 199, 194, 161, 233, 227,\n\t\t236, 228, 207, 68, 67, 205, 150, 204, 33, 87, 53, 196, 232,\n\t\t131, 129, 176, 36, 48, 63, 14, 204, 244, 91, 89, 250, 13,\n\t\t72, 162, 177, 153, 138, 139, 20, 189, 34, 250, 217, 115, 11,\n\t\t129, 62, 235, 57, 219, 241, 208, 103, 61, 231, 80, 247, 193,\n\t\t58, 74, 161, 55, 63, 183, 198, 85, 88, 107, 207, 217, 227,\n\t\t227, 184, 206, 101, 176, 160, 93, 55, 133, 144, 43, 225, 71,\n\t\t233, 220, 225, 235, 121, 20, 4, 134, 96, 209, 163, 11, 0,\n\t\t131, 28, 140, 115, 76, 58, 126, 217, 191, 6, 98, 15, 135,\n\t\t79, 163, 19, 140, 1, 249, 6, 126, 234, 126, 140, 24, 91, 63,\n\t\t216, 245, 38, 239, 22, 244, 132, 74, 98, 214, 21, 219, 84,\n\t\t156, 86, 100, 69, 196, 150, 161, 146, 43, 177, 76, 255, 215,\n\t\t136, 170, 207, 96, 90, 96, 162, 88, 52, 155, 44, 120, 105,\n\t\t192, 112, 116, 162, 138, 169, 3, 30, 54, 18, 92, 81, 37, 138,\n\t\t34, 155, 146, 76, 68, 65, 148, 36, 87, 148, 37, 49, 170, 250,\n\t\t157, 121, 128, 168, 91, 143, 171, 9, 66, 23, 31, 25, 73, 162,\n\t\t33, 17, 149, 254, 170, 138, 13, 209, 22, 68, 130, 245, 132,\n\t\t157, 181, 188, 130, 74, 134, 92, 39, 106, 196, 109, 250, 43,\n\t\t73, 73, 76, 75, 178, 78, 159, 136, 227, 40, 37, 77, 162, 33,\n\t\t10, 138, 228, 231, 181, 15, 250, 232, 42, 134, 99, 220, 243,\n\t\t24, 105, 206, 179, 46, 128, 207, 238, 107, 167, 120, 19, 97,\n\t\t109, 9, 10, 56, 164, 55, 88, 185, 133, 22, 7, 232, 97, 56,\n\t\t61, 73, 102, 2, 7, 195, 26, 116, 26, 37, 101, 9, 222, 109,\n\t\t244, 127, 240, 121, 226, 8, 200, 113, 122, 139, 223, 81, 135,\n\t\t44, 186, 14, 154, 123, 164, 36, 182, 45, 157, 40, 195, 162,\n\t\t64, 155, 35, 136, 88, 150, 132, 40, 18, 52, 65, 82, 105, 117,\n\t\t193, 216, 138, 53, 89, 215, 135, 12, 35, 170, 164, 14, 20,\n\t\t210, 170, 162, 161, 168, 19, 27, 182, 85, 221, 164, 212, 212,\n\t\t161, 61, 39, 139, 87, 13, 9, 9, 19, 75, 174, 36, 197, 2, 245,\n\t\t196, 159, 90, 174, 73, 95, 32, 228, 9, 22, 137, 42, 106, 72,\n\t\t82, 104, 235, 135, 145, 64, 137, 134, 16, 254, 97, 36, 232,\n\t\t170, 42, 25, 195, 7, 170, 166, 161, 210, 65, 172, 58, 170,\n\t\t91, 48, 85, 125, 88, 203, 202, 51, 130, 69, 36, 241, 90, 37,\n\t\t170, 207, 140, 99, 81, 206, 99, 11, 103, 149, 129, 254, 91,\n\t\t0, 254, 179, 103, 185, 110, 251, 114, 28, 29, 36, 124, 53,\n\t\t2, 141, 108, 34, 238, 177, 17, 146, 244, 251, 145, 95, 100,\n\t\t61, 235, 177, 254, 230, 44, 41, 103, 82, 122, 35, 144, 15,\n\t\t66, 254, 72, 163, 221, 251, 10, 244, 49, 222, 127, 63, 118,\n\t\t40, 65, 22, 100, 81, 161, 68, 83, 108, 12, 15, 159, 184, 91,\n\t\t92, 36, 178, 43, 42, 130, 39, 105, 152, 14, 14, 25, 99, 89,\n\t\t38, 234, 211, 178, 33, 72, 88, 164, 221, 36, 74, 2, 194, 130,\n\t\t76, 71, 65, 74, 16, 107, 24, 134, 16, 237, 137, 164, 40, 234,\n\t\t138, 41, 227, 40, 145, 213, 160, 239, 104, 119, 138, 146,\n\t\t114, 161, 38, 97, 65, 21, 171, 218, 221, 39, 162, 14, 253,\n\t\t101, 36, 77, 49, 83, 51, 255, 229, 235, 82, 68, 50, 168, 100,\n\t\t46, 81, 113, 83, 48, 101, 68, 73, 175, 45, 96, 77, 20, 12,\n\t\t25, 35, 250, 131, 244, 215, 96, 221, 54, 67, 125, 101, 49,\n\t\t95, 124, 240, 82, 30, 235, 249, 41, 239, 141, 28, 14, 245,\n\t\t95, 179, 76, 249, 152, 134, 111, 39, 105, 5, 116, 136, 150,\n\t\t182, 153, 23, 202, 224, 126, 192, 115, 57, 48, 168, 36, 120,\n\t\t239, 60, 58, 234, 154, 138, 98, 186, 5, 70, 111, 154, 245,\n\t\t122, 253, 148, 255, 199, 17, 112, 151, 71, 21, 80, 135, 40,\n\t\t126, 131, 127, 14, 167, 11, 240, 204, 127, 97, 151, 207, 140,\n\t\t142, 46, 12, 254, 187, 129, 235, 72, 149, 81, 183, 66, 111,\n\t\t29, 221, 128, 227, 81, 237, 183, 66, 90, 23, 219, 30, 7, 61,\n\t\t21, 192, 245, 214, 24, 118, 175, 63, 252, 47, 9, 105, 106,\n\t\t151, 175, 32, 116, 224, 205, 60, 49, 131, 53, 140, 136, 95,\n\t\t39, 47, 20, 141, 255, 227, 86, 13, 168, 103, 84, 160, 159,\n\t\t182, 54, 240, 238, 68, 164, 12, 62, 5, 193, 187, 43, 108,\n\t\t30, 130, 49, 187, 202, 76, 216, 225, 179, 216, 166, 245, 88,\n\t\t136, 34, 20, 197, 9, 153, 239, 62, 56, 112, 54, 177, 105,\n\t\t197, 236, 100, 177, 148, 80, 213, 13, 219, 238, 179, 3, 181,\n\t\t28, 92, 99, 0, 23, 111, 75, 191, 158, 35, 37, 76, 152, 8,\n\t\t12, 195, 26, 228, 174, 193, 243, 105, 41, 84, 89, 220, 171,\n\t\t235, 203, 170, 101, 193, 16, 53, 163, 106, 170, 162, 137,\n\t\t132, 231, 220, 240, 41, 82, 116, 43, 154, 238, 213, 152, 46,\n\t\t76, 65, 133, 209, 88, 158, 136, 178, 147, 76, 58, 178, 72,\n\t\t242, 99, 225, 51, 35, 25, 51, 72, 247, 135, 126, 197, 233,\n\t\t74, 85, 243, 101, 204, 63, 68, 191, 64, 95, 140, 232, 44,\n\t\t255, 243, 46, 64, 253, 136, 148, 252, 4, 22, 160, 133, 156,\n\t\t107, 115, 238, 147, 163, 166, 208, 49, 91, 253, 79, 180, 7,\n\t\t58, 31, 253, 229, 104, 110, 92, 80, 132, 241, 186, 170, 179,\n\t\t5, 245, 250, 67, 139, 202, 204, 145, 255, 68, 251, 248, 23,\n\t\t233, 228, 92, 175, 45, 138, 109, 207, 221, 46, 214, 27, 215,\n\t\t67, 47, 141, 197, 172, 226, 180, 210, 107, 36, 150, 194, 77,\n\t\t166, 103, 131, 77, 222, 236, 91, 165, 41, 55, 176, 53, 52,\n\t\t43, 1, 75, 212, 79, 94, 194, 244, 204, 120, 240, 227, 84,\n\t\t124, 31, 28, 16, 182, 64, 207, 156, 108, 243, 207, 117, 165,\n\t\t108, 217, 251, 21, 33, 46, 57, 182, 149, 146, 4, 98, 101,\n\t\t110, 28, 252, 58, 150, 109, 201, 146, 21, 83, 137, 32, 165,\n\t\t44, 219, 145, 226, 66, 48, 31, 135, 163, 57, 41, 38, 40, 251,\n\t\t163, 89, 65, 116, 76, 69, 144, 204, 238, 191, 135, 190, 209,\n\t\t59, 165, 92, 148, 158, 80, 50, 110, 58, 130, 152, 141, 210,\n\t\t183, 68, 214, 181, 33, 73, 231, 197, 108, 104, 101, 99, 43,\n\t\t15, 147, 103, 231, 65, 35, 238, 113, 56, 109, 160, 190, 120,\n\t\t211, 161, 150, 193, 120, 73, 177, 72, 177, 40, 98, 69, 250,\n\t\t31, 197, 34, 177, 148, 37, 86, 116, 249, 102, 35, 108, 138,\n\t\t18, 193, 186, 28, 85, 70, 71, 37, 21, 11, 98, 108, 116, 84,\n\t\t137, 202, 117, 94, 216, 125, 62, 60, 186, 48, 228, 114, 166,\n\t\t139, 241, 23, 89, 254, 171, 153, 200, 246, 200, 33, 64, 192,\n\t\t103, 40, 95, 109, 134, 172, 135, 25, 86, 24, 87, 98, 182,\n\t\t232, 2, 154, 164, 242, 2, 175, 32, 169, 46, 10, 30, 0, 129,\n\t\t215, 120, 237, 171, 51, 2, 237, 114, 38, 204, 66, 155, 232,\n\t\t103, 18, 192, 59, 10, 148, 160, 12, 248, 117, 174, 133, 222,\n\t\t67, 137, 177, 110, 91, 227, 67, 150, 211, 253, 101, 126, 60,\n\t\t150, 183, 28, 116, 127, 49, 53, 22, 127, 221, 147, 7, 136,\n\t\t44, 164, 189, 208, 241, 91, 60, 68, 249, 21, 42, 153, 206,\n\t\t203, 40, 126, 18, 197, 5, 15, 73, 68, 102, 5, 127, 89, 74,\n\t\t123, 114, 76, 242, 110, 158, 164, 11, 105, 98, 123, 7, 45,\n\t\t201, 242, 65, 219, 202, 143, 209, 159, 126, 174, 119, 136,\n\t\t52, 153, 28, 120, 242, 117, 241, 177, 116, 193, 25, 22, 66,\n\t\t199, 163, 47, 195, 154, 224, 9, 113, 36, 207, 107, 194, 243,\n\t\t244, 7, 175, 148, 137, 132, 88, 193, 114, 233, 149, 35, 4,\n\t\t41, 147, 55, 123, 116, 249, 142, 230, 6, 190, 99, 33, 50,\n\t\t13, 49, 21, 189, 177, 200, 13, 25, 76, 63, 193, 190, 38, 228,\n\t\t79, 160, 203, 229, 186, 17, 233, 23, 11, 131, 119, 243, 79,\n\t\t123, 149, 44, 138, 25, 58, 119, 228, 225, 97, 73, 65, 56,\n\t\t35, 138, 114, 57, 74, 121, 130, 232, 254, 193, 47, 91, 235,\n\t\t93, 40, 247, 159, 144, 9, 93, 117, 125, 50, 136, 84, 49, 93,\n\t\t166, 75, 164, 227, 8, 88, 42, 167, 69, 21, 201, 5, 73, 42,\n\t\t116, 255, 53, 244, 189, 191, 18, 148, 202, 131, 119, 179,\n\t\t113, 240, 135, 194, 47, 209, 54, 194, 56, 104, 69, 246, 71,\n\t\t46, 5, 95, 131, 118, 232, 219, 203, 208, 100, 192, 36, 104,\n\t\t81, 153, 16, 146, 178, 204, 50, 0, 105, 198, 84, 193, 104,\n\t\t96, 240, 210, 200, 131, 89, 185, 142, 252, 76, 163, 117, 228,\n\t\t8, 15, 116, 207, 117, 253, 129, 32, 156, 96, 95, 77, 67, 88,\n\t\t62, 120, 167, 145, 66, 66, 225, 174, 7, 239, 42, 32, 33, 101,\n\t\t208, 113, 161, 155, 218, 35, 87, 237, 188, 101, 31, 54, 245,\n\t\t120, 238, 240, 32, 109, 250, 242, 224, 105, 114, 160, 239,\n\t\t214, 122, 195, 193, 97, 111, 57, 0, 47, 20, 143, 211, 159,\n\t\t223, 178, 119, 239, 22, 250, 235, 199, 233, 216, 16, 132,\n\t\t147, 247, 111, 125, 213, 14, 186, 207, 93, 125, 110, 106,\n\t\t149, 255, 167, 65, 218, 204, 48, 127, 217, 216, 224, 81, 125,\n\t\t135, 253, 200, 0, 76, 40, 3, 16, 110, 36, 192, 59, 110, 22,\n\t\t13, 64, 182, 66, 66, 27, 38, 57, 79, 11, 244, 145, 6, 227,\n\t\t203, 40, 95, 181, 40, 208, 207, 122, 197, 65, 117, 28, 247,\n\t\t26, 130, 199, 213, 131, 87, 252, 90, 104, 161, 22, 17, 196,\n\t\t16, 72, 213, 172, 233, 57, 90, 12, 233, 9, 17, 9, 22, 149,\n\t\t57, 245, 40, 29, 20, 215, 31, 123, 99, 54, 30, 159, 206, 142,\n\t\t4, 245, 29, 201, 78, 199, 227, 217, 55, 30, 187, 254, 178,\n\t\t208, 82, 254, 30, 129, 138, 173, 157, 108, 69, 119, 82, 230,\n\t\t78, 149, 50, 160, 10, 33, 10, 209, 133, 117, 109, 219, 22,\n\t\t57, 8, 113, 213, 149, 115, 215, 86, 56, 111, 179, 61, 78,\n\t\t219, 252, 225, 95, 107, 183, 170, 62, 247, 221, 66, 149, 115,\n\t\t54, 226, 145, 77, 59, 224, 185, 128, 20, 82, 26, 8, 148, 208,\n\t\t84, 57, 37, 188, 224, 28, 45, 65, 183, 156, 167, 43, 118,\n\t\t245, 40, 37, 165, 144, 3, 116, 146, 175, 187, 95, 240, 231,\n\t\t125, 133, 225, 109, 189, 130, 246, 74, 95, 66, 62, 95, 115,\n\t\t215, 165, 73, 240, 130, 207, 237, 157, 187, 3, 125, 89, 250,\n\t\t35, 155, 54, 122, 109, 67, 58, 5, 253, 65, 102, 21, 53, 207,\n\t\t61, 4, 20, 38, 113, 127, 254, 60, 173, 95, 26, 204, 187, 160,\n\t\t214, 153, 165, 244, 145, 115, 15, 137, 13, 57, 34, 102, 55,\n\t\t201, 17, 177, 190, 237, 132, 246, 12, 243, 128, 166, 203,\n\t\t194, 96, 150, 136, 207, 108, 108, 213, 143, 96, 194, 94, 1,\n\t\t211, 151, 114, 20, 51, 79, 12, 228, 137, 32, 88, 85, 194,\n\t\t213, 125, 37, 76, 194, 86, 171, 134, 53, 42, 163, 49, 127,\n\t\t169, 72, 1, 173, 49, 251, 60, 196, 68, 236, 140, 28, 163,\n\t\t242, 100, 164, 189, 62, 170, 255, 252, 231, 141, 202, 127,\n\t\t242, 126, 238, 75, 215, 67, 108, 94, 119, 196, 77, 237, 231,\n\t\t188, 188, 234, 239, 207, 177, 89, 59, 255, 101, 63, 158, 29,\n\t\t117, 122, 113, 32, 126, 155, 215, 123, 253, 121, 47, 114,\n\t\t190, 190, 77, 47, 118, 255, 242, 121, 42, 197, 29, 11, 206,\n\t\t119, 57, 212, 232, 205, 15, 33, 88, 239, 252, 119, 4, 58,\n\t\t88, 238, 35, 14, 184, 170, 157, 240, 151, 102, 144, 64, 60,\n\t\t119, 67, 56, 91, 83, 171, 65, 169, 148, 215, 115, 148, 99,\n\t\t250, 52, 212, 111, 88, 139, 5, 238, 218, 28, 5, 244, 76, 182,\n\t\t66, 183, 54, 148, 124, 227, 91, 239, 18, 153, 49, 225, 222,\n\t\t75, 23, 150, 23, 216, 145, 184, 202, 2, 69, 233, 29, 0, 112,\n\t\t82, 205, 192, 150, 135, 249, 70, 30, 191, 145, 97, 82, 157,\n\t\t186, 244, 94, 122, 51, 63, 188, 113, 0, 203, 104, 152, 174,\n\t\t174, 145, 118, 98, 112, 72, 121, 235, 188, 152, 66, 21, 229,\n\t\t133, 32, 83, 54, 231, 155, 131, 14, 218, 45, 58, 64, 108,\n\t\t166, 25, 54, 221, 167, 89, 93, 225, 236, 95, 105, 125, 155,\n\t\t149, 79, 64, 252, 66, 33, 158, 187, 206, 73, 223, 251, 161,\n\t\t123, 121, 173, 159, 63, 5, 8, 183, 245, 108, 197, 125, 175,\n\t\t107, 6, 199, 104, 249, 241, 27, 127, 187, 210, 100, 0, 132,\n\t\t105, 231, 183, 132, 75, 239, 189, 247, 82, 238, 9, 21, 212,\n\t\t187, 72, 249, 67, 145, 246, 114, 54, 18, 73, 180, 61, 18,\n\t\t100, 7, 174, 181, 193, 89, 147, 161, 160, 212, 32, 222, 117,\n\t\t239, 158, 114, 122, 236, 195, 101, 59, 57, 209, 88, 110, 152,\n\t\t2, 90, 141, 10, 209, 223, 125, 234, 235, 246, 132, 93, 216,\n\t\t191, 167, 140, 236, 242, 135, 199, 29, 98, 210, 107, 19, 50,\n\t\t182, 63, 68, 139, 191, 254, 212, 239, 70, 97, 230, 6, 113,\n\t\t195, 17, 134, 61, 10, 217, 98, 15, 68, 78, 208, 113, 124,\n\t\t115, 228, 46, 150, 197, 15, 152, 14, 102, 20, 243, 122, 88,\n\t\t181, 27, 203, 214, 69, 60, 49, 85, 26, 57, 7, 156, 193, 185,\n\t\t142, 3, 116, 78, 244, 62, 57, 59, 65, 144, 70, 108, 75, 232,\n\t\t29, 221, 182, 73, 217, 135, 160, 15, 187, 12, 183, 109, 34,\n\t\t225, 220, 238, 39, 152, 94, 222, 108, 215, 253, 12, 11, 71,\n\t\t71, 214, 104, 114, 100, 145, 232, 155, 238, 232, 184, 95,\n\t\t133, 223, 162, 131, 207, 60, 241, 41, 134, 150, 176, 241,\n\t\t31, 234, 176, 192, 118, 191, 207, 58, 12, 23, 117, 7, 243,\n\t\t28, 190, 149, 246, 215, 105, 192, 171, 70, 101, 167, 23, 207,\n\t\t183, 62, 129, 7, 15, 45, 13, 7, 139, 201, 27, 49, 47, 6, 206,\n\t\t107, 235, 115, 132, 12, 222, 218, 240, 26, 48, 42, 43, 27,\n\t\t140, 119, 131, 231, 66, 157, 71, 215, 112, 223, 186, 231,\n\t\t251, 225, 54, 2, 184, 218, 117, 191, 161, 200, 85, 89, 89,\n\t\t183, 89, 233, 31, 54, 122, 229, 141, 53, 150, 199, 103, 179,\n\t\t251, 209, 138, 15, 107, 203, 13, 70, 62, 0, 92, 223, 153,\n\t\t111, 170, 119, 247, 171, 122, 71, 47, 235, 29, 61, 17, 122,\n\t\t241, 232, 194, 194, 171, 54, 185, 57, 192, 224, 88, 243, 243,\n\t\t4, 229, 35, 237, 200, 222, 200, 69, 48, 74, 119, 244, 178,\n\t\t121, 135, 146, 124, 203, 173, 97, 136, 79, 109, 133, 19, 127,\n\t\t131, 3, 255, 142, 126, 150, 240, 60, 26, 102, 97, 150, 51,\n\t\t104, 46, 20, 138, 49, 131, 208, 103, 33, 195, 247, 40, 75,\n\t\t246, 221, 253, 239, 35, 169, 59, 174, 120, 124, 229, 74, 244,\n\t\t127, 179, 188, 224, 118, 62, 1, 137, 193, 63, 169, 184, 54,\n\t\t126, 205, 21, 176, 189, 27, 161, 75, 193, 110, 230, 152, 57,\n\t\t229, 53, 72, 247, 211, 123, 231, 130, 124, 223, 239, 198,\n\t\t217, 55, 209, 78, 43, 250, 25, 194, 211, 51, 53, 179, 151,\n\t\t34, 156, 46, 180, 15, 195, 159, 165, 157, 210, 44, 83, 125,\n\t\t120, 227, 58, 207, 208, 42, 122, 250, 248, 128, 149, 153,\n\t\t175, 113, 23, 33, 96, 235, 152, 201, 43, 238, 239, 147, 237,\n\t\t69, 97, 64, 57, 207, 121, 214, 39, 203, 101, 167, 148, 192,\n\t\t34, 118, 18, 9, 71, 150, 97, 75, 79, 134, 199, 244, 176, 146,\n\t\t158, 243, 166, 31, 73, 90, 86, 82, 115, 45, 132, 76, 145,\n\t\t168, 105, 58, 70, 116, 129, 168, 25, 69, 161, 34, 148, 144,\n\t\t253, 61, 174, 181, 31, 212, 231, 52, 7, 228, 178, 100, 171,\n\t\t57, 32, 117, 156, 175, 174, 168, 13, 119, 11, 229, 222, 237,\n\t\t30, 175, 245, 255, 35, 26, 66, 153, 201, 21, 170, 89, 53,\n\t\t111, 56, 71, 237, 119, 137, 6, 138, 165, 13, 55, 184, 207,\n\t\t111, 199, 225, 1, 209, 225, 15, 206, 219, 158, 79, 210, 123,\n\t\t227, 197, 88, 112, 115, 164, 167, 243, 249, 15, 218, 182,\n\t\t24, 203, 138, 118, 52, 242, 202, 32, 111, 40, 75, 245, 200,\n\t\t147, 121, 182, 168, 32, 150, 8, 129, 211, 86, 203, 192, 97,\n\t\t85, 7, 63, 144, 208, 107, 52, 211, 134, 4, 141, 238, 75, 103,\n\t\t162, 111, 83, 65, 63, 37, 78, 236, 132, 38, 122, 34, 137,\n\t\t25, 78, 78, 18, 21, 123, 248, 247, 188, 153, 121, 166, 198,\n\t\t113, 116, 37, 113, 177, 231, 172, 178, 111, 245, 68, 185,\n\t\t172, 185, 89, 155, 86, 27, 186, 65, 66, 253, 222, 176, 53,\n\t\t189, 166, 171, 84, 220, 103, 108, 157, 9, 241, 78, 209, 233,\n\t\t88, 81, 78, 10, 234, 9, 195, 179, 5, 193, 181, 85, 65, 142,\n\t\t234, 23, 115, 205, 232, 245, 211, 147, 98, 69, 40, 231, 238,\n\t\t239, 127, 117, 197, 50, 149, 205, 187, 233, 75, 148, 229,\n\t\t11, 50, 133, 105, 113, 67, 85, 54, 140, 83, 15, 162, 241,\n\t\t206, 165, 247, 244, 152, 208, 9, 49, 99, 224, 220, 186, 137,\n\t\t218, 115, 161, 125, 17, 16, 245, 238, 191, 16, 13, 145, 139,\n\t\t218, 254, 135, 36, 33, 97, 233, 133, 131, 45, 162, 235, 164,\n\t\t117, 112, 157, 126, 106, 58, 178, 61, 172, 219, 9, 75, 190,\n\t\t126, 223, 134, 84, 111, 80, 34, 247, 42, 2, 148, 209, 175,\n\t\t139, 77, 91, 221, 147, 96, 203, 174, 145, 138, 125, 32, 84,\n\t\t194, 244, 109, 132, 22, 82, 66, 210, 175, 164, 221, 190, 200,\n\t\t175, 103, 43, 172, 83, 140, 21, 227, 235, 148, 138, 177, 226,\n\t\t107, 121, 213, 15, 254, 175, 234, 165, 54, 173, 243, 57, 245,\n\t\t82, 116, 168, 109, 86, 75, 231, 60, 154, 169, 223, 15, 42,\n\t\t184, 65, 255, 87, 4, 219, 228, 166, 253, 11, 179, 182, 247,\n\t\t129, 55, 171, 160, 193, 229, 10, 67, 165, 83, 71, 112, 51,\n\t\t102, 188, 114, 37, 251, 152, 95, 223, 180, 122, 77, 69, 197,\n\t\t108, 148, 169, 138, 17, 215, 82, 57, 246, 213, 239, 15, 213,\n\t\t43, 140, 215, 224, 70, 118, 69, 142, 128, 46, 182, 151, 97,\n\t\t43, 81, 97, 11, 46, 152, 14, 123, 28, 248, 96, 82, 54, 126,\n\t\t52, 224, 164, 204, 92, 151, 19, 101, 31, 102, 34, 1, 24, 149,\n\t\t76, 62, 40, 0, 23, 12, 129, 19, 204, 7, 247, 132, 72, 249,\n\t\t51, 241, 107, 108, 123, 194, 7, 33, 95, 134, 160, 186, 181,\n\t\t92, 124, 57, 158, 171, 47, 175, 176, 76, 48, 103, 232, 253,\n\t\t103, 64, 234, 96, 203, 157, 162, 0, 15, 8, 142, 187, 124,\n\t\t223, 75, 252, 7, 57, 2, 81, 225, 12, 130, 124, 228, 241, 122,\n\t\t189, 238, 231, 46, 2, 94, 66, 167, 253, 93, 246, 251, 27,\n\t\t2, 108, 88, 64, 14, 196, 138, 38, 0, 160, 8, 170, 204, 52,\n\t\t248, 137, 90, 51, 233, 85, 90, 108, 89, 131, 36, 102, 206,\n\t\t63, 222, 112, 232, 78, 217, 146, 239, 252, 149, 215, 18, 235,\n\t\t97, 73, 193, 146, 209, 157, 140, 22, 51, 107, 153, 34, 154,\n\t\t193, 42, 145, 53, 249, 109, 104, 237, 208, 252, 226, 155,\n\t\t49, 126, 243, 226, 252, 175, 212, 147, 233, 31, 237, 20, 64,\n\t\t116, 253, 159, 106, 236, 17, 103, 180, 242, 179, 206, 39,\n\t\t42, 163, 159, 16, 68, 5, 255, 79, 108, 104, 194, 2, 42, 4,\n\t\t253, 29, 212, 203, 165, 227, 96, 2, 48, 66, 194, 53, 235,\n\t\t233, 81, 94, 122, 13, 111, 45, 165, 211, 165, 244, 127, 123,\n\t\t73, 245, 124, 69, 26, 110, 190, 224, 37, 213, 86, 96, 249,\n\t\t3, 185, 46, 181, 192, 243, 106, 194, 220, 135, 56, 189, 8,\n\t\t247, 230, 169, 249, 8, 84, 60, 94, 227, 21, 135, 87, 14, 151,\n\t\t238, 156, 49, 108, 36, 183, 209, 219, 155, 217, 15, 174, 92,\n\t\t237, 94, 102, 232, 158, 174, 223, 168, 23, 141, 74, 34, 251,\n\t\t62, 184, 161, 45, 35, 219, 152, 185, 19, 237, 109, 30, 134,\n\t\t59, 226, 151, 233, 112, 199, 13, 134, 49, 146, 200, 242, 216,\n\t\t194, 53, 65, 244, 199, 35, 67, 237, 119, 33, 169, 8, 99, 141,\n\t\t43, 16, 147, 81, 165, 172, 121, 3, 247, 44, 170, 155, 106,\n\t\t34, 207, 236, 156, 185, 29, 171, 218, 237, 49, 13, 93, 162,\n\t\t169, 248, 246, 153, 157, 251, 180, 216, 31, 189, 227, 250,\n\t\t235, 223, 113, 61, 50, 101, 153, 204, 167, 232, 12, 77, 205,\n\t\t19, 89, 174, 170, 200, 192, 51, 51, 216, 64, 42, 218, 161,\n\t\t77, 252, 134, 226, 216, 182, 163, 252, 198, 132, 118, 151,\n\t\t189, 122, 61, 60, 208, 146, 77, 164, 204, 16, 50, 163, 208,\n\t\t39, 43, 243, 84, 230, 72, 167, 169, 240, 52, 31, 25, 180,\n\t\t243, 50, 116, 234, 245, 28, 69, 114, 19, 166, 225, 99, 27,\n\t\t153, 3, 119, 147, 152, 93, 160, 17, 141, 141, 49, 187, 189,\n\t\t41, 135, 67, 158, 11, 3, 229, 9, 255, 109, 151, 87, 233, 171,\n\t\t33, 204, 86, 40, 157, 97, 190, 11, 111, 238, 157, 7, 22, 111,\n\t\t128, 15, 170, 198, 176, 192, 227, 111, 99, 207, 21, 10, 167,\n\t\t6, 10, 170, 153, 190, 159, 212, 215, 89, 46, 208, 241, 77,\n\t\t48, 107, 221, 162, 219, 226, 65, 34, 100, 29, 195, 140, 152,\n\t\t176, 216, 229, 233, 26, 156, 225, 179, 145, 97, 164, 28, 213,\n\t\t245, 163, 148, 209, 147, 247, 3, 3, 74, 55, 33, 60, 218, 151,\n\t\t117, 191, 138, 182, 25, 202, 17, 195, 56, 162, 124, 47, 204,\n\t\t160, 114, 191, 111, 62, 38, 38, 192, 151, 161, 204, 194, 157,\n\t\t242, 136, 4, 52, 41, 206, 12, 113, 126, 50, 143, 246, 116,\n\t\t47, 127, 66, 3, 253, 236, 218, 199, 255, 68, 53, 84, 226,\n\t\t200, 44, 83, 181, 189, 167, 21, 151, 41, 165, 60, 67, 9, 165,\n\t\t28, 111, 237, 225, 168, 17, 167, 175, 121, 55, 145, 148, 17,\n\t\t158, 101, 116, 251, 43, 19, 217, 2, 49, 12, 82, 200, 38, 94,\n\t\t185, 221, 15, 153, 9, 197, 108, 68, 193, 91, 108, 32, 67,\n\t\t5, 228, 83, 12, 129, 161, 14, 40, 22, 184, 247, 99, 171, 201,\n\t\t64, 225, 152, 56, 14, 193, 115, 133, 108, 101, 97, 116, 181,\n\t\t167, 64, 168, 100, 87, 65, 71, 208, 139, 69, 44, 84, 178,\n\t\t157, 209, 133, 66, 31, 82, 171, 0, 217, 92, 214, 197, 23,\n\t\t3, 110, 62, 88, 207, 0, 11, 121, 63, 96, 175, 181, 193, 67,\n\t\t59, 233, 85, 61, 202, 22, 54, 44, 84, 163, 76, 21, 196, 116,\n\t\t183, 218, 13, 236, 174, 15, 231, 8, 128, 207, 168, 176, 211,\n\t\t3, 164, 162, 34, 123, 245, 129, 126, 108, 49, 137, 66, 104,\n\t\t113, 222, 15, 40, 142, 65, 136, 241, 77, 44, 132, 159, 9,\n\t\t116, 168, 31, 149, 184, 141, 197, 22, 63, 5, 225, 199, 200,\n\t\t238, 133, 22, 147, 241, 124, 126, 252, 6, 63, 162, 248, 186,\n\t\t161, 177, 89, 132, 56, 78, 1, 125, 150, 138, 151, 93, 63,\n\t\t193, 225, 50, 139, 44, 126, 107, 98, 118, 44, 232, 99, 130,\n\t\t254, 132, 206, 165, 188, 159, 199, 23, 168, 12, 143, 189,\n\t\t98, 134, 126, 0, 208, 64, 45, 38, 160, 31, 187, 248, 154,\n\t\t162, 28, 253, 168, 124, 146, 141, 87, 58, 174, 79, 202, 219,\n\t\t100, 52, 91, 62, 153, 28, 249, 250, 213, 31, 44, 94, 115,\n\t\t113, 148, 158, 159, 132, 17, 15, 131, 249, 164, 252, 209,\n\t\t40, 146, 106, 249, 139, 71, 63, 121, 117, 63, 150, 0, 104,\n\t\t91, 14, 108, 203, 160, 1, 160, 180, 77, 94, 247, 50, 119,\n\t\t81, 234, 251, 45, 62, 244, 248, 202, 132, 148, 50, 187, 63,\n\t\t140, 62, 166, 233, 44, 13, 130, 252, 88, 244, 164, 64, 20,\n\t\t77, 71, 183, 91, 214, 150, 149, 45, 214, 168, 133, 154, 19,\n\t\t43, 143, 91, 105, 249, 100, 244, 49, 153, 41, 32, 116, 237,\n\t\t177, 40, 74, 201, 58, 93, 131, 119, 211, 235, 112, 151, 197,\n\t\t226, 151, 2, 218, 26, 99, 136, 0, 45, 150, 157, 213, 15, 125,\n\t\t35, 126, 118, 115, 14, 24, 194, 194, 224, 106, 30, 98, 206,\n\t\t83, 61, 231, 192, 30, 248, 199, 173, 215, 170, 234, 149, 106,\n\t\t86, 45, 45, 98, 76, 185, 75, 97, 113, 178, 59, 125, 199, 52,\n\t\t125, 213, 148, 245, 149, 59, 186, 127, 118, 179, 110, 11,\n\t\t46, 250, 27, 126, 207, 181, 111, 153, 92, 100, 144, 23, 139,\n\t\t127, 114, 45, 61, 189, 82, 165, 79, 201, 244, 41, 250, 80,\n\t\t12, 30, 162, 207, 140, 230, 233, 67, 174, 96, 235, 55, 27,\n\t\t252, 142, 87, 189, 121, 114, 145, 33, 94, 44, 246, 251, 109,\n\t\t5, 125, 137, 206, 131, 233, 141, 212, 128, 225, 188, 178,\n\t\t128, 49, 161, 230, 239, 147, 12, 10, 176, 86, 169, 214, 194,\n\t\t80, 234, 67, 166, 169, 212, 20, 49, 119, 93, 221, 84, 118,\n\t\t169, 226, 181, 87, 79, 228, 134, 204, 209, 234, 68, 247, 140,\n\t\t165, 247, 105, 194, 191, 232, 230, 171, 84, 149, 50, 205,\n\t\t202, 158, 220, 111, 41, 186, 232, 136, 234, 90, 86, 31, 202,\n\t\t207, 234, 186, 113, 33, 184, 218, 176, 53, 106, 77, 120, 8,\n\t\t189, 159, 214, 103, 118, 147, 250, 240, 16, 23, 88, 158, 106,\n\t\t61, 135, 34, 22, 89, 78, 0, 171, 25, 130, 71, 67, 149, 218,\n\t\t117, 84, 22, 149, 81, 73, 145, 14, 222, 240, 94, 44, 41, 187,\n\t\t36, 9, 75, 127, 113, 205, 196, 196, 116, 42, 237, 77, 118,\n\t\t191, 111, 217, 15, 68, 251, 117, 187, 249, 4, 142, 73, 113,\n\t\t65, 24, 153, 191, 154, 196, 164, 162, 32, 30, 159, 75, 138,\n\t\t226, 108, 109, 36, 249, 46, 194, 251, 233, 207, 209, 91, 208,\n\t\t42, 195, 87, 130, 124, 91, 60, 198, 151, 175, 151, 181, 242,\n\t\t58, 48, 46, 150, 62, 132, 129, 54, 146, 74, 130, 135, 26,\n\t\t162, 169, 11, 153, 247, 228, 133, 23, 50, 175, 200, 11, 87,\n\t\t2, 196, 249, 71, 71, 23, 234, 35, 23, 243, 210, 238, 87, 121,\n\t\t140, 169, 127, 143, 255, 196, 10, 211, 22, 160, 8, 81, 23,\n\t\t70, 71, 90, 242, 197, 188, 248, 25, 136, 115, 25, 228, 69,\n\t\t179, 44, 175, 234, 161, 158, 141, 39, 136, 165, 41, 5, 49,\n\t\t52, 160, 251, 239, 9, 85, 129, 2, 188, 23, 254, 52, 88, 204,\n\t\t93, 143, 118, 181, 233, 172, 158, 190, 118, 154, 110, 219,\n\t\t187, 62, 177, 49, 107, 242, 22, 6, 203, 241, 53, 178, 174,\n\t\t152, 242, 179, 96, 226, 217, 125, 71, 241, 227, 80, 247, 175,\n\t\t186, 238, 87, 97, 255, 241, 226, 29, 187, 175, 63, 176, 46,\n\t\t157, 242, 55, 152, 86, 255, 81, 113, 64, 213, 175, 98, 95,\n\t\t198, 12, 214, 99, 136, 102, 158, 222, 40, 61, 97, 182, 94,\n\t\t130, 239, 70, 162, 23, 6, 200, 81, 47, 202, 116, 53, 157,\n\t\t27, 16, 163, 254, 198, 119, 34, 224, 81, 127, 127, 132, 93,\n\t\t89, 158, 218, 111, 219, 237, 1, 15, 146, 239, 247, 92, 4,\n\t\t222, 197, 206, 63, 204, 146, 61, 23, 6, 176, 89, 135, 88,\n\t\t108, 25, 104, 29, 182, 244, 145, 211, 217, 138, 93, 230, 219,\n\t\t30, 220, 131, 39, 55, 154, 229, 32, 106, 25, 188, 112, 130,\n\t\t206, 174, 53, 106, 101, 225, 110, 157, 46, 14, 11, 75, 11,\n\t\t144, 212, 155, 69, 32, 163, 223, 77, 90, 221, 227, 203, 203,\n\t\t71, 88, 175, 62, 187, 252, 143, 108, 95, 127, 199, 210, 238,\n\t\t31, 155, 206, 237, 166, 11, 241, 84, 240, 7, 136, 129, 166,\n\t\t235, 188, 125, 185, 251, 52, 131, 51, 249, 206, 242, 242,\n\t\t243, 254, 1, 196, 36, 255, 27, 195, 18, 56, 13, 145, 160,\n\t\t129, 134, 185, 12, 169, 5, 89, 16, 50, 11, 70, 174, 242, 52,\n\t\t81, 152, 163, 175, 180, 242, 66, 20, 129, 208, 158, 71, 113,\n\t\t8, 123, 107, 204, 181, 23, 5, 225, 118, 162, 81, 134, 210,\n\t\t26, 43, 141, 106, 123, 202, 19, 94, 90, 62, 250, 102, 205,\n\t\t116, 109, 249, 106, 146, 182, 182, 98, 83, 140, 41, 102, 59,\n\t\t183, 181, 234, 154, 227, 135, 15, 37, 220, 132, 132, 68, 65,\n\t\t215, 147, 45, 109, 223, 14, 4, 236, 189, 68, 100, 228, 196,\n\t\t83, 82, 62, 157, 91, 216, 241, 22, 53, 111, 253, 204, 74,\n\t\t40, 53, 73, 196, 89, 83, 173, 56, 114, 185, 49, 116, 195,\n\t\t129, 22, 93, 69, 138, 142, 18, 243, 244, 148, 92, 203, 172,\n\t\t147, 171, 32, 134, 113, 203, 128, 95, 197, 128, 148, 138,\n\t\t189, 190, 93, 139, 27, 117, 54, 170, 72, 78, 109, 16, 80,\n\t\t221, 242, 191, 177, 4, 223, 101, 186, 157, 122, 91, 3, 202,\n\t\t55, 209, 142, 236, 95, 39, 157, 142, 189, 27, 146, 125, 143,\n\t\t211, 77, 235, 67, 180, 108, 80, 25, 162, 68, 130, 188, 170,\n\t\t241, 200, 104, 100, 146, 242, 19, 243, 145, 5, 42, 113, 119,\n\t\t6, 177, 75, 184, 194, 191, 217, 72, 184, 49, 230, 108, 204,\n\t\t114, 24, 184, 139, 2, 48, 28, 50, 105, 212, 196, 118, 153,\n\t\t236, 68, 101, 226, 209, 145, 209, 166, 27, 17, 242, 190, 61,\n\t\t237, 47, 203, 148, 136, 213, 87, 190, 209, 86, 163, 234, 11,\n\t\t95, 178, 220, 54, 82, 45, 5, 125, 203, 136, 117, 63, 167,\n\t\t189, 77, 251, 178, 126, 147, 251, 128, 182, 236, 60, 248,\n\t\t33, 253, 177, 79, 105, 215, 59, 251, 239, 116, 111, 10, 64,\n\t\t3, 232, 71, 40, 20, 208, 7, 187, 159, 19, 232, 4, 118, 77,\n\t\t17, 237, 86, 12, 18, 157, 93, 94, 62, 27, 57, 117, 106, 117,\n\t\t121, 121, 245, 212, 163, 236, 152, 199, 80, 3, 238, 249, 46,\n\t\t244, 91, 116, 181, 158, 132, 145, 3, 25, 159, 160, 135, 167,\n\t\t197, 230, 60, 75, 205, 156, 244, 90, 237, 69, 81, 6, 229,\n\t\t54, 3, 245, 0, 239, 10, 97, 65, 193, 209, 218, 208, 137, 31,\n\t\t158, 24, 170, 69, 177, 98, 215, 118, 238, 205, 77, 120, 222,\n\t\t68, 110, 239, 206, 90, 247, 23, 110, 38, 83, 204, 236, 87,\n\t\t148, 3, 233, 82, 38, 141, 34, 74, 180, 178, 109, 103, 250,\n\t\t162, 139, 210, 59, 183, 85, 162, 138, 28, 29, 201, 214, 22,\n\t\t22, 106, 217, 145, 168, 124, 251, 144, 151, 118, 111, 223,\n\t\t65, 200, 142, 219, 221, 76, 146, 142, 225, 127, 61, 251, 103,\n\t\t148, 71, 252, 29, 200, 73, 193, 52, 248, 216, 135, 48, 130,\n\t\t65, 203, 253, 41, 91, 220, 205, 134, 185, 81, 162, 239, 86,\n\t\t112, 105, 49, 39, 200, 226, 193, 124, 43, 93, 216, 95, 109,\n\t\t216, 57, 51, 86, 77, 140, 213, 14, 22, 19, 211, 233, 35, 170,\n\t\t77, 134, 255, 195, 216, 19, 27, 142, 230, 22, 75, 25, 111,\n\t\t212, 37, 81, 117, 126, 120, 75, 38, 53, 63, 180, 69, 196,\n\t\t66, 114, 38, 19, 45, 238, 200, 234, 156, 39, 235, 97, 212,\n\t\t21, 253, 44, 230, 187, 34, 23, 128, 14, 21, 34, 32, 24, 125,\n\t\t207, 35, 127, 76, 174, 203, 80, 218, 203, 50, 19, 232, 233,\n\t\t241, 185, 252, 149, 253, 253, 153, 21, 198, 50, 254, 15, 223,\n\t\t139, 110, 129, 219, 227, 22, 70, 135, 57, 4, 226, 123, 89,\n\t\t249, 35, 108, 123, 116, 147, 20, 47, 203, 176, 90, 112, 164,\n\t\t92, 115, 97, 148, 73, 229, 244, 71, 206, 70, 24, 32, 34, 114,\n\t\t216, 133, 70, 40, 233, 11, 255, 23, 100, 227, 9, 120, 224,\n\t\t175, 83, 169, 128, 74, 2, 94, 179, 152, 16, 55, 216, 40, 88,\n\t\t114, 93, 8, 27, 96, 232, 45, 132, 43, 212, 11, 104, 173, 3,\n\t\t149, 5, 254, 111, 97, 116, 143, 225, 120, 234, 222, 169, 161,\n\t\t9, 44, 71, 19, 142, 209, 233, 116, 80, 100, 97, 148, 35, 42,\n\t\t140, 46, 56, 6, 26, 157, 115, 19, 147, 91, 21, 121, 98, 168,\n\t\t144, 27, 31, 209, 12, 39, 136, 215, 31, 162, 253, 156, 99,\n\t\t57, 111, 224, 11, 67, 186, 63, 6, 36, 203, 200, 19, 172, 239,\n\t\t2, 157, 238, 66, 123, 70, 116, 134, 233, 151, 71, 47, 184,\n\t\t102, 244, 166, 180, 24, 183, 20, 114, 250, 52, 81, 172, 184,\n\t\t152, 190, 41, 106, 186, 239, 220, 165, 142, 170, 187, 210,\n\t\t199, 239, 76, 235, 141, 228, 117, 174, 132, 226, 66, 213,\n\t\t186, 254, 29, 209, 164, 180, 119, 175, 148, 140, 190, 227,\n\t\t122, 171, 42, 38, 222, 20, 139, 189, 233, 87, 47, 178, 37,\n\t\t239, 250, 238, 151, 141, 214, 157, 233, 193, 184, 31, 208,\n\t\t39, 108, 99, 184, 182, 235, 98, 183, 195, 176, 21, 129, 12,\n\t\t34, 159, 3, 213, 182, 22, 140, 14, 22, 81, 194, 19, 202, 217,\n\t\t33, 16, 47, 166, 203, 64, 118, 24, 201, 246, 233, 58, 87,\n\t\t142, 160, 2, 75, 73, 21, 134, 248, 98, 5, 223, 13, 161, 215,\n\t\t62, 191, 196, 1, 191, 150, 206, 151, 19, 45, 240, 69, 95,\n\t\t159, 213, 40, 236, 131, 190, 135, 217, 229, 79, 111, 244,\n\t\t60, 127, 158, 173, 195, 15, 247, 226, 115, 121, 190, 246,\n\t\t179, 180, 127, 12, 42, 191, 142, 250, 116, 173, 159, 127,\n\t\t102, 17, 237, 20, 128, 125, 157, 111, 53, 29, 96, 168, 107,\n\t\t14, 91, 252, 28, 127, 138, 132, 96, 60, 152, 255, 41, 250,\n\t\t107, 38, 110, 124, 7, 201, 232, 211, 59, 85, 245, 59, 232,\n\t\t48, 101, 72, 159, 216, 114, 140, 142, 163, 21, 37, 170, 222,\n\t\t196, 188, 11, 22, 232, 232, 225, 16, 196, 72, 68, 159, 121,\n\t\t55, 189, 227, 79, 17, 22, 144, 114, 88, 211, 166, 186, 96,\n\t\t244, 24, 5, 92, 99, 213, 234, 94, 197, 156, 7, 126, 151, 222,\n\t\t205, 146, 54, 4, 57, 35, 110, 160, 189, 113, 113, 228, 229,\n\t\t144, 161, 160, 214, 230, 114, 108, 62, 160, 27, 64, 173, 232,\n\t\t114, 65, 63, 24, 221, 247, 51, 31, 7, 64, 141, 33, 107, 103,\n\t\t155, 91, 238, 214, 239, 27, 65, 138, 212, 207, 19, 117, 175,\n\t\t110, 47, 141, 206, 94, 235, 38, 149, 146, 123, 45, 193, 177,\n\t\t59, 178, 158, 86, 215, 210, 67, 246, 80, 90, 171, 163, 39,\n\t\t217, 55, 220, 90, 173, 190, 154, 253, 219, 202, 191, 105,\n\t\t197, 141, 58, 182, 19, 117, 15, 173, 219, 87, 186, 179, 108,\n\t\t190, 63, 68, 228, 171, 109, 125, 203, 144, 150, 148, 74, 213,\n\t\t164, 148, 68, 146, 185, 36, 36, 84, 213, 243, 212, 2, 27,\n\t\t66, 5, 246, 31, 59, 140, 89, 144, 176, 128, 255, 45, 179,\n\t\t249, 238, 99, 146, 1, 127, 50, 15, 190, 252, 149, 255, 149,\n\t\t22, 86, 74, 44, 168, 175, 53, 176, 110, 49, 214, 177, 177,\n\t\t105, 41, 48, 19, 205, 50, 103, 186, 255, 19, 237, 93, 73,\n\t\t105, 150, 205, 208, 185, 104, 83, 0, 123, 33, 116, 108, 91,\n\t\t90, 106, 237, 188, 237, 45, 168, 38, 254, 27, 24, 11, 252,\n\t\t53, 140, 99, 94, 30, 60, 255, 129, 108, 170, 203, 145, 72,\n\t\t40, 239, 66, 10, 116, 94, 3, 121, 23, 90, 12, 112, 69, 76,\n\t\t196, 73, 101, 190, 45, 3, 213, 25, 76, 160, 240, 25, 186,\n\t\t74, 76, 97, 187, 53, 89, 68, 221, 247, 187, 200, 153, 219,\n\t\t125, 193, 245, 3, 105, 18, 126, 117, 177, 147, 76, 206, 95,\n\t\t213, 186, 160, 138, 117, 103, 180, 250, 237, 169, 27, 54,\n\t\t232, 174, 231, 94, 154, 238, 58, 9, 92, 119, 158, 69, 97,\n\t\t129, 255, 217, 139, 41, 175, 63, 122, 252, 168, 140, 100,\n\t\t85, 26, 123, 96, 140, 232, 72, 126, 9, 94, 149, 43, 139, 83,\n\t\t88, 151, 5, 199, 17, 77, 109, 138, 225, 214, 252, 148, 206,\n\t\t237, 63, 70, 223, 224, 136, 165, 224, 68, 7, 235, 43, 183,\n\t\t243, 129, 101, 10, 206, 192, 202, 199, 12, 217, 12, 201, 11,\n\t\t42, 15, 225, 141, 45, 38, 111, 161, 207, 70, 43, 121, 172,\n\t\t152, 138, 224, 104, 196, 80, 133, 146, 148, 204, 209, 97,\n\t\t43, 218, 9, 71, 160, 165, 56, 79, 215, 247, 185, 82, 161,\n\t\t124, 45, 101, 20, 85, 115, 72, 67, 245, 177, 210, 28, 90,\n\t\t94, 156, 29, 221, 115, 98, 75, 73, 55, 177, 70, 222, 106,\n\t\t198, 98, 230, 91, 53, 211, 212, 75, 91, 78, 236, 25, 157,\n\t\t219, 81, 106, 40, 170, 219, 145, 68, 217, 82, 40, 25, 47,\n\t\t235, 74, 195, 143, 95, 124, 0, 125, 133, 197, 10, 15, 129,\n\t\t76, 232, 178, 188, 175, 30, 21, 239, 61, 112, 233, 3, 217,\n\t\t175, 77, 255, 32, 170, 130, 118, 157, 187, 126, 5, 163, 130,\n\t\t245, 93, 132, 50, 250, 111, 58, 80, 187, 32, 59, 92, 92, 158,\n\t\t48, 181, 233, 84, 182, 188, 117, 167, 96, 41, 215, 101, 21,\n\t\t105, 168, 15, 11, 247, 227, 11, 182, 239, 66, 109, 209, 198,\n\t\t11, 219, 68, 239, 202, 29, 250, 145, 171, 36, 231, 29, 47,\n\t\t251, 206, 228, 3, 7, 21, 85, 172, 156, 60, 148, 239, 62, 214,\n\t\t151, 23, 255, 48, 249, 204, 0, 190, 232, 12, 237, 201, 54,\n\t\t203, 246, 123, 25, 215, 39, 133, 84, 71, 32, 22, 244, 85,\n\t\t72, 33, 197, 122, 35, 80, 170, 39, 26, 116, 245, 109, 52,\n\t\t29, 74, 39, 139, 244, 207, 95, 109, 248, 226, 147, 96, 166,\n\t\t242, 6, 203, 223, 16, 129, 252, 225, 76, 173, 180, 230, 43,\n\t\t151, 6, 78, 151, 11, 221, 21, 202, 239, 173, 20, 124, 80,\n\t\t36, 190, 67, 157, 115, 220, 206, 79, 217, 36, 131, 231, 10,\n\t\t133, 229, 254, 67, 176, 11, 214, 105, 153, 173, 211, 35, 204,\n\t\t194, 7, 61, 219, 118, 129, 149, 173, 246, 114, 110, 19, 238,\n\t\t89, 217, 199, 143, 25, 74, 117, 151, 83, 67, 228, 2, 209,\n\t\t209, 183, 99, 134, 113, 134, 183, 43, 116, 148, 124, 137,\n\t\t45, 52, 66, 122, 108, 44, 141, 70, 12, 203, 182, 71, 23, 232,\n\t\t181, 168, 131, 13, 37, 211, 199, 133, 128, 119, 162, 10, 125,\n\t\t103, 30, 184, 63, 111, 32, 208, 9, 32, 34, 125, 207, 153,\n\t\t4, 104, 34, 18, 34, 101, 157, 191, 235, 120, 202, 179, 138,\n\t\t231, 140, 206, 119, 100, 155, 202, 44, 103, 176, 106, 203,\n\t\t157, 249, 59, 201, 51, 196, 199, 236, 185, 219, 184, 172,\n\t\t253, 140, 140, 37, 133, 60, 211, 190, 204, 184, 27, 173, 210,\n\t\t117, 84, 60, 251, 31, 244, 61, 111, 98, 223, 174, 205, 17,\n\t\t103, 122, 189, 29, 30, 65, 77, 198, 143, 176, 77, 31, 87,\n\t\t3, 110, 13, 116, 194, 110, 57, 209, 64, 175, 87, 13, 235,\n\t\t97, 174, 33, 101, 131, 233, 212, 195, 150, 161, 190, 98, 86,\n\t\t215, 200, 157, 152, 138, 102, 248, 78, 162, 233, 179, 151,\n\t\t114, 37, 217, 153, 51, 247, 107, 137, 66, 63, 5, 71, 33, 161,\n\t\t189, 210, 85, 223, 168, 131, 26, 42, 174, 235, 111, 84, 221,\n\t\t53, 166, 78, 235, 190, 174, 192, 250, 227, 63, 206, 126, 1,\n\t\t125, 133, 225, 33, 54, 121, 158, 52, 158, 238, 27, 196, 185,\n\t\t146, 143, 52, 85, 13, 128, 246, 40, 139, 222, 170, 193, 197,\n\t\t160, 168, 49, 12, 66, 29, 186, 170, 150, 78, 42, 68, 49, 70,\n\t\t38, 118, 217, 12, 46, 203, 222, 53, 49, 98, 208, 146, 100,\n\t\t186, 150, 26, 31, 73, 167, 71, 198, 135, 45, 207, 118, 163,\n\t\t130, 32, 185, 236, 0, 201, 24, 237, 36, 229, 225, 153, 137,\n\t\t137, 3, 245, 173, 154, 162, 104, 91, 235, 7, 38, 38, 102,\n\t\t134, 203, 68, 210, 193, 150, 175, 87, 76, 44, 35, 43, 54,\n\t\t226, 194, 62, 234, 218, 94, 68, 61, 251, 143, 180, 79, 191,\n\t\t67, 235, 10, 177, 43, 163, 180, 103, 91, 12, 47, 241, 82,\n\t\t240, 77, 172, 36, 33, 228, 145, 46, 68, 180, 106, 16, 100,\n\t\t73, 169, 29, 173, 176, 156, 132, 112, 139, 26, 166, 117, 5,\n\t\t16, 15, 130, 233, 180, 46, 17, 104, 135, 48, 71, 175, 96,\n\t\t2, 145, 157, 208, 34, 104, 155, 199, 218, 70, 146, 181, 22,\n\t\t8, 248, 28, 107, 43, 96, 178, 209, 123, 219, 249, 161, 203,\n\t\t70, 238, 27, 185, 108, 40, 223, 238, 31, 118, 111, 38, 21,\n\t\t73, 164, 146, 233, 164, 8, 113, 99, 195, 132, 36, 245, 199,\n\t\t11, 49, 59, 22, 179, 231, 248, 110, 89, 20, 135, 138, 197,\n\t\t33, 182, 93, 161, 87, 117, 81, 170, 40, 73, 66, 134, 33, 149,\n\t\t43, 125, 244, 93, 28, 31, 232, 112, 115, 94, 187, 244, 82,\n\t\t109, 30, 144, 55, 252, 163, 223, 51, 80, 60, 174, 106, 229,\n\t\t199, 226, 113, 221, 44, 107, 111, 174, 96, 66, 112, 247, 131,\n\t\t108, 119, 79, 185, 156, 176, 237, 4, 219, 142, 210, 139, 106,\n\t\t60, 142, 126, 189, 108, 234, 244, 129, 254, 88, 71, 61, 204,\n\t\t158, 99, 128, 41, 233, 251, 102, 48, 152, 188, 121, 42, 228,\n\t\t22, 75, 22, 195, 232, 240, 211, 198, 183, 230, 121, 50, 57,\n\t\t54, 237, 188, 120, 94, 162, 178, 227, 162, 220, 92, 12, 18,\n\t\t131, 8, 151, 17, 226, 38, 39, 243, 169, 154, 130, 5, 76, 52,\n\t\t210, 253, 137, 172, 96, 89, 130, 118, 43, 181, 84, 126, 50,\n\t\t233, 242, 27, 236, 161, 132, 204, 239, 64, 49, 25, 66, 148,\n\t\t16, 230, 215, 255, 88, 180, 69, 109, 36, 161, 228, 39, 115,\n\t\t30, 114, 32, 184, 78, 16, 137, 164, 201, 134, 224, 229, 38,\n\t\t243, 74, 98, 68, 235, 221, 96, 122, 81, 255, 14, 44, 25, 146,\n\t\t141, 252, 27, 2, 188, 26, 196, 240, 95, 83, 160, 225, 143,\n\t\t248, 178, 15, 225, 249, 240, 170, 126, 35, 188, 100, 101,\n\t\t142, 55, 151, 176, 92, 227, 144, 82, 170, 133, 120, 106, 222,\n\t\t69, 108, 146, 253, 247, 233, 209, 152, 241, 32, 218, 174,\n\t\t88, 74, 84, 191, 111, 159, 172, 97, 188, 23, 61, 200, 114,\n\t\t250, 254, 179, 164, 252, 140, 40, 82, 25, 163, 168, 254, 215,\n\t\t134, 141, 20, 133, 24, 202, 95, 235, 81, 68, 74, 16, 181,\n\t\t247, 51, 69, 26, 11, 225, 136, 206, 69, 110, 232, 249, 28,\n\t\t114, 17, 198, 199, 225, 166, 221, 204, 67, 130, 193, 200,\n\t\t48, 207, 96, 115, 216, 166, 81, 159, 155, 93, 20, 152, 29,\n\t\t130, 221, 86, 243, 191, 1, 29, 109, 76, 32, 226, 102, 60,\n\t\t250, 21, 68, 143, 222, 201, 40, 2, 163, 131, 201, 103, 179,\n\t\t149, 84, 12, 99, 41, 225, 140, 231, 189, 42, 33, 114, 126,\n\t\t28, 37, 179, 163, 74, 214, 19, 42, 89, 65, 114, 50, 232, 254,\n\t\t108, 18, 141, 231, 101, 66, 170, 94, 126, 220, 73, 72, 24,\n\t\t27, 174, 94, 201, 170, 142, 165, 171, 130, 144, 173, 8, 94,\n\t\t86, 25, 69, 107, 149, 236, 33, 55, 79, 187, 214, 150, 232,\n\t\t74, 111, 253, 67, 126, 156, 61, 70, 136, 58, 154, 158, 246,\n\t\t156, 88, 122, 84, 37, 36, 91, 177, 18, 102, 247, 89, 118,\n\t\t204, 222, 51, 158, 255, 7, 139, 222, 46, 217, 116, 249, 143,\n\t\t122, 230, 161, 108, 69, 86, 140, 168, 82, 201, 178, 231, 98,\n\t\t142, 7, 235, 41, 29, 116, 103, 208, 10, 253, 46, 205, 200,\n\t\t193, 200, 21, 76, 186, 6, 220, 157, 158, 156, 83, 236, 29,\n\t\t177, 65, 183, 83, 88, 20, 129, 218, 14, 163, 10, 41, 210,\n\t\t47, 7, 102, 6, 178, 85, 240, 147, 174, 65, 184, 111, 178,\n\t\t232, 135, 254, 210, 30, 200, 139, 91, 17, 250, 100, 204, 227,\n\t\t36, 230, 108, 132, 83, 26, 47, 102, 196, 113, 34, 91, 112,\n\t\t86, 74, 91, 140, 120, 247, 207, 227, 40, 18, 151, 211, 214,\n\t\t138, 149, 222, 34, 152, 88, 199, 68, 44, 89, 44, 15, 23, 186,\n\t\t16, 56, 60, 213, 179, 33, 68, 19, 155, 255, 72, 138, 241,\n\t\t122, 42, 214, 234, 67, 244, 181, 98, 169, 122, 188, 72, 114,\n\t\t115, 209, 108, 76, 171, 22, 230, 50, 115, 115, 166, 227, 124,\n\t\t4, 9, 34, 150, 162, 69, 218, 90, 66, 127, 32, 23, 179, 61,\n\t\t85, 194, 162, 128, 152, 92, 192, 49, 217, 64, 198, 59, 188,\n\t\t1, 9, 43, 12, 222, 220, 59, 10, 75, 120, 21, 56, 238, 129,\n\t\t230, 243, 132, 10, 126, 102, 135, 57, 116, 134, 167, 151,\n\t\t96, 213, 227, 9, 12, 216, 246, 108, 196, 119, 132, 139, 40,\n\t\t12, 172, 79, 241, 119, 168, 19, 134, 182, 226, 208, 85, 124,\n\t\t251, 96, 128, 104, 213, 187, 87, 25, 141, 200, 103, 187, 103,\n\t\t63, 35, 188, 9, 125, 137, 74, 231, 215, 69, 238, 141, 60,\n\t\t24, 121, 15, 149, 107, 40, 29, 36, 190, 6, 132, 193, 37, 247,\n\t\t20, 33, 144, 168, 145, 233, 67, 64, 87, 34, 88, 72, 230, 76,\n\t\t29, 38, 152, 223, 89, 99, 120, 174, 85, 8, 248, 103, 27, 8,\n\t\t209, 21, 90, 1, 66, 171, 31, 139, 202, 244, 251, 149, 42,\n\t\t232, 125, 40, 133, 201, 139, 0, 69, 88, 149, 97, 125, 153,\n\t\t97, 193, 153, 32, 165, 87, 233, 172, 192, 121, 201, 75, 194,\n\t\t197, 183, 27, 178, 80, 150, 117, 33, 42, 104, 23, 98, 81,\n\t\t222, 165, 146, 57, 137, 224, 163, 26, 34, 200, 144, 38, 48,\n\t\t217, 65, 175, 233, 178, 88, 208, 83, 21, 244, 67, 83, 162,\n\t\t228, 194, 18, 36, 51, 62, 108, 82, 182, 240, 23, 138, 232,\n\t\t153, 195, 9, 74, 42, 44, 65, 144, 101, 67, 25, 82, 181, 88,\n\t\t65, 198, 70, 148, 40, 81, 199, 177, 95, 239, 88, 9, 203, 20,\n\t\t137, 104, 19, 210, 125, 3, 49, 53, 133, 174, 77, 148, 139,\n\t\t48, 40, 221, 34, 50, 18, 83, 40, 129, 145, 168, 38, 95, 143,\n\t\t137, 234, 225, 194, 135, 110, 201, 141, 73, 72, 80, 68, 67,\n\t\t54, 5, 184, 27, 73, 255, 125, 218, 118, 135, 54, 212, 103,\n\t\t176, 174, 11, 68, 156, 176, 200, 200, 123, 103, 28, 67, 18,\n\t\t231, 137, 108, 203, 138, 228, 153, 249, 61, 80, 69, 5, 39,\n\t\t48, 153, 151, 229, 152, 51, 157, 55, 36, 148, 154, 32, 216,\n\t\t32, 148, 65, 69, 72, 46, 74, 170, 149, 72, 100, 154, 121,\n\t\t35, 230, 94, 11, 160, 137, 84, 194, 215, 69, 36, 210, 37,\n\t\t131, 206, 64, 107, 44, 221, 34, 36, 33, 23, 5, 93, 153, 152,\n\t\t62, 166, 164, 44, 58, 209, 233, 250, 35, 34, 118, 107, 144,\n\t\t215, 206, 151, 215, 70, 124, 173, 225, 246, 144, 6, 98, 80,\n\t\t157, 204, 102, 34, 226, 124, 207, 48, 146, 250, 162, 53, 217,\n\t\t134, 106, 61, 5, 51, 36, 34, 167, 163, 201, 215, 40, 211,\n\t\t161, 149, 77, 212, 73, 209, 125, 206, 28, 82, 110, 237, 222,\n\t\t199, 116, 201, 247, 28, 173, 254, 230, 111, 31, 189, 226,\n\t\t227, 236, 4, 244, 52, 75, 148, 52, 248, 90, 101, 202, 180,\n\t\t80, 65, 228, 222, 88, 210, 210, 30, 12, 212, 201, 203, 129,\n\t\t138, 185, 143, 41, 1, 54, 211, 139, 128, 162, 110, 176, 29,\n\t\t251, 203, 16, 208, 146, 243, 100, 61, 165, 220, 59, 79, 123,\n\t\t26, 194, 255, 228, 210, 101, 66, 6, 92, 164, 118, 203, 143,\n\t\t233, 77, 110, 3, 31, 128, 198, 92, 59, 156, 19, 85, 0, 5,\n\t\t201, 112, 122, 174, 52, 84, 99, 121, 81, 43, 217, 213, 108,\n\t\t69, 25, 153, 143, 155, 84, 38, 27, 166, 226, 31, 229, 156,\n\t\t0, 1, 165, 251, 55, 18, 33, 91, 13, 250, 11, 123, 117, 68,\n\t\t23, 8, 121, 27, 152, 220, 136, 24, 78, 109, 78, 119, 153,\n\t\t113, 229, 158, 226, 180, 40, 78, 231, 211, 44, 107, 42, 24,\n\t\t67, 215, 230, 71, 114, 166, 35, 8, 142, 254, 26, 101, 60,\n\t\t83, 240, 189, 89, 248, 84, 93, 150, 245, 134, 172, 168, 55,\n\t\t203, 228, 132, 172, 200, 61, 172, 143, 53, 134, 143, 59, 136,\n\t\t245, 1, 186, 234, 0, 179, 168, 159, 168, 13, 176, 140, 218,\n\t\t0, 246, 113, 70, 203, 104, 103, 248, 238, 245, 24, 95, 34,\n\t\t106, 167, 76, 87, 41, 40, 203, 154, 248, 103, 253, 43, 116,\n\t\t247, 99, 140, 47, 20, 37, 185, 229, 154, 75, 138, 210, 105,\n\t\t201, 146, 24, 9, 231, 189, 174, 245, 50, 173, 95, 30, 89,\n\t\t102, 82, 63, 91, 176, 202, 254, 186, 214, 228, 92, 58, 203,\n\t\t216, 10, 87, 234, 101, 146, 164, 236, 235, 156, 156, 244,\n\t\t26, 181, 210, 44, 247, 222, 110, 151, 233, 148, 246, 85, 71,\n\t\t129, 171, 195, 136, 207, 220, 10, 126, 121, 15, 197, 156,\n\t\t57, 19, 87, 98, 223, 138, 209, 109, 161, 208, 59, 172, 100,\n\t\t81, 77, 81, 106, 168, 123, 38, 170, 60, 91, 69, 172, 160,\n\t\t250, 172, 18, 125, 154, 113, 178, 175, 229, 252, 236, 26,\n\t\t227, 127, 11, 236, 4, 117, 56, 51, 12, 32, 35, 133, 240, 47,\n\t\t182, 42, 187, 162, 133, 232, 46, 85, 137, 50, 44, 218, 168,\n\t\t114, 53, 187, 241, 161, 208, 179, 3, 63, 52, 232, 247, 4,\n\t\t254, 235, 144, 165, 102, 31, 237, 139, 62, 30, 47, 179, 215,\n\t\t181, 171, 61, 188, 19, 166, 7, 144, 215, 115, 250, 220, 207,\n\t\t161, 237, 58, 69, 31, 196, 93, 164, 71, 145, 179, 91, 13,\n\t\t99, 43, 67, 231, 25, 25, 1, 172, 158, 75, 130, 3, 157, 95,\n\t\t160, 36, 86, 173, 102, 186, 145, 76, 85, 37, 255, 20, 55,\n\t\t119, 88, 49, 244, 165, 110, 36, 23, 71, 171, 241, 92, 167,\n\t\t187, 242, 233, 109, 186, 190, 13, 238, 102, 79, 49, 255, 25,\n\t\t126, 160, 243, 11, 239, 161, 99, 22, 92, 55, 232, 176, 214,\n\t\t19, 78, 20, 157, 234, 62, 205, 148, 135, 221, 191, 68, 145,\n\t\t179, 44, 142, 224, 236, 217, 179, 159, 99, 182, 101, 139,\n\t\t182, 13, 176, 109, 130, 209, 197, 70, 91, 141, 15, 58, 62,\n\t\t230, 60, 176, 51, 123, 235, 11, 12, 195, 248, 145, 108, 200,\n\t\t63, 162, 59, 93, 143, 156, 101, 59, 122, 178, 237, 253, 70,\n\t\t202, 248, 192, 214, 224, 116, 235, 7, 224, 20, 77, 226, 28,\n\t\t190, 73, 16, 110, 130, 29, 165, 124, 120, 72, 166, 187, 155,\n\t\t228, 33, 156, 185, 64, 150, 47, 120, 15, 47, 134, 171, 236,\n\t\t124, 0, 207, 171, 200, 60, 227, 3, 127, 179, 254, 130, 186,\n\t\t65, 171, 42, 135, 210, 56, 179, 188, 178, 148, 127, 104, 50,\n\t\t54, 170, 210, 203, 37, 20, 47, 51, 143, 10, 150, 201, 3, 14,\n\t\t12, 149, 140, 210, 73, 59, 194, 128, 243, 233, 164, 4, 101,\n\t\t42, 176, 226, 199, 238, 152, 237, 190, 91, 161, 242, 159,\n\t\t178, 194, 34, 87, 184, 18, 40, 116, 184, 194, 176, 244, 73,\n\t\t60, 119, 248, 166, 195, 157, 59, 142, 93, 208, 46, 40, 189,\n\t\t124, 96, 253, 92, 179, 115, 84, 82, 217, 197, 50, 155, 13,\n\t\t65, 170, 77, 127, 84, 212, 252, 72, 141, 70, 56, 87, 110,\n\t\t8, 244, 25, 202, 229, 102, 45, 33, 51, 92, 29, 230, 181, 35,\n\t\t188, 70, 194, 194, 159, 170, 102, 247, 199, 166, 187, 95,\n\t\t143, 210, 33, 42, 138, 15, 47, 44, 244, 179, 110, 110, 137,\n\t\t90, 115, 221, 181, 58, 250, 105, 82, 211, 39, 210, 35, 105,\n\t\t84, 160, 11, 70, 76, 20, 159, 211, 92, 243, 255, 163, 238,\n\t\t205, 227, 228, 184, 202, 115, 225, 58, 181, 156, 83, 123,\n\t\t87, 119, 117, 85, 245, 190, 76, 79, 47, 179, 104, 166, 103,\n\t\t122, 122, 209, 222, 26, 45, 150, 37, 89, 26, 89, 194, 178,\n\t\t133, 145, 199, 155, 48, 120, 27, 140, 141, 141, 3, 184, 217,\n\t\t140, 217, 149, 64, 140, 129, 0, 147, 132, 16, 114, 33, 65,\n\t\t1, 110, 128, 132, 192, 36, 132, 44, 144, 4, 231, 134, 36,\n\t\t36, 249, 46, 40, 36, 4, 238, 47, 36, 24, 242, 133, 144, 11,\n\t\t110, 221, 243, 158, 83, 221, 211, 35, 141, 140, 201, 205,\n\t\t247, 199, 39, 77, 87, 157, 170, 58, 93, 93, 203, 89, 222,\n\t\t245, 121, 102, 77, 49, 102, 222, 164, 70, 52, 148, 172, 175,\n\t\t227, 189, 214, 73, 114, 207, 110, 117, 215, 243, 244, 41,\n\t\t199, 217, 21, 196, 146, 201, 17, 60, 191, 58, 147, 224, 214,\n\t\t159, 102, 155, 35, 116, 85, 6, 145, 42, 11, 213, 22, 131,\n\t\t10, 33, 35, 75, 244, 185, 84, 105, 50, 215, 63, 151, 155,\n\t\t44, 165, 178, 147, 57, 219, 47, 167, 157, 226, 108, 68, 87,\n\t\t106, 29, 140, 211, 101, 223, 206, 77, 30, 147, 107, 233, 220,\n\t\t228, 100, 46, 93, 147, 253, 82, 110, 210, 205, 166, 203, 179,\n\t\t197, 164, 39, 118, 106, 145, 104, 57, 157, 117, 39, 115, 165,\n\t\t117, 156, 33, 204, 250, 93, 0, 120, 211, 229, 75, 242, 70,\n\t\t6, 136, 45, 101, 238, 115, 132, 70, 139, 193, 138, 193, 222,\n\t\t45, 93, 244, 89, 192, 200, 97, 244, 181, 207, 184, 174, 118,\n\t\t147, 94, 209, 111, 210, 220, 222, 224, 160, 219, 96, 71, 239,\n\t\t44, 56, 171, 14, 253, 43, 8, 156, 215, 2, 125, 157, 225, 89,\n\t\t13, 248, 109, 103, 215, 219, 21, 185, 132, 174, 57, 31, 138,\n\t\t119, 57, 49, 203, 67, 146, 25, 253, 237, 87, 176, 36, 21,\n\t\t36, 11, 63, 198, 218, 214, 99, 216, 162, 91, 18, 126, 236,\n\t\t177, 145, 221, 84, 156, 148, 134, 7, 238, 147, 45, 165, 67,\n\t\t199, 221, 99, 239, 129, 247, 241, 158, 99, 116, 52, 238, 80,\n\t\t197, 231, 232, 209, 145, 253, 18, 149, 55, 215, 143, 132,\n\t\t126, 36, 62, 30, 101, 89, 46, 255, 85, 194, 115, 132, 91,\n\t\t133, 23, 9, 143, 108, 194, 91, 56, 18, 104, 197, 243, 18,\n\t\t214, 131, 174, 130, 255, 15, 142, 129, 152, 208, 169, 245,\n\t\t187, 176, 228, 36, 58, 108, 134, 207, 176, 226, 57, 141, 208,\n\t\t217, 182, 56, 83, 164, 127, 172, 120, 217, 142, 222, 165,\n\t\t95, 65, 107, 244, 108, 140, 85, 17, 209, 115, 246, 207, 113,\n\t\t254, 29, 58, 132, 189, 29, 22, 113, 216, 124, 17, 107, 255,\n\t\t157, 160, 88, 124, 235, 245, 116, 17, 92, 127, 133, 125, 47,\n\t\t221, 228, 187, 208, 206, 244, 77, 158, 231, 41, 225, 118,\n\t\t225, 197, 194, 43, 133, 183, 94, 198, 202, 214, 8, 154, 163,\n\t\t247, 219, 126, 214, 91, 222, 38, 231, 89, 127, 138, 237, 103,\n\t\t189, 5, 79, 184, 156, 238, 11, 16, 23, 214, 29, 62, 217, 225,\n\t\t19, 29, 62, 201, 193, 33, 168, 7, 239, 163, 156, 94, 30, 60,\n\t\t220, 225, 99, 31, 22, 134, 207, 29, 158, 55, 199, 98, 175,\n\t\t117, 206, 23, 88, 26, 213, 224, 73, 6, 157, 141, 165, 225,\n\t\t209, 215, 151, 211, 236, 173, 23, 210, 229, 165, 194, 224,\n\t\t72, 38, 1, 165, 4, 212, 30, 150, 34, 195, 163, 12, 23, 241,\n\t\t226, 211, 84, 7, 1, 30, 25, 44, 212, 232, 8, 121, 144, 121,\n\t\t87, 94, 200, 244, 16, 82, 217, 5, 233, 244, 224, 6, 230, 118,\n\t\t99, 128, 213, 2, 220, 114, 112, 180, 16, 102, 203, 169, 199,\n\t\t189, 192, 103, 65, 166, 213, 74, 211, 111, 181, 253, 50, 68,\n\t\t26, 216, 226, 140, 184, 155, 197, 27, 16, 236, 181, 152, 197,\n\t\t106, 6, 81, 125, 163, 213, 198, 220, 14, 212, 98, 153, 16,\n\t\t84, 211, 105, 249, 95, 82, 11, 49, 100, 167, 159, 39, 31,\n\t\t168, 88, 41, 34, 149, 110, 56, 132, 11, 114, 44, 246, 252,\n\t\t7, 198, 199, 83, 78, 33, 153, 243, 169, 72, 125, 219, 13,\n\t\t175, 20, 137, 99, 56, 25, 17, 197, 166, 45, 9, 189, 207, 164,\n\t\t10, 112, 129, 156, 184, 121, 207, 177, 22, 41, 200, 89, 239,\n\t\t221, 143, 241, 3, 146, 91, 200, 164, 79, 28, 208, 103, 94,\n\t\t61, 38, 125, 149, 138, 226, 225, 151, 80, 116, 250, 139, 83,\n\t\t70, 220, 201, 5, 91, 18, 243, 70, 169, 128, 198, 247, 85,\n\t\t62, 230, 85, 245, 173, 88, 14, 144, 172, 120, 115, 8, 77,\n\t\t233, 113, 91, 148, 220, 168, 66, 52, 18, 193, 121, 226, 101,\n\t\t172, 143, 79, 28, 44, 26, 123, 150, 39, 62, 230, 229, 164,\n\t\t228, 175, 242, 3, 74, 52, 141, 221, 39, 35, 211, 213, 76,\n\t\t48, 89, 59, 134, 21, 35, 110, 211, 31, 117, 232, 65, 117,\n\t\t212, 223, 8, 81, 58, 187, 32, 202, 15, 197, 109, 137, 120,\n\t\t141, 56, 67, 32, 24, 3, 195, 72, 179, 209, 92, 95, 12, 5,\n\t\t103, 168, 224, 225, 75, 156, 122, 67, 144, 171, 30, 213, 152,\n\t\t226, 70, 55, 154, 119, 181, 3, 55, 30, 208, 114, 229, 110,\n\t\t102, 28, 254, 24, 217, 95, 215, 201, 186, 111, 103, 125, 117,\n\t\t244, 15, 9, 102, 34, 30, 181, 228, 138, 87, 78, 227, 233,\n\t\t173, 91, 167, 181, 249, 66, 69, 159, 203, 195, 135, 123, 110,\n\t\t227, 244, 64, 229, 2, 171, 125, 219, 200, 114, 104, 243, 134,\n\t\t251, 0, 76, 154, 215, 209, 254, 119, 65, 248, 214, 136, 191,\n\t\t137, 199, 97, 148, 88, 126, 203, 70, 168, 235, 240, 134, 242,\n\t\t92, 19, 40, 67, 128, 3, 27, 154, 225, 91, 152, 132, 49, 85,\n\t\t35, 4, 235, 149, 65, 64, 114, 101, 157, 233, 180, 53, 96,\n\t\t89, 104, 181, 135, 207, 199, 15, 66, 130, 92, 127, 200, 53,\n\t\t88, 29, 102, 86, 254, 23, 159, 152, 251, 186, 162, 118, 181,\n\t\t158, 170, 236, 245, 23, 253, 189, 71, 246, 250, 81, 54, 79,\n\t\t107, 228, 188, 107, 189, 136, 234, 90, 39, 14, 1, 99, 194,\n\t\t107, 26, 199, 81, 29, 230, 17, 141, 40, 116, 197, 194, 162,\n\t\t101, 157, 71, 195, 25, 122, 184, 173, 200, 10, 124, 247, 153,\n\t\t42, 60, 194, 94, 216, 42, 139, 1, 249, 47, 56, 209, 5, 182,\n\t\t59, 158, 113, 198, 114, 185, 177, 177, 220, 32, 27, 109, 217,\n\t\t114, 109, 253, 14, 215, 234, 46, 119, 251, 23, 96, 50, 251,\n\t\t9, 79, 126, 89, 133, 37, 214, 92, 22, 32, 6, 69, 149, 47,\n\t\t171, 72, 11, 63, 225, 153, 120, 255, 225, 250, 114, 155, 225,\n\t\t116, 30, 30, 105, 115, 155, 103, 49, 92, 185, 233, 121, 141,\n\t\t234, 192, 63, 45, 111, 120, 177, 243, 226, 226, 141, 139,\n\t\t226, 62, 182, 156, 15, 37, 201, 85, 254, 90, 239, 174, 195,\n\t\t107, 125, 239, 53, 127, 193, 123, 208, 14, 254, 94, 248, 229,\n\t\t43, 51, 139, 139, 51, 138, 49, 88, 115, 138, 60, 203, 237,\n\t\t193, 0, 0, 64, 255, 191, 83, 125, 140, 62, 213, 53, 170, 71,\n\t\t175, 141, 116, 192, 80, 103, 9, 109, 83, 34, 157, 223, 128,\n\t\t59, 240, 48, 139, 146, 29, 4, 137, 180, 47, 167, 55, 6, 75,\n\t\t14, 109, 193, 54, 226, 218, 49, 21, 237, 27, 1, 0, 64, 13,\n\t\t230, 158, 10, 3, 193, 166, 26, 51, 155, 205, 222, 27, 139,\n\t\t189, 157, 121, 213, 31, 99, 228, 199, 203, 176, 252, 162,\n\t\t170, 137, 45, 209, 38, 41, 133, 170, 210, 45, 81, 83, 163,\n\t\t166, 164, 30, 80, 37, 243, 51, 76, 210, 52, 77, 16, 250, 34,\n\t\t150, 2, 27, 231, 155, 77, 135, 163, 226, 209, 111, 95, 96,\n\t\t225, 11, 5, 96, 71, 182, 212, 119, 179, 214, 248, 110, 213,\n\t\t50, 60, 207, 112, 152, 88, 59, 46, 79, 238, 152, 196, 88,\n\t\t11, 227, 74, 80, 55, 140, 171, 184, 12, 15, 127, 132, 252,\n\t\t99, 232, 78, 97, 1, 186, 62, 3, 195, 70, 12, 7, 116, 217,\n\t\t214, 11, 186, 189, 12, 197, 45, 229, 67, 119, 29, 42, 239,\n\t\t159, 78, 229, 98, 134, 231, 172, 177, 3, 79, 192, 129, 39,\n\t\t88, 113, 123, 115, 207, 177, 99, 123, 154, 219, 207, 143,\n\t\t229, 18, 91, 227, 102, 177, 230, 228, 134, 120, 160, 107,\n\t\t44, 7, 18, 24, 155, 132, 242, 230, 108, 76, 60, 181, 116,\n\t\t157, 163, 109, 144, 22, 58, 138, 205, 60, 100, 106, 90, 187,\n\t\t132, 133, 169, 255, 164, 70, 234, 156, 69, 154, 25, 8, 6,\n\t\t197, 127, 238, 255, 61, 240, 50, 157, 190, 140, 119, 233,\n\t\t37, 244, 56, 207, 184, 30, 253, 86, 255, 143, 56, 15, 211,\n\t\t186, 14, 75, 24, 214, 77, 3, 174, 123, 32, 63, 7, 35, 118,\n\t\t72, 22, 109, 50, 70, 138, 205, 141, 246, 75, 88, 84, 24, 255,\n\t\t28, 68, 59, 15, 129, 147, 27, 232, 227, 15, 157, 60, 249,\n\t\t208, 201, 39, 169, 112, 109, 234, 250, 14, 189, 219, 158,\n\t\t233, 63, 144, 117, 151, 178, 238, 170, 155, 93, 114, 179,\n\t\t218, 39, 122, 175, 35, 110, 255, 127, 186, 217, 53, 141, 92,\n\t\t56, 9, 149, 23, 77, 189, 165, 235, 71, 244, 181, 2, 61, 94,\n\t\t119, 179, 89, 183, 158, 117, 231, 208, 114, 161, 112, 33,\n\t\t145, 152, 172, 100, 221, 115, 33, 223, 187, 57, 188, 102,\n\t\t136, 92, 223, 47, 28, 23, 158, 39, 188, 64, 120, 128, 74,\n\t\t101, 111, 22, 222, 41, 252, 146, 240, 235, 207, 206, 226,\n\t\t186, 185, 237, 245, 74, 156, 209, 193, 127, 81, 29, 247, 10,\n\t\t117, 196, 59, 116, 155, 179, 24, 216, 122, 141, 117, 139,\n\t\t46, 95, 218, 250, 57, 64, 125, 53, 107, 230, 37, 127, 189,\n\t\t203, 119, 109, 82, 107, 195, 46, 160, 110, 232, 255, 128,\n\t\t25, 131, 233, 207, 241, 124, 96, 190, 60, 8, 141, 251, 131,\n\t\t95, 102, 181, 238, 26, 89, 126, 252, 178, 61, 39, 47, 219,\n\t\t211, 255, 246, 200, 70, 24, 223, 205, 49, 8, 226, 84, 114,\n\t\t227, 177, 8, 37, 198, 74, 74, 71, 200, 93, 34, 40, 139, 10,\n\t\t224, 81, 113, 100, 231, 237, 34, 7, 118, 174, 176, 32, 144,\n\t\t176, 7, 216, 98, 0, 41, 192, 220, 9, 203, 160, 157, 125, 6,\n\t\t36, 194, 193, 172, 129, 211, 241, 133, 157, 198, 158, 35,\n\t\t170, 168, 68, 178, 120, 43, 74, 4, 89, 73, 76, 68, 231, 177,\n\t\t70, 213, 90, 69, 197, 81, 25, 49, 208, 42, 250, 252, 34, 9,\n\t\t83, 12, 15, 225, 141, 71, 208, 234, 195, 31, 126, 216, 109,\n\t\t168, 146, 36, 187, 243, 254, 214, 67, 215, 125, 92, 44, 39,\n\t\t162, 73, 37, 130, 136, 42, 202, 180, 166, 41, 105, 34, 203,\n\t\t248, 136, 161, 88, 198, 217, 244, 72, 136, 183, 176, 72, 239,\n\t\t53, 38, 28, 3, 214, 11, 97, 228, 94, 185, 94, 60, 47, 241,\n\t\t119, 205, 208, 172, 69, 118, 207, 204, 166, 250, 172, 224,\n\t\t172, 21, 159, 69, 168, 49, 143, 81, 213, 103, 112, 7, 85,\n\t\t208, 188, 233, 197, 95, 183, 163, 49, 53, 163, 138, 190, 93,\n\t\t121, 248, 195, 103, 25, 118, 53, 184, 34, 182, 104, 192, 117,\n\t\t249, 204, 152, 214, 232, 180, 237, 83, 173, 113, 102, 170,\n\t\t177, 163, 123, 71, 34, 102, 223, 250, 102, 180, 245, 32, 90,\n\t\t124, 205, 153, 100, 146, 62, 141, 32, 63, 209, 88, 60, 3,\n\t\t36, 24, 14, 74, 197, 84, 112, 17, 89, 146, 78, 231, 198, 1,\n\t\t132, 181, 195, 143, 92, 138, 108, 253, 166, 124, 32, 235,\n\t\t201, 100, 107, 90, 124, 209, 49, 93, 143, 45, 205, 55, 132,\n\t\t1, 127, 52, 143, 119, 219, 44, 210, 237, 18, 86, 146, 44,\n\t\t66, 60, 24, 157, 133, 40, 142, 20, 67, 244, 11, 30, 110, 56,\n\t\t114, 112, 93, 79, 3, 223, 223, 41, 58, 18, 220, 74, 199, 130,\n\t\t123, 233, 104, 240, 114, 225, 213, 194, 235, 65, 79, 27, 196,\n\t\t142, 85, 169, 80, 198, 130, 58, 199, 64, 44, 11, 194, 40,\n\t\t137, 54, 136, 101, 161, 241, 148, 22, 7, 58, 88, 107, 61,\n\t\t147, 130, 22, 7, 17, 19, 32, 154, 133, 38, 48, 63, 168, 194,\n\t\t38, 56, 137, 105, 229, 18, 91, 242, 29, 240, 33, 254, 48,\n\t\t46, 156, 126, 29, 147, 6, 91, 178, 95, 240, 209, 119, 136,\n\t\t174, 147, 168, 58, 110, 41, 72, 241, 101, 91, 49, 102, 183,\n\t\t35, 141, 228, 104, 139, 220, 62, 107, 40, 182, 236, 203, 138,\n\t\t53, 174, 70, 135, 181, 228, 43, 87, 250, 61, 57, 98, 77, 229,\n\t\t110, 40, 231, 166, 172, 200, 93, 30, 238, 74, 218, 17, 236,\n\t\t205, 105, 210, 94, 182, 127, 158, 249, 144, 183, 141, 28,\n\t\t53, 187, 112, 248, 107, 255, 201, 95, 187, 188, 210, 35, 244,\n\t\t156, 115, 30, 102, 191, 153, 43, 211, 31, 61, 194, 126, 236,\n\t\t117, 108, 247, 131, 204, 227, 124, 110, 253, 224, 65, 25,\n\t\t142, 134, 241, 53, 192, 225, 4, 118, 211, 45, 48, 70, 180,\n\t\t55, 26, 185, 74, 164, 57, 106, 241, 26, 171, 128, 65, 113,\n\t\t72, 111, 26, 64, 244, 59, 105, 22, 189, 42, 235, 99, 172,\n\t\t234, 46, 165, 49, 159, 147, 57, 97, 179, 127, 126, 104, 247,\n\t\t58, 31, 174, 233, 226, 192, 130, 247, 103, 92, 32, 249, 51,\n\t\t148, 141, 81, 201, 104, 57, 230, 216, 153, 248, 81, 68, 80,\n\t\t198, 14, 84, 53, 176, 51, 180, 120, 52, 158, 177, 191, 181,\n\t\t110, 4, 91, 26, 20, 180, 251, 34, 239, 248, 11, 144, 70, 254,\n\t\t226, 29, 223, 177, 19, 250, 129, 79, 125, 234, 128, 158, 176,\n\t\t45, 125, 58, 158, 65, 10, 242, 52, 195, 208, 60, 90, 200,\n\t\t196, 167, 141, 17, 78, 166, 40, 99, 190, 152, 223, 32, 1,\n\t\t108, 103, 6, 162, 141, 73, 110, 79, 174, 203, 74, 171, 93,\n\t\t170, 141, 51, 167, 195, 26, 120, 11, 88, 72, 38, 151, 129,\n\t\t186, 31, 28, 94, 140, 176, 225, 55, 154, 87, 254, 141, 81,\n\t\t145, 130, 255, 218, 168, 216, 113, 217, 239, 30, 100, 167,\n\t\t63, 8, 63, 51, 44, 94, 126, 13, 27, 143, 67, 81, 96, 156,\n\t\t207, 159, 14, 227, 209, 51, 12, 45, 15, 198, 179, 128, 121,\n\t\t255, 118, 162, 1, 82, 240, 32, 106, 34, 128, 177, 176, 114,\n\t\t37, 96, 127, 238, 224, 101, 67, 33, 167, 220, 222, 8, 237,\n\t\t255, 235, 187, 175, 221, 174, 150, 156, 37, 231, 19, 145,\n\t\t168, 135, 46, 120, 209, 200, 75, 95, 115, 230, 204, 107, 206,\n\t\t156, 223, 20, 188, 95, 115, 12, 2, 187, 69, 73, 17, 55, 162,\n\t\t250, 167, 156, 231, 239, 61, 190, 213, 209, 140, 29, 102,\n\t\t252, 231, 190, 16, 169, 86, 35, 111, 56, 3, 39, 250, 153,\n\t\t77, 198, 54, 102, 187, 53, 29, 141, 239, 23, 21, 89, 28, 57,\n\t\t34, 108, 176, 71, 223, 78, 71, 159, 151, 142, 72, 160, 205,\n\t\t18, 252, 247, 26, 244, 255, 40, 139, 111, 131, 254, 47, 121,\n\t\t236, 255, 229, 58, 195, 6, 7, 213, 38, 235, 225, 162, 234,\n\t\t53, 194, 115, 174, 91, 141, 16, 131, 17, 89, 98, 17, 86, 156,\n\t\t163, 58, 44, 135, 10, 163, 195, 253, 85, 221, 145, 15, 125,\n\t\t147, 244, 239, 7, 220, 250, 203, 131, 34, 105, 107, 232, 17,\n\t\t109, 181, 183, 188, 220, 91, 229, 34, 2, 47, 179, 221, 43,\n\t\t76, 125, 91, 25, 9, 29, 30, 89, 174, 48, 144, 145, 149, 243,\n\t\t204, 119, 245, 9, 110, 91, 27, 121, 62, 115, 194, 110, 176,\n\t\t215, 151, 57, 154, 51, 135, 48, 110, 175, 223, 115, 40, 23,\n\t\t93, 86, 110, 204, 203, 192, 11, 48, 35, 130, 63, 56, 135,\n\t\t6, 250, 10, 122, 90, 210, 206, 118, 62, 218, 57, 171, 73,\n\t\t170, 215, 77, 20, 18, 122, 92, 31, 46, 187, 94, 255, 95, 235,\n\t\t117, 211, 84, 162, 243, 124, 197, 169, 249, 222, 140, 137,\n\t\t165, 221, 179, 99, 199, 61, 154, 69, 176, 251, 164, 147, 72,\n\t\t56, 143, 234, 250, 175, 193, 250, 215, 116, 253, 81, 88, 63,\n\t\t217, 43, 208, 155, 241, 198, 217, 114, 199, 32, 118, 125,\n\t\t152, 87, 60, 15, 220, 65, 229, 48, 126, 124, 22, 5, 241, 245,\n\t\t32, 242, 102, 155, 140, 13, 99, 201, 57, 78, 121, 155, 167,\n\t\t54, 251, 17, 177, 218, 6, 6, 112, 82, 13, 72, 64, 128, 7,\n\t\t188, 138, 158, 178, 20, 243, 150, 195, 154, 109, 221, 37,\n\t\t27, 170, 138, 247, 237, 195, 170, 106, 200, 119, 137, 162,\n\t\t169, 171, 135, 111, 49, 21, 235, 158, 73, 37, 110, 158, 25,\n\t\t147, 83, 242, 216, 25, 51, 174, 76, 206, 142, 207, 54, 227,\n\t\t91, 28, 103, 75, 188, 57, 59, 190, 32, 22, 139, 226, 191,\n\t\t161, 52, 110, 158, 208, 19, 82, 226, 69, 170, 65, 110, 184,\n\t\t129, 24, 234, 139, 18, 158, 126, 162, 137, 211, 200, 185,\n\t\t195, 138, 146, 29, 119, 90, 214, 157, 59, 72, 212, 186, 227,\n\t\t229, 181, 164, 58, 159, 109, 52, 178, 243, 106, 178, 102,\n\t\t182, 38, 39, 91, 44, 52, 131, 241, 9, 22, 232, 125, 81, 249,\n\t\t165, 220, 128, 176, 147, 18, 228, 127, 210, 30, 185, 208,\n\t\t110, 84, 153, 129, 205, 135, 92, 39, 150, 242, 230, 197, 115,\n\t\t40, 104, 135, 40, 236, 11, 225, 45, 186, 11, 243, 158, 11,\n\t\t183, 200, 253, 64, 12, 128, 21, 30, 12, 216, 219, 42, 12,\n\t\t250, 158, 33, 224, 51, 67, 29, 105, 192, 81, 116, 161, 86,\n\t\t124, 244, 56, 193, 215, 60, 146, 175, 109, 151, 17, 154, 157,\n\t\t240, 175, 147, 21, 85, 151, 244, 109, 24, 225, 137, 212, 150,\n\t\t172, 152, 86, 116, 57, 62, 73, 200, 100, 92, 214, 149, 156,\n\t\t233, 24, 249, 225, 14, 36, 42, 74, 90, 44, 55, 85, 28, 79,\n\t\t210, 234, 219, 232, 215, 84, 69, 126, 78, 48, 49, 139, 148,\n\t\t229, 131, 215, 203, 167, 246, 111, 247, 98, 86, 116, 226,\n\t\t236, 14, 201, 86, 147, 169, 171, 166, 148, 136, 82, 110, 103,\n\t\t23, 74, 120, 79, 76, 214, 112, 81, 163, 195, 147, 86, 196,\n\t\t154, 236, 161, 130, 170, 246, 47, 120, 108, 167, 104, 209,\n\t\t157, 162, 40, 211, 254, 29, 219, 67, 154, 229, 194, 174, 128,\n\t\t126, 111, 234, 170, 84, 82, 181, 197, 157, 103, 39, 168, 212,\n\t\t147, 186, 68, 207, 123, 35, 32, 11, 93, 73, 207, 195, 30,\n\t\t179, 69, 18, 214, 58, 24, 218, 27, 15, 156, 3, 136, 238, 29,\n\t\t104, 14, 240, 182, 199, 120, 104, 4, 60, 17, 150, 61, 87,\n\t\t13, 24, 207, 45, 11, 216, 165, 139, 5, 22, 240, 82, 34, 213,\n\t\t133, 49, 143, 84, 57, 86, 96, 60, 207, 222, 2, 131, 52, 39,\n\t\t131, 16, 162, 54, 88, 156, 224, 116, 87, 86, 28, 63, 175,\n\t\t148, 177, 66, 199, 45, 49, 161, 237, 60, 186, 83, 75, 136,\n\t\t146, 44, 138, 82, 89, 241, 168, 192, 72, 159, 102, 164, 160,\n\t\t39, 156, 164, 43, 2, 120, 30, 253, 175, 197, 36, 41, 166,\n\t\t65, 96, 129, 173, 168, 138, 41, 42, 162, 10, 123, 84, 36,\n\t\t33, 132, 12, 209, 77, 58, 9, 189, 16, 73, 43, 10, 253, 246,\n\t\t223, 95, 81, 247, 140, 217, 8, 21, 20, 44, 137, 94, 101, 110,\n\t\t174, 226, 137, 0, 154, 78, 91, 26, 178, 99, 190, 40, 98, 156,\n\t\t42, 68, 35, 177, 156, 27, 245, 227, 121, 185, 164, 33, 36,\n\t\t137, 17, 9, 97, 42, 161, 211, 107, 16, 245, 21, 89, 190, 87,\n\t\t67, 178, 100, 203, 116, 159, 20, 129, 125, 136, 20, 229, 124,\n\t\t220, 143, 186, 185, 88, 36, 90, 72, 97, 44, 138, 253, 127,\n\t\t228, 154, 44, 183, 17, 126, 150, 241, 142, 68, 24, 38, 233,\n\t\t78, 225, 48, 196, 26, 1, 243, 76, 185, 66, 20, 70, 67, 1,\n\t\t208, 123, 173, 128, 106, 224, 152, 15, 62, 224, 106, 131,\n\t\t161, 51, 196, 147, 223, 205, 12, 113, 225, 86, 14, 53, 218,\n\t\t45, 58, 235, 64, 16, 50, 7, 4, 7, 212, 167, 145, 45, 113,\n\t\t210, 239, 255, 123, 16, 244, 255, 221, 210, 190, 109, 23,\n\t\t236, 105, 219, 70, 49, 219, 248, 158, 238, 235, 223, 51, 236,\n\t\t30, 150, 151, 48, 124, 206, 97, 121, 153, 62, 97, 113, 25,\n\t\t159, 199, 75, 50, 134, 207, 57, 188, 76, 11, 244, 131, 238,\n\t\t34, 193, 220, 18, 33, 75, 115, 122, 84, 58, 166, 40, 119,\n\t\t203, 242, 181, 223, 48, 162, 82, 75, 20, 91, 82, 212, 248,\n\t\t198, 24, 132, 98, 249, 136, 170, 28, 116, 37, 110, 161, 43,\n\t\t49, 69, 183, 36, 25, 165, 196, 168, 131, 69, 31, 41, 114,\n\t\t20, 211, 26, 202, 120, 20, 211, 67, 108, 43, 37, 42, 116,\n\t\t62, 254, 87, 250, 44, 12, 250, 44, 238, 17, 94, 34, 188, 130,\n\t\t101, 187, 16, 142, 148, 67, 37, 85, 22, 61, 198, 34, 175,\n\t\t197, 102, 213, 27, 90, 175, 154, 60, 236, 15, 66, 209, 130,\n\t\t16, 151, 129, 245, 221, 128, 245, 126, 58, 35, 55, 161, 181,\n\t\t66, 147, 227, 118, 75, 176, 113, 50, 55, 32, 179, 118, 122,\n\t\t109, 152, 213, 171, 108, 56, 39, 208, 182, 169, 232, 92, 141,\n\t\t7, 208, 152, 49, 90, 237, 204, 59, 122, 190, 169, 26, 75,\n\t\t217, 89, 69, 183, 177, 65, 100, 149, 200, 19, 14, 196, 222,\n\t\t79, 32, 75, 3, 245, 83, 153, 205, 46, 25, 106, 199, 211, 147,\n\t\t179, 59, 12, 58, 107, 36, 43, 197, 107, 166, 105, 189, 84,\n\t\t62, 151, 196, 178, 186, 125, 59, 145, 149, 100, 46, 159, 82,\n\t\t37, 60, 125, 100, 172, 146, 148, 100, 237, 57, 105, 213, 178,\n\t\t112, 182, 151, 85, 108, 155, 164, 209, 43, 114, 47, 222, 93,\n\t\t29, 223, 169, 227, 201, 120, 17, 217, 58, 49, 176, 132, 169,\n\t\t60, 144, 211, 98, 160, 44, 196, 180, 92, 70, 51, 129, 97,\n\t\t182, 24, 159, 196, 250, 158, 68, 114, 127, 143, 206, 116,\n\t\t186, 94, 155, 173, 29, 240, 91, 241, 113, 162, 69, 35, 141,\n\t\t124, 174, 17, 49, 52, 210, 108, 18, 205, 136, 52, 114, 249,\n\t\t70, 36, 170, 145, 241, 120, 203, 63, 64, 171, 201, 128, 231,\n\t\t127, 127, 33, 30, 173, 84, 76, 119, 108, 204, 53, 43, 149,\n\t\t104, 124, 227, 252, 31, 101, 156, 197, 172, 213, 13, 157,\n\t\t58, 188, 221, 81, 17, 160, 25, 126, 6, 4, 185, 219, 209, 37,\n\t\t241, 0, 13, 244, 125, 157, 187, 154, 245, 127, 82, 76, 229,\n\t\t139, 221, 101, 250, 31, 216, 55, 193, 26, 192, 51, 243, 66,\n\t\t134, 206, 219, 100, 163, 12, 133, 178, 33, 159, 22, 197, 207,\n\t\t172, 194, 63, 30, 48, 178, 60, 66, 212, 169, 140, 196, 207,\n\t\t64, 102, 227, 78, 96, 26, 218, 134, 194, 80, 196, 34, 143,\n\t\t47, 100, 24, 129, 182, 72, 198, 152, 79, 165, 58, 35, 66,\n\t\t54, 198, 58, 230, 99, 19, 236, 127, 77, 150, 133, 84, 242,\n\t\t202, 44, 227, 136, 163, 164, 81, 161, 242, 141, 147, 83, 133,\n\t\t48, 194, 172, 91, 88, 179, 92, 18, 76, 79, 136, 99, 26, 137,\n\t\t198, 209, 196, 116, 64, 128, 49, 25, 30, 253, 154, 52, 158,\n\t\t4, 234, 200, 66, 183, 127, 97, 153, 7, 135, 95, 72, 85, 10,\n\t\t126, 253, 81, 56, 250, 104, 221, 95, 117, 45, 23, 199, 138,\n\t\t57, 95, 115, 80, 118, 44, 166, 56, 84, 193, 99, 174, 132,\n\t\t71, 147, 197, 130, 229, 246, 186, 221, 229, 2, 99, 120, 92,\n\t\t174, 140, 216, 127, 0, 223, 35, 75, 239, 107, 158, 222, 215,\n\t\t65, 225, 132, 112, 134, 234, 126, 247, 11, 31, 13, 227, 46,\n\t\t71, 83, 163, 54, 47, 53, 90, 3, 118, 154, 17, 162, 154, 255,\n\t\t116, 81, 217, 160, 180, 108, 30, 211, 61, 162, 229, 248, 27,\n\t\t236, 104, 173, 115, 204, 226, 211, 99, 203, 11, 35, 229, 151,\n\t\t211, 30, 162, 170, 133, 23, 63, 235, 149, 200, 113, 110, 58,\n\t\t181, 53, 222, 92, 88, 192, 247, 249, 181, 90, 152, 236, 98,\n\t\t113, 186, 249, 53, 208, 169, 53, 114, 238, 28, 75, 7, 191,\n\t\t100, 89, 112, 45, 181, 96, 154, 51, 172, 219, 252, 167, 75,\n\t\t127, 126, 46, 76, 53, 239, 174, 55, 200, 110, 167, 198, 247,\n\t\t90, 46, 187, 186, 243, 238, 128, 47, 138, 191, 207, 132, 176,\n\t\t23, 208, 131, 188, 104, 35, 202, 53, 191, 114, 145, 13, 40,\n\t\t140, 134, 143, 62, 227, 97, 130, 67, 232, 66, 45, 49, 61,\n\t\t194, 22, 121, 105, 4, 209, 175, 33, 229, 100, 254, 146, 219,\n\t\t60, 223, 81, 220, 219, 127, 87, 246, 250, 253, 83, 170, 58,\n\t\t181, 255, 122, 206, 188, 156, 114, 187, 9, 42, 22, 58, 105,\n\t\t200, 106, 103, 30, 168, 158, 164, 250, 81, 155, 10, 127, 5,\n\t\t212, 237, 67, 123, 251, 147, 76, 126, 111, 103, 170, 169,\n\t\t235, 205, 169, 206, 222, 252, 14, 150, 37, 198, 241, 54, 15,\n\t\t122, 227, 68, 149, 244, 138, 119, 144, 111, 243, 4, 178, 46,\n\t\t82, 98, 94, 49, 86, 40, 100, 234, 250, 32, 142, 6, 198, 133,\n\t\t207, 11, 182, 112, 135, 240, 26, 58, 46, 112, 187, 194, 128,\n\t\t150, 216, 15, 27, 9, 27, 137, 33, 227, 209, 15, 205, 193,\n\t\t156, 107, 194, 15, 81, 113, 217, 145, 32, 39, 53, 56, 232,\n\t\t6, 11, 56, 216, 206, 185, 8, 199, 216, 56, 189, 0, 9, 50,\n\t\t34, 29, 168, 169, 84, 32, 178, 112, 18, 91, 166, 95, 84, 0,\n\t\t153, 58, 39, 181, 208, 11, 124, 73, 242, 9, 129, 165, 164,\n\t\t146, 107, 183, 111, 47, 167, 171, 174, 142, 12, 169, 52, 107,\n\t\t120, 94, 78, 79, 102, 39, 252, 216, 225, 230, 228, 158, 241,\n\t\t168, 33, 35, 201, 112, 138, 115, 5, 8, 16, 42, 106, 178, 35,\n\t\t107, 26, 115, 233, 70, 45, 93, 79, 97, 165, 214, 241, 203,\n\t\t41, 69, 139, 206, 70, 116, 42, 113, 198, 36, 37, 226, 149,\n\t\t125, 39, 239, 123, 22, 253, 38, 118, 13, 217, 166, 154, 28,\n\t\t122, 53, 253, 29, 254, 139, 116, 37, 245, 182, 79, 220, 54,\n\t\t190, 64, 159, 19, 38, 21, 44, 201, 83, 17, 237, 182, 8, 29,\n\t\t231, 179, 249, 98, 243, 112, 190, 62, 23, 96, 5, 139, 114,\n\t\t220, 203, 219, 149, 133, 10, 82, 11, 106, 36, 83, 203, 24,\n\t\t132, 196, 229, 8, 174, 232, 82, 48, 238, 85, 199, 245, 228,\n\t\t187, 176, 166, 143, 211, 1, 221, 212, 8, 213, 197, 172, 8,\n\t\t22, 205, 168, 42, 171, 17, 197, 26, 60, 103, 240, 25, 255,\n\t\t146, 240, 171, 194, 127, 23, 132, 113, 72, 193, 171, 128,\n\t\t188, 53, 35, 177, 80, 126, 200, 48, 247, 249, 211, 132, 124,\n\t\t128, 33, 105, 124, 139, 217, 112, 32, 248, 20, 68, 51, 112,\n\t\t26, 3, 45, 246, 46, 128, 36, 134, 220, 163, 54, 139, 214,\n\t\t158, 97, 185, 253, 149, 48, 8, 158, 190, 35, 90, 165, 58,\n\t\t131, 134, 153, 25, 116, 120, 31, 242, 159, 130, 126, 34, 178,\n\t\t108, 246, 240, 7, 9, 163, 76, 197, 12, 31, 188, 189, 75, 18,\n\t\t195, 32, 183, 97, 176, 219, 243, 93, 149, 196, 92, 63, 239,\n\t\t153, 129, 163, 43, 146, 36, 101, 138, 180, 7, 194, 140, 24,\n\t\t212, 146, 182, 98, 57, 150, 98, 39, 107, 1, 236, 112, 11,\n\t\t90, 49, 35, 73, 50, 246, 34, 134, 233, 229, 125, 55, 38, 1,\n\t\t0, 147, 238, 82, 149, 86, 245, 93, 32, 137, 21, 221, 192,\n\t\t73, 153, 170, 205, 120, 201, 121, 137, 4, 147, 201, 104, 178,\n\t\t84, 110, 149, 13, 55, 189, 45, 237, 26, 180, 84, 162, 123,\n\t\t38, 3, 170, 11, 171, 102, 202, 225, 196, 230, 80, 74, 196,\n\t\t68, 32, 139, 117, 125, 85, 141, 218, 111, 102, 1, 111, 253,\n\t\t127, 103, 171, 59, 232, 53, 170, 36, 226, 105, 118, 220, 50,\n\t\t44, 28, 24, 165, 14, 157, 74, 51, 91, 202, 46, 66, 110, 121,\n\t\t75, 6, 18, 41, 75, 70, 128, 173, 72, 52, 169, 40, 94, 132,\n\t\t168, 154, 162, 171, 4, 72, 77, 84, 69, 137, 144, 84, 214,\n\t\t86, 164, 168, 99, 91, 30, 173, 233, 68, 76, 175, 184, 16,\n\t\t29, 19, 203, 73, 136, 41, 112, 157, 178, 170, 150, 29, 23,\n\t\t202, 201, 178, 56, 22, 93, 40, 122, 150, 13, 126, 32, 88,\n\t\t69, 37, 197, 206, 166, 72, 68, 81, 84, 9, 85, 57, 230, 203,\n\t\t32, 8, 111, 20, 175, 193, 22, 98, 12, 125, 114, 132, 81, 168,\n\t\t82, 245, 130, 22, 105, 18, 191, 237, 181, 218, 18, 216, 21,\n\t\t130, 144, 249, 0, 157, 63, 181, 231, 149, 193, 87, 110, 168,\n\t\t188, 184, 81, 121, 231, 212, 254, 90, 240, 202, 48, 163, 237,\n\t\t249, 123, 159, 111, 124, 224, 249, 19, 143, 222, 119, 213,\n\t\t216, 11, 238, 211, 198, 208, 110, 181, 113, 116, 122, 118,\n\t\t226, 249, 131, 57, 30, 112, 140, 52, 33, 206, 188, 76, 185,\n\t\t16, 40, 183, 169, 44, 0, 120, 32, 99, 90, 230, 196, 141, 195,\n\t\t209, 105, 55, 106, 134, 253, 61, 139, 196, 187, 85, 42, 89,\n\t\t172, 244, 5, 69, 83, 238, 166, 218, 51, 122, 210, 129, 72,\n\t\t196, 101, 167, 174, 29, 49, 140, 35, 218, 113, 41, 170, 221,\n\t\t70, 135, 230, 35, 216, 212, 196, 89, 58, 78, 255, 135, 22,\n\t\t251, 23, 22, 29, 186, 252, 47, 49, 45, 251, 98, 91, 59, 108,\n\t\t154, 84, 89, 124, 113, 232, 151, 100, 177, 152, 3, 140, 227,\n\t\t103, 140, 240, 25, 68, 157, 60, 211, 54, 58, 199, 172, 65,\n\t\t171, 176, 92, 89, 31, 177, 151, 55, 45, 162, 213, 65, 85,\n\t\t180, 28, 207, 244, 207, 247, 96, 127, 111, 136, 231, 195,\n\t\t22, 221, 193, 66, 216, 244, 122, 203, 27, 180, 37, 223, 83,\n\t\t26, 27, 241, 81, 131, 31, 179, 141, 214, 126, 130, 75, 112,\n\t\t6, 245, 158, 197, 189, 13, 49, 106, 208, 171, 152, 95, 12,\n\t\t28, 167, 97, 18, 46, 169, 146, 16, 35, 10, 102, 110, 22, 240,\n\t\t197, 226, 216, 25, 63, 48, 160, 4, 160, 52, 3, 180, 189, 41,\n\t\t81, 186, 199, 245, 82, 79, 70, 131, 32, 122, 227, 150, 66,\n\t\t60, 54, 23, 171, 212, 18, 213, 109, 102, 209, 147, 172, 235,\n\t\t205, 98, 8, 87, 251, 165, 236, 158, 123, 220, 185, 96, 44,\n\t\t40, 197, 175, 42, 222, 88, 148, 229, 220, 204, 172, 46, 37,\n\t\t139, 198, 65, 93, 26, 197, 201, 153, 0, 86, 80, 129, 79, 21,\n\t\t16, 38, 56, 136, 205, 134, 166, 85, 111, 236, 66, 220, 174,\n\t\t61, 12, 187, 82, 194, 57, 101, 54, 140, 120, 230, 226, 198,\n\t\t128, 213, 168, 5, 176, 196, 243, 115, 160, 175, 34, 41, 229,\n\t\t206, 86, 62, 38, 203, 142, 99, 105, 167, 157, 7, 16, 73, 234,\n\t\t38, 38, 215, 0, 237, 19, 122, 216, 119, 28, 89, 254, 88, 101,\n\t\t150, 78, 142, 116, 219, 190, 134, 96, 83, 79, 18, 244, 128,\n\t\t131, 4, 58, 217, 85, 119, 235, 179, 200, 51, 150, 169, 226,\n\t\t146, 59, 158, 77, 156, 55, 20, 76, 82, 198, 171, 130, 212,\n\t\t53, 204, 90, 100, 189, 149, 4, 203, 134, 135, 102, 245, 221,\n\t\t85, 6, 65, 197, 140, 72, 215, 164, 130, 87, 25, 41, 76, 176,\n\t\t126, 62, 145, 61, 62, 204, 135, 231, 186, 244, 156, 112, 84,\n\t\t184, 238, 138, 218, 116, 68, 28, 99, 234, 111, 99, 190, 209,\n\t\t14, 230, 27, 243, 140, 89, 162, 4, 236, 138, 213, 208, 255,\n\t\t220, 106, 46, 148, 234, 99, 124, 152, 222, 134, 230, 232,\n\t\t174, 133, 82, 229, 138, 250, 240, 219, 140, 36, 85, 110, 99,\n\t\t144, 166, 132, 124, 31, 209, 149, 28, 163, 42, 102, 210, 64,\n\t\t242, 246, 217, 125, 251, 102, 61, 87, 33, 116, 184, 233, 116,\n\t\t170, 16, 64, 143, 113, 252, 129, 43, 105, 185, 15, 249, 178,\n\t\t44, 70, 147, 178, 105, 202, 201, 168, 40, 203, 190, 184, 119,\n\t\t239, 242, 94, 34, 42, 184, 115, 180, 131, 108, 210, 127, 51,\n\t\t215, 80, 165, 161, 159, 34, 41, 140, 3, 34, 249, 122, 228,\n\t\t246, 78, 52, 130, 88, 218, 152, 15, 100, 206, 52, 13, 158,\n\t\t245, 54, 215, 176, 60, 14, 148, 203, 179, 40, 56, 17, 49,\n\t\t16, 83, 193, 28, 180, 11, 12, 131, 44, 124, 149, 19, 236,\n\t\t178, 116, 115, 48, 215, 160, 255, 32, 36, 67, 226, 228, 54,\n\t\t210, 57, 120, 221, 195, 15, 127, 248, 225, 105, 71, 39, 253,\n\t\t139, 15, 157, 172, 46, 86, 119, 156, 252, 144, 29, 75, 198,\n\t\t84, 135, 142, 243, 42, 49, 169, 58, 74, 50, 10, 209, 182,\n\t\t216, 49, 211, 53, 47, 221, 171, 208, 147, 100, 8, 61, 143,\n\t\t238, 76, 211, 211, 60, 124, 221, 193, 14, 209, 78, 238, 168,\n\t\t238, 173, 156, 124, 104, 191, 146, 136, 196, 82, 220, 41,\n\t\t100, 40, 196, 144, 37, 89, 85, 116, 201, 162, 187, 205, 184,\n\t\t117, 233, 238, 33, 6, 194, 240, 57, 212, 121, 22, 228, 179,\n\t\t120, 18, 173, 17, 136, 195, 96, 128, 176, 149, 67, 207, 124,\n\t\t151, 47, 218, 53, 181, 151, 138, 32, 123, 15, 233, 16, 148,\n\t\t128, 205, 103, 186, 149, 159, 155, 202, 143, 31, 147, 164,\n\t\t99, 227, 249, 38, 132, 32, 128, 254, 200, 174, 151, 241, 224,\n\t\t129, 110, 231, 8, 105, 161, 12, 246, 246, 182, 13, 169, 212,\n\t\t224, 147, 3, 43, 31, 213, 232, 154, 3, 32, 134, 0, 183, 135,\n\t\t218, 133, 68, 15, 12, 58, 44, 40, 210, 127, 85, 243, 125,\n\t\t47, 85, 72, 206, 88, 177, 104, 238, 212, 42, 192, 165, 139,\n\t\t88, 93, 227, 169, 175, 107, 57, 239, 197, 244, 216, 22, 56,\n\t\t246, 250, 220, 153, 137, 168, 155, 12, 138, 7, 253, 61, 231,\n\t\t87, 47, 64, 26, 146, 104, 59, 60, 31, 169, 255, 212, 249,\n\t\t39, 83, 59, 35, 167, 248, 225, 117, 60, 45, 224, 91, 78, 243,\n\t\t103, 25, 134, 158, 175, 67, 69, 13, 248, 54, 131, 33, 26,\n\t\t188, 100, 51, 250, 184, 117, 141, 36, 143, 92, 218, 142, 196,\n\t\t237, 84, 114, 159, 97, 80, 79, 51, 51, 12, 15, 106, 100, 75,\n\t\t2, 49, 225, 115, 183, 224, 130, 147, 143, 93, 63, 13, 27,\n\t\t199, 93, 125, 219, 115, 196, 152, 241, 249, 205, 170, 135,\n\t\t91, 223, 176, 245, 186, 110, 247, 95, 239, 197, 51, 239, 103,\n\t\t197, 232, 11, 209, 94, 195, 26, 94, 183, 200, 242, 124, 183,\n\t\t210, 169, 156, 191, 222, 80, 204, 98, 102, 179, 250, 32, 182,\n\t\t4, 56, 54, 175, 4, 214, 129, 208, 73, 170, 170, 79, 205, 188,\n\t\t240, 241, 199, 95, 56, 51, 109, 74, 162, 69, 196, 83, 47,\n\t\t123, 217, 41, 145, 252, 34, 145, 228, 182, 133, 136, 44, 74,\n\t\t251, 246, 129, 160, 132, 172, 182, 44, 145, 35, 99, 146, 41,\n\t\t141, 197, 52, 108, 200, 206, 227, 95, 126, 220, 81, 44, 19,\n\t\t189, 236, 215, 94, 134, 126, 132, 76, 185, 117, 132, 214,\n\t\t26, 31, 71, 88, 57, 210, 146, 77, 100, 236, 199, 120, 63,\n\t\t60, 99, 21, 218, 0, 250, 75, 122, 173, 89, 161, 32, 84, 232,\n\t\t136, 60, 77, 103, 177, 121, 104, 11, 101, 54, 35, 48, 39,\n\t\t226, 224, 186, 182, 115, 155, 111, 3, 176, 38, 75, 1, 169,\n\t\t2, 192, 142, 68, 26, 36, 104, 147, 70, 53, 104, 151, 218,\n\t\t141, 42, 122, 188, 105, 248, 222, 157, 29, 99, 210, 232, 220,\n\t\t233, 249, 70, 115, 227, 230, 98, 45, 94, 104, 174, 52, 155,\n\t\t43, 157, 96, 230, 147, 241, 120, 173, 22, 127, 115, 48, 115,\n\t\t174, 22, 95, 187, 193, 29, 63, 19, 139, 157, 25, 119, 111,\n\t\t24, 150, 80, 177, 125, 253, 245, 215, 35, 187, 210, 41, 22,\n\t\t207, 23, 31, 161, 171, 117, 157, 234, 143, 152, 142, 92, 133,\n\t\t204, 4, 118, 73, 81, 218, 48, 219, 69, 104, 160, 28, 62, 131,\n\t\t234, 84, 176, 171, 66, 0, 243, 191, 20, 5, 81, 37, 168, 178,\n\t\t100, 24, 198, 201, 91, 226, 99, 46, 29, 110, 88, 76, 63, 125,\n\t\t17, 7, 100, 83, 174, 244, 136, 120, 31, 233, 85, 104, 241,\n\t\t31, 123, 230, 242, 150, 92, 144, 91, 54, 123, 241, 131, 174,\n\t\t43, 74, 82, 53, 137, 48, 74, 86, 37, 73, 220, 184, 249, 67,\n\t\t69, 153, 234, 63, 245, 117, 72, 233, 253, 58, 114, 166, 20,\n\t\t229, 51, 103, 245, 72, 255, 209, 229, 108, 85, 145, 43, 137,\n\t\t231, 161, 135, 35, 250, 89, 231, 91, 249, 188, 168, 212, 68,\n\t\t177, 166, 136, 195, 146, 96, 12, 245, 67, 93, 176, 104, 31,\n\t\t116, 233, 92, 81, 99, 88, 248, 183, 8, 183, 11, 119, 50, 121,\n\t\t111, 160, 247, 41, 109, 250, 184, 27, 213, 54, 125, 210, 85,\n\t\t41, 206, 97, 167, 232, 12, 82, 5, 1, 35, 90, 172, 98, 143,\n\t\t89, 79, 227, 0, 135, 203, 73, 35, 249, 188, 17, 2, 36, 192,\n\t\t93, 151, 230, 216, 125, 163, 48, 91, 0, 102, 77, 137, 208,\n\t\t19, 150, 232, 162, 17, 16, 170, 152, 208, 153, 12, 189, 49,\n\t\t22, 61, 19, 29, 187, 55, 26, 123, 103, 52, 246, 198, 28, 213,\n\t\t95, 82, 21, 7, 45, 213, 58, 253, 11, 85, 81, 74, 167, 37,\n\t\t69, 195, 157, 12, 54, 12, 156, 233, 152, 248, 178, 61, 232,\n\t\t167, 137, 182, 56, 211, 63, 95, 235, 24, 236, 60, 118, 161,\n\t\t176, 171, 80, 0, 129, 6, 28, 54, 241, 63, 202, 229, 22, 50,\n\t\t137, 92, 238, 133, 185, 92, 255, 171, 137, 138, 140, 202,\n\t\t105, 180, 146, 246, 58, 181, 139, 194, 247, 192, 2, 53, 3,\n\t\t209, 94, 120, 70, 215, 103, 140, 141, 155, 253, 191, 215,\n\t\t200, 204, 98, 167, 86, 64, 10, 156, 226, 85, 77, 250, 111,\n\t\t212, 54, 197, 177, 2, 4, 16, 254, 188, 81, 27, 197, 136, 71,\n\t\t190, 184, 137, 111, 158, 149, 168, 254, 4, 136, 1, 192, 228,\n\t\t135, 30, 202, 45, 165, 232, 104, 52, 18, 129, 20, 130, 235,\n\t\t242, 61, 116, 148, 74, 45, 229, 212, 229, 213, 101, 128, 172,\n\t\t92, 166, 26, 243, 58, 188, 253, 83, 124, 201, 141, 1, 28,\n\t\t63, 160, 11, 255, 152, 174, 220, 15, 117, 184, 174, 176, 79,\n\t\t56, 200, 115, 183, 35, 155, 194, 226, 12, 75, 85, 54, 33,\n\t\t54, 153, 82, 221, 100, 131, 49, 147, 133, 60, 230, 134, 240,\n\t\t202, 244, 130, 149, 98, 179, 40, 190, 84, 69, 72, 109, 179,\n\t\t31, 93, 29, 89, 182, 97, 247, 13, 109, 77, 123, 48, 141, 37,\n\t\t242, 137, 79, 16, 9, 167, 31, 212, 180, 118, 127, 109, 237,\n\t\t162, 0, 22, 128, 89, 170, 194, 200, 241, 209, 172, 73, 190,\n\t\t140, 203, 170, 174, 204, 117, 99, 114, 92, 158, 239, 58, 216,\n\t\t145, 175, 187, 78, 166, 171, 238, 60, 221, 17, 235, 94, 232,\n\t\t210, 63, 62, 190, 253, 80, 36, 232, 181, 66, 84, 216, 2, 232,\n\t\t154, 76, 62, 31, 25, 116, 149, 43, 12, 211, 0, 225, 247, 87,\n\t\t64, 203, 125, 195, 89, 24, 101, 207, 162, 165, 45, 166, 25,\n\t\t24, 48, 170, 26, 129, 105, 110, 217, 176, 133, 94, 106, 152,\n\t\t78, 255, 188, 99, 26, 55, 176, 80, 161, 229, 205, 42, 133,\n\t\t91, 151, 98, 131, 103, 71, 177, 193, 7, 248, 61, 21, 110,\n\t\t86, 128, 113, 119, 4, 61, 138, 107, 77, 255, 196, 28, 104,\n\t\t234, 82, 167, 83, 91, 90, 89, 161, 237, 253, 196, 40, 164,\n\t\t207, 55, 153, 163, 236, 238, 206, 82, 103, 101, 117, 165,\n\t\t179, 244, 201, 1, 38, 45, 211, 205, 187, 84, 142, 5, 44, 222,\n\t\t125, 96, 129, 12, 163, 158, 72, 233, 146, 117, 49, 90, 36,\n\t\t44, 79, 10, 194, 146, 219, 44, 187, 148, 135, 209, 6, 116,\n\t\t242, 186, 212, 84, 58, 184, 96, 244, 152, 170, 190, 55, 246,\n\t\t38, 85, 125, 77, 236, 62, 85, 125, 65, 180, 127, 1, 245, 162,\n\t\t253, 21, 197, 172, 82, 113, 245, 128, 120, 64, 77, 26, 85,\n\t\t83, 73, 41, 230, 150, 116, 122, 139, 169, 160, 231, 2, 18,\n\t\t42, 0, 169, 150, 211, 33, 34, 17, 80, 84, 116, 7, 31, 180,\n\t\t220, 237, 127, 215, 34, 9, 44, 169, 215, 124, 233, 40, 149,\n\t\t125, 18, 196, 218, 109, 34, 229, 208, 33, 5, 153, 43, 229,\n\t\t52, 15, 85, 78, 151, 151, 7, 9, 245, 120, 40, 195, 18, 170,\n\t\t125, 214, 233, 253, 49, 52, 160, 129, 206, 16, 108, 46, 207,\n\t\t98, 38, 162, 13, 221, 241, 116, 16, 34, 56, 132, 237, 220,\n\t\t192, 236, 14, 28, 240, 21, 18, 132, 98, 108, 108, 64, 198,\n\t\t17, 48, 29, 120, 245, 18, 161, 246, 35, 139, 179, 5, 166,\n\t\t240, 20, 62, 39, 145, 171, 174, 162, 237, 89, 82, 111, 185,\n\t\t69, 165, 43, 114, 224, 192, 112, 235, 127, 115, 73, 246, 65,\n\t\t118, 10, 212, 97, 186, 244, 55, 47, 19, 107, 115, 149, 84,\n\t\t193, 181, 160, 185, 91, 110, 33, 245, 74, 85, 202, 229, 36,\n\t\t213, 86, 165, 169, 41, 182, 10, 183, 38, 39, 37, 245, 59,\n\t\t32, 223, 134, 231, 25, 193, 247, 252, 3, 58, 83, 150, 46,\n\t\t203, 216, 220, 142, 220, 209, 134, 30, 65, 110, 153, 52, 70,\n\t\t17, 52, 147, 223, 105, 106, 86, 210, 210, 39, 38, 116, 186,\n\t\t210, 154, 223, 233, 255, 175, 251, 191, 53, 162, 121, 30,\n\t\t58, 100, 105, 174, 102, 117, 58, 108, 117, 168, 255, 27, 171,\n\t\t171, 194, 48, 166, 100, 149, 246, 180, 54, 247, 48, 35, 48,\n\t\t151, 173, 83, 202, 144, 225, 88, 199, 222, 65, 133, 139, 25,\n\t\t116, 215, 46, 137, 197, 150, 176, 200, 146, 65, 192, 245,\n\t\t176, 105, 149, 228, 160, 56, 25, 128, 11, 0, 48, 181, 232,\n\t\t171, 215, 200, 249, 84, 133, 1, 194, 214, 58, 110, 163, 145,\n\t\t249, 80, 151, 54, 247, 110, 132, 61, 202, 27, 248, 3, 21,\n\t\t252, 74, 58, 34, 255, 41, 51, 115, 46, 187, 150, 3, 153, 122,\n\t\t140, 254, 39, 229, 118, 106, 215, 101, 171, 182, 188, 220,\n\t\t125, 20, 242, 34, 30, 237, 46, 141, 90, 51, 68, 134, 13, 242,\n\t\t123, 140, 111, 185, 61, 130, 252, 198, 197, 73, 128, 250,\n\t\t42, 209, 15, 70, 84, 10, 218, 100, 184, 102, 169, 78, 128,\n\t\t254, 184, 82, 63, 220, 236, 54, 15, 215, 107, 245, 122, 189,\n\t\t134, 142, 42, 174, 51, 58, 66, 59, 113, 172, 171, 1, 122,\n\t\t97, 160, 162, 110, 175, 7, 185, 108, 189, 222, 76, 240, 249,\n\t\t39, 159, 252, 124, 208, 255, 81, 36, 205, 35, 69, 249, 50,\n\t\t29, 41, 48, 172, 65, 254, 62, 23, 153, 156, 182, 99, 144,\n\t\t249, 197, 30, 227, 66, 171, 189, 192, 115, 61, 253, 128, 103,\n\t\t124, 1, 253, 2, 38, 21, 32, 89, 0, 211, 100, 165, 26, 166,\n\t\t130, 230, 32, 217, 128, 54, 118, 116, 42, 63, 57, 91, 124,\n\t\t170, 214, 25, 207, 162, 78, 45, 61, 109, 197, 82, 169, 202,\n\t\t95, 96, 34, 55, 79, 70, 203, 116, 143, 27, 37, 186, 248, 162,\n\t\t99, 209, 24, 22, 149, 210, 196, 221, 55, 137, 51, 249, 226,\n\t\t108, 167, 150, 159, 211, 169, 130, 86, 235, 164, 131, 88,\n\t\t37, 21, 173, 82, 141, 98, 143, 50, 238, 128, 45, 146, 16,\n\t\t98, 153, 75, 43, 18, 178, 164, 248, 129, 137, 3, 207, 13,\n\t\t125, 49, 28, 27, 49, 199, 121, 72, 54, 230, 170, 45, 84, 22,\n\t\t54, 92, 50, 46, 251, 1, 230, 8, 127, 235, 14, 237, 161, 207,\n\t\t30, 193, 221, 176, 188, 103, 254, 29, 72, 51, 153, 65, 226,\n\t\t238, 236, 120, 167, 214, 167, 247, 177, 80, 70, 139, 51, 99,\n\t\t45, 219, 137, 165, 42, 168, 127, 109, 196, 139, 104, 71, 52,\n\t\t75, 202, 158, 80, 213, 19, 89, 201, 210, 174, 159, 80, 98,\n\t\t202, 196, 245, 116, 87, 46, 106, 105, 118, 241, 198, 197,\n\t\t204, 92, 41, 57, 161, 111, 87, 77, 43, 91, 125, 88, 159, 203,\n\t\t67, 75, 168, 180, 36, 36, 75, 104, 102, 113, 60, 167, 211,\n\t\t198, 34, 251, 142, 26, 113, 147, 27, 190, 62, 60, 227, 13,\n\t\t34, 142, 91, 197, 197, 27, 103, 74, 115, 233, 96, 124, 31,\n\t\t85, 171, 102, 5, 65, 7, 44, 96, 150, 163, 166, 8, 54, 109,\n\t\t63, 5, 42, 243, 213, 133, 109, 84, 238, 59, 12, 40, 31, 237,\n\t\t160, 10, 237, 3, 135, 208, 186, 164, 210, 106, 0, 147, 82,\n\t\t85, 226, 214, 104, 159, 4, 165, 193, 29, 67, 31, 153, 149,\n\t\t42, 108, 236, 141, 19, 9, 68, 88, 204, 184, 163, 218, 32,\n\t\t126, 83, 225, 138, 84, 239, 188, 235, 73, 170, 241, 98, 132,\n\t\t101, 241, 154, 61, 146, 40, 253, 49, 145, 239, 59, 46, 138,\n\t\t239, 80, 52, 121, 231, 221, 55, 209, 11, 190, 233, 229, 162,\n\t\t140, 209, 17, 103, 73, 20, 137, 244, 14, 81, 4, 191, 239,\n\t\t231, 192, 245, 252, 192, 11, 169, 126, 252, 100, 242, 182,\n\t\t219, 110, 251, 95, 159, 241, 85, 185, 67, 247, 255, 130, 36,\n\t\t162, 153, 111, 138, 216, 95, 148, 21, 17, 221, 48, 135, 100,\n\t\t241, 22, 73, 83, 222, 249, 65, 85, 253, 96, 22, 177, 227,\n\t\t210, 195, 233, 183, 202, 68, 20, 111, 17, 101, 212, 255, 11,\n\t\t44, 158, 2, 134, 232, 197, 175, 253, 156, 172, 250, 159, 63,\n\t\t127, 158, 189, 239, 223, 166, 227, 239, 23, 25, 79, 35, 196,\n\t\t25, 50, 188, 229, 208, 206, 62, 200, 173, 4, 97, 1, 238, 157,\n\t\t81, 97, 87, 154, 232, 3, 178, 252, 251, 191, 47, 203, 31,\n\t\t40, 20, 62, 46, 171, 133, 39, 84, 231, 41, 85, 254, 61, 71,\n\t\t125, 162, 128, 174, 21, 117, 241, 193, 7, 233, 226, 246, 120,\n\t\t252, 103, 36, 69, 249, 253, 138, 251, 60, 69, 215, 47, 220,\n\t\t173, 40, 210, 253, 23, 116, 93, 121, 158, 91, 25, 245, 249,\n\t\t253, 34, 139, 121, 218, 62, 26, 223, 8, 166, 124, 38, 255,\n\t\t231, 209, 96, 72, 81, 26, 193, 38, 242, 75, 104, 67, 166,\n\t\t29, 131, 202, 69, 116, 110, 233, 81, 237, 180, 169, 70, 101,\n\t\t210, 230, 182, 215, 167, 254, 219, 227, 108, 60, 95, 229,\n\t\t121, 88, 227, 48, 242, 32, 176, 85, 165, 203, 227, 51, 143,\n\t\t27, 170, 154, 214, 85, 187, 206, 198, 143, 27, 90, 127, 179,\n\t\t222, 121, 255, 146, 54, 44, 54, 226, 48, 185, 234, 71, 180,\n\t\t63, 188, 138, 233, 175, 123, 1, 113, 176, 13, 109, 29, 94,\n\t\t48, 157, 128, 152, 202, 162, 176, 238, 201, 59, 8, 68, 232,\n\t\t194, 235, 30, 244, 5, 166, 27, 178, 96, 29, 70, 25, 54, 11,\n\t\t23, 239, 7, 109, 8, 200, 109, 199, 76, 77, 123, 32, 58, 25,\n\t\t123, 40, 242, 53, 122, 41, 207, 69, 143, 20, 74, 162, 116,\n\t\t176, 222, 183, 84, 221, 190, 234, 57, 159, 62, 189, 165, 177,\n\t\t67, 150, 119, 236, 146, 100, 229, 159, 29, 253, 48, 150, 34,\n\t\t82, 84, 205, 219, 90, 166, 235, 24, 182, 100, 27, 174, 178,\n\t\t70, 37, 157, 7, 108, 209, 60, 53, 53, 57, 17, 39, 251, 23,\n\t\t157, 29, 165, 217, 46, 189, 35, 201, 137, 38, 165, 220, 77,\n\t\t173, 187, 147, 244, 53, 36, 231, 101, 221, 186, 85, 211, 85,\n\t\t146, 81, 117, 45, 40, 155, 73, 252, 107, 102, 20, 33, 55,\n\t\t140, 47, 253, 44, 139, 201, 153, 97, 152, 98, 140, 89, 21,\n\t\t114, 195, 64, 35, 11, 152, 127, 14, 224, 103, 171, 44, 232,\n\t\t182, 193, 34, 205, 216, 45, 210, 87, 131, 190, 212, 16, 243,\n\t\t7, 83, 57, 148, 203, 82, 29, 242, 186, 90, 68, 147, 75, 243,\n\t\t177, 64, 29, 243, 99, 78, 134, 138, 83, 126, 164, 182, 219,\n\t\t158, 152, 113, 179, 7, 208, 91, 26, 87, 71, 181, 100, 238,\n\t\t250, 162, 62, 97, 251, 134, 153, 44, 197, 252, 49, 53, 136,\n\t\t37, 105, 61, 89, 139, 212, 174, 59, 182, 219, 14, 172, 236,\n\t\t122, 108, 58, 183, 21, 20, 104, 15, 236, 10, 75, 194, 178,\n\t\t176, 34, 244, 132, 115, 194, 187, 132, 95, 20, 62, 76, 159,\n\t\t62, 195, 81, 98, 132, 108, 237, 22, 160, 138, 113, 168, 209,\n\t\t41, 78, 88, 79, 187, 161, 244, 99, 136, 230, 92, 118, 2, 176,\n\t\t253, 64, 218, 26, 109, 98, 99, 92, 10, 110, 113, 218, 175,\n\t\t82, 149, 81, 226, 240, 125, 187, 192, 111, 246, 99, 206, 87,\n\t\t165, 138, 96, 148, 161, 93, 85, 91, 109, 94, 112, 33, 218,\n\t\t14, 10, 175, 52, 20, 5, 137, 214, 205, 10, 96, 95, 184, 146,\n\t\t141, 81, 148, 96, 169, 44, 83, 61, 85, 46, 75, 152, 228, 187,\n\t\t231, 67, 60, 169, 209, 197, 175, 82, 133, 68, 213, 140, 19,\n\t\t192, 199, 62, 137, 45, 233, 223, 44, 17, 41, 10, 221, 182,\n\t\t233, 57, 144, 78, 38, 21, 9, 159, 96, 85, 148, 113, 201, 194,\n\t\t147, 87, 111, 114, 142, 85, 221, 212, 65, 28, 51, 227, 116,\n\t\t217, 139, 131, 77, 234, 105, 98, 89, 182, 77, 47, 101, 102,\n\t\t10, 203, 242, 99, 162, 133, 239, 48, 140, 59, 176, 37, 170,\n\t\t253, 11, 235, 182, 222, 222, 122, 17, 101, 76, 21, 171, 26,\n\t\t105, 200, 54, 30, 79, 72, 10, 249, 75, 219, 182, 44, 186,\n\t\t41, 227, 169, 25, 162, 255, 34, 182, 229, 6, 209, 104, 21,\n\t\t243, 52, 81, 164, 196, 55, 55, 61, 201, 191, 136, 98, 255,\n\t\t111, 84, 245, 233, 152, 217, 255, 134, 170, 162, 180, 25,\n\t\t123, 122, 132, 243, 138, 197, 54, 131, 124, 127, 76, 184,\n\t\t67, 120, 17, 157, 181, 65, 160, 219, 144, 122, 32, 177, 176,\n\t\t198, 129, 153, 157, 199, 252, 15, 172, 46, 1, 183, 226, 85,\n\t\t152, 253, 142, 31, 98, 42, 42, 15, 124, 167, 95, 105, 180,\n\t\t195, 20, 1, 134, 151, 56, 76, 24, 32, 149, 102, 155, 137,\n\t\t5, 180, 73, 95, 176, 245, 199, 108, 189, 127, 30, 84, 133,\n\t\t63, 92, 94, 167, 55, 129, 203, 87, 213, 233, 88, 210, 246,\n\t\t69, 195, 84, 85, 115, 88, 2, 242, 181, 113, 197, 86, 198,\n\t\t233, 218, 113, 94, 74, 122, 88, 39, 168, 163, 219, 253, 79,\n\t\t194, 57, 208, 147, 180, 244, 45, 71, 101, 68, 121, 16, 65,\n\t\t201, 204, 227, 129, 227, 152, 46, 18, 9, 221, 49, 82, 124,\n\t\t72, 85, 189, 118, 85, 81, 170, 109, 143, 150, 242, 169, 84,\n\t\t254, 227, 68, 199, 61, 50, 242, 108, 12, 58, 7, 243, 62, 32,\n\t\t64, 118, 102, 40, 210, 120, 1, 179, 140, 121, 197, 38, 240,\n\t\t126, 193, 131, 105, 243, 5, 155, 138, 217, 35, 104, 48, 6,\n\t\t208, 246, 224, 137, 133, 95, 172, 178, 168, 86, 126, 14, 229,\n\t\t146, 168, 225, 198, 37, 219, 72, 168, 171, 252, 242, 123,\n\t\t142, 57, 126, 81, 72, 151, 85, 181, 192, 192, 28, 13, 195,\n\t\t76, 123, 105, 140, 36, 91, 164, 211, 18, 142, 37, 10, 190,\n\t\t106, 149, 32, 203, 127, 37, 85, 41, 68, 35, 28, 255, 177,\n\t\t127, 62, 148, 57, 195, 198, 192, 3, 47, 10, 210, 219, 152,\n\t\t10, 123, 125, 180, 106, 142, 119, 187, 233, 114, 243, 168,\n\t\t100, 154, 56, 165, 197, 106, 154, 40, 201, 146, 42, 202, 90,\n\t\t58, 29, 67, 42, 60, 66, 58, 168, 239, 198, 43, 97, 40, 242,\n\t\t186, 135, 98, 16, 148, 204, 230, 144, 79, 209, 231, 244, 57,\n\t\t42, 171, 0, 167, 213, 186, 150, 88, 225, 112, 10, 99, 124,\n\t\t5, 19, 24, 52, 167, 75, 105, 65, 126, 243, 218, 251, 227,\n\t\t36, 105, 234, 83, 134, 49, 65, 223, 232, 132, 97, 76, 233,\n\t\t102, 146, 196, 239, 34, 76, 179, 121, 27, 215, 111, 214, 196,\n\t\t23, 29, 239, 63, 69, 135, 232, 152, 102, 212, 77, 115, 70,\n\t\t81, 102, 76, 179, 110, 104, 49, 85, 53, 144, 186, 244, 146,\n\t\t175, 110, 224, 16, 17, 25, 255, 53, 183, 39, 86, 185, 61,\n\t\t49, 84, 80, 49, 143, 230, 101, 49, 240, 132, 169, 100, 16,\n\t\t207, 199, 242, 198, 202, 62, 216, 14, 79, 51, 179, 159, 145,\n\t\t29, 79, 205, 185, 167, 103, 95, 51, 187, 37, 165, 101, 233,\n\t\t179, 238, 255, 96, 78, 38, 255, 18, 91, 40, 199, 133, 139,\n\t\t74, 223, 160, 213, 32, 205, 206, 204, 104, 180, 90, 202, 221,\n\t\t50, 75, 235, 141, 103, 77, 195, 80, 231, 100, 229, 98, 188,\n\t\t188, 16, 251, 23, 66, 251, 151, 51, 146, 155, 196, 49, 103,\n\t\t171, 194, 172, 112, 183, 240, 144, 240, 106, 58, 154, 190,\n\t\t91, 248, 160, 240, 49, 225, 51, 194, 31, 9, 127, 73, 159,\n\t\t90, 99, 158, 9, 201, 165, 112, 205, 172, 225, 35, 235, 192,\n\t\t227, 27, 197, 240, 120, 241, 63, 27, 165, 193, 6, 204, 145,\n\t\t168, 17, 121, 189, 88, 30, 99, 147, 57, 43, 219, 104, 125,\n\t\t127, 176, 94, 180, 209, 252, 250, 134, 191, 105, 113, 67,\n\t\t109, 218, 11, 11, 29, 250, 129, 245, 65, 250, 89, 6, 20, 137,\n\t\t62, 148, 68, 231, 217, 68, 120, 104, 36, 21, 183, 77, 140,\n\t\t19, 79, 127, 148, 175, 145, 74, 12, 12, 5, 251, 73, 190, 163,\n\t\t166, 179, 21, 54, 246, 242, 237, 159, 225, 171, 249, 75, 142,\n\t\t162, 130, 250, 16, 237, 235, 155, 124, 104, 143, 185, 52,\n\t\t192, 131, 107, 15, 150, 203, 163, 216, 93, 139, 110, 23, 28,\n\t\t3, 167, 117, 189, 106, 27, 206, 176, 84, 32, 116, 112, 14,\n\t\t119, 214, 47, 63, 174, 154, 100, 147, 47, 109, 82, 162, 21,\n\t\t133, 13, 92, 162, 128, 108, 116, 57, 139, 3, 149, 112, 193,\n\t\t71, 75, 216, 224, 82, 218, 141, 102, 233, 164, 219, 38, 121,\n\t\t4, 37, 30, 50, 205, 3, 171, 206, 59, 231, 238, 37, 249, 200,\n\t\t167, 59, 50, 190, 238, 73, 167, 219, 45, 20, 186, 189, 66,\n\t\t193, 113, 232, 103, 228, 46, 11, 255, 219, 25, 211, 238, 252,\n\t\t21, 93, 183, 204, 47, 20, 104, 149, 110, 97, 141, 85, 1, 188,\n\t\t8, 176, 119, 124, 54, 28, 251, 210, 194, 33, 240, 221, 5,\n\t\t140, 27, 164, 52, 86, 157, 17, 219, 16, 19, 207, 115, 209,\n\t\t65, 43, 10, 184, 215, 118, 96, 114, 3, 99, 208, 28, 55, 22,\n\t\t112, 243, 22, 184, 248, 6, 80, 32, 244, 54, 42, 161, 254,\n\t\t127, 188, 180, 144, 148, 162, 134, 44, 171, 166, 18, 21, 13,\n\t\t210, 149, 177, 132, 82, 234, 182, 34, 33, 226, 55, 195, 52,\n\t\t129, 186, 165, 251, 113, 52, 11, 221, 250, 148, 134, 210,\n\t\t74, 33, 158, 136, 206, 150, 52, 114, 35, 203, 7, 77, 188,\n\t\t161, 121, 187, 97, 33, 209, 116, 254, 4, 19, 228, 32, 172,\n\t\t202, 183, 228, 199, 84, 209, 192, 83, 3, 216, 163, 167, 180,\n\t\t96, 137, 126, 63, 117, 2, 44, 30, 39, 174, 211, 45, 89, 190,\n\t\t51, 158, 140, 206, 66, 90, 90, 152, 81, 186, 142, 255, 203,\n\t\t115, 203, 67, 112, 189, 205, 76, 117, 84, 18, 27, 193, 233,\n\t\t104, 64, 182, 92, 216, 175, 120, 84, 197, 46, 113, 152, 238,\n\t\t188, 63, 154, 142, 0, 10, 75, 97, 48, 17, 55, 30, 110, 176,\n\t\t245, 202, 210, 213, 109, 91, 119, 116, 59, 26, 137, 151, 82,\n\t\t42, 201, 167, 122, 92, 231, 94, 142, 231, 163, 55, 90, 46,\n\t\t127, 63, 172, 87, 92, 21, 4, 87, 177, 155, 88, 60, 51, 49,\n\t\t7, 243, 154, 141, 35, 233, 168, 20, 209, 150, 54, 218, 41,\n\t\t32, 94, 244, 176, 112, 130, 94, 187, 199, 40, 177, 112, 101,\n\t\t86, 244, 234, 222, 8, 56, 221, 192, 231, 203, 230, 105, 134,\n\t\t199, 217, 108, 227, 13, 18, 148, 71, 111, 132, 223, 12, 225,\n\t\t44, 66, 131, 27, 233, 42, 186, 82, 52, 18, 84, 7, 231, 102,\n\t\t153, 71, 19, 41, 81, 83, 23, 77, 41, 41, 202, 169, 60, 138,\n\t\t178, 247, 180, 48, 158, 157, 90, 61, 220, 124, 72, 86, 144,\n\t\t28, 35, 88, 187, 138, 223, 210, 139, 175, 1, 22, 45, 75, 209,\n\t\t140, 10, 57, 139, 182, 20, 63, 10, 119, 243, 120, 208, 125,\n\t\t129, 106, 154, 183, 17, 213, 52, 246, 101, 39, 68, 73, 178,\n\t\t92, 14, 191, 48, 190, 128, 138, 205, 195, 88, 118, 13, 58,\n\t\t243, 15, 65, 138, 0, 139, 24, 124, 67, 191, 67, 199, 207,\n\t\t5, 122, 143, 64, 243, 199, 110, 172, 218, 134, 40, 116, 54,\n\t\t214, 81, 25, 100, 48, 198, 243, 101, 187, 12, 35, 252, 122,\n\t\t74, 86, 225, 111, 145, 132, 104, 207, 168, 221, 241, 246,\n\t\t29, 119, 148, 127, 150, 202, 85, 50, 250, 190, 105, 120, 134,\n\t\t249, 13, 195, 248, 134, 169, 83, 145, 24, 9, 102, 206, 188,\n\t\t157, 11, 93, 215, 252, 14, 18, 63, 69, 180, 118, 247, 245,\n\t\t15, 118, 175, 214, 200, 167, 68, 116, 208, 48, 19, 166, 241,\n\t\t5, 93, 255, 2, 43, 124, 93, 215, 79, 47, 192, 69, 63, 198,\n\t\t228, 247, 11, 8, 218, 207, 105, 58, 211, 148, 214, 141, 52,\n\t\t44, 226, 148, 101, 27, 15, 32, 84, 184, 200, 76, 165, 249,\n\t\t225, 0, 61, 82, 106, 241, 96, 134, 144, 93, 2, 2, 125, 225,\n\t\t218, 89, 60, 20, 59, 33, 90, 185, 109, 236, 81, 248, 201,\n\t\t63, 206, 18, 83, 59, 169, 97, 83, 117, 73, 156, 136, 170,\n\t\t153, 45, 31, 115, 75, 89, 45, 29, 76, 194, 225, 103, 168,\n\t\t149, 153, 183, 121, 165, 39, 185, 116, 144, 166, 69, 19, 107,\n\t\t244, 104, 66, 141, 99, 61, 97, 4, 206, 12, 55, 134, 111, 126,\n\t\t60, 149, 8, 15, 243, 184, 176, 239, 210, 151, 243, 179, 168,\n\t\t71, 223, 75, 145, 49, 82, 205, 15, 240, 85, 195, 73, 191,\n\t\t196, 120, 168, 90, 120, 30, 160, 72, 1, 161, 84, 30, 150,\n\t\t208, 158, 191, 58, 52, 159, 79, 239, 206, 230, 119, 87, 82,\n\t\t102, 213, 76, 86, 186, 199, 110, 118, 131, 251, 14, 29, 59,\n\t\t83, 212, 180, 34, 44, 208, 220, 122, 177, 119, 247, 213, 167,\n\t\t14, 230, 172, 78, 37, 26, 173, 116, 30, 91, 90, 158, 206,\n\t\t252, 191, 84, 78, 152, 24, 249, 240, 57, 127, 77, 124, 37,\n\t\t237, 11, 49, 96, 33, 83, 184, 43, 174, 56, 198, 12, 56, 109,\n\t\t8, 95, 141, 160, 160, 221, 16, 127, 74, 145, 53, 247, 233,\n\t\t53, 213, 145, 105, 107, 45, 232, 99, 122, 250, 108, 165, 251,\n\t\t156, 136, 170, 169, 36, 170, 19, 66, 215, 104, 45, 18, 57,\n\t\t242, 190, 74, 119, 52, 174, 15, 108, 16, 39, 0, 163, 184,\n\t\t188, 209, 235, 48, 156, 115, 139, 155, 236, 27, 18, 242, 110,\n\t\t2, 129, 4, 238, 156, 114, 163, 89, 146, 66, 236, 98, 145,\n\t\t14, 19, 119, 116, 6, 8, 62, 86, 167, 255, 228, 200, 198, 29,\n\t\t76, 108, 75, 28, 100, 129, 168, 176, 56, 136, 18, 84, 184,\n\t\t235, 245, 122, 221, 101, 180, 182, 252, 73, 162, 213, 214,\n\t\t105, 178, 106, 163, 101, 214, 61, 55, 238, 120, 168, 219,\n\t\t239, 13, 253, 21, 255, 17, 222, 31, 140, 125, 71, 71, 244,\n\t\t127, 18, 12, 111, 167, 58, 98, 119, 196, 172, 69, 251, 252,\n\t\t46, 1, 42, 119, 208, 120, 183, 139, 180, 191, 225, 17, 78,\n\t\t206, 18, 149, 174, 196, 101, 32, 58, 8, 110, 108, 103, 96,\n\t\t34, 95, 58, 252, 179, 93, 88, 95, 8, 39, 87, 215, 186, 43,\n\t\t87, 87, 72, 174, 182, 178, 212, 121, 103, 36, 26, 71, 41,\n\t\t215, 218, 202, 6, 14, 39, 146, 84, 174, 121, 208, 62, 11,\n\t\t190, 151, 66, 173, 51, 127, 15, 51, 65, 158, 91, 98, 43, 96,\n\t\t228, 72, 185, 229, 236, 100, 174, 50, 35, 46, 173, 92, 175,\n\t\t210, 189, 108, 172, 56, 21, 179, 183, 103, 218, 35, 216, 149,\n\t\t96, 75, 201, 134, 190, 53, 62, 25, 65, 196, 26, 21, 80, 0,\n\t\t65, 183, 185, 160, 80, 125, 164, 50, 246, 182, 191, 121, 219,\n\t\t227, 95, 126, 28, 45, 173, 174, 24, 87, 127, 229, 106, 163,\n\t\t255, 201, 173, 239, 221, 186, 237, 231, 80, 239, 218, 93,\n\t\t183, 108, 63, 113, 98, 251, 45, 187, 98, 179, 69, 203, 154,\n\t\t156, 180, 172, 226, 233, 32, 72, 14, 114, 39, 86, 153, 76,\n\t\t231, 65, 174, 249, 48, 178, 198, 7, 227, 247, 32, 178, 166,\n\t\t28, 62, 37, 136, 86, 103, 218, 49, 76, 157, 40, 132, 88, 98,\n\t\t249, 96, 51, 40, 100, 140, 163, 186, 251, 56, 155, 208, 254,\n\t\t212, 76, 233, 170, 85, 184, 6, 158, 205, 94, 148, 101, 200,\n\t\t157, 57, 43, 94, 216, 101, 155, 74, 158, 36, 20, 197, 52,\n\t\t165, 204, 115, 188, 136, 94, 142, 88, 102, 77, 79, 57, 146,\n\t\t81, 45, 79, 95, 53, 25, 79, 161, 101, 54, 155, 253, 71, 38,\n\t\t130, 189, 44, 125, 60, 61, 250, 73, 79, 28, 29, 215, 114,\n\t\t145, 179, 190, 40, 37, 172, 83, 243, 214, 140, 127, 74, 145,\n\t\t244, 156, 42, 121, 105, 53, 151, 161, 99, 95, 173, 185, 110,\n\t\t3, 226, 190, 201, 20, 176, 128, 141, 248, 34, 25, 240, 235,\n\t\t136, 247, 49, 40, 14, 125, 138, 205, 208, 141, 40, 228, 130,\n\t\t220, 150, 208, 113, 88, 0, 196, 65, 238, 21, 28, 122, 2, 251,\n\t\t143, 36, 42, 178, 82, 205, 162, 149, 148, 15, 238, 191, 2,\n\t\t247, 239, 133, 220, 95, 232, 119, 89, 94, 109, 104, 239, 86,\n\t\t6, 200, 84, 151, 3, 82, 13, 97, 168, 214, 99, 22, 49, 25,\n\t\t146, 221, 93, 194, 9, 139, 62, 129, 101, 201, 150, 44, 229,\n\t\t183, 126, 75, 177, 104, 65, 198, 111, 121, 203, 101, 123,\n\t\t222, 86, 168, 156, 124, 232, 100, 165, 128, 69, 67, 125, 133,\n\t\t170, 139, 28, 174, 152, 187, 83, 20, 170, 210, 103, 232, 55,\n\t\t78, 159, 166, 53, 51, 84, 253, 223, 191, 255, 178, 61, 111,\n\t\t139, 110, 27, 3, 227, 243, 216, 182, 104, 74, 143, 68, 244,\n\t\t119, 108, 208, 64, 24, 159, 80, 136, 161, 79, 7, 39, 133,\n\t\t129, 231, 7, 204, 23, 36, 158, 8, 145, 242, 197, 107, 96,\n\t\t181, 51, 132, 197, 239, 111, 133, 213, 160, 79, 94, 133, 126,\n\t\t87, 112, 133, 123, 33, 222, 214, 29, 136, 80, 121, 206, 247,\n\t\t65, 31, 66, 73, 225, 179, 93, 41, 24, 25, 114, 214, 233, 15,\n\t\t215, 39, 254, 5, 160, 198, 9, 217, 41, 183, 163, 106, 200,\n\t\t91, 148, 23, 27, 237, 93, 210, 60, 240, 226, 53, 134, 184,\n\t\t126, 17, 48, 46, 133, 51, 79, 152, 185, 30, 17, 75, 213, 74,\n\t\t245, 29, 105, 42, 151, 137, 38, 118, 48, 22, 19, 113, 48,\n\t\t131, 160, 55, 105, 150, 101, 107, 245, 217, 157, 10, 27, 95,\n\t\t14, 137, 237, 107, 219, 226, 33, 86, 86, 118, 206, 214, 53,\n\t\t219, 178, 180, 5, 61, 122, 116, 191, 78, 154, 154, 101, 91,\n\t\t218, 252, 206, 113, 93, 36, 145, 204, 120, 38, 66, 68, 125,\n\t\t124, 231, 60, 219, 219, 36, 250, 254, 163, 81, 253, 197, 9,\n\t\t17, 99, 71, 86, 33, 253, 67, 74, 167, 192, 92, 131, 0, 7,\n\t\t84, 81, 142, 210, 159, 84, 232, 79, 31, 172, 97, 156, 250,\n\t\t85, 91, 83, 53, 235, 224, 205, 170, 118, 20, 70, 144, 171,\n\t\t31, 204, 89, 181, 157, 59, 107, 118, 246, 65, 102, 124, 57,\n\t\t170, 169, 55, 31, 180, 104, 21, 251, 152, 157, 144, 181, 37,\n\t\t86, 251, 72, 124, 1, 59, 65, 36, 18, 56, 120, 33, 126, 132,\n\t\t29, 93, 210, 228, 132, 253, 225, 131, 216, 20, 21, 132, 176,\n\t\t124, 84, 81, 8, 105, 105, 41, 140, 25, 110, 83, 63, 204, 53,\n\t\t200, 48, 25, 28, 176, 69, 153, 183, 207, 45, 66, 128, 54,\n\t\t224, 9, 113, 36, 247, 93, 132, 19, 146, 110, 84, 101, 47,\n\t\t93, 183, 46, 241, 75, 246, 80, 38, 150, 142, 128, 66, 31,\n\t\t244, 191, 169, 234, 146, 4, 112, 187, 146, 136, 58, 136, 13,\n\t\t123, 87, 95, 182, 252, 32, 67, 109, 14, 61, 148, 107, 238,\n\t\t182, 67, 19, 31, 78, 206, 165, 82, 190, 165, 106, 41, 203,\n\t\t53, 34, 166, 173, 126, 120, 105, 229, 194, 136, 11, 102, 244,\n\t\t239, 175, 86, 86, 87, 86, 86, 207, 113, 90, 249, 13, 56, 25,\n\t\t17, 170, 131, 62, 32, 60, 188, 142, 147, 49, 184, 66, 142,\n\t\t246, 28, 1, 68, 20, 194, 229, 94, 232, 101, 241, 65, 202,\n\t\t249, 6, 36, 160, 97, 202, 249, 6, 44, 32, 22, 127, 49, 224,\n\t\t251, 97, 34, 63, 79, 56, 7, 0, 105, 97, 0, 192, 218, 168,\n\t\t150, 60, 244, 237, 131, 11, 11, 7, 23, 142, 50, 168, 149,\n\t\t59, 232, 196, 208, 72, 166, 183, 143, 31, 167, 50, 179, 66,\n\t\t20, 140, 243, 36, 134, 21, 59, 98, 105, 211, 154, 21, 177,\n\t\t21, 28, 35, 121, 140, 233, 17, 66, 155, 222, 160, 138, 29,\n\t\t201, 196, 95, 171, 197, 108, 185, 115, 54, 39, 71, 20, 95,\n\t\t83, 173, 254, 189, 140, 19, 228, 236, 61, 19, 119, 174, 44,\n\t\t192, 15, 236, 96, 80, 44, 40, 230, 90, 13, 75, 107, 152, 117,\n\t\t124, 229, 211, 93, 254, 139, 150, 249, 182, 120, 70, 181,\n\t\t212, 87, 215, 102, 198, 177, 146, 208, 245, 168, 95, 11, 121,\n\t\t130, 254, 108, 121, 153, 227, 137, 114, 191, 41, 166, 163,\n\t\t103, 92, 72, 10, 5, 161, 198, 240, 104, 73, 137, 25, 107,\n\t\t75, 109, 159, 119, 73, 200, 24, 84, 90, 84, 133, 131, 140,\n\t\t111, 111, 172, 18, 78, 15, 213, 97, 56, 19, 23, 255, 170,\n\t\t13, 58, 41, 33, 239, 244, 181, 145, 110, 45, 125, 227, 243,\n\t\t23, 147, 173, 23, 30, 22, 127, 36, 246, 159, 178, 157, 91,\n\t\t122, 75, 245, 120, 6, 9, 96, 28, 179, 38, 95, 212, 62, 70,\n\t\t7, 88, 103, 182, 120, 96, 146, 148, 142, 148, 208, 199, 247,\n\t\t141, 79, 47, 205, 123, 127, 114, 184, 41, 89, 150, 212, 124,\n\t\t144, 72, 95, 173, 79, 238, 156, 88, 203, 236, 163, 227, 244,\n\t\t114, 239, 88, 123, 50, 158, 241, 83, 197, 217, 101, 199, 9,\n\t\t241, 27, 129, 235, 172, 23, 182, 243, 65, 228, 45, 147, 79,\n\t\t185, 244, 198, 76, 229, 220, 213, 235, 95, 10, 249, 179, 204,\n\t\t37, 147, 32, 138, 211, 214, 54, 43, 173, 22, 92, 38, 166,\n\t\t220, 206, 2, 71, 81, 184, 234, 185, 22, 228, 31, 104, 81,\n\t\t115, 103, 54, 187, 51, 234, 241, 156, 153, 167, 88, 107, 44,\n\t\t135, 109, 18, 230, 158, 191, 22, 117, 244, 126, 250, 220,\n\t\t246, 8, 207, 21, 132, 246, 60, 71, 139, 168, 132, 92, 183,\n\t\t44, 78, 157, 195, 103, 111, 160, 129, 0, 240, 75, 8, 158,\n\t\t28, 27, 152, 161, 119, 137, 57, 22, 92, 69, 149, 81, 18, 34,\n\t\t167, 13, 78, 192, 243, 13, 170, 239, 41, 111, 149, 241, 182,\n\t\t169, 82, 19, 139, 186, 90, 48, 101, 18, 232, 17, 21, 137,\n\t\t113, 243, 45, 48, 122, 48, 1, 235, 168, 25, 23, 69, 55, 18,\n\t\t16, 217, 44, 40, 170, 140, 20, 250, 43, 53, 172, 109, 219,\n\t\t82, 111, 237, 179, 200, 108, 126, 234, 160, 45, 233, 234,\n\t\t152, 46, 219, 25, 120, 11, 247, 27, 217, 181, 217, 241, 233,\n\t\t61, 211, 99, 196, 208, 125, 61, 166, 153, 145, 17, 225, 153,\n\t\t118, 206, 192, 215, 21, 77, 78, 86, 163, 70, 45, 61, 115,\n\t\t85, 225, 100, 59, 55, 131, 245, 169, 42, 109, 80, 9, 250,\n\t\t86, 42, 169, 33, 215, 231, 31, 80, 45, 59, 15, 214, 127, 176,\n\t\t122, 19, 31, 175, 163, 225, 82, 21, 187, 205, 167, 142, 118,\n\t\t149, 160, 31, 178, 208, 180, 107, 156, 72, 230, 189, 110,\n\t\t211, 61, 237, 186, 239, 205, 28, 45, 29, 97, 166, 168, 254,\n\t\t143, 30, 62, 253, 48, 122, 144, 149, 143, 148, 142, 210, 10,\n\t\t244, 120, 147, 86, 136, 56, 215, 112, 146, 196, 51, 180, 130,\n\t\t176, 238, 103, 230, 227, 192, 22, 144, 105, 7, 227, 212, 96,\n\t\t52, 168, 130, 48, 195, 178, 9, 48, 195, 237, 0, 226, 129,\n\t\t133, 118, 133, 83, 15, 248, 45, 104, 39, 244, 249, 150, 168,\n\t\t36, 79, 159, 63, 41, 173, 3, 104, 174, 187, 36, 201, 54, 52,\n\t\t55, 31, 130, 166, 125, 154, 173, 168, 54, 171, 198, 204, 168,\n\t\t162, 154, 243, 38, 193, 81, 51, 166, 210, 29, 227, 9, 186,\n\t\t149, 44, 189, 175, 83, 155, 194, 154, 151, 243, 118, 208,\n\t\t143, 134, 167, 106, 157, 114, 86, 92, 156, 41, 52, 237, 68,\n\t\t185, 56, 43, 34, 84, 91, 30, 65, 129, 138, 194, 119, 162,\n\t\t150, 20, 4, 146, 21, 227, 39, 96, 231, 122, 247, 82, 199,\n\t\t212, 61, 250, 79, 179, 58, 181, 252, 188, 110, 232, 51, 139,\n\t\t197, 76, 118, 182, 168, 145, 33, 254, 218, 34, 139, 217, 236,\n\t\t8, 251, 133, 107, 133, 155, 132, 187, 46, 245, 172, 66, 78,\n\t\t43, 40, 246, 252, 78, 216, 51, 168, 128, 201, 131, 78, 131,\n\t\t3, 214, 20, 134, 215, 46, 18, 159, 139, 116, 204, 65, 241,\n\t\t44, 55, 208, 153, 108, 121, 182, 120, 81, 40, 206, 150, 211,\n\t\t157, 218, 92, 214, 137, 101, 167, 191, 166, 200, 210, 212,\n\t\t126, 73, 193, 162, 228, 102, 93, 103, 74, 58, 185, 205, 178,\n\t\t20, 81, 73, 229, 253, 242, 252, 71, 109, 117, 156, 54, 32,\n\t\t217, 86, 203, 146, 245, 220, 103, 183, 241, 85, 101, 58, 91,\n\t\t156, 157, 45, 102, 167, 233, 244, 86, 235, 212, 212, 114,\n\t\t26, 169, 114, 19, 33, 183, 148, 36, 83, 238, 182, 37, 17,\n\t\t233, 98, 164, 153, 75, 205, 228, 236, 223, 86, 237, 174, 42,\n\t\t210, 5, 157, 133, 126, 92, 113, 164, 221, 0, 146, 228, 118,\n\t\t224, 203, 100, 154, 192, 40, 128, 234, 134, 247, 175, 0, 79,\n\t\t16, 26, 228, 151, 181, 195, 45, 150, 159, 57, 178, 205, 142,\n\t\t210, 103, 179, 202, 192, 53, 215, 46, 123, 243, 253, 79, 138,\n\t\t166, 136, 199, 232, 139, 31, 251, 0, 43, 89, 190, 21, 31,\n\t\t148, 233, 94, 219, 67, 16, 191, 112, 233, 11, 255, 62, 198,\n\t\t222, 124, 212, 203, 102, 61, 167, 225, 177, 50, 248, 183,\n\t\t134, 27, 112, 192, 74, 22, 88, 206, 45, 155, 243, 225, 190,\n\t\t44, 218, 11, 39, 168, 44, 186, 95, 184, 149, 246, 137, 81,\n\t\t161, 125, 23, 26, 221, 106, 85, 54, 108, 141, 63, 195, 177,\n\t\t246, 51, 62, 161, 143, 154, 146, 212, 133, 55, 71, 159, 116,\n\t\t87, 186, 123, 195, 214, 199, 54, 108, 161, 55, 111, 216, 60,\n\t\t177, 97, 107, 251, 21, 30, 221, 113, 108, 225, 21, 85, 164,\n\t\t146, 235, 10, 150, 126, 194, 242, 247, 54, 121, 166, 32, 31,\n\t\t241, 56, 168, 223, 161, 154, 194, 126, 97, 73, 120, 158, 240,\n\t\t66, 225, 65, 144, 81, 175, 216, 139, 114, 72, 241, 1, 88,\n\t\t203, 159, 35, 87, 10, 79, 168, 143, 205, 141, 129, 215, 147,\n\t\t202, 5, 152, 132, 193, 22, 88, 249, 207, 244, 175, 254, 160,\n\t\t127, 141, 103, 120, 255, 114, 199, 252, 254, 43, 37, 130,\n\t\t209, 118, 213, 16, 147, 87, 17, 114, 85, 146, 74, 251, 135,\n\t\t75, 178, 35, 151, 14, 211, 93, 154, 88, 46, 100, 174, 78,\n\t\t101, 110, 73, 199, 188, 74, 42, 230, 164, 208, 190, 255, 138,\n\t\t46, 23, 205, 53, 69, 28, 139, 137, 74, 124, 195, 175, 13,\n\t\t47, 32, 229, 5, 114, 42, 179, 148, 51, 147, 110, 38, 85, 209,\n\t\t51, 63, 250, 73, 250, 161, 194, 98, 185, 95, 135, 62, 47,\n\t\t204, 209, 62, 120, 171, 240, 50, 225, 92, 232, 225, 168, 206,\n\t\t144, 170, 87, 172, 146, 208, 210, 7, 205, 143, 5, 161, 177,\n\t\t167, 205, 8, 136, 65, 169, 15, 148, 48, 233, 32, 76, 71, 136,\n\t\t115, 186, 248, 102, 181, 253, 19, 238, 87, 154, 197, 203,\n\t\t108, 164, 226, 203, 53, 43, 109, 105, 146, 74, 91, 166, 44,\n\t\t43, 82, 127, 181, 85, 209, 173, 188, 171, 69, 84, 227, 48,\n\t\t82, 84, 201, 148, 52, 133, 76, 77, 74, 186, 104, 202, 145,\n\t\t227, 223, 174, 236, 245, 250, 159, 17, 145, 20, 232, 34, 70,\n\t\t134, 47, 137, 162, 67, 191, 21, 143, 75, 138, 220, 251, 137,\n\t\t118, 247, 255, 16, 45, 143, 132, 25, 124, 214, 210, 98, 154,\n\t\t45, 91, 10, 96, 73, 201, 210, 209, 187, 74, 26, 240, 91, 220,\n\t\t138, 104, 125, 179, 68, 37, 62, 122, 9, 72, 142, 78, 70, 142,\n\t\t143, 23, 34, 34, 150, 60, 137, 254, 97, 209, 9, 36, 89, 212,\n\t\t117, 81, 150, 2, 231, 39, 216, 251, 207, 60, 239, 148, 1,\n\t\t145, 49, 94, 83, 158, 47, 105, 209, 57, 125, 78, 120, 14,\n\t\t237, 37, 183, 83, 121, 251, 165, 156, 95, 56, 58, 140, 223,\n\t\t2, 255, 96, 155, 142, 3, 54, 154, 161, 162, 117, 115, 23,\n\t\t242, 219, 108, 143, 141, 224, 173, 133, 123, 42, 85, 207,\n\t\t15, 46, 221, 157, 3, 2, 10, 150, 240, 60, 131, 46, 133, 55,\n\t\t29, 210, 18, 15, 211, 11, 128, 252, 155, 199, 157, 77, 239,\n\t\t170, 52, 118, 198, 230, 78, 236, 222, 115, 170, 49, 117, 108,\n\t\t75, 25, 54, 97, 93, 153, 57, 57, 77, 215, 51, 38, 125, 55,\n\t\t205, 98, 235, 224, 96, 223, 220, 209, 153, 185, 218, 158,\n\t\t90, 180, 144, 95, 24, 159, 240, 127, 125, 68, 185, 224, 234,\n\t\t9, 183, 198, 80, 133, 152, 234, 38, 86, 159, 197, 149, 162,\n\t\t39, 173, 254, 223, 59, 137, 113, 79, 245, 36, 55, 170, 39,\n\t\t247, 211, 159, 190, 206, 73, 236, 138, 105, 68, 211, 85, 53,\n\t\t186, 147, 110, 223, 47, 139, 69, 36, 58, 249, 253, 131, 157,\n\t\t79, 248, 150, 17, 177, 12, 79, 139, 186, 121, 219, 81, 100,\n\t\t165, 198, 126, 101, 86, 179, 116, 221, 218, 202, 150, 172,\n\t\t140, 101, 44, 139, 131, 252, 11, 136, 153, 248, 220, 144,\n\t\t107, 20, 16, 200, 9, 79, 80, 36, 182, 4, 147, 52, 8, 50, 140,\n\t\t169, 195, 15, 226, 65, 75, 188, 76, 37, 11, 209, 87, 254,\n\t\t73, 179, 165, 108, 1, 152, 83, 100, 35, 85, 221, 226, 33,\n\t\t113, 235, 47, 220, 183, 85, 20, 247, 253, 12, 177, 69, 124,\n\t\t250, 34, 195, 217, 230, 26, 24, 191, 105, 244, 89, 201, 210,\n\t\t111, 62, 77, 149, 84, 155, 120, 51, 221, 93, 244, 27, 104,\n\t\t235, 125, 191, 176, 21, 137, 139, 71, 100, 76, 196, 104, 161,\n\t\t127, 134, 225, 111, 63, 192, 76, 1, 215, 12, 236, 216, 120,\n\t\t152, 199, 174, 9, 77, 97, 39, 149, 63, 110, 16, 206, 2, 127,\n\t\t104, 35, 236, 59, 238, 208, 98, 228, 5, 131, 148, 90, 136,\n\t\t98, 169, 87, 154, 94, 184, 33, 134, 137, 14, 3, 31, 74, 187,\n\t\t217, 224, 236, 145, 235, 164, 60, 187, 17, 195, 250, 242,\n\t\t74, 229, 209, 198, 182, 198, 253, 91, 44, 240, 115, 155, 107,\n\t\t123, 19, 196, 181, 104, 159, 164, 109, 195, 162, 215, 87,\n\t\t1, 102, 165, 45, 55, 48, 241, 234, 252, 26, 11, 13, 180, 98,\n\t\t8, 167, 108, 79, 206, 83, 49, 190, 208, 5, 72, 51, 30, 29,\n\t\t125, 30, 60, 19, 8, 56, 159, 109, 239, 248, 78, 203, 233,\n\t\t0, 173, 164, 214, 153, 66, 232, 118, 86, 90, 93, 78, 85, 220,\n\t\t45, 92, 90, 219, 87, 232, 135, 108, 105, 49, 51, 23, 68, 222,\n\t\t253, 53, 203, 93, 91, 111, 40, 79, 13, 115, 212, 214, 88,\n\t\t188, 224, 53, 12, 113, 136, 155, 141, 119, 51, 74, 189, 38,\n\t\t163, 87, 164, 187, 218, 97, 188, 30, 88, 143, 7, 68, 23, 224,\n\t\t122, 31, 145, 60, 55, 1, 109, 71, 11, 132, 200, 215, 211,\n\t\t23, 75, 80, 176, 157, 246, 123, 71, 212, 247, 209, 114, 236,\n\t\t101, 249, 169, 217, 98, 78, 181, 44, 43, 233, 96, 156, 242,\n\t\t247, 57, 73, 201, 169, 23, 103, 167, 242, 122, 37, 5, 128,\n\t\t238, 26, 6, 64, 247, 84, 101, 197, 196, 79, 96, 13, 223, 76,\n\t\t91, 221, 67, 186, 134, 247, 220, 203, 66, 249, 108, 223, 247,\n\t\t147, 222, 152, 239, 60, 36, 206, 22, 243, 51, 162, 19, 77,\n\t\t85, 134, 24, 239, 149, 84, 116, 96, 83, 187, 64, 223, 245,\n\t\t47, 9, 57, 170, 13, 2, 150, 84, 107, 144, 104, 201, 73, 32,\n\t\t171, 149, 13, 238, 151, 160, 229, 63, 227, 209, 141, 95, 30,\n\t\t219, 112, 20, 153, 39, 222, 114, 130, 189, 156, 123, 79, 156,\n\t\t125, 130, 21, 222, 125, 215, 169, 87, 177, 194, 226, 220,\n\t\t214, 147, 172, 112, 211, 209, 92, 179, 48, 160, 138, 100,\n\t\t235, 41, 244, 62, 124, 248, 245, 199, 217, 192, 245, 216,\n\t\t117, 175, 53, 172, 71, 111, 103, 229, 71, 239, 255, 181, 211,\n\t\t230, 253, 215, 177, 242, 27, 26, 71, 101, 124, 77, 135, 149,\n\t\t95, 127, 232, 190, 83, 56, 168, 103, 7, 185, 239, 174, 197,\n\t\t74, 111, 42, 109, 13, 227, 72, 190, 202, 124, 104, 154, 48,\n\t\t70, 101, 195, 147, 66, 15, 188, 81, 197, 208, 1, 67, 103,\n\t\t156, 89, 17, 38, 16, 27, 177, 92, 12, 54, 129, 176, 236, 183,\n\t\t159, 96, 119, 16, 66, 19, 51, 110, 129, 205, 188, 115, 116,\n\t\t54, 242, 67, 247, 182, 88, 120, 250, 194, 153, 197, 11, 139,\n\t\t103, 250, 231, 36, 81, 78, 91, 72, 69, 86, 90, 22, 165, 184,\n\t\t130, 176, 156, 72, 208, 1, 75, 121, 255, 79, 124, 224, 227,\n\t\t68, 75, 76, 4, 249, 9, 206, 89, 180, 198, 150, 34, 115, 83,\n\t\t17, 36, 116, 187, 139, 103, 206, 76, 83, 85, 78, 78, 74, 82,\n\t\t82, 70, 68, 140, 167, 101, 89, 180, 44, 81, 150, 211, 241,\n\t\t159, 112, 63, 125, 121, 221, 160, 26, 23, 229, 185, 194, 212,\n\t\t202, 112, 102, 33, 231, 87, 194, 56, 142, 17, 191, 4, 207,\n\t\t69, 189, 106, 132, 95, 246, 10, 33, 82, 151, 122, 147, 171,\n\t\t97, 146, 210, 80, 34, 101, 198, 158, 177, 106, 24, 199, 188,\n\t\t158, 123, 202, 162, 61, 68, 230, 150, 228, 209, 36, 75, 59,\n\t\t78, 158, 220, 177, 115, 106, 106, 103, 109, 95, 44, 145, 2,\n\t\t228, 222, 29, 229, 51, 229, 165, 117, 200, 185, 229, 245,\n\t\t226, 250, 226, 252, 201, 135, 78, 110, 217, 50, 57, 102, 46,\n\t\t222, 184, 88, 40, 12, 185, 71, 6, 122, 40, 220, 197, 30, 150,\n\t\t33, 186, 193, 30, 69, 70, 160, 93, 96, 196, 19, 89, 47, 15,\n\t\t115, 147, 233, 228, 214, 30, 81, 48, 184, 89, 24, 61, 52,\n\t\t98, 51, 235, 21, 232, 175, 22, 232, 47, 254, 244, 226, 108,\n\t\t129, 142, 73, 133, 101, 59, 70, 87, 49, 150, 29, 186, 198,\n\t\t40, 211, 14, 178, 81, 90, 250, 64, 109, 30, 110, 107, 110,\n\t\t226, 3, 244, 134, 250, 175, 154, 45, 214, 18, 107, 160, 227,\n\t\t175, 37, 106, 197, 163, 74, 50, 2, 229, 72, 82, 249, 115,\n\t\t184, 155, 255, 159, 94, 187, 203, 175, 93, 26, 250, 187, 243,\n\t\t76, 143, 187, 180, 229, 192, 220, 193, 226, 182, 138, 60,\n\t\t110, 169, 73, 138, 209, 5, 206, 183, 238, 41, 60, 182, 127,\n\t\t24, 211, 207, 45, 65, 79, 51, 151, 84, 215, 215, 117, 244,\n\t\t109, 93, 247, 11, 253, 158, 162, 153, 24, 172, 61, 253, 63,\n\t\t39, 228, 144, 74, 94, 169, 170, 73, 85, 189, 105, 66, 37,\n\t\t189, 144, 64, 19, 50, 106, 56, 157, 72, 183, 139, 186, 152,\n\t\t10, 30, 174, 245, 6, 149, 28, 86, 213, 71, 84, 146, 82, 213,\n\t\t51, 19, 44, 64, 13, 174, 245, 34, 29, 71, 95, 41, 76, 11,\n\t\t215, 135, 122, 6, 27, 4, 74, 149, 144, 157, 215, 70, 100,\n\t\t192, 242, 215, 102, 225, 8, 225, 18, 40, 97, 219, 151, 86,\n\t\t198, 255, 53, 117, 197, 121, 172, 42, 68, 153, 26, 159, 184,\n\t\t107, 138, 254, 69, 39, 60, 162, 171, 184, 152, 48, 82, 122,\n\t\t246, 250, 172, 78, 151, 55, 100, 140, 180, 158, 44, 110, 168,\n\t\t86, 154, 254, 191, 168, 149, 232, 34, 13, 3, 36, 184, 236,\n\t\t167, 232, 63, 195, 18, 129, 170, 94, 67, 114, 76, 19, 181,\n\t\t0, 5, 42, 95, 170, 238, 155, 54, 212, 243, 229, 255, 187,\n\t\t106, 60, 119, 244, 105, 58, 71, 191, 154, 181, 117, 95, 40,\n\t\t83, 201, 69, 24, 164, 112, 72, 160, 83, 112, 127, 47, 112,\n\t\t230, 180, 185, 165, 120, 224, 232, 106, 49, 59, 22, 241, 74,\n\t\t205, 10, 68, 122, 178, 112, 108, 112, 134, 255, 29, 179, 208,\n\t\t190, 54, 171, 43, 150, 97, 197, 205, 186, 170, 205, 236, 124,\n\t\t96, 70, 83, 235, 38, 192, 50, 40, 122, 54, 249, 54, 87, 177,\n\t\t233, 72, 187, 154, 15, 38, 108, 197, 45, 216, 19, 213, 91,\n\t\t170, 19, 54, 42, 48, 195, 107, 255, 43, 85, 171, 168, 171,\n\t\t78, 215, 72, 27, 91, 27, 141, 173, 116, 213, 117, 84, 189,\n\t\t104, 85, 11, 223, 207, 20, 244, 76, 212, 200, 231, 141, 104,\n\t\t70, 47, 100, 20, 45, 155, 78, 103, 181, 17, 155, 215, 231,\n\t\t232, 61, 204, 115, 100, 107, 55, 40, 194, 203, 245, 135, 140,\n\t\t214, 33, 25, 33, 239, 176, 180, 1, 248, 67, 219, 4, 21, 48,\n\t\t96, 38, 107, 12, 204, 215, 133, 80, 208, 254, 233, 123, 47,\n\t\t10, 245, 41, 179, 136, 152, 123, 182, 190, 35, 53, 70, 47,\n\t\t80, 46, 30, 40, 202, 116, 237, 164, 163, 59, 80, 175, 146,\n\t\t234, 135, 9, 58, 60, 215, 6, 125, 228, 35, 173, 229, 49, 29,\n\t\t223, 200, 99, 112, 14, 119, 240, 84, 6, 84, 71, 211, 210,\n\t\t52, 203, 132, 82, 172, 232, 203, 157, 195, 221, 84, 165, 127,\n\t\t142, 125, 35, 21, 134, 64, 51, 94, 187, 223, 16, 23, 233,\n\t\t61, 232, 130, 39, 20, 132, 231, 11, 247, 66, 22, 18, 100,\n\t\t42, 80, 125, 153, 84, 164, 25, 84, 13, 121, 36, 218, 156,\n\t\t81, 130, 246, 141, 74, 27, 244, 62, 8, 164, 181, 57, 83, 93,\n\t\t156, 96, 78, 11, 90, 5, 192, 21, 218, 168, 103, 128, 222,\n\t\t11, 115, 210, 83, 134, 83, 227, 135, 208, 108, 28, 10, 171,\n\t\t197, 128, 240, 134, 225, 32, 168, 144, 204, 196, 181, 234,\n\t\t117, 85, 45, 158, 249, 217, 242, 180, 100, 152, 166, 141,\n\t\t155, 248, 79, 23, 112, 196, 52, 12, 105, 122, 60, 118, 103,\n\t\t43, 46, 153, 178, 29, 153, 90, 158, 79, 77, 69, 226, 132,\n\t\t236, 108, 37, 227, 241, 100, 107, 23, 198, 94, 100, 42, 53,\n\t\t191, 60, 21, 177, 101, 83, 244, 90, 137, 188, 62, 65, 11,\n\t\t228, 192, 124, 177, 93, 32, 84, 29, 156, 208, 243, 127, 198,\n\t\t13, 134, 75, 186, 147, 140, 70, 147, 142, 222, 255, 84, 122,\n\t\t105, 86, 82, 246, 78, 38, 147, 147, 123, 21, 105, 118, 41,\n\t\t29, 251, 199, 194, 78, 76, 20, 71, 75, 165, 175, 191, 37,\n\t\t165, 201, 200, 70, 102, 33, 146, 76, 70, 10, 38, 45, 42, 106,\n\t\t234, 150, 235, 211, 41, 53, 170, 16, 188, 179, 96, 227, 108,\n\t\t122, 247, 156, 130, 73, 60, 214, 56, 88, 236, 140, 197, 232,\n\t\t205, 43, 245, 110, 58, 139, 223, 58, 194, 205, 246, 113, 150,\n\t\t199, 93, 16, 22, 88, 92, 57, 51, 240, 17, 188, 33, 126, 142,\n\t\t231, 111, 87, 249, 112, 0, 12, 162, 92, 168, 158, 65, 3, 70,\n\t\t206, 13, 251, 198, 248, 206, 15, 111, 219, 103, 105, 59, 38,\n\t\t246, 191, 144, 101, 12, 211, 223, 83, 109, 45, 26, 173, 63,\n\t\t252, 17, 204, 94, 61, 126, 195, 205, 88, 211, 201, 137, 151,\n\t\t240, 77, 229, 196, 86, 0, 65, 249, 159, 198, 109, 59, 39,\n\t\t118, 104, 246, 169, 125, 63, 128, 120, 159, 31, 192, 200,\n\t\t173, 199, 108, 9, 59, 243, 166, 253, 119, 248, 35, 15, 19,\n\t\t42, 135, 222, 252, 70, 5, 122, 47, 157, 103, 241, 75, 78,\n\t\t208, 209, 130, 108, 187, 86, 81, 136, 92, 32, 250, 8, 174,\n\t\t159, 38, 36, 33, 3, 199, 139, 22, 195, 72, 222, 246, 48, 79,\n\t\t139, 227, 79, 148, 215, 1, 188, 54, 193, 19, 31, 32, 83, 116,\n\t\t215, 227, 153, 129, 93, 171, 223, 205, 196, 235, 131, 160,\n\t\t38, 72, 197, 65, 78, 255, 41, 122, 145, 95, 30, 6, 61, 255,\n\t\t17, 173, 80, 143, 103, 70, 51, 13, 55, 224, 13, 110, 122,\n\t\t93, 141, 34, 191, 46, 186, 253, 236, 175, 11, 113, 145, 228,\n\t\t194, 143, 185, 178, 33, 126, 198, 102, 87, 70, 24, 30, 166,\n\t\t201, 56, 130, 39, 132, 45, 140, 153, 3, 56, 18, 4, 68, 7,\n\t\t54, 133, 143, 108, 173, 118, 121, 23, 195, 206, 97, 67, 91,\n\t\t232, 32, 5, 56, 73, 6, 136, 28, 72, 237, 42, 1, 150, 72, 248,\n\t\t180, 57, 122, 50, 61, 16, 7, 173, 227, 123, 169, 137, 86,\n\t\t255, 253, 170, 26, 211, 11, 4, 155, 232, 102, 19, 19, 45,\n\t\t166, 169, 105, 149, 46, 139, 132, 24, 153, 242, 244, 204,\n\t\t177, 247, 152, 142, 231, 216, 241, 15, 229, 119, 230, 63,\n\t\t152, 223, 145, 255, 16, 253, 28, 183, 181, 45, 186, 57, 78,\n\t\t164, 157, 72, 196, 232, 182, 173, 15, 22, 191, 36, 59, 45,\n\t\t51, 133, 255, 7, 73, 25, 142, 28, 149, 35, 109, 35, 69, 156,\n\t\t96, 174, 67, 208, 46, 137, 236, 236, 255, 102, 172, 26, 75,\n\t\t210, 79, 58, 86, 117, 223, 167, 218, 51, 150, 246, 78, 219,\n\t\t137, 67, 44, 139, 192, 49, 63, 63, 19, 218, 109, 39, 135,\n\t\t40, 122, 116, 242, 230, 48, 140, 16, 197, 225, 178, 208, 236,\n\t\t89, 198, 45, 227, 115, 196, 91, 104, 232, 104, 114, 102, 44,\n\t\t136, 85, 207, 110, 53, 12, 69, 153, 123, 84, 141, 201, 178,\n\t\t220, 107, 200, 150, 98, 154, 237, 244, 137, 215, 228, 246,\n\t\t37, 242, 215, 23, 213, 49, 185, 146, 117, 80, 201, 191, 101,\n\t\t134, 106, 176, 91, 77, 218, 247, 229, 185, 69, 25, 107, 154,\n\t\t142, 200, 188, 162, 24, 70, 167, 224, 58, 17, 39, 91, 145,\n\t\t199, 212, 226, 245, 249, 196, 62, 192, 187, 102, 118, 68,\n\t\t232, 119, 32, 129, 28, 22, 158, 43, 220, 68, 71, 179, 71,\n\t\t132, 55, 10, 239, 22, 62, 4, 214, 44, 152, 139, 197, 33, 244,\n\t\t28, 128, 141, 175, 7, 211, 140, 6, 190, 6, 228, 146, 102,\n\t\t77, 214, 209, 96, 88, 139, 170, 150, 54, 238, 168, 54, 154,\n\t\t165, 96, 35, 10, 75, 35, 216, 120, 10, 111, 20, 4, 255, 199,\n\t\t66, 206, 92, 68, 32, 236, 0, 155, 41, 74, 163, 152, 249, 28,\n\t\t214, 19, 144, 192, 250, 195, 191, 153, 81, 241, 143, 215,\n\t\t69, 224, 194, 80, 30, 174, 15, 69, 227, 183, 174, 173, 213,\n\t\t134, 187, 11, 235, 117, 191, 162, 158, 87, 233, 95, 98, 132,\n\t\t205, 108, 189, 184, 95, 81, 158, 75, 12, 144, 153, 158, 171,\n\t\t40, 171, 102, 100, 164, 151, 118, 35, 102, 118, 120, 242,\n\t\t171, 70, 96, 160, 215, 139, 79, 20, 70, 224, 161, 187, 195,\n\t\t31, 239, 49, 113, 236, 161, 225, 151, 79, 141, 96, 53, 195,\n\t\t252, 249, 41, 214, 134, 60, 250, 198, 186, 128, 113, 18, 58,\n\t\t46, 103, 209, 208, 17, 12, 232, 168, 33, 10, 118, 104, 222,\n\t\t229, 64, 170, 184, 68, 6, 212, 122, 35, 3, 43, 65, 235, 58,\n\t\t111, 104, 23, 134, 175, 252, 161, 110, 231, 140, 252, 173,\n\t\t138, 165, 36, 21, 229, 214, 162, 97, 58, 23, 46, 219, 227,\n\t\t220, 170, 40, 73, 195, 188, 53, 111, 228, 108, 125, 197, 49,\n\t\t141, 126, 127, 80, 42, 194, 33, 90, 245, 214, 213, 75, 182,\n\t\t105, 221, 238, 229, 187, 30, 99, 167, 53, 77, 118, 218, 21,\n\t\t248, 33, 36, 14, 74, 195, 159, 12, 231, 94, 142, 145, 175,\n\t\t10, 166, 224, 208, 49, 12, 198, 136, 82, 181, 193, 136, 217,\n\t\t202, 94, 169, 221, 8, 74, 77, 101, 140, 135, 89, 144, 161,\n\t\t76, 177, 25, 61, 240, 186, 187, 188, 90, 36, 98, 253, 230,\n\t\t212, 173, 166, 156, 64, 90, 255, 43, 175, 72, 125, 43, 245,\n\t\t138, 254, 5, 85, 67, 9, 217, 188, 53, 133, 62, 11, 207, 159,\n\t\t206, 182, 44, 142, 127, 45, 228, 159, 129, 125, 113, 89, 20,\n\t\t100, 84, 232, 153, 203, 170, 217, 99, 255, 76, 117, 217, 236,\n\t\t113, 19, 207, 234, 40, 154, 49, 207, 17, 103, 234, 22, 139,\n\t\t109, 0, 185, 255, 231, 169, 246, 162, 9, 25, 42, 201, 237,\n\t\t22, 142, 2, 191, 56, 149, 209, 74, 205, 70, 137, 222, 132,\n\t\t50, 203, 194, 116, 231, 241, 92, 29, 66, 69, 32, 13, 114,\n\t\t120, 79, 140, 29, 163, 180, 217, 93, 148, 71, 244, 24, 224,\n\t\t26, 135, 209, 178, 74, 197, 18, 150, 45, 217, 152, 71, 191,\n\t\t152, 77, 238, 188, 237, 53, 175, 72, 161, 34, 125, 208, 150,\n\t\t152, 64, 240, 207, 243, 136, 17, 244, 171, 131, 155, 253,\n\t\t135, 230, 220, 159, 109, 188, 67, 82, 94, 56, 243, 154, 51,\n\t\t251, 22, 106, 121, 87, 76, 154, 182, 164, 84, 119, 43, 105,\n\t\t191, 81, 201, 162, 235, 147, 121, 122, 203, 7, 245, 93, 230,\n\t\t50, 29, 66, 144, 235, 98, 35, 157, 103, 79, 160, 112, 184,\n\t\t125, 176, 181, 225, 206, 179, 197, 229, 220, 158, 231, 61,\n\t\t111, 79, 229, 238, 217, 241, 154, 255, 231, 177, 221, 105,\n\t\t66, 102, 79, 40, 197, 154, 91, 157, 227, 185, 87, 97, 172,\n\t\t88, 99, 36, 246, 141, 37, 169, 142, 124, 54, 99, 196, 9, 209,\n\t\t171, 7, 72, 213, 93, 246, 159, 105, 233, 117, 246, 119, 129,\n\t\t33, 9, 32, 129, 149, 122, 225, 191, 193, 238, 1, 234, 64,\n\t\t93, 16, 214, 121, 161, 126, 151, 206, 139, 187, 132, 253,\n\t\t3, 244, 237, 182, 45, 65, 206, 76, 105, 144, 131, 19, 102,\n\t\t28, 51, 128, 0, 136, 133, 106, 15, 226, 129, 134, 145, 81,\n\t\t224, 54, 1, 188, 22, 250, 21, 110, 84, 44, 69, 121, 226, 237,\n\t\t148, 20, 230, 225, 134, 206, 149, 208, 72, 86, 106, 64, 142,\n\t\t60, 125, 171, 126, 59, 204, 117, 109, 180, 190, 107, 196,\n\t\t44, 162, 253, 10, 168, 104, 217, 28, 149, 73, 53, 187, 96,\n\t\t138, 10, 118, 176, 41, 198, 227, 44, 6, 72, 17, 205, 2, 182,\n\t\t100, 77, 22, 113, 46, 27, 215, 38, 226, 107, 171, 150, 123,\n\t\t97, 13, 172, 124, 107, 17, 132, 34, 180, 20, 151, 107, 133,\n\t\t118, 145, 74, 117, 53, 249, 71, 77, 47, 97, 154, 154, 244,\n\t\t69, 205, 52, 19, 94, 83, 238, 75, 134, 227, 25, 23, 162, 17,\n\t\t215, 2, 155, 162, 175, 89, 150, 165, 5, 121, 122, 122, 76,\n\t\t127, 166, 213, 162, 167, 199, 244, 103, 242, 1, 61, 189, 165,\n\t\t88, 178, 31, 203, 246, 63, 178, 220, 115, 221, 30, 173, 141,\n\t\t10, 84, 113, 236, 65, 201, 52, 51, 211, 135, 15, 79, 103,\n\t\t12, 171, 30, 209, 12, 85, 146, 84, 67, 139, 212, 69, 65, 162,\n\t\t115, 221, 111, 139, 175, 166, 50, 50, 224, 132, 238, 25, 248,\n\t\t69, 88, 36, 25, 216, 21, 103, 17, 143, 97, 39, 12, 7, 26,\n\t\t226, 132, 89, 108, 217, 37, 65, 102, 144, 23, 226, 131, 191,\n\t\t29, 32, 100, 197, 71, 36, 242, 11, 170, 132, 173, 136, 95,\n\t\t53, 81, 109, 183, 17, 143, 27, 187, 107, 200, 172, 250, 17,\n\t\t11, 75, 234, 47, 16, 9, 231, 28, 191, 90, 142, 251, 167, 112,\n\t\t96, 220, 119, 159, 17, 224, 83, 126, 188, 92, 245, 157, 92,\n\t\t255, 221, 238, 77, 227, 127, 184, 50, 126, 147, 77, 164, 189,\n\t\t178, 26, 201, 99, 237, 14, 52, 83, 61, 124, 152, 202, 141,\n\t\t119, 104, 56, 31, 161, 187, 37, 226, 152, 88, 59, 155, 58,\n\t\t85, 123, 92, 87, 229, 122, 93, 86, 245, 199, 107, 167, 82,\n\t\t103, 53, 42, 48, 8, 87, 85, 187, 51, 51, 221, 42, 204, 225,\n\t\t208, 119, 69, 58, 254, 68, 233, 8, 12, 45, 149, 72, 108, 126,\n\t\t164, 242, 166, 68, 135, 93, 165, 24, 20, 209, 133, 136, 43,\n\t\t118, 196, 88, 38, 210, 255, 142, 147, 137, 74, 29, 209, 141,\n\t\t160, 119, 247, 223, 144, 71, 91, 209, 170, 111, 247, 223,\n\t\t237, 36, 109, 59, 233, 160, 219, 109, 191, 187, 38, 108, 196,\n\t\t81, 184, 85, 120, 177, 240, 211, 27, 80, 231, 120, 250, 225,\n\t\t0, 192, 188, 13, 246, 33, 22, 35, 134, 25, 230, 121, 56, 251,\n\t\t241, 24, 229, 16, 227, 156, 110, 108, 12, 113, 5, 129, 137,\n\t\t85, 99, 200, 113, 12, 22, 96, 59, 106, 141, 15, 190, 25, 66,\n\t\t68, 186, 187, 32, 8, 154, 190, 10, 64, 46, 225, 95, 162, 95,\n\t\t103, 117, 105, 43, 13, 145, 238, 214, 30, 56, 129, 36, 49,\n\t\t43, 65, 182, 151, 39, 19, 41, 45, 138, 53, 42, 214, 43, 26,\n\t\t241, 117, 89, 23, 21, 9, 166, 46, 156, 55, 52, 82, 150, 9,\n\t\t21, 133, 21, 73, 151, 136, 236, 192, 202, 212, 180, 130, 76,\n\t\t226, 70, 255, 119, 195, 29, 68, 147, 82, 47, 111, 158, 74,\n\t\t90, 170, 18, 211, 44, 119, 202, 140, 22, 76, 99, 202, 143,\n\t\t249, 78, 60, 78, 123, 108, 8, 161, 119, 226, 1, 95, 148, 33,\n\t\t9, 141, 14, 39, 114, 74, 68, 150, 136, 117, 53, 46, 147, 36,\n\t\t209, 84, 87, 113, 84, 112, 64, 201, 134, 130, 117, 162, 104,\n\t\t10, 150, 53, 73, 135, 5, 21, 5, 52, 181, 40, 231, 127, 90,\n\t\t199, 146, 38, 211, 223, 35, 114, 178, 255, 121, 169, 179,\n\t\t69, 137, 234, 101, 131, 164, 172, 84, 194, 183, 163, 134,\n\t\t142, 185, 237, 91, 88, 166, 99, 79, 129, 89, 144, 46, 179,\n\t\t223, 93, 186, 61, 154, 224, 129, 46, 172, 151, 87, 215, 83,\n\t\t58, 122, 27, 0, 224, 68, 161, 112, 113, 77, 184, 16, 218,\n\t\t8, 133, 96, 232, 119, 226, 153, 103, 238, 37, 219, 203, 155,\n\t\t158, 167, 126, 233, 207, 241, 50, 27, 54, 47, 254, 240, 226,\n\t\t111, 49, 25, 14, 60, 48, 66, 136, 6, 10, 209, 43, 4, 51, 29,\n\t\t138, 224, 25, 145, 169, 152, 220, 132, 210, 230, 83, 124,\n\t\t48, 208, 162, 129, 204, 121, 159, 158, 210, 218, 62, 74, 218,\n\t\t113, 219, 21, 165, 100, 233, 238, 147, 70, 41, 89, 137, 4,\n\t\t10, 182, 147, 135, 199, 90, 180, 130, 150, 214, 250, 255,\n\t\t202, 181, 194, 215, 211, 242, 62, 77, 107, 141, 29, 78, 68,\n\t\t176, 156, 136, 84, 146, 37, 227, 228, 221, 165, 164, 36, 186,\n\t\t244, 251, 73, 228, 183, 244, 148, 78, 43, 244, 127, 101, 200,\n\t\t21, 6, 188, 167, 95, 163, 253, 230, 253, 66, 130, 73, 190,\n\t\t97, 92, 77, 139, 119, 119, 18, 84, 219, 85, 42, 240, 162,\n\t\t191, 25, 151, 139, 95, 198, 17, 229, 203, 69, 121, 92, 26,\n\t\t187, 165, 146, 93, 62, 87, 95, 30, 171, 220, 60, 134, 94,\n\t\t82, 126, 65, 237, 111, 21, 229, 111, 107, 47, 40, 75, 37,\n\t\t146, 57, 213, 61, 215, 235, 222, 145, 38, 37, 38, 19, 92,\n\t\t188, 248, 105, 22, 191, 202, 115, 187, 186, 192, 239, 56,\n\t\t176, 140, 204, 15, 80, 71, 6, 177, 193, 56, 8, 159, 11, 75,\n\t\t112, 101, 42, 55, 168, 215, 187, 80, 3, 30, 14, 40, 232, 173,\n\t\t6, 135, 181, 99, 250, 55, 40, 233, 60, 57, 182, 82, 29, 171,\n\t\t182, 170, 149, 230, 14, 20, 34, 168, 178, 39, 75, 79, 242,\n\t\t126, 246, 84, 120, 22, 75, 141, 151, 81, 66, 82, 169, 172,\n\t\t101, 152, 180, 33, 74, 132, 180, 231, 53, 55, 16, 69, 162,\n\t\t248, 193, 96, 215, 214, 5, 213, 249, 123, 162, 202, 190, 171,\n\t\t205, 183, 233, 90, 83, 36, 211, 64, 182, 174, 197, 29, 117,\n\t\t97, 43, 33, 18, 219, 17, 32, 129, 159, 22, 206, 202, 125,\n\t\t57, 191, 188, 179, 65, 44, 36, 18, 41, 110, 6, 30, 182, 144,\n\t\t146, 85, 12, 125, 219, 188, 162, 18, 145, 200, 113, 35, 17,\n\t\t39, 22, 206, 203, 218, 155, 44, 50, 183, 13, 16, 130, 20,\n\t\t100, 17, 207, 55, 227, 178, 20, 119, 167, 26, 144, 124, 161,\n\t\t43, 249, 193, 78, 137, 12, 115, 87, 48, 29, 171, 103, 25,\n\t\t43, 173, 63, 200, 32, 102, 174, 172, 25, 120, 87, 160, 88,\n\t\t123, 97, 144, 47, 240, 9, 139, 12, 56, 142, 228, 196, 33,\n\t\t202, 5, 234, 19, 123, 70, 179, 26, 142, 62, 227, 39, 178,\n\t\t179, 38, 210, 36, 83, 150, 34, 237, 177, 9, 213, 141, 125,\n\t\t219, 114, 157, 242, 98, 253, 11, 186, 104, 215, 189, 114,\n\t\t134, 60, 204, 66, 13, 239, 143, 71, 106, 154, 213, 181, 10,\n\t\t73, 89, 148, 76, 69, 201, 86, 68, 116, 173, 147, 115, 173,\n\t\t227, 187, 111, 121, 206, 246, 216, 97, 89, 111, 101, 100,\n\t\t191, 24, 239, 176, 192, 65, 104, 67, 63, 10, 243, 179, 83,\n\t\t116, 67, 162, 77, 92, 98, 34, 239, 96, 193, 6, 96, 170, 148,\n\t\t160, 139, 167, 144, 141, 22, 103, 68, 83, 28, 131, 197, 244,\n\t\t56, 93, 156, 146, 93, 7, 173, 69, 92, 244, 174, 254, 52, 198,\n\t\t232, 174, 15, 99, 252, 218, 207, 99, 252, 233, 151, 43, 10,\n\t\t138, 69, 82, 1, 224, 114, 133, 190, 162, 85, 42, 9, 24, 180,\n\t\t37, 197, 25, 30, 116, 93, 232, 48, 15, 10, 68, 29, 17, 175,\n\t\t4, 217, 137, 65, 137, 78, 235, 190, 71, 22, 170, 220, 99,\n\t\t232, 122, 33, 89, 100, 147, 206, 250, 28, 54, 184, 21, 34,\n\t\t109, 160, 110, 255, 187, 213, 87, 28, 138, 124, 105, 57, 135,\n\t\t22, 87, 118, 127, 164, 183, 152, 91, 149, 223, 239, 90, 189,\n\t\t194, 124, 116, 219, 129, 109, 209, 249, 222, 251, 229, 158,\n\t\t229, 254, 96, 169, 179, 134, 222, 251, 138, 237, 251, 87,\n\t\t123, 123, 119, 190, 51, 117, 211, 106, 111, 231, 222, 174,\n\t\t29, 99, 83, 109, 47, 91, 42, 101, 123, 23, 133, 229, 152,\n\t\t189, 236, 254, 106, 167, 182, 188, 12, 185, 82, 23, 191, 79,\n\t\t245, 248, 207, 161, 47, 208, 235, 204, 93, 62, 102, 177, 72,\n\t\t152, 34, 180, 106, 16, 80, 90, 136, 185, 18, 120, 34, 22,\n\t\t186, 189, 166, 68, 15, 246, 191, 88, 183, 187, 247, 223, 110,\n\t\t229, 188, 104, 97, 61, 61, 249, 235, 99, 205, 248, 169, 39,\n\t\t183, 221, 158, 238, 110, 235, 37, 227, 130, 48, 26, 163, 230,\n\t\t10, 181, 208, 94, 87, 169, 14, 99, 250, 88, 31, 162, 141,\n\t\t162, 13, 251, 6, 84, 84, 131, 157, 1, 119, 101, 140, 184,\n\t\t62, 20, 30, 2, 232, 61, 34, 199, 74, 24, 233, 36, 106, 139,\n\t\t178, 159, 231, 165, 123, 96, 159, 172, 202, 163, 251, 222,\n\t\t7, 62, 13, 167, 83, 91, 171, 117, 168, 152, 178, 2, 70, 24,\n\t\t7, 205, 36, 221, 210, 28, 49, 236, 188, 159, 159, 166, 43,\n\t\t216, 82, 84, 37, 220, 4, 51, 61, 4, 225, 172, 89, 238, 42,\n\t\t116, 25, 110, 55, 189, 120, 241, 123, 232, 187, 116, 126,\n\t\t181, 89, 148, 229, 2, 149, 233, 226, 144, 67, 71, 219, 118,\n\t\t21, 12, 234, 109, 134, 76, 63, 207, 178, 3, 42, 99, 3, 135,\n\t\t180, 50, 159, 147, 60, 155, 71, 192, 183, 154, 31, 172, 28,\n\t\t151, 108, 60, 221, 146, 169, 116, 36, 125, 230, 184, 36, 225,\n\t\t246, 203, 218, 88, 146, 142, 199, 183, 72, 124, 84, 76, 136,\n\t\t88, 150, 144, 220, 154, 198, 182, 116, 188, 178, 54, 157,\n\t\t232, 97, 73, 46, 44, 119, 232, 252, 39, 237, 235, 97, 11,\n\t\t80, 110, 44, 220, 51, 11, 172, 27, 199, 69, 73, 86, 164, 206,\n\t\t114, 65, 150, 112, 47, 49, 61, 144, 63, 185, 28, 96, 80, 189,\n\t\t166, 44, 108, 97, 222, 233, 193, 181, 178, 129, 169, 93, 25,\n\t\t35, 195, 139, 37, 108, 136, 10, 175, 175, 18, 94, 117, 236,\n\t\t18, 247, 250, 39, 115, 147, 82, 4, 47, 16, 250, 60, 127, 221,\n\t\t25, 119, 38, 233, 133, 143, 29, 28, 163, 23, 190, 151, 232,\n\t\t136, 44, 224, 136, 52, 153, 251, 101, 54, 183, 127, 248, 137,\n\t\t187, 238, 122, 226, 174, 15, 49, 51, 231, 90, 201, 221, 139,\n\t\t69, 121, 114, 145, 0, 143, 222, 94, 42, 102, 58, 142, 108,\n\t\t225, 151, 234, 100, 113, 146, 10, 132, 123, 221, 210, 15,\n\t\t216, 236, 220, 255, 187, 187, 216, 183, 134, 177, 246, 10,\n\t\t204, 117, 226, 171, 195, 177, 120, 130, 74, 127, 215, 173,\n\t\t143, 197, 114, 184, 118, 125, 188, 145, 183, 11, 2, 100, 124,\n\t\t72, 216, 222, 224, 42, 167, 13, 134, 12, 216, 85, 47, 69,\n\t\t18, 163, 213, 223, 181, 80, 1, 132, 231, 211, 108, 181, 91,\n\t\t138, 152, 109, 102, 224, 107, 155, 17, 113, 6, 39, 18, 157,\n\t\t68, 2, 247, 251, 195, 84, 235, 151, 153, 113, 19, 128, 137,\n\t\t245, 37, 29, 224, 140, 147, 110, 162, 131, 186, 21, 246, 93,\n\t\t246, 215, 255, 129, 25, 187, 3, 76, 125, 119, 196, 204, 79,\n\t\t249, 146, 227, 72, 254, 175, 140, 78, 181, 231, 144, 237,\n\t\t153, 143, 233, 246, 99, 80, 231, 49, 32, 197, 76, 139, 14,\n\t\t199, 138, 254, 44, 155, 123, 67, 60, 180, 33, 250, 36, 76,\n\t\t191, 44, 131, 130, 155, 175, 153, 188, 207, 26, 26, 204, 192,\n\t\t67, 45, 123, 168, 157, 151, 233, 78, 23, 34, 75, 233, 100,\n\t\t124, 51, 157, 95, 151, 244, 152, 228, 73, 17, 229, 206, 24,\n\t\t138, 165, 169, 18, 32, 226, 216, 93, 84, 36, 175, 158, 174,\n\t\t233, 199, 195, 26, 117, 61, 163, 207, 234, 122, 189, 255,\n\t\t221, 253, 87, 239, 95, 189, 122, 255, 213, 159, 160, 123,\n\t\t111, 214, 180, 227, 122, 237, 116, 149, 74, 241, 119, 197,\n\t\t176, 72, 245, 135, 52, 61, 195, 157, 74, 132, 158, 45, 166,\n\t\t29, 15, 107, 212, 117, 250, 205, 140, 94, 223, 74, 191, 217,\n\t\t255, 83, 250, 85, 158, 71, 246, 131, 139, 159, 12, 177, 52,\n\t\t183, 64, 79, 111, 179, 9, 146, 202, 14, 76, 36, 231, 152,\n\t\t212, 140, 146, 78, 122, 182, 182, 215, 223, 190, 31, 139,\n\t\t100, 235, 99, 183, 184, 5, 42, 130, 61, 144, 17, 89, 68, 131,\n\t\t136, 201, 51, 27, 95, 207, 222, 143, 29, 57, 239, 222, 252,\n\t\t216, 86, 34, 42, 15, 164, 217, 93, 164, 92, 17, 237, 250,\n\t\t241, 118, 215, 117, 142, 98, 139, 73, 232, 201, 75, 176, 140,\n\t\t219, 128, 57, 215, 8, 63, 168, 11, 176, 228, 23, 133, 84,\n\t\t165, 87, 168, 247, 232, 127, 180, 86, 73, 245, 123, 176, 19,\n\t\t117, 123, 171, 203, 236, 31, 159, 23, 214, 207, 153, 160,\n\t\t50, 92, 73, 152, 20, 102, 66, 174, 172, 209, 115, 211, 179,\n\t\t2, 174, 93, 9, 40, 148, 74, 204, 30, 70, 87, 109, 248, 53,\n\t\t48, 106, 21, 189, 50, 179, 89, 109, 248, 221, 238, 106, 183,\n\t\t96, 185, 93, 128, 0, 207, 55, 48, 200, 124, 231, 197, 139,\n\t\t2, 64, 226, 22, 54, 92, 202, 26, 75, 29, 118, 255, 153, 87,\n\t\t133, 226, 53, 64, 98, 64, 55, 184, 63, 226, 63, 134, 152,\n\t\t97, 9, 58, 74, 207, 3, 74, 143, 48, 28, 15, 66, 22, 192, 10,\n\t\t15, 205, 88, 40, 182, 152, 239, 129, 73, 95, 224, 7, 106,\n\t\t179, 100, 41, 8, 209, 25, 212, 161, 243, 255, 216, 198, 196,\n\t\t97, 42, 166, 161, 151, 177, 81, 110, 194, 214, 50, 241, 129,\n\t\t137, 171, 255, 125, 176, 71, 218, 85, 123, 159, 25, 24, 251,\n\t\t20, 107, 39, 38, 185, 27, 181, 148, 171, 213, 65, 109, 253,\n\t\t147, 148, 231, 94, 139, 208, 78, 155, 190, 187, 163, 113,\n\t\t209, 243, 16, 39, 144, 237, 223, 168, 145, 120, 134, 5, 227,\n\t\t48, 27, 165, 109, 239, 51, 2, 115, 159, 252, 73, 77, 165,\n\t\t223, 118, 83, 250, 255, 160, 95, 152, 115, 79, 208, 111, 198,\n\t\t111, 96, 217, 194, 71, 227, 157, 88, 116, 128, 233, 199, 125,\n\t\t189, 227, 96, 247, 25, 228, 123, 197, 124, 134, 245, 89, 45,\n\t\t115, 223, 22, 237, 93, 237, 48, 67, 135, 42, 212, 144, 229,\n\t\t9, 102, 48, 223, 3, 101, 50, 47, 230, 88, 94, 19, 40, 160,\n\t\t84, 192, 169, 162, 223, 99, 183, 21, 179, 73, 170, 28, 143,\n\t\t246, 31, 210, 176, 230, 106, 191, 63, 115, 56, 80, 238, 172,\n\t\t89, 146, 62, 247, 88, 50, 78, 250, 239, 74, 201, 146, 40,\n\t\t149, 12, 111, 215, 181, 217, 58, 137, 46, 152, 154, 153, 52,\n\t\t183, 197, 48, 41, 188, 120, 214, 77, 132, 25, 95, 253, 215,\n\t\t217, 113, 146, 82, 191, 40, 187, 49, 172, 156, 221, 127, 56,\n\t\t200, 55, 107, 102, 201, 62, 116, 192, 136, 19, 116, 115, 32,\n\t\t203, 34, 85, 217, 140, 68, 190, 96, 102, 253, 70, 10, 39,\n\t\t19, 26, 206, 106, 244, 238, 182, 38, 162, 230, 96, 158, 237,\n\t\t178, 123, 155, 161, 125, 239, 232, 200, 221, 133, 153, 94,\n\t\t252, 237, 184, 245, 74, 179, 50, 76, 87, 99, 246, 3, 48, 56,\n\t\t180, 22, 72, 123, 61, 161, 141, 72, 13, 246, 90, 27, 76, 161,\n\t\t227, 105, 111, 232, 54, 118, 167, 239, 141, 219, 147, 185,\n\t\t126, 1, 70, 177, 169, 150, 168, 74, 122, 141, 231, 173, 77,\n\t\t91, 110, 60, 117, 64, 183, 191, 157, 28, 164, 181, 85, 49,\n\t\t94, 72, 236, 50, 99, 254, 212, 151, 146, 69, 72, 126, 219,\n\t\t25, 49, 149, 225, 221, 190, 223, 214, 115, 147, 54, 203, 114,\n\t\t70, 250, 48, 141, 205, 181, 124, 245, 163, 118, 124, 236,\n\t\t248, 48, 201, 77, 22, 251, 63, 124, 77, 76, 183, 158, 123,\n\t\t62, 204, 130, 59, 18, 230, 121, 191, 154, 202, 89, 204, 122,\n\t\t87, 246, 67, 188, 160, 65, 58, 1, 67, 49, 1, 1, 179, 220,\n\t\t12, 91, 100, 78, 10, 114, 226, 128, 106, 206, 231, 41, 225,\n\t\t3, 179, 208, 12, 18, 111, 207, 138, 226, 116, 238, 233, 31,\n\t\t177, 248, 8, 42, 18, 104, 192, 19, 171, 155, 79, 127, 30,\n\t\t90, 143, 231, 86, 198, 242, 9, 45, 50, 187, 179, 224, 165,\n\t\t42, 204, 231, 221, 169, 117, 215, 186, 147, 173, 155, 131,\n\t\t74, 182, 202, 12, 171, 182, 97, 168, 68, 183, 76, 75, 127,\n\t\t16, 242, 245, 52, 39, 200, 71, 179, 211, 65, 37, 5, 100, 14,\n\t\t203, 181, 78, 189, 94, 95, 48, 246, 115, 89, 162, 63, 228,\n\t\t35, 109, 9, 167, 194, 88, 194, 1, 79, 39, 157, 163, 57, 39,\n\t\t233, 179, 192, 98, 25, 36, 25, 87, 7, 86, 108, 86, 51, 224,\n\t\t236, 132, 180, 220, 248, 177, 167, 24, 82, 151, 138, 50, 213,\n\t\t7, 162, 25, 188, 181, 183, 9, 64, 11, 152, 189, 117, 57, 22,\n\t\t147, 117, 122, 163, 84, 57, 103, 40, 72, 116, 93, 223, 164,\n\t\t110, 72, 99, 42, 137, 10, 241, 230, 128, 198, 244, 241, 13,\n\t\t80, 45, 81, 35, 44, 170, 224, 103, 45, 149, 232, 227, 190,\n\t\t67, 85, 247, 117, 100, 185, 179, 79, 221, 188, 166, 48, 196,\n\t\t226, 20, 153, 207, 23, 24, 118, 55, 34, 160, 71, 88, 98, 19,\n\t\t3, 61, 231, 157, 184, 194, 196, 214, 128, 182, 223, 16, 17,\n\t\t153, 89, 180, 233, 147, 0, 97, 86, 244, 243, 204, 111, 82,\n\t\t162, 114, 16, 199, 67, 38, 65, 165, 29, 246, 98, 247, 228,\n\t\t226, 66, 146, 120, 178, 125, 218, 177, 53, 87, 37, 90, 212,\n\t\t141, 68, 250, 111, 43, 58, 50, 137, 185, 50, 137, 84, 232,\n\t\t164, 104, 90, 135, 74, 147, 81, 87, 203, 98, 45, 145, 196,\n\t\t169, 221, 73, 239, 94, 67, 86, 117, 199, 120, 231, 142, 88,\n\t\t228, 57, 34, 254, 111, 138, 24, 54, 241, 223, 216, 157, 171,\n\t\t186, 185, 179, 17, 60, 70, 231, 22, 56, 129, 170, 188, 214,\n\t\t44, 106, 16, 42, 25, 81, 108, 76, 172, 64, 78, 54, 107, 81,\n\t\t15, 227, 216, 54, 35, 101, 168, 230, 130, 167, 58, 39, 212,\n\t\t180, 110, 109, 217, 18, 119, 146, 74, 134, 142, 125, 186,\n\t\t46, 12, 98, 181, 69, 244, 59, 12, 203, 241, 54, 225, 46, 225,\n\t\t126, 225, 17, 225, 117, 204, 183, 21, 65, 113, 63, 14, 126,\n\t\t93, 54, 213, 2, 65, 97, 200, 194, 85, 167, 221, 89, 228, 218,\n\t\t113, 147, 202, 168, 161, 49, 103, 206, 11, 90, 67, 114, 8,\n\t\t160, 8, 173, 47, 172, 155, 122, 64, 105, 29, 15, 197, 191,\n\t\t216, 37, 193, 168, 131, 53, 51, 48, 114, 178, 234, 193, 46,\n\t\t116, 145, 138, 180, 175, 67, 114, 81, 213, 74, 101, 199, 187,\n\t\t53, 102, 21, 43, 211, 50, 122, 157, 12, 89, 121, 146, 137,\n\t\t51, 192, 166, 206, 184, 252, 44, 191, 179, 212, 241, 45, 96,\n\t\t245, 163, 219, 25, 108, 137, 253, 11, 44, 18, 115, 226, 178,\n\t\t156, 55, 7, 50, 129, 85, 57, 203, 3, 53, 107, 216, 148, 218,\n\t\t72, 145, 69, 203, 25, 219, 50, 115, 60, 105, 170, 222, 222,\n\t\t218, 238, 105, 199, 50, 219, 180, 149, 200, 54, 216, 50, 179,\n\t\t178, 162, 136, 26, 153, 65, 40, 136, 152, 233, 34, 8, 241,\n\t\t99, 41, 51, 18, 32, 52, 3, 253, 58, 11, 214, 207, 73, 118,\n\t\t242, 254, 55, 217, 170, 61, 178, 60, 22, 104, 80, 73, 118,\n\t\t240, 60, 143, 242, 36, 151, 225, 189, 60, 87, 88, 134, 44,\n\t\t147, 129, 92, 124, 165, 181, 18, 140, 192, 135, 151, 252,\n\t\t97, 44, 253, 46, 212, 30, 177, 58, 51, 67, 90, 163, 25, 10,\n\t\t113, 126, 104, 137, 67, 94, 208, 168, 186, 12, 242, 148, 35,\n\t\t108, 222, 195, 244, 220, 51, 151, 45, 17, 25, 87, 20, 95,\n\t\t177, 148, 242, 196, 148, 177, 56, 115, 81, 152, 89, 116, 178,\n\t\t46, 85, 110, 50, 241, 115, 5, 243, 152, 210, 157, 40, 211,\n\t\t131, 190, 162, 140, 7, 253, 94, 247, 225, 125, 219, 64, 243,\n\t\t185, 200, 18, 206, 14, 50, 101, 248, 242, 191, 210, 224, 27,\n\t\t147, 219, 220, 32, 9, 122, 147, 95, 203, 105, 207, 141, 103,\n\t\t168, 214, 148, 253, 132, 105, 53, 220, 109, 147, 131, 31,\n\t\t245, 11, 103, 11, 232, 196, 114, 119, 181, 223, 227, 153,\n\t\t60, 33, 246, 6, 195, 78, 112, 89, 254, 211, 60, 189, 29, 144,\n\t\t186, 25, 80, 124, 137, 126, 22, 26, 101, 216, 71, 111, 12,\n\t\t202, 232, 126, 211, 124, 147, 217, 161, 31, 19, 221, 97, 154,\n\t\t253, 39, 232, 186, 64, 183, 255, 193, 164, 127, 29, 179, 71,\n\t\t63, 244, 111, 232, 111, 134, 247, 80, 14, 163, 131, 75, 222,\n\t\t104, 198, 48, 167, 0, 107, 95, 234, 83, 84, 188, 117, 78,\n\t\t235, 33, 126, 230, 138, 83, 152, 173, 249, 84, 143, 95, 115,\n\t\t92, 217, 175, 205, 22, 152, 131, 1, 129, 52, 210, 255, 107,\n\t\t181, 174, 210, 191, 214, 253, 215, 94, 123, 255, 181, 232,\n\t\t220, 123, 28, 119, 254, 100, 234, 170, 72, 42, 21, 185, 42,\n\t\t117, 114, 222, 117, 222, 179, 238, 104, 75, 48, 247, 218,\n\t\t147, 92, 101, 97, 248, 42, 162, 130, 62, 79, 101, 197, 89,\n\t\t122, 125, 123, 70, 36, 248, 25, 42, 73, 148, 170, 84, 170,\n\t\t11, 104, 199, 170, 130, 226, 213, 14, 233, 17, 134, 97, 252,\n\t\t152, 128, 251, 54, 8, 229, 167, 161, 45, 228, 223, 12, 163,\n\t\t169, 231, 141, 7, 162, 170, 113, 231, 174, 229, 110, 239,\n\t\t206, 120, 61, 186, 96, 153, 215, 162, 201, 244, 213, 101,\n\t\t34, 41, 135, 140, 125, 135, 21, 75, 212, 226, 105, 55, 233,\n\t\t230, 223, 78, 204, 151, 185, 205, 178, 251, 196, 3, 236, 93,\n\t\t46, 24, 57, 163, 105, 208, 47, 215, 227, 119, 246, 186, 203,\n\t\t187, 238, 52, 212, 104, 75, 186, 118, 231, 84, 58, 174, 137,\n\t\t182, 124, 120, 159, 113, 72, 145, 200, 248, 161, 116, 204,\n\t\t112, 243, 215, 230, 11, 63, 229, 150, 155, 238, 59, 191, 202,\n\t\t141, 36, 56, 28, 107, 161, 221, 15, 252, 232, 59, 215, 71,\n\t\t220, 121, 24, 113, 54, 193, 41, 2, 158, 73, 208, 77, 202,\n\t\t45, 196, 120, 185, 26, 77, 240, 234, 138, 3, 128, 216, 45,\n\t\t76, 41, 252, 140, 132, 201, 63, 156, 135, 9, 180, 207, 64,\n\t\t12, 206, 255, 63, 162, 104, 74, 34, 193, 232, 2, 238, 127,\n\t\t102, 25, 9, 203, 189, 229, 229, 91, 67, 20, 92, 246, 120,\n\t\t45, 83, 220, 113, 163, 107, 113, 166, 101, 203, 61, 177, 221,\n\t\t196, 38, 234, 137, 253, 95, 230, 162, 53, 42, 12, 245, 198,\n\t\t245, 248, 99, 155, 181, 191, 141, 158, 44, 119, 232, 201,\n\t\t18, 185, 39, 107, 223, 194, 193, 87, 255, 230, 171, 111, 186,\n\t\t122, 235, 100, 90, 31, 119, 233, 16, 188, 237, 70, 146, 206,\n\t\t196, 14, 119, 166, 208, 155, 235, 111, 154, 186, 233, 117,\n\t\t175, 187, 169, 181, 186, 175, 185, 173, 208, 255, 131, 212,\n\t\t13, 85, 205, 216, 251, 128, 90, 168, 213, 220, 206, 126, 110,\n\t\t47, 189, 24, 98, 181, 64, 44, 27, 248, 119, 216, 123, 132,\n\t\t184, 155, 58, 88, 72, 195, 168, 157, 60, 157, 91, 108, 133,\n\t\t216, 98, 153, 189, 104, 72, 176, 179, 229, 1, 172, 6, 173,\n\t\t38, 3, 186, 225, 46, 133, 86, 254, 91, 203, 79, 216, 86, 179,\n\t\t52, 174, 33, 125, 188, 45, 238, 207, 200, 82, 204, 41, 148,\n\t\t26, 185, 52, 85, 53, 45, 173, 156, 155, 113, 253, 74, 57,\n\t\t5, 152, 22, 1, 58, 194, 42, 33, 180, 63, 67, 229, 199, 242,\n\t\t222, 218, 176, 142, 105, 250, 209, 192, 140, 209, 106, 88,\n\t\t11, 10, 197, 120, 180, 89, 90, 177, 98, 38, 145, 227, 197,\n\t\t18, 72, 88, 30, 10, 14, 25, 234, 120, 162, 154, 201, 27, 186,\n\t\t142, 181, 114, 38, 70, 244, 84, 185, 226, 185, 49, 183, 248,\n\t\t149, 65, 141, 72, 172, 85, 157, 141, 132, 199, 101, 197, 48,\n\t\t92, 195, 229, 85, 138, 190, 134, 227, 197, 13, 49, 32, 62,\n\t\t139, 193, 186, 34, 231, 36, 116, 194, 176, 35, 54, 194, 16,\n\t\t68, 238, 143, 47, 141, 93, 153, 26, 242, 73, 181, 67, 59,\n\t\t98, 71, 13, 87, 255, 124, 37, 166, 139, 183, 140, 84, 82,\n\t\t59, 253, 11, 156, 215, 2, 13, 229, 224, 4, 67, 0, 18, 153,\n\t\t247, 108, 112, 93, 156, 189, 10, 21, 246, 220, 123, 176, 86,\n\t\t202, 122, 145, 254, 99, 17, 47, 146, 112, 180, 159, 71, 107,\n\t\t249, 249, 237, 217, 68, 254, 34, 99, 136, 67, 130, 22, 137,\n\t\t27, 187, 238, 20, 214, 249, 227, 127, 94, 208, 4, 122, 122,\n\t\t150, 40, 195, 206, 5, 45, 172, 88, 110, 53, 234, 34, 213,\n\t\t182, 88, 208, 192, 244, 13, 63, 213, 23, 80, 160, 154, 171,\n\t\t44, 135, 22, 173, 42, 175, 60, 253, 215, 68, 24, 240, 65,\n\t\t237, 161, 243, 183, 67, 91, 204, 193, 117, 228, 27, 222, 129,\n\t\t168, 156, 166, 52, 71, 159, 13, 147, 229, 134, 207, 173, 205,\n\t\t201, 105, 71, 176, 88, 56, 77, 109, 185, 53, 31, 12, 208,\n\t\t112, 0, 117, 11, 201, 104, 251, 198, 71, 247, 91, 138, 236,\n\t\t41, 132, 200, 223, 80, 76, 229, 27, 224, 77, 241, 233, 148,\n\t\t12, 216, 56, 3, 84, 28, 134, 135, 179, 111, 195, 115, 124,\n\t\t187, 66, 176, 146, 80, 228, 47, 200, 244, 143, 22, 48, 81,\n\t\t190, 14, 66, 200, 224, 57, 128, 220, 90, 223, 32, 179, 114,\n\t\t148, 78, 122, 69, 207, 116, 19, 67, 81, 83, 21, 101, 16, 52,\n\t\t209, 242, 198, 75, 13, 5, 71, 85, 146, 36, 42, 56, 110, 187,\n\t\t250, 186, 123, 54, 92, 213, 192, 78, 194, 49, 181, 202, 28,\n\t\t95, 115, 48, 205, 14, 44, 33, 116, 20, 141, 136, 225, 30,\n\t\t17, 192, 215, 153, 215, 15, 131, 95, 21, 253, 144, 207, 92,\n\t\t255, 93, 81, 2, 170, 49, 138, 237, 45, 247, 184, 233, 135,\n\t\t206, 242, 25, 239, 108, 154, 184, 247, 108, 105, 91, 250,\n\t\t62, 29, 139, 238, 146, 134, 48, 173, 18, 40, 180, 50, 59,\n\t\t252, 239, 80, 153, 164, 207, 242, 51, 156, 125, 40, 13, 149,\n\t\t127, 10, 42, 107, 75, 46, 203, 97, 89, 231, 149, 55, 224,\n\t\t201, 172, 15, 61, 111, 189, 229, 121, 243, 43, 171, 43, 243,\n\t\t104, 237, 129, 183, 183, 1, 163, 188, 253, 246, 129, 157,\n\t\t142, 63, 75, 131, 161, 218, 205, 50, 212, 12, 161, 60, 200,\n\t\t48, 100, 134, 206, 75, 16, 195, 0, 169, 0, 241, 148, 234,\n\t\t75, 241, 9, 6, 88, 45, 163, 12, 218, 192, 206, 72, 245, 255,\n\t\t213, 84, 69, 35, 233, 84, 34, 146, 127, 197, 227, 175, 200,\n\t\t71, 18, 169, 93, 76, 158, 122, 253, 200, 146, 235, 212, 153,\n\t\t30, 157, 218, 192, 88, 64, 231, 183, 213, 133, 196, 252, 226,\n\t\t226, 124, 98, 97, 133, 137, 66, 19, 108, 25, 132, 201, 47,\n\t\t8, 236, 115, 232, 2, 109, 203, 93, 122, 197, 144, 4, 10, 179,\n\t\t48, 19, 118, 0, 41, 206, 139, 67, 63, 223, 69, 213, 71, 158,\n\t\t233, 48, 207, 225, 181, 230, 214, 55, 168, 248, 45, 101, 161,\n\t\t3, 160, 11, 185, 133, 220, 95, 185, 179, 86, 222, 48, 181,\n\t\t180, 35, 253, 159, 202, 174, 38, 196, 109, 35, 10, 107, 244,\n\t\t55, 35, 201, 214, 79, 36, 89, 234, 198, 94, 75, 138, 29, 175,\n\t\t201, 207, 102, 215, 88, 198, 109, 10, 219, 45, 33, 16, 47,\n\t\t75, 216, 164, 165, 249, 217, 236, 38, 57, 37, 61, 53, 167,\n\t\t64, 122, 48, 132, 109, 47, 165, 57, 244, 146, 180, 133, 248,\n\t\t208, 30, 10, 45, 44, 165, 135, 246, 212, 63, 40, 57, 133,\n\t\t61, 6, 146, 67, 142, 237, 169, 183, 30, 213, 206, 155, 81,\n\t\t108, 121, 49, 161, 1, 49, 26, 201, 242, 48, 72, 111, 230,\n\t\t189, 153, 247, 189, 239, 41, 68, 87, 234, 196, 214, 169, 13,\n\t\t131, 188, 131, 182, 95, 110, 41, 4, 75, 13, 195, 185, 123,\n\t\t142, 62, 232, 154, 117, 195, 58, 163, 121, 178, 181, 70, 200,\n\t\t103, 244, 23, 85, 81, 145, 90, 194, 17, 33, 143, 188, 42,\n\t\t170, 121, 127, 16, 18, 25, 22, 192, 240, 85, 34, 47, 107,\n\t\t146, 95, 204, 75, 238, 2, 19, 111, 147, 69, 49, 244, 38, 84,\n\t\t95, 128, 0, 220, 239, 155, 123, 158, 173, 172, 118, 219, 108,\n\t\t119, 162, 221, 93, 181, 11, 222, 185, 149, 149, 55, 174, 86,\n\t\t54, 56, 159, 220, 70, 229, 234, 23, 211, 57, 154, 24, 7, 10,\n\t\t213, 155, 191, 81, 91, 241, 45, 97, 32, 188, 195, 56, 191,\n\t\t193, 80, 65, 227, 56, 89, 4, 95, 16, 195, 135, 227, 126, 181,\n\t\t241, 1, 17, 147, 128, 219, 234, 177, 100, 111, 249, 145, 42,\n\t\t60, 240, 180, 82, 151, 230, 57, 21, 24, 66, 127, 201, 26,\n\t\t21, 78, 45, 27, 233, 137, 25, 47, 154, 58, 218, 214, 227,\n\t\t106, 188, 32, 107, 101, 165, 20, 68, 45, 85, 14, 95, 148,\n\t\t222, 140, 123, 217, 135, 134, 43, 58, 123, 78, 199, 53, 30,\n\t\t142, 107, 232, 27, 197, 180, 108, 108, 198, 58, 109, 213,\n\t\t92, 140, 205, 132, 182, 170, 153, 230, 13, 165, 172, 43, 37,\n\t\t89, 109, 69, 65, 248, 162, 116, 103, 220, 251, 209, 112, 59,\n\t\t180, 37, 145, 181, 153, 215, 114, 159, 229, 207, 104, 68,\n\t\t229, 196, 7, 230, 30, 52, 145, 109, 14, 94, 96, 235, 15, 169,\n\t\t21, 99, 96, 39, 228, 59, 243, 25, 207, 236, 142, 206, 223,\n\t\t62, 143, 190, 189, 142, 132, 235, 178, 99, 59, 136, 239, 118,\n\t\t87, 9, 1, 96, 60, 33, 217, 247, 143, 31, 99, 195, 40, 196,\n\t\t77, 64, 22, 156, 54, 216, 93, 61, 176, 44, 193, 192, 102,\n\t\t68, 139, 157, 41, 11, 180, 233, 196, 121, 106, 47, 137, 214,\n\t\t148, 253, 246, 75, 142, 8, 251, 147, 20, 103, 37, 20, 101,\n\t\t2, 237, 15, 96, 20, 179, 33, 56, 109, 233, 128, 18, 96, 64,\n\t\t253, 237, 149, 223, 52, 15, 160, 231, 100, 106, 142, 218,\n\t\t205, 118, 1, 190, 88, 205, 158, 33, 225, 95, 97, 123, 50,\n\t\t158, 12, 223, 177, 160, 191, 185, 44, 90, 194, 107, 84, 26,\n\t\t59, 179, 114, 164, 229, 8, 183, 124, 109, 15, 155, 126, 80,\n\t\t131, 181, 0, 187, 29, 47, 167, 232, 23, 104, 148, 239, 235,\n\t\t109, 51, 144, 202, 30, 143, 41, 25, 113, 142, 6, 78, 205,\n\t\t0, 104, 101, 216, 29, 4, 170, 247, 185, 195, 217, 30, 7, 156,\n\t\t217, 12, 122, 246, 49, 207, 16, 73, 139, 220, 111, 199, 177,\n\t\t96, 75, 144, 109, 59, 24, 39, 34, 164, 102, 73, 192, 162,\n\t\t26, 112, 235, 80, 151, 129, 145, 83, 206, 93, 195, 249, 211,\n\t\t85, 52, 120, 191, 233, 14, 110, 222, 91, 11, 226, 56, 168,\n\t\t45, 53, 106, 161, 23, 26, 221, 187, 126, 77, 77, 47, 12, 26,\n\t\t11, 243, 85, 223, 19, 165, 0, 24, 72, 245, 146, 252, 83, 43,\n\t\t57, 189, 210, 142, 143, 199, 222, 161, 35, 203, 199, 142,\n\t\t154, 225, 97, 119, 181, 230, 84, 250, 235, 73, 80, 58, 82,\n\t\t19, 233, 156, 79, 159, 44, 55, 122, 99, 30, 91, 17, 81, 185,\n\t\t113, 114, 22, 210, 84, 16, 92, 200, 127, 8, 59, 69, 199, 197,\n\t\t22, 85, 54, 224, 54, 84, 88, 50, 21, 96, 36, 153, 29, 52,\n\t\t249, 240, 226, 231, 215, 12, 164, 26, 164, 47, 111, 220, 219,\n\t\t180, 168, 137, 209, 121, 239, 163, 129, 148, 237, 72, 162,\n\t\t170, 163, 91, 204, 200, 124, 155, 149, 119, 114, 78, 22, 109,\n\t\t235, 193, 5, 98, 25, 162, 189, 249, 233, 89, 177, 143, 75,\n\t\t234, 7, 232, 204, 206, 187, 55, 16, 85, 10, 226, 26, 179,\n\t\t51, 119, 88, 121, 103, 108, 115, 22, 177, 176, 117, 240, 124,\n\t\t6, 82, 44, 241, 9, 177, 7, 105, 106, 198, 128, 70, 250, 33,\n\t\t65, 121, 227, 222, 126, 185, 235, 241, 181, 96, 215, 71, 67,\n\t\t31, 85, 221, 127, 220, 234, 41, 76, 140, 62, 155, 85, 250,\n\t\t6, 193, 23, 169, 38, 122, 138, 199, 180, 154, 183, 53, 108,\n\t\t221, 178, 176, 230, 162, 115, 217, 119, 238, 220, 220, 239,\n\t\t196, 231, 243, 145, 79, 174, 40, 202, 215, 147, 25, 9, 48,\n\t\t60, 179, 250, 55, 193, 234, 190, 82, 255, 34, 52, 228, 195,\n\t\t243, 210, 255, 233, 157, 141, 206, 102, 187, 116, 32, 252,\n\t\t250, 242, 222, 21, 243, 173, 29, 100, 26, 112, 29, 198, 48,\n\t\t251, 168, 192, 70, 70, 215, 77, 30, 207, 179, 10, 175, 84,\n\t\t77, 90, 189, 151, 152, 147, 56, 143, 24, 11, 166, 162, 215,\n\t\t131, 215, 177, 38, 206, 151, 244, 225, 80, 47, 205, 139, 50,\n\t\t86, 54, 154, 87, 154, 71, 169, 30, 183, 65, 177, 243, 211,\n\t\t194, 226, 234, 162, 149, 14, 146, 48, 251, 33, 76, 6, 233,\n\t\t214, 72, 195, 178, 116, 178, 81, 111, 47, 157, 56, 177, 212,\n\t\t174, 55, 78, 74, 178, 76, 228, 40, 122, 82, 248, 143, 82,\n\t\t217, 140, 0, 225, 31, 141, 196, 245, 52, 76, 146, 48, 93,\n\t\t23, 183, 184, 29, 192, 227, 113, 142, 81, 65, 102, 120, 175,\n\t\t9, 204, 174, 128, 56, 243, 157, 9, 12, 58, 247, 77, 161, 103,\n\t\t247, 45, 127, 219, 183, 62, 225, 47, 204, 154, 186, 138, 124,\n\t\t11, 93, 254, 210, 242, 217, 203, 163, 103, 106, 183, 126,\n\t\t85, 184, 252, 15, 77, 95, 229, 115, 0, 120, 156, 99, 96, 100,\n\t\t96, 96, 244, 220, 53, 191, 244, 229, 145, 148, 120, 126, 155,\n\t\t175, 12, 220, 76, 12, 32, 112, 99, 231, 6, 7, 40, 237, 250,\n\t\t255, 205, 255, 45, 76, 83, 25, 207, 2, 185, 28, 12, 76, 12,\n\t\t64, 29, 0, 203, 128, 15, 236, 0, 0, 0, 120, 156, 99, 96, 100,\n\t\t96, 96, 60, 240, 255, 0, 3, 3, 83, 195, 255, 55, 64, 114,\n\t\t42, 3, 80, 4, 25, 48, 175, 6, 0, 145, 18, 6, 53, 120, 156,\n\t\t133, 87, 217, 109, 27, 49, 16, 157, 221, 192, 177, 126, 12,\n\t\t11, 48, 144, 8, 240, 207, 150, 194, 82, 252, 153, 50, 88,\n\t\t74, 190, 83, 197, 150, 144, 18, 212, 64, 0, 35, 200, 225,\n\t\t67, 18, 51, 156, 123, 184, 2, 34, 96, 176, 203, 37, 57, 215,\n\t\t155, 55, 164, 102, 144, 223, 55, 128, 25, 218, 251, 12, 253,\n\t\t73, 239, 151, 185, 192, 253, 180, 234, 56, 203, 244, 148,\n\t\t198, 183, 115, 133, 3, 62, 247, 184, 167, 143, 119, 115, 105,\n\t\t39, 154, 43, 50, 175, 251, 86, 153, 239, 239, 93, 42, 175,\n\t\t73, 118, 42, 143, 105, 46, 236, 195, 241, 110, 42, 240, 137,\n\t\t215, 183, 55, 250, 22, 132, 215, 241, 119, 177, 171, 58, 118,\n\t\t228, 47, 219, 41, 73, 231, 154, 109, 247, 121, 212, 241, 130,\n\t\t118, 30, 187, 136, 175, 215, 132, 245, 186, 142, 155, 46,\n\t\t163, 94, 209, 253, 96, 123, 74, 187, 104, 204, 51, 61, 219,\n\t\t43, 74, 115, 31, 90, 19, 29, 172, 175, 194, 7, 141, 197, 158,\n\t\t150, 39, 196, 11, 247, 18, 78, 53, 206, 183, 115, 23, 179,\n\t\t95, 252, 201, 107, 16, 91, 240, 252, 104, 142, 162, 76, 207,\n\t\t166, 11, 107, 66, 176, 20, 108, 28, 163, 246, 123, 140, 53,\n\t\t231, 147, 237, 140, 216, 210, 222, 2, 183, 93, 96, 133, 207,\n\t\t160, 216, 21, 184, 83, 73, 181, 230, 185, 162, 60, 117, 44,\n\t\t7, 204, 122, 46, 24, 247, 228, 95, 146, 3, 73, 97, 125, 88,\n\t\t123, 7, 18, 25, 43, 30, 180, 118, 204, 179, 228, 67, 101,\n\t\t246, 92, 239, 56, 158, 142, 3, 197, 123, 10, 53, 215, 159,\n\t\t135, 30, 27, 202, 62, 233, 43, 194, 159, 170, 53, 204, 152,\n\t\t111, 106, 76, 227, 101, 44, 118, 192, 49, 140, 117, 199, 250,\n\t\t158, 135, 120, 53, 206, 5, 235, 160, 144, 47, 15, 198, 53,\n\t\t193, 28, 237, 94, 186, 48, 78, 252, 206, 99, 241, 31, 224,\n\t\t70, 177, 65, 121, 188, 202, 225, 234, 121, 35, 254, 87, 199,\n\t\t192, 57, 28, 234, 135, 107, 147, 107, 188, 182, 147, 174,\n\t\t249, 159, 136, 189, 219, 144, 167, 61, 238, 189, 143, 124,\n\t\t11, 115, 206, 253, 128, 171, 213, 72, 230, 176, 239, 93, 186,\n\t\t111, 129, 39, 213, 116, 102, 254, 184, 190, 166, 156, 157,\n\t\t22, 241, 85, 159, 199, 1, 111, 157, 59, 202, 115, 201, 124,\n\t\t136, 245, 26, 191, 5, 190, 80, 191, 52, 125, 171, 239, 191,\n\t\t146, 43, 48, 28, 139, 143, 81, 206, 179, 230, 50, 216, 75,\n\t\t253, 147, 252, 106, 111, 186, 207, 250, 193, 234, 118, 73,\n\t\t79, 255, 166, 182, 106, 251, 237, 188, 227, 126, 193, 235,\n\t\t177, 183, 153, 63, 161, 78, 5, 23, 234, 255, 131, 108, 48,\n\t\t73, 223, 248, 124, 154, 190, 58, 7, 228, 25, 249, 117, 235,\n\t\t113, 119, 124, 88, 80, 247, 157, 197, 170, 239, 234, 27, 80,\n\t\t191, 25, 184, 151, 115, 172, 156, 159, 122, 255, 46, 116,\n\t\t54, 114, 190, 159, 66, 127, 234, 245, 85, 205, 143, 125, 238,\n\t\t185, 98, 43, 246, 17, 160, 243, 76, 99, 59, 77, 140, 115,\n\t\t143, 229, 163, 241, 234, 217, 226, 77, 245, 168, 124, 181,\n\t\t111, 170, 71, 253, 212, 90, 168, 161, 118, 181, 70, 70, 191,\n\t\t138, 175, 29, 247, 58, 159, 173, 118, 176, 134, 197, 110,\n\t\t13, 126, 85, 201, 53, 230, 192, 253, 164, 179, 137, 237, 44,\n\t\t182, 238, 34, 117, 114, 161, 179, 208, 123, 159, 229, 199,\n\t\t244, 105, 78, 23, 236, 31, 177, 191, 15, 18, 191, 251, 59,\n\t\t251, 145, 206, 132, 114, 125, 127, 182, 155, 185, 120, 245,\n\t\t108, 139, 182, 66, 238, 57, 119, 61, 166, 224, 127, 9, 57,\n\t\t15, 126, 109, 252, 7, 188, 115, 172, 1, 51, 155, 119, 30,\n\t\t79, 16, 98, 177, 28, 163, 124, 233, 252, 139, 119, 55, 182,\n\t\t111, 181, 245, 28, 184, 91, 29, 187, 241, 142, 197, 118, 98,\n\t\t175, 118, 91, 118, 31, 80, 60, 33, 212, 201, 48, 142, 53,\n\t\t152, 184, 216, 207, 51, 171, 253, 246, 30, 185, 176, 145,\n\t\t151, 196, 19, 195, 103, 179, 110, 133, 124, 94, 47, 25, 235,\n\t\t107, 250, 54, 231, 184, 250, 215, 57, 165, 243, 33, 47, 185,\n\t\t23, 89, 93, 182, 169, 14, 186, 122, 141, 166, 251, 1, 226,\n\t\t162, 251, 14, 194, 239, 190, 190, 69, 252, 121, 15, 242, 224,\n\t\t79, 224, 205, 169, 215, 60, 98, 117, 238, 189, 22, 229, 71,\n\t\t172, 97, 59, 91, 66, 141, 153, 159, 17, 207, 24, 195, 81,\n\t\t253, 230, 154, 74, 252, 6, 57, 95, 214, 252, 45, 97, 152,\n\t\t107, 43, 255, 79, 88, 66, 79, 129, 246, 107, 195, 181, 88,\n\t\t67, 53, 112, 169, 14, 60, 98, 125, 239, 22, 207, 119, 124,\n\t\t79, 58, 228, 222, 16, 234, 217, 207, 23, 236, 79, 138, 249,\n\t\t49, 220, 167, 171, 156, 233, 176, 173, 79, 219, 171, 54, 168,\n\t\t22, 164, 135, 215, 246, 51, 98, 100, 231, 14, 249, 43, 125,\n\t\t174, 144, 180, 77, 159, 81, 41, 161, 102, 202, 144, 183, 2,\n\t\t169, 47, 111, 112, 43, 194, 85, 90, 107, 255, 9, 180, 87,\n\t\t92, 226, 29, 158, 125, 144, 62, 42, 248, 210, 153, 167, 220,\n\t\t1, 88, 248, 14, 150, 254, 103, 156, 217, 135, 246, 55, 158,\n\t\t75, 184, 127, 145, 249, 215, 112, 79, 124, 243, 24, 140, 43,\n\t\t102, 47, 222, 59, 204, 70, 140, 47, 229, 34, 213, 212, 18,\n\t\t246, 44, 99, 254, 198, 158, 251, 15, 249, 238, 112, 193, 0,\n\t\t0, 0, 120, 156, 101, 215, 123, 156, 86, 243, 22, 6, 240, 181,\n\t\t247, 41, 138, 116, 143, 100, 48, 106, 116, 157, 110, 154,\n\t\t18, 42, 149, 110, 146, 12, 82, 147, 166, 171, 81, 83, 77,\n\t\t53, 186, 153, 46, 82, 41, 66, 136, 66, 232, 40, 36, 33, 202,\n\t\t41, 138, 138, 16, 133, 164, 168, 132, 144, 20, 113, 66, 135,\n\t\t142, 66, 199, 57, 95, 127, 159, 62, 159, 245, 217, 239, 222,\n\t\t191, 181, 158, 245, 60, 207, 90, 251, 125, 155, 136, 255,\n\t\t251, 215, 77, 44, 141, 72, 42, 138, 60, 177, 42, 34, 45, 23,\n\t\t241, 183, 252, 136, 82, 101, 34, 74, 79, 141, 56, 225, 175,\n\t\t216, 18, 113, 98, 91, 177, 63, 162, 76, 97, 68, 89, 249, 101,\n\t\t15, 70, 156, 180, 46, 226, 228, 201, 194, 121, 185, 89, 17,\n\t\t167, 228, 136, 249, 17, 229, 91, 69, 84, 200, 16, 114, 42,\n\t\t118, 16, 107, 34, 42, 169, 175, 36, 183, 210, 225, 136, 202,\n\t\t158, 87, 129, 83, 85, 126, 85, 117, 213, 244, 172, 134, 71,\n\t\t181, 29, 17, 167, 142, 21, 71, 34, 78, 155, 17, 81, 61, 83,\n\t\t56, 63, 189, 75, 68, 13, 124, 106, 232, 119, 70, 81, 68, 134,\n\t\t231, 25, 219, 34, 206, 20, 103, 45, 138, 56, 91, 205, 217,\n\t\t56, 100, 234, 145, 41, 63, 83, 222, 57, 89, 2, 94, 205, 234,\n\t\t194, 121, 205, 205, 226, 120, 68, 45, 218, 106, 205, 19, 56,\n\t\t100, 193, 205, 154, 35, 14, 69, 156, 219, 82, 232, 121, 46,\n\t\t141, 181, 213, 214, 134, 91, 251, 88, 68, 29, 231, 117, 217,\n\t\t84, 215, 243, 122, 114, 234, 45, 136, 168, 239, 190, 254,\n\t\t0, 177, 49, 162, 129, 195, 6, 120, 100, 151, 136, 221, 17,\n\t\t13, 121, 211, 112, 67, 68, 35, 28, 27, 237, 137, 104, 220,\n\t\t67, 208, 223, 132, 15, 77, 61, 107, 58, 59, 226, 60, 122,\n\t\t155, 241, 167, 25, 78, 57, 242, 115, 240, 109, 78, 95, 115,\n\t\t185, 45, 240, 109, 161, 119, 11, 181, 231, 227, 215, 18, 151,\n\t\t150, 120, 92, 64, 195, 69, 174, 173, 204, 163, 149, 252, 214,\n\t\t184, 180, 230, 83, 155, 197, 17, 23, 231, 10, 254, 181, 229,\n\t\t103, 91, 181, 237, 96, 183, 91, 22, 209, 222, 28, 218, 227,\n\t\t118, 9, 189, 29, 204, 186, 35, 222, 29, 113, 233, 196, 195,\n\t\t78, 123, 35, 58, 235, 215, 25, 135, 46, 242, 46, 213, 255,\n\t\t82, 222, 117, 165, 183, 171, 154, 203, 244, 190, 204, 172,\n\t\t186, 233, 117, 57, 236, 238, 106, 187, 171, 187, 162, 170,\n\t\t128, 151, 171, 87, 238, 10, 193, 199, 43, 139, 35, 174, 130,\n\t\t113, 53, 172, 30, 234, 175, 241, 249, 26, 188, 122, 154, 71,\n\t\t79, 222, 246, 194, 189, 23, 140, 94, 52, 229, 209, 155, 231,\n\t\t121, 30, 140, 60, 181, 189, 233, 237, 173, 87, 111, 189, 174,\n\t\t133, 223, 199, 125, 31, 120, 249, 158, 245, 229, 83, 95, 58,\n\t\t250, 209, 218, 63, 59, 98, 64, 41, 225, 108, 128, 220, 129,\n\t\t114, 7, 241, 252, 58, 243, 44, 224, 81, 1, 221, 215, 243,\n\t\t248, 122, 220, 7, 187, 14, 182, 15, 67, 236, 244, 16, 115,\n\t\t43, 180, 107, 133, 118, 187, 208, 252, 135, 194, 29, 138,\n\t\t227, 48, 122, 134, 169, 31, 134, 243, 112, 61, 135, 235, 83,\n\t\t164, 174, 8, 246, 8, 26, 71, 216, 227, 145, 174, 35, 229,\n\t\t140, 114, 94, 236, 254, 6, 49, 26, 167, 209, 180, 140, 161,\n\t\t113, 140, 125, 30, 43, 103, 44, 220, 113, 112, 198, 227, 50,\n\t\t222, 245, 70, 207, 74, 236, 197, 4, 188, 39, 208, 57, 177,\n\t\t32, 98, 18, 238, 147, 112, 154, 172, 199, 100, 115, 188, 9,\n\t\t135, 155, 244, 154, 98, 118, 83, 248, 120, 179, 154, 155,\n\t\t249, 49, 149, 190, 169, 246, 104, 154, 250, 105, 122, 79,\n\t\t167, 109, 186, 103, 211, 225, 222, 194, 243, 91, 236, 214,\n\t\t12, 125, 103, 200, 157, 9, 107, 166, 125, 156, 9, 239, 86,\n\t\t115, 189, 205, 253, 109, 184, 204, 50, 199, 219, 237, 218,\n\t\t237, 60, 185, 195, 252, 238, 228, 249, 157, 244, 207, 118,\n\t\t127, 151, 253, 187, 27, 222, 61, 102, 63, 135, 23, 247, 210,\n\t\t113, 31, 47, 238, 131, 63, 23, 223, 185, 114, 230, 57, 155,\n\t\t71, 227, 253, 56, 221, 239, 29, 122, 160, 137, 224, 247, 131,\n\t\t250, 63, 232, 126, 190, 121, 62, 132, 223, 67, 184, 60, 204,\n\t\t227, 71, 240, 89, 160, 238, 239, 52, 61, 202, 159, 71, 229,\n\t\t44, 132, 187, 144, 190, 69, 226, 49, 252, 30, 135, 255, 132,\n\t\t220, 39, 188, 51, 139, 113, 125, 210, 30, 47, 129, 183, 196,\n\t\t78, 60, 101, 62, 75, 229, 63, 141, 231, 211, 250, 62, 131,\n\t\t235, 179, 118, 228, 89, 190, 44, 179, 151, 203, 204, 230,\n\t\t57, 57, 207, 193, 120, 30, 246, 114, 58, 151, 219, 223, 21,\n\t\t102, 253, 130, 247, 112, 165, 186, 149, 206, 86, 121, 254,\n\t\t34, 221, 47, 170, 127, 137, 135, 171, 189, 207, 171, 245,\n\t\t95, 99, 6, 47, 155, 205, 203, 106, 95, 161, 109, 45, 157,\n\t\t107, 61, 91, 135, 235, 58, 253, 214, 235, 177, 222, 251, 241,\n\t\t42, 93, 175, 57, 223, 96, 222, 27, 96, 188, 110, 135, 223,\n\t\t224, 213, 155, 244, 111, 20, 111, 153, 227, 219, 206, 222,\n\t\t166, 117, 19, 111, 54, 209, 189, 153, 134, 205, 120, 188,\n\t\t67, 215, 187, 242, 223, 211, 115, 139, 94, 91, 204, 225, 125,\n\t\t126, 108, 149, 191, 149, 119, 91, 245, 249, 128, 238, 109,\n\t\t48, 182, 227, 187, 221, 140, 62, 116, 246, 161, 253, 252,\n\t\t72, 207, 143, 212, 239, 128, 181, 3, 246, 78, 187, 178, 211,\n\t\t179, 93, 242, 118, 241, 248, 99, 92, 63, 54, 239, 221, 118,\n\t\t229, 19, 245, 159, 208, 244, 41, 236, 207, 188, 231, 159,\n\t\t217, 201, 61, 188, 218, 195, 199, 207, 157, 125, 78, 227,\n\t\t23, 56, 124, 105, 62, 95, 242, 109, 47, 77, 123, 229, 127,\n\t\t133, 211, 62, 120, 251, 112, 252, 218, 179, 253, 124, 218,\n\t\t255, 215, 85, 254, 1, 123, 118, 128, 95, 223, 120, 246, 141,\n\t\t94, 223, 240, 246, 91, 249, 7, 205, 228, 59, 222, 124, 167,\n\t\t199, 247, 114, 255, 233, 254, 144, 251, 31, 196, 143, 246,\n\t\t242, 39, 247, 135, 249, 254, 47, 94, 253, 140, 223, 47, 184,\n\t\t30, 113, 255, 111, 220, 126, 53, 139, 163, 60, 58, 202, 163,\n\t\t99, 120, 30, 227, 199, 111, 230, 249, 59, 142, 127, 208, 253,\n\t\t135, 119, 225, 56, 95, 254, 212, 243, 79, 253, 254, 123, 48,\n\t\t146, 104, 41, 138, 197, 161, 72, 210, 86, 145, 148, 170, 43,\n\t\t74, 34, 41, 237, 90, 122, 81, 36, 39, 20, 70, 114, 98, 85,\n\t\t177, 32, 146, 50, 89, 98, 105, 36, 101, 51, 196, 225, 72,\n\t\t78, 154, 19, 201, 201, 153, 162, 72, 236, 143, 164, 156, 243,\n\t\t114, 5, 98, 153, 112, 126, 138, 154, 242, 106, 203, 195, 47,\n\t\t191, 57, 146, 10, 114, 43, 140, 21, 62, 87, 132, 225, 55,\n\t\t42, 169, 148, 45, 86, 68, 82, 89, 239, 202, 91, 34, 169, 226,\n\t\t90, 5, 110, 21, 120, 85, 115, 133, 179, 106, 83, 5, 126, 167,\n\t\t174, 139, 228, 180, 110, 66, 94, 245, 28, 1, 255, 244, 114,\n\t\t145, 212, 40, 37, 102, 11, 53, 103, 192, 207, 240, 44, 99,\n\t\t85, 36, 103, 234, 113, 86, 190, 192, 37, 19, 135, 76, 24,\n\t\t231, 204, 139, 164, 38, 78, 53, 183, 69, 82, 11, 239, 172,\n\t\t182, 145, 156, 171, 79, 237, 138, 194, 181, 142, 159, 228,\n\t\t58, 234, 234, 208, 94, 23, 86, 61, 90, 234, 231, 9, 120, 13,\n\t\t96, 53, 128, 149, 173, 119, 54, 13, 13, 61, 111, 212, 37,\n\t\t146, 198, 174, 77, 224, 52, 197, 163, 169, 188, 243, 58, 136,\n\t\t189, 145, 52, 131, 159, 51, 95, 28, 139, 164, 57, 174, 45,\n\t\t224, 183, 56, 30, 201, 249, 147, 35, 241, 58, 36, 45, 233,\n\t\t188, 160, 71, 36, 23, 202, 191, 136, 15, 126, 107, 146, 86,\n\t\t248, 181, 214, 191, 181, 156, 54, 252, 108, 179, 35, 146,\n\t\t139, 225, 248, 141, 73, 218, 153, 85, 187, 13, 145, 248, 141,\n\t\t73, 218, 239, 142, 228, 18, 92, 58, 208, 221, 1, 102, 71,\n\t\t115, 233, 228, 172, 179, 251, 46, 240, 186, 236, 137, 164,\n\t\t171, 25, 94, 86, 93, 56, 235, 102, 142, 126, 87, 146, 203,\n\t\t155, 8, 220, 187, 187, 118, 135, 125, 5, 220, 92, 125, 114,\n\t\t121, 156, 11, 239, 74, 88, 87, 205, 136, 228, 106, 30, 245,\n\t\t224, 217, 53, 101, 132, 250, 158, 120, 246, 196, 207, 239,\n\t\t74, 210, 75, 78, 222, 226, 72, 252, 142, 36, 189, 97, 92,\n\t\t203, 143, 62, 248, 228, 207, 18, 206, 250, 225, 215, 79, 143,\n\t\t254, 122, 244, 119, 29, 160, 102, 160, 30, 3, 157, 15, 178,\n\t\t3, 131, 204, 239, 58, 179, 47, 24, 32, 142, 68, 226, 55, 36,\n\t\t25, 204, 187, 193, 56, 12, 54, 195, 33, 238, 135, 232, 89,\n\t\t136, 127, 161, 154, 161, 188, 26, 74, 219, 48, 158, 12, 231,\n\t\t217, 112, 123, 91, 68, 207, 8, 253, 253, 102, 36, 35, 113,\n\t\t27, 105, 78, 163, 228, 143, 50, 227, 98, 156, 110, 224, 247,\n\t\t104, 26, 70, 251, 60, 6, 239, 177, 124, 25, 135, 207, 56,\n\t\t121, 227, 213, 141, 135, 127, 35, 94, 37, 184, 150, 56, 159,\n\t\t224, 126, 162, 243, 137, 116, 77, 50, 207, 73, 242, 38, 219,\n\t\t181, 201, 60, 185, 137, 134, 41, 246, 122, 10, 79, 111, 118,\n\t\t157, 166, 231, 116, 187, 48, 157, 230, 91, 120, 58, 195, 236,\n\t\t102, 194, 156, 201, 203, 91, 241, 157, 101, 255, 102, 193,\n\t\t185, 93, 220, 129, 219, 29, 184, 223, 185, 49, 146, 217, 174,\n\t\t119, 193, 188, 203, 238, 221, 109, 111, 238, 145, 119, 15,\n\t\t236, 57, 246, 226, 94, 121, 247, 225, 63, 151, 214, 185, 114,\n\t\t231, 153, 249, 60, 253, 238, 215, 227, 1, 61, 31, 192, 241,\n\t\t65, 26, 230, 251, 252, 144, 30, 15, 187, 62, 2, 235, 17, 231,\n\t\t11, 112, 89, 192, 247, 71, 105, 88, 104, 119, 22, 226, 190,\n\t\t8, 167, 69, 230, 248, 152, 103, 143, 243, 107, 49, 47, 22,\n\t\t243, 230, 73, 190, 45, 177, 235, 75, 244, 125, 10, 247, 165,\n\t\t60, 127, 218, 108, 158, 193, 231, 89, 53, 203, 224, 62, 103,\n\t\t151, 159, 23, 203, 113, 90, 78, 255, 10, 51, 121, 193, 62,\n\t\t255, 67, 255, 149, 102, 179, 18, 254, 42, 247, 47, 241, 105,\n\t\t53, 255, 86, 251, 188, 6, 214, 203, 242, 94, 193, 101, 45,\n\t\t47, 214, 186, 95, 167, 126, 61, 204, 245, 244, 188, 106, 151,\n\t\t94, 117, 254, 154, 249, 189, 38, 127, 3, 239, 55, 208, 244,\n\t\t186, 153, 190, 65, 243, 27, 158, 189, 73, 207, 155, 118, 99,\n\t\t35, 222, 111, 225, 251, 150, 62, 111, 227, 181, 201, 206,\n\t\t108, 242, 61, 176, 89, 191, 119, 60, 127, 7, 247, 119, 225,\n\t\t188, 71, 235, 123, 222, 151, 45, 52, 248, 238, 79, 222, 119,\n\t\t221, 234, 29, 217, 106, 14, 31, 192, 218, 198, 215, 237, 244,\n\t\t108, 183, 3, 31, 234, 243, 17, 157, 190, 243, 147, 29, 230,\n\t\t178, 19, 199, 157, 242, 119, 241, 124, 151, 243, 221, 246,\n\t\t111, 55, 47, 63, 177, 147, 159, 226, 246, 153, 186, 61, 250,\n\t\t126, 129, 219, 23, 122, 127, 169, 110, 47, 173, 95, 193, 221,\n\t\t167, 102, 31, 14, 95, 227, 185, 223, 179, 253, 206, 14, 120,\n\t\t7, 14, 152, 215, 183, 244, 30, 132, 255, 29, 223, 190, 183,\n\t\t227, 63, 216, 169, 31, 97, 252, 8, 251, 39, 222, 28, 230,\n\t\t253, 97, 249, 63, 195, 255, 5, 191, 35, 124, 57, 162, 255,\n\t\t175, 176, 142, 122, 118, 20, 238, 49, 58, 127, 19, 191, 251,\n\t\t30, 254, 3, 254, 113, 154, 255, 195, 247, 63, 225, 251, 206,\n\t\t78, 253, 221, 144, 38, 135, 35, 77, 55, 70, 90, 106, 94, 164,\n\t\t165, 139, 35, 61, 97, 119, 164, 101, 182, 69, 90, 182, 149,\n\t\t216, 28, 233, 73, 37, 145, 158, 92, 87, 44, 243, 231, 197,\n\t\t156, 72, 79, 153, 28, 105, 249, 25, 145, 86, 200, 17, 59,\n\t\t34, 173, 56, 59, 210, 74, 45, 5, 188, 202, 171, 34, 173, 114,\n\t\t36, 210, 170, 11, 34, 173, 86, 20, 233, 169, 254, 36, 241,\n\t\t55, 65, 122, 90, 143, 72, 171, 23, 8, 216, 167, 59, 171, 161,\n\t\t214, 119, 108, 122, 134, 251, 12, 24, 103, 118, 19, 234, 206,\n\t\t210, 247, 236, 1, 145, 158, 227, 190, 102, 97, 164, 181, 244,\n\t\t203, 202, 18, 122, 215, 150, 91, 7, 70, 221, 220, 72, 235,\n\t\t149, 19, 120, 215, 119, 222, 96, 86, 164, 217, 213, 133, 126,\n\t\t13, 213, 249, 191, 123, 218, 104, 106, 164, 141, 229, 53,\n\t\t198, 191, 201, 82, 177, 55, 210, 243, 242, 35, 109, 134, 103,\n\t\t14, 190, 205, 59, 136, 45, 145, 182, 16, 231, 183, 141, 180,\n\t\t165, 231, 23, 208, 121, 161, 154, 139, 232, 107, 141, 119,\n\t\t155, 69, 145, 182, 45, 37, 214, 68, 218, 78, 94, 251, 197,\n\t\t145, 250, 191, 120, 218, 209, 179, 142, 112, 59, 241, 160,\n\t\t179, 218, 206, 135, 34, 189, 148, 111, 93, 105, 234, 122,\n\t\t44, 210, 110, 56, 92, 158, 33, 120, 209, 221, 231, 43, 154,\n\t\t8, 254, 94, 201, 135, 171, 196, 213, 122, 245, 240, 188, 7,\n\t\t173, 61, 229, 245, 164, 187, 87, 151, 72, 243, 96, 246, 230,\n\t\t115, 111, 122, 174, 205, 22, 174, 125, 60, 203, 135, 157,\n\t\t47, 183, 47, 94, 125, 121, 214, 143, 158, 254, 120, 14, 168,\n\t\t26, 233, 64, 92, 6, 58, 27, 132, 215, 32, 254, 95, 167, 166,\n\t\t64, 254, 245, 240, 7, 235, 51, 24, 182, 239, 190, 116, 168,\n\t\t24, 198, 247, 225, 116, 20, 241, 179, 8, 159, 17, 106, 70,\n\t\t202, 27, 73, 223, 40, 81, 108, 70, 197, 52, 22, 195, 185,\n\t\t129, 223, 163, 113, 24, 173, 255, 104, 154, 198, 208, 50,\n\t\t214, 92, 198, 170, 31, 183, 39, 210, 241, 118, 99, 60, 221,\n\t\t55, 242, 185, 4, 143, 146, 13, 145, 78, 112, 62, 145, 111,\n\t\t19, 241, 153, 212, 229, 127, 220, 233, 98, 4, 0, 0, 0, 120,\n\t\t156, 99, 96, 100, 96, 96, 94, 205, 240, 146, 65, 129, 1, 4,\n\t\t152, 128, 152, 17, 8, 25, 24, 28, 192, 124, 6, 0, 46, 55,\n\t\t1, 253, 0, 120, 156, 173, 146, 193, 106, 19, 65, 28, 198,\n\t\t191, 217, 77, 10, 77, 17, 154, 74, 35, 17, 193, 241, 96, 155,\n\t\t64, 179, 161, 169, 177, 77, 14, 66, 41, 230, 224, 77, 90,\n\t\t196, 155, 108, 147, 109, 186, 52, 201, 44, 187, 211, 134,\n\t\t30, 61, 248, 24, 226, 89, 60, 249, 0, 62, 128, 7, 15, 62,\n\t\t132, 15, 224, 19, 232, 183, 211, 127, 181, 17, 91, 20, 146,\n\t\t144, 204, 111, 230, 255, 223, 239, 251, 102, 103, 0, 220,\n\t\t83, 47, 160, 112, 241, 185, 139, 199, 194, 10, 85, 188, 17,\n\t\t246, 80, 196, 7, 97, 31, 247, 241, 93, 184, 128, 170, 122,\n\t\t42, 92, 196, 67, 117, 217, 179, 128, 138, 250, 33, 92, 194,\n\t\t134, 151, 8, 47, 225, 142, 247, 69, 120, 25, 183, 253, 91,\n\t\t194, 101, 20, 253, 134, 240, 10, 170, 254, 80, 120, 149, 61,\n\t\t239, 133, 43, 236, 249, 76, 119, 85, 88, 228, 236, 145, 75,\n\t\t146, 179, 66, 11, 207, 133, 61, 186, 189, 19, 246, 241, 4,\n\t\t31, 133, 11, 104, 169, 178, 112, 17, 207, 212, 43, 225, 5,\n\t\t108, 168, 175, 194, 37, 188, 244, 42, 194, 75, 8, 188, 183,\n\t\t194, 203, 88, 243, 190, 9, 151, 81, 242, 31, 8, 175, 160,\n\t\t229, 111, 9, 175, 98, 205, 127, 45, 92, 97, 207, 39, 236,\n\t\t193, 32, 193, 57, 82, 196, 24, 226, 24, 22, 26, 53, 244, 81,\n\t\t231, 216, 99, 109, 226, 86, 118, 49, 69, 132, 140, 243, 49,\n\t\t71, 236, 153, 228, 60, 141, 135, 199, 86, 215, 250, 117, 221,\n\t\t51, 19, 171, 119, 167, 81, 102, 198, 172, 93, 247, 144, 70,\n\t\t219, 73, 166, 228, 124, 182, 207, 245, 17, 77, 7, 124, 228,\n\t\t138, 128, 110, 235, 94, 26, 69, 122, 223, 140, 98, 150, 174,\n\t\t116, 201, 202, 255, 235, 55, 88, 9, 176, 195, 223, 230, 13,\n\t\t94, 141, 118, 176, 19, 108, 206, 59, 255, 22, 15, 189, 67,\n\t\t231, 109, 55, 230, 175, 246, 122, 253, 51, 254, 167, 156,\n\t\t199, 174, 163, 235, 28, 47, 115, 215, 41, 213, 234, 4, 219,\n\t\t173, 142, 174, 205, 216, 157, 69, 105, 22, 155, 73, 87, 187,\n\t\t248, 245, 223, 249, 103, 213, 219, 191, 146, 55, 254, 76,\n\t\t46, 74, 237, 60, 118, 67, 98, 31, 240, 38, 228, 145, 114,\n\t\t137, 67, 172, 83, 70, 83, 198, 112, 204, 131, 39, 238, 206,\n\t\t156, 82, 36, 164, 168, 166, 84, 223, 153, 106, 214, 35, 215,\n\t\t17, 114, 54, 224, 104, 185, 158, 155, 157, 176, 199, 114,\n\t\t35, 56, 56, 142, 244, 52, 58, 92, 207, 244, 216, 100, 86,\n\t\t39, 38, 57, 29, 133, 169, 142, 251, 102, 162, 179, 200, 234,\n\t\t112, 50, 208, 214, 152, 209, 73, 108, 217, 157, 95, 71, 75,\n\t\t171, 140, 111, 163, 201, 239, 145, 236, 45, 156, 217, 91,\n\t\t224, 236, 199, 108, 183, 54, 201, 186, 205, 230, 17, 119,\n\t\t21, 94, 236, 42, 232, 155, 241, 191, 158, 233, 223, 206, 113,\n\t\t62, 55, 240, 166, 27, 50, 215, 108, 63, 1, 39, 192, 235, 94,\n\t\t0, 120, 156, 109, 90, 5, 152, 228, 198, 209, 221, 238, 234,\n\t\t225, 153, 133, 59, 179, 19, 39, 177, 29, 142, 18, 199, 73,\n\t\t28, 182, 195, 113, 152, 25, 53, 82, 207, 72, 55, 162, 83,\n\t\t75, 59, 55, 151, 216, 225, 196, 177, 29, 176, 3, 14, 51, 51,\n\t\t51, 51, 51, 51, 51, 51, 231, 127, 213, 173, 217, 157, 117,\n\t\t254, 251, 190, 211, 84, 181, 164, 150, 186, 186, 234, 213,\n\t\t171, 210, 174, 201, 53, 251, 239, 191, 239, 95, 59, 118, 237,\n\t\t255, 249, 71, 175, 196, 65, 172, 73, 33, 5, 9, 37, 90, 162,\n\t\t45, 58, 162, 43, 122, 162, 47, 6, 98, 40, 70, 98, 93, 108,\n\t\t136, 77, 177, 37, 246, 137, 253, 226, 8, 113, 164, 56, 74,\n\t\t28, 45, 142, 17, 199, 138, 227, 196, 241, 226, 18, 226, 146,\n\t\t226, 4, 113, 41, 113, 105, 113, 25, 113, 162, 56, 73, 156,\n\t\t44, 46, 43, 46, 39, 46, 47, 174, 32, 174, 40, 174, 36, 174,\n\t\t44, 174, 34, 60, 113, 85, 113, 53, 113, 138, 184, 186, 56,\n\t\t85, 92, 67, 92, 83, 92, 75, 156, 38, 174, 45, 174, 35, 174,\n\t\t43, 174, 39, 174, 47, 110, 32, 110, 40, 78, 23, 103, 136,\n\t\t27, 137, 27, 139, 155, 136, 155, 138, 155, 137, 155, 139,\n\t\t91, 136, 91, 138, 51, 197, 173, 196, 173, 197, 109, 196, 109,\n\t\t197, 237, 196, 237, 197, 29, 196, 29, 197, 157, 196, 157,\n\t\t197, 93, 196, 93, 197, 221, 214, 214, 215, 126, 187, 54, 18,\n\t\t119, 23, 247, 16, 247, 20, 247, 18, 247, 22, 247, 17, 247,\n\t\t21, 247, 19, 247, 23, 15, 16, 15, 20, 190, 24, 139, 64, 132,\n\t\t66, 139, 137, 152, 138, 72, 196, 226, 128, 152, 137, 68, 164,\n\t\t34, 19, 185, 40, 196, 65, 81, 10, 35, 42, 81, 139, 109, 49,\n\t\t23, 135, 196, 66, 28, 22, 15, 18, 15, 22, 103, 137, 179, 197,\n\t\t67, 196, 67, 197, 195, 196, 195, 197, 35, 196, 35, 197, 163,\n\t\t196, 163, 197, 99, 196, 57, 226, 177, 226, 92, 113, 158, 56,\n\t\t95, 60, 78, 60, 94, 60, 65, 60, 81, 92, 32, 46, 20, 79, 18,\n\t\t79, 22, 79, 17, 79, 21, 23, 137, 167, 137, 167, 139, 103,\n\t\t136, 103, 138, 103, 137, 103, 139, 231, 136, 231, 138, 231,\n\t\t137, 231, 139, 23, 136, 23, 138, 23, 137, 23, 139, 151, 136,\n\t\t151, 138, 151, 137, 151, 139, 87, 136, 87, 138, 87, 137, 87,\n\t\t139, 215, 136, 215, 138, 215, 137, 215, 139, 55, 136, 55,\n\t\t138, 55, 137, 55, 139, 183, 136, 183, 138, 183, 137, 183,\n\t\t139, 119, 136, 119, 138, 119, 137, 119, 139, 247, 136, 247,\n\t\t138, 247, 137, 247, 139, 15, 136, 15, 138, 15, 137, 15, 139,\n\t\t143, 136, 143, 138, 143, 137, 143, 139, 79, 136, 79, 138,\n\t\t79, 137, 79, 139, 207, 136, 207, 138, 207, 137, 207, 139,\n\t\t47, 172, 157, 40, 190, 40, 190, 36, 190, 44, 190, 34, 190,\n\t\t42, 190, 38, 190, 46, 190, 33, 190, 41, 190, 37, 190, 45,\n\t\t190, 35, 190, 43, 190, 39, 190, 47, 126, 32, 126, 40, 126,\n\t\t36, 126, 44, 126, 34, 126, 42, 126, 38, 126, 46, 126, 33,\n\t\t126, 41, 126, 37, 126, 45, 126, 35, 126, 43, 126, 39, 126,\n\t\t47, 254, 32, 254, 40, 254, 36, 254, 44, 254, 34, 254, 42,\n\t\t254, 38, 254, 46, 254, 33, 254, 41, 254, 37, 254, 45, 254,\n\t\t35, 254, 43, 217, 13, 164, 36, 169, 100, 75, 182, 101, 71,\n\t\t118, 101, 79, 246, 229, 64, 14, 229, 72, 174, 203, 13, 185,\n\t\t41, 183, 228, 62, 185, 95, 30, 33, 143, 148, 71, 201, 163,\n\t\t229, 49, 242, 88, 121, 156, 60, 94, 94, 66, 94, 82, 158, 32,\n\t\t47, 37, 47, 45, 47, 35, 79, 148, 39, 201, 147, 229, 101, 229,\n\t\t229, 228, 229, 229, 21, 228, 21, 215, 206, 145, 87, 146, 87,\n\t\t150, 87, 145, 158, 188, 170, 188, 154, 60, 69, 94, 93, 158,\n\t\t42, 175, 33, 175, 41, 175, 37, 79, 91, 59, 111, 237, 36, 121,\n\t\t109, 121, 29, 121, 93, 121, 61, 121, 125, 121, 3, 121, 67,\n\t\t121, 186, 60, 67, 222, 72, 222, 88, 222, 68, 222, 84, 222,\n\t\t76, 222, 92, 222, 66, 222, 82, 158, 41, 111, 37, 111, 45,\n\t\t111, 35, 111, 43, 111, 39, 111, 47, 239, 32, 239, 40, 239,\n\t\t36, 239, 44, 239, 34, 239, 42, 239, 38, 239, 46, 239, 33,\n\t\t239, 41, 239, 37, 239, 45, 239, 35, 239, 43, 239, 39, 239,\n\t\t47, 31, 32, 31, 40, 125, 57, 150, 129, 12, 165, 150, 19, 57,\n\t\t149, 145, 140, 229, 1, 57, 147, 137, 76, 101, 38, 115, 89,\n\t\t200, 131, 178, 148, 102, 237, 252, 181, 115, 101, 37, 107,\n\t\t185, 45, 231, 242, 144, 92, 200, 195, 242, 65, 242, 193, 242,\n\t\t44, 121, 182, 124, 136, 124, 168, 124, 152, 124, 248, 90,\n\t\t87, 62, 66, 62, 82, 62, 74, 62, 90, 62, 70, 158, 35, 31, 43,\n\t\t207, 149, 231, 201, 243, 229, 227, 228, 227, 229, 19, 228,\n\t\t19, 229, 5, 242, 66, 249, 36, 249, 100, 249, 20, 249, 84,\n\t\t121, 145, 124, 154, 124, 186, 124, 134, 124, 166, 124, 150,\n\t\t124, 182, 124, 142, 124, 174, 124, 158, 124, 190, 124, 129,\n\t\t124, 161, 124, 145, 124, 177, 124, 137, 124, 169, 124, 153,\n\t\t124, 185, 124, 133, 124, 165, 124, 149, 124, 181, 124, 141,\n\t\t124, 173, 124, 157, 124, 189, 124, 131, 124, 163, 124, 147,\n\t\t124, 179, 124, 139, 124, 171, 124, 155, 124, 187, 124, 135,\n\t\t124, 167, 124, 151, 124, 183, 124, 143, 124, 175, 124, 159,\n\t\t124, 191, 252, 128, 252, 160, 252, 144, 252, 176, 252, 136,\n\t\t252, 168, 252, 152, 252, 184, 252, 132, 252, 164, 252, 148,\n\t\t252, 180, 252, 140, 252, 172, 252, 156, 252, 188, 252, 130,\n\t\t252, 162, 252, 146, 252, 178, 252, 138, 252, 170, 252, 154,\n\t\t252, 186, 252, 134, 252, 166, 252, 150, 252, 182, 252, 142,\n\t\t252, 174, 252, 158, 252, 190, 252, 129, 252, 161, 252, 145,\n\t\t252, 177, 252, 137, 252, 169, 252, 153, 252, 185, 252, 133,\n\t\t252, 165, 252, 149, 252, 181, 252, 141, 252, 173, 252, 157,\n\t\t252, 189, 252, 131, 252, 163, 252, 147, 252, 179, 252, 139,\n\t\t252, 171, 252, 155, 252, 187, 252, 135, 252, 167, 252, 151,\n\t\t252, 183, 252, 143, 252, 47, 173, 145, 32, 73, 68, 138, 90,\n\t\t212, 166, 14, 117, 169, 71, 125, 26, 208, 144, 70, 180, 78,\n\t\t27, 180, 73, 91, 180, 143, 246, 211, 17, 116, 36, 29, 69,\n\t\t71, 211, 49, 116, 44, 29, 71, 199, 211, 37, 232, 146, 116,\n\t\t2, 93, 138, 46, 77, 151, 161, 19, 233, 36, 58, 153, 46, 75,\n\t\t151, 163, 203, 211, 21, 232, 138, 116, 37, 186, 50, 93, 133,\n\t\t60, 186, 42, 93, 141, 78, 161, 171, 211, 169, 116, 13, 186,\n\t\t38, 93, 139, 78, 163, 107, 211, 117, 232, 186, 116, 61, 186,\n\t\t62, 221, 128, 110, 72, 167, 211, 25, 116, 163, 181, 183, 209,\n\t\t141, 233, 38, 116, 83, 186, 25, 221, 156, 110, 65, 183, 164,\n\t\t51, 233, 86, 116, 235, 181, 11, 233, 54, 116, 91, 186, 29,\n\t\t221, 158, 238, 64, 119, 164, 59, 209, 157, 233, 46, 116, 87,\n\t\t186, 27, 221, 157, 238, 65, 247, 164, 123, 209, 189, 233,\n\t\t62, 116, 95, 186, 31, 221, 159, 30, 64, 15, 36, 159, 198,\n\t\t20, 80, 72, 154, 38, 52, 165, 136, 98, 58, 64, 51, 74, 40,\n\t\t165, 140, 114, 42, 232, 32, 149, 100, 168, 162, 154, 182,\n\t\t105, 78, 135, 104, 65, 135, 233, 65, 244, 96, 58, 139, 206,\n\t\t166, 135, 208, 67, 233, 97, 244, 112, 122, 4, 61, 146, 30,\n\t\t69, 143, 166, 199, 208, 57, 244, 88, 58, 151, 206, 163, 243,\n\t\t233, 113, 244, 120, 122, 2, 61, 145, 46, 160, 11, 233, 73,\n\t\t244, 100, 122, 10, 61, 149, 46, 162, 167, 209, 211, 233, 25,\n\t\t244, 76, 122, 22, 61, 155, 158, 67, 207, 165, 231, 209, 243,\n\t\t233, 5, 244, 66, 122, 17, 189, 152, 94, 66, 47, 165, 151,\n\t\t209, 203, 233, 21, 244, 74, 122, 21, 189, 154, 94, 67, 175,\n\t\t165, 215, 209, 235, 233, 13, 244, 70, 122, 19, 189, 153, 222,\n\t\t66, 111, 165, 183, 209, 219, 233, 29, 244, 78, 122, 23, 189,\n\t\t155, 222, 67, 239, 165, 247, 209, 251, 233, 3, 244, 65, 250,\n\t\t16, 125, 152, 62, 66, 31, 165, 143, 209, 199, 233, 19, 244,\n\t\t73, 250, 20, 125, 154, 62, 67, 159, 165, 207, 209, 231, 233,\n\t\t11, 244, 69, 250, 18, 125, 153, 190, 66, 95, 165, 175, 209,\n\t\t215, 233, 27, 244, 77, 250, 22, 125, 155, 190, 67, 223, 165,\n\t\t239, 209, 247, 233, 7, 244, 67, 250, 17, 253, 152, 126, 66,\n\t\t63, 165, 159, 209, 207, 233, 23, 244, 75, 250, 21, 253, 154,\n\t\t126, 67, 191, 165, 223, 209, 239, 233, 15, 244, 71, 250, 19,\n\t\t253, 153, 254, 66, 127, 165, 191, 209, 223, 233, 31, 244,\n\t\t79, 250, 23, 253, 155, 254, 67, 255, 85, 107, 74, 40, 169,\n\t\t72, 41, 213, 82, 109, 213, 81, 93, 213, 83, 125, 53, 80, 67,\n\t\t53, 82, 235, 106, 67, 109, 170, 45, 181, 79, 237, 87, 71,\n\t\t168, 35, 213, 81, 234, 104, 117, 140, 58, 86, 29, 167, 142,\n\t\t87, 151, 80, 151, 84, 39, 168, 75, 169, 75, 171, 203, 168,\n\t\t19, 213, 73, 234, 100, 117, 89, 117, 57, 117, 121, 117, 5,\n\t\t117, 69, 117, 37, 117, 101, 117, 21, 229, 169, 171, 170, 171,\n\t\t169, 83, 212, 213, 213, 169, 234, 26, 234, 154, 234, 90, 234,\n\t\t52, 117, 109, 117, 29, 117, 93, 117, 61, 117, 125, 117, 131,\n\t\t181, 111, 171, 27, 170, 211, 213, 25, 107, 251, 212, 141,\n\t\t212, 141, 213, 77, 212, 77, 213, 205, 212, 205, 213, 45, 212,\n\t\t45, 213, 153, 234, 86, 234, 214, 234, 54, 234, 182, 234, 118,\n\t\t234, 246, 234, 14, 234, 142, 234, 78, 234, 206, 234, 46, 234,\n\t\t174, 234, 110, 234, 238, 234, 30, 234, 158, 234, 94, 234,\n\t\t222, 234, 62, 234, 190, 234, 126, 234, 254, 234, 1, 234, 129,\n\t\t202, 87, 99, 21, 168, 80, 105, 53, 81, 83, 21, 169, 88, 29,\n\t\t80, 51, 149, 168, 84, 101, 42, 87, 133, 58, 168, 74, 101,\n\t\t84, 165, 106, 181, 173, 230, 234, 144, 90, 168, 195, 234,\n\t\t65, 234, 193, 234, 44, 117, 182, 122, 136, 122, 168, 122,\n\t\t152, 122, 184, 122, 132, 122, 164, 122, 148, 122, 180, 122,\n\t\t140, 58, 71, 61, 86, 157, 171, 206, 83, 231, 171, 199, 169,\n\t\t199, 171, 39, 168, 39, 170, 11, 212, 133, 234, 73, 234, 201,\n\t\t234, 41, 234, 169, 234, 34, 245, 52, 245, 116, 245, 12, 245,\n\t\t204, 209, 52, 241, 141, 241, 82, 191, 172, 226, 44, 110, 165,\n\t\t181, 137, 131, 182, 209, 126, 25, 68, 173, 8, 63, 149, 50,\n\t\t149, 95, 170, 218, 232, 82, 77, 226, 36, 237, 86, 145, 151,\n\t\t248, 229, 84, 203, 42, 234, 176, 28, 155, 170, 21, 68, 58,\n\t\t152, 181, 170, 56, 213, 102, 224, 238, 245, 138, 164, 54,\n\t\t195, 70, 78, 227, 172, 54, 189, 34, 159, 235, 210, 203, 39,\n\t\t147, 182, 137, 167, 153, 159, 80, 144, 99, 149, 121, 170,\n\t\t91, 65, 146, 7, 51, 85, 230, 126, 216, 13, 243, 121, 150,\n\t\t64, 104, 197, 217, 56, 63, 164, 74, 29, 230, 202, 44, 178,\n\t\t160, 203, 207, 241, 252, 164, 82, 246, 218, 73, 226, 79, 251,\n\t\t120, 189, 176, 136, 242, 76, 155, 254, 118, 158, 212, 169,\n\t\t230, 201, 7, 141, 200, 19, 245, 26, 185, 46, 218, 7, 203,\n\t\t32, 15, 117, 103, 236, 219, 95, 170, 252, 169, 194, 127, 163,\n\t\t198, 121, 62, 235, 242, 1, 6, 152, 181, 138, 50, 206, 170,\n\t\t118, 224, 167, 186, 244, 213, 36, 207, 42, 156, 79, 194, 118,\n\t\t92, 249, 73, 28, 12, 42, 125, 168, 242, 34, 29, 79, 163, 170,\n\t\t111, 229, 121, 28, 86, 81, 31, 231, 166, 153, 151, 232, 73,\n\t\t53, 116, 98, 160, 179, 74, 151, 3, 167, 148, 124, 249, 200,\n\t\t201, 7, 106, 83, 197, 147, 133, 226, 181, 116, 242, 186, 10,\n\t\t113, 97, 59, 206, 248, 167, 181, 29, 135, 58, 111, 197, 169,\n\t\t63, 213, 253, 212, 47, 120, 67, 102, 186, 108, 251, 33, 223,\n\t\t164, 176, 55, 149, 210, 97, 92, 141, 76, 165, 11, 111, 236,\n\t\t7, 179, 185, 95, 134, 163, 137, 15, 171, 44, 181, 238, 82,\n\t\t80, 69, 226, 47, 90, 133, 143, 77, 195, 238, 229, 69, 103,\n\t\t146, 151, 60, 62, 180, 151, 47, 21, 59, 83, 163, 180, 244,\n\t\t1, 29, 84, 67, 236, 227, 118, 153, 187, 197, 140, 150, 138,\n\t\t93, 193, 128, 247, 211, 11, 226, 50, 72, 244, 208, 238, 231,\n\t\t82, 177, 187, 190, 84, 172, 35, 52, 202, 198, 193, 90, 99,\n\t\t189, 152, 193, 233, 131, 56, 155, 228, 141, 220, 15, 202,\n\t\t220, 152, 200, 143, 75, 67, 99, 63, 235, 251, 101, 153, 207,\n\t\t237, 99, 7, 78, 180, 15, 237, 58, 185, 46, 154, 243, 188,\n\t\t167, 45, 220, 85, 234, 182, 62, 84, 248, 89, 216, 13, 242,\n\t\t180, 40, 181, 49, 251, 244, 161, 32, 241, 83, 127, 229, 113,\n\t\t106, 26, 79, 224, 45, 218, 159, 192, 111, 75, 77, 122, 161,\n\t\t123, 248, 239, 25, 248, 123, 116, 196, 234, 245, 85, 25, 251,\n\t\t217, 52, 209, 45, 152, 45, 195, 26, 252, 68, 103, 161, 95,\n\t\t178, 183, 181, 75, 60, 37, 79, 59, 120, 78, 202, 155, 133,\n\t\t237, 201, 116, 213, 95, 154, 166, 46, 118, 76, 198, 239, 214,\n\t\t41, 117, 53, 215, 26, 155, 20, 229, 69, 17, 103, 83, 47, 64,\n\t\t0, 181, 39, 240, 33, 248, 131, 251, 241, 242, 66, 103, 189,\n\t\t0, 139, 224, 141, 43, 135, 206, 217, 60, 220, 89, 230, 52,\n\t\t211, 11, 133, 168, 48, 221, 230, 121, 166, 199, 193, 231,\n\t\t69, 126, 50, 233, 85, 81, 157, 142, 43, 236, 112, 27, 87,\n\t\t22, 209, 162, 93, 23, 54, 80, 18, 157, 230, 89, 203, 198,\n\t\t193, 208, 30, 61, 115, 176, 102, 19, 213, 25, 135, 202, 32,\n\t\t40, 217, 111, 248, 77, 66, 42, 141, 161, 40, 132, 163, 212,\n\t\t73, 18, 229, 101, 54, 8, 52, 194, 126, 18, 7, 126, 165, 55,\n\t\t35, 44, 213, 43, 114, 120, 154, 179, 254, 198, 202, 128, 117,\n\t\t136, 21, 189, 46, 86, 207, 242, 218, 183, 220, 22, 57, 219,\n\t\t219, 235, 247, 237, 25, 113, 83, 238, 25, 170, 139, 189, 55,\n\t\t217, 237, 157, 38, 249, 88, 183, 231, 165, 206, 0, 64, 149,\n\t\t111, 102, 166, 13, 216, 65, 60, 245, 198, 101, 172, 39, 129,\n\t\t111, 180, 243, 6, 195, 251, 211, 98, 92, 50, 8, 168, 108,\n\t\t198, 40, 82, 135, 45, 32, 131, 153, 81, 80, 87, 48, 100, 177,\n\t\t232, 21, 126, 161, 49, 121, 92, 40, 227, 111, 235, 182, 51,\n\t\t141, 130, 225, 77, 199, 34, 74, 157, 184, 223, 60, 65, 100,\n\t\t149, 241, 76, 87, 81, 153, 215, 211, 168, 87, 35, 44, 75,\n\t\t204, 171, 241, 18, 99, 248, 6, 118, 62, 14, 90, 85, 89, 7,\n\t\t179, 62, 12, 174, 23, 222, 56, 78, 146, 62, 204, 170, 157,\n\t\t1, 186, 78, 132, 179, 58, 193, 58, 179, 19, 237, 218, 225,\n\t\t67, 0, 163, 204, 40, 147, 151, 85, 143, 15, 206, 103, 172,\n\t\t84, 23, 93, 157, 109, 235, 4, 206, 161, 240, 228, 188, 53,\n\t\t197, 219, 38, 140, 62, 85, 199, 196, 149, 6, 34, 116, 177,\n\t\t253, 165, 78, 18, 31, 129, 141, 208, 237, 37, 60, 41, 54,\n\t\t114, 220, 97, 27, 120, 105, 56, 192, 104, 21, 229, 6, 235,\n\t\t214, 93, 83, 199, 21, 219, 74, 141, 113, 75, 59, 0, 48, 106,\n\t\t221, 197, 201, 130, 177, 172, 231, 167, 184, 209, 207, 2,\n\t\t221, 78, 117, 56, 139, 171, 193, 132, 39, 195, 44, 7, 52,\n\t\t32, 79, 235, 178, 27, 53, 94, 228, 226, 222, 201, 91, 54,\n\t\t74, 240, 214, 245, 120, 103, 139, 87, 71, 154, 45, 94, 29,\n\t\t226, 45, 94, 213, 121, 197, 125, 55, 226, 130, 221, 138, 77,\n\t\t176, 91, 153, 131, 189, 185, 3, 198, 9, 181, 153, 1, 192,\n\t\t218, 137, 95, 240, 143, 221, 10, 68, 97, 14, 219, 235, 254,\n\t\t193, 58, 175, 154, 121, 156, 232, 236, 140, 53, 102, 25, 160,\n\t\t211, 121, 85, 203, 164, 184, 182, 53, 129, 199, 100, 148,\n\t\t234, 168, 51, 69, 192, 21, 200, 52, 136, 181, 113, 142, 160,\n\t\t88, 231, 92, 226, 89, 224, 210, 8, 149, 46, 204, 0, 124, 243,\n\t\t19, 197, 137, 162, 87, 234, 34, 89, 192, 211, 146, 117, 4,\n\t\t147, 131, 11, 235, 125, 10, 0, 86, 12, 248, 18, 111, 12, 140,\n\t\t8, 34, 14, 55, 120, 161, 98, 144, 27, 172, 160, 203, 192,\n\t\t212, 240, 64, 19, 148, 113, 129, 93, 175, 199, 78, 106, 35,\n\t\t230, 177, 107, 195, 162, 62, 124, 24, 107, 45, 98, 29, 0,\n\t\t246, 99, 158, 148, 67, 120, 115, 87, 116, 120, 213, 93, 130,\n\t\t210, 22, 99, 153, 135, 228, 3, 116, 169, 99, 19, 97, 157,\n\t\t37, 162, 92, 87, 251, 151, 64, 180, 18, 129, 71, 92, 108,\n\t\t204, 218, 103, 235, 98, 131, 117, 113, 241, 91, 217, 242,\n\t\t109, 94, 83, 94, 246, 29, 136, 112, 168, 89, 208, 48, 64,\n\t\t208, 62, 60, 42, 46, 76, 108, 188, 104, 87, 220, 238, 3, 91,\n\t\t118, 125, 198, 95, 236, 205, 21, 238, 68, 147, 30, 156, 210,\n\t\t7, 14, 46, 199, 45, 166, 55, 10, 99, 45, 60, 220, 108, 185,\n\t\t216, 113, 131, 246, 157, 54, 246, 140, 212, 197, 190, 61,\n\t\t186, 93, 92, 79, 215, 101, 238, 49, 191, 232, 23, 57, 2, 201,\n\t\t138, 131, 48, 71, 216, 148, 110, 184, 196, 118, 104, 43, 118,\n\t\t23, 252, 2, 110, 140, 125, 211, 142, 205, 115, 55, 198, 92,\n\t\t71, 119, 249, 192, 107, 223, 176, 65, 234, 39, 69, 228, 219,\n\t\t55, 25, 173, 232, 117, 177, 233, 180, 20, 15, 116, 49, 189,\n\t\t190, 58, 128, 16, 176, 106, 6, 38, 82, 198, 129, 91, 201,\n\t\t158, 145, 186, 112, 224, 110, 32, 13, 26, 201, 238, 193, 4,\n\t\t113, 143, 68, 198, 7, 50, 117, 166, 210, 60, 207, 58, 204,\n\t\t168, 226, 109, 77, 227, 122, 186, 215, 68, 188, 227, 253,\n\t\t48, 175, 150, 41, 118, 30, 105, 157, 4, 156, 99, 129, 21,\n\t\t72, 49, 188, 172, 145, 41, 252, 0, 75, 141, 234, 170, 66,\n\t\t134, 94, 98, 206, 114, 75, 234, 12, 51, 151, 0, 156, 197,\n\t\t250, 180, 244, 195, 186, 201, 167, 0, 31, 160, 197, 180, 6,\n\t\t55, 161, 137, 127, 8, 158, 16, 39, 33, 28, 16, 188, 15, 2,\n\t\t21, 62, 194, 161, 30, 131, 199, 225, 96, 144, 4, 131, 5, 158,\n\t\t79, 120, 57, 112, 172, 67, 177, 170, 74, 96, 79, 232, 35,\n\t\t120, 225, 243, 206, 166, 69, 56, 233, 89, 97, 158, 151, 97,\n\t\t223, 74, 136, 25, 157, 108, 184, 179, 204, 20, 109, 106, 113,\n\t\t167, 44, 43, 26, 186, 205, 112, 171, 119, 227, 126, 29, 198,\n\t\t185, 19, 45, 125, 114, 83, 218, 184, 77, 226, 9, 187, 68,\n\t\t54, 29, 54, 78, 157, 229, 85, 16, 13, 108, 58, 240, 108, 158,\n\t\t239, 68, 192, 253, 188, 92, 116, 152, 70, 226, 194, 158, 73,\n\t\t48, 71, 9, 175, 238, 57, 119, 196, 190, 111, 238, 72, 222,\n\t\t50, 115, 228, 233, 184, 61, 169, 43, 32, 51, 85, 213, 162,\n\t\t63, 142, 179, 60, 0, 150, 34, 9, 1, 41, 167, 189, 76, 207,\n\t\t141, 125, 136, 154, 35, 175, 34, 21, 36, 124, 22, 207, 233,\n\t\t51, 16, 187, 96, 70, 22, 193, 113, 192, 100, 36, 68, 148,\n\t\t227, 98, 188, 23, 231, 209, 113, 89, 155, 104, 52, 142, 203,\n\t\t42, 10, 57, 130, 252, 25, 136, 146, 101, 10, 120, 180, 223,\n\t\t144, 6, 96, 69, 51, 200, 217, 169, 95, 229, 83, 70, 75, 0,\n\t\t124, 111, 41, 102, 157, 113, 236, 182, 96, 92, 35, 140, 146,\n\t\t220, 232, 144, 55, 145, 55, 19, 11, 29, 0, 53, 102, 58, 177,\n\t\t254, 208, 11, 236, 148, 192, 248, 141, 192, 61, 103, 201,\n\t\t179, 148, 137, 226, 98, 96, 83, 139, 209, 224, 16, 21, 178,\n\t\t30, 150, 97, 231, 69, 166, 193, 150, 86, 48, 186, 158, 247,\n\t\t108, 145, 48, 214, 62, 40, 172, 70, 168, 195, 91, 145, 91,\n\t\t225, 216, 65, 93, 46, 6, 88, 105, 102, 166, 154, 115, 233,\n\t\t198, 138, 204, 22, 29, 218, 203, 155, 196, 48, 224, 187, 26,\n\t\t185, 239, 78, 240, 136, 27, 198, 211, 242, 153, 30, 173, 200,\n\t\t222, 246, 30, 45, 106, 103, 186, 6, 110, 247, 221, 236, 9,\n\t\t8, 33, 74, 152, 18, 174, 220, 179, 11, 224, 245, 245, 173,\n\t\t100, 201, 42, 141, 117, 200, 123, 16, 103, 109, 0, 242, 220,\n\t\t95, 12, 199, 126, 133, 219, 23, 222, 4, 16, 119, 212, 82,\n\t\t1, 19, 0, 82, 240, 182, 67, 53, 59, 215, 48, 25, 219, 88,\n\t\t42, 205, 217, 209, 82, 215, 105, 81, 45, 70, 8, 124, 163,\n\t\t29, 55, 66, 42, 141, 61, 152, 2, 1, 63, 204, 199, 76, 178,\n\t\t189, 41, 8, 70, 177, 222, 40, 117, 102, 85, 88, 52, 14, 102,\n\t\t11, 246, 82, 91, 14, 101, 26, 83, 218, 12, 237, 25, 134, 254,\n\t\t141, 40, 175, 75, 87, 169, 49, 35, 172, 214, 119, 117, 126,\n\t\t159, 209, 174, 10, 11, 244, 118, 180, 158, 37, 105, 156, 32,\n\t\t250, 142, 174, 177, 103, 58, 30, 103, 130, 216, 224, 165,\n\t\t204, 192, 106, 73, 124, 24, 169, 208, 93, 100, 10, 92, 63,\n\t\t220, 165, 119, 176, 171, 83, 52, 160, 67, 86, 219, 163, 29,\n\t\t130, 204, 118, 93, 223, 209, 44, 210, 239, 170, 214, 212,\n\t\t187, 170, 133, 254, 46, 138, 29, 148, 51, 8, 58, 46, 113,\n\t\t144, 167, 123, 252, 203, 142, 104, 8, 210, 160, 161, 189,\n\t\t214, 61, 108, 249, 178, 44, 29, 184, 138, 89, 102, 148, 29,\n\t\t114, 61, 246, 167, 27, 43, 138, 65, 22, 236, 68, 136, 44,\n\t\t20, 118, 155, 13, 146, 249, 137, 231, 7, 1, 252, 161, 53,\n\t\t70, 180, 132, 91, 22, 49, 60, 176, 10, 155, 133, 17, 15, 13,\n\t\t101, 118, 133, 98, 7, 169, 28, 164, 78, 31, 15, 211, 1, 28,\n\t\t48, 131, 45, 111, 53, 71, 141, 103, 22, 144, 82, 115, 146,\n\t\t111, 65, 219, 119, 105, 194, 91, 226, 162, 103, 13, 133, 90,\n\t\t132, 19, 179, 10, 81, 117, 140, 246, 156, 239, 39, 136, 171,\n\t\t237, 216, 224, 145, 118, 83, 0, 44, 112, 233, 29, 252, 229,\n\t\t162, 96, 232, 135, 33, 215, 50, 30, 151, 163, 59, 10, 243,\n\t\t118, 23, 134, 110, 249, 221, 56, 196, 90, 195, 169, 238, 196,\n\t\t161, 61, 185, 89, 129, 4, 164, 40, 163, 153, 191, 177, 3,\n\t\t31, 183, 58, 176, 215, 137, 247, 92, 203, 142, 179, 127, 117,\n\t\t160, 185, 106, 107, 117, 204, 58, 116, 27, 86, 6, 34, 131,\n\t\t54, 163, 230, 47, 242, 16, 196, 178, 218, 152, 195, 158, 88,\n\t\t83, 10, 132, 79, 227, 195, 122, 71, 143, 51, 171, 175, 55,\n\t\t58, 22, 1, 216, 208, 61, 203, 104, 128, 221, 69, 207, 100,\n\t\t249, 28, 156, 11, 203, 71, 204, 102, 38, 78, 216, 227, 242,\n\t\t172, 219, 104, 166, 203, 4, 152, 93, 160, 103, 113, 210, 114,\n\t\t15, 110, 1, 216, 33, 118, 132, 185, 15, 40, 31, 90, 243, 162,\n\t\t136, 230, 225, 129, 85, 226, 204, 94, 203, 61, 3, 22, 8, 179,\n\t\t182, 109, 234, 48, 204, 53, 2, 60, 200, 142, 234, 172, 195,\n\t\t212, 3, 242, 126, 4, 218, 180, 193, 60, 198, 120, 198, 189,\n\t\t139, 143, 89, 30, 117, 177, 49, 199, 163, 46, 54, 136, 60,\n\t\t239, 138, 82, 111, 183, 60, 233, 113, 229, 97, 89, 230, 112,\n\t\t119, 208, 139, 86, 149, 237, 35, 119, 167, 88, 225, 95, 255,\n\t\t59, 202, 47, 114, 212, 255, 140, 218, 87, 217, 255, 63, 195,\n\t\t246, 101, 176, 127, 224, 177, 156, 38, 44, 129, 59, 102, 239,\n\t\t72, 195, 26, 56, 212, 144, 122, 225, 147, 83, 171, 236, 179,\n\t\t101, 148, 183, 236, 195, 216, 44, 232, 134, 92, 189, 105,\n\t\t109, 56, 213, 233, 122, 162, 225, 187, 246, 58, 59, 135, 83,\n\t\t235, 194, 46, 219, 114, 70, 246, 233, 245, 221, 86, 6, 159,\n\t\t88, 95, 225, 181, 80, 251, 142, 200, 187, 51, 59, 53, 149,\n\t\t221, 208, 85, 238, 91, 128, 44, 33, 48, 171, 150, 37, 227,\n\t\t125, 36, 38, 157, 216, 247, 232, 187, 122, 192, 222, 143,\n\t\t202, 56, 106, 124, 214, 158, 137, 153, 20, 91, 127, 176, 193,\n\t\t195, 175, 216, 120, 164, 77, 136, 35, 230, 34, 128, 216, 196,\n\t\t227, 195, 134, 67, 143, 29, 125, 56, 206, 231, 137, 67, 149,\n\t\t36, 225, 238, 150, 49, 67, 123, 196, 11, 50, 226, 12, 26,\n\t\t133, 119, 182, 239, 228, 153, 229, 26, 78, 204, 108, 139,\n\t\t200, 41, 32, 71, 89, 115, 249, 193, 90, 235, 172, 25, 46,\n\t\t185, 239, 20, 130, 234, 49, 45, 24, 77, 242, 124, 247, 225,\n\t\t189, 105, 158, 76, 172, 52, 136, 152, 218, 47, 188, 2, 69,\n\t\t103, 239, 96, 29, 135, 40, 228, 65, 98, 154, 157, 227, 88,\n\t\t31, 90, 11, 120, 136, 156, 44, 54, 27, 64, 177, 4, 85, 205,\n\t\t206, 68, 248, 175, 203, 105, 172, 77, 119, 108, 253, 50, 14,\n\t\t105, 156, 31, 106, 225, 191, 54, 91, 59, 229, 180, 135, 26,\n\t\t16, 128, 134, 106, 179, 46, 185, 138, 45, 76, 141, 12, 186,\n\t\t177, 227, 186, 14, 186, 215, 119, 117, 198, 196, 94, 24, 251,\n\t\t211, 12, 134, 52, 20, 102, 126, 139, 25, 246, 98, 100, 143,\n\t\t30, 98, 27, 124, 32, 116, 124, 173, 153, 123, 115, 85, 177,\n\t\t46, 130, 58, 134, 27, 122, 113, 56, 92, 86, 165, 150, 104,\n\t\t239, 40, 102, 145, 130, 99, 13, 26, 144, 227, 115, 35, 78,\n\t\t142, 102, 57, 73, 187, 224, 213, 85, 173, 2, 30, 99, 246,\n\t\t115, 19, 104, 9, 233, 216, 22, 38, 183, 71, 255, 63, 99, 214,\n\t\t53, 10, 224, 144, 14, 107, 156, 29, 49, 199, 177, 217, 131,\n\t\t27, 99, 29, 147, 230, 188, 139, 29, 179, 96, 226, 168, 59,\n\t\t206, 187, 204, 96, 5, 15, 213, 118, 236, 39, 45, 62, 152,\n\t\t222, 28, 155, 16, 113, 166, 111, 207, 109, 79, 176, 117, 200,\n\t\t43, 253, 69, 23, 214, 117, 112, 190, 76, 102, 160, 228, 102,\n\t\t180, 84, 28, 1, 12, 242, 26, 21, 99, 152, 103, 126, 165, 85,\n\t\t152, 111, 107, 151, 110, 163, 220, 210, 234, 125, 171, 138,\n\t\t103, 249, 213, 230, 158, 161, 218, 132, 45, 155, 68, 108,\n\t\t42, 7, 5, 208, 9, 175, 98, 84, 248, 37, 162, 0, 56, 138, 229,\n\t\t30, 26, 22, 58, 47, 152, 14, 3, 28, 22, 253, 34, 158, 78,\n\t\t17, 94, 126, 54, 107, 151, 241, 120, 156, 103, 45, 208, 142,\n\t\t74, 119, 141, 214, 33, 123, 186, 178, 133, 144, 173, 149,\n\t\t189, 57, 215, 177, 21, 168, 194, 200, 182, 59, 60, 14, 123,\n\t\t246, 110, 167, 165, 249, 54, 147, 72, 75, 184, 221, 114, 250,\n\t\t184, 65, 123, 150, 112, 172, 47, 131, 205, 157, 105, 84, 166,\n\t\t105, 153, 95, 87, 142, 131, 89, 119, 106, 68, 6, 10, 23, 160,\n\t\t65, 62, 117, 100, 141, 187, 85, 67, 43, 77, 224, 161, 188,\n\t\t72, 171, 52, 245, 136, 118, 23, 241, 125, 110, 10, 203, 58,\n\t\t156, 136, 52, 125, 192, 111, 40, 171, 197, 8, 55, 236, 64,\n\t\t196, 209, 63, 127, 218, 8, 177, 155, 200, 240, 115, 59, 227,\n\t\t196, 242, 198, 30, 39, 94, 187, 119, 27, 99, 110, 70, 115,\n\t\t154, 243, 42, 206, 124, 45, 232, 121, 202, 180, 59, 153, 217,\n\t\t24, 216, 183, 43, 34, 248, 96, 116, 238, 55, 68, 53, 55, 205,\n\t\t3, 112, 38, 51, 180, 69, 44, 248, 93, 24, 155, 128, 123, 5,\n\t\t243, 22, 31, 50, 5, 223, 213, 61, 62, 120, 19, 208, 139, 70,\n\t\t2, 93, 235, 90, 9, 152, 231, 4, 19, 31, 234, 91, 193, 230,\n\t\t111, 55, 86, 205, 115, 84, 178, 121, 233, 0, 44, 236, 89,\n\t\t153, 223, 182, 173, 1, 8, 137, 233, 76, 64, 194, 35, 110,\n\t\t211, 151, 249, 180, 59, 245, 129, 61, 117, 90, 116, 236, 190,\n\t\t104, 51, 156, 162, 132, 112, 140, 192, 207, 246, 173, 42,\n\t\t158, 189, 189, 15, 39, 138, 131, 188, 224, 78, 219, 44, 158,\n\t\t199, 64, 186, 50, 236, 49, 149, 182, 23, 109, 236, 72, 238,\n\t\t242, 118, 170, 83, 20, 79, 71, 236, 5, 116, 103, 235, 141,\n\t\t21, 44, 159, 251, 219, 122, 255, 197, 116, 11, 240, 110, 204,\n\t\t250, 194, 198, 138, 108, 177, 1, 129, 238, 158, 210, 65, 144,\n\t\t107, 48, 107, 252, 150, 28, 154, 125, 110, 230, 33, 140, 144,\n\t\t211, 55, 16, 198, 150, 65, 51, 16, 149, 126, 202, 101, 167,\n\t\t70, 176, 195, 175, 17, 235, 173, 18, 24, 86, 174, 219, 35,\n\t\t182, 56, 69, 153, 166, 195, 77, 167, 70, 121, 25, 31, 206,\n\t\t49, 73, 210, 156, 223, 230, 38, 40, 67, 138, 65, 10, 1, 230,\n\t\t0, 53, 244, 60, 44, 153, 64, 162, 86, 202, 193, 228, 249,\n\t\t179, 128, 105, 153, 25, 16, 119, 208, 160, 4, 199, 82, 203,\n\t\t81, 27, 123, 180, 221, 98, 174, 139, 252, 148, 203, 163, 156,\n\t\t105, 202, 68, 39, 157, 10, 51, 34, 26, 219, 21, 92, 178, 172,\n\t\t58, 115, 184, 13, 238, 110, 207, 29, 122, 33, 235, 130, 12,\n\t\t115, 81, 139, 50, 164, 229, 87, 48, 95, 203, 231, 134, 124,\n\t\t143, 123, 249, 182, 88, 31, 142, 245, 225, 152, 87, 81, 163,\n\t\t160, 65, 253, 137, 178, 219, 214, 137, 29, 20, 119, 54, 191,\n\t\t129, 139, 102, 62, 242, 82, 211, 93, 113, 69, 84, 55, 64,\n\t\t132, 84, 96, 179, 235, 65, 14, 234, 131, 52, 0, 80, 112, 173,\n\t\t64, 188, 190, 30, 184, 31, 236, 9, 48, 128, 119, 208, 166,\n\t\t254, 48, 158, 90, 236, 181, 185, 20, 70, 45, 162, 86, 24,\n\t\t31, 62, 188, 216, 12, 75, 127, 82, 217, 126, 182, 235, 205,\n\t\t168, 176, 172, 211, 17, 31, 80, 142, 104, 160, 143, 159, 13,\n\t\t26, 239, 179, 72, 221, 212, 225, 25, 210, 118, 208, 104, 75,\n\t\t66, 49, 104, 138, 125, 78, 234, 131, 166, 186, 103, 217, 165,\n\t\t139, 56, 219, 206, 225, 235, 251, 87, 21, 207, 181, 111, 182,\n\t\t92, 107, 96, 5, 212, 215, 237, 136, 253, 152, 84, 1, 206,\n\t\t221, 108, 142, 165, 112, 251, 38, 225, 118, 0, 24, 10, 174,\n\t\t198, 41, 0, 122, 105, 247, 17, 167, 96, 188, 9, 74, 151, 72,\n\t\t135, 125, 219, 23, 180, 81, 180, 181, 231, 67, 152, 37, 12,\n\t\t182, 23, 237, 249, 19, 230, 251, 235, 141, 226, 216, 191,\n\t\t233, 55, 170, 137, 253, 206, 180, 4, 203, 12, 180, 194, 111,\n\t\t214, 229, 131, 117, 98, 43, 160, 46, 78, 55, 118, 36, 207,\n\t\t204, 97, 164, 129, 213, 45, 172, 27, 39, 35, 161, 227, 197,\n\t\t182, 86, 100, 6, 149, 18, 15, 177, 35, 213, 142, 104, 71,\n\t\t221, 61, 21, 28, 161, 214, 251, 86, 228, 230, 214, 205, 213,\n\t\t33, 134, 114, 247, 38, 44, 241, 155, 20, 43, 254, 63, 178,\n\t\t250, 210, 253, 215, 119, 191, 167, 241, 2, 108, 95, 196, 232,\n\t\t106, 16, 33, 185, 37, 174, 63, 220, 137, 16, 153, 85, 61,\n\t\t110, 225, 87, 39, 173, 3, 92, 30, 170, 25, 10, 201, 30, 31,\n\t\t220, 106, 173, 196, 79, 115, 75, 108, 37, 126, 61, 141, 250,\n\t\t246, 104, 47, 24, 58, 209, 189, 108, 51, 206, 151, 15, 147,\n\t\t122, 58, 229, 74, 138, 27, 17, 187, 159, 192, 194, 93, 10,\n\t\t105, 89, 64, 219, 177, 201, 22, 104, 128, 159, 244, 82, 141,\n\t\t73, 81, 99, 205, 54, 89, 42, 225, 40, 236, 165, 122, 1, 202,\n\t\t3, 80, 169, 57, 229, 162, 26, 47, 249, 35, 74, 129, 66, 4,\n\t\t213, 163, 235, 180, 240, 149, 40, 205, 217, 151, 217, 249,\n\t\t122, 92, 16, 76, 80, 110, 47, 108, 105, 144, 197, 227, 97,\n\t\t83, 49, 88, 132, 24, 217, 134, 17, 243, 250, 120, 219, 79,\n\t\t54, 156, 22, 106, 128, 18, 251, 221, 112, 213, 39, 59, 6,\n\t\t20, 57, 40, 23, 93, 254, 229, 237, 26, 52, 189, 54, 111, 219,\n\t\t207, 122, 59, 190, 218, 100, 218, 177, 69, 139, 156, 155,\n\t\t147, 8, 33, 157, 16, 34, 190, 99, 224, 193, 160, 121, 61,\n\t\t83, 148, 182, 9, 196, 48, 227, 167, 197, 104, 231, 83, 144,\n\t\t235, 76, 53, 13, 254, 229, 162, 187, 166, 102, 255, 54, 152,\n\t\t218, 214, 71, 156, 203, 58, 102, 30, 131, 118, 148, 35, 251,\n\t\t203, 150, 65, 73, 148, 244, 249, 99, 226, 178, 19, 21, 151,\n\t\t220, 11, 1, 253, 68, 174, 110, 190, 47, 240, 91, 5, 209, 104,\n\t\t27, 224, 138, 4, 227, 200, 230, 186, 163, 56, 30, 151, 9,\n\t\t152, 103, 125, 55, 227, 219, 120, 247, 99, 206, 214, 26, 17,\n\t\t149, 33, 125, 248, 69, 225, 168, 150, 242, 171, 60, 101, 200,\n\t\t210, 3, 155, 90, 1, 142, 161, 77, 166, 216, 131, 78, 224,\n\t\t190, 176, 241, 39, 18, 175, 105, 159, 112, 55, 10, 198, 115,\n\t\t253, 110, 238, 215, 134, 122, 147, 91, 93, 83, 91, 127, 87,\n\t\t182, 27, 137, 180, 8, 164, 103, 201, 12, 1, 75, 115, 44, 41,\n\t\t89, 76, 243, 108, 224, 62, 17, 216, 238, 31, 228, 133, 165,\n\t\t12, 121, 93, 184, 174, 186, 253, 40, 210, 201, 177, 161, 176,\n\t\t167, 130, 21, 10, 212, 180, 96, 56, 102, 104, 173, 154, 79,\n\t\t60, 110, 24, 182, 128, 101, 85, 212, 183, 71, 139, 9, 35,\n\t\t32, 154, 205, 147, 41, 127, 136, 2, 29, 242, 39, 147, 56,\n\t\t240, 108, 52, 140, 150, 116, 40, 3, 4, 150, 13, 57, 42, 80,\n\t\t118, 212, 133, 4, 0, 193, 39, 163, 214, 56, 6, 20, 143, 0,\n\t\t212, 48, 23, 167, 207, 56, 213, 42, 224, 238, 234, 46, 55,\n\t\t100, 104, 219, 88, 126, 238, 107, 244, 150, 253, 58, 58, 12,\n\t\t177, 116, 0, 75, 228, 207, 74, 127, 223, 158, 86, 129, 199,\n\t\t159, 159, 135, 205, 7, 69, 203, 128, 150, 95, 23, 185, 37,\n\t\t51, 154, 212, 89, 102, 107, 51, 158, 172, 51, 205, 139, 26,\n\t\t9, 18, 140, 49, 53, 126, 59, 242, 23, 51, 112, 253, 3, 160,\n\t\t89, 235, 7, 64, 60, 184, 30, 156, 71, 76, 162, 91, 51, 223,\n\t\t31, 251, 237, 25, 115, 74, 159, 27, 190, 33, 135, 90, 47,\n\t\t69, 18, 241, 198, 117, 50, 235, 224, 21, 243, 210, 143, 218,\n\t\t105, 14, 167, 208, 50, 79, 215, 249, 75, 148, 63, 241, 249,\n\t\t251, 105, 108, 210, 150, 237, 16, 109, 34, 60, 152, 202, 76,\n\t\t184, 183, 203, 4, 27, 230, 70, 222, 225, 131, 23, 41, 246,\n\t\t233, 17, 31, 44, 181, 101, 246, 218, 58, 136, 183, 203, 70,\n\t\t205, 159, 10, 52, 6, 105, 180, 229, 55, 151, 150, 65, 54,\n\t\t51, 27, 203, 78, 63, 220, 149, 93, 103, 203, 238, 29, 19,\n\t\t227, 128, 35, 144, 99, 125, 185, 155, 161, 15, 126, 218, 51,\n\t\t139, 204, 159, 230, 192, 65, 120, 56, 94, 188, 143, 99, 28,\n\t\t123, 83, 236, 104, 123, 59, 134, 113, 253, 229, 31, 11, 164,\n\t\t76, 133, 241, 74, 222, 2, 254, 61, 106, 232, 160, 103, 177,\n\t\t208, 145, 194, 16, 158, 219, 15, 16, 133, 236, 83, 89, 72,\n\t\t120, 173, 150, 109, 173, 247, 93, 109, 204, 157, 249, 158,\n\t\t19, 77, 157, 57, 190, 22, 158, 122, 74, 199, 9, 167, 81, 152,\n\t\t79, 219, 240, 86, 248, 233, 58, 103, 77, 219, 237, 179, 201,\n\t\t183, 19, 214, 200, 76, 121, 230, 218, 226, 129, 217, 70, 170,\n\t\t2, 235, 68, 132, 128, 226, 181, 166, 40, 135, 42, 108, 25,\n\t\t7, 113, 23, 214, 170, 103, 49, 150, 17, 249, 252, 167, 7,\n\t\t220, 176, 107, 71, 49, 179, 137, 22, 151, 49, 57, 64, 185,\n\t\t52, 168, 36, 108, 243, 49, 244, 185, 241, 209, 137, 202, 197,\n\t\t118, 22, 251, 138, 253, 183, 107, 191, 71, 32, 244, 70, 153,\n\t\t6, 151, 44, 103, 152, 132, 163, 63, 231, 216, 235, 148, 240,\n\t\t25, 38, 38, 64, 50, 108, 193, 166, 229, 58, 158, 245, 67,\n\t\t142, 95, 211, 70, 89, 22, 178, 155, 35, 134, 80, 87, 219,\n\t\t70, 98, 199, 166, 247, 188, 116, 108, 29, 228, 27, 192, 22,\n\t\t14, 183, 75, 91, 177, 89, 110, 172, 184, 228, 30, 88, 176,\n\t\t112, 5, 216, 122, 99, 46, 68, 149, 173, 187, 119, 173, 199,\n\t\t75, 206, 26, 107, 178, 184, 191, 177, 166, 237, 60, 113, 137,\n\t\t227, 111, 47, 214, 119, 44, 108, 47, 233, 134, 224, 160, 128,\n\t\t139, 170, 107, 63, 225, 213, 240, 110, 46, 210, 240, 66, 252,\n\t\t197, 205, 22, 125, 192, 181, 30, 162, 221, 99, 138, 6, 138,\n\t\t232, 243, 95, 149, 204, 251, 165, 46, 192, 145, 184, 137,\n\t\t167, 192, 230, 166, 155, 149, 78, 113, 135, 5, 102, 143, 179,\n\t\t221, 198, 234, 64, 146, 207, 187, 219, 252, 117, 113, 161,\n\t\t253, 214, 156, 209, 64, 141, 253, 241, 98, 196, 7, 91, 92,\n\t\t129, 127, 194, 75, 226, 60, 242, 121, 75, 212, 56, 201, 167,\n\t\t187, 127, 67, 16, 194, 221, 119, 148, 185, 214, 51, 120, 81,\n\t\t22, 90, 88, 215, 109, 190, 59, 175, 112, 222, 32, 119, 233,\n\t\t41, 183, 26, 203, 253, 203, 63, 105, 88, 105, 35, 113, 163,\n\t\t160, 224, 147, 163, 165, 224, 241, 103, 192, 174, 102, 194,\n\t\t133, 205, 108, 241, 159, 58, 128, 225, 91, 60, 6, 11, 196,\n\t\t234, 155, 63, 235, 65, 100, 155, 153, 94, 52, 76, 134, 63,\n\t\t142, 21, 186, 111, 179, 62, 127, 60, 48, 251, 119, 197, 93,\n\t\t22, 60, 69, 102, 241, 203, 161, 205, 222, 222, 152, 27, 236,\n\t\t217, 32, 178, 149, 253, 88, 115, 41, 105, 221, 140, 55, 36,\n\t\t236, 196, 65, 28, 160, 48, 104, 197, 152, 63, 111, 167, 49,\n\t\t60, 41, 235, 164, 53, 34, 59, 175, 122, 40, 216, 98, 27, 189,\n\t\t163, 29, 169, 233, 207, 89, 126, 156, 246, 12, 140, 137, 220,\n\t\t85, 233, 245, 29, 137, 235, 165, 168, 99, 92, 209, 223, 53,\n\t\t113, 106, 133, 142, 153, 249, 149, 117, 206, 89, 204, 117,\n\t\t174, 251, 241, 128, 70, 33, 255, 177, 82, 194, 185, 137, 76,\n\t\t10, 48, 207, 242, 185, 117, 60, 91, 198, 67, 73, 253, 172,\n\t\t203, 191, 72, 169, 115, 160, 59, 66, 173, 237, 60, 152, 115,\n\t\t94, 98, 20, 60, 56, 237, 218, 79, 170, 252, 199, 4, 224, 220,\n\t\t121, 54, 180, 1, 223, 116, 25, 6, 99, 206, 89, 72, 150, 136,\n\t\t227, 54, 91, 214, 176, 11, 131, 31, 6, 203, 43, 150, 216,\n\t\t189, 211, 151, 8, 202, 26, 233, 151, 244, 116, 218, 139, 248,\n\t\t59, 59, 152, 119, 233, 42, 250, 52, 14, 195, 132, 11, 63,\n\t\t230, 162, 8, 103, 212, 142, 8, 229, 54, 108, 5, 120, 232,\n\t\t49, 82, 4, 92, 62, 172, 55, 153, 172, 153, 176, 85, 192, 191,\n\t\t74, 84, 62, 252, 161, 136, 13, 59, 40, 192, 201, 125, 247,\n\t\t78, 35, 215, 34, 109, 154, 172, 91, 123, 52, 219, 236, 112,\n\t\t133, 113, 141, 29, 27, 216, 210, 203, 65, 232, 255, 1, 192,\n\t\t77, 181, 77, 0, 0, 0, 1, 0, 0, 255, 255, 80, 75, 7, 8, 124,\n\t\t242, 40, 154, 30, 120, 1, 0, 0, 120, 1, 0, 80, 75, 3, 4, 20,\n\t\t0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 27, 0, 9, 0, 119, 101, 98, 102, 111, 110, 116, 115,\n\t\t47, 102, 97, 45, 115, 111, 108, 105, 100, 45, 57, 48, 48,\n\t\t46, 119, 111, 102, 102, 50, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 0, 18, 64, 237, 191, 119, 79, 70, 50, 0, 1, 0, 0, 0, 1,\n\t\t34, 16, 0, 13, 0, 0, 0, 2, 216, 72, 0, 1, 33, 182, 1, 73,\n\t\t186, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 63, 70, 70, 84, 77, 28, 26, 30, 6, 96, 0, 150,\n\t\t18, 17, 8, 10, 137, 246, 68, 135, 231, 59, 1, 54, 2, 36, 3,\n\t\t157, 44, 11, 157, 48, 0, 4, 32, 5, 138, 37, 7, 218, 109, 91,\n\t\t38, 65, 146, 130, 176, 179, 213, 95, 225, 224, 223, 86, 101,\n\t\t192, 184, 211, 22, 45, 58, 16, 131, 238, 128, 211, 160, 151,\n\t\t39, 184, 130, 109, 211, 106, 6, 221, 225, 120, 160, 202, 122,\n\t\t109, 246, 255, 255, 255, 255, 111, 74, 22, 50, 166, 247, 23,\n\t\t184, 36, 255, 1, 16, 81, 91, 170, 182, 214, 186, 181, 110,\n\t\t155, 81, 206, 200, 18, 47, 166, 58, 2, 197, 84, 111, 38, 151,\n\t\t97, 28, 29, 67, 4, 203, 13, 19, 102, 236, 124, 49, 59, 35,\n\t\t148, 129, 236, 49, 11, 205, 40, 105, 33, 107, 23, 135, 25,\n\t\t135, 227, 9, 47, 52, 248, 222, 28, 90, 107, 205, 190, 146,\n\t\t205, 136, 200, 136, 200, 136, 8, 122, 139, 136, 232, 96, 48,\n\t\t66, 41, 249, 152, 116, 38, 50, 34, 50, 34, 194, 165, 33, 34,\n\t\t188, 147, 225, 234, 87, 183, 133, 76, 70, 137, 239, 70, 68,\n\t\t38, 6, 227, 158, 212, 62, 108, 54, 101, 170, 94, 80, 229,\n\t\t111, 200, 31, 183, 79, 248, 80, 133, 234, 184, 183, 250, 149,\n\t\t221, 212, 21, 143, 168, 24, 177, 148, 101, 194, 11, 42, 217,\n\t\t235, 130, 27, 126, 201, 92, 11, 121, 148, 14, 7, 34, 179,\n\t\t36, 120, 114, 75, 59, 17, 241, 139, 186, 254, 205, 191, 233,\n\t\t15, 26, 205, 16, 203, 36, 54, 207, 105, 135, 132, 102, 234,\n\t\t43, 17, 36, 42, 81, 137, 74, 84, 162, 18, 145, 4, 17, 61,\n\t\t211, 191, 33, 182, 64, 125, 89, 43, 110, 117, 53, 79, 253,\n\t\t57, 239, 172, 111, 60, 146, 115, 122, 73, 248, 177, 197, 84,\n\t\t108, 168, 58, 71, 237, 208, 185, 120, 36, 4, 142, 228, 62,\n\t\t77, 196, 75, 47, 79, 54, 23, 19, 243, 156, 84, 121, 112, 117,\n\t\t119, 135, 147, 233, 239, 52, 214, 113, 92, 48, 240, 70, 213,\n\t\t163, 105, 160, 215, 30, 110, 252, 52, 207, 182, 62, 185, 184,\n\t\t168, 250, 176, 62, 196, 110, 153, 253, 195, 255, 158, 172,\n\t\t49, 54, 134, 86, 47, 164, 164, 163, 123, 250, 248, 75, 248,\n\t\t143, 246, 123, 61, 119, 246, 209, 135, 205, 219, 48, 57, 64,\n\t\t7, 132, 149, 213, 174, 213, 141, 49, 49, 178, 178, 182, 154,\n\t\t104, 252, 231, 237, 122, 207, 157, 141, 89, 101, 54, 16, 111,\n\t\t0, 85, 112, 165, 14, 186, 43, 149, 91, 69, 51, 129, 248, 222,\n\t\t226, 11, 69, 23, 98, 126, 23, 191, 225, 121, 183, 245, 216,\n\t\t159, 253, 97, 11, 42, 136, 162, 184, 81, 208, 93, 124, 89,\n\t\t186, 1, 21, 103, 9, 46, 48, 179, 156, 137, 77, 104, 138, 13,\n\t\t181, 108, 104, 75, 27, 75, 187, 211, 198, 180, 78, 27, 215,\n\t\t184, 234, 234, 218, 87, 217, 184, 234, 234, 70, 107, 220,\n\t\t20, 44, 56, 49, 185, 7, 130, 90, 133, 171, 60, 245, 113, 38,\n\t\t214, 106, 51, 159, 31, 45, 65, 19, 161, 173, 185, 158, 57,\n\t\t36, 66, 13, 160, 133, 119, 41, 225, 192, 245, 65, 96, 170,\n\t\t174, 212, 8, 26, 65, 100, 226, 7, 193, 13, 164, 109, 154,\n\t\t215, 241, 255, 218, 180, 164, 86, 106, 3, 108, 7, 61, 14,\n\t\t176, 129, 179, 228, 100, 129, 165, 209, 122, 143, 12, 133,\n\t\t171, 123, 41, 218, 153, 86, 255, 182, 59, 166, 37, 96, 125,\n\t\t41, 57, 194, 242, 138, 242, 66, 96, 136, 78, 253, 79, 133,\n\t\t79, 153, 142, 87, 57, 149, 175, 212, 196, 171, 51, 167, 242,\n\t\t205, 237, 152, 78, 188, 57, 179, 111, 66, 183, 116, 44, 134,\n\t\t159, 211, 49, 147, 223, 255, 183, 105, 209, 47, 74, 134, 171,\n\t\t199, 179, 120, 8, 9, 11, 44, 176, 141, 105, 135, 84, 193,\n\t\t85, 213, 238, 46, 119, 231, 9, 57, 236, 102, 53, 187, 229,\n\t\t108, 255, 249, 13, 128, 246, 70, 151, 127, 88, 30, 74, 76,\n\t\t211, 110, 209, 251, 165, 187, 132, 73, 186, 125, 89, 198,\n\t\t185, 162, 201, 49, 137, 104, 176, 189, 14, 158, 134, 183,\n\t\t167, 159, 159, 244, 240, 246, 73, 0, 208, 48, 176, 238, 223,\n\t\t156, 166, 188, 88, 190, 112, 178, 159, 39, 149, 176, 129,\n\t\t121, 69, 150, 82, 191, 148, 201, 58, 201, 153, 11, 75, 0,\n\t\t146, 118, 253, 187, 23, 114, 198, 250, 41, 181, 104, 136,\n\t\t120, 34, 115, 166, 102, 227, 252, 213, 217, 5, 24, 22, 64,\n\t\t208, 88, 8, 130, 112, 136, 122, 148, 57, 193, 123, 177, 143,\n\t\t230, 189, 253, 90, 12, 244, 3, 67, 108, 121, 27, 51, 252,\n\t\t175, 248, 101, 115, 101, 11, 160, 98, 34, 187, 132, 65, 189,\n\t\t247, 243, 239, 212, 62, 169, 125, 75, 186, 201, 162, 33, 208,\n\t\t114, 192, 208, 242, 64, 193, 80, 132, 192, 133, 180, 249,\n\t\t161, 206, 120, 185, 11, 31, 63, 214, 175, 245, 123, 206, 61,\n\t\t150, 149, 52, 3, 150, 49, 105, 7, 146, 6, 104, 24, 108, 107,\n\t\t17, 34, 0, 158, 255, 159, 179, 222, 100, 220, 123, 105, 213,\n\t\t2, 73, 32, 5, 12, 63, 249, 51, 156, 52, 123, 54, 114, 73,\n\t\t152, 91, 219, 90, 88, 2, 82, 192, 96, 228, 238, 127, 46, 43,\n\t\t169, 188, 40, 217, 201, 114, 26, 134, 152, 210, 253, 33, 213,\n\t\t94, 170, 120, 210, 62, 205, 171, 215, 47, 135, 75, 233, 42,\n\t\t93, 13, 149, 106, 192, 240, 16, 64, 96, 17, 174, 244, 127,\n\t\t169, 90, 85, 189, 189, 85, 237, 230, 95, 85, 12, 182, 53,\n\t\t221, 75, 138, 201, 182, 58, 56, 165, 137, 25, 32, 236, 230,\n\t\t69, 50, 218, 195, 205, 58, 248, 112, 1, 174, 192, 238, 13,\n\t\t5, 48, 200, 146, 223, 154, 1, 32, 20, 236, 182, 101, 43, 80,\n\t\t164, 99, 39, 135, 4, 16, 29, 54, 117, 123, 222, 120, 55, 159,\n\t\t214, 162, 57, 59, 37, 199, 149, 55, 165, 160, 43, 189, 48,\n\t\t173, 48, 129, 237, 231, 66, 123, 84, 26, 156, 23, 242, 136,\n\t\t131, 96, 0, 7, 67, 238, 84, 82, 211, 148, 190, 103, 25, 75,\n\t\t223, 118, 68, 130, 77, 196, 212, 225, 76, 29, 191, 108, 182,\n\t\t183, 255, 190, 234, 6, 195, 63, 73, 119, 207, 252, 151, 111,\n\t\t173, 237, 66, 216, 138, 241, 96, 100, 63, 73, 36, 205, 177,\n\t\t100, 76, 245, 23, 60, 176, 164, 43, 129, 112, 24, 223, 10,\n\t\t89, 99, 145, 36, 32, 122, 217, 84, 15, 73, 205, 218, 57, 59,\n\t\t45, 230, 0, 225, 211, 31, 42, 64, 81, 0, 226, 1, 240, 235,\n\t\t233, 58, 44, 235, 112, 182, 248, 20, 239, 114, 138, 252, 85,\n\t\t84, 194, 2, 65, 1, 101, 157, 255, 210, 89, 93, 145, 49, 110,\n\t\t112, 55, 110, 79, 206, 246, 166, 116, 238, 246, 100, 239,\n\t\t108, 10, 199, 20, 78, 123, 172, 250, 165, 146, 244, 171, 248,\n\t\t130, 146, 248, 133, 10, 185, 48, 130, 22, 141, 80, 99, 171,\n\t\t36, 4, 18, 66, 221, 72, 2, 143, 44, 227, 126, 69, 89, 216,\n\t\t180, 236, 153, 245, 164, 108, 123, 124, 232, 248, 94, 149,\n\t\t100, 97, 137, 224, 150, 192, 120, 36, 79, 211, 3, 14, 19,\n\t\t66, 116, 79, 244, 122, 178, 167, 55, 77, 140, 167, 13, 241,\n\t\t212, 135, 227, 158, 142, 123, 184, 239, 105, 111, 179, 255,\n\t\t127, 169, 250, 181, 5, 20, 250, 168, 179, 59, 197, 9, 201,\n\t\t253, 39, 164, 197, 198, 121, 66, 220, 207, 106, 131, 247,\n\t\t238, 123, 175, 88, 239, 213, 171, 82, 5, 128, 6, 10, 32, 141,\n\t\t64, 178, 1, 144, 18, 145, 40, 147, 32, 165, 66, 1, 164, 11,\n\t\t69, 80, 6, 41, 185, 135, 228, 79, 116, 152, 25, 89, 157, 104,\n\t\t253, 164, 206, 34, 65, 74, 22, 41, 217, 166, 28, 226, 228,\n\t\t180, 216, 185, 67, 12, 171, 229, 44, 103, 177, 158, 213, 60,\n\t\t90, 170, 93, 90, 213, 186, 31, 28, 100, 204, 225, 42, 52,\n\t\t208, 197, 147, 108, 213, 68, 213, 86, 153, 90, 95, 40, 92,\n\t\t225, 118, 32, 253, 15, 11, 92, 90, 53, 198, 248, 227, 159,\n\t\t149, 23, 83, 118, 167, 155, 32, 234, 16, 17, 194, 136, 30,\n\t\t228, 74, 253, 187, 223, 243, 221, 250, 162, 90, 255, 108,\n\t\t187, 12, 246, 38, 133, 136, 72, 112, 66, 8, 225, 17, 130,\n\t\t72, 29, 238, 61, 135, 108, 218, 167, 50, 179, 167, 14, 20,\n\t\t138, 181, 14, 37, 33, 118, 23, 129, 109, 136, 107, 31, 191,\n\t\t19, 94, 239, 184, 197, 80, 228, 14, 157, 42, 138, 123, 102,\n\t\t24, 71, 106, 247, 31, 135, 204, 249, 175, 251, 173, 77, 253,\n\t\t45, 191, 165, 138, 138, 3, 193, 197, 202, 186, 228, 46, 3,\n\t\t255, 151, 57, 123, 14, 108, 175, 99, 93, 199, 217, 171, 215,\n\t\t82, 69, 196, 141, 128, 204, 64, 66, 178, 127, 210, 83, 25,\n\t\t174, 232, 120, 19, 146, 134, 34, 227, 68, 165, 128, 6, 124,\n\t\t220, 24, 111, 137, 240, 209, 49, 36, 174, 163, 70, 219, 136,\n\t\t250, 162, 22, 203, 5, 223, 101, 51, 158, 65, 4, 166, 232,\n\t\t103, 8, 147, 83, 211, 34, 183, 31, 147, 199, 168, 255, 141,\n\t\t238, 132, 179, 203, 185, 15, 15, 55, 181, 227, 106, 55, 239,\n\t\t236, 173, 112, 121, 126, 110, 125, 84, 207, 22, 172, 226,\n\t\t225, 147, 65, 170, 137, 158, 139, 79, 196, 146, 1, 39, 70,\n\t\t232, 217, 102, 43, 20, 215, 145, 211, 136, 52, 209, 251, 102,\n\t\t107, 129, 19, 236, 243, 102, 196, 40, 121, 181, 168, 243,\n\t\t222, 215, 248, 156, 252, 250, 206, 221, 131, 66, 35, 99, 19,\n\t\t83, 178, 114, 171, 234, 250, 151, 92, 80, 84, 90, 219, 122,\n\t\t186, 18, 157, 63, 231, 204, 223, 216, 245, 167, 251, 167,\n\t\t183, 239, 191, 226, 12, 111, 249, 217, 11, 225, 69, 89, 53,\n\t\t171, 166, 223, 253, 20, 44, 39, 40, 186, 237, 204, 211, 111,\n\t\t149, 202, 4, 157, 163, 103, 111, 124, 7, 207, 211, 218, 57,\n\t\t250, 135, 196, 17, 105, 44, 129, 196, 100, 181, 115, 240,\n\t\t137, 64, 225, 201, 149, 26, 61, 255, 149, 30, 211, 223, 30,\n\t\t215, 181, 233, 210, 239, 242, 10, 139, 123, 22, 118, 234,\n\t\t18, 30, 29, 159, 156, 95, 84, 94, 223, 177, 175, 210, 187,\n\t\t201, 229, 143, 127, 254, 219, 95, 255, 225, 159, 32, 48, 4,\n\t\t6, 79, 164, 48, 121, 2, 177, 92, 103, 182, 58, 184, 121, 130,\n\t\t225, 40, 2, 153, 165, 212, 219, 28, 157, 33, 48, 2, 149, 43,\n\t\t212, 228, 244, 125, 243, 51, 189, 184, 29, 150, 195, 87, 86,\n\t\t80, 76, 199, 11, 227, 172, 108, 135, 75, 216, 110, 255, 42,\n\t\t171, 155, 181, 232, 174, 215, 93, 251, 52, 58, 49, 189, 176,\n\t\t180, 182, 185, 127, 124, 126, 115, 247, 240, 250, 246, 195,\n\t\t231, 111, 255, 25, 93, 90, 223, 61, 62, 189, 124, 126, 247,\n\t\t241, 243, 216, 226, 242, 234, 250, 230, 246, 193, 233, 197,\n\t\t213, 253, 203, 246, 184, 61, 143, 209, 238, 206, 218, 221,\n\t\t221, 55, 209, 233, 109, 221, 122, 231, 35, 4, 129, 163, 208,\n\t\t57, 2, 149, 198, 226, 226, 1, 128, 32, 8, 36, 6, 135, 39,\n\t\t146, 171, 76, 54, 7, 103, 8, 28, 67, 32, 81, 56, 10, 157,\n\t\t209, 178, 219, 236, 114, 183, 4, 190, 227, 248, 153, 220,\n\t\t122, 229, 193, 119, 126, 235, 239, 169, 6, 232, 59, 164, 68,\n\t\t233, 152, 19, 237, 133, 79, 145, 137, 220, 176, 145, 253,\n\t\t74, 252, 126, 35, 39, 191, 166, 115, 82, 134, 81, 77, 42,\n\t\t99, 119, 143, 99, 190, 147, 121, 5, 216, 63, 31, 238, 206,\n\t\t175, 223, 125, 52, 142, 162, 57, 209, 9, 159, 32, 107, 112,\n\t\t141, 92, 191, 91, 206, 188, 204, 139, 208, 154, 179, 14, 203,\n\t\t66, 38, 26, 11, 103, 23, 31, 113, 36, 131, 63, 57, 48, 25,\n\t\t99, 147, 35, 54, 154, 95, 144, 36, 46, 127, 86, 232, 13, 255,\n\t\t97, 90, 248, 122, 191, 166, 135, 235, 71, 58, 187, 242, 134,\n\t\t92, 138, 184, 165, 81, 123, 231, 226, 1, 0, 137, 33, 9, 23,\n\t\t7, 226, 159, 106, 8, 36, 142, 13, 215, 175, 242, 118, 144,\n\t\t245, 211, 118, 250, 206, 75, 134, 173, 10, 2, 219, 51, 157,\n\t\t236, 95, 72, 33, 79, 156, 94, 113, 247, 159, 184, 143, 97,\n\t\t161, 178, 195, 158, 236, 81, 190, 127, 194, 235, 158, 164,\n\t\t219, 155, 177, 159, 247, 198, 201, 11, 223, 230, 91, 207,\n\t\t206, 238, 94, 65, 76, 158, 108, 235, 64, 170, 52, 90, 233,\n\t\t164, 192, 208, 56, 79, 83, 198, 125, 222, 35, 207, 218, 190,\n\t\t199, 68, 142, 172, 12, 230, 227, 236, 228, 96, 103, 109, 101,\n\t\t54, 25, 117, 26, 149, 92, 34, 22, 242, 184, 28, 54, 14, 139,\n\t\t68, 192, 33, 0, 59, 155, 213, 162, 211, 106, 212, 42, 165,\n\t\t66, 38, 149, 8, 5, 124, 30, 23, 8, 112, 231, 228, 232, 96,\n\t\t167, 86, 41, 165, 66, 30, 149, 66, 38, 225, 97, 80, 8, 8,\n\t\t224, 209, 217, 189, 131, 189, 87, 122, 115, 86, 104, 204,\n\t\t206, 63, 231, 28, 179, 207, 58, 75, 230, 140, 105, 28, 133,\n\t\t158, 101, 138, 36, 129, 33, 224, 169, 19, 71, 14, 238, 91,\n\t\t183, 108, 214, 184, 170, 200, 201, 111, 188, 57, 157, 39,\n\t\t103, 70, 142, 123, 197, 239, 189, 238, 169, 107, 223, 117,\n\t\t52, 246, 63, 137, 66, 223, 115, 29, 219, 208, 84, 153, 103,\n\t\t104, 10, 199, 16, 24, 124, 121, 126, 186, 63, 159, 142, 107,\n\t\t30, 121, 142, 109, 153, 34, 75, 147, 248, 239, 101, 191, 152,\n\t\t119, 109, 156, 54, 117, 152, 148, 133, 180, 235, 155, 21,\n\t\t219, 177, 25, 203, 56, 91, 60, 127, 237, 43, 202, 10, 115,\n\t\t178, 227, 35, 195, 130, 2, 218, 183, 53, 53, 54, 212, 85,\n\t\t149, 151, 149, 20, 23, 229, 229, 230, 100, 103, 102, 164,\n\t\t69, 69, 134, 6, 244, 218, 83, 87, 109, 90, 154, 27, 203, 203,\n\t\t74, 75, 138, 139, 242, 115, 178, 50, 211, 82, 98, 99, 162,\n\t\t2, 122, 223, 155, 46, 61, 116, 219, 174, 85, 211, 234, 38,\n\t\t185, 242, 175, 143, 175, 183, 175, 231, 175, 199, 171, 243,\n\t\t121, 204, 102, 86, 118, 213, 85, 153, 5, 190, 101, 232, 154,\n\t\t34, 179, 52, 73, 224, 24, 12, 129, 199, 173, 45, 178, 36,\n\t\t10, 61, 149, 99, 105, 234, 225, 216, 126, 5, 126, 133, 129,\n\t\t42, 155, 11, 197, 154, 123, 26, 174, 4, 91, 107, 213, 255,\n\t\t7, 198, 14, 238, 157, 254, 19, 95, 176, 250, 137, 59, 198,\n\t\t175, 231, 175, 141, 223, 231, 253, 128, 236, 65, 57, 235,\n\t\t141, 112, 36, 246, 150, 144, 194, 148, 181, 37, 226, 216,\n\t\t23, 205, 57, 142, 3, 242, 101, 108, 129, 184, 131, 212, 113,\n\t\t196, 122, 12, 198, 52, 243, 109, 194, 197, 209, 123, 176,\n\t\t150, 8, 85, 141, 68, 182, 100, 39, 2, 198, 153, 105, 71, 130,\n\t\t147, 9, 85, 152, 18, 107, 216, 209, 136, 94, 251, 98, 79,\n\t\t67, 146, 249, 205, 164, 189, 144, 16, 45, 194, 114, 196, 106,\n\t\t38, 251, 0, 113, 138, 52, 180, 30, 61, 79, 183, 252, 173,\n\t\t213, 94, 251, 179, 69, 142, 39, 159, 69, 166, 186, 38, 200,\n\t\t63, 215, 223, 108, 213, 150, 78, 226, 162, 35, 170, 132, 159,\n\t\t116, 149, 10, 200, 188, 219, 32, 0, 182, 205, 212, 23, 126,\n\t\t74, 90, 193, 239, 38, 73, 80, 245, 162, 4, 102, 223, 26, 242,\n\t\t44, 205, 45, 162, 155, 225, 108, 129, 179, 140, 41, 64, 148,\n\t\t118, 177, 131, 180, 26, 116, 176, 239, 86, 175, 64, 36, 189,\n\t\t11, 96, 165, 2, 172, 12, 30, 101, 127, 137, 58, 104, 182,\n\t\t37, 17, 235, 94, 221, 147, 215, 216, 145, 189, 165, 119, 107,\n\t\t136, 157, 223, 88, 48, 19, 247, 242, 183, 176, 66, 174, 219,\n\t\t53, 69, 183, 19, 25, 196, 100, 254, 202, 176, 60, 118, 35,\n\t\t97, 248, 49, 26, 173, 220, 249, 88, 136, 249, 145, 33, 116,\n\t\t168, 131, 17, 54, 72, 100, 87, 178, 225, 150, 77, 105, 88,\n\t\t208, 70, 148, 5, 198, 81, 50, 255, 138, 140, 246, 84, 12,\n\t\t89, 133, 157, 126, 236, 216, 105, 126, 74, 47, 71, 28, 37,\n\t\t219, 143, 98, 144, 75, 239, 116, 54, 20, 99, 137, 55, 97,\n\t\t225, 200, 129, 105, 142, 58, 119, 164, 110, 127, 48, 45, 1,\n\t\t208, 230, 35, 146, 113, 166, 208, 18, 23, 232, 238, 113, 91,\n\t\t215, 180, 88, 10, 250, 220, 63, 138, 15, 94, 194, 38, 99,\n\t\t144, 138, 33, 178, 165, 101, 20, 120, 72, 76, 186, 49, 138,\n\t\t123, 129, 251, 4, 54, 71, 99, 7, 149, 189, 185, 200, 244,\n\t\t35, 10, 245, 81, 142, 177, 44, 54, 65, 238, 250, 114, 27,\n\t\t196, 39, 244, 132, 17, 68, 62, 219, 125, 57, 245, 55, 164,\n\t\t10, 99, 25, 153, 80, 221, 77, 134, 174, 227, 85, 224, 39,\n\t\t245, 235, 14, 32, 217, 21, 37, 99, 172, 38, 148, 42, 123,\n\t\t128, 212, 195, 81, 171, 30, 212, 67, 235, 248, 174, 104, 91,\n\t\t66, 35, 1, 205, 82, 90, 103, 51, 27, 244, 229, 161, 109, 80,\n\t\t214, 112, 119, 204, 197, 143, 101, 242, 187, 10, 177, 226,\n\t\t225, 135, 216, 128, 91, 183, 139, 22, 250, 14, 179, 21, 100,\n\t\t105, 108, 85, 1, 19, 188, 219, 239, 4, 0, 143, 7, 5, 108,\n\t\t30, 236, 125, 170, 137, 85, 235, 103, 85, 184, 133, 133, 4,\n\t\t102, 157, 13, 74, 99, 10, 28, 210, 37, 101, 139, 83, 179,\n\t\t70, 38, 80, 151, 217, 211, 144, 32, 11, 72, 172, 140, 77,\n\t\t91, 205, 229, 36, 168, 158, 87, 18, 239, 17, 193, 56, 143,\n\t\t96, 0, 16, 182, 27, 32, 73, 186, 71, 237, 172, 152, 251, 32,\n\t\t175, 1, 147, 166, 139, 140, 54, 189, 37, 107, 251, 9, 195,\n\t\t236, 137, 141, 41, 59, 199, 209, 23, 249, 220, 251, 190, 191,\n\t\t181, 82, 180, 185, 92, 25, 23, 128, 44, 113, 197, 103, 190,\n\t\t194, 5, 115, 124, 0, 170, 6, 24, 92, 144, 217, 186, 216, 244,\n\t\t4, 87, 73, 14, 28, 113, 221, 8, 214, 2, 167, 17, 157, 229,\n\t\t153, 32, 73, 180, 78, 92, 221, 66, 170, 81, 148, 225, 156,\n\t\t186, 2, 57, 156, 89, 173, 218, 72, 27, 192, 90, 125, 182,\n\t\t200, 197, 176, 0, 121, 154, 187, 249, 62, 178, 122, 214, 157,\n\t\t161, 66, 46, 0, 162, 114, 117, 142, 100, 52, 66, 169, 233,\n\t\t177, 40, 229, 46, 237, 124, 122, 184, 52, 178, 18, 57, 85,\n\t\t21, 172, 54, 165, 0, 223, 252, 2, 82, 68, 201, 202, 194, 68,\n\t\t102, 48, 199, 13, 34, 70, 38, 37, 207, 112, 215, 104, 102,\n\t\t25, 36, 86, 222, 79, 44, 232, 137, 150, 159, 171, 64, 74,\n\t\t32, 104, 31, 151, 64, 151, 5, 96, 60, 78, 34, 142, 103, 116,\n\t\t106, 177, 78, 6, 47, 44, 50, 173, 228, 242, 26, 64, 8, 178,\n\t\t195, 12, 144, 235, 254, 186, 169, 70, 223, 231, 251, 213,\n\t\t194, 116, 111, 176, 7, 188, 181, 249, 11, 214, 12, 240, 18,\n\t\t88, 11, 83, 58, 141, 140, 205, 172, 7, 114, 201, 80, 238,\n\t\t111, 190, 254, 252, 244, 178, 211, 223, 212, 10, 164, 172,\n\t\t182, 60, 164, 122, 237, 195, 141, 95, 99, 253, 120, 144, 168,\n\t\t109, 86, 141, 61, 10, 18, 28, 5, 183, 104, 173, 227, 222,\n\t\t160, 38, 150, 143, 137, 100, 192, 169, 122, 121, 212, 82,\n\t\t133, 96, 220, 144, 37, 244, 68, 19, 169, 138, 80, 162, 24,\n\t\t152, 182, 190, 204, 244, 96, 151, 168, 78, 65, 66, 201, 109,\n\t\t108, 47, 148, 23, 15, 208, 184, 19, 162, 52, 129, 141, 90,\n\t\t217, 189, 182, 75, 13, 109, 167, 205, 133, 76, 115, 165, 22,\n\t\t86, 140, 209, 218, 54, 105, 171, 93, 141, 137, 13, 72, 134,\n\t\t201, 202, 126, 127, 49, 12, 231, 74, 86, 161, 101, 123, 119,\n\t\t163, 158, 33, 3, 121, 79, 10, 17, 62, 137, 242, 37, 214, 85,\n\t\t190, 129, 17, 8, 247, 47, 204, 193, 213, 67, 209, 160, 183,\n\t\t8, 97, 157, 137, 239, 24, 196, 120, 163, 242, 164, 122, 130,\n\t\t64, 66, 104, 219, 199, 225, 177, 124, 135, 179, 82, 241, 59,\n\t\t121, 213, 34, 154, 216, 163, 198, 21, 15, 248, 9, 122, 156,\n\t\t26, 28, 215, 61, 14, 56, 98, 59, 106, 102, 121, 222, 115,\n\t\t128, 139, 15, 196, 16, 4, 127, 166, 0, 104, 84, 1, 213, 119,\n\t\t142, 156, 31, 30, 172, 22, 91, 221, 196, 155, 195, 62, 89,\n\t\t48, 177, 131, 63, 190, 185, 93, 95, 78, 74, 169, 53, 25, 0,\n\t\t76, 231, 170, 51, 113, 178, 236, 20, 42, 13, 129, 167, 228,\n\t\t51, 197, 21, 68, 32, 22, 192, 158, 109, 249, 170, 48, 95,\n\t\t50, 110, 24, 88, 167, 144, 90, 122, 251, 70, 35, 82, 113,\n\t\t175, 128, 160, 206, 249, 217, 124, 52, 121, 124, 30, 31, 78,\n\t\t161, 73, 145, 66, 141, 61, 55, 240, 2, 199, 163, 63, 32, 194,\n\t\t112, 68, 161, 171, 44, 23, 34, 152, 122, 86, 64, 161, 135,\n\t\t25, 252, 45, 158, 175, 32, 16, 139, 12, 208, 246, 255, 126,\n\t\t204, 46, 205, 83, 197, 161, 237, 150, 166, 138, 177, 122,\n\t\t117, 15, 134, 21, 100, 134, 145, 130, 40, 56, 231, 221, 181,\n\t\t2, 199, 136, 210, 234, 172, 90, 113, 213, 49, 121, 90, 149,\n\t\t82, 137, 135, 106, 154, 117, 192, 125, 47, 224, 110, 213,\n\t\t149, 103, 166, 2, 183, 152, 142, 4, 108, 10, 192, 17, 84,\n\t\t20, 56, 137, 139, 36, 25, 33, 96, 67, 152, 47, 94, 223, 195,\n\t\t57, 187, 222, 248, 162, 192, 41, 228, 229, 138, 49, 48, 227,\n\t\t184, 2, 135, 48, 164, 41, 174, 149, 161, 140, 144, 5, 182,\n\t\t42, 243, 200, 64, 76, 230, 5, 134, 157, 72, 185, 54, 77, 158,\n\t\t67, 55, 42, 102, 186, 3, 85, 144, 10, 91, 47, 11, 189, 199,\n\t\t201, 59, 41, 242, 86, 115, 248, 147, 182, 241, 78, 147, 138,\n\t\t212, 176, 153, 43, 50, 35, 58, 148, 84, 33, 178, 31, 88, 28,\n\t\t6, 81, 47, 66, 113, 136, 248, 46, 48, 226, 32, 106, 194, 243,\n\t\t25, 231, 68, 219, 74, 57, 37, 78, 49, 239, 66, 93, 131, 2,\n\t\t16, 247, 221, 144, 101, 30, 128, 120, 187, 193, 135, 158,\n\t\t230, 88, 149, 171, 15, 235, 229, 114, 53, 125, 6, 178, 239,\n\t\t233, 175, 200, 245, 98, 141, 49, 36, 27, 20, 80, 142, 97,\n\t\t49, 41, 177, 3, 18, 204, 48, 11, 52, 19, 68, 0, 78, 32, 14,\n\t\t87, 96, 15, 143, 12, 14, 174, 216, 57, 4, 136, 119, 178, 61,\n\t\t202, 17, 66, 32, 203, 198, 163, 186, 2, 147, 165, 17, 12,\n\t\t202, 22, 182, 244, 182, 187, 9, 214, 56, 135, 250, 68, 154,\n\t\t96, 52, 192, 127, 7, 57, 20, 144, 117, 103, 116, 144, 68,\n\t\t168, 189, 62, 81, 122, 131, 194, 66, 100, 249, 22, 114, 175,\n\t\t190, 142, 199, 161, 150, 117, 98, 109, 54, 126, 98, 21, 38,\n\t\t82, 43, 219, 135, 231, 249, 108, 81, 119, 206, 64, 194, 8,\n\t\t36, 87, 199, 250, 88, 33, 166, 180, 219, 196, 203, 42, 245,\n\t\t36, 5, 5, 165, 64, 151, 97, 184, 220, 145, 84, 32, 50, 128,\n\t\t45, 247, 0, 1, 202, 78, 167, 181, 49, 36, 219, 247, 244, 248,\n\t\t223, 65, 117, 43, 156, 243, 22, 104, 109, 189, 84, 165, 83,\n\t\t129, 9, 224, 195, 247, 51, 27, 37, 72, 37, 15, 68, 22, 79,\n\t\t12, 34, 252, 222, 251, 80, 53, 178, 194, 120, 54, 214, 245,\n\t\t214, 251, 82, 11, 163, 65, 208, 23, 156, 38, 156, 17, 113,\n\t\t111, 153, 247, 218, 86, 90, 231, 145, 244, 66, 105, 55, 70,\n\t\t156, 224, 23, 187, 131, 190, 232, 17, 101, 216, 66, 158, 181,\n\t\t175, 153, 187, 169, 93, 214, 250, 119, 106, 65, 80, 248, 27,\n\t\t126, 157, 227, 254, 9, 105, 10, 245, 0, 254, 34, 0, 57, 140,\n\t\t201, 33, 206, 176, 21, 151, 195, 154, 18, 249, 216, 48, 135,\n\t\t177, 17, 212, 166, 78, 192, 76, 196, 116, 64, 135, 100, 60,\n\t\t70, 87, 226, 58, 190, 204, 5, 84, 108, 209, 137, 172, 149,\n\t\t33, 23, 29, 91, 112, 162, 72, 18, 145, 9, 234, 252, 224, 48,\n\t\t169, 116, 182, 116, 152, 57, 0, 6, 214, 155, 234, 39, 131,\n\t\t133, 33, 58, 101, 138, 13, 49, 195, 190, 194, 19, 161, 254,\n\t\t82, 180, 148, 86, 50, 161, 94, 22, 163, 81, 138, 145, 48,\n\t\t70, 33, 109, 169, 36, 88, 153, 73, 191, 71, 44, 225, 0, 70,\n\t\t214, 41, 88, 33, 239, 225, 216, 122, 167, 30, 29, 51, 179,\n\t\t36, 85, 232, 167, 214, 109, 54, 48, 27, 115, 182, 227, 113,\n\t\t14, 165, 230, 79, 120, 122, 174, 129, 124, 156, 63, 146, 206,\n\t\t220, 93, 254, 83, 31, 90, 204, 212, 29, 212, 178, 172, 144,\n\t\t165, 41, 131, 241, 99, 20, 229, 249, 249, 64, 101, 49, 112,\n\t\t220, 95, 157, 177, 175, 160, 20, 228, 243, 68, 194, 166, 24,\n\t\t210, 121, 73, 32, 149, 23, 69, 223, 240, 89, 101, 247, 2,\n\t\t190, 136, 121, 212, 139, 253, 85, 146, 246, 198, 50, 204,\n\t\t45, 128, 7, 245, 83, 252, 4, 23, 5, 220, 64, 234, 48, 240,\n\t\t100, 0, 36, 168, 252, 196, 240, 51, 252, 199, 242, 93, 24,\n\t\t126, 157, 64, 192, 210, 137, 152, 181, 21, 59, 120, 188, 255,\n\t\t39, 209, 131, 193, 217, 254, 123, 242, 95, 72, 97, 114, 99,\n\t\t254, 3, 216, 74, 36, 88, 149, 19, 44, 207, 230, 245, 158,\n\t\t242, 253, 56, 255, 109, 252, 63, 0, 169, 82, 160, 108, 42,\n\t\t134, 26, 22, 187, 237, 100, 218, 162, 201, 94, 58, 9, 103,\n\t\t69, 70, 18, 231, 109, 219, 221, 36, 55, 208, 69, 228, 186,\n\t\t204, 179, 217, 61, 159, 217, 36, 23, 165, 62, 41, 101, 35,\n\t\t96, 16, 107, 1, 38, 247, 92, 139, 155, 19, 1, 97, 222, 206,\n\t\t103, 171, 113, 162, 231, 154, 169, 166, 44, 81, 252, 243,\n\t\t61, 102, 197, 57, 185, 45, 100, 102, 210, 218, 198, 190, 214,\n\t\t252, 134, 69, 102, 64, 84, 71, 199, 251, 44, 27, 91, 164,\n\t\t83, 152, 120, 176, 220, 226, 3, 190, 143, 208, 254, 46, 16,\n\t\t149, 163, 239, 171, 249, 18, 125, 0, 152, 19, 152, 99, 38,\n\t\t60, 56, 128, 221, 239, 253, 247, 42, 30, 127, 196, 40, 85,\n\t\t180, 57, 184, 87, 205, 197, 162, 137, 10, 232, 118, 205, 108,\n\t\t108, 62, 184, 51, 146, 155, 182, 110, 186, 207, 46, 13, 15,\n\t\t53, 228, 200, 21, 105, 7, 0, 220, 3, 160, 3, 124, 58, 14,\n\t\t207, 179, 174, 35, 122, 195, 65, 134, 79, 0, 68, 172, 157,\n\t\t107, 206, 114, 60, 28, 144, 231, 1, 123, 32, 35, 232, 91,\n\t\t88, 56, 79, 210, 61, 109, 203, 84, 209, 150, 160, 27, 243,\n\t\t47, 149, 18, 97, 145, 170, 242, 149, 86, 74, 239, 18, 85,\n\t\t234, 38, 151, 199, 75, 154, 206, 137, 222, 42, 101, 21, 126,\n\t\t47, 157, 0, 187, 83, 231, 163, 223, 238, 238, 48, 77, 71,\n\t\t106, 164, 73, 67, 114, 231, 45, 114, 3, 97, 211, 31, 66, 35,\n\t\t109, 79, 119, 54, 206, 27, 53, 93, 70, 165, 169, 178, 138,\n\t\t69, 33, 212, 162, 157, 97, 237, 184, 217, 249, 126, 209, 227,\n\t\t61, 255, 2, 176, 50, 67, 174, 235, 136, 29, 175, 24, 85, 67,\n\t\t64, 175, 50, 23, 228, 197, 241, 48, 137, 168, 73, 23, 49,\n\t\t250, 40, 149, 214, 34, 253, 128, 79, 78, 194, 142, 190, 22,\n\t\t228, 39, 21, 132, 72, 170, 104, 199, 0, 168, 10, 207, 87,\n\t\t100, 140, 200, 79, 38, 1, 231, 184, 97, 22, 32, 8, 41, 150,\n\t\t144, 50, 134, 102, 141, 102, 182, 82, 223, 51, 120, 164, 159,\n\t\t132, 79, 185, 229, 77, 7, 225, 137, 221, 43, 133, 89, 10,\n\t\t116, 52, 32, 6, 22, 151, 26, 227, 167, 76, 39, 161, 3, 36,\n\t\t156, 97, 198, 58, 224, 66, 171, 77, 208, 220, 142, 243, 156,\n\t\t121, 74, 118, 146, 210, 110, 92, 136, 39, 119, 147, 166, 103,\n\t\t167, 133, 240, 47, 1, 23, 174, 63, 45, 121, 121, 144, 85,\n\t\t82, 47, 21, 212, 127, 23, 230, 2, 33, 96, 225, 130, 79, 82,\n\t\t29, 96, 148, 132, 243, 115, 246, 225, 156, 35, 81, 48, 112,\n\t\t8, 161, 16, 82, 36, 33, 153, 89, 213, 197, 137, 120, 148,\n\t\t1, 202, 134, 49, 51, 208, 195, 44, 125, 108, 8, 135, 145,\n\t\t204, 209, 182, 87, 45, 231, 168, 51, 147, 7, 232, 188, 64,\n\t\t23, 41, 120, 228, 194, 209, 41, 28, 145, 141, 122, 52, 67,\n\t\t114, 171, 60, 39, 121, 190, 166, 154, 119, 226, 74, 200, 23,\n\t\t134, 148, 25, 101, 159, 200, 213, 183, 46, 183, 174, 34, 145,\n\t\t139, 39, 154, 230, 77, 20, 155, 19, 181, 170, 68, 249, 187,\n\t\t80, 23, 170, 178, 248, 221, 33, 76, 33, 145, 103, 145, 35,\n\t\t28, 100, 138, 44, 217, 76, 40, 251, 202, 105, 52, 224, 9,\n\t\t88, 154, 152, 63, 64, 65, 96, 130, 73, 229, 89, 145, 212,\n\t\t197, 175, 152, 53, 32, 164, 148, 12, 226, 59, 11, 229, 213,\n\t\t134, 100, 4, 231, 230, 30, 89, 33, 59, 57, 139, 8, 141, 82,\n\t\t128, 123, 152, 156, 164, 170, 10, 132, 136, 81, 128, 165,\n\t\t146, 220, 28, 163, 46, 235, 197, 6, 128, 191, 188, 128, 114,\n\t\t174, 184, 37, 84, 38, 163, 186, 37, 250, 169, 175, 228, 71,\n\t\t43, 234, 88, 68, 139, 155, 11, 229, 165, 149, 117, 123, 34,\n\t\t42, 172, 168, 225, 189, 19, 192, 47, 212, 14, 24, 192, 103,\n\t\t101, 141, 241, 249, 242, 185, 148, 182, 243, 142, 22, 23,\n\t\t75, 102, 246, 130, 22, 31, 158, 38, 118, 190, 121, 216, 20,\n\t\t241, 229, 6, 68, 114, 177, 116, 49, 147, 110, 191, 141, 112,\n\t\t110, 126, 87, 11, 174, 154, 35, 107, 104, 212, 135, 112, 144,\n\t\t4, 156, 235, 222, 226, 156, 38, 53, 23, 53, 26, 120, 72, 246,\n\t\t109, 218, 2, 238, 217, 18, 26, 179, 76, 25, 213, 196, 238,\n\t\t94, 233, 19, 96, 96, 180, 13, 107, 40, 78, 18, 127, 176, 2,\n\t\t154, 216, 83, 244, 9, 5, 169, 238, 125, 56, 200, 145, 14,\n\t\t196, 164, 71, 121, 75, 94, 82, 54, 15, 111, 99, 150, 230,\n\t\t251, 32, 98, 241, 3, 28, 117, 170, 227, 121, 248, 132, 220,\n\t\t181, 104, 128, 33, 37, 205, 133, 231, 205, 154, 176, 65, 168,\n\t\t186, 232, 56, 138, 119, 97, 254, 64, 253, 119, 159, 172, 109,\n\t\t49, 206, 76, 70, 225, 187, 150, 99, 72, 59, 33, 253, 243,\n\t\t168, 33, 80, 115, 99, 254, 12, 209, 204, 186, 108, 138, 179,\n\t\t139, 217, 165, 44, 148, 67, 95, 37, 212, 175, 76, 216, 8,\n\t\t63, 193, 45, 25, 3, 207, 191, 70, 4, 192, 198, 198, 141, 177,\n\t\t174, 230, 22, 99, 92, 218, 57, 69, 233, 172, 102, 43, 77,\n\t\t14, 90, 244, 37, 45, 120, 51, 119, 97, 194, 73, 6, 123, 41,\n\t\t5, 180, 148, 38, 63, 41, 242, 184, 68, 235, 74, 203, 133,\n\t\t229, 184, 214, 204, 95, 81, 137, 132, 52, 179, 0, 5, 3, 255,\n\t\t119, 250, 123, 35, 176, 67, 51, 34, 65, 77, 199, 244, 130,\n\t\t66, 85, 47, 238, 233, 120, 62, 164, 140, 115, 57, 37, 138,\n\t\t83, 94, 133, 36, 55, 141, 152, 28, 148, 124, 132, 233, 15,\n\t\t186, 176, 67, 178, 130, 101, 156, 247, 131, 116, 158, 158,\n\t\t92, 181, 227, 105, 29, 34, 92, 217, 128, 208, 92, 164, 200,\n\t\t214, 73, 115, 41, 172, 39, 114, 123, 241, 191, 250, 164, 47,\n\t\t162, 91, 24, 165, 70, 93, 20, 12, 58, 92, 230, 109, 147, 120,\n\t\t57, 63, 191, 98, 44, 231, 160, 215, 106, 139, 170, 57, 173,\n\t\t159, 101, 250, 236, 251, 21, 159, 97, 96, 182, 68, 92, 107,\n\t\t243, 222, 154, 138, 108, 51, 189, 126, 50, 146, 86, 249, 190,\n\t\t166, 186, 182, 100, 46, 174, 22, 220, 156, 173, 43, 194, 238,\n\t\t142, 145, 33, 6, 195, 200, 160, 17, 9, 214, 196, 163, 5, 218,\n\t\t69, 21, 91, 150, 222, 131, 254, 89, 37, 220, 97, 76, 6, 23,\n\t\t116, 4, 85, 81, 153, 140, 147, 161, 39, 24, 91, 109, 81, 212,\n\t\t1, 131, 255, 237, 121, 82, 53, 205, 178, 44, 52, 67, 207,\n\t\t3, 24, 76, 51, 150, 95, 208, 68, 94, 106, 197, 94, 146, 47,\n\t\t49, 57, 181, 148, 237, 170, 97, 152, 130, 178, 20, 66, 225,\n\t\t236, 140, 132, 50, 233, 100, 32, 221, 49, 69, 54, 86, 230,\n\t\t201, 22, 76, 193, 211, 202, 4, 63, 224, 189, 133, 18, 175,\n\t\t239, 201, 141, 171, 217, 137, 79, 36, 175, 79, 217, 2, 182,\n\t\t223, 150, 209, 166, 247, 189, 115, 193, 51, 253, 34, 124,\n\t\t9, 141, 37, 115, 85, 14, 228, 56, 169, 230, 248, 151, 192,\n\t\t216, 35, 201, 194, 40, 83, 76, 205, 174, 220, 33, 68, 243,\n\t\t101, 150, 145, 248, 73, 203, 251, 183, 202, 171, 85, 195,\n\t\t44, 196, 147, 118, 56, 233, 182, 107, 88, 70, 132, 192, 76,\n\t\t115, 36, 244, 84, 136, 116, 41, 58, 161, 11, 241, 41, 109,\n\t\t195, 84, 222, 93, 235, 218, 212, 145, 161, 63, 161, 104, 126,\n\t\t78, 96, 163, 74, 188, 145, 208, 221, 53, 145, 182, 132, 34,\n\t\t21, 197, 67, 195, 131, 208, 188, 128, 171, 188, 55, 131, 81,\n\t\t85, 117, 254, 158, 186, 72, 12, 165, 207, 114, 145, 132, 232,\n\t\t194, 102, 143, 157, 239, 49, 12, 134, 62, 238, 133, 149, 199,\n\t\t53, 108, 118, 182, 151, 95, 175, 50, 25, 254, 92, 35, 199,\n\t\t163, 173, 72, 25, 249, 69, 195, 18, 242, 104, 212, 135, 154,\n\t\t126, 44, 243, 149, 236, 70, 31, 190, 163, 142, 46, 109, 37,\n\t\t124, 107, 44, 75, 78, 223, 41, 52, 101, 75, 122, 157, 15,\n\t\t21, 228, 52, 5, 224, 22, 39, 146, 90, 225, 157, 100, 175,\n\t\t221, 140, 95, 125, 131, 75, 51, 19, 230, 183, 185, 100, 236,\n\t\t216, 99, 83, 233, 198, 208, 0, 31, 195, 243, 196, 243, 201,\n\t\t145, 27, 31, 126, 218, 18, 205, 187, 209, 88, 104, 220, 62,\n\t\t100, 198, 193, 74, 198, 185, 192, 104, 133, 145, 139, 44,\n\t\t63, 28, 95, 103, 216, 145, 70, 28, 71, 116, 131, 158, 125,\n\t\t214, 241, 76, 151, 232, 8, 139, 107, 57, 136, 184, 41, 26,\n\t\t147, 228, 224, 118, 174, 66, 145, 134, 6, 124, 91, 96, 75,\n\t\t13, 165, 204, 9, 219, 245, 232, 65, 114, 41, 170, 204, 172,\n\t\t35, 212, 201, 238, 78, 80, 146, 238, 207, 152, 32, 33, 111,\n\t\t74, 75, 50, 203, 226, 26, 6, 163, 73, 45, 155, 202, 89, 223,\n\t\t200, 77, 149, 63, 45, 58, 254, 112, 88, 88, 178, 132, 92,\n\t\t249, 144, 222, 46, 18, 247, 173, 51, 34, 38, 213, 173, 240,\n\t\t31, 222, 102, 220, 201, 237, 193, 102, 56, 170, 99, 130, 35,\n\t\t204, 96, 3, 101, 203, 50, 146, 148, 46, 93, 241, 161, 190,\n\t\t207, 159, 47, 124, 80, 65, 44, 133, 250, 85, 18, 65, 35, 218,\n\t\t2, 144, 54, 160, 182, 137, 99, 234, 216, 242, 88, 235, 68,\n\t\t123, 24, 13, 84, 51, 108, 138, 85, 65, 69, 48, 21, 195, 9,\n\t\t182, 108, 91, 118, 75, 101, 158, 238, 82, 170, 236, 32, 21,\n\t\t241, 140, 6, 46, 245, 80, 103, 153, 224, 176, 253, 102, 133,\n\t\t18, 56, 25, 226, 117, 102, 210, 193, 158, 253, 137, 68, 52,\n\t\t166, 99, 218, 28, 81, 56, 3, 236, 60, 10, 65, 124, 161, 5,\n\t\t8, 39, 87, 238, 248, 210, 127, 70, 216, 95, 195, 50, 65, 3,\n\t\t236, 84, 242, 207, 104, 80, 189, 212, 45, 80, 6, 68, 128,\n\t\t80, 3, 161, 125, 145, 153, 71, 188, 153, 13, 235, 3, 223,\n\t\t204, 166, 83, 136, 185, 241, 13, 74, 190, 250, 50, 146, 150,\n\t\t57, 240, 34, 89, 172, 240, 236, 179, 30, 86, 58, 189, 255,\n\t\t121, 130, 156, 91, 54, 124, 107, 96, 134, 53, 176, 255, 239,\n\t\t214, 110, 121, 227, 211, 223, 16, 183, 191, 249, 81, 163,\n\t\t81, 53, 81, 215, 145, 134, 194, 107, 99, 190, 110, 214, 234,\n\t\t87, 131, 38, 143, 180, 21, 161, 57, 21, 154, 150, 150, 168,\n\t\t66, 160, 127, 164, 167, 192, 222, 179, 174, 234, 232, 113,\n\t\t149, 138, 205, 128, 72, 87, 238, 229, 240, 114, 16, 219, 126,\n\t\t125, 199, 238, 61, 140, 239, 154, 123, 135, 130, 221, 216,\n\t\t225, 27, 93, 38, 247, 212, 185, 197, 174, 106, 236, 69, 109,\n\t\t212, 96, 136, 235, 182, 112, 96, 198, 131, 238, 33, 29, 51,\n\t\t35, 226, 110, 32, 94, 169, 65, 177, 6, 202, 194, 27, 133,\n\t\t243, 69, 159, 205, 134, 2, 83, 228, 10, 147, 40, 26, 160,\n\t\t61, 56, 13, 67, 103, 113, 130, 78, 209, 135, 132, 211, 72,\n\t\t247, 8, 21, 4, 167, 22, 51, 214, 60, 6, 95, 113, 28, 129,\n\t\t58, 81, 85, 173, 180, 248, 137, 134, 67, 61, 54, 77, 156,\n\t\t164, 62, 19, 104, 158, 122, 52, 185, 26, 20, 126, 188, 201,\n\t\t25, 61, 201, 21, 218, 176, 171, 130, 129, 180, 136, 178, 179,\n\t\t20, 25, 234, 85, 85, 23, 213, 35, 242, 227, 49, 125, 20, 227,\n\t\t189, 241, 8, 203, 75, 110, 155, 251, 94, 108, 83, 123, 78,\n\t\t72, 117, 241, 219, 23, 152, 118, 26, 136, 128, 226, 24, 20,\n\t\t166, 150, 247, 254, 189, 100, 42, 138, 207, 236, 228, 119,\n\t\t77, 171, 234, 181, 132, 183, 246, 18, 250, 130, 124, 178,\n\t\t21, 109, 160, 223, 196, 146, 41, 178, 107, 249, 59, 143, 159,\n\t\t75, 49, 241, 107, 57, 60, 125, 135, 218, 24, 203, 192, 5,\n\t\t171, 139, 215, 103, 104, 125, 30, 33, 242, 0, 59, 171, 77,\n\t\t17, 56, 64, 97, 81, 97, 0, 146, 82, 206, 243, 105, 158, 138,\n\t\t64, 168, 80, 197, 73, 119, 196, 125, 104, 142, 169, 224, 92,\n\t\t175, 34, 230, 239, 60, 174, 153, 43, 169, 191, 211, 152, 49,\n\t\t238, 79, 141, 137, 234, 195, 187, 60, 102, 163, 3, 138, 183,\n\t\t61, 233, 97, 153, 48, 253, 184, 69, 80, 121, 124, 67, 106,\n\t\t153, 255, 199, 196, 83, 119, 153, 164, 186, 154, 157, 244,\n\t\t236, 116, 45, 113, 157, 194, 51, 140, 92, 189, 199, 173, 155,\n\t\t150, 49, 0, 234, 88, 151, 25, 129, 245, 152, 48, 154, 51,\n\t\t185, 214, 139, 142, 221, 46, 102, 53, 13, 139, 202, 184, 132,\n\t\t180, 65, 213, 153, 103, 165, 103, 236, 94, 67, 202, 229, 248,\n\t\t40, 18, 145, 51, 108, 55, 201, 196, 200, 88, 247, 5, 67, 204,\n\t\t141, 45, 205, 146, 162, 56, 240, 109, 146, 233, 143, 112,\n\t\t165, 203, 181, 23, 94, 207, 14, 110, 162, 102, 181, 61, 97,\n\t\t133, 132, 163, 51, 55, 137, 3, 222, 43, 239, 96, 249, 200,\n\t\t216, 69, 30, 13, 155, 125, 14, 47, 41, 104, 181, 78, 27, 233,\n\t\t96, 230, 164, 156, 76, 205, 246, 99, 253, 227, 221, 113, 14,\n\t\t214, 124, 39, 230, 81, 139, 31, 159, 125, 58, 162, 219, 123,\n\t\t194, 154, 171, 20, 70, 99, 54, 12, 218, 240, 165, 88, 215,\n\t\t65, 134, 71, 42, 168, 161, 248, 61, 100, 12, 179, 249, 34,\n\t\t73, 183, 118, 91, 19, 122, 124, 196, 80, 35, 38, 10, 214,\n\t\t170, 191, 242, 24, 77, 89, 108, 127, 129, 96, 174, 75, 129,\n\t\t42, 82, 39, 27, 160, 110, 68, 49, 16, 52, 183, 105, 118, 221,\n\t\t249, 66, 199, 7, 158, 78, 184, 208, 15, 70, 132, 113, 116,\n\t\t37, 105, 150, 225, 139, 224, 227, 17, 178, 73, 144, 103, 250,\n\t\t79, 148, 236, 110, 122, 191, 121, 111, 86, 231, 18, 82, 56,\n\t\t198, 4, 242, 183, 238, 50, 205, 113, 64, 46, 188, 14, 239,\n\t\t181, 4, 233, 96, 185, 33, 162, 222, 130, 54, 143, 65, 127,\n\t\t22, 0, 177, 132, 130, 22, 216, 18, 21, 134, 161, 119, 30,\n\t\t88, 245, 16, 240, 10, 215, 34, 170, 121, 126, 94, 194, 211,\n\t\t102, 43, 226, 223, 74, 5, 98, 225, 70, 162, 187, 249, 12,\n\t\t33, 132, 140, 25, 115, 97, 182, 89, 1, 250, 79, 15, 57, 224,\n\t\t17, 120, 199, 191, 181, 148, 169, 220, 88, 80, 206, 251, 169,\n\t\t226, 9, 152, 78, 212, 114, 6, 14, 44, 31, 210, 46, 198, 133,\n\t\t114, 172, 204, 159, 103, 74, 133, 139, 165, 236, 133, 74,\n\t\t214, 155, 161, 252, 96, 179, 96, 138, 39, 86, 15, 58, 210,\n\t\t63, 68, 35, 57, 88, 26, 174, 178, 165, 180, 155, 59, 231,\n\t\t42, 205, 165, 213, 173, 27, 197, 218, 194, 202, 230, 173,\n\t\t185, 139, 17, 175, 105, 248, 248, 218, 193, 162, 57, 181,\n\t\t131, 37, 129, 202, 124, 9, 29, 162, 199, 190, 50, 186, 133,\n\t\t239, 156, 217, 142, 127, 141, 132, 250, 30, 159, 98, 131,\n\t\t242, 116, 127, 115, 165, 198, 144, 110, 85, 45, 109, 74, 204,\n\t\t166, 171, 201, 189, 156, 178, 80, 159, 77, 179, 203, 217,\n\t\t63, 217, 250, 206, 123, 71, 12, 179, 205, 79, 100, 222, 5,\n\t\t163, 108, 83, 198, 198, 29, 101, 190, 40, 254, 96, 49, 176,\n\t\t10, 119, 76, 230, 243, 207, 246, 88, 128, 110, 210, 190, 93,\n\t\t213, 194, 166, 234, 32, 118, 7, 166, 98, 209, 104, 169, 110,\n\t\t141, 133, 176, 80, 196, 211, 229, 208, 171, 113, 131, 215,\n\t\t151, 63, 1, 88, 184, 116, 249, 114, 100, 82, 206, 91, 183,\n\t\t206, 156, 2, 184, 57, 90, 20, 180, 180, 120, 229, 74, 146,\n\t\t220, 119, 239, 158, 62, 43, 72, 33, 207, 117, 225, 51, 19,\n\t\t205, 203, 124, 190, 50, 135, 154, 88, 72, 154, 62, 226, 183,\n\t\t76, 51, 178, 84, 80, 196, 70, 191, 117, 115, 99, 58, 171,\n\t\t188, 60, 12, 99, 187, 117, 52, 147, 44, 16, 5, 14, 8, 118,\n\t\t190, 37, 78, 232, 208, 30, 161, 168, 246, 43, 24, 169, 141,\n\t\t25, 177, 162, 83, 154, 112, 188, 64, 188, 38, 195, 226, 149,\n\t\t141, 88, 55, 138, 208, 140, 73, 248, 212, 105, 142, 109, 181,\n\t\t58, 191, 97, 193, 246, 14, 215, 113, 155, 48, 209, 50, 184,\n\t\t187, 252, 91, 93, 10, 254, 29, 94, 104, 84, 132, 38, 11, 175,\n\t\t255, 11, 60, 131, 134, 100, 12, 236, 48, 170, 16, 251, 112,\n\t\t153, 80, 205, 124, 128, 69, 88, 58, 178, 143, 223, 194, 216,\n\t\t52, 69, 212, 154, 72, 92, 114, 85, 139, 65, 85, 157, 77, 99,\n\t\t3, 174, 157, 70, 159, 223, 57, 4, 29, 158, 73, 65, 143, 31,\n\t\t185, 5, 3, 113, 246, 134, 110, 137, 108, 70, 183, 197, 205,\n\t\t51, 58, 100, 183, 143, 82, 159, 165, 179, 212, 101, 135, 239,\n\t\t82, 0, 167, 174, 99, 19, 160, 238, 228, 245, 66, 206, 93,\n\t\t0, 183, 113, 131, 168, 69, 116, 50, 162, 47, 253, 92, 21,\n\t\t170, 73, 183, 71, 109, 37, 5, 192, 44, 152, 181, 247, 12,\n\t\t237, 60, 73, 141, 53, 188, 180, 70, 45, 237, 198, 195, 62,\n\t\t226, 46, 107, 57, 58, 192, 185, 26, 77, 233, 197, 108, 101,\n\t\t81, 88, 58, 192, 18, 206, 217, 169, 40, 182, 230, 41, 21,\n\t\t62, 221, 230, 245, 116, 117, 157, 173, 238, 32, 12, 68, 212,\n\t\t225, 62, 62, 151, 153, 210, 100, 164, 130, 101, 59, 143, 204,\n\t\t148, 240, 92, 85, 191, 8, 112, 228, 172, 103, 170, 102, 109,\n\t\t250, 214, 153, 214, 176, 73, 230, 198, 251, 152, 51, 60, 4,\n\t\t55, 166, 139, 55, 120, 221, 63, 135, 14, 106, 166, 3, 152,\n\t\t49, 167, 254, 149, 155, 190, 32, 153, 121, 50, 172, 28, 91,\n\t\t147, 71, 60, 136, 23, 24, 76, 160, 45, 162, 4, 89, 29, 37,\n\t\t60, 142, 41, 73, 57, 35, 26, 198, 5, 163, 50, 18, 98, 102,\n\t\t144, 237, 171, 76, 124, 40, 90, 21, 70, 180, 48, 195, 55,\n\t\t25, 201, 77, 231, 161, 148, 170, 112, 34, 122, 98, 171, 110,\n\t\t161, 137, 163, 154, 176, 155, 205, 25, 41, 171, 160, 141,\n\t\t181, 159, 99, 253, 35, 97, 61, 147, 212, 92, 148, 56, 224,\n\t\t160, 185, 135, 231, 119, 91, 7, 204, 41, 182, 79, 101, 138,\n\t\t237, 95, 145, 252, 84, 177, 39, 163, 58, 91, 95, 243, 133,\n\t\t109, 206, 71, 94, 45, 74, 242, 154, 53, 50, 43, 234, 89, 50,\n\t\t214, 76, 18, 40, 129, 11, 145, 132, 252, 109, 163, 47, 198,\n\t\t138, 244, 141, 186, 127, 131, 253, 0, 186, 178, 198, 67, 192,\n\t\t51, 186, 75, 223, 11, 22, 31, 39, 54, 136, 74, 44, 21, 199,\n\t\t186, 215, 2, 28, 100, 232, 128, 125, 23, 90, 1, 215, 128,\n\t\t3, 36, 215, 12, 215, 238, 122, 72, 17, 66, 94, 161, 72, 144,\n\t\t57, 79, 169, 211, 66, 55, 167, 62, 66, 168, 21, 23, 212, 34,\n\t\t129, 89, 51, 225, 203, 204, 142, 241, 213, 66, 40, 62, 166,\n\t\t136, 255, 233, 29, 173, 174, 78, 55, 169, 14, 201, 148, 101,\n\t\t249, 118, 143, 21, 197, 157, 171, 162, 190, 109, 156, 224,\n\t\t91, 121, 121, 169, 163, 236, 230, 166, 17, 66, 181, 203, 165,\n\t\t186, 93, 113, 130, 149, 52, 215, 120, 4, 229, 115, 9, 6, 249,\n\t\t110, 102, 150, 50, 45, 63, 172, 121, 165, 220, 176, 138, 188,\n\t\t102, 148, 144, 33, 218, 106, 8, 236, 184, 99, 158, 86, 187,\n\t\t243, 254, 206, 53, 68, 116, 198, 200, 222, 73, 217, 206, 89,\n\t\t123, 162, 138, 80, 109, 125, 41, 81, 78, 121, 185, 90, 40,\n\t\t52, 5, 142, 155, 238, 78, 4, 192, 172, 64, 168, 89, 101, 25,\n\t\t115, 145, 103, 43, 70, 137, 101, 51, 64, 214, 128, 115, 23,\n\t\t196, 85, 211, 46, 33, 252, 135, 191, 78, 126, 190, 208, 255,\n\t\t64, 74, 31, 75, 162, 157, 84, 62, 144, 75, 111, 202, 14, 190,\n\t\t70, 162, 200, 198, 206, 255, 85, 43, 167, 118, 237, 147, 215,\n\t\t93, 93, 251, 112, 180, 113, 165, 162, 238, 100, 25, 56, 48,\n\t\t164, 73, 204, 190, 227, 53, 227, 57, 164, 61, 123, 203, 170,\n\t\t163, 40, 30, 203, 140, 253, 131, 175, 158, 215, 24, 216, 131,\n\t\t10, 125, 133, 246, 146, 178, 157, 248, 253, 67, 38, 180, 35,\n\t\t246, 147, 241, 98, 73, 15, 177, 67, 46, 148, 113, 194, 170,\n\t\t0, 154, 134, 241, 182, 98, 20, 225, 167, 175, 117, 18, 246,\n\t\t29, 162, 25, 194, 179, 100, 71, 253, 14, 188, 87, 250, 9,\n\t\t98, 72, 237, 19, 128, 223, 144, 208, 48, 129, 42, 206, 206,\n\t\t67, 12, 155, 162, 230, 219, 148, 235, 179, 90, 163, 72, 99,\n\t\t166, 194, 42, 201, 45, 248, 254, 13, 131, 129, 177, 4, 158,\n\t\t54, 111, 82, 219, 198, 82, 181, 70, 52, 180, 117, 125, 61,\n\t\t104, 74, 196, 57, 91, 68, 55, 16, 129, 150, 191, 13, 43, 169,\n\t\t20, 91, 126, 45, 241, 57, 34, 35, 186, 177, 161, 191, 150,\n\t\t205, 34, 129, 199, 50, 93, 220, 190, 125, 219, 208, 112, 127,\n\t\t239, 224, 0, 63, 115, 231, 238, 217, 211, 183, 111, 77, 131,\n\t\t122, 42, 212, 212, 64, 24, 112, 44, 30, 174, 57, 195, 213,\n\t\t24, 127, 122, 20, 176, 135, 232, 204, 235, 108, 18, 226, 84,\n\t\t78, 32, 97, 220, 147, 95, 53, 104, 102, 32, 216, 116, 22,\n\t\t159, 55, 118, 111, 44, 35, 130, 54, 198, 180, 14, 55, 195,\n\t\t27, 250, 90, 80, 51, 117, 120, 57, 91, 6, 59, 90, 247, 208,\n\t\t75, 159, 222, 37, 40, 250, 106, 123, 100, 8, 18, 160, 72,\n\t\t12, 255, 43, 204, 38, 212, 201, 112, 127, 228, 67, 0, 156,\n\t\t39, 159, 173, 105, 94, 65, 180, 170, 78, 131, 55, 55, 246,\n\t\t216, 186, 138, 129, 236, 118, 169, 245, 189, 53, 219, 19,\n\t\t129, 40, 244, 220, 1, 249, 155, 0, 211, 255, 48, 148, 177,\n\t\t173, 40, 248, 78, 71, 51, 206, 75, 183, 19, 190, 142, 230,\n\t\t36, 248, 194, 92, 246, 61, 119, 167, 101, 52, 26, 111, 37,\n\t\t67, 119, 64, 52, 152, 34, 154, 225, 225, 176, 204, 124, 140,\n\t\t133, 85, 38, 148, 193, 122, 27, 147, 33, 17, 245, 177, 40,\n\t\t182, 39, 224, 82, 193, 43, 13, 200, 3, 174, 67, 87, 102, 61,\n\t\t133, 38, 233, 8, 250, 193, 98, 58, 239, 52, 64, 54, 111, 166,\n\t\t232, 43, 132, 101, 209, 138, 126, 237, 240, 198, 135, 63,\n\t\t92, 23, 44, 110, 187, 95, 185, 30, 209, 225, 168, 246, 249,\n\t\t147, 91, 30, 184, 194, 125, 195, 195, 50, 49, 14, 172, 18,\n\t\t53, 102, 48, 36, 186, 149, 209, 237, 126, 151, 187, 214, 121,\n\t\t56, 239, 13, 119, 87, 237, 210, 213, 163, 226, 122, 162, 240,\n\t\t251, 25, 244, 46, 162, 136, 35, 53, 249, 101, 11, 244, 12,\n\t\t96, 155, 26, 250, 255, 196, 123, 114, 246, 14, 132, 51, 91,\n\t\t187, 108, 164, 130, 15, 156, 250, 68, 217, 32, 145, 200, 148,\n\t\t182, 169, 143, 123, 234, 127, 152, 38, 124, 207, 150, 134,\n\t\t99, 105, 159, 43, 134, 82, 202, 56, 224, 35, 71, 232, 81,\n\t\t176, 12, 166, 205, 154, 249, 118, 193, 241, 132, 113, 96,\n\t\t136, 132, 175, 123, 31, 84, 68, 137, 15, 153, 178, 189, 137,\n\t\t100, 160, 195, 194, 40, 134, 9, 163, 140, 166, 115, 78, 16,\n\t\t32, 138, 253, 175, 182, 255, 69, 247, 205, 138, 155, 36, 179,\n\t\t171, 29, 24, 48, 120, 206, 77, 79, 235, 12, 173, 49, 99, 218,\n\t\t236, 58, 95, 191, 66, 180, 222, 93, 249, 132, 91, 66, 241,\n\t\t229, 41, 111, 140, 142, 12, 213, 47, 89, 181, 11, 12, 125,\n\t\t231, 89, 77, 110, 198, 251, 14, 202, 230, 117, 125, 5, 243,\n\t\t64, 67, 52, 157, 230, 186, 88, 4, 173, 92, 152, 80, 241, 34,\n\t\t65, 19, 239, 123, 241, 49, 18, 226, 253, 173, 168, 21, 94,\n\t\t200, 24, 240, 15, 84, 15, 158, 177, 156, 192, 36, 182, 121,\n\t\t238, 247, 191, 221, 122, 101, 65, 116, 220, 82, 197, 28, 204,\n\t\t25, 33, 10, 229, 196, 54, 160, 67, 155, 219, 74, 20, 176,\n\t\t189, 103, 237, 7, 21, 251, 159, 171, 179, 103, 25, 138, 150,\n\t\t229, 245, 13, 4, 130, 35, 50, 20, 59, 41, 151, 84, 64, 244,\n\t\t170, 121, 57, 187, 98, 225, 209, 23, 37, 216, 162, 55, 171,\n\t\t191, 84, 79, 220, 125, 81, 48, 166, 32, 60, 5, 196, 225, 224,\n\t\t72, 253, 245, 64, 240, 87, 44, 199, 102, 16, 66, 70, 114,\n\t\t244, 51, 183, 146, 241, 14, 188, 19, 201, 202, 78, 48, 207,\n\t\t0, 89, 121, 207, 151, 231, 144, 199, 134, 229, 28, 215, 192,\n\t\t32, 99, 69, 116, 146, 2, 44, 110, 35, 192, 9, 199, 106, 217,\n\t\t132, 212, 85, 170, 19, 40, 231, 164, 156, 157, 66, 20, 178,\n\t\t182, 184, 174, 253, 78, 27, 71, 215, 164, 195, 25, 46, 80,\n\t\t58, 110, 229, 160, 34, 54, 116, 254, 87, 134, 135, 81, 235,\n\t\t209, 208, 196, 16, 77, 123, 62, 207, 150, 236, 23, 16, 163,\n\t\t100, 87, 61, 163, 48, 250, 88, 28, 203, 253, 109, 4, 226,\n\t\t55, 84, 63, 169, 119, 220, 193, 153, 182, 191, 164, 101, 107,\n\t\t71, 111, 127, 18, 166, 83, 38, 233, 120, 102, 178, 109, 208,\n\t\t33, 193, 39, 50, 67, 97, 38, 73, 59, 236, 232, 14, 201, 152,\n\t\t209, 133, 24, 251, 12, 2, 202, 22, 138, 201, 61, 99, 109,\n\t\t162, 158, 229, 240, 109, 114, 6, 188, 88, 218, 67, 81, 183,\n\t\t46, 42, 131, 137, 69, 242, 130, 135, 72, 116, 199, 241, 188,\n\t\t101, 104, 59, 48, 118, 196, 246, 76, 35, 249, 111, 236, 116,\n\t\t242, 179, 147, 137, 252, 251, 180, 147, 241, 201, 87, 242,\n\t\t119, 11, 102, 244, 48, 18, 246, 187, 165, 186, 131, 74, 166,\n\t\t235, 58, 176, 101, 157, 114, 191, 99, 142, 193, 62, 134, 66,\n\t\t183, 196, 190, 199, 63, 209, 11, 208, 236, 138, 221, 2, 58,\n\t\t102, 92, 224, 152, 132, 212, 160, 155, 205, 134, 174, 21,\n\t\t76, 79, 89, 175, 18, 243, 227, 117, 220, 115, 58, 171, 22,\n\t\t246, 71, 61, 89, 193, 223, 184, 39, 47, 166, 182, 121, 186,\n\t\t102, 139, 62, 18, 253, 251, 185, 134, 159, 180, 26, 141, 79,\n\t\t219, 254, 210, 80, 194, 110, 147, 225, 228, 70, 220, 20, 243,\n\t\t217, 3, 198, 101, 221, 124, 241, 254, 174, 189, 112, 200,\n\t\t108, 126, 100, 92, 58, 96, 30, 251, 129, 113, 189, 96, 92,\n\t\t62, 104, 212, 127, 104, 62, 119, 216, 184, 124, 220, 92, 58,\n\t\t96, 46, 234, 220, 16, 50, 55, 200, 123, 39, 148, 222, 163,\n\t\t197, 36, 177, 219, 8, 19, 80, 133, 62, 225, 20, 75, 35, 95,\n\t\t217, 48, 109, 194, 105, 10, 122, 160, 184, 152, 180, 185,\n\t\t172, 59, 168, 55, 240, 31, 25, 198, 68, 96, 125, 115, 76,\n\t\t87, 158, 231, 186, 170, 129, 154, 6, 77, 38, 18, 155, 114,\n\t\t213, 157, 212, 68, 177, 211, 27, 30, 24, 93, 93, 42, 12, 191,\n\t\t43, 55, 230, 58, 134, 133, 103, 176, 90, 233, 13, 113, 9,\n\t\t217, 114, 204, 194, 136, 145, 107, 204, 125, 231, 138, 176,\n\t\t209, 201, 125, 214, 2, 224, 175, 120, 71, 171, 219, 161, 48,\n\t\t23, 86, 177, 89, 167, 34, 230, 19, 198, 225, 239, 87, 173,\n\t\t17, 148, 173, 12, 90, 9, 242, 107, 104, 32, 63, 211, 154,\n\t\t242, 203, 232, 152, 142, 144, 50, 228, 240, 117, 86, 164,\n\t\t106, 198, 142, 93, 9, 77, 153, 57, 217, 187, 182, 5, 199,\n\t\t249, 232, 143, 55, 205, 145, 85, 156, 58, 7, 22, 127, 179,\n\t\t254, 34, 111, 124, 72, 152, 116, 98, 194, 213, 141, 13, 31,\n\t\t102, 215, 44, 133, 253, 66, 53, 132, 219, 169, 142, 159, 114,\n\t\t184, 212, 234, 150, 8, 86, 225, 178, 115, 104, 141, 10, 131,\n\t\t216, 126, 142, 11, 249, 101, 30, 230, 73, 146, 239, 189, 202,\n\t\t150, 221, 74, 147, 245, 57, 95, 9, 245, 249, 86, 14, 192,\n\t\t29, 48, 125, 49, 28, 225, 67, 48, 129, 140, 132, 34, 218,\n\t\t203, 205, 245, 57, 198, 60, 221, 247, 136, 184, 102, 10, 102,\n\t\t198, 47, 82, 194, 123, 200, 237, 49, 161, 8, 71, 214, 32,\n\t\t119, 140, 7, 207, 188, 128, 181, 237, 237, 240, 201, 153,\n\t\t229, 166, 83, 32, 53, 79, 235, 215, 178, 2, 141, 243, 27,\n\t\t43, 198, 190, 19, 52, 207, 225, 155, 34, 250, 132, 169, 191,\n\t\t112, 137, 133, 11, 55, 58, 55, 122, 61, 23, 203, 184, 76,\n\t\t223, 13, 34, 8, 16, 27, 247, 239, 140, 12, 237, 149, 239,\n\t\t182, 169, 124, 128, 101, 155, 218, 38, 98, 168, 127, 122,\n\t\t253, 150, 205, 34, 106, 43, 45, 110, 15, 29, 75, 131, 5, 97,\n\t\t71, 64, 175, 93, 42, 18, 216, 136, 254, 13, 43, 246, 228,\n\t\t227, 13, 159, 187, 151, 197, 71, 106, 136, 1, 9, 6, 61, 57,\n\t\t76, 24, 144, 182, 95, 65, 2, 196, 189, 148, 151, 222, 203,\n\t\t51, 250, 41, 222, 63, 183, 178, 153, 71, 113, 191, 12, 134,\n\t\t207, 172, 21, 144, 58, 208, 26, 8, 17, 126, 44, 74, 91, 128,\n\t\t196, 5, 92, 245, 94, 140, 9, 234, 129, 4, 247, 196, 189, 152,\n\t\t169, 158, 238, 56, 203, 117, 26, 96, 160, 186, 105, 176, 88,\n\t\t186, 199, 109, 39, 197, 68, 180, 72, 48, 230, 60, 162, 56,\n\t\t114, 13, 26, 68, 183, 148, 139, 177, 195, 227, 99, 87, 44,\n\t\t142, 225, 66, 190, 73, 159, 242, 59, 142, 91, 30, 35, 153,\n\t\t138, 114, 185, 70, 29, 144, 242, 170, 185, 60, 70, 96, 166,\n\t\t136, 242, 130, 91, 12, 212, 50, 94, 121, 237, 253, 228, 53,\n\t\t13, 211, 140, 188, 80, 150, 173, 21, 106, 23, 208, 1, 142,\n\t\t238, 143, 19, 152, 71, 115, 225, 238, 49, 222, 46, 177, 242,\n\t\t156, 112, 123, 232, 18, 93, 9, 151, 147, 136, 149, 26, 67,\n\t\t90, 9, 255, 159, 241, 73, 75, 0, 228, 90, 17, 230, 212, 66,\n\t\t146, 158, 229, 200, 99, 140, 32, 113, 137, 0, 133, 124, 85,\n\t\t245, 164, 93, 21, 229, 215, 209, 201, 47, 133, 9, 32, 101,\n\t\t134, 214, 103, 195, 142, 218, 121, 87, 117, 60, 192, 23, 12,\n\t\t34, 249, 247, 176, 63, 207, 143, 41, 175, 176, 90, 216, 160,\n\t\t133, 155, 37, 207, 116, 143, 217, 53, 119, 144, 208, 21, 226,\n\t\t167, 87, 51, 239, 139, 177, 11, 171, 106, 223, 125, 151, 89,\n\t\t239, 113, 248, 220, 164, 119, 218, 249, 136, 49, 173, 37,\n\t\t180, 101, 142, 98, 132, 182, 205, 139, 240, 88, 90, 239, 159,\n\t\t51, 49, 71, 27, 167, 174, 143, 153, 250, 204, 86, 108, 165,\n\t\t70, 152, 32, 94, 96, 249, 208, 46, 23, 63, 59, 155, 7, 185,\n\t\t1, 227, 139, 19, 80, 221, 157, 80, 225, 247, 170, 129, 80,\n\t\t36, 120, 213, 228, 172, 64, 61, 248, 214, 114, 116, 248, 125,\n\t\t75, 151, 107, 1, 199, 234, 171, 83, 82, 207, 237, 180, 45,\n\t\t53, 107, 91, 161, 239, 71, 40, 147, 51, 207, 100, 227, 196,\n\t\t40, 187, 16, 207, 92, 209, 49, 207, 135, 125, 192, 43, 68,\n\t\t31, 245, 96, 172, 18, 195, 244, 248, 22, 115, 65, 176, 78,\n\t\t173, 64, 186, 163, 241, 64, 172, 98, 242, 70, 43, 163, 52,\n\t\t32, 117, 12, 184, 57, 88, 117, 190, 21, 248, 135, 24, 41,\n\t\t207, 141, 207, 197, 61, 115, 143, 230, 111, 42, 87, 143, 233,\n\t\t246, 16, 31, 48, 70, 126, 109, 43, 95, 222, 237, 123, 39,\n\t\t145, 137, 82, 213, 163, 72, 81, 1, 176, 43, 226, 55, 72, 150,\n\t\t179, 234, 244, 246, 210, 135, 162, 245, 26, 112, 66, 171,\n\t\t195, 169, 227, 219, 217, 195, 136, 175, 144, 28, 241, 44,\n\t\t221, 84, 221, 145, 192, 55, 88, 117, 158, 97, 244, 55, 240,\n\t\t113, 203, 11, 158, 168, 30, 247, 126, 66, 176, 131, 83, 170,\n\t\t47, 82, 218, 110, 103, 202, 204, 248, 248, 5, 190, 108, 182,\n\t\t111, 232, 176, 167, 70, 164, 79, 91, 86, 215, 220, 145, 41,\n\t\t17, 249, 18, 182, 109, 47, 171, 88, 28, 177, 163, 60, 226,\n\t\t236, 81, 235, 228, 253, 204, 188, 182, 214, 111, 109, 101,\n\t\t252, 51, 205, 173, 10, 132, 78, 25, 155, 18, 243, 180, 157,\n\t\t186, 145, 204, 46, 33, 240, 237, 158, 186, 120, 117, 239,\n\t\t127, 138, 156, 175, 233, 234, 48, 143, 238, 112, 45, 219,\n\t\t3, 182, 182, 5, 110, 59, 56, 160, 232, 20, 125, 166, 83, 212,\n\t\t24, 244, 12, 239, 179, 112, 123, 228, 212, 242, 156, 109,\n\t\t155, 132, 150, 21, 10, 7, 81, 242, 92, 132, 11, 251, 233,\n\t\t49, 110, 51, 92, 237, 127, 115, 182, 38, 68, 232, 103, 162,\n\t\t8, 67, 241, 135, 194, 162, 86, 79, 250, 29, 234, 211, 169,\n\t\t109, 209, 170, 39, 174, 245, 246, 92, 203, 129, 148, 177,\n\t\t82, 236, 49, 181, 29, 196, 51, 166, 211, 20, 199, 95, 205,\n\t\t204, 23, 229, 173, 85, 205, 30, 16, 69, 72, 73, 77, 56, 197,\n\t\t253, 20, 111, 83, 156, 63, 15, 126, 185, 245, 165, 170, 51,\n\t\t200, 36, 95, 207, 95, 133, 173, 149, 138, 214, 220, 66, 74,\n\t\t183, 101, 166, 0, 149, 26, 35, 94, 125, 121, 249, 126, 196,\n\t\t154, 73, 59, 77, 189, 75, 173, 219, 189, 244, 123, 165, 33,\n\t\t222, 97, 26, 247, 114, 173, 11, 133, 55, 159, 113, 189, 186,\n\t\t154, 201, 54, 107, 135, 3, 238, 244, 201, 235, 93, 230, 166,\n\t\t240, 82, 202, 237, 43, 176, 101, 196, 144, 80, 125, 13, 177,\n\t\t208, 233, 180, 26, 242, 156, 158, 52, 72, 180, 167, 232, 109,\n\t\t198, 75, 199, 153, 73, 182, 2, 129, 208, 186, 157, 149, 40,\n\t\t141, 33, 134, 252, 103, 205, 185, 86, 147, 121, 53, 71, 154,\n\t\t69, 51, 219, 21, 95, 16, 208, 188, 207, 8, 20, 36, 240, 86,\n\t\t231, 150, 192, 26, 254, 123, 110, 30, 37, 172, 69, 132, 248,\n\t\t189, 137, 218, 35, 195, 73, 30, 15, 212, 194, 116, 2, 13,\n\t\t24, 2, 43, 129, 212, 40, 26, 126, 81, 66, 95, 19, 184, 246,\n\t\t168, 28, 27, 1, 107, 96, 138, 241, 146, 64, 137, 216, 44,\n\t\t227, 13, 154, 45, 178, 81, 182, 179, 253, 250, 81, 129, 148,\n\t\t97, 22, 252, 14, 144, 168, 116, 74, 184, 171, 2, 128, 66,\n\t\t145, 13, 161, 245, 45, 237, 216, 122, 47, 118, 32, 188, 215,\n\t\t228, 196, 142, 218, 241, 244, 22, 97, 222, 223, 73, 231, 27,\n\t\t62, 236, 63, 27, 214, 86, 102, 38, 109, 186, 72, 178, 122,\n\t\t122, 49, 98, 38, 148, 242, 102, 119, 119, 249, 170, 29, 195,\n\t\t244, 151, 145, 89, 71, 162, 215, 84, 145, 98, 188, 173, 154,\n\t\t245, 137, 155, 79, 12, 29, 72, 238, 79, 207, 232, 253, 85,\n\t\t19, 42, 30, 237, 191, 100, 28, 249, 138, 165, 21, 176, 103,\n\t\t163, 75, 151, 62, 102, 72, 80, 89, 197, 88, 239, 209, 191,\n\t\t95, 43, 107, 20, 14, 179, 79, 46, 95, 142, 19, 86, 205, 186,\n\t\t77, 113, 150, 22, 107, 34, 223, 150, 251, 118, 222, 186, 82,\n\t\t218, 158, 215, 167, 155, 57, 83, 92, 163, 57, 14, 146, 171,\n\t\t115, 53, 5, 126, 156, 178, 92, 116, 112, 251, 140, 26, 72,\n\t\t154, 153, 135, 203, 186, 253, 243, 82, 202, 24, 139, 179,\n\t\t39, 12, 111, 45, 16, 143, 70, 6, 195, 223, 142, 33, 133, 156,\n\t\t152, 37, 46, 94, 48, 45, 203, 41, 68, 0, 190, 202, 210, 152,\n\t\t86, 52, 224, 181, 138, 89, 152, 173, 230, 133, 18, 200, 165,\n\t\t243, 163, 95, 209, 246, 91, 39, 30, 116, 109, 54, 46, 149,\n\t\t38, 130, 244, 180, 97, 81, 115, 13, 22, 129, 33, 3, 161, 46,\n\t\t140, 162, 90, 64, 213, 102, 181, 230, 47, 166, 152, 253, 93,\n\t\t83, 194, 59, 215, 72, 118, 103, 37, 229, 123, 65, 244, 179,\n\t\t173, 246, 16, 199, 228, 90, 48, 169, 234, 8, 235, 21, 140,\n\t\t100, 66, 183, 175, 250, 202, 39, 190, 18, 117, 153, 66, 6,\n\t\t215, 211, 130, 96, 10, 181, 203, 10, 118, 163, 207, 189, 175,\n\t\t165, 95, 172, 212, 59, 69, 201, 47, 25, 190, 84, 178, 63,\n\t\t48, 100, 50, 218, 155, 14, 167, 39, 194, 141, 63, 72, 176,\n\t\t216, 38, 128, 72, 216, 16, 226, 231, 70, 76, 183, 176, 36,\n\t\t246, 11, 130, 255, 142, 131, 76, 105, 237, 86, 124, 234, 202,\n\t\t228, 100, 140, 218, 41, 28, 125, 94, 245, 87, 46, 111, 220,\n\t\t92, 205, 122, 97, 95, 169, 124, 144, 92, 61, 125, 109, 23,\n\t\t248, 126, 167, 118, 170, 56, 86, 65, 51, 199, 207, 40, 175,\n\t\t124, 30, 44, 20, 55, 162, 104, 78, 69, 211, 21, 126, 34, 84,\n\t\t126, 193, 151, 88, 5, 245, 59, 73, 76, 48, 165, 49, 216, 65,\n\t\t188, 218, 169, 48, 213, 0, 62, 112, 49, 29, 157, 167, 176,\n\t\t195, 47, 112, 88, 161, 240, 153, 250, 132, 196, 200, 47, 224,\n\t\t239, 242, 36, 153, 226, 12, 135, 248, 207, 24, 201, 23, 246,\n\t\t190, 203, 42, 219, 5, 14, 94, 255, 8, 232, 150, 184, 40, 92,\n\t\t99, 121, 131, 16, 198, 77, 91, 163, 51, 153, 18, 23, 137,\n\t\t229, 216, 43, 124, 168, 70, 10, 164, 50, 210, 69, 105, 132,\n\t\t81, 42, 93, 95, 133, 246, 40, 95, 72, 21, 79, 244, 250, 114,\n\t\t143, 59, 143, 207, 156, 234, 190, 68, 15, 8, 169, 175, 56,\n\t\t70, 189, 20, 150, 17, 87, 47, 255, 128, 150, 151, 109, 32,\n\t\t228, 36, 103, 219, 186, 47, 120, 45, 87, 204, 22, 189, 108,\n\t\t43, 107, 5, 229, 141, 245, 197, 19, 102, 59, 105, 56, 216,\n\t\t237, 14, 205, 109, 200, 140, 71, 160, 185, 137, 195, 200,\n\t\t187, 67, 59, 91, 11, 211, 63, 130, 107, 65, 44, 91, 42, 57,\n\t\t92, 32, 212, 157, 104, 37, 84, 239, 60, 161, 230, 89, 231,\n\t\t49, 65, 255, 77, 224, 250, 62, 185, 56, 88, 233, 150, 73,\n\t\t205, 248, 134, 155, 135, 31, 120, 10, 85, 224, 71, 72, 141,\n\t\t131, 249, 23, 6, 164, 218, 216, 179, 144, 209, 189, 14, 20,\n\t\t223, 120, 175, 88, 30, 50, 164, 246, 237, 111, 99, 235, 212,\n\t\t150, 184, 214, 244, 173, 207, 247, 8, 14, 173, 178, 70, 147,\n\t\t10, 45, 210, 168, 80, 110, 171, 165, 244, 132, 155, 206, 121,\n\t\t148, 77, 4, 237, 108, 110, 241, 105, 84, 228, 186, 36, 114,\n\t\t81, 182, 111, 215, 78, 112, 123, 66, 24, 238, 41, 241, 105,\n\t\t251, 210, 190, 42, 171, 108, 120, 129, 230, 52, 141, 6, 33,\n\t\t60, 168, 101, 56, 83, 102, 201, 104, 28, 116, 230, 150, 217,\n\t\t218, 173, 145, 118, 187, 190, 141, 112, 165, 4, 24, 177, 197,\n\t\t82, 77, 100, 113, 52, 147, 48, 242, 236, 127, 228, 255, 1,\n\t\t222, 145, 136, 142, 213, 195, 226, 105, 251, 42, 130, 33,\n\t\t187, 89, 238, 55, 112, 52, 115, 244, 163, 200, 248, 251, 155,\n\t\t64, 193, 46, 225, 134, 39, 141, 155, 151, 56, 164, 238, 225,\n\t\t220, 245, 232, 125, 27, 110, 196, 38, 251, 170, 78, 131, 161,\n\t\t161, 253, 75, 213, 141, 226, 27, 195, 187, 102, 254, 61, 57,\n\t\t104, 151, 239, 205, 123, 48, 210, 36, 189, 208, 201, 186,\n\t\t143, 63, 205, 81, 146, 132, 133, 103, 178, 127, 181, 4, 29,\n\t\t73, 53, 108, 229, 168, 253, 210, 62, 115, 170, 173, 247, 5,\n\t\t67, 118, 33, 143, 96, 8, 18, 78, 238, 71, 164, 178, 210, 169,\n\t\t191, 102, 28, 157, 176, 142, 242, 223, 72, 163, 81, 30, 169,\n\t\t151, 90, 240, 50, 124, 161, 159, 5, 126, 173, 56, 218, 172,\n\t\t240, 122, 105, 188, 81, 22, 205, 202, 88, 173, 152, 179, 251,\n\t\t172, 249, 1, 52, 106, 218, 183, 19, 199, 1, 43, 247, 89, 215,\n\t\t15, 132, 212, 5, 229, 10, 46, 219, 0, 38, 80, 142, 213, 24,\n\t\t243, 214, 133, 169, 123, 29, 144, 104, 248, 105, 52, 74, 125,\n\t\t115, 99, 226, 23, 163, 36, 70, 228, 105, 126, 52, 224, 182,\n\t\t150, 194, 34, 126, 159, 38, 202, 38, 228, 242, 14, 113, 98,\n\t\t105, 235, 144, 178, 76, 162, 111, 246, 129, 198, 244, 124,\n\t\t226, 225, 96, 217, 66, 32, 244, 203, 148, 97, 97, 41, 155,\n\t\t212, 162, 153, 242, 87, 52, 26, 8, 121, 42, 203, 31, 218,\n\t\t183, 205, 130, 33, 119, 211, 178, 70, 144, 22, 185, 146, 210,\n\t\t248, 3, 230, 75, 175, 189, 204, 209, 0, 209, 52, 206, 204,\n\t\t47, 128, 36, 147, 43, 164, 176, 66, 21, 130, 113, 77, 216,\n\t\t155, 50, 53, 33, 64, 127, 152, 51, 71, 245, 17, 221, 67, 58,\n\t\t182, 132, 224, 146, 20, 183, 163, 240, 226, 142, 241, 113,\n\t\t229, 24, 132, 212, 164, 111, 3, 59, 203, 194, 120, 61, 12,\n\t\t68, 242, 92, 101, 121, 66, 135, 145, 192, 244, 127, 200, 171,\n\t\t124, 145, 153, 181, 199, 20, 202, 200, 179, 97, 105, 211,\n\t\t242, 255, 221, 201, 216, 152, 122, 245, 147, 77, 189, 92,\n\t\t246, 127, 181, 240, 186, 24, 73, 228, 191, 121, 80, 136, 216,\n\t\t215, 155, 19, 74, 237, 255, 84, 72, 37, 248, 100, 224, 80,\n\t\t162, 91, 100, 84, 94, 7, 159, 218, 17, 135, 109, 196, 171,\n\t\t128, 234, 90, 122, 81, 209, 243, 211, 149, 164, 125, 36, 233,\n\t\t72, 14, 234, 90, 116, 133, 29, 82, 6, 244, 249, 173, 14, 94,\n\t\t89, 91, 91, 210, 221, 107, 43, 113, 239, 235, 90, 66, 54,\n\t\t41, 207, 27, 137, 241, 58, 83, 30, 25, 218, 13, 159, 193,\n\t\t177, 56, 7, 117, 61, 19, 124, 159, 26, 225, 68, 90, 33, 177,\n\t\t201, 144, 44, 195, 35, 108, 240, 220, 254, 55, 64, 145, 192,\n\t\t243, 4, 193, 236, 185, 151, 144, 20, 136, 240, 141, 67, 103,\n\t\t237, 91, 242, 157, 183, 4, 24, 233, 209, 25, 144, 43, 188,\n\t\t191, 166, 191, 253, 85, 191, 232, 29, 203, 0, 225, 226, 41,\n\t\t228, 148, 124, 151, 25, 191, 199, 145, 18, 254, 179, 85, 233,\n\t\t169, 127, 106, 38, 150, 119, 38, 177, 213, 136, 112, 240,\n\t\t180, 183, 244, 201, 174, 119, 93, 213, 50, 111, 234, 251,\n\t\t117, 36, 49, 88, 186, 213, 178, 222, 39, 143, 187, 167, 134,\n\t\t151, 194, 3, 116, 153, 88, 10, 13, 73, 23, 224, 91, 116, 92,\n\t\t128, 230, 140, 169, 149, 208, 19, 39, 19, 129, 22, 16, 155,\n\t\t160, 139, 175, 137, 145, 219, 195, 239, 96, 246, 191, 50,\n\t\t98, 234, 246, 92, 94, 220, 16, 47, 218, 97, 89, 66, 43, 204,\n\t\t4, 201, 170, 215, 177, 216, 190, 162, 60, 203, 36, 11, 99,\n\t\t3, 28, 160, 69, 69, 67, 15, 248, 98, 51, 208, 34, 251, 192,\n\t\t26, 161, 187, 206, 57, 107, 202, 235, 231, 129, 71, 148, 144,\n\t\t41, 195, 162, 200, 14, 39, 155, 154, 176, 101, 107, 111, 209,\n\t\t250, 7, 110, 91, 113, 233, 91, 164, 234, 208, 105, 124, 172,\n\t\t132, 197, 155, 187, 135, 225, 120, 251, 229, 88, 85, 47, 108,\n\t\t89, 27, 22, 186, 134, 147, 5, 165, 72, 180, 48, 230, 232,\n\t\t163, 46, 68, 219, 182, 55, 127, 15, 209, 99, 211, 221, 82,\n\t\t210, 167, 140, 109, 197, 240, 233, 127, 138, 114, 138, 184,\n\t\t48, 237, 16, 20, 173, 100, 162, 11, 99, 123, 46, 138, 79,\n\t\t29, 9, 173, 112, 225, 72, 229, 43, 96, 150, 71, 215, 177,\n\t\t42, 208, 161, 26, 249, 81, 108, 89, 191, 227, 20, 73, 148,\n\t\t17, 181, 201, 133, 113, 59, 60, 33, 45, 138, 148, 58, 158,\n\t\t8, 137, 133, 132, 110, 83, 189, 26, 209, 169, 129, 171, 100,\n\t\t46, 180, 90, 254, 125, 17, 163, 175, 130, 29, 75, 24, 96,\n\t\t26, 89, 206, 70, 223, 138, 202, 23, 204, 2, 57, 221, 199,\n\t\t129, 208, 62, 249, 43, 207, 45, 127, 18, 104, 214, 61, 137,\n\t\t190, 107, 155, 145, 160, 166, 58, 123, 140, 141, 20, 160,\n\t\t11, 21, 182, 72, 77, 120, 3, 77, 89, 231, 173, 239, 22, 43,\n\t\t79, 105, 82, 68, 33, 47, 63, 204, 16, 184, 92, 214, 210, 238,\n\t\t78, 189, 102, 14, 7, 110, 59, 128, 86, 162, 134, 7, 252, 26,\n\t\t191, 249, 190, 164, 133, 248, 211, 33, 233, 60, 236, 43, 3,\n\t\t172, 34, 159, 85, 45, 125, 74, 229, 97, 28, 16, 157, 197,\n\t\t27, 19, 67, 120, 238, 228, 203, 74, 232, 164, 245, 53, 123,\n\t\t212, 38, 193, 73, 121, 224, 102, 145, 55, 23, 193, 40, 57,\n\t\t34, 93, 179, 241, 139, 96, 65, 242, 55, 137, 150, 3, 68, 229,\n\t\t179, 58, 93, 33, 120, 150, 221, 246, 196, 119, 58, 253, 184,\n\t\t120, 177, 74, 63, 64, 102, 79, 73, 150, 84, 214, 195, 92,\n\t\t36, 102, 28, 71, 244, 249, 199, 109, 241, 205, 244, 87, 197,\n\t\t33, 33, 189, 57, 200, 252, 180, 102, 202, 158, 70, 240, 230,\n\t\t97, 175, 187, 112, 64, 77, 138, 6, 187, 112, 102, 12, 167,\n\t\t250, 245, 197, 242, 29, 56, 254, 128, 123, 99, 103, 180, 71,\n\t\t121, 5, 191, 79, 69, 123, 215, 194, 135, 15, 162, 97, 246,\n\t\t232, 178, 165, 55, 218, 132, 239, 228, 139, 142, 62, 239,\n\t\t226, 196, 29, 161, 110, 29, 83, 182, 48, 159, 37, 122, 200,\n\t\t40, 211, 26, 109, 101, 40, 237, 48, 235, 95, 209, 237, 246,\n\t\t5, 69, 182, 83, 100, 239, 241, 194, 153, 242, 242, 66, 26,\n\t\t111, 184, 249, 131, 239, 38, 139, 213, 124, 127, 137, 204,\n\t\t17, 187, 126, 31, 59, 103, 214, 127, 60, 203, 97, 108, 114,\n\t\t113, 117, 246, 198, 219, 168, 47, 220, 29, 93, 128, 120, 156,\n\t\t170, 142, 245, 182, 189, 98, 163, 66, 102, 92, 184, 255, 61,\n\t\t199, 116, 230, 211, 178, 217, 78, 112, 164, 204, 224, 48,\n\t\t50, 111, 23, 8, 81, 236, 170, 116, 139, 243, 217, 125, 38,\n\t\t152, 78, 100, 198, 228, 118, 156, 183, 46, 49, 129, 204, 225,\n\t\t214, 235, 73, 41, 186, 107, 7, 11, 137, 29, 158, 235, 122,\n\t\t58, 0, 117, 241, 189, 85, 72, 0, 13, 147, 96, 89, 245, 21,\n\t\t208, 101, 27, 228, 124, 2, 186, 118, 113, 123, 68, 204, 22,\n\t\t43, 208, 183, 51, 249, 115, 205, 55, 246, 168, 109, 27, 220,\n\t\t124, 221, 174, 84, 93, 145, 191, 253, 185, 35, 0, 223, 239,\n\t\t160, 243, 131, 242, 221, 243, 226, 55, 106, 90, 120, 114,\n\t\t130, 202, 76, 36, 214, 248, 140, 37, 19, 49, 192, 185, 161,\n\t\t12, 199, 142, 39, 245, 188, 155, 198, 194, 155, 91, 93, 154,\n\t\t210, 233, 105, 110, 143, 165, 114, 51, 91, 167, 239, 215,\n\t\t18, 45, 150, 202, 155, 180, 51, 33, 7, 187, 213, 226, 137,\n\t\t123, 133, 249, 224, 171, 228, 154, 97, 239, 199, 104, 120,\n\t\t114, 163, 111, 181, 144, 71, 126, 13, 88, 221, 34, 98, 225,\n\t\t189, 83, 43, 165, 53, 214, 152, 181, 116, 161, 199, 246, 71,\n\t\t178, 21, 127, 217, 111, 199, 185, 49, 226, 194, 212, 228,\n\t\t212, 142, 133, 91, 100, 25, 97, 16, 137, 53, 140, 123, 52,\n\t\t25, 105, 161, 87, 133, 147, 71, 107, 107, 219, 39, 177, 190,\n\t\t212, 60, 92, 39, 34, 185, 70, 140, 19, 27, 69, 22, 91, 169,\n\t\t79, 157, 139, 81, 122, 115, 71, 39, 174, 227, 179, 160, 28,\n\t\t136, 187, 175, 184, 197, 63, 174, 47, 212, 119, 27, 41, 19,\n\t\t30, 91, 25, 46, 6, 73, 199, 74, 159, 238, 91, 126, 105, 35,\n\t\t44, 39, 45, 253, 26, 205, 46, 50, 160, 156, 152, 222, 89,\n\t\t244, 116, 170, 203, 86, 58, 207, 185, 247, 250, 157, 222,\n\t\t109, 63, 77, 23, 171, 150, 105, 15, 81, 155, 8, 92, 156, 118,\n\t\t58, 123, 19, 118, 188, 9, 195, 148, 119, 233, 186, 198, 213,\n\t\t99, 208, 34, 48, 7, 55, 94, 118, 5, 184, 224, 121, 122, 9,\n\t\t204, 194, 196, 44, 154, 172, 21, 11, 182, 75, 70, 229, 214,\n\t\t121, 218, 86, 165, 151, 79, 92, 46, 75, 213, 242, 235, 104,\n\t\t254, 197, 46, 40, 32, 35, 69, 133, 136, 82, 72, 132, 52, 27,\n\t\t197, 255, 79, 122, 16, 98, 138, 71, 171, 143, 222, 91, 5,\n\t\t213, 198, 199, 110, 97, 169, 20, 83, 115, 205, 55, 176, 76,\n\t\t191, 197, 33, 138, 238, 26, 38, 181, 205, 212, 222, 86, 185,\n\t\t182, 209, 249, 16, 180, 32, 58, 174, 82, 112, 223, 136, 217,\n\t\t68, 173, 187, 89, 106, 110, 247, 229, 74, 163, 67, 221, 238,\n\t\t195, 212, 127, 78, 32, 161, 108, 235, 133, 209, 122, 66, 191,\n\t\t86, 0, 242, 244, 31, 61, 210, 45, 148, 77, 219, 236, 225,\n\t\t145, 125, 249, 246, 21, 99, 132, 253, 181, 98, 245, 182, 16,\n\t\t66, 94, 243, 190, 66, 157, 22, 122, 96, 46, 56, 137, 195,\n\t\t251, 109, 0, 230, 213, 29, 54, 207, 22, 128, 29, 173, 150,\n\t\t56, 18, 150, 246, 187, 31, 206, 120, 118, 122, 233, 237, 247,\n\t\t155, 136, 42, 103, 189, 1, 58, 155, 189, 253, 56, 121, 237,\n\t\t21, 16, 239, 109, 202, 66, 151, 133, 31, 79, 158, 223, 99,\n\t\t61, 51, 204, 45, 167, 221, 149, 7, 24, 202, 239, 149, 67,\n\t\t6, 209, 210, 215, 72, 214, 106, 148, 100, 243, 203, 23, 150,\n\t\t206, 197, 76, 184, 149, 37, 91, 217, 60, 240, 132, 132, 251,\n\t\t153, 85, 30, 166, 65, 58, 247, 137, 154, 180, 146, 17, 184,\n\t\t143, 165, 154, 100, 235, 78, 183, 9, 83, 41, 94, 140, 49,\n\t\t229, 132, 195, 229, 45, 120, 198, 2, 36, 61, 159, 30, 198,\n\t\t134, 37, 220, 52, 5, 62, 49, 84, 160, 194, 209, 121, 225,\n\t\t58, 59, 110, 74, 187, 159, 14, 47, 192, 118, 176, 117, 109,\n\t\t53, 126, 25, 71, 210, 1, 173, 26, 162, 230, 208, 180, 90,\n\t\t194, 187, 149, 23, 86, 166, 28, 51, 213, 124, 202, 13, 159,\n\t\t59, 32, 71, 147, 47, 209, 113, 174, 47, 206, 82, 92, 142,\n\t\t78, 36, 217, 101, 143, 236, 38, 255, 125, 179, 159, 3, 67,\n\t\t6, 28, 12, 98, 139, 139, 225, 45, 54, 234, 235, 144, 231,\n\t\t96, 65, 1, 19, 44, 52, 161, 160, 174, 84, 81, 243, 48, 45,\n\t\t130, 93, 250, 87, 56, 122, 109, 175, 208, 183, 150, 225, 24,\n\t\t79, 92, 197, 2, 221, 50, 254, 173, 253, 29, 183, 78, 214,\n\t\t52, 93, 119, 250, 163, 208, 22, 73, 89, 90, 186, 181, 158,\n\t\t22, 195, 111, 183, 238, 72, 9, 77, 181, 75, 247, 212, 59,\n\t\t30, 51, 105, 95, 74, 227, 156, 62, 99, 205, 253, 135, 137,\n\t\t105, 32, 57, 148, 15, 179, 189, 89, 53, 114, 103, 243, 68,\n\t\t176, 151, 137, 162, 35, 95, 233, 180, 109, 222, 159, 45, 40,\n\t\t88, 238, 39, 70, 155, 208, 25, 1, 45, 168, 32, 10, 149, 29,\n\t\t143, 190, 163, 123, 146, 177, 78, 137, 201, 217, 40, 204,\n\t\t34, 120, 122, 156, 195, 28, 94, 60, 156, 133, 23, 24, 88,\n\t\t186, 77, 68, 22, 239, 241, 133, 169, 12, 66, 10, 162, 39,\n\t\t87, 100, 211, 18, 202, 210, 101, 161, 37, 84, 175, 50, 198,\n\t\t249, 139, 122, 0, 35, 47, 88, 9, 138, 49, 164, 99, 138, 47,\n\t\t218, 10, 195, 174, 148, 225, 60, 92, 229, 152, 170, 166, 178,\n\t\t141, 101, 92, 247, 197, 17, 158, 118, 184, 51, 204, 216, 132,\n\t\t201, 230, 104, 165, 26, 2, 162, 14, 167, 49, 25, 54, 112,\n\t\t152, 39, 212, 30, 87, 185, 56, 38, 190, 147, 183, 82, 23,\n\t\t85, 233, 0, 223, 91, 218, 206, 60, 53, 36, 244, 142, 141,\n\t\t4, 189, 24, 99, 170, 204, 74, 100, 43, 232, 245, 123, 209,\n\t\t154, 100, 213, 89, 118, 0, 228, 80, 57, 209, 85, 48, 143,\n\t\t82, 76, 59, 44, 163, 72, 204, 31, 115, 206, 85, 141, 78, 73,\n\t\t5, 50, 68, 183, 230, 216, 246, 187, 77, 224, 44, 184, 36,\n\t\t68, 68, 66, 206, 162, 179, 53, 121, 16, 236, 249, 129, 85,\n\t\t94, 223, 146, 197, 70, 77, 241, 186, 223, 43, 79, 104, 198,\n\t\t15, 102, 171, 140, 24, 150, 66, 25, 226, 63, 200, 182, 220,\n\t\t228, 70, 24, 121, 214, 136, 145, 75, 68, 170, 173, 170, 49,\n\t\t107, 194, 147, 109, 214, 181, 68, 142, 94, 107, 65, 94, 254,\n\t\t145, 66, 119, 145, 66, 210, 141, 120, 89, 104, 105, 255, 105,\n\t\t103, 201, 62, 31, 206, 71, 239, 119, 128, 148, 158, 32, 236,\n\t\t153, 251, 247, 73, 77, 30, 47, 181, 38, 116, 113, 14, 8, 156,\n\t\t77, 66, 32, 162, 42, 176, 33, 167, 203, 229, 63, 211, 131,\n\t\t205, 192, 80, 154, 0, 92, 179, 38, 138, 96, 199, 13, 135,\n\t\t76, 115, 149, 185, 165, 85, 78, 187, 24, 171, 106, 181, 234,\n\t\t181, 182, 147, 192, 206, 254, 170, 16, 194, 72, 11, 34, 70,\n\t\t13, 149, 111, 184, 213, 132, 104, 121, 26, 131, 237, 185,\n\t\t120, 197, 151, 242, 23, 235, 10, 177, 241, 251, 168, 160,\n\t\t172, 35, 119, 172, 201, 155, 142, 11, 64, 18, 184, 167, 41,\n\t\t215, 208, 0, 176, 212, 50, 201, 156, 213, 70, 73, 106, 31,\n\t\t7, 11, 255, 251, 242, 93, 243, 84, 254, 204, 146, 177, 119,\n\t\t130, 161, 127, 4, 24, 217, 210, 136, 208, 205, 4, 134, 11,\n\t\t139, 173, 202, 88, 210, 35, 249, 170, 77, 90, 18, 77, 105,\n\t\t121, 199, 114, 201, 169, 176, 168, 113, 45, 103, 2, 232, 198,\n\t\t37, 26, 180, 6, 213, 5, 245, 22, 98, 89, 11, 215, 60, 147,\n\t\t145, 52, 108, 43, 236, 160, 52, 125, 56, 27, 227, 134, 221,\n\t\t164, 91, 130, 190, 57, 163, 144, 221, 110, 54, 37, 179, 185,\n\t\t202, 1, 231, 109, 108, 16, 107, 2, 122, 204, 10, 142, 109,\n\t\t202, 105, 241, 80, 169, 252, 15, 110, 54, 160, 150, 218, 60,\n\t\t76, 93, 134, 142, 3, 229, 220, 42, 76, 159, 135, 142, 82,\n\t\t34, 37, 29, 214, 148, 212, 178, 68, 23, 116, 132, 123, 188,\n\t\t37, 66, 144, 101, 155, 217, 181, 3, 103, 52, 169, 61, 175,\n\t\t190, 215, 90, 62, 182, 163, 29, 250, 204, 63, 92, 120, 71,\n\t\t183, 169, 102, 78, 135, 109, 83, 31, 73, 50, 94, 72, 1, 153,\n\t\t103, 238, 129, 63, 61, 131, 83, 68, 27, 149, 28, 140, 26,\n\t\t99, 79, 226, 232, 64, 128, 84, 134, 90, 75, 39, 164, 255,\n\t\t68, 95, 221, 39, 236, 182, 56, 199, 123, 90, 70, 32, 162,\n\t\t59, 34, 142, 107, 86, 205, 56, 168, 97, 37, 92, 98, 97, 149,\n\t\t199, 33, 194, 52, 133, 120, 234, 228, 100, 210, 218, 34, 250,\n\t\t84, 115, 64, 135, 253, 46, 10, 219, 97, 138, 203, 97, 25,\n\t\t79, 143, 244, 184, 156, 123, 84, 38, 58, 125, 69, 22, 83,\n\t\t162, 227, 151, 178, 129, 186, 98, 23, 166, 53, 171, 212, 98,\n\t\t177, 11, 54, 230, 115, 241, 213, 163, 229, 199, 187, 167,\n\t\t52, 107, 238, 114, 49, 231, 176, 81, 35, 216, 237, 36, 17,\n\t\t30, 171, 141, 218, 77, 174, 77, 113, 7, 164, 60, 119, 142,\n\t\t93, 90, 237, 98, 255, 205, 94, 118, 77, 30, 17, 97, 212, 185,\n\t\t179, 129, 56, 139, 71, 130, 163, 236, 58, 84, 187, 63, 42,\n\t\t45, 220, 217, 82, 118, 246, 165, 19, 15, 198, 146, 211, 85,\n\t\t229, 125, 20, 54, 53, 59, 244, 250, 212, 186, 50, 192, 235,\n\t\t25, 31, 185, 6, 214, 20, 219, 119, 58, 202, 209, 98, 143,\n\t\t119, 178, 218, 155, 4, 194, 222, 236, 148, 221, 191, 94, 40,\n\t\t130, 28, 97, 225, 57, 58, 24, 139, 124, 238, 66, 13, 37, 201,\n\t\t137, 20, 34, 84, 95, 102, 238, 49, 107, 154, 116, 75, 27,\n\t\t208, 176, 139, 140, 231, 50, 235, 43, 6, 135, 141, 242, 34,\n\t\t53, 234, 138, 247, 31, 254, 44, 248, 198, 236, 112, 5, 84,\n\t\t233, 9, 83, 240, 229, 234, 154, 232, 163, 14, 85, 29, 46,\n\t\t47, 188, 229, 23, 106, 186, 100, 109, 191, 198, 69, 71, 226,\n\t\t143, 103, 42, 25, 15, 102, 210, 242, 204, 114, 78, 201, 136,\n\t\t163, 188, 180, 149, 127, 187, 102, 136, 245, 66, 152, 103,\n\t\t49, 99, 250, 25, 223, 227, 140, 177, 61, 155, 228, 20, 83,\n\t\t89, 251, 209, 128, 88, 217, 164, 209, 143, 7, 229, 127, 66,\n\t\t143, 198, 195, 103, 182, 119, 249, 164, 101, 246, 255, 4,\n\t\t182, 241, 230, 172, 222, 188, 216, 218, 102, 241, 58, 247,\n\t\t134, 146, 107, 76, 198, 42, 231, 204, 13, 40, 193, 96, 166,\n\t\t171, 15, 226, 97, 83, 22, 70, 193, 219, 150, 107, 122, 246,\n\t\t166, 13, 158, 76, 226, 44, 73, 216, 179, 205, 92, 211, 30,\n\t\t250, 167, 237, 100, 83, 25, 15, 195, 150, 35, 175, 193, 48,\n\t\t80, 252, 168, 44, 124, 192, 230, 202, 49, 181, 125, 171, 37,\n\t\t218, 85, 92, 131, 69, 34, 165, 210, 98, 86, 147, 220, 90,\n\t\t233, 48, 84, 193, 13, 168, 216, 136, 200, 71, 128, 85, 193,\n\t\t119, 176, 36, 27, 26, 2, 243, 54, 42, 20, 119, 62, 89, 44,\n\t\t47, 230, 251, 165, 82, 231, 162, 191, 74, 74, 44, 123, 131,\n\t\t43, 188, 236, 102, 66, 229, 131, 209, 214, 167, 198, 143,\n\t\t230, 12, 162, 173, 105, 116, 248, 55, 74, 33, 210, 201, 180,\n\t\t181, 233, 186, 68, 170, 254, 150, 64, 27, 41, 232, 190, 144,\n\t\t248, 213, 87, 63, 73, 174, 124, 154, 202, 19, 220, 76, 87,\n\t\t213, 82, 65, 116, 132, 94, 170, 248, 198, 243, 12, 130, 217,\n\t\t94, 76, 109, 104, 233, 136, 39, 25, 225, 23, 122, 33, 217,\n\t\t204, 3, 99, 101, 184, 28, 35, 113, 22, 228, 89, 87, 79, 126,\n\t\t220, 188, 207, 181, 247, 251, 184, 162, 255, 28, 240, 62,\n\t\t45, 46, 58, 80, 230, 152, 120, 248, 160, 29, 172, 136, 104,\n\t\t79, 12, 95, 48, 187, 143, 216, 121, 211, 243, 158, 171, 164,\n\t\t100, 226, 190, 73, 140, 199, 225, 9, 20, 142, 85, 27, 113,\n\t\t221, 85, 193, 136, 177, 60, 210, 5, 69, 187, 112, 223, 69,\n\t\t98, 22, 156, 35, 206, 169, 161, 77, 140, 203, 123, 247, 149,\n\t\t195, 230, 130, 220, 118, 180, 176, 21, 101, 57, 202, 126,\n\t\t142, 122, 158, 148, 126, 116, 175, 180, 241, 235, 10, 253,\n\t\t170, 162, 50, 88, 197, 162, 249, 57, 203, 168, 219, 130, 146,\n\t\t175, 232, 220, 68, 149, 67, 210, 118, 231, 118, 38, 206, 61,\n\t\t229, 190, 113, 93, 49, 233, 168, 157, 153, 179, 111, 116,\n\t\t123, 123, 21, 88, 209, 202, 167, 117, 239, 163, 233, 96, 24,\n\t\t183, 167, 213, 29, 86, 161, 173, 237, 69, 121, 238, 69, 215,\n\t\t204, 13, 231, 126, 240, 248, 202, 197, 204, 86, 179, 8, 1,\n\t\t194, 60, 242, 41, 70, 146, 167, 116, 255, 206, 205, 8, 15,\n\t\t10, 86, 200, 34, 229, 55, 48, 225, 233, 170, 113, 47, 232,\n\t\t209, 0, 33, 184, 83, 80, 225, 246, 135, 62, 134, 170, 16,\n\t\t43, 245, 240, 78, 74, 165, 1, 140, 57, 104, 124, 193, 69,\n\t\t131, 109, 76, 204, 52, 56, 166, 23, 50, 37, 6, 28, 54, 218,\n\t\t230, 57, 17, 158, 249, 30, 163, 188, 91, 11, 153, 60, 250,\n\t\t61, 178, 59, 213, 142, 145, 109, 228, 230, 224, 131, 62, 27,\n\t\t39, 161, 107, 248, 59, 72, 4, 200, 202, 184, 208, 152, 57,\n\t\t148, 167, 117, 54, 198, 146, 33, 63, 97, 4, 35, 10, 35, 6,\n\t\t165, 17, 236, 204, 76, 135, 185, 159, 192, 67, 139, 37, 242,\n\t\t85, 186, 0, 86, 178, 165, 51, 21, 223, 211, 20, 2, 91, 49,\n\t\t130, 38, 70, 50, 129, 156, 119, 67, 20, 161, 69, 213, 170,\n\t\t170, 250, 9, 135, 129, 80, 1, 110, 126, 199, 1, 112, 110,\n\t\t210, 73, 241, 155, 102, 233, 245, 34, 46, 207, 221, 140, 166,\n\t\t28, 119, 234, 89, 84, 114, 33, 248, 86, 52, 111, 118, 102,\n\t\t33, 41, 169, 4, 247, 212, 101, 59, 163, 59, 148, 53, 136,\n\t\t221, 62, 96, 6, 144, 202, 29, 82, 148, 62, 193, 89, 58, 24,\n\t\t201, 240, 221, 121, 40, 13, 226, 5, 206, 40, 138, 114, 181,\n\t\t228, 87, 160, 174, 110, 3, 65, 111, 18, 46, 248, 46, 106,\n\t\t100, 201, 117, 120, 134, 159, 7, 31, 207, 172, 192, 23, 34,\n\t\t160, 40, 118, 91, 60, 142, 251, 4, 237, 104, 57, 214, 85,\n\t\t22, 79, 198, 207, 223, 135, 226, 111, 208, 107, 194, 162,\n\t\t194, 57, 179, 108, 1, 227, 153, 14, 84, 83, 104, 227, 217,\n\t\t247, 156, 100, 192, 234, 196, 189, 0, 142, 67, 9, 92, 169,\n\t\t153, 40, 70, 226, 148, 0, 199, 167, 93, 204, 21, 179, 167,\n\t\t163, 121, 229, 103, 199, 173, 103, 28, 243, 113, 159, 26,\n\t\t73, 59, 25, 138, 112, 216, 205, 55, 88, 156, 11, 236, 67,\n\t\t106, 79, 246, 49, 138, 27, 202, 179, 11, 115, 191, 37, 85,\n\t\t119, 142, 218, 226, 45, 135, 206, 131, 134, 108, 84, 168,\n\t\t229, 172, 204, 27, 101, 177, 136, 212, 142, 211, 206, 95,\n\t\t176, 169, 81, 60, 164, 244, 86, 32, 159, 70, 98, 71, 96, 40,\n\t\t99, 179, 123, 138, 75, 42, 197, 166, 1, 253, 182, 226, 212,\n\t\t224, 121, 80, 235, 193, 58, 253, 218, 21, 227, 244, 46, 57,\n\t\t79, 203, 253, 191, 69, 206, 50, 230, 182, 211, 145, 55, 209,\n\t\t238, 137, 46, 102, 169, 28, 184, 140, 53, 251, 47, 191, 64,\n\t\t146, 44, 234, 204, 25, 215, 214, 246, 94, 151, 193, 32, 232,\n\t\t36, 237, 150, 68, 229, 229, 131, 227, 46, 3, 234, 171, 94,\n\t\t179, 64, 20, 68, 83, 238, 25, 158, 213, 169, 32, 90, 30, 172,\n\t\t250, 167, 145, 102, 145, 126, 227, 197, 140, 55, 171, 207,\n\t\t42, 225, 35, 148, 28, 127, 205, 236, 49, 61, 211, 5, 222,\n\t\t149, 197, 193, 224, 230, 135, 201, 155, 38, 89, 199, 166,\n\t\t110, 204, 251, 61, 26, 42, 79, 111, 76, 0, 10, 23, 222, 89,\n\t\t249, 14, 77, 4, 78, 73, 251, 37, 124, 250, 199, 83, 59, 51,\n\t\t230, 68, 40, 202, 155, 218, 14, 21, 189, 224, 56, 225, 19,\n\t\t191, 119, 162, 223, 22, 132, 27, 247, 51, 107, 91, 75, 39,\n\t\t174, 239, 70, 186, 3, 188, 60, 68, 48, 214, 146, 41, 43, 12,\n\t\t183, 104, 128, 170, 34, 219, 13, 225, 223, 189, 80, 174, 1,\n\t\t88, 166, 24, 122, 214, 168, 84, 77, 35, 43, 192, 61, 40, 248,\n\t\t228, 160, 215, 25, 223, 165, 41, 125, 233, 104, 39, 118, 180,\n\t\t230, 204, 208, 98, 177, 19, 170, 250, 238, 225, 231, 229,\n\t\t0, 100, 109, 239, 224, 66, 197, 231, 127, 69, 141, 253, 51,\n\t\t129, 63, 208, 22, 170, 37, 135, 59, 106, 178, 181, 32, 127,\n\t\t148, 153, 64, 181, 119, 78, 137, 239, 68, 80, 203, 168, 159,\n\t\t101, 75, 164, 251, 43, 169, 179, 107, 86, 254, 168, 90, 245,\n\t\t52, 255, 197, 15, 100, 176, 78, 124, 247, 35, 20, 35, 147,\n\t\t112, 117, 44, 78, 124, 45, 250, 123, 249, 103, 210, 216, 53,\n\t\t74, 224, 66, 115, 216, 206, 227, 71, 166, 42, 255, 134, 117,\n\t\t244, 205, 244, 171, 179, 174, 229, 168, 120, 67, 198, 69,\n\t\t116, 121, 80, 95, 159, 28, 126, 137, 152, 6, 111, 91, 207,\n\t\t116, 208, 35, 53, 221, 162, 201, 158, 165, 1, 235, 111, 59,\n\t\t239, 137, 247, 237, 103, 133, 90, 211, 142, 36, 174, 98, 35,\n\t\t117, 219, 204, 144, 103, 208, 140, 144, 167, 25, 180, 128,\n\t\t106, 135, 159, 10, 200, 144, 224, 92, 100, 123, 8, 144, 169,\n\t\t46, 50, 172, 69, 97, 202, 60, 142, 211, 227, 77, 163, 129,\n\t\t251, 81, 22, 20, 179, 73, 212, 71, 127, 253, 39, 10, 6, 117,\n\t\t122, 72, 179, 0, 20, 35, 33, 187, 180, 170, 155, 244, 165,\n\t\t112, 32, 214, 123, 14, 248, 246, 194, 186, 194, 104, 173,\n\t\t24, 83, 25, 132, 152, 224, 202, 187, 212, 198, 120, 26, 96,\n\t\t220, 134, 224, 150, 137, 242, 59, 186, 160, 236, 62, 61, 239,\n\t\t143, 43, 118, 96, 204, 37, 120, 230, 31, 80, 235, 133, 75,\n\t\t87, 70, 184, 20, 192, 151, 82, 124, 57, 151, 237, 214, 65,\n\t\t220, 122, 126, 19, 163, 87, 60, 174, 240, 5, 107, 126, 192,\n\t\t170, 57, 119, 30, 17, 48, 209, 181, 171, 193, 66, 141, 110,\n\t\t92, 162, 230, 181, 179, 118, 104, 77, 103, 222, 230, 164,\n\t\t174, 135, 182, 54, 169, 205, 144, 150, 9, 196, 218, 206, 51,\n\t\t230, 28, 32, 213, 150, 93, 155, 234, 255, 91, 7, 150, 175,\n\t\t150, 65, 176, 214, 163, 130, 103, 184, 193, 163, 143, 56,\n\t\t124, 121, 97, 220, 238, 56, 109, 39, 122, 202, 123, 62, 252,\n\t\t134, 252, 124, 131, 255, 254, 59, 111, 138, 47, 202, 149,\n\t\t106, 224, 148, 104, 25, 49, 25, 75, 192, 9, 107, 179, 120,\n\t\t4, 54, 1, 118, 50, 62, 11, 79, 140, 106, 136, 71, 180, 198,\n\t\t26, 86, 195, 191, 42, 213, 129, 56, 127, 160, 231, 47, 47,\n\t\t15, 115, 214, 203, 154, 99, 33, 236, 231, 78, 187, 126, 135,\n\t\t212, 137, 112, 139, 117, 220, 165, 22, 106, 175, 144, 172,\n\t\t155, 30, 212, 166, 190, 71, 183, 221, 176, 95, 216, 37, 239,\n\t\t44, 44, 44, 67, 45, 42, 223, 48, 7, 164, 92, 184, 21, 204,\n\t\t204, 225, 61, 233, 200, 196, 210, 148, 62, 89, 67, 40, 170,\n\t\t100, 29, 184, 38, 235, 184, 208, 59, 138, 109, 223, 230, 239,\n\t\t127, 123, 188, 120, 57, 202, 203, 241, 95, 97, 231, 118, 44,\n\t\t138, 136, 244, 203, 114, 134, 115, 159, 202, 52, 38, 83, 255,\n\t\t105, 97, 83, 169, 214, 162, 168, 30, 101, 14, 254, 223, 196,\n\t\t251, 213, 175, 204, 116, 199, 169, 117, 245, 139, 236, 59,\n\t\t147, 226, 234, 119, 127, 70, 209, 150, 171, 135, 223, 218,\n\t\t219, 178, 219, 188, 177, 210, 86, 53, 166, 242, 151, 98, 100,\n\t\t161, 182, 30, 35, 193, 64, 23, 136, 144, 77, 251, 47, 236,\n\t\t215, 10, 25, 153, 137, 8, 223, 34, 138, 134, 142, 158, 153,\n\t\t165, 186, 76, 162, 94, 226, 184, 111, 18, 134, 199, 107, 185,\n\t\t67, 58, 194, 253, 16, 35, 197, 33, 161, 228, 225, 82, 2, 227,\n\t\t181, 194, 34, 205, 57, 139, 191, 165, 186, 205, 44, 100, 235,\n\t\t74, 38, 13, 109, 113, 108, 67, 234, 66, 31, 174, 137, 251,\n\t\t221, 236, 139, 96, 68, 201, 156, 126, 161, 248, 59, 111, 155,\n\t\t202, 183, 73, 246, 96, 244, 95, 112, 12, 134, 30, 28, 2, 53,\n\t\t250, 205, 253, 87, 225, 37, 149, 106, 107, 175, 249, 165,\n\t\t40, 93, 35, 250, 45, 169, 121, 50, 226, 246, 227, 246, 188,\n\t\t119, 161, 210, 164, 246, 205, 41, 53, 67, 46, 141, 178, 164,\n\t\t60, 90, 123, 33, 189, 103, 96, 63, 245, 135, 31, 136, 229,\n\t\t172, 162, 1, 233, 32, 165, 239, 133, 80, 34, 154, 193, 74,\n\t\t207, 193, 91, 226, 149, 82, 33, 45, 141, 137, 111, 54, 43,\n\t\t168, 6, 140, 62, 156, 10, 245, 135, 116, 147, 155, 90, 92,\n\t\t185, 149, 245, 243, 216, 244, 56, 251, 35, 244, 205, 38, 67,\n\t\t241, 195, 37, 232, 189, 186, 80, 114, 178, 57, 99, 10, 229,\n\t\t88, 17, 87, 192, 246, 165, 196, 229, 82, 117, 241, 169, 117,\n\t\t69, 189, 49, 100, 221, 173, 144, 214, 14, 45, 46, 92, 189,\n\t\t109, 150, 214, 142, 176, 134, 55, 43, 219, 241, 113, 194,\n\t\t84, 189, 114, 205, 187, 42, 208, 202, 28, 101, 179, 98, 45,\n\t\t107, 93, 53, 99, 237, 217, 238, 134, 91, 149, 46, 245, 243,\n\t\t244, 187, 226, 174, 188, 75, 82, 20, 36, 121, 7, 120, 227,\n\t\t239, 117, 231, 162, 100, 101, 148, 121, 231, 52, 150, 44,\n\t\t151, 126, 180, 178, 79, 16, 86, 108, 45, 20, 172, 251, 200,\n\t\t228, 163, 166, 72, 171, 95, 124, 75, 92, 191, 70, 248, 214,\n\t\t0, 139, 88, 180, 6, 125, 192, 43, 247, 92, 90, 27, 116, 170,\n\t\t119, 107, 73, 105, 35, 135, 76, 212, 142, 43, 8, 5, 33, 174,\n\t\t214, 159, 208, 164, 134, 244, 132, 183, 131, 179, 12, 176,\n\t\t172, 234, 47, 147, 144, 144, 97, 235, 181, 201, 184, 60, 135,\n\t\t18, 245, 39, 41, 126, 159, 43, 250, 98, 182, 60, 114, 169,\n\t\t227, 112, 69, 43, 57, 167, 44, 213, 107, 155, 180, 166, 161,\n\t\t98, 138, 239, 117, 60, 10, 134, 138, 82, 31, 133, 230, 20,\n\t\t128, 164, 121, 128, 175, 103, 96, 65, 101, 233, 245, 220,\n\t\t161, 182, 230, 73, 185, 255, 135, 23, 223, 221, 52, 4, 60,\n\t\t242, 168, 107, 140, 150, 4, 11, 109, 60, 177, 56, 107, 18,\n\t\t20, 120, 242, 216, 22, 82, 185, 153, 237, 254, 52, 239, 17,\n\t\t182, 38, 78, 150, 40, 65, 20, 159, 71, 118, 53, 19, 2, 241,\n\t\t92, 42, 159, 40, 52, 246, 82, 225, 23, 15, 233, 90, 64, 118,\n\t\t114, 217, 87, 58, 79, 241, 209, 131, 199, 106, 116, 57, 164,\n\t\t109, 118, 218, 131, 144, 69, 23, 180, 45, 241, 51, 45, 170,\n\t\t80, 219, 112, 86, 74, 185, 145, 117, 125, 159, 153, 155, 250,\n\t\t162, 253, 226, 5, 215, 137, 41, 163, 187, 94, 138, 95, 140,\n\t\t78, 70, 27, 172, 95, 240, 44, 58, 24, 111, 241, 220, 30, 18,\n\t\t228, 203, 215, 210, 13, 31, 251, 97, 18, 84, 183, 197, 115,\n\t\t236, 180, 115, 232, 134, 130, 179, 70, 29, 121, 86, 73, 142,\n\t\t182, 241, 206, 88, 54, 226, 10, 24, 203, 243, 68, 74, 216,\n\t\t188, 219, 9, 233, 212, 155, 103, 241, 209, 172, 134, 173,\n\t\t142, 5, 128, 253, 88, 226, 252, 104, 227, 53, 107, 79, 196,\n\t\t244, 211, 43, 39, 50, 172, 241, 255, 11, 105, 40, 23, 119,\n\t\t110, 125, 219, 40, 114, 203, 85, 86, 151, 188, 134, 121, 227,\n\t\t110, 60, 145, 219, 76, 154, 187, 26, 20, 225, 53, 162, 251,\n\t\t27, 201, 152, 138, 236, 242, 197, 66, 73, 62, 9, 73, 1, 75,\n\t\t112, 77, 200, 96, 56, 115, 251, 245, 82, 166, 233, 42, 88,\n\t\t60, 239, 179, 146, 164, 158, 8, 244, 249, 64, 249, 0, 0, 64,\n\t\t255, 191, 10, 198, 24, 127, 131, 135, 199, 37, 108, 102, 192,\n\t\t150, 169, 233, 58, 206, 143, 18, 72, 245, 253, 186, 88, 213,\n\t\t183, 143, 191, 101, 177, 112, 197, 101, 28, 8, 224, 108, 25,\n\t\t215, 244, 15, 85, 11, 221, 115, 247, 32, 178, 70, 119, 184,\n\t\t225, 125, 238, 204, 54, 145, 240, 247, 149, 66, 134, 225,\n\t\t106, 115, 80, 85, 10, 186, 35, 148, 25, 13, 219, 252, 13,\n\t\t194, 232, 107, 106, 89, 37, 92, 13, 32, 170, 230, 82, 17,\n\t\t251, 253, 86, 142, 66, 102, 151, 118, 133, 231, 117, 38, 230,\n\t\t248, 70, 83, 154, 157, 157, 94, 94, 241, 69, 226, 211, 200,\n\t\t47, 111, 10, 190, 154, 240, 199, 87, 243, 11, 101, 143, 8,\n\t\t245, 28, 100, 63, 39, 210, 173, 29, 22, 42, 184, 246, 0, 60,\n\t\t128, 117, 34, 160, 90, 37, 66, 42, 22, 114, 95, 214, 28, 91,\n\t\t201, 223, 198, 149, 192, 227, 200, 176, 159, 135, 53, 248,\n\t\t34, 101, 51, 51, 125, 71, 183, 53, 231, 137, 40, 185, 188,\n\t\t50, 109, 246, 242, 21, 218, 170, 144, 88, 253, 216, 81, 55,\n\t\t142, 226, 43, 51, 185, 206, 174, 126, 254, 23, 116, 89, 123,\n\t\t141, 98, 23, 25, 225, 244, 15, 216, 240, 181, 39, 84, 165,\n\t\t220, 161, 242, 46, 217, 26, 89, 180, 99, 140, 51, 227, 243,\n\t\t125, 24, 4, 202, 176, 171, 184, 177, 137, 77, 1, 116, 118,\n\t\t7, 199, 84, 81, 80, 100, 235, 50, 226, 254, 124, 111, 62,\n\t\t136, 135, 163, 205, 143, 226, 245, 216, 227, 96, 205, 173,\n\t\t37, 234, 246, 164, 70, 65, 90, 112, 14, 178, 82, 197, 39,\n\t\t147, 67, 176, 235, 33, 163, 84, 183, 76, 199, 10, 205, 94,\n\t\t224, 62, 140, 56, 219, 244, 133, 96, 225, 98, 7, 49, 149,\n\t\t207, 81, 49, 174, 137, 37, 20, 214, 135, 62, 12, 10, 23, 19,\n\t\t9, 247, 98, 241, 43, 68, 8, 133, 4, 164, 3, 251, 167, 205,\n\t\t16, 37, 156, 75, 32, 90, 246, 155, 98, 84, 73, 251, 132, 168,\n\t\t29, 162, 135, 23, 66, 38, 78, 69, 81, 106, 45, 44, 14, 135,\n\t\t244, 162, 4, 28, 2, 72, 80, 22, 229, 144, 251, 201, 28, 58,\n\t\t206, 245, 154, 166, 5, 201, 92, 222, 76, 40, 255, 83, 76,\n\t\t181, 136, 250, 167, 4, 18, 174, 227, 60, 99, 202, 146, 234,\n\t\t215, 136, 84, 144, 95, 69, 234, 57, 207, 57, 48, 228, 213,\n\t\t253, 89, 229, 22, 57, 207, 169, 165, 228, 209, 41, 89, 79,\n\t\t92, 149, 253, 28, 238, 112, 15, 192, 106, 248, 131, 74, 166,\n\t\t175, 54, 216, 76, 139, 23, 81, 64, 118, 153, 178, 129, 157,\n\t\t57, 183, 80, 205, 175, 239, 222, 31, 46, 236, 189, 122, 79,\n\t\t45, 28, 175, 230, 253, 244, 95, 166, 123, 137, 15, 74, 243,\n\t\t30, 24, 150, 120, 128, 202, 254, 38, 171, 139, 152, 116, 148,\n\t\t165, 176, 15, 118, 255, 113, 199, 1, 104, 78, 63, 154, 112,\n\t\t54, 246, 130, 17, 183, 156, 70, 161, 76, 85, 11, 57, 219,\n\t\t149, 63, 103, 227, 134, 76, 40, 193, 97, 250, 186, 132, 242,\n\t\t41, 149, 249, 99, 189, 136, 238, 31, 82, 61, 116, 211, 46,\n\t\t33, 19, 245, 203, 197, 148, 252, 181, 125, 195, 58, 98, 175,\n\t\t54, 201, 210, 39, 42, 172, 130, 195, 247, 56, 191, 189, 29,\n\t\t55, 242, 98, 141, 128, 78, 105, 32, 242, 223, 18, 214, 233,\n\t\t213, 73, 245, 237, 170, 181, 120, 175, 162, 19, 90, 240, 32,\n\t\t18, 239, 156, 242, 198, 15, 31, 118, 160, 94, 15, 19, 190,\n\t\t228, 159, 241, 86, 204, 64, 110, 147, 63, 2, 224, 37, 45,\n\t\t140, 30, 183, 238, 41, 17, 221, 72, 65, 213, 187, 155, 173,\n\t\t232, 142, 195, 62, 134, 117, 52, 128, 45, 43, 209, 111, 41,\n\t\t192, 39, 123, 140, 97, 92, 233, 56, 57, 10, 197, 156, 254,\n\t\t101, 74, 220, 148, 202, 73, 130, 91, 207, 192, 241, 232, 102,\n\t\t125, 83, 192, 15, 104, 49, 187, 87, 66, 8, 107, 120, 190,\n\t\t206, 122, 130, 92, 8, 195, 201, 33, 209, 114, 13, 85, 164,\n\t\t116, 169, 107, 149, 254, 163, 198, 58, 71, 55, 236, 6, 77,\n\t\t250, 60, 35, 95, 210, 242, 205, 11, 35, 104, 120, 156, 97,\n\t\t184, 247, 160, 178, 15, 127, 109, 206, 180, 168, 221, 106,\n\t\t63, 163, 227, 239, 219, 65, 101, 9, 115, 149, 232, 112, 180,\n\t\t222, 168, 245, 180, 133, 41, 42, 9, 199, 57, 163, 57, 27,\n\t\t9, 227, 164, 62, 97, 50, 177, 190, 185, 146, 86, 117, 14,\n\t\t120, 52, 210, 118, 82, 25, 60, 231, 97, 66, 225, 146, 238,\n\t\t227, 171, 7, 94, 123, 253, 224, 254, 87, 95, 17, 1, 74, 37,\n\t\t37, 165, 145, 104, 86, 99, 139, 235, 118, 212, 166, 200, 137,\n\t\t27, 92, 199, 32, 26, 193, 98, 8, 121, 108, 88, 98, 14, 252,\n\t\t55, 225, 170, 139, 176, 153, 207, 170, 230, 227, 204, 38,\n\t\t83, 204, 216, 226, 36, 203, 226, 242, 32, 66, 241, 0, 75,\n\t\t67, 229, 156, 193, 163, 21, 16, 251, 87, 78, 15, 0, 111, 100,\n\t\t180, 24, 206, 14, 105, 225, 249, 108, 14, 86, 1, 98, 241,\n\t\t135, 155, 228, 135, 137, 213, 211, 8, 3, 110, 81, 179, 108,\n\t\t174, 161, 98, 192, 128, 236, 229, 118, 146, 14, 28, 84, 107,\n\t\t178, 48, 176, 16, 52, 216, 77, 18, 174, 160, 38, 162, 152,\n\t\t167, 151, 58, 201, 67, 161, 67, 192, 166, 170, 184, 110, 242,\n\t\t215, 192, 21, 238, 117, 66, 26, 94, 122, 13, 138, 64, 254,\n\t\t183, 152, 134, 147, 17, 251, 101, 36, 158, 125, 170, 234,\n\t\t232, 17, 50, 235, 13, 54, 181, 40, 30, 179, 40, 216, 94, 127,\n\t\t204, 0, 238, 74, 172, 149, 89, 105, 212, 17, 80, 224, 33,\n\t\t96, 248, 247, 124, 84, 99, 17, 102, 1, 28, 209, 20, 19, 6,\n\t\t163, 67, 240, 13, 160, 171, 49, 145, 38, 46, 202, 252, 250,\n\t\t138, 225, 61, 175, 93, 64, 223, 195, 219, 69, 218, 199, 55,\n\t\t176, 237, 163, 48, 68, 175, 144, 106, 98, 214, 180, 207, 189,\n\t\t77, 6, 164, 63, 143, 184, 186, 60, 220, 200, 105, 153, 49,\n\t\t48, 125, 134, 175, 38, 131, 178, 252, 255, 17, 34, 31, 23,\n\t\t214, 16, 231, 74, 118, 189, 123, 15, 167, 115, 162, 249, 41,\n\t\t251, 250, 211, 216, 244, 92, 239, 247, 117, 68, 243, 211,\n\t\t108, 37, 238, 120, 158, 233, 186, 29, 139, 90, 237, 76, 1,\n\t\t226, 59, 127, 220, 199, 222, 213, 100, 190, 52, 90, 220, 131,\n\t\t145, 191, 156, 190, 185, 249, 110, 87, 103, 216, 69, 226,\n\t\t42, 147, 95, 243, 229, 142, 90, 80, 69, 189, 45, 66, 170,\n\t\t224, 64, 68, 19, 133, 218, 174, 2, 8, 3, 102, 29, 79, 21,\n\t\t53, 218, 210, 250, 170, 251, 70, 155, 188, 152, 14, 97, 65,\n\t\t226, 73, 63, 134, 236, 40, 135, 199, 180, 46, 37, 119, 205,\n\t\t90, 23, 89, 81, 162, 43, 156, 237, 121, 217, 69, 83, 44, 208,\n\t\t108, 43, 126, 21, 215, 4, 184, 238, 212, 21, 129, 16, 162,\n\t\t211, 188, 227, 11, 100, 141, 172, 173, 10, 188, 100, 218,\n\t\t238, 88, 69, 67, 162, 159, 12, 195, 203, 241, 132, 100, 239,\n\t\t126, 96, 190, 155, 152, 159, 127, 223, 120, 235, 74, 41, 185,\n\t\t226, 69, 242, 165, 201, 27, 25, 76, 41, 14, 115, 141, 16,\n\t\t68, 166, 103, 190, 166, 168, 235, 26, 177, 177, 134, 61, 105,\n\t\t185, 234, 40, 34, 187, 53, 147, 26, 75, 24, 134, 42, 254,\n\t\t152, 20, 22, 20, 109, 225, 133, 114, 109, 116, 114, 15, 249,\n\t\t119, 217, 140, 146, 46, 159, 10, 10, 95, 90, 145, 108, 29,\n\t\t156, 115, 149, 189, 198, 169, 85, 201, 20, 51, 204, 30, 7,\n\t\t202, 12, 25, 44, 73, 193, 16, 208, 87, 212, 61, 127, 34, 120,\n\t\t41, 161, 44, 60, 60, 46, 4, 85, 137, 180, 133, 50, 150, 202,\n\t\t190, 30, 120, 12, 241, 179, 125, 74, 67, 249, 239, 27, 105,\n\t\t94, 181, 30, 115, 75, 30, 142, 37, 156, 95, 224, 7, 57, 3,\n\t\t167, 115, 3, 39, 153, 170, 61, 59, 166, 102, 52, 62, 54, 17,\n\t\t46, 176, 19, 142, 26, 145, 55, 45, 16, 243, 148, 90, 186,\n\t\t232, 60, 38, 142, 180, 161, 138, 208, 36, 160, 207, 145, 56,\n\t\t161, 231, 121, 150, 171, 6, 88, 68, 206, 182, 149, 181, 230,\n\t\t97, 127, 36, 122, 242, 127, 103, 50, 143, 40, 231, 93, 161,\n\t\t34, 188, 9, 120, 111, 153, 236, 11, 85, 193, 177, 72, 46,\n\t\t210, 141, 232, 174, 249, 166, 97, 34, 174, 94, 201, 112, 8,\n\t\t222, 199, 137, 97, 185, 179, 151, 150, 114, 48, 44, 73, 242,\n\t\t21, 78, 194, 126, 171, 195, 9, 139, 35, 54, 94, 146, 77, 58,\n\t\t74, 123, 49, 214, 179, 232, 40, 171, 69, 101, 233, 27, 45,\n\t\t42, 13, 227, 56, 244, 164, 17, 240, 19, 1, 194, 199, 37, 46,\n\t\t118, 131, 51, 10, 0, 91, 90, 160, 132, 208, 43, 55, 190, 131,\n\t\t3, 105, 218, 31, 225, 182, 104, 195, 71, 102, 203, 106, 24,\n\t\t189, 162, 249, 197, 239, 84, 190, 22, 47, 112, 86, 157, 224,\n\t\t108, 41, 50, 119, 70, 228, 95, 158, 35, 4, 12, 126, 39, 41,\n\t\t209, 248, 244, 110, 130, 205, 175, 51, 190, 93, 0, 240, 31,\n\t\t120, 151, 111, 38, 236, 93, 29, 240, 134, 85, 60, 7, 129,\n\t\t72, 110, 30, 244, 99, 47, 245, 54, 62, 93, 83, 146, 111, 51,\n\t\t229, 237, 23, 187, 41, 66, 255, 0, 16, 193, 251, 87, 135,\n\t\t184, 61, 194, 81, 216, 16, 202, 170, 5, 219, 65, 130, 182,\n\t\t0, 28, 201, 212, 194, 0, 227, 13, 15, 186, 138, 112, 1, 15,\n\t\t40, 6, 187, 96, 52, 218, 188, 125, 220, 220, 130, 211, 170,\n\t\t57, 182, 144, 36, 194, 68, 153, 55, 23, 169, 0, 164, 248,\n\t\t42, 181, 31, 178, 79, 184, 29, 148, 37, 174, 115, 33, 60,\n\t\t206, 30, 209, 213, 184, 247, 201, 193, 151, 68, 15, 144, 61,\n\t\t82, 161, 110, 190, 248, 162, 253, 46, 174, 184, 51, 27, 48,\n\t\t5, 61, 222, 247, 128, 184, 104, 191, 57, 169, 191, 97, 193,\n\t\t167, 151, 26, 185, 73, 152, 56, 157, 179, 133, 114, 41, 123,\n\t\t55, 11, 199, 158, 144, 52, 104, 134, 62, 108, 0, 27, 221,\n\t\t125, 82, 65, 3, 214, 124, 226, 198, 67, 230, 109, 216, 169,\n\t\t182, 38, 7, 153, 26, 8, 231, 219, 159, 48, 221, 240, 17, 59,\n\t\t127, 128, 169, 20, 109, 51, 246, 172, 51, 31, 47, 27, 64,\n\t\t129, 108, 232, 10, 32, 170, 148, 25, 126, 164, 52, 166, 103,\n\t\t96, 230, 24, 116, 245, 98, 95, 4, 178, 205, 217, 226, 139,\n\t\t64, 124, 167, 148, 80, 205, 165, 220, 163, 241, 176, 199,\n\t\t216, 5, 51, 21, 140, 210, 22, 179, 125, 115, 91, 92, 197,\n\t\t141, 194, 68, 138, 85, 124, 115, 106, 207, 86, 153, 236, 17,\n\t\t48, 163, 136, 109, 104, 14, 248, 45, 219, 24, 160, 4, 9, 236,\n\t\t247, 84, 130, 227, 160, 148, 244, 142, 34, 223, 160, 167,\n\t\t109, 53, 231, 223, 22, 87, 179, 32, 168, 232, 70, 139, 232,\n\t\t53, 15, 57, 99, 147, 101, 65, 217, 33, 202, 95, 122, 67, 178,\n\t\t127, 84, 97, 186, 119, 50, 182, 66, 45, 225, 246, 55, 70,\n\t\t53, 40, 47, 20, 47, 207, 250, 7, 75, 35, 178, 217, 135, 67,\n\t\t241, 152, 159, 242, 181, 204, 252, 153, 184, 43, 107, 203,\n\t\t223, 174, 174, 81, 156, 231, 241, 49, 95, 239, 7, 138, 98,\n\t\t205, 56, 47, 205, 175, 74, 53, 9, 250, 198, 18, 197, 162,\n\t\t244, 53, 232, 11, 243, 77, 148, 25, 240, 215, 212, 6, 156,\n\t\t77, 77, 174, 1, 98, 109, 36, 94, 105, 71, 216, 171, 40, 31,\n\t\t67, 200, 44, 45, 191, 221, 142, 130, 66, 123, 246, 61, 148,\n\t\t49, 108, 185, 94, 21, 40, 142, 71, 225, 0, 149, 133, 204,\n\t\t30, 176, 66, 83, 229, 107, 1, 162, 134, 167, 82, 111, 79,\n\t\t184, 87, 115, 203, 72, 179, 127, 18, 21, 184, 149, 230, 179,\n\t\t77, 111, 89, 40, 61, 243, 113, 154, 17, 177, 59, 42, 16, 254,\n\t\t254, 82, 83, 168, 197, 13, 163, 62, 126, 136, 199, 201, 68,\n\t\t216, 44, 175, 250, 33, 119, 129, 129, 66, 164, 69, 217, 83,\n\t\t132, 239, 10, 178, 124, 80, 118, 77, 230, 30, 88, 252, 193,\n\t\t31, 153, 114, 239, 51, 211, 15, 61, 20, 247, 71, 43, 221,\n\t\t163, 81, 129, 173, 131, 128, 227, 175, 100, 163, 170, 137,\n\t\t241, 22, 36, 56, 117, 169, 222, 254, 44, 174, 244, 114, 97,\n\t\t226, 236, 53, 165, 63, 129, 32, 132, 184, 164, 174, 188, 123,\n\t\t60, 186, 156, 19, 119, 227, 88, 17, 49, 161, 12, 215, 244,\n\t\t7, 219, 9, 216, 102, 244, 106, 246, 141, 92, 49, 112, 222,\n\t\t19, 201, 217, 229, 204, 241, 177, 163, 52, 190, 99, 188, 53,\n\t\t159, 71, 210, 118, 170, 242, 67, 140, 196, 70, 142, 13, 46,\n\t\t46, 201, 44, 104, 177, 213, 215, 40, 64, 13, 233, 9, 7, 193,\n\t\t48, 55, 196, 208, 113, 16, 37, 229, 36, 183, 92, 227, 114,\n\t\t101, 186, 85, 27, 156, 165, 70, 83, 62, 121, 99, 228, 41,\n\t\t195, 251, 191, 174, 170, 46, 1, 12, 20, 203, 223, 123, 121,\n\t\t232, 134, 105, 183, 188, 194, 166, 38, 143, 63, 114, 136,\n\t\t158, 95, 113, 111, 18, 188, 243, 133, 195, 95, 210, 93, 39,\n\t\t175, 121, 229, 180, 8, 142, 233, 167, 203, 0, 228, 164, 234,\n\t\t81, 171, 120, 156, 161, 89, 164, 105, 250, 155, 97, 210, 176,\n\t\t129, 102, 197, 25, 177, 181, 153, 16, 171, 56, 67, 255, 14,\n\t\t50, 63, 240, 147, 224, 213, 83, 193, 54, 211, 249, 0, 156,\n\t\t141, 186, 71, 180, 55, 224, 119, 240, 30, 221, 139, 75, 209,\n\t\t60, 16, 221, 191, 248, 11, 55, 45, 104, 56, 52, 220, 248,\n\t\t159, 195, 38, 28, 65, 162, 247, 140, 87, 193, 154, 33, 181,\n\t\t130, 81, 192, 90, 55, 185, 242, 236, 195, 144, 213, 203, 100,\n\t\t76, 87, 197, 26, 241, 189, 172, 14, 241, 13, 225, 233, 219,\n\t\t88, 135, 245, 226, 223, 26, 175, 79, 101, 84, 31, 207, 242,\n\t\t236, 219, 19, 78, 87, 154, 38, 244, 103, 65, 44, 147, 53,\n\t\t169, 235, 96, 126, 127, 6, 169, 76, 156, 154, 231, 159, 65,\n\t\t58, 53, 164, 217, 62, 131, 108, 122, 216, 114, 28, 170, 220,\n\t\t74, 202, 150, 179, 155, 166, 101, 65, 108, 188, 60, 30, 217,\n\t\t62, 37, 38, 77, 130, 168, 207, 47, 207, 216, 189, 136, 50,\n\t\t220, 220, 250, 59, 218, 97, 135, 52, 215, 9, 56, 167, 61,\n\t\t161, 112, 151, 129, 110, 183, 163, 201, 102, 163, 195, 135,\n\t\t0, 58, 201, 172, 146, 144, 173, 186, 198, 212, 209, 1, 0,\n\t\t31, 217, 197, 168, 119, 152, 250, 63, 49, 247, 165, 246, 184,\n\t\t183, 151, 159, 197, 147, 251, 0, 188, 86, 122, 251, 51, 34,\n\t\t77, 134, 158, 177, 75, 227, 142, 33, 169, 86, 69, 225, 255,\n\t\t169, 146, 190, 214, 177, 177, 9, 50, 221, 28, 159, 112, 0,\n\t\t164, 46, 27, 132, 199, 24, 228, 158, 91, 123, 33, 62, 64,\n\t\t122, 162, 105, 107, 228, 113, 29, 12, 121, 129, 195, 144,\n\t\t26, 173, 208, 166, 93, 127, 208, 78, 114, 20, 37, 124, 58,\n\t\t77, 148, 121, 249, 2, 254, 255, 10, 138, 67, 71, 188, 169,\n\t\t139, 214, 129, 204, 122, 21, 155, 151, 210, 214, 222, 165,\n\t\t3, 197, 93, 214, 81, 117, 227, 77, 182, 95, 43, 46, 128, 110,\n\t\t253, 189, 188, 232, 129, 63, 142, 94, 91, 128, 57, 21, 179,\n\t\t191, 253, 161, 216, 148, 21, 184, 103, 122, 126, 173, 106,\n\t\t89, 200, 126, 86, 77, 163, 67, 238, 184, 174, 254, 155, 230,\n\t\t83, 171, 144, 160, 202, 241, 60, 218, 138, 52, 73, 109, 129,\n\t\t174, 212, 63, 102, 241, 74, 166, 228, 242, 70, 182, 220, 88,\n\t\t44, 85, 200, 203, 98, 66, 145, 67, 179, 153, 175, 194, 101,\n\t\t171, 37, 148, 40, 80, 21, 191, 147, 172, 158, 170, 144, 230,\n\t\t220, 34, 56, 143, 140, 33, 35, 49, 233, 91, 21, 187, 114,\n\t\t13, 235, 197, 186, 90, 148, 165, 149, 114, 147, 246, 118,\n\t\t140, 155, 225, 191, 112, 100, 204, 30, 29, 65, 71, 138, 241,\n\t\t32, 213, 97, 245, 214, 99, 191, 135, 0, 246, 221, 180, 117,\n\t\t48, 201, 89, 222, 131, 240, 100, 211, 32, 45, 90, 25, 204,\n\t\t208, 35, 197, 207, 84, 198, 122, 41, 238, 181, 158, 254, 25,\n\t\t97, 228, 189, 225, 185, 20, 185, 30, 233, 126, 172, 211, 114,\n\t\t57, 177, 53, 128, 229, 30, 44, 101, 197, 199, 108, 54, 74,\n\t\t215, 250, 169, 69, 82, 75, 136, 189, 139, 213, 181, 189, 221,\n\t\t143, 31, 27, 50, 9, 32, 109, 221, 41, 204, 106, 97, 218, 119,\n\t\t52, 78, 58, 138, 249, 42, 150, 92, 123, 77, 176, 84, 207,\n\t\t177, 186, 124, 88, 51, 217, 162, 21, 110, 104, 5, 58, 164,\n\t\t26, 13, 248, 138, 41, 1, 164, 131, 230, 145, 60, 86, 180,\n\t\t35, 17, 46, 244, 17, 75, 20, 12, 21, 216, 237, 71, 218, 20,\n\t\t205, 195, 207, 39, 159, 182, 217, 107, 170, 52, 134, 235,\n\t\t113, 198, 190, 203, 38, 71, 219, 233, 98, 144, 92, 185, 20,\n\t\t19, 208, 245, 228, 108, 251, 156, 237, 1, 22, 162, 241, 149,\n\t\t186, 233, 46, 197, 185, 141, 240, 41, 87, 55, 208, 117, 216,\n\t\t156, 123, 37, 209, 246, 100, 19, 184, 209, 222, 136, 206,\n\t\t31, 203, 250, 20, 205, 64, 68, 95, 148, 112, 147, 205, 54,\n\t\t146, 144, 119, 220, 47, 206, 125, 229, 207, 255, 227, 20,\n\t\t251, 247, 114, 240, 125, 224, 107, 135, 100, 101, 139, 143,\n\t\t233, 213, 140, 212, 88, 178, 138, 198, 66, 109, 30, 20, 43,\n\t\t165, 81, 92, 209, 246, 232, 139, 234, 44, 38, 228, 119, 236,\n\t\t237, 152, 15, 226, 137, 191, 161, 10, 218, 177, 115, 118,\n\t\t119, 26, 29, 254, 4, 111, 95, 148, 177, 187, 135, 45, 245,\n\t\t52, 94, 86, 58, 247, 111, 216, 116, 209, 213, 229, 230, 232,\n\t\t255, 150, 140, 23, 58, 110, 34, 73, 148, 67, 43, 150, 32,\n\t\t163, 159, 19, 143, 65, 83, 138, 122, 18, 125, 179, 186, 229,\n\t\t78, 120, 114, 137, 148, 46, 14, 149, 178, 37, 185, 169, 45,\n\t\t70, 168, 244, 78, 252, 22, 88, 174, 139, 79, 81, 27, 251,\n\t\t7, 141, 195, 196, 220, 146, 42, 245, 21, 236, 150, 18, 91,\n\t\t7, 164, 109, 153, 22, 118, 77, 237, 25, 83, 196, 6, 81, 10,\n\t\t160, 90, 245, 175, 91, 135, 242, 39, 228, 201, 248, 125, 241,\n\t\t231, 139, 223, 110, 162, 106, 51, 181, 131, 82, 136, 201,\n\t\t41, 39, 241, 75, 127, 154, 228, 78, 80, 184, 170, 96, 41,\n\t\t237, 106, 165, 245, 187, 94, 230, 132, 138, 194, 154, 13,\n\t\t213, 79, 32, 86, 50, 249, 80, 3, 202, 92, 176, 114, 189, 67,\n\t\t79, 168, 171, 15, 47, 242, 75, 51, 41, 31, 43, 166, 221, 122,\n\t\t75, 112, 54, 76, 113, 246, 165, 40, 223, 103, 15, 181, 147,\n\t\t173, 133, 41, 83, 178, 49, 219, 233, 209, 236, 201, 41, 132,\n\t\t253, 16, 5, 94, 186, 9, 7, 74, 86, 234, 20, 221, 171, 185,\n\t\t47, 250, 79, 35, 115, 176, 181, 120, 165, 43, 114, 166, 231,\n\t\t140, 35, 109, 34, 94, 174, 203, 127, 61, 108, 139, 133, 21,\n\t\t213, 144, 186, 234, 132, 131, 64, 169, 5, 109, 74, 165, 147,\n\t\t143, 178, 72, 244, 140, 35, 224, 254, 21, 210, 216, 242, 58,\n\t\t95, 204, 36, 50, 208, 101, 96, 23, 29, 196, 237, 251, 209,\n\t\t163, 92, 128, 98, 193, 69, 211, 209, 225, 183, 178, 155, 248,\n\t\t41, 145, 187, 24, 229, 170, 188, 239, 159, 237, 173, 139,\n\t\t33, 150, 150, 219, 98, 106, 23, 171, 24, 229, 16, 155, 52,\n\t\t193, 86, 17, 255, 240, 73, 228, 132, 203, 109, 92, 39, 13,\n\t\t71, 145, 233, 165, 177, 27, 179, 31, 147, 131, 70, 114, 243,\n\t\t238, 165, 94, 91, 186, 172, 40, 193, 45, 103, 112, 62, 186,\n\t\t76, 210, 41, 7, 38, 250, 48, 203, 211, 227, 16, 47, 199, 185,\n\t\t169, 206, 66, 195, 172, 168, 126, 21, 40, 53, 199, 30, 61,\n\t\t148, 35, 58, 181, 27, 120, 8, 96, 182, 221, 63, 245, 9, 184,\n\t\t158, 85, 129, 111, 31, 192, 59, 232, 141, 40, 18, 109, 137,\n\t\t192, 183, 181, 149, 231, 51, 67, 96, 138, 107, 247, 54, 183,\n\t\t53, 93, 240, 61, 171, 211, 155, 236, 245, 236, 165, 125, 231,\n\t\t3, 88, 220, 253, 246, 55, 242, 115, 111, 253, 238, 155, 239,\n\t\t124, 155, 180, 54, 202, 60, 226, 27, 255, 90, 147, 114, 109,\n\t\t143, 29, 17, 193, 144, 178, 32, 193, 205, 133, 180, 114, 154,\n\t\t164, 169, 42, 54, 12, 155, 54, 15, 182, 110, 222, 36, 27,\n\t\t59, 126, 146, 52, 88, 33, 25, 243, 104, 27, 42, 144, 206,\n\t\t131, 251, 151, 155, 78, 252, 252, 122, 112, 237, 153, 97,\n\t\t58, 41, 166, 111, 140, 181, 217, 182, 207, 196, 110, 130,\n\t\t216, 142, 192, 43, 90, 20, 188, 41, 0, 28, 84, 137, 147, 199,\n\t\t240, 19, 85, 41, 164, 204, 35, 204, 212, 57, 21, 61, 46, 32,\n\t\t42, 110, 244, 32, 14, 127, 9, 216, 192, 78, 156, 252, 25,\n\t\t87, 186, 174, 239, 14, 95, 172, 217, 30, 229, 3, 36, 25, 14,\n\t\t77, 208, 47, 154, 150, 44, 22, 126, 169, 147, 8, 120, 5, 12,\n\t\t149, 102, 32, 86, 22, 69, 82, 229, 219, 169, 52, 150, 68,\n\t\t63, 9, 122, 214, 147, 120, 133, 50, 239, 211, 158, 168, 46,\n\t\t249, 224, 188, 141, 81, 194, 106, 14, 113, 20, 137, 102, 32,\n\t\t49, 144, 24, 166, 117, 168, 94, 24, 38, 66, 128, 238, 8, 112,\n\t\t40, 74, 189, 59, 2, 24, 56, 124, 168, 37, 150, 24, 6, 74,\n\t\t229, 253, 210, 122, 85, 118, 218, 114, 70, 181, 112, 242,\n\t\t182, 146, 180, 65, 194, 178, 127, 167, 207, 137, 129, 193,\n\t\t226, 88, 17, 224, 108, 137, 38, 182, 225, 117, 166, 77, 241,\n\t\t80, 133, 98, 50, 205, 108, 71, 71, 36, 59, 142, 13, 129, 205,\n\t\t8, 226, 72, 67, 239, 228, 76, 181, 33, 116, 6, 210, 3, 86,\n\t\t225, 224, 209, 61, 217, 201, 0, 221, 98, 116, 165, 108, 200,\n\t\t50, 41, 86, 180, 83, 81, 18, 253, 93, 162, 32, 31, 49, 187,\n\t\t145, 239, 243, 214, 218, 6, 103, 168, 75, 79, 96, 22, 236,\n\t\t149, 12, 59, 137, 144, 11, 203, 214, 33, 237, 56, 108, 222,\n\t\t251, 233, 54, 138, 187, 230, 211, 104, 11, 111, 234, 89, 70,\n\t\t91, 202, 76, 15, 159, 47, 190, 235, 159, 250, 82, 42, 47,\n\t\t69, 191, 103, 167, 123, 83, 76, 72, 117, 246, 69, 186, 213,\n\t\t114, 221, 229, 126, 106, 108, 254, 181, 62, 128, 229, 219,\n\t\t100, 179, 143, 9, 103, 28, 161, 23, 236, 179, 242, 167, 69,\n\t\t196, 206, 36, 42, 239, 118, 164, 37, 52, 133, 147, 190, 55,\n\t\t3, 174, 125, 8, 69, 116, 103, 173, 213, 58, 181, 185, 118,\n\t\t123, 190, 185, 1, 128, 31, 76, 73, 69, 160, 37, 152, 123,\n\t\t138, 131, 23, 154, 174, 11, 60, 157, 2, 9, 49, 29, 226, 172,\n\t\t160, 166, 94, 112, 69, 208, 174, 121, 191, 182, 246, 190,\n\t\t35, 161, 213, 210, 205, 153, 214, 172, 175, 22, 218, 198,\n\t\t27, 248, 94, 214, 27, 228, 150, 115, 29, 151, 90, 89, 76,\n\t\t21, 131, 42, 143, 100, 78, 139, 223, 56, 162, 123, 10, 214,\n\t\t33, 208, 98, 73, 54, 217, 245, 252, 250, 225, 38, 117, 7,\n\t\t22, 163, 52, 52, 152, 111, 63, 60, 132, 178, 195, 226, 251,\n\t\t160, 184, 157, 229, 241, 3, 73, 114, 249, 107, 71, 127, 77,\n\t\t232, 217, 23, 230, 23, 242, 202, 194, 65, 181, 77, 226, 111,\n\t\t139, 177, 157, 27, 85, 237, 177, 182, 104, 199, 81, 226, 39,\n\t\t87, 95, 156, 141, 70, 155, 218, 46, 58, 0, 86, 232, 92, 181,\n\t\t95, 243, 138, 31, 235, 190, 179, 221, 209, 134, 9, 97, 225,\n\t\t74, 225, 97, 124, 197, 231, 83, 56, 106, 144, 238, 88, 14,\n\t\t37, 91, 113, 248, 8, 128, 37, 0, 155, 13, 115, 113, 145, 234,\n\t\t16, 197, 89, 61, 102, 239, 250, 156, 222, 191, 216, 136, 166,\n\t\t158, 32, 141, 37, 22, 74, 58, 52, 33, 39, 210, 120, 93, 254,\n\t\t117, 30, 214, 159, 87, 66, 103, 72, 93, 239, 234, 54, 249,\n\t\t115, 93, 248, 143, 45, 198, 215, 34, 226, 99, 134, 61, 95,\n\t\t179, 175, 43, 225, 217, 139, 25, 130, 62, 84, 190, 18, 63,\n\t\t88, 210, 129, 119, 215, 193, 195, 222, 177, 29, 143, 183,\n\t\t126, 3, 208, 94, 164, 43, 38, 76, 35, 51, 118, 54, 85, 72,\n\t\t102, 78, 191, 47, 80, 15, 2, 71, 97, 15, 191, 24, 197, 159,\n\t\t49, 85, 77, 104, 93, 160, 202, 130, 92, 122, 86, 49, 141,\n\t\t120, 159, 154, 204, 238, 100, 113, 250, 53, 49, 77, 113, 64,\n\t\t187, 197, 222, 151, 128, 75, 69, 235, 44, 247, 172, 188, 243,\n\t\t102, 127, 68, 106, 190, 180, 205, 13, 249, 209, 72, 171, 159,\n\t\t201, 97, 17, 98, 38, 217, 145, 79, 100, 94, 112, 208, 65,\n\t\t249, 59, 74, 86, 240, 162, 62, 110, 47, 82, 234, 171, 133,\n\t\t155, 113, 223, 118, 162, 52, 152, 205, 62, 84, 53, 76, 93,\n\t\t204, 242, 140, 207, 88, 137, 82, 65, 28, 168, 51, 152, 6,\n\t\t143, 242, 157, 94, 127, 118, 181, 36, 44, 173, 6, 77, 190,\n\t\t85, 100, 37, 81, 203, 117, 178, 43, 217, 247, 87, 244, 92,\n\t\t46, 29, 187, 119, 176, 54, 26, 63, 185, 171, 63, 174, 218,\n\t\t135, 86, 241, 190, 55, 167, 181, 195, 6, 125, 35, 55, 0, 198,\n\t\t219, 85, 165, 168, 110, 39, 152, 157, 43, 208, 195, 163, 81,\n\t\t105, 178, 136, 144, 92, 11, 184, 110, 117, 64, 46, 212, 89,\n\t\t246, 58, 2, 108, 115, 235, 190, 168, 6, 44, 28, 165, 174,\n\t\t210, 38, 87, 236, 176, 250, 30, 247, 106, 242, 248, 100, 188,\n\t\t54, 217, 50, 148, 19, 13, 126, 253, 64, 135, 107, 57, 211,\n\t\t195, 37, 5, 252, 217, 157, 1, 104, 230, 157, 100, 144, 100,\n\t\t228, 182, 176, 183, 99, 94, 89, 120, 75, 197, 107, 27, 17,\n\t\t245, 151, 21, 168, 161, 240, 23, 129, 185, 80, 31, 55, 91,\n\t\t82, 211, 116, 20, 152, 148, 38, 176, 187, 234, 96, 108, 108,\n\t\t108, 91, 107, 80, 67, 225, 183, 1, 80, 6, 90, 210, 23, 49,\n\t\t18, 13, 72, 128, 18, 186, 229, 20, 30, 113, 23, 5, 36, 18,\n\t\t159, 164, 40, 55, 109, 184, 202, 245, 112, 140, 210, 142,\n\t\t161, 123, 119, 198, 136, 241, 177, 147, 179, 36, 35, 199,\n\t\t74, 165, 90, 130, 42, 5, 255, 98, 195, 244, 197, 40, 105,\n\t\t13, 138, 163, 131, 82, 220, 186, 150, 165, 147, 205, 218,\n\t\t103, 249, 73, 202, 216, 44, 198, 99, 155, 157, 239, 41, 162,\n\t\t107, 160, 104, 191, 66, 249, 141, 19, 218, 130, 99, 215, 192,\n\t\t97, 233, 67, 32, 197, 197, 243, 232, 241, 35, 217, 53, 60,\n\t\t198, 55, 130, 146, 81, 227, 88, 92, 4, 215, 26, 197, 173,\n\t\t126, 203, 32, 106, 110, 161, 219, 149, 183, 102, 145, 66,\n\t\t149, 51, 239, 66, 110, 197, 150, 26, 243, 47, 245, 217, 53,\n\t\t12, 162, 165, 122, 26, 89, 66, 70, 43, 223, 88, 130, 76, 72,\n\t\t105, 167, 132, 141, 134, 21, 131, 207, 245, 140, 17, 148,\n\t\t188, 164, 132, 186, 215, 16, 231, 71, 143, 23, 119, 157, 99,\n\t\t251, 211, 27, 170, 94, 204, 176, 225, 66, 213, 91, 18, 4,\n\t\t203, 107, 18, 222, 20, 59, 84, 35, 182, 106, 51, 210, 25,\n\t\t112, 37, 55, 101, 101, 75, 106, 253, 13, 235, 192, 209, 70,\n\t\t71, 93, 70, 36, 70, 139, 150, 143, 96, 51, 115, 169, 190,\n\t\t27, 99, 158, 203, 201, 239, 54, 243, 97, 202, 179, 38, 233,\n\t\t193, 208, 5, 228, 117, 197, 13, 225, 164, 71, 24, 80, 235,\n\t\t198, 211, 34, 37, 179, 228, 42, 89, 149, 172, 87, 172, 156,\n\t\t210, 84, 128, 53, 197, 56, 173, 95, 196, 215, 74, 246, 42,\n\t\t50, 33, 228, 159, 99, 226, 71, 120, 165, 84, 191, 124, 96,\n\t\t249, 208, 140, 230, 139, 98, 42, 146, 184, 72, 24, 195, 83,\n\t\t136, 103, 85, 144, 153, 42, 86, 174, 237, 93, 60, 50, 117,\n\t\t155, 86, 93, 176, 17, 210, 244, 19, 38, 69, 241, 48, 252,\n\t\t161, 51, 47, 40, 125, 246, 140, 177, 119, 26, 105, 204, 200,\n\t\t45, 20, 218, 204, 21, 235, 216, 148, 63, 109, 32, 132, 135,\n\t\t189, 24, 215, 122, 212, 92, 181, 150, 13, 237, 75, 180, 119,\n\t\t190, 197, 200, 45, 35, 56, 136, 229, 91, 218, 130, 143, 8,\n\t\t40, 58, 24, 230, 29, 103, 106, 80, 75, 196, 58, 48, 193, 61,\n\t\t145, 158, 98, 72, 130, 28, 215, 76, 130, 236, 59, 86, 101,\n\t\t129, 152, 213, 158, 112, 72, 181, 225, 124, 104, 49, 45, 55,\n\t\t254, 188, 37, 32, 231, 171, 104, 0, 247, 192, 221, 247, 95,\n\t\t234, 135, 205, 7, 151, 143, 167, 120, 224, 98, 213, 224, 146,\n\t\t1, 197, 166, 164, 246, 99, 74, 80, 77, 255, 82, 203, 30, 170,\n\t\t156, 162, 229, 83, 218, 103, 31, 35, 53, 62, 37, 113, 72,\n\t\t55, 37, 26, 123, 121, 134, 246, 223, 110, 7, 38, 202, 197,\n\t\t165, 230, 104, 199, 244, 89, 206, 130, 83, 86, 209, 239, 162,\n\t\t103, 129, 226, 179, 112, 91, 253, 191, 3, 98, 225, 242, 109,\n\t\t175, 165, 253, 198, 221, 47, 63, 197, 66, 109, 253, 1, 198,\n\t\t183, 223, 254, 240, 116, 51, 185, 123, 182, 218, 40, 55, 142,\n\t\t5, 138, 88, 91, 174, 21, 107, 250, 74, 156, 190, 85, 78, 29,\n\t\t154, 139, 70, 31, 52, 114, 124, 249, 69, 247, 89, 175, 124,\n\t\t165, 113, 143, 40, 121, 157, 74, 182, 25, 247, 30, 118, 243,\n\t\t178, 53, 76, 161, 151, 80, 88, 42, 88, 190, 74, 188, 228,\n\t\t13, 58, 249, 186, 103, 67, 70, 65, 194, 38, 166, 153, 89,\n\t\t216, 171, 189, 109, 102, 16, 135, 39, 93, 170, 129, 239, 148,\n\t\t176, 36, 9, 127, 39, 237, 166, 22, 187, 173, 162, 116, 69,\n\t\t207, 69, 159, 24, 10, 27, 39, 58, 16, 110, 163, 188, 138,\n\t\t157, 22, 66, 201, 161, 62, 185, 231, 116, 33, 251, 176, 236,\n\t\t237, 56, 150, 21, 92, 121, 39, 116, 88, 163, 186, 119, 42,\n\t\t154, 250, 182, 213, 217, 158, 133, 37, 80, 215, 229, 180,\n\t\t245, 132, 34, 114, 228, 108, 15, 39, 121, 212, 150, 123, 178,\n\t\t22, 41, 222, 19, 82, 202, 221, 73, 205, 189, 132, 172, 111,\n\t\t184, 90, 252, 136, 155, 223, 21, 254, 202, 194, 198, 180,\n\t\t212, 48, 32, 202, 69, 176, 120, 131, 144, 190, 121, 64, 110,\n\t\t157, 99, 107, 79, 30, 154, 138, 101, 149, 231, 53, 89, 253,\n\t\t109, 77, 250, 55, 185, 156, 37, 91, 242, 204, 180, 114, 205,\n\t\t77, 204, 178, 204, 6, 36, 207, 229, 205, 231, 26, 106, 0,\n\t\t4, 9, 96, 65, 157, 59, 9, 196, 65, 170, 18, 204, 216, 51,\n\t\t211, 102, 11, 22, 93, 13, 239, 18, 107, 211, 3, 82, 138, 77,\n\t\t187, 34, 105, 126, 86, 127, 251, 204, 162, 210, 138, 238,\n\t\t211, 2, 166, 186, 223, 162, 77, 29, 5, 56, 56, 86, 143, 31,\n\t\t120, 167, 218, 153, 252, 100, 112, 225, 101, 170, 122, 52,\n\t\t34, 76, 96, 72, 146, 216, 133, 89, 221, 237, 21, 237, 138,\n\t\t79, 157, 92, 139, 166, 7, 59, 89, 211, 216, 122, 44, 212,\n\t\t247, 251, 90, 243, 14, 151, 129, 95, 98, 222, 43, 114, 188,\n\t\t155, 231, 46, 91, 138, 253, 46, 42, 254, 189, 141, 126, 105,\n\t\t111, 69, 7, 134, 233, 111, 217, 17, 234, 162, 233, 40, 72,\n\t\t246, 35, 112, 11, 174, 23, 246, 11, 157, 161, 62, 229, 6,\n\t\t108, 247, 52, 41, 70, 165, 100, 77, 166, 69, 176, 85, 23,\n\t\t218, 28, 11, 208, 78, 254, 118, 237, 120, 33, 158, 134, 53,\n\t\t102, 176, 67, 35, 38, 89, 249, 175, 250, 156, 5, 86, 62, 183,\n\t\t175, 190, 123, 126, 87, 43, 255, 17, 211, 105, 109, 65, 153,\n\t\t232, 183, 118, 170, 207, 166, 22, 42, 47, 14, 87, 15, 174,\n\t\t228, 171, 135, 87, 247, 67, 14, 200, 207, 116, 246, 247, 203,\n\t\t82, 129, 232, 79, 195, 121, 40, 234, 237, 233, 247, 170, 45,\n\t\t221, 191, 114, 246, 3, 173, 51, 247, 161, 26, 192, 127, 219,\n\t\t153, 247, 103, 241, 112, 41, 163, 249, 162, 230, 101, 11,\n\t\t22, 81, 128, 125, 148, 232, 113, 204, 87, 197, 63, 192, 148,\n\t\t158, 46, 131, 90, 216, 211, 56, 180, 92, 156, 219, 93, 63,\n\t\t184, 170, 210, 126, 128, 98, 106, 165, 250, 130, 107, 162,\n\t\t189, 56, 236, 236, 207, 207, 131, 193, 76, 95, 129, 45, 12,\n\t\t73, 187, 229, 62, 124, 35, 73, 213, 193, 154, 254, 160, 125,\n\t\t80, 187, 86, 32, 147, 87, 86, 91, 10, 149, 214, 13, 88, 190,\n\t\t41, 71, 223, 64, 51, 243, 210, 120, 239, 118, 11, 38, 190,\n\t\t252, 218, 18, 54, 33, 198, 57, 222, 241, 245, 96, 164, 207,\n\t\t218, 102, 51, 53, 224, 57, 141, 162, 120, 101, 113, 219, 207,\n\t\t33, 13, 25, 81, 45, 108, 1, 135, 245, 153, 34, 54, 148, 146,\n\t\t227, 165, 245, 114, 189, 193, 65, 98, 227, 54, 236, 95, 200,\n\t\t47, 231, 48, 136, 228, 219, 229, 206, 231, 145, 220, 148,\n\t\t209, 189, 214, 253, 144, 52, 203, 108, 27, 175, 88, 0, 226,\n\t\t237, 164, 214, 141, 123, 117, 100, 56, 44, 198, 112, 255,\n\t\t89, 147, 97, 15, 127, 154, 146, 20, 219, 152, 13, 107, 39,\n\t\t123, 236, 47, 96, 127, 49, 156, 48, 102, 73, 219, 7, 233,\n\t\t115, 200, 130, 32, 217, 39, 48, 168, 171, 121, 248, 28, 120,\n\t\t61, 112, 156, 36, 28, 2, 56, 22, 42, 15, 231, 246, 21, 1,\n\t\t62, 164, 96, 122, 136, 103, 141, 75, 126, 45, 212, 79, 141,\n\t\t89, 192, 231, 243, 82, 246, 160, 87, 32, 145, 196, 228, 197,\n\t\t214, 141, 11, 85, 38, 124, 230, 167, 221, 244, 225, 94, 188,\n\t\t214, 121, 125, 82, 139, 32, 37, 195, 135, 136, 87, 20, 180,\n\t\t58, 119, 100, 25, 84, 214, 161, 253, 218, 5, 142, 137, 246,\n\t\t183, 231, 0, 29, 57, 210, 216, 183, 250, 124, 41, 211, 90,\n\t\t65, 59, 46, 6, 70, 179, 183, 41, 80, 162, 199, 74, 134, 179,\n\t\t228, 152, 67, 149, 237, 219, 108, 180, 103, 249, 26, 11, 12,\n\t\t245, 248, 136, 29, 48, 27, 8, 106, 123, 198, 42, 237, 139,\n\t\t29, 81, 52, 153, 153, 180, 46, 161, 83, 73, 163, 167, 69,\n\t\t249, 121, 51, 19, 179, 60, 170, 134, 80, 186, 19, 244, 69,\n\t\t87, 211, 82, 204, 246, 219, 186, 101, 107, 41, 147, 105, 21,\n\t\t73, 175, 178, 149, 216, 42, 245, 181, 133, 128, 45, 205, 115,\n\t\t102, 145, 177, 91, 20, 115, 158, 76, 221, 74, 21, 180, 225,\n\t\t57, 153, 27, 55, 138, 233, 119, 234, 199, 44, 198, 179, 181,\n\t\t49, 109, 248, 201, 48, 130, 78, 173, 2, 132, 64, 211, 251,\n\t\t78, 250, 121, 35, 35, 43, 159, 182, 241, 32, 152, 219, 242,\n\t\t84, 224, 192, 213, 43, 222, 51, 231, 174, 0, 195, 246, 251,\n\t\t135, 181, 125, 60, 0, 193, 190, 181, 173, 222, 227, 62, 208,\n\t\t220, 198, 118, 57, 9, 45, 67, 185, 184, 224, 140, 136, 162,\n\t\t156, 5, 171, 164, 236, 248, 32, 167, 103, 139, 215, 196, 92,\n\t\t142, 209, 176, 145, 223, 160, 219, 83, 230, 21, 70, 42, 107,\n\t\t34, 250, 113, 119, 97, 105, 21, 96, 133, 233, 68, 29, 198,\n\t\t37, 45, 26, 168, 4, 28, 129, 74, 95, 71, 9, 167, 224, 82,\n\t\t217, 151, 106, 87, 185, 252, 140, 246, 26, 27, 150, 43, 56,\n\t\t196, 153, 211, 141, 49, 119, 68, 226, 91, 201, 78, 163, 3,\n\t\t252, 239, 215, 132, 234, 124, 133, 101, 193, 11, 111, 164,\n\t\t5, 120, 98, 195, 210, 60, 25, 80, 253, 65, 80, 140, 112, 132,\n\t\t47, 93, 117, 246, 167, 195, 187, 61, 70, 199, 232, 246, 131,\n\t\t110, 141, 194, 191, 241, 38, 137, 222, 139, 176, 4, 172, 163,\n\t\t207, 190, 110, 141, 89, 103, 13, 158, 58, 202, 190, 114, 81,\n\t\t183, 67, 197, 141, 19, 243, 37, 32, 58, 177, 125, 146, 39,\n\t\t44, 222, 135, 123, 80, 223, 179, 159, 46, 231, 202, 197, 130,\n\t\t69, 84, 177, 13, 20, 213, 13, 7, 96, 144, 209, 120, 254, 150,\n\t\t64, 29, 155, 77, 9, 253, 211, 198, 250, 158, 35, 202, 11,\n\t\t11, 129, 0, 116, 120, 157, 145, 240, 6, 61, 63, 70, 23, 89,\n\t\t155, 20, 231, 52, 18, 212, 114, 137, 207, 167, 129, 253, 243,\n\t\t184, 158, 111, 140, 217, 29, 48, 108, 176, 236, 231, 230,\n\t\t78, 102, 190, 175, 114, 151, 194, 176, 211, 103, 133, 119,\n\t\t231, 211, 50, 88, 240, 115, 198, 107, 198, 66, 165, 217, 100,\n\t\t141, 182, 88, 51, 115, 158, 181, 50, 121, 105, 237, 25, 39,\n\t\t171, 145, 93, 153, 169, 201, 18, 239, 160, 153, 44, 160, 99,\n\t\t15, 21, 143, 141, 13, 72, 57, 110, 195, 67, 109, 35, 112,\n\t\t169, 138, 70, 2, 215, 60, 57, 52, 68, 246, 118, 235, 44, 218,\n\t\t73, 26, 9, 33, 219, 53, 189, 218, 234, 248, 63, 106, 165,\n\t\t202, 94, 202, 90, 194, 39, 40, 166, 158, 125, 125, 232, 240,\n\t\t57, 193, 194, 111, 164, 181, 19, 103, 79, 139, 250, 134, 107,\n\t\t12, 153, 80, 189, 224, 91, 233, 152, 69, 39, 10, 145, 61,\n\t\t169, 68, 1, 145, 131, 116, 215, 163, 14, 129, 17, 127, 155,\n\t\t58, 2, 250, 99, 162, 163, 15, 33, 174, 149, 104, 109, 9, 139,\n\t\t189, 142, 120, 220, 206, 180, 144, 143, 13, 36, 140, 139,\n\t\t168, 51, 153, 176, 77, 10, 71, 186, 220, 55, 130, 103, 209,\n\t\t96, 253, 218, 50, 68, 236, 155, 200, 190, 113, 53, 194, 41,\n\t\t177, 188, 87, 49, 123, 166, 43, 77, 248, 65, 255, 111, 80,\n\t\t231, 119, 174, 119, 129, 136, 48, 151, 177, 8, 106, 203, 59,\n\t\t239, 57, 87, 93, 203, 148, 6, 211, 55, 52, 22, 74, 225, 198,\n\t\t244, 16, 124, 77, 99, 108, 86, 205, 111, 48, 55, 200, 95,\n\t\t191, 39, 99, 55, 6, 114, 64, 226, 88, 177, 252, 171, 140,\n\t\t69, 52, 179, 99, 77, 172, 21, 211, 206, 227, 174, 235, 45,\n\t\t141, 119, 57, 211, 174, 213, 96, 139, 183, 217, 142, 164,\n\t\t136, 244, 25, 111, 157, 16, 34, 110, 176, 120, 100, 235, 59,\n\t\t189, 25, 106, 120, 251, 23, 214, 228, 140, 69, 119, 222, 28,\n\t\t72, 95, 233, 211, 223, 61, 45, 80, 220, 96, 179, 240, 238,\n\t\t247, 251, 146, 106, 188, 207, 131, 66, 212, 226, 156, 119,\n\t\t179, 253, 134, 60, 132, 236, 106, 163, 186, 92, 188, 76, 194,\n\t\t90, 218, 117, 157, 4, 159, 47, 61, 212, 92, 160, 66, 195,\n\t\t151, 234, 4, 135, 95, 65, 171, 149, 43, 0, 108, 117, 234,\n\t\t6, 128, 186, 249, 172, 124, 15, 181, 154, 44, 204, 25, 37,\n\t\t159, 136, 33, 166, 186, 191, 135, 249, 194, 71, 226, 48, 133,\n\t\t24, 165, 64, 98, 143, 134, 90, 153, 174, 100, 87, 74, 118,\n\t\t120, 203, 212, 45, 104, 11, 245, 248, 177, 78, 230, 46, 2,\n\t\t134, 139, 215, 89, 86, 50, 191, 132, 27, 14, 78, 65, 191,\n\t\t115, 28, 90, 151, 92, 158, 200, 206, 152, 199, 41, 234, 74,\n\t\t110, 151, 113, 46, 148, 179, 91, 224, 35, 177, 254, 211, 179,\n\t\t35, 113, 100, 0, 212, 53, 21, 74, 92, 255, 134, 89, 155, 55,\n\t\t229, 153, 199, 159, 33, 58, 207, 209, 0, 43, 90, 111, 193,\n\t\t127, 210, 187, 164, 198, 34, 60, 198, 234, 142, 20, 24, 189,\n\t\t178, 217, 191, 193, 69, 17, 213, 131, 39, 250, 28, 132, 48,\n\t\t120, 169, 186, 156, 58, 172, 120, 134, 75, 145, 119, 200,\n\t\t16, 101, 23, 71, 87, 104, 147, 105, 82, 190, 195, 8, 193,\n\t\t203, 35, 193, 191, 45, 158, 185, 120, 227, 236, 185, 35, 135,\n\t\t46, 156, 190, 118, 62, 117, 243, 80, 54, 125, 100, 150, 173,\n\t\t25, 166, 100, 195, 250, 108, 199, 40, 99, 103, 217, 13, 129,\n\t\t34, 9, 184, 24, 255, 6, 127, 138, 18, 182, 16, 215, 118, 242,\n\t\t42, 6, 174, 56, 249, 154, 54, 197, 235, 39, 180, 199, 226,\n\t\t147, 182, 141, 90, 207, 37, 9, 199, 94, 69, 3, 94, 57, 126,\n\t\t48, 89, 224, 9, 225, 36, 98, 147, 247, 65, 89, 123, 226, 71,\n\t\t42, 6, 87, 97, 172, 45, 83, 108, 78, 79, 169, 178, 177, 110,\n\t\t136, 202, 6, 154, 200, 97, 103, 38, 230, 185, 25, 173, 72,\n\t\t236, 29, 199, 202, 125, 23, 109, 147, 103, 206, 150, 93, 180,\n\t\t72, 150, 202, 136, 40, 186, 45, 39, 237, 128, 11, 13, 22,\n\t\t143, 116, 206, 238, 27, 138, 218, 135, 185, 68, 201, 79, 164,\n\t\t109, 33, 247, 51, 237, 176, 48, 93, 33, 23, 2, 68, 144, 202,\n\t\t232, 190, 202, 0, 75, 246, 119, 86, 212, 82, 241, 181, 36,\n\t\t44, 94, 216, 238, 48, 59, 143, 164, 180, 144, 155, 50, 37,\n\t\t150, 234, 201, 102, 156, 216, 180, 166, 6, 105, 121, 68, 199,\n\t\t165, 134, 244, 89, 6, 180, 153, 70, 73, 99, 171, 26, 24, 91,\n\t\t71, 11, 174, 118, 170, 195, 170, 250, 215, 24, 157, 219, 107,\n\t\t84, 176, 28, 75, 19, 182, 244, 247, 56, 81, 215, 81, 124,\n\t\t141, 65, 94, 182, 205, 171, 190, 168, 50, 61, 42, 44, 139,\n\t\t249, 222, 69, 54, 50, 29, 183, 153, 24, 130, 78, 139, 131,\n\t\t50, 194, 188, 65, 139, 254, 202, 7, 88, 174, 23, 34, 154,\n\t\t113, 243, 0, 8, 249, 215, 16, 87, 115, 189, 8, 41, 195, 235,\n\t\t52, 230, 251, 143, 210, 47, 3, 41, 118, 185, 103, 110, 119,\n\t\t184, 89, 205, 151, 162, 11, 123, 250, 106, 245, 182, 7, 217,\n\t\t175, 22, 0, 197, 99, 114, 115, 241, 40, 183, 244, 89, 179,\n\t\t143, 55, 127, 126, 230, 219, 159, 197, 123, 255, 246, 174,\n\t\t249, 195, 35, 133, 13, 162, 189, 30, 223, 24, 137, 192, 40,\n\t\t226, 7, 113, 28, 169, 65, 118, 123, 72, 58, 232, 152, 220,\n\t\t247, 132, 234, 176, 102, 34, 180, 119, 158, 242, 205, 35,\n\t\t225, 180, 5, 79, 192, 83, 250, 30, 152, 43, 201, 122, 121,\n\t\t134, 179, 8, 190, 40, 250, 186, 3, 97, 199, 177, 16, 53, 179,\n\t\t222, 202, 87, 157, 239, 90, 193, 162, 5, 235, 162, 225, 143,\n\t\t101, 155, 128, 246, 150, 52, 77, 209, 253, 54, 171, 60, 2,\n\t\t206, 178, 28, 177, 34, 175, 81, 174, 101, 16, 92, 242, 43,\n\t\t172, 137, 92, 66, 47, 4, 128, 209, 166, 193, 138, 245, 236,\n\t\t54, 51, 189, 57, 104, 225, 159, 153, 162, 138, 88, 244, 209,\n\t\t230, 58, 136, 213, 8, 45, 155, 201, 180, 174, 156, 248, 186,\n\t\t14, 153, 219, 220, 124, 96, 236, 204, 161, 198, 208, 55, 213,\n\t\t245, 40, 160, 178, 72, 238, 126, 215, 151, 99, 175, 155, 223,\n\t\t203, 76, 36, 13, 17, 155, 142, 35, 110, 137, 19, 73, 244,\n\t\t52, 69, 206, 14, 25, 202, 245, 245, 143, 254, 251, 134, 165,\n\t\t59, 217, 203, 213, 190, 52, 221, 214, 100, 146, 215, 14, 204,\n\t\t95, 83, 164, 83, 212, 173, 213, 197, 204, 197, 88, 113, 97,\n\t\t121, 195, 148, 192, 220, 235, 83, 47, 203, 0, 208, 240, 207,\n\t\t199, 98, 185, 210, 233, 241, 175, 118, 246, 4, 245, 101, 87,\n\t\t50, 191, 159, 245, 196, 210, 120, 53, 113, 94, 10, 140, 252,\n\t\t22, 186, 212, 214, 238, 141, 157, 168, 140, 76, 21, 52, 194,\n\t\t241, 170, 157, 63, 169, 103, 154, 135, 185, 99, 245, 59, 135,\n\t\t185, 101, 109, 215, 132, 77, 138, 20, 147, 49, 90, 11, 106,\n\t\t155, 155, 221, 130, 95, 220, 251, 162, 83, 201, 58, 151, 30,\n\t\t206, 162, 55, 59, 241, 141, 232, 9, 197, 116, 175, 105, 198,\n\t\t189, 210, 227, 229, 200, 16, 246, 169, 167, 104, 203, 137,\n\t\t133, 191, 222, 54, 34, 155, 234, 43, 211, 42, 46, 102, 124,\n\t\t208, 236, 179, 40, 147, 175, 43, 209, 102, 125, 53, 16, 135,\n\t\t37, 244, 215, 149, 168, 67, 253, 53, 188, 161, 149, 224, 54,\n\t\t135, 82, 106, 55, 86, 142, 87, 84, 47, 14, 175, 150, 164,\n\t\t116, 234, 215, 131, 5, 224, 112, 83, 227, 135, 125, 123, 158,\n\t\t160, 47, 112, 177, 52, 215, 148, 172, 178, 105, 219, 103,\n\t\t133, 189, 94, 20, 28, 20, 34, 169, 7, 54, 236, 13, 191, 188,\n\t\t91, 103, 144, 175, 101, 6, 134, 225, 211, 226, 96, 63, 135,\n\t\t164, 220, 253, 64, 110, 203, 64, 193, 97, 241, 30, 160, 70,\n\t\t207, 28, 116, 168, 241, 190, 36, 185, 228, 140, 62, 109, 85,\n\t\t97, 95, 27, 11, 132, 133, 136, 5, 206, 124, 158, 141, 107,\n\t\t106, 38, 89, 40, 58, 59, 180, 230, 58, 242, 31, 46, 149, 9,\n\t\t120, 108, 74, 97, 80, 94, 83, 186, 179, 182, 192, 250, 77,\n\t\t42, 119, 85, 170, 109, 124, 214, 234, 125, 77, 147, 224, 208,\n\t\t33, 81, 178, 162, 58, 222, 226, 163, 230, 46, 117, 81, 218,\n\t\t163, 166, 98, 34, 118, 65, 72, 169, 173, 69, 19, 177, 26,\n\t\t89, 237, 188, 231, 201, 152, 50, 25, 154, 72, 233, 54, 131,\n\t\t18, 13, 102, 0, 74, 103, 228, 106, 142, 47, 164, 61, 197,\n\t\t93, 180, 135, 174, 83, 76, 90, 99, 224, 221, 81, 45, 203,\n\t\t155, 148, 165, 5, 121, 85, 237, 221, 103, 128, 101, 185, 198,\n\t\t121, 7, 17, 128, 136, 75, 226, 240, 58, 158, 134, 18, 70,\n\t\t4, 214, 208, 181, 66, 141, 105, 79, 168, 90, 121, 199, 89,\n\t\t225, 46, 19, 114, 67, 43, 35, 45, 108, 173, 80, 74, 56, 129,\n\t\t142, 240, 14, 152, 173, 164, 184, 117, 254, 41, 105, 57, 207,\n\t\t118, 157, 199, 220, 249, 39, 57, 187, 64, 156, 180, 226, 197,\n\t\t203, 237, 154, 222, 67, 40, 226, 15, 106, 36, 154, 208, 223,\n\t\t28, 41, 100, 142, 198, 70, 185, 242, 242, 56, 85, 85, 19,\n\t\t39, 84, 16, 165, 148, 91, 73, 61, 20, 163, 150, 242, 249,\n\t\t104, 139, 147, 160, 62, 250, 126, 182, 133, 233, 115, 201,\n\t\t56, 79, 176, 112, 115, 42, 150, 152, 176, 158, 152, 40, 242,\n\t\t224, 25, 189, 65, 169, 32, 13, 137, 81, 62, 126, 12, 12, 25,\n\t\t82, 80, 143, 139, 19, 88, 62, 113, 146, 76, 55, 114, 155,\n\t\t224, 133, 123, 193, 145, 186, 145, 223, 146, 189, 164, 184,\n\t\t235, 172, 132, 138, 91, 238, 146, 179, 236, 226, 83, 57, 39,\n\t\t137, 17, 168, 253, 77, 136, 183, 51, 53, 8, 165, 105, 211,\n\t\t124, 204, 29, 24, 122, 201, 216, 231, 5, 128, 91, 116, 20,\n\t\t101, 90, 113, 79, 195, 181, 80, 175, 170, 57, 230, 103, 196,\n\t\t238, 52, 129, 18, 6, 12, 84, 35, 212, 247, 161, 4, 134, 46,\n\t\t195, 212, 181, 228, 94, 123, 128, 133, 190, 244, 100, 208,\n\t\t153, 66, 78, 234, 176, 190, 232, 67, 234, 169, 174, 135, 160,\n\t\t42, 201, 46, 122, 130, 224, 162, 114, 69, 199, 42, 234, 51,\n\t\t52, 231, 199, 200, 41, 224, 175, 181, 228, 235, 196, 166,\n\t\t149, 26, 200, 215, 138, 170, 58, 19, 63, 153, 184, 132, 40,\n\t\t161, 200, 133, 85, 44, 138, 50, 222, 19, 97, 34, 75, 231,\n\t\t240, 136, 162, 94, 41, 206, 85, 249, 251, 21, 250, 203, 93,\n\t\t107, 57, 39, 172, 125, 249, 234, 190, 206, 229, 143, 102,\n\t\t56, 43, 230, 86, 54, 29, 123, 241, 144, 156, 116, 182, 162,\n\t\t3, 82, 132, 24, 20, 93, 184, 38, 171, 63, 254, 244, 238, 119,\n\t\t106, 220, 208, 185, 22, 58, 41, 35, 15, 125, 116, 0, 179,\n\t\t200, 201, 84, 30, 211, 104, 251, 188, 47, 94, 64, 63, 217,\n\t\t115, 58, 16, 253, 2, 14, 50, 77, 72, 3, 179, 212, 153, 123,\n\t\t49, 187, 239, 130, 167, 9, 149, 187, 34, 52, 146, 208, 18,\n\t\t207, 15, 17, 78, 130, 231, 200, 105, 174, 45, 241, 24, 89,\n\t\t246, 239, 96, 140, 106, 228, 101, 202, 118, 205, 239, 220,\n\t\t199, 157, 20, 242, 211, 230, 156, 199, 60, 164, 220, 251,\n\t\t40, 150, 161, 196, 119, 60, 109, 106, 99, 115, 191, 19, 0,\n\t\t149, 145, 38, 164, 174, 17, 13, 40, 214, 131, 4, 215, 30,\n\t\t245, 128, 195, 31, 135, 70, 203, 36, 132, 53, 224, 200, 207,\n\t\t148, 125, 17, 34, 175, 136, 6, 76, 56, 19, 16, 2, 120, 50,\n\t\t70, 143, 14, 113, 129, 21, 28, 146, 133, 112, 110, 179, 36,\n\t\t130, 91, 69, 190, 98, 30, 60, 88, 26, 139, 95, 18, 98, 233,\n\t\t93, 8, 98, 148, 62, 139, 51, 235, 178, 240, 119, 113, 250,\n\t\t81, 103, 153, 215, 130, 36, 238, 214, 0, 69, 35, 208, 160,\n\t\t149, 235, 145, 201, 59, 215, 96, 119, 55, 32, 53, 237, 223,\n\t\t17, 37, 7, 2, 232, 105, 17, 152, 87, 27, 19, 154, 67, 180,\n\t\t187, 186, 198, 137, 169, 39, 209, 163, 5, 235, 201, 60, 97,\n\t\t1, 77, 166, 96, 87, 249, 217, 220, 207, 162, 225, 226, 98,\n\t\t243, 68, 153, 40, 161, 235, 32, 173, 239, 103, 178, 220, 152,\n\t\t90, 46, 23, 219, 187, 24, 243, 69, 214, 148, 95, 211, 182,\n\t\t6, 20, 161, 76, 114, 16, 245, 24, 165, 133, 25, 242, 24, 241,\n\t\t146, 154, 158, 187, 38, 237, 137, 170, 125, 86, 164, 57, 204,\n\t\t207, 138, 124, 105, 160, 4, 52, 189, 56, 78, 146, 137, 2,\n\t\t63, 159, 209, 123, 221, 210, 110, 116, 72, 80, 154, 70, 62,\n\t\t99, 7, 240, 22, 19, 85, 33, 180, 54, 83, 38, 151, 14, 123,\n\t\t11, 127, 190, 49, 159, 79, 27, 109, 29, 90, 8, 16, 168, 4,\n\t\t129, 103, 88, 9, 47, 84, 57, 179, 254, 132, 86, 39, 40, 124,\n\t\t251, 17, 96, 69, 117, 72, 160, 81, 254, 156, 61, 137, 182,\n\t\t216, 37, 111, 244, 165, 74, 28, 235, 227, 147, 150, 2, 170,\n\t\t57, 56, 2, 22, 32, 101, 132, 120, 206, 14, 70, 82, 20, 60,\n\t\t231, 221, 124, 109, 47, 208, 16, 180, 112, 78, 71, 155, 202,\n\t\t194, 134, 180, 65, 168, 137, 157, 119, 42, 4, 121, 14, 75,\n\t\t90, 242, 97, 60, 235, 230, 155, 88, 202, 97, 104, 59, 84,\n\t\t180, 57, 218, 122, 181, 33, 38, 28, 28, 154, 176, 200, 232,\n\t\t243, 70, 163, 222, 108, 52, 177, 92, 30, 107, 96, 12, 111,\n\t\t216, 39, 211, 245, 93, 241, 40, 177, 169, 81, 100, 150, 78,\n\t\t22, 176, 198, 76, 164, 148, 190, 61, 20, 149, 234, 7, 249,\n\t\t251, 191, 158, 150, 63, 106, 140, 131, 239, 200, 170, 229,\n\t\t54, 237, 3, 255, 253, 30, 209, 21, 175, 207, 137, 252, 2,\n\t\t7, 135, 235, 28, 199, 30, 60, 32, 238, 229, 65, 64, 223, 62,\n\t\t155, 185, 113, 171, 21, 219, 53, 161, 120, 82, 188, 3, 97,\n\t\t109, 191, 123, 231, 204, 169, 91, 106, 96, 176, 183, 127,\n\t\t120, 168, 79, 168, 81, 14, 29, 162, 92, 91, 212, 192, 225,\n\t\t55, 222, 190, 55, 66, 121, 79, 19, 40, 65, 104, 145, 174,\n\t\t225, 9, 14, 248, 250, 206, 3, 161, 44, 152, 88, 2, 13, 133,\n\t\t216, 165, 244, 129, 202, 13, 246, 132, 200, 69, 0, 167, 108,\n\t\t91, 171, 141, 126, 168, 55, 253, 5, 190, 105, 229, 24, 157,\n\t\t127, 152, 218, 122, 144, 166, 126, 191, 224, 229, 23, 15,\n\t\t131, 3, 212, 216, 185, 39, 34, 70, 25, 177, 119, 169, 190,\n\t\t112, 145, 141, 68, 215, 23, 161, 26, 88, 240, 68, 57, 175,\n\t\t212, 189, 228, 112, 154, 178, 61, 108, 51, 160, 152, 67, 134,\n\t\t209, 149, 235, 2, 37, 93, 168, 230, 150, 40, 5, 23, 65, 11,\n\t\t230, 225, 130, 229, 166, 79, 3, 223, 150, 33, 118, 106, 52,\n\t\t163, 171, 106, 121, 231, 44, 168, 171, 192, 220, 23, 182,\n\t\t254, 56, 21, 170, 145, 46, 208, 40, 127, 62, 147, 191, 140,\n\t\t107, 167, 241, 115, 201, 214, 89, 17, 178, 22, 23, 157, 156,\n\t\t153, 77, 202, 246, 73, 231, 146, 139, 134, 213, 117, 71, 109,\n\t\t139, 214, 82, 111, 242, 141, 78, 148, 172, 212, 177, 143,\n\t\t152, 78, 84, 176, 110, 101, 160, 68, 124, 199, 58, 1, 236,\n\t\t63, 167, 85, 127, 133, 8, 40, 214, 117, 128, 83, 0, 123, 25,\n\t\t167, 120, 122, 156, 245, 233, 56, 190, 250, 161, 150, 75,\n\t\t63, 179, 155, 229, 50, 155, 13, 113, 154, 57, 93, 98, 228,\n\t\t20, 53, 158, 136, 158, 107, 207, 236, 253, 58, 17, 4, 67,\n\t\t229, 73, 4, 98, 68, 16, 117, 121, 148, 121, 86, 217, 77, 76,\n\t\t128, 37, 60, 195, 86, 10, 127, 166, 72, 249, 165, 156, 80,\n\t\t88, 110, 171, 146, 226, 50, 95, 233, 203, 155, 179, 0, 36,\n\t\t97, 153, 253, 26, 54, 127, 163, 89, 91, 102, 40, 110, 62,\n\t\t220, 83, 236, 82, 200, 98, 213, 249, 204, 9, 126, 191, 197,\n\t\t224, 18, 229, 182, 76, 87, 85, 22, 179, 42, 162, 155, 34,\n\t\t185, 86, 91, 92, 148, 243, 235, 223, 119, 26, 253, 83, 207,\n\t\t161, 124, 193, 242, 164, 239, 236, 110, 52, 14, 3, 43, 216,\n\t\t61, 192, 95, 5, 29, 81, 66, 127, 58, 214, 143, 139, 102, 112,\n\t\t47, 39, 33, 27, 152, 241, 196, 109, 143, 243, 45, 44, 224,\n\t\t173, 212, 254, 150, 67, 131, 255, 109, 166, 177, 107, 103,\n\t\t82, 33, 53, 10, 84, 205, 143, 3, 244, 88, 189, 203, 173, 92,\n\t\t90, 190, 20, 215, 130, 69, 158, 91, 168, 100, 121, 70, 5,\n\t\t176, 71, 193, 107, 1, 151, 114, 128, 230, 83, 163, 91, 114,\n\t\t215, 219, 236, 84, 242, 218, 125, 187, 219, 148, 236, 48,\n\t\t187, 55, 154, 145, 138, 53, 199, 140, 201, 26, 136, 192, 20,\n\t\t225, 20, 241, 181, 167, 6, 172, 109, 197, 201, 238, 165, 171,\n\t\t209, 80, 189, 204, 186, 15, 230, 161, 77, 106, 63, 162, 7,\n\t\t156, 36, 189, 160, 122, 112, 246, 230, 177, 117, 139, 176,\n\t\t134, 201, 87, 170, 206, 91, 221, 110, 189, 0, 24, 169, 16,\n\t\t61, 97, 81, 101, 72, 171, 198, 247, 150, 146, 128, 253, 110,\n\t\t241, 64, 178, 158, 15, 85, 122, 46, 202, 12, 1, 248, 12, 20,\n\t\t145, 124, 151, 71, 188, 19, 11, 4, 185, 179, 14, 62, 229,\n\t\t166, 90, 113, 153, 118, 114, 87, 86, 35, 102, 73, 8, 43, 160,\n\t\t156, 54, 42, 3, 21, 20, 241, 16, 85, 155, 9, 210, 181, 98,\n\t\t81, 24, 40, 128, 174, 88, 142, 159, 159, 145, 221, 10, 20,\n\t\t213, 32, 48, 86, 35, 253, 171, 117, 33, 177, 111, 62, 15,\n\t\t220, 206, 128, 239, 207, 165, 230, 181, 185, 238, 85, 149,\n\t\t30, 131, 192, 141, 125, 65, 3, 162, 41, 116, 0, 105, 57, 76,\n\t\t222, 190, 220, 185, 92, 197, 213, 78, 28, 45, 14, 213, 107,\n\t\t120, 66, 163, 123, 172, 165, 74, 228, 74, 147, 9, 62, 31,\n\t\t121, 146, 90, 249, 102, 146, 80, 191, 174, 246, 68, 73, 30,\n\t\t216, 208, 87, 174, 250, 70, 206, 37, 23, 166, 138, 86, 230,\n\t\t245, 128, 70, 182, 98, 22, 74, 227, 188, 103, 167, 171, 59,\n\t\t73, 30, 156, 222, 240, 6, 89, 177, 138, 43, 14, 128, 76, 74,\n\t\t221, 28, 36, 87, 87, 1, 199, 198, 214, 123, 107, 219, 102,\n\t\t115, 211, 220, 71, 99, 85, 157, 148, 62, 98, 234, 90, 12,\n\t\t113, 217, 233, 103, 199, 222, 189, 195, 105, 21, 187, 69,\n\t\t84, 191, 178, 249, 64, 32, 92, 18, 8, 254, 68, 92, 37, 239,\n\t\t131, 86, 87, 36, 217, 201, 150, 152, 179, 116, 52, 72, 159,\n\t\t50, 154, 39, 213, 204, 198, 70, 135, 92, 192, 156, 116, 59,\n\t\t76, 144, 43, 91, 57, 243, 132, 207, 204, 131, 39, 189, 190,\n\t\t242, 239, 93, 219, 154, 206, 226, 229, 199, 202, 102, 48,\n\t\t139, 172, 136, 144, 248, 174, 198, 116, 85, 143, 109, 97,\n\t\t45, 162, 143, 5, 67, 43, 23, 89, 14, 62, 209, 172, 54, 23,\n\t\t95, 218, 188, 6, 86, 250, 176, 27, 55, 194, 112, 29, 16, 210,\n\t\t76, 31, 223, 99, 141, 208, 92, 47, 138, 238, 218, 126, 146,\n\t\t185, 11, 32, 152, 197, 241, 41, 66, 134, 0, 44, 199, 79, 184,\n\t\t225, 158, 188, 20, 195, 131, 232, 225, 109, 234, 203, 205,\n\t\t167, 204, 172, 66, 214, 191, 84, 225, 1, 77, 199, 215, 115,\n\t\t225, 115, 110, 63, 54, 200, 125, 101, 30, 88, 179, 100, 190,\n\t\t146, 156, 86, 159, 254, 186, 43, 209, 153, 228, 203, 155,\n\t\t81, 186, 168, 185, 81, 103, 95, 61, 64, 139, 124, 114, 243,\n\t\t219, 167, 93, 174, 26, 32, 57, 112, 255, 212, 153, 94, 109,\n\t\t27, 182, 84, 200, 4, 166, 48, 27, 182, 172, 119, 126, 56,\n\t\t166, 192, 3, 139, 203, 183, 175, 121, 224, 160, 231, 218,\n\t\t134, 187, 163, 209, 160, 24, 158, 200, 167, 131, 21, 71, 220,\n\t\t24, 135, 35, 161, 137, 6, 85, 240, 96, 82, 61, 20, 120, 194,\n\t\t152, 201, 139, 10, 45, 148, 137, 11, 108, 23, 127, 32, 188,\n\t\t11, 137, 82, 186, 113, 34, 52, 29, 29, 104, 130, 191, 77,\n\t\t15, 120, 145, 237, 145, 104, 140, 233, 42, 98, 194, 41, 44,\n\t\t101, 161, 9, 68, 194, 32, 119, 165, 234, 210, 221, 121, 194,\n\t\t203, 148, 8, 109, 247, 86, 9, 169, 15, 220, 208, 76, 213,\n\t\t131, 102, 150, 216, 80, 15, 208, 212, 209, 214, 137, 223,\n\t\t49, 31, 55, 38, 50, 152, 243, 183, 41, 127, 177, 105, 245,\n\t\t147, 195, 252, 130, 202, 96, 236, 222, 178, 81, 108, 157,\n\t\t142, 85, 201, 229, 167, 93, 0, 65, 140, 12, 56, 207, 14, 75,\n\t\t249, 37, 105, 129, 36, 151, 55, 166, 91, 99, 237, 113, 20,\n\t\t250, 56, 137, 110, 51, 143, 246, 59, 226, 190, 173, 23, 95,\n\t\t213, 118, 90, 32, 45, 197, 79, 238, 194, 77, 129, 29, 33,\n\t\t19, 47, 90, 199, 254, 191, 206, 161, 252, 247, 186, 225, 214,\n\t\t130, 58, 243, 43, 5, 184, 18, 163, 178, 124, 232, 177, 82,\n\t\t146, 28, 24, 127, 213, 4, 197, 234, 41, 14, 29, 190, 78, 231,\n\t\t78, 171, 158, 103, 21, 49, 33, 154, 240, 8, 103, 2, 148, 192,\n\t\t138, 49, 99, 17, 242, 169, 88, 64, 156, 60, 207, 39, 250,\n\t\t149, 229, 27, 57, 75, 172, 26, 110, 79, 212, 227, 151, 136,\n\t\t29, 170, 45, 248, 143, 127, 237, 192, 88, 126, 137, 161, 205,\n\t\t159, 61, 142, 11, 212, 168, 125, 174, 104, 83, 92, 29, 85,\n\t\t151, 209, 40, 132, 6, 44, 138, 147, 137, 96, 255, 251, 112,\n\t\t174, 6, 233, 83, 44, 95, 208, 173, 144, 156, 115, 235, 117,\n\t\t251, 248, 69, 170, 137, 46, 73, 74, 180, 206, 47, 235, 2,\n\t\t191, 200, 234, 192, 216, 135, 68, 208, 36, 254, 173, 90, 10,\n\t\t11, 191, 208, 44, 155, 51, 167, 74, 196, 63, 188, 220, 40,\n\t\t176, 235, 133, 92, 37, 179, 105, 31, 45, 190, 242, 103, 55,\n\t\t38, 125, 189, 103, 165, 173, 69, 237, 71, 53, 253, 175, 52,\n\t\t23, 165, 27, 218, 215, 51, 232, 112, 205, 55, 34, 131, 25,\n\t\t204, 163, 1, 159, 109, 170, 148, 107, 185, 175, 202, 218,\n\t\t20, 85, 177, 153, 88, 155, 134, 20, 184, 226, 195, 31, 87,\n\t\t11, 37, 44, 223, 38, 42, 94, 57, 230, 246, 244, 100, 127,\n\t\t156, 202, 182, 38, 145, 242, 57, 47, 76, 237, 115, 26, 213,\n\t\t179, 158, 205, 183, 108, 251, 75, 179, 229, 203, 225, 199,\n\t\t12, 116, 107, 246, 86, 31, 215, 1, 245, 51, 150, 107, 38,\n\t\t215, 93, 72, 227, 127, 171, 116, 82, 239, 186, 165, 234, 126,\n\t\t97, 78, 102, 143, 42, 45, 229, 79, 69, 91, 166, 78, 135, 117,\n\t\t70, 235, 117, 115, 218, 220, 174, 35, 72, 174, 183, 210, 22,\n\t\t195, 155, 212, 98, 65, 226, 12, 192, 233, 137, 228, 131, 152,\n\t\t250, 189, 51, 178, 172, 230, 130, 196, 157, 60, 0, 8, 68,\n\t\t33, 217, 1, 252, 179, 11, 242, 96, 176, 81, 229, 9, 37, 49,\n\t\t57, 138, 182, 22, 252, 59, 54, 19, 85, 141, 227, 139, 81,\n\t\t49, 178, 147, 228, 234, 113, 35, 5, 49, 117, 173, 196, 238,\n\t\t195, 118, 218, 239, 48, 129, 38, 140, 239, 125, 152, 34, 177,\n\t\t181, 70, 160, 127, 158, 179, 202, 144, 4, 190, 66, 46, 94,\n\t\t126, 13, 20, 113, 83, 46, 162, 223, 130, 130, 5, 26, 39, 140,\n\t\t234, 69, 47, 200, 8, 48, 104, 28, 183, 206, 116, 236, 60,\n\t\t54, 136, 253, 169, 235, 185, 60, 6, 58, 24, 124, 211, 220,\n\t\t163, 113, 209, 197, 77, 231, 239, 173, 255, 76, 99, 31, 231,\n\t\t188, 161, 145, 61, 225, 175, 157, 174, 51, 92, 106, 95, 206,\n\t\t145, 243, 60, 24, 214, 3, 183, 253, 193, 150, 92, 173, 104,\n\t\t33, 19, 104, 236, 69, 142, 68, 116, 75, 199, 193, 194, 53,\n\t\t79, 196, 0, 26, 23, 220, 247, 248, 47, 107, 133, 30, 126,\n\t\t186, 109, 190, 230, 176, 237, 219, 251, 154, 106, 243, 74,\n\t\t70, 243, 84, 167, 109, 113, 217, 214, 91, 47, 61, 191, 27,\n\t\t126, 183, 161, 222, 43, 212, 249, 6, 95, 117, 156, 6, 82,\n\t\t71, 11, 92, 9, 4, 90, 65, 139, 11, 160, 143, 75, 118, 250,\n\t\t44, 100, 169, 76, 2, 148, 190, 100, 140, 89, 122, 237, 172,\n\t\t147, 252, 199, 146, 164, 34, 61, 208, 94, 6, 168, 199, 210,\n\t\t166, 6, 232, 83, 218, 226, 199, 123, 52, 28, 212, 156, 196,\n\t\t76, 239, 101, 45, 161, 5, 103, 84, 75, 2, 26, 61, 71, 242,\n\t\t185, 71, 76, 57, 55, 90, 3, 186, 162, 177, 101, 47, 150, 218,\n\t\t208, 156, 69, 29, 164, 87, 5, 80, 207, 110, 98, 152, 186,\n\t\t231, 149, 188, 36, 212, 21, 64, 187, 34, 76, 128, 223, 241,\n\t\t62, 100, 111, 192, 31, 235, 144, 246, 82, 47, 147, 239, 78,\n\t\t152, 118, 186, 41, 43, 129, 59, 193, 44, 161, 177, 24, 58,\n\t\t126, 163, 169, 133, 252, 132, 14, 242, 189, 38, 150, 245,\n\t\t182, 112, 131, 140, 64, 8, 228, 248, 243, 72, 122, 56, 2,\n\t\t239, 137, 189, 95, 183, 228, 119, 197, 40, 174, 5, 177, 71,\n\t\t95, 186, 41, 43, 163, 37, 9, 221, 240, 123, 128, 194, 185,\n\t\t50, 18, 242, 113, 92, 137, 175, 169, 84, 223, 217, 48, 111,\n\t\t250, 35, 172, 117, 32, 115, 22, 215, 217, 35, 75, 145, 7,\n\t\t57, 240, 193, 149, 18, 12, 104, 177, 95, 243, 48, 133, 194,\n\t\t19, 205, 36, 51, 206, 53, 202, 10, 211, 150, 159, 17, 116,\n\t\t151, 232, 110, 146, 17, 92, 72, 37, 55, 227, 66, 208, 140,\n\t\t17, 246, 75, 194, 183, 154, 53, 150, 242, 22, 215, 100, 174,\n\t\t156, 131, 134, 29, 218, 7, 59, 240, 217, 18, 244, 176, 188,\n\t\t163, 61, 143, 46, 22, 168, 237, 122, 118, 165, 71, 63, 216,\n\t\t76, 82, 29, 241, 247, 206, 45, 235, 155, 114, 107, 230, 134,\n\t\t89, 106, 241, 2, 247, 50, 207, 177, 152, 228, 60, 246, 245,\n\t\t134, 6, 25, 79, 97, 78, 93, 221, 5, 228, 212, 228, 87, 6,\n\t\t238, 86, 70, 179, 158, 156, 227, 62, 78, 24, 81, 109, 121,\n\t\t108, 204, 170, 156, 34, 246, 246, 17, 42, 174, 66, 102, 153,\n\t\t49, 1, 22, 127, 204, 157, 171, 133, 103, 156, 172, 85, 153,\n\t\t5, 117, 35, 116, 53, 243, 206, 138, 161, 242, 238, 108, 91,\n\t\t90, 30, 249, 41, 228, 36, 163, 180, 238, 101, 114, 208, 149,\n\t\t39, 250, 145, 103, 161, 67, 30, 38, 167, 58, 72, 200, 243,\n\t\t1, 53, 18, 192, 98, 251, 213, 255, 126, 249, 139, 34, 239,\n\t\t10, 71, 18, 135, 253, 34, 217, 172, 149, 164, 101, 191, 193,\n\t\t45, 213, 119, 115, 237, 51, 101, 144, 82, 174, 13, 213, 158,\n\t\t97, 66, 178, 67, 153, 141, 180, 218, 238, 7, 126, 112, 148,\n\t\t131, 181, 49, 9, 14, 226, 90, 37, 79, 124, 11, 27, 59, 24,\n\t\t153, 138, 213, 108, 130, 70, 230, 208, 195, 238, 104, 79,\n\t\t148, 6, 151, 203, 77, 28, 7, 165, 37, 212, 31, 22, 44, 209,\n\t\t216, 88, 48, 136, 175, 218, 248, 179, 20, 180, 182, 4, 216,\n\t\t188, 137, 55, 236, 203, 36, 17, 133, 125, 105, 135, 120, 59,\n\t\t103, 0, 159, 240, 10, 190, 221, 77, 210, 51, 206, 255, 202,\n\t\t243, 252, 174, 238, 54, 89, 251, 212, 48, 168, 194, 80, 93,\n\t\t10, 45, 69, 227, 192, 191, 65, 216, 53, 64, 51, 38, 79, 110,\n\t\t223, 196, 102, 146, 137, 178, 91, 83, 193, 183, 233, 144,\n\t\t154, 17, 74, 62, 106, 37, 87, 2, 29, 248, 42, 107, 2, 111,\n\t\t174, 150, 20, 141, 0, 125, 196, 23, 229, 113, 77, 218, 170,\n\t\t123, 177, 63, 122, 109, 163, 126, 190, 104, 114, 204, 197,\n\t\t213, 215, 28, 33, 89, 168, 7, 48, 167, 106, 250, 14, 39, 70,\n\t\t254, 139, 45, 235, 115, 216, 15, 188, 38, 200, 85, 69, 207,\n\t\t252, 253, 150, 93, 160, 49, 48, 9, 21, 209, 214, 144, 37,\n\t\t6, 10, 20, 23, 74, 30, 251, 130, 107, 69, 94, 112, 240, 100,\n\t\t77, 184, 28, 95, 185, 82, 73, 18, 156, 212, 207, 151, 156,\n\t\t172, 17, 157, 158, 177, 26, 160, 74, 201, 70, 86, 164, 229,\n\t\t178, 95, 159, 240, 43, 244, 155, 132, 22, 196, 94, 237, 247,\n\t\t209, 194, 88, 221, 76, 159, 190, 173, 90, 46, 122, 231, 236,\n\t\t128, 188, 80, 155, 14, 143, 119, 71, 31, 90, 6, 124, 54, 23,\n\t\t23, 55, 120, 169, 40, 75, 145, 227, 59, 25, 84, 48, 87, 31,\n\t\t2, 38, 88, 156, 203, 15, 114, 22, 241, 91, 103, 159, 214,\n\t\t119, 21, 135, 77, 232, 145, 113, 243, 52, 114, 100, 216, 95,\n\t\t155, 251, 177, 112, 125, 61, 8, 210, 238, 206, 39, 220, 141,\n\t\t126, 124, 66, 48, 150, 142, 214, 17, 151, 126, 126, 98, 124,\n\t\t101, 177, 88, 127, 246, 127, 25, 116, 159, 80, 138, 90, 190,\n\t\t24, 109, 113, 246, 239, 202, 232, 242, 10, 14, 111, 144, 228,\n\t\t247, 235, 41, 14, 32, 80, 168, 118, 194, 196, 229, 244, 204,\n\t\t203, 61, 14, 91, 23, 216, 171, 154, 195, 122, 152, 199, 47,\n\t\t202, 61, 136, 51, 62, 165, 211, 183, 253, 188, 168, 46, 10,\n\t\t68, 149, 7, 174, 141, 220, 22, 132, 22, 57, 116, 128, 231,\n\t\t165, 129, 128, 109, 76, 141, 72, 151, 66, 88, 239, 99, 227,\n\t\t105, 141, 69, 72, 109, 204, 91, 29, 188, 209, 189, 162, 190,\n\t\t1, 195, 194, 86, 52, 244, 83, 109, 83, 68, 118, 215, 54, 43,\n\t\t130, 169, 33, 158, 100, 255, 85, 60, 201, 207, 223, 30, 234,\n\t\t74, 70, 243, 112, 11, 117, 152, 125, 136, 29, 99, 218, 104,\n\t\t58, 24, 161, 126, 87, 66, 8, 59, 39, 179, 131, 145, 230, 64,\n\t\t117, 81, 3, 217, 203, 68, 233, 164, 5, 226, 23, 63, 157, 69,\n\t\t92, 6, 165, 106, 72, 248, 141, 177, 146, 67, 183, 240, 33,\n\t\t244, 205, 229, 74, 247, 127, 90, 76, 14, 101, 75, 130, 131,\n\t\t145, 203, 116, 233, 107, 9, 117, 52, 66, 11, 40, 92, 203,\n\t\t79, 236, 97, 112, 179, 32, 254, 10, 42, 247, 127, 25, 22,\n\t\t179, 210, 10, 59, 133, 17, 45, 174, 151, 198, 10, 32, 223,\n\t\t57, 237, 244, 61, 103, 54, 225, 55, 228, 18, 13, 165, 152,\n\t\t166, 148, 176, 34, 157, 157, 94, 110, 159, 148, 118, 64, 189,\n\t\t111, 214, 41, 81, 174, 61, 49, 75, 239, 155, 4, 30, 12, 137,\n\t\t192, 126, 23, 162, 175, 254, 189, 245, 76, 187, 255, 188,\n\t\t166, 121, 110, 51, 153, 212, 156, 119, 218, 106, 205, 158,\n\t\t72, 156, 213, 192, 239, 148, 56, 60, 111, 171, 67, 106, 243,\n\t\t199, 54, 22, 160, 202, 91, 107, 175, 109, 63, 212, 37, 168,\n\t\t210, 210, 169, 178, 118, 164, 220, 217, 24, 46, 147, 55, 173,\n\t\t198, 178, 161, 147, 212, 218, 15, 10, 66, 73, 102, 227, 170,\n\t\t4, 182, 40, 183, 116, 126, 141, 204, 52, 143, 147, 215, 239,\n\t\t135, 162, 185, 214, 206, 122, 237, 181, 181, 237, 126, 225,\n\t\t219, 18, 83, 115, 103, 176, 94, 140, 57, 228, 194, 210, 98,\n\t\t188, 78, 216, 32, 76, 55, 152, 251, 40, 134, 145, 252, 16,\n\t\t4, 142, 21, 214, 157, 45, 22, 45, 149, 222, 5, 153, 82, 21,\n\t\t58, 183, 171, 186, 211, 159, 33, 229, 199, 76, 124, 34, 236,\n\t\t116, 69, 70, 157, 197, 132, 54, 114, 207, 25, 79, 243, 90,\n\t\t142, 55, 156, 119, 80, 94, 69, 165, 71, 68, 84, 134, 146,\n\t\t44, 6, 138, 90, 73, 132, 96, 195, 250, 21, 38, 221, 114, 50,\n\t\t253, 177, 19, 245, 131, 236, 135, 9, 224, 140, 123, 149, 108,\n\t\t64, 68, 206, 213, 13, 174, 126, 204, 72, 183, 182, 29, 211,\n\t\t160, 114, 195, 6, 118, 72, 244, 224, 208, 51, 37, 229, 241,\n\t\t108, 67, 72, 13, 207, 7, 151, 110, 159, 189, 90, 129, 14,\n\t\t201, 35, 2, 72, 214, 190, 100, 115, 127, 203, 166, 254, 35,\n\t\t84, 137, 42, 202, 128, 168, 167, 49, 255, 4, 110, 144, 182,\n\t\t103, 181, 200, 209, 45, 123, 93, 73, 147, 231, 1, 228, 202,\n\t\t195, 84, 209, 127, 225, 197, 173, 194, 194, 83, 227, 227,\n\t\t172, 23, 14, 171, 102, 35, 141, 127, 172, 40, 24, 165, 164,\n\t\t8, 215, 81, 6, 228, 180, 126, 127, 36, 183, 223, 113, 110,\n\t\t48, 254, 63, 202, 48, 33, 187, 93, 213, 177, 122, 26, 128,\n\t\t44, 201, 145, 221, 133, 184, 79, 71, 66, 65, 190, 218, 135,\n\t\t19, 93, 236, 220, 144, 146, 86, 130, 160, 8, 115, 67, 12,\n\t\t69, 53, 45, 212, 217, 245, 139, 145, 84, 121, 229, 14, 15,\n\t\t175, 30, 189, 190, 182, 38, 110, 171, 250, 78, 221, 42, 53,\n\t\t102, 97, 120, 133, 90, 254, 69, 249, 191, 64, 249, 22, 120,\n\t\t233, 114, 173, 141, 89, 199, 129, 107, 85, 181, 234, 211,\n\t\t12, 44, 79, 249, 164, 77, 41, 232, 234, 73, 168, 123, 54,\n\t\t126, 232, 126, 91, 183, 166, 154, 76, 178, 194, 178, 94, 148,\n\t\t109, 0, 30, 11, 3, 150, 48, 140, 80, 59, 178, 231, 135, 83,\n\t\t30, 198, 232, 13, 210, 243, 111, 115, 147, 98, 172, 79, 199,\n\t\t6, 246, 164, 34, 179, 131, 65, 108, 24, 233, 54, 151, 44,\n\t\t138, 233, 155, 120, 66, 72, 128, 87, 188, 2, 227, 239, 232,\n\t\t212, 3, 41, 213, 161, 174, 250, 255, 224, 45, 188, 150, 254,\n\t\t163, 55, 255, 232, 119, 191, 247, 159, 12, 44, 73, 94, 150,\n\t\t115, 31, 33, 254, 175, 197, 150, 248, 61, 248, 111, 39, 253,\n\t\t38, 43, 53, 25, 155, 162, 155, 100, 116, 204, 177, 241, 180,\n\t\t223, 35, 121, 240, 188, 60, 213, 228, 143, 171, 192, 79, 109,\n\t\t27, 219, 54, 140, 51, 149, 151, 219, 72, 240, 236, 148, 188,\n\t\t153, 51, 247, 154, 217, 242, 82, 142, 192, 36, 219, 95, 248,\n\t\t234, 180, 52, 67, 21, 220, 152, 252, 2, 55, 187, 127, 244,\n\t\t124, 143, 160, 231, 152, 250, 191, 2, 94, 44, 168, 134, 242,\n\t\t20, 138, 188, 91, 32, 16, 237, 154, 47, 155, 143, 44, 92,\n\t\t201, 137, 56, 52, 54, 197, 198, 95, 41, 249, 12, 45, 208,\n\t\t44, 27, 241, 139, 228, 251, 12, 166, 216, 198, 14, 69, 172,\n\t\t228, 0, 75, 90, 141, 150, 180, 58, 38, 43, 43, 38, 136, 61,\n\t\t204, 182, 98, 38, 40, 162, 197, 8, 207, 8, 7, 106, 76, 26,\n\t\t35, 25, 33, 28, 98, 83, 40, 50, 10, 133, 141, 144, 145, 64,\n\t\t52, 187, 83, 33, 243, 40, 103, 36, 53, 247, 16, 250, 25, 43,\n\t\t133, 114, 129, 66, 129, 248, 131, 48, 214, 218, 101, 37, 131,\n\t\t128, 11, 25, 37, 141, 145, 250, 48, 77, 18, 232, 163, 227,\n\t\t73, 60, 194, 1, 32, 165, 0, 30, 179, 25, 44, 110, 146, 28,\n\t\t85, 118, 128, 52, 253, 15, 253, 69, 168, 222, 129, 183, 189,\n\t\t0, 80, 16, 245, 50, 247, 71, 18, 227, 98, 43, 27, 113, 123,\n\t\t249, 149, 214, 27, 48, 149, 120, 71, 248, 19, 46, 96, 42,\n\t\t85, 244, 158, 112, 164, 93, 144, 65, 96, 42, 176, 88, 45,\n\t\t151, 210, 234, 61, 231, 245, 205, 217, 85, 123, 112, 100,\n\t\t133, 48, 126, 87, 196, 44, 148, 42, 130, 89, 20, 216, 165,\n\t\t191, 115, 135, 141, 107, 211, 216, 57, 142, 218, 218, 55,\n\t\t111, 28, 28, 187, 38, 58, 11, 127, 169, 157, 11, 62, 211,\n\t\t242, 114, 183, 160, 205, 220, 45, 112, 151, 151, 7, 119, 239,\n\t\t54, 183, 69, 165, 124, 8, 129, 84, 16, 83, 40, 177, 177, 20,\n\t\t138, 155, 228, 5, 217, 76, 38, 145, 31, 123, 215, 149, 58,\n\t\t131, 225, 169, 175, 132, 221, 189, 187, 26, 119, 151, 122,\n\t\t245, 40, 102, 189, 139, 169, 158, 96, 239, 236, 180, 107,\n\t\t234, 147, 212, 245, 218, 64, 143, 244, 177, 207, 139, 181,\n\t\t41, 255, 196, 68, 84, 252, 179, 28, 181, 150, 163, 43, 45,\n\t\t211, 235, 202, 74, 147, 3, 124, 245, 95, 42, 34, 98, 254,\n\t\t73, 209, 150, 220, 25, 79, 18, 163, 183, 68, 10, 218, 9, 193,\n\t\t77, 24, 5, 36, 7, 206, 96, 217, 35, 235, 11, 64, 92, 248,\n\t\t8, 84, 137, 1, 48, 131, 204, 42, 151, 217, 133, 170, 30, 3,\n\t\t116, 18, 192, 171, 105, 11, 3, 177, 5, 121, 141, 187, 119,\n\t\t10, 35, 72, 243, 167, 22, 175, 36, 69, 8, 119, 118, 47, 204,\n\t\t43, 192, 202, 22, 117, 139, 253, 196, 221, 89, 23, 45, 90,\n\t\t119, 241, 212, 249, 161, 129, 11, 187, 179, 179, 199, 66,\n\t\t212, 175, 173, 89, 2, 137, 71, 4, 20, 113, 100, 221, 118,\n\t\t130, 155, 80, 71, 104, 195, 91, 177, 49, 141, 88, 68, 38,\n\t\t14, 223, 246, 146, 215, 77, 216, 126, 95, 174, 192, 99, 37,\n\t\t237, 74, 28, 78, 242, 251, 41, 62, 226, 60, 72, 130, 197,\n\t\t43, 219, 181, 21, 255, 94, 189, 39, 249, 161, 48, 53, 21,\n\t\t103, 195, 197, 98, 255, 101, 96, 249, 145, 31, 59, 59, 159,\n\t\t170, 242, 203, 107, 171, 14, 79, 89, 242, 223, 82, 10, 69,\n\t\t158, 55, 141, 221, 120, 13, 136, 240, 172, 245, 100, 156,\n\t\t37, 149, 226, 91, 9, 90, 108, 185, 14, 75, 42, 61, 203, 240,\n\t\t172, 93, 166, 106, 96, 149, 249, 99, 181, 24, 111, 140, 22,\n\t\t235, 95, 198, 106, 216, 171, 72, 192, 218, 241, 50, 188, 29,\n\t\t155, 128, 39, 200, 8, 209, 131, 216, 166, 24, 156, 5, 223,\n\t\t138, 15, 131, 126, 22, 92, 76, 19, 22, 180, 211, 121, 166,\n\t\t178, 187, 128, 218, 237, 94, 183, 206, 12, 155, 143, 138,\n\t\t187, 155, 90, 176, 155, 52, 22, 225, 168, 11, 71, 186, 134,\n\t\t0, 201, 220, 5, 62, 184, 191, 6, 139, 12, 199, 102, 79, 129,\n\t\t135, 45, 156, 78, 246, 52, 64, 240, 245, 217, 244, 249, 236,\n\t\t97, 246, 99, 179, 192, 249, 244, 217, 83, 54, 43, 47, 126,\n\t\t34, 80, 200, 53, 249, 193, 65, 185, 206, 217, 227, 117, 227,\n\t\t179, 31, 1, 124, 161, 109, 66, 23, 144, 46, 92, 21, 176, 5,\n\t\t88, 75, 110, 104, 64, 170, 205, 182, 170, 39, 42, 213, 83,\n\t\t227, 17, 17, 137, 197, 41, 24, 18, 28, 62, 242, 65, 235, 232,\n\t\t207, 108, 77, 67, 82, 82, 189, 214, 182, 114, 165, 77, 148,\n\t\t194, 69, 100, 209, 24, 19, 10, 148, 177, 30, 221, 79, 174,\n\t\t17, 78, 161, 136, 98, 43, 15, 210, 248, 242, 172, 243, 124,\n\t\t82, 68, 188, 39, 10, 5, 231, 185, 27, 138, 138, 249, 157,\n\t\t48, 198, 149, 103, 221, 73, 93, 9, 56, 167, 124, 90, 228,\n\t\t211, 202, 162, 87, 226, 111, 48, 135, 2, 21, 232, 211, 179,\n\t\t52, 105, 207, 182, 75, 108, 150, 34, 55, 197, 179, 127, 217,\n\t\t44, 214, 142, 148, 51, 146, 220, 80, 0, 10, 94, 8, 26, 21,\n\t\t8, 136, 7, 63, 69, 85, 80, 48, 175, 75, 161, 74, 49, 166,\n\t\t120, 247, 36, 246, 120, 167, 128, 81, 35, 229, 90, 209, 175,\n\t\t63, 49, 63, 48, 238, 238, 86, 249, 217, 37, 130, 137, 209,\n\t\t37, 164, 49, 18, 140, 151, 104, 65, 157, 23, 31, 174, 51,\n\t\t190, 194, 162, 209, 164, 56, 114, 178, 93, 2, 150, 144, 155,\n\t\t107, 214, 84, 203, 161, 206, 198, 219, 158, 200, 196, 80,\n\t\t62, 105, 140, 52, 100, 4, 240, 195, 81, 104, 67, 93, 221,\n\t\t102, 46, 55, 160, 81, 225, 148, 98, 67, 145, 137, 158, 183,\n\t\t27, 59, 33, 121, 53, 184, 95, 221, 127, 31, 54, 194, 247,\n\t\t251, 11, 10, 108, 233, 176, 211, 124, 26, 54, 112, 191, 42,\n\t\t229, 115, 249, 6, 51, 221, 45, 119, 167, 55, 69, 185, 212,\n\t\t139, 210, 195, 210, 23, 169, 93, 81, 5, 61, 146, 150, 29,\n\t\t214, 204, 109, 239, 55, 152, 195, 51, 148, 131, 138, 69, 184,\n\t\t63, 61, 82, 3, 18, 98, 237, 96, 186, 255, 160, 50, 224, 148,\n\t\t53, 36, 219, 189, 216, 47, 57, 37, 114, 113, 240, 153, 63,\n\t\t194, 254, 56, 19, 188, 56, 178, 83, 57, 195, 109, 141, 170,\n\t\t182, 225, 201, 25, 87, 59, 157, 136, 197, 169, 242, 117, 42,\n\t\t94, 165, 74, 170, 136, 84, 98, 151, 85, 44, 182, 34, 163,\n\t\t215, 134, 184, 196, 19, 142, 99, 9, 96, 92, 230, 46, 162,\n\t\t5, 76, 232, 135, 160, 208, 103, 133, 9, 61, 98, 5, 151, 122,\n\t\t166, 197, 18, 193, 192, 36, 240, 0, 23, 90, 217, 195, 236,\n\t\t29, 52, 118, 227, 198, 152, 108, 236, 210, 37, 155, 244, 219,\n\t\t23, 94, 149, 13, 91, 227, 193, 167, 71, 105, 136, 205, 135,\n\t\t79, 173, 204, 178, 70, 108, 73, 31, 240, 205, 55, 235, 211,\n\t\t214, 159, 61, 19, 81, 65, 26, 64, 135, 80, 150, 4, 41, 131,\n\t\t90, 201, 83, 230, 74, 145, 57, 100, 8, 134, 41, 161, 135,\n\t\t106, 26, 27, 143, 191, 89, 202, 137, 215, 35, 237, 127, 199,\n\t\t195, 195, 189, 168, 18, 129, 132, 10, 162, 219, 170, 135,\n\t\t98, 92, 204, 181, 145, 90, 64, 5, 161, 86, 88, 71, 112, 19,\n\t\t228, 86, 170, 132, 138, 24, 18, 171, 156, 224, 38, 212, 81,\n\t\t96, 95, 36, 51, 139, 234, 30, 115, 83, 85, 13, 86, 144, 35,\n\t\t60, 162, 250, 202, 71, 251, 164, 201, 236, 49, 203, 9, 4,\n\t\t169, 88, 117, 1, 153, 79, 193, 80, 236, 21, 30, 105, 30, 189,\n\t\t110, 242, 80, 1, 123, 184, 245, 86, 133, 78, 247, 108, 151,\n\t\t110, 72, 81, 152, 34, 216, 3, 182, 76, 228, 54, 15, 140, 231,\n\t\t97, 92, 42, 48, 242, 41, 1, 66, 87, 83, 60, 37, 133, 18, 255,\n\t\t204, 243, 215, 174, 114, 217, 108, 35, 44, 70, 128, 207, 117,\n\t\t82, 126, 64, 72, 132, 186, 122, 151, 236, 108, 158, 102, 31,\n\t\t149, 143, 67, 226, 197, 61, 30, 121, 255, 159, 24, 63, 209,\n\t\t254, 97, 87, 125, 166, 199, 119, 2, 191, 229, 183, 121, 33,\n\t\t242, 79, 62, 28, 47, 134, 151, 121, 190, 137, 13, 90, 1, 97,\n\t\t3, 215, 226, 73, 237, 133, 150, 225, 107, 103, 144, 108, 130,\n\t\t74, 130, 107, 138, 197, 6, 117, 125, 137, 138, 64, 39, 224,\n\t\t136, 88, 195, 67, 223, 157, 83, 30, 131, 72, 118, 168, 147,\n\t\t56, 37, 72, 140, 156, 65, 114, 156, 155, 39, 88, 131, 161,\n\t\t185, 145, 44, 127, 44, 39, 55, 54, 27, 12, 3, 3, 81, 82, 212,\n\t\t165, 250, 214, 239, 112, 61, 174, 203, 17, 178, 47, 247, 248,\n\t\t113, 131, 193, 30, 115, 172, 142, 177, 71, 34, 7, 0, 139,\n\t\t100, 55, 29, 160, 73, 141, 104, 9, 234, 139, 3, 144, 211,\n\t\t233, 55, 0, 178, 222, 243, 156, 122, 96, 145, 128, 170, 199,\n\t\t36, 40, 26, 190, 227, 79, 52, 142, 86, 88, 12, 215, 84, 128,\n\t\t140, 151, 98, 76, 29, 110, 164, 56, 142, 65, 97, 130, 171,\n\t\t228, 219, 71, 47, 175, 212, 235, 124, 113, 2, 156, 38, 235,\n\t\t93, 154, 200, 232, 187, 67, 10, 148, 44, 189, 47, 53, 143,\n\t\t20, 241, 8, 30, 147, 170, 23, 162, 55, 83, 233, 170, 123,\n\t\t48, 162, 131, 210, 35, 39, 83, 210, 95, 112, 252, 184, 197,\n\t\t50, 146, 204, 232, 33, 170, 48, 165, 65, 247, 192, 12, 115,\n\t\t232, 70, 41, 167, 35, 156, 133, 151, 159, 1, 31, 97, 76, 250,\n\t\t55, 204, 6, 150, 182, 191, 79, 75, 219, 12, 218, 22, 39, 253,\n\t\t225, 9, 182, 79, 74, 14, 3, 63, 42, 178, 95, 93, 117, 249,\n\t\t249, 14, 71, 107, 107, 46, 196, 145, 156, 12, 118, 4, 54,\n\t\t36, 230, 119, 177, 119, 156, 146, 49, 140, 181, 181, 125,\n\t\t244, 52, 50, 100, 167, 118, 176, 187, 206, 236, 163, 97, 138,\n\t\t0, 232, 13, 205, 45, 120, 216, 84, 25, 83, 167, 118, 111,\n\t\t185, 50, 64, 235, 182, 15, 81, 37, 135, 196, 41, 254, 105,\n\t\t54, 251, 170, 52, 167, 52, 127, 113, 242, 121, 229, 228, 15,\n\t\t149, 161, 220, 17, 130, 155, 230, 38, 248, 188, 246, 129,\n\t\t5, 133, 37, 37, 129, 133, 19, 10, 11, 109, 182, 123, 247,\n\t\t138, 137, 198, 29, 69, 56, 98, 241, 232, 111, 219, 77, 31,\n\t\t16, 15, 68, 218, 108, 186, 217, 35, 7, 196, 195, 11, 51, 113,\n\t\t145, 14, 221, 115, 104, 115, 26, 6, 248, 204, 222, 80, 73,\n\t\t174, 195, 23, 247, 43, 130, 128, 47, 91, 11, 39, 233, 135,\n\t\t206, 28, 252, 51, 137, 237, 98, 39, 253, 121, 230, 192, 160,\n\t\t198, 14, 140, 199, 148, 11, 132, 238, 129, 141, 186, 236,\n\t\t34, 1, 34, 102, 246, 129, 13, 11, 1, 179, 238, 53, 12, 24,\n\t\t109, 57, 230, 125, 108, 164, 247, 105, 148, 170, 87, 245,\n\t\t153, 4, 202, 238, 185, 209, 115, 45, 87, 167, 145, 60, 251,\n\t\t188, 101, 153, 64, 209, 215, 186, 126, 242, 93, 65, 24, 174,\n\t\t126, 170, 108, 160, 32, 211, 100, 191, 116, 120, 62, 102,\n\t\t161, 108, 247, 146, 194, 139, 246, 207, 66, 97, 220, 140,\n\t\t92, 113, 52, 9, 85, 58, 34, 69, 110, 253, 224, 200, 163, 160,\n\t\t71, 202, 171, 119, 139, 128, 125, 219, 169, 83, 54, 182, 205,\n\t\t108, 195, 216, 214, 127, 147, 34, 52, 43, 15, 222, 169, 83,\n\t\t205, 108, 208, 123, 183, 126, 68, 17, 240, 134, 182, 46, 136,\n\t\t165, 80, 38, 77, 162, 80, 152, 72, 71, 246, 198, 118, 200,\n\t\t136, 18, 34, 63, 90, 235, 119, 37, 33, 128, 45, 145, 9, 182,\n\t\t66, 38, 41, 92, 37, 110, 209, 140, 3, 63, 156, 29, 231, 89,\n\t\t56, 235, 200, 145, 227, 199, 243, 142, 247, 175, 89, 163,\n\t\t211, 245, 75, 79, 121, 220, 110, 31, 176, 156, 179, 197, 148,\n\t\t54, 88, 176, 36, 112, 73, 213, 222, 203, 113, 84, 198, 105,\n\t\t26, 249, 79, 162, 7, 121, 2, 11, 187, 254, 204, 40, 226, 202,\n\t\t55, 107, 4, 65, 201, 9, 162, 47, 254, 253, 63, 145, 187, 210,\n\t\t14, 73, 36, 110, 208, 74, 125, 198, 167, 20, 175, 10, 10,\n\t\t5, 161, 80, 100, 82, 4, 156, 187, 128, 2, 190, 240, 39, 101,\n\t\t128, 247, 180, 200, 204, 204, 200, 219, 222, 138, 31, 167,\n\t\t35, 85, 84, 144, 116, 213, 36, 221, 104, 29, 201, 208, 231,\n\t\t208, 193, 99, 175, 55, 4, 106, 156, 129, 27, 94, 31, 147,\n\t\t99, 125, 216, 103, 10, 36, 63, 145, 59, 52, 225, 30, 182,\n\t\t197, 210, 74, 138, 2, 76, 206, 36, 33, 211, 206, 176, 162,\n\t\t202, 51, 98, 152, 193, 202, 115, 36, 58, 26, 68, 37, 147,\n\t\t155, 80, 228, 104, 176, 97, 192, 169, 122, 235, 95, 107, 191,\n\t\t38, 239, 39, 153, 237, 114, 91, 131, 227, 47, 210, 224, 176,\n\t\t201, 193, 234, 167, 191, 72, 158, 237, 196, 253, 96, 155,\n\t\t185, 205, 131, 235, 142, 157, 160, 23, 128, 56, 67, 254, 20,\n\t\t228, 135, 132, 204, 93, 178, 240, 220, 144, 16, 175, 36, 126,\n\t\t58, 223, 0, 201, 141, 244, 19, 199, 128, 113, 125, 85, 148,\n\t\t58, 76, 75, 110, 174, 152, 74, 212, 69, 209, 42, 118, 253,\n\t\t241, 148, 248, 15, 235, 212, 224, 128, 224, 73, 34, 222, 210,\n\t\t40, 202, 110, 5, 176, 219, 52, 50, 123, 78, 219, 18, 0, 209,\n\t\t92, 27, 80, 204, 39, 217, 217, 41, 13, 114, 128, 92, 108,\n\t\t97, 224, 81, 201, 34, 117, 138, 79, 138, 114, 198, 210, 28,\n\t\t244, 22, 210, 24, 217, 159, 60, 70, 218, 136, 133, 155, 161,\n\t\t52, 104, 85, 47, 90, 145, 137, 193, 166, 79, 29, 95, 189,\n\t\t147, 192, 69, 70, 88, 156, 19, 24, 21, 143, 175, 112, 132,\n\t\t208, 74, 166, 200, 41, 100, 66, 43, 222, 134, 67, 112, 54,\n\t\t96, 59, 121, 180, 175, 143, 42, 25, 103, 246, 141, 174, 155,\n\t\t19, 169, 56, 100, 204, 42, 160, 113, 161, 25, 178, 138, 227,\n\t\t167, 240, 243, 126, 180, 109, 219, 35, 111, 41, 7, 187, 203,\n\t\t51, 207, 143, 196, 36, 11, 182, 144, 25, 182, 71, 60, 57,\n\t\t18, 27, 131, 130, 255, 176, 8, 216, 29, 242, 74, 202, 90,\n\t\t184, 246, 104, 19, 52, 163, 40, 116, 123, 122, 104, 250, 210,\n\t\t153, 187, 211, 23, 253, 255, 95, 118, 248, 28, 159, 228, 56,\n\t\t215, 181, 167, 41, 199, 11, 31, 147, 207, 195, 104, 12, 207,\n\t\t10, 107, 73, 102, 129, 118, 165, 167, 15, 25, 37, 201, 8,\n\t\t47, 188, 159, 174, 172, 170, 129, 251, 12, 179, 80, 39, 16,\n\t\t230, 10, 25, 225, 61, 151, 124, 10, 51, 86, 111, 246, 0, 17,\n\t\t55, 253, 97, 255, 64, 195, 58, 107, 113, 226, 244, 16, 115,\n\t\t214, 65, 149, 233, 48, 37, 239, 95, 39, 230, 228, 36, 242,\n\t\t108, 11, 40, 59, 225, 141, 204, 97, 104, 49, 184, 3, 168,\n\t\t9, 71, 97, 246, 48, 27, 94, 118, 0, 64, 41, 245, 116, 108,\n\t\t155, 180, 120, 157, 53, 208, 176, 82, 174, 159, 107, 170,\n\t\t140, 126, 53, 239, 75, 226, 114, 33, 156, 95, 172, 78, 27,\n\t\t35, 51, 206, 205, 123, 57, 203, 4, 200, 20, 142, 61, 239,\n\t\t243, 255, 36, 165, 196, 62, 16, 249, 254, 205, 24, 39, 251,\n\t\t191, 148, 88, 54, 14, 94, 118, 134, 26, 224, 8, 0, 44, 151,\n\t\t5, 66, 245, 206, 15, 122, 62, 246, 28, 60, 255, 166, 247,\n\t\t78, 236, 29, 110, 106, 208, 122, 240, 130, 119, 146, 127,\n\t\t36, 11, 244, 110, 168, 58, 146, 76, 84, 67, 203, 185, 242,\n\t\t1, 251, 30, 29, 36, 131, 150, 17, 68, 83, 193, 17, 150, 205,\n\t\t143, 74, 183, 199, 46, 31, 64, 19, 116, 217, 88, 53, 49, 185,\n\t\t234, 8, 16, 139, 71, 225, 88, 92, 174, 186, 131, 103, 138,\n\t\t95, 190, 216, 169, 206, 70, 221, 126, 6, 21, 123, 152, 45,\n\t\t31, 149, 11, 6, 108, 65, 147, 220, 37, 7, 129, 159, 67, 109,\n\t\t108, 155, 193, 80, 217, 209, 144, 37, 224, 20, 186, 180, 212,\n\t\t20, 177, 172, 220, 99, 221, 104, 139, 215, 80, 237, 242, 143,\n\t\t18, 223, 255, 67, 129, 171, 101, 114, 231, 76, 130, 53, 111,\n\t\t48, 172, 70, 149, 210, 26, 102, 238, 101, 121, 213, 177, 18,\n\t\t36, 50, 3, 29, 137, 98, 219, 176, 67, 102, 119, 90, 30, 216,\n\t\t232, 209, 141, 179, 225, 140, 116, 45, 189, 138, 151, 24,\n\t\t49, 210, 236, 2, 242, 82, 75, 55, 133, 242, 98, 217, 54, 219,\n\t\t50, 128, 12, 165, 100, 54, 54, 198, 207, 102, 87, 86, 99,\n\t\t50, 46, 226, 141, 228, 179, 42, 67, 89, 137, 172, 80, 37,\n\t\t206, 6, 62, 70, 164, 30, 203, 229, 85, 242, 10, 123, 114,\n\t\t55, 99, 245, 239, 85, 33, 171, 40, 167, 102, 197, 244, 219,\n\t\t56, 182, 89, 135, 79, 16, 155, 199, 251, 79, 194, 31, 73,\n\t\t99, 164, 135, 179, 52, 127, 96, 191, 141, 77, 231, 108, 195,\n\t\t230, 98, 206, 128, 91, 24, 201, 146, 90, 168, 228, 159, 4,\n\t\t5, 255, 251, 242, 128, 55, 35, 177, 161, 95, 167, 243, 229,\n\t\t110, 219, 33, 93, 158, 190, 2, 155, 213, 14, 253, 192, 91,\n\t\t222, 70, 249, 41, 8, 168, 32, 186, 192, 152, 247, 153, 120,\n\t\t28, 36, 174, 74, 153, 93, 131, 166, 119, 210, 238, 76, 149,\n\t\t66, 7, 98, 24, 255, 44, 106, 215, 206, 224, 90, 2, 103, 65,\n\t\t114, 144, 142, 113, 14, 220, 18, 30, 249, 67, 93, 60, 250,\n\t\t85, 13, 0, 210, 51, 200, 31, 0, 171, 170, 115, 0, 224, 7,\n\t\t170, 179, 139, 174, 93, 212, 250, 51, 173, 36, 37, 213, 125,\n\t\t96, 167, 157, 132, 199, 55, 85, 208, 26, 84, 22, 135, 105,\n\t\t75, 1, 255, 97, 152, 15, 150, 226, 241, 126, 148, 237, 34,\n\t\t84, 159, 106, 115, 218, 32, 230, 146, 38, 125, 164, 46, 237,\n\t\t249, 10, 204, 2, 2, 16, 184, 84, 155, 45, 149, 241, 126, 150,\n\t\t157, 44, 149, 145, 198, 72, 50, 25, 62, 69, 59, 139, 100,\n\t\t219, 178, 101, 169, 167, 60, 204, 104, 12, 147, 91, 243, 131,\n\t\t216, 18, 103, 201, 2, 51, 55, 121, 21, 247, 126, 115, 202,\n\t\t220, 13, 37, 48, 153, 20, 17, 73, 36, 195, 37, 27, 230, 165,\n\t\t204, 184, 207, 237, 74, 153, 247, 254, 253, 184, 103, 23,\n\t\t231, 193, 12, 96, 113, 111, 98, 100, 4, 169, 102, 110, 106,\n\t\t240, 170, 148, 185, 239, 55, 121, 21, 47, 56, 195, 191, 37,\n\t\t217, 190, 129, 137, 101, 109, 132, 31, 137, 215, 154, 238,\n\t\t73, 160, 147, 117, 121, 121, 174, 111, 32, 201, 239, 77, 163,\n\t\t196, 31, 63, 175, 47, 35, 2, 52, 26, 244, 40, 93, 255, 249,\n\t\t59, 143, 171, 139, 126, 150, 16, 247, 186, 242, 242, 176,\n\t\t21, 230, 0, 172, 228, 94, 227, 35, 210, 213, 79, 27, 202,\n\t\t136, 112, 201, 44, 37, 78, 149, 45, 253, 104, 20, 118, 4,\n\t\t237, 216, 162, 159, 180, 113, 110, 74, 243, 125, 14, 96, 182,\n\t\t218, 8, 72, 16, 9, 210, 1, 18, 179, 104, 230, 228, 188, 68,\n\t\t217, 238, 176, 107, 192, 195, 87, 243, 164, 64, 161, 62, 58,\n\t\t97, 123, 63, 204, 126, 162, 241, 141, 195, 133, 237, 150,\n\t\t37, 34, 246, 168, 217, 12, 90, 249, 242, 58, 3, 25, 154, 159,\n\t\t108, 140, 80, 0, 64, 143, 46, 208, 64, 159, 125, 249, 157,\n\t\t88, 241, 242, 34, 87, 178, 145, 133, 243, 129, 219, 235, 101,\n\t\t150, 26, 15, 210, 24, 201, 93, 133, 70, 57, 89, 36, 150, 19,\n\t\t133, 174, 114, 191, 74, 252, 254, 49, 145, 103, 4, 73, 72,\n\t\t30, 221, 0, 116, 4, 1, 23, 204, 102, 142, 141, 125, 240, 238,\n\t\t246, 83, 93, 138, 92, 152, 41, 160, 92, 255, 249, 40, 130,\n\t\t76, 161, 60, 37, 226, 231, 168, 59, 183, 223, 61, 136, 141,\n\t\t181, 198, 85, 50, 55, 183, 51, 178, 73, 174, 16, 251, 110,\n\t\t79, 4, 230, 141, 112, 97, 196, 115, 183, 61, 36, 16, 184,\n\t\t64, 84, 217, 227, 93, 33, 72, 220, 16, 15, 72, 178, 249, 29,\n\t\t235, 187, 209, 101, 159, 171, 237, 199, 24, 75, 219, 231,\n\t\t8, 106, 4, 61, 254, 186, 164, 36, 157, 127, 207, 150, 115,\n\t\t91, 206, 191, 220, 173, 243, 3, 226, 104, 153, 169, 58, 100,\n\t\t167, 117, 194, 148, 41, 55, 48, 120, 63, 141, 24, 141, 166,\n\t\t36, 108, 152, 60, 25, 188, 219, 226, 203, 26, 165, 211, 71,\n\t\t89, 145, 60, 187, 58, 160, 54, 252, 243, 73, 114, 127, 81,\n\t\t241, 158, 125, 247, 172, 225, 181, 245, 126, 5, 223, 175,\n\t\t162, 80, 103, 203, 158, 61, 45, 148, 253, 8, 13, 133, 38,\n\t\t197, 122, 233, 208, 24, 66, 110, 150, 36, 45, 77, 242, 76,\n\t\t71, 192, 136, 117, 94, 11, 73, 104, 20, 13, 9, 6, 10, 26,\n\t\t245, 41, 152, 133, 111, 67, 10, 10, 231, 22, 22, 168, 224,\n\t\t130, 199, 161, 97, 239, 61, 222, 94, 235, 189, 237, 64, 188,\n\t\t23, 25, 186, 128, 125, 70, 242, 101, 20, 138, 59, 48, 29,\n\t\t110, 138, 147, 44, 178, 41, 138, 158, 41, 148, 113, 78, 142,\n\t\t200, 109, 148, 3, 112, 88, 148, 46, 202, 28, 149, 27, 117,\n\t\t115, 58, 161, 141, 32, 39, 184, 241, 184, 156, 230, 230, 28,\n\t\t28, 222, 13, 174, 212, 77, 104, 196, 111, 219, 182, 182, 209,\n\t\t240, 254, 29, 63, 252, 208, 145, 213, 140, 222, 168, 111,\n\t\t168, 215, 109, 4, 80, 97, 77, 48, 104, 216, 235, 159, 199,\n\t\t240, 115, 107, 39, 178, 177, 219, 218, 249, 60, 210, 82, 148,\n\t\t195, 13, 76, 169, 108, 0, 191, 166, 189, 235, 33, 125, 130,\n\t\t201, 75, 114, 53, 73, 74, 179, 167, 10, 14, 94, 57, 200, 100,\n\t\t165, 179, 235, 22, 197, 195, 34, 9, 30, 5, 90, 249, 194, 70,\n\t\t205, 73, 202, 92, 205, 18, 50, 252, 137, 212, 163, 58, 35,\n\t\t32, 230, 168, 167, 90, 167, 234, 243, 7, 92, 163, 15, 122,\n\t\t102, 157, 126, 227, 53, 65, 113, 227, 167, 255, 67, 15, 183,\n\t\t93, 185, 210, 118, 56, 244, 255, 159, 110, 40, 38, 120, 189,\n\t\t57, 61, 171, 231, 129, 197, 239, 249, 241, 199, 158, 93, 33,\n\t\t167, 27, 8, 63, 24, 123, 152, 21, 151, 73, 222, 43, 15, 222,\n\t\t137, 25, 15, 19, 160, 104, 40, 95, 189, 47, 179, 238, 4, 113,\n\t\t175, 232, 196, 159, 218, 144, 134, 19, 158, 130, 227, 235,\n\t\t210, 151, 175, 97, 238, 233, 101, 140, 134, 84, 26, 242, 194,\n\t\t99, 97, 165, 104, 79, 135, 53, 203, 211, 215, 29, 23, 120,\n\t\t158, 104, 208, 134, 252, 121, 66, 180, 151, 120, 162, 142,\n\t\t169, 247, 245, 245, 73, 93, 86, 158, 125, 231, 224, 74, 111,\n\t\t210, 229, 10, 230, 30, 6, 229, 27, 89, 43, 3, 200, 123, 220,\n\t\t240, 192, 209, 68, 25, 235, 183, 163, 95, 223, 19, 143, 244,\n\t\t185, 210, 104, 25, 75, 216, 3, 125, 112, 83, 86, 227, 215,\n\t\t184, 244, 99, 136, 54, 224, 210, 61, 7, 102, 30, 188, 240,\n\t\t235, 173, 103, 244, 174, 58, 38, 92, 115, 132, 249, 154, 11,\n\t\t7, 103, 14, 172, 117, 41, 32, 68, 251, 227, 37, 225, 18, 193,\n\t\t103, 127, 0, 88, 59, 90, 58, 55, 221, 227, 73, 95, 197, 250,\n\t\t95, 111, 61, 107, 227, 170, 27, 30, 178, 162, 224, 60, 88,\n\t\t247, 61, 144, 150, 116, 228, 106, 51, 29, 153, 116, 250, 194,\n\t\t47, 92, 52, 35, 65, 100, 190, 124, 216, 78, 35, 170, 193,\n\t\t151, 131, 174, 164, 116, 64, 76, 26, 240, 139, 22, 206, 0,\n\t\t136, 200, 19, 14, 27, 4, 100, 129, 33, 146, 38, 60, 39, 158,\n\t\t146, 189, 103, 144, 240, 227, 225, 124, 206, 164, 222, 26,\n\t\t90, 177, 143, 33, 59, 141, 83, 20, 65, 45, 174, 201, 238,\n\t\t5, 84, 111, 234, 16, 139, 59, 26, 196, 19, 197, 255, 170,\n\t\t188, 125, 26, 92, 19, 93, 159, 124, 192, 188, 149, 112, 87,\n\t\t170, 29, 108, 157, 11, 94, 158, 224, 79, 255, 133, 172, 148,\n\t\t129, 7, 6, 198, 164, 155, 55, 37, 81, 218, 40, 201, 205, 91,\n\t\t103, 25, 198, 203, 253, 169, 172, 216, 210, 16, 109, 106,\n\t\t26, 73, 163, 33, 165, 165, 106, 79, 159, 169, 71, 238, 97,\n\t\t85, 56, 174, 1, 137, 225, 152, 68, 189, 75, 214, 51, 57, 233,\n\t\t75, 57, 151, 100, 203, 245, 201, 201, 111, 220, 238, 55, 173,\n\t\t238, 215, 238, 150, 202, 255, 91, 220, 244, 22, 104, 87, 114,\n\t\t242, 107, 247, 171, 169, 245, 2, 227, 120, 46, 4, 84, 49,\n\t\t106, 10, 159, 236, 63, 122, 20, 79, 223, 120, 196, 16, 179,\n\t\t142, 242, 227, 36, 11, 2, 26, 0, 202, 229, 163, 157, 0, 0,\n\t\t64, 255, 191, 172, 203, 172, 62, 30, 119, 142, 18, 94, 184,\n\t\t142, 219, 170, 102, 35, 200, 22, 144, 220, 68, 93, 142, 136,\n\t\t93, 98, 128, 172, 178, 178, 108, 108, 155, 178, 12, 156, 128,\n\t\t21, 149, 149, 10, 248, 210, 241, 165, 139, 134, 47, 143, 237,\n\t\t242, 176, 165, 27, 212, 240, 74, 243, 15, 238, 145, 74, 156,\n\t\t72, 151, 185, 130, 146, 65, 54, 181, 127, 220, 219, 120, 137,\n\t\t96, 213, 164, 164, 164, 95, 127, 73, 169, 92, 173, 150, 123,\n\t\t21, 43, 24, 47, 69, 0, 145, 174, 167, 223, 166, 60, 154, 249,\n\t\t70, 58, 134, 98, 87, 90, 136, 0, 36, 234, 158, 152, 55, 172,\n\t\t209, 12, 163, 224, 11, 154, 55, 108, 182, 5, 16, 73, 109,\n\t\t50, 219, 21, 45, 73, 171, 75, 212, 170, 213, 90, 125, 164,\n\t\t105, 53, 229, 16, 106, 56, 183, 205, 50, 101, 208, 188, 174,\n\t\t219, 159, 180, 160, 199, 195, 179, 55, 118, 120, 71, 165,\n\t\t165, 69, 213, 229, 147, 75, 11, 143, 74, 221, 140, 195, 168,\n\t\t39, 79, 86, 135, 164, 6, 107, 156, 94, 50, 135, 140, 9, 14,\n\t\t122, 100, 7, 164, 4, 69, 6, 229, 238, 236, 166, 19, 235, 160,\n\t\t208, 134, 174, 193, 178, 161, 117, 135, 170, 246, 134, 103,\n\t\t230, 147, 250, 144, 62, 82, 62, 176, 162, 59, 118, 184, 91,\n\t\t91, 244, 45, 141, 13, 110, 43, 83, 230, 48, 254, 248, 203,\n\t\t8, 70, 192, 24, 245, 20, 54, 166, 213, 125, 153, 52, 117,\n\t\t182, 186, 171, 116, 73, 94, 61, 51, 246, 51, 71, 103, 102,\n\t\t32, 93, 170, 73, 145, 113, 202, 124, 89, 94, 5, 233, 189,\n\t\t81, 236, 110, 73, 177, 145, 240, 86, 43, 158, 100, 3, 235,\n\t\t119, 130, 198, 147, 215, 110, 51, 74, 80, 40, 11, 56, 124,\n\t\t60, 239, 109, 158, 142, 102, 110, 95, 117, 188, 191, 114,\n\t\t160, 191, 99, 149, 219, 237, 176, 31, 62, 246, 38, 232, 245,\n\t\t67, 217, 235, 159, 110, 173, 79, 247, 75, 105, 27, 24, 28,\n\t\t30, 168, 236, 31, 136, 107, 189, 60, 15, 236, 139, 28, 99,\n\t\t83, 178, 28, 95, 10, 123, 172, 187, 62, 90, 251, 211, 191,\n\t\t151, 140, 85, 72, 20, 216, 231, 20, 92, 80, 197, 203, 88,\n\t\t248, 25, 69, 46, 28, 167, 184, 93, 189, 75, 34, 64, 101, 185,\n\t\t38, 28, 208, 43, 213, 10, 23, 142, 169, 131, 128, 110, 140,\n\t\t206, 20, 4, 68, 254, 20, 10, 93, 70, 68, 49, 128, 172, 218,\n\t\t236, 104, 213, 84, 66, 148, 100, 205, 165, 99, 82, 76, 26,\n\t\t190, 198, 192, 106, 171, 141, 237, 56, 136, 136, 211, 56,\n\t\t102, 52, 47, 201, 191, 46, 96, 110, 99, 195, 142, 57, 232,\n\t\t0, 10, 133, 72, 166, 104, 41, 100, 204, 202, 212, 130, 53,\n\t\t101, 4, 58, 68, 132, 113, 80, 12, 42, 58, 63, 239, 4, 42,\n\t\t2, 162, 154, 85, 196, 127, 42, 198, 66, 102, 204, 141, 95,\n\t\t40, 204, 54, 62, 251, 107, 115, 71, 250, 174, 137, 26, 242,\n\t\t248, 98, 166, 161, 198, 24, 125, 246, 26, 47, 206, 142, 201,\n\t\t231, 38, 12, 0, 238, 40, 142, 146, 179, 244, 94, 69, 161,\n\t\t184, 242, 24, 44, 154, 251, 201, 203, 119, 185, 135, 36, 115,\n\t\t198, 252, 243, 62, 19, 114, 84, 26, 206, 226, 204, 45, 127,\n\t\t193, 222, 4, 55, 33, 12, 223, 77, 64, 83, 89, 222, 158, 122,\n\t\t62, 247, 34, 224, 195, 147, 115, 51, 83, 191, 241, 122, 234,\n\t\t22, 19, 186, 241, 75, 153, 44, 94, 223, 24, 50, 248, 48, 75,\n\t\t184, 215, 115, 109, 245, 109, 186, 63, 79, 30, 160, 211, 137,\n\t\t255, 75, 232, 163, 39, 41, 128, 138, 20, 158, 131, 216, 131,\n\t\t78, 107, 159, 181, 183, 119, 198, 59, 123, 229, 203, 0, 143,\n\t\t198, 191, 37, 196, 178, 61, 45, 109, 59, 143, 181, 7, 165,\n\t\t9, 75, 63, 183, 9, 220, 83, 167, 186, 5, 221, 185, 185, 204,\n\t\t4, 241, 167, 242, 204, 18, 115, 30, 144, 163, 124, 58, 136,\n\t\t240, 86, 153, 75, 128, 240, 4, 33, 124, 54, 121, 8, 123, 172,\n\t\t188, 124, 140, 93, 115, 163, 246, 220, 227, 98, 161, 148,\n\t\t197, 121, 128, 82, 94, 30, 82, 7, 16, 198, 206, 25, 152, 102,\n\t\t186, 1, 169, 73, 33, 193, 218, 200, 235, 55, 234, 23, 198,\n\t\t23, 22, 139, 93, 43, 168, 30, 33, 162, 42, 232, 43, 160, 169,\n\t\t221, 110, 151, 203, 12, 155, 245, 92, 220, 221, 192, 22, 169,\n\t\t171, 105, 244, 5, 109, 41, 218, 0, 100, 99, 29, 13, 7, 88,\n\t\t199, 76, 230, 29, 140, 140, 188, 142, 89, 59, 155, 155, 109,\n\t\t108, 155, 28, 253, 39, 105, 85, 239, 70, 77, 84, 139, 20,\n\t\t192, 154, 127, 247, 251, 198, 72, 242, 177, 151, 61, 61, 29,\n\t\t151, 177, 101, 62, 80, 75, 62, 163, 244, 238, 36, 29, 137,\n\t\t200, 254, 44, 60, 250, 143, 100, 70, 238, 79, 21, 80, 245,\n\t\t221, 237, 168, 153, 5, 49, 75, 40, 44, 71, 153, 89, 148, 37,\n\t\t184, 57, 69, 168, 237, 119, 171, 193, 29, 190, 206, 147, 66,\n\t\t102, 206, 59, 203, 223, 26, 20, 109, 3, 138, 22, 208, 218,\n\t\t210, 105, 183, 232, 85, 221, 110, 134, 163, 85, 168, 38, 205,\n\t\t186, 130, 83, 253, 93, 101, 54, 115, 200, 113, 54, 240, 243,\n\t\t103, 17, 219, 54, 123, 78, 51, 203, 86, 52, 217, 182, 92,\n\t\t135, 209, 104, 118, 11, 221, 13, 13, 51, 243, 152, 228, 50,\n\t\t27, 141, 14, 157, 5, 145, 219, 89, 246, 57, 179, 145, 87,\n\t\t18, 182, 77, 91, 87, 167, 21, 5, 224, 2, 74, 119, 147, 14,\n\t\t134, 79, 165, 81, 126, 10, 14, 61, 229, 32, 28, 41, 198, 139,\n\t\t222, 228, 66, 250, 119, 82, 174, 7, 5, 206, 7, 24, 17, 185,\n\t\t6, 243, 217, 146, 13, 114, 121, 60, 221, 70, 255, 1, 145,\n\t\t105, 144, 11, 10, 50, 228, 7, 35, 46, 94, 94, 125, 39, 138,\n\t\t82, 178, 193, 77, 34, 163, 250, 100, 2, 184, 133, 112, 172,\n\t\t121, 67, 70, 217, 210, 104, 138, 63, 8, 10, 158, 61, 107,\n\t\t224, 231, 23, 108, 162, 168, 57, 194, 159, 18, 189, 180, 124,\n\t\t194, 64, 243, 49, 2, 187, 172, 125, 102, 49, 145, 73, 136,\n\t\t51, 49, 59, 177, 72, 131, 28, 175, 24, 240, 127, 11, 176,\n\t\t228, 25, 60, 54, 58, 50, 142, 184, 167, 166, 199, 147, 73,\n\t\t27, 162, 222, 203, 42, 42, 13, 151, 73, 148, 38, 50, 65, 191,\n\t\t20, 55, 15, 184, 85, 103, 204, 206, 222, 223, 170, 46, 52,\n\t\t92, 208, 201, 161, 219, 102, 99, 189, 52, 113, 45, 35, 41,\n\t\t201, 6, 144, 142, 127, 159, 63, 41, 153, 184, 137, 49, 145,\n\t\t177, 194, 35, 217, 34, 74, 46, 175, 74, 79, 11, 230, 35, 168,\n\t\t247, 165, 189, 1, 236, 58, 20, 208, 164, 238, 27, 92, 137,\n\t\t153, 71, 97, 168, 250, 200, 6, 65, 248, 203, 191, 155, 209,\n\t\t186, 184, 217, 148, 154, 25, 21, 202, 234, 97, 217, 248, 208,\n\t\t208, 8, 85, 218, 23, 19, 182, 134, 85, 246, 126, 143, 182,\n\t\t152, 196, 206, 222, 183, 245, 88, 252, 69, 148, 28, 120, 31,\n\t\t76, 240, 10, 161, 253, 244, 180, 14, 175, 34, 212, 75, 132,\n\t\t226, 175, 95, 251, 122, 250, 214, 19, 84, 248, 186, 207, 167,\n\t\t168, 65, 94, 9, 7, 193, 233, 44, 230, 53, 10, 83, 250, 174,\n\t\t94, 103, 43, 75, 77, 182, 149, 160, 52, 213, 41, 5, 113, 27,\n\t\t136, 123, 235, 255, 88, 249, 55, 63, 220, 99, 112, 254, 243,\n\t\t217, 178, 86, 89, 192, 204, 128, 89, 207, 87, 14, 122, 168,\n\t\t112, 51, 15, 88, 255, 172, 223, 75, 220, 16, 151, 146, 63,\n\t\t85, 48, 22, 232, 21, 150, 148, 24, 92, 143, 194, 17, 149,\n\t\t44, 3, 205, 253, 227, 4, 24, 116, 134, 188, 224, 206, 17,\n\t\t167, 216, 37, 30, 49, 128, 133, 84, 110, 149, 179, 135, 123,\n\t\t53, 51, 150, 253, 117, 18, 192, 47, 168, 204, 21, 186, 132,\n\t\t107, 235, 218, 40, 84, 38, 205, 69, 124, 57, 15, 162, 180,\n\t\t1, 243, 15, 4, 150, 58, 36, 62, 217, 60, 139, 115, 62, 102,\n\t\t195, 209, 111, 16, 39, 249, 135, 176, 212, 132, 215, 76, 64,\n\t\t161, 204, 33, 123, 121, 100, 217, 168, 163, 193, 69, 137,\n\t\t213, 156, 83, 228, 63, 20, 20, 13, 102, 205, 113, 2, 59, 218,\n\t\t122, 14, 198, 164, 208, 163, 51, 186, 27, 0, 245, 96, 143,\n\t\t178, 41, 20, 246, 41, 227, 11, 82, 178, 66, 88, 240, 241,\n\t\t236, 85, 108, 202, 50, 17, 78, 72, 126, 64, 165, 168, 105,\n\t\t116, 238, 51, 23, 201, 165, 40, 44, 6, 50, 39, 249, 213, 77,\n\t\t33, 126, 16, 8, 16, 4, 49, 197, 45, 158, 100, 121, 142, 220,\n\t\t151, 67, 80, 108, 172, 199, 156, 40, 110, 120, 19, 163, 57,\n\t\t129, 85, 44, 15, 222, 189, 228, 98, 235, 163, 41, 7, 91, 55,\n\t\t33, 142, 104, 96, 208, 12, 139, 58, 182, 193, 136, 220, 26,\n\t\t130, 180, 244, 0, 240, 22, 54, 215, 194, 118, 210, 199, 109,\n\t\t154, 186, 100, 28, 10, 167, 145, 2, 111, 151, 171, 13, 146,\n\t\t126, 29, 4, 203, 49, 95, 130, 190, 96, 228, 48, 164, 235,\n\t\t151, 168, 13, 242, 237, 48, 165, 209, 210, 36, 187, 139, 227,\n\t\t143, 31, 36, 121, 137, 248, 207, 231, 175, 77, 53, 250, 6,\n\t\t229, 44, 80, 39, 108, 147, 169, 174, 205, 247, 220, 231, 104,\n\t\t213, 194, 195, 90, 90, 182, 69, 9, 242, 60, 72, 145, 10, 80,\n\t\t121, 157, 142, 165, 86, 179, 77, 41, 140, 46, 99, 122, 23,\n\t\t69, 19, 163, 8, 145, 180, 234, 31, 50, 137, 147, 111, 107,\n\t\t109, 77, 142, 160, 229, 187, 77, 27, 28, 162, 89, 0, 29, 124,\n\t\t84, 32, 25, 45, 232, 249, 110, 1, 191, 91, 111, 136, 206,\n\t\t67, 34, 23, 18, 23, 74, 192, 94, 58, 189, 68, 101, 85, 229,\n\t\t42, 193, 81, 131, 73, 151, 98, 1, 113, 129, 239, 116, 103,\n\t\t129, 249, 19, 122, 146, 36, 0, 123, 52, 212, 221, 222, 35,\n\t\t176, 23, 172, 103, 207, 192, 124, 164, 143, 57, 26, 110, 185,\n\t\t209, 241, 139, 136, 101, 159, 94, 82, 16, 83, 198, 71, 141,\n\t\t242, 94, 181, 136, 71, 197, 64, 14, 8, 110, 2, 44, 48, 11,\n\t\t0, 15, 225, 197, 161, 223, 144, 149, 212, 9, 52, 152, 118,\n\t\t170, 214, 8, 178, 35, 235, 243, 80, 249, 130, 201, 12, 202,\n\t\t129, 223, 250, 40, 239, 106, 230, 244, 171, 30, 95, 80, 182,\n\t\t76, 133, 92, 60, 243, 54, 127, 141, 160, 184, 150, 129, 138,\n\t\t246, 35, 191, 102, 161, 79, 151, 99, 24, 33, 163, 227, 145,\n\t\t247, 49, 41, 129, 116, 99, 129, 179, 246, 143, 63, 16, 2,\n\t\t49, 123, 21, 87, 155, 36, 172, 37, 38, 69, 86, 103, 229, 160,\n\t\t69, 129, 115, 185, 7, 134, 247, 51, 153, 191, 73, 182, 174,\n\t\t85, 144, 243, 22, 173, 84, 6, 78, 15, 84, 174, 92, 148, 71,\n\t\t86, 124, 191, 220, 177, 71, 219, 57, 59, 203, 144, 124, 79,\n\t\t231, 247, 121, 86, 180, 237, 153, 72, 135, 43, 14, 58, 58,\n\t\t246, 194, 98, 132, 58, 225, 120, 171, 147, 17, 0, 143, 14,\n\t\t21, 46, 122, 233, 214, 188, 153, 244, 70, 179, 240, 181, 28,\n\t\t144, 81, 40, 74, 101, 44, 23, 93, 196, 219, 98, 246, 6, 79,\n\t\t85, 72, 34, 16, 63, 169, 112, 209, 80, 190, 141, 28, 103,\n\t\t94, 221, 22, 197, 174, 52, 228, 56, 95, 38, 170, 124, 185,\n\t\t142, 151, 82, 240, 153, 157, 15, 255, 162, 229, 91, 30, 126,\n\t\t247, 153, 230, 234, 15, 168, 242, 241, 152, 24, 229, 117,\n\t\t109, 238, 175, 84, 74, 26, 187, 20, 2, 249, 211, 95, 82, 152,\n\t\t243, 244, 33, 25, 109, 201, 86, 105, 138, 180, 64, 187, 239,\n\t\t134, 182, 200, 47, 89, 92, 161, 191, 118, 64, 223, 128, 215,\n\t\t110, 121, 170, 60, 68, 138, 38, 89, 255, 97, 77, 242, 54,\n\t\t192, 146, 117, 193, 69, 227, 236, 89, 223, 179, 126, 14, 180,\n\t\t184, 249, 100, 152, 66, 98, 152, 1, 88, 195, 83, 251, 19,\n\t\t90, 111, 5, 239, 103, 3, 19, 230, 52, 182, 180, 118, 44, 233,\n\t\t238, 118, 207, 214, 150, 111, 220, 173, 69, 6, 236, 221, 234,\n\t\t22, 134, 41, 234, 190, 49, 181, 131, 38, 150, 4, 88, 100,\n\t\t142, 111, 38, 251, 174, 88, 23, 30, 18, 158, 43, 219, 149,\n\t\t153, 32, 44, 140, 53, 229, 16, 115, 159, 137, 27, 29, 205,\n\t\t92, 135, 103, 77, 161, 10, 92, 51, 185, 121, 23, 25, 24, 41,\n\t\t155, 59, 132, 39, 243, 4, 39, 79, 12, 191, 30, 254, 174, 183,\n\t\t238, 191, 91, 83, 152, 67, 67, 30, 219, 55, 86, 3, 53, 218,\n\t\t34, 10, 83, 13, 152, 181, 132, 171, 86, 53, 90, 95, 238, 24,\n\t\t146, 233, 151, 119, 163, 127, 96, 216, 60, 124, 188, 255,\n\t\t3, 112, 74, 5, 63, 59, 136, 169, 87, 79, 127, 218, 199, 254,\n\t\t178, 58, 185, 234, 168, 135, 15, 109, 100, 168, 15, 243, 225,\n\t\t154, 143, 23, 150, 252, 38, 84, 76, 42, 252, 109, 73, 231,\n\t\t172, 197, 245, 13, 247, 170, 246, 18, 176, 107, 222, 48, 117,\n\t\t176, 44, 44, 183, 128, 185, 205, 82, 237, 231, 232, 30, 64,\n\t\t234, 214, 234, 190, 92, 65, 183, 92, 118, 215, 83, 175, 121,\n\t\t89, 155, 216, 147, 168, 189, 188, 39, 244, 251, 14, 125, 233,\n\t\t147, 18, 27, 219, 118, 244, 232, 204, 108, 147, 38, 1, 87,\n\t\t169, 122, 90, 33, 34, 238, 76, 211, 172, 38, 227, 51, 126,\n\t\t146, 45, 151, 196, 61, 245, 123, 112, 208, 183, 185, 116,\n\t\t238, 176, 7, 235, 114, 228, 227, 124, 201, 140, 190, 25, 146,\n\t\t252, 137, 69, 186, 166, 248, 150, 184, 22, 254, 167, 131,\n\t\t96, 203, 78, 54, 52, 12, 201, 117, 117, 230, 155, 138, 186,\n\t\t110, 200, 69, 237, 218, 24, 248, 17, 193, 30, 31, 74, 80,\n\t\t137, 93, 79, 122, 72, 42, 225, 215, 162, 210, 73, 15, 72,\n\t\t106, 17, 112, 66, 102, 229, 231, 169, 76, 143, 207, 225, 42,\n\t\t102, 152, 72, 76, 14, 77, 102, 69, 73, 125, 131, 147, 147,\n\t\t137, 136, 142, 159, 32, 54, 91, 153, 225, 13, 102, 210, 17,\n\t\t99, 2, 144, 104, 166, 159, 159, 12, 137, 33, 250, 170, 222,\n\t\t190, 67, 190, 155, 230, 69, 130, 56, 103, 83, 23, 119, 102,\n\t\t253, 72, 32, 93, 161, 50, 127, 90, 118, 254, 230, 133, 229,\n\t\t183, 200, 162, 128, 111, 130, 252, 54, 190, 241, 199, 36,\n\t\t0, 142, 108, 236, 82, 206, 131, 224, 53, 47, 212, 127, 49,\n\t\t235, 217, 253, 105, 215, 138, 21, 157, 23, 149, 70, 5, 123,\n\t\t204, 98, 25, 147, 141, 141, 143, 207, 170, 123, 123, 223,\n\t\t242, 19, 229, 179, 231, 24, 12, 13, 26, 53, 208, 93, 203,\n\t\t220, 122, 130, 33, 60, 45, 96, 99, 24, 12, 62, 58, 50, 36,\n\t\t152, 132, 121, 175, 120, 178, 248, 17, 149, 161, 226, 120,\n\t\t132, 8, 25, 151, 136, 76, 230, 196, 104, 34, 91, 131, 40,\n\t\t124, 89, 153, 224, 151, 156, 20, 73, 124, 199, 19, 76, 243,\n\t\t20, 132, 8, 216, 42, 38, 35, 73, 210, 181, 65, 176, 109, 27,\n\t\t16, 199, 51, 171, 3, 137, 222, 160, 29, 25, 29, 178, 190,\n\t\t226, 20, 81, 45, 42, 123, 241, 66, 170, 206, 43, 67, 32, 73,\n\t\t236, 28, 193, 213, 82, 0, 195, 98, 37, 8, 148, 87, 165, 149,\n\t\t41, 67, 131, 20, 73, 153, 152, 197, 57, 25, 177, 249, 157,\n\t\t208, 26, 131, 99, 203, 99, 55, 28, 205, 56, 39, 206, 188,\n\t\t191, 45, 84, 230, 144, 9, 142, 109, 16, 244, 209, 12, 93,\n\t\t187, 4, 114, 231, 207, 135, 60, 40, 42, 221, 233, 229, 124,\n\t\t8, 177, 133, 127, 252, 185, 197, 122, 141, 203, 121, 39, 1,\n\t\t70, 194, 86, 10, 5, 155, 145, 181, 99, 41, 35, 193, 100, 113,\n\t\t232, 167, 64, 242, 68, 19, 185, 32, 149, 247, 157, 223, 190,\n\t\t205, 70, 7, 174, 9, 231, 48, 238, 18, 174, 132, 101, 194,\n\t\t167, 91, 2, 190, 133, 191, 22, 155, 94, 14, 95, 124, 22, 189,\n\t\t16, 98, 189, 241, 245, 217, 156, 41, 151, 23, 164, 203, 2,\n\t\t184, 13, 177, 94, 233, 223, 245, 131, 190, 189, 61, 103, 197,\n\t\t195, 43, 93, 140, 235, 67, 243, 231, 78, 107, 100, 138, 166,\n\t\t252, 112, 21, 245, 235, 118, 204, 23, 8, 219, 105, 170, 242,\n\t\t186, 5, 221, 146, 54, 65, 91, 101, 113, 119, 102, 188, 159,\n\t\t188, 44, 181, 151, 82, 53, 169, 66, 157, 162, 248, 188, 178,\n\t\t117, 51, 237, 106, 36, 46, 86, 125, 138, 185, 117, 137, 157,\n\t\t109, 31, 119, 176, 154, 43, 42, 33, 52, 179, 155, 231, 79,\n\t\t197, 222, 186, 196, 70, 135, 50, 84, 59, 17, 152, 87, 167,\n\t\t121, 202, 146, 86, 99, 210, 1, 170, 112, 204, 44, 201, 63,\n\t\t68, 32, 92, 135, 106, 39, 208, 24, 65, 37, 90, 141, 198, 225,\n\t\t240, 112, 109, 9, 228, 123, 219, 36, 255, 244, 221, 113, 43,\n\t\t6, 119, 44, 66, 36, 115, 215, 213, 217, 3, 68, 17, 199, 112,\n\t\t74, 156, 13, 39, 3, 251, 83, 126, 247, 201, 36, 191, 237,\n\t\t235, 194, 67, 76, 79, 89, 145, 215, 79, 34, 248, 113, 81,\n\t\t58, 183, 133, 234, 56, 236, 181, 235, 228, 245, 249, 148,\n\t\t16, 153, 142, 218, 7, 188, 187, 105, 172, 192, 68, 182, 224,\n\t\t82, 149, 12, 87, 54, 33, 39, 69, 144, 244, 40, 81, 64, 77,\n\t\t16, 71, 5, 114, 169, 64, 140, 158, 254, 170, 192, 168, 232,\n\t\t121, 89, 28, 236, 76, 89, 11, 187, 34, 196, 218, 112, 216,\n\t\t236, 166, 166, 108, 44, 206, 134, 245, 37, 147, 15, 228, 230,\n\t\t38, 84, 102, 169, 193, 253, 230, 12, 237, 155, 123, 157, 149,\n\t\t152, 149, 43, 49, 149, 100, 242, 233, 250, 184, 77, 157, 151,\n\t\t93, 76, 41, 206, 30, 172, 62, 60, 151, 118, 141, 54, 247,\n\t\t240, 58, 182, 34, 52, 25, 82, 82, 128, 98, 56, 247, 184, 148,\n\t\t10, 232, 222, 195, 230, 225, 1, 42, 161, 39, 108, 27, 253,\n\t\t118, 102, 115, 40, 180, 181, 181, 0, 227, 95, 134, 89, 220,\n\t\t218, 170, 80, 216, 53, 54, 104, 44, 249, 93, 74, 133, 210,\n\t\t166, 81, 216, 108, 108, 16, 108, 218, 209, 218, 127, 9, 78,\n\t\t9, 253, 237, 179, 62, 225, 72, 66, 226, 146, 23, 65, 89, 129,\n\t\t65, 39, 191, 215, 113, 82, 161, 240, 20, 248, 82, 127, 71,\n\t\t52, 224, 70, 174, 93, 10, 215, 138, 224, 40, 7, 76, 107, 241,\n\t\t133, 126, 79, 51, 147, 152, 212, 244, 80, 167, 192, 41, 16,\n\t\t4, 180, 183, 158, 199, 113, 18, 61, 246, 0, 39, 155, 129,\n\t\t142, 169, 189, 185, 160, 35, 105, 123, 90, 82, 71, 177, 226,\n\t\t144, 20, 163, 66, 225, 81, 222, 59, 123, 182, 195, 225, 100,\n\t\t180, 120, 1, 62, 67, 37, 64, 108, 166, 36, 37, 92, 109, 111,\n\t\t185, 238, 121, 241, 207, 65, 144, 221, 50, 193, 214, 59, 162,\n\t\t204, 90, 51, 83, 231, 141, 179, 225, 60, 41, 20, 14, 134,\n\t\t195, 149, 43, 188, 203, 244, 177, 76, 55, 164, 120, 108, 151,\n\t\t107, 184, 232, 225, 160, 45, 26, 134, 236, 206, 251, 165,\n\t\t248, 42, 220, 36, 15, 82, 23, 147, 187, 228, 207, 140, 197,\n\t\t124, 82, 67, 131, 243, 249, 36, 14, 183, 114, 31, 240, 71,\n\t\t20, 58, 57, 242, 197, 238, 231, 242, 132, 115, 246, 84, 199,\n\t\t100, 233, 39, 196, 252, 178, 100, 202, 25, 251, 226, 235,\n\t\t66, 34, 230, 206, 158, 154, 9, 16, 146, 107, 66, 54, 175,\n\t\t135, 138, 141, 92, 59, 104, 187, 127, 34, 36, 231, 223, 161,\n\t\t181, 229, 184, 219, 159, 201, 185, 94, 185, 140, 238, 181,\n\t\t191, 177, 212, 84, 96, 98, 173, 179, 121, 121, 220, 136, 144,\n\t\t35, 250, 8, 180, 185, 96, 48, 178, 96, 237, 237, 169, 237,\n\t\t72, 2, 231, 136, 74, 78, 215, 181, 166, 211, 50, 151, 64,\n\t\t57, 56, 201, 246, 238, 72, 92, 212, 38, 220, 185, 162, 218,\n\t\t180, 94, 51, 199, 170, 248, 64, 243, 146, 57, 180, 16, 21,\n\t\t50, 154, 16, 166, 74, 13, 107, 226, 105, 221, 219, 11, 148,\n\t\t194, 26, 9, 213, 84, 184, 104, 149, 93, 168, 44, 152, 228,\n\t\t140, 55, 172, 145, 78, 37, 36, 65, 254, 209, 117, 130, 100,\n\t\t244, 193, 95, 34, 196, 31, 2, 31, 240, 36, 241, 22, 175, 152,\n\t\t45, 23, 114, 92, 66, 17, 19, 138, 33, 19, 122, 93, 155, 174,\n\t\t218, 92, 183, 33, 198, 44, 151, 209, 184, 225, 222, 218, 76,\n\t\t191, 22, 95, 137, 195, 23, 248, 11, 170, 90, 189, 173, 108,\n\t\t230, 192, 195, 124, 82, 28, 145, 31, 116, 56, 70, 110, 148,\n\t\t29, 14, 34, 187, 222, 57, 145, 41, 68, 206, 48, 98, 171, 240,\n\t\t65, 36, 62, 108, 158, 198, 50, 243, 137, 33, 36, 254, 75,\n\t\t195, 116, 106, 238, 71, 10, 195, 87, 97, 153, 70, 185, 3,\n\t\t87, 235, 154, 67, 254, 59, 48, 223, 167, 139, 28, 224, 229,\n\t\t114, 154, 44, 11, 4, 252, 32, 33, 69, 24, 228, 154, 119, 40,\n\t\t224, 80, 80, 0, 25, 176, 86, 94, 237, 181, 166, 90, 192, 7,\n\t\t147, 198, 72, 238, 20, 12, 16, 64, 220, 127, 72, 47, 244,\n\t\t206, 196, 187, 92, 120, 146, 173, 180, 212, 102, 102, 87,\n\t\t53, 66, 233, 0, 37, 196, 103, 44, 226, 114, 89, 57, 197, 226,\n\t\t94, 218, 98, 137, 81, 71, 97, 188, 14, 27, 46, 224, 243, 115,\n\t\t177, 18, 117, 9, 48, 103, 66, 181, 155, 113, 94, 184, 102,\n\t\t236, 60, 173, 142, 163, 179, 140, 222, 24, 70, 227, 108, 72,\n\t\t213, 191, 14, 33, 1, 189, 104, 156, 175, 26, 227, 71, 228,\n\t\t47, 11, 158, 205, 39, 250, 225, 167, 112, 98, 119, 5, 64,\n\t\t50, 40, 64, 106, 165, 217, 192, 184, 149, 78, 105, 218, 232,\n\t\t157, 34, 95, 185, 214, 228, 7, 116, 121, 190, 163, 227, 1,\n\t\t91, 68, 174, 1, 135, 248, 42, 16, 128, 22, 122, 173, 128,\n\t\t70, 85, 228, 100, 217, 95, 70, 251, 132, 45, 107, 69, 174,\n\t\t47, 18, 236, 1, 208, 78, 245, 246, 87, 246, 189, 48, 56, 32,\n\t\t67, 217, 210, 186, 59, 18, 39, 218, 75, 206, 41, 152, 129,\n\t\t163, 128, 166, 193, 111, 34, 60, 226, 187, 253, 159, 11, 82,\n\t\t68, 226, 241, 144, 32, 81, 16, 23, 223, 21, 184, 41, 248,\n\t\t64, 203, 3, 9, 44, 159, 4, 196, 218, 68, 42, 140, 227, 31,\n\t\t35, 83, 208, 168, 211, 152, 211, 113, 7, 240, 249, 9, 41,\n\t\t123, 138, 101, 60, 206, 17, 25, 25, 236, 245, 5, 71, 88, 102,\n\t\t126, 139, 199, 255, 248, 74, 15, 9, 207, 91, 130, 170, 155,\n\t\t48, 154, 211, 125, 178, 112, 223, 166, 77, 40, 47, 140, 60,\n\t\t89, 20, 206, 216, 236, 217, 223, 198, 69, 42, 149, 25, 255,\n\t\t63, 28, 248, 153, 77, 214, 182, 63, 5, 205, 62, 0, 198, 64,\n\t\t118, 212, 66, 241, 216, 63, 15, 60, 124, 112, 228, 247, 183,\n\t\t145, 206, 79, 147, 13, 199, 8, 79, 22, 201, 49, 28, 151, 114,\n\t\t206, 172, 125, 133, 39, 187, 115, 70, 39, 212, 161, 36, 222,\n\t\t60, 137, 71, 37, 254, 127, 15, 143, 167, 237, 90, 80, 64,\n\t\t9, 64, 254, 135, 19, 131, 127, 162, 196, 86, 165, 176, 92,\n\t\t85, 44, 2, 248, 8, 225, 35, 220, 31, 32, 50, 130, 144, 161,\n\t\t31, 184, 32, 222, 86, 87, 109, 53, 123, 152, 189, 118, 6,\n\t\t158, 65, 132, 183, 184, 97, 64, 26, 48, 228, 132, 223, 14,\n\t\t140, 142, 159, 5, 154, 121, 171, 185, 171, 39, 135, 137, 203,\n\t\t3, 223, 116, 149, 139, 195, 39, 199, 113, 83, 195, 38, 151,\n\t\t139, 187, 254, 143, 23, 151, 79, 14, 51, 94, 29, 247, 102,\n\t\t219, 221, 194, 38, 167, 86, 143, 199, 53, 149, 125, 151, 90,\n\t\t19, 212, 0, 61, 161, 110, 134, 86, 219, 164, 175, 238, 78,\n\t\t51, 127, 126, 121, 125, 120, 197, 111, 209, 147, 163, 75,\n\t\t86, 182, 76, 98, 212, 207, 211, 205, 253, 57, 149, 11, 108,\n\t\t109, 71, 27, 35, 218, 123, 31, 67, 113, 52, 37, 112, 162,\n\t\t17, 29, 67, 75, 50, 40, 95, 204, 9, 8, 107, 169, 17, 212,\n\t\t24, 88, 252, 224, 82, 155, 64, 34, 232, 206, 115, 42, 62,\n\t\t210, 177, 10, 31, 21, 206, 162, 24, 89, 49, 119, 93, 122,\n\t\t32, 134, 99, 172, 123, 208, 36, 212, 216, 132, 87, 92, 221,\n\t\t175, 250, 210, 87, 9, 177, 84, 73, 8, 147, 124, 185, 155,\n\t\t176, 199, 97, 217, 106, 180, 76, 39, 34, 109, 231, 147, 91,\n\t\t91, 161, 45, 92, 19, 121, 95, 154, 152, 141, 136, 15, 117,\n\t\t23, 79, 88, 188, 156, 34, 18, 136, 30, 99, 153, 94, 143, 97,\n\t\t151, 47, 4, 63, 152, 255, 14, 89, 16, 73, 102, 49, 211, 176,\n\t\t8, 34, 69, 199, 206, 82, 155, 14, 28, 18, 174, 205, 202, 139,\n\t\t139, 162, 82, 234, 31, 147, 88, 192, 140, 215, 183, 255, 34,\n\t\t194, 56, 119, 5, 253, 90, 0, 202, 218, 109, 29, 3, 166, 124,\n\t\t86, 109, 165, 145, 66, 57, 69, 50, 46, 193, 7, 146, 230, 79,\n\t\t245, 150, 88, 93, 236, 190, 65, 225, 242, 84, 143, 91, 226,\n\t\t229, 61, 63, 105, 189, 250, 210, 140, 20, 172, 13, 7, 178,\n\t\t53, 207, 149, 207, 99, 116, 222, 83, 22, 255, 232, 72, 146,\n\t\t108, 91, 85, 41, 113, 193, 46, 246, 65, 33, 34, 230, 203,\n\t\t248, 98, 88, 112, 32, 194, 131, 108, 131, 207, 17, 73, 229,\n\t\t170, 109, 73, 18, 199, 143, 139, 167, 120, 235, 148, 181,\n\t\t244, 35, 71, 232, 16, 132, 64, 57, 149, 153, 230, 63, 71,\n\t\t81, 155, 126, 37, 253, 218, 68, 69, 165, 42, 157, 30, 101,\n\t\t245, 121, 122, 56, 121, 144, 49, 69, 9, 254, 204, 248, 250,\n\t\t20, 126, 250, 117, 6, 25, 36, 7, 24, 219, 77, 2, 128, 6, 194,\n\t\t16, 196, 167, 20, 232, 230, 213, 248, 16, 4, 227, 146, 94,\n\t\t228, 3, 109, 70, 205, 73, 60, 165, 13, 1, 130, 174, 25, 144,\n\t\t114, 71, 204, 27, 100, 244, 71, 240, 163, 80, 10, 135, 37,\n\t\t82, 40, 126, 96, 162, 51, 71, 194, 225, 230, 218, 237, 103,\n\t\t18, 66, 185, 127, 49, 224, 159, 61, 26, 240, 203, 160, 88,\n\t\t104, 25, 190, 251, 255, 12, 51, 191, 18, 177, 255, 155, 170,\n\t\t16, 63, 119, 6, 83, 235, 132, 181, 126, 125, 180, 9, 169,\n\t\t117, 75, 54, 34, 88, 118, 103, 135, 255, 142, 58, 237, 117,\n\t\t231, 142, 4, 241, 145, 113, 7, 76, 161, 32, 60, 96, 88, 68,\n\t\t212, 106, 88, 164, 107, 155, 85, 181, 184, 188, 124, 231,\n\t\t148, 209, 75, 230, 122, 119, 77, 225, 220, 162, 157, 2, 234,\n\t\t191, 9, 107, 139, 230, 22, 174, 57, 127, 241, 253, 86, 50,\n\t\t197, 48, 117, 69, 200, 23, 38, 217, 133, 225, 230, 98, 121,\n\t\t68, 89, 123, 98, 187, 140, 200, 139, 117, 195, 119, 7, 16,\n\t\t197, 196, 0, 0, 33, 105, 11, 137, 161, 124, 68, 164, 128,\n\t\t163, 128, 253, 208, 109, 72, 28, 41, 19, 135, 4, 122, 146,\n\t\t168, 85, 61, 22, 103, 139, 169, 157, 222, 108, 229, 122, 94,\n\t\t235, 4, 7, 0, 133, 130, 93, 71, 23, 226, 138, 61, 185, 32,\n\t\t234, 234, 30, 44, 83, 244, 46, 90, 40, 141, 189, 197, 152,\n\t\t237, 30, 104, 91, 140, 171, 134, 229, 146, 185, 31, 12, 87,\n\t\t203, 234, 146, 201, 100, 142, 10, 243, 98, 29, 92, 39, 219,\n\t\t201, 37, 147, 175, 40, 155, 57, 207, 198, 55, 246, 110, 208,\n\t\t201, 103, 20, 171, 39, 148, 248, 11, 38, 75, 60, 210, 249,\n\t\t44, 102, 6, 223, 67, 50, 89, 224, 63, 161, 132, 63, 229, 67,\n\t\t98, 238, 245, 123, 85, 200, 204, 196, 99, 155, 60, 255, 248,\n\t\t158, 129, 68, 207, 120, 250, 186, 35, 215, 245, 202, 59, 55,\n\t\t241, 195, 198, 99, 137, 51, 145, 170, 123, 43, 196, 51, 162,\n\t\t25, 200, 247, 127, 68, 187, 84, 36, 164, 25, 124, 56, 134,\n\t\t195, 93, 205, 188, 69, 160, 63, 241, 222, 123, 213, 158, 86,\n\t\t148, 213, 55, 122, 63, 161, 19, 110, 61, 166, 143, 36, 163,\n\t\t71, 50, 81, 32, 186, 87, 216, 107, 88, 210, 155, 4, 186, 47,\n\t\t86, 121, 76, 231, 198, 149, 71, 124, 249, 34, 83, 36, 162,\n\t\t18, 35, 32, 142, 59, 221, 163, 202, 234, 91, 163, 214, 114,\n\t\t233, 217, 179, 174, 94, 229, 81, 3, 167, 230, 250, 234, 154,\n\t\t219, 81, 149, 50, 16, 155, 150, 148, 145, 146, 158, 235, 111,\n\t\t200, 93, 95, 233, 15, 174, 17, 104, 214, 169, 178, 130, 163,\n\t\t199, 60, 60, 23, 183, 68, 26, 123, 97, 86, 161, 168, 88, 63,\n\t\t11, 132, 48, 34, 141, 109, 139, 252, 182, 78, 227, 155, 14,\n\t\t227, 103, 167, 180, 251, 181, 123, 22, 246, 171, 242, 121,\n\t\t50, 197, 243, 68, 245, 137, 192, 164, 150, 197, 158, 129,\n\t\t252, 105, 220, 157, 166, 105, 252, 173, 126, 139, 102, 238,\n\t\t221, 240, 107, 212, 172, 75, 66, 107, 247, 165, 5, 88, 89,\n\t\t112, 239, 192, 148, 181, 236, 53, 83, 192, 23, 14, 95, 133,\n\t\t203, 151, 17, 217, 217, 94, 114, 254, 187, 232, 8, 35, 138,\n\t\t129, 173, 92, 126, 244, 59, 190, 220, 43, 155, 77, 148, 229,\n\t\t227, 170, 240, 137, 196, 146, 180, 45, 127, 49, 92, 146, 197,\n\t\t35, 68, 95, 70, 4, 240, 77, 119, 209, 126, 114, 196, 126,\n\t\t139, 166, 226, 251, 76, 101, 82, 44, 29, 246, 100, 36, 46,\n\t\t139, 54, 59, 207, 105, 196, 218, 207, 68, 172, 180, 204, 212,\n\t\t135, 167, 130, 27, 55, 114, 246, 243, 228, 126, 239, 3, 253,\n\t\t62, 124, 224, 59, 169, 156, 183, 63, 135, 147, 91, 189, 69,\n\t\t72, 110, 252, 237, 71, 22, 110, 169, 174, 56, 93, 109, 203,\n\t\t174, 156, 196, 133, 213, 216, 117, 216, 219, 148, 80, 202,\n\t\t62, 237, 34, 130, 154, 132, 245, 199, 233, 109, 252, 107,\n\t\t49, 237, 68, 43, 177, 61, 230, 26, 191, 141, 126, 124, 189,\n\t\t161, 80, 68, 63, 182, 52, 171, 200, 139, 62, 121, 210, 250,\n\t\t105, 77, 18, 19, 222, 36, 137, 206, 245, 147, 38, 211, 189,\n\t\t190, 111, 126, 233, 49, 186, 8, 208, 202, 48, 239, 5, 65,\n\t\t147, 39, 216, 88, 67, 108, 185, 102, 182, 221, 116, 156, 251,\n\t\t243, 182, 235, 229, 145, 250, 233, 170, 207, 3, 112, 136,\n\t\t114, 185, 12, 52, 94, 102, 254, 57, 107, 159, 239, 249, 44,\n\t\t115, 252, 159, 133, 223, 181, 228, 138, 183, 144, 115, 121,\n\t\t167, 196, 77, 26, 67, 13, 156, 186, 241, 29, 18, 154, 150,\n\t\t239, 97, 190, 93, 41, 186, 98, 30, 153, 73, 243, 152, 112,\n\t\t3, 29, 233, 201, 94, 217, 253, 127, 214, 61, 27, 233, 249,\n\t\t121, 242, 172, 121, 134, 190, 98, 98, 174, 216, 113, 18, 145,\n\t\t83, 225, 233, 45, 108, 224, 19, 189, 72, 252, 40, 150, 71,\n\t\t98, 150, 120, 144, 60, 240, 85, 28, 191, 93, 124, 146, 148,\n\t\t40, 227, 149, 145, 81, 209, 236, 19, 245, 225, 238, 79, 226,\n\t\t75, 119, 97, 252, 115, 176, 89, 139, 243, 158, 121, 18, 222,\n\t\t69, 77, 37, 248, 18, 164, 126, 90, 148, 159, 70, 42, 247,\n\t\t168, 137, 74, 152, 148, 48, 89, 199, 229, 25, 0, 28, 2, 217,\n\t\t138, 169, 227, 38, 247, 222, 242, 99, 162, 179, 123, 169,\n\t\t215, 132, 143, 169, 194, 9, 215, 119, 236, 174, 114, 180,\n\t\t203, 219, 116, 202, 16, 159, 217, 62, 38, 116, 146, 132, 141,\n\t\t174, 81, 6, 133, 154, 195, 198, 161, 216, 148, 210, 79, 65,\n\t\t67, 45, 0, 39, 120, 165, 220, 26, 30, 72, 69, 76, 161, 7,\n\t\t12, 203, 134, 3, 46, 201, 122, 111, 212, 57, 28, 173, 54,\n\t\t187, 227, 187, 67, 14, 170, 7, 175, 235, 92, 110, 78, 97,\n\t\t252, 186, 156, 64, 14, 23, 134, 147, 9, 203, 155, 127, 220,\n\t\t108, 67, 149, 120, 19, 16, 167, 72, 248, 112, 224, 59, 35,\n\t\t159, 199, 50, 242, 60, 72, 92, 49, 216, 61, 211, 154, 156,\n\t\t39, 247, 237, 114, 67, 207, 117, 10, 207, 116, 76, 219, 83,\n\t\t161, 123, 78, 88, 223, 54, 227, 168, 50, 65, 209, 223, 107,\n\t\t85, 46, 27, 43, 107, 90, 207, 174, 252, 101, 3, 89, 3, 253,\n\t\t61, 77, 187, 207, 202, 84, 155, 3, 102, 240, 65, 41, 247,\n\t\t242, 252, 228, 44, 60, 42, 112, 108, 243, 39, 51, 26, 120,\n\t\t139, 191, 141, 34, 124, 24, 199, 35, 87, 195, 91, 37, 10,\n\t\t141, 129, 27, 27, 97, 12, 26, 165, 4, 90, 3, 68, 71, 48, 176,\n\t\t12, 53, 32, 210, 66, 0, 171, 141, 153, 112, 29, 245, 42, 147,\n\t\t31, 153, 243, 195, 54, 171, 132, 96, 181, 200, 34, 66, 248,\n\t\t14, 126, 92, 215, 155, 33, 242, 154, 190, 188, 83, 168, 232,\n\t\t86, 87, 220, 255, 228, 161, 154, 87, 122, 214, 87, 53, 170,\n\t\t151, 11, 0, 203, 41, 94, 251, 141, 236, 170, 69, 121, 154,\n\t\t164, 250, 122, 181, 198, 222, 217, 1, 138, 6, 87, 45, 54,\n\t\t178, 183, 134, 82, 24, 76, 118, 111, 122, 105, 11, 51, 147,\n\t\t106, 190, 110, 122, 217, 76, 240, 224, 228, 57, 151, 119,\n\t\t242, 160, 32, 125, 245, 28, 133, 42, 99, 227, 223, 12, 211,\n\t\t91, 63, 191, 230, 72, 239, 127, 167, 4, 223, 242, 58, 7, 126,\n\t\t56, 95, 233, 92, 105, 47, 208, 68, 55, 99, 29, 253, 102, 113,\n\t\t5, 15, 89, 117, 33, 169, 73, 18, 91, 35, 121, 37, 193, 77,\n\t\t88, 73, 142, 177, 49, 146, 181, 229, 118, 95, 93, 126, 228,\n\t\t12, 36, 210, 157, 74, 6, 85, 117, 204, 96, 229, 3, 141, 220,\n\t\t60, 133, 20, 145, 82, 155, 28, 16, 193, 223, 117, 217, 229,\n\t\t175, 29, 166, 3, 17, 44, 35, 185, 79, 44, 43, 144, 248, 2,\n\t\t49, 199, 84, 17, 61, 132, 146, 201, 154, 188, 2, 109, 31,\n\t\t27, 97, 73, 25, 54, 106, 118, 154, 161, 215, 198, 5, 215,\n\t\t18, 95, 3, 34, 64, 184, 41, 151, 23, 217, 163, 82, 181, 90,\n\t\t162, 176, 201, 36, 171, 223, 176, 7, 217, 136, 154, 48, 92,\n\t\t147, 24, 248, 140, 192, 142, 63, 184, 255, 107, 100, 92, 26,\n\t\t87, 246, 255, 185, 188, 246, 131, 77, 18, 61, 5, 43, 49, 169,\n\t\t35, 24, 181, 49, 71, 100, 10, 138, 198, 113, 192, 198, 107,\n\t\t200, 6, 33, 116, 62, 88, 246, 89, 175, 200, 32, 83, 248, 63,\n\t\t117, 255, 136, 179, 228, 223, 107, 97, 180, 130, 106, 214,\n\t\t145, 11, 131, 42, 182, 5, 52, 177, 187, 65, 53, 195, 89, 172,\n\t\t35, 141, 219, 65, 173, 109, 179, 204, 33, 155, 68, 226, 243,\n\t\t84, 173, 95, 214, 252, 6, 231, 48, 43, 175, 63, 76, 11, 68,\n\t\t33, 15, 175, 87, 74, 232, 57, 191, 173, 81, 231, 212, 231,\n\t\t146, 252, 50, 126, 186, 113, 227, 167, 170, 146, 75, 170,\n\t\t207, 249, 130, 241, 42, 206, 140, 49, 194, 60, 129, 246, 16,\n\t\t141, 230, 176, 220, 8, 203, 221, 51, 39, 72, 155, 76, 198,\n\t\t136, 243, 36, 219, 168, 40, 48, 2, 73, 236, 51, 88, 12, 88,\n\t\t147, 109, 121, 18, 49, 134, 156, 28, 164, 245, 195, 65, 150,\n\t\t115, 185, 135, 157, 108, 9, 80, 236, 74, 67, 171, 115, 153,\n\t\t40, 128, 160, 20, 5, 180, 3, 162, 144, 183, 197, 238, 66,\n\t\t8, 110, 75, 115, 195, 19, 177, 79, 220, 71, 127, 50, 83, 8,\n\t\t230, 7, 62, 251, 178, 203, 131, 38, 171, 98, 233, 201, 33,\n\t\t6, 164, 149, 183, 149, 120, 119, 5, 189, 153, 208, 205, 27,\n\t\t172, 22, 90, 59, 222, 135, 244, 1, 65, 90, 71, 241, 96, 174,\n\t\t171, 55, 80, 129, 197, 241, 41, 249, 213, 229, 72, 121, 117,\n\t\t240, 241, 226, 112, 179, 161, 150, 142, 56, 161, 155, 184,\n\t\t147, 145, 161, 253, 46, 15, 72, 234, 220, 33, 52, 11, 13,\n\t\t48, 192, 208, 87, 248, 235, 7, 189, 234, 10, 219, 45, 196,\n\t\t87, 45, 146, 137, 177, 232, 234, 214, 153, 101, 232, 40, 85,\n\t\t80, 235, 168, 161, 105, 25, 253, 253, 211, 202, 131, 72, 68,\n\t\t0, 67, 75, 211, 228, 25, 159, 198, 2, 255, 207, 169, 174,\n\t\t9, 164, 22, 173, 101, 231, 158, 61, 207, 119, 63, 23, 249,\n\t\t238, 208, 230, 165, 191, 68, 179, 210, 148, 160, 200, 10,\n\t\t69, 195, 126, 255, 142, 24, 52, 72, 180, 88, 61, 54, 231,\n\t\t44, 211, 170, 157, 134, 201, 58, 108, 209, 144, 249, 206,\n\t\t206, 90, 228, 50, 237, 136, 115, 86, 178, 57, 158, 61, 196,\n\t\t44, 99, 20, 26, 76, 105, 186, 185, 237, 125, 67, 19, 201,\n\t\t195, 147, 166, 157, 207, 4, 13, 80, 14, 136, 65, 189, 6, 246,\n\t\t144, 228, 67, 189, 101, 65, 13, 189, 129, 94, 179, 0, 189,\n\t\t159, 157, 237, 226, 126, 209, 199, 88, 159, 89, 199, 226,\n\t\t213, 247, 133, 154, 139, 190, 88, 44, 115, 190, 239, 144,\n\t\t47, 136, 191, 114, 199, 76, 246, 173, 21, 251, 204, 146, 248,\n\t\t173, 83, 108, 241, 205, 102, 98, 112, 190, 192, 94, 185, 147,\n\t\t31, 213, 69, 157, 104, 50, 77, 8, 244, 77, 82, 75, 3, 197,\n\t\t14, 58, 16, 142, 84, 175, 152, 93, 161, 74, 205, 201, 160,\n\t\t191, 173, 124, 24, 60, 186, 134, 29, 18, 27, 161, 54, 154,\n\t\t227, 130, 56, 100, 74, 40, 229, 154, 144, 215, 18, 98, 24,\n\t\t90, 245, 78, 148, 54, 197, 156, 21, 99, 102, 140, 190, 220,\n\t\t196, 204, 219, 80, 165, 92, 124, 62, 205, 190, 217, 130, 140,\n\t\t225, 156, 20, 17, 139, 195, 224, 197, 138, 89, 74, 224, 87,\n\t\t58, 119, 174, 211, 233, 121, 37, 194, 80, 231, 248, 151, 80,\n\t\t225, 46, 139, 195, 56, 156, 145, 113, 249, 226, 134, 110,\n\t\t128, 183, 108, 145, 94, 117, 151, 51, 50, 134, 193, 150, 217,\n\t\t249, 169, 64, 87, 20, 171, 83, 197, 35, 170, 124, 13, 227,\n\t\t232, 133, 187, 59, 48, 228, 56, 15, 205, 148, 56, 238, 63,\n\t\t92, 214, 189, 220, 205, 6, 107, 24, 105, 255, 199, 5, 108,\n\t\t34, 213, 57, 59, 58, 162, 44, 235, 197, 189, 92, 147, 7, 164,\n\t\t212, 134, 215, 242, 225, 224, 57, 201, 84, 153, 161, 16, 197,\n\t\t55, 194, 157, 200, 4, 208, 155, 8, 215, 70, 173, 150, 148,\n\t\t19, 194, 26, 168, 228, 96, 44, 85, 146, 27, 76, 251, 135,\n\t\t75, 202, 245, 103, 55, 204, 91, 192, 23, 120, 61, 233, 35,\n\t\t220, 228, 74, 229, 35, 197, 86, 118, 225, 176, 171, 42, 175,\n\t\t211, 111, 84, 153, 91, 79, 210, 90, 132, 245, 120, 114, 246,\n\t\t197, 61, 253, 155, 55, 141, 33, 132, 54, 194, 227, 199, 132,\n\t\t110, 66, 1, 206, 233, 244, 232, 217, 176, 65, 75, 203, 57,\n\t\t158, 6, 144, 157, 81, 51, 218, 130, 46, 110, 94, 94, 72, 182,\n\t\t238, 134, 226, 241, 200, 246, 62, 92, 135, 8, 192, 230, 236,\n\t\t89, 24, 183, 88, 106, 73, 236, 41, 169, 99, 40, 109, 171,\n\t\t70, 171, 32, 0, 218, 61, 137, 0, 227, 182, 214, 104, 20, 202,\n\t\t156, 75, 209, 252, 248, 227, 56, 213, 209, 211, 136, 192,\n\t\t175, 194, 219, 123, 156, 165, 42, 14, 48, 92, 145, 25, 88,\n\t\t108, 90, 42, 34, 79, 75, 83, 198, 46, 126, 97, 94, 90, 77,\n\t\t85, 238, 209, 70, 133, 184, 239, 31, 173, 76, 79, 83, 242,\n\t\t98, 30, 69, 16, 105, 218, 170, 119, 18, 242, 47, 116, 177,\n\t\t225, 133, 162, 134, 73, 13, 161, 86, 103, 206, 201, 15, 73,\n\t\t157, 17, 28, 229, 233, 248, 51, 23, 155, 104, 119, 103, 135,\n\t\t164, 212, 19, 137, 166, 37, 156, 177, 164, 58, 92, 14, 149,\n\t\t229, 95, 11, 67, 36, 241, 121, 237, 67, 90, 25, 146, 44, 13,\n\t\t201, 190, 144, 125, 186, 134, 233, 99, 104, 180, 97, 160,\n\t\t134, 121, 139, 94, 208, 78, 242, 67, 10, 190, 152, 173, 71,\n\t\t102, 24, 120, 190, 15, 178, 209, 41, 151, 204, 15, 61, 65,\n\t\t167, 68, 62, 135, 158, 183, 22, 195, 39, 129, 124, 56, 13,\n\t\t49, 189, 246, 35, 5, 80, 225, 174, 235, 229, 179, 247, 60,\n\t\t250, 253, 156, 84, 242, 241, 78, 78, 20, 149, 41, 113, 155,\n\t\t208, 136, 34, 44, 252, 121, 54, 118, 131, 194, 55, 62, 234,\n\t\t40, 246, 222, 109, 227, 135, 191, 208, 68, 121, 161, 181,\n\t\t62, 153, 176, 3, 190, 190, 65, 81, 224, 135, 36, 185, 50,\n\t\t23, 247, 229, 195, 116, 83, 36, 119, 199, 26, 12, 177, 187,\n\t\t1, 119, 36, 156, 99, 101, 26, 82, 31, 241, 13, 184, 199, 117,\n\t\t43, 64, 87, 118, 60, 248, 137, 59, 159, 73, 108, 172, 199,\n\t\t113, 16, 204, 157, 33, 95, 92, 135, 188, 198, 146, 115, 126,\n\t\t92, 252, 210, 142, 91, 93, 133, 229, 122, 133, 93, 141, 108,\n\t\t92, 39, 39, 7, 214, 203, 234, 248, 162, 106, 158, 40, 30,\n\t\t183, 183, 56, 131, 19, 241, 62, 242, 196, 96, 98, 148, 31,\n\t\t248, 152, 250, 211, 133, 16, 167, 89, 11, 170, 247, 188, 245,\n\t\t118, 177, 195, 250, 173, 213, 5, 203, 105, 66, 238, 158, 210,\n\t\t233, 78, 52, 96, 55, 45, 47, 173, 35, 89, 45, 32, 35, 43,\n\t\t183, 171, 47, 223, 132, 109, 56, 209, 252, 109, 193, 12, 105,\n\t\t18, 41, 73, 125, 11, 0, 158, 115, 42, 196, 151, 234, 239,\n\t\t85, 235, 151, 249, 211, 178, 152, 77, 80, 188, 183, 207, 191,\n\t\t44, 182, 142, 114, 109, 75, 85, 238, 234, 147, 183, 111, 159,\n\t\t92, 157, 91, 181, 229, 154, 142, 194, 102, 253, 235, 227,\n\t\t157, 0, 109, 10, 120, 241, 155, 200, 225, 16, 181, 141, 4,\n\t\t142, 136, 28, 169, 251, 48, 217, 228, 67, 202, 200, 91, 72,\n\t\t237, 214, 88, 140, 219, 209, 243, 177, 229, 70, 14, 141, 83,\n\t\t241, 99, 174, 185, 25, 48, 227, 1, 33, 181, 13, 151, 158,\n\t\t110, 132, 233, 18, 206, 157, 13, 235, 62, 65, 32, 190, 38,\n\t\t229, 70, 217, 60, 209, 105, 25, 56, 116, 114, 50, 195, 40,\n\t\t61, 240, 85, 28, 59, 37, 95, 252, 98, 117, 47, 214, 171, 212,\n\t\t159, 97, 70, 218, 84, 115, 161, 157, 28, 90, 168, 10, 206,\n\t\t254, 172, 175, 190, 202, 159, 181, 200, 212, 248, 179, 77,\n\t\t150, 134, 16, 34, 174, 246, 219, 116, 198, 59, 9, 84, 47,\n\t\t55, 250, 133, 228, 156, 15, 175, 133, 69, 152, 242, 196, 18,\n\t\t17, 227, 73, 63, 144, 87, 32, 228, 172, 80, 79, 217, 154,\n\t\t152, 155, 108, 144, 121, 78, 117, 132, 220, 210, 200, 195,\n\t\t134, 237, 39, 243, 102, 138, 247, 90, 24, 15, 254, 193, 159,\n\t\t215, 152, 113, 61, 219, 177, 56, 159, 165, 164, 190, 236,\n\t\t97, 54, 133, 224, 79, 104, 126, 78, 167, 172, 224, 152, 169,\n\t\t0, 120, 189, 120, 218, 161, 99, 102, 186, 78, 121, 75, 188,\n\t\t146, 99, 231, 197, 178, 99, 47, 81, 148, 152, 42, 130, 227,\n\t\t240, 252, 22, 203, 75, 227, 230, 167, 112, 226, 124, 205,\n\t\t54, 2, 166, 74, 233, 147, 63, 221, 62, 124, 194, 54, 61, 15,\n\t\t0, 78, 49, 49, 147, 164, 244, 171, 139, 137, 34, 94, 161,\n\t\t36, 77, 204, 84, 116, 178, 229, 31, 9, 240, 110, 135, 47,\n\t\t195, 20, 138, 1, 122, 174, 5, 217, 89, 217, 65, 109, 112,\n\t\t39, 74, 12, 146, 26, 140, 32, 126, 52, 116, 72, 101, 107,\n\t\t44, 64, 227, 171, 151, 38, 40, 82, 98, 201, 26, 186, 41, 29,\n\t\t201, 35, 146, 86, 174, 47, 167, 69, 122, 144, 134, 113, 234,\n\t\t155, 101, 81, 248, 4, 61, 242, 217, 216, 37, 41, 240, 175,\n\t\t202, 147, 38, 28, 25, 84, 244, 142, 198, 218, 142, 171, 227,\n\t\t142, 235, 188, 159, 3, 126, 144, 4, 101, 143, 43, 90, 29,\n\t\t39, 90, 221, 18, 9, 64, 64, 50, 6, 87, 31, 135, 146, 92, 224,\n\t\t231, 208, 234, 184, 236, 104, 81, 140, 75, 115, 15, 114, 75,\n\t\t30, 191, 100, 196, 247, 157, 249, 252, 218, 149, 250, 173,\n\t\t93, 66, 59, 226, 37, 177, 15, 166, 76, 143, 220, 23, 210,\n\t\t95, 11, 24, 176, 245, 7, 128, 179, 145, 36, 128, 11, 112,\n\t\t230, 45, 91, 187, 70, 244, 28, 7, 140, 56, 27, 206, 73, 104,\n\t\t162, 244, 73, 181, 2, 253, 16, 133, 246, 47, 19, 87, 171,\n\t\t229, 2, 45, 230, 189, 45, 250, 148, 27, 37, 224, 255, 181,\n\t\t57, 49, 114, 122, 202, 224, 218, 171, 191, 77, 165, 125, 223,\n\t\t208, 169, 106, 217, 137, 161, 31, 160, 108, 250, 178, 16,\n\t\t2, 182, 130, 172, 108, 78, 0, 204, 30, 185, 91, 135, 221,\n\t\t45, 99, 140, 93, 62, 15, 18, 3, 252, 147, 146, 252, 3, 130,\n\t\t164, 140, 87, 142, 150, 75, 45, 238, 49, 84, 64, 110, 248,\n\t\t118, 175, 231, 192, 252, 90, 122, 30, 180, 8, 216, 245, 221,\n\t\t82, 54, 159, 15, 149, 152, 29, 223, 155, 205, 147, 33, 190,\n\t\t135, 222, 101, 130, 22, 255, 235, 43, 121, 189, 6, 15, 46,\n\t\t183, 182, 14, 219, 129, 249, 252, 65, 0, 55, 122, 182, 94,\n\t\t241, 71, 188, 210, 234, 105, 64, 190, 119, 60, 215, 189, 239,\n\t\t112, 161, 63, 113, 108, 55, 27, 215, 125, 162, 234, 135, 14,\n\t\t3, 239, 229, 228, 150, 101, 211, 91, 142, 250, 179, 183, 0,\n\t\t30, 140, 226, 25, 73, 136, 35, 243, 107, 13, 112, 38, 85,\n\t\t218, 229, 249, 191, 153, 183, 0, 185, 166, 206, 99, 132, 200,\n\t\t100, 140, 130, 240, 65, 20, 85, 50, 84, 87, 142, 31, 183,\n\t\t13, 12, 60, 120, 224, 38, 219, 216, 250, 138, 106, 140, 149,\n\t\t19, 86, 198, 109, 244, 40, 88, 232, 70, 180, 185, 161, 166,\n\t\t73, 148, 3, 31, 25, 89, 161, 112, 237, 113, 39, 40, 0, 80,\n\t\t4, 92, 50, 98, 149, 79, 34, 131, 240, 114, 124, 80, 228, 19,\n\t\t229, 103, 64, 0, 112, 201, 140, 141, 24, 141, 52, 49, 252,\n\t\t219, 58, 202, 42, 26, 226, 238, 168, 62, 97, 134, 225, 166,\n\t\t242, 75, 85, 21, 57, 81, 58, 79, 92, 50, 159, 236, 30, 83,\n\t\t37, 12, 0, 0, 60, 30, 125, 140, 136, 193, 208, 211, 113, 12,\n\t\t67, 89, 141, 25, 162, 24, 102, 31, 211, 114, 62, 233, 174,\n\t\t62, 151, 163, 138, 218, 199, 0, 82, 65, 127, 12, 60, 174,\n\t\t24, 124, 12, 184, 142, 23, 120, 85, 86, 199, 180, 250, 79,\n\t\t46, 195, 149, 158, 245, 87, 186, 242, 10, 90, 10, 41, 223,\n\t\t82, 170, 236, 158, 126, 142, 37, 64, 152, 83, 123, 141, 229,\n\t\t117, 151, 164, 179, 46, 34, 7, 92, 37, 97, 188, 235, 167,\n\t\t96, 198, 79, 63, 113, 149, 81, 172, 207, 80, 171, 191, 20,\n\t\t35, 67, 179, 37, 17, 152, 151, 77, 128, 135, 98, 118, 105,\n\t\t79, 198, 118, 205, 183, 141, 24, 88, 157, 7, 200, 186, 172,\n\t\t91, 224, 84, 47, 32, 147, 139, 238, 177, 164, 40, 151, 124,\n\t\t1, 196, 2, 60, 94, 249, 43, 19, 140, 206, 183, 45, 54, 216,\n\t\t253, 136, 170, 207, 92, 76, 113, 67, 117, 100, 128, 31, 7,\n\t\t165, 84, 233, 223, 9, 4, 99, 179, 251, 104, 129, 9, 3, 33,\n\t\t157, 244, 184, 53, 125, 19, 218, 120, 49, 51, 190, 239, 154,\n\t\t92, 165, 38, 191, 230, 243, 26, 8, 114, 159, 180, 176, 106,\n\t\t222, 58, 31, 192, 234, 175, 189, 223, 37, 189, 152, 120, 49,\n\t\t102, 245, 133, 53, 68, 148, 179, 55, 185, 163, 243, 8, 157,\n\t\t203, 222, 238, 27, 101, 214, 39, 53, 117, 187, 115, 71, 154,\n\t\t185, 251, 60, 189, 51, 185, 99, 232, 171, 136, 170, 84, 199,\n\t\t80, 128, 165, 133, 12, 213, 221, 217, 145, 213, 209, 185,\n\t\t240, 95, 208, 98, 9, 0, 50, 90, 12, 234, 212, 104, 170, 147,\n\t\t146, 28, 105, 148, 241, 70, 189, 238, 96, 187, 119, 86, 40,\n\t\t231, 65, 31, 73, 72, 204, 205, 227, 213, 155, 224, 234, 83,\n\t\t7, 214, 121, 70, 152, 40, 60, 115, 108, 252, 27, 201, 53,\n\t\t201, 55, 64, 134, 159, 104, 198, 242, 160, 99, 131, 59, 247,\n\t\t90, 194, 74, 69, 129, 54, 57, 53, 243, 123, 234, 98, 118,\n\t\t125, 120, 99, 61, 11, 67, 40, 218, 65, 120, 203, 77, 79, 224,\n\t\t252, 87, 91, 254, 111, 176, 154, 125, 137, 205, 58, 193, 150,\n\t\t55, 187, 165, 187, 138, 32, 121, 75, 56, 36, 214, 156, 48,\n\t\t246, 37, 176, 28, 146, 130, 86, 146, 215, 242, 180, 130, 186,\n\t\t240, 237, 240, 57, 210, 212, 252, 57, 3, 155, 144, 173, 216,\n\t\t229, 255, 252, 73, 94, 25, 68, 98, 56, 24, 131, 208, 93, 89,\n\t\t11, 250, 212, 111, 129, 238, 64, 251, 96, 59, 252, 101, 27,\n\t\t130, 242, 171, 9, 172, 110, 137, 141, 1, 137, 27, 54, 189,\n\t\t58, 196, 208, 53, 246, 176, 108, 152, 125, 141, 182, 79, 123,\n\t\t240, 131, 44, 177, 94, 229, 127, 50, 173, 125, 217, 217, 115,\n\t\t181, 170, 166, 3, 164, 183, 52, 220, 245, 86, 145, 28, 103,\n\t\t100, 0, 12, 38, 208, 118, 214, 234, 15, 211, 186, 66, 16,\n\t\t217, 70, 202, 52, 71, 126, 1, 217, 178, 94, 210, 175, 200,\n\t\t134, 183, 238, 44, 210, 156, 130, 173, 232, 95, 61, 155, 64,\n\t\t91, 222, 23, 161, 202, 183, 59, 136, 28, 68, 75, 244, 40,\n\t\t200, 90, 0, 255, 204, 122, 176, 104, 238, 113, 48, 132, 57,\n\t\t126, 197, 232, 223, 207, 11, 159, 115, 161, 254, 195, 62,\n\t\t149, 164, 155, 20, 254, 163, 74, 248, 97, 75, 212, 107, 129,\n\t\t226, 49, 61, 252, 148, 106, 244, 11, 69, 21, 252, 13, 217,\n\t\t219, 165, 2, 84, 101, 197, 97, 68, 173, 161, 70, 218, 53,\n\t\t246, 136, 115, 240, 176, 88, 246, 246, 218, 47, 64, 50, 120,\n\t\t23, 25, 196, 183, 240, 33, 214, 54, 110, 133, 192, 231, 91,\n\t\t102, 2, 152, 169, 214, 71, 70, 247, 243, 123, 139, 191, 121,\n\t\t204, 79, 85, 91, 147, 113, 244, 101, 218, 201, 178, 15, 89,\n\t\t170, 122, 237, 62, 218, 94, 27, 3, 193, 193, 0, 218, 136,\n\t\t238, 161, 6, 29, 204, 153, 223, 113, 48, 154, 231, 222, 153,\n\t\t103, 75, 16, 76, 161, 52, 70, 82, 168, 209, 100, 18, 180,\n\t\t40, 26, 181, 165, 220, 43, 215, 159, 24, 73, 228, 122, 231,\n\t\t114, 80, 94, 60, 104, 17, 137, 28, 157, 55, 83, 231, 5, 144,\n\t\t200, 73, 196, 128, 160, 121, 31, 81, 29, 77, 245, 172, 3,\n\t\t136, 73, 100, 18, 232, 253, 209, 203, 211, 59, 150, 199, 185,\n\t\t127, 15, 59, 54, 11, 140, 37, 40, 11, 149, 31, 89, 88, 157,\n\t\t76, 124, 69, 122, 73, 122, 69, 228, 37, 6, 19, 8, 130, 179,\n\t\t107, 104, 124, 218, 29, 144, 69, 95, 207, 252, 129, 56, 98,\n\t\t5, 101, 46, 82, 16, 251, 196, 159, 152, 10, 122, 5, 72, 246,\n\t\t0, 104, 86, 104, 245, 163, 152, 13, 106, 134, 88, 157, 188,\n\t\t204, 154, 152, 248, 17, 67, 220, 146, 254, 88, 19, 70, 76,\n\t\t216, 163, 31, 91, 210, 93, 32, 165, 119, 220, 221, 58, 220,\n\t\t226, 30, 143, 59, 183, 12, 183, 14, 86, 109, 73, 127, 110,\n\t\t69, 129, 101, 184, 165, 117, 202, 148, 135, 142, 214, 97,\n\t\t119, 171, 41, 167, 213, 209, 190, 194, 13, 186, 122, 29, 89,\n\t\t65, 235, 78, 139, 58, 211, 62, 225, 236, 210, 124, 131, 179,\n\t\t209, 2, 249, 84, 180, 55, 122, 147, 81, 73, 81, 26, 133, 63,\n\t\t231, 89, 130, 58, 8, 20, 62, 197, 223, 236, 47, 100, 243,\n\t\t116, 128, 223, 227, 142, 31, 31, 112, 211, 230, 95, 174, 245,\n\t\t187, 113, 180, 3, 122, 104, 238, 55, 231, 234, 144, 58, 53,\n\t\t126, 193, 53, 109, 159, 79, 115, 15, 56, 94, 104, 143, 24,\n\t\t17, 131, 84, 221, 244, 158, 164, 101, 49, 174, 182, 137, 13,\n\t\t63, 67, 35, 225, 174, 17, 149, 107, 207, 119, 166, 5, 118,\n\t\t124, 145, 174, 5, 80, 212, 41, 20, 243, 97, 157, 115, 38,\n\t\t231, 156, 35, 228, 90, 149, 145, 232, 36, 241, 197, 225, 190,\n\t\t82, 46, 13, 149, 106, 241, 75, 145, 118, 43, 243, 7, 243,\n\t\t160, 91, 16, 132, 241, 1, 80, 60, 17, 97, 171, 24, 81, 129,\n\t\t70, 59, 71, 225, 53, 43, 243, 80, 245, 251, 138, 82, 86, 168,\n\t\t110, 125, 172, 226, 113, 88, 112, 58, 141, 82, 195, 220, 233,\n\t\t51, 204, 80, 44, 166, 82, 189, 106, 86, 151, 37, 110, 150,\n\t\t161, 230, 79, 118, 206, 138, 179, 116, 205, 58, 114, 105,\n\t\t72, 99, 132, 99, 193, 202, 178, 3, 119, 111, 246, 88, 45,\n\t\t81, 113, 169, 71, 179, 0, 71, 13, 60, 72, 6, 174, 51, 29,\n\t\t215, 130, 117, 16, 73, 70, 154, 185, 44, 163, 81, 133, 165,\n\t\t154, 202, 232, 102, 34, 41, 112, 46, 208, 76, 233, 194, 213,\n\t\t96, 183, 211, 121, 108, 31, 215, 89, 206, 113, 96, 13, 223,\n\t\t225, 27, 23, 79, 46, 206, 236, 104, 254, 25, 157, 92, 246,\n\t\t109, 98, 218, 207, 179, 167, 95, 157, 66, 145, 208, 126, 94,\n\t\t86, 219, 58, 192, 32, 197, 94, 220, 247, 184, 189, 209, 91,\n\t\t130, 208, 190, 171, 160, 15, 119, 3, 126, 219, 127, 212, 120,\n\t\t107, 127, 84, 76, 25, 198, 169, 33, 59, 75, 147, 225, 12,\n\t\t91, 236, 210, 157, 33, 213, 166, 244, 51, 225, 16, 146, 189,\n\t\t142, 59, 249, 230, 247, 82, 47, 57, 73, 238, 37, 253, 254,\n\t\t230, 100, 238, 186, 108, 8, 9, 63, 3, 234, 162, 96, 52, 142,\n\t\t53, 231, 74, 131, 126, 238, 85, 212, 152, 234, 237, 233, 137,\n\t\t61, 233, 187, 103, 46, 77, 247, 205, 199, 36, 248, 245, 76,\n\t\t142, 111, 250, 233, 124, 214, 140, 202, 8, 123, 165, 11, 133,\n\t\t198, 98, 209, 224, 213, 132, 164, 131, 9, 179, 221, 71, 50,\n\t\t162, 86, 47, 255, 16, 153, 254, 161, 72, 99, 100, 75, 98,\n\t\t86, 21, 69, 76, 169, 2, 27, 218, 86, 8, 86, 112, 60, 60, 118,\n\t\t121, 112, 221, 252, 136, 112, 90, 217, 217, 18, 132, 11, 9,\n\t\t3, 73, 31, 98, 119, 241, 136, 126, 80, 192, 11, 213, 24, 171,\n\t\t24, 47, 162, 108, 174, 114, 174, 140, 232, 133, 205, 245,\n\t\t63, 156, 227, 61, 235, 156, 119, 92, 242, 5, 119, 243, 37,\n\t\t197, 133, 105, 64, 78, 216, 120, 72, 127, 104, 255, 155, 158,\n\t\t35, 95, 154, 72, 24, 180, 200, 24, 79, 65, 161, 102, 136,\n\t\t10, 81, 226, 12, 20, 138, 18, 47, 50, 162, 49, 164, 166, 47,\n\t\t106, 28, 161, 179, 175, 67, 210, 225, 215, 167, 49, 155, 99,\n\t\t162, 225, 232, 152, 112, 104, 250, 74, 204, 237, 74, 22, 58,\n\t\t179, 91, 215, 234, 200, 104, 202, 112, 180, 234, 186, 243,\n\t\t182, 22, 108, 157, 217, 109, 110, 182, 199, 169, 227, 236,\n\t\t205, 230, 110, 128, 187, 74, 228, 56, 96, 228, 13, 99, 27,\n\t\t52, 181, 215, 215, 43, 50, 151, 235, 63, 138, 204, 24, 46,\n\t\t48, 51, 123, 18, 2, 218, 79, 80, 198, 109, 198, 41, 85, 50,\n\t\t74, 6, 97, 205, 34, 223, 209, 101, 53, 84, 248, 123, 170,\n\t\t230, 23, 98, 232, 235, 80, 163, 80, 238, 24, 215, 163, 98,\n\t\t171, 217, 35, 114, 184, 30, 54, 82, 43, 166, 102, 47, 242,\n\t\t3, 215, 212, 72, 214, 241, 31, 223, 255, 75, 137, 70, 161,\n\t\t64, 92, 246, 244, 79, 219, 86, 7, 177, 91, 22, 14, 37, 25,\n\t\t5, 149, 203, 192, 32, 45, 219, 65, 134, 193, 192, 0, 246,\n\t\t162, 113, 163, 9, 13, 53, 95, 105, 180, 175, 53, 59, 7, 4,\n\t\t147, 33, 181, 184, 252, 166, 52, 184, 96, 222, 203, 78, 89,\n\t\t42, 177, 80, 23, 219, 108, 186, 198, 105, 150, 159, 230, 54,\n\t\t109, 241, 34, 225, 51, 142, 90, 75, 51, 46, 110, 95, 93, 145,\n\t\t154, 170, 247, 67, 86, 115, 233, 74, 58, 169, 243, 11, 145,\n\t\t219, 53, 157, 1, 228, 254, 206, 23, 206, 127, 237, 252, 68,\n\t\t242, 86, 139, 214, 116, 145, 103, 177, 245, 168, 222, 173,\n\t\t101, 210, 34, 175, 118, 37, 93, 115, 12, 36, 195, 235, 91,\n\t\t221, 121, 121, 201, 103, 67, 139, 35, 114, 185, 91, 162, 163,\n\t\t135, 221, 173, 93, 93, 10, 146, 239, 112, 171, 251, 181, 152,\n\t\t22, 48, 220, 129, 2, 76, 162, 240, 243, 40, 192, 216, 152,\n\t\t78, 118, 226, 215, 115, 75, 111, 4, 140, 87, 226, 231, 82,\n\t\t96, 50, 121, 56, 167, 254, 175, 99, 148, 210, 191, 39, 107,\n\t\t213, 124, 31, 229, 255, 12, 95, 63, 72, 239, 255, 191, 221,\n\t\t103, 84, 35, 75, 90, 243, 112, 237, 218, 215, 85, 229, 231,\n\t\t224, 60, 9, 95, 104, 213, 151, 54, 225, 44, 107, 219, 214,\n\t\t57, 117, 25, 107, 93, 203, 213, 214, 248, 136, 6, 0, 101,\n\t\t145, 147, 91, 102, 6, 172, 93, 82, 86, 85, 50, 83, 147, 81,\n\t\t58, 255, 30, 104, 177, 45, 194, 145, 65, 14, 160, 128, 144,\n\t\t246, 106, 65, 181, 60, 39, 47, 104, 79, 178, 111, 211, 197,\n\t\t166, 200, 252, 127, 42, 98, 61, 79, 210, 24, 12, 110, 118,\n\t\t91, 115, 255, 219, 211, 115, 246, 213, 5, 36, 84, 190, 120,\n\t\t97, 158, 78, 153, 60, 51, 168, 112, 117, 94, 235, 113, 174,\n\t\t2, 89, 168, 41, 104, 9, 222, 152, 195, 116, 51, 41, 91, 19,\n\t\t40, 226, 9, 250, 57, 131, 15, 246, 99, 170, 219, 118, 90,\n\t\t25, 185, 114, 198, 186, 227, 27, 180, 84, 141, 33, 5, 117,\n\t\t145, 177, 126, 131, 207, 15, 168, 210, 194, 86, 234, 105,\n\t\t149, 21, 84, 57, 81, 96, 195, 122, 151, 74, 6, 114, 158, 168,\n\t\t171, 58, 78, 211, 54, 226, 186, 192, 165, 203, 102, 110, 237,\n\t\t214, 124, 90, 246, 244, 152, 8, 171, 147, 23, 153, 152, 143,\n\t\t109, 110, 106, 174, 41, 45, 71, 24, 165, 220, 90, 126, 15,\n\t\t8, 220, 181, 169, 69, 224, 123, 117, 204, 46, 4, 7, 59, 170,\n\t\t161, 174, 216, 13, 7, 193, 158, 161, 195, 139, 159, 148, 20,\n\t\t85, 30, 164, 143, 52, 240, 32, 124, 34, 93, 240, 130, 191,\n\t\t11, 12, 42, 143, 90, 193, 64, 99, 37, 113, 186, 8, 134, 241,\n\t\t231, 26, 29, 91, 87, 243, 179, 145, 145, 92, 113, 18, 44,\n\t\t154, 145, 34, 26, 123, 240, 55, 64, 36, 47, 4, 160, 62, 192,\n\t\t202, 141, 240, 45, 81, 211, 243, 207, 92, 248, 57, 22, 191,\n\t\t212, 19, 23, 16, 20, 128, 99, 190, 22, 192, 44, 232, 7, 226,\n\t\t65, 226, 15, 128, 35, 189, 231, 80, 204, 14, 122, 44, 182,\n\t\t69, 207, 82, 62, 235, 243, 40, 17, 134, 160, 206, 255, 174,\n\t\t132, 123, 210, 9, 165, 44, 34, 105, 226, 177, 80, 222, 19,\n\t\t214, 81, 12, 249, 238, 143, 213, 220, 147, 139, 49, 114, 189,\n\t\t76, 47, 199, 136, 229, 247, 10, 52, 17, 253, 157, 90, 45,\n\t\t34, 242, 33, 107, 21, 146, 230, 56, 119, 66, 191, 211, 2,\n\t\t140, 192, 147, 166, 240, 142, 94, 133, 198, 106, 249, 103,\n\t\t235, 204, 107, 124, 213, 222, 187, 131, 187, 17, 58, 14, 109,\n\t\t224, 101, 243, 57, 144, 223, 105, 32, 218, 82, 22, 224, 209,\n\t\t165, 143, 242, 193, 58, 250, 3, 54, 48, 53, 61, 74, 254, 225,\n\t\t82, 109, 43, 103, 89, 151, 97, 102, 192, 11, 249, 69, 210,\n\t\t42, 223, 22, 240, 168, 136, 56, 231, 49, 80, 99, 95, 37, 45,\n\t\t226, 11, 8, 28, 173, 142, 131, 24, 132, 218, 104, 173, 80,\n\t\t250, 238, 183, 98, 89, 247, 111, 239, 192, 8, 212, 84, 238,\n\t\t217, 221, 158, 119, 227, 158, 238, 185, 140, 46, 122, 26,\n\t\t135, 242, 121, 237, 73, 229, 148, 199, 242, 148, 202, 192,\n\t\t199, 82, 32, 26, 30, 19, 239, 10, 45, 219, 181, 115, 70, 240,\n\t\t166, 77, 183, 206, 56, 186, 21, 168, 172, 121, 193, 92, 241,\n\t\t152, 56, 18, 137, 76, 200, 206, 78, 136, 89, 180, 110, 189,\n\t\t201, 24, 83, 146, 175, 48, 180, 4, 226, 60, 46, 87, 187, 86,\n\t\t134, 34, 65, 66, 171, 110, 116, 251, 138, 205, 209, 26, 115,\n\t\t158, 51, 156, 2, 129, 68, 85, 144, 7, 234, 234, 227, 38, 72,\n\t\t28, 252, 175, 120, 129, 129, 190, 220, 33, 254, 55, 88, 12,\n\t\t56, 168, 51, 122, 104, 6, 213, 199, 29, 115, 56, 134, 29,\n\t\t45, 37, 37, 173, 162, 143, 227, 237, 196, 211, 237, 204, 33,\n\t\t44, 213, 13, 93, 243, 210, 242, 170, 168, 185, 188, 16, 87,\n\t\t8, 207, 222, 22, 155, 190, 213, 230, 252, 60, 61, 70, 119,\n\t\t111, 226, 132, 188, 220, 83, 243, 77, 70, 8, 133, 252, 163,\n\t\t139, 153, 254, 115, 142, 246, 178, 44, 112, 247, 252, 36,\n\t\t45, 91, 128, 69, 31, 95, 176, 96, 178, 90, 55, 117, 150, 79,\n\t\t14, 38, 30, 147, 28, 156, 25, 230, 197, 38, 15, 154, 60, 83,\n\t\t109, 182, 148, 208, 192, 204, 24, 31, 12, 58, 22, 147, 227,\n\t\t179, 84, 59, 85, 61, 249, 172, 231, 249, 136, 209, 203, 4,\n\t\t211, 65, 81, 167, 171, 74, 5, 84, 136, 60, 211, 2, 4, 69,\n\t\t169, 222, 236, 83, 206, 79, 225, 236, 18, 99, 0, 130, 53,\n\t\t225, 20, 202, 51, 10, 69, 249, 47, 41, 59, 162, 237, 45, 184,\n\t\t218, 58, 51, 41, 120, 60, 147, 93, 248, 32, 121, 16, 94, 190,\n\t\t58, 109, 106, 254, 9, 25, 212, 225, 13, 119, 46, 206, 178,\n\t\t84, 10, 56, 82, 148, 29, 226, 247, 119, 205, 109, 76, 33,\n\t\t167, 200, 244, 212, 116, 24, 199, 212, 63, 205, 210, 106,\n\t\t169, 218, 126, 247, 81, 70, 202, 8, 221, 248, 1, 143, 96,\n\t\t164, 10, 30, 79, 220, 75, 54, 103, 61, 101, 234, 57, 59, 77,\n\t\t79, 141, 197, 184, 41, 152, 219, 53, 127, 207, 185, 195, 92,\n\t\t91, 90, 196, 153, 136, 219, 89, 170, 99, 126, 252, 152, 51,\n\t\t149, 238, 196, 77, 228, 20, 149, 174, 101, 222, 153, 227,\n\t\t101, 127, 86, 128, 78, 254, 84, 94, 111, 198, 76, 185, 92,\n\t\t165, 23, 27, 7, 6, 34, 7, 82, 114, 69, 42, 105, 202, 227,\n\t\t58, 76, 174, 159, 213, 184, 195, 247, 54, 21, 113, 10, 159,\n\t\t144, 154, 243, 249, 1, 79, 102, 178, 220, 111, 21, 249, 20,\n\t\t237, 200, 237, 22, 94, 171, 132, 47, 229, 246, 136, 150, 146,\n\t\t175, 160, 187, 89, 64, 181, 151, 94, 34, 241, 215, 255, 67,\n\t\t121, 69, 124, 77, 66, 72, 175, 137, 189, 160, 228, 63, 137,\n\t\t2, 9, 189, 196, 59, 68, 212, 142, 162, 161, 72, 24, 125, 16,\n\t\t74, 244, 41, 16, 240, 139, 167, 166, 246, 145, 173, 37, 100,\n\t\t191, 143, 153, 153, 30, 152, 180, 216, 163, 148, 227, 136,\n\t\t37, 63, 34, 18, 147, 193, 248, 26, 27, 26, 52, 246, 65, 60,\n\t\t202, 88, 231, 118, 56, 154, 255, 82, 233, 173, 165, 32, 158,\n\t\t73, 44, 40, 211, 130, 24, 230, 207, 138, 254, 147, 240, 18,\n\t\t219, 193, 75, 224, 251, 253, 10, 189, 22, 8, 173, 233, 245,\n\t\t167, 156, 167, 179, 58, 226, 147, 66, 82, 22, 188, 34, 25,\n\t\t213, 110, 210, 248, 84, 160, 52, 140, 162, 142, 47, 210, 223,\n\t\t225, 147, 226, 240, 85, 216, 91, 48, 248, 149, 39, 107, 21,\n\t\t253, 247, 215, 214, 118, 178, 95, 214, 34, 220, 224, 30, 138,\n\t\t218, 95, 35, 254, 186, 200, 201, 6, 176, 71, 209, 44, 165,\n\t\t103, 94, 102, 69, 83, 26, 89, 66, 134, 96, 91, 24, 183, 167,\n\t\t164, 229, 64, 127, 41, 113, 146, 203, 192, 124, 79, 105, 55,\n\t\t214, 142, 147, 225, 236, 216, 238, 169, 11, 124, 220, 189,\n\t\t107, 215, 234, 156, 213, 189, 25, 104, 229, 57, 183, 245,\n\t\t224, 136, 99, 45, 27, 59, 102, 15, 133, 146, 43, 115, 200,\n\t\t70, 39, 116, 83, 83, 26, 169, 76, 170, 148, 193, 186, 229,\n\t\t122, 153, 221, 231, 149, 119, 193, 198, 182, 249, 72, 6, 242,\n\t\t232, 10, 253, 94, 21, 216, 243, 79, 18, 136, 103, 10, 242,\n\t\t64, 34, 19, 159, 83, 170, 87, 253, 213, 236, 112, 184, 215,\n\t\t53, 198, 66, 160, 215, 92, 217, 9, 206, 101, 118, 5, 8, 189,\n\t\t123, 188, 235, 120, 151, 48, 160, 235, 123, 223, 73, 51, 45,\n\t\t219, 171, 101, 60, 24, 90, 68, 120, 54, 31, 191, 49, 129,\n\t\t110, 196, 47, 9, 94, 217, 52, 19, 209, 151, 89, 148, 35, 189,\n\t\t57, 167, 3, 163, 199, 14, 97, 245, 152, 166, 145, 216, 17,\n\t\t63, 75, 103, 109, 30, 192, 173, 209, 73, 158, 129, 47, 102,\n\t\t249, 160, 65, 3, 32, 86, 105, 74, 63, 123, 105, 44, 114, 107,\n\t\t127, 226, 71, 3, 62, 249, 142, 185, 91, 166, 79, 111, 117,\n\t\t143, 141, 201, 198, 134, 199, 100, 79, 133, 74, 109, 28, 110,\n\t\t38, 103, 31, 67, 200, 153, 89, 44, 82, 244, 124, 131, 89,\n\t\t209, 190, 118, 185, 223, 200, 248, 63, 126, 192, 62, 207,\n\t\t233, 228, 112, 234, 41, 67, 227, 100, 74, 253, 51, 153, 43,\n\t\t135, 219, 233, 116, 139, 227, 192, 167, 10, 133, 230, 241,\n\t\t128, 220, 156, 236, 236, 179, 103, 25, 245, 209, 207, 28,\n\t\t121, 102, 69, 215, 51, 214, 173, 171, 44, 96, 232, 232, 224,\n\t\t225, 230, 25, 3, 62, 64, 89, 24, 22, 88, 157, 102, 179, 141,\n\t\t109, 19, 25, 18, 173, 97, 97, 13, 239, 28, 96, 198, 178, 176,\n\t\t96, 53, 24, 93, 112, 255, 162, 80, 245, 83, 106, 131, 131,\n\t\t181, 92, 18, 67, 122, 120, 98, 165, 50, 90, 59, 210, 152,\n\t\t83, 84, 127, 67, 197, 171, 126, 105, 197, 253, 177, 221, 135,\n\t\t45, 157, 0, 103, 89, 19, 67, 0, 25, 99, 137, 217, 71, 96,\n\t\t100, 15, 31, 82, 76, 9, 248, 36, 151, 179, 241, 248, 131,\n\t\t3, 125, 16, 53, 5, 168, 177, 218, 109, 165, 143, 97, 234,\n\t\t20, 224, 86, 194, 150, 42, 125, 12, 3, 145, 244, 83, 142,\n\t\t85, 11, 155, 146, 73, 107, 173, 13, 13, 14, 135, 95, 119,\n\t\t110, 9, 148, 220, 68, 161, 32, 148, 174, 154, 220, 194, 85,\n\t\t230, 23, 61, 215, 145, 164, 29, 26, 68, 32, 4, 134, 2, 34,\n\t\t186, 104, 14, 101, 45, 205, 80, 233, 10, 8, 252, 254, 67,\n\t\t11, 106, 203, 135, 247, 1, 84, 225, 218, 231, 110, 176, 227,\n\t\t33, 60, 212, 248, 12, 202, 246, 225, 134, 140, 219, 72, 16,\n\t\t130, 116, 146, 108, 13, 211, 154, 243, 125, 235, 76, 61, 79,\n\t\t159, 118, 183, 190, 110, 113, 71, 221, 120, 192, 91, 129,\n\t\t13, 109, 223, 214, 242, 161, 114, 123, 201, 171, 72, 99, 47,\n\t\t86, 208, 253, 69, 51, 30, 118, 207, 106, 254, 75, 171, 108,\n\t\t141, 228, 164, 58, 20, 201, 77, 93, 151, 68, 110, 180, 77,\n\t\t153, 210, 223, 191, 26, 94, 155, 105, 147, 240, 72, 247, 129,\n\t\t224, 37, 45, 236, 173, 212, 246, 202, 89, 193, 181, 185, 140,\n\t\t218, 37, 183, 184, 114, 214, 63, 40, 53, 74, 255, 63, 223,\n\t\t61, 1, 133, 69, 169, 147, 222, 213, 43, 239, 253, 143, 82,\n\t\t131, 208, 96, 123, 173, 131, 237, 80, 240, 250, 19, 48, 2,\n\t\t231, 226, 124, 29, 129, 201, 156, 69, 235, 121, 33, 240, 9,\n\t\t16, 154, 164, 7, 206, 134, 253, 235, 206, 122, 205, 231, 114,\n\t\t225, 9, 187, 126, 245, 102, 48, 134, 90, 159, 86, 25, 151,\n\t\t27, 153, 228, 214, 57, 162, 215, 152, 39, 225, 177, 30, 233,\n\t\t9, 128, 103, 189, 49, 204, 237, 130, 44, 193, 21, 186, 201,\n\t\t222, 107, 81, 125, 189, 204, 100, 8, 134, 200, 102, 113, 52,\n\t\t82, 89, 72, 14, 123, 71, 65, 108, 175, 55, 212, 95, 59, 64,\n\t\t132, 253, 102, 145, 161, 20, 142, 129, 49, 88, 201, 220, 10,\n\t\t206, 135, 97, 228, 111, 57, 4, 26, 4, 21, 208, 31, 5, 227,\n\t\t242, 120, 49, 110, 140, 73, 154, 84, 48, 150, 215, 150, 122,\n\t\t228, 186, 54, 163, 216, 95, 131, 12, 19, 90, 242, 214, 248,\n\t\t62, 77, 179, 217, 173, 241, 84, 198, 109, 56, 150, 241, 61,\n\t\t217, 171, 251, 130, 149, 113, 6, 235, 9, 245, 197, 177, 243,\n\t\t124, 89, 125, 21, 78, 177, 99, 59, 246, 72, 26, 117, 122,\n\t\t62, 21, 178, 24, 229, 6, 40, 157, 207, 247, 74, 10, 153, 135,\n\t\t183, 155, 42, 51, 174, 63, 200, 133, 11, 230, 223, 228, 130,\n\t\t91, 227, 111, 126, 161, 171, 188, 26, 66, 179, 19, 213, 238,\n\t\t227, 60, 94, 103, 134, 90, 85, 226, 63, 63, 25, 31, 148, 106,\n\t\t95, 98, 26, 49, 52, 178, 27, 25, 199, 210, 252, 202, 182,\n\t\t160, 166, 14, 166, 250, 57, 97, 174, 150, 89, 101, 10, 113,\n\t\t115, 129, 173, 228, 245, 238, 221, 142, 44, 127, 117, 59,\n\t\t243, 4, 179, 253, 229, 200, 114, 136, 170, 232, 3, 33, 49,\n\t\t120, 38, 32, 46, 94, 134, 98, 162, 128, 251, 223, 59, 174,\n\t\t204, 102, 181, 74, 228, 165, 224, 42, 177, 196, 152, 202,\n\t\t136, 85, 124, 89, 226, 145, 249, 126, 30, 140, 246, 233, 237,\n\t\t12, 175, 178, 244, 121, 155, 25, 156, 127, 7, 206, 20, 58,\n\t\t214, 109, 92, 39, 6, 200, 40, 210, 209, 40, 19, 4, 35, 99,\n\t\t242, 244, 24, 76, 50, 136, 198, 129, 112, 162, 42, 181, 208,\n\t\t27, 171, 17, 130, 79, 128, 129, 121, 87, 10, 38, 134, 8, 26,\n\t\t189, 16, 218, 154, 238, 163, 78, 130, 205, 237, 118, 144,\n\t\t132, 172, 154, 139, 174, 145, 0, 249, 0, 127, 90, 242, 32,\n\t\t254, 132, 7, 252, 31, 125, 5, 156, 8, 212, 124, 203, 160,\n\t\t227, 111, 127, 148, 254, 151, 172, 187, 160, 189, 151, 244,\n\t\t202, 219, 227, 1, 209, 154, 126, 20, 48, 179, 201, 128, 247,\n\t\t111, 28, 53, 91, 253, 169, 99, 94, 194, 207, 236, 36, 142,\n\t\t6, 220, 57, 132, 202, 88, 155, 153, 153, 94, 117, 113, 44,\n\t\t86, 7, 114, 251, 99, 158, 78, 246, 89, 111, 31, 166, 100,\n\t\t160, 136, 218, 132, 181, 99, 155, 54, 77, 196, 100, 151, 162,\n\t\t214, 4, 143, 197, 232, 80, 38, 27, 192, 177, 55, 174, 35,\n\t\t43, 178, 184, 218, 63, 176, 176, 165, 80, 170, 165, 15, 230,\n\t\t0, 105, 239, 125, 74, 164, 51, 241, 10, 111, 46, 30, 207,\n\t\t163, 195, 203, 19, 143, 151, 173, 158, 94, 170, 156, 92, 111,\n\t\t5, 126, 166, 212, 167, 100, 81, 17, 96, 19, 177, 88, 207,\n\t\t205, 38, 226, 137, 132, 148, 48, 135, 39, 6, 171, 71, 131,\n\t\t201, 81, 7, 86, 159, 165, 252, 226, 93, 84, 241, 110, 138,\n\t\t219, 49, 11, 136, 28, 176, 216, 203, 185, 211, 23, 13, 186,\n\t\t184, 48, 125, 107, 63, 133, 254, 217, 7, 19, 132, 199, 63,\n\t\t115, 4, 97, 124, 38, 251, 174, 219, 63, 128, 123, 90, 96,\n\t\t71, 207, 67, 219, 123, 153, 98, 59, 217, 98, 107, 75, 14,\n\t\t60, 163, 50, 108, 12, 57, 220, 204, 160, 62, 59, 16, 251,\n\t\t213, 225, 96, 224, 24, 99, 188, 74, 93, 221, 143, 10, 255,\n\t\t243, 231, 227, 143, 198, 43, 196, 223, 95, 92, 172, 204, 120,\n\t\t180, 170, 112, 195, 242, 133, 203, 0, 165, 200, 55, 63, 174,\n\t\t98, 40, 149, 206, 89, 171, 26, 103, 70, 164, 21, 163, 88,\n\t\t53, 2, 40, 27, 212, 50, 239, 116, 174, 72, 57, 103, 157, 118,\n\t\t144, 211, 101, 189, 74, 213, 164, 82, 185, 7, 111, 188, 83,\n\t\t229, 19, 63, 162, 2, 148, 47, 148, 69, 59, 32, 189, 248, 21,\n\t\t24, 74, 8, 36, 196, 80, 45, 246, 68, 243, 123, 152, 62, 101,\n\t\t245, 156, 62, 121, 228, 16, 220, 9, 34, 197, 19, 32, 7, 136,\n\t\t127, 140, 132, 115, 155, 227, 150, 111, 255, 74, 141, 44,\n\t\t90, 29, 244, 29, 206, 116, 9, 198, 160, 197, 199, 203, 160,\n\t\t205, 36, 155, 251, 254, 109, 41, 224, 234, 56, 19, 179, 84,\n\t\t126, 2, 129, 15, 55, 244, 77, 59, 80, 191, 141, 177, 36, 241,\n\t\t227, 85, 169, 248, 216, 28, 170, 176, 219, 195, 23, 36, 50,\n\t\t14, 61, 186, 11, 143, 150, 143, 56, 193, 43, 255, 245, 55,\n\t\t115, 22, 18, 246, 2, 7, 96, 149, 47, 133, 220, 25, 15, 7,\n\t\t222, 140, 244, 99, 24, 102, 102, 99, 14, 1, 141, 174, 2, 182,\n\t\t36, 66, 155, 144, 211, 184, 166, 208, 204, 165, 61, 244, 197,\n\t\t97, 88, 245, 200, 193, 129, 80, 192, 93, 237, 221, 0, 40,\n\t\t144, 203, 76, 223, 205, 230, 233, 10, 65, 118, 247, 69, 5,\n\t\t174, 229, 89, 8, 145, 135, 24, 193, 20, 94, 47, 235, 100,\n\t\t129, 45, 56, 197, 69, 80, 11, 166, 137, 105, 51, 152, 144,\n\t\t2, 46, 102, 249, 163, 151, 65, 179, 23, 144, 33, 210, 112,\n\t\t215, 214, 42, 126, 111, 97, 28, 191, 106, 241, 56, 42, 231,\n\t\t86, 114, 107, 188, 110, 132, 52, 2, 84, 226, 110, 215, 110,\n\t\t57, 138, 38, 43, 120, 58, 237, 12, 118, 227, 70, 99, 232,\n\t\t157, 75, 219, 165, 67, 48, 190, 135, 167, 175, 235, 180, 209,\n\t\t238, 220, 101, 243, 84, 230, 92, 26, 54, 235, 142, 235, 116,\n\t\t151, 108, 39, 114, 115, 11, 51, 158, 195, 121, 151, 181, 185,\n\t\t3, 185, 70, 172, 21, 230, 58, 157, 197, 95, 88, 123, 185,\n\t\t114, 216, 108, 118, 2, 4, 30, 119, 218, 162, 145, 90, 122,\n\t\t213, 33, 85, 15, 132, 55, 55, 68, 77, 126, 112, 73, 57, 41,\n\t\t166, 34, 224, 58, 48, 159, 38, 161, 61, 138, 115, 231, 229,\n\t\t232, 25, 201, 97, 237, 16, 25, 59, 167, 156, 153, 193, 163,\n\t\t249, 170, 50, 180, 228, 220, 14, 126, 102, 211, 138, 81, 66,\n\t\t43, 213, 126, 193, 11, 216, 62, 189, 249, 216, 155, 8, 16,\n\t\t94, 229, 213, 96, 195, 206, 63, 189, 248, 239, 246, 69, 176,\n\t\t41, 41, 186, 182, 164, 214, 55, 79, 126, 136, 159, 122, 110,\n\t\t135, 145, 229, 9, 181, 74, 30, 170, 31, 106, 30, 250, 48,\n\t\t78, 152, 47, 109, 66, 54, 30, 123, 49, 36, 240, 75, 48, 14,\n\t\t152, 107, 150, 248, 13, 41, 4, 47, 246, 93, 216, 0, 4, 8,\n\t\t190, 79, 227, 155, 101, 227, 117, 44, 239, 27, 55, 28, 175,\n\t\t247, 191, 126, 205, 115, 189, 115, 155, 153, 94, 123, 22,\n\t\t93, 82, 20, 216, 242, 24, 102, 173, 153, 81, 105, 43, 144,\n\t\t92, 134, 140, 73, 19, 182, 181, 176, 120, 83, 4, 175, 90,\n\t\t47, 155, 107, 159, 190, 166, 45, 128, 245, 150, 122, 141,\n\t\t40, 201, 55, 107, 172, 164, 172, 157, 102, 212, 119, 104,\n\t\t165, 97, 63, 93, 174, 252, 27, 23, 61, 95, 255, 159, 52, 66,\n\t\t177, 116, 97, 110, 122, 64, 54, 152, 92, 51, 116, 87, 199,\n\t\t94, 233, 113, 239, 167, 223, 178, 242, 102, 152, 150, 178,\n\t\t46, 76, 242, 241, 247, 74, 99, 183, 111, 190, 184, 226, 109,\n\t\t154, 38, 176, 36, 170, 184, 49, 253, 201, 80, 192, 234, 104,\n\t\t253, 23, 128, 133, 89, 2, 9, 117, 136, 171, 169, 1, 198, 252,\n\t\t167, 172, 181, 238, 93, 114, 207, 118, 103, 186, 236, 209,\n\t\t69, 229, 209, 248, 110, 35, 103, 10, 245, 182, 39, 206, 3,\n\t\t67, 121, 146, 114, 138, 91, 83, 37, 227, 101, 41, 160, 170,\n\t\t153, 1, 4, 43, 193, 138, 88, 5, 78, 53, 62, 99, 71, 149, 254,\n\t\t34, 21, 2, 162, 19, 94, 228, 145, 49, 213, 36, 41, 78, 155,\n\t\t166, 89, 8, 248, 167, 11, 116, 53, 163, 43, 200, 188, 135,\n\t\t129, 247, 196, 163, 111, 240, 192, 111, 89, 214, 124, 184,\n\t\t236, 17, 248, 152, 126, 240, 64, 58, 230, 99, 213, 227, 253,\n\t\t25, 173, 31, 63, 230, 132, 171, 84, 200, 200, 238, 176, 87,\n\t\t229, 76, 127, 171, 129, 75, 138, 177, 81, 62, 177, 200, 71,\n\t\t134, 10, 76, 86, 244, 165, 183, 61, 50, 105, 12, 204, 205,\n\t\t168, 222, 30, 95, 82, 61, 163, 159, 170, 37, 241, 83, 182,\n\t\t7, 55, 228, 230, 6, 197, 90, 170, 48, 151, 216, 32, 224, 190,\n\t\t104, 39, 125, 82, 245, 89, 191, 68, 120, 193, 241, 41, 37,\n\t\t107, 194, 72, 78, 100, 219, 93, 114, 214, 21, 250, 159, 112,\n\t\t244, 140, 161, 157, 208, 94, 151, 173, 78, 83, 39, 9, 49,\n\t\t197, 33, 147, 158, 11, 225, 163, 194, 170, 161, 219, 66, 197,\n\t\t168, 92, 24, 154, 56, 237, 215, 250, 179, 187, 245, 132, 163,\n\t\t94, 115, 72, 246, 21, 247, 216, 3, 213, 40, 213, 206, 223,\n\t\t39, 183, 151, 34, 67, 71, 82, 245, 37, 130, 239, 244, 164,\n\t\t226, 13, 122, 20, 238, 215, 207, 226, 55, 130, 170, 244, 35,\n\t\t59, 60, 26, 171, 68, 102, 81, 90, 162, 150, 147, 242, 254,\n\t\t151, 91, 39, 166, 157, 79, 168, 18, 84, 175, 94, 227, 85,\n\t\t86, 252, 184, 184, 129, 186, 102, 117, 180, 247, 9, 198, 67,\n\t\t56, 111, 148, 222, 92, 160, 127, 82, 1, 222, 142, 15, 69,\n\t\t154, 164, 148, 203, 151, 157, 104, 39, 232, 161, 31, 126,\n\t\t61, 65, 76, 243, 226, 121, 196, 122, 240, 188, 104, 98, 194,\n\t\t122, 60, 99, 221, 195, 238, 12, 21, 116, 200, 211, 121, 41,\n\t\t226, 237, 214, 174, 216, 66, 66, 160, 181, 139, 78, 197, 5,\n\t\t199, 230, 196, 0, 40, 253, 49, 95, 113, 196, 117, 100, 167,\n\t\t29, 223, 49, 242, 96, 228, 223, 112, 156, 243, 234, 253, 17,\n\t\t224, 180, 77, 217, 139, 33, 228, 201, 111, 136, 203, 206,\n\t\t112, 225, 103, 197, 70, 147, 18, 157, 112, 144, 91, 108, 234,\n\t\t83, 90, 255, 147, 113, 139, 178, 111, 234, 201, 154, 152,\n\t\t243, 103, 7, 50, 155, 247, 23, 179, 11, 183, 229, 8, 117,\n\t\t188, 202, 242, 192, 209, 3, 183, 244, 166, 67, 156, 148, 93,\n\t\t141, 162, 176, 10, 15, 31, 224, 215, 233, 26, 31, 159, 220,\n\t\t169, 80, 43, 199, 191, 220, 28, 25, 225, 116, 142, 66, 1,\n\t\t231, 100, 158, 227, 79, 11, 173, 87, 176, 174, 13, 91, 187,\n\t\t14, 115, 151, 169, 10, 136, 112, 27, 33, 0, 58, 169, 13, 218,\n\t\t173, 151, 232, 88, 36, 86, 108, 125, 113, 17, 10, 134, 41,\n\t\t243, 49, 44, 220, 138, 243, 102, 197, 190, 244, 46, 209, 93,\n\t\t181, 169, 17, 80, 108, 57, 178, 201, 167, 217, 25, 62, 138,\n\t\t140, 142, 71, 111, 200, 25, 11, 171, 109, 11, 128, 222, 87,\n\t\t245, 186, 96, 65, 192, 112, 209, 223, 93, 206, 120, 206, 109,\n\t\t84, 46, 167, 183, 81, 247, 114, 232, 135, 134, 196, 196, 226,\n\t\t229, 116, 248, 186, 104, 0, 75, 232, 205, 53, 107, 126, 221,\n\t\t218, 39, 111, 183, 209, 45, 176, 22, 192, 86, 213, 102, 128,\n\t\t195, 164, 140, 154, 78, 235, 168, 85, 215, 59, 141, 225, 74,\n\t\t207, 99, 208, 70, 46, 154, 127, 65, 34, 119, 35, 180, 177,\n\t\t215, 234, 106, 20, 188, 168, 171, 239, 114, 147, 125, 142,\n\t\t87, 249, 2, 12, 65, 67, 193, 110, 14, 65, 121, 122, 26, 227,\n\t\t240, 186, 144, 34, 235, 20, 207, 233, 116, 202, 17, 218, 63,\n\t\t127, 77, 69, 158, 10, 233, 67, 92, 252, 8, 136, 33, 241, 6,\n\t\t129, 241, 222, 77, 113, 198, 191, 143, 63, 188, 126, 186,\n\t\t110, 171, 248, 101, 6, 148, 147, 77, 152, 225, 157, 119, 58,\n\t\t58, 59, 7, 154, 17, 166, 183, 93, 255, 41, 175, 242, 9, 0,\n\t\t2, 130, 88, 27, 230, 219, 72, 203, 206, 132, 181, 48, 241,\n\t\t171, 35, 233, 185, 52, 2, 210, 72, 170, 69, 51, 66, 120, 100,\n\t\t245, 225, 178, 85, 103, 227, 66, 139, 227, 147, 181, 222,\n\t\t250, 26, 55, 126, 193, 219, 81, 187, 213, 185, 214, 65, 43,\n\t\t112, 172, 152, 136, 178, 88, 118, 236, 97, 91, 152, 117, 102,\n\t\t21, 171, 226, 233, 227, 103, 167, 131, 161, 81, 53, 87, 198,\n\t\t36, 174, 9, 225, 111, 23, 228, 215, 136, 29, 56, 118, 145,\n\t\t131, 62, 219, 85, 40, 121, 19, 114, 225, 126, 222, 208, 210,\n\t\t208, 188, 8, 172, 44, 201, 67, 188, 253, 125, 147, 158, 158,\n\t\t150, 78, 124, 114, 78, 36, 215, 210, 250, 1, 65, 46, 130,\n\t\t90, 22, 75, 45, 50, 132, 16, 146, 86, 222, 245, 113, 122,\n\t\t69, 72, 236, 177, 36, 245, 211, 248, 144, 252, 87, 62, 30,\n\t\t15, 184, 42, 86, 33, 173, 173, 135, 14, 14, 228, 126, 78,\n\t\t82, 231, 106, 135, 181, 58, 117, 82, 109, 84, 255, 122, 135,\n\t\t46, 199, 99, 181, 93, 129, 142, 220, 127, 87, 107, 139, 65,\n\t\t83, 154, 135, 47, 167, 164, 230, 154, 25, 102, 29, 104, 106,\n\t\t2, 131, 6, 74, 213, 173, 195, 179, 26, 200, 213, 130, 124,\n\t\t161, 165, 40, 163, 13, 109, 198, 200, 49, 58, 76, 91, 88,\n\t\t153, 16, 84, 148, 145, 232, 93, 209, 53, 148, 241, 37, 122,\n\t\t87, 231, 156, 122, 16, 34, 68, 157, 238, 122, 180, 160, 94,\n\t\t115, 130, 135, 59, 196, 217, 195, 255, 253, 91, 80, 80, 96,\n\t\t99, 143, 177, 109, 225, 168, 188, 194, 204, 245, 82, 110,\n\t\t102, 64, 176, 101, 90, 62, 99, 3, 25, 56, 240, 72, 71, 167,\n\t\t101, 20, 200, 110, 209, 167, 79, 143, 130, 195, 159, 14, 226,\n\t\t76, 99, 239, 222, 110, 215, 233, 24, 185, 185, 132, 87, 58,\n\t\t109, 86, 86, 87, 23, 72, 202, 59, 178, 215, 4, 43, 255, 109,\n\t\t237, 50, 247, 86, 30, 81, 148, 122, 157, 167, 125, 68, 249,\n\t\t142, 236, 224, 7, 210, 178, 117, 194, 214, 181, 138, 21, 35,\n\t\t21, 244, 7, 222, 93, 122, 95, 156, 95, 97, 12, 253, 74, 149,\n\t\t208, 230, 209, 36, 212, 175, 156, 43, 95, 124, 159, 94, 87,\n\t\t138, 182, 3, 138, 251, 237, 23, 205, 2, 23, 20, 5, 27, 21,\n\t\t35, 101, 185, 21, 27, 203, 199, 23, 245, 88, 9, 126, 221,\n\t\t189, 113, 12, 59, 76, 207, 149, 149, 62, 224, 147, 197, 73,\n\t\t63, 120, 80, 10, 186, 97, 106, 100, 62, 92, 19, 164, 116,\n\t\t117, 237, 206, 43, 90, 70, 46, 213, 76, 86, 144, 131, 206,\n\t\t195, 16, 228, 22, 87, 69, 56, 144, 171, 94, 6, 235, 85, 86,\n\t\t177, 155, 51, 90, 216, 197, 8, 59, 210, 233, 137, 148, 148,\n\t\t92, 143, 24, 151, 234, 134, 192, 54, 74, 48, 185, 253, 247,\n\t\t147, 175, 173, 186, 27, 245, 244, 195, 157, 168, 85, 215,\n\t\t200, 251, 221, 254, 38, 130, 231, 109, 85, 53, 242, 221, 126,\n\t\t83, 27, 61, 185, 254, 251, 152, 3, 69, 197, 235, 254, 18,\n\t\t13, 245, 86, 98, 26, 10, 98, 30, 204, 162, 3, 223, 199, 212,\n\t\t79, 142, 30, 71, 10, 55, 204, 168, 142, 42, 174, 98, 74, 161,\n\t\t0, 170, 4, 203, 180, 255, 20, 202, 156, 11, 184, 56, 95, 204,\n\t\t249, 232, 184, 14, 76, 73, 158, 42, 83, 138, 210, 90, 189,\n\t\t102, 102, 94, 74, 27, 32, 124, 128, 34, 241, 45, 107, 169,\n\t\t49, 18, 4, 164, 215, 34, 138, 126, 239, 103, 246, 152, 35,\n\t\t194, 46, 88, 22, 103, 190, 247, 187, 253, 130, 62, 49, 29,\n\t\t7, 6, 1, 106, 154, 114, 159, 159, 117, 177, 4, 156, 58, 233,\n\t\t47, 251, 105, 80, 15, 193, 159, 244, 151, 121, 92, 65, 82,\n\t\t135, 214, 49, 8, 109, 4, 50, 161, 199, 11, 96, 182, 50, 234,\n\t\t250, 133, 248, 128, 149, 196, 72, 226, 192, 159, 130, 109,\n\t\t140, 193, 125, 162, 181, 222, 64, 163, 48, 131, 248, 246,\n\t\t110, 21, 9, 130, 33, 82, 141, 48, 75, 228, 232, 109, 0, 108,\n\t\t50, 233, 105, 224, 171, 76, 234, 65, 212, 30, 169, 77, 171,\n\t\t27, 239, 67, 230, 5, 103, 34, 49, 235, 40, 213, 152, 208,\n\t\t228, 156, 246, 177, 118, 248, 90, 192, 192, 236, 170, 9, 107,\n\t\t99, 57, 113, 94, 218, 57, 249, 153, 216, 68, 159, 215, 30,\n\t\t150, 156, 107, 150, 128, 170, 99, 212, 163, 107, 91, 188,\n\t\t184, 149, 167, 59, 99, 204, 243, 191, 130, 250, 232, 254,\n\t\t94, 194, 137, 148, 172, 216, 170, 240, 102, 30, 117, 82, 106,\n\t\t43, 31, 152, 95, 172, 169, 183, 163, 147, 215, 148, 159, 213,\n\t\t13, 12, 152, 15, 150, 239, 216, 77, 142, 147, 103, 138, 153,\n\t\t38, 76, 118, 29, 206, 74, 177, 45, 112, 192, 217, 82, 38,\n\t\t186, 237, 252, 96, 50, 238, 70, 146, 21, 96, 80, 89, 18, 94,\n\t\t76, 132, 8, 70, 239, 173, 161, 251, 73, 86, 23, 170, 41, 43,\n\t\t113, 62, 153, 158, 236, 238, 161, 118, 183, 183, 80, 57, 38,\n\t\t252, 70, 242, 225, 163, 118, 252, 22, 176, 142, 230, 31, 74,\n\t\t88, 118, 155, 144, 134, 231, 30, 136, 175, 227, 252, 151,\n\t\t223, 143, 11, 90, 59, 99, 51, 86, 6, 103, 64, 25, 22, 81,\n\t\t130, 131, 171, 170, 150, 108, 100, 220, 203, 241, 231, 93,\n\t\t93, 56, 53, 138, 166, 189, 220, 61, 43, 123, 86, 160, 165,\n\t\t107, 197, 134, 229, 52, 247, 24, 27, 171, 150, 84, 5, 7, 83,\n\t\t22, 101, 92, 65, 193, 43, 99, 51, 102, 118, 89, 2, 77, 179,\n\t\t118, 95, 214, 210, 162, 10, 167, 174, 166, 2, 181, 144, 61,\n\t\t112, 16, 242, 12, 225, 243, 61, 151, 54, 91, 194, 142, 181,\n\t\t213, 134, 165, 69, 83, 118, 24, 66, 229, 126, 191, 32, 254,\n\t\t179, 110, 96, 109, 143, 13, 246, 91, 246, 241, 228, 1, 201,\n\t\t209, 130, 75, 207, 119, 30, 243, 37, 246, 47, 166, 221, 246,\n\t\t228, 64, 16, 227, 123, 8, 68, 247, 58, 14, 218, 69, 92, 113,\n\t\t151, 232, 42, 88, 184, 208, 28, 247, 58, 226, 25, 215, 82,\n\t\t132, 34, 234, 224, 21, 19, 52, 53, 158, 141, 119, 55, 225,\n\t\t41, 119, 213, 101, 27, 167, 149, 208, 35, 187, 206, 37, 71,\n\t\t149, 30, 55, 120, 214, 156, 247, 123, 150, 159, 3, 22, 161,\n\t\t120, 221, 92, 158, 188, 47, 102, 102, 71, 250, 238, 131, 38,\n\t\t60, 183, 81, 160, 101, 174, 32, 150, 215, 22, 168, 211, 137,\n\t\t147, 8, 203, 111, 67, 40, 204, 169, 15, 84, 98, 177, 239,\n\t\t143, 125, 176, 190, 34, 59, 68, 156, 211, 87, 78, 79, 142,\n\t\t216, 179, 172, 2, 214, 247, 253, 232, 75, 44, 166, 126, 56,\n\t\t133, 65, 81, 68, 66, 226, 36, 117, 122, 65, 45, 211, 80, 251,\n\t\t224, 210, 183, 202, 115, 91, 254, 178, 226, 72, 231, 107,\n\t\t253, 107, 203, 57, 191, 111, 239, 63, 168, 21, 28, 88, 193,\n\t\t20, 104, 211, 103, 181, 237, 78, 7, 82, 62, 115, 112, 70,\n\t\t156, 242, 52, 93, 4, 250, 17, 227, 128, 156, 217, 20, 122,\n\t\t110, 92, 32, 243, 224, 200, 188, 240, 203, 104, 69, 156, 99,\n\t\t70, 225, 87, 87, 177, 133, 143, 201, 193, 59, 243, 83, 226,\n\t\t93, 132, 119, 167, 66, 196, 204, 244, 25, 87, 170, 146, 33,\n\t\t223, 222, 195, 188, 25, 40, 12, 42, 205, 91, 84, 20, 88, 167,\n\t\t3, 6, 148, 207, 207, 202, 47, 170, 124, 36, 212, 8, 23, 75,\n\t\t143, 19, 236, 156, 197, 90, 161, 240, 234, 87, 230, 143, 251,\n\t\t133, 213, 41, 204, 224, 148, 226, 53, 156, 169, 207, 215,\n\t\t20, 247, 41, 200, 181, 122, 78, 86, 94, 124, 20, 170, 8, 5,\n\t\t8, 94, 185, 157, 219, 151, 245, 235, 73, 102, 173, 74, 123,\n\t\t232, 85, 49, 244, 225, 135, 27, 102, 207, 182, 234, 226, 154,\n\t\t241, 36, 129, 111, 221, 11, 126, 222, 192, 39, 165, 153, 47,\n\t\t203, 78, 118, 0, 136, 38, 147, 159, 13, 141, 177, 153, 78,\n\t\t5, 137, 152, 153, 56, 175, 209, 153, 11, 253, 251, 237, 111,\n\t\t109, 94, 125, 64, 19, 235, 243, 117, 117, 82, 140, 158, 196,\n\t\t247, 37, 82, 61, 70, 30, 131, 97, 104, 180, 218, 104, 129,\n\t\t214, 16, 189, 219, 252, 2, 130, 70, 72, 81, 164, 252, 85,\n\t\t24, 244, 194, 220, 189, 219, 255, 196, 244, 30, 139, 133,\n\t\t13, 11, 55, 176, 230, 139, 69, 3, 249, 213, 99, 187, 192,\n\t\t30, 255, 237, 53, 185, 68, 157, 116, 86, 85, 173, 62, 25,\n\t\t190, 73, 242, 99, 172, 0, 115, 68, 6, 139, 95, 252, 136, 63,\n\t\t41, 131, 141, 177, 170, 149, 232, 136, 163, 248, 162, 210,\n\t\t59, 113, 165, 59, 211, 231, 130, 150, 106, 216, 145, 145,\n\t\t137, 158, 238, 169, 245, 188, 43, 188, 250, 194, 201, 90,\n\t\t170, 196, 61, 82, 196, 119, 77, 184, 45, 17, 228, 177, 118,\n\t\t38, 15, 74, 173, 154, 33, 222, 118, 217, 229, 35, 115, 58,\n\t\t101, 34, 99, 108, 25, 73, 242, 7, 104, 245, 23, 72, 222, 252,\n\t\t155, 176, 94, 37, 252, 178, 124, 82, 191, 22, 143, 238, 145,\n\t\t218, 90, 99, 240, 233, 115, 97, 95, 91, 147, 56, 125, 146,\n\t\t46, 51, 241, 35, 123, 152, 189, 255, 75, 219, 180, 180, 155,\n\t\t254, 106, 152, 176, 67, 18, 250, 167, 105, 130, 139, 140,\n\t\t39, 59, 104, 231, 30, 66, 162, 242, 90, 78, 217, 140, 4, 85,\n\t\t158, 158, 190, 15, 23, 85, 142, 125, 140, 111, 37, 140, 77,\n\t\t122, 85, 94, 194, 12, 255, 12, 113, 181, 123, 73, 213, 119,\n\t\t25, 137, 109, 159, 52, 132, 225, 184, 226, 145, 72, 249, 151,\n\t\t145, 121, 190, 251, 147, 98, 178, 178, 0, 228, 227, 160, 51,\n\t\t165, 9, 12, 74, 57, 127, 44, 229, 198, 34, 154, 198, 100,\n\t\t101, 144, 192, 35, 159, 47, 115, 200, 228, 188, 54, 159, 113,\n\t\t152, 221, 201, 62, 156, 92, 112, 32, 33, 225, 192, 31, 239,\n\t\t101, 171, 165, 218, 116, 5, 41, 15, 108, 188, 149, 45, 99,\n\t\t244, 181, 183, 66, 155, 46, 253, 191, 142, 22, 103, 82, 3,\n\t\t182, 63, 195, 114, 177, 156, 112, 135, 18, 159, 169, 28, 167,\n\t\t163, 117, 249, 114, 135, 219, 104, 106, 117, 31, 111, 113,\n\t\t95, 174, 178, 183, 182, 128, 3, 60, 18, 217, 243, 106, 18,\n\t\t133, 68, 242, 143, 118, 82, 52, 101, 240, 186, 18, 73, 111,\n\t\t232, 33, 1, 233, 1, 197, 30, 236, 131, 65, 62, 197, 9, 74,\n\t\t222, 76, 126, 144, 155, 186, 89, 141, 235, 109, 81, 36, 181,\n\t\t83, 163, 189, 241, 70, 252, 36, 143, 119, 52, 117, 115, 146,\n\t\t162, 170, 151, 147, 221, 174, 84, 182, 91, 84, 84, 93, 106,\n\t\t115, 69, 123, 88, 75, 47, 78, 189, 89, 217, 22, 126, 222,\n\t\t101, 253, 141, 222, 237, 63, 37, 132, 132, 227, 30, 161, 239,\n\t\t246, 249, 199, 64, 215, 161, 80, 82, 116, 98, 207, 225, 70,\n\t\t12, 166, 233, 112, 119, 226, 225, 239, 134, 25, 164, 69, 141,\n\t\t234, 189, 190, 13, 9, 43, 50, 51, 28, 164, 26, 98, 60, 139,\n\t\t155, 100, 66, 103, 155, 91, 175, 119, 183, 157, 171, 235,\n\t\t39, 240, 31, 15, 255, 236, 72, 78, 214, 232, 184, 39, 13,\n\t\t188, 167, 227, 20, 153, 49, 189, 155, 89, 194, 243, 195, 46,\n\t\t169, 15, 247, 37, 16, 51, 7, 196, 205, 250, 214, 11, 107,\n\t\t15, 178, 131, 168, 70, 83, 90, 70, 52, 233, 72, 231, 36, 69,\n\t\t167, 101, 152, 74, 74, 126, 50, 92, 23, 92, 63, 25, 170, 80,\n\t\t184, 255, 13, 143, 235, 22, 238, 125, 175, 230, 190, 255,\n\t\t208, 94, 247, 147, 232, 81, 135, 169, 148, 93, 175, 48, 56,\n\t\t5, 38, 8, 155, 194, 126, 181, 139, 66, 61, 156, 0, 32, 238,\n\t\t99, 180, 123, 28, 238, 94, 224, 86, 195, 224, 158, 225, 241,\n\t\t234, 168, 143, 30, 67, 171, 88, 126, 133, 152, 228, 133, 74,\n\t\t74, 226, 228, 221, 175, 208, 40, 187, 189, 235, 187, 90, 245,\n\t\t137, 95, 171, 212, 167, 43, 141, 128, 98, 166, 138, 202, 145,\n\t\t115, 138, 189, 123, 21, 17, 231, 107, 103, 157, 10, 98, 237,\n\t\t180, 127, 136, 90, 121, 244, 164, 205, 178, 102, 13, 48, 113,\n\t\t47, 151, 233, 39, 250, 46, 138, 115, 171, 184, 0, 173, 161,\n\t\t33, 139, 201, 109, 8, 25, 103, 64, 250, 131, 22, 159, 25,\n\t\t103, 145, 222, 131, 55, 122, 157, 162, 6, 109, 116, 205, 254,\n\t\t133, 164, 167, 3, 100, 160, 16, 20, 208, 185, 152, 188, 86,\n\t\t213, 135, 75, 231, 249, 212, 94, 104, 7, 134, 39, 77, 34,\n\t\t126, 35, 190, 224, 247, 220, 123, 172, 228, 233, 120, 65,\n\t\t101, 127, 183, 176, 187, 120, 146, 91, 232, 46, 42, 98, 8,\n\t\t13, 84, 38, 205, 32, 100, 22, 107, 241, 59, 171, 169, 213,\n\t\t59, 240, 205, 43, 189, 110, 229, 251, 110, 17, 248, 174, 72,\n\t\t195, 3, 73, 155, 46, 27, 238, 249, 133, 183, 201, 209, 12,\n\t\t93, 120, 233, 35, 154, 154, 148, 150, 25, 181, 239, 166, 168,\n\t\t37, 32, 41, 252, 59, 81, 235, 23, 235, 23, 253, 149, 131,\n\t\t220, 113, 209, 26, 235, 26, 19, 79, 75, 175, 46, 244, 56,\n\t\t194, 144, 164, 201, 226, 156, 60, 118, 162, 0, 211, 52, 157,\n\t\t196, 24, 174, 58, 133, 130, 43, 79, 145, 72, 133, 227, 97,\n\t\t110, 181, 70, 29, 46, 245, 69, 227, 96, 148, 50, 39, 164,\n\t\t223, 27, 176, 118, 189, 207, 133, 252, 21, 245, 105, 96, 196,\n\t\t172, 77, 4, 10, 181, 194, 158, 196, 160, 120, 97, 110, 160,\n\t\t69, 176, 38, 47, 47, 226, 54, 110, 22, 193, 187, 44, 18, 53,\n\t\t248, 77, 161, 3, 125, 100, 71, 182, 21, 117, 141, 254, 173,\n\t\t211, 68, 114, 234, 65, 31, 114, 45, 130, 150, 77, 65, 81,\n\t\t151, 17, 106, 184, 222, 114, 182, 84, 225, 106, 136, 229,\n\t\t25, 97, 179, 194, 202, 137, 53, 208, 203, 198, 44, 255, 101,\n\t\t4, 42, 138, 146, 77, 139, 184, 214, 3, 129, 165, 2, 37, 104,\n\t\t102, 244, 204, 32, 138, 4, 90, 206, 107, 10, 105, 226, 45,\n\t\t135, 74, 118, 31, 122, 138, 153, 84, 29, 211, 78, 244, 37,\n\t\t197, 238, 158, 211, 29, 75, 246, 37, 182, 19, 112, 221, 242,\n\t\t185, 199, 47, 33, 113, 10, 176, 69, 207, 15, 251, 9, 150,\n\t\t224, 125, 201, 45, 170, 85, 115, 152, 202, 231, 199, 73, 211,\n\t\t77, 15, 76, 7, 165, 242, 25, 107, 201, 73, 15, 46, 26, 210,\n\t\t165, 103, 166, 27, 100, 51, 168, 215, 36, 215, 168, 12, 118,\n\t\t237, 128, 53, 188, 17, 97, 252, 248, 161, 23, 86, 229, 71,\n\t\t248, 173, 59, 186, 252, 232, 139, 125, 56, 226, 251, 46, 150,\n\t\t238, 83, 186, 16, 182, 34, 45, 177, 57, 124, 203, 63, 213,\n\t\t22, 196, 106, 168, 34, 101, 132, 145, 81, 4, 168, 80, 56,\n\t\t146, 20, 206, 194, 90, 48, 172, 121, 47, 172, 88, 47, 211,\n\t\t139, 83, 181, 98, 13, 4, 246, 9, 78, 34, 231, 4, 251, 211,\n\t\t226, 159, 51, 16, 23, 130, 136, 173, 145, 79, 124, 194, 150,\n\t\t66, 128, 234, 202, 87, 230, 107, 171, 181, 81, 31, 17, 7,\n\t\t245, 53, 243, 107, 173, 70, 49, 162, 71, 127, 133, 229, 46,\n\t\t177, 175, 161, 38, 108, 52, 165, 118, 213, 184, 2, 56, 21,\n\t\t172, 106, 221, 40, 240, 184, 134, 255, 33, 88, 80, 39, 221,\n\t\t76, 65, 208, 174, 18, 88, 229, 34, 187, 114, 252, 167, 187,\n\t\t118, 65, 188, 127, 50, 233, 142, 92, 105, 150, 179, 87, 166,\n\t\t250, 157, 16, 76, 124, 212, 30, 164, 91, 213, 87, 27, 166,\n\t\t206, 128, 185, 141, 235, 161, 125, 159, 167, 97, 253, 130,\n\t\t153, 211, 200, 101, 150, 124, 91, 1, 28, 138, 203, 100, 162,\n\t\t97, 0, 0, 64, 255, 191, 157, 229, 64, 6, 21, 44, 22, 4, 136,\n\t\t172, 73, 104, 161, 27, 147, 50, 42, 78, 201, 106, 227, 183,\n\t\t229, 31, 136, 15, 118, 160, 208, 104, 84, 128, 212, 174, 210,\n\t\t42, 109, 73, 252, 117, 148, 65, 63, 218, 232, 199, 73, 125,\n\t\t55, 6, 116, 164, 222, 209, 66, 34, 113, 147, 35, 235, 37,\n\t\t85, 229, 170, 19, 131, 36, 143, 186, 136, 17, 76, 101, 43,\n\t\t29, 41, 46, 57, 104, 231, 206, 34, 83, 187, 55, 87, 99, 99,\n\t\t115, 189, 103, 80, 209, 218, 195, 201, 65, 113, 36, 118, 141,\n\t\t56, 141, 41, 2, 124, 88, 88, 171, 155, 225, 90, 131, 62, 226,\n\t\t185, 10, 103, 239, 67, 217, 195, 111, 191, 125, 37, 123, 37,\n\t\t131, 140, 247, 254, 102, 130, 87, 172, 144, 214, 75, 173,\n\t\t55, 190, 55, 3, 76, 200, 214, 131, 121, 227, 120, 148, 181,\n\t\t204, 189, 138, 13, 13, 146, 81, 127, 216, 171, 142, 241, 250,\n\t\t117, 23, 99, 93, 53, 238, 89, 194, 12, 105, 144, 175, 209,\n\t\t245, 99, 249, 49, 178, 222, 125, 25, 170, 77, 163, 247, 34,\n\t\t184, 128, 232, 22, 113, 209, 51, 73, 209, 153, 59, 226, 119,\n\t\t162, 226, 107, 102, 162, 186, 21, 156, 147, 108, 49, 251,\n\t\t36, 103, 69, 141, 103, 70, 235, 155, 235, 116, 89, 145, 58,\n\t\t246, 9, 182, 225, 197, 119, 79, 23, 194, 143, 6, 96, 146,\n\t\t78, 35, 255, 180, 106, 241, 159, 236, 84, 145, 228, 83, 1,\n\t\t162, 240, 95, 209, 57, 178, 198, 185, 222, 94, 104, 35, 218,\n\t\t160, 5, 193, 101, 14, 219, 42, 121, 217, 30, 189, 183, 150,\n\t\t208, 101, 78, 74, 194, 164, 112, 24, 244, 109, 238, 202, 222,\n\t\t191, 47, 215, 179, 177, 173, 18, 245, 96, 184, 68, 108, 100,\n\t\t130, 211, 163, 187, 22, 63, 242, 165, 81, 207, 245, 152, 75,\n\t\t171, 162, 169, 18, 234, 6, 143, 182, 168, 121, 46, 143, 140,\n\t\t94, 188, 93, 127, 48, 240, 152, 236, 194, 215, 192, 146, 255,\n\t\t88, 73, 65, 225, 6, 147, 99, 146, 11, 114, 5, 17, 194, 73,\n\t\t202, 244, 228, 132, 124, 191, 15, 147, 14, 198, 31, 204, 86,\n\t\t135, 29, 195, 54, 35, 4, 166, 125, 144, 43, 17, 62, 18, 255,\n\t\t142, 222, 154, 238, 229, 89, 72, 180, 212, 137, 107, 89, 152,\n\t\t62, 214, 13, 249, 41, 252, 196, 157, 107, 52, 182, 68, 126,\n\t\t199, 153, 104, 86, 208, 20, 195, 188, 101, 195, 142, 110,\n\t\t186, 105, 34, 149, 60, 72, 31, 174, 86, 203, 165, 183, 99,\n\t\t106, 245, 247, 243, 15, 142, 197, 10, 147, 202, 213, 234,\n\t\t112, 61, 196, 11, 57, 184, 70, 237, 151, 248, 209, 84, 204,\n\t\t201, 226, 28, 50, 221, 224, 252, 250, 85, 238, 223, 179, 44,\n\t\t48, 97, 74, 218, 148, 132, 192, 101, 211, 37, 255, 250, 43,\n\t\t231, 6, 30, 188, 248, 44, 78, 177, 233, 99, 162, 218, 111,\n\t\t141, 142, 22, 27, 226, 43, 77, 148, 114, 30, 112, 164, 236,\n\t\t123, 81, 92, 32, 241, 13, 137, 69, 223, 99, 107, 74, 1, 19,\n\t\t223, 243, 56, 18, 98, 95, 89, 100, 251, 33, 119, 250, 131,\n\t\t98, 247, 161, 123, 149, 63, 87, 158, 117, 23, 63, 200, 176,\n\t\t207, 59, 16, 52, 160, 108, 93, 26, 133, 115, 50, 125, 224,\n\t\t108, 168, 195, 198, 131, 121, 182, 16, 199, 205, 129, 244,\n\t\t147, 25, 231, 207, 12, 106, 70, 31, 17, 27, 175, 10, 164,\n\t\t16, 222, 104, 110, 232, 85, 221, 2, 60, 229, 53, 100, 168,\n\t\t213, 40, 131, 148, 70, 230, 65, 149, 80, 123, 135, 231, 204,\n\t\t157, 238, 27, 57, 12, 226, 77, 115, 168, 190, 122, 78, 77,\n\t\t79, 173, 236, 7, 247, 145, 190, 108, 242, 34, 182, 234, 77,\n\t\t186, 44, 108, 101, 82, 20, 249, 224, 81, 248, 155, 55, 225,\n\t\t108, 16, 105, 38, 216, 145, 65, 49, 11, 31, 149, 147, 4, 59,\n\t\t188, 181, 243, 2, 240, 229, 103, 202, 1, 52, 154, 20, 147,\n\t\t234, 30, 162, 100, 164, 203, 73, 85, 9, 149, 112, 191, 136,\n\t\t107, 104, 254, 140, 232, 201, 236, 211, 142, 42, 10, 148,\n\t\t129, 66, 77, 212, 63, 61, 243, 115, 152, 186, 112, 117, 168,\n\t\t145, 20, 166, 77, 108, 78, 59, 121, 51, 145, 112, 11, 205,\n\t\t177, 56, 146, 125, 103, 57, 24, 195, 76, 24, 118, 4, 148,\n\t\t35, 219, 143, 142, 29, 4, 189, 62, 18, 119, 10, 117, 156,\n\t\t93, 157, 126, 254, 44, 1, 225, 204, 249, 140, 64, 74, 121,\n\t\t83, 147, 20, 36, 57, 113, 68, 233, 209, 217, 153, 16, 157,\n\t\t127, 179, 220, 85, 126, 147, 239, 221, 144, 111, 214, 235,\n\t\t215, 219, 235, 66, 92, 163, 188, 208, 59, 98, 189, 0, 110,\n\t\t20, 33, 190, 141, 214, 134, 23, 186, 152, 152, 55, 58, 136,\n\t\t217, 200, 103, 39, 117, 132, 220, 248, 64, 88, 119, 116, 33,\n\t\t91, 253, 137, 81, 204, 132, 89, 1, 220, 9, 196, 246, 23, 16,\n\t\t206, 180, 55, 98, 226, 167, 9, 19, 85, 186, 165, 141, 52,\n\t\t31, 42, 123, 12, 132, 242, 9, 228, 252, 255, 246, 11, 34,\n\t\t4, 156, 123, 76, 162, 70, 240, 26, 30, 115, 239, 35, 55, 39,\n\t\t62, 242, 94, 228, 47, 220, 231, 17, 61, 215, 9, 239, 125,\n\t\t193, 124, 149, 43, 39, 96, 144, 201, 180, 67, 163, 70, 30,\n\t\t36, 21, 36, 180, 58, 97, 188, 34, 37, 112, 206, 124, 142,\n\t\t149, 43, 88, 121, 141, 151, 1, 117, 79, 17, 18, 245, 37, 248,\n\t\t20, 0, 145, 135, 120, 88, 8, 181, 35, 128, 248, 101, 160,\n\t\t150, 72, 231, 221, 188, 188, 128, 132, 179, 227, 60, 9, 57,\n\t\t217, 138, 227, 182, 166, 123, 0, 11, 189, 103, 112, 27, 211,\n\t\t68, 254, 70, 180, 233, 154, 94, 66, 165, 177, 210, 104, 248,\n\t\t245, 7, 68, 83, 150, 102, 249, 38, 241, 201, 246, 37, 123,\n\t\t202, 178, 11, 11, 47, 108, 140, 84, 199, 104, 156, 11, 210,\n\t\t44, 87, 230, 109, 60, 211, 148, 13, 38, 119, 85, 168, 249,\n\t\t167, 3, 92, 63, 110, 160, 183, 39, 230, 206, 203, 18, 154,\n\t\t133, 70, 127, 39, 234, 143, 245, 207, 126, 181, 7, 26, 12,\n\t\t178, 57, 20, 53, 45, 117, 90, 77, 88, 112, 60, 137, 35, 107,\n\t\t164, 85, 171, 66, 140, 29, 168, 162, 247, 174, 107, 29, 17,\n\t\t133, 9, 153, 149, 48, 226, 214, 6, 121, 184, 51, 191, 239,\n\t\t68, 0, 118, 236, 6, 128, 239, 221, 147, 164, 186, 155, 61,\n\t\t130, 30, 6, 99, 102, 54, 3, 17, 96, 28, 124, 6, 94, 80, 137,\n\t\t196, 248, 128, 107, 145, 171, 106, 253, 194, 83, 156, 86,\n\t\t93, 165, 94, 166, 173, 153, 64, 225, 201, 25, 124, 210, 99,\n\t\t18, 127, 198, 164, 73, 106, 146, 122, 22, 99, 185, 62, 150,\n\t\t28, 192, 190, 13, 204, 152, 139, 38, 112, 166, 167, 35, 203,\n\t\t85, 81, 43, 72, 26, 107, 12, 97, 198, 90, 135, 28, 76, 24,\n\t\t98, 81, 137, 17, 49, 205, 113, 59, 12, 110, 87, 187, 106,\n\t\t171, 62, 13, 255, 66, 158, 57, 56, 70, 65, 157, 13, 122, 171,\n\t\t132, 183, 30, 59, 214, 20, 27, 150, 20, 21, 28, 214, 250,\n\t\t39, 84, 68, 151, 159, 47, 143, 74, 168, 156, 247, 93, 116,\n\t\t206, 157, 222, 48, 50, 253, 189, 33, 170, 204, 76, 209, 113,\n\t\t249, 244, 239, 162, 203, 53, 21, 231, 29, 241, 149, 90, 255,\n\t\t149, 174, 2, 8, 9, 220, 180, 153, 131, 70, 107, 214, 197,\n\t\t18, 51, 18, 32, 16, 59, 84, 86, 7, 97, 20, 109, 218, 188,\n\t\t41, 208, 70, 115, 44, 0, 83, 52, 74, 252, 1, 208, 42, 47,\n\t\t48, 28, 75, 1, 2, 186, 129, 18, 20, 32, 206, 13, 252, 48,\n\t\t128, 5, 60, 49, 103, 144, 12, 10, 219, 85, 23, 17, 77, 215,\n\t\t231, 35, 219, 162, 250, 153, 49, 163, 142, 148, 181, 166,\n\t\t197, 89, 102, 48, 126, 238, 173, 110, 98, 55, 69, 254, 77,\n\t\t139, 40, 169, 133, 169, 18, 42, 252, 146, 195, 136, 0, 74,\n\t\t199, 45, 206, 137, 217, 217, 213, 227, 59, 149, 103, 226,\n\t\t200, 97, 243, 196, 254, 137, 230, 166, 166, 126, 239, 126,\n\t\t45, 111, 7, 20, 228, 108, 219, 197, 174, 71, 2, 177, 36, 177,\n\t\t48, 120, 36, 181, 50, 34, 204, 63, 57, 41, 3, 190, 168, 240,\n\t\t185, 220, 235, 242, 236, 127, 25, 60, 254, 19, 63, 3, 62,\n\t\t158, 218, 95, 36, 204, 100, 135, 199, 142, 7, 191, 236, 247,\n\t\t116, 245, 94, 246, 241, 173, 59, 60, 119, 11, 38, 75, 184,\n\t\t200, 154, 179, 36, 9, 148, 132, 230, 42, 203, 48, 89, 199,\n\t\t108, 166, 44, 194, 82, 60, 148, 36, 33, 141, 68, 20, 42, 39,\n\t\t47, 62, 81, 81, 194, 207, 165, 210, 217, 0, 164, 64, 8, 110,\n\t\t2, 215, 98, 105, 38, 184, 163, 162, 235, 34, 131, 198, 3,\n\t\t39, 176, 72, 164, 136, 9, 69, 91, 223, 217, 35, 227, 10, 177,\n\t\t112, 250, 194, 207, 48, 129, 53, 123, 246, 194, 116, 187,\n\t\t56, 223, 224, 17, 126, 88, 12, 10, 195, 240, 65, 195, 4, 156,\n\t\t192, 155, 12, 159, 132, 194, 201, 54, 28, 3, 175, 200, 3,\n\t\t134, 37, 175, 147, 22, 62, 183, 18, 66, 70, 175, 21, 92, 251,\n\t\t157, 229, 104, 40, 222, 250, 92, 90, 184, 14, 177, 183, 51,\n\t\t87, 51, 219, 241, 48, 209, 101, 93, 240, 253, 201, 0, 212,\n\t\t126, 51, 127, 191, 192, 234, 34, 82, 49, 21, 174, 138, 15,\n\t\t64, 5, 251, 16, 112, 150, 231, 11, 162, 215, 253, 253, 142,\n\t\t48, 88, 8, 139, 49, 152, 235, 92, 193, 88, 203, 88, 225, 247,\n\t\t4, 70, 242, 199, 34, 224, 224, 110, 160, 62, 168, 164, 50,\n\t\t44, 173, 207, 50, 216, 10, 78, 188, 187, 92, 184, 77, 154,\n\t\t89, 77, 200, 65, 217, 148, 186, 3, 14, 57, 190, 146, 137,\n\t\t103, 94, 186, 164, 171, 183, 106, 123, 192, 0, 131, 234, 177,\n\t\t88, 32, 86, 152, 43, 117, 117, 98, 226, 149, 61, 247, 196,\n\t\t9, 34, 83, 227, 240, 21, 59, 23, 232, 42, 115, 49, 219, 218,\n\t\t80, 232, 14, 226, 19, 183, 46, 114, 91, 251, 130, 239, 221,\n\t\t110, 106, 142, 171, 147, 246, 96, 153, 205, 25, 234, 26, 43,\n\t\t140, 37, 208, 195, 27, 21, 84, 183, 27, 66, 92, 200, 200,\n\t\t85, 216, 85, 191, 16, 195, 213, 140, 160, 18, 101, 39, 74,\n\t\t99, 235, 165, 103, 213, 203, 26, 95, 18, 255, 63, 234, 222,\n\t\t255, 19, 95, 54, 46, 203, 62, 168, 59, 81, 98, 246, 105, 203,\n\t\t179, 223, 50, 126, 123, 6, 158, 227, 164, 95, 243, 161, 67,\n\t\t135, 220, 71, 90, 15, 85, 79, 117, 35, 176, 246, 84, 191,\n\t\t138, 83, 16, 114, 110, 77, 77, 8, 35, 117, 226, 64, 66, 82,\n\t\t85, 253, 31, 235, 15, 164, 77, 43, 106, 153, 221, 82, 60,\n\t\t121, 220, 75, 158, 82, 134, 155, 127, 253, 26, 193, 119, 230,\n\t\t190, 229, 151, 187, 21, 51, 103, 255, 148, 238, 30, 232, 7,\n\t\t62, 59, 163, 27, 180, 66, 206, 125, 54, 176, 124, 192, 89,\n\t\t81, 128, 134, 117, 64, 143, 120, 222, 68, 115, 19, 212, 87,\n\t\t147, 237, 136, 106, 151, 181, 53, 47, 54, 243, 69, 115, 80,\n\t\t40, 96, 236, 254, 184, 0, 75, 102, 224, 149, 238, 224, 96,\n\t\t112, 108, 141, 252, 231, 238, 93, 187, 242, 89, 150, 252,\n\t\t231, 101, 159, 152, 60, 78, 84, 182, 181, 204, 55, 69, 95,\n\t\t186, 197, 84, 196, 197, 152, 235, 228, 78, 136, 14, 131, 186,\n\t\t0, 91, 217, 24, 247, 77, 180, 110, 178, 46, 149, 218, 235,\n\t\t27, 3, 199, 15, 229, 195, 246, 15, 91, 65, 14, 55, 66, 24,\n\t\t12, 252, 4, 17, 64, 164, 166, 238, 236, 9, 126, 109, 0, 255,\n\t\t196, 89, 179, 151, 114, 101, 3, 54, 140, 250, 27, 227, 4,\n\t\t63, 160, 46, 100, 237, 217, 186, 0, 126, 186, 140, 250, 155,\n\t\t77, 175, 136, 207, 107, 232, 171, 249, 74, 97, 15, 17, 166,\n\t\t188, 34, 235, 3, 109, 129, 8, 255, 236, 122, 129, 160, 95,\n\t\t138, 35, 121, 23, 86, 34, 98, 170, 143, 39, 131, 6, 114, 6,\n\t\t230, 122, 51, 137, 10, 103, 0, 218, 172, 139, 32, 110, 10,\n\t\t8, 173, 61, 118, 70, 108, 156, 175, 20, 23, 4, 108, 34, 70,\n\t\t232, 204, 232, 0, 133, 147, 200, 244, 206, 5, 102, 1, 243,\n\t\t209, 176, 24, 125, 230, 88, 42, 186, 103, 255, 225, 197, 252,\n\t\t197, 135, 247, 247, 72, 20, 145, 145, 112, 169, 120, 190,\n\t\t216, 156, 151, 155, 242, 6, 12, 26, 68, 202, 205, 3, 31, 146,\n\t\t205, 230, 188, 197, 14, 120, 61, 24, 148, 64, 210, 153, 129,\n\t\t102, 186, 54, 207, 60, 17, 51, 87, 210, 3, 6, 15, 36, 153,\n\t\t151, 170, 147, 115, 139, 20, 175, 20, 151, 137, 53, 218, 93,\n\t\t23, 140, 246, 44, 187, 76, 176, 108, 143, 32, 0, 64, 124,\n\t\t34, 32, 96, 2, 26, 5, 146, 181, 107, 218, 4, 109, 242, 145,\n\t\t8, 188, 254, 27, 27, 27, 27, 199, 58, 54, 246, 20, 169, 74,\n\t\t5, 228, 100, 36, 218, 169, 191, 164, 208, 138, 243, 104, 145,\n\t\t131, 177, 89, 221, 70, 217, 119, 191, 73, 73, 177, 221, 115,\n\t\t99, 127, 42, 245, 123, 225, 136, 31, 231, 244, 207, 153, 177,\n\t\t59, 54, 107, 48, 146, 150, 87, 76, 75, 49, 151, 126, 98, 209,\n\t\t95, 51, 3, 47, 248, 192, 31, 222, 160, 80, 42, 10, 142, 174,\n\t\t143, 188, 141, 248, 182, 148, 155, 132, 25, 225, 245, 233,\n\t\t176, 205, 61, 124, 188, 127, 96, 88, 33, 204, 202, 221, 255,\n\t\t77, 148, 98, 3, 124, 255, 95, 157, 63, 112, 78, 152, 115,\n\t\t216, 122, 24, 160, 106, 144, 229, 177, 43, 121, 7, 143, 218,\n\t\t196, 136, 195, 28, 139, 172, 25, 136, 252, 197, 140, 18, 202,\n\t\t19, 165, 55, 65, 185, 42, 166, 184, 133, 19, 13, 81, 215,\n\t\t217, 59, 169, 175, 110, 231, 205, 157, 82, 75, 93, 3, 61,\n\t\t98, 31, 205, 247, 33, 139, 88, 139, 190, 75, 37, 18, 15, 33,\n\t\t50, 155, 146, 128, 22, 167, 207, 74, 109, 242, 33, 179, 211,\n\t\t196, 104, 130, 210, 38, 67, 14, 17, 137, 169, 223, 57, 8,\n\t\t126, 123, 116, 40, 200, 188, 53, 8, 141, 62, 212, 242, 209,\n\t\t96, 125, 143, 108, 25, 17, 104, 177, 81, 226, 218, 252, 57,\n\t\t209, 204, 104, 101, 71, 230, 56, 69, 231, 131, 65, 17, 179,\n\t\t101, 30, 91, 192, 106, 197, 85, 242, 131, 182, 6, 153, 135,\n\t\t46, 128, 31, 22, 205, 220, 102, 105, 128, 157, 107, 223, 177,\n\t\t83, 46, 80, 105, 227, 52, 215, 214, 189, 121, 235, 224, 216,\n\t\t67, 86, 205, 154, 173, 165, 107, 123, 114, 105, 218, 98, 217,\n\t\t184, 225, 205, 164, 243, 253, 221, 248, 73, 75, 7, 46, 220,\n\t\t29, 196, 169, 204, 221, 189, 123, 224, 36, 99, 58, 227, 228,\n\t\t64, 23, 231, 142, 92, 29, 202, 203, 45, 243, 83, 200, 216,\n\t\t215, 76, 110, 193, 177, 239, 149, 191, 167, 42, 1, 136, 48,\n\t\t145, 166, 205, 205, 29, 205, 149, 211, 68, 98, 193, 133, 104,\n\t\t100, 133, 60, 124, 117, 136, 156, 170, 199, 167, 2, 252, 59,\n\t\t51, 197, 223, 87, 155, 234, 95, 182, 90, 235, 91, 182, 54,\n\t\t131, 140, 222, 126, 194, 118, 169, 136, 65, 78, 247, 32, 139,\n\t\t30, 248, 106, 231, 161, 190, 24, 89, 214, 60, 100, 249, 172,\n\t\t19, 57, 189, 170, 229, 181, 251, 87, 221, 232, 224, 63, 45,\n\t\t148, 74, 180, 133, 190, 120, 102, 175, 197, 164, 166, 70,\n\t\t69, 121, 146, 254, 117, 175, 49, 198, 6, 180, 166, 244, 181,\n\t\t142, 110, 1, 32, 73, 78, 228, 106, 222, 2, 16, 106, 158, 66,\n\t\t195, 6, 250, 184, 181, 67, 143, 33, 72, 144, 191, 72, 110,\n\t\t212, 177, 189, 227, 11, 198, 153, 44, 161, 107, 157, 51, 72,\n\t\t40, 167, 183, 248, 20, 25, 31, 206, 184, 110, 194, 37, 27,\n\t\t46, 203, 126, 226, 132, 134, 152, 63, 163, 83, 121, 73, 229,\n\t\t103, 67, 62, 204, 40, 219, 155, 210, 115, 215, 55, 126, 93,\n\t\t195, 248, 172, 217, 132, 90, 44, 9, 184, 34, 139, 182, 76,\n\t\t33, 220, 41, 203, 139, 46, 25, 50, 205, 221, 157, 158, 88,\n\t\t44, 138, 80, 50, 245, 179, 242, 196, 80, 142, 14, 59, 69,\n\t\t63, 155, 92, 58, 208, 230, 192, 145, 35, 203, 111, 70, 104,\n\t\t102, 28, 226, 147, 218, 124, 15, 41, 10, 124, 255, 141, 204,\n\t\t255, 191, 211, 112, 164, 216, 178, 96, 73, 92, 121, 244, 235,\n\t\t57, 231, 190, 203, 73, 252, 237, 192, 241, 27, 112, 53, 177,\n\t\t244, 185, 104, 75, 232, 251, 26, 57, 247, 172, 149, 58, 116,\n\t\t173, 252, 144, 90, 29, 122, 229, 172, 210, 173, 239, 67, 183,\n\t\t68, 237, 78, 115, 200, 42, 250, 44, 59, 215, 156, 43, 60,\n\t\t68, 255, 88, 190, 60, 204, 135, 254, 251, 34, 253, 86, 235,\n\t\t218, 53, 83, 171, 79, 92, 121, 74, 20, 14, 245, 98, 82, 147,\n\t\t106, 45, 32, 164, 69, 141, 58, 214, 195, 114, 46, 103, 207,\n\t\t249, 125, 195, 76, 141, 148, 203, 211, 73, 247, 24, 142, 38,\n\t\t254, 146, 195, 231, 208, 150, 177, 18, 231, 44, 167, 254,\n\t\t159, 101, 225, 168, 130, 125, 254, 170, 12, 171, 201, 91,\n\t\t77, 166, 115, 53, 210, 153, 27, 126, 159, 83, 0, 4, 10, 205,\n\t\t9, 153, 54, 69, 105, 186, 251, 105, 149, 188, 178, 51, 141,\n\t\t240, 203, 83, 177, 27, 229, 241, 241, 222, 239, 21, 161, 142,\n\t\t200, 211, 196, 20, 133, 102, 241, 204, 140, 131, 55, 63, 138,\n\t\t79, 174, 220, 196, 167, 44, 166, 26, 29, 39, 72, 231, 239,\n\t\t190, 127, 215, 40, 49, 114, 2, 32, 74, 230, 53, 23, 10, 173,\n\t\t118, 194, 183, 168, 192, 62, 20, 48, 12, 153, 39, 165, 73,\n\t\t143, 8, 195, 141, 154, 82, 184, 244, 107, 177, 188, 23, 210,\n\t\t139, 154, 187, 229, 24, 81, 59, 100, 215, 158, 171, 52, 91,\n\t\t44, 90, 154, 118, 175, 201, 197, 224, 158, 213, 219, 143,\n\t\t159, 25, 30, 126, 12, 167, 134, 36, 164, 72, 146, 200, 49,\n\t\t118, 193, 108, 70, 105, 200, 221, 219, 122, 51, 201, 237,\n\t\t74, 213, 54, 2, 142, 12, 234, 146, 196, 155, 195, 84, 123,\n\t\t22, 183, 203, 11, 222, 98, 241, 211, 226, 130, 62, 5, 0, 40,\n\t\t62, 55, 89, 254, 90, 74, 191, 161, 29, 23, 249, 120, 176,\n\t\t2, 93, 187, 238, 13, 165, 174, 97, 80, 15, 70, 250, 23, 87,\n\t\t192, 10, 80, 7, 175, 66, 250, 84, 73, 245, 127, 46, 224, 104,\n\t\t202, 149, 33, 84, 87, 245, 38, 49, 143, 120, 144, 54, 254,\n\t\t120, 255, 24, 96, 157, 211, 131, 120, 99, 229, 191, 167, 156,\n\t\t213, 63, 54, 208, 223, 159, 198, 113, 253, 253, 34, 33, 139,\n\t\t51, 154, 44, 72, 158, 196, 166, 11, 107, 78, 193, 245, 6,\n\t\t157, 146, 162, 68, 138, 75, 22, 228, 7, 37, 220, 57, 47, 219,\n\t\t232, 23, 41, 56, 83, 220, 115, 211, 238, 0, 31, 38, 177, 252,\n\t\t190, 117, 139, 70, 179, 101, 171, 142, 255, 213, 206, 177,\n\t\t61, 104, 3, 25, 75, 199, 220, 81, 30, 177, 68, 8, 66, 145,\n\t\t17, 165, 169, 251, 115, 8, 209, 252, 254, 202, 45, 116, 143,\n\t\t141, 13, 27, 135, 155, 154, 38, 237, 37, 37, 102, 115, 106,\n\t\t77, 4, 103, 50, 25, 206, 185, 136, 75, 223, 186, 181, 191,\n\t\t223, 45, 100, 8, 221, 253, 70, 211, 3, 45, 23, 8, 88, 53,\n\t\t201, 55, 45, 124, 161, 194, 227, 95, 240, 243, 86, 125, 75,\n\t\t249, 118, 149, 61, 70, 66, 213, 123, 79, 75, 98, 210, 183,\n\t\t243, 189, 170, 80, 213, 36, 174, 165, 239, 126, 16, 72, 55,\n\t\t74, 195, 196, 222, 113, 205, 31, 241, 32, 233, 65, 146, 68,\n\t\t100, 245, 120, 196, 1, 233, 166, 233, 124, 146, 239, 160,\n\t\t7, 85, 7, 146, 245, 7, 82, 60, 254, 100, 230, 159, 166, 82,\n\t\t7, 48, 41, 182, 222, 180, 214, 66, 180, 186, 124, 119, 92,\n\t\t58, 152, 48, 14, 164, 232, 17, 162, 114, 9, 99, 125, 157,\n\t\t87, 61, 242, 33, 188, 49, 203, 197, 252, 48, 159, 168, 233,\n\t\t155, 223, 196, 152, 89, 28, 66, 26, 35, 145, 30, 18, 3, 244,\n\t\t30, 125, 43, 229, 43, 43, 242, 253, 205, 249, 138, 191, 35,\n\t\t83, 134, 238, 115, 44, 45, 156, 124, 112, 162, 25, 244, 179,\n\t\t193, 19, 177, 74, 3, 172, 225, 143, 36, 14, 40, 76, 76, 78,\n\t\t75, 157, 10, 0, 63, 233, 47, 160, 71, 114, 171, 236, 115,\n\t\t131, 160, 225, 115, 168, 202, 39, 214, 38, 20, 230, 39, 45,\n\t\t137, 247, 224, 79, 131, 135, 71, 252, 218, 188, 164, 194,\n\t\t147, 115, 186, 236, 8, 235, 21, 251, 21, 17, 183, 176, 82,\n\t\t134, 35, 129, 140, 31, 3, 9, 201, 224, 43, 49, 48, 54, 200,\n\t\t70, 108, 145, 156, 252, 2, 139, 97, 23, 143, 231, 219, 53,\n\t\t81, 138, 174, 40, 48, 118, 156, 207, 174, 219, 11, 46, 65,\n\t\t105, 167, 188, 89, 115, 60, 37, 208, 165, 5, 52, 165, 172,\n\t\t213, 112, 164, 224, 225, 29, 159, 75, 42, 174, 101, 156, 159,\n\t\t240, 3, 164, 96, 49, 204, 159, 11, 76, 187, 57, 4, 55, 222,\n\t\t3, 210, 207, 246, 51, 222, 216, 79, 193, 26, 72, 139, 240,\n\t\t90, 179, 22, 79, 226, 10, 161, 108, 125, 99, 202, 190, 125,\n\t\t136, 138, 98, 254, 190, 221, 34, 164, 241, 198, 121, 30, 86,\n\t\t20, 193, 139, 85, 55, 143, 65, 159, 125, 102, 240, 129, 2,\n\t\t27, 133, 97, 202, 124, 113, 228, 63, 159, 85, 8, 210, 159,\n\t\t137, 202, 42, 21, 195, 24, 108, 100, 176, 4, 135, 245, 121,\n\t\t177, 144, 180, 177, 13, 169, 55, 199, 238, 203, 109, 145,\n\t\t52, 17, 147, 241, 240, 237, 29, 101, 4, 98, 195, 111, 98,\n\t\t52, 94, 211, 202, 192, 224, 113, 49, 172, 215, 64, 164, 205,\n\t\t232, 97, 96, 137, 24, 134, 195, 108, 86, 48, 168, 71, 219,\n\t\t223, 127, 121, 104, 31, 185, 66, 241, 181, 62, 91, 239, 45,\n\t\t210, 47, 94, 62, 187, 27, 188, 211, 231, 63, 254, 202, 18,\n\t\t83, 221, 253, 63, 18, 133, 156, 92, 26, 106, 2, 94, 35, 41,\n\t\t41, 63, 239, 77, 14, 79, 253, 62, 91, 25, 26, 69, 139, 18,\n\t\t36, 111, 114, 177, 255, 44, 161, 160, 240, 104, 22, 14, 3,\n\t\t65, 89, 164, 133, 59, 34, 136, 18, 233, 111, 162, 156, 166,\n\t\t166, 28, 186, 120, 34, 65, 43, 145, 212, 177, 106, 98, 73,\n\t\t120, 130, 155, 64, 36, 104, 181, 102, 179, 127, 207, 18, 136,\n\t\t131, 149, 124, 130, 102, 152, 137, 161, 98, 177, 120, 12,\n\t\t122, 2, 26, 131, 69, 163, 38, 177, 113, 20, 12, 92, 199, 16,\n\t\t215, 154, 240, 36, 140, 207, 176, 146, 64, 66, 163, 205, 98,\n\t\t12, 217, 113, 89, 139, 167, 19, 180, 110, 237, 123, 104, 199,\n\t\t103, 153, 12, 162, 74, 168, 14, 65, 132, 68, 171, 207, 144,\n\t\t68, 249, 72, 38, 151, 125, 97, 20, 107, 99, 36, 44, 176, 199,\n\t\t102, 219, 45, 171, 160, 130, 172, 244, 176, 61, 178, 127,\n\t\t105, 237, 122, 101, 45, 136, 178, 205, 131, 235, 124, 221,\n\t\t253, 218, 212, 85, 136, 179, 157, 7, 198, 208, 159, 3, 246,\n\t\t69, 1, 39, 197, 29, 189, 29, 138, 38, 29, 20, 94, 238, 179,\n\t\t90, 4, 156, 93, 189, 8, 251, 253, 58, 15, 249, 127, 239, 242,\n\t\t59, 141, 247, 186, 37, 99, 93, 247, 69, 158, 177, 229, 254,\n\t\t175, 124, 94, 121, 114, 94, 30, 155, 13, 60, 128, 178, 97,\n\t\t22, 111, 45, 19, 98, 174, 229, 177, 254, 33, 110, 85, 41,\n\t\t236, 226, 174, 221, 158, 118, 183, 158, 230, 243, 42, 157,\n\t\t32, 116, 125, 210, 51, 228, 75, 116, 136, 209, 176, 243, 165,\n\t\t208, 59, 235, 254, 7, 29, 163, 158, 199, 210, 77, 36, 189,\n\t\t187, 94, 151, 200, 43, 189, 177, 177, 10, 43, 199, 103, 151,\n\t\t186, 234, 195, 253, 172, 216, 251, 204, 249, 165, 188, 196,\n\t\t186, 159, 222, 147, 38, 178, 116, 188, 122, 17, 11, 240, 8,\n\t\t201, 166, 101, 27, 194, 155, 30, 218, 9, 4, 95, 162, 185,\n\t\t62, 242, 61, 131, 64, 176, 63, 108, 50, 132, 211, 148, 242,\n\t\t233, 109, 155, 113, 69, 22, 46, 23, 75, 74, 30, 31, 11, 186,\n\t\t18, 56, 6, 106, 221, 98, 48, 208, 58, 47, 65, 163, 1, 182,\n\t\t89, 166, 103, 237, 106, 105, 217, 197, 210, 203, 170, 12,\n\t\t112, 123, 233, 189, 128, 37, 1, 220, 34, 92, 91, 105, 33,\n\t\t119, 37, 171, 83, 169, 33, 70, 76, 122, 179, 123, 122, 112,\n\t\t11, 177, 209, 229, 200, 253, 179, 121, 223, 194, 224, 91,\n\t\t203, 245, 112, 204, 212, 234, 234, 195, 141, 140, 166, 172,\n\t\t196, 127, 164, 253, 188, 40, 161, 35, 50, 73, 119, 54, 166,\n\t\t50, 233, 241, 227, 136, 25, 152, 236, 110, 137, 12, 241, 123,\n\t\t195, 34, 177, 222, 232, 200, 205, 108, 242, 63, 147, 30, 231,\n\t\t199, 95, 157, 84, 121, 13, 80, 72, 155, 220, 216, 95, 76,\n\t\t10, 49, 72, 196, 154, 145, 100, 82, 61, 154, 108, 114, 0,\n\t\t51, 230, 103, 169, 198, 93, 201, 87, 192, 168, 34, 155, 58,\n\t\t113, 62, 109, 57, 69, 156, 180, 124, 158, 69, 53, 53, 78,\n\t\t91, 49, 233, 212, 150, 136, 225, 180, 210, 49, 84, 58, 45,\n\t\t123, 81, 226, 188, 238, 57, 170, 21, 135, 179, 27, 10, 230,\n\t\t38, 11, 22, 178, 195, 214, 231, 164, 127, 112, 115, 214, 135,\n\t\t177, 23, 38, 11, 10, 230, 26, 236, 235, 243, 148, 251, 155,\n\t\t112, 116, 15, 10, 197, 144, 151, 71, 32, 194, 92, 33, 181,\n\t\t26, 44, 51, 81, 241, 81, 219, 211, 130, 8, 92, 26, 151, 192,\n\t\t237, 127, 2, 28, 147, 89, 99, 92, 62, 181, 70, 217, 45, 68,\n\t\t5, 200, 177, 167, 46, 23, 255, 184, 72, 4, 25, 122, 27, 247,\n\t\t24, 191, 61, 41, 72, 121, 196, 64, 42, 104, 194, 37, 238,\n\t\t110, 13, 207, 79, 143, 129, 178, 124, 79, 98, 54, 10, 123,\n\t\t46, 199, 241, 230, 151, 4, 182, 121, 247, 75, 235, 209, 180,\n\t\t20, 68, 29, 221, 30, 184, 194, 46, 211, 235, 110, 244, 124,\n\t\t60, 194, 111, 207, 99, 245, 206, 28, 167, 182, 99, 120, 191,\n\t\t125, 170, 165, 157, 59, 14, 237, 243, 128, 16, 26, 166, 128,\n\t\t25, 215, 168, 12, 132, 65, 189, 198, 120, 44, 212, 9, 36,\n\t\t4, 235, 135, 93, 24, 191, 222, 181, 22, 93, 85, 151, 223,\n\t\t130, 117, 221, 224, 250, 230, 197, 90, 98, 98, 44, 177, 203,\n\t\t94, 232, 42, 64, 53, 117, 94, 56, 132, 90, 161, 156, 39, 221,\n\t\t113, 131, 27, 103, 241, 84, 29, 235, 7, 139, 31, 238, 157,\n\t\t82, 173, 244, 112, 141, 56, 160, 53, 242, 179, 49, 220, 140,\n\t\t237, 232, 158, 54, 12, 21, 81, 8, 251, 245, 6, 176, 141, 211,\n\t\t169, 213, 18, 62, 125, 193, 222, 189, 129, 111, 243, 246,\n\t\t74, 44, 22, 201, 15, 108, 60, 220, 59, 240, 70, 240, 102,\n\t\t207, 185, 221, 187, 207, 237, 249, 127, 203, 255, 96, 147,\n\t\t73, 242, 142, 109, 211, 240, 235, 9, 48, 205, 75, 222, 230,\n\t\t52, 29, 102, 224, 200, 128, 54, 221, 208, 197, 235, 30, 247,\n\t\t14, 230, 80, 166, 103, 59, 143, 212, 139, 144, 194, 216, 45,\n\t\t4, 5, 175, 85, 245, 120, 35, 147, 98, 252, 94, 253, 219, 226,\n\t\t93, 226, 183, 184, 63, 154, 87, 138, 14, 25, 67, 36, 81, 165,\n\t\t90, 201, 89, 196, 41, 68, 174, 3, 109, 184, 72, 231, 104,\n\t\t229, 110, 44, 227, 21, 190, 140, 3, 39, 12, 59, 8, 196, 207,\n\t\t110, 57, 112, 150, 158, 221, 81, 179, 234, 22, 22, 174, 115,\n\t\t26, 10, 99, 126, 20, 183, 65, 248, 93, 30, 255, 223, 206,\n\t\t232, 127, 152, 6, 73, 255, 50, 207, 104, 43, 20, 157, 77,\n\t\t109, 168, 188, 254, 43, 91, 25, 212, 19, 45, 23, 34, 147,\n\t\t72, 99, 28, 242, 133, 187, 235, 91, 110, 104, 40, 151, 132,\n\t\t246, 66, 140, 33, 217, 248, 20, 143, 20, 124, 18, 57, 9, 159,\n\t\t34, 72, 38, 152, 66, 141, 79, 150, 146, 250, 113, 133, 126,\n\t\t215, 210, 164, 7, 8, 94, 73, 89, 181, 235, 251, 228, 237,\n\t\t71, 125, 224, 144, 195, 78, 55, 99, 224, 249, 20, 214, 244,\n\t\t239, 9, 124, 245, 42, 5, 150, 253, 57, 43, 101, 220, 236,\n\t\t96, 155, 104, 31, 106, 191, 74, 86, 255, 241, 117, 63, 137,\n\t\t155, 131, 122, 166, 204, 14, 179, 133, 145, 183, 66, 218,\n\t\t28, 84, 25, 185, 119, 222, 78, 176, 235, 118, 54, 4, 218,\n\t\t20, 178, 235, 173, 49, 177, 140, 123, 220, 8, 210, 64, 250,\n\t\t169, 238, 221, 1, 187, 221, 149, 119, 98, 152, 3, 160, 246,\n\t\t248, 10, 161, 23, 5, 132, 117, 226, 37, 49, 255, 198, 24,\n\t\t147, 43, 195, 219, 117, 210, 8, 235, 241, 149, 198, 228, 152,\n\t\t183, 189, 232, 81, 248, 211, 89, 252, 190, 101, 44, 74, 61,\n\t\t188, 133, 181, 76, 125, 64, 194, 151, 220, 179, 121, 117,\n\t\t8, 123, 23, 37, 35, 125, 116, 224, 164, 189, 191, 89, 181,\n\t\t141, 172, 36, 188, 76, 214, 184, 163, 238, 184, 46, 76, 232,\n\t\t219, 67, 101, 39, 23, 10, 119, 93, 241, 220, 60, 87, 60, 143,\n\t\t169, 238, 236, 143, 85, 34, 17, 138, 217, 250, 240, 86, 104,\n\t\t171, 2, 32, 163, 28, 3, 64, 203, 192, 217, 8, 38, 235, 229,\n\t\t30, 151, 91, 229, 224, 45, 173, 74, 77, 85, 78, 172, 95, 172,\n\t\t163, 233, 116, 252, 19, 149, 43, 86, 52, 135, 87, 222, 253,\n\t\t173, 109, 98, 68, 125, 78, 52, 246, 111, 226, 190, 255, 150,\n\t\t135, 60, 38, 172, 254, 60, 162, 58, 188, 154, 16, 118, 104,\n\t\t216, 210, 229, 127, 39, 22, 187, 195, 53, 147, 239, 225, 111,\n\t\t39, 61, 73, 241, 192, 99, 212, 154, 180, 52, 167, 211, 7,\n\t\t245, 16, 179, 184, 237, 26, 109, 122, 255, 246, 237, 78, 103,\n\t\t105, 169, 111, 94, 222, 241, 126, 91, 127, 127, 149, 125,\n\t\t192, 103, 88, 163, 237, 7, 124, 196, 111, 191, 79, 223, 156,\n\t\t239, 34, 213, 50, 123, 115, 233, 36, 87, 254, 18, 250, 251,\n\t\t111, 218, 134, 94, 230, 197, 222, 85, 119, 40, 3, 126, 191,\n\t\t8, 80, 162, 180, 25, 214, 152, 121, 254, 52, 255, 121, 49,\n\t\t214, 12, 109, 238, 66, 252, 209, 236, 151, 47, 179, 143, 226,\n\t\t23, 94, 45, 198, 16, 19, 105, 102, 205, 215, 119, 255, 114,\n\t\t250, 51, 56, 104, 60, 186, 200, 120, 116, 171, 196, 162, 180,\n\t\t184, 214, 80, 217, 95, 208, 64, 165, 19, 46, 242, 142, 7,\n\t\t244, 32, 59, 50, 210, 7, 6, 252, 169, 56, 194, 127, 246, 127,\n\t\t24, 181, 35, 130, 111, 83, 203, 203, 214, 93, 234, 94, 66,\n\t\t33, 150, 19, 52, 140, 14, 55, 199, 146, 168, 182, 230, 198,\n\t\t27, 240, 27, 8, 143, 9, 27, 240, 134, 248, 92, 181, 53, 49,\n\t\t241, 74, 9, 8, 196, 8, 3, 196, 236, 115, 147, 57, 100, 125,\n\t\t98, 82, 53, 18, 223, 27, 232, 120, 48, 133, 195, 193, 11,\n\t\t182, 223, 168, 44, 246, 178, 227, 221, 45, 140, 74, 100, 188,\n\t\t121, 10, 177, 16, 89, 147, 100, 25, 189, 183, 127, 167, 113,\n\t\t132, 120, 11, 14, 222, 178, 123, 41, 218, 126, 106, 144, 185,\n\t\t41, 71, 92, 86, 38, 206, 201, 122, 54, 20, 175, 157, 52, 201,\n\t\t20, 4, 212, 148, 88, 202, 213, 198, 15, 101, 201, 49, 254,\n\t\t147, 188, 56, 57, 49, 231, 14, 151, 150, 130, 230, 128, 181,\n\t\t65, 78, 103, 208, 218, 9, 45, 103, 121, 147, 94, 255, 71,\n\t\t4, 67, 100, 202, 44, 72, 126, 128, 246, 51, 124, 61, 137,\n\t\t199, 174, 110, 233, 222, 49, 61, 105, 248, 160, 224, 9, 215,\n\t\t203, 203, 221, 66, 119, 97, 225, 140, 99, 140, 145, 118, 26,\n\t\t24, 132, 104, 24, 254, 207, 45, 117, 117, 61, 20, 85, 92,\n\t\t62, 210, 25, 175, 186, 58, 153, 172, 154, 185, 101, 92, 192,\n\t\t172, 126, 74, 182, 217, 85, 94, 177, 100, 241, 176, 237, 212,\n\t\t102, 221, 216, 185, 248, 122, 237, 249, 238, 7, 106, 37, 241,\n\t\t66, 125, 117, 125, 128, 80, 93, 41, 12, 223, 6, 253, 208,\n\t\t128, 192, 11, 100, 229, 35, 165, 130, 254, 19, 87, 70, 103,\n\t\t21, 13, 136, 50, 111, 236, 113, 115, 210, 145, 234, 140, 108,\n\t\t157, 79, 99, 99, 4, 20, 145, 236, 107, 87, 108, 44, 205, 139,\n\t\t104, 68, 196, 17, 88, 124, 228, 61, 83, 89, 196, 142, 173,\n\t\t215, 235, 150, 148, 31, 146, 116, 221, 134, 23, 208, 129,\n\t\t39, 202, 204, 44, 251, 195, 204, 111, 10, 245, 79, 68, 139,\n\t\t211, 201, 202, 142, 32, 96, 97, 231, 137, 234, 246, 251, 164,\n\t\t204, 201, 49, 221, 16, 191, 15, 193, 251, 209, 57, 69, 183,\n\t\t26, 169, 179, 30, 12, 116, 247, 247, 215, 43, 174, 127, 47,\n\t\t223, 128, 131, 86, 164, 78, 109, 63, 164, 111, 42, 47, 137,\n\t\t189, 32, 59, 164, 60, 196, 167, 250, 190, 163, 76, 159, 76,\n\t\t80, 134, 80, 137, 146, 63, 125, 80, 90, 193, 145, 93, 6, 179,\n\t\t184, 184, 55, 223, 215, 144, 252, 189, 30, 22, 195, 49, 160,\n\t\t252, 221, 94, 70, 109, 8, 26, 220, 13, 207, 128, 204, 247,\n\t\t232, 231, 94, 251, 166, 221, 90, 112, 186, 129, 200, 197,\n\t\t93, 189, 161, 170, 253, 227, 205, 63, 178, 225, 55, 86, 25,\n\t\t44, 106, 48, 73, 32, 116, 19, 196, 216, 232, 10, 236, 53,\n\t\t23, 203, 209, 165, 246, 242, 13, 174, 90, 150, 156, 145, 184,\n\t\t120, 73, 55, 149, 245, 95, 102, 233, 167, 105, 139, 238, 172,\n\t\t205, 57, 45, 21, 204, 185, 80, 49, 180, 58, 91, 114, 57, 208,\n\t\t158, 166, 79, 141, 66, 196, 106, 57, 131, 224, 195, 237, 39,\n\t\t115, 243, 87, 107, 253, 47, 238, 188, 114, 173, 46, 126, 110,\n\t\t103, 201, 190, 118, 119, 18, 128, 129, 130, 227, 251, 229,\n\t\t145, 3, 134, 209, 210, 164, 173, 246, 214, 126, 20, 141, 141,\n\t\t110, 194, 202, 197, 46, 241, 133, 237, 209, 106, 52, 113,\n\t\t197, 75, 226, 68, 154, 132, 138, 137, 78, 234, 54, 19, 8,\n\t\t93, 167, 120, 171, 229, 68, 203, 114, 230, 62, 61, 78, 170,\n\t\t173, 102, 214, 206, 239, 37, 90, 172, 176, 165, 181, 119,\n\t\t239, 90, 202, 218, 35, 29, 68, 139, 29, 182, 232, 198, 27,\n\t\t152, 181, 213, 32, 88, 128, 32, 122, 238, 239, 211, 47, 100,\n\t\t27, 95, 90, 1, 23, 166, 255, 158, 75, 135, 32, 184, 226, 181,\n\t\t198, 247, 248, 78, 187, 125, 231, 241, 246, 221, 247, 186,\n\t\t130, 48, 61, 100, 109, 55, 218, 99, 186, 46, 177, 185, 89,\n\t\t159, 200, 159, 206, 236, 89, 12, 218, 255, 164, 227, 212,\n\t\t140, 135, 223, 9, 51, 125, 146, 61, 110, 231, 47, 248, 172,\n\t\t163, 21, 248, 254, 127, 244, 34, 47, 39, 195, 93, 150, 140,\n\t\t67, 233, 30, 182, 165, 211, 92, 255, 86, 255, 14, 248, 182,\n\t\t169, 230, 247, 141, 53, 252, 30, 81, 100, 14, 217, 99, 156,\n\t\t57, 124, 188, 192, 222, 227, 245, 233, 120, 35, 108, 142,\n\t\t151, 71, 74, 245, 25, 77, 241, 204, 76, 96, 164, 17, 236,\n\t\t41, 68, 143, 34, 170, 113, 217, 249, 172, 27, 61, 199, 69,\n\t\t202, 52, 20, 96, 204, 202, 74, 23, 112, 66, 52, 113, 231,\n\t\t207, 246, 79, 50, 252, 145, 234, 71, 210, 122, 49, 127, 45,\n\t\t124, 190, 127, 117, 111, 210, 93, 97, 81, 52, 168, 124, 218,\n\t\t85, 14, 209, 162, 194, 166, 109, 175, 190, 151, 172, 186,\n\t\t11, 59, 240, 0, 211, 243, 226, 119, 154, 140, 245, 244, 133,\n\t\t59, 35, 109, 19, 138, 43, 163, 152, 245, 177, 32, 11, 80,\n\t\t86, 110, 11, 174, 135, 69, 176, 113, 50, 244, 59, 180, 26,\n\t\t155, 6, 223, 24, 229, 198, 182, 184, 73, 200, 141, 168, 33,\n\t\t172, 126, 83, 198, 224, 23, 180, 237, 153, 249, 49, 165, 73,\n\t\t89, 33, 32, 150, 57, 118, 124, 98, 183, 91, 232, 190, 113,\n\t\t19, 133, 67, 67, 105, 105, 109, 194, 182, 117, 33, 46, 89,\n\t\t171, 33, 68, 131, 207, 110, 232, 229, 138, 41, 125, 149, 156,\n\t\t166, 152, 61, 125, 141, 228, 62, 213, 108, 91, 164, 41, 29,\n\t\t252, 219, 16, 59, 135, 88, 206, 241, 53, 205, 112, 34, 114,\n\t\t89, 115, 60, 235, 12, 91, 42, 186, 229, 221, 75, 188, 96,\n\t\t175, 37, 175, 252, 46, 209, 97, 180, 199, 91, 44, 77, 191,\n\t\t245, 241, 251, 118, 253, 164, 62, 175, 24, 48, 227, 149, 79,\n\t\t26, 35, 74, 127, 180, 156, 46, 253, 35, 209, 108, 89, 183,\n\t\t190, 78, 17, 191, 251, 193, 167, 103, 151, 163, 209, 161,\n\t\t158, 72, 176, 163, 81, 171, 193, 129, 61, 255, 248, 160, 155,\n\t\t111, 29, 109, 234, 229, 127, 188, 115, 110, 120, 101, 168,\n\t\t249, 145, 80, 63, 58, 226, 73, 37, 176, 76, 10, 95, 247, 84,\n\t\t167, 218, 236, 184, 130, 197, 28, 114, 102, 103, 76, 200,\n\t\t192, 165, 45, 138, 112, 45, 112, 149, 237, 37, 102, 128, 19,\n\t\t232, 21, 114, 7, 167, 38, 100, 95, 168, 23, 80, 72, 132, 67,\n\t\t109, 92, 159, 165, 137, 38, 79, 83, 98, 252, 147, 43, 240,\n\t\t95, 14, 69, 80, 127, 129, 144, 141, 83, 223, 73, 250, 179,\n\t\t158, 201, 251, 42, 41, 87, 229, 156, 246, 91, 113, 254, 116,\n\t\t23, 248, 60, 155, 199, 4, 165, 65, 101, 6, 221, 249, 133,\n\t\t241, 122, 180, 45, 165, 112, 239, 239, 226, 116, 75, 73, 48,\n\t\t181, 235, 26, 111, 165, 160, 72, 114, 99, 195, 196, 249, 168,\n\t\t100, 232, 110, 67, 165, 159, 96, 18, 33, 117, 130, 231, 20,\n\t\t114, 243, 181, 191, 74, 57, 127, 8, 217, 7, 4, 216, 81, 112,\n\t\t123, 173, 11, 155, 69, 36, 46, 241, 46, 94, 110, 29, 173,\n\t\t195, 28, 204, 204, 3, 252, 99, 171, 46, 240, 251, 248, 23,\n\t\t170, 82, 124, 131, 169, 228, 68, 11, 124, 119, 32, 87, 166,\n\t\t27, 19, 161, 67, 203, 120, 167, 60, 66, 224, 176, 187, 242,\n\t\t116, 214, 247, 226, 13, 251, 121, 125, 64, 109, 99, 219, 65,\n\t\t218, 82, 113, 93, 99, 181, 41, 9, 117, 226, 165, 180, 131,\n\t\t109, 147, 173, 17, 228, 85, 85, 245, 115, 139, 50, 76, 27,\n\t\t155, 92, 52, 55, 85, 173, 34, 71, 152, 251, 102, 40, 205,\n\t\t178, 228, 177, 248, 49, 24, 29, 101, 91, 80, 50, 175, 122,\n\t\t22, 89, 175, 218, 147, 4, 7, 158, 23, 159, 15, 132, 147, 246,\n\t\t168, 214, 185, 206, 170, 158, 87, 178, 192, 214, 184, 62,\n\t\t110, 197, 138, 184, 245, 207, 30, 84, 126, 100, 61, 246, 98,\n\t\t40, 36, 82, 78, 26, 203, 144, 7, 86, 211, 232, 180, 155, 103,\n\t\t242, 136, 190, 230, 57, 36, 162, 225, 204, 205, 28, 109, 122,\n\t\t75, 87, 247, 79, 69, 20, 190, 187, 247, 100, 7, 175, 241,\n\t\t85, 160, 176, 40, 81, 117, 77, 246, 158, 181, 139, 197, 236,\n\t\t79, 92, 238, 167, 136, 34, 24, 98, 113, 72, 36, 103, 233,\n\t\t244, 179, 2, 231, 12, 176, 76, 179, 219, 87, 129, 16, 54,\n\t\t100, 215, 84, 139, 26, 116, 147, 43, 215, 119, 5, 204, 82,\n\t\t12, 190, 86, 6, 151, 5, 230, 112, 32, 239, 97, 111, 254, 212,\n\t\t102, 148, 145, 61, 169, 124, 53, 129, 137, 171, 207, 214,\n\t\t43, 226, 176, 9, 168, 230, 169, 124, 195, 189, 32, 78, 78,\n\t\t160, 147, 203, 225, 203, 250, 44, 110, 31, 243, 43, 53, 233,\n\t\t24, 11, 16, 1, 106, 162, 45, 127, 83, 153, 240, 54, 7, 250,\n\t\t76, 56, 95, 174, 147, 204, 198, 245, 189, 38, 63, 162, 136,\n\t\t134, 90, 9, 9, 4, 232, 246, 108, 232, 17, 249, 117, 223, 108,\n\t\t188, 214, 71, 189, 50, 31, 251, 25, 202, 209, 200, 128, 138,\n\t\t10, 181, 194, 52, 214, 92, 182, 9, 15, 99, 115, 229, 90, 234,\n\t\t31, 222, 61, 222, 188, 162, 74, 43, 14, 230, 33, 224, 11,\n\t\t118, 121, 132, 53, 215, 49, 61, 118, 85, 113, 9, 76, 0, 16,\n\t\t49, 145, 218, 27, 231, 133, 31, 10, 5, 120, 2, 120, 16, 206,\n\t\t90, 89, 196, 203, 243, 7, 85, 43, 207, 197, 194, 120, 211,\n\t\t254, 176, 157, 212, 180, 63, 18, 34, 246, 206, 64, 59, 207,\n\t\t46, 185, 248, 4, 35, 112, 171, 118, 121, 48, 235, 154, 193,\n\t\t225, 183, 92, 43, 123, 28, 237, 205, 108, 43, 119, 56, 98,\n\t\t4, 237, 223, 56, 194, 223, 227, 197, 163, 17, 14, 58, 210,\n\t\t9, 180, 119, 57, 15, 155, 124, 1, 104, 22, 63, 6, 183, 158,\n\t\t146, 145, 146, 229, 227, 173, 244, 135, 203, 198, 173, 50,\n\t\t25, 23, 93, 92, 58, 48, 255, 217, 73, 3, 51, 68, 179, 147,\n\t\t67, 203, 240, 232, 204, 196, 27, 131, 53, 72, 208, 98, 155,\n\t\t167, 178, 218, 148, 65, 91, 73, 196, 103, 226, 246, 43, 131,\n\t\t144, 2, 219, 41, 203, 119, 223, 93, 122, 201, 223, 223, 52,\n\t\t107, 94, 108, 252, 81, 126, 73, 161, 190, 193, 85, 94, 85,\n\t\t190, 56, 115, 46, 100, 197, 23, 245, 188, 144, 154, 211, 47,\n\t\t116, 108, 28, 254, 6, 155, 157, 132, 156, 156, 123, 105, 97,\n\t\t39, 239, 111, 189, 121, 248, 215, 242, 134, 103, 128, 249,\n\t\t88, 43, 198, 220, 205, 188, 121, 54, 176, 34, 244, 159, 210,\n\t\t178, 5, 229, 165, 167, 214, 204, 228, 242, 85, 199, 23, 192,\n\t\t251, 75, 87, 90, 173, 90, 76, 104, 11, 155, 111, 198, 251,\n\t\t47, 202, 157, 37, 54, 17, 136, 213, 249, 127, 15, 132, 78,\n\t\t205, 58, 210, 58, 1, 195, 153, 33, 57, 128, 156, 134, 109,\n\t\t183, 225, 39, 0, 144, 133, 37, 50, 14, 25, 0, 14, 247, 136,\n\t\t117, 220, 45, 186, 240, 153, 165, 56, 214, 109, 234, 149,\n\t\t153, 53, 173, 11, 115, 39, 19, 58, 110, 88, 51, 165, 150,\n\t\t109, 59, 51, 44, 133, 7, 242, 47, 209, 105, 173, 155, 233,\n\t\t42, 88, 206, 38, 248, 173, 181, 197, 199, 139, 121, 122, 154,\n\t\t183, 7, 197, 53, 221, 35, 29, 5, 50, 121, 82, 229, 167, 86,\n\t\t142, 146, 155, 91, 127, 19, 36, 181, 84, 77, 23, 34, 212,\n\t\t120, 21, 73, 16, 90, 148, 213, 132, 248, 253, 88, 59, 94,\n\t\t75, 134, 232, 213, 216, 102, 92, 2, 55, 91, 165, 78, 240,\n\t\t3, 223, 239, 183, 9, 218, 30, 61, 234, 22, 116, 203, 32, 167,\n\t\t153, 245, 167, 217, 156, 155, 41, 233, 194, 69, 227, 105,\n\t\t90, 141, 16, 36, 230, 64, 196, 26, 141, 235, 146, 0, 140,\n\t\t134, 109, 118, 137, 174, 139, 164, 66, 120, 151, 119, 215,\n\t\t223, 233, 213, 164, 161, 39, 96, 157, 145, 121, 226, 121,\n\t\t10, 69, 137, 160, 23, 243, 174, 89, 80, 224, 179, 55, 202,\n\t\t114, 109, 222, 139, 193, 210, 225, 143, 171, 220, 181, 42,\n\t\t145, 162, 72, 165, 9, 6, 255, 143, 173, 63, 126, 124, 125,\n\t\t255, 113, 66, 94, 131, 66, 225, 29, 3, 199, 115, 185, 114,\n\t\t93, 191, 225, 147, 3, 215, 67, 120, 144, 39, 21, 178, 199,\n\t\t33, 207, 67, 47, 167, 36, 81, 146, 68, 49, 222, 219, 183,\n\t\t255, 207, 56, 228, 117, 144, 37, 60, 251, 65, 175, 67, 123,\n\t\t250, 82, 14, 242, 15, 110, 73, 137, 235, 49, 163, 156, 52,\n\t\t246, 108, 49, 16, 1, 193, 216, 56, 67, 23, 115, 4, 171, 25,\n\t\t10, 183, 76, 214, 232, 235, 108, 6, 5, 31, 3, 122, 224, 57,\n\t\t88, 253, 194, 32, 52, 120, 123, 167, 226, 109, 162, 193, 34,\n\t\t4, 80, 1, 46, 209, 126, 76, 12, 243, 230, 173, 54, 42, 171,\n\t\t210, 124, 206, 117, 228, 45, 79, 40, 22, 168, 253, 46, 17,\n\t\t35, 110, 227, 199, 202, 251, 69, 188, 157, 146, 199, 209,\n\t\t111, 243, 85, 136, 234, 203, 196, 143, 147, 72, 69, 189, 131,\n\t\t223, 240, 152, 110, 63, 247, 208, 173, 0, 213, 70, 129, 139,\n\t\t86, 226, 72, 64, 3, 39, 16, 112, 95, 201, 157, 230, 101, 7,\n\t\t35, 75, 84, 106, 15, 171, 191, 99, 133, 119, 148, 244, 246,\n\t\t250, 247, 106, 166, 142, 112, 208, 94, 146, 19, 226, 247,\n\t\t197, 239, 76, 118, 107, 214, 166, 131, 54, 109, 154, 92, 246,\n\t\t25, 109, 107, 72, 78, 107, 38, 162, 152, 61, 7, 38, 91, 33,\n\t\t197, 76, 69, 0, 104, 151, 125, 52, 10, 69, 85, 45, 242, 73,\n\t\t13, 72, 192, 174, 22, 16, 91, 107, 233, 168, 219, 107, 157,\n\t\t145, 137, 189, 41, 180, 69, 49, 148, 105, 148, 12, 101, 134,\n\t\t110, 146, 172, 179, 197, 75, 122, 7, 104, 234, 40, 10, 88,\n\t\t7, 197, 166, 203, 197, 214, 14, 188, 119, 72, 226, 121, 52,\n\t\t229, 104, 39, 222, 38, 108, 115, 143, 196, 7, 3, 197, 139,\n\t\t38, 139, 225, 74, 5, 19, 177, 67, 200, 223, 198, 74, 254,\n\t\t214, 214, 202, 209, 216, 212, 230, 155, 38, 184, 121, 109,\n\t\t214, 223, 44, 250, 216, 206, 73, 33, 49, 186, 136, 162, 211,\n\t\t189, 86, 140, 111, 129, 111, 170, 198, 44, 218, 175, 228,\n\t\t122, 216, 98, 103, 248, 69, 117, 125, 126, 59, 237, 102, 46,\n\t\t10, 131, 170, 40, 144, 3, 150, 117, 5, 121, 148, 255, 183,\n\t\t229, 253, 126, 24, 75, 224, 31, 254, 81, 186, 217, 251, 240,\n\t\t199, 98, 79, 209, 129, 170, 236, 100, 171, 24, 33, 101, 33,\n\t\t81, 150, 42, 119, 61, 174, 168, 215, 243, 91, 247, 154, 191,\n\t\t50, 176, 226, 160, 79, 251, 5, 87, 179, 105, 186, 224, 181,\n\t\t247, 23, 112, 61, 2, 198, 178, 164, 88, 65, 249, 127, 125,\n\t\t239, 247, 139, 176, 120, 232, 8, 192, 2, 37, 255, 192, 227,\n\t\t196, 109, 254, 8, 7, 251, 187, 116, 153, 46, 118, 18, 7, 46,\n\t\t187, 155, 36, 70, 252, 143, 201, 69, 51, 99, 206, 252, 74,\n\t\t8, 251, 227, 15, 82, 255, 174, 71, 227, 181, 37, 44, 151,\n\t\t68, 32, 231, 147, 44, 21, 198, 141, 169, 227, 2, 127, 181,\n\t\t207, 100, 53, 56, 159, 12, 40, 103, 16, 110, 69, 206, 12,\n\t\t21, 116, 96, 125, 92, 40, 100, 219, 211, 228, 16, 68, 101,\n\t\t89, 20, 110, 10, 23, 69, 30, 96, 67, 192, 5, 21, 94, 230,\n\t\t38, 27, 157, 138, 213, 219, 112, 43, 137, 184, 173, 107, 180,\n\t\t23, 167, 198, 15, 199, 137, 121, 94, 146, 186, 178, 87, 1,\n\t\t30, 127, 62, 182, 253, 93, 180, 109, 181, 183, 34, 144, 19,\n\t\t32, 70, 10, 112, 253, 228, 140, 199, 9, 180, 11, 115, 228,\n\t\t126, 51, 200, 245, 134, 92, 224, 46, 53, 173, 114, 100, 227,\n\t\t136, 117, 115, 134, 229, 166, 202, 167, 68, 130, 208, 203,\n\t\t134, 53, 123, 216, 236, 46, 122, 117, 96, 173, 214, 43, 189,\n\t\t133, 189, 220, 15, 34, 104, 57, 47, 106, 61, 247, 46, 65,\n\t\t128, 91, 104, 103, 141, 155, 243, 150, 67, 12, 74, 80, 147,\n\t\t190, 41, 136, 114, 146, 158, 104, 184, 126, 7, 40, 125, 32,\n\t\t164, 232, 223, 235, 212, 25, 224, 66, 123, 114, 141, 91, 187,\n\t\t165, 47, 238, 182, 78, 15, 77, 139, 74, 74, 205, 170, 225,\n\t\t175, 5, 73, 81, 105, 218, 193, 144, 149, 222, 252, 187, 172,\n\t\t1, 228, 11, 236, 13, 232, 48, 154, 72, 43, 124, 198, 30, 245,\n\t\t42, 239, 108, 143, 164, 194, 159, 209, 136, 87, 99, 201, 206,\n\t\t219, 87, 95, 69, 53, 18, 243, 104, 217, 99, 90, 98, 213, 171,\n\t\t68, 184, 14, 91, 196, 46, 241, 146, 71, 118, 126, 144, 212,\n\t\t247, 222, 46, 45, 32, 235, 253, 65, 66, 8, 38, 181, 106, 1,\n\t\t169, 46, 105, 198, 237, 145, 101, 74, 123, 149, 143, 119,\n\t\t183, 229, 198, 93, 92, 60, 83, 231, 1, 27, 127, 207, 189,\n\t\t57, 143, 132, 229, 55, 84, 202, 71, 66, 16, 134, 169, 249,\n\t\t229, 212, 219, 231, 29, 40, 61, 27, 0, 183, 96, 189, 141,\n\t\t4, 136, 40, 70, 225, 146, 26, 205, 192, 223, 40, 242, 46,\n\t\t163, 231, 141, 137, 199, 245, 195, 34, 211, 112, 60, 235,\n\t\t189, 143, 89, 236, 165, 147, 247, 240, 117, 184, 114, 188,\n\t\t61, 72, 17, 202, 156, 117, 180, 116, 250, 79, 3, 35, 205,\n\t\t193, 180, 23, 121, 238, 97, 115, 30, 230, 61, 2, 237, 41,\n\t\t18, 241, 148, 33, 82, 71, 164, 165, 184, 245, 49, 151, 120,\n\t\t108, 213, 40, 82, 37, 248, 240, 152, 208, 77, 240, 230, 115,\n\t\t160, 54, 234, 135, 62, 239, 103, 43, 104, 218, 189, 79, 119,\n\t\t1, 189, 89, 6, 145, 182, 143, 80, 62, 223, 171, 165, 41, 158,\n\t\t245, 195, 196, 89, 192, 25, 1, 157, 129, 163, 159, 153, 167,\n\t\t250, 229, 66, 223, 205, 2, 156, 238, 102, 223, 133, 95, 106,\n\t\t50, 115, 63, 132, 45, 79, 79, 207, 205, 36, 81, 158, 137,\n\t\t37, 250, 241, 136, 230, 34, 126, 127, 92, 135, 117, 138, 156,\n\t\t252, 129, 219, 12, 236, 81, 103, 176, 171, 6, 13, 42, 4, 27,\n\t\t117, 245, 202, 172, 107, 107, 111, 93, 112, 67, 183, 230,\n\t\t13, 60, 95, 123, 241, 73, 22, 221, 49, 228, 152, 42, 72, 124,\n\t\t175, 127, 127, 14, 49, 90, 151, 5, 10, 198, 81, 73, 22, 48,\n\t\t153, 203, 151, 12, 185, 247, 40, 193, 150, 101, 151, 159,\n\t\t114, 212, 111, 4, 59, 180, 17, 79, 73, 225, 58, 144, 126,\n\t\t75, 192, 222, 30, 111, 76, 54, 141, 105, 183, 83, 246, 183,\n\t\t33, 225, 31, 246, 198, 195, 23, 95, 227, 57, 143, 57, 248,\n\t\t215, 45, 109, 189, 13, 93, 246, 224, 202, 46, 64, 65, 184,\n\t\t251, 208, 85, 209, 108, 223, 36, 244, 52, 1, 52, 255, 166,\n\t\t66, 133, 177, 79, 236, 18, 91, 127, 98, 53, 211, 103, 52,\n\t\t166, 94, 221, 70, 3, 234, 40, 1, 215, 197, 238, 229, 18, 144,\n\t\t33, 109, 186, 99, 4, 134, 176, 142, 213, 63, 138, 66, 119,\n\t\t221, 151, 65, 185, 188, 59, 151, 44, 230, 240, 3, 227, 168,\n\t\t253, 157, 43, 37, 80, 221, 149, 211, 102, 239, 159, 173, 220,\n\t\t110, 42, 65, 218, 192, 65, 174, 193, 14, 177, 3, 94, 66, 34,\n\t\t177, 201, 126, 187, 168, 252, 182, 114, 201, 33, 175, 33,\n\t\t28, 138, 83, 62, 62, 50, 162, 199, 178, 68, 243, 165, 42,\n\t\t94, 161, 154, 175, 163, 105, 135, 74, 149, 105, 217, 109,\n\t\t119, 78, 79, 229, 97, 234, 160, 126, 8, 202, 211, 20, 128,\n\t\t203, 131, 230, 13, 152, 186, 211, 18, 208, 104, 202, 234,\n\t\t153, 105, 217, 165, 202, 67, 105, 163, 211, 232, 129, 246,\n\t\t12, 249, 225, 201, 9, 62, 213, 137, 130, 68, 17, 253, 45,\n\t\t254, 176, 60, 35, 208, 30, 54, 39, 230, 101, 114, 196, 229,\n\t\t247, 239, 91, 35, 146, 95, 198, 36, 112, 136, 68, 14, 224,\n\t\t145, 76, 156, 188, 56, 223, 68, 192, 103, 96, 230, 229, 121,\n\t\t107, 101, 253, 74, 20, 21, 72, 155, 57, 149, 230, 132, 72,\n\t\t28, 180, 41, 160, 91, 144, 188, 62, 151, 150, 187, 40, 198,\n\t\t171, 235, 244, 247, 40, 100, 139, 166, 59, 74, 222, 109, 165,\n\t\t89, 187, 229, 81, 221, 154, 155, 100, 17, 4, 67, 36, 209,\n\t\t51, 131, 154, 82, 106, 62, 20, 26, 203, 208, 106, 182, 160,\n\t\t16, 189, 182, 201, 50, 97, 201, 106, 183, 103, 235, 147, 5,\n\t\t221, 1, 155, 32, 92, 68, 110, 34, 183, 210, 29, 78, 71, 9,\n\t\t82, 19, 227, 226, 227, 103, 36, 209, 0, 203, 26, 114, 117,\n\t\t76, 44, 134, 209, 180, 120, 52, 107, 116, 113, 19, 3, 131,\n\t\t101, 242, 139, 235, 99, 64, 161, 128, 105, 140, 206, 7, 239,\n\t\t163, 211, 237, 121, 243, 118, 51, 211, 187, 225, 45, 151,\n\t\t221, 238, 203, 188, 0, 88, 17, 48, 103, 219, 153, 98, 188,\n\t\t152, 181, 2, 133, 66, 51, 208, 202, 243, 51, 182, 22, 11,\n\t\t97, 177, 211, 143, 194, 26, 230, 92, 150, 33, 199, 156, 103,\n\t\t7, 250, 184, 159, 108, 139, 216, 183, 157, 205, 125, 219,\n\t\t224, 205, 220, 252, 246, 205, 30, 157, 103, 252, 47, 30, 49,\n\t\t124, 160, 219, 248, 60, 94, 4, 100, 176, 217, 188, 224, 8,\n\t\t210, 232, 130, 63, 178, 110, 138, 111, 6, 215, 220, 184, 193,\n\t\t48, 61, 39, 95, 219, 250, 46, 106, 37, 119, 165, 188, 182,\n\t\t94, 35, 63, 119, 250, 84, 114, 221, 6, 142, 17, 207, 128,\n\t\t130, 169, 35, 132, 19, 34, 44, 30, 75, 173, 24, 95, 4, 109,\n\t\t65, 166, 65, 24, 198, 155, 12, 156, 156, 114, 51, 3, 111,\n\t\t132, 61, 59, 124, 25, 120, 147, 197, 131, 33, 108, 182, 17,\n\t\t185, 128, 52, 204, 141, 104, 248, 127, 237, 211, 140, 153,\n\t\t59, 12, 129, 103, 30, 35, 192, 240, 17, 233, 182, 149, 97,\n\t\t216, 134, 202, 104, 220, 50, 239, 175, 119, 77, 233, 243,\n\t\t213, 123, 25, 116, 137, 216, 46, 117, 113, 65, 244, 147, 51,\n\t\t134, 192, 29, 51, 99, 144, 228, 110, 190, 54, 204, 57, 178,\n\t\t211, 221, 54, 165, 53, 92, 38, 213, 225, 50, 162, 216, 7,\n\t\t108, 177, 117, 155, 127, 17, 121, 95, 111, 47, 138, 109, 222,\n\t\t190, 253, 224, 244, 167, 181, 95, 247, 22, 253, 178, 185,\n\t\t78, 150, 119, 128, 157, 30, 197, 145, 234, 100, 225, 173,\n\t\t190, 56, 188, 210, 157, 219, 40, 222, 86, 247, 253, 247, 197,\n\t\t167, 157, 62, 146, 211, 233, 183, 110, 89, 183, 129, 111,\n\t\t249, 93, 100, 105, 241, 127, 26, 41, 185, 235, 247, 194, 36,\n\t\t74, 210, 15, 39, 145, 62, 107, 31, 79, 209, 38, 82, 89, 87,\n\t\t74, 120, 208, 66, 81, 237, 55, 199, 125, 240, 211, 248, 146,\n\t\t18, 115, 219, 146, 241, 79, 35, 68, 248, 73, 89, 149, 165,\n\t\t67, 43, 208, 28, 34, 1, 82, 129, 185, 251, 74, 43, 170, 28,\n\t\t252, 56, 106, 25, 213, 181, 68, 38, 247, 176, 22, 203, 88,\n\t\t209, 95, 163, 112, 185, 69, 108, 29, 77, 140, 179, 9, 204,\n\t\t64, 1, 9, 110, 66, 39, 210, 121, 93, 234, 229, 109, 61, 214,\n\t\t114, 115, 68, 199, 199, 27, 26, 175, 155, 253, 31, 147, 138,\n\t\t159, 125, 162, 47, 154, 198, 111, 247, 213, 3, 114, 202, 177,\n\t\t90, 204, 130, 220, 179, 209, 26, 236, 139, 225, 21, 14, 29,\n\t\t64, 19, 176, 109, 61, 153, 67, 125, 217, 118, 73, 164, 201,\n\t\t143, 209, 6, 109, 159, 57, 115, 123, 37, 70, 139, 70, 148,\n\t\t72, 86, 162, 59, 202, 101, 69, 82, 56, 141, 135, 143, 168,\n\t\t255, 218, 193, 73, 65, 150, 13, 53, 80, 115, 118, 170, 196,\n\t\t77, 38, 236, 53, 166, 216, 37, 246, 28, 255, 11, 84, 77, 53,\n\t\t75, 32, 137, 217, 102, 19, 79, 138, 4, 194, 59, 179, 251,\n\t\t3, 43, 252, 182, 73, 133, 53, 146, 85, 120, 188, 63, 126,\n\t\t171, 111, 80, 56, 57, 139, 88, 65, 215, 122, 247, 184, 47,\n\t\t7, 114, 189, 251, 224, 152, 50, 8, 241, 86, 1, 137, 238, 246,\n\t\t40, 148, 239, 182, 143, 52, 170, 152, 24, 231, 240, 113, 197,\n\t\t140, 247, 245, 160, 47, 27, 20, 201, 248, 97, 237, 218, 174,\n\t\t28, 186, 110, 198, 204, 108, 125, 151, 118, 9, 38, 156, 222,\n\t\t211, 82, 215, 211, 58, 240, 164, 251, 97, 164, 250, 63, 82,\n\t\t244, 92, 248, 69, 177, 225, 242, 183, 81, 168, 98, 241, 46,\n\t\t197, 157, 146, 138, 12, 80, 36, 243, 175, 47, 227, 249, 151,\n\t\t60, 227, 80, 170, 254, 235, 202, 8, 10, 145, 30, 38, 45, 248,\n\t\t194, 138, 160, 153, 121, 179, 151, 223, 84, 143, 194, 163,\n\t\t234, 155, 203, 103, 243, 52, 37, 178, 190, 44, 32, 29, 150,\n\t\t134, 76, 52, 166, 60, 219, 78, 225, 60, 43, 241, 231, 201,\n\t\t216, 164, 24, 155, 188, 75, 124, 157, 208, 212, 244, 145,\n\t\t185, 112, 206, 38, 37, 83, 204, 131, 123, 79, 206, 185, 9,\n\t\t57, 214, 130, 123, 191, 155, 125, 19, 34, 88, 187, 92, 168,\n\t\t65, 215, 169, 42, 120, 40, 107, 208, 111, 87, 252, 46, 191,\n\t\t65, 150, 106, 10, 15, 191, 249, 40, 87, 151, 149, 0, 221,\n\t\t156, 115, 178, 23, 118, 174, 159, 31, 137, 15, 51, 149, 155,\n\t\t230, 20, 250, 151, 52, 53, 17, 174, 47, 247, 239, 121, 183,\n\t\t10, 138, 196, 201, 158, 178, 65, 155, 38, 207, 134, 144, 118,\n\t\t186, 108, 85, 119, 22, 55, 20, 232, 77, 13, 85, 13, 50, 83,\n\t\t247, 196, 93, 218, 200, 128, 204, 144, 240, 42, 151, 13, 76,\n\t\t200, 110, 232, 35, 246, 239, 224, 55, 158, 142, 79, 119, 39,\n\t\t13, 250, 160, 116, 245, 235, 128, 17, 1, 255, 150, 209, 220,\n\t\t233, 105, 3, 3, 190, 27, 55, 173, 177, 243, 167, 188, 214,\n\t\t112, 63, 84, 224, 149, 26, 253, 37, 226, 18, 74, 97, 193,\n\t\t35, 168, 147, 84, 128, 114, 30, 172, 207, 80, 187, 62, 188,\n\t\t101, 189, 120, 139, 185, 103, 227, 142, 76, 37, 63, 206, 145,\n\t\t32, 211, 166, 73, 16, 193, 181, 126, 196, 10, 155, 116, 250,\n\t\t3, 75, 15, 203, 139, 225, 156, 198, 185, 211, 54, 31, 67,\n\t\t167, 136, 127, 200, 79, 14, 7, 16, 9, 61, 63, 181, 2, 94,\n\t\t23, 238, 15, 147, 99, 225, 143, 100, 107, 60, 56, 167, 66,\n\t\t47, 147, 215, 151, 166, 65, 192, 142, 91, 180, 230, 112, 97,\n\t\t117, 198, 252, 219, 130, 204, 108, 112, 122, 35, 117, 102,\n\t\t123, 30, 207, 74, 254, 8, 99, 229, 251, 195, 10, 95, 7, 220,\n\t\t84, 149, 53, 154, 184, 50, 5, 183, 51, 230, 55, 170, 255,\n\t\t48, 91, 187, 120, 10, 10, 148, 239, 249, 226, 101, 138, 249,\n\t\t115, 173, 114, 236, 88, 136, 198, 160, 224, 88, 12, 22, 133,\n\t\t42, 46, 246, 2, 176, 152, 88, 24, 133, 65, 47, 220, 129, 194,\n\t\t198, 171, 195, 53, 106, 171, 166, 30, 59, 199, 63, 9, 135,\n\t\t39, 0, 45, 54, 192, 145, 229, 8, 64, 97, 0, 131, 214, 165,\n\t\t225, 163, 155, 26, 98, 239, 225, 252, 53, 57, 141, 64, 127,\n\t\t68, 248, 54, 117, 146, 52, 160, 61, 73, 88, 191, 246, 38,\n\t\t143, 206, 108, 131, 115, 20, 26, 160, 171, 220, 118, 92, 145,\n\t\t157, 67, 240, 204, 111, 8, 164, 5, 151, 77, 158, 14, 202,\n\t\t129, 16, 10, 183, 69, 55, 163, 86, 183, 97, 98, 191, 200,\n\t\t79, 157, 37, 129, 36, 114, 251, 137, 82, 149, 164, 106, 209,\n\t\t45, 34, 17, 138, 14, 129, 251, 205, 115, 57, 147, 11, 144,\n\t\t85, 98, 143, 187, 231, 96, 56, 249, 86, 30, 50, 212, 215,\n\t\t247, 88, 76, 136, 222, 140, 54, 205, 29, 161, 227, 205, 53,\n\t\t68, 244, 161, 209, 107, 130, 7, 89, 13, 121, 14, 43, 47, 164,\n\t\t2, 97, 23, 186, 70, 69, 168, 48, 250, 89, 187, 145, 108, 103,\n\t\t74, 155, 115, 63, 192, 34, 97, 254, 182, 16, 205, 220, 76,\n\t\t172, 206, 184, 41, 185, 106, 129, 39, 25, 12, 48, 35, 184,\n\t\t241, 228, 109, 131, 97, 213, 93, 19, 115, 84, 135, 141, 28,\n\t\t12, 17, 82, 65, 142, 40, 127, 246, 236, 111, 89, 64, 62, 218,\n\t\t186, 245, 31, 107, 176, 162, 146, 146, 142, 177, 97, 209,\n\t\t98, 141, 47, 10, 16, 163, 177, 149, 88, 74, 122, 165, 34,\n\t\t216, 154, 78, 242, 209, 74, 41, 82, 229, 0, 75, 168, 178,\n\t\t96, 107, 14, 103, 106, 204, 228, 45, 65, 91, 210, 1, 79, 229,\n\t\t228, 108, 85, 22, 44, 7, 36, 1, 87, 159, 207, 202, 252, 186,\n\t\t76, 78, 114, 196, 80, 43, 195, 142, 196, 200, 229, 1, 131,\n\t\t50, 249, 242, 121, 123, 177, 29, 49, 50, 57, 72, 248, 173,\n\t\t164, 40, 139, 96, 215, 47, 36, 123, 131, 157, 244, 139, 11,\n\t\t46, 82, 127, 221, 120, 126, 210, 89, 121, 140, 62, 203, 106,\n\t\t245, 58, 119, 179, 252, 22, 127, 178, 117, 22, 253, 152, 179,\n\t\t82, 149, 252, 34, 44, 140, 225, 135, 9, 104, 69, 225, 81,\n\t\t173, 1, 24, 63, 6, 43, 128, 94, 52, 113, 211, 231, 251, 114,\n\t\t177, 151, 94, 240, 162, 78, 86, 144, 37, 211, 121, 84, 175,\n\t\t238, 41, 158, 103, 169, 15, 255, 86, 185, 17, 39, 200, 21,\n\t\t214, 9, 63, 26, 99, 244, 243, 15, 216, 58, 191, 99, 225, 240,\n\t\t126, 223, 124, 227, 71, 78, 89, 140, 143, 61, 89, 72, 38,\n\t\t23, 158, 140, 165, 20, 233, 176, 128, 219, 208, 233, 73, 120,\n\t\t152, 88, 176, 218, 6, 49, 9, 235, 113, 39, 117, 254, 199,\n\t\t143, 81, 12, 97, 28, 196, 219, 192, 220, 104, 141, 231, 141,\n\t\t21, 74, 3, 45, 85, 211, 91, 32, 27, 141, 169, 36, 95, 211,\n\t\t186, 209, 192, 244, 38, 88, 16, 43, 210, 171, 154, 93, 5,\n\t\t84, 123, 55, 17, 9, 141, 229, 54, 182, 213, 39, 23, 86, 222,\n\t\t72, 32, 54, 21, 200, 145, 210, 133, 236, 133, 205, 17, 200,\n\t\t160, 57, 188, 252, 176, 25, 210, 242, 112, 243, 32, 210, 28,\n\t\t161, 19, 80, 138, 168, 30, 33, 163, 200, 184, 136, 18, 251,\n\t\t111, 78, 73, 214, 96, 25, 173, 63, 50, 185, 196, 191, 255,\n\t\t154, 43, 181, 18, 106, 30, 161, 134, 190, 93, 74, 183, 204,\n\t\t97, 204, 62, 98, 136, 64, 95, 181, 49, 250, 45, 42, 81, 108,\n\t\t117, 209, 59, 104, 25, 135, 237, 107, 22, 216, 117, 25, 168,\n\t\t31, 117, 153, 45, 139, 118, 218, 15, 103, 108, 78, 31, 58,\n\t\t43, 72, 69, 247, 217, 161, 244, 162, 218, 222, 144, 170, 172,\n\t\t43, 22, 180, 0, 235, 224, 1, 254, 70, 240, 107, 2, 18, 246,\n\t\t173, 151, 250, 185, 64, 252, 158, 26, 247, 169, 80, 223, 139,\n\t\t5, 167, 93, 1, 101, 122, 47, 172, 89, 22, 48, 57, 160, 161,\n\t\t52, 8, 54, 72, 206, 50, 157, 151, 78, 99, 10, 220, 8, 195,\n\t\t127, 189, 78, 60, 204, 205, 190, 71, 167, 93, 208, 246, 120,\n\t\t157, 170, 76, 93, 126, 97, 193, 133, 141, 173, 173, 27, 69,\n\t\t211, 242, 131, 121, 188, 78, 229, 246, 54, 246, 190, 4, 246,\n\t\t66, 84, 37, 105, 51, 143, 142, 249, 209, 153, 179, 211, 105,\n\t\t17, 35, 91, 153, 33, 244, 46, 77, 211, 65, 70, 143, 208, 188,\n\t\t16, 255, 208, 3, 253, 150, 241, 37, 184, 117, 231, 146, 113,\n\t\t154, 97, 83, 245, 5, 89, 83, 151, 28, 186, 228, 174, 52, 155,\n\t\t65, 102, 228, 194, 21, 214, 252, 189, 252, 218, 79, 223, 239,\n\t\t155, 51, 49, 89, 65, 48, 182, 162, 30, 200, 147, 192, 241,\n\t\t37, 189, 51, 120, 213, 188, 25, 96, 240, 232, 39, 155, 58,\n\t\t228, 195, 183, 155, 177, 139, 228, 23, 7, 65, 148, 200, 132,\n\t\t199, 207, 49, 4, 187, 144, 158, 113, 211, 223, 88, 173, 84,\n\t\t34, 57, 88, 140, 1, 135, 89, 45, 139, 133, 183, 173, 245,\n\t\t164, 24, 235, 106, 13, 12, 166, 209, 83, 237, 43, 211, 5,\n\t\t234, 107, 138, 64, 84, 205, 69, 185, 200, 12, 194, 188, 183,\n\t\t127, 148, 26, 133, 193, 160, 162, 183, 75, 146, 51, 246, 23,\n\t\t211, 139, 226, 80, 152, 111, 56, 111, 146, 95, 47, 72, 231,\n\t\t47, 184, 44, 243, 204, 207, 150, 53, 49, 155, 178, 37, 21,\n\t\t217, 229, 5, 249, 158, 178, 236, 100, 102, 178, 8, 35, 141,\n\t\t189, 189, 10, 80, 223, 47, 124, 0, 250, 100, 123, 21, 159,\n\t\t244, 5, 14, 61, 150, 174, 221, 70, 208, 28, 56, 127, 118,\n\t\t58, 24, 215, 61, 245, 228, 85, 14, 54, 134, 149, 143, 54,\n\t\t97, 182, 98, 34, 224, 140, 80, 228, 87, 31, 14, 230, 18, 71,\n\t\t141, 173, 136, 168, 47, 48, 202, 97, 44, 99, 109, 169, 218,\n\t\t173, 76, 236, 158, 86, 178, 203, 59, 66, 142, 57, 158, 112,\n\t\t132, 179, 197, 52, 161, 211, 103, 254, 109, 104, 103, 113,\n\t\t75, 125, 214, 150, 50, 176, 48, 42, 8, 195, 241, 57, 157,\n\t\t7, 99, 125, 88, 104, 117, 211, 195, 41, 27, 88, 49, 216, 171,\n\t\t28, 254, 217, 138, 242, 65, 252, 20, 176, 185, 95, 4, 41,\n\t\t226, 251, 102, 82, 44, 109, 71, 197, 135, 15, 7, 86, 70, 54,\n\t\t225, 206, 249, 191, 95, 55, 169, 233, 47, 210, 227, 55, 53,\n\t\t184, 166, 200, 51, 141, 143, 73, 127, 53, 29, 53, 190, 247,\n\t\t47, 49, 130, 240, 54, 147, 216, 207, 25, 186, 150, 28, 99,\n\t\t63, 30, 5, 17, 99, 166, 213, 190, 248, 209, 11, 250, 215,\n\t\t68, 221, 139, 86, 98, 93, 95, 157, 124, 217, 237, 99, 114,\n\t\t209, 217, 125, 85, 0, 51, 58, 180, 120, 73, 83, 19, 117, 165,\n\t\t208, 145, 23, 28, 244, 242, 17, 185, 177, 185, 72, 59, 47,\n\t\t105, 60, 152, 25, 150, 172, 146, 127, 128, 122, 32, 218, 117,\n\t\t61, 61, 23, 30, 230, 23, 162, 175, 68, 150, 68, 79, 59, 186,\n\t\t75, 220, 209, 159, 48, 20, 239, 124, 175, 224, 141, 105, 101,\n\t\t5, 36, 200, 255, 143, 0, 34, 36, 162, 185, 15, 35, 82, 202,\n\t\t215, 29, 212, 111, 130, 175, 245, 137, 213, 224, 230, 60,\n\t\t9, 42, 229, 113, 50, 212, 61, 6, 134, 180, 93, 20, 161, 80,\n\t\t121, 45, 175, 22, 199, 83, 60, 36, 145, 140, 202, 122, 94,\n\t\t30, 195, 3, 254, 103, 4, 166, 108, 43, 120, 237, 200, 51,\n\t\t188, 30, 91, 242, 128, 229, 165, 243, 4, 147, 255, 238, 204,\n\t\t200, 160, 122, 81, 75, 113, 21, 122, 108, 104, 144, 244, 70,\n\t\t14, 220, 90, 58, 73, 234, 103, 143, 39, 7, 145, 227, 195,\n\t\t45, 157, 84, 250, 2, 249, 7, 101, 16, 18, 197, 1, 84, 178,\n\t\t56, 151, 138, 218, 43, 76, 223, 181, 216, 225, 222, 153, 29,\n\t\t153, 19, 170, 187, 177, 46, 251, 172, 255, 199, 91, 62, 90,\n\t\t50, 50, 222, 84, 111, 72, 131, 66, 241, 61, 132, 192, 173,\n\t\t186, 208, 156, 143, 79, 162, 157, 110, 199, 226, 93, 233,\n\t\t190, 133, 254, 103, 179, 215, 165, 252, 234, 169, 79, 239,\n\t\t171, 149, 148, 149, 254, 177, 130, 91, 245, 239, 190, 4, 161,\n\t\t252, 252, 57, 5, 9, 251, 254, 235, 50, 197, 89, 120, 186,\n\t\t8, 194, 53, 208, 255, 123, 222, 232, 11, 96, 42, 8, 10, 182,\n\t\t48, 151, 192, 240, 253, 108, 24, 77, 32, 83, 140, 19, 82,\n\t\t150, 172, 22, 135, 56, 144, 19, 19, 173, 165, 105, 163, 99,\n\t\t56, 159, 125, 68, 127, 253, 5, 90, 14, 180, 99, 242, 19, 128,\n\t\t28, 106, 232, 242, 242, 36, 58, 223, 20, 48, 62, 15, 43, 16,\n\t\t16, 189, 93, 27, 149, 213, 0, 137, 153, 247, 239, 51, 197,\n\t\t228, 29, 199, 118, 39, 237, 42, 64, 97, 176, 146, 59, 12,\n\t\t52, 214, 183, 64, 48, 235, 93, 75, 177, 70, 170, 111, 45,\n\t\t74, 239, 58, 65, 238, 255, 56, 186, 248, 234, 188, 166, 97,\n\t\t144, 112, 63, 124, 198, 33, 2, 140, 143, 207, 20, 116, 140,\n\t\t154, 80, 141, 117, 38, 56, 196, 73, 231, 31, 93, 63, 56, 48,\n\t\t176, 98, 231, 76, 43, 226, 131, 63, 184, 254, 232, 124, 123,\n\t\t12, 25, 50, 78, 157, 129, 31, 235, 137, 216, 39, 236, 223,\n\t\t241, 225, 194, 194, 191, 34, 100, 137, 6, 46, 197, 246, 0,\n\t\t251, 158, 172, 194, 144, 215, 139, 94, 95, 238, 89, 120, 121,\n\t\t160, 255, 56, 129, 0, 252, 11, 94, 253, 207, 82, 106, 149,\n\t\t17, 255, 191, 210, 3, 53, 216, 215, 238, 22, 113, 11, 20,\n\t\t11, 171, 94, 86, 165, 88, 44, 4, 129, 60, 4, 116, 116, 137,\n\t\t66, 112, 12, 181, 250, 19, 209, 171, 61, 30, 29, 5, 186, 81,\n\t\t134, 106, 120, 102, 189, 236, 71, 100, 252, 241, 194, 194,\n\t\t102, 26, 57, 147, 190, 240, 35, 136, 8, 59, 139, 33, 110,\n\t\t220, 163, 171, 225, 19, 222, 73, 154, 239, 5, 21, 239, 212,\n\t\t188, 199, 175, 116, 57, 18, 145, 93, 99, 86, 106, 40, 12,\n\t\t207, 109, 80, 53, 222, 57, 253, 175, 218, 39, 47, 135, 171,\n\t\t99, 118, 199, 145, 168, 197, 230, 139, 215, 198, 191, 239,\n\t\t138, 71, 198, 95, 46, 140, 81, 34, 105, 83, 242, 43, 130,\n\t\t40, 100, 172, 188, 126, 216, 0, 95, 230, 236, 180, 142, 203,\n\t\t205, 1, 24, 143, 210, 121, 43, 9, 165, 213, 156, 95, 131,\n\t\t106, 204, 168, 76, 58, 19, 181, 59, 143, 101, 0, 204, 107,\n\t\t123, 65, 78, 17, 119, 210, 156, 60, 115, 27, 21, 139, 17,\n\t\t84, 107, 190, 178, 249, 224, 131, 131, 3, 115, 49, 38, 188,\n\t\t31, 136, 71, 140, 109, 175, 25, 147, 178, 48, 122, 119, 88,\n\t\t113, 171, 72, 224, 87, 119, 178, 255, 44, 255, 228, 69, 216,\n\t\t91, 117, 237, 100, 99, 106, 85, 196, 141, 100, 4, 26, 142,\n\t\t222, 61, 96, 115, 93, 217, 235, 110, 231, 35, 63, 55, 195,\n\t\t210, 204, 102, 158, 89, 41, 219, 91, 210, 164, 159, 109, 128,\n\t\t245, 122, 187, 127, 197, 91, 179, 118, 49, 215, 233, 81, 197,\n\t\t91, 6, 169, 41, 193, 252, 114, 46, 68, 137, 247, 208, 252,\n\t\t25, 136, 198, 160, 41, 44, 50, 28, 140, 173, 97, 109, 67,\n\t\t141, 6, 247, 165, 38, 135, 105, 193, 234, 48, 145, 2, 123,\n\t\t158, 91, 95, 83, 25, 4, 210, 239, 141, 2, 59, 246, 216, 187,\n\t\t116, 168, 217, 174, 234, 114, 39, 8, 130, 95, 202, 26, 117,\n\t\t174, 99, 168, 8, 212, 167, 228, 227, 3, 201, 3, 199, 159,\n\t\t93, 220, 179, 199, 109, 199, 55, 228, 207, 176, 241, 39, 199,\n\t\t188, 143, 85, 20, 42, 55, 238, 118, 3, 185, 170, 226, 223,\n\t\t243, 1, 251, 183, 176, 203, 63, 216, 136, 196, 97, 98, 46,\n\t\t209, 124, 180, 217, 199, 30, 99, 103, 205, 56, 118, 94, 106,\n\t\t96, 5, 157, 235, 248, 166, 54, 200, 122, 88, 14, 55, 122,\n\t\t122, 220, 97, 79, 32, 136, 198, 119, 82, 107, 34, 82, 188,\n\t\t243, 4, 201, 175, 46, 139, 84, 249, 107, 134, 2, 134, 22,\n\t\t231, 35, 6, 107, 43, 211, 192, 181, 212, 7, 167, 10, 179,\n\t\t62, 148, 64, 75, 151, 66, 179, 38, 185, 108, 126, 154, 64,\n\t\t173, 105, 50, 17, 138, 118, 177, 16, 232, 175, 232, 104, 136,\n\t\t152, 44, 26, 217, 44, 217, 44, 72, 175, 220, 108, 30, 55,\n\t\t3, 124, 132, 224, 38, 84, 201, 98, 43, 217, 168, 15, 238,\n\t\t46, 86, 38, 215, 162, 170, 64, 20, 249, 178, 20, 128, 70,\n\t\t153, 230, 20, 25, 63, 129, 208, 112, 184, 16, 151, 202, 137,\n\t\t88, 145, 81, 94, 223, 214, 1, 212, 177, 245, 226, 21, 71,\n\t\t68, 79, 243, 28, 162, 165, 59, 173, 99, 181, 1, 81, 232, 27,\n\t\t132, 234, 239, 50, 170, 127, 141, 247, 199, 140, 41, 99, 51,\n\t\t194, 208, 255, 184, 200, 68, 177, 221, 249, 47, 24, 108, 148,\n\t\t64, 114, 185, 35, 205, 41, 48, 143, 62, 63, 51, 179, 57, 254,\n\t\t126, 101, 52, 88, 136, 239, 173, 50, 77, 44, 75, 88, 147,\n\t\t125, 147, 57, 18, 202, 38, 26, 24, 125, 181, 97, 62, 212,\n\t\t189, 41, 129, 119, 211, 132, 123, 169, 62, 201, 133, 75, 54,\n\t\t47, 233, 222, 8, 28, 250, 206, 8, 189, 242, 117, 120, 243,\n\t\t154, 166, 203, 226, 204, 141, 216, 53, 158, 78, 232, 136,\n\t\t246, 254, 33, 150, 66, 243, 107, 244, 238, 201, 44, 239, 202,\n\t\t74, 62, 46, 105, 255, 145, 16, 97, 94, 110, 68, 198, 171,\n\t\t53, 126, 121, 207, 78, 31, 155, 187, 110, 213, 199, 160, 93,\n\t\t211, 210, 143, 235, 217, 235, 99, 86, 231, 158, 185, 113,\n\t\t87, 110, 185, 199, 205, 115, 94, 117, 130, 79, 79, 114, 193,\n\t\t152, 255, 85, 5, 135, 181, 179, 19, 165, 247, 165, 103, 212,\n\t\t199, 11, 193, 169, 207, 204, 91, 19, 179, 87, 104, 45, 166,\n\t\t65, 224, 170, 85, 111, 11, 37, 81, 57, 105, 45, 180, 69, 73,\n\t\t10, 247, 112, 143, 111, 161, 121, 208, 102, 143, 174, 181,\n\t\t9, 91, 253, 130, 56, 14, 247, 143, 160, 181, 210, 139, 26,\n\t\t96, 169, 205, 14, 127, 2, 14, 235, 145, 57, 212, 26, 24, 114,\n\t\t109, 158, 188, 228, 24, 14, 46, 21, 183, 108, 239, 138, 11,\n\t\t231, 239, 46, 15, 79, 14, 79, 180, 38, 19, 179, 206, 151,\n\t\t106, 106, 106, 179, 23, 85, 86, 147, 93, 35, 163, 121, 78,\n\t\t148, 106, 176, 244, 89, 196, 228, 68, 107, 120, 120, 242,\n\t\t242, 187, 231, 47, 172, 80, 100, 109, 98, 100, 105, 121, 93,\n\t\t85, 74, 195, 138, 11, 119, 46, 44, 143, 72, 63, 227, 215,\n\t\t197, 169, 253, 245, 59, 191, 239, 126, 173, 229, 116, 249,\n\t\t157, 137, 72, 95, 62, 157, 100, 133, 210, 80, 213, 165, 229,\n\t\t101, 49, 54, 53, 12, 240, 146, 7, 114, 211, 148, 215, 153,\n\t\t89, 30, 153, 88, 28, 193, 127, 71, 247, 218, 191, 46, 114,\n\t\t0, 166, 158, 204, 61, 180, 212, 192, 189, 30, 117, 51, 219,\n\t\t42, 121, 30, 208, 198, 0, 89, 91, 98, 118, 80, 152, 144, 10,\n\t\t237, 53, 198, 212, 2, 126, 172, 228, 24, 18, 183, 235, 182,\n\t\t45, 83, 31, 129, 32, 201, 238, 16, 248, 69, 251, 241, 34,\n\t\t120, 43, 191, 121, 12, 159, 153, 48, 250, 76, 217, 12, 170,\n\t\t132, 170, 160, 186, 37, 203, 132, 9, 42, 19, 158, 120, 153,\n\t\t72, 200, 154, 166, 53, 51, 243, 94, 87, 50, 205, 218, 219,\n\t\t207, 8, 26, 38, 196, 160, 230, 217, 237, 59, 85, 190, 206,\n\t\t187, 120, 90, 22, 237, 236, 214, 60, 248, 163, 139, 61, 204,\n\t\t94, 76, 228, 61, 136, 137, 89, 96, 147, 133, 221, 136, 162,\n\t\t107, 243, 219, 102, 142, 114, 101, 157, 20, 145, 179, 175,\n\t\t188, 54, 93, 102, 153, 106, 5, 150, 7, 10, 53, 217, 79, 255,\n\t\t145, 9, 139, 13, 246, 164, 136, 69, 81, 151, 27, 8, 204, 21,\n\t\t227, 249, 175, 39, 38, 138, 222, 124, 251, 125, 233, 152,\n\t\t203, 16, 30, 52, 225, 235, 40, 123, 120, 92, 131, 82, 218,\n\t\t68, 13, 180, 212, 57, 7, 171, 77, 99, 252, 36, 240, 121, 237,\n\t\t163, 15, 180, 16, 254, 24, 31, 27, 126, 134, 62, 106, 21,\n\t\t24, 177, 243, 114, 252, 229, 189, 117, 31, 89, 125, 58, 184,\n\t\t226, 13, 190, 2, 87, 248, 73, 36, 117, 85, 145, 210, 118,\n\t\t69, 113, 28, 18, 236, 155, 110, 226, 174, 135, 196, 148, 184,\n\t\t74, 30, 233, 183, 122, 168, 87, 120, 133, 118, 66, 227, 181,\n\t\t147, 156, 69, 153, 40, 244, 242, 167, 243, 42, 227, 40, 98,\n\t\t92, 83, 44, 38, 5, 15, 23, 57, 138, 86, 196, 233, 67, 199,\n\t\t163, 53, 57, 231, 166, 189, 122, 190, 39, 57, 232, 118, 192,\n\t\t70, 72, 66, 138, 185, 227, 185, 147, 62, 77, 59, 46, 130,\n\t\t223, 149, 127, 151, 79, 112, 70, 250, 123, 90, 230, 240, 166,\n\t\t77, 146, 16, 9, 11, 103, 196, 200, 61, 156, 73, 11, 79, 207,\n\t\t232, 31, 168, 28, 24, 192, 108, 153, 57, 179, 176, 208, 121,\n\t\t208, 235, 226, 194, 195, 66, 41, 183, 30, 158, 26, 57, 181,\n\t\t5, 62, 193, 192, 53, 28, 142, 60, 92, 134, 103, 100, 198,\n\t\t161, 225, 34, 29, 207, 121, 90, 125, 55, 175, 55, 58, 100,\n\t\t193, 197, 109, 90, 111, 109, 34, 223, 236, 158, 20, 156, 63,\n\t\t111, 75, 186, 40, 32, 93, 56, 46, 49, 114, 127, 142, 52, 104,\n\t\t52, 137, 92, 20, 10, 184, 50, 163, 30, 157, 77, 247, 82, 66,\n\t\t192, 55, 123, 165, 111, 215, 190, 18, 170, 100, 17, 231, 191,\n\t\t48, 189, 14, 62, 20, 32, 49, 190, 219, 117, 24, 4, 15, 75,\n\t\t36, 23, 252, 255, 222, 26, 152, 99, 136, 167, 158, 66, 60,\n\t\t146, 54, 63, 243, 22, 76, 206, 244, 218, 119, 226, 206, 92,\n\t\t85, 50, 17, 27, 17, 47, 20, 131, 244, 116, 17, 90, 101, 7,\n\t\t4, 150, 72, 70, 132, 236, 210, 244, 201, 159, 56, 20, 78,\n\t\t46, 131, 193, 57, 33, 59, 193, 129, 153, 59, 216, 202, 231,\n\t\t160, 157, 155, 68, 101, 79, 41, 171, 116, 212, 187, 6, 176,\n\t\t47, 251, 80, 136, 84, 85, 235, 59, 147, 45, 165, 146, 214,\n\t\t160, 153, 117, 238, 95, 231, 242, 117, 102, 143, 33, 254,\n\t\t221, 14, 142, 2, 255, 142, 219, 227, 36, 28, 44, 148, 5, 79,\n\t\t158, 167, 244, 169, 52, 49, 209, 88, 176, 177, 164, 159, 199,\n\t\t79, 211, 75, 202, 225, 114, 169, 242, 211, 120, 253, 245,\n\t\t105, 124, 137, 62, 26, 142, 78, 92, 26, 223, 248, 43, 136,\n\t\t54, 32, 98, 156, 190, 30, 78, 193, 244, 12, 27, 75, 189, 6,\n\t\t248, 106, 79, 129, 89, 192, 252, 107, 131, 230, 159, 128,\n\t\t253, 183, 200, 245, 167, 151, 95, 216, 114, 97, 133, 239,\n\t\t28, 101, 129, 36, 42, 82, 35, 201, 178, 70, 77, 205, 238,\n\t\t166, 138, 88, 243, 255, 168, 31, 76, 43, 3, 113, 229, 146,\n\t\t97, 201, 242, 20, 91, 127, 143, 164, 147, 53, 20, 247, 218,\n\t\t104, 252, 211, 95, 237, 107, 72, 162, 49, 112, 152, 178, 213,\n\t\t76, 60, 122, 123, 54, 134, 195, 24, 143, 198, 104, 124, 226,\n\t\t226, 124, 52, 152, 104, 39, 253, 125, 83, 204, 159, 157, 214,\n\t\t78, 242, 87, 99, 159, 81, 238, 3, 204, 169, 64, 66, 125, 120,\n\t\t186, 227, 160, 6, 123, 62, 242, 87, 156, 247, 227, 240, 176,\n\t\t217, 232, 95, 16, 56, 143, 40, 211, 109, 205, 130, 206, 249,\n\t\t153, 245, 184, 137, 91, 230, 222, 41, 133, 119, 114, 8, 67,\n\t\t19, 94, 207, 44, 180, 241, 192, 124, 31, 164, 212, 224, 19,\n\t\t157, 236, 173, 51, 158, 95, 55, 46, 147, 114, 143, 54, 7,\n\t\t33, 53, 65, 111, 89, 162, 87, 42, 229, 194, 220, 161, 128,\n\t\t184, 45, 75, 59, 205, 77, 109, 163, 181, 81, 83, 98, 37, 235,\n\t\t255, 4, 246, 171, 15, 143, 149, 42, 76, 224, 205, 233, 5,\n\t\t15, 2, 61, 173, 162, 194, 143, 226, 210, 201, 209, 219, 55,\n\t\t213, 94, 209, 2, 51, 214, 189, 181, 190, 126, 171, 27, 102,\n\t\t104, 146, 86, 166, 151, 223, 226, 162, 141, 133, 162, 255,\n\t\t183, 52, 251, 193, 217, 77, 153, 4, 159, 146, 81, 156, 105,\n\t\t161, 210, 161, 252, 170, 85, 196, 205, 238, 250, 197, 179,\n\t\t198, 180, 166, 229, 53, 112, 198, 158, 134, 248, 114, 46,\n\t\t49, 246, 30, 16, 179, 149, 138, 182, 187, 43, 136, 125, 67,\n\t\t128, 66, 86, 138, 107, 46, 184, 166, 221, 131, 26, 241, 104,\n\t\t223, 74, 144, 250, 155, 137, 65, 158, 44, 160, 233, 39, 122,\n\t\t175, 119, 62, 68, 195, 177, 72, 207, 62, 134, 0, 43, 227,\n\t\t45, 80, 200, 9, 83, 163, 242, 215, 73, 9, 248, 42, 28, 215,\n\t\t154, 128, 213, 72, 177, 116, 135, 7, 73, 171, 244, 98, 32,\n\t\t179, 167, 63, 249, 166, 68, 110, 243, 158, 251, 125, 201,\n\t\t227, 1, 23, 228, 174, 228, 106, 225, 197, 225, 116, 7, 90,\n\t\t110, 240, 60, 69, 223, 60, 233, 101, 140, 88, 61, 17, 3, 24,\n\t\t173, 205, 198, 173, 72, 203, 118, 155, 200, 12, 19, 185, 243,\n\t\t166, 47, 202, 38, 85, 82, 214, 45, 174, 92, 158, 104, 73,\n\t\t211, 250, 111, 166, 22, 230, 145, 231, 55, 230, 253, 49, 47,\n\t\t29, 121, 214, 240, 126, 134, 109, 105, 37, 245, 153, 121,\n\t\t183, 244, 227, 94, 245, 21, 228, 65, 25, 84, 205, 203, 125,\n\t\t119, 223, 242, 200, 34, 70, 6, 25, 134, 143, 103, 95, 22,\n\t\t215, 6, 251, 112, 229, 219, 46, 160, 33, 244, 133, 109, 114,\n\t\t174, 143, 34, 13, 147, 19, 49, 103, 78, 68, 14, 38, 109, 27,\n\t\t203, 208, 114, 96, 126, 36, 187, 10, 175, 121, 97, 233, 83,\n\t\t151, 56, 152, 58, 87, 52, 142, 26, 167, 204, 144, 22, 209,\n\t\t6, 76, 195, 242, 172, 244, 25, 137, 33, 86, 89, 184, 68, 46,\n\t\t93, 100, 156, 96, 195, 224, 208, 64, 89, 38, 236, 221, 59,\n\t\t65, 166, 9, 100, 204, 22, 80, 174, 28, 104, 162, 161, 196,\n\t\t0, 170, 232, 128, 201, 221, 78, 244, 206, 47, 145, 206, 55,\n\t\t68, 124, 221, 105, 51, 164, 115, 174, 250, 181, 143, 236,\n\t\t203, 104, 86, 16, 58, 250, 69, 230, 99, 201, 188, 201, 167,\n\t\t171, 200, 65, 66, 217, 27, 91, 119, 7, 240, 103, 57, 139,\n\t\t74, 255, 140, 116, 6, 0, 90, 17, 238, 56, 44, 236, 159, 66,\n\t\t26, 46, 50, 238, 66, 240, 233, 238, 131, 120, 171, 2, 66,\n\t\t218, 236, 182, 212, 52, 135, 221, 53, 207, 209, 220, 230,\n\t\t112, 148, 76, 118, 239, 121, 129, 47, 52, 182, 224, 197, 216,\n\t\t228, 114, 220, 182, 168, 182, 154, 61, 191, 69, 145, 150,\n\t\t39, 17, 186, 9, 98, 124, 139, 17, 83, 191, 123, 101, 247,\n\t\t185, 124, 112, 105, 153, 120, 125, 11, 192, 97, 165, 112,\n\t\t221, 2, 241, 50, 167, 255, 61, 164, 7, 216, 150, 6, 240, 228,\n\t\t206, 176, 222, 81, 22, 5, 156, 219, 136, 92, 220, 69, 101,\n\t\t143, 140, 207, 18, 46, 189, 123, 186, 41, 242, 238, 82, 225,\n\t\t172, 241, 17, 54, 117, 215, 69, 100, 227, 185, 142, 85, 159,\n\t\t130, 13, 63, 47, 179, 254, 46, 234, 19, 253, 110, 93, 246,\n\t\t179, 33, 248, 227, 221, 229, 213, 101, 213, 203, 239, 130,\n\t\t150, 221, 211, 191, 5, 65, 82, 203, 150, 99, 56, 123, 49,\n\t\t74, 244, 138, 244, 35, 107, 4, 158, 247, 225, 225, 147, 8,\n\t\t233, 161, 68, 202, 194, 155, 249, 118, 7, 230, 72, 186, 171,\n\t\t231, 73, 243, 156, 135, 103, 67, 86, 88, 34, 0, 89, 30, 199,\n\t\t84, 110, 107, 158, 213, 173, 58, 182, 90, 159, 22, 108, 8,\n\t\t219, 74, 161, 220, 196, 169, 83, 11, 174, 240, 227, 94, 222,\n\t\t142, 159, 81, 200, 91, 195, 130, 13, 241, 140, 234, 231, 150,\n\t\t68, 233, 97, 229, 163, 151, 123, 44, 130, 136, 124, 143, 210,\n\t\t61, 47, 21, 86, 154, 245, 146, 165, 61, 54, 182, 221, 114,\n\t\t223, 72, 51, 106, 95, 236, 241, 40, 141, 200, 183, 8, 246,\n\t\t188, 184, 166, 60, 204, 201, 176, 204, 125, 190, 81, 168,\n\t\t114, 41, 15, 113, 203, 153, 10, 93, 114, 164, 143, 245, 139,\n\t\t132, 89, 206, 61, 164, 236, 64, 132, 27, 159, 95, 107, 175,\n\t\t246, 205, 180, 227, 225, 122, 77, 249, 101, 247, 176, 91,\n\t\t75, 157, 146, 167, 253, 138, 110, 103, 191, 158, 255, 185,\n\t\t144, 234, 199, 22, 224, 224, 72, 10, 53, 252, 241, 76, 220,\n\t\t183, 223, 226, 102, 18, 218, 234, 109, 230, 132, 179, 182,\n\t\t45, 181, 98, 141, 110, 188, 152, 208, 141, 183, 100, 227,\n\t\t102, 204, 192, 101, 235, 223, 182, 86, 66, 106, 182, 105,\n\t\t17, 182, 34, 26, 43, 38, 244, 252, 237, 78, 248, 134, 245,\n\t\t242, 161, 249, 61, 55, 92, 96, 255, 5, 78, 17, 171, 69, 35,\n\t\t18, 13, 11, 20, 241, 41, 191, 91, 214, 108, 44, 254, 177,\n\t\t17, 98, 246, 126, 154, 90, 120, 200, 250, 19, 17, 104, 177,\n\t\t58, 152, 196, 198, 190, 70, 34, 179, 29, 95, 61, 101, 231,\n\t\t136, 62, 36, 44, 75, 190, 49, 230, 240, 219, 204, 247, 183,\n\t\t19, 251, 117, 79, 206, 61, 217, 197, 127, 114, 248, 73, 191,\n\t\t64, 75, 254, 139, 113, 243, 157, 21, 87, 54, 30, 245, 237,\n\t\t158, 22, 126, 134, 128, 231, 21, 0, 55, 251, 91, 62, 165,\n\t\t211, 56, 101, 149, 17, 238, 129, 1, 13, 77, 3, 102, 196, 52,\n\t\t114, 98, 99, 227, 156, 120, 31, 37, 85, 251, 79, 145, 149,\n\t\t55, 152, 205, 92, 72, 127, 168, 161, 207, 121, 158, 143, 65,\n\t\t57, 96, 76, 126, 201, 121, 186, 6, 252, 143, 199, 226, 138,\n\t\t9, 105, 151, 132, 110, 116, 130, 98, 28, 86, 208, 75, 246,\n\t\t166, 152, 145, 0, 48, 131, 128, 232, 139, 124, 162, 208, 132,\n\t\t151, 60, 59, 96, 235, 121, 5, 145, 94, 157, 138, 16, 110,\n\t\t176, 60, 176, 246, 117, 163, 226, 209, 128, 23, 118, 18, 141,\n\t\t79, 228, 119, 156, 61, 175, 41, 241, 28, 238, 149, 194, 243,\n\t\t150, 68, 112, 153, 140, 132, 47, 125, 92, 86, 166, 165, 106,\n\t\t221, 252, 141, 82, 86, 70, 235, 63, 9, 63, 82, 233, 54, 210,\n\t\t91, 153, 134, 129, 97, 139, 127, 60, 182, 190, 28, 133, 82,\n\t\t196, 211, 86, 200, 13, 164, 160, 212, 195, 89, 78, 73, 224,\n\t\t89, 8, 203, 2, 156, 174, 121, 102, 122, 73, 213, 121, 46,\n\t\t145, 19, 90, 70, 224, 89, 18, 40, 229, 223, 230, 239, 238,\n\t\t219, 111, 163, 39, 171, 55, 30, 173, 71, 100, 145, 213, 235,\n\t\t201, 217, 216, 42, 128, 126, 27, 134, 92, 104, 159, 224, 170,\n\t\t88, 228, 205, 33, 196, 201, 199, 78, 150, 83, 133, 60, 11,\n\t\t234, 127, 47, 237, 190, 212, 177, 149, 253, 213, 119, 189,\n\t\t189, 189, 193, 79, 69, 202, 180, 152, 20, 220, 79, 30, 169,\n\t\t224, 61, 17, 133, 197, 59, 105, 242, 164, 69, 92, 88, 146,\n\t\t191, 166, 102, 98, 227, 11, 41, 234, 250, 252, 239, 238, 249,\n\t\t235, 167, 79, 204, 214, 246, 229, 179, 2, 196, 254, 94, 64,\n\t\t35, 224, 110, 158, 221, 232, 18, 187, 16, 30, 25, 141, 168,\n\t\t72, 57, 90, 46, 87, 101, 5, 31, 255, 109, 16, 92, 173, 32,\n\t\t63, 102, 180, 239, 73, 68, 91, 189, 110, 93, 88, 94, 242,\n\t\t220, 253, 252, 29, 39, 221, 244, 201, 116, 144, 19, 21, 197,\n\t\t57, 40, 21, 151, 206, 249, 238, 115, 206, 169, 168, 229, 74,\n\t\t207, 156, 91, 94, 236, 249, 203, 89, 70, 235, 168, 43, 133,\n\t\t239, 126, 196, 116, 141, 90, 187, 16, 144, 154, 203, 232,\n\t\t40, 20, 157, 13, 100, 39, 80, 60, 103, 139, 99, 196, 105,\n\t\t32, 180, 216, 179, 61, 201, 137, 255, 70, 25, 248, 148, 239,\n\t\t136, 228, 86, 201, 15, 232, 86, 50, 241, 59, 10, 223, 16,\n\t\t21, 1, 26, 77, 252, 203, 182, 168, 27, 3, 74, 126, 124, 94,\n\t\t224, 111, 31, 66, 201, 94, 237, 100, 165, 217, 34, 236, 124,\n\t\t37, 67, 13, 249, 219, 11, 158, 255, 88, 226, 223, 176, 69,\n\t\t93, 230, 111, 185, 255, 169, 192, 191, 50, 149, 149, 151,\n\t\t159, 183, 166, 208, 190, 173, 62, 60, 217, 182, 217, 11, 247,\n\t\t194, 242, 89, 121, 169, 254, 149, 5, 159, 238, 87, 140, 51,\n\t\t245, 37, 254, 170, 243, 161, 181, 161, 170, 150, 30, 240,\n\t\t132, 46, 245, 138, 169, 16, 241, 79, 210, 25, 253, 157, 18,\n\t\t243, 186, 189, 164, 244, 245, 170, 102, 239, 145, 56, 114,\n\t\t140, 101, 196, 214, 43, 77, 79, 20, 6, 253, 189, 15, 150,\n\t\t141, 17, 45, 107, 220, 10, 107, 35, 250, 238, 97, 192, 115,\n\t\t76, 120, 146, 93, 161, 33, 120, 16, 220, 4, 46, 41, 102, 21,\n\t\t27, 135, 153, 144, 211, 130, 209, 120, 227, 239, 219, 200,\n\t\t56, 124, 27, 65, 138, 181, 225, 136, 184, 74, 172, 24, 231,\n\t\t219, 45, 33, 181, 101, 112, 70, 28, 113, 216, 221, 250, 86,\n\t\t65, 96, 127, 59, 161, 83, 43, 72, 186, 125, 5, 210, 195, 175,\n\t\t75, 221, 115, 226, 213, 121, 49, 203, 169, 144, 22, 110, 163,\n\t\t178, 182, 31, 103, 136, 41, 59, 247, 76, 18, 240, 185, 94,\n\t\t198, 191, 217, 108, 66, 27, 30, 104, 8, 26, 78, 233, 145,\n\t\t115, 41, 21, 64, 82, 78, 209, 249, 200, 124, 169, 191, 55,\n\t\t187, 133, 110, 141, 166, 91, 224, 174, 52, 129, 212, 166,\n\t\t135, 81, 55, 2, 188, 165, 110, 73, 13, 41, 39, 135, 84, 35,\n\t\t113, 103, 63, 41, 203, 204, 25, 115, 167, 1, 171, 65, 109,\n\t\t130, 54, 141, 198, 38, 79, 201, 75, 120, 45, 157, 21, 247,\n\t\t162, 215, 121, 227, 94, 46, 93, 43, 112, 15, 122, 234, 18,\n\t\t102, 41, 190, 216, 51, 207, 162, 234, 232, 8, 119, 214, 235,\n\t\t231, 99, 47, 178, 226, 153, 96, 163, 240, 15, 38, 212, 6,\n\t\t88, 150, 92, 181, 147, 210, 224, 63, 199, 90, 154, 183, 245,\n\t\t64, 176, 126, 145, 180, 198, 90, 225, 185, 40, 136, 20, 95,\n\t\t202, 230, 217, 112, 38, 219, 182, 3, 65, 201, 11, 253, 107,\n\t\t8, 139, 39, 54, 126, 253, 101, 25, 97, 78, 180, 17, 159, 222,\n\t\t186, 88, 88, 97, 29, 90, 139, 116, 193, 7, 182, 161, 174,\n\t\t119, 45, 136, 87, 212, 188, 244, 35, 254, 213, 52, 113, 145,\n\t\t181, 198, 223, 224, 245, 185, 213, 6, 254, 149, 149, 63, 188,\n\t\t227, 166, 42, 224, 141, 143, 38, 241, 189, 222, 28, 197, 204,\n\t\t151, 12, 43, 253, 254, 172, 100, 160, 100, 38, 103, 40, 243,\n\t\t79, 170, 132, 106, 82, 209, 75, 253, 114, 147, 226, 223, 93,\n\t\t76, 235, 242, 184, 245, 143, 70, 55, 84, 62, 51, 166, 159,\n\t\t72, 173, 255, 43, 242, 110, 224, 104, 184, 164, 169, 161,\n\t\t3, 213, 44, 135, 207, 162, 208, 179, 226, 201, 15, 30, 246,\n\t\t157, 195, 166, 176, 243, 24, 19, 3, 225, 81, 186, 63, 128,\n\t\t107, 230, 209, 171, 231, 106, 211, 232, 63, 246, 186, 172,\n\t\t154, 7, 73, 221, 181, 30, 19, 75, 6, 157, 189, 46, 245, 3,\n\t\t77, 175, 138, 22, 177, 189, 159, 232, 34, 68, 34, 87, 36,\n\t\t101, 149, 126, 21, 37, 210, 229, 28, 183, 110, 143, 160, 89,\n\t\t89, 230, 203, 8, 86, 160, 245, 155, 190, 67, 93, 60, 194,\n\t\t159, 172, 138, 39, 245, 90, 76, 114, 94, 84, 248, 213, 159,\n\t\t85, 21, 141, 130, 10, 213, 69, 47, 103, 10, 6, 52, 122, 197,\n\t\t50, 37, 70, 252, 122, 2, 131, 230, 53, 209, 252, 186, 88,\n\t\t182, 76, 163, 234, 128, 127, 135, 52, 226, 13, 111, 22, 21,\n\t\t200, 16, 76, 125, 14, 98, 111, 107, 109, 111, 102, 88, 44,\n\t\t108, 5, 74, 26, 146, 111, 116, 74, 175, 231, 140, 68, 89,\n\t\t98, 48, 92, 77, 54, 230, 164, 70, 237, 10, 201, 158, 54, 103,\n\t\t90, 185, 175, 195, 232, 76, 8, 189, 17, 75, 30, 30, 11, 109,\n\t\t138, 244, 197, 98, 98, 162, 44, 35, 57, 215, 245, 139, 205,\n\t\t15, 1, 71, 168, 239, 245, 64, 181, 244, 73, 78, 28, 62, 9,\n\t\t223, 67, 24, 138, 250, 203, 239, 47, 230, 246, 35, 36, 71,\n\t\t148, 34, 202, 9, 145, 170, 91, 8, 61, 120, 124, 82, 92, 206,\n\t\t19, 105, 160, 250, 186, 239, 206, 47, 15, 29, 207, 247, 79,\n\t\t205, 61, 224, 21, 240, 29, 23, 74, 165, 94, 19, 9, 193, 79,\n\t\t40, 49, 35, 126, 159, 117, 85, 12, 229, 137, 48, 244, 168,\n\t\t185, 193, 25, 235, 108, 48, 163, 118, 71, 90, 0, 165, 179,\n\t\t59, 134, 38, 28, 164, 184, 109, 153, 161, 129, 241, 168, 251,\n\t\t69, 203, 227, 102, 45, 245, 113, 198, 130, 239, 135, 221,\n\t\t66, 183, 213, 58, 251, 234, 48, 24, 123, 120, 232, 66, 189,\n\t\t244, 137, 182, 122, 42, 3, 135, 166, 50, 133, 18, 161, 15,\n\t\t21, 109, 100, 76, 173, 214, 122, 103, 87, 20, 162, 235, 187,\n\t\t141, 70, 155, 174, 241, 30, 207, 158, 215, 252, 154, 227,\n\t\t180, 88, 173, 54, 37, 197, 210, 27, 33, 16, 246, 146, 130,\n\t\t147, 133, 141, 141, 102, 81, 121, 123, 43, 179, 212, 202,\n\t\t108, 253, 26, 253, 78, 219, 212, 116, 156, 211, 157, 252,\n\t\t201, 110, 194, 79, 40, 102, 96, 72, 71, 134, 212, 129, 112,\n\t\t196, 233, 20, 245, 90, 229, 86, 23, 19, 195, 2, 220, 118,\n\t\t126, 117, 175, 72, 236, 22, 83, 37, 170, 63, 69, 57, 213,\n\t\t165, 245, 202, 68, 64, 180, 96, 153, 118, 136, 17, 80, 119,\n\t\t195, 48, 187, 108, 27, 173, 213, 73, 189, 245, 193, 117, 88,\n\t\t82, 126, 192, 53, 22, 48, 166, 209, 212, 65, 19, 210, 208,\n\t\t80, 19, 143, 20, 216, 199, 138, 139, 221, 7, 98, 111, 11,\n\t\t255, 169, 236, 146, 249, 138, 0, 145, 152, 178, 81, 128, 185,\n\t\t252, 136, 93, 168, 33, 59, 130, 247, 82, 240, 146, 16, 112,\n\t\t254, 18, 126, 251, 97, 180, 140, 177, 109, 61, 82, 54, 161,\n\t\t245, 135, 133, 217, 243, 165, 139, 190, 175, 12, 213, 166,\n\t\t165, 217, 178, 170, 149, 142, 75, 146, 77, 242, 212, 86, 221,\n\t\t82, 133, 173, 210, 186, 86, 225, 203, 16, 75, 183, 167, 241,\n\t\t31, 154, 68, 151, 254, 173, 68, 199, 29, 114, 31, 113, 31,\n\t\t218, 200, 207, 46, 251, 183, 33, 246, 133, 120, 54, 200, 247,\n\t\t204, 181, 169, 152, 61, 70, 106, 137, 194, 62, 166, 54, 202,\n\t\t18, 28, 69, 3, 98, 118, 102, 208, 186, 185, 120, 82, 24, 114,\n\t\t80, 46, 110, 140, 199, 62, 189, 217, 94, 127, 248, 240, 141,\n\t\t248, 212, 169, 167, 229, 152, 20, 88, 254, 132, 133, 251,\n\t\t60, 38, 5, 21, 93, 229, 15, 250, 160, 95, 171, 207, 188, 204,\n\t\t198, 75, 7, 5, 57, 231, 56, 158, 135, 189, 177, 185, 133,\n\t\t105, 8, 228, 49, 50, 185, 117, 237, 177, 141, 27, 54, 30,\n\t\t139, 111, 166, 166, 73, 203, 97, 21, 136, 126, 157, 231, 250,\n\t\t243, 143, 115, 98, 78, 64, 155, 173, 55, 165, 19, 100, 114,\n\t\t164, 192, 246, 124, 34, 202, 245, 81, 218, 209, 44, 119, 232,\n\t\t92, 83, 47, 246, 184, 140, 123, 214, 75, 4, 12, 183, 23, 41,\n\t\t150, 201, 140, 37, 237, 128, 254, 22, 155, 222, 218, 86, 22,\n\t\t137, 213, 170, 93, 108, 159, 220, 253, 160, 64, 47, 130, 121,\n\t\t40, 103, 98, 146, 87, 244, 130, 105, 236, 202, 137, 183, 10,\n\t\t125, 62, 222, 94, 72, 43, 246, 110, 185, 144, 192, 162, 63,\n\t\t171, 89, 68, 126, 27, 91, 202, 247, 143, 157, 254, 108, 178,\n\t\t153, 155, 113, 248, 76, 42, 63, 74, 38, 94, 141, 147, 206,\n\t\t191, 88, 212, 54, 171, 181, 184, 235, 89, 171, 97, 122, 246,\n\t\t174, 248, 153, 27, 97, 114, 119, 200, 9, 54, 204, 127, 150,\n\t\t43, 132, 141, 123, 18, 83, 61, 192, 127, 23, 78, 122, 246,\n\t\t146, 104, 20, 22, 139, 166, 170, 80, 115, 86, 72, 140, 41,\n\t\t255, 112, 202, 153, 231, 177, 82, 181, 76, 53, 172, 162, 2,\n\t\t163, 153, 209, 17, 122, 2, 102, 178, 244, 160, 105, 216, 11,\n\t\t235, 167, 52, 97, 14, 98, 96, 24, 10, 176, 149, 237, 151,\n\t\t138, 124, 30, 0, 55, 172, 240, 82, 123, 51, 96, 217, 176,\n\t\t35, 221, 203, 107, 216, 116, 150, 35, 122, 48, 37, 37, 25,\n\t\t255, 193, 119, 12, 176, 157, 158, 245, 153, 24, 53, 157, 88,\n\t\t103, 212, 41, 45, 15, 38, 142, 163, 147, 220, 100, 170, 36,\n\t\t197, 75, 148, 90, 170, 214, 204, 123, 107, 218, 226, 89, 193,\n\t\t59, 61, 208, 85, 12, 152, 181, 113, 191, 92, 145, 221, 148,\n\t\t141, 131, 235, 64, 246, 78, 241, 137, 172, 195, 233, 84, 5,\n\t\t194, 138, 111, 211, 216, 158, 66, 89, 41, 182, 137, 157, 217,\n\t\t214, 241, 89, 154, 222, 56, 103, 34, 89, 7, 4, 107, 25, 184,\n\t\t175, 9, 235, 242, 103, 226, 133, 207, 150, 95, 104, 119, 178,\n\t\t85, 147, 244, 64, 174, 128, 55, 141, 179, 34, 195, 114, 102,\n\t\t114, 244, 233, 130, 13, 14, 156, 216, 77, 51, 215, 167, 22,\n\t\t201, 26, 223, 52, 72, 174, 220, 159, 119, 27, 7, 143, 168,\n\t\t171, 77, 38, 166, 128, 64, 104, 6, 95, 253, 123, 144, 140,\n\t\t145, 101, 95, 20, 128, 163, 102, 105, 134, 238, 78, 233, 238,\n\t\t46, 233, 142, 161, 187, 164, 187, 187, 65, 154, 161, 65, 90,\n\t\t26, 6, 165, 187, 187, 65, 122, 64, 106, 148, 238, 238, 144,\n\t\t253, 237, 190, 184, 111, 246, 254, 119, 239, 39, 56, 231,\n\t\t57, 207, 92, 175, 217, 50, 116, 25, 225, 106, 236, 228, 36,\n\t\t158, 240, 176, 99, 137, 167, 241, 187, 233, 27, 17, 182, 77,\n\t\t19, 212, 186, 244, 231, 165, 134, 101, 69, 102, 140, 227,\n\t\t191, 210, 58, 112, 7, 154, 33, 248, 93, 66, 133, 190, 190,\n\t\t91, 117, 73, 193, 118, 238, 101, 181, 91, 4, 226, 35, 8, 178,\n\t\t177, 176, 157, 11, 75, 161, 59, 235, 78, 221, 89, 172, 66,\n\t\t201, 136, 49, 42, 251, 68, 52, 35, 158, 233, 245, 153, 18,\n\t\t84, 137, 224, 85, 73, 74, 37, 172, 166, 132, 8, 25, 2, 25,\n\t\t219, 206, 143, 174, 126, 123, 31, 69, 97, 241, 240, 210, 157,\n\t\t156, 142, 100, 71, 203, 38, 63, 52, 46, 166, 239, 42, 23,\n\t\t148, 107, 174, 182, 75, 37, 38, 27, 103, 155, 39, 194, 31,\n\t\t5, 39, 230, 159, 69, 41, 248, 255, 92, 227, 115, 113, 230,\n\t\t58, 74, 55, 23, 152, 237, 11, 145, 167, 77, 118, 166, 173,\n\t\t205, 7, 194, 142, 92, 155, 88, 58, 6, 195, 156, 78, 219, 165,\n\t\t52, 4, 5, 133, 22, 73, 149, 118, 181, 62, 134, 221, 112, 178,\n\t\t45, 215, 25, 154, 234, 173, 91, 168, 245, 239, 90, 211, 163,\n\t\t222, 177, 51, 191, 151, 235, 199, 206, 90, 85, 32, 99, 18,\n\t\t166, 77, 37, 243, 154, 187, 170, 46, 193, 157, 26, 155, 176,\n\t\t169, 211, 94, 88, 240, 44, 18, 236, 74, 220, 134, 37, 216,\n\t\t67, 80, 225, 249, 28, 186, 252, 60, 71, 216, 56, 67, 115,\n\t\t136, 184, 226, 43, 218, 231, 87, 116, 128, 240, 255, 204,\n\t\t21, 139, 214, 244, 49, 32, 17, 117, 46, 93, 46, 131, 189,\n\t\t136, 107, 134, 117, 52, 22, 91, 11, 170, 176, 62, 190, 213,\n\t\t245, 69, 28, 191, 253, 103, 43, 61, 41, 47, 23, 113, 175,\n\t\t166, 172, 217, 35, 138, 253, 125, 53, 101, 22, 20, 129, 216,\n\t\t128, 59, 125, 95, 49, 41, 227, 124, 162, 31, 62, 200, 73,\n\t\t73, 162, 69, 208, 182, 101, 177, 105, 62, 78, 196, 43, 99,\n\t\t198, 220, 236, 61, 7, 240, 122, 20, 178, 29, 175, 30, 139,\n\t\t131, 242, 178, 221, 198, 190, 195, 18, 157, 40, 69, 228, 212,\n\t\t148, 187, 234, 157, 94, 68, 153, 145, 167, 237, 246, 55, 151,\n\t\t76, 67, 113, 82, 181, 148, 220, 57, 62, 226, 156, 219, 193,\n\t\t96, 35, 1, 48, 115, 41, 107, 37, 74, 26, 179, 173, 214, 163,\n\t\t198, 196, 84, 23, 126, 42, 156, 168, 127, 34, 126, 213, 0,\n\t\t91, 67, 91, 58, 58, 254, 29, 42, 169, 185, 88, 110, 126, 75,\n\t\t118, 126, 81, 143, 61, 190, 106, 241, 204, 159, 45, 30, 112,\n\t\t66, 55, 95, 248, 247, 188, 221, 16, 171, 200, 71, 10, 8, 167,\n\t\t190, 217, 227, 210, 82, 28, 50, 97, 104, 62, 236, 32, 144,\n\t\t136, 67, 242, 179, 21, 255, 69, 192, 86, 21, 6, 66, 35, 105,\n\t\t102, 32, 61, 211, 159, 230, 140, 144, 11, 222, 148, 156, 2,\n\t\t159, 169, 24, 62, 61, 36, 11, 90, 171, 246, 47, 183, 80, 125,\n\t\t121, 249, 180, 175, 116, 63, 212, 109, 135, 12, 77, 231, 68,\n\t\t114, 149, 190, 89, 87, 212, 115, 214, 28, 156, 110, 215, 152,\n\t\t104, 150, 210, 204, 215, 181, 26, 178, 137, 155, 241, 233,\n\t\t20, 129, 30, 180, 231, 196, 98, 92, 107, 24, 249, 139, 149,\n\t\t149, 92, 202, 28, 99, 167, 63, 255, 102, 91, 192, 180, 204,\n\t\t79, 19, 177, 107, 188, 82, 236, 255, 138, 162, 195, 98, 97,\n\t\t7, 237, 15, 184, 45, 69, 156, 144, 162, 178, 162, 163, 45,\n\t\t5, 96, 247, 77, 226, 209, 160, 91, 103, 155, 194, 138, 17,\n\t\t47, 208, 229, 32, 44, 191, 61, 151, 200, 34, 46, 88, 116,\n\t\t107, 213, 128, 85, 102, 46, 170, 94, 184, 75, 118, 165, 218,\n\t\t182, 191, 160, 124, 179, 90, 103, 211, 63, 134, 179, 210,\n\t\t169, 58, 50, 141, 188, 235, 207, 38, 41, 167, 44, 172, 121,\n\t\t84, 90, 210, 208, 108, 157, 230, 233, 162, 206, 222, 70, 198,\n\t\t123, 150, 9, 217, 57, 115, 75, 39, 82, 92, 41, 82, 50, 67,\n\t\t247, 146, 178, 212, 203, 211, 104, 153, 9, 18, 98, 79, 139,\n\t\t24, 84, 116, 14, 20, 183, 164, 39, 195, 146, 141, 106, 109,\n\t\t193, 62, 97, 102, 62, 103, 32, 192, 86, 126, 57, 21, 229,\n\t\t202, 80, 101, 93, 199, 200, 0, 114, 118, 146, 21, 41, 64,\n\t\t246, 163, 72, 152, 29, 18, 231, 15, 12, 117, 191, 240, 245,\n\t\t33, 167, 200, 175, 84, 97, 25, 69, 16, 42, 189, 253, 52, 164,\n\t\t150, 120, 8, 141, 124, 181, 215, 216, 200, 159, 240, 192,\n\t\t71, 77, 23, 242, 204, 232, 117, 247, 60, 218, 204, 8, 218,\n\t\t64, 193, 50, 230, 59, 250, 5, 242, 117, 92, 168, 22, 101,\n\t\t104, 153, 194, 139, 179, 217, 254, 220, 32, 204, 53, 68, 130,\n\t\t57, 27, 55, 48, 139, 124, 193, 219, 184, 150, 227, 105, 34,\n\t\t64, 120, 19, 131, 4, 141, 240, 16, 226, 32, 138, 197, 59,\n\t\t135, 205, 24, 33, 174, 13, 253, 98, 84, 207, 204, 206, 155,\n\t\t23, 166, 193, 240, 53, 191, 148, 49, 0, 79, 25, 227, 10, 198,\n\t\t123, 169, 245, 78, 9, 2, 138, 12, 120, 134, 192, 140, 98,\n\t\t223, 109, 119, 132, 199, 67, 196, 173, 113, 16, 32, 167, 17,\n\t\t223, 153, 83, 8, 37, 54, 124, 79, 178, 231, 134, 144, 157,\n\t\t126, 214, 104, 54, 64, 71, 198, 163, 17, 218, 212, 61, 52,\n\t\t96, 66, 114, 66, 209, 158, 226, 200, 159, 102, 90, 74, 7,\n\t\t194, 115, 218, 183, 193, 31, 201, 190, 13, 154, 146, 165,\n\t\t46, 114, 244, 99, 186, 157, 161, 11, 26, 49, 131, 173, 207,\n\t\t239, 95, 159, 181, 240, 168, 189, 169, 186, 16, 184, 36, 44,\n\t\t197, 172, 63, 148, 251, 81, 117, 70, 183, 22, 21, 255, 109,\n\t\t123, 29, 79, 142, 48, 204, 36, 230, 197, 67, 23, 17, 181,\n\t\t127, 254, 86, 250, 99, 188, 3, 96, 201, 28, 174, 217, 205,\n\t\t215, 95, 102, 112, 254, 42, 146, 151, 39, 208, 217, 110, 167,\n\t\t136, 197, 162, 54, 61, 247, 141, 99, 101, 239, 88, 78, 199,\n\t\t161, 75, 29, 209, 185, 77, 218, 97, 125, 225, 231, 171, 203,\n\t\t192, 85, 130, 122, 207, 43, 46, 188, 207, 186, 13, 100, 204,\n\t\t178, 236, 101, 45, 120, 189, 137, 77, 179, 110, 216, 221,\n\t\t47, 68, 236, 97, 89, 182, 58, 29, 179, 122, 105, 189, 19,\n\t\t71, 195, 219, 135, 81, 178, 245, 65, 162, 212, 203, 59, 54,\n\t\t84, 59, 58, 61, 71, 43, 17, 173, 250, 118, 190, 231, 39, 89,\n\t\t182, 31, 79, 183, 97, 83, 171, 138, 129, 248, 27, 219, 17,\n\t\t139, 48, 36, 100, 231, 236, 100, 44, 231, 18, 211, 139, 8,\n\t\t187, 201, 77, 30, 113, 182, 254, 200, 54, 149, 148, 191, 137,\n\t\t31, 76, 120, 5, 78, 116, 42, 47, 161, 88, 118, 157, 140, 135,\n\t\t236, 215, 99, 70, 193, 221, 115, 130, 80, 75, 61, 61, 64,\n\t\t96, 69, 118, 53, 228, 194, 122, 38, 224, 110, 17, 10, 241,\n\t\t41, 1, 99, 245, 20, 191, 183, 120, 199, 105, 246, 32, 17,\n\t\t211, 245, 25, 66, 154, 143, 91, 107, 94, 217, 247, 80, 38,\n\t\t35, 172, 167, 226, 238, 59, 43, 240, 193, 49, 211, 46, 131,\n\t\t187, 92, 112, 233, 2, 123, 36, 169, 125, 148, 173, 226, 130,\n\t\t49, 92, 218, 111, 114, 133, 194, 34, 150, 116, 217, 88, 216,\n\t\t64, 255, 73, 181, 214, 157, 29, 206, 184, 23, 239, 46, 143,\n\t\t121, 167, 189, 37, 123, 122, 42, 167, 25, 178, 11, 185, 143,\n\t\t224, 164, 8, 56, 99, 17, 127, 170, 160, 58, 22, 176, 112,\n\t\t150, 74, 18, 46, 165, 135, 125, 140, 209, 160, 232, 180, 20,\n\t\t183, 138, 118, 38, 96, 188, 24, 34, 36, 127, 235, 157, 232,\n\t\t205, 232, 235, 128, 67, 59, 196, 95, 2, 154, 230, 103, 217,\n\t\t25, 66, 151, 74, 223, 83, 164, 132, 82, 129, 104, 189, 49,\n\t\t135, 7, 199, 179, 103, 0, 137, 34, 244, 112, 115, 0, 226,\n\t\t41, 184, 222, 231, 238, 98, 94, 159, 120, 223, 48, 2, 174,\n\t\t196, 242, 4, 249, 56, 5, 223, 46, 50, 254, 41, 5, 185, 26,\n\t\t223, 121, 78, 241, 114, 129, 157, 202, 228, 145, 123, 88,\n\t\t55, 197, 140, 84, 74, 25, 24, 250, 111, 55, 237, 53, 191,\n\t\t232, 16, 113, 27, 145, 88, 168, 171, 13, 237, 29, 72, 59,\n\t\t135, 82, 138, 84, 108, 197, 73, 144, 88, 118, 248, 239, 51,\n\t\t151, 92, 231, 209, 3, 73, 168, 246, 141, 244, 35, 16, 74,\n\t\t176, 201, 48, 12, 34, 131, 211, 166, 150, 103, 30, 40, 71,\n\t\t15, 2, 73, 96, 134, 40, 86, 237, 167, 112, 213, 210, 70, 133,\n\t\t66, 36, 236, 220, 109, 214, 67, 143, 113, 152, 59, 168, 152,\n\t\t23, 30, 150, 203, 24, 166, 216, 249, 199, 206, 203, 132, 207,\n\t\t19, 11, 236, 57, 116, 147, 225, 152, 107, 50, 106, 65, 119,\n\t\t201, 157, 15, 213, 160, 27, 16, 159, 63, 55, 19, 222, 151,\n\t\t124, 10, 20, 22, 202, 72, 84, 16, 210, 21, 37, 68, 2, 23,\n\t\t6, 159, 214, 190, 152, 231, 74, 1, 205, 26, 101, 63, 73, 191,\n\t\t49, 107, 135, 132, 96, 97, 42, 235, 192, 8, 96, 198, 247,\n\t\t9, 199, 41, 93, 17, 23, 4, 55, 111, 16, 115, 106, 252, 105,\n\t\t42, 86, 126, 59, 176, 253, 216, 96, 126, 9, 167, 220, 29,\n\t\t59, 42, 123, 134, 86, 173, 230, 78, 33, 15, 32, 167, 177,\n\t\t248, 77, 197, 249, 33, 1, 245, 69, 49, 156, 46, 106, 129,\n\t\t101, 249, 100, 140, 142, 68, 142, 254, 164, 35, 118, 205,\n\t\t42, 125, 222, 66, 139, 132, 133, 167, 142, 195, 113, 211,\n\t\t170, 136, 229, 3, 157, 248, 166, 24, 96, 144, 240, 253, 143,\n\t\t207, 87, 238, 69, 169, 246, 127, 175, 128, 76, 131, 60, 2,\n\t\t36, 93, 249, 168, 17, 73, 123, 224, 132, 168, 13, 211, 137,\n\t\t195, 208, 111, 181, 153, 204, 192, 132, 101, 194, 178, 65,\n\t\t132, 115, 244, 76, 26, 39, 131, 42, 166, 218, 31, 138, 130,\n\t\t180, 173, 27, 95, 149, 107, 54, 114, 18, 10, 64, 185, 164,\n\t\t77, 134, 154, 121, 136, 159, 146, 52, 209, 78, 38, 52, 55,\n\t\t176, 194, 114, 56, 6, 127, 160, 70, 194, 205, 1, 178, 20,\n\t\t242, 181, 178, 236, 142, 1, 213, 211, 40, 91, 145, 205, 148,\n\t\t34, 33, 119, 178, 2, 69, 231, 45, 83, 68, 114, 180, 64, 176,\n\t\t173, 143, 3, 240, 24, 20, 31, 73, 200, 86, 120, 98, 48, 120,\n\t\t59, 62, 9, 66, 245, 138, 213, 22, 195, 225, 255, 91, 206,\n\t\t191, 48, 255, 96, 36, 74, 226, 160, 164, 174, 171, 114, 151,\n\t\t166, 141, 4, 17, 145, 66, 181, 87, 166, 250, 185, 114, 216,\n\t\t110, 51, 93, 132, 70, 192, 42, 147, 80, 9, 97, 90, 105, 24,\n\t\t113, 250, 187, 108, 167, 198, 188, 19, 109, 15, 254, 138,\n\t\t80, 42, 135, 46, 69, 158, 198, 151, 71, 231, 100, 132, 25,\n\t\t23, 160, 178, 183, 169, 173, 48, 175, 187, 32, 112, 138, 96,\n\t\t160, 247, 151, 6, 94, 92, 158, 96, 162, 16, 85, 68, 84, 16,\n\t\t185, 15, 140, 88, 168, 198, 199, 67, 207, 23, 5, 128, 185,\n\t\t147, 69, 39, 232, 33, 99, 212, 39, 75, 58, 96, 182, 48, 178,\n\t\t156, 235, 116, 229, 149, 31, 106, 131, 161, 239, 214, 91,\n\t\t161, 102, 81, 74, 75, 106, 137, 81, 0, 188, 176, 164, 167,\n\t\t221, 186, 86, 38, 216, 30, 20, 53, 29, 57, 47, 231, 240, 182,\n\t\t170, 239, 181, 14, 232, 201, 94, 184, 236, 213, 198, 229,\n\t\t109, 20, 199, 170, 238, 73, 30, 241, 129, 246, 159, 243, 126,\n\t\t44, 210, 118, 35, 212, 36, 178, 157, 187, 243, 220, 185, 72,\n\t\t5, 142, 103, 21, 244, 165, 71, 108, 102, 111, 17, 155, 156,\n\t\t199, 5, 197, 123, 46, 150, 110, 210, 10, 213, 132, 217, 0,\n\t\t236, 255, 165, 60, 109, 46, 85, 21, 189, 41, 168, 160, 93,\n\t\t177, 63, 66, 199, 161, 31, 172, 78, 252, 193, 198, 29, 97,\n\t\t244, 145, 225, 58, 115, 92, 199, 20, 217, 239, 122, 85, 97,\n\t\t62, 29, 77, 185, 84, 225, 131, 159, 63, 62, 159, 8, 114, 63,\n\t\t133, 161, 23, 234, 156, 106, 235, 57, 89, 145, 234, 24, 13,\n\t\t13, 72, 146, 134, 49, 233, 19, 174, 134, 164, 39, 121, 202,\n\t\t213, 224, 60, 215, 87, 164, 37, 25, 251, 217, 47, 74, 67,\n\t\t187, 35, 111, 172, 229, 208, 253, 32, 28, 230, 189, 209, 51,\n\t\t169, 148, 91, 147, 16, 185, 209, 172, 179, 163, 237, 146,\n\t\t219, 186, 133, 25, 191, 159, 114, 241, 104, 104, 251, 191,\n\t\t5, 112, 148, 231, 68, 230, 154, 221, 42, 91, 228, 31, 223,\n\t\t0, 130, 158, 209, 186, 75, 203, 137, 95, 58, 250, 207, 187,\n\t\t48, 117, 240, 62, 77, 20, 39, 84, 112, 174, 104, 151, 203,\n\t\t145, 144, 240, 191, 61, 206, 187, 14, 19, 140, 153, 126, 168,\n\t\t240, 151, 166, 48, 153, 222, 216, 83, 126, 206, 173, 103,\n\t\t159, 41, 250, 1, 86, 149, 83, 89, 43, 89, 207, 171, 195, 32,\n\t\t150, 14, 24, 101, 125, 105, 116, 25, 2, 102, 140, 36, 29,\n\t\t103, 58, 122, 155, 146, 157, 147, 90, 125, 233, 220, 99, 152,\n\t\t190, 149, 140, 7, 159, 12, 17, 69, 17, 214, 42, 30, 234, 128,\n\t\t162, 8, 13, 146, 142, 77, 126, 122, 58, 74, 33, 23, 227, 208,\n\t\t188, 186, 161, 192, 51, 13, 176, 226, 234, 230, 246, 226,\n\t\t61, 181, 149, 159, 65, 174, 165, 193, 244, 245, 230, 112,\n\t\t97, 4, 194, 197, 55, 61, 95, 113, 99, 125, 251, 69, 112, 186,\n\t\t120, 215, 123, 83, 29, 81, 13, 16, 204, 139, 49, 54, 195,\n\t\t194, 201, 73, 47, 41, 31, 56, 141, 80, 234, 179, 172, 217,\n\t\t31, 157, 8, 189, 97, 166, 211, 235, 124, 78, 174, 99, 149,\n\t\t253, 157, 193, 11, 245, 229, 165, 15, 164, 151, 188, 80, 47,\n\t\t21, 20, 172, 209, 126, 103, 118, 72, 188, 88, 76, 71, 124,\n\t\t227, 156, 206, 96, 83, 235, 15, 155, 219, 145, 147, 222, 22,\n\t\t210, 215, 253, 111, 194, 28, 67, 104, 112, 186, 215, 83, 189,\n\t\t158, 176, 178, 209, 193, 208, 18, 109, 2, 52, 140, 118, 143,\n\t\t99, 11, 145, 139, 79, 161, 136, 234, 135, 255, 146, 73, 226,\n\t\t224, 40, 63, 49, 143, 10, 2, 63, 133, 102, 7, 98, 150, 194,\n\t\t217, 114, 162, 162, 3, 52, 101, 221, 145, 19, 92, 99, 131,\n\t\t163, 151, 188, 25, 144, 63, 128, 209, 237, 170, 204, 157,\n\t\t187, 70, 109, 132, 113, 60, 215, 104, 55, 44, 52, 142, 124,\n\t\t80, 230, 23, 189, 164, 203, 240, 124, 105, 223, 117, 208,\n\t\t66, 102, 241, 168, 123, 64, 110, 106, 127, 92, 42, 29, 183,\n\t\t83, 130, 154, 174, 53, 201, 202, 144, 182, 174, 70, 141, 44,\n\t\t78, 175, 114, 61, 230, 174, 58, 177, 193, 96, 182, 88, 189,\n\t\t7, 143, 88, 85, 157, 38, 24, 46, 159, 59, 176, 147, 151, 118,\n\t\t29, 161, 240, 246, 198, 64, 216, 170, 163, 204, 113, 14, 38,\n\t\t93, 137, 157, 231, 131, 237, 188, 149, 146, 224, 36, 192,\n\t\t233, 17, 228, 91, 27, 71, 249, 10, 71, 190, 39, 188, 22, 165,\n\t\t159, 85, 232, 246, 29, 195, 208, 218, 183, 196, 146, 38, 214,\n\t\t171, 253, 167, 224, 97, 249, 33, 243, 91, 124, 217, 114, 81,\n\t\t192, 83, 94, 177, 31, 73, 103, 195, 82, 208, 142, 107, 212,\n\t\t214, 215, 172, 251, 96, 167, 17, 129, 251, 62, 212, 118, 148,\n\t\t20, 7, 74, 78, 72, 198, 241, 245, 86, 113, 43, 220, 231, 227,\n\t\t97, 100, 219, 53, 243, 167, 113, 228, 192, 201, 127, 119,\n\t\t0, 195, 178, 185, 234, 170, 245, 70, 151, 208, 12, 229, 207,\n\t\t127, 217, 24, 106, 62, 22, 204, 112, 101, 190, 238, 137, 27,\n\t\t73, 103, 252, 97, 118, 139, 90, 195, 53, 97, 246, 187, 125,\n\t\t224, 196, 154, 48, 192, 186, 157, 124, 69, 10, 218, 233, 36,\n\t\t126, 68, 190, 245, 79, 79, 127, 222, 85, 177, 139, 222, 29,\n\t\t117, 165, 30, 229, 217, 49, 15, 152, 36, 113, 247, 148, 131,\n\t\t238, 54, 239, 14, 74, 220, 31, 224, 95, 2, 32, 201, 25, 175,\n\t\t87, 139, 118, 112, 84, 127, 89, 87, 100, 252, 157, 74, 51,\n\t\t131, 183, 136, 58, 41, 93, 145, 146, 121, 68, 217, 183, 44,\n\t\t218, 67, 2, 84, 198, 95, 192, 126, 117, 61, 189, 20, 35, 102,\n\t\t27, 66, 125, 110, 229, 54, 88, 133, 5, 77, 155, 142, 147,\n\t\t78, 105, 137, 115, 113, 215, 216, 40, 196, 17, 210, 188, 30,\n\t\t41, 151, 184, 211, 210, 73, 8, 159, 69, 122, 60, 174, 204,\n\t\t134, 11, 60, 27, 147, 254, 86, 125, 130, 38, 13, 140, 188,\n\t\t211, 67, 185, 181, 106, 105, 56, 154, 50, 90, 4, 44, 191,\n\t\t88, 155, 11, 150, 42, 253, 219, 41, 183, 237, 20, 63, 194,\n\t\t212, 130, 10, 182, 60, 18, 38, 103, 20, 230, 248, 49, 182,\n\t\t104, 239, 62, 104, 32, 12, 17, 72, 88, 193, 89, 183, 158,\n\t\t77, 158, 98, 91, 196, 42, 216, 140, 240, 127, 134, 102, 199,\n\t\t16, 147, 73, 19, 211, 193, 201, 36, 19, 33, 36, 45, 133, 163,\n\t\t71, 253, 114, 61, 204, 201, 2, 193, 133, 144, 242, 113, 183,\n\t\t139, 219, 151, 132, 173, 40, 122, 247, 64, 142, 202, 27, 221,\n\t\t0, 93, 71, 161, 162, 213, 223, 66, 226, 95, 48, 179, 240,\n\t\t138, 229, 103, 97, 157, 180, 158, 176, 191, 18, 100, 15, 207,\n\t\t143, 136, 34, 56, 123, 160, 145, 232, 57, 167, 144, 219, 185,\n\t\t74, 70, 8, 159, 46, 140, 228, 251, 72, 161, 161, 137, 70,\n\t\t200, 66, 123, 167, 125, 111, 234, 239, 35, 195, 57, 228, 183,\n\t\t171, 157, 57, 63, 90, 199, 168, 101, 95, 215, 230, 174, 147,\n\t\t66, 28, 193, 86, 12, 24, 170, 131, 234, 4, 106, 113, 199,\n\t\t115, 132, 112, 141, 185, 195, 42, 28, 149, 35, 103, 147, 200,\n\t\t183, 177, 68, 110, 35, 203, 54, 7, 135, 119, 97, 100, 92,\n\t\t245, 68, 79, 25, 204, 127, 238, 44, 57, 105, 127, 192, 33,\n\t\t82, 19, 234, 187, 11, 249, 222, 181, 109, 198, 71, 64, 128,\n\t\t209, 31, 164, 113, 215, 135, 57, 30, 223, 164, 4, 19, 162,\n\t\t212, 157, 255, 214, 84, 144, 141, 80, 91, 251, 151, 119, 63,\n\t\t190, 97, 181, 198, 51, 151, 21, 158, 149, 32, 159, 165, 69,\n\t\t165, 226, 206, 215, 203, 200, 94, 97, 184, 142, 47, 169, 182,\n\t\t249, 231, 75, 29, 132, 35, 46, 91, 90, 171, 31, 83, 130, 2,\n\t\t76, 75, 220, 124, 205, 166, 117, 138, 143, 61, 18, 67, 50,\n\t\t101, 66, 216, 238, 69, 4, 239, 146, 227, 177, 116, 201, 94,\n\t\t101, 54, 200, 129, 38, 213, 51, 117, 112, 92, 148, 134, 80,\n\t\t123, 72, 117, 226, 157, 13, 208, 211, 98, 245, 132, 20, 113,\n\t\t128, 10, 134, 87, 219, 97, 17, 6, 14, 140, 242, 48, 190, 42,\n\t\t41, 9, 76, 33, 166, 170, 179, 165, 44, 123, 130, 161, 61,\n\t\t224, 207, 196, 236, 202, 70, 41, 130, 159, 2, 75, 97, 147,\n\t\t4, 82, 40, 206, 202, 17, 15, 236, 19, 196, 177, 221, 157,\n\t\t65, 42, 84, 178, 79, 32, 228, 224, 135, 193, 39, 154, 132,\n\t\t34, 10, 35, 51, 1, 96, 72, 219, 132, 247, 88, 193, 144, 104,\n\t\t248, 13, 134, 161, 240, 133, 164, 167, 33, 133, 93, 208, 155,\n\t\t165, 41, 250, 139, 249, 161, 171, 59, 77, 101, 177, 106, 39,\n\t\t106, 86, 205, 50, 80, 155, 189, 149, 96, 165, 196, 8, 69,\n\t\t242, 43, 138, 141, 137, 98, 5, 200, 71, 2, 80, 38, 164, 212,\n\t\t220, 195, 244, 163, 203, 161, 59, 148, 184, 42, 192, 176,\n\t\t253, 93, 168, 254, 53, 160, 159, 10, 33, 70, 210, 242, 163,\n\t\t106, 209, 79, 3, 55, 122, 204, 194, 195, 31, 46, 77, 182,\n\t\t18, 232, 144, 47, 127, 55, 98, 209, 180, 70, 206, 145, 194,\n\t\t137, 157, 48, 130, 11, 86, 173, 3, 214, 44, 147, 214, 170,\n\t\t187, 113, 229, 205, 16, 254, 0, 213, 22, 246, 70, 149, 101,\n\t\t52, 39, 254, 216, 160, 82, 218, 46, 236, 245, 71, 132, 145,\n\t\t178, 0, 224, 35, 41, 80, 107, 218, 163, 19, 198, 50, 98, 43,\n\t\t89, 163, 102, 201, 3, 183, 184, 216, 55, 60, 196, 63, 255,\n\t\t95, 224, 173, 127, 238, 111, 180, 250, 97, 196, 112, 209,\n\t\t131, 31, 225, 205, 72, 168, 160, 103, 75, 118, 76, 13, 234,\n\t\t244, 137, 76, 241, 44, 121, 59, 46, 67, 103, 204, 111, 227,\n\t\t68, 0, 185, 47, 241, 58, 12, 250, 76, 186, 142, 32, 189, 42,\n\t\t65, 98, 181, 166, 135, 5, 39, 74, 67, 208, 167, 104, 11, 222,\n\t\t51, 204, 170, 233, 243, 235, 23, 123, 110, 118, 152, 175,\n\t\t22, 8, 163, 238, 145, 229, 246, 49, 251, 254, 17, 64, 186,\n\t\t108, 69, 27, 79, 185, 79, 161, 224, 255, 50, 117, 250, 203,\n\t\t223, 241, 155, 66, 253, 219, 198, 238, 253, 243, 127, 99,\n\t\t248, 159, 88, 182, 42, 56, 21, 181, 2, 109, 190, 15, 248,\n\t\t126, 66, 69, 191, 190, 157, 158, 95, 252, 86, 249, 139, 8,\n\t\t19, 57, 128, 205, 132, 158, 44, 89, 58, 79, 204, 246, 127,\n\t\t116, 241, 89, 64, 191, 254, 115, 164, 217, 95, 219, 131, 11,\n\t\t40, 31, 200, 145, 56, 248, 195, 40, 233, 165, 36, 217, 187,\n\t\t136, 154, 233, 4, 186, 75, 24, 75, 77, 20, 171, 183, 81, 92,\n\t\t9, 25, 124, 211, 137, 77, 53, 249, 109, 167, 177, 30, 233,\n\t\t173, 41, 102, 183, 19, 142, 232, 91, 200, 184, 77, 165, 142,\n\t\t93, 150, 70, 109, 187, 129, 18, 225, 0, 188, 169, 142, 84,\n\t\t101, 178, 211, 96, 108, 121, 143, 116, 219, 0, 77, 61, 159,\n\t\t37, 223, 247, 43, 246, 9, 172, 241, 3, 155, 173, 135, 221,\n\t\t158, 139, 195, 247, 127, 13, 193, 48, 50, 197, 92, 66, 112,\n\t\t241, 210, 200, 23, 180, 255, 255, 97, 137, 43, 99, 144, 255,\n\t\t237, 53, 249, 123, 116, 101, 246, 253, 121, 159, 0, 230, 19,\n\t\t177, 20, 119, 1, 53, 115, 158, 165, 176, 25, 54, 189, 161,\n\t\t38, 255, 255, 227, 52, 177, 66, 203, 255, 170, 45, 149, 105,\n\t\t45, 183, 226, 61, 220, 226, 60, 126, 255, 70, 157, 180, 67,\n\t\t55, 123, 83, 250, 243, 164, 242, 252, 197, 178, 192, 250,\n\t\t188, 108, 85, 172, 137, 180, 217, 201, 134, 46, 139, 233,\n\t\t227, 251, 96, 130, 81, 89, 109, 89, 74, 29, 101, 200, 126,\n\t\t146, 48, 225, 127, 191, 137, 75, 253, 182, 201, 245, 213,\n\t\t195, 172, 61, 21, 212, 139, 131, 56, 150, 20, 99, 241, 63,\n\t\t224, 28, 216, 108, 57, 251, 189, 14, 95, 123, 247, 153, 184,\n\t\t249, 205, 153, 245, 192, 133, 83, 115, 33, 160, 70, 209, 166,\n\t\t50, 241, 33, 37, 14, 227, 197, 209, 241, 68, 43, 151, 93,\n\t\t50, 15, 245, 227, 234, 14, 126, 202, 22, 18, 118, 83, 235,\n\t\t67, 212, 124, 59, 152, 17, 151, 112, 106, 0, 230, 133, 164,\n\t\t243, 153, 62, 31, 177, 90, 72, 209, 188, 235, 46, 68, 47,\n\t\t41, 207, 42, 165, 66, 77, 143, 169, 11, 167, 158, 165, 246,\n\t\t192, 188, 248, 151, 59, 218, 177, 87, 177, 8, 219, 177, 250,\n\t\t104, 114, 99, 193, 120, 126, 13, 76, 84, 123, 116, 137, 208,\n\t\t124, 190, 24, 179, 247, 191, 103, 106, 23, 7, 6, 211, 110,\n\t\t25, 232, 21, 131, 133, 33, 31, 152, 130, 64, 163, 97, 193,\n\t\t233, 34, 98, 5, 218, 152, 46, 2, 6, 138, 148, 219, 128, 84,\n\t\t11, 62, 68, 73, 0, 233, 47, 146, 71, 231, 176, 125, 149, 226,\n\t\t100, 41, 147, 118, 105, 231, 134, 118, 129, 179, 166, 199,\n\t\t7, 54, 204, 204, 45, 57, 250, 54, 61, 247, 84, 139, 219, 16,\n\t\t226, 201, 60, 177, 88, 95, 142, 153, 73, 141, 81, 115, 248,\n\t\t93, 13, 204, 51, 98, 229, 186, 72, 23, 218, 16, 73, 107, 131,\n\t\t224, 223, 193, 39, 204, 214, 180, 185, 201, 203, 88, 164,\n\t\t62, 211, 96, 104, 213, 202, 226, 169, 99, 215, 167, 227, 237,\n\t\t54, 73, 183, 166, 153, 191, 117, 190, 10, 14, 137, 249, 200,\n\t\t242, 164, 20, 4, 214, 199, 52, 14, 14, 156, 87, 77, 252, 244,\n\t\t109, 149, 231, 147, 132, 108, 53, 3, 87, 175, 200, 244, 108,\n\t\t20, 142, 220, 220, 101, 143, 219, 226, 252, 105, 254, 157,\n\t\t3, 224, 101, 139, 172, 117, 31, 52, 181, 153, 0, 67, 4, 150,\n\t\t146, 134, 118, 167, 143, 201, 13, 54, 41, 55, 102, 246, 5,\n\t\t34, 152, 227, 103, 190, 172, 48, 138, 184, 17, 187, 60, 146,\n\t\t72, 20, 59, 152, 230, 240, 161, 161, 241, 122, 37, 118, 130,\n\t\t127, 5, 121, 7, 254, 89, 75, 78, 196, 21, 9, 39, 49, 74, 119,\n\t\t99, 127, 210, 80, 175, 193, 218, 249, 112, 29, 246, 239, 194,\n\t\t125, 140, 104, 26, 85, 39, 202, 111, 132, 168, 173, 231, 122,\n\t\t105, 50, 156, 18, 53, 169, 39, 126, 221, 207, 73, 200, 16,\n\t\t159, 114, 219, 35, 155, 89, 154, 190, 60, 142, 18, 227, 238,\n\t\t165, 112, 115, 212, 212, 234, 13, 168, 191, 95, 157, 242,\n\t\t4, 119, 70, 162, 108, 118, 152, 157, 245, 78, 56, 92, 38,\n\t\t228, 128, 44, 125, 255, 40, 249, 141, 24, 156, 155, 60, 97,\n\t\t109, 213, 143, 126, 249, 219, 220, 160, 110, 138, 195, 129,\n\t\t170, 20, 231, 133, 181, 108, 57, 79, 40, 114, 166, 189, 77,\n\t\t20, 57, 125, 178, 16, 241, 146, 142, 146, 78, 139, 49, 226,\n\t\t211, 173, 106, 55, 43, 157, 218, 212, 249, 244, 15, 28, 133,\n\t\t115, 232, 189, 145, 207, 128, 52, 172, 76, 40, 6, 193, 97,\n\t\t35, 233, 75, 111, 237, 242, 242, 185, 227, 163, 9, 29, 127,\n\t\t162, 130, 101, 59, 210, 200, 217, 30, 204, 156, 221, 135,\n\t\t65, 16, 91, 198, 137, 82, 130, 52, 15, 179, 109, 180, 113,\n\t\t81, 96, 115, 72, 118, 240, 192, 175, 0, 214, 161, 12, 32,\n\t\t91, 111, 186, 66, 89, 85, 4, 252, 87, 188, 141, 1, 100, 42,\n\t\t78, 46, 178, 158, 42, 221, 32, 30, 247, 246, 214, 250, 235,\n\t\t79, 195, 152, 61, 91, 80, 20, 154, 186, 251, 158, 177, 34,\n\t\t68, 11, 231, 126, 95, 107, 67, 232, 33, 251, 151, 254, 206,\n\t\t200, 139, 117, 95, 27, 90, 146, 14, 220, 94, 49, 22, 208,\n\t\t33, 60, 1, 211, 236, 121, 134, 108, 62, 253, 54, 191, 226,\n\t\t53, 122, 221, 225, 126, 235, 102, 121, 45, 206, 170, 19, 64,\n\t\t7, 247, 187, 118, 69, 184, 96, 235, 187, 214, 18, 151, 172,\n\t\t168, 203, 206, 25, 221, 135, 26, 212, 164, 129, 238, 220,\n\t\t58, 63, 147, 215, 117, 152, 50, 130, 142, 145, 65, 223, 128,\n\t\t87, 88, 65, 117, 91, 183, 48, 148, 106, 75, 149, 168, 193,\n\t\t147, 18, 81, 186, 118, 245, 133, 186, 207, 14, 215, 150, 7,\n\t\t54, 28, 94, 196, 67, 2, 11, 130, 68, 72, 230, 220, 145, 248,\n\t\t11, 234, 49, 215, 7, 18, 220, 215, 2, 7, 56, 181, 117, 68,\n\t\t172, 5, 57, 175, 253, 22, 153, 56, 26, 88, 191, 180, 34, 152,\n\t\t34, 49, 149, 4, 197, 208, 95, 153, 143, 6, 30, 180, 110, 48,\n\t\t162, 60, 73, 88, 166, 185, 200, 133, 128, 151, 203, 50, 2,\n\t\t116, 28, 133, 154, 189, 88, 67, 123, 227, 94, 146, 12, 249,\n\t\t73, 14, 34, 146, 165, 187, 105, 131, 28, 11, 45, 53, 4, 124,\n\t\t164, 8, 232, 174, 74, 60, 82, 210, 238, 42, 37, 173, 103,\n\t\t51, 128, 193, 181, 169, 205, 197, 18, 171, 215, 46, 74, 64,\n\t\t123, 97, 43, 251, 78, 203, 249, 49, 86, 195, 35, 108, 96,\n\t\t56, 47, 210, 20, 133, 213, 170, 58, 184, 59, 107, 157, 67,\n\t\t135, 104, 204, 50, 204, 105, 203, 105, 138, 239, 95, 151,\n\t\t1, 1, 29, 76, 14, 212, 146, 193, 54, 93, 175, 164, 9, 83,\n\t\t193, 115, 198, 172, 180, 18, 90, 96, 44, 56, 112, 90, 77,\n\t\t252, 194, 89, 223, 90, 252, 53, 72, 35, 169, 193, 33, 196,\n\t\t2, 23, 53, 68, 51, 121, 36, 135, 204, 163, 248, 147, 225,\n\t\t45, 98, 230, 115, 223, 89, 59, 42, 176, 167, 70, 190, 102,\n\t\t153, 185, 155, 180, 35, 245, 189, 109, 185, 238, 187, 191,\n\t\t219, 129, 127, 150, 82, 243, 166, 135, 180, 62, 238, 125,\n\t\t122, 13, 198, 209, 74, 255, 106, 27, 1, 203, 36, 249, 251,\n\t\t161, 6, 3, 32, 173, 106, 129, 254, 42, 161, 150, 75, 124,\n\t\t78, 86, 255, 248, 61, 230, 142, 243, 106, 133, 30, 225, 220,\n\t\t54, 126, 55, 215, 155, 214, 97, 41, 148, 241, 245, 119, 128,\n\t\t190, 249, 26, 52, 221, 29, 227, 85, 164, 190, 211, 142, 91,\n\t\t236, 168, 231, 92, 189, 107, 162, 35, 98, 47, 98, 81, 32,\n\t\t233, 123, 194, 162, 156, 213, 116, 65, 13, 3, 34, 90, 157,\n\t\t208, 247, 27, 29, 31, 67, 248, 250, 122, 60, 186, 172, 80,\n\t\t7, 234, 180, 107, 238, 9, 190, 249, 67, 124, 127, 100, 68,\n\t\t157, 119, 35, 65, 58, 196, 189, 227, 208, 77, 129, 139, 231,\n\t\t144, 240, 108, 10, 145, 150, 108, 56, 224, 30, 119, 176, 39,\n\t\t224, 132, 209, 231, 23, 147, 67, 24, 75, 55, 46, 232, 49,\n\t\t108, 47, 133, 211, 236, 150, 200, 116, 247, 210, 139, 237,\n\t\t228, 156, 7, 184, 110, 21, 145, 205, 124, 26, 163, 133, 240,\n\t\t205, 63, 112, 238, 240, 147, 87, 166, 54, 150, 239, 214, 229,\n\t\t69, 145, 121, 236, 75, 21, 86, 250, 158, 232, 66, 96, 138,\n\t\t20, 82, 149, 133, 254, 202, 103, 97, 169, 91, 125, 63, 202,\n\t\t28, 48, 74, 168, 205, 230, 252, 102, 7, 154, 159, 78, 168,\n\t\t138, 91, 151, 199, 248, 203, 96, 173, 184, 68, 141, 90, 175,\n\t\t222, 22, 245, 84, 168, 17, 101, 54, 66, 253, 113, 22, 161,\n\t\t234, 29, 66, 220, 18, 219, 146, 204, 118, 195, 235, 223, 139,\n\t\t52, 49, 79, 180, 179, 174, 148, 33, 247, 147, 69, 191, 168,\n\t\t117, 78, 119, 49, 238, 197, 218, 221, 246, 67, 117, 97, 186,\n\t\t100, 245, 161, 141, 125, 194, 39, 190, 69, 214, 206, 63, 252,\n\t\t246, 223, 238, 190, 205, 121, 227, 41, 106, 63, 169, 253,\n\t\t174, 143, 11, 140, 254, 155, 176, 94, 240, 188, 102, 62, 92,\n\t\t29, 204, 110, 89, 0, 105, 205, 175, 122, 155, 152, 120, 149,\n\t\t41, 213, 155, 64, 166, 166, 225, 198, 11, 220, 221, 179, 74,\n\t\t23, 41, 111, 66, 58, 146, 125, 64, 22, 235, 158, 91, 76, 164,\n\t\t30, 245, 168, 60, 202, 27, 63, 104, 87, 34, 0, 204, 95, 119,\n\t\t251, 50, 180, 210, 232, 219, 141, 176, 254, 118, 146, 172,\n\t\t148, 44, 181, 160, 114, 240, 136, 92, 44, 98, 165, 104, 25,\n\t\t235, 199, 160, 114, 218, 216, 128, 164, 187, 181, 214, 165,\n\t\t141, 142, 126, 39, 145, 203, 159, 224, 197, 196, 250, 28,\n\t\t248, 181, 115, 118, 133, 21, 20, 89, 16, 113, 145, 65, 203,\n\t\t123, 152, 92, 224, 173, 251, 43, 168, 112, 189, 80, 242, 199,\n\t\t178, 50, 15, 34, 46, 153, 123, 97, 23, 59, 91, 35, 187, 187,\n\t\t6, 172, 40, 136, 201, 50, 61, 193, 221, 128, 81, 26, 37, 133,\n\t\t147, 123, 223, 51, 137, 228, 254, 4, 158, 57, 41, 89, 247,\n\t\t227, 50, 209, 184, 159, 46, 81, 11, 70, 170, 85, 71, 200,\n\t\t163, 0, 187, 69, 219, 22, 49, 40, 245, 125, 255, 118, 121,\n\t\t124, 42, 170, 145, 6, 148, 127, 82, 174, 135, 20, 105, 54,\n\t\t33, 223, 78, 32, 188, 247, 7, 69, 37, 14, 61, 249, 136, 151,\n\t\t24, 16, 70, 167, 47, 237, 21, 27, 236, 184, 139, 125, 94,\n\t\t176, 163, 209, 89, 201, 98, 13, 26, 137, 216, 107, 100, 134,\n\t\t175, 152, 13, 0, 107, 253, 209, 70, 20, 129, 140, 201, 246,\n\t\t200, 109, 183, 141, 167, 55, 45, 241, 152, 97, 28, 122, 244,\n\t\t245, 6, 249, 147, 78, 250, 255, 137, 200, 213, 49, 6, 110,\n\t\t211, 13, 255, 222, 53, 198, 219, 69, 13, 119, 188, 24, 67,\n\t\t159, 253, 208, 195, 107, 63, 186, 143, 90, 157, 225, 162,\n\t\t237, 44, 246, 251, 245, 1, 208, 213, 5, 224, 108, 122, 121,\n\t\t243, 243, 189, 206, 145, 222, 156, 74, 241, 222, 217, 52,\n\t\t233, 139, 214, 152, 38, 190, 234, 12, 201, 33, 167, 222, 221,\n\t\t38, 182, 216, 167, 61, 191, 35, 55, 144, 89, 234, 8, 159,\n\t\t138, 91, 95, 94, 11, 217, 15, 41, 135, 246, 255, 105, 204,\n\t\t149, 102, 200, 16, 154, 255, 165, 1, 231, 156, 115, 108, 105,\n\t\t255, 165, 34, 215, 224, 117, 64, 60, 129, 147, 190, 161, 71,\n\t\t181, 5, 39, 38, 158, 24, 198, 72, 248, 252, 209, 3, 81, 149,\n\t\t57, 123, 213, 214, 89, 169, 53, 78, 125, 206, 71, 37, 12,\n\t\t40, 141, 137, 151, 33, 200, 37, 211, 45, 164, 52, 137, 22,\n\t\t87, 244, 175, 102, 26, 46, 217, 35, 131, 244, 17, 160, 24,\n\t\t48, 199, 186, 220, 28, 27, 190, 214, 31, 27, 154, 236, 94,\n\t\t51, 185, 34, 204, 242, 213, 223, 64, 71, 50, 237, 254, 96,\n\t\t26, 229, 6, 206, 37, 252, 120, 104, 38, 198, 109, 136, 101,\n\t\t37, 39, 226, 94, 79, 62, 248, 235, 195, 106, 225, 79, 222,\n\t\t35, 91, 226, 239, 90, 103, 192, 25, 201, 124, 70, 221, 241,\n\t\t92, 161, 96, 165, 68, 62, 38, 126, 119, 6, 130, 152, 233,\n\t\t17, 197, 96, 10, 10, 162, 202, 130, 227, 126, 111, 71, 45,\n\t\t21, 55, 30, 23, 246, 157, 222, 252, 142, 215, 103, 153, 143,\n\t\t20, 132, 182, 24, 22, 105, 228, 92, 166, 226, 236, 38, 221,\n\t\t137, 63, 244, 100, 244, 125, 217, 63, 165, 118, 111, 144,\n\t\t147, 249, 8, 250, 104, 15, 143, 98, 68, 217, 155, 136, 254,\n\t\t234, 255, 205, 125, 160, 46, 71, 61, 107, 138, 69, 133, 67,\n\t\t49, 77, 53, 121, 197, 124, 223, 140, 192, 161, 241, 161, 220,\n\t\t246, 128, 54, 151, 62, 48, 33, 147, 160, 220, 251, 190, 51,\n\t\t30, 200, 12, 214, 142, 114, 173, 120, 191, 99, 27, 21, 159,\n\t\t58, 193, 45, 191, 81, 85, 200, 101, 98, 41, 13, 55, 212, 162,\n\t\t33, 167, 56, 166, 176, 98, 238, 195, 39, 67, 189, 203, 63,\n\t\t227, 191, 75, 95, 79, 6, 105, 107, 213, 2, 48, 236, 109, 5,\n\t\t251, 43, 68, 44, 50, 231, 88, 205, 95, 77, 31, 104, 32, 153,\n\t\t176, 205, 248, 23, 180, 81, 45, 80, 90, 252, 226, 22, 41,\n\t\t249, 29, 221, 206, 241, 194, 144, 96, 24, 61, 48, 21, 95,\n\t\t255, 172, 143, 83, 191, 26, 243, 23, 212, 223, 94, 248, 94,\n\t\t233, 54, 211, 237, 238, 14, 43, 99, 98, 20, 81, 103, 218,\n\t\t234, 74, 233, 162, 73, 130, 218, 159, 167, 201, 247, 41, 186,\n\t\t162, 102, 110, 183, 144, 208, 247, 21, 0, 215, 65, 160, 146,\n\t\t16, 146, 114, 88, 46, 181, 24, 164, 51, 29, 28, 91, 11, 117,\n\t\t3, 68, 194, 19, 209, 239, 211, 65, 141, 250, 249, 248, 193,\n\t\t132, 127, 63, 168, 175, 40, 255, 221, 162, 94, 118, 147, 160,\n\t\t88, 197, 208, 111, 127, 68, 191, 57, 37, 210, 196, 72, 101,\n\t\t10, 180, 231, 67, 83, 173, 20, 131, 243, 129, 34, 79, 22,\n\t\t238, 111, 35, 25, 107, 121, 79, 46, 3, 46, 87, 29, 156, 125,\n\t\t204, 68, 17, 39, 116, 206, 231, 74, 35, 225, 68, 245, 254,\n\t\t140, 215, 91, 160, 8, 188, 40, 63, 213, 196, 210, 117, 192,\n\t\t142, 82, 205, 23, 13, 203, 69, 254, 191, 219, 7, 13, 57, 22,\n\t\t60, 200, 35, 78, 10, 178, 165, 228, 53, 184, 198, 48, 19,\n\t\t6, 131, 110, 103, 168, 96, 115, 230, 254, 196, 190, 221, 63,\n\t\t183, 101, 51, 128, 41, 247, 111, 209, 37, 45, 95, 126, 97,\n\t\t219, 99, 77, 150, 200, 50, 218, 61, 48, 170, 100, 30, 20,\n\t\t20, 34, 128, 127, 53, 35, 14, 44, 214, 46, 51, 243, 57, 100,\n\t\t114, 169, 143, 16, 217, 165, 18, 113, 111, 202, 236, 133,\n\t\t176, 93, 253, 237, 9, 59, 88, 149, 125, 211, 86, 249, 214,\n\t\t187, 42, 1, 201, 242, 52, 235, 154, 78, 155, 30, 118, 15,\n\t\t21, 239, 173, 156, 60, 243, 235, 162, 94, 191, 28, 174, 215,\n\t\t6, 76, 210, 84, 233, 13, 7, 115, 28, 228, 127, 48, 75, 166,\n\t\t9, 31, 239, 10, 217, 117, 61, 68, 186, 227, 41, 169, 150,\n\t\t139, 55, 91, 87, 12, 129, 222, 79, 45, 50, 239, 166, 51, 67,\n\t\t187, 255, 160, 79, 90, 185, 118, 68, 7, 73, 173, 240, 102,\n\t\t72, 28, 101, 199, 157, 15, 136, 191, 188, 124, 91, 70, 34,\n\t\t144, 231, 80, 14, 92, 138, 80, 47, 188, 109, 157, 57, 144,\n\t\t210, 104, 201, 130, 211, 43, 139, 61, 15, 140, 9, 151, 80,\n\t\t54, 45, 245, 149, 120, 113, 78, 219, 161, 219, 197, 113, 28,\n\t\t121, 55, 80, 41, 66, 32, 87, 255, 222, 40, 38, 176, 40, 254,\n\t\t150, 185, 46, 249, 203, 154, 35, 179, 249, 159, 108, 252,\n\t\t237, 37, 94, 195, 44, 207, 187, 23, 217, 209, 14, 166, 230,\n\t\t168, 182, 80, 180, 183, 20, 221, 44, 206, 49, 253, 169, 123,\n\t\t38, 225, 140, 111, 71, 226, 49, 112, 220, 224, 93, 100, 114,\n\t\t168, 230, 0, 208, 140, 102, 123, 236, 254, 169, 133, 192,\n\t\t186, 125, 149, 202, 224, 248, 223, 71, 122, 199, 75, 4, 125,\n\t\t105, 1, 115, 19, 175, 227, 18, 189, 236, 0, 180, 112, 180,\n\t\t10, 106, 196, 95, 166, 89, 22, 154, 81, 211, 58, 155, 218,\n\t\t117, 26, 196, 6, 99, 236, 243, 121, 183, 51, 4, 233, 209,\n\t\t226, 148, 103, 58, 130, 27, 58, 160, 174, 34, 57, 239, 86,\n\t\t133, 195, 247, 7, 186, 71, 206, 198, 143, 7, 144, 173, 227,\n\t\t198, 223, 69, 68, 223, 222, 88, 238, 34, 244, 61, 94, 170,\n\t\t70, 102, 182, 246, 65, 148, 199, 94, 155, 36, 52, 33, 107,\n\t\t51, 169, 110, 233, 16, 241, 108, 72, 26, 95, 62, 80, 92, 124,\n\t\t223, 142, 71, 113, 206, 112, 210, 28, 223, 20, 128, 93, 155,\n\t\t191, 164, 0, 149, 47, 94, 153, 135, 229, 225, 143, 45, 201,\n\t\t23, 211, 119, 73, 100, 237, 203, 94, 138, 96, 78, 123, 110,\n\t\t100, 204, 46, 153, 212, 203, 234, 3, 190, 47, 19, 46, 48,\n\t\t33, 215, 73, 79, 193, 239, 80, 159, 78, 224, 125, 80, 13,\n\t\t233, 166, 98, 209, 197, 3, 176, 169, 115, 165, 77, 28, 215,\n\t\t209, 86, 181, 187, 40, 24, 109, 247, 162, 22, 163, 125, 89,\n\t\t63, 119, 160, 214, 116, 40, 51, 133, 41, 154, 244, 128, 201,\n\t\t203, 16, 14, 10, 223, 225, 161, 167, 240, 197, 113, 161, 180,\n\t\t14, 244, 234, 215, 231, 121, 202, 63, 253, 254, 77, 179, 188,\n\t\t116, 106, 65, 21, 179, 82, 208, 36, 210, 201, 178, 170, 44,\n\t\t201, 187, 182, 127, 184, 93, 49, 135, 188, 80, 240, 61, 35,\n\t\t29, 249, 33, 108, 169, 181, 57, 157, 26, 49, 248, 56, 52,\n\t\t244, 104, 17, 11, 60, 73, 67, 237, 54, 138, 52, 102, 214,\n\t\t125, 74, 93, 232, 212, 234, 113, 95, 97, 163, 143, 202, 124,\n\t\t93, 180, 52, 68, 82, 104, 100, 225, 201, 82, 251, 101, 224,\n\t\t166, 250, 82, 22, 114, 50, 56, 87, 20, 99, 234, 37, 80, 12,\n\t\t112, 99, 228, 86, 200, 199, 172, 228, 110, 66, 57, 141, 14,\n\t\t53, 247, 94, 242, 185, 24, 103, 201, 131, 39, 174, 127, 152,\n\t\t246, 28, 51, 162, 14, 21, 58, 195, 147, 33, 80, 145, 21, 152,\n\t\t17, 83, 110, 160, 216, 250, 68, 168, 218, 202, 118, 120, 79,\n\t\t15, 143, 21, 251, 127, 25, 86, 76, 169, 142, 44, 74, 41, 31,\n\t\t98, 242, 247, 86, 210, 0, 231, 169, 212, 143, 62, 107, 23,\n\t\t42, 93, 4, 133, 63, 25, 224, 105, 251, 199, 60, 114, 171,\n\t\t188, 104, 175, 113, 217, 237, 99, 141, 142, 76, 158, 55, 184,\n\t\t84, 236, 161, 228, 207, 51, 42, 150, 174, 168, 198, 73, 207,\n\t\t51, 2, 75, 48, 53, 236, 108, 177, 81, 184, 81, 208, 125, 27,\n\t\t144, 108, 69, 225, 42, 90, 13, 164, 253, 85, 95, 31, 181,\n\t\t148, 223, 255, 36, 122, 234, 115, 4, 176, 247, 187, 20, 26,\n\t\t227, 158, 114, 120, 202, 181, 210, 207, 230, 206, 44, 196,\n\t\t121, 230, 222, 214, 159, 70, 125, 43, 203, 210, 164, 48, 213,\n\t\t28, 26, 184, 234, 46, 9, 45, 203, 125, 102, 76, 11, 111, 41,\n\t\t175, 180, 244, 242, 22, 248, 210, 183, 171, 183, 213, 38,\n\t\t57, 144, 228, 164, 53, 135, 202, 93, 188, 173, 195, 249, 208,\n\t\t109, 57, 229, 199, 253, 42, 139, 139, 178, 25, 158, 97, 163,\n\t\t193, 55, 219, 60, 208, 20, 236, 154, 85, 243, 96, 170, 155,\n\t\t217, 93, 172, 128, 149, 18, 233, 227, 85, 243, 57, 172, 174,\n\t\t138, 176, 111, 230, 155, 218, 27, 143, 46, 8, 18, 192, 54,\n\t\t40, 17, 46, 151, 201, 122, 51, 226, 79, 93, 1, 198, 144, 24,\n\t\t101, 56, 162, 69, 87, 141, 139, 95, 110, 53, 102, 255, 130,\n\t\t101, 206, 149, 130, 119, 171, 2, 242, 83, 42, 10, 173, 36,\n\t\t237, 112, 29, 89, 245, 77, 148, 36, 122, 20, 60, 82, 98, 89,\n\t\t99, 246, 166, 142, 4, 46, 35, 253, 20, 67, 144, 155, 87, 230,\n\t\t23, 159, 75, 43, 199, 192, 65, 95, 172, 61, 13, 56, 145, 183,\n\t\t188, 67, 129, 67, 246, 9, 187, 143, 132, 53, 128, 249, 124,\n\t\t7, 87, 140, 172, 68, 121, 249, 41, 242, 109, 87, 164, 239,\n\t\t210, 159, 225, 76, 190, 2, 94, 156, 127, 100, 71, 2, 6, 53,\n\t\t102, 223, 144, 129, 50, 197, 129, 253, 143, 178, 189, 54,\n\t\t190, 108, 87, 101, 254, 248, 117, 240, 162, 155, 121, 57,\n\t\t64, 46, 147, 212, 98, 218, 192, 73, 241, 211, 104, 59, 167,\n\t\t151, 216, 113, 144, 204, 180, 143, 248, 174, 65, 82, 70, 226,\n\t\t0, 171, 106, 100, 214, 253, 40, 174, 13, 103, 196, 43, 208,\n\t\t8, 133, 169, 22, 109, 78, 191, 105, 18, 191, 253, 140, 172,\n\t\t104, 43, 23, 163, 70, 95, 65, 57, 115, 107, 92, 141, 228,\n\t\t217, 72, 4, 97, 79, 222, 50, 90, 67, 182, 174, 30, 194, 94,\n\t\t224, 65, 102, 215, 160, 157, 191, 186, 167, 234, 64, 250,\n\t\t139, 172, 108, 147, 251, 139, 142, 30, 236, 233, 199, 9, 218,\n\t\t35, 255, 21, 81, 106, 16, 246, 33, 122, 14, 242, 33, 82, 193,\n\t\t196, 171, 215, 78, 37, 239, 151, 87, 201, 115, 245, 245, 238,\n\t\t103, 177, 56, 23, 143, 196, 18, 73, 32, 251, 210, 153, 205,\n\t\t96, 244, 69, 90, 57, 86, 53, 132, 70, 0, 129, 68, 100, 205,\n\t\t124, 203, 255, 108, 65, 196, 24, 141, 154, 98, 100, 135, 45,\n\t\t15, 75, 39, 125, 59, 135, 42, 205, 112, 42, 225, 75, 85, 220,\n\t\t109, 211, 238, 38, 38, 128, 218, 231, 62, 81, 7, 167, 2, 249,\n\t\t233, 247, 175, 33, 88, 44, 103, 229, 86, 54, 215, 132, 77,\n\t\t132, 67, 175, 110, 170, 156, 27, 12, 120, 209, 25, 147, 25,\n\t\t55, 248, 74, 161, 112, 14, 139, 216, 104, 5, 211, 151, 136,\n\t\t56, 253, 4, 145, 199, 223, 4, 88, 39, 11, 90, 244, 204, 160,\n\t\t6, 16, 82, 125, 197, 25, 69, 221, 177, 144, 98, 246, 104,\n\t\t45, 174, 2, 224, 155, 88, 182, 228, 132, 154, 138, 244, 96,\n\t\t86, 162, 203, 99, 9, 98, 176, 20, 218, 123, 27, 121, 32, 235,\n\t\t23, 26, 123, 63, 255, 225, 8, 103, 37, 242, 203, 117, 74,\n\t\t255, 247, 95, 116, 17, 102, 229, 100, 220, 147, 146, 205,\n\t\t67, 63, 181, 100, 126, 144, 239, 76, 85, 42, 213, 30, 100,\n\t\t16, 227, 31, 211, 49, 92, 88, 187, 131, 52, 208, 78, 68, 254,\n\t\t14, 143, 165, 221, 248, 92, 50, 193, 32, 6, 42, 23, 143, 164,\n\t\t192, 195, 160, 177, 19, 80, 234, 74, 135, 250, 48, 22, 182,\n\t\t94, 193, 255, 13, 30, 29, 210, 254, 128, 241, 255, 7, 100,\n\t\t226, 232, 72, 229, 176, 187, 175, 150, 73, 153, 160, 186,\n\t\t52, 179, 17, 250, 154, 239, 14, 102, 135, 99, 61, 222, 44,\n\t\t142, 237, 193, 106, 184, 163, 209, 167, 219, 24, 35, 153,\n\t\t136, 186, 211, 42, 161, 197, 242, 56, 170, 83, 33, 232, 51,\n\t\t155, 132, 103, 4, 90, 220, 17, 117, 27, 130, 246, 66, 190,\n\t\t190, 133, 66, 250, 237, 221, 236, 207, 242, 173, 106, 115,\n\t\t9, 93, 213, 126, 138, 168, 136, 84, 227, 204, 213, 32, 19,\n\t\t169, 239, 39, 221, 248, 103, 146, 18, 184, 90, 220, 85, 9,\n\t\t59, 21, 147, 31, 9, 110, 34, 246, 111, 33, 96, 0, 223, 90,\n\t\t59, 5, 113, 230, 83, 10, 164, 103, 211, 170, 56, 122, 115,\n\t\t207, 121, 122, 170, 30, 127, 99, 172, 106, 95, 185, 199, 200,\n\t\t52, 242, 155, 136, 30, 28, 12, 167, 94, 80, 125, 111, 251,\n\t\t179, 224, 90, 94, 176, 18, 18, 193, 218, 6, 149, 196, 92,\n\t\t227, 60, 132, 190, 68, 52, 97, 37, 103, 70, 136, 94, 22, 102,\n\t\t36, 254, 129, 116, 221, 127, 104, 188, 156, 138, 95, 192,\n\t\t242, 7, 151, 208, 237, 149, 199, 222, 98, 210, 127, 79, 11,\n\t\t63, 245, 122, 116, 90, 96, 95, 97, 40, 240, 34, 43, 31, 216,\n\t\t110, 224, 53, 7, 12, 172, 191, 15, 72, 109, 213, 35, 6, 60,\n\t\t23, 194, 212, 98, 144, 90, 14, 179, 243, 82, 156, 249, 133,\n\t\t248, 63, 187, 16, 253, 80, 15, 110, 221, 48, 33, 133, 45,\n\t\t87, 20, 255, 222, 156, 45, 102, 112, 173, 110, 57, 80, 200,\n\t\t157, 237, 159, 254, 163, 89, 79, 225, 144, 64, 43, 18, 182,\n\t\t236, 193, 94, 102, 208, 28, 117, 115, 116, 163, 250, 3, 111,\n\t\t152, 74, 136, 3, 8, 12, 39, 167, 11, 7, 234, 10, 121, 227,\n\t\t147, 243, 43, 11, 11, 111, 34, 28, 108, 158, 172, 219, 19,\n\t\t105, 116, 161, 97, 157, 242, 229, 53, 26, 73, 133, 253, 91,\n\t\t157, 30, 254, 248, 247, 218, 109, 245, 35, 186, 241, 202,\n\t\t244, 84, 76, 44, 164, 216, 255, 208, 103, 157, 28, 220, 160,\n\t\t242, 230, 180, 31, 172, 241, 225, 187, 76, 157, 150, 25, 73,\n\t\t166, 185, 108, 52, 236, 145, 122, 135, 36, 241, 248, 117,\n\t\t195, 158, 171, 227, 87, 215, 234, 74, 222, 195, 200, 66, 174,\n\t\t35, 251, 47, 54, 229, 102, 97, 79, 106, 38, 204, 164, 101,\n\t\t67, 83, 55, 245, 181, 134, 186, 163, 88, 26, 36, 171, 157,\n\t\t253, 146, 144, 132, 51, 119, 97, 104, 48, 145, 72, 203, 180,\n\t\t173, 58, 185, 177, 179, 150, 103, 232, 14, 57, 44, 219, 147,\n\t\t60, 100, 168, 156, 221, 22, 149, 206, 75, 216, 134, 135, 177,\n\t\t244, 72, 167, 91, 27, 1, 140, 149, 179, 27, 86, 5, 204, 209,\n\t\t48, 116, 10, 79, 100, 205, 99, 197, 204, 96, 159, 124, 74,\n\t\t127, 236, 242, 140, 183, 245, 10, 34, 117, 69, 197, 141, 39,\n\t\t195, 173, 223, 199, 130, 173, 95, 66, 68, 149, 15, 54, 127,\n\t\t28, 139, 222, 130, 15, 220, 215, 236, 41, 190, 127, 247, 139,\n\t\t61, 199, 51, 174, 210, 76, 19, 102, 114, 188, 162, 0, 58,\n\t\t147, 13, 33, 54, 36, 144, 155, 198, 111, 65, 110, 72, 50,\n\t\t238, 77, 188, 112, 225, 155, 221, 51, 159, 216, 40, 5, 177,\n\t\t167, 56, 97, 43, 59, 196, 191, 196, 114, 132, 189, 88, 209,\n\t\t62, 209, 118, 161, 221, 70, 84, 64, 156, 80, 6, 26, 214, 233,\n\t\t45, 203, 35, 116, 5, 122, 168, 244, 249, 10, 232, 255, 133,\n\t\t88, 72, 123, 176, 151, 28, 168, 172, 43, 192, 34, 167, 185,\n\t\t106, 26, 47, 176, 141, 117, 129, 93, 83, 147, 148, 64, 123,\n\t\t135, 143, 232, 102, 68, 90, 224, 85, 137, 19, 204, 16, 67,\n\t\t79, 98, 104, 163, 155, 19, 173, 37, 143, 224, 29, 79, 161,\n\t\t141, 71, 47, 66, 218, 17, 174, 99, 79, 154, 119, 21, 218,\n\t\t232, 114, 91, 182, 150, 195, 242, 211, 6, 27, 247, 241, 220,\n\t\t122, 84, 184, 147, 2, 163, 76, 46, 255, 99, 70, 248, 143,\n\t\t179, 17, 188, 201, 130, 122, 47, 179, 61, 82, 135, 51, 40,\n\t\t33, 49, 183, 183, 151, 138, 68, 70, 215, 115, 142, 138, 131,\n\t\t169, 237, 72, 161, 31, 66, 51, 70, 124, 170, 208, 170, 129,\n\t\t222, 178, 32, 242, 218, 83, 246, 56, 12, 241, 126, 65, 210,\n\t\t69, 89, 32, 240, 24, 50, 248, 103, 238, 113, 190, 145, 205,\n\t\t207, 95, 186, 76, 245, 150, 185, 147, 49, 123, 21, 45, 133,\n\t\t158, 14, 74, 195, 60, 122, 30, 35, 99, 151, 116, 83, 34, 194,\n\t\t245, 87, 147, 206, 143, 250, 49, 177, 215, 145, 131, 74, 127,\n\t\t79, 145, 253, 54, 84, 69, 159, 195, 144, 236, 245, 232, 85,\n\t\t27, 25, 152, 103, 245, 52, 228, 101, 87, 69, 25, 67, 166,\n\t\t97, 242, 21, 54, 117, 82, 91, 37, 65, 241, 216, 79, 204, 227,\n\t\t38, 87, 213, 181, 249, 8, 56, 77, 38, 52, 235, 214, 254, 64,\n\t\t140, 60, 220, 88, 132, 171, 244, 243, 57, 80, 31, 144, 11,\n\t\t19, 139, 121, 47, 187, 175, 54, 104, 212, 28, 141, 27, 219,\n\t\t137, 163, 136, 67, 233, 199, 46, 255, 40, 48, 129, 72, 51,\n\t\t73, 252, 115, 197, 93, 105, 29, 31, 154, 226, 228, 47, 188,\n\t\t190, 67, 89, 129, 9, 185, 168, 87, 68, 98, 170, 61, 207, 171,\n\t\t146, 115, 224, 233, 142, 123, 66, 128, 249, 95, 1, 0, 0, 255,\n\t\t255, 80, 75, 7, 8, 191, 249, 97, 46, 151, 33, 1, 0, 16, 34,\n\t\t1, 0, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 13, 38, 75, 149, 58, 83, 0, 0, 136, 38, 2, 0, 21, 0, 9,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 0, 0, 0, 0, 99, 115,\n\t\t115, 47, 98, 111, 111, 116, 115, 116, 114, 97, 112, 46, 109,\n\t\t105, 110, 46, 99, 115, 115, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 171, 145, 110,\n\t\t82, 93, 143, 230, 168, 166, 11, 0, 0, 20, 43, 0, 0, 15, 0,\n\t\t9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 134, 83, 0, 0, 99,\n\t\t115, 115, 47, 100, 101, 102, 97, 117, 108, 116, 46, 99, 115,\n\t\t115, 85, 84, 5, 0, 1, 66, 82, 78, 96, 80, 75, 1, 2, 20, 3,\n\t\t20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 17, 161, 193, 106, 75,\n\t\t45, 0, 0, 88, 209, 0, 0, 19, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t0, 164, 129, 114, 95, 0, 0, 99, 115, 115, 47, 102, 111, 110,\n\t\t116, 97, 119, 101, 115, 111, 109, 101, 46, 99, 115, 115, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0,\n\t\t8, 0, 8, 0, 219, 146, 78, 82, 193, 162, 75, 117, 20, 13, 0,\n\t\t0, 190, 37, 0, 0, 11, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,\n\t\t129, 7, 141, 0, 0, 102, 97, 118, 105, 99, 111, 110, 46, 105,\n\t\t99, 111, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2,\n\t\t20, 3, 20, 0, 8, 0, 8, 0, 104, 144, 110, 82, 226, 236, 48,\n\t\t116, 8, 184, 0, 0, 231, 115, 2, 0, 9, 0, 9, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 164, 129, 93, 154, 0, 0, 106, 115, 47, 97, 112,\n\t\t112, 46, 106, 115, 85, 84, 5, 0, 1, 229, 79, 78, 96, 80, 75,\n\t\t1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 207, 6,\n\t\t66, 46, 55, 55, 0, 0, 95, 199, 0, 0, 19, 0, 9, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 164, 129, 165, 82, 1, 0, 106, 115, 47, 98,\n\t\t111, 111, 116, 115, 116, 114, 97, 112, 46, 109, 105, 110,\n\t\t46, 106, 115, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1,\n\t\t2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 243, 137, 25,\n\t\t201, 85, 6, 0, 0, 130, 19, 0, 0, 10, 0, 9, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 164, 129, 38, 138, 1, 0, 106, 115, 47, 105, 110,\n\t\t105, 116, 46, 106, 115, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82,\n\t\t252, 73, 101, 65, 196, 94, 0, 0, 29, 17, 1, 0, 27, 0, 9, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 188, 144, 1, 0, 106, 115,\n\t\t47, 106, 113, 117, 101, 114, 121, 45, 51, 46, 51, 46, 49,\n\t\t46, 115, 108, 105, 109, 46, 109, 105, 110, 46, 106, 115, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0,\n\t\t8, 0, 8, 0, 219, 146, 78, 82, 175, 118, 47, 205, 53, 28, 0,\n\t\t0, 113, 79, 0, 0, 16, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,\n\t\t129, 210, 239, 1, 0, 106, 115, 47, 112, 111, 112, 112, 101,\n\t\t114, 46, 109, 105, 110, 46, 106, 115, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219,\n\t\t146, 78, 82, 169, 210, 96, 101, 196, 8, 0, 0, 82, 32, 0, 0,\n\t\t18, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 78, 12, 2,\n\t\t0, 106, 115, 47, 115, 109, 111, 111, 116, 104, 115, 99, 114,\n\t\t111, 108, 108, 46, 106, 115, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 10, 222, 217, 32, 228, 88, 1, 0, 124, 251, 1, 0, 26, 0,\n\t\t9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 91, 21, 2, 0, 119,\n\t\t101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 98, 114,\n\t\t97, 110, 100, 115, 45, 52, 48, 48, 46, 101, 111, 116, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0,\n\t\t8, 0, 8, 0, 219, 146, 78, 82, 160, 30, 168, 222, 148, 130,\n\t\t3, 0, 55, 153, 10, 0, 26, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t164, 129, 144, 110, 3, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115, 45, 52,\n\t\t48, 48, 46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 189, 133, 202, 163, 90, 88, 1, 0, 76, 250, 1, 0, 26, 0,\n\t\t9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 117, 241, 6, 0, 119,\n\t\t101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 98, 114,\n\t\t97, 110, 100, 115, 45, 52, 48, 48, 46, 116, 116, 102, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0,\n\t\t8, 0, 8, 0, 219, 146, 78, 82, 140, 117, 150, 125, 168, 86,\n\t\t1, 0, 136, 86, 1, 0, 27, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t164, 129, 32, 74, 8, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 98, 114, 97, 110, 100, 115, 45, 52,\n\t\t48, 48, 46, 119, 111, 102, 102, 85, 84, 5, 0, 1, 127, 106,\n\t\t41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146,\n\t\t78, 82, 124, 212, 233, 161, 46, 36, 1, 0, 16, 36, 1, 0, 28,\n\t\t0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 26, 161, 9, 0,\n\t\t119, 101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 98,\n\t\t114, 97, 110, 100, 115, 45, 52, 48, 48, 46, 119, 111, 102,\n\t\t102, 50, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2,\n\t\t20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 211, 92, 216,\n\t\t143, 143, 66, 0, 0, 84, 134, 0, 0, 27, 0, 9, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 164, 129, 155, 197, 10, 0, 119, 101, 98, 102,\n\t\t111, 110, 116, 115, 47, 102, 97, 45, 114, 101, 103, 117, 108,\n\t\t97, 114, 45, 52, 48, 48, 46, 101, 111, 116, 85, 84, 5, 0,\n\t\t1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8,\n\t\t0, 219, 146, 78, 82, 202, 125, 76, 77, 231, 143, 0, 0, 67,\n\t\t52, 2, 0, 27, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 124,\n\t\t8, 11, 0, 119, 101, 98, 102, 111, 110, 116, 115, 47, 102,\n\t\t97, 45, 114, 101, 103, 117, 108, 97, 114, 45, 52, 48, 48,\n\t\t46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80,\n\t\t75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 32,\n\t\t129, 29, 216, 85, 66, 0, 0, 44, 133, 0, 0, 27, 0, 9, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 164, 129, 181, 152, 11, 0, 119, 101,\n\t\t98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 114, 101, 103,\n\t\t117, 108, 97, 114, 45, 52, 48, 48, 46, 116, 116, 102, 85,\n\t\t84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0,\n\t\t8, 0, 8, 0, 219, 146, 78, 82, 212, 44, 149, 100, 149, 65,\n\t\t0, 0, 164, 65, 0, 0, 28, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t164, 129, 92, 219, 11, 0, 119, 101, 98, 102, 111, 110, 116,\n\t\t115, 47, 102, 97, 45, 114, 101, 103, 117, 108, 97, 114, 45,\n\t\t52, 48, 48, 46, 119, 111, 102, 102, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219,\n\t\t146, 78, 82, 141, 169, 245, 12, 250, 52, 0, 0, 240, 52, 0,\n\t\t0, 29, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 68, 29,\n\t\t12, 0, 119, 101, 98, 102, 111, 110, 116, 115, 47, 102, 97,\n\t\t45, 114, 101, 103, 117, 108, 97, 114, 45, 52, 48, 48, 46,\n\t\t119, 111, 102, 102, 50, 85, 84, 5, 0, 1, 127, 106, 41, 96,\n\t\t80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82,\n\t\t165, 242, 94, 118, 148, 126, 1, 0, 104, 217, 2, 0, 25, 0,\n\t\t9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 146, 82, 12, 0, 119,\n\t\t101, 98, 102, 111, 110, 116, 115, 47, 102, 97, 45, 115, 111,\n\t\t108, 105, 100, 45, 57, 48, 48, 46, 101, 111, 116, 85, 84,\n\t\t5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8,\n\t\t0, 8, 0, 219, 146, 78, 82, 186, 161, 56, 51, 145, 104, 3,\n\t\t0, 30, 119, 12, 0, 25, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,\n\t\t129, 118, 209, 13, 0, 119, 101, 98, 102, 111, 110, 116, 115,\n\t\t47, 102, 97, 45, 115, 111, 108, 105, 100, 45, 57, 48, 48,\n\t\t46, 115, 118, 103, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80,\n\t\t75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 13,\n\t\t41, 164, 32, 17, 126, 1, 0, 76, 216, 2, 0, 25, 0, 9, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 164, 129, 87, 58, 17, 0, 119, 101, 98,\n\t\t102, 111, 110, 116, 115, 47, 102, 97, 45, 115, 111, 108, 105,\n\t\t100, 45, 57, 48, 48, 46, 116, 116, 102, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219,\n\t\t146, 78, 82, 124, 242, 40, 154, 30, 120, 1, 0, 0, 120, 1,\n\t\t0, 26, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 184, 184,\n\t\t18, 0, 119, 101, 98, 102, 111, 110, 116, 115, 47, 102, 97,\n\t\t45, 115, 111, 108, 105, 100, 45, 57, 48, 48, 46, 119, 111,\n\t\t102, 102, 85, 84, 5, 0, 1, 127, 106, 41, 96, 80, 75, 1, 2,\n\t\t20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 191, 249, 97,\n\t\t46, 151, 33, 1, 0, 16, 34, 1, 0, 27, 0, 9, 0, 0, 0, 0, 0,\n\t\t0, 0, 0, 0, 164, 129, 39, 49, 20, 0, 119, 101, 98, 102, 111,\n\t\t110, 116, 115, 47, 102, 97, 45, 115, 111, 108, 105, 100, 45,\n\t\t57, 48, 48, 46, 119, 111, 102, 102, 50, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 80, 75, 5, 6, 0, 0, 0, 0, 25, 0, 25, 0, 147,\n\t\t7, 0, 0, 16, 83, 21, 0, 0, 0,\n\t})\n}\n"
  },
  {
    "path": "gateway/templates/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n    <head>\n        <title>Main</title>\n\n        <!-- Bootstrap meta -->\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n\n        <!-- CSRF Source -->\n        <meta name=\"gorilla.csrf.Token\" content=\"{{.csrfToken}}\">\n\n        <!-- Websocket details -->\n        <meta name=\"brig.websocket.addr\" content=\"{{.wsAddr}}\">\n\n        <!-- HTTP details -->\n        <meta name=\"brig.http.addr\" content=\"{{.httpAddr}}\">\n\n        <!-- Style sheets -->\n        <link rel=\"stylesheet\" href=\"/css/bootstrap.min.css\" integrity=\"sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO\" crossorigin=\"anonymous\">\n        <link rel=\"stylesheet\" href=\"/css/fontawesome.css\" integrity=\"sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/\" crossorigin=\"anonymous\">\n        <link rel=\"stylesheet\" href=\"/css/default.css\">\n\n        <!-- Scripts -->\n        <script src=\"/js/jquery-3.3.1.slim.min.js\" integrity=\"sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo\" crossorigin=\"anonymous\"></script>\n        <script src=\"/js/popper.min.js\" integrity=\"sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49\" crossorigin=\"anonymous\"></script>\n        <script src=\"/js/bootstrap.min.js\" integrity=\"sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy\" crossorigin=\"anonymous\"></script>\n        <script src=\"/js/app.js\"></script>\n        <script src=\"/js/smoothscroll.js\"></script>\n    </head>\n    <body>\n        <div id=\"elm\">This page sadly needs JavaScript. Please enable it in your browser.</div>\n        <script src=\"/js/init.js\"></script>\n    </body>\n</html>\n"
  },
  {
    "path": "gateway/templates/package.go",
    "content": "package templates\n\n//go:generate parcello -r\n"
  },
  {
    "path": "gateway/templates/resource.go",
    "content": "// Code generated by parcello; DO NOT EDIT.\n\n// Package templates contains embedded resources\npackage templates\n\nimport \"github.com/phogolabs/parcello\"\n\nfunc init() {\n\tparcello.AddResource([]byte{\n\t\t80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 219, 146, 78, 82, 0, 0, 0,\n\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 9, 0, 105, 110, 100, 101,\n\t\t120, 46, 104, 116, 109, 108, 85, 84, 5, 0, 1, 127, 106, 41,\n\t\t96, 172, 149, 93, 111, 218, 62, 20, 198, 239, 251, 41, 60,\n\t\t223, 178, 36, 229, 165, 16, 36, 82, 137, 50, 88, 9, 80, 40,\n\t\t239, 229, 206, 137, 15, 196, 224, 216, 137, 109, 72, 211,\n\t\t105, 223, 253, 47, 64, 211, 186, 142, 86, 251, 107, 187, 138,\n\t\t253, 248, 248, 57, 63, 235, 177, 156, 198, 39, 42, 67, 147,\n\t\t39, 128, 34, 19, 243, 219, 171, 198, 241, 131, 56, 17, 27,\n\t\t15, 131, 192, 183, 87, 8, 33, 212, 136, 128, 208, 243, 240,\n\t\t52, 53, 204, 112, 184, 29, 16, 38, 26, 206, 121, 124, 245,\n\t\t115, 241, 147, 101, 161, 59, 41, 141, 54, 138, 36, 40, 6,\n\t\t67, 144, 101, 189, 218, 124, 82, 194, 136, 40, 13, 198, 195,\n\t\t123, 179, 182, 92, 252, 118, 89, 144, 24, 60, 124, 96, 144,\n\t\t37, 82, 25, 140, 66, 41, 12, 8, 227, 225, 140, 81, 19, 121,\n\t\t20, 14, 44, 4, 235, 52, 249, 140, 152, 96, 134, 17, 110, 233,\n\t\t144, 112, 240, 138, 159, 145, 142, 20, 19, 59, 203, 72, 107,\n\t\t205, 140, 39, 36, 126, 139, 215, 154, 140, 59, 104, 34, 247,\n\t\t42, 132, 11, 108, 231, 230, 27, 169, 24, 231, 196, 14, 181,\n\t\t90, 219, 83, 185, 3, 241, 10, 227, 219, 183, 147, 126, 146,\n\t\t191, 127, 255, 205, 127, 1, 129, 150, 225, 14, 12, 162, 96,\n\t\t8, 227, 250, 221, 46, 129, 98, 27, 59, 251, 81, 110, 19, 74,\n\t\t213, 175, 109, 50, 221, 164, 84, 93, 232, 113, 63, 157, 142,\n\t\t254, 204, 62, 50, 38, 185, 224, 124, 148, 223, 241, 158, 152,\n\t\t156, 3, 210, 17, 128, 121, 227, 205, 153, 216, 33, 5, 220,\n\t\t195, 250, 88, 115, 42, 193, 40, 82, 176, 246, 176, 19, 106,\n\t\t237, 4, 63, 146, 183, 99, 38, 236, 80, 107, 140, 152, 48,\n\t\t176, 81, 204, 228, 30, 214, 17, 41, 187, 21, 107, 208, 202,\n\t\t234, 174, 51, 233, 136, 175, 109, 119, 237, 79, 203, 95, 151,\n\t\t89, 123, 40, 54, 122, 94, 91, 153, 82, 237, 97, 217, 145,\n\t\t68, 54, 147, 248, 41, 118, 139, 108, 191, 148, 163, 93, 103,\n\t\t232, 103, 190, 219, 30, 211, 157, 232, 143, 6, 67, 140, 66,\n\t\t37, 181, 150, 138, 109, 152, 240, 48, 17, 82, 228, 177, 220,\n\t\t107, 252, 127, 72, 215, 82, 24, 146, 129, 150, 49, 188, 199,\n\t\t57, 187, 31, 155, 85, 191, 91, 72, 130, 103, 115, 223, 90,\n\t\t36, 69, 83, 171, 221, 177, 98, 191, 178, 50, 44, 85, 233,\n\t\t23, 247, 186, 39, 42, 43, 247, 97, 58, 25, 231, 131, 102,\n\t\t169, 67, 203, 101, 113, 67, 31, 93, 190, 152, 181, 175, 175,\n\t\t181, 243, 79, 56, 41, 172, 201, 158, 155, 19, 227, 111, 65,\n\t\t133, 138, 37, 111, 51, 210, 39, 17, 105, 21, 122, 216, 217,\n\t\t106, 103, 155, 238, 65, 229, 86, 217, 46, 219, 69, 91, 115,\n\t\t22, 159, 162, 217, 94, 60, 113, 234, 50, 103, 89, 168, 87,\n\t\t111, 190, 188, 12, 175, 213, 180, 70, 130, 94, 165, 232, 79,\n\t\t204, 99, 183, 153, 206, 55, 227, 249, 75, 18, 188, 200, 27,\n\t\t29, 47, 123, 73, 229, 105, 61, 62, 220, 23, 92, 18, 152, 105,\n\t\t187, 56, 98, 213, 45, 123, 145, 239, 159, 184, 225, 156, 185,\n\t\t62, 0, 77, 100, 146, 128, 250, 128, 110, 53, 24, 213, 212,\n\t\t92, 150, 227, 110, 190, 155, 23, 74, 133, 186, 95, 158, 249,\n\t\t149, 234, 246, 110, 119, 189, 232, 147, 89, 147, 138, 170,\n\t\t91, 39, 173, 76, 166, 193, 157, 207, 38, 98, 219, 236, 57,\n\t\t220, 93, 28, 90, 139, 81, 119, 20, 87, 234, 127, 69, 247,\n\t\t235, 205, 190, 12, 216, 138, 214, 105, 250, 188, 95, 205,\n\t\t90, 194, 159, 244, 202, 133, 193, 50, 30, 61, 116, 243, 118,\n\t\t117, 21, 44, 162, 82, 119, 144, 182, 75, 149, 162, 122, 98,\n\t\t169, 255, 156, 15, 216, 170, 58, 92, 56, 126, 188, 122, 188,\n\t\t209, 38, 107, 207, 250, 211, 252, 175, 0, 73, 146, 28, 177,\n\t\t254, 164, 84, 199, 82, 154, 72, 135, 74, 114, 126, 97, 79,\n\t\t195, 249, 249, 224, 55, 2, 73, 243, 87, 86, 148, 29, 16, 163,\n\t\t30, 6, 30, 227, 219, 105, 196, 52, 74, 200, 6, 144, 38, 148,\n\t\t231, 72, 0, 80, 141, 124, 114, 32, 231, 155, 105, 163, 17,\n\t\t7, 162, 1, 129, 32, 1, 7, 196, 12, 98, 2, 229, 114, 175, 80,\n\t\t160, 100, 166, 65, 217, 13, 135, 178, 195, 7, 168, 199, 215,\n\t\t253, 34, 226, 153, 171, 225, 156, 255, 91, 255, 5, 0, 0, 255,\n\t\t255, 80, 75, 7, 8, 180, 171, 193, 205, 19, 3, 0, 0, 200, 6,\n\t\t0, 0, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 219, 146, 78,\n\t\t82, 180, 171, 193, 205, 19, 3, 0, 0, 200, 6, 0, 0, 10, 0,\n\t\t9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 0, 0, 0, 0, 105, 110,\n\t\t100, 101, 120, 46, 104, 116, 109, 108, 85, 84, 5, 0, 1, 127,\n\t\t106, 41, 96, 80, 75, 5, 6, 0, 0, 0, 0, 1, 0, 1, 0, 65, 0,\n\t\t0, 0, 84, 3, 0, 0, 0, 0,\n\t})\n}\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/sahib/brig\n\ngo 1.15\n\nrequire (\n\tbazil.org/fuse v0.0.0-20200524192727-fb710f7dfd05\n\tgithub.com/NYTimes/gziphandler v1.1.1\n\tgithub.com/VividCortex/ewma v1.1.1 // indirect\n\tgithub.com/alokmenghrajani/gpgeez v0.0.0-20161206084504-1a06f1c582f9\n\tgithub.com/blang/semver v3.5.1+incompatible\n\tgithub.com/brianvoe/gofakeit/v6 v6.0.0\n\tgithub.com/btcsuite/btcd v0.21.0-beta // indirect\n\tgithub.com/chzyer/logex v1.1.10 // indirect\n\tgithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e\n\tgithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 // indirect\n\tgithub.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect\n\tgithub.com/dgraph-io/badger/v3 v3.2011.1\n\tgithub.com/djherbis/buffer v1.1.0\n\tgithub.com/dustin/go-humanize v1.0.0\n\tgithub.com/fatih/color v1.10.0\n\tgithub.com/golang/protobuf v1.4.3 // indirect\n\tgithub.com/golang/snappy v0.0.2\n\tgithub.com/google/go-cmp v0.5.4 // indirect\n\tgithub.com/gorilla/csrf v1.7.0\n\tgithub.com/gorilla/mux v1.8.0\n\tgithub.com/gorilla/securecookie v1.1.1\n\tgithub.com/gorilla/sessions v1.2.1\n\tgithub.com/gorilla/websocket v1.4.2\n\tgithub.com/ipfs/go-ipfs-api v0.2.0\n\tgithub.com/ipfs/go-ipfs-util v0.0.2\n\tgithub.com/klauspost/compress v1.11.7\n\tgithub.com/klauspost/cpuid/v2 v2.0.3\n\tgithub.com/kr/pretty v0.2.1 // indirect\n\tgithub.com/libp2p/go-libp2p-core v0.8.0 // indirect\n\tgithub.com/mattn/go-isatty v0.0.12\n\tgithub.com/mitchellh/go-homedir v1.1.0\n\tgithub.com/mr-tron/base58 v1.2.0\n\tgithub.com/multiformats/go-multiaddr v0.3.1\n\tgithub.com/multiformats/go-multihash v0.0.14\n\tgithub.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88\n\tgithub.com/patrickmn/go-cache v2.1.0+incompatible\n\tgithub.com/phogolabs/parcello v0.8.2\n\tgithub.com/pierrec/lz4/v4 v4.1.3\n\tgithub.com/pkg/errors v0.9.1\n\tgithub.com/pkg/xattr v0.4.3\n\tgithub.com/posener/wstest v0.0.0-20180217133618-28272a7ea048\n\tgithub.com/russross/blackfriday/v2 v2.1.0 // indirect\n\tgithub.com/sahib/config v0.2.0\n\tgithub.com/sdemontfort/go-mimemagic v0.0.0-20150708072242-d026a5785116\n\tgithub.com/sirupsen/logrus v1.7.0\n\tgithub.com/stretchr/testify v1.6.1\n\tgithub.com/tinylib/msgp v1.1.5 // indirect\n\tgithub.com/toqueteos/webbrowser v1.2.0\n\tgithub.com/ulule/limiter v2.2.2+incompatible\n\tgithub.com/urfave/cli v1.22.5\n\tgithub.com/vbauerster/mpb v3.4.0+incompatible\n\tgithub.com/wayneashleyberry/terminal-dimensions v1.0.0\n\tgithub.com/whyrusleeping/tar-utils v0.0.0-20201201191210-20a61371de5b // indirect\n\tgithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673\n\tgolang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad\n\tgolang.org/x/net v0.0.0-20201224014010-6772e930b67b\n\tgolang.org/x/sys v0.0.0-20201223074533-0d417f636930\n\tgolang.org/x/term v0.0.0-20201210144234-2321bbc49cbf // indirect\n\tgolang.org/x/text v0.3.4\n\tgolang.org/x/time v0.0.0-20201208040808-7e3f01d25324\n\tgoogle.golang.org/protobuf v1.25.0 // indirect\n\tgopkg.in/djherbis/nio.v2 v2.0.3\n\tgopkg.in/yaml.v2 v2.4.0\n\tgopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect\n\tzombiezen.com/go/capnproto2 v2.18.0+incompatible\n)\n"
  },
  {
    "path": "go.sum",
    "content": "bazil.org/fuse v0.0.0-20200524192727-fb710f7dfd05 h1:UrYe9YkT4Wpm6D+zByEyCJQzDqTPXqTDUI7bZ41i9VE=\nbazil.org/fuse v0.0.0-20200524192727-fb710f7dfd05/go.mod h1:h0h5FBYpXThbvSfTqthw+0I4nmHnhTHkO5BoOHsBWqg=\ncloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM=\ngithub.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=\ngithub.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=\ngithub.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM=\ngithub.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA=\ngithub.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=\ngithub.com/alokmenghrajani/gpgeez v0.0.0-20161206084504-1a06f1c582f9 h1:Zio/mdDEpJDG1yeH9y2Kcb9ATWXkE7WIBkO+IMqRbbM=\ngithub.com/alokmenghrajani/gpgeez v0.0.0-20161206084504-1a06f1c582f9/go.mod h1:u65XFfs2+s//7QVkp5Q1NEZl4zVep2BtubxiSXJERN8=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/aws/aws-sdk-go v1.25.43/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=\ngithub.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=\ngithub.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=\ngithub.com/blang/vfs v1.0.0 h1:AUZUgulCDzbaNjTRWEP45X7m/J10brAptZpSRKRZBZc=\ngithub.com/blang/vfs v1.0.0/go.mod h1:jjuNUc/IKcRNNWC9NUCvz4fR9PZLPIKxEygtPs/4tSI=\ngithub.com/brianvoe/gofakeit/v6 v6.0.0 h1:3T2WNkEakjqZQEC52ciHNlDVyNA5m2dzUXAwdBVHgPU=\ngithub.com/brianvoe/gofakeit/v6 v6.0.0/go.mod h1:palrJUk4Fyw38zIFB/uBZqsgzW5VsNllhHKKwAebzew=\ngithub.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=\ngithub.com/btcsuite/btcd v0.21.0-beta h1:At9hIZdJW0s9E/fAz28nrz6AmcNlSVucCH796ZteX1M=\ngithub.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94=\ngithub.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=\ngithub.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=\ngithub.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts=\ngithub.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=\ngithub.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=\ngithub.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=\ngithub.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=\ngithub.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=\ngithub.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=\ngithub.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=\ngithub.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=\ngithub.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=\ngithub.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=\ngithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8=\ngithub.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=\ngithub.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 h1:HVTnpeuvF6Owjd5mniCL8DEXo7uYXdQEmOP4FJbV5tg=\ngithub.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/daaku/go.zipexe v1.0.1 h1:wV4zMsDOI2SZ2m7Tdz1Ps96Zrx+TzaK15VbUaGozw0M=\ngithub.com/daaku/go.zipexe v1.0.1/go.mod h1:5xWogtqlYnfBXkSB1o9xysukNP9GTvaNkqzUZbt3Bw8=\ngithub.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=\ngithub.com/dgraph-io/badger/v3 v3.2011.1 h1:Hmyof0WMEF/QtutX5SQHzIMnJQxb/IrSzhjckV2SD6g=\ngithub.com/dgraph-io/badger/v3 v3.2011.1/go.mod h1:0rLLrQpKVQAL0or/lBLMQznhr6dWWX7h5AKnmnqx268=\ngithub.com/dgraph-io/ristretto v0.0.4-0.20210122082011-bb5d392ed82d h1:eQYOG6A4td1tht0NdJB9Ls6DsXRGb2Ft6X9REU/MbbE=\ngithub.com/dgraph-io/ristretto v0.0.4-0.20210122082011-bb5d392ed82d/go.mod h1:tv2ec8nA7vRpSYX7/MbP52ihrUMXIHit54CQMq8npXQ=\ngithub.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=\ngithub.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=\ngithub.com/djherbis/buffer v1.1.0 h1:uGQ+DZDAMlfC2z3khbBtLcAHC0wyoNrX9lpOml3g3fg=\ngithub.com/djherbis/buffer v1.1.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=\ngithub.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=\ngithub.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=\ngithub.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=\ngithub.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=\ngithub.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg=\ngithub.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=\ngithub.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/go-delve/delve v1.5.0/go.mod h1:c6b3a1Gry6x8a4LGCe/CWzrocrfaHvkUxCj3k4bvSUQ=\ngithub.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=\ngithub.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I=\ngithub.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=\ngithub.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=\ngithub.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=\ngithub.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=\ngithub.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=\ngithub.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=\ngithub.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=\ngithub.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=\ngithub.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw=\ngithub.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=\ngithub.com/google/flatbuffers v1.12.0 h1:/PtAHvnBY4Kqnx/xCQ3OIV9uYcSFGScBsWI3Oogeh6w=\ngithub.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=\ngithub.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-dap v0.2.0/go.mod h1:5q8aYQFnHOAZEMP+6vmq25HKYAEwE+LF5yh7JKrrhSQ=\ngithub.com/gorilla/csrf v1.7.0 h1:mMPjV5/3Zd460xCavIkppUdvnl5fPXMpv2uz2Zyg7/Y=\ngithub.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA=\ngithub.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=\ngithub.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=\ngithub.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=\ngithub.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=\ngithub.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=\ngithub.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=\ngithub.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=\ngithub.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=\ngithub.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY=\ngithub.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=\ngithub.com/ipfs/go-ipfs-api v0.2.0 h1:BXRctUU8YOUOQT/jW1s56d9wLa85ntOqK6bptvCKb8c=\ngithub.com/ipfs/go-ipfs-api v0.2.0/go.mod h1:zCTyTl+BuyvUqoSmVb8vjezCJLVTW7G/HBZbCXpTgeM=\ngithub.com/ipfs/go-ipfs-files v0.0.8 h1:8o0oFJkJ8UkO/ABl8T6ac6tKF3+NIpj67aAB6ZpusRg=\ngithub.com/ipfs/go-ipfs-files v0.0.8/go.mod h1:wiN/jSG8FKyk7N0WyctKSvq3ljIa2NNTiZB55kpTdOs=\ngithub.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8=\ngithub.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ=\ngithub.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA=\ngithub.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=\ngithub.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=\ngithub.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=\ngithub.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=\ngithub.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=\ngithub.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=\ngithub.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=\ngithub.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg=\ngithub.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=\ngithub.com/klauspost/cpuid/v2 v2.0.3 h1:DNljyrHyxlkk8139OXIAAauCwV8eQGDD6Z8YqnDXdZw=\ngithub.com/klauspost/cpuid/v2 v2.0.3/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs=\ngithub.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM=\ngithub.com/libp2p/go-flow-metrics v0.0.3 h1:8tAs/hSdNvUiLgtlSy3mxwxWP4I9y/jlkPFT7epKdeM=\ngithub.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs=\ngithub.com/libp2p/go-libp2p-core v0.6.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=\ngithub.com/libp2p/go-libp2p-core v0.8.0 h1:5K3mT+64qDTKbV3yTdbMCzJ7O6wbNsavAEb8iqBvBcI=\ngithub.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=\ngithub.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU=\ngithub.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA=\ngithub.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGNsw=\ngithub.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=\ngithub.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=\ngithub.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=\ngithub.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=\ngithub.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=\ngithub.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=\ngithub.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=\ngithub.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=\ngithub.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=\ngithub.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=\ngithub.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=\ngithub.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mmcloughlin/avo v0.0.0-20201105074841-5d2f697d268f/go.mod h1:6aKT4zZIrpGqB3RpFU14ByCSSyKY6LfJz4J/JJChHfI=\ngithub.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=\ngithub.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=\ngithub.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=\ngithub.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=\ngithub.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI=\ngithub.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=\ngithub.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4=\ngithub.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=\ngithub.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y=\ngithub.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI=\ngithub.com/multiformats/go-multiaddr v0.3.1 h1:1bxa+W7j9wZKTZREySx1vPMs2TqrYWjVZ7zE6/XLG1I=\ngithub.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc=\ngithub.com/multiformats/go-multiaddr-net v0.2.0 h1:MSXRGN0mFymt6B1yo/6BPnIRpLPEnKgQNvVfCX5VDJk=\ngithub.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA=\ngithub.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk=\ngithub.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc=\ngithub.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=\ngithub.com/multiformats/go-multihash v0.0.14 h1:QoBceQYQQtNUuf6s7wHxnE2c8bhbMqhfGzNI032se/I=\ngithub.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=\ngithub.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=\ngithub.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=\ngithub.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88 h1:o+O3Cd1HO9CTgxE3/C8p5I5Y4C0yYWbF8d4IkfOLtcQ=\ngithub.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY=\ngithub.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=\ngithub.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=\ngithub.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=\ngithub.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=\ngithub.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/peterh/liner v0.0.0-20170317030525-88609521dc4b/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=\ngithub.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ=\ngithub.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=\ngithub.com/phogolabs/cli v0.0.0-20191212161310-ce689d871370/go.mod h1:grzrc/EIac+v5wd6EjBB4a9obKGGIdsgWhPIsqjBGLo=\ngithub.com/phogolabs/parcello v0.8.1/go.mod h1:/HlY+yKSdyM8MUX9YvwT3+sED9SKXizc5zfuHDh6+to=\ngithub.com/phogolabs/parcello v0.8.2 h1:XFNJw82IXEARNHFXh2FlsVOOEwjIQkoeKmgNRyH7264=\ngithub.com/phogolabs/parcello v0.8.2/go.mod h1:rtKgAK1yF6KZOllQDfcHvOzYYwV3kCt61LJybif3SCE=\ngithub.com/pierrec/lz4/v4 v4.1.3 h1:/dvQpkb0o1pVlSgKNQqfkavlnXaIK+hJ0LXsKRUN9D4=\ngithub.com/pierrec/lz4/v4 v4.1.3/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/xattr v0.4.3 h1:5Jx4GCg5ABtqWZH8WLzeI4fOtM1HyX4RBawuCoua1es=\ngithub.com/pkg/xattr v0.4.3/go.mod h1:sBD3RAqlr8Q+RC3FutZcikpT8nyDrIEEBw2J744gVWs=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/posener/wstest v0.0.0-20180217133618-28272a7ea048 h1:XJ1bEwzKDbW33q703QCy580ZEqT2/hXTrU5sUYZf5LI=\ngithub.com/posener/wstest v0.0.0-20180217133618-28272a7ea048/go.mod h1:cjC8eRbwXrr5m2069dsjp7l7b0gWqFwMTUBDLNvVqho=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=\ngithub.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/sahib/config v0.2.0 h1:wdUC7PKeaHhN+9nLfuN3DkPllzGQc4bsFDg5El5ngz0=\ngithub.com/sahib/config v0.2.0/go.mod h1:BdxJ2ls9EpvLPX8Ql6Wagqiz/6Ysh93EJt0j9EKqIpc=\ngithub.com/sdemontfort/go-mimemagic v0.0.0-20150708072242-d026a5785116 h1:jzyvoTYAiryRneCJGQUQJUjbVrmz8lxOaVe/a0ZMq64=\ngithub.com/sdemontfort/go-mimemagic v0.0.0-20150708072242-d026a5785116/go.mod h1:thqX5LmtQKCS+jPMYrorba/GB3YjfZfeLfg8+C6rFTs=\ngithub.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=\ngithub.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=\ngithub.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=\ngithub.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=\ngithub.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU=\ngithub.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=\ngithub.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.0-20170417170307-b6cb39589372/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v0.0.0-20170417173400-9e4c21054fa1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=\ngithub.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/tinylib/msgp v1.1.5 h1:2gXmtWueD2HefZHQe1QOy9HVzmFrLOVvsXwXBQ0ayy0=\ngithub.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg=\ngithub.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9rrstGQ=\ngithub.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM=\ngithub.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q=\ngithub.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ=\ngithub.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=\ngithub.com/twitchyliquid64/golang-asm v0.15.0/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/ulule/limiter v2.2.2+incompatible h1:1lk9jesmps1ziYHHb4doL7l5hFkYYYA3T8dkNyw7ffY=\ngithub.com/ulule/limiter v2.2.2+incompatible/go.mod h1:VJx/ZNGmClQDS5F6EmsGqK8j3jz1qJYZ6D9+MdAD+kw=\ngithub.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU=\ngithub.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=\ngithub.com/vbauerster/mpb v3.4.0+incompatible h1:mfiiYw87ARaeRW6x5gWwYRUawxaW1tLAD8IceomUCNw=\ngithub.com/vbauerster/mpb v3.4.0+incompatible/go.mod h1:zAHG26FUhVKETRu+MWqYXcI70POlC6N8up9p1dID7SU=\ngithub.com/wayneashleyberry/terminal-dimensions v1.0.0 h1:LawtS1nqKjAfqrmKOzkcrDLAjSzh38lEhC401JPjQVA=\ngithub.com/wayneashleyberry/terminal-dimensions v1.0.0/go.mod h1:PW2XrtV6KmKOPhuf7wbtcmw1/IFnC39mryRET2XbxeE=\ngithub.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c/go.mod h1:xxcJeBb7SIUl/Wzkz1eVKJE/CB34YNrqX2TQI6jY9zs=\ngithub.com/whyrusleeping/tar-utils v0.0.0-20201201191210-20a61371de5b h1:wA3QeTsaAXybLL2kb2cKhCAQTHgYTMwuI8lBlJSv5V8=\ngithub.com/whyrusleeping/tar-utils v0.0.0-20201201191210-20a61371de5b/go.mod h1:xT1Y5p2JR2PfSZihE0s4mjdJaRGp1waCTf5JzhQLBck=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=\ngithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=\ngithub.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngo.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=\ngo.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0=\ngo.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=\ngo.starlark.net v0.0.0-20190702223751-32f345186213/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg=\ngolang.org/x/arch v0.0.0-20190927153633-4e8777c89be4/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=\ngolang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=\ngolang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY=\ngolang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw=\ngolang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201223074533-0d417f636930 h1:vRgIt+nup/B/BwIS0g2oC0haq0iqbV3ZA+u6+0TlNCo=\ngolang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/term v0.0.0-20201210144234-2321bbc49cbf h1:MZ2shdL+ZM/XzY3ZGOnh4Nlpnxz5GSOhOmtHo3iPU6M=\ngolang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=\ngolang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE=\ngolang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191127201027-ecd32218bd7f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200423201157-2723c5de0d66/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=\ngolang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/tools v0.0.0-20201105001634-bc3cf281b174/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=\ngoogle.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=\ngoogle.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=\ngoogle.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=\ngoogle.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=\ngoogle.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=\ngoogle.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=\ngoogle.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/djherbis/nio.v2 v2.0.3 h1:GV76XfYUQjScV0wVKruEyqN48jrng+g63ckfkDOnlHA=\ngopkg.in/djherbis/nio.v2 v2.0.3/go.mod h1:APzEZFGm9Q+QzSl8yResRU/4xnWJtY3onKsxwnQdeNM=\ngopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=\ngopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nrsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=\nzombiezen.com/go/capnproto2 v2.18.0+incompatible h1:mwfXZniffG5mXokQGHUJWGnqIBggoPfT/CEwon9Yess=\nzombiezen.com/go/capnproto2 v2.18.0+incompatible/go.mod h1:XO5Pr2SbXgqZwn0m0Ru54QBqpOf4K5AYBO+8LAOBQEQ=\n"
  },
  {
    "path": "net/authrw.go",
    "content": "package net\n\nimport (\n\t\"bytes\"\n\t\"crypto/aes\"\n\t\"crypto/cipher\"\n\t\"crypto/hmac\"\n\t\"crypto/rand\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/util\"\n\n\t\"golang.org/x/crypto/openpgp\"\n\t\"golang.org/x/crypto/sha3\"\n)\n\nconst (\n\t// nonceSize is the size in bytes of the challenge we send to the remote\n\tnonceSize = 62\n\t// MaxMessageSize is the max size of a messsage that can be send to us.\n\t// The limit is arbitrary and should avoid being spammed by huge messages.\n\t// (Later on we could also implement a proper streaming protocol)\n\tMaxMessageSize = 16 * 1024 * 1024\n)\n\n// PrivDecrypter is anything that can decrypt a message\n// that was previously encrypted with a public key.\ntype PrivDecrypter interface {\n\tDecrypt(data []byte) ([]byte, error)\n}\n\n// RemoteChecker is a function that is called once the public key\n// of the remote has been received. If an error is returned,\n// the authentication will fail. Use this to check the remote's public key\n// against the fingerprint we store of it.\ntype RemoteChecker func(remotePubKey []byte) error\n\n// AuthReadWriter acts as a layer on top of a normal io.ReadWriteCloser\n// that adds authentication of the communication partners.\n// It does this by employing the following protocol:\n//\n// 1) Upon opening the connection, the public keys of both partners\n//    are exchanged. The received public key is hashed and checked to\n//    be the same as the fingerprint we're storing from this person.\n//    (This should suffice as authentication of the remote user)\n//\n// 2) A random nonce of 62 bytes is generated and encrypted with the\n//    remote's public key. The resulting ciphertext is then send to the\n//    remote. On their side they decrypt the ciphertext (proving that\n//    they possess the respective private key).\n//\n// 3) The resulting nonce from the remote is then hashed with sha3\n//    and send back. Each sides check if the response matched the challenge.\n//    If so, the user is authenticated. The nonces are then used to\n//    generate a symmetric key (using scrypt) which is then used to encrypt\n//    further communication and to authenticate messages.\n//\n// 4) Further communication writes messages with a hmac, a 4 byte size header\n//    and the actual payload.\ntype AuthReadWriter struct {\n\t// Raw underlying network connection\n\trwc io.ReadWriteCloser\n\n\t// The data of our public key\n\townPubKey []byte\n\n\t// The name we advertise to the remote\n\townName string\n\n\t// The name remote advertised to us\n\tremoteName string\n\n\t// The remote's public key, once received (nil before)\n\tremotePubKey []byte\n\n\t// privKey is capable of decrypting a message send to us.\n\tprivKey PrivDecrypter\n\n\t// Checker callback to authenticate remote's public key\n\tremoteChecker RemoteChecker\n\n\t// encrypted read writer\n\tcryptedRW io.ReadWriter\n\n\t// Symmetric key used to encrypt/verify after authentication\n\tsymkey []byte\n\n\t// Set to true after the remote was authenticated\n\tauthorised bool\n\n\t// buffer to implement io.Reader's streaming properties\n\treadBuf *bytes.Buffer\n}\n\n// NewAuthReadWriter returns a new AuthReadWriter, adding an auth layer on top\n// of `rwc`. `privKey` is used to decrypt the remote's challenge, while\n// `ownPubKey` is the pub key we send to them. `remoteChecker` is a callback\n// that is being used by the user to verify if the remote's public key\n// is the one we're expecting.\nfunc NewAuthReadWriter(\n\trwc io.ReadWriteCloser,\n\tprivKey PrivDecrypter,\n\townPubKey []byte,\n\townName string,\n\tremoteChecker RemoteChecker,\n) *AuthReadWriter {\n\treturn &AuthReadWriter{\n\t\trwc:           rwc,\n\t\tprivKey:       privKey,\n\t\townPubKey:     ownPubKey,\n\t\townName:       ownName,\n\t\treadBuf:       &bytes.Buffer{},\n\t\tremoteChecker: remoteChecker,\n\t}\n}\n\n// IsAuthorised will return true if the partner was successfully authenticated.\n// It will return false if no call to Read() or Write() was made.\nfunc (ath *AuthReadWriter) IsAuthorised() bool {\n\treturn ath.authorised\n}\n\n// writeSizePack prefixes a datablock by it's binary size\nfunc writeSizePack(w io.Writer, data []byte) (int, error) {\n\tpack := make([]byte, 8)\n\tbinary.LittleEndian.PutUint64(pack, uint64(len(data)))\n\n\tif n, err := w.Write(append(pack, data...)); err != nil {\n\t\treturn n, err\n\t}\n\n\treturn len(pack) + len(data), nil\n}\n\n// readSizePack reads a 8 byte size prefix and return the following data block.\n// If the block appears too large, it will error out.\nfunc readSizePack(r io.Reader) ([]byte, error) {\n\tsizeBuf := make([]byte, 8)\n\tif _, err := io.ReadFull(r, sizeBuf); err != nil {\n\t\treturn nil, err\n\t}\n\n\tsize := binary.LittleEndian.Uint64(sizeBuf)\n\n\t// Protect against unreasonable sizes:\n\tif size > 4096 {\n\t\treturn nil, fmt.Errorf(\"Auth package is oversized: %d\", size)\n\t}\n\n\tbuf := make([]byte, size)\n\tif _, err := io.ReadAtLeast(r, buf, int(size)); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn buf, nil\n}\n\n// encryptWithPubKey encrypted `data` with the key serialized in `pubKeyData`.\nfunc encryptWithPubKey(data, pubKeyData []byte) ([]byte, error) {\n\t// Load their pubkey from memory:\n\tents, err := openpgp.ReadKeyRing(bytes.NewReader(pubKeyData))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tencBuf := &bytes.Buffer{}\n\tencW, err := openpgp.Encrypt(encBuf, ents, nil, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif _, err := encW.Write(data); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := encW.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn encBuf.Bytes(), nil\n}\n\n// RemotePubKey returns the partner's public key, if it was authorised already.\n// Otherwise an error will be returned.\nfunc (ath *AuthReadWriter) RemotePubKey() []byte {\n\treturn ath.remotePubKey\n}\n\n// RemoteName returns the remote's screen name.\n// Note that this name only serves as indication for display\n// and should not be relied on since it can be easily faked.\nfunc (ath *AuthReadWriter) RemoteName() string {\n\treturn ath.remoteName\n}\n\n// wrap a normal io.ReadWriter into an AES encrypted tunnel.\nfunc wrapEncryptedRW(iv, key []byte, rw io.ReadWriter) (io.ReadWriter, error) {\n\tblockCipher, err := aes.NewCipher(key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tstreamW := &cipher.StreamWriter{\n\t\tS: cipher.NewCFBEncrypter(blockCipher, iv),\n\t\tW: rw,\n\t}\n\n\tstreamR := &cipher.StreamReader{\n\t\tS: cipher.NewCFBDecrypter(blockCipher, iv),\n\t\tR: rw,\n\t}\n\n\treturn struct {\n\t\tio.Reader\n\t\tio.Writer\n\t}{\n\t\tReader: streamR,\n\t\tWriter: streamW,\n\t}, nil\n}\n\n// runAuth runs the protocol pointed out above.\nfunc (ath *AuthReadWriter) runAuth() error {\n\tif _, err := writeSizePack(ath.rwc, []byte(ath.ownName)); err != nil {\n\t\treturn err\n\t}\n\n\t// Write our own pubkey down the line:\n\tif _, err := writeSizePack(ath.rwc, ath.ownPubKey); err != nil {\n\t\treturn err\n\t}\n\n\t// Read the advertised remote name.\n\t// (malicious partners could fake whatever name here,\n\t//  but we do not rely on the name)\n\tremoteName, err := readSizePack(ath.rwc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tath.remoteName = string(remoteName)\n\n\t// Read their pubkey:\n\tremotePubKey, err := readSizePack(ath.rwc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the hash of the remote pub key matches the fingerprint we have.\n\t// This is the single most important assertion, because we will accept any\n\t// valid keypair otherwise.\n\tif err := ath.remoteChecker(remotePubKey); err != nil {\n\t\treturn err\n\t}\n\n\tath.remotePubKey = remotePubKey\n\n\t// Generate our own nonce:\n\trA := make([]byte, nonceSize)\n\tif _, err := io.ReadFull(rand.Reader, rA); err != nil {\n\t\treturn err\n\t}\n\n\t// Send our challenge encrypted with remote's public key.\n\tchlForBob, err := encryptWithPubKey(rA, remotePubKey)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := writeSizePack(ath.rwc, chlForBob); err != nil {\n\t\treturn err\n\t}\n\n\t// Read their challenge (nonce encrypted with our pubkey)\n\tchlFromBob, err := readSizePack(ath.rwc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// nonceFromBob is their nonce:\n\tnonceFromBob, err := ath.privKey.Decrypt(chlFromBob)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(nonceFromBob) != nonceSize {\n\t\treturn fmt.Errorf(\n\t\t\t\"Bad nonce size from partner: %d (not %d)\",\n\t\t\tlen(nonceFromBob),\n\t\t\tnonceSize,\n\t\t)\n\t}\n\n\t// Send back our challenge-response\n\trespHash := sha3.Sum512(nonceFromBob)\n\tif _, err := ath.rwc.Write(respHash[:]); err != nil {\n\t\treturn err\n\t}\n\n\t// Read the response from bob to our challenge\n\thashFromBob := make([]byte, 512/8)\n\tif _, err := io.ReadFull(ath.rwc, hashFromBob); err != nil {\n\t\treturn err\n\t}\n\n\townHash := sha3.Sum512(rA)\n\tif !bytes.Equal(hashFromBob, ownHash[:]) {\n\t\treturn fmt.Errorf(\"Bad nonce; might communicate with imposter\")\n\t}\n\n\tkeySource := make([]byte, nonceSize)\n\tfor i := range keySource {\n\t\tkeySource[i] = nonceFromBob[i] ^ rA[i]\n\t}\n\n\tkey := util.DeriveKey(keySource, keySource[:nonceSize/2], 32)\n\tinv := util.DeriveKey(keySource, keySource[nonceSize/2:], aes.BlockSize)\n\n\trw, err := wrapEncryptedRW(inv, key, ath.rwc)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tath.symkey = key\n\tath.cryptedRW = rw\n\tath.authorised = true\n\treturn nil\n}\n\n// Trigger the authentication machinery manually.\nfunc (ath *AuthReadWriter) Trigger() error {\n\tif !ath.IsAuthorised() {\n\t\tif err := ath.runAuth(); err != nil {\n\t\t\tath.rwc.Close()\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// readMessage reads a single message pack from the network.\nfunc (ath *AuthReadWriter) readMessage() ([]byte, error) {\n\theader := make([]byte, 28+4)\n\n\tif _, err := io.ReadFull(ath.rwc, header); err != nil {\n\t\treturn nil, err\n\t}\n\n\tsize := binary.LittleEndian.Uint32(header[28:])\n\tif size > MaxMessageSize {\n\t\treturn nil, fmt.Errorf(\"Message too large (%d/%d)\", size, MaxMessageSize)\n\t}\n\n\tbuf := make([]byte, size)\n\tif _, err := io.ReadAtLeast(ath.cryptedRW, buf, int(size)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmacWriter := hmac.New(sha3.New224, ath.symkey)\n\tif _, err := macWriter.Write(buf); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmac := macWriter.Sum(nil)\n\tif !hmac.Equal(mac, header[:28]) {\n\t\treturn nil, fmt.Errorf(\"Mac differs in received metadata message\")\n\t}\n\n\treturn compress.Unpack(buf)\n}\n\n// Read will try to fill `buf` with as many bytes as available.\nfunc (ath *AuthReadWriter) Read(buf []byte) (int, error) {\n\tif err := ath.Trigger(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := 0\n\tbufLen := len(buf)\n\n\t// Read messages as long `buf` is not full yet.\n\tfor {\n\t\tif ath.readBuf.Len() > 0 {\n\t\t\tbn, berr := ath.readBuf.Read(buf)\n\t\t\tif berr != nil && berr != io.EOF {\n\t\t\t\treturn n, berr\n\t\t\t}\n\n\t\t\tn += bn\n\t\t\tbuf = buf[bn:]\n\n\t\t\tif berr == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif n >= bufLen {\n\t\t\treturn n, nil\n\t\t}\n\n\t\tmsg, err := ath.readMessage()\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\n\t\tif _, werr := ath.readBuf.Write(msg); werr != nil {\n\t\t\treturn n, err\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\n// Write conforming to the io.Writer interface\nfunc (ath *AuthReadWriter) Write(buf []byte) (int, error) {\n\tif err := ath.Trigger(); err != nil {\n\t\treturn 0, err\n\t}\n\n\tzipBuf, err := compress.Pack(buf, compress.AlgoSnappy)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\tmacWriter := hmac.New(sha3.New224, ath.symkey)\n\tif _, err := macWriter.Write(zipBuf); err != nil {\n\t\treturn -2, err\n\t}\n\n\tmac := macWriter.Sum(nil)\n\tn, err := ath.rwc.Write(mac)\n\tif err != nil {\n\t\treturn -3, err\n\t}\n\n\tif n != len(mac) {\n\t\treturn -4, fmt.Errorf(\n\t\t\t\"Unable to write full mac. Should be %d; was %d\",\n\t\t\tlen(mac),\n\t\t\tn,\n\t\t)\n\t}\n\n\t// Note: this assumes that `cryptedRW` does not pad the data.\n\tsizeBuf := make([]byte, 4)\n\tbinary.LittleEndian.PutUint32(sizeBuf, uint32(len(zipBuf)))\n\n\tn, err = ath.rwc.Write(sizeBuf)\n\tif err != nil {\n\t\treturn -5, err\n\t}\n\n\tif n != len(sizeBuf) {\n\t\treturn -6, fmt.Errorf(\n\t\t\t\"Unable to write full size buf. Should be %d; was %d\",\n\t\t\tlen(sizeBuf),\n\t\t\tn,\n\t\t)\n\t}\n\n\treturn ath.cryptedRW.Write(zipBuf)\n}\n"
  },
  {
    "path": "net/authrw_test.go",
    "content": "package net\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"golang.org/x/crypto/openpgp\"\n\n\t\"github.com/alokmenghrajani/gpgeez\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\n// create a new gpg key pair with self-signed subkeys\nfunc createKeyPair(t *testing.T, bits int) ([]byte, []byte) {\n\tcfg := gpgeez.Config{Expiry: 0 * time.Second}\n\n\tcfg.RSABits = bits\n\tcomment := fmt.Sprintf(\"brig gpg key of %s\", \"alice\")\n\tkey, err := gpgeez.CreateKey(\"alice\", comment, \"alice\", &cfg)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create gpg key pair: %v\", err)\n\t}\n\n\treturn key.Secring(&cfg), key.Keyring()\n}\n\n// Do not use repo.Keyring, simply re-implement for this test's purpose.\ntype DummyPrivKey []byte\n\nfunc (pk DummyPrivKey) Decrypt(data []byte) ([]byte, error) {\n\tents, err := openpgp.ReadKeyRing(bytes.NewReader(pk))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmd, err := openpgp.ReadMessage(bytes.NewReader(data), ents, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ioutil.ReadAll(md.UnverifiedBody)\n}\n\nfunc withLoopbackConnection(t *testing.T, f func(a, b net.Conn)) {\n\t// Test with a real connection and not use a simple net.Pipe().\n\t// net.Pipe() does not provide any buffering like real world connection do.\n\t// authrw relies on this...\n\n\tsetup := make(chan bool)\n\tconCh := make(chan net.Conn)\n\twaitForTestCase := make(chan bool)\n\n\tls, err := testutil.RandomLocalListener()\n\tif err != nil {\n\t\tt.Errorf(\"Listening on dummy port failed: %v\", err)\n\t\tsetup <- false\n\t\treturn\n\t}\n\n\tgo func() {\n\t\tsetup <- true\n\t\tdefer func() {\n\t\t\tif err := ls.Close(); err != nil {\n\t\t\t\tt.Errorf(\"Closing listener failed: %v\", err)\n\t\t\t}\n\t\t\tclose(conCh)\n\t\t}()\n\n\t\tconn, err := ls.Accept()\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accepting on dummy listener failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tconCh <- conn\n\n\t\t// We should wait until we quit this function.\n\t\t// Otherwise the defer above will be executed.\n\t\t<-waitForTestCase\n\t}()\n\n\tif <-setup == false {\n\t\treturn\n\t}\n\n\tclientSide, err := net.Dial(\"tcp\", ls.Addr().String())\n\tif err != nil {\n\t\tt.Errorf(\"Dialing self failed: %v\", err)\n\t\treturn\n\t}\n\n\tselect {\n\tcase serverSide := <-conCh:\n\t\t// This is needed to write big messages in one go:\n\t\tconst bufSize = 128 * 1024\n\t\tclientSide.(*net.TCPConn).SetWriteBuffer(bufSize)\n\t\tclientSide.(*net.TCPConn).SetReadBuffer(bufSize)\n\t\tserverSide.(*net.TCPConn).SetWriteBuffer(bufSize)\n\t\tserverSide.(*net.TCPConn).SetReadBuffer(bufSize)\n\t\tf(clientSide, serverSide)\n\tcase <-time.After(5 * time.Second):\n\t\tt.Fatalf(\"test took too long\")\n\t}\n\n\twaitForTestCase <- true\n}\n\nfunc testAuthProcess(t *testing.T, size int64, privAli, privBob, pubAli, pubBob []byte) {\n\twithLoopbackConnection(t, func(a, b net.Conn) {\n\t\tauthAli := NewAuthReadWriter(a, DummyPrivKey(privAli), pubAli, \"ali\", func(pubKey []byte) error {\n\t\t\tfpBob := peer.BuildFingerprint(\"bob\", pubBob)\n\t\t\tif !fpBob.PubKeyMatches(pubKey) {\n\t\t\t\treturn fmt.Errorf(\"bob has wrong public key\")\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t\tauthBob := NewAuthReadWriter(b, DummyPrivKey(privBob), pubBob, \"bob\", func(pubKey []byte) error {\n\t\t\tfpAli := peer.BuildFingerprint(\"ali\", pubAli)\n\t\t\tif !fpAli.PubKeyMatches(pubKey) {\n\t\t\t\treturn fmt.Errorf(\"alice has wrong public key\")\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\n\t\texpect := testutil.CreateDummyBuf(size)\n\t\tanswer := make([]byte, len(expect))\n\n\t\t// Sort out connection based troubles quickly:\n\t\t// Just send a normal message over the conn.\n\t\tn, err := a.Write(expect)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Normal write failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\trequire.Equal(t, len(expect), n)\n\n\t\tn, err = b.Read(answer)\n\t\tif err != nil && (err != io.EOF && size == 0) {\n\t\t\tt.Errorf(\"Normal read failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\trequire.Equal(t, len(answer), n)\n\n\t\tif !bytes.Equal(expect, answer) {\n\t\t\tt.Errorf(\"Normal transmission failed; want `%v`, got `%v`\", len(expect), len(answer))\n\t\t\treturn\n\t\t}\n\n\t\tanswer = make([]byte, len(expect))\n\n\t\twg := &sync.WaitGroup{}\n\n\t\tgo func() {\n\t\t\twg.Add(1)\n\t\t\tdefer wg.Done()\n\n\t\t\tif _, err := authAli.Write(expect); err != nil {\n\t\t\t\tt.Errorf(\"Auth Write failed: %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}()\n\n\t\tif _, err := authBob.Read(answer); err != nil {\n\t\t\tt.Errorf(\"Auth Read failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\trequire.Equal(t, authBob.RemoteName(), \"ali\")\n\t\trequire.Equal(t, authAli.RemoteName(), \"bob\")\n\n\t\tif !bytes.Equal(expect, answer) {\n\t\t\tt.Errorf(\"auth transmission failed; want `%s`, got `%s`\", expect, answer)\n\t\t\treturn\n\t\t}\n\n\t\twg.Wait()\n\t})\n}\n\nfunc TestAuthProcess(t *testing.T) {\n\tt.Parallel()\n\n\tsizes := []int64{0, 255}\n\t// TODO: This breaks for size 131072 - let's find out why.\n\n\tfor i := uint(0); i < 18; i++ {\n\t\tsizes = append(sizes, int64(1<<i))\n\t}\n\n\tprivAli, pubAli := createKeyPair(t, 1024)\n\tprivBob, pubBob := createKeyPair(t, 1024)\n\n\tfor _, size := range sizes {\n\t\tt.Run(fmt.Sprintf(\"size-%d\", size), func(t *testing.T) {\n\t\t\ttestAuthProcess(t, size, privAli, privBob, pubAli, pubBob)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "net/backend/backend.go",
    "content": "package backend\n\nimport (\n\t\"context\"\n\tstdnet \"net\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/net/peer\"\n)\n\n// Pinger is a watcher for a single peer that will actively ping\n// the peer until closed. Time between pings is chosen by the backend.\ntype Pinger interface {\n\t// LastSeen returns a timestamp of when this peer last responded.\n\tLastSeen() time.Time\n\n\t// Roundtrip returns the time needed to send a small package to a peer.\n\tRoundtrip() time.Duration\n\n\t// Err returns a non-nil value if the last try to contact this peer failed.\n\tErr() error\n\n\t// Close shuts down this pinger.\n\tClose() error\n}\n\n// Backend defines all required methods needed from the underlying\n// implementation in order to talk with other nodes.\ntype Backend interface {\n\t// ResolveName resolves a human readable `name` to a list of peers.\n\t// Each of these can be later contacted to check their credentials.\n\tResolveName(ctx context.Context, name string) ([]peer.Info, error)\n\n\t// PublishName announces to the network that this node is known as `name`.\n\t// If possible also the group and domain name of the name should be\n\t// announced.\n\tPublishName(name string) error\n\n\t// Identity resolves our own name to an addr that we could pass to Dial.\n\t// It is used as part of the brig identifier for others.\n\tIdentity() (peer.Info, error)\n\n\t// Dial builds up a connection to another peer.\n\t// If only ever one protocol is used, just pass the same string always.\n\tDial(peerAddr, fingerprint, protocol string) (stdnet.Conn, error)\n\n\t// Listen returns a listener, that will yield incoming connections\n\t// from other peers when calling Accept.\n\tListen(protocol string) (stdnet.Listener, error)\n\n\t// Ping returns a Pinger interface for the peer at `peerAddr`.\n\t// It should not create a full\n\tPing(peerAddr string) (Pinger, error)\n\n\t// Connect will connect to the common network\n\tConnect() error\n\n\t// Disconnect will reject incoming connections and disallow outgoing.\n\tDisconnect() error\n\n\t// IsOnline should return true if the node is currently able to contact\n\t// or receive connections from other peers.\n\tIsOnline() bool\n}\n"
  },
  {
    "path": "net/capnp/api.capnp",
    "content": "using Go = import \"/go.capnp\";\n\n@0x9bcb07fb35756ee6;\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/net/capnp\");\n\ninterface Sync {\n    fetchStore             @0 () -> (data :Data);\n    fetchPatch             @1 (fromIndex :Int64) -> (data :Data);\n    isCompleteFetchAllowed @2 () -> (isAllowed :Bool);\n    isPushAllowed          @3 () -> (isAllowed :Bool);\n    push                   @4 ();\n\n    # like fetchPatch but fetches a list of individual patches:\n    fetchPatches           @5 (fromIndex :Int64) -> (data :Data);\n}\n\ninterface Meta {\n    ping    @0 () -> (reply :Text);\n}\n\n# Group all interfaces together in one API object,\n# because apparently we have this limitation what one interface\n# more or less equals one connection.\ninterface API extends(Sync, Meta) {\n    version @0 () -> (version :Int32);\n}\n"
  },
  {
    "path": "net/capnp/api.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcontext \"context\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n\tserver \"zombiezen.com/go/capnproto2/server\"\n)\n\ntype Sync struct{ Client capnp.Client }\n\n// Sync_TypeID is the unique identifier for the type Sync.\nconst Sync_TypeID = 0xf5692a07c5cf7872\n\nfunc (c Sync) FetchStore(ctx context.Context, params func(Sync_fetchStore_Params) error, opts ...capnp.CallOption) Sync_fetchStore_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchStore_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchStore\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchStore_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchStore_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Sync) FetchPatch(ctx context.Context, params func(Sync_fetchPatch_Params) error, opts ...capnp.CallOption) Sync_fetchPatch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchPatch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchPatch_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchPatch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Sync) IsCompleteFetchAllowed(ctx context.Context, params func(Sync_isCompleteFetchAllowed_Params) error, opts ...capnp.CallOption) Sync_isCompleteFetchAllowed_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_isCompleteFetchAllowed_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isCompleteFetchAllowed\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_isCompleteFetchAllowed_Params{Struct: s}) }\n\t}\n\treturn Sync_isCompleteFetchAllowed_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Sync) IsPushAllowed(ctx context.Context, params func(Sync_isPushAllowed_Params) error, opts ...capnp.CallOption) Sync_isPushAllowed_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_isPushAllowed_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isPushAllowed\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_isPushAllowed_Params{Struct: s}) }\n\t}\n\treturn Sync_isPushAllowed_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Sync) Push(ctx context.Context, params func(Sync_push_Params) error, opts ...capnp.CallOption) Sync_push_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_push_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_push_Params{Struct: s}) }\n\t}\n\treturn Sync_push_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Sync) FetchPatches(ctx context.Context, params func(Sync_fetchPatches_Params) error, opts ...capnp.CallOption) Sync_fetchPatches_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchPatches_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatches\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchPatches_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchPatches_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype Sync_Server interface {\n\tFetchStore(Sync_fetchStore) error\n\n\tFetchPatch(Sync_fetchPatch) error\n\n\tIsCompleteFetchAllowed(Sync_isCompleteFetchAllowed) error\n\n\tIsPushAllowed(Sync_isPushAllowed) error\n\n\tPush(Sync_push) error\n\n\tFetchPatches(Sync_fetchPatches) error\n}\n\nfunc Sync_ServerToClient(s Sync_Server) Sync {\n\tc, _ := s.(server.Closer)\n\treturn Sync{Client: server.New(Sync_Methods(nil, s), c)}\n}\n\nfunc Sync_Methods(methods []server.Method, s Sync_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 6)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchStore\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchStore{c, opts, Sync_fetchStore_Params{Struct: p}, Sync_fetchStore_Results{Struct: r}}\n\t\t\treturn s.FetchStore(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchPatch{c, opts, Sync_fetchPatch_Params{Struct: p}, Sync_fetchPatch_Results{Struct: r}}\n\t\t\treturn s.FetchPatch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isCompleteFetchAllowed\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_isCompleteFetchAllowed{c, opts, Sync_isCompleteFetchAllowed_Params{Struct: p}, Sync_isCompleteFetchAllowed_Results{Struct: r}}\n\t\t\treturn s.IsCompleteFetchAllowed(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isPushAllowed\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_isPushAllowed{c, opts, Sync_isPushAllowed_Params{Struct: p}, Sync_isPushAllowed_Results{Struct: r}}\n\t\t\treturn s.IsPushAllowed(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_push{c, opts, Sync_push_Params{Struct: p}, Sync_push_Results{Struct: r}}\n\t\t\treturn s.Push(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatches\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchPatches{c, opts, Sync_fetchPatches_Params{Struct: p}, Sync_fetchPatches_Results{Struct: r}}\n\t\t\treturn s.FetchPatches(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\treturn methods\n}\n\n// Sync_fetchStore holds the arguments for a server call to Sync.fetchStore.\ntype Sync_fetchStore struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_fetchStore_Params\n\tResults Sync_fetchStore_Results\n}\n\n// Sync_fetchPatch holds the arguments for a server call to Sync.fetchPatch.\ntype Sync_fetchPatch struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_fetchPatch_Params\n\tResults Sync_fetchPatch_Results\n}\n\n// Sync_isCompleteFetchAllowed holds the arguments for a server call to Sync.isCompleteFetchAllowed.\ntype Sync_isCompleteFetchAllowed struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_isCompleteFetchAllowed_Params\n\tResults Sync_isCompleteFetchAllowed_Results\n}\n\n// Sync_isPushAllowed holds the arguments for a server call to Sync.isPushAllowed.\ntype Sync_isPushAllowed struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_isPushAllowed_Params\n\tResults Sync_isPushAllowed_Results\n}\n\n// Sync_push holds the arguments for a server call to Sync.push.\ntype Sync_push struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_push_Params\n\tResults Sync_push_Results\n}\n\n// Sync_fetchPatches holds the arguments for a server call to Sync.fetchPatches.\ntype Sync_fetchPatches struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Sync_fetchPatches_Params\n\tResults Sync_fetchPatches_Results\n}\n\ntype Sync_fetchStore_Params struct{ capnp.Struct }\n\n// Sync_fetchStore_Params_TypeID is the unique identifier for the type Sync_fetchStore_Params.\nconst Sync_fetchStore_Params_TypeID = 0xdc63044e67499411\n\nfunc NewSync_fetchStore_Params(s *capnp.Segment) (Sync_fetchStore_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_fetchStore_Params{st}, err\n}\n\nfunc NewRootSync_fetchStore_Params(s *capnp.Segment) (Sync_fetchStore_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_fetchStore_Params{st}, err\n}\n\nfunc ReadRootSync_fetchStore_Params(msg *capnp.Message) (Sync_fetchStore_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchStore_Params{root.Struct()}, err\n}\n\nfunc (s Sync_fetchStore_Params) String() string {\n\tstr, _ := text.Marshal(0xdc63044e67499411, s.Struct)\n\treturn str\n}\n\n// Sync_fetchStore_Params_List is a list of Sync_fetchStore_Params.\ntype Sync_fetchStore_Params_List struct{ capnp.List }\n\n// NewSync_fetchStore_Params creates a new list of Sync_fetchStore_Params.\nfunc NewSync_fetchStore_Params_List(s *capnp.Segment, sz int32) (Sync_fetchStore_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Sync_fetchStore_Params_List{l}, err\n}\n\nfunc (s Sync_fetchStore_Params_List) At(i int) Sync_fetchStore_Params {\n\treturn Sync_fetchStore_Params{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchStore_Params_List) Set(i int, v Sync_fetchStore_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchStore_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xdc63044e67499411, s.List)\n\treturn str\n}\n\n// Sync_fetchStore_Params_Promise is a wrapper for a Sync_fetchStore_Params promised by a client call.\ntype Sync_fetchStore_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchStore_Params_Promise) Struct() (Sync_fetchStore_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchStore_Params{s}, err\n}\n\ntype Sync_fetchStore_Results struct{ capnp.Struct }\n\n// Sync_fetchStore_Results_TypeID is the unique identifier for the type Sync_fetchStore_Results.\nconst Sync_fetchStore_Results_TypeID = 0xf834409e30e8009c\n\nfunc NewSync_fetchStore_Results(s *capnp.Segment) (Sync_fetchStore_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchStore_Results{st}, err\n}\n\nfunc NewRootSync_fetchStore_Results(s *capnp.Segment) (Sync_fetchStore_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchStore_Results{st}, err\n}\n\nfunc ReadRootSync_fetchStore_Results(msg *capnp.Message) (Sync_fetchStore_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchStore_Results{root.Struct()}, err\n}\n\nfunc (s Sync_fetchStore_Results) String() string {\n\tstr, _ := text.Marshal(0xf834409e30e8009c, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_fetchStore_Results) Data() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Sync_fetchStore_Results) HasData() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Sync_fetchStore_Results) SetData(v []byte) error {\n\treturn s.Struct.SetData(0, v)\n}\n\n// Sync_fetchStore_Results_List is a list of Sync_fetchStore_Results.\ntype Sync_fetchStore_Results_List struct{ capnp.List }\n\n// NewSync_fetchStore_Results creates a new list of Sync_fetchStore_Results.\nfunc NewSync_fetchStore_Results_List(s *capnp.Segment, sz int32) (Sync_fetchStore_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Sync_fetchStore_Results_List{l}, err\n}\n\nfunc (s Sync_fetchStore_Results_List) At(i int) Sync_fetchStore_Results {\n\treturn Sync_fetchStore_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchStore_Results_List) Set(i int, v Sync_fetchStore_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchStore_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xf834409e30e8009c, s.List)\n\treturn str\n}\n\n// Sync_fetchStore_Results_Promise is a wrapper for a Sync_fetchStore_Results promised by a client call.\ntype Sync_fetchStore_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchStore_Results_Promise) Struct() (Sync_fetchStore_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchStore_Results{s}, err\n}\n\ntype Sync_fetchPatch_Params struct{ capnp.Struct }\n\n// Sync_fetchPatch_Params_TypeID is the unique identifier for the type Sync_fetchPatch_Params.\nconst Sync_fetchPatch_Params_TypeID = 0xb20f728e8e60c3f5\n\nfunc NewSync_fetchPatch_Params(s *capnp.Segment) (Sync_fetchPatch_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_fetchPatch_Params{st}, err\n}\n\nfunc NewRootSync_fetchPatch_Params(s *capnp.Segment) (Sync_fetchPatch_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_fetchPatch_Params{st}, err\n}\n\nfunc ReadRootSync_fetchPatch_Params(msg *capnp.Message) (Sync_fetchPatch_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchPatch_Params{root.Struct()}, err\n}\n\nfunc (s Sync_fetchPatch_Params) String() string {\n\tstr, _ := text.Marshal(0xb20f728e8e60c3f5, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_fetchPatch_Params) FromIndex() int64 {\n\treturn int64(s.Struct.Uint64(0))\n}\n\nfunc (s Sync_fetchPatch_Params) SetFromIndex(v int64) {\n\ts.Struct.SetUint64(0, uint64(v))\n}\n\n// Sync_fetchPatch_Params_List is a list of Sync_fetchPatch_Params.\ntype Sync_fetchPatch_Params_List struct{ capnp.List }\n\n// NewSync_fetchPatch_Params creates a new list of Sync_fetchPatch_Params.\nfunc NewSync_fetchPatch_Params_List(s *capnp.Segment, sz int32) (Sync_fetchPatch_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Sync_fetchPatch_Params_List{l}, err\n}\n\nfunc (s Sync_fetchPatch_Params_List) At(i int) Sync_fetchPatch_Params {\n\treturn Sync_fetchPatch_Params{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchPatch_Params_List) Set(i int, v Sync_fetchPatch_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchPatch_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb20f728e8e60c3f5, s.List)\n\treturn str\n}\n\n// Sync_fetchPatch_Params_Promise is a wrapper for a Sync_fetchPatch_Params promised by a client call.\ntype Sync_fetchPatch_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchPatch_Params_Promise) Struct() (Sync_fetchPatch_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchPatch_Params{s}, err\n}\n\ntype Sync_fetchPatch_Results struct{ capnp.Struct }\n\n// Sync_fetchPatch_Results_TypeID is the unique identifier for the type Sync_fetchPatch_Results.\nconst Sync_fetchPatch_Results_TypeID = 0xc788029a0ef52479\n\nfunc NewSync_fetchPatch_Results(s *capnp.Segment) (Sync_fetchPatch_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchPatch_Results{st}, err\n}\n\nfunc NewRootSync_fetchPatch_Results(s *capnp.Segment) (Sync_fetchPatch_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchPatch_Results{st}, err\n}\n\nfunc ReadRootSync_fetchPatch_Results(msg *capnp.Message) (Sync_fetchPatch_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchPatch_Results{root.Struct()}, err\n}\n\nfunc (s Sync_fetchPatch_Results) String() string {\n\tstr, _ := text.Marshal(0xc788029a0ef52479, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_fetchPatch_Results) Data() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Sync_fetchPatch_Results) HasData() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Sync_fetchPatch_Results) SetData(v []byte) error {\n\treturn s.Struct.SetData(0, v)\n}\n\n// Sync_fetchPatch_Results_List is a list of Sync_fetchPatch_Results.\ntype Sync_fetchPatch_Results_List struct{ capnp.List }\n\n// NewSync_fetchPatch_Results creates a new list of Sync_fetchPatch_Results.\nfunc NewSync_fetchPatch_Results_List(s *capnp.Segment, sz int32) (Sync_fetchPatch_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Sync_fetchPatch_Results_List{l}, err\n}\n\nfunc (s Sync_fetchPatch_Results_List) At(i int) Sync_fetchPatch_Results {\n\treturn Sync_fetchPatch_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchPatch_Results_List) Set(i int, v Sync_fetchPatch_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchPatch_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xc788029a0ef52479, s.List)\n\treturn str\n}\n\n// Sync_fetchPatch_Results_Promise is a wrapper for a Sync_fetchPatch_Results promised by a client call.\ntype Sync_fetchPatch_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchPatch_Results_Promise) Struct() (Sync_fetchPatch_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchPatch_Results{s}, err\n}\n\ntype Sync_isCompleteFetchAllowed_Params struct{ capnp.Struct }\n\n// Sync_isCompleteFetchAllowed_Params_TypeID is the unique identifier for the type Sync_isCompleteFetchAllowed_Params.\nconst Sync_isCompleteFetchAllowed_Params_TypeID = 0xa29b8ab519fba593\n\nfunc NewSync_isCompleteFetchAllowed_Params(s *capnp.Segment) (Sync_isCompleteFetchAllowed_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_isCompleteFetchAllowed_Params{st}, err\n}\n\nfunc NewRootSync_isCompleteFetchAllowed_Params(s *capnp.Segment) (Sync_isCompleteFetchAllowed_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_isCompleteFetchAllowed_Params{st}, err\n}\n\nfunc ReadRootSync_isCompleteFetchAllowed_Params(msg *capnp.Message) (Sync_isCompleteFetchAllowed_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_isCompleteFetchAllowed_Params{root.Struct()}, err\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Params) String() string {\n\tstr, _ := text.Marshal(0xa29b8ab519fba593, s.Struct)\n\treturn str\n}\n\n// Sync_isCompleteFetchAllowed_Params_List is a list of Sync_isCompleteFetchAllowed_Params.\ntype Sync_isCompleteFetchAllowed_Params_List struct{ capnp.List }\n\n// NewSync_isCompleteFetchAllowed_Params creates a new list of Sync_isCompleteFetchAllowed_Params.\nfunc NewSync_isCompleteFetchAllowed_Params_List(s *capnp.Segment, sz int32) (Sync_isCompleteFetchAllowed_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Sync_isCompleteFetchAllowed_Params_List{l}, err\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Params_List) At(i int) Sync_isCompleteFetchAllowed_Params {\n\treturn Sync_isCompleteFetchAllowed_Params{s.List.Struct(i)}\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Params_List) Set(i int, v Sync_isCompleteFetchAllowed_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa29b8ab519fba593, s.List)\n\treturn str\n}\n\n// Sync_isCompleteFetchAllowed_Params_Promise is a wrapper for a Sync_isCompleteFetchAllowed_Params promised by a client call.\ntype Sync_isCompleteFetchAllowed_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_isCompleteFetchAllowed_Params_Promise) Struct() (Sync_isCompleteFetchAllowed_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_isCompleteFetchAllowed_Params{s}, err\n}\n\ntype Sync_isCompleteFetchAllowed_Results struct{ capnp.Struct }\n\n// Sync_isCompleteFetchAllowed_Results_TypeID is the unique identifier for the type Sync_isCompleteFetchAllowed_Results.\nconst Sync_isCompleteFetchAllowed_Results_TypeID = 0xe7a1e07d1144113e\n\nfunc NewSync_isCompleteFetchAllowed_Results(s *capnp.Segment) (Sync_isCompleteFetchAllowed_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_isCompleteFetchAllowed_Results{st}, err\n}\n\nfunc NewRootSync_isCompleteFetchAllowed_Results(s *capnp.Segment) (Sync_isCompleteFetchAllowed_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_isCompleteFetchAllowed_Results{st}, err\n}\n\nfunc ReadRootSync_isCompleteFetchAllowed_Results(msg *capnp.Message) (Sync_isCompleteFetchAllowed_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_isCompleteFetchAllowed_Results{root.Struct()}, err\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results) String() string {\n\tstr, _ := text.Marshal(0xe7a1e07d1144113e, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results) IsAllowed() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results) SetIsAllowed(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// Sync_isCompleteFetchAllowed_Results_List is a list of Sync_isCompleteFetchAllowed_Results.\ntype Sync_isCompleteFetchAllowed_Results_List struct{ capnp.List }\n\n// NewSync_isCompleteFetchAllowed_Results creates a new list of Sync_isCompleteFetchAllowed_Results.\nfunc NewSync_isCompleteFetchAllowed_Results_List(s *capnp.Segment, sz int32) (Sync_isCompleteFetchAllowed_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Sync_isCompleteFetchAllowed_Results_List{l}, err\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results_List) At(i int) Sync_isCompleteFetchAllowed_Results {\n\treturn Sync_isCompleteFetchAllowed_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results_List) Set(i int, v Sync_isCompleteFetchAllowed_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_isCompleteFetchAllowed_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xe7a1e07d1144113e, s.List)\n\treturn str\n}\n\n// Sync_isCompleteFetchAllowed_Results_Promise is a wrapper for a Sync_isCompleteFetchAllowed_Results promised by a client call.\ntype Sync_isCompleteFetchAllowed_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_isCompleteFetchAllowed_Results_Promise) Struct() (Sync_isCompleteFetchAllowed_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_isCompleteFetchAllowed_Results{s}, err\n}\n\ntype Sync_isPushAllowed_Params struct{ capnp.Struct }\n\n// Sync_isPushAllowed_Params_TypeID is the unique identifier for the type Sync_isPushAllowed_Params.\nconst Sync_isPushAllowed_Params_TypeID = 0xdcee0f1a1e882683\n\nfunc NewSync_isPushAllowed_Params(s *capnp.Segment) (Sync_isPushAllowed_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_isPushAllowed_Params{st}, err\n}\n\nfunc NewRootSync_isPushAllowed_Params(s *capnp.Segment) (Sync_isPushAllowed_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_isPushAllowed_Params{st}, err\n}\n\nfunc ReadRootSync_isPushAllowed_Params(msg *capnp.Message) (Sync_isPushAllowed_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_isPushAllowed_Params{root.Struct()}, err\n}\n\nfunc (s Sync_isPushAllowed_Params) String() string {\n\tstr, _ := text.Marshal(0xdcee0f1a1e882683, s.Struct)\n\treturn str\n}\n\n// Sync_isPushAllowed_Params_List is a list of Sync_isPushAllowed_Params.\ntype Sync_isPushAllowed_Params_List struct{ capnp.List }\n\n// NewSync_isPushAllowed_Params creates a new list of Sync_isPushAllowed_Params.\nfunc NewSync_isPushAllowed_Params_List(s *capnp.Segment, sz int32) (Sync_isPushAllowed_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Sync_isPushAllowed_Params_List{l}, err\n}\n\nfunc (s Sync_isPushAllowed_Params_List) At(i int) Sync_isPushAllowed_Params {\n\treturn Sync_isPushAllowed_Params{s.List.Struct(i)}\n}\n\nfunc (s Sync_isPushAllowed_Params_List) Set(i int, v Sync_isPushAllowed_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_isPushAllowed_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xdcee0f1a1e882683, s.List)\n\treturn str\n}\n\n// Sync_isPushAllowed_Params_Promise is a wrapper for a Sync_isPushAllowed_Params promised by a client call.\ntype Sync_isPushAllowed_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_isPushAllowed_Params_Promise) Struct() (Sync_isPushAllowed_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_isPushAllowed_Params{s}, err\n}\n\ntype Sync_isPushAllowed_Results struct{ capnp.Struct }\n\n// Sync_isPushAllowed_Results_TypeID is the unique identifier for the type Sync_isPushAllowed_Results.\nconst Sync_isPushAllowed_Results_TypeID = 0xaa3182f28c82f848\n\nfunc NewSync_isPushAllowed_Results(s *capnp.Segment) (Sync_isPushAllowed_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_isPushAllowed_Results{st}, err\n}\n\nfunc NewRootSync_isPushAllowed_Results(s *capnp.Segment) (Sync_isPushAllowed_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_isPushAllowed_Results{st}, err\n}\n\nfunc ReadRootSync_isPushAllowed_Results(msg *capnp.Message) (Sync_isPushAllowed_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_isPushAllowed_Results{root.Struct()}, err\n}\n\nfunc (s Sync_isPushAllowed_Results) String() string {\n\tstr, _ := text.Marshal(0xaa3182f28c82f848, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_isPushAllowed_Results) IsAllowed() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Sync_isPushAllowed_Results) SetIsAllowed(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// Sync_isPushAllowed_Results_List is a list of Sync_isPushAllowed_Results.\ntype Sync_isPushAllowed_Results_List struct{ capnp.List }\n\n// NewSync_isPushAllowed_Results creates a new list of Sync_isPushAllowed_Results.\nfunc NewSync_isPushAllowed_Results_List(s *capnp.Segment, sz int32) (Sync_isPushAllowed_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Sync_isPushAllowed_Results_List{l}, err\n}\n\nfunc (s Sync_isPushAllowed_Results_List) At(i int) Sync_isPushAllowed_Results {\n\treturn Sync_isPushAllowed_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_isPushAllowed_Results_List) Set(i int, v Sync_isPushAllowed_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_isPushAllowed_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xaa3182f28c82f848, s.List)\n\treturn str\n}\n\n// Sync_isPushAllowed_Results_Promise is a wrapper for a Sync_isPushAllowed_Results promised by a client call.\ntype Sync_isPushAllowed_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_isPushAllowed_Results_Promise) Struct() (Sync_isPushAllowed_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_isPushAllowed_Results{s}, err\n}\n\ntype Sync_push_Params struct{ capnp.Struct }\n\n// Sync_push_Params_TypeID is the unique identifier for the type Sync_push_Params.\nconst Sync_push_Params_TypeID = 0xf8fe6156816b7dc7\n\nfunc NewSync_push_Params(s *capnp.Segment) (Sync_push_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_push_Params{st}, err\n}\n\nfunc NewRootSync_push_Params(s *capnp.Segment) (Sync_push_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_push_Params{st}, err\n}\n\nfunc ReadRootSync_push_Params(msg *capnp.Message) (Sync_push_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_push_Params{root.Struct()}, err\n}\n\nfunc (s Sync_push_Params) String() string {\n\tstr, _ := text.Marshal(0xf8fe6156816b7dc7, s.Struct)\n\treturn str\n}\n\n// Sync_push_Params_List is a list of Sync_push_Params.\ntype Sync_push_Params_List struct{ capnp.List }\n\n// NewSync_push_Params creates a new list of Sync_push_Params.\nfunc NewSync_push_Params_List(s *capnp.Segment, sz int32) (Sync_push_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Sync_push_Params_List{l}, err\n}\n\nfunc (s Sync_push_Params_List) At(i int) Sync_push_Params { return Sync_push_Params{s.List.Struct(i)} }\n\nfunc (s Sync_push_Params_List) Set(i int, v Sync_push_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_push_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf8fe6156816b7dc7, s.List)\n\treturn str\n}\n\n// Sync_push_Params_Promise is a wrapper for a Sync_push_Params promised by a client call.\ntype Sync_push_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_push_Params_Promise) Struct() (Sync_push_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_push_Params{s}, err\n}\n\ntype Sync_push_Results struct{ capnp.Struct }\n\n// Sync_push_Results_TypeID is the unique identifier for the type Sync_push_Results.\nconst Sync_push_Results_TypeID = 0xceaa2020b2f72696\n\nfunc NewSync_push_Results(s *capnp.Segment) (Sync_push_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_push_Results{st}, err\n}\n\nfunc NewRootSync_push_Results(s *capnp.Segment) (Sync_push_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Sync_push_Results{st}, err\n}\n\nfunc ReadRootSync_push_Results(msg *capnp.Message) (Sync_push_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_push_Results{root.Struct()}, err\n}\n\nfunc (s Sync_push_Results) String() string {\n\tstr, _ := text.Marshal(0xceaa2020b2f72696, s.Struct)\n\treturn str\n}\n\n// Sync_push_Results_List is a list of Sync_push_Results.\ntype Sync_push_Results_List struct{ capnp.List }\n\n// NewSync_push_Results creates a new list of Sync_push_Results.\nfunc NewSync_push_Results_List(s *capnp.Segment, sz int32) (Sync_push_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Sync_push_Results_List{l}, err\n}\n\nfunc (s Sync_push_Results_List) At(i int) Sync_push_Results {\n\treturn Sync_push_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_push_Results_List) Set(i int, v Sync_push_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_push_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xceaa2020b2f72696, s.List)\n\treturn str\n}\n\n// Sync_push_Results_Promise is a wrapper for a Sync_push_Results promised by a client call.\ntype Sync_push_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_push_Results_Promise) Struct() (Sync_push_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_push_Results{s}, err\n}\n\ntype Sync_fetchPatches_Params struct{ capnp.Struct }\n\n// Sync_fetchPatches_Params_TypeID is the unique identifier for the type Sync_fetchPatches_Params.\nconst Sync_fetchPatches_Params_TypeID = 0x85647b71cba016e2\n\nfunc NewSync_fetchPatches_Params(s *capnp.Segment) (Sync_fetchPatches_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_fetchPatches_Params{st}, err\n}\n\nfunc NewRootSync_fetchPatches_Params(s *capnp.Segment) (Sync_fetchPatches_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Sync_fetchPatches_Params{st}, err\n}\n\nfunc ReadRootSync_fetchPatches_Params(msg *capnp.Message) (Sync_fetchPatches_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchPatches_Params{root.Struct()}, err\n}\n\nfunc (s Sync_fetchPatches_Params) String() string {\n\tstr, _ := text.Marshal(0x85647b71cba016e2, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_fetchPatches_Params) FromIndex() int64 {\n\treturn int64(s.Struct.Uint64(0))\n}\n\nfunc (s Sync_fetchPatches_Params) SetFromIndex(v int64) {\n\ts.Struct.SetUint64(0, uint64(v))\n}\n\n// Sync_fetchPatches_Params_List is a list of Sync_fetchPatches_Params.\ntype Sync_fetchPatches_Params_List struct{ capnp.List }\n\n// NewSync_fetchPatches_Params creates a new list of Sync_fetchPatches_Params.\nfunc NewSync_fetchPatches_Params_List(s *capnp.Segment, sz int32) (Sync_fetchPatches_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Sync_fetchPatches_Params_List{l}, err\n}\n\nfunc (s Sync_fetchPatches_Params_List) At(i int) Sync_fetchPatches_Params {\n\treturn Sync_fetchPatches_Params{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchPatches_Params_List) Set(i int, v Sync_fetchPatches_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchPatches_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x85647b71cba016e2, s.List)\n\treturn str\n}\n\n// Sync_fetchPatches_Params_Promise is a wrapper for a Sync_fetchPatches_Params promised by a client call.\ntype Sync_fetchPatches_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchPatches_Params_Promise) Struct() (Sync_fetchPatches_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchPatches_Params{s}, err\n}\n\ntype Sync_fetchPatches_Results struct{ capnp.Struct }\n\n// Sync_fetchPatches_Results_TypeID is the unique identifier for the type Sync_fetchPatches_Results.\nconst Sync_fetchPatches_Results_TypeID = 0xf9248392457904d7\n\nfunc NewSync_fetchPatches_Results(s *capnp.Segment) (Sync_fetchPatches_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchPatches_Results{st}, err\n}\n\nfunc NewRootSync_fetchPatches_Results(s *capnp.Segment) (Sync_fetchPatches_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Sync_fetchPatches_Results{st}, err\n}\n\nfunc ReadRootSync_fetchPatches_Results(msg *capnp.Message) (Sync_fetchPatches_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Sync_fetchPatches_Results{root.Struct()}, err\n}\n\nfunc (s Sync_fetchPatches_Results) String() string {\n\tstr, _ := text.Marshal(0xf9248392457904d7, s.Struct)\n\treturn str\n}\n\nfunc (s Sync_fetchPatches_Results) Data() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Sync_fetchPatches_Results) HasData() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Sync_fetchPatches_Results) SetData(v []byte) error {\n\treturn s.Struct.SetData(0, v)\n}\n\n// Sync_fetchPatches_Results_List is a list of Sync_fetchPatches_Results.\ntype Sync_fetchPatches_Results_List struct{ capnp.List }\n\n// NewSync_fetchPatches_Results creates a new list of Sync_fetchPatches_Results.\nfunc NewSync_fetchPatches_Results_List(s *capnp.Segment, sz int32) (Sync_fetchPatches_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Sync_fetchPatches_Results_List{l}, err\n}\n\nfunc (s Sync_fetchPatches_Results_List) At(i int) Sync_fetchPatches_Results {\n\treturn Sync_fetchPatches_Results{s.List.Struct(i)}\n}\n\nfunc (s Sync_fetchPatches_Results_List) Set(i int, v Sync_fetchPatches_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Sync_fetchPatches_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xf9248392457904d7, s.List)\n\treturn str\n}\n\n// Sync_fetchPatches_Results_Promise is a wrapper for a Sync_fetchPatches_Results promised by a client call.\ntype Sync_fetchPatches_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Sync_fetchPatches_Results_Promise) Struct() (Sync_fetchPatches_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Sync_fetchPatches_Results{s}, err\n}\n\ntype Meta struct{ Client capnp.Client }\n\n// Meta_TypeID is the unique identifier for the type Meta.\nconst Meta_TypeID = 0xb02d2ba0578cc7ff\n\nfunc (c Meta) Ping(ctx context.Context, params func(Meta_ping_Params) error, opts ...capnp.CallOption) Meta_ping_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Meta_ping_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb02d2ba0578cc7ff,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Meta\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Meta_ping_Params{Struct: s}) }\n\t}\n\treturn Meta_ping_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype Meta_Server interface {\n\tPing(Meta_ping) error\n}\n\nfunc Meta_ServerToClient(s Meta_Server) Meta {\n\tc, _ := s.(server.Closer)\n\treturn Meta{Client: server.New(Meta_Methods(nil, s), c)}\n}\n\nfunc Meta_Methods(methods []server.Method, s Meta_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 1)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb02d2ba0578cc7ff,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Meta\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Meta_ping{c, opts, Meta_ping_Params{Struct: p}, Meta_ping_Results{Struct: r}}\n\t\t\treturn s.Ping(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\treturn methods\n}\n\n// Meta_ping holds the arguments for a server call to Meta.ping.\ntype Meta_ping struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Meta_ping_Params\n\tResults Meta_ping_Results\n}\n\ntype Meta_ping_Params struct{ capnp.Struct }\n\n// Meta_ping_Params_TypeID is the unique identifier for the type Meta_ping_Params.\nconst Meta_ping_Params_TypeID = 0xe1a9fd466eca248c\n\nfunc NewMeta_ping_Params(s *capnp.Segment) (Meta_ping_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Meta_ping_Params{st}, err\n}\n\nfunc NewRootMeta_ping_Params(s *capnp.Segment) (Meta_ping_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Meta_ping_Params{st}, err\n}\n\nfunc ReadRootMeta_ping_Params(msg *capnp.Message) (Meta_ping_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Meta_ping_Params{root.Struct()}, err\n}\n\nfunc (s Meta_ping_Params) String() string {\n\tstr, _ := text.Marshal(0xe1a9fd466eca248c, s.Struct)\n\treturn str\n}\n\n// Meta_ping_Params_List is a list of Meta_ping_Params.\ntype Meta_ping_Params_List struct{ capnp.List }\n\n// NewMeta_ping_Params creates a new list of Meta_ping_Params.\nfunc NewMeta_ping_Params_List(s *capnp.Segment, sz int32) (Meta_ping_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Meta_ping_Params_List{l}, err\n}\n\nfunc (s Meta_ping_Params_List) At(i int) Meta_ping_Params { return Meta_ping_Params{s.List.Struct(i)} }\n\nfunc (s Meta_ping_Params_List) Set(i int, v Meta_ping_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Meta_ping_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe1a9fd466eca248c, s.List)\n\treturn str\n}\n\n// Meta_ping_Params_Promise is a wrapper for a Meta_ping_Params promised by a client call.\ntype Meta_ping_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Meta_ping_Params_Promise) Struct() (Meta_ping_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Meta_ping_Params{s}, err\n}\n\ntype Meta_ping_Results struct{ capnp.Struct }\n\n// Meta_ping_Results_TypeID is the unique identifier for the type Meta_ping_Results.\nconst Meta_ping_Results_TypeID = 0x9a90fde15285e327\n\nfunc NewMeta_ping_Results(s *capnp.Segment) (Meta_ping_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Meta_ping_Results{st}, err\n}\n\nfunc NewRootMeta_ping_Results(s *capnp.Segment) (Meta_ping_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Meta_ping_Results{st}, err\n}\n\nfunc ReadRootMeta_ping_Results(msg *capnp.Message) (Meta_ping_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Meta_ping_Results{root.Struct()}, err\n}\n\nfunc (s Meta_ping_Results) String() string {\n\tstr, _ := text.Marshal(0x9a90fde15285e327, s.Struct)\n\treturn str\n}\n\nfunc (s Meta_ping_Results) Reply() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Meta_ping_Results) HasReply() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Meta_ping_Results) ReplyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Meta_ping_Results) SetReply(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Meta_ping_Results_List is a list of Meta_ping_Results.\ntype Meta_ping_Results_List struct{ capnp.List }\n\n// NewMeta_ping_Results creates a new list of Meta_ping_Results.\nfunc NewMeta_ping_Results_List(s *capnp.Segment, sz int32) (Meta_ping_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Meta_ping_Results_List{l}, err\n}\n\nfunc (s Meta_ping_Results_List) At(i int) Meta_ping_Results {\n\treturn Meta_ping_Results{s.List.Struct(i)}\n}\n\nfunc (s Meta_ping_Results_List) Set(i int, v Meta_ping_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Meta_ping_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9a90fde15285e327, s.List)\n\treturn str\n}\n\n// Meta_ping_Results_Promise is a wrapper for a Meta_ping_Results promised by a client call.\ntype Meta_ping_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Meta_ping_Results_Promise) Struct() (Meta_ping_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Meta_ping_Results{s}, err\n}\n\ntype API struct{ Client capnp.Client }\n\n// API_TypeID is the unique identifier for the type API.\nconst API_TypeID = 0xb74958502f92fefd\n\nfunc (c API) Version(ctx context.Context, params func(API_version_Params) error, opts ...capnp.CallOption) API_version_Results_Promise {\n\tif c.Client == nil {\n\t\treturn API_version_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb74958502f92fefd,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:API\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(API_version_Params{Struct: s}) }\n\t}\n\treturn API_version_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FetchStore(ctx context.Context, params func(Sync_fetchStore_Params) error, opts ...capnp.CallOption) Sync_fetchStore_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchStore_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchStore\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchStore_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchStore_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FetchPatch(ctx context.Context, params func(Sync_fetchPatch_Params) error, opts ...capnp.CallOption) Sync_fetchPatch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchPatch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchPatch_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchPatch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) IsCompleteFetchAllowed(ctx context.Context, params func(Sync_isCompleteFetchAllowed_Params) error, opts ...capnp.CallOption) Sync_isCompleteFetchAllowed_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_isCompleteFetchAllowed_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isCompleteFetchAllowed\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_isCompleteFetchAllowed_Params{Struct: s}) }\n\t}\n\treturn Sync_isCompleteFetchAllowed_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) IsPushAllowed(ctx context.Context, params func(Sync_isPushAllowed_Params) error, opts ...capnp.CallOption) Sync_isPushAllowed_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_isPushAllowed_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isPushAllowed\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_isPushAllowed_Params{Struct: s}) }\n\t}\n\treturn Sync_isPushAllowed_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Push(ctx context.Context, params func(Sync_push_Params) error, opts ...capnp.CallOption) Sync_push_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_push_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_push_Params{Struct: s}) }\n\t}\n\treturn Sync_push_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FetchPatches(ctx context.Context, params func(Sync_fetchPatches_Params) error, opts ...capnp.CallOption) Sync_fetchPatches_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Sync_fetchPatches_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatches\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Sync_fetchPatches_Params{Struct: s}) }\n\t}\n\treturn Sync_fetchPatches_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Ping(ctx context.Context, params func(Meta_ping_Params) error, opts ...capnp.CallOption) Meta_ping_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Meta_ping_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb02d2ba0578cc7ff,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Meta\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Meta_ping_Params{Struct: s}) }\n\t}\n\treturn Meta_ping_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype API_Server interface {\n\tVersion(API_version) error\n\n\tFetchStore(Sync_fetchStore) error\n\n\tFetchPatch(Sync_fetchPatch) error\n\n\tIsCompleteFetchAllowed(Sync_isCompleteFetchAllowed) error\n\n\tIsPushAllowed(Sync_isPushAllowed) error\n\n\tPush(Sync_push) error\n\n\tFetchPatches(Sync_fetchPatches) error\n\n\tPing(Meta_ping) error\n}\n\nfunc API_ServerToClient(s API_Server) API {\n\tc, _ := s.(server.Closer)\n\treturn API{Client: server.New(API_Methods(nil, s), c)}\n}\n\nfunc API_Methods(methods []server.Method, s API_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 8)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb74958502f92fefd,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:API\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := API_version{c, opts, API_version_Params{Struct: p}, API_version_Results{Struct: r}}\n\t\t\treturn s.Version(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchStore\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchStore{c, opts, Sync_fetchStore_Params{Struct: p}, Sync_fetchStore_Results{Struct: r}}\n\t\t\treturn s.FetchStore(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchPatch{c, opts, Sync_fetchPatch_Params{Struct: p}, Sync_fetchPatch_Results{Struct: r}}\n\t\t\treturn s.FetchPatch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isCompleteFetchAllowed\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_isCompleteFetchAllowed{c, opts, Sync_isCompleteFetchAllowed_Params{Struct: p}, Sync_isCompleteFetchAllowed_Results{Struct: r}}\n\t\t\treturn s.IsCompleteFetchAllowed(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"isPushAllowed\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_isPushAllowed{c, opts, Sync_isPushAllowed_Params{Struct: p}, Sync_isPushAllowed_Results{Struct: r}}\n\t\t\treturn s.IsPushAllowed(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_push{c, opts, Sync_push_Params{Struct: p}, Sync_push_Results{Struct: r}}\n\t\t\treturn s.Push(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xf5692a07c5cf7872,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Sync\",\n\t\t\tMethodName:    \"fetchPatches\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Sync_fetchPatches{c, opts, Sync_fetchPatches_Params{Struct: p}, Sync_fetchPatches_Results{Struct: r}}\n\t\t\treturn s.FetchPatches(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb02d2ba0578cc7ff,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"net/capnp/api.capnp:Meta\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Meta_ping{c, opts, Meta_ping_Params{Struct: p}, Meta_ping_Results{Struct: r}}\n\t\t\treturn s.Ping(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\treturn methods\n}\n\n// API_version holds the arguments for a server call to API.version.\ntype API_version struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  API_version_Params\n\tResults API_version_Results\n}\n\ntype API_version_Params struct{ capnp.Struct }\n\n// API_version_Params_TypeID is the unique identifier for the type API_version_Params.\nconst API_version_Params_TypeID = 0xfbab528dd0716804\n\nfunc NewAPI_version_Params(s *capnp.Segment) (API_version_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn API_version_Params{st}, err\n}\n\nfunc NewRootAPI_version_Params(s *capnp.Segment) (API_version_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn API_version_Params{st}, err\n}\n\nfunc ReadRootAPI_version_Params(msg *capnp.Message) (API_version_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn API_version_Params{root.Struct()}, err\n}\n\nfunc (s API_version_Params) String() string {\n\tstr, _ := text.Marshal(0xfbab528dd0716804, s.Struct)\n\treturn str\n}\n\n// API_version_Params_List is a list of API_version_Params.\ntype API_version_Params_List struct{ capnp.List }\n\n// NewAPI_version_Params creates a new list of API_version_Params.\nfunc NewAPI_version_Params_List(s *capnp.Segment, sz int32) (API_version_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn API_version_Params_List{l}, err\n}\n\nfunc (s API_version_Params_List) At(i int) API_version_Params {\n\treturn API_version_Params{s.List.Struct(i)}\n}\n\nfunc (s API_version_Params_List) Set(i int, v API_version_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s API_version_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xfbab528dd0716804, s.List)\n\treturn str\n}\n\n// API_version_Params_Promise is a wrapper for a API_version_Params promised by a client call.\ntype API_version_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p API_version_Params_Promise) Struct() (API_version_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn API_version_Params{s}, err\n}\n\ntype API_version_Results struct{ capnp.Struct }\n\n// API_version_Results_TypeID is the unique identifier for the type API_version_Results.\nconst API_version_Results_TypeID = 0xebdd19e3dba3370b\n\nfunc NewAPI_version_Results(s *capnp.Segment) (API_version_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn API_version_Results{st}, err\n}\n\nfunc NewRootAPI_version_Results(s *capnp.Segment) (API_version_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn API_version_Results{st}, err\n}\n\nfunc ReadRootAPI_version_Results(msg *capnp.Message) (API_version_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn API_version_Results{root.Struct()}, err\n}\n\nfunc (s API_version_Results) String() string {\n\tstr, _ := text.Marshal(0xebdd19e3dba3370b, s.Struct)\n\treturn str\n}\n\nfunc (s API_version_Results) Version() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s API_version_Results) SetVersion(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\n// API_version_Results_List is a list of API_version_Results.\ntype API_version_Results_List struct{ capnp.List }\n\n// NewAPI_version_Results creates a new list of API_version_Results.\nfunc NewAPI_version_Results_List(s *capnp.Segment, sz int32) (API_version_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn API_version_Results_List{l}, err\n}\n\nfunc (s API_version_Results_List) At(i int) API_version_Results {\n\treturn API_version_Results{s.List.Struct(i)}\n}\n\nfunc (s API_version_Results_List) Set(i int, v API_version_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s API_version_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xebdd19e3dba3370b, s.List)\n\treturn str\n}\n\n// API_version_Results_Promise is a wrapper for a API_version_Results promised by a client call.\ntype API_version_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p API_version_Results_Promise) Struct() (API_version_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn API_version_Results{s}, err\n}\n\nconst schema_9bcb07fb35756ee6 = \"x\\xda\\xacU]h\\x1cU\\x14>\\xe7\\xde;\\x99\\x82\\x89\" +\n\t\"\\xcbe\\x8ad\\x05M\\x85\\xb5\\x85H\\x936U\\xa4\\x05\\xcd\" +\n\t\"&\\x9a\\xd6\\x05#3[P\\x1b\\x10\\x1cwo\\xbb[7\" +\n\t\"\\xbb\\x93\\x99Y\\xed*E\\xda\\x12\\xac\\x12\\xab\\xd4\\x9f\\x87\\xb6\" +\n\t\"JU\\xfa\\xd0\\x8a`\\x0b\\\"\\x14|\\xa9H0\\x05\\xf5E\" +\n\t\"|P\\xc1Z\\xfc\\x01QPX\\x8c\\x84\\xed\\xc8\\x9d\\xd9\\x99\" +\n\t\"\\xdc$\\x8d]\\x8bo\\xcb\\x9es\\xbf\\xf9\\xbes\\xbe\\xfb\\xdd\" +\n\t\"M[H\\x96l\\xd6^\\xee\\x02\\xb0\\x1e\\xd4\\xba\\x82\\x1fn\" +\n\t\":yq\\xea\\xd9\\xe24XiD\\x00\\xa6\\x03l\\xd9H\" +\n\t\"\\xf7\\\"\\xa0\\xb1\\x95\\x0e\\x03\\x06\\x1b.O\\xe7/\\xb5^9\" +\n\t\"\\x06<\\x8d\\x00\\x1a\\xca\\x86\\xc7\\xe8\\x90l\\x10a\\xc3\\xab\\xa7\" +\n\t\"\\x16\\xd2\\x1f\\xbex\\xfc\\x9d\\xa8!\\x04\\x98\\xa6\\xe7\\x11X\\xf0\" +\n\t\"\\xc0\\xfc\\xc1\\x99?\\x0fn>\\xa3b\\xd7\\xe93\\xf2\\xe8\\x81\" +\n\t\"\\xf0h0;\\xf3\\xc8\\xc9;6~\\x00|-\\x0d~\\xaa\" +\n\t\"\\xd6\\xefZ\\xd0/\\x1e\\x07@\\xe3\\x14\\x9d3\\xceR\\x1d\\xc0\" +\n\t\"x\\x9f\\xee0\\xbe\\x92\\xbf\\x82\\xe6'\\x8f\\x1f9\\xe2\\xa6\\xce\" +\n\t\"\\xa9h\\x1f\\xd3\\x09\\x89\\xf6Y\\x88\\xd6\\xbart\\xd0|4\" +\n\t\"\\xf7\\xd1\\x0a\\xb4\\xdf\\xe8\\x05\\xa3\\x19\\xa2\\xfdAw\\x18i\\xb6\" +\n\t\"\\x01 hd\\x9a7\\x1e#\\x87gUY\\x9c=!\\xd1\" +\n\t\"na\\x12\\xed\\x8d\\xf5\\x7f\\x9d[\\xb7\\xee\\xcc\\xe7\\x8a\\xac{\" +\n\t\"\\xd8\\x90\\x94\\xc5_\\xcb\\xedy\\x88\\x15\\xbeU*\\xb7\\xb3\\x09\" +\n\t\"Y9\\xb4\\xfe\\xf0\\xad7\\xa7~W+\\x9c\\xb9\\xb22\\x93\" +\n\t\"\\x99\\xabno\\x9d\\xbe\\xa4TZ\\xb4_V\\xee\\xe5\\xf7\\xf3\" +\n\t\"\\xfd\\xdf\\xbf\\xfd\\xb3*\\xebGzA\\x12i\\x86\\xb2n\\xb8\" +\n\t\"\\xfb\\xddo.\\xa7\\xbf\\xfb\\x15\\xac\\xde\\xa4!\\xcdFe\\xc3\" +\n\t\"m!Sw\\xdf\\x17\\x9f\\xea\\xfd\\xe5\\xe6\\x0a\\xdd#l\\xce\" +\n\t\"\\x18\\x0f\\xfbs\\xecy4,M\\x07h\\x9d\\xf8e\\xd3[\" +\n\t\"\\xd9;\\xe7\\x15\\xd9[\\xb5P\\xf6\\x98&\\xc1f\\xf7?y\" +\n\t\"\\xe0a\\xfb\\xca\\xbcBTh!\\xd1\\xafYc\\xec\\xe8\\xa1\" +\n\t\"\\xcc\\xdf\\xea\\xc4\\xc65W\\x1e\\xdd\\x15\\x1ee\\xa5\\xa9/_\" +\n\t\"\\xca\\xbf\\xb7\\x00\\xbc7>\\xda\\xd0\\xb6\\xc9\\xa3U\\xe1\\x0f\\x16\" +\n\t\"l\\xa7\\xca\\x9cA\\xdb)\\x0f\\xc8\\x9f\\xce\\xb6\\x9d\\x8dja\" +\n\t\"`\\xb7\\xf0\\x0b%\\xd3\\xf6\\x0b%\\xe1eL;\\xe5\\xda\\x93\" +\n\t\"\\x9e\\xc5(\\x03`\\x08\\xc0{\\xf2\\x00V7E\\xab\\x97`\" +\n\t\"\\xb0\\xdb\\xadM\\xe6\\xaaE\\x01\\xb8\\x0f5 \\xa8\\x01&\\xc8\" +\n\t\"TE\\x1e\\x17\\xbe=\\xe0\\x94\\xab{2y\\xd1\\xe7\\xd5+\" +\n\t\"\\xfe\\x12\\xc8!\\x00k\\x0dEk-\\xc1>W8\\x95\\x06\" +\n\t\"v\\x03\\xc1n\\x05L[A\\xb3\\xec\\xddW\\x9bt*\\xc2\" +\n\t\"\\x17\\xdb%\\xe1\\x91J\\xa5\\xf6\\xb4(f\\x86M[\\x12\\xfe\" +\n\t\"\\x17}e\\xcf\\xac{I\\x7f~X\\xac\\xa0\\xa3*,{\" +\n\t\"Q'`\\x11\\x11\\x08\\xa2B\\x8a,W\\x08`\\\"Z\\x8c\" +\n\t\"j\\x00\\x89\\xbd0\\xbe\\xad\\x9c\\xf7\\x03\\xe1\\x9a\\x9e\\x92c\\xc8\" +\n\t\"\\xa2\\x89\\xd8\\xd1\\x122R\\x10\\xbd\\xbe\\x15,!8b\\xe6\" +\n\t\"\\x14z\\xb130\\xf62\\xe7\\xa3!\\xbd\\xe7\\x9e\\x12\\xaeW\" +\n\t\"\\xaeU\\xb3h\\xadA\\xc5\\xc9\\x00\\x8b\\xd9\\x00\\xd0\\x19\\xf5\\xbc\" +\n\t\"\\xf0\\xea\\xfa\\xb2\\xe1\\xf6/\\xee:U\\xb4}\\x1b{\\x80`\" +\n\t\"\\xcfj\\xbe\\x09\\x11\\x9d\\xbaWJ|s\\xad/\\xef\\xf4k\" +\n\t\"\\xae\\x88\\x87\\xd6\\xb1\\x0d\\xcc\\xbe\\xa5\\xb6Y\\xc5\\xbc\\xed\\xeb\\x90\" +\n\t\"\\xb4uuj\\xcb|\\xe42\\xb8\\x1e\\x9b\\xb1e[\\x1ch\" +\n\t\"o\\xe8\\xaa\\xa0\\xa3\\x8b\\xe3\\x8d7\\x89\\x0c\\x08\\xb2\\xd5l!\" +\n\t\"YG\\xbe\\xed\\x0d\\x8d\\x11G)\\x9e\\x80v,\\x9d\\x9d\\x00\" +\n\t\"\\xc2O\\xeb\\x88I\\xdec\\x1c\\xd5\\xfcMY{]G\\x92\" +\n\t\"\\xbc9\\x18\\xa7'\\x7f\\xe1<\\x10>\\xad#MB\\x18\\xe3\" +\n\t\"\\xe7\\x877\\\\ |JG\\x96\\xa4\\x1b\\xc6\\xe9\\xce\\x85\\xbc\" +\n\t\"'\\xbbt\\xd4\\x92\\x97\\x10\\xe3\\xa0\\xe3\\xe3{\\x81\\xf01=\" +\n\t\"\\x88W\\x0d\\xd4\\x15Y\\x0cb\\xcf\\x01-\\x94\\xb2r\\x9a\\xd1\" +\n\t\"\\x120\\xde\\xc2p\\xb4\\x86\\xb0\\x14\\xad\\x1d\\xfa\\xda\\xff\\xa4\\xa4\" +\n\t\"\\xbbT\\x88\\x94\\x0c\\xbe\\x8e\\xeegd\\xb5\\xff\\xd3\\xe4\\xcb\\xfd\" +\n\t\"u\\x8dt\\xbeZ\\x96\\xfe\\xb7O\\xabvjG\\xe7?\\x01\" +\n\t\"\\x00\\x00\\xff\\xff\\xb3\\xd4\\x83\\x1a\"\n\nfunc init() {\n\tschemas.Register(schema_9bcb07fb35756ee6,\n\t\t0x85647b71cba016e2,\n\t\t0x9a90fde15285e327,\n\t\t0xa29b8ab519fba593,\n\t\t0xaa3182f28c82f848,\n\t\t0xb02d2ba0578cc7ff,\n\t\t0xb20f728e8e60c3f5,\n\t\t0xb74958502f92fefd,\n\t\t0xc788029a0ef52479,\n\t\t0xceaa2020b2f72696,\n\t\t0xdc63044e67499411,\n\t\t0xdcee0f1a1e882683,\n\t\t0xe1a9fd466eca248c,\n\t\t0xe7a1e07d1144113e,\n\t\t0xebdd19e3dba3370b,\n\t\t0xf5692a07c5cf7872,\n\t\t0xf834409e30e8009c,\n\t\t0xf8fe6156816b7dc7,\n\t\t0xf9248392457904d7,\n\t\t0xfbab528dd0716804)\n}\n"
  },
  {
    "path": "net/client.go",
    "content": "package net\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\n\te \"github.com/pkg/errors\"\n\tnetBackend \"github.com/sahib/brig/net/backend\"\n\t\"github.com/sahib/brig/net/capnp\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n\tlog \"github.com/sirupsen/logrus\"\n\t\"zombiezen.com/go/capnproto2/rpc\"\n)\n\n// Client is a client for inter-remote communication.\n// It implements convenient methods to talk to other brig instances.\ntype Client struct {\n\tbk netBackend.Backend\n\n\tctx      context.Context\n\tconn     *rpc.Conn\n\trawConn  net.Conn\n\tauthConn *AuthReadWriter\n\tapi      capnp.API\n}\n\n// Dial creates a new Client connected to `name`.\nfunc Dial(ctx context.Context, name string, rp *repo.Repository, bk netBackend.Backend, pingMap *PingMap) (*Client, error) {\n\tremote, err := rp.Remotes.Remote(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddr := remote.Fingerprint.Addr()\n\tctl, err := DialByAddr(ctx, addr, remote.Fingerprint, rp, bk, pingMap)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"by-addr\")\n\t}\n\n\treturn ctl, nil\n}\n\n// DialByAddr is like Dial but does not get its info from the remote list.\nfunc DialByAddr(\n\tctx context.Context,\n\taddr string,\n\tfingerprint peer.Fingerprint,\n\trp *repo.Repository,\n\tbk netBackend.Backend,\n\tpingMap *PingMap,\n) (*Client, error) {\n\tkr, err := rp.Keyring()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\townPubKey, err := kr.OwnPubKey()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Low level by addr, not by brig's remote name:\n\tlog.Debugf(\"raw dial to %s:%s\", addr, fingerprint.PubKeyID())\n\trawConn, err := bk.Dial(addr, fingerprint.PubKeyID(), \"brig/caprpc\")\n\tif err != nil {\n\t\tpingMap.hintNetAttempt(addr, false)\n\t\treturn nil, e.Wrapf(err, \"raw\")\n\t}\n\n\townName := rp.Immutables.Owner()\n\tif fingerprint == \"\" {\n\t\treturn nil, fmt.Errorf(\"rejecting own, empty fingerprint... bug?\")\n\t}\n\n\tauthConn := NewAuthReadWriter(rawConn, kr, ownPubKey, ownName, func(pubKey []byte) error {\n\t\tif !fingerprint.PubKeyMatches(pubKey) {\n\t\t\tpingMap.hintNetAttempt(addr, false)\n\t\t\treturn fmt.Errorf(\"remote pubkey does not match fingerprint\")\n\t\t}\n\n\t\treturn nil\n\t})\n\n\t// Trigger the authentication:\n\t// (otherwise it would be triggered on the first read/write)\n\tif err := authConn.Trigger(); err != nil {\n\t\tpingMap.hintNetAttempt(addr, false)\n\t\treturn nil, e.Wrapf(err, \"auth\")\n\t}\n\n\tpingMap.hintNetAttempt(addr, true)\n\n\t// Setup capnp-rpc:\n\ttransport := rpc.StreamTransport(rawConn)\n\tclientConn := rpc.NewConn(transport, rpc.ConnLog(nil))\n\tapi := capnp.API{Client: clientConn.Bootstrap(ctx)}\n\n\treturn &Client{\n\t\tctx:      ctx,\n\t\tauthConn: authConn,\n\t\tconn:     clientConn,\n\t\trawConn:  rawConn,\n\t\tapi:      api,\n\t}, nil\n}\n\n// PeekRemotePubkey connects to `addr` and tries to read the public key they claim.\nfunc PeekRemotePubkey(\n\tctx context.Context,\n\taddr string,\n\trp *repo.Repository,\n\tbk netBackend.Backend,\n) ([]byte, string, error) {\n\tkr, err := rp.Keyring()\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\townPubKey, err := kr.OwnPubKey()\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\n\tlog.Debugf(\"peek to %s\", addr)\n\trawConn, err := bk.Dial(addr, \"\", \"brig/caprpc\")\n\tif err != nil {\n\t\treturn nil, \"\", e.Wrapf(err, \"raw\")\n\t}\n\n\towner := rp.Immutables.Owner()\n\tauthConn := NewAuthReadWriter(rawConn, kr, ownPubKey, owner, func(_ []byte) error {\n\t\treturn nil\n\t})\n\n\t// io.EOF is expected, since other side will close not auth'd connection\n\t// after it failed to check our public key.\n\tif err := authConn.Trigger(); err != nil && err != io.EOF {\n\t\tlog.Warningf(\"peek: %v\", err)\n\t}\n\n\treturn authConn.RemotePubKey(), authConn.RemoteName(), nil\n}\n\n// Close will close the connection from the client side\nfunc (cl *Client) Close() error {\n\treturn cl.conn.Close()\n}\n\n/////////////////////\n// ACTUAL COMMANDS //\n/////////////////////\n\n// Ping will contact the remote. This will only work if both remotes are authenticated.\n// This in contrast to the backend ping, which will work when there is a network connection.\nfunc (cl *Client) Ping() error {\n\tcall := cl.api.Ping(cl.ctx, func(p capnp.Meta_ping_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n\n// FetchStore tries to fetch all store data from the remote.\n// This will only work when the other store allowed us to access all folders.\n// (See IsCompleteFetchAllowed)\nfunc (cl *Client) FetchStore() (*bytes.Buffer, error) {\n\tcall := cl.api.FetchStore(cl.ctx, func(p capnp.Sync_fetchStore_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdata, err := result.Data()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn bytes.NewBuffer(data), nil\n}\n\n// FetchPatch tries to get a set of changes since `fromIndex`.\n// The serialized patch is returned as byte slice.\nfunc (cl *Client) FetchPatch(fromIndex int64) ([]byte, error) {\n\tcall := cl.api.FetchPatch(cl.ctx, func(p capnp.Sync_fetchPatch_Params) error {\n\t\tp.SetFromIndex(fromIndex)\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn result.Data()\n}\n\n// FetchPatches tries to get a set of changes since `fromIndex`, packages as\n// individual changes.  The serialized patch is returned as byte slice.\nfunc (cl *Client) FetchPatches(fromIndex int64) ([]byte, error) {\n\tcall := cl.api.FetchPatches(cl.ctx, func(p capnp.Sync_fetchPatches_Params) error {\n\t\tp.SetFromIndex(fromIndex)\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn result.Data()\n}\n\n// IsCompleteFetchAllowed asks the remote if we can use FetchStore.\nfunc (cl *Client) IsCompleteFetchAllowed() (bool, error) {\n\tcall := cl.api.IsCompleteFetchAllowed(cl.ctx, func(p capnp.Sync_isCompleteFetchAllowed_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\treturn result.IsAllowed(), nil\n}\n\n// IsPushAllowed asks the remote if we may push to them.\nfunc (cl *Client) IsPushAllowed() (bool, error) {\n\tcall := cl.api.IsPushAllowed(cl.ctx, func(p capnp.Sync_isPushAllowed_Params) error {\n\t\treturn nil\n\t})\n\n\tresult, err := call.Struct()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\treturn result.IsAllowed(), nil\n}\n\n// Push asks the remote to do a \"brig sync\" with us.\nfunc (cl *Client) Push() error {\n\tcall := cl.api.Push(cl.ctx, func(p capnp.Sync_push_Params) error {\n\t\treturn nil\n\t})\n\n\t_, err := call.Struct()\n\treturn err\n}\n"
  },
  {
    "path": "net/client_test.go",
    "content": "package net\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/backend\"\n\t\"github.com/sahib/brig/catfs\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/stretchr/testify/require\"\n)\n\ntype testUnit struct {\n\tctl *Client\n\tsrv *Server\n\tfs  *catfs.FS\n\trp  *repo.Repository\n\tbk  backend.Backend\n}\n\nfunc withNetServer(t *testing.T, name string, basePath string, fn func(u testUnit)) {\n\tbasePath, err := ioutil.TempDir(\"\", \"brig-ctl-test\")\n\trequire.Nil(t, err)\n\n\tnetDbPath := \"/tmp/brig-net-test-netdb\"\n\tregDbPath := \"/tmp/brig-net-test-reg.yml\"\n\trequire.Nil(t, err)\n\n\tdefer func() {\n\t\trequire.Nil(t, os.RemoveAll(basePath))\n\t\trequire.Nil(t, os.RemoveAll(netDbPath))\n\t\trequire.Nil(t, os.RemoveAll(regDbPath))\n\t}()\n\n\t// The following env vars are only read in FromName.\n\trequire.Nil(t, os.Setenv(\"BRIG_MOCK_USER\", name))\n\trequire.Nil(t, os.Setenv(\"BRIG_MOCK_NET_DB_PATH\", netDbPath))\n\tbk, err := backend.FromName(\"mock\", basePath, \"\")\n\trequire.Nil(t, err)\n\n\terr = repo.Init(repo.InitOptions{\n\t\tBaseFolder:  basePath,\n\t\tOwner:       name,\n\t\tBackendName: \"mock\",\n\t\tDaemonURL:   \"not-relevant-here\",\n\t})\n\trequire.NoError(t, err)\n\n\trp, err := repo.Open(basePath)\n\trequire.NoError(t, err)\n\tdefer rp.Close()\n\n\tsrv, err := NewServer(rp, bk, nil)\n\trequire.NoError(t, err)\n\n\tfs, err := rp.FS(name, bk)\n\trequire.NoError(t, err)\n\n\twaitForDeath := make(chan bool)\n\tgo func() {\n\t\tdefer func() {\n\t\t\twaitForDeath <- true\n\t\t}()\n\t\trequire.Nil(t, srv.Serve())\n\t\trequire.Nil(t, srv.Close())\n\t}()\n\n\t// Allow a short time for the server go routine to fully boot up.\n\ttime.Sleep(50 * time.Millisecond)\n\n\t// Run the actual test function:\n\tfn(testUnit{\n\t\trp:  rp,\n\t\tbk:  bk,\n\t\tfs:  fs,\n\t\tsrv: srv,\n\t})\n\n\t// wait until serve was done.\n\tsrv.Quit()\n\t<-waitForDeath\n}\n\nfunc buildFingerprint(t *testing.T, u testUnit) peer.Fingerprint {\n\tkr, err := u.rp.Keyring()\n\trequire.NoError(t, err)\n\n\townPubKey, err := kr.OwnPubKey()\n\trequire.NoError(t, err)\n\n\tself, err := u.srv.Identity()\n\trequire.NoError(t, err)\n\n\treturn peer.BuildFingerprint(self.Addr, ownPubKey)\n}\n\nfunc withNetPair(t *testing.T, fn func(a, b testUnit)) {\n\tbasePath, err := ioutil.TempDir(\"\", \"brig-net-test\")\n\trequire.Nil(t, err)\n\n\tdefer func() {\n\t\trequire.Nil(t, os.RemoveAll(basePath))\n\t}()\n\n\twithNetServer(t, \"alice\", basePath, func(a testUnit) {\n\t\twithNetServer(t, \"bob\", basePath, func(b testUnit) {\n\t\t\t// Add each other's fingerprints:\n\t\t\trequire.Nil(t, a.rp.Remotes.AddOrUpdateRemote(repo.Remote{\n\t\t\t\tName:        \"bob\",\n\t\t\t\tFingerprint: buildFingerprint(t, b),\n\t\t\t}))\n\t\t\trequire.Nil(t, b.rp.Remotes.AddOrUpdateRemote(repo.Remote{\n\t\t\t\tName:        \"alice\",\n\t\t\t\tFingerprint: buildFingerprint(t, a),\n\t\t\t}))\n\n\t\t\tctx := context.Background()\n\t\t\taliCtl, err := Dial(ctx, \"alice\", b.rp, b.bk, nil)\n\t\t\trequire.Nil(t, err)\n\n\t\t\tbobCtl, err := Dial(ctx, \"bob\", a.rp, a.bk, nil)\n\t\t\trequire.Nil(t, err)\n\n\t\t\ta.ctl = bobCtl\n\t\t\tb.ctl = aliCtl\n\n\t\t\tfn(a, b)\n\t\t})\n\t})\n}\n\nfunc TestClientPing(t *testing.T) {\n\twithNetPair(t, func(a, b testUnit) {\n\t\tfor i := 0; i < 100; i++ {\n\t\t\tif err := a.ctl.Ping(); err != nil {\n\t\t\t\tt.Fatalf(\"ping to bob failed: %v\", err)\n\t\t\t}\n\n\t\t\tif err := b.ctl.Ping(); err != nil {\n\t\t\t\tt.Fatalf(\"ping to alice failed: %v\", err)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc TestClientFetchStore(t *testing.T) {\n\twithNetPair(t, func(a, b testUnit) {\n\t\tfilePath := \"/a/new/name/has/been/born\"\n\t\tfileData := []byte{1, 2, 3}\n\t\tfileSrc := bytes.NewReader(fileData)\n\n\t\tif err := a.fs.Stage(filePath, fileSrc); err != nil {\n\t\t\tt.Fatalf(\"failed to stage simple file: %v\", err)\n\t\t}\n\n\t\tdata, err := b.ctl.FetchStore()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"failed to read store: %v\", err)\n\t\t}\n\n\t\taliceFsAtBob, err := b.rp.FS(\"alice\", b.bk)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get empty bob fs: %v\", err)\n\t\t}\n\n\t\t_, err = aliceFsAtBob.Stat(filePath)\n\t\tif !ie.IsNoSuchFileError(err) {\n\t\t\tt.Fatalf(\"File has existed in bob's empty store (wtf?): %v\", err)\n\t\t}\n\n\t\tif err := aliceFsAtBob.Import(data); err != nil {\n\t\t\tt.Fatalf(\"Failed to import data: %v\", err)\n\t\t}\n\n\t\tinfo, err := aliceFsAtBob.Stat(filePath)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to read file exported from alice: %v\", err)\n\t\t}\n\n\t\t// Check superficially that store was imported right:\n\t\trequire.Equal(t, info.Path, filePath)\n\t\trequire.Equal(t, info.User, \"alice\")\n\t\trequire.Equal(t, info.Size, uint64(3))\n\t\trequire.Equal(t, info.IsDir, false)\n\t})\n}\n\nfunc TestClientFetchPatch(t *testing.T) {\n\twithNetPair(t, func(a, b testUnit) {\n\t\t// Create a new file in alice's fs.\n\t\trequire.Nil(t, a.fs.Stage(\"/new_file\", bytes.NewReader([]byte{1, 2, 3})))\n\n\t\t// Get a patch from alice:\n\t\tpatchData, err := b.ctl.FetchPatch(0)\n\t\trequire.NoError(t, err)\n\t\trequire.NotNil(t, patchData)\n\n\t\t// Create a new empty FS for alice.\n\t\taliceFsAtBob, err := b.rp.FS(\"alice\", b.bk)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Failed to get empty bob fs: %v\", err)\n\t\t}\n\n\t\t// It should have the initial patch version of 0.\n\t\tlastPatchIdx, err := aliceFsAtBob.LastPatchIndex()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(0), lastPatchIdx)\n\n\t\t// After applying the patch, we should have bob's data.\n\t\trequire.NoError(t, aliceFsAtBob.ApplyPatch(patchData))\n\t\tnewFileInfo, err := aliceFsAtBob.Stat(\"/new_file\")\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, \"/new_file\", newFileInfo.Path)\n\t\trequire.Equal(t, uint64(3), newFileInfo.Size)\n\n\t\t// Check that the new patch version is 2 (i.e. bob has two commits)\n\t\taliceFsAtBob.Log(\"HEAD\", func(c *catfs.Commit) error {\n\t\t\tfmt.Println(c)\n\t\t\treturn nil\n\t\t})\n\n\t\tlastPatchIdx, err = aliceFsAtBob.LastPatchIndex()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(2), lastPatchIdx)\n\n\t\t// If we fetch the same patch again, it will be empty.\n\t\t// (data will be not len=0, but no real contents)\n\t\tpatchData, err = b.ctl.FetchPatch(2)\n\t\trequire.NoError(t, err)\n\t\trequire.NotNil(t, patchData)\n\t\trequire.NoError(t, aliceFsAtBob.ApplyPatch(patchData))\n\n\t\t// Last patch was empty, so should not bump the version.\n\t\tlastPatchIdx, err = aliceFsAtBob.LastPatchIndex()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(2), lastPatchIdx)\n\n\t\t// Bob's patch index should not have changed.\n\t\t// For bob, the patch index does not make really sense,\n\t\t// since he's the owner of the fs and always has the latest version.\n\t\tlastBobPatchIdx, err := b.fs.LastPatchIndex()\n\t\trequire.NoError(t, err)\n\t\trequire.Equal(t, int64(0), lastBobPatchIdx)\n\t})\n}\n\nfunc TestClientCompleteFetchAllowed(t *testing.T) {\n\twithNetPair(t, func(a, b testUnit) {\n\t\tisAllowed, err := b.ctl.IsCompleteFetchAllowed()\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isAllowed)\n\n\t\t// Make the remote have only access to a specific sub folder:\n\t\trmt, err := a.rp.Remotes.Remote(\"bob\")\n\t\trequire.Nil(t, err)\n\n\t\terr = a.rp.Remotes.AddOrUpdateRemote(repo.Remote{\n\t\t\tFingerprint: rmt.Fingerprint,\n\t\t\tName:        rmt.Name,\n\t\t\tFolders: []repo.Folder{\n\t\t\t\t{\n\t\t\t\t\tFolder: \"/photos\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\trequire.Nil(t, err)\n\n\t\tisAllowed, err = b.ctl.IsCompleteFetchAllowed()\n\t\trequire.Nil(t, err)\n\t\trequire.False(t, isAllowed)\n\n\t\t// Try again with the root folder enabled:\n\t\terr = a.rp.Remotes.AddOrUpdateRemote(repo.Remote{\n\t\t\tFingerprint: rmt.Fingerprint,\n\t\t\tName:        rmt.Name,\n\t\t\tFolders: []repo.Folder{\n\t\t\t\t{\n\t\t\t\t\tFolder: \"/\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tFolder: \"/photos\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\trequire.Nil(t, err)\n\n\t\t// This also tests that we are able to change remote config\n\t\t// without needing to reconnect.\n\t\tisAllowed, err = b.ctl.IsCompleteFetchAllowed()\n\t\trequire.Nil(t, err)\n\t\trequire.True(t, isAllowed)\n\t})\n}\n"
  },
  {
    "path": "net/handlers.go",
    "content": "package net\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/sahib/brig/backend\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/brig/net/capnp\"\n\t\"github.com/sahib/brig/repo\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\ntype requestHandler struct {\n\tbk             backend.Backend\n\trp             *repo.Repository\n\tctx            context.Context\n\trapi           remotesapi.RemotesAPI\n\tcurrRemoteName string\n}\n\nfunc completeExportAllowed(folders []repo.Folder) bool {\n\tif len(folders) == 0 {\n\t\treturn true\n\t}\n\n\tfor _, folder := range folders {\n\t\tif folder.Folder == \"/\" {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (hdl *requestHandler) FetchStore(call capnp.Sync_fetchStore) error {\n\t// We should only export our complete metadata, when the root directory\n\t// was enabled or no folders were configured.\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !completeExportAllowed(currRemote.Folders) {\n\t\tlog.Warningf(\"Attempt to read complete store from `%v`\", hdl.currRemoteName)\n\t\treturn errors.New(\"refusing export\")\n\t}\n\n\tfs, err := hdl.rp.FS(hdl.rp.Immutables.Owner(), hdl.bk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbuf := &bytes.Buffer{}\n\tif err := fs.Export(buf); err != nil {\n\t\treturn err\n\t}\n\n\treturn call.Results.SetData(buf.Bytes())\n}\n\nfunc (hdl *requestHandler) FetchPatch(call capnp.Sync_fetchPatch) error {\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfs, err := hdl.rp.FS(hdl.rp.Immutables.Owner(), hdl.bk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Apply the respective folder filter for this remote.\n\tprefixes := []string{}\n\tfor _, folder := range currRemote.Folders {\n\t\tprefixes = append(prefixes, folder.Folder)\n\t}\n\n\tfromIndex := call.Params.FromIndex()\n\tfromRev := fmt.Sprintf(\"commit[%d]\", fromIndex)\n\n\tlog.Debugf(\"Bundling up all changes starting from: %s\", fromRev)\n\tpatchData, err := fs.MakePatch(fromRev, prefixes, currRemote.Name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcall.Results.SetData(patchData)\n\treturn nil\n}\n\nfunc (hdl *requestHandler) FetchPatches(call capnp.Sync_fetchPatches) error {\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfs, err := hdl.rp.FS(hdl.rp.Immutables.Owner(), hdl.bk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Apply the respective folder filter for this remote.\n\tprefixes := []string{}\n\tfor _, folder := range currRemote.Folders {\n\t\tprefixes = append(prefixes, folder.Folder)\n\t}\n\n\tfromIndex := call.Params.FromIndex()\n\tfromRev := fmt.Sprintf(\"commit[%d]\", fromIndex)\n\n\tlog.Debugf(\"Bundling up all changes individually starting from: %s\", fromRev)\n\tpatchData, err := fs.MakePatches(fromRev, prefixes, currRemote.Name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcall.Results.SetData(patchData)\n\treturn nil\n}\n\nfunc (hdl *requestHandler) IsCompleteFetchAllowed(call capnp.Sync_isCompleteFetchAllowed) error {\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tisAllowed := completeExportAllowed(currRemote.Folders)\n\tcall.Results.SetIsAllowed(isAllowed)\n\treturn nil\n}\n\nfunc (hdl *requestHandler) Ping(call capnp.Meta_ping) error {\n\treturn call.Results.SetReply(\"ALIVE\")\n}\n\nfunc (hdl *requestHandler) Version(call capnp.API_version) error {\n\tcall.Results.SetVersion(1)\n\treturn nil\n}\n\nfunc (hdl *requestHandler) IsPushAllowed(call capnp.Sync_isPushAllowed) error {\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcall.Results.SetIsAllowed(currRemote.AcceptPush)\n\treturn nil\n}\n\nfunc (hdl *requestHandler) Push(call capnp.Sync_push) error {\n\t// NOTE: You might be confused by the name \"Push\".\n\t// This is the RECEIVING side of the push.\n\tcurrRemote, err := hdl.rp.Remotes.Remote(hdl.currRemoteName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !currRemote.AcceptPush {\n\t\treturn fmt.Errorf(\"pushing is not allowed for you\")\n\t}\n\n\tlog.Infof(\"Syncing with »%s« because he asked us to via a push.\", currRemote.Name)\n\treturn hdl.rapi.Sync(currRemote.Name)\n}\n"
  },
  {
    "path": "net/mock/mock.go",
    "content": "package mock\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/net/backend\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// NetBackend provides a testing backend implementation\n// of net.Backend. It only works on a single machine\n// by storing some data into a temporary directory.\ntype NetBackend struct {\n\tisOnline bool\n\tconns    map[string]chan net.Conn\n\tpath     string\n\tname     string\n\tport     int\n}\n\n// NewNetBackend returns a new fake NetBackend\nfunc NewNetBackend(path, name string) *NetBackend {\n\treturn &NetBackend{\n\t\tisOnline: true,\n\t\tconns:    make(map[string]chan net.Conn),\n\t\tname:     name,\n\t\tport:     util.FindFreePort(),\n\t\tpath:     path,\n\t}\n}\n\n// PublishName is a fake implementation.\nfunc (nb *NetBackend) PublishName(partialName string) error {\n\tdiscoveryName := filepath.Join(nb.path, \"discovery\", partialName, nb.name)\n\tif err := os.MkdirAll(filepath.Dir(discoveryName), 0744); err != nil {\n\t\treturn err\n\t}\n\n\treturn ioutil.WriteFile(discoveryName, nil, 0644)\n}\n\n// ResolveName is a fake implementation.\nfunc (nb *NetBackend) ResolveName(ctx context.Context, partialName string) ([]peer.Info, error) {\n\tdiscoDir := filepath.Join(nb.path, \"discovery\", partialName)\n\tnames, err := ioutil.ReadDir(discoDir)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif len(names) == 0 {\n\t\treturn nil, fmt.Errorf(\"no such peer: %v\", partialName)\n\t}\n\n\tinfos := []peer.Info{}\n\tfor _, name := range names {\n\t\tdnsName := filepath.Join(nb.path, \"dns\", filepath.Base(name.Name()))\n\t\tdata, err := ioutil.ReadFile(dnsName) // #nosec\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"no such peer: %v\", name)\n\t\t}\n\n\t\tinfos = append(infos, peer.Info{\n\t\t\tAddr: string(data),\n\t\t\tName: peer.Name(name.Name()),\n\t\t})\n\t}\n\n\treturn infos, nil\n}\n\n// Connect is a fake implementation.\nfunc (nb *NetBackend) Connect() error {\n\tif nb.isOnline {\n\t\treturn fmt.Errorf(\"already online\")\n\t}\n\n\tdnsName := filepath.Join(nb.path, \"dns\", nb.name)\n\tif err := os.MkdirAll(filepath.Dir(dnsName), 0744); err != nil {\n\t\treturn err\n\t}\n\n\tdnsTag := fmt.Sprintf(\"%s@%d\", nb.name, nb.port)\n\n\tif err := ioutil.WriteFile(dnsName, []byte(dnsTag), 0644); err != nil {\n\t\treturn e.Wrap(err, \"failed to write dns tag\")\n\t}\n\n\tnb.isOnline = true\n\treturn nil\n}\n\n// Disconnect is a fake implementation.\nfunc (nb *NetBackend) Disconnect() error {\n\tif !nb.isOnline {\n\t\treturn fmt.Errorf(\"already offline\")\n\t}\n\n\tnb.isOnline = false\n\treturn nil\n}\n\n// IsOnline is a fake implementation.\nfunc (nb *NetBackend) IsOnline() bool {\n\treturn nb.isOnline\n}\n\n// Identity is a fake implementation.\nfunc (nb *NetBackend) Identity() (peer.Info, error) {\n\tdnsTag := fmt.Sprintf(\"%s@%d\", nb.name, nb.port)\n\treturn peer.Info{\n\t\tAddr: dnsTag,\n\t\tName: peer.Name(nb.name),\n\t}, nil\n}\n\nfunc getPortFromAddr(peerAddr string) (int, error) {\n\tsplit := strings.SplitN(peerAddr, \"@\", 2)\n\tif len(split) < 2 {\n\t\treturn 0, fmt.Errorf(\"invalid mock addr: %s\", peerAddr)\n\t}\n\n\tport, err := strconv.Atoi(split[1])\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid mock addr port: %s %v\", peerAddr, err)\n\t}\n\n\treturn port, nil\n}\n\n// Dial is a fake implementation.\nfunc (nb *NetBackend) Dial(peerAddr, fingerprint, protocol string) (net.Conn, error) {\n\tport, err := getPortFromAddr(peerAddr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn net.Dial(\"tcp\", fmt.Sprintf(\"localhost:%d\", port))\n}\n\n// Ping is a fake implementation.\nfunc (nb *NetBackend) Ping(addr string) (backend.Pinger, error) {\n\treturn pingerByName(addr)\n}\n\n// Listen is a fake implementation.\nfunc (nb *NetBackend) Listen(protocol string) (net.Listener, error) {\n\taddr := fmt.Sprintf(\"localhost:%d\", nb.port)\n\tlog.Debugf(\"Mock listening on %s\", addr)\n\treturn net.Listen(\"tcp\", addr)\n}\n"
  },
  {
    "path": "net/mock/pinger.go",
    "content": "package mock\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\t\"net\"\n\t\"time\"\n)\n\ntype dummyPinger struct {\n\tlastSeen  time.Time\n\troundtrip time.Duration\n\tquitCh    chan bool\n\terr       error\n}\n\nfunc (dp *dummyPinger) LastSeen() time.Time {\n\treturn dp.lastSeen\n}\n\nfunc (dp *dummyPinger) Roundtrip() time.Duration {\n\treturn dp.roundtrip\n}\n\nfunc (dp *dummyPinger) Err() error {\n\treturn dp.err\n}\n\nfunc (dp *dummyPinger) Close() error {\n\tdp.quitCh <- true\n\treturn nil\n}\n\nfunc (dp *dummyPinger) ping(port int) {\n\tconn, err := net.Dial(\"tcp\", fmt.Sprintf(\"localhost:%d\", port))\n\tif err != nil {\n\t\tdp.err = fmt.Errorf(\"no route: %v\", err)\n\t\treturn\n\t}\n\n\tconn.Close()\n\n\t// Simulate a successful ping:\n\tjitter := time.Duration(rand.Intn(5000)) * time.Nanosecond\n\tdp.roundtrip = 20*time.Millisecond + jitter\n\tdp.lastSeen = time.Now()\n\treturn\n}\n\nfunc pingerByName(addr string) (*dummyPinger, error) {\n\tport, err := getPortFromAddr(addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdp := &dummyPinger{\n\t\tquitCh: make(chan bool, 10),\n\t}\n\n\tgo func() {\n\t\tticker := time.NewTicker(500 * time.Millisecond)\n\t\tdefer ticker.Stop()\n\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ticker.C:\n\t\t\t\tdp.ping(port)\n\t\t\tcase <-dp.quitCh:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\treturn dp, nil\n}\n"
  },
  {
    "path": "net/peer/peer.go",
    "content": "// Package peer implements the basic data types needed to communicate\n// with other brig instances.\n//\n// user[@domain[/resource]\npackage peer\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\th \"github.com/sahib/brig/util/hashlib\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// Name is the display name of a peer.\n// (i.e. how another repo calls itself)\ntype Name string\n\n// ErrBadName is returned for invalidly formatted peer names.\ntype ErrBadName struct {\n\treason string\n}\n\nfunc (e ErrBadName) Error() string {\n\treturn e.reason\n}\n\nfunc valid(name string) error {\n\tif utf8.RuneCountInString(name) == 0 {\n\t\treturn ErrBadName{\"Empty name is not allowed\"}\n\t}\n\n\tif !utf8.ValidString(name) {\n\t\treturn ErrBadName{fmt.Sprintf(\"Invalid utf-8: %v\", name)}\n\t}\n\n\tfor idx, rn := range name {\n\t\tif unicode.IsSpace(rn) {\n\t\t\treturn ErrBadName{\n\t\t\t\tfmt.Sprintf(\"Space not allowed: %s (at %d)\", name, idx),\n\t\t\t}\n\t\t}\n\n\t\tif !unicode.IsPrint(rn) {\n\t\t\treturn ErrBadName{\n\t\t\t\tfmt.Sprintf(\"Only printable runes allowed: %s (at %d)\", name, idx),\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CastName checks `name` to be correct and returns a wrapped name.\nfunc CastName(name string) (Name, error) {\n\tif err := valid(name); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn Name(norm.NFKC.Bytes([]byte(name))), nil\n}\n\n// IsValid will return true if a peer name is formatted validly.\nfunc IsValid(name string) bool {\n\treturn valid(name) == nil\n}\n\n// Domain will return the domain part of a peer name, if present.\nfunc (name Name) Domain() string {\n\ta := strings.IndexRune(string(name), '@')\n\tif a < 0 {\n\t\treturn \"\"\n\t}\n\n\tb := strings.LastIndexByte(string(name), '/')\n\tif b < 0 {\n\t\treturn string(name)[a+1:]\n\t}\n\n\treturn string(name)[a+1 : b]\n}\n\n// Resource will return the resource part of a peer name, if present.\nfunc (name Name) Resource() string {\n\tidx := strings.LastIndexByte(string(name), '/')\n\tif idx < 0 {\n\t\treturn \"\"\n\t}\n\n\treturn string(name)[idx+1:]\n}\n\n// WithoutResource returns the same peer name without its resource part.\nfunc (name Name) WithoutResource() string {\n\tdomain := name.Domain()\n\tif len(domain) > 0 {\n\t\treturn name.User() + \"@\" + name.Domain()\n\t}\n\n\treturn name.User()\n}\n\n// AsPath converts a peer name to a path that can be used for storage.\nfunc (name Name) AsPath() string {\n\tpath := name.User()\n\trsrc := name.Resource()\n\tif rsrc != \"\" {\n\t\tpath += \"-\" + rsrc\n\t}\n\n\treturn strings.Replace(path, string(os.PathSeparator), \"|\", -1)\n}\n\n// User returns the user part of the peer name.\nfunc (name Name) User() string {\n\tidx := strings.Index(string(name), \"@\")\n\tif idx < 0 {\n\t\treturn string(name)\n\t}\n\n\treturn string(name)[:idx]\n}\n\n/////////////////////////\n// FINGERPRINT HELPERS //\n/////////////////////////\n\n// Fingerprint encodes the addr of a remote and an ID (i.e. hash)\n// of the remote's public key. It is later used to verify if a\n// remote's addr or pubkey has changed and is presented to the user\n// as initial identification token for another user.\ntype Fingerprint string\n\n// CastFingerprint converts and checks `s` to be a valid Fingerprint.\nfunc CastFingerprint(s string) (Fingerprint, error) {\n\tparts := strings.Split(s, \":\")\n\tif len(parts) != 2 {\n\t\treturn Fingerprint(\"\"), fmt.Errorf(\n\t\t\t\"bad fingerprint: invalid num of colons: %d\",\n\t\t\tlen(parts),\n\t\t)\n\t}\n\n\tfp := Fingerprint(s)\n\tif fp.Addr() == \"\" {\n\t\treturn Fingerprint(\"\"), fmt.Errorf(\n\t\t\t\"bad fingerprint: addr could not be read\",\n\t\t)\n\t}\n\n\tif fp.PubKeyID() == \"\" {\n\t\treturn Fingerprint(\"\"), fmt.Errorf(\n\t\t\t\"bad fingerprint: bad pub key id\",\n\t\t)\n\t}\n\n\treturn fp, nil\n}\n\n// BuildFingerprint builds a fingerprint from `addr` and a public key.\nfunc BuildFingerprint(addr string, pubKeyData []byte) Fingerprint {\n\ts := fmt.Sprintf(\"%s:%s\", addr, h.Sum(pubKeyData).B58String())\n\treturn Fingerprint(s)\n}\n\n// Addr returns the addr part of a fingerprint.\nfunc (fp Fingerprint) Addr() string {\n\t// We assume that a fingerprint was always safely casted with Cast(),\n\t// so errors should not happen. They can of course still happen if the API\n\t// was not used correctly. Simply return the zero string in this case.\n\tparts := strings.SplitN(string(fp), \":\", 2)\n\tif len(parts) < 2 {\n\t\treturn \"\"\n\t}\n\n\treturn parts[0]\n}\n\n// PubKeyID returns the public key hash in the fingerprint.\nfunc (fp Fingerprint) PubKeyID() string {\n\tparts := strings.SplitN(string(fp), \":\", 2)\n\tif len(parts) < 2 {\n\t\treturn \"\"\n\t}\n\n\treturn parts[1]\n}\n\n// PubKeyMatches checks if the supplied public key matches with the\n// hashed version in the fingerprint.\nfunc (fp Fingerprint) PubKeyMatches(pubKeyData []byte) bool {\n\town := fp.PubKeyID()\n\tif own == \"\" {\n\t\treturn false\n\t}\n\n\tremote := h.Sum(pubKeyData).B58String()\n\treturn own == remote\n}\n\n///////////////////////\n\n// Info is a pair of addr and a peer name.\ntype Info struct {\n\tName Name\n\tAddr string\n}\n"
  },
  {
    "path": "net/peer/peer_test.go",
    "content": "package peer\n\nimport \"testing\"\n\nvar validityTests = []struct {\n\tid       string\n\tok       bool\n\tuser     string\n\tdomain   string\n\tresource string\n}{\n\t{\"\", false, \"\", \"\", \"\"},\n\t{\"\\n\", false, \"\", \"\", \"\"},\n\t{\"a\", true, \"a\", \"\", \"\"},\n\t{\"ä\", true, \"ä\", \"\", \"\"},\n\t{string([]byte{0xC2}), false, \"\", \"\", \"\"}, // Invalid utf8 start byte\n\t{\"alice\", true, \"alice\", \"\", \"\"},\n\t{\"alice bobsen\", false, \"\", \"\", \"\"},\n\t{\"alice@nullcat.de\", true, \"alice\", \"nullcat.de\", \"\"},\n\t{\"alice@nullcat.de/laptop\", true, \"alice\", \"nullcat.de\", \"laptop\"},\n\t{\"alice @nullcat.de/laptop\", false, \"\", \"\", \"\"},\n}\n\nfunc TestValidity(t *testing.T) {\n\tfor _, test := range validityTests {\n\t\tvalid := IsValid(test.id)\n\t\tif valid != test.ok {\n\t\t\tt.Errorf(\"valid(`%s`) was `%t`, should be `%t`\", test.id, valid, test.ok)\n\t\t\tcontinue\n\t\t}\n\n\t\tif !valid {\n\t\t\tcontinue\n\t\t}\n\n\t\tid, err := CastName(test.id)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Casting `%s` failed: %v\", test.id, err)\n\t\t\tcontinue\n\t\t}\n\n\t\tif id.User() != test.user {\n\t\t\tt.Errorf(\n\t\t\t\t\"User differs; wanted `%s`; got `%s`\",\n\t\t\t\ttest.user, id.User(),\n\t\t\t)\n\t\t\tcontinue\n\t\t}\n\n\t\tif id.Domain() != test.domain {\n\t\t\tt.Errorf(\n\t\t\t\t\"Domain differs; wanted `%s`; got `%s`\",\n\t\t\t\ttest.domain, id.Domain(),\n\t\t\t)\n\t\t\tcontinue\n\t\t}\n\n\t\tif id.Resource() != test.resource {\n\t\t\tt.Errorf(\n\t\t\t\t\"Resource differs; wanted `%s`; got `%s`\",\n\t\t\t\ttest.resource, id.Resource(),\n\t\t\t)\n\t\t\tcontinue\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "net/pinger.go",
    "content": "package net\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"sort\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/net/backend\"\n\t\"github.com/sahib/brig/repo\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nvar (\n\t// ErrPingMapClosed is returned when an operation is performed on a closed\n\t// ping map.\n\tErrPingMapClosed = errors.New(\"pinger Map was already closed\")\n\n\t// ErrNoSuchAddr is returned when asking for a pinger that we don't know.\n\tErrNoSuchAddr = errors.New(\"No such addr known to ping map\")\n)\n\n// PingMap remembers the times we last accessed a remote.\ntype PingMap struct {\n\tmu            sync.Mutex\n\ttickr         *time.Ticker\n\tpeers         map[string]backend.Pinger\n\tauthenticated map[string]bool\n\tnetBk         backend.Backend\n\trp            *repo.Repository\n}\n\n// NewPingMap returns a new PingMap.\nfunc NewPingMap(rp *repo.Repository, netBk backend.Backend) *PingMap {\n\tpm := &PingMap{\n\t\tpeers:         make(map[string]backend.Pinger),\n\t\tauthenticated: make(map[string]bool),\n\t\tnetBk:         netBk,\n\t\ttickr:         time.NewTicker(30 * time.Second),\n\t\trp:            rp,\n\t}\n\n\tgo pm.updateLoop()\n\treturn pm\n}\n\nfunc (pm *PingMap) updateLoop() {\n\tfor range pm.tickr.C {\n\t\tpm.doUpdate()\n\t}\n}\n\nfunc (pm *PingMap) doUpdate() {\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\tif pm.peers == nil {\n\t\treturn\n\t}\n\n\tfor addr, pinger := range pm.peers {\n\t\tif pinger == nil {\n\t\t\t// Try to get a pinger in the background.\n\t\t\t// This will already update the pingmap,\n\t\t\t// but next time we continue in this loop.\n\t\t\tgo pm.doUpdateSingle(addr, true)\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := pinger.Err(); err != nil {\n\t\t\t// Maybe the pinger errored in between?\n\t\t\tlog.Warningf(\"pinger »%s« failed: %v\", addr, err)\n\t\t\tpinger.Close()\n\n\t\t\t// Mark this addr to be tried next time again.\n\t\t\tpm.peers[addr] = nil\n\t\t\tcontinue\n\t\t}\n\n\t\t// Reaching this point means that the pinger\n\t\t// seems to work and did not error out.\n\t}\n}\n\nfunc (pm *PingMap) doUpdateSingle(addr string, checkAuthentication bool) {\n\tpinger, err := pm.netBk.Ping(addr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t// this address seems to work.\n\tlog.Infof(\"pinger »%s« responding\", addr)\n\n\t// this method is called in parallel:\n\tpm.mu.Lock()\n\tpm.peers[addr] = pinger\n\tpm.mu.Unlock()\n\n\tif !checkAuthentication {\n\t\treturn\n\t}\n\n\tisAuthenticated := false\n\n\t// Always set the authenticated flag if we get past this point.\n\tdefer func() {\n\t\tpm.mu.Lock()\n\t\tpm.authenticated[addr] = isAuthenticated\n\t\tpm.mu.Unlock()\n\t}()\n\n\trmt, err := pm.rp.Remotes.RemoteByAddr(addr)\n\tif err != nil {\n\t\tlog.Debugf(\"failed to get remote for addr »%s«: %v\", addr, err)\n\t\treturn\n\t}\n\n\tctx := context.Background()\n\tconn, err := DialByAddr(ctx, addr, rmt.Fingerprint, pm.rp, pm.netBk, nil)\n\tif err != nil {\n\t\tlog.Infof(\"can ping, but not authenticated: %v\", err)\n\t\treturn\n\t}\n\n\tdefer conn.Close()\n\n\t// Check if we can send them an authenticated ping message.\n\t// If so, we are sure they authenticated us also.\n\tif err := conn.Ping(); err != nil {\n\t\treturn\n\t}\n\n\tisAuthenticated = true\n}\n\n// Sync makes sure all addresses in `addrs` are being watched.\n// All currently watched addrs that are not in `addrs` are removed.\n// This method does not block until all pingers have been updated.\nfunc (pm *PingMap) Sync(addrs []string) error {\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\tif pm.peers == nil {\n\t\treturn ErrPingMapClosed\n\t}\n\n\tlog.Infof(\"syncing ping map entries...\")\n\n\t// Remember to schedule an update right after sync.\n\t// This will only run after Sync() due the common lock.\n\tgo pm.doUpdate()\n\n\t// Needed for sort.Search below.\n\tsort.Strings(addrs)\n\n\tfor _, addr := range addrs {\n\t\tif _, ok := pm.peers[addr]; !ok {\n\t\t\t// Just remember that we need to create a pinger for this addr.\n\t\t\tpm.peers[addr] = nil\n\t\t}\n\t}\n\n\t// Do the opposite check and see if any addrs in pm.peers\n\t// are not in `addrs`. If so, remove them out.\n\tfor addr, pinger := range pm.peers {\n\t\tif pinger == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := sort.SearchStrings(addrs, addr)\n\t\tif idx < len(addrs) && addrs[idx] == addr {\n\t\t\tcontinue\n\t\t}\n\n\t\t// This addr does not exist anymore.\n\t\tlog.Debugf(\"Closing pinger for %v %v\", addr, pinger)\n\t\tif err := pinger.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// For returns a new pinger for a certain `addr`.\nfunc (pm *PingMap) For(addr string) (backend.Pinger, error) {\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\tif pm.peers == nil {\n\t\treturn nil, ErrPingMapClosed\n\t}\n\n\tpinger, ok := pm.peers[addr]\n\tif !ok {\n\t\treturn nil, ErrNoSuchAddr\n\t}\n\n\treturn pinger, nil\n}\n\n// IsAuthenticated checks if `addr` is authenticated.\nfunc (pm *PingMap) IsAuthenticated(addr string) bool {\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\tisAuthenticated, ok := pm.authenticated[addr]\n\tif !ok {\n\t\treturn false\n\t}\n\n\treturn isAuthenticated\n}\n\n// This is called by all network related code that establish a connection\n// to a client. If so, it gives the ping map a hint that a remote was successfully\n// reached and/or authenticated (or not).\nfunc (pm *PingMap) hintNetAttempt(addr string, isAuthenticated bool) {\n\tif pm == nil {\n\t\treturn\n\t}\n\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\t// go check the pinger state immediately.\n\tpm.authenticated[addr] = isAuthenticated\n\tgo pm.doUpdateSingle(addr, false)\n}\n\n// Close shuts down the ping map. Do not use afterwards.\nfunc (pm *PingMap) Close() error {\n\tpm.mu.Lock()\n\tdefer pm.mu.Unlock()\n\n\t// Stop updateLoop as a side effect:\n\tpm.tickr.Stop()\n\n\tfor _, pinger := range pm.peers {\n\t\tif pinger == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif err := pinger.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tpm.peers = nil\n\treturn nil\n}\n"
  },
  {
    "path": "net/pinger_test.go",
    "content": "package net\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPinger(t *testing.T) {\n\twithNetPair(t, func(a, b testUnit) {\n\t\tapmap := a.srv.PingMap()\n\t\tapmap.Sync([]string{\"bob@9999\"})\n\n\t\tbpmap := a.srv.PingMap()\n\t\tbpmap.Sync([]string{\"alice@9998\"})\n\n\t\t// Give it a bit of time to send the first pings.\n\t\ttime.Sleep(100 * time.Millisecond)\n\n\t\taliPinger, err := apmap.For(\"alice@9998\")\n\t\trequire.Nil(t, err)\n\t\trequire.Nil(t, aliPinger.Err())\n\n\t\trequire.True(t, aliPinger.Roundtrip() < 1*time.Millisecond)\n\n\t\tbobPinger, err := bpmap.For(\"bob@9999\")\n\t\trequire.Nil(t, err)\n\t\trequire.Nil(t, bobPinger.Err())\n\n\t\trequire.True(t, bobPinger.Roundtrip() < 1*time.Millisecond)\n\n\t\tcharliePinger, err := bpmap.For(\"charlie@9999\")\n\t\trequire.Nil(t, charliePinger)\n\t\trequire.NotNil(t, err)\n\t})\n}\n"
  },
  {
    "path": "net/resolve_test.go",
    "content": "package net\n\nimport (\n\t\"testing\"\n)\n\nfunc TestResolve(t *testing.T) {\n\tt.Skip(\"Not yet written\")\n}\n"
  },
  {
    "path": "net/server.go",
    "content": "package net\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"zombiezen.com/go/capnproto2/rpc\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/backend\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/brig/net/capnp\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/sahib/brig/util/server\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Server implements the server for inter-remote communication.\ntype Server struct {\n\tbk         backend.Backend\n\tbaseServer *server.Server\n\thdl        *connHandler\n\tpingMap    *PingMap\n}\n\n// Serve blocks and serves request until quit was called.\nfunc (sv *Server) Serve() error {\n\treturn e.Wrapf(sv.baseServer.Serve(), \"serve\")\n}\n\n// Close will clean up resources.\nfunc (sv *Server) Close() error {\n\treturn sv.baseServer.Close()\n}\n\n// Quit will shut down the server and unblock Serve()\nfunc (sv *Server) Quit() {\n\tsv.baseServer.Quit()\n}\n\nfunc publishSelf(bk backend.Backend, owner string) error {\n\t// Example: alice@wonderland.org/resource\n\tname := peer.Name(owner)\n\n\t// Publish the full name »alice@wonderland.org/resource«\n\tif err := bk.PublishName(owner); err != nil {\n\t\treturn err\n\t}\n\n\t// Also publish »alice@wonderland.org«\n\tif noRes := name.WithoutResource(); noRes != string(name) {\n\t\tif err := bk.PublishName(noRes); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Publish »wonderland.org«\n\tif domain := name.Domain(); domain != \"\" {\n\t\tif err := bk.PublishName(domain); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Publish »alice«\n\tif user := name.User(); user != string(name) {\n\t\tif err := bk.PublishName(user); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// NewServer returns a new inter-remote server.\nfunc NewServer(rp *repo.Repository, bk backend.Backend, rapi remotesapi.RemotesAPI) (*Server, error) {\n\tpingMap := NewPingMap(rp, bk)\n\n\thdl := &connHandler{\n\t\trp:      rp,\n\t\tbk:      bk,\n\t\trapi:    rapi,\n\t\tpingMap: pingMap,\n\t}\n\n\tlst, err := bk.Listen(\"brig/caprpc\")\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"listen\")\n\t}\n\n\tctx := context.Background()\n\tbaseServer, err := server.NewServer(ctx, lst, hdl)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"new-server\")\n\t}\n\n\towner := rp.Immutables.Owner()\n\tlog.Debugf(\"publishing own identity to network: %s\", owner)\n\tif err := publishSelf(bk, owner); err != nil {\n\t\tlog.Warningf(\"failed to publish `%v` to the network: %v\", owner, err)\n\t\tlog.Warningf(\"you will not be visible to other users.\")\n\t}\n\n\treturn &Server{\n\t\tbaseServer: baseServer,\n\t\tbk:         bk,\n\t\thdl:        hdl,\n\t\tpingMap:    pingMap,\n\t}, nil\n}\n\nconst (\n\t// LocateNone is used when no part of the name should be searched.\n\tLocateNone = 0\n\t// LocateExact means that we should search for the name exactly.\n\tLocateExact = 1 << iota\n\t// LocateDomain means that we only search for the domain name only.\n\tLocateDomain\n\t// LocateUser means that we only search for the user name only.\n\tLocateUser\n\t// LocateEmail means that we only search for the user@domain part only.\n\tLocateEmail\n\t// LocateAll means that we search for everything.\n\tLocateAll = LocateExact | LocateDomain | LocateUser | LocateEmail\n)\n\n// LocateMask is a combination of the individual LocateXXX settings\n// and tells Locate() what parts of the name to search for.\ntype LocateMask int\n\nfunc (lm LocateMask) String() string {\n\tif lm == LocateNone {\n\t\treturn \"\"\n\t}\n\n\tparts := []string{}\n\tif lm&LocateExact != 0 {\n\t\tparts = append(parts, \"exact\")\n\t}\n\tif lm&LocateDomain != 0 {\n\t\tparts = append(parts, \"domain\")\n\t}\n\tif lm&LocateUser != 0 {\n\t\tparts = append(parts, \"user\")\n\t}\n\tif lm&LocateEmail != 0 {\n\t\tparts = append(parts, \"email\")\n\t}\n\n\treturn strings.Join(parts, \",\")\n}\n\n// LocateMaskFromString builds a LocateMask from a comma separated string.\n// This is the inverse of mask.String().\nfunc LocateMaskFromString(s string) (LocateMask, error) {\n\ts = strings.TrimSpace(s)\n\tif len(s) == 0 {\n\t\treturn LocateNone, nil\n\t}\n\n\tmask := LocateMask(LocateNone)\n\tparts := strings.Split(s, \",\")\n\tfor _, part := range parts {\n\t\tswitch part {\n\t\tcase \"exact\":\n\t\t\tmask |= LocateExact\n\t\tcase \"domain\":\n\t\t\tmask |= LocateDomain\n\t\tcase \"user\":\n\t\t\tmask |= LocateUser\n\t\tcase \"email\":\n\t\t\tmask |= LocateEmail\n\t\tcase \"all\":\n\t\t\tmask |= LocateAll\n\t\tdefault:\n\t\t\treturn mask, fmt.Errorf(\"Invalid locate mask name `%s`\", part)\n\t\t}\n\t}\n\n\treturn mask, nil\n}\n\n// LocateResult is one result returned by Locate's result channel.\ntype LocateResult struct {\n\tPeers []peer.Info\n\tMask  LocateMask\n\tName  string\n\tErr   error\n}\n\n// Locate tries to find other remotes named `who`.\n// It also tries to find different variations/parts of `who`, defined by `mask`.\n// It does not block, but returns a channel where the results are being pushed to.\n// This is a very slow operation.\nfunc (sv *Server) Locate(ctx context.Context, who peer.Name, mask LocateMask) chan LocateResult {\n\tuniqueNames := make(map[string]LocateMask)\n\n\t// Example: donald@whitehouse.gov/ovaloffice\n\tuniqueNames[string(who)] = mask & LocateExact\n\n\t// Example: whitehouse.gov\n\tuniqueNames[who.Domain()] = mask & LocateDomain\n\n\t// Example: donald\n\tuniqueNames[who.User()] = mask & LocateUser\n\n\t// Example: donald@whitehouse.gov\n\tuniqueNames[who.WithoutResource()] = mask & LocateEmail\n\n\tresultCh := make(chan LocateResult)\n\n\twg := &sync.WaitGroup{}\n\tfor name, mask := range uniqueNames {\n\t\tif name == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\t// It's not enabled:\n\t\tif mask == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\twg.Add(1)\n\n\t\tgo func(name string, mask LocateMask) {\n\t\t\tdefer wg.Done()\n\n\t\t\tpeers, err := sv.bk.ResolveName(ctx, name)\n\t\t\tlog.Debugf(\"Found peers: %v\", peers)\n\t\t\tresultCh <- LocateResult{\n\t\t\t\tPeers: peers,\n\t\t\t\tErr:   err,\n\t\t\t\tName:  name,\n\t\t\t\tMask:  mask,\n\t\t\t}\n\t\t}(name, mask)\n\t}\n\n\tgo func() {\n\t\twg.Wait()\n\t\tclose(resultCh)\n\t}()\n\n\treturn resultCh\n}\n\n// PeekFingerprint fetches the fingerprint of a peer without authenticating\n// ourselves or them.\nfunc (sv *Server) PeekFingerprint(ctx context.Context, addr string) (peer.Fingerprint, string, error) {\n\t// Query the remotes pubkey and use it to build the remotes' fingerprint.\n\t// If not available we just send an empty string back to the client.\n\tpubKey, remoteName, err := PeekRemotePubkey(ctx, addr, sv.hdl.rp, sv.bk)\n\tif err != nil {\n\t\tlog.Warningf(\n\t\t\t\"locate: failed to dial to `%s` (%s): %v\",\n\t\t\taddr, addr, err,\n\t\t)\n\t\treturn peer.Fingerprint(\"\"), \"\", nil\n\t}\n\n\treturn peer.BuildFingerprint(addr, pubKey), remoteName, nil\n}\n\n// Identity returns the backend's Identity (i.e. addr)\nfunc (sv *Server) Identity() (peer.Info, error) {\n\treturn sv.bk.Identity()\n}\n\n// PingMap returns the ping map associated with this server.\nfunc (sv *Server) PingMap() *PingMap {\n\treturn sv.pingMap\n}\n\n// IsOnline returns true if we are online.\nfunc (sv *Server) IsOnline() bool {\n\treturn sv.bk.IsOnline()\n}\n\n// Connect will connect to the network (this is the default already)\nfunc (sv *Server) Connect() error {\n\treturn sv.bk.Connect()\n}\n\n// Disconnect will stop network operations immediately.\nfunc (sv *Server) Disconnect() error {\n\treturn sv.bk.Disconnect()\n}\n\n/////////////////////////////////////\n// INTERNAL HANDLER IMPLEMENTATION //\n/////////////////////////////////////\n\ntype connHandler struct {\n\tbk      backend.Backend\n\trp      *repo.Repository\n\trapi    remotesapi.RemotesAPI\n\tpingMap *PingMap\n}\n\n// Handle is called whenever we receive a new connection from another brig peer.\nfunc (hdl *connHandler) Handle(ctx context.Context, conn net.Conn) {\n\t// We are currently not allowing more than one parallel connection.\n\t// This is not a technical problem, but more due to the fact that it makes\n\t// it easier to pass the current remote to the active handler.\n\t// Make sure to reset the current remote:\n\tkeyring, err := hdl.rp.Keyring()\n\tif err != nil {\n\t\tlog.WithError(err).Warnf(\"failed to load keyring in net handle\")\n\t\treturn\n\t}\n\n\townPubKey, err := keyring.OwnPubKey()\n\tif err != nil {\n\t\tlog.Warnf(\"Failed to retrieve own pubkey: %v\", err)\n\t\treturn\n\t}\n\n\townFingerprint := peer.BuildFingerprint(\"\", ownPubKey)\n\n\t// The respective handler should get its own context it can listen to.\n\treqCtx, reqCancel := context.WithCancel(ctx)\n\treqHdl := &requestHandler{\n\t\tbk:   hdl.bk,\n\t\trp:   hdl.rp,\n\t\tctx:  reqCtx,\n\t\trapi: hdl.rapi,\n\t}\n\n\t// This func will be called during the authentication process.\n\t// It checks if the pub key the other side send us can be\n\t// related to one of the allowed remotes. If not, the connection\n\t// will be dropped.\n\tauthChecker := func(pubKey []byte) error {\n\t\tremotes, err := hdl.rp.Remotes.ListRemotes()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Create a temporary fingerprint to get a hashed version of pubkey.\n\t\tremoteFp := peer.BuildFingerprint(\"\", pubKey)\n\t\tif remoteFp == ownFingerprint {\n\t\t\treturn fmt.Errorf(\"cannot dial self\")\n\t\t}\n\n\t\t// Linear scan over all remotes.\n\t\t// If this proves to be a performance problem, we can fix it later.\n\t\tfor _, remote := range remotes {\n\t\t\tif remote.Fingerprint.PubKeyID() == remoteFp.PubKeyID() {\n\t\t\t\taddr := remote.Fingerprint.Addr()\n\t\t\t\tlog.Infof(\"starting connection with addr `%s`\", addr)\n\t\t\t\thdl.pingMap.hintNetAttempt(addr, true)\n\t\t\t\treqHdl.currRemoteName = remote.Name\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tnetAddr := conn.RemoteAddr()\n\t\tif netAddr != nil {\n\t\t\thdl.pingMap.hintNetAttempt(netAddr.String(), false)\n\t\t}\n\n\t\treturn fmt.Errorf(\"remote uses no public key known to us\")\n\t}\n\n\t// Take the raw connection we get and add an authentication layer on top of it.\n\towner := hdl.rp.Immutables.Owner()\n\tauthConn := NewAuthReadWriter(\n\t\tconn,\n\t\tkeyring,\n\t\townPubKey,\n\t\towner,\n\t\tauthChecker,\n\t)\n\n\t// Trigger the authentication. This is not strictly necessary and would\n\t// happen anyways on the first read/write on the connection. But doing it\n\t// here catches errors early.\n\tif err := authConn.Trigger(); err != nil {\n\t\tlog.Warnf(\"failed to authenticate connection: %v\", err)\n\t\treqCancel()\n\t\treturn\n\t}\n\n\t// The connection is considered authenticated at this point.\n\t// Initialize the capnp rpc protocol over it.\n\ttransport := rpc.StreamTransport(conn)\n\tsrv := capnp.API_ServerToClient(reqHdl)\n\trpcConn := rpc.NewConn(\n\t\ttransport,\n\t\trpc.MainInterface(srv.Client),\n\t\trpc.ConnLog(nil),\n\t)\n\n\t// Wait until either side quits the connection in the background.\n\t// The number of open connections is limited by the base server.\n\tgo func() {\n\t\tdefer reqCancel()\n\n\t\tif err := rpcConn.Wait(); err != nil {\n\t\t\tlog.Warnf(\"serving rpc failed: %v\", err)\n\t\t}\n\n\t\tif err := rpcConn.Close(); err != nil {\n\t\t\t// Close seems to be complaining that the conn was\n\t\t\t// already closed, but be safe and expect this.\n\t\t\tif err != rpc.ErrConnClosed {\n\t\t\t\tlog.Warnf(\"failed to close rpc conn: %v\", err)\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// Quit is being called by the base server implementation\nfunc (hdl *connHandler) Quit() error {\n\treturn nil\n}\n"
  },
  {
    "path": "repo/backend.go",
    "content": "package repo\n\nimport (\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// Backend defines the method needed from the underlying\n// storage backend to create & manage a repository.\ntype Backend interface {\n\tGC() ([]h.Hash, error)\n}\n"
  },
  {
    "path": "repo/config.go",
    "content": "package repo\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/config\"\n)\n\n// Config utilities.\n\n// OverwriteConfigKey allows to overwrite a single key/val pair in the config,\n// without requiring a running daemon or an opened repository. It is not fast\n// and should be only used for one-off commands. For long running commands\n// you should open the repository.\nfunc OverwriteConfigKey(repoPath string, key string, val interface{}) error {\n\tconfigPath := filepath.Join(repoPath, \"config.yml\")\n\tcfg, err := defaults.OpenMigratedConfig(configPath)\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"failed to set ipfs port\")\n\t}\n\n\tif err := cfg.Set(key, val); err != nil {\n\t\treturn err\n\t}\n\n\tfd, err := os.OpenFile(configPath, os.O_WRONLY|os.O_TRUNC, 0600)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer fd.Close()\n\n\treturn cfg.Save(config.NewYamlEncoder(fd))\n}\n"
  },
  {
    "path": "repo/gc.go",
    "content": "package repo\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\th \"github.com/sahib/brig/util/hashlib\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// GC runs the garbage collector of the backend.  If `aggressive` is true, also\n// the internal data structures will be garbage collected, which might lead to\n// minimally less storage.  It returns a map of maps, where the inner map\n// consists of content-hash to binary representation of the same hash. The\n// outer key is the owner of the file.\nfunc (rp *Repository) GC(backend Backend, aggressive bool) (map[string]map[string]h.Hash, error) {\n\trp.mu.Lock()\n\tdefer rp.mu.Unlock()\n\n\t// `killed` are the content hashes the backend disposed.\n\tkilled, err := backend.GC()\n\tif err != nil {\n\t\tfmt.Println(\"backend gc error\", err)\n\t\treturn nil, err\n\t}\n\n\tresult := make(map[string]map[string]h.Hash)\n\tif len(killed) == 0 {\n\t\t// Shortcut, since running the loop below\n\t\t// is currently rather expensive due to FilesByContents.\n\t\t// We can optimize that if it turns out to be a problem.\n\t\treturn result, nil\n\t}\n\n\tfor owner, fs := range rp.fsMap {\n\t\tif aggressive {\n\t\t\t// Make sure we also clean every bit\n\t\t\t// of memory/space we can find.\n\t\t\tfs.ScheduleGCRun()\n\t\t}\n\n\t\tnodeMap, err := fs.FilesByContent(killed)\n\t\tif err != nil {\n\t\t\tfmt.Println(\"get files by content\")\n\t\t\treturn nil, err\n\t\t}\n\n\t\tsubResult := make(map[string]h.Hash)\n\t\tfor content, info := range nodeMap {\n\t\t\tsubResult[content] = info.ContentHash\n\t\t}\n\n\t\tresult[owner] = subResult\n\t}\n\n\treturn result, nil\n}\n\n// StartAutoGCLoop starts the auto gc loop on `backend`.\nfunc (rp *Repository) StartAutoGCLoop(backend Backend) {\n\tgo rp.autoGCLoop(backend)\n}\n\nfunc (rp *Repository) stopAutoGCLoop() {\n\tgo func() {\n\t\trp.autoGCControl <- true\n\t}()\n}\n\nfunc (rp *Repository) autoGCLoop(backend Backend) {\n\tlastCheck := time.Now()\n\tcheckTicker := time.NewTicker(1 * time.Second)\n\tdefer checkTicker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-rp.autoGCControl:\n\t\t\tlog.Debugf(\"quitting the auto commit loop\")\n\t\t\treturn\n\t\tcase <-checkTicker.C:\n\t\t\tisEnabled := rp.Config.Bool(\"repo.autogc.enabled\")\n\t\t\tif !isEnabled {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif time.Since(lastCheck) >= rp.Config.Duration(\"repo.autogc.interval\") {\n\t\t\t\tlastCheck = time.Now()\n\t\t\t\tlog.Debugf(\"running backend GC due to automatic garbage collection\")\n\n\t\t\t\tif _, err := rp.GC(backend, false); err != nil {\n\t\t\t\t\tlog.Warningf(\"GC failed: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "repo/hints/doc.go",
    "content": "// Package hints implements a hint system for streaming.\n// Brig uses this to let users configure what files and directories\n// should be encrypted and/or compressed. Some folders might also\n// get none of the both. In the latter case we call the stream \"raw\".\n//\n// We store the hints in the repository as yaml file and store\n// it in in-memory in a trie during runtime.\npackage hints\n"
  },
  {
    "path": "repo/hints/hints.go",
    "content": "package hints\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/klauspost/cpuid/v2\"\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs/mio/compress\"\n\t\"github.com/sahib/brig/catfs/mio/encrypt\"\n\t\"github.com/sahib/brig/util/trie\"\n\t\"github.com/sahib/config\"\n)\n\nvar (\n\t// ErrNoSuchHint is returned by Remove when there is no hint at this path.\n\tErrNoSuchHint = errors.New(\"no such hint at this path\")\n\n\t// ErrInvalidHint is returned upon setting an invalid hint.\n\tErrInvalidHint = errors.New(\"invalid hint\")\n)\n\n// CompressionHint is an enumeration of possible compression types.\ntype CompressionHint string\n\nconst (\n\t// CompressionNone leaves the stream as-is.\n\tCompressionNone = CompressionHint(\"none\")\n\n\t// CompressionLZ4 compresses the stream in lz4 mode.\n\tCompressionLZ4 = CompressionHint(\"lz4\")\n\n\t// CompressionSnappy  compresses the stream in snappy mode.\n\tCompressionSnappy = CompressionHint(\"snappy\")\n\n\t// CompressionZstd compresses the stream in zstd mode.\n\tCompressionZstd = CompressionHint(\"zstd\")\n\n\t// CompressionGuess tries to guess a suitable type by looking at\n\t// different aspects of the stream.\n\tCompressionGuess = CompressionHint(\"guess\")\n)\n\nvar (\n\tcompressionHintMap = map[CompressionHint]compress.AlgorithmType{\n\t\tCompressionNone:   compress.AlgoUnknown,\n\t\tCompressionLZ4:    compress.AlgoLZ4,\n\t\tCompressionSnappy: compress.AlgoSnappy,\n\t\tCompressionZstd:   compress.AlgoZstd,\n\t\tCompressionGuess:  compress.AlgoUnknown,\n\t}\n\n\tcompressionSortMap = map[CompressionHint]int{\n\t\tCompressionNone:   0,\n\t\tCompressionGuess:  1,\n\t\tCompressionLZ4:    2,\n\t\tCompressionSnappy: 3,\n\t\tCompressionZstd:   4,\n\t}\n)\n\n// IsValid returns true if `ch` is a valid compression hint.\nfunc (ch CompressionHint) IsValid() bool {\n\t_, ok := compressionHintMap[ch]\n\treturn ok\n}\n\n// ToCompressAlgorithmType converts the hint to the enum used in compress\nfunc (ch CompressionHint) ToCompressAlgorithmType() compress.AlgorithmType {\n\treturn compressionHintMap[ch]\n}\n\n// CompressAlgorithmTypeToCompressionHint is a very aptly named function\n// that converts `algo` to a hint. This is not a perfect conversion, since\n// compress package doesn't know any \"none\" or \"guess\" algorithm.\nfunc CompressAlgorithmTypeToCompressionHint(algo compress.AlgorithmType) CompressionHint {\n\tswitch algo {\n\tcase compress.AlgoUnknown:\n\t\treturn CompressionNone\n\tcase compress.AlgoLZ4:\n\t\treturn CompressionLZ4\n\tcase compress.AlgoSnappy:\n\t\treturn CompressionSnappy\n\tcase compress.AlgoZstd:\n\t\treturn CompressionZstd\n\tdefault:\n\t\treturn CompressionNone\n\t}\n}\n\n// ValidCompressionHints returns all valid compression hints.\nfunc ValidCompressionHints() []string {\n\ts := []string{}\n\tfor h := range compressionHintMap {\n\t\ts = append(s, string(h))\n\t}\n\n\treturn s\n}\n\n// CompressionHints returns all possible compression hints.\nfunc CompressionHints() []CompressionHint {\n\ts := []CompressionHint{}\n\n\tfor compressionHint := range compressionHintMap {\n\t\ts = append(s, compressionHint)\n\t}\n\n\treturn s\n}\n\n// EncryptionHint is an enum of valid encryption types\ntype EncryptionHint string\n\nconst (\n\t// EncryptionNone disables all encryption on the stream.\n\tEncryptionNone = EncryptionHint(\"none\")\n\n\t// EncryptionAES256GCM uses AES256 in GCM mode.\n\tEncryptionAES256GCM = EncryptionHint(\"aes256gcm\")\n\n\t// EncryptionChaCha20 uses ChaCha20 with Poly1305 as MAC.\n\tEncryptionChaCha20 = EncryptionHint(\"chacha20\")\n)\n\nvar (\n\tencryptionHintMap = map[EncryptionHint]encrypt.Flags{\n\t\tEncryptionNone:      encrypt.FlagEmpty,\n\t\tEncryptionAES256GCM: encrypt.FlagEncryptAES256GCM,\n\t\tEncryptionChaCha20:  encrypt.FlagEncryptChaCha20,\n\t}\n\n\tencryptionSortMap = map[EncryptionHint]int{\n\t\tEncryptionNone:      0,\n\t\tEncryptionAES256GCM: 1,\n\t\tEncryptionChaCha20:  2,\n\t}\n)\n\n// IsValid checks if `eh` is a valid encryption type\nfunc (eh EncryptionHint) IsValid() bool {\n\t_, ok := encryptionHintMap[eh]\n\treturn ok\n}\n\n// ToEncryptFlags returns flags suitable for passing to the encrypt.NewWriter.\nfunc (eh EncryptionHint) ToEncryptFlags() encrypt.Flags {\n\treturn encryptionHintMap[eh]\n}\n\n// ValidEncryptionHints returns all valid encryption hints.\nfunc ValidEncryptionHints() []string {\n\ts := []string{}\n\tfor h := range encryptionHintMap {\n\t\ts = append(s, string(h))\n\t}\n\n\treturn s\n}\n\n// Hint describes the settings brig applies to streams.\ntype Hint struct {\n\t// CompressionAlgo can be an algorithm or \"guess\"\n\t// to let brig choose a suitable one.\n\tCompressionAlgo CompressionHint\n\n\t// EncryptionAlgo must be a valid encryption algorithm.\n\tEncryptionAlgo EncryptionHint\n}\n\n// Small heuristic to decide if we should use ChaCha20\n// or AES for encryption as default.\nvar (\n\tcpuInfoOnce   sync.Once\n\tcpuHasNoAESNI int32\n)\n\n// Default returns the default stream settings\nfunc Default() Hint {\n\tcpuInfoOnce.Do(func() {\n\t\tif !cpuid.CPU.Supports(cpuid.AESNI) {\n\t\t\tatomic.StoreInt32(&cpuHasNoAESNI, 1)\n\t\t}\n\t})\n\n\tencHint := EncryptionAES256GCM\n\tif atomic.LoadInt32(&cpuHasNoAESNI) > 0 {\n\t\tencHint = EncryptionChaCha20\n\t}\n\n\treturn Hint{\n\t\tEncryptionAlgo:  encHint,\n\t\tCompressionAlgo: CompressionGuess,\n\t}\n}\n\n// IsValid checks if all fields of the hint are valid.\nfunc (h Hint) IsValid() bool {\n\treturn h.EncryptionAlgo.IsValid() && h.CompressionAlgo.IsValid()\n}\n\n// EncryptFlags returns combined flags for encrypt.NewWriter.\n// If valid compression is set, then FlagCompressedInside is OR'd in.\nfunc (h Hint) EncryptFlags() encrypt.Flags {\n\tflags := h.EncryptionAlgo.ToEncryptFlags()\n\tif h.CompressionAlgo != CompressionNone {\n\t\tflags |= encrypt.FlagCompressedInside\n\t}\n\n\treturn flags\n}\n\n// IsRaw checks if the stream can be read directly from IPFS.\nfunc (h Hint) IsRaw() bool {\n\treturn h.EncryptionAlgo == EncryptionNone && h.CompressionAlgo == CompressionNone\n}\n\nfunc (h Hint) String() string {\n\treturn fmt.Sprintf(\"enc:%s-zip:%s\", h.EncryptionAlgo, h.CompressionAlgo)\n}\n\n// Less returns false if `o` should be sorted before `h`.\nfunc (h Hint) Less(o Hint) bool {\n\t// This sorts \"none\" always before any other hint type.\n\t// Leverages the fact that the enum value of none is lower than all others.\n\tencNumH, ok := encryptionSortMap[h.EncryptionAlgo]\n\tif !ok {\n\t\tencNumH = int(^uint(0) >> 1)\n\t}\n\n\tencNumO, ok := encryptionSortMap[o.EncryptionAlgo]\n\tif !ok {\n\t\tencNumO = int(^uint(0) >> 1)\n\t}\n\n\tif encNumH != encNumO {\n\t\treturn encNumH < encNumO\n\t}\n\n\tzipNumH, ok := compressionSortMap[h.CompressionAlgo]\n\tif !ok {\n\t\tzipNumH = int(^uint(0) >> 1)\n\t}\n\n\tzipNumO, ok := compressionSortMap[o.CompressionAlgo]\n\tif !ok {\n\t\tzipNumO = int(^uint(0) >> 1)\n\t}\n\n\treturn zipNumH < zipNumO\n}\n\n// EncryptionHints returns all possible encryption hints.\nfunc EncryptionHints() []EncryptionHint {\n\ts := []EncryptionHint{}\n\n\tfor encryptionHint := range encryptionHintMap {\n\t\ts = append(s, encryptionHint)\n\t}\n\n\treturn s\n}\n\n// AllPossibleHints returns all possible valid hint combination.\n// Useful for testing, but might be useful for cmdline purposes too.\nfunc AllPossibleHints() []Hint {\n\thints := []Hint{}\n\n\tfor compressionHint := range compressionHintMap {\n\t\tfor encryptionHint := range encryptionHintMap {\n\t\t\thints = append(hints, Hint{\n\t\t\t\tCompressionAlgo: compressionHint,\n\t\t\t\tEncryptionAlgo:  encryptionHint,\n\t\t\t})\n\t\t}\n\t}\n\n\tsort.Slice(hints, func(i, j int) bool {\n\t\treturn hints[i].Less(hints[j])\n\t})\n\n\treturn hints\n}\n\nvar (\n\tdefaults = config.DefaultMapping{\n\t\t\"hints\": config.DefaultMapping{\n\t\t\t\"__many__\": config.DefaultMapping{\n\t\t\t\t\"path\": config.DefaultEntry{\n\t\t\t\t\tDefault:      \"\",\n\t\t\t\t\tNeedsRestart: false,\n\t\t\t\t\tDocs:         \"The path to apply the hints to. Recursive if directory.\",\n\t\t\t\t},\n\t\t\t\t\"compression_algo\": config.DefaultEntry{\n\t\t\t\t\tDefault:      string(Default().CompressionAlgo),\n\t\t\t\t\tNeedsRestart: false,\n\t\t\t\t\tDocs:         \"Which compression algorithm to use.\",\n\t\t\t\t\tValidator:    config.EnumValidator(ValidCompressionHints()...),\n\t\t\t\t},\n\t\t\t\t\"encryption_algo\": config.DefaultEntry{\n\t\t\t\t\tDefault:      string(Default().EncryptionAlgo),\n\t\t\t\t\tNeedsRestart: false,\n\t\t\t\t\tDocs:         \"Which encryption algorithm to use.\",\n\t\t\t\t\tValidator:    config.EnumValidator(ValidEncryptionHints()...),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n)\n\nfunc prefixSlash(path string) string {\n\tif len(path) > 0 && path[0] != '/' {\n\t\tpath = \"/\" + path\n\t}\n\n\treturn path\n}\n\n// HintManager is a helper to store hints for certain paths.\ntype HintManager struct {\n\tmu   sync.Mutex\n\troot *trie.Node\n}\n\n// NewManager reads a YAML file from `yamlReader`.\n// If the reader is nil, then an empty file is assumed.\n// There is always a root hint with the settings returned by Default()\n//\n// All methods are safe to call from several go routines.\nfunc NewManager(yamlReader io.Reader) (*HintManager, error) {\n\tif yamlReader == nil {\n\t\t// If no hint manager was loaded, then let's load one\n\t\t// that always returns the defaults.\n\t\treturn &HintManager{\n\t\t\troot: trie.NewNodeWithData(Default()),\n\t\t}, nil\n\t}\n\n\tmgr := config.NewMigrater(1, config.StrictnessWarn)\n\tmgr.Add(0, nil, defaults)\n\n\tcfg, err := mgr.Migrate(config.NewYamlDecoder(yamlReader))\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"failed to migrate or open\")\n\t}\n\n\troot := trie.NewNode()\n\n\thintMapping := cfg.Section(\"hints\")\n\tfor _, key := range hintMapping.Keys() {\n\t\tif !strings.HasSuffix(key, \".path\") {\n\t\t\tcontinue\n\t\t}\n\n\t\thintPath := hintMapping.String(key)\n\t\tprefixKey := strings.TrimSuffix(key, \".path\")\n\n\t\thint := Hint{\n\t\t\tCompressionAlgo: CompressionHint(hintMapping.String(prefixKey + \".compression_algo\")),\n\t\t\tEncryptionAlgo:  EncryptionHint(hintMapping.String(prefixKey + \".encryption_algo\")),\n\t\t}\n\n\t\t// Fill up a trie with each hint:\n\t\troot.InsertWithData(prefixSlash(hintPath), hint)\n\t}\n\n\treturn &HintManager{\n\t\troot: root,\n\t}, nil\n}\n\n// Lookup will give a hint for path. If there is no such hint,\n// we return the default. If we don't have a hint for `path` directly\n// the hint of the nearest parent is returned. If that also did not\n// work (for whatever reason) then the default is returned.\n// The returned hint is valid in any case.\nfunc (hm *HintManager) Lookup(path string) Hint {\n\thm.mu.Lock()\n\tdefer hm.mu.Unlock()\n\n\tpath = prefixSlash(path)\n\tnode := hm.root.LookupDeepest(path)\n\tif node == nil || node.Data == nil {\n\t\t// This can happen only if the root node\n\t\t// does not have any data.\n\t\treturn Default()\n\t}\n\n\treturn node.Data.(Hint)\n}\n\n// Set remembers a `hint` for `path`.\nfunc (hm *HintManager) Set(path string, hint Hint) error {\n\thm.mu.Lock()\n\tdefer hm.mu.Unlock()\n\n\tpath = prefixSlash(path)\n\tif !hint.IsValid() {\n\t\treturn ErrInvalidHint\n\t}\n\n\thm.root.InsertWithData(path, hint)\n\treturn nil\n}\n\n// Remove forgets a hint at `path`.\nfunc (hm *HintManager) Remove(path string) error {\n\thm.mu.Lock()\n\tdefer hm.mu.Unlock()\n\n\tpath = prefixSlash(path)\n\tnd := hm.root.Lookup(path)\n\tif nd == nil || nd.Data == nil {\n\t\treturn ErrNoSuchHint\n\t}\n\n\tnd.Remove()\n\treturn nil\n}\n\n// List returns a map of all paths with their corresponding hints.\nfunc (hm *HintManager) List() map[string]Hint {\n\thm.mu.Lock()\n\tdefer hm.mu.Unlock()\n\n\treturn hm.list()\n}\n\n// list() is used both by Save() and List()\nfunc (hm *HintManager) list() map[string]Hint {\n\thints := make(map[string]Hint)\n\n\thm.root.Walk(true, func(node *trie.Node) bool {\n\t\tif node.Data == nil {\n\t\t\treturn true\n\t\t}\n\n\t\tpath := prefixSlash(node.Path())\n\t\thints[path] = node.Data.(Hint)\n\t\treturn true\n\t})\n\n\treturn hints\n}\n\n// Save writes a YAML representation of the hints to `w`.\nfunc (hm *HintManager) Save(w io.Writer) error {\n\thm.mu.Lock()\n\tdefer hm.mu.Unlock()\n\n\temptyCfg, err := config.Open(nil, defaults, config.StrictnessWarn)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thintMapping := emptyCfg.Section(\"hints\")\n\tfor path, hint := range hm.list() {\n\t\thintMapping.SetString(path+\".path\", path)\n\t\thintMapping.SetString(path+\".compression_algo\", string(hint.CompressionAlgo))\n\t\thintMapping.SetString(path+\".encryption_algo\", string(hint.EncryptionAlgo))\n\t}\n\n\treturn emptyCfg.Save(config.NewYamlEncoder(w))\n}\n"
  },
  {
    "path": "repo/hints/hints_test.go",
    "content": "package hints\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestHintManager(t *testing.T) {\n\tmgr, err := NewManager(nil)\n\trequire.NoError(t, err)\n\n\texpect := Hint{\n\t\tCompressionAlgo: CompressionLZ4,\n\t\tEncryptionAlgo:  EncryptionNone,\n\t}\n\n\tmgr.Set(\"/a/b/c\", expect)\n\thint := mgr.Lookup(\"/a/b/c/d\")\n\trequire.Equal(t, expect, hint)\n\n\trequire.Equal(t, map[string]Hint{\n\t\t\"/\":      Default(),\n\t\t\"/a/b/c\": expect,\n\t}, mgr.List())\n\n\tyamlBuf := bytes.NewBuffer(nil)\n\trequire.NoError(t, mgr.Save(yamlBuf))\n\toldYaml := yamlBuf.String()\n\n\t// Check if a freshly loaded one behaves exactly same:\n\tnewMgr, err := NewManager(yamlBuf)\n\trequire.NoError(t, err)\n\n\tnewHint := newMgr.Lookup(\"/a/b/c/d\")\n\trequire.Equal(t, expect, newHint)\n\n\tnewYamlBuf := bytes.NewBuffer(nil)\n\trequire.NoError(t, newMgr.Save(newYamlBuf))\n\trequire.Equal(t, oldYaml, newYamlBuf.String())\n\n\trequire.Equal(t, ErrNoSuchHint, newMgr.Remove(\"/a/b/c/d\"))\n\trequire.NoError(t, newMgr.Remove(\"/a/b/c\"))\n\trequire.Equal(t, Default(), newMgr.Lookup(\"/a/b/c/d\"))\n}\n"
  },
  {
    "path": "repo/immutables.go",
    "content": "package repo\n\nimport (\n\t\"os\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/config\"\n)\n\nconst (\n\tcurrentImmutablesVersion = 0\n)\n\nvar immutableDefaultsV0 = config.DefaultMapping{\n\t\"backend\": config.DefaultEntry{\n\t\tDefault:      \"httpipfs\",\n\t\tNeedsRestart: true,\n\t\tDocs:         \"What backend type this repository uses\",\n\t\tValidator: config.EnumValidator(\n\t\t\t\"httpipfs\",\n\t\t\t\"mock\",\n\t\t),\n\t},\n\t\"owner\": config.DefaultEntry{\n\t\tDefault:      \"\",\n\t\tNeedsRestart: true,\n\t\tDocs:         \"The owner of this repository passed at init\",\n\t},\n\t\"init_tag\": config.DefaultEntry{\n\t\tDefault:      \"\",\n\t\tNeedsRestart: true,\n\t\tDocs:         \"Hash of the first commit\",\n\t},\n\t\"version\": config.DefaultEntry{\n\t\tDefault:      currentImmutablesVersion,\n\t\tNeedsRestart: true,\n\t\tDocs:         \"Layout version of this repository\",\n\t},\n}\n\nfunc openMigratedImmutables(path string) (*config.Config, error) {\n\tfd, err := os.Open(path)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"failed to open config path %s\", path)\n\t}\n\n\tdefer fd.Close()\n\n\tmgr := config.NewMigrater(currentImmutablesVersion, config.StrictnessPanic)\n\tmgr.Add(0, nil, immutableDefaultsV0)\n\n\tcfg, err := mgr.Migrate(config.NewYamlDecoder(fd))\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"failed to migrate or open\")\n\t}\n\n\treturn cfg, nil\n}\n\n// Immutables gives access to different values that can not be changed\n// by the user and were determined during the init of the repository.\ntype Immutables struct {\n\tcfg *config.Config\n}\n\n// NewImmutables loads the immutable.yml at `path`\nfunc NewImmutables(path string) (*Immutables, error) {\n\tcfg, err := openMigratedImmutables(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Immutables{cfg: cfg}, nil\n}\n\n// Owner returns the owner of the repository.\nfunc (i *Immutables) Owner() string {\n\treturn i.cfg.String(\"owner\")\n}\n\n// Backend returns the chosen backend of the repository.\nfunc (i *Immutables) Backend() string {\n\treturn i.cfg.String(\"backend\")\n}\n"
  },
  {
    "path": "repo/init.go",
    "content": "package repo\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// InitOptions sum up the option that we can pass to Init()\ntype InitOptions struct {\n\t// BaseFolder is where the repository is located.\n\tBaseFolder string\n\n\t// Owner is the owner id of the repository.\n\tOwner string\n\n\t// BackendName says what backend we should use.\n\tBackendName string\n\n\t// DaemonURL is the URL that will be used for the brig daemon.\n\tDaemonURL string\n}\n\n// IsValidBackendName tells you if `name` is a valid backend name.\nfunc IsValidBackendName(name string) bool {\n\tswitch name {\n\tcase \"mock\", \"httpipfs\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Validate checks if the options are valid.\nfunc (opts InitOptions) Validate() error {\n\tif !IsValidBackendName(opts.BackendName) {\n\t\treturn fmt.Errorf(\"invalid backend name: %v\", opts.BackendName)\n\t}\n\n\tif len(opts.Owner) == 0 {\n\t\treturn fmt.Errorf(\"owner may not be empty\")\n\t}\n\n\treturn nil\n}\n\n// Init will create a new repository on disk at `baseFolder`.\n// `owner` will be the new owner and should be something like user@domain/resource.\n// `backendName` is the name of the backend, either \"ipfs\" or \"mock\".\n// `daemonPort` is the port of the local daemon.\nfunc Init(opts InitOptions) error {\n\tif err := opts.Validate(); err != nil {\n\t\treturn err\n\t}\n\n\tinfo, err := os.Stat(opts.BaseFolder)\n\tif os.IsNotExist(err) {\n\t\tif err := os.MkdirAll(opts.BaseFolder, 0700); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if info.Mode().IsDir() {\n\t\tchildren, err := ioutil.ReadDir(opts.BaseFolder)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(children) > 0 {\n\t\t\tlog.Warningf(\"`%s` is a directory and exists\", opts.BaseFolder)\n\t\t}\n\t} else {\n\t\treturn fmt.Errorf(\"`%s` is not a directory\", opts.BaseFolder)\n\t}\n\n\t// Create (empty) folders:\n\tfor _, emptyFolder := range []string{\"metadata\", \"keyring\"} {\n\t\tabsFolder := filepath.Join(opts.BaseFolder, emptyFolder)\n\t\tif err := os.Mkdir(absFolder, 0700); err != nil {\n\t\t\treturn e.Wrapf(err, \"failed to create dir: %v (repo exists?)\", absFolder)\n\t\t}\n\t}\n\n\tif err := util.Touch(filepath.Join(opts.BaseFolder, \"remotes.yml\")); err != nil {\n\t\treturn e.Wrapf(err, \"failed to touch remotes.yml\")\n\t}\n\n\terr = ioutil.WriteFile(\n\t\tfilepath.Join(opts.BaseFolder, \"README.md\"),\n\t\t[]byte(repoReadmeTxt),\n\t\t0600,\n\t)\n\tif err != nil {\n\t\treturn e.Wrap(err, \"failed to write README.md\")\n\t}\n\n\timmutables, err := config.Open(nil, immutableDefaultsV0, config.StrictnessPanic)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := immutables.SetString(\"owner\", opts.Owner); err != nil {\n\t\treturn err\n\t}\n\n\tif err := immutables.SetString(\"backend\", opts.BackendName); err != nil {\n\t\treturn err\n\t}\n\n\timmutablePath := filepath.Join(opts.BaseFolder, \"immutable.yml\")\n\tif err := config.ToYamlFile(immutablePath, immutables); err != nil {\n\t\treturn e.Wrap(err, \"failed to setup immutables config\")\n\t}\n\n\t// Create a default config, only with the default keys applied:\n\tcfg, err := config.Open(nil, defaults.Defaults, config.StrictnessPanic)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := cfg.SetString(\"daemon.url\", opts.DaemonURL); err != nil {\n\t\treturn err\n\t}\n\n\tconfigPath := filepath.Join(opts.BaseFolder, \"config.yml\")\n\tif err := config.ToYamlFile(configPath, cfg); err != nil {\n\t\treturn e.Wrap(err, \"failed to setup default config\")\n\t}\n\n\t// Create initial key pair:\n\tkeyringFolder := filepath.Join(opts.BaseFolder, \"keyring\")\n\tif err := createKeyPair(opts.Owner, keyringFolder, 2048); err != nil {\n\t\treturn e.Wrap(err, \"failed to setup gpg keys\")\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "repo/keys.go",
    "content": "package repo\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/alokmenghrajani/gpgeez\"\n\t\"github.com/sahib/brig/util\"\n\t\"golang.org/x/crypto/openpgp\"\n)\n\n// create a new gpg key pair with self-signed subkeys\nfunc createKeyPair(owner, folder string, bits int) error {\n\t// Setting expiry time to zero is good enough for now. (key wil never\n\t// expire; not sure yet if expiring keys make sense for brig)\n\tcfg := gpgeez.Config{\n\t\tExpiry: 0 * time.Second,\n\t}\n\n\tcfg.RSABits = bits\n\tcomment := fmt.Sprintf(\"brig gpg key of %s\", owner)\n\tkey, err := gpgeez.CreateKey(owner, comment, owner, &cfg)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbaseFolder := filepath.Join(folder, owner)\n\tif err := os.MkdirAll(baseFolder, 0700); err != nil {\n\t\treturn err\n\t}\n\n\tpubPath := filepath.Join(baseFolder, \"key.pub\")\n\tprvPath := filepath.Join(baseFolder, \"key.prv\")\n\tif err := ioutil.WriteFile(pubPath, key.Keyring(), 0600); err != nil {\n\t\treturn err\n\t}\n\n\treturn ioutil.WriteFile(prvPath, key.Secring(&cfg), 0600)\n}\n\n// encryptAsymmetric loads the pubkey from `folder` and encrypts `data` with it.\n// This is not an efficient method and is not supposed to be used for large\n// amounts of data.\nfunc encryptAsymmetric(data, pubKey []byte) ([]byte, error) {\n\tents, err := openpgp.ReadKeyRing(bytes.NewReader(pubKey))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tencBuf := &bytes.Buffer{}\n\tencW, err := openpgp.Encrypt(encBuf, ents, nil, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif _, err := encW.Write(data); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := encW.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn encBuf.Bytes(), nil\n}\n\n// decryptAsymetric uses the private key from `folder` to decrypt `data`.\n// This is not an efficient method and is not supposed to be used for large\n// amounts of data.\nfunc decryptAsymetric(folder, owner string, data []byte) ([]byte, error) {\n\tprvPath := filepath.Join(folder, owner, \"key.prv\")\n\tfd, err := os.Open(prvPath) // #nosec\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer util.Closer(fd)\n\n\tents, err := openpgp.ReadKeyRing(fd)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmd, err := openpgp.ReadMessage(bytes.NewReader(data), ents, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ioutil.ReadAll(md.UnverifiedBody)\n}\n\n// Keyring manages our own keypair and stores the last known\n// pubkeys of other remotes.\ntype Keyring struct {\n\tfolder string\n\towner  string\n}\n\nfunc newKeyringHandle(folder, owner string) *Keyring {\n\treturn &Keyring{\n\t\tfolder: folder,\n\t\towner:  owner,\n\t}\n}\n\n// Encrypt `data` with `pubKey`.\n// If it's desired to encrypt a message with our own pubkey,\n// then use the PubKeyBytes() method to load one.\n// This is not an efficient method and is not supposed to be used for large\n// amounts of data.\nfunc (kp *Keyring) Encrypt(data, pubKey []byte) ([]byte, error) {\n\treturn encryptAsymmetric(data, pubKey)\n}\n\n// Decrypt decrypts a message encrypted with our public key.\n// This is not an efficient method and is not supposed to be used for large\n// amounts of data.\nfunc (kp *Keyring) Decrypt(data []byte) ([]byte, error) {\n\treturn decryptAsymetric(kp.folder, kp.owner, data)\n}\n\n// OwnPubKey returns an exported version of our own public key.\nfunc (kp *Keyring) OwnPubKey() ([]byte, error) {\n\tpubPath := filepath.Join(kp.folder, kp.owner, \"key.pub\")\n\treturn ioutil.ReadFile(pubPath) // #nosec\n}\n\n// PubKeyFor returns the stored public key for a partner named `name`\nfunc (kp *Keyring) PubKeyFor(name string) ([]byte, error) {\n\tpath := filepath.Join(kp.folder, name, filepath.Clean(name))\n\treturn ioutil.ReadFile(path) // #nosec\n}\n\n// SavePubKey stores a public key from a partner with the name `name`\nfunc (kp *Keyring) SavePubKey(name string, pubKey []byte) error {\n\tif name == kp.owner {\n\t\treturn errors.New(\"cannot save public key with same name as owner\")\n\t}\n\n\tbase := filepath.Join(kp.folder, name)\n\tif err := os.MkdirAll(base, 0700); err != nil {\n\t\treturn err\n\t}\n\n\tpubKeyPath := filepath.Join(base, filepath.Clean(name))\n\treturn ioutil.WriteFile(pubKeyPath, pubKey, 0600)\n}\n"
  },
  {
    "path": "repo/keys_test.go",
    "content": "package repo\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestKeyring(t *testing.T) {\n\ttestDir := filepath.Join(os.TempDir(), \"brig-repo-key-test\")\n\trequire.Nil(t, os.MkdirAll(testDir, 0755))\n\tdefer os.RemoveAll(testDir)\n\n\trequire.Nil(\n\t\tt,\n\t\tcreateKeyPair(\"alice\", testDir, 1024),\n\t)\n\n\tkr := newKeyringHandle(testDir, \"alice\")\n\townPubKey, err := kr.OwnPubKey()\n\trequire.Nil(t, err)\n\trequire.True(t, len(ownPubKey) > 256)\n\n\t// Not very realistic that we encrypt with our own pub key ourselves,\n\t// but that's good enough for testing if it works.\n\ttestData := []byte(\"Hello!\")\n\tencTestData, err := kr.Encrypt(testData, ownPubKey)\n\trequire.NoError(t, err)\n\trequire.NotEqual(t, testData, encTestData)\n\n\tdecTestData, err := kr.Decrypt(encTestData)\n\trequire.NoError(t, err)\n\trequire.Equal(t, testData, decTestData)\n\n\trequire.Nil(t, kr.SavePubKey(\"a\", []byte{1}))\n\trequire.Nil(t, kr.SavePubKey(\"a\", []byte{1}))\n\tremotePubKey, err := kr.PubKeyFor(\"a\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, remotePubKey, []byte{1})\n}\n"
  },
  {
    "path": "repo/mock/mock.go",
    "content": "package mock\n\nimport (\n\th \"github.com/sahib/brig/util/hashlib\"\n)\n\n// RepoBackend is used to fake a repo backend in testing.\ntype RepoBackend struct{}\n\n// Init does nothing to create a mock repo.\nfunc (mrb *RepoBackend) Init(folder string) error {\n\treturn nil\n}\n\n// GC does nothing.\nfunc (mrb *RepoBackend) GC() ([]h.Hash, error) {\n\treturn nil, nil\n}\n\n// Name returns \"mock\"\nfunc (mrb *RepoBackend) Name() string {\n\treturn \"mock\"\n}\n\n// NewMockRepoBackend returns a new RepoBackend\nfunc NewMockRepoBackend() *RepoBackend {\n\treturn &RepoBackend{}\n}\n"
  },
  {
    "path": "repo/readme.go",
    "content": "package repo\n\nconst (\n\trepoReadmeTxt = `# Hello!\n\nThis directory is a brig repository.\nYou can find out more about brig here:\n\nhttps://brig.readthedocs.io\n`\n)\n"
  },
  {
    "path": "repo/remotes.go",
    "content": "package repo\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\n\t\"github.com/sahib/brig/catfs/vcs\"\n\t\"github.com/sahib/brig/net/peer\"\n\n\tyml \"gopkg.in/yaml.v2\"\n)\n\nvar (\n\t// ErrNoSuchRemote will be returned by various remote functions\n\t// when a non-existing remote was requested.\n\tErrNoSuchRemote = errors.New(\"No such remote with this name\")\n)\n\n// Folder defines a folder setting of the remote.\ntype Folder struct {\n\tFolder string\n\n\t// ReadOnly will exclude this folder from syncing if true.\n\tReadOnly bool\n\n\t// ConflictStrategy for this folder.\n\t// This overwrites the strategy per remote.\n\tConflictStrategy string\n}\n\nfunc (f Folder) String() string {\n\treturn f.Folder\n}\n\n// Remote is one entry in the remote list.\n// It defines what users we may talk to (and also how)\ntype Remote struct {\n\t// Name is the name of the remote.\n\t// This name can be freely chosen.\n\tName string\n\n\t// Folders is a list of folders the remote has access to.\n\t// If this list is empty, this remote may access all folders.\n\tFolders []Folder\n\n\t// Fingerprint is the fingerprint of the remote.\n\tFingerprint peer.Fingerprint\n\n\t// AcceptAutoUpdates can be true if we want to receive\n\t// updates from other peers that support this.\n\tAcceptAutoUpdates bool\n\n\t// ConflictStrategy sets the Either \"marker\", \"ignore\", \"embrace\".  If an\n\t// empty string (default) then the config value fs.sync.conflict_strategy\"\n\t// is taken.\n\tConflictStrategy string\n\n\t// AcceptPush will allow this remote to push data to us if true.\n\tAcceptPush bool\n}\n\n// ReadOnlyFolders returns the folders that are set to read only\n// as string slice without the folder structure.\nfunc (r Remote) ReadOnlyFolders() []string {\n\tfolders := []string{}\n\tfor _, folder := range r.Folders {\n\t\tif folder.ReadOnly {\n\t\t\tfolders = append(folders, folder.Folder)\n\t\t}\n\t}\n\n\treturn folders\n}\n\n// ConflictStrategyPerFolder returns a map of folders (as key)\n// which have a dedicated conflict strategy (as value).\nfunc (r Remote) ConflictStrategyPerFolder() map[string]string {\n\tcspf := make(map[string]string)\n\n\tfor _, folder := range r.Folders {\n\t\tif folder.ConflictStrategy != \"\" {\n\t\t\tcspf[folder.Folder] = folder.ConflictStrategy\n\t\t}\n\t}\n\n\treturn cspf\n}\n\n// RemoteList is a helper that parses the remote access yml file\n// and makes it easily accessible from the Go side.\ntype RemoteList struct {\n\tremotes   map[string]*Remote\n\tcallbacks []func()\n\tpath      string\n}\n\n// NewRemotes returns a new RemoteList.\nfunc NewRemotes(path string) (*RemoteList, error) {\n\tdata, err := ioutil.ReadFile(path) // #nosec\n\tif err != nil && !os.IsNotExist(err) {\n\t\treturn nil, err\n\t}\n\n\tremotes := make(map[string]*Remote)\n\tif err := yml.Unmarshal(data, remotes); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Go over the folders and make sure they are sorted:\n\t// (This is only a nice to have for ListRemotes())\n\tfor _, remote := range remotes {\n\t\tsort.Slice(remote.Folders, func(i, j int) bool {\n\t\t\treturn remote.Folders[i].Folder < remote.Folders[j].Folder\n\t\t})\n\t}\n\n\treturn &RemoteList{\n\t\tremotes: remotes,\n\t\tpath:    path,\n\t}, nil\n}\n\nfunc (rl *RemoteList) save() error {\n\tbuf := &bytes.Buffer{}\n\tif err := rl.Export(buf); err != nil {\n\t\treturn err\n\t}\n\n\tif err := ioutil.WriteFile(rl.path, buf.Bytes(), 0600); err != nil {\n\t\treturn err\n\t}\n\n\trl.notify()\n\treturn nil\n}\n\n// Export writes the contents of the remote list to `w` in YAML format.\nfunc (rl *RemoteList) Export(w io.Writer) error {\n\tdata, err := yml.Marshal(rl.remotes)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := w.Write(data); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc dedupeFolders(folders []Folder) []Folder {\n\tseen := make(map[string]bool)\n\tnewFolders := []Folder{}\n\n\tfor _, folder := range folders {\n\t\tif _, ok := seen[folder.Folder]; ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tseen[folder.Folder] = true\n\t\tnewFolders = append(newFolders, folder)\n\t}\n\n\treturn newFolders\n}\n\n// AddOrUpdateRemote will add/update a remote.\nfunc (rl *RemoteList) AddOrUpdateRemote(remote Remote) error {\n\tif remote.ConflictStrategy != \"\" {\n\t\tcs := vcs.ConflictStrategyFromString(remote.ConflictStrategy)\n\t\tif cs == vcs.ConflictStragetyUnknown {\n\t\t\treturn fmt.Errorf(\"unknown conflict strategy: %s\", remote.ConflictStrategy)\n\t\t}\n\t}\n\n\tremote.Folders = dedupeFolders(remote.Folders)\n\trl.remotes[remote.Name] = &remote\n\treturn rl.save()\n}\n\n// RmRemote will remove a remote by `name`.\n// If there is not such remote, ErrNoSuchRemote is returned.\nfunc (rl *RemoteList) RmRemote(name string) error {\n\tif _, ok := rl.remotes[name]; !ok {\n\t\treturn ErrNoSuchRemote\n\t}\n\n\tdelete(rl.remotes, name)\n\treturn rl.save()\n}\n\n// Remote will return the remote named `name`.\n// If there is not such remote, ErrNoSuchRemote is returned.\nfunc (rl *RemoteList) Remote(name string) (Remote, error) {\n\trm, ok := rl.remotes[name]\n\tif !ok {\n\t\treturn Remote{}, ErrNoSuchRemote\n\t}\n\n\treturn *rm, nil\n}\n\n// Clear will remove all of the remote list.\nfunc (rl *RemoteList) Clear() error {\n\trl.remotes = make(map[string]*Remote)\n\treturn rl.save()\n}\n\n// ListRemotes will return a copy of the remote list entries.\nfunc (rl *RemoteList) ListRemotes() ([]Remote, error) {\n\tremotes := []Remote{}\n\tfor _, remote := range rl.remotes {\n\t\tremotes = append(remotes, *remote)\n\t}\n\n\t// Make sure that the output is more or less determistic:\n\tsort.Slice(remotes, func(i, j int) bool {\n\t\treturn remotes[i].Name < remotes[j].Name\n\t})\n\n\treturn remotes, nil\n}\n\n// SaveList will store the contents of `remotes` to disk.\nfunc (rl *RemoteList) SaveList(remotes []Remote) error {\n\t// Clear remotes and overwrite them.\n\trl.remotes = make(map[string]*Remote)\n\tfor _, remote := range remotes {\n\t\trl.remotes[remote.Name] = &Remote{\n\t\t\tName:        remote.Name,\n\t\t\tFingerprint: remote.Fingerprint,\n\t\t\tFolders:     remote.Folders,\n\t\t}\n\t}\n\n\tfor _, remote := range remotes {\n\t\tsort.Slice(remote.Folders, func(i, j int) bool {\n\t\t\treturn remote.Folders[i].Folder < remote.Folders[j].Folder\n\t\t})\n\t}\n\n\treturn rl.save()\n}\n\n// RemoteByAddr will return a remote with `addr` in its fingerprint, if any.\n// If none are found ErrNoSuchRemote will be returned as error.\nfunc (rl *RemoteList) RemoteByAddr(addr string) (Remote, error) {\n\tfor _, remote := range rl.remotes {\n\t\tif addr == remote.Fingerprint.Addr() {\n\t\t\treturn *remote, nil\n\t\t}\n\t}\n\n\treturn Remote{}, ErrNoSuchRemote\n}\n\nfunc (rl *RemoteList) notify() {\n\tfor _, fn := range rl.callbacks {\n\t\tfn()\n\t}\n}\n\n// OnChange register a callback to be called once the remote list is modified.\n// Can be called several times.\nfunc (rl *RemoteList) OnChange(fn func()) {\n\trl.callbacks = append(rl.callbacks, fn)\n}\n"
  },
  {
    "path": "repo/remotes_test.go",
    "content": "package repo\n\nimport (\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nvar (\n\tbobRemote = Remote{\n\t\tName:        \"bob@bobbyland.com/home\",\n\t\tFingerprint: peer.Fingerprint(\"fingerprint\"),\n\t\tFolders: []Folder{\n\t\t\t{\n\t\t\t\tFolder: \"/Public\",\n\t\t\t}, {\n\t\t\t\tFolder: \"/ShowOff\",\n\t\t\t},\n\t\t},\n\t}\n\tcharlieRemote = Remote{\n\t\tName:        \"charlie\",\n\t\tFingerprint: peer.Fingerprint(\"charliesfp\"),\n\t\tFolders: []Folder{\n\t\t\t{\n\t\t\t\t// Ts, ts, charlie...\n\t\t\t\tFolder: \"/Porns\",\n\t\t\t},\n\t\t},\n\t}\n)\n\nfunc TestRemotesReload(t *testing.T) {\n\tfd, err := ioutil.TempFile(\"\", \"brig-test-remotes\")\n\trequire.Nil(t, err)\n\n\tdefer require.Nil(t, os.Remove(fd.Name()))\n\tdefer require.Nil(t, fd.Close())\n\n\trl1, err := NewRemotes(fd.Name())\n\trequire.Nil(t, err)\n\n\trequire.Nil(t, rl1.AddOrUpdateRemote(bobRemote))\n\n\trl2, err := NewRemotes(fd.Name())\n\trequire.Nil(t, err)\n\n\tremotes, err := rl2.ListRemotes()\n\trequire.Nil(t, err)\n\n\trequire.Equal(t, len(remotes), 1)\n\trequire.Equal(t, remotes[0].Name, \"bob@bobbyland.com/home\")\n\tif remotes[0].Fingerprint != \"fingerprint\" {\n\t\tt.Fatalf(\"Fingerprints are differing: %v\", remotes[0].Fingerprint)\n\t}\n\trequire.Equal(t, remotes[0].Folders, bobRemote.Folders)\n}\n\nfunc TestRemoteOps(t *testing.T) {\n\tfd, err := ioutil.TempFile(\"\", \"brig-test-remotes\")\n\trequire.Nil(t, err)\n\n\tdefer require.Nil(t, os.Remove(fd.Name()))\n\tdefer require.Nil(t, fd.Close())\n\n\trl, err := NewRemotes(fd.Name())\n\trequire.Nil(t, err)\n\n\trequire.Nil(t, rl.AddOrUpdateRemote(bobRemote))\n\trequire.Nil(t, rl.AddOrUpdateRemote(charlieRemote))\n\n\tfetchedBob, err := rl.Remote(\"bob@bobbyland.com/home\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, fetchedBob, bobRemote)\n\n\tfetchedCharlie, err := rl.Remote(\"charlie\")\n\trequire.Nil(t, err)\n\trequire.Equal(t, fetchedCharlie, charlieRemote)\n\n\t// Check that list is outputting it sorted by name\n\tremotes, err := rl.ListRemotes()\n\trequire.Nil(t, err)\n\trequire.Equal(t, remotes, []Remote{bobRemote, charlieRemote})\n\n\trequire.Nil(t, rl.RmRemote(\"charlie\"))\n\trequire.Equal(t, rl.RmRemote(\"charlie\"), ErrNoSuchRemote)\n\n\t_, err = rl.Remote(\"charlie\")\n\trequire.Equal(t, err, ErrNoSuchRemote)\n\n\terr = rl.SaveList([]Remote{bobRemote, charlieRemote})\n\trequire.Nil(t, err)\n\n\t// Check it's the same again after we saved it over:\n\tremotes, err = rl.ListRemotes()\n\trequire.Nil(t, err)\n\trequire.Equal(t, remotes[0], bobRemote)\n\trequire.Equal(t, remotes[1], charlieRemote)\n}\n"
  },
  {
    "path": "repo/repo.go",
    "content": "package repo\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\t\"github.com/dustin/go-humanize\"\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs\"\n\tfserr \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/catfs/mio/pagecache/mdcache\"\n\t\"github.com/sahib/brig/defaults\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/config\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Repository provides access to the file structure of a single repository.\n//\n// Informal: This file structure currently looks like this:\n//\n// config.yml\n// immutables.yml\n// remotes.yml\n// keyring/\n//    <remote_name>\n//        key.prv\n//        key.pub\n// metadata/\n//    <remote_name>\n//        (fs-backend specific)\n// gateway/\n//    (gateway specific)\ntype Repository struct {\n\tmu sync.Mutex\n\n\t// Map between owner and related filesystem.\n\tfsMap map[string]*catfs.FS\n\n\t// Absolute path to the repository root\n\tBaseFolder string\n\n\t// Config interface\n\tConfig *config.Config\n\n\t// Immutables gives access to things that do not change\n\t// after initializing the repository.\n\tImmutables *Immutables\n\n\t// Remotes gives access to all known remotes\n\tRemotes *RemoteList\n\n\t// Hints are streaming settings\n\tHints *hints.HintManager\n\n\t// channel to control the auto gc loop\n\tautoGCControl chan bool\n}\n\nfunc loadHintManager(hintsPath string) (*hints.HintManager, error) {\n\thintsFd, err := os.Open(hintsPath)\n\tif err != nil && !os.IsNotExist(err) {\n\t\treturn nil, e.Wrap(err, \"failed to open hints.yml\")\n\t}\n\n\tif os.IsNotExist(err) {\n\t\t// No such file yet, create it.\n\t\treturn hints.NewManager(nil)\n\t}\n\n\tdefer hintsFd.Close()\n\n\treturn hints.NewManager(hintsFd)\n}\n\n// Open will open the repository at `baseFolder`\nfunc Open(baseFolder string) (*Repository, error) {\n\timmutables, err := NewImmutables(filepath.Join(baseFolder, \"immutable.yml\"))\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"failed to open immutable store\")\n\t}\n\n\tcfgPath := filepath.Join(baseFolder, \"config.yml\")\n\tcfg, err := defaults.OpenMigratedConfig(cfgPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// TODO: Why do we do this?\n\tcfg.SetString(\"repo.current_user\", immutables.Owner())\n\n\tremotePath := filepath.Join(baseFolder, \"remotes.yml\")\n\tremotes, err := NewRemotes(remotePath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thintsMgr, err := loadHintManager(filepath.Join(baseFolder, \"hints.yml\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Repository{\n\t\tBaseFolder:    baseFolder,\n\t\tImmutables:    immutables,\n\t\tConfig:        cfg,\n\t\tRemotes:       remotes,\n\t\tHints:         hintsMgr,\n\t\tfsMap:         make(map[string]*catfs.FS),\n\t\tautoGCControl: make(chan bool, 1),\n\t}, nil\n}\n\n// Close will lock the repository, making this instance unusable.\nfunc (rp *Repository) Close() error {\n\trp.stopAutoGCLoop()\n\tfor owner, fs := range rp.fsMap {\n\t\tlog.Infof(\"closing FS for %s\", owner)\n\t\tfs.Close()\n\t}\n\n\treturn nil\n}\n\n// HaveFS will return true if we have data for a certain owner.\nfunc (rp *Repository) HaveFS(owner string) bool {\n\trp.mu.Lock()\n\tdefer rp.mu.Unlock()\n\n\tfsDbPath := filepath.Join(rp.BaseFolder, \"metadata\", owner)\n\tif _, err := os.Stat(fsDbPath); err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// FS returns a filesystem for `owner`. If there is none yet,\n// it will create own associated to the respective owner.\nfunc (rp *Repository) FS(owner string, bk catfs.FsBackend) (*catfs.FS, error) {\n\trp.mu.Lock()\n\tdefer rp.mu.Unlock()\n\n\tif fs, ok := rp.fsMap[owner]; ok {\n\t\t// return cached:\n\t\treturn fs, nil\n\t}\n\n\tisReadOnly := rp.Immutables.Owner() != owner\n\n\t// No fs was created yet for this owner.\n\t// Create it & give it a part of the main config.\n\tfsCfg := rp.Config.Section(\"fs\")\n\tfsDbPath := filepath.Join(rp.BaseFolder, \"metadata\", owner)\n\tif err := os.MkdirAll(fsDbPath, 0700); err != nil && err != os.ErrExist {\n\t\treturn nil, err\n\t}\n\n\tpageCachePath := filepath.Join(rp.BaseFolder, \"pages\", owner)\n\tif err := os.MkdirAll(pageCachePath, 0700); err != nil && err != os.ErrExist {\n\t\treturn nil, err\n\t}\n\n\tpageCacheMaxMemorySrc := fsCfg.String(\"pagecache.max_memory\")\n\tpageCacheMaxMemory, err := humanize.ParseBytes(pageCacheMaxMemorySrc)\n\tif err != nil {\n\t\treturn nil, e.Wrapf(err, \"failed to parse fs.pagecache.max_memory\")\n\t}\n\n\tpageCache, err := mdcache.New(mdcache.Options{\n\t\tMaxMemoryUsage:    int64(pageCacheMaxMemory),\n\t\tSwapDirectory:     pageCachePath,\n\t\tL1CacheMissRefill: true,\n\t\tL2Compress:        fsCfg.Bool(\"pagecache.l2compress\"),\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfs, err := catfs.NewFilesystem(\n\t\tbk,\n\t\tfsDbPath,\n\t\towner,\n\t\tisReadOnly,\n\t\tfsCfg,\n\t\trp.Hints,\n\t\tpageCache,\n\t)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Create an initial commit if there was none yet:\n\tif _, err := fs.Head(); fserr.IsErrNoSuchRef(err) {\n\t\tif err := fs.MakeCommit(\"initial commit\"); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Store for next call:\n\trp.fsMap[owner] = fs\n\treturn fs, nil\n}\n\n// CurrentUser returns the current user of the repository.\n// (i.e. what FS is being shown)\nfunc (rp *Repository) CurrentUser() string {\n\treturn rp.Config.String(\"repo.current_user\")\n}\n\n// SetCurrentUser sets the current user of the repository.\n// (i.e. called by \"become\" when changing the FS)\nfunc (rp *Repository) SetCurrentUser(user string) {\n\trp.Config.Set(\"repo.current_user\", user)\n}\n\n// Keyring returns the keyring of the repository.\nfunc (rp *Repository) Keyring() (*Keyring, error) {\n\towner := rp.Immutables.Owner()\n\tpath := filepath.Join(rp.BaseFolder, \"keyring\")\n\tif err := os.MkdirAll(path, 0700); err != nil {\n\t\tlog.WithError(err).Warnf(\"failed to create keyring directory: %s\", path)\n\t\treturn nil, err\n\t}\n\n\treturn newKeyringHandle(path, owner), nil\n}\n\n// SaveConfig dumps the in memory config to disk.\nfunc (rp *Repository) SaveConfig() error {\n\tconfigPath := filepath.Join(rp.BaseFolder, \"config.yml\")\n\treturn config.ToYamlFile(configPath, rp.Config)\n}\n\n// SaveHints dumps the hints settings to disk.\n// You should call this whenever Hints are changed.\nfunc (rp *Repository) SaveHints() error {\n\thintsPath := filepath.Join(rp.BaseFolder, \"hints.yml\")\n\tfd, err := os.OpenFile(hintsPath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0600)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer fd.Close()\n\n\treturn rp.Hints.Save(fd)\n}\n"
  },
  {
    "path": "repo/repo_test.go",
    "content": "package repo\n\nimport (\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/backend/mock\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nvar (\n\tTestRegistryPath = \"/tmp/test-registry.yml\"\n)\n\nfunc TestRepoInit(t *testing.T) {\n\ttestDir := \"/tmp/.brig-repo-test\"\n\trequire.Nil(t, os.RemoveAll(testDir))\n\n\terr := Init(InitOptions{\n\t\tBaseFolder:  testDir,\n\t\tOwner:       \"alice\",\n\t\tBackendName: \"mock\",\n\t\tDaemonURL:   \"yadda-yadda\",\n\t})\n\trequire.Nil(t, err)\n\n\trp, err := Open(testDir)\n\trequire.Nil(t, err)\n\n\tbk := mock.NewMockBackend(\"\", \"\")\n\tfs, err := rp.FS(rp.CurrentUser(), bk)\n\trequire.Nil(t, err)\n\trequire.NotNil(t, fs)\n\n\trequire.Nil(t, fs.Stage(\"/x\", bytes.NewReader([]byte{1, 2, 3})))\n\tstream, err := fs.Cat(\"/x\")\n\trequire.Nil(t, err)\n\n\tdata, err := ioutil.ReadAll(stream)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, []byte{1, 2, 3})\n\n\trequire.NoError(t, fs.Close())\n\trequire.NoError(t, rp.Close())\n}\n\nfunc dirSize(t *testing.T, path string) int64 {\n\tvar size int64\n\terr := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !info.IsDir() {\n\t\t\tsize += info.Size()\n\t\t}\n\n\t\treturn err\n\t})\n\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to get directory size of `%s`: %v\", path, err)\n\t}\n\n\treturn size\n}\n"
  },
  {
    "path": "repo/repopack/repopack.go",
    "content": "package repopack\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/sahib/brig/catfs/mio/encrypt\"\n\t\"github.com/sahib/brig/util\"\n)\n\nfunc tarAndEncrypt(dir string, key []byte, w io.Writer) error {\n\tencw, err := encrypt.NewWriter(w, key, encrypt.FlagCompressedInside|encrypt.FlagEncryptAES256GCM)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer encw.Close()\n\treturn util.Tar(\n\t\tdir,\n\t\tfmt.Sprintf(\"brig repo archive of %s\", dir),\n\t\tencw,\n\t)\n}\n\nfunc untarAndDecrypt(tarReader io.Reader, key []byte, outputDir string) error {\n\tencr, err := encrypt.NewReader(tarReader, key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn util.Untar(encr, outputDir)\n}\n\nfunc keyFromPassword(password string) []byte {\n\t// NOTE: we would need to add a static salt in the front of the archive...\n\t//       if that gets damaged we would not be able to unlock it though.\n\t//       So for now we just a constant salt.\n\treturn util.DeriveKey([]byte(password), []byte(\"constant\"), 32)\n}\n\n// PackRepo archives the repository at `folder` to `archivePath` using `password`.\n// if `removeRepo` is true, we remove the repository after.\nfunc PackRepo(folder, archivePath, password string, removeRepo bool) error {\n\tfd, err := os.OpenFile(archivePath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0600)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := tarAndEncrypt(folder, keyFromPassword(password), fd); err != nil {\n\t\tfd.Close()\n\t\treturn err\n\t}\n\n\t// Make sure to close the handle to catch any errors,\n\t// before potentially removing the old repo. Would be\n\t// embarrassing to first remove it & then notice we failed.\n\tif err := fd.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tif removeRepo {\n\t\treturn os.RemoveAll(folder)\n\t}\n\n\treturn nil\n}\n\n// UnpackRepo unpacks the tar at `archivePath` using `password` and puts the\n// resulting repository at `folder`. If `removeArchive` is true the archive is\n// removed after.\nfunc UnpackRepo(folder, archivePath, password string, removeArchive bool) error {\n\tfd, err := os.Open(archivePath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer fd.Close()\n\n\tkey := keyFromPassword(password)\n\tif err := untarAndDecrypt(fd, key, folder); err != nil {\n\t\treturn err\n\t}\n\n\tif removeArchive {\n\t\treturn os.Remove(archivePath)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "repo/setup/ipfs.go",
    "content": "package setup\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math/rand\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/blang/semver\"\n\thumanize \"github.com/dustin/go-humanize\"\n\tshell \"github.com/ipfs/go-ipfs-api\"\n\thomedir \"github.com/mitchellh/go-homedir\"\n\tma \"github.com/multiformats/go-multiaddr\"\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/util\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tdefaultPathName = \".ipfs\"\n\tdefaultPathRoot = \"~/\" + defaultPathName\n\tdefaultAPIFile  = \"api\"\n)\n\nfunc guessIPFSRepo() string {\n\tbaseDir := os.Getenv(\"IPFS_PATH\")\n\tif baseDir == \"\" {\n\t\tbaseDir = defaultPathRoot\n\t}\n\n\tbaseDir, err := homedir.Expand(baseDir)\n\tif err != nil {\n\t\tlog.Warningf(\"failed to expand homedir: %v\", err)\n\t\treturn \"\"\n\t}\n\n\treturn baseDir\n}\n\nfunc getAPIAddrFromConfig(baseDir string) (ma.Multiaddr, error) {\n\tcfgPath := filepath.Join(baseDir, \"config\")\n\tcfgData, err := ioutil.ReadFile(cfgPath)\n\tif err != nil {\n\t\treturn nil, e.Wrap(err, \"does the IPFS repository exist? full error\")\n\t}\n\n\tdata := struct {\n\t\tAddresses struct {\n\t\t\tAPI string\n\t\t}\n\t}{}\n\n\tr := bytes.NewReader(cfgData)\n\tif err := json.NewDecoder(r).Decode(&data); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ma.NewMultiaddr(data.Addresses.API)\n}\n\n// GetAPIAddrForPath returns the API addr of the IPFS repo at `baseDir`.\nfunc GetAPIAddrForPath(ipfsPathOrMultiaddr string) (ma.Multiaddr, error) {\n\tm, err := ma.NewMultiaddr(ipfsPathOrMultiaddr)\n\tif err == nil {\n\t\treturn m, nil\n\t}\n\n\t// assume it's a path:\n\tapiFile := filepath.Join(ipfsPathOrMultiaddr, defaultAPIFile)\n\tif _, err := os.Stat(apiFile); err != nil {\n\t\treturn getAPIAddrFromConfig(ipfsPathOrMultiaddr)\n\t}\n\n\tapiAddr, err := ioutil.ReadFile(apiFile)\n\tif err != nil {\n\t\treturn getAPIAddrFromConfig(ipfsPathOrMultiaddr)\n\t}\n\n\ts := strings.TrimSpace(string(apiAddr))\n\treturn ma.NewMultiaddr(s)\n}\n\nfunc isRunning(apiAddr ma.Multiaddr) bool {\n\treturn shell.NewShell(apiAddr.String()).IsUp()\n}\n\nfunc getLatestStableVersion() string {\n\tfallbackStable := \"v0.4.22\"\n\turl := \"https://dist.ipfs.io/go-ipfs/versions\"\n\tresp, err := http.Get(url)\n\tif err != nil {\n\t\treturn fallbackStable\n\t}\n\n\tdefer resp.Body.Close()\n\n\tdata, err := ioutil.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn fallbackStable\n\t}\n\n\tlines := strings.Split(string(data), \"\\n\")\n\tfor idx := len(lines) - 1; idx >= 0; idx-- {\n\t\tif !strings.HasPrefix(lines[idx], \"v\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tif strings.Contains(lines[idx], \"-\") {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn lines[idx]\n\t}\n\n\treturn fallbackStable\n}\n\ntype writeCounter struct {\n\ttotal uint64\n}\n\nfunc (wc *writeCounter) Write(p []byte) (int, error) {\n\twc.total += uint64(len(p))\n\tfmt.Printf(\"\\r%s\", strings.Repeat(\" \", 42))\n\tfmt.Printf(\"\\r-- Downloading... %s\", humanize.Bytes(wc.total))\n\treturn len(p), nil\n}\n\nfunc (wc writeCounter) Close() error {\n\tfmt.Print(\"\\n\")\n\treturn nil\n}\n\nfunc downloadFile(filepath string, url string) error {\n\t// Create the file, but give it a tmp file extension, this means we won't overwrite a\n\t// file until it's downloaded, but we'll remove the tmp extension once downloaded.\n\tout, err := ioutil.TempFile(\"\", \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer out.Close()\n\n\tresp, err := http.Get(url)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer resp.Body.Close()\n\n\t// Create our progress reporter and pass it to be used alongside our writer\n\tprogw := &writeCounter{}\n\tdefer progw.Close()\n\n\tif _, err = io.Copy(out, io.TeeReader(resp.Body, progw)); err != nil {\n\t\treturn err\n\t}\n\n\treturn os.Rename(out.Name(), filepath)\n}\n\nfunc installIPFS(out io.Writer) error {\n\tfmt.Fprintf(out, \"-- Trying to figure out what IPFS version to install...\\n\")\n\tversion := getLatestStableVersion()\n\tfmt.Fprintf(out, \"-- Last stable IPFS version is: %s\\n\", version)\n\n\t// Build the IPFS download url:\n\turl := fmt.Sprintf(\n\t\t\"https://dist.ipfs.io/go-ipfs/%s/go-ipfs_%s_%s-%s.tar.gz\",\n\t\tversion,\n\t\tversion,\n\t\truntime.GOOS,\n\t\truntime.GOARCH,\n\t)\n\n\ttgzPath := fmt.Sprintf(\"/tmp/ipfs-%d.tar.gz\", rand.Int63())\n\tdefer os.RemoveAll(tgzPath)\n\n\tif err := downloadFile(tgzPath, url); err != nil {\n\t\tbufio.NewReader(os.Stdin).ReadBytes('\\n')\n\t}\n\n\ttgz, err := os.Open(tgzPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttmpDir, err := ioutil.TempDir(\"\", \"ipfs-tmp-download-\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfmt.Fprintf(out, \"-- Unpacking to: %s\\n\", tmpDir)\n\n\tdefer os.RemoveAll(tmpDir)\n\n\tif err := util.Untar(tgz, tmpDir); err != nil {\n\t\treturn err\n\t}\n\n\tcwd, err := os.Getwd()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbinPath := filepath.Join(tmpDir, \"go-ipfs\", \"ipfs\")\n\tcwdPath := filepath.Join(cwd, \"ipfs\")\n\n\tfmt.Fprintf(out, \"-- Copy binary to: %s\\n\", cwdPath)\n\treturn util.CopyFile(binPath, cwdPath)\n}\n\nfunc isPortTaken(port int) bool {\n\tlst, err := net.Listen(\"tcp\", fmt.Sprintf(\":%d\", port))\n\tif err != nil {\n\t\t// probably cannot take it because it's already taken.\n\t\treturn true\n\t}\n\n\tlst.Close()\n\treturn false\n}\n\nfunc ipfsSetConfigKey(out io.Writer, ipfsPath, key, value string) {\n\targs := []string{\"config\", \"--json\", key, value}\n\tcmd := exec.Command(\"ipfs\", args...)\n\tcmd.Env = append(cmd.Env, \"IPFS_PATH=\"+ipfsPath)\n\tfmt.Fprintf(out, \"  -- Setting config: IPFS_PATH='%s' ipfs %s\\n\", ipfsPath, strings.Join(args, \" \"))\n\n\terrBuf := &bytes.Buffer{}\n\tcmd.Stderr = errBuf\n\n\tif err := cmd.Run(); err != nil {\n\t\tfmt.Fprintf(out, \"could not set config: %s\\n\", strings.TrimSpace(errBuf.String()))\n\t\tfmt.Fprintf(out, \"command was: `ipfs %s\\n`\", strings.Join(args, \" \"))\n\t}\n}\n\nfunc initIPFS(out io.Writer, ipfsPath, profile string) error {\n\tcmd := exec.Command(\"ipfs\", \"init\")\n\tif profile != \"\" {\n\t\tcmd.Args = append(cmd.Args, \"--profile\", profile)\n\t}\n\n\tcmd.Env = append(cmd.Env, \"IPFS_PATH=\"+ipfsPath)\n\tif err := cmd.Run(); err != nil {\n\t\treturn err\n\t}\n\n\t// default IPFS ports:\n\tapiPort := 5001\n\tswarmPort := 4001\n\tipfsGwPort := 8080\n\n\t// try to find a suitable port for the new ipfs instance.\n\t// This is used for cases where you have several ipfs instances.\n\tfor off := 0; off < 100; off++ {\n\t\tif isPortTaken(apiPort+off) ||\n\t\t\tisPortTaken(swarmPort+off) ||\n\t\t\tisPortTaken(ipfsGwPort+off) {\n\t\t\tcontinue\n\t\t}\n\n\t\t// We have a working port set; build the config keys:\n\t\tconfig := [][]string{\n\t\t\t{\n\t\t\t\t\"Addresses.API\",\n\t\t\t\tfmt.Sprintf(\"\\\"/ip4/127.0.0.1/tcp/%d\\\"\", apiPort+off),\n\t\t\t}, {\n\t\t\t\t\"Addresses.Gateway\",\n\t\t\t\tfmt.Sprintf(\"\\\"/ip4/127.0.0.1/tcp/%d\\\"\", ipfsGwPort+off),\n\t\t\t}, {\n\t\t\t\t\"Addresses.Swarm\",\n\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\"[\\\"/ip4/0.0.0.0/tcp/%d\\\", \\\"/ip6/::/tcp/%d\\\"]\",\n\t\t\t\t\tswarmPort+off, swarmPort+off,\n\t\t\t\t),\n\t\t\t},\n\t\t}\n\n\t\t// Go and set the config:\n\t\tfor _, args := range config {\n\t\t\tipfsSetConfigKey(out, ipfsPath, args[0], args[1])\n\t\t}\n\n\t\tbreak\n\t}\n\n\treturn nil\n}\n\nfunc getIPFSVersion(apiAddr ma.Multiaddr) (semver.Version, error) {\n\tvers, _, err := shell.NewShell(apiAddr.String()).Version()\n\tif err != nil {\n\t\treturn semver.Version{}, err\n\t}\n\n\treturn semver.Parse(vers)\n}\n\nfunc configureIPFS(out io.Writer, apiAddr ma.Multiaddr, ipfsPath string, setExtraConfig bool) error {\n\tversion, err := getIPFSVersion(apiAddr)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfmt.Fprintf(out, \"-- The IPFS version is »%s«.\\n\", version)\n\tif version.LT(semver.MustParse(\"0.7.0\")) {\n\t\tfmt.Fprintf(out, \"-- The IPFS version »%s« is quite old. Please update.\\n\", version)\n\t\tfmt.Fprintf(out, \"-- We only test on newer versions (>= 0.7.0).\\n\")\n\t}\n\n\tconfig := [][]string{\n\t\t// Required for talking to other nodes.\n\t\t{\"Experimental.Libp2pStreamMounting\", \"true\"},\n\t}\n\n\tif setExtraConfig {\n\t\t// Optional: Helps save us resources.\n\t\tconfig = append(config, [][]string{\n\t\t\t{\"Reprovider.Interval\", \"\\\"1h\\\"\"},\n\t\t\t{\"Swarm.ConnMgr.GracePeriod\", \"\\\"60s\\\"\"},\n\t\t}...)\n\n\t\tif version.GE(semver.MustParse(\"0.4.19\")) {\n\t\t\tconfig = append(config, [][]string{\n\t\t\t\t{\"Swarm.EnableAutoRelay\", \"true\"},\n\t\t\t}...)\n\t\t}\n\t}\n\n\tfor _, args := range config {\n\t\tipfsSetConfigKey(out, ipfsPath, args[0], args[1])\n\t}\n\n\treturn nil\n}\n\nfunc startIpfs(out io.Writer, ipfsPath string) (int, error) {\n\t// We don't call Wait() on cmd, so the process will survive the\n\t// exit of your process and gets reparented to init.\n\tfmt.Fprintf(out, \"-- IPFS_PATH='%s' ipfs daemon --enable-pubsub-experiment\\n\", ipfsPath)\n\tcmd := exec.Command(\"ipfs\", \"daemon\", \"--enable-pubsub-experiment\")\n\tcmd.Env = append(cmd.Env, \"IPFS_PATH=\"+ipfsPath)\n\tif err := cmd.Start(); err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn cmd.Process.Pid, nil\n}\n\nfunc isCommandAvailable(name string) bool {\n\tpath, err := exec.LookPath(name)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn path != \"\"\n}\n\nfunc waitForRunningIPFS(out io.Writer, addr ma.Multiaddr, maxWaitTime time.Duration) {\n\twaitStart := time.Now()\n\tfor time.Since(waitStart) > maxWaitTime {\n\t\tif isRunning(addr) {\n\t\t\tbreak\n\t\t}\n\n\t\tsecLeft := float64(maxWaitTime) - float64(time.Since(waitStart))/float64(time.Second)\n\t\tfmt.Fprintf(out, \"-- Waiting %.2fs for it to fully boot up...   \\r\", secLeft)\n\t\ttime.Sleep(100 * time.Millisecond)\n\t}\n\n\tfmt.Fprintf(out, \"-- Done waiting.%s\\n\", strings.Repeat(\" \", 30))\n}\n\nfunc dirExistsAndIsNotEmpty(dir string) bool {\n\tnames, err := ioutil.ReadDir(dir)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn len(names) > 0\n}\n\n// Options define how the IPFS setup will be carried out.\ntype Options struct {\n\tLogWriter io.Writer\n\n\t// Setup, if true, will setup\n\tSetup bool\n\n\t// SetDefaultConfig sets, if true, configuration vital to brig.\n\tSetDefaultConfig bool\n\n\t// SetExtraConfig sets, if true, configuration that helps brig.\n\tSetExtraConfig bool\n\n\t// IpfsPath defines where the new repo should be generated (if needed).\n\t// If empty we take a guess where the repo could be.\n\tIpfsPath string\n\n\t// InitProfile may be one of the profile names specified here:\n\t// https://github.com/ipfs/go-ipfs/blob/master/docs/config.md\n\tInitProfile string\n}\n\n// Result details how the setup went.\ntype Result struct {\n\t// IpfsPath is always set, even if we only guessed it.\n\tIpfsPath string\n\n\t// PID is the PID of the IPFS daemon if we started it.\n\t// Otherwise it is set to -1.\n\tPID int\n}\n\n// IPFS setups a IPFS repo at the standard place.\n// If there is already a repository and the daemon is running, it will do nothing.\n// Otherwise it will install IPFS (if it needs to), init a repo, set config and\n// bring up the daemon in a fashion that should work for most cases.\n// It will output log messages to `out`.\nfunc IPFS(opts Options) (*Result, error) {\n\tif opts.LogWriter == nil {\n\t\topts.LogWriter = os.Stdout\n\t}\n\n\tresult := &Result{\n\t\tPID: -1,\n\t}\n\n\tif opts.IpfsPath == \"\" {\n\t\topts.IpfsPath = guessIPFSRepo()\n\t\tfmt.Fprintf(opts.LogWriter, \"-- Guessed IPFS repository as %s\\n\", opts.IpfsPath)\n\t} else {\n\t\tfmt.Fprintf(opts.LogWriter, \"-- IPFS repository is supposed to be at %s\\n\", opts.IpfsPath)\n\t}\n\n\t// Result should always have the result path set:\n\tresult.IpfsPath = opts.IpfsPath\n\n\tif !dirExistsAndIsNotEmpty(opts.IpfsPath) && opts.Setup {\n\t\tif !isCommandAvailable(\"ipfs\") {\n\t\t\tfmt.Fprintf(opts.LogWriter, \"-- There is no »ipfs« command available.\\n\")\n\t\t\tif err := installIPFS(opts.LogWriter); err != nil {\n\t\t\t\tfmt.Fprintf(opts.LogWriter, \"-- Failed to install IPFS: %v\", err)\n\t\t\t\tfmt.Fprintf(opts.LogWriter, \"-- Please refer to »https://docs.ipfs.io/introduction/install«\\n\")\n\t\t\t\tfmt.Fprintf(opts.LogWriter, \"-- to find opts.LogWriter on how to install it manually. It is usually very easy.\\n\")\n\t\t\t\tfmt.Fprintf(opts.LogWriter, \"-- Re-run »brig init« once you're done.\\n\")\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\tfmt.Fprintf(opts.LogWriter, \"-- »ipfs« command is available, but no repo found.\\n\")\n\t\t}\n\n\t\tfmt.Fprintf(opts.LogWriter, \"-- Creating new IPFS repository.\\n\")\n\t\tinitIPFS(opts.LogWriter, opts.IpfsPath, opts.InitProfile)\n\t}\n\n\tapiAddr, err := GetAPIAddrForPath(opts.IpfsPath)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfmt.Fprintf(opts.LogWriter, \"-- The API address of the repo is: %s\\n\", apiAddr)\n\n\tif !isRunning(apiAddr) {\n\t\tfmt.Fprintf(opts.LogWriter, \"-- IPFS Daemon does not seem to be running.\\n\")\n\t\tfmt.Fprintf(opts.LogWriter, \"-- Will start one for you with the following command:\\n\")\n\n\t\tresult.PID, err = startIpfs(opts.LogWriter, opts.IpfsPath)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\twaitForRunningIPFS(opts.LogWriter, apiAddr, 60)\n\t\tfmt.Fprintf(opts.LogWriter, \"-- Started IPFS as child of this process.\\n\")\n\t} else {\n\t\tfmt.Fprintf(opts.LogWriter, \"-- IPFS Daemon seems to be running. Let's go!\\n\")\n\t}\n\n\tif opts.SetDefaultConfig {\n\t\tfmt.Fprintf(opts.LogWriter, \"-- Will set some default settings for IPFS.\\n\")\n\t\tfmt.Fprintf(opts.LogWriter, \"-- These are required for brig to work smoothly.\\n\")\n\n\t\tif err := configureIPFS(opts.LogWriter, apiAddr, opts.IpfsPath, opts.SetExtraConfig); err != nil {\n\t\t\tfmt.Fprintf(opts.LogWriter, \"-- Failed to set defaults: %v\\n\", err)\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn result, nil\n}\n"
  },
  {
    "path": "repo/setup/ipfs_test.go",
    "content": "package setup\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestMain(t *testing.T) {\n\tt.Skip(\"TODO: probably a bit too much for travis\")\n\t_, err := IPFS(Options{\n\t\tLogWriter:        os.Stdout,\n\t\tSetup:            true,\n\t\tSetDefaultConfig: true,\n\t\tSetExtraConfig:   true,\n\t})\n\trequire.NoError(t, err)\n}\n\nfunc TestInstall(t *testing.T) {\n\trequire.Nil(t, installIPFS(os.Stdout))\n}\n\nfunc TestCommandAvailable(t *testing.T) {\n\tfmt.Println(isCommandAvailable(\"ipfs\"))\n}\n\nfunc TestRepoInit(t *testing.T) {\n\ttmpDir, err := ioutil.TempDir(\"\", \"ipfs-tmp-test-\")\n\trequire.Nil(t, err)\n\trequire.Nil(t, initIPFS(os.Stdout, tmpDir, \"test\"))\n}\n"
  },
  {
    "path": "scripts/build.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\n# Collect some basic info about the repo state:\nBUILD_TIME=\"$(date --iso-8601=seconds)\"\nGIT_REVISION=\"$(git rev-parse HEAD)\"\nCURRENT_BRANCH=\"$(git rev-parse --abbrev-ref HEAD)\"\n\nVERSION_PACKAGE='github.com/sahib/brig/version'\n\n# TODO: Parse this from the last git tag.\nMAJOR=0\nMINOR=5\nPATCH=3\n\n# Find out where to put the binary.\nBINARY_PATH=\"${BRIG_BINARY_PATH:-${GOBIN:-${GOPATH:-${HOME:-.}/go}/bin}}\"\nmkdir -p \"${BINARY_PATH}\"\n\ngo build \\\n  -ldflags \" \\\n    -X ${VERSION_PACKAGE}.Major=${MAJOR} \\\n    -X ${VERSION_PACKAGE}.Minor=${MINOR} \\\n    -X ${VERSION_PACKAGE}.Patch=${PATCH} \\\n    -X ${VERSION_PACKAGE}.ReleaseType=${CURRENT_BRANCH} \\\n    -X ${VERSION_PACKAGE}.BuildTime=${BUILD_TIME} \\\n    -X ${VERSION_PACKAGE}.GitRev=${GIT_REVISION} \\\n    -s \\\n    -w\n\" -o \"${BINARY_PATH}/brig\" .\n"
  },
  {
    "path": "scripts/count-lines-of-code.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\n# shellcheck disable=SC2046\ncloc $(\n    find . -type f \\\n        -iname '*.go' -or \\\n        -iname '*.elm' -or \\\n        -iname '*.sh'  -or \\\n        -iname 'Dockerfile' \\\n    | grep -v 'resource.go' | grep -v 'capnp.go' \\\n)\n"
  },
  {
    "path": "scripts/create-release-bundle.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nPLATFORMS=\"linux/amd64 linux/386 linux/arm darwin/amd64 darwin/386 freebsd/arm freebsd/386 freebsd/amd64\"\n\nBIN_DIR=\"/tmp/brig-binaries\"\nrm -rf \"$BIN_DIR\"\nmkdir -p \"${BIN_DIR}\"\n\nbuild_all() {\n    for platform in ${PLATFORMS}; do\n        local os=${platform%/*}\n        local arch=${platform#*/}\n\t\tlocal log_out=\"/tmp/build_${os}_${arch}.log\"\n\n        echo \"-- Building brig_${os}_${arch}\"\n\n        if ! \\\n            BRIG_BINARY_PATH=\"${BIN_DIR}/brig_${os}_${arch}\" \\\n            GOOS=$os \\\n            GOARCH=$arch \\\n            task --force build &> \"${log_out}\"; then\n            echo \"-- FAILED:\"\n            cat \"${log_out}\"\n        fi\n\n\t\trm -f \"$log_out\"\n    done\n}\n\nbuild_checksums() {\n    echo \"-- Building checksums\"\n    for bin_path in $(find ${BIN_DIR} -type f -executable); do\n        local checksum=$(sha256sum ${bin_path} | cut -d ' ' -f 1)\n        echo \"${checksum}\" > \"${bin_path}.sha256\"\n    done\n}\n\nbuild_archives() {\n    for bin_path in $(find ${BIN_DIR} -type f -executable); do\n        echo \"-- Tar-ing ${bin_path}\"\n        tar -czf \"${bin_path}.tar.gz\" \\\n            -C ${BIN_DIR} \\\n            \"$(basename \"${bin_path}\")\" \\\n            \"$(basename \"${bin_path}.sha256\")\" \\\n        &> /dev/null\n\n        rm -f \"${bin_path}\" \"${bin_path}.sha256\"\n    done\n}\n\nbuild_all\nbuild_checksums\nbuild_archives\n\necho \"-- Binaries are in $BIN_DIR\"\n"
  },
  {
    "path": "scripts/docker-normal-startup.sh",
    "content": "#!/bin/bash\n\nset -e\n\nbrig --verbose init -x $BRIG_USER\nbrig daemon quit\nsleep 2\nbrig daemon launch -s\n"
  },
  {
    "path": "scripts/generate.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\n# Multiline bash array literals are hard...\ncapnp_paths=()\ncapnp_paths+=(\"server/capnp/local_api.capnp\")\ncapnp_paths+=(\"catfs/nodes/capnp/nodes.capnp\")\ncapnp_paths+=(\"net/capnp/api.capnp\")\ncapnp_paths+=(\"catfs/vcs/capnp/patch.capnp\")\ncapnp_paths+=(\"catfs/capnp/pinner.capnp\")\ncapnp_paths+=(\"events/capnp/events_api.capnp\")\ncapnp_paths+=(\"gateway/db/capnp/user.capnp\")\n\ngo mod download\n\nINCLUDE_PATH=\"$(go list -f '{{ .Dir }}' zombiezen.com/go/capnproto2)\"\n\ncommand -v capnp > /dev/null && \\\nfor capnp_path in \"${capnp_paths[@]}\"\ndo\n    echo \"-- Generating ${capnp_path}\"\n    capnp compile \\\n        -I\"${INCLUDE_PATH}/std\" \\\n        -ogo \"${capnp_path}\"\ndone \\\n|| echo \"Missing 'capnp' command, the build could be incomplete\"\n\n\ncommand -v parcello > /dev/null && \\\ngo generate ./... || echo \"Missing 'parcello' command, the build could be incomplete\"\n"
  },
  {
    "path": "scripts/install-task.sh",
    "content": "#!/bin/bash\n\ngo get -u github.com/go-task/task/v3/cmd/task\n"
  },
  {
    "path": "scripts/install.sh",
    "content": "#!/bin/bash\n# This script will download the latest release of brig in your current\n# working directory. It also checks if the checksum is the one that\n# was advertised. It's meant as quick and dirty installation utility.\n# If you really want security, please also check the checksum on the release page:\n# https://github.com/sahib/brig/releases\n\nset -e\n\n# NOTE: This script was not tested for many platforms yet.\n# It probably needs a bit of adjustment in some cases.\n\nUNAME_OS=$(uname -s)\nUNAME_ARCH=$(uname -m)\n\n# We have to map the uname names\n# to the names that `go env` uses.\n# (without using go env)\nGO_OS_NAME=\nGO_ARCH_NAME=\n\n# See also:\n# https://en.wikipedia.org/wiki/Uname\ncase \"${UNAME_OS}\" in\n    Linux*)     GO_OS_NAME=linux;;\n    Darwin*)    GO_OS_NAME=darwin;;\n    FreeBSD*)   GO_OS_NAME=freebsd;;\n    *)          echo \"The operating system »${UNAME_OS}« is not supported. Sorry.\"; exit 1\nesac\n\ncase \"${UNAME_ARCH}\" in\n    x86_64)     GO_ARCH_NAME=amd64;;\n    i386*)      GO_ARCH_NAME=386;;\n    i686*)      GO_ARCH_NAME=386;;\n    armv6*)     GO_ARCH_NAME=arm;;\n    armv7*)     GO_ARCH_NAME=arm;;\n    armv8*)     GO_ARCH_NAME=arm64;;\n    *)          echo \"The architecture »${UNAME_ARCH}« is not supported. Sorry.\"; exit 1\nesac\n\necho \"-- Will download binary for ${GO_OS_NAME} and ${GO_ARCH_NAME}.\"\n\n# Ask GitHub what the latest release is:\nRELEASE_METADATA_PATH=$(mktemp)\ncurl -s https://api.github.com/repos/sahib/brig/releases/latest > \"${RELEASE_METADATA_PATH}\"\n\n# Parse the release URL. This is a bit hacky and would be done nicer via jq,\n# but it's not very unlikely to be installed so better not use it.\nRELEASE_URL=$( \\\n    # This is unique to an asset download:\n    grep browser_download_url \"${RELEASE_METADATA_PATH}\" | \\\n    # Extract the url itself:\n    grep -o 'https://.*.tar.gz' | \\\n    # Pick the right OS/ARCH:\n    grep \"brig_${GO_OS_NAME}_${GO_ARCH_NAME}.tar.gz\" | \\\n    # Make sure to always select the newest version:\n    head -1 \\\n)\n\nrm -f \"${RELEASE_METADATA_PATH}\"\necho \"-- Will attempt download from ${RELEASE_URL}\"\n\n# Actually download the release now:\nDOWNLOAD_ARCHIVE_PATH=\"$(mktemp --suffix '.brig-release.tar.gz')\"\nEXTRACTION_PATH=\"$(mktemp -d --suffix '.brig-extract')\"\n\ncurl --progress-bar -L \"${RELEASE_URL}\" -o \"${DOWNLOAD_ARCHIVE_PATH}\"\n\necho \"-- Extracing to ${EXTRACTION_PATH}\"\ntar xf \"${DOWNLOAD_ARCHIVE_PATH}\" -C \"${EXTRACTION_PATH}\"\n\nBINARY_PATH=$(find \"${EXTRACTION_PATH}\" -type f -executable)\nACTUAL_CHECKSUM=$(sha256sum \"${BINARY_PATH}\" | cut -d ' ' -f 1)\nRELEASE_CHECKSUM=$(find \"${EXTRACTION_PATH}\" -type f -iname '*.sha256' -exec cat {} \\;)\n\n\nif [ \"${ACTUAL_CHECKSUM}\" == \"${RELEASE_CHECKSUM}\" ]; then\n    echo \"-- Checksum looks good (${ACTUAL_CHECKSUM})\"\nelse\n    echo \"-- Checksums are not equal!\"\n    exit 1\nfi\n\n# Copy the actual binary to the current directory if all is fine:\necho \"-- Copying binary to ./brig\"\ncp \"${BINARY_PATH}\" brig\n\necho \"-- Cleaning up unused files\"\nrm -f \"${DOWNLOAD_ARCHIVE_PATH}\"\nrm -rf \"${EXTRACTION_PATH}\"\n\necho \"-- All good. Execute »./brig --help« to read the help or issue the following command to install:\"\necho \"                                  \"\necho \"   $ sudo cp ./brig /usr/local/bin\"\n"
  },
  {
    "path": "scripts/run-linter.sh",
    "content": "#!/bin/bash\n# shellcheck disable=SC2086\n\nset -euo pipefail\n\n# Some linters don't take packages but specific files:\ngo_files=\"$(\n    find . \\\n        -type f \\\n        -iname '*.go'  \\\n        ! -path '*vendor*' \\\n        ! -path '*capnp*' \\\n        ! -iname 'build.go' \\\n        ! -path '*gateway/static/resource.go' \\\n)\"\n\n# Format and fix common issues:\necho '-- Formatting & auto-fixing things...'\ngo mod tidy\ngofmt -s -w ${go_files}\ngo fix ./...\n\necho '-- Running golint'\ngolint ./... || true\n\necho '-- Running go vet'\ngo vet ./... || true\n\necho '-- Running misspell detector'\nmisspell -w ${go_files}\n\necho '-- Running gocyclo'\ngocyclo -over 20 ${go_files} | sort -n\n"
  },
  {
    "path": "scripts/run-tests.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\n# Run the tests (with colorful gotest if available):\nGOTEST=\"go test\"\nif command -v gotest > /dev/null; then\n    GOTEST=\"gotest\"\nfi\n\nif [ \"$#\" == 0 ]; then\n    $GOTEST -v -parallel 20 ./... 2>&1 | tee log\nelse\n    $GOTEST -v -parallel 20 \"$@\"  2>&1 | tee log\nfi\n"
  },
  {
    "path": "scripts/test-bed.sh",
    "content": "#!/bin/bash\n\nset -e\n\nexport GOMAXPROCS=20\n\nUSE_SINGLE=false\n\nwhile getopts \":s\" opt; do\n  case $opt in\n    s)\n      USE_SINGLE=true\n      ;;\n    \\?)\n      echo \"Invalid option: -$OPTARG\" >&2\n      exit 1\n      ;;\n  esac\ndone\n\n# Kill previous test-bed\npkill -9 brig || true\nrm -rf /tmp/{ali,bob}\nrm -rf /tmp/brig.socket*\n\n# Have some color in the logs even when piping it somewhere else.\nexport BRIG_COLOR=always\nbrig_ali() {\n    brig --repo /tmp/ali \"$@\"\n}\n\nbrig_bob() {\n    if [ \"$USE_SINGLE\" = false ]; then\n        brig --repo /tmp/bob \"$@\"\n    fi\n}\n\nbrig_ali init ali --ipfs-path-or-multiaddr /tmp/ali-ipfs\nbrig_bob init bob --ipfs-path-or-multiaddr /tmp/bob-ipfs\n\n# Add them as remotes each\nif [ \"$USE_SINGLE\" = false ]; then\n    # shellcheck disable=SC2046\n    brig_ali remote add bob $(brig_bob whoami -f)\n    # shellcheck disable=SC2046\n    brig_bob remote add ali $(brig_ali whoami -f)\nfi\n\nbrig_ali -V stage TODO ali-file\nbrig_ali commit -m 'added ali-file'\nbrig_bob stage LICENSE bob-file\nbrig_bob commit -m 'added bob-file'\n"
  },
  {
    "path": "server/api_handler.go",
    "content": "package server\n\ntype apiHandler struct {\n\trepoHandler\n\tfsHandler\n\tvcsHandler\n\tnetHandler\n}\n\nfunc newAPIHandler(base *base) *apiHandler {\n\treturn &apiHandler{\n\t\trepoHandler: repoHandler{base},\n\t\tnetHandler:  netHandler{base},\n\t\tvcsHandler:  vcsHandler{base},\n\t\tfsHandler:   fsHandler{base},\n\t}\n}\n"
  },
  {
    "path": "server/base.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log/syslog\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"time\"\n\n\t\"zombiezen.com/go/capnproto2/rpc\"\n\n\t// For loadProfileServer\n\t_ \"net/http/pprof\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/backend\"\n\t\"github.com/sahib/brig/catfs\"\n\tfserrs \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/events\"\n\t\"github.com/sahib/brig/fuse\"\n\t\"github.com/sahib/brig/gateway\"\n\tp2pnet \"github.com/sahib/brig/net\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/sahib/brig/server/capnp\"\n\t\"github.com/sahib/brig/util/conductor\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\ntype base struct {\n\tmu sync.Mutex\n\n\t// base path to the repository (i.e. BRIG_PATH)\n\tbasePath string\n\n\tctx context.Context\n\n\trepo       *repo.Repository\n\tmounts     *fuse.MountTable\n\tpeerServer *p2pnet.Server\n\n\t// This the general backend, not a specific submodule one:\n\tbackend backend.Backend\n\tquitCh  chan struct{}\n\n\tconductor *conductor.Conductor\n\n\t// gateway is the control object for the gateway server\n\tgateway *gateway.Gateway\n\n\t// evListener is a listener that will h\n\tevListener *events.Listener\n\n\t// evListenerCtx is the context for the event subsystem\n\tevListenerCtx context.Context\n\n\t// evListenerCancel can be called on quitting the daemon\n\tevListenerCancel context.CancelFunc\n\n\t// pprofPort is the port pprof can acquire profiling from\n\tpprofPort int\n}\n\nfunc repoIsInitialized(path string) error {\n\tdata, err := ioutil.ReadFile(filepath.Join(path, \"config.yml\")) // #nosec\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(data) == 0 {\n\t\treturn fmt.Errorf(\"no config.yml\")\n\t}\n\n\treturn nil\n}\n\n// Handle is being called by the base server implementation\n// for every local request that is being served to the brig daemon.\nfunc (b *base) Handle(ctx context.Context, conn net.Conn) {\n\ttransport := rpc.StreamTransport(conn)\n\tsrv := capnp.API_ServerToClient(newAPIHandler(b))\n\trpcConn := rpc.NewConn(\n\t\ttransport,\n\t\trpc.MainInterface(srv.Client),\n\t\trpc.ConnLog(nil),\n\t\trpc.SendBufferSize(128),\n\t)\n\n\tif err := rpcConn.Wait(); err != nil {\n\t\tlog.Warnf(\"serving rpc failed: %v\", err)\n\t}\n\n\tif err := rpcConn.Close(); err != nil {\n\t\t// Close seems to be complaining that the conn was\n\t\t// already closed, but be safe and expect this.\n\t\tif err != rpc.ErrConnClosed {\n\t\t\tlog.Warnf(\"failed to close rpc conn: %v\", err)\n\t\t}\n\t}\n}\n\n/////////\n\nfunc (b *base) loadRepo() error {\n\t// Sanity check, so that we do not call a repo command without\n\t// an initialized repo. Error early for a meaningful message here.\n\tlog.Infof(\"loading repository at %s\", b.basePath)\n\trp, err := repo.Open(b.basePath)\n\tif err != nil {\n\t\tlog.Warningf(\"failed to load repository at `%s`: %v\", b.basePath, err)\n\t\treturn err\n\t}\n\n\tb.repo = rp\n\n\t// Adjust the backend's logging output here, since this should be done\n\t// before actually loading the backend (which might produce logs already)\n\tbackendName := rp.Immutables.Backend()\n\tlogName := fmt.Sprintf(\"brig-%s\", backendName)\n\twSyslog, err := syslog.New(syslog.LOG_NOTICE, logName)\n\tif err != nil {\n\t\tlog.Warningf(\"Failed to open connection to syslog for ipfs: %v\", err)\n\t\tlog.Warningf(\"Will output ipfs logs to stderr for now\")\n\t\tbackend.ForwardLogByName(backendName, os.Stderr)\n\t} else {\n\t\tbackend.ForwardLogByName(backendName, wSyslog)\n\t}\n\n\treturn nil\n}\n\nfunc (b *base) loadProfileServer() {\n\tif !b.repo.Config.Bool(\"daemon.enable_pprof\") {\n\t\tlog.Debugf(\"not loading pprof; not enabled in config\")\n\t\treturn\n\t}\n\n\tlog.Infof(\"loading pprof server\")\n\tlst, err := net.Listen(\"tcp\", \":0\")\n\tif err != nil {\n\t\tlog.Warningf(\"failed to get a new port for the pprof server\")\n\t\treturn\n\t}\n\n\tport := lst.Addr().(*net.TCPAddr).Port\n\tlog.Infof(\"Starting pprof server on :%d\", port)\n\n\tgo func() {\n\t\tdefer lst.Close()\n\n\t\tif err := http.Serve(lst, nil); err != nil {\n\t\t\tlog.Warningf(\"failed to serve pprof: %v\", err)\n\t\t}\n\t}()\n\n\tb.pprofPort = port\n}\n\n/////////\n\nfunc (b *base) loadBackend() error {\n\tbackendName := b.repo.Immutables.Backend()\n\tlog.Infof(\"loading backend `%s`\", backendName)\n\n\tkr, err := b.repo.Keyring()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpubKey, err := kr.OwnPubKey()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfingerprint := peer.BuildFingerprint(\"\", pubKey)\n\n\trealBackend, err := backend.FromName(\n\t\tbackendName,\n\t\tb.repo.Config.String(\"daemon.ipfs_path_or_url\"),\n\t\tfingerprint.PubKeyID(),\n\t)\n\n\tif err != nil {\n\t\tlog.Errorf(\"Failed to load backend: %v\", err)\n\t\treturn err\n\t}\n\n\tb.backend = realBackend\n\tb.repo.StartAutoGCLoop(realBackend)\n\treturn nil\n}\n\n/////////\n\nfunc (b *base) loadPeerServer() error {\n\tlog.Debugf(\"loading peer server\")\n\tsrv, err := p2pnet.NewServer(b.repo, b.backend, NewRemotesAPI(b))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgo func() {\n\t\tif err := srv.Serve(); err != nil {\n\t\t\tlog.Warningf(\"PeerServer.Serve() returned with error: %v\", err)\n\t\t}\n\t}()\n\n\tb.peerServer = srv\n\n\t// Initially sync the ping map:\n\taddrs := []string{}\n\tremotes, err := b.repo.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, remote := range remotes {\n\t\taddrs = append(addrs, remote.Fingerprint.Addr())\n\t}\n\n\tif err := srv.PingMap().Sync(addrs); err != nil {\n\t\treturn err\n\t}\n\n\tself, err := b.backend.Identity()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tb.evListenerCtx, b.evListenerCancel = context.WithCancel(context.Background())\n\tb.evListener = events.NewListener(\n\t\tb.repo.Config.Section(\"events\"),\n\t\tb.backend,\n\t\tself.Addr,\n\t)\n\n\tb.evListener.RegisterEventHandler(events.FsEvent, false, b.handleFsEvent)\n\tif err := b.evListener.SetupListeners(b.evListenerCtx, addrs); err != nil {\n\t\tlog.Warningf(\"failed to setup event listeners: %v\", err)\n\t}\n\n\t// Give peer server a small bit of time to start up, so it can Accept()\n\t// connections immediately after loadPeerServer. Also nice for tests.\n\ttime.Sleep(50 * time.Millisecond)\n\n\tif err := b.initialSyncWithAutoUpdatePeers(); err != nil {\n\t\tlog.Warningf(\"initial sync failed with one or more peers: %v\", err)\n\t}\n\n\t// Now that we boooted up, we should tell other users that our fs changed.\n\t// It may or may not have, but other remotes judge that.\n\tb.notifyFsChangeEvent()\n\treturn nil\n}\n\n//////\n\nfunc (b *base) loadGateway() error {\n\tlog.Debugf(\"loading gateway\")\n\n\trapi := NewRemotesAPI(b)\n\treturn b.withCurrFs(func(fs *catfs.FS) error {\n\t\tgateway, err := gateway.NewGateway(\n\t\t\tfs,\n\t\t\trapi,\n\t\t\tb.repo.Config.Section(\"gateway\"),\n\t\t\tb.evListener,\n\t\t\tfilepath.Join(b.repo.BaseFolder, \"gateway\"),\n\t\t)\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tb.gateway = gateway\n\t\tb.gateway.Start()\n\t\treturn nil\n\t})\n}\n\n/////////\n\ntype mountNotifier struct {\n\tb *base\n}\n\nfunc (mn mountNotifier) PublishEvent() {\n\tmn.b.notifyFsChangeEvent()\n}\n\nfunc (b *base) loadMounts() error {\n\treturn b.withCurrFs(func(fs *catfs.FS) error {\n\t\tb.mounts = fuse.NewMountTable(fs, mountNotifier{b: b})\n\t\treturn nil\n\t})\n}\n\n/////////\n\nfunc (b *base) loadAll() error {\n\tif err := b.loadRepo(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := b.loadBackend(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := b.loadMounts(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := b.loadPeerServer(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := b.loadGateway(); err != nil {\n\t\treturn err\n\t}\n\n\tb.loadProfileServer()\n\treturn nil\n}\n\n/////////\n\nfunc (b *base) withCurrFs(fn func(fs *catfs.FS) error) error {\n\tuser := b.repo.CurrentUser()\n\tfs, err := b.repo.FS(user, b.backend)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fn(fs)\n}\n\nfunc (b *base) withRemoteFs(owner string, fn func(fs *catfs.FS) error) error {\n\tfs, err := b.repo.FS(owner, b.backend)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fn(fs)\n}\n\nfunc (b *base) withFsFromPath(path string, fn func(url *URL, fs *catfs.FS) error) error {\n\turl, err := parsePath(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif url.User == \"\" {\n\t\treturn b.withCurrFs(func(fs *catfs.FS) error {\n\t\t\treturn fn(url, fs)\n\t\t})\n\t}\n\n\treturn b.withRemoteFs(url.User, func(fs *catfs.FS) error {\n\t\treturn fn(url, fs)\n\t})\n}\n\nfunc (b *base) withNetClient(who string, fn func(ctl *p2pnet.Client) error) error {\n\tsubCtx, cancel := context.WithCancel(b.ctx)\n\tdefer cancel()\n\n\tctl, err := p2pnet.Dial(subCtx, who, b.repo, b.backend, b.peerServer.PingMap())\n\tif err != nil {\n\t\treturn e.Wrapf(err, \"dial\")\n\t}\n\n\tif err := fn(ctl); err != nil {\n\t\tctl.Close()\n\t\treturn err\n\t}\n\n\treturn ctl.Close()\n}\n\nfunc (b *base) Quit() (err error) {\n\tlog.Info(\"shutting down brigd due to QUIT command\")\n\n\tif err := b.gateway.Stop(); err != nil {\n\t\tlog.Warningf(\"could not close gateway: %v\", err)\n\t}\n\n\tif err := b.gateway.Close(); err != nil {\n\t\tlog.Warningf(\"could not shut down gateway: %v\", err)\n\t}\n\n\tlog.Infof(\"closing peer server...\")\n\tif err = b.peerServer.Close(); err != nil {\n\t\tlog.Warningf(\"failed to close peer server: %v\", err)\n\t}\n\n\tb.evListenerCancel()\n\tlog.Infof(\"shutting down event listener...\")\n\tif b.evListener != nil {\n\t\tif err := b.evListener.Close(); err != nil {\n\t\t\tlog.Warningf(\"shutting down event handler failed: %v\", err)\n\t\t}\n\t}\n\n\tlog.Infof(\"trying to lock repository...\")\n\n\tif err = b.repo.Close(); err != nil {\n\t\tlog.Warningf(\"failed to lock repository: %v\", err)\n\t}\n\n\tlog.Infof(\"trying to unmount any mounts...\")\n\tif err := b.mounts.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tlog.Infof(\"===== brigd can be considered dead now! ====\")\n\treturn nil\n}\n\nfunc newBase(\n\tctx context.Context,\n\tbasePath string,\n\tquitCh chan struct{},\n) *base {\n\treturn &base{\n\t\tctx:       ctx,\n\t\tbasePath:  basePath,\n\t\tquitCh:    quitCh,\n\t\tconductor: conductor.New(5*time.Minute, 100),\n\t}\n}\n\nfunc (b *base) doFetch(who string) error {\n\towner := b.repo.Immutables.Owner()\n\tif who == owner {\n\t\tlog.Infof(\"skipping fetch for own metadata\")\n\t\treturn nil\n\t}\n\n\treturn b.withNetClient(who, func(ctl *p2pnet.Client) error {\n\t\treturn b.withRemoteFs(who, func(remoteFs *catfs.FS) error {\n\t\t\t// Not all remotes might allow doing a full fetch.\n\t\t\t// This is only possible when having full access to all folders.\n\t\t\tif isAllowed, err := ctl.IsCompleteFetchAllowed(); isAllowed && err != nil {\n\t\t\t\tlog.Debugf(\"fetch: doing complete fetch for %s\", who)\n\t\t\t\tstoreBuf, err := ctl.FetchStore()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn e.Wrapf(err, \"fetch-store\")\n\t\t\t\t}\n\n\t\t\t\treturn e.Wrapf(remoteFs.Import(storeBuf), \"import\")\n\t\t\t}\n\n\t\t\t// Ask our local copy of the remote what the last patch index was.\n\t\t\tfromIndex, err := remoteFs.LastPatchIndex()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Get the missing changes since then:\n\t\t\tlog.Infof(\"fetch: doing partial fetch for %s starting at %d\", who, fromIndex)\n\t\t\tpatches, err := ctl.FetchPatches(fromIndex)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn remoteFs.ApplyPatches(patches)\n\t\t})\n\t})\n}\n\nfunc (b *base) doSync(withWhom string, needFetch bool, msg string) (*catfs.Diff, error) {\n\tif needFetch {\n\t\tif err := b.doFetch(withWhom); err != nil {\n\t\t\treturn nil, e.Wrapf(err, \"fetch\")\n\t\t}\n\t}\n\n\tvar diff *catfs.Diff\n\n\treturn diff, b.withCurrFs(func(ownFs *catfs.FS) error {\n\t\treturn b.withRemoteFs(withWhom, func(remoteFs *catfs.FS) error {\n\t\t\t// Automatically make a commit before merging with their state:\n\t\t\ttimeStamp := time.Now().UTC().Format(time.RFC3339)\n\t\t\tcommitMsg := fmt.Sprintf(\"sync with %s on %s\", withWhom, timeStamp)\n\t\t\tif err := ownFs.MakeCommit(commitMsg); err != nil && err != fserrs.ErrNoChange {\n\t\t\t\treturn e.Wrapf(err, \"merge-commit\")\n\t\t\t}\n\n\t\t\tcmtBefore, err := ownFs.Head()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tlog.Debugf(\"Starting sync with %s\", withWhom)\n\n\t\t\trmt, err := b.repo.Remotes.Remote(withWhom)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\terr = ownFs.Sync(\n\t\t\t\tremoteFs,\n\t\t\t\tcatfs.SyncOptMessage(msg),\n\t\t\t\tcatfs.SyncOptConflictStrategy(rmt.ConflictStrategy),\n\t\t\t\tcatfs.SyncOptReadOnlyFolders(rmt.ReadOnlyFolders()),\n\t\t\t\tcatfs.SyncOptConflictgStrategyPerFolder(rmt.ConflictStrategyPerFolder()),\n\t\t\t)\n\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tlog.Debugf(\"Sync with %s done\", withWhom)\n\n\t\t\tcmtAfter, err := ownFs.Head()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdiff, err = ownFs.MakeDiff(ownFs, cmtBefore, cmtAfter)\n\t\t\treturn err\n\t\t})\n\t})\n}\n\nfunc (b *base) handleFsEvent(ev *events.Event) {\n\trmt, err := b.repo.Remotes.RemoteByAddr(ev.Source)\n\tif err != nil {\n\t\tlog.Debugf(\"failed to resolve '%s' to a known remote name: %v\", ev.Source, err)\n\t\treturn\n\t}\n\n\tif !rmt.AcceptAutoUpdates {\n\t\treturn\n\t}\n\n\tlog.Infof(\"doing sync with »%s« since we received an update notification.\", rmt.Name)\n\n\tmsg := fmt.Sprintf(\"sync due to notification from »%s«\", rmt.Name)\n\tif _, err := b.doSync(rmt.Name, true, msg); err != nil {\n\t\tlog.Warningf(\"sync failed: %v\", err)\n\t}\n}\n\nfunc (b *base) notifyFsChangeEvent() {\n\tif b.evListener == nil {\n\t\treturn\n\t}\n\n\t// Do not trigger events when we're looking at the store of somebody else.\n\towner := b.repo.Immutables.Owner()\n\tif owner != b.repo.CurrentUser() {\n\t\treturn\n\t}\n\n\tev := events.Event{\n\t\tType: events.FsEvent,\n\t}\n\n\tif err := b.evListener.PublishEvent(ev); err != nil {\n\t\tlog.Warningf(\"failed to publish filesystem change event: %v\", err)\n\t}\n}\n\nfunc (b *base) initialSyncWithAutoUpdatePeers() error {\n\trmts, err := b.repo.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, rmt := range rmts {\n\t\tif !rmt.AcceptAutoUpdates {\n\t\t\tcontinue\n\t\t}\n\n\t\tmsg := fmt.Sprintf(\"sync with »%s« due to initial auto-update\", rmt.Name)\n\t\tif _, err := b.doSync(rmt.Name, true, msg); err != nil {\n\t\t\tlog.Warningf(\"failed to sync initially with %s: %v\", rmt.Name, err)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (b *base) syncRemoteStates() error {\n\taddrs := []string{}\n\tremotes, err := b.repo.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor _, remote := range remotes {\n\t\taddrs = append(addrs, remote.Fingerprint.Addr())\n\t}\n\n\tpmap := b.peerServer.PingMap()\n\tif err := pmap.Sync(addrs); err != nil {\n\t\treturn err\n\t}\n\n\treturn b.evListener.SetupListeners(b.evListenerCtx, addrs)\n}\n"
  },
  {
    "path": "server/capnp/local_api.capnp",
    "content": "using Go = import \"/go.capnp\";\nusing User = import \"../../gateway/db/capnp/user.capnp\";\n\n@0xea883e7d5248d81b;\n$Go.package(\"capnp\");\n$Go.import(\"github.com/sahib/brig/server/capnp\");\n\nstruct Hint {\n    path            @0 :Text;\n    encryptionAlgo  @1 :Text;\n    compressionAlgo @2 :Text;\n}\n\nstruct StatInfo $Go.doc(\"StatInfo is a stat-like description of any node\") {\n    path        @0  :Text;\n    treeHash    @1  :Data;\n    size        @2  :UInt64;\n    cachedSize  @3  :Int64;\n    inode       @4  :UInt64;\n    isDir       @5  :Bool;\n    depth       @6  :Int32;\n    modTime     @7  :Text;\n    isPinned    @8  :Bool;\n    isExplicit  @9  :Bool;\n    contentHash @10 :Data;\n    user        @11 :Text;\n    backendHash @12 :Data;\n    key         @13 :Data;\n    isRaw       @14 :Bool;\n    hint        @15 :Hint;\n}\n\nstruct Commit $Go.doc(\"Single log entry\") {\n    hash @0 :Data;\n    msg  @1 :Text;\n    tags @2 :List(Text);\n    date @3 :Text;\n}\n\nstruct ConfigEntry $Go.doc(\"A config entry (including meta info)\") {\n    key          @0 :Text;\n    val          @1 :Text;\n    doc          @2 :Text;\n    default      @3 :Text;\n    needsRestart @4 :Bool;\n}\n\nstruct Change $Go.doc(\"One history entry for a file\") {\n    path            @0 :Text;\n    change          @1 :Text;\n    head            @2 :Commit;\n    next            @3 :Commit;\n    movedTo         @4 :Text;\n    wasPreviouslyAt @5 :Text;\n    isPinned        @6 :Bool;\n    isExplicit      @7 :Bool;\n}\n\nstruct DiffPair $Go.doc(\"Represent two differing files\") {\n    src @0 :StatInfo;\n    dst @1 :StatInfo;\n}\n\nstruct Diff $Go.doc(\"Difference between two commits\") {\n    added   @0 :List(StatInfo);\n    removed @1 :List(StatInfo);\n    ignored @2 :List(StatInfo);\n    missing @3 :List(StatInfo);\n\n    moved    @4 :List(DiffPair);\n    merged   @5 :List(DiffPair);\n    conflict @6 :List(DiffPair);\n}\n\nstruct RemoteFolder $Go.doc(\"A folder that a remote is allowed to access\") {\n    folder           @0 :Text;\n    readOnly         @1 :Bool;\n    conflictStrategy @2 :Text;\n}\n\n# This is similar to a remote:\nstruct LocateResult {\n    name        @0 :Text;\n    addr        @1 :Text;\n    mask        @2 :Text;\n    fingerprint @3 :Text;\n}\n\nstruct Identity $Go.doc(\"Info about our current user state\") {\n    currentUser @0 :Text;\n    owner       @1 :Text;\n    fingerprint @2 :Text;\n    isOnline    @3 :Bool;\n}\n\nstruct MountOptions {\n    readOnly @0 :Bool;\n    rootPath @1 :Text;\n    offline  @2 :Bool;\n}\n\nstruct Remote $Go.doc(\"Info a remote peer we might sync with\") {\n    name              @0 :Text;\n    fingerprint       @1 :Text;\n    folders           @2 :List(RemoteFolder);\n    acceptAutoUpdates @3 :Bool;\n    acceptPush        @4 :Bool;\n    conflictStrategy  @5 :Text;\n}\n\nstruct RemoteStatus $Go.doc(\"net status of a remote\") {\n    remote        @0 :Remote;\n    lastSeen      @1 :Text;\n    roundtripMs   @2 :Int32;\n    error         @3 :Text;\n    authenticated @4 :Bool;\n}\n\nstruct GarbageItem $Go.doc(\"A single item that was killed by the gc\") {\n    path    @0 :Text;\n    content @1 :Data;\n    owner   @2 :Text;\n}\n\nstruct Version {\n    serverVersion  @0 :Text;\n    serverRev      @1 :Text;\n    backendVersion @2 :Text;\n    backendRev     @3 :Text;\n}\n\nstruct ExplicitPin {\n    path   @0 :Text;\n    commit @1 :Text;\n}\n\nstruct FsTabEntry {\n    name     @0 :Text;\n    path     @1 :Text;\n    readOnly @2 :Bool;\n    root     @3 :Text;\n    active   @4 :Bool;\n    offline  @5 :Bool;\n}\n\ninterface FS {\n    stage             @0   (localPath :Text, repoPath :Text);\n    list              @1   (root :Text, maxDepth :Int32) -> (entries :List(StatInfo));\n    cat               @2   (path :Text, offline :Bool) -> (port :Int32);\n    mkdir             @3   (path :Text, createParents :Bool);\n    remove            @4   (path :Text);\n    move              @5   (srcPath :Text, dstPath :Text);\n    copy              @6   (srcPath :Text, dstPath :Text);\n    pin               @7   (path :Text);\n    unpin             @8   (path :Text);\n    stat              @9   (path :Text) -> (info :StatInfo);\n    garbageCollect    @10  (aggressive :Bool) -> (freed :List(GarbageItem));\n    touch             @11  (path :Text);\n    exists            @12  (path :Text) -> (exists :Bool);\n    tar               @13  (path :Text, offline :Bool) -> (port :Int32);\n    deletedNodes      @14  (root :Text) -> (nodes :List(StatInfo));\n    undelete          @15  (path :Text);\n    repin             @16  (path :Text);\n    isCached          @17  (path :Text) -> (isCached :Bool);\n\n    # note: stageFromStream is slower than regular stage.\n    # currently only used for `brig stage --stdin`.\n    stageFromStream   @18  (repoPath :Text) -> (stream :StageStream);\n    recodeStream      @19  (path :Text) -> ();\n\n    interface StageStream {\n        sendChunk @0 (chunk :Data) -> ();\n        done @1 ();\n    }\n}\n\ninterface VCS {\n    log         @0 () -> (entries :List(Commit));\n    commit      @1 (msg :Text);\n    tag         @2 (rev :Text, tagName :Text);\n    untag       @3 (tagName :Text);\n    reset       @4 (path :Text, rev :Text, force :Bool);\n    history     @5 (path :Text) -> (history :List(Change));\n    makeDiff    @6 (localOwner :Text, remoteOwner :Text, localRev :Text, remoteRev :Text, needFetch :Bool) -> (diff :Diff);\n    sync        @7 (withWhom :Text, needFetch :Bool) -> (diff :Diff);\n    fetch       @8 (who :Text);\n    commitInfo  @9 (rev :Text)  -> (isValidRef :Bool, commit :Commit);\n}\n\ninterface Repo {\n    quit             @0  ();\n    ping             @1  () -> (reply :Text);\n    mount            @2  (mountPath :Text, options :MountOptions);\n    unmount          @3  (mountPath :Text);\n\n    configGet        @4  (key :Text) -> (value :Text);\n    configSet        @5  (key :Text, value :Text);\n    configAll        @6  () -> (all :List(ConfigEntry));\n    configDoc        @7  (key :Text) -> (desc :ConfigEntry);\n\n    become           @8  (who :Text);\n\n    fstabAdd         @9 (mountName :Text, mountPath :Text, options :MountOptions);\n    fstabRemove      @10 (mountName :Text);\n    fstabApply       @11 ();\n    fstabList        @12 () -> (mounts :List(FsTabEntry));\n    fstabUnmountAll  @13 ();\n\n    version          @14 () -> (version :Version);\n    gatewayUserAdd   @15 (name :Text, password :Text, folders :List(Text), rights :List(Text));\n    gatewayUserRm    @16 (name :Text);\n    gatewayUserList  @17 () -> (users :List(User.User));\n    debugProfilePort @18 () -> (port :Int32);\n\n    hintSet          @19 (path :Text, hint :Hint) -> ();\n    hintRemove       @20 (path :Text) -> ();\n    hintList         @21 () -> (hints :List(Hint));\n\n}\n\ninterface Net {\n    remoteAddOrUpdate @0  (remote :Remote);\n    remoteRm          @1  (name :Text);\n    remoteLs          @2  () -> (remotes :List(Remote));\n    remoteUpdate      @3  (remote :Remote);\n    remoteSave        @4  (remotes :List(Remote));\n    remotePing        @5  (who :Text) -> (roundtrip :Float64);\n    remoteClear       @6  ();\n    netLocate         @7  (who :Text, timeoutSec :Float64, locateMask :Text) -> (ticket :UInt64);\n    netLocateNext     @8  (ticket :UInt64) -> (result :LocateResult);\n    whoami            @9  () -> (whoami :Identity);\n    connect           @10 ();\n    disconnect        @11 ();\n    remoteOnlineList  @12 () -> (infos :List(RemoteStatus));\n    remoteByName      @13 (name :Text) -> (remote :Remote);\n    push              @14 (remoteName :Text, dryRun :Bool);\n}\n\n# Group all interfaces together in one API object,\n# because apparently we have this limitation that one interface\n# more or less equals one connection.\ninterface API extends(FS, VCS, Repo, Net) { }\n"
  },
  {
    "path": "server/capnp/local_api.capnp.go",
    "content": "// Code generated by capnpc-go. DO NOT EDIT.\n\npackage capnp\n\nimport (\n\tcontext \"context\"\n\tcapnp2 \"github.com/sahib/brig/gateway/db/capnp\"\n\tmath \"math\"\n\tcapnp \"zombiezen.com/go/capnproto2\"\n\ttext \"zombiezen.com/go/capnproto2/encoding/text\"\n\tschemas \"zombiezen.com/go/capnproto2/schemas\"\n\tserver \"zombiezen.com/go/capnproto2/server\"\n)\n\ntype Hint struct{ capnp.Struct }\n\n// Hint_TypeID is the unique identifier for the type Hint.\nconst Hint_TypeID = 0xb2ec3fe21ddc803f\n\nfunc NewHint(s *capnp.Segment) (Hint, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn Hint{st}, err\n}\n\nfunc NewRootHint(s *capnp.Segment) (Hint, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn Hint{st}, err\n}\n\nfunc ReadRootHint(msg *capnp.Message) (Hint, error) {\n\troot, err := msg.RootPtr()\n\treturn Hint{root.Struct()}, err\n}\n\nfunc (s Hint) String() string {\n\tstr, _ := text.Marshal(0xb2ec3fe21ddc803f, s.Struct)\n\treturn str\n}\n\nfunc (s Hint) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Hint) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Hint) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Hint) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Hint) EncryptionAlgo() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Hint) HasEncryptionAlgo() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Hint) EncryptionAlgoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Hint) SetEncryptionAlgo(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Hint) CompressionAlgo() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s Hint) HasCompressionAlgo() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Hint) CompressionAlgoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Hint) SetCompressionAlgo(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\n// Hint_List is a list of Hint.\ntype Hint_List struct{ capnp.List }\n\n// NewHint creates a new list of Hint.\nfunc NewHint_List(s *capnp.Segment, sz int32) (Hint_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3}, sz)\n\treturn Hint_List{l}, err\n}\n\nfunc (s Hint_List) At(i int) Hint { return Hint{s.List.Struct(i)} }\n\nfunc (s Hint_List) Set(i int, v Hint) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Hint_List) String() string {\n\tstr, _ := text.MarshalList(0xb2ec3fe21ddc803f, s.List)\n\treturn str\n}\n\n// Hint_Promise is a wrapper for a Hint promised by a client call.\ntype Hint_Promise struct{ *capnp.Pipeline }\n\nfunc (p Hint_Promise) Struct() (Hint, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Hint{s}, err\n}\n\n// StatInfo is a stat-like description of any node\ntype StatInfo struct{ capnp.Struct }\n\n// StatInfo_TypeID is the unique identifier for the type StatInfo.\nconst StatInfo_TypeID = 0xa2305f2ea25a3484\n\nfunc NewStatInfo(s *capnp.Segment) (StatInfo, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 8})\n\treturn StatInfo{st}, err\n}\n\nfunc NewRootStatInfo(s *capnp.Segment) (StatInfo, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 8})\n\treturn StatInfo{st}, err\n}\n\nfunc ReadRootStatInfo(msg *capnp.Message) (StatInfo, error) {\n\troot, err := msg.RootPtr()\n\treturn StatInfo{root.Struct()}, err\n}\n\nfunc (s StatInfo) String() string {\n\tstr, _ := text.Marshal(0xa2305f2ea25a3484, s.Struct)\n\treturn str\n}\n\nfunc (s StatInfo) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s StatInfo) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s StatInfo) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s StatInfo) TreeHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s StatInfo) HasTreeHash() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) SetTreeHash(v []byte) error {\n\treturn s.Struct.SetData(1, v)\n}\n\nfunc (s StatInfo) Size() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s StatInfo) SetSize(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\nfunc (s StatInfo) CachedSize() int64 {\n\treturn int64(s.Struct.Uint64(8))\n}\n\nfunc (s StatInfo) SetCachedSize(v int64) {\n\ts.Struct.SetUint64(8, uint64(v))\n}\n\nfunc (s StatInfo) Inode() uint64 {\n\treturn s.Struct.Uint64(16)\n}\n\nfunc (s StatInfo) SetInode(v uint64) {\n\ts.Struct.SetUint64(16, v)\n}\n\nfunc (s StatInfo) IsDir() bool {\n\treturn s.Struct.Bit(192)\n}\n\nfunc (s StatInfo) SetIsDir(v bool) {\n\ts.Struct.SetBit(192, v)\n}\n\nfunc (s StatInfo) Depth() int32 {\n\treturn int32(s.Struct.Uint32(28))\n}\n\nfunc (s StatInfo) SetDepth(v int32) {\n\ts.Struct.SetUint32(28, uint32(v))\n}\n\nfunc (s StatInfo) ModTime() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s StatInfo) HasModTime() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) ModTimeBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s StatInfo) SetModTime(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s StatInfo) IsPinned() bool {\n\treturn s.Struct.Bit(193)\n}\n\nfunc (s StatInfo) SetIsPinned(v bool) {\n\ts.Struct.SetBit(193, v)\n}\n\nfunc (s StatInfo) IsExplicit() bool {\n\treturn s.Struct.Bit(194)\n}\n\nfunc (s StatInfo) SetIsExplicit(v bool) {\n\ts.Struct.SetBit(194, v)\n}\n\nfunc (s StatInfo) ContentHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s StatInfo) HasContentHash() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) SetContentHash(v []byte) error {\n\treturn s.Struct.SetData(3, v)\n}\n\nfunc (s StatInfo) User() (string, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.Text(), err\n}\n\nfunc (s StatInfo) HasUser() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) UserBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.TextBytes(), err\n}\n\nfunc (s StatInfo) SetUser(v string) error {\n\treturn s.Struct.SetText(4, v)\n}\n\nfunc (s StatInfo) BackendHash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(5)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s StatInfo) HasBackendHash() bool {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) SetBackendHash(v []byte) error {\n\treturn s.Struct.SetData(5, v)\n}\n\nfunc (s StatInfo) Key() ([]byte, error) {\n\tp, err := s.Struct.Ptr(6)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s StatInfo) HasKey() bool {\n\tp, err := s.Struct.Ptr(6)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) SetKey(v []byte) error {\n\treturn s.Struct.SetData(6, v)\n}\n\nfunc (s StatInfo) IsRaw() bool {\n\treturn s.Struct.Bit(195)\n}\n\nfunc (s StatInfo) SetIsRaw(v bool) {\n\ts.Struct.SetBit(195, v)\n}\n\nfunc (s StatInfo) Hint() (Hint, error) {\n\tp, err := s.Struct.Ptr(7)\n\treturn Hint{Struct: p.Struct()}, err\n}\n\nfunc (s StatInfo) HasHint() bool {\n\tp, err := s.Struct.Ptr(7)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s StatInfo) SetHint(v Hint) error {\n\treturn s.Struct.SetPtr(7, v.Struct.ToPtr())\n}\n\n// NewHint sets the hint field to a newly\n// allocated Hint struct, preferring placement in s's segment.\nfunc (s StatInfo) NewHint() (Hint, error) {\n\tss, err := NewHint(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Hint{}, err\n\t}\n\terr = s.Struct.SetPtr(7, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// StatInfo_List is a list of StatInfo.\ntype StatInfo_List struct{ capnp.List }\n\n// NewStatInfo creates a new list of StatInfo.\nfunc NewStatInfo_List(s *capnp.Segment, sz int32) (StatInfo_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 32, PointerCount: 8}, sz)\n\treturn StatInfo_List{l}, err\n}\n\nfunc (s StatInfo_List) At(i int) StatInfo { return StatInfo{s.List.Struct(i)} }\n\nfunc (s StatInfo_List) Set(i int, v StatInfo) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s StatInfo_List) String() string {\n\tstr, _ := text.MarshalList(0xa2305f2ea25a3484, s.List)\n\treturn str\n}\n\n// StatInfo_Promise is a wrapper for a StatInfo promised by a client call.\ntype StatInfo_Promise struct{ *capnp.Pipeline }\n\nfunc (p StatInfo_Promise) Struct() (StatInfo, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn StatInfo{s}, err\n}\n\nfunc (p StatInfo_Promise) Hint() Hint_Promise {\n\treturn Hint_Promise{Pipeline: p.Pipeline.GetPipeline(7)}\n}\n\n// Single log entry\ntype Commit struct{ capnp.Struct }\n\n// Commit_TypeID is the unique identifier for the type Commit.\nconst Commit_TypeID = 0xb47c58aa23289d55\n\nfunc NewCommit(s *capnp.Segment) (Commit, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Commit{st}, err\n}\n\nfunc NewRootCommit(s *capnp.Segment) (Commit, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Commit{st}, err\n}\n\nfunc ReadRootCommit(msg *capnp.Message) (Commit, error) {\n\troot, err := msg.RootPtr()\n\treturn Commit{root.Struct()}, err\n}\n\nfunc (s Commit) String() string {\n\tstr, _ := text.Marshal(0xb47c58aa23289d55, s.Struct)\n\treturn str\n}\n\nfunc (s Commit) Hash() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s Commit) HasHash() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) SetHash(v []byte) error {\n\treturn s.Struct.SetData(0, v)\n}\n\nfunc (s Commit) Msg() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Commit) HasMsg() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) MsgBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Commit) SetMsg(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Commit) Tags() (capnp.TextList, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn capnp.TextList{List: p.List()}, err\n}\n\nfunc (s Commit) HasTags() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) SetTags(v capnp.TextList) error {\n\treturn s.Struct.SetPtr(2, v.List.ToPtr())\n}\n\n// NewTags sets the tags field to a newly\n// allocated capnp.TextList, preferring placement in s's segment.\nfunc (s Commit) NewTags(n int32) (capnp.TextList, error) {\n\tl, err := capnp.NewTextList(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp.TextList{}, err\n\t}\n\terr = s.Struct.SetPtr(2, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Commit) Date() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s Commit) HasDate() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Commit) DateBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Commit) SetDate(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\n// Commit_List is a list of Commit.\ntype Commit_List struct{ capnp.List }\n\n// NewCommit creates a new list of Commit.\nfunc NewCommit_List(s *capnp.Segment, sz int32) (Commit_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4}, sz)\n\treturn Commit_List{l}, err\n}\n\nfunc (s Commit_List) At(i int) Commit { return Commit{s.List.Struct(i)} }\n\nfunc (s Commit_List) Set(i int, v Commit) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Commit_List) String() string {\n\tstr, _ := text.MarshalList(0xb47c58aa23289d55, s.List)\n\treturn str\n}\n\n// Commit_Promise is a wrapper for a Commit promised by a client call.\ntype Commit_Promise struct{ *capnp.Pipeline }\n\nfunc (p Commit_Promise) Struct() (Commit, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Commit{s}, err\n}\n\n// A config entry (including meta info)\ntype ConfigEntry struct{ capnp.Struct }\n\n// ConfigEntry_TypeID is the unique identifier for the type ConfigEntry.\nconst ConfigEntry_TypeID = 0x974c11f8cfed4247\n\nfunc NewConfigEntry(s *capnp.Segment) (ConfigEntry, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn ConfigEntry{st}, err\n}\n\nfunc NewRootConfigEntry(s *capnp.Segment) (ConfigEntry, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn ConfigEntry{st}, err\n}\n\nfunc ReadRootConfigEntry(msg *capnp.Message) (ConfigEntry, error) {\n\troot, err := msg.RootPtr()\n\treturn ConfigEntry{root.Struct()}, err\n}\n\nfunc (s ConfigEntry) String() string {\n\tstr, _ := text.Marshal(0x974c11f8cfed4247, s.Struct)\n\treturn str\n}\n\nfunc (s ConfigEntry) Key() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s ConfigEntry) HasKey() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ConfigEntry) KeyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ConfigEntry) SetKey(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s ConfigEntry) Val() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s ConfigEntry) HasVal() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ConfigEntry) ValBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ConfigEntry) SetVal(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s ConfigEntry) Doc() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s ConfigEntry) HasDoc() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ConfigEntry) DocBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ConfigEntry) SetDoc(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s ConfigEntry) Default() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s ConfigEntry) HasDefault() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ConfigEntry) DefaultBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ConfigEntry) SetDefault(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\nfunc (s ConfigEntry) NeedsRestart() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s ConfigEntry) SetNeedsRestart(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// ConfigEntry_List is a list of ConfigEntry.\ntype ConfigEntry_List struct{ capnp.List }\n\n// NewConfigEntry creates a new list of ConfigEntry.\nfunc NewConfigEntry_List(s *capnp.Segment, sz int32) (ConfigEntry_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4}, sz)\n\treturn ConfigEntry_List{l}, err\n}\n\nfunc (s ConfigEntry_List) At(i int) ConfigEntry { return ConfigEntry{s.List.Struct(i)} }\n\nfunc (s ConfigEntry_List) Set(i int, v ConfigEntry) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s ConfigEntry_List) String() string {\n\tstr, _ := text.MarshalList(0x974c11f8cfed4247, s.List)\n\treturn str\n}\n\n// ConfigEntry_Promise is a wrapper for a ConfigEntry promised by a client call.\ntype ConfigEntry_Promise struct{ *capnp.Pipeline }\n\nfunc (p ConfigEntry_Promise) Struct() (ConfigEntry, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn ConfigEntry{s}, err\n}\n\n// One history entry for a file\ntype Change struct{ capnp.Struct }\n\n// Change_TypeID is the unique identifier for the type Change.\nconst Change_TypeID = 0xd01613feea87ee6a\n\nfunc NewChange(s *capnp.Segment) (Change, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6})\n\treturn Change{st}, err\n}\n\nfunc NewRootChange(s *capnp.Segment) (Change, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6})\n\treturn Change{st}, err\n}\n\nfunc ReadRootChange(msg *capnp.Message) (Change, error) {\n\troot, err := msg.RootPtr()\n\treturn Change{root.Struct()}, err\n}\n\nfunc (s Change) String() string {\n\tstr, _ := text.Marshal(0xd01613feea87ee6a, s.Struct)\n\treturn str\n}\n\nfunc (s Change) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Change) Change() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasChange() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) ChangeBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetChange(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Change) Head() (Commit, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn Commit{Struct: p.Struct()}, err\n}\n\nfunc (s Change) HasHead() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) SetHead(v Commit) error {\n\treturn s.Struct.SetPtr(2, v.Struct.ToPtr())\n}\n\n// NewHead sets the head field to a newly\n// allocated Commit struct, preferring placement in s's segment.\nfunc (s Change) NewHead() (Commit, error) {\n\tss, err := NewCommit(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Commit{}, err\n\t}\n\terr = s.Struct.SetPtr(2, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Change) Next() (Commit, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn Commit{Struct: p.Struct()}, err\n}\n\nfunc (s Change) HasNext() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) SetNext(v Commit) error {\n\treturn s.Struct.SetPtr(3, v.Struct.ToPtr())\n}\n\n// NewNext sets the next field to a newly\n// allocated Commit struct, preferring placement in s's segment.\nfunc (s Change) NewNext() (Commit, error) {\n\tss, err := NewCommit(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Commit{}, err\n\t}\n\terr = s.Struct.SetPtr(3, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s Change) MovedTo() (string, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasMovedTo() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) MovedToBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetMovedTo(v string) error {\n\treturn s.Struct.SetText(4, v)\n}\n\nfunc (s Change) WasPreviouslyAt() (string, error) {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.Text(), err\n}\n\nfunc (s Change) HasWasPreviouslyAt() bool {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Change) WasPreviouslyAtBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Change) SetWasPreviouslyAt(v string) error {\n\treturn s.Struct.SetText(5, v)\n}\n\nfunc (s Change) IsPinned() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Change) SetIsPinned(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s Change) IsExplicit() bool {\n\treturn s.Struct.Bit(1)\n}\n\nfunc (s Change) SetIsExplicit(v bool) {\n\ts.Struct.SetBit(1, v)\n}\n\n// Change_List is a list of Change.\ntype Change_List struct{ capnp.List }\n\n// NewChange creates a new list of Change.\nfunc NewChange_List(s *capnp.Segment, sz int32) (Change_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 6}, sz)\n\treturn Change_List{l}, err\n}\n\nfunc (s Change_List) At(i int) Change { return Change{s.List.Struct(i)} }\n\nfunc (s Change_List) Set(i int, v Change) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Change_List) String() string {\n\tstr, _ := text.MarshalList(0xd01613feea87ee6a, s.List)\n\treturn str\n}\n\n// Change_Promise is a wrapper for a Change promised by a client call.\ntype Change_Promise struct{ *capnp.Pipeline }\n\nfunc (p Change_Promise) Struct() (Change, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Change{s}, err\n}\n\nfunc (p Change_Promise) Head() Commit_Promise {\n\treturn Commit_Promise{Pipeline: p.Pipeline.GetPipeline(2)}\n}\n\nfunc (p Change_Promise) Next() Commit_Promise {\n\treturn Commit_Promise{Pipeline: p.Pipeline.GetPipeline(3)}\n}\n\n// Represent two differing files\ntype DiffPair struct{ capnp.Struct }\n\n// DiffPair_TypeID is the unique identifier for the type DiffPair.\nconst DiffPair_TypeID = 0xf8551f83bb42e152\n\nfunc NewDiffPair(s *capnp.Segment) (DiffPair, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn DiffPair{st}, err\n}\n\nfunc NewRootDiffPair(s *capnp.Segment) (DiffPair, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn DiffPair{st}, err\n}\n\nfunc ReadRootDiffPair(msg *capnp.Message) (DiffPair, error) {\n\troot, err := msg.RootPtr()\n\treturn DiffPair{root.Struct()}, err\n}\n\nfunc (s DiffPair) String() string {\n\tstr, _ := text.Marshal(0xf8551f83bb42e152, s.Struct)\n\treturn str\n}\n\nfunc (s DiffPair) Src() (StatInfo, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn StatInfo{Struct: p.Struct()}, err\n}\n\nfunc (s DiffPair) HasSrc() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s DiffPair) SetSrc(v StatInfo) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewSrc sets the src field to a newly\n// allocated StatInfo struct, preferring placement in s's segment.\nfunc (s DiffPair) NewSrc() (StatInfo, error) {\n\tss, err := NewStatInfo(s.Struct.Segment())\n\tif err != nil {\n\t\treturn StatInfo{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s DiffPair) Dst() (StatInfo, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn StatInfo{Struct: p.Struct()}, err\n}\n\nfunc (s DiffPair) HasDst() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s DiffPair) SetDst(v StatInfo) error {\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewDst sets the dst field to a newly\n// allocated StatInfo struct, preferring placement in s's segment.\nfunc (s DiffPair) NewDst() (StatInfo, error) {\n\tss, err := NewStatInfo(s.Struct.Segment())\n\tif err != nil {\n\t\treturn StatInfo{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// DiffPair_List is a list of DiffPair.\ntype DiffPair_List struct{ capnp.List }\n\n// NewDiffPair creates a new list of DiffPair.\nfunc NewDiffPair_List(s *capnp.Segment, sz int32) (DiffPair_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn DiffPair_List{l}, err\n}\n\nfunc (s DiffPair_List) At(i int) DiffPair { return DiffPair{s.List.Struct(i)} }\n\nfunc (s DiffPair_List) Set(i int, v DiffPair) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s DiffPair_List) String() string {\n\tstr, _ := text.MarshalList(0xf8551f83bb42e152, s.List)\n\treturn str\n}\n\n// DiffPair_Promise is a wrapper for a DiffPair promised by a client call.\ntype DiffPair_Promise struct{ *capnp.Pipeline }\n\nfunc (p DiffPair_Promise) Struct() (DiffPair, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn DiffPair{s}, err\n}\n\nfunc (p DiffPair_Promise) Src() StatInfo_Promise {\n\treturn StatInfo_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\nfunc (p DiffPair_Promise) Dst() StatInfo_Promise {\n\treturn StatInfo_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\n// Difference between two commits\ntype Diff struct{ capnp.Struct }\n\n// Diff_TypeID is the unique identifier for the type Diff.\nconst Diff_TypeID = 0xc9601ec89a6aa066\n\nfunc NewDiff(s *capnp.Segment) (Diff, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 7})\n\treturn Diff{st}, err\n}\n\nfunc NewRootDiff(s *capnp.Segment) (Diff, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 7})\n\treturn Diff{st}, err\n}\n\nfunc ReadRootDiff(msg *capnp.Message) (Diff, error) {\n\troot, err := msg.RootPtr()\n\treturn Diff{root.Struct()}, err\n}\n\nfunc (s Diff) String() string {\n\tstr, _ := text.Marshal(0xc9601ec89a6aa066, s.Struct)\n\treturn str\n}\n\nfunc (s Diff) Added() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasAdded() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetAdded(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewAdded sets the added field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s Diff) NewAdded(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Removed() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasRemoved() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetRemoved(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(1, v.List.ToPtr())\n}\n\n// NewRemoved sets the removed field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s Diff) NewRemoved(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(1, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Ignored() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasIgnored() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetIgnored(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(2, v.List.ToPtr())\n}\n\n// NewIgnored sets the ignored field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s Diff) NewIgnored(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(2, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Missing() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasMissing() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetMissing(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(3, v.List.ToPtr())\n}\n\n// NewMissing sets the missing field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s Diff) NewMissing(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(3, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Moved() (DiffPair_List, error) {\n\tp, err := s.Struct.Ptr(4)\n\treturn DiffPair_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasMoved() bool {\n\tp, err := s.Struct.Ptr(4)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetMoved(v DiffPair_List) error {\n\treturn s.Struct.SetPtr(4, v.List.ToPtr())\n}\n\n// NewMoved sets the moved field to a newly\n// allocated DiffPair_List, preferring placement in s's segment.\nfunc (s Diff) NewMoved(n int32) (DiffPair_List, error) {\n\tl, err := NewDiffPair_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn DiffPair_List{}, err\n\t}\n\terr = s.Struct.SetPtr(4, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Merged() (DiffPair_List, error) {\n\tp, err := s.Struct.Ptr(5)\n\treturn DiffPair_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasMerged() bool {\n\tp, err := s.Struct.Ptr(5)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetMerged(v DiffPair_List) error {\n\treturn s.Struct.SetPtr(5, v.List.ToPtr())\n}\n\n// NewMerged sets the merged field to a newly\n// allocated DiffPair_List, preferring placement in s's segment.\nfunc (s Diff) NewMerged(n int32) (DiffPair_List, error) {\n\tl, err := NewDiffPair_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn DiffPair_List{}, err\n\t}\n\terr = s.Struct.SetPtr(5, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Diff) Conflict() (DiffPair_List, error) {\n\tp, err := s.Struct.Ptr(6)\n\treturn DiffPair_List{List: p.List()}, err\n}\n\nfunc (s Diff) HasConflict() bool {\n\tp, err := s.Struct.Ptr(6)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Diff) SetConflict(v DiffPair_List) error {\n\treturn s.Struct.SetPtr(6, v.List.ToPtr())\n}\n\n// NewConflict sets the conflict field to a newly\n// allocated DiffPair_List, preferring placement in s's segment.\nfunc (s Diff) NewConflict(n int32) (DiffPair_List, error) {\n\tl, err := NewDiffPair_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn DiffPair_List{}, err\n\t}\n\terr = s.Struct.SetPtr(6, l.List.ToPtr())\n\treturn l, err\n}\n\n// Diff_List is a list of Diff.\ntype Diff_List struct{ capnp.List }\n\n// NewDiff creates a new list of Diff.\nfunc NewDiff_List(s *capnp.Segment, sz int32) (Diff_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 7}, sz)\n\treturn Diff_List{l}, err\n}\n\nfunc (s Diff_List) At(i int) Diff { return Diff{s.List.Struct(i)} }\n\nfunc (s Diff_List) Set(i int, v Diff) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Diff_List) String() string {\n\tstr, _ := text.MarshalList(0xc9601ec89a6aa066, s.List)\n\treturn str\n}\n\n// Diff_Promise is a wrapper for a Diff promised by a client call.\ntype Diff_Promise struct{ *capnp.Pipeline }\n\nfunc (p Diff_Promise) Struct() (Diff, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Diff{s}, err\n}\n\n// A folder that a remote is allowed to access\ntype RemoteFolder struct{ capnp.Struct }\n\n// RemoteFolder_TypeID is the unique identifier for the type RemoteFolder.\nconst RemoteFolder_TypeID = 0x8ed051e9369ac720\n\nfunc NewRemoteFolder(s *capnp.Segment) (RemoteFolder, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn RemoteFolder{st}, err\n}\n\nfunc NewRootRemoteFolder(s *capnp.Segment) (RemoteFolder, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn RemoteFolder{st}, err\n}\n\nfunc ReadRootRemoteFolder(msg *capnp.Message) (RemoteFolder, error) {\n\troot, err := msg.RootPtr()\n\treturn RemoteFolder{root.Struct()}, err\n}\n\nfunc (s RemoteFolder) String() string {\n\tstr, _ := text.Marshal(0x8ed051e9369ac720, s.Struct)\n\treturn str\n}\n\nfunc (s RemoteFolder) Folder() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s RemoteFolder) HasFolder() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s RemoteFolder) FolderBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s RemoteFolder) SetFolder(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s RemoteFolder) ReadOnly() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s RemoteFolder) SetReadOnly(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s RemoteFolder) ConflictStrategy() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s RemoteFolder) HasConflictStrategy() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s RemoteFolder) ConflictStrategyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s RemoteFolder) SetConflictStrategy(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// RemoteFolder_List is a list of RemoteFolder.\ntype RemoteFolder_List struct{ capnp.List }\n\n// NewRemoteFolder creates a new list of RemoteFolder.\nfunc NewRemoteFolder_List(s *capnp.Segment, sz int32) (RemoteFolder_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2}, sz)\n\treturn RemoteFolder_List{l}, err\n}\n\nfunc (s RemoteFolder_List) At(i int) RemoteFolder { return RemoteFolder{s.List.Struct(i)} }\n\nfunc (s RemoteFolder_List) Set(i int, v RemoteFolder) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s RemoteFolder_List) String() string {\n\tstr, _ := text.MarshalList(0x8ed051e9369ac720, s.List)\n\treturn str\n}\n\n// RemoteFolder_Promise is a wrapper for a RemoteFolder promised by a client call.\ntype RemoteFolder_Promise struct{ *capnp.Pipeline }\n\nfunc (p RemoteFolder_Promise) Struct() (RemoteFolder, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn RemoteFolder{s}, err\n}\n\ntype LocateResult struct{ capnp.Struct }\n\n// LocateResult_TypeID is the unique identifier for the type LocateResult.\nconst LocateResult_TypeID = 0xd95473f6f8a89a69\n\nfunc NewLocateResult(s *capnp.Segment) (LocateResult, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn LocateResult{st}, err\n}\n\nfunc NewRootLocateResult(s *capnp.Segment) (LocateResult, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn LocateResult{st}, err\n}\n\nfunc ReadRootLocateResult(msg *capnp.Message) (LocateResult, error) {\n\troot, err := msg.RootPtr()\n\treturn LocateResult{root.Struct()}, err\n}\n\nfunc (s LocateResult) String() string {\n\tstr, _ := text.Marshal(0xd95473f6f8a89a69, s.Struct)\n\treturn str\n}\n\nfunc (s LocateResult) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s LocateResult) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s LocateResult) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s LocateResult) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s LocateResult) Addr() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s LocateResult) HasAddr() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s LocateResult) AddrBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s LocateResult) SetAddr(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s LocateResult) Mask() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s LocateResult) HasMask() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s LocateResult) MaskBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s LocateResult) SetMask(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s LocateResult) Fingerprint() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s LocateResult) HasFingerprint() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s LocateResult) FingerprintBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s LocateResult) SetFingerprint(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\n// LocateResult_List is a list of LocateResult.\ntype LocateResult_List struct{ capnp.List }\n\n// NewLocateResult creates a new list of LocateResult.\nfunc NewLocateResult_List(s *capnp.Segment, sz int32) (LocateResult_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4}, sz)\n\treturn LocateResult_List{l}, err\n}\n\nfunc (s LocateResult_List) At(i int) LocateResult { return LocateResult{s.List.Struct(i)} }\n\nfunc (s LocateResult_List) Set(i int, v LocateResult) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s LocateResult_List) String() string {\n\tstr, _ := text.MarshalList(0xd95473f6f8a89a69, s.List)\n\treturn str\n}\n\n// LocateResult_Promise is a wrapper for a LocateResult promised by a client call.\ntype LocateResult_Promise struct{ *capnp.Pipeline }\n\nfunc (p LocateResult_Promise) Struct() (LocateResult, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn LocateResult{s}, err\n}\n\n// Info about our current user state\ntype Identity struct{ capnp.Struct }\n\n// Identity_TypeID is the unique identifier for the type Identity.\nconst Identity_TypeID = 0xd49a2570fb5a4342\n\nfunc NewIdentity(s *capnp.Segment) (Identity, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn Identity{st}, err\n}\n\nfunc NewRootIdentity(s *capnp.Segment) (Identity, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn Identity{st}, err\n}\n\nfunc ReadRootIdentity(msg *capnp.Message) (Identity, error) {\n\troot, err := msg.RootPtr()\n\treturn Identity{root.Struct()}, err\n}\n\nfunc (s Identity) String() string {\n\tstr, _ := text.Marshal(0xd49a2570fb5a4342, s.Struct)\n\treturn str\n}\n\nfunc (s Identity) CurrentUser() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Identity) HasCurrentUser() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Identity) CurrentUserBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Identity) SetCurrentUser(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Identity) Owner() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Identity) HasOwner() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Identity) OwnerBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Identity) SetOwner(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Identity) Fingerprint() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s Identity) HasFingerprint() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Identity) FingerprintBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Identity) SetFingerprint(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s Identity) IsOnline() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Identity) SetIsOnline(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// Identity_List is a list of Identity.\ntype Identity_List struct{ capnp.List }\n\n// NewIdentity creates a new list of Identity.\nfunc NewIdentity_List(s *capnp.Segment, sz int32) (Identity_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3}, sz)\n\treturn Identity_List{l}, err\n}\n\nfunc (s Identity_List) At(i int) Identity { return Identity{s.List.Struct(i)} }\n\nfunc (s Identity_List) Set(i int, v Identity) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Identity_List) String() string {\n\tstr, _ := text.MarshalList(0xd49a2570fb5a4342, s.List)\n\treturn str\n}\n\n// Identity_Promise is a wrapper for a Identity promised by a client call.\ntype Identity_Promise struct{ *capnp.Pipeline }\n\nfunc (p Identity_Promise) Struct() (Identity, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Identity{s}, err\n}\n\ntype MountOptions struct{ capnp.Struct }\n\n// MountOptions_TypeID is the unique identifier for the type MountOptions.\nconst MountOptions_TypeID = 0xbc4d5c31427dc498\n\nfunc NewMountOptions(s *capnp.Segment) (MountOptions, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn MountOptions{st}, err\n}\n\nfunc NewRootMountOptions(s *capnp.Segment) (MountOptions, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn MountOptions{st}, err\n}\n\nfunc ReadRootMountOptions(msg *capnp.Message) (MountOptions, error) {\n\troot, err := msg.RootPtr()\n\treturn MountOptions{root.Struct()}, err\n}\n\nfunc (s MountOptions) String() string {\n\tstr, _ := text.Marshal(0xbc4d5c31427dc498, s.Struct)\n\treturn str\n}\n\nfunc (s MountOptions) ReadOnly() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s MountOptions) SetReadOnly(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s MountOptions) RootPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s MountOptions) HasRootPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s MountOptions) RootPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s MountOptions) SetRootPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s MountOptions) Offline() bool {\n\treturn s.Struct.Bit(1)\n}\n\nfunc (s MountOptions) SetOffline(v bool) {\n\ts.Struct.SetBit(1, v)\n}\n\n// MountOptions_List is a list of MountOptions.\ntype MountOptions_List struct{ capnp.List }\n\n// NewMountOptions creates a new list of MountOptions.\nfunc NewMountOptions_List(s *capnp.Segment, sz int32) (MountOptions_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn MountOptions_List{l}, err\n}\n\nfunc (s MountOptions_List) At(i int) MountOptions { return MountOptions{s.List.Struct(i)} }\n\nfunc (s MountOptions_List) Set(i int, v MountOptions) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s MountOptions_List) String() string {\n\tstr, _ := text.MarshalList(0xbc4d5c31427dc498, s.List)\n\treturn str\n}\n\n// MountOptions_Promise is a wrapper for a MountOptions promised by a client call.\ntype MountOptions_Promise struct{ *capnp.Pipeline }\n\nfunc (p MountOptions_Promise) Struct() (MountOptions, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn MountOptions{s}, err\n}\n\n// Info a remote peer we might sync with\ntype Remote struct{ capnp.Struct }\n\n// Remote_TypeID is the unique identifier for the type Remote.\nconst Remote_TypeID = 0xbe71bb7b0ed4539a\n\nfunc NewRemote(s *capnp.Segment) (Remote, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn Remote{st}, err\n}\n\nfunc NewRootRemote(s *capnp.Segment) (Remote, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn Remote{st}, err\n}\n\nfunc ReadRootRemote(msg *capnp.Message) (Remote, error) {\n\troot, err := msg.RootPtr()\n\treturn Remote{root.Struct()}, err\n}\n\nfunc (s Remote) String() string {\n\tstr, _ := text.Marshal(0xbe71bb7b0ed4539a, s.Struct)\n\treturn str\n}\n\nfunc (s Remote) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Remote) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Remote) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Remote) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Remote) Fingerprint() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Remote) HasFingerprint() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Remote) FingerprintBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Remote) SetFingerprint(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Remote) Folders() (RemoteFolder_List, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn RemoteFolder_List{List: p.List()}, err\n}\n\nfunc (s Remote) HasFolders() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Remote) SetFolders(v RemoteFolder_List) error {\n\treturn s.Struct.SetPtr(2, v.List.ToPtr())\n}\n\n// NewFolders sets the folders field to a newly\n// allocated RemoteFolder_List, preferring placement in s's segment.\nfunc (s Remote) NewFolders(n int32) (RemoteFolder_List, error) {\n\tl, err := NewRemoteFolder_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn RemoteFolder_List{}, err\n\t}\n\terr = s.Struct.SetPtr(2, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Remote) AcceptAutoUpdates() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Remote) SetAcceptAutoUpdates(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s Remote) AcceptPush() bool {\n\treturn s.Struct.Bit(1)\n}\n\nfunc (s Remote) SetAcceptPush(v bool) {\n\ts.Struct.SetBit(1, v)\n}\n\nfunc (s Remote) ConflictStrategy() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s Remote) HasConflictStrategy() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Remote) ConflictStrategyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Remote) SetConflictStrategy(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\n// Remote_List is a list of Remote.\ntype Remote_List struct{ capnp.List }\n\n// NewRemote creates a new list of Remote.\nfunc NewRemote_List(s *capnp.Segment, sz int32) (Remote_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4}, sz)\n\treturn Remote_List{l}, err\n}\n\nfunc (s Remote_List) At(i int) Remote { return Remote{s.List.Struct(i)} }\n\nfunc (s Remote_List) Set(i int, v Remote) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Remote_List) String() string {\n\tstr, _ := text.MarshalList(0xbe71bb7b0ed4539a, s.List)\n\treturn str\n}\n\n// Remote_Promise is a wrapper for a Remote promised by a client call.\ntype Remote_Promise struct{ *capnp.Pipeline }\n\nfunc (p Remote_Promise) Struct() (Remote, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Remote{s}, err\n}\n\n// net status of a remote\ntype RemoteStatus struct{ capnp.Struct }\n\n// RemoteStatus_TypeID is the unique identifier for the type RemoteStatus.\nconst RemoteStatus_TypeID = 0xa9e401c52756826a\n\nfunc NewRemoteStatus(s *capnp.Segment) (RemoteStatus, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn RemoteStatus{st}, err\n}\n\nfunc NewRootRemoteStatus(s *capnp.Segment) (RemoteStatus, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn RemoteStatus{st}, err\n}\n\nfunc ReadRootRemoteStatus(msg *capnp.Message) (RemoteStatus, error) {\n\troot, err := msg.RootPtr()\n\treturn RemoteStatus{root.Struct()}, err\n}\n\nfunc (s RemoteStatus) String() string {\n\tstr, _ := text.Marshal(0xa9e401c52756826a, s.Struct)\n\treturn str\n}\n\nfunc (s RemoteStatus) Remote() (Remote, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote{Struct: p.Struct()}, err\n}\n\nfunc (s RemoteStatus) HasRemote() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s RemoteStatus) SetRemote(v Remote) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewRemote sets the remote field to a newly\n// allocated Remote struct, preferring placement in s's segment.\nfunc (s RemoteStatus) NewRemote() (Remote, error) {\n\tss, err := NewRemote(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\nfunc (s RemoteStatus) LastSeen() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s RemoteStatus) HasLastSeen() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s RemoteStatus) LastSeenBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s RemoteStatus) SetLastSeen(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s RemoteStatus) RoundtripMs() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s RemoteStatus) SetRoundtripMs(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\nfunc (s RemoteStatus) Error() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s RemoteStatus) HasError() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s RemoteStatus) ErrorBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s RemoteStatus) SetError(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s RemoteStatus) Authenticated() bool {\n\treturn s.Struct.Bit(32)\n}\n\nfunc (s RemoteStatus) SetAuthenticated(v bool) {\n\ts.Struct.SetBit(32, v)\n}\n\n// RemoteStatus_List is a list of RemoteStatus.\ntype RemoteStatus_List struct{ capnp.List }\n\n// NewRemoteStatus creates a new list of RemoteStatus.\nfunc NewRemoteStatus_List(s *capnp.Segment, sz int32) (RemoteStatus_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3}, sz)\n\treturn RemoteStatus_List{l}, err\n}\n\nfunc (s RemoteStatus_List) At(i int) RemoteStatus { return RemoteStatus{s.List.Struct(i)} }\n\nfunc (s RemoteStatus_List) Set(i int, v RemoteStatus) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s RemoteStatus_List) String() string {\n\tstr, _ := text.MarshalList(0xa9e401c52756826a, s.List)\n\treturn str\n}\n\n// RemoteStatus_Promise is a wrapper for a RemoteStatus promised by a client call.\ntype RemoteStatus_Promise struct{ *capnp.Pipeline }\n\nfunc (p RemoteStatus_Promise) Struct() (RemoteStatus, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn RemoteStatus{s}, err\n}\n\nfunc (p RemoteStatus_Promise) Remote() Remote_Promise {\n\treturn Remote_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\n// A single item that was killed by the gc\ntype GarbageItem struct{ capnp.Struct }\n\n// GarbageItem_TypeID is the unique identifier for the type GarbageItem.\nconst GarbageItem_TypeID = 0xecb10f87fbe0d6c5\n\nfunc NewGarbageItem(s *capnp.Segment) (GarbageItem, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn GarbageItem{st}, err\n}\n\nfunc NewRootGarbageItem(s *capnp.Segment) (GarbageItem, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn GarbageItem{st}, err\n}\n\nfunc ReadRootGarbageItem(msg *capnp.Message) (GarbageItem, error) {\n\troot, err := msg.RootPtr()\n\treturn GarbageItem{root.Struct()}, err\n}\n\nfunc (s GarbageItem) String() string {\n\tstr, _ := text.Marshal(0xecb10f87fbe0d6c5, s.Struct)\n\treturn str\n}\n\nfunc (s GarbageItem) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s GarbageItem) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s GarbageItem) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s GarbageItem) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s GarbageItem) Content() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s GarbageItem) HasContent() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s GarbageItem) SetContent(v []byte) error {\n\treturn s.Struct.SetData(1, v)\n}\n\nfunc (s GarbageItem) Owner() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s GarbageItem) HasOwner() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s GarbageItem) OwnerBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s GarbageItem) SetOwner(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\n// GarbageItem_List is a list of GarbageItem.\ntype GarbageItem_List struct{ capnp.List }\n\n// NewGarbageItem creates a new list of GarbageItem.\nfunc NewGarbageItem_List(s *capnp.Segment, sz int32) (GarbageItem_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3}, sz)\n\treturn GarbageItem_List{l}, err\n}\n\nfunc (s GarbageItem_List) At(i int) GarbageItem { return GarbageItem{s.List.Struct(i)} }\n\nfunc (s GarbageItem_List) Set(i int, v GarbageItem) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s GarbageItem_List) String() string {\n\tstr, _ := text.MarshalList(0xecb10f87fbe0d6c5, s.List)\n\treturn str\n}\n\n// GarbageItem_Promise is a wrapper for a GarbageItem promised by a client call.\ntype GarbageItem_Promise struct{ *capnp.Pipeline }\n\nfunc (p GarbageItem_Promise) Struct() (GarbageItem, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn GarbageItem{s}, err\n}\n\ntype Version struct{ capnp.Struct }\n\n// Version_TypeID is the unique identifier for the type Version.\nconst Version_TypeID = 0xe1b522247fc407ad\n\nfunc NewVersion(s *capnp.Segment) (Version, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Version{st}, err\n}\n\nfunc NewRootVersion(s *capnp.Segment) (Version, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Version{st}, err\n}\n\nfunc ReadRootVersion(msg *capnp.Message) (Version, error) {\n\troot, err := msg.RootPtr()\n\treturn Version{root.Struct()}, err\n}\n\nfunc (s Version) String() string {\n\tstr, _ := text.Marshal(0xe1b522247fc407ad, s.Struct)\n\treturn str\n}\n\nfunc (s Version) ServerVersion() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Version) HasServerVersion() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Version) ServerVersionBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Version) SetServerVersion(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Version) ServerRev() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Version) HasServerRev() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Version) ServerRevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Version) SetServerRev(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Version) BackendVersion() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s Version) HasBackendVersion() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Version) BackendVersionBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Version) SetBackendVersion(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s Version) BackendRev() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s Version) HasBackendRev() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Version) BackendRevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Version) SetBackendRev(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\n// Version_List is a list of Version.\ntype Version_List struct{ capnp.List }\n\n// NewVersion creates a new list of Version.\nfunc NewVersion_List(s *capnp.Segment, sz int32) (Version_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4}, sz)\n\treturn Version_List{l}, err\n}\n\nfunc (s Version_List) At(i int) Version { return Version{s.List.Struct(i)} }\n\nfunc (s Version_List) Set(i int, v Version) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s Version_List) String() string {\n\tstr, _ := text.MarshalList(0xe1b522247fc407ad, s.List)\n\treturn str\n}\n\n// Version_Promise is a wrapper for a Version promised by a client call.\ntype Version_Promise struct{ *capnp.Pipeline }\n\nfunc (p Version_Promise) Struct() (Version, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Version{s}, err\n}\n\ntype ExplicitPin struct{ capnp.Struct }\n\n// ExplicitPin_TypeID is the unique identifier for the type ExplicitPin.\nconst ExplicitPin_TypeID = 0xdc876697979bc7e5\n\nfunc NewExplicitPin(s *capnp.Segment) (ExplicitPin, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn ExplicitPin{st}, err\n}\n\nfunc NewRootExplicitPin(s *capnp.Segment) (ExplicitPin, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn ExplicitPin{st}, err\n}\n\nfunc ReadRootExplicitPin(msg *capnp.Message) (ExplicitPin, error) {\n\troot, err := msg.RootPtr()\n\treturn ExplicitPin{root.Struct()}, err\n}\n\nfunc (s ExplicitPin) String() string {\n\tstr, _ := text.Marshal(0xdc876697979bc7e5, s.Struct)\n\treturn str\n}\n\nfunc (s ExplicitPin) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s ExplicitPin) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ExplicitPin) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ExplicitPin) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s ExplicitPin) Commit() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s ExplicitPin) HasCommit() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s ExplicitPin) CommitBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s ExplicitPin) SetCommit(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// ExplicitPin_List is a list of ExplicitPin.\ntype ExplicitPin_List struct{ capnp.List }\n\n// NewExplicitPin creates a new list of ExplicitPin.\nfunc NewExplicitPin_List(s *capnp.Segment, sz int32) (ExplicitPin_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn ExplicitPin_List{l}, err\n}\n\nfunc (s ExplicitPin_List) At(i int) ExplicitPin { return ExplicitPin{s.List.Struct(i)} }\n\nfunc (s ExplicitPin_List) Set(i int, v ExplicitPin) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s ExplicitPin_List) String() string {\n\tstr, _ := text.MarshalList(0xdc876697979bc7e5, s.List)\n\treturn str\n}\n\n// ExplicitPin_Promise is a wrapper for a ExplicitPin promised by a client call.\ntype ExplicitPin_Promise struct{ *capnp.Pipeline }\n\nfunc (p ExplicitPin_Promise) Struct() (ExplicitPin, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn ExplicitPin{s}, err\n}\n\ntype FsTabEntry struct{ capnp.Struct }\n\n// FsTabEntry_TypeID is the unique identifier for the type FsTabEntry.\nconst FsTabEntry_TypeID = 0xf7da25d3ead6c0d3\n\nfunc NewFsTabEntry(s *capnp.Segment) (FsTabEntry, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn FsTabEntry{st}, err\n}\n\nfunc NewRootFsTabEntry(s *capnp.Segment) (FsTabEntry, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})\n\treturn FsTabEntry{st}, err\n}\n\nfunc ReadRootFsTabEntry(msg *capnp.Message) (FsTabEntry, error) {\n\troot, err := msg.RootPtr()\n\treturn FsTabEntry{root.Struct()}, err\n}\n\nfunc (s FsTabEntry) String() string {\n\tstr, _ := text.Marshal(0xf7da25d3ead6c0d3, s.Struct)\n\treturn str\n}\n\nfunc (s FsTabEntry) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FsTabEntry) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FsTabEntry) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FsTabEntry) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FsTabEntry) Path() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s FsTabEntry) HasPath() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FsTabEntry) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FsTabEntry) SetPath(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s FsTabEntry) ReadOnly() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FsTabEntry) SetReadOnly(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s FsTabEntry) Root() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s FsTabEntry) HasRoot() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FsTabEntry) RootBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FsTabEntry) SetRoot(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s FsTabEntry) Active() bool {\n\treturn s.Struct.Bit(1)\n}\n\nfunc (s FsTabEntry) SetActive(v bool) {\n\ts.Struct.SetBit(1, v)\n}\n\nfunc (s FsTabEntry) Offline() bool {\n\treturn s.Struct.Bit(2)\n}\n\nfunc (s FsTabEntry) SetOffline(v bool) {\n\ts.Struct.SetBit(2, v)\n}\n\n// FsTabEntry_List is a list of FsTabEntry.\ntype FsTabEntry_List struct{ capnp.List }\n\n// NewFsTabEntry creates a new list of FsTabEntry.\nfunc NewFsTabEntry_List(s *capnp.Segment, sz int32) (FsTabEntry_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3}, sz)\n\treturn FsTabEntry_List{l}, err\n}\n\nfunc (s FsTabEntry_List) At(i int) FsTabEntry { return FsTabEntry{s.List.Struct(i)} }\n\nfunc (s FsTabEntry_List) Set(i int, v FsTabEntry) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FsTabEntry_List) String() string {\n\tstr, _ := text.MarshalList(0xf7da25d3ead6c0d3, s.List)\n\treturn str\n}\n\n// FsTabEntry_Promise is a wrapper for a FsTabEntry promised by a client call.\ntype FsTabEntry_Promise struct{ *capnp.Pipeline }\n\nfunc (p FsTabEntry_Promise) Struct() (FsTabEntry, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FsTabEntry{s}, err\n}\n\ntype FS struct{ Client capnp.Client }\n\n// FS_TypeID is the unique identifier for the type FS.\nconst FS_TypeID = 0xe2b3585db47cd4f9\n\nfunc (c FS) Stage(ctx context.Context, params func(FS_stage_Params) error, opts ...capnp.CallOption) FS_stage_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stage_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stage\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stage_Params{Struct: s}) }\n\t}\n\treturn FS_stage_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) List(ctx context.Context, params func(FS_list_Params) error, opts ...capnp.CallOption) FS_list_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_list_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"list\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_list_Params{Struct: s}) }\n\t}\n\treturn FS_list_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Cat(ctx context.Context, params func(FS_cat_Params) error, opts ...capnp.CallOption) FS_cat_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_cat_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"cat\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_cat_Params{Struct: s}) }\n\t}\n\treturn FS_cat_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Mkdir(ctx context.Context, params func(FS_mkdir_Params) error, opts ...capnp.CallOption) FS_mkdir_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_mkdir_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"mkdir\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_mkdir_Params{Struct: s}) }\n\t}\n\treturn FS_mkdir_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Remove(ctx context.Context, params func(FS_remove_Params) error, opts ...capnp.CallOption) FS_remove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_remove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"remove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_remove_Params{Struct: s}) }\n\t}\n\treturn FS_remove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Move(ctx context.Context, params func(FS_move_Params) error, opts ...capnp.CallOption) FS_move_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_move_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"move\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_move_Params{Struct: s}) }\n\t}\n\treturn FS_move_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Copy(ctx context.Context, params func(FS_copy_Params) error, opts ...capnp.CallOption) FS_copy_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_copy_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"copy\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_copy_Params{Struct: s}) }\n\t}\n\treturn FS_copy_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Pin(ctx context.Context, params func(FS_pin_Params) error, opts ...capnp.CallOption) FS_pin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_pin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"pin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_pin_Params{Struct: s}) }\n\t}\n\treturn FS_pin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Unpin(ctx context.Context, params func(FS_unpin_Params) error, opts ...capnp.CallOption) FS_unpin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_unpin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"unpin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_unpin_Params{Struct: s}) }\n\t}\n\treturn FS_unpin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Stat(ctx context.Context, params func(FS_stat_Params) error, opts ...capnp.CallOption) FS_stat_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stat_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stat\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stat_Params{Struct: s}) }\n\t}\n\treturn FS_stat_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) GarbageCollect(ctx context.Context, params func(FS_garbageCollect_Params) error, opts ...capnp.CallOption) FS_garbageCollect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_garbageCollect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"garbageCollect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_garbageCollect_Params{Struct: s}) }\n\t}\n\treturn FS_garbageCollect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Touch(ctx context.Context, params func(FS_touch_Params) error, opts ...capnp.CallOption) FS_touch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_touch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"touch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_touch_Params{Struct: s}) }\n\t}\n\treturn FS_touch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Exists(ctx context.Context, params func(FS_exists_Params) error, opts ...capnp.CallOption) FS_exists_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_exists_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"exists\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_exists_Params{Struct: s}) }\n\t}\n\treturn FS_exists_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Tar(ctx context.Context, params func(FS_tar_Params) error, opts ...capnp.CallOption) FS_tar_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_tar_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"tar\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_tar_Params{Struct: s}) }\n\t}\n\treturn FS_tar_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) DeletedNodes(ctx context.Context, params func(FS_deletedNodes_Params) error, opts ...capnp.CallOption) FS_deletedNodes_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_deletedNodes_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"deletedNodes\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_deletedNodes_Params{Struct: s}) }\n\t}\n\treturn FS_deletedNodes_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Undelete(ctx context.Context, params func(FS_undelete_Params) error, opts ...capnp.CallOption) FS_undelete_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_undelete_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"undelete\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_undelete_Params{Struct: s}) }\n\t}\n\treturn FS_undelete_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) Repin(ctx context.Context, params func(FS_repin_Params) error, opts ...capnp.CallOption) FS_repin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_repin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"repin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_repin_Params{Struct: s}) }\n\t}\n\treturn FS_repin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) IsCached(ctx context.Context, params func(FS_isCached_Params) error, opts ...capnp.CallOption) FS_isCached_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_isCached_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"isCached\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_isCached_Params{Struct: s}) }\n\t}\n\treturn FS_isCached_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) StageFromStream(ctx context.Context, params func(FS_stageFromStream_Params) error, opts ...capnp.CallOption) FS_stageFromStream_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stageFromStream_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stageFromStream\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stageFromStream_Params{Struct: s}) }\n\t}\n\treturn FS_stageFromStream_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS) RecodeStream(ctx context.Context, params func(FS_recodeStream_Params) error, opts ...capnp.CallOption) FS_recodeStream_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_recodeStream_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"recodeStream\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_recodeStream_Params{Struct: s}) }\n\t}\n\treturn FS_recodeStream_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype FS_Server interface {\n\tStage(FS_stage) error\n\n\tList(FS_list) error\n\n\tCat(FS_cat) error\n\n\tMkdir(FS_mkdir) error\n\n\tRemove(FS_remove) error\n\n\tMove(FS_move) error\n\n\tCopy(FS_copy) error\n\n\tPin(FS_pin) error\n\n\tUnpin(FS_unpin) error\n\n\tStat(FS_stat) error\n\n\tGarbageCollect(FS_garbageCollect) error\n\n\tTouch(FS_touch) error\n\n\tExists(FS_exists) error\n\n\tTar(FS_tar) error\n\n\tDeletedNodes(FS_deletedNodes) error\n\n\tUndelete(FS_undelete) error\n\n\tRepin(FS_repin) error\n\n\tIsCached(FS_isCached) error\n\n\tStageFromStream(FS_stageFromStream) error\n\n\tRecodeStream(FS_recodeStream) error\n}\n\nfunc FS_ServerToClient(s FS_Server) FS {\n\tc, _ := s.(server.Closer)\n\treturn FS{Client: server.New(FS_Methods(nil, s), c)}\n}\n\nfunc FS_Methods(methods []server.Method, s FS_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 20)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stage\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stage{c, opts, FS_stage_Params{Struct: p}, FS_stage_Results{Struct: r}}\n\t\t\treturn s.Stage(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"list\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_list{c, opts, FS_list_Params{Struct: p}, FS_list_Results{Struct: r}}\n\t\t\treturn s.List(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"cat\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_cat{c, opts, FS_cat_Params{Struct: p}, FS_cat_Results{Struct: r}}\n\t\t\treturn s.Cat(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"mkdir\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_mkdir{c, opts, FS_mkdir_Params{Struct: p}, FS_mkdir_Results{Struct: r}}\n\t\t\treturn s.Mkdir(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"remove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_remove{c, opts, FS_remove_Params{Struct: p}, FS_remove_Results{Struct: r}}\n\t\t\treturn s.Remove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"move\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_move{c, opts, FS_move_Params{Struct: p}, FS_move_Results{Struct: r}}\n\t\t\treturn s.Move(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"copy\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_copy{c, opts, FS_copy_Params{Struct: p}, FS_copy_Results{Struct: r}}\n\t\t\treturn s.Copy(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"pin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_pin{c, opts, FS_pin_Params{Struct: p}, FS_pin_Results{Struct: r}}\n\t\t\treturn s.Pin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"unpin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_unpin{c, opts, FS_unpin_Params{Struct: p}, FS_unpin_Results{Struct: r}}\n\t\t\treturn s.Unpin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stat\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stat{c, opts, FS_stat_Params{Struct: p}, FS_stat_Results{Struct: r}}\n\t\t\treturn s.Stat(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"garbageCollect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_garbageCollect{c, opts, FS_garbageCollect_Params{Struct: p}, FS_garbageCollect_Results{Struct: r}}\n\t\t\treturn s.GarbageCollect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"touch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_touch{c, opts, FS_touch_Params{Struct: p}, FS_touch_Results{Struct: r}}\n\t\t\treturn s.Touch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"exists\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_exists{c, opts, FS_exists_Params{Struct: p}, FS_exists_Results{Struct: r}}\n\t\t\treturn s.Exists(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"tar\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_tar{c, opts, FS_tar_Params{Struct: p}, FS_tar_Results{Struct: r}}\n\t\t\treturn s.Tar(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"deletedNodes\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_deletedNodes{c, opts, FS_deletedNodes_Params{Struct: p}, FS_deletedNodes_Results{Struct: r}}\n\t\t\treturn s.DeletedNodes(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"undelete\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_undelete{c, opts, FS_undelete_Params{Struct: p}, FS_undelete_Results{Struct: r}}\n\t\t\treturn s.Undelete(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"repin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_repin{c, opts, FS_repin_Params{Struct: p}, FS_repin_Results{Struct: r}}\n\t\t\treturn s.Repin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"isCached\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_isCached{c, opts, FS_isCached_Params{Struct: p}, FS_isCached_Results{Struct: r}}\n\t\t\treturn s.IsCached(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stageFromStream\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stageFromStream{c, opts, FS_stageFromStream_Params{Struct: p}, FS_stageFromStream_Results{Struct: r}}\n\t\t\treturn s.StageFromStream(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"recodeStream\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_recodeStream{c, opts, FS_recodeStream_Params{Struct: p}, FS_recodeStream_Results{Struct: r}}\n\t\t\treturn s.RecodeStream(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\treturn methods\n}\n\n// FS_stage holds the arguments for a server call to FS.stage.\ntype FS_stage struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_stage_Params\n\tResults FS_stage_Results\n}\n\n// FS_list holds the arguments for a server call to FS.list.\ntype FS_list struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_list_Params\n\tResults FS_list_Results\n}\n\n// FS_cat holds the arguments for a server call to FS.cat.\ntype FS_cat struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_cat_Params\n\tResults FS_cat_Results\n}\n\n// FS_mkdir holds the arguments for a server call to FS.mkdir.\ntype FS_mkdir struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_mkdir_Params\n\tResults FS_mkdir_Results\n}\n\n// FS_remove holds the arguments for a server call to FS.remove.\ntype FS_remove struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_remove_Params\n\tResults FS_remove_Results\n}\n\n// FS_move holds the arguments for a server call to FS.move.\ntype FS_move struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_move_Params\n\tResults FS_move_Results\n}\n\n// FS_copy holds the arguments for a server call to FS.copy.\ntype FS_copy struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_copy_Params\n\tResults FS_copy_Results\n}\n\n// FS_pin holds the arguments for a server call to FS.pin.\ntype FS_pin struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_pin_Params\n\tResults FS_pin_Results\n}\n\n// FS_unpin holds the arguments for a server call to FS.unpin.\ntype FS_unpin struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_unpin_Params\n\tResults FS_unpin_Results\n}\n\n// FS_stat holds the arguments for a server call to FS.stat.\ntype FS_stat struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_stat_Params\n\tResults FS_stat_Results\n}\n\n// FS_garbageCollect holds the arguments for a server call to FS.garbageCollect.\ntype FS_garbageCollect struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_garbageCollect_Params\n\tResults FS_garbageCollect_Results\n}\n\n// FS_touch holds the arguments for a server call to FS.touch.\ntype FS_touch struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_touch_Params\n\tResults FS_touch_Results\n}\n\n// FS_exists holds the arguments for a server call to FS.exists.\ntype FS_exists struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_exists_Params\n\tResults FS_exists_Results\n}\n\n// FS_tar holds the arguments for a server call to FS.tar.\ntype FS_tar struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_tar_Params\n\tResults FS_tar_Results\n}\n\n// FS_deletedNodes holds the arguments for a server call to FS.deletedNodes.\ntype FS_deletedNodes struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_deletedNodes_Params\n\tResults FS_deletedNodes_Results\n}\n\n// FS_undelete holds the arguments for a server call to FS.undelete.\ntype FS_undelete struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_undelete_Params\n\tResults FS_undelete_Results\n}\n\n// FS_repin holds the arguments for a server call to FS.repin.\ntype FS_repin struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_repin_Params\n\tResults FS_repin_Results\n}\n\n// FS_isCached holds the arguments for a server call to FS.isCached.\ntype FS_isCached struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_isCached_Params\n\tResults FS_isCached_Results\n}\n\n// FS_stageFromStream holds the arguments for a server call to FS.stageFromStream.\ntype FS_stageFromStream struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_stageFromStream_Params\n\tResults FS_stageFromStream_Results\n}\n\n// FS_recodeStream holds the arguments for a server call to FS.recodeStream.\ntype FS_recodeStream struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_recodeStream_Params\n\tResults FS_recodeStream_Results\n}\n\ntype FS_StageStream struct{ Client capnp.Client }\n\n// FS_StageStream_TypeID is the unique identifier for the type FS_StageStream.\nconst FS_StageStream_TypeID = 0xb14deff4ede8084c\n\nfunc (c FS_StageStream) SendChunk(ctx context.Context, params func(FS_StageStream_sendChunk_Params) error, opts ...capnp.CallOption) FS_StageStream_sendChunk_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_StageStream_sendChunk_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb14deff4ede8084c,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS.StageStream\",\n\t\t\tMethodName:    \"sendChunk\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_StageStream_sendChunk_Params{Struct: s}) }\n\t}\n\treturn FS_StageStream_sendChunk_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c FS_StageStream) Done(ctx context.Context, params func(FS_StageStream_done_Params) error, opts ...capnp.CallOption) FS_StageStream_done_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_StageStream_done_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb14deff4ede8084c,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS.StageStream\",\n\t\t\tMethodName:    \"done\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_StageStream_done_Params{Struct: s}) }\n\t}\n\treturn FS_StageStream_done_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype FS_StageStream_Server interface {\n\tSendChunk(FS_StageStream_sendChunk) error\n\n\tDone(FS_StageStream_done) error\n}\n\nfunc FS_StageStream_ServerToClient(s FS_StageStream_Server) FS_StageStream {\n\tc, _ := s.(server.Closer)\n\treturn FS_StageStream{Client: server.New(FS_StageStream_Methods(nil, s), c)}\n}\n\nfunc FS_StageStream_Methods(methods []server.Method, s FS_StageStream_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 2)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb14deff4ede8084c,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS.StageStream\",\n\t\t\tMethodName:    \"sendChunk\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_StageStream_sendChunk{c, opts, FS_StageStream_sendChunk_Params{Struct: p}, FS_StageStream_sendChunk_Results{Struct: r}}\n\t\t\treturn s.SendChunk(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xb14deff4ede8084c,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS.StageStream\",\n\t\t\tMethodName:    \"done\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_StageStream_done{c, opts, FS_StageStream_done_Params{Struct: p}, FS_StageStream_done_Results{Struct: r}}\n\t\t\treturn s.Done(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\treturn methods\n}\n\n// FS_StageStream_sendChunk holds the arguments for a server call to FS_StageStream.sendChunk.\ntype FS_StageStream_sendChunk struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_StageStream_sendChunk_Params\n\tResults FS_StageStream_sendChunk_Results\n}\n\n// FS_StageStream_done holds the arguments for a server call to FS_StageStream.done.\ntype FS_StageStream_done struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  FS_StageStream_done_Params\n\tResults FS_StageStream_done_Results\n}\n\ntype FS_StageStream_sendChunk_Params struct{ capnp.Struct }\n\n// FS_StageStream_sendChunk_Params_TypeID is the unique identifier for the type FS_StageStream_sendChunk_Params.\nconst FS_StageStream_sendChunk_Params_TypeID = 0xf09939b7753e795c\n\nfunc NewFS_StageStream_sendChunk_Params(s *capnp.Segment) (FS_StageStream_sendChunk_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_StageStream_sendChunk_Params{st}, err\n}\n\nfunc NewRootFS_StageStream_sendChunk_Params(s *capnp.Segment) (FS_StageStream_sendChunk_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_StageStream_sendChunk_Params{st}, err\n}\n\nfunc ReadRootFS_StageStream_sendChunk_Params(msg *capnp.Message) (FS_StageStream_sendChunk_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_StageStream_sendChunk_Params{root.Struct()}, err\n}\n\nfunc (s FS_StageStream_sendChunk_Params) String() string {\n\tstr, _ := text.Marshal(0xf09939b7753e795c, s.Struct)\n\treturn str\n}\n\nfunc (s FS_StageStream_sendChunk_Params) Chunk() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn []byte(p.Data()), err\n}\n\nfunc (s FS_StageStream_sendChunk_Params) HasChunk() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_StageStream_sendChunk_Params) SetChunk(v []byte) error {\n\treturn s.Struct.SetData(0, v)\n}\n\n// FS_StageStream_sendChunk_Params_List is a list of FS_StageStream_sendChunk_Params.\ntype FS_StageStream_sendChunk_Params_List struct{ capnp.List }\n\n// NewFS_StageStream_sendChunk_Params creates a new list of FS_StageStream_sendChunk_Params.\nfunc NewFS_StageStream_sendChunk_Params_List(s *capnp.Segment, sz int32) (FS_StageStream_sendChunk_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_StageStream_sendChunk_Params_List{l}, err\n}\n\nfunc (s FS_StageStream_sendChunk_Params_List) At(i int) FS_StageStream_sendChunk_Params {\n\treturn FS_StageStream_sendChunk_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_StageStream_sendChunk_Params_List) Set(i int, v FS_StageStream_sendChunk_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_StageStream_sendChunk_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf09939b7753e795c, s.List)\n\treturn str\n}\n\n// FS_StageStream_sendChunk_Params_Promise is a wrapper for a FS_StageStream_sendChunk_Params promised by a client call.\ntype FS_StageStream_sendChunk_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_StageStream_sendChunk_Params_Promise) Struct() (FS_StageStream_sendChunk_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_StageStream_sendChunk_Params{s}, err\n}\n\ntype FS_StageStream_sendChunk_Results struct{ capnp.Struct }\n\n// FS_StageStream_sendChunk_Results_TypeID is the unique identifier for the type FS_StageStream_sendChunk_Results.\nconst FS_StageStream_sendChunk_Results_TypeID = 0xd36e267b961bffd3\n\nfunc NewFS_StageStream_sendChunk_Results(s *capnp.Segment) (FS_StageStream_sendChunk_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_sendChunk_Results{st}, err\n}\n\nfunc NewRootFS_StageStream_sendChunk_Results(s *capnp.Segment) (FS_StageStream_sendChunk_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_sendChunk_Results{st}, err\n}\n\nfunc ReadRootFS_StageStream_sendChunk_Results(msg *capnp.Message) (FS_StageStream_sendChunk_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_StageStream_sendChunk_Results{root.Struct()}, err\n}\n\nfunc (s FS_StageStream_sendChunk_Results) String() string {\n\tstr, _ := text.Marshal(0xd36e267b961bffd3, s.Struct)\n\treturn str\n}\n\n// FS_StageStream_sendChunk_Results_List is a list of FS_StageStream_sendChunk_Results.\ntype FS_StageStream_sendChunk_Results_List struct{ capnp.List }\n\n// NewFS_StageStream_sendChunk_Results creates a new list of FS_StageStream_sendChunk_Results.\nfunc NewFS_StageStream_sendChunk_Results_List(s *capnp.Segment, sz int32) (FS_StageStream_sendChunk_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_StageStream_sendChunk_Results_List{l}, err\n}\n\nfunc (s FS_StageStream_sendChunk_Results_List) At(i int) FS_StageStream_sendChunk_Results {\n\treturn FS_StageStream_sendChunk_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_StageStream_sendChunk_Results_List) Set(i int, v FS_StageStream_sendChunk_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_StageStream_sendChunk_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd36e267b961bffd3, s.List)\n\treturn str\n}\n\n// FS_StageStream_sendChunk_Results_Promise is a wrapper for a FS_StageStream_sendChunk_Results promised by a client call.\ntype FS_StageStream_sendChunk_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_StageStream_sendChunk_Results_Promise) Struct() (FS_StageStream_sendChunk_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_StageStream_sendChunk_Results{s}, err\n}\n\ntype FS_StageStream_done_Params struct{ capnp.Struct }\n\n// FS_StageStream_done_Params_TypeID is the unique identifier for the type FS_StageStream_done_Params.\nconst FS_StageStream_done_Params_TypeID = 0xfbae9f53eadd9cda\n\nfunc NewFS_StageStream_done_Params(s *capnp.Segment) (FS_StageStream_done_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_done_Params{st}, err\n}\n\nfunc NewRootFS_StageStream_done_Params(s *capnp.Segment) (FS_StageStream_done_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_done_Params{st}, err\n}\n\nfunc ReadRootFS_StageStream_done_Params(msg *capnp.Message) (FS_StageStream_done_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_StageStream_done_Params{root.Struct()}, err\n}\n\nfunc (s FS_StageStream_done_Params) String() string {\n\tstr, _ := text.Marshal(0xfbae9f53eadd9cda, s.Struct)\n\treturn str\n}\n\n// FS_StageStream_done_Params_List is a list of FS_StageStream_done_Params.\ntype FS_StageStream_done_Params_List struct{ capnp.List }\n\n// NewFS_StageStream_done_Params creates a new list of FS_StageStream_done_Params.\nfunc NewFS_StageStream_done_Params_List(s *capnp.Segment, sz int32) (FS_StageStream_done_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_StageStream_done_Params_List{l}, err\n}\n\nfunc (s FS_StageStream_done_Params_List) At(i int) FS_StageStream_done_Params {\n\treturn FS_StageStream_done_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_StageStream_done_Params_List) Set(i int, v FS_StageStream_done_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_StageStream_done_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xfbae9f53eadd9cda, s.List)\n\treturn str\n}\n\n// FS_StageStream_done_Params_Promise is a wrapper for a FS_StageStream_done_Params promised by a client call.\ntype FS_StageStream_done_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_StageStream_done_Params_Promise) Struct() (FS_StageStream_done_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_StageStream_done_Params{s}, err\n}\n\ntype FS_StageStream_done_Results struct{ capnp.Struct }\n\n// FS_StageStream_done_Results_TypeID is the unique identifier for the type FS_StageStream_done_Results.\nconst FS_StageStream_done_Results_TypeID = 0xa6e50865be515244\n\nfunc NewFS_StageStream_done_Results(s *capnp.Segment) (FS_StageStream_done_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_done_Results{st}, err\n}\n\nfunc NewRootFS_StageStream_done_Results(s *capnp.Segment) (FS_StageStream_done_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_StageStream_done_Results{st}, err\n}\n\nfunc ReadRootFS_StageStream_done_Results(msg *capnp.Message) (FS_StageStream_done_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_StageStream_done_Results{root.Struct()}, err\n}\n\nfunc (s FS_StageStream_done_Results) String() string {\n\tstr, _ := text.Marshal(0xa6e50865be515244, s.Struct)\n\treturn str\n}\n\n// FS_StageStream_done_Results_List is a list of FS_StageStream_done_Results.\ntype FS_StageStream_done_Results_List struct{ capnp.List }\n\n// NewFS_StageStream_done_Results creates a new list of FS_StageStream_done_Results.\nfunc NewFS_StageStream_done_Results_List(s *capnp.Segment, sz int32) (FS_StageStream_done_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_StageStream_done_Results_List{l}, err\n}\n\nfunc (s FS_StageStream_done_Results_List) At(i int) FS_StageStream_done_Results {\n\treturn FS_StageStream_done_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_StageStream_done_Results_List) Set(i int, v FS_StageStream_done_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_StageStream_done_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa6e50865be515244, s.List)\n\treturn str\n}\n\n// FS_StageStream_done_Results_Promise is a wrapper for a FS_StageStream_done_Results promised by a client call.\ntype FS_StageStream_done_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_StageStream_done_Results_Promise) Struct() (FS_StageStream_done_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_StageStream_done_Results{s}, err\n}\n\ntype FS_stage_Params struct{ capnp.Struct }\n\n// FS_stage_Params_TypeID is the unique identifier for the type FS_stage_Params.\nconst FS_stage_Params_TypeID = 0x9ba7a818970a029c\n\nfunc NewFS_stage_Params(s *capnp.Segment) (FS_stage_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_stage_Params{st}, err\n}\n\nfunc NewRootFS_stage_Params(s *capnp.Segment) (FS_stage_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_stage_Params{st}, err\n}\n\nfunc ReadRootFS_stage_Params(msg *capnp.Message) (FS_stage_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stage_Params{root.Struct()}, err\n}\n\nfunc (s FS_stage_Params) String() string {\n\tstr, _ := text.Marshal(0x9ba7a818970a029c, s.Struct)\n\treturn str\n}\n\nfunc (s FS_stage_Params) LocalPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_stage_Params) HasLocalPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stage_Params) LocalPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_stage_Params) SetLocalPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_stage_Params) RepoPath() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s FS_stage_Params) HasRepoPath() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stage_Params) RepoPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_stage_Params) SetRepoPath(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// FS_stage_Params_List is a list of FS_stage_Params.\ntype FS_stage_Params_List struct{ capnp.List }\n\n// NewFS_stage_Params creates a new list of FS_stage_Params.\nfunc NewFS_stage_Params_List(s *capnp.Segment, sz int32) (FS_stage_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn FS_stage_Params_List{l}, err\n}\n\nfunc (s FS_stage_Params_List) At(i int) FS_stage_Params { return FS_stage_Params{s.List.Struct(i)} }\n\nfunc (s FS_stage_Params_List) Set(i int, v FS_stage_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_stage_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9ba7a818970a029c, s.List)\n\treturn str\n}\n\n// FS_stage_Params_Promise is a wrapper for a FS_stage_Params promised by a client call.\ntype FS_stage_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stage_Params_Promise) Struct() (FS_stage_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stage_Params{s}, err\n}\n\ntype FS_stage_Results struct{ capnp.Struct }\n\n// FS_stage_Results_TypeID is the unique identifier for the type FS_stage_Results.\nconst FS_stage_Results_TypeID = 0x884238694e8b8d88\n\nfunc NewFS_stage_Results(s *capnp.Segment) (FS_stage_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_stage_Results{st}, err\n}\n\nfunc NewRootFS_stage_Results(s *capnp.Segment) (FS_stage_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_stage_Results{st}, err\n}\n\nfunc ReadRootFS_stage_Results(msg *capnp.Message) (FS_stage_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stage_Results{root.Struct()}, err\n}\n\nfunc (s FS_stage_Results) String() string {\n\tstr, _ := text.Marshal(0x884238694e8b8d88, s.Struct)\n\treturn str\n}\n\n// FS_stage_Results_List is a list of FS_stage_Results.\ntype FS_stage_Results_List struct{ capnp.List }\n\n// NewFS_stage_Results creates a new list of FS_stage_Results.\nfunc NewFS_stage_Results_List(s *capnp.Segment, sz int32) (FS_stage_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_stage_Results_List{l}, err\n}\n\nfunc (s FS_stage_Results_List) At(i int) FS_stage_Results { return FS_stage_Results{s.List.Struct(i)} }\n\nfunc (s FS_stage_Results_List) Set(i int, v FS_stage_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_stage_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x884238694e8b8d88, s.List)\n\treturn str\n}\n\n// FS_stage_Results_Promise is a wrapper for a FS_stage_Results promised by a client call.\ntype FS_stage_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stage_Results_Promise) Struct() (FS_stage_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stage_Results{s}, err\n}\n\ntype FS_list_Params struct{ capnp.Struct }\n\n// FS_list_Params_TypeID is the unique identifier for the type FS_list_Params.\nconst FS_list_Params_TypeID = 0xfd86771dd5950237\n\nfunc NewFS_list_Params(s *capnp.Segment) (FS_list_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_list_Params{st}, err\n}\n\nfunc NewRootFS_list_Params(s *capnp.Segment) (FS_list_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_list_Params{st}, err\n}\n\nfunc ReadRootFS_list_Params(msg *capnp.Message) (FS_list_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_list_Params{root.Struct()}, err\n}\n\nfunc (s FS_list_Params) String() string {\n\tstr, _ := text.Marshal(0xfd86771dd5950237, s.Struct)\n\treturn str\n}\n\nfunc (s FS_list_Params) Root() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_list_Params) HasRoot() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_list_Params) RootBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_list_Params) SetRoot(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_list_Params) MaxDepth() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s FS_list_Params) SetMaxDepth(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\n// FS_list_Params_List is a list of FS_list_Params.\ntype FS_list_Params_List struct{ capnp.List }\n\n// NewFS_list_Params creates a new list of FS_list_Params.\nfunc NewFS_list_Params_List(s *capnp.Segment, sz int32) (FS_list_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn FS_list_Params_List{l}, err\n}\n\nfunc (s FS_list_Params_List) At(i int) FS_list_Params { return FS_list_Params{s.List.Struct(i)} }\n\nfunc (s FS_list_Params_List) Set(i int, v FS_list_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_list_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xfd86771dd5950237, s.List)\n\treturn str\n}\n\n// FS_list_Params_Promise is a wrapper for a FS_list_Params promised by a client call.\ntype FS_list_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_list_Params_Promise) Struct() (FS_list_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_list_Params{s}, err\n}\n\ntype FS_list_Results struct{ capnp.Struct }\n\n// FS_list_Results_TypeID is the unique identifier for the type FS_list_Results.\nconst FS_list_Results_TypeID = 0xe92935bf20cc2856\n\nfunc NewFS_list_Results(s *capnp.Segment) (FS_list_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_list_Results{st}, err\n}\n\nfunc NewRootFS_list_Results(s *capnp.Segment) (FS_list_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_list_Results{st}, err\n}\n\nfunc ReadRootFS_list_Results(msg *capnp.Message) (FS_list_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_list_Results{root.Struct()}, err\n}\n\nfunc (s FS_list_Results) String() string {\n\tstr, _ := text.Marshal(0xe92935bf20cc2856, s.Struct)\n\treturn str\n}\n\nfunc (s FS_list_Results) Entries() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s FS_list_Results) HasEntries() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_list_Results) SetEntries(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewEntries sets the entries field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s FS_list_Results) NewEntries(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// FS_list_Results_List is a list of FS_list_Results.\ntype FS_list_Results_List struct{ capnp.List }\n\n// NewFS_list_Results creates a new list of FS_list_Results.\nfunc NewFS_list_Results_List(s *capnp.Segment, sz int32) (FS_list_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_list_Results_List{l}, err\n}\n\nfunc (s FS_list_Results_List) At(i int) FS_list_Results { return FS_list_Results{s.List.Struct(i)} }\n\nfunc (s FS_list_Results_List) Set(i int, v FS_list_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_list_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xe92935bf20cc2856, s.List)\n\treturn str\n}\n\n// FS_list_Results_Promise is a wrapper for a FS_list_Results promised by a client call.\ntype FS_list_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_list_Results_Promise) Struct() (FS_list_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_list_Results{s}, err\n}\n\ntype FS_cat_Params struct{ capnp.Struct }\n\n// FS_cat_Params_TypeID is the unique identifier for the type FS_cat_Params.\nconst FS_cat_Params_TypeID = 0xa9095b4cff1e5634\n\nfunc NewFS_cat_Params(s *capnp.Segment) (FS_cat_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_cat_Params{st}, err\n}\n\nfunc NewRootFS_cat_Params(s *capnp.Segment) (FS_cat_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_cat_Params{st}, err\n}\n\nfunc ReadRootFS_cat_Params(msg *capnp.Message) (FS_cat_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_cat_Params{root.Struct()}, err\n}\n\nfunc (s FS_cat_Params) String() string {\n\tstr, _ := text.Marshal(0xa9095b4cff1e5634, s.Struct)\n\treturn str\n}\n\nfunc (s FS_cat_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_cat_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_cat_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_cat_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_cat_Params) Offline() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_cat_Params) SetOffline(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_cat_Params_List is a list of FS_cat_Params.\ntype FS_cat_Params_List struct{ capnp.List }\n\n// NewFS_cat_Params creates a new list of FS_cat_Params.\nfunc NewFS_cat_Params_List(s *capnp.Segment, sz int32) (FS_cat_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn FS_cat_Params_List{l}, err\n}\n\nfunc (s FS_cat_Params_List) At(i int) FS_cat_Params { return FS_cat_Params{s.List.Struct(i)} }\n\nfunc (s FS_cat_Params_List) Set(i int, v FS_cat_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_cat_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa9095b4cff1e5634, s.List)\n\treturn str\n}\n\n// FS_cat_Params_Promise is a wrapper for a FS_cat_Params promised by a client call.\ntype FS_cat_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_cat_Params_Promise) Struct() (FS_cat_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_cat_Params{s}, err\n}\n\ntype FS_cat_Results struct{ capnp.Struct }\n\n// FS_cat_Results_TypeID is the unique identifier for the type FS_cat_Results.\nconst FS_cat_Results_TypeID = 0x9fe8d2cd92c27a38\n\nfunc NewFS_cat_Results(s *capnp.Segment) (FS_cat_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_cat_Results{st}, err\n}\n\nfunc NewRootFS_cat_Results(s *capnp.Segment) (FS_cat_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_cat_Results{st}, err\n}\n\nfunc ReadRootFS_cat_Results(msg *capnp.Message) (FS_cat_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_cat_Results{root.Struct()}, err\n}\n\nfunc (s FS_cat_Results) String() string {\n\tstr, _ := text.Marshal(0x9fe8d2cd92c27a38, s.Struct)\n\treturn str\n}\n\nfunc (s FS_cat_Results) Port() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s FS_cat_Results) SetPort(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\n// FS_cat_Results_List is a list of FS_cat_Results.\ntype FS_cat_Results_List struct{ capnp.List }\n\n// NewFS_cat_Results creates a new list of FS_cat_Results.\nfunc NewFS_cat_Results_List(s *capnp.Segment, sz int32) (FS_cat_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn FS_cat_Results_List{l}, err\n}\n\nfunc (s FS_cat_Results_List) At(i int) FS_cat_Results { return FS_cat_Results{s.List.Struct(i)} }\n\nfunc (s FS_cat_Results_List) Set(i int, v FS_cat_Results) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_cat_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9fe8d2cd92c27a38, s.List)\n\treturn str\n}\n\n// FS_cat_Results_Promise is a wrapper for a FS_cat_Results promised by a client call.\ntype FS_cat_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_cat_Results_Promise) Struct() (FS_cat_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_cat_Results{s}, err\n}\n\ntype FS_mkdir_Params struct{ capnp.Struct }\n\n// FS_mkdir_Params_TypeID is the unique identifier for the type FS_mkdir_Params.\nconst FS_mkdir_Params_TypeID = 0xb030fc18cb3b0e61\n\nfunc NewFS_mkdir_Params(s *capnp.Segment) (FS_mkdir_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_mkdir_Params{st}, err\n}\n\nfunc NewRootFS_mkdir_Params(s *capnp.Segment) (FS_mkdir_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_mkdir_Params{st}, err\n}\n\nfunc ReadRootFS_mkdir_Params(msg *capnp.Message) (FS_mkdir_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_mkdir_Params{root.Struct()}, err\n}\n\nfunc (s FS_mkdir_Params) String() string {\n\tstr, _ := text.Marshal(0xb030fc18cb3b0e61, s.Struct)\n\treturn str\n}\n\nfunc (s FS_mkdir_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_mkdir_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_mkdir_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_mkdir_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_mkdir_Params) CreateParents() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_mkdir_Params) SetCreateParents(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_mkdir_Params_List is a list of FS_mkdir_Params.\ntype FS_mkdir_Params_List struct{ capnp.List }\n\n// NewFS_mkdir_Params creates a new list of FS_mkdir_Params.\nfunc NewFS_mkdir_Params_List(s *capnp.Segment, sz int32) (FS_mkdir_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn FS_mkdir_Params_List{l}, err\n}\n\nfunc (s FS_mkdir_Params_List) At(i int) FS_mkdir_Params { return FS_mkdir_Params{s.List.Struct(i)} }\n\nfunc (s FS_mkdir_Params_List) Set(i int, v FS_mkdir_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_mkdir_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb030fc18cb3b0e61, s.List)\n\treturn str\n}\n\n// FS_mkdir_Params_Promise is a wrapper for a FS_mkdir_Params promised by a client call.\ntype FS_mkdir_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_mkdir_Params_Promise) Struct() (FS_mkdir_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_mkdir_Params{s}, err\n}\n\ntype FS_mkdir_Results struct{ capnp.Struct }\n\n// FS_mkdir_Results_TypeID is the unique identifier for the type FS_mkdir_Results.\nconst FS_mkdir_Results_TypeID = 0xf3243256580294f3\n\nfunc NewFS_mkdir_Results(s *capnp.Segment) (FS_mkdir_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_mkdir_Results{st}, err\n}\n\nfunc NewRootFS_mkdir_Results(s *capnp.Segment) (FS_mkdir_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_mkdir_Results{st}, err\n}\n\nfunc ReadRootFS_mkdir_Results(msg *capnp.Message) (FS_mkdir_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_mkdir_Results{root.Struct()}, err\n}\n\nfunc (s FS_mkdir_Results) String() string {\n\tstr, _ := text.Marshal(0xf3243256580294f3, s.Struct)\n\treturn str\n}\n\n// FS_mkdir_Results_List is a list of FS_mkdir_Results.\ntype FS_mkdir_Results_List struct{ capnp.List }\n\n// NewFS_mkdir_Results creates a new list of FS_mkdir_Results.\nfunc NewFS_mkdir_Results_List(s *capnp.Segment, sz int32) (FS_mkdir_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_mkdir_Results_List{l}, err\n}\n\nfunc (s FS_mkdir_Results_List) At(i int) FS_mkdir_Results { return FS_mkdir_Results{s.List.Struct(i)} }\n\nfunc (s FS_mkdir_Results_List) Set(i int, v FS_mkdir_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_mkdir_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xf3243256580294f3, s.List)\n\treturn str\n}\n\n// FS_mkdir_Results_Promise is a wrapper for a FS_mkdir_Results promised by a client call.\ntype FS_mkdir_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_mkdir_Results_Promise) Struct() (FS_mkdir_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_mkdir_Results{s}, err\n}\n\ntype FS_remove_Params struct{ capnp.Struct }\n\n// FS_remove_Params_TypeID is the unique identifier for the type FS_remove_Params.\nconst FS_remove_Params_TypeID = 0xa99c622e110c1203\n\nfunc NewFS_remove_Params(s *capnp.Segment) (FS_remove_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_remove_Params{st}, err\n}\n\nfunc NewRootFS_remove_Params(s *capnp.Segment) (FS_remove_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_remove_Params{st}, err\n}\n\nfunc ReadRootFS_remove_Params(msg *capnp.Message) (FS_remove_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_remove_Params{root.Struct()}, err\n}\n\nfunc (s FS_remove_Params) String() string {\n\tstr, _ := text.Marshal(0xa99c622e110c1203, s.Struct)\n\treturn str\n}\n\nfunc (s FS_remove_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_remove_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_remove_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_remove_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_remove_Params_List is a list of FS_remove_Params.\ntype FS_remove_Params_List struct{ capnp.List }\n\n// NewFS_remove_Params creates a new list of FS_remove_Params.\nfunc NewFS_remove_Params_List(s *capnp.Segment, sz int32) (FS_remove_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_remove_Params_List{l}, err\n}\n\nfunc (s FS_remove_Params_List) At(i int) FS_remove_Params { return FS_remove_Params{s.List.Struct(i)} }\n\nfunc (s FS_remove_Params_List) Set(i int, v FS_remove_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_remove_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa99c622e110c1203, s.List)\n\treturn str\n}\n\n// FS_remove_Params_Promise is a wrapper for a FS_remove_Params promised by a client call.\ntype FS_remove_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_remove_Params_Promise) Struct() (FS_remove_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_remove_Params{s}, err\n}\n\ntype FS_remove_Results struct{ capnp.Struct }\n\n// FS_remove_Results_TypeID is the unique identifier for the type FS_remove_Results.\nconst FS_remove_Results_TypeID = 0xc9b3a8263f6853d7\n\nfunc NewFS_remove_Results(s *capnp.Segment) (FS_remove_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_remove_Results{st}, err\n}\n\nfunc NewRootFS_remove_Results(s *capnp.Segment) (FS_remove_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_remove_Results{st}, err\n}\n\nfunc ReadRootFS_remove_Results(msg *capnp.Message) (FS_remove_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_remove_Results{root.Struct()}, err\n}\n\nfunc (s FS_remove_Results) String() string {\n\tstr, _ := text.Marshal(0xc9b3a8263f6853d7, s.Struct)\n\treturn str\n}\n\n// FS_remove_Results_List is a list of FS_remove_Results.\ntype FS_remove_Results_List struct{ capnp.List }\n\n// NewFS_remove_Results creates a new list of FS_remove_Results.\nfunc NewFS_remove_Results_List(s *capnp.Segment, sz int32) (FS_remove_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_remove_Results_List{l}, err\n}\n\nfunc (s FS_remove_Results_List) At(i int) FS_remove_Results {\n\treturn FS_remove_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_remove_Results_List) Set(i int, v FS_remove_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_remove_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xc9b3a8263f6853d7, s.List)\n\treturn str\n}\n\n// FS_remove_Results_Promise is a wrapper for a FS_remove_Results promised by a client call.\ntype FS_remove_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_remove_Results_Promise) Struct() (FS_remove_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_remove_Results{s}, err\n}\n\ntype FS_move_Params struct{ capnp.Struct }\n\n// FS_move_Params_TypeID is the unique identifier for the type FS_move_Params.\nconst FS_move_Params_TypeID = 0xb76f3dc1dcf4fdf1\n\nfunc NewFS_move_Params(s *capnp.Segment) (FS_move_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_move_Params{st}, err\n}\n\nfunc NewRootFS_move_Params(s *capnp.Segment) (FS_move_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_move_Params{st}, err\n}\n\nfunc ReadRootFS_move_Params(msg *capnp.Message) (FS_move_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_move_Params{root.Struct()}, err\n}\n\nfunc (s FS_move_Params) String() string {\n\tstr, _ := text.Marshal(0xb76f3dc1dcf4fdf1, s.Struct)\n\treturn str\n}\n\nfunc (s FS_move_Params) SrcPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_move_Params) HasSrcPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_move_Params) SrcPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_move_Params) SetSrcPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_move_Params) DstPath() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s FS_move_Params) HasDstPath() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_move_Params) DstPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_move_Params) SetDstPath(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// FS_move_Params_List is a list of FS_move_Params.\ntype FS_move_Params_List struct{ capnp.List }\n\n// NewFS_move_Params creates a new list of FS_move_Params.\nfunc NewFS_move_Params_List(s *capnp.Segment, sz int32) (FS_move_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn FS_move_Params_List{l}, err\n}\n\nfunc (s FS_move_Params_List) At(i int) FS_move_Params { return FS_move_Params{s.List.Struct(i)} }\n\nfunc (s FS_move_Params_List) Set(i int, v FS_move_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_move_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb76f3dc1dcf4fdf1, s.List)\n\treturn str\n}\n\n// FS_move_Params_Promise is a wrapper for a FS_move_Params promised by a client call.\ntype FS_move_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_move_Params_Promise) Struct() (FS_move_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_move_Params{s}, err\n}\n\ntype FS_move_Results struct{ capnp.Struct }\n\n// FS_move_Results_TypeID is the unique identifier for the type FS_move_Results.\nconst FS_move_Results_TypeID = 0xab89c6fc9bf26f2a\n\nfunc NewFS_move_Results(s *capnp.Segment) (FS_move_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_move_Results{st}, err\n}\n\nfunc NewRootFS_move_Results(s *capnp.Segment) (FS_move_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_move_Results{st}, err\n}\n\nfunc ReadRootFS_move_Results(msg *capnp.Message) (FS_move_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_move_Results{root.Struct()}, err\n}\n\nfunc (s FS_move_Results) String() string {\n\tstr, _ := text.Marshal(0xab89c6fc9bf26f2a, s.Struct)\n\treturn str\n}\n\n// FS_move_Results_List is a list of FS_move_Results.\ntype FS_move_Results_List struct{ capnp.List }\n\n// NewFS_move_Results creates a new list of FS_move_Results.\nfunc NewFS_move_Results_List(s *capnp.Segment, sz int32) (FS_move_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_move_Results_List{l}, err\n}\n\nfunc (s FS_move_Results_List) At(i int) FS_move_Results { return FS_move_Results{s.List.Struct(i)} }\n\nfunc (s FS_move_Results_List) Set(i int, v FS_move_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_move_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xab89c6fc9bf26f2a, s.List)\n\treturn str\n}\n\n// FS_move_Results_Promise is a wrapper for a FS_move_Results promised by a client call.\ntype FS_move_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_move_Results_Promise) Struct() (FS_move_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_move_Results{s}, err\n}\n\ntype FS_copy_Params struct{ capnp.Struct }\n\n// FS_copy_Params_TypeID is the unique identifier for the type FS_copy_Params.\nconst FS_copy_Params_TypeID = 0xc0dd66dedad92ef8\n\nfunc NewFS_copy_Params(s *capnp.Segment) (FS_copy_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_copy_Params{st}, err\n}\n\nfunc NewRootFS_copy_Params(s *capnp.Segment) (FS_copy_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn FS_copy_Params{st}, err\n}\n\nfunc ReadRootFS_copy_Params(msg *capnp.Message) (FS_copy_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_copy_Params{root.Struct()}, err\n}\n\nfunc (s FS_copy_Params) String() string {\n\tstr, _ := text.Marshal(0xc0dd66dedad92ef8, s.Struct)\n\treturn str\n}\n\nfunc (s FS_copy_Params) SrcPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_copy_Params) HasSrcPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_copy_Params) SrcPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_copy_Params) SetSrcPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_copy_Params) DstPath() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s FS_copy_Params) HasDstPath() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_copy_Params) DstPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_copy_Params) SetDstPath(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// FS_copy_Params_List is a list of FS_copy_Params.\ntype FS_copy_Params_List struct{ capnp.List }\n\n// NewFS_copy_Params creates a new list of FS_copy_Params.\nfunc NewFS_copy_Params_List(s *capnp.Segment, sz int32) (FS_copy_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn FS_copy_Params_List{l}, err\n}\n\nfunc (s FS_copy_Params_List) At(i int) FS_copy_Params { return FS_copy_Params{s.List.Struct(i)} }\n\nfunc (s FS_copy_Params_List) Set(i int, v FS_copy_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_copy_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc0dd66dedad92ef8, s.List)\n\treturn str\n}\n\n// FS_copy_Params_Promise is a wrapper for a FS_copy_Params promised by a client call.\ntype FS_copy_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_copy_Params_Promise) Struct() (FS_copy_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_copy_Params{s}, err\n}\n\ntype FS_copy_Results struct{ capnp.Struct }\n\n// FS_copy_Results_TypeID is the unique identifier for the type FS_copy_Results.\nconst FS_copy_Results_TypeID = 0xccf4f28c8951edf6\n\nfunc NewFS_copy_Results(s *capnp.Segment) (FS_copy_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_copy_Results{st}, err\n}\n\nfunc NewRootFS_copy_Results(s *capnp.Segment) (FS_copy_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_copy_Results{st}, err\n}\n\nfunc ReadRootFS_copy_Results(msg *capnp.Message) (FS_copy_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_copy_Results{root.Struct()}, err\n}\n\nfunc (s FS_copy_Results) String() string {\n\tstr, _ := text.Marshal(0xccf4f28c8951edf6, s.Struct)\n\treturn str\n}\n\n// FS_copy_Results_List is a list of FS_copy_Results.\ntype FS_copy_Results_List struct{ capnp.List }\n\n// NewFS_copy_Results creates a new list of FS_copy_Results.\nfunc NewFS_copy_Results_List(s *capnp.Segment, sz int32) (FS_copy_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_copy_Results_List{l}, err\n}\n\nfunc (s FS_copy_Results_List) At(i int) FS_copy_Results { return FS_copy_Results{s.List.Struct(i)} }\n\nfunc (s FS_copy_Results_List) Set(i int, v FS_copy_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_copy_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xccf4f28c8951edf6, s.List)\n\treturn str\n}\n\n// FS_copy_Results_Promise is a wrapper for a FS_copy_Results promised by a client call.\ntype FS_copy_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_copy_Results_Promise) Struct() (FS_copy_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_copy_Results{s}, err\n}\n\ntype FS_pin_Params struct{ capnp.Struct }\n\n// FS_pin_Params_TypeID is the unique identifier for the type FS_pin_Params.\nconst FS_pin_Params_TypeID = 0x9efc974402f016f6\n\nfunc NewFS_pin_Params(s *capnp.Segment) (FS_pin_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_pin_Params{st}, err\n}\n\nfunc NewRootFS_pin_Params(s *capnp.Segment) (FS_pin_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_pin_Params{st}, err\n}\n\nfunc ReadRootFS_pin_Params(msg *capnp.Message) (FS_pin_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_pin_Params{root.Struct()}, err\n}\n\nfunc (s FS_pin_Params) String() string {\n\tstr, _ := text.Marshal(0x9efc974402f016f6, s.Struct)\n\treturn str\n}\n\nfunc (s FS_pin_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_pin_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_pin_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_pin_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_pin_Params_List is a list of FS_pin_Params.\ntype FS_pin_Params_List struct{ capnp.List }\n\n// NewFS_pin_Params creates a new list of FS_pin_Params.\nfunc NewFS_pin_Params_List(s *capnp.Segment, sz int32) (FS_pin_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_pin_Params_List{l}, err\n}\n\nfunc (s FS_pin_Params_List) At(i int) FS_pin_Params { return FS_pin_Params{s.List.Struct(i)} }\n\nfunc (s FS_pin_Params_List) Set(i int, v FS_pin_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_pin_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9efc974402f016f6, s.List)\n\treturn str\n}\n\n// FS_pin_Params_Promise is a wrapper for a FS_pin_Params promised by a client call.\ntype FS_pin_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_pin_Params_Promise) Struct() (FS_pin_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_pin_Params{s}, err\n}\n\ntype FS_pin_Results struct{ capnp.Struct }\n\n// FS_pin_Results_TypeID is the unique identifier for the type FS_pin_Results.\nconst FS_pin_Results_TypeID = 0xdba8e30445acc3f4\n\nfunc NewFS_pin_Results(s *capnp.Segment) (FS_pin_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_pin_Results{st}, err\n}\n\nfunc NewRootFS_pin_Results(s *capnp.Segment) (FS_pin_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_pin_Results{st}, err\n}\n\nfunc ReadRootFS_pin_Results(msg *capnp.Message) (FS_pin_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_pin_Results{root.Struct()}, err\n}\n\nfunc (s FS_pin_Results) String() string {\n\tstr, _ := text.Marshal(0xdba8e30445acc3f4, s.Struct)\n\treturn str\n}\n\n// FS_pin_Results_List is a list of FS_pin_Results.\ntype FS_pin_Results_List struct{ capnp.List }\n\n// NewFS_pin_Results creates a new list of FS_pin_Results.\nfunc NewFS_pin_Results_List(s *capnp.Segment, sz int32) (FS_pin_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_pin_Results_List{l}, err\n}\n\nfunc (s FS_pin_Results_List) At(i int) FS_pin_Results { return FS_pin_Results{s.List.Struct(i)} }\n\nfunc (s FS_pin_Results_List) Set(i int, v FS_pin_Results) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_pin_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xdba8e30445acc3f4, s.List)\n\treturn str\n}\n\n// FS_pin_Results_Promise is a wrapper for a FS_pin_Results promised by a client call.\ntype FS_pin_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_pin_Results_Promise) Struct() (FS_pin_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_pin_Results{s}, err\n}\n\ntype FS_unpin_Params struct{ capnp.Struct }\n\n// FS_unpin_Params_TypeID is the unique identifier for the type FS_unpin_Params.\nconst FS_unpin_Params_TypeID = 0xc9558eac26b0f15e\n\nfunc NewFS_unpin_Params(s *capnp.Segment) (FS_unpin_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_unpin_Params{st}, err\n}\n\nfunc NewRootFS_unpin_Params(s *capnp.Segment) (FS_unpin_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_unpin_Params{st}, err\n}\n\nfunc ReadRootFS_unpin_Params(msg *capnp.Message) (FS_unpin_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_unpin_Params{root.Struct()}, err\n}\n\nfunc (s FS_unpin_Params) String() string {\n\tstr, _ := text.Marshal(0xc9558eac26b0f15e, s.Struct)\n\treturn str\n}\n\nfunc (s FS_unpin_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_unpin_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_unpin_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_unpin_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_unpin_Params_List is a list of FS_unpin_Params.\ntype FS_unpin_Params_List struct{ capnp.List }\n\n// NewFS_unpin_Params creates a new list of FS_unpin_Params.\nfunc NewFS_unpin_Params_List(s *capnp.Segment, sz int32) (FS_unpin_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_unpin_Params_List{l}, err\n}\n\nfunc (s FS_unpin_Params_List) At(i int) FS_unpin_Params { return FS_unpin_Params{s.List.Struct(i)} }\n\nfunc (s FS_unpin_Params_List) Set(i int, v FS_unpin_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_unpin_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc9558eac26b0f15e, s.List)\n\treturn str\n}\n\n// FS_unpin_Params_Promise is a wrapper for a FS_unpin_Params promised by a client call.\ntype FS_unpin_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_unpin_Params_Promise) Struct() (FS_unpin_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_unpin_Params{s}, err\n}\n\ntype FS_unpin_Results struct{ capnp.Struct }\n\n// FS_unpin_Results_TypeID is the unique identifier for the type FS_unpin_Results.\nconst FS_unpin_Results_TypeID = 0x87c49e302c6516f8\n\nfunc NewFS_unpin_Results(s *capnp.Segment) (FS_unpin_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_unpin_Results{st}, err\n}\n\nfunc NewRootFS_unpin_Results(s *capnp.Segment) (FS_unpin_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_unpin_Results{st}, err\n}\n\nfunc ReadRootFS_unpin_Results(msg *capnp.Message) (FS_unpin_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_unpin_Results{root.Struct()}, err\n}\n\nfunc (s FS_unpin_Results) String() string {\n\tstr, _ := text.Marshal(0x87c49e302c6516f8, s.Struct)\n\treturn str\n}\n\n// FS_unpin_Results_List is a list of FS_unpin_Results.\ntype FS_unpin_Results_List struct{ capnp.List }\n\n// NewFS_unpin_Results creates a new list of FS_unpin_Results.\nfunc NewFS_unpin_Results_List(s *capnp.Segment, sz int32) (FS_unpin_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_unpin_Results_List{l}, err\n}\n\nfunc (s FS_unpin_Results_List) At(i int) FS_unpin_Results { return FS_unpin_Results{s.List.Struct(i)} }\n\nfunc (s FS_unpin_Results_List) Set(i int, v FS_unpin_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_unpin_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x87c49e302c6516f8, s.List)\n\treturn str\n}\n\n// FS_unpin_Results_Promise is a wrapper for a FS_unpin_Results promised by a client call.\ntype FS_unpin_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_unpin_Results_Promise) Struct() (FS_unpin_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_unpin_Results{s}, err\n}\n\ntype FS_stat_Params struct{ capnp.Struct }\n\n// FS_stat_Params_TypeID is the unique identifier for the type FS_stat_Params.\nconst FS_stat_Params_TypeID = 0xd78724f6fbd5c5c5\n\nfunc NewFS_stat_Params(s *capnp.Segment) (FS_stat_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stat_Params{st}, err\n}\n\nfunc NewRootFS_stat_Params(s *capnp.Segment) (FS_stat_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stat_Params{st}, err\n}\n\nfunc ReadRootFS_stat_Params(msg *capnp.Message) (FS_stat_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stat_Params{root.Struct()}, err\n}\n\nfunc (s FS_stat_Params) String() string {\n\tstr, _ := text.Marshal(0xd78724f6fbd5c5c5, s.Struct)\n\treturn str\n}\n\nfunc (s FS_stat_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_stat_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stat_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_stat_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_stat_Params_List is a list of FS_stat_Params.\ntype FS_stat_Params_List struct{ capnp.List }\n\n// NewFS_stat_Params creates a new list of FS_stat_Params.\nfunc NewFS_stat_Params_List(s *capnp.Segment, sz int32) (FS_stat_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_stat_Params_List{l}, err\n}\n\nfunc (s FS_stat_Params_List) At(i int) FS_stat_Params { return FS_stat_Params{s.List.Struct(i)} }\n\nfunc (s FS_stat_Params_List) Set(i int, v FS_stat_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_stat_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd78724f6fbd5c5c5, s.List)\n\treturn str\n}\n\n// FS_stat_Params_Promise is a wrapper for a FS_stat_Params promised by a client call.\ntype FS_stat_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stat_Params_Promise) Struct() (FS_stat_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stat_Params{s}, err\n}\n\ntype FS_stat_Results struct{ capnp.Struct }\n\n// FS_stat_Results_TypeID is the unique identifier for the type FS_stat_Results.\nconst FS_stat_Results_TypeID = 0xbdb679ec96303b53\n\nfunc NewFS_stat_Results(s *capnp.Segment) (FS_stat_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stat_Results{st}, err\n}\n\nfunc NewRootFS_stat_Results(s *capnp.Segment) (FS_stat_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stat_Results{st}, err\n}\n\nfunc ReadRootFS_stat_Results(msg *capnp.Message) (FS_stat_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stat_Results{root.Struct()}, err\n}\n\nfunc (s FS_stat_Results) String() string {\n\tstr, _ := text.Marshal(0xbdb679ec96303b53, s.Struct)\n\treturn str\n}\n\nfunc (s FS_stat_Results) Info() (StatInfo, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn StatInfo{Struct: p.Struct()}, err\n}\n\nfunc (s FS_stat_Results) HasInfo() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stat_Results) SetInfo(v StatInfo) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewInfo sets the info field to a newly\n// allocated StatInfo struct, preferring placement in s's segment.\nfunc (s FS_stat_Results) NewInfo() (StatInfo, error) {\n\tss, err := NewStatInfo(s.Struct.Segment())\n\tif err != nil {\n\t\treturn StatInfo{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// FS_stat_Results_List is a list of FS_stat_Results.\ntype FS_stat_Results_List struct{ capnp.List }\n\n// NewFS_stat_Results creates a new list of FS_stat_Results.\nfunc NewFS_stat_Results_List(s *capnp.Segment, sz int32) (FS_stat_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_stat_Results_List{l}, err\n}\n\nfunc (s FS_stat_Results_List) At(i int) FS_stat_Results { return FS_stat_Results{s.List.Struct(i)} }\n\nfunc (s FS_stat_Results_List) Set(i int, v FS_stat_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_stat_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbdb679ec96303b53, s.List)\n\treturn str\n}\n\n// FS_stat_Results_Promise is a wrapper for a FS_stat_Results promised by a client call.\ntype FS_stat_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stat_Results_Promise) Struct() (FS_stat_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stat_Results{s}, err\n}\n\nfunc (p FS_stat_Results_Promise) Info() StatInfo_Promise {\n\treturn StatInfo_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype FS_garbageCollect_Params struct{ capnp.Struct }\n\n// FS_garbageCollect_Params_TypeID is the unique identifier for the type FS_garbageCollect_Params.\nconst FS_garbageCollect_Params_TypeID = 0x9cb31f0ede4f5117\n\nfunc NewFS_garbageCollect_Params(s *capnp.Segment) (FS_garbageCollect_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_garbageCollect_Params{st}, err\n}\n\nfunc NewRootFS_garbageCollect_Params(s *capnp.Segment) (FS_garbageCollect_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_garbageCollect_Params{st}, err\n}\n\nfunc ReadRootFS_garbageCollect_Params(msg *capnp.Message) (FS_garbageCollect_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_garbageCollect_Params{root.Struct()}, err\n}\n\nfunc (s FS_garbageCollect_Params) String() string {\n\tstr, _ := text.Marshal(0x9cb31f0ede4f5117, s.Struct)\n\treturn str\n}\n\nfunc (s FS_garbageCollect_Params) Aggressive() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_garbageCollect_Params) SetAggressive(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_garbageCollect_Params_List is a list of FS_garbageCollect_Params.\ntype FS_garbageCollect_Params_List struct{ capnp.List }\n\n// NewFS_garbageCollect_Params creates a new list of FS_garbageCollect_Params.\nfunc NewFS_garbageCollect_Params_List(s *capnp.Segment, sz int32) (FS_garbageCollect_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn FS_garbageCollect_Params_List{l}, err\n}\n\nfunc (s FS_garbageCollect_Params_List) At(i int) FS_garbageCollect_Params {\n\treturn FS_garbageCollect_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_garbageCollect_Params_List) Set(i int, v FS_garbageCollect_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_garbageCollect_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9cb31f0ede4f5117, s.List)\n\treturn str\n}\n\n// FS_garbageCollect_Params_Promise is a wrapper for a FS_garbageCollect_Params promised by a client call.\ntype FS_garbageCollect_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_garbageCollect_Params_Promise) Struct() (FS_garbageCollect_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_garbageCollect_Params{s}, err\n}\n\ntype FS_garbageCollect_Results struct{ capnp.Struct }\n\n// FS_garbageCollect_Results_TypeID is the unique identifier for the type FS_garbageCollect_Results.\nconst FS_garbageCollect_Results_TypeID = 0xbb5ea9a03dfddab3\n\nfunc NewFS_garbageCollect_Results(s *capnp.Segment) (FS_garbageCollect_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_garbageCollect_Results{st}, err\n}\n\nfunc NewRootFS_garbageCollect_Results(s *capnp.Segment) (FS_garbageCollect_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_garbageCollect_Results{st}, err\n}\n\nfunc ReadRootFS_garbageCollect_Results(msg *capnp.Message) (FS_garbageCollect_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_garbageCollect_Results{root.Struct()}, err\n}\n\nfunc (s FS_garbageCollect_Results) String() string {\n\tstr, _ := text.Marshal(0xbb5ea9a03dfddab3, s.Struct)\n\treturn str\n}\n\nfunc (s FS_garbageCollect_Results) Freed() (GarbageItem_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn GarbageItem_List{List: p.List()}, err\n}\n\nfunc (s FS_garbageCollect_Results) HasFreed() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_garbageCollect_Results) SetFreed(v GarbageItem_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewFreed sets the freed field to a newly\n// allocated GarbageItem_List, preferring placement in s's segment.\nfunc (s FS_garbageCollect_Results) NewFreed(n int32) (GarbageItem_List, error) {\n\tl, err := NewGarbageItem_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn GarbageItem_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// FS_garbageCollect_Results_List is a list of FS_garbageCollect_Results.\ntype FS_garbageCollect_Results_List struct{ capnp.List }\n\n// NewFS_garbageCollect_Results creates a new list of FS_garbageCollect_Results.\nfunc NewFS_garbageCollect_Results_List(s *capnp.Segment, sz int32) (FS_garbageCollect_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_garbageCollect_Results_List{l}, err\n}\n\nfunc (s FS_garbageCollect_Results_List) At(i int) FS_garbageCollect_Results {\n\treturn FS_garbageCollect_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_garbageCollect_Results_List) Set(i int, v FS_garbageCollect_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_garbageCollect_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbb5ea9a03dfddab3, s.List)\n\treturn str\n}\n\n// FS_garbageCollect_Results_Promise is a wrapper for a FS_garbageCollect_Results promised by a client call.\ntype FS_garbageCollect_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_garbageCollect_Results_Promise) Struct() (FS_garbageCollect_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_garbageCollect_Results{s}, err\n}\n\ntype FS_touch_Params struct{ capnp.Struct }\n\n// FS_touch_Params_TypeID is the unique identifier for the type FS_touch_Params.\nconst FS_touch_Params_TypeID = 0xab1e48e58e4c69af\n\nfunc NewFS_touch_Params(s *capnp.Segment) (FS_touch_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_touch_Params{st}, err\n}\n\nfunc NewRootFS_touch_Params(s *capnp.Segment) (FS_touch_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_touch_Params{st}, err\n}\n\nfunc ReadRootFS_touch_Params(msg *capnp.Message) (FS_touch_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_touch_Params{root.Struct()}, err\n}\n\nfunc (s FS_touch_Params) String() string {\n\tstr, _ := text.Marshal(0xab1e48e58e4c69af, s.Struct)\n\treturn str\n}\n\nfunc (s FS_touch_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_touch_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_touch_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_touch_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_touch_Params_List is a list of FS_touch_Params.\ntype FS_touch_Params_List struct{ capnp.List }\n\n// NewFS_touch_Params creates a new list of FS_touch_Params.\nfunc NewFS_touch_Params_List(s *capnp.Segment, sz int32) (FS_touch_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_touch_Params_List{l}, err\n}\n\nfunc (s FS_touch_Params_List) At(i int) FS_touch_Params { return FS_touch_Params{s.List.Struct(i)} }\n\nfunc (s FS_touch_Params_List) Set(i int, v FS_touch_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_touch_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xab1e48e58e4c69af, s.List)\n\treturn str\n}\n\n// FS_touch_Params_Promise is a wrapper for a FS_touch_Params promised by a client call.\ntype FS_touch_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_touch_Params_Promise) Struct() (FS_touch_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_touch_Params{s}, err\n}\n\ntype FS_touch_Results struct{ capnp.Struct }\n\n// FS_touch_Results_TypeID is the unique identifier for the type FS_touch_Results.\nconst FS_touch_Results_TypeID = 0xbf1cf3d6e654e947\n\nfunc NewFS_touch_Results(s *capnp.Segment) (FS_touch_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_touch_Results{st}, err\n}\n\nfunc NewRootFS_touch_Results(s *capnp.Segment) (FS_touch_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_touch_Results{st}, err\n}\n\nfunc ReadRootFS_touch_Results(msg *capnp.Message) (FS_touch_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_touch_Results{root.Struct()}, err\n}\n\nfunc (s FS_touch_Results) String() string {\n\tstr, _ := text.Marshal(0xbf1cf3d6e654e947, s.Struct)\n\treturn str\n}\n\n// FS_touch_Results_List is a list of FS_touch_Results.\ntype FS_touch_Results_List struct{ capnp.List }\n\n// NewFS_touch_Results creates a new list of FS_touch_Results.\nfunc NewFS_touch_Results_List(s *capnp.Segment, sz int32) (FS_touch_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_touch_Results_List{l}, err\n}\n\nfunc (s FS_touch_Results_List) At(i int) FS_touch_Results { return FS_touch_Results{s.List.Struct(i)} }\n\nfunc (s FS_touch_Results_List) Set(i int, v FS_touch_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_touch_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbf1cf3d6e654e947, s.List)\n\treturn str\n}\n\n// FS_touch_Results_Promise is a wrapper for a FS_touch_Results promised by a client call.\ntype FS_touch_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_touch_Results_Promise) Struct() (FS_touch_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_touch_Results{s}, err\n}\n\ntype FS_exists_Params struct{ capnp.Struct }\n\n// FS_exists_Params_TypeID is the unique identifier for the type FS_exists_Params.\nconst FS_exists_Params_TypeID = 0xdb27e243a580d2f0\n\nfunc NewFS_exists_Params(s *capnp.Segment) (FS_exists_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_exists_Params{st}, err\n}\n\nfunc NewRootFS_exists_Params(s *capnp.Segment) (FS_exists_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_exists_Params{st}, err\n}\n\nfunc ReadRootFS_exists_Params(msg *capnp.Message) (FS_exists_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_exists_Params{root.Struct()}, err\n}\n\nfunc (s FS_exists_Params) String() string {\n\tstr, _ := text.Marshal(0xdb27e243a580d2f0, s.Struct)\n\treturn str\n}\n\nfunc (s FS_exists_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_exists_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_exists_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_exists_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_exists_Params_List is a list of FS_exists_Params.\ntype FS_exists_Params_List struct{ capnp.List }\n\n// NewFS_exists_Params creates a new list of FS_exists_Params.\nfunc NewFS_exists_Params_List(s *capnp.Segment, sz int32) (FS_exists_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_exists_Params_List{l}, err\n}\n\nfunc (s FS_exists_Params_List) At(i int) FS_exists_Params { return FS_exists_Params{s.List.Struct(i)} }\n\nfunc (s FS_exists_Params_List) Set(i int, v FS_exists_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_exists_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xdb27e243a580d2f0, s.List)\n\treturn str\n}\n\n// FS_exists_Params_Promise is a wrapper for a FS_exists_Params promised by a client call.\ntype FS_exists_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_exists_Params_Promise) Struct() (FS_exists_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_exists_Params{s}, err\n}\n\ntype FS_exists_Results struct{ capnp.Struct }\n\n// FS_exists_Results_TypeID is the unique identifier for the type FS_exists_Results.\nconst FS_exists_Results_TypeID = 0xa5753d28ca12d2ba\n\nfunc NewFS_exists_Results(s *capnp.Segment) (FS_exists_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_exists_Results{st}, err\n}\n\nfunc NewRootFS_exists_Results(s *capnp.Segment) (FS_exists_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_exists_Results{st}, err\n}\n\nfunc ReadRootFS_exists_Results(msg *capnp.Message) (FS_exists_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_exists_Results{root.Struct()}, err\n}\n\nfunc (s FS_exists_Results) String() string {\n\tstr, _ := text.Marshal(0xa5753d28ca12d2ba, s.Struct)\n\treturn str\n}\n\nfunc (s FS_exists_Results) Exists() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_exists_Results) SetExists(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_exists_Results_List is a list of FS_exists_Results.\ntype FS_exists_Results_List struct{ capnp.List }\n\n// NewFS_exists_Results creates a new list of FS_exists_Results.\nfunc NewFS_exists_Results_List(s *capnp.Segment, sz int32) (FS_exists_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn FS_exists_Results_List{l}, err\n}\n\nfunc (s FS_exists_Results_List) At(i int) FS_exists_Results {\n\treturn FS_exists_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_exists_Results_List) Set(i int, v FS_exists_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_exists_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa5753d28ca12d2ba, s.List)\n\treturn str\n}\n\n// FS_exists_Results_Promise is a wrapper for a FS_exists_Results promised by a client call.\ntype FS_exists_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_exists_Results_Promise) Struct() (FS_exists_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_exists_Results{s}, err\n}\n\ntype FS_tar_Params struct{ capnp.Struct }\n\n// FS_tar_Params_TypeID is the unique identifier for the type FS_tar_Params.\nconst FS_tar_Params_TypeID = 0x958ea6b33d4e8cbb\n\nfunc NewFS_tar_Params(s *capnp.Segment) (FS_tar_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_tar_Params{st}, err\n}\n\nfunc NewRootFS_tar_Params(s *capnp.Segment) (FS_tar_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn FS_tar_Params{st}, err\n}\n\nfunc ReadRootFS_tar_Params(msg *capnp.Message) (FS_tar_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_tar_Params{root.Struct()}, err\n}\n\nfunc (s FS_tar_Params) String() string {\n\tstr, _ := text.Marshal(0x958ea6b33d4e8cbb, s.Struct)\n\treturn str\n}\n\nfunc (s FS_tar_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_tar_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_tar_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_tar_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s FS_tar_Params) Offline() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_tar_Params) SetOffline(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_tar_Params_List is a list of FS_tar_Params.\ntype FS_tar_Params_List struct{ capnp.List }\n\n// NewFS_tar_Params creates a new list of FS_tar_Params.\nfunc NewFS_tar_Params_List(s *capnp.Segment, sz int32) (FS_tar_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn FS_tar_Params_List{l}, err\n}\n\nfunc (s FS_tar_Params_List) At(i int) FS_tar_Params { return FS_tar_Params{s.List.Struct(i)} }\n\nfunc (s FS_tar_Params_List) Set(i int, v FS_tar_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_tar_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x958ea6b33d4e8cbb, s.List)\n\treturn str\n}\n\n// FS_tar_Params_Promise is a wrapper for a FS_tar_Params promised by a client call.\ntype FS_tar_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_tar_Params_Promise) Struct() (FS_tar_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_tar_Params{s}, err\n}\n\ntype FS_tar_Results struct{ capnp.Struct }\n\n// FS_tar_Results_TypeID is the unique identifier for the type FS_tar_Results.\nconst FS_tar_Results_TypeID = 0x809d4e73dc197b11\n\nfunc NewFS_tar_Results(s *capnp.Segment) (FS_tar_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_tar_Results{st}, err\n}\n\nfunc NewRootFS_tar_Results(s *capnp.Segment) (FS_tar_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_tar_Results{st}, err\n}\n\nfunc ReadRootFS_tar_Results(msg *capnp.Message) (FS_tar_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_tar_Results{root.Struct()}, err\n}\n\nfunc (s FS_tar_Results) String() string {\n\tstr, _ := text.Marshal(0x809d4e73dc197b11, s.Struct)\n\treturn str\n}\n\nfunc (s FS_tar_Results) Port() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s FS_tar_Results) SetPort(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\n// FS_tar_Results_List is a list of FS_tar_Results.\ntype FS_tar_Results_List struct{ capnp.List }\n\n// NewFS_tar_Results creates a new list of FS_tar_Results.\nfunc NewFS_tar_Results_List(s *capnp.Segment, sz int32) (FS_tar_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn FS_tar_Results_List{l}, err\n}\n\nfunc (s FS_tar_Results_List) At(i int) FS_tar_Results { return FS_tar_Results{s.List.Struct(i)} }\n\nfunc (s FS_tar_Results_List) Set(i int, v FS_tar_Results) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s FS_tar_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x809d4e73dc197b11, s.List)\n\treturn str\n}\n\n// FS_tar_Results_Promise is a wrapper for a FS_tar_Results promised by a client call.\ntype FS_tar_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_tar_Results_Promise) Struct() (FS_tar_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_tar_Results{s}, err\n}\n\ntype FS_deletedNodes_Params struct{ capnp.Struct }\n\n// FS_deletedNodes_Params_TypeID is the unique identifier for the type FS_deletedNodes_Params.\nconst FS_deletedNodes_Params_TypeID = 0xa17d6c20c2174ec8\n\nfunc NewFS_deletedNodes_Params(s *capnp.Segment) (FS_deletedNodes_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_deletedNodes_Params{st}, err\n}\n\nfunc NewRootFS_deletedNodes_Params(s *capnp.Segment) (FS_deletedNodes_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_deletedNodes_Params{st}, err\n}\n\nfunc ReadRootFS_deletedNodes_Params(msg *capnp.Message) (FS_deletedNodes_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_deletedNodes_Params{root.Struct()}, err\n}\n\nfunc (s FS_deletedNodes_Params) String() string {\n\tstr, _ := text.Marshal(0xa17d6c20c2174ec8, s.Struct)\n\treturn str\n}\n\nfunc (s FS_deletedNodes_Params) Root() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_deletedNodes_Params) HasRoot() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_deletedNodes_Params) RootBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_deletedNodes_Params) SetRoot(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_deletedNodes_Params_List is a list of FS_deletedNodes_Params.\ntype FS_deletedNodes_Params_List struct{ capnp.List }\n\n// NewFS_deletedNodes_Params creates a new list of FS_deletedNodes_Params.\nfunc NewFS_deletedNodes_Params_List(s *capnp.Segment, sz int32) (FS_deletedNodes_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_deletedNodes_Params_List{l}, err\n}\n\nfunc (s FS_deletedNodes_Params_List) At(i int) FS_deletedNodes_Params {\n\treturn FS_deletedNodes_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_deletedNodes_Params_List) Set(i int, v FS_deletedNodes_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_deletedNodes_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa17d6c20c2174ec8, s.List)\n\treturn str\n}\n\n// FS_deletedNodes_Params_Promise is a wrapper for a FS_deletedNodes_Params promised by a client call.\ntype FS_deletedNodes_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_deletedNodes_Params_Promise) Struct() (FS_deletedNodes_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_deletedNodes_Params{s}, err\n}\n\ntype FS_deletedNodes_Results struct{ capnp.Struct }\n\n// FS_deletedNodes_Results_TypeID is the unique identifier for the type FS_deletedNodes_Results.\nconst FS_deletedNodes_Results_TypeID = 0xa78946d2af827622\n\nfunc NewFS_deletedNodes_Results(s *capnp.Segment) (FS_deletedNodes_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_deletedNodes_Results{st}, err\n}\n\nfunc NewRootFS_deletedNodes_Results(s *capnp.Segment) (FS_deletedNodes_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_deletedNodes_Results{st}, err\n}\n\nfunc ReadRootFS_deletedNodes_Results(msg *capnp.Message) (FS_deletedNodes_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_deletedNodes_Results{root.Struct()}, err\n}\n\nfunc (s FS_deletedNodes_Results) String() string {\n\tstr, _ := text.Marshal(0xa78946d2af827622, s.Struct)\n\treturn str\n}\n\nfunc (s FS_deletedNodes_Results) Nodes() (StatInfo_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn StatInfo_List{List: p.List()}, err\n}\n\nfunc (s FS_deletedNodes_Results) HasNodes() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_deletedNodes_Results) SetNodes(v StatInfo_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewNodes sets the nodes field to a newly\n// allocated StatInfo_List, preferring placement in s's segment.\nfunc (s FS_deletedNodes_Results) NewNodes(n int32) (StatInfo_List, error) {\n\tl, err := NewStatInfo_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn StatInfo_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// FS_deletedNodes_Results_List is a list of FS_deletedNodes_Results.\ntype FS_deletedNodes_Results_List struct{ capnp.List }\n\n// NewFS_deletedNodes_Results creates a new list of FS_deletedNodes_Results.\nfunc NewFS_deletedNodes_Results_List(s *capnp.Segment, sz int32) (FS_deletedNodes_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_deletedNodes_Results_List{l}, err\n}\n\nfunc (s FS_deletedNodes_Results_List) At(i int) FS_deletedNodes_Results {\n\treturn FS_deletedNodes_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_deletedNodes_Results_List) Set(i int, v FS_deletedNodes_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_deletedNodes_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa78946d2af827622, s.List)\n\treturn str\n}\n\n// FS_deletedNodes_Results_Promise is a wrapper for a FS_deletedNodes_Results promised by a client call.\ntype FS_deletedNodes_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_deletedNodes_Results_Promise) Struct() (FS_deletedNodes_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_deletedNodes_Results{s}, err\n}\n\ntype FS_undelete_Params struct{ capnp.Struct }\n\n// FS_undelete_Params_TypeID is the unique identifier for the type FS_undelete_Params.\nconst FS_undelete_Params_TypeID = 0x946963af664858d0\n\nfunc NewFS_undelete_Params(s *capnp.Segment) (FS_undelete_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_undelete_Params{st}, err\n}\n\nfunc NewRootFS_undelete_Params(s *capnp.Segment) (FS_undelete_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_undelete_Params{st}, err\n}\n\nfunc ReadRootFS_undelete_Params(msg *capnp.Message) (FS_undelete_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_undelete_Params{root.Struct()}, err\n}\n\nfunc (s FS_undelete_Params) String() string {\n\tstr, _ := text.Marshal(0x946963af664858d0, s.Struct)\n\treturn str\n}\n\nfunc (s FS_undelete_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_undelete_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_undelete_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_undelete_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_undelete_Params_List is a list of FS_undelete_Params.\ntype FS_undelete_Params_List struct{ capnp.List }\n\n// NewFS_undelete_Params creates a new list of FS_undelete_Params.\nfunc NewFS_undelete_Params_List(s *capnp.Segment, sz int32) (FS_undelete_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_undelete_Params_List{l}, err\n}\n\nfunc (s FS_undelete_Params_List) At(i int) FS_undelete_Params {\n\treturn FS_undelete_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_undelete_Params_List) Set(i int, v FS_undelete_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_undelete_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x946963af664858d0, s.List)\n\treturn str\n}\n\n// FS_undelete_Params_Promise is a wrapper for a FS_undelete_Params promised by a client call.\ntype FS_undelete_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_undelete_Params_Promise) Struct() (FS_undelete_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_undelete_Params{s}, err\n}\n\ntype FS_undelete_Results struct{ capnp.Struct }\n\n// FS_undelete_Results_TypeID is the unique identifier for the type FS_undelete_Results.\nconst FS_undelete_Results_TypeID = 0x95a8b7d1ed942672\n\nfunc NewFS_undelete_Results(s *capnp.Segment) (FS_undelete_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_undelete_Results{st}, err\n}\n\nfunc NewRootFS_undelete_Results(s *capnp.Segment) (FS_undelete_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_undelete_Results{st}, err\n}\n\nfunc ReadRootFS_undelete_Results(msg *capnp.Message) (FS_undelete_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_undelete_Results{root.Struct()}, err\n}\n\nfunc (s FS_undelete_Results) String() string {\n\tstr, _ := text.Marshal(0x95a8b7d1ed942672, s.Struct)\n\treturn str\n}\n\n// FS_undelete_Results_List is a list of FS_undelete_Results.\ntype FS_undelete_Results_List struct{ capnp.List }\n\n// NewFS_undelete_Results creates a new list of FS_undelete_Results.\nfunc NewFS_undelete_Results_List(s *capnp.Segment, sz int32) (FS_undelete_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_undelete_Results_List{l}, err\n}\n\nfunc (s FS_undelete_Results_List) At(i int) FS_undelete_Results {\n\treturn FS_undelete_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_undelete_Results_List) Set(i int, v FS_undelete_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_undelete_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x95a8b7d1ed942672, s.List)\n\treturn str\n}\n\n// FS_undelete_Results_Promise is a wrapper for a FS_undelete_Results promised by a client call.\ntype FS_undelete_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_undelete_Results_Promise) Struct() (FS_undelete_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_undelete_Results{s}, err\n}\n\ntype FS_repin_Params struct{ capnp.Struct }\n\n// FS_repin_Params_TypeID is the unique identifier for the type FS_repin_Params.\nconst FS_repin_Params_TypeID = 0xf0c07855b6fcd215\n\nfunc NewFS_repin_Params(s *capnp.Segment) (FS_repin_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_repin_Params{st}, err\n}\n\nfunc NewRootFS_repin_Params(s *capnp.Segment) (FS_repin_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_repin_Params{st}, err\n}\n\nfunc ReadRootFS_repin_Params(msg *capnp.Message) (FS_repin_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_repin_Params{root.Struct()}, err\n}\n\nfunc (s FS_repin_Params) String() string {\n\tstr, _ := text.Marshal(0xf0c07855b6fcd215, s.Struct)\n\treturn str\n}\n\nfunc (s FS_repin_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_repin_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_repin_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_repin_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_repin_Params_List is a list of FS_repin_Params.\ntype FS_repin_Params_List struct{ capnp.List }\n\n// NewFS_repin_Params creates a new list of FS_repin_Params.\nfunc NewFS_repin_Params_List(s *capnp.Segment, sz int32) (FS_repin_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_repin_Params_List{l}, err\n}\n\nfunc (s FS_repin_Params_List) At(i int) FS_repin_Params { return FS_repin_Params{s.List.Struct(i)} }\n\nfunc (s FS_repin_Params_List) Set(i int, v FS_repin_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_repin_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf0c07855b6fcd215, s.List)\n\treturn str\n}\n\n// FS_repin_Params_Promise is a wrapper for a FS_repin_Params promised by a client call.\ntype FS_repin_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_repin_Params_Promise) Struct() (FS_repin_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_repin_Params{s}, err\n}\n\ntype FS_repin_Results struct{ capnp.Struct }\n\n// FS_repin_Results_TypeID is the unique identifier for the type FS_repin_Results.\nconst FS_repin_Results_TypeID = 0x90690022482a2dd4\n\nfunc NewFS_repin_Results(s *capnp.Segment) (FS_repin_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_repin_Results{st}, err\n}\n\nfunc NewRootFS_repin_Results(s *capnp.Segment) (FS_repin_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_repin_Results{st}, err\n}\n\nfunc ReadRootFS_repin_Results(msg *capnp.Message) (FS_repin_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_repin_Results{root.Struct()}, err\n}\n\nfunc (s FS_repin_Results) String() string {\n\tstr, _ := text.Marshal(0x90690022482a2dd4, s.Struct)\n\treturn str\n}\n\n// FS_repin_Results_List is a list of FS_repin_Results.\ntype FS_repin_Results_List struct{ capnp.List }\n\n// NewFS_repin_Results creates a new list of FS_repin_Results.\nfunc NewFS_repin_Results_List(s *capnp.Segment, sz int32) (FS_repin_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_repin_Results_List{l}, err\n}\n\nfunc (s FS_repin_Results_List) At(i int) FS_repin_Results { return FS_repin_Results{s.List.Struct(i)} }\n\nfunc (s FS_repin_Results_List) Set(i int, v FS_repin_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_repin_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x90690022482a2dd4, s.List)\n\treturn str\n}\n\n// FS_repin_Results_Promise is a wrapper for a FS_repin_Results promised by a client call.\ntype FS_repin_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_repin_Results_Promise) Struct() (FS_repin_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_repin_Results{s}, err\n}\n\ntype FS_isCached_Params struct{ capnp.Struct }\n\n// FS_isCached_Params_TypeID is the unique identifier for the type FS_isCached_Params.\nconst FS_isCached_Params_TypeID = 0xf39ffa0d4b61ecce\n\nfunc NewFS_isCached_Params(s *capnp.Segment) (FS_isCached_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_isCached_Params{st}, err\n}\n\nfunc NewRootFS_isCached_Params(s *capnp.Segment) (FS_isCached_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_isCached_Params{st}, err\n}\n\nfunc ReadRootFS_isCached_Params(msg *capnp.Message) (FS_isCached_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_isCached_Params{root.Struct()}, err\n}\n\nfunc (s FS_isCached_Params) String() string {\n\tstr, _ := text.Marshal(0xf39ffa0d4b61ecce, s.Struct)\n\treturn str\n}\n\nfunc (s FS_isCached_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_isCached_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_isCached_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_isCached_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_isCached_Params_List is a list of FS_isCached_Params.\ntype FS_isCached_Params_List struct{ capnp.List }\n\n// NewFS_isCached_Params creates a new list of FS_isCached_Params.\nfunc NewFS_isCached_Params_List(s *capnp.Segment, sz int32) (FS_isCached_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_isCached_Params_List{l}, err\n}\n\nfunc (s FS_isCached_Params_List) At(i int) FS_isCached_Params {\n\treturn FS_isCached_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_isCached_Params_List) Set(i int, v FS_isCached_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_isCached_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf39ffa0d4b61ecce, s.List)\n\treturn str\n}\n\n// FS_isCached_Params_Promise is a wrapper for a FS_isCached_Params promised by a client call.\ntype FS_isCached_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_isCached_Params_Promise) Struct() (FS_isCached_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_isCached_Params{s}, err\n}\n\ntype FS_isCached_Results struct{ capnp.Struct }\n\n// FS_isCached_Results_TypeID is the unique identifier for the type FS_isCached_Results.\nconst FS_isCached_Results_TypeID = 0x9f8515931298bab7\n\nfunc NewFS_isCached_Results(s *capnp.Segment) (FS_isCached_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_isCached_Results{st}, err\n}\n\nfunc NewRootFS_isCached_Results(s *capnp.Segment) (FS_isCached_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn FS_isCached_Results{st}, err\n}\n\nfunc ReadRootFS_isCached_Results(msg *capnp.Message) (FS_isCached_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_isCached_Results{root.Struct()}, err\n}\n\nfunc (s FS_isCached_Results) String() string {\n\tstr, _ := text.Marshal(0x9f8515931298bab7, s.Struct)\n\treturn str\n}\n\nfunc (s FS_isCached_Results) IsCached() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s FS_isCached_Results) SetIsCached(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// FS_isCached_Results_List is a list of FS_isCached_Results.\ntype FS_isCached_Results_List struct{ capnp.List }\n\n// NewFS_isCached_Results creates a new list of FS_isCached_Results.\nfunc NewFS_isCached_Results_List(s *capnp.Segment, sz int32) (FS_isCached_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn FS_isCached_Results_List{l}, err\n}\n\nfunc (s FS_isCached_Results_List) At(i int) FS_isCached_Results {\n\treturn FS_isCached_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_isCached_Results_List) Set(i int, v FS_isCached_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_isCached_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9f8515931298bab7, s.List)\n\treturn str\n}\n\n// FS_isCached_Results_Promise is a wrapper for a FS_isCached_Results promised by a client call.\ntype FS_isCached_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_isCached_Results_Promise) Struct() (FS_isCached_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_isCached_Results{s}, err\n}\n\ntype FS_stageFromStream_Params struct{ capnp.Struct }\n\n// FS_stageFromStream_Params_TypeID is the unique identifier for the type FS_stageFromStream_Params.\nconst FS_stageFromStream_Params_TypeID = 0xed67802d71143df2\n\nfunc NewFS_stageFromStream_Params(s *capnp.Segment) (FS_stageFromStream_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stageFromStream_Params{st}, err\n}\n\nfunc NewRootFS_stageFromStream_Params(s *capnp.Segment) (FS_stageFromStream_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stageFromStream_Params{st}, err\n}\n\nfunc ReadRootFS_stageFromStream_Params(msg *capnp.Message) (FS_stageFromStream_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stageFromStream_Params{root.Struct()}, err\n}\n\nfunc (s FS_stageFromStream_Params) String() string {\n\tstr, _ := text.Marshal(0xed67802d71143df2, s.Struct)\n\treturn str\n}\n\nfunc (s FS_stageFromStream_Params) RepoPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_stageFromStream_Params) HasRepoPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stageFromStream_Params) RepoPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_stageFromStream_Params) SetRepoPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_stageFromStream_Params_List is a list of FS_stageFromStream_Params.\ntype FS_stageFromStream_Params_List struct{ capnp.List }\n\n// NewFS_stageFromStream_Params creates a new list of FS_stageFromStream_Params.\nfunc NewFS_stageFromStream_Params_List(s *capnp.Segment, sz int32) (FS_stageFromStream_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_stageFromStream_Params_List{l}, err\n}\n\nfunc (s FS_stageFromStream_Params_List) At(i int) FS_stageFromStream_Params {\n\treturn FS_stageFromStream_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_stageFromStream_Params_List) Set(i int, v FS_stageFromStream_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_stageFromStream_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xed67802d71143df2, s.List)\n\treturn str\n}\n\n// FS_stageFromStream_Params_Promise is a wrapper for a FS_stageFromStream_Params promised by a client call.\ntype FS_stageFromStream_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stageFromStream_Params_Promise) Struct() (FS_stageFromStream_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stageFromStream_Params{s}, err\n}\n\ntype FS_stageFromStream_Results struct{ capnp.Struct }\n\n// FS_stageFromStream_Results_TypeID is the unique identifier for the type FS_stageFromStream_Results.\nconst FS_stageFromStream_Results_TypeID = 0xdec9706a7438a8f0\n\nfunc NewFS_stageFromStream_Results(s *capnp.Segment) (FS_stageFromStream_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stageFromStream_Results{st}, err\n}\n\nfunc NewRootFS_stageFromStream_Results(s *capnp.Segment) (FS_stageFromStream_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_stageFromStream_Results{st}, err\n}\n\nfunc ReadRootFS_stageFromStream_Results(msg *capnp.Message) (FS_stageFromStream_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_stageFromStream_Results{root.Struct()}, err\n}\n\nfunc (s FS_stageFromStream_Results) String() string {\n\tstr, _ := text.Marshal(0xdec9706a7438a8f0, s.Struct)\n\treturn str\n}\n\nfunc (s FS_stageFromStream_Results) Stream() FS_StageStream {\n\tp, _ := s.Struct.Ptr(0)\n\treturn FS_StageStream{Client: p.Interface().Client()}\n}\n\nfunc (s FS_stageFromStream_Results) HasStream() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_stageFromStream_Results) SetStream(v FS_StageStream) error {\n\tif v.Client == nil {\n\t\treturn s.Struct.SetPtr(0, capnp.Ptr{})\n\t}\n\tseg := s.Segment()\n\tin := capnp.NewInterface(seg, seg.Message().AddCap(v.Client))\n\treturn s.Struct.SetPtr(0, in.ToPtr())\n}\n\n// FS_stageFromStream_Results_List is a list of FS_stageFromStream_Results.\ntype FS_stageFromStream_Results_List struct{ capnp.List }\n\n// NewFS_stageFromStream_Results creates a new list of FS_stageFromStream_Results.\nfunc NewFS_stageFromStream_Results_List(s *capnp.Segment, sz int32) (FS_stageFromStream_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_stageFromStream_Results_List{l}, err\n}\n\nfunc (s FS_stageFromStream_Results_List) At(i int) FS_stageFromStream_Results {\n\treturn FS_stageFromStream_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_stageFromStream_Results_List) Set(i int, v FS_stageFromStream_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_stageFromStream_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xdec9706a7438a8f0, s.List)\n\treturn str\n}\n\n// FS_stageFromStream_Results_Promise is a wrapper for a FS_stageFromStream_Results promised by a client call.\ntype FS_stageFromStream_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_stageFromStream_Results_Promise) Struct() (FS_stageFromStream_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_stageFromStream_Results{s}, err\n}\n\nfunc (p FS_stageFromStream_Results_Promise) Stream() FS_StageStream {\n\treturn FS_StageStream{Client: p.Pipeline.GetPipeline(0).Client()}\n}\n\ntype FS_recodeStream_Params struct{ capnp.Struct }\n\n// FS_recodeStream_Params_TypeID is the unique identifier for the type FS_recodeStream_Params.\nconst FS_recodeStream_Params_TypeID = 0x9dd306445642385f\n\nfunc NewFS_recodeStream_Params(s *capnp.Segment) (FS_recodeStream_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_recodeStream_Params{st}, err\n}\n\nfunc NewRootFS_recodeStream_Params(s *capnp.Segment) (FS_recodeStream_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn FS_recodeStream_Params{st}, err\n}\n\nfunc ReadRootFS_recodeStream_Params(msg *capnp.Message) (FS_recodeStream_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_recodeStream_Params{root.Struct()}, err\n}\n\nfunc (s FS_recodeStream_Params) String() string {\n\tstr, _ := text.Marshal(0x9dd306445642385f, s.Struct)\n\treturn str\n}\n\nfunc (s FS_recodeStream_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s FS_recodeStream_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s FS_recodeStream_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s FS_recodeStream_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// FS_recodeStream_Params_List is a list of FS_recodeStream_Params.\ntype FS_recodeStream_Params_List struct{ capnp.List }\n\n// NewFS_recodeStream_Params creates a new list of FS_recodeStream_Params.\nfunc NewFS_recodeStream_Params_List(s *capnp.Segment, sz int32) (FS_recodeStream_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn FS_recodeStream_Params_List{l}, err\n}\n\nfunc (s FS_recodeStream_Params_List) At(i int) FS_recodeStream_Params {\n\treturn FS_recodeStream_Params{s.List.Struct(i)}\n}\n\nfunc (s FS_recodeStream_Params_List) Set(i int, v FS_recodeStream_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_recodeStream_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9dd306445642385f, s.List)\n\treturn str\n}\n\n// FS_recodeStream_Params_Promise is a wrapper for a FS_recodeStream_Params promised by a client call.\ntype FS_recodeStream_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_recodeStream_Params_Promise) Struct() (FS_recodeStream_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_recodeStream_Params{s}, err\n}\n\ntype FS_recodeStream_Results struct{ capnp.Struct }\n\n// FS_recodeStream_Results_TypeID is the unique identifier for the type FS_recodeStream_Results.\nconst FS_recodeStream_Results_TypeID = 0x9640959b4623a286\n\nfunc NewFS_recodeStream_Results(s *capnp.Segment) (FS_recodeStream_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_recodeStream_Results{st}, err\n}\n\nfunc NewRootFS_recodeStream_Results(s *capnp.Segment) (FS_recodeStream_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn FS_recodeStream_Results{st}, err\n}\n\nfunc ReadRootFS_recodeStream_Results(msg *capnp.Message) (FS_recodeStream_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn FS_recodeStream_Results{root.Struct()}, err\n}\n\nfunc (s FS_recodeStream_Results) String() string {\n\tstr, _ := text.Marshal(0x9640959b4623a286, s.Struct)\n\treturn str\n}\n\n// FS_recodeStream_Results_List is a list of FS_recodeStream_Results.\ntype FS_recodeStream_Results_List struct{ capnp.List }\n\n// NewFS_recodeStream_Results creates a new list of FS_recodeStream_Results.\nfunc NewFS_recodeStream_Results_List(s *capnp.Segment, sz int32) (FS_recodeStream_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn FS_recodeStream_Results_List{l}, err\n}\n\nfunc (s FS_recodeStream_Results_List) At(i int) FS_recodeStream_Results {\n\treturn FS_recodeStream_Results{s.List.Struct(i)}\n}\n\nfunc (s FS_recodeStream_Results_List) Set(i int, v FS_recodeStream_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s FS_recodeStream_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9640959b4623a286, s.List)\n\treturn str\n}\n\n// FS_recodeStream_Results_Promise is a wrapper for a FS_recodeStream_Results promised by a client call.\ntype FS_recodeStream_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p FS_recodeStream_Results_Promise) Struct() (FS_recodeStream_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn FS_recodeStream_Results{s}, err\n}\n\ntype VCS struct{ Client capnp.Client }\n\n// VCS_TypeID is the unique identifier for the type VCS.\nconst VCS_TypeID = 0xfaa680ef12c44624\n\nfunc (c VCS) Log(ctx context.Context, params func(VCS_log_Params) error, opts ...capnp.CallOption) VCS_log_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_log_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"log\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_log_Params{Struct: s}) }\n\t}\n\treturn VCS_log_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Commit(ctx context.Context, params func(VCS_commit_Params) error, opts ...capnp.CallOption) VCS_commit_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_commit_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commit\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_commit_Params{Struct: s}) }\n\t}\n\treturn VCS_commit_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Tag(ctx context.Context, params func(VCS_tag_Params) error, opts ...capnp.CallOption) VCS_tag_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_tag_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"tag\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_tag_Params{Struct: s}) }\n\t}\n\treturn VCS_tag_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Untag(ctx context.Context, params func(VCS_untag_Params) error, opts ...capnp.CallOption) VCS_untag_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_untag_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"untag\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_untag_Params{Struct: s}) }\n\t}\n\treturn VCS_untag_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Reset(ctx context.Context, params func(VCS_reset_Params) error, opts ...capnp.CallOption) VCS_reset_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_reset_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"reset\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_reset_Params{Struct: s}) }\n\t}\n\treturn VCS_reset_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) History(ctx context.Context, params func(VCS_history_Params) error, opts ...capnp.CallOption) VCS_history_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_history_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"history\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_history_Params{Struct: s}) }\n\t}\n\treturn VCS_history_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) MakeDiff(ctx context.Context, params func(VCS_makeDiff_Params) error, opts ...capnp.CallOption) VCS_makeDiff_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_makeDiff_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"makeDiff\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 4}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_makeDiff_Params{Struct: s}) }\n\t}\n\treturn VCS_makeDiff_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Sync(ctx context.Context, params func(VCS_sync_Params) error, opts ...capnp.CallOption) VCS_sync_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_sync_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"sync\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_sync_Params{Struct: s}) }\n\t}\n\treturn VCS_sync_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) Fetch(ctx context.Context, params func(VCS_fetch_Params) error, opts ...capnp.CallOption) VCS_fetch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_fetch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"fetch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_fetch_Params{Struct: s}) }\n\t}\n\treturn VCS_fetch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c VCS) CommitInfo(ctx context.Context, params func(VCS_commitInfo_Params) error, opts ...capnp.CallOption) VCS_commitInfo_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_commitInfo_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commitInfo\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_commitInfo_Params{Struct: s}) }\n\t}\n\treturn VCS_commitInfo_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype VCS_Server interface {\n\tLog(VCS_log) error\n\n\tCommit(VCS_commit) error\n\n\tTag(VCS_tag) error\n\n\tUntag(VCS_untag) error\n\n\tReset(VCS_reset) error\n\n\tHistory(VCS_history) error\n\n\tMakeDiff(VCS_makeDiff) error\n\n\tSync(VCS_sync) error\n\n\tFetch(VCS_fetch) error\n\n\tCommitInfo(VCS_commitInfo) error\n}\n\nfunc VCS_ServerToClient(s VCS_Server) VCS {\n\tc, _ := s.(server.Closer)\n\treturn VCS{Client: server.New(VCS_Methods(nil, s), c)}\n}\n\nfunc VCS_Methods(methods []server.Method, s VCS_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 10)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"log\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_log{c, opts, VCS_log_Params{Struct: p}, VCS_log_Results{Struct: r}}\n\t\t\treturn s.Log(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commit\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_commit{c, opts, VCS_commit_Params{Struct: p}, VCS_commit_Results{Struct: r}}\n\t\t\treturn s.Commit(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"tag\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_tag{c, opts, VCS_tag_Params{Struct: p}, VCS_tag_Results{Struct: r}}\n\t\t\treturn s.Tag(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"untag\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_untag{c, opts, VCS_untag_Params{Struct: p}, VCS_untag_Results{Struct: r}}\n\t\t\treturn s.Untag(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"reset\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_reset{c, opts, VCS_reset_Params{Struct: p}, VCS_reset_Results{Struct: r}}\n\t\t\treturn s.Reset(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"history\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_history{c, opts, VCS_history_Params{Struct: p}, VCS_history_Results{Struct: r}}\n\t\t\treturn s.History(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"makeDiff\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_makeDiff{c, opts, VCS_makeDiff_Params{Struct: p}, VCS_makeDiff_Results{Struct: r}}\n\t\t\treturn s.MakeDiff(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"sync\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_sync{c, opts, VCS_sync_Params{Struct: p}, VCS_sync_Results{Struct: r}}\n\t\t\treturn s.Sync(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"fetch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_fetch{c, opts, VCS_fetch_Params{Struct: p}, VCS_fetch_Results{Struct: r}}\n\t\t\treturn s.Fetch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commitInfo\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_commitInfo{c, opts, VCS_commitInfo_Params{Struct: p}, VCS_commitInfo_Results{Struct: r}}\n\t\t\treturn s.CommitInfo(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 1},\n\t})\n\n\treturn methods\n}\n\n// VCS_log holds the arguments for a server call to VCS.log.\ntype VCS_log struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_log_Params\n\tResults VCS_log_Results\n}\n\n// VCS_commit holds the arguments for a server call to VCS.commit.\ntype VCS_commit struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_commit_Params\n\tResults VCS_commit_Results\n}\n\n// VCS_tag holds the arguments for a server call to VCS.tag.\ntype VCS_tag struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_tag_Params\n\tResults VCS_tag_Results\n}\n\n// VCS_untag holds the arguments for a server call to VCS.untag.\ntype VCS_untag struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_untag_Params\n\tResults VCS_untag_Results\n}\n\n// VCS_reset holds the arguments for a server call to VCS.reset.\ntype VCS_reset struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_reset_Params\n\tResults VCS_reset_Results\n}\n\n// VCS_history holds the arguments for a server call to VCS.history.\ntype VCS_history struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_history_Params\n\tResults VCS_history_Results\n}\n\n// VCS_makeDiff holds the arguments for a server call to VCS.makeDiff.\ntype VCS_makeDiff struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_makeDiff_Params\n\tResults VCS_makeDiff_Results\n}\n\n// VCS_sync holds the arguments for a server call to VCS.sync.\ntype VCS_sync struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_sync_Params\n\tResults VCS_sync_Results\n}\n\n// VCS_fetch holds the arguments for a server call to VCS.fetch.\ntype VCS_fetch struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_fetch_Params\n\tResults VCS_fetch_Results\n}\n\n// VCS_commitInfo holds the arguments for a server call to VCS.commitInfo.\ntype VCS_commitInfo struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  VCS_commitInfo_Params\n\tResults VCS_commitInfo_Results\n}\n\ntype VCS_log_Params struct{ capnp.Struct }\n\n// VCS_log_Params_TypeID is the unique identifier for the type VCS_log_Params.\nconst VCS_log_Params_TypeID = 0xa4efd353c57d2b85\n\nfunc NewVCS_log_Params(s *capnp.Segment) (VCS_log_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_log_Params{st}, err\n}\n\nfunc NewRootVCS_log_Params(s *capnp.Segment) (VCS_log_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_log_Params{st}, err\n}\n\nfunc ReadRootVCS_log_Params(msg *capnp.Message) (VCS_log_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_log_Params{root.Struct()}, err\n}\n\nfunc (s VCS_log_Params) String() string {\n\tstr, _ := text.Marshal(0xa4efd353c57d2b85, s.Struct)\n\treturn str\n}\n\n// VCS_log_Params_List is a list of VCS_log_Params.\ntype VCS_log_Params_List struct{ capnp.List }\n\n// NewVCS_log_Params creates a new list of VCS_log_Params.\nfunc NewVCS_log_Params_List(s *capnp.Segment, sz int32) (VCS_log_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_log_Params_List{l}, err\n}\n\nfunc (s VCS_log_Params_List) At(i int) VCS_log_Params { return VCS_log_Params{s.List.Struct(i)} }\n\nfunc (s VCS_log_Params_List) Set(i int, v VCS_log_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s VCS_log_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa4efd353c57d2b85, s.List)\n\treturn str\n}\n\n// VCS_log_Params_Promise is a wrapper for a VCS_log_Params promised by a client call.\ntype VCS_log_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_log_Params_Promise) Struct() (VCS_log_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_log_Params{s}, err\n}\n\ntype VCS_log_Results struct{ capnp.Struct }\n\n// VCS_log_Results_TypeID is the unique identifier for the type VCS_log_Results.\nconst VCS_log_Results_TypeID = 0xf7250939585a23f6\n\nfunc NewVCS_log_Results(s *capnp.Segment) (VCS_log_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_log_Results{st}, err\n}\n\nfunc NewRootVCS_log_Results(s *capnp.Segment) (VCS_log_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_log_Results{st}, err\n}\n\nfunc ReadRootVCS_log_Results(msg *capnp.Message) (VCS_log_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_log_Results{root.Struct()}, err\n}\n\nfunc (s VCS_log_Results) String() string {\n\tstr, _ := text.Marshal(0xf7250939585a23f6, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_log_Results) Entries() (Commit_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Commit_List{List: p.List()}, err\n}\n\nfunc (s VCS_log_Results) HasEntries() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_log_Results) SetEntries(v Commit_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewEntries sets the entries field to a newly\n// allocated Commit_List, preferring placement in s's segment.\nfunc (s VCS_log_Results) NewEntries(n int32) (Commit_List, error) {\n\tl, err := NewCommit_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Commit_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// VCS_log_Results_List is a list of VCS_log_Results.\ntype VCS_log_Results_List struct{ capnp.List }\n\n// NewVCS_log_Results creates a new list of VCS_log_Results.\nfunc NewVCS_log_Results_List(s *capnp.Segment, sz int32) (VCS_log_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_log_Results_List{l}, err\n}\n\nfunc (s VCS_log_Results_List) At(i int) VCS_log_Results { return VCS_log_Results{s.List.Struct(i)} }\n\nfunc (s VCS_log_Results_List) Set(i int, v VCS_log_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_log_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xf7250939585a23f6, s.List)\n\treturn str\n}\n\n// VCS_log_Results_Promise is a wrapper for a VCS_log_Results promised by a client call.\ntype VCS_log_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_log_Results_Promise) Struct() (VCS_log_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_log_Results{s}, err\n}\n\ntype VCS_commit_Params struct{ capnp.Struct }\n\n// VCS_commit_Params_TypeID is the unique identifier for the type VCS_commit_Params.\nconst VCS_commit_Params_TypeID = 0xd9459f2361338d96\n\nfunc NewVCS_commit_Params(s *capnp.Segment) (VCS_commit_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_commit_Params{st}, err\n}\n\nfunc NewRootVCS_commit_Params(s *capnp.Segment) (VCS_commit_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_commit_Params{st}, err\n}\n\nfunc ReadRootVCS_commit_Params(msg *capnp.Message) (VCS_commit_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_commit_Params{root.Struct()}, err\n}\n\nfunc (s VCS_commit_Params) String() string {\n\tstr, _ := text.Marshal(0xd9459f2361338d96, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_commit_Params) Msg() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_commit_Params) HasMsg() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_commit_Params) MsgBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_commit_Params) SetMsg(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// VCS_commit_Params_List is a list of VCS_commit_Params.\ntype VCS_commit_Params_List struct{ capnp.List }\n\n// NewVCS_commit_Params creates a new list of VCS_commit_Params.\nfunc NewVCS_commit_Params_List(s *capnp.Segment, sz int32) (VCS_commit_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_commit_Params_List{l}, err\n}\n\nfunc (s VCS_commit_Params_List) At(i int) VCS_commit_Params {\n\treturn VCS_commit_Params{s.List.Struct(i)}\n}\n\nfunc (s VCS_commit_Params_List) Set(i int, v VCS_commit_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_commit_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd9459f2361338d96, s.List)\n\treturn str\n}\n\n// VCS_commit_Params_Promise is a wrapper for a VCS_commit_Params promised by a client call.\ntype VCS_commit_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_commit_Params_Promise) Struct() (VCS_commit_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_commit_Params{s}, err\n}\n\ntype VCS_commit_Results struct{ capnp.Struct }\n\n// VCS_commit_Results_TypeID is the unique identifier for the type VCS_commit_Results.\nconst VCS_commit_Results_TypeID = 0xb7d0dd6b467e7539\n\nfunc NewVCS_commit_Results(s *capnp.Segment) (VCS_commit_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_commit_Results{st}, err\n}\n\nfunc NewRootVCS_commit_Results(s *capnp.Segment) (VCS_commit_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_commit_Results{st}, err\n}\n\nfunc ReadRootVCS_commit_Results(msg *capnp.Message) (VCS_commit_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_commit_Results{root.Struct()}, err\n}\n\nfunc (s VCS_commit_Results) String() string {\n\tstr, _ := text.Marshal(0xb7d0dd6b467e7539, s.Struct)\n\treturn str\n}\n\n// VCS_commit_Results_List is a list of VCS_commit_Results.\ntype VCS_commit_Results_List struct{ capnp.List }\n\n// NewVCS_commit_Results creates a new list of VCS_commit_Results.\nfunc NewVCS_commit_Results_List(s *capnp.Segment, sz int32) (VCS_commit_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_commit_Results_List{l}, err\n}\n\nfunc (s VCS_commit_Results_List) At(i int) VCS_commit_Results {\n\treturn VCS_commit_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_commit_Results_List) Set(i int, v VCS_commit_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_commit_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb7d0dd6b467e7539, s.List)\n\treturn str\n}\n\n// VCS_commit_Results_Promise is a wrapper for a VCS_commit_Results promised by a client call.\ntype VCS_commit_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_commit_Results_Promise) Struct() (VCS_commit_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_commit_Results{s}, err\n}\n\ntype VCS_tag_Params struct{ capnp.Struct }\n\n// VCS_tag_Params_TypeID is the unique identifier for the type VCS_tag_Params.\nconst VCS_tag_Params_TypeID = 0xa97d67096ee7d46d\n\nfunc NewVCS_tag_Params(s *capnp.Segment) (VCS_tag_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn VCS_tag_Params{st}, err\n}\n\nfunc NewRootVCS_tag_Params(s *capnp.Segment) (VCS_tag_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn VCS_tag_Params{st}, err\n}\n\nfunc ReadRootVCS_tag_Params(msg *capnp.Message) (VCS_tag_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_tag_Params{root.Struct()}, err\n}\n\nfunc (s VCS_tag_Params) String() string {\n\tstr, _ := text.Marshal(0xa97d67096ee7d46d, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_tag_Params) Rev() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_tag_Params) HasRev() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_tag_Params) RevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_tag_Params) SetRev(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s VCS_tag_Params) TagName() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_tag_Params) HasTagName() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_tag_Params) TagNameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_tag_Params) SetTagName(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// VCS_tag_Params_List is a list of VCS_tag_Params.\ntype VCS_tag_Params_List struct{ capnp.List }\n\n// NewVCS_tag_Params creates a new list of VCS_tag_Params.\nfunc NewVCS_tag_Params_List(s *capnp.Segment, sz int32) (VCS_tag_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn VCS_tag_Params_List{l}, err\n}\n\nfunc (s VCS_tag_Params_List) At(i int) VCS_tag_Params { return VCS_tag_Params{s.List.Struct(i)} }\n\nfunc (s VCS_tag_Params_List) Set(i int, v VCS_tag_Params) error { return s.List.SetStruct(i, v.Struct) }\n\nfunc (s VCS_tag_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa97d67096ee7d46d, s.List)\n\treturn str\n}\n\n// VCS_tag_Params_Promise is a wrapper for a VCS_tag_Params promised by a client call.\ntype VCS_tag_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_tag_Params_Promise) Struct() (VCS_tag_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_tag_Params{s}, err\n}\n\ntype VCS_tag_Results struct{ capnp.Struct }\n\n// VCS_tag_Results_TypeID is the unique identifier for the type VCS_tag_Results.\nconst VCS_tag_Results_TypeID = 0xbda949777c149f4b\n\nfunc NewVCS_tag_Results(s *capnp.Segment) (VCS_tag_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_tag_Results{st}, err\n}\n\nfunc NewRootVCS_tag_Results(s *capnp.Segment) (VCS_tag_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_tag_Results{st}, err\n}\n\nfunc ReadRootVCS_tag_Results(msg *capnp.Message) (VCS_tag_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_tag_Results{root.Struct()}, err\n}\n\nfunc (s VCS_tag_Results) String() string {\n\tstr, _ := text.Marshal(0xbda949777c149f4b, s.Struct)\n\treturn str\n}\n\n// VCS_tag_Results_List is a list of VCS_tag_Results.\ntype VCS_tag_Results_List struct{ capnp.List }\n\n// NewVCS_tag_Results creates a new list of VCS_tag_Results.\nfunc NewVCS_tag_Results_List(s *capnp.Segment, sz int32) (VCS_tag_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_tag_Results_List{l}, err\n}\n\nfunc (s VCS_tag_Results_List) At(i int) VCS_tag_Results { return VCS_tag_Results{s.List.Struct(i)} }\n\nfunc (s VCS_tag_Results_List) Set(i int, v VCS_tag_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_tag_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbda949777c149f4b, s.List)\n\treturn str\n}\n\n// VCS_tag_Results_Promise is a wrapper for a VCS_tag_Results promised by a client call.\ntype VCS_tag_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_tag_Results_Promise) Struct() (VCS_tag_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_tag_Results{s}, err\n}\n\ntype VCS_untag_Params struct{ capnp.Struct }\n\n// VCS_untag_Params_TypeID is the unique identifier for the type VCS_untag_Params.\nconst VCS_untag_Params_TypeID = 0xf4d42db113af3a4b\n\nfunc NewVCS_untag_Params(s *capnp.Segment) (VCS_untag_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_untag_Params{st}, err\n}\n\nfunc NewRootVCS_untag_Params(s *capnp.Segment) (VCS_untag_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_untag_Params{st}, err\n}\n\nfunc ReadRootVCS_untag_Params(msg *capnp.Message) (VCS_untag_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_untag_Params{root.Struct()}, err\n}\n\nfunc (s VCS_untag_Params) String() string {\n\tstr, _ := text.Marshal(0xf4d42db113af3a4b, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_untag_Params) TagName() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_untag_Params) HasTagName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_untag_Params) TagNameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_untag_Params) SetTagName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// VCS_untag_Params_List is a list of VCS_untag_Params.\ntype VCS_untag_Params_List struct{ capnp.List }\n\n// NewVCS_untag_Params creates a new list of VCS_untag_Params.\nfunc NewVCS_untag_Params_List(s *capnp.Segment, sz int32) (VCS_untag_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_untag_Params_List{l}, err\n}\n\nfunc (s VCS_untag_Params_List) At(i int) VCS_untag_Params { return VCS_untag_Params{s.List.Struct(i)} }\n\nfunc (s VCS_untag_Params_List) Set(i int, v VCS_untag_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_untag_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf4d42db113af3a4b, s.List)\n\treturn str\n}\n\n// VCS_untag_Params_Promise is a wrapper for a VCS_untag_Params promised by a client call.\ntype VCS_untag_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_untag_Params_Promise) Struct() (VCS_untag_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_untag_Params{s}, err\n}\n\ntype VCS_untag_Results struct{ capnp.Struct }\n\n// VCS_untag_Results_TypeID is the unique identifier for the type VCS_untag_Results.\nconst VCS_untag_Results_TypeID = 0xba0de490234c27af\n\nfunc NewVCS_untag_Results(s *capnp.Segment) (VCS_untag_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_untag_Results{st}, err\n}\n\nfunc NewRootVCS_untag_Results(s *capnp.Segment) (VCS_untag_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_untag_Results{st}, err\n}\n\nfunc ReadRootVCS_untag_Results(msg *capnp.Message) (VCS_untag_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_untag_Results{root.Struct()}, err\n}\n\nfunc (s VCS_untag_Results) String() string {\n\tstr, _ := text.Marshal(0xba0de490234c27af, s.Struct)\n\treturn str\n}\n\n// VCS_untag_Results_List is a list of VCS_untag_Results.\ntype VCS_untag_Results_List struct{ capnp.List }\n\n// NewVCS_untag_Results creates a new list of VCS_untag_Results.\nfunc NewVCS_untag_Results_List(s *capnp.Segment, sz int32) (VCS_untag_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_untag_Results_List{l}, err\n}\n\nfunc (s VCS_untag_Results_List) At(i int) VCS_untag_Results {\n\treturn VCS_untag_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_untag_Results_List) Set(i int, v VCS_untag_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_untag_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xba0de490234c27af, s.List)\n\treturn str\n}\n\n// VCS_untag_Results_Promise is a wrapper for a VCS_untag_Results promised by a client call.\ntype VCS_untag_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_untag_Results_Promise) Struct() (VCS_untag_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_untag_Results{s}, err\n}\n\ntype VCS_reset_Params struct{ capnp.Struct }\n\n// VCS_reset_Params_TypeID is the unique identifier for the type VCS_reset_Params.\nconst VCS_reset_Params_TypeID = 0xe71560d8bc06c6fd\n\nfunc NewVCS_reset_Params(s *capnp.Segment) (VCS_reset_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn VCS_reset_Params{st}, err\n}\n\nfunc NewRootVCS_reset_Params(s *capnp.Segment) (VCS_reset_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn VCS_reset_Params{st}, err\n}\n\nfunc ReadRootVCS_reset_Params(msg *capnp.Message) (VCS_reset_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_reset_Params{root.Struct()}, err\n}\n\nfunc (s VCS_reset_Params) String() string {\n\tstr, _ := text.Marshal(0xe71560d8bc06c6fd, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_reset_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_reset_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_reset_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_reset_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s VCS_reset_Params) Rev() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_reset_Params) HasRev() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_reset_Params) RevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_reset_Params) SetRev(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s VCS_reset_Params) Force() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s VCS_reset_Params) SetForce(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// VCS_reset_Params_List is a list of VCS_reset_Params.\ntype VCS_reset_Params_List struct{ capnp.List }\n\n// NewVCS_reset_Params creates a new list of VCS_reset_Params.\nfunc NewVCS_reset_Params_List(s *capnp.Segment, sz int32) (VCS_reset_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2}, sz)\n\treturn VCS_reset_Params_List{l}, err\n}\n\nfunc (s VCS_reset_Params_List) At(i int) VCS_reset_Params { return VCS_reset_Params{s.List.Struct(i)} }\n\nfunc (s VCS_reset_Params_List) Set(i int, v VCS_reset_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_reset_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe71560d8bc06c6fd, s.List)\n\treturn str\n}\n\n// VCS_reset_Params_Promise is a wrapper for a VCS_reset_Params promised by a client call.\ntype VCS_reset_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_reset_Params_Promise) Struct() (VCS_reset_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_reset_Params{s}, err\n}\n\ntype VCS_reset_Results struct{ capnp.Struct }\n\n// VCS_reset_Results_TypeID is the unique identifier for the type VCS_reset_Results.\nconst VCS_reset_Results_TypeID = 0xf9b772853fd93ea9\n\nfunc NewVCS_reset_Results(s *capnp.Segment) (VCS_reset_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_reset_Results{st}, err\n}\n\nfunc NewRootVCS_reset_Results(s *capnp.Segment) (VCS_reset_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_reset_Results{st}, err\n}\n\nfunc ReadRootVCS_reset_Results(msg *capnp.Message) (VCS_reset_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_reset_Results{root.Struct()}, err\n}\n\nfunc (s VCS_reset_Results) String() string {\n\tstr, _ := text.Marshal(0xf9b772853fd93ea9, s.Struct)\n\treturn str\n}\n\n// VCS_reset_Results_List is a list of VCS_reset_Results.\ntype VCS_reset_Results_List struct{ capnp.List }\n\n// NewVCS_reset_Results creates a new list of VCS_reset_Results.\nfunc NewVCS_reset_Results_List(s *capnp.Segment, sz int32) (VCS_reset_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_reset_Results_List{l}, err\n}\n\nfunc (s VCS_reset_Results_List) At(i int) VCS_reset_Results {\n\treturn VCS_reset_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_reset_Results_List) Set(i int, v VCS_reset_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_reset_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xf9b772853fd93ea9, s.List)\n\treturn str\n}\n\n// VCS_reset_Results_Promise is a wrapper for a VCS_reset_Results promised by a client call.\ntype VCS_reset_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_reset_Results_Promise) Struct() (VCS_reset_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_reset_Results{s}, err\n}\n\ntype VCS_history_Params struct{ capnp.Struct }\n\n// VCS_history_Params_TypeID is the unique identifier for the type VCS_history_Params.\nconst VCS_history_Params_TypeID = 0xe154e487144bf3c2\n\nfunc NewVCS_history_Params(s *capnp.Segment) (VCS_history_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_history_Params{st}, err\n}\n\nfunc NewRootVCS_history_Params(s *capnp.Segment) (VCS_history_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_history_Params{st}, err\n}\n\nfunc ReadRootVCS_history_Params(msg *capnp.Message) (VCS_history_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_history_Params{root.Struct()}, err\n}\n\nfunc (s VCS_history_Params) String() string {\n\tstr, _ := text.Marshal(0xe154e487144bf3c2, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_history_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_history_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_history_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_history_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// VCS_history_Params_List is a list of VCS_history_Params.\ntype VCS_history_Params_List struct{ capnp.List }\n\n// NewVCS_history_Params creates a new list of VCS_history_Params.\nfunc NewVCS_history_Params_List(s *capnp.Segment, sz int32) (VCS_history_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_history_Params_List{l}, err\n}\n\nfunc (s VCS_history_Params_List) At(i int) VCS_history_Params {\n\treturn VCS_history_Params{s.List.Struct(i)}\n}\n\nfunc (s VCS_history_Params_List) Set(i int, v VCS_history_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_history_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe154e487144bf3c2, s.List)\n\treturn str\n}\n\n// VCS_history_Params_Promise is a wrapper for a VCS_history_Params promised by a client call.\ntype VCS_history_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_history_Params_Promise) Struct() (VCS_history_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_history_Params{s}, err\n}\n\ntype VCS_history_Results struct{ capnp.Struct }\n\n// VCS_history_Results_TypeID is the unique identifier for the type VCS_history_Results.\nconst VCS_history_Results_TypeID = 0xe0f49db8c42c72b2\n\nfunc NewVCS_history_Results(s *capnp.Segment) (VCS_history_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_history_Results{st}, err\n}\n\nfunc NewRootVCS_history_Results(s *capnp.Segment) (VCS_history_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_history_Results{st}, err\n}\n\nfunc ReadRootVCS_history_Results(msg *capnp.Message) (VCS_history_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_history_Results{root.Struct()}, err\n}\n\nfunc (s VCS_history_Results) String() string {\n\tstr, _ := text.Marshal(0xe0f49db8c42c72b2, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_history_Results) History() (Change_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Change_List{List: p.List()}, err\n}\n\nfunc (s VCS_history_Results) HasHistory() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_history_Results) SetHistory(v Change_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewHistory sets the history field to a newly\n// allocated Change_List, preferring placement in s's segment.\nfunc (s VCS_history_Results) NewHistory(n int32) (Change_List, error) {\n\tl, err := NewChange_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Change_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// VCS_history_Results_List is a list of VCS_history_Results.\ntype VCS_history_Results_List struct{ capnp.List }\n\n// NewVCS_history_Results creates a new list of VCS_history_Results.\nfunc NewVCS_history_Results_List(s *capnp.Segment, sz int32) (VCS_history_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_history_Results_List{l}, err\n}\n\nfunc (s VCS_history_Results_List) At(i int) VCS_history_Results {\n\treturn VCS_history_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_history_Results_List) Set(i int, v VCS_history_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_history_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xe0f49db8c42c72b2, s.List)\n\treturn str\n}\n\n// VCS_history_Results_Promise is a wrapper for a VCS_history_Results promised by a client call.\ntype VCS_history_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_history_Results_Promise) Struct() (VCS_history_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_history_Results{s}, err\n}\n\ntype VCS_makeDiff_Params struct{ capnp.Struct }\n\n// VCS_makeDiff_Params_TypeID is the unique identifier for the type VCS_makeDiff_Params.\nconst VCS_makeDiff_Params_TypeID = 0xe2f81b4403ef433b\n\nfunc NewVCS_makeDiff_Params(s *capnp.Segment) (VCS_makeDiff_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn VCS_makeDiff_Params{st}, err\n}\n\nfunc NewRootVCS_makeDiff_Params(s *capnp.Segment) (VCS_makeDiff_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})\n\treturn VCS_makeDiff_Params{st}, err\n}\n\nfunc ReadRootVCS_makeDiff_Params(msg *capnp.Message) (VCS_makeDiff_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_makeDiff_Params{root.Struct()}, err\n}\n\nfunc (s VCS_makeDiff_Params) String() string {\n\tstr, _ := text.Marshal(0xe2f81b4403ef433b, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_makeDiff_Params) LocalOwner() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_makeDiff_Params) HasLocalOwner() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_makeDiff_Params) LocalOwnerBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_makeDiff_Params) SetLocalOwner(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s VCS_makeDiff_Params) RemoteOwner() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_makeDiff_Params) HasRemoteOwner() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_makeDiff_Params) RemoteOwnerBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_makeDiff_Params) SetRemoteOwner(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s VCS_makeDiff_Params) LocalRev() (string, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_makeDiff_Params) HasLocalRev() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_makeDiff_Params) LocalRevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_makeDiff_Params) SetLocalRev(v string) error {\n\treturn s.Struct.SetText(2, v)\n}\n\nfunc (s VCS_makeDiff_Params) RemoteRev() (string, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_makeDiff_Params) HasRemoteRev() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_makeDiff_Params) RemoteRevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_makeDiff_Params) SetRemoteRev(v string) error {\n\treturn s.Struct.SetText(3, v)\n}\n\nfunc (s VCS_makeDiff_Params) NeedFetch() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s VCS_makeDiff_Params) SetNeedFetch(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// VCS_makeDiff_Params_List is a list of VCS_makeDiff_Params.\ntype VCS_makeDiff_Params_List struct{ capnp.List }\n\n// NewVCS_makeDiff_Params creates a new list of VCS_makeDiff_Params.\nfunc NewVCS_makeDiff_Params_List(s *capnp.Segment, sz int32) (VCS_makeDiff_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4}, sz)\n\treturn VCS_makeDiff_Params_List{l}, err\n}\n\nfunc (s VCS_makeDiff_Params_List) At(i int) VCS_makeDiff_Params {\n\treturn VCS_makeDiff_Params{s.List.Struct(i)}\n}\n\nfunc (s VCS_makeDiff_Params_List) Set(i int, v VCS_makeDiff_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_makeDiff_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe2f81b4403ef433b, s.List)\n\treturn str\n}\n\n// VCS_makeDiff_Params_Promise is a wrapper for a VCS_makeDiff_Params promised by a client call.\ntype VCS_makeDiff_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_makeDiff_Params_Promise) Struct() (VCS_makeDiff_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_makeDiff_Params{s}, err\n}\n\ntype VCS_makeDiff_Results struct{ capnp.Struct }\n\n// VCS_makeDiff_Results_TypeID is the unique identifier for the type VCS_makeDiff_Results.\nconst VCS_makeDiff_Results_TypeID = 0xd7ef486de484610d\n\nfunc NewVCS_makeDiff_Results(s *capnp.Segment) (VCS_makeDiff_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_makeDiff_Results{st}, err\n}\n\nfunc NewRootVCS_makeDiff_Results(s *capnp.Segment) (VCS_makeDiff_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_makeDiff_Results{st}, err\n}\n\nfunc ReadRootVCS_makeDiff_Results(msg *capnp.Message) (VCS_makeDiff_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_makeDiff_Results{root.Struct()}, err\n}\n\nfunc (s VCS_makeDiff_Results) String() string {\n\tstr, _ := text.Marshal(0xd7ef486de484610d, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_makeDiff_Results) Diff() (Diff, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Diff{Struct: p.Struct()}, err\n}\n\nfunc (s VCS_makeDiff_Results) HasDiff() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_makeDiff_Results) SetDiff(v Diff) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewDiff sets the diff field to a newly\n// allocated Diff struct, preferring placement in s's segment.\nfunc (s VCS_makeDiff_Results) NewDiff() (Diff, error) {\n\tss, err := NewDiff(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Diff{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// VCS_makeDiff_Results_List is a list of VCS_makeDiff_Results.\ntype VCS_makeDiff_Results_List struct{ capnp.List }\n\n// NewVCS_makeDiff_Results creates a new list of VCS_makeDiff_Results.\nfunc NewVCS_makeDiff_Results_List(s *capnp.Segment, sz int32) (VCS_makeDiff_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_makeDiff_Results_List{l}, err\n}\n\nfunc (s VCS_makeDiff_Results_List) At(i int) VCS_makeDiff_Results {\n\treturn VCS_makeDiff_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_makeDiff_Results_List) Set(i int, v VCS_makeDiff_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_makeDiff_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd7ef486de484610d, s.List)\n\treturn str\n}\n\n// VCS_makeDiff_Results_Promise is a wrapper for a VCS_makeDiff_Results promised by a client call.\ntype VCS_makeDiff_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_makeDiff_Results_Promise) Struct() (VCS_makeDiff_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_makeDiff_Results{s}, err\n}\n\nfunc (p VCS_makeDiff_Results_Promise) Diff() Diff_Promise {\n\treturn Diff_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype VCS_sync_Params struct{ capnp.Struct }\n\n// VCS_sync_Params_TypeID is the unique identifier for the type VCS_sync_Params.\nconst VCS_sync_Params_TypeID = 0xb05bd83a34de71b7\n\nfunc NewVCS_sync_Params(s *capnp.Segment) (VCS_sync_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn VCS_sync_Params{st}, err\n}\n\nfunc NewRootVCS_sync_Params(s *capnp.Segment) (VCS_sync_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn VCS_sync_Params{st}, err\n}\n\nfunc ReadRootVCS_sync_Params(msg *capnp.Message) (VCS_sync_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_sync_Params{root.Struct()}, err\n}\n\nfunc (s VCS_sync_Params) String() string {\n\tstr, _ := text.Marshal(0xb05bd83a34de71b7, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_sync_Params) WithWhom() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_sync_Params) HasWithWhom() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_sync_Params) WithWhomBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_sync_Params) SetWithWhom(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s VCS_sync_Params) NeedFetch() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s VCS_sync_Params) SetNeedFetch(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// VCS_sync_Params_List is a list of VCS_sync_Params.\ntype VCS_sync_Params_List struct{ capnp.List }\n\n// NewVCS_sync_Params creates a new list of VCS_sync_Params.\nfunc NewVCS_sync_Params_List(s *capnp.Segment, sz int32) (VCS_sync_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn VCS_sync_Params_List{l}, err\n}\n\nfunc (s VCS_sync_Params_List) At(i int) VCS_sync_Params { return VCS_sync_Params{s.List.Struct(i)} }\n\nfunc (s VCS_sync_Params_List) Set(i int, v VCS_sync_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_sync_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb05bd83a34de71b7, s.List)\n\treturn str\n}\n\n// VCS_sync_Params_Promise is a wrapper for a VCS_sync_Params promised by a client call.\ntype VCS_sync_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_sync_Params_Promise) Struct() (VCS_sync_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_sync_Params{s}, err\n}\n\ntype VCS_sync_Results struct{ capnp.Struct }\n\n// VCS_sync_Results_TypeID is the unique identifier for the type VCS_sync_Results.\nconst VCS_sync_Results_TypeID = 0xfa04b4272d0ffcd9\n\nfunc NewVCS_sync_Results(s *capnp.Segment) (VCS_sync_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_sync_Results{st}, err\n}\n\nfunc NewRootVCS_sync_Results(s *capnp.Segment) (VCS_sync_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_sync_Results{st}, err\n}\n\nfunc ReadRootVCS_sync_Results(msg *capnp.Message) (VCS_sync_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_sync_Results{root.Struct()}, err\n}\n\nfunc (s VCS_sync_Results) String() string {\n\tstr, _ := text.Marshal(0xfa04b4272d0ffcd9, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_sync_Results) Diff() (Diff, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Diff{Struct: p.Struct()}, err\n}\n\nfunc (s VCS_sync_Results) HasDiff() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_sync_Results) SetDiff(v Diff) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewDiff sets the diff field to a newly\n// allocated Diff struct, preferring placement in s's segment.\nfunc (s VCS_sync_Results) NewDiff() (Diff, error) {\n\tss, err := NewDiff(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Diff{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// VCS_sync_Results_List is a list of VCS_sync_Results.\ntype VCS_sync_Results_List struct{ capnp.List }\n\n// NewVCS_sync_Results creates a new list of VCS_sync_Results.\nfunc NewVCS_sync_Results_List(s *capnp.Segment, sz int32) (VCS_sync_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_sync_Results_List{l}, err\n}\n\nfunc (s VCS_sync_Results_List) At(i int) VCS_sync_Results { return VCS_sync_Results{s.List.Struct(i)} }\n\nfunc (s VCS_sync_Results_List) Set(i int, v VCS_sync_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_sync_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xfa04b4272d0ffcd9, s.List)\n\treturn str\n}\n\n// VCS_sync_Results_Promise is a wrapper for a VCS_sync_Results promised by a client call.\ntype VCS_sync_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_sync_Results_Promise) Struct() (VCS_sync_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_sync_Results{s}, err\n}\n\nfunc (p VCS_sync_Results_Promise) Diff() Diff_Promise {\n\treturn Diff_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype VCS_fetch_Params struct{ capnp.Struct }\n\n// VCS_fetch_Params_TypeID is the unique identifier for the type VCS_fetch_Params.\nconst VCS_fetch_Params_TypeID = 0xaff62edfdbfe53d0\n\nfunc NewVCS_fetch_Params(s *capnp.Segment) (VCS_fetch_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_fetch_Params{st}, err\n}\n\nfunc NewRootVCS_fetch_Params(s *capnp.Segment) (VCS_fetch_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_fetch_Params{st}, err\n}\n\nfunc ReadRootVCS_fetch_Params(msg *capnp.Message) (VCS_fetch_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_fetch_Params{root.Struct()}, err\n}\n\nfunc (s VCS_fetch_Params) String() string {\n\tstr, _ := text.Marshal(0xaff62edfdbfe53d0, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_fetch_Params) Who() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_fetch_Params) HasWho() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_fetch_Params) WhoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_fetch_Params) SetWho(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// VCS_fetch_Params_List is a list of VCS_fetch_Params.\ntype VCS_fetch_Params_List struct{ capnp.List }\n\n// NewVCS_fetch_Params creates a new list of VCS_fetch_Params.\nfunc NewVCS_fetch_Params_List(s *capnp.Segment, sz int32) (VCS_fetch_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_fetch_Params_List{l}, err\n}\n\nfunc (s VCS_fetch_Params_List) At(i int) VCS_fetch_Params { return VCS_fetch_Params{s.List.Struct(i)} }\n\nfunc (s VCS_fetch_Params_List) Set(i int, v VCS_fetch_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_fetch_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xaff62edfdbfe53d0, s.List)\n\treturn str\n}\n\n// VCS_fetch_Params_Promise is a wrapper for a VCS_fetch_Params promised by a client call.\ntype VCS_fetch_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_fetch_Params_Promise) Struct() (VCS_fetch_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_fetch_Params{s}, err\n}\n\ntype VCS_fetch_Results struct{ capnp.Struct }\n\n// VCS_fetch_Results_TypeID is the unique identifier for the type VCS_fetch_Results.\nconst VCS_fetch_Results_TypeID = 0xb262e0d6c2474d9c\n\nfunc NewVCS_fetch_Results(s *capnp.Segment) (VCS_fetch_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_fetch_Results{st}, err\n}\n\nfunc NewRootVCS_fetch_Results(s *capnp.Segment) (VCS_fetch_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn VCS_fetch_Results{st}, err\n}\n\nfunc ReadRootVCS_fetch_Results(msg *capnp.Message) (VCS_fetch_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_fetch_Results{root.Struct()}, err\n}\n\nfunc (s VCS_fetch_Results) String() string {\n\tstr, _ := text.Marshal(0xb262e0d6c2474d9c, s.Struct)\n\treturn str\n}\n\n// VCS_fetch_Results_List is a list of VCS_fetch_Results.\ntype VCS_fetch_Results_List struct{ capnp.List }\n\n// NewVCS_fetch_Results creates a new list of VCS_fetch_Results.\nfunc NewVCS_fetch_Results_List(s *capnp.Segment, sz int32) (VCS_fetch_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn VCS_fetch_Results_List{l}, err\n}\n\nfunc (s VCS_fetch_Results_List) At(i int) VCS_fetch_Results {\n\treturn VCS_fetch_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_fetch_Results_List) Set(i int, v VCS_fetch_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_fetch_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb262e0d6c2474d9c, s.List)\n\treturn str\n}\n\n// VCS_fetch_Results_Promise is a wrapper for a VCS_fetch_Results promised by a client call.\ntype VCS_fetch_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_fetch_Results_Promise) Struct() (VCS_fetch_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_fetch_Results{s}, err\n}\n\ntype VCS_commitInfo_Params struct{ capnp.Struct }\n\n// VCS_commitInfo_Params_TypeID is the unique identifier for the type VCS_commitInfo_Params.\nconst VCS_commitInfo_Params_TypeID = 0xa630576401b1a5b7\n\nfunc NewVCS_commitInfo_Params(s *capnp.Segment) (VCS_commitInfo_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_commitInfo_Params{st}, err\n}\n\nfunc NewRootVCS_commitInfo_Params(s *capnp.Segment) (VCS_commitInfo_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn VCS_commitInfo_Params{st}, err\n}\n\nfunc ReadRootVCS_commitInfo_Params(msg *capnp.Message) (VCS_commitInfo_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_commitInfo_Params{root.Struct()}, err\n}\n\nfunc (s VCS_commitInfo_Params) String() string {\n\tstr, _ := text.Marshal(0xa630576401b1a5b7, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_commitInfo_Params) Rev() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s VCS_commitInfo_Params) HasRev() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_commitInfo_Params) RevBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s VCS_commitInfo_Params) SetRev(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// VCS_commitInfo_Params_List is a list of VCS_commitInfo_Params.\ntype VCS_commitInfo_Params_List struct{ capnp.List }\n\n// NewVCS_commitInfo_Params creates a new list of VCS_commitInfo_Params.\nfunc NewVCS_commitInfo_Params_List(s *capnp.Segment, sz int32) (VCS_commitInfo_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn VCS_commitInfo_Params_List{l}, err\n}\n\nfunc (s VCS_commitInfo_Params_List) At(i int) VCS_commitInfo_Params {\n\treturn VCS_commitInfo_Params{s.List.Struct(i)}\n}\n\nfunc (s VCS_commitInfo_Params_List) Set(i int, v VCS_commitInfo_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_commitInfo_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xa630576401b1a5b7, s.List)\n\treturn str\n}\n\n// VCS_commitInfo_Params_Promise is a wrapper for a VCS_commitInfo_Params promised by a client call.\ntype VCS_commitInfo_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_commitInfo_Params_Promise) Struct() (VCS_commitInfo_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_commitInfo_Params{s}, err\n}\n\ntype VCS_commitInfo_Results struct{ capnp.Struct }\n\n// VCS_commitInfo_Results_TypeID is the unique identifier for the type VCS_commitInfo_Results.\nconst VCS_commitInfo_Results_TypeID = 0xa1a9e5ab638eed79\n\nfunc NewVCS_commitInfo_Results(s *capnp.Segment) (VCS_commitInfo_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn VCS_commitInfo_Results{st}, err\n}\n\nfunc NewRootVCS_commitInfo_Results(s *capnp.Segment) (VCS_commitInfo_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn VCS_commitInfo_Results{st}, err\n}\n\nfunc ReadRootVCS_commitInfo_Results(msg *capnp.Message) (VCS_commitInfo_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn VCS_commitInfo_Results{root.Struct()}, err\n}\n\nfunc (s VCS_commitInfo_Results) String() string {\n\tstr, _ := text.Marshal(0xa1a9e5ab638eed79, s.Struct)\n\treturn str\n}\n\nfunc (s VCS_commitInfo_Results) IsValidRef() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s VCS_commitInfo_Results) SetIsValidRef(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\nfunc (s VCS_commitInfo_Results) Commit() (Commit, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Commit{Struct: p.Struct()}, err\n}\n\nfunc (s VCS_commitInfo_Results) HasCommit() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s VCS_commitInfo_Results) SetCommit(v Commit) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewCommit sets the commit field to a newly\n// allocated Commit struct, preferring placement in s's segment.\nfunc (s VCS_commitInfo_Results) NewCommit() (Commit, error) {\n\tss, err := NewCommit(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Commit{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// VCS_commitInfo_Results_List is a list of VCS_commitInfo_Results.\ntype VCS_commitInfo_Results_List struct{ capnp.List }\n\n// NewVCS_commitInfo_Results creates a new list of VCS_commitInfo_Results.\nfunc NewVCS_commitInfo_Results_List(s *capnp.Segment, sz int32) (VCS_commitInfo_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn VCS_commitInfo_Results_List{l}, err\n}\n\nfunc (s VCS_commitInfo_Results_List) At(i int) VCS_commitInfo_Results {\n\treturn VCS_commitInfo_Results{s.List.Struct(i)}\n}\n\nfunc (s VCS_commitInfo_Results_List) Set(i int, v VCS_commitInfo_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s VCS_commitInfo_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa1a9e5ab638eed79, s.List)\n\treturn str\n}\n\n// VCS_commitInfo_Results_Promise is a wrapper for a VCS_commitInfo_Results promised by a client call.\ntype VCS_commitInfo_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p VCS_commitInfo_Results_Promise) Struct() (VCS_commitInfo_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn VCS_commitInfo_Results{s}, err\n}\n\nfunc (p VCS_commitInfo_Results_Promise) Commit() Commit_Promise {\n\treturn Commit_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Repo struct{ Client capnp.Client }\n\n// Repo_TypeID is the unique identifier for the type Repo.\nconst Repo_TypeID = 0xa862cd929f7af191\n\nfunc (c Repo) Quit(ctx context.Context, params func(Repo_quit_Params) error, opts ...capnp.CallOption) Repo_quit_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_quit_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"quit\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_quit_Params{Struct: s}) }\n\t}\n\treturn Repo_quit_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) Ping(ctx context.Context, params func(Repo_ping_Params) error, opts ...capnp.CallOption) Repo_ping_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_ping_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_ping_Params{Struct: s}) }\n\t}\n\treturn Repo_ping_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) Mount(ctx context.Context, params func(Repo_mount_Params) error, opts ...capnp.CallOption) Repo_mount_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_mount_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"mount\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_mount_Params{Struct: s}) }\n\t}\n\treturn Repo_mount_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) Unmount(ctx context.Context, params func(Repo_unmount_Params) error, opts ...capnp.CallOption) Repo_unmount_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_unmount_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"unmount\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_unmount_Params{Struct: s}) }\n\t}\n\treturn Repo_unmount_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) ConfigGet(ctx context.Context, params func(Repo_configGet_Params) error, opts ...capnp.CallOption) Repo_configGet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configGet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configGet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configGet_Params{Struct: s}) }\n\t}\n\treturn Repo_configGet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) ConfigSet(ctx context.Context, params func(Repo_configSet_Params) error, opts ...capnp.CallOption) Repo_configSet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configSet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configSet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configSet_Params{Struct: s}) }\n\t}\n\treturn Repo_configSet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) ConfigAll(ctx context.Context, params func(Repo_configAll_Params) error, opts ...capnp.CallOption) Repo_configAll_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configAll_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configAll\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configAll_Params{Struct: s}) }\n\t}\n\treturn Repo_configAll_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) ConfigDoc(ctx context.Context, params func(Repo_configDoc_Params) error, opts ...capnp.CallOption) Repo_configDoc_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configDoc_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configDoc\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configDoc_Params{Struct: s}) }\n\t}\n\treturn Repo_configDoc_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) Become(ctx context.Context, params func(Repo_become_Params) error, opts ...capnp.CallOption) Repo_become_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_become_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"become\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_become_Params{Struct: s}) }\n\t}\n\treturn Repo_become_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) FstabAdd(ctx context.Context, params func(Repo_fstabAdd_Params) error, opts ...capnp.CallOption) Repo_fstabAdd_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabAdd_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabAdd\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 3}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabAdd_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabAdd_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) FstabRemove(ctx context.Context, params func(Repo_fstabRemove_Params) error, opts ...capnp.CallOption) Repo_fstabRemove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabRemove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabRemove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabRemove_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabRemove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) FstabApply(ctx context.Context, params func(Repo_fstabApply_Params) error, opts ...capnp.CallOption) Repo_fstabApply_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabApply_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabApply\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabApply_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabApply_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) FstabList(ctx context.Context, params func(Repo_fstabList_Params) error, opts ...capnp.CallOption) Repo_fstabList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabList_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) FstabUnmountAll(ctx context.Context, params func(Repo_fstabUnmountAll_Params) error, opts ...capnp.CallOption) Repo_fstabUnmountAll_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabUnmountAll_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabUnmountAll\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabUnmountAll_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabUnmountAll_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) Version(ctx context.Context, params func(Repo_version_Params) error, opts ...capnp.CallOption) Repo_version_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_version_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_version_Params{Struct: s}) }\n\t}\n\treturn Repo_version_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) GatewayUserAdd(ctx context.Context, params func(Repo_gatewayUserAdd_Params) error, opts ...capnp.CallOption) Repo_gatewayUserAdd_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserAdd_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserAdd\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 4}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserAdd_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserAdd_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) GatewayUserRm(ctx context.Context, params func(Repo_gatewayUserRm_Params) error, opts ...capnp.CallOption) Repo_gatewayUserRm_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserRm_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserRm\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserRm_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserRm_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) GatewayUserList(ctx context.Context, params func(Repo_gatewayUserList_Params) error, opts ...capnp.CallOption) Repo_gatewayUserList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserList_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) DebugProfilePort(ctx context.Context, params func(Repo_debugProfilePort_Params) error, opts ...capnp.CallOption) Repo_debugProfilePort_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_debugProfilePort_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"debugProfilePort\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_debugProfilePort_Params{Struct: s}) }\n\t}\n\treturn Repo_debugProfilePort_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) HintSet(ctx context.Context, params func(Repo_hintSet_Params) error, opts ...capnp.CallOption) Repo_hintSet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintSet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintSet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintSet_Params{Struct: s}) }\n\t}\n\treturn Repo_hintSet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) HintRemove(ctx context.Context, params func(Repo_hintRemove_Params) error, opts ...capnp.CallOption) Repo_hintRemove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintRemove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      20,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintRemove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintRemove_Params{Struct: s}) }\n\t}\n\treturn Repo_hintRemove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Repo) HintList(ctx context.Context, params func(Repo_hintList_Params) error, opts ...capnp.CallOption) Repo_hintList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      21,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintList_Params{Struct: s}) }\n\t}\n\treturn Repo_hintList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype Repo_Server interface {\n\tQuit(Repo_quit) error\n\n\tPing(Repo_ping) error\n\n\tMount(Repo_mount) error\n\n\tUnmount(Repo_unmount) error\n\n\tConfigGet(Repo_configGet) error\n\n\tConfigSet(Repo_configSet) error\n\n\tConfigAll(Repo_configAll) error\n\n\tConfigDoc(Repo_configDoc) error\n\n\tBecome(Repo_become) error\n\n\tFstabAdd(Repo_fstabAdd) error\n\n\tFstabRemove(Repo_fstabRemove) error\n\n\tFstabApply(Repo_fstabApply) error\n\n\tFstabList(Repo_fstabList) error\n\n\tFstabUnmountAll(Repo_fstabUnmountAll) error\n\n\tVersion(Repo_version) error\n\n\tGatewayUserAdd(Repo_gatewayUserAdd) error\n\n\tGatewayUserRm(Repo_gatewayUserRm) error\n\n\tGatewayUserList(Repo_gatewayUserList) error\n\n\tDebugProfilePort(Repo_debugProfilePort) error\n\n\tHintSet(Repo_hintSet) error\n\n\tHintRemove(Repo_hintRemove) error\n\n\tHintList(Repo_hintList) error\n}\n\nfunc Repo_ServerToClient(s Repo_Server) Repo {\n\tc, _ := s.(server.Closer)\n\treturn Repo{Client: server.New(Repo_Methods(nil, s), c)}\n}\n\nfunc Repo_Methods(methods []server.Method, s Repo_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 22)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"quit\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_quit{c, opts, Repo_quit_Params{Struct: p}, Repo_quit_Results{Struct: r}}\n\t\t\treturn s.Quit(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_ping{c, opts, Repo_ping_Params{Struct: p}, Repo_ping_Results{Struct: r}}\n\t\t\treturn s.Ping(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"mount\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_mount{c, opts, Repo_mount_Params{Struct: p}, Repo_mount_Results{Struct: r}}\n\t\t\treturn s.Mount(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"unmount\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_unmount{c, opts, Repo_unmount_Params{Struct: p}, Repo_unmount_Results{Struct: r}}\n\t\t\treturn s.Unmount(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configGet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configGet{c, opts, Repo_configGet_Params{Struct: p}, Repo_configGet_Results{Struct: r}}\n\t\t\treturn s.ConfigGet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configSet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configSet{c, opts, Repo_configSet_Params{Struct: p}, Repo_configSet_Results{Struct: r}}\n\t\t\treturn s.ConfigSet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configAll\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configAll{c, opts, Repo_configAll_Params{Struct: p}, Repo_configAll_Results{Struct: r}}\n\t\t\treturn s.ConfigAll(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configDoc\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configDoc{c, opts, Repo_configDoc_Params{Struct: p}, Repo_configDoc_Results{Struct: r}}\n\t\t\treturn s.ConfigDoc(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"become\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_become{c, opts, Repo_become_Params{Struct: p}, Repo_become_Results{Struct: r}}\n\t\t\treturn s.Become(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabAdd\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabAdd{c, opts, Repo_fstabAdd_Params{Struct: p}, Repo_fstabAdd_Results{Struct: r}}\n\t\t\treturn s.FstabAdd(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabRemove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabRemove{c, opts, Repo_fstabRemove_Params{Struct: p}, Repo_fstabRemove_Results{Struct: r}}\n\t\t\treturn s.FstabRemove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabApply\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabApply{c, opts, Repo_fstabApply_Params{Struct: p}, Repo_fstabApply_Results{Struct: r}}\n\t\t\treturn s.FstabApply(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabList{c, opts, Repo_fstabList_Params{Struct: p}, Repo_fstabList_Results{Struct: r}}\n\t\t\treturn s.FstabList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabUnmountAll\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabUnmountAll{c, opts, Repo_fstabUnmountAll_Params{Struct: p}, Repo_fstabUnmountAll_Results{Struct: r}}\n\t\t\treturn s.FstabUnmountAll(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_version{c, opts, Repo_version_Params{Struct: p}, Repo_version_Results{Struct: r}}\n\t\t\treturn s.Version(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserAdd\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserAdd{c, opts, Repo_gatewayUserAdd_Params{Struct: p}, Repo_gatewayUserAdd_Results{Struct: r}}\n\t\t\treturn s.GatewayUserAdd(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserRm\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserRm{c, opts, Repo_gatewayUserRm_Params{Struct: p}, Repo_gatewayUserRm_Results{Struct: r}}\n\t\t\treturn s.GatewayUserRm(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserList{c, opts, Repo_gatewayUserList_Params{Struct: p}, Repo_gatewayUserList_Results{Struct: r}}\n\t\t\treturn s.GatewayUserList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"debugProfilePort\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_debugProfilePort{c, opts, Repo_debugProfilePort_Params{Struct: p}, Repo_debugProfilePort_Results{Struct: r}}\n\t\t\treturn s.DebugProfilePort(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintSet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintSet{c, opts, Repo_hintSet_Params{Struct: p}, Repo_hintSet_Results{Struct: r}}\n\t\t\treturn s.HintSet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      20,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintRemove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintRemove{c, opts, Repo_hintRemove_Params{Struct: p}, Repo_hintRemove_Results{Struct: r}}\n\t\t\treturn s.HintRemove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      21,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintList{c, opts, Repo_hintList_Params{Struct: p}, Repo_hintList_Results{Struct: r}}\n\t\t\treturn s.HintList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\treturn methods\n}\n\n// Repo_quit holds the arguments for a server call to Repo.quit.\ntype Repo_quit struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_quit_Params\n\tResults Repo_quit_Results\n}\n\n// Repo_ping holds the arguments for a server call to Repo.ping.\ntype Repo_ping struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_ping_Params\n\tResults Repo_ping_Results\n}\n\n// Repo_mount holds the arguments for a server call to Repo.mount.\ntype Repo_mount struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_mount_Params\n\tResults Repo_mount_Results\n}\n\n// Repo_unmount holds the arguments for a server call to Repo.unmount.\ntype Repo_unmount struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_unmount_Params\n\tResults Repo_unmount_Results\n}\n\n// Repo_configGet holds the arguments for a server call to Repo.configGet.\ntype Repo_configGet struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_configGet_Params\n\tResults Repo_configGet_Results\n}\n\n// Repo_configSet holds the arguments for a server call to Repo.configSet.\ntype Repo_configSet struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_configSet_Params\n\tResults Repo_configSet_Results\n}\n\n// Repo_configAll holds the arguments for a server call to Repo.configAll.\ntype Repo_configAll struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_configAll_Params\n\tResults Repo_configAll_Results\n}\n\n// Repo_configDoc holds the arguments for a server call to Repo.configDoc.\ntype Repo_configDoc struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_configDoc_Params\n\tResults Repo_configDoc_Results\n}\n\n// Repo_become holds the arguments for a server call to Repo.become.\ntype Repo_become struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_become_Params\n\tResults Repo_become_Results\n}\n\n// Repo_fstabAdd holds the arguments for a server call to Repo.fstabAdd.\ntype Repo_fstabAdd struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_fstabAdd_Params\n\tResults Repo_fstabAdd_Results\n}\n\n// Repo_fstabRemove holds the arguments for a server call to Repo.fstabRemove.\ntype Repo_fstabRemove struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_fstabRemove_Params\n\tResults Repo_fstabRemove_Results\n}\n\n// Repo_fstabApply holds the arguments for a server call to Repo.fstabApply.\ntype Repo_fstabApply struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_fstabApply_Params\n\tResults Repo_fstabApply_Results\n}\n\n// Repo_fstabList holds the arguments for a server call to Repo.fstabList.\ntype Repo_fstabList struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_fstabList_Params\n\tResults Repo_fstabList_Results\n}\n\n// Repo_fstabUnmountAll holds the arguments for a server call to Repo.fstabUnmountAll.\ntype Repo_fstabUnmountAll struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_fstabUnmountAll_Params\n\tResults Repo_fstabUnmountAll_Results\n}\n\n// Repo_version holds the arguments for a server call to Repo.version.\ntype Repo_version struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_version_Params\n\tResults Repo_version_Results\n}\n\n// Repo_gatewayUserAdd holds the arguments for a server call to Repo.gatewayUserAdd.\ntype Repo_gatewayUserAdd struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_gatewayUserAdd_Params\n\tResults Repo_gatewayUserAdd_Results\n}\n\n// Repo_gatewayUserRm holds the arguments for a server call to Repo.gatewayUserRm.\ntype Repo_gatewayUserRm struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_gatewayUserRm_Params\n\tResults Repo_gatewayUserRm_Results\n}\n\n// Repo_gatewayUserList holds the arguments for a server call to Repo.gatewayUserList.\ntype Repo_gatewayUserList struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_gatewayUserList_Params\n\tResults Repo_gatewayUserList_Results\n}\n\n// Repo_debugProfilePort holds the arguments for a server call to Repo.debugProfilePort.\ntype Repo_debugProfilePort struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_debugProfilePort_Params\n\tResults Repo_debugProfilePort_Results\n}\n\n// Repo_hintSet holds the arguments for a server call to Repo.hintSet.\ntype Repo_hintSet struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_hintSet_Params\n\tResults Repo_hintSet_Results\n}\n\n// Repo_hintRemove holds the arguments for a server call to Repo.hintRemove.\ntype Repo_hintRemove struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_hintRemove_Params\n\tResults Repo_hintRemove_Results\n}\n\n// Repo_hintList holds the arguments for a server call to Repo.hintList.\ntype Repo_hintList struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Repo_hintList_Params\n\tResults Repo_hintList_Results\n}\n\ntype Repo_quit_Params struct{ capnp.Struct }\n\n// Repo_quit_Params_TypeID is the unique identifier for the type Repo_quit_Params.\nconst Repo_quit_Params_TypeID = 0xaa98a78425cdd321\n\nfunc NewRepo_quit_Params(s *capnp.Segment) (Repo_quit_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_quit_Params{st}, err\n}\n\nfunc NewRootRepo_quit_Params(s *capnp.Segment) (Repo_quit_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_quit_Params{st}, err\n}\n\nfunc ReadRootRepo_quit_Params(msg *capnp.Message) (Repo_quit_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_quit_Params{root.Struct()}, err\n}\n\nfunc (s Repo_quit_Params) String() string {\n\tstr, _ := text.Marshal(0xaa98a78425cdd321, s.Struct)\n\treturn str\n}\n\n// Repo_quit_Params_List is a list of Repo_quit_Params.\ntype Repo_quit_Params_List struct{ capnp.List }\n\n// NewRepo_quit_Params creates a new list of Repo_quit_Params.\nfunc NewRepo_quit_Params_List(s *capnp.Segment, sz int32) (Repo_quit_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_quit_Params_List{l}, err\n}\n\nfunc (s Repo_quit_Params_List) At(i int) Repo_quit_Params { return Repo_quit_Params{s.List.Struct(i)} }\n\nfunc (s Repo_quit_Params_List) Set(i int, v Repo_quit_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_quit_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xaa98a78425cdd321, s.List)\n\treturn str\n}\n\n// Repo_quit_Params_Promise is a wrapper for a Repo_quit_Params promised by a client call.\ntype Repo_quit_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_quit_Params_Promise) Struct() (Repo_quit_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_quit_Params{s}, err\n}\n\ntype Repo_quit_Results struct{ capnp.Struct }\n\n// Repo_quit_Results_TypeID is the unique identifier for the type Repo_quit_Results.\nconst Repo_quit_Results_TypeID = 0x860c3dd5698349f5\n\nfunc NewRepo_quit_Results(s *capnp.Segment) (Repo_quit_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_quit_Results{st}, err\n}\n\nfunc NewRootRepo_quit_Results(s *capnp.Segment) (Repo_quit_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_quit_Results{st}, err\n}\n\nfunc ReadRootRepo_quit_Results(msg *capnp.Message) (Repo_quit_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_quit_Results{root.Struct()}, err\n}\n\nfunc (s Repo_quit_Results) String() string {\n\tstr, _ := text.Marshal(0x860c3dd5698349f5, s.Struct)\n\treturn str\n}\n\n// Repo_quit_Results_List is a list of Repo_quit_Results.\ntype Repo_quit_Results_List struct{ capnp.List }\n\n// NewRepo_quit_Results creates a new list of Repo_quit_Results.\nfunc NewRepo_quit_Results_List(s *capnp.Segment, sz int32) (Repo_quit_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_quit_Results_List{l}, err\n}\n\nfunc (s Repo_quit_Results_List) At(i int) Repo_quit_Results {\n\treturn Repo_quit_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_quit_Results_List) Set(i int, v Repo_quit_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_quit_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x860c3dd5698349f5, s.List)\n\treturn str\n}\n\n// Repo_quit_Results_Promise is a wrapper for a Repo_quit_Results promised by a client call.\ntype Repo_quit_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_quit_Results_Promise) Struct() (Repo_quit_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_quit_Results{s}, err\n}\n\ntype Repo_ping_Params struct{ capnp.Struct }\n\n// Repo_ping_Params_TypeID is the unique identifier for the type Repo_ping_Params.\nconst Repo_ping_Params_TypeID = 0x978c524c1a35015c\n\nfunc NewRepo_ping_Params(s *capnp.Segment) (Repo_ping_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_ping_Params{st}, err\n}\n\nfunc NewRootRepo_ping_Params(s *capnp.Segment) (Repo_ping_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_ping_Params{st}, err\n}\n\nfunc ReadRootRepo_ping_Params(msg *capnp.Message) (Repo_ping_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_ping_Params{root.Struct()}, err\n}\n\nfunc (s Repo_ping_Params) String() string {\n\tstr, _ := text.Marshal(0x978c524c1a35015c, s.Struct)\n\treturn str\n}\n\n// Repo_ping_Params_List is a list of Repo_ping_Params.\ntype Repo_ping_Params_List struct{ capnp.List }\n\n// NewRepo_ping_Params creates a new list of Repo_ping_Params.\nfunc NewRepo_ping_Params_List(s *capnp.Segment, sz int32) (Repo_ping_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_ping_Params_List{l}, err\n}\n\nfunc (s Repo_ping_Params_List) At(i int) Repo_ping_Params { return Repo_ping_Params{s.List.Struct(i)} }\n\nfunc (s Repo_ping_Params_List) Set(i int, v Repo_ping_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_ping_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x978c524c1a35015c, s.List)\n\treturn str\n}\n\n// Repo_ping_Params_Promise is a wrapper for a Repo_ping_Params promised by a client call.\ntype Repo_ping_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_ping_Params_Promise) Struct() (Repo_ping_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_ping_Params{s}, err\n}\n\ntype Repo_ping_Results struct{ capnp.Struct }\n\n// Repo_ping_Results_TypeID is the unique identifier for the type Repo_ping_Results.\nconst Repo_ping_Results_TypeID = 0x9d64fa17798952ff\n\nfunc NewRepo_ping_Results(s *capnp.Segment) (Repo_ping_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_ping_Results{st}, err\n}\n\nfunc NewRootRepo_ping_Results(s *capnp.Segment) (Repo_ping_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_ping_Results{st}, err\n}\n\nfunc ReadRootRepo_ping_Results(msg *capnp.Message) (Repo_ping_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_ping_Results{root.Struct()}, err\n}\n\nfunc (s Repo_ping_Results) String() string {\n\tstr, _ := text.Marshal(0x9d64fa17798952ff, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_ping_Results) Reply() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_ping_Results) HasReply() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_ping_Results) ReplyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_ping_Results) SetReply(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_ping_Results_List is a list of Repo_ping_Results.\ntype Repo_ping_Results_List struct{ capnp.List }\n\n// NewRepo_ping_Results creates a new list of Repo_ping_Results.\nfunc NewRepo_ping_Results_List(s *capnp.Segment, sz int32) (Repo_ping_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_ping_Results_List{l}, err\n}\n\nfunc (s Repo_ping_Results_List) At(i int) Repo_ping_Results {\n\treturn Repo_ping_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_ping_Results_List) Set(i int, v Repo_ping_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_ping_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9d64fa17798952ff, s.List)\n\treturn str\n}\n\n// Repo_ping_Results_Promise is a wrapper for a Repo_ping_Results promised by a client call.\ntype Repo_ping_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_ping_Results_Promise) Struct() (Repo_ping_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_ping_Results{s}, err\n}\n\ntype Repo_mount_Params struct{ capnp.Struct }\n\n// Repo_mount_Params_TypeID is the unique identifier for the type Repo_mount_Params.\nconst Repo_mount_Params_TypeID = 0x9c19777f493f1110\n\nfunc NewRepo_mount_Params(s *capnp.Segment) (Repo_mount_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_mount_Params{st}, err\n}\n\nfunc NewRootRepo_mount_Params(s *capnp.Segment) (Repo_mount_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_mount_Params{st}, err\n}\n\nfunc ReadRootRepo_mount_Params(msg *capnp.Message) (Repo_mount_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_mount_Params{root.Struct()}, err\n}\n\nfunc (s Repo_mount_Params) String() string {\n\tstr, _ := text.Marshal(0x9c19777f493f1110, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_mount_Params) MountPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_mount_Params) HasMountPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_mount_Params) MountPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_mount_Params) SetMountPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Repo_mount_Params) Options() (MountOptions, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn MountOptions{Struct: p.Struct()}, err\n}\n\nfunc (s Repo_mount_Params) HasOptions() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_mount_Params) SetOptions(v MountOptions) error {\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewOptions sets the options field to a newly\n// allocated MountOptions struct, preferring placement in s's segment.\nfunc (s Repo_mount_Params) NewOptions() (MountOptions, error) {\n\tss, err := NewMountOptions(s.Struct.Segment())\n\tif err != nil {\n\t\treturn MountOptions{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Repo_mount_Params_List is a list of Repo_mount_Params.\ntype Repo_mount_Params_List struct{ capnp.List }\n\n// NewRepo_mount_Params creates a new list of Repo_mount_Params.\nfunc NewRepo_mount_Params_List(s *capnp.Segment, sz int32) (Repo_mount_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn Repo_mount_Params_List{l}, err\n}\n\nfunc (s Repo_mount_Params_List) At(i int) Repo_mount_Params {\n\treturn Repo_mount_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_mount_Params_List) Set(i int, v Repo_mount_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_mount_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9c19777f493f1110, s.List)\n\treturn str\n}\n\n// Repo_mount_Params_Promise is a wrapper for a Repo_mount_Params promised by a client call.\ntype Repo_mount_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_mount_Params_Promise) Struct() (Repo_mount_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_mount_Params{s}, err\n}\n\nfunc (p Repo_mount_Params_Promise) Options() MountOptions_Promise {\n\treturn MountOptions_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\ntype Repo_mount_Results struct{ capnp.Struct }\n\n// Repo_mount_Results_TypeID is the unique identifier for the type Repo_mount_Results.\nconst Repo_mount_Results_TypeID = 0xfc6b4417fdef895a\n\nfunc NewRepo_mount_Results(s *capnp.Segment) (Repo_mount_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_mount_Results{st}, err\n}\n\nfunc NewRootRepo_mount_Results(s *capnp.Segment) (Repo_mount_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_mount_Results{st}, err\n}\n\nfunc ReadRootRepo_mount_Results(msg *capnp.Message) (Repo_mount_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_mount_Results{root.Struct()}, err\n}\n\nfunc (s Repo_mount_Results) String() string {\n\tstr, _ := text.Marshal(0xfc6b4417fdef895a, s.Struct)\n\treturn str\n}\n\n// Repo_mount_Results_List is a list of Repo_mount_Results.\ntype Repo_mount_Results_List struct{ capnp.List }\n\n// NewRepo_mount_Results creates a new list of Repo_mount_Results.\nfunc NewRepo_mount_Results_List(s *capnp.Segment, sz int32) (Repo_mount_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_mount_Results_List{l}, err\n}\n\nfunc (s Repo_mount_Results_List) At(i int) Repo_mount_Results {\n\treturn Repo_mount_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_mount_Results_List) Set(i int, v Repo_mount_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_mount_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xfc6b4417fdef895a, s.List)\n\treturn str\n}\n\n// Repo_mount_Results_Promise is a wrapper for a Repo_mount_Results promised by a client call.\ntype Repo_mount_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_mount_Results_Promise) Struct() (Repo_mount_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_mount_Results{s}, err\n}\n\ntype Repo_unmount_Params struct{ capnp.Struct }\n\n// Repo_unmount_Params_TypeID is the unique identifier for the type Repo_unmount_Params.\nconst Repo_unmount_Params_TypeID = 0x98300b93ef71cc57\n\nfunc NewRepo_unmount_Params(s *capnp.Segment) (Repo_unmount_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_unmount_Params{st}, err\n}\n\nfunc NewRootRepo_unmount_Params(s *capnp.Segment) (Repo_unmount_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_unmount_Params{st}, err\n}\n\nfunc ReadRootRepo_unmount_Params(msg *capnp.Message) (Repo_unmount_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_unmount_Params{root.Struct()}, err\n}\n\nfunc (s Repo_unmount_Params) String() string {\n\tstr, _ := text.Marshal(0x98300b93ef71cc57, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_unmount_Params) MountPath() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_unmount_Params) HasMountPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_unmount_Params) MountPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_unmount_Params) SetMountPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_unmount_Params_List is a list of Repo_unmount_Params.\ntype Repo_unmount_Params_List struct{ capnp.List }\n\n// NewRepo_unmount_Params creates a new list of Repo_unmount_Params.\nfunc NewRepo_unmount_Params_List(s *capnp.Segment, sz int32) (Repo_unmount_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_unmount_Params_List{l}, err\n}\n\nfunc (s Repo_unmount_Params_List) At(i int) Repo_unmount_Params {\n\treturn Repo_unmount_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_unmount_Params_List) Set(i int, v Repo_unmount_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_unmount_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x98300b93ef71cc57, s.List)\n\treturn str\n}\n\n// Repo_unmount_Params_Promise is a wrapper for a Repo_unmount_Params promised by a client call.\ntype Repo_unmount_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_unmount_Params_Promise) Struct() (Repo_unmount_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_unmount_Params{s}, err\n}\n\ntype Repo_unmount_Results struct{ capnp.Struct }\n\n// Repo_unmount_Results_TypeID is the unique identifier for the type Repo_unmount_Results.\nconst Repo_unmount_Results_TypeID = 0xfa4486fa9522275e\n\nfunc NewRepo_unmount_Results(s *capnp.Segment) (Repo_unmount_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_unmount_Results{st}, err\n}\n\nfunc NewRootRepo_unmount_Results(s *capnp.Segment) (Repo_unmount_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_unmount_Results{st}, err\n}\n\nfunc ReadRootRepo_unmount_Results(msg *capnp.Message) (Repo_unmount_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_unmount_Results{root.Struct()}, err\n}\n\nfunc (s Repo_unmount_Results) String() string {\n\tstr, _ := text.Marshal(0xfa4486fa9522275e, s.Struct)\n\treturn str\n}\n\n// Repo_unmount_Results_List is a list of Repo_unmount_Results.\ntype Repo_unmount_Results_List struct{ capnp.List }\n\n// NewRepo_unmount_Results creates a new list of Repo_unmount_Results.\nfunc NewRepo_unmount_Results_List(s *capnp.Segment, sz int32) (Repo_unmount_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_unmount_Results_List{l}, err\n}\n\nfunc (s Repo_unmount_Results_List) At(i int) Repo_unmount_Results {\n\treturn Repo_unmount_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_unmount_Results_List) Set(i int, v Repo_unmount_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_unmount_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xfa4486fa9522275e, s.List)\n\treturn str\n}\n\n// Repo_unmount_Results_Promise is a wrapper for a Repo_unmount_Results promised by a client call.\ntype Repo_unmount_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_unmount_Results_Promise) Struct() (Repo_unmount_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_unmount_Results{s}, err\n}\n\ntype Repo_configGet_Params struct{ capnp.Struct }\n\n// Repo_configGet_Params_TypeID is the unique identifier for the type Repo_configGet_Params.\nconst Repo_configGet_Params_TypeID = 0xd7a7f00d5a96fc43\n\nfunc NewRepo_configGet_Params(s *capnp.Segment) (Repo_configGet_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configGet_Params{st}, err\n}\n\nfunc NewRootRepo_configGet_Params(s *capnp.Segment) (Repo_configGet_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configGet_Params{st}, err\n}\n\nfunc ReadRootRepo_configGet_Params(msg *capnp.Message) (Repo_configGet_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configGet_Params{root.Struct()}, err\n}\n\nfunc (s Repo_configGet_Params) String() string {\n\tstr, _ := text.Marshal(0xd7a7f00d5a96fc43, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configGet_Params) Key() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_configGet_Params) HasKey() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configGet_Params) KeyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_configGet_Params) SetKey(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_configGet_Params_List is a list of Repo_configGet_Params.\ntype Repo_configGet_Params_List struct{ capnp.List }\n\n// NewRepo_configGet_Params creates a new list of Repo_configGet_Params.\nfunc NewRepo_configGet_Params_List(s *capnp.Segment, sz int32) (Repo_configGet_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_configGet_Params_List{l}, err\n}\n\nfunc (s Repo_configGet_Params_List) At(i int) Repo_configGet_Params {\n\treturn Repo_configGet_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_configGet_Params_List) Set(i int, v Repo_configGet_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configGet_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd7a7f00d5a96fc43, s.List)\n\treturn str\n}\n\n// Repo_configGet_Params_Promise is a wrapper for a Repo_configGet_Params promised by a client call.\ntype Repo_configGet_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configGet_Params_Promise) Struct() (Repo_configGet_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configGet_Params{s}, err\n}\n\ntype Repo_configGet_Results struct{ capnp.Struct }\n\n// Repo_configGet_Results_TypeID is the unique identifier for the type Repo_configGet_Results.\nconst Repo_configGet_Results_TypeID = 0xd70c154f9521b73d\n\nfunc NewRepo_configGet_Results(s *capnp.Segment) (Repo_configGet_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configGet_Results{st}, err\n}\n\nfunc NewRootRepo_configGet_Results(s *capnp.Segment) (Repo_configGet_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configGet_Results{st}, err\n}\n\nfunc ReadRootRepo_configGet_Results(msg *capnp.Message) (Repo_configGet_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configGet_Results{root.Struct()}, err\n}\n\nfunc (s Repo_configGet_Results) String() string {\n\tstr, _ := text.Marshal(0xd70c154f9521b73d, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configGet_Results) Value() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_configGet_Results) HasValue() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configGet_Results) ValueBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_configGet_Results) SetValue(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_configGet_Results_List is a list of Repo_configGet_Results.\ntype Repo_configGet_Results_List struct{ capnp.List }\n\n// NewRepo_configGet_Results creates a new list of Repo_configGet_Results.\nfunc NewRepo_configGet_Results_List(s *capnp.Segment, sz int32) (Repo_configGet_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_configGet_Results_List{l}, err\n}\n\nfunc (s Repo_configGet_Results_List) At(i int) Repo_configGet_Results {\n\treturn Repo_configGet_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_configGet_Results_List) Set(i int, v Repo_configGet_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configGet_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd70c154f9521b73d, s.List)\n\treturn str\n}\n\n// Repo_configGet_Results_Promise is a wrapper for a Repo_configGet_Results promised by a client call.\ntype Repo_configGet_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configGet_Results_Promise) Struct() (Repo_configGet_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configGet_Results{s}, err\n}\n\ntype Repo_configSet_Params struct{ capnp.Struct }\n\n// Repo_configSet_Params_TypeID is the unique identifier for the type Repo_configSet_Params.\nconst Repo_configSet_Params_TypeID = 0xe0b1a560d0e4d51a\n\nfunc NewRepo_configSet_Params(s *capnp.Segment) (Repo_configSet_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_configSet_Params{st}, err\n}\n\nfunc NewRootRepo_configSet_Params(s *capnp.Segment) (Repo_configSet_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_configSet_Params{st}, err\n}\n\nfunc ReadRootRepo_configSet_Params(msg *capnp.Message) (Repo_configSet_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configSet_Params{root.Struct()}, err\n}\n\nfunc (s Repo_configSet_Params) String() string {\n\tstr, _ := text.Marshal(0xe0b1a560d0e4d51a, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configSet_Params) Key() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_configSet_Params) HasKey() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configSet_Params) KeyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_configSet_Params) SetKey(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Repo_configSet_Params) Value() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_configSet_Params) HasValue() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configSet_Params) ValueBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_configSet_Params) SetValue(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// Repo_configSet_Params_List is a list of Repo_configSet_Params.\ntype Repo_configSet_Params_List struct{ capnp.List }\n\n// NewRepo_configSet_Params creates a new list of Repo_configSet_Params.\nfunc NewRepo_configSet_Params_List(s *capnp.Segment, sz int32) (Repo_configSet_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn Repo_configSet_Params_List{l}, err\n}\n\nfunc (s Repo_configSet_Params_List) At(i int) Repo_configSet_Params {\n\treturn Repo_configSet_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_configSet_Params_List) Set(i int, v Repo_configSet_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configSet_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe0b1a560d0e4d51a, s.List)\n\treturn str\n}\n\n// Repo_configSet_Params_Promise is a wrapper for a Repo_configSet_Params promised by a client call.\ntype Repo_configSet_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configSet_Params_Promise) Struct() (Repo_configSet_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configSet_Params{s}, err\n}\n\ntype Repo_configSet_Results struct{ capnp.Struct }\n\n// Repo_configSet_Results_TypeID is the unique identifier for the type Repo_configSet_Results.\nconst Repo_configSet_Results_TypeID = 0xabc3ec90b96a6d71\n\nfunc NewRepo_configSet_Results(s *capnp.Segment) (Repo_configSet_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_configSet_Results{st}, err\n}\n\nfunc NewRootRepo_configSet_Results(s *capnp.Segment) (Repo_configSet_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_configSet_Results{st}, err\n}\n\nfunc ReadRootRepo_configSet_Results(msg *capnp.Message) (Repo_configSet_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configSet_Results{root.Struct()}, err\n}\n\nfunc (s Repo_configSet_Results) String() string {\n\tstr, _ := text.Marshal(0xabc3ec90b96a6d71, s.Struct)\n\treturn str\n}\n\n// Repo_configSet_Results_List is a list of Repo_configSet_Results.\ntype Repo_configSet_Results_List struct{ capnp.List }\n\n// NewRepo_configSet_Results creates a new list of Repo_configSet_Results.\nfunc NewRepo_configSet_Results_List(s *capnp.Segment, sz int32) (Repo_configSet_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_configSet_Results_List{l}, err\n}\n\nfunc (s Repo_configSet_Results_List) At(i int) Repo_configSet_Results {\n\treturn Repo_configSet_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_configSet_Results_List) Set(i int, v Repo_configSet_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configSet_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xabc3ec90b96a6d71, s.List)\n\treturn str\n}\n\n// Repo_configSet_Results_Promise is a wrapper for a Repo_configSet_Results promised by a client call.\ntype Repo_configSet_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configSet_Results_Promise) Struct() (Repo_configSet_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configSet_Results{s}, err\n}\n\ntype Repo_configAll_Params struct{ capnp.Struct }\n\n// Repo_configAll_Params_TypeID is the unique identifier for the type Repo_configAll_Params.\nconst Repo_configAll_Params_TypeID = 0xc0ad53271497ab77\n\nfunc NewRepo_configAll_Params(s *capnp.Segment) (Repo_configAll_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_configAll_Params{st}, err\n}\n\nfunc NewRootRepo_configAll_Params(s *capnp.Segment) (Repo_configAll_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_configAll_Params{st}, err\n}\n\nfunc ReadRootRepo_configAll_Params(msg *capnp.Message) (Repo_configAll_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configAll_Params{root.Struct()}, err\n}\n\nfunc (s Repo_configAll_Params) String() string {\n\tstr, _ := text.Marshal(0xc0ad53271497ab77, s.Struct)\n\treturn str\n}\n\n// Repo_configAll_Params_List is a list of Repo_configAll_Params.\ntype Repo_configAll_Params_List struct{ capnp.List }\n\n// NewRepo_configAll_Params creates a new list of Repo_configAll_Params.\nfunc NewRepo_configAll_Params_List(s *capnp.Segment, sz int32) (Repo_configAll_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_configAll_Params_List{l}, err\n}\n\nfunc (s Repo_configAll_Params_List) At(i int) Repo_configAll_Params {\n\treturn Repo_configAll_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_configAll_Params_List) Set(i int, v Repo_configAll_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configAll_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc0ad53271497ab77, s.List)\n\treturn str\n}\n\n// Repo_configAll_Params_Promise is a wrapper for a Repo_configAll_Params promised by a client call.\ntype Repo_configAll_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configAll_Params_Promise) Struct() (Repo_configAll_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configAll_Params{s}, err\n}\n\ntype Repo_configAll_Results struct{ capnp.Struct }\n\n// Repo_configAll_Results_TypeID is the unique identifier for the type Repo_configAll_Results.\nconst Repo_configAll_Results_TypeID = 0xa89254a0db970716\n\nfunc NewRepo_configAll_Results(s *capnp.Segment) (Repo_configAll_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configAll_Results{st}, err\n}\n\nfunc NewRootRepo_configAll_Results(s *capnp.Segment) (Repo_configAll_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configAll_Results{st}, err\n}\n\nfunc ReadRootRepo_configAll_Results(msg *capnp.Message) (Repo_configAll_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configAll_Results{root.Struct()}, err\n}\n\nfunc (s Repo_configAll_Results) String() string {\n\tstr, _ := text.Marshal(0xa89254a0db970716, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configAll_Results) All() (ConfigEntry_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn ConfigEntry_List{List: p.List()}, err\n}\n\nfunc (s Repo_configAll_Results) HasAll() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configAll_Results) SetAll(v ConfigEntry_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewAll sets the all field to a newly\n// allocated ConfigEntry_List, preferring placement in s's segment.\nfunc (s Repo_configAll_Results) NewAll(n int32) (ConfigEntry_List, error) {\n\tl, err := NewConfigEntry_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn ConfigEntry_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Repo_configAll_Results_List is a list of Repo_configAll_Results.\ntype Repo_configAll_Results_List struct{ capnp.List }\n\n// NewRepo_configAll_Results creates a new list of Repo_configAll_Results.\nfunc NewRepo_configAll_Results_List(s *capnp.Segment, sz int32) (Repo_configAll_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_configAll_Results_List{l}, err\n}\n\nfunc (s Repo_configAll_Results_List) At(i int) Repo_configAll_Results {\n\treturn Repo_configAll_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_configAll_Results_List) Set(i int, v Repo_configAll_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configAll_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa89254a0db970716, s.List)\n\treturn str\n}\n\n// Repo_configAll_Results_Promise is a wrapper for a Repo_configAll_Results promised by a client call.\ntype Repo_configAll_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configAll_Results_Promise) Struct() (Repo_configAll_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configAll_Results{s}, err\n}\n\ntype Repo_configDoc_Params struct{ capnp.Struct }\n\n// Repo_configDoc_Params_TypeID is the unique identifier for the type Repo_configDoc_Params.\nconst Repo_configDoc_Params_TypeID = 0xbebae5caecad3c49\n\nfunc NewRepo_configDoc_Params(s *capnp.Segment) (Repo_configDoc_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configDoc_Params{st}, err\n}\n\nfunc NewRootRepo_configDoc_Params(s *capnp.Segment) (Repo_configDoc_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configDoc_Params{st}, err\n}\n\nfunc ReadRootRepo_configDoc_Params(msg *capnp.Message) (Repo_configDoc_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configDoc_Params{root.Struct()}, err\n}\n\nfunc (s Repo_configDoc_Params) String() string {\n\tstr, _ := text.Marshal(0xbebae5caecad3c49, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configDoc_Params) Key() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_configDoc_Params) HasKey() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configDoc_Params) KeyBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_configDoc_Params) SetKey(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_configDoc_Params_List is a list of Repo_configDoc_Params.\ntype Repo_configDoc_Params_List struct{ capnp.List }\n\n// NewRepo_configDoc_Params creates a new list of Repo_configDoc_Params.\nfunc NewRepo_configDoc_Params_List(s *capnp.Segment, sz int32) (Repo_configDoc_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_configDoc_Params_List{l}, err\n}\n\nfunc (s Repo_configDoc_Params_List) At(i int) Repo_configDoc_Params {\n\treturn Repo_configDoc_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_configDoc_Params_List) Set(i int, v Repo_configDoc_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configDoc_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xbebae5caecad3c49, s.List)\n\treturn str\n}\n\n// Repo_configDoc_Params_Promise is a wrapper for a Repo_configDoc_Params promised by a client call.\ntype Repo_configDoc_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configDoc_Params_Promise) Struct() (Repo_configDoc_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configDoc_Params{s}, err\n}\n\ntype Repo_configDoc_Results struct{ capnp.Struct }\n\n// Repo_configDoc_Results_TypeID is the unique identifier for the type Repo_configDoc_Results.\nconst Repo_configDoc_Results_TypeID = 0xacf50d40a9d3436a\n\nfunc NewRepo_configDoc_Results(s *capnp.Segment) (Repo_configDoc_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configDoc_Results{st}, err\n}\n\nfunc NewRootRepo_configDoc_Results(s *capnp.Segment) (Repo_configDoc_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_configDoc_Results{st}, err\n}\n\nfunc ReadRootRepo_configDoc_Results(msg *capnp.Message) (Repo_configDoc_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_configDoc_Results{root.Struct()}, err\n}\n\nfunc (s Repo_configDoc_Results) String() string {\n\tstr, _ := text.Marshal(0xacf50d40a9d3436a, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_configDoc_Results) Desc() (ConfigEntry, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn ConfigEntry{Struct: p.Struct()}, err\n}\n\nfunc (s Repo_configDoc_Results) HasDesc() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_configDoc_Results) SetDesc(v ConfigEntry) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewDesc sets the desc field to a newly\n// allocated ConfigEntry struct, preferring placement in s's segment.\nfunc (s Repo_configDoc_Results) NewDesc() (ConfigEntry, error) {\n\tss, err := NewConfigEntry(s.Struct.Segment())\n\tif err != nil {\n\t\treturn ConfigEntry{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Repo_configDoc_Results_List is a list of Repo_configDoc_Results.\ntype Repo_configDoc_Results_List struct{ capnp.List }\n\n// NewRepo_configDoc_Results creates a new list of Repo_configDoc_Results.\nfunc NewRepo_configDoc_Results_List(s *capnp.Segment, sz int32) (Repo_configDoc_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_configDoc_Results_List{l}, err\n}\n\nfunc (s Repo_configDoc_Results_List) At(i int) Repo_configDoc_Results {\n\treturn Repo_configDoc_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_configDoc_Results_List) Set(i int, v Repo_configDoc_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_configDoc_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xacf50d40a9d3436a, s.List)\n\treturn str\n}\n\n// Repo_configDoc_Results_Promise is a wrapper for a Repo_configDoc_Results promised by a client call.\ntype Repo_configDoc_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_configDoc_Results_Promise) Struct() (Repo_configDoc_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_configDoc_Results{s}, err\n}\n\nfunc (p Repo_configDoc_Results_Promise) Desc() ConfigEntry_Promise {\n\treturn ConfigEntry_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Repo_become_Params struct{ capnp.Struct }\n\n// Repo_become_Params_TypeID is the unique identifier for the type Repo_become_Params.\nconst Repo_become_Params_TypeID = 0x9b96e8c9be077989\n\nfunc NewRepo_become_Params(s *capnp.Segment) (Repo_become_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_become_Params{st}, err\n}\n\nfunc NewRootRepo_become_Params(s *capnp.Segment) (Repo_become_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_become_Params{st}, err\n}\n\nfunc ReadRootRepo_become_Params(msg *capnp.Message) (Repo_become_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_become_Params{root.Struct()}, err\n}\n\nfunc (s Repo_become_Params) String() string {\n\tstr, _ := text.Marshal(0x9b96e8c9be077989, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_become_Params) Who() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_become_Params) HasWho() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_become_Params) WhoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_become_Params) SetWho(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_become_Params_List is a list of Repo_become_Params.\ntype Repo_become_Params_List struct{ capnp.List }\n\n// NewRepo_become_Params creates a new list of Repo_become_Params.\nfunc NewRepo_become_Params_List(s *capnp.Segment, sz int32) (Repo_become_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_become_Params_List{l}, err\n}\n\nfunc (s Repo_become_Params_List) At(i int) Repo_become_Params {\n\treturn Repo_become_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_become_Params_List) Set(i int, v Repo_become_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_become_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x9b96e8c9be077989, s.List)\n\treturn str\n}\n\n// Repo_become_Params_Promise is a wrapper for a Repo_become_Params promised by a client call.\ntype Repo_become_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_become_Params_Promise) Struct() (Repo_become_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_become_Params{s}, err\n}\n\ntype Repo_become_Results struct{ capnp.Struct }\n\n// Repo_become_Results_TypeID is the unique identifier for the type Repo_become_Results.\nconst Repo_become_Results_TypeID = 0xa34213f24153536b\n\nfunc NewRepo_become_Results(s *capnp.Segment) (Repo_become_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_become_Results{st}, err\n}\n\nfunc NewRootRepo_become_Results(s *capnp.Segment) (Repo_become_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_become_Results{st}, err\n}\n\nfunc ReadRootRepo_become_Results(msg *capnp.Message) (Repo_become_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_become_Results{root.Struct()}, err\n}\n\nfunc (s Repo_become_Results) String() string {\n\tstr, _ := text.Marshal(0xa34213f24153536b, s.Struct)\n\treturn str\n}\n\n// Repo_become_Results_List is a list of Repo_become_Results.\ntype Repo_become_Results_List struct{ capnp.List }\n\n// NewRepo_become_Results creates a new list of Repo_become_Results.\nfunc NewRepo_become_Results_List(s *capnp.Segment, sz int32) (Repo_become_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_become_Results_List{l}, err\n}\n\nfunc (s Repo_become_Results_List) At(i int) Repo_become_Results {\n\treturn Repo_become_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_become_Results_List) Set(i int, v Repo_become_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_become_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa34213f24153536b, s.List)\n\treturn str\n}\n\n// Repo_become_Results_Promise is a wrapper for a Repo_become_Results promised by a client call.\ntype Repo_become_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_become_Results_Promise) Struct() (Repo_become_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_become_Results{s}, err\n}\n\ntype Repo_fstabAdd_Params struct{ capnp.Struct }\n\n// Repo_fstabAdd_Params_TypeID is the unique identifier for the type Repo_fstabAdd_Params.\nconst Repo_fstabAdd_Params_TypeID = 0xe75c9c74c2bacb82\n\nfunc NewRepo_fstabAdd_Params(s *capnp.Segment) (Repo_fstabAdd_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn Repo_fstabAdd_Params{st}, err\n}\n\nfunc NewRootRepo_fstabAdd_Params(s *capnp.Segment) (Repo_fstabAdd_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})\n\treturn Repo_fstabAdd_Params{st}, err\n}\n\nfunc ReadRootRepo_fstabAdd_Params(msg *capnp.Message) (Repo_fstabAdd_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabAdd_Params{root.Struct()}, err\n}\n\nfunc (s Repo_fstabAdd_Params) String() string {\n\tstr, _ := text.Marshal(0xe75c9c74c2bacb82, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_fstabAdd_Params) MountName() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_fstabAdd_Params) HasMountName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_fstabAdd_Params) MountNameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_fstabAdd_Params) SetMountName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Repo_fstabAdd_Params) MountPath() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_fstabAdd_Params) HasMountPath() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_fstabAdd_Params) MountPathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_fstabAdd_Params) SetMountPath(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Repo_fstabAdd_Params) Options() (MountOptions, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn MountOptions{Struct: p.Struct()}, err\n}\n\nfunc (s Repo_fstabAdd_Params) HasOptions() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_fstabAdd_Params) SetOptions(v MountOptions) error {\n\treturn s.Struct.SetPtr(2, v.Struct.ToPtr())\n}\n\n// NewOptions sets the options field to a newly\n// allocated MountOptions struct, preferring placement in s's segment.\nfunc (s Repo_fstabAdd_Params) NewOptions() (MountOptions, error) {\n\tss, err := NewMountOptions(s.Struct.Segment())\n\tif err != nil {\n\t\treturn MountOptions{}, err\n\t}\n\terr = s.Struct.SetPtr(2, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Repo_fstabAdd_Params_List is a list of Repo_fstabAdd_Params.\ntype Repo_fstabAdd_Params_List struct{ capnp.List }\n\n// NewRepo_fstabAdd_Params creates a new list of Repo_fstabAdd_Params.\nfunc NewRepo_fstabAdd_Params_List(s *capnp.Segment, sz int32) (Repo_fstabAdd_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3}, sz)\n\treturn Repo_fstabAdd_Params_List{l}, err\n}\n\nfunc (s Repo_fstabAdd_Params_List) At(i int) Repo_fstabAdd_Params {\n\treturn Repo_fstabAdd_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabAdd_Params_List) Set(i int, v Repo_fstabAdd_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabAdd_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe75c9c74c2bacb82, s.List)\n\treturn str\n}\n\n// Repo_fstabAdd_Params_Promise is a wrapper for a Repo_fstabAdd_Params promised by a client call.\ntype Repo_fstabAdd_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabAdd_Params_Promise) Struct() (Repo_fstabAdd_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabAdd_Params{s}, err\n}\n\nfunc (p Repo_fstabAdd_Params_Promise) Options() MountOptions_Promise {\n\treturn MountOptions_Promise{Pipeline: p.Pipeline.GetPipeline(2)}\n}\n\ntype Repo_fstabAdd_Results struct{ capnp.Struct }\n\n// Repo_fstabAdd_Results_TypeID is the unique identifier for the type Repo_fstabAdd_Results.\nconst Repo_fstabAdd_Results_TypeID = 0xeadaf2b11fded490\n\nfunc NewRepo_fstabAdd_Results(s *capnp.Segment) (Repo_fstabAdd_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabAdd_Results{st}, err\n}\n\nfunc NewRootRepo_fstabAdd_Results(s *capnp.Segment) (Repo_fstabAdd_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabAdd_Results{st}, err\n}\n\nfunc ReadRootRepo_fstabAdd_Results(msg *capnp.Message) (Repo_fstabAdd_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabAdd_Results{root.Struct()}, err\n}\n\nfunc (s Repo_fstabAdd_Results) String() string {\n\tstr, _ := text.Marshal(0xeadaf2b11fded490, s.Struct)\n\treturn str\n}\n\n// Repo_fstabAdd_Results_List is a list of Repo_fstabAdd_Results.\ntype Repo_fstabAdd_Results_List struct{ capnp.List }\n\n// NewRepo_fstabAdd_Results creates a new list of Repo_fstabAdd_Results.\nfunc NewRepo_fstabAdd_Results_List(s *capnp.Segment, sz int32) (Repo_fstabAdd_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabAdd_Results_List{l}, err\n}\n\nfunc (s Repo_fstabAdd_Results_List) At(i int) Repo_fstabAdd_Results {\n\treturn Repo_fstabAdd_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabAdd_Results_List) Set(i int, v Repo_fstabAdd_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabAdd_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xeadaf2b11fded490, s.List)\n\treturn str\n}\n\n// Repo_fstabAdd_Results_Promise is a wrapper for a Repo_fstabAdd_Results promised by a client call.\ntype Repo_fstabAdd_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabAdd_Results_Promise) Struct() (Repo_fstabAdd_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabAdd_Results{s}, err\n}\n\ntype Repo_fstabRemove_Params struct{ capnp.Struct }\n\n// Repo_fstabRemove_Params_TypeID is the unique identifier for the type Repo_fstabRemove_Params.\nconst Repo_fstabRemove_Params_TypeID = 0xd1afceb8146949d4\n\nfunc NewRepo_fstabRemove_Params(s *capnp.Segment) (Repo_fstabRemove_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_fstabRemove_Params{st}, err\n}\n\nfunc NewRootRepo_fstabRemove_Params(s *capnp.Segment) (Repo_fstabRemove_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_fstabRemove_Params{st}, err\n}\n\nfunc ReadRootRepo_fstabRemove_Params(msg *capnp.Message) (Repo_fstabRemove_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabRemove_Params{root.Struct()}, err\n}\n\nfunc (s Repo_fstabRemove_Params) String() string {\n\tstr, _ := text.Marshal(0xd1afceb8146949d4, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_fstabRemove_Params) MountName() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_fstabRemove_Params) HasMountName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_fstabRemove_Params) MountNameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_fstabRemove_Params) SetMountName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_fstabRemove_Params_List is a list of Repo_fstabRemove_Params.\ntype Repo_fstabRemove_Params_List struct{ capnp.List }\n\n// NewRepo_fstabRemove_Params creates a new list of Repo_fstabRemove_Params.\nfunc NewRepo_fstabRemove_Params_List(s *capnp.Segment, sz int32) (Repo_fstabRemove_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_fstabRemove_Params_List{l}, err\n}\n\nfunc (s Repo_fstabRemove_Params_List) At(i int) Repo_fstabRemove_Params {\n\treturn Repo_fstabRemove_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabRemove_Params_List) Set(i int, v Repo_fstabRemove_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabRemove_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd1afceb8146949d4, s.List)\n\treturn str\n}\n\n// Repo_fstabRemove_Params_Promise is a wrapper for a Repo_fstabRemove_Params promised by a client call.\ntype Repo_fstabRemove_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabRemove_Params_Promise) Struct() (Repo_fstabRemove_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabRemove_Params{s}, err\n}\n\ntype Repo_fstabRemove_Results struct{ capnp.Struct }\n\n// Repo_fstabRemove_Results_TypeID is the unique identifier for the type Repo_fstabRemove_Results.\nconst Repo_fstabRemove_Results_TypeID = 0xbb83332a93ffdcad\n\nfunc NewRepo_fstabRemove_Results(s *capnp.Segment) (Repo_fstabRemove_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabRemove_Results{st}, err\n}\n\nfunc NewRootRepo_fstabRemove_Results(s *capnp.Segment) (Repo_fstabRemove_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabRemove_Results{st}, err\n}\n\nfunc ReadRootRepo_fstabRemove_Results(msg *capnp.Message) (Repo_fstabRemove_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabRemove_Results{root.Struct()}, err\n}\n\nfunc (s Repo_fstabRemove_Results) String() string {\n\tstr, _ := text.Marshal(0xbb83332a93ffdcad, s.Struct)\n\treturn str\n}\n\n// Repo_fstabRemove_Results_List is a list of Repo_fstabRemove_Results.\ntype Repo_fstabRemove_Results_List struct{ capnp.List }\n\n// NewRepo_fstabRemove_Results creates a new list of Repo_fstabRemove_Results.\nfunc NewRepo_fstabRemove_Results_List(s *capnp.Segment, sz int32) (Repo_fstabRemove_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabRemove_Results_List{l}, err\n}\n\nfunc (s Repo_fstabRemove_Results_List) At(i int) Repo_fstabRemove_Results {\n\treturn Repo_fstabRemove_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabRemove_Results_List) Set(i int, v Repo_fstabRemove_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabRemove_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbb83332a93ffdcad, s.List)\n\treturn str\n}\n\n// Repo_fstabRemove_Results_Promise is a wrapper for a Repo_fstabRemove_Results promised by a client call.\ntype Repo_fstabRemove_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabRemove_Results_Promise) Struct() (Repo_fstabRemove_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabRemove_Results{s}, err\n}\n\ntype Repo_fstabApply_Params struct{ capnp.Struct }\n\n// Repo_fstabApply_Params_TypeID is the unique identifier for the type Repo_fstabApply_Params.\nconst Repo_fstabApply_Params_TypeID = 0x86d95afae10f0893\n\nfunc NewRepo_fstabApply_Params(s *capnp.Segment) (Repo_fstabApply_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabApply_Params{st}, err\n}\n\nfunc NewRootRepo_fstabApply_Params(s *capnp.Segment) (Repo_fstabApply_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabApply_Params{st}, err\n}\n\nfunc ReadRootRepo_fstabApply_Params(msg *capnp.Message) (Repo_fstabApply_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabApply_Params{root.Struct()}, err\n}\n\nfunc (s Repo_fstabApply_Params) String() string {\n\tstr, _ := text.Marshal(0x86d95afae10f0893, s.Struct)\n\treturn str\n}\n\n// Repo_fstabApply_Params_List is a list of Repo_fstabApply_Params.\ntype Repo_fstabApply_Params_List struct{ capnp.List }\n\n// NewRepo_fstabApply_Params creates a new list of Repo_fstabApply_Params.\nfunc NewRepo_fstabApply_Params_List(s *capnp.Segment, sz int32) (Repo_fstabApply_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabApply_Params_List{l}, err\n}\n\nfunc (s Repo_fstabApply_Params_List) At(i int) Repo_fstabApply_Params {\n\treturn Repo_fstabApply_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabApply_Params_List) Set(i int, v Repo_fstabApply_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabApply_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x86d95afae10f0893, s.List)\n\treturn str\n}\n\n// Repo_fstabApply_Params_Promise is a wrapper for a Repo_fstabApply_Params promised by a client call.\ntype Repo_fstabApply_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabApply_Params_Promise) Struct() (Repo_fstabApply_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabApply_Params{s}, err\n}\n\ntype Repo_fstabApply_Results struct{ capnp.Struct }\n\n// Repo_fstabApply_Results_TypeID is the unique identifier for the type Repo_fstabApply_Results.\nconst Repo_fstabApply_Results_TypeID = 0xc3fcefc580775485\n\nfunc NewRepo_fstabApply_Results(s *capnp.Segment) (Repo_fstabApply_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabApply_Results{st}, err\n}\n\nfunc NewRootRepo_fstabApply_Results(s *capnp.Segment) (Repo_fstabApply_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabApply_Results{st}, err\n}\n\nfunc ReadRootRepo_fstabApply_Results(msg *capnp.Message) (Repo_fstabApply_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabApply_Results{root.Struct()}, err\n}\n\nfunc (s Repo_fstabApply_Results) String() string {\n\tstr, _ := text.Marshal(0xc3fcefc580775485, s.Struct)\n\treturn str\n}\n\n// Repo_fstabApply_Results_List is a list of Repo_fstabApply_Results.\ntype Repo_fstabApply_Results_List struct{ capnp.List }\n\n// NewRepo_fstabApply_Results creates a new list of Repo_fstabApply_Results.\nfunc NewRepo_fstabApply_Results_List(s *capnp.Segment, sz int32) (Repo_fstabApply_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabApply_Results_List{l}, err\n}\n\nfunc (s Repo_fstabApply_Results_List) At(i int) Repo_fstabApply_Results {\n\treturn Repo_fstabApply_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabApply_Results_List) Set(i int, v Repo_fstabApply_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabApply_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xc3fcefc580775485, s.List)\n\treturn str\n}\n\n// Repo_fstabApply_Results_Promise is a wrapper for a Repo_fstabApply_Results promised by a client call.\ntype Repo_fstabApply_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabApply_Results_Promise) Struct() (Repo_fstabApply_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabApply_Results{s}, err\n}\n\ntype Repo_fstabList_Params struct{ capnp.Struct }\n\n// Repo_fstabList_Params_TypeID is the unique identifier for the type Repo_fstabList_Params.\nconst Repo_fstabList_Params_TypeID = 0xc7e5f661ac57ebb2\n\nfunc NewRepo_fstabList_Params(s *capnp.Segment) (Repo_fstabList_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabList_Params{st}, err\n}\n\nfunc NewRootRepo_fstabList_Params(s *capnp.Segment) (Repo_fstabList_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabList_Params{st}, err\n}\n\nfunc ReadRootRepo_fstabList_Params(msg *capnp.Message) (Repo_fstabList_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabList_Params{root.Struct()}, err\n}\n\nfunc (s Repo_fstabList_Params) String() string {\n\tstr, _ := text.Marshal(0xc7e5f661ac57ebb2, s.Struct)\n\treturn str\n}\n\n// Repo_fstabList_Params_List is a list of Repo_fstabList_Params.\ntype Repo_fstabList_Params_List struct{ capnp.List }\n\n// NewRepo_fstabList_Params creates a new list of Repo_fstabList_Params.\nfunc NewRepo_fstabList_Params_List(s *capnp.Segment, sz int32) (Repo_fstabList_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabList_Params_List{l}, err\n}\n\nfunc (s Repo_fstabList_Params_List) At(i int) Repo_fstabList_Params {\n\treturn Repo_fstabList_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabList_Params_List) Set(i int, v Repo_fstabList_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabList_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc7e5f661ac57ebb2, s.List)\n\treturn str\n}\n\n// Repo_fstabList_Params_Promise is a wrapper for a Repo_fstabList_Params promised by a client call.\ntype Repo_fstabList_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabList_Params_Promise) Struct() (Repo_fstabList_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabList_Params{s}, err\n}\n\ntype Repo_fstabList_Results struct{ capnp.Struct }\n\n// Repo_fstabList_Results_TypeID is the unique identifier for the type Repo_fstabList_Results.\nconst Repo_fstabList_Results_TypeID = 0xb5bf271ecf3bc074\n\nfunc NewRepo_fstabList_Results(s *capnp.Segment) (Repo_fstabList_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_fstabList_Results{st}, err\n}\n\nfunc NewRootRepo_fstabList_Results(s *capnp.Segment) (Repo_fstabList_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_fstabList_Results{st}, err\n}\n\nfunc ReadRootRepo_fstabList_Results(msg *capnp.Message) (Repo_fstabList_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabList_Results{root.Struct()}, err\n}\n\nfunc (s Repo_fstabList_Results) String() string {\n\tstr, _ := text.Marshal(0xb5bf271ecf3bc074, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_fstabList_Results) Mounts() (FsTabEntry_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn FsTabEntry_List{List: p.List()}, err\n}\n\nfunc (s Repo_fstabList_Results) HasMounts() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_fstabList_Results) SetMounts(v FsTabEntry_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewMounts sets the mounts field to a newly\n// allocated FsTabEntry_List, preferring placement in s's segment.\nfunc (s Repo_fstabList_Results) NewMounts(n int32) (FsTabEntry_List, error) {\n\tl, err := NewFsTabEntry_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn FsTabEntry_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Repo_fstabList_Results_List is a list of Repo_fstabList_Results.\ntype Repo_fstabList_Results_List struct{ capnp.List }\n\n// NewRepo_fstabList_Results creates a new list of Repo_fstabList_Results.\nfunc NewRepo_fstabList_Results_List(s *capnp.Segment, sz int32) (Repo_fstabList_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_fstabList_Results_List{l}, err\n}\n\nfunc (s Repo_fstabList_Results_List) At(i int) Repo_fstabList_Results {\n\treturn Repo_fstabList_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabList_Results_List) Set(i int, v Repo_fstabList_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabList_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb5bf271ecf3bc074, s.List)\n\treturn str\n}\n\n// Repo_fstabList_Results_Promise is a wrapper for a Repo_fstabList_Results promised by a client call.\ntype Repo_fstabList_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabList_Results_Promise) Struct() (Repo_fstabList_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabList_Results{s}, err\n}\n\ntype Repo_fstabUnmountAll_Params struct{ capnp.Struct }\n\n// Repo_fstabUnmountAll_Params_TypeID is the unique identifier for the type Repo_fstabUnmountAll_Params.\nconst Repo_fstabUnmountAll_Params_TypeID = 0xd7315a3b3f92aa4a\n\nfunc NewRepo_fstabUnmountAll_Params(s *capnp.Segment) (Repo_fstabUnmountAll_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabUnmountAll_Params{st}, err\n}\n\nfunc NewRootRepo_fstabUnmountAll_Params(s *capnp.Segment) (Repo_fstabUnmountAll_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabUnmountAll_Params{st}, err\n}\n\nfunc ReadRootRepo_fstabUnmountAll_Params(msg *capnp.Message) (Repo_fstabUnmountAll_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabUnmountAll_Params{root.Struct()}, err\n}\n\nfunc (s Repo_fstabUnmountAll_Params) String() string {\n\tstr, _ := text.Marshal(0xd7315a3b3f92aa4a, s.Struct)\n\treturn str\n}\n\n// Repo_fstabUnmountAll_Params_List is a list of Repo_fstabUnmountAll_Params.\ntype Repo_fstabUnmountAll_Params_List struct{ capnp.List }\n\n// NewRepo_fstabUnmountAll_Params creates a new list of Repo_fstabUnmountAll_Params.\nfunc NewRepo_fstabUnmountAll_Params_List(s *capnp.Segment, sz int32) (Repo_fstabUnmountAll_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabUnmountAll_Params_List{l}, err\n}\n\nfunc (s Repo_fstabUnmountAll_Params_List) At(i int) Repo_fstabUnmountAll_Params {\n\treturn Repo_fstabUnmountAll_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabUnmountAll_Params_List) Set(i int, v Repo_fstabUnmountAll_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabUnmountAll_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd7315a3b3f92aa4a, s.List)\n\treturn str\n}\n\n// Repo_fstabUnmountAll_Params_Promise is a wrapper for a Repo_fstabUnmountAll_Params promised by a client call.\ntype Repo_fstabUnmountAll_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabUnmountAll_Params_Promise) Struct() (Repo_fstabUnmountAll_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabUnmountAll_Params{s}, err\n}\n\ntype Repo_fstabUnmountAll_Results struct{ capnp.Struct }\n\n// Repo_fstabUnmountAll_Results_TypeID is the unique identifier for the type Repo_fstabUnmountAll_Results.\nconst Repo_fstabUnmountAll_Results_TypeID = 0xc44d12b3aee49f34\n\nfunc NewRepo_fstabUnmountAll_Results(s *capnp.Segment) (Repo_fstabUnmountAll_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabUnmountAll_Results{st}, err\n}\n\nfunc NewRootRepo_fstabUnmountAll_Results(s *capnp.Segment) (Repo_fstabUnmountAll_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_fstabUnmountAll_Results{st}, err\n}\n\nfunc ReadRootRepo_fstabUnmountAll_Results(msg *capnp.Message) (Repo_fstabUnmountAll_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_fstabUnmountAll_Results{root.Struct()}, err\n}\n\nfunc (s Repo_fstabUnmountAll_Results) String() string {\n\tstr, _ := text.Marshal(0xc44d12b3aee49f34, s.Struct)\n\treturn str\n}\n\n// Repo_fstabUnmountAll_Results_List is a list of Repo_fstabUnmountAll_Results.\ntype Repo_fstabUnmountAll_Results_List struct{ capnp.List }\n\n// NewRepo_fstabUnmountAll_Results creates a new list of Repo_fstabUnmountAll_Results.\nfunc NewRepo_fstabUnmountAll_Results_List(s *capnp.Segment, sz int32) (Repo_fstabUnmountAll_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_fstabUnmountAll_Results_List{l}, err\n}\n\nfunc (s Repo_fstabUnmountAll_Results_List) At(i int) Repo_fstabUnmountAll_Results {\n\treturn Repo_fstabUnmountAll_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_fstabUnmountAll_Results_List) Set(i int, v Repo_fstabUnmountAll_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_fstabUnmountAll_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xc44d12b3aee49f34, s.List)\n\treturn str\n}\n\n// Repo_fstabUnmountAll_Results_Promise is a wrapper for a Repo_fstabUnmountAll_Results promised by a client call.\ntype Repo_fstabUnmountAll_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_fstabUnmountAll_Results_Promise) Struct() (Repo_fstabUnmountAll_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_fstabUnmountAll_Results{s}, err\n}\n\ntype Repo_version_Params struct{ capnp.Struct }\n\n// Repo_version_Params_TypeID is the unique identifier for the type Repo_version_Params.\nconst Repo_version_Params_TypeID = 0xbbec523e9fc1abfc\n\nfunc NewRepo_version_Params(s *capnp.Segment) (Repo_version_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_version_Params{st}, err\n}\n\nfunc NewRootRepo_version_Params(s *capnp.Segment) (Repo_version_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_version_Params{st}, err\n}\n\nfunc ReadRootRepo_version_Params(msg *capnp.Message) (Repo_version_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_version_Params{root.Struct()}, err\n}\n\nfunc (s Repo_version_Params) String() string {\n\tstr, _ := text.Marshal(0xbbec523e9fc1abfc, s.Struct)\n\treturn str\n}\n\n// Repo_version_Params_List is a list of Repo_version_Params.\ntype Repo_version_Params_List struct{ capnp.List }\n\n// NewRepo_version_Params creates a new list of Repo_version_Params.\nfunc NewRepo_version_Params_List(s *capnp.Segment, sz int32) (Repo_version_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_version_Params_List{l}, err\n}\n\nfunc (s Repo_version_Params_List) At(i int) Repo_version_Params {\n\treturn Repo_version_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_version_Params_List) Set(i int, v Repo_version_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_version_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xbbec523e9fc1abfc, s.List)\n\treturn str\n}\n\n// Repo_version_Params_Promise is a wrapper for a Repo_version_Params promised by a client call.\ntype Repo_version_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_version_Params_Promise) Struct() (Repo_version_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_version_Params{s}, err\n}\n\ntype Repo_version_Results struct{ capnp.Struct }\n\n// Repo_version_Results_TypeID is the unique identifier for the type Repo_version_Results.\nconst Repo_version_Results_TypeID = 0x8ae5aae9653b7b02\n\nfunc NewRepo_version_Results(s *capnp.Segment) (Repo_version_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_version_Results{st}, err\n}\n\nfunc NewRootRepo_version_Results(s *capnp.Segment) (Repo_version_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_version_Results{st}, err\n}\n\nfunc ReadRootRepo_version_Results(msg *capnp.Message) (Repo_version_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_version_Results{root.Struct()}, err\n}\n\nfunc (s Repo_version_Results) String() string {\n\tstr, _ := text.Marshal(0x8ae5aae9653b7b02, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_version_Results) Version() (Version, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Version{Struct: p.Struct()}, err\n}\n\nfunc (s Repo_version_Results) HasVersion() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_version_Results) SetVersion(v Version) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewVersion sets the version field to a newly\n// allocated Version struct, preferring placement in s's segment.\nfunc (s Repo_version_Results) NewVersion() (Version, error) {\n\tss, err := NewVersion(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Version{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Repo_version_Results_List is a list of Repo_version_Results.\ntype Repo_version_Results_List struct{ capnp.List }\n\n// NewRepo_version_Results creates a new list of Repo_version_Results.\nfunc NewRepo_version_Results_List(s *capnp.Segment, sz int32) (Repo_version_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_version_Results_List{l}, err\n}\n\nfunc (s Repo_version_Results_List) At(i int) Repo_version_Results {\n\treturn Repo_version_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_version_Results_List) Set(i int, v Repo_version_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_version_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x8ae5aae9653b7b02, s.List)\n\treturn str\n}\n\n// Repo_version_Results_Promise is a wrapper for a Repo_version_Results promised by a client call.\ntype Repo_version_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_version_Results_Promise) Struct() (Repo_version_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_version_Results{s}, err\n}\n\nfunc (p Repo_version_Results_Promise) Version() Version_Promise {\n\treturn Version_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Repo_gatewayUserAdd_Params struct{ capnp.Struct }\n\n// Repo_gatewayUserAdd_Params_TypeID is the unique identifier for the type Repo_gatewayUserAdd_Params.\nconst Repo_gatewayUserAdd_Params_TypeID = 0x98eadc167523156e\n\nfunc NewRepo_gatewayUserAdd_Params(s *capnp.Segment) (Repo_gatewayUserAdd_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Repo_gatewayUserAdd_Params{st}, err\n}\n\nfunc NewRootRepo_gatewayUserAdd_Params(s *capnp.Segment) (Repo_gatewayUserAdd_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4})\n\treturn Repo_gatewayUserAdd_Params{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserAdd_Params(msg *capnp.Message) (Repo_gatewayUserAdd_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserAdd_Params{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) String() string {\n\tstr, _ := text.Marshal(0x98eadc167523156e, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_gatewayUserAdd_Params) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserAdd_Params) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Repo_gatewayUserAdd_Params) Password() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) HasPassword() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserAdd_Params) PasswordBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) SetPassword(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\nfunc (s Repo_gatewayUserAdd_Params) Folders() (capnp.TextList, error) {\n\tp, err := s.Struct.Ptr(2)\n\treturn capnp.TextList{List: p.List()}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) HasFolders() bool {\n\tp, err := s.Struct.Ptr(2)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserAdd_Params) SetFolders(v capnp.TextList) error {\n\treturn s.Struct.SetPtr(2, v.List.ToPtr())\n}\n\n// NewFolders sets the folders field to a newly\n// allocated capnp.TextList, preferring placement in s's segment.\nfunc (s Repo_gatewayUserAdd_Params) NewFolders(n int32) (capnp.TextList, error) {\n\tl, err := capnp.NewTextList(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp.TextList{}, err\n\t}\n\terr = s.Struct.SetPtr(2, l.List.ToPtr())\n\treturn l, err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) Rights() (capnp.TextList, error) {\n\tp, err := s.Struct.Ptr(3)\n\treturn capnp.TextList{List: p.List()}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Params) HasRights() bool {\n\tp, err := s.Struct.Ptr(3)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserAdd_Params) SetRights(v capnp.TextList) error {\n\treturn s.Struct.SetPtr(3, v.List.ToPtr())\n}\n\n// NewRights sets the rights field to a newly\n// allocated capnp.TextList, preferring placement in s's segment.\nfunc (s Repo_gatewayUserAdd_Params) NewRights(n int32) (capnp.TextList, error) {\n\tl, err := capnp.NewTextList(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp.TextList{}, err\n\t}\n\terr = s.Struct.SetPtr(3, l.List.ToPtr())\n\treturn l, err\n}\n\n// Repo_gatewayUserAdd_Params_List is a list of Repo_gatewayUserAdd_Params.\ntype Repo_gatewayUserAdd_Params_List struct{ capnp.List }\n\n// NewRepo_gatewayUserAdd_Params creates a new list of Repo_gatewayUserAdd_Params.\nfunc NewRepo_gatewayUserAdd_Params_List(s *capnp.Segment, sz int32) (Repo_gatewayUserAdd_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 4}, sz)\n\treturn Repo_gatewayUserAdd_Params_List{l}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Params_List) At(i int) Repo_gatewayUserAdd_Params {\n\treturn Repo_gatewayUserAdd_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserAdd_Params_List) Set(i int, v Repo_gatewayUserAdd_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserAdd_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x98eadc167523156e, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserAdd_Params_Promise is a wrapper for a Repo_gatewayUserAdd_Params promised by a client call.\ntype Repo_gatewayUserAdd_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserAdd_Params_Promise) Struct() (Repo_gatewayUserAdd_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserAdd_Params{s}, err\n}\n\ntype Repo_gatewayUserAdd_Results struct{ capnp.Struct }\n\n// Repo_gatewayUserAdd_Results_TypeID is the unique identifier for the type Repo_gatewayUserAdd_Results.\nconst Repo_gatewayUserAdd_Results_TypeID = 0xafe329bc8cad8f74\n\nfunc NewRepo_gatewayUserAdd_Results(s *capnp.Segment) (Repo_gatewayUserAdd_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserAdd_Results{st}, err\n}\n\nfunc NewRootRepo_gatewayUserAdd_Results(s *capnp.Segment) (Repo_gatewayUserAdd_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserAdd_Results{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserAdd_Results(msg *capnp.Message) (Repo_gatewayUserAdd_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserAdd_Results{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Results) String() string {\n\tstr, _ := text.Marshal(0xafe329bc8cad8f74, s.Struct)\n\treturn str\n}\n\n// Repo_gatewayUserAdd_Results_List is a list of Repo_gatewayUserAdd_Results.\ntype Repo_gatewayUserAdd_Results_List struct{ capnp.List }\n\n// NewRepo_gatewayUserAdd_Results creates a new list of Repo_gatewayUserAdd_Results.\nfunc NewRepo_gatewayUserAdd_Results_List(s *capnp.Segment, sz int32) (Repo_gatewayUserAdd_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_gatewayUserAdd_Results_List{l}, err\n}\n\nfunc (s Repo_gatewayUserAdd_Results_List) At(i int) Repo_gatewayUserAdd_Results {\n\treturn Repo_gatewayUserAdd_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserAdd_Results_List) Set(i int, v Repo_gatewayUserAdd_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserAdd_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xafe329bc8cad8f74, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserAdd_Results_Promise is a wrapper for a Repo_gatewayUserAdd_Results promised by a client call.\ntype Repo_gatewayUserAdd_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserAdd_Results_Promise) Struct() (Repo_gatewayUserAdd_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserAdd_Results{s}, err\n}\n\ntype Repo_gatewayUserRm_Params struct{ capnp.Struct }\n\n// Repo_gatewayUserRm_Params_TypeID is the unique identifier for the type Repo_gatewayUserRm_Params.\nconst Repo_gatewayUserRm_Params_TypeID = 0xac8fbc382ae513de\n\nfunc NewRepo_gatewayUserRm_Params(s *capnp.Segment) (Repo_gatewayUserRm_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_gatewayUserRm_Params{st}, err\n}\n\nfunc NewRootRepo_gatewayUserRm_Params(s *capnp.Segment) (Repo_gatewayUserRm_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_gatewayUserRm_Params{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserRm_Params(msg *capnp.Message) (Repo_gatewayUserRm_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserRm_Params{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserRm_Params) String() string {\n\tstr, _ := text.Marshal(0xac8fbc382ae513de, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_gatewayUserRm_Params) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_gatewayUserRm_Params) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserRm_Params) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_gatewayUserRm_Params) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_gatewayUserRm_Params_List is a list of Repo_gatewayUserRm_Params.\ntype Repo_gatewayUserRm_Params_List struct{ capnp.List }\n\n// NewRepo_gatewayUserRm_Params creates a new list of Repo_gatewayUserRm_Params.\nfunc NewRepo_gatewayUserRm_Params_List(s *capnp.Segment, sz int32) (Repo_gatewayUserRm_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_gatewayUserRm_Params_List{l}, err\n}\n\nfunc (s Repo_gatewayUserRm_Params_List) At(i int) Repo_gatewayUserRm_Params {\n\treturn Repo_gatewayUserRm_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserRm_Params_List) Set(i int, v Repo_gatewayUserRm_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserRm_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xac8fbc382ae513de, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserRm_Params_Promise is a wrapper for a Repo_gatewayUserRm_Params promised by a client call.\ntype Repo_gatewayUserRm_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserRm_Params_Promise) Struct() (Repo_gatewayUserRm_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserRm_Params{s}, err\n}\n\ntype Repo_gatewayUserRm_Results struct{ capnp.Struct }\n\n// Repo_gatewayUserRm_Results_TypeID is the unique identifier for the type Repo_gatewayUserRm_Results.\nconst Repo_gatewayUserRm_Results_TypeID = 0x96fe51446ad697f9\n\nfunc NewRepo_gatewayUserRm_Results(s *capnp.Segment) (Repo_gatewayUserRm_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserRm_Results{st}, err\n}\n\nfunc NewRootRepo_gatewayUserRm_Results(s *capnp.Segment) (Repo_gatewayUserRm_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserRm_Results{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserRm_Results(msg *capnp.Message) (Repo_gatewayUserRm_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserRm_Results{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserRm_Results) String() string {\n\tstr, _ := text.Marshal(0x96fe51446ad697f9, s.Struct)\n\treturn str\n}\n\n// Repo_gatewayUserRm_Results_List is a list of Repo_gatewayUserRm_Results.\ntype Repo_gatewayUserRm_Results_List struct{ capnp.List }\n\n// NewRepo_gatewayUserRm_Results creates a new list of Repo_gatewayUserRm_Results.\nfunc NewRepo_gatewayUserRm_Results_List(s *capnp.Segment, sz int32) (Repo_gatewayUserRm_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_gatewayUserRm_Results_List{l}, err\n}\n\nfunc (s Repo_gatewayUserRm_Results_List) At(i int) Repo_gatewayUserRm_Results {\n\treturn Repo_gatewayUserRm_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserRm_Results_List) Set(i int, v Repo_gatewayUserRm_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserRm_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x96fe51446ad697f9, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserRm_Results_Promise is a wrapper for a Repo_gatewayUserRm_Results promised by a client call.\ntype Repo_gatewayUserRm_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserRm_Results_Promise) Struct() (Repo_gatewayUserRm_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserRm_Results{s}, err\n}\n\ntype Repo_gatewayUserList_Params struct{ capnp.Struct }\n\n// Repo_gatewayUserList_Params_TypeID is the unique identifier for the type Repo_gatewayUserList_Params.\nconst Repo_gatewayUserList_Params_TypeID = 0xcbd45f6552b4ba24\n\nfunc NewRepo_gatewayUserList_Params(s *capnp.Segment) (Repo_gatewayUserList_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserList_Params{st}, err\n}\n\nfunc NewRootRepo_gatewayUserList_Params(s *capnp.Segment) (Repo_gatewayUserList_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_gatewayUserList_Params{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserList_Params(msg *capnp.Message) (Repo_gatewayUserList_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserList_Params{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserList_Params) String() string {\n\tstr, _ := text.Marshal(0xcbd45f6552b4ba24, s.Struct)\n\treturn str\n}\n\n// Repo_gatewayUserList_Params_List is a list of Repo_gatewayUserList_Params.\ntype Repo_gatewayUserList_Params_List struct{ capnp.List }\n\n// NewRepo_gatewayUserList_Params creates a new list of Repo_gatewayUserList_Params.\nfunc NewRepo_gatewayUserList_Params_List(s *capnp.Segment, sz int32) (Repo_gatewayUserList_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_gatewayUserList_Params_List{l}, err\n}\n\nfunc (s Repo_gatewayUserList_Params_List) At(i int) Repo_gatewayUserList_Params {\n\treturn Repo_gatewayUserList_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserList_Params_List) Set(i int, v Repo_gatewayUserList_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserList_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xcbd45f6552b4ba24, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserList_Params_Promise is a wrapper for a Repo_gatewayUserList_Params promised by a client call.\ntype Repo_gatewayUserList_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserList_Params_Promise) Struct() (Repo_gatewayUserList_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserList_Params{s}, err\n}\n\ntype Repo_gatewayUserList_Results struct{ capnp.Struct }\n\n// Repo_gatewayUserList_Results_TypeID is the unique identifier for the type Repo_gatewayUserList_Results.\nconst Repo_gatewayUserList_Results_TypeID = 0xbd8d8f80992c4d78\n\nfunc NewRepo_gatewayUserList_Results(s *capnp.Segment) (Repo_gatewayUserList_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_gatewayUserList_Results{st}, err\n}\n\nfunc NewRootRepo_gatewayUserList_Results(s *capnp.Segment) (Repo_gatewayUserList_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_gatewayUserList_Results{st}, err\n}\n\nfunc ReadRootRepo_gatewayUserList_Results(msg *capnp.Message) (Repo_gatewayUserList_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_gatewayUserList_Results{root.Struct()}, err\n}\n\nfunc (s Repo_gatewayUserList_Results) String() string {\n\tstr, _ := text.Marshal(0xbd8d8f80992c4d78, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_gatewayUserList_Results) Users() (capnp2.User_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn capnp2.User_List{List: p.List()}, err\n}\n\nfunc (s Repo_gatewayUserList_Results) HasUsers() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_gatewayUserList_Results) SetUsers(v capnp2.User_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewUsers sets the users field to a newly\n// allocated capnp2.User_List, preferring placement in s's segment.\nfunc (s Repo_gatewayUserList_Results) NewUsers(n int32) (capnp2.User_List, error) {\n\tl, err := capnp2.NewUser_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn capnp2.User_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Repo_gatewayUserList_Results_List is a list of Repo_gatewayUserList_Results.\ntype Repo_gatewayUserList_Results_List struct{ capnp.List }\n\n// NewRepo_gatewayUserList_Results creates a new list of Repo_gatewayUserList_Results.\nfunc NewRepo_gatewayUserList_Results_List(s *capnp.Segment, sz int32) (Repo_gatewayUserList_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_gatewayUserList_Results_List{l}, err\n}\n\nfunc (s Repo_gatewayUserList_Results_List) At(i int) Repo_gatewayUserList_Results {\n\treturn Repo_gatewayUserList_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_gatewayUserList_Results_List) Set(i int, v Repo_gatewayUserList_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_gatewayUserList_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xbd8d8f80992c4d78, s.List)\n\treturn str\n}\n\n// Repo_gatewayUserList_Results_Promise is a wrapper for a Repo_gatewayUserList_Results promised by a client call.\ntype Repo_gatewayUserList_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_gatewayUserList_Results_Promise) Struct() (Repo_gatewayUserList_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_gatewayUserList_Results{s}, err\n}\n\ntype Repo_debugProfilePort_Params struct{ capnp.Struct }\n\n// Repo_debugProfilePort_Params_TypeID is the unique identifier for the type Repo_debugProfilePort_Params.\nconst Repo_debugProfilePort_Params_TypeID = 0xbda24ef378533894\n\nfunc NewRepo_debugProfilePort_Params(s *capnp.Segment) (Repo_debugProfilePort_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_debugProfilePort_Params{st}, err\n}\n\nfunc NewRootRepo_debugProfilePort_Params(s *capnp.Segment) (Repo_debugProfilePort_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_debugProfilePort_Params{st}, err\n}\n\nfunc ReadRootRepo_debugProfilePort_Params(msg *capnp.Message) (Repo_debugProfilePort_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_debugProfilePort_Params{root.Struct()}, err\n}\n\nfunc (s Repo_debugProfilePort_Params) String() string {\n\tstr, _ := text.Marshal(0xbda24ef378533894, s.Struct)\n\treturn str\n}\n\n// Repo_debugProfilePort_Params_List is a list of Repo_debugProfilePort_Params.\ntype Repo_debugProfilePort_Params_List struct{ capnp.List }\n\n// NewRepo_debugProfilePort_Params creates a new list of Repo_debugProfilePort_Params.\nfunc NewRepo_debugProfilePort_Params_List(s *capnp.Segment, sz int32) (Repo_debugProfilePort_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_debugProfilePort_Params_List{l}, err\n}\n\nfunc (s Repo_debugProfilePort_Params_List) At(i int) Repo_debugProfilePort_Params {\n\treturn Repo_debugProfilePort_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_debugProfilePort_Params_List) Set(i int, v Repo_debugProfilePort_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_debugProfilePort_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xbda24ef378533894, s.List)\n\treturn str\n}\n\n// Repo_debugProfilePort_Params_Promise is a wrapper for a Repo_debugProfilePort_Params promised by a client call.\ntype Repo_debugProfilePort_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_debugProfilePort_Params_Promise) Struct() (Repo_debugProfilePort_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_debugProfilePort_Params{s}, err\n}\n\ntype Repo_debugProfilePort_Results struct{ capnp.Struct }\n\n// Repo_debugProfilePort_Results_TypeID is the unique identifier for the type Repo_debugProfilePort_Results.\nconst Repo_debugProfilePort_Results_TypeID = 0xea498a2451bae614\n\nfunc NewRepo_debugProfilePort_Results(s *capnp.Segment) (Repo_debugProfilePort_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Repo_debugProfilePort_Results{st}, err\n}\n\nfunc NewRootRepo_debugProfilePort_Results(s *capnp.Segment) (Repo_debugProfilePort_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Repo_debugProfilePort_Results{st}, err\n}\n\nfunc ReadRootRepo_debugProfilePort_Results(msg *capnp.Message) (Repo_debugProfilePort_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_debugProfilePort_Results{root.Struct()}, err\n}\n\nfunc (s Repo_debugProfilePort_Results) String() string {\n\tstr, _ := text.Marshal(0xea498a2451bae614, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_debugProfilePort_Results) Port() int32 {\n\treturn int32(s.Struct.Uint32(0))\n}\n\nfunc (s Repo_debugProfilePort_Results) SetPort(v int32) {\n\ts.Struct.SetUint32(0, uint32(v))\n}\n\n// Repo_debugProfilePort_Results_List is a list of Repo_debugProfilePort_Results.\ntype Repo_debugProfilePort_Results_List struct{ capnp.List }\n\n// NewRepo_debugProfilePort_Results creates a new list of Repo_debugProfilePort_Results.\nfunc NewRepo_debugProfilePort_Results_List(s *capnp.Segment, sz int32) (Repo_debugProfilePort_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Repo_debugProfilePort_Results_List{l}, err\n}\n\nfunc (s Repo_debugProfilePort_Results_List) At(i int) Repo_debugProfilePort_Results {\n\treturn Repo_debugProfilePort_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_debugProfilePort_Results_List) Set(i int, v Repo_debugProfilePort_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_debugProfilePort_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xea498a2451bae614, s.List)\n\treturn str\n}\n\n// Repo_debugProfilePort_Results_Promise is a wrapper for a Repo_debugProfilePort_Results promised by a client call.\ntype Repo_debugProfilePort_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_debugProfilePort_Results_Promise) Struct() (Repo_debugProfilePort_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_debugProfilePort_Results{s}, err\n}\n\ntype Repo_hintSet_Params struct{ capnp.Struct }\n\n// Repo_hintSet_Params_TypeID is the unique identifier for the type Repo_hintSet_Params.\nconst Repo_hintSet_Params_TypeID = 0x936b942a74db0be0\n\nfunc NewRepo_hintSet_Params(s *capnp.Segment) (Repo_hintSet_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_hintSet_Params{st}, err\n}\n\nfunc NewRootRepo_hintSet_Params(s *capnp.Segment) (Repo_hintSet_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})\n\treturn Repo_hintSet_Params{st}, err\n}\n\nfunc ReadRootRepo_hintSet_Params(msg *capnp.Message) (Repo_hintSet_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintSet_Params{root.Struct()}, err\n}\n\nfunc (s Repo_hintSet_Params) String() string {\n\tstr, _ := text.Marshal(0x936b942a74db0be0, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_hintSet_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_hintSet_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_hintSet_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_hintSet_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Repo_hintSet_Params) Hint() (Hint, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn Hint{Struct: p.Struct()}, err\n}\n\nfunc (s Repo_hintSet_Params) HasHint() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_hintSet_Params) SetHint(v Hint) error {\n\treturn s.Struct.SetPtr(1, v.Struct.ToPtr())\n}\n\n// NewHint sets the hint field to a newly\n// allocated Hint struct, preferring placement in s's segment.\nfunc (s Repo_hintSet_Params) NewHint() (Hint, error) {\n\tss, err := NewHint(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Hint{}, err\n\t}\n\terr = s.Struct.SetPtr(1, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Repo_hintSet_Params_List is a list of Repo_hintSet_Params.\ntype Repo_hintSet_Params_List struct{ capnp.List }\n\n// NewRepo_hintSet_Params creates a new list of Repo_hintSet_Params.\nfunc NewRepo_hintSet_Params_List(s *capnp.Segment, sz int32) (Repo_hintSet_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)\n\treturn Repo_hintSet_Params_List{l}, err\n}\n\nfunc (s Repo_hintSet_Params_List) At(i int) Repo_hintSet_Params {\n\treturn Repo_hintSet_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintSet_Params_List) Set(i int, v Repo_hintSet_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintSet_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x936b942a74db0be0, s.List)\n\treturn str\n}\n\n// Repo_hintSet_Params_Promise is a wrapper for a Repo_hintSet_Params promised by a client call.\ntype Repo_hintSet_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintSet_Params_Promise) Struct() (Repo_hintSet_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintSet_Params{s}, err\n}\n\nfunc (p Repo_hintSet_Params_Promise) Hint() Hint_Promise {\n\treturn Hint_Promise{Pipeline: p.Pipeline.GetPipeline(1)}\n}\n\ntype Repo_hintSet_Results struct{ capnp.Struct }\n\n// Repo_hintSet_Results_TypeID is the unique identifier for the type Repo_hintSet_Results.\nconst Repo_hintSet_Results_TypeID = 0x82f304d5d4e81ee4\n\nfunc NewRepo_hintSet_Results(s *capnp.Segment) (Repo_hintSet_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintSet_Results{st}, err\n}\n\nfunc NewRootRepo_hintSet_Results(s *capnp.Segment) (Repo_hintSet_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintSet_Results{st}, err\n}\n\nfunc ReadRootRepo_hintSet_Results(msg *capnp.Message) (Repo_hintSet_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintSet_Results{root.Struct()}, err\n}\n\nfunc (s Repo_hintSet_Results) String() string {\n\tstr, _ := text.Marshal(0x82f304d5d4e81ee4, s.Struct)\n\treturn str\n}\n\n// Repo_hintSet_Results_List is a list of Repo_hintSet_Results.\ntype Repo_hintSet_Results_List struct{ capnp.List }\n\n// NewRepo_hintSet_Results creates a new list of Repo_hintSet_Results.\nfunc NewRepo_hintSet_Results_List(s *capnp.Segment, sz int32) (Repo_hintSet_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_hintSet_Results_List{l}, err\n}\n\nfunc (s Repo_hintSet_Results_List) At(i int) Repo_hintSet_Results {\n\treturn Repo_hintSet_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintSet_Results_List) Set(i int, v Repo_hintSet_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintSet_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x82f304d5d4e81ee4, s.List)\n\treturn str\n}\n\n// Repo_hintSet_Results_Promise is a wrapper for a Repo_hintSet_Results promised by a client call.\ntype Repo_hintSet_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintSet_Results_Promise) Struct() (Repo_hintSet_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintSet_Results{s}, err\n}\n\ntype Repo_hintRemove_Params struct{ capnp.Struct }\n\n// Repo_hintRemove_Params_TypeID is the unique identifier for the type Repo_hintRemove_Params.\nconst Repo_hintRemove_Params_TypeID = 0xc738867ebff9b7cb\n\nfunc NewRepo_hintRemove_Params(s *capnp.Segment) (Repo_hintRemove_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_hintRemove_Params{st}, err\n}\n\nfunc NewRootRepo_hintRemove_Params(s *capnp.Segment) (Repo_hintRemove_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_hintRemove_Params{st}, err\n}\n\nfunc ReadRootRepo_hintRemove_Params(msg *capnp.Message) (Repo_hintRemove_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintRemove_Params{root.Struct()}, err\n}\n\nfunc (s Repo_hintRemove_Params) String() string {\n\tstr, _ := text.Marshal(0xc738867ebff9b7cb, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_hintRemove_Params) Path() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Repo_hintRemove_Params) HasPath() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_hintRemove_Params) PathBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Repo_hintRemove_Params) SetPath(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Repo_hintRemove_Params_List is a list of Repo_hintRemove_Params.\ntype Repo_hintRemove_Params_List struct{ capnp.List }\n\n// NewRepo_hintRemove_Params creates a new list of Repo_hintRemove_Params.\nfunc NewRepo_hintRemove_Params_List(s *capnp.Segment, sz int32) (Repo_hintRemove_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_hintRemove_Params_List{l}, err\n}\n\nfunc (s Repo_hintRemove_Params_List) At(i int) Repo_hintRemove_Params {\n\treturn Repo_hintRemove_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintRemove_Params_List) Set(i int, v Repo_hintRemove_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintRemove_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc738867ebff9b7cb, s.List)\n\treturn str\n}\n\n// Repo_hintRemove_Params_Promise is a wrapper for a Repo_hintRemove_Params promised by a client call.\ntype Repo_hintRemove_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintRemove_Params_Promise) Struct() (Repo_hintRemove_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintRemove_Params{s}, err\n}\n\ntype Repo_hintRemove_Results struct{ capnp.Struct }\n\n// Repo_hintRemove_Results_TypeID is the unique identifier for the type Repo_hintRemove_Results.\nconst Repo_hintRemove_Results_TypeID = 0xd46456b6c34d2ab1\n\nfunc NewRepo_hintRemove_Results(s *capnp.Segment) (Repo_hintRemove_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintRemove_Results{st}, err\n}\n\nfunc NewRootRepo_hintRemove_Results(s *capnp.Segment) (Repo_hintRemove_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintRemove_Results{st}, err\n}\n\nfunc ReadRootRepo_hintRemove_Results(msg *capnp.Message) (Repo_hintRemove_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintRemove_Results{root.Struct()}, err\n}\n\nfunc (s Repo_hintRemove_Results) String() string {\n\tstr, _ := text.Marshal(0xd46456b6c34d2ab1, s.Struct)\n\treturn str\n}\n\n// Repo_hintRemove_Results_List is a list of Repo_hintRemove_Results.\ntype Repo_hintRemove_Results_List struct{ capnp.List }\n\n// NewRepo_hintRemove_Results creates a new list of Repo_hintRemove_Results.\nfunc NewRepo_hintRemove_Results_List(s *capnp.Segment, sz int32) (Repo_hintRemove_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_hintRemove_Results_List{l}, err\n}\n\nfunc (s Repo_hintRemove_Results_List) At(i int) Repo_hintRemove_Results {\n\treturn Repo_hintRemove_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintRemove_Results_List) Set(i int, v Repo_hintRemove_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintRemove_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd46456b6c34d2ab1, s.List)\n\treturn str\n}\n\n// Repo_hintRemove_Results_Promise is a wrapper for a Repo_hintRemove_Results promised by a client call.\ntype Repo_hintRemove_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintRemove_Results_Promise) Struct() (Repo_hintRemove_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintRemove_Results{s}, err\n}\n\ntype Repo_hintList_Params struct{ capnp.Struct }\n\n// Repo_hintList_Params_TypeID is the unique identifier for the type Repo_hintList_Params.\nconst Repo_hintList_Params_TypeID = 0xcf864fbad605b1c7\n\nfunc NewRepo_hintList_Params(s *capnp.Segment) (Repo_hintList_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintList_Params{st}, err\n}\n\nfunc NewRootRepo_hintList_Params(s *capnp.Segment) (Repo_hintList_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Repo_hintList_Params{st}, err\n}\n\nfunc ReadRootRepo_hintList_Params(msg *capnp.Message) (Repo_hintList_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintList_Params{root.Struct()}, err\n}\n\nfunc (s Repo_hintList_Params) String() string {\n\tstr, _ := text.Marshal(0xcf864fbad605b1c7, s.Struct)\n\treturn str\n}\n\n// Repo_hintList_Params_List is a list of Repo_hintList_Params.\ntype Repo_hintList_Params_List struct{ capnp.List }\n\n// NewRepo_hintList_Params creates a new list of Repo_hintList_Params.\nfunc NewRepo_hintList_Params_List(s *capnp.Segment, sz int32) (Repo_hintList_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Repo_hintList_Params_List{l}, err\n}\n\nfunc (s Repo_hintList_Params_List) At(i int) Repo_hintList_Params {\n\treturn Repo_hintList_Params{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintList_Params_List) Set(i int, v Repo_hintList_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintList_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xcf864fbad605b1c7, s.List)\n\treturn str\n}\n\n// Repo_hintList_Params_Promise is a wrapper for a Repo_hintList_Params promised by a client call.\ntype Repo_hintList_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintList_Params_Promise) Struct() (Repo_hintList_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintList_Params{s}, err\n}\n\ntype Repo_hintList_Results struct{ capnp.Struct }\n\n// Repo_hintList_Results_TypeID is the unique identifier for the type Repo_hintList_Results.\nconst Repo_hintList_Results_TypeID = 0xfde70cc7d597944e\n\nfunc NewRepo_hintList_Results(s *capnp.Segment) (Repo_hintList_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_hintList_Results{st}, err\n}\n\nfunc NewRootRepo_hintList_Results(s *capnp.Segment) (Repo_hintList_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Repo_hintList_Results{st}, err\n}\n\nfunc ReadRootRepo_hintList_Results(msg *capnp.Message) (Repo_hintList_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Repo_hintList_Results{root.Struct()}, err\n}\n\nfunc (s Repo_hintList_Results) String() string {\n\tstr, _ := text.Marshal(0xfde70cc7d597944e, s.Struct)\n\treturn str\n}\n\nfunc (s Repo_hintList_Results) Hints() (Hint_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Hint_List{List: p.List()}, err\n}\n\nfunc (s Repo_hintList_Results) HasHints() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Repo_hintList_Results) SetHints(v Hint_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewHints sets the hints field to a newly\n// allocated Hint_List, preferring placement in s's segment.\nfunc (s Repo_hintList_Results) NewHints(n int32) (Hint_List, error) {\n\tl, err := NewHint_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Hint_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Repo_hintList_Results_List is a list of Repo_hintList_Results.\ntype Repo_hintList_Results_List struct{ capnp.List }\n\n// NewRepo_hintList_Results creates a new list of Repo_hintList_Results.\nfunc NewRepo_hintList_Results_List(s *capnp.Segment, sz int32) (Repo_hintList_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Repo_hintList_Results_List{l}, err\n}\n\nfunc (s Repo_hintList_Results_List) At(i int) Repo_hintList_Results {\n\treturn Repo_hintList_Results{s.List.Struct(i)}\n}\n\nfunc (s Repo_hintList_Results_List) Set(i int, v Repo_hintList_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Repo_hintList_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xfde70cc7d597944e, s.List)\n\treturn str\n}\n\n// Repo_hintList_Results_Promise is a wrapper for a Repo_hintList_Results promised by a client call.\ntype Repo_hintList_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Repo_hintList_Results_Promise) Struct() (Repo_hintList_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Repo_hintList_Results{s}, err\n}\n\ntype Net struct{ Client capnp.Client }\n\n// Net_TypeID is the unique identifier for the type Net.\nconst Net_TypeID = 0xaa133a60be5a7d01\n\nfunc (c Net) RemoteAddOrUpdate(ctx context.Context, params func(Net_remoteAddOrUpdate_Params) error, opts ...capnp.CallOption) Net_remoteAddOrUpdate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteAddOrUpdate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteAddOrUpdate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteAddOrUpdate_Params{Struct: s}) }\n\t}\n\treturn Net_remoteAddOrUpdate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteRm(ctx context.Context, params func(Net_remoteRm_Params) error, opts ...capnp.CallOption) Net_remoteRm_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteRm_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteRm\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteRm_Params{Struct: s}) }\n\t}\n\treturn Net_remoteRm_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteLs(ctx context.Context, params func(Net_remoteLs_Params) error, opts ...capnp.CallOption) Net_remoteLs_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteLs_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteLs\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteLs_Params{Struct: s}) }\n\t}\n\treturn Net_remoteLs_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteUpdate(ctx context.Context, params func(Net_remoteUpdate_Params) error, opts ...capnp.CallOption) Net_remoteUpdate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteUpdate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteUpdate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteUpdate_Params{Struct: s}) }\n\t}\n\treturn Net_remoteUpdate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteSave(ctx context.Context, params func(Net_remoteSave_Params) error, opts ...capnp.CallOption) Net_remoteSave_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteSave_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteSave\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteSave_Params{Struct: s}) }\n\t}\n\treturn Net_remoteSave_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemotePing(ctx context.Context, params func(Net_remotePing_Params) error, opts ...capnp.CallOption) Net_remotePing_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remotePing_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remotePing\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remotePing_Params{Struct: s}) }\n\t}\n\treturn Net_remotePing_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteClear(ctx context.Context, params func(Net_remoteClear_Params) error, opts ...capnp.CallOption) Net_remoteClear_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteClear_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteClear\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteClear_Params{Struct: s}) }\n\t}\n\treturn Net_remoteClear_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) NetLocate(ctx context.Context, params func(Net_netLocate_Params) error, opts ...capnp.CallOption) Net_netLocate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_netLocate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_netLocate_Params{Struct: s}) }\n\t}\n\treturn Net_netLocate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) NetLocateNext(ctx context.Context, params func(Net_netLocateNext_Params) error, opts ...capnp.CallOption) Net_netLocateNext_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_netLocateNext_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocateNext\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_netLocateNext_Params{Struct: s}) }\n\t}\n\treturn Net_netLocateNext_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) Whoami(ctx context.Context, params func(Net_whoami_Params) error, opts ...capnp.CallOption) Net_whoami_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_whoami_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"whoami\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_whoami_Params{Struct: s}) }\n\t}\n\treturn Net_whoami_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) Connect(ctx context.Context, params func(Net_connect_Params) error, opts ...capnp.CallOption) Net_connect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_connect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"connect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_connect_Params{Struct: s}) }\n\t}\n\treturn Net_connect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) Disconnect(ctx context.Context, params func(Net_disconnect_Params) error, opts ...capnp.CallOption) Net_disconnect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_disconnect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"disconnect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_disconnect_Params{Struct: s}) }\n\t}\n\treturn Net_disconnect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteOnlineList(ctx context.Context, params func(Net_remoteOnlineList_Params) error, opts ...capnp.CallOption) Net_remoteOnlineList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteOnlineList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteOnlineList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteOnlineList_Params{Struct: s}) }\n\t}\n\treturn Net_remoteOnlineList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) RemoteByName(ctx context.Context, params func(Net_remoteByName_Params) error, opts ...capnp.CallOption) Net_remoteByName_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteByName_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteByName\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteByName_Params{Struct: s}) }\n\t}\n\treturn Net_remoteByName_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c Net) Push(ctx context.Context, params func(Net_push_Params) error, opts ...capnp.CallOption) Net_push_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_push_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_push_Params{Struct: s}) }\n\t}\n\treturn Net_push_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype Net_Server interface {\n\tRemoteAddOrUpdate(Net_remoteAddOrUpdate) error\n\n\tRemoteRm(Net_remoteRm) error\n\n\tRemoteLs(Net_remoteLs) error\n\n\tRemoteUpdate(Net_remoteUpdate) error\n\n\tRemoteSave(Net_remoteSave) error\n\n\tRemotePing(Net_remotePing) error\n\n\tRemoteClear(Net_remoteClear) error\n\n\tNetLocate(Net_netLocate) error\n\n\tNetLocateNext(Net_netLocateNext) error\n\n\tWhoami(Net_whoami) error\n\n\tConnect(Net_connect) error\n\n\tDisconnect(Net_disconnect) error\n\n\tRemoteOnlineList(Net_remoteOnlineList) error\n\n\tRemoteByName(Net_remoteByName) error\n\n\tPush(Net_push) error\n}\n\nfunc Net_ServerToClient(s Net_Server) Net {\n\tc, _ := s.(server.Closer)\n\treturn Net{Client: server.New(Net_Methods(nil, s), c)}\n}\n\nfunc Net_Methods(methods []server.Method, s Net_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 15)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteAddOrUpdate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteAddOrUpdate{c, opts, Net_remoteAddOrUpdate_Params{Struct: p}, Net_remoteAddOrUpdate_Results{Struct: r}}\n\t\t\treturn s.RemoteAddOrUpdate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteRm\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteRm{c, opts, Net_remoteRm_Params{Struct: p}, Net_remoteRm_Results{Struct: r}}\n\t\t\treturn s.RemoteRm(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteLs\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteLs{c, opts, Net_remoteLs_Params{Struct: p}, Net_remoteLs_Results{Struct: r}}\n\t\t\treturn s.RemoteLs(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteUpdate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteUpdate{c, opts, Net_remoteUpdate_Params{Struct: p}, Net_remoteUpdate_Results{Struct: r}}\n\t\t\treturn s.RemoteUpdate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteSave\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteSave{c, opts, Net_remoteSave_Params{Struct: p}, Net_remoteSave_Results{Struct: r}}\n\t\t\treturn s.RemoteSave(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remotePing\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remotePing{c, opts, Net_remotePing_Params{Struct: p}, Net_remotePing_Results{Struct: r}}\n\t\t\treturn s.RemotePing(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteClear\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteClear{c, opts, Net_remoteClear_Params{Struct: p}, Net_remoteClear_Results{Struct: r}}\n\t\t\treturn s.RemoteClear(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_netLocate{c, opts, Net_netLocate_Params{Struct: p}, Net_netLocate_Results{Struct: r}}\n\t\t\treturn s.NetLocate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocateNext\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_netLocateNext{c, opts, Net_netLocateNext_Params{Struct: p}, Net_netLocateNext_Results{Struct: r}}\n\t\t\treturn s.NetLocateNext(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"whoami\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_whoami{c, opts, Net_whoami_Params{Struct: p}, Net_whoami_Results{Struct: r}}\n\t\t\treturn s.Whoami(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"connect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_connect{c, opts, Net_connect_Params{Struct: p}, Net_connect_Results{Struct: r}}\n\t\t\treturn s.Connect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"disconnect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_disconnect{c, opts, Net_disconnect_Params{Struct: p}, Net_disconnect_Results{Struct: r}}\n\t\t\treturn s.Disconnect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteOnlineList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteOnlineList{c, opts, Net_remoteOnlineList_Params{Struct: p}, Net_remoteOnlineList_Results{Struct: r}}\n\t\t\treturn s.RemoteOnlineList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteByName\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteByName{c, opts, Net_remoteByName_Params{Struct: p}, Net_remoteByName_Results{Struct: r}}\n\t\t\treturn s.RemoteByName(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_push{c, opts, Net_push_Params{Struct: p}, Net_push_Results{Struct: r}}\n\t\t\treturn s.Push(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\treturn methods\n}\n\n// Net_remoteAddOrUpdate holds the arguments for a server call to Net.remoteAddOrUpdate.\ntype Net_remoteAddOrUpdate struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteAddOrUpdate_Params\n\tResults Net_remoteAddOrUpdate_Results\n}\n\n// Net_remoteRm holds the arguments for a server call to Net.remoteRm.\ntype Net_remoteRm struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteRm_Params\n\tResults Net_remoteRm_Results\n}\n\n// Net_remoteLs holds the arguments for a server call to Net.remoteLs.\ntype Net_remoteLs struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteLs_Params\n\tResults Net_remoteLs_Results\n}\n\n// Net_remoteUpdate holds the arguments for a server call to Net.remoteUpdate.\ntype Net_remoteUpdate struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteUpdate_Params\n\tResults Net_remoteUpdate_Results\n}\n\n// Net_remoteSave holds the arguments for a server call to Net.remoteSave.\ntype Net_remoteSave struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteSave_Params\n\tResults Net_remoteSave_Results\n}\n\n// Net_remotePing holds the arguments for a server call to Net.remotePing.\ntype Net_remotePing struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remotePing_Params\n\tResults Net_remotePing_Results\n}\n\n// Net_remoteClear holds the arguments for a server call to Net.remoteClear.\ntype Net_remoteClear struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteClear_Params\n\tResults Net_remoteClear_Results\n}\n\n// Net_netLocate holds the arguments for a server call to Net.netLocate.\ntype Net_netLocate struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_netLocate_Params\n\tResults Net_netLocate_Results\n}\n\n// Net_netLocateNext holds the arguments for a server call to Net.netLocateNext.\ntype Net_netLocateNext struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_netLocateNext_Params\n\tResults Net_netLocateNext_Results\n}\n\n// Net_whoami holds the arguments for a server call to Net.whoami.\ntype Net_whoami struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_whoami_Params\n\tResults Net_whoami_Results\n}\n\n// Net_connect holds the arguments for a server call to Net.connect.\ntype Net_connect struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_connect_Params\n\tResults Net_connect_Results\n}\n\n// Net_disconnect holds the arguments for a server call to Net.disconnect.\ntype Net_disconnect struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_disconnect_Params\n\tResults Net_disconnect_Results\n}\n\n// Net_remoteOnlineList holds the arguments for a server call to Net.remoteOnlineList.\ntype Net_remoteOnlineList struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteOnlineList_Params\n\tResults Net_remoteOnlineList_Results\n}\n\n// Net_remoteByName holds the arguments for a server call to Net.remoteByName.\ntype Net_remoteByName struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_remoteByName_Params\n\tResults Net_remoteByName_Results\n}\n\n// Net_push holds the arguments for a server call to Net.push.\ntype Net_push struct {\n\tCtx     context.Context\n\tOptions capnp.CallOptions\n\tParams  Net_push_Params\n\tResults Net_push_Results\n}\n\ntype Net_remoteAddOrUpdate_Params struct{ capnp.Struct }\n\n// Net_remoteAddOrUpdate_Params_TypeID is the unique identifier for the type Net_remoteAddOrUpdate_Params.\nconst Net_remoteAddOrUpdate_Params_TypeID = 0xf5c310bd5e2aa138\n\nfunc NewNet_remoteAddOrUpdate_Params(s *capnp.Segment) (Net_remoteAddOrUpdate_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteAddOrUpdate_Params{st}, err\n}\n\nfunc NewRootNet_remoteAddOrUpdate_Params(s *capnp.Segment) (Net_remoteAddOrUpdate_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteAddOrUpdate_Params{st}, err\n}\n\nfunc ReadRootNet_remoteAddOrUpdate_Params(msg *capnp.Message) (Net_remoteAddOrUpdate_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteAddOrUpdate_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteAddOrUpdate_Params) String() string {\n\tstr, _ := text.Marshal(0xf5c310bd5e2aa138, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteAddOrUpdate_Params) Remote() (Remote, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote{Struct: p.Struct()}, err\n}\n\nfunc (s Net_remoteAddOrUpdate_Params) HasRemote() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteAddOrUpdate_Params) SetRemote(v Remote) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewRemote sets the remote field to a newly\n// allocated Remote struct, preferring placement in s's segment.\nfunc (s Net_remoteAddOrUpdate_Params) NewRemote() (Remote, error) {\n\tss, err := NewRemote(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Net_remoteAddOrUpdate_Params_List is a list of Net_remoteAddOrUpdate_Params.\ntype Net_remoteAddOrUpdate_Params_List struct{ capnp.List }\n\n// NewNet_remoteAddOrUpdate_Params creates a new list of Net_remoteAddOrUpdate_Params.\nfunc NewNet_remoteAddOrUpdate_Params_List(s *capnp.Segment, sz int32) (Net_remoteAddOrUpdate_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteAddOrUpdate_Params_List{l}, err\n}\n\nfunc (s Net_remoteAddOrUpdate_Params_List) At(i int) Net_remoteAddOrUpdate_Params {\n\treturn Net_remoteAddOrUpdate_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteAddOrUpdate_Params_List) Set(i int, v Net_remoteAddOrUpdate_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteAddOrUpdate_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf5c310bd5e2aa138, s.List)\n\treturn str\n}\n\n// Net_remoteAddOrUpdate_Params_Promise is a wrapper for a Net_remoteAddOrUpdate_Params promised by a client call.\ntype Net_remoteAddOrUpdate_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteAddOrUpdate_Params_Promise) Struct() (Net_remoteAddOrUpdate_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteAddOrUpdate_Params{s}, err\n}\n\nfunc (p Net_remoteAddOrUpdate_Params_Promise) Remote() Remote_Promise {\n\treturn Remote_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Net_remoteAddOrUpdate_Results struct{ capnp.Struct }\n\n// Net_remoteAddOrUpdate_Results_TypeID is the unique identifier for the type Net_remoteAddOrUpdate_Results.\nconst Net_remoteAddOrUpdate_Results_TypeID = 0xfcaa6dc30ba75197\n\nfunc NewNet_remoteAddOrUpdate_Results(s *capnp.Segment) (Net_remoteAddOrUpdate_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteAddOrUpdate_Results{st}, err\n}\n\nfunc NewRootNet_remoteAddOrUpdate_Results(s *capnp.Segment) (Net_remoteAddOrUpdate_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteAddOrUpdate_Results{st}, err\n}\n\nfunc ReadRootNet_remoteAddOrUpdate_Results(msg *capnp.Message) (Net_remoteAddOrUpdate_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteAddOrUpdate_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteAddOrUpdate_Results) String() string {\n\tstr, _ := text.Marshal(0xfcaa6dc30ba75197, s.Struct)\n\treturn str\n}\n\n// Net_remoteAddOrUpdate_Results_List is a list of Net_remoteAddOrUpdate_Results.\ntype Net_remoteAddOrUpdate_Results_List struct{ capnp.List }\n\n// NewNet_remoteAddOrUpdate_Results creates a new list of Net_remoteAddOrUpdate_Results.\nfunc NewNet_remoteAddOrUpdate_Results_List(s *capnp.Segment, sz int32) (Net_remoteAddOrUpdate_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteAddOrUpdate_Results_List{l}, err\n}\n\nfunc (s Net_remoteAddOrUpdate_Results_List) At(i int) Net_remoteAddOrUpdate_Results {\n\treturn Net_remoteAddOrUpdate_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteAddOrUpdate_Results_List) Set(i int, v Net_remoteAddOrUpdate_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteAddOrUpdate_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xfcaa6dc30ba75197, s.List)\n\treturn str\n}\n\n// Net_remoteAddOrUpdate_Results_Promise is a wrapper for a Net_remoteAddOrUpdate_Results promised by a client call.\ntype Net_remoteAddOrUpdate_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteAddOrUpdate_Results_Promise) Struct() (Net_remoteAddOrUpdate_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteAddOrUpdate_Results{s}, err\n}\n\ntype Net_remoteRm_Params struct{ capnp.Struct }\n\n// Net_remoteRm_Params_TypeID is the unique identifier for the type Net_remoteRm_Params.\nconst Net_remoteRm_Params_TypeID = 0xf485a561c31c83d2\n\nfunc NewNet_remoteRm_Params(s *capnp.Segment) (Net_remoteRm_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteRm_Params{st}, err\n}\n\nfunc NewRootNet_remoteRm_Params(s *capnp.Segment) (Net_remoteRm_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteRm_Params{st}, err\n}\n\nfunc ReadRootNet_remoteRm_Params(msg *capnp.Message) (Net_remoteRm_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteRm_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteRm_Params) String() string {\n\tstr, _ := text.Marshal(0xf485a561c31c83d2, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteRm_Params) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Net_remoteRm_Params) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteRm_Params) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_remoteRm_Params) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Net_remoteRm_Params_List is a list of Net_remoteRm_Params.\ntype Net_remoteRm_Params_List struct{ capnp.List }\n\n// NewNet_remoteRm_Params creates a new list of Net_remoteRm_Params.\nfunc NewNet_remoteRm_Params_List(s *capnp.Segment, sz int32) (Net_remoteRm_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteRm_Params_List{l}, err\n}\n\nfunc (s Net_remoteRm_Params_List) At(i int) Net_remoteRm_Params {\n\treturn Net_remoteRm_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteRm_Params_List) Set(i int, v Net_remoteRm_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteRm_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xf485a561c31c83d2, s.List)\n\treturn str\n}\n\n// Net_remoteRm_Params_Promise is a wrapper for a Net_remoteRm_Params promised by a client call.\ntype Net_remoteRm_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteRm_Params_Promise) Struct() (Net_remoteRm_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteRm_Params{s}, err\n}\n\ntype Net_remoteRm_Results struct{ capnp.Struct }\n\n// Net_remoteRm_Results_TypeID is the unique identifier for the type Net_remoteRm_Results.\nconst Net_remoteRm_Results_TypeID = 0xdb78f249dcc7b9f1\n\nfunc NewNet_remoteRm_Results(s *capnp.Segment) (Net_remoteRm_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteRm_Results{st}, err\n}\n\nfunc NewRootNet_remoteRm_Results(s *capnp.Segment) (Net_remoteRm_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteRm_Results{st}, err\n}\n\nfunc ReadRootNet_remoteRm_Results(msg *capnp.Message) (Net_remoteRm_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteRm_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteRm_Results) String() string {\n\tstr, _ := text.Marshal(0xdb78f249dcc7b9f1, s.Struct)\n\treturn str\n}\n\n// Net_remoteRm_Results_List is a list of Net_remoteRm_Results.\ntype Net_remoteRm_Results_List struct{ capnp.List }\n\n// NewNet_remoteRm_Results creates a new list of Net_remoteRm_Results.\nfunc NewNet_remoteRm_Results_List(s *capnp.Segment, sz int32) (Net_remoteRm_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteRm_Results_List{l}, err\n}\n\nfunc (s Net_remoteRm_Results_List) At(i int) Net_remoteRm_Results {\n\treturn Net_remoteRm_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteRm_Results_List) Set(i int, v Net_remoteRm_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteRm_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xdb78f249dcc7b9f1, s.List)\n\treturn str\n}\n\n// Net_remoteRm_Results_Promise is a wrapper for a Net_remoteRm_Results promised by a client call.\ntype Net_remoteRm_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteRm_Results_Promise) Struct() (Net_remoteRm_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteRm_Results{s}, err\n}\n\ntype Net_remoteLs_Params struct{ capnp.Struct }\n\n// Net_remoteLs_Params_TypeID is the unique identifier for the type Net_remoteLs_Params.\nconst Net_remoteLs_Params_TypeID = 0xc18496cf650e6886\n\nfunc NewNet_remoteLs_Params(s *capnp.Segment) (Net_remoteLs_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteLs_Params{st}, err\n}\n\nfunc NewRootNet_remoteLs_Params(s *capnp.Segment) (Net_remoteLs_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteLs_Params{st}, err\n}\n\nfunc ReadRootNet_remoteLs_Params(msg *capnp.Message) (Net_remoteLs_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteLs_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteLs_Params) String() string {\n\tstr, _ := text.Marshal(0xc18496cf650e6886, s.Struct)\n\treturn str\n}\n\n// Net_remoteLs_Params_List is a list of Net_remoteLs_Params.\ntype Net_remoteLs_Params_List struct{ capnp.List }\n\n// NewNet_remoteLs_Params creates a new list of Net_remoteLs_Params.\nfunc NewNet_remoteLs_Params_List(s *capnp.Segment, sz int32) (Net_remoteLs_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteLs_Params_List{l}, err\n}\n\nfunc (s Net_remoteLs_Params_List) At(i int) Net_remoteLs_Params {\n\treturn Net_remoteLs_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteLs_Params_List) Set(i int, v Net_remoteLs_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteLs_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc18496cf650e6886, s.List)\n\treturn str\n}\n\n// Net_remoteLs_Params_Promise is a wrapper for a Net_remoteLs_Params promised by a client call.\ntype Net_remoteLs_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteLs_Params_Promise) Struct() (Net_remoteLs_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteLs_Params{s}, err\n}\n\ntype Net_remoteLs_Results struct{ capnp.Struct }\n\n// Net_remoteLs_Results_TypeID is the unique identifier for the type Net_remoteLs_Results.\nconst Net_remoteLs_Results_TypeID = 0xb2255c049c7bc42f\n\nfunc NewNet_remoteLs_Results(s *capnp.Segment) (Net_remoteLs_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteLs_Results{st}, err\n}\n\nfunc NewRootNet_remoteLs_Results(s *capnp.Segment) (Net_remoteLs_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteLs_Results{st}, err\n}\n\nfunc ReadRootNet_remoteLs_Results(msg *capnp.Message) (Net_remoteLs_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteLs_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteLs_Results) String() string {\n\tstr, _ := text.Marshal(0xb2255c049c7bc42f, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteLs_Results) Remotes() (Remote_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote_List{List: p.List()}, err\n}\n\nfunc (s Net_remoteLs_Results) HasRemotes() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteLs_Results) SetRemotes(v Remote_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewRemotes sets the remotes field to a newly\n// allocated Remote_List, preferring placement in s's segment.\nfunc (s Net_remoteLs_Results) NewRemotes(n int32) (Remote_List, error) {\n\tl, err := NewRemote_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Remote_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Net_remoteLs_Results_List is a list of Net_remoteLs_Results.\ntype Net_remoteLs_Results_List struct{ capnp.List }\n\n// NewNet_remoteLs_Results creates a new list of Net_remoteLs_Results.\nfunc NewNet_remoteLs_Results_List(s *capnp.Segment, sz int32) (Net_remoteLs_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteLs_Results_List{l}, err\n}\n\nfunc (s Net_remoteLs_Results_List) At(i int) Net_remoteLs_Results {\n\treturn Net_remoteLs_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteLs_Results_List) Set(i int, v Net_remoteLs_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteLs_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb2255c049c7bc42f, s.List)\n\treturn str\n}\n\n// Net_remoteLs_Results_Promise is a wrapper for a Net_remoteLs_Results promised by a client call.\ntype Net_remoteLs_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteLs_Results_Promise) Struct() (Net_remoteLs_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteLs_Results{s}, err\n}\n\ntype Net_remoteUpdate_Params struct{ capnp.Struct }\n\n// Net_remoteUpdate_Params_TypeID is the unique identifier for the type Net_remoteUpdate_Params.\nconst Net_remoteUpdate_Params_TypeID = 0xc089763bca3e3f44\n\nfunc NewNet_remoteUpdate_Params(s *capnp.Segment) (Net_remoteUpdate_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteUpdate_Params{st}, err\n}\n\nfunc NewRootNet_remoteUpdate_Params(s *capnp.Segment) (Net_remoteUpdate_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteUpdate_Params{st}, err\n}\n\nfunc ReadRootNet_remoteUpdate_Params(msg *capnp.Message) (Net_remoteUpdate_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteUpdate_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteUpdate_Params) String() string {\n\tstr, _ := text.Marshal(0xc089763bca3e3f44, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteUpdate_Params) Remote() (Remote, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote{Struct: p.Struct()}, err\n}\n\nfunc (s Net_remoteUpdate_Params) HasRemote() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteUpdate_Params) SetRemote(v Remote) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewRemote sets the remote field to a newly\n// allocated Remote struct, preferring placement in s's segment.\nfunc (s Net_remoteUpdate_Params) NewRemote() (Remote, error) {\n\tss, err := NewRemote(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Net_remoteUpdate_Params_List is a list of Net_remoteUpdate_Params.\ntype Net_remoteUpdate_Params_List struct{ capnp.List }\n\n// NewNet_remoteUpdate_Params creates a new list of Net_remoteUpdate_Params.\nfunc NewNet_remoteUpdate_Params_List(s *capnp.Segment, sz int32) (Net_remoteUpdate_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteUpdate_Params_List{l}, err\n}\n\nfunc (s Net_remoteUpdate_Params_List) At(i int) Net_remoteUpdate_Params {\n\treturn Net_remoteUpdate_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteUpdate_Params_List) Set(i int, v Net_remoteUpdate_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteUpdate_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc089763bca3e3f44, s.List)\n\treturn str\n}\n\n// Net_remoteUpdate_Params_Promise is a wrapper for a Net_remoteUpdate_Params promised by a client call.\ntype Net_remoteUpdate_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteUpdate_Params_Promise) Struct() (Net_remoteUpdate_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteUpdate_Params{s}, err\n}\n\nfunc (p Net_remoteUpdate_Params_Promise) Remote() Remote_Promise {\n\treturn Remote_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Net_remoteUpdate_Results struct{ capnp.Struct }\n\n// Net_remoteUpdate_Results_TypeID is the unique identifier for the type Net_remoteUpdate_Results.\nconst Net_remoteUpdate_Results_TypeID = 0x99b03ceb2dad70db\n\nfunc NewNet_remoteUpdate_Results(s *capnp.Segment) (Net_remoteUpdate_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteUpdate_Results{st}, err\n}\n\nfunc NewRootNet_remoteUpdate_Results(s *capnp.Segment) (Net_remoteUpdate_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteUpdate_Results{st}, err\n}\n\nfunc ReadRootNet_remoteUpdate_Results(msg *capnp.Message) (Net_remoteUpdate_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteUpdate_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteUpdate_Results) String() string {\n\tstr, _ := text.Marshal(0x99b03ceb2dad70db, s.Struct)\n\treturn str\n}\n\n// Net_remoteUpdate_Results_List is a list of Net_remoteUpdate_Results.\ntype Net_remoteUpdate_Results_List struct{ capnp.List }\n\n// NewNet_remoteUpdate_Results creates a new list of Net_remoteUpdate_Results.\nfunc NewNet_remoteUpdate_Results_List(s *capnp.Segment, sz int32) (Net_remoteUpdate_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteUpdate_Results_List{l}, err\n}\n\nfunc (s Net_remoteUpdate_Results_List) At(i int) Net_remoteUpdate_Results {\n\treturn Net_remoteUpdate_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteUpdate_Results_List) Set(i int, v Net_remoteUpdate_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteUpdate_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x99b03ceb2dad70db, s.List)\n\treturn str\n}\n\n// Net_remoteUpdate_Results_Promise is a wrapper for a Net_remoteUpdate_Results promised by a client call.\ntype Net_remoteUpdate_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteUpdate_Results_Promise) Struct() (Net_remoteUpdate_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteUpdate_Results{s}, err\n}\n\ntype Net_remoteSave_Params struct{ capnp.Struct }\n\n// Net_remoteSave_Params_TypeID is the unique identifier for the type Net_remoteSave_Params.\nconst Net_remoteSave_Params_TypeID = 0xb5dc333528e5f7ae\n\nfunc NewNet_remoteSave_Params(s *capnp.Segment) (Net_remoteSave_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteSave_Params{st}, err\n}\n\nfunc NewRootNet_remoteSave_Params(s *capnp.Segment) (Net_remoteSave_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteSave_Params{st}, err\n}\n\nfunc ReadRootNet_remoteSave_Params(msg *capnp.Message) (Net_remoteSave_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteSave_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteSave_Params) String() string {\n\tstr, _ := text.Marshal(0xb5dc333528e5f7ae, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteSave_Params) Remotes() (Remote_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote_List{List: p.List()}, err\n}\n\nfunc (s Net_remoteSave_Params) HasRemotes() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteSave_Params) SetRemotes(v Remote_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewRemotes sets the remotes field to a newly\n// allocated Remote_List, preferring placement in s's segment.\nfunc (s Net_remoteSave_Params) NewRemotes(n int32) (Remote_List, error) {\n\tl, err := NewRemote_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn Remote_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Net_remoteSave_Params_List is a list of Net_remoteSave_Params.\ntype Net_remoteSave_Params_List struct{ capnp.List }\n\n// NewNet_remoteSave_Params creates a new list of Net_remoteSave_Params.\nfunc NewNet_remoteSave_Params_List(s *capnp.Segment, sz int32) (Net_remoteSave_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteSave_Params_List{l}, err\n}\n\nfunc (s Net_remoteSave_Params_List) At(i int) Net_remoteSave_Params {\n\treturn Net_remoteSave_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteSave_Params_List) Set(i int, v Net_remoteSave_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteSave_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb5dc333528e5f7ae, s.List)\n\treturn str\n}\n\n// Net_remoteSave_Params_Promise is a wrapper for a Net_remoteSave_Params promised by a client call.\ntype Net_remoteSave_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteSave_Params_Promise) Struct() (Net_remoteSave_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteSave_Params{s}, err\n}\n\ntype Net_remoteSave_Results struct{ capnp.Struct }\n\n// Net_remoteSave_Results_TypeID is the unique identifier for the type Net_remoteSave_Results.\nconst Net_remoteSave_Results_TypeID = 0xe83f954c9635f05a\n\nfunc NewNet_remoteSave_Results(s *capnp.Segment) (Net_remoteSave_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteSave_Results{st}, err\n}\n\nfunc NewRootNet_remoteSave_Results(s *capnp.Segment) (Net_remoteSave_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteSave_Results{st}, err\n}\n\nfunc ReadRootNet_remoteSave_Results(msg *capnp.Message) (Net_remoteSave_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteSave_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteSave_Results) String() string {\n\tstr, _ := text.Marshal(0xe83f954c9635f05a, s.Struct)\n\treturn str\n}\n\n// Net_remoteSave_Results_List is a list of Net_remoteSave_Results.\ntype Net_remoteSave_Results_List struct{ capnp.List }\n\n// NewNet_remoteSave_Results creates a new list of Net_remoteSave_Results.\nfunc NewNet_remoteSave_Results_List(s *capnp.Segment, sz int32) (Net_remoteSave_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteSave_Results_List{l}, err\n}\n\nfunc (s Net_remoteSave_Results_List) At(i int) Net_remoteSave_Results {\n\treturn Net_remoteSave_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteSave_Results_List) Set(i int, v Net_remoteSave_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteSave_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xe83f954c9635f05a, s.List)\n\treturn str\n}\n\n// Net_remoteSave_Results_Promise is a wrapper for a Net_remoteSave_Results promised by a client call.\ntype Net_remoteSave_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteSave_Results_Promise) Struct() (Net_remoteSave_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteSave_Results{s}, err\n}\n\ntype Net_remotePing_Params struct{ capnp.Struct }\n\n// Net_remotePing_Params_TypeID is the unique identifier for the type Net_remotePing_Params.\nconst Net_remotePing_Params_TypeID = 0xbee5e0529f9017ff\n\nfunc NewNet_remotePing_Params(s *capnp.Segment) (Net_remotePing_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remotePing_Params{st}, err\n}\n\nfunc NewRootNet_remotePing_Params(s *capnp.Segment) (Net_remotePing_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remotePing_Params{st}, err\n}\n\nfunc ReadRootNet_remotePing_Params(msg *capnp.Message) (Net_remotePing_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remotePing_Params{root.Struct()}, err\n}\n\nfunc (s Net_remotePing_Params) String() string {\n\tstr, _ := text.Marshal(0xbee5e0529f9017ff, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remotePing_Params) Who() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Net_remotePing_Params) HasWho() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remotePing_Params) WhoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_remotePing_Params) SetWho(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Net_remotePing_Params_List is a list of Net_remotePing_Params.\ntype Net_remotePing_Params_List struct{ capnp.List }\n\n// NewNet_remotePing_Params creates a new list of Net_remotePing_Params.\nfunc NewNet_remotePing_Params_List(s *capnp.Segment, sz int32) (Net_remotePing_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remotePing_Params_List{l}, err\n}\n\nfunc (s Net_remotePing_Params_List) At(i int) Net_remotePing_Params {\n\treturn Net_remotePing_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remotePing_Params_List) Set(i int, v Net_remotePing_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remotePing_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xbee5e0529f9017ff, s.List)\n\treturn str\n}\n\n// Net_remotePing_Params_Promise is a wrapper for a Net_remotePing_Params promised by a client call.\ntype Net_remotePing_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remotePing_Params_Promise) Struct() (Net_remotePing_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remotePing_Params{s}, err\n}\n\ntype Net_remotePing_Results struct{ capnp.Struct }\n\n// Net_remotePing_Results_TypeID is the unique identifier for the type Net_remotePing_Results.\nconst Net_remotePing_Results_TypeID = 0xad37ff6270c35769\n\nfunc NewNet_remotePing_Results(s *capnp.Segment) (Net_remotePing_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_remotePing_Results{st}, err\n}\n\nfunc NewRootNet_remotePing_Results(s *capnp.Segment) (Net_remotePing_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_remotePing_Results{st}, err\n}\n\nfunc ReadRootNet_remotePing_Results(msg *capnp.Message) (Net_remotePing_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remotePing_Results{root.Struct()}, err\n}\n\nfunc (s Net_remotePing_Results) String() string {\n\tstr, _ := text.Marshal(0xad37ff6270c35769, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remotePing_Results) Roundtrip() float64 {\n\treturn math.Float64frombits(s.Struct.Uint64(0))\n}\n\nfunc (s Net_remotePing_Results) SetRoundtrip(v float64) {\n\ts.Struct.SetUint64(0, math.Float64bits(v))\n}\n\n// Net_remotePing_Results_List is a list of Net_remotePing_Results.\ntype Net_remotePing_Results_List struct{ capnp.List }\n\n// NewNet_remotePing_Results creates a new list of Net_remotePing_Results.\nfunc NewNet_remotePing_Results_List(s *capnp.Segment, sz int32) (Net_remotePing_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Net_remotePing_Results_List{l}, err\n}\n\nfunc (s Net_remotePing_Results_List) At(i int) Net_remotePing_Results {\n\treturn Net_remotePing_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remotePing_Results_List) Set(i int, v Net_remotePing_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remotePing_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xad37ff6270c35769, s.List)\n\treturn str\n}\n\n// Net_remotePing_Results_Promise is a wrapper for a Net_remotePing_Results promised by a client call.\ntype Net_remotePing_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remotePing_Results_Promise) Struct() (Net_remotePing_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remotePing_Results{s}, err\n}\n\ntype Net_remoteClear_Params struct{ capnp.Struct }\n\n// Net_remoteClear_Params_TypeID is the unique identifier for the type Net_remoteClear_Params.\nconst Net_remoteClear_Params_TypeID = 0xd35d6ae0fdbd9bc5\n\nfunc NewNet_remoteClear_Params(s *capnp.Segment) (Net_remoteClear_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteClear_Params{st}, err\n}\n\nfunc NewRootNet_remoteClear_Params(s *capnp.Segment) (Net_remoteClear_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteClear_Params{st}, err\n}\n\nfunc ReadRootNet_remoteClear_Params(msg *capnp.Message) (Net_remoteClear_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteClear_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteClear_Params) String() string {\n\tstr, _ := text.Marshal(0xd35d6ae0fdbd9bc5, s.Struct)\n\treturn str\n}\n\n// Net_remoteClear_Params_List is a list of Net_remoteClear_Params.\ntype Net_remoteClear_Params_List struct{ capnp.List }\n\n// NewNet_remoteClear_Params creates a new list of Net_remoteClear_Params.\nfunc NewNet_remoteClear_Params_List(s *capnp.Segment, sz int32) (Net_remoteClear_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteClear_Params_List{l}, err\n}\n\nfunc (s Net_remoteClear_Params_List) At(i int) Net_remoteClear_Params {\n\treturn Net_remoteClear_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteClear_Params_List) Set(i int, v Net_remoteClear_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteClear_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd35d6ae0fdbd9bc5, s.List)\n\treturn str\n}\n\n// Net_remoteClear_Params_Promise is a wrapper for a Net_remoteClear_Params promised by a client call.\ntype Net_remoteClear_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteClear_Params_Promise) Struct() (Net_remoteClear_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteClear_Params{s}, err\n}\n\ntype Net_remoteClear_Results struct{ capnp.Struct }\n\n// Net_remoteClear_Results_TypeID is the unique identifier for the type Net_remoteClear_Results.\nconst Net_remoteClear_Results_TypeID = 0xdc0aec8d179d4ec9\n\nfunc NewNet_remoteClear_Results(s *capnp.Segment) (Net_remoteClear_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteClear_Results{st}, err\n}\n\nfunc NewRootNet_remoteClear_Results(s *capnp.Segment) (Net_remoteClear_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteClear_Results{st}, err\n}\n\nfunc ReadRootNet_remoteClear_Results(msg *capnp.Message) (Net_remoteClear_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteClear_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteClear_Results) String() string {\n\tstr, _ := text.Marshal(0xdc0aec8d179d4ec9, s.Struct)\n\treturn str\n}\n\n// Net_remoteClear_Results_List is a list of Net_remoteClear_Results.\ntype Net_remoteClear_Results_List struct{ capnp.List }\n\n// NewNet_remoteClear_Results creates a new list of Net_remoteClear_Results.\nfunc NewNet_remoteClear_Results_List(s *capnp.Segment, sz int32) (Net_remoteClear_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteClear_Results_List{l}, err\n}\n\nfunc (s Net_remoteClear_Results_List) At(i int) Net_remoteClear_Results {\n\treturn Net_remoteClear_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteClear_Results_List) Set(i int, v Net_remoteClear_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteClear_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xdc0aec8d179d4ec9, s.List)\n\treturn str\n}\n\n// Net_remoteClear_Results_Promise is a wrapper for a Net_remoteClear_Results promised by a client call.\ntype Net_remoteClear_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteClear_Results_Promise) Struct() (Net_remoteClear_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteClear_Results{s}, err\n}\n\ntype Net_netLocate_Params struct{ capnp.Struct }\n\n// Net_netLocate_Params_TypeID is the unique identifier for the type Net_netLocate_Params.\nconst Net_netLocate_Params_TypeID = 0xd701f5ae7e7560e9\n\nfunc NewNet_netLocate_Params(s *capnp.Segment) (Net_netLocate_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn Net_netLocate_Params{st}, err\n}\n\nfunc NewRootNet_netLocate_Params(s *capnp.Segment) (Net_netLocate_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})\n\treturn Net_netLocate_Params{st}, err\n}\n\nfunc ReadRootNet_netLocate_Params(msg *capnp.Message) (Net_netLocate_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_netLocate_Params{root.Struct()}, err\n}\n\nfunc (s Net_netLocate_Params) String() string {\n\tstr, _ := text.Marshal(0xd701f5ae7e7560e9, s.Struct)\n\treturn str\n}\n\nfunc (s Net_netLocate_Params) Who() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Net_netLocate_Params) HasWho() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_netLocate_Params) WhoBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_netLocate_Params) SetWho(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Net_netLocate_Params) TimeoutSec() float64 {\n\treturn math.Float64frombits(s.Struct.Uint64(0))\n}\n\nfunc (s Net_netLocate_Params) SetTimeoutSec(v float64) {\n\ts.Struct.SetUint64(0, math.Float64bits(v))\n}\n\nfunc (s Net_netLocate_Params) LocateMask() (string, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.Text(), err\n}\n\nfunc (s Net_netLocate_Params) HasLocateMask() bool {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_netLocate_Params) LocateMaskBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(1)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_netLocate_Params) SetLocateMask(v string) error {\n\treturn s.Struct.SetText(1, v)\n}\n\n// Net_netLocate_Params_List is a list of Net_netLocate_Params.\ntype Net_netLocate_Params_List struct{ capnp.List }\n\n// NewNet_netLocate_Params creates a new list of Net_netLocate_Params.\nfunc NewNet_netLocate_Params_List(s *capnp.Segment, sz int32) (Net_netLocate_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2}, sz)\n\treturn Net_netLocate_Params_List{l}, err\n}\n\nfunc (s Net_netLocate_Params_List) At(i int) Net_netLocate_Params {\n\treturn Net_netLocate_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_netLocate_Params_List) Set(i int, v Net_netLocate_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_netLocate_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xd701f5ae7e7560e9, s.List)\n\treturn str\n}\n\n// Net_netLocate_Params_Promise is a wrapper for a Net_netLocate_Params promised by a client call.\ntype Net_netLocate_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_netLocate_Params_Promise) Struct() (Net_netLocate_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_netLocate_Params{s}, err\n}\n\ntype Net_netLocate_Results struct{ capnp.Struct }\n\n// Net_netLocate_Results_TypeID is the unique identifier for the type Net_netLocate_Results.\nconst Net_netLocate_Results_TypeID = 0xd2117353ea065c72\n\nfunc NewNet_netLocate_Results(s *capnp.Segment) (Net_netLocate_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_netLocate_Results{st}, err\n}\n\nfunc NewRootNet_netLocate_Results(s *capnp.Segment) (Net_netLocate_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_netLocate_Results{st}, err\n}\n\nfunc ReadRootNet_netLocate_Results(msg *capnp.Message) (Net_netLocate_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_netLocate_Results{root.Struct()}, err\n}\n\nfunc (s Net_netLocate_Results) String() string {\n\tstr, _ := text.Marshal(0xd2117353ea065c72, s.Struct)\n\treturn str\n}\n\nfunc (s Net_netLocate_Results) Ticket() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Net_netLocate_Results) SetTicket(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\n// Net_netLocate_Results_List is a list of Net_netLocate_Results.\ntype Net_netLocate_Results_List struct{ capnp.List }\n\n// NewNet_netLocate_Results creates a new list of Net_netLocate_Results.\nfunc NewNet_netLocate_Results_List(s *capnp.Segment, sz int32) (Net_netLocate_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Net_netLocate_Results_List{l}, err\n}\n\nfunc (s Net_netLocate_Results_List) At(i int) Net_netLocate_Results {\n\treturn Net_netLocate_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_netLocate_Results_List) Set(i int, v Net_netLocate_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_netLocate_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd2117353ea065c72, s.List)\n\treturn str\n}\n\n// Net_netLocate_Results_Promise is a wrapper for a Net_netLocate_Results promised by a client call.\ntype Net_netLocate_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_netLocate_Results_Promise) Struct() (Net_netLocate_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_netLocate_Results{s}, err\n}\n\ntype Net_netLocateNext_Params struct{ capnp.Struct }\n\n// Net_netLocateNext_Params_TypeID is the unique identifier for the type Net_netLocateNext_Params.\nconst Net_netLocateNext_Params_TypeID = 0xc338177a5379031a\n\nfunc NewNet_netLocateNext_Params(s *capnp.Segment) (Net_netLocateNext_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_netLocateNext_Params{st}, err\n}\n\nfunc NewRootNet_netLocateNext_Params(s *capnp.Segment) (Net_netLocateNext_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})\n\treturn Net_netLocateNext_Params{st}, err\n}\n\nfunc ReadRootNet_netLocateNext_Params(msg *capnp.Message) (Net_netLocateNext_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_netLocateNext_Params{root.Struct()}, err\n}\n\nfunc (s Net_netLocateNext_Params) String() string {\n\tstr, _ := text.Marshal(0xc338177a5379031a, s.Struct)\n\treturn str\n}\n\nfunc (s Net_netLocateNext_Params) Ticket() uint64 {\n\treturn s.Struct.Uint64(0)\n}\n\nfunc (s Net_netLocateNext_Params) SetTicket(v uint64) {\n\ts.Struct.SetUint64(0, v)\n}\n\n// Net_netLocateNext_Params_List is a list of Net_netLocateNext_Params.\ntype Net_netLocateNext_Params_List struct{ capnp.List }\n\n// NewNet_netLocateNext_Params creates a new list of Net_netLocateNext_Params.\nfunc NewNet_netLocateNext_Params_List(s *capnp.Segment, sz int32) (Net_netLocateNext_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)\n\treturn Net_netLocateNext_Params_List{l}, err\n}\n\nfunc (s Net_netLocateNext_Params_List) At(i int) Net_netLocateNext_Params {\n\treturn Net_netLocateNext_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_netLocateNext_Params_List) Set(i int, v Net_netLocateNext_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_netLocateNext_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xc338177a5379031a, s.List)\n\treturn str\n}\n\n// Net_netLocateNext_Params_Promise is a wrapper for a Net_netLocateNext_Params promised by a client call.\ntype Net_netLocateNext_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_netLocateNext_Params_Promise) Struct() (Net_netLocateNext_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_netLocateNext_Params{s}, err\n}\n\ntype Net_netLocateNext_Results struct{ capnp.Struct }\n\n// Net_netLocateNext_Results_TypeID is the unique identifier for the type Net_netLocateNext_Results.\nconst Net_netLocateNext_Results_TypeID = 0x9a291d6964350a5b\n\nfunc NewNet_netLocateNext_Results(s *capnp.Segment) (Net_netLocateNext_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_netLocateNext_Results{st}, err\n}\n\nfunc NewRootNet_netLocateNext_Results(s *capnp.Segment) (Net_netLocateNext_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_netLocateNext_Results{st}, err\n}\n\nfunc ReadRootNet_netLocateNext_Results(msg *capnp.Message) (Net_netLocateNext_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_netLocateNext_Results{root.Struct()}, err\n}\n\nfunc (s Net_netLocateNext_Results) String() string {\n\tstr, _ := text.Marshal(0x9a291d6964350a5b, s.Struct)\n\treturn str\n}\n\nfunc (s Net_netLocateNext_Results) Result() (LocateResult, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn LocateResult{Struct: p.Struct()}, err\n}\n\nfunc (s Net_netLocateNext_Results) HasResult() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_netLocateNext_Results) SetResult(v LocateResult) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewResult sets the result field to a newly\n// allocated LocateResult struct, preferring placement in s's segment.\nfunc (s Net_netLocateNext_Results) NewResult() (LocateResult, error) {\n\tss, err := NewLocateResult(s.Struct.Segment())\n\tif err != nil {\n\t\treturn LocateResult{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Net_netLocateNext_Results_List is a list of Net_netLocateNext_Results.\ntype Net_netLocateNext_Results_List struct{ capnp.List }\n\n// NewNet_netLocateNext_Results creates a new list of Net_netLocateNext_Results.\nfunc NewNet_netLocateNext_Results_List(s *capnp.Segment, sz int32) (Net_netLocateNext_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_netLocateNext_Results_List{l}, err\n}\n\nfunc (s Net_netLocateNext_Results_List) At(i int) Net_netLocateNext_Results {\n\treturn Net_netLocateNext_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_netLocateNext_Results_List) Set(i int, v Net_netLocateNext_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_netLocateNext_Results_List) String() string {\n\tstr, _ := text.MarshalList(0x9a291d6964350a5b, s.List)\n\treturn str\n}\n\n// Net_netLocateNext_Results_Promise is a wrapper for a Net_netLocateNext_Results promised by a client call.\ntype Net_netLocateNext_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_netLocateNext_Results_Promise) Struct() (Net_netLocateNext_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_netLocateNext_Results{s}, err\n}\n\nfunc (p Net_netLocateNext_Results_Promise) Result() LocateResult_Promise {\n\treturn LocateResult_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Net_whoami_Params struct{ capnp.Struct }\n\n// Net_whoami_Params_TypeID is the unique identifier for the type Net_whoami_Params.\nconst Net_whoami_Params_TypeID = 0x86541181da6400f7\n\nfunc NewNet_whoami_Params(s *capnp.Segment) (Net_whoami_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_whoami_Params{st}, err\n}\n\nfunc NewRootNet_whoami_Params(s *capnp.Segment) (Net_whoami_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_whoami_Params{st}, err\n}\n\nfunc ReadRootNet_whoami_Params(msg *capnp.Message) (Net_whoami_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_whoami_Params{root.Struct()}, err\n}\n\nfunc (s Net_whoami_Params) String() string {\n\tstr, _ := text.Marshal(0x86541181da6400f7, s.Struct)\n\treturn str\n}\n\n// Net_whoami_Params_List is a list of Net_whoami_Params.\ntype Net_whoami_Params_List struct{ capnp.List }\n\n// NewNet_whoami_Params creates a new list of Net_whoami_Params.\nfunc NewNet_whoami_Params_List(s *capnp.Segment, sz int32) (Net_whoami_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_whoami_Params_List{l}, err\n}\n\nfunc (s Net_whoami_Params_List) At(i int) Net_whoami_Params {\n\treturn Net_whoami_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_whoami_Params_List) Set(i int, v Net_whoami_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_whoami_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x86541181da6400f7, s.List)\n\treturn str\n}\n\n// Net_whoami_Params_Promise is a wrapper for a Net_whoami_Params promised by a client call.\ntype Net_whoami_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_whoami_Params_Promise) Struct() (Net_whoami_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_whoami_Params{s}, err\n}\n\ntype Net_whoami_Results struct{ capnp.Struct }\n\n// Net_whoami_Results_TypeID is the unique identifier for the type Net_whoami_Results.\nconst Net_whoami_Results_TypeID = 0xd0071dd673841599\n\nfunc NewNet_whoami_Results(s *capnp.Segment) (Net_whoami_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_whoami_Results{st}, err\n}\n\nfunc NewRootNet_whoami_Results(s *capnp.Segment) (Net_whoami_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_whoami_Results{st}, err\n}\n\nfunc ReadRootNet_whoami_Results(msg *capnp.Message) (Net_whoami_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_whoami_Results{root.Struct()}, err\n}\n\nfunc (s Net_whoami_Results) String() string {\n\tstr, _ := text.Marshal(0xd0071dd673841599, s.Struct)\n\treturn str\n}\n\nfunc (s Net_whoami_Results) Whoami() (Identity, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Identity{Struct: p.Struct()}, err\n}\n\nfunc (s Net_whoami_Results) HasWhoami() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_whoami_Results) SetWhoami(v Identity) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewWhoami sets the whoami field to a newly\n// allocated Identity struct, preferring placement in s's segment.\nfunc (s Net_whoami_Results) NewWhoami() (Identity, error) {\n\tss, err := NewIdentity(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Identity{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Net_whoami_Results_List is a list of Net_whoami_Results.\ntype Net_whoami_Results_List struct{ capnp.List }\n\n// NewNet_whoami_Results creates a new list of Net_whoami_Results.\nfunc NewNet_whoami_Results_List(s *capnp.Segment, sz int32) (Net_whoami_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_whoami_Results_List{l}, err\n}\n\nfunc (s Net_whoami_Results_List) At(i int) Net_whoami_Results {\n\treturn Net_whoami_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_whoami_Results_List) Set(i int, v Net_whoami_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_whoami_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xd0071dd673841599, s.List)\n\treturn str\n}\n\n// Net_whoami_Results_Promise is a wrapper for a Net_whoami_Results promised by a client call.\ntype Net_whoami_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_whoami_Results_Promise) Struct() (Net_whoami_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_whoami_Results{s}, err\n}\n\nfunc (p Net_whoami_Results_Promise) Whoami() Identity_Promise {\n\treturn Identity_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Net_connect_Params struct{ capnp.Struct }\n\n// Net_connect_Params_TypeID is the unique identifier for the type Net_connect_Params.\nconst Net_connect_Params_TypeID = 0xaf631f5cddda9aa3\n\nfunc NewNet_connect_Params(s *capnp.Segment) (Net_connect_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_connect_Params{st}, err\n}\n\nfunc NewRootNet_connect_Params(s *capnp.Segment) (Net_connect_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_connect_Params{st}, err\n}\n\nfunc ReadRootNet_connect_Params(msg *capnp.Message) (Net_connect_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_connect_Params{root.Struct()}, err\n}\n\nfunc (s Net_connect_Params) String() string {\n\tstr, _ := text.Marshal(0xaf631f5cddda9aa3, s.Struct)\n\treturn str\n}\n\n// Net_connect_Params_List is a list of Net_connect_Params.\ntype Net_connect_Params_List struct{ capnp.List }\n\n// NewNet_connect_Params creates a new list of Net_connect_Params.\nfunc NewNet_connect_Params_List(s *capnp.Segment, sz int32) (Net_connect_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_connect_Params_List{l}, err\n}\n\nfunc (s Net_connect_Params_List) At(i int) Net_connect_Params {\n\treturn Net_connect_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_connect_Params_List) Set(i int, v Net_connect_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_connect_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xaf631f5cddda9aa3, s.List)\n\treturn str\n}\n\n// Net_connect_Params_Promise is a wrapper for a Net_connect_Params promised by a client call.\ntype Net_connect_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_connect_Params_Promise) Struct() (Net_connect_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_connect_Params{s}, err\n}\n\ntype Net_connect_Results struct{ capnp.Struct }\n\n// Net_connect_Results_TypeID is the unique identifier for the type Net_connect_Results.\nconst Net_connect_Results_TypeID = 0xcb6e3e65f2dbc914\n\nfunc NewNet_connect_Results(s *capnp.Segment) (Net_connect_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_connect_Results{st}, err\n}\n\nfunc NewRootNet_connect_Results(s *capnp.Segment) (Net_connect_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_connect_Results{st}, err\n}\n\nfunc ReadRootNet_connect_Results(msg *capnp.Message) (Net_connect_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_connect_Results{root.Struct()}, err\n}\n\nfunc (s Net_connect_Results) String() string {\n\tstr, _ := text.Marshal(0xcb6e3e65f2dbc914, s.Struct)\n\treturn str\n}\n\n// Net_connect_Results_List is a list of Net_connect_Results.\ntype Net_connect_Results_List struct{ capnp.List }\n\n// NewNet_connect_Results creates a new list of Net_connect_Results.\nfunc NewNet_connect_Results_List(s *capnp.Segment, sz int32) (Net_connect_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_connect_Results_List{l}, err\n}\n\nfunc (s Net_connect_Results_List) At(i int) Net_connect_Results {\n\treturn Net_connect_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_connect_Results_List) Set(i int, v Net_connect_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_connect_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xcb6e3e65f2dbc914, s.List)\n\treturn str\n}\n\n// Net_connect_Results_Promise is a wrapper for a Net_connect_Results promised by a client call.\ntype Net_connect_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_connect_Results_Promise) Struct() (Net_connect_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_connect_Results{s}, err\n}\n\ntype Net_disconnect_Params struct{ capnp.Struct }\n\n// Net_disconnect_Params_TypeID is the unique identifier for the type Net_disconnect_Params.\nconst Net_disconnect_Params_TypeID = 0xe19b7cffa7304650\n\nfunc NewNet_disconnect_Params(s *capnp.Segment) (Net_disconnect_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_disconnect_Params{st}, err\n}\n\nfunc NewRootNet_disconnect_Params(s *capnp.Segment) (Net_disconnect_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_disconnect_Params{st}, err\n}\n\nfunc ReadRootNet_disconnect_Params(msg *capnp.Message) (Net_disconnect_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_disconnect_Params{root.Struct()}, err\n}\n\nfunc (s Net_disconnect_Params) String() string {\n\tstr, _ := text.Marshal(0xe19b7cffa7304650, s.Struct)\n\treturn str\n}\n\n// Net_disconnect_Params_List is a list of Net_disconnect_Params.\ntype Net_disconnect_Params_List struct{ capnp.List }\n\n// NewNet_disconnect_Params creates a new list of Net_disconnect_Params.\nfunc NewNet_disconnect_Params_List(s *capnp.Segment, sz int32) (Net_disconnect_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_disconnect_Params_List{l}, err\n}\n\nfunc (s Net_disconnect_Params_List) At(i int) Net_disconnect_Params {\n\treturn Net_disconnect_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_disconnect_Params_List) Set(i int, v Net_disconnect_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_disconnect_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe19b7cffa7304650, s.List)\n\treturn str\n}\n\n// Net_disconnect_Params_Promise is a wrapper for a Net_disconnect_Params promised by a client call.\ntype Net_disconnect_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_disconnect_Params_Promise) Struct() (Net_disconnect_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_disconnect_Params{s}, err\n}\n\ntype Net_disconnect_Results struct{ capnp.Struct }\n\n// Net_disconnect_Results_TypeID is the unique identifier for the type Net_disconnect_Results.\nconst Net_disconnect_Results_TypeID = 0xb9095b6d17298884\n\nfunc NewNet_disconnect_Results(s *capnp.Segment) (Net_disconnect_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_disconnect_Results{st}, err\n}\n\nfunc NewRootNet_disconnect_Results(s *capnp.Segment) (Net_disconnect_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_disconnect_Results{st}, err\n}\n\nfunc ReadRootNet_disconnect_Results(msg *capnp.Message) (Net_disconnect_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_disconnect_Results{root.Struct()}, err\n}\n\nfunc (s Net_disconnect_Results) String() string {\n\tstr, _ := text.Marshal(0xb9095b6d17298884, s.Struct)\n\treturn str\n}\n\n// Net_disconnect_Results_List is a list of Net_disconnect_Results.\ntype Net_disconnect_Results_List struct{ capnp.List }\n\n// NewNet_disconnect_Results creates a new list of Net_disconnect_Results.\nfunc NewNet_disconnect_Results_List(s *capnp.Segment, sz int32) (Net_disconnect_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_disconnect_Results_List{l}, err\n}\n\nfunc (s Net_disconnect_Results_List) At(i int) Net_disconnect_Results {\n\treturn Net_disconnect_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_disconnect_Results_List) Set(i int, v Net_disconnect_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_disconnect_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb9095b6d17298884, s.List)\n\treturn str\n}\n\n// Net_disconnect_Results_Promise is a wrapper for a Net_disconnect_Results promised by a client call.\ntype Net_disconnect_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_disconnect_Results_Promise) Struct() (Net_disconnect_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_disconnect_Results{s}, err\n}\n\ntype Net_remoteOnlineList_Params struct{ capnp.Struct }\n\n// Net_remoteOnlineList_Params_TypeID is the unique identifier for the type Net_remoteOnlineList_Params.\nconst Net_remoteOnlineList_Params_TypeID = 0xb13597d7a0d68f31\n\nfunc NewNet_remoteOnlineList_Params(s *capnp.Segment) (Net_remoteOnlineList_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteOnlineList_Params{st}, err\n}\n\nfunc NewRootNet_remoteOnlineList_Params(s *capnp.Segment) (Net_remoteOnlineList_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_remoteOnlineList_Params{st}, err\n}\n\nfunc ReadRootNet_remoteOnlineList_Params(msg *capnp.Message) (Net_remoteOnlineList_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteOnlineList_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteOnlineList_Params) String() string {\n\tstr, _ := text.Marshal(0xb13597d7a0d68f31, s.Struct)\n\treturn str\n}\n\n// Net_remoteOnlineList_Params_List is a list of Net_remoteOnlineList_Params.\ntype Net_remoteOnlineList_Params_List struct{ capnp.List }\n\n// NewNet_remoteOnlineList_Params creates a new list of Net_remoteOnlineList_Params.\nfunc NewNet_remoteOnlineList_Params_List(s *capnp.Segment, sz int32) (Net_remoteOnlineList_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_remoteOnlineList_Params_List{l}, err\n}\n\nfunc (s Net_remoteOnlineList_Params_List) At(i int) Net_remoteOnlineList_Params {\n\treturn Net_remoteOnlineList_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteOnlineList_Params_List) Set(i int, v Net_remoteOnlineList_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteOnlineList_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xb13597d7a0d68f31, s.List)\n\treturn str\n}\n\n// Net_remoteOnlineList_Params_Promise is a wrapper for a Net_remoteOnlineList_Params promised by a client call.\ntype Net_remoteOnlineList_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteOnlineList_Params_Promise) Struct() (Net_remoteOnlineList_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteOnlineList_Params{s}, err\n}\n\ntype Net_remoteOnlineList_Results struct{ capnp.Struct }\n\n// Net_remoteOnlineList_Results_TypeID is the unique identifier for the type Net_remoteOnlineList_Results.\nconst Net_remoteOnlineList_Results_TypeID = 0xb973694cb94aee47\n\nfunc NewNet_remoteOnlineList_Results(s *capnp.Segment) (Net_remoteOnlineList_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteOnlineList_Results{st}, err\n}\n\nfunc NewRootNet_remoteOnlineList_Results(s *capnp.Segment) (Net_remoteOnlineList_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteOnlineList_Results{st}, err\n}\n\nfunc ReadRootNet_remoteOnlineList_Results(msg *capnp.Message) (Net_remoteOnlineList_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteOnlineList_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteOnlineList_Results) String() string {\n\tstr, _ := text.Marshal(0xb973694cb94aee47, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteOnlineList_Results) Infos() (RemoteStatus_List, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn RemoteStatus_List{List: p.List()}, err\n}\n\nfunc (s Net_remoteOnlineList_Results) HasInfos() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteOnlineList_Results) SetInfos(v RemoteStatus_List) error {\n\treturn s.Struct.SetPtr(0, v.List.ToPtr())\n}\n\n// NewInfos sets the infos field to a newly\n// allocated RemoteStatus_List, preferring placement in s's segment.\nfunc (s Net_remoteOnlineList_Results) NewInfos(n int32) (RemoteStatus_List, error) {\n\tl, err := NewRemoteStatus_List(s.Struct.Segment(), n)\n\tif err != nil {\n\t\treturn RemoteStatus_List{}, err\n\t}\n\terr = s.Struct.SetPtr(0, l.List.ToPtr())\n\treturn l, err\n}\n\n// Net_remoteOnlineList_Results_List is a list of Net_remoteOnlineList_Results.\ntype Net_remoteOnlineList_Results_List struct{ capnp.List }\n\n// NewNet_remoteOnlineList_Results creates a new list of Net_remoteOnlineList_Results.\nfunc NewNet_remoteOnlineList_Results_List(s *capnp.Segment, sz int32) (Net_remoteOnlineList_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteOnlineList_Results_List{l}, err\n}\n\nfunc (s Net_remoteOnlineList_Results_List) At(i int) Net_remoteOnlineList_Results {\n\treturn Net_remoteOnlineList_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteOnlineList_Results_List) Set(i int, v Net_remoteOnlineList_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteOnlineList_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xb973694cb94aee47, s.List)\n\treturn str\n}\n\n// Net_remoteOnlineList_Results_Promise is a wrapper for a Net_remoteOnlineList_Results promised by a client call.\ntype Net_remoteOnlineList_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteOnlineList_Results_Promise) Struct() (Net_remoteOnlineList_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteOnlineList_Results{s}, err\n}\n\ntype Net_remoteByName_Params struct{ capnp.Struct }\n\n// Net_remoteByName_Params_TypeID is the unique identifier for the type Net_remoteByName_Params.\nconst Net_remoteByName_Params_TypeID = 0x91ac69870ceff408\n\nfunc NewNet_remoteByName_Params(s *capnp.Segment) (Net_remoteByName_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteByName_Params{st}, err\n}\n\nfunc NewRootNet_remoteByName_Params(s *capnp.Segment) (Net_remoteByName_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteByName_Params{st}, err\n}\n\nfunc ReadRootNet_remoteByName_Params(msg *capnp.Message) (Net_remoteByName_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteByName_Params{root.Struct()}, err\n}\n\nfunc (s Net_remoteByName_Params) String() string {\n\tstr, _ := text.Marshal(0x91ac69870ceff408, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteByName_Params) Name() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Net_remoteByName_Params) HasName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteByName_Params) NameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_remoteByName_Params) SetName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\n// Net_remoteByName_Params_List is a list of Net_remoteByName_Params.\ntype Net_remoteByName_Params_List struct{ capnp.List }\n\n// NewNet_remoteByName_Params creates a new list of Net_remoteByName_Params.\nfunc NewNet_remoteByName_Params_List(s *capnp.Segment, sz int32) (Net_remoteByName_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteByName_Params_List{l}, err\n}\n\nfunc (s Net_remoteByName_Params_List) At(i int) Net_remoteByName_Params {\n\treturn Net_remoteByName_Params{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteByName_Params_List) Set(i int, v Net_remoteByName_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteByName_Params_List) String() string {\n\tstr, _ := text.MarshalList(0x91ac69870ceff408, s.List)\n\treturn str\n}\n\n// Net_remoteByName_Params_Promise is a wrapper for a Net_remoteByName_Params promised by a client call.\ntype Net_remoteByName_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteByName_Params_Promise) Struct() (Net_remoteByName_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteByName_Params{s}, err\n}\n\ntype Net_remoteByName_Results struct{ capnp.Struct }\n\n// Net_remoteByName_Results_TypeID is the unique identifier for the type Net_remoteByName_Results.\nconst Net_remoteByName_Results_TypeID = 0xac6cc5b649f638a8\n\nfunc NewNet_remoteByName_Results(s *capnp.Segment) (Net_remoteByName_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteByName_Results{st}, err\n}\n\nfunc NewRootNet_remoteByName_Results(s *capnp.Segment) (Net_remoteByName_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})\n\treturn Net_remoteByName_Results{st}, err\n}\n\nfunc ReadRootNet_remoteByName_Results(msg *capnp.Message) (Net_remoteByName_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_remoteByName_Results{root.Struct()}, err\n}\n\nfunc (s Net_remoteByName_Results) String() string {\n\tstr, _ := text.Marshal(0xac6cc5b649f638a8, s.Struct)\n\treturn str\n}\n\nfunc (s Net_remoteByName_Results) Remote() (Remote, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn Remote{Struct: p.Struct()}, err\n}\n\nfunc (s Net_remoteByName_Results) HasRemote() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_remoteByName_Results) SetRemote(v Remote) error {\n\treturn s.Struct.SetPtr(0, v.Struct.ToPtr())\n}\n\n// NewRemote sets the remote field to a newly\n// allocated Remote struct, preferring placement in s's segment.\nfunc (s Net_remoteByName_Results) NewRemote() (Remote, error) {\n\tss, err := NewRemote(s.Struct.Segment())\n\tif err != nil {\n\t\treturn Remote{}, err\n\t}\n\terr = s.Struct.SetPtr(0, ss.Struct.ToPtr())\n\treturn ss, err\n}\n\n// Net_remoteByName_Results_List is a list of Net_remoteByName_Results.\ntype Net_remoteByName_Results_List struct{ capnp.List }\n\n// NewNet_remoteByName_Results creates a new list of Net_remoteByName_Results.\nfunc NewNet_remoteByName_Results_List(s *capnp.Segment, sz int32) (Net_remoteByName_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)\n\treturn Net_remoteByName_Results_List{l}, err\n}\n\nfunc (s Net_remoteByName_Results_List) At(i int) Net_remoteByName_Results {\n\treturn Net_remoteByName_Results{s.List.Struct(i)}\n}\n\nfunc (s Net_remoteByName_Results_List) Set(i int, v Net_remoteByName_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_remoteByName_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xac6cc5b649f638a8, s.List)\n\treturn str\n}\n\n// Net_remoteByName_Results_Promise is a wrapper for a Net_remoteByName_Results promised by a client call.\ntype Net_remoteByName_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_remoteByName_Results_Promise) Struct() (Net_remoteByName_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_remoteByName_Results{s}, err\n}\n\nfunc (p Net_remoteByName_Results_Promise) Remote() Remote_Promise {\n\treturn Remote_Promise{Pipeline: p.Pipeline.GetPipeline(0)}\n}\n\ntype Net_push_Params struct{ capnp.Struct }\n\n// Net_push_Params_TypeID is the unique identifier for the type Net_push_Params.\nconst Net_push_Params_TypeID = 0xe88fae3b2e03bc0c\n\nfunc NewNet_push_Params(s *capnp.Segment) (Net_push_Params, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn Net_push_Params{st}, err\n}\n\nfunc NewRootNet_push_Params(s *capnp.Segment) (Net_push_Params, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})\n\treturn Net_push_Params{st}, err\n}\n\nfunc ReadRootNet_push_Params(msg *capnp.Message) (Net_push_Params, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_push_Params{root.Struct()}, err\n}\n\nfunc (s Net_push_Params) String() string {\n\tstr, _ := text.Marshal(0xe88fae3b2e03bc0c, s.Struct)\n\treturn str\n}\n\nfunc (s Net_push_Params) RemoteName() (string, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.Text(), err\n}\n\nfunc (s Net_push_Params) HasRemoteName() bool {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.IsValid() || err != nil\n}\n\nfunc (s Net_push_Params) RemoteNameBytes() ([]byte, error) {\n\tp, err := s.Struct.Ptr(0)\n\treturn p.TextBytes(), err\n}\n\nfunc (s Net_push_Params) SetRemoteName(v string) error {\n\treturn s.Struct.SetText(0, v)\n}\n\nfunc (s Net_push_Params) DryRun() bool {\n\treturn s.Struct.Bit(0)\n}\n\nfunc (s Net_push_Params) SetDryRun(v bool) {\n\ts.Struct.SetBit(0, v)\n}\n\n// Net_push_Params_List is a list of Net_push_Params.\ntype Net_push_Params_List struct{ capnp.List }\n\n// NewNet_push_Params creates a new list of Net_push_Params.\nfunc NewNet_push_Params_List(s *capnp.Segment, sz int32) (Net_push_Params_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)\n\treturn Net_push_Params_List{l}, err\n}\n\nfunc (s Net_push_Params_List) At(i int) Net_push_Params { return Net_push_Params{s.List.Struct(i)} }\n\nfunc (s Net_push_Params_List) Set(i int, v Net_push_Params) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_push_Params_List) String() string {\n\tstr, _ := text.MarshalList(0xe88fae3b2e03bc0c, s.List)\n\treturn str\n}\n\n// Net_push_Params_Promise is a wrapper for a Net_push_Params promised by a client call.\ntype Net_push_Params_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_push_Params_Promise) Struct() (Net_push_Params, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_push_Params{s}, err\n}\n\ntype Net_push_Results struct{ capnp.Struct }\n\n// Net_push_Results_TypeID is the unique identifier for the type Net_push_Results.\nconst Net_push_Results_TypeID = 0xa073a01c891a0f7f\n\nfunc NewNet_push_Results(s *capnp.Segment) (Net_push_Results, error) {\n\tst, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_push_Results{st}, err\n}\n\nfunc NewRootNet_push_Results(s *capnp.Segment) (Net_push_Results, error) {\n\tst, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})\n\treturn Net_push_Results{st}, err\n}\n\nfunc ReadRootNet_push_Results(msg *capnp.Message) (Net_push_Results, error) {\n\troot, err := msg.RootPtr()\n\treturn Net_push_Results{root.Struct()}, err\n}\n\nfunc (s Net_push_Results) String() string {\n\tstr, _ := text.Marshal(0xa073a01c891a0f7f, s.Struct)\n\treturn str\n}\n\n// Net_push_Results_List is a list of Net_push_Results.\ntype Net_push_Results_List struct{ capnp.List }\n\n// NewNet_push_Results creates a new list of Net_push_Results.\nfunc NewNet_push_Results_List(s *capnp.Segment, sz int32) (Net_push_Results_List, error) {\n\tl, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)\n\treturn Net_push_Results_List{l}, err\n}\n\nfunc (s Net_push_Results_List) At(i int) Net_push_Results { return Net_push_Results{s.List.Struct(i)} }\n\nfunc (s Net_push_Results_List) Set(i int, v Net_push_Results) error {\n\treturn s.List.SetStruct(i, v.Struct)\n}\n\nfunc (s Net_push_Results_List) String() string {\n\tstr, _ := text.MarshalList(0xa073a01c891a0f7f, s.List)\n\treturn str\n}\n\n// Net_push_Results_Promise is a wrapper for a Net_push_Results promised by a client call.\ntype Net_push_Results_Promise struct{ *capnp.Pipeline }\n\nfunc (p Net_push_Results_Promise) Struct() (Net_push_Results, error) {\n\ts, err := p.Pipeline.Struct()\n\treturn Net_push_Results{s}, err\n}\n\ntype API struct{ Client capnp.Client }\n\n// API_TypeID is the unique identifier for the type API.\nconst API_TypeID = 0xfc487818328b97ef\n\nfunc (c API) Stage(ctx context.Context, params func(FS_stage_Params) error, opts ...capnp.CallOption) FS_stage_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stage_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stage\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stage_Params{Struct: s}) }\n\t}\n\treturn FS_stage_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) List(ctx context.Context, params func(FS_list_Params) error, opts ...capnp.CallOption) FS_list_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_list_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"list\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_list_Params{Struct: s}) }\n\t}\n\treturn FS_list_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Cat(ctx context.Context, params func(FS_cat_Params) error, opts ...capnp.CallOption) FS_cat_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_cat_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"cat\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_cat_Params{Struct: s}) }\n\t}\n\treturn FS_cat_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Mkdir(ctx context.Context, params func(FS_mkdir_Params) error, opts ...capnp.CallOption) FS_mkdir_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_mkdir_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"mkdir\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_mkdir_Params{Struct: s}) }\n\t}\n\treturn FS_mkdir_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Remove(ctx context.Context, params func(FS_remove_Params) error, opts ...capnp.CallOption) FS_remove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_remove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"remove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_remove_Params{Struct: s}) }\n\t}\n\treturn FS_remove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Move(ctx context.Context, params func(FS_move_Params) error, opts ...capnp.CallOption) FS_move_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_move_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"move\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_move_Params{Struct: s}) }\n\t}\n\treturn FS_move_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Copy(ctx context.Context, params func(FS_copy_Params) error, opts ...capnp.CallOption) FS_copy_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_copy_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"copy\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_copy_Params{Struct: s}) }\n\t}\n\treturn FS_copy_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Pin(ctx context.Context, params func(FS_pin_Params) error, opts ...capnp.CallOption) FS_pin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_pin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"pin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_pin_Params{Struct: s}) }\n\t}\n\treturn FS_pin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Unpin(ctx context.Context, params func(FS_unpin_Params) error, opts ...capnp.CallOption) FS_unpin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_unpin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"unpin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_unpin_Params{Struct: s}) }\n\t}\n\treturn FS_unpin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Stat(ctx context.Context, params func(FS_stat_Params) error, opts ...capnp.CallOption) FS_stat_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stat_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stat\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stat_Params{Struct: s}) }\n\t}\n\treturn FS_stat_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) GarbageCollect(ctx context.Context, params func(FS_garbageCollect_Params) error, opts ...capnp.CallOption) FS_garbageCollect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_garbageCollect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"garbageCollect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_garbageCollect_Params{Struct: s}) }\n\t}\n\treturn FS_garbageCollect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Touch(ctx context.Context, params func(FS_touch_Params) error, opts ...capnp.CallOption) FS_touch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_touch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"touch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_touch_Params{Struct: s}) }\n\t}\n\treturn FS_touch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Exists(ctx context.Context, params func(FS_exists_Params) error, opts ...capnp.CallOption) FS_exists_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_exists_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"exists\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_exists_Params{Struct: s}) }\n\t}\n\treturn FS_exists_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Tar(ctx context.Context, params func(FS_tar_Params) error, opts ...capnp.CallOption) FS_tar_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_tar_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"tar\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_tar_Params{Struct: s}) }\n\t}\n\treturn FS_tar_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) DeletedNodes(ctx context.Context, params func(FS_deletedNodes_Params) error, opts ...capnp.CallOption) FS_deletedNodes_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_deletedNodes_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"deletedNodes\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_deletedNodes_Params{Struct: s}) }\n\t}\n\treturn FS_deletedNodes_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Undelete(ctx context.Context, params func(FS_undelete_Params) error, opts ...capnp.CallOption) FS_undelete_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_undelete_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"undelete\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_undelete_Params{Struct: s}) }\n\t}\n\treturn FS_undelete_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Repin(ctx context.Context, params func(FS_repin_Params) error, opts ...capnp.CallOption) FS_repin_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_repin_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"repin\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_repin_Params{Struct: s}) }\n\t}\n\treturn FS_repin_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) IsCached(ctx context.Context, params func(FS_isCached_Params) error, opts ...capnp.CallOption) FS_isCached_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_isCached_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"isCached\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_isCached_Params{Struct: s}) }\n\t}\n\treturn FS_isCached_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) StageFromStream(ctx context.Context, params func(FS_stageFromStream_Params) error, opts ...capnp.CallOption) FS_stageFromStream_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_stageFromStream_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stageFromStream\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_stageFromStream_Params{Struct: s}) }\n\t}\n\treturn FS_stageFromStream_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RecodeStream(ctx context.Context, params func(FS_recodeStream_Params) error, opts ...capnp.CallOption) FS_recodeStream_Results_Promise {\n\tif c.Client == nil {\n\t\treturn FS_recodeStream_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"recodeStream\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(FS_recodeStream_Params{Struct: s}) }\n\t}\n\treturn FS_recodeStream_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Log(ctx context.Context, params func(VCS_log_Params) error, opts ...capnp.CallOption) VCS_log_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_log_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"log\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_log_Params{Struct: s}) }\n\t}\n\treturn VCS_log_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Commit(ctx context.Context, params func(VCS_commit_Params) error, opts ...capnp.CallOption) VCS_commit_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_commit_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commit\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_commit_Params{Struct: s}) }\n\t}\n\treturn VCS_commit_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Tag(ctx context.Context, params func(VCS_tag_Params) error, opts ...capnp.CallOption) VCS_tag_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_tag_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"tag\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_tag_Params{Struct: s}) }\n\t}\n\treturn VCS_tag_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Untag(ctx context.Context, params func(VCS_untag_Params) error, opts ...capnp.CallOption) VCS_untag_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_untag_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"untag\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_untag_Params{Struct: s}) }\n\t}\n\treturn VCS_untag_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Reset(ctx context.Context, params func(VCS_reset_Params) error, opts ...capnp.CallOption) VCS_reset_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_reset_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"reset\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_reset_Params{Struct: s}) }\n\t}\n\treturn VCS_reset_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) History(ctx context.Context, params func(VCS_history_Params) error, opts ...capnp.CallOption) VCS_history_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_history_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"history\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_history_Params{Struct: s}) }\n\t}\n\treturn VCS_history_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) MakeDiff(ctx context.Context, params func(VCS_makeDiff_Params) error, opts ...capnp.CallOption) VCS_makeDiff_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_makeDiff_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"makeDiff\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 4}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_makeDiff_Params{Struct: s}) }\n\t}\n\treturn VCS_makeDiff_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Sync(ctx context.Context, params func(VCS_sync_Params) error, opts ...capnp.CallOption) VCS_sync_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_sync_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"sync\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_sync_Params{Struct: s}) }\n\t}\n\treturn VCS_sync_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Fetch(ctx context.Context, params func(VCS_fetch_Params) error, opts ...capnp.CallOption) VCS_fetch_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_fetch_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"fetch\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_fetch_Params{Struct: s}) }\n\t}\n\treturn VCS_fetch_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) CommitInfo(ctx context.Context, params func(VCS_commitInfo_Params) error, opts ...capnp.CallOption) VCS_commitInfo_Results_Promise {\n\tif c.Client == nil {\n\t\treturn VCS_commitInfo_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commitInfo\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(VCS_commitInfo_Params{Struct: s}) }\n\t}\n\treturn VCS_commitInfo_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Quit(ctx context.Context, params func(Repo_quit_Params) error, opts ...capnp.CallOption) Repo_quit_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_quit_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"quit\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_quit_Params{Struct: s}) }\n\t}\n\treturn Repo_quit_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Ping(ctx context.Context, params func(Repo_ping_Params) error, opts ...capnp.CallOption) Repo_ping_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_ping_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_ping_Params{Struct: s}) }\n\t}\n\treturn Repo_ping_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Mount(ctx context.Context, params func(Repo_mount_Params) error, opts ...capnp.CallOption) Repo_mount_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_mount_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"mount\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_mount_Params{Struct: s}) }\n\t}\n\treturn Repo_mount_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Unmount(ctx context.Context, params func(Repo_unmount_Params) error, opts ...capnp.CallOption) Repo_unmount_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_unmount_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"unmount\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_unmount_Params{Struct: s}) }\n\t}\n\treturn Repo_unmount_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) ConfigGet(ctx context.Context, params func(Repo_configGet_Params) error, opts ...capnp.CallOption) Repo_configGet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configGet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configGet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configGet_Params{Struct: s}) }\n\t}\n\treturn Repo_configGet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) ConfigSet(ctx context.Context, params func(Repo_configSet_Params) error, opts ...capnp.CallOption) Repo_configSet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configSet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configSet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configSet_Params{Struct: s}) }\n\t}\n\treturn Repo_configSet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) ConfigAll(ctx context.Context, params func(Repo_configAll_Params) error, opts ...capnp.CallOption) Repo_configAll_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configAll_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configAll\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configAll_Params{Struct: s}) }\n\t}\n\treturn Repo_configAll_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) ConfigDoc(ctx context.Context, params func(Repo_configDoc_Params) error, opts ...capnp.CallOption) Repo_configDoc_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_configDoc_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configDoc\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_configDoc_Params{Struct: s}) }\n\t}\n\treturn Repo_configDoc_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Become(ctx context.Context, params func(Repo_become_Params) error, opts ...capnp.CallOption) Repo_become_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_become_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"become\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_become_Params{Struct: s}) }\n\t}\n\treturn Repo_become_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FstabAdd(ctx context.Context, params func(Repo_fstabAdd_Params) error, opts ...capnp.CallOption) Repo_fstabAdd_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabAdd_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabAdd\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 3}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabAdd_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabAdd_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FstabRemove(ctx context.Context, params func(Repo_fstabRemove_Params) error, opts ...capnp.CallOption) Repo_fstabRemove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabRemove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabRemove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabRemove_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabRemove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FstabApply(ctx context.Context, params func(Repo_fstabApply_Params) error, opts ...capnp.CallOption) Repo_fstabApply_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabApply_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabApply\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabApply_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabApply_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FstabList(ctx context.Context, params func(Repo_fstabList_Params) error, opts ...capnp.CallOption) Repo_fstabList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabList_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) FstabUnmountAll(ctx context.Context, params func(Repo_fstabUnmountAll_Params) error, opts ...capnp.CallOption) Repo_fstabUnmountAll_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_fstabUnmountAll_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabUnmountAll\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_fstabUnmountAll_Params{Struct: s}) }\n\t}\n\treturn Repo_fstabUnmountAll_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Version(ctx context.Context, params func(Repo_version_Params) error, opts ...capnp.CallOption) Repo_version_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_version_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_version_Params{Struct: s}) }\n\t}\n\treturn Repo_version_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) GatewayUserAdd(ctx context.Context, params func(Repo_gatewayUserAdd_Params) error, opts ...capnp.CallOption) Repo_gatewayUserAdd_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserAdd_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserAdd\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 4}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserAdd_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserAdd_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) GatewayUserRm(ctx context.Context, params func(Repo_gatewayUserRm_Params) error, opts ...capnp.CallOption) Repo_gatewayUserRm_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserRm_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserRm\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserRm_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserRm_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) GatewayUserList(ctx context.Context, params func(Repo_gatewayUserList_Params) error, opts ...capnp.CallOption) Repo_gatewayUserList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_gatewayUserList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_gatewayUserList_Params{Struct: s}) }\n\t}\n\treturn Repo_gatewayUserList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) DebugProfilePort(ctx context.Context, params func(Repo_debugProfilePort_Params) error, opts ...capnp.CallOption) Repo_debugProfilePort_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_debugProfilePort_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"debugProfilePort\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_debugProfilePort_Params{Struct: s}) }\n\t}\n\treturn Repo_debugProfilePort_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) HintSet(ctx context.Context, params func(Repo_hintSet_Params) error, opts ...capnp.CallOption) Repo_hintSet_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintSet_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintSet\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintSet_Params{Struct: s}) }\n\t}\n\treturn Repo_hintSet_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) HintRemove(ctx context.Context, params func(Repo_hintRemove_Params) error, opts ...capnp.CallOption) Repo_hintRemove_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintRemove_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      20,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintRemove\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintRemove_Params{Struct: s}) }\n\t}\n\treturn Repo_hintRemove_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) HintList(ctx context.Context, params func(Repo_hintList_Params) error, opts ...capnp.CallOption) Repo_hintList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Repo_hintList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      21,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Repo_hintList_Params{Struct: s}) }\n\t}\n\treturn Repo_hintList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteAddOrUpdate(ctx context.Context, params func(Net_remoteAddOrUpdate_Params) error, opts ...capnp.CallOption) Net_remoteAddOrUpdate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteAddOrUpdate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteAddOrUpdate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteAddOrUpdate_Params{Struct: s}) }\n\t}\n\treturn Net_remoteAddOrUpdate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteRm(ctx context.Context, params func(Net_remoteRm_Params) error, opts ...capnp.CallOption) Net_remoteRm_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteRm_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteRm\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteRm_Params{Struct: s}) }\n\t}\n\treturn Net_remoteRm_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteLs(ctx context.Context, params func(Net_remoteLs_Params) error, opts ...capnp.CallOption) Net_remoteLs_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteLs_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteLs\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteLs_Params{Struct: s}) }\n\t}\n\treturn Net_remoteLs_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteUpdate(ctx context.Context, params func(Net_remoteUpdate_Params) error, opts ...capnp.CallOption) Net_remoteUpdate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteUpdate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteUpdate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteUpdate_Params{Struct: s}) }\n\t}\n\treturn Net_remoteUpdate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteSave(ctx context.Context, params func(Net_remoteSave_Params) error, opts ...capnp.CallOption) Net_remoteSave_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteSave_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteSave\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteSave_Params{Struct: s}) }\n\t}\n\treturn Net_remoteSave_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemotePing(ctx context.Context, params func(Net_remotePing_Params) error, opts ...capnp.CallOption) Net_remotePing_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remotePing_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remotePing\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remotePing_Params{Struct: s}) }\n\t}\n\treturn Net_remotePing_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteClear(ctx context.Context, params func(Net_remoteClear_Params) error, opts ...capnp.CallOption) Net_remoteClear_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteClear_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteClear\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteClear_Params{Struct: s}) }\n\t}\n\treturn Net_remoteClear_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) NetLocate(ctx context.Context, params func(Net_netLocate_Params) error, opts ...capnp.CallOption) Net_netLocate_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_netLocate_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocate\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 2}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_netLocate_Params{Struct: s}) }\n\t}\n\treturn Net_netLocate_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) NetLocateNext(ctx context.Context, params func(Net_netLocateNext_Params) error, opts ...capnp.CallOption) Net_netLocateNext_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_netLocateNext_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocateNext\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_netLocateNext_Params{Struct: s}) }\n\t}\n\treturn Net_netLocateNext_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Whoami(ctx context.Context, params func(Net_whoami_Params) error, opts ...capnp.CallOption) Net_whoami_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_whoami_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"whoami\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_whoami_Params{Struct: s}) }\n\t}\n\treturn Net_whoami_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Connect(ctx context.Context, params func(Net_connect_Params) error, opts ...capnp.CallOption) Net_connect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_connect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"connect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_connect_Params{Struct: s}) }\n\t}\n\treturn Net_connect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Disconnect(ctx context.Context, params func(Net_disconnect_Params) error, opts ...capnp.CallOption) Net_disconnect_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_disconnect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"disconnect\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_disconnect_Params{Struct: s}) }\n\t}\n\treturn Net_disconnect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteOnlineList(ctx context.Context, params func(Net_remoteOnlineList_Params) error, opts ...capnp.CallOption) Net_remoteOnlineList_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteOnlineList_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteOnlineList\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteOnlineList_Params{Struct: s}) }\n\t}\n\treturn Net_remoteOnlineList_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) RemoteByName(ctx context.Context, params func(Net_remoteByName_Params) error, opts ...capnp.CallOption) Net_remoteByName_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_remoteByName_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteByName\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_remoteByName_Params{Struct: s}) }\n\t}\n\treturn Net_remoteByName_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\nfunc (c API) Push(ctx context.Context, params func(Net_push_Params) error, opts ...capnp.CallOption) Net_push_Results_Promise {\n\tif c.Client == nil {\n\t\treturn Net_push_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}\n\t}\n\tcall := &capnp.Call{\n\t\tCtx: ctx,\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tOptions: capnp.NewCallOptions(opts),\n\t}\n\tif params != nil {\n\t\tcall.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 1}\n\t\tcall.ParamsFunc = func(s capnp.Struct) error { return params(Net_push_Params{Struct: s}) }\n\t}\n\treturn Net_push_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}\n}\n\ntype API_Server interface {\n\tStage(FS_stage) error\n\n\tList(FS_list) error\n\n\tCat(FS_cat) error\n\n\tMkdir(FS_mkdir) error\n\n\tRemove(FS_remove) error\n\n\tMove(FS_move) error\n\n\tCopy(FS_copy) error\n\n\tPin(FS_pin) error\n\n\tUnpin(FS_unpin) error\n\n\tStat(FS_stat) error\n\n\tGarbageCollect(FS_garbageCollect) error\n\n\tTouch(FS_touch) error\n\n\tExists(FS_exists) error\n\n\tTar(FS_tar) error\n\n\tDeletedNodes(FS_deletedNodes) error\n\n\tUndelete(FS_undelete) error\n\n\tRepin(FS_repin) error\n\n\tIsCached(FS_isCached) error\n\n\tStageFromStream(FS_stageFromStream) error\n\n\tRecodeStream(FS_recodeStream) error\n\n\tLog(VCS_log) error\n\n\tCommit(VCS_commit) error\n\n\tTag(VCS_tag) error\n\n\tUntag(VCS_untag) error\n\n\tReset(VCS_reset) error\n\n\tHistory(VCS_history) error\n\n\tMakeDiff(VCS_makeDiff) error\n\n\tSync(VCS_sync) error\n\n\tFetch(VCS_fetch) error\n\n\tCommitInfo(VCS_commitInfo) error\n\n\tQuit(Repo_quit) error\n\n\tPing(Repo_ping) error\n\n\tMount(Repo_mount) error\n\n\tUnmount(Repo_unmount) error\n\n\tConfigGet(Repo_configGet) error\n\n\tConfigSet(Repo_configSet) error\n\n\tConfigAll(Repo_configAll) error\n\n\tConfigDoc(Repo_configDoc) error\n\n\tBecome(Repo_become) error\n\n\tFstabAdd(Repo_fstabAdd) error\n\n\tFstabRemove(Repo_fstabRemove) error\n\n\tFstabApply(Repo_fstabApply) error\n\n\tFstabList(Repo_fstabList) error\n\n\tFstabUnmountAll(Repo_fstabUnmountAll) error\n\n\tVersion(Repo_version) error\n\n\tGatewayUserAdd(Repo_gatewayUserAdd) error\n\n\tGatewayUserRm(Repo_gatewayUserRm) error\n\n\tGatewayUserList(Repo_gatewayUserList) error\n\n\tDebugProfilePort(Repo_debugProfilePort) error\n\n\tHintSet(Repo_hintSet) error\n\n\tHintRemove(Repo_hintRemove) error\n\n\tHintList(Repo_hintList) error\n\n\tRemoteAddOrUpdate(Net_remoteAddOrUpdate) error\n\n\tRemoteRm(Net_remoteRm) error\n\n\tRemoteLs(Net_remoteLs) error\n\n\tRemoteUpdate(Net_remoteUpdate) error\n\n\tRemoteSave(Net_remoteSave) error\n\n\tRemotePing(Net_remotePing) error\n\n\tRemoteClear(Net_remoteClear) error\n\n\tNetLocate(Net_netLocate) error\n\n\tNetLocateNext(Net_netLocateNext) error\n\n\tWhoami(Net_whoami) error\n\n\tConnect(Net_connect) error\n\n\tDisconnect(Net_disconnect) error\n\n\tRemoteOnlineList(Net_remoteOnlineList) error\n\n\tRemoteByName(Net_remoteByName) error\n\n\tPush(Net_push) error\n}\n\nfunc API_ServerToClient(s API_Server) API {\n\tc, _ := s.(server.Closer)\n\treturn API{Client: server.New(API_Methods(nil, s), c)}\n}\n\nfunc API_Methods(methods []server.Method, s API_Server) []server.Method {\n\tif cap(methods) == 0 {\n\t\tmethods = make([]server.Method, 0, 67)\n\t}\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stage\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stage{c, opts, FS_stage_Params{Struct: p}, FS_stage_Results{Struct: r}}\n\t\t\treturn s.Stage(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"list\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_list{c, opts, FS_list_Params{Struct: p}, FS_list_Results{Struct: r}}\n\t\t\treturn s.List(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"cat\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_cat{c, opts, FS_cat_Params{Struct: p}, FS_cat_Results{Struct: r}}\n\t\t\treturn s.Cat(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"mkdir\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_mkdir{c, opts, FS_mkdir_Params{Struct: p}, FS_mkdir_Results{Struct: r}}\n\t\t\treturn s.Mkdir(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"remove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_remove{c, opts, FS_remove_Params{Struct: p}, FS_remove_Results{Struct: r}}\n\t\t\treturn s.Remove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"move\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_move{c, opts, FS_move_Params{Struct: p}, FS_move_Results{Struct: r}}\n\t\t\treturn s.Move(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"copy\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_copy{c, opts, FS_copy_Params{Struct: p}, FS_copy_Results{Struct: r}}\n\t\t\treturn s.Copy(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"pin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_pin{c, opts, FS_pin_Params{Struct: p}, FS_pin_Results{Struct: r}}\n\t\t\treturn s.Pin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"unpin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_unpin{c, opts, FS_unpin_Params{Struct: p}, FS_unpin_Results{Struct: r}}\n\t\t\treturn s.Unpin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stat\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stat{c, opts, FS_stat_Params{Struct: p}, FS_stat_Results{Struct: r}}\n\t\t\treturn s.Stat(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"garbageCollect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_garbageCollect{c, opts, FS_garbageCollect_Params{Struct: p}, FS_garbageCollect_Results{Struct: r}}\n\t\t\treturn s.GarbageCollect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"touch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_touch{c, opts, FS_touch_Params{Struct: p}, FS_touch_Results{Struct: r}}\n\t\t\treturn s.Touch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"exists\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_exists{c, opts, FS_exists_Params{Struct: p}, FS_exists_Results{Struct: r}}\n\t\t\treturn s.Exists(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"tar\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_tar{c, opts, FS_tar_Params{Struct: p}, FS_tar_Results{Struct: r}}\n\t\t\treturn s.Tar(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"deletedNodes\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_deletedNodes{c, opts, FS_deletedNodes_Params{Struct: p}, FS_deletedNodes_Results{Struct: r}}\n\t\t\treturn s.DeletedNodes(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"undelete\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_undelete{c, opts, FS_undelete_Params{Struct: p}, FS_undelete_Results{Struct: r}}\n\t\t\treturn s.Undelete(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"repin\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_repin{c, opts, FS_repin_Params{Struct: p}, FS_repin_Results{Struct: r}}\n\t\t\treturn s.Repin(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"isCached\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_isCached{c, opts, FS_isCached_Params{Struct: p}, FS_isCached_Results{Struct: r}}\n\t\t\treturn s.IsCached(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"stageFromStream\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_stageFromStream{c, opts, FS_stageFromStream_Params{Struct: p}, FS_stageFromStream_Results{Struct: r}}\n\t\t\treturn s.StageFromStream(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xe2b3585db47cd4f9,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:FS\",\n\t\t\tMethodName:    \"recodeStream\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := FS_recodeStream{c, opts, FS_recodeStream_Params{Struct: p}, FS_recodeStream_Results{Struct: r}}\n\t\t\treturn s.RecodeStream(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"log\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_log{c, opts, VCS_log_Params{Struct: p}, VCS_log_Results{Struct: r}}\n\t\t\treturn s.Log(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commit\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_commit{c, opts, VCS_commit_Params{Struct: p}, VCS_commit_Results{Struct: r}}\n\t\t\treturn s.Commit(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"tag\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_tag{c, opts, VCS_tag_Params{Struct: p}, VCS_tag_Results{Struct: r}}\n\t\t\treturn s.Tag(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"untag\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_untag{c, opts, VCS_untag_Params{Struct: p}, VCS_untag_Results{Struct: r}}\n\t\t\treturn s.Untag(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"reset\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_reset{c, opts, VCS_reset_Params{Struct: p}, VCS_reset_Results{Struct: r}}\n\t\t\treturn s.Reset(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"history\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_history{c, opts, VCS_history_Params{Struct: p}, VCS_history_Results{Struct: r}}\n\t\t\treturn s.History(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"makeDiff\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_makeDiff{c, opts, VCS_makeDiff_Params{Struct: p}, VCS_makeDiff_Results{Struct: r}}\n\t\t\treturn s.MakeDiff(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"sync\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_sync{c, opts, VCS_sync_Params{Struct: p}, VCS_sync_Results{Struct: r}}\n\t\t\treturn s.Sync(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"fetch\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_fetch{c, opts, VCS_fetch_Params{Struct: p}, VCS_fetch_Results{Struct: r}}\n\t\t\treturn s.Fetch(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xfaa680ef12c44624,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:VCS\",\n\t\t\tMethodName:    \"commitInfo\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := VCS_commitInfo{c, opts, VCS_commitInfo_Params{Struct: p}, VCS_commitInfo_Results{Struct: r}}\n\t\t\treturn s.CommitInfo(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"quit\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_quit{c, opts, Repo_quit_Params{Struct: p}, Repo_quit_Results{Struct: r}}\n\t\t\treturn s.Quit(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"ping\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_ping{c, opts, Repo_ping_Params{Struct: p}, Repo_ping_Results{Struct: r}}\n\t\t\treturn s.Ping(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"mount\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_mount{c, opts, Repo_mount_Params{Struct: p}, Repo_mount_Results{Struct: r}}\n\t\t\treturn s.Mount(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"unmount\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_unmount{c, opts, Repo_unmount_Params{Struct: p}, Repo_unmount_Results{Struct: r}}\n\t\t\treturn s.Unmount(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configGet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configGet{c, opts, Repo_configGet_Params{Struct: p}, Repo_configGet_Results{Struct: r}}\n\t\t\treturn s.ConfigGet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configSet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configSet{c, opts, Repo_configSet_Params{Struct: p}, Repo_configSet_Results{Struct: r}}\n\t\t\treturn s.ConfigSet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configAll\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configAll{c, opts, Repo_configAll_Params{Struct: p}, Repo_configAll_Results{Struct: r}}\n\t\t\treturn s.ConfigAll(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"configDoc\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_configDoc{c, opts, Repo_configDoc_Params{Struct: p}, Repo_configDoc_Results{Struct: r}}\n\t\t\treturn s.ConfigDoc(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"become\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_become{c, opts, Repo_become_Params{Struct: p}, Repo_become_Results{Struct: r}}\n\t\t\treturn s.Become(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabAdd\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabAdd{c, opts, Repo_fstabAdd_Params{Struct: p}, Repo_fstabAdd_Results{Struct: r}}\n\t\t\treturn s.FstabAdd(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabRemove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabRemove{c, opts, Repo_fstabRemove_Params{Struct: p}, Repo_fstabRemove_Results{Struct: r}}\n\t\t\treturn s.FstabRemove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabApply\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabApply{c, opts, Repo_fstabApply_Params{Struct: p}, Repo_fstabApply_Results{Struct: r}}\n\t\t\treturn s.FstabApply(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabList{c, opts, Repo_fstabList_Params{Struct: p}, Repo_fstabList_Results{Struct: r}}\n\t\t\treturn s.FstabList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"fstabUnmountAll\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_fstabUnmountAll{c, opts, Repo_fstabUnmountAll_Params{Struct: p}, Repo_fstabUnmountAll_Results{Struct: r}}\n\t\t\treturn s.FstabUnmountAll(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"version\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_version{c, opts, Repo_version_Params{Struct: p}, Repo_version_Results{Struct: r}}\n\t\t\treturn s.Version(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      15,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserAdd\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserAdd{c, opts, Repo_gatewayUserAdd_Params{Struct: p}, Repo_gatewayUserAdd_Results{Struct: r}}\n\t\t\treturn s.GatewayUserAdd(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      16,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserRm\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserRm{c, opts, Repo_gatewayUserRm_Params{Struct: p}, Repo_gatewayUserRm_Results{Struct: r}}\n\t\t\treturn s.GatewayUserRm(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      17,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"gatewayUserList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_gatewayUserList{c, opts, Repo_gatewayUserList_Params{Struct: p}, Repo_gatewayUserList_Results{Struct: r}}\n\t\t\treturn s.GatewayUserList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      18,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"debugProfilePort\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_debugProfilePort{c, opts, Repo_debugProfilePort_Params{Struct: p}, Repo_debugProfilePort_Results{Struct: r}}\n\t\t\treturn s.DebugProfilePort(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      19,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintSet\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintSet{c, opts, Repo_hintSet_Params{Struct: p}, Repo_hintSet_Results{Struct: r}}\n\t\t\treturn s.HintSet(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      20,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintRemove\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintRemove{c, opts, Repo_hintRemove_Params{Struct: p}, Repo_hintRemove_Results{Struct: r}}\n\t\t\treturn s.HintRemove(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xa862cd929f7af191,\n\t\t\tMethodID:      21,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Repo\",\n\t\t\tMethodName:    \"hintList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Repo_hintList{c, opts, Repo_hintList_Params{Struct: p}, Repo_hintList_Results{Struct: r}}\n\t\t\treturn s.HintList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      0,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteAddOrUpdate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteAddOrUpdate{c, opts, Net_remoteAddOrUpdate_Params{Struct: p}, Net_remoteAddOrUpdate_Results{Struct: r}}\n\t\t\treturn s.RemoteAddOrUpdate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      1,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteRm\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteRm{c, opts, Net_remoteRm_Params{Struct: p}, Net_remoteRm_Results{Struct: r}}\n\t\t\treturn s.RemoteRm(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      2,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteLs\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteLs{c, opts, Net_remoteLs_Params{Struct: p}, Net_remoteLs_Results{Struct: r}}\n\t\t\treturn s.RemoteLs(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      3,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteUpdate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteUpdate{c, opts, Net_remoteUpdate_Params{Struct: p}, Net_remoteUpdate_Results{Struct: r}}\n\t\t\treturn s.RemoteUpdate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      4,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteSave\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteSave{c, opts, Net_remoteSave_Params{Struct: p}, Net_remoteSave_Results{Struct: r}}\n\t\t\treturn s.RemoteSave(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      5,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remotePing\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remotePing{c, opts, Net_remotePing_Params{Struct: p}, Net_remotePing_Results{Struct: r}}\n\t\t\treturn s.RemotePing(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      6,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteClear\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteClear{c, opts, Net_remoteClear_Params{Struct: p}, Net_remoteClear_Results{Struct: r}}\n\t\t\treturn s.RemoteClear(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      7,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocate\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_netLocate{c, opts, Net_netLocate_Params{Struct: p}, Net_netLocate_Results{Struct: r}}\n\t\t\treturn s.NetLocate(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 8, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      8,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"netLocateNext\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_netLocateNext{c, opts, Net_netLocateNext_Params{Struct: p}, Net_netLocateNext_Results{Struct: r}}\n\t\t\treturn s.NetLocateNext(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      9,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"whoami\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_whoami{c, opts, Net_whoami_Params{Struct: p}, Net_whoami_Results{Struct: r}}\n\t\t\treturn s.Whoami(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      10,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"connect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_connect{c, opts, Net_connect_Params{Struct: p}, Net_connect_Results{Struct: r}}\n\t\t\treturn s.Connect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      11,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"disconnect\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_disconnect{c, opts, Net_disconnect_Params{Struct: p}, Net_disconnect_Results{Struct: r}}\n\t\t\treturn s.Disconnect(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      12,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteOnlineList\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteOnlineList{c, opts, Net_remoteOnlineList_Params{Struct: p}, Net_remoteOnlineList_Results{Struct: r}}\n\t\t\treturn s.RemoteOnlineList(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      13,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"remoteByName\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_remoteByName{c, opts, Net_remoteByName_Params{Struct: p}, Net_remoteByName_Results{Struct: r}}\n\t\t\treturn s.RemoteByName(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},\n\t})\n\n\tmethods = append(methods, server.Method{\n\t\tMethod: capnp.Method{\n\t\t\tInterfaceID:   0xaa133a60be5a7d01,\n\t\t\tMethodID:      14,\n\t\t\tInterfaceName: \"server/capnp/local_api.capnp:Net\",\n\t\t\tMethodName:    \"push\",\n\t\t},\n\t\tImpl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {\n\t\t\tcall := Net_push{c, opts, Net_push_Params{Struct: p}, Net_push_Results{Struct: r}}\n\t\t\treturn s.Push(call)\n\t\t},\n\t\tResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},\n\t})\n\n\treturn methods\n}\n\nconst schema_ea883e7d5248d81b = \"x\\xda\\xb4|{|\\x14U\\x96\\xff=U\\x09\\xc5;i\" +\n\t\"*\\xf8\\x82\\xd0M\\xe4\\xa1Q\\x1e\\x09\\xe4g\\x8c@:\\x01\" +\n\t\"\\x81\\x04BR\\xdd\\x80N\\xc6W\\xa5\\xfb&)\\xe8G\\xe8\" +\n\t\"\\xaa&\\x04e\\x10FDX\\xf1\\x8d\\x88\\xca\\\"\\xee0\\x82\" +\n\t\"\\x8a\\x88\\x8fQP\\x1c\\x11X'\\xa3\\xec\\x80\\x82\\x8a\\x82\\x0b\" +\n\t\"\\xb3d\\x15\\x16\\x16Qp\\xd4\\x81\\xe9\\xdf\\xe7\\xde\\xea[}\" +\n\t\";\\xe9\\xa4;,\\xf3W\\xd2U\\xa7\\xee\\xf3\\xbc\\xcf\\xf7\\xde\" +\n\t\"\\x91G\\xaer\\x0ay\\xe9w\\xde\\x80\\x90\\xfb>!\\xbdK\" +\n\t\"\\xc4v\\xf7\\x95\\x87\\xf4ik\\xeeE\\x8a\\x03\\x00\\xa14\\x09\" +\n\t\"\\xa1Q+\\xfb\\xd5\\x00\\x02y]\\xbfb\\x04\\x91c\\x03\\xbe\" +\n\t\"\\xdd\\x7f \\xed\\x87\\xc5\\xc8\\x96\\xc3\\xde\\xef\\xe8\\xf7\\x18\\xa0\\xb4\" +\n\t\"\\xc8\\xb9\\xb2\\xdfj\\x07\\xc6\\xf6\\xbc\\x9f{\\xb3\\xa5\\xdf|@\" +\n\t\"i\\x17\\xfe\\xe6\\xfdr\\x91m\\xfa\\xfd\\xb6\\x81\\xec\\xf9\\x1a\\xfa\" +\n\t\"<\\xf2x\\xd7\\x8c\\xa3\\xbfT\\x1f\\xe4\\xbfX\\xd6\\xefy\\xf2\" +\n\t\"\\xe6\\xa7\\xcb\\xf0\\xf5#\\xffu\\xd7Rds\\xb07M\\xfd\" +\n\t\"B\\xe4\\xcd\\x03+\\xfee\\x9aVX\\xfa\\x00\\xf7\\x06\\x9bo\" +\n\t\"\\x84\\xbbo\\xc2\\xc7_lYn\\xb6\\x96\\x0e\\xe4\\x95B\\x86\" +\n\t\"\\x06\\xb2J\\x87\\xee\\xf8\\xf0\\xe9\\xffw\\\\\\xd9\\xfb\\x10R\\xb2\" +\n\t\"\\x01\\\"\\xfd\\xbe\\x98\\xecZ0\\xee\\x81\\x13(] \\x94\\x8b\" +\n\t\"\\xfa\\xb9@^\\xd9O\\x92W\\xf6\\xb3\\xcb\\xcd\\xfd6#\\xf8\" +\n\t\"\\xcf\\xfd\\xc3r'\\xe7h\\x8f\\xc4:\\xf2\\xf7\\xa7\\x1du=\" +\n\t\"{\\xba\\xe7R\\xed\\xe5G\\x11\\x9d\\x90\\xd9\\xd1\\xaf\\xfa\\xbfH\" +\n\t\":\\xd2\\xfa\\x93\\x8e\\x8e\\xf4\\xf8\\xca\\xc8}b\\xf6\\xe3\\xd1\\x91\" +\n\t\"\\xd0\\xf6\\x97\\xf5_N\\x08V\\xf7oD\\x10\\xd9{\\xeb\\xe4\" +\n\t\"\\xda\\xcd\\x1e\\xed\\x09s\\x12f\\x0b\\xe7\\xfa/&\\x04\\x90M\" +\n\t\"Zx\\xe7\\xc1ic_\\xff\\xfdC+\\xa3\\xdb`R\\x0c\" +\n\t\"\\xcc\\xae&\\x14\\xc3\\xb2I\\x13\\xa1!O\\x9c\\xda\\xf7\\xd6\\x86\" +\n\t\"\\x95\\xdc:,\\xcb^N\\x86w\\xff\\xf3WO|f\\xa5\" +\n\t\"\\xf3I~\\xed\\xb2_$o~^\\xf5\\xd9\\xac\\x09\\xca?\" +\n\t\"\\x9e\\xe4\\xd6[\\xcb\\xfe\\x80\\xbc\\x99Tz\\xea/?\\xd9\\xa6\" +\n\t\"\\xaej\\xbd4\\x94\\xe6W\\xd9\\xe5 \\xfb\\xb3%\\xd9\\x9fm\" +\n\t\"\\x1f\\xb5&\\xdb\\x0e\\x08\\\"\\xb7A\\xc1US]\\x0f\\xae\\xe2\" +\n\t\"7{\\x00]\\x9d[>\\x9es\\xfa\\xf1\\x1e#\\x9f\\xe2\\xb7\" +\n\t\"a\\xcd\\x00:\\xf9M\\x03\\xc8\\xdc\\x02}\\xaf\\x0e_v\\xe8\" +\n\t\"\\x04#\\xa0\\xdf\\xee\\x1b\\xf0\\x01!8:\\xe0\\x1b\\x04\\x91\\xaf\" +\n\t\"\\x1a6\\x0d\\xfb\\x9f1\\xaf\\xaeF1\\x869h\\x7f\\x8d\\xb4\" +\n\t\"\\xfd\\xeb\\xee\\x05^-\\xfb\\xda\\xa7\\xf9\\x95o\\xb6o#\\x9f\" +\n\t\"\\x1e\\xb4\\x93\\xb6\\x975I\\xef5\\x7f\\xfb\\xe43|\\xe7?\" +\n\t\"\\xdb\\xe9\\xc2\\xa6;\\x08\\xc1\\xb3B\\xf7UWlx\\xe1\\x99\" +\n\t\"\\xe8\\xca\\xd3\\xad\\x19\\xec\\x98E\\x08\\xf2\\x1cd]3m\\xc5\" +\n\t\"e\\x0b\\x1b\\xaf|\\x96\\xdf\\xbb\\x95\\x8e\\xf9T\\x00(\\xc1\\xe5\" +\n\t\"J\\xe5\\xd7\\xbd\\xed\\xaf?\\xcbK\\x08\\x0c|\\x8d\\x10\\xd8\\x06\" +\n\t\"\\x92.\\\"\\xaeeM\\x97\\xff\\xe2]\\xc3\\x8f\\xa1` m\" +\n\t\"\\xa1\\x84\\x12\\xdcYX:sB\\x97O\\xd7\\xf0\\xbb\\xaf\\x0e\" +\n\t\"|\\x9e\\x10\\xcc\\xa1\\x04?^\\xf6\\x9d0a\\xd5\\xf9\\x7f\\xe5\" +\n\t\"\\x09\\x1e\\x1dH7\\x7f\\x0d%xk\\xdbS}\\x1e\\xef\\xbb\" +\n\t\"d-?\\x86\\xed\\x03\\xe9\\x1a\\xef\\xa1\\x04\\x85\\xf3?xl\" +\n\t\"\\xcf'\\xdf\\xc6\\x11\\x9c\\x19H\\xc5\\xf8\\x02%X\\x98q\\xd5\" +\n\t\"\\xb2\\xfe\\xcf\\xe9\\xcfqk\\x9c\\x9dC\\xf7\\xefO\\xd3.\\xff\" +\n\t\"\\xc0\\xe1[\\xb0\\x8e\\xef\\xbc[\\x0e\\x1d\\xdd\\x959\\xe4\\xd3\\xa6\" +\n\t\"S\\x0fy^j\\xd9\\xb8\\x0e)\\x03c\\xbcy\\xa3IQ\" +\n\t\"\\x96C\\x96\\xe8\\xbe\\xd1\\xd5\\xcf\\x0f\\xbfs\\xe4\\xf3\\x84\\x9b\\xd2\" +\n\t\"8n\\xeaJ(7\\xe6\\xe4\\x83\\xbc5G\\x92\\xb7\\xe6\\xd8\" +\n\t\"G\\x9d\\xcaY*\\\"\\x88\\xccv\\xbbK\\xbe\\x97K\\xff\\x8d\" +\n\t\"\\xe3\\xa6\\x8dC(3/\\xb9n\\xc1n\\xf7\\xa7\\xa7\\x7f\\xc7\" +\n\t\"\\x8ds\\xf5\\x90\\x1a\\xf2f\\xdb'}\\xfe|\\xcd\\xd8\\xf0z\" +\n\t\"~\\x8aK\\x86\\xd0e~t\\x08]\\xa4\\xf5[\\xc0{\\xcb\" +\n\t\"\\xc8\\xdf\\xf3\\xcc\\xb2e\\xc8\\xd3\\x84`\\x07%\\x98\\xe0R\\xde\" +\n\t\"\\xc3][~\\x8fl\\xd7\\xb3\\x06\\x8e\\x0e\\xf93i;g\" +\n\t\"\\xee\\xe2\\xcd\\x9fL\\\\\\xf6\\x02\\xbf\\x06\\x07\\x86P\\x09o\\xa1\" +\n\t\"\\x9f>zf\\xfe\\xda\\xc7\\xf6\\xd4l@\\xb6l16A\" +\n\t\"\\x04\\xa3\\xfa\\x0e\\xed\\x03\\xf2\\xe0\\xa1T\\\\\\x87.M\\x97\\xf7\" +\n\t\"\\xe5J\\x08E.\\x93V}\\xf5\\xdc\\xf4\\xc76\\xf0,\\xb1\" +\n\t\"5\\x97\\xaeXs.io\\xf4\\xcc\\x01\\x91\\xa9\\xbf\\xee\\xb6\" +\n\t\"1N\\xde\\x7f\\xce\\xa5[\\x9e~\\x1dYS\\xff\\xfeo\\x02\" +\n\t\"\\xdd\\xea\\x16l\\x8c\\xce\\x86\\xf2\\xa5z\\x1d\\xddQ?%\\x10\" +\n\t\"\\xfb\\xf4\\xb4\\x0d\\xafyv#?\\xe6\\xe6\\xebB\\x84\\xe0\\xc0\" +\n\t\"u\\xa4\\x8fY\\x8bg\\x0e\\xdd\\x0d\\xc76\\xb6\\x96q\\x91j\" +\n\t\"\\x9f\\xeb\\\\ w\\xbb^\\x92\\xbb]o\\x1f\\x95w=\\x95\" +\n\t\"qXP\\xfd\\xde]E\\xf2\\x8bm&Y1\\xac;\\xc8\" +\n\t\"\\xb7\\x0f\\xa3\\xbaa\\xd8\\x87\\xa2||\\x04\\x99\\xe4\\xc0O\\xf7\" +\n\t\"\\x0c\\xbe\\xef\\x85\\xa7^\\xe46q\\xdf\\x08\\xcaR\\x9b\\xb5\\xa9\" +\n\t\"\\x0f\\xb5L\\x1e\\xf0\\x12?\\xb4\\xed#\\xa8\\xd05\\x8f C\" +\n\t\"\\xcb\\x0d~\\xff\\xcc\\xf9\\x7f_\\xf6\\x12\\xa7\\xb2\\x8e\\x93\\xf7i\" +\n\t\"\\x919\\xfeY[\\x1f9\\xb9\\xf3%\\xae\\xd1\\x03#\\xa8\\x89\" +\n\t\"\\xd8P\\xf8c\\xd9\\x1fv\\xfb^\\xe6\\xb7w\\xf7\\x08*\\x87\" +\n\t\"\\x07h\\xa3_\\xcb-\\xb9\\x85\\xef>\\xfc2\\xbf\\xe8\\xe7F\" +\n\t\"Pe\\x91>\\x92.\\xc8\\xf8O7:{\\x9d\\x8b#\\x18\" +\n\t\"<\\x92\\xeeJ\\x01%\\xd0n\\xd9\\xd9P\\x13\\xb9aS\\x94\" +\n\t\"\\xd3i\\xef3L\\x02L\\x09\\xfe\\xed\\xe9/\\x0f\\xdff\\xf7\" +\n\t\"l\\xe6\\xb8s\\xd9\\xc8\\xc5dt\\xc6\\xc3\\x9b\\x1e|\\xf7\\xda\" +\n\t\"\\xff\\xda\\xcc\\x8d;<\\x92\\xf2\\xd6^\\xf7?\\xbe\\xfa\\xcf\\xe1\" +\n\t\"?n\\xe6\\xc7\\xad\\x8d\\xa4\\xfb\\x14\\xa6\\x8d\\xaa\\xbdo\\xfa\\xe8\" +\n\t\"\\x8a\\xf3#_\\x8d\\xe3\\x85\\x95#\\xe9r\\xad\\x1bI\\xb6\\xfa\" +\n\t\"\\xad9_\\x8f.\\xfa\\xe2\\xd7\\xaf\\xc6I \\xe4Q\\x8a^\" +\n\t\"y\\x84\\\"\\xef\\xe1\\xcf\\x9e\\xfb|U\\xc1\\x16n`s\\xf2\" +\n\t\"h\\xf7S\\xbb~{\\xea\\xec\\xe9\\x8a-\\xc8\\xe6\\x10#?\" +\n\t\"\\xef\\xbf\\xe7\\x8d\\xdbo}\\xfd\\xafdSq^\\x0d\\xc8M\" +\n\t\"y\\x12Br8o\\xa9\\xdcL\\xfe\\x8b\\x8c\\xd8u\\xf7\\xb3\" +\n\t\"i\\xb7\\x0d~-N\\x86\\xf2\\xa8M\\xdd\\x91G\\xf5i\\xc5\" +\n\t\"\\xa4\\x0f>;R\\xf3\\x1a\\xd7\\xd1\\x99<j\\xdc\\x8b\\xef=\" +\n\t\"\\x94\\xfd\\xd7\\xe2\\x93\\xaf![v\\x1bn;\\x9c\\xd7\\x07\\xe4\" +\n\t\"S\\xb4\\xaf\\xe3y\\x9b\\x11Df\\xac\\xb9\\xe6\\xea\\x17o\\xbd\" +\n\t\"\\xe7\\x8dV\\xc4\\xe6\\x8a\\xe6\\xe7\\x80\\xbc:_\\x92W\\xe7\\xdb\" +\n\t\"\\xe5\\x1d\\xf9\\xc4B\\x18\\xef\\xdf\\xf4\\x97\\x01C\\xff\\xf8&\\xbf\" +\n\t\"s\\xebG\\xd1\\x8dys\\x14\\x19\\xd6+\\x7fk\\xb9\\xa6`\" +\n\t\"\\xd4\\xa17\\xf9q\\xb7\\x8c\\xa2\\xb2\\x7f\\x8e\\x12\\x9c\\xb9p\\xf6\" +\n\t\"\\xd0\\x8e\\xb1\\xc1\\xb7\\xe2\\xec\\xc0h*Ny\\xa3\\xc9\\x0a\\xde\" +\n\t\"\\x18\\xfe\\xcd\\xc4\\xd9\\x87\\xf7\\xbe\\xc5Ml\\xc5h\\xba\\xb5\\xf7\" +\n\t\"=p\\xed\\xe5\\xfe_w\\xdb\\xca\\xbdi\\x1aMYr\\xd2\" +\n\t\"\\xff\\x96o\\x9d\\xaa\\xe9[\\xe3\\xb6v\\xf4'\\xa4\\xd1\\x05\\xa3\" +\n\t\"I\\xaf\\x9b\\x87N\\xbd\\xfa\\x91c\\xbd\\xb6q\\x9fn\\x1aM\" +\n\t\"W\\xeb\\xf5//\\x8c}n\\xe3\\x1d\\xef\\xf0\\\"\\xb2z4\" +\n\t\"e\\xd6\\x8d\\xf4\\xd3M\\x87\\\"\\x8f\\xe7\\x8e\\xfa\\xed;\\x1cC\" +\n\t\"\\x1d\\x1cM\\x8d\\xe2\\xf9\\x97v\\xac\\x1d\\xe7:\\xc9\\xbfi\\x1e\" +\n\t\"M\\x95\\xe7S\\xbb\\x16\\x94\\xe6\\xddV\\xf1nk\\x897\\xf5\" +\n\t\"\\xcfh\\x17\\xc8{F\\x93=h\\x1eM\\xf6`^\\xc5\\xf5\" +\n\t\"\\xab\\xef}x\\xc5v~Q\\xb5\\x02s\\xf4\\x05d\\x08O\" +\n\t\"\\x14\\xba\\xe7\\xfd0\\xed\\xf9\\xed\\\\G\\x9b\\xc8\\xfb\\xb4\\xc8\\x94\" +\n\t\"\\xb5Y\\xf74\\x96m\\xdc\\xce\\xcdk]\\x01\\x95_\\xf7M\" +\n\t\"#\\x9f<\\xd9\\xf4\\x87\\xed\\xfc\\xbcV\\x14PN]M\\x1b\" +\n\t\"}\\xda\\xbd\\xbf\\xf7\\xdd\\xef\\xccy/\\xa1\\xe7\\xb1\\xb5 \\x07\" +\n\t\"\\xe4\\xe6\\x02In.\\xb0\\x8f\\xfa\\xb9\\xe0\\x16\\xa2\\x95\\xca\\xc6\" +\n\t\"l:\\xf9\\xe7\\x96m\\xef\\xf1\\xc3\\xf4\\xdf@\\xb7v\\xc1\\x0d\" +\n\t\"\\xd4\\xfe^\\xfe\\xc8Z\\xd7\\x91\\x96\\xf7\\xf8]Xc\\x12l\" +\n\t\"\\xa2\\x04\\x93\\x8eO\\xff\\xef\\xcf~\\xe8\\xffGN\\xdb\\xec\\xb9\" +\n\t\"\\x81*\\xaa\\x09\\xc5\\xe3\\xfe|\\xd3\\xdce\\xef\\xf3\\x9fn\\xbd\" +\n\t\"\\x81\\xea\\xfdf\\xfai\\xe3K\\xab\\xb2\\x86\\xba7\\xbd\\xcf-\" +\n\t\"\\xc1q\\xd2tZ\\xe4\\xa7\\xe1\\x07\\xbf\\xfc\\xba\\xf6\\xf0\\xfb<\" +\n\t\"C\\x1d\\xbc\\x812T\\xcb\\x0d\\x84\\xa1\\xee\\xaf\\xef\\x8d\\xff\\xf2\" +\n\t\"\\xe4};\\xb85*)\\xa4\\xdbt\\x95\\xd8\\xe4\\x9e\\x7fy\" +\n\t\"\\xe1N^\\xcd\\xe4\\x15RMVRHz]2\\xbd\\xf1\" +\n\t\"\\xde\\xdd\\xa7\\xcf\\xef\\xe4zU\\x0b\\xa9G7z\\xed\\xb1W\" +\n\t\"^\\xefS\\xb1\\x8b{\\xa3\\x14\\xd2-\\xf9\\xe8\\xad\\x9f\\xff\\xf8\" +\n\t\"\\x9b\\xfb\\x0b?\\xe4\\x97\\xe9\\xe6B*\\\"3h\\xa3\\xaf\\xfd\" +\n\t\"\\xcf-/\\xab?\\xb6|\\xc8k\\xa8B:\\x95;\\xce\\xbc\" +\n\t\":\\xe4\\xe5\\x87f4\\xf3{\\x86\\x0b\\xe9\\x9e\\xcd\\xa1\\x9f\\xd6\" +\n\t\">7\\xeb\\xe9?\\x0d\\xb8\\xab\\xb9\\x95\\xb4J\\xd4O)\\xec\" +\n\t\"\\x03\\xf2\\xbaBI^Wh\\x1f\\xb5\\xa7\\xf0a\\xb2e\\x9f\" +\n\t\"\\xbb\\xeb\\x8b\\x87lx\\xbd\\x99[\\xf0\\xe6\\\"\\xca\\xf6Y\\xcd\" +\n\t\"_}\\x8f\\xc7\\x05>\\xe2\\x16\\xe5\\xcd\\\"\\xba(\\x83\\xb6\\xbd\" +\n\t\"\\xe1\\xc2w\\xee\\xff\\x88\\x1b\\xde\\xfa\\\"\\xaa\\xc1~<\\xa5,\" +\n\t\"{\\xf0\\xfb\\xb3\\x1fs\\xad\\xad.\\xa2\\xcc\\xf6\\xe1\\x96\\xf4\\xcf\" +\n\t\"\\xb6U\\xde\\xff\\x17\\xee\\x9b%E46Y\\xdd\\xf7>\\xfd\" +\n\t\"\\xb3li/\\xbf\\xb1\\xe1\\\"\\xea\\x17.*\\xa2\\xb6\\xe0\\x7f\" +\n\t\"\\x97\\x9e\\xf8\\x87|\\xd9\\xde\\xd6l\\xd8\\x85\\xf2rQ\\x0e\\xc8\" +\n\t\"[\\x8a$yK\\x91}\\xd4\\xe1\\xa2\\x0f\\xc9\\x9c\\xf6\\x97i\" +\n\t\"Yo\\xff\\xc7\\xe6}\\xfc\\xfan\\x1aCYe\\xfb\\x18\\xd2\" +\n\t\"b\\xe8\\xb6.'\\xdc\\xba\\xed\\x13~W\\x8f\\x8e\\xa1lx\" +\n\t\"\\x86\\x12\\xec~f\\xfb\\x85#\\xb3n\\xff\\x94\\x9b\\xbbm,\" +\n\t\"\\xd5#\\x9fF\\xfa=y\\xf7\\x90\\xc0\\xa7\\x9cc\\x02c\\xbf\" +\n\t\"'o\\xb6\\xe4V\\xec\\xfc\\xc3L\\xef~n\\x86\\xe7\\xc6P\" +\n\t\"N(\\x1d_\\xfd\\xf7\\x86\\xc1O\\xefOh\\xdd[\\xc6\\xe4\" +\n\t\"\\x83|n\\x8c$\\x9f\\x1bc\\x97\\x07\\x8f%*\\xf4\\xf8]\" +\n\t\"\\xe1\\xdf\\xbcr\\x0e>g6\\x842l\\xfa8\\xaa\\xda\\xfb\" +\n\t\"\\x8e#\\xfa`\\xec[\\x03WV\\xf6\\xed\\xf99?\\xc37\" +\n\t\"\\xc7Q\\x0e\\xda=\\x8eL\\xa0\\xfc\\xc5\\xc7\\x8ao\\xaa\\xce\\xfb\" +\n\t\"\\x9c\\x1bL\\xcb8\\xbaE\\xbbw\\x1f\\xf8\\xfb\\x8f\\x83\\x96~\" +\n\t\"\\xces\\xd0\\xc1q\\xa60\\xd0O\\xc7\\x9f\\x7f\\xb2\\xba\\xd7w\" +\n\t\"/\\xc4\\xb5\\x9d^L\\x17\\xa7o1!\\xe8\\xa5\\xdew\\xcc\" +\n\t\"?\\xf9\\xf4\\xe7\\xfc\\x86\\x15\\x14\\xd3\\xd1\\xddL\\x09\\x9e\\\\1\" +\n\t\"J\\xbdz\\xed\\xcd\\x07y\\x02\\\\L\\xdd\\xbf9\\x94@{\" +\n\t\"z\\xc3O?\\xea\\xd3\\x0f&2)\\x8f\\x16\\xbb@^_\" +\n\t\"Lt\\xdf\\xbab\\xb2\\x1a\\xdf}r\\xef\\xfa\\xf1\\x7f\\x1d\\xfa\" +\n\t\"\\x15?\\xe0&'5\\xcaK\\x9c\\xd4^l\\xfd\\xf0P\\xd9\" +\n\t\"\\xf7\\xf3\\xbe\\xe26k\\xbd\\x93\\xb2\\xd6\\xd9\\x9d/\\xdf\\x9c\\xf6\" +\n\t\"_\\x1b\\xbe\\xe2\\xd8q\\xa5\\x93z\\xa8\\xcd\\xd3\\xd6\\\\\\xbe\\xe2\" +\n\t\"d\\xf7C\\xdc7\\x8b\\x9ct\\xb3Z>|f\\xd5\\xaa\\xda\" +\n\t\"\\xa5\\x87Z\\x8d\\x8d\\xee\\xc1\\x1cg9\\xe9\\x94\\x8cm\\x91\\x93\" +\n\t\"(\\x8e\\xef6\\x14\\x1a\\xb3\\x1a\\x9a\\xbf\\xe6\\xc7v\\xd8I\\xe3\" +\n\t\"\\xa5StlW\\x1d8\\xb6\\xf7\\xae\\xf5[\\x8e\\xf0!K\" +\n\t\"\\xaf\\x12\\xba\\x98\\xd9%\\xa4\\x85\\xd7B\\xd7\\xefz{\\xcd\\xd9\" +\n\t\"#\\xfcZ5\\x95\\xd0paY\\x09i\\xe1\\x83\\x1f\\xa6d\" +\n\t\"-=6\\xfdh\\x9c\\xde+\\xa1\\xe2\\xb1\\x9b\\x12TM\\x1c\" +\n\t\"\\xf9B\\xe4\\x9eg\\x8erSi)\\xa1\\xcab\\x93\\xb4k\" +\n\t\"\\xe1\\xa0\\x9c7\\x8f&Z\\xe6\\x03%\\xb9 \\xb7\\x94\\x90\\xa9\" +\n\t\"\\x1c-!\\xcbl\\xf9\\x1b\\xad=\\xca\\xdd\\xa5\\x02\\xc8\\xfbJ\" +\n\t\"/'S+\\x95\\xd2\\xe5\\xbe\\x13\\x89\\xf7q\\xd3\\xf8\\xd3\\xe2\" +\n\t\"\\x84~?\\xfd\\x95\\xf1(m\\xf4\\xc2\\xcdd\\xe0\\xa3zM\" +\n\t\"\\xa4>\\xea\\x85\\x7f\\xef\\xf2\\xee\\x17w\\xf5\\xfd&\\x8e\\x8d\\xf3\" +\n\t\"&\\xd1\\x9d\\x1b;\\x89\\xb0\\xf1\\xe2\\x8f\\xb6}`<{\\xdb\" +\n\t\"7\\xd1\\xd5\\xa1\\xf2p`\\x12\\xe5\\xa4\\x16JP\\xfd]\\xc1\" +\n\t\"\\x93SW\\x16\\x7f\\xcb\\xcdm\\xc9d*\\x87=\\xdf\\x15\\x87\" +\n\t\"\\xdf\\xf4\\xca\\xc3\\xdf\\xc6\\xf9Y\\xe1\\xc9T\\x13.\\x9aLV\" +\n\t\"v\\xe65\\x1f;\\xfeXp\\xedq~o\\x8e\\x9a\\x04\\xa7\" +\n\t\"&\\x93\\x85\\xcb\\xfa\\xefm\\xca\\xa0\\xe5e'\\x90\\x92ci\" +\n\t\"\\x81\\xec\\xb2/\\xa9\\x9fQF\\x08\\x1e\\xd9\\xff\\xb5}\\xcb\\xf7\" +\n\t\"_\\x9e\\xe05x\\x19]\\xd9\\xdd\\x9f\\x1d\\xf9\\xfb\\xd2\\x8c-\" +\n\t\"'\\x139P%e\\xe5 \\xcf(\\x93\\xe4\\x19evy\" +\n\t\"I\\x19\\x99\\xc6\\xf7c\\xb3\\xe6\\x0c\\xbb\\xb7\\xee\\x14?\\x94\\xec\" +\n\t\"r\\xeaA\\x0c+'=\\xdd\\xd64.\\xfc\\xd6\\x8d\\xab\\xbf\" +\n\t\"3\\xb5J4?R~\\x82z\\xb3\\x94\\xa0\\xef'\\xe7\\xff\" +\n\t\"0c\\xde\\xfb\\xdf\\xf1-,)\\xa7\\x93y\\x94\\x12\\xfc\\xf0\" +\n\t\"\\x84p\\xeb\\xcc\\xfcA?p\\xac\\xbe\\xa5\\x9c\\x1a\\xce\\xff8\" +\n\t\"\\xa9N\\xe9\\xf5\\xcb\\xda\\x1f\\xf8O\\xd7\\x94S\\x06\\xdaH?\" +\n\t\"\\xfd\\xe4\\xb7\\xfdw\\xaa\\xeb\\x97\\x9c\\x8d\\x8b\\xdc\\xcb)\\x0b\\x1e\" +\n\t\"\\xa4\\x04S\\x8a6\\xcb[\\x86\\xed\\x8f#\\xf8\\xb9\\x9c\\xeec\" +\n\t\"\\xfa\\x14\\x1a\\xd2\\xae\\xcb\\xbdc{\\xe6\\xces<\\xc1\\xe0)\" +\n\t\"\\xd4=\\xb9\\x91\\x12\\xfcxu\\xf5\\xad7v\\x1b\\xfc\\xb7\\xb8\" +\n\t\"\\xb4\\xcc\\x14:|L\\x09>}\\xff\\xb3\\x13\\x9f\\x0e\\xfe\\xf2\" +\n\t\"o\\x09U\\xe4\\xca)\\xa5 \\xaf\\x9fB\\xd5\\xfd\\x14\\xeah\" +\n\t\"\\xb8\\x8e\\x96\\xbe\\xf3[\\xfb\\x8c\\x9f\\x12\\x09\\xe9\\x99\\xa9\\xf9 \" +\n\t\"C\\x85$C\\x85]\\x1eVAXa\\xe3\\xb8\\x83\\xc5K\" +\n\t\"Bo\\xfd\\xcc\\xc7\\x02\\x15\\xd4\\xc8\\x1d<\\x9f1l\\xe8\\x1b\" +\n\t\"i\\xbf\\xc4\\x19\\x9f\\x0a:\\xb5E\\x15d`w\\x0c\\xcdY\" +\n\t\"\\xf9\\xcb\\xfd\\x13~\\xe1x`]\\x05U.\\x83&\\xee\\xea\" +\n\t\"s\\xfa\\xde\\xdf\\xff\\xd2F`\\x1e\\xad\\xe8\\x0e\\xf2\\xba\\x0a\\xba\" +\n\t\"\\xce\\x15K\\x05\\xb9\\xa0\\x92\\x08\\xcc\\x97\\xcf\\x1e>\\xe1^\\xfb\" +\n\t\"\\xca\\xdf9\\xc3\\x91]I\\x13<\\xa7W\\xfdK\\xfe\\x15\\xf3\" +\n\t\"&\\x9fo\\xd3P\\xaf\\xca\\xee g\\x93\\xaf\\xe5++%\" +\n\t\"\\xf9\\xca\\xcaI\\x08E\\xaa\\x97\\x9d\\xbep\\xf9\\x84\\xd9\\xe7\\xb9\" +\n\t\"\\x01\\x0d\\xac\\xa4\\xce\\xef*\\xe5\\x85\\x1e;\\xfd/\\x9e\\xe7f\" +\n\t\"\\xd9\\xab\\xf2K\\xf2\\xe6\\x06a\\xe5\\x81\\xec\\xc6\\xfb/\\xc4\\x85\" +\n\t\"-PI\\x95~\\xafJ\\xb2B\\xd3\\x9eXu\\xe0\\xc3\\x9e\" +\n\t\"\\xdf\\\\\\x88\\xf3\\xdc*M\\xcf\\xad\\x92\\xac\\x83\\x8eCsq\" +\n\t\"h\\x84'Mm\\x084\\x8c\\xf0\\x05=\\xaa\\xefN\\xb5A\" +\n\t\"\\x1b\\xee!\\xbf\\x8b&\\xba\\x87\\x1bjh\\x90\\x0b\\xeba\\xc9\" +\n\t\"g\\xe8J\\x9a\\x98\\x86P\\x1a d\\xeb\\x95\\x8b\\x90\\xd2U\" +\n\t\"\\x04%K\\x80\\x8c\\x86`\\xc8\\x804$@\\x1a\\xd7bz\" +\n\t\"\\xc2\\x16]\\xb8!8\\xbc^\\x0b\\x18nl\\xd0v}\\x06\" +\n\t\"\\xe8IFA\\xbf\\x99\\x13\\xd6\\x8cA\\xaeb\\xfaE\\xb2\\x0f\" +\n\t\"\\xa6acxc}P\\xf5k\\x83\\x8a\\xab\\xd4\\x90\\xea\\xd7\" +\n\t\"S\\x19U\\xadn\\xa85%\\x0d\\x0d\\xbe\\xa6AUjH\" +\n\t\"\\xe2\\xbfjwu\\xc2\\x81\\x06-0\\xc8\\x85\\xed\\xa9\\x0ck\" +\n\t\"\\xa2{\\xb8n\\xa8u\\xb8-}\\x07\\xa3\\x9a\\x8bC\\xba\\x16\" +\n\t\"\\x0cXk\\xc5\\xefAil\\x0f\\x16F\\xe9 3f\\x1e\" +\n\t\"\\x10@f\\xd2-va\\x7f\\xd0\\xc0\\x13\\x83>/\\x86P\" +\n\t\"\\x15\\x80\\x92\\x06B\\xe4\\x8e\\xc7\\xd7*\\xdb?[\\xbe\\x1b)\" +\n\t\"i\\x02\\x94\\x0c\\x02\\xe8\\x89P\\x1e\\xd4@\\xa4\\xc4QK(\" +\n\t\"Ci\\x0e\\xa3^5\\x1c\\xaa#D?wh\\xbaC\\xf5\" +\n\t\"\\xf9\\x82\\x8d\\xd8\\xeb0\\x82\\x0e\\xd5\\xe3\\x91\\xb0\\xae#\\xa4\\xf4\" +\n\t\"\\xb4\\x06{s\\x11B\\x8aS\\x04e\\xaa\\x00\\x00Y\\x84_\" +\n\t\"me\\xe5\\x08)\\x93EP\\xa6\\x0b`\\x13 \\x0b\\x04\\x84\" +\n\t\"l\\xcar\\x84\\x94\\xe9\\\"(w\\x09Pl\\xf6\\x06=\\x91\" +\n\t\"\\x00=\\x89\\x83\\x87Uoe\\xc0\\xd7\\x84\\xc8\\xdc\\x90\\x00D\" +\n\t\"gx\\x82\\x81Z\\x9f\\xe61\\xc0m\\x84T\\x03\\xd75!\" +\n\t\"d\\xd1'\\xdd\\x8f\\x10N\\xb8\\x7f\\xe9\\xed\\xb2\\x959\\xdf\\xd2\" +\n\t\"\\xa6i\\xaa\\x1f\\x0f\\xaaR3\\x08s\\xb5'\\x16\\x01\\xd5\\x8f\" +\n\t\"\\xdb\\x0c%\\x05\\xb10Y\\x966\\xc4\\xda\\xbd\\x96\\xb4;H\" +\n\t\"\\x04e\\xa4\\x006\\xb6|\\xc3\\xc8\\xc3kDPF\\x13\\x19\" +\n\t\"T\\x8dz\\xd6Y\\x06i\\x092c\\xf9\\x80V\\x9c\\x90\\xde\" +\n\t\">;{\\xb1\\x0f\\x1b\\x98\\x0d\\xa1]\\x81\\xe7:KM\\x85\" +\n\t\"\\x90\\x06E\\xbf\\xde\\xce\\x94\\xac\\x19\\x95\\xb63\\xa3\\x85\\xc1\\xda\" +\n\t\"Z\\x9f\\x16\\xc0\\xd6\\xae\\xa7>\\x15Spt\\x84\\x92\\x7f\\x13\" +\n\t\"\\xc2\\x9e\\xa0\\x17\\xbb\\x8d\\x10V\\xfd\\xe4\\xbb\\x8c8\\xa6\\xe8\\xd1\" +\n\t\"\\xfe\\xce\\xd5\\xa9\\x06nT\\x9bf\\xe88\\xe4\\xf2[=\\xb2\" +\n\t\"\\x0f\\x13~7>\\x18\\xa8\\xd5\\xean\\x0e\\x18\\xa1&\\x84\\x12\" +\n\t\"\\xcb\\x9d#*w\\xb9D\\xee<\\x94^t`\\xf2\\x85\\xe3\" +\n\t\"\\x1a-\\xe0\\xf1\\x85\\xbdZ\\xa0\\xce\\xe1\\xc7\\x86\\xea\\xd02\\x02\" +\n\t\"\\xb5\\xc1k\\x11R\\xb2\\xac\\xf5]\\x90\\x83\\x902O\\x04\\xe5\" +\n\t\">\\x8ee\\x16\\x91\\x87\\xf7\\x88\\xa0<@$N0%n\" +\n\t\"\\x09yx\\xaf\\x08\\xca\\x83\\x02\\xd8D1\\x0bD\\x84l\\xcb\" +\n\t\"\\xc8V\\xdc'\\x82\\xf2\\x88\\x00\\x90\\x96\\x05i\\x08\\xd9V\\xcc\" +\n\t\"BHyP\\x04\\xe5)\\x01\\xa4\\xd9\\xb8\\x89\\xed\\x8e4W\" +\n\t\"\\xf5Y\\xff{\\x83\\x1ek\\xd7\\xbc\\xb8V%Z\\x8b\\xb1J\" +\n\t\"\\x00c\\xaf\\xee\\xc2:\\xca0\\xd4\\x90\\xd1f3;P\\xff\" +\n\t\"\\x0dZ\\xa0nP\\x95=ee\\x1e\\x0e\\xf8\\x83\\xe1\\x00'\" +\n\t\"K\\x1c'\\xbb\\xa8b\\x02\\xe5\\x0a\\x01\\\"\\x94\\xaaJ5\\x10\" +\n\t\"\\xb4e\\xe8.)mx\\x89\\xd7k\\x89K\\xa6\\xd5\\x89J\" +\n\t\"\\xb8\\xfb6\\x11\\x94zn\\xf51\\xd1w^\\x11\\x94\\x06n\" +\n\t\"\\xf5\\xfdd\\xa1\\xeb\\xa3\\xfb\\xc4V\\x7fQQt\\x9f\\x9ej\" +\n\t\"\\xadG\\x1aT]o\\x0c\\x86\\xbc(\\xa6\\xe6\\x16\\x9aZR\" +\n\t\"\\x87\\xde\\x08\\xaaD\\xa0\\x8f{#(\\x0eiu\\xf5F\\xeb\" +\n\t\"\\xa7)\\xeb\\xb8\\x19\\x0d^\\xd5\\xc0\\x9d\\xd1\\x8d\\x01lL\\x0d\" +\n\t\"zT\\x03O\\xc3\\xf3b\\xb6\\x9a_\\xf9\\xa2\\x98\\x0e)\\x0e\" +\n\t\"\\x99\\x06-3\\x165\\xa6\\xa4\\xa5\\xe8\\xf2\\xd7`O\\xd0\\x9f\" +\n\t\"PK\\xe5\\xc4z\\x90\\x1a\\xeb\\x83\\xa9+)\\xd323\\x8d\" +\n\t\"\\xce\\xa9)WL%Y\\x1b\\x99G6r\\xa4\\x08\\xca\\x18\" +\n\t\"\\x01\\\"\\xb4\\xb1V,\\x14\\xc2\\x0d\\xc1*\\xd5\\xa8G)\\x1b\" +\n\t\"#:/\\x93g\\xa3>K\\xd2A\\x10\\xc6\\xb9^\\x04\\xa5\" +\n\t\"01\\x1f/\\x0c6\\x18Z0\\xa0Cf,+\\x99\\xaa\" +\n\t\"!\\xa8SC5j\\x1d\\x1e\\x1f\\xf4\\xf9\\xb0\\xc7`\\x82\\xc7\" +\n\t\"/t5'Dj]]\\x08\\xeb\\xba\\x86\\xc4\\xb9\\xb8\\xd3\" +\n\t\"B\\x9d\\x88O\\xf2c\\xbbh\\x0f\\xe1\\x06_S\\x8af\\xb4\" +\n\t\"\\xb5\\x0e\\x8f\\xfaq\\x97\\xc6\\x8c\\x11O\\x81\\x99\\xb1\\xce4\\xd8\" +\n\t\"\\xeeP5}\\xbc\\xea\\xa9\\xc7\\xde\\x98\\x89\\xe2\\xdb-\\xe7\\x16\" +\n\t\"\\x98Q\\xf2~O\\xd2\\xf1zT\\xe3\\xe2<\\xf7\\xf6\\x9d\\xea\" +\n\t\"\\x86\\xb0^\\x9f\\xaaF\\x98\\xe8\\x1enZ`\\xef\\xb4\\xa0\\x17\" +\n\t\"\\xeb\\xc9\\xf6\\\"\\x14\\x0c\\x1a).\\xdd\\xcc\\xf1\\xee\\xe1\\x9e\\xa0\" +\n\t\"\\xdf\\xaf\\x19e\\x81\\xda`l\\x8e\\x9c\\xbcT\\xc7\\xe4\\xc5\\x12\" +\n\t\"\\x97\\\"N\\\\4}\\xa6\\xea\\xd3\\xbc.$\\xe2Z\\xb6\\xa2\" +\n\t\"\\xc5f\\x9b\\x90\\x19+\\x8d\\xb4\\x12\\x171\\xe1p\\xdc\\x86j\" +\n\t\"\\xa7#\\xe9\\xd8{^\\x0c\\x11\\xb7\\xa1R\\xc2t\\xea/;\" +\n\t\"tC5\\x86\\xf9\\xb4\\xd9\\xd8\\xe1\\xc5\\xba'\\xa4Qqu\" +\n\t\"\\x04k\\x1dj\\xa0\\xc9\\x11\\x08z1\\xa2.stR\\xf2\" +\n\t\"\\x16\\xc8E\\xc8\\xfd2\\x88\\xe0~\\x1bbz@~\\x13\\xca\" +\n\t\"\\x11r\\xbfA\\x9e\\xbf\\x0f\\x02\\x80iW\\xe4\\xed\\x94\\xfcm\" +\n\t\"\\xf2x\\x17!\\x17\\x81\\x9a\\x16y\\x07T#\\xe4~\\x9f<\" +\n\t\"\\xff\\x98<O\\x13\\xa8q\\x97\\x9b!\\x1f!\\xf7.\\xf2|\" +\n\t\"/y\\x9e\\xfe~\\x16\\xa4#$\\xef\\xa1\\xcf\\xffD\\x9e\\xef\" +\n\t\"'\\xcf\\xbbHY\\xd0\\x05!y\\x1f}\\xfe1y\\xfe\\x05\" +\n\t\"y.\\x09Y$\\xbc\\x94\\x0f@)B\\xee\\xbd\\xe4\\xf9!\" +\n\t\"\\xf2\\xbc\\xeb\\x8e,\\xe8\\x8a\\x90|\\x90\\x0e\\xf3\\x0b\\xf2\\xfc\\x18\" +\n\t\"y\\xde\\xed\\x83,\\xe8\\x86\\x90|\\x94\\x8e\\xe7\\x08y~\\x92\" +\n\t\"<\\xef.fAw\\x84\\xe4\\xe3P\\x83\\x90\\xfb[\\xf2\\xfc\" +\n\t\",y\\xde#-\\x0bz $\\x9f\\xa1\\xf3:I\\x9e\\xff\" +\n\t\"D\\x9e\\xf7L\\xcf\\\"\\x0b,\\x9f\\xa3\\xf4gA\\x04\\x97 \" +\n\t\"\\x80\\xadW\\x97,\\xe8\\x85\\x90|\\x01r\\x10r\\xffD\\xc8\" +\n\t\"\\xd3\\xc8\\xf3\\xde;\\xb3\\xa07B2\\x08d\\xf8\\xe7\\xc9\\xf3\" +\n\t\"\\xae\\xe4y\\x86\\x94\\x05\\x19\\x08\\xc9\\xe9B.B.A\\x04\" +\n\t\"wO\\xa1\\xb5D\\x1b!\\x8c'\\xab:\\xd5\\xea\\xbd\\x90\\x00\" +\n\t\"\\xbd\\x10d\\xe8\\xda|\\x0c\\xdd\\x90\\x00\\xddH,B\\xa5\\xd4\" +\n\t\"\\xad!q>\\x86t$@:\\x02\\xbbF\\xb6\\x92\\x91\\xd8\" +\n\t\"5}\\x82\\x16b,g\\xf7\\xe2\\x06\\xa3\\x9e\\x09\\xe0B\\x7f\" +\n\t\"\\xd0;]\\xe3l\\xbd\\xa6Wi\\x81@\\xbc\\xd8k\\xfa\\xcd\" +\n\t\"\\xf3\\x1a|\\x9a\\x07\\x89\\x9a\\xc1\\xc7@\\x06\\x0e\\x18\\x93\\x91\\xa4\" +\n\t\"\\xea\\xf5\\xd6\\xd0\\xc2:\\x17:\\xd5\\xa8\\x9e\\xd98\\xe0\\x8d'\" +\n\t\"\\xa1N\\\\\\xf4\\x7f\\xbb\\xa6\\xbb\\xd4F\\xd6\\xe4\\xc5\\x85\\x10\\xbc\" +\n\t\"qn\\xebw\\xa7\\xb5+\\xcd\\xbe`]\\xea17\\x9e\\xa7\" +\n\t\"\\xe9\\x86\\x9e\\xd4\\xbf0\\xc9R\\x0c\\x18Z\\xa9\\x94\\x04j\\x9e\" +\n\t\"w,Bxn\\x8a\\xce\\xe2D\\xf7p7q,L{\" +\n\t\"4\\xdc\\x1b\\x0ct* \\x89S\\xa0, Id(\\x07\" +\n\t\"\\x09`'lfy{\\x991D\\x08\\x828\\xbfOl\" +\n\t\"o\\xe7\\x80*\\xb0[\\xc5t\\x0eX\\x00\\x0ca&o\\x11\" +\n\t\"r\\x91 \\xaf\\x17$\\x88!\\x91\\x80\\xe1n\\xe4\\xd5\\xf4\\xed\" +\n\t\"\\x0aA\\x02\\xc1\\x82\\xf3\\x00Ki\\xc9\\x8b\\x84|$\\xc8a\" +\n\t\"A\\x02\\xd1\\xc2*\\x01\\xcb\\xc0\\xc9\\x9aP\\x8a\\x04\\xf9vA\" +\n\t\"\\x824\\xabH\\x01\\xac\\x12\\\"+\\x82\\x0b\\x09r\\x99 A\" +\n\t\"\\xba\\x95u\\x07\\x06Q\\x90\\xc7\\xd2\\xb7\\x05\\x82\\x04]\\xacB\" +\n\t\"!0\\xe8\\x87|-};P\\x90@\\xb2j\\x98\\xc0 \" +\n\t\"\\x08r_\\xfa\\xb6\\x97 AW\\x0b\\xc4\\x04\\x0c\\x16#\\x83\" +\n\t\"P\\x84\\x04\\xf9\\x1cH\\xd0\\xcd\\xcag\\x03\\xcb\\x1c\\xcb\\xc7\\xa1\" +\n\t\"\\x1c\\x09\\xf2Q\\x90\\xa0\\xbbU\\x96\\x02V/\\x96\\x0f@\\x0d\" +\n\t\"\\x12\\xe4= A\\x0f\\x0bp\\x07\\xac\\xa2H\\x15\\xb0 o\" +\n\t\"\\x05\\x09zZ\\x15A`\\xe5uy\\x13\\x90Q\\xad\\x07\\x09\" +\n\t\"zY\\xd5\\x1e`5Gy5,F\\x82\\xfc(H\\xd0\" +\n\t\"\\xdb*B\\x03C\\xe1\\xc9K\\x80\\xacd\\x13H\\x90aA\" +\n\t\"\\xbe\\x80\\xc1\\\"d?\\xccG\\x82\\x8cA\\x82L\\x0b\\xa8\\x01\" +\n\t\"\\x0c\\x9f&\\xff\\x0aBH\\x90\\x15\\x90\\xc0f\\x15\\x02\\x81\\xd5\" +\n\t\"\\xa7\\xe5\\x9bi\\xbfcA\\x82>VM\\x1aX\\xa2]\\xce\" +\n\t\"\\x83\\xe5H\\x90\\x87\\x81\\x04\\xb2\\x05\\xc4\\x03\\x86Z\\x94\\x07\\xd2\" +\n\t\"Q\\xf5\\x05\\x09\\xb2\\xac\\x12)\\xb0\\xaa\\x9a\\xdc\\x8d\\xae\\x06\\x80\" +\n\t\"\\x04}\\xadb\\\"\\xb0\\xb4\\xa5\\xed\\\\9\\x12l\\xa7\\xa4\\x8c\" +\n\t\"9a\\xcdpB\\x06q\\x18\\x9d`\\xa7\\xce\\xae\\x13\\x16F\" +\n\t\"\\x83<\\xa7\\x99\\x04\\xd2\\xea&a\\x04\\xb1_\\xee\\xb8_%\" +\n\t\">\\x04>\\xeb\\xd7\\x84 \\x02\\x8f\\x13\\x8aM]\\xe5\\x84\\x88\" +\n\t\"\\x99\\xfc\\xf3\\x12U\\xcb~\\xb9\\xb0\\x1fI\\xc1\\xb9\\xb1\\xb7\\x0d\" +\n\t\"\\x0dH\\xf45\\xb1\\x9fS5\\xddl\\x9f\\xfe\\x9a\\x11\\xf0\\x03\" +\n\t\"\\x19K\\x89\\xcf\\x87\\x9cV6\\xce\\x09\\x11\\x16)\\xa2b3\" +\n\t\"V\\xe4\\x1f\\xd9i\\xbe\\x80{\\x02:\\x0eM\\xd5t\\x83\\x8c\" +\n\t\"\\xc1\\x8bk\\xc2uU\\xa1 \\xd4j>\\\\\\x15\\x0c\\x19d\" +\n\t\"d\\x0b\\xa39\\\"'D\\xc8\\x7f.\\xec\\x0f\\x12\\xa7;\\xfa\" +\n\t\"\\x93~J\\xc8\\xaa %M\\xcdV\\xc6\\x97\\xd0O\\xcc\\x89\" +\n\t\"\\xe9\\x16I\\xf5\\xf9b\\x9a\\xc5B.\\xb6\\xd2,\\x1dz\\xa2\" +\n\t\"\\xff\\xac\\x04P\\xfbF\\xc5P-\\xa3\\xc2\\xf7\\x9a\\x93(\\x93\" +\n\t\"\\xc6u\\xcbk\\xf7\\x85\\x86Z7-Q\\x16\\xaf\\x83\\x84\\xa2\" +\n\t\"?8\\x17'\\x0a\\x98.2\\xf00\\xf3\\xb3\\xc4s\\x0c\\x83\" +\n\t\"\\x9e\\xd8\\xc3\\xbc\\x82z\\x986\\xd8\\x16\\x09`\\x83z\\x95\\x10\" +\n\t\"\\xd6\\xa9\\x1f\\xe9(6c\\xf9\\xf8\\xc4PQ\\xa2\\xc4Py\" +\n\t\",\\x07\\x14\\xf5 m\\xcbj\\x10R\\x1e\\x10Ay\\x82\\xb8\" +\n\t\"\\x8f\\x82\\x99\\x99x4?\\x96\\x03\\xb2\\xa59\\xcc\\xc4\\xd0\\xca\" +\n\t\"\\x10B\\xca\\x13\\\"(\\xcf\\xd1\\xc0\\x9et\\x09\\x991\\x9cI\" +\n\t\"\\xd4w\\xf0\\xa9\\xba\\xe1\\xc68\\xc0\\x07\\xc5\\xa1`8\\xe05\" +\n\t\"B\\x1a\\x92\\x1a*t\\xe6\\x08\\xd9q(\\x14\\x8c\\xb9.j\" +\n\t\"\\xd8\\xa8\\xc7\\x01CCv\\x8fj`o\\x1b\\x16\\x10\\xdb\\x8b\" +\n\t\"W\\xcc\\xc4\\xda\\x18j\\xd1X-\\x0bX9E\\xde\\x07\\x8f\" +\n\t\"E\\xb5t\\xacV\\x06\\xac\\xe8,\\xef\\xa0\\x1a\\x9ehi\\xc1\" +\n\t\"\\xc2\\x91\\x00\\xc3f\\xc9\\x9b\\xe8[\\xa2\\xa5E\\x0b\\xc1\\x02\\x0c\" +\n\t\"D+\\xaf\\x86YQ-\\x9df\\xc1\\xa2\\x80\\xd5<\\xe5%\" +\n\t\"T\\xe3-\\x00b\\xd1\\x18p\\x06\\x18\\xeeM\\x9eC\\xdfj\" +\n\t\"@,\\x1a\\x83+\\x00+k\\xcb\\xb7S\\xcb2\\x03\\x88E\" +\n\t\"cp\\x02`\\xb0\\x07\\xb9\\x8c\\xda\\x8e\\x12 \\x16\\x8d!\\\\\" +\n\t\"\\x80\\x01x\\xe5\\x02\\xaa\\xe1\\x89\\x96\\xee\\xc6\\xe0\\xe11\\x90\\x86\" +\n\t\"<\\x10\\x8a\\xa2Z\\xba\\xbb\\x85\\xb1\\x03\\x86\\x15\\x91\\xbb\\x11\\x1d\" +\n\t\"n\\xbb@\\x0c\\x1a\\xabK\\x03\\x03e\\xd9\\xceT#\\xc1v\" +\n\t\"\\x9c\\x983\\x86\\x81\\x03\\x06\\xcb\\xb2\\x1d^\\x8e\\x04\\xdbAb\" +\n\t\"\\xcc\\x18\\x84\\x1b\\x18\\x8a\\xd0\\xb6g\\x16\\x12l\\xbb\\x89)c\" +\n\t\"U_`\\x18Y\\xdb\\xd6\\\\$\\xd86I\\x11\\x93\\x99J\" +\n\t\"\\xbc\\xe0\\xad\\x0c\\xd1\\x8c\\x14\\x10eg>u\\xf9Mmm\" +\n\t\"\\xfe\\x9a\\xaa\\xf3\\xbff4\\xa0\\x0c\\xafj\\xc4\\x88\\xddjT\" +\n\t\"Q\\x9a?\\xab4$\\x12[\\x12\\xfd9\\xde\\x87$\\xac\\x86\" +\n\t\"\\x9c\\x10aI,D;\\xb2~\\xd9iR\\xcb\\x09\\xc5f\" +\n\t\"]\\xc9\\x09\\x0b=\\xc1@\\x00{\\x88&\\xf6j:\\xfd\\x81\" +\n\t\"D\\xfa\\xd3l\\xb12\\x00D_\\x99*\\xd9zZ\\xda\\x84\" +\n\t\"2\\x88B!\\xb6,\\xac\\xd7\\xc7k\\xead\\xd5\\xaf\\xd6\\xe9\" +\n\t\"\\xcf\\xf6\\x13\\xee\\xc1\\xb0\\xa7>Yu\\xa2s\\xc9\\x0f\\xaa\\xd5\" +\n\t\"\\xda\\xa4\\xc4\\x93\\xda\\x16V\\xe5\\x93.\\xa2\\xba\\xc2\\xf2\\x0c\\xed\" +\n\t\"'\\x10\\xdb\\xd13)\\x8c.>a\\xcf\\x12n\\x97\\xa8\\x8e\" +\n\t\"\\xc3\\\\\\x0cO\\xd2\\xf4\\x0b\\x89\\xfb[\\x19\\xd4\\xccN\\xa4h\" +\n\t\"\\xabh\\xfe,A\\x1f|\\x86\\xdb\\xd2\\xb0\\xd0\\x00=\\x90\\x00\" +\n\t\"=\\xb8\\x0ez\\xb6\\xdbA\\x94\\xbbY\\x8a\\xb5\\xc3RF\\xa2\" +\n\t\"\\x8cxg\\xa2\\xbfZl\\x10vmk2/:\\x99\\xeb\" +\n\t\"\\x9f\\xed\\xd5B\\x89\\x92\\xb9\\x89\\\\\\x8eP,/\\x14/\\x14\" +\n\t\"\\x9e\\x10V\\x0d\\\\\\xa5\\\"{\\x08\\x07\\x12\\x84\\x92\\xed\\xcfH\" +\n\t\"o\\x0ax\\x12u_\\x9e -\\xe5\\xe2R\\xc9\\x8d\\x9aQ\" +\n\t\"\\x7fK}\\xd0\\xcf[\\xc8\\x00\\xc6\\xde\\x89\\xd8\\xf0 \\xa8o\" +\n\t\"3\\x82.I\\x18\\xa42\\xc0t\\x90U\\x08I\\xbex,\" +\n\t\"`\\x95\\xb0\\xea'\\xf6\\xb3+\\xb5\\x9f\\x0c\\xca\\x02\\x0c)G\" +\n\t\"F.\\xd8\\xae%\\xd6\\x93a \\x80\\xc1\\xfbm\\xd9D}\" +\n\t\"\\xdb\\xa4\\x88\\x8e\\x03\\xde\\xf1\\xf5\\xe1\\x00\\x82\\xd9N\\xc8 \\xe1\" +\n\t\"o*\\xceil\\x02S\\xf5\\x0e\\x0b\\xdf\\x83\\x04Xh\\x12\" +\n\t\"r\\x81/\\xaf\\x0ez\\xa7\\xb4]&\\x03\\xb6\\x01\\x17$\\xf6\" +\n\t\"+&k\\x010\\xc8\\xbap\\xb5\\xed\\xdcXm\\xdb\\xf2\\xa8\" +\n\t\"\\xca\\xe6\\xf3\\xc5\\xed\\xa8K\\xa5,FH\\xa9\\x12A\\xb9\\xad\" +\n\t\"5\\xb3\\xe1\\x80'\\xd4\\xd4`h\\xa88\\x18(\\xf1\\xd5\\xc5\" +\n\t\"\\x98\\xdd\\x13\\xf47\\x84\\xb0\\xae\\x83f\\xbeh[P\\x10\\xdb\" +\n\t\")0\\xfa%\\xbfft\\xec2.\\x8f\\xb8\\xb5@\\x9d\\x0f\" +\n\t\";|\\x10\\xac3k\\x8b\\x08\\x92\\x96\\xb1\\x88\\\\\\xde%\\x82\" +\n\t\"\\xe2\\xe3f\\xa6\\xe5Fk[\\xf7re\\xac\\x05\\xb91W\" +\n\t\"3\\xa3\\x9eO<\\xf9\\xf5:\\xabZm\\xa8u\\xad\\xabT\" +\n\t\"\\xd4vwF\\xe7\\xb2\\x90,q\\xca\\xbb(\\xc6/\\xc54\" +\n\t\"d\\xe4\\xd8\\xc5\\x82(\\xb5b\\x97d\\xac\\xe9V\\xe7\\xe2D\" +\n\t\"\\x89\\xa2K\\xc8\\x9b\\xcc\\xee&\\x88bJ\\x93D1\\x0b\\xf5\" +\n\t\"\\x90\\xa7\\x8a\\x8f\\x9f\\xbc\\xbaQ\\x95\\xc8\\xe2\\xf7H\\x92\\x0fK\" +\n\t\"\\xad\\x9aM\\x96\\x85\\xb9A\\x9e\\x04&\\xbf\\x13\\x8a*\\x91\\xbc\" +\n\t\"\\xf3i.-P\\x1b\\xe4V\\xd4:b\\x93\\xb2\\xb4\\x87\\x03\" +\n\t\"$2l#\\xed\\xa9\\xd6\\xc2:\\xaaW\\x91\\xf1\\xd5\\x860\" +\n\t\"\\xf6\\xc6\\xc6gA\\x0aSb\\xaf\\x18/\\xbbp\\xd4\\xe5\\xea\" +\n\t\"<T(EU_A\\x04\\xa1\\x92\\x16\\x1d\\xcc\\xc8\\x92S\" +\n\t\"h\\xc4PM\\x10A\\xa9\\x8a\\x19\\xaa\\x0a\\xf2l\\xaa\\x08\\xca\" +\n\t\"\\xad\\x1cXgFiL\\x9f%D\\xe7\\x84\\x82A\\xa3U\" +\n\t\"!\\xb4\\xddP>\\xb5z{JL\\x12\\xd6\\xb9zxf\" +\n\t\"$\\xa7\\xbcz\\xcc\\xc4c\\xd9\\xf7\\xb7\\xde\\x84\\x0ezd\\xe9\" +\n\t\"\\x17\\x96}1W5)V\\x8d%\\x1e\\xda\\xb8\\xca\\x1d\\x15\" +\n\t\"\\x9e\\x8d\\x84\\xb9]\\xdeQ$L\\xdf*\\xa7\\x9b\\x99BN\" +\n\t\"\\xd7/\\x11/\\xb1CpI>D\\xca\\x02\\xb5A\\x87\\xea\" +\n\t\"\\x08\\x89&\\x96\\xab\\x01\\xe3\\x90\\xa3\\x11;\\xfcZ]\\xbd\\xe1\" +\n\t\" \\xae\\x8c\\xddA\\x1c\\x13\\x84\\x94+\\xac\\xd1\\xad\\xce\\x8dE\" +\n\t\"\\xfc\\x96\\x02ZS\\x83\\x90\\xf2\\xac\\x08\\xca\\x06\\xce0\\xac'\" +\n\t\",\\xf2\\x9c\\x08\\xca\\xbb\\x02@\\xd4.l}\\x0c!\\xe5]\" +\n\t\"\\x11\\x94?\\x09`K\\x033\\x89\\xb0\\xbb\\x1a!e\\x97\\x08\" +\n\t\"\\xca^\\x01l\\xe9\\\"\\xad>\\xd9\\xf6,GH\\xd9+\\x82\" +\n\t\"r\\xa8\\xb5#^\\xab\\x05\\xeap\\xa8!\\x84$-`\\xb4\" +\n\t\"\\x07\\x85\\xc8\\x8c\\x9d@\\x8en\\xbd\\xea\\xf1\\xe0\\x06\\xa3$\\x0c\" +\n\t\"F\\xd0D8@\\xcc\\xb13\\xdfU\\x85\\x91\\xa8\\xd7w\\x0a\" +\n\t\"_\\x96R0\\x90\\xa4\\xa8\\xc0\\xe1i:\\x17\\x00$i\\xb7\" +\n\t\"S\\x8e\\xb3\\x199v\\x1a\\x0f\\x17\\xc5\\x8a$\\x888/U\" +\n\t\"\\xc0\\x16KUF\\xa7\\x9bB\\xd61\\xd8\\xd0\\xf4O5\\x9d\" +\n\t\")8\\xafmTq\\xaa\\xe8\\x99\\x04\\xd1\\x10\\xbf\\x94\\x86\\xe6\" +\n\t\"\\x99\\x8d\\x0d\\xab\\xee\\xd89tk\\x1b\\xdd\\xd4%\\xc9g3\" +\n\t\"\\xcc<;K\\x14\\xc7Av\\x93\\xe0\\x19\\xa3f\\xecb\\x80\" +\n\t\"\\x18)y{)s\\x83\\x89\\xd4\\xbd\\x98\\x9cHb\\xe5:\" +\n\t\"A\\xab\\x85\\xda\\xc4\\xaa\\xb5\\x7f\\xd4\\xb9\\xfe%2A\\xab\\xad\" +\n\t\"\\xc5!\\x1c\\x10<\\xd8Q\\x83\\x8dF\\x8c\\x03\\x0e\\xa31\\xe8\" +\n\t\"\\xf0\\x14S\\xdfJGH\\xe9o\\x8d\\xe4Mb\\xc0^\\x15\" +\n\t\"A\\xf9\\x98c\\xcc\\xe6\\xd2\\xa8R<\\xc2\\xa9\\xd4\\xc3\\xe4\\xe1\" +\n\t\"\\x17\\\"(g9_\\xfb\\x0cyxR\\x04wWZ\\xd5\" +\n\t\"7!{r:\\xe4#\\xe4\\x02\\x11\\xdc\\xfdiQ?\\xdd\" +\n\t\",\\xea_\\x09E\\x08\\xb9\\xb3\\xc8\\xf3\\x91\\xb4\\xa8\\xdf\\xc5,\" +\n\t\"\\xea\\x0f\\xa3E\\xfa\\xeb\\xc9\\xf3\\xc9 \\x80]\\xf5zyg\" +\n\t\"\\xa6UMq\\xa1\\x99\\xed\\xee\\x80@\\xab\\x0b\\x04C\\x1d\\x11\" +\n\t\"\\xf85]\\xd7\\x02u\\xed\\x12\\xd8[u`\\x9d\\x100_\" +\n\t\"\\x17\\xfbq\\xa8\\xae\\x83\\xf7\\x96\\xf6&\\xfeG\\xbbD\\xa9f\" +\n\t\"\\xf5S\\xf4\\x19\\xf9\\xfcI\\xdb<H'\\xbc\\x9c\\xd4cv\" +\n\t\"\\xaa\\xeb:\\x93\\x9ec\\xe5\\xa26nMz2D=\\x9b\" +\n\t\"Q{\\xaa\\xc9$\\x83\\xcc\\xd8\\xf1\\xb8\\x94\\x9c\\x95\\xf1\\xf5\\xaa\" +\n\t\"\\x14\\xa8\\xc3\\x1dK\\xd4\\x89He\\x00;\\xea5\\xdd\\x10\\x82\" +\n\t\"\\xa1\\xa6(\\x16\\xb66\\x18r\\xa8\\x8e\\x0c\\xe2\\xa8!\\xa48\" +\n\t\"\\xacQ\\xed#\\x92\\xfd\\xb1\\x08\\xca\\x17\\x9c<\\x1d(\\x8a\\xf9\" +\n\t\"\\x13\\x96<\\x1d$\\x94\\xfb\\xa3B\\xc6\\xe4\\xe9pnT\\xc8\" +\n\t\"\\x8e\\xc5\\xc4\\xc9v\\x94\\x08\\xd9!\\x11\\x94oc\\xc2dk\" +\n\t\"!A\\xfd1\\x11\\x94\\xef\\x04\\x00S\\x90l\\xa7\\xcaMi\" +\n\t\"T~\\x12\\xc0&\\x01\\x85\\xc6\\xd8\\xce\\x11\\x0f\\xe7\\xac\\x08.\" +\n\t\"h\\xa5k\\x8a=\\xf5j\\xa0\\x0e\\xc7\\xf0\\xdbX\\xf5\\xb6\\xc5\" +\n\t\"!e\\x04\\xf0\\xbc\\x04\\xf0\\xa4\\x85TD\\xa6\\xc7\\xac|\\xa3\" +\n\t\"\\xaaW\\x85\\xf0\\\\\\x0d\\x82a\\xdd\\xd7Tb\\xa0\\xce\\x03J\" +\n\t\":\\x19\\xa5$P\\xabm@\\xb6\\xd3T?\\x02\\xdc\\x09#\" +\n\t\"j\\x19D\\x93\\xe5D\\xe3\\xd2X\\xc3\\x98}\\x1e\\xef\\xc3&\" +\n\t\"2=\\x0ew\\x92\\x12\\x90\\x83\\xe5\\xb5fw*@\\xe3\\x0c\" +\n\t\"b\\x1bYM,\\x15e^l\\x0f\\x18\\x9a\\xd1\\xd4\\xb1\\x13\" +\n\t\"\\xdf\\x879\\xf15A1l8\\x82\\xe1\\x90\\xc3\\x13\\x0e\\x85\" +\n\t\"p\\xc0p\\x90H\\xc8\\xac\\x09\\x12\\xe9\\xe02;5\\\\\\x12\" +\n\t\"\\x87I\\x87\\x96\\x9f\\x08\\xa0L(}\\\"(\\xf3b\\x0e|\" +\n\t\"\\x98\\xb0\\xb7af{\\\"\\xd1\\xaef \\x89\\x03\\x1c\\xd9\\x83\" +\n\t\"\\x8d\\x01\\x0e~\\x94\\xd0[\\x8fh\\xba\\x19\\xf8'\\xc25\\xa6\" +\n\t\"\\xc2\\x18Q\\xe5\\xc5G\\xae9\\x09\\x8e\\x99T':fR\" +\n\t\"\\x1d\\x8b\\\\\\xe3|dC\\xf3\\xe3`\\xd8p#\\x11{\\xac\" +\n\t\"\\x84\\xb9\\x8f\\xf6W\\xa1\\\"Q\\x9f\\xddy\\xef\\x7f\\x12N\\x9c\" +\n\t\"\\x96\\xe2a\\xaesU_\\x18w\\x06\\x82\\xde\\xda3K\\xdd\" +\n\t\"X\\xd0\\x88\\xf3\\x12{d\\xb1\\x89^\\xb20\\x87\\x84\\xd2~\" +\n\t\"u6&NT\\xc2\\x80?\\xae\\x92\\xa2\\xd5\\xd6Bf\\xec\" +\n\t\"\\x98|Jg\\x9f\\xb8,W\\x82\\x12\\x10?j.]\\x99\" +\n\t\"\\xa4M\\x933\\xe9p\\xcd4q\\xb2djnG\\xc9\\xd4\" +\n\t\"\\x06\\xce \\xf1r\\x18\\x17\\x0ag\\xa8^\\xaf%i\\x19~\" +\n\t\"\\x95c\\xd1\\xc4b\\x97*\\xc4\\xeebP\\x0c\\xc9\\x94\\xaeu\" +\n\t\">\\x06\\xf4\\xd4 \\xd7\\x9d.\\x1f\\x9aj=\\xc5\\x04\\x8ci\" +\n\t\"\\xfb4\\xa3J\\x0b\\x98h\\x81dg\\xae\\x8a\\xda\\x01\\xa80\" +\n\t\"\\xf4p\\xca\\xb8@z\\xe0`b(\\xe8\\x8f\\x9d7\\xea\\xd0\" +\n\t\"\\xaf\\xd2)\\x19\\xd8b\\xd7\\xc9 \\x00[g\\xa4\\xd3\\x8d\\x13\" +\n\t\"\\xc2p\\x12\\x02b\\xf29@\\x0c'\\xb2\\xed\\xa8\\xa9\\xf6\\x05\" +\n\t\"\\x98\\xf8j\\xc1PSb\\x88;\\x9f*\\x8f\\x12r\\x89]\" +\n\t\"v=DJ\\x89S\\xbe\\xaf\\x8b9\\xbc\\x96\\x9eJZ\\xbb\" +\n\t\"u\\xb0\\x99\\xd8f\\xcf\\xc4\\xa1\\x0c]\\x0b\\x06Z\\x09\\x7f(\" +\n\t\"\\x91\\xbduE\\xcf\\xfe\\x18\\x9c\\xf0\\xcf\\x99\\x8f\\x90\\xd2 \\x82\" +\n\t\"r\\x0f'\\xfcM\\xd5\\xb1JJ\\xb4\\xff\\x99\\x18\\xd9\\xcd3\" +\n\t\"\\x9f\\xf1\\x93qa\\x04s[\\xe3~g\\xa2b\\x1cO\\x1c\" +\n\t\"}\\xe1Bb\\x024\\xab\\xd8\\x0e\\xd7\\\"%\\x0d\\x80\\xbb\\xd0\" +\n\t\"\\x08j\\\"\\xcc-B\\x12V\\xfdJ\\x15-\\x16\\xb2+\\xdf\" +\n\t\"\\x80]\\x1d(\\xcf\\xa1\\x10PL\\xe1\\xa3\\xec\\xd82\\xb0\\xa3\" +\n\t\"\\xfc\\xf2\\xaf(|\\xb4\\x82\\xc2G\\xd9\\xbd\\\\\\xc0.T\\x93\" +\n\t\"K\\x84\\x9c(\\xc8S\\xb4nj\\x02v0^\\xbe\\x96\\xb6\" +\n\t\"\\x9cM\\xe1\\xa3\\xecB.`\\xd7\\x9f\\xc86\\x0a\\xe3L\\xa7\" +\n\t\"\\xf0Qv\\x01\\x11\\xb0\\xbb\\xaf\\xe4\\x9f\\x81\\xf4{\\x8a\\x82m\" +\n\t\"\\xd8m2\\xc0.;\\x91\\x8f\\xd2\\xb7\\x07(\\xd8\\x86\\xdd\\x0f\" +\n\t\"\\x07\\xec\\xee\\x09\\xb9\\x19\\xc8\\xa8\\xb6S\\xb0\\x0d\\xbb\\xbe\\x05\\xd8\" +\n\t\"%\\x8a\\xf2\\x16\\xc8\\x8f\\x02\\x84\\xbaYWs\\x00\\xbb\\x99G\" +\n\t\"^M[^A\\xc16\\xecr;`\\xf7\\x11\\xc9\\x8b(\" +\n\t\"P\\xb3\\x89\\xc2G\\xd9=^\\xc0n\\xd0\\x91\\xfd\\xb4e\\x95\" +\n\t\"\\xc2G\\xd9\\x1d\\x1a\\xc0nf\\x93gP\\x18O\\x19\\x85\\x8f\" +\n\t\"\\xb2\\x1b\\x0d\\x81\\xdd0)\\x8f\\xa5c\\xce\\xa3\\xf0Qv\\xe9\" +\n\t\"\\x1c\\xb0\\x9b\\xd7\\xe4\\xc1\\x14\\xb6\\x94M\\xe1\\xa3\\xec\\xbaD`\" +\n\t\"\\x97\\x1e\\xca6\\x0ay\\xeaF\\xe1\\xa3\\xec\\xda\\x02\\xa0\\xf75\" +\n\t\"\\\"\\xed\\x11\\xdb\\x85|$\\xd8\\xceH`\\xb3\\xee%\\x00v\" +\n\t\"c\\x9e\\xad\\xa5\\x1c\\x09\\xb6\\xc3\\x12\\xf4\\xb1.L\\x00v\\xc1\" +\n\t\"\\x86m\\xdfb$\\xd8\\x9a%\\x90\\xad+\\xfa\\x80]\\xa6h\" +\n\t\"\\xdb>\\x0b\\x09\\xb67%;\\xd5\\x94N\\xc8\\xf0i\\xba\\xe1\" +\n\t\"\\x04\\xc9\\xa3\\x1aN\\xb0\\xd3\\x12\\xbf\\xd3L*\\xce%o\\xa3\" +\n\t\"\\x7fH$\\xec\\x04\\xa9A\\x0b8\\xc1N\\x93>N\\xc8 \" +\n\t\"\\x1e\\x0f\\x85Y\\x9a\\x95\\x1cTl\\xd6r\\x9c`\\xa7\\x09O\" +\n\t\"'C\\x8b;A2(\\x0a\\x88\\x01\\xafQF\\xd0\\x8bu\" +\n\t\"'D\\xd8qR\\x8a1\\xb2\\xd3c\\xc3\\xce\\xb8s9N\" +\n\t\"\\x880\\x8d\\x0eQ\\x95n\\xc2~\\xcc\\xe3H(\\x83<I\" +\n\t\"\\xa5\\xf8\\x1d\\xe7\\xf6X\\xc7\\x179\\xf8^5w\\x84\\x93)\" +\n\t\"\\x92%5\\xb1\\xd3\\x9a\\x96\\\"YQ\\xceA\\xf5\\x98\\\"Y\" +\n\t\"\\xe9\\x8a%\\xee\\xd9\\xb9\\xce5\\xaeX\\xde\\xde<\\xceV\\xd9\" +\n\t\"\\x18@b\\xdc\\xc1kZ\\xa5kD\\x12\\xef\\xd4SR\\x17\" +\n\t\"\\x9e\\x1b\\x07\\xe83\\xad|\\x9c\\x0e\\xea\\x08\\xc2\\xd0\\xbeg\\x16\" +\n\t\"\\xc2:\\x8e%B\\x93U\\xdbs\\xb8\\x8aUt\\xfe\\x15\\xf9\" +\n\t\"1\\xbf?N\\xeb\\xf3\\x10O{m0\\xe4\\xc1\\x9d\\x0e|\" +\n\t\"\\xadS\\x9f\\xf1\\xd1\\x87+6\\x0akh\\x15.\\xbep&\" +\n\t\"$(\\x9c%\\x8a\\x8f/\\xe5\\x81\\xbeVE\\xeb6\\x1eU\" +\n\t\"\\x92\\x03_\\x09\\x80,\\xc9\\xceW\\x99\\xbdMS\\x91\\x18s\" +\n\t\"S\\x8b\\xbd\\xa1&W8\\x90\\xfa\\x016_\\xb4\\xd2\\xd7\\xa6\" +\n\t\"2\\xc6\\xfb\\x0d8`\\x84\\xb4T\\xce=t\\xa6\\xd6\\x97(\" +\n\t\"\\xe1\\xf0\\x7f\\xb9\\xf0\\xc2b\\x19\\xd6p\\x92\\xc9O2\\x15U\" +\n\t\"\\x99\\x81\\xfd\\xc9\\x0e\\x87\\x97B\\xa4\\xc4\\xa1S\\x10G\\x9aC\" +\n\t\"3\\xb0\\xdf\\xbc\\x99\\xa1Q\\xd5\\x1d\\xb35\\x9f\\x0f{\\x1d5\" +\n\t\"M\\x0e\\xa3\\x1e;\\xea<(\\xfeB\\x86\\x84bT\\xca1\" +\n\t\"\\xb0\\x90L\\x8e\\x16F\\xcf\\x1dYG\\x88\\xe2c\\xfe\\xa4\\x95\" +\n\t\"\\xf5\\xd6.p\\x82 \\x8c?\\x05\\xd9\\xd1\\xa1\\xdaNfm\" +\n\t\"\\x12$\\xac\\xf8`\\xdcC\\x88\\xd8\\xacR\\xbdE\\xe2\\xd2\\xe2\" +\n\t\"-)\\x82-\\xf5\\xa3\\x96\\xd6Y\\xd2K\\xeb\\xfcZ1[\" +\n\t\"\\xa2s\\xf4I1\\x92\\xc90\\x18\\x09\\xe2K\\xfeJ\\x93\\xf6\" +\n\t\"\\xc0\\xf7\\xc9\\xc0$%^\\x06\\x16\\x8ee\\x88.\\xb6$\\xd9\" +\n\t\"\\xf1\\x99\\xb5N+'>u\\x9bB\\xe5A\\x9f\\xae\\xd6\\x98\" +\n\t\"WD\\x10%\\x90\\xac\\xfaN\\x1e>%\\x82\\xf2\\xbb\\x98\\x09\" +\n\t\"\\\\W\\x1e-\\xbe\\xbf\\xccA\\xf87\\x12\\xc2\\xdf\\x89\\xa0\\xbc\" +\n\t\"\\xcaU\\xdf7\\x91e\\xd9 \\x82\\xf2\\x86\\x00\\xb6t\\xc1\\xcc\" +\n\t\"lo!\\x93yY\\x04\\xe5\\xed\\xd6)\\x878>J\\x00\" +\n\t\"\\xfc\\x88;\\xcf[\\xacz\\x0c-v4\\xbc]\\x00H\\xbb\" +\n\t\"\\x956{m\\x95\\xaa\\x85:\\xae\\x0d|\\x1fq\\xe1\\x06\\xe2\" +\n\t\"3\\x04\\x04\\x83\\x16\\xd9\\xbc\\xb4\\xf8\\xa6\\x05\\xea\\x1cv\\xa2\\xd8\" +\n\t\"[]\\xa8\\x920\\xea\\xcd\\xe1\\xa2^=\\xe4i\\x8b\\xb8\\x90\" +\n\t\"\\xbc\\xba\\xd1\\x01\\x0e#\\x993\\x93\\xe2\\xfdE\\x16\\x844\\x11\" +\n\t\"\\x04\\xba\\x13Y\\xaf\\x14\\xee\\xc7h\\x93\\x8b\\x11\\xdb\\x1b\\x91i\" +\n\t\"\\x88\\xae\\xa1\\xf1\\x1d\\xbb\\\"\\x1a\\xd8\\x05`r\\x1e\\x8d,\\x06\" +\n\t\"\\xd3\\xc3\\x14\\xec\\x9e@`\\x17\\xba\\xd2r\\xa3 \\xf7\\xa2\\x87\" +\n\t\")\\xd8\\xad\\xca\\xc0n0\\x95\\x81|k;G\\xc2;v\" +\n\t\"%\\x19\\xb0k[m\\xc7\\xf3\\xcd\\xe0!\\xcd\\xbaw\\x0e\\xd8\" +\n\t\"\\xb5_\\xb6}\\xf9\\xe6\\x01\\x82t\\xeb6=`\\xf7\\xee\\xd9\" +\n\t\"\\xb6\\x96\\xd2\\x03\\x04\\xd0\\xc5\\xba\\xd2\\x0e\\xd8\\x05\\x87D*\\x04\" +\n\t\"\\xdbj\\x12\\xd6\\xb1k}\\x81]\\x18f[\\x91\\x8b\\x04\\xdb\" +\n\t\"\\\"\\x12\\xd4\\xb1[\\x83\\x81]\\xb8k\\x0b\\x93\\xfe4\\x12\\xd2\" +\n\t\"\\xb1\\x8b\\xae\\x81\\xdd\\xccm\\xbb\\xbd\\x1a\\x09\\xb6\\x19\\x92\\xe4\\x0b\" +\n\t\"\\xd69Y2\\x88\\x86\\x13u4\\x0e1\\xffR.pZ\" +\n\t\"\\xc9\\x0e'D\\x98\\xa7O#\\x88\\x0c\\xb2\\xe9N\\xb0S<\" +\n\t\"*=\\xabf\\x9eHEbm0>t\\xe8\\x9e\\xf2i\" +\n\t\"\\xd3T\\x00\\xdc%Uetw\\xab\\xc4t%\\x13\\xb8;\" +\n\t\"\\x03\\x11\\x8a]\\x87\\x86P\\xec\\x0an\\x84b7Us\\x19\" +\n\t\"\\xe7\\x9e\\xc9n\\xb6H\\x19K\\xd8V\\x91\\xa7\\xe891\\xb7\" +\n\t\"1\\x01\\xee#\\x11\\xf6\\xbb\\x9c\\xc3~\\xc7\\xdd@\\xe0W\\xe7\" +\n\t\"M\\xc0\\x0d\\xa6\\xaf\\xd1\\xc9\\x9b\\xcdb\\x005\\xb1}\\x94 \" +\n\t\"!\\xe4\\xec\\x02\\x7f\\xcc\\xba7\\x82\\xff\\x1f\\x00\\x00\\xff\\xff\\x9f\" +\n\t\"\\x1f\\x8a\\x9c\"\n\nfunc init() {\n\tschemas.Register(schema_ea883e7d5248d81b,\n\t\t0x809d4e73dc197b11,\n\t\t0x82f304d5d4e81ee4,\n\t\t0x860c3dd5698349f5,\n\t\t0x86541181da6400f7,\n\t\t0x86d95afae10f0893,\n\t\t0x87c49e302c6516f8,\n\t\t0x884238694e8b8d88,\n\t\t0x8ae5aae9653b7b02,\n\t\t0x8ed051e9369ac720,\n\t\t0x90690022482a2dd4,\n\t\t0x91ac69870ceff408,\n\t\t0x936b942a74db0be0,\n\t\t0x946963af664858d0,\n\t\t0x958ea6b33d4e8cbb,\n\t\t0x95a8b7d1ed942672,\n\t\t0x9640959b4623a286,\n\t\t0x96fe51446ad697f9,\n\t\t0x974c11f8cfed4247,\n\t\t0x978c524c1a35015c,\n\t\t0x98300b93ef71cc57,\n\t\t0x98eadc167523156e,\n\t\t0x99b03ceb2dad70db,\n\t\t0x9a291d6964350a5b,\n\t\t0x9b96e8c9be077989,\n\t\t0x9ba7a818970a029c,\n\t\t0x9c19777f493f1110,\n\t\t0x9cb31f0ede4f5117,\n\t\t0x9d64fa17798952ff,\n\t\t0x9dd306445642385f,\n\t\t0x9efc974402f016f6,\n\t\t0x9f8515931298bab7,\n\t\t0x9fe8d2cd92c27a38,\n\t\t0xa073a01c891a0f7f,\n\t\t0xa17d6c20c2174ec8,\n\t\t0xa1a9e5ab638eed79,\n\t\t0xa2305f2ea25a3484,\n\t\t0xa34213f24153536b,\n\t\t0xa4efd353c57d2b85,\n\t\t0xa5753d28ca12d2ba,\n\t\t0xa630576401b1a5b7,\n\t\t0xa6e50865be515244,\n\t\t0xa78946d2af827622,\n\t\t0xa862cd929f7af191,\n\t\t0xa89254a0db970716,\n\t\t0xa9095b4cff1e5634,\n\t\t0xa97d67096ee7d46d,\n\t\t0xa99c622e110c1203,\n\t\t0xa9e401c52756826a,\n\t\t0xaa133a60be5a7d01,\n\t\t0xaa98a78425cdd321,\n\t\t0xab1e48e58e4c69af,\n\t\t0xab89c6fc9bf26f2a,\n\t\t0xabc3ec90b96a6d71,\n\t\t0xac6cc5b649f638a8,\n\t\t0xac8fbc382ae513de,\n\t\t0xacf50d40a9d3436a,\n\t\t0xad37ff6270c35769,\n\t\t0xaf631f5cddda9aa3,\n\t\t0xafe329bc8cad8f74,\n\t\t0xaff62edfdbfe53d0,\n\t\t0xb030fc18cb3b0e61,\n\t\t0xb05bd83a34de71b7,\n\t\t0xb13597d7a0d68f31,\n\t\t0xb14deff4ede8084c,\n\t\t0xb2255c049c7bc42f,\n\t\t0xb262e0d6c2474d9c,\n\t\t0xb2ec3fe21ddc803f,\n\t\t0xb47c58aa23289d55,\n\t\t0xb5bf271ecf3bc074,\n\t\t0xb5dc333528e5f7ae,\n\t\t0xb76f3dc1dcf4fdf1,\n\t\t0xb7d0dd6b467e7539,\n\t\t0xb9095b6d17298884,\n\t\t0xb973694cb94aee47,\n\t\t0xba0de490234c27af,\n\t\t0xbb5ea9a03dfddab3,\n\t\t0xbb83332a93ffdcad,\n\t\t0xbbec523e9fc1abfc,\n\t\t0xbc4d5c31427dc498,\n\t\t0xbd8d8f80992c4d78,\n\t\t0xbda24ef378533894,\n\t\t0xbda949777c149f4b,\n\t\t0xbdb679ec96303b53,\n\t\t0xbe71bb7b0ed4539a,\n\t\t0xbebae5caecad3c49,\n\t\t0xbee5e0529f9017ff,\n\t\t0xbf1cf3d6e654e947,\n\t\t0xc089763bca3e3f44,\n\t\t0xc0ad53271497ab77,\n\t\t0xc0dd66dedad92ef8,\n\t\t0xc18496cf650e6886,\n\t\t0xc338177a5379031a,\n\t\t0xc3fcefc580775485,\n\t\t0xc44d12b3aee49f34,\n\t\t0xc738867ebff9b7cb,\n\t\t0xc7e5f661ac57ebb2,\n\t\t0xc9558eac26b0f15e,\n\t\t0xc9601ec89a6aa066,\n\t\t0xc9b3a8263f6853d7,\n\t\t0xcb6e3e65f2dbc914,\n\t\t0xcbd45f6552b4ba24,\n\t\t0xccf4f28c8951edf6,\n\t\t0xcf864fbad605b1c7,\n\t\t0xd0071dd673841599,\n\t\t0xd01613feea87ee6a,\n\t\t0xd1afceb8146949d4,\n\t\t0xd2117353ea065c72,\n\t\t0xd35d6ae0fdbd9bc5,\n\t\t0xd36e267b961bffd3,\n\t\t0xd46456b6c34d2ab1,\n\t\t0xd49a2570fb5a4342,\n\t\t0xd701f5ae7e7560e9,\n\t\t0xd70c154f9521b73d,\n\t\t0xd7315a3b3f92aa4a,\n\t\t0xd78724f6fbd5c5c5,\n\t\t0xd7a7f00d5a96fc43,\n\t\t0xd7ef486de484610d,\n\t\t0xd9459f2361338d96,\n\t\t0xd95473f6f8a89a69,\n\t\t0xdb27e243a580d2f0,\n\t\t0xdb78f249dcc7b9f1,\n\t\t0xdba8e30445acc3f4,\n\t\t0xdc0aec8d179d4ec9,\n\t\t0xdc876697979bc7e5,\n\t\t0xdec9706a7438a8f0,\n\t\t0xe0b1a560d0e4d51a,\n\t\t0xe0f49db8c42c72b2,\n\t\t0xe154e487144bf3c2,\n\t\t0xe19b7cffa7304650,\n\t\t0xe1b522247fc407ad,\n\t\t0xe2b3585db47cd4f9,\n\t\t0xe2f81b4403ef433b,\n\t\t0xe71560d8bc06c6fd,\n\t\t0xe75c9c74c2bacb82,\n\t\t0xe83f954c9635f05a,\n\t\t0xe88fae3b2e03bc0c,\n\t\t0xe92935bf20cc2856,\n\t\t0xea498a2451bae614,\n\t\t0xeadaf2b11fded490,\n\t\t0xecb10f87fbe0d6c5,\n\t\t0xed67802d71143df2,\n\t\t0xf09939b7753e795c,\n\t\t0xf0c07855b6fcd215,\n\t\t0xf3243256580294f3,\n\t\t0xf39ffa0d4b61ecce,\n\t\t0xf485a561c31c83d2,\n\t\t0xf4d42db113af3a4b,\n\t\t0xf5c310bd5e2aa138,\n\t\t0xf7250939585a23f6,\n\t\t0xf7da25d3ead6c0d3,\n\t\t0xf8551f83bb42e152,\n\t\t0xf9b772853fd93ea9,\n\t\t0xfa04b4272d0ffcd9,\n\t\t0xfa4486fa9522275e,\n\t\t0xfaa680ef12c44624,\n\t\t0xfbae9f53eadd9cda,\n\t\t0xfc487818328b97ef,\n\t\t0xfc6b4417fdef895a,\n\t\t0xfcaa6dc30ba75197,\n\t\t0xfd86771dd5950237,\n\t\t0xfde70cc7d597944e)\n}\n"
  },
  {
    "path": "server/fs_handler.go",
    "content": "package server\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"runtime\"\n\t\"time\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs\"\n\tie \"github.com/sahib/brig/catfs/errors\"\n\t\"github.com/sahib/brig/server/capnp\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnplib \"zombiezen.com/go/capnproto2\"\n\t\"zombiezen.com/go/capnproto2/server\"\n)\n\ntype fsHandler struct {\n\tbase *base\n}\n\nfunc statToCapnp(fs *catfs.FS, info *catfs.StatInfo, seg *capnplib.Segment) (*capnp.StatInfo, error) {\n\tcapInfo, err := capnp.NewStatInfo(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetPath(info.Path); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetUser(info.User); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetTreeHash(info.TreeHash.Bytes()); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetContentHash(info.ContentHash.Bytes()); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetBackendHash(info.BackendHash.Bytes()); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetKey(info.Key); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodTime, err := info.ModTime.MarshalText()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetModTime(string(modTime)); err != nil {\n\t\treturn nil, err\n\t}\n\n\thint := fs.Hints().Lookup(info.Path)\n\tcapHint, err := hintToCapnp(seg, info.Path, hint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capInfo.SetHint(*capHint); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapInfo.SetSize(info.Size)\n\tcapInfo.SetCachedSize(info.CachedSize)\n\tcapInfo.SetInode(info.Inode)\n\tcapInfo.SetIsDir(info.IsDir)\n\tcapInfo.SetIsRaw(info.IsRaw)\n\tcapInfo.SetDepth(int32(info.Depth))\n\tcapInfo.SetIsPinned(info.IsPinned)\n\tcapInfo.SetIsExplicit(info.IsExplicit)\n\treturn &capInfo, nil\n}\n\n////////////////////////////////////\n// ACTUAL HANDLER IMPLEMENTATIONS //\n////////////////////////////////////\n\nfunc (fh *fsHandler) List(call capnp.FS_list) error {\n\tserver.Ack(call.Options)\n\n\t// Collect list params:\n\troot, err := call.Params.Root()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmaxDepth := call.Params.MaxDepth()\n\n\treturn fh.base.withFsFromPath(root, func(url *URL, fs *catfs.FS) error {\n\t\tentries, err := fs.List(url.Path, int(maxDepth))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// ...and convert results for the wire:\n\t\tlst, err := capnp.NewStatInfo_List(\n\t\t\tcall.Results.Segment(),\n\t\t\tint32(len(entries)),\n\t\t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, entry := range entries {\n\t\t\tcapEntry, err := statToCapnp(fs, entry, call.Results.Segment())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := lst.Set(idx, *capEntry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn call.Results.SetEntries(lst)\n\t})\n}\n\nfunc (fh *fsHandler) Stage(call capnp.FS_stage) error {\n\tserver.Ack(call.Options)\n\n\trepoPath, err := call.Params.RepoPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlocalPath, err := call.Params.LocalPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(repoPath, func(url *URL, fs *catfs.FS) error {\n\t\tfd, err := os.Open(localPath) // #nosec\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tdefer fd.Close()\n\n\t\tif err := fs.Stage(url.Path, fd); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\n///////////////\n\nfunc (fh *fsHandler) StageFromStream(call capnp.FS_stageFromStream) error {\n\tserver.Ack(call.Options)\n\n\trepoPath, err := call.Params.RepoPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Immediately return, but tell Cap'n Proto which code\n\t// to call once we receive a chunk.\n\treturn call.Results.SetStream(\n\t\tcapnp.FS_StageStream_ServerToClient(\n\t\t\tnewStreamServer(fh.base, repoPath),\n\t\t),\n\t)\n}\n\n///////////////\n\nfunc (fh *fsHandler) Cat(call capnp.FS_cat) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif call.Params.Offline() {\n\t\t\tisCached, err := fs.IsCached(url.Path)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif !isCached {\n\t\t\t\treturn fmt.Errorf(\"file is not in local cache\")\n\t\t\t}\n\t\t}\n\n\t\tstream, err := fs.Cat(url.Path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tport, err := bootTransferServer(fs, \"127.0.0.1\", func(conn net.Conn) {\n\t\t\tdefer stream.Close()\n\t\t\tlocalAddr := conn.LocalAddr().String()\n\n\t\t\tstart := time.Now()\n\t\t\tn, err := io.Copy(conn, stream)\n\t\t\tif err != nil {\n\t\t\t\tlog.Warningf(\"I/O failed for path %s on %s: %v\", path, localAddr, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlog.Infof(\"Wrote %d bytes of `%s` over %s in %v\", n, path, localAddr, time.Since(start))\n\t\t})\n\n\t\tif err != nil {\n\t\t\t// Close the stream, since the copy callback was likely not called.\n\t\t\tstream.Close()\n\t\t\treturn err\n\t\t}\n\n\t\tcall.Results.SetPort(int32(port))\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Tar(call capnp.FS_tar) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif call.Params.Offline() {\n\t\t\tisCached, err := fs.IsCached(url.Path)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif !isCached {\n\t\t\t\treturn fmt.Errorf(\"data is not in local cache\")\n\t\t\t}\n\t\t}\n\n\t\tif _, err := fs.Stat(path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tport, err := bootTransferServer(fs, \"127.0.0.1\", func(conn net.Conn) {\n\t\t\tlocalAddr := conn.LocalAddr().String()\n\t\t\tif err := fs.Tar(path, conn, nil); err != nil {\n\t\t\t\tlog.Warningf(\"tar failed for path %s on %s: %v\", path, localAddr, err)\n\t\t\t}\n\t\t})\n\n\t\tcall.Results.SetPort(int32(port))\n\t\treturn err\n\t})\n}\n\nfunc (fh *fsHandler) Mkdir(call capnp.FS_mkdir) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcreateParents := call.Params.CreateParents()\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif err := fs.Mkdir(url.Path, createParents); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Remove(call capnp.FS_remove) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif err := fs.Remove(url.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Move(call capnp.FS_move) error {\n\tserver.Ack(call.Options)\n\n\tsrcPath, err := call.Params.SrcPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstPath, err := call.Params.DstPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstURL, err := parsePath(dstPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(srcPath, func(srcUrl *URL, fs *catfs.FS) error {\n\t\tif srcUrl.User != dstURL.User {\n\t\t\treturn fmt.Errorf(\"cannot move between users: %s <-> %s\", srcUrl.User, dstURL.User)\n\t\t}\n\n\t\tif err := fs.Move(srcUrl.Path, dstURL.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Copy(call capnp.FS_copy) error {\n\tserver.Ack(call.Options)\n\n\tsrcPath, err := call.Params.SrcPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstPath, err := call.Params.DstPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdstURL, err := parsePath(dstPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(srcPath, func(srcUrl *URL, fs *catfs.FS) error {\n\t\tif srcUrl.User != dstURL.User {\n\t\t\treturn fmt.Errorf(\"cannot copy between users: %s <-> %s\", srcUrl.User, dstURL.User)\n\t\t}\n\n\t\tif err := fs.Copy(srcUrl.Path, dstURL.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Pin(call capnp.FS_pin) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\treturn fs.Pin(url.Path, \"curr\", true)\n\t})\n}\n\nfunc (fh *fsHandler) Unpin(call capnp.FS_unpin) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\treturn fs.Unpin(url.Path, \"curr\", true)\n\t})\n}\n\nfunc (fh *fsHandler) Repin(call capnp.FS_repin) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withCurrFs(func(fs *catfs.FS) error {\n\t\treturn fs.Repin(path)\n\t})\n}\n\nfunc (fh *fsHandler) Stat(call capnp.FS_stat) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tinfo, err := fs.Stat(url.Path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcapInfo, err := statToCapnp(fs, info, call.Results.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn call.Results.SetInfo(*capInfo)\n\t})\n}\n\nfunc (fh *fsHandler) GarbageCollect(call capnp.FS_garbageCollect) error {\n\tserver.Ack(call.Options)\n\n\trp := fh.base.repo\n\tbk := fh.base.backend\n\n\taggressive := call.Params.Aggressive()\n\tstats, err := rp.GC(bk, aggressive)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgcItems := []capnp.GarbageItem{}\n\n\tfor owner, subStats := range stats {\n\t\tfor path, content := range subStats {\n\t\t\tgcItem, err := capnp.NewGarbageItem(call.Results.Segment())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := gcItem.SetPath(path); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := gcItem.SetContent(content.Bytes()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := gcItem.SetOwner(owner); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tgcItems = append(gcItems, gcItem)\n\t\t}\n\t}\n\n\tfreed, err := capnp.NewGarbageItem_List(\n\t\tcall.Results.Segment(),\n\t\tint32(len(gcItems)),\n\t)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx := 0; idx < len(gcItems); idx++ {\n\t\tif err := freed.Set(idx, gcItems[idx]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetFreed(freed)\n}\n\nfunc (fh *fsHandler) Touch(call capnp.FS_touch) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif err := fs.Touch(url.Path); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfh.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Exists(call capnp.FS_exists) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\t_, err := fs.Stat(url.Path)\n\n\t\texists := true\n\t\tif err != nil {\n\t\t\tif ie.IsNoSuchFileError(err) {\n\t\t\t\texists = false\n\t\t\t} else {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tcall.Results.SetExists(exists)\n\t\treturn nil\n\t})\n}\n\nfunc (fh *fsHandler) Undelete(call capnp.FS_undelete) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withCurrFs(func(fs *catfs.FS) error {\n\t\treturn fs.Undelete(path)\n\t})\n}\n\nfunc (fh *fsHandler) DeletedNodes(call capnp.FS_deletedNodes) error {\n\tserver.Ack(call.Options)\n\n\troot, err := call.Params.Root()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withCurrFs(func(fs *catfs.FS) error {\n\t\tnodes, err := fs.DeletedNodes(root)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlst, err := capnp.NewStatInfo_List(\n\t\t\tcall.Results.Segment(),\n\t\t\tint32(len(nodes)),\n\t\t)\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, node := range nodes {\n\t\t\tcapEntry, err := statToCapnp(fs, node, call.Results.Segment())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := lst.Set(idx, *capEntry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn call.Results.SetNodes(lst)\n\t})\n}\n\nfunc (fh *fsHandler) IsCached(call capnp.FS_isCached) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tisCached, err := fs.IsCached(url.Path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcall.Results.SetIsCached(isCached)\n\t\treturn nil\n\t})\n}\n\nfunc recodeStream(fs *catfs.FS, path string) error {\n\tstream, err := fs.Cat(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer stream.Close()\n\n\treturn fs.Stage(path, stream)\n}\n\nfunc (fh *fsHandler) RecodeStream(call capnp.FS_recodeStream) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fh.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\t// If it's a file the list will be just the file itself.\n\t\tchildren, err := fs.List(url.Path, -1)\n\t\tif err != nil {\n\t\t\treturn e.Wrap(err, \"failed to list\")\n\t\t}\n\n\t\t// channel serves as token giver to limit parallel workload:\n\t\tsem := make(chan error, runtime.NumCPU()*2)\n\t\tfor idx := 0; idx < cap(sem); idx++ {\n\t\t\tsem <- nil\n\t\t}\n\n\t\tfor _, child := range children {\n\t\t\tif child.IsDir {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Get next token:\n\t\t\tif err := <-sem; err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tgo func(path string) {\n\t\t\t\terr := recodeStream(fs, path)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.WithError(err).Warnf(\"failed to recode %s\", err)\n\t\t\t\t}\n\t\t\t\tsem <- err\n\t\t\t}(child.Path)\n\t\t}\n\n\t\t// drain any errors possibly still left in the channel.\n\t\t// This also make sure to wait until completion.\n\t\t// Note we don't cancel running request.\n\t\tfor idx := 0; idx < cap(sem); idx++ {\n\t\t\tif err := <-sem; err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n}\n"
  },
  {
    "path": "server/net_handler.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\tp2pnet \"github.com/sahib/brig/net\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n\t\"github.com/sahib/brig/server/capnp\"\n\t\"github.com/sahib/brig/util/conductor\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnplib \"zombiezen.com/go/capnproto2\"\n\t\"zombiezen.com/go/capnproto2/server\"\n)\n\ntype netHandler struct {\n\tbase *base\n}\n\nfunc (nh *netHandler) Whoami(call capnp.Net_whoami) error {\n\tserver.Ack(call.Options)\n\n\tcapID, err := capnp.NewIdentity(call.Results.Segment())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpsrv := nh.base.peerServer\n\tself, err := psrv.Identity()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Compute our own fingerprint:\n\trp := nh.base.repo\n\tkr, err := rp.Keyring()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\townPubKey, err := kr.OwnPubKey()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfinger := peer.BuildFingerprint(self.Addr, ownPubKey)\n\n\towner := rp.Immutables.Owner()\n\tif err := capID.SetOwner(owner); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capID.SetFingerprint(string(finger)); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capID.SetCurrentUser(rp.CurrentUser()); err != nil {\n\t\treturn err\n\t}\n\n\tcapID.SetIsOnline(psrv.IsOnline())\n\treturn call.Results.SetWhoami(capID)\n}\n\nfunc (nh *netHandler) Connect(call capnp.Net_connect) error {\n\tserver.Ack(call.Options)\n\tlog.Infof(\"backend is going online...\")\n\treturn nh.base.peerServer.Connect()\n}\n\nfunc (nh *netHandler) Disconnect(call capnp.Net_disconnect) error {\n\tserver.Ack(call.Options)\n\tlog.Infof(\"backend is going offline...\")\n\treturn nh.base.peerServer.Disconnect()\n}\n\nfunc (nh *netHandler) RemoteOnlineList(call capnp.Net_remoteOnlineList) error {\n\tserver.Ack(call.Options)\n\n\trp := nh.base.repo\n\tpsrv := nh.base.peerServer\n\n\tremotes, err := rp.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tseg := call.Results.Segment()\n\tstatuses, err := capnp.NewRemoteStatus_List(seg, int32(len(remotes)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, remote := range remotes {\n\t\tstatus, err := capnp.NewRemoteStatus(call.Results.Segment())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcapRemote, err := remoteToCapRemote(remote, seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := status.SetRemote(*capRemote); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\taddr := remote.Fingerprint.Addr()\n\t\tpinger, err := psrv.PingMap().For(addr)\n\t\tif err != nil {\n\t\t\tstatus.SetError(err.Error())\n\t\t}\n\n\t\tif pinger != nil {\n\t\t\troundtrip := int32(pinger.Roundtrip() / time.Millisecond)\n\t\t\tstatus.SetRoundtripMs(roundtrip)\n\n\t\t\tlastSeen := pinger.LastSeen().Format(time.RFC3339)\n\t\t\tif err := status.SetLastSeen(lastSeen); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tstatus.SetAuthenticated(psrv.PingMap().IsAuthenticated(addr))\n\t\t} else {\n\t\t\terrMsg := fmt.Sprintf(\"no route\")\n\t\t\tif err := status.SetError(errMsg); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err := statuses.Set(idx, status); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetInfos(statuses)\n}\n\nfunc (nh *netHandler) RemotePing(call capnp.Net_remotePing) error {\n\twho, err := call.Params.Who()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nh.base.withNetClient(who, func(ctl *p2pnet.Client) error {\n\t\tstart := time.Now()\n\t\tif err := ctl.Ping(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\troundtrip := time.Since(start).Seconds()\n\t\tcall.Results.SetRoundtrip(roundtrip)\n\t\treturn nil\n\t})\n}\n\nfunc capRemoteToRemote(remote capnp.Remote) (*repo.Remote, error) {\n\tremoteName, err := remote.Name()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapFingerprint, err := remote.Fingerprint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Check the fingerprint to be valid:\n\tfingerprint, err := peer.CastFingerprint(capFingerprint)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconflictStrategy, err := remote.ConflictStrategy()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tremoteFolders, err := remote.Folders()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfolders := []repo.Folder{}\n\tfor idx := 0; idx < remoteFolders.Len(); idx++ {\n\t\tcapFolder := remoteFolders.At(idx)\n\t\tfolderName, err := capFolder.Folder()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcs, err := capFolder.ConflictStrategy()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tfolders = append(folders, repo.Folder{\n\t\t\tFolder:           folderName,\n\t\t\tReadOnly:         capFolder.ReadOnly(),\n\t\t\tConflictStrategy: cs,\n\t\t})\n\t}\n\n\treturn &repo.Remote{\n\t\tName:              remoteName,\n\t\tFingerprint:       peer.Fingerprint(fingerprint),\n\t\tFolders:           folders,\n\t\tAcceptAutoUpdates: remote.AcceptAutoUpdates(),\n\t\tAcceptPush:        remote.AcceptPush(),\n\t\tConflictStrategy:  conflictStrategy,\n\t}, nil\n}\n\nfunc remoteToCapRemote(remote repo.Remote, seg *capnplib.Segment) (*capnp.Remote, error) {\n\tcapRemote, err := capnp.NewRemote(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetName(remote.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetFingerprint(string(remote.Fingerprint)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capRemote.SetConflictStrategy(remote.ConflictStrategy); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapFolders, err := capnp.NewRemoteFolder_List(seg, int32(len(remote.Folders)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, folder := range remote.Folders {\n\t\tcapFolder, err := capnp.NewRemoteFolder(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapFolder.SetReadOnly(folder.ReadOnly)\n\t\tif err := capFolder.SetFolder(folder.Folder); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capFolder.SetConflictStrategy(folder.ConflictStrategy); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capFolders.Set(idx, capFolder); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := capRemote.SetFolders(capFolders); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapRemote.SetAcceptAutoUpdates(remote.AcceptAutoUpdates)\n\tcapRemote.SetAcceptPush(remote.AcceptPush)\n\treturn &capRemote, nil\n}\n\nfunc (nh *netHandler) RemoteByName(call capnp.Net_remoteByName) error {\n\tserver.Ack(call.Options)\n\n\tname, err := call.Params.Name()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := nh.base.repo\n\trmt, err := rp.Remotes.Remote(name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcapRemote, err := remoteToCapRemote(rmt, call.Results.Segment())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn call.Results.SetRemote(*capRemote)\n}\n\nfunc (nh *netHandler) RemoteAddOrUpdate(call capnp.Net_remoteAddOrUpdate) error {\n\tserver.Ack(call.Options)\n\n\trp := nh.base.repo\n\tcapRemote, err := call.Params.Remote()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tremote, err := capRemoteToRemote(capRemote)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\towner := rp.Immutables.Owner()\n\tif owner == remote.Name {\n\t\treturn fmt.Errorf(\"refusing to add a remote with the same as the repo owner\")\n\t}\n\n\tif err := rp.Remotes.AddOrUpdateRemote(*remote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nh.base.syncRemoteStates()\n}\n\nfunc (nh *netHandler) RemoteClear(call capnp.Net_remoteClear) error {\n\tserver.Ack(call.Options)\n\treturn nh.base.repo.Remotes.Clear()\n}\n\nfunc (nh *netHandler) RemoteRm(call capnp.Net_remoteRm) error {\n\tserver.Ack(call.Options)\n\n\tname, err := call.Params.Name()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := nh.base.repo\n\tif err := rp.Remotes.RmRemote(name); err != nil {\n\t\treturn err\n\t}\n\n\treturn nh.base.syncRemoteStates()\n}\n\nfunc (nh *netHandler) RemoteLs(call capnp.Net_remoteLs) error {\n\tserver.Ack(call.Options)\n\n\trp := nh.base.repo\n\tremotes, err := rp.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tseg := call.Results.Segment()\n\tcapRemotes, err := capnp.NewRemote_List(seg, int32(len(remotes)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, remote := range remotes {\n\t\tcapRemote, err := remoteToCapRemote(remote, seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capRemotes.Set(idx, *capRemote); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetRemotes(capRemotes)\n}\n\nfunc (nh *netHandler) RemoteUpdate(call capnp.Net_remoteUpdate) error {\n\tserver.Ack(call.Options)\n\n\trp := nh.base.repo\n\tcapRemote, err := call.Params.Remote()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tremote, err := capRemoteToRemote(capRemote)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn rp.Remotes.AddOrUpdateRemote(*remote)\n}\n\nfunc (nh *netHandler) RemoteSave(call capnp.Net_remoteSave) error {\n\tserver.Ack(call.Options)\n\n\tremotes := []repo.Remote{}\n\tcapRemotes, err := call.Params.Remotes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx := 0; idx < capRemotes.Len(); idx++ {\n\t\tcapRemote := capRemotes.At(idx)\n\t\tremote, err := capRemoteToRemote(capRemote)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tremotes = append(remotes, *remote)\n\t}\n\n\trp := nh.base.repo\n\tif err := rp.Remotes.SaveList(remotes); err != nil {\n\t\treturn err\n\t}\n\n\treturn nh.base.syncRemoteStates()\n}\n\n// LocateResult is one entry in the result of the \"net locate\" command.\ntype LocateResult struct {\n\tName        string\n\tMask        string\n\tAddr        string\n\tFingerprint string\n}\n\nfunc (nh *netHandler) peekAndCachePeer(peer peer.Info, mask p2pnet.LocateMask, ticket uint64) error {\n\tpeekCtx, cancel := context.WithTimeout(nh.base.ctx, 2*time.Second)\n\tdefer cancel()\n\n\tpsrv := nh.base.peerServer\n\tfingerprint, remoteName, err := psrv.PeekFingerprint(peekCtx, peer.Addr)\n\tif err != nil {\n\t\tlog.Warningf(\n\t\t\t\"No fingerprint for %v %v\",\n\t\t\tpeer.Addr,\n\t\t\terr,\n\t\t)\n\t\treturn err\n\t}\n\n\tif string(fingerprint) == \"\" {\n\t\treturn nil\n\t}\n\n\tresult := &LocateResult{\n\t\tName:        string(remoteName),\n\t\tAddr:        string(peer.Addr),\n\t\tMask:        mask.String(),\n\t\tFingerprint: string(fingerprint),\n\t}\n\n\tlog.Debugf(\"Pushing partial result: %v\", result)\n\tif err := nh.base.conductor.Push(ticket, result); err != nil {\n\t\tlog.Debugf(\"Failed to push result: %v\", err)\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (nh *netHandler) NetLocate(call capnp.Net_netLocate) error {\n\ttimeoutSec := call.Params.TimeoutSec()\n\n\twho, err := call.Params.Who()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlocateMaskSpec, err := call.Params.LocateMask()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlocateMask := p2pnet.LocateMask(p2pnet.LocateAll)\n\tif locateMaskSpec != \"\" {\n\t\tlocateMask, err = p2pnet.LocateMaskFromString(locateMaskSpec)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tpsrv := nh.base.peerServer\n\tident, err := psrv.Identity()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\taddrCache := sync.Map{}\n\taddrCache.Store(ident.Addr, true)\n\n\tticket := nh.base.conductor.Exec(func(ticket uint64) error {\n\t\ttimeoutDur := time.Duration(timeoutSec * float64(time.Second))\n\t\tctx, cancel := context.WithTimeout(nh.base.ctx, timeoutDur)\n\t\tdefer cancel()\n\n\t\tlog.WithFields(log.Fields{\n\t\t\t\"who\":     who,\n\t\t\t\"timeout\": timeoutSec,\n\t\t\t\"mask\":    locateMask,\n\t\t}).Debug(\"Starting locate...\")\n\n\t\tlocateCh := psrv.Locate(ctx, peer.Name(who), locateMask)\n\n\t\twg := sync.WaitGroup{}\n\t\tfor located := range locateCh {\n\t\t\tif located.Err != nil {\n\t\t\t\tlog.Debugf(\"Locate failed for %s: %v\", located.Name, located.Err)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Every result might have more than one peer.\n\t\t\t// We should quickly check all of them to see if they are valid.\n\t\t\t// If some addrs are duplicated, we'll retrieve them from addrCache.\n\t\t\tfor _, locatedPeer := range located.Peers {\n\t\t\t\tif _, ok := addrCache.Load(locatedPeer.Addr); ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tlog.Debugf(\"Fetching fingerprint for %v\", locatedPeer.Addr)\n\n\t\t\t\t// Do the actual lookup in the background and start\n\t\t\t\t// the other lookups in parallel.\n\t\t\t\twg.Add(1)\n\t\t\t\tgo func(peer peer.Info, located p2pnet.LocateResult) {\n\t\t\t\t\tdefer wg.Done()\n\t\t\t\t\taddrCache.Store(peer.Addr, true)\n\t\t\t\t\tnh.peekAndCachePeer(peer, located.Mask, ticket)\n\t\t\t\t}(locatedPeer, located)\n\t\t\t}\n\t\t}\n\n\t\t// Let background worker run until all go routines are finished.\n\t\t// Otherwise the result-killing timeout would set in too early.\n\t\twg.Wait()\n\t\treturn nil\n\t})\n\n\t// Tell the client under what ticket he can query for results.\n\tcall.Results.SetTicket(ticket)\n\treturn nil\n}\n\nfunc (nh *netHandler) NetLocateNext(call capnp.Net_netLocateNext) error {\n\tticket := call.Params.Ticket()\n\tdata, err := nh.base.conductor.Pop(ticket)\n\tif err != nil && !conductor.IsNoDataLeft(err) {\n\t\treturn err\n\t}\n\n\tif conductor.IsNoDataLeft(err) {\n\t\treturn nil\n\t}\n\n\tresult, ok := data.(*LocateResult)\n\tif !ok {\n\t\treturn fmt.Errorf(\"internal error: wrong type for LocateResult\")\n\t}\n\n\tcapResult, err := capnp.NewLocateResult(call.Results.Segment())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := capResult.SetName(result.Name); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capResult.SetAddr(result.Addr); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capResult.SetMask(result.Mask); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capResult.SetFingerprint(result.Fingerprint); err != nil {\n\t\treturn err\n\t}\n\n\treturn call.Results.SetResult(capResult)\n}\n\nfunc (nh *netHandler) Push(call capnp.Net_push) error {\n\tremoteName, err := call.Params.RemoteName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nh.base.withNetClient(remoteName, func(ctl *p2pnet.Client) error {\n\t\tpushAllowed, err := ctl.IsPushAllowed()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !pushAllowed {\n\t\t\treturn fmt.Errorf(\"cannot push: remote does not allow it\")\n\t\t}\n\n\t\tif call.Params.DryRun() {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn ctl.Push()\n\t})\n}\n"
  },
  {
    "path": "server/path.go",
    "content": "package server\n\nimport (\n\t\"path\"\n\t\"strings\"\n)\n\n// URL is a path to a file or directory,\n// that might optionally include a user name.\ntype URL struct {\n\tUser string\n\tPath string\n}\n\nfunc prefixSlash(p string) string {\n\tif !strings.HasPrefix(p, \"/\") {\n\t\treturn \"/\" + p\n\t}\n\n\treturn p\n}\n\nfunc clean(p string) string {\n\treturn prefixSlash(path.Clean(p))\n}\n\nfunc parsePath(p string) (*URL, error) {\n\tif strings.HasPrefix(p, \"/\") {\n\t\t// no user part in there.\n\t\treturn &URL{Path: clean(p), User: \"\"}, nil\n\t}\n\n\tif idx := strings.IndexRune(p, ':'); idx <= 0 || idx >= len(p)-1 {\n\t\treturn &URL{Path: clean(p), User: \"\"}, nil\n\t}\n\n\tsplit := strings.SplitN(p, \":\", 2)\n\treturn &URL{\n\t\tPath: clean(split[1]),\n\t\tUser: split[0],\n\t}, nil\n}\n"
  },
  {
    "path": "server/path_test.go",
    "content": "package server\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestParsePath(t *testing.T) {\n\ttcs := []struct {\n\t\tPath   string\n\t\tExpect *URL\n\t}{\n\t\t{Path: \"/\", Expect: &URL{User: \"\", Path: \"/\"}},\n\t\t{Path: \"/a/b/c\", Expect: &URL{User: \"\", Path: \"/a/b/c\"}},\n\t\t{Path: \"a/b/c\", Expect: &URL{User: \"\", Path: \"/a/b/c\"}},\n\t\t{Path: \"a:/b/c\", Expect: &URL{User: \"a\", Path: \"/b/c\"}},\n\t\t{Path: \"a:b/c\", Expect: &URL{User: \"a\", Path: \"/b/c\"}},\n\t\t{Path: \"a:b/c/..\", Expect: &URL{User: \"a\", Path: \"/b\"}},\n\t\t{Path: \"a::b\", Expect: &URL{User: \"a\", Path: \"/:b\"}},\n\t\t{Path: \"a::\", Expect: &URL{User: \"a\", Path: \"/:\"}},\n\t\t{Path: \"a:\", Expect: &URL{User: \"\", Path: \"/a:\"}},\n\t\t{Path: \":a\", Expect: &URL{User: \"\", Path: \"/:a\"}},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.Path, func(t *testing.T) {\n\t\t\tgot, err := parsePath(tc.Path)\n\t\t\trequire.Nil(t, err)\n\t\t\trequire.Equal(t, tc.Expect, got)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "server/remotes_api.go",
    "content": "package server\n\nimport (\n\t\"fmt\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/gateway/remotesapi\"\n\t\"github.com/sahib/brig/net/peer\"\n\t\"github.com/sahib/brig/repo\"\n)\n\n// RemotesAPI is an adapter of base for the gateway.\ntype RemotesAPI struct {\n\tbase *base\n}\n\n// NewRemotesAPI returns a new RemotesAPI.\nfunc NewRemotesAPI(base *base) *RemotesAPI {\n\treturn &RemotesAPI{\n\t\tbase: base,\n\t}\n}\n\n// List all existing remotes.\nfunc (a *RemotesAPI) List() ([]*remotesapi.Remote, error) {\n\t// TODO: Do this in parallel.\n\trmts, err := a.base.repo.Remotes.ListRemotes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\textRmts := []*remotesapi.Remote{}\n\tfor _, rmt := range rmts {\n\t\textRmt, err := a.get(rmt.Name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\textRmts = append(extRmts, extRmt)\n\t}\n\n\treturn extRmts, nil\n}\n\n// Get a remote by its `name`.\nfunc (a *RemotesAPI) Get(name string) (*remotesapi.Remote, error) {\n\treturn a.get(name)\n}\n\nfunc (a *RemotesAPI) get(name string) (*remotesapi.Remote, error) {\n\trmt, err := a.base.repo.Remotes.Remote(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\textRmt := &remotesapi.Remote{}\n\textRmt.Name = rmt.Name\n\textRmt.Fingerprint = string(rmt.Fingerprint)\n\textRmt.AcceptAutoUpdates = rmt.AcceptAutoUpdates\n\textRmt.AcceptPush = rmt.AcceptPush\n\textRmt.ConflictStrategy = rmt.ConflictStrategy\n\n\tfor _, folder := range rmt.Folders {\n\t\textRmt.Folders = append(extRmt.Folders, remotesapi.Folder{\n\t\t\tFolder:   folder.Folder,\n\t\t\tReadOnly: folder.ReadOnly,\n\t\t})\n\t}\n\n\taddr := rmt.Fingerprint.Addr()\n\tpsrv := a.base.peerServer\n\tpinger, err := psrv.PingMap().For(addr)\n\tif err != nil {\n\t\t// early exit: peer is not online.\n\t\treturn extRmt, nil\n\t}\n\n\textRmt.IsOnline = pinger.Roundtrip() > 0\n\textRmt.LastSeen = pinger.LastSeen()\n\textRmt.IsAuthenticated = psrv.PingMap().IsAuthenticated(addr)\n\treturn extRmt, nil\n}\n\n// Set (i.e. add or modify) a remote.\n// IsAuthenticated, IsOnline and LastSeen will be ignored.\nfunc (a *RemotesAPI) Set(rm remotesapi.Remote) error {\n\tfp, err := peer.CastFingerprint(rm.Fingerprint)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfolders := []repo.Folder{}\n\tfor _, folder := range rm.Folders {\n\t\tfolders = append(folders, repo.Folder{\n\t\t\tFolder:   folder.Folder,\n\t\t\tReadOnly: folder.ReadOnly,\n\t\t})\n\t}\n\n\terr = a.base.repo.Remotes.AddOrUpdateRemote(repo.Remote{\n\t\tName:              rm.Name,\n\t\tFingerprint:       fp,\n\t\tFolders:           folders,\n\t\tAcceptAutoUpdates: rm.AcceptAutoUpdates,\n\t\tAcceptPush:        rm.AcceptPush,\n\t\tConflictStrategy:  rm.ConflictStrategy,\n\t})\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn a.base.syncRemoteStates()\n}\n\n// Remove removes a remote by `name`.\nfunc (a *RemotesAPI) Remove(name string) error {\n\tif err := a.base.repo.Remotes.RmRemote(name); err != nil {\n\t\treturn err\n\t}\n\n\treturn a.base.syncRemoteStates()\n}\n\n// Self returns the identity of this repository.\nfunc (a *RemotesAPI) Self() (remotesapi.Identity, error) {\n\tkr, err := a.base.repo.Keyring()\n\tif err != nil {\n\t\treturn remotesapi.Identity{}, err\n\t}\n\n\townPubKey, err := kr.OwnPubKey()\n\tif err != nil {\n\t\treturn remotesapi.Identity{}, err\n\t}\n\n\tidentity, err := a.base.peerServer.Identity()\n\tif err != nil {\n\t\treturn remotesapi.Identity{}, err\n\t}\n\n\towner := a.base.repo.Immutables.Owner()\n\tfp := peer.BuildFingerprint(identity.Addr, ownPubKey)\n\treturn remotesapi.Identity{\n\t\tName:        owner,\n\t\tFingerprint: string(fp),\n\t}, nil\n}\n\n// Sync synchronizes the latest state of `name` with our latest state.\nfunc (a *RemotesAPI) Sync(name string) error {\n\tmsg := fmt.Sprintf(\"sync with »%s« from gateway\", name)\n\t_, err := a.base.doSync(name, true, msg)\n\treturn err\n}\n\n// MakeDiff produces a diff to the remote with `name`.\nfunc (a *RemotesAPI) MakeDiff(name string) (*catfs.Diff, error) {\n\tif err := a.base.doFetch(name); err != nil {\n\t\treturn nil, e.Wrapf(err, \"fetch-remote\")\n\t}\n\n\tvar diff *catfs.Diff\n\treturn diff, a.base.withCurrFs(func(localFs *catfs.FS) error {\n\t\treturn a.base.withRemoteFs(name, func(remoteFs *catfs.FS) error {\n\t\t\tnewDiff, err := localFs.MakeDiff(remoteFs, \"CURR\", \"CURR\")\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdiff = newDiff\n\t\t\treturn nil\n\t\t})\n\t})\n}\n\n// OnChange register a callback to be called once the remote list changes.\nfunc (a *RemotesAPI) OnChange(fn func()) {\n\ta.base.repo.Remotes.OnChange(fn)\n}\n"
  },
  {
    "path": "server/repo_handler.go",
    "content": "package server\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/sahib/brig/backend\"\n\t\"github.com/sahib/brig/fuse\"\n\tgwdb \"github.com/sahib/brig/gateway/db\"\n\tgwcapnp \"github.com/sahib/brig/gateway/db/capnp\"\n\t\"github.com/sahib/brig/repo/hints\"\n\t\"github.com/sahib/brig/server/capnp\"\n\t\"github.com/sahib/brig/version\"\n\tlog \"github.com/sirupsen/logrus\"\n\tcapnplib \"zombiezen.com/go/capnproto2\"\n\t\"zombiezen.com/go/capnproto2/server\"\n)\n\ntype repoHandler struct {\n\tbase *base\n}\n\nfunc (rh *repoHandler) Quit(call capnp.Repo_quit) error {\n\trh.base.quitCh <- struct{}{}\n\treturn nil\n}\n\nfunc (rh *repoHandler) Ping(call capnp.Repo_ping) error {\n\tserver.Ack(call.Options)\n\treturn call.Results.SetReply(\"PONG\")\n}\n\nfunc (rh *repoHandler) Mount(call capnp.Repo_mount) error {\n\tserver.Ack(call.Options)\n\n\tmountPath, err := call.Params.MountPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcapOpts, err := call.Params.Options()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmountOptions, err := capMountOptionsToMountOptions(capOpts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = rh.base.mounts.AddMount(mountPath, mountOptions)\n\treturn err\n}\n\nfunc (rh *repoHandler) Unmount(call capnp.Repo_unmount) error {\n\tserver.Ack(call.Options)\n\n\tmountPath, err := call.Params.MountPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn rh.base.mounts.Unmount(mountPath)\n}\n\nfunc capMountOptionsToMountOptions(capOpts capnp.MountOptions) (fuse.MountOptions, error) {\n\treadOnly := capOpts.ReadOnly()\n\toffline := capOpts.Offline()\n\trootPath, err := capOpts.RootPath()\n\tif err != nil {\n\t\treturn fuse.MountOptions{}, err\n\t}\n\n\treturn fuse.MountOptions{\n\t\tReadOnly: readOnly,\n\t\tRoot:     rootPath,\n\t\tOffline:  offline,\n\t}, nil\n}\n\nfunc (rh *repoHandler) FstabAdd(call capnp.Repo_fstabAdd) error {\n\tserver.Ack(call.Options)\n\n\tmountName, err := call.Params.MountName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmountPath, err := call.Params.MountPath()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\toptions, err := call.Params.Options()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmountOptions, err := capMountOptionsToMountOptions(options)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmountsCfg := rh.base.repo.Config.Section(\"mounts\")\n\treturn fuse.FsTabAdd(mountsCfg, mountName, mountPath, mountOptions)\n}\n\nfunc (rh *repoHandler) FstabRemove(call capnp.Repo_fstabRemove) error {\n\tserver.Ack(call.Options)\n\n\tmountName, err := call.Params.MountName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmountsCfg := rh.base.repo.Config.Section(\"mounts\")\n\tif err := fuse.FsTabRemove(mountsCfg, mountName); err != nil {\n\t\treturn err\n\t}\n\n\treturn rh.base.repo.SaveConfig()\n}\n\nfunc (rh *repoHandler) FstabApply(call capnp.Repo_fstabApply) error {\n\tserver.Ack(call.Options)\n\n\tmountsCfg := rh.base.repo.Config.Section(\"mounts\")\n\tif err := fuse.FsTabApply(mountsCfg, rh.base.mounts); err != nil {\n\t\treturn err\n\t}\n\n\treturn rh.base.repo.SaveConfig()\n}\n\nfunc (rh *repoHandler) FstabUnmountAll(call capnp.Repo_fstabUnmountAll) error {\n\tserver.Ack(call.Options)\n\treturn fuse.FsTabUnmountAll(rh.base.repo.Config, rh.base.mounts)\n}\n\nfunc fsTabEntryToCap(entry fuse.FsTabEntry, seg *capnplib.Segment) (*capnp.FsTabEntry, error) {\n\tcapEntry, err := capnp.NewFsTabEntry(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcapEntry.SetReadOnly(entry.ReadOnly)\n\tcapEntry.SetOffline(entry.Offline)\n\tcapEntry.SetActive(entry.Active)\n\n\tif err := capEntry.SetPath(entry.Path); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := capEntry.SetRoot(entry.Root); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := capEntry.SetName(entry.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capEntry, nil\n}\n\nfunc (rh *repoHandler) FstabList(call capnp.Repo_fstabList) error {\n\tserver.Ack(call.Options)\n\n\trp := rh.base.repo\n\tmounts := rh.base.mounts\n\tentries, err := fuse.FsTabList(rp.Config, mounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tseg := call.Results.Segment()\n\tcapEntries, err := capnp.NewFsTabEntry_List(seg, int32(len(entries)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, entry := range entries {\n\t\tcapEntry, err := fsTabEntryToCap(entry, seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capEntries.Set(idx, *capEntry); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetMounts(capEntries)\n}\n\nfunc (rh *repoHandler) ConfigGet(call capnp.Repo_configGet) error {\n\tkey, err := call.Params.Key()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := rh.base.repo\n\tif !rp.Config.IsValidKey(key) {\n\t\treturn fmt.Errorf(\"invalid key: %v\", key)\n\t}\n\n\tvalue := rp.Config.Uncast(key)\n\treturn call.Results.SetValue(value)\n}\n\nfunc (rh *repoHandler) ConfigDoc(call capnp.Repo_configDoc) error {\n\tkey, err := call.Params.Key()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := rh.base.repo\n\tif !rp.Config.IsValidKey(key) {\n\t\treturn fmt.Errorf(\"invalid key: %v\", key)\n\t}\n\n\tseg := call.Results.Segment()\n\tcapPair, err := rh.configDefaultEntryToCapnp(seg, key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn call.Results.SetDesc(*capPair)\n}\n\nfunc (rh *repoHandler) ConfigSet(call capnp.Repo_configSet) error {\n\tkey, err := call.Params.Key()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := rh.base.repo\n\tif !rp.Config.IsValidKey(key) {\n\t\treturn fmt.Errorf(\"invalid key: %v\", key)\n\t}\n\n\trawVal, err := call.Params.Value()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tval, err := rp.Config.Cast(key, rawVal)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tlog.Debugf(\"config: set `%s` to `%v`\", key, val)\n\tif err := rp.Config.Set(key, val); err != nil {\n\t\treturn err\n\t}\n\n\treturn rp.SaveConfig()\n}\n\nfunc (rh *repoHandler) configDefaultEntryToCapnp(seg *capnplib.Segment, key string) (*capnp.ConfigEntry, error) {\n\tpair, err := capnp.NewConfigEntry(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := pair.SetKey(key); err != nil {\n\t\treturn nil, err\n\t}\n\n\trp := rh.base.repo\n\tclientVal := fmt.Sprintf(\"%v\", rp.Config.Get(key))\n\tif err := pair.SetVal(clientVal); err != nil {\n\t\treturn nil, err\n\t}\n\n\tentry := rp.Config.GetDefault(key)\n\tif err := pair.SetDoc(entry.Docs); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefVal := fmt.Sprintf(\"%v\", entry.Default)\n\tif err := pair.SetDefault(defVal); err != nil {\n\t\treturn nil, err\n\t}\n\n\tpair.SetNeedsRestart(entry.NeedsRestart)\n\treturn &pair, nil\n}\n\nfunc (rh *repoHandler) ConfigAll(call capnp.Repo_configAll) error {\n\trp := rh.base.repo\n\tall := rp.Config.Keys()\n\tseg := call.Results.Segment()\n\n\tcapLst, err := capnp.NewConfigEntry_List(seg, int32(len(all)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, key := range all {\n\t\tcapPair, err := rh.configDefaultEntryToCapnp(seg, key)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capLst.Set(idx, *capPair); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetAll(capLst)\n}\n\nfunc (rh *repoHandler) Become(call capnp.Repo_become) error {\n\twho, err := call.Params.Who()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// We can only be users that are present in the remote list (and owner)\n\t// (This is not a technical limitation)\n\trp := rh.base.repo\n\tif who != rp.Immutables.Owner() {\n\t\t_, err = rp.Remotes.Remote(who)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tlog.Infof(\"Becoming: %v\", who)\n\trp.SetCurrentUser(who)\n\treturn nil\n}\n\nfunc (rh *repoHandler) Version(call capnp.Repo_version) error {\n\tserver.Ack(call.Options)\n\n\trp := rh.base.repo\n\tname := rp.Immutables.Backend()\n\tipfsPath := rp.Config.String(\"daemon.ipfs_path_or_url\")\n\tbkVersion := backend.Version(name, ipfsPath)\n\tif bkVersion == nil {\n\t\treturn fmt.Errorf(\"bug: invalid backend name: %v\", name)\n\t}\n\n\tcapVersion, err := capnp.NewVersion(call.Results.Segment())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := capVersion.SetServerVersion(version.String()); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capVersion.SetServerRev(version.GitRev); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capVersion.SetBackendVersion(bkVersion.SemVer()); err != nil {\n\t\treturn err\n\t}\n\n\tif err := capVersion.SetBackendRev(bkVersion.Rev()); err != nil {\n\t\treturn err\n\t}\n\n\treturn call.Results.SetVersion(capVersion)\n}\n\nfunc (rh *repoHandler) GatewayUserAdd(call capnp.Repo_gatewayUserAdd) error {\n\tserver.Ack(call.Options)\n\tname, err := call.Params.Name()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpassword, err := call.Params.Password()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfolders := []string{}\n\tcapFolders, err := call.Params.Folders()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx := 0; idx < capFolders.Len(); idx++ {\n\t\tfolder, err := capFolders.At(idx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !strings.HasPrefix(folder, \"/\") {\n\t\t\tfolder = \"/\" + folder\n\t\t}\n\n\t\tfolders = append(folders, folder)\n\t}\n\n\trights := []string{}\n\tcapRights, err := call.Params.Rights()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx := 0; idx < capRights.Len(); idx++ {\n\t\tright, err := capRights.At(idx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\trights = append(rights, right)\n\t}\n\n\tgwDb := rh.base.gateway.UserDatabase()\n\treturn gwDb.Add(name, password, folders, rights)\n}\n\nfunc (rh *repoHandler) GatewayUserRm(call capnp.Repo_gatewayUserRm) error {\n\tserver.Ack(call.Options)\n\n\tname, err := call.Params.Name()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgwDb := rh.base.gateway.UserDatabase()\n\treturn gwDb.Remove(name)\n}\n\nfunc (rh *repoHandler) GatewayUserList(call capnp.Repo_gatewayUserList) error {\n\tserver.Ack(call.Options)\n\n\tgwDb := rh.base.gateway.UserDatabase()\n\tusers, err := gwDb.List()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tseg := call.Results.Segment()\n\tcapUsers, err := gwcapnp.NewUser_List(seg, int32(len(users)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor idx, user := range users {\n\t\tcapUser, err := gwdb.UserToCapnp(&user, seg)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capUsers.Set(idx, *capUser); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn call.Results.SetUsers(capUsers)\n}\n\nfunc (rh *repoHandler) DebugProfilePort(call capnp.Repo_debugProfilePort) error {\n\tserver.Ack(call.Options)\n\tcall.Results.SetPort(int32(rh.base.pprofPort))\n\treturn nil\n}\n\nfunc (rh *repoHandler) HintSet(call capnp.Repo_hintSet) error {\n\tserver.Ack(call.Options)\n\n\tcapHint, err := call.Params.Hint()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath, err := capHint.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnewHint := rh.base.repo.Hints.Lookup(path)\n\n\tif capHint.HasCompressionAlgo() {\n\t\tcompressionAlgo, err := capHint.CompressionAlgo()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tnewHint.CompressionAlgo = hints.CompressionHint(compressionAlgo)\n\t}\n\n\tif capHint.HasEncryptionAlgo() {\n\t\tencryptionAlgo, err := capHint.EncryptionAlgo()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tnewHint.EncryptionAlgo = hints.EncryptionHint(encryptionAlgo)\n\t}\n\n\tif err := rh.base.repo.Hints.Set(path, newHint); err != nil {\n\t\treturn err\n\t}\n\n\t// Make sure the hints are immediately written to disk.\n\t// At time of writing this is the place where hints are changed.\n\treturn rh.base.repo.SaveHints()\n}\n\nfunc (rh *repoHandler) HintRemove(call capnp.Repo_hintRemove) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn rh.base.repo.Hints.Remove(path)\n}\n\nfunc hintToCapnp(seg *capnplib.Segment, path string, hint hints.Hint) (*capnp.Hint, error) {\n\tcapHint, err := capnp.NewHint(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capHint.SetPath(path); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capHint.SetCompressionAlgo(string(hint.CompressionAlgo)); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capHint.SetEncryptionAlgo(string(hint.EncryptionAlgo)); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capHint, nil\n}\n\nfunc (rh *repoHandler) HintList(call capnp.Repo_hintList) error {\n\tserver.Ack(call.Options)\n\n\thints := rh.base.repo.Hints.List()\n\n\tseg := call.Results.Segment()\n\tcapnpHints, err := capnp.NewHint_List(seg, int32(len(hints)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcapIdx := 0\n\n\tfor path, hint := range hints {\n\t\tcapHint, err := hintToCapnp(seg, path, hint)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := capnpHints.Set(capIdx, *capHint); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcapIdx++\n\t}\n\n\treturn call.Results.SetHints(capnpHints)\n}\n"
  },
  {
    "path": "server/rlimit_linux.go",
    "content": "// +build linux\n\npackage server\n\nimport (\n\t\"syscall\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nfunc increaseMaxOpenFds() error {\n\trLimit := syscall.Rlimit{}\n\tif err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {\n\t\treturn err\n\t}\n\n\t// We're good already.\n\tif rLimit.Cur >= rLimit.Max {\n\t\treturn nil\n\t}\n\n\trLimit.Cur = rLimit.Max\n\tif err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {\n\t\treturn err\n\t}\n\n\tif err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {\n\t\treturn err\n\t}\n\n\tlog.Debugf(\"Increased max number of open fds to %d (hard: %d)\", rLimit.Cur, rLimit.Max)\n\treturn nil\n}\n"
  },
  {
    "path": "server/rlimit_other.go",
    "content": "// +build !linux\n\npackage server\n\nfunc increaseMaxOpenFds() error {\n\t// no op on for non-linux systems.\n\treturn nil\n}\n"
  },
  {
    "path": "server/server.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"runtime/debug\"\n\n\t\"github.com/sahib/brig/fuse\"\n\t\"github.com/sahib/brig/util\"\n\t\"github.com/sahib/brig/util/server\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Server is the local api server used by the command client.\ntype Server struct {\n\tdaemonURL  string\n\tbaseServer *server.Server\n\tbase       *base\n}\n\n// Serve blocks until a quit command was send.\nfunc (sv *Server) Serve() error {\n\tlog.Infof(\"Serving local requests from now on.\")\n\treturn sv.baseServer.Serve()\n}\n\n// Close will clean up the listener resources.\nfunc (sv *Server) Close() error {\n\tsv.baseServer.Quit()\n\treturn sv.baseServer.Close()\n}\n\nfunc listenerFromServerURL(s string) (net.Listener, error) {\n\tscheme, addr, err := util.URLToSchemeAndAddr(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn net.Listen(scheme, addr)\n}\n\nfunc applyFstabInitially(base *base) error {\n\treturn fuse.FsTabApply(base.repo.Config.Section(\"mounts\"), base.mounts)\n}\n\n// RepoPath returns the repo path we're operating on\nfunc (sv *Server) RepoPath() string {\n\treturn sv.base.basePath\n}\n\n// DaemonURL returns the url that can be used used to access the server.\nfunc (sv *Server) DaemonURL() string {\n\treturn sv.daemonURL\n}\n\n// BootServer will boot up the local server.\nfunc BootServer(basePath string, serverURL string) (*Server, error) {\n\tdefer func() {\n\t\t// If anything in the daemon goes fatally wrong and it blows up, we\n\t\t// want to log the panic at least. Otherwise we'll have a hard time\n\t\t// debugging why the daemon suddenly quit.\n\t\tif err := recover(); err != nil {\n\t\t\tlog.Errorf(\"brig panicked with message: %v\", err)\n\t\t\tlog.Errorf(\"stack trace: %s\", debug.Stack())\n\t\t\tpanic(err)\n\t\t}\n\t}()\n\n\tlog.Infof(\"starting daemon for %s at %s\", basePath, serverURL)\n\tif err := increaseMaxOpenFds(); err != nil {\n\t\tlog.Warningf(\"failed to increase number of open fds\")\n\t}\n\n\tctx := context.Background()\n\tquitCh := make(chan struct{})\n\tbase := newBase(ctx, basePath, quitCh)\n\tlst, err := listenerFromServerURL(serverURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbaseServer, err := server.NewServer(ctx, lst, base)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tgo func() {\n\t\t// Wait for a quit signal.\n\t\t<-quitCh\n\t\tbaseServer.Quit()\n\t\tif err := baseServer.Close(); err != nil {\n\t\t\tlog.Warnf(\"failed to close local server listener: %v\", err)\n\t\t}\n\t}()\n\n\tif err := base.loadAll(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := applyFstabInitially(base); err != nil {\n\t\tlog.Warnf(\"could not mount fstab mounts: %v\", err)\n\t}\n\n\treturn &Server{\n\t\tdaemonURL:  serverURL,\n\t\tbaseServer: baseServer,\n\t\tbase:       base,\n\t}, nil\n}\n"
  },
  {
    "path": "server/stream.go",
    "content": "package server\n\nimport (\n\t\"sync\"\n\n\t\"github.com/djherbis/buffer\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/server/capnp\"\n\t\"gopkg.in/djherbis/nio.v2\"\n)\n\nconst (\n\tmemBufferSize = 64 * 1024\n)\n\nvar (\n\tsendBufferPool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn buffer.New(memBufferSize)\n\t\t},\n\t}\n)\n\n/////////////////\n// SERVER SIDE //\n/////////////////\n\ntype streamServer struct {\n\terr     *error\n\terrCond *sync.Cond\n\tpr      *nio.PipeReader\n\tpw      *nio.PipeWriter\n\tbuf     buffer.Buffer\n}\n\nfunc (ss *streamServer) doStage(base *base, repoPath string) {\n\terr := base.withFsFromPath(repoPath, func(url *URL, fs *catfs.FS) error {\n\t\tif err := fs.Stage(url.Path, ss.pr); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tbase.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n\n\tss.errCond.L.Lock()\n\tdefer ss.errCond.L.Unlock()\n\n\tss.err = &err\n\n\t// Wake up any calls waiting in Done()\n\tss.errCond.Broadcast()\n}\n\nfunc newStreamServer(base *base, repoPath string) *streamServer {\n\tbuf := sendBufferPool.Get().(buffer.Buffer)\n\tpr, pw := nio.Pipe(buf)\n\tss := &streamServer{\n\t\tpr:      pr,\n\t\tpw:      pw,\n\t\tbuf:     buf,\n\t\terrCond: sync.NewCond(&sync.Mutex{}),\n\t}\n\n\t// already start staging, but fill reader only\n\t// chunk by chunk as they arrive:\n\tgo ss.doStage(base, repoPath)\n\treturn ss\n}\n\nfunc (ss *streamServer) hasFinished() (bool, error) {\n\tss.errCond.L.Lock()\n\tdefer ss.errCond.L.Unlock()\n\tif ss.err != nil {\n\t\treturn true, *ss.err\n\t}\n\n\treturn false, nil\n}\n\n// SendChunk is called when the client sends one block of data.\nfunc (ss *streamServer) SendChunk(call capnp.FS_StageStream_sendChunk) error {\n\tif finished, err := ss.hasFinished(); finished {\n\t\t// return the last error if already done, err might be nil here.\n\t\t// This is here to protect against more SendChunk() calls after Done()\n\t\treturn err\n\t}\n\n\tdata, err := call.Params.Chunk()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Send the data over the pipe to the stage reader:\n\t// No actual copying done, here. This waits until the data was read.\n\t_, err = ss.pw.Write(data)\n\treturn err\n}\n\nfunc (ss *streamServer) Done(call capnp.FS_StageStream_done) error {\n\t// Closing the pipe writer will trigger a io.EOF in the reader part.\n\t// This will make Stage() return after some post processing.\n\tif err := ss.pw.Close(); err != nil {\n\t\treturn err\n\t}\n\n\tss.errCond.L.Lock()\n\tdefer ss.errCond.L.Unlock()\n\n\t// Wait until Stage() actually returned:\n\tfor ss.err == nil {\n\t\tss.errCond.Wait()\n\t}\n\n\tss.buf.Reset()\n\tsendBufferPool.Put(ss.buf)\n\treturn *ss.err\n}\n"
  },
  {
    "path": "server/transfer.go",
    "content": "package server\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\n\t\"github.com/sahib/brig/catfs\"\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nfunc getNextFreePort() (int, error) {\n\taddr, err := net.ResolveTCPAddr(\"tcp\", \"localhost:0\")\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tl, err := net.ListenTCP(\"tcp\", addr)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tdefer l.Close()\n\treturn l.Addr().(*net.TCPAddr).Port, nil\n}\n\nfunc bootTransferServer(fs *catfs.FS, bindHost string, copyFn func(conn net.Conn)) (int, error) {\n\tport, err := getNextFreePort()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tlst, err := net.Listen(\"tcp\", fmt.Sprintf(\"%s:%d\", bindHost, port))\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tgo func() {\n\t\tdefer lst.Close()\n\n\t\tconn, err := lst.Accept()\n\t\tif err != nil {\n\t\t\tlog.Warningf(\"Failed to accept connection on %d: %v\", port, err)\n\t\t\treturn\n\t\t}\n\n\t\tdefer conn.Close()\n\t\tcopyFn(conn)\n\t}()\n\n\treturn port, nil\n}\n"
  },
  {
    "path": "server/vcs_handler.go",
    "content": "package server\n\nimport (\n\t\"fmt\"\n\n\te \"github.com/pkg/errors\"\n\t\"github.com/sahib/brig/catfs\"\n\t\"github.com/sahib/brig/server/capnp\"\n\tcplib \"zombiezen.com/go/capnproto2\"\n\t\"zombiezen.com/go/capnproto2/server\"\n)\n\ntype vcsHandler struct {\n\tbase *base\n}\n\nfunc commitToCap(entry *catfs.Commit, seg *cplib.Segment) (*capnp.Commit, error) {\n\tcapEntry, err := capnp.NewCommit(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capEntry.SetHash(entry.Hash); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodTime, err := entry.Date.MarshalText()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capEntry.SetDate(string(modTime)); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttagList, err := cplib.NewTextList(seg, int32(len(entry.Tags)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, tag := range entry.Tags {\n\t\tif err := tagList.Set(idx, tag); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif err := capEntry.SetTags(tagList); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capEntry.SetMsg(entry.Msg); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capEntry, nil\n}\n\nfunc (vcs *vcsHandler) Log(call capnp.VCS_log) error {\n\tserver.Ack(call.Options)\n\tseg := call.Results.Segment()\n\n\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\t// TODO: Support partial logs at some point.\n\t\t// (like in gateway. currently everything is dumped.)\n\t\tentries := []*catfs.Commit{}\n\t\terr := fs.Log(\"\", func(cmt *catfs.Commit) error {\n\t\t\tentries = append(entries, cmt)\n\t\t\treturn nil\n\t\t})\n\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlst, err := capnp.NewCommit_List(seg, int32(len(entries)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx, entry := range entries {\n\t\t\tcapEntry, err := commitToCap(entry, seg)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tlst.Set(idx, *capEntry)\n\t\t}\n\n\t\treturn call.Results.SetEntries(lst)\n\t})\n}\n\nfunc (vcs *vcsHandler) Commit(call capnp.VCS_commit) error {\n\tserver.Ack(call.Options)\n\n\tmsg, err := call.Params.Msg()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\tmsg = \"user: \" + msg\n\t\treturn fs.MakeCommit(msg)\n\t})\n}\n\nfunc (vcs *vcsHandler) Tag(call capnp.VCS_tag) error {\n\tserver.Ack(call.Options)\n\n\trev, err := call.Params.Rev()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttagName, err := call.Params.TagName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\treturn fs.Tag(rev, tagName)\n\t})\n}\n\nfunc (vcs *vcsHandler) Untag(call capnp.VCS_untag) error {\n\tserver.Ack(call.Options)\n\n\ttagName, err := call.Params.TagName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\treturn fs.RemoveTag(tagName)\n\t})\n}\n\nfunc (vcs *vcsHandler) Reset(call capnp.VCS_reset) error {\n\tserver.Ack(call.Options)\n\n\trev, err := call.Params.Rev()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// If there was no path, it means we should checkout\n\t// the whole commit.\n\tif path == \"\" {\n\t\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\t\treturn fs.Checkout(rev, call.Params.Force())\n\t\t})\n\t}\n\n\t// Reset a specific file or directory otherwise:\n\treturn vcs.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\tif err := fs.Reset(url.Path, rev); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tvcs.base.notifyFsChangeEvent()\n\t\treturn nil\n\t})\n}\n\nfunc (vcs *vcsHandler) History(call capnp.VCS_history) error {\n\tserver.Ack(call.Options)\n\n\tpath, err := call.Params.Path()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tseg := call.Results.Segment()\n\n\treturn vcs.base.withFsFromPath(path, func(url *URL, fs *catfs.FS) error {\n\t\thistory, err := fs.History(url.Path)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tlst, err := capnp.NewChange_List(seg, int32(len(history)))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor idx := 0; idx < len(history); idx++ {\n\t\t\tentry, err := capnp.NewChange(seg)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tchange := history[idx]\n\t\t\tif err := entry.SetPath(change.Path); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tentry.SetIsPinned(change.IsPinned)\n\t\t\tentry.SetIsExplicit(change.IsExplicit)\n\n\t\t\tif err := entry.SetChange(change.Change); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcapHead, err := commitToCap(change.Head, seg)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := entry.SetHead(*capHead); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif change.Next != nil {\n\t\t\t\tcapNext, err := commitToCap(change.Next, seg)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif err := entry.SetNext(*capNext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err := entry.SetMovedTo(change.MovedTo); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := entry.SetWasPreviouslyAt(change.WasPreviouslyAt); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := lst.Set(idx, entry); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn call.Results.SetHistory(lst)\n\t})\n}\n\nfunc fillInfoLst(fs *catfs.FS, seg *cplib.Segment, infos []catfs.StatInfo) (*capnp.StatInfo_List, error) {\n\tlst, err := capnp.NewStatInfo_List(seg, int32(len(infos)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, info := range infos {\n\t\tcapInfo, err := statToCapnp(fs, &info, seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := lst.Set(idx, *capInfo); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &lst, nil\n}\n\nfunc fillDiffPairLst(fs *catfs.FS, seg *cplib.Segment, pairs []catfs.DiffPair) (*capnp.DiffPair_List, error) {\n\tcapLst, err := capnp.NewDiffPair_List(seg, int32(len(pairs)))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor idx, pair := range pairs {\n\t\tcapSrcInfo, err := statToCapnp(fs, &pair.Src, seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapDstInfo, err := statToCapnp(fs, &pair.Dst, seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tcapPair, err := capnp.NewDiffPair(seg)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capPair.SetSrc(*capSrcInfo); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capPair.SetDst(*capDstInfo); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := capLst.Set(idx, capPair); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn &capLst, nil\n}\n\nfunc diffToCapnpDiff(fs *catfs.FS, seg *cplib.Segment, diff *catfs.Diff) (*capnp.Diff, error) {\n\tcapDiff, err := capnp.NewDiff(seg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\taddedLst, err := fillInfoLst(fs, seg, diff.Added)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetAdded(*addedLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tremovedLst, err := fillInfoLst(fs, seg, diff.Removed)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetRemoved(*removedLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmissingLst, err := fillInfoLst(fs, seg, diff.Missing)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetMissing(*missingLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tignoredLst, err := fillInfoLst(fs, seg, diff.Ignored)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetIgnored(*ignoredLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmergedLst, err := fillDiffPairLst(fs, seg, diff.Merged)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetMerged(*mergedLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tmovedLst, err := fillDiffPairLst(fs, seg, diff.Moved)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetMoved(*movedLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\tconflictLst, err := fillDiffPairLst(fs, seg, diff.Conflict)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := capDiff.SetConflict(*conflictLst); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &capDiff, nil\n}\n\nfunc (vcs *vcsHandler) MakeDiff(call capnp.VCS_makeDiff) error {\n\tserver.Ack(call.Options)\n\n\tlocalOwner, err := call.Params.LocalOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tremoteOwner, err := call.Params.RemoteOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\trp := vcs.base.repo\n\tif call.Params.NeedFetch() {\n\t\tif err := vcs.base.doFetch(remoteOwner); err != nil {\n\t\t\treturn e.Wrapf(err, \"fetch-remote\")\n\t\t}\n\n\t\tif err := vcs.base.doFetch(localOwner); err != nil {\n\t\t\treturn e.Wrapf(err, \"fetch-local\")\n\t\t}\n\t}\n\n\t// Check if the stores are valid:\n\tfor _, owner := range []string{localOwner, remoteOwner} {\n\t\tif !rp.HaveFS(owner) {\n\t\t\treturn fmt.Errorf(\"We do not have data for `%s`\", owner)\n\t\t}\n\t}\n\n\tlocalRev, err := call.Params.LocalRev()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tremoteRev, err := call.Params.RemoteRev()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withRemoteFs(localOwner, func(localFs *catfs.FS) error {\n\t\treturn vcs.base.withRemoteFs(remoteOwner, func(remoteFs *catfs.FS) error {\n\t\t\tdiff, err := localFs.MakeDiff(remoteFs, localRev, remoteRev)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tcapDiff, err := diffToCapnpDiff(localFs, call.Results.Segment(), diff)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\treturn call.Results.SetDiff(*capDiff)\n\t\t})\n\t})\n}\n\nfunc (vcs *vcsHandler) Fetch(call capnp.VCS_fetch) error {\n\tserver.Ack(call.Options)\n\n\twho, err := call.Params.Who()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.doFetch(who)\n}\n\nfunc (vcs *vcsHandler) Sync(call capnp.VCS_sync) error {\n\tserver.Ack(call.Options)\n\n\twithWhom, err := call.Params.WithWhom()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdiff, err := vcs.base.doSync(withWhom, call.Params.NeedFetch(), \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withCurrFs(func(localFs *catfs.FS) error {\n\t\tcapDiff, err := diffToCapnpDiff(localFs, call.Results.Segment(), diff)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\treturn call.Results.SetDiff(*capDiff)\n\t})\n}\n\nfunc (vcs *vcsHandler) CommitInfo(call capnp.VCS_commitInfo) error {\n\tserver.Ack(call.Options)\n\n\trev, err := call.Params.Rev()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn vcs.base.withCurrFs(func(fs *catfs.FS) error {\n\t\tcmt, err := fs.CommitInfo(rev)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcall.Results.SetIsValidRef(cmt != nil)\n\t\tif cmt != nil {\n\t\t\tcapCmt, err := commitToCap(cmt, call.Results.Segment())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif err := call.Results.SetCommit(*capCmt); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n}\n"
  },
  {
    "path": "tests/test-init-no-pass.sh",
    "content": "#!/bin/bash\n\nmkdir -p $BRIG_PATH\ncd $BRIG_PATH\n\nFILE_COUNT=$(ls $BRIG_PATH | wc -l)\nif [[ $FILE_COUNT -ne 0 ]]; then\n    echo \"!! /tmp/repo is not empty\"\n    exit 1\nfi\n\n# Use no password\nbrig --verbose init -x alice\n\nFILE_COUNT=$(ls $BRIG_PATH | wc -l)\nif [[ $FILE_COUNT -eq 0 ]]; then\n    echo \"!! /tmp/repo empty after init\"\n    exit 1\nfi\n\nbrig ls\nbrig daemon quit\nsleep 4\nbrig ls\n"
  },
  {
    "path": "tests/test-init-pass-helper.sh",
    "content": "#!/bin/bash\n\nmkdir -p $BRIG_PATH\ncd $BRIG_PATH\n\nFILE_COUNT=$(ls $BRIG_PATH | wc -l)\nif [[ $FILE_COUNT -ne 0 ]]; then\n    echo \"!! $BRIG_PATH is not empty\"\n    exit 1\nfi\n\n# Use a password helper:\nbrig --verbose init alice -w \"echo mypass\"\n\nFILE_COUNT=$(ls $BRIG_PATH | wc -l)\nif [[ $FILE_COUNT -eq 0 ]]; then\n    echo \"!! $BRIG_PATH empty after init\"\n    exit 2\nfi\n\n# Check if we can really access stuff:\nbrig cat README.md | grep $BRIG_PATH\nif [[ $? -ne 0 ]]; then\n    echo \"!! No readme.md was created\"\n    exit 3\nfi\n\n# Check that we can also restart with a problem:\nbrig daemon quit\nsleep 2\nbrig ls\n"
  },
  {
    "path": "tests/test-init-several.sh",
    "content": "#!/bin/bash\n\n# unset BRIG_PATH, since it's confusing for several.\nexport BRIG_PATH=\n\nbrig --repo \"/tmp/ali\" --verbose init ali -w \"echo ali\"\nbrig --repo \"/tmp/bob\" --verbose init bob -w \"echo bob\"\nbrig --repo \"/tmp/cem\" --verbose init cem -w \"echo cem\"\n\nFILE_COUNT=$(ls /tmp/ali | wc -l)\nif [[ $FILE_COUNT -eq 0 ]]; then\n    echo \"!! /tmp/ali empty after init\"\n    exit 1\nfi\n\nFILE_COUNT=$(ls /tmp/bob | wc -l)\nif [[ $FILE_COUNT -eq 0 ]]; then\n    echo \"!! /tmp/bob empty after init\"\n    exit 2\nfi\n\nFILE_COUNT=$(ls /tmp/cem | wc -l)\nif [[ $FILE_COUNT -eq 0 ]]; then\n    echo \"!! /tmp/cem empty after init\"\n    exit 3\nfi\n"
  },
  {
    "path": "util/conductor/conductor.go",
    "content": "// Package conductor is a small helper to execute work heavy operations\n// in the backgrounds that deliver partial results (\"result streaming\").\npackage conductor\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n)\n\n// ErrNoSuchTicket will be returned by Push() or Pop() if there is no such ticket\n// with this id. This will be also returned when accessing a previously expired ticket.\ntype ErrNoSuchTicket struct {\n\tticket uint64\n}\n\nfunc (ens ErrNoSuchTicket) Error() string {\n\treturn fmt.Sprintf(\"no data associated with `%d` (or it timed out)\", ens.ticket)\n}\n\n// IsNoSuchTicket returns true if `err` is a ErrNoSuchTicket error.\nfunc IsNoSuchTicket(err error) bool {\n\t_, ok := err.(ErrNoSuchTicket)\n\treturn ok\n}\n\n// ErrNoDataLeft is returned by Pop() if there is no data left to be returned.\n// This will only happen if the exec func returned and there are no cached results.\ntype ErrNoDataLeft struct {\n\tticket uint64\n}\n\nfunc (end ErrNoDataLeft) Error() string {\n\treturn fmt.Sprintf(\"No data left for ticket `%d`\", end.ticket)\n}\n\n// IsNoDataLeft returns true if `err` is a ErrNoDataLeft error.\nfunc IsNoDataLeft(err error) bool {\n\t_, ok := err.(ErrNoDataLeft)\n\treturn ok\n}\n\n// Conductor (as in train conductor) yields tickets for jobs.\n// There are three operations:\n// - Exec: Execute heavy work in the background, caller get's a ticket.\n// - Push: Report partial results of the heavy work.\n// - Pull: Fetch a partial result from the caller side via the ticket.\n//\n// Tickets are only job ids, i.e. plain integers.\n// The concept is similar to futures, but the result will clean up\n// themselves after a certain timeout.\ntype Conductor struct {\n\tmu          sync.Mutex\n\ttimeout     time.Duration\n\tmaxData     int\n\tticketCount uint64\n\ttickets     map[uint64]chan interface{}\n\terrors      map[uint64]error\n}\n\n// New creates a new conductor that will expire unfetched results\n// after `timeout` and will hold at max `maxData` partial results in memory.\nfunc New(timeout time.Duration, maxData int) *Conductor {\n\treturn &Conductor{\n\t\ttimeout: timeout,\n\t\tmaxData: maxData,\n\t\ttickets: make(map[uint64]chan interface{}),\n\t\terrors:  make(map[uint64]error),\n\t}\n}\n\n// Exec executes `fn` in the background. `fn` gets the current ticket and can\n// use it to push partial results using Push(). Exec will return a ticket number\n// that can be used by the caller to Pull() partial results until ErrNoDataLeft\n// is returned.\nfunc (cd *Conductor) Exec(fn func(ticket uint64) error) uint64 {\n\tcd.mu.Lock()\n\tdefer cd.mu.Unlock()\n\n\tcd.ticketCount++\n\tticket := cd.ticketCount\n\tcd.tickets[ticket] = make(chan interface{}, cd.maxData)\n\n\tgo func() {\n\t\tif err := fn(ticket); err != nil {\n\t\t\tcd.mu.Lock()\n\t\t\tcd.errors[ticket] = err\n\t\t\tcd.mu.Unlock()\n\t\t}\n\n\t\tcd.mu.Lock()\n\t\tif ticketCh, ok := cd.tickets[ticket]; ok {\n\t\t\tclose(ticketCh)\n\t\t}\n\t\tcd.mu.Unlock()\n\n\t\ttime.Sleep(cd.timeout)\n\n\t\tcd.mu.Lock()\n\t\tdelete(cd.tickets, ticket)\n\t\tdelete(cd.errors, ticket)\n\t\tcd.mu.Unlock()\n\t}()\n\n\treturn ticket\n}\n\n// Push records a new partial result under a specific `ticket`.\n// Push will block after pushing more than `maxData` items.\nfunc (cd *Conductor) Push(ticket uint64, data interface{}) error {\n\tcd.mu.Lock()\n\n\tif err, ok := cd.errors[ticket]; ok && err != nil {\n\t\tcd.mu.Unlock()\n\t\treturn err\n\t}\n\n\tif _, ok := cd.tickets[ticket]; !ok {\n\t\tcd.mu.Unlock()\n\t\treturn fmt.Errorf(\"push outside exec fn is forbidden\")\n\t}\n\tcd.mu.Unlock()\n\n\tcd.tickets[ticket] <- data\n\treturn nil\n}\n\n// This is it's own function to make use of defer possible.\nfunc (cd *Conductor) fetchTicketCh(ticket uint64) (chan interface{}, error) {\n\tcd.mu.Lock()\n\tdefer cd.mu.Unlock()\n\n\tif err, ok := cd.errors[ticket]; ok && err != nil {\n\t\treturn nil, err\n\t}\n\n\tticketCh, ok := cd.tickets[ticket]\n\tif !ok {\n\t\treturn nil, ErrNoSuchTicket{ticket}\n\t}\n\n\treturn ticketCh, nil\n}\n\n// Pop gets the first (FIFO) partial result associated with `ticket`.\n// It will return ErrNoDataLeft if there won't be any more values.\n// It will return ErrNoSuchTicket if you passed an invalid ticket.\nfunc (cd *Conductor) Pop(ticket uint64) (interface{}, error) {\n\tticketCh, err := cd.fetchTicketCh(ticket)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Wait until we get results:\n\ttimer := time.NewTimer(cd.timeout)\n\tselect {\n\tcase data, ok := <-ticketCh:\n\t\tif !ok {\n\t\t\treturn nil, ErrNoDataLeft{ticket}\n\t\t}\n\n\t\treturn data, nil\n\tcase <-timer.C:\n\t\treturn nil, fmt.Errorf(\"pop took too long (%v)\", cd.timeout)\n\t}\n}\n"
  },
  {
    "path": "util/conductor/conductor_test.go",
    "content": "package conductor\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestConductorEmpty(t *testing.T) {\n\tcnd := New(5*time.Second, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\treturn nil\n\t})\n\n\t_, err := cnd.Pop(ticket)\n\trequire.True(t, IsNoDataLeft(err))\n}\n\nfunc TestConductorSingle(t *testing.T) {\n\tcnd := New(5*time.Second, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\treturn cnd.Push(ticket, 123)\n\t})\n\n\tdata, err := cnd.Pop(ticket)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, 123)\n\n\t_, err = cnd.Pop(ticket)\n\trequire.True(t, IsNoDataLeft(err))\n}\n\nfunc TestConductorMultiple(t *testing.T) {\n\tcnd := New(5*time.Second, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\tfor i := 0; i < 20; i++ {\n\t\t\trequire.Nil(t, cnd.Push(ticket, i))\n\t\t}\n\t\treturn nil\n\t})\n\n\tfor i := 0; i < 20; i++ {\n\t\tdata, err := cnd.Pop(ticket)\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, data, i)\n\t}\n\n\t_, err := cnd.Pop(ticket)\n\trequire.True(t, IsNoDataLeft(err))\n}\n\nfunc TestConductorError(t *testing.T) {\n\tcnd := New(5*time.Second, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\treturn errors.New(\"artificial error\")\n\t})\n\n\ttime.Sleep(10 * time.Millisecond)\n\n\t_, err := cnd.Pop(ticket)\n\trequire.Equal(t, err.Error(), \"artificial error\")\n}\n\nfunc TestConductorTimeout(t *testing.T) {\n\tcnd := New(100*time.Millisecond, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\treturn cnd.Push(ticket, 123)\n\t})\n\n\ttime.Sleep(10 * time.Millisecond)\n\n\tdata, err := cnd.Pop(ticket)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, 123)\n\n\t// Check if the value is still there after a certain amount of time:\n\ttime.Sleep(200 * time.Millisecond)\n\t_, err = cnd.Pop(ticket)\n\trequire.True(t, IsNoSuchTicket(err))\n}\n\nfunc TestConductorTimeoutError(t *testing.T) {\n\tcnd := New(100*time.Millisecond, 10)\n\tticket := cnd.Exec(func(ticket uint64) error {\n\t\treturn errors.New(\"artificial error\")\n\t})\n\n\ttime.Sleep(10 * time.Millisecond)\n\n\t_, err := cnd.Pop(ticket)\n\trequire.Equal(t, err.Error(), \"artificial error\")\n\n\t// Check if the value is still there after a certain amount of time:\n\ttime.Sleep(200 * time.Millisecond)\n\t_, err = cnd.Pop(ticket)\n\trequire.True(t, IsNoSuchTicket(err))\n}\n"
  },
  {
    "path": "util/hashlib/hash.go",
    "content": "package hashlib\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"hash\"\n\t\"strconv\"\n\t\"testing\"\n\n\tgoipfsutil \"github.com/ipfs/go-ipfs-util\"\n\t\"github.com/multiformats/go-multihash\"\n\t\"golang.org/x/crypto/blake2s\"\n)\n\nconst (\n\t// The + 4 is for making sure 32 byte length is encoded (4 * 8 = 32).\n\t// This is a weird convention by multihash apparently.\n\tinternalHashAlgo   = multihash.BLAKE2S_MIN + 4\n\tinternalHashLength = 32\n)\n\nvar (\n\t// EmptyBackendHash is a hash containing only zeros, using IPFS's default hash.\n\tEmptyBackendHash Hash\n\n\t// EmptyInternalHash is a hash containing only zeros, using brig's default hash.\n\tEmptyInternalHash Hash\n)\n\nfunc init() {\n\tdata := make([]byte, multihash.DefaultLengths[goipfsutil.DefaultIpfsHash])\n\thash, err := multihash.Encode(data, goipfsutil.DefaultIpfsHash)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"Unable to create empty hash: %v\", err))\n\t}\n\n\tEmptyBackendHash = Hash(hash)\n\n\tdata = make([]byte, internalHashLength)\n\thash, err = multihash.Encode(data, internalHashAlgo)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"Unable to create empty content hash: %v\", err))\n\t}\n\n\tEmptyInternalHash = Hash(hash)\n}\n\n// Hash is like multihash.Multihash but also supports serializing to json.\n// It's methods are nil-value safe.\ntype Hash []byte\n\nfunc (h Hash) String() string {\n\treturn h.B58String()\n}\n\n// B58String formats the hash as base58 string.\nfunc (h Hash) B58String() string {\n\tif h == nil {\n\t\treturn \"<empty hash>\"\n\t}\n\n\treturn multihash.Multihash(h).B58String()\n}\n\n// ShortB58 produces a shorter version (12 bytes long) of B58String()\nfunc (h Hash) ShortB58() string {\n\tfull := h.B58String()\n\tif len(full) > 12 {\n\t\treturn full[:12]\n\t}\n\n\treturn full\n}\n\n// FromB58String creates a new Hash from a base58 string.\n// (This is shorthand for importing/using &Hash{multihash.FromB58String(\"xxx\")}\nfunc FromB58String(b58 string) (Hash, error) {\n\tmh, err := multihash.FromB58String(b58)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn Hash(mh), nil\n}\n\n// UnmarshalJSON loads a base58 string representation of a hash\n// and converts it to raw bytes.\nfunc (h Hash) UnmarshalJSON(data []byte) error {\n\tif h == nil {\n\t\th = EmptyBackendHash\n\t}\n\n\tunquoted, err := strconv.Unquote(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmh, err := multihash.FromB58String(unquoted)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcopy(h, mh)\n\treturn nil\n}\n\n// Valid returns true if the hash contains a defined value.\nfunc (h Hash) Valid() bool {\n\treturn h != nil && !bytes.Equal(h, EmptyBackendHash)\n}\n\n// Bytes returns the underlying bytes in the hash.\nfunc (h Hash) Bytes() []byte {\n\tif h == nil {\n\t\treturn EmptyBackendHash\n\t}\n\n\treturn []byte(h)\n}\n\n// Clone returns the same hash as `h`,\n// but with a different underlying array.\nfunc (h Hash) Clone() Hash {\n\tif h == nil {\n\t\treturn nil\n\t}\n\n\tcpy := make(Hash, len([]byte(h)))\n\tcopy(cpy, h)\n\treturn Hash(cpy)\n}\n\n// Equal returns true if both hashes are equal.\n// Nil hashes are considered equal.\nfunc (h Hash) Equal(other Hash) bool {\n\tif h == nil || other == nil {\n\t\treturn h == nil && other == nil\n\t}\n\n\treturn bytes.Equal(h, other)\n}\n\n// Mix produces a hash of both passed hashes.\nfunc (h Hash) Mix(o Hash) Hash {\n\tbuf := make([]byte, len(h)+len(o))\n\tcopy(buf, h)\n\tcopy(buf[len(h):], o)\n\treturn Sum(buf)\n}\n\n// Sum hashes `data` with the internal hashing algorithm.\nfunc Sum(data []byte) Hash {\n\td := blake2s.Sum256(data)\n\tmh, err := multihash.Encode(d[:], internalHashAlgo)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn Hash(mh)\n}\n\n// SumWithBackendHash creates a hash with the same algorithm the backend uses.\nfunc SumWithBackendHash(data []byte) Hash {\n\treturn sum(\n\t\tdata,\n\t\tgoipfsutil.DefaultIpfsHash,\n\t\tmultihash.DefaultLengths[goipfsutil.DefaultIpfsHash],\n\t)\n}\n\nfunc sum(data []byte, code uint64, length int) Hash {\n\tmh, err := multihash.Sum(data, code, length)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to calculate basic hash value; something is wrong: %s\", err))\n\t}\n\n\treturn Hash(mh)\n}\n\n// Cast checks if `data` is a suitable hash and converts it.\nfunc Cast(data []byte) (Hash, error) {\n\tmh, err := multihash.Cast(data)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn Hash(mh), nil\n}\n\n// TestDummy returns a blake2b hash based on `seed`.\n// The same `seed` will always generate the same hash.\nfunc TestDummy(t *testing.T, seed byte) Hash {\n\tdata := make([]byte, internalHashLength)\n\tfor idx := range data {\n\t\tdata[idx] = seed\n\t}\n\n\thash, err := multihash.Encode(data, internalHashAlgo)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to create dummy hash: %v\", err)\n\t\treturn nil\n\t}\n\n\treturn Hash(hash)\n}\n\n// HashWriter is a io.Writer that supports being written to.\ntype HashWriter struct {\n\thash hash.Hash\n}\n\n// NewHashWriter returns a new HashWriter.\n// Currently it is always sha3-256.\nfunc NewHashWriter() *HashWriter {\n\tb, _ := blake2s.New256(nil)\n\treturn &HashWriter{hash: b}\n}\n\n// Finalize returns the final hash of the written data.\nfunc (hw *HashWriter) Finalize() Hash {\n\tsum := hw.hash.Sum(nil)\n\thash, err := multihash.Encode(sum, internalHashAlgo)\n\tif err != nil {\n\t\t// If this does not work, there's something serious wrong.\n\t\tpanic(fmt.Sprintf(\"failed to encode final hash: %v\", err))\n\t}\n\n\treturn hash\n}\n\nfunc (hw *HashWriter) Write(buf []byte) (int, error) {\n\treturn hw.hash.Write(buf)\n}\n"
  },
  {
    "path": "util/hashlib/hash_test.go",
    "content": "package hashlib\n\nimport (\n\t\"testing\"\n)\n\nfunc TestHashWriter(t *testing.T) {\n\tdata := []byte{1, 2, 3, 4}\n\n\thw1 := NewHashWriter()\n\thw1.Write(data[0:2])\n\thw1.Write(data[2:4])\n\n\thw2 := NewHashWriter()\n\thw2.Write(data[0:3])\n\thw2.Write(data[3:4])\n\n\t// The hashes should be the same, even though the order in which\n\t// we feed the data is different. This forbids using things like XOR\n\t// for combining hashes of blocks.\n\tif !hw1.Finalize().Equal(hw2.Finalize()) {\n\t\tt.Fatalf(\"hashes differ due to different feed order\")\n\t}\n}\n"
  },
  {
    "path": "util/key.go",
    "content": "package util\n\nimport (\n\t\"golang.org/x/crypto/argon2\"\n)\n\n// DeriveKey derives a key from password and salt being keyLen bytes long.\n// It uses an established password derivation function.\nfunc DeriveKey(pwd, salt []byte, keyLen int) []byte {\n\t// NOTE: These settings are below the recommendation of 64MB.\n\t//       This made adding files extremely slow since 90% of the time\n\t//       was spent hashing the content hash with argon2.\n\n\t// TODO: Do some in-depth research about argon2 and how we use it.\n\t//       Since we use it more for key stretching than actual salt based hashing\n\t//       I don't think this step is as critical as with normal passwords.\n\t//       Please tell me if I'm wrong though.\n\treturn argon2.IDKey(pwd, salt, 1, 8*1024, 8, uint32(keyLen))\n}\n"
  },
  {
    "path": "util/log/logger.go",
    "content": "// Package log implements utility methods for logging in a colorful manner.\npackage log\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log/syslog\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\townStrings \"github.com/sahib/brig/util/strings\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nvar showPid = false\n\nfunc init() {\n\tif os.Getenv(\"BRIG_LOG_SHOW_PID\") != \"\" {\n\t\tshowPid = true\n\t}\n\n\tcolor.NoColor = false\n}\n\n// FancyLogFormatter is the default logger for brig.\ntype FancyLogFormatter struct {\n\tUseColors bool\n}\n\nvar symbolTable = map[logrus.Level]string{\n\tlogrus.DebugLevel: \"⚙\",\n\tlogrus.InfoLevel:  \"⚐\",\n\tlogrus.WarnLevel:  \"⚠\",\n\tlogrus.ErrorLevel: \"⚡\",\n\tlogrus.FatalLevel: \"☣\",\n\tlogrus.PanicLevel: \"☠\",\n}\n\nvar colorTable = map[logrus.Level]func(string, ...interface{}) string{\n\tlogrus.DebugLevel: color.CyanString,\n\tlogrus.InfoLevel:  color.GreenString,\n\tlogrus.WarnLevel:  color.YellowString,\n\tlogrus.ErrorLevel: color.RedString,\n\tlogrus.FatalLevel: color.MagentaString,\n\tlogrus.PanicLevel: color.MagentaString,\n}\n\nfunc colorByLevel(level logrus.Level, msg string) string {\n\tfn, ok := colorTable[level]\n\tif !ok {\n\t\treturn msg\n\t}\n\n\treturn fn(msg)\n}\n\nfunc formatColored(useColors bool, buffer *bytes.Buffer, msg string, level logrus.Level) {\n\tif useColors {\n\t\tbuffer.WriteString(colorByLevel(level, msg))\n\t} else {\n\t\tbuffer.WriteString(msg)\n\t}\n}\n\nfunc formatTimestamp(builder *ownStrings.Builder, t time.Time) {\n\tfmt.Fprintf(builder, \"%02d.%02d.%04d\", t.Day(), t.Month(), t.Year())\n\tbuilder.WriteByte('/')\n\tfmt.Fprintf(builder, \"%02d:%02d:%02d\", t.Hour(), t.Minute(), t.Second())\n}\n\nfunc formatFields(useColors bool, buffer *bytes.Buffer, entry *logrus.Entry) {\n\tidx := 0\n\tbuffer.WriteString(\" [\")\n\n\tfor key, value := range entry.Data {\n\t\t// Make the key colored:\n\t\tformatColored(useColors, buffer, key, entry.Level)\n\t\tbuffer.WriteByte('=')\n\n\t\t// A few special cases depending on the type:\n\t\tswitch v := value.(type) {\n\t\tcase *logrus.Entry:\n\t\t\tformatColored(useColors, buffer, v.Message, logrus.ErrorLevel)\n\t\tdefault:\n\t\t\tbuffer.WriteString(fmt.Sprintf(\"%v\", v))\n\t\t}\n\n\t\t// Print no space after the last element:\n\t\tif idx != len(entry.Data)-1 {\n\t\t\tbuffer.WriteByte(' ')\n\t\t}\n\n\t\tidx++\n\t}\n\n\tbuffer.WriteByte(']')\n}\n\ntype empty struct{}\n\nvar logSymbols = map[string]empty{\n\t\"logrus.Debugf\":   {},\n\t\"logrus.Debug\":    {},\n\t\"logrus.Infof\":    {},\n\t\"logrus.Info\":     {},\n\t\"logrus.Warnf\":    {},\n\t\"logrus.Warn\":     {},\n\t\"logrus.Warningf\": {},\n\t\"logrus.Warning\":  {},\n\t\"logrus.Errorf\":   {},\n\t\"logrus.Error\":    {},\n\t\"logrus.Panic\":    {},\n\t\"logrus.Panicf\":   {},\n}\n\nfunc findCallers() (string, int, bool) {\n\t// Skipping 7 callers is probably fine.\n\t// logrus adds some stuff to the stack trace.\n\tpcs := make([]uintptr, 15)\n\tnCallers := runtime.Callers(7, pcs)\n\tframes := runtime.CallersFrames(pcs[:nCallers])\n\n\tnextLineIsCallee := false\n\tfor {\n\t\tframe, ok := frames.Next()\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\n\t\tif nextLineIsCallee {\n\t\t\t// Try to pretty print the file. If it's inside of brig,\n\t\t\t// the relative path from the root is enough to print.\n\t\t\tbrigTag := \"brig/\"\n\t\t\tbrigModIdx := strings.LastIndex(frame.File, brigTag)\n\t\t\tif brigModIdx == -1 {\n\t\t\t\treturn filepath.Base(frame.File), frame.Line, true\n\t\t\t}\n\n\t\t\treturn frame.File[brigModIdx+len(brigTag):], frame.Line, true\n\t\t}\n\n\t\t// Try to get the pure function name (without the module prefix)\n\t\tlastIdx := strings.LastIndex(frame.Function, \"/\")\n\t\tif lastIdx == -1 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if this line is a call to the official logrus API.\n\t\t// Then, the next line must be the actual line where the log was done.\n\t\t_, nextLineIsCallee = logSymbols[frame.Function[lastIdx+1:]]\n\t}\n\n\treturn \"\", 0, false\n}\n\n// Format logs a single entry according to our formatting ideas.\nfunc (flf *FancyLogFormatter) Format(entry *logrus.Entry) ([]byte, error) {\n\tprefixBuilder := ownStrings.Builder{}\n\tformatTimestamp(&prefixBuilder, entry.Time)\n\tprefixBuilder.WriteByte(' ')\n\n\t// Add the symbol:\n\tprefixBuilder.WriteString(symbolTable[entry.Level])\n\n\t// Add the actual message:\n\tbuffer := &bytes.Buffer{}\n\tif flf.UseColors {\n\t\tbuffer.WriteString(colorByLevel(entry.Level, prefixBuilder.String()))\n\t} else {\n\t\tbuffer.WriteString(prefixBuilder.String())\n\t}\n\n\tif showPid {\n\t\t// This is useful for debugging unittests where several processes\n\t\t// all log to stdout. This helps differentiating the logs.\n\t\tbuffer.WriteString(fmt.Sprintf(\" [%d]\", os.Getpid()))\n\t}\n\n\tfile, line, ok := findCallers()\n\tif ok {\n\t\tbuffer.WriteString(fmt.Sprintf(\" %s:%d:\", file, line))\n\t}\n\n\tbuffer.WriteByte(' ')\n\tbuffer.WriteString(entry.Message)\n\n\t// Add the fields, if any:\n\tif len(entry.Data) > 0 {\n\t\tformatFields(flf.UseColors, buffer, entry)\n\t}\n\n\tbuffer.WriteByte('\\n')\n\treturn buffer.Bytes(), nil\n}\n\nvar logLevelToFunc = map[logrus.Level]func(args ...interface{}){\n\tlogrus.DebugLevel: logrus.Debug,\n\tlogrus.InfoLevel:  logrus.Info,\n\tlogrus.WarnLevel:  logrus.Warn,\n\tlogrus.ErrorLevel: logrus.Error,\n\tlogrus.FatalLevel: logrus.Fatal,\n}\n\n// Writer is an io.Writer that writes everything to logrus.\ntype Writer struct {\n\t// Level determines the severity for all messages.\n\tLevel logrus.Level\n}\n\nfunc (l *Writer) Write(buf []byte) (int, error) {\n\tfn, ok := logLevelToFunc[l.Level]\n\tif !ok {\n\t\tlogrus.Fatal(\"LogWriter: Bad loglevel passed.\")\n\t} else {\n\t\tmsg := string(buf)\n\t\tfn(strings.Trim(msg, \"\\n\\r \"))\n\t}\n\n\treturn len(buf), nil\n}\n\n// SyslogWrapper is a hacky way to make the syslog more readable.\n// This only works with FancyLogFormatter from above.\n// It takes it's output, checks what log level was used and\n// puts it into syslog with the right notice level.\ntype SyslogWrapper struct {\n\tw *syslog.Writer\n}\n\n// NewSyslogWrapper creates a SyslogWrapper and calls\n// the right log level for each line.\nfunc NewSyslogWrapper(w *syslog.Writer) SyslogWrapper {\n\treturn SyslogWrapper{w: w}\n}\n\nfunc (sw SyslogWrapper) Write(data []byte) (int, error) {\n\tif len(data) < 23 {\n\t\treturn len(data), sw.w.Info(string(data))\n\t}\n\n\t// The logging symbol is currently definitely in the this part\n\t// of the log. It might span up to 4 bytes.\n\tprefix := data[19:23]\n\tif bytes.Index(prefix, []byte(symbolTable[logrus.DebugLevel])) > 0 {\n\t\treturn len(data), sw.w.Debug(string(data))\n\t}\n\n\tif bytes.Index(prefix, []byte(symbolTable[logrus.InfoLevel])) > 0 {\n\t\treturn len(data), sw.w.Info(string(data))\n\t}\n\n\tif bytes.Index(prefix, []byte(symbolTable[logrus.WarnLevel])) > 0 {\n\t\treturn len(data), sw.w.Warning(string(data))\n\t}\n\n\treturn len(data), sw.w.Err(string(data))\n}\n"
  },
  {
    "path": "util/log/logger_test.go",
    "content": "package log\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\nfunc TestLog(t *testing.T) {\n\t// This test is only for messing with the log output.\n\t// It has no real (unit) testing value.\n\tt.Skip(\"This test is only to debug log formatting\")\n\n\tlogrus.SetOutput(os.Stderr)\n\n\t// Only log the warning severity or above.\n\tlogrus.SetLevel(logrus.DebugLevel)\n\n\t// Log pretty text\n\tlogrus.SetFormatter(&FancyLogFormatter{UseColors: true})\n\t// logrus.SetFormatter(&logrus.JSONFormatter{})\n\n\tdefer func() {\n\t\terr := recover()\n\t\tif err != nil {\n\t\t\tlogrus.WithFields(logrus.Fields{\n\t\t\t\t\"omg\":    true,\n\t\t\t\t\"err\":    err,\n\t\t\t\t\"number\": 100,\n\t\t\t}).Fatal(\"The ice breaks!\")\n\t\t}\n\t}()\n\n\tlogrus.WithFields(logrus.Fields{\n\t\t\"animal\": \"walrus\",\n\t\t\"number\": 8,\n\t}).Debug(\"Started observing beach\")\n\n\tlogrus.WithFields(logrus.Fields{\n\t\t\"animal\": \"walrus\",\n\t\t\"size\":   10,\n\t}).Info(\"A group of walrus emerges from the ocean\")\n\n\tlogrus.WithFields(logrus.Fields{\n\t\t\"omg\":    true,\n\t\t\"number\": 122,\n\t}).Warn(\"The group's number increased tremendously!\")\n\n\tlogrus.WithFields(logrus.Fields{\n\t\t\"temperature\": -4,\n\t}).Debug(\"Temperature changes\")\n\n\tlogrus.Error(\"Stuff!\")\n\n\tdefer func() {\n\t\tlogrus.Infof(\"Panicked but recovered: %v\", recover())\n\t}()\n\n\tlogrus.WithFields(logrus.Fields{\n\t\t\"animal\": \"orca\",\n\t\t\"size\":   9009,\n\t}).Panic(\"It's over 9000!\")\n}\n"
  },
  {
    "path": "util/pwutil/pwutil.go",
    "content": "package pwutil\n\nimport (\n\t\"context\"\n\t\"os/exec\"\n\t\"os/user\"\n\t\"strings\"\n\t\"time\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// ReadPasswordFromHelper tries to read a password from a shell command.\n// The shell command gets BRIG_PATH and ENV as environment variables.\n// The output of the password is trimmed from newlines.\nfunc ReadPasswordFromHelper(basePath, helperCommand string) (string, error) {\n\tctx, cancel := context.WithTimeout(context.Background(), time.Minute)\n\tdefer cancel()\n\n\tcurrentUser, err := user.Current()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tcmd := exec.CommandContext(ctx, \"/bin/sh\", \"-c\", helperCommand) // #nosec\n\tcmd.Env = append(cmd.Env, \"BRIG_PATH=\"+basePath)\n\tcmd.Env = append(cmd.Env, \"HOME=\"+currentUser.HomeDir)\n\n\tdata, err := cmd.Output()\n\tif err != nil {\n\t\tlog.Warningf(\"failed to execute password helper: %v: %s\", err, data)\n\t\treturn \"\", err\n\t}\n\n\treturn strings.Trim(string(data), \"\\n\"), nil\n}\n"
  },
  {
    "path": "util/server/server.go",
    "content": "package server\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"os\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"syscall\"\n\t\"time\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tmaxConnections = 10\n)\n\n// Handler is a interface that needs to be implemented in\n// order to react on the requests that Server is getting.\ntype Handler interface {\n\t// Handle is called whenever a new connection is accepted.\n\tHandle(ctx context.Context, conn net.Conn)\n\n\t// Quit is being called when the server received a quit signal.\n\tQuit() error\n}\n\n// Server is a generic server implementation that\n// listens on a certain port and starts a new go routine\n// for each new accepted connection.\n// Whatever the goroutine does is defined by the user-defined handler.\ntype Server struct {\n\tlst     net.Listener\n\tctx     context.Context\n\thandler Handler\n\tquitCh  chan bool\n}\n\n// DeadlineListener is a listener that allows to set a deadline\ntype DeadlineListener interface {\n\tnet.Listener\n\n\tSetDeadline(deadline time.Time) error\n}\n\ntype timeoutErr interface {\n\tTimeout() bool\n}\n\nfunc (sv *Server) accept(rateCh chan struct{}) error {\n\tdeadLst, ok := sv.lst.(DeadlineListener)\n\tif ok {\n\t\tdeadline := time.Now().Add(500 * time.Millisecond)\n\t\tif err := deadLst.SetDeadline(deadline); err != nil {\n\t\t\trateCh <- struct{}{}\n\t\t\treturn err\n\t\t}\n\t}\n\n\tconn, err := sv.lst.Accept()\n\tif err != nil {\n\t\trateCh <- struct{}{}\n\t\tif toutErr, ok := err.(timeoutErr); ok && toutErr.Timeout() {\n\t\t\treturn nil\n\t\t}\n\n\t\t// Something else happened.\n\t\treturn err\n\t}\n\n\t// This might happen with broken listeners.\n\tif conn == nil {\n\t\treturn nil\n\t}\n\n\thandleCtx, cancel := context.WithTimeout(sv.ctx, 30*time.Second)\n\tgo func() {\n\t\tsv.handler.Handle(handleCtx, conn)\n\t\tcancel()\n\t\trateCh <- struct{}{}\n\t}()\n\n\treturn nil\n}\n\n// Close cleans up internal resources\nfunc (sv *Server) Close() error {\n\treturn sv.lst.Close()\n}\n\n// Serve blocks to serve requests to the client.\n// It can be stopped by calling Quit.\nfunc (sv *Server) Serve() error {\n\tsignalCh := make(chan os.Signal, 1)\n\tsignal.Notify(signalCh, syscall.SIGINT, syscall.SIGTERM)\n\n\t// Reserve a pool of connections:\n\trateCh := make(chan struct{}, maxConnections)\n\tfor i := 0; i < cap(rateCh); i++ {\n\t\trateCh <- struct{}{}\n\t}\n\n\tdoServe := true\n\n\tfor doServe {\n\t\tselect {\n\t\tcase sig := <-signalCh:\n\t\t\tlog.Warnf(\"Received %s signal, quitting.\", sig)\n\t\t\tdoServe = false\n\t\tcase <-rateCh:\n\t\t\t// If this signal can receive something, we have a free connection.\n\t\t\tif err := sv.accept(rateCh); err != nil {\n\t\t\t\tif strings.HasSuffix(err.Error(), \"use of closed network connection\") {\n\t\t\t\t\tdoServe = false\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tlog.Errorf(\"Failed to accept connection: %v\", err)\n\t\t\t\t// prevent spamming log messages in case of repeating errors.\n\t\t\t\ttime.Sleep(100 * time.Millisecond)\n\t\t\t}\n\t\tcase <-sv.quitCh:\n\t\t\tlog.Infof(\"Will not accept new connections now\")\n\t\t\tdoServe = false\n\t\tdefault:\n\t\t\t// No free connection available.\n\t\t\ttime.Sleep(100 * time.Millisecond)\n\t\t}\n\t}\n\n\treturn sv.handler.Quit()\n}\n\n// Quit stops the blocking of Serve()\nfunc (sv *Server) Quit() {\n\tsv.quitCh <- true\n}\n\n// NewServer creates a new server from the listener in `lst` and will call `handler`\n// when receiving requests. It uses `ctx` for handling timeouts.\nfunc NewServer(ctx context.Context, lst net.Listener, handler Handler) (*Server, error) {\n\treturn &Server{\n\t\tctx:     ctx,\n\t\tlst:     lst,\n\t\thandler: handler,\n\t\tquitCh:  make(chan bool, 10),\n\t}, nil\n}\n"
  },
  {
    "path": "util/std.go",
    "content": "// Package util implements small helper function that\n// should be included in the stdlib in our opinion.\npackage util\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/url\"\n\t\"os\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\tlog \"github.com/sirupsen/logrus\"\n)\n\n// Empty is just an empty struct.\n// Empty{} reads nicer than struct{}{}\ntype Empty struct{}\n\n// Min returns the minimum of a and b.\nfunc Min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// Max returns the maximum of a and b.\nfunc Max(a, b int) int {\n\tif a < b {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Min64 returns the minimum of a and b.\nfunc Min64(a, b int64) int64 {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// Max64 returns the maximum of a and b.\nfunc Max64(a, b int64) int64 {\n\tif a < b {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// Clamp limits x to the range [lo, hi]\nfunc Clamp(x, lo, hi int) int {\n\treturn Max(lo, Min(x, hi))\n}\n\n// UMin returns the unsigned minimum of a and b\nfunc UMin(a, b uint) uint {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// UMax returns the unsigned minimum of a and b\nfunc UMax(a, b uint) uint {\n\tif a < b {\n\t\treturn b\n\t}\n\treturn a\n}\n\n// UClamp limits x to the range [lo, hi]\nfunc UClamp(x, lo, hi uint) uint {\n\treturn UMax(lo, UMin(x, hi))\n}\n\n// Closer closes c. If that fails, it will log the error.\n// The intended usage is for convinient defer calls only!\n// It gives only little knowledge about where the error is,\n// but it's slightly better than a bare defer xyz.Close()\nfunc Closer(c io.Closer) {\n\tif err := c.Close(); err != nil {\n\t\tlog.Warningf(\"Error on close `%v`: %v\", c, err)\n\t}\n}\n\n// Touch works like the unix touch(1)\nfunc Touch(path string) error {\n\tfd, err := os.OpenFile(path, os.O_CREATE, 0600)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn fd.Close()\n}\n\n// SizeAccumulator is a io.Writer that simply counts\n// the amount of bytes that has been written to it.\n// It's useful to count the received bytes from a reader\n// in conjunction with a io.TeeReader\n//\n// Example usage without error handling:\n//\n//   s := &SizeAccumulator{}\n//   teeR := io.TeeReader(r, s)\n//   io.Copy(os.Stdout, teeR)\n//   fmt.Printf(\"Wrote %d bytes to stdout\\n\", s.Size())\n//\ntype SizeAccumulator struct {\n\tsize uint64\n}\n\n// Write simply increments the internal size count without any IO.\n// It can be safely called from any go routine.\nfunc (s *SizeAccumulator) Write(buf []byte) (int, error) {\n\tatomic.AddUint64(&s.size, uint64(len(buf)))\n\treturn len(buf), nil\n}\n\n// Size returns the cumulated written bytes.\n// It can be safely called from any go routine.\nfunc (s *SizeAccumulator) Size() uint64 {\n\treturn atomic.LoadUint64(&s.size)\n}\n\n// Reset resets the size counter to 0.\nfunc (s *SizeAccumulator) Reset() {\n\tatomic.StoreUint64(&s.size, 0)\n}\n\n// NopWriteCloser returns a WriteCloser with a no-op Close method wrapping the\n// provided Writer w.\nfunc NopWriteCloser(w io.Writer) io.WriteCloser {\n\treturn nopCloser{w}\n}\n\ntype nopCloser struct {\n\tio.Writer\n}\n\nfunc (nopCloser) Close() error { return nil }\n\ntype syncReadWriter struct {\n\tio.ReadWriter\n\tsync.Mutex\n}\n\nfunc (s *syncReadWriter) Write(buf []byte) (int, error) {\n\ts.Lock()\n\tdefer s.Unlock()\n\n\treturn s.ReadWriter.Write(buf)\n}\n\nfunc (s *syncReadWriter) Read(buf []byte) (int, error) {\n\ts.Lock()\n\tdefer s.Unlock()\n\n\treturn s.ReadWriter.Read(buf)\n}\n\n// SyncedReadWriter returns a io.ReadWriter that protects each call\n// to Read() and Write() with a sync.Mutex.\nfunc SyncedReadWriter(w io.ReadWriter) io.ReadWriter {\n\treturn &syncReadWriter{ReadWriter: w}\n}\n\n// TimeoutReadWriter is io.ReadWriter capable of returning ErrTimeout\n// if there was no result in a certain timeout period.\ntype TimeoutReadWriter struct {\n\tio.Writer\n\tio.Reader\n\n\trtimeout time.Duration\n\twtimeout time.Duration\n\n\tuseDeadline bool\n\trdeadline   time.Time\n\twdeadline   time.Time\n}\n\n// ErrTimeout will be returned by Read/Write in case of a timeout.\nvar ErrTimeout = errors.New(\"I/O Timeout: Operation timed out\")\n\nfunc (rw *TimeoutReadWriter) io(p []byte, doRead bool) (n int, err error) {\n\tvar deadline <-chan time.Time\n\n\t// Figoure out when it's too late:\n\tswitch {\n\tcase doRead && rw.useDeadline:\n\t\tdeadline = time.After(rw.rdeadline.Sub(time.Now()))\n\tcase doRead && !rw.useDeadline:\n\t\tdeadline = time.After(rw.rtimeout)\n\tcase !doRead && rw.useDeadline:\n\t\tdeadline = time.After(rw.wdeadline.Sub(time.Now()))\n\tcase !doRead && !rw.useDeadline:\n\t\tdeadline = time.After(rw.wtimeout)\n\t}\n\n\t// Resever one element, so the go routine gets cleaned up\n\t// early even if the timeout already expired.\n\tdone := make(chan bool, 1)\n\tgo func() {\n\t\tif doRead {\n\t\t\tn, err = rw.Reader.Read(p)\n\t\t} else {\n\t\t\tn, err = rw.Writer.Write(p)\n\t\t}\n\t\tdone <- true\n\t}()\n\n\t// Wait for something to happen:\n\tselect {\n\tcase <-done:\n\t\treturn\n\tcase <-deadline:\n\t\treturn 0, ErrTimeout\n\t}\n}\n\nfunc (rw *TimeoutReadWriter) Read(p []byte) (n int, err error) {\n\treturn rw.io(p, true)\n}\n\nfunc (rw *TimeoutReadWriter) Write(p []byte) (n int, err error) {\n\treturn rw.io(p, false)\n}\n\n// SetReadDeadline sets an absolute time in the future where\n// a read option should be canceled.\nfunc (rw *TimeoutReadWriter) SetReadDeadline(d time.Time) error {\n\trw.useDeadline = true\n\trw.rdeadline = d\n\treturn nil\n}\n\n// SetWriteDeadline sets an absolute time in the future where\n// a write option should be canceled.\nfunc (rw *TimeoutReadWriter) SetWriteDeadline(d time.Time) error {\n\trw.useDeadline = true\n\trw.wdeadline = d\n\treturn nil\n}\n\n// SetDeadline sets an absolute time in the future where an I/O\n// operation should be canceled.\nfunc (rw *TimeoutReadWriter) SetDeadline(d time.Time) error {\n\trw.SetWriteDeadline(d)\n\trw.SetReadDeadline(d)\n\treturn nil\n}\n\n// SetWriteTimeout sets an own timeout for writing.\nfunc (rw *TimeoutReadWriter) SetWriteTimeout(d time.Duration) error {\n\trw.wtimeout = d\n\treturn nil\n}\n\n// SetReadTimeout sets an own timeout for reading.\nfunc (rw *TimeoutReadWriter) SetReadTimeout(d time.Duration) error {\n\trw.rtimeout = d\n\treturn nil\n}\n\n// SetTimeout sets both the read and write timeout to `d`.\nfunc (rw *TimeoutReadWriter) SetTimeout(d time.Duration) error {\n\trw.rtimeout = d\n\trw.wtimeout = d\n\treturn nil\n}\n\n// NewTimeoutWriter wraps `w` and returns a io.Writer that times out\n// after `d` elapsed with ErrTimeout if `w` didn't succeed in that time.\nfunc NewTimeoutWriter(w io.Writer, d time.Duration) io.Writer {\n\treturn &TimeoutReadWriter{Writer: w, wtimeout: d}\n}\n\n// NewTimeoutReader wraps `r` and returns a io.Reader that times out\n// after `d` elapsed with ErrTimeout if `r` didn't succeed in that time.\nfunc NewTimeoutReader(r io.Reader, d time.Duration) io.Reader {\n\treturn &TimeoutReadWriter{Reader: r, rtimeout: d}\n}\n\n// NewTimeoutReadWriter wraps `rw` and returns a io.ReadWriter that times out\n// after `d` elapsed with ErrTimeout if `rw` didn't succeed in that time.\nfunc NewTimeoutReadWriter(rw io.ReadWriter, d time.Duration) *TimeoutReadWriter {\n\treturn &TimeoutReadWriter{\n\t\tReader: rw, Writer: rw,\n\t\trtimeout: d, wtimeout: d,\n\t}\n}\n\n// Errors is a list of errors that render to one single message\ntype Errors []error\n\nfunc (es Errors) Error() string {\n\tswitch len(es) {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1:\n\t\treturn es[0].Error()\n\tdefault:\n\t\tbase := \"More than one error happened:\\n\"\n\t\tfor _, err := range es {\n\t\t\tbase += \"\\t\" + err.Error() + \"\\n\"\n\t\t}\n\n\t\treturn base\n\t}\n}\n\n// ToErr combines all errors in the list to a single error.\n// If there were no errors, it returns nil.\nfunc (es Errors) ToErr() error {\n\tif len(es) > 0 {\n\t\treturn es\n\t}\n\treturn nil\n}\n\n// OmitBytes converts a byte slice into a string representation that\n// omits data in the middle if necessary. It is useful for testing\n// and printing user information. `lim` is the number of bytes\n//\n// Example:\n//\n// OmitBytes([]byte{1,2,3,4}, 2)\n// -> [1 ... 2]\n// OmitBytes([]byte{1,2,3,4}, 4)\n// -> [1, 2, 3, 4]\n//\nfunc OmitBytes(data []byte, lim int) string {\n\tlo := lim\n\tif lo > len(data) {\n\t\tlo = len(data)\n\t}\n\n\thi := len(data) - lim\n\tif hi < 0 {\n\t\thi = len(data)\n\t}\n\n\tif len(data[hi:]) > 0 {\n\t\treturn fmt.Sprintf(\"%v ... %v\", data[:lo], data[hi:])\n\t}\n\n\treturn fmt.Sprintf(\"%v\", data[:lo])\n}\n\ntype limitWriter struct {\n\twr  io.Writer\n\tsz  int64\n\tpos int64\n}\n\n// LimitWriter is like io.LimitReader but for an io.Writer\nfunc LimitWriter(w io.Writer, sz int64) io.Writer {\n\treturn &limitWriter{\n\t\twr: w,\n\t\tsz: sz,\n\t}\n}\n\nfunc (lw *limitWriter) Write(buf []byte) (int, error) {\n\tif lw.pos >= lw.sz {\n\t\treturn len(buf), nil\n\t}\n\n\tn := Min64(lw.sz-lw.pos, int64(len(buf)))\n\tlw.pos += n\n\n\t_, err := lw.wr.Write(buf[:n])\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\t// many go std functions require that all of `buf` was written,\n\t// or else they return with errShortWrite. Let's act like we\n\t// used all of it.\n\treturn len(buf), nil\n}\n\ntype prefixReader struct {\n\tdata []byte\n\tcurs int64\n\tr    io.Reader\n}\n\nfunc (pr *prefixReader) Read(buf []byte) (n int, err error) {\n\tnread := 0\n\tif pr.curs < 0 {\n\t\treturn -1, fmt.Errorf(\"negative cursor\")\n\t}\n\n\tif pr.curs < int64(len(pr.data)) {\n\t\tn := copy(buf, pr.data[pr.curs:])\n\t\tbuf = buf[n:]\n\t\tpr.curs += int64(n)\n\t\tnread += n\n\t}\n\n\tif len(buf) == 0 {\n\t\treturn nread, nil\n\t}\n\n\tn, err = pr.r.Read(buf)\n\n\t// err might be io.EOF, so progress.\n\tnread += n\n\treturn nread, err\n}\n\ntype seekablePrefixReader struct {\n\tprefixReader\n\ts io.Seeker\n}\n\nfunc (pr *seekablePrefixReader) Seek(offset int64, whence int) (int64, error) {\n\t// NOTE: pr.r shares the same offset space as pr does.\n\t//       All this Seek() does is preventing it from jumping it into the prefix space.\n\t//       It does this by calculating an absolute offset and limits the jump offset\n\t//       by the length of the prefix.\n\tswitch whence {\n\tcase io.SeekStart:\n\t\tnewOff := Max64(int64(len(pr.data)), offset)\n\t\tif _, err := pr.s.Seek(newOff, whence); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tpr.curs = offset\n\t\treturn pr.curs, nil\n\tcase io.SeekCurrent:\n\t\tnewOff := Max64(int64(len(pr.data)), pr.curs+offset)\n\t\tif _, err := pr.s.Seek(newOff, io.SeekStart); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tpr.curs += offset\n\t\treturn pr.curs, nil\n\tcase io.SeekEnd:\n\t\tsize, err := pr.s.Seek(0, io.SeekEnd)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tnewOff := Max64(int64(len(pr.data)), size+offset)\n\t\tif _, err := pr.s.Seek(newOff, io.SeekStart); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\n\t\tpr.curs = newOff\n\t\treturn pr.curs, nil\n\tdefault:\n\t\treturn -1, fmt.Errorf(\"invalid whence: %d\", whence)\n\t}\n}\n\n// PeekHeader returns a new reader that will yield the very same data as `r`.\n// It reads `size` bytes from `r` and returns it. The underlying implementation\n// uses PrefixReader to prefix the stream with the header again.\nfunc PeekHeader(rs io.ReadSeeker, size int64) ([]byte, io.ReadSeeker, error) {\n\theaderBuf := make([]byte, size)\n\tn, err := rs.Read(headerBuf)\n\tif err != nil && err != io.EOF {\n\t\treturn nil, nil, err\n\t}\n\n\theaderBuf = headerBuf[:n]\n\treturn headerBuf, &seekablePrefixReader{\n\t\tprefixReader: prefixReader{\n\t\t\tdata: headerBuf,\n\t\t\tr:    rs,\n\t\t},\n\t\ts: rs,\n\t}, nil\n}\n\n// HeaderReader is an alternative to PeekHeader().\n// It requires no seeking and buffers the header while reading the stream.\n// The header will not be available when there was no Read().\ntype HeaderReader struct {\n\tr    io.Reader\n\tsize uint64\n\tbuf  []byte\n}\n\n// NewHeaderReader returns a new header reader.\nfunc NewHeaderReader(r io.Reader, size uint64) *HeaderReader {\n\treturn &HeaderReader{\n\t\tr:    r,\n\t\tsize: size,\n\t\tbuf:  []byte{},\n\t}\n}\n\n// Header returns the current header buffer. It's empty if no data was read\n// from the stream yet. It's size will be smaller or equal the size you passed\n// to NewHeaderReader.\nfunc (hr *HeaderReader) Header() []byte {\n\treturn hr.buf\n}\n\n// Peek reads the header of the stream and returns it.\n// It does not alter the position of the stream, Read() will still\n// return the header read by Peek().\n//\n// This will only work if no I/O was done on stream yet.\n// In this case an error is returned. You can Peek() successfully at\n// most once.\nfunc (hr *HeaderReader) Peek() ([]byte, error) {\n\tif len(hr.buf) > 0 {\n\t\t// The stream was already read.\n\t\treturn nil, errors.New(\"cannot peek, stream was read already\")\n\t}\n\n\tbuf := make([]byte, hr.size)\n\tn, err := io.ReadFull(hr.r, buf)\n\tif err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {\n\t\treturn nil, err\n\t}\n\n\t// Do not read the header anymore in Read():\n\thr.size = 0\n\thr.buf = buf[:n]\n\n\t// Concatenate the memory buffer to the stream:\n\thr.r = &prefixReader{data: hr.buf, r: hr.r}\n\treturn hr.buf, nil\n}\n\nfunc (hr *HeaderReader) Read(buf []byte) (int, error) {\n\tn, err := hr.r.Read(buf)\n\tif diff := int64(hr.size) - int64(len(hr.buf)); n > 0 && diff > 0 {\n\t\tif int64(n) < diff {\n\t\t\tdiff = int64(n)\n\t\t}\n\n\t\tif len(hr.buf) == 0 {\n\t\t\t// only allocate header buffer when required:\n\t\t\thr.buf = make([]byte, 0, hr.size)\n\t\t}\n\n\t\thr.buf = append(hr.buf, buf[:diff]...)\n\t}\n\n\treturn n, err\n}\n\n// CopyFile simply copies the file at `src` to `dst`.\n// If `dst` already contains a file, it will be overwritten.\nfunc CopyFile(src, dst string) error {\n\tsrcFd, err := os.Open(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer srcFd.Close()\n\n\tdstFd, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0700)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer dstFd.Close()\n\n\t_, err = io.Copy(dstFd, srcFd)\n\treturn err\n}\n\n// FindFreePort asks the operating system for a free port.\nfunc FindFreePort() int {\n\tlistener, err := net.Listen(\"tcp\", \":0\")\n\tif err != nil {\n\t\treturn 0\n\t}\n\n\tdefer listener.Close()\n\treturn listener.Addr().(*net.TCPAddr).Port\n}\n\n// URLToSchemeAndAddr is a helper that converts different URLS to\n// a scheme and addr argument that can be passed to either net.Listen()\n// or to net.Dial(). Some extras are supported.\nfunc URLToSchemeAndAddr(s string) (string, string, error) {\n\tu, err := url.Parse(s)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\n\tswitch u.Scheme {\n\tcase \"tcp\":\n\t\treturn u.Scheme, u.Host, nil\n\tcase \"unix\":\n\t\tv := u.Query()\n\t\tif v.Get(\"abstract\") == \"true\" {\n\t\t\t// See \"man 7 unix\", if the first byte is a 0 byte then the socket\n\t\t\t// is considered as abstract, i.e. no file in the filesystem.\n\t\t\t// The path just acts as unique identifier for the socket.\n\t\t\t// This makes cleaning up the path easier in case of crashes.\n\t\t\tb := []byte(u.Path)\n\t\t\tb[0] = 0\n\t\t\tu.Path = string(b)\n\t\t}\n\n\t\t// We can optionally specify an ID. That can be useful to\n\t\t// distinguish between different brig daemon on the same system.\n\t\t// (needed for the test-bed script for example)\n\t\tif id := v.Get(\"id\"); id != \"\" {\n\t\t\tu.Path += id\n\t\t}\n\n\t\treturn u.Scheme, u.Path, nil\n\tdefault:\n\t\treturn \"\", \"\", fmt.Errorf(\"unsupported protocol: %v\", u.Scheme)\n\t}\n}\n"
  },
  {
    "path": "util/std_test.go",
    "content": "package util\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestClamp(t *testing.T) {\n\tif Clamp(-1, 0, 1) != 0 {\n\t\tt.Errorf(\"Clamp: -1 is not in [0, 1]\")\n\t}\n\n\tif Clamp(+1, 0, 1) != 1 {\n\t\tt.Errorf(\"Clamp: +1 should be [0, 1]\")\n\t}\n\n\tif Clamp(0, 0, 1) != 0 {\n\t\tt.Errorf(\"Clamp: 0 should be [0, 1]\")\n\t}\n\n\tif Clamp(+2, 0, 1) != 1 {\n\t\tt.Errorf(\"Clamp: 2 was not cut\")\n\t}\n}\n\nfunc TestSizeAcc(t *testing.T) {\n\tN := 20\n\tdata := []byte(\"Hello World, how are you today?\")\n\n\tsizeAcc := &SizeAccumulator{}\n\tbuffers := []*bytes.Buffer{}\n\n\tfor i := 0; i < N; i++ {\n\t\tbuf := bytes.NewBuffer(data)\n\t\tbuffers = append(buffers, buf)\n\t}\n\n\twg := &sync.WaitGroup{}\n\twg.Add(N)\n\n\tfor i := 0; i < N; i++ {\n\t\tgo func(buf *bytes.Buffer) {\n\t\t\tfor j := 0; j < len(data); j++ {\n\t\t\t\tminiBuf := []byte{0}\n\t\t\t\tbuf.Read(miniBuf)\n\t\t\t\tif _, err := sizeAcc.Write(miniBuf); err != nil {\n\t\t\t\t\tt.Errorf(\"write(sizeAcc, miniBuf) failed: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twg.Done()\n\t\t}(buffers[i])\n\t}\n\n\twg.Wait()\n\tif int(sizeAcc.Size()) != N*len(data) {\n\t\tt.Errorf(\"SizeAccumulator: Sizes got dropped, race condition?\")\n\t\tt.Errorf(\n\t\t\t\"Should be %v x %v = %v; was %v\",\n\t\t\tlen(data), N, len(data)*N, sizeAcc.Size(),\n\t\t)\n\t}\n}\n\nfunc TestTouch(t *testing.T) {\n\t// Test for fd leakage:\n\tN := 4097\n\n\tbaseDir := filepath.Join(os.TempDir(), \"touch-test\")\n\tif err := os.Mkdir(baseDir, 0777); err != nil {\n\t\tt.Errorf(\"touch-test: Could not create temp dir: %v\", err)\n\t\treturn\n\t}\n\n\tdefer func() {\n\t\tif err := os.RemoveAll(baseDir); err != nil {\n\t\t\tt.Errorf(\"touch-test: Could not remove temp-dir: %v\", err)\n\t\t}\n\t}()\n\n\tfor i := 0; i < N; i++ {\n\t\ttouchPath := filepath.Join(baseDir, fmt.Sprintf(\"%d\", i))\n\t\tif err := Touch(touchPath); err != nil {\n\t\t\tt.Errorf(\"touch-test: Touch() failed: %v\", err)\n\t\t\treturn\n\t\t}\n\n\t\tif _, err := os.Stat(touchPath); os.IsNotExist(err) {\n\t\t\tt.Errorf(\"touch-test: `%v` does not exist after Touch()\", touchPath)\n\t\t\treturn\n\t\t}\n\t}\n}\n\ntype slowWriter struct{}\n\nfunc (w slowWriter) Write(buf []byte) (int, error) {\n\ttime.Sleep(500 * time.Millisecond)\n\treturn 0, nil\n}\n\nfunc TestTimeoutWriter(t *testing.T) {\n\tfast := NewTimeoutWriter(&bytes.Buffer{}, 500*time.Millisecond)\n\tbeforeFast := time.Now()\n\tfast.Write([]byte(\"Hello World\"))\n\tfastTook := time.Since(beforeFast)\n\n\tif fastTook > 50*time.Millisecond {\n\t\tt.Errorf(\"TimeoutWriter did wait too long.\")\n\t\treturn\n\t}\n\n\tbeforeSlow := time.Now()\n\tslow := NewTimeoutWriter(slowWriter{}, 250*time.Millisecond)\n\tslow.Write([]byte(\"Hello World\"))\n\tslowTook := time.Since(beforeSlow)\n\n\tif slowTook > 300*time.Millisecond {\n\t\tt.Errorf(\"TimeoutWriter did not kill write fast enough.\")\n\t\treturn\n\t}\n\n\tif slowTook < 200*time.Millisecond {\n\t\tt.Errorf(\"TimeoutWriter did return too fast.\")\n\t\treturn\n\t}\n}\n\nfunc ExampleSizeAccumulator() {\n\ts := &SizeAccumulator{}\n\tteeR := io.TeeReader(bytes.NewReader([]byte(\"Hello, \")), s)\n\tio.Copy(os.Stdout, teeR)\n\tfmt.Printf(\"wrote %d bytes to stdout\\n\", s.Size())\n\t// Output: Hello, wrote 7 bytes to stdout\n}\n\nfunc TestLimitWriterSimple(t *testing.T) {\n\ttcs := []struct {\n\t\tlimit     int64\n\t\tdummySize int64\n\t\twrites    int\n\t\tname      string\n\t}{\n\t\t{1024, 512, 3, \"basic\"},\n\t\t{1024, 512, 2, \"exact\"},\n\t\t{1022, 511, 2, \"off-by-two\"},\n\t\t{1023, 1024, 1, \"off-mimus-one\"},\n\t\t{1024, 1025, 1, \"off-plus-one\"},\n\t}\n\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\toutBuf := &bytes.Buffer{}\n\t\t\tw := LimitWriter(outBuf, tc.limit)\n\n\t\t\tdummy := testutil.CreateDummyBuf(tc.dummySize)\n\t\t\texpected := make([]byte, 0)\n\t\t\tfor i := 0; i < tc.writes; i++ {\n\t\t\t\tw.Write(dummy)\n\t\t\t\texpected = append(expected, dummy...)\n\t\t\t}\n\n\t\t\texpected = expected[:tc.limit]\n\n\t\t\tif outBuf.Len() != int(tc.limit) {\n\t\t\t\tt.Fatalf(\n\t\t\t\t\t\"Length differs (got %d, want %d)\",\n\t\t\t\t\toutBuf.Len(),\n\t\t\t\t\ttc.limit,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif !bytes.Equal(expected, outBuf.Bytes()) {\n\t\t\t\tt.Fatalf(\"Data differs\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc makePrefixReader(data []byte, rs io.ReadSeeker) *seekablePrefixReader {\n\treturn &seekablePrefixReader{\n\t\tprefixReader: prefixReader{\n\t\t\tdata: data,\n\t\t\tr:    rs,\n\t\t},\n\t\ts: rs,\n\t}\n}\n\nfunc TestPrefixReader(t *testing.T) {\n\ta := []byte{1, 2, 3}\n\tb := []byte{4, 5, 6}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\tdata, err := ioutil.ReadAll(r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, []byte{1, 2, 3, 4, 5, 6})\n}\n\nfunc TestPrefixReaderEmptyReader(t *testing.T) {\n\ta := []byte{1, 2, 3}\n\tb := []byte{}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\tdata, err := ioutil.ReadAll(r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, []byte{1, 2, 3})\n}\n\nfunc TestPrefixReaderEmptyBuffer(t *testing.T) {\n\ta := []byte{}\n\tb := []byte{4, 5, 6}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\tdata, err := ioutil.ReadAll(r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, []byte{4, 5, 6})\n}\n\nfunc TestPrefixReaderBothEmpty(t *testing.T) {\n\ta := []byte{}\n\tb := []byte{}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\tdata, err := ioutil.ReadAll(r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, data, []byte{})\n}\n\nfunc TestPrefixReaderPartial(t *testing.T) {\n\ta := []byte{1, 2, 3}\n\tb := []byte{4, 5, 6}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\n\tbuf := make([]byte, 6)\n\tfor i := 0; i < 6; i++ {\n\t\tn, err := r.Read(buf[i : i+1])\n\t\trequire.Nil(t, err)\n\t\trequire.Equal(t, n, 1)\n\t\trequire.Equal(t, buf[:i+1], []byte{1, 2, 3, 4, 5, 6}[:i+1])\n\t}\n}\n\nfunc TestPrefixReaderSeekSize(t *testing.T) {\n\ta := []byte{1, 2, 3}\n\tb := []byte{1, 2, 3, 4, 5, 6}\n\n\tr := makePrefixReader(a, bytes.NewReader(b))\n\tsize, err := r.Seek(0, io.SeekEnd)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(6), int64(size))\n\n\toff, err := r.Seek(0, io.SeekStart)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), off)\n\n\tcurr, err := r.Seek(0, io.SeekCurrent)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(0), curr)\n\n\tbuf := &bytes.Buffer{}\n\tn, err := io.Copy(buf, r)\n\trequire.Nil(t, err)\n\trequire.Equal(t, int64(6), n)\n\trequire.Equal(t, []byte{1, 2, 3, 4, 5, 6}, buf.Bytes())\n}\n\nfunc TestHeaderReader(t *testing.T) {\n\ttests := []struct {\n\t\t// name of the test\n\t\tname string\n\n\t\t// size of the buffer passed to Read()\n\t\treadBufSize int64\n\n\t\t// size of the dummy data (i.e. file size)\n\t\ttestBufSize int64\n\n\t\t// max size of the header\n\t\theadBufSize int64\n\t}{\n\t\t{\n\t\t\tname:        \"happy-path\",\n\t\t\treadBufSize: 256,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 1024,\n\t\t}, {\n\t\t\tname:        \"large-read-buffer\",\n\t\t\treadBufSize: 4096,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 1024,\n\t\t}, {\n\t\t\tname:        \"large-head-buffer\",\n\t\t\treadBufSize: 512,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 4096,\n\t\t}, {\n\t\t\tname:        \"zero-head-buffer\",\n\t\t\treadBufSize: 512,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 0,\n\t\t}, {\n\t\t\tname:        \"odd-read-buffer\",\n\t\t\treadBufSize: 123,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 1024,\n\t\t}, {\n\t\t\tname:        \"odd-test-buffer\",\n\t\t\treadBufSize: 256,\n\t\t\ttestBufSize: 1234,\n\t\t\theadBufSize: 1024,\n\t\t}, {\n\t\t\tname:        \"odd-head-buffer\",\n\t\t\treadBufSize: 123,\n\t\t\ttestBufSize: 2048,\n\t\t\theadBufSize: 1234,\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\tfor idx, suffix := range []string{\"no-peek\", \"peek\"} {\n\t\t\tt.Run(test.name+\"/\"+suffix, func(t *testing.T) {\n\t\t\t\ttestHeaderReader(\n\t\t\t\t\tt,\n\t\t\t\t\tidx == 1,\n\t\t\t\t\ttest.readBufSize,\n\t\t\t\t\ttest.testBufSize,\n\t\t\t\t\ttest.headBufSize,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t}\n}\n\nfunc testHeaderReader(t *testing.T, usePeek bool, readBufSize, testBufSize, headBufSize int64) {\n\tdummy := testutil.CreateDummyBuf(testBufSize)\n\thr := NewHeaderReader(bytes.NewReader(dummy), uint64(headBufSize))\n\n\tvar peekedHdr []byte\n\tif usePeek {\n\t\tvar err error\n\t\tpeekedHdr, err = hr.Peek()\n\t\trequire.NoError(t, err)\n\t}\n\n\t// Now read until io.EOF:\n\tbytesLeft := testBufSize\n\tdummyIter := dummy\n\tbuf := make([]byte, readBufSize)\n\tfor {\n\t\tn, err := hr.Read(buf)\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\n\t\trequire.NoError(t, err)\n\n\t\texpectedSize := readBufSize\n\t\tif testBufSize < readBufSize {\n\t\t\texpectedSize = testBufSize\n\t\t}\n\n\t\t// on odd buf numbers there might be a odd sized last read:\n\t\tif bytesLeft < expectedSize {\n\t\t\texpectedSize = bytesLeft\n\t\t}\n\n\t\tbytesLeft -= int64(n)\n\n\t\t// NOTE: io.Reader does not guarantee that n == expectedSize,\n\t\t// we might read less which is fine, then we should just repeat Read()-ing.\n\t\trequire.GreaterOrEqual(t, int(expectedSize), n, \"unexpected read buffer return\")\n\t\trequire.Equal(t, dummyIter[:n], buf[:n])\n\t\tdummyIter = dummyIter[n:]\n\t}\n\n\t// Check that the header is really the part at the start\n\t// and that it has the expected length.\n\texpectedSize := headBufSize\n\tif testBufSize < headBufSize {\n\t\texpectedSize = testBufSize\n\t}\n\n\thdr := hr.Header()\n\trequire.Len(t, hdr, int(expectedSize))\n\trequire.Equal(t, hdr, dummy[:expectedSize])\n\n\tif usePeek {\n\t\trequire.Equal(t, hdr, peekedHdr, \"Peek() differs from Head()\")\n\t}\n}\n"
  },
  {
    "path": "util/strings/README.md",
    "content": "This package is from the go standard library as of version 1.10.\nSince brig should be compatible with go1.9, we ship it as part\nof this package for now. This package can be removed in a few versions.\n"
  },
  {
    "path": "util/strings/builder.go",
    "content": "package strings\n\n// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport (\n\t\"unicode/utf8\"\n\t\"unsafe\"\n)\n\n// A Builder is used to efficiently build a string using Write methods.\n// It minimizes memory copying. The zero value is ready to use.\n// Do not copy a non-zero Builder.\ntype Builder struct {\n\taddr *Builder // of receiver, to detect copies by value\n\tbuf  []byte\n}\n\nfunc (b *Builder) copyCheck() {\n\tif b.addr == nil {\n\t\tb.addr = b\n\t} else if b.addr != b {\n\t\tpanic(\"strings: illegal use of non-zero Builder copied by value\")\n\t}\n}\n\n// String returns the accumulated string.\nfunc (b *Builder) String() string {\n\treturn *(*string)(unsafe.Pointer(&b.buf)) // #nosec\n}\n\n// Len returns the number of accumulated bytes; b.Len() == len(b.String()).\nfunc (b *Builder) Len() int { return len(b.buf) }\n\n// Reset resets the Builder to be empty.\nfunc (b *Builder) Reset() {\n\tb.addr = nil\n\tb.buf = nil\n}\n\n// grow copies the buffer to a new, larger buffer so that there are at least n\n// bytes of capacity beyond len(b.buf).\nfunc (b *Builder) grow(n int) {\n\tbuf := make([]byte, len(b.buf), 2*cap(b.buf)+n)\n\tcopy(buf, b.buf)\n\tb.buf = buf\n}\n\n// Grow grows b's capacity, if necessary, to guarantee space for\n// another n bytes. After Grow(n), at least n bytes can be written to b\n// without another allocation. If n is negative, Grow panics.\nfunc (b *Builder) Grow(n int) {\n\tb.copyCheck()\n\tif n < 0 {\n\t\tpanic(\"strings.Builder.Grow: negative count\")\n\t}\n\tif cap(b.buf)-len(b.buf) < n {\n\t\tb.grow(n)\n\t}\n}\n\n// Write appends the contents of p to b's buffer.\n// Write always returns len(p), nil.\nfunc (b *Builder) Write(p []byte) (int, error) {\n\tb.copyCheck()\n\tb.buf = append(b.buf, p...)\n\treturn len(p), nil\n}\n\n// WriteByte appends the byte c to b's buffer.\n// The returned error is always nil.\nfunc (b *Builder) WriteByte(c byte) error {\n\tb.copyCheck()\n\tb.buf = append(b.buf, c)\n\treturn nil\n}\n\n// WriteRune appends the UTF-8 encoding of Unicode code point r to b's buffer.\n// It returns the length of r and a nil error.\nfunc (b *Builder) WriteRune(r rune) (int, error) {\n\tb.copyCheck()\n\tif r < utf8.RuneSelf {\n\t\tb.buf = append(b.buf, byte(r))\n\t\treturn 1, nil\n\t}\n\tl := len(b.buf)\n\tif cap(b.buf)-l < utf8.UTFMax {\n\t\tb.grow(utf8.UTFMax)\n\t}\n\tn := utf8.EncodeRune(b.buf[l:l+utf8.UTFMax], r)\n\tb.buf = b.buf[:l+n]\n\treturn n, nil\n}\n\n// WriteString appends the contents of s to b's buffer.\n// It returns the length of s and a nil error.\nfunc (b *Builder) WriteString(s string) (int, error) {\n\tb.copyCheck()\n\tb.buf = append(b.buf, s...)\n\treturn len(s), nil\n}\n"
  },
  {
    "path": "util/testutil/testutil.go",
    "content": "package testutil\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math/rand\"\n\t\"net\"\n\t\"os\"\n\t\"testing\"\n)\n\n// CreateDummyBuf creates a byte slice that is `size` big.\n// It's filled with the repeating numbers [0...254].\nfunc CreateDummyBuf(size int64) []byte {\n\tbuf := make([]byte, size)\n\n\tfor i := int64(0); i < size; i++ {\n\t\t// Be evil and stripe the data, %255 is not an mistake:\n\t\tbuf[i] = byte(i % 255)\n\t}\n\n\treturn buf\n}\n\n// CreateRandomDummyBuf creates data that is evenly distributed\n// and therefore notirously hard to compress.\nfunc CreateRandomDummyBuf(size, seed int64) []byte {\n\tsrc := rand.NewSource(seed)\n\tbuf := make([]byte, size)\n\n\tfor i := int64(0); i < size; i++ {\n\t\tbuf[i] = byte(src.Int63() % 256)\n\t}\n\n\treturn buf\n}\n\n// CreateMixedDummyBuf creates data that mixes hard to compress data\n// with streaks of easy to compress data. The ratio is approx 50%.\nfunc CreateMixedDummyBuf(size, seed int64) []byte {\n\tconst blockSize = 1024\n\n\tbuf := make([]byte, size)\n\tsrc := rand.NewSource(seed)\n\n\tfor idx := int64(0); idx < size; idx++ {\n\t\tblockOff := idx % 1024\n\t\tpivot := src.Int63() % blockSize\n\t\tif blockOff < pivot {\n\t\t\tbuf[idx] = byte(idx % 256)\n\t\t} else {\n\t\t\tbuf[idx] = byte(src.Int63() % 256)\n\t\t}\n\t}\n\n\treturn buf\n}\n\n// CreateFile creates a temporary file in the systems tmp-folder.\n// The file will be `size` bytes big, filled with content from CreateDummyBuf.\nfunc CreateFile(size int64) string {\n\tfd, err := ioutil.TempFile(\"\", \"brig_test\")\n\tif err != nil {\n\t\tpanic(\"Cannot create temp file\")\n\t}\n\n\tblockSize := int64(1 * 1024 * 1024)\n\tbuf := CreateDummyBuf(blockSize)\n\n\tfor size > 0 {\n\t\ttake := size\n\t\tif size > int64(len(buf)) {\n\t\t\ttake = int64(len(buf))\n\t\t}\n\n\t\t_, err := fd.Write(buf[:take])\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tsize -= blockSize\n\t}\n\n\tif err := fd.Close(); err != nil {\n\t\treturn \"\"\n\t}\n\n\treturn fd.Name()\n}\n\n// Remover removes all files in paths recursively and errors when it fails.\n// It is no error if there's nothing to delete. It's useful in defer statements.\nfunc Remover(t *testing.T, paths ...string) {\n\tfor _, path := range paths {\n\t\tif err := os.RemoveAll(path); err != nil {\n\t\t\tt.Errorf(\"removing temp directory failed: %v\", err)\n\t\t}\n\t}\n}\n\n// DumbCopy works like io.Copy but may be instructed to not use WriteTo or ReadFrom\nfunc DumbCopy(dst io.Writer, src io.Reader, useReadFrom, useWriteTo bool) (written int64, err error) {\n\t// If the reader has a WriteTo method, use it to do the copy.\n\t// Avoids an allocation and a copy.\n\tif wt, ok := src.(io.WriterTo); ok && useWriteTo {\n\t\treturn wt.WriteTo(dst)\n\t}\n\t// Similarly, if the writer has a ReadFrom method, use it to do the copy.\n\tif rt, ok := dst.(io.ReaderFrom); ok && useReadFrom {\n\t\treturn rt.ReadFrom(src)\n\t}\n\n\tbuf := make([]byte, 32*1024)\n\n\tfor {\n\t\tnr, er := src.Read(buf)\n\t\tif nr > 0 {\n\t\t\tnw, ew := dst.Write(buf[0:nr])\n\t\t\tif nw > 0 {\n\t\t\t\twritten += int64(nw)\n\t\t\t}\n\t\t\tif ew != nil {\n\t\t\t\terr = ew\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif nr != nw {\n\t\t\t\terr = io.ErrShortWrite\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif er == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tif er != nil {\n\t\t\terr = er\n\t\t\tbreak\n\t\t}\n\t}\n\treturn written, err\n}\n\n// RandomLocalListener returns a net.Listener that is listening on\n// a random free port. You should close it when done.\nfunc RandomLocalListener() (net.Listener, error) {\n\t// Asking for a port and then trying to bind it is slightly racy.\n\t// Protect against that by retrying a bit.\n\tfor retries := 0; retries < 10; retries++ {\n\t\tlst, err := net.Listen(\"tcp\", \":0\")\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn lst, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"too many retries\")\n}\n\n// TenReader is an io.Reader that produces the sequence [0-9] over and over.\ntype TenReader struct {\n\tidx int64\n}\n\nfunc (tr *TenReader) Read(buf []byte) (int, error) {\n\tfor bufIdx := range buf {\n\t\tbuf[bufIdx] = byte(tr.idx%10) + '0'\n\t\ttr.idx++\n\t}\n\n\treturn len(buf), nil\n}\n\n////////////////\n\n// TenWriter is similar to ioutil.Discard,\n// but checks that the incoming is the repeating sequence [0-9]\n//\n// Meant to be used as assert in conjunction with TenReader.\ntype TenWriter struct {\n\tidx int64\n}\n\nfunc (tw *TenWriter) Write(buf []byte) (int, error) {\n\tfor bufIdx := range buf {\n\t\texpected := byte(tw.idx%10) + '0'\n\t\tif got := buf[bufIdx]; got != expected {\n\t\t\treturn bufIdx, fmt.Errorf(\n\t\t\t\t\"ten-writer error at index %d: want '%c', got: '%c'\",\n\t\t\t\ttw.idx,\n\t\t\t\texpected,\n\t\t\t\tgot,\n\t\t\t)\n\t\t}\n\n\t\ttw.idx++\n\t}\n\n\treturn len(buf), nil\n}\n\n////////////////\n\ntype rr struct {\n\tr          io.Reader\n\tmaxBufSize int\n\trandomize  bool\n\trng        *rand.Rand\n}\n\nfunc (rr *rr) Read(buf []byte) (int, error) {\n\tif len(buf) > rr.maxBufSize {\n\t\tbuf = buf[:rr.maxBufSize]\n\t}\n\n\tif rr.randomize {\n\t\trandomLen := rr.rng.Int() % (rr.maxBufSize + 1)\n\t\tif len(buf) > randomLen {\n\t\t\tbuf = buf[:randomLen]\n\t\t}\n\t}\n\n\treturn rr.r.Read(buf)\n}\n\n// RandomizeReads returns `r` modified, so that calls to Read()\n// will return at most maxBufSize, no matter how big the buffer is.\n// If `randomize` is true, the max bytes read are varied additional\n// in the range [0, maxBufSize]\nfunc RandomizeReads(r io.Reader, maxBufSize int, randomize bool) io.Reader {\n\treturn &rr{\n\t\tr:          r,\n\t\tmaxBufSize: maxBufSize,\n\t\trandomize:  randomize,\n\t\trng:        rand.New(rand.NewSource(0xdeadbeef)),\n\t}\n}\n"
  },
  {
    "path": "util/trie/buildpath.go",
    "content": "// +build !windows\n\npackage trie\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\nfunc buildPath(s []string) string {\n\treturn string(os.PathSeparator) + filepath.Join(s...)\n}\n"
  },
  {
    "path": "util/trie/pathricia.go",
    "content": "// Package trie implements a general purpose Path-*Node.\npackage trie\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Node represents a single node in a *Node, but it can be used as a whole\n// (sub-)*Node through the *Node interface. A node value of `nil` is a perfectly\n// valid trie. Node is suitable for embedding it into other structs.\ntype Node struct {\n\t// Pointer to parent node or nil\n\tParent *Node\n\n\t// Basename to child-nodes\n\tChildren map[string]*Node\n\n\t// Basename of the node's Path\n\tName string\n\n\t// Number of explicitly added children of this node.\n\t// (1 for leaf nodes)\n\tLength int64\n\n\t// Depth of the node. The root is at depth 0.\n\tDepth uint16\n\n\t// Arbitrary data pointer\n\tData interface{}\n}\n\n// SplitPath splits the path according to os.PathSeparator,\n// but omits a leading empty name on /unix/paths\nfunc SplitPath(path string) []string {\n\tif strings.HasSuffix(path, \"/\") {\n\t\tpath = strings.TrimSuffix(path, \"/\")\n\t}\n\n\tnames := strings.Split(path, string(\"/\"))\n\tif len(names) > 0 && names[0] == \"\" {\n\t\treturn names[1:]\n\t}\n\n\treturn names\n}\n\n// NewNode returns a trie with the root element pre-inserted.\n// Note that `nil` is a perfectly valid, but empty trie.\nfunc NewNode() *Node {\n\treturn &Node{}\n}\n\n// NewNodeWithData works like NewNode but populates the .Data field.\nfunc NewNodeWithData(data interface{}) *Node {\n\treturn &Node{Data: data}\n}\n\n// Root returns the root node of the trie.\nfunc (n *Node) Root() *Node {\n\tif n != nil && n.Parent != nil {\n\t\treturn n.Parent.Root()\n\t}\n\n\treturn n\n}\n\n// Insert adds a node into the trie at `path`\nfunc (n *Node) Insert(path string) *Node {\n\treturn n.InsertWithData(path, nil)\n}\n\n// InsertWithData adds a node into the trie at `path`, storing `data`\n// in the Node.Data field. If the node already exists, data will\n// be set anyways.\nfunc (n *Node) InsertWithData(path string, data interface{}) *Node {\n\tvar curr *Node = n\n\n\t// Empty node, create new one implicitly:\n\tif curr == nil {\n\t\tcurr = NewNode()\n\t}\n\n\twasAdded := false\n\n\tfor _, name := range SplitPath(path) {\n\t\tif curr.Children == nil {\n\t\t\tcurr.Children = make(map[string]*Node)\n\t\t}\n\t\tchild, ok := curr.Children[name]\n\t\tif !ok {\n\t\t\tchild = &Node{\n\t\t\t\tParent: curr,\n\t\t\t\tName:   name,\n\t\t\t\tDepth:  uint16(curr.Depth + 1),\n\t\t\t}\n\n\t\t\tcurr.Children[name] = child\n\t\t\twasAdded = true\n\t\t}\n\n\t\tcurr = child\n\t}\n\n\tif wasAdded && curr != nil {\n\t\tcurr.up(func(parent *Node) {\n\t\t\tparent.Length++\n\t\t})\n\t}\n\n\tif curr != nil {\n\t\tcurr.Data = data\n\t}\n\n\treturn curr\n}\n\n// Lookup searches a Node by it's absolute path.\n// Returns nil if Node does not exist.\nfunc (n *Node) Lookup(path string) *Node {\n\tcurr := n\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif path == \"/\" {\n\t\treturn n.Root()\n\t}\n\n\tfor _, name := range SplitPath(path) {\n\t\tchild, ok := curr.Children[name]\n\t\tif !ok {\n\t\t\treturn nil\n\t\t}\n\t\tcurr = child\n\t}\n\treturn curr\n}\n\n// LookupDeepest looks up the deepest known node that can be found\n// by traversing along `path`. In other words: if there is no node\n// at `path` then dirname(`path`) is tried and so on.\n// This is implemented more efficient though.\nfunc (n *Node) LookupDeepest(path string) *Node {\n\tcurr := n\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif path == \"/\" {\n\t\treturn n.Root()\n\t}\n\n\tfor _, name := range SplitPath(path) {\n\t\tchild, ok := curr.Children[name]\n\t\tif !ok {\n\t\t\treturn curr\n\t\t}\n\n\t\tcurr = child\n\t}\n\treturn curr\n}\n\n// Remove removes the receiver and all of it's children.\n// The removed node's parent is returned.\nfunc (n *Node) Remove() *Node {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\t// Adjusts the parent's length:\n\tlength := n.Length\n\tn.up(func(parent *Node) {\n\t\tparent.Length -= length\n\t})\n\n\t// Removes link to self:\n\tif n.Parent != nil {\n\t\tdelete(n.Parent.Children, n.Name)\n\t}\n\n\t// Make children garbage collectable:\n\tparent := n.Parent\n\tn.Walk(true, func(child *Node) bool {\n\t\tchild.Children = nil\n\t\tchild.Parent = nil\n\t\treturn true\n\t})\n\treturn parent\n}\n\n// Walk iterates over all (including intermediate) nodes in the trie.\n// Depending on dfs the nodes are visited in depth-first or breadth-first.\n// The supplied callback is called once for each visited node.\nfunc (n *Node) Walk(dfs bool, visit func(*Node) bool) {\n\tif n == nil {\n\t\treturn\n\t}\n\n\tif !dfs {\n\t\tif !visit(n) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif n.Children != nil {\n\t\tfor _, child := range n.Children {\n\t\t\tchild.Walk(dfs, visit)\n\t\t}\n\t}\n\n\tif dfs {\n\t\tif !visit(n) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// Print dumps a debugging representation of the trie on stdout.\nfunc (n *Node) Print() {\n\tn.Walk(false, func(child *Node) bool {\n\t\tfmt.Println(strings.Repeat(\" \", int(child.Depth)*4), child.Name)\n\t\treturn true\n\t})\n}\n\n// Up walks from the receiving node to the root node,\n// calling `visit` on each node on it's way.\nfunc (n *Node) Up(visit func(*Node)) {\n\tn.up(func(n *Node) {\n\t\tvisit(n)\n\t})\n}\n\n// up is the same as Up, but works on the native *Node.\nfunc (n *Node) up(visit func(*Node)) {\n\tif n != nil {\n\t\tvisit(n)\n\t\tn.Parent.up(visit)\n\t}\n}\n\n// Len returns the number of explicitly inserted elements in the trie.\nfunc (n *Node) Len() int64 {\n\tif n == nil {\n\t\treturn 0\n\t}\n\treturn n.Length\n}\n\n// Path returns a full absolute path from the receiver\n// to the root node of the trie.\nfunc (n *Node) Path() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\ts := make([]string, n.Depth+2)\n\ti := len(s) - 1\n\n\tn.up(func(parent *Node) {\n\t\ts[i] = parent.Name\n\t\ti--\n\t})\n\n\treturn buildPath(s)\n}\n\n// String returns the absolute path of the node.\nfunc (n *Node) String() string {\n\tif n == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn n.Path()\n}\n"
  },
  {
    "path": "util/trie/pathricia_test.go",
    "content": "package trie\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPathriciaInsertTrieLinux(t *testing.T) {\n\ttests := []struct {\n\t\tinput  string\n\t\tname   string\n\t\tpath   string\n\t\tlength int64\n\t}{\n\t\t//Insert path | expected node name | expected path | trie.Len()\n\t\t{\"\", \"\", \"/\", 0},\n\t\t{\"\\\\\", \"\\\\\", \"/\\\\\", 1},\n\t\t{\"a\", \"a\", \"/a\", 2},\n\t\t{\"a/b\", \"b\", \"/a/b\", 3},\n\t\t{\"home\", \"home\", \"/home\", 4},\n\t\t{\"sahib\", \"sahib\", \"/sahib\", 5},\n\t\t{\"home/qitta\", \"qitta\", \"/home/qitta\", 6},\n\t\t{\"   \", \"   \", \"/   \", 7},\n\t}\n\n\ttrie := NewNode()\n\tfor _, test := range tests {\n\t\t// Inserting at the root node.\n\t\tnode := trie.Insert(test.input)\n\t\tif node == nil {\n\t\t\tt.Errorf(\"Node is nil: %v\", test)\n\t\t\tcontinue\n\t\t}\n\n\t\tnodeLen := node.Root().Len()\n\t\tif nodeLen != test.length {\n\t\t\tt.Errorf(\"Length differs, got: %d != expected: %d\", nodeLen, test.length)\n\t\t}\n\n\t\tif node.Name != test.name {\n\t\t\tt.Errorf(\"Name differs, got: %s != expected: %s\", node.Name, test.name)\n\t\t}\n\n\t\tif node.Path() != test.path {\n\t\t\tt.Errorf(\"Path differs, got: %s != expected: %s\", node.Path(), test.path)\n\t\t}\n\t}\n}\n\nfunc TestPathriciaRemoveLinux(t *testing.T) {\n\tpaths := []string{\n\t\t\"home/qitta\",\n\t\t\"/sahib\",\n\t\t\"/eule\",\n\t\t\"home/eule\",\n\t\t\"katze/eule\",\n\t\t\"elch/eule\",\n\t\t\"elch/eule/meow\",\n\t}\n\n\ttrie := NewNode()\n\tfor _, path := range paths {\n\t\ttrie.Insert(path)\n\t}\n\n\ttests := []struct {\n\t\tpath   string\n\t\tlength int64\n\t\tname   string\n\t}{\n\t\t{\"/home\", 5, \"\"},\n\t\t{\"/katze/Eule\", 5, \"\"},\n\t\t{\"/katze/eule\", 4, \"katze\"},\n\t\t{\"/elch/eule/meow\", 3, \"eule\"},\n\t\t{\"/\", 0, \"\"},\n\t\t{\"/\", 0, \"\"},\n\t}\n\n\tfor _, test := range tests {\n\t\tnode := trie.Lookup(test.path).Remove()\n\t\tif node == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif node.Name != test.name {\n\t\t\tt.Errorf(\"\\nRemoving: [%s]\\nName differs, got: %s != expected: %s\\n\", test.path, node.Name, test.name)\n\t\t}\n\n\t\tif trie.Length != test.length {\n\t\t\tt.Errorf(\"Length differs, got: %d != expected: %d\\n\", trie.Length, test.length)\n\t\t}\n\t}\n}\n\nfunc TestLookupDeepest(t *testing.T) {\n\tpaths := []string{\n\t\t\"/a/b/c\",\n\t}\n\n\ttrie := NewNode()\n\tfor _, path := range paths {\n\t\ttrie.Insert(path)\n\t}\n\n\tn := trie.LookupDeepest(\"/a/b/c/d/e\")\n\trequire.NotNil(t, n)\n\trequire.Equal(t, \"/a/b/c\", n.Path())\n}\n\nfunc TestWalk(t *testing.T) {\n\ttrie := NewNode()\n\ttrie.Insert(\"/pics/me.png\")\n\n\texpected := []string{\n\t\t\"/pics/me.png\", \"/pics\", \"/\",\n\t}\n\n\ttrie.Walk(true, func(n *Node) bool {\n\t\tif expected[0] != n.Path() {\n\t\t\tt.Errorf(\"DFS Walk is broken. Expected %s, got %s\", expected[0], n.Path())\n\t\t\treturn false\n\t\t}\n\t\texpected = expected[1:]\n\t\treturn true\n\t})\n\n\texpected = []string{\n\t\t\"/\", \"/pics\", \"/pics/me.png\",\n\t}\n\n\ttrie.Walk(false, func(n *Node) bool {\n\t\tif expected[0] != n.Path() {\n\t\t\tt.Errorf(\"BFS Walk is broken. Expected %s, got %s\", expected[0], n.Path())\n\t\t\treturn false\n\t\t}\n\t\texpected = expected[1:]\n\t\treturn true\n\t})\n}\n"
  },
  {
    "path": "util/zipper.go",
    "content": "package util\n\nimport (\n\t\"archive/tar\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype archiveEntry struct {\n\tpath string\n\tsize int64\n}\n\nfunc addToTar(root string, entry archiveEntry, tw *tar.Writer) error {\n\trelPath := entry.path\n\tif len(entry.path) > len(root) {\n\t\trelPath = entry.path[len(root):]\n\t\trelPath = strings.TrimLeftFunc(relPath, func(r rune) bool {\n\t\t\treturn r == filepath.Separator\n\t\t})\n\t}\n\n\thdr := &tar.Header{\n\t\tName: relPath,\n\t\tMode: 0600,\n\t\tSize: entry.size,\n\t}\n\n\tif err := tw.WriteHeader(hdr); err != nil {\n\t\treturn err\n\t}\n\n\tfd, err := os.Open(entry.path) // #nosec\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer Closer(fd)\n\n\t_, err = io.Copy(tw, fd)\n\treturn err\n}\n\n// Tar packs all files in the directory pointed to by `root` and writes\n// a gzipped and tarred version of it to `w`.\n// The name of the archiv is set to `archiveName`.\nfunc Tar(root, archiveName string, w io.Writer) error {\n\troot = filepath.Clean(root)\n\n\tgzw := gzip.NewWriter(w)\n\tgzw.Name = fmt.Sprintf(archiveName)\n\tgzw.ModTime = time.Now()\n\tdefer gzw.Close()\n\n\ttw := tar.NewWriter(gzw)\n\tdefer tw.Close()\n\n\t// First complete the walk to have a consistent set of files.\n\t// If we e.g. place the .tar file in the same directory, we\n\t// might iterate over itself, which will be unfortunate.\n\tentries := []archiveEntry{}\n\twalker := func(path string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !info.Mode().IsRegular() {\n\t\t\treturn nil\n\t\t}\n\n\t\tentries = append(entries, archiveEntry{\n\t\t\tpath: path,\n\t\t\tsize: info.Size(),\n\t\t})\n\n\t\treturn nil\n\t}\n\n\tif err := filepath.Walk(root, walker); err != nil {\n\t\treturn err\n\t}\n\n\tfor _, entry := range entries {\n\t\tif err := addToTar(root, entry, tw); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Untar reads .tar data (from Tar()) from `r` and writes all files packed in it to `root`.\nfunc Untar(r io.Reader, root string) error {\n\tgzr, err := gzip.NewReader(r)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ttr := tar.NewReader(gzr)\n\tfor {\n\t\thdr, err := tr.Next()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\n\t\t// Create the necessary directory if necessary.\n\t\tfullPath := filepath.Join(root, hdr.Name)\n\t\tif oerr := os.MkdirAll(filepath.Dir(fullPath), 0700); err != nil {\n\t\t\treturn oerr\n\t\t}\n\n\t\t// Overwrite the file in the target directory\n\t\tfd, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0600)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif _, err := io.Copy(fd, tr); err != nil {\n\t\t\treturn fd.Close()\n\t\t}\n\n\t\tif err := fd.Close(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn gzr.Close()\n}\n"
  },
  {
    "path": "util/zipper_test.go",
    "content": "package util\n\nimport (\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/sahib/brig/util/testutil\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc fileIsSame(t *testing.T, a, b string) {\n\tdata, err := ioutil.ReadFile(a)\n\trequire.NoError(t, err)\n\n\tdatb, err := ioutil.ReadFile(b)\n\trequire.NoError(t, err)\n\n\trequire.Equal(t, data, datb)\n}\n\nfunc TestTarUntar(t *testing.T) {\n\ttmpDirPack, err := ioutil.TempDir(\"\", \"brig-taruntar-pack-test-*\")\n\trequire.NoError(t, err)\n\tdefer os.RemoveAll(tmpDirPack)\n\n\ttmpDirUnpack, err := ioutil.TempDir(\"\", \"brig-taruntar-unpack-test-*\")\n\trequire.NoError(t, err)\n\tdefer os.RemoveAll(tmpDirUnpack)\n\n\trequire.NoError(\n\t\tt,\n\t\tos.MkdirAll(filepath.Join(tmpDirPack, \"sub\"), 0700),\n\t)\n\n\texpectedPaths := []string{\"a\", \"b\", \"sub/c\", \"sub/d\"}\n\tfor idx, path := range expectedPaths {\n\t\tdata := testutil.CreateRandomDummyBuf(16*1024, int64(idx%2))\n\t\trequire.NoError(\n\t\t\tt,\n\t\t\tioutil.WriteFile(filepath.Join(tmpDirPack, path), data, 0600),\n\t\t)\n\t}\n\n\tbuf := &bytes.Buffer{}\n\trequire.NoError(t, Tar(tmpDirPack, \"test-archive\", buf))\n\n\tgotPaths := []string{}\n\trequire.NoError(t, Untar(buf, tmpDirUnpack))\n\trequire.NoError(\n\t\tt,\n\t\tfilepath.Walk(tmpDirUnpack, func(path string, info os.FileInfo, err error) error {\n\t\t\trequire.NoError(t, err)\n\t\t\tif !info.Mode().IsRegular() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tpath = path[len(tmpDirUnpack):]\n\t\t\tpath = strings.TrimLeftFunc(path, func(r rune) bool {\n\t\t\t\treturn r == filepath.Separator\n\t\t\t})\n\n\t\t\tgotPaths = append(gotPaths, path)\n\t\t\treturn nil\n\t\t}),\n\t)\n\n\trequire.Equal(t, expectedPaths, gotPaths)\n\tfor idx, expectedPath := range expectedPaths {\n\t\tfileIsSame(\n\t\t\tt,\n\t\t\tfilepath.Join(tmpDirPack, expectedPath),\n\t\t\tfilepath.Join(tmpDirUnpack, gotPaths[idx]),\n\t\t)\n\t}\n}\n"
  },
  {
    "path": "version/version.go",
    "content": "package version\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\nvar (\n\t// Major will be incremented on big releases.\n\tMajor = \"\"\n\t// Minor will be incremented on small releases.\n\tMinor = \"\"\n\t// Patch should be incremented on every released change.\n\tPatch = \"\"\n\t// ReleaseType is \"beta\", \"alpha\" or \"\" for final releases\n\tReleaseType = \"\"\n\t// GitRev is the current HEAD of git of this release\n\tGitRev = \"\"\n\t// BuildTime is the ISO8601 timestamp of the current build\n\tBuildTime = \"\"\n\n\t// MajorInt is \"Major\" as parsed integer\n\tMajorInt = -1\n\t// MinorInt as \"Minor\" as parsed integer\n\tMinorInt = -1\n\t// PatchInt as \"Patch\" as parsed integer\n\tPatchInt = -1\n)\n\nfunc parseVersionNum(v, what string) int {\n\tif len(v) <= 0 {\n\t\treturn 0\n\t}\n\n\tnum, err := strconv.Atoi(Major)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"Cannot parse %s version: %v\", what, err))\n\t}\n\n\treturn num\n}\n\nfunc init() {\n\tMajorInt = parseVersionNum(Major, \"major\")\n\tMinorInt = parseVersionNum(Minor, \"minor\")\n\tPatchInt = parseVersionNum(Patch, \"patch\")\n}\n\n// Numbers returns a tuple of (major, minor, patch)\nfunc Numbers() (int, int, int) {\n\treturn MajorInt, MinorInt, PatchInt\n}\n\n// String returns a Maj.Min.Patch string.\nfunc String() string {\n\tbase := fmt.Sprintf(\"v%s.%s.%s\", Major, Minor, Patch)\n\tif ReleaseType != \"\" {\n\t\tbase += \"-\" + ReleaseType\n\t}\n\n\tif len(GitRev) >= 7 {\n\t\tbase += \"+\" + GitRev[:7]\n\t}\n\n\treturn base\n}\n"
  }
]